diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index f96ffd6c02a1c..fc67bdcb4820c 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -7,7 +7,13 @@ } }, "settings": { - "terminal.integrated.shell.linux": "/bin/bash" + "terminal.integrated.defaultProfile.linux": "bash", + "terminal.integrated.profiles.linux": { + "bash": { + "path": "/bin/bash", + "icon": "terminal-bash", + }, + }, }, "extensions": [ "dbaeumer.vscode-eslint" diff --git a/.github/ISSUE_TEMPLATE/Bug_report.md b/.github/ISSUE_TEMPLATE/Bug_report.md index 6cc9e4cd7c87a..d920d7ec3ddff 100644 --- a/.github/ISSUE_TEMPLATE/Bug_report.md +++ b/.github/ISSUE_TEMPLATE/Bug_report.md @@ -4,7 +4,9 @@ about: Create a report to help us improve TypeScript title: '' labels: '' assignees: '' + --- + # Bug Report - -## Configuration Check - - -My compilation *target* is `ES2015` and my *lib* is `the default`. - -## Missing / Incorrect Definition - - - -## Sample Code - - - -## Documentation Link - - +--- +name: Library change +about: Fix or improve issues with built-in type definitions like `lib.dom.d.ts`, `lib.es6.d.ts`, + etc. +title: '' +labels: '' +assignees: '' + +--- + +# lib Update Request + + + +## Configuration Check + + +My compilation *target* is `ES2015` and my *lib* is `the default`. + +## Missing / Incorrect Definition + + + +## Sample Code + + + +## Documentation Link + + diff --git a/.github/ISSUE_TEMPLATE/types-not-correct-in-with-callback.md b/.github/ISSUE_TEMPLATE/types-not-correct-in-with-callback.md new file mode 100644 index 0000000000000..46b34ccb3fcb0 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/types-not-correct-in-with-callback.md @@ -0,0 +1,47 @@ +--- +name: Types Not Correct in/with Callback +about: TypeScript assuming the wrong type either after a callback runs, or within + a callback +title: '' +labels: Duplicate +assignees: '' + +--- + +TypeScript has two narrowing-related behaviors that are both intentional. Please do not log additional bugs on this; see #9998 for more discussion. + +The first is that *narrowings are not respected in callbacks*. In other words: +```ts +function fn(obj: { name: string | number }) { + if (typeof obj.name === "string") { + // Errors + window.setTimeout(() => console.log(obj.name.toLowerCase()); + } +} +``` +This is intentional since the value of `obj.name` "could" change types between when the narrowing occurred and when the callback was invoke. See also #11498 + +The second is that *function calls do not reset narrowings*. In other words: +```ts +function fn(obj: { name: string | number }) { + if (typeof obj.name === "string") { + console.log("Here"); + // Does not error + console.log(obj.name.toLowerCase()); + } +} +``` +This is intentional behavior, *even though `console.log` could have mutated obj*. This rule is consistently applied, even with the function is in-principle inspectable to actually have side effects +```ts +function fn(obj: { name: string | number }) { + if (typeof obj.name === "string") { + mut(); + // Does not error + console.log(obj.name.toLowerCase()); + } + + function mut() { + obj.name = 42; + } +} +``` diff --git a/.github/pr_owners.txt b/.github/pr_owners.txt index 7bd521dbdcd94..60ba7e99b7aa2 100644 --- a/.github/pr_owners.txt +++ b/.github/pr_owners.txt @@ -12,3 +12,5 @@ jessetrinity minestarks armanio123 gabritto +jakebailey +DanielRosenwasser diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index b02c231fb4ff8..12b9aeb21e15a 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -9,6 +9,13 @@ Please verify that: Refer to CONTRIBUTING.MD for more details. https://github.com/Microsoft/TypeScript/blob/main/CONTRIBUTING.md + +** Please don't send typo fixes! ** +Please don't send a PR solely for the purpose of fixing a typo, unless that +typo truly hurts understanding of the text. Each PR represents work for the +maintainers, and that work should provide commensurate value. + +If you're interested in sending a PR, the issue tracker has many issues marked `help wanted`. --> Fixes # diff --git a/.github/workflows/ensure-related-repos-run-crons.yml b/.github/workflows/ensure-related-repos-run-crons.yml new file mode 100644 index 0000000000000..f6faff6b67f77 --- /dev/null +++ b/.github/workflows/ensure-related-repos-run-crons.yml @@ -0,0 +1,46 @@ +# Ensures that repos which are related to TypeScript but may not have regular commits +# have their GitHub Actions scheduled jobs still active due to the 6 week timeout +# on OSS repos. This has already triggered a few times with microsoft/TypeScript-Make-Monaco-Builds +# so, better to automate keeping on top of it. + +name: Related Repo Commit Bumps + +on: + schedule: + # Monthly, https://crontab.guru/#0_0_*_1-12_* + - cron: '0 0 1 * *' + workflow_dispatch: {} + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - name: Configure git + run: | + git config --global user.email "typescriptbot@microsoft.com" + git config --global user.name "TypeScript Bot" + + - uses: actions/checkout@v2 + with: + repository: 'microsoft/TypeScript-Website' + path: 'ts-site' + + - name: Push Commit to TS Website + run: | + cd ts-site + git commit --allow-empty -m "Monthly Bump" + git config --unset-all http.https://github.com/.extraheader + git push https://${{ secrets.TS_BOT_GITHUB_TOKEN }}@github.com/microsoft/TypeScript-Website.git + + - uses: actions/checkout@v2 + with: + repository: 'microsoft/TypeScript-Make-Monaco-Builds' + path: 'monaco-builds' + + - name: Push Commit to TS Make Monaco Builds + run: | + cd monaco-builds + git commit --allow-empty -m "Monthly Bump" + git config --unset-all http.https://github.com/.extraheader + git push https://${{ secrets.TS_BOT_GITHUB_TOKEN }}@github.com/microsoft/TypeScript-Make-Monaco-Builds.git diff --git a/.vscode/launch.template.json b/.vscode/launch.template.json index ca3ac8d2b8843..e4301b81e87b9 100644 --- a/.vscode/launch.template.json +++ b/.vscode/launch.template.json @@ -48,11 +48,7 @@ "outFiles": [ "${workspaceRoot}/built/local/run.js" ], - - // NOTE: To use this, you must switch the "type" above to "pwa-node". You may also need to follow the instructions - // here: https://github.com/microsoft/vscode-js-debug#nightly-extension to use the js-debug nightly until - // this feature is shipping in insiders or to a release: - // "customDescriptionGenerator": "'__tsDebuggerDisplay' in this ? this.__tsDebuggerDisplay(defaultValue) : defaultValue" + "customDescriptionGenerator": "'__tsDebuggerDisplay' in this ? this.__tsDebuggerDisplay(defaultValue) : defaultValue", }, { // See: https://github.com/microsoft/TypeScript/wiki/Debugging-Language-Service-in-VS-Code @@ -60,11 +56,7 @@ "request": "attach", "name": "Attach to VS Code TS Server via Port", "processId": "${command:PickProcess}", - - // NOTE: To use this, you must switch the "type" above to "pwa-node". You may also need to follow the instructions - // here: https://github.com/microsoft/vscode-js-debug#nightly-extension to use the js-debug nightly until - // this feature is shipping in insiders or to a release: - // "customDescriptionGenerator": "'__tsDebuggerDisplay' in this ? this.__tsDebuggerDisplay(defaultValue) : defaultValue" + "customDescriptionGenerator": "'__tsDebuggerDisplay' in this ? this.__tsDebuggerDisplay(defaultValue) : defaultValue", } ] } diff --git a/.vscode/settings.template.json b/.vscode/settings.template.json index 1806a93ecbc65..3359472330b2e 100644 --- a/.vscode/settings.template.json +++ b/.vscode/settings.template.json @@ -2,10 +2,7 @@ // contents into your existing settings. { "eslint.validate": [ - { - "language": "typescript", - "autoFix": true - } + "typescript" ], "eslint.options": { "rulePaths": ["./scripts/eslint/built/rules/"], @@ -16,4 +13,4 @@ // To use the locally built compiler, after 'npm run build': // "typescript.tsdk": "built/local" -} \ No newline at end of file +} diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 391a92de5cd7d..741f329d86dc1 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -20,7 +20,7 @@ Some search tips: ## 3. Do you have a question? The issue tracker is for **issues**, in other words, bugs and suggestions. -If you have a *question*, please use [Stack Overflow](http://stackoverflow.com/questions/tagged/typescript), [Gitter](https://gitter.im/Microsoft/TypeScript), your favorite search engine, or other resources. +If you have a *question*, please use [Stack Overflow](https://stackoverflow.com/questions/tagged/typescript), [Gitter](https://gitter.im/Microsoft/TypeScript), your favorite search engine, or other resources. Due to increased traffic, we can no longer answer questions in the issue tracker. ## 4. Did you find a bug? @@ -81,6 +81,10 @@ If you prefer to develop using containers, this repository includes a [developme The TypeScript repository is relatively large. To save some time, you might want to clone it without the repo's full history using `git clone --depth=1`. +### Filename too long on Windows + +You might need to run `git config --global core.longpaths true` before cloning TypeScript on Windows. + ### Using local builds Run `gulp` to build a version of the compiler/language service that reflects changes you've made. You can then run `node /built/local/tsc.js` in place of `tsc` in your project. For example, to run `tsc --watch` from within the root of the repository on a file called `test.ts`, you can run `node ./built/local/tsc.js --watch test.ts`. diff --git a/lib/zh-cn/diagnosticMessages.generated.json b/lib/zh-cn/diagnosticMessages.generated.json index 9c79f7feb06f7..824ee7b5c06fd 100644 --- a/lib/zh-cn/diagnosticMessages.generated.json +++ b/lib/zh-cn/diagnosticMessages.generated.json @@ -130,7 +130,7 @@ "Add_await_to_initializer_for_0_95084": "将 \"await\" 添加到 \"{0}\" 的初始值设定项", "Add_await_to_initializers_95089": "将 \"await\" 添加到初始值设定项", "Add_braces_to_arrow_function_95059": "向箭头函数添加大括号", - "Add_class_tag_95102": "添加“@类”标记", + "Add_class_tag_95102": "添加“@class”标记", "Add_const_to_all_unresolved_variables_95082": "将 \"const\" 添加到所有未解析变量", "Add_const_to_unresolved_variable_95081": "将 \"const\" 添加到未解析的变量", "Add_default_import_0_to_existing_import_declaration_from_1_90033": "将默认导入 \"{0}\" 从 \"{1}\" 添加到现有导入声明。", @@ -154,7 +154,7 @@ "Add_parameter_name_90034": "添加参数名称", "Add_qualifier_to_all_unresolved_variables_matching_a_member_name_95037": "将限定符添加到匹配成员名称的所有未解析变量", "Add_this_parameter_95104": "添加“此”参数。", - "Add_this_tag_95103": "添加“@此”标记", + "Add_this_tag_95103": "添加“@this”标记", "Add_to_all_uncalled_decorators_95044": "将 \"()\" 添加到所有未调用的修饰器", "Add_ts_ignore_to_all_error_messages_95042": "将 \"@ts-ignore\" 添加到所有错误消息", "Add_undefined_to_a_type_when_accessed_using_an_index_6674": "使用索引访问时,将 “undefined” 添加到类型。", @@ -1784,4 +1784,4 @@ "with_statements_are_not_allowed_in_strict_mode_1101": "严格模式下不允许使用 \"with\" 语句。", "yield_expression_implicitly_results_in_an_any_type_because_its_containing_generator_lacks_a_return_t_7057": "\"yield\" 表达式隐式导致 \"any\" 类型,因为它的包含生成器缺少返回类型批注。", "yield_expressions_cannot_be_used_in_a_parameter_initializer_2523": "不能在参数初始化表达式中使用 \"yield\" 表达式。" -} \ No newline at end of file +} diff --git a/package-lock.json b/package-lock.json index 06751eebd7126..e9fbb2e57001b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "typescript", - "version": "4.5.0", + "version": "4.7.0", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -239,16 +239,6 @@ "requires": { "remove-trailing-separator": "^1.0.1" } - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } } } }, @@ -288,14 +278,14 @@ } }, "@octokit/core": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/@octokit/core/-/core-3.5.1.tgz", - "integrity": "sha512-omncwpLVxMP+GLpLPgeGJBF6IWJFjXDS5flY5VbppePYX9XehevbDykRH9PdCdvqt9TS5AOTiDide7h0qrkHjw==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@octokit/core/-/core-3.6.0.tgz", + "integrity": "sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q==", "dev": true, "requires": { "@octokit/auth-token": "^2.4.4", "@octokit/graphql": "^4.5.8", - "@octokit/request": "^5.6.0", + "@octokit/request": "^5.6.3", "@octokit/request-error": "^2.0.5", "@octokit/types": "^6.0.3", "before-after-hook": "^2.2.0", @@ -356,16 +346,16 @@ } }, "@octokit/request": { - "version": "5.6.2", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.6.2.tgz", - "integrity": "sha512-je66CvSEVf0jCpRISxkUcCa0UkxmFs6eGDRSbfJtAVwbLH5ceqF+YEyC8lj8ystKyZTy8adWr0qmkY52EfOeLA==", + "version": "5.6.3", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.6.3.tgz", + "integrity": "sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A==", "dev": true, "requires": { "@octokit/endpoint": "^6.0.1", "@octokit/request-error": "^2.1.0", "@octokit/types": "^6.16.1", "is-plain-object": "^5.0.0", - "node-fetch": "^2.6.1", + "node-fetch": "^2.6.7", "universal-user-agent": "^6.0.0" } }, @@ -401,20 +391,10 @@ "@octokit/openapi-types": "^11.2.0" } }, - "@types/browserify": { - "version": "12.0.37", - "resolved": "https://registry.npmjs.org/@types/browserify/-/browserify-12.0.37.tgz", - "integrity": "sha512-rGVZQhqlBMdnU0Wcq/RDO6+I1tppM42SqVq5ZEXiw2ft/A55Ro+dz4aKTy28gniwOIxZhRFqb5N+qnbg7J040g==", - "dev": true, - "requires": { - "@types/insert-module-globals": "*", - "@types/node": "*" - } - }, "@types/chai": { - "version": "4.2.22", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.2.22.tgz", - "integrity": "sha512-tFfcE+DSTzWAgifkjik9AySNqIyNoYwmR+uecPwwD/XRNfvOjmC/FjCxpiUGDkDVDphPfCUecSQVFw+lN3M3kQ==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.0.tgz", + "integrity": "sha512-/ceqdqeRraGolFTcfoXNiqjyQhZzbINDngeoAq9GoHa8PPK1yNzTaxWjA6BFWp5Ua9JpXEMSS4s5i9tS0hOJtw==", "dev": true }, "@types/convert-source-map": { @@ -597,24 +577,6 @@ "@types/node": "*" } }, - "@types/insert-module-globals": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@types/insert-module-globals/-/insert-module-globals-7.0.2.tgz", - "integrity": "sha512-b+XCUBUioZoveg4e8+D/wGVIvQcuV6TNHPy53aeY0YBydOOZhAtX2Sdr4x97uWKKy9Xrt0SUKsPxbT9e0u/x9Q==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/jake": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/@types/jake/-/jake-0.0.33.tgz", - "integrity": "sha512-ABCtXDsYzjYnio9gc5zoc5j9AXdFnTgBDJjJeAv98eHh6Vpt2dCAWRDOQsPv2Kg6UEZnLqqGsQ3dIdaisuPcXg==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, "@types/json-schema": { "version": "7.0.7", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz", @@ -664,9 +626,9 @@ } }, "@types/mocha": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-9.0.0.tgz", - "integrity": "sha512-scN0hAWyLVAvLR9AyW7HoFF5sJZglyBsbPuHO4fv7JRvfmPBMfp1ozWqOf/e4wwPNxezBZXRfWzMb6iFLgEVRA==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-9.1.0.tgz", + "integrity": "sha512-QCWHkbMv4Y5U9oW10Uxbr45qMMSzl4OzijsozynUAgx3kEHUdXB00udx2dWDQ7f2TU2a2uuiFaRZjCe3unPpeg==", "dev": true }, "@types/ms": { @@ -676,9 +638,9 @@ "dev": true }, "@types/node": { - "version": "16.11.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.2.tgz", - "integrity": "sha512-w34LtBB0OkDTs19FQHXy4Ig/TOXI4zqvXS2Kk1PAsRKZ0I+nik7LlMYxckW0tSNGtvWmzB+mrCTbuEjuB9DVsw==", + "version": "17.0.23", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.23.tgz", + "integrity": "sha512-UxDxWn7dl97rKVeVS61vErvw086aCYhDLyvRQZ5Rk65rZKepaFdm53GeqXaKBuOhED4e9uWq34IC3TdSdJJ2Gw==", "dev": true }, "@types/node-fetch": { @@ -714,15 +676,6 @@ } } }, - "@types/through2": { - "version": "2.0.36", - "resolved": "https://registry.npmjs.org/@types/through2/-/through2-2.0.36.tgz", - "integrity": "sha512-vuifQksQHJXhV9McpVsXKuhnf3lsoX70PnhcqIAbs9dqLH2NgrGz0DzZPDY3+Yh6eaRqcE1gnCQ6QhBn1/PT5A==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, "@types/undertaker": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/@types/undertaker/-/undertaker-1.2.7.tgz", @@ -952,16 +905,6 @@ "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", "dev": true }, - "JSONStream": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", - "dev": true, - "requires": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - } - }, "acorn": { "version": "7.4.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", @@ -974,23 +917,6 @@ "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==", "dev": true }, - "acorn-node": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", - "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", - "dev": true, - "requires": { - "acorn": "^7.0.0", - "acorn-walk": "^7.0.0", - "xtend": "^4.0.2" - } - }, - "acorn-walk": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", - "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", - "dev": true - }, "aggregate-error": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.0.1.tgz", @@ -1250,53 +1176,6 @@ "es-abstract": "^1.17.0-next.1" } }, - "asn1.js": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", - "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", - "dev": true, - "requires": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } - } - }, - "assert": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", - "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", - "dev": true, - "requires": { - "object-assign": "^4.1.1", - "util": "0.10.3" - }, - "dependencies": { - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", - "dev": true - }, - "util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "dev": true, - "requires": { - "inherits": "2.0.1" - } - } - } - }, "assertion-error": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", @@ -1316,9 +1195,9 @@ "dev": true }, "async": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.1.tgz", - "integrity": "sha512-XdD5lRO/87udXCMC9meWdYiR+Nq6ZjUfXidViUZGu2F1MO4T3XwZ1et0hb2++BgLfhyJwy44BGB/yx80ABx8hg==", + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz", + "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==", "dev": true }, "async-done": { @@ -1366,12 +1245,6 @@ "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", "dev": true }, - "available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", - "dev": true - }, "azure-devops-node-api": { "version": "11.0.1", "resolved": "https://registry.npmjs.org/azure-devops-node-api/-/azure-devops-node-api-11.0.1.tgz", @@ -1460,12 +1333,6 @@ } } }, - "base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true - }, "before-after-hook": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.2.tgz", @@ -1488,12 +1355,6 @@ "file-uri-to-path": "1.0.0" } }, - "bn.js": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", - "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==", - "dev": true - }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -1533,253 +1394,12 @@ } } }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", - "dev": true - }, - "browser-pack": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/browser-pack/-/browser-pack-6.1.0.tgz", - "integrity": "sha512-erYug8XoqzU3IfcU8fUgyHqyOXqIE4tUTTQ+7mqUjQlvnXkOO6OlT9c/ZoJVHYoAaqGxr09CN53G7XIsO4KtWA==", - "dev": true, - "requires": { - "JSONStream": "^1.0.3", - "combine-source-map": "~0.8.0", - "defined": "^1.0.0", - "safe-buffer": "^5.1.1", - "through2": "^2.0.0", - "umd": "^3.0.0" - }, - "dependencies": { - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - } - } - }, - "browser-resolve": { - "version": "1.11.3", - "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz", - "integrity": "sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==", - "dev": true, - "requires": { - "resolve": "1.1.7" - } - }, "browser-stdout": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", "dev": true }, - "browserify": { - "version": "17.0.0", - "resolved": "https://registry.npmjs.org/browserify/-/browserify-17.0.0.tgz", - "integrity": "sha512-SaHqzhku9v/j6XsQMRxPyBrSP3gnwmE27gLJYZgMT2GeK3J0+0toN+MnuNYDfHwVGQfLiMZ7KSNSIXHemy905w==", - "dev": true, - "requires": { - "JSONStream": "^1.0.3", - "assert": "^1.4.0", - "browser-pack": "^6.0.1", - "browser-resolve": "^2.0.0", - "browserify-zlib": "~0.2.0", - "buffer": "~5.2.1", - "cached-path-relative": "^1.0.0", - "concat-stream": "^1.6.0", - "console-browserify": "^1.1.0", - "constants-browserify": "~1.0.0", - "crypto-browserify": "^3.0.0", - "defined": "^1.0.0", - "deps-sort": "^2.0.1", - "domain-browser": "^1.2.0", - "duplexer2": "~0.1.2", - "events": "^3.0.0", - "glob": "^7.1.0", - "has": "^1.0.0", - "htmlescape": "^1.1.0", - "https-browserify": "^1.0.0", - "inherits": "~2.0.1", - "insert-module-globals": "^7.2.1", - "labeled-stream-splicer": "^2.0.0", - "mkdirp-classic": "^0.5.2", - "module-deps": "^6.2.3", - "os-browserify": "~0.3.0", - "parents": "^1.0.1", - "path-browserify": "^1.0.0", - "process": "~0.11.0", - "punycode": "^1.3.2", - "querystring-es3": "~0.2.0", - "read-only-stream": "^2.0.0", - "readable-stream": "^2.0.2", - "resolve": "^1.1.4", - "shasum-object": "^1.0.0", - "shell-quote": "^1.6.1", - "stream-browserify": "^3.0.0", - "stream-http": "^3.0.0", - "string_decoder": "^1.1.1", - "subarg": "^1.0.0", - "syntax-error": "^1.1.1", - "through2": "^2.0.0", - "timers-browserify": "^1.0.1", - "tty-browserify": "0.0.1", - "url": "~0.11.0", - "util": "~0.12.0", - "vm-browserify": "^1.0.0", - "xtend": "^4.0.0" - }, - "dependencies": { - "browser-resolve": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-2.0.0.tgz", - "integrity": "sha512-7sWsQlYL2rGLy2IWm8WL8DCTJvYLc/qlOnsakDac87SOoCd16WLsaAMdCiAqsTNHIe+SXfaqyxyo6THoWqs8WQ==", - "dev": true, - "requires": { - "resolve": "^1.17.0" - }, - "dependencies": { - "resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", - "dev": true, - "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - } - } - } - }, - "is-core-module": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz", - "integrity": "sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - } - } - }, - "browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "dev": true, - "requires": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "dev": true, - "requires": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "dev": true, - "requires": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "browserify-rsa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", - "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", - "dev": true, - "requires": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" - } - }, - "browserify-sign": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", - "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", - "dev": true, - "requires": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - } - } - }, - "browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", - "dev": true, - "requires": { - "pako": "~1.0.5" - } - }, - "buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz", - "integrity": "sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==", - "dev": true, - "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4" - } - }, "buffer-equal": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.0.tgz", @@ -1792,18 +1412,6 @@ "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", "dev": true }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", - "dev": true - }, - "builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", - "dev": true - }, "cache-base": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", @@ -1821,12 +1429,6 @@ "unset-value": "^1.0.0" } }, - "cached-path-relative": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.0.2.tgz", - "integrity": "sha512-5r2GqsoEb4qMTTN9J+WzXfjov+hjxT+j3u5K+kIVNIwAd99DLCJE9pBIMP1qVeybV6JiijL385Oz0DcYxfbOIg==", - "dev": true - }, "call-bind": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", @@ -1850,15 +1452,16 @@ "dev": true }, "chai": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.4.tgz", - "integrity": "sha512-yS5H68VYOCtN1cjfwumDSuzn/9c+yza4f3reKXlE5rUg7SFcCEy90gJvydNgOYtblyf4Zi6jIWRnXOgErta0KA==", + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.6.tgz", + "integrity": "sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q==", "dev": true, "requires": { "assertion-error": "^1.1.0", "check-error": "^1.0.2", "deep-eql": "^3.0.1", "get-func-name": "^2.0.0", + "loupe": "^2.3.1", "pathval": "^1.1.1", "type-detect": "^4.0.5" } @@ -1899,16 +1502,6 @@ "upath": "^1.1.1" } }, - "cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, "class-utils": { "version": "0.3.6", "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", @@ -2063,26 +1656,6 @@ "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", "dev": true }, - "combine-source-map": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.8.0.tgz", - "integrity": "sha1-pY0N8ELBhvz4IqjoAV9UUNLXmos=", - "dev": true, - "requires": { - "convert-source-map": "~1.1.0", - "inline-source-map": "~0.6.0", - "lodash.memoize": "~3.0.3", - "source-map": "~0.5.3" - }, - "dependencies": { - "convert-source-map": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz", - "integrity": "sha1-SCnId+n+SbMWHzvzZziI4gRpmGA=", - "dev": true - } - } - }, "combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", @@ -2139,18 +1712,6 @@ } } }, - "console-browserify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", - "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", - "dev": true - }, - "constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", - "dev": true - }, "contains-path": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", @@ -2173,24 +1734,13 @@ "dev": true }, "copy-props": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/copy-props/-/copy-props-2.0.4.tgz", - "integrity": "sha512-7cjuUME+p+S3HZlbllgsn2CDwS+5eCCX16qBgNC4jgSTf49qR1VKy/Zhl400m0IQXl/bPGEVqncgUUMjrr4s8A==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/copy-props/-/copy-props-2.0.5.tgz", + "integrity": "sha512-XBlx8HSqrT0ObQwmSzM7WE5k8FxTV75h1DX1Z3n6NhQ/UYYAvInWYmG06vFt7hQZArE2fuO62aihiWIVQwh1sw==", "dev": true, "requires": { - "each-props": "^1.3.0", - "is-plain-object": "^2.0.1" - }, - "dependencies": { - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - } + "each-props": "^1.3.2", + "is-plain-object": "^5.0.0" } }, "core-util-is": { @@ -2199,70 +1749,6 @@ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "dev": true }, - "create-ecdh": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", - "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } - } - }, - "create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "dev": true, - "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "dev": true, - "requires": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "dev": true, - "requires": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - } - }, "css": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/css/-/css-3.0.0.tgz", @@ -2302,12 +1788,6 @@ "type": "^1.0.1" } }, - "dash-ast": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dash-ast/-/dash-ast-1.0.0.tgz", - "integrity": "sha512-Vy4dx7gquTeMcQR/hDkYLGUnwVil6vk4FOOct+djUnHOUWt+zJPJAaRIXaAFkPXtJjvlY7o3rfRu0/3hpnwoUA==", - "dev": true - }, "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -2447,12 +1927,6 @@ } } }, - "defined": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", - "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", - "dev": true - }, "del": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/del/-/del-5.1.0.tgz", @@ -2481,40 +1955,6 @@ "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==", "dev": true }, - "deps-sort": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/deps-sort/-/deps-sort-2.0.1.tgz", - "integrity": "sha512-1orqXQr5po+3KI6kQb9A4jnXT1PBwggGl2d7Sq2xsnOeI9GPcE/tGcF9UiSZtZBM7MukY4cAh7MemS6tZYipfw==", - "dev": true, - "requires": { - "JSONStream": "^1.0.3", - "shasum-object": "^1.0.0", - "subarg": "^1.0.0", - "through2": "^2.0.0" - }, - "dependencies": { - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - } - } - }, - "des.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", - "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, "detect-file": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", @@ -2527,42 +1967,12 @@ "integrity": "sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=", "dev": true }, - "detective": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.0.tgz", - "integrity": "sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==", - "dev": true, - "requires": { - "acorn-node": "^1.6.1", - "defined": "^1.0.0", - "minimist": "^1.1.1" - } - }, "diff": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "dev": true }, - "diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } - } - }, "dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", @@ -2581,21 +1991,6 @@ "esutils": "^2.0.2" } }, - "domain-browser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", - "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", - "dev": true - }, - "duplexer2": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", - "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", - "dev": true, - "requires": { - "readable-stream": "^2.0.2" - } - }, "duplexify": { "version": "3.7.1", "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", @@ -2629,29 +2024,6 @@ } } }, - "elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", - "dev": true, - "requires": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } - } - }, "emoji-regex": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", @@ -2860,6 +2232,16 @@ "v8-compile-cache": "^2.0.3" }, "dependencies": { + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, "cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -2982,6 +2364,18 @@ "requires": { "chalk": "^4.1.0", "plur": "^4.0.0" + }, + "dependencies": { + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + } } }, "eslint-import-resolver-node": { @@ -3213,22 +2607,6 @@ "es5-ext": "~0.10.14" } }, - "events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "dev": true - }, - "evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "dev": true, - "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, "expand-brackets": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", @@ -3392,15 +2770,12 @@ } }, "fancy-log": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz", - "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-2.0.0.tgz", + "integrity": "sha512-9CzxZbACXMUXW13tS0tI8XsGGmxWzO2DmYrGuBJOJ8k8q2K7hwfJA5qHjuPPe8wtsco33YR9wc+Rlr5wYFvhSA==", "dev": true, "requires": { - "ansi-gray": "^0.1.1", - "color-support": "^1.1.3", - "parse-node-version": "^1.0.0", - "time-stamp": "^1.0.0" + "color-support": "^1.1.3" } }, "fast-deep-equal": { @@ -3489,12 +2864,6 @@ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", "dev": true }, - "fast-safe-stringify": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", - "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", - "dev": true - }, "fastq": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.8.0.tgz", @@ -3653,12 +3022,6 @@ "for-in": "^1.0.1" } }, - "foreach": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", - "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", - "dev": true - }, "form-data": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.0.tgz", @@ -3742,12 +3105,6 @@ "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", "dev": true }, - "get-assigned-identifiers": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz", - "integrity": "sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ==", - "dev": true - }, "get-caller-file": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", @@ -3771,16 +3128,6 @@ "has-symbols": "^1.0.1" } }, - "get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - } - }, "get-value": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", @@ -3961,6 +3308,20 @@ "semver-greatest-satisfied-range": "^1.1.0", "v8flags": "^3.2.0", "yargs": "^7.1.0" + }, + "dependencies": { + "fancy-log": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz", + "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==", + "dev": true, + "requires": { + "ansi-gray": "^0.1.1", + "color-support": "^1.1.3", + "parse-node-version": "^1.0.0", + "time-stamp": "^1.0.0" + } + } } } } @@ -3974,18 +3335,6 @@ "concat-with-sourcemaps": "^1.0.0", "through2": "^2.0.0", "vinyl": "^2.0.0" - }, - "dependencies": { - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - } } }, "gulp-insert": { @@ -4033,58 +3382,6 @@ "glob": "^7.0.3", "kew": "^0.7.0", "plugin-error": "^0.1.2" - }, - "dependencies": { - "arr-diff": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-1.1.0.tgz", - "integrity": "sha1-aHwydYFjWI/vfeezb6vklesaOZo=", - "dev": true, - "requires": { - "arr-flatten": "^1.0.1", - "array-slice": "^0.2.3" - } - }, - "arr-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-2.1.0.tgz", - "integrity": "sha1-IPnqtexw9cfSFbEHexw5Fh0pLH0=", - "dev": true - }, - "array-slice": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz", - "integrity": "sha1-3Tz7gO15c6dRF82sabC5nshhhvU=", - "dev": true - }, - "extend-shallow": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-1.1.4.tgz", - "integrity": "sha1-Gda/lN/AnXa6cR85uHLSH/TdkHE=", - "dev": true, - "requires": { - "kind-of": "^1.1.0" - } - }, - "kind-of": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-1.1.0.tgz", - "integrity": "sha1-FAo9LUGjbS78+pN3tiwk+ElaXEQ=", - "dev": true - }, - "plugin-error": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-0.1.2.tgz", - "integrity": "sha1-O5uzM1zPAPQl4HQ34ZJ2ln2kes4=", - "dev": true, - "requires": { - "ansi-cyan": "^0.1.1", - "ansi-red": "^0.1.1", - "arr-diff": "^1.0.1", - "arr-union": "^2.0.1", - "extend-shallow": "^1.1.2" - } - } } }, "gulp-rename": { @@ -4123,16 +3420,6 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } } } }, @@ -4154,12 +3441,6 @@ "function-bind": "^1.1.1" } }, - "has-bigints": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", - "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", - "dev": true - }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -4172,23 +3453,6 @@ "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", "dev": true }, - "has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dev": true, - "requires": { - "has-symbols": "^1.0.2" - }, - "dependencies": { - "has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", - "dev": true - } - } - }, "has-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", @@ -4221,63 +3485,12 @@ } } }, - "hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", - "dev": true, - "requires": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - } - } - }, - "hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, "he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", "dev": true }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "dev": true, - "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, "homedir-polyfill": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", @@ -4293,24 +3506,6 @@ "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", "dev": true }, - "htmlescape": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/htmlescape/-/htmlescape-1.1.1.tgz", - "integrity": "sha1-OgPtwiFLyjtmQko+eVk0lQnLA1E=", - "dev": true - }, - "https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", - "dev": true - }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true - }, "ignore": { "version": "5.1.8", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", @@ -4361,56 +3556,6 @@ "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", "dev": true }, - "inline-source-map": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.6.2.tgz", - "integrity": "sha1-+Tk0ccGKedFyT4Y/o4tYY3Ct4qU=", - "dev": true, - "requires": { - "source-map": "~0.5.3" - } - }, - "insert-module-globals": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-7.2.1.tgz", - "integrity": "sha512-ufS5Qq9RZN+Bu899eA9QCAYThY+gGW7oRkmb0vC93Vlyu/CFGcH0OYPEjVkDXA5FEbTt1+VWzdoOD3Ny9N+8tg==", - "dev": true, - "requires": { - "JSONStream": "^1.0.3", - "acorn-node": "^1.5.2", - "combine-source-map": "^0.8.0", - "concat-stream": "^1.6.1", - "is-buffer": "^1.1.0", - "path-is-absolute": "^1.0.1", - "process": "~0.11.0", - "through2": "^2.0.0", - "undeclared-identifiers": "^1.1.2", - "xtend": "^4.0.0" - }, - "dependencies": { - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - } - } - }, - "internal-slot": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", - "dev": true, - "requires": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - } - }, "interpret": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", @@ -4459,31 +3604,12 @@ } } }, - "is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", "dev": true }, - "is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dev": true, - "requires": { - "has-bigints": "^1.0.1" - } - }, "is-binary-path": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", @@ -4493,16 +3619,6 @@ "binary-extensions": "^1.0.0" } }, - "is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, "is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", @@ -4587,15 +3703,6 @@ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", "dev": true }, - "is-generator-function": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", - "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, "is-glob": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", @@ -4637,15 +3744,6 @@ } } }, - "is-number-object": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", - "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, "is-path-cwd": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", @@ -4694,12 +3792,6 @@ "is-unc-path": "^1.0.0" } }, - "is-shared-array-buffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", - "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==", - "dev": true - }, "is-string": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", @@ -4715,124 +3807,6 @@ "has-symbols": "^1.0.1" } }, - "is-typed-array": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.8.tgz", - "integrity": "sha512-HqH41TNZq2fgtGT8WHVFVJhBVGuY3AnP3Q36K8JKXUxSxRgk/d+7NjmwG2vo2mYmXK8UYZKu0qH8bVP5gEisjA==", - "dev": true, - "requires": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-abstract": "^1.18.5", - "foreach": "^2.0.5", - "has-tostringtag": "^1.0.0" - }, - "dependencies": { - "es-abstract": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", - "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.1.1", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-symbols": "^1.0.2", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.1", - "is-string": "^1.0.7", - "is-weakref": "^1.0.1", - "object-inspect": "^1.11.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.1" - } - }, - "has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", - "dev": true - }, - "is-callable": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", - "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", - "dev": true - }, - "is-negative-zero": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", - "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", - "dev": true - }, - "is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "object-inspect": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", - "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==", - "dev": true - }, - "object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - } - }, - "string.prototype.trimend": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", - "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "string.prototype.trimstart": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", - "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - } - } - }, "is-unc-path": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", @@ -4860,15 +3834,6 @@ "integrity": "sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao=", "dev": true }, - "is-weakref": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.1.tgz", - "integrity": "sha512-b2jKc2pQZjaeFYWEf7ScFj+Be1I+PXmlu572Q8coTXZ+LD/QQZ7ShPMst8h16riVgyXTQwUsFEl74mDvc/3MHQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.0" - } - }, "is-windows": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", @@ -4946,12 +3911,6 @@ "universalify": "^1.0.0" } }, - "jsonparse": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", - "dev": true - }, "just-debounce": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/just-debounce/-/just-debounce-1.0.0.tgz", @@ -4970,16 +3929,6 @@ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true }, - "labeled-stream-splicer": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/labeled-stream-splicer/-/labeled-stream-splicer-2.0.2.tgz", - "integrity": "sha512-Ca4LSXFFZUjPScRaqOcFxneA0VpKZr4MMYCljyQr4LIewTLb3Y0IUTIsnBBsVubIeEfxeSZpSjSsRM8APEQaAw==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "stream-splicer": "^2.0.0" - } - }, "last-run": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/last-run/-/last-run-1.1.1.tgz", @@ -5072,12 +4021,6 @@ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true }, - "lodash.memoize": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz", - "integrity": "sha1-LcvSwofLwKVcxCMovQxzYVDVPj8=", - "dev": true - }, "log-symbols": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", @@ -5088,6 +4031,15 @@ "is-unicode-supported": "^0.1.0" } }, + "loupe": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.4.tgz", + "integrity": "sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ==", + "dev": true, + "requires": { + "get-func-name": "^2.0.0" + } + }, "lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -5174,17 +4126,6 @@ } } }, - "md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "dev": true, - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, "memoizee": { "version": "0.4.15", "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.15.tgz", @@ -5236,24 +4177,6 @@ "to-regex": "^3.0.2" } }, - "miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "dev": true, - "requires": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } - } - }, "mime-db": { "version": "1.44.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", @@ -5269,18 +4192,6 @@ "mime-db": "1.44.0" } }, - "minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true - }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", - "dev": true - }, "minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", @@ -5291,9 +4202,9 @@ } }, "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", "dev": true }, "mixin-deep": { @@ -5332,39 +4243,33 @@ "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true }, - "mkdirp-classic": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", - "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", - "dev": true - }, "mocha": { - "version": "9.1.3", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.1.3.tgz", - "integrity": "sha512-Xcpl9FqXOAYqI3j79pEtHBBnQgVXIhpULjGQa7DVb0Po+VzmSIK9kanAiWLHoRR/dbZ2qpdPshuXr8l1VaHCzw==", + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.2.2.tgz", + "integrity": "sha512-L6XC3EdwT6YrIk0yXpavvLkn8h+EU+Y5UcCHKECyMbdUIxyMuZj4bX4U9e1nvnvUUvQVsV2VHQr5zLdcUkhW/g==", "dev": true, "requires": { "@ungap/promise-all-settled": "1.1.2", "ansi-colors": "4.1.1", "browser-stdout": "1.3.1", - "chokidar": "3.5.2", - "debug": "4.3.2", + "chokidar": "3.5.3", + "debug": "4.3.3", "diff": "5.0.0", "escape-string-regexp": "4.0.0", "find-up": "5.0.0", - "glob": "7.1.7", + "glob": "7.2.0", "growl": "1.10.5", "he": "1.2.0", "js-yaml": "4.1.0", "log-symbols": "4.1.0", - "minimatch": "3.0.4", + "minimatch": "4.2.1", "ms": "2.1.3", - "nanoid": "3.1.25", + "nanoid": "3.3.1", "serialize-javascript": "6.0.0", "strip-json-comments": "3.1.1", "supports-color": "8.1.1", "which": "2.0.2", - "workerpool": "6.1.5", + "workerpool": "6.2.0", "yargs": "16.2.0", "yargs-parser": "20.2.4", "yargs-unparser": "2.0.0" @@ -5414,9 +4319,9 @@ } }, "chokidar": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", - "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", "dev": true, "requires": { "anymatch": "~3.1.2", @@ -5441,9 +4346,9 @@ } }, "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", "dev": true, "requires": { "ms": "2.1.2" @@ -5507,20 +4412,6 @@ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true }, - "glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, "glob-parent": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", @@ -5569,6 +4460,15 @@ "p-locate": "^5.0.0" } }, + "minimatch": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-4.2.1.tgz", + "integrity": "sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, "p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", @@ -5697,69 +4597,6 @@ "integrity": "sha1-zK/w4ckc9Vf+d+B535lUuRt0d1Y=", "dev": true }, - "module-deps": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/module-deps/-/module-deps-6.2.3.tgz", - "integrity": "sha512-fg7OZaQBcL4/L+AK5f4iVqf9OMbCclXfy/znXRxTVhJSeW5AIlS9AwheYwDaXM3lVW7OBeaeUEY3gbaC6cLlSA==", - "dev": true, - "requires": { - "JSONStream": "^1.0.3", - "browser-resolve": "^2.0.0", - "cached-path-relative": "^1.0.2", - "concat-stream": "~1.6.0", - "defined": "^1.0.0", - "detective": "^5.2.0", - "duplexer2": "^0.1.2", - "inherits": "^2.0.1", - "parents": "^1.0.0", - "readable-stream": "^2.0.2", - "resolve": "^1.4.0", - "stream-combiner2": "^1.1.1", - "subarg": "^1.0.0", - "through2": "^2.0.0", - "xtend": "^4.0.0" - }, - "dependencies": { - "browser-resolve": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-2.0.0.tgz", - "integrity": "sha512-7sWsQlYL2rGLy2IWm8WL8DCTJvYLc/qlOnsakDac87SOoCd16WLsaAMdCiAqsTNHIe+SXfaqyxyo6THoWqs8WQ==", - "dev": true, - "requires": { - "resolve": "^1.17.0" - } - }, - "is-core-module": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz", - "integrity": "sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", - "dev": true, - "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - } - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - } - } - }, "ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -5780,9 +4617,9 @@ "optional": true }, "nanoid": { - "version": "3.1.25", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.25.tgz", - "integrity": "sha512-rdwtIXaXCLFAQbnfqDRnI6jaRHp9fTcYBjtFKE8eezcZ7LuLjhUaQGNeMXf1HmRoCH32CLz6XwX0TtxEOS/A3Q==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz", + "integrity": "sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==", "dev": true }, "nanomatch": { @@ -5817,10 +4654,13 @@ "dev": true }, "node-fetch": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", - "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", - "dev": true + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "dev": true, + "requires": { + "whatwg-url": "^5.0.0" + } }, "normalize-package-data": { "version": "2.5.0", @@ -6021,12 +4861,6 @@ "readable-stream": "^2.0.1" } }, - "os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", - "dev": true - }, "os-locale": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", @@ -6069,12 +4903,6 @@ "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", "dev": true }, - "pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", - "dev": true - }, "parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -6084,28 +4912,6 @@ "callsites": "^3.0.0" } }, - "parents": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parents/-/parents-1.0.1.tgz", - "integrity": "sha1-/t1NK/GTp3dF/nHjcdc8MwfZx1E=", - "dev": true, - "requires": { - "path-platform": "~0.11.15" - } - }, - "parse-asn1": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", - "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", - "dev": true, - "requires": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, "parse-filepath": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", @@ -6144,12 +4950,6 @@ "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", "dev": true }, - "path-browserify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", - "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", - "dev": true - }, "path-dirname": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", @@ -6174,12 +4974,6 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, - "path-platform": { - "version": "0.11.15", - "resolved": "https://registry.npmjs.org/path-platform/-/path-platform-0.11.15.tgz", - "integrity": "sha1-6GQhf3TDaFDwhSt43Hv31KVyG/I=", - "dev": true - }, "path-root": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", @@ -6207,19 +5001,6 @@ "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", "dev": true }, - "pbkdf2": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", - "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", - "dev": true, - "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, "picocolors": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", @@ -6263,15 +5044,55 @@ } }, "plugin-error": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-1.0.1.tgz", - "integrity": "sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA==", + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-0.1.2.tgz", + "integrity": "sha1-O5uzM1zPAPQl4HQ34ZJ2ln2kes4=", "dev": true, "requires": { - "ansi-colors": "^1.0.1", - "arr-diff": "^4.0.0", - "arr-union": "^3.1.0", - "extend-shallow": "^3.0.2" + "ansi-cyan": "^0.1.1", + "ansi-red": "^0.1.1", + "arr-diff": "^1.0.1", + "arr-union": "^2.0.1", + "extend-shallow": "^1.1.2" + }, + "dependencies": { + "arr-diff": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-1.1.0.tgz", + "integrity": "sha1-aHwydYFjWI/vfeezb6vklesaOZo=", + "dev": true, + "requires": { + "arr-flatten": "^1.0.1", + "array-slice": "^0.2.3" + } + }, + "arr-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-2.1.0.tgz", + "integrity": "sha1-IPnqtexw9cfSFbEHexw5Fh0pLH0=", + "dev": true + }, + "array-slice": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz", + "integrity": "sha1-3Tz7gO15c6dRF82sabC5nshhhvU=", + "dev": true + }, + "extend-shallow": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-1.1.4.tgz", + "integrity": "sha1-Gda/lN/AnXa6cR85uHLSH/TdkHE=", + "dev": true, + "requires": { + "kind-of": "^1.1.0" + } + }, + "kind-of": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-1.1.0.tgz", + "integrity": "sha1-FAo9LUGjbS78+pN3tiwk+ElaXEQ=", + "dev": true + } } }, "plur": { @@ -6323,12 +5144,6 @@ "@esfx/disposable": "^1.0.0-pre.13" } }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", - "dev": true - }, "process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", @@ -6341,28 +5156,6 @@ "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", "dev": true }, - "public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } - } - }, "pump": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", @@ -6384,12 +5177,6 @@ "pump": "^2.0.0" } }, - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true - }, "q": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", @@ -6405,18 +5192,6 @@ "side-channel": "^1.0.4" } }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "dev": true - }, - "querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", - "dev": true - }, "randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -6426,25 +5201,6 @@ "safe-buffer": "^5.1.0" } }, - "randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "dev": true, - "requires": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "read-only-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-only-stream/-/read-only-stream-2.0.0.tgz", - "integrity": "sha1-JyT9aoET1zdkrCiNQ4YnDB2/F/A=", - "dev": true, - "requires": { - "readable-stream": "^2.0.2" - } - }, "read-pkg": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", @@ -6672,16 +5428,6 @@ "glob": "^7.1.3" } }, - "ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dev": true, - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, "run-parallel": { "version": "1.1.9", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.9.tgz", @@ -6703,12 +5449,6 @@ "ret": "~0.1.10" } }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, "sax": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", @@ -6777,31 +5517,6 @@ } } }, - "sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "shasum-object": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shasum-object/-/shasum-object-1.0.0.tgz", - "integrity": "sha512-Iqo5rp/3xVi6M4YheapzZhhGPVs0yZwHj7wvwQ1B9z8H6zk+FEnI7y3Teq7qwnekfEhu8WmG2z0z4iWZaxLWVg==", - "dev": true, - "requires": { - "fast-safe-stringify": "^2.0.7" - } - }, - "shell-quote": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.3.tgz", - "integrity": "sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==", - "dev": true - }, "side-channel": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", @@ -6821,12 +5536,6 @@ } } }, - "simple-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", - "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", - "dev": true - }, "slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", @@ -6997,9 +5706,9 @@ } }, "source-map-support": { - "version": "0.5.20", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.20.tgz", - "integrity": "sha512-n1lZZ8Ve4ksRqizaBQgxXDgKwttHDhyfQjA6YZZn8+AroHbsIz+JjwxQDxbp+7y5OYCI8t1Yk7etjD9CRd2hIw==", + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "dev": true, "requires": { "buffer-from": "^1.0.0", @@ -7100,86 +5809,18 @@ } } }, - "stream-browserify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz", - "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==", - "dev": true, - "requires": { - "inherits": "~2.0.4", - "readable-stream": "^3.5.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "stream-combiner2": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", - "integrity": "sha1-+02KFCDqNidk4hrUeAOXvry0HL4=", - "dev": true, - "requires": { - "duplexer2": "~0.1.0", - "readable-stream": "^2.0.2" - } - }, "stream-exhaust": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/stream-exhaust/-/stream-exhaust-1.0.2.tgz", "integrity": "sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw==", "dev": true }, - "stream-http": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-3.2.0.tgz", - "integrity": "sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A==", - "dev": true, - "requires": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "xtend": "^4.0.2" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, "stream-shift": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", "dev": true }, - "stream-splicer": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/stream-splicer/-/stream-splicer-2.0.1.tgz", - "integrity": "sha512-Xizh4/NPuYSyAXyT7g8IvdJ9HJpxIGL9PjyhtywCZvvP0OPIdqyrr4dMikeuvY8xahpdKEBlBTySe583totajg==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.2" - } - }, "streamqueue": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/streamqueue/-/streamqueue-0.0.6.tgz", @@ -7367,15 +6008,6 @@ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true }, - "subarg": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz", - "integrity": "sha1-9izxdYHplrSPyWVpn1TAauJouNI=", - "dev": true, - "requires": { - "minimist": "^1.1.0" - } - }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -7395,15 +6027,6 @@ "es6-symbol": "^3.1.1" } }, - "syntax-error": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/syntax-error/-/syntax-error-1.4.0.tgz", - "integrity": "sha512-YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w==", - "dev": true, - "requires": { - "acorn-node": "^1.2.0" - } - }, "table": { "version": "5.4.6", "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", @@ -7422,32 +6045,14 @@ "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", "dev": true }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true - }, "through2": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", - "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", "dev": true, "requires": { - "readable-stream": "3" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" } }, "through2-filter": { @@ -7478,15 +6083,6 @@ "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=", "dev": true }, - "timers-browserify": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz", - "integrity": "sha1-ycWLV1voQHN1y14kYtrO50NZ9B0=", - "dev": true, - "requires": { - "process": "~0.11.0" - } - }, "timers-ext": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz", @@ -7570,6 +6166,12 @@ } } }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=", + "dev": true + }, "tsconfig-paths": { "version": "3.9.0", "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz", @@ -7597,12 +6199,6 @@ "tslib": "^1.8.1" } }, - "tty-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz", - "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==", - "dev": true - }, "tunnel": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", @@ -7645,56 +6241,17 @@ "dev": true }, "typescript": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.2.3.tgz", - "integrity": "sha512-qOcYwxaByStAWrBf4x0fibwZvMRG+r4cQoTjbPtUlrWjBHbmCAww1i448U0GJ+3cNNEtebDteo/cHOR3xJ4wEw==", + "version": "4.5.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.5.tgz", + "integrity": "sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA==", "dev": true }, - "umd": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/umd/-/umd-3.0.3.tgz", - "integrity": "sha512-4IcGSufhFshvLNcMCV80UnQVlZ5pMOC8mvNPForqwA4+lzYQuetTESLDQkeLmihq8bRcnpbQa48Wb8Lh16/xow==", - "dev": true - }, - "unbox-primitive": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", - "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "has-bigints": "^1.0.1", - "has-symbols": "^1.0.2", - "which-boxed-primitive": "^1.0.2" - }, - "dependencies": { - "has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", - "dev": true - } - } - }, "unc-path-regex": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", "dev": true }, - "undeclared-identifiers": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/undeclared-identifiers/-/undeclared-identifiers-1.1.3.tgz", - "integrity": "sha512-pJOW4nxjlmfwKApE4zvxLScM/njmwj/DiUBv7EabwE4O8kRUy+HIwxQtZLBPll/jx1LJyBcqNfB3/cpv9EZwOw==", - "dev": true, - "requires": { - "acorn-node": "^1.3.0", - "dash-ast": "^1.0.0", - "get-assigned-identifiers": "^1.2.0", - "simple-concat": "^1.0.0", - "xtend": "^4.0.1" - } - }, "underscore": { "version": "1.13.1", "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.1.tgz", @@ -7836,44 +6393,12 @@ "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", "dev": true }, - "url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "dev": true, - "requires": { - "punycode": "1.3.2", - "querystring": "0.2.0" - }, - "dependencies": { - "punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", - "dev": true - } - } - }, "use": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", "dev": true }, - "util": { - "version": "0.12.4", - "resolved": "https://registry.npmjs.org/util/-/util-0.12.4.tgz", - "integrity": "sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "safe-buffer": "^5.1.2", - "which-typed-array": "^1.1.2" - } - }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -7997,12 +6522,22 @@ "source-map": "^0.5.1" } }, - "vm-browserify": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", - "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=", "dev": true }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", + "dev": true, + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, "which": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", @@ -8012,144 +6547,12 @@ "isexe": "^2.0.0" } }, - "which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dev": true, - "requires": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - } - }, "which-module": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", "dev": true }, - "which-typed-array": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.7.tgz", - "integrity": "sha512-vjxaB4nfDqwKI0ws7wZpxIlde1XrLX5uB0ZjpfshgmapJMD7jJWhZI+yToJTqaFByF0eNBcYxbjmCzoRP7CfEw==", - "dev": true, - "requires": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-abstract": "^1.18.5", - "foreach": "^2.0.5", - "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.7" - }, - "dependencies": { - "es-abstract": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", - "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.1.1", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-symbols": "^1.0.2", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.1", - "is-string": "^1.0.7", - "is-weakref": "^1.0.1", - "object-inspect": "^1.11.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.1" - } - }, - "has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", - "dev": true - }, - "is-callable": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", - "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", - "dev": true - }, - "is-negative-zero": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", - "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", - "dev": true - }, - "is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "object-inspect": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", - "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==", - "dev": true - }, - "object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - } - }, - "string.prototype.trimend": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", - "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "string.prototype.trimstart": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", - "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - } - } - }, "word-wrap": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", @@ -8157,9 +6560,9 @@ "dev": true }, "workerpool": { - "version": "6.1.5", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.1.5.tgz", - "integrity": "sha512-XdKkCK0Zqc6w3iTxLckiuJ81tiD/o5rBE/m+nXpRCB+/Sq4DqkfXZ/x0jW02DG1tGsfUGXbTJyZDP+eu67haSw==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.0.tgz", + "integrity": "sha512-Rsk5qQHJ9eowMH28Jwhe8HEbmdYDX4lwoMWshiCXugjtHqMD9ZbiqSDLxcsfdqsETPzVUtX5s1Z5kStiIM6l4A==", "dev": true }, "wrap-ansi": { @@ -8423,9 +6826,9 @@ }, "dependencies": { "camelcase": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", - "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true }, "decamelize": { diff --git a/package.json b/package.json index 31d9acb89763f..180063e1d8901 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "typescript", "author": "Microsoft Corp.", "homepage": "https://www.typescriptlang.org/", - "version": "4.5.0", + "version": "4.7.0", "license": "Apache-2.0", "description": "TypeScript is a language for application scale JavaScript development", "keywords": [ @@ -28,9 +28,9 @@ "engines": { "node": ">=4.2.0" }, + "packageManager": "npm@6.14.15", "devDependencies": { "@octokit/rest": "latest", - "@types/browserify": "latest", "@types/chai": "latest", "@types/convert-source-map": "latest", "@types/glob": "latest", @@ -39,7 +39,6 @@ "@types/gulp-newer": "latest", "@types/gulp-rename": "0.0.33", "@types/gulp-sourcemaps": "0.0.32", - "@types/jake": "latest", "@types/merge2": "latest", "@types/microsoft__typescript-etw": "latest", "@types/minimatch": "latest", @@ -51,17 +50,14 @@ "@types/node-fetch": "^2.3.4", "@types/q": "latest", "@types/source-map-support": "latest", - "@types/through2": "latest", "@types/xml2js": "^0.4.0", "@typescript-eslint/eslint-plugin": "^4.28.0", "@typescript-eslint/experimental-utils": "^4.28.0", "@typescript-eslint/parser": "^4.28.0", "async": "latest", "azure-devops-node-api": "^11.0.1", - "browser-resolve": "^1.11.2", - "browserify": "latest", "chai": "latest", - "chalk": "latest", + "chalk": "^4.1.2", "convert-source-map": "latest", "del": "5.1.0", "diff": "^4.0.2", @@ -86,13 +82,10 @@ "mocha-fivemat-progress-reporter": "latest", "ms": "^2.1.3", "node-fetch": "^2.6.1", - "plugin-error": "latest", - "pretty-hrtime": "^1.0.3", "prex": "^0.4.3", "q": "latest", "source-map-support": "latest", - "through2": "latest", - "typescript": "^4.2.3", + "typescript": "^4.5.5", "vinyl": "latest", "vinyl-sourcemaps-apply": "latest", "xml2js": "^0.4.19" @@ -108,7 +101,6 @@ "start": "node lib/tsc", "clean": "gulp clean", "gulp": "gulp", - "jake": "gulp", "lint": "gulp lint", "lint:ci": "gulp lint --ci", "lint:compiler": "gulp lint-compiler", diff --git a/scripts/bisect-test.ts b/scripts/bisect-test.ts deleted file mode 100644 index a3e48b29a81f5..0000000000000 --- a/scripts/bisect-test.ts +++ /dev/null @@ -1,63 +0,0 @@ -/** - * You should have ts-node installed globally before executing this, probably! - * Otherwise you'll need to compile this script before you start bisecting! - */ -import cp = require("child_process"); -import fs = require("fs"); - -// Slice off 'node bisect-test.js' from the command line args -const args = process.argv.slice(2); - -function tsc(tscArgs: string, onExit: (exitCode: number) => void) { - const tsc = cp.exec("node built/local/tsc.js " + tscArgs,() => void 0); - tsc.on("close", tscExitCode => { - onExit(tscExitCode); - }); -} - -// TODO: Rewrite bisect script to handle the post-jake/gulp swap period -const jake = cp.exec("jake clean local", () => void 0); -jake.on("close", jakeExitCode => { - if (jakeExitCode === 0) { - // See what we're being asked to do - if (args[1] === "compiles" || args[1] === "!compiles") { - tsc(args[0], tscExitCode => { - if ((tscExitCode === 0) === (args[1] === "compiles")) { - console.log("Good"); - process.exit(0); // Good - } - else { - console.log("Bad"); - process.exit(1); // Bad - } - }); - } - else if (args[1] === "emits" || args[1] === "!emits") { - tsc(args[0], tscExitCode => { - fs.readFile(args[2], "utf-8", (err, data) => { - const doesContains = data.indexOf(args[3]) >= 0; - if (doesContains === (args[1] === "emits")) { - console.log("Good"); - process.exit(0); // Good - } - else { - console.log("Bad"); - process.exit(1); // Bad - } - }); - }); - } - else { - console.log("Unknown command line arguments."); - console.log("Usage (compile errors): git bisect run ts-node scripts\bisect-test.ts '../failure.ts --module amd' !compiles"); - console.log("Usage (emit check): git bisect run ts-node scripts\bisect-test.ts bar.ts emits bar.js '_this = this'"); - // Aborts the 'git bisect run' process - process.exit(-1); - } - } - else { - // Compiler build failed; skip this commit - console.log("Skip"); - process.exit(125); // bisect skip - } -}); diff --git a/scripts/build/projects.js b/scripts/build/projects.js index 38db816e23b40..6f3da08c86ea5 100644 --- a/scripts/build/projects.js +++ b/scripts/build/projects.js @@ -39,7 +39,7 @@ const execTsc = (lkg, ...args) => exec(process.execPath, [resolve(findUpRoot(), lkg ? "./lib/tsc" : "./built/local/tsc"), "-b", ...args], - { hidePrompt: true }) + { hidePrompt: true }); const projectBuilder = new ProjectQueue((projects, lkg, force) => execTsc(lkg, ...(force ? ["--force"] : []), ...projects)); diff --git a/scripts/build/utils.js b/scripts/build/utils.js index cfb7924d62399..3bcad44177551 100644 --- a/scripts/build/utils.js +++ b/scripts/build/utils.js @@ -26,7 +26,7 @@ const { Readable, Duplex } = require("stream"); * @property {boolean} [hidePrompt] * @property {boolean} [waitForExit=true] */ -function exec(cmd, args, options = {}) { +async function exec(cmd, args, options = {}) { return /**@type {Promise<{exitCode: number}>}*/(new Promise((resolve, reject) => { const { ignoreExitCode, cancelToken = CancellationToken.none, waitForExit = true } = options; cancelToken.throwIfCancellationRequested(); diff --git a/scripts/open-cherry-pick-pr.ts b/scripts/open-cherry-pick-pr.ts index 0227a90dc2302..07e61b8e3bf2f 100644 --- a/scripts/open-cherry-pick-pr.ts +++ b/scripts/open-cherry-pick-pr.ts @@ -33,9 +33,9 @@ async function main() { const inputPR = (await gh.pulls.get({ pull_number: +process.env.SOURCE_ISSUE, owner: "microsoft", repo: "TypeScript" })).data; let remoteName = "origin"; - if (inputPR.base.repo.git_url !== `git:github.com/microsoft/TypeScript`) { + if (inputPR.base.repo.git_url !== `git:github.com/microsoft/TypeScript` && inputPR.base.repo.git_url !== `git://github.com/microsoft/TypeScript`) { runSequence([ - ["git", ["remote", "add", "nonlocal", inputPR.base.repo.git_url]] + ["git", ["remote", "add", "nonlocal", inputPR.base.repo.git_url.replace(/^git:(?:\/\/)?/, "https://")]] ]); remoteName = "nonlocal"; } diff --git a/scripts/processDiagnosticMessages.ts b/scripts/processDiagnosticMessages.ts index 53d1ca75db887..fd5f825b8483b 100644 --- a/scripts/processDiagnosticMessages.ts +++ b/scripts/processDiagnosticMessages.ts @@ -41,7 +41,7 @@ function main(): void { const outputFilesDir = path.dirname(inputFilePath); const thisFilePathRel = path.relative(process.cwd(), outputFilesDir); - const infoFileOutput = buildInfoFileOutput(diagnosticMessages, "./diagnosticInformationMap.generated.ts", thisFilePathRel); + const infoFileOutput = buildInfoFileOutput(diagnosticMessages, `./${path.basename(inputFilePath)}`, thisFilePathRel); checkForUniqueCodes(diagnosticMessages); writeFile("diagnosticInformationMap.generated.ts", infoFileOutput); @@ -62,7 +62,7 @@ function checkForUniqueCodes(diagnosticTable: InputDiagnosticMessageTable) { function buildInfoFileOutput(messageTable: InputDiagnosticMessageTable, inputFilePathRel: string, thisFilePathRel: string): string { let result = "// \r\n" + - "// generated from '" + inputFilePathRel + "' by '" + thisFilePathRel.replace(/\\/g, "/") + "'\r\n" + + "// generated from '" + inputFilePathRel + "' in '" + thisFilePathRel.replace(/\\/g, "/") + "'\r\n" + "/* @internal */\r\n" + "namespace ts {\r\n" + " function diag(code: number, category: DiagnosticCategory, key: string, message: string, reportsUnnecessary?: {}, elidedInCompatabilityPyramid?: boolean, reportsDeprecated?: {}): DiagnosticMessage {\r\n" + diff --git a/src/compiler/binder.ts b/src/compiler/binder.ts index d26da9bcbf082..a5dc3db10bc3a 100644 --- a/src/compiler/binder.ts +++ b/src/compiler/binder.ts @@ -174,14 +174,12 @@ namespace ts { const binder = createBinder(); export function bindSourceFile(file: SourceFile, options: CompilerOptions) { - tracing?.push(tracing.Phase.Bind, "bindSourceFile", { path: file.path }, /*separateBeginAndEnd*/ true); performance.mark("beforeBind"); perfLogger.logStartBindFile("" + file.fileName); binder(file, options); perfLogger.logStopBindFile(); performance.mark("afterBind"); performance.measure("Bind", "beforeBind", "afterBind"); - tracing?.pop(); } function createBinder(): (file: SourceFile, options: CompilerOptions) => void { @@ -253,7 +251,9 @@ namespace ts { Debug.attachFlowNodeDebugInfo(reportedUnreachableFlow); if (!file.locals) { + tracing?.push(tracing.Phase.Bind, "bindSourceFile", { path: file.path }, /*separateBeginAndEnd*/ true); bind(file); + tracing?.pop(); file.symbolCount = symbolCount; file.classifiableNames = classifiableNames; delayedBindJSDocTypedefTag(); @@ -657,11 +657,15 @@ namespace ts { const saveExceptionTarget = currentExceptionTarget; const saveActiveLabelList = activeLabelList; const saveHasExplicitReturn = hasExplicitReturn; - const isIIFE = containerFlags & ContainerFlags.IsFunctionExpression && !hasSyntacticModifier(node, ModifierFlags.Async) && - !(node as FunctionLikeDeclaration).asteriskToken && !!getImmediatelyInvokedFunctionExpression(node); + const isImmediatelyInvoked = + (containerFlags & ContainerFlags.IsFunctionExpression && + !hasSyntacticModifier(node, ModifierFlags.Async) && + !(node as FunctionLikeDeclaration).asteriskToken && + !!getImmediatelyInvokedFunctionExpression(node)) || + node.kind === SyntaxKind.ClassStaticBlockDeclaration; // A non-async, non-generator IIFE is considered part of the containing control flow. Return statements behave // similarly to break statements that exit to a label just past the statement body. - if (!isIIFE) { + if (!isImmediatelyInvoked) { currentFlow = initFlowNode({ flags: FlowFlags.Start }); if (containerFlags & (ContainerFlags.IsFunctionExpression | ContainerFlags.IsObjectLiteralOrClassExpressionMethodOrAccessor)) { currentFlow.node = node as FunctionExpression | ArrowFunction | MethodDeclaration | GetAccessorDeclaration | SetAccessorDeclaration; @@ -669,7 +673,7 @@ namespace ts { } // We create a return control flow graph for IIFEs and constructors. For constructors // we use the return control flow graph in strict property initialization checks. - currentReturnTarget = isIIFE || node.kind === SyntaxKind.Constructor || node.kind === SyntaxKind.ClassStaticBlockDeclaration || (isInJSFile(node) && (node.kind === SyntaxKind.FunctionDeclaration || node.kind === SyntaxKind.FunctionExpression)) ? createBranchLabel() : undefined; + currentReturnTarget = isImmediatelyInvoked || node.kind === SyntaxKind.Constructor || (isInJSFile(node) && (node.kind === SyntaxKind.FunctionDeclaration || node.kind === SyntaxKind.FunctionExpression)) ? createBranchLabel() : undefined; currentExceptionTarget = undefined; currentBreakTarget = undefined; currentContinueTarget = undefined; @@ -695,7 +699,7 @@ namespace ts { (node as FunctionLikeDeclaration | ClassStaticBlockDeclaration).returnFlowNode = currentFlow; } } - if (!isIIFE) { + if (!isImmediatelyInvoked) { currentFlow = saveCurrentFlow; } currentBreakTarget = saveBreakTarget; @@ -889,7 +893,7 @@ namespace ts { return isDottedName(expr) || (isPropertyAccessExpression(expr) || isNonNullExpression(expr) || isParenthesizedExpression(expr)) && isNarrowableReference(expr.expression) || isBinaryExpression(expr) && expr.operatorToken.kind === SyntaxKind.CommaToken && isNarrowableReference(expr.right) - || isElementAccessExpression(expr) && isStringOrNumericLiteralLike(expr.argumentExpression) && isNarrowableReference(expr.expression) + || isElementAccessExpression(expr) && (isStringOrNumericLiteralLike(expr.argumentExpression) || isEntityNameExpression(expr.argumentExpression)) && isNarrowableReference(expr.expression) || isAssignmentExpression(expr) && isNarrowableReference(expr.left); } @@ -1069,7 +1073,6 @@ namespace ts { node = node.parent; } return !isStatementCondition(node) && - !isLogicalAssignmentExpression(node.parent) && !isLogicalExpression(node.parent) && !(isOptionalChain(node.parent) && node.parent.expression === node); } @@ -1365,7 +1368,7 @@ namespace ts { } function maybeBindExpressionFlowIfCall(node: Expression) { - // A top level or LHS of comma expression call expression with a dotted function name and at least one argument + // A top level or comma expression call expression with a dotted function name and at least one argument // is potentially an assertion and is therefore included in the control flow. if (node.kind === SyntaxKind.CallExpression) { const call = node as CallExpression; @@ -1550,24 +1553,29 @@ namespace ts { return state; } - function onLeft(left: Expression, state: WorkArea, _node: BinaryExpression) { + function onLeft(left: Expression, state: WorkArea, node: BinaryExpression) { if (!state.skip) { - return maybeBind(left); + const maybeBound = maybeBind(left); + if (node.operatorToken.kind === SyntaxKind.CommaToken) { + maybeBindExpressionFlowIfCall(left); + } + return maybeBound; } } - function onOperator(operatorToken: BinaryOperatorToken, state: WorkArea, node: BinaryExpression) { + function onOperator(operatorToken: BinaryOperatorToken, state: WorkArea, _node: BinaryExpression) { if (!state.skip) { - if (operatorToken.kind === SyntaxKind.CommaToken) { - maybeBindExpressionFlowIfCall(node.left); - } bind(operatorToken); } } - function onRight(right: Expression, state: WorkArea, _node: BinaryExpression) { + function onRight(right: Expression, state: WorkArea, node: BinaryExpression) { if (!state.skip) { - return maybeBind(right); + const maybeBound = maybeBind(right); + if (node.operatorToken.kind === SyntaxKind.CommaToken) { + maybeBindExpressionFlowIfCall(right); + } + return maybeBound; } } @@ -2066,12 +2074,6 @@ namespace ts { seen.set(identifier.escapedText, currentKind); continue; } - - if (currentKind === ElementKind.Property && existingKind === ElementKind.Property) { - const span = getErrorSpanForNode(file, identifier); - file.bindDiagnostics.push(createFileDiagnostic(file, span.start, span.length, - Diagnostics.An_object_literal_cannot_have_multiple_properties_with_the_same_name_in_strict_mode)); - } } } @@ -2341,7 +2343,7 @@ namespace ts { } function checkStrictModeNumericLiteral(node: NumericLiteral) { - if (inStrictMode && node.numericLiteralFlags & TokenFlags.Octal) { + if (languageVersion < ScriptTarget.ES5 && inStrictMode && node.numericLiteralFlags & TokenFlags.Octal) { file.bindDiagnostics.push(createDiagnosticForNode(node, Diagnostics.Octal_literals_are_not_allowed_in_strict_mode)); } } @@ -2409,6 +2411,7 @@ namespace ts { return; } setParent(node, parent); + if (tracing) (node as TracingNode).tracingPath = file.path; const saveInStrictMode = inStrictMode; // Even though in the AST the jsdoc @typedef node belongs to the current node, @@ -2947,6 +2950,7 @@ namespace ts { case SyntaxKind.MethodDeclaration: case SyntaxKind.GetAccessor: case SyntaxKind.SetAccessor: + case SyntaxKind.ClassStaticBlockDeclaration: // this.foo assignment in a JavaScript class // Bind this property to the containing class const containingClass = thisContainer.parent; @@ -3287,7 +3291,7 @@ namespace ts { } if (!isBindingPattern(node.name)) { - if (isInJSFile(node) && isRequireVariableDeclaration(node) && !getJSDocTypeTag(node)) { + if (isInJSFile(node) && isVariableDeclarationInitializedToBareOrAccessedRequire(node) && !getJSDocTypeTag(node) && !(getCombinedModifierFlags(node) & ModifierFlags.Export)) { declareSymbolAndAddToSymbolTable(node as Declaration, SymbolFlags.Alias, SymbolFlags.AliasExcludes); } else if (isBlockOrCatchScoped(node)) { diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index b166672ccac70..01677e2f8aefc 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -134,6 +134,9 @@ namespace ts { EmptyObjectStrictFacts = All & ~(EQUndefined | EQNull | EQUndefinedOrNull), AllTypeofNE = TypeofNEString | TypeofNENumber | TypeofNEBigInt | TypeofNEBoolean | TypeofNESymbol | TypeofNEObject | TypeofNEFunction | NEUndefined, EmptyObjectFacts = All, + // Masks + OrFactsMask = TypeofEQFunction | TypeofNEObject, + AndFactsMask = All & ~OrFactsMask, } const typeofEQFacts: ReadonlyESMap = new Map(getEntries({ @@ -169,15 +172,20 @@ namespace ts { EnumTagType, ResolvedTypeArguments, ResolvedBaseTypes, + WriteType, } const enum CheckMode { - Normal = 0, // Normal type checking - Contextual = 1 << 0, // Explicitly assigned contextual type, therefore not cacheable - Inferential = 1 << 1, // Inferential typing - SkipContextSensitive = 1 << 2, // Skip context sensitive function expressions - SkipGenericFunctions = 1 << 3, // Skip single signature generic functions - IsForSignatureHelp = 1 << 4, // Call resolution for purposes of signature help + Normal = 0, // Normal type checking + Contextual = 1 << 0, // Explicitly assigned contextual type, therefore not cacheable + Inferential = 1 << 1, // Inferential typing + SkipContextSensitive = 1 << 2, // Skip context sensitive function expressions + SkipGenericFunctions = 1 << 3, // Skip single signature generic functions + IsForSignatureHelp = 1 << 4, // Call resolution for purposes of signature help + IsForStringLiteralArgumentCompletions = 1 << 5, // Do not infer from the argument currently being typed + RestBindingElement = 1 << 6, // Checking a type that is going to be used to determine the type of a rest binding element + // e.g. in `const { a, ...rest } = foo`, when checking the type of `foo` to determine the type of `rest`, + // we need to preserve generic types instead of substituting them for constraints } const enum SignatureCheckMode { @@ -193,8 +201,7 @@ namespace ts { Source = 1 << 0, Target = 1 << 1, PropertyCheck = 1 << 2, - UnionIntersectionCheck = 1 << 3, - InPropertyCheck = 1 << 4, + InPropertyCheck = 1 << 3, } const enum RecursionFlags { @@ -300,7 +307,7 @@ namespace ts { (preserveConstEnums && moduleState === ModuleInstanceState.ConstEnumOnly); } - export function createTypeChecker(host: TypeCheckerHost, produceDiagnostics: boolean): TypeChecker { + export function createTypeChecker(host: TypeCheckerHost): TypeChecker { const getPackagesMap = memoize(() => { // A package name maps to true when we detect it has .d.ts files. // This is useful as an approximation of whether a package bundles its own types. @@ -317,6 +324,12 @@ namespace ts { return map; }); + let deferredDiagnosticsCallbacks: (() => void)[] = []; + + let addLazyDiagnostic = (arg: () => void) => { + deferredDiagnosticsCallbacks.push(arg); + }; + // Cancellation that controls whether or not we can cancel in the middle of type checking. // In general cancelling is *not* safe for the type checker. We might be in the middle of // computing something, and we will leave our internals in an inconsistent state. Callers @@ -342,6 +355,7 @@ namespace ts { let instantiationDepth = 0; let inlineLevel = 0; let currentNode: Node | undefined; + let varianceTypeParameter: TypeParameter | undefined; const emptySymbols = createSymbolTable(); const arrayVariances = [VarianceFlags.Covariant]; @@ -410,6 +424,7 @@ namespace ts { const location = getParseTreeNode(locationIn); return location ? getTypeOfSymbolAtLocation(symbol, location) : errorType; }, + getTypeOfSymbol, getSymbolsOfParameterPropertyDeclaration: (parameterIn, parameterName) => { const parameter = getParseTreeNode(parameterIn, isParameter); if (parameter === undefined) return Debug.fail("Cannot get symbols of a synthetic parameter that cannot be resolved to a parse-tree node."); @@ -432,6 +447,7 @@ namespace ts { getIndexInfosOfType, getSignaturesOfType, getIndexTypeOfType: (type, kind) => getIndexTypeOfType(type, kind === IndexKind.String ? stringType : numberType), + getIndexType: type => getIndexType(type), getBaseTypes, getBaseTypeOfLiteralType, getWidenedType, @@ -525,26 +541,10 @@ namespace ts { if (!node) { return undefined; } - const containingCall = findAncestor(node, isCallLikeExpression); - const containingCallResolvedSignature = containingCall && getNodeLinks(containingCall).resolvedSignature; - if (contextFlags! & ContextFlags.Completions && containingCall) { - let toMarkSkip = node as Node; - do { - getNodeLinks(toMarkSkip).skipDirectInference = true; - toMarkSkip = toMarkSkip.parent; - } while (toMarkSkip && toMarkSkip !== containingCall); - getNodeLinks(containingCall).resolvedSignature = undefined; - } - const result = getContextualType(node, contextFlags); - if (contextFlags! & ContextFlags.Completions && containingCall) { - let toMarkSkip = node as Node; - do { - getNodeLinks(toMarkSkip).skipDirectInference = undefined; - toMarkSkip = toMarkSkip.parent; - } while (toMarkSkip && toMarkSkip !== containingCall); - getNodeLinks(containingCall).resolvedSignature = containingCallResolvedSignature; + if (contextFlags! & ContextFlags.Completions) { + return runWithInferenceBlockedFromSourceNode(node, () => getContextualType(node, contextFlags)); } - return result; + return getContextualType(node, contextFlags); }, getContextualTypeForObjectLiteralElement: nodeIn => { const node = getParseTreeNode(nodeIn, isObjectLiteralElementLike); @@ -563,6 +563,8 @@ namespace ts { getFullyQualifiedName, getResolvedSignature: (node, candidatesOutArray, argumentCount) => getResolvedSignatureWorker(node, candidatesOutArray, argumentCount, CheckMode.Normal), + getResolvedSignatureForStringLiteralCompletions: (call, editingArgument, candidatesOutArray) => + getResolvedSignatureWorker(call, candidatesOutArray, /*argumentCount*/ undefined, CheckMode.IsForStringLiteralArgumentCompletions, editingArgument), getResolvedSignatureForSignatureHelp: (node, candidatesOutArray, argumentCount) => getResolvedSignatureWorker(node, candidatesOutArray, argumentCount, CheckMode.IsForSignatureHelp), getExpandedParameters, @@ -697,8 +699,8 @@ namespace ts { // this call is done. cancellationToken = ct; - // Ensure file is type checked - checkSourceFile(file); + // Ensure file is type checked, with _eager_ diagnostic production, so identifiers are registered as potentially unused + checkSourceFileWithEagerDiagnostics(file); Debug.assert(!!(getNodeLinks(file).flags & NodeCheckFlags.TypeChecked)); diagnostics = addRange(diagnostics, suggestionDiagnostics.getDiagnostics(file.fileName)); @@ -729,12 +731,39 @@ namespace ts { isDeclarationVisible, isPropertyAccessible, getTypeOnlyAliasDeclaration, + getMemberOverrideModifierStatus, }; - function getResolvedSignatureWorker(nodeIn: CallLikeExpression, candidatesOutArray: Signature[] | undefined, argumentCount: number | undefined, checkMode: CheckMode): Signature | undefined { + function runWithInferenceBlockedFromSourceNode(node: Node | undefined, fn: () => T): T { + const containingCall = findAncestor(node, isCallLikeExpression); + const containingCallResolvedSignature = containingCall && getNodeLinks(containingCall).resolvedSignature; + if (containingCall) { + let toMarkSkip = node!; + do { + getNodeLinks(toMarkSkip).skipDirectInference = true; + toMarkSkip = toMarkSkip.parent; + } while (toMarkSkip && toMarkSkip !== containingCall); + getNodeLinks(containingCall).resolvedSignature = undefined; + } + const result = fn(); + if (containingCall) { + let toMarkSkip = node!; + do { + getNodeLinks(toMarkSkip).skipDirectInference = undefined; + toMarkSkip = toMarkSkip.parent; + } while (toMarkSkip && toMarkSkip !== containingCall); + getNodeLinks(containingCall).resolvedSignature = containingCallResolvedSignature; + } + return result; + } + + function getResolvedSignatureWorker(nodeIn: CallLikeExpression, candidatesOutArray: Signature[] | undefined, argumentCount: number | undefined, checkMode: CheckMode, editingArgument?: Node): Signature | undefined { const node = getParseTreeNode(nodeIn, isCallLikeExpression); apparentArgumentCount = argumentCount; - const res = node ? getResolvedSignature(node, candidatesOutArray, checkMode) : undefined; + const res = + !node ? undefined : + editingArgument ? runWithInferenceBlockedFromSourceNode(editingArgument, () => getResolvedSignature(node, candidatesOutArray, checkMode)) : + getResolvedSignature(node, candidatesOutArray, checkMode); apparentArgumentCount = undefined; return res; } @@ -753,6 +782,7 @@ namespace ts { const subtypeReductionCache = new Map(); const evolvingArrayTypes: EvolvingArrayType[] = []; const undefinedProperties: SymbolTable = new Map(); + const markerTypes = new Set(); const unknownSymbol = createSymbol(SymbolFlags.Property, "unknown" as __String); const resolvingSymbol = createSymbol(0, InternalSymbolName.Resolving); @@ -806,6 +836,8 @@ namespace ts { const restrictiveMapper: TypeMapper = makeFunctionTypeMapper(t => t.flags & TypeFlags.TypeParameter ? getRestrictiveTypeParameter(t as TypeParameter) : t); const permissiveMapper: TypeMapper = makeFunctionTypeMapper(t => t.flags & TypeFlags.TypeParameter ? wildcardType : t); + const uniqueLiteralType = createIntrinsicType(TypeFlags.Never, "never"); // `uniqueLiteralType` is a special `never` flagged by union reduction to behave as a literal + const uniqueLiteralMapper: TypeMapper = makeFunctionTypeMapper(t => t.flags & TypeFlags.TypeParameter ? uniqueLiteralType : t); // replace all type parameters with the unique literal type (disregarding constraints) const emptyObjectType = createAnonymousType(undefined, emptySymbols, emptyArray, emptyArray, emptyArray); const emptyJsxObjectType = createAnonymousType(undefined, emptySymbols, emptyArray, emptyArray, emptyArray); @@ -1015,6 +1047,22 @@ namespace ts { const builtinGlobals = createSymbolTable(); builtinGlobals.set(undefinedSymbol.escapedName, undefinedSymbol); + // Extensions suggested for path imports when module resolution is node12 or higher. + // The first element of each tuple is the extension a file has. + // The second element of each tuple is the extension that should be used in a path import. + // e.g. if we want to import file `foo.mts`, we should write `import {} from "./foo.mjs". + const suggestedExtensions: [string, string][] = [ + [".mts", ".mjs"], + [".ts", ".js"], + [".cts", ".cjs"], + [".mjs", ".mjs"], + [".js", ".js"], + [".cjs", ".cjs"], + [".tsx", compilerOptions.jsx === JsxEmit.Preserve ? ".jsx" : ".js"], + [".jsx", ".jsx"], + [".json", ".json"], + ]; + initializeTypeChecker(); return checker; @@ -1176,6 +1224,10 @@ namespace ts { return diagnostic; } + function isDeprecatedSymbol(symbol: Symbol) { + return !!(getDeclarationNodeFlagsFromSymbol(symbol) & NodeFlags.Deprecated); + } + function addDeprecatedSuggestion(location: Node, declarations: Node[], deprecatedEntity: string) { const diagnostic = createDiagnosticForNode(location, Diagnostics._0_is_deprecated, deprecatedEntity); return addDeprecatedSuggestionWorker(declarations, diagnostic); @@ -1291,13 +1343,14 @@ namespace ts { else { // error const isEitherEnum = !!(target.flags & SymbolFlags.Enum || source.flags & SymbolFlags.Enum); const isEitherBlockScoped = !!(target.flags & SymbolFlags.BlockScopedVariable || source.flags & SymbolFlags.BlockScopedVariable); - const message = isEitherEnum - ? Diagnostics.Enum_declarations_can_only_merge_with_namespace_or_other_enum_declarations - : isEitherBlockScoped - ? Diagnostics.Cannot_redeclare_block_scoped_variable_0 - : Diagnostics.Duplicate_identifier_0; + const message = isEitherEnum ? Diagnostics.Enum_declarations_can_only_merge_with_namespace_or_other_enum_declarations + : isEitherBlockScoped ? Diagnostics.Cannot_redeclare_block_scoped_variable_0 + : Diagnostics.Duplicate_identifier_0; const sourceSymbolFile = source.declarations && getSourceFileOfNode(source.declarations[0]); const targetSymbolFile = target.declarations && getSourceFileOfNode(target.declarations[0]); + + const isSourcePlainJs = isPlainJsFile(sourceSymbolFile, compilerOptions.checkJs); + const isTargetPlainJs = isPlainJsFile(targetSymbolFile, compilerOptions.checkJs); const symbolName = symbolToString(source); // Collect top-level duplicate identifier errors into one mapping, so we can then merge their diagnostics if there are a bunch @@ -1308,12 +1361,12 @@ namespace ts { ({ firstFile, secondFile, conflictingSymbols: new Map() } as DuplicateInfoForFiles)); const conflictingSymbolInfo = getOrUpdate(filesDuplicates.conflictingSymbols, symbolName, () => ({ isBlockScoped: isEitherBlockScoped, firstFileLocations: [], secondFileLocations: [] } as DuplicateInfoForSymbol)); - addDuplicateLocations(conflictingSymbolInfo.firstFileLocations, source); - addDuplicateLocations(conflictingSymbolInfo.secondFileLocations, target); + if (!isSourcePlainJs) addDuplicateLocations(conflictingSymbolInfo.firstFileLocations, source); + if (!isTargetPlainJs) addDuplicateLocations(conflictingSymbolInfo.secondFileLocations, target); } else { - addDuplicateDeclarationErrorsForSymbols(source, message, symbolName, target); - addDuplicateDeclarationErrorsForSymbols(target, message, symbolName, source); + if (!isSourcePlainJs) addDuplicateDeclarationErrorsForSymbols(source, message, symbolName, target); + if (!isTargetPlainJs) addDuplicateDeclarationErrorsForSymbols(target, message, symbolName, source); } } return target; @@ -1750,6 +1803,11 @@ namespace ts { } } + function isConstAssertion(location: Node) { + return (isAssertionExpression(location) && isConstTypeReference(location.type)) + || (isJSDocTypeTag(location) && isConstTypeReference(location.typeExpression)); + } + /** * Resolve a given name for a given meaning at a given location. An error is reported if the name was not found and * the nameNotFoundMessage argument is not undefined. Returns the resolved symbol, or undefined if no symbol with @@ -1764,8 +1822,9 @@ namespace ts { nameNotFoundMessage: DiagnosticMessage | undefined, nameArg: __String | Identifier | undefined, isUse: boolean, - excludeGlobals = false): Symbol | undefined { - return resolveNameHelper(location, name, meaning, nameNotFoundMessage, nameArg, isUse, excludeGlobals, getSymbol); + excludeGlobals = false, + getSpellingSuggstions = true): Symbol | undefined { + return resolveNameHelper(location, name, meaning, nameNotFoundMessage, nameArg, isUse, excludeGlobals, getSpellingSuggstions, getSymbol); } function resolveNameHelper( @@ -1776,6 +1835,7 @@ namespace ts { nameArg: __String | Identifier | undefined, isUse: boolean, excludeGlobals: boolean, + getSpellingSuggestions: boolean, lookup: typeof getSymbol): Symbol | undefined { const originalLocation = location; // needed for did-you-mean error reporting, which gathers candidates starting from the original location let result: Symbol | undefined; @@ -1789,6 +1849,11 @@ namespace ts { let isInExternalModule = false; loop: while (location) { + if (name === "const" && isConstAssertion(location)) { + // `const` in an `as const` has no symbol, but issues no error because there is no *actual* lookup of the type + // (it refers to the constant type of the expression instead) + return undefined; + } // Locals of a source file are not in scope (because they get merged into the global symbol table) if (location.locals && !isGlobalSourceFile(location)) { if (result = lookup(location.locals, name, meaning)) { @@ -1800,11 +1865,13 @@ namespace ts { // - parameters are only in the scope of function body // This restriction does not apply to JSDoc comment types because they are parented // at a higher level than type parameters would normally be - if (meaning & result.flags & SymbolFlags.Type && lastLocation.kind !== SyntaxKind.JSDocComment) { + if (meaning & result.flags & SymbolFlags.Type && lastLocation.kind !== SyntaxKind.JSDoc) { useResult = result.flags & SymbolFlags.TypeParameter // type parameters are visible in parameter list, return type and type parameter list ? lastLocation === (location as FunctionLikeDeclaration).type || lastLocation.kind === SyntaxKind.Parameter || + lastLocation.kind === SyntaxKind.JSDocParameterTag || + lastLocation.kind === SyntaxKind.JSDocReturnTag || lastLocation.kind === SyntaxKind.TypeParameter // local types not visible outside the function body : false; @@ -2073,8 +2140,8 @@ namespace ts { lastSelfReferenceLocation = location; } lastLocation = location; - location = isJSDocTemplateTag(location) ? - getEffectiveContainerForJSDocTemplateTag(location) || location.parent : + location = isJSDocTemplateTag(location) ? getEffectiveContainerForJSDocTemplateTag(location) || location.parent : + isJSDocParameterTag(location) || isJSDocReturnTag(location) ? getHostSignatureFromJSDoc(location) || location.parent : location.parent; } @@ -2106,130 +2173,128 @@ namespace ts { } if (!result) { if (nameNotFoundMessage) { - if (!errorLocation || - !checkAndReportErrorForMissingPrefix(errorLocation, name, nameArg!) && // TODO: GH#18217 - !checkAndReportErrorForExtendingInterface(errorLocation) && - !checkAndReportErrorForUsingTypeAsNamespace(errorLocation, name, meaning) && - !checkAndReportErrorForExportingPrimitiveType(errorLocation, name) && - !checkAndReportErrorForUsingTypeAsValue(errorLocation, name, meaning) && - !checkAndReportErrorForUsingNamespaceModuleAsValue(errorLocation, name, meaning) && - !checkAndReportErrorForUsingValueAsType(errorLocation, name, meaning)) { - let suggestion: Symbol | undefined; - if (suggestionCount < maximumSuggestionCount) { - suggestion = getSuggestedSymbolForNonexistentSymbol(originalLocation, name, meaning); - const isGlobalScopeAugmentationDeclaration = suggestion?.valueDeclaration && isAmbientModule(suggestion.valueDeclaration) && isGlobalScopeAugmentation(suggestion.valueDeclaration); - if (isGlobalScopeAugmentationDeclaration) { - suggestion = undefined; - } - if (suggestion) { - const suggestionName = symbolToString(suggestion); - const isUncheckedJS = isUncheckedJSSuggestion(originalLocation, suggestion, /*excludeClasses*/ false); - const message = meaning === SymbolFlags.Namespace || nameArg && typeof nameArg !== "string" && nodeIsSynthesized(nameArg) ? Diagnostics.Cannot_find_namespace_0_Did_you_mean_1 - : isUncheckedJS ? Diagnostics.Could_not_find_name_0_Did_you_mean_1 - : Diagnostics.Cannot_find_name_0_Did_you_mean_1; - const diagnostic = createError(errorLocation, message, diagnosticName(nameArg!), suggestionName); - addErrorOrSuggestion(!isUncheckedJS, diagnostic); - if (suggestion.valueDeclaration) { - addRelatedInfo( - diagnostic, - createDiagnosticForNode(suggestion.valueDeclaration, Diagnostics._0_is_declared_here, suggestionName) - ); + addLazyDiagnostic(() => { + if (!errorLocation || + !checkAndReportErrorForMissingPrefix(errorLocation, name, nameArg!) && // TODO: GH#18217 + !checkAndReportErrorForExtendingInterface(errorLocation) && + !checkAndReportErrorForUsingTypeAsNamespace(errorLocation, name, meaning) && + !checkAndReportErrorForExportingPrimitiveType(errorLocation, name) && + !checkAndReportErrorForUsingTypeAsValue(errorLocation, name, meaning) && + !checkAndReportErrorForUsingNamespaceModuleAsValue(errorLocation, name, meaning) && + !checkAndReportErrorForUsingValueAsType(errorLocation, name, meaning)) { + let suggestion: Symbol | undefined; + if (getSpellingSuggestions && suggestionCount < maximumSuggestionCount) { + suggestion = getSuggestedSymbolForNonexistentSymbol(originalLocation, name, meaning); + const isGlobalScopeAugmentationDeclaration = suggestion?.valueDeclaration && isAmbientModule(suggestion.valueDeclaration) && isGlobalScopeAugmentation(suggestion.valueDeclaration); + if (isGlobalScopeAugmentationDeclaration) { + suggestion = undefined; } - } - } - if (!suggestion) { - if (nameArg) { - const lib = getSuggestedLibForNonExistentName(nameArg); - if (lib) { - error(errorLocation, nameNotFoundMessage, diagnosticName(nameArg), lib); + if (suggestion) { + const suggestionName = symbolToString(suggestion); + const isUncheckedJS = isUncheckedJSSuggestion(originalLocation, suggestion, /*excludeClasses*/ false); + const message = meaning === SymbolFlags.Namespace || nameArg && typeof nameArg !== "string" && nodeIsSynthesized(nameArg) ? Diagnostics.Cannot_find_namespace_0_Did_you_mean_1 + : isUncheckedJS ? Diagnostics.Could_not_find_name_0_Did_you_mean_1 + : Diagnostics.Cannot_find_name_0_Did_you_mean_1; + const diagnostic = createError(errorLocation, message, diagnosticName(nameArg!), suggestionName); + addErrorOrSuggestion(!isUncheckedJS, diagnostic); + if (suggestion.valueDeclaration) { + addRelatedInfo( + diagnostic, + createDiagnosticForNode(suggestion.valueDeclaration, Diagnostics._0_is_declared_here, suggestionName) + ); + } } - else { - error(errorLocation, nameNotFoundMessage, diagnosticName(nameArg)); + } + if (!suggestion) { + if (nameArg) { + const lib = getSuggestedLibForNonExistentName(nameArg); + if (lib) { + error(errorLocation, nameNotFoundMessage, diagnosticName(nameArg), lib); + } + else { + error(errorLocation, nameNotFoundMessage, diagnosticName(nameArg)); + } } } + suggestionCount++; } - suggestionCount++; - } + }); } return undefined; } + if (propertyWithInvalidInitializer && !(getEmitScriptTarget(compilerOptions) === ScriptTarget.ESNext && useDefineForClassFields)) { + // We have a match, but the reference occurred within a property initializer and the identifier also binds + // to a local variable in the constructor where the code will be emitted. Note that this is actually allowed + // with ESNext+useDefineForClassFields because the scope semantics are different. + const propertyName = (propertyWithInvalidInitializer as PropertyDeclaration).name; + error(errorLocation, Diagnostics.Initializer_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor, + declarationNameToString(propertyName), diagnosticName(nameArg!)); + return undefined; + } + // Perform extra checks only if error reporting was requested if (nameNotFoundMessage) { - if (propertyWithInvalidInitializer && !(getEmitScriptTarget(compilerOptions) === ScriptTarget.ESNext && useDefineForClassFields)) { - // We have a match, but the reference occurred within a property initializer and the identifier also binds - // to a local variable in the constructor where the code will be emitted. Note that this is actually allowed - // with ESNext+useDefineForClassFields because the scope semantics are different. - const propertyName = (propertyWithInvalidInitializer as PropertyDeclaration).name; - error(errorLocation, Diagnostics.Initializer_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor, - declarationNameToString(propertyName), diagnosticName(nameArg!)); - return undefined; - } - - // Only check for block-scoped variable if we have an error location and are looking for the - // name with variable meaning - // For example, - // declare module foo { - // interface bar {} - // } - // const foo/*1*/: foo/*2*/.bar; - // The foo at /*1*/ and /*2*/ will share same symbol with two meanings: - // block-scoped variable and namespace module. However, only when we - // try to resolve name in /*1*/ which is used in variable position, - // we want to check for block-scoped - if (errorLocation && - (meaning & SymbolFlags.BlockScopedVariable || - ((meaning & SymbolFlags.Class || meaning & SymbolFlags.Enum) && (meaning & SymbolFlags.Value) === SymbolFlags.Value))) { - const exportOrLocalSymbol = getExportSymbolOfValueSymbolIfExported(result); - if (exportOrLocalSymbol.flags & SymbolFlags.BlockScopedVariable || exportOrLocalSymbol.flags & SymbolFlags.Class || exportOrLocalSymbol.flags & SymbolFlags.Enum) { - checkResolvedBlockScopedVariable(exportOrLocalSymbol, errorLocation); - } - } - - // If we're in an external module, we can't reference value symbols created from UMD export declarations - if (result && isInExternalModule && (meaning & SymbolFlags.Value) === SymbolFlags.Value && !(originalLocation!.flags & NodeFlags.JSDoc)) { - const merged = getMergedSymbol(result); - if (length(merged.declarations) && every(merged.declarations, d => isNamespaceExportDeclaration(d) || isSourceFile(d) && !!d.symbol.globalExports)) { - errorOrSuggestion(!compilerOptions.allowUmdGlobalAccess, errorLocation!, Diagnostics._0_refers_to_a_UMD_global_but_the_current_file_is_a_module_Consider_adding_an_import_instead, unescapeLeadingUnderscores(name)); - } - } - - // If we're in a parameter initializer or binding name, we can't reference the values of the parameter whose initializer we're within or parameters to the right - if (result && associatedDeclarationForContainingInitializerOrBindingName && !withinDeferredContext && (meaning & SymbolFlags.Value) === SymbolFlags.Value) { - const candidate = getMergedSymbol(getLateBoundSymbol(result)); - const root = (getRootDeclaration(associatedDeclarationForContainingInitializerOrBindingName) as ParameterDeclaration); - // A parameter initializer or binding pattern initializer within a parameter cannot refer to itself - if (candidate === getSymbolOfNode(associatedDeclarationForContainingInitializerOrBindingName)) { - error(errorLocation, Diagnostics.Parameter_0_cannot_reference_itself, declarationNameToString(associatedDeclarationForContainingInitializerOrBindingName.name)); - } - // And it cannot refer to any declarations which come after it - else if (candidate.valueDeclaration && candidate.valueDeclaration.pos > associatedDeclarationForContainingInitializerOrBindingName.pos && root.parent.locals && lookup(root.parent.locals, candidate.escapedName, meaning) === candidate) { - error(errorLocation, Diagnostics.Parameter_0_cannot_reference_identifier_1_declared_after_it, declarationNameToString(associatedDeclarationForContainingInitializerOrBindingName.name), declarationNameToString(errorLocation as Identifier)); + addLazyDiagnostic(() => { + // Only check for block-scoped variable if we have an error location and are looking for the + // name with variable meaning + // For example, + // declare module foo { + // interface bar {} + // } + // const foo/*1*/: foo/*2*/.bar; + // The foo at /*1*/ and /*2*/ will share same symbol with two meanings: + // block-scoped variable and namespace module. However, only when we + // try to resolve name in /*1*/ which is used in variable position, + // we want to check for block-scoped + if (errorLocation && + (meaning & SymbolFlags.BlockScopedVariable || + ((meaning & SymbolFlags.Class || meaning & SymbolFlags.Enum) && (meaning & SymbolFlags.Value) === SymbolFlags.Value))) { + const exportOrLocalSymbol = getExportSymbolOfValueSymbolIfExported(result!); + if (exportOrLocalSymbol.flags & SymbolFlags.BlockScopedVariable || exportOrLocalSymbol.flags & SymbolFlags.Class || exportOrLocalSymbol.flags & SymbolFlags.Enum) { + checkResolvedBlockScopedVariable(exportOrLocalSymbol, errorLocation); + } + } + + // If we're in an external module, we can't reference value symbols created from UMD export declarations + if (result && isInExternalModule && (meaning & SymbolFlags.Value) === SymbolFlags.Value && !(originalLocation!.flags & NodeFlags.JSDoc)) { + const merged = getMergedSymbol(result); + if (length(merged.declarations) && every(merged.declarations, d => isNamespaceExportDeclaration(d) || isSourceFile(d) && !!d.symbol.globalExports)) { + errorOrSuggestion(!compilerOptions.allowUmdGlobalAccess, errorLocation!, Diagnostics._0_refers_to_a_UMD_global_but_the_current_file_is_a_module_Consider_adding_an_import_instead, unescapeLeadingUnderscores(name)); + } + } + + // If we're in a parameter initializer or binding name, we can't reference the values of the parameter whose initializer we're within or parameters to the right + if (result && associatedDeclarationForContainingInitializerOrBindingName && !withinDeferredContext && (meaning & SymbolFlags.Value) === SymbolFlags.Value) { + const candidate = getMergedSymbol(getLateBoundSymbol(result)); + const root = (getRootDeclaration(associatedDeclarationForContainingInitializerOrBindingName) as ParameterDeclaration); + // A parameter initializer or binding pattern initializer within a parameter cannot refer to itself + if (candidate === getSymbolOfNode(associatedDeclarationForContainingInitializerOrBindingName)) { + error(errorLocation, Diagnostics.Parameter_0_cannot_reference_itself, declarationNameToString(associatedDeclarationForContainingInitializerOrBindingName.name)); + } + // And it cannot refer to any declarations which come after it + else if (candidate.valueDeclaration && candidate.valueDeclaration.pos > associatedDeclarationForContainingInitializerOrBindingName.pos && root.parent.locals && lookup(root.parent.locals, candidate.escapedName, meaning) === candidate) { + error(errorLocation, Diagnostics.Parameter_0_cannot_reference_identifier_1_declared_after_it, declarationNameToString(associatedDeclarationForContainingInitializerOrBindingName.name), declarationNameToString(errorLocation as Identifier)); + } + } + if (result && errorLocation && meaning & SymbolFlags.Value && result.flags & SymbolFlags.Alias && !(result.flags & SymbolFlags.Value) && !isValidTypeOnlyAliasUseSite(errorLocation)) { + const typeOnlyDeclaration = getTypeOnlyAliasDeclaration(result); + if (typeOnlyDeclaration) { + const message = typeOnlyDeclaration.kind === SyntaxKind.ExportSpecifier + ? Diagnostics._0_cannot_be_used_as_a_value_because_it_was_exported_using_export_type + : Diagnostics._0_cannot_be_used_as_a_value_because_it_was_imported_using_import_type; + const unescapedName = unescapeLeadingUnderscores(name); + addTypeOnlyDeclarationRelatedInfo( + error(errorLocation, message, unescapedName), + typeOnlyDeclaration, + unescapedName); + } } - } - if (result && errorLocation && meaning & SymbolFlags.Value && result.flags & SymbolFlags.Alias) { - checkSymbolUsageInExpressionContext(result, name, errorLocation); - } + }); } return result; } - function checkSymbolUsageInExpressionContext(symbol: Symbol, name: __String, useSite: Node) { - if (!isValidTypeOnlyAliasUseSite(useSite)) { - const typeOnlyDeclaration = getTypeOnlyAliasDeclaration(symbol); - if (typeOnlyDeclaration) { - const message = typeOnlyDeclaration.kind === SyntaxKind.ExportSpecifier - ? Diagnostics._0_cannot_be_used_as_a_value_because_it_was_exported_using_export_type - : Diagnostics._0_cannot_be_used_as_a_value_because_it_was_imported_using_import_type; - const unescapedName = unescapeLeadingUnderscores(name); - addTypeOnlyDeclarationRelatedInfo( - error(useSite, message, unescapedName), - typeOnlyDeclaration, - unescapedName); - } - } - } - function addTypeOnlyDeclarationRelatedInfo(diagnostic: Diagnostic, typeOnlyDeclaration: TypeOnlyCompatibleAliasDeclaration | undefined, unescapedName: string) { if (!typeOnlyDeclaration) return diagnostic; return addRelatedInfo( @@ -2516,10 +2581,12 @@ namespace ts { /* Starting from 'initial' node walk up the parent chain until 'stopAt' node is reached. * If at any point current node is equal to 'parent' node - return true. + * If current node is an IIFE, continue walking up. * Return false if 'stopAt' node is reached or isFunctionLike(current) === true. */ function isSameScopeDescendentOf(initial: Node, parent: Node | undefined, stopAt: Node): boolean { - return !!parent && !!findAncestor(initial, n => n === stopAt || isFunctionLike(n) ? "quit" : n === parent); + return !!parent && !!findAncestor(initial, n => n === parent + || (n === stopAt || isFunctionLike(n) && !getImmediatelyInvokedFunctionExpression(n) ? "quit" : false)); } function getAnyImportSyntax(node: Node): AnyImportSyntax | undefined { @@ -2573,7 +2640,7 @@ namespace ts { && isAliasableOrJsExpression(node.parent.right) || node.kind === SyntaxKind.ShorthandPropertyAssignment || node.kind === SyntaxKind.PropertyAssignment && isAliasableOrJsExpression((node as PropertyAssignment).initializer) - || isRequireVariableDeclaration(node); + || isVariableDeclarationInitializedToBareOrAccessedRequire(node); } function isAliasableOrJsExpression(e: Expression) { @@ -2637,6 +2704,11 @@ namespace ts { return usageMode === ModuleKind.ESNext && targetMode === ModuleKind.CommonJS; } + function isOnlyImportedAsDefault(usage: Expression) { + const usageMode = getUsageModeForExpression(usage); + return usageMode === ModuleKind.ESNext && endsWith((usage as StringLiteralLike).text, Extension.Json); + } + function canHaveSyntheticDefault(file: SourceFile | undefined, moduleSymbol: Symbol, dontResolveAlias: boolean, usage: Expression) { const usageMode = file && getUsageModeForExpression(usage); if (file && usageMode !== undefined) { @@ -2688,8 +2760,9 @@ namespace ts { } const file = moduleSymbol.declarations?.find(isSourceFile); + const hasDefaultOnly = isOnlyImportedAsDefault(node.parent.moduleSpecifier); const hasSyntheticDefault = canHaveSyntheticDefault(file, moduleSymbol, dontResolveAlias, node.parent.moduleSpecifier); - if (!exportDefaultSymbol && !hasSyntheticDefault) { + if (!exportDefaultSymbol && !hasSyntheticDefault && !hasDefaultOnly) { if (hasExportAssignmentSymbol(moduleSymbol)) { const compilerOptionName = moduleKind >= ModuleKind.ES2015 ? "allowSyntheticDefaultImports" : "esModuleInterop"; const exportEqualsSymbol = moduleSymbol.exports!.get(InternalSymbolName.ExportEquals); @@ -2708,7 +2781,7 @@ namespace ts { reportNonDefaultExport(moduleSymbol, node); } } - else if (hasSyntheticDefault) { + else if (hasSyntheticDefault || hasDefaultOnly) { // per emit behavior, a synthetic default overrides a "real" .default member if `__esModule` is not present const resolved = resolveExternalModuleSymbol(moduleSymbol, dontResolveAlias) || resolveSymbol(moduleSymbol, dontResolveAlias); markSymbolOfAliasDeclarationIfTypeOnly(node, moduleSymbol, resolved, /*overwriteTypeOnly*/ false); @@ -2840,7 +2913,7 @@ namespace ts { let symbolFromModule = getExportOfModule(targetSymbol, name, specifier, dontResolveAlias); if (symbolFromModule === undefined && name.escapedText === InternalSymbolName.Default) { const file = moduleSymbol.declarations?.find(isSourceFile); - if (canHaveSyntheticDefault(file, moduleSymbol, dontResolveAlias, moduleSpecifier)) { + if (isOnlyImportedAsDefault(moduleSpecifier) || canHaveSyntheticDefault(file, moduleSymbol, dontResolveAlias, moduleSpecifier)) { symbolFromModule = resolveExternalModuleSymbol(moduleSymbol, dontResolveAlias) || resolveSymbol(moduleSymbol, dontResolveAlias); } } @@ -3275,21 +3348,40 @@ namespace ts { const namespaceName = getFullyQualifiedName(namespace); const declarationName = declarationNameToString(right); const suggestionForNonexistentModule = getSuggestedSymbolForNonexistentModule(right, namespace); - const exportedTypeSymbol = getMergedSymbol(getSymbol(getExportsOfSymbol(namespace), right.escapedText, SymbolFlags.Type)); - const containingQualifiedName = isQualifiedName(name) && getContainingQualifiedNameNode(name); - const canSuggestTypeof = containingQualifiedName && !isTypeOfExpression(containingQualifiedName.parent) && tryGetQualifiedNameAsValue(containingQualifiedName); if (suggestionForNonexistentModule) { error(right, Diagnostics._0_has_no_exported_member_named_1_Did_you_mean_2, namespaceName, declarationName, symbolToString(suggestionForNonexistentModule)); + return undefined; } - else if (canSuggestTypeof) { - error(containingQualifiedName, Diagnostics._0_refers_to_a_value_but_is_being_used_as_a_type_here_Did_you_mean_typeof_0, entityNameToString(containingQualifiedName)); - } - else if (meaning & SymbolFlags.Namespace && exportedTypeSymbol && isQualifiedName(name.parent)) { - error(name.parent.right, Diagnostics.Cannot_access_0_1_because_0_is_a_type_but_not_a_namespace_Did_you_mean_to_retrieve_the_type_of_the_property_1_in_0_with_0_1, symbolToString(exportedTypeSymbol), unescapeLeadingUnderscores(name.parent.right.escapedText)); + + const containingQualifiedName = isQualifiedName(name) && getContainingQualifiedNameNode(name); + const canSuggestTypeof = globalObjectType // <-- can't pull on types if global types aren't initialized yet + && (meaning & SymbolFlags.Type) + && containingQualifiedName + && !isTypeOfExpression(containingQualifiedName.parent) + && tryGetQualifiedNameAsValue(containingQualifiedName); + if (canSuggestTypeof) { + error( + containingQualifiedName, + Diagnostics._0_refers_to_a_value_but_is_being_used_as_a_type_here_Did_you_mean_typeof_0, + entityNameToString(containingQualifiedName) + ); + return undefined; } - else { - error(right, Diagnostics.Namespace_0_has_no_exported_member_1, namespaceName, declarationName); + + if (meaning & SymbolFlags.Namespace && isQualifiedName(name.parent)) { + const exportedTypeSymbol = getMergedSymbol(getSymbol(getExportsOfSymbol(namespace), right.escapedText, SymbolFlags.Type)); + if (exportedTypeSymbol) { + error( + name.parent.right, + Diagnostics.Cannot_access_0_1_because_0_is_a_type_but_not_a_namespace_Did_you_mean_to_retrieve_the_type_of_the_property_1_in_0_with_0_1, + symbolToString(exportedTypeSymbol), + unescapeLeadingUnderscores(name.parent.right.escapedText) + ); + return undefined; + } } + + error(right, Diagnostics.Namespace_0_has_no_exported_member_1, namespaceName, declarationName); } return undefined; } @@ -3325,16 +3417,20 @@ namespace ts { return; } const host = getJSDocHost(node); - if (host && - isExpressionStatement(host) && - isBinaryExpression(host.expression) && - getAssignmentDeclarationKind(host.expression) === AssignmentDeclarationKind.PrototypeProperty) { - // X.prototype.m = /** @param {K} p */ function () { } <-- look for K on X's declaration + if (host && isExpressionStatement(host) && isPrototypePropertyAssignment(host.expression)) { + // /** @param {K} p */ X.prototype.m = function () { } <-- look for K on X's declaration const symbol = getSymbolOfNode(host.expression.left); if (symbol) { return getDeclarationOfJSPrototypeContainer(symbol); } } + if (host && isFunctionExpression(host) && isPrototypePropertyAssignment(host.parent) && isExpressionStatement(host.parent.parent)) { + // X.prototype.m = /** @param {K} p */ function () { } <-- look for K on X's declaration + const symbol = getSymbolOfNode(host.parent.left); + if (symbol) { + return getDeclarationOfJSPrototypeContainer(symbol); + } + } if (host && (isObjectLiteralMethod(host) || isPropertyAssignment(host)) && isBinaryExpression(host.parent.parent) && getAssignmentDeclarationKind(host.parent.parent) === AssignmentDeclarationKind.Prototype) { @@ -3417,19 +3513,32 @@ namespace ts { (isModuleDeclaration(location) ? location : location.parent && isModuleDeclaration(location.parent) && location.parent.name === location ? location.parent : undefined)?.name || (isLiteralImportTypeNode(location) ? location : undefined)?.argument.literal; const mode = contextSpecifier && isStringLiteralLike(contextSpecifier) ? getModeForUsageLocation(currentSourceFile, contextSpecifier) : currentSourceFile.impliedNodeFormat; - const resolvedModule = getResolvedModule(currentSourceFile, moduleReference, mode)!; // TODO: GH#18217 + const resolvedModule = getResolvedModule(currentSourceFile, moduleReference, mode); const resolutionDiagnostic = resolvedModule && getResolutionDiagnostic(compilerOptions, resolvedModule); - const sourceFile = resolvedModule && !resolutionDiagnostic && host.getSourceFile(resolvedModule.resolvedFileName); + const sourceFile = resolvedModule + && (!resolutionDiagnostic || resolutionDiagnostic === Diagnostics.Module_0_was_resolved_to_1_but_jsx_is_not_set) + && host.getSourceFile(resolvedModule.resolvedFileName); if (sourceFile) { + // If there's a resolutionDiagnostic we need to report it even if a sourceFile is found. + if (resolutionDiagnostic) { + error(errorNode, resolutionDiagnostic, moduleReference, resolvedModule.resolvedFileName); + } if (sourceFile.symbol) { if (resolvedModule.isExternalLibraryImport && !resolutionExtensionIsTSOrJson(resolvedModule.extension)) { errorOnImplicitAnyModule(/*isError*/ false, errorNode, resolvedModule, moduleReference); } if (getEmitModuleResolutionKind(compilerOptions) === ModuleResolutionKind.Node12 || getEmitModuleResolutionKind(compilerOptions) === ModuleResolutionKind.NodeNext) { const isSyncImport = (currentSourceFile.impliedNodeFormat === ModuleKind.CommonJS && !findAncestor(location, isImportCall)) || !!findAncestor(location, isImportEqualsDeclaration); - if (isSyncImport && sourceFile.impliedNodeFormat === ModuleKind.ESNext) { + const overrideClauseHost = findAncestor(location, l => isImportTypeNode(l) || isExportDeclaration(l) || isImportDeclaration(l)) as ImportTypeNode | ImportDeclaration | ExportDeclaration | undefined; + const overrideClause = overrideClauseHost && isImportTypeNode(overrideClauseHost) ? overrideClauseHost.assertions?.assertClause : overrideClauseHost?.assertClause; + // An override clause will take effect for type-only imports and import types, and allows importing the types across formats, regardless of + // normal mode restrictions + if (isSyncImport && sourceFile.impliedNodeFormat === ModuleKind.ESNext && !getResolutionModeOverrideForClause(overrideClause)) { error(errorNode, Diagnostics.Module_0_cannot_be_imported_using_this_construct_The_specifier_only_resolves_to_an_ES_module_which_cannot_be_imported_synchronously_Use_dynamic_import_instead, moduleReference); } + if (mode === ModuleKind.ESNext && compilerOptions.resolveJsonModule && resolvedModule.extension === Extension.Json) { + error(errorNode, Diagnostics.JSON_imports_are_experimental_in_ES_module_mode_imports); + } } // merged symbol is module declaration symbol combined with all augmentations return getMergedSymbol(sourceFile.symbol); @@ -3460,10 +3569,10 @@ namespace ts { if (resolvedModule && !resolutionExtensionIsTSOrJson(resolvedModule.extension) && resolutionDiagnostic === undefined || resolutionDiagnostic === Diagnostics.Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type) { if (isForAugmentation) { const diag = Diagnostics.Invalid_module_name_in_augmentation_Module_0_resolves_to_an_untyped_module_at_1_which_cannot_be_augmented; - error(errorNode, diag, moduleReference, resolvedModule.resolvedFileName); + error(errorNode, diag, moduleReference, resolvedModule!.resolvedFileName); } else { - errorOnImplicitAnyModule(/*isError*/ noImplicitAny && !!moduleNotFoundError, errorNode, resolvedModule, moduleReference); + errorOnImplicitAnyModule(/*isError*/ noImplicitAny && !!moduleNotFoundError, errorNode, resolvedModule!, moduleReference); } // Failed imports and untyped modules are both treated in an untyped manner; only difference is whether we give a diagnostic first. return undefined; @@ -3484,6 +3593,10 @@ namespace ts { } else { const tsExtension = tryExtractTSExtension(moduleReference); + const isExtensionlessRelativePathImport = pathIsRelative(moduleReference) && !hasExtension(moduleReference); + const moduleResolutionKind = getEmitModuleResolutionKind(compilerOptions); + const resolutionIsNode12OrNext = moduleResolutionKind === ModuleResolutionKind.Node12 || + moduleResolutionKind === ModuleResolutionKind.NodeNext; if (tsExtension) { const diag = Diagnostics.An_import_path_cannot_end_with_a_0_extension_Consider_importing_1_instead; const importSourceWithoutExtension = removeExtension(moduleReference, tsExtension); @@ -3503,6 +3616,18 @@ namespace ts { hasJsonModuleEmitEnabled(compilerOptions)) { error(errorNode, Diagnostics.Cannot_find_module_0_Consider_using_resolveJsonModule_to_import_module_with_json_extension, moduleReference); } + else if (mode === ModuleKind.ESNext && resolutionIsNode12OrNext && isExtensionlessRelativePathImport) { + const absoluteRef = getNormalizedAbsolutePath(moduleReference, getDirectoryPath(currentSourceFile.path)); + const suggestedExt = suggestedExtensions.find(([actualExt, _importExt]) => host.fileExists(absoluteRef + actualExt))?.[1]; + if (suggestedExt) { + error(errorNode, + Diagnostics.Relative_import_paths_need_explicit_file_extensions_in_EcmaScript_imports_when_moduleResolution_is_node12_or_nodenext_Did_you_mean_0, + moduleReference + suggestedExt); + } + else { + error(errorNode, Diagnostics.Relative_import_paths_need_explicit_file_extensions_in_EcmaScript_imports_when_moduleResolution_is_node12_or_nodenext_Consider_adding_an_extension_to_the_import_path); + } + } else { error(errorNode, moduleNotFoundError, moduleReference); } @@ -3592,32 +3717,32 @@ namespace ts { return symbol; } - if (getESModuleInterop(compilerOptions)) { - const referenceParent = referencingLocation.parent; - if ( - (isImportDeclaration(referenceParent) && getNamespaceDeclarationNode(referenceParent)) || - isImportCall(referenceParent) - ) { - const type = getTypeOfSymbol(symbol); + const referenceParent = referencingLocation.parent; + if ( + (isImportDeclaration(referenceParent) && getNamespaceDeclarationNode(referenceParent)) || + isImportCall(referenceParent) + ) { + const reference = isImportCall(referenceParent) ? referenceParent.arguments[0] : referenceParent.moduleSpecifier; + const type = getTypeOfSymbol(symbol); + const defaultOnlyType = getTypeWithSyntheticDefaultOnly(type, symbol, moduleSymbol!, reference); + if (defaultOnlyType) { + return cloneTypeAsModuleType(symbol, defaultOnlyType, referenceParent); + } + + const targetFile = moduleSymbol?.declarations?.find(isSourceFile); + const isEsmCjsRef = targetFile && isESMFormatImportImportingCommonjsFormatFile(getUsageModeForExpression(reference), targetFile.impliedNodeFormat); + if (getESModuleInterop(compilerOptions) || isEsmCjsRef) { let sigs = getSignaturesOfStructuredType(type, SignatureKind.Call); if (!sigs || !sigs.length) { sigs = getSignaturesOfStructuredType(type, SignatureKind.Construct); } - if (sigs && sigs.length) { - const moduleType = getTypeWithSyntheticDefaultImportType(type, symbol, moduleSymbol!, isImportCall(referenceParent) ? referenceParent.arguments[0] : referenceParent.moduleSpecifier); - // Create a new symbol which has the module's type less the call and construct signatures - const result = createSymbol(symbol.flags, symbol.escapedName); - result.declarations = symbol.declarations ? symbol.declarations.slice() : []; - result.parent = symbol.parent; - result.target = symbol; - result.originatingImport = referenceParent; - if (symbol.valueDeclaration) result.valueDeclaration = symbol.valueDeclaration; - if (symbol.constEnumOnlyModule) result.constEnumOnlyModule = true; - if (symbol.members) result.members = new Map(symbol.members); - if (symbol.exports) result.exports = new Map(symbol.exports); - const resolvedModuleType = resolveStructuredTypeMembers(moduleType as StructuredType); // Should already be resolved from the signature checks above - result.type = createAnonymousType(result, resolvedModuleType.members, emptyArray, emptyArray, resolvedModuleType.indexInfos); - return result; + if ( + (sigs && sigs.length) || + getPropertyOfType(type, InternalSymbolName.Default, /*skipObjectFunctionPropertyAugment*/ true) || + isEsmCjsRef + ) { + const moduleType = getTypeWithSyntheticDefaultImportType(type, symbol, moduleSymbol!, reference); + return cloneTypeAsModuleType(symbol, moduleType, referenceParent); } } } @@ -3625,6 +3750,24 @@ namespace ts { return symbol; } + /** + * Create a new symbol which has the module's type less the call and construct signatures + */ + function cloneTypeAsModuleType(symbol: Symbol, moduleType: Type, referenceParent: ImportDeclaration | ImportCall) { + const result = createSymbol(symbol.flags, symbol.escapedName); + result.declarations = symbol.declarations ? symbol.declarations.slice() : []; + result.parent = symbol.parent; + result.target = symbol; + result.originatingImport = referenceParent; + if (symbol.valueDeclaration) result.valueDeclaration = symbol.valueDeclaration; + if (symbol.constEnumOnlyModule) result.constEnumOnlyModule = true; + if (symbol.members) result.members = new Map(symbol.members); + if (symbol.exports) result.exports = new Map(symbol.exports); + const resolvedModuleType = resolveStructuredTypeMembers(moduleType as StructuredType); // Should already be resolved from the signature checks above + result.type = createAnonymousType(result, resolvedModuleType.members, emptyArray, emptyArray, resolvedModuleType.indexInfos); + return result; + } + function hasExportAssignmentSymbol(moduleSymbol: Symbol): boolean { return moduleSymbol.exports!.get(InternalSymbolName.ExportEquals) !== undefined; } @@ -3656,8 +3799,8 @@ namespace ts { if (exportEquals !== moduleSymbol) { const type = getTypeOfSymbol(exportEquals); if (shouldTreatPropertiesOfExternalModuleAsExports(type)) { - getPropertiesOfType(type).forEach(symbol => { - cb(symbol, symbol.escapedName); + forEachPropertyOfType(type, (symbol, escapedName) => { + cb(symbol, escapedName); }); } } @@ -3885,8 +4028,15 @@ namespace ts { return res; } const candidates = mapDefined(symbol.declarations, d => { - if (!isAmbientModule(d) && d.parent && hasNonGlobalAugmentationExternalModuleSymbol(d.parent)) { - return getSymbolOfNode(d.parent); + if (!isAmbientModule(d) && d.parent){ + // direct children of a module + if (hasNonGlobalAugmentationExternalModuleSymbol(d.parent)) { + return getSymbolOfNode(d.parent); + } + // export ='d member of an ambient module + if (isModuleBlock(d.parent) && d.parent.parent && resolveExternalModuleSymbol(getSymbolOfNode(d.parent.parent)) === symbol) { + return getSymbolOfNode(d.parent.parent); + } } if (isClassExpression(d) && isBinaryExpression(d.parent) && d.parent.operatorToken.kind === SyntaxKind.EqualsToken && isAccessExpression(d.parent.left) && isEntityNameExpression(d.parent.left.expression)) { if (isModuleExportsAccessExpression(d.parent.left) || isExportsIdentifier(d.parent.left.expression)) { @@ -3979,9 +4129,7 @@ namespace ts { const result = new Type(checker, flags); typeCount++; result.id = typeCount; - if (produceDiagnostics) { // Only record types from one checker - tracing?.recordType(result); - } + tracing?.recordType(result); return result; } @@ -4033,13 +4181,17 @@ namespace ts { function getNamedMembers(members: SymbolTable): Symbol[] { let result: Symbol[] | undefined; members.forEach((symbol, id) => { - if (!isReservedMemberName(id) && symbolIsValue(symbol)) { + if (isNamedMember(symbol, id)) { (result || (result = [])).push(symbol); } }); return result || emptyArray; } + function isNamedMember(member: Symbol, escapedName: __String) { + return !isReservedMemberName(escapedName) && symbolIsValue(member); + } + function getNamedOrIndexSignatureMembers(members: SymbolTable): Symbol[] { const result = getNamedMembers(members); const index = getIndexSymbolFromSymbolTable(members); @@ -4486,7 +4638,7 @@ namespace ts { // get symbol of the first identifier of the entityName let meaning: SymbolFlags; if (entityName.parent.kind === SyntaxKind.TypeQuery || - isExpressionWithTypeArgumentsInClassExtendsClause(entityName.parent) || + entityName.parent.kind === SyntaxKind.ExpressionWithTypeArguments && !isPartOfTypeNode(entityName.parent) || entityName.parent.kind === SyntaxKind.ComputedPropertyName) { // Typeof value meaning = SymbolFlags.Value | SymbolFlags.ExportValue; @@ -4639,6 +4791,7 @@ namespace ts { getCommonSourceDirectory: !!(host as Program).getCommonSourceDirectory ? () => (host as Program).getCommonSourceDirectory() : () => "", getCurrentDirectory: () => host.getCurrentDirectory(), getSymlinkCache: maybeBind(host, host.getSymlinkCache), + getPackageJsonInfoCache: () => host.getPackageJsonInfoCache?.(), useCaseSensitiveFileNames: maybeBind(host, host.useCaseSensitiveFileNames), redirectTargetsMap: host.redirectTargetsMap, getProjectReferenceRedirect: fileName => host.getProjectReferenceRedirect(fileName), @@ -4866,9 +5019,12 @@ namespace ts { return factory.createTypeReferenceNode(factory.createIdentifier(idText(name)), /*typeArguments*/ undefined); } // Ignore constraint/default when creating a usage (as opposed to declaration) of a type parameter. - return type.symbol - ? symbolToTypeNode(type.symbol, context, SymbolFlags.Type) - : factory.createTypeReferenceNode(factory.createIdentifier("?"), /*typeArguments*/ undefined); + if (type.symbol) { + return symbolToTypeNode(type.symbol, context, SymbolFlags.Type); + } + const name = (type === markerSuperType || type === markerSubType) && varianceTypeParameter && varianceTypeParameter.symbol ? + (type === markerSubType ? "sub-" : "super-") + symbolName(varianceTypeParameter.symbol) : "?"; + return factory.createTypeReferenceNode(factory.createIdentifier(name), /*typeArguments*/ undefined); } if (type.flags & TypeFlags.Union && (type as UnionType).origin) { type = (type as UnionType).origin!; @@ -4962,10 +5118,16 @@ namespace ts { const readonlyToken = type.declaration.readonlyToken ? factory.createToken(type.declaration.readonlyToken.kind) as ReadonlyKeyword | PlusToken | MinusToken : undefined; const questionToken = type.declaration.questionToken ? factory.createToken(type.declaration.questionToken.kind) as QuestionToken | PlusToken | MinusToken : undefined; let appropriateConstraintTypeNode: TypeNode; + let newTypeVariable: TypeReferenceNode | undefined; if (isMappedTypeWithKeyofConstraintDeclaration(type)) { // We have a { [P in keyof T]: X } // We do this to ensure we retain the toplevel keyof-ness of the type which may be lost due to keyof distribution during `getConstraintTypeFromMappedType` - appropriateConstraintTypeNode = factory.createTypeOperatorNode(SyntaxKind.KeyOfKeyword, typeToTypeNodeHelper(getModifiersTypeFromMappedType(type), context)); + if (!(getModifiersTypeFromMappedType(type).flags & TypeFlags.TypeParameter) && context.flags & NodeBuilderFlags.GenerateNamesForShadowedTypeParams) { + const newParam = createTypeParameter(createSymbol(SymbolFlags.TypeParameter, "T" as __String)); + const name = typeParameterToName(newParam, context); + newTypeVariable = factory.createTypeReferenceNode(name); + } + appropriateConstraintTypeNode = factory.createTypeOperatorNode(SyntaxKind.KeyOfKeyword, newTypeVariable || typeToTypeNodeHelper(getModifiersTypeFromMappedType(type), context)); } else { appropriateConstraintTypeNode = typeToTypeNodeHelper(getConstraintTypeFromMappedType(type), context); @@ -4975,7 +5137,19 @@ namespace ts { const templateTypeNode = typeToTypeNodeHelper(removeMissingType(getTemplateTypeFromMappedType(type), !!(getMappedTypeModifiers(type) & MappedTypeModifiers.IncludeOptional)), context); const mappedTypeNode = factory.createMappedTypeNode(readonlyToken, typeParameterNode, nameTypeNode, questionToken, templateTypeNode, /*members*/ undefined); context.approximateLength += 10; - return setEmitFlags(mappedTypeNode, EmitFlags.SingleLine); + const result = setEmitFlags(mappedTypeNode, EmitFlags.SingleLine); + if (isMappedTypeWithKeyofConstraintDeclaration(type) && !(getModifiersTypeFromMappedType(type).flags & TypeFlags.TypeParameter) && context.flags & NodeBuilderFlags.GenerateNamesForShadowedTypeParams) { + // homomorphic mapped type with a non-homomorphic naive inlining + // wrap it with a conditional like `SomeModifiersType extends infer U ? {..the mapped type...} : never` to ensure the resulting + // type stays homomorphic + return factory.createConditionalTypeNode( + typeToTypeNodeHelper(getModifiersTypeFromMappedType(type), context), + factory.createInferTypeNode(factory.createTypeParameterDeclaration(/*modifiers*/ undefined, factory.cloneNode(newTypeVariable!.typeName) as Identifier)), + result, + factory.createKeywordTypeNode(SyntaxKind.NeverKeyword) + ); + } + return result; } function createAnonymousTypeNode(type: ObjectType): TypeNode { @@ -5088,7 +5262,18 @@ namespace ts { if (!nodeIsSynthesized(node) && getParseTreeNode(node) === node) { return node; } - return setTextRange(factory.cloneNode(visitEachChild(node, deepCloneOrReuseNode, nullTransformationContext)), node); + return setTextRange(factory.cloneNode(visitEachChild(node, deepCloneOrReuseNode, nullTransformationContext, deepCloneOrReuseNodes)), node); + } + + function deepCloneOrReuseNodes(nodes: NodeArray, visitor: Visitor | undefined, test?: (node: Node) => boolean, start?: number, count?: number): NodeArray; + function deepCloneOrReuseNodes(nodes: NodeArray | undefined, visitor: Visitor | undefined, test?: (node: Node) => boolean, start?: number, count?: number): NodeArray | undefined; + function deepCloneOrReuseNodes(nodes: NodeArray | undefined, visitor: Visitor | undefined, test?: (node: Node) => boolean, start?: number, count?: number): NodeArray | undefined { + if (nodes && nodes.length === 0) { + // Ensure we explicitly make a copy of an empty array; visitNodes will not do this unless the array has elements, + // which can lead to us reusing the same empty NodeArray more than once within the same AST during type noding. + return setTextRange(factory.createNodeArray(/*nodes*/ undefined, nodes.hasTrailingComma), nodes); + } + return visitNodes(nodes, visitor, test, start, count); } } @@ -5580,8 +5765,8 @@ namespace ts { const expandedParams = getExpandedParameters(signature, /*skipUnionExpanding*/ true)[0]; // If the expanded parameter list had a variadic in a non-trailing position, don't expand it const parameters = (some(expandedParams, p => p !== expandedParams[expandedParams.length - 1] && !!(getCheckFlags(p) & CheckFlags.RestParameter)) ? signature.parameters : expandedParams).map(parameter => symbolToParameterDeclaration(parameter, context, kind === SyntaxKind.Constructor, options?.privateSymbolVisitor, options?.bundledImports)); - if (signature.thisParameter) { - const thisParameter = symbolToParameterDeclaration(signature.thisParameter, context); + const thisParameter = tryGetThisParameterDeclaration(signature, context); + if (thisParameter) { parameters.unshift(thisParameter); } @@ -5636,14 +5821,34 @@ namespace ts { return node; } + function tryGetThisParameterDeclaration(signature: Signature, context: NodeBuilderContext) { + if (signature.thisParameter) { + return symbolToParameterDeclaration(signature.thisParameter, context); + } + if (signature.declaration) { + const thisTag = getJSDocThisTag(signature.declaration); + if (thisTag && thisTag.typeExpression) { + return factory.createParameterDeclaration( + /* decorators */ undefined, + /* modifiers */ undefined, + /* dotDotDotToken */ undefined, + "this", + /* questionToken */ undefined, + typeToTypeNodeHelper(getTypeFromTypeNode(thisTag.typeExpression), context) + ); + } + } + } + function typeParameterToDeclarationWithConstraint(type: TypeParameter, context: NodeBuilderContext, constraintNode: TypeNode | undefined): TypeParameterDeclaration { const savedContextFlags = context.flags; context.flags &= ~NodeBuilderFlags.WriteTypeParametersInQualifiedName; // Avoids potential infinite loop when building for a claimspace with a generic + const modifiers = factory.createModifiersFromModifierFlags(getVarianceModifiers(type)); const name = typeParameterToName(type, context); const defaultParameter = getDefaultFromTypeParameter(type); const defaultParameterNode = defaultParameter && typeToTypeNodeHelper(defaultParameter, context); context.flags = savedContextFlags; - return factory.createTypeParameterDeclaration(name, constraintNode, defaultParameterNode); + return factory.createTypeParameterDeclaration(modifiers, name, constraintNode, defaultParameterNode); } function typeParameterToDeclaration(type: TypeParameter, context: NodeBuilderContext, constraint = getConstraintOfTypeParameter(type)): TypeParameterDeclaration { @@ -5853,7 +6058,7 @@ namespace ts { return top; } - function getSpecifierForModuleSymbol(symbol: Symbol, context: NodeBuilderContext) { + function getSpecifierForModuleSymbol(symbol: Symbol, context: NodeBuilderContext, overrideImportMode?: SourceFile["impliedNodeFormat"]) { let file = getDeclarationOfKind(symbol, SyntaxKind.SourceFile); if (!file) { const equivalentFileSymbol = firstDefined(symbol.declarations, d => getFileSymbolIfFileSymbolExportEqualsContainer(d, symbol)); @@ -5886,8 +6091,10 @@ namespace ts { return getSourceFileOfNode(getNonAugmentationDeclaration(symbol)!).fileName; // A resolver may not be provided for baselines and errors - in those cases we use the fileName in full } const contextFile = getSourceFileOfNode(getOriginalNode(context.enclosingDeclaration)); + const resolutionMode = overrideImportMode || contextFile?.impliedNodeFormat; + const cacheKey = getSpecifierCacheKey(contextFile.path, resolutionMode); const links = getSymbolLinks(symbol); - let specifier = links.specifierCache && links.specifierCache.get(contextFile.path); + let specifier = links.specifierCache && links.specifierCache.get(cacheKey); if (!specifier) { const isBundle = !!outFile(compilerOptions); // For declaration bundles, we need to generate absolute paths relative to the common source dir for imports, @@ -5902,12 +6109,22 @@ namespace ts { specifierCompilerOptions, contextFile, moduleResolverHost, - { importModuleSpecifierPreference: isBundle ? "non-relative" : "project-relative", importModuleSpecifierEnding: isBundle ? "minimal" : undefined }, + { + importModuleSpecifierPreference: isBundle ? "non-relative" : "project-relative", + importModuleSpecifierEnding: isBundle ? "minimal" + : resolutionMode === ModuleKind.ESNext ? "js" + : undefined, + }, + { overrideImportMode } )); links.specifierCache ??= new Map(); - links.specifierCache.set(contextFile.path, specifier); + links.specifierCache.set(cacheKey, specifier); } return specifier; + + function getSpecifierCacheKey(path: string, mode: SourceFile["impliedNodeFormat"] | undefined) { + return mode === undefined ? path : `${mode}|${path}`; + } } function symbolToEntityNameNode(symbol: Symbol): EntityName { @@ -5923,13 +6140,53 @@ namespace ts { // module is root, must use `ImportTypeNode` const nonRootParts = chain.length > 1 ? createAccessFromSymbolChain(chain, chain.length - 1, 1) : undefined; const typeParameterNodes = overrideTypeArguments || lookupTypeParameterNodes(chain, 0, context); - const specifier = getSpecifierForModuleSymbol(chain[0], context); + const contextFile = getSourceFileOfNode(getOriginalNode(context.enclosingDeclaration)); + const targetFile = getSourceFileOfModule(chain[0]); + let specifier: string | undefined; + let assertion: ImportTypeAssertionContainer | undefined; + if (getEmitModuleResolutionKind(compilerOptions) === ModuleResolutionKind.Node12 || getEmitModuleResolutionKind(compilerOptions) === ModuleResolutionKind.NodeNext) { + // An `import` type directed at an esm format file is only going to resolve in esm mode - set the esm mode assertion + if (targetFile?.impliedNodeFormat === ModuleKind.ESNext && targetFile.impliedNodeFormat !== contextFile?.impliedNodeFormat) { + specifier = getSpecifierForModuleSymbol(chain[0], context, ModuleKind.ESNext); + assertion = factory.createImportTypeAssertionContainer(factory.createAssertClause(factory.createNodeArray([ + factory.createAssertEntry( + factory.createStringLiteral("resolution-mode"), + factory.createStringLiteral("import") + ) + ]))); + } + } + if (!specifier) { + specifier = getSpecifierForModuleSymbol(chain[0], context); + } if (!(context.flags & NodeBuilderFlags.AllowNodeModulesRelativePaths) && getEmitModuleResolutionKind(compilerOptions) !== ModuleResolutionKind.Classic && specifier.indexOf("/node_modules/") >= 0) { - // If ultimately we can only name the symbol with a reference that dives into a `node_modules` folder, we should error - // since declaration files with these kinds of references are liable to fail when published :( - context.encounteredError = true; - if (context.tracker.reportLikelyUnsafeImportRequiredError) { - context.tracker.reportLikelyUnsafeImportRequiredError(specifier); + const oldSpecifier = specifier; + if (getEmitModuleResolutionKind(compilerOptions) === ModuleResolutionKind.Node12 || getEmitModuleResolutionKind(compilerOptions) === ModuleResolutionKind.NodeNext) { + // We might be able to write a portable import type using a mode override; try specifier generation again, but with a different mode set + const swappedMode = contextFile?.impliedNodeFormat === ModuleKind.ESNext ? ModuleKind.CommonJS : ModuleKind.ESNext; + specifier = getSpecifierForModuleSymbol(chain[0], context, swappedMode); + + if (specifier.indexOf("/node_modules/") >= 0) { + // Still unreachable :( + specifier = oldSpecifier; + } + else { + assertion = factory.createImportTypeAssertionContainer(factory.createAssertClause(factory.createNodeArray([ + factory.createAssertEntry( + factory.createStringLiteral("resolution-mode"), + factory.createStringLiteral(swappedMode === ModuleKind.ESNext ? "import" : "require") + ) + ]))); + } + } + + if (!assertion) { + // If ultimately we can only name the symbol with a reference that dives into a `node_modules` folder, we should error + // since declaration files with these kinds of references are liable to fail when published :( + context.encounteredError = true; + if (context.tracker.reportLikelyUnsafeImportRequiredError) { + context.tracker.reportLikelyUnsafeImportRequiredError(oldSpecifier); + } } } const lit = factory.createLiteralTypeNode(factory.createStringLiteral(specifier)); @@ -5940,12 +6197,12 @@ namespace ts { const lastId = isIdentifier(nonRootParts) ? nonRootParts : nonRootParts.right; lastId.typeArguments = undefined; } - return factory.createImportTypeNode(lit, nonRootParts as EntityName, typeParameterNodes as readonly TypeNode[], isTypeOf); + return factory.createImportTypeNode(lit, assertion, nonRootParts as EntityName, typeParameterNodes as readonly TypeNode[], isTypeOf); } else { const splitNode = getTopmostIndexedAccessType(nonRootParts); const qualifier = (splitNode.objectType as TypeReferenceNode).typeName; - return factory.createIndexedAccessTypeNode(factory.createImportTypeNode(lit, qualifier, typeParameterNodes as readonly TypeNode[], isTypeOf), splitNode.indexType); + return factory.createIndexedAccessTypeNode(factory.createImportTypeNode(lit, assertion, qualifier, typeParameterNodes as readonly TypeNode[], isTypeOf), splitNode.indexType); } } @@ -5966,8 +6223,8 @@ namespace ts { function createAccessFromSymbolChain(chain: Symbol[], index: number, stopper: number): EntityName | IndexedAccessTypeNode { const typeParameterNodes = index === (chain.length - 1) ? overrideTypeArguments : lookupTypeParameterNodes(chain, index, context); const symbol = chain[index]; - const parent = chain[index - 1]; + let symbolName: string | undefined; if (index === 0) { context.flags |= NodeBuilderFlags.InInitialEntityName; @@ -5986,7 +6243,16 @@ namespace ts { }); } } - if (!symbolName) { + + if (symbolName === undefined) { + const name = firstDefined(symbol.declarations, getNameOfDeclaration); + if (name && isComputedPropertyName(name) && isEntityName(name.expression)) { + const LHS = createAccessFromSymbolChain(chain, index - 1, stopper); + if (isEntityName(LHS)) { + return factory.createIndexedAccessTypeNode(factory.createParenthesizedType(factory.createTypeQueryNode(LHS)), factory.createTypeQueryNode(name.expression)); + } + return LHS; + } symbolName = getNameOfSymbolAsWritten(symbol, context); } context.approximateLength += symbolName.length + 1; @@ -6127,12 +6393,8 @@ namespace ts { firstChar = symbolName.charCodeAt(0); } let expression: Expression | undefined; - if (isSingleOrDoubleQuote(firstChar)) { - expression = factory.createStringLiteral( - symbolName - .substring(1, symbolName.length - 1) - .replace(/\\./g, s => s.substring(1)), - firstChar === CharacterCodes.singleQuote); + if (isSingleOrDoubleQuote(firstChar) && !(symbol.flags & SymbolFlags.EnumMember)) { + expression = factory.createStringLiteral(stripQuotes(symbolName).replace(/\\./g, s => s.substring(1)), firstChar === CharacterCodes.singleQuote); } else if (("" + +symbolName) === symbolName) { expression = factory.createNumericLiteral(+symbolName); @@ -6164,7 +6426,7 @@ namespace ts { } const rawName = unescapeLeadingUnderscores(symbol.escapedName); const stringNamed = !!length(symbol.declarations) && every(symbol.declarations, isStringNamed); - return createPropertyNameNodeForIdentifierOrLiteral(rawName, stringNamed, singleQuote); + return createPropertyNameNodeForIdentifierOrLiteral(rawName, getEmitScriptTarget(compilerOptions), singleQuote, stringNamed); } // See getNameForSymbolFromNameType for a stringy equivalent @@ -6179,7 +6441,7 @@ namespace ts { if (isNumericLiteralName(name) && startsWith(name, "-")) { return factory.createComputedPropertyName(factory.createNumericLiteral(+name)); } - return createPropertyNameNodeForIdentifierOrLiteral(name); + return createPropertyNameNodeForIdentifierOrLiteral(name, getEmitScriptTarget(compilerOptions)); } if (nameType.flags & TypeFlags.UniqueESSymbol) { return factory.createComputedPropertyName(symbolToExpression((nameType as UniqueESSymbolType).symbol, context, SymbolFlags.Value)); @@ -6187,12 +6449,6 @@ namespace ts { } } - function createPropertyNameNodeForIdentifierOrLiteral(name: string, stringNamed?: boolean, singleQuote?: boolean) { - return isIdentifierText(name, getEmitScriptTarget(compilerOptions)) ? factory.createIdentifier(name) : - !stringNamed && isNumericLiteralName(name) && +name >= 0 ? factory.createNumericLiteral(+name) : - factory.createStringLiteral(name, !!singleQuote); - } - function cloneNodeBuilderContext(context: NodeBuilderContext): NodeBuilderContext { const initial: NodeBuilderContext = { ...context }; // Make type parameters created within this context not consume the name outside this context @@ -6291,7 +6547,8 @@ namespace ts { includePrivateSymbol?.(sym); } if (isIdentifier(node)) { - const name = sym.flags & SymbolFlags.TypeParameter ? typeParameterToName(getDeclaredTypeOfSymbol(sym), context) : factory.cloneNode(node); + const type = getDeclaredTypeOfSymbol(sym); + const name = sym.flags & SymbolFlags.TypeParameter && !isTypeSymbolAccessible(type.symbol, context.enclosingDeclaration) ? typeParameterToName(type, context) : factory.cloneNode(node); name.symbol = sym; // for quickinfo, which uses identifier symbol information return { introducesError, node: setEmitFlags(setOriginalNode(name, node), EmitFlags.NoAsciiEscaping) }; } @@ -6806,9 +7063,13 @@ namespace ts { else { // A Class + Property merge is made for a `module.exports.Member = class {}`, and it doesn't serialize well as either a class _or_ a property symbol - in fact, _it behaves like an alias!_ // `var` is `FunctionScopedVariable`, `const` and `let` are `BlockScopedVariable`, and `module.exports.thing =` is `Property` - const flags = !(symbol.flags & SymbolFlags.BlockScopedVariable) ? undefined - : isConstVariable(symbol) ? NodeFlags.Const - : NodeFlags.Let; + const flags = !(symbol.flags & SymbolFlags.BlockScopedVariable) + ? symbol.parent?.valueDeclaration && isSourceFile(symbol.parent?.valueDeclaration) + ? NodeFlags.Const // exports are immutable in es6, which is what we emulate and check; so it's safe to mark all exports as `const` (there's no difference to consumers, but it allows unique symbol type declarations) + : undefined + : isConstVariable(symbol) + ? NodeFlags.Const + : NodeFlags.Let; const name = (needsPostExportDefault || !(symbol.flags & SymbolFlags.Property)) ? localName : getUnusedName(localName, symbol); let textRange: Node | undefined = symbol.declarations && find(symbol.declarations, d => isVariableDeclaration(d)); if (textRange && isVariableDeclarationList(textRange.parent) && textRange.parent.declarations.length === 1) { @@ -8293,6 +8554,8 @@ namespace ts { return !!(target as TypeReference).resolvedTypeArguments; case TypeSystemPropertyName.ResolvedBaseTypes: return !!(target as InterfaceType).baseTypesResolved; + case TypeSystemPropertyName.WriteType: + return !!getSymbolLinks(target as Symbol).writeType; } return Debug.assertNever(propertyName); } @@ -8354,9 +8617,12 @@ namespace ts { // Return the type of a binding element parent. We check SymbolLinks first to see if a type has been // assigned by contextual typing. - function getTypeForBindingElementParent(node: BindingElementGrandparent) { + function getTypeForBindingElementParent(node: BindingElementGrandparent, checkMode: CheckMode) { + if (checkMode !== CheckMode.Normal) { + return getTypeForVariableLikeDeclaration(node, /*includeOptionality*/ false, checkMode); + } const symbol = getSymbolOfNode(node); - return symbol && getSymbolLinks(symbol).type || getTypeForVariableLikeDeclaration(node, /*includeOptionality*/ false); + return symbol && getSymbolLinks(symbol).type || getTypeForVariableLikeDeclaration(node, /*includeOptionality*/ false, checkMode); } function getRestType(source: Type, properties: PropertyName[], symbol: Symbol | undefined): Type { @@ -8367,8 +8633,32 @@ namespace ts { if (source.flags & TypeFlags.Union) { return mapType(source, t => getRestType(t, properties, symbol)); } - const omitKeyType = getUnionType(map(properties, getLiteralTypeFromPropertyName)); + + let omitKeyType = getUnionType(map(properties, getLiteralTypeFromPropertyName)); + + const spreadableProperties: Symbol[] = []; + const unspreadableToRestKeys: Type[] = []; + + for (const prop of getPropertiesOfType(source)) { + const literalTypeFromProperty = getLiteralTypeFromProperty(prop, TypeFlags.StringOrNumberLiteralOrUnique); + if (!isTypeAssignableTo(literalTypeFromProperty, omitKeyType) + && !(getDeclarationModifierFlagsFromSymbol(prop) & (ModifierFlags.Private | ModifierFlags.Protected)) + && isSpreadableProperty(prop)) { + spreadableProperties.push(prop); + } + else { + unspreadableToRestKeys.push(literalTypeFromProperty); + } + } + if (isGenericObjectType(source) || isGenericIndexType(omitKeyType)) { + if (unspreadableToRestKeys.length) { + // If the type we're spreading from has properties that cannot + // be spread into the rest type (e.g. getters, methods), ensure + // they are explicitly omitted, as they would in the non-generic case. + omitKeyType = getUnionType([omitKeyType, ...unspreadableToRestKeys]); + } + if (omitKeyType.flags & TypeFlags.Never) { return source; } @@ -8380,12 +8670,8 @@ namespace ts { return getTypeAliasInstantiation(omitTypeAlias, [source, omitKeyType]); } const members = createSymbolTable(); - for (const prop of getPropertiesOfType(source)) { - if (!isTypeAssignableTo(getLiteralTypeFromProperty(prop, TypeFlags.StringOrNumberLiteralOrUnique), omitKeyType) - && !(getDeclarationModifierFlagsFromSymbol(prop) & (ModifierFlags.Private | ModifierFlags.Protected)) - && isSpreadableProperty(prop)) { - members.set(prop.escapedName, getSpreadSymbol(prop, /*readonly*/ false)); - } + for (const prop of spreadableProperties) { + members.set(prop.escapedName, getSpreadSymbol(prop, /*readonly*/ false)); } const result = createAnonymousType(symbol, members, emptyArray, emptyArray, getIndexInfosOfType(source)); result.objectFlags |= ObjectFlags.ObjectRestType; @@ -8467,12 +8753,17 @@ namespace ts { /** Return the inferred type for a binding element */ function getTypeForBindingElement(declaration: BindingElement): Type | undefined { - const pattern = declaration.parent; - let parentType = getTypeForBindingElementParent(pattern.parent); - // If no type or an any type was inferred for parent, infer that for the binding element - if (!parentType || isTypeAny(parentType)) { + const checkMode = declaration.dotDotDotToken ? CheckMode.RestBindingElement : CheckMode.Normal; + const parentType = getTypeForBindingElementParent(declaration.parent.parent, checkMode); + return parentType && getBindingElementTypeFromParentType(declaration, parentType); + } + + function getBindingElementTypeFromParentType(declaration: BindingElement, parentType: Type): Type { + // If an any type was inferred for parent, infer that for the binding element + if (isTypeAny(parentType)) { return parentType; } + const pattern = declaration.parent; // Relax null check on ambient destructuring parameters, since the parameters have no implementation and are just documentation if (strictNullChecks && declaration.flags & NodeFlags.Ambient && isParameterDeclaration(declaration)) { parentType = getNonNullableType(parentType); @@ -8536,9 +8827,9 @@ namespace ts { if (getEffectiveTypeAnnotationNode(walkUpBindingElementsAndPatterns(declaration))) { // In strict null checking mode, if a default value of a non-undefined type is specified, remove // undefined from the final type. - return strictNullChecks && !(getFalsyFlags(checkDeclarationInitializer(declaration)) & TypeFlags.Undefined) ? getNonUndefinedType(type) : type; + return strictNullChecks && !(getFalsyFlags(checkDeclarationInitializer(declaration, CheckMode.Normal)) & TypeFlags.Undefined) ? getNonUndefinedType(type) : type; } - return widenTypeInferredFromInitializer(declaration, getUnionType([getNonUndefinedType(type), checkDeclarationInitializer(declaration)], UnionReduction.Subtype)); + return widenTypeInferredFromInitializer(declaration, getUnionType([getNonUndefinedType(type), checkDeclarationInitializer(declaration, CheckMode.Normal)], UnionReduction.Subtype)); } function getTypeForDeclarationFromJSDocComment(declaration: Node) { @@ -8564,11 +8855,15 @@ namespace ts { } // Return the inferred type for a variable, parameter, or property declaration - function getTypeForVariableLikeDeclaration(declaration: ParameterDeclaration | PropertyDeclaration | PropertySignature | VariableDeclaration | BindingElement | JSDocPropertyLikeTag, includeOptionality: boolean): Type | undefined { + function getTypeForVariableLikeDeclaration( + declaration: ParameterDeclaration | PropertyDeclaration | PropertySignature | VariableDeclaration | BindingElement | JSDocPropertyLikeTag, + includeOptionality: boolean, + checkMode: CheckMode, + ): Type | undefined { // A variable declared in a for..in statement is of type string, or of type keyof T when the // right hand expression is of a type parameter type. if (isVariableDeclaration(declaration) && declaration.parent.parent.kind === SyntaxKind.ForInStatement) { - const indexType = getIndexType(getNonNullableTypeIfNeeded(checkExpression(declaration.parent.parent.expression))); + const indexType = getIndexType(getNonNullableTypeIfNeeded(checkExpression(declaration.parent.parent.expression, /*checkMode*/ checkMode))); return indexType.flags & (TypeFlags.TypeParameter | TypeFlags.Index) ? getExtractStringType(indexType) : stringType; } @@ -8587,7 +8882,7 @@ namespace ts { const isProperty = isPropertyDeclaration(declaration) || isPropertySignature(declaration); const isOptional = includeOptionality && ( - isProperty && !!(declaration as PropertyDeclaration | PropertySignature).questionToken || + isProperty && !!declaration.questionToken || isParameter(declaration) && (!!declaration.questionToken || isJSDocOptionalParameter(declaration)) || isOptionalJSDocPropertyLikeTag(declaration)); @@ -8630,12 +8925,8 @@ namespace ts { } } if (isInJSFile(declaration)) { - const typeTag = getJSDocType(func); - if (typeTag && isFunctionTypeNode(typeTag)) { - const signature = getSignatureFromDeclaration(typeTag); - const pos = func.parameters.indexOf(declaration); - return declaration.dotDotDotToken ? getRestTypeAtPosition(signature, pos) : getTypeAtPosition(signature, pos); - } + const type = getParameterTypeOfTypeTag(func, declaration); + if (type) return type; } // Use contextual parameter type if one is available const type = declaration.symbol.escapedName === InternalSymbolName.This ? getContextualThisParameterType(func) : getContextuallyTypedParameterType(declaration); @@ -8653,7 +8944,7 @@ namespace ts { return containerObjectType; } } - const type = widenTypeInferredFromInitializer(declaration, checkDeclarationInitializer(declaration)); + const type = widenTypeInferredFromInitializer(declaration, checkDeclarationInitializer(declaration, checkMode)); return addOptionality(type, isProperty, isOptional); } @@ -8944,7 +9235,10 @@ namespace ts { if (containsSameNamedThisProperty(expression.left, expression.right)) { return anyType; } - const type = resolvedSymbol ? getTypeOfSymbol(resolvedSymbol) : getWidenedLiteralType(checkExpressionCached(expression.right)); + const isDirectExport = kind === AssignmentDeclarationKind.ExportsProperty && (isPropertyAccessExpression(expression.left) || isElementAccessExpression(expression.left)) && (isModuleExportsAccessExpression(expression.left.expression) || (isIdentifier(expression.left.expression) && isExportsIdentifier(expression.left.expression))); + const type = resolvedSymbol ? getTypeOfSymbol(resolvedSymbol) + : isDirectExport ? getRegularTypeOfLiteralType(checkExpressionCached(expression.right)) + : getWidenedLiteralType(checkExpressionCached(expression.right)); if (type.flags & TypeFlags.Object && kind === AssignmentDeclarationKind.ModuleExports && symbol.escapedName === InternalSymbolName.ExportEquals) { @@ -9046,7 +9340,7 @@ namespace ts { // contextual type or, if the element itself is a binding pattern, with the type implied by that binding // pattern. const contextualType = isBindingPattern(element.name) ? getTypeFromBindingPattern(element.name, /*includePatternInType*/ true, /*reportErrors*/ false) : unknownType; - return addOptionality(widenTypeInferredFromInitializer(element, checkDeclarationInitializer(element, contextualType))); + return addOptionality(widenTypeInferredFromInitializer(element, checkDeclarationInitializer(element, CheckMode.Normal, contextualType))); } if (isBindingPattern(element.name)) { return getTypeFromBindingPattern(element.name, includePatternInType, reportErrors); @@ -9138,7 +9432,7 @@ namespace ts { // binding pattern [x, s = ""]. Because the contextual type is a tuple type, the resulting type of [1, "one"] is the // tuple type [number, string]. Thus, the type inferred for 'x' is number and the type inferred for 's' is string. function getWidenedTypeForVariableLikeDeclaration(declaration: ParameterDeclaration | PropertyDeclaration | PropertySignature | VariableDeclaration | BindingElement | JSDocPropertyLikeTag, reportErrors?: boolean): Type { - return widenTypeForVariableLikeDeclaration(getTypeForVariableLikeDeclaration(declaration, /*includeOptionality*/ true), declaration, reportErrors); + return widenTypeForVariableLikeDeclaration(getTypeForVariableLikeDeclaration(declaration, /*includeOptionality*/ true, CheckMode.Normal), declaration, reportErrors); } function isGlobalSymbolConstructor(node: Node) { @@ -9183,8 +9477,8 @@ namespace ts { return isPrivateWithinAmbient(memberDeclaration); } - function tryGetTypeFromEffectiveTypeNode(declaration: Declaration) { - const typeNode = getEffectiveTypeAnnotationNode(declaration); + function tryGetTypeFromEffectiveTypeNode(node: Node) { + const typeNode = getEffectiveTypeAnnotationNode(node); if (typeNode) { return getTypeFromTypeNode(typeNode); } @@ -9245,6 +9539,11 @@ namespace ts { } return getWidenedType(getWidenedLiteralType(checkExpression(declaration.statements[0].expression))); } + if (isAccessor(declaration)) { + // Binding of certain patterns in JS code will occasionally mark symbols as both properties + // and accessors. Here we dispatch to accessor resolution if needed. + return getTypeOfAccessors(symbol); + } // Handle variable, parameter or property if (!pushTypeResolution(symbol, TypeSystemPropertyName.Type)) { @@ -9310,9 +9609,6 @@ namespace ts { else if (isEnumMember(declaration)) { type = getTypeOfEnumMember(symbol); } - else if (isAccessor(declaration)) { - type = resolveTypeOfAccessors(symbol) || Debug.fail("Non-write accessor resolution must always produce a type"); - } else { return Debug.fail("Unhandled declaration kind! " + Debug.formatSyntaxKind(declaration.kind) + " for " + Debug.formatSymbol(symbol)); } @@ -9357,91 +9653,62 @@ namespace ts { function getTypeOfAccessors(symbol: Symbol): Type { const links = getSymbolLinks(symbol); - return links.type || (links.type = getTypeOfAccessorsWorker(symbol) || Debug.fail("Read type of accessor must always produce a type")); - } - - function getTypeOfSetAccessor(symbol: Symbol): Type | undefined { - const links = getSymbolLinks(symbol); - return links.writeType || (links.writeType = getTypeOfAccessorsWorker(symbol, /*writing*/ true)); - } - - function getTypeOfAccessorsWorker(symbol: Symbol, writing = false): Type | undefined { - if (!pushTypeResolution(symbol, TypeSystemPropertyName.Type)) { - return errorType; - } - - let type = resolveTypeOfAccessors(symbol, writing); - - if (!popTypeResolution()) { - type = anyType; - if (noImplicitAny) { - const getter = getDeclarationOfKind(symbol, SyntaxKind.GetAccessor); - error(getter, Diagnostics._0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions, symbolToString(symbol)); - } - } - return type; - } - - function resolveTypeOfAccessors(symbol: Symbol, writing = false) { - const getter = getDeclarationOfKind(symbol, SyntaxKind.GetAccessor); - const setter = getDeclarationOfKind(symbol, SyntaxKind.SetAccessor); - - const setterType = getAnnotatedAccessorType(setter); - - // For write operations, prioritize type annotations on the setter - if (writing && setterType) { - return instantiateTypeIfNeeded(setterType, symbol); - } - // Else defer to the getter type - - if (getter && isInJSFile(getter)) { - const jsDocType = getTypeForDeclarationFromJSDocComment(getter); - if (jsDocType) { - return instantiateTypeIfNeeded(jsDocType, symbol); + if (!links.type) { + if (!pushTypeResolution(symbol, TypeSystemPropertyName.Type)) { + return errorType; } - } - - // Try to see if the user specified a return type on the get-accessor. - const getterType = getAnnotatedAccessorType(getter); - if (getterType) { - return instantiateTypeIfNeeded(getterType, symbol); - } - - // If the user didn't specify a return type, try to use the set-accessor's parameter type. - if (setterType) { - return setterType; - } - - // If there are no specified types, try to infer it from the body of the get accessor if it exists. - if (getter && getter.body) { - const returnTypeFromBody = getReturnTypeFromBody(getter); - return instantiateTypeIfNeeded(returnTypeFromBody, symbol); - } - - // Otherwise, fall back to 'any'. - if (setter) { - if (!isPrivateWithinAmbient(setter)) { - errorOrSuggestion(noImplicitAny, setter, Diagnostics.Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_parameter_type_annotation, symbolToString(symbol)); + const getter = getDeclarationOfKind(symbol, SyntaxKind.GetAccessor); + const setter = getDeclarationOfKind(symbol, SyntaxKind.SetAccessor); + // We try to resolve a getter type annotation, a setter type annotation, or a getter function + // body return type inference, in that order. + let type = getter && isInJSFile(getter) && getTypeForDeclarationFromJSDocComment(getter) || + getAnnotatedAccessorType(getter) || + getAnnotatedAccessorType(setter) || + getter && getter.body && getReturnTypeFromBody(getter); + if (!type) { + if (setter && !isPrivateWithinAmbient(setter)) { + errorOrSuggestion(noImplicitAny, setter, Diagnostics.Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_parameter_type_annotation, symbolToString(symbol)); + } + else if (getter && !isPrivateWithinAmbient(getter)) { + errorOrSuggestion(noImplicitAny, getter, Diagnostics.Property_0_implicitly_has_type_any_because_its_get_accessor_lacks_a_return_type_annotation, symbolToString(symbol)); + } + type = anyType; } - return anyType; - } - else if (getter) { - Debug.assert(!!getter, "there must exist a getter as we are current checking either setter or getter in this function"); - if (!isPrivateWithinAmbient(getter)) { - errorOrSuggestion(noImplicitAny, getter, Diagnostics.Property_0_implicitly_has_type_any_because_its_get_accessor_lacks_a_return_type_annotation, symbolToString(symbol)); + if (!popTypeResolution()) { + if (getAnnotatedAccessorTypeNode(getter)) { + error(getter, Diagnostics._0_is_referenced_directly_or_indirectly_in_its_own_type_annotation, symbolToString(symbol)); + } + else if (getAnnotatedAccessorTypeNode(setter)) { + error(setter, Diagnostics._0_is_referenced_directly_or_indirectly_in_its_own_type_annotation, symbolToString(symbol)); + } + else if (getter && noImplicitAny) { + error(getter, Diagnostics._0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions, symbolToString(symbol)); + } + type = anyType; } - return anyType; + links.type = type; } - return undefined; + return links.type; + } - function instantiateTypeIfNeeded(type: Type, symbol: Symbol) { - if (getCheckFlags(symbol) & CheckFlags.Instantiated) { - const links = getSymbolLinks(symbol); - return instantiateType(type, links.mapper); + function getWriteTypeOfAccessors(symbol: Symbol): Type { + const links = getSymbolLinks(symbol); + if (!links.writeType) { + if (!pushTypeResolution(symbol, TypeSystemPropertyName.WriteType)) { + return errorType; } - - return type; + const setter = getDeclarationOfKind(symbol, SyntaxKind.SetAccessor); + let writeType = getAnnotatedAccessorType(setter); + if (!popTypeResolution()) { + if (getAnnotatedAccessorTypeNode(setter)) { + error(setter, Diagnostics._0_is_referenced_directly_or_indirectly_in_its_own_type_annotation, symbolToString(symbol)); + } + writeType = anyType; + } + // Absent an explicit setter type annotation we use the read type of the accessor. + links.writeType = writeType || getTypeOfAccessors(symbol); } + return links.writeType; } function getBaseTypeVariableOfClass(symbol: Symbol) { @@ -9529,17 +9796,12 @@ namespace ts { function getTypeOfInstantiatedSymbol(symbol: Symbol): Type { const links = getSymbolLinks(symbol); - if (!links.type) { - if (!pushTypeResolution(symbol, TypeSystemPropertyName.Type)) { - return links.type = errorType; - } - let type = instantiateType(getTypeOfSymbol(links.target!), links.mapper); - if (!popTypeResolution()) { - type = reportCircularityError(symbol); - } - links.type = type; - } - return links.type; + return links.type || (links.type = instantiateType(getTypeOfSymbol(links.target!), links.mapper)); + } + + function getWriteTypeOfInstantiatedSymbol(symbol: Symbol): Type { + const links = getSymbolLinks(symbol); + return links.writeType || (links.writeType = instantiateType(getWriteTypeOfSymbol(links.target!), links.mapper)); } function reportCircularityError(symbol: Symbol) { @@ -9571,12 +9833,34 @@ namespace ts { return links.type; } - function getSetAccessorTypeOfSymbol(symbol: Symbol): Type { + function getWriteTypeOfSymbolWithDeferredType(symbol: Symbol): Type | undefined { + const links = getSymbolLinks(symbol); + if (!links.writeType && links.deferralWriteConstituents) { + Debug.assertIsDefined(links.deferralParent); + Debug.assertIsDefined(links.deferralConstituents); + links.writeType = links.deferralParent.flags & TypeFlags.Union ? getUnionType(links.deferralWriteConstituents) : getIntersectionType(links.deferralWriteConstituents); + } + return links.writeType; + } + + /** + * Distinct write types come only from set accessors, but synthetic union and intersection + * properties deriving from set accessors will either pre-compute or defer the union or + * intersection of the writeTypes of their constituents. + */ + function getWriteTypeOfSymbol(symbol: Symbol): Type { + const checkFlags = getCheckFlags(symbol); + if (symbol.flags & SymbolFlags.Property) { + return checkFlags & CheckFlags.SyntheticProperty ? + checkFlags & CheckFlags.DeferredType ? + getWriteTypeOfSymbolWithDeferredType(symbol) || getTypeOfSymbolWithDeferredType(symbol) : + (symbol as TransientSymbol).writeType || (symbol as TransientSymbol).type! : + getTypeOfSymbol(symbol); + } if (symbol.flags & SymbolFlags.Accessor) { - const type = getTypeOfSetAccessor(symbol); - if (type) { - return type; - } + return checkFlags & CheckFlags.Instantiated ? + getWriteTypeOfInstantiatedSymbol(symbol) : + getWriteTypeOfAccessors(symbol); } return getTypeOfSymbol(symbol); } @@ -9710,7 +9994,7 @@ namespace ts { node = paramSymbol.valueDeclaration!; } break; - case SyntaxKind.JSDocComment: { + case SyntaxKind.JSDoc: { const outerTypeParameters = getOuterTypeParameters(node, includeThisTypes); return (node as JSDoc).tags ? appendTypeParameters(outerTypeParameters, flatMap((node as JSDoc).tags, t => isJSDocTemplateTag(t) ? t.typeParameters : undefined)) @@ -9779,7 +10063,8 @@ namespace ts { } function getBaseTypeNodeOfClass(type: InterfaceType): ExpressionWithTypeArguments | undefined { - return getEffectiveBaseTypeNode(type.symbol.valueDeclaration as ClassLikeDeclaration); + const decl = getClassLikeDeclarationOfSymbol(type.symbol); + return decl && getEffectiveBaseTypeNode(decl); } function getConstructorsForTypeArguments(type: Type, typeArgumentNodes: readonly TypeNode[] | undefined, location: Node): readonly Signature[] { @@ -9805,8 +10090,8 @@ namespace ts { */ function getBaseConstructorTypeOfClass(type: InterfaceType): Type { if (!type.resolvedBaseConstructorType) { - const decl = type.symbol.valueDeclaration as ClassLikeDeclaration; - const extended = getEffectiveBaseTypeNode(decl); + const decl = getClassLikeDeclarationOfSymbol(type.symbol); + const extended = decl && getEffectiveBaseTypeNode(decl); const baseTypeNode = getBaseTypeNodeOfClass(type); if (!baseTypeNode) { return type.resolvedBaseConstructorType = undefinedType; @@ -11137,7 +11422,6 @@ namespace ts { * Converts an AnonymousType to a ResolvedType. */ function resolveAnonymousTypeMembers(type: AnonymousType) { - const symbol = getMergedSymbol(type.symbol); if (type.target) { setStructuredTypeMembers(type, emptySymbols, emptyArray, emptyArray, emptyArray); const members = createInstantiatedSymbolTable(getPropertiesOfObjectType(type.target), type.mapper!, /*mappingThisOnly*/ false); @@ -11145,82 +11429,83 @@ namespace ts { const constructSignatures = instantiateSignatures(getSignaturesOfType(type.target, SignatureKind.Construct), type.mapper!); const indexInfos = instantiateIndexInfos(getIndexInfosOfType(type.target), type.mapper!); setStructuredTypeMembers(type, members, callSignatures, constructSignatures, indexInfos); + return; } - else if (symbol.flags & SymbolFlags.TypeLiteral) { + const symbol = getMergedSymbol(type.symbol); + if (symbol.flags & SymbolFlags.TypeLiteral) { setStructuredTypeMembers(type, emptySymbols, emptyArray, emptyArray, emptyArray); const members = getMembersOfSymbol(symbol); const callSignatures = getSignaturesOfSymbol(members.get(InternalSymbolName.Call)); const constructSignatures = getSignaturesOfSymbol(members.get(InternalSymbolName.New)); const indexInfos = getIndexInfosOfSymbol(symbol); setStructuredTypeMembers(type, members, callSignatures, constructSignatures, indexInfos); + return; } - else { - // Combinations of function, class, enum and module - let members = emptySymbols; - let indexInfos: IndexInfo[] | undefined; - if (symbol.exports) { - members = getExportsOfSymbol(symbol); - if (symbol === globalThisSymbol) { - const varsOnly = new Map() as SymbolTable; - members.forEach(p => { - if (!(p.flags & SymbolFlags.BlockScoped)) { - varsOnly.set(p.escapedName, p); - } - }); - members = varsOnly; - } + // Combinations of function, class, enum and module + let members = emptySymbols; + let indexInfos: IndexInfo[] | undefined; + if (symbol.exports) { + members = getExportsOfSymbol(symbol); + if (symbol === globalThisSymbol) { + const varsOnly = new Map() as SymbolTable; + members.forEach(p => { + if (!(p.flags & SymbolFlags.BlockScoped)) { + varsOnly.set(p.escapedName, p); + } + }); + members = varsOnly; } - let baseConstructorIndexInfo: IndexInfo | undefined; - setStructuredTypeMembers(type, members, emptyArray, emptyArray, emptyArray); - if (symbol.flags & SymbolFlags.Class) { - const classType = getDeclaredTypeOfClassOrInterface(symbol); - const baseConstructorType = getBaseConstructorTypeOfClass(classType); - if (baseConstructorType.flags & (TypeFlags.Object | TypeFlags.Intersection | TypeFlags.TypeVariable)) { - members = createSymbolTable(getNamedOrIndexSignatureMembers(members)); - addInheritedMembers(members, getPropertiesOfType(baseConstructorType)); - } - else if (baseConstructorType === anyType) { - baseConstructorIndexInfo = createIndexInfo(stringType, anyType, /*isReadonly*/ false); - } + } + let baseConstructorIndexInfo: IndexInfo | undefined; + setStructuredTypeMembers(type, members, emptyArray, emptyArray, emptyArray); + if (symbol.flags & SymbolFlags.Class) { + const classType = getDeclaredTypeOfClassOrInterface(symbol); + const baseConstructorType = getBaseConstructorTypeOfClass(classType); + if (baseConstructorType.flags & (TypeFlags.Object | TypeFlags.Intersection | TypeFlags.TypeVariable)) { + members = createSymbolTable(getNamedOrIndexSignatureMembers(members)); + addInheritedMembers(members, getPropertiesOfType(baseConstructorType)); + } + else if (baseConstructorType === anyType) { + baseConstructorIndexInfo = createIndexInfo(stringType, anyType, /*isReadonly*/ false); } + } - const indexSymbol = getIndexSymbolFromSymbolTable(members); - if (indexSymbol) { - indexInfos = getIndexInfosOfIndexSymbol(indexSymbol); + const indexSymbol = getIndexSymbolFromSymbolTable(members); + if (indexSymbol) { + indexInfos = getIndexInfosOfIndexSymbol(indexSymbol); + } + else { + if (baseConstructorIndexInfo) { + indexInfos = append(indexInfos, baseConstructorIndexInfo); } - else { - if (baseConstructorIndexInfo) { - indexInfos = append(indexInfos, baseConstructorIndexInfo); - } - if (symbol.flags & SymbolFlags.Enum && (getDeclaredTypeOfSymbol(symbol).flags & TypeFlags.Enum || - some(type.properties, prop => !!(getTypeOfSymbol(prop).flags & TypeFlags.NumberLike)))) { - indexInfos = append(indexInfos, enumNumberIndexInfo); - } + if (symbol.flags & SymbolFlags.Enum && (getDeclaredTypeOfSymbol(symbol).flags & TypeFlags.Enum || + some(type.properties, prop => !!(getTypeOfSymbol(prop).flags & TypeFlags.NumberLike)))) { + indexInfos = append(indexInfos, enumNumberIndexInfo); } - setStructuredTypeMembers(type, members, emptyArray, emptyArray, indexInfos || emptyArray); - // We resolve the members before computing the signatures because a signature may use - // typeof with a qualified name expression that circularly references the type we are - // in the process of resolving (see issue #6072). The temporarily empty signature list - // will never be observed because a qualified name can't reference signatures. - if (symbol.flags & (SymbolFlags.Function | SymbolFlags.Method)) { - type.callSignatures = getSignaturesOfSymbol(symbol); + } + setStructuredTypeMembers(type, members, emptyArray, emptyArray, indexInfos || emptyArray); + // We resolve the members before computing the signatures because a signature may use + // typeof with a qualified name expression that circularly references the type we are + // in the process of resolving (see issue #6072). The temporarily empty signature list + // will never be observed because a qualified name can't reference signatures. + if (symbol.flags & (SymbolFlags.Function | SymbolFlags.Method)) { + type.callSignatures = getSignaturesOfSymbol(symbol); + } + // And likewise for construct signatures for classes + if (symbol.flags & SymbolFlags.Class) { + const classType = getDeclaredTypeOfClassOrInterface(symbol); + let constructSignatures = symbol.members ? getSignaturesOfSymbol(symbol.members.get(InternalSymbolName.Constructor)) : emptyArray; + if (symbol.flags & SymbolFlags.Function) { + constructSignatures = addRange(constructSignatures.slice(), mapDefined( + type.callSignatures, + sig => isJSConstructor(sig.declaration) ? + createSignature(sig.declaration, sig.typeParameters, sig.thisParameter, sig.parameters, classType, /*resolvedTypePredicate*/ undefined, sig.minArgumentCount, sig.flags & SignatureFlags.PropagatingFlags) : + undefined)); } - // And likewise for construct signatures for classes - if (symbol.flags & SymbolFlags.Class) { - const classType = getDeclaredTypeOfClassOrInterface(symbol); - let constructSignatures = symbol.members ? getSignaturesOfSymbol(symbol.members.get(InternalSymbolName.Constructor)) : emptyArray; - if (symbol.flags & SymbolFlags.Function) { - constructSignatures = addRange(constructSignatures.slice(), mapDefined( - type.callSignatures, - sig => isJSConstructor(sig.declaration) ? - createSignature(sig.declaration, sig.typeParameters, sig.thisParameter, sig.parameters, classType, /*resolvedTypePredicate*/ undefined, sig.minArgumentCount, sig.flags & SignatureFlags.PropagatingFlags) : - undefined)); - } - if (!constructSignatures.length) { - constructSignatures = getDefaultConstructSignatures(classType); - } - type.constructSignatures = constructSignatures; + if (!constructSignatures.length) { + constructSignatures = getDefaultConstructSignatures(classType); } + type.constructSignatures = constructSignatures; } } @@ -11571,6 +11856,17 @@ namespace ts { getPropertiesOfObjectType(type); } + function forEachPropertyOfType(type: Type, action: (symbol: Symbol, escapedName: __String) => void): void { + type = getReducedApparentType(type); + if (type.flags & TypeFlags.StructuredType) { + resolveStructuredTypeMembers(type as StructuredType).members.forEach((symbol, escapedName) => { + if (isNamedMember(symbol, escapedName)) { + action(symbol, escapedName); + } + }); + } + } + function isTypeInvalidDueToUnionDiscriminant(contextualType: Type, obj: ObjectLiteralExpression | JsxAttributes): boolean { const list = obj.properties as NodeArray; return list.some(property => { @@ -11621,6 +11917,11 @@ namespace ts { } function getConstraintFromIndexedAccess(type: IndexedAccessType) { + if (isMappedTypeGenericIndexedAccess(type)) { + // For indexed access types of the form { [P in K]: E }[X], where K is non-generic and X is generic, + // we substitute an instantiation of E where P is replaced with X. + return substituteIndexedMappedType(type.objectType as MappedType, type.indexType); + } const indexConstraint = getSimplifiedTypeOrConstraint(type.indexType); if (indexConstraint && indexConstraint !== type.indexType) { const indexedAccess = getIndexedAccessTypeOrUndefined(type.objectType, indexConstraint, type.accessFlags); @@ -11834,6 +12135,11 @@ namespace ts { return constraint ? getStringMappingType((t as StringMappingType).symbol, constraint) : stringType; } if (t.flags & TypeFlags.IndexedAccess) { + if (isMappedTypeGenericIndexedAccess(t)) { + // For indexed access types of the form { [P in K]: E }[X], where K is non-generic and X is generic, + // we substitute an instantiation of E where P is replaced with X. + return getBaseConstraint(substituteIndexedMappedType((t as IndexedAccessType).objectType as MappedType, (t as IndexedAccessType).indexType)); + } const baseObjectType = getBaseConstraint((t as IndexedAccessType).objectType); const baseIndexType = getBaseConstraint((t as IndexedAccessType).indexType); const baseIndexedAccess = baseObjectType && baseIndexType && getIndexedAccessTypeOrUndefined(baseObjectType, baseIndexType, (t as IndexedAccessType).accessFlags); @@ -11916,13 +12222,20 @@ namespace ts { return type; } + function isMappedTypeGenericIndexedAccess(type: Type) { + let objectType; + return !!(type.flags & TypeFlags.IndexedAccess && getObjectFlags(objectType = (type as IndexedAccessType).objectType) & ObjectFlags.Mapped && + !isGenericMappedType(objectType) && isGenericIndexType((type as IndexedAccessType).indexType) && + !(objectType as MappedType).declaration.questionToken && !(objectType as MappedType).declaration.nameType); + } + /** * For a type parameter, return the base constraint of the type parameter. For the string, number, * boolean, and symbol primitive types, return the corresponding object types. Otherwise return the * type itself. */ function getApparentType(type: Type): Type { - const t = type.flags & TypeFlags.Instantiable ? getBaseConstraintOfType(type) || unknownType : type; + const t = !(type.flags & TypeFlags.Instantiable) ? type : getBaseConstraintOfType(type) || unknownType; return getObjectFlags(t) & ObjectFlags.Mapped ? getApparentTypeOfMappedType(t as MappedType) : t.flags & TypeFlags.Intersection ? getApparentTypeOfIntersectionType(t as IntersectionType) : t.flags & TypeFlags.StringLike ? globalStringType : @@ -12046,6 +12359,7 @@ namespace ts { let firstType: Type | undefined; let nameType: Type | undefined; const propTypes: Type[] = []; + let writeTypes: Type[] | undefined; let firstValueDeclaration: Declaration | undefined; let hasNonUniformValueDeclaration = false; for (const prop of props) { @@ -12061,13 +12375,17 @@ namespace ts { firstType = type; nameType = getSymbolLinks(prop).nameType; } + const writeType = getWriteTypeOfSymbol(prop); + if (writeTypes || writeType !== type) { + writeTypes = append(!writeTypes ? propTypes.slice() : writeTypes, writeType); + } else if (type !== firstType) { checkFlags |= CheckFlags.HasNonUniformType; } - if (isLiteralType(type) || isPatternLiteralType(type)) { + if (isLiteralType(type) || isPatternLiteralType(type) || type === uniqueLiteralType) { checkFlags |= CheckFlags.HasLiteralType; } - if (type.flags & TypeFlags.Never) { + if (type.flags & TypeFlags.Never && type !== uniqueLiteralType) { checkFlags |= CheckFlags.HasNeverType; } propTypes.push(type); @@ -12091,9 +12409,13 @@ namespace ts { result.checkFlags |= CheckFlags.DeferredType; result.deferralParent = containingType; result.deferralConstituents = propTypes; + result.deferralWriteConstituents = writeTypes; } else { result.type = isUnion ? getUnionType(propTypes) : getIntersectionType(propTypes); + if (writeTypes) { + result.writeType = isUnion ? getUnionType(writeTypes) : getIntersectionType(writeTypes); + } } return result; } @@ -12544,7 +12866,19 @@ namespace ts { p.typeExpression && isJSDocVariadicType(p.typeExpression.type) ? p.typeExpression.type : undefined); const syntheticArgsSymbol = createSymbol(SymbolFlags.Variable, "args" as __String, CheckFlags.RestParameter); - syntheticArgsSymbol.type = lastParamVariadicType ? createArrayType(getTypeFromTypeNode(lastParamVariadicType.type)) : anyArrayType; + if (lastParamVariadicType) { + // Parameter has effective annotation, lock in type + syntheticArgsSymbol.type = createArrayType(getTypeFromTypeNode(lastParamVariadicType.type)); + } + else { + // Parameter has no annotation + // By using a `DeferredType` symbol, we allow the type of this rest arg to be overriden by contextual type assignment so long as its type hasn't been + // cached by `getTypeOfSymbol` yet. + syntheticArgsSymbol.checkFlags |= CheckFlags.DeferredType; + syntheticArgsSymbol.deferralParent = neverType; + syntheticArgsSymbol.deferralConstituents = [anyArrayType]; + syntheticArgsSymbol.deferralWriteConstituents = [anyArrayType]; + } if (lastParamVariadicType) { // Replace the last parameter with a rest parameter. parameters.pop(); @@ -12560,6 +12894,13 @@ namespace ts { return typeTag?.typeExpression && getSingleCallSignature(getTypeFromTypeNode(typeTag.typeExpression)); } + function getParameterTypeOfTypeTag(func: FunctionLikeDeclaration, parameter: ParameterDeclaration) { + const signature = getSignatureOfTypeTag(func); + if (!signature) return undefined; + const pos = func.parameters.indexOf(parameter); + return parameter.dotDotDotToken ? getRestTypeAtPosition(signature, pos) : getTypeAtPosition(signature, pos); + } + function getReturnTypeOfTypeTag(node: SignatureDeclaration | JSDocSignature) { const signature = getSignatureOfTypeTag(node); return signature && getReturnTypeOfSignature(signature); @@ -12594,6 +12935,9 @@ namespace ts { case SyntaxKind.ElementAccessExpression: return traverse((node as PropertyAccessExpression | ElementAccessExpression).expression); + case SyntaxKind.PropertyAssignment: + return traverse((node as PropertyAssignment).initializer); + default: return !nodeStartsNewLexicalEnvironment(node) && !isPartOfTypeNode(node) && !!forEachChild(node, traverse); } @@ -12849,8 +13193,11 @@ namespace ts { // object type literal or interface (using the new keyword). Each way of declaring a constructor // will result in a different declaration kind. if (!signature.isolatedSignatureType) { - const kind = signature.declaration ? signature.declaration.kind : SyntaxKind.Unknown; - const isConstructor = kind === SyntaxKind.Constructor || kind === SyntaxKind.ConstructSignature || kind === SyntaxKind.ConstructorType; + const kind = signature.declaration?.kind; + + // If declaration is undefined, it is likely to be the signature of the default constructor. + const isConstructor = kind === undefined || kind === SyntaxKind.Constructor || kind === SyntaxKind.ConstructSignature || kind === SyntaxKind.ConstructorType; + const type = createObjectType(ObjectFlags.Anonymous); type.members = emptySymbols; type.properties = emptyArray; @@ -13351,14 +13698,14 @@ namespace ts { function getImpliedConstraint(type: Type, checkNode: TypeNode, extendsNode: TypeNode): Type | undefined { return isUnaryTupleTypeNode(checkNode) && isUnaryTupleTypeNode(extendsNode) ? getImpliedConstraint(type, (checkNode as TupleTypeNode).elements[0], (extendsNode as TupleTypeNode).elements[0]) : - getActualTypeVariable(getTypeFromTypeNode(checkNode)) === type ? getTypeFromTypeNode(extendsNode) : + getActualTypeVariable(getTypeFromTypeNode(checkNode)) === getActualTypeVariable(type) ? getTypeFromTypeNode(extendsNode) : undefined; } function getConditionalFlowTypeOfType(type: Type, node: Node) { let constraints: Type[] | undefined; let covariant = true; - while (node && !isStatement(node) && node.kind !== SyntaxKind.JSDocComment) { + while (node && !isStatement(node) && node.kind !== SyntaxKind.JSDoc) { const parent = node.parent; // only consider variance flipped by parameter locations - `keyof` types would usually be considered variance inverting, but // often get used in indexed accesses where they behave sortof invariantly, but our checking is lax @@ -13488,7 +13835,7 @@ namespace ts { // The expression is processed as an identifier expression (section 4.3) // or property access expression(section 4.10), // the widened type(section 3.9) of which becomes the result. - const type = isThisIdentifier(node.exprName) ? checkThisExpression(node.exprName) : checkExpression(node.exprName); + const type = checkExpressionWithTypeArguments(node); links.resolvedType = getRegularTypeOfLiteralType(getWidenedType(type)); } return links.resolvedType; @@ -13550,7 +13897,7 @@ namespace ts { function getGlobalSymbol(name: __String, meaning: SymbolFlags, diagnostic: DiagnosticMessage | undefined): Symbol | undefined { // Don't track references for global symbols anyway, so value if `isReference` is arbitrary - return resolveName(undefined, name, meaning, diagnostic, name, /*isUse*/ false); + return resolveName(undefined, name, meaning, diagnostic, name, /*isUse*/ false, /*excludeGlobals*/ false, /*getSpellingSuggestions*/ false); } function getGlobalType(name: __String, arity: 0, reportErrors: true): ObjectType; @@ -13881,7 +14228,7 @@ namespace ts { } } const fixedLength = properties.length; - const lengthSymbol = createSymbol(SymbolFlags.Property, "length" as __String); + const lengthSymbol = createSymbol(SymbolFlags.Property, "length" as __String, readonly ? CheckFlags.Readonly : 0); if (combinedFlags & ElementFlags.Variable) { lengthSymbol.type = numberType; } @@ -14065,6 +14412,7 @@ namespace ts { // We ignore 'never' types in unions if (!(flags & TypeFlags.Never)) { includes |= flags & TypeFlags.IncludesMask; + if (flags & TypeFlags.Instantiable) includes |= TypeFlags.IncludesInstantiable; if (type === wildcardType) includes |= TypeFlags.IncludesWildcard; if (!strictNullChecks && flags & TypeFlags.Nullable) { if (!(getObjectFlags(type) & ObjectFlags.ContainsWideningType)) includes |= TypeFlags.IncludesNonWideningType; @@ -14090,11 +14438,17 @@ namespace ts { } function removeSubtypes(types: Type[], hasObjectTypes: boolean): Type[] | undefined { + // [] and [T] immediately reduce to [] and [T] respectively + if (types.length < 2) { + return types; + } + const id = getTypeListId(types); const match = subtypeReductionCache.get(id); if (match) { return match; } + // We assume that redundant primitive types have already been removed from the types array and that there // are no any and unknown types in the array. Thus, the only possible supertypes for primitive types are empty // object types, and if none of those are present we can exclude primitive types from the subtype check. @@ -14169,13 +14523,13 @@ namespace ts { } function removeStringLiteralsMatchedByTemplateLiterals(types: Type[]) { - const templates = filter(types, isPatternLiteralType); + const templates = filter(types, isPatternLiteralType) as TemplateLiteralType[]; if (templates.length) { let i = types.length; while (i > 0) { i--; const t = types[i]; - if (t.flags & TypeFlags.StringLiteral && some(templates, template => isTypeSubtypeOf(t, template))) { + if (t.flags & TypeFlags.StringLiteral && some(templates, template => isTypeMatchedByTemplateLiteralType(t, template))) { orderedRemoveItemAt(types, i); } } @@ -14797,9 +15151,24 @@ namespace ts { /*aliasSymbol*/ undefined, /*aliasTypeArguments*/ undefined, origin); } + /** + * A union type which is reducible upon instantiation (meaning some members are removed under certain instantiations) + * must be kept generic, as that instantiation information needs to flow through the type system. By replacing all + * type parameters in the union with a special never type that is treated as a literal in `getReducedType`, we can cause the `getReducedType` logic + * to reduce the resulting type if possible (since only intersections with conflicting literal-typed properties are reducible). + */ + function isPossiblyReducibleByInstantiation(type: UnionType): boolean { + return some(type.types, t => { + const uniqueFilled = getUniqueLiteralFilledInstantiation(t); + return getReducedType(uniqueFilled) !== uniqueFilled; + }); + } + function getIndexType(type: Type, stringsOnly = keyofStringsOnly, noIndexSignatures?: boolean): Type { type = getReducedType(type); - return type.flags & TypeFlags.Union ? getIntersectionType(map((type as UnionType).types, t => getIndexType(t, stringsOnly, noIndexSignatures))) : + return type.flags & TypeFlags.Union ? isPossiblyReducibleByInstantiation(type as UnionType) + ? getIndexTypeForGenericType(type as InstantiableType | UnionOrIntersectionType, stringsOnly) + : getIntersectionType(map((type as UnionType).types, t => getIndexType(t, stringsOnly, noIndexSignatures))) : type.flags & TypeFlags.Intersection ? getUnionType(map((type as IntersectionType).types, t => getIndexType(t, stringsOnly, noIndexSignatures))) : type.flags & TypeFlags.InstantiableNonPrimitive || isGenericTupleType(type) || isGenericMappedType(type) && !hasDistributiveNameType(type) ? getIndexTypeForGenericType(type as InstantiableType | UnionOrIntersectionType, stringsOnly) : getObjectFlags(type) & ObjectFlags.Mapped ? getIndexTypeForMappedType(type as MappedType, stringsOnly, noIndexSignatures) : @@ -14885,24 +15254,32 @@ namespace ts { } return type; - function addSpans(texts: readonly string[], types: readonly Type[]): boolean { + function addSpans(texts: readonly string[] | string, types: readonly Type[]): boolean { + const isTextsArray = isArray(texts); for (let i = 0; i < types.length; i++) { const t = types[i]; + const addText = isTextsArray ? texts[i + 1] : texts; if (t.flags & (TypeFlags.Literal | TypeFlags.Null | TypeFlags.Undefined)) { text += getTemplateStringForType(t) || ""; - text += texts[i + 1]; + text += addText; + if (!isTextsArray) return true; } else if (t.flags & TypeFlags.TemplateLiteral) { text += (t as TemplateLiteralType).texts[0]; if (!addSpans((t as TemplateLiteralType).texts, (t as TemplateLiteralType).types)) return false; - text += texts[i + 1]; + text += addText; + if (!isTextsArray) return true; } else if (isGenericIndexType(t) || isPatternLiteralPlaceholderType(t)) { newTypes.push(t); newTexts.push(text); - text = texts[i + 1]; + text = addText; } - else { + else if (t.flags & TypeFlags.Intersection) { + const added = addSpans(texts[i + 1], (t as IntersectionType).types); + if (!added) return false; + } + else if (isTextsArray) { return false; } } @@ -15027,7 +15404,7 @@ namespace ts { } const prop = getPropertyOfType(objectType, propName); if (prop) { - if (accessFlags & AccessFlags.ReportDeprecated && accessNode && prop.declarations && getDeclarationNodeFlagsFromSymbol(prop) & NodeFlags.Deprecated && isUncalledFunctionReference(accessNode, prop)) { + if (accessFlags & AccessFlags.ReportDeprecated && accessNode && prop.declarations && isDeprecatedSymbol(prop) && isUncalledFunctionReference(accessNode, prop)) { const deprecatedNode = accessExpression?.argumentExpression ?? (isIndexedAccessTypeNode(accessNode) ? accessNode.indexType : accessNode); addDeprecatedSuggestion(deprecatedNode, prop.declarations, propName as string); } @@ -15236,10 +15613,6 @@ namespace ts { (type.flags & (TypeFlags.InstantiableNonPrimitive | TypeFlags.Index | TypeFlags.TemplateLiteral | TypeFlags.StringMapping) && !isPatternLiteralType(type) ? ObjectFlags.IsGenericIndexType : 0); } - function isThisTypeParameter(type: Type): boolean { - return !!(type.flags & TypeFlags.TypeParameter && (type as TypeParameter).isThisType); - } - function getSimplifiedType(type: Type, writing: boolean): Type { return type.flags & TypeFlags.IndexedAccess ? getSimplifiedIndexedAccessType(type as IndexedAccessType, writing) : type.flags & TypeFlags.Conditional ? getSimplifiedConditionalType(type as ConditionalType, writing) : @@ -15309,7 +15682,7 @@ namespace ts { // If the object type is a mapped type { [P in K]: E }, where K is generic, instantiate E using a mapper // that substitutes the index type for P. For example, for an index access { [P in K]: Box }[X], we // construct the type Box. - if (isGenericMappedType(objectType)) { + if (isGenericMappedType(objectType) && !objectType.declaration.nameType) { return type[cache] = mapType(substituteIndexedMappedType(objectType, type.indexType), t => getSimplifiedType(t, writing)); } return type[cache] = type; @@ -15477,6 +15850,11 @@ namespace ts { return type; } + function maybeCloneTypeParameter(p: TypeParameter) { + const constraint = getConstraintOfTypeParameter(p); + return constraint && (isGenericObjectType(constraint) || isGenericIndexType(constraint)) ? cloneTypeParameter(p) : p; + } + function isTypicalNondistributiveConditional(root: ConditionalRoot) { return !root.isDistributive && isSingletonTupleType(root.node.checkType) && isSingletonTupleType(root.node.extendsType); } @@ -15518,17 +15896,49 @@ namespace ts { } let combinedMapper: TypeMapper | undefined; if (root.inferTypeParameters) { - const context = createInferenceContext(root.inferTypeParameters, /*signature*/ undefined, InferenceFlags.None); - if (!checkTypeInstantiable) { + // When we're looking at making an inference for an infer type, when we get its constraint, it'll automagically be + // instantiated with the context, so it doesn't need the mapper for the inference contex - however the constraint + // may refer to another _root_, _uncloned_ `infer` type parameter [1], or to something mapped by `mapper` [2]. + // [1] Eg, if we have `Foo` and `Foo` - `B` is constrained to `T`, which, in turn, has been instantiated + // as `number` + // Conversely, if we have `Foo`, `B` is still constrained to `T` and `T` is instantiated as `A` + // [2] Eg, if we have `Foo` and `Foo` where `Q` is mapped by `mapper` into `number` - `B` is constrained to `T` + // which is in turn instantiated as `Q`, which is in turn instantiated as `number`. + // So we need to: + // * Clone the type parameters so their constraints can be instantiated in the context of `mapper` (otherwise theyd only get inference context information) + // * Set the clones to both map the conditional's enclosing `mapper` and the original params + // * instantiate the extends type with the clones + // * incorporate all of the component mappers into the combined mapper for the true and false members + // This means we have three mappers that need applying: + // * The original `mapper` used to create this conditional + // * The mapper that maps the old root type parameter to the clone (`freshMapper`) + // * The mapper that maps the clone to its inference result (`context.mapper`) + const freshParams = sameMap(root.inferTypeParameters, maybeCloneTypeParameter); + const freshMapper = freshParams !== root.inferTypeParameters ? createTypeMapper(root.inferTypeParameters, freshParams) : undefined; + const context = createInferenceContext(freshParams, /*signature*/ undefined, InferenceFlags.None); + if (freshMapper) { + const freshCombinedMapper = combineTypeMappers(mapper, freshMapper); + for (const p of freshParams) { + if (root.inferTypeParameters.indexOf(p) === -1) { + p.mapper = freshCombinedMapper; + } + } + } + // We skip inference of the possible `infer` types unles the `extendsType` _is_ an infer type + // if it was, it's trivial to say that extendsType = checkType, however such a pattern is used to + // "reset" the type being build up during constraint calculation and avoid making an apparently "infinite" constraint + // so in those cases we refain from performing inference and retain the uninfered type parameter + if (!checkTypeInstantiable || !some(root.inferTypeParameters, t => t === extendsType)) { // We don't want inferences from constraints as they may cause us to eagerly resolve the // conditional type instead of deferring resolution. Also, we always want strict function // types rules (i.e. proper contravariance) for inferences. - inferTypes(context.inferences, checkType, extendsType, InferencePriority.NoConstraints | InferencePriority.AlwaysStrict); + inferTypes(context.inferences, checkType, instantiateType(extendsType, freshMapper), InferencePriority.NoConstraints | InferencePriority.AlwaysStrict); } + const innerMapper = combineTypeMappers(freshMapper, context.mapper); // It's possible for 'infer T' type paramteters to be given uninstantiated constraints when the // those type parameters are used in type references (see getInferredTypeParameterConstraint). For // that reason we need context.mapper to be first in the combined mapper. See #42636 for examples. - combinedMapper = mapper ? combineTypeMappers(context.mapper, mapper) : context.mapper; + combinedMapper = mapper ? combineTypeMappers(innerMapper, mapper) : innerMapper; } // Instantiate the extends type including inferences for 'infer T' type parameters const inferredExtendsType = combinedMapper ? instantiateType(unwrapNondistributiveConditionalTuple(root, root.extendsType), combinedMapper) : extendsType; @@ -15638,14 +16048,16 @@ namespace ts { return result; } + function isDistributionDependent(root: ConditionalRoot) { + return root.isDistributive && ( + isTypeParameterPossiblyReferenced(root.checkType as TypeParameter, root.node.trueType) || + isTypeParameterPossiblyReferenced(root.checkType as TypeParameter, root.node.falseType)); + } + function getTypeFromConditionalTypeNode(node: ConditionalTypeNode): Type { const links = getNodeLinks(node); if (!links.resolvedType) { const checkType = getTypeFromTypeNode(node.checkType); - const isDistributive = !!(checkType.flags & TypeFlags.TypeParameter); - const isDistributionDependent = isDistributive && ( - isTypeParameterPossiblyReferenced(checkType as TypeParameter, node.trueType) || - isTypeParameterPossiblyReferenced(checkType as TypeParameter, node.falseType)); const aliasSymbol = getAliasSymbolForTypeNode(node); const aliasTypeArguments = getTypeArgumentsForAliasSymbol(aliasSymbol); const allOuterTypeParameters = getOuterTypeParameters(node, /*includeThisTypes*/ true); @@ -15654,8 +16066,7 @@ namespace ts { node, checkType, extendsType: getTypeFromTypeNode(node.extendsType), - isDistributive, - isDistributionDependent, + isDistributive: !!(checkType.flags & TypeFlags.TypeParameter), inferTypeParameters: getInferTypeParameters(node), outerTypeParameters, instantiations: undefined, @@ -15919,7 +16330,7 @@ namespace ts { const declarations = concatenate(leftProp.declarations, rightProp.declarations); const flags = SymbolFlags.Property | (leftProp.flags & SymbolFlags.Optional); const result = createSymbol(flags, leftProp.escapedName); - result.type = getUnionType([getTypeOfSymbol(leftProp), removeMissingOrUndefinedType(rightType)]); + result.type = getUnionType([getTypeOfSymbol(leftProp), removeMissingOrUndefinedType(rightType)], UnionReduction.Subtype); result.leftSpread = leftProp; result.rightSpread = rightProp; result.declarations = declarations; @@ -16040,9 +16451,11 @@ namespace ts { function getESSymbolLikeTypeForNode(node: Node) { if (isValidESSymbolDeclaration(node)) { - const symbol = getSymbolOfNode(node); - const links = getSymbolLinks(symbol); - return links.uniqueESSymbolType || (links.uniqueESSymbolType = createUniqueESSymbolType(symbol)); + const symbol = isCommonJsExportPropertyAssignment(node) ? getSymbolOfNode((node as BinaryExpression).left) : getSymbolOfNode(node); + if (symbol) { + const links = getSymbolLinks(symbol); + return links.uniqueESSymbolType || (links.uniqueESSymbolType = createUniqueESSymbolType(symbol)); + } } return esSymbolType; } @@ -16398,7 +16811,9 @@ namespace ts { } function getObjectTypeInstantiation(type: AnonymousType | DeferredTypeReference, mapper: TypeMapper, aliasSymbol?: Symbol, aliasTypeArguments?: readonly Type[]) { - const declaration = type.objectFlags & ObjectFlags.Reference ? (type as TypeReference).node! : type.symbol.declarations![0]; + const declaration = type.objectFlags & ObjectFlags.Reference ? (type as TypeReference).node! : + type.objectFlags & ObjectFlags.InstantiationExpressionType ? (type as InstantiationExpressionType).node : + type.symbol.declarations![0]; const links = getNodeLinks(declaration); const target = type.objectFlags & ObjectFlags.Reference ? links.resolvedType! as DeferredTypeReference : type.objectFlags & ObjectFlags.Instantiated ? type.target! : type; @@ -16414,8 +16829,8 @@ namespace ts { outerTypeParameters = addRange(outerTypeParameters, templateTagParameters); } typeParameters = outerTypeParameters || emptyArray; - const allDeclarations = type.objectFlags & ObjectFlags.Reference ? [declaration] : type.symbol.declarations!; - typeParameters = (target.objectFlags & ObjectFlags.Reference || target.symbol.flags & SymbolFlags.Method || target.symbol.flags & SymbolFlags.TypeLiteral) && !target.aliasTypeArguments ? + const allDeclarations = type.objectFlags & (ObjectFlags.Reference | ObjectFlags.InstantiationExpressionType) ? [declaration] : type.symbol.declarations!; + typeParameters = (target.objectFlags & (ObjectFlags.Reference | ObjectFlags.InstantiationExpressionType) || target.symbol.flags & SymbolFlags.Method || target.symbol.flags & SymbolFlags.TypeLiteral) && !target.aliasTypeArguments ? filter(typeParameters, tp => some(allDeclarations, d => isTypeParameterPossiblyReferenced(tp, d))) : typeParameters; links.outerTypeParameters = typeParameters; @@ -16514,7 +16929,9 @@ namespace ts { return mapTypeWithAlias(getReducedType(mappedTypeVariable), t => { if (t.flags & (TypeFlags.AnyOrUnknown | TypeFlags.InstantiableNonPrimitive | TypeFlags.Object | TypeFlags.Intersection) && t !== wildcardType && !isErrorType(t)) { if (!type.declaration.nameType) { - if (isArrayType(t)) { + let constraint; + if (isArrayType(t) || t.flags & TypeFlags.Any && findResolutionCycleStartIndex(typeVariable, TypeSystemPropertyName.ImmediateBaseConstraint) < 0 && + (constraint = getConstraintOfTypeParameter(typeVariable)) && everyType(constraint, or(isArrayType, isTupleType))) { return instantiateMappedArrayType(t, type, prependTypeMapping(typeVariable, t, mapper)); } if (isGenericTupleType(t)) { @@ -16594,6 +17011,9 @@ namespace ts { mapper = combineTypeMappers(makeUnaryTypeMapper(origTypeParameter, freshTypeParameter), mapper); freshTypeParameter.mapper = mapper; } + if (type.objectFlags & ObjectFlags.InstantiationExpressionType) { + (result as InstantiationExpressionType).node = (type as InstantiationExpressionType).node; + } result.target = type; result.mapper = mapper; result.aliasSymbol = aliasSymbol || type.aliasSymbol; @@ -16618,7 +17038,7 @@ namespace ts { // distributive conditional type T extends U ? X : Y is instantiated with A | B for T, the // result is (A extends U ? X : Y) | (B extends U ? X : Y). result = distributionType && checkType !== distributionType && distributionType.flags & (TypeFlags.Union | TypeFlags.Never) ? - mapTypeWithAlias(distributionType, t => getConditionalType(root, prependTypeMapping(checkType, t, newMapper)), aliasSymbol, aliasTypeArguments) : + mapTypeWithAlias(getReducedType(distributionType), t => getConditionalType(root, prependTypeMapping(checkType, t, newMapper)), aliasSymbol, aliasTypeArguments) : getConditionalType(root, newMapper, aliasSymbol, aliasTypeArguments); root.instantiations!.set(id, result); } @@ -16739,6 +17159,11 @@ namespace ts { return type; // Nested invocation of `inferTypeForHomomorphicMappedType` or the `source` instantiated into something unmappable } + function getUniqueLiteralFilledInstantiation(type: Type) { + return type.flags & (TypeFlags.Primitive | TypeFlags.AnyOrUnknown | TypeFlags.Never) ? type : + type.uniqueLiteralFilledInstantiation || (type.uniqueLiteralFilledInstantiation = instantiateType(type, uniqueLiteralMapper)); + } + function getPermissiveInstantiation(type: Type) { return type.flags & (TypeFlags.Primitive | TypeFlags.AnyOrUnknown | TypeFlags.Never) ? type : type.permissiveInstantiation || (type.permissiveInstantiation = instantiateType(type, permissiveMapper)); @@ -17435,10 +17860,6 @@ namespace ts { if (sourceRestType || targetRestType) { void instantiateType(sourceRestType || targetRestType, reportUnreliableMarkers); } - if (sourceRestType && targetRestType && sourceCount !== targetCount) { - // We're not able to relate misaligned complex rest parameters - return Ternary.False; - } const kind = target.declaration ? target.declaration.kind : SyntaxKind.Unknown; const strictVariance = !(checkMode & SignatureCheckMode.Callback) && strictFunctionTypes && kind !== SyntaxKind.MethodDeclaration && @@ -17506,7 +17927,7 @@ namespace ts { const targetReturnType = isResolvingReturnTypeOfSignature(target) ? anyType : target.declaration && isJSConstructor(target.declaration) ? getDeclaredTypeOfClassOrInterface(getMergedSymbol(target.declaration.symbol)) : getReturnTypeOfSignature(target); - if (targetReturnType === voidType) { + if (targetReturnType === voidType || targetReturnType === anyType) { return result; } const sourceReturnType = isResolvingReturnTypeOfSignature(source) ? anyType @@ -17678,8 +18099,10 @@ namespace ts { (source as LiteralType).value === (target as LiteralType).value && isEnumTypeRelatedTo(getParentOfSymbol(source.symbol)!, getParentOfSymbol(target.symbol)!, errorReporter)) return true; } - if (s & TypeFlags.Undefined && (!strictNullChecks || t & (TypeFlags.Undefined | TypeFlags.Void))) return true; - if (s & TypeFlags.Null && (!strictNullChecks || t & TypeFlags.Null)) return true; + // In non-strictNullChecks mode, `undefined` and `null` are assignable to anything except `never`. + // Since unions and intersections may reduce to `never`, we exclude them here. + if (s & TypeFlags.Undefined && (!strictNullChecks && !(t & TypeFlags.UnionOrIntersection) || t & (TypeFlags.Undefined | TypeFlags.Void))) return true; + if (s & TypeFlags.Null && (!strictNullChecks && !(t & TypeFlags.UnionOrIntersection) || t & TypeFlags.Null)) return true; if (s & TypeFlags.Object && t & TypeFlags.NonPrimitive) return true; if (relation === assignableRelation || relation === comparableRelation) { if (s & TypeFlags.Any) return true; @@ -17707,12 +18130,13 @@ namespace ts { return true; } } - else { + else if (!((source.flags | target.flags) & (TypeFlags.UnionOrIntersection | TypeFlags.IndexedAccess | TypeFlags.Conditional | TypeFlags.Substitution))) { + // We have excluded types that may simplify to other forms, so types must have identical flags if (source.flags !== target.flags) return false; if (source.flags & TypeFlags.Singleton) return true; } if (source.flags & TypeFlags.Object && target.flags & TypeFlags.Object) { - const related = relation.get(getRelationKey(source, target, IntersectionState.None, relation)); + const related = relation.get(getRelationKey(source, target, IntersectionState.None, relation, /*ignoreConstraints*/ false)); if (related !== undefined) { return !!(related & RelationComparisonResult.Succeeded); } @@ -17775,13 +18199,13 @@ namespace ts { let overflow = false; let overrideNextErrorInfo = 0; // How many `reportRelationError` calls should be skipped in the elaboration pyramid let lastSkippedInfo: [Type, Type] | undefined; - let incompatibleStack: [DiagnosticMessage, (string | number)?, (string | number)?, (string | number)?, (string | number)?][] = []; + let incompatibleStack: [DiagnosticMessage, (string | number)?, (string | number)?, (string | number)?, (string | number)?][] | undefined; let inPropertyCheck = false; Debug.assert(relation !== identityRelation || !errorNode, "no error reporting in identity checking"); const result = isRelatedTo(source, target, RecursionFlags.Both, /*reportErrors*/ !!errorNode, headMessage); - if (incompatibleStack.length) { + if (incompatibleStack) { reportIncompatibleStack(); } if (overflow) { @@ -17843,21 +18267,21 @@ namespace ts { return { errorInfo, lastSkippedInfo, - incompatibleStack: incompatibleStack.slice(), + incompatibleStack: incompatibleStack?.slice(), overrideNextErrorInfo, - relatedInfo: !relatedInfo ? undefined : relatedInfo.slice() as ([DiagnosticRelatedInformation, ...DiagnosticRelatedInformation[]] | undefined) + relatedInfo: relatedInfo?.slice() as [DiagnosticRelatedInformation, ...DiagnosticRelatedInformation[]] | undefined, }; } function reportIncompatibleError(message: DiagnosticMessage, arg0?: string | number, arg1?: string | number, arg2?: string | number, arg3?: string | number) { overrideNextErrorInfo++; // Suppress the next relation error lastSkippedInfo = undefined; // Reset skipped info cache - incompatibleStack.push([message, arg0, arg1, arg2, arg3]); + (incompatibleStack ||= []).push([message, arg0, arg1, arg2, arg3]); } function reportIncompatibleStack() { - const stack = incompatibleStack; - incompatibleStack = []; + const stack = incompatibleStack || []; + incompatibleStack = undefined; const info = lastSkippedInfo; lastSkippedInfo = undefined; if (stack.length === 1) { @@ -17871,7 +18295,7 @@ namespace ts { // The first error will be the innermost, while the last will be the outermost - so by popping off the end, // we can build from left to right let path = ""; - const secondaryRootErrors: typeof incompatibleStack = []; + const secondaryRootErrors: [DiagnosticMessage, (string | number)?, (string | number)?, (string | number)?, (string | number)?][] = []; while (stack.length) { const [msg, ...args] = stack.pop()!; switch (msg.code) { @@ -17965,7 +18389,7 @@ namespace ts { function reportError(message: DiagnosticMessage, arg0?: string | number, arg1?: string | number, arg2?: string | number, arg3?: string | number): void { Debug.assert(!!errorNode); - if (incompatibleStack.length) reportIncompatibleStack(); + if (incompatibleStack) reportIncompatibleStack(); if (message.elidedInCompatabilityPyramid) return; errorInfo = chainDiagnosticMessages(errorInfo, message, arg0, arg1, arg2, arg3); } @@ -17981,7 +18405,7 @@ namespace ts { } function reportRelationError(message: DiagnosticMessage | undefined, source: Type, target: Type) { - if (incompatibleStack.length) reportIncompatibleStack(); + if (incompatibleStack) reportIncompatibleStack(); const [sourceType, targetType] = getTypeNamesForErrorDisplay(source, target); let generalizedSource = source; let generalizedSourceType = sourceType; @@ -17992,7 +18416,7 @@ namespace ts { generalizedSourceType = getTypeNameForErrorDisplay(generalizedSource); } - if (target.flags & TypeFlags.TypeParameter) { + if (target.flags & TypeFlags.TypeParameter && target !== markerSuperType && target !== markerSubType) { const constraint = getBaseConstraintOfType(target); let needsOriginalSource; if (constraint && (isTypeAssignableTo(generalizedSource, constraint) || (needsOriginalSource = isTypeAssignableTo(source, constraint)))) { @@ -18107,7 +18531,9 @@ namespace ts { if (isSimpleTypeRelatedTo(originalSource, originalTarget, relation, reportErrors ? reportError : undefined)) { return Ternary.True; } - reportErrorResults(originalSource, originalTarget, Ternary.False, !!(getObjectFlags(originalSource) & ObjectFlags.JsxAttributes)); + if (reportErrors) { + reportErrorResults(originalSource, originalTarget, originalSource, originalTarget, headMessage); + } return Ternary.False; } @@ -18121,7 +18547,10 @@ namespace ts { if (source === target) return Ternary.True; if (relation === identityRelation) { - return isIdenticalTo(source, target, recursionFlags); + if (source.flags !== target.flags) return Ternary.False; + if (source.flags & TypeFlags.Singleton) return Ternary.True; + traceUnionsOrIntersectionsTooLarge(source, target); + return recursiveTypeRelatedTo(source, target, /*reportErrors*/ false, IntersectionState.None, recursionFlags); } // We fastpath comparing a type parameter to exactly its constraint, as this is _super_ common, @@ -18133,172 +18562,139 @@ namespace ts { return Ternary.True; } - // Try to see if we're relating something like `Foo` -> `Bar | null | undefined`. - // If so, reporting the `null` and `undefined` in the type is hardly useful. - // First, see if we're even relating an object type to a union. - // Then see if the target is stripped down to a single non-union type. - // Note - // * We actually want to remove null and undefined naively here (rather than using getNonNullableType), - // since we don't want to end up with a worse error like "`Foo` is not assignable to `NonNullable`" - // when dealing with generics. - // * We also don't deal with primitive source types, since we already halt elaboration below. - if (target.flags & TypeFlags.Union && source.flags & TypeFlags.Object && - (target as UnionType).types.length <= 3 && maybeTypeOfKind(target, TypeFlags.Nullable)) { - const nullStrippedTarget = extractTypesOfKind(target, ~TypeFlags.Nullable); - if (!(nullStrippedTarget.flags & (TypeFlags.Union | TypeFlags.Never))) { - target = getNormalizedType(nullStrippedTarget, /*writing*/ true); + // See if we're relating a definitely non-nullable type to a union that includes null and/or undefined + // plus a single non-nullable type. If so, remove null and/or undefined from the target type. + if (source.flags & TypeFlags.DefinitelyNonNullable && target.flags & TypeFlags.Union) { + const types = (target as UnionType).types; + const candidate = types.length === 2 && types[0].flags & TypeFlags.Nullable ? types[1] : + types.length === 3 && types[0].flags & TypeFlags.Nullable && types[1].flags & TypeFlags.Nullable ? types[2] : + undefined; + if (candidate && !(candidate.flags & TypeFlags.Nullable)) { + target = getNormalizedType(candidate, /*writing*/ true); + if (source === target) return Ternary.True; } - if (source === nullStrippedTarget) return Ternary.True; } if (relation === comparableRelation && !(target.flags & TypeFlags.Never) && isSimpleTypeRelatedTo(target, source, relation) || isSimpleTypeRelatedTo(source, target, relation, reportErrors ? reportError : undefined)) return Ternary.True; - const isComparingJsxAttributes = !!(getObjectFlags(source) & ObjectFlags.JsxAttributes); - const isPerformingExcessPropertyChecks = !(intersectionState & IntersectionState.Target) && (isObjectLiteralType(source) && getObjectFlags(source) & ObjectFlags.FreshLiteral); - if (isPerformingExcessPropertyChecks) { - if (hasExcessProperties(source as FreshObjectLiteralType, target, reportErrors)) { + if (source.flags & TypeFlags.StructuredOrInstantiable || target.flags & TypeFlags.StructuredOrInstantiable) { + const isPerformingExcessPropertyChecks = !(intersectionState & IntersectionState.Target) && (isObjectLiteralType(source) && getObjectFlags(source) & ObjectFlags.FreshLiteral); + if (isPerformingExcessPropertyChecks) { + if (hasExcessProperties(source as FreshObjectLiteralType, target, reportErrors)) { + if (reportErrors) { + reportRelationError(headMessage, source, originalTarget.aliasSymbol ? originalTarget : target); + } + return Ternary.False; + } + } + + const isPerformingCommonPropertyChecks = relation !== comparableRelation && !(intersectionState & IntersectionState.Target) && + source.flags & (TypeFlags.Primitive | TypeFlags.Object | TypeFlags.Intersection) && source !== globalObjectType && + target.flags & (TypeFlags.Object | TypeFlags.Intersection) && isWeakType(target) && + (getPropertiesOfType(source).length > 0 || typeHasCallOrConstructSignatures(source)); + const isComparingJsxAttributes = !!(getObjectFlags(source) & ObjectFlags.JsxAttributes); + if (isPerformingCommonPropertyChecks && !hasCommonProperties(source, target, isComparingJsxAttributes)) { if (reportErrors) { - reportRelationError(headMessage, source, originalTarget.aliasSymbol ? originalTarget : target); + const sourceString = typeToString(originalSource.aliasSymbol ? originalSource : source); + const targetString = typeToString(originalTarget.aliasSymbol ? originalTarget : target); + const calls = getSignaturesOfType(source, SignatureKind.Call); + const constructs = getSignaturesOfType(source, SignatureKind.Construct); + if (calls.length > 0 && isRelatedTo(getReturnTypeOfSignature(calls[0]), target, RecursionFlags.Source, /*reportErrors*/ false) || + constructs.length > 0 && isRelatedTo(getReturnTypeOfSignature(constructs[0]), target, RecursionFlags.Source, /*reportErrors*/ false)) { + reportError(Diagnostics.Value_of_type_0_has_no_properties_in_common_with_type_1_Did_you_mean_to_call_it, sourceString, targetString); + } + else { + reportError(Diagnostics.Type_0_has_no_properties_in_common_with_type_1, sourceString, targetString); + } } return Ternary.False; } - } - const isPerformingCommonPropertyChecks = relation !== comparableRelation && !(intersectionState & IntersectionState.Target) && - source.flags & (TypeFlags.Primitive | TypeFlags.Object | TypeFlags.Intersection) && source !== globalObjectType && - target.flags & (TypeFlags.Object | TypeFlags.Intersection) && isWeakType(target) && - (getPropertiesOfType(source).length > 0 || typeHasCallOrConstructSignatures(source)); - if (isPerformingCommonPropertyChecks && !hasCommonProperties(source, target, isComparingJsxAttributes)) { - if (reportErrors) { - const sourceString = typeToString(originalSource.aliasSymbol ? originalSource : source); - const targetString = typeToString(originalTarget.aliasSymbol ? originalTarget : target); - const calls = getSignaturesOfType(source, SignatureKind.Call); - const constructs = getSignaturesOfType(source, SignatureKind.Construct); - if (calls.length > 0 && isRelatedTo(getReturnTypeOfSignature(calls[0]), target, RecursionFlags.Source, /*reportErrors*/ false) || - constructs.length > 0 && isRelatedTo(getReturnTypeOfSignature(constructs[0]), target, RecursionFlags.Source, /*reportErrors*/ false)) { - reportError(Diagnostics.Value_of_type_0_has_no_properties_in_common_with_type_1_Did_you_mean_to_call_it, sourceString, targetString); - } - else { - reportError(Diagnostics.Type_0_has_no_properties_in_common_with_type_1, sourceString, targetString); - } + traceUnionsOrIntersectionsTooLarge(source, target); + + const skipCaching = source.flags & TypeFlags.Union && (source as UnionType).types.length < 4 && !(target.flags & TypeFlags.Union) || + target.flags & TypeFlags.Union && (target as UnionType).types.length < 4 && !(source.flags & TypeFlags.StructuredOrInstantiable); + let result = skipCaching ? + unionOrIntersectionRelatedTo(source, target, reportErrors, intersectionState) : + recursiveTypeRelatedTo(source, target, reportErrors, intersectionState, recursionFlags); + // For certain combinations involving intersections and optional, excess, or mismatched properties we need + // an extra property check where the intersection is viewed as a single object. The following are motivating + // examples that all should be errors, but aren't without this extra property check: + // + // let obj: { a: { x: string } } & { c: number } = { a: { x: 'hello', y: 2 }, c: 5 }; // Nested excess property + // + // declare let wrong: { a: { y: string } }; + // let weak: { a?: { x?: number } } & { c?: string } = wrong; // Nested weak object type + // + // function foo(x: { a?: string }, y: T & { a: boolean }) { + // x = y; // Mismatched property in source intersection + // } + // + // We suppress recursive intersection property checks because they can generate lots of work when relating + // recursive intersections that are structurally similar but not exactly identical. See #37854. + if (result && !inPropertyCheck && ( + target.flags & TypeFlags.Intersection && (isPerformingExcessPropertyChecks || isPerformingCommonPropertyChecks) || + isNonGenericObjectType(target) && !isArrayType(target) && !isTupleType(target) && source.flags & TypeFlags.Intersection && getApparentType(source).flags & TypeFlags.StructuredType && !some((source as IntersectionType).types, t => !!(getObjectFlags(t) & ObjectFlags.NonInferrableType)))) { + inPropertyCheck = true; + result &= recursiveTypeRelatedTo(source, target, reportErrors, IntersectionState.PropertyCheck, recursionFlags); + inPropertyCheck = false; + } + if (result) { + return result; } - return Ternary.False; } - traceUnionsOrIntersectionsTooLarge(source, target); - - let result = Ternary.False; - const saveErrorInfo = captureErrorCalculationState(); + if (reportErrors) { + reportErrorResults(originalSource, originalTarget, source, target, headMessage); + } + return Ternary.False; + } - // Note that these checks are specifically ordered to produce correct results. In particular, - // we need to deconstruct unions before intersections (because unions are always at the top), - // and we need to handle "each" relations before "some" relations for the same kind of type. - if (source.flags & TypeFlags.UnionOrIntersection || target.flags & TypeFlags.UnionOrIntersection) { - result = getConstituentCount(source) * getConstituentCount(target) >= 4 ? - recursiveTypeRelatedTo(source, target, reportErrors, intersectionState | IntersectionState.UnionIntersectionCheck, recursionFlags) : - structuredTypeRelatedTo(source, target, reportErrors, intersectionState | IntersectionState.UnionIntersectionCheck); + function reportErrorResults(originalSource: Type, originalTarget: Type, source: Type, target: Type, headMessage: DiagnosticMessage | undefined) { + const sourceHasBase = !!getSingleBaseForNonAugmentingSubtype(originalSource); + const targetHasBase = !!getSingleBaseForNonAugmentingSubtype(originalTarget); + source = (originalSource.aliasSymbol || sourceHasBase) ? originalSource : source; + target = (originalTarget.aliasSymbol || targetHasBase) ? originalTarget : target; + let maybeSuppress = overrideNextErrorInfo > 0; + if (maybeSuppress) { + overrideNextErrorInfo--; } - if (!result && !(source.flags & TypeFlags.Union) && (source.flags & (TypeFlags.StructuredOrInstantiable) || target.flags & TypeFlags.StructuredOrInstantiable)) { - if (result = recursiveTypeRelatedTo(source, target, reportErrors, intersectionState, recursionFlags)) { - resetErrorInfo(saveErrorInfo); + if (source.flags & TypeFlags.Object && target.flags & TypeFlags.Object) { + const currentError = errorInfo; + tryElaborateArrayLikeErrors(source, target, /*reportErrors*/ true); + if (errorInfo !== currentError) { + maybeSuppress = !!errorInfo; } } - if (!result && source.flags & (TypeFlags.Intersection | TypeFlags.TypeParameter)) { - // The combined constraint of an intersection type is the intersection of the constraints of - // the constituents. When an intersection type contains instantiable types with union type - // constraints, there are situations where we need to examine the combined constraint. One is - // when the target is a union type. Another is when the intersection contains types belonging - // to one of the disjoint domains. For example, given type variables T and U, each with the - // constraint 'string | number', the combined constraint of 'T & U' is 'string | number' and - // we need to check this constraint against a union on the target side. Also, given a type - // variable V constrained to 'string | number', 'V & number' has a combined constraint of - // 'string & number | number & number' which reduces to just 'number'. - // This also handles type parameters, as a type parameter with a union constraint compared against a union - // needs to have its constraint hoisted into an intersection with said type parameter, this way - // the type param can be compared with itself in the target (with the influence of its constraint to match other parts) - // For example, if `T extends 1 | 2` and `U extends 2 | 3` and we compare `T & U` to `T & U & (1 | 2 | 3)` - const constraint = getEffectiveConstraintOfIntersection(source.flags & TypeFlags.Intersection ? (source as IntersectionType).types: [source], !!(target.flags & TypeFlags.Union)); - if (constraint && (source.flags & TypeFlags.Intersection || target.flags & TypeFlags.Union)) { - if (everyType(constraint, c => c !== source)) { // Skip comparison if expansion contains the source itself - // TODO: Stack errors so we get a pyramid for the "normal" comparison above, _and_ a second for this - if (result = isRelatedTo(constraint, target, RecursionFlags.Source, /*reportErrors*/ false, /*headMessage*/ undefined, intersectionState)) { - resetErrorInfo(saveErrorInfo); - } - } - } + if (source.flags & TypeFlags.Object && target.flags & TypeFlags.Primitive) { + tryElaborateErrorsForPrimitivesAndObjects(source, target); } - - // For certain combinations involving intersections and optional, excess, or mismatched properties we need - // an extra property check where the intersection is viewed as a single object. The following are motivating - // examples that all should be errors, but aren't without this extra property check: - // - // let obj: { a: { x: string } } & { c: number } = { a: { x: 'hello', y: 2 }, c: 5 }; // Nested excess property - // - // declare let wrong: { a: { y: string } }; - // let weak: { a?: { x?: number } } & { c?: string } = wrong; // Nested weak object type - // - // function foo(x: { a?: string }, y: T & { a: boolean }) { - // x = y; // Mismatched property in source intersection - // } - // - // We suppress recursive intersection property checks because they can generate lots of work when relating - // recursive intersections that are structurally similar but not exactly identical. See #37854. - if (result && !inPropertyCheck && ( - target.flags & TypeFlags.Intersection && (isPerformingExcessPropertyChecks || isPerformingCommonPropertyChecks) || - isNonGenericObjectType(target) && !isArrayType(target) && !isTupleType(target) && source.flags & TypeFlags.Intersection && getApparentType(source).flags & TypeFlags.StructuredType && !some((source as IntersectionType).types, t => !!(getObjectFlags(t) & ObjectFlags.NonInferrableType)))) { - inPropertyCheck = true; - result &= recursiveTypeRelatedTo(source, target, reportErrors, IntersectionState.PropertyCheck, recursionFlags); - inPropertyCheck = false; + else if (source.symbol && source.flags & TypeFlags.Object && globalObjectType === source) { + reportError(Diagnostics.The_Object_type_is_assignable_to_very_few_other_types_Did_you_mean_to_use_the_any_type_instead); } - - reportErrorResults(source, target, result, isComparingJsxAttributes); - return result; - - function reportErrorResults(source: Type, target: Type, result: Ternary, isComparingJsxAttributes: boolean) { - if (!result && reportErrors) { - const sourceHasBase = !!getSingleBaseForNonAugmentingSubtype(originalSource); - const targetHasBase = !!getSingleBaseForNonAugmentingSubtype(originalTarget); - source = (originalSource.aliasSymbol || sourceHasBase) ? originalSource : source; - target = (originalTarget.aliasSymbol || targetHasBase) ? originalTarget : target; - let maybeSuppress = overrideNextErrorInfo > 0; - if (maybeSuppress) { - overrideNextErrorInfo--; - } - if (source.flags & TypeFlags.Object && target.flags & TypeFlags.Object) { - const currentError = errorInfo; - tryElaborateArrayLikeErrors(source, target, reportErrors); - if (errorInfo !== currentError) { - maybeSuppress = !!errorInfo; - } - } - if (source.flags & TypeFlags.Object && target.flags & TypeFlags.Primitive) { - tryElaborateErrorsForPrimitivesAndObjects(source, target); - } - else if (source.symbol && source.flags & TypeFlags.Object && globalObjectType === source) { - reportError(Diagnostics.The_Object_type_is_assignable_to_very_few_other_types_Did_you_mean_to_use_the_any_type_instead); - } - else if (isComparingJsxAttributes && target.flags & TypeFlags.Intersection) { - const targetTypes = (target as IntersectionType).types; - const intrinsicAttributes = getJsxType(JsxNames.IntrinsicAttributes, errorNode); - const intrinsicClassAttributes = getJsxType(JsxNames.IntrinsicClassAttributes, errorNode); - if (!isErrorType(intrinsicAttributes) && !isErrorType(intrinsicClassAttributes) && - (contains(targetTypes, intrinsicAttributes) || contains(targetTypes, intrinsicClassAttributes))) { - // do not report top error - return result; - } - } - else { - errorInfo = elaborateNeverIntersection(errorInfo, originalTarget); - } - if (!headMessage && maybeSuppress) { - lastSkippedInfo = [source, target]; - // Used by, eg, missing property checking to replace the top-level message with a more informative one - return result; - } - reportRelationError(headMessage, source, target); + else if (getObjectFlags(source) & ObjectFlags.JsxAttributes && target.flags & TypeFlags.Intersection) { + const targetTypes = (target as IntersectionType).types; + const intrinsicAttributes = getJsxType(JsxNames.IntrinsicAttributes, errorNode); + const intrinsicClassAttributes = getJsxType(JsxNames.IntrinsicClassAttributes, errorNode); + if (!isErrorType(intrinsicAttributes) && !isErrorType(intrinsicClassAttributes) && + (contains(targetTypes, intrinsicAttributes) || contains(targetTypes, intrinsicClassAttributes))) { + // do not report top error + return; } } + else { + errorInfo = elaborateNeverIntersection(errorInfo, originalTarget); + } + if (!headMessage && maybeSuppress) { + lastSkippedInfo = [source, target]; + // Used by, eg, missing property checking to replace the top-level message with a more informative one + return; + } + reportRelationError(headMessage, source, target); + if (strictNullChecks && source.flags & TypeFlags.TypeVariable && source.symbol?.declarations?.[0] && !getConstraintOfType(source as TypeVariable) && isRelatedTo(emptyObjectType, extractTypesOfKind(target, ~TypeFlags.NonPrimitive))) { + associateRelatedInfo(createDiagnosticForNode(source.symbol.declarations[0], Diagnostics.This_type_parameter_probably_needs_an_extends_object_constraint)); + } } function traceUnionsOrIntersectionsTooLarge(source: Type, target: Type): void { @@ -18330,20 +18726,6 @@ namespace ts { } } - function isIdenticalTo(source: Type, target: Type, recursionFlags: RecursionFlags): Ternary { - if (source.flags !== target.flags) return Ternary.False; - if (source.flags & TypeFlags.Singleton) return Ternary.True; - traceUnionsOrIntersectionsTooLarge(source, target); - if (source.flags & TypeFlags.UnionOrIntersection) { - let result = eachTypeRelatedToSomeType(source as UnionOrIntersectionType, target as UnionOrIntersectionType); - if (result) { - result &= eachTypeRelatedToSomeType(target as UnionOrIntersectionType, source as UnionOrIntersectionType); - } - return result; - } - return recursiveTypeRelatedTo(source, target, /*reportErrors*/ false, IntersectionState.None, recursionFlags); - } - function getTypeOfPropertyInTypes(types: Type[], name: __String) { const appendPropType = (propTypes: Type[] | undefined, type: Type) => { type = getApparentType(type); @@ -18440,6 +18822,42 @@ namespace ts { return prop.valueDeclaration && container.valueDeclaration && prop.valueDeclaration.parent === container.valueDeclaration; } + function unionOrIntersectionRelatedTo(source: Type, target: Type, reportErrors: boolean, intersectionState: IntersectionState): Ternary { + // Note that these checks are specifically ordered to produce correct results. In particular, + // we need to deconstruct unions before intersections (because unions are always at the top), + // and we need to handle "each" relations before "some" relations for the same kind of type. + if (source.flags & TypeFlags.Union) { + return relation === comparableRelation ? + someTypeRelatedToType(source as UnionType, target, reportErrors && !(source.flags & TypeFlags.Primitive), intersectionState) : + eachTypeRelatedToType(source as UnionType, target, reportErrors && !(source.flags & TypeFlags.Primitive), intersectionState); + } + if (target.flags & TypeFlags.Union) { + return typeRelatedToSomeType(getRegularTypeOfObjectLiteral(source), target as UnionType, reportErrors && !(source.flags & TypeFlags.Primitive) && !(target.flags & TypeFlags.Primitive)); + } + if (target.flags & TypeFlags.Intersection) { + return typeRelatedToEachType(getRegularTypeOfObjectLiteral(source), target as IntersectionType, reportErrors, IntersectionState.Target); + } + // Source is an intersection. For the comparable relation, if the target is a primitive type we hoist the + // constraints of all non-primitive types in the source into a new intersection. We do this because the + // intersection may further constrain the constraints of the non-primitive types. For example, given a type + // parameter 'T extends 1 | 2', the intersection 'T & 1' should be reduced to '1' such that it doesn't + // appear to be comparable to '2'. + if (relation === comparableRelation && target.flags & TypeFlags.Primitive) { + const constraints = sameMap((source as IntersectionType).types, getBaseConstraintOrType); + if (constraints !== (source as IntersectionType).types) { + source = getIntersectionType(constraints); + if (!(source.flags & TypeFlags.Intersection)) { + return isRelatedTo(source, target, RecursionFlags.Source, /*reportErrors*/ false); + } + } + } + // Check to see if any constituents of the intersection are immediately related to the target. + // Don't report errors though. Elaborating on whether a source constituent is related to the target is + // not actually useful and leads to some confusing error messages. Instead, we rely on the caller + // checking whether the full intersection viewed as an object is related to the target. + return someTypeRelatedToType(source as IntersectionType, target, /*reportErrors*/ false, IntersectionState.Source); + } + function eachTypeRelatedToSomeType(source: UnionOrIntersectionType, target: UnionOrIntersectionType): Ternary { let result = Ternary.True; const sourceTypes = source.types; @@ -18474,8 +18892,11 @@ namespace ts { } } if (reportErrors) { + // Elaborate only if we can find a best matching type in the target union const bestMatchingType = getBestMatchingType(source, target, isRelatedTo); - isRelatedTo(source, bestMatchingType || targetTypes[targetTypes.length - 1], RecursionFlags.Target, /*reportErrors*/ true); + if (bestMatchingType) { + isRelatedTo(source, bestMatchingType, RecursionFlags.Target, /*reportErrors*/ true); + } } return Ternary.False; } @@ -18613,7 +19034,8 @@ namespace ts { if (overflow) { return Ternary.False; } - const id = getRelationKey(source, target, intersectionState | (inPropertyCheck ? IntersectionState.InPropertyCheck : 0), relation); + const keyIntersectionState = intersectionState | (inPropertyCheck ? IntersectionState.InPropertyCheck : 0); + const id = getRelationKey(source, target, keyIntersectionState, relation, /*ingnoreConstraints*/ false); const entry = relation.get(id); if (entry !== undefined) { if (reportErrors && entry & RelationComparisonResult.Failed && !(entry & RelationComparisonResult.Reported)) { @@ -18640,16 +19062,13 @@ namespace ts { targetStack = []; } else { - // generate a key where all type parameter id positions are replaced with unconstrained type parameter ids - // this isn't perfect - nested type references passed as type arguments will muck up the indexes and thus - // prevent finding matches- but it should hit up the common cases - const broadestEquivalentId = id.split(",").map(i => i.replace(/-\d+/g, (_match, offset: number) => { - const index = length(id.slice(0, offset).match(/[-=]/g) || undefined); - return `=${index}`; - })).join(","); + // A key that starts with "*" is an indication that we have type references that reference constrained + // type parameters. For such keys we also check against the key we would have gotten if all type parameters + // were unconstrained. + const broadestEquivalentId = id.startsWith("*") ? getRelationKey(source, target, keyIntersectionState, relation, /*ignoreConstraints*/ true) : undefined; for (let i = 0; i < maybeCount; i++) { // If source and target are already being compared, consider them related with assumptions - if (id === maybeKeys[i] || broadestEquivalentId === maybeKeys[i]) { + if (id === maybeKeys[i] || broadestEquivalentId && broadestEquivalentId === maybeKeys[i]) { return Ternary.Maybe; } } @@ -18661,17 +19080,17 @@ namespace ts { const maybeStart = maybeCount; maybeKeys[maybeCount] = id; maybeCount++; + const saveExpandingFlags = expandingFlags; if (recursionFlags & RecursionFlags.Source) { sourceStack[sourceDepth] = source; sourceDepth++; + if (!(expandingFlags & ExpandingFlags.Source) && isDeeplyNestedType(source, sourceStack, sourceDepth)) expandingFlags |= ExpandingFlags.Source; } if (recursionFlags & RecursionFlags.Target) { targetStack[targetDepth] = target; targetDepth++; + if (!(expandingFlags & ExpandingFlags.Target) && isDeeplyNestedType(target, targetStack, targetDepth)) expandingFlags |= ExpandingFlags.Target; } - const saveExpandingFlags = expandingFlags; - if (!(expandingFlags & ExpandingFlags.Source) && isDeeplyNestedType(source, sourceStack, sourceDepth)) expandingFlags |= ExpandingFlags.Source; - if (!(expandingFlags & ExpandingFlags.Target) && isDeeplyNestedType(target, targetStack, targetDepth)) expandingFlags |= ExpandingFlags.Target; let originalHandler: typeof outofbandVarianceMarkerHandler; let propagatingVarianceFlags: RelationComparisonResult = 0; if (outofbandVarianceMarkerHandler) { @@ -18682,6 +19101,7 @@ namespace ts { }; } + let result: Ternary; if (expandingFlags === ExpandingFlags.Both) { tracing?.instant(tracing.Phase.CheckTypes, "recursiveTypeRelatedTo_DepthLimit", { sourceId: source.id, @@ -18691,19 +19111,24 @@ namespace ts { depth: sourceDepth, targetDepth }); + result = Ternary.Maybe; + } + else { + tracing?.push(tracing.Phase.CheckTypes, "structuredTypeRelatedTo", { sourceId: source.id, targetId: target.id }); + result = structuredTypeRelatedTo(source, target, reportErrors, intersectionState); + tracing?.pop(); } - const result = expandingFlags !== ExpandingFlags.Both ? structuredTypeRelatedTo(source, target, reportErrors, intersectionState) : Ternary.Maybe; if (outofbandVarianceMarkerHandler) { outofbandVarianceMarkerHandler = originalHandler; } - expandingFlags = saveExpandingFlags; if (recursionFlags & RecursionFlags.Source) { sourceDepth--; } if (recursionFlags & RecursionFlags.Target) { targetDepth--; } + expandingFlags = saveExpandingFlags; if (result) { if (result === Ternary.True || (sourceDepth === 0 && targetDepth === 0)) { if (result === Ternary.True || result === Ternary.Maybe) { @@ -18726,74 +19151,35 @@ namespace ts { } function structuredTypeRelatedTo(source: Type, target: Type, reportErrors: boolean, intersectionState: IntersectionState): Ternary { - tracing?.push(tracing.Phase.CheckTypes, "structuredTypeRelatedTo", { sourceId: source.id, targetId: target.id }); - const result = structuredTypeRelatedToWorker(source, target, reportErrors, intersectionState); - tracing?.pop(); - return result; - } - - function structuredTypeRelatedToWorker(source: Type, target: Type, reportErrors: boolean, intersectionState: IntersectionState): Ternary { if (intersectionState & IntersectionState.PropertyCheck) { return propertiesRelatedTo(source, target, reportErrors, /*excludedProperties*/ undefined, IntersectionState.None); } - if (intersectionState & IntersectionState.UnionIntersectionCheck) { - // Note that these checks are specifically ordered to produce correct results. In particular, - // we need to deconstruct unions before intersections (because unions are always at the top), - // and we need to handle "each" relations before "some" relations for the same kind of type. - if (source.flags & TypeFlags.Union) { - return relation === comparableRelation ? - someTypeRelatedToType(source as UnionType, target, reportErrors && !(source.flags & TypeFlags.Primitive), intersectionState & ~IntersectionState.UnionIntersectionCheck) : - eachTypeRelatedToType(source as UnionType, target, reportErrors && !(source.flags & TypeFlags.Primitive), intersectionState & ~IntersectionState.UnionIntersectionCheck); - } - if (target.flags & TypeFlags.Union) { - return typeRelatedToSomeType(getRegularTypeOfObjectLiteral(source), target as UnionType, reportErrors && !(source.flags & TypeFlags.Primitive) && !(target.flags & TypeFlags.Primitive)); - } - if (target.flags & TypeFlags.Intersection) { - return typeRelatedToEachType(getRegularTypeOfObjectLiteral(source), target as IntersectionType, reportErrors, IntersectionState.Target); - } - // Source is an intersection. For the comparable relation, if the target is a primitive type we hoist the - // constraints of all non-primitive types in the source into a new intersection. We do this because the - // intersection may further constrain the constraints of the non-primitive types. For example, given a type - // parameter 'T extends 1 | 2', the intersection 'T & 1' should be reduced to '1' such that it doesn't - // appear to be comparable to '2'. - if (relation === comparableRelation && target.flags & TypeFlags.Primitive) { - const constraints = sameMap((source as IntersectionType).types, getBaseConstraintOrType); - if (constraints !== (source as IntersectionType).types) { - source = getIntersectionType(constraints); - if (!(source.flags & TypeFlags.Intersection)) { - return isRelatedTo(source, target, RecursionFlags.Source, /*reportErrors*/ false); - } + let result: Ternary; + let originalErrorInfo: DiagnosticMessageChain | undefined; + let varianceCheckFailed = false; + const saveErrorInfo = captureErrorCalculationState(); + let sourceFlags = source.flags; + const targetFlags = target.flags; + if (relation === identityRelation) { + // We've already checked that source.flags and target.flags are identical + if (sourceFlags & TypeFlags.UnionOrIntersection) { + let result = eachTypeRelatedToSomeType(source as UnionOrIntersectionType, target as UnionOrIntersectionType); + if (result) { + result &= eachTypeRelatedToSomeType(target as UnionOrIntersectionType, source as UnionOrIntersectionType); } + return result; } - // Check to see if any constituents of the intersection are immediately related to the target. - // - // Don't report errors though. Checking whether a constituent is related to the source is not actually - // useful and leads to some confusing error messages. Instead it is better to let the below checks - // take care of this, or to not elaborate at all. For instance, - // - // - For an object type (such as 'C = A & B'), users are usually more interested in structural errors. - // - // - For a union type (such as '(A | B) = (C & D)'), it's better to hold onto the whole intersection - // than to report that 'D' is not assignable to 'A' or 'B'. - // - // - For a primitive type or type parameter (such as 'number = A & B') there is no point in - // breaking the intersection apart. - return someTypeRelatedToType(source as IntersectionType, target, /*reportErrors*/ false, IntersectionState.Source); - } - const flags = source.flags & target.flags; - if (relation === identityRelation && !(flags & TypeFlags.Object)) { - if (flags & TypeFlags.Index) { + if (sourceFlags & TypeFlags.Index) { return isRelatedTo((source as IndexType).type, (target as IndexType).type, RecursionFlags.Both, /*reportErrors*/ false); } - let result = Ternary.False; - if (flags & TypeFlags.IndexedAccess) { + if (sourceFlags & TypeFlags.IndexedAccess) { if (result = isRelatedTo((source as IndexedAccessType).objectType, (target as IndexedAccessType).objectType, RecursionFlags.Both, /*reportErrors*/ false)) { if (result &= isRelatedTo((source as IndexedAccessType).indexType, (target as IndexedAccessType).indexType, RecursionFlags.Both, /*reportErrors*/ false)) { return result; } } } - if (flags & TypeFlags.Conditional) { + if (sourceFlags & TypeFlags.Conditional) { if ((source as ConditionalType).root.isDistributive === (target as ConditionalType).root.isDistributive) { if (result = isRelatedTo((source as ConditionalType).checkType, (target as ConditionalType).checkType, RecursionFlags.Both, /*reportErrors*/ false)) { if (result &= isRelatedTo((source as ConditionalType).extendsType, (target as ConditionalType).extendsType, RecursionFlags.Both, /*reportErrors*/ false)) { @@ -18806,23 +19192,58 @@ namespace ts { } } } - if (flags & TypeFlags.Substitution) { + if (sourceFlags & TypeFlags.Substitution) { return isRelatedTo((source as SubstitutionType).substitute, (target as SubstitutionType).substitute, RecursionFlags.Both, /*reportErrors*/ false); } - return Ternary.False; + if (!(sourceFlags & TypeFlags.Object)) { + return Ternary.False; + } + } + else if (sourceFlags & TypeFlags.UnionOrIntersection || targetFlags & TypeFlags.UnionOrIntersection) { + if (result = unionOrIntersectionRelatedTo(source, target, reportErrors, intersectionState)) { + return result; + } + if (source.flags & TypeFlags.Intersection || source.flags & TypeFlags.TypeParameter && target.flags & TypeFlags.Union) { + // The combined constraint of an intersection type is the intersection of the constraints of + // the constituents. When an intersection type contains instantiable types with union type + // constraints, there are situations where we need to examine the combined constraint. One is + // when the target is a union type. Another is when the intersection contains types belonging + // to one of the disjoint domains. For example, given type variables T and U, each with the + // constraint 'string | number', the combined constraint of 'T & U' is 'string | number' and + // we need to check this constraint against a union on the target side. Also, given a type + // variable V constrained to 'string | number', 'V & number' has a combined constraint of + // 'string & number | number & number' which reduces to just 'number'. + // This also handles type parameters, as a type parameter with a union constraint compared against a union + // needs to have its constraint hoisted into an intersection with said type parameter, this way + // the type param can be compared with itself in the target (with the influence of its constraint to match other parts) + // For example, if `T extends 1 | 2` and `U extends 2 | 3` and we compare `T & U` to `T & U & (1 | 2 | 3)` + const constraint = getEffectiveConstraintOfIntersection(source.flags & TypeFlags.Intersection ? (source as IntersectionType).types: [source], !!(target.flags & TypeFlags.Union)); + if (constraint && everyType(constraint, c => c !== source)) { // Skip comparison if expansion contains the source itself + // TODO: Stack errors so we get a pyramid for the "normal" comparison above, _and_ a second for this + if (result = isRelatedTo(constraint, target, RecursionFlags.Source, /*reportErrors*/ false, /*headMessage*/ undefined, intersectionState)) { + resetErrorInfo(saveErrorInfo); + return result; + } + } + } + // The ordered decomposition above doesn't handle all cases. Specifically, we also need to handle: + // Source is instantiable (e.g. source has union or intersection constraint). + // Source is an object, target is a union (e.g. { a, b: boolean } <=> { a, b: true } | { a, b: false }). + // Source is an intersection, target is an object (e.g. { a } & { b } <=> { a, b }). + // Source is an intersection, target is a union (e.g. { a } & { b: boolean } <=> { a, b: true } | { a, b: false }). + // Source is an intersection, target instantiable (e.g. string & { tag } <=> T["a"] constrained to string & { tag }). + if (!(sourceFlags & TypeFlags.Instantiable || + sourceFlags & TypeFlags.Object && targetFlags & TypeFlags.Union || + sourceFlags & TypeFlags.Intersection && targetFlags & (TypeFlags.Object | TypeFlags.Union | TypeFlags.Instantiable))) { + return Ternary.False; + } } - - let result: Ternary; - let originalErrorInfo: DiagnosticMessageChain | undefined; - let varianceCheckFailed = false; - const saveErrorInfo = captureErrorCalculationState(); // We limit alias variance probing to only object and conditional types since their alias behavior // is more predictable than other, interned types, which may or may not have an alias depending on // the order in which things were checked. - if (source.flags & (TypeFlags.Object | TypeFlags.Conditional) && source.aliasSymbol && - source.aliasTypeArguments && source.aliasSymbol === target.aliasSymbol && - !(source.aliasTypeArgumentsContainsMarker || target.aliasTypeArgumentsContainsMarker)) { + if (sourceFlags & (TypeFlags.Object | TypeFlags.Conditional) && source.aliasSymbol && source.aliasTypeArguments && + source.aliasSymbol === target.aliasSymbol && !(isMarkerType(source) || isMarkerType(target))) { const variances = getAliasVariances(source.aliasSymbol); if (variances === emptyArray) { return Ternary.Unknown; @@ -18840,7 +19261,7 @@ namespace ts { return result; } - if (target.flags & TypeFlags.TypeParameter) { + if (targetFlags & TypeFlags.TypeParameter) { // A source type { [P in Q]: X } is related to a target type T if keyof T is related to Q and X is related to T[Q]. if (getObjectFlags(source) & ObjectFlags.Mapped && !(source as MappedType).declaration.nameType && isRelatedTo(getIndexType(target), getConstraintTypeFromMappedType(source as MappedType), RecursionFlags.Both)) { @@ -18853,10 +19274,10 @@ namespace ts { } } } - else if (target.flags & TypeFlags.Index) { + else if (targetFlags & TypeFlags.Index) { const targetType = (target as IndexType).type; // A keyof S is related to a keyof T if T is related to S. - if (source.flags & TypeFlags.Index) { + if (sourceFlags & TypeFlags.Index) { if (result = isRelatedTo(targetType, (source as IndexType).type, RecursionFlags.Both, /*reportErrors*/ false)) { return result; } @@ -18912,8 +19333,8 @@ namespace ts { } } } - else if (target.flags & TypeFlags.IndexedAccess) { - if (source.flags & TypeFlags.IndexedAccess) { + else if (targetFlags & TypeFlags.IndexedAccess) { + if (sourceFlags & TypeFlags.IndexedAccess) { // Relate components directly before falling back to constraint relationships // A type S[K] is related to a type T[J] if S is related to T and K is related to J. if (result = isRelatedTo((source as IndexedAccessType).objectType, (target as IndexedAccessType).objectType, RecursionFlags.Both, reportErrors)) { @@ -18956,7 +19377,7 @@ namespace ts { originalErrorInfo = undefined; } } - else if (isGenericMappedType(target)) { + else if (isGenericMappedType(target) && relation !== identityRelation) { // Check if source type `S` is related to target type `{ [P in Q]: T }` or `{ [P in Q as R]: T}`. const keysRemapped = !!target.declaration.nameType; const templateType = getTemplateTypeFromMappedType(target); @@ -19021,7 +19442,7 @@ namespace ts { } } } - else if (target.flags & TypeFlags.Conditional) { + else if (targetFlags & TypeFlags.Conditional) { // If we reach 10 levels of nesting for the same conditional type, assume it is an infinitely expanding recursive // conditional type and bail out with a Ternary.Maybe result. if (isDeeplyNestedType(target, targetStack, targetDepth, 10)) { @@ -19032,7 +19453,7 @@ namespace ts { // We check for a relationship to a conditional type target only when the conditional type has no // 'infer' positions and is not distributive or is distributive but doesn't reference the check type // parameter in either of the result types. - if (!c.root.inferTypeParameters && !c.root.isDistributionDependent) { + if (!c.root.inferTypeParameters && !isDistributionDependent(c.root)) { // Check if the conditional is always true or always false but still deferred for distribution purposes. const skipTrue = !isTypeAssignableTo(getPermissiveInstantiation(c.checkType), getPermissiveInstantiation(c.extendsType)); const skipFalse = !skipTrue && isTypeAssignableTo(getRestrictiveInstantiation(c.checkType), getRestrictiveInstantiation(c.extendsType)); @@ -19046,8 +19467,8 @@ namespace ts { } } } - else if (target.flags & TypeFlags.TemplateLiteral) { - if (source.flags & TypeFlags.TemplateLiteral) { + else if (targetFlags & TypeFlags.TemplateLiteral) { + if (sourceFlags & TypeFlags.TemplateLiteral) { if (relation === comparableRelation) { return templateLiteralTypesDefinitelyUnrelated(source as TemplateLiteralType, target as TemplateLiteralType) ? Ternary.False : Ternary.True; } @@ -19055,17 +19476,16 @@ namespace ts { // For example, `foo-${number}` is related to `foo-${string}` even though number isn't related to string. instantiateType(source, makeFunctionTypeMapper(reportUnreliableMarkers)); } - const result = inferTypesFromTemplateLiteralType(source, target as TemplateLiteralType); - if (result && every(result, (r, i) => isValidTypeForTemplateLiteralPlaceholder(r, (target as TemplateLiteralType).types[i]))) { + if (isTypeMatchedByTemplateLiteralType(source, target as TemplateLiteralType)) { return Ternary.True; } } - if (source.flags & TypeFlags.TypeVariable) { - // IndexedAccess comparisons are handled above in the `target.flags & TypeFlage.IndexedAccess` branch - if (!(source.flags & TypeFlags.IndexedAccess && target.flags & TypeFlags.IndexedAccess)) { + if (sourceFlags & TypeFlags.TypeVariable) { + // IndexedAccess comparisons are handled above in the `targetFlags & TypeFlage.IndexedAccess` branch + if (!(sourceFlags & TypeFlags.IndexedAccess && targetFlags & TypeFlags.IndexedAccess)) { const constraint = getConstraintOfType(source as TypeVariable); - if (!constraint || (source.flags & TypeFlags.TypeParameter && constraint.flags & TypeFlags.Any)) { + if (!strictNullChecks && (!constraint || (sourceFlags & TypeFlags.TypeParameter && constraint.flags & TypeFlags.Any))) { // A type variable with no constraint is not related to the non-primitive object type. if (result = isRelatedTo(emptyObjectType, extractTypesOfKind(target, ~TypeFlags.NonPrimitive), RecursionFlags.Both)) { resetErrorInfo(saveErrorInfo); @@ -19073,25 +19493,36 @@ namespace ts { } } // hi-speed no-this-instantiation check (less accurate, but avoids costly `this`-instantiation when the constraint will suffice), see #28231 for report on why this is needed - else if (result = isRelatedTo(constraint, target, RecursionFlags.Source, /*reportErrors*/ false, /*headMessage*/ undefined, intersectionState)) { + else if (constraint && (result = isRelatedTo(constraint, target, RecursionFlags.Source, /*reportErrors*/ false, /*headMessage*/ undefined, intersectionState))) { resetErrorInfo(saveErrorInfo); return result; } // slower, fuller, this-instantiated check (necessary when comparing raw `this` types from base classes), see `subclassWithPolymorphicThisIsAssignable.ts` test for example - else if (result = isRelatedTo(getTypeWithThisArgument(constraint, source), target, RecursionFlags.Source, reportErrors && !(target.flags & source.flags & TypeFlags.TypeParameter), /*headMessage*/ undefined, intersectionState)) { + else if (constraint && (result = isRelatedTo(getTypeWithThisArgument(constraint, source), target, RecursionFlags.Source, reportErrors && !(targetFlags & sourceFlags & TypeFlags.TypeParameter), /*headMessage*/ undefined, intersectionState))) { resetErrorInfo(saveErrorInfo); return result; } + if (isMappedTypeGenericIndexedAccess(source)) { + // For an indexed access type { [P in K]: E}[X], above we have already explored an instantiation of E with X + // substituted for P. We also want to explore type { [P in K]: E }[C], where C is the constraint of X. + const indexConstraint = getConstraintOfType((source as IndexedAccessType).indexType); + if (indexConstraint) { + if (result = isRelatedTo(getIndexedAccessType((source as IndexedAccessType).objectType, indexConstraint), target, RecursionFlags.Source, reportErrors)) { + resetErrorInfo(saveErrorInfo); + return result; + } + } + } } } - else if (source.flags & TypeFlags.Index) { + else if (sourceFlags & TypeFlags.Index) { if (result = isRelatedTo(keyofConstraintType, target, RecursionFlags.Source, reportErrors)) { resetErrorInfo(saveErrorInfo); return result; } } - else if (source.flags & TypeFlags.TemplateLiteral && !(target.flags & TypeFlags.Object)) { - if (!(target.flags & TypeFlags.TemplateLiteral)) { + else if (sourceFlags & TypeFlags.TemplateLiteral && !(targetFlags & TypeFlags.Object)) { + if (!(targetFlags & TypeFlags.TemplateLiteral)) { const constraint = getBaseConstraintOfType(source); if (constraint && constraint !== source && (result = isRelatedTo(constraint, target, RecursionFlags.Source, reportErrors))) { resetErrorInfo(saveErrorInfo); @@ -19099,8 +19530,8 @@ namespace ts { } } } - else if (source.flags & TypeFlags.StringMapping) { - if (target.flags & TypeFlags.StringMapping && (source as StringMappingType).symbol === (target as StringMappingType).symbol) { + else if (sourceFlags & TypeFlags.StringMapping) { + if (targetFlags & TypeFlags.StringMapping && (source as StringMappingType).symbol === (target as StringMappingType).symbol) { if (result = isRelatedTo((source as StringMappingType).type, (target as StringMappingType).type, RecursionFlags.Both, reportErrors)) { resetErrorInfo(saveErrorInfo); return result; @@ -19114,14 +19545,14 @@ namespace ts { } } } - else if (source.flags & TypeFlags.Conditional) { + else if (sourceFlags & TypeFlags.Conditional) { // If we reach 10 levels of nesting for the same conditional type, assume it is an infinitely expanding recursive // conditional type and bail out with a Ternary.Maybe result. if (isDeeplyNestedType(source, sourceStack, sourceDepth, 10)) { resetErrorInfo(saveErrorInfo); return Ternary.Maybe; } - if (target.flags & TypeFlags.Conditional) { + if (targetFlags & TypeFlags.Conditional) { // Two conditional types 'T1 extends U1 ? X1 : Y1' and 'T2 extends U2 ? X2 : Y2' are related if // one of T1 and T2 is related to the other, U1 and U2 are identical types, X1 is related to X2, // and Y1 is related to Y2. @@ -19149,7 +19580,7 @@ namespace ts { else { // conditionals aren't related to one another via distributive constraint as it is much too inaccurate and allows way // more assignments than are desirable (since it maps the source check type to its constraint, it loses information) - const distributiveConstraint = getConstraintOfDistributiveConditionalType(source as ConditionalType); + const distributiveConstraint = hasNonCircularBaseConstraint(source) ? getConstraintOfDistributiveConditionalType(source as ConditionalType) : undefined; if (distributiveConstraint) { if (result = isRelatedTo(distributiveConstraint, target, RecursionFlags.Source, reportErrors)) { resetErrorInfo(saveErrorInfo); @@ -19182,15 +19613,21 @@ namespace ts { } return Ternary.False; } - const sourceIsPrimitive = !!(source.flags & TypeFlags.Primitive); + const sourceIsPrimitive = !!(sourceFlags & TypeFlags.Primitive); if (relation !== identityRelation) { source = getApparentType(source); + sourceFlags = source.flags; } else if (isGenericMappedType(source)) { return Ternary.False; } if (getObjectFlags(source) & ObjectFlags.Reference && getObjectFlags(target) & ObjectFlags.Reference && (source as TypeReference).target === (target as TypeReference).target && - !isTupleType(source) && !(getObjectFlags(source) & ObjectFlags.MarkerType || getObjectFlags(target) & ObjectFlags.MarkerType)) { + !isTupleType(source) && !(isMarkerType(source) || isMarkerType(target))) { + // When strictNullChecks is disabled, the element type of the empty array literal is undefinedWideningType, + // and an empty array literal wouldn't be assignable to a `never[]` without this check. + if (isEmptyArrayLiteralType(source)) { + return Ternary.True; + } // We have type references to the same generic type, and the type references are not marker // type references (which are intended by be compared structurally). Obtain the variance // information for the type parameters and relate the type arguments accordingly. @@ -19226,7 +19663,7 @@ namespace ts { // In a check of the form X = A & B, we will have previously checked if A relates to X or B relates // to X. Failing both of those we want to check if the aggregation of A and B's members structurally // relates to X. Thus, we include intersection types on the source side here. - if (source.flags & (TypeFlags.Object | TypeFlags.Intersection) && target.flags & TypeFlags.Object) { + if (sourceFlags & (TypeFlags.Object | TypeFlags.Intersection) && targetFlags & TypeFlags.Object) { // Report structural errors only if we haven't reported any errors yet const reportStructuralErrors = reportErrors && errorInfo === saveErrorInfo.errorInfo && !sourceIsPrimitive; result = propertiesRelatedTo(source, target, reportStructuralErrors, /*excludedProperties*/ undefined, intersectionState); @@ -19250,7 +19687,7 @@ namespace ts { // there exists a constituent of T for every combination of the discriminants of S // with respect to T. We do not report errors here, as we will use the existing // error result from checking each constituent of the union. - if (source.flags & (TypeFlags.Object | TypeFlags.Intersection) && target.flags & TypeFlags.Union) { + if (sourceFlags & (TypeFlags.Object | TypeFlags.Intersection) && targetFlags & TypeFlags.Union) { const objectOnlyTarget = extractTypesOfKind(target, TypeFlags.Object | TypeFlags.Intersection | TypeFlags.Substitution); if (objectOnlyTarget.flags & TypeFlags.Union) { const result = typeRelatedToDiscriminatedType(source, objectOnlyTarget as UnionType); @@ -19496,6 +19933,19 @@ namespace ts { } return Ternary.False; } + + // Ensure {readonly a: whatever} is not a subtype of {a: whatever}, + // while {a: whatever} is a subtype of {readonly a: whatever}. + // This ensures the subtype relationship is ordered, and preventing declaration order + // from deciding which type "wins" in union subtype reduction. + // They're still assignable to one another, since `readonly` doesn't affect assignability. + // This is only applied during the strictSubtypeRelation -- currently used in subtype reduction + if ( + relation === strictSubtypeRelation && + isReadonlySymbol(sourceProp) && !isReadonlySymbol(targetProp) + ) { + return Ternary.False; + } // If the target comes from a partial union prop, allow `undefined` in the target type const related = isPropertySymbolTypeRelated(sourceProp, targetProp, getTypeOfSourceProperty, reportErrors, intersectionState); if (!related) { @@ -19676,7 +20126,7 @@ namespace ts { const requireOptionalProperties = (relation === subtypeRelation || relation === strictSubtypeRelation) && !isObjectLiteralType(source) && !isEmptyArrayLiteralType(source) && !isTupleType(source); const unmatchedProperty = getUnmatchedProperty(source, target, requireOptionalProperties, /*matchDiscriminantProperties*/ false); if (unmatchedProperty) { - if (reportErrors) { + if (reportErrors && shouldReportUnmatchedPropertyError(source, target)) { reportUnmatchedProperty(source, target, unmatchedProperty, requireOptionalProperties); } return Ternary.False; @@ -19773,11 +20223,11 @@ namespace ts { } let result = Ternary.True; - const saveErrorInfo = captureErrorCalculationState(); const incompatibleReporter = kind === SignatureKind.Construct ? reportIncompatibleConstructSignatureReturn : reportIncompatibleCallSignatureReturn; const sourceObjectFlags = getObjectFlags(source); const targetObjectFlags = getObjectFlags(target); - if (sourceObjectFlags & ObjectFlags.Instantiated && targetObjectFlags & ObjectFlags.Instantiated && source.symbol === target.symbol) { + if (sourceObjectFlags & ObjectFlags.Instantiated && targetObjectFlags & ObjectFlags.Instantiated && source.symbol === target.symbol || + sourceObjectFlags & ObjectFlags.Reference && targetObjectFlags & ObjectFlags.Reference && (source as TypeReference).target === (target as TypeReference).target) { // We have instantiations of the same anonymous type (which typically will be the type of a // method). Simply do a pairwise comparison of the signatures in the two signature lists instead // of the much more expensive N * M comparison matrix we explore below. We erase type parameters @@ -19811,6 +20261,7 @@ namespace ts { } else { outer: for (const t of targetSignatures) { + const saveErrorInfo = captureErrorCalculationState(); // Only elaborate errors from the first failure let shouldElaborateErrors = reportErrors; for (const s of sourceSignatures) { @@ -19822,7 +20273,6 @@ namespace ts { } shouldElaborateErrors = false; } - if (shouldElaborateErrors) { reportError(Diagnostics.Type_0_provides_no_match_for_the_signature_1, typeToString(source), @@ -19834,6 +20284,20 @@ namespace ts { return result; } + function shouldReportUnmatchedPropertyError(source: Type, target: Type): boolean { + const typeCallSignatures = getSignaturesOfStructuredType(source, SignatureKind.Call); + const typeConstructSignatures = getSignaturesOfStructuredType(source, SignatureKind.Construct); + const typeProperties = getPropertiesOfObjectType(source); + if ((typeCallSignatures.length || typeConstructSignatures.length) && !typeProperties.length) { + if ((getSignaturesOfType(target, SignatureKind.Call).length && typeCallSignatures.length) || + (getSignaturesOfType(target, SignatureKind.Construct).length && typeConstructSignatures.length)) { + return true; // target has similar signature kinds to source, still focus on the unmatched property + } + return false; + } + return true; + } + function reportIncompatibleCallSignatureReturn(siga: Signature, sigb: Signature) { if (siga.parameters.length === 0 && sigb.parameters.length === 0) { return (source: Type, target: Type) => reportIncompatibleError(Diagnostics.Call_signatures_with_no_arguments_have_incompatible_return_types_0_and_1, typeToString(source), typeToString(target)); @@ -20109,21 +20573,15 @@ namespace ts { return false; } - // Return a type reference where the source type parameter is replaced with the target marker - // type, and flag the result as a marker type reference. - function getMarkerTypeReference(type: GenericType, source: TypeParameter, target: Type) { - const result = createTypeReference(type, map(type.typeParameters, t => t === source ? target : t)); - result.objectFlags |= ObjectFlags.MarkerType; - return result; + function getVariances(type: GenericType): VarianceFlags[] { + // Arrays and tuples are known to be covariant, no need to spend time computing this. + return type === globalArrayType || type === globalReadonlyArrayType || type.objectFlags & ObjectFlags.Tuple ? + arrayVariances : + getVariancesWorker(type.symbol, type.typeParameters); } function getAliasVariances(symbol: Symbol) { - const links = getSymbolLinks(symbol); - return getVariancesWorker(links.typeParameters, links, (_links, param, marker) => { - const type = getTypeAliasInstantiation(symbol, instantiateTypes(links.typeParameters!, makeUnaryTypeMapper(param, marker))); - type.aliasTypeArgumentsContainsMarker = true; - return type; - }); + return getVariancesWorker(symbol, getSymbolLinks(symbol).typeParameters); } // Return an array containing the variance of each type parameter. The variance is effectively @@ -20131,55 +20589,71 @@ namespace ts { // generic type are structurally compared. We infer the variance information by comparing // instantiations of the generic type for type arguments with known relations. The function // returns the emptyArray singleton when invoked recursively for the given generic type. - function getVariancesWorker(typeParameters: readonly TypeParameter[] = emptyArray, cache: TCache, createMarkerType: (input: TCache, param: TypeParameter, marker: Type) => Type): VarianceFlags[] { - let variances = cache.variances; - if (!variances) { - tracing?.push(tracing.Phase.CheckTypes, "getVariancesWorker", { arity: typeParameters.length, id: (cache as any).id ?? (cache as any).declaredType?.id ?? -1 }); - // The emptyArray singleton is used to signal a recursive invocation. - cache.variances = emptyArray; - variances = []; + function getVariancesWorker(symbol: Symbol, typeParameters: readonly TypeParameter[] = emptyArray): VarianceFlags[] { + const links = getSymbolLinks(symbol); + if (!links.variances) { + tracing?.push(tracing.Phase.CheckTypes, "getVariancesWorker", { arity: typeParameters.length, id: getTypeId(getDeclaredTypeOfSymbol(symbol)) }); + links.variances = emptyArray; + const variances = []; for (const tp of typeParameters) { - let unmeasurable = false; - let unreliable = false; - const oldHandler = outofbandVarianceMarkerHandler; - outofbandVarianceMarkerHandler = (onlyUnreliable) => onlyUnreliable ? unreliable = true : unmeasurable = true; - // We first compare instantiations where the type parameter is replaced with - // marker types that have a known subtype relationship. From this we can infer - // invariance, covariance, contravariance or bivariance. - const typeWithSuper = createMarkerType(cache, tp, markerSuperType); - const typeWithSub = createMarkerType(cache, tp, markerSubType); - let variance = (isTypeAssignableTo(typeWithSub, typeWithSuper) ? VarianceFlags.Covariant : 0) | - (isTypeAssignableTo(typeWithSuper, typeWithSub) ? VarianceFlags.Contravariant : 0); - // If the instantiations appear to be related bivariantly it may be because the - // type parameter is independent (i.e. it isn't witnessed anywhere in the generic - // type). To determine this we compare instantiations where the type parameter is - // replaced with marker types that are known to be unrelated. - if (variance === VarianceFlags.Bivariant && isTypeAssignableTo(createMarkerType(cache, tp, markerOtherType), typeWithSuper)) { - variance = VarianceFlags.Independent; - } - outofbandVarianceMarkerHandler = oldHandler; - if (unmeasurable || unreliable) { - if (unmeasurable) { - variance |= VarianceFlags.Unmeasurable; - } - if (unreliable) { - variance |= VarianceFlags.Unreliable; + const modifiers = getVarianceModifiers(tp); + let variance = modifiers & ModifierFlags.Out ? + modifiers & ModifierFlags.In ? VarianceFlags.Invariant : VarianceFlags.Covariant : + modifiers & ModifierFlags.In ? VarianceFlags.Contravariant : undefined; + if (variance === undefined) { + let unmeasurable = false; + let unreliable = false; + const oldHandler = outofbandVarianceMarkerHandler; + outofbandVarianceMarkerHandler = (onlyUnreliable) => onlyUnreliable ? unreliable = true : unmeasurable = true; + // We first compare instantiations where the type parameter is replaced with + // marker types that have a known subtype relationship. From this we can infer + // invariance, covariance, contravariance or bivariance. + const typeWithSuper = createMarkerType(symbol, tp, markerSuperType); + const typeWithSub = createMarkerType(symbol, tp, markerSubType); + variance = (isTypeAssignableTo(typeWithSub, typeWithSuper) ? VarianceFlags.Covariant : 0) | + (isTypeAssignableTo(typeWithSuper, typeWithSub) ? VarianceFlags.Contravariant : 0); + // If the instantiations appear to be related bivariantly it may be because the + // type parameter is independent (i.e. it isn't witnessed anywhere in the generic + // type). To determine this we compare instantiations where the type parameter is + // replaced with marker types that are known to be unrelated. + if (variance === VarianceFlags.Bivariant && isTypeAssignableTo(createMarkerType(symbol, tp, markerOtherType), typeWithSuper)) { + variance = VarianceFlags.Independent; + } + outofbandVarianceMarkerHandler = oldHandler; + if (unmeasurable || unreliable) { + if (unmeasurable) { + variance |= VarianceFlags.Unmeasurable; + } + if (unreliable) { + variance |= VarianceFlags.Unreliable; + } } } variances.push(variance); } - cache.variances = variances; + links.variances = variances; tracing?.pop(); } - return variances; + return links.variances; } - function getVariances(type: GenericType): VarianceFlags[] { - // Arrays and tuples are known to be covariant, no need to spend time computing this. - if (type === globalArrayType || type === globalReadonlyArrayType || type.objectFlags & ObjectFlags.Tuple) { - return arrayVariances; - } - return getVariancesWorker(type.typeParameters, type, getMarkerTypeReference); + function createMarkerType(symbol: Symbol, source: TypeParameter, target: Type) { + const mapper = makeUnaryTypeMapper(source, target); + const type = getDeclaredTypeOfSymbol(symbol); + const result = symbol.flags & SymbolFlags.TypeAlias ? + getTypeAliasInstantiation(symbol, instantiateTypes(getSymbolLinks(symbol).typeParameters!, mapper)) : + createTypeReference(type as GenericType, instantiateTypes((type as GenericType).typeParameters, mapper)); + markerTypes.add(getTypeId(result)); + return result; + } + + function isMarkerType(type: Type) { + return markerTypes.has(getTypeId(type)); + } + + function getVarianceModifiers(tp: TypeParameter): ModifierFlags { + return (some(tp.symbol?.declarations, d => hasSyntacticModifier(d, ModifierFlags.In)) ? ModifierFlags.In : 0) | + (some(tp.symbol?.declarations, d => hasSyntacticModifier(d, ModifierFlags.Out)) ? ModifierFlags.Out: 0); } // Return true if the given type reference has a 'void' type argument for a covariant type parameter. @@ -20205,47 +20679,55 @@ namespace ts { return isNonDeferredTypeReference(type) && some(getTypeArguments(type), t => !!(t.flags & TypeFlags.TypeParameter) || isTypeReferenceWithGenericArguments(t)); } - /** - * getTypeReferenceId(A) returns "111=0-12=1" - * where A.id=111 and number.id=12 - */ - function getTypeReferenceId(type: TypeReference, typeParameters: Type[], depth = 0) { - let result = "" + type.target.id; - for (const t of getTypeArguments(type)) { - if (isUnconstrainedTypeParameter(t)) { - let index = typeParameters.indexOf(t); - if (index < 0) { - index = typeParameters.length; - typeParameters.push(t); + function getGenericTypeReferenceRelationKey(source: TypeReference, target: TypeReference, postFix: string, ignoreConstraints: boolean) { + const typeParameters: Type[] = []; + let constraintMarker = ""; + const sourceId = getTypeReferenceId(source, 0); + const targetId = getTypeReferenceId(target, 0); + return `${constraintMarker}${sourceId},${targetId}${postFix}`; + // getTypeReferenceId(A) returns "111=0-12=1" + // where A.id=111 and number.id=12 + function getTypeReferenceId(type: TypeReference, depth = 0) { + let result = "" + type.target.id; + for (const t of getTypeArguments(type)) { + if (t.flags & TypeFlags.TypeParameter) { + if (ignoreConstraints || isUnconstrainedTypeParameter(t)) { + let index = typeParameters.indexOf(t); + if (index < 0) { + index = typeParameters.length; + typeParameters.push(t); + } + result += "=" + index; + continue; + } + // We mark type references that reference constrained type parameters such that we know to obtain + // and look for a "broadest equivalent key" in the cache. + constraintMarker = "*"; + } + else if (depth < 4 && isTypeReferenceWithGenericArguments(t)) { + result += "<" + getTypeReferenceId(t as TypeReference, depth + 1) + ">"; + continue; } - result += "=" + index; - } - else if (depth < 4 && isTypeReferenceWithGenericArguments(t)) { - result += "<" + getTypeReferenceId(t as TypeReference, typeParameters, depth + 1) + ">"; - } - else { result += "-" + t.id; } + return result; } - return result; } /** * To improve caching, the relation key for two generic types uses the target's id plus ids of the type parameters. * For other cases, the types ids are used. */ - function getRelationKey(source: Type, target: Type, intersectionState: IntersectionState, relation: ESMap) { + function getRelationKey(source: Type, target: Type, intersectionState: IntersectionState, relation: ESMap, ignoreConstraints: boolean) { if (relation === identityRelation && source.id > target.id) { const temp = source; source = target; target = temp; } const postFix = intersectionState ? ":" + intersectionState : ""; - if (isTypeReferenceWithGenericArguments(source) && isTypeReferenceWithGenericArguments(target)) { - const typeParameters: Type[] = []; - return getTypeReferenceId(source as TypeReference, typeParameters) + "," + getTypeReferenceId(target as TypeReference, typeParameters) + postFix; - } - return source.id + "," + target.id + postFix; + return isTypeReferenceWithGenericArguments(source) && isTypeReferenceWithGenericArguments(target) ? + getGenericTypeReferenceRelationKey(source as TypeReference, target as TypeReference, postFix, ignoreConstraints) : + `${source.id},${target.id}${postFix}`; } // Invoke the callback for each underlying property symbol of the given symbol and return the first @@ -20293,33 +20775,40 @@ namespace ts { // Return true if the given class derives from each of the declaring classes of the protected // constituents of the given property. - function isClassDerivedFromDeclaringClasses(checkClass: Type, prop: Symbol, writing: boolean) { + function isClassDerivedFromDeclaringClasses(checkClass: T, prop: Symbol, writing: boolean) { return forEachProperty(prop, p => getDeclarationModifierFlagsFromSymbol(p, writing) & ModifierFlags.Protected ? !hasBaseType(checkClass, getDeclaringClass(p)) : false) ? undefined : checkClass; } // Return true if the given type is deeply nested. We consider this to be the case when structural type comparisons - // for 5 or more occurrences or instantiations of the type have been recorded on the given stack. It is possible, + // for maxDepth or more occurrences or instantiations of the type have been recorded on the given stack. It is possible, // though highly unlikely, for this test to be true in a situation where a chain of instantiations is not infinitely - // expanding. Effectively, we will generate a false positive when two types are structurally equal to at least 5 + // expanding. Effectively, we will generate a false positive when two types are structurally equal to at least maxDepth // levels, but unequal at some level beyond that. - // In addition, this will also detect when an indexed access has been chained off of 5 or more times (which is essentially - // the dual of the structural comparison), and likewise mark the type as deeply nested, potentially adding false positives - // for finite but deeply expanding indexed accesses (eg, for `Q[P1][P2][P3][P4][P5]`). - // It also detects when a recursive type reference has expanded 5 or more times, eg, if the true branch of + // In addition, this will also detect when an indexed access has been chained off of maxDepth more times (which is + // essentially the dual of the structural comparison), and likewise mark the type as deeply nested, potentially adding + // false positives for finite but deeply expanding indexed accesses (eg, for `Q[P1][P2][P3][P4][P5]`). + // It also detects when a recursive type reference has expanded maxDepth or more times, e.g. if the true branch of // `type A = null extends T ? [A>] : [T]` - // has expanded into `[A>>>>>]` - // in such cases we need to terminate the expansion, and we do so here. - function isDeeplyNestedType(type: Type, stack: Type[], depth: number, maxDepth = 5): boolean { + // has expanded into `[A>>>>>]`. In such cases we need + // to terminate the expansion, and we do so here. + function isDeeplyNestedType(type: Type, stack: Type[], depth: number, maxDepth = 3): boolean { if (depth >= maxDepth) { const identity = getRecursionIdentity(type); let count = 0; + let lastTypeId = 0; for (let i = 0; i < depth; i++) { - if (getRecursionIdentity(stack[i]) === identity) { - count++; - if (count >= maxDepth) { - return true; + const t = stack[i]; + if (getRecursionIdentity(t) === identity) { + // We only count occurrences with a higher type id than the previous occurrence, since higher + // type ids are an indicator of newer instantiations caused by recursion. + if (t.id >= lastTypeId) { + count++; + if (count >= maxDepth) { + return true; + } } + lastTypeId = t.id; } } } @@ -20640,7 +21129,7 @@ namespace ts { function getBaseTypeOfLiteralType(type: Type): Type { return type.flags & TypeFlags.EnumLiteral ? getBaseTypeOfEnumLiteralType(type as LiteralType) : - type.flags & TypeFlags.StringLiteral ? stringType : + type.flags & (TypeFlags.StringLiteral | TypeFlags.TemplateLiteral | TypeFlags.StringMapping) ? stringType : type.flags & TypeFlags.NumberLiteral ? numberType : type.flags & TypeFlags.BigIntLiteral ? bigintType : type.flags & TypeFlags.BooleanLiteral ? booleanType : @@ -20877,9 +21366,14 @@ namespace ts { * with no call or construct signatures. */ function isObjectTypeWithInferableIndex(type: Type): boolean { - return type.flags & TypeFlags.Intersection ? every((type as IntersectionType).types, isObjectTypeWithInferableIndex) : - !!(type.symbol && (type.symbol.flags & (SymbolFlags.ObjectLiteral | SymbolFlags.TypeLiteral | SymbolFlags.Enum | SymbolFlags.ValueModule)) !== 0 && - !typeHasCallOrConstructSignatures(type)) || !!(getObjectFlags(type) & ObjectFlags.ReverseMapped && isObjectTypeWithInferableIndex((type as ReverseMappedType).source)); + return type.flags & TypeFlags.Intersection + ? every((type as IntersectionType).types, isObjectTypeWithInferableIndex) + : !!( + type.symbol + && (type.symbol.flags & (SymbolFlags.ObjectLiteral | SymbolFlags.TypeLiteral | SymbolFlags.Enum | SymbolFlags.ValueModule)) !== 0 + && !(type.symbol.flags & SymbolFlags.Class) + && !typeHasCallOrConstructSignatures(type) + ) || !!(getObjectFlags(type) & ObjectFlags.ReverseMapped && isObjectTypeWithInferableIndex((type as ReverseMappedType).source)); } function createSymbolWithType(source: Symbol, type: Type | undefined) { @@ -21114,9 +21608,10 @@ namespace ts { (isCallSignatureDeclaration(param.parent) || isMethodSignature(param.parent) || isFunctionTypeNode(param.parent)) && param.parent.parameters.indexOf(param) > -1 && (resolveName(param, param.name.escapedText, SymbolFlags.Type, undefined, param.name.escapedText, /*isUse*/ true) || - param.name.originalKeywordKind && isTypeNodeKind(param.name.originalKeywordKind))) { + param.name.originalKeywordKind && isTypeNodeKind(param.name.originalKeywordKind))) { const newName = "arg" + param.parent.parameters.indexOf(param); - errorOrSuggestion(noImplicitAny, declaration, Diagnostics.Parameter_has_a_name_but_no_type_Did_you_mean_0_Colon_1, newName, declarationNameToString(param.name)); + const typeName = declarationNameToString(param.name) + (param.dotDotDotToken ? "[]" : ""); + errorOrSuggestion(noImplicitAny, declaration, Diagnostics.Parameter_has_a_name_but_no_type_Did_you_mean_0_Colon_1, newName, typeName); return; } diagnostic = (declaration as ParameterDeclaration).dotDotDotToken ? @@ -21165,12 +21660,14 @@ namespace ts { } function reportErrorsFromWidening(declaration: Declaration, type: Type, wideningKind?: WideningKind) { - if (produceDiagnostics && noImplicitAny && getObjectFlags(type) & ObjectFlags.ContainsWideningType && (!wideningKind || !getContextualSignatureForFunctionLikeDeclaration(declaration as FunctionLikeDeclaration))) { - // Report implicit any error within type if possible, otherwise report error on declaration - if (!reportWideningErrorsInType(type)) { - reportImplicitAny(declaration, type, wideningKind); + addLazyDiagnostic(() => { + if (noImplicitAny && getObjectFlags(type) & ObjectFlags.ContainsWideningType && (!wideningKind || !getContextualSignatureForFunctionLikeDeclaration(declaration as FunctionLikeDeclaration))) { + // Report implicit any error within type if possible, otherwise report error on declaration + if (!reportWideningErrorsInType(type)) { + reportImplicitAny(declaration, type, wideningKind); + } } - } + }); } function applyToParameterTypes(source: Signature, target: Signature, callback: (s: Type, t: Type) => void) { @@ -21298,7 +21795,7 @@ namespace ts { type.flags & TypeFlags.Object && !isNonGenericTopLevelType(type) && ( objectFlags & ObjectFlags.Reference && ((type as TypeReference).node || forEach(getTypeArguments(type as TypeReference), couldContainTypeVariables)) || objectFlags & ObjectFlags.Anonymous && type.symbol && type.symbol.flags & (SymbolFlags.Function | SymbolFlags.Method | SymbolFlags.Class | SymbolFlags.TypeLiteral | SymbolFlags.ObjectLiteral) && type.symbol.declarations || - objectFlags & (ObjectFlags.Mapped | ObjectFlags.ReverseMapped | ObjectFlags.ObjectRestType)) || + objectFlags & (ObjectFlags.Mapped | ObjectFlags.ReverseMapped | ObjectFlags.ObjectRestType | ObjectFlags.InstantiationExpressionType)) || type.flags & TypeFlags.UnionOrIntersection && !(type.flags & TypeFlags.EnumLiteral) && !isNonGenericTopLevelType(type) && some((type as UnionOrIntersectionType).types, couldContainTypeVariables)); if (type.flags & TypeFlags.ObjectFlagsType) { (type as ObjectFlagsType).objectFlags |= ObjectFlags.CouldContainTypeVariablesComputed | (result ? ObjectFlags.CouldContainTypeVariables : 0); @@ -21526,6 +22023,11 @@ namespace ts { undefined; } + function isTypeMatchedByTemplateLiteralType(source: Type, target: TemplateLiteralType): boolean { + const inferences = inferTypesFromTemplateLiteralType(source, target); + return !!inferences && every(inferences, (r, i) => isValidTypeForTemplateLiteralPlaceholder(r, target.types[i])); + } + function getStringLikeTypeForType(type: Type) { return type.flags & (TypeFlags.Any | TypeFlags.StringLike) ? type : getTemplateLiteralType(["", ""], [type]); } @@ -21696,12 +22198,14 @@ namespace ts { // not contain anyFunctionType when we come back to this argument for its second round // of inference. Also, we exclude inferences for silentNeverType (which is used as a wildcard // when constructing types from type parameters that had no inference candidates). - if (getObjectFlags(source) & ObjectFlags.NonInferrableType || source === nonInferrableAnyType || source === silentNeverType || - (priority & InferencePriority.ReturnType && (source === autoType || source === autoArrayType)) || isFromInferenceBlockedSource(source)) { + if (source === nonInferrableAnyType || source === silentNeverType || (priority & InferencePriority.ReturnType && (source === autoType || source === autoArrayType)) || isFromInferenceBlockedSource(source)) { return; } const inference = getInferenceInfoForType(target); if (inference) { + if (getObjectFlags(source) & ObjectFlags.NonInferrableType) { + return; + } if (!inference.isFixed) { if (inference.priority === undefined || priority < inference.priority) { inference.candidates = undefined; @@ -21732,21 +22236,19 @@ namespace ts { inferencePriority = Math.min(inferencePriority, priority); return; } - else { - // Infer to the simplified version of an indexed access, if possible, to (hopefully) expose more bare type parameters to the inference engine - const simplified = getSimplifiedType(target, /*writing*/ false); - if (simplified !== target) { - invokeOnce(source, simplified, inferFromTypes); - } - else if (target.flags & TypeFlags.IndexedAccess) { - const indexType = getSimplifiedType((target as IndexedAccessType).indexType, /*writing*/ false); - // Generally simplifications of instantiable indexes are avoided to keep relationship checking correct, however if our target is an access, we can consider - // that key of that access to be "instantiated", since we're looking to find the infernce goal in any way we can. - if (indexType.flags & TypeFlags.Instantiable) { - const simplified = distributeIndexOverObjectType(getSimplifiedType((target as IndexedAccessType).objectType, /*writing*/ false), indexType, /*writing*/ false); - if (simplified && simplified !== target) { - invokeOnce(source, simplified, inferFromTypes); - } + // Infer to the simplified version of an indexed access, if possible, to (hopefully) expose more bare type parameters to the inference engine + const simplified = getSimplifiedType(target, /*writing*/ false); + if (simplified !== target) { + inferFromTypes(source, simplified); + } + else if (target.flags & TypeFlags.IndexedAccess) { + const indexType = getSimplifiedType((target as IndexedAccessType).indexType, /*writing*/ false); + // Generally simplifications of instantiable indexes are avoided to keep relationship checking correct, however if our target is an access, we can consider + // that key of that access to be "instantiated", since we're looking to find the infernce goal in any way we can. + if (indexType.flags & TypeFlags.Instantiable) { + const simplified = distributeIndexOverObjectType(getSimplifiedType((target as IndexedAccessType).objectType, /*writing*/ false), indexType, /*writing*/ false); + if (simplified && simplified !== target) { + inferFromTypes(source, simplified); } } } @@ -22186,7 +22688,7 @@ namespace ts { const properties = getPropertiesOfObjectType(target); for (const targetProp of properties) { const sourceProp = getPropertyOfType(source, targetProp.escapedName); - if (sourceProp) { + if (sourceProp && !some(sourceProp.declarations, hasSkipDirectInferenceFlag)) { inferFromTypes(getTypeOfSymbol(sourceProp), getTypeOfSymbol(targetProp)); } } @@ -22416,6 +22918,11 @@ namespace ts { case "BigInt64Array": case "BigUint64Array": return Diagnostics.Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_1_or_later; + case "await": + if (isCallExpression(node.parent)) { + return Diagnostics.Cannot_find_name_0_Did_you_mean_to_write_this_in_an_async_function; + } + // falls through default: if (node.parent.kind === SyntaxKind.ShorthandPropertyAssignment) { return Diagnostics.No_value_exists_in_scope_for_the_shorthand_property_0_Either_declare_one_or_provide_an_initializer; @@ -22458,8 +22965,11 @@ namespace ts { function getFlowCacheKey(node: Node, declaredType: Type, initialType: Type, flowContainer: Node | undefined): string | undefined { switch (node.kind) { case SyntaxKind.Identifier: - const symbol = getResolvedSymbol(node as Identifier); - return symbol !== unknownSymbol ? `${flowContainer ? getNodeId(flowContainer) : "-1"}|${getTypeId(declaredType)}|${getTypeId(initialType)}|${getSymbolId(symbol)}` : undefined; + if (!isThisInTypeQuery(node)) { + const symbol = getResolvedSymbol(node as Identifier); + return symbol !== unknownSymbol ? `${flowContainer ? getNodeId(flowContainer) : "-1"}|${getTypeId(declaredType)}|${getTypeId(initialType)}|${getSymbolId(symbol)}` : undefined; + } + // falls through case SyntaxKind.ThisKeyword: return `0|${flowContainer ? getNodeId(flowContainer) : "-1"}|${getTypeId(declaredType)}|${getTypeId(initialType)}`; case SyntaxKind.NonNullExpression: @@ -22509,9 +23019,10 @@ namespace ts { return isMatchingReference((source as NonNullExpression | ParenthesizedExpression).expression, target); case SyntaxKind.PropertyAccessExpression: case SyntaxKind.ElementAccessExpression: - return isAccessExpression(target) && - getAccessedPropertyName(source as AccessExpression) === getAccessedPropertyName(target) && - isMatchingReference((source as AccessExpression).expression, target.expression); + const sourcePropertyName = getAccessedPropertyName(source as AccessExpression); + const targetPropertyName = isAccessExpression(target) ? getAccessedPropertyName(target) : undefined; + return sourcePropertyName !== undefined && targetPropertyName !== undefined && targetPropertyName === sourcePropertyName && + isMatchingReference((source as AccessExpression).expression, (target as AccessExpression).expression); case SyntaxKind.QualifiedName: return isAccessExpression(target) && (source as QualifiedName).right.escapedText === getAccessedPropertyName(target) && @@ -22522,36 +23033,53 @@ namespace ts { return false; } - function getPropertyAccess(expr: Expression) { - if (isAccessExpression(expr)) { - return expr; - } - if (isIdentifier(expr)) { - const symbol = getResolvedSymbol(expr); - if (isConstVariable(symbol)) { - const declaration = symbol.valueDeclaration!; - // Given 'const x = obj.kind', allow 'x' as an alias for 'obj.kind' - if (isVariableDeclaration(declaration) && !declaration.type && declaration.initializer && isAccessExpression(declaration.initializer)) { - return declaration.initializer; - } - // Given 'const { kind: x } = obj', allow 'x' as an alias for 'obj.kind' - if (isBindingElement(declaration) && !declaration.initializer) { - const parent = declaration.parent.parent; - if (isVariableDeclaration(parent) && !parent.type && parent.initializer && (isIdentifier(parent.initializer) || isAccessExpression(parent.initializer))) { - return declaration; - } - } - } + function getAccessedPropertyName(access: AccessExpression | BindingElement | ParameterDeclaration): __String | undefined { + if (isPropertyAccessExpression(access)) { + return access.name.escapedText; + } + if (isElementAccessExpression(access)) { + return tryGetElementAccessExpressionName(access); + } + if (isBindingElement(access)) { + const name = getDestructuringPropertyName(access); + return name ? escapeLeadingUnderscores(name) : undefined; + } + if (isParameter(access)) { + return ("" + access.parent.parameters.indexOf(access)) as __String; } return undefined; } - function getAccessedPropertyName(access: AccessExpression | BindingElement): __String | undefined { - let propertyName; - return access.kind === SyntaxKind.PropertyAccessExpression ? access.name.escapedText : - access.kind === SyntaxKind.ElementAccessExpression && isStringOrNumericLiteralLike(access.argumentExpression) ? escapeLeadingUnderscores(access.argumentExpression.text) : - access.kind === SyntaxKind.BindingElement && (propertyName = getDestructuringPropertyName(access)) ? escapeLeadingUnderscores(propertyName) : - undefined; + function tryGetNameFromType(type: Type) { + return type.flags & TypeFlags.UniqueESSymbol ? (type as UniqueESSymbolType).escapedName : + type.flags & TypeFlags.StringOrNumberLiteral ? escapeLeadingUnderscores("" + (type as StringLiteralType | NumberLiteralType).value) : undefined; + } + + function tryGetElementAccessExpressionName(node: ElementAccessExpression) { + if (isStringOrNumericLiteralLike(node.argumentExpression)) { + return escapeLeadingUnderscores(node.argumentExpression.text); + } + if (isEntityNameExpression(node.argumentExpression)) { + const symbol = resolveEntityName(node.argumentExpression, SymbolFlags.Value, /*ignoreErrors*/ true); + if (!symbol || !isConstVariable(symbol)) return undefined; + + const declaration = symbol.valueDeclaration; + if (declaration === undefined) return undefined; + + const type = tryGetTypeFromEffectiveTypeNode(declaration); + if (type) { + const name = tryGetNameFromType(type); + if (name !== undefined) { + return name; + } + } + + if (hasOnlyExpressionInitializer(declaration)) { + const initializer = getEffectiveInitializer(declaration); + return initializer && tryGetNameFromType(getTypeOfExpression(initializer)); + } + } + return undefined; } function containsMatchingReference(source: Node, target: Node) { @@ -22787,7 +23315,10 @@ namespace ts { (type === falseType || type === regularFalseType) ? TypeFacts.FalseStrictFacts : TypeFacts.TrueStrictFacts : (type === falseType || type === regularFalseType) ? TypeFacts.FalseFacts : TypeFacts.TrueFacts; } - if (flags & TypeFlags.Object && !ignoreObjects) { + if (flags & TypeFlags.Object) { + if (ignoreObjects) { + return TypeFacts.AndFactsMask; // This is the identity element for computing type facts of intersection. + } return getObjectFlags(type) & ObjectFlags.Anonymous && isEmptyObjectType(type as ObjectType) ? strictNullChecks ? TypeFacts.EmptyObjectStrictFacts : TypeFacts.EmptyObjectFacts : isFunctionObjectType(type as ObjectType) ? @@ -22820,11 +23351,24 @@ namespace ts { // When an intersection contains a primitive type we ignore object type constituents as they are // presumably type tags. For example, in string & { __kind__: "name" } we ignore the object type. ignoreObjects ||= maybeTypeOfKind(type, TypeFlags.Primitive); - return reduceLeft((type as UnionType).types, (facts, t) => facts & getTypeFacts(t, ignoreObjects), TypeFacts.All); + return getIntersectionTypeFacts(type as IntersectionType, ignoreObjects); } return TypeFacts.All; } + function getIntersectionTypeFacts(type: IntersectionType, ignoreObjects: boolean): TypeFacts { + // When computing the type facts of an intersection type, certain type facts are computed as `and` + // and others are computed as `or`. + let oredFacts = TypeFacts.None; + let andedFacts = TypeFacts.All; + for (const t of type.types) { + const f = getTypeFacts(t, ignoreObjects); + oredFacts |= f; + andedFacts &= f; + } + return oredFacts & TypeFacts.OrFactsMask | andedFacts & TypeFacts.AndFactsMask; + } + function getTypeWithFacts(type: Type, include: TypeFacts) { return filterType(type, t => (getTypeFacts(t) & include) !== 0); } @@ -23133,10 +23677,6 @@ namespace ts { mapType(type, mapper); } - function getConstituentCount(type: Type) { - return type.flags & TypeFlags.UnionOrIntersection ? (type as UnionOrIntersectionType).types.length : 1; - } - function extractTypesOfKind(type: Type, kind: TypeFlags) { return filterType(type, t => (t.flags & kind) !== 0); } @@ -23515,19 +24055,19 @@ namespace ts { return false; } - function getFlowTypeOfReference(reference: Node, declaredType: Type, initialType = declaredType, flowContainer?: Node) { + function getFlowTypeOfReference(reference: Node, declaredType: Type, initialType = declaredType, flowContainer?: Node, flowNode = reference.flowNode) { let key: string | undefined; let isKeySet = false; let flowDepth = 0; if (flowAnalysisDisabled) { return errorType; } - if (!reference.flowNode) { + if (!flowNode) { return declaredType; } flowInvocationCount++; const sharedFlowStart = sharedFlowCount; - const evolvedType = getTypeFromFlowType(getTypeAtFlowNode(reference.flowNode)); + const evolvedType = getTypeFromFlowType(getTypeAtFlowNode(flowNode)); sharedFlowCount = sharedFlowStart; // When the reference is 'x' in an 'x.length', 'x.push(value)', 'x.unshift(value)' or x[n] = value' operation, // we give type 'any[]' to 'x' instead of using the type determined by control flow analysis such that operations @@ -23971,16 +24511,62 @@ namespace ts { return result; } + function getCandidateDiscriminantPropertyAccess(expr: Expression) { + if (isBindingPattern(reference) || isFunctionExpressionOrArrowFunction(reference) || isObjectLiteralMethod(reference)) { + // When the reference is a binding pattern or function or arrow expression, we are narrowing a pesudo-reference in + // getNarrowedTypeOfSymbol. An identifier for a destructuring variable declared in the same binding pattern or + // parameter declared in the same parameter list is a candidate. + if (isIdentifier(expr)) { + const symbol = getResolvedSymbol(expr); + const declaration = symbol.valueDeclaration; + if (declaration && (isBindingElement(declaration) || isParameter(declaration)) && reference === declaration.parent && !declaration.initializer && !declaration.dotDotDotToken) { + return declaration; + } + } + } + else if (isAccessExpression(expr)) { + // An access expression is a candidate if the reference matches the left hand expression. + if (isMatchingReference(reference, expr.expression)) { + return expr; + } + } + else if (isIdentifier(expr)) { + const symbol = getResolvedSymbol(expr); + if (isConstVariable(symbol)) { + const declaration = symbol.valueDeclaration!; + // Given 'const x = obj.kind', allow 'x' as an alias for 'obj.kind' + if (isVariableDeclaration(declaration) && !declaration.type && declaration.initializer && isAccessExpression(declaration.initializer) && + isMatchingReference(reference, declaration.initializer.expression)) { + return declaration.initializer; + } + // Given 'const { kind: x } = obj', allow 'x' as an alias for 'obj.kind' + if (isBindingElement(declaration) && !declaration.initializer) { + const parent = declaration.parent.parent; + if (isVariableDeclaration(parent) && !parent.type && parent.initializer && (isIdentifier(parent.initializer) || isAccessExpression(parent.initializer)) && + isMatchingReference(reference, parent.initializer)) { + return declaration; + } + } + } + } + return undefined; + } + function getDiscriminantPropertyAccess(expr: Expression, computedType: Type) { - let access, name; const type = declaredType.flags & TypeFlags.Union ? declaredType : computedType; - return type.flags & TypeFlags.Union && (access = getPropertyAccess(expr)) && (name = getAccessedPropertyName(access)) && - isMatchingReference(reference, isAccessExpression(access) ? access.expression : access.parent.parent.initializer!) && - isDiscriminantProperty(type, name) ? - access : undefined; + if (type.flags & TypeFlags.Union) { + const access = getCandidateDiscriminantPropertyAccess(expr); + if (access) { + const name = getAccessedPropertyName(access); + if (name && isDiscriminantProperty(type, name)) { + return access; + } + } + } + return undefined; } - function narrowTypeByDiscriminant(type: Type, access: AccessExpression | BindingElement, narrowType: (t: Type) => Type): Type { + function narrowTypeByDiscriminant(type: Type, access: AccessExpression | BindingElement | ParameterDeclaration, narrowType: (t: Type) => Type): Type { const propName = getAccessedPropertyName(access); if (propName === undefined) { return type; @@ -23998,7 +24584,7 @@ namespace ts { }); } - function narrowTypeByDiscriminantProperty(type: Type, access: AccessExpression | BindingElement, operator: SyntaxKind, value: Expression, assumeTrue: boolean) { + function narrowTypeByDiscriminantProperty(type: Type, access: AccessExpression | BindingElement | ParameterDeclaration, operator: SyntaxKind, value: Expression, assumeTrue: boolean) { if ((operator === SyntaxKind.EqualsEqualsEqualsToken || operator === SyntaxKind.ExclamationEqualsEqualsToken) && type.flags & TypeFlags.Union) { const keyPropertyName = getKeyPropertyName(type as UnionType); if (keyPropertyName && keyPropertyName === getAccessedPropertyName(access)) { @@ -24013,7 +24599,7 @@ namespace ts { return narrowTypeByDiscriminant(type, access, t => narrowTypeByEquality(t, operator, value, assumeTrue)); } - function narrowTypeBySwitchOnDiscriminantProperty(type: Type, access: AccessExpression | BindingElement, switchStatement: SwitchStatement, clauseStart: number, clauseEnd: number) { + function narrowTypeBySwitchOnDiscriminantProperty(type: Type, access: AccessExpression | BindingElement | ParameterDeclaration, switchStatement: SwitchStatement, clauseStart: number, clauseEnd: number) { if (clauseStart < clauseEnd && type.flags & TypeFlags.Union && getKeyPropertyName(type as UnionType) === getAccessedPropertyName(access)) { const clauseTypes = getSwitchClauseTypes(switchStatement).slice(clauseStart, clauseEnd); const candidate = getUnionType(map(clauseTypes, t => getConstituentTypeForKeyType(type as UnionType, t) || unknownType)); @@ -24637,7 +25223,7 @@ namespace ts { } } if (isDeclarationName(location) && isSetAccessor(location.parent) && getAnnotatedAccessorTypeNode(location.parent)) { - return resolveTypeOfAccessors(location.parent.symbol, /*writing*/ true)!; + return getWriteTypeOfAccessors(location.parent.symbol); } // The location isn't a reference to the given symbol, meaning we're being asked // a hypothetical question of what type the symbol would have if there was a reference @@ -24720,7 +25306,7 @@ namespace ts { return parent.kind === SyntaxKind.PropertyAccessExpression || parent.kind === SyntaxKind.CallExpression && (parent as CallExpression).expression === node || parent.kind === SyntaxKind.ElementAccessExpression && (parent as ElementAccessExpression).expression === node && - !(isGenericTypeWithoutNullableConstraint(type) && isGenericIndexType(getTypeOfExpression((parent as ElementAccessExpression).argumentExpression))); + !(someType(type, isGenericTypeWithoutNullableConstraint) && isGenericIndexType(getTypeOfExpression((parent as ElementAccessExpression).argumentExpression))); } function isGenericTypeWithUnionConstraint(type: Type) { @@ -24731,12 +25317,16 @@ namespace ts { return !!(type.flags & TypeFlags.Instantiable && !maybeTypeOfKind(getBaseConstraintOrType(type), TypeFlags.Nullable)); } - function hasNonBindingPatternContextualTypeWithNoGenericTypes(node: Node) { + function hasContextualTypeWithNoGenericTypes(node: Node, checkMode: CheckMode | undefined) { // Computing the contextual type for a child of a JSX element involves resolving the type of the // element's tag name, so we exclude that here to avoid circularities. + // If check mode has `CheckMode.RestBindingElement`, we skip binding pattern contextual types, + // as we want the type of a rest element to be generic when possible. const contextualType = (isIdentifier(node) || isPropertyAccessExpression(node) || isElementAccessExpression(node)) && !((isJsxOpeningElement(node.parent) || isJsxSelfClosingElement(node.parent)) && node.parent.tagName === node) && - getContextualType(node, ContextFlags.SkipBindingPatterns); + (checkMode && checkMode & CheckMode.RestBindingElement ? + getContextualType(node, ContextFlags.SkipBindingPatterns) + : getContextualType(node)); return contextualType && !isGenericType(contextualType); } @@ -24750,7 +25340,7 @@ namespace ts { // 'string | undefined' to give control flow analysis the opportunity to narrow to type 'string'. const substituteConstraints = !(checkMode && checkMode & CheckMode.Inferential) && someType(type, isGenericTypeWithUnionConstraint) && - (isConstraintPosition(type, reference) || hasNonBindingPatternContextualTypeWithNoGenericTypes(reference)); + (isConstraintPosition(type, reference) || hasContextualTypeWithNoGenericTypes(reference, checkMode)); return substituteConstraints ? mapType(type, t => t.flags & TypeFlags.Instantiable ? getBaseConstraintOrType(t) : t) : type; } @@ -24790,7 +25380,94 @@ namespace ts { } } + function getNarrowedTypeOfSymbol(symbol: Symbol, location: Identifier) { + const declaration = symbol.valueDeclaration; + if (declaration) { + // If we have a non-rest binding element with no initializer declared as a const variable or a const-like + // parameter (a parameter for which there are no assignments in the function body), and if the parent type + // for the destructuring is a union type, one or more of the binding elements may represent discriminant + // properties, and we want the effects of conditional checks on such discriminants to affect the types of + // other binding elements from the same destructuring. Consider: + // + // type Action = + // | { kind: 'A', payload: number } + // | { kind: 'B', payload: string }; + // + // function f({ kind, payload }: Action) { + // if (kind === 'A') { + // payload.toFixed(); + // } + // if (kind === 'B') { + // payload.toUpperCase(); + // } + // } + // + // Above, we want the conditional checks on 'kind' to affect the type of 'payload'. To facilitate this, we use + // the binding pattern AST instance for '{ kind, payload }' as a pseudo-reference and narrow this reference + // as if it occurred in the specified location. We then recompute the narrowed binding element type by + // destructuring from the narrowed parent type. + if (isBindingElement(declaration) && !declaration.initializer && !declaration.dotDotDotToken && declaration.parent.elements.length >= 2) { + const parent = declaration.parent.parent; + if (parent.kind === SyntaxKind.VariableDeclaration && getCombinedNodeFlags(declaration) & NodeFlags.Const || parent.kind === SyntaxKind.Parameter) { + const links = getNodeLinks(location); + if (!(links.flags & NodeCheckFlags.InCheckIdentifier)) { + links.flags |= NodeCheckFlags.InCheckIdentifier; + const parentType = getTypeForBindingElementParent(parent, CheckMode.Normal); + links.flags &= ~NodeCheckFlags.InCheckIdentifier; + if (parentType && parentType.flags & TypeFlags.Union && !(parent.kind === SyntaxKind.Parameter && isSymbolAssigned(symbol))) { + const pattern = declaration.parent; + const narrowedType = getFlowTypeOfReference(pattern, parentType, parentType, /*flowContainer*/ undefined, location.flowNode); + if (narrowedType.flags & TypeFlags.Never) { + return neverType; + } + return getBindingElementTypeFromParentType(declaration, narrowedType); + } + } + } + } + // If we have a const-like parameter with no type annotation or initializer, and if the parameter is contextually + // typed by a signature with a single rest parameter of a union of tuple types, one or more of the parameters may + // represent discriminant tuple elements, and we want the effects of conditional checks on such discriminants to + // affect the types of other parameters in the same parameter list. Consider: + // + // type Action = [kind: 'A', payload: number] | [kind: 'B', payload: string]; + // + // const f: (...args: Action) => void = (kind, payload) => { + // if (kind === 'A') { + // payload.toFixed(); + // } + // if (kind === 'B') { + // payload.toUpperCase(); + // } + // } + // + // Above, we want the conditional checks on 'kind' to affect the type of 'payload'. To facilitate this, we use + // the arrow function AST node for '(kind, payload) => ...' as a pseudo-reference and narrow this reference as + // if it occurred in the specified location. We then recompute the narrowed parameter type by indexing into the + // narrowed tuple type. + if (isParameter(declaration) && !declaration.type && !declaration.initializer && !declaration.dotDotDotToken) { + const func = declaration.parent; + if (func.parameters.length >= 2 && isContextSensitiveFunctionOrObjectLiteralMethod(func)) { + const contextualSignature = getContextualSignature(func); + if (contextualSignature && contextualSignature.parameters.length === 1 && signatureHasRestParameter(contextualSignature)) { + const restType = getReducedApparentType(getTypeOfSymbol(contextualSignature.parameters[0])); + if (restType.flags & TypeFlags.Union && everyType(restType, isTupleType) && !isSymbolAssigned(symbol)) { + const narrowedType = getFlowTypeOfReference(func, restType, restType, /*flowContainer*/ undefined, location.flowNode); + const index = func.parameters.indexOf(declaration) - (getThisParameter(func) ? 1 : 0); + return getIndexedAccessType(narrowedType, getNumberLiteralType(index)); + } + } + } + } + } + return getTypeOfSymbol(symbol); + } + function checkIdentifier(node: Identifier, checkMode: CheckMode | undefined): Type { + if (isThisInTypeQuery(node)) { + return checkThisExpression(node); + } + const symbol = getResolvedSymbol(node); if (symbol === unknownSymbol) { return errorType; @@ -24829,9 +25506,9 @@ namespace ts { } const localOrExportSymbol = getExportSymbolOfValueSymbolIfExported(symbol); - const sourceSymbol = localOrExportSymbol.flags & SymbolFlags.Alias ? resolveAlias(localOrExportSymbol) : localOrExportSymbol; - if (sourceSymbol.declarations && getDeclarationNodeFlagsFromSymbol(sourceSymbol) & NodeFlags.Deprecated && isUncalledFunctionReference(node, sourceSymbol)) { - addDeprecatedSuggestion(node, sourceSymbol.declarations, node.escapedText as string); + const targetSymbol = checkDeprecatedAliasedSymbol(localOrExportSymbol, node); + if (isDeprecatedSymbol(targetSymbol) && isUncalledFunctionReference(node, targetSymbol) && targetSymbol.declarations) { + addDeprecatedSuggestion(node, targetSymbol.declarations, node.escapedText as string); } let declaration = localOrExportSymbol.valueDeclaration; @@ -24873,7 +25550,7 @@ namespace ts { checkNestedBlockScopedBinding(node, symbol); - let type = getTypeOfSymbol(localOrExportSymbol); + let type = getNarrowedTypeOfSymbol(localOrExportSymbol, node); const assignmentKind = getAssignmentTargetKind(node); if (assignmentKind) { @@ -25675,7 +26352,7 @@ namespace ts { const parent = declaration.parent.parent; const name = declaration.propertyName || declaration.name; const parentType = getContextualTypeForVariableLikeDeclaration(parent) || - parent.kind !== SyntaxKind.BindingElement && parent.initializer && checkDeclarationInitializer(parent); + parent.kind !== SyntaxKind.BindingElement && parent.initializer && checkDeclarationInitializer(parent, declaration.dotDotDotToken ? CheckMode.RestBindingElement : CheckMode.Normal); if (!parentType || isBindingPattern(name) || isComputedNonLiteralName(name)) return undefined; if (parent.name.kind === SyntaxKind.ArrayBindingPattern) { const index = indexOfNode(declaration.parent.elements, declaration); @@ -26011,12 +26688,12 @@ namespace ts { return !!(getCheckFlags(symbol) & CheckFlags.Mapped && !(symbol as MappedSymbol).type && findResolutionCycleStartIndex(symbol, TypeSystemPropertyName.Type) >= 0); } - function getTypeOfPropertyOfContextualType(type: Type, name: __String) { + function getTypeOfPropertyOfContextualType(type: Type, name: __String, nameType?: Type) { return mapType(type, t => { - if (isGenericMappedType(t)) { + if (isGenericMappedType(t) && !t.declaration.nameType) { const constraint = getConstraintTypeFromMappedType(t); const constraintOfConstraint = getBaseConstraintOfType(constraint) || constraint; - const propertyNameType = getStringLiteralType(unescapeLeadingUnderscores(name)); + const propertyNameType = nameType || getStringLiteralType(unescapeLeadingUnderscores(name)); if (isTypeAssignableTo(propertyNameType, constraintOfConstraint)) { return substituteIndexedMappedType(t, propertyNameType); } @@ -26032,7 +26709,7 @@ namespace ts { return restType; } } - return findApplicableIndexInfo(getIndexInfosOfStructuredType(t), getStringLiteralType(unescapeLeadingUnderscores(name)))?.type; + return findApplicableIndexInfo(getIndexInfosOfStructuredType(t), nameType || getStringLiteralType(unescapeLeadingUnderscores(name)))?.type; } return undefined; }, /*noReductions*/ true); @@ -26062,7 +26739,8 @@ namespace ts { // For a (non-symbol) computed property, there is no reason to look up the name // in the type. It will just be "__computed", which does not appear in any // SymbolTable. - return getTypeOfPropertyOfContextualType(type, getSymbolOfNode(element).escapedName); + const symbol = getSymbolOfNode(element); + return getTypeOfPropertyOfContextualType(type, symbol.escapedName, getSymbolLinks(symbol).nameType); } if (element.name) { const nameType = getLiteralTypeFromPropertyName(element.name); @@ -26224,9 +26902,14 @@ namespace ts { return instantiateInstantiableTypes(contextualType, inferenceContext.nonFixingMapper); } // For other purposes (e.g. determining whether to produce literal types) we only - // incorporate inferences made from the return type in a function call. + // incorporate inferences made from the return type in a function call. We remove + // the 'boolean' type from the contextual type such that contextually typed boolean + // literals actually end up widening to 'boolean' (see #48363). if (inferenceContext.returnMapper) { - return instantiateInstantiableTypes(contextualType, inferenceContext.returnMapper); + const type = instantiateInstantiableTypes(contextualType, inferenceContext.returnMapper); + return type.flags & TypeFlags.Union && containsType((type as UnionType).types, regularFalseType) && containsType((type as UnionType).types, regularTrueType) ? + filterType(type, t => t !== regularFalseType && t !== regularTrueType) : + type; } } } @@ -26321,6 +27004,8 @@ namespace ts { } case SyntaxKind.NonNullExpression: return getContextualType(parent as NonNullExpression, contextFlags); + case SyntaxKind.ExportAssignment: + return tryGetTypeFromEffectiveTypeNode(parent as ExportAssignment); case SyntaxKind.JsxExpression: return getContextualTypeForJsxExpression(parent as JsxExpression); case SyntaxKind.JsxAttribute: @@ -26768,36 +27453,12 @@ namespace ts { return isTypeAssignableToKind(checkComputedPropertyName(name), TypeFlags.NumberLike); } - function isNumericLiteralName(name: string | __String) { - // The intent of numeric names is that - // - they are names with text in a numeric form, and that - // - setting properties/indexing with them is always equivalent to doing so with the numeric literal 'numLit', - // acquired by applying the abstract 'ToNumber' operation on the name's text. - // - // The subtlety is in the latter portion, as we cannot reliably say that anything that looks like a numeric literal is a numeric name. - // In fact, it is the case that the text of the name must be equal to 'ToString(numLit)' for this to hold. - // - // Consider the property name '"0xF00D"'. When one indexes with '0xF00D', they are actually indexing with the value of 'ToString(0xF00D)' - // according to the ECMAScript specification, so it is actually as if the user indexed with the string '"61453"'. - // Thus, the text of all numeric literals equivalent to '61543' such as '0xF00D', '0xf00D', '0170015', etc. are not valid numeric names - // because their 'ToString' representation is not equal to their original text. - // This is motivated by ECMA-262 sections 9.3.1, 9.8.1, 11.1.5, and 11.2.1. - // - // Here, we test whether 'ToString(ToNumber(name))' is exactly equal to 'name'. - // The '+' prefix operator is equivalent here to applying the abstract ToNumber operation. - // Applying the 'toString()' method on a number gives us the abstract ToString operation on a number. - // - // Note that this accepts the values 'Infinity', '-Infinity', and 'NaN', and that this is intentional. - // This is desired behavior, because when indexing with them as numeric entities, you are indexing - // with the strings '"Infinity"', '"-Infinity"', and '"NaN"' respectively. - return (+name).toString() === name; - } - function checkComputedPropertyName(node: ComputedPropertyName): Type { const links = getNodeLinks(node.expression); if (!links.resolvedType) { if ((isTypeLiteralNode(node.parent.parent) || isClassLike(node.parent.parent) || isInterfaceDeclaration(node.parent.parent)) - && isBinaryExpression(node.expression) && node.expression.operatorToken.kind === SyntaxKind.InKeyword) { + && isBinaryExpression(node.expression) && node.expression.operatorToken.kind === SyntaxKind.InKeyword + && node.parent.kind !== SyntaxKind.GetAccessor && node.parent.kind !== SyntaxKind.SetAccessor) { return links.resolvedType = errorType; } links.resolvedType = checkExpression(node.expression); @@ -27083,15 +27744,9 @@ namespace ts { } function isValidSpreadType(type: Type): boolean { - if (type.flags & TypeFlags.Instantiable) { - const constraint = getBaseConstraintOfType(type); - if (constraint !== undefined) { - return isValidSpreadType(constraint); - } - } - return !!(type.flags & (TypeFlags.Any | TypeFlags.NonPrimitive | TypeFlags.Object | TypeFlags.InstantiableNonPrimitive) || - getFalsyFlags(type) & TypeFlags.DefinitelyFalsy && isValidSpreadType(removeDefinitelyFalsyTypes(type)) || - type.flags & TypeFlags.UnionOrIntersection && every((type as UnionOrIntersectionType).types, isValidSpreadType)); + const t = removeDefinitelyFalsyTypes(mapType(type, getBaseConstraintOrType)); + return !!(t.flags & (TypeFlags.Any | TypeFlags.NonPrimitive | TypeFlags.Object | TypeFlags.InstantiableNonPrimitive) || + t.flags & TypeFlags.UnionOrIntersection && every((t as UnionOrIntersectionType).types, isValidSpreadType)); } function checkJsxSelfClosingElementDeferred(node: JsxSelfClosingElement) { @@ -27624,7 +28279,7 @@ namespace ts { const isNodeOpeningLikeElement = isJsxOpeningLikeElement(node); if (isNodeOpeningLikeElement) { - checkGrammarJsxElement(node as JsxOpeningLikeElement); + checkGrammarJsxElement(node); } checkJsxPreconditions(node); @@ -27634,7 +28289,7 @@ namespace ts { // And if there is no reactNamespace/jsxFactory's symbol in scope when targeting React emit, we should issue an error. const jsxFactoryRefErr = diagnostics && compilerOptions.jsx === JsxEmit.React ? Diagnostics.Cannot_find_name_0 : undefined; const jsxFactoryNamespace = getJsxNamespace(node); - const jsxFactoryLocation = isNodeOpeningLikeElement ? (node as JsxOpeningLikeElement).tagName : node; + const jsxFactoryLocation = isNodeOpeningLikeElement ? node.tagName : node; // allow null as jsxFragmentFactory let jsxFactorySym: Symbol | undefined; @@ -27664,9 +28319,9 @@ namespace ts { } if (isNodeOpeningLikeElement) { - const jsxOpeningLikeNode = node as JsxOpeningLikeElement; + const jsxOpeningLikeNode = node ; const sig = getResolvedSignature(jsxOpeningLikeNode); - checkDeprecatedSignature(sig, node as JsxOpeningLikeElement); + checkDeprecatedSignature(sig, node); checkJsxReturnAssignableToAppropriateBound(getJsxReferenceKind(jsxOpeningLikeNode), getReturnTypeOfSignature(sig), jsxOpeningLikeNode); } } @@ -27862,14 +28517,15 @@ namespace ts { // of the property as base classes let enclosingClass = forEachEnclosingClass(location, enclosingDeclaration => { const enclosingClass = getDeclaredTypeOfSymbol(getSymbolOfNode(enclosingDeclaration)!) as InterfaceType; - return isClassDerivedFromDeclaringClasses(enclosingClass, prop, writing) ? enclosingClass : undefined; + return isClassDerivedFromDeclaringClasses(enclosingClass, prop, writing); }); // A protected property is accessible if the property is within the declaring class or classes derived from it if (!enclosingClass) { // allow PropertyAccessibility if context is in function with this parameter - // static member access is disallow - let thisParameter: ParameterDeclaration | undefined; - if (flags & ModifierFlags.Static || !(thisParameter = getThisParameterFromNodeContext(location)) || !thisParameter.type) { + // static member access is disallowed + enclosingClass = getEnclosingClassFromThisParameter(location); + enclosingClass = enclosingClass && isClassDerivedFromDeclaringClasses(enclosingClass, prop, writing); + if (flags & ModifierFlags.Static || !enclosingClass) { if (errorNode) { error(errorNode, Diagnostics.Property_0_is_protected_and_only_accessible_within_class_1_and_its_subclasses, @@ -27878,9 +28534,6 @@ namespace ts { } return false; } - - const thisType = getTypeFromTypeNode(thisParameter.type); - enclosingClass = (((thisType.flags & TypeFlags.TypeParameter) ? getConstraintOfTypeParameter(thisType as TypeParameter) : thisType) as TypeReference).target; } // No further restrictions for static properties if (flags & ModifierFlags.Static) { @@ -27901,6 +28554,18 @@ namespace ts { return true; } + function getEnclosingClassFromThisParameter(node: Node): InterfaceType | undefined { + const thisParameter = getThisParameterFromNodeContext(node); + let thisType = thisParameter?.type && getTypeFromTypeNode(thisParameter.type); + if (thisType && thisType.flags & TypeFlags.TypeParameter) { + thisType = getConstraintOfTypeParameter(thisType as TypeParameter); + } + if (thisType && getObjectFlags(thisType) & (ObjectFlags.ClassOrInterface | ObjectFlags.Reference)) { + return getTargetType(thisType) as InterfaceType; + } + return undefined; + } + function getThisParameterFromNodeContext(node: Node) { const thisContainer = getThisContainer(node, /* includeArrowFunctions */ false); return thisContainer && isFunctionLike(thisContainer) ? getThisParameter(thisContainer) : undefined; @@ -28007,12 +28672,18 @@ namespace ts { if (!getContainingClass(privId)) { return grammarErrorOnNode(privId, Diagnostics.Private_identifiers_are_not_allowed_outside_class_bodies); } - if (!isExpressionNode(privId)) { - return grammarErrorOnNode(privId, Diagnostics.Private_identifiers_are_only_allowed_in_class_bodies_and_may_only_be_used_as_part_of_a_class_member_declaration_property_access_or_on_the_left_hand_side_of_an_in_expression); - } - if (!getSymbolForPrivateIdentifierExpression(privId)) { - return grammarErrorOnNode(privId, Diagnostics.Cannot_find_name_0, idText(privId)); + + if (!isForInStatement(privId.parent)) { + if (!isExpressionNode(privId)) { + return grammarErrorOnNode(privId, Diagnostics.Private_identifiers_are_only_allowed_in_class_bodies_and_may_only_be_used_as_part_of_a_class_member_declaration_property_access_or_on_the_left_hand_side_of_an_in_expression); + } + + const isInOperation = isBinaryExpression(privId.parent) && privId.parent.operatorToken.kind === SyntaxKind.InKeyword; + if (!getSymbolForPrivateIdentifierExpression(privId) && !isInOperation) { + return grammarErrorOnNode(privId, Diagnostics.Cannot_find_name_0, idText(privId)); + } } + return false; } @@ -28128,29 +28799,6 @@ namespace ts { grammarErrorOnNode(right, Diagnostics.Cannot_assign_to_private_method_0_Private_methods_are_not_writable, idText(right)); } - if (lexicallyScopedSymbol?.valueDeclaration && (getEmitScriptTarget(compilerOptions) === ScriptTarget.ESNext && !useDefineForClassFields)) { - const lexicalClass = getContainingClass(lexicallyScopedSymbol.valueDeclaration); - const parentStaticFieldInitializer = findAncestor(node, (n) => { - if (n === lexicalClass) return "quit"; - if (isPropertyDeclaration(n.parent) && hasStaticModifier(n.parent) && n.parent.initializer === n && n.parent.parent === lexicalClass) { - return true; - } - return false; - }); - if (parentStaticFieldInitializer) { - const parentStaticFieldInitializerSymbol = getSymbolOfNode(parentStaticFieldInitializer.parent); - Debug.assert(parentStaticFieldInitializerSymbol, "Initializer without declaration symbol"); - const diagnostic = error(node, - Diagnostics.Property_0_may_not_be_used_in_a_static_property_s_initializer_in_the_same_class_when_target_is_esnext_and_useDefineForClassFields_is_false, - symbolName(lexicallyScopedSymbol)); - addRelatedInfo(diagnostic, - createDiagnosticForNode(parentStaticFieldInitializer.parent, - Diagnostics.Initializer_for_property_0, - symbolName(parentStaticFieldInitializerSymbol)) - ); - } - } - if (isAnyLike) { if (lexicallyScopedSymbol) { return isErrorType(apparentType) ? errorType : apparentType; @@ -28220,9 +28868,12 @@ namespace ts { if (compilerOptions.noPropertyAccessFromIndexSignature && isPropertyAccessExpression(node)) { error(right, Diagnostics.Property_0_comes_from_an_index_signature_so_it_must_be_accessed_with_0, unescapeLeadingUnderscores(right.escapedText)); } + if (indexInfo.declaration && getCombinedNodeFlags(indexInfo.declaration) & NodeFlags.Deprecated) { + addDeprecatedSuggestion(right, [indexInfo.declaration], right.escapedText as string); + } } else { - if (prop.declarations && getDeclarationNodeFlagsFromSymbol(prop) & NodeFlags.Deprecated && isUncalledFunctionReference(node, prop)) { + if (isDeprecatedSymbol(prop) && isUncalledFunctionReference(node, prop) && prop.declarations) { addDeprecatedSuggestion(right, prop.declarations, right.escapedText as string); } checkPropertyNotUsedBeforeDeclaration(prop, node, right); @@ -28235,7 +28886,7 @@ namespace ts { return errorType; } - propType = isThisPropertyAccessInConstructor(node, prop) ? autoType : writing ? getSetAccessorTypeOfSymbol(prop) : getTypeOfSymbol(prop); + propType = isThisPropertyAccessInConstructor(node, prop) ? autoType : writing ? getWriteTypeOfSymbol(prop) : getTypeOfSymbol(prop); } return getFlowTypeOfAccessExpression(node, prop, propType, right, checkMode); @@ -28322,6 +28973,7 @@ namespace ts { && !isOptionalPropertyDeclaration(valueDeclaration) && !(isAccessExpression(node) && isAccessExpression(node.expression)) && !isBlockScopedNameDeclaredBeforeUse(valueDeclaration, right) + && !(isMethodDeclaration(valueDeclaration) && getCombinedModifierFlags(valueDeclaration) & ModifierFlags.Static) && (compilerOptions.useDefineForClassFields || !isPropertyDeclaredInAncestorClass(prop))) { diagnosticMessage = error(right, Diagnostics.Property_0_is_used_before_its_initialization, declarationName); } @@ -28521,7 +29173,7 @@ namespace ts { function getSuggestedSymbolForNonexistentSymbol(location: Node | undefined, outerName: __String, meaning: SymbolFlags): Symbol | undefined { Debug.assert(outerName !== undefined, "outername should always be defined"); - const result = resolveNameHelper(location, outerName, meaning, /*nameNotFoundMessage*/ undefined, outerName, /*isUse*/ false, /*excludeGlobals*/ false, (symbols, name, meaning) => { + const result = resolveNameHelper(location, outerName, meaning, /*nameNotFoundMessage*/ undefined, outerName, /*isUse*/ false, /*excludeGlobals*/ false, /*getSpellingSuggestions*/ true, (symbols, name, meaning) => { Debug.assertEqual(outerName, name, "name should equal outerName"); const symbol = getSymbol(symbols, name, meaning); // Sometimes the symbol is found when location is a return type of a function: `typeof x` and `x` is declared in the body of the function @@ -29123,7 +29775,7 @@ namespace ts { for (let i = 0; i < argCount; i++) { const arg = args[i]; - if (arg.kind !== SyntaxKind.OmittedExpression) { + if (arg.kind !== SyntaxKind.OmittedExpression && !(checkMode & CheckMode.IsForStringLiteralArgumentCompletions && hasSkipDirectInferenceFlag(arg))) { const paramType = getTypeAtPosition(signature, i); const argType = checkExpressionWithContextualType(arg, paramType, context, checkMode); inferTypes(context.inferences, argType, paramType); @@ -29682,7 +30334,7 @@ namespace ts { const isTaggedTemplate = node.kind === SyntaxKind.TaggedTemplateExpression; const isDecorator = node.kind === SyntaxKind.Decorator; const isJsxOpeningOrSelfClosingElement = isJsxOpeningLikeElement(node); - const reportErrors = !candidatesOutArray && produceDiagnostics; + const reportErrors = !candidatesOutArray; let typeArguments: NodeArray | undefined; @@ -29826,7 +30478,7 @@ namespace ts { const diags = max > 1 ? allDiagnostics[minIndex] : flatten(allDiagnostics); Debug.assert(diags.length > 0, "No errors reported for 3 or fewer overload signatures"); const chain = chainDiagnosticMessages( - map(diags, d => typeof d.messageText === "string" ? (d as DiagnosticMessageChain) : d.messageText), + map(diags, createDiagnosticMessageChainFromDiagnostic), Diagnostics.No_overload_matches_this_call); // The below is a spread to guarantee we get a new (mutable) array - our `flatMap` helper tries to do "smart" optimizations where it reuses input // arrays and the emptyArray singleton where possible, which is decidedly not what we want while we're still constructing this diagnostic @@ -29863,7 +30515,7 @@ namespace ts { } } - return getCandidateForOverloadFailure(node, candidates, args, !!candidatesOutArray); + return getCandidateForOverloadFailure(node, candidates, args, !!candidatesOutArray, checkMode); function addImplementationSuccessElaboration(failed: Signature, diagnostic: Diagnostic) { const oldCandidatesForArgumentError = candidatesForArgumentError; @@ -29977,6 +30629,7 @@ namespace ts { candidates: Signature[], args: readonly Expression[], hasCandidatesOutArray: boolean, + checkMode: CheckMode, ): Signature { Debug.assert(candidates.length > 0); // Else should not have called this. checkNodeDeferred(node); @@ -29984,7 +30637,7 @@ namespace ts { // Don't do this if there is a `candidatesOutArray`, // because then we want the chosen best candidate to be one of the overloads, not a combination. return hasCandidatesOutArray || candidates.length === 1 || candidates.some(c => !!c.typeParameters) - ? pickLongestCandidateSignature(node, candidates, args) + ? pickLongestCandidateSignature(node, candidates, args, checkMode) : createUnionOfSignaturesForOverloadFailure(candidates); } @@ -30038,7 +30691,7 @@ namespace ts { return createSymbolWithType(first(sources), type); } - function pickLongestCandidateSignature(node: CallLikeExpression, candidates: Signature[], args: readonly Expression[]): Signature { + function pickLongestCandidateSignature(node: CallLikeExpression, candidates: Signature[], args: readonly Expression[], checkMode: CheckMode): Signature { // Pick the longest signature. This way we can get a contextual type for cases like: // declare function f(a: { xa: number; xb: number; }, b: number); // f({ | @@ -30055,7 +30708,7 @@ namespace ts { const typeArgumentNodes: readonly TypeNode[] | undefined = callLikeExpressionMayHaveTypeArguments(node) ? node.typeArguments : undefined; const instantiated = typeArgumentNodes ? createSignatureInstantiation(candidate, getTypeArgumentsFromNodes(typeArgumentNodes, typeParameters, isInJSFile(node))) - : inferSignatureInstantiationForOverloadFailure(node, typeParameters, candidate, args); + : inferSignatureInstantiationForOverloadFailure(node, typeParameters, candidate, args, checkMode); candidates[bestIndex] = instantiated; return instantiated; } @@ -30066,14 +30719,14 @@ namespace ts { typeArguments.pop(); } while (typeArguments.length < typeParameters.length) { - typeArguments.push(getConstraintOfTypeParameter(typeParameters[typeArguments.length]) || getDefaultTypeArgumentType(isJs)); + typeArguments.push(getDefaultFromTypeParameter(typeParameters[typeArguments.length]) || getConstraintOfTypeParameter(typeParameters[typeArguments.length]) || getDefaultTypeArgumentType(isJs)); } return typeArguments; } - function inferSignatureInstantiationForOverloadFailure(node: CallLikeExpression, typeParameters: readonly TypeParameter[], candidate: Signature, args: readonly Expression[]): Signature { + function inferSignatureInstantiationForOverloadFailure(node: CallLikeExpression, typeParameters: readonly TypeParameter[], candidate: Signature, args: readonly Expression[], checkMode: CheckMode): Signature { const inferenceContext = createInferenceContext(typeParameters, candidate, /*flags*/ isInJSFile(node) ? InferenceFlags.AnyDefault : InferenceFlags.None); - const typeArgumentTypes = inferTypeArguments(node, candidate, args, CheckMode.SkipContextSensitive | CheckMode.SkipGenericFunctions, inferenceContext); + const typeArgumentTypes = inferTypeArguments(node, candidate, args, checkMode | CheckMode.SkipContextSensitive | CheckMode.SkipGenericFunctions, inferenceContext); return createSignatureInstantiation(candidate, typeArgumentTypes); } @@ -30270,7 +30923,7 @@ namespace ts { // then it cannot be instantiated. // In the case of a merged class-module or class-interface declaration, // only the class declaration node will have the Abstract flag set. - if (constructSignatures.some(signature => signature.flags & SignatureFlags.Abstract)) { + if (someSignature(constructSignatures, signature => !!(signature.flags & SignatureFlags.Abstract))) { error(node, Diagnostics.Cannot_create_an_instance_of_an_abstract_class); return resolveErrorCall(node); } @@ -30305,6 +30958,13 @@ namespace ts { return resolveErrorCall(node); } + function someSignature(signatures: Signature | readonly Signature[], f: (s: Signature) => boolean): boolean { + if (isArray(signatures)) { + return some(signatures, signature => someSignature(signature, f)); + } + return signatures.compositeKind === TypeFlags.Union ? some(signatures.compositeSignatures, f) : f(signatures); + } + function typeHasProtectedAccessibleBase(target: Symbol, type: InterfaceType): boolean { const baseTypes = getBaseTypes(type); if (!length(baseTypes)) { @@ -30816,7 +31476,7 @@ namespace ts { * @returns On success, the expression's signature's return type. On failure, anyType. */ function checkCallExpression(node: CallExpression | NewExpression, checkMode?: CheckMode): Type { - if (!checkGrammarTypeArguments(node, node.typeArguments)) checkGrammarArguments(node.arguments); + checkGrammarTypeArguments(node, node.typeArguments); const signature = getResolvedSignature(node, /*candidatesOutArray*/ undefined, checkMode); if (signature === resolvingSignature) { @@ -30936,7 +31596,7 @@ namespace ts { function checkImportCallExpression(node: ImportCall): Type { // Check grammar of dynamic import - if (!checkGrammarArguments(node.arguments)) checkGrammarImportCallExpression(node); + checkGrammarImportCallExpression(node); if (node.arguments.length === 0) { return createPromiseReturnType(node, anyType); @@ -30966,12 +31626,38 @@ namespace ts { if (moduleSymbol) { const esModuleSymbol = resolveESModuleSymbol(moduleSymbol, specifier, /*dontRecursivelyResolve*/ true, /*suppressUsageError*/ false); if (esModuleSymbol) { - return createPromiseReturnType(node, getTypeWithSyntheticDefaultImportType(getTypeOfSymbol(esModuleSymbol), esModuleSymbol, moduleSymbol, specifier)); + return createPromiseReturnType(node, + getTypeWithSyntheticDefaultOnly(getTypeOfSymbol(esModuleSymbol), esModuleSymbol, moduleSymbol, specifier) || + getTypeWithSyntheticDefaultImportType(getTypeOfSymbol(esModuleSymbol), esModuleSymbol, moduleSymbol, specifier) + ); } } return createPromiseReturnType(node, anyType); } + function createDefaultPropertyWrapperForModule(symbol: Symbol, originalSymbol: Symbol, anonymousSymbol?: Symbol | undefined) { + const memberTable = createSymbolTable(); + const newSymbol = createSymbol(SymbolFlags.Alias, InternalSymbolName.Default); + newSymbol.parent = originalSymbol; + newSymbol.nameType = getStringLiteralType("default"); + newSymbol.target = resolveSymbol(symbol); + memberTable.set(InternalSymbolName.Default, newSymbol); + return createAnonymousType(anonymousSymbol, memberTable, emptyArray, emptyArray, emptyArray); + } + + function getTypeWithSyntheticDefaultOnly(type: Type, symbol: Symbol, originalSymbol: Symbol, moduleSpecifier: Expression) { + const hasDefaultOnly = isOnlyImportedAsDefault(moduleSpecifier); + if (hasDefaultOnly && type && !isErrorType(type)) { + const synthType = type as SyntheticDefaultModuleType; + if (!synthType.defaultOnlyType) { + const type = createDefaultPropertyWrapperForModule(symbol, originalSymbol); + synthType.defaultOnlyType = type; + } + return synthType.defaultOnlyType; + } + return undefined; + } + function getTypeWithSyntheticDefaultImportType(type: Type, symbol: Symbol, originalSymbol: Symbol, moduleSpecifier: Expression): Type { if (allowSyntheticDefaultImports && type && !isErrorType(type)) { const synthType = type as SyntheticDefaultModuleType; @@ -30979,14 +31665,8 @@ namespace ts { const file = originalSymbol.declarations?.find(isSourceFile); const hasSyntheticDefault = canHaveSyntheticDefault(file, originalSymbol, /*dontResolveAlias*/ false, moduleSpecifier); if (hasSyntheticDefault) { - const memberTable = createSymbolTable(); - const newSymbol = createSymbol(SymbolFlags.Alias, InternalSymbolName.Default); - newSymbol.parent = originalSymbol; - newSymbol.nameType = getStringLiteralType("default"); - newSymbol.target = resolveSymbol(symbol); - memberTable.set(InternalSymbolName.Default, newSymbol); const anonymousSymbol = createSymbol(SymbolFlags.TypeLiteral, InternalSymbolName.Type); - const defaultContainingObject = createAnonymousType(anonymousSymbol, memberTable, emptyArray, emptyArray, emptyArray); + const defaultContainingObject = createDefaultPropertyWrapperForModule(symbol, originalSymbol, anonymousSymbol); anonymousSymbol.type = defaultContainingObject; synthType.syntheticType = isValidSpreadType(type) ? getSpreadType(type, defaultContainingObject, anonymousSymbol, /*objectFlags*/ 0, /*readonly*/ false) : defaultContainingObject; } @@ -31090,12 +31770,14 @@ namespace ts { checkSourceElement(type); exprType = getRegularTypeOfObjectLiteral(getBaseTypeOfLiteralType(exprType)); const targetType = getTypeFromTypeNode(type); - if (produceDiagnostics && !isErrorType(targetType)) { - const widenedType = getWidenedType(exprType); - if (!isTypeComparableTo(targetType, widenedType)) { - checkTypeComparableTo(exprType, targetType, errNode, - Diagnostics.Conversion_of_type_0_to_type_1_may_be_a_mistake_because_neither_type_sufficiently_overlaps_with_the_other_If_this_was_intentional_convert_the_expression_to_unknown_first); - } + if (!isErrorType(targetType)) { + addLazyDiagnostic(() => { + const widenedType = getWidenedType(exprType); + if (!isTypeComparableTo(targetType, widenedType)) { + checkTypeComparableTo(exprType, targetType, errNode, + Diagnostics.Conversion_of_type_0_to_type_1_may_be_a_mistake_because_neither_type_sufficiently_overlaps_with_the_other_If_this_was_intentional_convert_the_expression_to_unknown_first); + } + }); } return targetType; } @@ -31111,6 +31793,76 @@ namespace ts { getNonNullableType(checkExpression(node.expression)); } + function checkExpressionWithTypeArguments(node: ExpressionWithTypeArguments | TypeQueryNode) { + checkGrammarExpressionWithTypeArguments(node); + const exprType = node.kind === SyntaxKind.ExpressionWithTypeArguments ? checkExpression(node.expression) : + isThisIdentifier(node.exprName) ? checkThisExpression(node.exprName) : + checkExpression(node.exprName); + const typeArguments = node.typeArguments; + if (exprType === silentNeverType || isErrorType(exprType) || !some(typeArguments)) { + return exprType; + } + let hasSomeApplicableSignature = false; + let nonApplicableType: Type | undefined; + const result = getInstantiatedType(exprType); + const errorType = hasSomeApplicableSignature ? nonApplicableType : exprType; + if (errorType) { + diagnostics.add(createDiagnosticForNodeArray(getSourceFileOfNode(node), typeArguments, Diagnostics.Type_0_has_no_signatures_for_which_the_type_argument_list_is_applicable, typeToString(errorType))); + } + return result; + + function getInstantiatedType(type: Type): Type { + let hasSignatures = false; + let hasApplicableSignature = false; + const result = getInstantiatedTypePart(type); + hasSomeApplicableSignature ||= hasApplicableSignature; + if (hasSignatures && !hasApplicableSignature) { + nonApplicableType ??= type; + } + return result; + + function getInstantiatedTypePart(type: Type): Type { + if (type.flags & TypeFlags.Object) { + const resolved = resolveStructuredTypeMembers(type as ObjectType); + const callSignatures = getInstantiatedSignatures(resolved.callSignatures); + const constructSignatures = getInstantiatedSignatures(resolved.constructSignatures); + hasSignatures ||= resolved.callSignatures.length !== 0 || resolved.constructSignatures.length !== 0; + hasApplicableSignature ||= callSignatures.length !== 0 || constructSignatures.length !== 0; + if (callSignatures !== resolved.callSignatures || constructSignatures !== resolved.constructSignatures) { + const result = createAnonymousType(undefined, resolved.members, callSignatures, constructSignatures, resolved.indexInfos) as ResolvedType & InstantiationExpressionType; + result.objectFlags |= ObjectFlags.InstantiationExpressionType; + result.node = node; + return result; + } + } + else if (type.flags & TypeFlags.InstantiableNonPrimitive) { + const constraint = getBaseConstraintOfType(type); + if (constraint) { + const instantiated = getInstantiatedTypePart(constraint); + if (instantiated !== constraint) { + return instantiated; + } + } + } + else if (type.flags & TypeFlags.Union) { + return mapType(type, getInstantiatedType); + } + else if (type.flags & TypeFlags.Intersection) { + return getIntersectionType(sameMap((type as IntersectionType).types, getInstantiatedTypePart)); + } + return type; + } + } + + function getInstantiatedSignatures(signatures: readonly Signature[]) { + const applicableSignatures = filter(signatures, sig => !!sig.typeParameters && hasCorrectTypeArgumentArity(sig, typeArguments)); + return sameMap(applicableSignatures, sig => { + const typeArgumentTypes = checkTypeArguments(sig, typeArguments!, /*reportErrors*/ true); + return typeArgumentTypes ? getSignatureInstantiation(sig, typeArgumentTypes, isInJSFile(sig.declaration)) : sig; + }); + } + } + function checkMetaProperty(node: MetaProperty): Type { checkGrammarMetaProperty(node); @@ -31199,6 +31951,9 @@ namespace ts { } function getParameterIdentifierNameAtPosition(signature: Signature, pos: number): [parameterName: __String, isRestParameter: boolean] | undefined { + if (signature.declaration?.kind === SyntaxKind.JSDocFunctionType) { + return undefined; + } const paramCount = signature.parameters.length - (signatureHasRestParameter(signature) ? 1 : 0); if (pos < paramCount) { const param = signature.parameters[pos]; @@ -31438,7 +32193,12 @@ namespace ts { if (signatureHasRestParameter(signature)) { // parameter might be a transient symbol generated by use of `arguments` in the function body. const parameter = last(signature.parameters); - if (isTransientSymbol(parameter) || !getEffectiveTypeAnnotationNode(parameter.valueDeclaration as ParameterDeclaration)) { + if (parameter.valueDeclaration + ? !getEffectiveTypeAnnotationNode(parameter.valueDeclaration as ParameterDeclaration) + // a declarationless parameter may still have a `.type` already set by its construction logic + // (which may pull a type from a jsdoc) - only allow fixing on `DeferredType` parameters with a fallback type + : !!(getCheckFlags(parameter) & CheckFlags.DeferredType) + ) { const contextualParameterType = getRestTypeAtPosition(context, len); assignParameterType(parameter, contextualParameterType); } @@ -31457,28 +32217,32 @@ namespace ts { function assignParameterType(parameter: Symbol, type?: Type) { const links = getSymbolLinks(parameter); if (!links.type) { - const declaration = parameter.valueDeclaration as ParameterDeclaration; - links.type = type || getWidenedTypeForVariableLikeDeclaration(declaration, /*includeOptionality*/ true); - if (declaration.name.kind !== SyntaxKind.Identifier) { + const declaration = parameter.valueDeclaration as ParameterDeclaration | undefined; + links.type = type || (declaration ? getWidenedTypeForVariableLikeDeclaration(declaration, /*reportErrors*/ true) : getTypeOfSymbol(parameter)); + if (declaration && declaration.name.kind !== SyntaxKind.Identifier) { // if inference didn't come up with anything but unknown, fall back to the binding pattern if present. if (links.type === unknownType) { links.type = getTypeFromBindingPattern(declaration.name); } - assignBindingElementTypes(declaration.name); + assignBindingElementTypes(declaration.name, links.type); } } + else if (type) { + Debug.assertEqual(links.type, type, "Parameter symbol already has a cached type which differs from newly assigned type"); + } } // When contextual typing assigns a type to a parameter that contains a binding pattern, we also need to push // the destructured type into the contained binding elements. - function assignBindingElementTypes(pattern: BindingPattern) { + function assignBindingElementTypes(pattern: BindingPattern, parentType: Type) { for (const element of pattern.elements) { if (!isOmittedExpression(element)) { + const type = getBindingElementTypeFromParentType(element, parentType); if (element.name.kind === SyntaxKind.Identifier) { - getSymbolLinks(getSymbolOfNode(element)).type = getTypeForBindingElement(element); + getSymbolLinks(getSymbolOfNode(element)).type = type; } else { - assignBindingElementTypes(element.name); + assignBindingElementTypes(element.name, type); } } } @@ -31835,53 +32599,54 @@ namespace ts { * * @param returnType - return type of the function, can be undefined if return type is not explicitly specified */ - function checkAllCodePathsInNonVoidFunctionReturnOrThrow(func: FunctionLikeDeclaration | MethodSignature, returnType: Type | undefined): void { - if (!produceDiagnostics) { - return; - } + function checkAllCodePathsInNonVoidFunctionReturnOrThrow(func: FunctionLikeDeclaration | MethodSignature, returnType: Type | undefined) { + addLazyDiagnostic(checkAllCodePathsInNonVoidFunctionReturnOrThrowDiagnostics); + return; - const functionFlags = getFunctionFlags(func); - const type = returnType && unwrapReturnType(returnType, functionFlags); + function checkAllCodePathsInNonVoidFunctionReturnOrThrowDiagnostics(): void { + const functionFlags = getFunctionFlags(func); + const type = returnType && unwrapReturnType(returnType, functionFlags); - // Functions with with an explicitly specified 'void' or 'any' return type don't need any return expressions. - if (type && maybeTypeOfKind(type, TypeFlags.Any | TypeFlags.Void)) { - return; - } + // Functions with with an explicitly specified 'void' or 'any' return type don't need any return expressions. + if (type && maybeTypeOfKind(type, TypeFlags.Any | TypeFlags.Void)) { + return; + } - // If all we have is a function signature, or an arrow function with an expression body, then there is nothing to check. - // also if HasImplicitReturn flag is not set this means that all codepaths in function body end with return or throw - if (func.kind === SyntaxKind.MethodSignature || nodeIsMissing(func.body) || func.body!.kind !== SyntaxKind.Block || !functionHasImplicitReturn(func)) { - return; - } + // If all we have is a function signature, or an arrow function with an expression body, then there is nothing to check. + // also if HasImplicitReturn flag is not set this means that all codepaths in function body end with return or throw + if (func.kind === SyntaxKind.MethodSignature || nodeIsMissing(func.body) || func.body!.kind !== SyntaxKind.Block || !functionHasImplicitReturn(func)) { + return; + } - const hasExplicitReturn = func.flags & NodeFlags.HasExplicitReturn; - const errorNode = getEffectiveReturnTypeNode(func) || func; + const hasExplicitReturn = func.flags & NodeFlags.HasExplicitReturn; + const errorNode = getEffectiveReturnTypeNode(func) || func; - if (type && type.flags & TypeFlags.Never) { - error(errorNode, Diagnostics.A_function_returning_never_cannot_have_a_reachable_end_point); - } - else if (type && !hasExplicitReturn) { - // minimal check: function has syntactic return type annotation and no explicit return statements in the body - // this function does not conform to the specification. - error(errorNode, Diagnostics.A_function_whose_declared_type_is_neither_void_nor_any_must_return_a_value); - } - else if (type && strictNullChecks && !isTypeAssignableTo(undefinedType, type)) { - error(errorNode, Diagnostics.Function_lacks_ending_return_statement_and_return_type_does_not_include_undefined); - } - else if (compilerOptions.noImplicitReturns) { - if (!type) { - // If return type annotation is omitted check if function has any explicit return statements. - // If it does not have any - its inferred return type is void - don't do any checks. - // Otherwise get inferred return type from function body and report error only if it is not void / anytype - if (!hasExplicitReturn) { - return; - } - const inferredReturnType = getReturnTypeOfSignature(getSignatureFromDeclaration(func)); - if (isUnwrappedReturnTypeVoidOrAny(func, inferredReturnType)) { - return; + if (type && type.flags & TypeFlags.Never) { + error(errorNode, Diagnostics.A_function_returning_never_cannot_have_a_reachable_end_point); + } + else if (type && !hasExplicitReturn) { + // minimal check: function has syntactic return type annotation and no explicit return statements in the body + // this function does not conform to the specification. + error(errorNode, Diagnostics.A_function_whose_declared_type_is_neither_void_nor_any_must_return_a_value); + } + else if (type && strictNullChecks && !isTypeAssignableTo(undefinedType, type)) { + error(errorNode, Diagnostics.Function_lacks_ending_return_statement_and_return_type_does_not_include_undefined); + } + else if (compilerOptions.noImplicitReturns) { + if (!type) { + // If return type annotation is omitted check if function has any explicit return statements. + // If it does not have any - its inferred return type is void - don't do any checks. + // Otherwise get inferred return type from function body and report error only if it is not void / anytype + if (!hasExplicitReturn) { + return; + } + const inferredReturnType = getReturnTypeOfSignature(getSignatureFromDeclaration(func)); + if (isUnwrappedReturnTypeVoidOrAny(func, inferredReturnType)) { + return; + } } + error(errorNode, Diagnostics.Not_all_code_paths_return_a_value); } - error(errorNode, Diagnostics.Not_all_code_paths_return_a_value); } } @@ -32165,65 +32930,67 @@ namespace ts { return undefinedWideningType; } - function checkAwaitExpression(node: AwaitExpression): Type { + function checkAwaitExpressionGrammar(node: AwaitExpression): void { // Grammar checking - if (produceDiagnostics) { - const container = getContainingFunctionOrClassStaticBlock(node); - if (container && isClassStaticBlockDeclaration(container)) { - error(node, Diagnostics.Await_expression_cannot_be_used_inside_a_class_static_block); - } - else if (!(node.flags & NodeFlags.AwaitContext)) { - if (isInTopLevelContext(node)) { - const sourceFile = getSourceFileOfNode(node); - if (!hasParseDiagnostics(sourceFile)) { - let span: TextSpan | undefined; - if (!isEffectiveExternalModule(sourceFile, compilerOptions)) { - if (!span) span = getSpanOfTokenAtPosition(sourceFile, node.pos); + const container = getContainingFunctionOrClassStaticBlock(node); + if (container && isClassStaticBlockDeclaration(container)) { + error(node, Diagnostics.Await_expression_cannot_be_used_inside_a_class_static_block); + } + else if (!(node.flags & NodeFlags.AwaitContext)) { + if (isInTopLevelContext(node)) { + const sourceFile = getSourceFileOfNode(node); + if (!hasParseDiagnostics(sourceFile)) { + let span: TextSpan | undefined; + if (!isEffectiveExternalModule(sourceFile, compilerOptions)) { + if (!span) span = getSpanOfTokenAtPosition(sourceFile, node.pos); + const diagnostic = createFileDiagnostic(sourceFile, span.start, span.length, + Diagnostics.await_expressions_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_has_no_imports_or_exports_Consider_adding_an_empty_export_to_make_this_file_a_module); + diagnostics.add(diagnostic); + } + span = getSpanOfTokenAtPosition(sourceFile, node.pos); + if (isNotTopLevelAwaitSupportedModuleKind(moduleKind, getSourceFileOfNode(node).impliedNodeFormat)) { + if(moduleKind !== ModuleKind.NodeNext) { + const suggestedKind = moduleKind === ModuleKind.Node12 ? ModuleKind.NodeNext : ModuleKind.ES2022; const diagnostic = createFileDiagnostic(sourceFile, span.start, span.length, - Diagnostics.await_expressions_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_has_no_imports_or_exports_Consider_adding_an_empty_export_to_make_this_file_a_module); + Diagnostics.The_0_setting_1_does_not_support_top_level_await_expressions_Consider_switching_to_2, "module", ModuleKind[moduleKind], ModuleKind[suggestedKind]); diagnostics.add(diagnostic); } - span = getSpanOfTokenAtPosition(sourceFile, node.pos); - if (isNotTopLevelAwaitSupportedModuleKind(moduleKind, getSourceFileOfNode(node).impliedNodeFormat)) { - if(moduleKind !== ModuleKind.NodeNext) { - const suggestedKind = moduleKind === ModuleKind.Node12 ? ModuleKind.NodeNext : ModuleKind.ES2022; - const diagnostic = createFileDiagnostic(sourceFile, span.start, span.length, - Diagnostics.The_0_setting_1_does_not_support_top_level_await_expressions_Consider_switching_to_2, "module", ModuleKind[moduleKind], ModuleKind[suggestedKind]); - diagnostics.add(diagnostic); - } - else { - const diagnostic = createFileDiagnostic(sourceFile, span.start, span.length, - Diagnostics._0_is_not_allowed_in_CommonJS_modules_Please_convert_to_ES_module, "Top-level 'await' expression"); - diagnostics.add(diagnostic); - } - } - if(languageVersion < ScriptTarget.ES2017) { + else { const diagnostic = createFileDiagnostic(sourceFile, span.start, span.length, - Diagnostics.The_0_setting_1_does_not_support_top_level_await_expressions_Consider_switching_to_2, "target", ScriptTarget[languageVersion], ScriptTarget[ScriptTarget.ES2017]); + Diagnostics._0_is_not_allowed_in_CommonJS_modules_Please_convert_to_ES_module, "Top-level 'await' expression"); diagnostics.add(diagnostic); } } - } - else { - // use of 'await' in non-async function - const sourceFile = getSourceFileOfNode(node); - if (!hasParseDiagnostics(sourceFile)) { - const span = getSpanOfTokenAtPosition(sourceFile, node.pos); - const diagnostic = createFileDiagnostic(sourceFile, span.start, span.length, Diagnostics.await_expressions_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules); - if (container && container.kind !== SyntaxKind.Constructor && (getFunctionFlags(container) & FunctionFlags.Async) === 0) { - const relatedInfo = createDiagnosticForNode(container, Diagnostics.Did_you_mean_to_mark_this_function_as_async); - addRelatedInfo(diagnostic, relatedInfo); - } + if(languageVersion < ScriptTarget.ES2017) { + const diagnostic = createFileDiagnostic(sourceFile, span.start, span.length, + Diagnostics.The_0_setting_1_does_not_support_top_level_await_expressions_Consider_switching_to_2, "target", ScriptTarget[languageVersion], ScriptTarget[ScriptTarget.ES2017]); diagnostics.add(diagnostic); } } } - - if (isInParameterInitializerBeforeContainingFunction(node)) { - error(node, Diagnostics.await_expressions_cannot_be_used_in_a_parameter_initializer); + else { + // use of 'await' in non-async function + const sourceFile = getSourceFileOfNode(node); + if (!hasParseDiagnostics(sourceFile)) { + const span = getSpanOfTokenAtPosition(sourceFile, node.pos); + const diagnostic = createFileDiagnostic(sourceFile, span.start, span.length, Diagnostics.await_expressions_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules); + if (container && container.kind !== SyntaxKind.Constructor && (getFunctionFlags(container) & FunctionFlags.Async) === 0) { + const relatedInfo = createDiagnosticForNode(container, Diagnostics.Did_you_mean_to_mark_this_function_as_async); + addRelatedInfo(diagnostic, relatedInfo); + } + diagnostics.add(diagnostic); + } } } + if (isInParameterInitializerBeforeContainingFunction(node)) { + error(node, Diagnostics.await_expressions_cannot_be_used_in_a_parameter_initializer); + } + } + + function checkAwaitExpression(node: AwaitExpression): Type { + addLazyDiagnostic(() => checkAwaitExpressionGrammar(node)); + const operandType = checkExpression(node.expression); const awaitedType = checkAwaitedType(operandType, /*withAlias*/ true, node, Diagnostics.Type_of_await_operand_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member); if (awaitedType === operandType && !isErrorType(awaitedType) && !(operandType.flags & TypeFlags.AnyOrUnknown)) { @@ -32259,7 +33026,7 @@ namespace ts { case SyntaxKind.MinusToken: case SyntaxKind.TildeToken: checkNonNullType(operandType, node.operand); - if (maybeTypeOfKind(operandType, TypeFlags.ESSymbolLike)) { + if (maybeTypeOfKindConsideringBaseConstraint(operandType, TypeFlags.ESSymbolLike)) { error(node.operand, Diagnostics.The_0_operator_cannot_be_applied_to_type_symbol, tokenToString(node.operator)); } if (node.operator === SyntaxKind.PlusToken) { @@ -32320,6 +33087,15 @@ namespace ts { return numberType; } + function maybeTypeOfKindConsideringBaseConstraint(type: Type, kind: TypeFlags): boolean { + if (maybeTypeOfKind(type, kind)) { + return true; + } + + const baseConstraint = getBaseConstraintOrType(type); + return !!baseConstraint && maybeTypeOfKind(baseConstraint, kind); + } + // Return true if type might be of the given kind. A union or intersection type might be of a given // kind if at least one constituent type is of the given kind. function maybeTypeOfKind(type: Type, kind: TypeFlags): boolean { @@ -32751,7 +33527,7 @@ namespace ts { if (operator === SyntaxKind.AmpersandAmpersandToken || operator === SyntaxKind.BarBarToken || operator === SyntaxKind.QuestionQuestionToken) { if (operator === SyntaxKind.AmpersandAmpersandToken) { const parent = walkUpParenthesizedExpressions(node.parent); - checkTestingKnownTruthyCallableOrAwaitableType(node.left, leftType, isIfStatement(parent) ? parent.thenStatement : undefined); + checkTestingKnownTruthyCallableOrAwaitableType(node.left, isIfStatement(parent) ? parent.thenStatement : undefined); } checkTruthinessOfType(leftType, node.left); } @@ -33103,8 +33879,8 @@ namespace ts { // Return true if there was no error, false if there was an error. function checkForDisallowedESSymbolOperand(operator: SyntaxKind): boolean { const offendingSymbolOperand = - maybeTypeOfKind(leftType, TypeFlags.ESSymbolLike) ? left : - maybeTypeOfKind(rightType, TypeFlags.ESSymbolLike) ? right : + maybeTypeOfKindConsideringBaseConstraint(leftType, TypeFlags.ESSymbolLike) ? left : + maybeTypeOfKindConsideringBaseConstraint(rightType, TypeFlags.ESSymbolLike) ? right : undefined; if (offendingSymbolOperand) { @@ -33132,7 +33908,11 @@ namespace ts { } function checkAssignmentOperator(valueType: Type): void { - if (produceDiagnostics && isAssignmentOperator(operator)) { + if (isAssignmentOperator(operator)) { + addLazyDiagnostic(checkAssignmentOperatorWorker); + } + + function checkAssignmentOperatorWorker() { // TypeScript 1.0 spec (April 2014): 4.17 // An assignment of the form // VarExpr = ValueExpr @@ -33253,16 +34033,7 @@ namespace ts { } function checkYieldExpression(node: YieldExpression): Type { - // Grammar checking - if (produceDiagnostics) { - if (!(node.flags & NodeFlags.YieldContext)) { - grammarErrorOnFirstToken(node, Diagnostics.A_yield_expression_is_only_allowed_in_a_generator_body); - } - - if (isInParameterInitializerBeforeContainingFunction(node)) { - error(node, Diagnostics.yield_expressions_cannot_be_used_in_a_parameter_initializer); - } - } + addLazyDiagnostic(checkYieldExpressionGrammar); const func = getContainingFunction(node); if (!func) return anyType; @@ -33313,19 +34084,31 @@ namespace ts { let type = getContextualIterationType(IterationTypeKind.Next, func); if (!type) { type = anyType; - if (produceDiagnostics && noImplicitAny && !expressionResultIsUnused(node)) { - const contextualType = getContextualType(node); - if (!contextualType || isTypeAny(contextualType)) { - error(node, Diagnostics.yield_expression_implicitly_results_in_an_any_type_because_its_containing_generator_lacks_a_return_type_annotation); + addLazyDiagnostic(() => { + if (noImplicitAny && !expressionResultIsUnused(node)) { + const contextualType = getContextualType(node); + if (!contextualType || isTypeAny(contextualType)) { + error(node, Diagnostics.yield_expression_implicitly_results_in_an_any_type_because_its_containing_generator_lacks_a_return_type_annotation); + } } - } + }); } return type; + + function checkYieldExpressionGrammar() { + if (!(node.flags & NodeFlags.YieldContext)) { + grammarErrorOnFirstToken(node, Diagnostics.A_yield_expression_is_only_allowed_in_a_generator_body); + } + + if (isInParameterInitializerBeforeContainingFunction(node)) { + error(node, Diagnostics.yield_expressions_cannot_be_used_in_a_parameter_initializer); + } + } } function checkConditionalExpression(node: ConditionalExpression, checkMode?: CheckMode): Type { - const type = checkTruthinessExpression(node.condition); - checkTestingKnownTruthyCallableOrAwaitableType(node.condition, type, node.whenTrue); + checkTruthinessExpression(node.condition); + checkTestingKnownTruthyCallableOrAwaitableType(node.condition, node.whenTrue); const type1 = checkExpression(node.whenTrue, checkMode); const type2 = checkExpression(node.whenFalse, checkMode); return getUnionType([type1, type2], UnionReduction.Subtype); @@ -33342,7 +34125,7 @@ namespace ts { const types = []; for (const span of node.templateSpans) { const type = checkExpression(span.expression); - if (maybeTypeOfKind(type, TypeFlags.ESSymbolLike)) { + if (maybeTypeOfKindConsideringBaseConstraint(type, TypeFlags.ESSymbolLike)) { error(span.expression, Diagnostics.Implicit_conversion_of_a_symbol_to_a_string_will_fail_at_runtime_Consider_wrapping_this_expression_in_String); } texts.push(span.literal.text); @@ -33388,11 +34171,11 @@ namespace ts { } function checkExpressionCached(node: Expression | QualifiedName, checkMode?: CheckMode): Type { + if (checkMode && checkMode !== CheckMode.Normal) { + return checkExpression(node, checkMode); + } const links = getNodeLinks(node); if (!links.resolvedType) { - if (checkMode && checkMode !== CheckMode.Normal) { - return checkExpression(node, checkMode); - } // When computing a type that we're going to cache, we need to ignore any ongoing control flow // analysis because variables may have transient types in indeterminable states. Moving flowLoopStart // to the top of the stack ensures all transient types are computed from a known point. @@ -33414,10 +34197,16 @@ namespace ts { isJSDocTypeAssertion(node); } - function checkDeclarationInitializer(declaration: HasExpressionInitializer, contextualType?: Type | undefined) { + function checkDeclarationInitializer( + declaration: HasExpressionInitializer, + checkMode: CheckMode, + contextualType?: Type | undefined + ) { const initializer = getEffectiveInitializer(declaration)!; const type = getQuickTypeOfExpression(initializer) || - (contextualType ? checkExpressionWithContextualType(initializer, contextualType, /*inferenceContext*/ undefined, CheckMode.Normal) : checkExpressionCached(initializer)); + (contextualType ? + checkExpressionWithContextualType(initializer, contextualType, /*inferenceContext*/ undefined, checkMode || CheckMode.Normal) + : checkExpressionCached(initializer, checkMode)); return isParameter(declaration) && declaration.name.kind === SyntaxKind.ArrayBindingPattern && isTupleType(type) && !type.target.hasRestElement && getTypeReferenceArity(type) < declaration.name.elements.length ? padTupleType(type, declaration.name) : type; @@ -33493,7 +34282,7 @@ namespace ts { function checkExpressionForMutableLocation(node: Expression, checkMode: CheckMode | undefined, contextualType?: Type, forceTuple?: boolean): Type { const type = checkExpression(node, checkMode, forceTuple); - return isConstContext(node) ? getRegularTypeOfLiteralType(type) : + return isConstContext(node) || isCommonJsExportedExpression(node) ? getRegularTypeOfLiteralType(type) : isTypeAssertion(node) ? type : getWidenedLiteralLikeTypeForContextualType(type, instantiateContextualType(arguments.length === 2 ? getContextualType(node) : contextualType, node)); } @@ -33753,7 +34542,7 @@ namespace ts { } function checkExpression(node: Expression | QualifiedName, checkMode?: CheckMode, forceTuple?: boolean): Type { - tracing?.push(tracing.Phase.Check, "checkExpression", { kind: node.kind, pos: node.pos, end: node.end }); + tracing?.push(tracing.Phase.Check, "checkExpression", { kind: node.kind, pos: node.pos, end: node.end, path: (node as TracingNode).tracingPath }); const saveCurrentNode = currentNode; currentNode = node; instantiationCount = 0; @@ -33876,6 +34665,8 @@ namespace ts { return checkAssertion(node as AssertionExpression); case SyntaxKind.NonNullExpression: return checkNonNullAssertion(node as NonNullExpression); + case SyntaxKind.ExpressionWithTypeArguments: + return checkExpressionWithTypeArguments(node as ExpressionWithTypeArguments); case SyntaxKind.MetaProperty: return checkMetaProperty(node as MetaProperty); case SyntaxKind.DeleteExpression: @@ -33920,6 +34711,7 @@ namespace ts { function checkTypeParameter(node: TypeParameterDeclaration) { // Grammar Checking + checkGrammarModifiers(node); if (node.expression) { grammarErrorOnFirstToken(node.expression, Diagnostics.Type_expected); } @@ -33937,9 +34729,19 @@ namespace ts { if (constraintType && defaultType) { checkTypeAssignableTo(defaultType, getTypeWithThisArgument(instantiateType(constraintType, makeUnaryTypeMapper(typeParameter, defaultType)), defaultType), node.default, Diagnostics.Type_0_does_not_satisfy_the_constraint_1); } - if (produceDiagnostics) { - checkTypeNameIsReserved(node.name, Diagnostics.Type_parameter_name_cannot_be_0); + if (node.parent.kind === SyntaxKind.InterfaceDeclaration || node.parent.kind === SyntaxKind.ClassDeclaration || node.parent.kind === SyntaxKind.TypeAliasDeclaration) { + const modifiers = getVarianceModifiers(typeParameter); + if (modifiers === ModifierFlags.In || modifiers === ModifierFlags.Out) { + const symbol = getSymbolOfNode(node.parent); + const source = createMarkerType(symbol, typeParameter, modifiers === ModifierFlags.Out ? markerSubType : markerSuperType); + const target = createMarkerType(symbol, typeParameter, modifiers === ModifierFlags.Out ? markerSuperType : markerSubType); + const saveVarianceTypeParameter = typeParameter; + varianceTypeParameter = typeParameter; + checkTypeAssignableTo(source, target, node, Diagnostics.Type_0_is_not_assignable_to_type_1_as_implied_by_variance_annotation); + varianceTypeParameter = saveVarianceTypeParameter; + } } + addLazyDiagnostic(() => checkTypeNameIsReserved(node.name, Diagnostics.Type_parameter_name_cannot_be_0)); } function checkParameter(node: ParameterDeclaration) { @@ -34111,6 +34913,7 @@ namespace ts { } checkTypeParameters(getEffectiveTypeParameterDeclarations(node)); + checkUnmatchedJSDocParameters(node); forEach(node.parameters, checkParameter); @@ -34119,7 +34922,9 @@ namespace ts { checkSourceElement(node.type); } - if (produceDiagnostics) { + addLazyDiagnostic(checkSignatureDeclarationDiagnostics); + + function checkSignatureDeclarationDiagnostics() { checkCollisionWithArgumentsInGeneratedCode(node); const returnTypeNode = getEffectiveReturnTypeNode(node); if (noImplicitAny && !returnTypeNode) { @@ -34349,9 +35154,7 @@ namespace ts { checkVariableLikeDeclaration(node); setNodeLinksForPrivateIdentifierScope(node); - if (isPrivateIdentifier(node.name) && hasStaticModifier(node) && node.initializer && languageVersion === ScriptTarget.ESNext && !compilerOptions.useDefineForClassFields) { - error(node.initializer, Diagnostics.Static_fields_with_private_names_can_t_have_initializers_when_the_useDefineForClassFields_flag_is_not_specified_with_a_target_of_esnext_Consider_adding_the_useDefineForClassFields_flag); - } + // property signatures already report "initializer not allowed in ambient context" elsewhere if (hasSyntacticModifier(node, ModifierFlags.Abstract) && node.kind === SyntaxKind.PropertyDeclaration && node.initializer) { error(node, Diagnostics.Property_0_cannot_have_an_initializer_because_it_is_marked_abstract, declarationNameToString(node.name)); @@ -34431,9 +35234,9 @@ namespace ts { return; } - if (!produceDiagnostics) { - return; - } + addLazyDiagnostic(checkConstructorDeclarationDiagnostics); + + return; function isInstancePropertyWithInitializerOrPrivateIdentifierProperty(n: Node): boolean { if (isPrivateIdentifierClassElementDeclaration(n)) { @@ -34444,57 +35247,88 @@ namespace ts { !!(n as PropertyDeclaration).initializer; } - // TS 1.0 spec (April 2014): 8.3.2 - // Constructors of classes with no extends clause may not contain super calls, whereas - // constructors of derived classes must contain at least one super call somewhere in their function body. - const containingClassDecl = node.parent as ClassDeclaration; - if (getClassExtendsHeritageElement(containingClassDecl)) { - captureLexicalThis(node.parent, containingClassDecl); - const classExtendsNull = classDeclarationExtendsNull(containingClassDecl); - const superCall = findFirstSuperCall(node.body!); - if (superCall) { - if (classExtendsNull) { - error(superCall, Diagnostics.A_constructor_cannot_contain_a_super_call_when_its_class_extends_null); - } - - // The first statement in the body of a constructor (excluding prologue directives) must be a super call - // if both of the following are true: - // - The containing class is a derived class. - // - The constructor declares parameter properties - // or the containing class declares instance member variables with initializers. - const superCallShouldBeFirst = - (getEmitScriptTarget(compilerOptions) !== ScriptTarget.ESNext || !useDefineForClassFields) && - (some((node.parent as ClassDeclaration).members, isInstancePropertyWithInitializerOrPrivateIdentifierProperty) || - some(node.parameters, p => hasSyntacticModifier(p, ModifierFlags.ParameterPropertyModifier))); - - // Skip past any prologue directives to find the first statement - // to ensure that it was a super call. - if (superCallShouldBeFirst) { - const statements = node.body!.statements; - let superCallStatement: ExpressionStatement | undefined; - - for (const statement of statements) { - if (statement.kind === SyntaxKind.ExpressionStatement && isSuperCall((statement as ExpressionStatement).expression)) { - superCallStatement = statement as ExpressionStatement; - break; - } - if (!isPrologueDirective(statement)) { - break; + function checkConstructorDeclarationDiagnostics() { + // TS 1.0 spec (April 2014): 8.3.2 + // Constructors of classes with no extends clause may not contain super calls, whereas + // constructors of derived classes must contain at least one super call somewhere in their function body. + const containingClassDecl = node.parent as ClassDeclaration; + if (getClassExtendsHeritageElement(containingClassDecl)) { + captureLexicalThis(node.parent, containingClassDecl); + const classExtendsNull = classDeclarationExtendsNull(containingClassDecl); + const superCall = findFirstSuperCall(node.body!); + if (superCall) { + if (classExtendsNull) { + error(superCall, Diagnostics.A_constructor_cannot_contain_a_super_call_when_its_class_extends_null); + } + + // A super call must be root-level in a constructor if both of the following are true: + // - The containing class is a derived class. + // - The constructor declares parameter properties + // or the containing class declares instance member variables with initializers. + + const superCallShouldBeRootLevel = + (getEmitScriptTarget(compilerOptions) !== ScriptTarget.ESNext || !useDefineForClassFields) && + (some((node.parent as ClassDeclaration).members, isInstancePropertyWithInitializerOrPrivateIdentifierProperty) || + some(node.parameters, p => hasSyntacticModifier(p, ModifierFlags.ParameterPropertyModifier))); + + if (superCallShouldBeRootLevel) { + // Until we have better flow analysis, it is an error to place the super call within any kind of block or conditional + // See GH #8277 + if (!superCallIsRootLevelInConstructor(superCall, node.body!)) { + error(superCall, Diagnostics.A_super_call_must_be_a_root_level_statement_within_a_constructor_of_a_derived_class_that_contains_initialized_properties_parameter_properties_or_private_identifiers); + } + // Skip past any prologue directives to check statements for referring to 'super' or 'this' before a super call + else { + let superCallStatement: ExpressionStatement | undefined; + + for (const statement of node.body!.statements) { + if (isExpressionStatement(statement) && isSuperCall(skipOuterExpressions(statement.expression))) { + superCallStatement = statement; + break; + } + if (!isPrologueDirective(statement) && nodeImmediatelyReferencesSuperOrThis(statement)) { + break; + } + } + + // Until we have better flow analysis, it is an error to place the super call within any kind of block or conditional + // See GH #8277 + if (superCallStatement === undefined) { + error(node, Diagnostics.A_super_call_must_be_the_first_statement_in_the_constructor_to_refer_to_super_or_this_when_a_derived_class_contains_initialized_properties_parameter_properties_or_private_identifiers); + } } } - if (!superCallStatement) { - error(node, Diagnostics.A_super_call_must_be_the_first_statement_in_the_constructor_when_a_class_contains_initialized_properties_parameter_properties_or_private_identifiers); - } + } + else if (!classExtendsNull) { + error(node, Diagnostics.Constructors_for_derived_classes_must_contain_a_super_call); } } - else if (!classExtendsNull) { - error(node, Diagnostics.Constructors_for_derived_classes_must_contain_a_super_call); - } } } + function superCallIsRootLevelInConstructor(superCall: Node, body: Block) { + const superCallParent = walkUpParenthesizedExpressions(superCall.parent); + return isExpressionStatement(superCallParent) && superCallParent.parent === body; + } + + function nodeImmediatelyReferencesSuperOrThis(node: Node): boolean { + if (node.kind === SyntaxKind.SuperKeyword || node.kind === SyntaxKind.ThisKeyword) { + return true; + } + + if (isThisContainerOrFunctionBlock(node)) { + return false; + } + + return !!forEachChild(node, nodeImmediatelyReferencesSuperOrThis); + } + function checkAccessorDeclaration(node: AccessorDeclaration) { - if (produceDiagnostics) { + addLazyDiagnostic(checkAccessorDeclarationDiagnostics); + checkSourceElement(node.body); + setNodeLinksForPrivateIdentifierScope(node); + + function checkAccessorDeclarationDiagnostics() { // Grammar checking accessors if (!checkGrammarFunctionLikeDeclaration(node) && !checkGrammarAccessor(node)) checkGrammarComputedPropertyName(node.name); @@ -34546,8 +35380,6 @@ namespace ts { checkAllCodePathsInNonVoidFunctionReturnOrThrow(node, returnType); } } - checkSourceElement(node.body); - setNodeLinksForPrivateIdentifierScope(node); } function checkMissingDeclaration(node: Node) { @@ -34600,11 +35432,13 @@ namespace ts { forEach(node.typeArguments, checkSourceElement); const type = getTypeFromTypeReference(node); if (!isErrorType(type)) { - if (node.typeArguments && produceDiagnostics) { - const typeParameters = getTypeParametersForTypeReference(node); - if (typeParameters) { - checkTypeArgumentConstraints(node, typeParameters); - } + if (node.typeArguments) { + addLazyDiagnostic(() => { + const typeParameters = getTypeParametersForTypeReference(node); + if (typeParameters) { + checkTypeArgumentConstraints(node, typeParameters); + } + }); } const symbol = getNodeLinks(node).resolvedSymbol; if (symbol) { @@ -34625,7 +35459,8 @@ namespace ts { function getTypeArgumentConstraint(node: TypeNode): Type | undefined { const typeReferenceNode = tryCast(node.parent, isTypeReferenceType); if (!typeReferenceNode) return undefined; - const typeParameters = getTypeParametersForTypeReference(typeReferenceNode)!; // TODO: GH#18217 + const typeParameters = getTypeParametersForTypeReference(typeReferenceNode); + if (!typeParameters) return undefined; const constraint = getConstraintOfTypeParameter(typeParameters[typeReferenceNode.typeArguments!.indexOf(node)]); return constraint && instantiateType(constraint, createTypeMapper(typeParameters, getEffectiveTypeArguments(typeReferenceNode, typeParameters))); } @@ -34636,7 +35471,9 @@ namespace ts { function checkTypeLiteral(node: TypeLiteralNode) { forEach(node.members, checkSourceElement); - if (produceDiagnostics) { + addLazyDiagnostic(checkTypeLiteralDiagnostics); + + function checkTypeLiteralDiagnostics() { const type = getTypeFromTypeLiteralOrFunctionOrConstructorTypeNode(node); checkIndexConstraints(type, type.symbol); checkTypeForDuplicateIndexSignatures(node); @@ -34796,6 +35633,16 @@ namespace ts { function checkImportType(node: ImportTypeNode) { checkSourceElement(node.argument); + + if (node.assertions) { + const override = getResolutionModeOverrideForClause(node.assertions.assertClause, grammarErrorOnNode); + if (override) { + if (getEmitModuleResolutionKind(compilerOptions) !== ModuleResolutionKind.Node12 && getEmitModuleResolutionKind(compilerOptions) !== ModuleResolutionKind.NodeNext) { + grammarErrorOnNode(node.assertions.assertClause, Diagnostics.Resolution_modes_are_only_supported_when_moduleResolution_is_node12_or_nodenext); + } + } + } + getTypeFromTypeNode(node); } @@ -34837,10 +35684,10 @@ namespace ts { } function checkFunctionOrConstructorSymbol(symbol: Symbol): void { - if (!produceDiagnostics) { - return; - } + addLazyDiagnostic(() => checkFunctionOrConstructorSymbolWorker(symbol)); + } + function checkFunctionOrConstructorSymbolWorker(symbol: Symbol): void { function getCanonicalOverload(overloads: Declaration[], implementation: FunctionLikeDeclaration | undefined): Declaration { // Consider the canonical set of flags to be the flags of the bodyDeclaration or the first declaration // Error on all deviations from this canonical set of flags @@ -35088,10 +35935,10 @@ namespace ts { } function checkExportsOnMergedDeclarations(node: Declaration): void { - if (!produceDiagnostics) { - return; - } + addLazyDiagnostic(() => checkExportsOnMergedDeclarationsWorker(node)); + } + function checkExportsOnMergedDeclarationsWorker(node: Declaration): void { // if localSymbol is defined on node then node itself is exported - check is required let symbol = node.localSymbol; if (!symbol) { @@ -35604,34 +36451,26 @@ namespace ts { return; } + let headMessage: DiagnosticMessage; let expectedReturnType: Type; - const headMessage = getDiagnosticHeadMessageForDecoratorResolution(node); - let errorInfo: DiagnosticMessageChain | undefined; switch (node.parent.kind) { case SyntaxKind.ClassDeclaration: + headMessage = Diagnostics.Decorator_function_return_type_0_is_not_assignable_to_type_1; const classSymbol = getSymbolOfNode(node.parent); const classConstructorType = getTypeOfSymbol(classSymbol); expectedReturnType = getUnionType([classConstructorType, voidType]); break; - case SyntaxKind.Parameter: - expectedReturnType = voidType; - errorInfo = chainDiagnosticMessages( - /*details*/ undefined, - Diagnostics.The_return_type_of_a_parameter_decorator_function_must_be_either_void_or_any); - - break; - case SyntaxKind.PropertyDeclaration: + case SyntaxKind.Parameter: + headMessage = Diagnostics.Decorator_function_return_type_is_0_but_is_expected_to_be_void_or_any; expectedReturnType = voidType; - errorInfo = chainDiagnosticMessages( - /*details*/ undefined, - Diagnostics.The_return_type_of_a_property_decorator_function_must_be_either_void_or_any); break; case SyntaxKind.MethodDeclaration: case SyntaxKind.GetAccessor: case SyntaxKind.SetAccessor: + headMessage = Diagnostics.Decorator_function_return_type_0_is_not_assignable_to_type_1; const methodType = getTypeOfNode(node.parent); const descriptorType = createTypedPropertyDescriptorType(methodType); expectedReturnType = getUnionType([descriptorType, voidType]); @@ -35645,8 +36484,7 @@ namespace ts { returnType, expectedReturnType, node, - headMessage, - () => errorInfo); + headMessage); } /** @@ -35654,21 +36492,32 @@ namespace ts { * marked as referenced to prevent import elision. */ function markTypeNodeAsReferenced(node: TypeNode) { - markEntityNameOrEntityExpressionAsReference(node && getEntityNameFromTypeNode(node)); + markEntityNameOrEntityExpressionAsReference(node && getEntityNameFromTypeNode(node), /*forDecoratorMetadata*/ false); } - function markEntityNameOrEntityExpressionAsReference(typeName: EntityNameOrEntityNameExpression | undefined) { + function markEntityNameOrEntityExpressionAsReference(typeName: EntityNameOrEntityNameExpression | undefined, forDecoratorMetadata: boolean) { if (!typeName) return; const rootName = getFirstIdentifier(typeName); const meaning = (typeName.kind === SyntaxKind.Identifier ? SymbolFlags.Type : SymbolFlags.Namespace) | SymbolFlags.Alias; const rootSymbol = resolveName(rootName, rootName.escapedText, meaning, /*nameNotFoundMessage*/ undefined, /*nameArg*/ undefined, /*isReference*/ true); - if (rootSymbol - && rootSymbol.flags & SymbolFlags.Alias - && symbolIsValue(rootSymbol) - && !isConstEnumOrConstEnumOnlyModule(resolveAlias(rootSymbol)) - && !getTypeOnlyAliasDeclaration(rootSymbol)) { - markAliasSymbolAsReferenced(rootSymbol); + if (rootSymbol && rootSymbol.flags & SymbolFlags.Alias) { + if (symbolIsValue(rootSymbol) + && !isConstEnumOrConstEnumOnlyModule(resolveAlias(rootSymbol)) + && !getTypeOnlyAliasDeclaration(rootSymbol)) { + markAliasSymbolAsReferenced(rootSymbol); + } + else if (forDecoratorMetadata + && compilerOptions.isolatedModules + && getEmitModuleKind(compilerOptions) >= ModuleKind.ES2015 + && !symbolIsValue(rootSymbol) + && !some(rootSymbol.declarations, isTypeOnlyImportOrExportDeclaration)) { + const diag = error(typeName, Diagnostics.A_type_referenced_in_a_decorated_signature_must_be_imported_with_import_type_or_a_namespace_import_when_isolatedModules_and_emitDecoratorMetadata_are_enabled); + const aliasDeclaration = find(rootSymbol.declarations || emptyArray, isAliasSymbolDeclaration); + if (aliasDeclaration) { + addRelatedInfo(diag, createDiagnosticForNode(aliasDeclaration, Diagnostics._0_was_imported_here, idText(rootName))); + } + } } } @@ -35682,7 +36531,7 @@ namespace ts { function markDecoratorMedataDataTypeNodeAsReferenced(node: TypeNode | undefined): void { const entityName = getEntityNameForDecoratorMetadata(node); if (entityName && isEntityName(entityName)) { - markEntityNameOrEntityExpressionAsReference(entityName); + markEntityNameOrEntityExpressionAsReference(entityName, /*forDecoratorMetadata*/ true); } } @@ -35817,7 +36666,9 @@ namespace ts { } function checkFunctionDeclaration(node: FunctionDeclaration): void { - if (produceDiagnostics) { + addLazyDiagnostic(checkFunctionDeclarationDiagnostics); + + function checkFunctionDeclarationDiagnostics() { checkFunctionOrMethodDeclaration(node); checkGrammarForGenerator(node); checkCollisionsForDeclarationName(node, node.name); @@ -35850,49 +36701,20 @@ namespace ts { function checkJSDocParameterTag(node: JSDocParameterTag) { checkSourceElement(node.typeExpression); - if (!getParameterSymbolFromJSDoc(node)) { - const decl = getHostSignatureFromJSDoc(node); - // don't issue an error for invalid hosts -- just functions -- - // and give a better error message when the host function mentions `arguments` - // but the tag doesn't have an array type - if (decl) { - const i = getJSDocTags(decl).filter(isJSDocParameterTag).indexOf(node); - if (i > -1 && i < decl.parameters.length && isBindingPattern(decl.parameters[i].name)) { - return; - } - if (!containsArgumentsReference(decl)) { - if (isQualifiedName(node.name)) { - error(node.name, - Diagnostics.Qualified_name_0_is_not_allowed_without_a_leading_param_object_1, - entityNameToString(node.name), - entityNameToString(node.name.left)); - } - else { - error(node.name, - Diagnostics.JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name, - idText(node.name)); - } - } - else if (findLast(getJSDocTags(decl), isJSDocParameterTag) === node && - node.typeExpression && node.typeExpression.type && - !isArrayType(getTypeFromTypeNode(node.typeExpression.type))) { - error(node.name, - Diagnostics.JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name_It_would_match_arguments_if_it_had_an_array_type, - idText(node.name.kind === SyntaxKind.QualifiedName ? node.name.right : node.name)); - } - } - } } - function checkJSDocPropertyTag(node: JSDocPropertyTag) { checkSourceElement(node.typeExpression); } function checkJSDocFunctionType(node: JSDocFunctionType): void { - if (produceDiagnostics && !node.type && !isJSDocConstructSignature(node)) { - reportImplicitAny(node, anyType); - } + addLazyDiagnostic(checkJSDocFunctionTypeImplicitAny); checkSignatureDeclaration(node); + + function checkJSDocFunctionTypeImplicitAny() { + if (!node.type && !isJSDocConstructSignature(node)) { + reportImplicitAny(node, anyType); + } + } } function checkJSDocImplementsTag(node: JSDocImplementsTag): void { @@ -35988,20 +36810,7 @@ namespace ts { checkSourceElement(body); checkAllCodePathsInNonVoidFunctionReturnOrThrow(node, getReturnTypeFromAnnotation(node)); - if (produceDiagnostics && !getEffectiveReturnTypeNode(node)) { - // Report an implicit any error if there is no body, no explicit return type, and node is not a private method - // in an ambient context - if (nodeIsMissing(body) && !isPrivateWithinAmbient(node)) { - reportImplicitAny(node, anyType); - } - - if (functionFlags & FunctionFlags.Generator && nodeIsPresent(body)) { - // A generator with a body and no type annotation can still cause errors. It can error if the - // yielded values have no common supertype, or it can give an implicit any error if it has no - // yielded values. The only way to trigger these errors is to try checking its return type. - getReturnTypeOfSignature(getSignatureFromDeclaration(node)); - } - } + addLazyDiagnostic(checkFunctionOrMethodDeclarationDiagnostics); // A js function declaration can have a @type tag instead of a return type node, but that type must have a call signature if (isInJSFile(node)) { @@ -36010,11 +36819,30 @@ namespace ts { error(typeTag.typeExpression.type, Diagnostics.The_type_of_a_function_declaration_must_match_the_function_s_signature); } } + + function checkFunctionOrMethodDeclarationDiagnostics() { + if (!getEffectiveReturnTypeNode(node)) { + // Report an implicit any error if there is no body, no explicit return type, and node is not a private method + // in an ambient context + if (nodeIsMissing(body) && !isPrivateWithinAmbient(node)) { + reportImplicitAny(node, anyType); + } + + if (functionFlags & FunctionFlags.Generator && nodeIsPresent(body)) { + // A generator with a body and no type annotation can still cause errors. It can error if the + // yielded values have no common supertype, or it can give an implicit any error if it has no + // yielded values. The only way to trigger these errors is to try checking its return type. + getReturnTypeOfSignature(getSignatureFromDeclaration(node)); + } + } + } } function registerForUnusedIdentifiersCheck(node: PotentiallyUnusedIdentifier): void { - // May be in a call such as getTypeOfNode that happened to call this. But potentiallyUnusedIdentifiers is only defined in the scope of `checkSourceFile`. - if (produceDiagnostics) { + addLazyDiagnostic(registerForUnusedIdentifiersCheckDiagnostics); + + function registerForUnusedIdentifiersCheckDiagnostics() { + // May be in a call such as getTypeOfNode that happened to call this. But potentiallyUnusedIdentifiers is only defined in the scope of `checkSourceFile`. const sourceFile = getSourceFileOfNode(node); let potentiallyUnusedIdentifiers = allPotentiallyUnusedIdentifiers.get(sourceFile.path); if (!potentiallyUnusedIdentifiers) { @@ -36651,7 +37479,8 @@ namespace ts { // check private/protected variable access const parent = node.parent.parent; - const parentType = getTypeForBindingElementParent(parent); + const parentCheckMode = node.dotDotDotToken ? CheckMode.RestBindingElement : CheckMode.Normal; + const parentType = getTypeForBindingElementParent(parent, parentCheckMode); const name = node.propertyName || node.name; if (parentType && !isBindingPattern(name)) { const exprType = getLiteralTypeFromPropertyName(name); @@ -36687,7 +37516,7 @@ namespace ts { // Don't validate for-in initializer as it is already an error const widenedType = getWidenedTypeForVariableLikeDeclaration(node); if (needCheckInitializer) { - const initializerType = checkExpressionCached(node.initializer!); + const initializerType = checkExpressionCached(node.initializer); if (strictNullChecks && needCheckWidenedType) { checkNonNullNonVoidType(initializerType, node); } @@ -36709,7 +37538,7 @@ namespace ts { } // For a commonjs `const x = require`, validate the alias and exit const symbol = getSymbolOfNode(node); - if (symbol.flags & SymbolFlags.Alias && isRequireVariableDeclaration(node)) { + if (symbol.flags & SymbolFlags.Alias && isVariableDeclarationInitializedToBareOrAccessedRequire(node)) { checkAliasSymbol(node); return; } @@ -36803,7 +37632,7 @@ namespace ts { } function checkVariableDeclaration(node: VariableDeclaration) { - tracing?.push(tracing.Phase.Check, "checkVariableDeclaration", { kind: node.kind, pos: node.pos, end: node.end }); + tracing?.push(tracing.Phase.Check, "checkVariableDeclaration", { kind: node.kind, pos: node.pos, end: node.end, path: (node as TracingNode).tracingPath }); checkGrammarVariableDeclaration(node); checkVariableLikeDeclaration(node); tracing?.pop(); @@ -36830,8 +37659,8 @@ namespace ts { function checkIfStatement(node: IfStatement) { // Grammar checking checkGrammarStatementInAmbientContext(node); - const type = checkTruthinessExpression(node.expression); - checkTestingKnownTruthyCallableOrAwaitableType(node.expression, type, node.thenStatement); + checkTruthinessExpression(node.expression); + checkTestingKnownTruthyCallableOrAwaitableType(node.expression, node.thenStatement); checkSourceElement(node.thenStatement); if (node.thenStatement.kind === SyntaxKind.EmptyStatement) { @@ -36841,48 +37670,58 @@ namespace ts { checkSourceElement(node.elseStatement); } - function checkTestingKnownTruthyCallableOrAwaitableType(condExpr: Expression, type: Type, body?: Statement | Expression) { + function checkTestingKnownTruthyCallableOrAwaitableType(condExpr: Expression, body?: Statement | Expression) { if (!strictNullChecks) return; - if (getFalsyFlags(type)) return; - - const location = isBinaryExpression(condExpr) ? condExpr.right : condExpr; - if (isPropertyAccessExpression(location) && isTypeAssertion(location.expression)) { - return; - } - const testedNode = isIdentifier(location) ? location - : isPropertyAccessExpression(location) ? location.name - : isBinaryExpression(location) && isIdentifier(location.right) ? location.right - : undefined; - - // While it technically should be invalid for any known-truthy value - // to be tested, we de-scope to functions and Promises unreferenced in - // the block as a heuristic to identify the most common bugs. There - // are too many false positives for values sourced from type - // definitions without strictNullChecks otherwise. - const callSignatures = getSignaturesOfType(type, SignatureKind.Call); - const isPromise = !!getAwaitedTypeOfPromise(type); - if (callSignatures.length === 0 && !isPromise) { - return; - } - - const testedSymbol = testedNode && getSymbolAtLocation(testedNode); - if (!testedSymbol && !isPromise) { - return; - } + helper(condExpr, body); + while (isBinaryExpression(condExpr) && condExpr.operatorToken.kind === SyntaxKind.BarBarToken) { + condExpr = condExpr.left; + helper(condExpr, body); + } + + function helper(condExpr: Expression, body: Expression | Statement | undefined) { + const location = isBinaryExpression(condExpr) && + (condExpr.operatorToken.kind === SyntaxKind.BarBarToken || condExpr.operatorToken.kind === SyntaxKind.AmpersandAmpersandToken) + ? condExpr.right + : condExpr; + if (isModuleExportsAccessExpression(location)) return; + const type = checkTruthinessExpression(location); + const isPropertyExpressionCast = isPropertyAccessExpression(location) && isTypeAssertion(location.expression); + if (getFalsyFlags(type) || isPropertyExpressionCast) return; + + // While it technically should be invalid for any known-truthy value + // to be tested, we de-scope to functions and Promises unreferenced in + // the block as a heuristic to identify the most common bugs. There + // are too many false positives for values sourced from type + // definitions without strictNullChecks otherwise. + const callSignatures = getSignaturesOfType(type, SignatureKind.Call); + const isPromise = !!getAwaitedTypeOfPromise(type); + if (callSignatures.length === 0 && !isPromise) { + return; + } - const isUsed = testedSymbol && isBinaryExpression(condExpr.parent) && isSymbolUsedInBinaryExpressionChain(condExpr.parent, testedSymbol) - || testedSymbol && body && isSymbolUsedInConditionBody(condExpr, body, testedNode, testedSymbol); - if (!isUsed) { - if (isPromise) { - errorAndMaybeSuggestAwait( - location, - /*maybeMissingAwait*/ true, - Diagnostics.This_condition_will_always_return_true_since_this_0_is_always_defined, - getTypeNameForErrorDisplay(type)); + const testedNode = isIdentifier(location) ? location + : isPropertyAccessExpression(location) ? location.name + : isBinaryExpression(location) && isIdentifier(location.right) ? location.right + : undefined; + const testedSymbol = testedNode && getSymbolAtLocation(testedNode); + if (!testedSymbol && !isPromise) { + return; } - else { - error(location, Diagnostics.This_condition_will_always_return_true_since_this_function_is_always_defined_Did_you_mean_to_call_it_instead); + + const isUsed = testedSymbol && isBinaryExpression(condExpr.parent) && isSymbolUsedInBinaryExpressionChain(condExpr.parent, testedSymbol) + || testedSymbol && body && isSymbolUsedInConditionBody(condExpr, body, testedNode, testedSymbol); + if (!isUsed) { + if (isPromise) { + errorAndMaybeSuggestAwait( + location, + /*maybeMissingAwait*/ true, + Diagnostics.This_condition_will_always_return_true_since_this_0_is_always_defined, + getTypeNameForErrorDisplay(type)); + } + else { + error(location, Diagnostics.This_condition_will_always_return_true_since_this_function_is_always_defined_Did_you_mean_to_call_it_instead); + } } } } @@ -37979,26 +38818,32 @@ namespace ts { } } - if (produceDiagnostics && clause.kind === SyntaxKind.CaseClause) { - // TypeScript 1.0 spec (April 2014): 5.9 - // In a 'switch' statement, each 'case' expression must be of a type that is comparable - // to or from the type of the 'switch' expression. - let caseType = checkExpression(clause.expression); - const caseIsLiteral = isLiteralType(caseType); - let comparedExpressionType = expressionType; - if (!caseIsLiteral || !expressionIsLiteral) { - caseType = caseIsLiteral ? getBaseTypeOfLiteralType(caseType) : caseType; - comparedExpressionType = getBaseTypeOfLiteralType(expressionType); - } - if (!isTypeEqualityComparableTo(comparedExpressionType, caseType)) { - // expressionType is not comparable to caseType, try the reversed check and report errors if it fails - checkTypeComparableTo(caseType, comparedExpressionType, clause.expression, /*headMessage*/ undefined); - } + if (clause.kind === SyntaxKind.CaseClause) { + addLazyDiagnostic(createLazyCaseClauseDiagnostics(clause)); } forEach(clause.statements, checkSourceElement); if (compilerOptions.noFallthroughCasesInSwitch && clause.fallthroughFlowNode && isReachableFlowNode(clause.fallthroughFlowNode)) { error(clause, Diagnostics.Fallthrough_case_in_switch); } + + function createLazyCaseClauseDiagnostics(clause: CaseClause) { + return () => { + // TypeScript 1.0 spec (April 2014): 5.9 + // In a 'switch' statement, each 'case' expression must be of a type that is comparable + // to or from the type of the 'switch' expression. + let caseType = checkExpression(clause.expression); + const caseIsLiteral = isLiteralType(caseType); + let comparedExpressionType = expressionType; + if (!caseIsLiteral || !expressionIsLiteral) { + caseType = caseIsLiteral ? getBaseTypeOfLiteralType(caseType) : caseType; + comparedExpressionType = getBaseTypeOfLiteralType(expressionType); + } + if (!isTypeEqualityComparableTo(comparedExpressionType, caseType)) { + // expressionType is not comparable to caseType, try the reversed check and report errors if it fails + checkTypeComparableTo(caseType, comparedExpressionType, clause.expression, /*headMessage*/ undefined); + } + }; + } }); if (node.caseBlock.locals) { registerForUnusedIdentifiersCheck(node.caseBlock); @@ -38049,7 +38894,7 @@ namespace ts { const declaration = catchClause.variableDeclaration; const typeNode = getEffectiveTypeAnnotationNode(getRootDeclaration(declaration)); if (typeNode) { - const type = getTypeForVariableLikeDeclaration(declaration, /*includeOptionality*/ false); + const type = getTypeForVariableLikeDeclaration(declaration, /*includeOptionality*/ false, CheckMode.Normal); if (type && !(type.flags & TypeFlags.AnyOrUnknown)) { grammarErrorOnFirstToken(typeNode, Diagnostics.Catch_clause_variable_type_annotation_must_be_any_or_unknown_if_specified); } @@ -38178,31 +39023,76 @@ namespace ts { } } + function checkUnmatchedJSDocParameters(node: SignatureDeclaration) { + const jsdocParameters = filter(getJSDocTags(node), isJSDocParameterTag); + if (!length(jsdocParameters)) return; + + const isJs = isInJSFile(node); + const parameters = new Set<__String>(); + const excludedParameters = new Set(); + forEach(node.parameters, ({ name }, index) => { + if (isIdentifier(name)) { + parameters.add(name.escapedText); + } + if (isBindingPattern(name)) { + excludedParameters.add(index); + } + }); + + const containsArguments = containsArgumentsReference(node); + if (containsArguments) { + const lastJSDocParam = lastOrUndefined(jsdocParameters); + if (isJs && lastJSDocParam && isIdentifier(lastJSDocParam.name) && lastJSDocParam.typeExpression && + lastJSDocParam.typeExpression.type && !parameters.has(lastJSDocParam.name.escapedText) && !isArrayType(getTypeFromTypeNode(lastJSDocParam.typeExpression.type))) { + error(lastJSDocParam.name, Diagnostics.JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name_It_would_match_arguments_if_it_had_an_array_type, idText(lastJSDocParam.name)); + } + } + else { + forEach(jsdocParameters, ({ name }, index) => { + if (excludedParameters.has(index) || isIdentifier(name) && parameters.has(name.escapedText)) { + return; + } + if (isQualifiedName(name)) { + if (isJs) { + error(name, Diagnostics.Qualified_name_0_is_not_allowed_without_a_leading_param_object_1, entityNameToString(name), entityNameToString(name.left)); + } + } + else { + errorOrSuggestion(isJs, name, Diagnostics.JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name, idText(name)); + } + }); + } + } + /** * Check each type parameter and check that type parameters have no duplicate type parameter declarations */ function checkTypeParameters(typeParameterDeclarations: readonly TypeParameterDeclaration[] | undefined) { + let seenDefault = false; if (typeParameterDeclarations) { - let seenDefault = false; for (let i = 0; i < typeParameterDeclarations.length; i++) { const node = typeParameterDeclarations[i]; checkTypeParameter(node); - if (produceDiagnostics) { - if (node.default) { - seenDefault = true; - checkTypeParametersNotReferenced(node.default, typeParameterDeclarations, i); - } - else if (seenDefault) { - error(node, Diagnostics.Required_type_parameters_may_not_follow_optional_type_parameters); - } - for (let j = 0; j < i; j++) { - if (typeParameterDeclarations[j].symbol === node.symbol) { - error(node.name, Diagnostics.Duplicate_identifier_0, declarationNameToString(node.name)); - } + addLazyDiagnostic(createCheckTypeParameterDiagnostic(node, i)); + } + } + + function createCheckTypeParameterDiagnostic(node: TypeParameterDeclaration, i: number) { + return () => { + if (node.default) { + seenDefault = true; + checkTypeParametersNotReferenced(node.default, typeParameterDeclarations!, i); + } + else if (seenDefault) { + error(node, Diagnostics.Required_type_parameters_may_not_follow_optional_type_parameters); + } + for (let j = 0; j < i; j++) { + if (typeParameterDeclarations![j].symbol === node.symbol) { + error(node.name, Diagnostics.Duplicate_identifier_0, declarationNameToString(node.name)); } } - } + }; } } @@ -38352,54 +39242,56 @@ namespace ts { } const baseTypes = getBaseTypes(type); - if (baseTypes.length && produceDiagnostics) { - const baseType = baseTypes[0]; - const baseConstructorType = getBaseConstructorTypeOfClass(type); - const staticBaseType = getApparentType(baseConstructorType); - checkBaseTypeAccessibility(staticBaseType, baseTypeNode); - checkSourceElement(baseTypeNode.expression); - if (some(baseTypeNode.typeArguments)) { - forEach(baseTypeNode.typeArguments, checkSourceElement); - for (const constructor of getConstructorsForTypeArguments(staticBaseType, baseTypeNode.typeArguments, baseTypeNode)) { - if (!checkTypeArgumentConstraints(baseTypeNode, constructor.typeParameters!)) { - break; + if (baseTypes.length) { + addLazyDiagnostic(() => { + const baseType = baseTypes[0]; + const baseConstructorType = getBaseConstructorTypeOfClass(type); + const staticBaseType = getApparentType(baseConstructorType); + checkBaseTypeAccessibility(staticBaseType, baseTypeNode); + checkSourceElement(baseTypeNode.expression); + if (some(baseTypeNode.typeArguments)) { + forEach(baseTypeNode.typeArguments, checkSourceElement); + for (const constructor of getConstructorsForTypeArguments(staticBaseType, baseTypeNode.typeArguments, baseTypeNode)) { + if (!checkTypeArgumentConstraints(baseTypeNode, constructor.typeParameters!)) { + break; + } } } - } - const baseWithThis = getTypeWithThisArgument(baseType, type.thisType); - if (!checkTypeAssignableTo(typeWithThis, baseWithThis, /*errorNode*/ undefined)) { - issueMemberSpecificError(node, typeWithThis, baseWithThis, Diagnostics.Class_0_incorrectly_extends_base_class_1); - } - else { - // Report static side error only when instance type is assignable - checkTypeAssignableTo(staticType, getTypeWithoutSignatures(staticBaseType), node.name || node, - Diagnostics.Class_static_side_0_incorrectly_extends_base_class_static_side_1); - } - if (baseConstructorType.flags & TypeFlags.TypeVariable) { - if (!isMixinConstructorType(staticType)) { - error(node.name || node, Diagnostics.A_mixin_class_must_have_a_constructor_with_a_single_rest_parameter_of_type_any); + const baseWithThis = getTypeWithThisArgument(baseType, type.thisType); + if (!checkTypeAssignableTo(typeWithThis, baseWithThis, /*errorNode*/ undefined)) { + issueMemberSpecificError(node, typeWithThis, baseWithThis, Diagnostics.Class_0_incorrectly_extends_base_class_1); } else { - const constructSignatures = getSignaturesOfType(baseConstructorType, SignatureKind.Construct); - if (constructSignatures.some(signature => signature.flags & SignatureFlags.Abstract) && !hasSyntacticModifier(node, ModifierFlags.Abstract)) { - error(node.name || node, Diagnostics.A_mixin_class_that_extends_from_a_type_variable_containing_an_abstract_construct_signature_must_also_be_declared_abstract); + // Report static side error only when instance type is assignable + checkTypeAssignableTo(staticType, getTypeWithoutSignatures(staticBaseType), node.name || node, + Diagnostics.Class_static_side_0_incorrectly_extends_base_class_static_side_1); + } + if (baseConstructorType.flags & TypeFlags.TypeVariable) { + if (!isMixinConstructorType(staticType)) { + error(node.name || node, Diagnostics.A_mixin_class_must_have_a_constructor_with_a_single_rest_parameter_of_type_any); + } + else { + const constructSignatures = getSignaturesOfType(baseConstructorType, SignatureKind.Construct); + if (constructSignatures.some(signature => signature.flags & SignatureFlags.Abstract) && !hasSyntacticModifier(node, ModifierFlags.Abstract)) { + error(node.name || node, Diagnostics.A_mixin_class_that_extends_from_a_type_variable_containing_an_abstract_construct_signature_must_also_be_declared_abstract); + } } } - } - if (!(staticBaseType.symbol && staticBaseType.symbol.flags & SymbolFlags.Class) && !(baseConstructorType.flags & TypeFlags.TypeVariable)) { - // When the static base type is a "class-like" constructor function (but not actually a class), we verify - // that all instantiated base constructor signatures return the same type. - const constructors = getInstantiatedConstructorsForTypeArguments(staticBaseType, baseTypeNode.typeArguments, baseTypeNode); - if (forEach(constructors, sig => !isJSConstructor(sig.declaration) && !isTypeIdenticalTo(getReturnTypeOfSignature(sig), baseType))) { - error(baseTypeNode.expression, Diagnostics.Base_constructors_must_all_have_the_same_return_type); + if (!(staticBaseType.symbol && staticBaseType.symbol.flags & SymbolFlags.Class) && !(baseConstructorType.flags & TypeFlags.TypeVariable)) { + // When the static base type is a "class-like" constructor function (but not actually a class), we verify + // that all instantiated base constructor signatures return the same type. + const constructors = getInstantiatedConstructorsForTypeArguments(staticBaseType, baseTypeNode.typeArguments, baseTypeNode); + if (forEach(constructors, sig => !isJSConstructor(sig.declaration) && !isTypeIdenticalTo(getReturnTypeOfSignature(sig), baseType))) { + error(baseTypeNode.expression, Diagnostics.Base_constructors_must_all_have_the_same_return_type); + } } - } - checkKindsOfPropertyMemberOverrides(type, baseType); + checkKindsOfPropertyMemberOverrides(type, baseType); + }); } } - checkMembersForMissingOverrideModifier(node, type, typeWithThis, staticType); + checkMembersForOverrideModifier(node, type, typeWithThis, staticType); const implementedTypeNodes = getEffectiveImplementsTypeNodes(node); if (implementedTypeNodes) { @@ -38408,36 +39300,39 @@ namespace ts { error(typeRefNode.expression, Diagnostics.A_class_can_only_implement_an_identifier_Slashqualified_name_with_optional_type_arguments); } checkTypeReferenceNode(typeRefNode); - if (produceDiagnostics) { - const t = getReducedType(getTypeFromTypeNode(typeRefNode)); - if (!isErrorType(t)) { - if (isValidBaseType(t)) { - const genericDiag = t.symbol && t.symbol.flags & SymbolFlags.Class ? - Diagnostics.Class_0_incorrectly_implements_class_1_Did_you_mean_to_extend_1_and_inherit_its_members_as_a_subclass : - Diagnostics.Class_0_incorrectly_implements_interface_1; - const baseWithThis = getTypeWithThisArgument(t, type.thisType); - if (!checkTypeAssignableTo(typeWithThis, baseWithThis, /*errorNode*/ undefined)) { - issueMemberSpecificError(node, typeWithThis, baseWithThis, genericDiag); - } - } - else { - error(typeRefNode, Diagnostics.A_class_can_only_implement_an_object_type_or_intersection_of_object_types_with_statically_known_members); - } - } - } + addLazyDiagnostic(createImplementsDiagnostics(typeRefNode)); } } - if (produceDiagnostics) { + addLazyDiagnostic(() => { checkIndexConstraints(type, symbol); checkIndexConstraints(staticType, symbol, /*isStaticIndex*/ true); checkTypeForDuplicateIndexSignatures(node); checkPropertyInitialization(node); + }); + + function createImplementsDiagnostics(typeRefNode: ExpressionWithTypeArguments) { + return () => { + const t = getReducedType(getTypeFromTypeNode(typeRefNode)); + if (!isErrorType(t)) { + if (isValidBaseType(t)) { + const genericDiag = t.symbol && t.symbol.flags & SymbolFlags.Class ? + Diagnostics.Class_0_incorrectly_implements_class_1_Did_you_mean_to_extend_1_and_inherit_its_members_as_a_subclass : + Diagnostics.Class_0_incorrectly_implements_interface_1; + const baseWithThis = getTypeWithThisArgument(t, type.thisType); + if (!checkTypeAssignableTo(typeWithThis, baseWithThis, /*errorNode*/ undefined)) { + issueMemberSpecificError(node, typeWithThis, baseWithThis, genericDiag); + } + } + else { + error(typeRefNode, Diagnostics.A_class_can_only_implement_an_object_type_or_intersection_of_object_types_with_statically_known_members); + } + } + }; } } - function checkMembersForMissingOverrideModifier(node: ClassLikeDeclaration, type: InterfaceType, typeWithThis: Type, staticType: ObjectType) { - const nodeInAmbientContext = !!(node.flags & NodeFlags.Ambient); + function checkMembersForOverrideModifier(node: ClassLikeDeclaration, type: InterfaceType, typeWithThis: Type, staticType: ObjectType) { const baseTypeNode = getEffectiveBaseTypeNode(node); const baseTypes = baseTypeNode && getBaseTypes(type); const baseWithThis = baseTypes?.length ? getTypeWithThisArgument(first(baseTypes), type.thisType) : undefined; @@ -38451,53 +39346,130 @@ namespace ts { if (isConstructorDeclaration(member)) { forEach(member.parameters, param => { if (isParameterPropertyDeclaration(param, member)) { - checkClassMember(param, /*memberIsParameterProperty*/ true); + checkExistingMemberForOverrideModifier( + node, + staticType, + baseStaticType, + baseWithThis, + type, + typeWithThis, + param, + /* memberIsParameterProperty */ true + ); } }); } - checkClassMember(member); + checkExistingMemberForOverrideModifier( + node, + staticType, + baseStaticType, + baseWithThis, + type, + typeWithThis, + member, + /* memberIsParameterProperty */ false, + ); } + } - function checkClassMember(member: ClassElement | ParameterPropertyDeclaration, memberIsParameterProperty?: boolean) { - const hasOverride = hasOverrideModifier(member); - const hasStatic = isStatic(member); - const isJs = isInJSFile(member); - if (baseWithThis && (hasOverride || compilerOptions.noImplicitOverride)) { - const declaredProp = member.name && getSymbolAtLocation(member.name) || getSymbolAtLocation(member); - if (!declaredProp) { - return; - } - - const thisType = hasStatic ? staticType : typeWithThis; - const baseType = hasStatic ? baseStaticType : baseWithThis; - const prop = getPropertyOfType(thisType, declaredProp.escapedName); - const baseProp = getPropertyOfType(baseType, declaredProp.escapedName); + /** + * @param member Existing member node to be checked. + * Note: `member` cannot be a synthetic node. + */ + function checkExistingMemberForOverrideModifier( + node: ClassLikeDeclaration, + staticType: ObjectType, + baseStaticType: Type, + baseWithThis: Type | undefined, + type: InterfaceType, + typeWithThis: Type, + member: ClassElement | ParameterPropertyDeclaration, + memberIsParameterProperty: boolean, + reportErrors = true, + ): MemberOverrideStatus { + const declaredProp = member.name + && getSymbolAtLocation(member.name) + || getSymbolAtLocation(member); + if (!declaredProp) { + return MemberOverrideStatus.Ok; + } + + return checkMemberForOverrideModifier( + node, + staticType, + baseStaticType, + baseWithThis, + type, + typeWithThis, + hasOverrideModifier(member), + hasAbstractModifier(member), + isStatic(member), + memberIsParameterProperty, + symbolName(declaredProp), + reportErrors ? member : undefined, + ); + } - const baseClassName = typeToString(baseWithThis); - if (prop && !baseProp && hasOverride) { - const suggestion = getSuggestedSymbolForNonexistentClassMember(symbolName(declaredProp), baseType); + /** + * Checks a class member declaration for either a missing or an invalid `override` modifier. + * Note: this function can be used for speculative checking, + * i.e. checking a member that does not yet exist in the program. + * An example of that would be to call this function in a completions scenario, + * when offering a method declaration as completion. + * @param errorNode The node where we should report an error, or undefined if we should not report errors. + */ + function checkMemberForOverrideModifier( + node: ClassLikeDeclaration, + staticType: ObjectType, + baseStaticType: Type, + baseWithThis: Type | undefined, + type: InterfaceType, + typeWithThis: Type, + memberHasOverrideModifier: boolean, + memberHasAbstractModifier: boolean, + memberIsStatic: boolean, + memberIsParameterProperty: boolean, + memberName: string, + errorNode?: Node, + ): MemberOverrideStatus { + const isJs = isInJSFile(node); + const nodeInAmbientContext = !!(node.flags & NodeFlags.Ambient); + if (baseWithThis && (memberHasOverrideModifier || compilerOptions.noImplicitOverride)) { + const memberEscapedName = escapeLeadingUnderscores(memberName); + const thisType = memberIsStatic ? staticType : typeWithThis; + const baseType = memberIsStatic ? baseStaticType : baseWithThis; + const prop = getPropertyOfType(thisType, memberEscapedName); + const baseProp = getPropertyOfType(baseType, memberEscapedName); + + const baseClassName = typeToString(baseWithThis); + if (prop && !baseProp && memberHasOverrideModifier) { + if (errorNode) { + const suggestion = getSuggestedSymbolForNonexistentClassMember(memberName, baseType); // Again, using symbol name: note that's different from `symbol.escapedName` suggestion ? error( - member, + errorNode, isJs ? Diagnostics.This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base_class_0_Did_you_mean_1 : Diagnostics.This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0_Did_you_mean_1, baseClassName, symbolToString(suggestion)) : error( - member, + errorNode, isJs ? Diagnostics.This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base_class_0 : Diagnostics.This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0, baseClassName); } - else if (prop && baseProp?.declarations && compilerOptions.noImplicitOverride && !nodeInAmbientContext) { - const baseHasAbstract = some(baseProp.declarations, hasAbstractModifier); - if (hasOverride) { - return; - } + return MemberOverrideStatus.HasInvalidOverride; + } + else if (prop && baseProp?.declarations && compilerOptions.noImplicitOverride && !nodeInAmbientContext) { + const baseHasAbstract = some(baseProp.declarations, hasAbstractModifier); + if (memberHasOverrideModifier) { + return MemberOverrideStatus.Ok; + } - if (!baseHasAbstract) { + if (!baseHasAbstract) { + if (errorNode) { const diag = memberIsParameterProperty ? isJs ? Diagnostics.This_parameter_property_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0 : @@ -38505,23 +39477,32 @@ namespace ts { isJs ? Diagnostics.This_member_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0 : Diagnostics.This_member_must_have_an_override_modifier_because_it_overrides_a_member_in_the_base_class_0; - error(member, diag, baseClassName); + error(errorNode, diag, baseClassName); } - else if (hasAbstractModifier(member) && baseHasAbstract) { - error(member, Diagnostics.This_member_must_have_an_override_modifier_because_it_overrides_an_abstract_method_that_is_declared_in_the_base_class_0, baseClassName); + return MemberOverrideStatus.NeedsOverride; + } + else if (memberHasAbstractModifier && baseHasAbstract) { + if (errorNode) { + error(errorNode, Diagnostics.This_member_must_have_an_override_modifier_because_it_overrides_an_abstract_method_that_is_declared_in_the_base_class_0, baseClassName); } + return MemberOverrideStatus.NeedsOverride; } } - else if (hasOverride) { + } + else if (memberHasOverrideModifier) { + if (errorNode) { const className = typeToString(type); error( - member, + errorNode, isJs ? Diagnostics.This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_its_containing_class_0_does_not_extend_another_class : Diagnostics.This_member_cannot_have_an_override_modifier_because_its_containing_class_0_does_not_extend_another_class, className); } + return MemberOverrideStatus.HasInvalidOverride; } + + return MemberOverrideStatus.Ok; } function issueMemberSpecificError(node: ClassLikeDeclaration, typeWithThis: Type, baseWithThis: Type, broadDiag: DiagnosticMessage) { @@ -38568,6 +39549,48 @@ namespace ts { } } + /** + * Checks a member declaration node to see if has a missing or invalid `override` modifier. + * @param node Class-like node where the member is declared. + * @param member Member declaration node. + * Note: `member` can be a synthetic node without a parent. + */ + function getMemberOverrideModifierStatus(node: ClassLikeDeclaration, member: ClassElement): MemberOverrideStatus { + if (!member.name) { + return MemberOverrideStatus.Ok; + } + + const symbol = getSymbolOfNode(node); + const type = getDeclaredTypeOfSymbol(symbol) as InterfaceType; + const typeWithThis = getTypeWithThisArgument(type); + const staticType = getTypeOfSymbol(symbol) as ObjectType; + + const baseTypeNode = getEffectiveBaseTypeNode(node); + const baseTypes = baseTypeNode && getBaseTypes(type); + const baseWithThis = baseTypes?.length ? getTypeWithThisArgument(first(baseTypes), type.thisType) : undefined; + const baseStaticType = getBaseConstructorTypeOfClass(type); + + const memberHasOverrideModifier = member.parent + ? hasOverrideModifier(member) + : hasSyntacticModifier(member, ModifierFlags.Override); + + const memberName = unescapeLeadingUnderscores(getTextOfPropertyName(member.name)); + + return checkMemberForOverrideModifier( + node, + staticType, + baseStaticType, + baseWithThis, + type, + typeWithThis, + memberHasOverrideModifier, + hasAbstractModifier(member), + isStatic(member), + /* memberIsParameterProperty */ false, + memberName, + ); + } + function getTargetSymbol(s: Symbol) { // if symbol is instantiated its flags are not copied from the 'target' // so we'll need to get back original 'target' symbol to work with correct set of flags @@ -38731,7 +39754,7 @@ namespace ts { const properties = getPropertiesOfType(getTypeWithThisArgument(base, type.thisType)); for (const prop of properties) { const existing = seen.get(prop.escapedName); - if (existing && !isPropertyIdenticalTo(existing, prop)) { + if (existing && prop.parent === existing.parent) { seen.delete(prop.escapedName); } } @@ -38790,7 +39813,7 @@ namespace ts { } if (!isStatic(member) && isPropertyWithoutInitializer(member)) { const propName = (member as PropertyDeclaration).name; - if (isIdentifier(propName) || isPrivateIdentifier(propName)) { + if (isIdentifier(propName) || isPrivateIdentifier(propName) || isComputedPropertyName(propName)) { const type = getTypeOfSymbol(getSymbolOfNode(member)); if (!(type.flags & TypeFlags.AnyOrUnknown || getFalsyFlags(type) & TypeFlags.Undefined)) { if (!constructor || !isPropertyInitializedInConstructor(propName, type, constructor)) { @@ -38826,8 +39849,10 @@ namespace ts { return false; } - function isPropertyInitializedInConstructor(propName: Identifier | PrivateIdentifier, propType: Type, constructor: ConstructorDeclaration) { - const reference = factory.createPropertyAccessExpression(factory.createThis(), propName); + function isPropertyInitializedInConstructor(propName: Identifier | PrivateIdentifier | ComputedPropertyName, propType: Type, constructor: ConstructorDeclaration) { + const reference = isComputedPropertyName(propName) + ? factory.createElementAccessExpression(factory.createThis(), propName.expression) + : factory.createPropertyAccessExpression(factory.createThis(), propName); setParent(reference.expression, reference); setParent(reference, constructor); reference.flowNode = constructor.returnFlowNode; @@ -38835,12 +39860,13 @@ namespace ts { return !(getFalsyFlags(flowType) & TypeFlags.Undefined); } + function checkInterfaceDeclaration(node: InterfaceDeclaration) { // Grammar checking if (!checkGrammarDecoratorsAndModifiers(node)) checkGrammarInterfaceDeclaration(node); checkTypeParameters(node.typeParameters); - if (produceDiagnostics) { + addLazyDiagnostic(() => { checkTypeNameIsReserved(node.name, Diagnostics.Interface_name_cannot_be_0); checkExportsOnMergedDeclarations(node); @@ -38861,7 +39887,7 @@ namespace ts { } } checkObjectTypeForDuplicateDeclarations(node); - } + }); forEach(getInterfaceBaseTypeNodes(node), heritageElement => { if (!isEntityNameExpression(heritageElement.expression) || isOptionalChain(heritageElement.expression)) { error(heritageElement.expression, Diagnostics.An_interface_can_only_extend_an_identifier_Slashqualified_name_with_optional_type_arguments); @@ -38871,10 +39897,10 @@ namespace ts { forEach(node.members, checkSourceElement); - if (produceDiagnostics) { + addLazyDiagnostic(() => { checkTypeForDuplicateIndexSignatures(node); registerForUnusedIdentifiersCheck(node); - } + }); } function checkTypeAliasDeclaration(node: TypeAliasDeclaration) { @@ -39021,16 +40047,15 @@ namespace ts { return nodeIsMissing(expr) ? 0 : evaluateEnumMember(expr, getSymbolOfNode(member.parent), identifier.escapedText); case SyntaxKind.ElementAccessExpression: case SyntaxKind.PropertyAccessExpression: - const ex = expr as AccessExpression; - if (isConstantMemberAccess(ex)) { - const type = getTypeOfExpression(ex.expression); + if (isConstantMemberAccess(expr)) { + const type = getTypeOfExpression(expr.expression); if (type.symbol && type.symbol.flags & SymbolFlags.Enum) { let name: __String; - if (ex.kind === SyntaxKind.PropertyAccessExpression) { - name = ex.name.escapedText; + if (expr.kind === SyntaxKind.PropertyAccessExpression) { + name = expr.name.escapedText; } else { - name = escapeLeadingUnderscores(cast(ex.argumentExpression, isLiteralExpression).text); + name = escapeLeadingUnderscores(cast(expr.argumentExpression, isLiteralExpression).text); } return evaluateEnumMember(expr, type.symbol, name); } @@ -39045,7 +40070,7 @@ namespace ts { if (memberSymbol) { const declaration = memberSymbol.valueDeclaration; if (declaration !== member) { - if (declaration && isBlockScopedNameDeclaredBeforeUse(declaration, member)) { + if (declaration && isBlockScopedNameDeclaredBeforeUse(declaration, member) && isEnumDeclaration(declaration.parent)) { return getEnumMemberValue(declaration as EnumMember); } error(expr, Diagnostics.A_member_initializer_in_a_enum_declaration_cannot_reference_members_declared_after_it_including_members_defined_in_other_enums); @@ -39059,7 +40084,12 @@ namespace ts { } } - function isConstantMemberAccess(node: Expression): boolean { + function isConstantMemberAccess(node: Expression): node is AccessExpression { + const type = getTypeOfExpression(node); + if(type === errorType) { + return false; + } + return node.kind === SyntaxKind.Identifier || node.kind === SyntaxKind.PropertyAccessExpression && isConstantMemberAccess((node as PropertyAccessExpression).expression) || node.kind === SyntaxKind.ElementAccessExpression && isConstantMemberAccess((node as ElementAccessExpression).expression) && @@ -39067,10 +40097,10 @@ namespace ts { } function checkEnumDeclaration(node: EnumDeclaration) { - if (!produceDiagnostics) { - return; - } + addLazyDiagnostic(() => checkEnumDeclarationWorker(node)); + } + function checkEnumDeclarationWorker(node: EnumDeclaration) { // Grammar checking checkGrammarDecoratorsAndModifiers(node); @@ -39159,7 +40189,16 @@ namespace ts { } function checkModuleDeclaration(node: ModuleDeclaration) { - if (produceDiagnostics) { + if (node.body) { + checkSourceElement(node.body); + if (!isGlobalScopeAugmentation(node)) { + registerForUnusedIdentifiersCheck(node); + } + } + + addLazyDiagnostic(checkModuleDeclarationDiagnostics); + + function checkModuleDeclarationDiagnostics() { // Grammar checking const isGlobalAugmentation = isGlobalScopeAugmentation(node); const inAmbientContext = node.flags & NodeFlags.Ambient; @@ -39170,7 +40209,7 @@ namespace ts { const isAmbientExternalModule: boolean = isAmbientModule(node); const contextErrorMessage = isAmbientExternalModule ? Diagnostics.An_ambient_module_declaration_is_only_allowed_at_the_top_level_in_a_file - : Diagnostics.A_namespace_declaration_is_only_allowed_in_a_namespace_or_module; + : Diagnostics.A_namespace_declaration_is_only_allowed_at_the_top_level_of_a_namespace_or_module; if (checkGrammarModuleElementContext(node, contextErrorMessage)) { // If we hit a module declaration in an illegal context, just bail out to avoid cascading errors. return; @@ -39248,13 +40287,6 @@ namespace ts { } } } - - if (node.body) { - checkSourceElement(node.body); - if (!isGlobalScopeAugmentation(node)) { - registerForUnusedIdentifiersCheck(node); - } - } } function checkModuleAugmentationElement(node: Node, isGlobalAugmentation: boolean): void { @@ -39358,6 +40390,16 @@ namespace ts { return false; } } + if (!isImportEqualsDeclaration(node) && node.assertClause) { + let hasError = false; + for (const clause of node.assertClause.elements) { + if (!isStringLiteral(clause.value)) { + hasError = true; + error(clause.value, Diagnostics.Import_assertion_values_must_be_string_literal_expressions); + } + } + return !hasError; + } return true; } @@ -39406,6 +40448,9 @@ namespace ts { name ); } + if (isType && node.kind === SyntaxKind.ImportEqualsDeclaration && hasEffectiveModifier(node, ModifierFlags.Export)) { + error(node, Diagnostics.Cannot_use_export_import_on_a_type_or_type_only_namespace_when_the_isolatedModules_flag_is_provided); + } break; } case SyntaxKind.ExportSpecifier: { @@ -39429,10 +40474,45 @@ namespace ts { } } - if (isImportSpecifier(node) && target.declarations?.every(d => !!(getCombinedNodeFlags(d) & NodeFlags.Deprecated))) { - addDeprecatedSuggestion(node.name, target.declarations, symbol.escapedName as string); + if (isImportSpecifier(node)) { + const targetSymbol = checkDeprecatedAliasedSymbol(symbol, node); + if (isDeprecatedAliasedSymbol(targetSymbol) && targetSymbol.declarations) { + addDeprecatedSuggestion(node, targetSymbol.declarations, targetSymbol.escapedName as string); + } + } + } + } + + function isDeprecatedAliasedSymbol(symbol: Symbol) { + return !!symbol.declarations && every(symbol.declarations, d => !!(getCombinedNodeFlags(d) & NodeFlags.Deprecated)); + } + + function checkDeprecatedAliasedSymbol(symbol: Symbol, location: Node) { + if (!(symbol.flags & SymbolFlags.Alias)) return symbol; + + const targetSymbol = resolveAlias(symbol); + if (targetSymbol === unknownSymbol) return targetSymbol; + + while (symbol.flags & SymbolFlags.Alias) { + const target = getImmediateAliasedSymbol(symbol); + if (target) { + if (target === targetSymbol) break; + if (target.declarations && length(target.declarations)) { + if (isDeprecatedAliasedSymbol(target)) { + addDeprecatedSuggestion(location, target.declarations, target.escapedName as string); + break; + } + else { + if (symbol === targetSymbol) break; + symbol = target; + } + } + } + else { + break; } } + return targetSymbol; } function checkImportBinding(node: ImportEqualsDeclaration | ImportClause | NamespaceImport | ImportSpecifier) { @@ -39448,18 +40528,35 @@ namespace ts { function checkAssertClause(declaration: ImportDeclaration | ExportDeclaration) { if (declaration.assertClause) { - if (moduleKind !== ModuleKind.ESNext) { - return grammarErrorOnNode(declaration.assertClause, Diagnostics.Import_assertions_are_only_supported_when_the_module_option_is_set_to_esnext); + const validForTypeAssertions = isExclusivelyTypeOnlyImportOrExport(declaration); + const override = getResolutionModeOverrideForClause(declaration.assertClause, validForTypeAssertions ? grammarErrorOnNode : undefined); + if (validForTypeAssertions && override) { + if (getEmitModuleResolutionKind(compilerOptions) !== ModuleResolutionKind.Node12 && getEmitModuleResolutionKind(compilerOptions) !== ModuleResolutionKind.NodeNext) { + return grammarErrorOnNode(declaration.assertClause, Diagnostics.Resolution_modes_are_only_supported_when_moduleResolution_is_node12_or_nodenext); + } + return; // Other grammar checks do not apply to type-only imports with resolution mode assertions + } + + const mode = (moduleKind === ModuleKind.NodeNext) && declaration.moduleSpecifier && getUsageModeForExpression(declaration.moduleSpecifier); + if (mode !== ModuleKind.ESNext && moduleKind !== ModuleKind.ESNext) { + return grammarErrorOnNode(declaration.assertClause, + moduleKind === ModuleKind.NodeNext + ? Diagnostics.Import_assertions_are_not_allowed_on_statements_that_transpile_to_commonjs_require_calls + : Diagnostics.Import_assertions_are_only_supported_when_the_module_option_is_set_to_esnext_or_nodenext); } if (isImportDeclaration(declaration) ? declaration.importClause?.isTypeOnly : declaration.isTypeOnly) { return grammarErrorOnNode(declaration.assertClause, Diagnostics.Import_assertions_cannot_be_used_with_type_only_imports_or_exports); } + + if (override) { + return grammarErrorOnNode(declaration.assertClause, Diagnostics.resolution_mode_can_only_be_set_for_type_only_imports); + } } } function checkImportDeclaration(node: ImportDeclaration) { - if (checkGrammarModuleElementContext(node, Diagnostics.An_import_declaration_can_only_be_used_in_a_namespace_or_module)) { + if (checkGrammarModuleElementContext(node, isInJSFile(node) ? Diagnostics.An_import_declaration_can_only_be_used_at_the_top_level_of_a_module : Diagnostics.An_import_declaration_can_only_be_used_at_the_top_level_of_a_namespace_or_module)) { // If we hit an import declaration in an illegal context, just bail out to avoid cascading errors. return; } @@ -39493,7 +40590,7 @@ namespace ts { } function checkImportEqualsDeclaration(node: ImportEqualsDeclaration) { - if (checkGrammarModuleElementContext(node, Diagnostics.An_import_declaration_can_only_be_used_in_a_namespace_or_module)) { + if (checkGrammarModuleElementContext(node, isInJSFile(node) ? Diagnostics.An_import_declaration_can_only_be_used_at_the_top_level_of_a_module : Diagnostics.An_import_declaration_can_only_be_used_at_the_top_level_of_a_namespace_or_module)) { // If we hit an import declaration in an illegal context, just bail out to avoid cascading errors. return; } @@ -39532,12 +40629,12 @@ namespace ts { } function checkExportDeclaration(node: ExportDeclaration) { - if (checkGrammarModuleElementContext(node, Diagnostics.An_export_declaration_can_only_be_used_in_a_module)) { + if (checkGrammarModuleElementContext(node, isInJSFile(node) ? Diagnostics.An_export_declaration_can_only_be_used_at_the_top_level_of_a_module : Diagnostics.An_export_declaration_can_only_be_used_at_the_top_level_of_a_namespace_or_module)) { // If we hit an export in an illegal context, just bail out to avoid cascading errors. return; } - if (!checkGrammarDecoratorsAndModifiers(node) && hasEffectiveModifiers(node)) { + if (!checkGrammarDecoratorsAndModifiers(node) && hasSyntacticModifiers(node)) { grammarErrorOnFirstToken(node, Diagnostics.An_export_declaration_cannot_have_modifiers); } @@ -39774,10 +40871,10 @@ namespace ts { } // ECMA262: 15.2.1.1 It is a Syntax Error if the ExportedNames of ModuleItemList contains any duplicate entries. // (TS Exceptions: namespaces, function overloads, enums, and interfaces) - if (flags & (SymbolFlags.Namespace | SymbolFlags.Interface | SymbolFlags.Enum)) { + if (flags & (SymbolFlags.Namespace | SymbolFlags.Enum)) { return; } - const exportedDeclarationsCount = countWhere(declarations, isNotOverloadAndNotAccessor); + const exportedDeclarationsCount = countWhere(declarations, and(isNotOverloadAndNotAccessor, not(isInterfaceDeclaration))); if (flags & SymbolFlags.TypeAlias && exportedDeclarationsCount <= 2) { // it is legal to merge type alias with other values // so count should be either 1 (just type alias) or 2 (type alias + merged value) @@ -40086,9 +41183,8 @@ namespace ts { const enclosingFile = getSourceFileOfNode(node); const links = getNodeLinks(enclosingFile); if (!(links.flags & NodeCheckFlags.TypeChecked)) { - links.deferredNodes = links.deferredNodes || new Map(); - const id = getNodeId(node); - links.deferredNodes.set(id, node); + links.deferredNodes ||= new Set(); + links.deferredNodes.add(node); } } @@ -40100,7 +41196,7 @@ namespace ts { } function checkDeferredNode(node: Node) { - tracing?.push(tracing.Phase.Check, "checkDeferredNode", { kind: node.kind, pos: node.pos, end: node.end }); + tracing?.push(tracing.Phase.Check, "checkDeferredNode", { kind: node.kind, pos: node.pos, end: node.end, path: (node as TracingNode).tracingPath }); const saveCurrentNode = currentNode; currentNode = node; instantiationCount = 0; @@ -40191,13 +41287,16 @@ namespace ts { registerForUnusedIdentifiersCheck(node); } - if (!node.isDeclarationFile && (compilerOptions.noUnusedLocals || compilerOptions.noUnusedParameters)) { - checkUnusedIdentifiers(getPotentiallyUnusedIdentifiers(node), (containingNode, kind, diag) => { - if (!containsParseError(containingNode) && unusedIsError(kind, !!(containingNode.flags & NodeFlags.Ambient))) { - diagnostics.add(diag); - } - }); - } + addLazyDiagnostic(() => { + // This relies on the results of other lazy diagnostics, so must be computed after them + if (!node.isDeclarationFile && (compilerOptions.noUnusedLocals || compilerOptions.noUnusedParameters)) { + checkUnusedIdentifiers(getPotentiallyUnusedIdentifiers(node), (containingNode, kind, diag) => { + if (!containsParseError(containingNode) && unusedIsError(kind, !!(containingNode.flags & NodeFlags.Ambient))) { + diagnostics.add(diag); + } + }); + } + }); if (compilerOptions.importsNotUsedAsValues === ImportsNotUsedAsValues.Error && !node.isDeclarationFile && @@ -40247,16 +41346,37 @@ namespace ts { } } + function ensurePendingDiagnosticWorkComplete() { + // Invoke any existing lazy diagnostics to add them, clear the backlog of diagnostics + for (const cb of deferredDiagnosticsCallbacks) { + cb(); + } + deferredDiagnosticsCallbacks = []; + } + + function checkSourceFileWithEagerDiagnostics(sourceFile: SourceFile) { + ensurePendingDiagnosticWorkComplete(); + // then setup diagnostics for immediate invocation (as we are about to collect them, and + // this avoids the overhead of longer-lived callbacks we don't need to allocate) + // This also serves to make the shift to possibly lazy diagnostics transparent to serial command-line scenarios + // (as in those cases, all the diagnostics will still be computed as the appropriate place in the tree, + // thus much more likely retaining the same union ordering as before we had lazy diagnostics) + const oldAddLazyDiagnostics = addLazyDiagnostic; + addLazyDiagnostic = cb => cb(); + checkSourceFile(sourceFile); + addLazyDiagnostic = oldAddLazyDiagnostics; + } + function getDiagnosticsWorker(sourceFile: SourceFile): Diagnostic[] { - throwIfNonDiagnosticsProducing(); if (sourceFile) { + ensurePendingDiagnosticWorkComplete(); // Some global diagnostics are deferred until they are needed and // may not be reported in the first call to getGlobalDiagnostics. // We should catch these changes and report them. const previousGlobalDiagnostics = diagnostics.getGlobalDiagnostics(); const previousGlobalDiagnosticsSize = previousGlobalDiagnostics.length; - checkSourceFile(sourceFile); + checkSourceFileWithEagerDiagnostics(sourceFile); const semanticDiagnostics = diagnostics.getDiagnostics(sourceFile.fileName); const currentGlobalDiagnostics = diagnostics.getGlobalDiagnostics(); @@ -40277,21 +41397,15 @@ namespace ts { // Global diagnostics are always added when a file is not provided to // getDiagnostics - forEach(host.getSourceFiles(), checkSourceFile); + forEach(host.getSourceFiles(), checkSourceFileWithEagerDiagnostics); return diagnostics.getDiagnostics(); } function getGlobalDiagnostics(): Diagnostic[] { - throwIfNonDiagnosticsProducing(); + ensurePendingDiagnosticWorkComplete(); return diagnostics.getGlobalDiagnostics(); } - function throwIfNonDiagnosticsProducing() { - if (!produceDiagnostics) { - throw new Error("Trying to get diagnostics from a type checker that does not produce them."); - } - } - // Language service support function getSymbolsInScope(location: Node, meaning: SymbolFlags): Symbol[] { @@ -40737,7 +41851,10 @@ namespace ts { case SyntaxKind.PrivateIdentifier: case SyntaxKind.PropertyAccessExpression: case SyntaxKind.QualifiedName: - return getSymbolOfNameOrPropertyAccessExpression(node as EntityName | PrivateIdentifier | PropertyAccessExpression); + if (!isThisInTypeQuery(node)) { + return getSymbolOfNameOrPropertyAccessExpression(node as EntityName | PrivateIdentifier | PropertyAccessExpression); + } + // falls through case SyntaxKind.ThisKeyword: const container = getThisContainer(node, /*includeArrowFunctions*/ false); @@ -40898,7 +42015,7 @@ namespace ts { } if (isBindingPattern(node)) { - return getTypeForVariableLikeDeclaration(node.parent, /*includeOptionality*/ true) || errorType; + return getTypeForVariableLikeDeclaration(node.parent, /*includeOptionality*/ true, CheckMode.Normal) || errorType; } if (isInRightSideOfImportOrExportAssignment(node as Identifier)) { @@ -41268,7 +42385,7 @@ namespace ts { if (!symbol) { return false; } - const target = resolveAlias(symbol); + const target = getExportSymbolOfValueSymbolIfExported(resolveAlias(symbol)); if (target === unknownSymbol) { return true; } @@ -41613,11 +42730,11 @@ namespace ts { // this variable and functions that use it are deliberately moved here from the outer scope // to avoid scope pollution const resolvedTypeReferenceDirectives = host.getResolvedTypeReferenceDirectives(); - let fileToDirective: ESMap; + let fileToDirective: ESMap; if (resolvedTypeReferenceDirectives) { // populate reverse mapping: file path -> type reference directive that was resolved to this file - fileToDirective = new Map(); - resolvedTypeReferenceDirectives.forEach((resolvedDirective, key) => { + fileToDirective = new Map(); + resolvedTypeReferenceDirectives.forEach((resolvedDirective, key, mode) => { if (!resolvedDirective || !resolvedDirective.resolvedFileName) { return; } @@ -41625,7 +42742,7 @@ namespace ts { if (file) { // Add the transitive closure of path references loaded by this file (as long as they are not) // part of an existing type reference. - addReferencedFilesToTypeDirective(file, key); + addReferencedFilesToTypeDirective(file, key, mode); } }); } @@ -41748,7 +42865,7 @@ namespace ts { } // defined here to avoid outer scope pollution - function getTypeReferenceDirectivesForEntityName(node: EntityNameOrEntityNameExpression): string[] | undefined { + function getTypeReferenceDirectivesForEntityName(node: EntityNameOrEntityNameExpression): [specifier: string, mode: SourceFile["impliedNodeFormat"] | undefined][] | undefined { // program does not have any files with type reference directives - bail out if (!fileToDirective) { return undefined; @@ -41766,13 +42883,13 @@ namespace ts { } // defined here to avoid outer scope pollution - function getTypeReferenceDirectivesForSymbol(symbol: Symbol, meaning?: SymbolFlags): string[] | undefined { + function getTypeReferenceDirectivesForSymbol(symbol: Symbol, meaning?: SymbolFlags): [specifier: string, mode: SourceFile["impliedNodeFormat"] | undefined][] | undefined { // program does not have any files with type reference directives - bail out if (!fileToDirective || !isSymbolFromTypeDeclarationFile(symbol)) { return undefined; } // check what declarations in the symbol can contribute to the target meaning - let typeReferenceDirectives: string[] | undefined; + let typeReferenceDirectives: [specifier: string, mode: SourceFile["impliedNodeFormat"] | undefined][] | undefined; for (const decl of symbol.declarations!) { // check meaning of the local symbol to see if declaration needs to be analyzed further if (decl.symbol && decl.symbol.flags & meaning!) { @@ -41823,14 +42940,14 @@ namespace ts { return false; } - function addReferencedFilesToTypeDirective(file: SourceFile, key: string) { + function addReferencedFilesToTypeDirective(file: SourceFile, key: string, mode: SourceFile["impliedNodeFormat"] | undefined) { if (fileToDirective.has(file.path)) return; - fileToDirective.set(file.path, key); - for (const { fileName } of file.referencedFiles) { + fileToDirective.set(file.path, [key, mode]); + for (const { fileName, resolutionMode } of file.referencedFiles) { const resolvedFile = resolveTripleslashReference(fileName, file.fileName); const referencedFile = host.getSourceFile(resolvedFile); if (referencedFile) { - addReferencedFilesToTypeDirective(referencedFile, key); + addReferencedFilesToTypeDirective(referencedFile, key, resolutionMode || file.impliedNodeFormat); } } } @@ -42082,7 +43199,7 @@ namespace ts { return quickResult; } - let lastStatic: Node | undefined, lastDeclare: Node | undefined, lastAsync: Node | undefined, lastReadonly: Node | undefined, lastOverride: Node | undefined; + let lastStatic: Node | undefined, lastDeclare: Node | undefined, lastAsync: Node | undefined, lastOverride: Node | undefined; let flags = ModifierFlags.None; for (const modifier of node.modifiers!) { if (modifier.kind !== SyntaxKind.ReadonlyKeyword) { @@ -42093,6 +43210,11 @@ namespace ts { return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_appear_on_an_index_signature, tokenToString(modifier.kind)); } } + if (modifier.kind !== SyntaxKind.InKeyword && modifier.kind !== SyntaxKind.OutKeyword) { + if (node.kind === SyntaxKind.TypeParameter) { + return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_appear_on_a_type_parameter, tokenToString(modifier.kind)); + } + } switch (modifier.kind) { case SyntaxKind.ConstKeyword: if (node.kind !== SyntaxKind.EnumDeclaration) { @@ -42189,7 +43311,6 @@ namespace ts { return grammarErrorOnNode(modifier, Diagnostics.readonly_modifier_can_only_appear_on_a_property_declaration_or_index_signature); } flags |= ModifierFlags.Readonly; - lastReadonly = modifier; break; case SyntaxKind.ExportKeyword: @@ -42301,6 +43422,23 @@ namespace ts { flags |= ModifierFlags.Async; lastAsync = modifier; break; + + case SyntaxKind.InKeyword: + case SyntaxKind.OutKeyword: + const inOutFlag = modifier.kind === SyntaxKind.InKeyword ? ModifierFlags.In : ModifierFlags.Out; + const inOutText = modifier.kind === SyntaxKind.InKeyword ? "in" : "out"; + if (node.kind !== SyntaxKind.TypeParameter || (node.parent.kind !== SyntaxKind.InterfaceDeclaration && + node.parent.kind !== SyntaxKind.ClassDeclaration && node.parent.kind !== SyntaxKind.TypeAliasDeclaration)) { + return grammarErrorOnNode(modifier, Diagnostics._0_modifier_can_only_appear_on_a_type_parameter_of_a_class_interface_or_type_alias, inOutText); + } + if (flags & inOutFlag) { + return grammarErrorOnNode(modifier, Diagnostics._0_modifier_already_seen, inOutText); + } + if (inOutFlag & ModifierFlags.In && flags & ModifierFlags.Out) { + return grammarErrorOnNode(modifier, Diagnostics._0_modifier_must_precede_1_modifier, "in", "out"); + } + flags |= inOutFlag; + break; } } @@ -42308,18 +43446,12 @@ namespace ts { if (flags & ModifierFlags.Static) { return grammarErrorOnNode(lastStatic!, Diagnostics._0_modifier_cannot_appear_on_a_constructor_declaration, "static"); } - if (flags & ModifierFlags.Abstract) { - return grammarErrorOnNode(lastStatic!, Diagnostics._0_modifier_cannot_appear_on_a_constructor_declaration, "abstract"); // TODO: GH#18217 - } if (flags & ModifierFlags.Override) { return grammarErrorOnNode(lastOverride!, Diagnostics._0_modifier_cannot_appear_on_a_constructor_declaration, "override"); // TODO: GH#18217 } - else if (flags & ModifierFlags.Async) { + if (flags & ModifierFlags.Async) { return grammarErrorOnNode(lastAsync!, Diagnostics._0_modifier_cannot_appear_on_a_constructor_declaration, "async"); } - else if (flags & ModifierFlags.Readonly) { - return grammarErrorOnNode(lastReadonly!, Diagnostics._0_modifier_cannot_appear_on_a_constructor_declaration, "readonly"); - } return false; } else if ((node.kind === SyntaxKind.ImportDeclaration || node.kind === SyntaxKind.ImportEqualsDeclaration) && flags & ModifierFlags.Ambient) { @@ -42366,6 +43498,7 @@ namespace ts { case SyntaxKind.FunctionExpression: case SyntaxKind.ArrowFunction: case SyntaxKind.Parameter: + case SyntaxKind.TypeParameter: return false; default: if (node.parent.kind === SyntaxKind.ModuleBlock || node.parent.kind === SyntaxKind.SourceFile) { @@ -42582,21 +43715,6 @@ namespace ts { return false; } - function checkGrammarForOmittedArgument(args: NodeArray | undefined): boolean { - if (args) { - for (const arg of args) { - if (arg.kind === SyntaxKind.OmittedExpression) { - return grammarErrorAtPos(arg, arg.pos, 0, Diagnostics.Argument_expression_expected); - } - } - } - return false; - } - - function checkGrammarArguments(args: NodeArray | undefined): boolean { - return checkGrammarForOmittedArgument(args); - } - function checkGrammarHeritageClause(node: HeritageClause): boolean { const types = node.types; if (checkGrammarForDisallowedTrailingComma(types)) { @@ -42609,7 +43727,7 @@ namespace ts { return some(types, checkGrammarExpressionWithTypeArguments); } - function checkGrammarExpressionWithTypeArguments(node: ExpressionWithTypeArguments) { + function checkGrammarExpressionWithTypeArguments(node: ExpressionWithTypeArguments | TypeQueryNode) { return checkGrammarTypeArguments(node, node.typeArguments); } @@ -42732,7 +43850,7 @@ namespace ts { if (prop.kind === SyntaxKind.ShorthandPropertyAssignment && !inDestructuring && prop.objectAssignmentInitializer) { // having objectAssignmentInitializer is only valid in ObjectAssignmentPattern // outside of destructuring it is a syntax error - return grammarErrorOnNode(prop.equalsToken!, Diagnostics.Did_you_mean_to_use_a_Colon_An_can_only_follow_a_property_name_when_the_containing_object_literal_is_part_of_a_destructuring_pattern); + grammarErrorOnNode(prop.equalsToken!, Diagnostics.Did_you_mean_to_use_a_Colon_An_can_only_follow_a_property_name_when_the_containing_object_literal_is_part_of_a_destructuring_pattern); } if (name.kind === SyntaxKind.PrivateIdentifier) { @@ -42741,8 +43859,7 @@ namespace ts { // Modifiers are never allowed on properties except for 'async' on a method declaration if (prop.modifiers) { - // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion - for (const mod of prop.modifiers!) { // TODO: GH#19955 + for (const mod of prop.modifiers) { if (mod.kind !== SyntaxKind.AsyncKeyword || prop.kind !== SyntaxKind.MethodDeclaration) { grammarErrorOnNode(mod, Diagnostics._0_modifier_cannot_be_used_here, getTextOfNode(mod)); } @@ -42794,9 +43911,12 @@ namespace ts { seen.set(effectiveName, currentKind); } else { - if ((currentKind & DeclarationMeaning.PropertyAssignmentOrMethod) && (existingKind & DeclarationMeaning.PropertyAssignmentOrMethod)) { + if ((currentKind & DeclarationMeaning.Method) && (existingKind & DeclarationMeaning.Method)) { grammarErrorOnNode(name, Diagnostics.Duplicate_identifier_0, getTextOfNode(name)); } + else if ((currentKind & DeclarationMeaning.PropertyAssignment) && (existingKind & DeclarationMeaning.PropertyAssignment)) { + grammarErrorOnNode(name, Diagnostics.An_object_literal_cannot_have_multiple_properties_with_the_same_name, getTextOfNode(name)); + } else if ((currentKind & DeclarationMeaning.GetOrSetAccessor) && (existingKind & DeclarationMeaning.GetOrSetAccessor)) { if (existingKind !== DeclarationMeaning.GetOrSetAccessor && currentKind !== existingKind) { seen.set(effectiveName, currentKind | existingKind); @@ -43032,13 +44152,11 @@ namespace ts { if (node.type.kind !== SyntaxKind.SymbolKeyword) { return grammarErrorOnNode(node.type, Diagnostics._0_expected, tokenToString(SyntaxKind.SymbolKeyword)); } - let parent = walkUpParenthesizedTypes(node.parent); if (isInJSFile(parent) && isJSDocTypeExpression(parent)) { - parent = parent.parent; - if (isJSDocTypeTag(parent)) { - // walk up past JSDoc comment node - parent = parent.parent.parent; + const host = getJSDocHost(parent); + if (host) { + parent = getSingleVariableOfVariableStatement(host) || host; } } switch (parent.kind) { @@ -43586,19 +44704,24 @@ namespace ts { } function checkNumericLiteralValueSize(node: NumericLiteral) { + // We should test against `getTextOfNode(node)` rather than `node.text`, because `node.text` for large numeric literals can contain "." + // e.g. `node.text` for numeric literal `1100000000000000000000` is `1.1e21`. + const isFractional = getTextOfNode(node).indexOf(".") !== -1; + const isScientific = node.numericLiteralFlags & TokenFlags.Scientific; + // Scientific notation (e.g. 2e54 and 1e00000000010) can't be converted to bigint - // Literals with 15 or fewer characters aren't long enough to reach past 2^53 - 1 // Fractional numbers (e.g. 9000000000000000.001) are inherently imprecise anyway - if (node.numericLiteralFlags & TokenFlags.Scientific || node.text.length <= 15 || node.text.indexOf(".") !== -1) { + if (isFractional || isScientific) { return; } - // We can't rely on the runtime to accurately store and compare extremely large numeric values - // Even for internal use, we use getTextOfNode: https://github.com/microsoft/TypeScript/issues/33298 - // Thus, if the runtime claims a too-large number is lower than Number.MAX_SAFE_INTEGER, - // it's likely addition operations on it will fail too - const apparentValue = +getTextOfNode(node); - if (apparentValue <= 2 ** 53 - 1 && apparentValue + 1 > apparentValue) { + // Here `node` is guaranteed to be a numeric literal representing an integer. + // We need to judge whether the integer `node` represents is <= 2 ** 53 - 1, which can be accomplished by comparing to `value` defined below because: + // 1) when `node` represents an integer <= 2 ** 53 - 1, `node.text` is its exact string representation and thus `value` precisely represents the integer. + // 2) otherwise, although `node.text` may be imprecise string representation, its mathematical value and consequently `value` cannot be less than 2 ** 53, + // thus the result of the predicate won't be affected. + const value = +node.text; + if (value <= 2 ** 53 - 1) { return; } @@ -43673,13 +44796,13 @@ namespace ts { } const nodeArguments = node.arguments; - if (moduleKind !== ModuleKind.ESNext) { + if (moduleKind !== ModuleKind.ESNext && moduleKind !== ModuleKind.NodeNext) { // We are allowed trailing comma after proposal-import-assertions. checkGrammarForDisallowedTrailingComma(nodeArguments); if (nodeArguments.length > 1) { const assertionArgument = nodeArguments[1]; - return grammarErrorOnNode(assertionArgument, Diagnostics.Dynamic_imports_only_support_a_second_argument_when_the_module_option_is_set_to_esnext); + return grammarErrorOnNode(assertionArgument, Diagnostics.Dynamic_imports_only_support_a_second_argument_when_the_module_option_is_set_to_esnext_or_nodenext); } } @@ -43731,27 +44854,26 @@ namespace ts { function findMostOverlappyType(source: Type, unionTarget: UnionOrIntersectionType) { let bestMatch: Type | undefined; - let matchingCount = 0; - for (const target of unionTarget.types) { - const overlap = getIntersectionType([getIndexType(source), getIndexType(target)]); - if (overlap.flags & TypeFlags.Index) { - // perfect overlap of keys - bestMatch = target; - matchingCount = Infinity; - } - else if (overlap.flags & TypeFlags.Union) { - // We only want to account for literal types otherwise. - // If we have a union of index types, it seems likely that we - // needed to elaborate between two generic mapped types anyway. - const len = length(filter((overlap as UnionType).types, isUnitType)); - if (len >= matchingCount) { - bestMatch = target; - matchingCount = len; - } - } - else if (isUnitType(overlap) && 1 >= matchingCount) { - bestMatch = target; - matchingCount = 1; + if (!(source.flags & (TypeFlags.Primitive | TypeFlags.InstantiablePrimitive))) { + let matchingCount = 0; + for (const target of unionTarget.types) { + if (!(target.flags & (TypeFlags.Primitive | TypeFlags.InstantiablePrimitive))) { + const overlap = getIntersectionType([getIndexType(source), getIndexType(target)]); + if (overlap.flags & TypeFlags.Index) { + // perfect overlap of keys + return target; + } + else if (isUnitType(overlap) || overlap.flags & TypeFlags.Union) { + // We only want to account for literal types otherwise. + // If we have a union of index types, it seems likely that we + // needed to elaborate between two generic mapped types anyway. + const len = overlap.flags & TypeFlags.Union ? countWhere((overlap as UnionType).types, isUnitType) : 1; + if (len >= matchingCount) { + bestMatch = target; + matchingCount = len; + } + } + } } } return bestMatch; diff --git a/src/compiler/commandLineParser.ts b/src/compiler/commandLineParser.ts index fe0031d1f2afd..6ed23d16e6b5a 100644 --- a/src/compiler/commandLineParser.ts +++ b/src/compiler/commandLineParser.ts @@ -1,6 +1,10 @@ namespace ts { /* @internal */ - export const compileOnSaveCommandLineOption: CommandLineOption = { name: "compileOnSave", type: "boolean", defaultValueDescription: "false" }; + export const compileOnSaveCommandLineOption: CommandLineOption = { + name: "compileOnSave", + type: "boolean", + defaultValueDescription: false, + }; const jsxOptionMap = new Map(getEntries({ "preserve": JsxEmit.Preserve, @@ -29,6 +33,7 @@ namespace ts { ["es2019", "lib.es2019.d.ts"], ["es2020", "lib.es2020.d.ts"], ["es2021", "lib.es2021.d.ts"], + ["es2022", "lib.es2022.d.ts"], ["esnext", "lib.esnext.d.ts"], // Host only ["dom", "lib.dom.d.ts"], @@ -63,21 +68,27 @@ namespace ts { ["es2019.string", "lib.es2019.string.d.ts"], ["es2019.symbol", "lib.es2019.symbol.d.ts"], ["es2020.bigint", "lib.es2020.bigint.d.ts"], + ["es2020.date", "lib.es2020.date.d.ts"], ["es2020.promise", "lib.es2020.promise.d.ts"], ["es2020.sharedmemory", "lib.es2020.sharedmemory.d.ts"], ["es2020.string", "lib.es2020.string.d.ts"], ["es2020.symbol.wellknown", "lib.es2020.symbol.wellknown.d.ts"], ["es2020.intl", "lib.es2020.intl.d.ts"], + ["es2020.number", "lib.es2020.number.d.ts"], ["es2021.promise", "lib.es2021.promise.d.ts"], ["es2021.string", "lib.es2021.string.d.ts"], ["es2021.weakref", "lib.es2021.weakref.d.ts"], ["es2021.intl", "lib.es2021.intl.d.ts"], - ["esnext.array", "lib.es2019.array.d.ts"], + ["es2022.array", "lib.es2022.array.d.ts"], + ["es2022.error", "lib.es2022.error.d.ts"], + ["es2022.object", "lib.es2022.object.d.ts"], + ["es2022.string", "lib.es2022.string.d.ts"], + ["esnext.array", "lib.es2022.array.d.ts"], ["esnext.symbol", "lib.es2019.symbol.d.ts"], ["esnext.asynciterable", "lib.es2018.asynciterable.d.ts"], ["esnext.intl", "lib.esnext.intl.d.ts"], ["esnext.bigint", "lib.es2020.bigint.d.ts"], - ["esnext.string", "lib.es2021.string.d.ts"], + ["esnext.string", "lib.es2022.string.d.ts"], ["esnext.promise", "lib.es2021.promise.d.ts"], ["esnext.weakref", "lib.es2021.weakref.d.ts"] ]; @@ -112,6 +123,7 @@ namespace ts { })), category: Diagnostics.Watch_and_Build_Modes, description: Diagnostics.Specify_how_the_TypeScript_watch_mode_works, + defaultValueDescription: WatchFileKind.UseFsEvents, }, { name: "watchDirectory", @@ -123,6 +135,7 @@ namespace ts { })), category: Diagnostics.Watch_and_Build_Modes, description: Diagnostics.Specify_how_directories_are_watched_on_systems_that_lack_recursive_file_watching_functionality, + defaultValueDescription: WatchDirectoryKind.UseFsEvents, }, { name: "fallbackPolling", @@ -134,13 +147,14 @@ namespace ts { })), category: Diagnostics.Watch_and_Build_Modes, description: Diagnostics.Specify_what_approach_the_watcher_should_use_if_the_system_runs_out_of_native_file_watchers, + defaultValueDescription: PollingWatchKind.PriorityInterval, }, { name: "synchronousWatchDirectory", type: "boolean", category: Diagnostics.Watch_and_Build_Modes, description: Diagnostics.Synchronously_call_callbacks_and_update_the_state_of_directory_watchers_on_platforms_that_don_t_support_recursive_watching_natively, - defaultValueDescription: "false", + defaultValueDescription: false, }, { name: "excludeDirectories", @@ -177,13 +191,13 @@ namespace ts { showInSimplifiedHelpView: true, category: Diagnostics.Command_line_Options, description: Diagnostics.Print_this_message, - defaultValueDescription: "false", + defaultValueDescription: false, }, { name: "help", shortName: "?", type: "boolean", - defaultValueDescription: "false", + defaultValueDescription: false, }, { name: "watch", @@ -193,7 +207,7 @@ namespace ts { isCommandLineOnly: true, category: Diagnostics.Command_line_Options, description: Diagnostics.Watch_input_files, - defaultValueDescription: "false", + defaultValueDescription: false, }, { name: "preserveWatchOutput", @@ -201,28 +215,28 @@ namespace ts { showInSimplifiedHelpView: false, category: Diagnostics.Output_Formatting, description: Diagnostics.Disable_wiping_the_console_in_watch_mode, - defaultValueDescription: "false", + defaultValueDescription: false, }, { name: "listFiles", type: "boolean", category: Diagnostics.Compiler_Diagnostics, description: Diagnostics.Print_all_of_the_files_read_during_the_compilation, - defaultValueDescription: "false" + defaultValueDescription: false, }, { name: "explainFiles", type: "boolean", category: Diagnostics.Compiler_Diagnostics, description: Diagnostics.Print_files_read_during_the_compilation_including_why_it_was_included, - defaultValueDescription: "false", + defaultValueDescription: false, }, { name: "listEmittedFiles", type: "boolean", category: Diagnostics.Compiler_Diagnostics, description: Diagnostics.Print_the_names_of_emitted_files_after_a_compilation, - defaultValueDescription: "false" + defaultValueDescription: false, }, { name: "pretty", @@ -230,28 +244,28 @@ namespace ts { showInSimplifiedHelpView: true, category: Diagnostics.Output_Formatting, description: Diagnostics.Enable_color_and_formatting_in_TypeScript_s_output_to_make_compiler_errors_easier_to_read, - defaultValueDescription: "true" + defaultValueDescription: true, }, { name: "traceResolution", type: "boolean", category: Diagnostics.Compiler_Diagnostics, description: Diagnostics.Log_paths_used_during_the_moduleResolution_process, - defaultValueDescription: "false" + defaultValueDescription: false, }, { name: "diagnostics", type: "boolean", category: Diagnostics.Compiler_Diagnostics, description: Diagnostics.Output_compiler_performance_information_after_building, - defaultValueDescription: "false" + defaultValueDescription: false, }, { name: "extendedDiagnostics", type: "boolean", category: Diagnostics.Compiler_Diagnostics, description: Diagnostics.Output_more_detailed_compiler_performance_information_after_building, - defaultValueDescription: "false" + defaultValueDescription: false, }, { name: "generateCpuProfile", @@ -276,7 +290,7 @@ namespace ts { shortName: "i", type: "boolean", category: Diagnostics.Projects, - description: Diagnostics.Enable_incremental_compilation, + description: Diagnostics.Save_tsbuildinfo_files_to_allow_for_incremental_compilation_of_projects, transpileOptionValue: undefined, defaultValueDescription: Diagnostics.false_unless_composite_is_set }, @@ -287,7 +301,7 @@ namespace ts { affectsEmit: true, category: Diagnostics.Watch_and_Build_Modes, description: Diagnostics.Have_recompiles_in_projects_that_use_incremental_and_watch_mode_assume_that_changes_within_a_file_will_only_affect_files_directly_depending_on_it, - defaultValueDescription: "false", + defaultValueDescription: false, }, { name: "locale", @@ -314,6 +328,7 @@ namespace ts { es2019: ScriptTarget.ES2019, es2020: ScriptTarget.ES2020, es2021: ScriptTarget.ES2021, + es2022: ScriptTarget.ES2022, esnext: ScriptTarget.ESNext, })), affectsSourceFile: true, @@ -323,7 +338,7 @@ namespace ts { showInSimplifiedHelpView: true, category: Diagnostics.Language_and_Environment, description: Diagnostics.Set_the_JavaScript_language_version_for_emitted_JavaScript_and_include_compatible_library_declarations, - defaultValueDescription: "ES3" + defaultValueDescription: ScriptTarget.ES3, }; const commandOptionsWithoutBuild: CommandLineOption[] = [ @@ -334,7 +349,7 @@ namespace ts { showInSimplifiedHelpView: true, category: Diagnostics.Command_line_Options, description: Diagnostics.Show_all_compiler_options, - defaultValueDescription: "false", + defaultValueDescription: false, }, { name: "version", @@ -343,7 +358,7 @@ namespace ts { showInSimplifiedHelpView: true, category: Diagnostics.Command_line_Options, description: Diagnostics.Print_the_compiler_s_version, - defaultValueDescription: "false", + defaultValueDescription: false, }, { name: "init", @@ -351,7 +366,7 @@ namespace ts { showInSimplifiedHelpView: true, category: Diagnostics.Command_line_Options, description: Diagnostics.Initializes_a_TypeScript_project_and_creates_a_tsconfig_json_file, - defaultValueDescription: "false", + defaultValueDescription: false, }, { name: "project", @@ -370,7 +385,7 @@ namespace ts { showInSimplifiedHelpView: true, category: Diagnostics.Command_line_Options, description: Diagnostics.Build_one_or_more_projects_and_their_dependencies_if_out_of_date, - defaultValueDescription: "false", + defaultValueDescription: false, }, { name: "showConfig", @@ -379,7 +394,7 @@ namespace ts { category: Diagnostics.Command_line_Options, isCommandLineOnly: true, description: Diagnostics.Print_the_final_configuration_instead_of_building, - defaultValueDescription: "false", + defaultValueDescription: false, }, { name: "listFilesOnly", @@ -389,7 +404,7 @@ namespace ts { affectsEmit: true, isCommandLineOnly: true, description: Diagnostics.Print_names_of_files_that_are_part_of_the_compilation_and_then_stop_processing, - defaultValueDescription: "false", + defaultValueDescription: false, }, // Basic @@ -417,13 +432,15 @@ namespace ts { showInSimplifiedHelpView: true, category: Diagnostics.Modules, description: Diagnostics.Specify_what_module_code_is_generated, + defaultValueDescription: undefined, }, { name: "lib", type: "list", element: { name: "lib", - type: libMap + type: libMap, + defaultValueDescription: undefined, }, affectsProgramStructure: true, showInSimplifiedHelpView: true, @@ -438,7 +455,7 @@ namespace ts { showInSimplifiedHelpView: true, category: Diagnostics.JavaScript_Support, description: Diagnostics.Allow_JavaScript_files_to_be_a_part_of_your_program_Use_the_checkJS_option_to_get_errors_from_these_files, - defaultValueDescription: "false" + defaultValueDescription: false, }, { name: "checkJs", @@ -446,7 +463,7 @@ namespace ts { showInSimplifiedHelpView: true, category: Diagnostics.JavaScript_Support, description: Diagnostics.Enable_error_reporting_in_type_checked_JavaScript_files, - defaultValueDescription: "false" + defaultValueDescription: false, }, { name: "jsx", @@ -458,7 +475,7 @@ namespace ts { showInSimplifiedHelpView: true, category: Diagnostics.Language_and_Environment, description: Diagnostics.Specify_what_JSX_code_is_generated, - defaultValueDescription: "undefined" + defaultValueDescription: undefined, }, { name: "declaration", @@ -478,7 +495,7 @@ namespace ts { showInSimplifiedHelpView: true, category: Diagnostics.Emit, transpileOptionValue: undefined, - defaultValueDescription: "false", + defaultValueDescription: false, description: Diagnostics.Create_sourcemaps_for_d_ts_files }, { @@ -490,7 +507,7 @@ namespace ts { category: Diagnostics.Emit, description: Diagnostics.Only_output_d_ts_files_and_not_JavaScript_files, transpileOptionValue: undefined, - defaultValueDescription: "false", + defaultValueDescription: false, }, { name: "sourceMap", @@ -498,7 +515,7 @@ namespace ts { affectsEmit: true, showInSimplifiedHelpView: true, category: Diagnostics.Emit, - defaultValueDescription: "false", + defaultValueDescription: false, description: Diagnostics.Create_source_map_files_for_emitted_JavaScript_files, }, { @@ -539,7 +556,7 @@ namespace ts { isTSConfigOnly: true, category: Diagnostics.Projects, transpileOptionValue: undefined, - defaultValueDescription: "false", + defaultValueDescription: false, description: Diagnostics.Enable_constraints_that_allow_a_TypeScript_project_to_be_used_with_project_references, }, { @@ -551,7 +568,7 @@ namespace ts { category: Diagnostics.Projects, transpileOptionValue: undefined, defaultValueDescription: ".tsbuildinfo", - description: Diagnostics.Specify_the_folder_for_tsbuildinfo_incremental_compilation_files, + description: Diagnostics.Specify_the_path_to_tsbuildinfo_incremental_compilation_file, }, { name: "removeComments", @@ -559,7 +576,7 @@ namespace ts { affectsEmit: true, showInSimplifiedHelpView: true, category: Diagnostics.Emit, - defaultValueDescription: "false", + defaultValueDescription: false, description: Diagnostics.Disable_emitting_comments, }, { @@ -569,7 +586,7 @@ namespace ts { category: Diagnostics.Emit, description: Diagnostics.Disable_emitting_files_from_a_compilation, transpileOptionValue: undefined, - defaultValueDescription: "false" + defaultValueDescription: false, }, { name: "importHelpers", @@ -577,7 +594,7 @@ namespace ts { affectsEmit: true, category: Diagnostics.Emit, description: Diagnostics.Allow_importing_helper_functions_from_tslib_once_per_project_instead_of_including_them_per_file, - defaultValueDescription: "false" + defaultValueDescription: false, }, { name: "importsNotUsedAsValues", @@ -589,7 +606,8 @@ namespace ts { affectsEmit: true, affectsSemanticDiagnostics: true, category: Diagnostics.Emit, - description: Diagnostics.Specify_emit_Slashchecking_behavior_for_imports_that_are_only_used_for_types + description: Diagnostics.Specify_emit_Slashchecking_behavior_for_imports_that_are_only_used_for_types, + defaultValueDescription: ImportsNotUsedAsValues.Remove, }, { name: "downlevelIteration", @@ -597,7 +615,7 @@ namespace ts { affectsEmit: true, category: Diagnostics.Emit, description: Diagnostics.Emit_more_compliant_but_verbose_and_less_performant_JavaScript_for_iteration, - defaultValueDescription: "false" + defaultValueDescription: false, }, { name: "isolatedModules", @@ -605,7 +623,7 @@ namespace ts { category: Diagnostics.Interop_Constraints, description: Diagnostics.Ensure_that_each_file_can_be_safely_transpiled_without_relying_on_other_imports, transpileOptionValue: true, - defaultValueDescription: "false" + defaultValueDescription: false, }, // Strict Type Checks @@ -617,7 +635,7 @@ namespace ts { showInSimplifiedHelpView: true, category: Diagnostics.Type_Checking, description: Diagnostics.Enable_all_strict_type_checking_options, - defaultValueDescription: "false" + defaultValueDescription: false, }, { name: "noImplicitAny", @@ -677,8 +695,8 @@ namespace ts { affectsSemanticDiagnostics: true, strictFlag: true, category: Diagnostics.Type_Checking, - description: Diagnostics.Type_catch_clause_variables_as_unknown_instead_of_any, - defaultValueDescription: "false", + description: Diagnostics.Default_catch_clause_variables_as_unknown_instead_of_any, + defaultValueDescription: false, }, { name: "alwaysStrict", @@ -696,8 +714,8 @@ namespace ts { type: "boolean", affectsSemanticDiagnostics: true, category: Diagnostics.Type_Checking, - description: Diagnostics.Enable_error_reporting_when_a_local_variables_aren_t_read, - defaultValueDescription: "false" + description: Diagnostics.Enable_error_reporting_when_local_variables_aren_t_read, + defaultValueDescription: false, }, { name: "noUnusedParameters", @@ -705,7 +723,7 @@ namespace ts { affectsSemanticDiagnostics: true, category: Diagnostics.Type_Checking, description: Diagnostics.Raise_an_error_when_a_function_parameter_isn_t_read, - defaultValueDescription: "false" + defaultValueDescription: false, }, { name: "exactOptionalPropertyTypes", @@ -713,7 +731,7 @@ namespace ts { affectsSemanticDiagnostics: true, category: Diagnostics.Type_Checking, description: Diagnostics.Interpret_optional_property_types_as_written_rather_than_adding_undefined, - defaultValueDescription: "false", + defaultValueDescription: false, }, { name: "noImplicitReturns", @@ -721,7 +739,7 @@ namespace ts { affectsSemanticDiagnostics: true, category: Diagnostics.Type_Checking, description: Diagnostics.Enable_error_reporting_for_codepaths_that_do_not_explicitly_return_in_a_function, - defaultValueDescription: "false" + defaultValueDescription: false, }, { name: "noFallthroughCasesInSwitch", @@ -730,15 +748,15 @@ namespace ts { affectsSemanticDiagnostics: true, category: Diagnostics.Type_Checking, description: Diagnostics.Enable_error_reporting_for_fallthrough_cases_in_switch_statements, - defaultValueDescription: "false", + defaultValueDescription: false, }, { name: "noUncheckedIndexedAccess", type: "boolean", affectsSemanticDiagnostics: true, category: Diagnostics.Type_Checking, - description: Diagnostics.Include_undefined_in_index_signature_results, - defaultValueDescription: "false", + description: Diagnostics.Add_undefined_to_a_type_when_accessed_using_an_index, + defaultValueDescription: false, }, { name: "noImplicitOverride", @@ -746,7 +764,7 @@ namespace ts { affectsSemanticDiagnostics: true, category: Diagnostics.Type_Checking, description: Diagnostics.Ensure_overriding_members_in_derived_classes_are_marked_with_an_override_modifier, - defaultValueDescription: "false", + defaultValueDescription: false, }, { name: "noPropertyAccessFromIndexSignature", @@ -754,7 +772,7 @@ namespace ts { showInSimplifiedHelpView: false, category: Diagnostics.Type_Checking, description: Diagnostics.Enforces_using_indexed_accessors_for_keys_declared_using_an_indexed_type, - defaultValueDescription: "false" + defaultValueDescription: false, }, // Module Resolution @@ -849,14 +867,14 @@ namespace ts { showInSimplifiedHelpView: true, category: Diagnostics.Interop_Constraints, description: Diagnostics.Emit_additional_JavaScript_to_ease_support_for_importing_CommonJS_modules_This_enables_allowSyntheticDefaultImports_for_type_compatibility, - defaultValueDescription: "false" + defaultValueDescription: false, }, { name: "preserveSymlinks", type: "boolean", category: Diagnostics.Interop_Constraints, description: Diagnostics.Disable_resolving_symlinks_to_their_realpath_This_correlates_to_the_same_flag_in_node, - defaultValueDescription: "false", + defaultValueDescription: false, }, { name: "allowUmdGlobalAccess", @@ -864,7 +882,19 @@ namespace ts { affectsSemanticDiagnostics: true, category: Diagnostics.Modules, description: Diagnostics.Allow_accessing_UMD_globals_from_modules, - defaultValueDescription: "false" + defaultValueDescription: false, + }, + { + name: "moduleSuffixes", + type: "list", + element: { + name: "suffix", + type: "string", + }, + listPreserveFalsyValues: true, + affectsModuleResolution: true, + category: Diagnostics.Modules, + description: Diagnostics.List_of_file_name_suffixes_to_search_when_resolving_a_module, }, // Source Maps @@ -890,7 +920,7 @@ namespace ts { affectsEmit: true, category: Diagnostics.Emit, description: Diagnostics.Include_sourcemap_files_inside_the_emitted_JavaScript, - defaultValueDescription: "false" + defaultValueDescription: false, }, { name: "inlineSources", @@ -898,7 +928,7 @@ namespace ts { affectsEmit: true, category: Diagnostics.Emit, description: Diagnostics.Include_source_code_in_the_sourcemaps_inside_the_emitted_JavaScript, - defaultValueDescription: "false" + defaultValueDescription: false, }, // Experimental @@ -908,7 +938,7 @@ namespace ts { affectsSemanticDiagnostics: true, category: Diagnostics.Language_and_Environment, description: Diagnostics.Enable_experimental_support_for_TC39_stage_2_draft_decorators, - defaultValueDescription: "false", + defaultValueDescription: false, }, { name: "emitDecoratorMetadata", @@ -917,7 +947,7 @@ namespace ts { affectsEmit: true, category: Diagnostics.Language_and_Environment, description: Diagnostics.Emit_design_type_metadata_for_decorated_declarations_in_source_files, - defaultValueDescription: "false", + defaultValueDescription: false, }, // Advanced @@ -932,7 +962,8 @@ namespace ts { name: "jsxFragmentFactory", type: "string", category: Diagnostics.Language_and_Environment, - description: Diagnostics.Specify_the_JSX_Fragment_reference_used_for_fragments_when_targeting_React_JSX_emit_e_g_React_Fragment_or_Fragment + description: Diagnostics.Specify_the_JSX_Fragment_reference_used_for_fragments_when_targeting_React_JSX_emit_e_g_React_Fragment_or_Fragment, + defaultValueDescription: "React.Fragment", }, { name: "jsxImportSource", @@ -950,7 +981,7 @@ namespace ts { affectsModuleResolution: true, category: Diagnostics.Modules, description: Diagnostics.Enable_importing_json_files, - defaultValueDescription: "false" + defaultValueDescription: false, }, { @@ -977,7 +1008,7 @@ namespace ts { type: "boolean", category: Diagnostics.Completeness, description: Diagnostics.Skip_type_checking_d_ts_files_that_are_included_with_TypeScript, - defaultValueDescription: "false", + defaultValueDescription: false, }, { name: "charset", @@ -992,7 +1023,7 @@ namespace ts { affectsEmit: true, category: Diagnostics.Emit, description: Diagnostics.Emit_a_UTF_8_Byte_Order_Mark_BOM_in_the_beginning_of_output_files, - defaultValueDescription: "false" + defaultValueDescription: false, }, { name: "newLine", @@ -1012,7 +1043,7 @@ namespace ts { affectsSemanticDiagnostics: true, category: Diagnostics.Output_Formatting, description: Diagnostics.Disable_truncating_types_in_error_messages, - defaultValueDescription: "false" + defaultValueDescription: false, }, { name: "noLib", @@ -1023,7 +1054,7 @@ namespace ts { // We are not returning a sourceFile for lib file when asked by the program, // so pass --noLib to avoid reporting a file not found error. transpileOptionValue: true, - defaultValueDescription: "false" + defaultValueDescription: false, }, { name: "noResolve", @@ -1034,7 +1065,7 @@ namespace ts { // We are not doing a full typecheck, we are not resolving the whole context, // so pass --noResolve to avoid reporting missing file errors. transpileOptionValue: true, - defaultValueDescription: "false" + defaultValueDescription: false, }, { name: "stripInternal", @@ -1042,7 +1073,7 @@ namespace ts { affectsEmit: true, category: Diagnostics.Emit, description: Diagnostics.Disable_emitting_declarations_that_have_internal_in_their_JSDoc_comments, - defaultValueDescription: "false", + defaultValueDescription: false, }, { name: "disableSizeLimit", @@ -1050,7 +1081,7 @@ namespace ts { affectsProgramStructure: true, category: Diagnostics.Editor_Support, description: Diagnostics.Remove_the_20mb_cap_on_total_source_code_size_for_JavaScript_files_in_the_TypeScript_language_server, - defaultValueDescription: "false" + defaultValueDescription: false, }, { name: "disableSourceOfProjectReferenceRedirect", @@ -1058,7 +1089,7 @@ namespace ts { isTSConfigOnly: true, category: Diagnostics.Projects, description: Diagnostics.Disable_preferring_source_files_instead_of_declaration_files_when_referencing_composite_projects, - defaultValueDescription: "false", + defaultValueDescription: false, }, { name: "disableSolutionSearching", @@ -1066,7 +1097,7 @@ namespace ts { isTSConfigOnly: true, category: Diagnostics.Projects, description: Diagnostics.Opt_a_project_out_of_multi_project_reference_checking_when_editing, - defaultValueDescription: "false", + defaultValueDescription: false, }, { name: "disableReferencedProjectLoad", @@ -1074,7 +1105,7 @@ namespace ts { isTSConfigOnly: true, category: Diagnostics.Projects, description: Diagnostics.Reduce_the_number_of_projects_loaded_automatically_by_TypeScript, - defaultValueDescription: "false", + defaultValueDescription: false, }, { name: "noImplicitUseStrict", @@ -1082,7 +1113,7 @@ namespace ts { affectsSemanticDiagnostics: true, category: Diagnostics.Backwards_Compatibility, description: Diagnostics.Disable_adding_use_strict_directives_in_emitted_JavaScript_files, - defaultValueDescription: "false" + defaultValueDescription: false, }, { name: "noEmitHelpers", @@ -1090,7 +1121,7 @@ namespace ts { affectsEmit: true, category: Diagnostics.Emit, description: Diagnostics.Disable_generating_custom_helper_functions_like_extends_in_compiled_output, - defaultValueDescription: "false" + defaultValueDescription: false, }, { name: "noEmitOnError", @@ -1099,7 +1130,7 @@ namespace ts { category: Diagnostics.Emit, transpileOptionValue: undefined, description: Diagnostics.Disable_emitting_files_if_any_type_checking_errors_are_reported, - defaultValueDescription: "false" + defaultValueDescription: false, }, { name: "preserveConstEnums", @@ -1107,7 +1138,7 @@ namespace ts { affectsEmit: true, category: Diagnostics.Emit, description: Diagnostics.Disable_erasing_const_enum_declarations_in_generated_code, - defaultValueDescription: "false", + defaultValueDescription: false, }, { name: "declarationDir", @@ -1124,7 +1155,7 @@ namespace ts { type: "boolean", category: Diagnostics.Completeness, description: Diagnostics.Skip_type_checking_all_d_ts_files, - defaultValueDescription: "false" + defaultValueDescription: false, }, { name: "allowUnusedLabels", @@ -1133,7 +1164,7 @@ namespace ts { affectsSemanticDiagnostics: true, category: Diagnostics.Type_Checking, description: Diagnostics.Disable_error_reporting_for_unused_labels, - defaultValueDescription: "undefined" + defaultValueDescription: undefined, }, { name: "allowUnreachableCode", @@ -1142,7 +1173,7 @@ namespace ts { affectsSemanticDiagnostics: true, category: Diagnostics.Type_Checking, description: Diagnostics.Disable_error_reporting_for_unreachable_code, - defaultValueDescription: "undefined" + defaultValueDescription: undefined, }, { name: "suppressExcessPropertyErrors", @@ -1150,7 +1181,7 @@ namespace ts { affectsSemanticDiagnostics: true, category: Diagnostics.Backwards_Compatibility, description: Diagnostics.Disable_reporting_of_excess_property_errors_during_the_creation_of_object_literals, - defaultValueDescription: "false" + defaultValueDescription: false, }, { name: "suppressImplicitAnyIndexErrors", @@ -1158,7 +1189,7 @@ namespace ts { affectsSemanticDiagnostics: true, category: Diagnostics.Backwards_Compatibility, description: Diagnostics.Suppress_noImplicitAny_errors_when_indexing_objects_that_lack_index_signatures, - defaultValueDescription: "false" + defaultValueDescription: false, }, { name: "forceConsistentCasingInFileNames", @@ -1166,7 +1197,7 @@ namespace ts { affectsModuleResolution: true, category: Diagnostics.Interop_Constraints, description: Diagnostics.Ensure_that_casing_is_correct_in_imports, - defaultValueDescription: "false" + defaultValueDescription: false, }, { name: "maxNodeModuleJsDepth", @@ -1174,7 +1205,7 @@ namespace ts { affectsModuleResolution: true, category: Diagnostics.JavaScript_Support, description: Diagnostics.Specify_the_maximum_folder_depth_used_for_checking_JavaScript_files_from_node_modules_Only_applicable_with_allowJs, - defaultValueDescription: "0" + defaultValueDescription: 0, }, { name: "noStrictGenericChecks", @@ -1182,7 +1213,7 @@ namespace ts { affectsSemanticDiagnostics: true, category: Diagnostics.Backwards_Compatibility, description: Diagnostics.Disable_strict_checking_of_generic_signatures_in_function_types, - defaultValueDescription: "false" + defaultValueDescription: false, }, { name: "useDefineForClassFields", @@ -1199,7 +1230,7 @@ namespace ts { affectsEmit: true, category: Diagnostics.Emit, description: Diagnostics.Preserve_unused_imported_values_in_the_JavaScript_output_that_would_otherwise_be_removed, - defaultValueDescription: "false", + defaultValueDescription: false, }, { @@ -1207,7 +1238,7 @@ namespace ts { type: "boolean", category: Diagnostics.Backwards_Compatibility, description: Diagnostics.Make_keyof_only_return_strings_instead_of_string_numbers_or_symbols_Legacy_option, - defaultValueDescription: "false" + defaultValueDescription: false, }, { // A list of plugins to load in the language service @@ -1218,10 +1249,22 @@ namespace ts { name: "plugin", type: "object" }, - description: Diagnostics.List_of_language_service_plugins, + description: Diagnostics.Specify_a_list_of_language_service_plugins_to_include, category: Diagnostics.Editor_Support, }, + { + name: "moduleDetection", + type: new Map(getEntries({ + auto: ModuleDetectionKind.Auto, + legacy: ModuleDetectionKind.Legacy, + force: ModuleDetectionKind.Force, + })), + affectsModuleResolution: true, + description: Diagnostics.Control_what_method_is_used_to_detect_module_format_JS_files, + category: Diagnostics.Language_and_Environment, + defaultValueDescription: Diagnostics.auto_Colon_Treat_files_with_imports_exports_import_meta_jsx_with_jsx_Colon_react_jsx_or_esm_format_with_module_Colon_node12_as_modules, + } ]; /* @internal */ @@ -1263,7 +1306,7 @@ namespace ts { category: Diagnostics.Command_line_Options, description: Diagnostics.Enable_verbose_logging, type: "boolean", - defaultValueDescription: "false", + defaultValueDescription: false, }, { name: "dry", @@ -1271,7 +1314,7 @@ namespace ts { category: Diagnostics.Command_line_Options, description: Diagnostics.Show_what_would_be_built_or_deleted_if_specified_with_clean, type: "boolean", - defaultValueDescription: "false", + defaultValueDescription: false, }, { name: "force", @@ -1279,14 +1322,14 @@ namespace ts { category: Diagnostics.Command_line_Options, description: Diagnostics.Build_all_projects_including_those_that_appear_to_be_up_to_date, type: "boolean", - defaultValueDescription: "false", + defaultValueDescription: false, }, { name: "clean", category: Diagnostics.Command_line_Options, description: Diagnostics.Delete_the_outputs_of_all_projects, type: "boolean", - defaultValueDescription: "false", + defaultValueDescription: false, } ]; @@ -1304,12 +1347,12 @@ namespace ts { */ name: "enableAutoDiscovery", type: "boolean", - defaultValueDescription: "false", + defaultValueDescription: false, }, { name: "enable", type: "boolean", - defaultValueDescription: "false", + defaultValueDescription: false, }, { name: "include", @@ -1330,7 +1373,7 @@ namespace ts { { name: "disableFilenameBasedTypeAcquisition", type: "boolean", - defaultValueDescription: "false", + defaultValueDescription: false, }, ]; @@ -2482,7 +2525,7 @@ namespace ts { const result: string[] = []; result.push(`{`); result.push(`${tab}"compilerOptions": {`); - result.push(`${tab}${tab}/* ${getLocaleSpecificMessage(Diagnostics.Visit_https_Colon_Slash_Slashaka_ms_Slashtsconfig_json_to_read_more_about_this_file)} */`); + result.push(`${tab}${tab}/* ${getLocaleSpecificMessage(Diagnostics.Visit_https_Colon_Slash_Slashaka_ms_Slashtsconfig_to_read_more_about_this_file)} */`); result.push(""); // Print out each row, aligning all the descriptions on the same column. for (const entry of entries) { @@ -2560,7 +2603,10 @@ namespace ts { * file to. e.g. outDir */ export function parseJsonSourceFileConfigFileContent(sourceFile: TsConfigSourceFile, host: ParseConfigHost, basePath: string, existingOptions?: CompilerOptions, configFileName?: string, resolutionStack?: Path[], extraFileExtensions?: readonly FileExtensionInfo[], extendedConfigCache?: Map, existingWatchOptions?: WatchOptions): ParsedCommandLine { - return parseJsonConfigFileContentWorker(/*json*/ undefined, sourceFile, host, basePath, existingOptions, existingWatchOptions, configFileName, resolutionStack, extraFileExtensions, extendedConfigCache); + tracing?.push(tracing.Phase.Parse, "parseJsonSourceFileConfigFileContent", { path: sourceFile.fileName }); + const result = parseJsonConfigFileContentWorker(/*json*/ undefined, sourceFile, host, basePath, existingOptions, existingWatchOptions, configFileName, resolutionStack, extraFileExtensions, extendedConfigCache); + tracing?.pop(); + return result; } /*@internal*/ @@ -2737,7 +2783,7 @@ namespace ts { function getPropFromRaw(prop: "files" | "include" | "exclude" | "references", validateElement: (value: unknown) => boolean, elementTypeName: string): PropOfRaw { if (hasProperty(raw, prop) && !isNullOrUndefined(raw[prop])) { if (isArray(raw[prop])) { - const result = raw[prop]; + const result = raw[prop] as T[]; if (!sourceFile && !every(result, validateElement)) { errors.push(createCompilerDiagnostic(Diagnostics.Compiler_option_0_requires_a_value_of_type_1, prop, elementTypeName)); } @@ -3140,7 +3186,7 @@ namespace ts { if (isCompilerOptionsValue(opt, value)) { const optType = opt.type; if (optType === "list" && isArray(value)) { - return convertJsonOptionOfListType(opt as CommandLineOptionOfListType, value, basePath, errors); + return convertJsonOptionOfListType(opt , value, basePath, errors); } else if (!isString(optType)) { return convertJsonOptionOfCustomType(opt as CommandLineOptionOfCustomType, value as string, errors); @@ -3158,7 +3204,7 @@ namespace ts { if (option.type === "list") { const listOption = option; if (listOption.element.isFilePath || !isString(listOption.element.type)) { - return filter(map(value, v => normalizeOptionValue(listOption.element, basePath, v)), v => !!v) as CompilerOptionsValue; + return filter(map(value, v => normalizeOptionValue(listOption.element, basePath, v)), v => listOption.listPreserveFalsyValues ? true : !!v) as CompilerOptionsValue; } return value; } @@ -3199,7 +3245,7 @@ namespace ts { } function convertJsonOptionOfListType(option: CommandLineOptionOfListType, values: readonly any[], basePath: string, errors: Push): any[] { - return filter(map(values, v => convertJsonOption(option.element, v, basePath, errors)), v => !!v); + return filter(map(values, v => convertJsonOption(option.element, v, basePath, errors)), v => option.listPreserveFalsyValues ? true : !!v); } /** @@ -3493,7 +3539,7 @@ namespace ts { ? WatchDirectoryFlags.Recursive : WatchDirectoryFlags.None }; } - if (isImplicitGlob(spec)) { + if (isImplicitGlob(spec.substring(spec.lastIndexOf(directorySeparator) + 1))) { return { key: useCaseSensitiveFileNames ? spec : toFileNameLowerCase(spec), flags: WatchDirectoryFlags.Recursive @@ -3601,7 +3647,8 @@ namespace ts { case "boolean": return true; case "string": - return option.isFilePath ? "./" : ""; + const defaultValue = option.defaultValueDescription; + return option.isFilePath ? `./${defaultValue && typeof defaultValue === "string" ? defaultValue : ""}` : ""; case "list": return []; case "object": diff --git a/src/compiler/core.ts b/src/compiler/core.ts index fab736de008cd..a3be6f976cdc9 100644 --- a/src/compiler/core.ts +++ b/src/compiler/core.ts @@ -23,34 +23,6 @@ namespace ts { export const emptyMap: ReadonlyESMap = new Map(); export const emptySet: ReadonlySet = new Set(); - /** - * Create a new map. - * @deprecated Use `new Map()` instead. - */ - export function createMap(): ESMap; - export function createMap(): ESMap; - export function createMap(): ESMap { - return new Map(); - } - - /** - * Create a new map from a template object is provided, the map will copy entries from it. - * @deprecated Use `new Map(getEntries(template))` instead. - */ - export function createMapFromTemplate(template: MapLike): ESMap { - const map: ESMap = new Map(); - - // Copies keys/values from template. Note that for..in will not throw if - // template is undefined, and instead will just exit the loop. - for (const key in template) { - if (hasOwnProperty.call(template, key)) { - map.set(key, template[key]); - } - } - - return map; - } - export function length(array: readonly any[] | undefined): number { return array ? array.length : 0; } @@ -329,7 +301,7 @@ namespace ts { array.length = outIndex; } - export function clear(array: {}[]): void { + export function clear(array: unknown[]): void { array.length = 0; } @@ -798,7 +770,11 @@ namespace ts { return deduplicated as any as SortedReadonlyArray; } - export function insertSorted(array: SortedArray, insert: T, compare: Comparer): void { + export function createSortedArray(): SortedArray { + return [] as any as SortedArray; // TODO: GH#19873 + } + + export function insertSorted(array: SortedArray, insert: T, compare: Comparer, allowDuplicates?: boolean): void { if (array.length === 0) { array.push(insert); return; @@ -808,6 +784,9 @@ namespace ts { if (insertIndex < 0) { array.splice(~insertIndex, 0, insert); } + else if (allowDuplicates) { + array.splice(insertIndex, 0, insert); + } } export function sortAndDeduplicate(array: readonly string[]): SortedReadonlyArray; @@ -1273,11 +1252,11 @@ namespace ts { return result; } - export function getOwnValues(sparseArray: T[]): T[] { + export function getOwnValues(collection: MapLike | T[]): T[] { const values: T[] = []; - for (const key in sparseArray) { - if (hasOwnProperty.call(sparseArray, key)) { - values.push(sparseArray[key]); + for (const key in collection) { + if (hasOwnProperty.call(collection, key)) { + values.push((collection as MapLike)[key]); } } @@ -1509,10 +1488,163 @@ namespace ts { return createMultiMap() as UnderscoreEscapedMultiMap; } + /** + * Creates a Set with custom equality and hash code functionality. This is useful when you + * want to use something looser than object identity - e.g. "has the same span". + * + * If `equals(a, b)`, it must be the case that `getHashCode(a) === getHashCode(b)`. + * The converse is not required. + * + * To facilitate a perf optimization (lazy allocation of bucket arrays), `TElement` is + * assumed not to be an array type. + */ + export function createSet(getHashCode: (element: TElement) => THash, equals: EqualityComparer): Set { + const multiMap = new Map(); + let size = 0; + + function getElementIterator(): Iterator { + const valueIt = multiMap.values(); + let arrayIt: Iterator | undefined; + return { + next: () => { + while (true) { + if (arrayIt) { + const n = arrayIt.next(); + if (!n.done) { + return { value: n.value }; + } + arrayIt = undefined; + } + else { + const n = valueIt.next(); + if (n.done) { + return { value: undefined, done: true }; + } + if (!isArray(n.value)) { + return { value: n.value }; + } + arrayIt = arrayIterator(n.value); + } + } + } + }; + } + + const set: Set = { + has(element: TElement): boolean { + const hash = getHashCode(element); + if (!multiMap.has(hash)) return false; + const candidates = multiMap.get(hash)!; + if (!isArray(candidates)) return equals(candidates, element); + + for (const candidate of candidates) { + if (equals(candidate, element)) { + return true; + } + } + return false; + }, + add(element: TElement): Set { + const hash = getHashCode(element); + if (multiMap.has(hash)) { + const values = multiMap.get(hash)!; + if (isArray(values)) { + if (!contains(values, element, equals)) { + values.push(element); + size++; + } + } + else { + const value = values; + if (!equals(value, element)) { + multiMap.set(hash, [ value, element ]); + size++; + } + } + } + else { + multiMap.set(hash, element); + size++; + } + + return this; + }, + delete(element: TElement): boolean { + const hash = getHashCode(element); + if (!multiMap.has(hash)) return false; + const candidates = multiMap.get(hash)!; + if (isArray(candidates)) { + for (let i = 0; i < candidates.length; i++) { + if (equals(candidates[i], element)) { + if (candidates.length === 1) { + multiMap.delete(hash); + } + else if (candidates.length === 2) { + multiMap.set(hash, candidates[1 - i]); + } + else { + unorderedRemoveItemAt(candidates, i); + } + size--; + return true; + } + } + } + else { + const candidate = candidates; + if (equals(candidate, element)) { + multiMap.delete(hash); + size--; + return true; + } + } + + return false; + }, + clear(): void { + multiMap.clear(); + size = 0; + }, + get size() { + return size; + }, + forEach(action: (value: TElement, key: TElement) => void): void { + for (const elements of arrayFrom(multiMap.values())) { + if (isArray(elements)) { + for (const element of elements) { + action(element, element); + } + } + else { + const element = elements; + action(element, element); + } + } + }, + keys(): Iterator { + return getElementIterator(); + }, + values(): Iterator { + return getElementIterator(); + }, + entries(): Iterator<[TElement, TElement]> { + const it = getElementIterator(); + return { + next: () => { + const n = it.next(); + return n.done ? n : { value: [ n.value, n.value ] }; + } + }; + }, + }; + + return set; + } + /** * Tests whether a value is an array. */ - export function isArray(value: any): value is readonly {}[] { + export function isArray(value: any): value is readonly unknown[] { return Array.isArray ? Array.isArray(value) : value instanceof Array; } @@ -1545,7 +1677,7 @@ namespace ts { } /** Does nothing. */ - export function noop(_?: {} | null | undefined): void { } + export function noop(_?: unknown): void { } /** Do nothing and return false */ export function returnFalse(): false { @@ -2177,14 +2309,16 @@ namespace ts { return (arg: T) => f(arg) && g(arg); } - export function or(...fs: ((...args: T) => boolean)[]): (...args: T) => boolean { + export function or(...fs: ((...args: T) => U)[]): (...args: T) => U { return (...args) => { + let lastResult: U; for (const f of fs) { - if (f(...args)) { - return true; + lastResult = f(...args); + if (lastResult) { + return lastResult; } } - return false; + return lastResult!; }; } diff --git a/src/compiler/corePublic.ts b/src/compiler/corePublic.ts index 4391aa1b5f262..1d84b6726e6b4 100644 --- a/src/compiler/corePublic.ts +++ b/src/compiler/corePublic.ts @@ -1,7 +1,7 @@ namespace ts { // WARNING: The script `configurePrerelease.ts` uses a regexp to parse out these values. // If changing the text in this section, be sure to test `configurePrerelease` too. - export const versionMajorMinor = "4.5"; + export const versionMajorMinor = "4.7"; // The following is baselined as a literal template type without intervention /** The version of the TypeScript compiler release */ // eslint-disable-next-line @typescript-eslint/no-inferrable-types @@ -114,16 +114,21 @@ namespace ts { /* @internal */ namespace NativeCollections { - declare const Map: MapConstructor | undefined; - declare const Set: SetConstructor | undefined; + declare const self: any; + + const globals = typeof globalThis !== "undefined" ? globalThis : + typeof global !== "undefined" ? global : + typeof self !== "undefined" ? self : + undefined; /** * Returns the native Map implementation if it is available and compatible (i.e. supports iteration). */ export function tryGetNativeMap(): MapConstructor | undefined { // Internet Explorer's Map doesn't support iteration, so don't use it. + const gMap = globals?.Map; // eslint-disable-next-line no-in-operator - return typeof Map !== "undefined" && "entries" in Map.prototype && new Map([[0, 0]]).size === 1 ? Map : undefined; + return typeof gMap !== "undefined" && "entries" in gMap.prototype && new gMap([[0, 0]]).size === 1 ? gMap : undefined; } /** @@ -131,8 +136,9 @@ namespace ts { */ export function tryGetNativeSet(): SetConstructor | undefined { // Internet Explorer's Set doesn't support iteration, so don't use it. + const gSet = globals?.Set; // eslint-disable-next-line no-in-operator - return typeof Set !== "undefined" && "entries" in Set.prototype && new Set([0]).size === 1 ? Set : undefined; + return typeof gSet !== "undefined" && "entries" in gSet.prototype && new gSet([0]).size === 1 ? gSet : undefined; } } diff --git a/src/compiler/debug.ts b/src/compiler/debug.ts index 2e6b87a30e646..8ab5de5b77832 100644 --- a/src/compiler/debug.ts +++ b/src/compiler/debug.ts @@ -171,12 +171,6 @@ namespace ts { return value; } - /** - * @deprecated Use `checkDefined` to check whether a value is defined inline. Use `assertIsDefined` to check whether - * a value is defined at the statement level. - */ - export const assertDefined = checkDefined; - export function assertEachIsDefined(value: NodeArray, message?: string, stackCrawlMark?: AnyFunction): asserts value is NodeArray; export function assertEachIsDefined(value: readonly T[], message?: string, stackCrawlMark?: AnyFunction): asserts value is readonly NonNullable[]; export function assertEachIsDefined(value: readonly T[], message?: string, stackCrawlMark?: AnyFunction) { @@ -190,14 +184,8 @@ namespace ts { return value; } - /** - * @deprecated Use `checkEachDefined` to check whether the elements of an array are defined inline. Use `assertEachIsDefined` to check whether - * the elements of an array are defined at the statement level. - */ - export const assertEachDefined = checkEachDefined; - export function assertNever(member: never, message = "Illegal value:", stackCrawlMark?: AnyFunction): never { - const detail = typeof member === "object" && hasProperty(member, "kind") && hasProperty(member, "pos") && formatSyntaxKind ? "SyntaxKind: " + formatSyntaxKind((member as Node).kind) : JSON.stringify(member); + const detail = typeof member === "object" && hasProperty(member, "kind") && hasProperty(member, "pos") ? "SyntaxKind: " + formatSyntaxKind((member as Node).kind) : JSON.stringify(member); return fail(`${message} ${detail}`, stackCrawlMark || assertNever); } @@ -351,6 +339,10 @@ namespace ts { return formatEnum(kind, (ts as any).SyntaxKind, /*isFlags*/ false); } + export function formatSnippetKind(kind: SnippetKind | undefined): string { + return formatEnum(kind, (ts as any).SnippetKind, /*isFlags*/ false); + } + export function formatNodeFlags(flags: NodeFlags | undefined): string { return formatEnum(flags, (ts as any).NodeFlags, /*isFlags*/ true); } @@ -662,7 +654,7 @@ namespace ts { if (text === undefined) { const parseNode = getParseTreeNode(this); const sourceFile = parseNode && getSourceFileOfNode(parseNode); - text = sourceFile ? getSourceTextOfNodeFromSourceFile(sourceFile, parseNode!, includeTrivia) : ""; + text = sourceFile ? getSourceTextOfNodeFromSourceFile(sourceFile, parseNode, includeTrivia) : ""; map?.set(this, text); } return text; diff --git a/src/compiler/diagnosticMessages.json b/src/compiler/diagnosticMessages.json index dede59726e300..dce23f22f708a 100644 --- a/src/compiler/diagnosticMessages.json +++ b/src/compiler/diagnosticMessages.json @@ -15,7 +15,7 @@ "category": "Error", "code": 1006 }, - "The parser expected to find a '}' to match the '{' token here.": { + "The parser expected to find a '{1}' to match the '{0}' token here.": { "category": "Error", "code": 1007 }, @@ -335,7 +335,7 @@ "category": "Error", "code": 1116 }, - "An object literal cannot have multiple properties with the same name in strict mode.": { + "An object literal cannot have multiple properties with the same name.": { "category": "Error", "code": 1117 }, @@ -727,11 +727,11 @@ "category": "Error", "code": 1231 }, - "An import declaration can only be used in a namespace or module.": { + "An import declaration can only be used at the top level of a namespace or module.": { "category": "Error", "code": 1232 }, - "An export declaration can only be used in a module.": { + "An export declaration can only be used at the top level of a namespace or module.": { "category": "Error", "code": 1233 }, @@ -739,7 +739,7 @@ "category": "Error", "code": 1234 }, - "A namespace declaration is only allowed in a namespace or module.": { + "A namespace declaration is only allowed at the top level of a namespace or module.": { "category": "Error", "code": 1235 }, @@ -867,7 +867,30 @@ "category": "Error", "code": 1268 }, - + "Cannot use 'export import' on a type or type-only namespace when the '--isolatedModules' flag is provided.": { + "category": "Error", + "code": 1269 + }, + "Decorator function return type '{0}' is not assignable to type '{1}'.": { + "category": "Error", + "code": 1270 + }, + "Decorator function return type is '{0}' but is expected to be 'void' or 'any'.": { + "category": "Error", + "code": 1271 + }, + "A type referenced in a decorated signature must be imported with 'import type' or a namespace import when 'isolatedModules' and 'emitDecoratorMetadata' are enabled.": { + "category": "Error", + "code": 1272 + }, + "'{0}' modifier cannot appear on a type parameter": { + "category": "Error", + "code": 1273 + }, + "'{0}' modifier can only appear on a type parameter of a class, interface or type alias": { + "category": "Error", + "code": 1274 + }, "'with' statements are not allowed in an async function block.": { "category": "Error", "code": 1300 @@ -924,7 +947,7 @@ "category": "Error", "code": 1323 }, - "Dynamic imports only support a second argument when the '--module' option is set to 'esnext'.": { + "Dynamic imports only support a second argument when the '--module' option is set to 'esnext' or 'nodenext'.": { "category": "Error", "code": 1324 }, @@ -1140,10 +1163,6 @@ "category": "Error", "code": 1383 }, - "A 'new' expression with type arguments must always be followed by a parenthesized argument list.": { - "category": "Error", - "code": 1384 - }, "Function type notation must be parenthesized when used in a union type.": { "category": "Error", "code": 1385 @@ -1164,6 +1183,10 @@ "category": "Error", "code": 1389 }, + "'{0}' is not allowed as a parameter name.": { + "category": "Error", + "code": 1390 + }, "An import alias cannot use 'import type'": { "category": "Error", "code": 1392 @@ -1396,7 +1419,26 @@ "category": "Error", "code": 1451 }, - + "Resolution modes are only supported when `moduleResolution` is `node12` or `nodenext`.": { + "category": "Error", + "code": 1452 + }, + "`resolution-mode` should be either `require` or `import`.": { + "category": "Error", + "code": 1453 + }, + "`resolution-mode` can only be set for type-only imports.": { + "category": "Error", + "code": 1454 + }, + "`resolution-mode` is the only valid key for type import assertions.": { + "category": "Error", + "code": 1455 + }, + "Type import assertions should have exactly one key - `resolution-mode` - with value `import` or `require`.": { + "category": "Error", + "code": 1456 + }, "The 'import.meta' meta-property is not allowed in files which will build into CommonJS output.": { "category": "Error", "code": 1470 @@ -1405,11 +1447,34 @@ "category": "Error", "code": 1471 }, - "{0} is not allowed in CommonJS modules. Please convert to ES module.": { + "'catch' or 'finally' expected.": { "category": "Error", "code": 1472 }, - + "An import declaration can only be used at the top level of a module.": { + "category": "Error", + "code": 1473 + }, + "An export declaration can only be used at the top level of a module.": { + "category": "Error", + "code": 1474 + }, + "Control what method is used to detect module-format JS files.": { + "category": "Message", + "code": 1475 + }, + "\"auto\": Treat files with imports, exports, import.meta, jsx (with jsx: react-jsx), or esm format (with module: node12+) as modules.": { + "category": "Message", + "code": 1476 + }, + "Top-level 'for await' loop is not allowed in CommonJS modules. Please convert to ES module.": { + "category": "Error", + "code": 1477 + }, + "Top-level 'await' expression is not allowed in CommonJS modules. Please convert to ES module.": { + "category": "Error", + "code": 1478 + }, "The types of '{0}' are incompatible between these types.": { "category": "Error", "code": 2200 @@ -1446,7 +1511,10 @@ "category": "Error", "code": 2207 }, - + "This type parameter probably needs an `extends object` constraint.": { + "category": "Error", + "code": 2208 + }, "Duplicate identifier '{0}'.": { "category": "Error", "code": 2300 @@ -1491,6 +1559,10 @@ "category": "Error", "code": 2310 }, + "Cannot find name '{0}'. Did you mean to write this in an async function?": { + "category": "Error", + "code": 2311 + }, "An interface can only extend an object type or intersection of object types with statically known members.": { "category": "Error", "code": 2312 @@ -1743,7 +1815,7 @@ "category": "Error", "code": 2375 }, - "A 'super' call must be the first statement in the constructor when a class contains initialized properties, parameter properties, or private identifiers.": { + "A 'super' call must be the first statement in the constructor to refer to 'super' or 'this' when a derived class contains initialized properties, parameter properties, or private identifiers.": { "category": "Error", "code": 2376 }, @@ -1835,6 +1907,10 @@ "category": "Error", "code": 2400 }, + "A 'super' call must be a root-level statement within a constructor of a derived class that contains initialized properties, parameter properties, or private identifiers.": { + "category": "Error", + "code": 2401 + }, "Expression resolves to '_super' that compiler uses to capture base class reference.": { "category": "Error", "code": 2402 @@ -2663,7 +2739,14 @@ "category": "Error", "code": 2634 }, - + "Type '{0}' has no signatures for which the type argument list is applicable.": { + "category": "Error", + "code": 2635 + }, + "Type '{0}' is not assignable to type '{1}' as implied by variance annotation.": { + "category": "Error", + "code": 2636 + }, "Cannot augment module '{0}' with value exports because it resolves to a non-module entity.": { "category": "Error", "code": 2649 @@ -3269,10 +3352,6 @@ "category": "Error", "code": 2804 }, - "Static fields with private names can't have initializers when the '--useDefineForClassFields' flag is not specified with a '--target' of 'esnext'. Consider adding the '--useDefineForClassFields' flag.": { - "category": "Error", - "code": 2805 - }, "Private accessor was defined without a getter.": { "category": "Error", "code": 2806 @@ -3289,10 +3368,6 @@ "category": "Error", "code": 2809 }, - "Property '{0}' may not be used in a static property's initializer in the same class when 'target' is 'esnext' and 'useDefineForClassFields' is 'false'.": { - "category": "Error", - "code": 2810 - }, "Initializer for property '{0}'": { "category": "Error", "code": 2811 @@ -3333,7 +3408,7 @@ "category": "Error", "code": 2820 }, - "Import assertions are only supported when the '--module' option is set to 'esnext'.": { + "Import assertions are only supported when the '--module' option is set to 'esnext' or 'nodenext'.": { "category": "Error", "code": 2821 }, @@ -3345,7 +3420,22 @@ "category": "Error", "code": 2833 }, - + "Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path.": { + "category": "Error", + "code": 2834 + }, + "Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean '{0}'?": { + "category": "Error", + "code": 2835 + }, + "Import assertions are not allowed on statements that transpile to commonjs 'require' calls.": { + "category": "Error", + "code": 2836 + }, + "Import assertion values must be string literal expressions.": { + "category": "Error", + "code": 2837 + }, "Import declaration '{0}' is using private name '{1}'.": { "category": "Error", "code": 4000 @@ -3770,6 +3860,10 @@ "category": "Error", "code": 4123 }, + "Compiler option '{0}' of value '{1}' is unstable. Use nightly TypeScript to silence this error. Try updating with 'npm install -D typescript@next'.": { + "category": "Error", + "code": 4124 + }, "The current host does not support the '{0}' option.": { "category": "Error", "code": 5001 @@ -3994,7 +4088,6 @@ "category": "Error", "code": 5095 }, - "Generates a sourcemap for each corresponding '.d.ts' file.": { "category": "Message", "code": 6000 @@ -4135,6 +4228,11 @@ "category": "Message", "code": 6040 }, + "Errors Files": { + "_locale_notes": "There is a double space, and the order cannot be changed (they're table headings) ^", + "category": "Message", + "code": 6041 + }, "Generates corresponding '.map' file.": { "category": "Message", "code": 6043 @@ -4609,10 +4707,6 @@ "category": "Message", "code": 6180 }, - "List of language service plugins.": { - "category": "Message", - "code": 6181 - }, "Scoped package detected, looking in '{0}'": { "category": "Message", "code": 6182 @@ -4853,7 +4947,6 @@ "category": "Message", "code": 6243 }, - "Modules": { "category": "Message", "code": 6244 @@ -4914,7 +5007,18 @@ "category": "Error", "code": 6258 }, - + "Found 1 error in {1}": { + "category": "Message", + "code": 6259 + }, + "Found {0} errors in the same file, starting at: {1}": { + "category": "Message", + "code": 6260 + }, + "Found {0} errors in {1} files.": { + "category": "Message", + "code": 6261 + }, "Directory '{0}' has no containing package.json scope. Imports will not resolve.": { "category": "Message", "code": 6270 @@ -4943,7 +5047,6 @@ "category": "Message", "code": 6276 }, - "Enable project compilation": { "category": "Message", "code": 6302 @@ -5032,7 +5135,7 @@ "category": "Message", "code": 6364 }, - "Delete the outputs of all projects": { + "Delete the outputs of all projects.": { "category": "Message", "code": 6365 }, @@ -5076,10 +5179,6 @@ "category": "Error", "code": 6377 }, - "Enable incremental compilation": { - "category": "Message", - "code": 6378 - }, "Composite projects may not disable incremental compilation.": { "category": "Error", "code": 6379 @@ -5162,7 +5261,6 @@ "category": "Message", "code": 6398 }, - "The expected type comes from property '{0}' which is declared here on type '{1}'": { "category": "Message", "code": 6500 @@ -5191,8 +5289,7 @@ "category": "Message", "code": 6506 }, - - "Allow JavaScript files to be a part of your program. Use the `checkJS` option to get errors from these files.": { + "Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files.": { "category": "Message", "code": 6600 }, @@ -5216,7 +5313,7 @@ "category": "Message", "code": 6605 }, - "Have recompiles in projects that use `incremental` and `watch` mode assume that changes within a file will only affect files directly depending on it.": { + "Have recompiles in projects that use 'incremental' and 'watch' mode assume that changes within a file will only affect files directly depending on it.": { "category": "Message", "code": 6606 }, @@ -5268,7 +5365,7 @@ "category": "Message", "code": 6619 }, - "Disable preferring source files instead of declaration files when referencing composite projects": { + "Disable preferring source files instead of declaration files when referencing composite projects.": { "category": "Message", "code": 6620 }, @@ -5292,7 +5389,7 @@ "category": "Message", "code": 6625 }, - "Emit additional JavaScript to ease support for importing CommonJS modules. This enables `allowSyntheticDefaultImports` for type compatibility.": { + "Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility.": { "category": "Message", "code": 6626 }, @@ -5332,7 +5429,7 @@ "category": "Message", "code": 6635 }, - "Build all projects, including those that appear to be up to date": { + "Build all projects, including those that appear to be up to date.": { "category": "Message", "code": 6636 }, @@ -5372,7 +5469,7 @@ "category": "Message", "code": 6646 }, - "Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'": { + "Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'.": { "category": "Message", "code": 6647 }, @@ -5380,7 +5477,7 @@ "category": "Message", "code": 6648 }, - "Specify module specifier used to import the JSX factory functions when using `jsx: react-jsx*`.`": { + "Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'.": { "category": "Message", "code": 6649 }, @@ -5408,7 +5505,7 @@ "category": "Message", "code": 6655 }, - "Specify the maximum folder depth used for checking JavaScript files from `node_modules`. Only applicable with `allowJs`.": { + "Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'.": { "category": "Message", "code": 6656 }, @@ -5428,7 +5525,7 @@ "category": "Message", "code": 6660 }, - "Disable generating custom helper functions like `__extends` in compiled output.": { + "Disable generating custom helper functions like '__extends' in compiled output.": { "category": "Message", "code": 6661 }, @@ -5444,7 +5541,7 @@ "category": "Message", "code": 6664 }, - "Enable error reporting for expressions and declarations with an implied `any` type..": { + "Enable error reporting for expressions and declarations with an implied 'any' type.": { "category": "Message", "code": 6665 }, @@ -5456,7 +5553,7 @@ "category": "Message", "code": 6667 }, - "Enable error reporting when `this` is given the type `any`.": { + "Enable error reporting when 'this' is given the type 'any'.": { "category": "Message", "code": 6668 }, @@ -5468,11 +5565,11 @@ "category": "Message", "code": 6670 }, - "Enforces using indexed accessors for keys declared using an indexed type": { + "Enforces using indexed accessors for keys declared using an indexed type.": { "category": "Message", "code": 6671 }, - "Disallow `import`s, `require`s or ``s from expanding the number of files TypeScript should add to a project.": { + "Disallow 'import's, 'require's or ''s from expanding the number of files TypeScript should add to a project.": { "category": "Message", "code": 6672 }, @@ -5480,19 +5577,19 @@ "category": "Message", "code": 6673 }, - "Add `undefined` to a type when accessed using an index.": { + "Add 'undefined' to a type when accessed using an index.": { "category": "Message", "code": 6674 }, - "Enable error reporting when a local variables aren't read.": { + "Enable error reporting when local variables aren't read.": { "category": "Message", "code": 6675 }, - "Raise an error when a function parameter isn't read": { + "Raise an error when a function parameter isn't read.": { "category": "Message", "code": 6676 }, - "Deprecated setting. Use `outFile` instead.": { + "Deprecated setting. Use 'outFile' instead.": { "category": "Message", "code": 6677 }, @@ -5500,7 +5597,7 @@ "category": "Message", "code": 6678 }, - "Specify a file that bundles all outputs into one JavaScript file. If `declaration` is true, also designates a file that bundles all .d.ts output.": { + "Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output.": { "category": "Message", "code": 6679 }, @@ -5512,7 +5609,7 @@ "category": "Message", "code": 6681 }, - "Disable erasing `const enum` declarations in generated code.": { + "Disable erasing 'const enum' declarations in generated code.": { "category": "Message", "code": 6682 }, @@ -5520,15 +5617,15 @@ "category": "Message", "code": 6683 }, - "Disable wiping the console in watch mode": { + "Disable wiping the console in watch mode.": { "category": "Message", "code": 6684 }, - "Enable color and formatting in TypeScript's output to make compiler errors easier to read": { + "Enable color and formatting in TypeScript's output to make compiler errors easier to read.": { "category": "Message", "code": 6685 }, - "Specify the object invoked for `createElement`. This only applies when targeting `react` JSX emit.": { + "Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit.": { "category": "Message", "code": 6686 }, @@ -5540,7 +5637,7 @@ "category": "Message", "code": 6688 }, - "Enable importing .json files": { + "Enable importing .json files.": { "category": "Message", "code": 6689 }, @@ -5568,7 +5665,7 @@ "category": "Message", "code": 6695 }, - "Check that the arguments for `bind`, `call`, and `apply` methods match the original function.": { + "Check that the arguments for 'bind', 'call', and 'apply' methods match the original function.": { "category": "Message", "code": 6697 }, @@ -5576,7 +5673,7 @@ "category": "Message", "code": 6698 }, - "When type checking, take into account `null` and `undefined`.": { + "When type checking, take into account 'null' and 'undefined'.": { "category": "Message", "code": 6699 }, @@ -5584,7 +5681,7 @@ "category": "Message", "code": 6700 }, - "Disable emitting declarations that have `@internal` in their JSDoc comments.": { + "Disable emitting declarations that have '@internal' in their JSDoc comments.": { "category": "Message", "code": 6701 }, @@ -5592,7 +5689,7 @@ "category": "Message", "code": 6702 }, - "Suppress `noImplicitAny` errors when indexing objects that lack index signatures.": { + "Suppress 'noImplicitAny' errors when indexing objects that lack index signatures.": { "category": "Message", "code": 6703 }, @@ -5604,11 +5701,11 @@ "category": "Message", "code": 6705 }, - "Log paths used during the `moduleResolution` process.": { + "Log paths used during the 'moduleResolution' process.": { "category": "Message", "code": 6706 }, - "Specify the folder for .tsbuildinfo incremental compilation files.": { + "Specify the path to .tsbuildinfo incremental compilation file.": { "category": "Message", "code": 6707 }, @@ -5616,7 +5713,7 @@ "category": "Message", "code": 6709 }, - "Specify multiple folders that act like `./node_modules/@types`.": { + "Specify multiple folders that act like './node_modules/@types'.": { "category": "Message", "code": 6710 }, @@ -5628,7 +5725,7 @@ "category": "Message", "code": 6712 }, - "Enable verbose logging": { + "Enable verbose logging.": { "category": "Message", "code": 6713 }, @@ -5640,23 +5737,18 @@ "category": "Message", "code": 6715 }, - "Include 'undefined' in index signature results": { - "category": "Message", - "code": 6716 - }, "Require undeclared properties from index signatures to use element accesses.": { "category": "Message", "code": 6717 }, - "Specify emit/checking behavior for imports that are only used for types": { + "Specify emit/checking behavior for imports that are only used for types.": { "category": "Message", "code": 6718 }, - "Type catch clause variables as 'unknown' instead of 'any'.": { + "Default catch clause variables as 'unknown' instead of 'any'.": { "category": "Message", "code": 6803 }, - "one of:": { "category": "Message", "code": 6900 @@ -5781,8 +5873,10 @@ "category": "Message", "code": 6930 }, - - + "List of file name suffixes to search when resolving a module.": { + "category": "Error", + "code": 6931 + }, "Variable '{0}' implicitly has an '{1}' type.": { "category": "Error", "code": 7005 @@ -6001,7 +6095,10 @@ "category": "Error", "code": 7061 }, - + "JSON imports are experimental in ES module mode imports.": { + "category": "Error", + "code": 7062 + }, "You cannot rename this element.": { "category": "Error", "code": 8000 @@ -6222,7 +6319,6 @@ "category": "Error", "code": 18003 }, - "File is a CommonJS module; it may be converted to an ES module.": { "category": "Suggestion", "code": 80001 @@ -6255,7 +6351,6 @@ "category": "Suggestion", "code": 80008 }, - "Add missing 'super()' call": { "category": "Message", "code": 90001 @@ -6300,7 +6395,7 @@ "category": "Message", "code": 90012 }, - "Import '{0}' from module \"{1}\"": { + "Import '{0}' from \"{1}\"": { "category": "Message", "code": 90013 }, @@ -6308,10 +6403,6 @@ "category": "Message", "code": 90014 }, - "Add '{0}' to existing import declaration from \"{1}\"": { - "category": "Message", - "code": 90015 - }, "Declare property '{0}'": { "category": "Message", "code": 90016 @@ -6376,14 +6467,6 @@ "category": "Message", "code": 90031 }, - "Import default '{0}' from module \"{1}\"": { - "category": "Message", - "code": 90032 - }, - "Add default import '{0}' to existing import declaration from \"{1}\"": { - "category": "Message", - "code": 90033 - }, "Add parameter name": { "category": "Message", "code": 90034 @@ -6416,6 +6499,26 @@ "category": "Message", "code": 90053 }, + "Includes imports of types referenced by '{0}'": { + "category": "Message", + "code": 90054 + }, + "Remove 'type' from import declaration from \"{0}\"": { + "category": "Message", + "code": 90055 + }, + "Remove 'type' from import of '{0}' from \"{1}\"": { + "category": "Message", + "code": 90056 + }, + "Add import from \"{0}\"": { + "category": "Message", + "code": 90057 + }, + "Update import from \"{0}\"": { + "category": "Message", + "code": 90058 + }, "Convert function to an ES2015 class": { "category": "Message", "code": 95001 @@ -6828,7 +6931,7 @@ "category": "Message", "code": 95109 }, - "Visit https://aka.ms/tsconfig.json to read more about this file": { + "Visit https://aka.ms/tsconfig to read more about this file": { "category": "Message", "code": 95110 }, @@ -7068,7 +7171,22 @@ "category": "Message", "code": 95169 }, - + "Convert named imports to default import": { + "category": "Message", + "code": 95170 + }, + "Delete unused '@param' tag '{0}'": { + "category": "Message", + "code": 95171 + }, + "Delete all unused '@param' tags": { + "category": "Message", + "code": 95172 + }, + "Rename '@param' tag name '{0}' to '{1}'": { + "category": "Message", + "code": 95173 + }, "No value exists in scope for the shorthand property '{0}'. Either declare one or provide an initializer.": { "category": "Error", "code": 18004 @@ -7189,4 +7307,4 @@ "category": "Error", "code": 18041 } -} +} \ No newline at end of file diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index 105f09117c8be..e06b0e6b8b1dc 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -1051,7 +1051,7 @@ namespace ts { writeLine(); const pos = writer.getTextPos(); const savedSections = bundleFileInfo && bundleFileInfo.sections; - if (savedSections) bundleFileInfo!.sections = []; + if (savedSections) bundleFileInfo.sections = []; print(EmitHint.Unspecified, prepend, /*sourceFile*/ undefined); if (bundleFileInfo) { const newSections = bundleFileInfo.sections; @@ -1283,7 +1283,13 @@ namespace ts { currentParenthesizerRule = undefined; } - function pipelineEmitWithHintWorker(hint: EmitHint, node: Node): void { + function pipelineEmitWithHintWorker(hint: EmitHint, node: Node, allowSnippets = true): void { + if (allowSnippets) { + const snippet = getSnippetElement(node); + if (snippet) { + return emitSnippetNode(hint, node, snippet); + } + } if (hint === EmitHint.SourceFile) return emitSourceFile(cast(node, isSourceFile)); if (hint === EmitHint.IdentifierName) return emitIdentifier(cast(node, isIdentifier)); if (hint === EmitHint.JsxAttributeValue) return emitLiteral(cast(node, isStringLiteral), /*jsxAttributeEscape*/ true); @@ -1590,7 +1596,7 @@ namespace ts { return emitRestOrJSDocVariadicType(node as RestTypeNode | JSDocVariadicType); case SyntaxKind.JSDocNamepathType: return; - case SyntaxKind.JSDocComment: + case SyntaxKind.JSDoc: return emitJSDoc(node as JSDoc); case SyntaxKind.JSDocTypeLiteral: return emitJSDocTypeLiteral(node as JSDocTypeLiteral); @@ -1598,6 +1604,7 @@ namespace ts { return emitJSDocSignature(node as JSDocSignature); case SyntaxKind.JSDocTag: case SyntaxKind.JSDocClassTag: + case SyntaxKind.JSDocOverrideTag: return emitJSDocSimpleTag(node as JSDocTag); case SyntaxKind.JSDocAugmentsTag: case SyntaxKind.JSDocImplementsTag: @@ -1610,7 +1617,6 @@ namespace ts { case SyntaxKind.JSDocPrivateTag: case SyntaxKind.JSDocProtectedTag: case SyntaxKind.JSDocReadonlyTag: - case SyntaxKind.JSDocOverrideTag: return; case SyntaxKind.JSDocCallbackTag: return emitJSDocCallbackTag(node as JSDocCallbackTag); @@ -1721,6 +1727,8 @@ namespace ts { return emitAsExpression(node as AsExpression); case SyntaxKind.NonNullExpression: return emitNonNullExpression(node as NonNullExpression); + case SyntaxKind.ExpressionWithTypeArguments: + return emitExpressionWithTypeArguments(node as ExpressionWithTypeArguments); case SyntaxKind.MetaProperty: return emitMetaProperty(node as MetaProperty); case SyntaxKind.SyntheticExpression: @@ -1924,6 +1932,37 @@ namespace ts { } } + // + // Snippet Elements + // + + function emitSnippetNode(hint: EmitHint, node: Node, snippet: SnippetElement) { + switch (snippet.kind) { + case SnippetKind.Placeholder: + emitPlaceholder(hint, node, snippet); + break; + case SnippetKind.TabStop: + emitTabStop(hint, node, snippet); + break; + } + } + + function emitPlaceholder(hint: EmitHint, node: Node, snippet: Placeholder) { + nonEscapingWrite(`\$\{${snippet.order}:`); // `${2:` + pipelineEmitWithHintWorker(hint, node, /*allowSnippets*/ false); // `...` + nonEscapingWrite(`\}`); // `}` + // `${2:...}` + } + + function emitTabStop(hint: EmitHint, node: Node, snippet: TabStop) { + // A tab stop should only be attached to an empty node, i.e. a node that doesn't emit any text. + Debug.assert(node.kind === SyntaxKind.EmptyStatement, + `A tab stop cannot be attached to a node of kind ${Debug.formatSyntaxKind(node.kind)}.`); + Debug.assert(hint !== EmitHint.EmbeddedStatement, + `A tab stop cannot be attached to an embedded statement.`); + nonEscapingWrite(`\$${snippet.order}`); + } + // // Identifiers // @@ -1970,6 +2009,7 @@ namespace ts { // function emitTypeParameter(node: TypeParameterDeclaration) { + emitModifiers(node, node.modifiers); emit(node.name); if (node.constraint) { writeSpace(); @@ -2190,6 +2230,7 @@ namespace ts { writeKeyword("typeof"); writeSpace(); emit(node.exprName); + emitTypeArguments(node, node.typeArguments); } function emitTypeLiteral(node: TypeLiteralNode) { @@ -2329,6 +2370,7 @@ namespace ts { writeLine(); decreaseIndent(); } + emitList(node, node.members, ListFormat.PreserveLines); writePunctuation("}"); } @@ -2349,6 +2391,19 @@ namespace ts { writeKeyword("import"); writePunctuation("("); emit(node.argument); + if (node.assertions) { + writePunctuation(","); + writeSpace(); + writePunctuation("{"); + writeSpace(); + writeKeyword("assert"); + writePunctuation(":"); + writeSpace(); + const elements = node.assertions.assertClause.elements; + emitList(node.assertions.assertClause, elements, ListFormat.ImportClauseEntries); + writeSpace(); + writePunctuation("}"); + } writePunctuation(")"); if (node.qualifier) { writePunctuation("."); @@ -2734,7 +2789,7 @@ namespace ts { function emitYieldExpression(node: YieldExpression) { emitTokenWithComment(SyntaxKind.YieldKeyword, node.pos, writeKeyword, node); emit(node.asteriskToken); - emitExpressionWithLeadingSpace(node.expression, parenthesizer.parenthesizeExpressionForDisallowedComma); + emitExpressionWithLeadingSpace(node.expression && parenthesizeExpressionForNoAsi(node.expression), parenthesizeExpressionForNoAsiAndDisallowedComma); } function emitSpreadElement(node: SpreadElement) { @@ -2958,9 +3013,49 @@ namespace ts { return pos; } + function commentWillEmitNewLine(node: CommentRange) { + return node.kind === SyntaxKind.SingleLineCommentTrivia || !!node.hasTrailingNewLine; + } + + function willEmitLeadingNewLine(node: Expression): boolean { + if (!currentSourceFile) return false; + if (some(getLeadingCommentRanges(currentSourceFile.text, node.pos), commentWillEmitNewLine)) return true; + if (some(getSyntheticLeadingComments(node), commentWillEmitNewLine)) return true; + if (isPartiallyEmittedExpression(node)) { + if (node.pos !== node.expression.pos) { + if (some(getTrailingCommentRanges(currentSourceFile.text, node.expression.pos), commentWillEmitNewLine)) return true; + } + return willEmitLeadingNewLine(node.expression); + } + return false; + } + + /** + * Wraps an expression in parens if we would emit a leading comment that would introduce a line separator + * between the node and its parent. + */ + function parenthesizeExpressionForNoAsi(node: Expression) { + if (!commentsDisabled && isPartiallyEmittedExpression(node) && willEmitLeadingNewLine(node)) { + const parseNode = getParseTreeNode(node); + if (parseNode && isParenthesizedExpression(parseNode)) { + // If the original node was a parenthesized expression, restore it to preserve comment and source map emit + const parens = factory.createParenthesizedExpression(node.expression); + setOriginalNode(parens, node); + setTextRange(parens, parseNode); + return parens; + } + return factory.createParenthesizedExpression(node); + } + return node; + } + + function parenthesizeExpressionForNoAsiAndDisallowedComma(node: Expression) { + return parenthesizeExpressionForNoAsi(parenthesizer.parenthesizeExpressionForDisallowedComma(node)); + } + function emitReturnStatement(node: ReturnStatement) { emitTokenWithComment(SyntaxKind.ReturnKeyword, node.pos, writeKeyword, /*contextNode*/ node); - emitExpressionWithLeadingSpace(node.expression); + emitExpressionWithLeadingSpace(node.expression && parenthesizeExpressionForNoAsi(node.expression), parenthesizeExpressionForNoAsi); writeTrailingSemicolon(); } @@ -2992,7 +3087,7 @@ namespace ts { function emitThrowStatement(node: ThrowStatement) { emitTokenWithComment(SyntaxKind.ThrowKeyword, node.pos, writeKeyword, node); - emitExpressionWithLeadingSpace(node.expression); + emitExpressionWithLeadingSpace(parenthesizeExpressionForNoAsi(node.expression), parenthesizeExpressionForNoAsi); writeTrailingSemicolon(); } @@ -3025,7 +3120,7 @@ namespace ts { emit(node.name); emit(node.exclamationToken); emitTypeAnnotation(node.type); - emitInitializer(node.initializer, node.type ? node.type.end : node.name.end, node, parenthesizer.parenthesizeExpressionForDisallowedComma); + emitInitializer(node.initializer, node.type?.end ?? node.name.emitNode?.typeNode?.end ?? node.name.end, node, parenthesizer.parenthesizeExpressionForDisallowedComma); } function emitVariableDeclarationList(node: VariableDeclarationList) { @@ -3916,8 +4011,11 @@ namespace ts { } for (const directive of types) { const pos = writer.getTextPos(); - writeComment(`/// `); - if (bundleFileInfo) bundleFileInfo.sections.push({ pos, end: writer.getTextPos(), kind: BundleFileSectionKind.Type, data: directive.fileName }); + const resolutionMode = directive.resolutionMode && directive.resolutionMode !== currentSourceFile?.impliedNodeFormat + ? `resolution-mode="${directive.resolutionMode === ModuleKind.ESNext ? "import" : "require"}"` + : ""; + writeComment(`/// `); + if (bundleFileInfo) bundleFileInfo.sections.push({ pos, end: writer.getTextPos(), kind: !directive.resolutionMode ? BundleFileSectionKind.Type : directive.resolutionMode === ModuleKind.ESNext ? BundleFileSectionKind.TypeResolutionModeImport : BundleFileSectionKind.TypeResolutionModeRequire, data: directive.fileName }); writeLine(); } for (const directive of libs) { @@ -3942,7 +4040,14 @@ namespace ts { // Transformation nodes function emitPartiallyEmittedExpression(node: PartiallyEmittedExpression) { + const emitFlags = getEmitFlags(node); + if (!(emitFlags & EmitFlags.NoLeadingComments) && node.pos !== node.expression.pos) { + emitTrailingCommentsOfPosition(node.expression.pos); + } emitExpression(node.expression); + if (!(emitFlags & EmitFlags.NoTrailingComments) && node.end !== node.expression.end) { + emitLeadingCommentsOfPosition(node.expression.end); + } } function emitCommaList(node: CommaListExpression) { @@ -4330,10 +4435,8 @@ namespace ts { // Emit this child. previousSourceFileTextKind = recordBundleFileInternalSectionStart(child); if (shouldEmitInterveningComments) { - if (emitTrailingCommentsOfPosition) { - const commentRange = getCommentRange(child); - emitTrailingCommentsOfPosition(commentRange.pos); - } + const commentRange = getCommentRange(child); + emitTrailingCommentsOfPosition(commentRange.pos); } else { shouldEmitInterveningComments = mayEmitInterveningComments; @@ -4457,6 +4560,16 @@ namespace ts { writer.writeProperty(s); } + function nonEscapingWrite(s: string) { + // This should be defined in a snippet-escaping text writer. + if (writer.nonEscapingWrite) { + writer.nonEscapingWrite(s); + } + else { + writer.write(s); + } + } + function writeLine(count = 1) { for (let i = 0; i < count; i++) { writer.writeLine(i > 0); @@ -4701,7 +4814,7 @@ namespace ts { function writeLineSeparatorsAndIndentBefore(node: Node, parent: Node): boolean { const leadingNewlines = preserveSourceNewlines && getLeadingLineTerminatorCount(parent, [node], ListFormat.None); if (leadingNewlines) { - writeLinesAndIndent(leadingNewlines, /*writeLinesIfNotIndenting*/ false); + writeLinesAndIndent(leadingNewlines, /*writeSpaceIfNotIndenting*/ false); } return !!leadingNewlines; } @@ -5233,6 +5346,10 @@ namespace ts { commentsDisabled = false; } emitTrailingCommentsOfNode(node, emitFlags, commentRange.pos, commentRange.end, savedContainerPos, savedContainerEnd, savedDeclarationListContainerEnd); + const typeNode = getTypeNode(node); + if (typeNode) { + emitTrailingCommentsOfNode(node, emitFlags, typeNode.pos, typeNode.end, savedContainerPos, savedContainerEnd, savedDeclarationListContainerEnd); + } } function emitLeadingCommentsOfNode(node: Node, emitFlags: EmitFlags, pos: number, end: number) { diff --git a/src/compiler/factory/emitHelpers.ts b/src/compiler/factory/emitHelpers.ts index 1e820f2092697..85a12581965f8 100644 --- a/src/compiler/factory/emitHelpers.ts +++ b/src/compiler/factory/emitHelpers.ts @@ -783,7 +783,11 @@ namespace ts { text: ` var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/src/compiler/factory/emitNode.ts b/src/compiler/factory/emitNode.ts index 8f032fd8b764e..19ebfd53ba2ba 100644 --- a/src/compiler/factory/emitNode.ts +++ b/src/compiler/factory/emitNode.ts @@ -127,7 +127,7 @@ namespace ts { /** * Gets a custom text range to use when emitting comments. */ - export function getCommentRange(node: Node) { + export function getCommentRange(node: Node): TextRange { return node.emitNode?.commentRange ?? node; } @@ -256,9 +256,39 @@ namespace ts { } } + /** + * Gets the SnippetElement of a node. + */ + /* @internal */ + export function getSnippetElement(node: Node): SnippetElement | undefined { + return node.emitNode?.snippetElement; + } + + /** + * Sets the SnippetElement of a node. + */ + /* @internal */ + export function setSnippetElement(node: T, snippet: SnippetElement): T { + const emitNode = getOrCreateEmitNode(node); + emitNode.snippetElement = snippet; + return node; + } + /* @internal */ export function ignoreSourceNewlines(node: T): T { getOrCreateEmitNode(node).flags |= EmitFlags.IgnoreSourceNewlines; return node; } -} \ No newline at end of file + + /* @internal */ + export function setTypeNode(node: T, type: TypeNode): T { + const emitNode = getOrCreateEmitNode(node); + emitNode.typeNode = type; + return node; + } + + /* @internal */ + export function getTypeNode(node: T): TypeNode | undefined { + return node.emitNode?.typeNode; + } +} diff --git a/src/compiler/factory/nodeFactory.ts b/src/compiler/factory/nodeFactory.ts index 963ce75441f6e..412fc581085d7 100644 --- a/src/compiler/factory/nodeFactory.ts +++ b/src/compiler/factory/nodeFactory.ts @@ -293,6 +293,8 @@ namespace ts { updateAssertClause, createAssertEntry, updateAssertEntry, + createImportTypeAssertionContainer, + updateImportTypeAssertionContainer, createNamespaceImport, updateNamespaceImport, createNamespaceExport, @@ -996,6 +998,8 @@ namespace ts { case SyntaxKind.BigIntKeyword: case SyntaxKind.NeverKeyword: case SyntaxKind.ObjectKeyword: + case SyntaxKind.InKeyword: + case SyntaxKind.OutKeyword: case SyntaxKind.OverrideKeyword: case SyntaxKind.StringKeyword: case SyntaxKind.BooleanKeyword: @@ -1075,7 +1079,9 @@ namespace ts { if (flags & ModifierFlags.Override) result.push(createModifier(SyntaxKind.OverrideKeyword)); if (flags & ModifierFlags.Readonly) result.push(createModifier(SyntaxKind.ReadonlyKeyword)); if (flags & ModifierFlags.Async) result.push(createModifier(SyntaxKind.AsyncKeyword)); - return result; + if (flags & ModifierFlags.In) result.push(createModifier(SyntaxKind.InKeyword)); + if (flags & ModifierFlags.Out) result.push(createModifier(SyntaxKind.OutKeyword)); + return result.length ? result : undefined; } // @@ -1124,11 +1130,27 @@ namespace ts { // // @api - function createTypeParameterDeclaration(name: string | Identifier, constraint?: TypeNode, defaultType?: TypeNode) { + function createTypeParameterDeclaration(modifiers: readonly Modifier[] | undefined, name: string | Identifier, constraint?: TypeNode, defaultType?: TypeNode): TypeParameterDeclaration; + /** @deprecated */ + function createTypeParameterDeclaration(name: string | Identifier, constraint?: TypeNode, defaultType?: TypeNode): TypeParameterDeclaration; + function createTypeParameterDeclaration(modifiersOrName: readonly Modifier[] | string | Identifier | undefined , nameOrConstraint?: string | Identifier | TypeNode, constraintOrDefault?: TypeNode, defaultType?: TypeNode) { + let name; + let modifiers; + let constraint; + if (modifiersOrName === undefined || isArray(modifiersOrName)) { + modifiers = modifiersOrName; + name = nameOrConstraint as string | Identifier; + constraint = constraintOrDefault; + } + else { + modifiers = undefined; + name = modifiersOrName; + constraint = nameOrConstraint as TypeNode | undefined; + } const node = createBaseNamedDeclaration( SyntaxKind.TypeParameter, /*decorators*/ undefined, - /*modifiers*/ undefined, + modifiers, name ); node.constraint = constraint; @@ -1138,11 +1160,28 @@ namespace ts { } // @api - function updateTypeParameterDeclaration(node: TypeParameterDeclaration, name: Identifier, constraint: TypeNode | undefined, defaultType: TypeNode | undefined) { - return node.name !== name + function updateTypeParameterDeclaration(node: TypeParameterDeclaration, modifiers: readonly Modifier[] | undefined, name: Identifier, constraint: TypeNode | undefined, defaultType: TypeNode | undefined): TypeParameterDeclaration; + /** @deprecated */ + function updateTypeParameterDeclaration(node: TypeParameterDeclaration, name: Identifier, constraint: TypeNode | undefined, defaultType: TypeNode | undefined): TypeParameterDeclaration; + function updateTypeParameterDeclaration(node: TypeParameterDeclaration, modifiersOrName: readonly Modifier[] | Identifier | undefined, nameOrConstraint: Identifier | TypeNode | undefined, constraintOrDefault: TypeNode | undefined, defaultType?: TypeNode | undefined) { + let name; + let modifiers; + let constraint; + if (modifiersOrName === undefined || isArray(modifiersOrName)) { + modifiers = modifiersOrName; + name = nameOrConstraint as Identifier; + constraint = constraintOrDefault; + } + else { + modifiers = undefined; + name = modifiersOrName; + constraint = nameOrConstraint as TypeNode | undefined; + } + return node.modifiers !== modifiers + || node.name !== name || node.constraint !== constraint || node.default !== defaultType - ? update(createTypeParameterDeclaration(name, constraint, defaultType), node) + ? update(createTypeParameterDeclaration(modifiers, name, constraint, defaultType), node) : node; } @@ -1839,17 +1878,19 @@ namespace ts { } // @api - function createTypeQueryNode(exprName: EntityName) { + function createTypeQueryNode(exprName: EntityName, typeArguments?: readonly TypeNode[]) { const node = createBaseNode(SyntaxKind.TypeQuery); node.exprName = exprName; + node.typeArguments = typeArguments && parenthesizerRules().parenthesizeTypeArguments(typeArguments); node.transformFlags = TransformFlags.ContainsTypeScript; return node; } // @api - function updateTypeQueryNode(node: TypeQueryNode, exprName: EntityName) { + function updateTypeQueryNode(node: TypeQueryNode, exprName: EntityName, typeArguments?: readonly TypeNode[]) { return node.exprName !== exprName - ? update(createTypeQueryNode(exprName), node) + || node.typeArguments !== typeArguments + ? update(createTypeQueryNode(exprName, typeArguments), node) : node; } @@ -2036,9 +2077,24 @@ namespace ts { } // @api - function createImportTypeNode(argument: TypeNode, qualifier?: EntityName, typeArguments?: readonly TypeNode[], isTypeOf = false) { + function createImportTypeNode(argument: TypeNode, qualifier?: EntityName, typeArguments?: readonly TypeNode[], isTypeOf?: boolean): ImportTypeNode; + function createImportTypeNode(argument: TypeNode, assertions?: ImportTypeAssertionContainer, qualifier?: EntityName, typeArguments?: readonly TypeNode[], isTypeOf?: boolean): ImportTypeNode; + function createImportTypeNode( + argument: TypeNode, + qualifierOrAssertions?: EntityName | ImportTypeAssertionContainer, + typeArgumentsOrQualifier?: readonly TypeNode[] | EntityName, + isTypeOfOrTypeArguments?: boolean | readonly TypeNode[], + isTypeOf?: boolean + ) { + const assertion = qualifierOrAssertions && qualifierOrAssertions.kind === SyntaxKind.ImportTypeAssertionContainer ? qualifierOrAssertions : undefined; + const qualifier = qualifierOrAssertions && isEntityName(qualifierOrAssertions) ? qualifierOrAssertions + : typeArgumentsOrQualifier && !isArray(typeArgumentsOrQualifier) ? typeArgumentsOrQualifier : undefined; + const typeArguments = isArray(typeArgumentsOrQualifier) ? typeArgumentsOrQualifier : isArray(isTypeOfOrTypeArguments) ? isTypeOfOrTypeArguments : undefined; + isTypeOf = typeof isTypeOfOrTypeArguments === "boolean" ? isTypeOfOrTypeArguments : typeof isTypeOf === "boolean" ? isTypeOf : false; + const node = createBaseNode(SyntaxKind.ImportType); node.argument = argument; + node.assertions = assertion; node.qualifier = qualifier; node.typeArguments = typeArguments && parenthesizerRules().parenthesizeTypeArguments(typeArguments); node.isTypeOf = isTypeOf; @@ -2047,12 +2103,28 @@ namespace ts { } // @api - function updateImportTypeNode(node: ImportTypeNode, argument: TypeNode, qualifier: EntityName | undefined, typeArguments: readonly TypeNode[] | undefined, isTypeOf = node.isTypeOf) { + function updateImportTypeNode(node: ImportTypeNode, argument: TypeNode, qualifier: EntityName | undefined, typeArguments: readonly TypeNode[] | undefined, isTypeOf?: boolean | undefined): ImportTypeNode; + function updateImportTypeNode(node: ImportTypeNode, argument: TypeNode, assertions: ImportTypeAssertionContainer | undefined, qualifier: EntityName | undefined, typeArguments: readonly TypeNode[] | undefined, isTypeOf?: boolean | undefined): ImportTypeNode; + function updateImportTypeNode( + node: ImportTypeNode, + argument: TypeNode, + qualifierOrAssertions: EntityName | ImportTypeAssertionContainer | undefined, + typeArgumentsOrQualifier: readonly TypeNode[] | EntityName | undefined, + isTypeOfOrTypeArguments: boolean | readonly TypeNode[] | undefined, + isTypeOf?: boolean | undefined + ) { + const assertion = qualifierOrAssertions && qualifierOrAssertions.kind === SyntaxKind.ImportTypeAssertionContainer ? qualifierOrAssertions : undefined; + const qualifier = qualifierOrAssertions && isEntityName(qualifierOrAssertions) ? qualifierOrAssertions + : typeArgumentsOrQualifier && !isArray(typeArgumentsOrQualifier) ? typeArgumentsOrQualifier : undefined; + const typeArguments = isArray(typeArgumentsOrQualifier) ? typeArgumentsOrQualifier : isArray(isTypeOfOrTypeArguments) ? isTypeOfOrTypeArguments : undefined; + isTypeOf = typeof isTypeOfOrTypeArguments === "boolean" ? isTypeOfOrTypeArguments : typeof isTypeOf === "boolean" ? isTypeOf : node.isTypeOf; + return node.argument !== argument + || node.assertions !== assertion || node.qualifier !== qualifier || node.typeArguments !== typeArguments || node.isTypeOf !== isTypeOf - ? update(createImportTypeNode(argument, qualifier, typeArguments, isTypeOf), node) + ? update(createImportTypeNode(argument, assertion, qualifier, typeArguments, isTypeOf), node) : node; } @@ -2125,7 +2197,7 @@ namespace ts { } // @api - function updateMappedTypeNode(node: MappedTypeNode, readonlyToken: ReadonlyKeyword | PlusToken | MinusToken | undefined, typeParameter: TypeParameterDeclaration, nameType: TypeNode | undefined, questionToken: QuestionToken | PlusToken | MinusToken | undefined, type: TypeNode | undefined, members: NodeArray | undefined): MappedTypeNode { + function updateMappedTypeNode(node: MappedTypeNode, readonlyToken: ReadonlyKeyword | PlusToken | MinusToken | undefined, typeParameter: TypeParameterDeclaration, nameType: TypeNode | undefined, questionToken: QuestionToken | PlusToken | MinusToken | undefined, type: TypeNode | undefined, members: readonly TypeElement[] | undefined): MappedTypeNode { return node.readonlyToken !== readonlyToken || node.typeParameter !== typeParameter || node.nameType !== nameType @@ -4007,16 +4079,16 @@ namespace ts { } // @api - function createAssertClause(elements: NodeArray, multiLine?: boolean): AssertClause { + function createAssertClause(elements: readonly AssertEntry[], multiLine?: boolean): AssertClause { const node = createBaseNode(SyntaxKind.AssertClause); - node.elements = elements; + node.elements = createNodeArray(elements); node.multiLine = multiLine; node.transformFlags |= TransformFlags.ContainsESNext; return node; } // @api - function updateAssertClause(node: AssertClause, elements: NodeArray, multiLine?: boolean): AssertClause { + function updateAssertClause(node: AssertClause, elements: readonly AssertEntry[], multiLine?: boolean): AssertClause { return node.elements !== elements || node.multiLine !== multiLine ? update(createAssertClause(elements, multiLine), node) @@ -4024,7 +4096,7 @@ namespace ts { } // @api - function createAssertEntry(name: AssertionKey, value: StringLiteral): AssertEntry { + function createAssertEntry(name: AssertionKey, value: Expression): AssertEntry { const node = createBaseNode(SyntaxKind.AssertEntry); node.name = name; node.value = value; @@ -4033,13 +4105,29 @@ namespace ts { } // @api - function updateAssertEntry(node: AssertEntry, name: AssertionKey, value: StringLiteral): AssertEntry { + function updateAssertEntry(node: AssertEntry, name: AssertionKey, value: Expression): AssertEntry { return node.name !== name || node.value !== value ? update(createAssertEntry(name, value), node) : node; } + // @api + function createImportTypeAssertionContainer(clause: AssertClause, multiLine?: boolean): ImportTypeAssertionContainer { + const node = createBaseNode(SyntaxKind.ImportTypeAssertionContainer); + node.assertClause = clause; + node.multiLine = multiLine; + return node; + } + + // @api + function updateImportTypeAssertionContainer(node: ImportTypeAssertionContainer, clause: AssertClause, multiLine?: boolean): ImportTypeAssertionContainer { + return node.assertClause !== clause + || node.multiLine !== multiLine + ? update(createImportTypeAssertionContainer(clause, multiLine), node) + : node; + } + // @api function createNamespaceImport(name: Identifier): NamespaceImport { const node = createBaseNode(SyntaxKind.NamespaceImport); @@ -4689,7 +4777,7 @@ namespace ts { // @api function createJSDocComment(comment?: string | NodeArray | undefined, tags?: readonly JSDocTag[] | undefined) { - const node = createBaseNode(SyntaxKind.JSDocComment); + const node = createBaseNode(SyntaxKind.JSDoc); node.comment = comment; node.tags = asNodeArray(tags); return node; @@ -5885,7 +5973,7 @@ namespace ts { * @param visitor Optional callback used to visit any custom prologue directives. */ function copyPrologue(source: readonly Statement[], target: Push, ensureUseStrict?: boolean, visitor?: (node: Node) => VisitResult): number { - const offset = copyStandardPrologue(source, target, ensureUseStrict); + const offset = copyStandardPrologue(source, target, 0, ensureUseStrict); return copyCustomPrologue(source, target, offset, visitor); } @@ -5901,12 +5989,13 @@ namespace ts { * Copies only the standard (string-expression) prologue-directives into the target statement-array. * @param source origin statements array * @param target result statements array + * @param statementOffset The offset at which to begin the copy. * @param ensureUseStrict boolean determining whether the function need to add prologue-directives + * @returns Count of how many directive statements were copied. */ - function copyStandardPrologue(source: readonly Statement[], target: Push, ensureUseStrict?: boolean): number { + function copyStandardPrologue(source: readonly Statement[], target: Push, statementOffset = 0, ensureUseStrict?: boolean): number { Debug.assert(target.length === 0, "Prologue directives should be at the first statement in the target statements array"); let foundUseStrict = false; - let statementOffset = 0; const numStatements = source.length; while (statementOffset < numStatements) { const statement = source[statementOffset]; @@ -6080,32 +6169,36 @@ namespace ts { function updateModifiers(node: T, modifiers: readonly Modifier[] | ModifierFlags): T; function updateModifiers(node: HasModifiers, modifiers: readonly Modifier[] | ModifierFlags) { + let modifierArray; if (typeof modifiers === "number") { - modifiers = createModifiersFromModifierFlags(modifiers); + modifierArray = createModifiersFromModifierFlags(modifiers); } - return isParameter(node) ? updateParameterDeclaration(node, node.decorators, modifiers, node.dotDotDotToken, node.name, node.questionToken, node.type, node.initializer) : - isPropertySignature(node) ? updatePropertySignature(node, modifiers, node.name, node.questionToken, node.type) : - isPropertyDeclaration(node) ? updatePropertyDeclaration(node, node.decorators, modifiers, node.name, node.questionToken ?? node.exclamationToken, node.type, node.initializer) : - isMethodSignature(node) ? updateMethodSignature(node, modifiers, node.name, node.questionToken, node.typeParameters, node.parameters, node.type) : - isMethodDeclaration(node) ? updateMethodDeclaration(node, node.decorators, modifiers, node.asteriskToken, node.name, node.questionToken, node.typeParameters, node.parameters, node.type, node.body) : - isConstructorDeclaration(node) ? updateConstructorDeclaration(node, node.decorators, modifiers, node.parameters, node.body) : - isGetAccessorDeclaration(node) ? updateGetAccessorDeclaration(node, node.decorators, modifiers, node.name, node.parameters, node.type, node.body) : - isSetAccessorDeclaration(node) ? updateSetAccessorDeclaration(node, node.decorators, modifiers, node.name, node.parameters, node.body) : - isIndexSignatureDeclaration(node) ? updateIndexSignature(node, node.decorators, modifiers, node.parameters, node.type) : - isFunctionExpression(node) ? updateFunctionExpression(node, modifiers, node.asteriskToken, node.name, node.typeParameters, node.parameters, node.type, node.body) : - isArrowFunction(node) ? updateArrowFunction(node, modifiers, node.typeParameters, node.parameters, node.type, node.equalsGreaterThanToken, node.body) : - isClassExpression(node) ? updateClassExpression(node, node.decorators, modifiers, node.name, node.typeParameters, node.heritageClauses, node.members) : - isVariableStatement(node) ? updateVariableStatement(node, modifiers, node.declarationList) : - isFunctionDeclaration(node) ? updateFunctionDeclaration(node, node.decorators, modifiers, node.asteriskToken, node.name, node.typeParameters, node.parameters, node.type, node.body) : - isClassDeclaration(node) ? updateClassDeclaration(node, node.decorators, modifiers, node.name, node.typeParameters, node.heritageClauses, node.members) : - isInterfaceDeclaration(node) ? updateInterfaceDeclaration(node, node.decorators, modifiers, node.name, node.typeParameters, node.heritageClauses, node.members) : - isTypeAliasDeclaration(node) ? updateTypeAliasDeclaration(node, node.decorators, modifiers, node.name, node.typeParameters, node.type) : - isEnumDeclaration(node) ? updateEnumDeclaration(node, node.decorators, modifiers, node.name, node.members) : - isModuleDeclaration(node) ? updateModuleDeclaration(node, node.decorators, modifiers, node.name, node.body) : - isImportEqualsDeclaration(node) ? updateImportEqualsDeclaration(node, node.decorators, modifiers, node.isTypeOnly, node.name, node.moduleReference) : - isImportDeclaration(node) ? updateImportDeclaration(node, node.decorators, modifiers, node.importClause, node.moduleSpecifier, node.assertClause) : - isExportAssignment(node) ? updateExportAssignment(node, node.decorators, modifiers, node.expression) : - isExportDeclaration(node) ? updateExportDeclaration(node, node.decorators, modifiers, node.isTypeOnly, node.exportClause, node.moduleSpecifier, node.assertClause) : + else { + modifierArray = modifiers; + } + return isParameter(node) ? updateParameterDeclaration(node, node.decorators, modifierArray, node.dotDotDotToken, node.name, node.questionToken, node.type, node.initializer) : + isPropertySignature(node) ? updatePropertySignature(node, modifierArray, node.name, node.questionToken, node.type) : + isPropertyDeclaration(node) ? updatePropertyDeclaration(node, node.decorators, modifierArray, node.name, node.questionToken ?? node.exclamationToken, node.type, node.initializer) : + isMethodSignature(node) ? updateMethodSignature(node, modifierArray, node.name, node.questionToken, node.typeParameters, node.parameters, node.type) : + isMethodDeclaration(node) ? updateMethodDeclaration(node, node.decorators, modifierArray, node.asteriskToken, node.name, node.questionToken, node.typeParameters, node.parameters, node.type, node.body) : + isConstructorDeclaration(node) ? updateConstructorDeclaration(node, node.decorators, modifierArray, node.parameters, node.body) : + isGetAccessorDeclaration(node) ? updateGetAccessorDeclaration(node, node.decorators, modifierArray, node.name, node.parameters, node.type, node.body) : + isSetAccessorDeclaration(node) ? updateSetAccessorDeclaration(node, node.decorators, modifierArray, node.name, node.parameters, node.body) : + isIndexSignatureDeclaration(node) ? updateIndexSignature(node, node.decorators, modifierArray, node.parameters, node.type) : + isFunctionExpression(node) ? updateFunctionExpression(node, modifierArray, node.asteriskToken, node.name, node.typeParameters, node.parameters, node.type, node.body) : + isArrowFunction(node) ? updateArrowFunction(node, modifierArray, node.typeParameters, node.parameters, node.type, node.equalsGreaterThanToken, node.body) : + isClassExpression(node) ? updateClassExpression(node, node.decorators, modifierArray, node.name, node.typeParameters, node.heritageClauses, node.members) : + isVariableStatement(node) ? updateVariableStatement(node, modifierArray, node.declarationList) : + isFunctionDeclaration(node) ? updateFunctionDeclaration(node, node.decorators, modifierArray, node.asteriskToken, node.name, node.typeParameters, node.parameters, node.type, node.body) : + isClassDeclaration(node) ? updateClassDeclaration(node, node.decorators, modifierArray, node.name, node.typeParameters, node.heritageClauses, node.members) : + isInterfaceDeclaration(node) ? updateInterfaceDeclaration(node, node.decorators, modifierArray, node.name, node.typeParameters, node.heritageClauses, node.members) : + isTypeAliasDeclaration(node) ? updateTypeAliasDeclaration(node, node.decorators, modifierArray, node.name, node.typeParameters, node.type) : + isEnumDeclaration(node) ? updateEnumDeclaration(node, node.decorators, modifierArray, node.name, node.members) : + isModuleDeclaration(node) ? updateModuleDeclaration(node, node.decorators, modifierArray, node.name, node.body) : + isImportEqualsDeclaration(node) ? updateImportEqualsDeclaration(node, node.decorators, modifierArray, node.isTypeOnly, node.name, node.moduleReference) : + isImportDeclaration(node) ? updateImportDeclaration(node, node.decorators, modifierArray, node.importClause, node.moduleSpecifier, node.assertClause) : + isExportAssignment(node) ? updateExportAssignment(node, node.decorators, modifierArray, node.expression) : + isExportDeclaration(node) ? updateExportDeclaration(node, node.decorators, modifierArray, node.isTypeOnly, node.exportClause, node.moduleSpecifier, node.assertClause) : Debug.assertNever(node); } @@ -6387,7 +6480,7 @@ namespace ts { sourceMapText = mapTextOrStripInternal as string; } const node = oldFileOfCurrentEmit ? - parseOldFileOfCurrentEmit(Debug.assertDefined(bundleFileInfo)) : + parseOldFileOfCurrentEmit(Debug.checkDefined(bundleFileInfo)) : parseUnparsedSourceFile(bundleFileInfo, stripInternal, length); node.fileName = fileName; node.sourceMapPath = sourceMapPath; @@ -6409,7 +6502,7 @@ namespace ts { let prologues: UnparsedPrologue[] | undefined; let helpers: UnscopedEmitHelper[] | undefined; let referencedFiles: FileReference[] | undefined; - let typeReferenceDirectives: string[] | undefined; + let typeReferenceDirectives: FileReference[] | undefined; let libReferenceDirectives: FileReference[] | undefined; let prependChildren: UnparsedTextLike[] | undefined; let texts: UnparsedSourceText[] | undefined; @@ -6430,7 +6523,13 @@ namespace ts { referencedFiles = append(referencedFiles, { pos: -1, end: -1, fileName: section.data }); break; case BundleFileSectionKind.Type: - typeReferenceDirectives = append(typeReferenceDirectives, section.data); + typeReferenceDirectives = append(typeReferenceDirectives, { pos: -1, end: -1, fileName: section.data }); + break; + case BundleFileSectionKind.TypeResolutionModeImport: + typeReferenceDirectives = append(typeReferenceDirectives, { pos: -1, end: -1, fileName: section.data, resolutionMode: ModuleKind.ESNext }); + break; + case BundleFileSectionKind.TypeResolutionModeRequire: + typeReferenceDirectives = append(typeReferenceDirectives, { pos: -1, end: -1, fileName: section.data, resolutionMode: ModuleKind.CommonJS }); break; case BundleFileSectionKind.Lib: libReferenceDirectives = append(libReferenceDirectives, { pos: -1, end: -1, fileName: section.data }); @@ -6491,6 +6590,8 @@ namespace ts { case BundleFileSectionKind.NoDefaultLib: case BundleFileSectionKind.Reference: case BundleFileSectionKind.Type: + case BundleFileSectionKind.TypeResolutionModeImport: + case BundleFileSectionKind.TypeResolutionModeRequire: case BundleFileSectionKind.Lib: syntheticReferences = append(syntheticReferences, setTextRange(factory.createUnparsedSyntheticReference(section), section)); break; @@ -6587,13 +6688,13 @@ namespace ts { }; node.javascriptPath = declarationTextOrJavascriptPath; node.javascriptMapPath = javascriptMapPath; - node.declarationPath = Debug.assertDefined(javascriptMapTextOrDeclarationPath); + node.declarationPath = Debug.checkDefined(javascriptMapTextOrDeclarationPath); node.declarationMapPath = declarationMapPath; node.buildInfoPath = declarationMapTextOrBuildInfoPath; Object.defineProperties(node, { javascriptText: { get() { return definedTextGetter(declarationTextOrJavascriptPath); } }, javascriptMapText: { get() { return textGetter(javascriptMapPath); } }, // TODO:: if there is inline sourceMap in jsFile, use that - declarationText: { get() { return definedTextGetter(Debug.assertDefined(javascriptMapTextOrDeclarationPath)); } }, + declarationText: { get() { return definedTextGetter(Debug.checkDefined(javascriptMapTextOrDeclarationPath)); } }, declarationMapText: { get() { return textGetter(declarationMapPath); } }, // TODO:: if there is inline sourceMap in dtsFile, use that buildInfo: { get() { return getAndCacheBuildInfo(() => textGetter(declarationMapTextOrBuildInfoPath)); } } }); diff --git a/src/compiler/factory/nodeTests.ts b/src/compiler/factory/nodeTests.ts index 274ade1886dfc..cf473caf65bf7 100644 --- a/src/compiler/factory/nodeTests.ts +++ b/src/compiler/factory/nodeTests.ts @@ -836,7 +836,7 @@ namespace ts { } export function isJSDoc(node: Node): node is JSDoc { - return node.kind === SyntaxKind.JSDocComment; + return node.kind === SyntaxKind.JSDoc; } export function isJSDocTypeLiteral(node: Node): node is JSDocTypeLiteral { diff --git a/src/compiler/moduleNameResolver.ts b/src/compiler/moduleNameResolver.ts index bc606ffebe354..104223d1e750d 100644 --- a/src/compiler/moduleNameResolver.ts +++ b/src/compiler/moduleNameResolver.ts @@ -297,7 +297,8 @@ namespace ts { * This is possible in case if resolution is performed for directives specified via 'types' parameter. In this case initial path for secondary lookups * is assumed to be the same as root directory of the project. */ - export function resolveTypeReferenceDirective(typeReferenceDirectiveName: string, containingFile: string | undefined, options: CompilerOptions, host: ModuleResolutionHost, redirectedReference?: ResolvedProjectReference, cache?: TypeReferenceDirectiveResolutionCache): ResolvedTypeReferenceDirectiveWithFailedLookupLocations { + export function resolveTypeReferenceDirective(typeReferenceDirectiveName: string, containingFile: string | undefined, options: CompilerOptions, host: ModuleResolutionHost, redirectedReference?: ResolvedProjectReference, cache?: TypeReferenceDirectiveResolutionCache, resolutionMode?: SourceFile["impliedNodeFormat"]): ResolvedTypeReferenceDirectiveWithFailedLookupLocations { + Debug.assert(typeof typeReferenceDirectiveName === "string", "Non-string value passed to `ts.resolveTypeReferenceDirective`, likely by a wrapping package working with an outdated `resolveTypeReferenceDirectives` signature. This is probably not a problem in TS itself."); const traceEnabled = isTraceEnabled(options, host); if (redirectedReference) { options = redirectedReference.commandLine.options; @@ -305,7 +306,7 @@ namespace ts { const containingDirectory = containingFile ? getDirectoryPath(containingFile) : undefined; const perFolderCache = containingDirectory ? cache && cache.getOrCreateCacheForDirectory(containingDirectory, redirectedReference) : undefined; - let result = perFolderCache && perFolderCache.get(typeReferenceDirectiveName, /*mode*/ undefined); + let result = perFolderCache && perFolderCache.get(typeReferenceDirectiveName, /*mode*/ resolutionMode); if (result) { if (traceEnabled) { trace(host, Diagnostics.Resolving_type_reference_directive_0_containing_file_1, typeReferenceDirectiveName, containingFile); @@ -340,7 +341,19 @@ namespace ts { } const failedLookupLocations: string[] = []; - const moduleResolutionState: ModuleResolutionState = { compilerOptions: options, host, traceEnabled, failedLookupLocations, packageJsonInfoCache: cache, features: NodeResolutionFeatures.AllFeatures, conditions: ["node", "require", "types"] }; + let features = getDefaultNodeResolutionFeatures(options); + // Unlike `import` statements, whose mode-calculating APIs are all guaranteed to return `undefined` if we're in an un-mode-ed module resolution + // setting, type references will return their target mode regardless of options because of how the parser works, so we guard against the mode being + // set in a non-modal module resolution setting here. Do note that our behavior is not particularly well defined when these mode-overriding imports + // are present in a non-modal project; while in theory we'd like to either ignore the mode or provide faithful modern resolution, depending on what we feel is best, + // in practice, not every cache has the options available to intelligently make the choice to ignore the mode request, and it's unclear how modern "faithful modern + // resolution" should be (`node12`? `nodenext`?). As such, witnessing a mode-overriding triple-slash reference in a non-modal module resolution + // context should _probably_ be an error - and that should likely be handled by the `Program` (which is what we do). + if (resolutionMode === ModuleKind.ESNext && (getEmitModuleResolutionKind(options) === ModuleResolutionKind.Node12 || getEmitModuleResolutionKind(options) === ModuleResolutionKind.NodeNext)) { + features |= NodeResolutionFeatures.EsmMode; + } + const conditions = features & NodeResolutionFeatures.Exports ? features & NodeResolutionFeatures.EsmMode ? ["node", "import", "types"] : ["node", "require", "types"] : []; + const moduleResolutionState: ModuleResolutionState = { compilerOptions: options, host, traceEnabled, failedLookupLocations, packageJsonInfoCache: cache, features, conditions }; let resolved = primaryLookup(); let primary = true; if (!resolved) { @@ -361,7 +374,7 @@ namespace ts { }; } result = { resolvedTypeReferenceDirective, failedLookupLocations }; - perFolderCache?.set(typeReferenceDirectiveName, /*mode*/ undefined, result); + perFolderCache?.set(typeReferenceDirectiveName, /*mode*/ resolutionMode, result); if (traceEnabled) traceResult(result); return result; @@ -416,7 +429,7 @@ namespace ts { result = searchResult && searchResult.value; } else { - const { path: candidate } = normalizePathAndParts(combinePaths(initialLocationForSecondaryLookup, typeReferenceDirectiveName)); + const { path: candidate } = normalizePathForCJSResolution(initialLocationForSecondaryLookup, typeReferenceDirectiveName); result = nodeLoadModuleByRelativeName(Extensions.DtsOnly, candidate, /*onlyRecordFailures*/ false, moduleResolutionState, /*considerPackageJson*/ true); } return resolvedTypeScriptOnly(result); @@ -429,6 +442,42 @@ namespace ts { } } + function getDefaultNodeResolutionFeatures(options: CompilerOptions) { + return getEmitModuleResolutionKind(options) === ModuleResolutionKind.Node12 ? NodeResolutionFeatures.Node12Default : + getEmitModuleResolutionKind(options) === ModuleResolutionKind.NodeNext ? NodeResolutionFeatures.NodeNextDefault : + NodeResolutionFeatures.None; + } + + /** + * @internal + * Does not try `@types/${packageName}` - use a second pass if needed. + */ + export function resolvePackageNameToPackageJson( + packageName: string, + containingDirectory: string, + options: CompilerOptions, + host: ModuleResolutionHost, + cache: ModuleResolutionCache | undefined, + ): PackageJsonInfo | undefined { + const moduleResolutionState: ModuleResolutionState = { + compilerOptions: options, + host, + traceEnabled: isTraceEnabled(options, host), + failedLookupLocations: [], + packageJsonInfoCache: cache?.getPackageJsonInfoCache(), + conditions: emptyArray, + features: NodeResolutionFeatures.None, + }; + + return forEachAncestorDirectory(containingDirectory, ancestorDirectory => { + if (getBaseFileName(ancestorDirectory) !== "node_modules") { + const nodeModulesFolder = combinePaths(ancestorDirectory, "node_modules"); + const candidate = combinePaths(nodeModulesFolder, packageName); + return getPackageJsonInfo(candidate, /*onlyRecordFailures*/ false, moduleResolutionState); + } + }); + } + /** * Given a set of options, returns the set of type directive names * that should be included for this program automatically. @@ -696,11 +745,15 @@ namespace ts { } /* @internal */ - export function zipToModeAwareCache(file: SourceFile, keys: readonly string[], values: readonly V[]): ModeAwareCache { + export function zipToModeAwareCache(file: SourceFile, keys: readonly string[] | readonly FileReference[], values: readonly V[]): ModeAwareCache { Debug.assert(keys.length === values.length); const map = createModeAwareCache(); for (let i = 0; i < keys.length; ++i) { - map.set(keys[i], getModeForResolutionAtIndex(file, i), values[i]); + const entry = keys[i]; + // We lower-case all type references because npm automatically lowercases all packages. See GH#9824. + const name = !isString(entry) ? entry.fileName.toLowerCase() : entry; + const mode = !isString(entry) ? entry.resolutionMode || file.impliedNodeFormat : getModeForResolutionAtIndex(file, i); + map.set(name, mode, values[i]); } return map; } @@ -940,7 +993,7 @@ namespace ts { perFolderCache.set(moduleName, resolutionMode, result); if (!isExternalModuleNameRelative(moduleName)) { // put result in per-module name cache - cache!.getOrCreateCacheForModuleName(moduleName, resolutionMode, redirectedReference).set(containingDirectory, result); + cache.getOrCreateCacheForModuleName(moduleName, resolutionMode, redirectedReference).set(containingDirectory, result); } } } @@ -1167,11 +1220,6 @@ namespace ts { return resolvedModule.resolvedFileName; } - /* @internal */ - export function tryResolveJSModule(moduleName: string, initialDir: string, host: ModuleResolutionHost) { - return tryResolveJSModuleWorker(moduleName, initialDir, host).resolvedModule; - } - /* @internal */ enum NodeResolutionFeatures { None = 0, @@ -1186,6 +1234,10 @@ namespace ts { ExportsPatternTrailers = 1 << 4, AllFeatures = Imports | SelfName | Exports | ExportsPatternTrailers, + Node12Default = Imports | SelfName | Exports, + + NodeNextDefault = AllFeatures, + EsmMode = 1 << 5, } @@ -1193,7 +1245,7 @@ namespace ts { host: ModuleResolutionHost, cache?: ModuleResolutionCache, redirectedReference?: ResolvedProjectReference, resolutionMode?: ModuleKind.CommonJS | ModuleKind.ESNext): ResolvedModuleWithFailedLookupLocations { return nodeNextModuleNameResolverWorker( - NodeResolutionFeatures.Imports | NodeResolutionFeatures.SelfName | NodeResolutionFeatures.Exports, + NodeResolutionFeatures.Node12Default, moduleName, containingFile, compilerOptions, @@ -1208,7 +1260,7 @@ namespace ts { host: ModuleResolutionHost, cache?: ModuleResolutionCache, redirectedReference?: ResolvedProjectReference, resolutionMode?: ModuleKind.CommonJS | ModuleKind.ESNext): ResolvedModuleWithFailedLookupLocations { return nodeNextModuleNameResolverWorker( - NodeResolutionFeatures.AllFeatures, + NodeResolutionFeatures.NodeNextDefault, moduleName, containingFile, compilerOptions, @@ -1293,12 +1345,26 @@ namespace ts { return { value: resolvedValue && { resolved: resolvedValue, isExternalLibraryImport: true } }; } else { - const { path: candidate, parts } = normalizePathAndParts(combinePaths(containingDirectory, moduleName)); + const { path: candidate, parts } = normalizePathForCJSResolution(containingDirectory, moduleName); const resolved = nodeLoadModuleByRelativeName(extensions, candidate, /*onlyRecordFailures*/ false, state, /*considerPackageJson*/ true); // Treat explicit "node_modules" import as an external library import. return resolved && toSearchResult({ resolved, isExternalLibraryImport: contains(parts, "node_modules") }); } } + + } + + // If you import from "." inside a containing directory "/foo", the result of `normalizePath` + // would be "/foo", but this loses the information that `foo` is a directory and we intended + // to look inside of it. The Node CommonJS resolution algorithm doesn't call this out + // (https://nodejs.org/api/modules.html#all-together), but it seems that module paths ending + // in `.` are actually normalized to `./` before proceeding with the resolution algorithm. + function normalizePathForCJSResolution(containingDirectory: string, moduleName: string) { + const combined = combinePaths(containingDirectory, moduleName); + const parts = getPathComponents(combined); + const lastPart = lastOrUndefined(parts); + const path = lastPart === "." || lastPart === ".." ? ensureTrailingDirectorySeparator(normalizePath(combined)) : normalizePath(combined); + return { path, parts }; } function realPath(path: string, host: ModuleResolutionHost, traceEnabled: boolean): string { @@ -1344,7 +1410,13 @@ namespace ts { onlyRecordFailures = true; } } - return loadNodeModuleFromDirectory(extensions, candidate, onlyRecordFailures, state, considerPackageJson); + // esm mode relative imports shouldn't do any directory lookups (either inside `package.json` + // files or implicit `index.js`es). This is a notable depature from cjs norms, where `./foo/pkg` + // could have been redirected by `./foo/pkg/package.json` to an arbitrary location! + if (!(state.features & NodeResolutionFeatures.EsmMode)) { + return loadNodeModuleFromDirectory(extensions, candidate, onlyRecordFailures, state, considerPackageJson); + } + return undefined; } /*@internal*/ @@ -1504,6 +1576,16 @@ namespace ts { /** Return the file if it exists. */ function tryFile(fileName: string, onlyRecordFailures: boolean, state: ModuleResolutionState): string | undefined { + if (!state.compilerOptions.moduleSuffixes?.length) { + return tryFileLookup(fileName, onlyRecordFailures, state); + } + + const ext = tryGetExtensionFromPath(fileName) ?? ""; + const fileNameNoExtension = ext ? removeExtension(fileName, ext) : fileName; + return forEach(state.compilerOptions.moduleSuffixes, suffix => tryFileLookup(fileNameNoExtension + suffix + ext, onlyRecordFailures, state)); + } + + function tryFileLookup(fileName: string, onlyRecordFailures: boolean, state: ModuleResolutionState): string | undefined { if (!onlyRecordFailures) { if (state.host.fileExists(fileName)) { if (state.traceEnabled) { @@ -1528,11 +1610,124 @@ namespace ts { return withPackageId(packageInfo, loadNodeModuleFromDirectoryWorker(extensions, candidate, onlyRecordFailures, state, packageJsonContent, versionPaths)); } + /* @internal */ + export function getEntrypointsFromPackageJsonInfo( + packageJsonInfo: PackageJsonInfo, + options: CompilerOptions, + host: ModuleResolutionHost, + cache: ModuleResolutionCache | undefined, + resolveJs?: boolean, + ): string[] | false { + if (!resolveJs && packageJsonInfo.resolvedEntrypoints !== undefined) { + // Cached value excludes resolutions to JS files - those could be + // cached separately, but they're used rarely. + return packageJsonInfo.resolvedEntrypoints; + } + + let entrypoints: string[] | undefined; + const extensions = resolveJs ? Extensions.JavaScript : Extensions.TypeScript; + const features = getDefaultNodeResolutionFeatures(options); + const requireState: ModuleResolutionState = { + compilerOptions: options, + host, + traceEnabled: isTraceEnabled(options, host), + failedLookupLocations: [], + packageJsonInfoCache: cache?.getPackageJsonInfoCache(), + conditions: ["node", "require", "types"], + features, + }; + const requireResolution = loadNodeModuleFromDirectoryWorker( + extensions, + packageJsonInfo.packageDirectory, + /*onlyRecordFailures*/ false, + requireState, + packageJsonInfo.packageJsonContent, + packageJsonInfo.versionPaths); + entrypoints = append(entrypoints, requireResolution?.path); + + if (features & NodeResolutionFeatures.Exports && packageJsonInfo.packageJsonContent.exports) { + for (const conditions of [["node", "import", "types"], ["node", "require", "types"]]) { + const exportState = { ...requireState, failedLookupLocations: [], conditions }; + const exportResolutions = loadEntrypointsFromExportMap( + packageJsonInfo, + packageJsonInfo.packageJsonContent.exports, + exportState, + extensions); + if (exportResolutions) { + for (const resolution of exportResolutions) { + entrypoints = appendIfUnique(entrypoints, resolution.path); + } + } + } + } + + return packageJsonInfo.resolvedEntrypoints = entrypoints || false; + } + + function loadEntrypointsFromExportMap( + scope: PackageJsonInfo, + exports: object, + state: ModuleResolutionState, + extensions: Extensions, + ): PathAndExtension[] | undefined { + let entrypoints: PathAndExtension[] | undefined; + if (isArray(exports)) { + for (const target of exports) { + loadEntrypointsFromTargetExports(target); + } + } + // eslint-disable-next-line no-null/no-null + else if (typeof exports === "object" && exports !== null && allKeysStartWithDot(exports as MapLike)) { + for (const key in exports) { + loadEntrypointsFromTargetExports((exports as MapLike)[key]); + } + } + else { + loadEntrypointsFromTargetExports(exports); + } + return entrypoints; + + function loadEntrypointsFromTargetExports(target: unknown): boolean | undefined { + if (typeof target === "string" && startsWith(target, "./") && target.indexOf("*") === -1) { + const partsAfterFirst = getPathComponents(target).slice(2); + if (partsAfterFirst.indexOf("..") >= 0 || partsAfterFirst.indexOf(".") >= 0 || partsAfterFirst.indexOf("node_modules") >= 0) { + return false; + } + const resolvedTarget = combinePaths(scope.packageDirectory, target); + const finalPath = getNormalizedAbsolutePath(resolvedTarget, state.host.getCurrentDirectory?.()); + const result = loadJSOrExactTSFileName(extensions, finalPath, /*recordOnlyFailures*/ false, state); + if (result) { + entrypoints = appendIfUnique(entrypoints, result, (a, b) => a.path === b.path); + return true; + } + } + else if (Array.isArray(target)) { + for (const t of target) { + const success = loadEntrypointsFromTargetExports(t); + if (success) { + return true; + } + } + } + // eslint-disable-next-line no-null/no-null + else if (typeof target === "object" && target !== null) { + return forEach(getOwnKeys(target as MapLike), key => { + if (key === "default" || contains(state.conditions, key) || isApplicableVersionedTypesKey(state.conditions, key)) { + loadEntrypointsFromTargetExports((target as MapLike)[key]); + return true; + } + }); + } + } + } + /*@internal*/ interface PackageJsonInfo { packageDirectory: string; packageJsonContent: PackageJsonPathFields; versionPaths: VersionPaths | undefined; + /** false: resolved to nothing. undefined: not yet resolved */ + resolvedEntrypoints: string[] | false | undefined; } /** @@ -1598,7 +1793,7 @@ namespace ts { trace(host, Diagnostics.Found_package_json_at_0, packageJsonPath); } const versionPaths = readPackageJsonTypesVersionPaths(packageJsonContent, state); - const result = { packageDirectory, packageJsonContent, versionPaths }; + const result = { packageDirectory, packageJsonContent, versionPaths, resolvedEntrypoints: undefined }; state.packageJsonInfoCache?.setPackageJsonInfo(packageJsonPath, result); return result; } @@ -1650,7 +1845,17 @@ namespace ts { // Even if extensions is DtsOnly, we can still look up a .ts file as a result of package.json "types" const nextExtensions = extensions === Extensions.DtsOnly ? Extensions.TypeScript : extensions; // Don't do package.json lookup recursively, because Node.js' package lookup doesn't. - return nodeLoadModuleByRelativeName(nextExtensions, candidate, onlyRecordFailures, state, /*considerPackageJson*/ false); + + // Disable `EsmMode` for the resolution of the package path for cjs-mode packages (so the `main` field can omit extensions) + // (technically it only emits a deprecation warning in esm packages right now, but that's probably + // enough to mean we don't need to support it) + const features = state.features; + if (jsonContent?.type !== "module") { + state.features &= ~NodeResolutionFeatures.EsmMode; + } + const result = nodeLoadModuleByRelativeName(nextExtensions, candidate, onlyRecordFailures, state, /*considerPackageJson*/ false); + state.features = features; + return result; }; const onlyRecordFailuresForPackageFile = packageFile ? !directoryProbablyExists(getDirectoryPath(packageFile), state.host) : undefined; @@ -2015,7 +2220,7 @@ namespace ts { if (packageInfo && packageInfo.packageJsonContent.exports && state.features & NodeResolutionFeatures.Exports) { return loadModuleFromExports(packageInfo, extensions, combinePaths(".", rest), state, cache, redirectedReference)?.value; } - const pathAndExtension = + let pathAndExtension = loadModuleFromFile(extensions, candidate, onlyRecordFailures, state) || loadNodeModuleFromDirectoryWorker( extensions, @@ -2025,6 +2230,16 @@ namespace ts { packageInfo && packageInfo.packageJsonContent, packageInfo && packageInfo.versionPaths ); + if ( + !pathAndExtension && packageInfo + && packageInfo.packageJsonContent.exports === undefined + && packageInfo.packageJsonContent.main === undefined + && state.features & NodeResolutionFeatures.EsmMode + ) { + // EsmMode disables index lookup in `loadNodeModuleFromDirectoryWorker` generally, however non-relative package resolutions still assume + // a default `index.js` entrypoint if no `main` or `exports` are present + pathAndExtension = loadModuleFromFile(extensions, combinePaths(candidate, "index.js"), onlyRecordFailures, state); + } return withPackageId(packageInfo, pathAndExtension); }; diff --git a/src/compiler/moduleSpecifiers.ts b/src/compiler/moduleSpecifiers.ts index 7c48d891a744c..270bee0048ec8 100644 --- a/src/compiler/moduleSpecifiers.ts +++ b/src/compiler/moduleSpecifiers.ts @@ -45,7 +45,7 @@ namespace ts.moduleSpecifiers { && getEmitModuleResolutionKind(compilerOptions) !== ModuleResolutionKind.NodeNext) { return false; } - return getImpliedNodeFormatForFile(importingSourceFileName, /*packageJsonInfoCache*/ undefined, getModuleResolutionHost(host), compilerOptions) !== ModuleKind.CommonJS; + return getImpliedNodeFormatForFile(importingSourceFileName, host.getPackageJsonInfoCache?.(), getModuleResolutionHost(host), compilerOptions) !== ModuleKind.CommonJS; } function getModuleResolutionHost(host: ModuleSpecifierResolutionHost): ModuleResolutionHost { @@ -59,53 +59,68 @@ namespace ts.moduleSpecifiers { }; } + // `importingSourceFile` and `importingSourceFileName`? Why not just use `importingSourceFile.path`? + // Because when this is called by the file renamer, `importingSourceFile` is the file being renamed, + // while `importingSourceFileName` its *new* name. We need a source file just to get its + // `impliedNodeFormat` and to detect certain preferences from existing import module specifiers. export function updateModuleSpecifier( compilerOptions: CompilerOptions, + importingSourceFile: SourceFile, importingSourceFileName: Path, toFileName: string, host: ModuleSpecifierResolutionHost, oldImportSpecifier: string, + options: ModuleSpecifierOptions = {}, ): string | undefined { - const res = getModuleSpecifierWorker(compilerOptions, importingSourceFileName, toFileName, host, getPreferencesForUpdate(compilerOptions, oldImportSpecifier, importingSourceFileName, host), {}); + const res = getModuleSpecifierWorker(compilerOptions, importingSourceFile, importingSourceFileName, toFileName, host, getPreferencesForUpdate(compilerOptions, oldImportSpecifier, importingSourceFileName, host), {}, options); if (res === oldImportSpecifier) return undefined; return res; } - // Note: importingSourceFile is just for usesJsExtensionOnImports + // `importingSourceFile` and `importingSourceFileName`? Why not just use `importingSourceFile.path`? + // Because when this is called by the declaration emitter, `importingSourceFile` is the implementation + // file, but `importingSourceFileName` and `toFileName` refer to declaration files (the former to the + // one currently being produced; the latter to the one being imported). We need an implementation file + // just to get its `impliedNodeFormat` and to detect certain preferences from existing import module + // specifiers. export function getModuleSpecifier( compilerOptions: CompilerOptions, importingSourceFile: SourceFile, importingSourceFileName: Path, toFileName: string, host: ModuleSpecifierResolutionHost, + options: ModuleSpecifierOptions = {}, ): string { - return getModuleSpecifierWorker(compilerOptions, importingSourceFileName, toFileName, host, getPreferences(host, {}, compilerOptions, importingSourceFile), {}); + return getModuleSpecifierWorker(compilerOptions, importingSourceFile, importingSourceFileName, toFileName, host, getPreferences(host, {}, compilerOptions, importingSourceFile), {}, options); } export function getNodeModulesPackageName( compilerOptions: CompilerOptions, - importingSourceFileName: Path, + importingSourceFile: SourceFile, nodeModulesFileName: string, host: ModuleSpecifierResolutionHost, preferences: UserPreferences, + options: ModuleSpecifierOptions = {}, ): string | undefined { - const info = getInfo(importingSourceFileName, host); - const modulePaths = getAllModulePaths(importingSourceFileName, nodeModulesFileName, host, preferences); + const info = getInfo(importingSourceFile.path, host); + const modulePaths = getAllModulePaths(importingSourceFile.path, nodeModulesFileName, host, preferences, options); return firstDefined(modulePaths, - modulePath => tryGetModuleNameAsNodeModule(modulePath, info, host, compilerOptions, /*packageNameOnly*/ true)); + modulePath => tryGetModuleNameAsNodeModule(modulePath, info, importingSourceFile, host, compilerOptions, /*packageNameOnly*/ true, options.overrideImportMode)); } function getModuleSpecifierWorker( compilerOptions: CompilerOptions, + importingSourceFile: SourceFile, importingSourceFileName: Path, toFileName: string, host: ModuleSpecifierResolutionHost, preferences: Preferences, userPreferences: UserPreferences, + options: ModuleSpecifierOptions = {} ): string { const info = getInfo(importingSourceFileName, host); - const modulePaths = getAllModulePaths(importingSourceFileName, toFileName, host, userPreferences); - return firstDefined(modulePaths, modulePath => tryGetModuleNameAsNodeModule(modulePath, info, host, compilerOptions)) || + const modulePaths = getAllModulePaths(importingSourceFileName, toFileName, host, userPreferences, options); + return firstDefined(modulePaths, modulePath => tryGetModuleNameAsNodeModule(modulePath, info, importingSourceFile, host, compilerOptions, /*packageNameOnly*/ undefined, options.overrideImportMode)) || getLocalModuleSpecifier(toFileName, info, compilerOptions, host, preferences); } @@ -114,12 +129,14 @@ namespace ts.moduleSpecifiers { importingSourceFile: SourceFile, host: ModuleSpecifierResolutionHost, userPreferences: UserPreferences, + options: ModuleSpecifierOptions = {}, ): readonly string[] | undefined { return tryGetModuleSpecifiersFromCacheWorker( moduleSymbol, importingSourceFile, host, - userPreferences)[0]; + userPreferences, + options)[0]; } function tryGetModuleSpecifiersFromCacheWorker( @@ -127,6 +144,7 @@ namespace ts.moduleSpecifiers { importingSourceFile: SourceFile, host: ModuleSpecifierResolutionHost, userPreferences: UserPreferences, + options: ModuleSpecifierOptions = {}, ): readonly [specifiers?: readonly string[], moduleFile?: SourceFile, modulePaths?: readonly ModulePath[], cache?: ModuleSpecifierCache] { const moduleSourceFile = getSourceFileOfModule(moduleSymbol); if (!moduleSourceFile) { @@ -134,7 +152,7 @@ namespace ts.moduleSpecifiers { } const cache = host.getModuleSpecifierCache?.(); - const cached = cache?.get(importingSourceFile.path, moduleSourceFile.path, userPreferences); + const cached = cache?.get(importingSourceFile.path, moduleSourceFile.path, userPreferences, options); return [cached?.moduleSpecifiers, moduleSourceFile, cached?.modulePaths, cache]; } @@ -146,6 +164,7 @@ namespace ts.moduleSpecifiers { importingSourceFile: SourceFile, host: ModuleSpecifierResolutionHost, userPreferences: UserPreferences, + options: ModuleSpecifierOptions = {}, ): readonly string[] { return getModuleSpecifiersWithCacheInfo( moduleSymbol, @@ -154,6 +173,7 @@ namespace ts.moduleSpecifiers { importingSourceFile, host, userPreferences, + options ).moduleSpecifiers; } @@ -164,6 +184,7 @@ namespace ts.moduleSpecifiers { importingSourceFile: SourceFile, host: ModuleSpecifierResolutionHost, userPreferences: UserPreferences, + options: ModuleSpecifierOptions = {}, ): { moduleSpecifiers: readonly string[], computedWithoutCache: boolean } { let computedWithoutCache = false; const ambient = tryGetModuleNameFromAmbientModule(moduleSymbol, checker); @@ -175,14 +196,15 @@ namespace ts.moduleSpecifiers { importingSourceFile, host, userPreferences, + options ); if (specifiers) return { moduleSpecifiers: specifiers, computedWithoutCache }; if (!moduleSourceFile) return { moduleSpecifiers: emptyArray, computedWithoutCache }; computedWithoutCache = true; modulePaths ||= getAllModulePathsWorker(importingSourceFile.path, moduleSourceFile.originalFileName, host); - const result = computeModuleSpecifiers(modulePaths, compilerOptions, importingSourceFile, host, userPreferences); - cache?.set(importingSourceFile.path, moduleSourceFile.path, userPreferences, modulePaths, result); + const result = computeModuleSpecifiers(modulePaths, compilerOptions, importingSourceFile, host, userPreferences, options); + cache?.set(importingSourceFile.path, moduleSourceFile.path, userPreferences, options, modulePaths, result); return { moduleSpecifiers: result, computedWithoutCache }; } @@ -192,6 +214,7 @@ namespace ts.moduleSpecifiers { importingSourceFile: SourceFile, host: ModuleSpecifierResolutionHost, userPreferences: UserPreferences, + options: ModuleSpecifierOptions = {}, ): readonly string[] { const info = getInfo(importingSourceFile.path, host); const preferences = getPreferences(host, userPreferences, compilerOptions, importingSourceFile); @@ -199,6 +222,9 @@ namespace ts.moduleSpecifiers { host.getFileIncludeReasons().get(toPath(modulePath.path, host.getCurrentDirectory(), info.getCanonicalFileName)), reason => { if (reason.kind !== FileIncludeKind.Import || reason.file !== importingSourceFile.path) return undefined; + // If the candidate import mode doesn't match the mode we're generating for, don't consider it + // TODO: maybe useful to keep around as an alternative option for certain contexts where the mode is overridable + if (importingSourceFile.impliedNodeFormat && importingSourceFile.impliedNodeFormat !== getModeForResolutionAtIndex(importingSourceFile, reason.index)) return undefined; const specifier = getModuleNameStringLiteralAt(importingSourceFile, reason.index).text; // If the preference is for non relative and the module specifier is relative, ignore it return preferences.relativePreference !== RelativePreference.NonRelative || !pathIsRelative(specifier) ? @@ -222,7 +248,7 @@ namespace ts.moduleSpecifiers { let pathsSpecifiers: string[] | undefined; let relativeSpecifiers: string[] | undefined; for (const modulePath of modulePaths) { - const specifier = tryGetModuleNameAsNodeModule(modulePath, info, host, compilerOptions); + const specifier = tryGetModuleNameAsNodeModule(modulePath, info, importingSourceFile, host, compilerOptions, /*packageNameOnly*/ undefined, options.overrideImportMode); nodeModulesSpecifiers = append(nodeModulesSpecifiers, specifier); if (specifier && modulePath.isRedirect) { // If we got a specifier for a redirect, it was a bare package specifier (e.g. "@foo/bar", @@ -423,16 +449,17 @@ namespace ts.moduleSpecifiers { importedFileName: string, host: ModuleSpecifierResolutionHost, preferences: UserPreferences, - importedFilePath = toPath(importedFileName, host.getCurrentDirectory(), hostGetCanonicalFileName(host)) + options: ModuleSpecifierOptions = {}, ) { + const importedFilePath = toPath(importedFileName, host.getCurrentDirectory(), hostGetCanonicalFileName(host)); const cache = host.getModuleSpecifierCache?.(); if (cache) { - const cached = cache.get(importingFilePath, importedFilePath, preferences); + const cached = cache.get(importingFilePath, importedFilePath, preferences, options); if (cached?.modulePaths) return cached.modulePaths; } const modulePaths = getAllModulePathsWorker(importingFilePath, importedFileName, host); if (cache) { - cache.setModulePaths(importingFilePath, importedFilePath, preferences, modulePaths); + cache.setModulePaths(importingFilePath, importedFilePath, preferences, options, modulePaths); } return modulePaths; } @@ -639,7 +666,7 @@ namespace ts.moduleSpecifiers { : removeFileExtension(relativePath); } - function tryGetModuleNameAsNodeModule({ path, isRedirect }: ModulePath, { getCanonicalFileName, sourceDirectory }: Info, host: ModuleSpecifierResolutionHost, options: CompilerOptions, packageNameOnly?: boolean): string | undefined { + function tryGetModuleNameAsNodeModule({ path, isRedirect }: ModulePath, { getCanonicalFileName, sourceDirectory }: Info, importingSourceFile: SourceFile , host: ModuleSpecifierResolutionHost, options: CompilerOptions, packageNameOnly?: boolean, overrideMode?: ModuleKind.ESNext | ModuleKind.CommonJS): string | undefined { if (!host.fileExists || !host.readFile) { return undefined; } @@ -704,16 +731,27 @@ namespace ts.moduleSpecifiers { const packageRootPath = path.substring(0, packageRootIndex); const packageJsonPath = combinePaths(packageRootPath, "package.json"); let moduleFileToTry = path; - if (host.fileExists(packageJsonPath)) { - const packageJsonContent = JSON.parse(host.readFile!(packageJsonPath)!); - // TODO: Inject `require` or `import` condition based on the intended import mode - const fromExports = packageJsonContent.exports && typeof packageJsonContent.name === "string" ? tryGetModuleNameFromExports(options, path, packageRootPath, packageJsonContent.name, packageJsonContent.exports, ["node", "types"]) : undefined; - if (fromExports) { - const withJsExtension = !hasTSFileExtension(fromExports.moduleFileToTry) ? fromExports : { moduleFileToTry: removeFileExtension(fromExports.moduleFileToTry) + tryGetJSExtensionForFile(fromExports.moduleFileToTry, options) }; - return { ...withJsExtension, verbatimFromExports: true }; - } - if (packageJsonContent.exports) { - return { moduleFileToTry: path, blockedByExports: true }; + const cachedPackageJson = host.getPackageJsonInfoCache?.()?.getPackageJsonInfo(packageJsonPath); + if (typeof cachedPackageJson === "object" || cachedPackageJson === undefined && host.fileExists(packageJsonPath)) { + const packageJsonContent = cachedPackageJson?.packageJsonContent || JSON.parse(host.readFile!(packageJsonPath)!); + if (getEmitModuleResolutionKind(options) === ModuleResolutionKind.Node12 || getEmitModuleResolutionKind(options) === ModuleResolutionKind.NodeNext) { + // `conditions` *could* be made to go against `importingSourceFile.impliedNodeFormat` if something wanted to generate + // an ImportEqualsDeclaration in an ESM-implied file or an ImportCall in a CJS-implied file. But since this function is + // usually called to conjure an import out of thin air, we don't have an existing usage to call `getModeForUsageAtIndex` + // with, so for now we just stick with the mode of the file. + const conditions = ["node", overrideMode || importingSourceFile.impliedNodeFormat === ModuleKind.ESNext ? "import" : "require", "types"]; + const fromExports = packageJsonContent.exports && typeof packageJsonContent.name === "string" + ? tryGetModuleNameFromExports(options, path, packageRootPath, getPackageNameFromTypesPackageName(packageJsonContent.name), packageJsonContent.exports, conditions) + : undefined; + if (fromExports) { + const withJsExtension = !hasTSFileExtension(fromExports.moduleFileToTry) + ? fromExports + : { moduleFileToTry: removeFileExtension(fromExports.moduleFileToTry) + tryGetJSExtensionForFile(fromExports.moduleFileToTry, options) }; + return { ...withJsExtension, verbatimFromExports: true }; + } + if (packageJsonContent.exports) { + return { moduleFileToTry: path, blockedByExports: true }; + } } const versionPaths = packageJsonContent.typesVersions ? getPackageJsonTypesVersionsPaths(packageJsonContent.typesVersions) @@ -767,74 +805,10 @@ namespace ts.moduleSpecifiers { } } - interface NodeModulePathParts { - readonly topLevelNodeModulesIndex: number; - readonly topLevelPackageNameIndex: number; - readonly packageRootIndex: number; - readonly fileNameIndex: number; - } - function getNodeModulePathParts(fullPath: string): NodeModulePathParts | undefined { - // If fullPath can't be valid module file within node_modules, returns undefined. - // Example of expected pattern: /base/path/node_modules/[@scope/otherpackage/@otherscope/node_modules/]package/[subdirectory/]file.js - // Returns indices: ^ ^ ^ ^ - - let topLevelNodeModulesIndex = 0; - let topLevelPackageNameIndex = 0; - let packageRootIndex = 0; - let fileNameIndex = 0; - - const enum States { - BeforeNodeModules, - NodeModules, - Scope, - PackageContent - } - - let partStart = 0; - let partEnd = 0; - let state = States.BeforeNodeModules; - - while (partEnd >= 0) { - partStart = partEnd; - partEnd = fullPath.indexOf("/", partStart + 1); - switch (state) { - case States.BeforeNodeModules: - if (fullPath.indexOf(nodeModulesPathPart, partStart) === partStart) { - topLevelNodeModulesIndex = partStart; - topLevelPackageNameIndex = partEnd; - state = States.NodeModules; - } - break; - case States.NodeModules: - case States.Scope: - if (state === States.NodeModules && fullPath.charAt(partStart + 1) === "@") { - state = States.Scope; - } - else { - packageRootIndex = partEnd; - state = States.PackageContent; - } - break; - case States.PackageContent: - if (fullPath.indexOf(nodeModulesPathPart, partStart) === partStart) { - state = States.NodeModules; - } - else { - state = States.PackageContent; - } - break; - } - } - - fileNameIndex = partStart; - - return state > States.NodeModules ? { topLevelNodeModulesIndex, topLevelPackageNameIndex, packageRootIndex, fileNameIndex } : undefined; - } - function getPathRelativeToRootDirs(path: string, rootDirs: readonly string[], getCanonicalFileName: GetCanonicalFileName): string | undefined { return firstDefined(rootDirs, rootDir => { - const relativePath = getRelativePathIfInDirectory(path, rootDir, getCanonicalFileName)!; // TODO: GH#18217 - return isPathRelativeToParent(relativePath) ? undefined : relativePath; + const relativePath = getRelativePathIfInDirectory(path, rootDir, getCanonicalFileName); + return relativePath !== undefined && isPathRelativeToParent(relativePath) ? undefined : relativePath; }); } diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index 1109d36a610b3..5f9c7f0085e85 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -60,6 +60,41 @@ namespace ts { text.charCodeAt(start + 3) !== CharacterCodes.slash; } + /*@internal*/ + export function isFileProbablyExternalModule(sourceFile: SourceFile) { + // Try to use the first top-level import/export when available, then + // fall back to looking for an 'import.meta' somewhere in the tree if necessary. + return forEach(sourceFile.statements, isAnExternalModuleIndicatorNode) || + getImportMetaIfNecessary(sourceFile); + } + + function isAnExternalModuleIndicatorNode(node: Node) { + return hasModifierOfKind(node, SyntaxKind.ExportKeyword) + || isImportEqualsDeclaration(node) && isExternalModuleReference(node.moduleReference) + || isImportDeclaration(node) + || isExportAssignment(node) + || isExportDeclaration(node) ? node : undefined; + } + + function getImportMetaIfNecessary(sourceFile: SourceFile) { + return sourceFile.flags & NodeFlags.PossiblyContainsImportMeta ? + walkTreeForImportMeta(sourceFile) : + undefined; + } + + function walkTreeForImportMeta(node: Node): Node | undefined { + return isImportMeta(node) ? node : forEachChild(node, walkTreeForImportMeta); + } + + /** Do not use hasModifier inside the parser; it relies on parent pointers. Use this instead. */ + function hasModifierOfKind(node: Node, kind: SyntaxKind) { + return some(node.modifiers, m => m.kind === kind); + } + + function isImportMeta(node: Node): boolean { + return isMetaProperty(node) && node.keywordToken === SyntaxKind.ImportKeyword && node.name.escapedText === "meta"; + } + /** * Invokes a callback for each child of the given node. The 'cbNode' callback is invoked for all child nodes * stored in properties. If a 'cbNodes' callback is specified, it is invoked for embedded arrays; otherwise, @@ -82,7 +117,8 @@ namespace ts { return visitNode(cbNode, (node as QualifiedName).left) || visitNode(cbNode, (node as QualifiedName).right); case SyntaxKind.TypeParameter: - return visitNode(cbNode, (node as TypeParameterDeclaration).name) || + return visitNodes(cbNode, cbNodes, node.modifiers) || + visitNode(cbNode, (node as TypeParameterDeclaration).name) || visitNode(cbNode, (node as TypeParameterDeclaration).constraint) || visitNode(cbNode, (node as TypeParameterDeclaration).default) || visitNode(cbNode, (node as TypeParameterDeclaration).expression); @@ -180,7 +216,8 @@ namespace ts { visitNode(cbNode, (node as TypePredicateNode).parameterName) || visitNode(cbNode, (node as TypePredicateNode).type); case SyntaxKind.TypeQuery: - return visitNode(cbNode, (node as TypeQueryNode).exprName); + return visitNode(cbNode, (node as TypeQueryNode).exprName) || + visitNodes(cbNode, cbNodes, (node as TypeQueryNode).typeArguments); case SyntaxKind.TypeLiteral: return visitNodes(cbNode, cbNodes, (node as TypeLiteralNode).members); case SyntaxKind.ArrayType: @@ -199,8 +236,11 @@ namespace ts { return visitNode(cbNode, (node as InferTypeNode).typeParameter); case SyntaxKind.ImportType: return visitNode(cbNode, (node as ImportTypeNode).argument) || + visitNode(cbNode, (node as ImportTypeNode).assertions) || visitNode(cbNode, (node as ImportTypeNode).qualifier) || visitNodes(cbNode, cbNodes, (node as ImportTypeNode).typeArguments); + case SyntaxKind.ImportTypeAssertionContainer: + return visitNode(cbNode, (node as ImportTypeAssertionContainer).assertClause); case SyntaxKind.ParenthesizedType: case SyntaxKind.TypeOperator: return visitNode(cbNode, (node as ParenthesizedTypeNode | TypeOperatorNode).type); @@ -491,7 +531,7 @@ namespace ts { case SyntaxKind.JSDocFunctionType: return visitNodes(cbNode, cbNodes, (node as JSDocFunctionType).parameters) || visitNode(cbNode, (node as JSDocFunctionType).type); - case SyntaxKind.JSDocComment: + case SyntaxKind.JSDoc: return (typeof (node as JSDoc).comment === "string" ? undefined : visitNodes(cbNode, cbNodes, (node as JSDoc).comment as NodeArray | undefined)) || visitNodes(cbNode, cbNodes, (node as JSDoc).tags); case SyntaxKind.JSDocSeeTag: @@ -638,17 +678,46 @@ namespace ts { } } - export function createSourceFile(fileName: string, sourceText: string, languageVersion: ScriptTarget, setParentNodes = false, scriptKind?: ScriptKind): SourceFile { + export interface CreateSourceFileOptions { + languageVersion: ScriptTarget; + /** + * Controls the format the file is detected as - this can be derived from only the path + * and files on disk, but needs to be done with a module resolution cache in scope to be performant. + * This is usually `undefined` for compilations that do not have `moduleResolution` values of `node12` or `nodenext`. + */ + impliedNodeFormat?: ModuleKind.ESNext | ModuleKind.CommonJS; + /** + * Controls how module-y-ness is set for the given file. Usually the result of calling + * `getSetExternalModuleIndicator` on a valid `CompilerOptions` object. If not present, the default + * check specified by `isFileProbablyExternalModule` will be used to set the field. + */ + setExternalModuleIndicator?: (file: SourceFile) => void; + } + + function setExternalModuleIndicator(sourceFile: SourceFile) { + sourceFile.externalModuleIndicator = isFileProbablyExternalModule(sourceFile); + } + + export function createSourceFile(fileName: string, sourceText: string, languageVersionOrOptions: ScriptTarget | CreateSourceFileOptions, setParentNodes = false, scriptKind?: ScriptKind): SourceFile { tracing?.push(tracing.Phase.Parse, "createSourceFile", { path: fileName }, /*separateBeginAndEnd*/ true); performance.mark("beforeParse"); let result: SourceFile; perfLogger.logStartParseSourceFile(fileName); + const { + languageVersion, + setExternalModuleIndicator: overrideSetExternalModuleIndicator, + impliedNodeFormat: format + } = typeof languageVersionOrOptions === "object" ? languageVersionOrOptions : ({ languageVersion: languageVersionOrOptions } as CreateSourceFileOptions); if (languageVersion === ScriptTarget.JSON) { - result = Parser.parseSourceFile(fileName, sourceText, languageVersion, /*syntaxCursor*/ undefined, setParentNodes, ScriptKind.JSON); + result = Parser.parseSourceFile(fileName, sourceText, languageVersion, /*syntaxCursor*/ undefined, setParentNodes, ScriptKind.JSON, noop); } else { - result = Parser.parseSourceFile(fileName, sourceText, languageVersion, /*syntaxCursor*/ undefined, setParentNodes, scriptKind); + const setIndicator = format === undefined ? overrideSetExternalModuleIndicator : (file: SourceFile) => { + file.impliedNodeFormat = format; + return (overrideSetExternalModuleIndicator || setExternalModuleIndicator)(file); + }; + result = Parser.parseSourceFile(fileName, sourceText, languageVersion, /*syntaxCursor*/ undefined, setParentNodes, scriptKind, setIndicator); } perfLogger.logStopParseSourceFile(); @@ -847,7 +916,7 @@ namespace ts { // attached to the EOF token. let parseErrorBeforeNextFinishedNode = false; - export function parseSourceFile(fileName: string, sourceText: string, languageVersion: ScriptTarget, syntaxCursor: IncrementalParser.SyntaxCursor | undefined, setParentNodes = false, scriptKind?: ScriptKind): SourceFile { + export function parseSourceFile(fileName: string, sourceText: string, languageVersion: ScriptTarget, syntaxCursor: IncrementalParser.SyntaxCursor | undefined, setParentNodes = false, scriptKind?: ScriptKind, setExternalModuleIndicatorOverride?: (file: SourceFile) => void): SourceFile { scriptKind = ensureScriptKind(fileName, scriptKind); if (scriptKind === ScriptKind.JSON) { const result = parseJsonText(fileName, sourceText, languageVersion, syntaxCursor, setParentNodes); @@ -863,7 +932,7 @@ namespace ts { initializeState(fileName, sourceText, languageVersion, syntaxCursor, scriptKind); - const result = parseSourceFileWorker(languageVersion, setParentNodes, scriptKind); + const result = parseSourceFileWorker(languageVersion, setParentNodes, scriptKind, setExternalModuleIndicatorOverride || setExternalModuleIndicator); clearState(); @@ -875,7 +944,7 @@ namespace ts { initializeState("", content, languageVersion, /*syntaxCursor*/ undefined, ScriptKind.JS); // Prime the scanner. nextToken(); - const entityName = parseEntityName(/*allowReservedWords*/ true); + const entityName = parseEntityName(/*allowReservedWords*/ true, /*allowPrivateIdentifiers*/ false); const isInvalid = token() === SyntaxKind.EndOfFileToken && !parseDiagnostics.length; clearState(); return isInvalid ? entityName : undefined; @@ -951,7 +1020,7 @@ namespace ts { } // Set source file so that errors will be reported with this file name - const sourceFile = createSourceFile(fileName, ScriptTarget.ES2015, ScriptKind.JSON, /*isDeclaration*/ false, statements, endOfFileToken, sourceFlags); + const sourceFile = createSourceFile(fileName, ScriptTarget.ES2015, ScriptKind.JSON, /*isDeclaration*/ false, statements, endOfFileToken, sourceFlags, noop); if (setParentNodes) { fixupParentReferences(sourceFile); @@ -1035,7 +1104,7 @@ namespace ts { topLevel = true; } - function parseSourceFileWorker(languageVersion: ScriptTarget, setParentNodes: boolean, scriptKind: ScriptKind): SourceFile { + function parseSourceFileWorker(languageVersion: ScriptTarget, setParentNodes: boolean, scriptKind: ScriptKind, setExternalModuleIndicator: (file: SourceFile) => void): SourceFile { const isDeclarationFile = isDeclarationFileName(fileName); if (isDeclarationFile) { contextFlags |= NodeFlags.Ambient; @@ -1050,7 +1119,7 @@ namespace ts { Debug.assert(token() === SyntaxKind.EndOfFileToken); const endOfFileToken = addJSDocComment(parseTokenNode()); - const sourceFile = createSourceFile(fileName, languageVersion, scriptKind, isDeclarationFile, statements, endOfFileToken, sourceFlags); + const sourceFile = createSourceFile(fileName, languageVersion, scriptKind, isDeclarationFile, statements, endOfFileToken, sourceFlags, setExternalModuleIndicator); // A member of ReadonlyArray isn't assignable to a member of T[] (and prevents a direct cast) - but this is where we set up those members so they can be readonly in the future processCommentPragmas(sourceFile as {} as PragmaContext, sourceText); @@ -1209,28 +1278,42 @@ namespace ts { setParentRecursive(rootNode, /*incremental*/ true); } - function createSourceFile(fileName: string, languageVersion: ScriptTarget, scriptKind: ScriptKind, isDeclarationFile: boolean, statements: readonly Statement[], endOfFileToken: EndOfFileToken, flags: NodeFlags): SourceFile { + function createSourceFile( + fileName: string, + languageVersion: ScriptTarget, + scriptKind: ScriptKind, + isDeclarationFile: boolean, + statements: readonly Statement[], + endOfFileToken: EndOfFileToken, + flags: NodeFlags, + setExternalModuleIndicator: (sourceFile: SourceFile) => void): SourceFile { // code from createNode is inlined here so createNode won't have to deal with special case of creating source files // this is quite rare comparing to other nodes and createNode should be as fast as possible let sourceFile = factory.createSourceFile(statements, endOfFileToken, flags); setTextRangePosWidth(sourceFile, 0, sourceText.length); - setExternalModuleIndicator(sourceFile); + setFields(sourceFile); // If we parsed this as an external module, it may contain top-level await if (!isDeclarationFile && isExternalModule(sourceFile) && sourceFile.transformFlags & TransformFlags.ContainsPossibleTopLevelAwait) { sourceFile = reparseTopLevelAwait(sourceFile); + setFields(sourceFile); } - sourceFile.text = sourceText; - sourceFile.bindDiagnostics = []; - sourceFile.bindSuggestionDiagnostics = undefined; - sourceFile.languageVersion = languageVersion; - sourceFile.fileName = fileName; - sourceFile.languageVariant = getLanguageVariant(scriptKind); - sourceFile.isDeclarationFile = isDeclarationFile; - sourceFile.scriptKind = scriptKind; - return sourceFile; + + function setFields(sourceFile: SourceFile) { + sourceFile.text = sourceText; + sourceFile.bindDiagnostics = []; + sourceFile.bindSuggestionDiagnostics = undefined; + sourceFile.languageVersion = languageVersion; + sourceFile.fileName = fileName; + sourceFile.languageVariant = getLanguageVariant(scriptKind); + sourceFile.isDeclarationFile = isDeclarationFile; + sourceFile.scriptKind = scriptKind; + + setExternalModuleIndicator(sourceFile); + sourceFile.setExternalModuleIndicator = setExternalModuleIndicator; + } } function setContextFlag(val: boolean, flag: NodeFlags) { @@ -1352,24 +1435,27 @@ namespace ts { return inContext(NodeFlags.AwaitContext); } - function parseErrorAtCurrentToken(message: DiagnosticMessage, arg0?: any): void { - parseErrorAt(scanner.getTokenPos(), scanner.getTextPos(), message, arg0); + function parseErrorAtCurrentToken(message: DiagnosticMessage, arg0?: any): DiagnosticWithDetachedLocation | undefined { + return parseErrorAt(scanner.getTokenPos(), scanner.getTextPos(), message, arg0); } - function parseErrorAtPosition(start: number, length: number, message: DiagnosticMessage, arg0?: any): void { + function parseErrorAtPosition(start: number, length: number, message: DiagnosticMessage, arg0?: any): DiagnosticWithDetachedLocation | undefined { // Don't report another error if it would just be at the same position as the last error. const lastError = lastOrUndefined(parseDiagnostics); + let result: DiagnosticWithDetachedLocation | undefined; if (!lastError || start !== lastError.start) { - parseDiagnostics.push(createDetachedDiagnostic(fileName, start, length, message, arg0)); + result = createDetachedDiagnostic(fileName, start, length, message, arg0); + parseDiagnostics.push(result); } // Mark that we've encountered an error. We'll set an appropriate bit on the next // node we finish so that it can't be reused incrementally. parseErrorBeforeNextFinishedNode = true; + return result; } - function parseErrorAt(start: number, end: number, message: DiagnosticMessage, arg0?: any): void { - parseErrorAtPosition(start, end - start, message, arg0); + function parseErrorAt(start: number, end: number, message: DiagnosticMessage, arg0?: any): DiagnosticWithDetachedLocation | undefined { + return parseErrorAtPosition(start, end - start, message, arg0); } function parseErrorAtRange(range: TextRange, message: DiagnosticMessage, arg0?: any): void { @@ -1680,19 +1766,8 @@ namespace ts { return; } - // If an initializer was parsed but there is still an error in finding the next semicolon, - // we generally know there was an error already reported in the initializer... - // class Example { a = new Map([), ) } - // ~ if (initializer) { - // ...unless we've found the start of a block after a property declaration, in which - // case we can know that regardless of the initializer we should complain on the block. - // class Example { a = 0 {} } - // ~ - if (token() === SyntaxKind.OpenBraceToken) { - parseErrorAtCurrentToken(Diagnostics._0_expected, tokenToString(SyntaxKind.SemicolonToken)); - } - + parseErrorAtCurrentToken(Diagnostics._0_expected, tokenToString(SyntaxKind.SemicolonToken)); return; } @@ -1708,6 +1783,23 @@ namespace ts { return false; } + function parseExpectedMatchingBrackets(openKind: SyntaxKind, closeKind: SyntaxKind, openParsed: boolean, openPosition: number) { + if (token() === closeKind) { + nextToken(); + return; + } + const lastError = parseErrorAtCurrentToken(Diagnostics._0_expected, tokenToString(closeKind)); + if (!openParsed) { + return; + } + if (lastError) { + addRelatedInfo( + lastError, + createDetachedDiagnostic(fileName, openPosition, 1, Diagnostics.The_parser_expected_to_find_a_1_to_match_the_0_token_here, tokenToString(openKind), tokenToString(closeKind)) + ); + } + } + function parseOptional(t: SyntaxKind): boolean { if (token() === t) { nextToken(); @@ -2085,7 +2177,7 @@ namespace ts { case ParsingContext.ArrayBindingElements: return token() === SyntaxKind.CommaToken || token() === SyntaxKind.DotDotDotToken || isBindingIdentifierOrPrivateIdentifierOrPattern(); case ParsingContext.TypeParameters: - return isIdentifier(); + return token() === SyntaxKind.InKeyword || isIdentifier(); case ParsingContext.ArrayLiteralMembers: switch (token()) { case SyntaxKind.CommaToken: @@ -2611,7 +2703,10 @@ namespace ts { case ParsingContext.ObjectLiteralMembers: return parseErrorAtCurrentToken(Diagnostics.Property_assignment_expected); case ParsingContext.ArrayLiteralMembers: return parseErrorAtCurrentToken(Diagnostics.Expression_or_comma_expected); case ParsingContext.JSDocParameters: return parseErrorAtCurrentToken(Diagnostics.Parameter_declaration_expected); - case ParsingContext.Parameters: return parseErrorAtCurrentToken(Diagnostics.Parameter_declaration_expected); + case ParsingContext.Parameters: + return isKeyword(token()) + ? parseErrorAtCurrentToken(Diagnostics._0_is_not_allowed_as_a_parameter_name, tokenToString(token())) + : parseErrorAtCurrentToken(Diagnostics.Parameter_declaration_expected); case ParsingContext.TypeParameters: return parseErrorAtCurrentToken(Diagnostics.Type_parameter_declaration_expected); case ParsingContext.TypeArguments: return parseErrorAtCurrentToken(Diagnostics.Type_argument_expected); case ParsingContext.TupleElementTypes: return parseErrorAtCurrentToken(Diagnostics.Type_expected); @@ -2716,7 +2811,7 @@ namespace ts { return createMissingList(); } - function parseEntityName(allowReservedWords: boolean, diagnosticMessage?: DiagnosticMessage): EntityName { + function parseEntityName(allowReservedWords: boolean, allowPrivateIdentifiers: boolean, diagnosticMessage?: DiagnosticMessage): EntityName { const pos = getNodePos(); let entity: EntityName = allowReservedWords ? parseIdentifierName(diagnosticMessage) : parseIdentifier(diagnosticMessage); let dotPos = getNodePos(); @@ -2730,7 +2825,7 @@ namespace ts { entity = finishNode( factory.createQualifiedName( entity, - parseRightSideOfDot(allowReservedWords, /* allowPrivateIdentifiers */ false) as Identifier + parseRightSideOfDot(allowReservedWords, allowPrivateIdentifiers) as Identifier ), pos ); @@ -2915,7 +3010,7 @@ namespace ts { // TYPES function parseEntityNameOfTypeReference() { - return parseEntityName(/*allowReservedWords*/ true, Diagnostics.Type_expected); + return parseEntityName(/*allowReservedWords*/ true, /*allowPrivateIdentifiers*/ false, Diagnostics.Type_expected); } function parseTypeArgumentsOfTypeReference() { @@ -3075,11 +3170,14 @@ namespace ts { function parseTypeQuery(): TypeQueryNode { const pos = getNodePos(); parseExpected(SyntaxKind.TypeOfKeyword); - return finishNode(factory.createTypeQueryNode(parseEntityName(/*allowReservedWords*/ true)), pos); + const entityName = parseEntityName(/*allowReservedWords*/ true, /*allowPrivateIdentifiers*/ true); + const typeArguments = tryParseTypeArguments(); + return finishNode(factory.createTypeQueryNode(entityName, typeArguments), pos); } function parseTypeParameter(): TypeParameterDeclaration { const pos = getNodePos(); + const modifiers = parseModifiers(); const name = parseIdentifier(); let constraint: TypeNode | undefined; let expression: Expression | undefined; @@ -3104,7 +3202,7 @@ namespace ts { } const defaultType = parseOptional(SyntaxKind.EqualsToken) ? parseType() : undefined; - const node = factory.createTypeParameterDeclaration(name, constraint, defaultType); + const node = factory.createTypeParameterDeclaration(modifiers, name, constraint, defaultType); node.expression = expression; return finishNode(node, pos); } @@ -3509,7 +3607,7 @@ namespace ts { const name = parseIdentifierName(); parseExpected(SyntaxKind.InKeyword); const type = parseType(); - return finishNode(factory.createTypeParameterDeclaration(name, type, /*defaultType*/ undefined), pos); + return finishNode(factory.createTypeParameterDeclaration(/*modifiers*/ undefined, name, type, /*defaultType*/ undefined), pos); } function parseMappedType() { @@ -3650,6 +3748,26 @@ namespace ts { return token() === SyntaxKind.ImportKeyword; } + function parseImportTypeAssertions(): ImportTypeAssertionContainer { + const pos = getNodePos(); + const openBracePosition = scanner.getTokenPos(); + parseExpected(SyntaxKind.OpenBraceToken); + const multiLine = scanner.hasPrecedingLineBreak(); + parseExpected(SyntaxKind.AssertKeyword); + parseExpected(SyntaxKind.ColonToken); + const clause = parseAssertClause(/*skipAssertKeyword*/ true); + if (!parseExpected(SyntaxKind.CloseBraceToken)) { + const lastError = lastOrUndefined(parseDiagnostics); + if (lastError && lastError.code === Diagnostics._0_expected.code) { + addRelatedInfo( + lastError, + createDetachedDiagnostic(fileName, openBracePosition, 1, Diagnostics.The_parser_expected_to_find_a_1_to_match_the_0_token_here, "{", "}") + ); + } + } + return finishNode(factory.createImportTypeAssertionContainer(clause, multiLine), pos); + } + function parseImportType(): ImportTypeNode { sourceFlags |= NodeFlags.PossiblyContainsDynamicImport; const pos = getNodePos(); @@ -3657,10 +3775,14 @@ namespace ts { parseExpected(SyntaxKind.ImportKeyword); parseExpected(SyntaxKind.OpenParenToken); const type = parseType(); + let assertions: ImportTypeAssertionContainer | undefined; + if (parseOptional(SyntaxKind.CommaToken)) { + assertions = parseImportTypeAssertions(); + } parseExpected(SyntaxKind.CloseParenToken); const qualifier = parseOptional(SyntaxKind.DotToken) ? parseEntityNameOfTypeReference() : undefined; const typeArguments = parseTypeArgumentsOfTypeReference(); - return finishNode(factory.createImportTypeNode(type, qualifier, typeArguments, isTypeOf), pos); + return finishNode(factory.createImportTypeNode(type, assertions, qualifier, typeArguments, isTypeOf), pos); } function nextTokenIsNumericOrBigIntLiteral() { @@ -3841,6 +3963,7 @@ namespace ts { const pos = getNodePos(); return finishNode( factory.createTypeParameterDeclaration( + /*modifiers*/ undefined, parseIdentifier(), /*constraint*/ undefined, /*defaultType*/ undefined @@ -4128,10 +4251,10 @@ namespace ts { } const pos = getNodePos(); - let expr = parseAssignmentExpressionOrHigher(); + let expr = parseAssignmentExpressionOrHigher(/*disallowReturnTypeInArrowFunction*/ false); let operatorToken: BinaryOperatorToken; while ((operatorToken = parseOptionalToken(SyntaxKind.CommaToken))) { - expr = makeBinaryExpression(expr, operatorToken, parseAssignmentExpressionOrHigher(), pos); + expr = makeBinaryExpression(expr, operatorToken, parseAssignmentExpressionOrHigher(/*disallowReturnTypeInArrowFunction*/ false), pos); } if (saveDecoratorContext) { @@ -4141,10 +4264,10 @@ namespace ts { } function parseInitializer(): Expression | undefined { - return parseOptional(SyntaxKind.EqualsToken) ? parseAssignmentExpressionOrHigher() : undefined; + return parseOptional(SyntaxKind.EqualsToken) ? parseAssignmentExpressionOrHigher(/*disallowReturnTypeInArrowFunction*/ false) : undefined; } - function parseAssignmentExpressionOrHigher(): Expression { + function parseAssignmentExpressionOrHigher(disallowReturnTypeInArrowFunction: boolean): Expression { // AssignmentExpression[in,yield]: // 1) ConditionalExpression[?in,?yield] // 2) LeftHandSideExpression = AssignmentExpression[?in,?yield] @@ -4172,7 +4295,7 @@ namespace ts { // If we do successfully parse arrow-function, we must *not* recurse for productions 1, 2 or 3. An ArrowFunction is // not a LeftHandSideExpression, nor does it start a ConditionalExpression. So we are done // with AssignmentExpression if we see one. - const arrowExpression = tryParseParenthesizedArrowFunctionExpression() || tryParseAsyncSimpleArrowFunctionExpression(); + const arrowExpression = tryParseParenthesizedArrowFunctionExpression(disallowReturnTypeInArrowFunction) || tryParseAsyncSimpleArrowFunctionExpression(disallowReturnTypeInArrowFunction); if (arrowExpression) { return arrowExpression; } @@ -4193,7 +4316,7 @@ namespace ts { // parameter ('x => ...') above. We handle it here by checking if the parsed expression was a single // identifier and the current token is an arrow. if (expr.kind === SyntaxKind.Identifier && token() === SyntaxKind.EqualsGreaterThanToken) { - return parseSimpleArrowFunctionExpression(pos, expr as Identifier, /*asyncModifier*/ undefined); + return parseSimpleArrowFunctionExpression(pos, expr as Identifier, disallowReturnTypeInArrowFunction, /*asyncModifier*/ undefined); } // Now see if we might be in cases '2' or '3'. @@ -4203,7 +4326,7 @@ namespace ts { // Note: we call reScanGreaterToken so that we get an appropriately merged token // for cases like `> > =` becoming `>>=` if (isLeftHandSideExpression(expr) && isAssignmentOperator(reScanGreaterToken())) { - return makeBinaryExpression(expr, parseTokenNode(), parseAssignmentExpressionOrHigher(), pos); + return makeBinaryExpression(expr, parseTokenNode(), parseAssignmentExpressionOrHigher(disallowReturnTypeInArrowFunction), pos); } // It wasn't an assignment or a lambda. This is a conditional expression: @@ -4257,7 +4380,7 @@ namespace ts { return finishNode( factory.createYieldExpression( parseOptionalToken(SyntaxKind.AsteriskToken), - parseAssignmentExpressionOrHigher() + parseAssignmentExpressionOrHigher(/*disallowReturnTypeInArrowFunction*/ false) ), pos ); @@ -4269,7 +4392,7 @@ namespace ts { } } - function parseSimpleArrowFunctionExpression(pos: number, identifier: Identifier, asyncModifier?: NodeArray | undefined): ArrowFunction { + function parseSimpleArrowFunctionExpression(pos: number, identifier: Identifier, disallowReturnTypeInArrowFunction: boolean, asyncModifier?: NodeArray | undefined): ArrowFunction { Debug.assert(token() === SyntaxKind.EqualsGreaterThanToken, "parseSimpleArrowFunctionExpression should only have been called if we had a =>"); const parameter = factory.createParameterDeclaration( /*decorators*/ undefined, @@ -4284,12 +4407,12 @@ namespace ts { const parameters = createNodeArray([parameter], parameter.pos, parameter.end); const equalsGreaterThanToken = parseExpectedToken(SyntaxKind.EqualsGreaterThanToken); - const body = parseArrowFunctionExpressionBody(/*isAsync*/ !!asyncModifier); + const body = parseArrowFunctionExpressionBody(/*isAsync*/ !!asyncModifier, disallowReturnTypeInArrowFunction); const node = factory.createArrowFunction(asyncModifier, /*typeParameters*/ undefined, parameters, /*type*/ undefined, equalsGreaterThanToken, body); return addJSDocComment(finishNode(node, pos)); } - function tryParseParenthesizedArrowFunctionExpression(): Expression | undefined { + function tryParseParenthesizedArrowFunctionExpression(disallowReturnTypeInArrowFunction: boolean): Expression | undefined { const triState = isParenthesizedArrowFunctionExpression(); if (triState === Tristate.False) { // It's definitely not a parenthesized arrow function expression. @@ -4301,8 +4424,8 @@ namespace ts { // it out, but don't allow any ambiguity, and return 'undefined' if this could be an // expression instead. return triState === Tristate.True ? - parseParenthesizedArrowFunctionExpression(/*allowAmbiguity*/ true) : - tryParse(parsePossibleParenthesizedArrowFunctionExpression); + parseParenthesizedArrowFunctionExpression(/*allowAmbiguity*/ true, /*disallowReturnTypeInArrowFunction*/ false) : + tryParse(() => parsePossibleParenthesizedArrowFunctionExpression(disallowReturnTypeInArrowFunction)); } // True -> We definitely expect a parenthesized arrow function here. @@ -4430,7 +4553,7 @@ namespace ts { return true; } } - else if (third === SyntaxKind.CommaToken) { + else if (third === SyntaxKind.CommaToken || third === SyntaxKind.EqualsToken) { return true; } return false; @@ -4448,13 +4571,13 @@ namespace ts { } } - function parsePossibleParenthesizedArrowFunctionExpression(): ArrowFunction | undefined { + function parsePossibleParenthesizedArrowFunctionExpression(disallowReturnTypeInArrowFunction: boolean): ArrowFunction | undefined { const tokenPos = scanner.getTokenPos(); if (notParenthesizedArrow?.has(tokenPos)) { return undefined; } - const result = parseParenthesizedArrowFunctionExpression(/*allowAmbiguity*/ false); + const result = parseParenthesizedArrowFunctionExpression(/*allowAmbiguity*/ false, disallowReturnTypeInArrowFunction); if (!result) { (notParenthesizedArrow || (notParenthesizedArrow = new Set())).add(tokenPos); } @@ -4462,14 +4585,14 @@ namespace ts { return result; } - function tryParseAsyncSimpleArrowFunctionExpression(): ArrowFunction | undefined { + function tryParseAsyncSimpleArrowFunctionExpression(disallowReturnTypeInArrowFunction: boolean): ArrowFunction | undefined { // We do a check here so that we won't be doing unnecessarily call to "lookAhead" if (token() === SyntaxKind.AsyncKeyword) { if (lookAhead(isUnParenthesizedAsyncArrowFunctionWorker) === Tristate.True) { const pos = getNodePos(); const asyncModifier = parseModifiersForArrowFunction(); const expr = parseBinaryExpressionOrHigher(OperatorPrecedence.Lowest); - return parseSimpleArrowFunctionExpression(pos, expr as Identifier, asyncModifier); + return parseSimpleArrowFunctionExpression(pos, expr as Identifier, disallowReturnTypeInArrowFunction, asyncModifier); } } return undefined; @@ -4496,7 +4619,7 @@ namespace ts { return Tristate.False; } - function parseParenthesizedArrowFunctionExpression(allowAmbiguity: boolean): ArrowFunction | undefined { + function parseParenthesizedArrowFunctionExpression(allowAmbiguity: boolean, disallowReturnTypeInArrowFunction: boolean): ArrowFunction | undefined { const pos = getNodePos(); const hasJSDoc = hasPrecedingJSDocComment(); const modifiers = parseModifiersForArrowFunction(); @@ -4524,6 +4647,24 @@ namespace ts { } } + // Given: + // x ? y => ({ y }) : z => ({ z }) + // We try to parse the body of the first arrow function by looking at: + // ({ y }) : z => ({ z }) + // This is a valid arrow function with "z" as the return type. + // + // But, if we're in the true side of a conditional expression, this colon + // terminates the expression, so we cannot allow a return type if we aren't + // certain whether or not the preceding text was parsed as a parameter list. + // + // For example, + // a() ? (b: number, c?: string): void => d() : e + // is determined by isParenthesizedArrowFunctionExpression to unambiguously + // be an arrow expression, so we allow a return type. + if (disallowReturnTypeInArrowFunction && token() === SyntaxKind.ColonToken) { + return undefined; + } + const type = parseReturnType(SyntaxKind.ColonToken, /*isType*/ false); if (type && !allowAmbiguity && typeHasArrowFunctionBlockingParseError(type)) { return undefined; @@ -4536,9 +4677,16 @@ namespace ts { // - "(x,y)" is a comma expression parsed as a signature with two parameters. // - "a ? (b): c" will have "(b):" parsed as a signature with a return type annotation. // - "a ? (b): function() {}" will too, since function() is a valid JSDoc function type. + // - "a ? (b): (function() {})" as well, but inside of a parenthesized type with an arbitrary amount of nesting. // // So we need just a bit of lookahead to ensure that it can only be a signature. - const hasJSDocFunctionType = type && isJSDocFunctionType(type); + + let unwrappedType = type; + while (unwrappedType?.kind === SyntaxKind.ParenthesizedType) { + unwrappedType = (unwrappedType as ParenthesizedTypeNode).type; // Skip parens if need be + } + + const hasJSDocFunctionType = unwrappedType && isJSDocFunctionType(unwrappedType); if (!allowAmbiguity && token() !== SyntaxKind.EqualsGreaterThanToken && (hasJSDocFunctionType || token() !== SyntaxKind.OpenBraceToken)) { // Returning undefined here will cause our caller to rewind to where we started from. return undefined; @@ -4549,14 +4697,14 @@ namespace ts { const lastToken = token(); const equalsGreaterThanToken = parseExpectedToken(SyntaxKind.EqualsGreaterThanToken); const body = (lastToken === SyntaxKind.EqualsGreaterThanToken || lastToken === SyntaxKind.OpenBraceToken) - ? parseArrowFunctionExpressionBody(some(modifiers, isAsyncModifier)) + ? parseArrowFunctionExpressionBody(some(modifiers, isAsyncModifier), disallowReturnTypeInArrowFunction) : parseIdentifier(); const node = factory.createArrowFunction(modifiers, typeParameters, parameters, type, equalsGreaterThanToken, body); return withJSDoc(finishNode(node, pos), hasJSDoc); } - function parseArrowFunctionExpressionBody(isAsync: boolean): Block | Expression { + function parseArrowFunctionExpressionBody(isAsync: boolean, disallowReturnTypeInArrowFunction: boolean): Block | Expression { if (token() === SyntaxKind.OpenBraceToken) { return parseFunctionBlock(isAsync ? SignatureFlags.Await : SignatureFlags.None); } @@ -4586,8 +4734,8 @@ namespace ts { const savedTopLevel = topLevel; topLevel = false; const node = isAsync - ? doInAwaitContext(parseAssignmentExpressionOrHigher) - : doOutsideOfAwaitContext(parseAssignmentExpressionOrHigher); + ? doInAwaitContext(() => parseAssignmentExpressionOrHigher(disallowReturnTypeInArrowFunction)) + : doOutsideOfAwaitContext(() => parseAssignmentExpressionOrHigher(disallowReturnTypeInArrowFunction)); topLevel = savedTopLevel; return node; } @@ -4606,10 +4754,10 @@ namespace ts { factory.createConditionalExpression( leftOperand, questionToken, - doOutsideOfContext(disallowInAndDecoratorContext, parseAssignmentExpressionOrHigher), + doOutsideOfContext(disallowInAndDecoratorContext, () => parseAssignmentExpressionOrHigher(/*disallowReturnTypeInArrowFunction*/ true)), colonToken = parseExpectedToken(SyntaxKind.ColonToken), nodeIsPresent(colonToken) - ? parseAssignmentExpressionOrHigher() + ? parseAssignmentExpressionOrHigher(/*disallowReturnTypeInArrowFunction*/ true) : createMissingNode(SyntaxKind.Identifier, /*reportAtCurrentPosition*/ false, Diagnostics._0_expected, tokenToString(SyntaxKind.ColonToken)) ), pos @@ -5418,12 +5566,6 @@ namespace ts { continue; } - if (!questionDotToken && token() === SyntaxKind.ExclamationToken && !scanner.hasPrecedingLineBreak()) { - nextToken(); - expression = finishNode(factory.createNonNullExpression(expression), pos); - continue; - } - // when in the [Decorator] context, we do not parse ElementAccess as it could be part of a ComputedPropertyName if ((questionDotToken || !inDecoratorContext()) && parseOptional(SyntaxKind.OpenBracketToken)) { expression = parseElementAccessExpressionRest(pos, expression, questionDotToken); @@ -5431,10 +5573,26 @@ namespace ts { } if (isTemplateStartOfTaggedTemplate()) { - expression = parseTaggedTemplateRest(pos, expression, questionDotToken, /*typeArguments*/ undefined); + // Absorb type arguments into TemplateExpression when preceding expression is ExpressionWithTypeArguments + expression = !questionDotToken && expression.kind === SyntaxKind.ExpressionWithTypeArguments ? + parseTaggedTemplateRest(pos, (expression as ExpressionWithTypeArguments).expression, questionDotToken, (expression as ExpressionWithTypeArguments).typeArguments) : + parseTaggedTemplateRest(pos, expression, questionDotToken, /*typeArguments*/ undefined); continue; } + if (!questionDotToken) { + if (token() === SyntaxKind.ExclamationToken && !scanner.hasPrecedingLineBreak()) { + nextToken(); + expression = finishNode(factory.createNonNullExpression(expression), pos); + continue; + } + const typeArguments = tryParse(parseTypeArgumentsInExpression); + if (typeArguments) { + expression = finishNode(factory.createExpressionWithTypeArguments(expression, typeArguments), pos); + continue; + } + } + return expression as MemberExpression; } } @@ -5461,39 +5619,30 @@ namespace ts { function parseCallExpressionRest(pos: number, expression: LeftHandSideExpression): LeftHandSideExpression { while (true) { expression = parseMemberExpressionRest(pos, expression, /*allowOptionalChain*/ true); + let typeArguments: NodeArray | undefined; const questionDotToken = parseOptionalToken(SyntaxKind.QuestionDotToken); - // handle 'foo<()' - // parse template arguments only in TypeScript files (not in JavaScript files). - if ((contextFlags & NodeFlags.JavaScriptFile) === 0 && (token() === SyntaxKind.LessThanToken || token() === SyntaxKind.LessThanLessThanToken)) { - // See if this is the start of a generic invocation. If so, consume it and - // keep checking for postfix expressions. Otherwise, it's just a '<' that's - // part of an arithmetic expression. Break out so we consume it higher in the - // stack. - const typeArguments = tryParse(parseTypeArgumentsInExpression); - if (typeArguments) { - if (isTemplateStartOfTaggedTemplate()) { - expression = parseTaggedTemplateRest(pos, expression, questionDotToken, typeArguments); - continue; - } - - const argumentList = parseArgumentList(); - const callExpr = questionDotToken || tryReparseOptionalChain(expression) ? - factory.createCallChain(expression, questionDotToken, typeArguments, argumentList) : - factory.createCallExpression(expression, typeArguments, argumentList); - expression = finishNode(callExpr, pos); + if (questionDotToken) { + typeArguments = tryParse(parseTypeArgumentsInExpression); + if (isTemplateStartOfTaggedTemplate()) { + expression = parseTaggedTemplateRest(pos, expression, questionDotToken, typeArguments); continue; } } - else if (token() === SyntaxKind.OpenParenToken) { + if (typeArguments || token() === SyntaxKind.OpenParenToken) { + // Absorb type arguments into CallExpression when preceding expression is ExpressionWithTypeArguments + if (!questionDotToken && expression.kind === SyntaxKind.ExpressionWithTypeArguments) { + typeArguments = (expression as ExpressionWithTypeArguments).typeArguments; + expression = (expression as ExpressionWithTypeArguments).expression; + } const argumentList = parseArgumentList(); const callExpr = questionDotToken || tryReparseOptionalChain(expression) ? - factory.createCallChain(expression, questionDotToken, /*typeArguments*/ undefined, argumentList) : - factory.createCallExpression(expression, /*typeArguments*/ undefined, argumentList); + factory.createCallChain(expression, questionDotToken, typeArguments, argumentList) : + factory.createCallExpression(expression, typeArguments, argumentList); expression = finishNode(callExpr, pos); continue; } if (questionDotToken) { - // We failed to parse anything, so report a missing identifier here. + // We parsed `?.` but then failed to parse anything, so report a missing identifier here. const name = createMissingNode(SyntaxKind.Identifier, /*reportAtCurrentPosition*/ false, Diagnostics.Identifier_expected); expression = finishNode(factory.createPropertyAccessChain(expression, questionDotToken, name), pos); } @@ -5526,22 +5675,26 @@ namespace ts { return undefined; } - // If we have a '<', then only parse this as a argument list if the type arguments - // are complete and we have an open paren. if we don't, rewind and return nothing. - return typeArguments && canFollowTypeArgumentsInExpression() - ? typeArguments - : undefined; + // We successfully parsed a type argument list. The next token determines whether we want to + // treat it as such. If the type argument list is followed by `(` or a template literal, as in + // `f(42)`, we favor the type argument interpretation even though JavaScript would view + // it as a relational expression. + return typeArguments && canFollowTypeArgumentsInExpression() ? typeArguments : undefined; } function canFollowTypeArgumentsInExpression(): boolean { switch (token()) { + // These tokens can follow a type argument list in a call expression. case SyntaxKind.OpenParenToken: // foo( case SyntaxKind.NoSubstitutionTemplateLiteral: // foo `...` case SyntaxKind.TemplateHead: // foo `...${100}...` - // these are the only tokens can legally follow a type argument - // list. So we definitely want to treat them as type arg lists. + // These tokens can't follow in a call expression, nor can they start an + // expression. So, consider the type argument list part of an instantiation + // expression. // falls through + case SyntaxKind.CommaToken: // foo, case SyntaxKind.DotToken: // foo. + case SyntaxKind.QuestionDotToken: // foo?. case SyntaxKind.CloseParenToken: // foo) case SyntaxKind.CloseBracketToken: // foo] case SyntaxKind.ColonToken: // foo: @@ -5559,21 +5712,10 @@ namespace ts { case SyntaxKind.BarToken: // foo | case SyntaxKind.CloseBraceToken: // foo } case SyntaxKind.EndOfFileToken: // foo - // these cases can't legally follow a type arg list. However, they're not legal - // expressions either. The user is probably in the middle of a generic type. So - // treat it as such. return true; - - case SyntaxKind.CommaToken: // foo, - case SyntaxKind.OpenBraceToken: // foo { - // We don't want to treat these as type arguments. Otherwise we'll parse this - // as an invocation expression. Instead, we want to parse out the expression - // in isolation from the type arguments. - // falls through - default: - // Anything else treat as an expression. - return false; } + // Treat anything else as an expression. + return false; } function parsePrimaryExpression(): PrimaryExpression { @@ -5637,14 +5779,14 @@ namespace ts { function parseSpreadElement(): Expression { const pos = getNodePos(); parseExpected(SyntaxKind.DotDotDotToken); - const expression = parseAssignmentExpressionOrHigher(); + const expression = parseAssignmentExpressionOrHigher(/*disallowReturnTypeInArrowFunction*/ false); return finishNode(factory.createSpreadElement(expression), pos); } function parseArgumentOrArrayLiteralElement(): Expression { return token() === SyntaxKind.DotDotDotToken ? parseSpreadElement() : token() === SyntaxKind.CommaToken ? finishNode(factory.createOmittedExpression(), getNodePos()) : - parseAssignmentExpressionOrHigher(); + parseAssignmentExpressionOrHigher(/*disallowReturnTypeInArrowFunction*/ false); } function parseArgumentExpression(): Expression { @@ -5653,10 +5795,11 @@ namespace ts { function parseArrayLiteralExpression(): ArrayLiteralExpression { const pos = getNodePos(); - parseExpected(SyntaxKind.OpenBracketToken); + const openBracketPosition = scanner.getTokenPos(); + const openBracketParsed = parseExpected(SyntaxKind.OpenBracketToken); const multiLine = scanner.hasPrecedingLineBreak(); const elements = parseDelimitedList(ParsingContext.ArrayLiteralMembers, parseArgumentOrArrayLiteralElement); - parseExpected(SyntaxKind.CloseBracketToken); + parseExpectedMatchingBrackets(SyntaxKind.OpenBracketToken, SyntaxKind.CloseBracketToken, openBracketParsed, openBracketPosition); return finishNode(factory.createArrayLiteralExpression(elements, multiLine), pos); } @@ -5665,7 +5808,7 @@ namespace ts { const hasJSDoc = hasPrecedingJSDocComment(); if (parseOptionalToken(SyntaxKind.DotDotDotToken)) { - const expression = parseAssignmentExpressionOrHigher(); + const expression = parseAssignmentExpressionOrHigher(/*disallowReturnTypeInArrowFunction*/ false); return withJSDoc(finishNode(factory.createSpreadAssignment(expression), pos), hasJSDoc); } @@ -5700,7 +5843,7 @@ namespace ts { const isShorthandPropertyAssignment = tokenIsIdentifier && (token() !== SyntaxKind.ColonToken); if (isShorthandPropertyAssignment) { const equalsToken = parseOptionalToken(SyntaxKind.EqualsToken); - const objectAssignmentInitializer = equalsToken ? allowInAnd(parseAssignmentExpressionOrHigher) : undefined; + const objectAssignmentInitializer = equalsToken ? allowInAnd(() => parseAssignmentExpressionOrHigher(/*disallowReturnTypeInArrowFunction*/ false)) : undefined; node = factory.createShorthandPropertyAssignment(name as Identifier, objectAssignmentInitializer); // Save equals token for error reporting. // TODO(rbuckton): Consider manufacturing this when we need to report an error as it is otherwise not useful. @@ -5708,7 +5851,7 @@ namespace ts { } else { parseExpected(SyntaxKind.ColonToken); - const initializer = allowInAnd(parseAssignmentExpressionOrHigher); + const initializer = allowInAnd(() => parseAssignmentExpressionOrHigher(/*disallowReturnTypeInArrowFunction*/ false)); node = factory.createPropertyAssignment(name, initializer); } // Decorators, Modifiers, questionToken, and exclamationToken are not supported by property assignments and are reported in the grammar checker @@ -5722,18 +5865,10 @@ namespace ts { function parseObjectLiteralExpression(): ObjectLiteralExpression { const pos = getNodePos(); const openBracePosition = scanner.getTokenPos(); - parseExpected(SyntaxKind.OpenBraceToken); + const openBraceParsed = parseExpected(SyntaxKind.OpenBraceToken); const multiLine = scanner.hasPrecedingLineBreak(); const properties = parseDelimitedList(ParsingContext.ObjectLiteralMembers, parseObjectLiteralElement, /*considerSemicolonAsDelimiter*/ true); - if (!parseExpected(SyntaxKind.CloseBraceToken)) { - const lastError = lastOrUndefined(parseDiagnostics); - if (lastError && lastError.code === Diagnostics._0_expected.code) { - addRelatedInfo( - lastError, - createDetachedDiagnostic(fileName, openBracePosition, 1, Diagnostics.The_parser_expected_to_find_a_to_match_the_token_here) - ); - } - } + parseExpectedMatchingBrackets(SyntaxKind.OpenBraceToken, SyntaxKind.CloseBraceToken, openBraceParsed, openBracePosition); return finishNode(factory.createObjectLiteralExpression(properties, multiLine), pos); } @@ -5780,30 +5915,16 @@ namespace ts { const name = parseIdentifierName(); return finishNode(factory.createMetaProperty(SyntaxKind.NewKeyword, name), pos); } - const expressionPos = getNodePos(); - let expression: MemberExpression = parsePrimaryExpression(); - let typeArguments; - while (true) { - expression = parseMemberExpressionRest(expressionPos, expression, /*allowOptionalChain*/ false); - typeArguments = tryParse(parseTypeArgumentsInExpression); - if (isTemplateStartOfTaggedTemplate()) { - Debug.assert(!!typeArguments, - "Expected a type argument list; all plain tagged template starts should be consumed in 'parseMemberExpressionRest'"); - expression = parseTaggedTemplateRest(expressionPos, expression, /*optionalChain*/ undefined, typeArguments); - typeArguments = undefined; - } - break; - } - - let argumentsArray: NodeArray | undefined; - if (token() === SyntaxKind.OpenParenToken) { - argumentsArray = parseArgumentList(); - } - else if (typeArguments) { - parseErrorAt(pos, scanner.getStartPos(), Diagnostics.A_new_expression_with_type_arguments_must_always_be_followed_by_a_parenthesized_argument_list); + let expression: LeftHandSideExpression = parseMemberExpressionRest(expressionPos, parsePrimaryExpression(), /*allowOptionalChain*/ false); + let typeArguments: NodeArray | undefined; + // Absorb type arguments into NewExpression when preceding expression is ExpressionWithTypeArguments + if (expression.kind === SyntaxKind.ExpressionWithTypeArguments) { + typeArguments = (expression as ExpressionWithTypeArguments).typeArguments; + expression = (expression as ExpressionWithTypeArguments).expression; } - return finishNode(factory.createNewExpression(expression, typeArguments, argumentsArray), pos); + const argumentList = token() === SyntaxKind.OpenParenToken ? parseArgumentList() : undefined; + return finishNode(factory.createNewExpression(expression, typeArguments, argumentList), pos); } // STATEMENTS @@ -5811,18 +5932,11 @@ namespace ts { const pos = getNodePos(); const hasJSDoc = hasPrecedingJSDocComment(); const openBracePosition = scanner.getTokenPos(); - if (parseExpected(SyntaxKind.OpenBraceToken, diagnosticMessage) || ignoreMissingOpenBrace) { + const openBraceParsed = parseExpected(SyntaxKind.OpenBraceToken, diagnosticMessage); + if (openBraceParsed || ignoreMissingOpenBrace) { const multiLine = scanner.hasPrecedingLineBreak(); const statements = parseList(ParsingContext.BlockStatements, parseStatement); - if (!parseExpected(SyntaxKind.CloseBraceToken)) { - const lastError = lastOrUndefined(parseDiagnostics); - if (lastError && lastError.code === Diagnostics._0_expected.code) { - addRelatedInfo( - lastError, - createDetachedDiagnostic(fileName, openBracePosition, 1, Diagnostics.The_parser_expected_to_find_a_to_match_the_token_here) - ); - } - } + parseExpectedMatchingBrackets(SyntaxKind.OpenBraceToken, SyntaxKind.CloseBraceToken, openBraceParsed, openBracePosition); const result = withJSDoc(finishNode(factory.createBlock(statements, multiLine), pos), hasJSDoc); if (token() === SyntaxKind.EqualsToken) { parseErrorAtCurrentToken(Diagnostics.Declaration_or_statement_expected_This_follows_a_block_of_statements_so_if_you_intended_to_write_a_destructuring_assignment_you_might_need_to_wrap_the_the_whole_assignment_in_parentheses); @@ -5878,9 +5992,10 @@ namespace ts { const pos = getNodePos(); const hasJSDoc = hasPrecedingJSDocComment(); parseExpected(SyntaxKind.IfKeyword); - parseExpected(SyntaxKind.OpenParenToken); + const openParenPosition = scanner.getTokenPos(); + const openParenParsed = parseExpected(SyntaxKind.OpenParenToken); const expression = allowInAnd(parseExpression); - parseExpected(SyntaxKind.CloseParenToken); + parseExpectedMatchingBrackets(SyntaxKind.OpenParenToken, SyntaxKind.CloseParenToken, openParenParsed, openParenPosition); const thenStatement = parseStatement(); const elseStatement = parseOptional(SyntaxKind.ElseKeyword) ? parseStatement() : undefined; return withJSDoc(finishNode(factory.createIfStatement(expression, thenStatement, elseStatement), pos), hasJSDoc); @@ -5892,9 +6007,10 @@ namespace ts { parseExpected(SyntaxKind.DoKeyword); const statement = parseStatement(); parseExpected(SyntaxKind.WhileKeyword); - parseExpected(SyntaxKind.OpenParenToken); + const openParenPosition = scanner.getTokenPos(); + const openParenParsed = parseExpected(SyntaxKind.OpenParenToken); const expression = allowInAnd(parseExpression); - parseExpected(SyntaxKind.CloseParenToken); + parseExpectedMatchingBrackets(SyntaxKind.OpenParenToken, SyntaxKind.CloseParenToken, openParenParsed, openParenPosition); // From: https://mail.mozilla.org/pipermail/es-discuss/2011-August/016188.html // 157 min --- All allen at wirfs-brock.com CONF --- "do{;}while(false)false" prohibited in @@ -5908,9 +6024,10 @@ namespace ts { const pos = getNodePos(); const hasJSDoc = hasPrecedingJSDocComment(); parseExpected(SyntaxKind.WhileKeyword); - parseExpected(SyntaxKind.OpenParenToken); + const openParenPosition = scanner.getTokenPos(); + const openParenParsed = parseExpected(SyntaxKind.OpenParenToken); const expression = allowInAnd(parseExpression); - parseExpected(SyntaxKind.CloseParenToken); + parseExpectedMatchingBrackets(SyntaxKind.OpenParenToken, SyntaxKind.CloseParenToken, openParenParsed, openParenPosition); const statement = parseStatement(); return withJSDoc(finishNode(factory.createWhileStatement(expression, statement), pos), hasJSDoc); } @@ -5934,7 +6051,7 @@ namespace ts { let node: IterationStatement; if (awaitToken ? parseExpected(SyntaxKind.OfKeyword) : parseOptional(SyntaxKind.OfKeyword)) { - const expression = allowInAnd(parseAssignmentExpressionOrHigher); + const expression = allowInAnd(() => parseAssignmentExpressionOrHigher(/*disallowReturnTypeInArrowFunction*/ false)); parseExpected(SyntaxKind.CloseParenToken); node = factory.createForOfStatement(awaitToken, initializer, expression, parseStatement()); } @@ -5986,20 +6103,22 @@ namespace ts { const pos = getNodePos(); const hasJSDoc = hasPrecedingJSDocComment(); parseExpected(SyntaxKind.WithKeyword); - parseExpected(SyntaxKind.OpenParenToken); + const openParenPosition = scanner.getTokenPos(); + const openParenParsed = parseExpected(SyntaxKind.OpenParenToken); const expression = allowInAnd(parseExpression); - parseExpected(SyntaxKind.CloseParenToken); + parseExpectedMatchingBrackets(SyntaxKind.OpenParenToken, SyntaxKind.CloseParenToken, openParenParsed, openParenPosition); const statement = doInsideOfContext(NodeFlags.InWithStatement, parseStatement); return withJSDoc(finishNode(factory.createWithStatement(expression, statement), pos), hasJSDoc); } function parseCaseClause(): CaseClause { const pos = getNodePos(); + const hasJSDoc = hasPrecedingJSDocComment(); parseExpected(SyntaxKind.CaseKeyword); const expression = allowInAnd(parseExpression); parseExpected(SyntaxKind.ColonToken); const statements = parseList(ParsingContext.SwitchClauseStatements, parseStatement); - return finishNode(factory.createCaseClause(expression, statements), pos); + return withJSDoc(finishNode(factory.createCaseClause(expression, statements), pos), hasJSDoc); } function parseDefaultClause(): DefaultClause { @@ -6070,7 +6189,7 @@ namespace ts { // one out no matter what. let finallyBlock: Block | undefined; if (!catchClause || token() === SyntaxKind.FinallyKeyword) { - parseExpected(SyntaxKind.FinallyKeyword); + parseExpected(SyntaxKind.FinallyKeyword, Diagnostics.catch_or_finally_expected); finallyBlock = parseBlock(/*ignoreMissingOpenBrace*/ false); } @@ -7060,6 +7179,9 @@ namespace ts { function parseExpressionWithTypeArguments(): ExpressionWithTypeArguments { const pos = getNodePos(); const expression = parseLeftHandSideExpressionOrHigher(); + if (expression.kind === SyntaxKind.ExpressionWithTypeArguments) { + return expression as ExpressionWithTypeArguments; + } const typeArguments = tryParseTypeArguments(); return finishNode(factory.createExpressionWithTypeArguments(expression, typeArguments), pos); } @@ -7271,13 +7393,15 @@ namespace ts { const pos = getNodePos(); const name = tokenIsIdentifierOrKeyword(token()) ? parseIdentifierName() : parseLiteralLikeNode(SyntaxKind.StringLiteral) as StringLiteral; parseExpected(SyntaxKind.ColonToken); - const value = parseLiteralLikeNode(SyntaxKind.StringLiteral) as StringLiteral; + const value = parseAssignmentExpressionOrHigher(/*disallowReturnTypeInArrowFunction*/ false); return finishNode(factory.createAssertEntry(name, value), pos); } - function parseAssertClause() { + function parseAssertClause(skipAssertKeyword?: true) { const pos = getNodePos(); - parseExpected(SyntaxKind.AssertKeyword); + if (!skipAssertKeyword) { + parseExpected(SyntaxKind.AssertKeyword); + } const openBracePosition = scanner.getTokenPos(); if (parseExpected(SyntaxKind.OpenBraceToken)) { const multiLine = scanner.hasPrecedingLineBreak(); @@ -7287,7 +7411,7 @@ namespace ts { if (lastError && lastError.code === Diagnostics._0_expected.code) { addRelatedInfo( lastError, - createDetachedDiagnostic(fileName, openBracePosition, 1, Diagnostics.The_parser_expected_to_find_a_to_match_the_token_here) + createDetachedDiagnostic(fileName, openBracePosition, 1, Diagnostics.The_parser_expected_to_find_a_1_to_match_the_0_token_here, "{", "}") ); } } @@ -7340,7 +7464,7 @@ namespace ts { function parseModuleReference() { return isExternalModuleReference() ? parseExternalModuleReference() - : parseEntityName(/*allowReservedWords*/ false); + : parseEntityName(/*allowReservedWords*/ false, /*allowPrivateIdentifiers*/ false); } function parseExternalModuleReference() { @@ -7396,7 +7520,8 @@ namespace ts { } function parseExportSpecifier() { - return parseImportOrExportSpecifier(SyntaxKind.ExportSpecifier) as ExportSpecifier; + const hasJSDoc = hasPrecedingJSDocComment(); + return withJSDoc(parseImportOrExportSpecifier(SyntaxKind.ExportSpecifier) as ExportSpecifier, hasJSDoc); } function parseImportSpecifier() { @@ -7534,48 +7659,13 @@ namespace ts { else { parseExpected(SyntaxKind.DefaultKeyword); } - const expression = parseAssignmentExpressionOrHigher(); + const expression = parseAssignmentExpressionOrHigher(/*disallowReturnTypeInArrowFunction*/ false); parseSemicolon(); setAwaitContext(savedAwaitContext); const node = factory.createExportAssignment(decorators, modifiers, isExportEquals, expression); return withJSDoc(finishNode(node, pos), hasJSDoc); } - function setExternalModuleIndicator(sourceFile: SourceFile) { - // Try to use the first top-level import/export when available, then - // fall back to looking for an 'import.meta' somewhere in the tree if necessary. - sourceFile.externalModuleIndicator = - forEach(sourceFile.statements, isAnExternalModuleIndicatorNode) || - getImportMetaIfNecessary(sourceFile); - } - - function isAnExternalModuleIndicatorNode(node: Node) { - return hasModifierOfKind(node, SyntaxKind.ExportKeyword) - || isImportEqualsDeclaration(node) && ts.isExternalModuleReference(node.moduleReference) - || isImportDeclaration(node) - || isExportAssignment(node) - || isExportDeclaration(node) ? node : undefined; - } - - function getImportMetaIfNecessary(sourceFile: SourceFile) { - return sourceFile.flags & NodeFlags.PossiblyContainsImportMeta ? - walkTreeForExternalModuleIndicators(sourceFile) : - undefined; - } - - function walkTreeForExternalModuleIndicators(node: Node): Node | undefined { - return isImportMeta(node) ? node : forEachChild(node, walkTreeForExternalModuleIndicators); - } - - /** Do not use hasModifier inside the parser; it relies on parent pointers. Use this instead. */ - function hasModifierOfKind(node: Node, kind: SyntaxKind) { - return some(node.modifiers, m => m.kind === kind); - } - - function isImportMeta(node: Node): boolean { - return isMetaProperty(node) && node.keywordToken === SyntaxKind.ImportKeyword && node.name.escapedText === "meta"; - } - const enum ParsingContext { SourceElements, // Elements in source file BlockStatements, // Statements in block @@ -7618,7 +7708,7 @@ namespace ts { currentToken = scanner.scan(); const jsDocTypeExpression = parseJSDocTypeExpression(); - const sourceFile = createSourceFile("file.js", ScriptTarget.Latest, ScriptKind.JS, /*isDeclarationFile*/ false, [], factory.createToken(SyntaxKind.EndOfFileToken), NodeFlags.None); + const sourceFile = createSourceFile("file.js", ScriptTarget.Latest, ScriptKind.JS, /*isDeclarationFile*/ false, [], factory.createToken(SyntaxKind.EndOfFileToken), NodeFlags.None, noop); const diagnostics = attachFileToDiagnostics(parseDiagnostics, sourceFile); if (jsDocDiagnostics) { sourceFile.jsDocDiagnostics = attachFileToDiagnostics(jsDocDiagnostics, sourceFile); @@ -7647,7 +7737,7 @@ namespace ts { const pos = getNodePos(); const hasBrace = parseOptional(SyntaxKind.OpenBraceToken); const p2 = getNodePos(); - let entityName: EntityName | JSDocMemberName = parseEntityName(/* allowReservedWords*/ false); + let entityName: EntityName | JSDocMemberName = parseEntityName(/* allowReservedWords*/ false, /*allowPrivateIdentifiers*/ false); while (token() === SyntaxKind.PrivateIdentifier) { reScanHashToken(); // rescan #id as # id nextTokenJSDoc(); // then skip the # @@ -8110,7 +8200,7 @@ namespace ts { // parseEntityName logs an error for non-identifier, so create a MissingNode ourselves to avoid the error const p2 = getNodePos(); let name: EntityName | JSDocMemberName | undefined = tokenIsIdentifierOrKeyword(token()) - ? parseEntityName(/*allowReservedWords*/ true) + ? parseEntityName(/*allowReservedWords*/ true, /*allowPrivateIdentifiers*/ false) : undefined; if (name) { while (token() === SyntaxKind.PrivateIdentifier) { @@ -8136,12 +8226,14 @@ namespace ts { && nextTokenJSDoc() === SyntaxKind.AtToken && tokenIsIdentifierOrKeyword(nextTokenJSDoc())) { const kind = scanner.getTokenValue(); - if(kind === "link" || kind === "linkcode" || kind === "linkplain") { - return kind; - } + if (isJSDocLinkTag(kind)) return kind; } } + function isJSDocLinkTag(kind: string) { + return kind === "link" || kind === "linkcode" || kind === "linkplain"; + } + function parseUnknownTag(start: number, tagName: Identifier, indent: number, indentText: string) { return finishNode(factory.createJSDocUnknownTag(tagName, parseTrailingTagComments(start, getNodePos(), indent, indentText)), start); } @@ -8264,7 +8356,7 @@ namespace ts { function parseSeeTag(start: number, tagName: Identifier, indent?: number, indentText?: string): JSDocSeeTag { const isMarkdownOrJSDocLink = token() === SyntaxKind.OpenBracketToken - || lookAhead(() => nextTokenJSDoc() === SyntaxKind.AtToken && tokenIsIdentifierOrKeyword(nextTokenJSDoc()) && scanner.getTokenValue() === "link"); + || lookAhead(() => nextTokenJSDoc() === SyntaxKind.AtToken && tokenIsIdentifierOrKeyword(nextTokenJSDoc()) && isJSDocLinkTag(scanner.getTokenValue())); const nameExpression = isMarkdownOrJSDocLink ? undefined : parseJSDocNameReference(); const comments = indent !== undefined && indentText !== undefined ? parseTrailingTagComments(start, getNodePos(), indent, indentText) : undefined; return finishNode(factory.createJSDocSeeTag(tagName, nameExpression, comments), start); @@ -8374,13 +8466,9 @@ namespace ts { hasChildren = true; if (child.kind === SyntaxKind.JSDocTypeTag) { if (childTypeTag) { - parseErrorAtCurrentToken(Diagnostics.A_JSDoc_typedef_comment_may_not_contain_multiple_type_tags); - const lastError = lastOrUndefined(parseDiagnostics); + const lastError = parseErrorAtCurrentToken(Diagnostics.A_JSDoc_typedef_comment_may_not_contain_multiple_type_tags); if (lastError) { - addRelatedInfo( - lastError, - createDetachedDiagnostic(fileName, 0, 0, Diagnostics.The_tag_was_first_specified_here) - ); + addRelatedInfo(lastError, createDetachedDiagnostic(fileName, 0, 0, Diagnostics.The_tag_was_first_specified_here)); } break; } @@ -8571,7 +8659,7 @@ namespace ts { if (nodeIsMissing(name)) { return undefined; } - return finishNode(factory.createTypeParameterDeclaration(name, /*constraint*/ undefined, defaultType), typeParameterPos); + return finishNode(factory.createTypeParameterDeclaration(/*modifiers*/ undefined, name, /*constraint*/ undefined, defaultType), typeParameterPos); } function parseTemplateTagTypeParameters() { @@ -8662,7 +8750,7 @@ namespace ts { if (sourceFile.statements.length === 0) { // If we don't have any statements in the current source file, then there's no real // way to incrementally parse. So just do a full parse instead. - return Parser.parseSourceFile(sourceFile.fileName, newText, sourceFile.languageVersion, /*syntaxCursor*/ undefined, /*setParentNodes*/ true, sourceFile.scriptKind); + return Parser.parseSourceFile(sourceFile.fileName, newText, sourceFile.languageVersion, /*syntaxCursor*/ undefined, /*setParentNodes*/ true, sourceFile.scriptKind, sourceFile.setExternalModuleIndicator); } // Make sure we're not trying to incrementally update a source file more than once. Once @@ -8726,7 +8814,7 @@ namespace ts { // inconsistent tree. Setting the parents on the new tree should be very fast. We // will immediately bail out of walking any subtrees when we can see that their parents // are already correct. - const result = Parser.parseSourceFile(sourceFile.fileName, newText, sourceFile.languageVersion, syntaxCursor, /*setParentNodes*/ true, sourceFile.scriptKind); + const result = Parser.parseSourceFile(sourceFile.fileName, newText, sourceFile.languageVersion, syntaxCursor, /*setParentNodes*/ true, sourceFile.scriptKind, sourceFile.setExternalModuleIndicator); result.commentDirectives = getNewCommentDirectives( sourceFile.commentDirectives, result.commentDirectives, @@ -9294,6 +9382,20 @@ namespace ts { moduleName?: string; } + function parseResolutionMode(mode: string | undefined, pos: number, end: number, reportDiagnostic: PragmaDiagnosticReporter): ModuleKind.ESNext | ModuleKind.CommonJS | undefined { + if (!mode) { + return undefined; + } + if (mode === "import") { + return ModuleKind.ESNext; + } + if (mode === "require") { + return ModuleKind.CommonJS; + } + reportDiagnostic(pos, end - pos, Diagnostics.resolution_mode_should_be_either_require_or_import); + return undefined; + } + /*@internal*/ export function processCommentPragmas(context: PragmaContext, sourceText: string): void { const pragmas: PragmaPseudoMapEntry[] = []; @@ -9339,12 +9441,13 @@ namespace ts { const typeReferenceDirectives = context.typeReferenceDirectives; const libReferenceDirectives = context.libReferenceDirectives; forEach(toArray(entryOrList) as PragmaPseudoMap["reference"][], arg => { - const { types, lib, path } = arg.arguments; + const { types, lib, path, ["resolution-mode"]: res } = arg.arguments; if (arg.arguments["no-default-lib"]) { context.hasNoDefaultLib = true; } else if (types) { - typeReferenceDirectives.push({ pos: types.pos, end: types.end, fileName: types.value }); + const parsed = parseResolutionMode(res, types.pos, types.end, reportDiagnostic); + typeReferenceDirectives.push({ pos: types.pos, end: types.end, fileName: types.value, ...(parsed ? { resolutionMode: parsed } : {}) }); } else if (lib) { libReferenceDirectives.push({ pos: lib.pos, end: lib.end, fileName: lib.value }); diff --git a/src/compiler/path.ts b/src/compiler/path.ts index d09108d34c7f3..ebc837feb33a3 100644 --- a/src/compiler/path.ts +++ b/src/compiler/path.ts @@ -585,18 +585,6 @@ namespace ts { return getCanonicalFileName(nonCanonicalizedPath) as Path; } - export function normalizePathAndParts(path: string): { path: string, parts: string[] } { - path = normalizeSlashes(path); - const [root, ...parts] = reducePathComponents(getPathComponents(path)); - if (parts.length) { - const joinedParts = root + parts.join(directorySeparator); - return { path: hasTrailingDirectorySeparator(path) ? ensureTrailingDirectorySeparator(joinedParts) : joinedParts, parts }; - } - else { - return { path: root, parts }; - } - } - //// Path Mutation /** diff --git a/src/compiler/program.ts b/src/compiler/program.ts index 2db75250cce8c..a17654e981fdc 100644 --- a/src/compiler/program.ts +++ b/src/compiler/program.ts @@ -74,7 +74,7 @@ namespace ts { const existingDirectories = new Map(); const getCanonicalFileName = createGetCanonicalFileName(system.useCaseSensitiveFileNames); const computeHash = maybeBind(system, system.createHash) || generateDjb2Hash; - function getSourceFile(fileName: string, languageVersion: ScriptTarget, onError?: (message: string) => void): SourceFile | undefined { + function getSourceFile(fileName: string, languageVersionOrOptions: ScriptTarget | CreateSourceFileOptions, onError?: (message: string) => void): SourceFile | undefined { let text: string | undefined; try { performance.mark("beforeIORead"); @@ -88,7 +88,7 @@ namespace ts { } text = ""; } - return text !== undefined ? createSourceFile(fileName, text, languageVersion, setParentNodes) : undefined; + return text !== undefined ? createSourceFile(fileName, text, languageVersionOrOptions, setParentNodes) : undefined; } function directoryExists(directoryPath: string): boolean { @@ -510,7 +510,7 @@ namespace ts { } /* @internal */ - export function loadWithLocalCache(names: string[], containingFile: string, redirectedReference: ResolvedProjectReference | undefined, loader: (name: string, containingFile: string, redirectedReference: ResolvedProjectReference | undefined) => T): T[] { + export function loadWithTypeDirectiveCache(names: string[] | readonly FileReference[], containingFile: string, redirectedReference: ResolvedProjectReference | undefined, containingFileMode: SourceFile["impliedNodeFormat"], loader: (name: string, containingFile: string, redirectedReference: ResolvedProjectReference | undefined, resolutionMode: SourceFile["impliedNodeFormat"]) => T): T[] { if (names.length === 0) { return []; } @@ -518,11 +518,15 @@ namespace ts { const cache = new Map(); for (const name of names) { let result: T; - if (cache.has(name)) { - result = cache.get(name)!; + const mode = getModeForFileReference(name, containingFileMode); + // We lower-case all type references because npm automatically lowercases all packages. See GH#9824. + const strName = isString(name) ? name : name.fileName.toLowerCase(); + const cacheKey = mode !== undefined ? `${mode}|${strName}` : strName; + if (cache.has(cacheKey)) { + result = cache.get(cacheKey)!; } else { - cache.set(name, result = loader(name, containingFile, redirectedReference)); + cache.set(cacheKey, result = loader(strName, containingFile, redirectedReference, mode)); } resolutions.push(result); } @@ -536,6 +540,11 @@ namespace ts { impliedNodeFormat?: SourceFile["impliedNodeFormat"]; }; + /* @internal */ + export function getModeForFileReference(ref: FileReference | string, containingFileMode: SourceFile["impliedNodeFormat"]) { + return (isString(ref) ? containingFileMode : ref.resolutionMode) || containingFileMode; + } + /* @internal */ export function getModeForResolutionAtIndex(file: SourceFileImportsList, index: number) { if (file.impliedNodeFormat === undefined) return undefined; @@ -544,9 +553,35 @@ namespace ts { return getModeForUsageLocation(file, getModuleNameStringLiteralAt(file, index)); } + /* @internal */ + export function isExclusivelyTypeOnlyImportOrExport(decl: ImportDeclaration | ExportDeclaration) { + if (isExportDeclaration(decl)) { + return decl.isTypeOnly; + } + if (decl.importClause?.isTypeOnly) { + return true; + } + return false; + } + /* @internal */ export function getModeForUsageLocation(file: {impliedNodeFormat?: SourceFile["impliedNodeFormat"]}, usage: StringLiteralLike) { if (file.impliedNodeFormat === undefined) return undefined; + if ((isImportDeclaration(usage.parent) || isExportDeclaration(usage.parent))) { + const isTypeOnly = isExclusivelyTypeOnlyImportOrExport(usage.parent); + if (isTypeOnly) { + const override = getResolutionModeOverrideForClause(usage.parent.assertClause); + if (override) { + return override; + } + } + } + if (usage.parent.parent && isImportTypeNode(usage.parent.parent)) { + const override = getResolutionModeOverrideForClause(usage.parent.parent.assertions?.assertClause); + if (override) { + return override; + } + } if (file.impliedNodeFormat !== ModuleKind.ESNext) { // in cjs files, import call expressions are esm format, otherwise everything is cjs return isImportCall(walkUpParenthesizedExpressions(usage.parent)) ? ModuleKind.ESNext : ModuleKind.CommonJS; @@ -557,6 +592,27 @@ namespace ts { return exprParentParent && isImportEqualsDeclaration(exprParentParent) ? ModuleKind.CommonJS : ModuleKind.ESNext; } + /* @internal */ + export function getResolutionModeOverrideForClause(clause: AssertClause | undefined, grammarErrorOnNode?: (node: Node, diagnostic: DiagnosticMessage) => boolean) { + if (!clause) return undefined; + if (length(clause.elements) !== 1) { + grammarErrorOnNode?.(clause, Diagnostics.Type_import_assertions_should_have_exactly_one_key_resolution_mode_with_value_import_or_require); + return undefined; + } + const elem = clause.elements[0]; + if (!isStringLiteralLike(elem.name)) return undefined; + if (elem.name.text !== "resolution-mode") { + grammarErrorOnNode?.(elem.name, Diagnostics.resolution_mode_is_the_only_valid_key_for_type_import_assertions); + return undefined; + } + if (!isStringLiteralLike(elem.value)) return undefined; + if (elem.value.text !== "import" && elem.value.text !== "require") { + grammarErrorOnNode?.(elem.value, Diagnostics.resolution_mode_should_be_either_require_or_import); + return undefined; + } + return elem.value.text === "import" ? ModuleKind.ESNext : ModuleKind.CommonJS; + } + /* @internal */ export function loadWithModeAwareCache(names: string[], containingFile: SourceFile, containingFileName: string, redirectedReference: ResolvedProjectReference | undefined, loader: (name: string, resolverMode: ModuleKind.CommonJS | ModuleKind.ESNext | undefined, containingFileName: string, redirectedReference: ResolvedProjectReference | undefined) => T): T[] { if (names.length === 0) { @@ -671,7 +727,7 @@ namespace ts { export function getReferencedFileLocation(getSourceFileByPath: (path: Path) => SourceFile | undefined, ref: ReferencedFile): ReferenceFileLocation | SyntheticReferenceFileLocation { const file = Debug.checkDefined(getSourceFileByPath(ref.file)); const { kind, index } = ref; - let pos: number | undefined, end: number | undefined, packageId: PackageId | undefined; + let pos: number | undefined, end: number | undefined, packageId: PackageId | undefined, resolutionMode: FileReference["resolutionMode"] | undefined; switch (kind) { case FileIncludeKind.Import: const importLiteral = getModuleNameStringLiteralAt(file, index); @@ -684,8 +740,8 @@ namespace ts { ({ pos, end } = file.referencedFiles[index]); break; case FileIncludeKind.TypeReferenceDirective: - ({ pos, end } = file.typeReferenceDirectives[index]); - packageId = file.resolvedTypeReferenceDirectiveNames?.get(toFileNameLowerCase(file.typeReferenceDirectives[index].fileName), file.impliedNodeFormat)?.packageId; + ({ pos, end, resolutionMode } = file.typeReferenceDirectives[index]); + packageId = file.resolvedTypeReferenceDirectiveNames?.get(toFileNameLowerCase(file.typeReferenceDirectives[index].fileName), resolutionMode || file.impliedNodeFormat)?.packageId; break; case FileIncludeKind.LibReferenceDirective: ({ pos, end } = file.libReferenceDirectives[index]); @@ -818,6 +874,101 @@ namespace ts { } } + /** @internal */ + export const plainJSErrors: Set = new Set([ + // binder errors + Diagnostics.Cannot_redeclare_block_scoped_variable_0.code, + Diagnostics.A_module_cannot_have_multiple_default_exports.code, + Diagnostics.Another_export_default_is_here.code, + Diagnostics.The_first_export_default_is_here.code, + Diagnostics.Identifier_expected_0_is_a_reserved_word_at_the_top_level_of_a_module.code, + Diagnostics.Identifier_expected_0_is_a_reserved_word_in_strict_mode_Modules_are_automatically_in_strict_mode.code, + Diagnostics.Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here.code, + Diagnostics.constructor_is_a_reserved_word.code, + Diagnostics.delete_cannot_be_called_on_an_identifier_in_strict_mode.code, + Diagnostics.Code_contained_in_a_class_is_evaluated_in_JavaScript_s_strict_mode_which_does_not_allow_this_use_of_0_For_more_information_see_https_Colon_Slash_Slashdeveloper_mozilla_org_Slashen_US_Slashdocs_SlashWeb_SlashJavaScript_SlashReference_SlashStrict_mode.code, + Diagnostics.Invalid_use_of_0_Modules_are_automatically_in_strict_mode.code, + Diagnostics.Invalid_use_of_0_in_strict_mode.code, + Diagnostics.A_label_is_not_allowed_here.code, + Diagnostics.Octal_literals_are_not_allowed_in_strict_mode.code, + Diagnostics.with_statements_are_not_allowed_in_strict_mode.code, + // grammar errors + Diagnostics.A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement.code, + Diagnostics.A_break_statement_can_only_jump_to_a_label_of_an_enclosing_statement.code, + Diagnostics.A_class_declaration_without_the_default_modifier_must_have_a_name.code, + Diagnostics.A_class_member_cannot_have_the_0_keyword.code, + Diagnostics.A_comma_expression_is_not_allowed_in_a_computed_property_name.code, + Diagnostics.A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement.code, + Diagnostics.A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement.code, + Diagnostics.A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement.code, + Diagnostics.A_default_clause_cannot_appear_more_than_once_in_a_switch_statement.code, + Diagnostics.A_default_export_must_be_at_the_top_level_of_a_file_or_module_declaration.code, + Diagnostics.A_definite_assignment_assertion_is_not_permitted_in_this_context.code, + Diagnostics.A_destructuring_declaration_must_have_an_initializer.code, + Diagnostics.A_get_accessor_cannot_have_parameters.code, + Diagnostics.A_rest_element_cannot_contain_a_binding_pattern.code, + Diagnostics.A_rest_element_cannot_have_a_property_name.code, + Diagnostics.A_rest_element_cannot_have_an_initializer.code, + Diagnostics.A_rest_element_must_be_last_in_a_destructuring_pattern.code, + Diagnostics.A_rest_parameter_cannot_have_an_initializer.code, + Diagnostics.A_rest_parameter_must_be_last_in_a_parameter_list.code, + Diagnostics.A_rest_parameter_or_binding_pattern_may_not_have_a_trailing_comma.code, + Diagnostics.A_return_statement_can_only_be_used_within_a_function_body.code, + Diagnostics.A_return_statement_cannot_be_used_inside_a_class_static_block.code, + Diagnostics.A_set_accessor_cannot_have_rest_parameter.code, + Diagnostics.A_set_accessor_must_have_exactly_one_parameter.code, + Diagnostics.An_export_declaration_can_only_be_used_at_the_top_level_of_a_module.code, + Diagnostics.An_export_declaration_cannot_have_modifiers.code, + Diagnostics.An_import_declaration_can_only_be_used_at_the_top_level_of_a_module.code, + Diagnostics.An_import_declaration_cannot_have_modifiers.code, + Diagnostics.An_object_member_cannot_be_declared_optional.code, + Diagnostics.Argument_of_dynamic_import_cannot_be_spread_element.code, + Diagnostics.Cannot_assign_to_private_method_0_Private_methods_are_not_writable.code, + Diagnostics.Cannot_redeclare_identifier_0_in_catch_clause.code, + Diagnostics.Catch_clause_variable_cannot_have_an_initializer.code, + Diagnostics.Class_decorators_can_t_be_used_with_static_private_identifier_Consider_removing_the_experimental_decorator.code, + Diagnostics.Classes_can_only_extend_a_single_class.code, + Diagnostics.Classes_may_not_have_a_field_named_constructor.code, + Diagnostics.Did_you_mean_to_use_a_Colon_An_can_only_follow_a_property_name_when_the_containing_object_literal_is_part_of_a_destructuring_pattern.code, + Diagnostics.Duplicate_label_0.code, + Diagnostics.Dynamic_imports_can_only_accept_a_module_specifier_and_an_optional_assertion_as_arguments.code, + Diagnostics.For_await_loops_cannot_be_used_inside_a_class_static_block.code, + Diagnostics.JSX_attributes_must_only_be_assigned_a_non_empty_expression.code, + Diagnostics.JSX_elements_cannot_have_multiple_attributes_with_the_same_name.code, + Diagnostics.JSX_expressions_may_not_use_the_comma_operator_Did_you_mean_to_write_an_array.code, + Diagnostics.JSX_property_access_expressions_cannot_include_JSX_namespace_names.code, + Diagnostics.Jump_target_cannot_cross_function_boundary.code, + Diagnostics.Line_terminator_not_permitted_before_arrow.code, + Diagnostics.Modifiers_cannot_appear_here.code, + Diagnostics.Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement.code, + Diagnostics.Only_a_single_variable_declaration_is_allowed_in_a_for_of_statement.code, + Diagnostics.Private_identifiers_are_not_allowed_outside_class_bodies.code, + Diagnostics.Private_identifiers_are_only_allowed_in_class_bodies_and_may_only_be_used_as_part_of_a_class_member_declaration_property_access_or_on_the_left_hand_side_of_an_in_expression.code, + Diagnostics.Property_0_is_not_accessible_outside_class_1_because_it_has_a_private_identifier.code, + Diagnostics.Tagged_template_expressions_are_not_permitted_in_an_optional_chain.code, + Diagnostics.The_left_hand_side_of_a_for_of_statement_may_not_be_async.code, + Diagnostics.The_variable_declaration_of_a_for_in_statement_cannot_have_an_initializer.code, + Diagnostics.The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer.code, + Diagnostics.Trailing_comma_not_allowed.code, + Diagnostics.Variable_declaration_list_cannot_be_empty.code, + Diagnostics._0_and_1_operations_cannot_be_mixed_without_parentheses.code, + Diagnostics._0_expected.code, + Diagnostics._0_is_not_a_valid_meta_property_for_keyword_1_Did_you_mean_2.code, + Diagnostics._0_list_cannot_be_empty.code, + Diagnostics._0_modifier_already_seen.code, + Diagnostics._0_modifier_cannot_appear_on_a_constructor_declaration.code, + Diagnostics._0_modifier_cannot_appear_on_a_module_or_namespace_element.code, + Diagnostics._0_modifier_cannot_appear_on_a_parameter.code, + Diagnostics._0_modifier_cannot_appear_on_class_elements_of_this_kind.code, + Diagnostics._0_modifier_cannot_be_used_here.code, + Diagnostics._0_modifier_must_precede_1_modifier.code, + Diagnostics.const_declarations_can_only_be_declared_inside_a_block.code, + Diagnostics.const_declarations_must_be_initialized.code, + Diagnostics.extends_clause_already_seen.code, + Diagnostics.let_declarations_can_only_be_declared_inside_a_block.code, + Diagnostics.let_is_not_allowed_to_be_used_as_a_name_in_let_or_const_declarations.code, + ]); + /** * Determine if source file needs to be re-created even if its text hasn't changed */ @@ -874,15 +1025,14 @@ namespace ts { let files: SourceFile[]; let symlinks: SymlinkCache | undefined; let commonSourceDirectory: string; - let diagnosticsProducingTypeChecker: TypeChecker; - let noDiagnosticsTypeChecker: TypeChecker; + let typeChecker: TypeChecker; let classifiableNames: Set<__String>; const ambientModuleNameToUnmodifiedFileName = new Map(); let fileReasons = createMultiMap(); const cachedBindAndCheckDiagnosticsForFile: DiagnosticCache = {}; const cachedDeclarationDiagnosticsForFile: DiagnosticCache = {}; - let resolvedTypeReferenceDirectives = new Map(); + let resolvedTypeReferenceDirectives = createModeAwareCache(); let fileProcessingDiagnostics: FilePreprocessingDiagnostics[] | undefined; // The below settings are to track if a .js file should be add to the program if loaded via searching under node_modules. @@ -942,21 +1092,22 @@ namespace ts { actualResolveModuleNamesWorker = (moduleNames, containingFile, containingFileName, _reusedNames, redirectedReference) => loadWithModeAwareCache(Debug.checkEachDefined(moduleNames), containingFile, containingFileName, redirectedReference, loader); } - let actualResolveTypeReferenceDirectiveNamesWorker: (typeDirectiveNames: string[], containingFile: string, redirectedReference?: ResolvedProjectReference) => (ResolvedTypeReferenceDirective | undefined)[]; + let actualResolveTypeReferenceDirectiveNamesWorker: (typeDirectiveNames: string[] | readonly FileReference[], containingFile: string, redirectedReference?: ResolvedProjectReference, containingFileMode?: SourceFile["impliedNodeFormat"] | undefined) => (ResolvedTypeReferenceDirective | undefined)[]; if (host.resolveTypeReferenceDirectives) { - actualResolveTypeReferenceDirectiveNamesWorker = (typeDirectiveNames, containingFile, redirectedReference) => host.resolveTypeReferenceDirectives!(Debug.checkEachDefined(typeDirectiveNames), containingFile, redirectedReference, options); + actualResolveTypeReferenceDirectiveNamesWorker = (typeDirectiveNames, containingFile, redirectedReference, containingFileMode) => host.resolveTypeReferenceDirectives!(Debug.checkEachDefined(typeDirectiveNames), containingFile, redirectedReference, options, containingFileMode); } else { typeReferenceDirectiveResolutionCache = createTypeReferenceDirectiveResolutionCache(currentDirectory, getCanonicalFileName, /*options*/ undefined, moduleResolutionCache?.getPackageJsonInfoCache()); - const loader = (typesRef: string, containingFile: string, redirectedReference: ResolvedProjectReference | undefined) => resolveTypeReferenceDirective( + const loader = (typesRef: string, containingFile: string, redirectedReference: ResolvedProjectReference | undefined, resolutionMode: SourceFile["impliedNodeFormat"] | undefined) => resolveTypeReferenceDirective( typesRef, containingFile, options, host, redirectedReference, typeReferenceDirectiveResolutionCache, + resolutionMode, ).resolvedTypeReferenceDirective!; // TODO: GH#18217 - actualResolveTypeReferenceDirectiveNamesWorker = (typeReferenceDirectiveNames, containingFile, redirectedReference) => loadWithLocalCache(Debug.checkEachDefined(typeReferenceDirectiveNames), containingFile, redirectedReference, loader); + actualResolveTypeReferenceDirectiveNamesWorker = (typeReferenceDirectiveNames, containingFile, redirectedReference, containingFileMode) => loadWithTypeDirectiveCache(Debug.checkEachDefined(typeReferenceDirectiveNames), containingFile, redirectedReference, containingFileMode, loader); } // Map from a stringified PackageId to the source file with that id. @@ -1059,7 +1210,8 @@ namespace ts { const containingFilename = combinePaths(containingDirectory, inferredTypesContainingFile); const resolutions = resolveTypeReferenceDirectiveNamesWorker(typeReferences, containingFilename); for (let i = 0; i < typeReferences.length; i++) { - processTypeReferenceDirective(typeReferences[i], resolutions[i], { kind: FileIncludeKind.AutomaticTypeDirectiveFile, typeReference: typeReferences[i], packageId: resolutions[i]?.packageId }); + // under node12/nodenext module resolution, load `types`/ata include names as cjs resolution results by passing an `undefined` mode + processTypeReferenceDirective(typeReferences[i], /*mode*/ undefined, resolutions[i], { kind: FileIncludeKind.AutomaticTypeDirectiveFile, typeReference: typeReferences[i], packageId: resolutions[i]?.packageId }); } tracing?.pop(); } @@ -1151,21 +1303,19 @@ namespace ts { getProgramDiagnostics, getTypeChecker, getClassifiableNames, - getDiagnosticsProducingTypeChecker, getCommonSourceDirectory, emit, getCurrentDirectory: () => currentDirectory, - getNodeCount: () => getDiagnosticsProducingTypeChecker().getNodeCount(), - getIdentifierCount: () => getDiagnosticsProducingTypeChecker().getIdentifierCount(), - getSymbolCount: () => getDiagnosticsProducingTypeChecker().getSymbolCount(), - getTypeCount: () => getDiagnosticsProducingTypeChecker().getTypeCount(), - getInstantiationCount: () => getDiagnosticsProducingTypeChecker().getInstantiationCount(), - getRelationCacheSizes: () => getDiagnosticsProducingTypeChecker().getRelationCacheSizes(), + getNodeCount: () => getTypeChecker().getNodeCount(), + getIdentifierCount: () => getTypeChecker().getIdentifierCount(), + getSymbolCount: () => getTypeChecker().getSymbolCount(), + getTypeCount: () => getTypeChecker().getTypeCount(), + getInstantiationCount: () => getTypeChecker().getInstantiationCount(), + getRelationCacheSizes: () => getTypeChecker().getRelationCacheSizes(), getFileProcessingDiagnostics: () => fileProcessingDiagnostics, getResolvedTypeReferenceDirectives: () => resolvedTypeReferenceDirectives, isSourceFileFromExternalLibrary, isSourceFileDefaultLibrary, - dropDiagnosticsProducingTypeChecker, getSourceFileFromReference, getLibFileFromReference, sourceFileToPackageName, @@ -1227,13 +1377,14 @@ namespace ts { return result; } - function resolveTypeReferenceDirectiveNamesWorker(typeDirectiveNames: string[], containingFile: string | SourceFile): readonly (ResolvedTypeReferenceDirective | undefined)[] { + function resolveTypeReferenceDirectiveNamesWorker(typeDirectiveNames: string[] | readonly FileReference[], containingFile: string | SourceFile): readonly (ResolvedTypeReferenceDirective | undefined)[] { if (!typeDirectiveNames.length) return []; const containingFileName = !isString(containingFile) ? getNormalizedAbsolutePath(containingFile.originalFileName, currentDirectory) : containingFile; const redirectedReference = !isString(containingFile) ? getRedirectReferenceForResolution(containingFile) : undefined; + const containingFileMode = !isString(containingFile) ? containingFile.impliedNodeFormat : undefined; tracing?.push(tracing.Phase.Program, "resolveTypeReferenceDirectiveNamesWorker", { containingFileName }); performance.mark("beforeResolveTypeReference"); - const result = actualResolveTypeReferenceDirectiveNamesWorker(typeDirectiveNames, containingFileName, redirectedReference); + const result = actualResolveTypeReferenceDirectiveNamesWorker(typeDirectiveNames, containingFileName, redirectedReference, containingFileMode); performance.mark("afterResolveTypeReference"); performance.measure("ResolveTypeReference", "beforeResolveTypeReference", "afterResolveTypeReference"); tracing?.pop(); @@ -1541,8 +1692,8 @@ namespace ts { for (const oldSourceFile of oldSourceFiles) { let newSourceFile = host.getSourceFileByPath - ? host.getSourceFileByPath(oldSourceFile.fileName, oldSourceFile.resolvedPath, getEmitScriptTarget(options), /*onError*/ undefined, shouldCreateNewSourceFile) - : host.getSourceFile(oldSourceFile.fileName, getEmitScriptTarget(options), /*onError*/ undefined, shouldCreateNewSourceFile); // TODO: GH#18217 + ? host.getSourceFileByPath(oldSourceFile.fileName, oldSourceFile.resolvedPath, getCreateSourceFileOptions(oldSourceFile.fileName, moduleResolutionCache, host, options), /*onError*/ undefined, shouldCreateNewSourceFile) + : host.getSourceFile(oldSourceFile.fileName, getCreateSourceFileOptions(oldSourceFile.fileName, moduleResolutionCache, host, options), /*onError*/ undefined, shouldCreateNewSourceFile); // TODO: GH#18217 if (!newSourceFile) { return StructureIsReused.Not; @@ -1670,12 +1821,11 @@ namespace ts { else { newSourceFile.resolvedModules = oldSourceFile.resolvedModules; } - // We lower-case all type references because npm automatically lowercases all packages. See GH#9824. - const typesReferenceDirectives = map(newSourceFile.typeReferenceDirectives, ref => toFileNameLowerCase(ref.fileName)); + const typesReferenceDirectives = newSourceFile.typeReferenceDirectives; const typeReferenceResolutions = resolveTypeReferenceDirectiveNamesWorker(typesReferenceDirectives, newSourceFile); // ensure that types resolutions are still correct - const typeReferenceEesolutionsChanged = hasChangesInResolutions(typesReferenceDirectives, typeReferenceResolutions, oldSourceFile.resolvedTypeReferenceDirectiveNames, oldSourceFile, typeDirectiveIsEqualTo); - if (typeReferenceEesolutionsChanged) { + const typeReferenceResolutionsChanged = hasChangesInResolutions(typesReferenceDirectives, typeReferenceResolutions, oldSourceFile.resolvedTypeReferenceDirectiveNames, oldSourceFile, typeDirectiveIsEqualTo); + if (typeReferenceResolutionsChanged) { structureIsReused = StructureIsReused.SafeModules; newSourceFile.resolvedTypeReferenceDirectiveNames = zipToModeAwareCache(newSourceFile, typesReferenceDirectives, typeReferenceResolutions); } @@ -1827,16 +1977,8 @@ namespace ts { } } - function getDiagnosticsProducingTypeChecker() { - return diagnosticsProducingTypeChecker || (diagnosticsProducingTypeChecker = createTypeChecker(program, /*produceDiagnostics:*/ true)); - } - - function dropDiagnosticsProducingTypeChecker() { - diagnosticsProducingTypeChecker = undefined!; - } - function getTypeChecker() { - return noDiagnosticsTypeChecker || (noDiagnosticsTypeChecker = createTypeChecker(program, /*produceDiagnostics:*/ false)); + return typeChecker || (typeChecker = createTypeChecker(program)); } function emit(sourceFile?: SourceFile, writeFileCallback?: WriteFileCallback, cancellationToken?: CancellationToken, emitOnlyDtsFiles?: boolean, transformers?: CustomTransformers, forceDtsEmit?: boolean): EmitResult { @@ -1864,7 +2006,7 @@ namespace ts { // This is because in the -out scenario all files need to be emitted, and therefore all // files need to be type checked. And the way to specify that all files need to be type // checked is to not pass the file to getEmitResolver. - const emitResolver = getDiagnosticsProducingTypeChecker().getEmitResolver(outFile(options) ? undefined : sourceFile, cancellationToken); + const emitResolver = getTypeChecker().getEmitResolver(outFile(options) ? undefined : sourceFile, cancellationToken); performance.mark("beforeEmit"); @@ -1968,15 +2110,7 @@ namespace ts { if (e instanceof OperationCanceledException) { // We were canceled while performing the operation. Because our type checker // might be a bad state, we need to throw it away. - // - // Note: we are overly aggressive here. We do not actually *have* to throw away - // the "noDiagnosticsTypeChecker". However, for simplicity, i'd like to keep - // the lifetimes of these two TypeCheckers the same. Also, we generally only - // cancel when the user has made a change anyways. And, in that case, we (the - // program instance) will get thrown away anyways. So trying to keep one of - // these type checkers alive doesn't serve much purpose. - noDiagnosticsTypeChecker = undefined!; - diagnosticsProducingTypeChecker = undefined!; + typeChecker = undefined!; } throw e; @@ -2000,19 +2134,29 @@ namespace ts { return emptyArray; } - const typeChecker = getDiagnosticsProducingTypeChecker(); + const typeChecker = getTypeChecker(); Debug.assert(!!sourceFile.bindDiagnostics); - const isCheckJs = isCheckJsEnabledForFile(sourceFile, options); + const isJs = sourceFile.scriptKind === ScriptKind.JS || sourceFile.scriptKind === ScriptKind.JSX; + const isCheckJs = isJs && isCheckJsEnabledForFile(sourceFile, options); + const isPlainJs = isPlainJsFile(sourceFile, options.checkJs); const isTsNoCheck = !!sourceFile.checkJsDirective && sourceFile.checkJsDirective.enabled === false; - // By default, only type-check .ts, .tsx, 'Deferred' and 'External' files (external files are added by plugins) - const includeBindAndCheckDiagnostics = !isTsNoCheck && (sourceFile.scriptKind === ScriptKind.TS || sourceFile.scriptKind === ScriptKind.TSX - || sourceFile.scriptKind === ScriptKind.External || isCheckJs || sourceFile.scriptKind === ScriptKind.Deferred); - const bindDiagnostics: readonly Diagnostic[] = includeBindAndCheckDiagnostics ? sourceFile.bindDiagnostics : emptyArray; - const checkDiagnostics = includeBindAndCheckDiagnostics ? typeChecker.getDiagnostics(sourceFile, cancellationToken) : emptyArray; - return getMergedBindAndCheckDiagnostics(sourceFile, includeBindAndCheckDiagnostics, bindDiagnostics, checkDiagnostics, isCheckJs ? sourceFile.jsDocDiagnostics : undefined); + // By default, only type-check .ts, .tsx, Deferred, plain JS, checked JS and External + // - plain JS: .js files with no // ts-check and checkJs: undefined + // - check JS: .js files with either // ts-check or checkJs: true + // - external: files that are added by plugins + const includeBindAndCheckDiagnostics = !isTsNoCheck && (sourceFile.scriptKind === ScriptKind.TS || sourceFile.scriptKind === ScriptKind.TSX + || sourceFile.scriptKind === ScriptKind.External || isPlainJs || isCheckJs || sourceFile.scriptKind === ScriptKind.Deferred); + let bindDiagnostics: readonly Diagnostic[] = includeBindAndCheckDiagnostics ? sourceFile.bindDiagnostics : emptyArray; + let checkDiagnostics = includeBindAndCheckDiagnostics ? typeChecker.getDiagnostics(sourceFile, cancellationToken) : emptyArray; + if (isPlainJs) { + bindDiagnostics = filter(bindDiagnostics, d => plainJSErrors.has(d.code)); + checkDiagnostics = filter(checkDiagnostics, d => plainJSErrors.has(d.code)); + } + // skip ts-expect-error errors in plain JS files, and skip JSDoc errors except in checked JS + return getMergedBindAndCheckDiagnostics(sourceFile, includeBindAndCheckDiagnostics && !isPlainJs, bindDiagnostics, checkDiagnostics, isCheckJs ? sourceFile.jsDocDiagnostics : undefined); }); } @@ -2046,7 +2190,7 @@ namespace ts { function getSuggestionDiagnostics(sourceFile: SourceFile, cancellationToken: CancellationToken): readonly DiagnosticWithLocation[] { return runWithCancellationToken(() => { - return getDiagnosticsProducingTypeChecker().getSuggestionDiagnostics(sourceFile, cancellationToken); + return getTypeChecker().getSuggestionDiagnostics(sourceFile, cancellationToken); }); } @@ -2129,6 +2273,13 @@ namespace ts { return "skip"; } break; + case SyntaxKind.ImportSpecifier: + case SyntaxKind.ExportSpecifier: + if ((node as ImportOrExportSpecifier).isTypeOnly) { + diagnostics.push(createDiagnosticForNode(node, Diagnostics._0_declarations_can_only_be_used_in_TypeScript_files, isImportSpecifier(node) ? "import...type" : "export...type")); + return "skip"; + } + break; case SyntaxKind.ImportEqualsDeclaration: diagnostics.push(createDiagnosticForNode(node, Diagnostics.import_can_only_be_used_in_TypeScript_files)); return "skip"; @@ -2251,6 +2402,8 @@ namespace ts { case SyntaxKind.DeclareKeyword: case SyntaxKind.AbstractKeyword: case SyntaxKind.OverrideKeyword: + case SyntaxKind.InKeyword: + case SyntaxKind.OutKeyword: diagnostics.push(createDiagnosticForNode(modifier, Diagnostics.The_0_modifier_can_only_be_used_in_TypeScript_files, tokenToString(modifier.kind))); break; @@ -2281,7 +2434,7 @@ namespace ts { function getDeclarationDiagnosticsForFileNoCache(sourceFile: SourceFile | undefined, cancellationToken: CancellationToken | undefined): readonly DiagnosticWithLocation[] { return runWithCancellationToken(() => { - const resolver = getDiagnosticsProducingTypeChecker().getEmitResolver(sourceFile, cancellationToken); + const resolver = getTypeChecker().getEmitResolver(sourceFile, cancellationToken); // Don't actually write any files since we're just getting diagnostics. return ts.getDeclarationDiagnostics(getEmitHost(noop), resolver, sourceFile) || emptyArray; }); @@ -2332,7 +2485,7 @@ namespace ts { } function getGlobalDiagnostics(): SortedReadonlyArray { - return rootNames.length ? sortAndDeduplicateDiagnostics(getDiagnosticsProducingTypeChecker().getGlobalDiagnostics().slice()) : emptyArray as any as SortedReadonlyArray; + return rootNames.length ? sortAndDeduplicateDiagnostics(getTypeChecker().getGlobalDiagnostics().slice()) : emptyArray as any as SortedReadonlyArray; } function getConfigFileParsingDiagnostics(): readonly Diagnostic[] { @@ -2616,6 +2769,18 @@ namespace ts { return result; } + function getCreateSourceFileOptions(fileName: string, moduleResolutionCache: ModuleResolutionCache | undefined, host: CompilerHost, options: CompilerOptions) { + // It's a _little odd_ that we can't set `impliedNodeFormat` until the program step - but it's the first and only time we have a resolution cache + // and a freshly made source file node on hand at the same time, and we need both to set the field. Persisting the resolution cache all the way + // to the check and emit steps would be bad - so we much prefer detecting and storing the format information on the source file node upfront. + const impliedNodeFormat = getImpliedNodeFormatForFile(toPath(fileName), moduleResolutionCache?.getPackageJsonInfoCache(), host, options); + return { + languageVersion: getEmitScriptTarget(options), + impliedNodeFormat, + setExternalModuleIndicator: getSetExternalModuleIndicator(options) + }; + } + function findSourceFileWorker(fileName: string, isDefaultLib: boolean, ignoreNoDefaultLib: boolean, reason: FileIncludeReason, packageId: PackageId | undefined): SourceFile | undefined { const path = toPath(fileName); if (useSourceOfProjectReferenceRedirect) { @@ -2708,7 +2873,7 @@ namespace ts { // We haven't looked for this file, do so now and cache result const file = host.getSourceFile( fileName, - getEmitScriptTarget(options), + getCreateSourceFileOptions(fileName, moduleResolutionCache, host, options), hostErrorMessage => addFilePreprocessingFileExplainingDiagnostic(/*file*/ undefined, reason, Diagnostics.Cannot_read_file_0_Colon_1, [fileName, hostErrorMessage]), shouldCreateNewSourceFile ); @@ -2723,14 +2888,14 @@ namespace ts { redirectTargetsMap.add(fileFromPackageId.path, fileName); addFileToFilesByName(dupFile, path, redirectedPath); addFileIncludeReason(dupFile, reason); - sourceFileToPackageName.set(path, packageId.name); + sourceFileToPackageName.set(path, packageIdToPackageName(packageId)); processingOtherFiles!.push(dupFile); return dupFile; } else if (file) { // This is the first source file to have this packageId. packageIdToSourceFile.set(packageIdKey, file); - sourceFileToPackageName.set(path, packageId.name); + sourceFileToPackageName.set(path, packageIdToPackageName(packageId)); } } addFileToFilesByName(file, path, redirectedPath); @@ -2741,10 +2906,6 @@ namespace ts { file.path = path; file.resolvedPath = toPath(fileName); file.originalFileName = originalFileName; - // It's a _little odd_ that we can't set `impliedNodeFormat` until the program step - but it's the first and only time we have a resolution cache - // and a freshly made source file node on hand at the same time, and we need both to set the field. Persisting the resolution cache all the way - // to the check and emit steps would be bad - so we much prefer detecting and storing the format information on the source file node upfront. - file.impliedNodeFormat = getImpliedNodeFormatForFile(file.resolvedPath, moduleResolutionCache?.getPackageJsonInfoCache(), host, options); addFileIncludeReason(file, reason); if (host.useCaseSensitiveFileNames()) { @@ -2896,8 +3057,7 @@ namespace ts { } function processTypeReferenceDirectives(file: SourceFile) { - // We lower-case all type references because npm automatically lowercases all packages. See GH#9824. - const typeDirectives = map(file.typeReferenceDirectives, ref => toFileNameLowerCase(ref.fileName)); + const typeDirectives = file.typeReferenceDirectives; if (!typeDirectives) { return; } @@ -2909,28 +3069,34 @@ namespace ts { // store resolved type directive on the file const fileName = toFileNameLowerCase(ref.fileName); setResolvedTypeReferenceDirective(file, fileName, resolvedTypeReferenceDirective); - processTypeReferenceDirective(fileName, resolvedTypeReferenceDirective, { kind: FileIncludeKind.TypeReferenceDirective, file: file.path, index, }); + const mode = ref.resolutionMode || file.impliedNodeFormat; + if (mode && getEmitModuleResolutionKind(options) !== ModuleResolutionKind.Node12 && getEmitModuleResolutionKind(options) !== ModuleResolutionKind.NodeNext) { + programDiagnostics.add(createDiagnosticForRange(file, ref, Diagnostics.Resolution_modes_are_only_supported_when_moduleResolution_is_node12_or_nodenext)); + } + processTypeReferenceDirective(fileName, mode, resolvedTypeReferenceDirective, { kind: FileIncludeKind.TypeReferenceDirective, file: file.path, index, }); } } function processTypeReferenceDirective( typeReferenceDirective: string, + mode: SourceFile["impliedNodeFormat"] | undefined, resolvedTypeReferenceDirective: ResolvedTypeReferenceDirective | undefined, reason: FileIncludeReason ): void { tracing?.push(tracing.Phase.Program, "processTypeReferenceDirective", { directive: typeReferenceDirective, hasResolved: !!resolveModuleNamesReusingOldState, refKind: reason.kind, refPath: isReferencedFile(reason) ? reason.file : undefined }); - processTypeReferenceDirectiveWorker(typeReferenceDirective, resolvedTypeReferenceDirective, reason); + processTypeReferenceDirectiveWorker(typeReferenceDirective, mode, resolvedTypeReferenceDirective, reason); tracing?.pop(); } function processTypeReferenceDirectiveWorker( typeReferenceDirective: string, + mode: SourceFile["impliedNodeFormat"] | undefined, resolvedTypeReferenceDirective: ResolvedTypeReferenceDirective | undefined, reason: FileIncludeReason ): void { // If we already found this library as a primary reference - nothing to do - const previousResolution = resolvedTypeReferenceDirectives.get(typeReferenceDirective); + const previousResolution = resolvedTypeReferenceDirectives.get(typeReferenceDirective, mode); if (previousResolution && previousResolution.primary) { return; } @@ -2975,7 +3141,7 @@ namespace ts { } if (saveResolution) { - resolvedTypeReferenceDirectives.set(typeReferenceDirective, resolvedTypeReferenceDirective); + resolvedTypeReferenceDirectives.set(typeReferenceDirective, mode, resolvedTypeReferenceDirective); } } @@ -3160,6 +3326,21 @@ namespace ts { } function verifyCompilerOptions() { + const isNightly = stringContains(version, "-dev") || stringContains(version, "-insiders"); + if (!isNightly) { + if (getEmitModuleKind(options) === ModuleKind.Node12) { + createOptionValueDiagnostic("module", Diagnostics.Compiler_option_0_of_value_1_is_unstable_Use_nightly_TypeScript_to_silence_this_error_Try_updating_with_npm_install_D_typescript_next, "module", "node12"); + } + else if (getEmitModuleKind(options) === ModuleKind.NodeNext) { + createOptionValueDiagnostic("module", Diagnostics.Compiler_option_0_of_value_1_is_unstable_Use_nightly_TypeScript_to_silence_this_error_Try_updating_with_npm_install_D_typescript_next, "module", "nodenext"); + } + else if (getEmitModuleResolutionKind(options) === ModuleResolutionKind.Node12) { + createOptionValueDiagnostic("moduleResolution", Diagnostics.Compiler_option_0_of_value_1_is_unstable_Use_nightly_TypeScript_to_silence_this_error_Try_updating_with_npm_install_D_typescript_next, "moduleResolution", "node12"); + } + else if (getEmitModuleResolutionKind(options) === ModuleResolutionKind.NodeNext) { + createOptionValueDiagnostic("moduleResolution", Diagnostics.Compiler_option_0_of_value_1_is_unstable_Use_nightly_TypeScript_to_silence_this_error_Try_updating_with_npm_install_D_typescript_next, "moduleResolution", "nodenext"); + } + } if (options.strictPropertyInitialization && !getStrictOptionValue(options, "strictNullChecks")) { createDiagnosticForOptionName(Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1, "strictPropertyInitialization", "strictNullChecks"); } @@ -3317,7 +3498,7 @@ namespace ts { } else if (firstNonAmbientExternalModuleSourceFile && languageVersion < ScriptTarget.ES2015 && options.module === ModuleKind.None) { // We cannot use createDiagnosticFromNode because nodes do not have parents yet - const span = getErrorSpanForNode(firstNonAmbientExternalModuleSourceFile, firstNonAmbientExternalModuleSourceFile.externalModuleIndicator!); + const span = getErrorSpanForNode(firstNonAmbientExternalModuleSourceFile, typeof firstNonAmbientExternalModuleSourceFile.externalModuleIndicator === "boolean" ? firstNonAmbientExternalModuleSourceFile : firstNonAmbientExternalModuleSourceFile.externalModuleIndicator!); programDiagnostics.add(createFileDiagnostic(firstNonAmbientExternalModuleSourceFile, span.start, span.length, Diagnostics.Cannot_use_imports_exports_or_module_augmentations_when_module_is_none)); } @@ -3327,13 +3508,15 @@ namespace ts { createDiagnosticForOptionName(Diagnostics.Only_amd_and_system_modules_are_supported_alongside_0, options.out ? "out" : "outFile", "module"); } else if (options.module === undefined && firstNonAmbientExternalModuleSourceFile) { - const span = getErrorSpanForNode(firstNonAmbientExternalModuleSourceFile, firstNonAmbientExternalModuleSourceFile.externalModuleIndicator!); + const span = getErrorSpanForNode(firstNonAmbientExternalModuleSourceFile, typeof firstNonAmbientExternalModuleSourceFile.externalModuleIndicator === "boolean" ? firstNonAmbientExternalModuleSourceFile : firstNonAmbientExternalModuleSourceFile.externalModuleIndicator!); programDiagnostics.add(createFileDiagnostic(firstNonAmbientExternalModuleSourceFile, span.start, span.length, Diagnostics.Cannot_compile_modules_using_option_0_unless_the_module_flag_is_amd_or_system, options.out ? "out" : "outFile")); } } if (options.resolveJsonModule) { - if (getEmitModuleResolutionKind(options) !== ModuleResolutionKind.NodeJs) { + if (getEmitModuleResolutionKind(options) !== ModuleResolutionKind.NodeJs && + getEmitModuleResolutionKind(options) !== ModuleResolutionKind.Node12 && + getEmitModuleResolutionKind(options) !== ModuleResolutionKind.NodeNext) { createDiagnosticForOptionName(Diagnostics.Option_resolveJsonModule_cannot_be_specified_without_node_module_resolution_strategy, "resolveJsonModule"); } // Any emit other than common js, amd, es2015 or esnext is error @@ -3694,8 +3877,8 @@ namespace ts { createDiagnosticForOption(/*onKey*/ true, option1, option2, message, option1, option2, option3); } - function createOptionValueDiagnostic(option1: string, message: DiagnosticMessage, arg0?: string) { - createDiagnosticForOption(/*onKey*/ false, option1, /*option2*/ undefined, message, arg0); + function createOptionValueDiagnostic(option1: string, message: DiagnosticMessage, arg0?: string, arg1?: string) { + createDiagnosticForOption(/*onKey*/ false, option1, /*option2*/ undefined, message, arg0, arg1); } function createDiagnosticForReference(sourceFile: JsonSourceFile | undefined, index: number, message: DiagnosticMessage, arg0?: string | number, arg1?: string | number) { diff --git a/src/compiler/resolutionCache.ts b/src/compiler/resolutionCache.ts index 8c09ec3ef721d..d6127fdc1c488 100644 --- a/src/compiler/resolutionCache.ts +++ b/src/compiler/resolutionCache.ts @@ -7,7 +7,7 @@ namespace ts { resolveModuleNames(moduleNames: string[], containingFile: string, reusedNames: string[] | undefined, redirectedReference?: ResolvedProjectReference, containingSourceFile?: SourceFile): (ResolvedModuleFull | undefined)[]; getResolvedModuleWithFailedLookupLocationsFromCache(moduleName: string, containingFile: string, resolutionMode?: ModuleKind.CommonJS | ModuleKind.ESNext): CachedResolvedModuleWithFailedLookupLocations | undefined; - resolveTypeReferenceDirectives(typeDirectiveNames: string[], containingFile: string, redirectedReference?: ResolvedProjectReference): (ResolvedTypeReferenceDirective | undefined)[]; + resolveTypeReferenceDirectives(typeDirectiveNames: string[] | readonly FileReference[], containingFile: string, redirectedReference?: ResolvedProjectReference, containingFileMode?: SourceFile["impliedNodeFormat"]): (ResolvedTypeReferenceDirective | undefined)[]; invalidateResolutionsOfFailedLookupLocations(): boolean; invalidateResolutionOfFile(filePath: Path): void; @@ -49,7 +49,7 @@ namespace ts { interface CachedResolvedTypeReferenceDirectiveWithFailedLookupLocations extends ResolvedTypeReferenceDirectiveWithFailedLookupLocations, ResolutionWithFailedLookupLocations { } - export interface ResolutionCacheHost extends ModuleResolutionHost { + export interface ResolutionCacheHost extends MinimalResolutionCacheHost { toPath(fileName: string): Path; getCanonicalFileName: GetCanonicalFileName; getCompilationSettings(): CompilerOptions; @@ -65,7 +65,7 @@ namespace ts { writeLog(s: string): void; getCurrentProgram(): Program | undefined; fileIsOpen(filePath: Path): boolean; - getCompilerHost?(): CompilerHost | undefined; + onDiscoveredSymlink?(): void; } interface DirectoryWatchesOfFailedLookup { @@ -314,8 +314,8 @@ namespace ts { hasChangedAutomaticTypeDirectiveNames = false; } - function resolveModuleName(moduleName: string, containingFile: string, compilerOptions: CompilerOptions, host: ModuleResolutionHost, redirectedReference?: ResolvedProjectReference): CachedResolvedModuleWithFailedLookupLocations { - const primaryResult = ts.resolveModuleName(moduleName, containingFile, compilerOptions, host, moduleResolutionCache, redirectedReference); + function resolveModuleName(moduleName: string, containingFile: string, compilerOptions: CompilerOptions, host: ModuleResolutionHost, redirectedReference?: ResolvedProjectReference, _containingSourceFile?: never, mode?: ModuleKind.CommonJS | ModuleKind.ESNext | undefined): CachedResolvedModuleWithFailedLookupLocations { + const primaryResult = ts.resolveModuleName(moduleName, containingFile, compilerOptions, host, moduleResolutionCache, redirectedReference, mode); // return result immediately only if global cache support is not enabled or if it is .ts, .tsx or .d.ts if (!resolutionHost.getGlobalCache) { return primaryResult; @@ -346,28 +346,29 @@ namespace ts { return primaryResult; } - function resolveTypeReferenceDirective(typeReferenceDirectiveName: string, containingFile: string | undefined, options: CompilerOptions, host: ModuleResolutionHost, redirectedReference?: ResolvedProjectReference): CachedResolvedTypeReferenceDirectiveWithFailedLookupLocations { - return ts.resolveTypeReferenceDirective(typeReferenceDirectiveName, containingFile, options, host, redirectedReference, typeReferenceDirectiveResolutionCache); + function resolveTypeReferenceDirective(typeReferenceDirectiveName: string, containingFile: string | undefined, options: CompilerOptions, host: ModuleResolutionHost, redirectedReference?: ResolvedProjectReference, _containingSourceFile?: SourceFile, resolutionMode?: SourceFile["impliedNodeFormat"] | undefined): CachedResolvedTypeReferenceDirectiveWithFailedLookupLocations { + return ts.resolveTypeReferenceDirective(typeReferenceDirectiveName, containingFile, options, host, redirectedReference, typeReferenceDirectiveResolutionCache, resolutionMode); } interface ResolveNamesWithLocalCacheInput { - names: readonly string[]; + names: readonly string[] | readonly FileReference[]; containingFile: string; redirectedReference: ResolvedProjectReference | undefined; cache: ESMap>; perDirectoryCacheWithRedirects: CacheWithRedirects>; - loader: (name: string, containingFile: string, options: CompilerOptions, host: ModuleResolutionHost, redirectedReference?: ResolvedProjectReference, containingSourceFile?: SourceFile) => T; + loader: (name: string, containingFile: string, options: CompilerOptions, host: ModuleResolutionHost, redirectedReference?: ResolvedProjectReference, containingSourceFile?: SourceFile, resolutionMode?: ModuleKind.CommonJS | ModuleKind.ESNext | undefined) => T; getResolutionWithResolvedFileName: GetResolutionWithResolvedFileName; shouldRetryResolution: (t: T) => boolean; reusedNames?: readonly string[]; logChanges?: boolean; containingSourceFile?: SourceFile; + containingSourceFileMode?: SourceFile["impliedNodeFormat"]; } function resolveNamesWithLocalCache({ names, containingFile, redirectedReference, cache, perDirectoryCacheWithRedirects, loader, getResolutionWithResolvedFileName, - shouldRetryResolution, reusedNames, logChanges, containingSourceFile + shouldRetryResolution, reusedNames, logChanges, containingSourceFile, containingSourceFileMode }: ResolveNamesWithLocalCacheInput): (R | undefined)[] { const path = resolutionHost.toPath(containingFile); const resolutionsInFile = cache.get(path) || cache.set(path, createModeAwareCache()).get(path)!; @@ -391,8 +392,15 @@ namespace ts { const seenNamesInFile = createModeAwareCache(); let i = 0; - for (const name of names) { - const mode = containingSourceFile ? getModeForResolutionAtIndex(containingSourceFile, i) : undefined; + for (const entry of names) { + const name = isString(entry) ? entry : entry.fileName.toLowerCase(); + // Imports supply a `containingSourceFile` but no `containingSourceFileMode` - it would be redundant + // they require calculating the mode for a given import from it's position in the resolution table, since a given + // import's syntax may override the file's default mode. + // Type references instead supply a `containingSourceFileMode` and a non-string entry which contains + // a default file mode override if applicable. + const mode = !isString(entry) ? getModeForFileReference(entry, containingSourceFileMode) : + containingSourceFile ? getModeForResolutionAtIndex(containingSourceFile, i) : undefined; i++; let resolution = resolutionsInFile.get(name, mode); // Resolution is valid if it is present and not invalidated @@ -429,8 +437,11 @@ namespace ts { } } else { - resolution = loader(name, containingFile, compilerOptions, resolutionHost.getCompilerHost?.() || resolutionHost, redirectedReference, containingSourceFile); + resolution = loader(name, containingFile, compilerOptions, resolutionHost.getCompilerHost?.() || resolutionHost, redirectedReference, containingSourceFile, mode); perDirectoryResolution.set(name, mode, resolution); + if (resolutionHost.onDiscoveredSymlink && resolutionIsSymlink(resolution)) { + resolutionHost.onDiscoveredSymlink(); + } } resolutionsInFile.set(name, mode, resolution); watchFailedLookupLocationsOfExternalModuleResolutions(name, resolution, path, getResolutionWithResolvedFileName); @@ -502,7 +513,7 @@ namespace ts { } } - function resolveTypeReferenceDirectives(typeDirectiveNames: string[], containingFile: string, redirectedReference?: ResolvedProjectReference): (ResolvedTypeReferenceDirective | undefined)[] { + function resolveTypeReferenceDirectives(typeDirectiveNames: string[] | readonly FileReference[], containingFile: string, redirectedReference?: ResolvedProjectReference, containingFileMode?: SourceFile["impliedNodeFormat"]): (ResolvedTypeReferenceDirective | undefined)[] { return resolveNamesWithLocalCache({ names: typeDirectiveNames, containingFile, @@ -512,6 +523,7 @@ namespace ts { loader: resolveTypeReferenceDirective, getResolutionWithResolvedFileName: getResolvedTypeReferenceDirective, shouldRetryResolution: resolution => resolution.resolvedTypeReferenceDirective === undefined, + containingSourceFileMode: containingFileMode }); } @@ -615,7 +627,7 @@ namespace ts { ) { if (resolution.refCount) { resolution.refCount++; - Debug.assertDefined(resolution.files); + Debug.assertIsDefined(resolution.files); } else { resolution.refCount = 1; @@ -692,7 +704,7 @@ namespace ts { filePath: Path, getResolutionWithResolvedFileName: GetResolutionWithResolvedFileName, ) { - unorderedRemoveItem(Debug.assertDefined(resolution.files), filePath); + unorderedRemoveItem(Debug.checkDefined(resolution.files), filePath); resolution.refCount!--; if (resolution.refCount) { return; @@ -794,7 +806,7 @@ namespace ts { for (const resolution of resolutions) { if (resolution.isInvalidated || !canInvalidate(resolution)) continue; resolution.isInvalidated = invalidated = true; - for (const containingFilePath of Debug.assertDefined(resolution.files)) { + for (const containingFilePath of Debug.checkDefined(resolution.files)) { (filesWithInvalidatedResolutions || (filesWithInvalidatedResolutions = new Set())).add(containingFilePath); // When its a file with inferred types resolution, invalidate type reference directive resolution hasChangedAutomaticTypeDirectiveNames = hasChangedAutomaticTypeDirectiveNames || endsWith(containingFilePath, inferredTypesContainingFile); @@ -965,4 +977,11 @@ namespace ts { return dirPath === rootPath || canWatchDirectory(dirPath); } } + + function resolutionIsSymlink(resolution: ResolutionWithFailedLookupLocations) { + return !!( + (resolution as ResolvedModuleWithFailedLookupLocations).resolvedModule?.originalPath || + (resolution as ResolvedTypeReferenceDirectiveWithFailedLookupLocations).resolvedTypeReferenceDirective?.originalPath + ); + } } diff --git a/src/compiler/scanner.ts b/src/compiler/scanner.ts index 0c4c087e6edc5..107ff3a143efa 100644 --- a/src/compiler/scanner.ts +++ b/src/compiler/scanner.ts @@ -131,6 +131,7 @@ namespace ts { protected: SyntaxKind.ProtectedKeyword, public: SyntaxKind.PublicKeyword, override: SyntaxKind.OverrideKeyword, + out: SyntaxKind.OutKeyword, readonly: SyntaxKind.ReadonlyKeyword, require: SyntaxKind.RequireKeyword, global: SyntaxKind.GlobalKeyword, @@ -2374,6 +2375,7 @@ namespace ts { tokenValue = tokenValue.slice(0, -1); pos--; } + return getIdentifierToken(); } return token; } diff --git a/src/compiler/sys.ts b/src/compiler/sys.ts index a5330d807cddc..48ac670c8bea3 100644 --- a/src/compiler/sys.ts +++ b/src/compiler/sys.ts @@ -499,12 +499,16 @@ namespace ts { /*@internal*/ export const ignoredPaths = ["/node_modules/.", "/.git", "/.#"]; + let curSysLog: (s: string) => void = noop; // eslint-disable-line prefer-const + /*@internal*/ - export let sysLog: (s: string) => void = noop; // eslint-disable-line prefer-const + export function sysLog(s: string) { + return curSysLog(s); + } /*@internal*/ export function setSysLog(logger: typeof sysLog) { - sysLog = logger; + curSysLog = logger; } /*@internal*/ @@ -1625,7 +1629,6 @@ namespace ts { sysLog(`sysLog:: ${fileOrDirectory}:: Defaulting to fsWatchFile`); return watchPresentFileSystemEntryWithFsWatchFile(); } - try { const presentWatcher = _fs.watch( fileOrDirectory, @@ -1804,7 +1807,7 @@ namespace ts { } function readDirectory(path: string, extensions?: readonly string[], excludes?: readonly string[], includes?: readonly string[], depth?: number): string[] { - return matchFiles(path, extensions, excludes, includes, useCaseSensitiveFileNames, process.cwd(), depth, getAccessibleFileSystemEntries, realpath, directoryExists); + return matchFiles(path, extensions, excludes, includes, useCaseSensitiveFileNames, process.cwd(), depth, getAccessibleFileSystemEntries, realpath); } function fileSystemEntryExists(path: string, entryKind: FileSystemEntryKind): boolean { diff --git a/src/compiler/tracing.ts b/src/compiler/tracing.ts index 31c1c8910cf91..4757ac72e1b7b 100644 --- a/src/compiler/tracing.ts +++ b/src/compiler/tracing.ts @@ -341,4 +341,8 @@ namespace ts { // eslint-disable-line one-namespace-per-file // define after tracingEnabled is initialized export const startTracing = tracingEnabled.startTracing; export const dumpTracingLegend = tracingEnabled.dumpLegend; + + export interface TracingNode { + tracingPath?: Path; + } } diff --git a/src/compiler/transformers/classFields.ts b/src/compiler/transformers/classFields.ts index 7d4afe2baffc4..3ac842e8abab5 100644 --- a/src/compiler/transformers/classFields.ts +++ b/src/compiler/transformers/classFields.ts @@ -133,12 +133,15 @@ namespace ts { const languageVersion = getEmitScriptTarget(compilerOptions); const useDefineForClassFields = getUseDefineForClassFields(compilerOptions); - const shouldTransformPrivateElementsOrClassStaticBlocks = languageVersion < ScriptTarget.ESNext; + const shouldTransformPrivateElementsOrClassStaticBlocks = languageVersion < ScriptTarget.ES2022; + + // We need to transform `this` in a static initializer into a reference to the class + // when targeting < ES2022 since the assignment will be moved outside of the class body. + const shouldTransformThisInStaticInitializers = languageVersion < ScriptTarget.ES2022; // We don't need to transform `super` property access when targeting ES5, ES3 because // the es2015 transformation handles those. - const shouldTransformSuperInStaticInitializers = (languageVersion <= ScriptTarget.ES2021 || !useDefineForClassFields) && languageVersion >= ScriptTarget.ES2015; - const shouldTransformThisInStaticInitializers = languageVersion <= ScriptTarget.ES2021 || !useDefineForClassFields; + const shouldTransformSuperInStaticInitializers = shouldTransformThisInStaticInitializers && languageVersion >= ScriptTarget.ES2015; const previousOnSubstituteNode = context.onSubstituteNode; context.onSubstituteNode = onSubstituteNode; @@ -172,7 +175,7 @@ namespace ts { function transformSourceFile(node: SourceFile) { const options = context.getCompilerOptions(); if (node.isDeclarationFile - || useDefineForClassFields && getEmitScriptTarget(options) === ScriptTarget.ESNext) { + || useDefineForClassFields && getEmitScriptTarget(options) >= ScriptTarget.ES2022) { return node; } const visited = visitEachChild(node, visitor, context); @@ -422,6 +425,11 @@ namespace ts { if (isPrivateIdentifier(node.name)) { if (!shouldTransformPrivateElementsOrClassStaticBlocks) { + if (isStatic(node)) { + // static fields are left as is + return visitEachChild(node, visitor, context); + } + // Initializer is elided as the field is initialized in transformConstructor. return factory.updatePropertyDeclaration( node, @@ -448,6 +456,28 @@ namespace ts { if (expr && !isSimpleInlineableExpression(expr)) { getPendingExpressions().push(expr); } + + if (isStatic(node) && !shouldTransformPrivateElementsOrClassStaticBlocks && !useDefineForClassFields) { + const initializerStatement = transformPropertyOrClassStaticBlock(node, factory.createThis()); + if (initializerStatement) { + const staticBlock = factory.createClassStaticBlockDeclaration( + /*decorators*/ undefined, + /*modifiers*/ undefined, + factory.createBlock([initializerStatement]) + ); + + setOriginalNode(staticBlock, node); + setCommentRange(staticBlock, node); + + // Set the comment range for the statement to an empty synthetic range + // and drop synthetic comments from the statement to avoid printing them twice. + setCommentRange(initializerStatement, { pos: -1, end: -1 }); + setSyntheticLeadingComments(initializerStatement, undefined); + setSyntheticTrailingComments(initializerStatement, undefined); + return staticBlock; + } + } + return undefined; } @@ -1006,8 +1036,6 @@ namespace ts { enableSubstitutionForClassStaticThisOrSuperReference(); } - const staticProperties = getStaticPropertiesAndClassStaticBlock(node); - // If a class has private static fields, or a static field has a `this` or `super` reference, // then we need to allocate a temp variable to hold on to that reference. let pendingClassReferenceAssignment: BinaryExpression | undefined; @@ -1047,6 +1075,7 @@ namespace ts { // HasLexicalDeclaration (N) : Determines if the argument identifier has a binding in this environment record that was created using // a lexical declaration such as a LexicalDeclaration or a ClassDeclaration. + const staticProperties = getStaticPropertiesAndClassStaticBlock(node); if (some(staticProperties)) { addPropertyOrClassStaticBlockStatements(statements, staticProperties, factory.getInternalName(node)); } @@ -1102,7 +1131,7 @@ namespace ts { transformClassMembers(node, isDerivedClass) ); - const hasTransformableStatics = some(staticPropertiesOrClassStaticBlocks, p => isClassStaticBlockDeclaration(p) || !!p.initializer || (shouldTransformPrivateElementsOrClassStaticBlocks && isPrivateIdentifier(p.name))); + const hasTransformableStatics = shouldTransformPrivateElementsOrClassStaticBlocks && some(staticPropertiesOrClassStaticBlocks, p => isClassStaticBlockDeclaration(p) || !!p.initializer || isPrivateIdentifier(p.name)); if (hasTransformableStatics || some(pendingExpressions)) { if (isDecoratedClassDeclaration) { Debug.assertIsDefined(pendingStatements, "Decorated classes transformed by TypeScript are expected to be within a variable declaration."); @@ -1156,6 +1185,7 @@ namespace ts { } function transformClassMembers(node: ClassDeclaration | ClassExpression, isDerivedClass: boolean) { + const members: ClassElement[] = []; if (shouldTransformPrivateElementsOrClassStaticBlocks) { // Declare private names. for (const member of node.members) { @@ -1169,12 +1199,26 @@ namespace ts { } } - const members: ClassElement[] = []; const constructor = transformConstructor(node, isDerivedClass); + const visitedMembers = visitNodes(node.members, classElementVisitor, isClassElement); + if (constructor) { members.push(constructor); } - addRange(members, visitNodes(node.members, classElementVisitor, isClassElement)); + + if (!shouldTransformPrivateElementsOrClassStaticBlocks && some(pendingExpressions)) { + members.push(factory.createClassStaticBlockDeclaration( + /*decorators*/ undefined, + /*modifiers*/ undefined, + factory.createBlock([ + factory.createExpressionStatement(factory.inlineExpressions(pendingExpressions)) + ]) + )); + pendingExpressions = undefined; + } + + addRange(members, visitedMembers); + return setTextRange(factory.createNodeArray(members), /*location*/ node.members); } @@ -1201,7 +1245,7 @@ namespace ts { if (useDefineForClassFields) { // If we are using define semantics and targeting ESNext or higher, // then we don't need to transform any class properties. - return languageVersion < ScriptTarget.ESNext; + return languageVersion < ScriptTarget.ES2022; } return isInitializedProperty(member) || shouldTransformPrivateElementsOrClassStaticBlocks && isPrivateIdentifierClassElementDeclaration(member); } @@ -1249,10 +1293,28 @@ namespace ts { resumeLexicalEnvironment(); - let indexOfFirstStatement = 0; + const needsSyntheticConstructor = !constructor && isDerivedClass; + let indexOfFirstStatementAfterSuper = 0; + let prologueStatementCount = 0; + let superStatementIndex = -1; let statements: Statement[] = []; - if (!constructor && isDerivedClass) { + if (constructor?.body?.statements) { + prologueStatementCount = factory.copyPrologue(constructor.body.statements, statements, /*ensureUseStrict*/ false, visitor); + superStatementIndex = findSuperStatementIndex(constructor.body.statements, prologueStatementCount); + + // If there was a super call, visit existing statements up to and including it + if (superStatementIndex >= 0) { + indexOfFirstStatementAfterSuper = superStatementIndex + 1; + statements = [ + ...statements.slice(0, prologueStatementCount), + ...visitNodes(constructor.body.statements, visitor, isStatement, prologueStatementCount, indexOfFirstStatementAfterSuper - prologueStatementCount), + ...statements.slice(prologueStatementCount), + ]; + } + } + + if (needsSyntheticConstructor) { // Add a synthetic `super` call: // // super(...arguments); @@ -1268,9 +1330,6 @@ namespace ts { ); } - if (constructor) { - indexOfFirstStatement = addPrologueDirectivesAndInitialSuperCall(factory, constructor, statements, visitor); - } // Add the property initializers. Transforms this: // // public x = 1; @@ -1281,26 +1340,52 @@ namespace ts { // this.x = 1; // } // + // If we do useDefineForClassFields, they'll be converted elsewhere. + // We instead *remove* them from the transformed output at this stage. + let parameterPropertyDeclarationCount = 0; if (constructor?.body) { - let afterParameterProperties = findIndex(constructor.body.statements, s => !isParameterPropertyDeclaration(getOriginalNode(s), constructor), indexOfFirstStatement); - if (afterParameterProperties === -1) { - afterParameterProperties = constructor.body.statements.length; + if (useDefineForClassFields) { + statements = statements.filter(statement => !isParameterPropertyDeclaration(getOriginalNode(statement), constructor)); } - if (afterParameterProperties > indexOfFirstStatement) { - if (!useDefineForClassFields) { - addRange(statements, visitNodes(constructor.body.statements, visitor, isStatement, indexOfFirstStatement, afterParameterProperties - indexOfFirstStatement)); + else { + for (const statement of constructor.body.statements) { + if (isParameterPropertyDeclaration(getOriginalNode(statement), constructor)) { + parameterPropertyDeclarationCount++; + } + } + if (parameterPropertyDeclarationCount > 0) { + const parameterProperties = visitNodes(constructor.body.statements, visitor, isStatement, indexOfFirstStatementAfterSuper, parameterPropertyDeclarationCount); + + // If there was a super() call found, add parameter properties immediately after it + if (superStatementIndex >= 0) { + addRange(statements, parameterProperties); + } + // If a synthetic super() call was added, add them just after it + else if (needsSyntheticConstructor) { + statements = [ + statements[0], + ...parameterProperties, + ...statements.slice(1), + ]; + } + // Since there wasn't a super() call, add them to the top of the constructor + else { + statements = [...parameterProperties, ...statements]; + } + + indexOfFirstStatementAfterSuper += parameterPropertyDeclarationCount; } - indexOfFirstStatement = afterParameterProperties; } } + const receiver = factory.createThis(); // private methods can be called in property initializers, they should execute first. addMethodStatements(statements, privateMethodsAndAccessors, receiver); addPropertyOrClassStaticBlockStatements(statements, properties, receiver); - // Add existing statements, skipping the initial super call. + // Add existing statements after the initial prologues and super call if (constructor) { - addRange(statements, visitNodes(constructor.body!.statements, visitor, isStatement, indexOfFirstStatement)); + addRange(statements, visitNodes(constructor.body!.statements, visitBodyStatement, isStatement, indexOfFirstStatementAfterSuper + prologueStatementCount)); } statements = factory.mergeLexicalEnvironment(statements, endLexicalEnvironment()); @@ -1315,6 +1400,14 @@ namespace ts { ), /*location*/ constructor ? constructor.body : undefined ); + + function visitBodyStatement(statement: Node) { + if (useDefineForClassFields && isParameterPropertyDeclaration(getOriginalNode(statement), constructor!)) { + return undefined; + } + + return visitor(statement); + } } /** @@ -1325,20 +1418,41 @@ namespace ts { */ function addPropertyOrClassStaticBlockStatements(statements: Statement[], properties: readonly (PropertyDeclaration | ClassStaticBlockDeclaration)[], receiver: LeftHandSideExpression) { for (const property of properties) { - const expression = isClassStaticBlockDeclaration(property) ? - transformClassStaticBlockDeclaration(property) : - transformProperty(property, receiver); - if (!expression) { + if (isStatic(property) && !shouldTransformPrivateElementsOrClassStaticBlocks && !useDefineForClassFields) { continue; } - const statement = factory.createExpressionStatement(expression); - setSourceMapRange(statement, moveRangePastModifiers(property)); - setCommentRange(statement, property); - setOriginalNode(statement, property); + + const statement = transformPropertyOrClassStaticBlock(property, receiver); + if (!statement) { + continue; + } + statements.push(statement); } } + function transformPropertyOrClassStaticBlock(property: PropertyDeclaration | ClassStaticBlockDeclaration, receiver: LeftHandSideExpression) { + const expression = isClassStaticBlockDeclaration(property) ? + transformClassStaticBlockDeclaration(property) : + transformProperty(property, receiver); + if (!expression) { + return undefined; + } + + const statement = factory.createExpressionStatement(expression); + setSourceMapRange(statement, moveRangePastModifiers(property)); + setCommentRange(statement, property); + setOriginalNode(statement, property); + + // `setOriginalNode` *copies* the `emitNode` from `property`, so now both + // `statement` and `expression` have a copy of the synthesized comments. + // Drop the comments from expression to avoid printing them twice. + setSyntheticLeadingComments(expression, undefined); + setSyntheticTrailingComments(expression, undefined); + + return statement; + } + /** * Generates assignment expressions for property initializers. * diff --git a/src/compiler/transformers/declarations.ts b/src/compiler/transformers/declarations.ts index 6cea3b85055ee..bfbd4d4471259 100644 --- a/src/compiler/transformers/declarations.ts +++ b/src/compiler/transformers/declarations.ts @@ -58,7 +58,7 @@ namespace ts { let needsScopeFixMarker = false; let resultHasScopeMarker = false; let enclosingDeclaration: Node; - let necessaryTypeReferences: Set | undefined; + let necessaryTypeReferences: Set<[specifier: string, mode: SourceFile["impliedNodeFormat"] | undefined]> | undefined; let lateMarkedStatements: LateVisibilityPaintedStatement[] | undefined; let lateStatementReplacementMap: ESMap>; let suppressNewDiagnosticContexts: boolean; @@ -92,7 +92,7 @@ namespace ts { const { noResolve, stripInternal } = options; return transformRoot; - function recordTypeReferenceDirectivesIfNecessary(typeReferenceDirectives: readonly string[] | undefined): void { + function recordTypeReferenceDirectivesIfNecessary(typeReferenceDirectives: readonly [specifier: string, mode: SourceFile["impliedNodeFormat"] | undefined][] | undefined): void { if (!typeReferenceDirectives) { return; } @@ -296,7 +296,7 @@ namespace ts { const sourceFile = createUnparsedSourceFile(prepend, "dts", stripInternal); hasNoDefaultLib = hasNoDefaultLib || !!sourceFile.hasNoDefaultLib; collectReferences(sourceFile, refs); - recordTypeReferenceDirectivesIfNecessary(sourceFile.typeReferenceDirectives); + recordTypeReferenceDirectivesIfNecessary(map(sourceFile.typeReferenceDirectives, ref => [ref.fileName, ref.resolutionMode])); collectLibs(sourceFile, libs); return sourceFile; } @@ -354,10 +354,10 @@ namespace ts { } function getFileReferencesForUsedTypeReferences() { - return necessaryTypeReferences ? mapDefined(arrayFrom(necessaryTypeReferences.keys()), getFileReferenceForTypeName) : []; + return necessaryTypeReferences ? mapDefined(arrayFrom(necessaryTypeReferences.keys()), getFileReferenceForSpecifierModeTuple) : []; } - function getFileReferenceForTypeName(typeName: string): FileReference | undefined { + function getFileReferenceForSpecifierModeTuple([typeName, mode]: [specifier: string, mode: SourceFile["impliedNodeFormat"] | undefined]): FileReference | undefined { // Elide type references for which we have imports if (emittedImports) { for (const importStatement of emittedImports) { @@ -372,7 +372,7 @@ namespace ts { } } } - return { fileName: typeName, pos: -1, end: -1 }; + return { fileName: typeName, pos: -1, end: -1, ...(mode ? { resolutionMode: mode } : undefined) }; } function mapReferencesIntoArray(references: FileReference[], outputFilePath: string): (file: SourceFile) => void { @@ -399,7 +399,7 @@ namespace ts { // If some compiler option/symlink/whatever allows access to the file containing the ambient module declaration // via a non-relative name, emit a type reference directive to that non-relative name, rather than // a relative path to the declaration file - recordTypeReferenceDirectivesIfNecessary([specifier]); + recordTypeReferenceDirectivesIfNecessary([[specifier, /*mode*/ undefined]]); return; } @@ -733,7 +733,7 @@ namespace ts { decl.modifiers, decl.importClause, rewriteModuleSpecifier(decl, decl.moduleSpecifier), - /*assertClause*/ undefined + getResolutionModeOverrideForClause(decl.assertClause) ? decl.assertClause : undefined ); } // The `importClause` visibility corresponds to the default's visibility. @@ -745,7 +745,7 @@ namespace ts { decl.importClause.isTypeOnly, visibleDefaultBinding, /*namedBindings*/ undefined, - ), rewriteModuleSpecifier(decl, decl.moduleSpecifier), /*assertClause*/ undefined); + ), rewriteModuleSpecifier(decl, decl.moduleSpecifier), getResolutionModeOverrideForClause(decl.assertClause) ? decl.assertClause : undefined); } if (decl.importClause.namedBindings.kind === SyntaxKind.NamespaceImport) { // Namespace import (optionally with visible default) @@ -755,7 +755,7 @@ namespace ts { decl.importClause.isTypeOnly, visibleDefaultBinding, namedBindings, - ), rewriteModuleSpecifier(decl, decl.moduleSpecifier), /*assertClause*/ undefined) : undefined; + ), rewriteModuleSpecifier(decl, decl.moduleSpecifier), getResolutionModeOverrideForClause(decl.assertClause) ? decl.assertClause : undefined) : undefined; } // Named imports (optionally with visible default) const bindingList = mapDefined(decl.importClause.namedBindings.elements, b => resolver.isDeclarationVisible(b) ? b : undefined); @@ -771,7 +771,7 @@ namespace ts { bindingList && bindingList.length ? factory.updateNamedImports(decl.importClause.namedBindings, bindingList) : undefined, ), rewriteModuleSpecifier(decl, decl.moduleSpecifier), - /*assertClause*/ undefined + getResolutionModeOverrideForClause(decl.assertClause) ? decl.assertClause : undefined ); } // Augmentation of export depends on import @@ -782,7 +782,7 @@ namespace ts { decl.modifiers, /*importClause*/ undefined, rewriteModuleSpecifier(decl, decl.moduleSpecifier), - /*assertClause*/ undefined + getResolutionModeOverrideForClause(decl.assertClause) ? decl.assertClause : undefined ); } // Nothing visible @@ -878,7 +878,7 @@ namespace ts { } if (canProduceDiagnostic && !suppressNewDiagnosticContexts) { - getSymbolAccessibilityDiagnostic = createGetSymbolAccessibilityDiagnosticForNode(input as DeclarationDiagnosticProducing); + getSymbolAccessibilityDiagnostic = createGetSymbolAccessibilityDiagnosticForNode(input); } if (isTypeQueryNode(input)) { @@ -1029,7 +1029,7 @@ namespace ts { } case SyntaxKind.TypeParameter: { if (isPrivateMethodTypeParameter(input) && (input.default || input.constraint)) { - return cleanup(factory.updateTypeParameterDeclaration(input, input.name, /*constraint*/ undefined, /*defaultType*/ undefined)); + return cleanup(factory.updateTypeParameterDeclaration(input, input.modifiers, input.name, /*constraint*/ undefined, /*defaultType*/ undefined)); } return cleanup(visitEachChild(input, visitDeclarationSubtree, context)); } @@ -1056,6 +1056,7 @@ namespace ts { return cleanup(factory.updateImportTypeNode( input, factory.updateLiteralTypeNode(input.argument, rewriteModuleSpecifier(input, input.argument.literal)), + input.assertions, input.qualifier, visitNodes(input.typeArguments, visitDeclarationSubtree, isTypeNode), input.isTypeOf @@ -1073,7 +1074,7 @@ namespace ts { function cleanup(returnValue: T | undefined): T | undefined { if (returnValue && canProduceDiagnostic && hasDynamicName(input as Declaration)) { - checkName(input as DeclarationDiagnosticProducing); + checkName(input); } if (isEnclosingDeclaration(input)) { enclosingDeclaration = previousEnclosingDeclaration; @@ -1117,7 +1118,7 @@ namespace ts { input.isTypeOnly, input.exportClause, rewriteModuleSpecifier(input, input.moduleSpecifier), - /*assertClause*/ undefined + getResolutionModeOverrideForClause(input.assertClause) ? input.assertClause : undefined ); } case SyntaxKind.ExportAssignment: { @@ -1610,7 +1611,7 @@ namespace ts { } // Elide "public" modifier, as it is the default - function maskModifiers(node: Node, modifierMask?: ModifierFlags, modifierAdditions?: ModifierFlags): Modifier[] { + function maskModifiers(node: Node, modifierMask?: ModifierFlags, modifierAdditions?: ModifierFlags): Modifier[] | undefined { return factory.createModifiersFromModifierFlags(maskModifierFlags(node, modifierMask, modifierAdditions)); } diff --git a/src/compiler/transformers/es2015.ts b/src/compiler/transformers/es2015.ts index 3ad6ce006b034..36a0f29d109e3 100644 --- a/src/compiler/transformers/es2015.ts +++ b/src/compiler/transformers/es2015.ts @@ -1017,40 +1017,44 @@ namespace ts { const statements: Statement[] = []; resumeLexicalEnvironment(); + // In derived classes, there may be code before the necessary super() call + // We'll remove pre-super statements to be tacked on after the rest of the body + const existingPrologue = takeWhile(constructor.body.statements, isPrologueDirective); + const { superCall, superStatementIndex } = findSuperCallAndStatementIndex(constructor.body.statements, existingPrologue); + const postSuperStatementsStart = superStatementIndex === -1 ? existingPrologue.length : superStatementIndex + 1; + // If a super call has already been synthesized, // we're going to assume that we should just transform everything after that. // The assumption is that no prior step in the pipeline has added any prologue directives. - let statementOffset = 0; - if (!hasSynthesizedSuper) statementOffset = factory.copyStandardPrologue(constructor.body.statements, prologue, /*ensureUseStrict*/ false); - addDefaultValueAssignmentsIfNeeded(statements, constructor); - addRestParameterIfNeeded(statements, constructor, hasSynthesizedSuper); - if (!hasSynthesizedSuper) statementOffset = factory.copyCustomPrologue(constructor.body.statements, statements, statementOffset, visitor); + let statementOffset = postSuperStatementsStart; + if (!hasSynthesizedSuper) statementOffset = factory.copyStandardPrologue(constructor.body.statements, prologue, statementOffset, /*ensureUseStrict*/ false); + if (!hasSynthesizedSuper) statementOffset = factory.copyCustomPrologue(constructor.body.statements, statements, statementOffset, visitor, /*filter*/ undefined); - // If the first statement is a call to `super()`, visit the statement directly + // If there already exists a call to `super()`, visit the statement directly let superCallExpression: Expression | undefined; if (hasSynthesizedSuper) { superCallExpression = createDefaultSuperCallOrThis(); } - else if (isDerivedClass && statementOffset < constructor.body.statements.length) { - const firstStatement = constructor.body.statements[statementOffset]; - if (isExpressionStatement(firstStatement) && isSuperCall(firstStatement.expression)) { - superCallExpression = visitImmediateSuperCallInBody(firstStatement.expression); - } + else if (superCall) { + superCallExpression = visitSuperCallInBody(superCall); } if (superCallExpression) { hierarchyFacts |= HierarchyFacts.ConstructorWithCapturedSuper; - statementOffset++; // skip this statement, we will add it after visiting the rest of the body. } + // Add parameter defaults at the beginning of the output, with prologue statements + addDefaultValueAssignmentsIfNeeded(prologue, constructor); + addRestParameterIfNeeded(prologue, constructor, hasSynthesizedSuper); + // visit the remaining statements addRange(statements, visitNodes(constructor.body.statements, visitor, isStatement, /*start*/ statementOffset)); factory.mergeLexicalEnvironment(prologue, endLexicalEnvironment()); insertCaptureNewTargetIfNeeded(prologue, constructor, /*copyOnWrite*/ false); - if (isDerivedClass) { - if (superCallExpression && statementOffset === constructor.body.statements.length && !(constructor.body.transformFlags & TransformFlags.ContainsLexicalThis)) { + if (isDerivedClass || superCallExpression) { + if (superCallExpression && postSuperStatementsStart === constructor.body.statements.length && !(constructor.body.transformFlags & TransformFlags.ContainsLexicalThis)) { // If the subclass constructor does *not* contain `this` and *ends* with a `super()` call, we will use the // following representation: // @@ -1099,9 +1103,19 @@ namespace ts { // })(Base); // ``` - // Since the `super()` call was the first statement, we insert the `this` capturing call to - // `super()` at the top of the list of `statements` (after any pre-existing custom prologues). - insertCaptureThisForNode(statements, constructor, superCallExpression || createActualThis()); + // If the super() call is the first statement, we can directly create and assign its result to `_this` + if (superStatementIndex <= existingPrologue.length) { + insertCaptureThisForNode(statements, constructor, superCallExpression || createActualThis()); + } + // Since the `super()` call isn't the first statement, it's split across 1-2 statements: + // * A prologue `var _this = this;`, in case the constructor accesses this before super() + // * If it exists, a reassignment to that `_this` of the super() call + else { + insertCaptureThisForNode(prologue, constructor, createActualThis()); + if (superCallExpression) { + insertSuperThisCaptureThisForNode(statements, superCallExpression); + } + } if (!isSufficientlyCoveredByReturnStatements(constructor.body)) { statements.push(factory.createReturnStatement(factory.createUniqueName("_this", GeneratedIdentifierFlags.Optimistic | GeneratedIdentifierFlags.FileLevel))); @@ -1126,19 +1140,41 @@ namespace ts { insertCaptureThisForNodeIfNeeded(prologue, constructor); } - const block = factory.createBlock( + const body = factory.createBlock( setTextRange( factory.createNodeArray( - concatenate(prologue, statements) + [ + ...existingPrologue, + ...prologue, + ...(superStatementIndex <= existingPrologue.length ? emptyArray : visitNodes(constructor.body.statements, visitor, isStatement, existingPrologue.length, superStatementIndex)), + ...statements + ] ), /*location*/ constructor.body.statements ), /*multiLine*/ true ); - setTextRange(block, constructor.body); + setTextRange(body, constructor.body); + return body; + } - return block; + function findSuperCallAndStatementIndex(originalBodyStatements: NodeArray, existingPrologue: Statement[]) { + for (let i = existingPrologue.length; i < originalBodyStatements.length; i += 1) { + const superCall = getSuperCallFromStatement(originalBodyStatements[i]); + if (superCall) { + // With a super() call, split the statements into pre-super() and 'body' (post-super()) + return { + superCall, + superStatementIndex: i, + }; + } + } + + // Since there was no super() call found, consider all statements to be in the main 'body' (post-super()) + return { + superStatementIndex: -1, + }; } /** @@ -1511,6 +1547,25 @@ namespace ts { return false; } + /** + * Assigns the `this` in a constructor to the result of its `super()` call. + * + * @param statements Statements in the constructor body. + * @param superExpression Existing `super()` call for the constructor. + */ + function insertSuperThisCaptureThisForNode(statements: Statement[], superExpression: Expression): void { + enableSubstitutionsForCapturedThis(); + const assignSuperExpression = factory.createExpressionStatement( + factory.createBinaryExpression( + factory.createThis(), + SyntaxKind.EqualsToken, + superExpression + ) + ); + insertStatementAfterCustomPrologue(statements, assignSuperExpression); + setCommentRange(assignSuperExpression, getOriginalNode(superExpression).parent); + } + function insertCaptureThisForNode(statements: Statement[], node: Node, initializer: Expression | undefined): void { enableSubstitutionsForCapturedThis(); const captureThisStatement = factory.createVariableStatement( @@ -1919,7 +1974,7 @@ namespace ts { if (isBlock(body)) { // ensureUseStrict is false because no new prologue-directive should be added. // addStandardPrologue will put already-existing directives at the beginning of the target statement-array - statementOffset = factory.copyStandardPrologue(body.statements, prologue, /*ensureUseStrict*/ false); + statementOffset = factory.copyStandardPrologue(body.statements, prologue, 0, /*ensureUseStrict*/ false); statementOffset = factory.copyCustomPrologue(body.statements, statements, statementOffset, visitor, isHoistedFunction); statementOffset = factory.copyCustomPrologue(body.statements, statements, statementOffset, visitor, isHoistedVariableStatement); } @@ -2899,9 +2954,11 @@ namespace ts { // variables declared in the loop initializer that will be changed inside the loop const loopOutParameters: LoopOutParameter[] = []; if (loopInitializer && (getCombinedNodeFlags(loopInitializer) & NodeFlags.BlockScoped)) { - const hasCapturedBindingsInForInitializer = shouldConvertInitializerOfForStatement(node); + const hasCapturedBindingsInForHead = shouldConvertInitializerOfForStatement(node) || + shouldConvertConditionOfForStatement(node) || + shouldConvertIncrementorOfForStatement(node); for (const decl of loopInitializer.declarations) { - processLoopVariableDeclaration(node, decl, loopParameters, loopOutParameters, hasCapturedBindingsInForInitializer); + processLoopVariableDeclaration(node, decl, loopParameters, loopOutParameters, hasCapturedBindingsInForHead); } } @@ -3379,26 +3436,32 @@ namespace ts { }); } - function processLoopVariableDeclaration(container: IterationStatement, decl: VariableDeclaration | BindingElement, loopParameters: ParameterDeclaration[], loopOutParameters: LoopOutParameter[], hasCapturedBindingsInForInitializer: boolean) { + function processLoopVariableDeclaration(container: IterationStatement, decl: VariableDeclaration | BindingElement, loopParameters: ParameterDeclaration[], loopOutParameters: LoopOutParameter[], hasCapturedBindingsInForHead: boolean) { const name = decl.name; if (isBindingPattern(name)) { for (const element of name.elements) { if (!isOmittedExpression(element)) { - processLoopVariableDeclaration(container, element, loopParameters, loopOutParameters, hasCapturedBindingsInForInitializer); + processLoopVariableDeclaration(container, element, loopParameters, loopOutParameters, hasCapturedBindingsInForHead); } } } else { loopParameters.push(factory.createParameterDeclaration(/*decorators*/ undefined, /*modifiers*/ undefined, /*dotDotDotToken*/ undefined, name)); const checkFlags = resolver.getNodeCheckFlags(decl); - if (checkFlags & NodeCheckFlags.NeedsLoopOutParameter || hasCapturedBindingsInForInitializer) { + if (checkFlags & NodeCheckFlags.NeedsLoopOutParameter || hasCapturedBindingsInForHead) { const outParamName = factory.createUniqueName("out_" + idText(name)); let flags: LoopOutParameterFlags = 0; if (checkFlags & NodeCheckFlags.NeedsLoopOutParameter) { flags |= LoopOutParameterFlags.Body; } - if (isForStatement(container) && container.initializer && resolver.isBindingCapturedByNode(container.initializer, decl)) { - flags |= LoopOutParameterFlags.Initializer; + if (isForStatement(container)) { + if (container.initializer && resolver.isBindingCapturedByNode(container.initializer, decl)) { + flags |= LoopOutParameterFlags.Initializer; + } + if (container.condition && resolver.isBindingCapturedByNode(container.condition, decl) || + container.incrementor && resolver.isBindingCapturedByNode(container.incrementor, decl)) { + flags |= LoopOutParameterFlags.Body; + } } loopOutParameters.push({ flags, originalName: name, outParamName }); } @@ -3822,7 +3885,7 @@ namespace ts { ); } - function visitImmediateSuperCallInBody(node: CallExpression) { + function visitSuperCallInBody(node: CallExpression) { return visitCallExpressionWithPotentialCapturedThisAssignment(node, /*assignToCapturedThis*/ false); } diff --git a/src/compiler/transformers/es2017.ts b/src/compiler/transformers/es2017.ts index ade1d41b010c8..50c4fa62c0dcb 100644 --- a/src/compiler/transformers/es2017.ts +++ b/src/compiler/transformers/es2017.ts @@ -528,7 +528,7 @@ namespace ts { inHasLexicalThisContext(), hasLexicalArguments, promiseConstructor, - transformAsyncFunctionBodyWorker(node.body!) + transformAsyncFunctionBodyWorker(node.body) ); const declarations = endLexicalEnvironment(); diff --git a/src/compiler/transformers/es2018.ts b/src/compiler/transformers/es2018.ts index 846fd992ff21b..e3923c79d9fc3 100644 --- a/src/compiler/transformers/es2018.ts +++ b/src/compiler/transformers/es2018.ts @@ -59,6 +59,7 @@ namespace ts { let exportedVariableStatement = false; let enabledSubstitutions: ESNextSubstitutionFlags; let enclosingFunctionFlags: FunctionFlags; + let parametersWithPrecedingObjectRestOrSpread: Set | undefined; let enclosingSuperContainerFlags: NodeCheckFlags = 0; let hierarchyFacts: HierarchyFacts = 0; @@ -282,7 +283,7 @@ namespace ts { function visitYieldExpression(node: YieldExpression) { if (enclosingFunctionFlags & FunctionFlags.Async && enclosingFunctionFlags & FunctionFlags.Generator) { if (node.asteriskToken) { - const expression = visitNode(Debug.assertDefined(node.expression), visitor, isExpression); + const expression = visitNode(Debug.checkDefined(node.expression), visitor, isExpression); return setOriginalNode( setTextRange( @@ -721,6 +722,7 @@ namespace ts { ), EmitFlags.NoTokenTrailingSourceMaps ); + setOriginalNode(forStatement, node); return factory.createTryStatement( factory.createBlock([ @@ -785,7 +787,24 @@ namespace ts { ); } + function parameterVisitor(node: Node) { + Debug.assertNode(node, isParameter); + return visitParameter(node); + } + function visitParameter(node: ParameterDeclaration): ParameterDeclaration { + if (parametersWithPrecedingObjectRestOrSpread?.has(node)) { + return factory.updateParameterDeclaration( + node, + /*decorators*/ undefined, + /*modifiers*/ undefined, + node.dotDotDotToken, + isBindingPattern(node.name) ? factory.getGeneratedNameForNode(node) : node.name, + /*questionToken*/ undefined, + /*type*/ undefined, + /*initializer*/ undefined + ); + } if (node.transformFlags & TransformFlags.ContainsObjectRestOrSpread) { // Binding patterns are converted into a generated name and are // evaluated inside the function body. @@ -803,54 +822,78 @@ namespace ts { return visitEachChild(node, visitor, context); } + function collectParametersWithPrecedingObjectRestOrSpread(node: SignatureDeclaration) { + let parameters: Set | undefined; + for (const parameter of node.parameters) { + if (parameters) { + parameters.add(parameter); + } + else if (parameter.transformFlags & TransformFlags.ContainsObjectRestOrSpread) { + parameters = new Set(); + } + } + return parameters; + } + function visitConstructorDeclaration(node: ConstructorDeclaration) { const savedEnclosingFunctionFlags = enclosingFunctionFlags; - enclosingFunctionFlags = FunctionFlags.Normal; + const savedParametersWithPrecedingObjectRestOrSpread = parametersWithPrecedingObjectRestOrSpread; + enclosingFunctionFlags = getFunctionFlags(node); + parametersWithPrecedingObjectRestOrSpread = collectParametersWithPrecedingObjectRestOrSpread(node); const updated = factory.updateConstructorDeclaration( node, /*decorators*/ undefined, node.modifiers, - visitParameterList(node.parameters, visitor, context), + visitParameterList(node.parameters, parameterVisitor, context), transformFunctionBody(node) ); enclosingFunctionFlags = savedEnclosingFunctionFlags; + parametersWithPrecedingObjectRestOrSpread = savedParametersWithPrecedingObjectRestOrSpread; return updated; } function visitGetAccessorDeclaration(node: GetAccessorDeclaration) { const savedEnclosingFunctionFlags = enclosingFunctionFlags; - enclosingFunctionFlags = FunctionFlags.Normal; + const savedParametersWithPrecedingObjectRestOrSpread = parametersWithPrecedingObjectRestOrSpread; + enclosingFunctionFlags = getFunctionFlags(node); + parametersWithPrecedingObjectRestOrSpread = collectParametersWithPrecedingObjectRestOrSpread(node); const updated = factory.updateGetAccessorDeclaration( node, /*decorators*/ undefined, node.modifiers, visitNode(node.name, visitor, isPropertyName), - visitParameterList(node.parameters, visitor, context), + visitParameterList(node.parameters, parameterVisitor, context), /*type*/ undefined, transformFunctionBody(node) ); enclosingFunctionFlags = savedEnclosingFunctionFlags; + parametersWithPrecedingObjectRestOrSpread = savedParametersWithPrecedingObjectRestOrSpread; return updated; } function visitSetAccessorDeclaration(node: SetAccessorDeclaration) { const savedEnclosingFunctionFlags = enclosingFunctionFlags; - enclosingFunctionFlags = FunctionFlags.Normal; + const savedParametersWithPrecedingObjectRestOrSpread = parametersWithPrecedingObjectRestOrSpread; + enclosingFunctionFlags = getFunctionFlags(node); + parametersWithPrecedingObjectRestOrSpread = collectParametersWithPrecedingObjectRestOrSpread(node); const updated = factory.updateSetAccessorDeclaration( node, /*decorators*/ undefined, node.modifiers, visitNode(node.name, visitor, isPropertyName), - visitParameterList(node.parameters, visitor, context), + visitParameterList(node.parameters, parameterVisitor, context), transformFunctionBody(node) ); enclosingFunctionFlags = savedEnclosingFunctionFlags; + parametersWithPrecedingObjectRestOrSpread = savedParametersWithPrecedingObjectRestOrSpread; return updated; } function visitMethodDeclaration(node: MethodDeclaration) { const savedEnclosingFunctionFlags = enclosingFunctionFlags; + const savedParametersWithPrecedingObjectRestOrSpread = parametersWithPrecedingObjectRestOrSpread; enclosingFunctionFlags = getFunctionFlags(node); + parametersWithPrecedingObjectRestOrSpread = collectParametersWithPrecedingObjectRestOrSpread(node); const updated = factory.updateMethodDeclaration( node, /*decorators*/ undefined, @@ -863,19 +906,22 @@ namespace ts { visitNode(node.name, visitor, isPropertyName), visitNode>(/*questionToken*/ undefined, visitor, isToken), /*typeParameters*/ undefined, - visitParameterList(node.parameters, visitor, context), + visitParameterList(node.parameters, parameterVisitor, context), /*type*/ undefined, enclosingFunctionFlags & FunctionFlags.Async && enclosingFunctionFlags & FunctionFlags.Generator ? transformAsyncGeneratorFunctionBody(node) : transformFunctionBody(node) ); enclosingFunctionFlags = savedEnclosingFunctionFlags; + parametersWithPrecedingObjectRestOrSpread = savedParametersWithPrecedingObjectRestOrSpread; return updated; } function visitFunctionDeclaration(node: FunctionDeclaration) { const savedEnclosingFunctionFlags = enclosingFunctionFlags; + const savedParametersWithPrecedingObjectRestOrSpread = parametersWithPrecedingObjectRestOrSpread; enclosingFunctionFlags = getFunctionFlags(node); + parametersWithPrecedingObjectRestOrSpread = collectParametersWithPrecedingObjectRestOrSpread(node); const updated = factory.updateFunctionDeclaration( node, /*decorators*/ undefined, @@ -887,35 +933,41 @@ namespace ts { : node.asteriskToken, node.name, /*typeParameters*/ undefined, - visitParameterList(node.parameters, visitor, context), + visitParameterList(node.parameters, parameterVisitor, context), /*type*/ undefined, enclosingFunctionFlags & FunctionFlags.Async && enclosingFunctionFlags & FunctionFlags.Generator ? transformAsyncGeneratorFunctionBody(node) : transformFunctionBody(node) ); enclosingFunctionFlags = savedEnclosingFunctionFlags; + parametersWithPrecedingObjectRestOrSpread = savedParametersWithPrecedingObjectRestOrSpread; return updated; } function visitArrowFunction(node: ArrowFunction) { const savedEnclosingFunctionFlags = enclosingFunctionFlags; + const savedParametersWithPrecedingObjectRestOrSpread = parametersWithPrecedingObjectRestOrSpread; enclosingFunctionFlags = getFunctionFlags(node); + parametersWithPrecedingObjectRestOrSpread = collectParametersWithPrecedingObjectRestOrSpread(node); const updated = factory.updateArrowFunction( node, node.modifiers, /*typeParameters*/ undefined, - visitParameterList(node.parameters, visitor, context), + visitParameterList(node.parameters, parameterVisitor, context), /*type*/ undefined, node.equalsGreaterThanToken, transformFunctionBody(node), ); enclosingFunctionFlags = savedEnclosingFunctionFlags; + parametersWithPrecedingObjectRestOrSpread = savedParametersWithPrecedingObjectRestOrSpread; return updated; } function visitFunctionExpression(node: FunctionExpression) { const savedEnclosingFunctionFlags = enclosingFunctionFlags; + const savedParametersWithPrecedingObjectRestOrSpread = parametersWithPrecedingObjectRestOrSpread; enclosingFunctionFlags = getFunctionFlags(node); + parametersWithPrecedingObjectRestOrSpread = collectParametersWithPrecedingObjectRestOrSpread(node); const updated = factory.updateFunctionExpression( node, enclosingFunctionFlags & FunctionFlags.Generator @@ -926,13 +978,14 @@ namespace ts { : node.asteriskToken, node.name, /*typeParameters*/ undefined, - visitParameterList(node.parameters, visitor, context), + visitParameterList(node.parameters, parameterVisitor, context), /*type*/ undefined, enclosingFunctionFlags & FunctionFlags.Async && enclosingFunctionFlags & FunctionFlags.Generator ? transformAsyncGeneratorFunctionBody(node) : transformFunctionBody(node) ); enclosingFunctionFlags = savedEnclosingFunctionFlags; + parametersWithPrecedingObjectRestOrSpread = savedParametersWithPrecedingObjectRestOrSpread; return updated; } @@ -1007,6 +1060,7 @@ namespace ts { statementOffset = factory.copyPrologue(body.statements, statements, /*ensureUseStrict*/ false, visitor); } addRange(statements, appendObjectRestAssignmentsIfNeeded(/*statements*/ undefined, node)); + const leadingStatements = endLexicalEnvironment(); if (statementOffset > 0 || some(statements) || some(leadingStatements)) { const block = factory.converters.convertToFunctionBlock(body, /*multiLine*/ true); @@ -1018,25 +1072,86 @@ namespace ts { } function appendObjectRestAssignmentsIfNeeded(statements: Statement[] | undefined, node: FunctionLikeDeclaration): Statement[] | undefined { + let containsPrecedingObjectRestOrSpread = false; for (const parameter of node.parameters) { - if (parameter.transformFlags & TransformFlags.ContainsObjectRestOrSpread) { - const temp = factory.getGeneratedNameForNode(parameter); + if (containsPrecedingObjectRestOrSpread) { + if (isBindingPattern(parameter.name)) { + // In cases where a binding pattern is simply '[]' or '{}', + // we usually don't want to emit a var declaration; however, in the presence + // of an initializer, we must emit that expression to preserve side effects. + // + // NOTE: see `insertDefaultValueAssignmentForBindingPattern` in es2015.ts + if (parameter.name.elements.length > 0) { + const declarations = flattenDestructuringBinding( + parameter, + visitor, + context, + FlattenLevel.All, + factory.getGeneratedNameForNode(parameter)); + if (some(declarations)) { + const declarationList = factory.createVariableDeclarationList(declarations); + const statement = factory.createVariableStatement(/*modifiers*/ undefined, declarationList); + setEmitFlags(statement, EmitFlags.CustomPrologue); + statements = append(statements, statement); + } + } + else if (parameter.initializer) { + const name = factory.getGeneratedNameForNode(parameter); + const initializer = visitNode(parameter.initializer, visitor, isExpression); + const assignment = factory.createAssignment(name, initializer); + const statement = factory.createExpressionStatement(assignment); + setEmitFlags(statement, EmitFlags.CustomPrologue); + statements = append(statements, statement); + } + } + else if (parameter.initializer) { + // Converts a parameter initializer into a function body statement, i.e.: + // + // function f(x = 1) { } + // + // becomes + // + // function f(x) { + // if (typeof x === "undefined") { x = 1; } + // } + + const name = factory.cloneNode(parameter.name); + setTextRange(name, parameter.name); + setEmitFlags(name, EmitFlags.NoSourceMap); + + const initializer = visitNode(parameter.initializer, visitor, isExpression); + addEmitFlags(initializer, EmitFlags.NoSourceMap | EmitFlags.NoComments); + + const assignment = factory.createAssignment(name, initializer); + setTextRange(assignment, parameter); + setEmitFlags(assignment, EmitFlags.NoComments); + + const block = factory.createBlock([factory.createExpressionStatement(assignment)]); + setTextRange(block, parameter); + setEmitFlags(block, EmitFlags.SingleLine | EmitFlags.NoTrailingSourceMap | EmitFlags.NoTokenSourceMaps | EmitFlags.NoComments); + + const typeCheck = factory.createTypeCheck(factory.cloneNode(parameter.name), "undefined"); + const statement = factory.createIfStatement(typeCheck, block); + startOnNewLine(statement); + setTextRange(statement, parameter); + setEmitFlags(statement, EmitFlags.NoTokenSourceMaps | EmitFlags.NoTrailingSourceMap | EmitFlags.CustomPrologue | EmitFlags.NoComments); + statements = append(statements, statement); + } + } + else if (parameter.transformFlags & TransformFlags.ContainsObjectRestOrSpread) { + containsPrecedingObjectRestOrSpread = true; const declarations = flattenDestructuringBinding( parameter, visitor, context, FlattenLevel.ObjectRest, - temp, + factory.getGeneratedNameForNode(parameter), /*doNotRecordTempVariablesInLine*/ false, /*skipInitializer*/ true, ); if (some(declarations)) { - const statement = factory.createVariableStatement( - /*modifiers*/ undefined, - factory.createVariableDeclarationList( - declarations - ) - ); + const declarationList = factory.createVariableDeclarationList(declarations); + const statement = factory.createVariableStatement(/*modifiers*/ undefined, declarationList); setEmitFlags(statement, EmitFlags.CustomPrologue); statements = append(statements, statement); } diff --git a/src/compiler/transformers/es2020.ts b/src/compiler/transformers/es2020.ts index 5e2311a2d27db..328cc2376d6f3 100644 --- a/src/compiler/transformers/es2020.ts +++ b/src/compiler/transformers/es2020.ts @@ -122,11 +122,11 @@ namespace ts { function visitOptionalExpression(node: OptionalChain, captureThisArg: boolean, isDelete: boolean): Expression { const { expression, chain } = flattenChain(node); - const left = visitNonOptionalExpression(expression, isCallChain(chain[0]), /*isDelete*/ false); - const leftThisArg = isSyntheticReference(left) ? left.thisArg : undefined; - let leftExpression = isSyntheticReference(left) ? left.expression : left; - let capturedLeft: Expression = leftExpression; - if (!isSimpleCopiableExpression(leftExpression)) { + const left = visitNonOptionalExpression(skipPartiallyEmittedExpressions(expression), isCallChain(chain[0]), /*isDelete*/ false); + let leftThisArg = isSyntheticReference(left) ? left.thisArg : undefined; + let capturedLeft = isSyntheticReference(left) ? left.expression : left; + let leftExpression = factory.restoreOuterExpressions(expression, capturedLeft, OuterExpressionKinds.PartiallyEmittedExpressions); + if (!isSimpleCopiableExpression(capturedLeft)) { capturedLeft = factory.createTempVariable(hoistVariableDeclaration); leftExpression = factory.createAssignment(capturedLeft, leftExpression); } @@ -152,6 +152,10 @@ namespace ts { break; case SyntaxKind.CallExpression: if (i === 0 && leftThisArg) { + if (!isGeneratedIdentifier(leftThisArg)) { + leftThisArg = factory.cloneNode(leftThisArg); + addEmitFlags(leftThisArg, EmitFlags.NoComments); + } rightExpression = factory.createFunctionCallCall( rightExpression, leftThisArg.kind === SyntaxKind.SuperKeyword ? factory.createThis() : leftThisArg, diff --git a/src/compiler/transformers/jsx.ts b/src/compiler/transformers/jsx.ts index 166a91dfa69b8..d321e74817bd4 100644 --- a/src/compiler/transformers/jsx.ts +++ b/src/compiler/transformers/jsx.ts @@ -26,12 +26,12 @@ namespace ts { return currentFileState.filenameDeclaration.name; } - function getJsxFactoryCalleePrimitive(childrenLength: number): "jsx" | "jsxs" | "jsxDEV" { - return compilerOptions.jsx === JsxEmit.ReactJSXDev ? "jsxDEV" : childrenLength > 1 ? "jsxs" : "jsx"; + function getJsxFactoryCalleePrimitive(isStaticChildren: boolean): "jsx" | "jsxs" | "jsxDEV" { + return compilerOptions.jsx === JsxEmit.ReactJSXDev ? "jsxDEV" : isStaticChildren ? "jsxs" : "jsx"; } - function getJsxFactoryCallee(childrenLength: number) { - const type = getJsxFactoryCalleePrimitive(childrenLength); + function getJsxFactoryCallee(isStaticChildren: boolean) { + const type = getJsxFactoryCalleePrimitive(isStaticChildren); return getImplicitImportForName(type); } @@ -48,11 +48,11 @@ namespace ts { return existing.name; } if (!currentFileState.utilizedImplicitRuntimeImports) { - currentFileState.utilizedImplicitRuntimeImports = createMap(); + currentFileState.utilizedImplicitRuntimeImports = new Map(); } let specifierSourceImports = currentFileState.utilizedImplicitRuntimeImports.get(importSource); if (!specifierSourceImports) { - specifierSourceImports = createMap(); + specifierSourceImports = new Map(); currentFileState.utilizedImplicitRuntimeImports.set(importSource, specifierSourceImports); } const generatedName = factory.createUniqueName(`_${name}`, GeneratedIdentifierFlags.Optimistic | GeneratedIdentifierFlags.FileLevel | GeneratedIdentifierFlags.AllowNameSubstitution); @@ -206,7 +206,7 @@ namespace ts { function convertJsxChildrenToChildrenPropAssignment(children: readonly JsxChild[]) { const nonWhitespaceChildren = getSemanticJsxChildren(children); - if (length(nonWhitespaceChildren) === 1) { + if (length(nonWhitespaceChildren) === 1 && !(nonWhitespaceChildren[0] as JsxExpression).dotDotDotToken) { const result = transformJsxChildToExpression(nonWhitespaceChildren[0]); return result && factory.createPropertyAssignment("children", result); } @@ -221,16 +221,42 @@ namespace ts { const attrs = keyAttr ? filter(node.attributes.properties, p => p !== keyAttr) : node.attributes.properties; const objectProperties = length(attrs) ? transformJsxAttributesToObjectProps(attrs, childrenProp) : factory.createObjectLiteralExpression(childrenProp ? [childrenProp] : emptyArray); // When there are no attributes, React wants {} - return visitJsxOpeningLikeElementOrFragmentJSX(tagName, objectProperties, keyAttr, length(getSemanticJsxChildren(children || emptyArray)), isChild, location); + return visitJsxOpeningLikeElementOrFragmentJSX( + tagName, + objectProperties, + keyAttr, + children || emptyArray, + isChild, + location + ); } - function visitJsxOpeningLikeElementOrFragmentJSX(tagName: Expression, objectProperties: Expression, keyAttr: JsxAttribute | undefined, childrenLength: number, isChild: boolean, location: TextRange) { - const args: Expression[] = [tagName, objectProperties, !keyAttr ? factory.createVoidZero() : transformJsxAttributeInitializer(keyAttr.initializer)]; + function visitJsxOpeningLikeElementOrFragmentJSX( + tagName: Expression, + objectProperties: Expression, + keyAttr: JsxAttribute | undefined, + children: readonly JsxChild[], + isChild: boolean, + location: TextRange + ) { + const nonWhitespaceChildren = getSemanticJsxChildren(children); + const isStaticChildren = + length(nonWhitespaceChildren) > 1 || !!(nonWhitespaceChildren[0] as JsxExpression)?.dotDotDotToken; + const args: Expression[] = [tagName, objectProperties]; + // function jsx(type, config, maybeKey) {} + // "maybeKey" is optional. It is acceptable to use "_jsx" without a third argument + if (keyAttr) { + args.push(transformJsxAttributeInitializer(keyAttr.initializer)); + } if (compilerOptions.jsx === JsxEmit.ReactJSXDev) { const originalFile = getOriginalNode(currentSourceFile); if (originalFile && isSourceFile(originalFile)) { + // "maybeKey" has to be replaced with "void 0" to not break the jsxDEV signature + if (keyAttr === undefined) { + args.push(factory.createVoidZero()); + } // isStaticChildren development flag - args.push(childrenLength > 1 ? factory.createTrue() : factory.createFalse()); + args.push(isStaticChildren ? factory.createTrue() : factory.createFalse()); // __source development flag const lineCol = getLineAndCharacterOfPosition(originalFile, location.pos); args.push(factory.createObjectLiteralExpression([ @@ -242,7 +268,11 @@ namespace ts { args.push(factory.createThis()); } } - const element = setTextRange(factory.createCallExpression(getJsxFactoryCallee(childrenLength), /*typeArguments*/ undefined, args), location); + + const element = setTextRange( + factory.createCallExpression(getJsxFactoryCallee(isStaticChildren), /*typeArguments*/ undefined, args), + location + ); if (isChild) { startOnNewLine(element); @@ -294,7 +324,7 @@ namespace ts { getImplicitJsxFragmentReference(), childrenProps || factory.createObjectLiteralExpression([]), /*keyAttr*/ undefined, - length(getSemanticJsxChildren(children)), + children, isChild, location ); diff --git a/src/compiler/transformers/module/module.ts b/src/compiler/transformers/module/module.ts index 9c88471640956..2b4978306e88a 100644 --- a/src/compiler/transformers/module/module.ts +++ b/src/compiler/transformers/module/module.ts @@ -1853,7 +1853,7 @@ namespace ts { if (isIdentifier(node.expression)) { const expression = substituteExpressionIdentifier(node.expression); noSubstitution[getNodeId(expression)] = true; - if (!isIdentifier(expression)) { + if (!isIdentifier(expression) && !(getEmitFlags(node.expression) & EmitFlags.HelperName)) { return addEmitFlags( factory.updateCallExpression(node, expression, @@ -1872,7 +1872,7 @@ namespace ts { if (isIdentifier(node.tag)) { const tag = substituteExpressionIdentifier(node.tag); noSubstitution[getNodeId(tag)] = true; - if (!isIdentifier(tag)) { + if (!isIdentifier(tag) && !(getEmitFlags(node.tag) & EmitFlags.HelperName)) { return addEmitFlags( factory.updateTaggedTemplateExpression(node, tag, diff --git a/src/compiler/transformers/ts.ts b/src/compiler/transformers/ts.ts index 8561db1c633ef..994601a426563 100644 --- a/src/compiler/transformers/ts.ts +++ b/src/compiler/transformers/ts.ts @@ -373,6 +373,8 @@ namespace ts { case SyntaxKind.ConstKeyword: case SyntaxKind.DeclareKeyword: case SyntaxKind.ReadonlyKeyword: + case SyntaxKind.InKeyword: + case SyntaxKind.OutKeyword: // TypeScript accessibility and readonly modifiers are elided // falls through case SyntaxKind.ArrayType: @@ -1189,7 +1191,7 @@ namespace ts { // const prefix = getClassMemberPrefix(node, member); - const memberName = getExpressionForPropertyName(member, /*generateNameForComputedPropertyName*/ true); + const memberName = getExpressionForPropertyName(member, /*generateNameForComputedPropertyName*/ !hasSyntacticModifier(member, ModifierFlags.Ambient)); const descriptor = languageVersion > ScriptTarget.ES3 ? member.kind === SyntaxKind.PropertyDeclaration // We emit `void 0` here to indicate to `__decorate` that it can invoke `Object.defineProperty` directly, but that it @@ -1511,6 +1513,7 @@ namespace ts { case SyntaxKind.BooleanKeyword: return factory.createIdentifier("Boolean"); + case SyntaxKind.TemplateLiteralType: case SyntaxKind.StringKeyword: return factory.createIdentifier("String"); @@ -1932,13 +1935,21 @@ namespace ts { } let statements: Statement[] = []; - let indexOfFirstStatement = 0; resumeLexicalEnvironment(); - indexOfFirstStatement = addPrologueDirectivesAndInitialSuperCall(factory, constructor, statements, visitor); + const indexAfterLastPrologueStatement = factory.copyPrologue(body.statements, statements, /*ensureUseStrict*/ false, visitor); + const superStatementIndex = findSuperStatementIndex(body.statements, indexAfterLastPrologueStatement); - // Add parameters with property assignments. Transforms this: + // If there was a super call, visit existing statements up to and including it + if (superStatementIndex >= 0) { + addRange( + statements, + visitNodes(body.statements, visitor, isStatement, indexAfterLastPrologueStatement, superStatementIndex + 1 - indexAfterLastPrologueStatement), + ); + } + + // Transform parameters into property assignments. Transforms this: // // constructor (public x, public y) { // } @@ -1950,10 +1961,19 @@ namespace ts { // this.y = y; // } // - addRange(statements, map(parametersWithPropertyAssignments, transformParameterWithPropertyAssignment)); + const parameterPropertyAssignments = mapDefined(parametersWithPropertyAssignments, transformParameterWithPropertyAssignment); + + // If there is a super() call, the parameter properties go immediately after it + if (superStatementIndex >= 0) { + addRange(statements, parameterPropertyAssignments); + } + // Since there was no super() call, parameter properties are the first statements in the constructor + else { + statements = addRange(parameterPropertyAssignments, statements); + } - // Add the existing statements, skipping the initial super call. - addRange(statements, visitNodes(body.statements, visitor, isStatement, indexOfFirstStatement)); + // Add remaining statements from the body, skipping the super() call if it was found + addRange(statements, visitNodes(body.statements, visitor, isStatement, superStatementIndex + 1)); // End the lexical environment. statements = factory.mergeLexicalEnvironment(statements, endLexicalEnvironment()); @@ -2209,12 +2229,16 @@ namespace ts { } function visitVariableDeclaration(node: VariableDeclaration) { - return factory.updateVariableDeclaration( + const updated = factory.updateVariableDeclaration( node, visitNode(node.name, visitor, isBindingName), /*exclamationToken*/ undefined, /*type*/ undefined, visitNode(node.initializer, visitor, isExpression)); + if (node.type) { + setTypeNode(updated.name, node.type); + } + return updated; } function visitParenthesizedExpression(node: ParenthesizedExpression): Expression { @@ -2237,11 +2261,10 @@ namespace ts { // we can safely elide the parentheses here, as a new synthetic // ParenthesizedExpression will be inserted if we remove parentheses too // aggressively. - // HOWEVER - if there are leading comments on the expression itself, to handle ASI - // correctly for return and throw, we must keep the parenthesis - if (length(getLeadingCommentRangesOfNode(expression, currentSourceFile))) { - return factory.updateParenthesizedExpression(node, expression); - } + // + // If there are leading comments on the expression itself, the emitter will handle ASI + // for return, throw, and yield by re-introducing parenthesis during emit on an as-need + // basis. return factory.createPartiallyEmittedExpression(expression, node); } @@ -3334,6 +3357,10 @@ namespace ts { return substituteConstantValue(node); } + function safeMultiLineComment(value: string): string { + return value.replace(/\*\//g, "*_/"); + } + function substituteConstantValue(node: PropertyAccessExpression | ElementAccessExpression): LeftHandSideExpression { const constantValue = tryGetConstEnumValue(node); if (constantValue !== undefined) { @@ -3343,13 +3370,9 @@ namespace ts { const substitute = typeof constantValue === "string" ? factory.createStringLiteral(constantValue) : factory.createNumericLiteral(constantValue); if (!compilerOptions.removeComments) { const originalNode = getOriginalNode(node, isAccessExpression); - const propertyName = isPropertyAccessExpression(originalNode) - ? declarationNameToString(originalNode.name) - : getTextOfNode(originalNode.argumentExpression); - addSyntheticTrailingComment(substitute, SyntaxKind.MultiLineCommentTrivia, ` ${propertyName} `); + addSyntheticTrailingComment(substitute, SyntaxKind.MultiLineCommentTrivia, ` ${safeMultiLineComment(getTextOfNode(originalNode))} `); } - return substitute; } diff --git a/src/compiler/transformers/utilities.ts b/src/compiler/transformers/utilities.ts index 276d034c7b92c..7a714befd8291 100644 --- a/src/compiler/transformers/utilities.ts +++ b/src/compiler/transformers/utilities.ts @@ -299,35 +299,32 @@ namespace ts { } /** - * Adds super call and preceding prologue directives into the list of statements. - * - * @param ctor The constructor node. - * @param result The list of statements. - * @param visitor The visitor to apply to each node added to the result array. - * @returns index of the statement that follows super call + * @returns Contained super() call from descending into the statement ignoring parentheses, if that call exists. */ - export function addPrologueDirectivesAndInitialSuperCall(factory: NodeFactory, ctor: ConstructorDeclaration, result: Statement[], visitor: Visitor): number { - if (ctor.body) { - const statements = ctor.body.statements; - // add prologue directives to the list (if any) - const index = factory.copyPrologue(statements, result, /*ensureUseStrict*/ false, visitor); - if (index === statements.length) { - // list contains nothing but prologue directives (or empty) - exit - return index; - } + export function getSuperCallFromStatement(statement: Statement) { + if (!isExpressionStatement(statement)) { + return undefined; + } - const superIndex = findIndex(statements, s => isExpressionStatement(s) && isSuperCall(s.expression), index); - if (superIndex > -1) { - for (let i = index; i <= superIndex; i++) { - result.push(visitNode(statements[i], visitor, isStatement)); - } - return superIndex + 1; - } + const expression = skipParentheses(statement.expression); + return isSuperCall(expression) + ? expression + : undefined; + } - return index; + /** + * @returns The index (after prologue statements) of a super call, or -1 if not found. + */ + export function findSuperStatementIndex(statements: NodeArray, indexAfterLastPrologueStatement: number) { + for (let i = indexAfterLastPrologueStatement; i < statements.length; i += 1) { + const statement = statements[i]; + + if (getSuperCallFromStatement(statement)) { + return i; + } } - return 0; + return -1; } /** diff --git a/src/compiler/tsbuildPublic.ts b/src/compiler/tsbuildPublic.ts index ae3fd3be20d2a..ad9f97f2dd8ab 100644 --- a/src/compiler/tsbuildPublic.ts +++ b/src/compiler/tsbuildPublic.ts @@ -76,7 +76,12 @@ namespace ts { return fileExtensionIs(fileName, Extension.Dts); } - export type ReportEmitErrorSummary = (errorCount: number) => void; + export type ReportEmitErrorSummary = (errorCount: number, filesInError: (ReportFileInError | undefined)[]) => void; + + export interface ReportFileInError { + fileName: string; + line: number; + } export interface SolutionBuilderHostBase extends ProgramHost { createDirectory?(path: string): void; @@ -287,9 +292,9 @@ namespace ts { compilerHost.getModuleResolutionCache = () => moduleResolutionCache; } if (!compilerHost.resolveTypeReferenceDirectives) { - const loader = (moduleName: string, containingFile: string, redirectedReference: ResolvedProjectReference | undefined) => resolveTypeReferenceDirective(moduleName, containingFile, state.projectCompilerOptions, compilerHost, redirectedReference, state.typeReferenceDirectiveResolutionCache).resolvedTypeReferenceDirective!; - compilerHost.resolveTypeReferenceDirectives = (typeReferenceDirectiveNames, containingFile, redirectedReference) => - loadWithLocalCache(Debug.checkEachDefined(typeReferenceDirectiveNames), containingFile, redirectedReference, loader); + const loader = (moduleName: string, containingFile: string, redirectedReference: ResolvedProjectReference | undefined, containingFileMode: SourceFile["impliedNodeFormat"] | undefined) => resolveTypeReferenceDirective(moduleName, containingFile, state.projectCompilerOptions, compilerHost, redirectedReference, state.typeReferenceDirectiveResolutionCache, containingFileMode).resolvedTypeReferenceDirective!; + compilerHost.resolveTypeReferenceDirectives = (typeReferenceDirectiveNames, containingFile, redirectedReference, _options, containingFileMode) => + loadWithTypeDirectiveCache(Debug.checkEachDefined(typeReferenceDirectiveNames), containingFile, redirectedReference, containingFileMode, loader); } const { watchFile, watchDirectory, writeLog } = createWatchFactory(hostWithWatch, options); @@ -2003,10 +2008,12 @@ namespace ts { const canReportSummary = state.watch || !!state.host.reportErrorSummary; const { diagnostics } = state; let totalErrors = 0; + let filesInError: (ReportFileInError | undefined)[] = []; if (isCircularBuildOrder(buildOrder)) { reportBuildQueue(state, buildOrder.buildOrder); reportErrors(state, buildOrder.circularDiagnostics); if (canReportSummary) totalErrors += getErrorCountForSummary(buildOrder.circularDiagnostics); + if (canReportSummary) filesInError = [...filesInError, ...getFilesInErrorForSummary(buildOrder.circularDiagnostics)]; } else { // Report errors from the other projects @@ -2017,13 +2024,14 @@ namespace ts { } }); if (canReportSummary) diagnostics.forEach(singleProjectErrors => totalErrors += getErrorCountForSummary(singleProjectErrors)); + if (canReportSummary) diagnostics.forEach(singleProjectErrors => [...filesInError, ...getFilesInErrorForSummary(singleProjectErrors)]); } if (state.watch) { reportWatchStatus(state, getWatchErrorSummaryDiagnosticMessage(totalErrors), totalErrors); } else if (state.host.reportErrorSummary) { - state.host.reportErrorSummary(totalErrors); + state.host.reportErrorSummary(totalErrors, filesInError); } } diff --git a/src/compiler/types.ts b/src/compiler/types.ts index 87890bc8959dd..6821866eea174 100644 --- a/src/compiler/types.ts +++ b/src/compiler/types.ts @@ -176,6 +176,7 @@ namespace ts { ModuleKeyword, NamespaceKeyword, NeverKeyword, + OutKeyword, ReadonlyKeyword, RequireKeyword, NumberKeyword, @@ -344,6 +345,7 @@ namespace ts { CatchClause, AssertClause, AssertEntry, + ImportTypeAssertionContainer, // Property assignments PropertyAssignment, @@ -377,6 +379,7 @@ namespace ts { JSDocFunctionType, JSDocVariadicType, JSDocNamepathType, // https://jsdoc.app/about-namepaths.html + /** @deprecated Use SyntaxKind.JSDoc */ JSDocComment, JSDocText, JSDocTypeLiteral, @@ -454,6 +457,7 @@ namespace ts { LastJSDocTagNode = JSDocPropertyTag, /* @internal */ FirstContextualKeyword = AbstractKeyword, /* @internal */ LastContextualKeyword = OfKeyword, + JSDoc = JSDocComment, } export type TriviaSyntaxKind = @@ -599,6 +603,7 @@ namespace ts { | SyntaxKind.ProtectedKeyword | SyntaxKind.PublicKeyword | SyntaxKind.ReadonlyKeyword + | SyntaxKind.OutKeyword | SyntaxKind.OverrideKeyword | SyntaxKind.RequireKeyword | SyntaxKind.ReturnKeyword @@ -631,10 +636,12 @@ namespace ts { | SyntaxKind.DeclareKeyword | SyntaxKind.DefaultKeyword | SyntaxKind.ExportKeyword + | SyntaxKind.InKeyword | SyntaxKind.PrivateKeyword | SyntaxKind.ProtectedKeyword | SyntaxKind.PublicKeyword | SyntaxKind.ReadonlyKeyword + | SyntaxKind.OutKeyword | SyntaxKind.OverrideKeyword | SyntaxKind.StaticKeyword ; @@ -814,6 +821,8 @@ namespace ts { Deprecated = 1 << 13, // Deprecated tag. Override = 1 << 14, // Override method. + In = 1 << 15, // Contravariance modifier + Out = 1 << 16, // Covariance modifier HasComputedFlags = 1 << 29, // Modifier flags have been computed AccessibilityModifier = Public | Private | Protected, @@ -821,9 +830,9 @@ namespace ts { ParameterPropertyModifier = AccessibilityModifier | Readonly | Override, NonPublicAccessibilityModifier = Private | Protected, - TypeScriptModifier = Ambient | Public | Private | Protected | Readonly | Abstract | Const | Override, + TypeScriptModifier = Ambient | Public | Private | Protected | Readonly | Abstract | Const | Override | In | Out, ExportDefault = Export | Default, - All = Export | Ambient | Public | Private | Protected | Static | Readonly | Abstract | Async | Default | Const | Deprecated | Override + All = Export | Ambient | Public | Private | Protected | Static | Readonly | Abstract | Async | Default | Const | Deprecated | Override | In | Out } export const enum JsxFlags { @@ -929,6 +938,8 @@ namespace ts { | JSDocFunctionType | ExportDeclaration | NamedTupleMember + | ExportSpecifier + | CaseClause | EndOfFileToken ; @@ -1061,10 +1072,12 @@ namespace ts { export type DeclareKeyword = ModifierToken; export type DefaultKeyword = ModifierToken; export type ExportKeyword = ModifierToken; + export type InKeyword = ModifierToken; export type PrivateKeyword = ModifierToken; export type ProtectedKeyword = ModifierToken; export type PublicKeyword = ModifierToken; export type ReadonlyKeyword = ModifierToken; + export type OutKeyword = ModifierToken; export type OverrideKeyword = ModifierToken; export type StaticKeyword = ModifierToken; @@ -1078,9 +1091,11 @@ namespace ts { | DeclareKeyword | DefaultKeyword | ExportKeyword + | InKeyword | PrivateKeyword | ProtectedKeyword | PublicKeyword + | OutKeyword | OverrideKeyword | ReadonlyKeyword | StaticKeyword @@ -1566,10 +1581,18 @@ namespace ts { readonly kind: TKind; } + export interface ImportTypeAssertionContainer extends Node { + readonly kind: SyntaxKind.ImportTypeAssertionContainer; + readonly parent: ImportTypeNode; + readonly assertClause: AssertClause; + readonly multiLine?: boolean; + } + export interface ImportTypeNode extends NodeWithTypeArguments { readonly kind: SyntaxKind.ImportType; readonly isTypeOf: boolean; readonly argument: TypeNode; + readonly assertions?: ImportTypeAssertionContainer; readonly qualifier?: EntityName; } @@ -1609,12 +1632,12 @@ namespace ts { export interface TypePredicateNode extends TypeNode { readonly kind: SyntaxKind.TypePredicate; readonly parent: SignatureDeclaration | JSDocTypeExpression; - readonly assertsModifier?: AssertsToken; + readonly assertsModifier?: AssertsKeyword; readonly parameterName: Identifier | ThisTypeNode; readonly type?: TypeNode; } - export interface TypeQueryNode extends TypeNode { + export interface TypeQueryNode extends NodeWithTypeArguments { readonly kind: SyntaxKind.TypeQuery; readonly exprName: EntityName; } @@ -1702,7 +1725,7 @@ namespace ts { export interface MappedTypeNode extends TypeNode, Declaration { readonly kind: SyntaxKind.MappedType; - readonly readonlyToken?: ReadonlyToken | PlusToken | MinusToken; + readonly readonlyToken?: ReadonlyKeyword | PlusToken | MinusToken; readonly typeParameter: TypeParameterDeclaration; readonly nameType?: TypeNode; readonly questionToken?: QuestionToken | PlusToken | MinusToken; @@ -2444,9 +2467,8 @@ namespace ts { readonly expression: ImportExpression; } - export interface ExpressionWithTypeArguments extends NodeWithTypeArguments { + export interface ExpressionWithTypeArguments extends MemberExpression, NodeWithTypeArguments { readonly kind: SyntaxKind.ExpressionWithTypeArguments; - readonly parent: HeritageClause | JSDocAugmentsTag | JSDocImplementsTag; readonly expression: LeftHandSideExpression; } @@ -2756,7 +2778,7 @@ namespace ts { export interface ForOfStatement extends IterationStatement { readonly kind: SyntaxKind.ForOfStatement; - readonly awaitModifier?: AwaitKeywordToken; + readonly awaitModifier?: AwaitKeyword; readonly initializer: ForInitializer; readonly expression: Expression; } @@ -2800,7 +2822,7 @@ namespace ts { readonly clauses: NodeArray; } - export interface CaseClause extends Node { + export interface CaseClause extends Node, JSDocContainer { readonly kind: SyntaxKind.CaseClause; readonly parent: CaseBlock; readonly expression: Expression; @@ -3055,7 +3077,7 @@ namespace ts { readonly kind: SyntaxKind.AssertEntry; readonly parent: AssertClause; readonly name: AssertionKey; - readonly value: StringLiteral; + readonly value: Expression; } export interface AssertClause extends Node { @@ -3117,7 +3139,7 @@ namespace ts { readonly isTypeOnly: boolean; } - export interface ExportSpecifier extends NamedDeclaration { + export interface ExportSpecifier extends NamedDeclaration, JSDocContainer { readonly kind: SyntaxKind.ExportSpecifier; readonly parent: NamedExports; readonly isTypeOnly: boolean; @@ -3141,8 +3163,8 @@ namespace ts { | ImportClause & { readonly isTypeOnly: true, readonly name: Identifier } | ImportEqualsDeclaration & { readonly isTypeOnly: true } | NamespaceImport & { readonly parent: ImportClause & { readonly isTypeOnly: true } } - | ImportSpecifier & { readonly parent: NamedImports & { readonly parent: ImportClause & { readonly isTypeOnly: true } } } - | ExportSpecifier & { readonly parent: NamedExports & { readonly parent: ExportDeclaration & { readonly isTypeOnly: true } } } + | ImportSpecifier & ({ readonly isTypeOnly: true } | { readonly parent: NamedImports & { readonly parent: ImportClause & { readonly isTypeOnly: true } } }) + | ExportSpecifier & ({ readonly isTypeOnly: true } | { readonly parent: NamedExports & { readonly parent: ExportDeclaration & { readonly isTypeOnly: true } } }) ; /** @@ -3158,6 +3180,7 @@ namespace ts { export interface FileReference extends TextRange { fileName: string; + resolutionMode?: SourceFile["impliedNodeFormat"]; } export interface CheckJsDirective extends TextRange { @@ -3245,7 +3268,7 @@ namespace ts { ; export interface JSDoc extends Node { - readonly kind: SyntaxKind.JSDocComment; + readonly kind: SyntaxKind.JSDoc; readonly parent: HasJSDoc; readonly tags?: NodeArray; readonly comment?: string | NodeArray; @@ -3513,12 +3536,12 @@ namespace ts { name?: string; } - /* @internal */ /** * Subset of properties from SourceFile that are used in multiple utility functions */ export interface SourceFileLike { readonly text: string; + /* @internal */ lineMap?: readonly number[]; /* @internal */ getPositionOfLineAndCharacter?(line: number, character: number, allowEdits?: true): number; @@ -3609,7 +3632,13 @@ namespace ts { * This is intended to be the first top-level import/export, * but could be arbitrarily nested (e.g. `import.meta`). */ - /* @internal */ externalModuleIndicator?: Node; + /* @internal */ externalModuleIndicator?: Node | true; + /** + * The callback used to set the external module indicator - this is saved to + * be later reused during incremental reparsing, which otherwise lacks the information + * to set this field + */ + /* @internal */ setExternalModuleIndicator?: (file: SourceFile) => void; // The first node that causes this file to be a CommonJS module /* @internal */ commonJsModuleIndicator?: Node; // JS identifier-declarations that are intended to merge with globals @@ -3711,7 +3740,7 @@ namespace ts { // References and noDefaultLibAre Dts only referencedFiles: readonly FileReference[]; - typeReferenceDirectives: readonly string[] | undefined; + typeReferenceDirectives: readonly FileReference[] | undefined; libReferenceDirectives: readonly FileReference[]; hasNoDefaultLib?: boolean; @@ -3987,11 +4016,6 @@ namespace ts { /* @internal */ getCommonSourceDirectory(): string; - // For testing purposes only. Should not be used by any other consumers (including the - // language service). - /* @internal */ getDiagnosticsProducingTypeChecker(): TypeChecker; - /* @internal */ dropDiagnosticsProducingTypeChecker(): void; - /* @internal */ getCachedSemanticDiagnostics(sourceFile?: SourceFile): readonly Diagnostic[] | undefined; /* @internal */ getClassifiableNames(): Set<__String>; @@ -4004,7 +4028,7 @@ namespace ts { getRelationCacheSizes(): { assignable: number, identity: number, subtype: number, strictSubtype: number }; /* @internal */ getFileProcessingDiagnostics(): FilePreprocessingDiagnostics[] | undefined; - /* @internal */ getResolvedTypeReferenceDirectives(): ESMap; + /* @internal */ getResolvedTypeReferenceDirectives(): ModeAwareCache; isSourceFileFromExternalLibrary(file: SourceFile): boolean; isSourceFileDefaultLibrary(file: SourceFile): boolean; @@ -4144,7 +4168,7 @@ namespace ts { getSourceFiles(): readonly SourceFile[]; getSourceFile(fileName: string): SourceFile | undefined; - getResolvedTypeReferenceDirectives(): ReadonlyESMap; + getResolvedTypeReferenceDirectives(): ModeAwareCache; getProjectReferenceRedirect(fileName: string): string | undefined; isSourceOfProjectReferenceRedirect(fileName: string): boolean; @@ -4153,6 +4177,7 @@ namespace ts { export interface TypeChecker { getTypeOfSymbolAtLocation(symbol: Symbol, node: Node): Type; + /* @internal */ getTypeOfSymbol(symbol: Symbol): Type; getDeclaredTypeOfSymbol(symbol: Symbol): Type; getPropertiesOfType(type: Type): Symbol[]; getPropertyOfType(type: Type, propertyName: string): Symbol | undefined; @@ -4162,6 +4187,7 @@ namespace ts { getIndexInfosOfType(type: Type): readonly IndexInfo[]; getSignaturesOfType(type: Type, kind: SignatureKind): readonly Signature[]; getIndexTypeOfType(type: Type, kind: IndexKind): Type | undefined; + /* @internal */ getIndexType(type: Type): Type; getBaseTypes(type: InterfaceType): BaseType[]; getBaseTypeOfLiteralType(type: Type): Type; getWidenedType(type: Type): Type; @@ -4258,6 +4284,7 @@ namespace ts { */ getResolvedSignature(node: CallLikeExpression, candidatesOutArray?: Signature[], argumentCount?: number): Signature | undefined; /* @internal */ getResolvedSignatureForSignatureHelp(node: CallLikeExpression, candidatesOutArray?: Signature[], argumentCount?: number): Signature | undefined; + /* @internal */ getResolvedSignatureForStringLiteralCompletions(call: CallLikeExpression, editingArgument: Node, candidatesOutArray: Signature[]): Signature | undefined; /* @internal */ getExpandedParameters(sig: Signature): readonly (readonly Symbol[])[]; /* @internal */ hasEffectiveRestParameter(sig: Signature): boolean; /* @internal */ containsArgumentsReference(declaration: SignatureDeclaration): boolean; @@ -4414,6 +4441,14 @@ namespace ts { /* @internal */ isDeclarationVisible(node: Declaration | AnyImportSyntax): boolean; /* @internal */ isPropertyAccessible(node: Node, isSuper: boolean, isWrite: boolean, containingType: Type, property: Symbol): boolean; /* @internal */ getTypeOnlyAliasDeclaration(symbol: Symbol): TypeOnlyAliasDeclaration | undefined; + /* @internal */ getMemberOverrideModifierStatus(node: ClassLikeDeclaration, member: ClassElement): MemberOverrideStatus; + } + + /* @internal */ + export const enum MemberOverrideStatus { + Ok, + NeedsOverride, + HasInvalidOverride } /* @internal */ @@ -4629,7 +4664,7 @@ namespace ts { export type AnyImportSyntax = ImportDeclaration | ImportEqualsDeclaration; /* @internal */ - export type AnyImportOrRequire = AnyImportSyntax | RequireVariableDeclaration; + export type AnyImportOrRequire = AnyImportSyntax | VariableDeclarationInitializedTo; /* @internal */ export type AnyImportOrRequireStatement = AnyImportSyntax | RequireVariableStatement; @@ -4654,8 +4689,8 @@ namespace ts { export type RequireOrImportCall = CallExpression & { expression: Identifier, arguments: [StringLiteralLike] }; /* @internal */ - export interface RequireVariableDeclaration extends VariableDeclaration { - readonly initializer: RequireOrImportCall; + export interface VariableDeclarationInitializedTo extends VariableDeclaration { + readonly initializer: T; } /* @internal */ @@ -4665,7 +4700,7 @@ namespace ts { /* @internal */ export interface RequireVariableDeclarationList extends VariableDeclarationList { - readonly declarations: NodeArray; + readonly declarations: NodeArray>; } /* @internal */ @@ -4777,8 +4812,8 @@ namespace ts { moduleExportsSomeValue(moduleReferenceExpression: Expression): boolean; isArgumentsLocalBinding(node: Identifier): boolean; getExternalModuleFileFromDeclaration(declaration: ImportEqualsDeclaration | ImportDeclaration | ExportDeclaration | ModuleDeclaration | ImportTypeNode | ImportCall): SourceFile | undefined; - getTypeReferenceDirectivesForEntityName(name: EntityNameOrEntityNameExpression): string[] | undefined; - getTypeReferenceDirectivesForSymbol(symbol: Symbol, meaning?: SymbolFlags): string[] | undefined; + getTypeReferenceDirectivesForEntityName(name: EntityNameOrEntityNameExpression): [specifier: string, mode: SourceFile["impliedNodeFormat"] | undefined][] | undefined; + getTypeReferenceDirectivesForSymbol(symbol: Symbol, meaning?: SymbolFlags): [specifier: string, mode: SourceFile["impliedNodeFormat"] | undefined][] | undefined; isLiteralConstDeclaration(node: VariableDeclaration | PropertyDeclaration | PropertySignature | ParameterDeclaration): boolean; getJsxFactoryEntity(location?: Node): EntityName | undefined; getJsxFragmentFactoryEntity(location?: Node): EntityName | undefined; @@ -4941,6 +4976,7 @@ namespace ts { extendedContainersByFile?: ESMap; // Containers (other than the parent) which this symbol is aliased in variances?: VarianceFlags[]; // Alias symbol type argument variance cache deferralConstituents?: Type[]; // Calculated list of constituents for a deferred type + deferralWriteConstituents?: Type[]; // Constituents of a deferred `writeType` deferralParent?: Type; // Source union/intersection of a deferred type cjsExportMerged?: Symbol; // Version of the symbol with all non export= exports merged with the export= target typeOnlyDeclaration?: TypeOnlyAliasDeclaration | false; // First resolved alias declaration that makes the symbol only usable in type constructs @@ -5075,6 +5111,7 @@ namespace ts { ConstructorReferenceInClass = 0x02000000, // Binding to a class constructor inside of the class's body. ContainsClassWithPrivateIdentifiers = 0x04000000, // Marked on all block-scoped containers containing a class with private identifiers. ContainsSuperPropertyInStaticInitializer = 0x08000000, // Marked on all block-scoped containers containing a static initializer with 'super.x' or 'super[x]'. + InCheckIdentifier = 0x10000000, } /* @internal */ @@ -5098,7 +5135,7 @@ namespace ts { jsxNamespace?: Symbol | false; // Resolved jsx namespace symbol for this node jsxImplicitImportContainer?: Symbol | false; // Resolved module symbol the implicit jsx import of this file should refer to contextFreeType?: Type; // Cached context-free type used by the first pass of inference; used when a function's return is partially contextually sensitive - deferredNodes?: ESMap; // Set of nodes whose checking has been deferred + deferredNodes?: Set; // Set of nodes whose checking has been deferred capturedBlockScopeBindings?: Symbol[]; // Block-scoped bindings captured beneath this part of an IterationStatement outerTypeParameters?: TypeParameter[]; // Outer type parameters of anonymous object type isExhaustive?: boolean; // Is node an exhaustive switch statement @@ -5162,6 +5199,8 @@ namespace ts { ESSymbolLike = ESSymbol | UniqueESSymbol, VoidLike = Void | Undefined, /* @internal */ + DefinitelyNonNullable = StringLike | NumberLike | BigIntLike | BooleanLike | EnumLike | ESSymbolLike | Object | NonPrimitive, + /* @internal */ DisjointDomains = NonPrimitive | StringLike | NumberLike | BigIntLike | BooleanLike | ESSymbolLike | VoidLike | Null, UnionOrIntersection = Union | Intersection, StructuredType = Object | Union | Intersection, @@ -5179,8 +5218,6 @@ namespace ts { // 'Narrowable' types are types where narrowing actually narrows. // This *should* be every type other than null, undefined, void, and never Narrowable = Any | Unknown | StructuredOrInstantiable | StringLike | NumberLike | BigIntLike | BooleanLike | ESSymbol | UniqueESSymbol | NonPrimitive, - /* @internal */ - NotPrimitiveUnion = Any | Unknown | Enum | Void | Never | Object | Intersection | Instantiable, // The following flags are aggregated during union and intersection type construction /* @internal */ IncludesMask = Any | Unknown | Primitive | Never | Object | Union | Intersection | NonPrimitive | TemplateLiteral, @@ -5193,6 +5230,10 @@ namespace ts { IncludesWildcard = IndexedAccess, /* @internal */ IncludesEmptyObject = Conditional, + /* @internal */ + IncludesInstantiable = Substitution, + /* @internal */ + NotPrimitiveUnion = Any | Unknown | Enum | Void | Never | Object | Intersection | IncludesInstantiable, } export type DestructuringPattern = BindingPattern | ObjectLiteralExpression | ArrayLiteralExpression; @@ -5209,12 +5250,13 @@ namespace ts { pattern?: DestructuringPattern; // Destructuring pattern represented by type (if any) aliasSymbol?: Symbol; // Alias associated with type aliasTypeArguments?: readonly Type[]; // Alias type arguments (if any) - /* @internal */ aliasTypeArgumentsContainsMarker?: boolean; // Alias type arguments (if any) /* @internal */ permissiveInstantiation?: Type; // Instantiation with type parameters mapped to wildcard type /* @internal */ restrictiveInstantiation?: Type; // Instantiation with type parameters mapped to unconstrained form /* @internal */ + uniqueLiteralFilledInstantiation?: Type; // Instantiation with type parameters mapped to never type + /* @internal */ immediateBaseConstraint?: Type; // Immediate base constraint cache /* @internal */ widened?: Type; // Cached widened form of the type @@ -5288,22 +5330,21 @@ namespace ts { ObjectLiteralPatternWithComputedProperties = 1 << 9, // Object literal pattern with computed properties ReverseMapped = 1 << 10, // Object contains a property from a reverse-mapped type JsxAttributes = 1 << 11, // Jsx attributes type - MarkerType = 1 << 12, // Marker type used for variance probing - JSLiteral = 1 << 13, // Object type declared in JS - disables errors on read/write of nonexisting members - FreshLiteral = 1 << 14, // Fresh object literal - ArrayLiteral = 1 << 15, // Originates in an array literal + JSLiteral = 1 << 12, // Object type declared in JS - disables errors on read/write of nonexisting members + FreshLiteral = 1 << 13, // Fresh object literal + ArrayLiteral = 1 << 14, // Originates in an array literal /* @internal */ - PrimitiveUnion = 1 << 16, // Union of only primitive types + PrimitiveUnion = 1 << 15, // Union of only primitive types /* @internal */ - ContainsWideningType = 1 << 17, // Type is or contains undefined or null widening type + ContainsWideningType = 1 << 16, // Type is or contains undefined or null widening type /* @internal */ - ContainsObjectOrArrayLiteral = 1 << 18, // Type is or contains object literal type + ContainsObjectOrArrayLiteral = 1 << 17, // Type is or contains object literal type /* @internal */ - NonInferrableType = 1 << 19, // Type is or contains anyFunctionType or silentNeverType + NonInferrableType = 1 << 18, // Type is or contains anyFunctionType or silentNeverType /* @internal */ - CouldContainTypeVariablesComputed = 1 << 20, // CouldContainTypeVariables flag has been computed + CouldContainTypeVariablesComputed = 1 << 19, // CouldContainTypeVariables flag has been computed /* @internal */ - CouldContainTypeVariables = 1 << 21, // Type could contain a type variable + CouldContainTypeVariables = 1 << 20, // Type could contain a type variable ClassOrInterface = Class | Interface, /* @internal */ @@ -5315,8 +5356,9 @@ namespace ts { ObjectTypeKindMask = ClassOrInterface | Reference | Tuple | Anonymous | Mapped | ReverseMapped | EvolvingArray, // Flags that require TypeFlags.Object - ContainsSpread = 1 << 22, // Object literal contains spread operation - ObjectRestType = 1 << 23, // Originates in object rest declaration + ContainsSpread = 1 << 21, // Object literal contains spread operation + ObjectRestType = 1 << 22, // Originates in object rest declaration + InstantiationExpressionType = 1 << 23, // Originates in instantiation expression /* @internal */ IsClassInstanceClone = 1 << 24, // Type is a clone of a class instance type // Flags that require TypeFlags.Object and ObjectFlags.Reference @@ -5327,23 +5369,23 @@ namespace ts { // Flags that require TypeFlags.UnionOrIntersection or TypeFlags.Substitution /* @internal */ - IsGenericTypeComputed = 1 << 22, // IsGenericObjectType flag has been computed + IsGenericTypeComputed = 1 << 21, // IsGenericObjectType flag has been computed /* @internal */ - IsGenericObjectType = 1 << 23, // Union or intersection contains generic object type + IsGenericObjectType = 1 << 22, // Union or intersection contains generic object type /* @internal */ - IsGenericIndexType = 1 << 24, // Union or intersection contains generic index type + IsGenericIndexType = 1 << 23, // Union or intersection contains generic index type /* @internal */ IsGenericType = IsGenericObjectType | IsGenericIndexType, // Flags that require TypeFlags.Union /* @internal */ - ContainsIntersections = 1 << 25, // Union contains intersections + ContainsIntersections = 1 << 24, // Union contains intersections // Flags that require TypeFlags.Intersection /* @internal */ - IsNeverIntersectionComputed = 1 << 25, // IsNeverLike flag has been computed + IsNeverIntersectionComputed = 1 << 24, // IsNeverLike flag has been computed /* @internal */ - IsNeverIntersection = 1 << 26, // Intersection reduces to never + IsNeverIntersection = 1 << 25, // Intersection reduces to never } /* @internal */ @@ -5508,6 +5550,11 @@ namespace ts { instantiations?: ESMap; // Instantiations of generic type alias (undefined if non-generic) } + /* @internal */ + export interface InstantiationExpressionType extends AnonymousType { + node: ExpressionWithTypeArguments | TypeQueryNode; + } + /* @internal */ export interface MappedType extends AnonymousType { declaration: MappedTypeNode; @@ -5579,6 +5626,7 @@ namespace ts { /* @internal */ export interface SyntheticDefaultModuleType extends Type { syntheticType?: Type; + defaultOnlyType?: Type; } export interface InstantiableType extends Type { @@ -5648,7 +5696,6 @@ namespace ts { checkType: Type; extendsType: Type; isDistributive: boolean; - isDistributionDependent: boolean; inferTypeParameters?: TypeParameter[]; outerTypeParameters?: TypeParameter[]; instantiations?: Map; @@ -5984,7 +6031,7 @@ namespace ts { export enum ModuleResolutionKind { Classic = 1, NodeJs = 2, - // Starting with node12, node's module resolver has significant departures from tranditional cjs resolution + // Starting with node12, node's module resolver has significant departures from traditional cjs resolution // to better support ecmascript modules and their use within node - more features are still being added, so // we can expect it to change over time, and as such, offer both a `NodeNext` moving resolution target, and a `Node12` // version-anchored resolution target @@ -5992,6 +6039,21 @@ namespace ts { NodeNext = 99, // Not simply `Node12` so that compiled code linked against TS can use the `Next` value reliably (same as with `ModuleKind`) } + export enum ModuleDetectionKind { + /** + * Files with imports, exports and/or import.meta are considered modules + */ + Legacy = 1, + /** + * Legacy, but also files with jsx under react-jsx or react-jsxdev and esm mode files under moduleResolution: node12+ + */ + Auto = 2, + /** + * Consider all non-declaration files modules, regardless of present syntax + */ + Force = 3, + } + export interface PluginImport { name: string; } @@ -6087,6 +6149,8 @@ namespace ts { maxNodeModuleJsDepth?: number; module?: ModuleKind; moduleResolution?: ModuleResolutionKind; + moduleSuffixes?: string[]; + moduleDetection?: ModuleDetectionKind; newLine?: NewLineKind; noEmit?: boolean; /*@internal*/noEmitForJsFiles?: boolean; @@ -6257,6 +6321,7 @@ namespace ts { ES2019 = 6, ES2020 = 7, ES2021 = 8, + ES2022 = 9, ESNext = 99, JSON = 100, Latest = ESNext, @@ -6323,7 +6388,7 @@ namespace ts { isFilePath?: boolean; // True if option value is a path or fileName shortName?: string; // A short mnemonic for convenience - for instance, 'h' can be used in place of 'help' description?: DiagnosticMessage; // The message describing what the command line switch does. - defaultValueDescription?: string | DiagnosticMessage; // The message describing what the dafault value is. string type is prepared for fixed chosen like "false" which do not need I18n. + defaultValueDescription?: string | number | boolean | DiagnosticMessage; // The message describing what the dafault value is. string type is prepared for fixed chosen like "false" which do not need I18n. paramType?: DiagnosticMessage; // The name to be used for a non-boolean option's parameter isTSConfigOnly?: boolean; // True if option can only be specified via tsconfig.json file isCommandLineOnly?: boolean; @@ -6343,23 +6408,25 @@ namespace ts { /* @internal */ export interface CommandLineOptionOfStringType extends CommandLineOptionBase { type: "string"; + defaultValueDescription?: string | undefined | DiagnosticMessage; } /* @internal */ export interface CommandLineOptionOfNumberType extends CommandLineOptionBase { type: "number"; - defaultValueDescription: `${number | undefined}` | DiagnosticMessage; + defaultValueDescription: number | undefined | DiagnosticMessage; } /* @internal */ export interface CommandLineOptionOfBooleanType extends CommandLineOptionBase { type: "boolean"; - defaultValueDescription: `${boolean | undefined}` | DiagnosticMessage; + defaultValueDescription: boolean | undefined | DiagnosticMessage; } /* @internal */ export interface CommandLineOptionOfCustomType extends CommandLineOptionBase { type: ESMap; // an object literal mapping named values to actual values + defaultValueDescription: number | string | undefined | DiagnosticMessage; } /* @internal */ @@ -6387,6 +6454,7 @@ namespace ts { export interface CommandLineOptionOfListType extends CommandLineOptionBase { type: "list"; element: CommandLineOptionOfCustomType | CommandLineOptionOfStringType | CommandLineOptionOfNumberType | CommandLineOptionOfBooleanType | TsConfigOnlyOption; + listPreserveFalsyValues?: boolean; } /* @internal */ @@ -6548,6 +6616,14 @@ namespace ts { useCaseSensitiveFileNames?: boolean | (() => boolean); } + /** + * Used by services to specify the minimum host area required to set up source files under any compilation settings + */ + export interface MinimalResolutionCacheHost extends ModuleResolutionHost { + getCompilationSettings(): CompilerOptions; + getCompilerHost?(): CompilerHost | undefined; + } + /** * Represents the result of module resolution. * Module resolution will pick up tsx/jsx/js files even if '--jsx' and '--allowJs' are turned off. @@ -6650,8 +6726,8 @@ namespace ts { export type HasChangedAutomaticTypeDirectiveNames = () => boolean; export interface CompilerHost extends ModuleResolutionHost { - getSourceFile(fileName: string, languageVersion: ScriptTarget, onError?: (message: string) => void, shouldCreateNewSourceFile?: boolean): SourceFile | undefined; - getSourceFileByPath?(fileName: string, path: Path, languageVersion: ScriptTarget, onError?: (message: string) => void, shouldCreateNewSourceFile?: boolean): SourceFile | undefined; + getSourceFile(fileName: string, languageVersionOrOptions: ScriptTarget | CreateSourceFileOptions, onError?: (message: string) => void, shouldCreateNewSourceFile?: boolean): SourceFile | undefined; + getSourceFileByPath?(fileName: string, path: Path, languageVersionOrOptions: ScriptTarget | CreateSourceFileOptions, onError?: (message: string) => void, shouldCreateNewSourceFile?: boolean): SourceFile | undefined; getCancellationToken?(): CancellationToken; getDefaultLibFileName(options: CompilerOptions): string; getDefaultLibLocation?(): string; @@ -6677,7 +6753,7 @@ namespace ts { /** * This method is a companion for 'resolveModuleNames' and is used to resolve 'types' references to actual type declaration files */ - resolveTypeReferenceDirectives?(typeReferenceDirectiveNames: string[], containingFile: string, redirectedReference: ResolvedProjectReference | undefined, options: CompilerOptions): (ResolvedTypeReferenceDirective | undefined)[]; + resolveTypeReferenceDirectives?(typeReferenceDirectiveNames: string[] | readonly FileReference[], containingFile: string, redirectedReference: ResolvedProjectReference | undefined, options: CompilerOptions, containingFileMode?: SourceFile["impliedNodeFormat"] | undefined): (ResolvedTypeReferenceDirective | undefined)[]; getEnvironmentVariable?(name: string): string | undefined; /* @internal */ onReleaseOldSourceFile?(oldSourceFile: SourceFile, oldOptions: CompilerOptions, hasSourceFileByPath: boolean): void; /* @internal */ onReleaseParsedCommandLine?(configFileName: string, oldResolvedRef: ResolvedProjectReference | undefined, optionOptions: CompilerOptions): void; @@ -6714,15 +6790,16 @@ namespace ts { ContainsTypeScript = 1 << 0, ContainsJsx = 1 << 1, ContainsESNext = 1 << 2, - ContainsES2021 = 1 << 3, - ContainsES2020 = 1 << 4, - ContainsES2019 = 1 << 5, - ContainsES2018 = 1 << 6, - ContainsES2017 = 1 << 7, - ContainsES2016 = 1 << 8, - ContainsES2015 = 1 << 9, - ContainsGenerator = 1 << 10, - ContainsDestructuringAssignment = 1 << 11, + ContainsES2022 = 1 << 3, + ContainsES2021 = 1 << 4, + ContainsES2020 = 1 << 5, + ContainsES2019 = 1 << 6, + ContainsES2018 = 1 << 7, + ContainsES2017 = 1 << 8, + ContainsES2016 = 1 << 9, + ContainsES2015 = 1 << 10, + ContainsGenerator = 1 << 11, + ContainsDestructuringAssignment = 1 << 12, // Markers // - Flags used to indicate that a subtree contains a specific transformation. @@ -6751,6 +6828,7 @@ namespace ts { AssertTypeScript = ContainsTypeScript, AssertJsx = ContainsJsx, AssertESNext = ContainsESNext, + AssertES2022 = ContainsES2022, AssertES2021 = ContainsES2021, AssertES2020 = ContainsES2020, AssertES2019 = ContainsES2019, @@ -6816,6 +6894,32 @@ namespace ts { externalHelpers?: boolean; helpers?: EmitHelper[]; // Emit helpers for the node startsOnNewLine?: boolean; // If the node should begin on a new line + snippetElement?: SnippetElement; // Snippet element of the node + typeNode?: TypeNode; // VariableDeclaration type + } + + /* @internal */ + export type SnippetElement = TabStop | Placeholder; + + /* @internal */ + export interface TabStop { + kind: SnippetKind.TabStop; + order: number; + } + + /* @internal */ + export interface Placeholder { + kind: SnippetKind.Placeholder; + order: number; + } + + // Reference: https://code.visualstudio.com/docs/editor/userdefinedsnippets#_snippet-syntax + /* @internal */ + export const enum SnippetKind { + TabStop, // `$1`, `$2` + Placeholder, // `${1:foo}` + Choice, // `${1|one,two,three|}` + Variable, // `$name`, `${name:default}` } export const enum EmitFlags { @@ -7127,7 +7231,7 @@ namespace ts { // createModifier(kind: T): ModifierToken; - createModifiersFromModifierFlags(flags: ModifierFlags): Modifier[]; + createModifiersFromModifierFlags(flags: ModifierFlags): Modifier[] | undefined; // // Names @@ -7142,7 +7246,11 @@ namespace ts { // Signature elements // + createTypeParameterDeclaration(modifiers: readonly Modifier[] | undefined, name: string | Identifier, constraint?: TypeNode, defaultType?: TypeNode): TypeParameterDeclaration; + /** @deprecated */ createTypeParameterDeclaration(name: string | Identifier, constraint?: TypeNode, defaultType?: TypeNode): TypeParameterDeclaration; + updateTypeParameterDeclaration(node: TypeParameterDeclaration, modifiers: readonly Modifier[] | undefined, name: Identifier, constraint: TypeNode | undefined, defaultType: TypeNode | undefined): TypeParameterDeclaration; + /** @deprecated */ updateTypeParameterDeclaration(node: TypeParameterDeclaration, name: Identifier, constraint: TypeNode | undefined, defaultType: TypeNode | undefined): TypeParameterDeclaration; createParameterDeclaration(decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, dotDotDotToken: DotDotDotToken | undefined, name: string | BindingName, questionToken?: QuestionToken, type?: TypeNode, initializer?: Expression): ParameterDeclaration; updateParameterDeclaration(node: ParameterDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, dotDotDotToken: DotDotDotToken | undefined, name: string | BindingName, questionToken: QuestionToken | undefined, type: TypeNode | undefined, initializer: Expression | undefined): ParameterDeclaration; @@ -7196,8 +7304,8 @@ namespace ts { updateConstructorTypeNode(node: ConstructorTypeNode, modifiers: readonly Modifier[] | undefined, typeParameters: NodeArray | undefined, parameters: NodeArray, type: TypeNode): ConstructorTypeNode; /** @deprecated */ updateConstructorTypeNode(node: ConstructorTypeNode, typeParameters: NodeArray | undefined, parameters: NodeArray, type: TypeNode): ConstructorTypeNode; - createTypeQueryNode(exprName: EntityName): TypeQueryNode; - updateTypeQueryNode(node: TypeQueryNode, exprName: EntityName): TypeQueryNode; + createTypeQueryNode(exprName: EntityName, typeArguments?: readonly TypeNode[]): TypeQueryNode; + updateTypeQueryNode(node: TypeQueryNode, exprName: EntityName, typeArguments?: readonly TypeNode[]): TypeQueryNode; createTypeLiteralNode(members: readonly TypeElement[] | undefined): TypeLiteralNode; updateTypeLiteralNode(node: TypeLiteralNode, members: NodeArray): TypeLiteralNode; createArrayTypeNode(elementType: TypeNode): ArrayTypeNode; @@ -7218,8 +7326,12 @@ namespace ts { updateConditionalTypeNode(node: ConditionalTypeNode, checkType: TypeNode, extendsType: TypeNode, trueType: TypeNode, falseType: TypeNode): ConditionalTypeNode; createInferTypeNode(typeParameter: TypeParameterDeclaration): InferTypeNode; updateInferTypeNode(node: InferTypeNode, typeParameter: TypeParameterDeclaration): InferTypeNode; + /*@deprecated*/ createImportTypeNode(argument: TypeNode, qualifier?: EntityName, typeArguments?: readonly TypeNode[], isTypeOf?: boolean): ImportTypeNode; + createImportTypeNode(argument: TypeNode, assertions?: ImportTypeAssertionContainer, qualifier?: EntityName, typeArguments?: readonly TypeNode[], isTypeOf?: boolean): ImportTypeNode; + /*@deprecated*/ updateImportTypeNode(node: ImportTypeNode, argument: TypeNode, qualifier: EntityName | undefined, typeArguments: readonly TypeNode[] | undefined, isTypeOf?: boolean): ImportTypeNode; + updateImportTypeNode(node: ImportTypeNode, argument: TypeNode, assertions: ImportTypeAssertionContainer | undefined, qualifier: EntityName | undefined, typeArguments: readonly TypeNode[] | undefined, isTypeOf?: boolean): ImportTypeNode; createParenthesizedType(type: TypeNode): ParenthesizedTypeNode; updateParenthesizedType(node: ParenthesizedTypeNode, type: TypeNode): ParenthesizedTypeNode; createThisTypeNode(): ThisTypeNode; @@ -7403,8 +7515,10 @@ namespace ts { updateImportClause(node: ImportClause, isTypeOnly: boolean, name: Identifier | undefined, namedBindings: NamedImportBindings | undefined): ImportClause; createAssertClause(elements: NodeArray, multiLine?: boolean): AssertClause; updateAssertClause(node: AssertClause, elements: NodeArray, multiLine?: boolean): AssertClause; - createAssertEntry(name: AssertionKey, value: StringLiteral): AssertEntry; - updateAssertEntry (node: AssertEntry, name: AssertionKey, value: StringLiteral): AssertEntry; + createAssertEntry(name: AssertionKey, value: Expression): AssertEntry; + updateAssertEntry(node: AssertEntry, name: AssertionKey, value: Expression): AssertEntry; + createImportTypeAssertionContainer(clause: AssertClause, multiLine?: boolean): ImportTypeAssertionContainer; + updateImportTypeAssertionContainer(node: ImportTypeAssertionContainer, clause: AssertClause, multiLine?: boolean): ImportTypeAssertionContainer; createNamespaceImport(name: Identifier): NamespaceImport; updateNamespaceImport(node: NamespaceImport, name: Identifier): NamespaceImport; createNamespaceExport(name: Identifier): NamespaceExport; @@ -7770,9 +7884,10 @@ namespace ts { * Copies only the standard (string-expression) prologue-directives into the target statement-array. * @param source origin statements array * @param target result statements array + * @param statementOffset The offset at which to begin the copy. * @param ensureUseStrict boolean determining whether the function need to add prologue-directives */ - /* @internal */ copyStandardPrologue(source: readonly Statement[], target: Push, ensureUseStrict?: boolean): number; + /* @internal */ copyStandardPrologue(source: readonly Statement[], target: Push, statementOffset: number | undefined, ensureUseStrict?: boolean): number; /** * Copies only the custom prologue-directives into target statement-array. * @param source origin statements array @@ -7799,7 +7914,7 @@ namespace ts { * - *DO NOT USE THIS* if a more appropriate function is available. */ /* @internal */ cloneNode(node: T): T; - /* @internal */ updateModifiers(node: T, modifiers: readonly Modifier[] | ModifierFlags): T; + /* @internal */ updateModifiers(node: T, modifiers: readonly Modifier[] | ModifierFlags | undefined): T; } /* @internal */ @@ -8003,6 +8118,8 @@ namespace ts { NoDefaultLib = "no-default-lib", Reference = "reference", Type = "type", + TypeResolutionModeRequire = "type-require", + TypeResolutionModeImport = "type-import", Lib = "lib", Prepend = "prepend", Text = "text", @@ -8035,7 +8152,7 @@ namespace ts { /*@internal*/ export interface BundleFileReference extends BundleFileSectionBase { - kind: BundleFileSectionKind.Reference | BundleFileSectionKind.Type | BundleFileSectionKind.Lib; + kind: BundleFileSectionKind.Reference | BundleFileSectionKind.Type | BundleFileSectionKind.Lib | BundleFileSectionKind.TypeResolutionModeImport | BundleFileSectionKind.TypeResolutionModeRequire; data: string; } @@ -8278,6 +8395,7 @@ namespace ts { hasTrailingComment(): boolean; hasTrailingWhitespace(): boolean; getTextPosWithWriteLine?(): number; + nonEscapingWrite?(text: string): void; } export interface GetEffectiveTypeRootsHost { @@ -8285,6 +8403,11 @@ namespace ts { getCurrentDirectory?(): string; } + /* @internal */ + export interface HasCurrentDirectory { + getCurrentDirectory(): string; + } + /*@internal*/ export interface ModuleSpecifierResolutionHost { useCaseSensitiveFileNames?(): boolean; @@ -8295,6 +8418,7 @@ namespace ts { realpath?(path: string): string; getSymlinkCache?(): SymlinkCache; getModuleSpecifierCache?(): ModuleSpecifierCache; + getPackageJsonInfoCache?(): PackageJsonInfoCache | undefined; getGlobalTypingsCacheLocation?(): string | undefined; getNearestAncestorDirectoryWithPackageJson?(fileName: string, rootDir?: string): string | undefined; @@ -8318,12 +8442,17 @@ namespace ts { isAutoImportable: boolean | undefined; } + /* @internal */ + export interface ModuleSpecifierOptions { + overrideImportMode?: SourceFile["impliedNodeFormat"]; + } + /* @internal */ export interface ModuleSpecifierCache { - get(fromFileName: Path, toFileName: Path, preferences: UserPreferences): Readonly | undefined; - set(fromFileName: Path, toFileName: Path, preferences: UserPreferences, modulePaths: readonly ModulePath[], moduleSpecifiers: readonly string[]): void; - setIsAutoImportable(fromFileName: Path, toFileName: Path, preferences: UserPreferences, isAutoImportable: boolean): void; - setModulePaths(fromFileName: Path, toFileName: Path, preferences: UserPreferences, modulePaths: readonly ModulePath[]): void; + get(fromFileName: Path, toFileName: Path, preferences: UserPreferences, options: ModuleSpecifierOptions): Readonly | undefined; + set(fromFileName: Path, toFileName: Path, preferences: UserPreferences, options: ModuleSpecifierOptions, modulePaths: readonly ModulePath[], moduleSpecifiers: readonly string[]): void; + setIsAutoImportable(fromFileName: Path, toFileName: Path, preferences: UserPreferences, options: ModuleSpecifierOptions, isAutoImportable: boolean): void; + setModulePaths(fromFileName: Path, toFileName: Path, preferences: UserPreferences, options: ModuleSpecifierOptions, modulePaths: readonly ModulePath[]): void; clear(): void; count(): number; } @@ -8519,7 +8648,8 @@ namespace ts { { name: "types", optional: true, captureSpan: true }, { name: "lib", optional: true, captureSpan: true }, { name: "path", optional: true, captureSpan: true }, - { name: "no-default-lib", optional: true } + { name: "no-default-lib", optional: true }, + { name: "resolution-mode", optional: true } ], kind: PragmaKindFlags.TripleSlashXML }, @@ -8623,6 +8753,9 @@ namespace ts { readonly includeCompletionsWithSnippetText?: boolean; readonly includeAutomaticOptionalChainCompletions?: boolean; readonly includeCompletionsWithInsertText?: boolean; + readonly includeCompletionsWithClassMemberSnippets?: boolean; + readonly includeCompletionsWithObjectLiteralMethodSnippets?: boolean; + readonly useLabelDetailsInCompletionEntries?: boolean; readonly allowIncompleteCompletions?: boolean; readonly importModuleSpecifierPreference?: "shortest" | "project-relative" | "relative" | "non-relative"; /** Determines whether we import `foo/index.ts` as "foo", "foo/index", or "foo/index.js" */ @@ -8632,6 +8765,13 @@ namespace ts { readonly includePackageJsonAutoImports?: "auto" | "on" | "off"; readonly provideRefactorNotApplicableReason?: boolean; readonly jsxAttributeCompletionStyle?: "auto" | "braces" | "none"; + readonly includeInlayParameterNameHints?: "none" | "literals" | "all"; + readonly includeInlayParameterNameHintsWhenArgumentMatchesName?: boolean; + readonly includeInlayFunctionParameterTypeHints?: boolean, + readonly includeInlayVariableTypeHints?: boolean; + readonly includeInlayPropertyDeclarationTypeHints?: boolean; + readonly includeInlayFunctionLikeReturnTypeHints?: boolean; + readonly includeInlayEnumMemberValueHints?: boolean; } /** Represents a bigint literal value without requiring bigint support */ diff --git a/src/compiler/utilities.ts b/src/compiler/utilities.ts index de7289288369d..e62877280f70a 100644 --- a/src/compiler/utilities.ts +++ b/src/compiler/utilities.ts @@ -20,19 +20,8 @@ namespace ts { return undefined; } - /** - * Create a new escaped identifier map. - * @deprecated Use `new Map<__String, T>()` instead. - */ - export function createUnderscoreEscapedMap(): UnderscoreEscapedMap { - return new Map<__String, T>(); - } - - /** - * @deprecated Use `!!map?.size` instead - */ - export function hasEntries(map: ReadonlyCollection | undefined): map is ReadonlyCollection { - return !!map && !!map.size; + export function getDeclarationsOfKind(symbol: Symbol, kind: T["kind"]): T[] { + return filter(symbol.declarations || emptyArray, d => d.kind === kind) as T[]; } export function createSymbolTable(symbols?: readonly Symbol[]): SymbolTable { @@ -207,9 +196,12 @@ namespace ts { return a === b || !!a && !!b && a.name === b.name && a.subModuleName === b.subModuleName && a.version === b.version; } - export function packageIdToString({ name, subModuleName, version }: PackageId): string { - const fullName = subModuleName ? `${name}/${subModuleName}` : name; - return `${fullName}@${version}`; + export function packageIdToPackageName({ name, subModuleName }: PackageId): string { + return subModuleName ? `${name}/${subModuleName}` : name; + } + + export function packageIdToString(packageId: PackageId): string { + return `${packageIdToPackageName(packageId)}@${packageId.version}`; } export function typeDirectiveIsEqualTo(oldResolution: ResolvedTypeReferenceDirective, newResolution: ResolvedTypeReferenceDirective): boolean { @@ -219,7 +211,7 @@ namespace ts { } export function hasChangesInResolutions( - names: readonly string[], + names: readonly string[] | readonly FileReference[], newResolutions: readonly T[], oldResolutions: ModeAwareCache | undefined, oldSourceFile: SourceFile | undefined, @@ -228,7 +220,11 @@ namespace ts { for (let i = 0; i < names.length; i++) { const newResolution = newResolutions[i]; - const oldResolution = oldResolutions && oldResolutions.get(names[i], oldSourceFile && getModeForResolutionAtIndex(oldSourceFile, i)); + const entry = names[i]; + // We lower-case all type references because npm automatically lowercases all packages. See GH#9824. + const name = !isString(entry) ? entry.fileName.toLowerCase() : entry; + const mode = !isString(entry) ? getModeForFileReference(entry, oldSourceFile?.impliedNodeFormat) : oldSourceFile && getModeForResolutionAtIndex(oldSourceFile, i); + const oldResolution = oldResolutions && oldResolutions.get(name, mode); const changed = oldResolution ? !newResolution || !comparer(oldResolution, newResolution) @@ -279,6 +275,10 @@ namespace ts { return getSourceFileOfNode(module.valueDeclaration || getNonAugmentationDeclaration(module)); } + export function isPlainJsFile(file: SourceFile | undefined, checkJs: boolean | undefined): boolean { + return !!file && (file.scriptKind === ScriptKind.JS || file.scriptKind === ScriptKind.JSX) && !file.checkJsDirective && checkJs === undefined; + } + export function isStatementWithLocals(node: Node) { switch (node.kind) { case SyntaxKind.Block: @@ -606,6 +606,7 @@ namespace ts { AsyncIterableIterator: emptyArray, AsyncGenerator: emptyArray, AsyncGeneratorFunction: emptyArray, + NumberFormat: ["formatToParts"] }, es2019: { Array: ["flat", "flatMap"], @@ -627,8 +628,22 @@ namespace ts { PromiseConstructor: ["any"], String: ["replaceAll"] }, - esnext: { - NumberFormat: ["formatToParts"] + es2022: { + Array: ["at"], + String: ["at"], + Int8Array: ["at"], + Uint8Array: ["at"], + Uint8ClampedArray: ["at"], + Int16Array: ["at"], + Uint16Array: ["at"], + Int32Array: ["at"], + Uint32Array: ["at"], + Float32Array: ["at"], + Float64Array: ["at"], + BigInt64Array: ["at"], + BigUint64Array: ["at"], + ObjectConstructor: ["hasOwn"], + Error: ["cause"] } }; } @@ -976,7 +991,7 @@ namespace ts { return name.kind === SyntaxKind.ComputedPropertyName && !isStringOrNumericLiteralLike(name.expression); } - export function getTextOfPropertyName(name: PropertyName | NoSubstitutionTemplateLiteral): __String { + export function tryGetTextOfPropertyName(name: PropertyName | NoSubstitutionTemplateLiteral): __String | undefined { switch (name.kind) { case SyntaxKind.Identifier: case SyntaxKind.PrivateIdentifier: @@ -987,12 +1002,16 @@ namespace ts { return escapeLeadingUnderscores(name.text); case SyntaxKind.ComputedPropertyName: if (isStringOrNumericLiteralLike(name.expression)) return escapeLeadingUnderscores(name.expression.text); - return Debug.fail("Text of property name cannot be read from non-literal-valued ComputedPropertyNames"); + return undefined; default: return Debug.assertNever(name); } } + export function getTextOfPropertyName(name: PropertyName | NoSubstitutionTemplateLiteral): __String { + return Debug.checkDefined(tryGetTextOfPropertyName(name)); + } + export function entityNameToString(name: EntityNameOrEntityNameExpression | JSDocMemberName | JsxTagNameExpression | PrivateIdentifier): string { switch (name.kind) { case SyntaxKind.ThisKeyword: @@ -1072,6 +1091,15 @@ namespace ts { }; } + export function createDiagnosticMessageChainFromDiagnostic(diagnostic: DiagnosticRelatedInformation): DiagnosticMessageChain { + return typeof diagnostic.messageText === "string" ? { + code: diagnostic.code, + category: diagnostic.category, + messageText: diagnostic.messageText, + next: (diagnostic as DiagnosticMessageChain).next, + } : diagnostic.messageText; + } + export function createDiagnosticForRange(sourceFile: SourceFile, range: TextRange, message: DiagnosticMessage): DiagnosticWithLocation { return { file: sourceFile, @@ -1248,7 +1276,8 @@ namespace ts { node.kind === SyntaxKind.FunctionExpression || node.kind === SyntaxKind.ArrowFunction || node.kind === SyntaxKind.ParenthesizedExpression || - node.kind === SyntaxKind.VariableDeclaration) ? + node.kind === SyntaxKind.VariableDeclaration || + node.kind === SyntaxKind.ExportSpecifier) ? concatenate(getTrailingCommentRanges(text, node.pos), getLeadingCommentRanges(text, node.pos)) : getLeadingCommentRanges(text, node.pos); // True if the comment starts with '/**' but not if it is '/**/' @@ -1283,7 +1312,7 @@ namespace ts { case SyntaxKind.VoidKeyword: return node.parent.kind !== SyntaxKind.VoidExpression; case SyntaxKind.ExpressionWithTypeArguments: - return !isExpressionWithTypeArgumentsInClassExtendsClause(node); + return isHeritageClause(node.parent) && !isExpressionWithTypeArgumentsInClassExtendsClause(node); case SyntaxKind.TypeParameter: return node.parent.kind === SyntaxKind.MappedType || node.parent.kind === SyntaxKind.InferType; @@ -1323,7 +1352,7 @@ namespace ts { } switch (parent.kind) { case SyntaxKind.ExpressionWithTypeArguments: - return !isExpressionWithTypeArgumentsInClassExtendsClause(parent); + return isHeritageClause(parent.parent) && !isExpressionWithTypeArgumentsInClassExtendsClause(parent); case SyntaxKind.TypeParameter: return node === (parent as TypeParameterDeclaration).constraint; case SyntaxKind.JSDocTemplateTag: @@ -1495,10 +1524,21 @@ namespace ts { && node.parent.parent.kind === SyntaxKind.VariableStatement; } - export function isValidESSymbolDeclaration(node: Node): node is VariableDeclaration | PropertyDeclaration | SignatureDeclaration { - return isVariableDeclaration(node) ? isVarConst(node) && isIdentifier(node.name) && isVariableDeclarationInVariableStatement(node) : + export function isCommonJsExportedExpression(node: Node) { + if (!isInJSFile(node)) return false; + return (isObjectLiteralExpression(node.parent) && isBinaryExpression(node.parent.parent) && getAssignmentDeclarationKind(node.parent.parent) === AssignmentDeclarationKind.ModuleExports) || + isCommonJsExportPropertyAssignment(node.parent); + } + + export function isCommonJsExportPropertyAssignment(node: Node) { + if (!isInJSFile(node)) return false; + return (isBinaryExpression(node) && getAssignmentDeclarationKind(node) === AssignmentDeclarationKind.ExportsProperty); + } + + export function isValidESSymbolDeclaration(node: Node): boolean { + return (isVariableDeclaration(node) ? isVarConst(node) && isIdentifier(node.name) && isVariableDeclarationInVariableStatement(node) : isPropertyDeclaration(node) ? hasEffectiveReadonlyModifier(node) && hasStaticModifier(node) : - isPropertySignature(node) && hasEffectiveReadonlyModifier(node); + isPropertySignature(node) && hasEffectiveReadonlyModifier(node)) || isCommonJsExportPropertyAssignment(node); } export function introducesArgumentsExoticObject(node: Node) { @@ -1552,7 +1592,7 @@ namespace ts { export function getPropertyAssignment(objectLiteral: ObjectLiteralExpression, key: string, key2?: string): readonly PropertyAssignment[] { return objectLiteral.properties.filter((property): property is PropertyAssignment => { if (property.kind === SyntaxKind.PropertyAssignment) { - const propName = getTextOfPropertyName(property.name); + const propName = tryGetTextOfPropertyName(property.name); return key === propName || (!!key2 && key2 === propName); } return false; @@ -1673,6 +1713,34 @@ namespace ts { } } + /** + * @returns Whether the node creates a new 'this' scope for its children. + */ + export function isThisContainerOrFunctionBlock(node: Node): boolean { + switch (node.kind) { + // Arrow functions use the same scope, but may do so in a "delayed" manner + // For example, `const getThis = () => this` may be before a super() call in a derived constructor + case SyntaxKind.ArrowFunction: + case SyntaxKind.FunctionDeclaration: + case SyntaxKind.FunctionExpression: + case SyntaxKind.PropertyDeclaration: + return true; + case SyntaxKind.Block: + switch (node.parent.kind) { + case SyntaxKind.Constructor: + case SyntaxKind.MethodDeclaration: + case SyntaxKind.GetAccessor: + case SyntaxKind.SetAccessor: + // Object properties can have computed names; only method-like bodies start a new scope + return true; + default: + return false; + } + default: + return false; + } + } + export function isInTopLevelContext(node: Node) { // The name of a class or function declaration is a BindingIdentifier in its surrounding scope. if (isIdentifier(node) && (isClassDeclaration(node.parent) || isFunctionDeclaration(node.parent)) && node.parent.name === node) { @@ -2021,7 +2089,7 @@ namespace ts { case SyntaxKind.SpreadAssignment: return true; case SyntaxKind.ExpressionWithTypeArguments: - return (parent as ExpressionWithTypeArguments).expression === node && isExpressionWithTypeArgumentsInClassExtendsClause(parent); + return (parent as ExpressionWithTypeArguments).expression === node && !isPartOfTypeNode(parent); case SyntaxKind.ShorthandPropertyAssignment: return (parent as ShorthandPropertyAssignment).objectAssignmentInitializer === node; default: @@ -2050,7 +2118,7 @@ namespace ts { } export function getExternalModuleRequireArgument(node: Node) { - return isRequireVariableDeclaration(node) && (getLeftmostAccessExpression(node.initializer) as CallExpression).arguments[0] as StringLiteral; + return isVariableDeclarationInitializedToBareOrAccessedRequire(node) && (getLeftmostAccessExpression(node.initializer) as CallExpression).arguments[0] as StringLiteral; } export function isInternalModuleImportEqualsDeclaration(node: Node): node is ImportEqualsDeclaration { @@ -2117,17 +2185,30 @@ namespace ts { * Returns true if the node is a VariableDeclaration initialized to a require call (see `isRequireCall`). * This function does not test if the node is in a JavaScript file or not. */ - export function isRequireVariableDeclaration(node: Node): node is RequireVariableDeclaration { + export function isVariableDeclarationInitializedToRequire(node: Node): node is VariableDeclarationInitializedTo { + return isVariableDeclarationInitializedWithRequireHelper(node, /*allowAccessedRequire*/ false); + } + + /** + * Like {@link isVariableDeclarationInitializedToRequire} but allows things like `require("...").foo.bar` or `require("...")["baz"]`. + */ + export function isVariableDeclarationInitializedToBareOrAccessedRequire(node: Node): node is VariableDeclarationInitializedTo { + return isVariableDeclarationInitializedWithRequireHelper(node, /*allowAccessedRequire*/ true); + } + + function isVariableDeclarationInitializedWithRequireHelper(node: Node, allowAccessedRequire: boolean) { if (node.kind === SyntaxKind.BindingElement) { node = node.parent.parent; } - return isVariableDeclaration(node) && !!node.initializer && isRequireCall(getLeftmostAccessExpression(node.initializer), /*requireStringLiteralLikeArgument*/ true); + return isVariableDeclaration(node) && + !!node.initializer && + isRequireCall(allowAccessedRequire ? getLeftmostAccessExpression(node.initializer) : node.initializer, /*requireStringLiteralLikeArgument*/ true); } export function isRequireVariableStatement(node: Node): node is RequireVariableStatement { return isVariableStatement(node) && node.declarationList.declarations.length > 0 - && every(node.declarationList.declarations, decl => isRequireVariableDeclaration(decl)); + && every(node.declarationList.declarations, decl => isVariableDeclarationInitializedToRequire(decl)); } export function isSingleOrDoubleQuote(charCode: number) { @@ -2223,7 +2304,7 @@ namespace ts { const e = isBinaryExpression(initializer) && (initializer.operatorToken.kind === SyntaxKind.BarBarToken || initializer.operatorToken.kind === SyntaxKind.QuestionQuestionToken) && getExpandoInitializer(initializer.right, isPrototypeAssignment); - if (e && isSameEntityName(name, (initializer as BinaryExpression).left)) { + if (e && isSameEntityName(name, initializer.left)) { return e; } } @@ -2456,7 +2537,7 @@ namespace ts { return expr.right; } - export function isPrototypePropertyAssignment(node: Node): boolean { + export function isPrototypePropertyAssignment(node: Node): node is BinaryExpression { return isBinaryExpression(node) && getAssignmentDeclarationKind(node) === AssignmentDeclarationKind.PrototypeProperty; } @@ -3165,7 +3246,7 @@ namespace ts { return undefined; } - export function isKeyword(token: SyntaxKind): boolean { + export function isKeyword(token: SyntaxKind): token is KeywordSyntaxKind { return SyntaxKind.FirstKeyword <= token && token <= SyntaxKind.LastKeyword; } @@ -3350,7 +3431,7 @@ namespace ts { return node.escapedText === "push" || node.escapedText === "unshift"; } - export function isParameterDeclaration(node: VariableLikeDeclaration) { + export function isParameterDeclaration(node: VariableLikeDeclaration): boolean { const root = getRootDeclaration(node); return root.kind === SyntaxKind.Parameter; } @@ -4544,7 +4625,7 @@ namespace ts { /** template tags are only available when a typedef isn't already using them */ function isNonTypeAliasTemplate(tag: JSDocTag): tag is JSDocTemplateTag { - return isJSDocTemplateTag(tag) && !(tag.parent.kind === SyntaxKind.JSDocComment && tag.parent.tags!.some(isJSDocTypeAlias)); + return isJSDocTemplateTag(tag) && !(tag.parent.kind === SyntaxKind.JSDoc && tag.parent.tags!.some(isJSDocTypeAlias)); } /** @@ -4926,6 +5007,8 @@ namespace ts { case SyntaxKind.AsyncKeyword: return ModifierFlags.Async; case SyntaxKind.ReadonlyKeyword: return ModifierFlags.Readonly; case SyntaxKind.OverrideKeyword: return ModifierFlags.Override; + case SyntaxKind.InKeyword: return ModifierFlags.In; + case SyntaxKind.OutKeyword: return ModifierFlags.Out; } return ModifierFlags.None; } @@ -5862,7 +5945,7 @@ namespace ts { } // eslint-disable-next-line prefer-const - export let objectAllocator: ObjectAllocator = { + export const objectAllocator: ObjectAllocator = { getNodeConstructor: () => Node as any, getTokenConstructor: () => Token as any, getIdentifierConstructor: () => Identifier as any, @@ -5875,20 +5958,29 @@ namespace ts { }; export function setObjectAllocator(alloc: ObjectAllocator) { - objectAllocator = alloc; + Object.assign(objectAllocator, alloc); } export function formatStringFromArgs(text: string, args: ArrayLike, baseIndex = 0): string { return text.replace(/{(\d+)}/g, (_match, index: string) => "" + Debug.checkDefined(args[+index + baseIndex])); } - export let localizedDiagnosticMessages: MapLike | undefined; + let localizedDiagnosticMessages: MapLike | undefined; /* @internal */ export function setLocalizedDiagnosticMessages(messages: typeof localizedDiagnosticMessages) { localizedDiagnosticMessages = messages; } + /* @internal */ + // If the localized messages json is unset, and if given function use it to set the json + + export function maybeSetLocalizedDiagnosticMessages(getMessages: undefined | (() => typeof localizedDiagnosticMessages)) { + if (!localizedDiagnosticMessages && getMessages) { + localizedDiagnosticMessages = getMessages(); + } + } + export function getLocaleSpecificMessage(message: DiagnosticMessage) { return localizedDiagnosticMessages && localizedDiagnosticMessages[message.key] || message.message; } @@ -6130,6 +6222,63 @@ namespace ts { return scriptKind === ScriptKind.TSX || scriptKind === ScriptKind.JSX || scriptKind === ScriptKind.JS || scriptKind === ScriptKind.JSON ? LanguageVariant.JSX : LanguageVariant.Standard; } + /** + * This is a somewhat unavoidable full tree walk to locate a JSX tag - `import.meta` requires the same, + * but we avoid that walk (or parts of it) if at all possible using the `PossiblyContainsImportMeta` node flag. + * Unfortunately, there's no `NodeFlag` space to do the same for JSX. + */ + function walkTreeForJSXTags(node: Node): Node | undefined { + if (!(node.transformFlags & TransformFlags.ContainsJsx)) return undefined; + return isJsxOpeningLikeElement(node) || isJsxFragment(node) ? node : forEachChild(node, walkTreeForJSXTags); + } + + function isFileModuleFromUsingJSXTag(file: SourceFile): Node | undefined { + // Excludes declaration files - they still require an explicit `export {}` or the like + // for back compat purposes. (not that declaration files should contain JSX tags!) + return !file.isDeclarationFile ? walkTreeForJSXTags(file) : undefined; + } + + /** + * Note that this requires file.impliedNodeFormat be set already; meaning it must be set very early on + * in SourceFile construction. + */ + function isFileForcedToBeModuleByFormat(file: SourceFile): true | undefined { + // Excludes declaration files - they still require an explicit `export {}` or the like + // for back compat purposes. + return file.impliedNodeFormat === ModuleKind.ESNext && !file.isDeclarationFile ? true : undefined; + } + + export function getSetExternalModuleIndicator(options: CompilerOptions): (file: SourceFile) => void { + // TODO: Should this callback be cached? + switch (getEmitModuleDetectionKind(options)) { + case ModuleDetectionKind.Force: + // All non-declaration files are modules, declaration files still do the usual isFileProbablyExternalModule + return (file: SourceFile) => { + file.externalModuleIndicator = !file.isDeclarationFile || isFileProbablyExternalModule(file); + }; + case ModuleDetectionKind.Legacy: + // Files are modules if they have imports, exports, or import.meta + return (file: SourceFile) => { + file.externalModuleIndicator = isFileProbablyExternalModule(file); + }; + case ModuleDetectionKind.Auto: + // If module is nodenext or node12, all esm format files are modules + // If jsx is react-jsx or react-jsxdev then jsx tags force module-ness + // otherwise, the presence of import or export statments (or import.meta) implies module-ness + const checks: ((file: SourceFile) => Node | true | undefined)[] = [isFileProbablyExternalModule]; + if (options.jsx === JsxEmit.ReactJSX || options.jsx === JsxEmit.ReactJSXDev) { + checks.push(isFileModuleFromUsingJSXTag); + } + const moduleKind = getEmitModuleKind(options); + if (moduleKind === ModuleKind.Node12 || moduleKind === ModuleKind.NodeNext) { + checks.push(isFileForcedToBeModuleByFormat); + } + const combined = or(...checks); + const callback = (file: SourceFile) => void (file.externalModuleIndicator = combined(file)); + return callback; + } + } + export function getEmitScriptTarget(compilerOptions: {module?: CompilerOptions["module"], target?: CompilerOptions["target"]}) { return compilerOptions.target || (compilerOptions.module === ModuleKind.Node12 && ScriptTarget.ES2020) || @@ -6164,6 +6313,10 @@ namespace ts { return moduleResolution; } + export function getEmitModuleDetectionKind(options: CompilerOptions) { + return options.moduleDetection || ModuleDetectionKind.Auto; + } + export function hasJsonModuleEmitEnabled(options: CompilerOptions) { switch (getEmitModuleKind(options)) { case ModuleKind.CommonJS: @@ -6172,6 +6325,8 @@ namespace ts { case ModuleKind.ES2020: case ModuleKind.ES2022: case ModuleKind.ESNext: + case ModuleKind.Node12: + case ModuleKind.NodeNext: return true; default: return false; @@ -6242,7 +6397,7 @@ namespace ts { } export function getUseDefineForClassFields(compilerOptions: CompilerOptions): boolean { - return compilerOptions.useDefineForClassFields === undefined ? getEmitScriptTarget(compilerOptions) === ScriptTarget.ESNext : compilerOptions.useDefineForClassFields; + return compilerOptions.useDefineForClassFields === undefined ? getEmitScriptTarget(compilerOptions) >= ScriptTarget.ES2022 : compilerOptions.useDefineForClassFields; } export function compilerOptionsAffectSemanticDiagnostics(newOptions: CompilerOptions, oldOptions: CompilerOptions): boolean { @@ -6309,15 +6464,13 @@ namespace ts { getSymlinkedFiles(): ReadonlyESMap | undefined; setSymlinkedDirectory(symlink: string, real: SymlinkedDirectory | false): void; setSymlinkedFile(symlinkPath: Path, real: string): void; - /*@internal*/ - setSymlinkedDirectoryFromSymlinkedFile(symlink: string, real: string): void; /** * @internal * Uses resolvedTypeReferenceDirectives from program instead of from files, since files * don't include automatic type reference directives. Must be called only when * `hasProcessedResolutions` returns false (once per cache instance). */ - setSymlinksFromResolutions(files: readonly SourceFile[], typeReferenceDirectives: ReadonlyESMap | undefined): void; + setSymlinksFromResolutions(files: readonly SourceFile[], typeReferenceDirectives: ModeAwareCache | undefined): void; /** * @internal * Whether `setSymlinksFromResolutions` has already been called. @@ -6348,16 +6501,6 @@ namespace ts { (symlinkedDirectories || (symlinkedDirectories = new Map())).set(symlinkPath, real); } }, - setSymlinkedDirectoryFromSymlinkedFile(symlink, real) { - this.setSymlinkedFile(toPath(symlink, cwd, getCanonicalFileName), real); - const [commonResolved, commonOriginal] = guessDirectorySymlink(real, symlink, cwd, getCanonicalFileName) || emptyArray; - if (commonResolved && commonOriginal) { - this.setSymlinkedDirectory(commonOriginal, { - real: commonResolved, - realPath: toPath(commonResolved, cwd, getCanonicalFileName), - }); - } - }, setSymlinksFromResolutions(files, typeReferenceDirectives) { Debug.assert(!hasProcessedResolutions); hasProcessedResolutions = true; @@ -6617,7 +6760,7 @@ namespace ts { includeFilePattern: getRegularExpressionForWildcard(includes, absolutePath, "files"), includeDirectoryPattern: getRegularExpressionForWildcard(includes, absolutePath, "directories"), excludePattern: getRegularExpressionForWildcard(excludes, absolutePath, "exclude"), - basePaths: getBasePaths(absolutePath, includes, useCaseSensitiveFileNames) + basePaths: getBasePaths(path, includes, useCaseSensitiveFileNames) }; } @@ -6626,7 +6769,7 @@ namespace ts { } /** @param path directory of the tsconfig.json */ - export function matchFiles(path: string, extensions: readonly string[] | undefined, excludes: readonly string[] | undefined, includes: readonly string[] | undefined, useCaseSensitiveFileNames: boolean, currentDirectory: string, depth: number | undefined, getFileSystemEntries: (path: string) => FileSystemEntries, realpath: (path: string) => string, directoryExists: (path: string) => boolean): string[] { + export function matchFiles(path: string, extensions: readonly string[] | undefined, excludes: readonly string[] | undefined, includes: readonly string[] | undefined, useCaseSensitiveFileNames: boolean, currentDirectory: string, depth: number | undefined, getFileSystemEntries: (path: string) => FileSystemEntries, realpath: (path: string) => string): string[] { path = normalizePath(path); currentDirectory = normalizePath(currentDirectory); @@ -6641,22 +6784,20 @@ namespace ts { const results: string[][] = includeFileRegexes ? includeFileRegexes.map(() => []) : [[]]; const visited = new Map(); const toCanonical = createGetCanonicalFileName(useCaseSensitiveFileNames); - for (const absoluteBasePath of patterns.basePaths) { - if (directoryExists(absoluteBasePath)) { - visitDirectory(absoluteBasePath, depth); - } + for (const basePath of patterns.basePaths) { + visitDirectory(basePath, combinePaths(currentDirectory, basePath), depth); } return flatten(results); - function visitDirectory(absolutePath: string, depth: number | undefined) { + function visitDirectory(path: string, absolutePath: string, depth: number | undefined) { const canonicalPath = toCanonical(realpath(absolutePath)); if (visited.has(canonicalPath)) return; visited.set(canonicalPath, true); - const { files, directories } = getFileSystemEntries(absolutePath); + const { files, directories } = getFileSystemEntries(path); for (const current of sort(files, compareStringsCaseSensitive)) { - const name = combinePaths(absolutePath, current); + const name = combinePaths(path, current); const absoluteName = combinePaths(absolutePath, current); if (extensions && !fileExtensionIsOneOf(name, extensions)) continue; if (excludeRegex && excludeRegex.test(absoluteName)) continue; @@ -6679,10 +6820,11 @@ namespace ts { } for (const current of sort(directories, compareStringsCaseSensitive)) { + const name = combinePaths(path, current); const absoluteName = combinePaths(absolutePath, current); if ((!includeDirectoryRegex || includeDirectoryRegex.test(absoluteName)) && (!excludeRegex || !excludeRegex.test(absoluteName))) { - visitDirectory(absoluteName, depth); + visitDirectory(name, absoluteName, depth); } } } @@ -6690,11 +6832,10 @@ namespace ts { /** * Computes the unique non-wildcard base paths amongst the provided include patterns. - * @returns Absolute directory paths */ - function getBasePaths(absoluteTsconfigPath: string, includes: readonly string[] | undefined, useCaseSensitiveFileNames: boolean): string[] { + function getBasePaths(path: string, includes: readonly string[] | undefined, useCaseSensitiveFileNames: boolean): string[] { // Storage for our results in the form of literal paths (e.g. the paths as written by the user). - const basePaths: string[] = [absoluteTsconfigPath]; + const basePaths: string[] = [path]; if (includes) { // Storage for literal base paths amongst the include patterns. @@ -6702,9 +6843,9 @@ namespace ts { for (const include of includes) { // We also need to check the relative paths by converting them to absolute and normalizing // in case they escape the base path (e.g "..\somedirectory") - const absoluteIncludePath: string = isRootedDiskPath(include) ? include : normalizePath(combinePaths(absoluteTsconfigPath, include)); + const absolute: string = isRootedDiskPath(include) ? include : normalizePath(combinePaths(path, include)); // Append the literal and canonical candidate base paths. - includeBasePaths.push(getIncludeBasePath(absoluteIncludePath)); + includeBasePaths.push(getIncludeBasePath(absolute)); } // Sort the offsets array using either the literal or canonical path representations. @@ -6713,7 +6854,7 @@ namespace ts { // Iterate over each include base path and include unique base paths that are not a // subpath of an existing base path for (const includeBasePath of includeBasePaths) { - if (every(basePaths, basePath => !containsPath(basePath, includeBasePath, absoluteTsconfigPath, !useCaseSensitiveFileNames))) { + if (every(basePaths, basePath => !containsPath(basePath, includeBasePath, path, !useCaseSensitiveFileNames))) { basePaths.push(includeBasePath); } } @@ -6984,18 +7125,6 @@ namespace ts { return { min, max }; } - /** @deprecated Use `ReadonlySet` instead. */ - export type ReadonlyNodeSet = ReadonlySet; - - /** @deprecated Use `Set` instead. */ - export type NodeSet = Set; - - /** @deprecated Use `ReadonlyMap` instead. */ - export type ReadonlyNodeMap = ReadonlyESMap; - - /** @deprecated Use `Map` instead. */ - export type NodeMap = ESMap; - export function rangeOfNode(node: Node): TextRange { return { pos: getTokenPosOfNode(node), end: node.end }; } @@ -7427,4 +7556,107 @@ namespace ts { export function isFunctionExpressionOrArrowFunction(node: Node): node is FunctionExpression | ArrowFunction { return node.kind === SyntaxKind.FunctionExpression || node.kind === SyntaxKind.ArrowFunction; } + + export function escapeSnippetText(text: string): string { + return text.replace(/\$/gm, () => "\\$"); + } + + export function isNumericLiteralName(name: string | __String) { + // The intent of numeric names is that + // - they are names with text in a numeric form, and that + // - setting properties/indexing with them is always equivalent to doing so with the numeric literal 'numLit', + // acquired by applying the abstract 'ToNumber' operation on the name's text. + // + // The subtlety is in the latter portion, as we cannot reliably say that anything that looks like a numeric literal is a numeric name. + // In fact, it is the case that the text of the name must be equal to 'ToString(numLit)' for this to hold. + // + // Consider the property name '"0xF00D"'. When one indexes with '0xF00D', they are actually indexing with the value of 'ToString(0xF00D)' + // according to the ECMAScript specification, so it is actually as if the user indexed with the string '"61453"'. + // Thus, the text of all numeric literals equivalent to '61543' such as '0xF00D', '0xf00D', '0170015', etc. are not valid numeric names + // because their 'ToString' representation is not equal to their original text. + // This is motivated by ECMA-262 sections 9.3.1, 9.8.1, 11.1.5, and 11.2.1. + // + // Here, we test whether 'ToString(ToNumber(name))' is exactly equal to 'name'. + // The '+' prefix operator is equivalent here to applying the abstract ToNumber operation. + // Applying the 'toString()' method on a number gives us the abstract ToString operation on a number. + // + // Note that this accepts the values 'Infinity', '-Infinity', and 'NaN', and that this is intentional. + // This is desired behavior, because when indexing with them as numeric entities, you are indexing + // with the strings '"Infinity"', '"-Infinity"', and '"NaN"' respectively. + return (+name).toString() === name; + } + + export function createPropertyNameNodeForIdentifierOrLiteral(name: string, target: ScriptTarget, singleQuote?: boolean, stringNamed?: boolean) { + return isIdentifierText(name, target) ? factory.createIdentifier(name) : + !stringNamed && isNumericLiteralName(name) && +name >= 0 ? factory.createNumericLiteral(+name) : + factory.createStringLiteral(name, !!singleQuote); + } + + export function isThisTypeParameter(type: Type): boolean { + return !!(type.flags & TypeFlags.TypeParameter && (type as TypeParameter).isThisType); + } + + export interface NodeModulePathParts { + readonly topLevelNodeModulesIndex: number; + readonly topLevelPackageNameIndex: number; + readonly packageRootIndex: number; + readonly fileNameIndex: number; + } + export function getNodeModulePathParts(fullPath: string): NodeModulePathParts | undefined { + // If fullPath can't be valid module file within node_modules, returns undefined. + // Example of expected pattern: /base/path/node_modules/[@scope/otherpackage/@otherscope/node_modules/]package/[subdirectory/]file.js + // Returns indices: ^ ^ ^ ^ + + let topLevelNodeModulesIndex = 0; + let topLevelPackageNameIndex = 0; + let packageRootIndex = 0; + let fileNameIndex = 0; + + const enum States { + BeforeNodeModules, + NodeModules, + Scope, + PackageContent + } + + let partStart = 0; + let partEnd = 0; + let state = States.BeforeNodeModules; + + while (partEnd >= 0) { + partStart = partEnd; + partEnd = fullPath.indexOf("/", partStart + 1); + switch (state) { + case States.BeforeNodeModules: + if (fullPath.indexOf(nodeModulesPathPart, partStart) === partStart) { + topLevelNodeModulesIndex = partStart; + topLevelPackageNameIndex = partEnd; + state = States.NodeModules; + } + break; + case States.NodeModules: + case States.Scope: + if (state === States.NodeModules && fullPath.charAt(partStart + 1) === "@") { + state = States.Scope; + } + else { + packageRootIndex = partEnd; + state = States.PackageContent; + } + break; + case States.PackageContent: + if (fullPath.indexOf(nodeModulesPathPart, partStart) === partStart) { + state = States.NodeModules; + } + else { + state = States.PackageContent; + } + break; + } + } + + fileNameIndex = partStart; + + return state > States.NodeModules ? { topLevelNodeModulesIndex, topLevelPackageNameIndex, packageRootIndex, fileNameIndex } : undefined; + } } diff --git a/src/compiler/utilitiesPublic.ts b/src/compiler/utilitiesPublic.ts index d638ec32a8270..ecfb4e52dafca 100644 --- a/src/compiler/utilitiesPublic.ts +++ b/src/compiler/utilitiesPublic.ts @@ -14,6 +14,8 @@ namespace ts { switch (getEmitScriptTarget(options)) { case ScriptTarget.ESNext: return "lib.esnext.full.d.ts"; + case ScriptTarget.ES2022: + return "lib.es2022.full.d.ts"; case ScriptTarget.ES2021: return "lib.es2021.full.d.ts"; case ScriptTarget.ES2020: @@ -903,9 +905,16 @@ namespace ts { /** Gets the text of a jsdoc comment, flattening links to their text. */ export function getTextOfJSDocComment(comment?: string | NodeArray) { return typeof comment === "string" ? comment - : comment?.map(c => - // TODO: Other kinds here - c.kind === SyntaxKind.JSDocText ? c.text : `{@link ${c.name ? entityNameToString(c.name) + " " : ""}${c.text}}`).join(""); + : comment?.map(c => c.kind === SyntaxKind.JSDocText ? c.text : formatJSDocLink(c)).join(""); + } + + function formatJSDocLink(link: JSDocLink | JSDocLinkCode | JSDocLinkPlain) { + const kind = link.kind === SyntaxKind.JSDocLink ? "link" + : link.kind === SyntaxKind.JSDocLinkCode ? "linkcode" + : "linkplain"; + const name = link.name ? entityNameToString(link.name) : ""; + const space = link.name && link.text.startsWith("://") ? "" : " "; + return `{@${kind} ${name}${space}${link.text}}`; } /** @@ -917,7 +926,7 @@ namespace ts { return emptyArray; } if (isJSDocTypeAlias(node)) { - Debug.assert(node.parent.kind === SyntaxKind.JSDocComment); + Debug.assert(node.parent.kind === SyntaxKind.JSDoc); return flatMap(node.parent.tags, tag => isJSDocTemplateTag(tag) ? tag.typeParameters : undefined); } if (node.typeParameters) { @@ -1178,11 +1187,13 @@ namespace ts { case SyntaxKind.DeclareKeyword: case SyntaxKind.DefaultKeyword: case SyntaxKind.ExportKeyword: + case SyntaxKind.InKeyword: case SyntaxKind.PublicKeyword: case SyntaxKind.PrivateKeyword: case SyntaxKind.ProtectedKeyword: case SyntaxKind.ReadonlyKeyword: case SyntaxKind.StaticKeyword: + case SyntaxKind.OutKeyword: case SyntaxKind.OverrideKeyword: return true; } @@ -1324,7 +1335,9 @@ namespace ts { || kind === SyntaxKind.CallSignature || kind === SyntaxKind.PropertySignature || kind === SyntaxKind.MethodSignature - || kind === SyntaxKind.IndexSignature; + || kind === SyntaxKind.IndexSignature + || kind === SyntaxKind.GetAccessor + || kind === SyntaxKind.SetAccessor; } export function isClassOrTypeElement(node: Node): node is ClassElement | TypeElement { @@ -1529,6 +1542,7 @@ namespace ts { case SyntaxKind.TrueKeyword: case SyntaxKind.SuperKeyword: case SyntaxKind.NonNullExpression: + case SyntaxKind.ExpressionWithTypeArguments: case SyntaxKind.MetaProperty: case SyntaxKind.ImportKeyword: // technically this is only an Expression if it's in a CallExpression return true; @@ -1902,7 +1916,7 @@ namespace ts { /** True if node is of a kind that may contain comment text. */ export function isJSDocCommentContainingNode(node: Node): boolean { - return node.kind === SyntaxKind.JSDocComment + return node.kind === SyntaxKind.JSDoc || node.kind === SyntaxKind.JSDocNamepathType || node.kind === SyntaxKind.JSDocText || isJSDocLinkLike(node) diff --git a/src/compiler/visitorPublic.ts b/src/compiler/visitorPublic.ts index 5651ac043d325..ef05168148e5a 100644 --- a/src/compiler/visitorPublic.ts +++ b/src/compiler/visitorPublic.ts @@ -385,6 +385,7 @@ namespace ts { case SyntaxKind.TypeParameter: Debug.type(node); return factory.updateTypeParameterDeclaration(node, + nodesVisitor(node.modifiers, visitor, isModifier), nodeVisitor(node.name, visitor, isIdentifier), nodeVisitor(node.constraint, visitor, isTypeNode), nodeVisitor(node.default, visitor, isTypeNode)); @@ -538,7 +539,8 @@ namespace ts { case SyntaxKind.TypeQuery: Debug.type(node); return factory.updateTypeQueryNode(node, - nodeVisitor(node.exprName, visitor, isEntityName)); + nodeVisitor(node.exprName, visitor, isEntityName), + nodesVisitor(node.typeArguments, visitor, isTypeNode)); case SyntaxKind.TypeLiteral: Debug.type(node); @@ -592,11 +594,19 @@ namespace ts { Debug.type(node); return factory.updateImportTypeNode(node, nodeVisitor(node.argument, visitor, isTypeNode), + nodeVisitor(node.assertions, visitor, isNode), nodeVisitor(node.qualifier, visitor, isEntityName), visitNodes(node.typeArguments, visitor, isTypeNode), node.isTypeOf ); + case SyntaxKind.ImportTypeAssertionContainer: + Debug.type(node); + return factory.updateImportTypeAssertionContainer(node, + nodeVisitor(node.assertClause, visitor, isNode), + node.multiLine + ); + case SyntaxKind.NamedTupleMember: Debug.type(node); return factory.updateNamedTupleMember(node, @@ -1090,7 +1100,7 @@ namespace ts { Debug.type(node); return factory.updateAssertEntry(node, nodeVisitor(node.name, visitor, isAssertionKey), - nodeVisitor(node.value, visitor, isStringLiteral)); + nodeVisitor(node.value, visitor, isExpressionNode)); case SyntaxKind.ImportClause: Debug.type(node); diff --git a/src/compiler/watch.ts b/src/compiler/watch.ts index 71853f4f34b52..b2f7a0a3bc540 100644 --- a/src/compiler/watch.ts +++ b/src/compiler/watch.ts @@ -7,7 +7,7 @@ namespace ts { } : undefined; /** - * Create a function that reports error by writing to the system and handles the formating of the diagnostic + * Create a function that reports error by writing to the system and handles the formatting of the diagnostic */ export function createDiagnosticReporter(system: System, pretty?: boolean): DiagnosticReporter { const host: FormatDiagnosticsHost = system === sys && sysFormatDiagnosticsHost ? sysFormatDiagnosticsHost : { @@ -64,7 +64,7 @@ namespace ts { } /** - * Create a function that reports watch status by writing to the system and handles the formating of the diagnostic + * Create a function that reports watch status by writing to the system and handles the formatting of the diagnostic */ export function createWatchStatusReporter(system: System, pretty?: boolean): WatchStatusReporter { return pretty ? @@ -101,16 +101,104 @@ namespace ts { return countWhere(diagnostics, diagnostic => diagnostic.category === DiagnosticCategory.Error); } + export function getFilesInErrorForSummary(diagnostics: readonly Diagnostic[]): (ReportFileInError | undefined)[] { + const filesInError = + filter(diagnostics, diagnostic => diagnostic.category === DiagnosticCategory.Error) + .map( + errorDiagnostic => { + if(errorDiagnostic.file === undefined) return; + return `${errorDiagnostic.file.fileName}`; + }); + return filesInError.map((fileName: string) => { + const diagnosticForFileName = find(diagnostics, diagnostic => + diagnostic.file !== undefined && diagnostic.file.fileName === fileName + ); + + if(diagnosticForFileName !== undefined) { + const { line } = getLineAndCharacterOfPosition(diagnosticForFileName.file!, diagnosticForFileName.start!); + return { + fileName, + line: line + 1, + }; + } + }); + } + export function getWatchErrorSummaryDiagnosticMessage(errorCount: number) { return errorCount === 1 ? Diagnostics.Found_1_error_Watching_for_file_changes : Diagnostics.Found_0_errors_Watching_for_file_changes; } - export function getErrorSummaryText(errorCount: number, newLine: string) { + function prettyPathForFileError(error: ReportFileInError, cwd: string) { + const line = formatColorAndReset(":" + error.line, ForegroundColorEscapeSequences.Grey); + if (pathIsAbsolute(error.fileName) && pathIsAbsolute(cwd)) { + return getRelativePathFromDirectory(cwd, error.fileName, /* ignoreCase */ false) + line; + } + + return error.fileName + line; + } + + export function getErrorSummaryText( + errorCount: number, + filesInError: readonly (ReportFileInError | undefined)[], + newLine: string, + host: HasCurrentDirectory + ) { if (errorCount === 0) return ""; - const d = createCompilerDiagnostic(errorCount === 1 ? Diagnostics.Found_1_error : Diagnostics.Found_0_errors, errorCount); - return `${newLine}${flattenDiagnosticMessageText(d.messageText, newLine)}${newLine}${newLine}`; + const nonNilFiles = filesInError.filter(fileInError => fileInError !== undefined); + const distinctFileNamesWithLines = nonNilFiles.map(fileInError => `${fileInError!.fileName}:${fileInError!.line}`) + .filter((value, index, self) => self.indexOf(value) === index); + + const firstFileReference = nonNilFiles[0] && prettyPathForFileError(nonNilFiles[0], host.getCurrentDirectory()); + + const d = errorCount === 1 ? + createCompilerDiagnostic( + filesInError[0] !== undefined ? + Diagnostics.Found_1_error_in_1 : + Diagnostics.Found_1_error, + errorCount, + firstFileReference) : + createCompilerDiagnostic( + distinctFileNamesWithLines.length === 0 ? + Diagnostics.Found_0_errors : + distinctFileNamesWithLines.length === 1 ? + Diagnostics.Found_0_errors_in_the_same_file_starting_at_Colon_1 : + Diagnostics.Found_0_errors_in_1_files, + errorCount, + distinctFileNamesWithLines.length === 1 ? firstFileReference : distinctFileNamesWithLines.length); + + const suffix = distinctFileNamesWithLines.length > 1 ? createTabularErrorsDisplay(nonNilFiles, host) : ""; + return `${newLine}${flattenDiagnosticMessageText(d.messageText, newLine)}${newLine}${newLine}${suffix}`; + } + + function createTabularErrorsDisplay(filesInError: (ReportFileInError | undefined)[], host: HasCurrentDirectory) { + const distinctFiles = filesInError.filter((value, index, self) => index === self.findIndex(file => file?.fileName === value?.fileName)); + if (distinctFiles.length === 0) return ""; + + const numberLength = (num: number) => Math.log(num) * Math.LOG10E + 1; + const fileToErrorCount = distinctFiles.map(file => ([file, countWhere(filesInError, fileInError => fileInError!.fileName === file!.fileName)] as const)); + const maxErrors = fileToErrorCount.reduce((acc, value) => Math.max(acc, value[1] || 0), 0); + + const headerRow = Diagnostics.Errors_Files.message; + const leftColumnHeadingLength = headerRow.split(" ")[0].length; + const leftPaddingGoal = Math.max(leftColumnHeadingLength, numberLength(maxErrors)); + const headerPadding = Math.max(numberLength(maxErrors) - leftColumnHeadingLength, 0); + + let tabularData = ""; + tabularData += " ".repeat(headerPadding) + headerRow + "\n"; + fileToErrorCount.forEach((row) => { + const [file, errorCount] = row; + const errorCountDigitsLength = Math.log(errorCount) * Math.LOG10E + 1 | 0; + const leftPadding = errorCountDigitsLength < leftPaddingGoal ? + " ".repeat(leftPaddingGoal - errorCountDigitsLength) + : ""; + + const fileRef = prettyPathForFileError(file!, host.getCurrentDirectory()); + tabularData += `${leftPadding}${errorCount} ${fileRef}\n`; + }); + + return tabularData; } export function isBuilderProgram(program: Program | BuilderProgram): program is BuilderProgram { @@ -350,7 +438,7 @@ namespace ts { } if (reportSummary) { - reportSummary(getErrorCountForSummary(diagnostics)); + reportSummary(getErrorCountForSummary(diagnostics), getFilesInErrorForSummary(diagnostics)); } return { @@ -451,7 +539,7 @@ namespace ts { const useCaseSensitiveFileNames = host.useCaseSensitiveFileNames(); const hostGetNewLine = memoize(() => host.getNewLine()); return { - getSourceFile: (fileName, languageVersion, onError) => { + getSourceFile: (fileName, languageVersionOrOptions, onError) => { let text: string | undefined; try { performance.mark("beforeIORead"); @@ -466,7 +554,7 @@ namespace ts { text = ""; } - return text !== undefined ? createSourceFile(fileName, text, languageVersion) : undefined; + return text !== undefined ? createSourceFile(fileName, text, languageVersionOrOptions) : undefined; }, getDefaultLibLocation: maybeBind(host, host.getDefaultLibLocation), getDefaultLibFileName: options => host.getDefaultLibFileName(options), @@ -656,7 +744,7 @@ namespace ts { builderProgram, input.reportDiagnostic || createDiagnosticReporter(system), s => host.trace && host.trace(s), - input.reportErrorSummary || input.options.pretty ? errorCount => system.write(getErrorSummaryText(errorCount, system.newLine)) : undefined + input.reportErrorSummary || input.options.pretty ? (errorCount, filesInError) => system.write(getErrorSummaryText(errorCount, filesInError, system.newLine, host)) : undefined ); if (input.afterProgramEmitAndDiagnostics) input.afterProgramEmitAndDiagnostics(builderProgram); return exitStatus; diff --git a/src/compiler/watchPublic.ts b/src/compiler/watchPublic.ts index 33220b03d2e43..095c0f69a1083 100644 --- a/src/compiler/watchPublic.ts +++ b/src/compiler/watchPublic.ts @@ -103,7 +103,7 @@ namespace ts { /** If provided, used to resolve the module names, otherwise typescript's default module resolution */ resolveModuleNames?(moduleNames: string[], containingFile: string, reusedNames: string[] | undefined, redirectedReference: ResolvedProjectReference | undefined, options: CompilerOptions, containingSourceFile?: SourceFile): (ResolvedModule | undefined)[]; /** If provided, used to resolve type reference directives, otherwise typescript's default resolution */ - resolveTypeReferenceDirectives?(typeReferenceDirectiveNames: string[], containingFile: string, redirectedReference: ResolvedProjectReference | undefined, options: CompilerOptions): (ResolvedTypeReferenceDirective | undefined)[]; + resolveTypeReferenceDirectives?(typeReferenceDirectiveNames: string[] | readonly FileReference[], containingFile: string, redirectedReference: ResolvedProjectReference | undefined, options: CompilerOptions, containingFileMode?: SourceFile["impliedNodeFormat"] | undefined): (ResolvedTypeReferenceDirective | undefined)[]; } /** Internal interface used to wire emit through same host */ @@ -273,6 +273,7 @@ namespace ts { let sharedExtendedConfigFileWatchers: ESMap>; // Map of file watchers for extended files, shared between different referenced projects let extendedConfigCache = host.extendedConfigCache; // Cache for extended config evaluation let changesAffectResolution = false; // Flag for indicating non-config changes affect module resolution + let reportFileChangeDetectedOnCreateProgram = false; // True if synchronizeProgram should report "File change detected..." when a new program is created const sourceFilesCache = new Map(); // Cache that stores the source file and version info let missingFilePathsRequestedForRelease: Path[] | undefined; // These paths are held temporarily so that we can remove the entry from source file cache if the file is not tracked by missing files @@ -352,7 +353,7 @@ namespace ts { ((moduleNames, containingFile, reusedNames, redirectedReference, _options, sourceFile) => resolutionCache.resolveModuleNames(moduleNames, containingFile, reusedNames, redirectedReference, sourceFile)); compilerHost.resolveTypeReferenceDirectives = host.resolveTypeReferenceDirectives ? ((...args) => host.resolveTypeReferenceDirectives!(...args)) : - ((typeDirectiveNames, containingFile, redirectedReference) => resolutionCache.resolveTypeReferenceDirectives(typeDirectiveNames, containingFile, redirectedReference)); + ((typeDirectiveNames, containingFile, redirectedReference, _options, containingFileMode) => resolutionCache.resolveTypeReferenceDirectives(typeDirectiveNames, containingFile, redirectedReference, containingFileMode)); const userProvidedResolution = !!host.resolveModuleNames || !!host.resolveTypeReferenceDirectives; builderProgram = readBuilderProgram(compilerOptions, compilerHost) as any as T; @@ -434,15 +435,22 @@ namespace ts { const hasInvalidatedResolution = resolutionCache.createHasInvalidatedResolution(userProvidedResolution || changesAffectResolution); if (isProgramUptoDate(getCurrentProgram(), rootFileNames, compilerOptions, getSourceVersion, fileExists, hasInvalidatedResolution, hasChangedAutomaticTypeDirectiveNames, getParsedCommandLine, projectReferences)) { if (hasChangedConfigFileParsingErrors) { + if (reportFileChangeDetectedOnCreateProgram) { + reportWatchDiagnostic(Diagnostics.File_change_detected_Starting_incremental_compilation); + } builderProgram = createProgram(/*rootNames*/ undefined, /*options*/ undefined, compilerHost, builderProgram, configFileParsingDiagnostics, projectReferences); hasChangedConfigFileParsingErrors = false; } } else { + if (reportFileChangeDetectedOnCreateProgram) { + reportWatchDiagnostic(Diagnostics.File_change_detected_Starting_incremental_compilation); + } createNewProgram(hasInvalidatedResolution); } changesAffectResolution = false; // reset for next sync + reportFileChangeDetectedOnCreateProgram = false; if (host.afterProgramCreate && program !== builderProgram) { host.afterProgramCreate(builderProgram); @@ -524,7 +532,7 @@ namespace ts { return directoryStructureHost.fileExists(fileName); } - function getVersionedSourceFileByPath(fileName: string, path: Path, languageVersion: ScriptTarget, onError?: (message: string) => void, shouldCreateNewSourceFile?: boolean): SourceFile | undefined { + function getVersionedSourceFileByPath(fileName: string, path: Path, languageVersionOrOptions: ScriptTarget | CreateSourceFileOptions, onError?: (message: string) => void, shouldCreateNewSourceFile?: boolean): SourceFile | undefined { const hostSourceFile = sourceFilesCache.get(path); // No source file on the host if (isFileMissingOnHost(hostSourceFile)) { @@ -533,7 +541,7 @@ namespace ts { // Create new source file if requested or the versions dont match if (hostSourceFile === undefined || shouldCreateNewSourceFile || isFilePresenceUnknownOnHost(hostSourceFile)) { - const sourceFile = getNewSourceFile(fileName, languageVersion, onError); + const sourceFile = getNewSourceFile(fileName, languageVersionOrOptions, onError); if (hostSourceFile) { if (sourceFile) { // Set the source file and create file watcher now that file was present on the disk @@ -665,7 +673,7 @@ namespace ts { function updateProgramWithWatchStatus() { timerToUpdateProgram = undefined; - reportWatchDiagnostic(Diagnostics.File_change_detected_Starting_incremental_compilation); + reportFileChangeDetectedOnCreateProgram = true; updateProgram(); } diff --git a/src/compiler/watchUtilities.ts b/src/compiler/watchUtilities.ts index c6b9df2c3e3b5..adbf9f1287b1b 100644 --- a/src/compiler/watchUtilities.ts +++ b/src/compiler/watchUtilities.ts @@ -184,7 +184,7 @@ namespace ts { const rootResult = tryReadDirectory(rootDir, rootDirPath); let rootSymLinkResult: FileSystemEntries | undefined; if (rootResult !== undefined) { - return matchFiles(rootDir, extensions, excludes, includes, useCaseSensitiveFileNames, currentDirectory, depth, getFileSystemEntries, realpath, directoryExists); + return matchFiles(rootDir, extensions, excludes, includes, useCaseSensitiveFileNames, currentDirectory, depth, getFileSystemEntries, realpath); } return host.readDirectory!(rootDir, extensions, excludes, includes, depth); diff --git a/src/executeCommandLine/executeCommandLine.ts b/src/executeCommandLine/executeCommandLine.ts index 54e15e1fb37b0..a7d776acd802f 100644 --- a/src/executeCommandLine/executeCommandLine.ts +++ b/src/executeCommandLine/executeCommandLine.ts @@ -160,7 +160,13 @@ namespace ts { // value type and possible value const valueCandidates = getValueCandidate(option); - const defaultValueDescription = typeof option.defaultValueDescription === "object" ? getDiagnosticText(option.defaultValueDescription) : option.defaultValueDescription; + const defaultValueDescription = + typeof option.defaultValueDescription === "object" + ? getDiagnosticText(option.defaultValueDescription) + : formatDefaultValue( + option.defaultValueDescription, + option.type === "list" ? option.element.type : option.type + ); const terminalWidth = sys.getWidthOfTerminal?.() ?? 0; // Note: child_process might return `terminalWidth` as undefined. @@ -203,6 +209,19 @@ namespace ts { } return text; + function formatDefaultValue( + defaultValue: CommandLineOption["defaultValueDescription"], + type: CommandLineOption["type"] + ) { + return defaultValue !== undefined && typeof type === "object" + // e.g. ScriptTarget.ES2015 -> "es6/es2015" + ? arrayFrom(type.entries()) + .filter(([, value]) => value === defaultValue) + .map(([name]) => name) + .join("/") + : String(defaultValue); + } + function showAdditionalInfoOutput(valueCandidates: ValueCandidate | undefined, option: CommandLineOption): boolean { const ignoreValues = ["string"]; const ignoredDescriptions = [undefined, "false", "n/a"]; @@ -286,8 +305,14 @@ namespace ts { break; default: // ESMap - const keys = arrayFrom(option.type.keys()); - possibleValues = keys.join(", "); + // Group synonyms: es6/es2015 + const inverted: { [value: string]: string[] } = {}; + option.type.forEach((value, name) => { + (inverted[value] ||= []).push(name); + }); + return getEntries(inverted) + .map(([, synonyms]) => synonyms.join("/")) + .join(", "); } return possibleValues; } @@ -371,7 +396,7 @@ namespace ts { output = [ ...output, ...generateSectionOptionsOutput(sys, getDiagnosticText(Diagnostics.COMMAND_LINE_FLAGS), cliCommands, /*subCategory*/ false, /* beforeOptionsDescription */ undefined, /* afterOptionsDescription*/ undefined), - ...generateSectionOptionsOutput(sys, getDiagnosticText(Diagnostics.COMMON_COMPILER_OPTIONS), configOpts, /*subCategory*/ false, /* beforeOptionsDescription */ undefined, formatMessage(/*_dummy*/ undefined, Diagnostics.You_can_learn_about_all_of_the_compiler_options_at_0, "https://aka.ms/tsconfig-reference")) + ...generateSectionOptionsOutput(sys, getDiagnosticText(Diagnostics.COMMON_COMPILER_OPTIONS), configOpts, /*subCategory*/ false, /* beforeOptionsDescription */ undefined, formatMessage(/*_dummy*/ undefined, Diagnostics.You_can_learn_about_all_of_the_compiler_options_at_0, "https://aka.ms/tsc")) ]; for (const line of output) { @@ -389,7 +414,7 @@ namespace ts { function printAllHelp(sys: System, compilerOptions: readonly CommandLineOption[], buildOptions: readonly CommandLineOption[], watchOptions: readonly CommandLineOption[]) { let output: string[] = [...getHeader(sys,`${getDiagnosticText(Diagnostics.tsc_Colon_The_TypeScript_Compiler)} - ${getDiagnosticText(Diagnostics.Version_0, version)}`)]; - output = [...output, ...generateSectionOptionsOutput(sys, getDiagnosticText(Diagnostics.ALL_COMPILER_OPTIONS), compilerOptions, /*subCategory*/ true, /* beforeOptionsDescription */ undefined, formatMessage(/*_dummy*/ undefined, Diagnostics.You_can_learn_about_all_of_the_compiler_options_at_0, "https://aka.ms/tsconfig-reference"))]; + output = [...output, ...generateSectionOptionsOutput(sys, getDiagnosticText(Diagnostics.ALL_COMPILER_OPTIONS), compilerOptions, /*subCategory*/ true, /* beforeOptionsDescription */ undefined, formatMessage(/*_dummy*/ undefined, Diagnostics.You_can_learn_about_all_of_the_compiler_options_at_0, "https://aka.ms/tsc"))]; output = [...output, ...generateSectionOptionsOutput(sys, getDiagnosticText(Diagnostics.WATCH_OPTIONS), watchOptions, /*subCategory*/ false, getDiagnosticText(Diagnostics.Including_watch_w_will_start_watching_the_current_project_for_the_file_changes_Once_set_you_can_config_watch_mode_with_Colon))]; output = [...output, ...generateSectionOptionsOutput(sys, getDiagnosticText(Diagnostics.BUILD_OPTIONS), buildOptions, /*subCategory*/ false, formatMessage(/*_dummy*/ undefined, Diagnostics.Using_build_b_will_make_tsc_behave_more_like_a_build_orchestrator_than_a_compiler_This_is_used_to_trigger_building_composite_projects_which_you_can_learn_more_about_at_0, "https://aka.ms/tsc-composite-builds"))]; for (const line of output) { @@ -748,7 +773,7 @@ namespace ts { function createReportErrorSummary(sys: System, options: CompilerOptions | BuildOptions): ReportEmitErrorSummary | undefined { return shouldBePretty(sys, options) ? - errorCount => sys.write(getErrorSummaryText(errorCount, sys.newLine)) : + (errorCount, filesInError) => sys.write(getErrorSummaryText(errorCount, filesInError, sys.newLine, sys)) : undefined; } @@ -1036,7 +1061,7 @@ namespace ts { sys.writeFile(file, generateTSConfig(options, fileNames, sys.newLine)); const output: string[] = [sys.newLine, ...getHeader(sys,"Created a new tsconfig.json with:")]; output.push(getCompilerOptionsDiffValue(options, sys.newLine) + sys.newLine + sys.newLine); - output.push(`You can learn more at https://aka.ms/tsconfig.json` + sys.newLine); + output.push(`You can learn more at https://aka.ms/tsconfig` + sys.newLine); for (const line of output) { sys.write(line); } diff --git a/src/harness/client.ts b/src/harness/client.ts index 537aa7321e597..fab3c070fdf90 100644 --- a/src/harness/client.ts +++ b/src/harness/client.ts @@ -110,14 +110,12 @@ namespace ts.server { } } - // verify the sequence numbers - Debug.assert(response.request_seq === request.seq, "Malformed response: response sequence number did not match request sequence number."); - // unmarshal errors if (!response.success) { throw new Error("Error " + response.message); } + Debug.assert(response.request_seq === request.seq, "Malformed response: response sequence number did not match request sequence number."); Debug.assert(expectEmptyBody || !!response.body, "Malformed response: Unexpected empty response body."); Debug.assert(!expectEmptyBody || !response.body, "Malformed response: Unexpected non-empty response body."); diff --git a/src/harness/fakesHosts.ts b/src/harness/fakesHosts.ts index 898cfc048c32e..58b29a4c7ef98 100644 --- a/src/harness/fakesHosts.ts +++ b/src/harness/fakesHosts.ts @@ -95,7 +95,7 @@ namespace fakes { } public readDirectory(path: string, extensions?: readonly string[], exclude?: readonly string[], include?: readonly string[], depth?: number): string[] { - return ts.matchFiles(path, extensions, exclude, include, this.useCaseSensitiveFileNames, this.getCurrentDirectory(), depth, path => this.getAccessibleFileSystemEntries(path), path => this.realpath(path), path => this.directoryExists(path)); + return ts.matchFiles(path, extensions, exclude, include, this.useCaseSensitiveFileNames, this.getCurrentDirectory(), depth, path => this.getAccessibleFileSystemEntries(path), path => this.realpath(path)); } public getAccessibleFileSystemEntries(path: string): ts.FileSystemEntries { diff --git a/src/harness/findUpDir.ts b/src/harness/findUpDir.ts index 03b5ebdf285d0..3078554f61bd2 100644 --- a/src/harness/findUpDir.ts +++ b/src/harness/findUpDir.ts @@ -1,11 +1,11 @@ -namespace findUpDir { - import { join, resolve, dirname } from "path"; - import { existsSync } from "fs"; +namespace Utils { + const { join, resolve, dirname } = require("path") as typeof import("path"); + const { existsSync } = require("fs") as typeof import("fs"); // search directories upward to avoid hard-wired paths based on the // build tree (same as scripts/build/findUpDir.js) - export function findUpFile(name: string) { + export function findUpFile(name: string): string { let dir = __dirname; while (true) { const fullPath = join(dir, name); diff --git a/src/harness/fourslashImpl.ts b/src/harness/fourslashImpl.ts index 01f8113efe122..71886f8ff5f26 100644 --- a/src/harness/fourslashImpl.ts +++ b/src/harness/fourslashImpl.ts @@ -168,7 +168,7 @@ namespace FourSlash { // The position of the end of the current selection, or -1 if nothing is selected public selectionEnd = -1; - public lastKnownMarker = ""; + public lastKnownMarker: string | undefined; // The file that's currently 'opened' public activeFile!: FourSlashFile; @@ -400,7 +400,7 @@ namespace FourSlash { continue; } const memo = Utils.memoize( - (_version: number, _active: string, _caret: number, _selectEnd: number, _marker: string, ...args: any[]) => (ls[key] as Function)(...args), + (_version: number, _active: string, _caret: number, _selectEnd: number, _marker: string | undefined, ...args: any[]) => (ls[key] as Function)(...args), (...args) => args.map(a => a && typeof a === "object" ? JSON.stringify(a) : a).join("|,|") ); proxy[key] = (...args: any[]) => memo( @@ -540,8 +540,8 @@ namespace FourSlash { } private messageAtLastKnownMarker(message: string) { - const locationDescription = this.lastKnownMarker ? this.lastKnownMarker : this.getLineColStringAtPosition(this.currentCaretPosition); - return `At ${locationDescription}: ${message}`; + const locationDescription = this.lastKnownMarker !== undefined ? this.lastKnownMarker : this.getLineColStringAtPosition(this.currentCaretPosition); + return `At marker '${locationDescription}': ${message}`; } private assertionMessageAtLastKnownMarker(msg: string) { @@ -637,7 +637,8 @@ namespace FourSlash { ts.forEachKey(this.inputFiles, fileName => { if (!ts.isAnySupportedFileExtension(fileName) || Harness.getConfigNameFromFileName(fileName) - || !ts.getAllowJSCompilerOption(this.getProgram().getCompilerOptions()) && !ts.resolutionExtensionIsTSOrJson(ts.extensionFromPath(fileName)) + // Can't get a Program in Server tests + || this.testType !== FourSlashTestType.Server && !ts.getAllowJSCompilerOption(this.getProgram().getCompilerOptions()) && !ts.resolutionExtensionIsTSOrJson(ts.extensionFromPath(fileName)) || ts.getBaseFileName(fileName) === "package.json") return; const errors = this.getDiagnostics(fileName).filter(e => e.category !== ts.DiagnosticCategory.Suggestion); if (errors.length) { @@ -840,7 +841,7 @@ namespace FourSlash { }); } - public verifyInlayHints(expected: readonly FourSlashInterface.VerifyInlayHintsOptions[], span: ts.TextSpan = { start: 0, length: this.activeFile.content.length }, preference?: ts.InlayHintsOptions) { + public verifyInlayHints(expected: readonly FourSlashInterface.VerifyInlayHintsOptions[], span: ts.TextSpan = { start: 0, length: this.activeFile.content.length }, preference?: ts.UserPreferences) { const hints = this.languageService.provideInlayHints(this.activeFile.fileName, span, preference); assert.equal(hints.length, expected.length, "Number of hints"); @@ -863,7 +864,7 @@ namespace FourSlash { else { for (const marker of toArray(options.marker)) { this.goToMarker(marker); - this.verifyCompletionsWorker(options); + this.verifyCompletionsWorker({ ...options, marker }); } } } @@ -913,9 +914,26 @@ namespace FourSlash { } if (ts.hasProperty(options, "exact")) { - ts.Debug.assert(!ts.hasProperty(options, "includes") && !ts.hasProperty(options, "excludes")); + ts.Debug.assert(!ts.hasProperty(options, "includes") && !ts.hasProperty(options, "excludes") && !ts.hasProperty(options, "unsorted")); if (options.exact === undefined) throw this.raiseError("Expected no completions"); - this.verifyCompletionsAreExactly(actualCompletions.entries, toArray(options.exact), options.marker); + this.verifyCompletionsAreExactly(actualCompletions.entries, options.exact, options.marker); + } + else if (options.unsorted) { + ts.Debug.assert(!ts.hasProperty(options, "includes") && !ts.hasProperty(options, "excludes")); + for (const expectedEntry of options.unsorted) { + const name = typeof expectedEntry === "string" ? expectedEntry : expectedEntry.name; + const found = nameToEntries.get(name); + if (!found) throw this.raiseError(`Unsorted: completion '${name}' not found.`); + if (!found.length) throw this.raiseError(`Unsorted: no completions with name '${name}' remain unmatched.`); + this.verifyCompletionEntry(found.shift()!, expectedEntry); + } + if (actualCompletions.entries.length !== options.unsorted.length) { + const unmatched: string[] = []; + nameToEntries.forEach(entries => { + unmatched.push(...entries.map(e => e.name)); + }); + this.raiseError(`Additional completions found not included in 'unsorted': ${unmatched.join("\n")}`); + } } else { if (options.includes) { @@ -942,7 +960,7 @@ namespace FourSlash { expected = typeof expected === "string" ? { name: expected } : expected; if (actual.insertText !== expected.insertText) { - this.raiseError(`Expected completion insert text to be ${expected.insertText}, got ${actual.insertText}`); + this.raiseError(`At entry ${actual.name}: Completion insert text did not match: ${showTextDiff(expected.insertText || "", actual.insertText || "")}`); } const convertedReplacementSpan = expected.replacementSpan && ts.createTextSpanFromRange(expected.replacementSpan); if (convertedReplacementSpan?.length) { @@ -950,28 +968,30 @@ namespace FourSlash { assert.deepEqual(actual.replacementSpan, convertedReplacementSpan); } catch { - this.raiseError(`Expected completion replacementSpan to be ${stringify(convertedReplacementSpan)}, got ${stringify(actual.replacementSpan)}`); + this.raiseError(`At entry ${actual.name}: Expected completion replacementSpan to be ${stringify(convertedReplacementSpan)}, got ${stringify(actual.replacementSpan)}`); } } if (expected.kind !== undefined || expected.kindModifiers !== undefined) { - assert.equal(actual.kind, expected.kind, `Expected 'kind' for ${actual.name} to match`); - assert.equal(actual.kindModifiers, expected.kindModifiers || "", `Expected 'kindModifiers' for ${actual.name} to match`); + assert.equal(actual.kind, expected.kind, `At entry ${actual.name}: Expected 'kind' for ${actual.name} to match`); + assert.equal(actual.kindModifiers, expected.kindModifiers || "", `At entry ${actual.name}: Expected 'kindModifiers' for ${actual.name} to match`); } if (expected.isFromUncheckedFile !== undefined) { - assert.equal(actual.isFromUncheckedFile, expected.isFromUncheckedFile, "Expected 'isFromUncheckedFile' properties to match"); + assert.equal(actual.isFromUncheckedFile, expected.isFromUncheckedFile, `At entry ${actual.name}: Expected 'isFromUncheckedFile' properties to match`); } if (expected.isPackageJsonImport !== undefined) { - assert.equal(actual.isPackageJsonImport, expected.isPackageJsonImport, "Expected 'isPackageJsonImport' properties to match"); + assert.equal(actual.isPackageJsonImport, expected.isPackageJsonImport, `At entry ${actual.name}: Expected 'isPackageJsonImport' properties to match`); } - assert.equal(actual.hasAction, expected.hasAction, `Expected 'hasAction' properties to match`); - assert.equal(actual.isRecommended, expected.isRecommended, `Expected 'isRecommended' properties to match'`); - assert.equal(actual.isSnippet, expected.isSnippet, `Expected 'isSnippet' properties to match`); - assert.equal(actual.source, expected.source, `Expected 'source' values to match`); - assert.equal(actual.sortText, expected.sortText || ts.Completions.SortText.LocationPriority, `Expected 'sortText' properties to match`); + assert.equal(actual.labelDetails?.description, expected.labelDetails?.description, `At entry ${actual.name}: Expected 'labelDetails.description' properties to match`); + assert.equal(actual.labelDetails?.detail, expected.labelDetails?.detail, `At entry ${actual.name}: Expected 'labelDetails.detail' properties to match`); + assert.equal(actual.hasAction, expected.hasAction, `At entry ${actual.name}: Expected 'hasAction' properties to match`); + assert.equal(actual.isRecommended, expected.isRecommended, `At entry ${actual.name}: Expected 'isRecommended' properties to match'`); + assert.equal(actual.isSnippet, expected.isSnippet, `At entry ${actual.name}: Expected 'isSnippet' properties to match`); + assert.equal(actual.source, expected.source, `At entry ${actual.name}: Expected 'source' values to match`); + assert.equal(actual.sortText, expected.sortText || ts.Completions.SortText.LocationPriority, `At entry ${actual.name}: Expected 'sortText' properties to match`); if (expected.sourceDisplay && actual.sourceDisplay) { - assert.equal(ts.displayPartsToString(actual.sourceDisplay), expected.sourceDisplay, `Expected 'sourceDisplay' properties to match`); + assert.equal(ts.displayPartsToString(actual.sourceDisplay), expected.sourceDisplay, `At entry ${actual.name}: Expected 'sourceDisplay' properties to match`); } if (expected.text !== undefined) { @@ -992,7 +1012,11 @@ namespace FourSlash { } } - private verifyCompletionsAreExactly(actual: readonly ts.CompletionEntry[], expected: readonly FourSlashInterface.ExpectedCompletionEntry[], marker?: ArrayOrSingle) { + private verifyCompletionsAreExactly(actual: readonly ts.CompletionEntry[], expected: ArrayOrSingle | FourSlashInterface.ExpectedExactCompletionsPlus, marker?: ArrayOrSingle) { + if (!ts.isArray(expected)) { + expected = [expected]; + } + // First pass: test that names are right. Then we'll test details. assert.deepEqual(actual.map(a => a.name), expected.map(e => typeof e === "string" ? e : e.name), marker ? "At marker " + JSON.stringify(marker) : undefined); @@ -1003,6 +1027,16 @@ namespace FourSlash { } this.verifyCompletionEntry(completion, expectedCompletion); }); + + // All completions were correct in the sort order given. If that order was produced by a function + // like `completion.globalsPlus`, ensure the "plus" array was sorted in the same way. + const { plusArgument, plusFunctionName } = expected as FourSlashInterface.ExpectedExactCompletionsPlus; + if (plusArgument) { + assert.deepEqual( + plusArgument, + expected.filter(entry => plusArgument.includes(entry)), + `At marker ${JSON.stringify(marker)}: Argument to '${plusFunctionName}' was incorrectly sorted.`); + } } /** Use `getProgram` instead of accessing this directly. */ @@ -1316,7 +1350,11 @@ namespace FourSlash { if (options) { this.configure(options); } - return this.languageService.getCompletionsAtPosition(this.activeFile.fileName, this.currentCaretPosition, options); + return this.languageService.getCompletionsAtPosition( + this.activeFile.fileName, + this.currentCaretPosition, + options, + this.formatCodeSettings); } private getCompletionEntryDetails(entryName: string, source: string | undefined, data: ts.CompletionEntryData | undefined, preferences?: ts.UserPreferences): ts.CompletionEntryDetails | undefined { @@ -1361,11 +1399,11 @@ namespace FourSlash { })); } - public verifyQuickInfoAt(markerName: string | Range, expectedText: string, expectedDocumentation?: string) { + public verifyQuickInfoAt(markerName: string | Range, expectedText: string, expectedDocumentation?: string, expectedTags?: {name: string; text: string;}[]) { if (typeof markerName === "string") this.goToMarker(markerName); else this.goToRangeStart(markerName); - this.verifyQuickInfoString(expectedText, expectedDocumentation); + this.verifyQuickInfoString(expectedText, expectedDocumentation, expectedTags); } public verifyQuickInfos(namesAndTexts: { [name: string]: string | [string, string] }) { @@ -1384,16 +1422,29 @@ namespace FourSlash { } } - public verifyQuickInfoString(expectedText: string, expectedDocumentation?: string) { + public verifyQuickInfoString(expectedText: string, expectedDocumentation?: string, expectedTags?: { name: string; text: string; }[]) { if (expectedDocumentation === "") { - throw new Error("Use 'undefined' instead"); + throw new Error("Use 'undefined' instead of empty string for `expectedDocumentation`"); } const actualQuickInfo = this.languageService.getQuickInfoAtPosition(this.activeFile.fileName, this.currentCaretPosition); - const actualQuickInfoText = actualQuickInfo ? ts.displayPartsToString(actualQuickInfo.displayParts) : ""; - const actualQuickInfoDocumentation = actualQuickInfo ? ts.displayPartsToString(actualQuickInfo.documentation) : ""; + const actualQuickInfoText = ts.displayPartsToString(actualQuickInfo?.displayParts); + const actualQuickInfoDocumentation = ts.displayPartsToString(actualQuickInfo?.documentation); + const actualQuickInfoTags = actualQuickInfo?.tags?.map(tag => ({ name: tag.name, text: ts.displayPartsToString(tag.text) })); assert.equal(actualQuickInfoText, expectedText, this.messageAtLastKnownMarker("quick info text")); assert.equal(actualQuickInfoDocumentation, expectedDocumentation || "", this.assertionMessageAtLastKnownMarker("quick info doc")); + if (!expectedTags) { + // Skip if `expectedTags` is not given + } + else if (!actualQuickInfoTags) { + assert.equal(actualQuickInfoTags, expectedTags, this.messageAtLastKnownMarker("QuickInfo tags")); + } + else { + ts.zipWith(expectedTags, actualQuickInfoTags, (expectedTag, actualTag) => { + assert.equal(expectedTag.name, actualTag.name); + assert.equal(expectedTag.text, actualTag.text, this.messageAtLastKnownMarker("QuickInfo tag " + actualTag.name)); + }); + } } public verifyQuickInfoDisplayParts(kind: string, kindModifiers: string, textSpan: TextSpan, @@ -2244,8 +2295,18 @@ namespace FourSlash { // Check syntactic structure const content = this.getFileContent(this.activeFile.fileName); + const options: ts.CreateSourceFileOptions = { + languageVersion: ts.ScriptTarget.Latest, + impliedNodeFormat: ts.getImpliedNodeFormatForFile( + ts.toPath(this.activeFile.fileName, this.languageServiceAdapterHost.sys.getCurrentDirectory(), ts.hostGetCanonicalFileName(this.languageServiceAdapterHost)), + /*cache*/ undefined, + this.languageServiceAdapterHost, + this.languageService.getProgram()?.getCompilerOptions() || {} + ), + setExternalModuleIndicator: ts.getSetExternalModuleIndicator(this.languageService.getProgram()?.getCompilerOptions() || {}) + }; const referenceSourceFile = ts.createLanguageServiceSourceFile( - this.activeFile.fileName, createScriptSnapShot(content), ts.ScriptTarget.Latest, /*version:*/ "0", /*setNodeParents:*/ false); + this.activeFile.fileName, createScriptSnapShot(content), options, /*version:*/ "0", /*setNodeParents:*/ false); const referenceSyntaxDiagnostics = referenceSourceFile.parseDiagnostics; Utils.assertDiagnosticsEquals(incrementalSyntaxDiagnostics, referenceSyntaxDiagnostics); @@ -3097,11 +3158,12 @@ namespace FourSlash { }); } - public verifyImportFixModuleSpecifiers(markerName: string, moduleSpecifiers: string[]) { + public verifyImportFixModuleSpecifiers(markerName: string, moduleSpecifiers: string[], preferences?: ts.UserPreferences) { const marker = this.getMarkerByName(markerName); const codeFixes = this.getCodeFixes(marker.fileName, ts.Diagnostics.Cannot_find_name_0.code, { includeCompletionsForModuleExports: true, - includeCompletionsWithInsertText: true + includeCompletionsWithInsertText: true, + ...preferences, }, marker.position).filter(f => f.fixName === ts.codefix.importFixName); const actualModuleSpecifiers = ts.mapDefined(codeFixes, fix => { diff --git a/src/harness/fourslashInterfaceImpl.ts b/src/harness/fourslashInterfaceImpl.ts index 69f9679add0f6..dfe3808c8e5d8 100644 --- a/src/harness/fourslashInterfaceImpl.ts +++ b/src/harness/fourslashInterfaceImpl.ts @@ -255,16 +255,16 @@ namespace FourSlashInterface { } } - public getInlayHints(expected: readonly VerifyInlayHintsOptions[], span: ts.TextSpan, preference?: ts.InlayHintsOptions) { + public getInlayHints(expected: readonly VerifyInlayHintsOptions[], span: ts.TextSpan, preference?: ts.UserPreferences) { this.state.verifyInlayHints(expected, span, preference); } - public quickInfoIs(expectedText: string, expectedDocumentation?: string) { - this.state.verifyQuickInfoString(expectedText, expectedDocumentation); + public quickInfoIs(expectedText: string, expectedDocumentation?: string, expectedTags?: { name: string; text: string; }[]) { + this.state.verifyQuickInfoString(expectedText, expectedDocumentation, expectedTags); } - public quickInfoAt(markerName: string | FourSlash.Range, expectedText: string, expectedDocumentation?: string) { - this.state.verifyQuickInfoAt(markerName, expectedText, expectedDocumentation); + public quickInfoAt(markerName: string | FourSlash.Range, expectedText: string, expectedDocumentation?: string, expectedTags?: { name: string; text: string; }[]) { + this.state.verifyQuickInfoAt(markerName, expectedText, expectedDocumentation, expectedTags); } public quickInfos(namesAndTexts: { [name: string]: string }) { @@ -478,8 +478,8 @@ namespace FourSlashInterface { this.state.verifyImportFixAtPosition(expectedTextArray, errorCode, preferences); } - public importFixModuleSpecifiers(marker: string, moduleSpecifiers: string[]) { - this.state.verifyImportFixModuleSpecifiers(marker, moduleSpecifiers); + public importFixModuleSpecifiers(marker: string, moduleSpecifiers: string[], preferences?: ts.UserPreferences) { + this.state.verifyImportFixModuleSpecifiers(marker, moduleSpecifiers, preferences); } public navigationBar(json: any, options?: { checkSpans?: boolean }) { @@ -950,9 +950,36 @@ namespace FourSlashInterface { } export namespace Completion { - export import SortText = ts.Completions.SortText; + import SortTextType = ts.Completions.SortText; + export type SortText = SortTextType; export import CompletionSource = ts.Completions.CompletionSource; + export const SortText = { + // Presets + LocalDeclarationPriority: "10" as SortText, + LocationPriority: "11" as SortText, + OptionalMember: "12" as SortText, + MemberDeclaredBySpreadAssignment: "13" as SortText, + SuggestedClassMembers: "14" as SortText, + GlobalsOrKeywords: "15" as SortText, + AutoImportSuggestions: "16" as SortText, + ClassMemberSnippets: "17" as SortText, + JavascriptIdentifiers: "18" as SortText, + + // Transformations + Deprecated(sortText: SortText): SortText { + return "z" + sortText as SortText; + }, + + ObjectLiteralProperty(presetSortText: SortText, symbolDisplayName: string): SortText { + return `${presetSortText}\0${symbolDisplayName}\0` as SortText; + }, + + SortBelow(sortText: SortText): SortText { + return sortText + "1" as SortText; + }, + }; + const functionEntry = (name: string): ExpectedCompletionEntryObject => ({ name, kind: "function", @@ -963,7 +990,7 @@ namespace FourSlashInterface { name, kind: "function", kindModifiers: "deprecated,declare", - sortText: SortText.DeprecatedGlobalsOrKeywords + sortText: "z15" as SortText, }); const varEntry = (name: string): ExpectedCompletionEntryObject => ({ name, @@ -992,7 +1019,7 @@ namespace FourSlashInterface { name, kind: "method", kindModifiers: "deprecated,declare", - sortText: SortText.DeprecatedLocationPriority + sortText: "z11" as SortText, }); const propertyEntry = (name: string): ExpectedCompletionEntryObject => ({ name, @@ -1024,8 +1051,48 @@ namespace FourSlashInterface { export const keywordsWithUndefined: readonly ExpectedCompletionEntryObject[] = res; export const keywords: readonly ExpectedCompletionEntryObject[] = keywordsWithUndefined.filter(k => k.name !== "undefined"); - export const typeKeywords: readonly ExpectedCompletionEntryObject[] = - ["false", "null", "true", "void", "asserts", "any", "boolean", "infer", "keyof", "never", "readonly", "number", "object", "string", "symbol", "undefined", "unique", "unknown", "bigint"].map(keywordEntry); + export const typeKeywords: readonly ExpectedCompletionEntryObject[] = [ + "any", + "asserts", + "bigint", + "boolean", + "false", + "infer", + "keyof", + "never", + "null", + "number", + "object", + "readonly", + "string", + "symbol", + "true", + "undefined", + "unique", + "unknown", + "void", + ].map(keywordEntry); + + export function sorted(entries: readonly ExpectedCompletionEntry[]): readonly ExpectedCompletionEntry[] { + return ts.stableSort(entries, compareExpectedCompletionEntries); + } + + // If you want to use a function like `globalsPlus`, that function needs to sort + // the concatted array since the entries provided as "plus" could be interleaved + // among the "globals." However, we still want to assert that the "plus" array + // was internally sorted correctly, so we tack it onto the sorted concatted array + // so `verify.completions` can assert that it represents the same order as the response. + function combineExpectedCompletionEntries( + functionName: string, + providedByHarness: readonly ExpectedCompletionEntry[], + providedByTest: readonly ExpectedCompletionEntry[], + ): ExpectedExactCompletionsPlus { + return Object.assign(sorted([...providedByHarness, ...providedByTest]), { plusFunctionName: functionName, plusArgument: providedByTest }); + } + + export function typeKeywordsPlus(plus: readonly ExpectedCompletionEntry[]) { + return combineExpectedCompletionEntries("typeKeywordsPlus", typeKeywords, plus); + } const globalTypeDecls: readonly ExpectedCompletionEntryObject[] = [ interfaceEntry("Symbol"), @@ -1139,13 +1206,12 @@ namespace FourSlashInterface { sortText: SortText.GlobalsOrKeywords }; export const globalTypes = globalTypesPlus([]); - export function globalTypesPlus(plus: readonly ExpectedCompletionEntry[]): readonly ExpectedCompletionEntry[] { - return [ - globalThisEntry, - ...globalTypeDecls, - ...plus, - ...typeKeywords, - ]; + export function globalTypesPlus(plus: readonly ExpectedCompletionEntry[]) { + return combineExpectedCompletionEntries( + "globalTypesPlus", + [globalThisEntry, ...globalTypeDecls, ...typeKeywords], + plus + ); } export const typeAssertionKeywords: readonly ExpectedCompletionEntry[] = @@ -1188,13 +1254,25 @@ namespace FourSlashInterface { }); } - export const classElementKeywords: readonly ExpectedCompletionEntryObject[] = - ["private", "protected", "public", "static", "abstract", "async", "constructor", "declare", "get", "readonly", "set", "override"].map(keywordEntry); + export const classElementKeywords: readonly ExpectedCompletionEntryObject[] = [ + "abstract", + "async", + "constructor", + "declare", + "get", + "override", + "private", + "protected", + "public", + "readonly", + "set", + "static", + ].map(keywordEntry); export const classElementInJsKeywords = getInJsKeywords(classElementKeywords); export const constructorParameterKeywords: readonly ExpectedCompletionEntryObject[] = - ["private", "protected", "public", "readonly", "override"].map((name): ExpectedCompletionEntryObject => ({ + ["override", "private", "protected", "public", "readonly"].map((name): ExpectedCompletionEntryObject => ({ name, kind: "keyword", sortText: SortText.GlobalsOrKeywords @@ -1208,7 +1286,11 @@ namespace FourSlashInterface { propertyEntry("length"), { name: "arguments", kind: "property", kindModifiers: "declare", text: "(property) Function.arguments: any" }, propertyEntry("caller"), - ]; + ].sort(compareExpectedCompletionEntries); + + export function functionMembersPlus(plus: readonly ExpectedCompletionEntryObject[]) { + return combineExpectedCompletionEntries("functionMembersPlus", functionMembers, plus); + } export const stringMembers: readonly ExpectedCompletionEntryObject[] = [ methodEntry("toString"), @@ -1232,16 +1314,27 @@ namespace FourSlashInterface { propertyEntry("length"), deprecatedMethodEntry("substr"), methodEntry("valueOf"), - ]; + ].sort(compareExpectedCompletionEntries); export const functionMembersWithPrototype: readonly ExpectedCompletionEntryObject[] = [ - ...functionMembers.slice(0, 4), + ...functionMembers, propertyEntry("prototype"), - ...functionMembers.slice(4), - ]; + ].sort(compareExpectedCompletionEntries); + + export function functionMembersWithPrototypePlus(plus: readonly ExpectedCompletionEntryObject[]) { + return [...functionMembersWithPrototype, ...plus].sort(compareExpectedCompletionEntries); + } // TODO: Shouldn't propose type keywords in statement position export const statementKeywordsWithTypes: readonly ExpectedCompletionEntryObject[] = [ + "abstract", + "any", + "as", + "asserts", + "async", + "await", + "bigint", + "boolean", "break", "case", "catch", @@ -1249,6 +1342,7 @@ namespace FourSlashInterface { "const", "continue", "debugger", + "declare", "default", "delete", "do", @@ -1261,50 +1355,41 @@ namespace FourSlashInterface { "for", "function", "if", + "implements", "import", "in", + "infer", "instanceof", + "interface", + "keyof", + "let", + "module", + "namespace", + "never", "new", "null", + "number", + "object", + "package", + "readonly", "return", + "string", "super", "switch", + "symbol", "this", "throw", "true", "try", + "type", "typeof", + "unique", + "unknown", "var", "void", "while", "with", - "implements", - "interface", - "let", - "package", "yield", - "abstract", - "as", - "asserts", - "any", - "async", - "await", - "boolean", - "declare", - "infer", - "keyof", - "module", - "namespace", - "never", - "readonly", - "number", - "object", - "string", - "symbol", - "type", - "unique", - "unknown", - "bigint", ].map(keywordEntry); export const statementKeywords: readonly ExpectedCompletionEntryObject[] = statementKeywordsWithTypes.filter(k => { @@ -1326,51 +1411,54 @@ namespace FourSlashInterface { export const statementInJsKeywords = getInJsKeywords(statementKeywords); export const globalsVars: readonly ExpectedCompletionEntryObject[] = [ - functionEntry("eval"), - functionEntry("parseInt"), - functionEntry("parseFloat"), - functionEntry("isNaN"), - functionEntry("isFinite"), + varEntry("Array"), + varEntry("ArrayBuffer"), + varEntry("Boolean"), + varEntry("DataView"), + varEntry("Date"), functionEntry("decodeURI"), functionEntry("decodeURIComponent"), functionEntry("encodeURI"), functionEntry("encodeURIComponent"), + varEntry("Error"), deprecatedFunctionEntry("escape"), - deprecatedFunctionEntry("unescape"), - varEntry("NaN"), - varEntry("Infinity"), - varEntry("Object"), + functionEntry("eval"), + varEntry("EvalError"), + varEntry("Float32Array"), + varEntry("Float64Array"), varEntry("Function"), - varEntry("String"), - varEntry("Boolean"), - varEntry("Number"), + varEntry("Infinity"), + moduleEntry("Intl"), + varEntry("Int16Array"), + varEntry("Int32Array"), + varEntry("Int8Array"), + functionEntry("isFinite"), + functionEntry("isNaN"), + varEntry("JSON"), varEntry("Math"), - varEntry("Date"), - varEntry("RegExp"), - varEntry("Error"), - varEntry("EvalError"), + varEntry("NaN"), + varEntry("Number"), + varEntry("Object"), + functionEntry("parseFloat"), + functionEntry("parseInt"), varEntry("RangeError"), varEntry("ReferenceError"), + varEntry("RegExp"), + varEntry("String"), varEntry("SyntaxError"), varEntry("TypeError"), - varEntry("URIError"), - varEntry("JSON"), - varEntry("Array"), - varEntry("ArrayBuffer"), - varEntry("DataView"), - varEntry("Int8Array"), - varEntry("Uint8Array"), - varEntry("Uint8ClampedArray"), - varEntry("Int16Array"), varEntry("Uint16Array"), - varEntry("Int32Array"), varEntry("Uint32Array"), - varEntry("Float32Array"), - varEntry("Float64Array"), - moduleEntry("Intl"), + varEntry("Uint8Array"), + varEntry("Uint8ClampedArray"), + deprecatedFunctionEntry("unescape"), + varEntry("URIError"), ]; const globalKeywordsInsideFunction: readonly ExpectedCompletionEntryObject[] = [ + "as", + "async", + "await", "break", "case", "catch", @@ -1390,11 +1478,15 @@ namespace FourSlashInterface { "for", "function", "if", + "implements", "import", "in", "instanceof", + "interface", + "let", "new", "null", + "package", "return", "super", "switch", @@ -1407,45 +1499,54 @@ namespace FourSlashInterface { "void", "while", "with", - "implements", - "interface", - "let", - "package", "yield", - "as", - "async", - "await", ].map(keywordEntry); + function compareExpectedCompletionEntries(a: ExpectedCompletionEntry, b: ExpectedCompletionEntry) { + const aSortText = typeof a !== "string" && a.sortText || ts.Completions.SortText.LocationPriority; + const bSortText = typeof b !== "string" && b.sortText || ts.Completions.SortText.LocationPriority; + const bySortText = ts.compareStringsCaseSensitiveUI(aSortText, bSortText); + if (bySortText !== ts.Comparison.EqualTo) return bySortText; + return ts.compareStringsCaseSensitiveUI(typeof a === "string" ? a : a.name, typeof b === "string" ? b : b.name); + } + export const undefinedVarEntry: ExpectedCompletionEntryObject = { name: "undefined", kind: "var", sortText: SortText.GlobalsOrKeywords }; // TODO: many of these are inappropriate to always provide - export const globalsInsideFunction = (plus: readonly ExpectedCompletionEntry[]): readonly ExpectedCompletionEntry[] => [ + export const globalsInsideFunction = (plus: readonly ExpectedCompletionEntry[], options?: { noLib?: boolean }): readonly ExpectedCompletionEntry[] => [ { name: "arguments", kind: "local var" }, ...plus, globalThisEntry, - ...globalsVars, + ...options?.noLib ? [] : globalsVars, undefinedVarEntry, ...globalKeywordsInsideFunction, - ]; + ].sort(compareExpectedCompletionEntries); const globalInJsKeywordsInsideFunction = getInJsKeywords(globalKeywordsInsideFunction); // TODO: many of these are inappropriate to always provide - export const globalsInJsInsideFunction = (plus: readonly ExpectedCompletionEntry[]): readonly ExpectedCompletionEntry[] => [ + export const globalsInJsInsideFunction = (plus: readonly ExpectedCompletionEntry[], options?: { noLib?: boolean }): readonly ExpectedCompletionEntry[] => [ { name: "arguments", kind: "local var" }, globalThisEntry, - ...globalsVars, + ...options?.noLib ? [] : globalsVars, ...plus, undefinedVarEntry, ...globalInJsKeywordsInsideFunction, - ]; + ].sort(compareExpectedCompletionEntries); // TODO: many of these are inappropriate to always provide export const globalKeywords: readonly ExpectedCompletionEntryObject[] = [ + "abstract", + "any", + "as", + "asserts", + "async", + "await", + "bigint", + "boolean", "break", "case", "catch", @@ -1453,6 +1554,7 @@ namespace FourSlashInterface { "const", "continue", "debugger", + "declare", "default", "delete", "do", @@ -1465,55 +1567,49 @@ namespace FourSlashInterface { "for", "function", "if", + "implements", "import", "in", + "infer", "instanceof", + "interface", + "keyof", + "let", + "module", + "namespace", + "never", "new", "null", + "number", + "object", + "package", + "readonly", "return", + "string", "super", "switch", + "symbol", "this", "throw", "true", "try", + "type", "typeof", + "unique", + "unknown", "var", "void", "while", "with", - "implements", - "interface", - "let", - "package", "yield", - "abstract", - "as", - "asserts", - "any", - "async", - "await", - "boolean", - "declare", - "infer", - "keyof", - "module", - "namespace", - "never", - "readonly", - "number", - "object", - "string", - "symbol", - "type", - "unique", - "unknown", - "bigint", ].map(keywordEntry); export const globalInJsKeywords = getInJsKeywords(globalKeywords); export const insideMethodKeywords: readonly ExpectedCompletionEntryObject[] = [ + "as", + "async", + "await", "break", "case", "catch", @@ -1533,11 +1629,15 @@ namespace FourSlashInterface { "for", "function", "if", + "implements", "import", "in", "instanceof", + "interface", + "let", "new", "null", + "package", "return", "super", "switch", @@ -1550,14 +1650,7 @@ namespace FourSlashInterface { "void", "while", "with", - "implements", - "interface", - "let", - "package", "yield", - "as", - "async", - "await", ].map(keywordEntry); export const insideMethodInJsKeywords = getInJsKeywords(insideMethodKeywords); @@ -1567,34 +1660,31 @@ namespace FourSlashInterface { ...globalsVars, undefinedVarEntry, ...globalKeywords - ]; + ].sort(compareExpectedCompletionEntries); export const globalsInJs: readonly ExpectedCompletionEntryObject[] = [ globalThisEntry, ...globalsVars, undefinedVarEntry, ...globalInJsKeywords - ]; + ].sort(compareExpectedCompletionEntries); - export function globalsPlus(plus: readonly ExpectedCompletionEntry[]): readonly ExpectedCompletionEntry[] { - const firstEntry = plus[0]; - const afterUndefined = typeof firstEntry !== "string" && firstEntry.sortText! > undefinedVarEntry.sortText!; - return [ + export function globalsPlus(plus: readonly ExpectedCompletionEntry[], options?: { noLib?: boolean }) { + return combineExpectedCompletionEntries("globalsPlus", [ globalThisEntry, - ...globalsVars, - ...afterUndefined ? ts.emptyArray : plus, + ...options?.noLib ? [] : globalsVars, undefinedVarEntry, - ...afterUndefined ? plus : ts.emptyArray, - ...globalKeywords]; + ...globalKeywords, + ], plus); } - export function globalsInJsPlus(plus: readonly ExpectedCompletionEntry[]): readonly ExpectedCompletionEntry[] { - return [ + export function globalsInJsPlus(plus: readonly ExpectedCompletionEntry[], options?: { noLib?: boolean }) { + return combineExpectedCompletionEntries("globalsInJsPlus", [ globalThisEntry, - ...globalsVars, - ...plus, + ...options?.noLib ? [] : globalsVars, undefinedVarEntry, - ...globalInJsKeywords]; + ...globalInJsKeywords, + ], plus); } } @@ -1629,16 +1719,28 @@ namespace FourSlashInterface { readonly text?: string; readonly documentation?: string; readonly sourceDisplay?: string; + readonly labelDetails?: ExpectedCompletionEntryLabelDetails; readonly tags?: readonly ts.JSDocTagInfo[]; readonly sortText?: ts.Completions.SortText; } + export interface ExpectedCompletionEntryLabelDetails { + detail?: string; + description?: string; + } + + export type ExpectedExactCompletionsPlus = readonly ExpectedCompletionEntry[] & { + plusFunctionName: string, + plusArgument: readonly ExpectedCompletionEntry[] + }; + export interface VerifyCompletionsOptions { readonly marker?: ArrayOrSingle; readonly isNewIdentifierLocation?: boolean; // Always tested readonly isGlobalCompletion?: boolean; // Only tested if set readonly optionalReplacementSpan?: FourSlash.Range; // Only tested if set - readonly exact?: ArrayOrSingle; + readonly exact?: ArrayOrSingle | ExpectedExactCompletionsPlus; + readonly unsorted?: readonly ExpectedCompletionEntry[]; readonly includes?: ArrayOrSingle; readonly excludes?: ArrayOrSingle; readonly preferences?: ts.UserPreferences; diff --git a/src/harness/harnessGlobals.ts b/src/harness/harnessGlobals.ts index 1a2db1415b65f..79acccf26cedc 100644 --- a/src/harness/harnessGlobals.ts +++ b/src/harness/harnessGlobals.ts @@ -20,8 +20,8 @@ globalThis.assert = _chai.assert; } assertDeepImpl(a, b, msg); - function arrayExtraKeysObject(a: readonly ({} | null | undefined)[]): object { - const obj: { [key: string]: {} | null | undefined } = {}; + function arrayExtraKeysObject(a: readonly unknown[]): object { + const obj: { [key: string]: unknown } = {}; for (const key in a) { if (Number.isNaN(Number(key))) { obj[key] = a[key]; diff --git a/src/harness/harnessIO.ts b/src/harness/harnessIO.ts index 08c11fecf12f4..558aca6bfd31c 100644 --- a/src/harness/harnessIO.ts +++ b/src/harness/harnessIO.ts @@ -41,6 +41,7 @@ namespace Harness { export const virtualFileSystemRoot = "/"; function createNodeIO(): IO { + const workspaceRoot = Utils.findUpRoot(); let fs: any, pathModule: any; if (require) { fs = require("fs"); @@ -154,7 +155,7 @@ namespace Harness { log: s => console.log(s), args: () => ts.sys.args, getExecutingFilePath: () => ts.sys.getExecutingFilePath(), - getWorkspaceRoot: () => vpath.resolve(__dirname, "../.."), + getWorkspaceRoot: () => workspaceRoot, exit: exitCode => ts.sys.exit(exitCode), readDirectory: (path, extension, exclude, include, depth) => ts.sys.readDirectory(path, extension, exclude, include, depth), getAccessibleFileSystemEntries, @@ -303,21 +304,21 @@ namespace Harness { // Additional options not already in ts.optionDeclarations const harnessOptionDeclarations: ts.CommandLineOption[] = [ - { name: "allowNonTsExtensions", type: "boolean", defaultValueDescription: "false" }, - { name: "useCaseSensitiveFileNames", type: "boolean", defaultValueDescription: "false" }, + { name: "allowNonTsExtensions", type: "boolean", defaultValueDescription: false }, + { name: "useCaseSensitiveFileNames", type: "boolean", defaultValueDescription: false }, { name: "baselineFile", type: "string" }, { name: "includeBuiltFile", type: "string" }, { name: "fileName", type: "string" }, { name: "libFiles", type: "string" }, - { name: "noErrorTruncation", type: "boolean", defaultValueDescription: "false" }, - { name: "suppressOutputPathCheck", type: "boolean", defaultValueDescription: "false" }, - { name: "noImplicitReferences", type: "boolean", defaultValueDescription: "false" }, + { name: "noErrorTruncation", type: "boolean", defaultValueDescription: false }, + { name: "suppressOutputPathCheck", type: "boolean", defaultValueDescription: false }, + { name: "noImplicitReferences", type: "boolean", defaultValueDescription: false }, { name: "currentDirectory", type: "string" }, { name: "symlink", type: "string" }, { name: "link", type: "string" }, - { name: "noTypesAndSymbols", type: "boolean", defaultValueDescription: "false" }, + { name: "noTypesAndSymbols", type: "boolean", defaultValueDescription: false }, // Emitted js baseline will print full paths for every output file - { name: "fullEmitPaths", type: "boolean", defaultValueDescription: "false" } + { name: "fullEmitPaths", type: "boolean", defaultValueDescription: false }, ]; let optionsIndex: ts.ESMap; @@ -536,7 +537,7 @@ namespace Harness { outputLines += content; } if (pretty) { - outputLines += ts.getErrorSummaryText(ts.getErrorCountForSummary(diagnostics), IO.newLine()); + outputLines += ts.getErrorSummaryText(ts.getErrorCountForSummary(diagnostics), ts.getFilesInErrorForSummary(diagnostics), IO.newLine(), { getCurrentDirectory: () => "" }); } return outputLines; } @@ -716,7 +717,7 @@ namespace Harness { // These types are equivalent, but depend on what order the compiler observed // certain parts of the program. - const fullWalker = new TypeWriterWalker(program, /*fullTypeCheck*/ true, !!hasErrorBaseline); + const fullWalker = new TypeWriterWalker(program, !!hasErrorBaseline); // Produce baselines. The first gives the types for all expressions. // The second gives symbols for all identifiers. diff --git a/src/harness/harnessLanguageService.ts b/src/harness/harnessLanguageService.ts index 6f7245b01a9ff..5468068d92224 100644 --- a/src/harness/harnessLanguageService.ts +++ b/src/harness/harnessLanguageService.ts @@ -163,6 +163,24 @@ namespace Harness.LanguageService { } } + public fileExists(path: string): boolean { + try { + return this.vfs.existsSync(path); + } + catch { + return false; + } + } + + public readFile(path: string): string | undefined { + try { + return this.vfs.readFileSync(path).toString(); + } + catch { + return undefined; + } + } + public directoryExists(path: string) { return this.vfs.statSync(path).isDirectory(); } @@ -472,8 +490,8 @@ namespace Harness.LanguageService { const responseFormat = format || ts.SemanticClassificationFormat.Original; return unwrapJSONCallResult(this.shim.getEncodedSemanticClassifications(fileName, span.start, span.length, responseFormat)); } - getCompletionsAtPosition(fileName: string, position: number, preferences: ts.UserPreferences | undefined): ts.CompletionInfo { - return unwrapJSONCallResult(this.shim.getCompletionsAtPosition(fileName, position, preferences)); + getCompletionsAtPosition(fileName: string, position: number, preferences: ts.UserPreferences | undefined, formattingSettings: ts.FormatCodeSettings | undefined): ts.CompletionInfo { + return unwrapJSONCallResult(this.shim.getCompletionsAtPosition(fileName, position, preferences, formattingSettings)); } getCompletionEntryDetails(fileName: string, position: number, entryName: string, formatOptions: ts.FormatCodeOptions | undefined, source: string | undefined, preferences: ts.UserPreferences | undefined, data: ts.CompletionEntryData | undefined): ts.CompletionEntryDetails { return unwrapJSONCallResult(this.shim.getCompletionEntryDetails(fileName, position, entryName, JSON.stringify(formatOptions), source, preferences, data)); @@ -600,7 +618,7 @@ namespace Harness.LanguageService { provideCallHierarchyOutgoingCalls(fileName: string, position: number) { return unwrapJSONCallResult(this.shim.provideCallHierarchyOutgoingCalls(fileName, position)); } - provideInlayHints(fileName: string, span: ts.TextSpan, preference: ts.InlayHintsOptions) { + provideInlayHints(fileName: string, span: ts.TextSpan, preference: ts.UserPreferences) { return unwrapJSONCallResult(this.shim.provideInlayHints(fileName, span, preference)); } getEmitOutput(fileName: string): ts.EmitOutput { @@ -976,7 +994,7 @@ namespace Harness.LanguageService { cancellationToken: ts.server.nullCancellationToken, useSingleInferredProject: false, useInferredProjectPerProjectRoot: false, - typingsInstaller: undefined!, // TODO: GH#18217 + typingsInstaller: { ...ts.server.nullTypingsInstaller, globalTypingsCacheLocation: "/Library/Caches/typescript" }, byteLength: Utils.byteLength, hrtime: process.hrtime, logger: serverHost, diff --git a/src/harness/tsconfig.json b/src/harness/tsconfig.json index 08b9a0bc65e83..37c2452773098 100644 --- a/src/harness/tsconfig.json +++ b/src/harness/tsconfig.json @@ -28,6 +28,7 @@ "evaluatorImpl.ts", "fakesHosts.ts", "client.ts", + "findUpDir.ts", "runnerbase.ts", "sourceMapRecorder.ts", diff --git a/src/harness/typeWriter.ts b/src/harness/typeWriter.ts index e7f8e8d28b1cb..3de4f3962e69a 100644 --- a/src/harness/typeWriter.ts +++ b/src/harness/typeWriter.ts @@ -41,12 +41,10 @@ namespace Harness { private checker: ts.TypeChecker; - constructor(private program: ts.Program, fullTypeCheck: boolean, private hadErrorBaseline: boolean) { + constructor(private program: ts.Program, private hadErrorBaseline: boolean) { // Consider getting both the diagnostics checker and the non-diagnostics checker to verify // they are consistent. - this.checker = fullTypeCheck - ? program.getDiagnosticsProducingTypeChecker() - : program.getTypeChecker(); + this.checker = program.getTypeChecker(); } public *getSymbols(fileName: string): IterableIterator { diff --git a/src/harness/virtualFileSystemWithWatch.ts b/src/harness/virtualFileSystemWithWatch.ts index 77e3741d1fce8..62c6cd042ef93 100644 --- a/src/harness/virtualFileSystemWithWatch.ts +++ b/src/harness/virtualFileSystemWithWatch.ts @@ -922,7 +922,7 @@ interface Array { length: number; [n: number]: T; }` }); } return { directories, files }; - }, path => this.realpath(path), path => this.directoryExists(path)); + }, path => this.realpath(path)); } createHash(s: string): string { diff --git a/src/jsTyping/jsTyping.ts b/src/jsTyping/jsTyping.ts index e23622ee9fc46..141212eca20db 100644 --- a/src/jsTyping/jsTyping.ts +++ b/src/jsTyping/jsTyping.ts @@ -9,7 +9,6 @@ namespace ts.JsTyping { } interface PackageJson { - _requiredBy?: string[]; dependencies?: MapLike; devDependencies?: MapLike; name?: string; @@ -152,17 +151,8 @@ namespace ts.JsTyping { const possibleSearchDirs = new Set(fileNames.map(getDirectoryPath)); possibleSearchDirs.add(projectRootPath); possibleSearchDirs.forEach((searchDir) => { - const packageJsonPath = combinePaths(searchDir, "package.json"); - getTypingNamesFromJson(packageJsonPath, filesToWatch); - - const bowerJsonPath = combinePaths(searchDir, "bower.json"); - getTypingNamesFromJson(bowerJsonPath, filesToWatch); - - const bowerComponentsPath = combinePaths(searchDir, "bower_components"); - getTypingNamesFromPackagesFolder(bowerComponentsPath, filesToWatch); - - const nodeModulesPath = combinePaths(searchDir, "node_modules"); - getTypingNamesFromPackagesFolder(nodeModulesPath, filesToWatch); + getTypingNames(searchDir, "bower.json", "bower_components", filesToWatch); + getTypingNames(searchDir, "package.json", "node_modules", filesToWatch); }); if(!typeAcquisition.disableFilenameBasedTypeAcquisition) { getTypingNamesFromSourceFileNames(fileNames); @@ -214,17 +204,104 @@ namespace ts.JsTyping { } /** - * Get the typing info from common package manager json files like package.json or bower.json + * Adds inferred typings from manifest/module pairs (think package.json + node_modules) + * + * @param projectRootPath is the path to the directory where to look for package.json, bower.json and other typing information + * @param manifestName is the name of the manifest (package.json or bower.json) + * @param modulesDirName is the directory name for modules (node_modules or bower_components). Should be lowercase! + * @param filesToWatch are the files to watch for changes. We will push things into this array. */ - function getTypingNamesFromJson(jsonPath: string, filesToWatch: Push) { - if (!host.fileExists(jsonPath)) { + function getTypingNames(projectRootPath: string, manifestName: string, modulesDirName: string, filesToWatch: string[]): void { + // First, we check the manifests themselves. They're not + // _required_, but they allow us to do some filtering when dealing + // with big flat dep directories. + const manifestPath = combinePaths(projectRootPath, manifestName); + let manifest; + let manifestTypingNames; + if (host.fileExists(manifestPath)) { + filesToWatch.push(manifestPath); + manifest = readConfigFile(manifestPath, path => host.readFile(path)).config; + manifestTypingNames = flatMap([manifest.dependencies, manifest.devDependencies, manifest.optionalDependencies, manifest.peerDependencies], getOwnKeys); + addInferredTypings(manifestTypingNames, `Typing names in '${manifestPath}' dependencies`); + } + + // Now we scan the directories for typing information in + // already-installed dependencies (if present). Note that this + // step happens regardless of whether a manifest was present, + // which is certainly a valid configuration, if an unusual one. + const packagesFolderPath = combinePaths(projectRootPath, modulesDirName); + filesToWatch.push(packagesFolderPath); + if (!host.directoryExists(packagesFolderPath)) { return; } - filesToWatch.push(jsonPath); - const jsonConfig: PackageJson = readConfigFile(jsonPath, path => host.readFile(path)).config; - const jsonTypingNames = flatMap([jsonConfig.dependencies, jsonConfig.devDependencies, jsonConfig.optionalDependencies, jsonConfig.peerDependencies], getOwnKeys); - addInferredTypings(jsonTypingNames, `Typing names in '${jsonPath}' dependencies`); + // There's two cases we have to take into account here: + // 1. If manifest is undefined, then we're not using a manifest. + // That means that we should scan _all_ dependencies at the top + // level of the modulesDir. + // 2. If manifest is defined, then we can do some special + // filtering to reduce the amount of scanning we need to do. + // + // Previous versions of this algorithm checked for a `_requiredBy` + // field in the package.json, but that field is only present in + // `npm@>=3 <7`. + + // Package names that do **not** provide their own typings, so + // we'll look them up. + const packageNames: string[] = []; + + const dependencyManifestNames = manifestTypingNames + // This is #1 described above. + ? manifestTypingNames.map(typingName => combinePaths(packagesFolderPath, typingName, manifestName)) + // And #2. Depth = 3 because scoped packages look like `node_modules/@foo/bar/package.json` + : host.readDirectory(packagesFolderPath, [Extension.Json], /*excludes*/ undefined, /*includes*/ undefined, /*depth*/ 3) + .filter(manifestPath => { + if (getBaseFileName(manifestPath) !== manifestName) { + return false; + } + // It's ok to treat + // `node_modules/@foo/bar/package.json` as a manifest, + // but not `node_modules/jquery/nested/package.json`. + // We only assume depth 3 is ok for formally scoped + // packages. So that needs this dance here. + const pathComponents = getPathComponents(normalizePath(manifestPath)); + const isScoped = pathComponents[pathComponents.length - 3][0] === "@"; + return isScoped && pathComponents[pathComponents.length - 4].toLowerCase() === modulesDirName || // `node_modules/@foo/bar` + !isScoped && pathComponents[pathComponents.length - 3].toLowerCase() === modulesDirName; // `node_modules/foo` + }); + + if (log) log(`Searching for typing names in ${packagesFolderPath}; all files: ${JSON.stringify(dependencyManifestNames)}`); + + // Once we have the names of things to look up, we iterate over + // and either collect their included typings, or add them to the + // list of typings we need to look up separately. + for (const manifestPath of dependencyManifestNames) { + const normalizedFileName = normalizePath(manifestPath); + const result = readConfigFile(normalizedFileName, (path: string) => host.readFile(path)); + const manifest: PackageJson = result.config; + + // If the package has its own d.ts typings, those will take precedence. Otherwise the package name will be used + // to download d.ts files from DefinitelyTyped + if (!manifest.name) { + continue; + } + const ownTypes = manifest.types || manifest.typings; + if (ownTypes) { + const absolutePath = getNormalizedAbsolutePath(ownTypes, getDirectoryPath(normalizedFileName)); + if (host.fileExists(absolutePath)) { + if (log) log(` Package '${manifest.name}' provides its own types.`); + inferredTypings.set(manifest.name, absolutePath); + } + else { + if (log) log(` Package '${manifest.name}' provides its own types but they are missing.`); + } + } + else { + packageNames.push(manifest.name); + } + } + + addInferredTypings(packageNames, " Found package names"); } /** @@ -251,58 +328,6 @@ namespace ts.JsTyping { addInferredTyping("react"); } } - - /** - * Infer typing names from packages folder (ex: node_module, bower_components) - * @param packagesFolderPath is the path to the packages folder - */ - function getTypingNamesFromPackagesFolder(packagesFolderPath: string, filesToWatch: Push) { - filesToWatch.push(packagesFolderPath); - - // Todo: add support for ModuleResolutionHost too - if (!host.directoryExists(packagesFolderPath)) { - return; - } - - // depth of 2, so we access `node_modules/foo` but not `node_modules/foo/bar` - const fileNames = host.readDirectory(packagesFolderPath, [Extension.Json], /*excludes*/ undefined, /*includes*/ undefined, /*depth*/ 2); - if (log) log(`Searching for typing names in ${packagesFolderPath}; all files: ${JSON.stringify(fileNames)}`); - const packageNames: string[] = []; - for (const fileName of fileNames) { - const normalizedFileName = normalizePath(fileName); - const baseFileName = getBaseFileName(normalizedFileName); - if (baseFileName !== "package.json" && baseFileName !== "bower.json") { - continue; - } - const result = readConfigFile(normalizedFileName, (path: string) => host.readFile(path)); - const packageJson: PackageJson = result.config; - - // npm 3's package.json contains a "_requiredBy" field - // we should include all the top level module names for npm 2, and only module names whose - // "_requiredBy" field starts with "#" or equals "/" for npm 3. - if (baseFileName === "package.json" && packageJson._requiredBy && - filter(packageJson._requiredBy, (r: string) => r[0] === "#" || r === "/").length === 0) { - continue; - } - - // If the package has its own d.ts typings, those will take precedence. Otherwise the package name will be used - // to download d.ts files from DefinitelyTyped - if (!packageJson.name) { - continue; - } - const ownTypes = packageJson.types || packageJson.typings; - if (ownTypes) { - const absolutePath = getNormalizedAbsolutePath(ownTypes, getDirectoryPath(normalizedFileName)); - if (log) log(` Package '${packageJson.name}' provides its own types.`); - inferredTypings.set(packageJson.name, absolutePath); - } - else { - packageNames.push(packageJson.name); - } - } - addInferredTypings(packageNames, " Found package names"); - } - } export const enum NameValidationResult { diff --git a/src/lib/dom.generated.d.ts b/src/lib/dom.generated.d.ts index 753d799299dc9..2ef38a96af15d 100644 --- a/src/lib/dom.generated.d.ts +++ b/src/lib/dom.generated.d.ts @@ -53,8 +53,8 @@ interface AnimationEventInit extends EventInit { } interface AnimationPlaybackEventInit extends EventInit { - currentTime?: number | null; - timelineTime?: number | null; + currentTime?: CSSNumberish | null; + timelineTime?: CSSNumberish | null; } interface AssignedNodesOptions { @@ -207,7 +207,7 @@ interface ComputedEffectTiming extends EffectTiming { currentIteration?: number | null; endTime?: CSSNumberish; localTime?: CSSNumberish | null; - progress?: CSSNumberish | null; + progress?: number | null; startTime?: CSSNumberish; } @@ -264,8 +264,8 @@ interface CredentialRequestOptions { } interface CryptoKeyPair { - privateKey?: CryptoKey; - publicKey?: CryptoKey; + privateKey: CryptoKey; + publicKey: CryptoKey; } interface CustomEventInit extends EventInit { @@ -467,6 +467,18 @@ interface FileSystemFlags { exclusive?: boolean; } +interface FileSystemGetDirectoryOptions { + create?: boolean; +} + +interface FileSystemGetFileOptions { + create?: boolean; +} + +interface FileSystemRemoveOptions { + recursive?: boolean; +} + interface FocusEventInit extends UIEventInit { relatedTarget?: EventTarget | null; } @@ -671,6 +683,24 @@ interface KeyframeEffectOptions extends EffectTiming { pseudoElement?: string | null; } +interface LockInfo { + clientId?: string; + mode?: LockMode; + name?: string; +} + +interface LockManagerSnapshot { + held?: LockInfo[]; + pending?: LockInfo[]; +} + +interface LockOptions { + ifAvailable?: boolean; + mode?: LockMode; + signal?: AbortSignal; + steal?: boolean; +} + interface MediaCapabilitiesDecodingInfo extends MediaCapabilitiesInfo { configuration?: MediaDecodingConfiguration; } @@ -808,6 +838,7 @@ interface MediaTrackCapabilities { interface MediaTrackConstraintSet { aspectRatio?: ConstrainDouble; + autoGainControl?: ConstrainBoolean; channelCount?: ConstrainULong; deviceId?: ConstrainDOMString; echoCancellation?: ConstrainBoolean; @@ -816,6 +847,7 @@ interface MediaTrackConstraintSet { groupId?: ConstrainDOMString; height?: ConstrainULong; latency?: ConstrainDouble; + noiseSuppression?: ConstrainBoolean; sampleRate?: ConstrainULong; sampleSize?: ConstrainULong; suppressLocalAudioPlayback?: ConstrainBoolean; @@ -828,12 +860,14 @@ interface MediaTrackConstraints extends MediaTrackConstraintSet { interface MediaTrackSettings { aspectRatio?: number; + autoGainControl?: boolean; deviceId?: string; echoCancellation?: boolean; facingMode?: string; frameRate?: number; groupId?: string; height?: number; + noiseSuppression?: boolean; restrictOwnAudio?: boolean; sampleRate?: number; sampleSize?: number; @@ -842,12 +876,14 @@ interface MediaTrackSettings { interface MediaTrackSupportedConstraints { aspectRatio?: boolean; + autoGainControl?: boolean; deviceId?: boolean; echoCancellation?: boolean; facingMode?: boolean; frameRate?: boolean; groupId?: boolean; height?: boolean; + noiseSuppression?: boolean; sampleRate?: boolean; sampleSize?: boolean; suppressLocalAudioPlayback?: boolean; @@ -914,7 +950,7 @@ interface NotificationOptions { requireInteraction?: boolean; silent?: boolean; tag?: string; - timestamp?: DOMTimeStamp; + timestamp?: EpochTimeStamp; vibrate?: VibratePattern; } @@ -1146,7 +1182,7 @@ interface PublicKeyCredentialUserEntity extends PublicKeyCredentialEntity { interface PushSubscriptionJSON { endpoint?: string; - expirationTime?: DOMTimeStamp | null; + expirationTime?: EpochTimeStamp | null; keys?: Record; } @@ -1173,7 +1209,7 @@ interface RTCAnswerOptions extends RTCOfferAnswerOptions { } interface RTCCertificateExpiration { - expires?: DOMTimeStamp; + expires?: number; } interface RTCConfiguration { @@ -1463,7 +1499,7 @@ interface RequestInit { /** An AbortSignal to set request's signal. */ signal?: AbortSignal | null; /** Can only be null. Used to disassociate request from any Window. */ - window?: any; + window?: null; } interface ResizeObserverOptions { @@ -1622,7 +1658,7 @@ interface StreamPipeOptions { } interface StructuredSerializeOptions { - transfer?: any[]; + transfer?: Transferable[]; } interface SubmitEventInit extends EventInit { @@ -1798,42 +1834,42 @@ interface ANGLE_instanced_arrays { } interface ARIAMixin { - ariaAtomic: string; - ariaAutoComplete: string; - ariaBusy: string; - ariaChecked: string; - ariaColCount: string; - ariaColIndex: string; - ariaColSpan: string; - ariaCurrent: string; - ariaDisabled: string; - ariaExpanded: string; - ariaHasPopup: string; - ariaHidden: string; - ariaKeyShortcuts: string; - ariaLabel: string; - ariaLevel: string; - ariaLive: string; - ariaModal: string; - ariaMultiLine: string; - ariaMultiSelectable: string; - ariaOrientation: string; - ariaPlaceholder: string; - ariaPosInSet: string; - ariaPressed: string; - ariaReadOnly: string; - ariaRequired: string; - ariaRoleDescription: string; - ariaRowCount: string; - ariaRowIndex: string; - ariaRowSpan: string; - ariaSelected: string; - ariaSetSize: string; - ariaSort: string; - ariaValueMax: string; - ariaValueMin: string; - ariaValueNow: string; - ariaValueText: string; + ariaAtomic: string | null; + ariaAutoComplete: string | null; + ariaBusy: string | null; + ariaChecked: string | null; + ariaColCount: string | null; + ariaColIndex: string | null; + ariaColSpan: string | null; + ariaCurrent: string | null; + ariaDisabled: string | null; + ariaExpanded: string | null; + ariaHasPopup: string | null; + ariaHidden: string | null; + ariaKeyShortcuts: string | null; + ariaLabel: string | null; + ariaLevel: string | null; + ariaLive: string | null; + ariaModal: string | null; + ariaMultiLine: string | null; + ariaMultiSelectable: string | null; + ariaOrientation: string | null; + ariaPlaceholder: string | null; + ariaPosInSet: string | null; + ariaPressed: string | null; + ariaReadOnly: string | null; + ariaRequired: string | null; + ariaRoleDescription: string | null; + ariaRowCount: string | null; + ariaRowIndex: string | null; + ariaRowSpan: string | null; + ariaSelected: string | null; + ariaSetSize: string | null; + ariaSort: string | null; + ariaValueMax: string | null; + ariaValueMin: string | null; + ariaValueNow: string | null; + ariaValueText: string | null; } /** A controller object that allows you to abort one or more DOM requests as and when desired. */ @@ -1841,7 +1877,7 @@ interface AbortController { /** Returns the AbortSignal object associated with this object. */ readonly signal: AbortSignal; /** Invoking this method will set this object's AbortSignal's aborted flag and signal to any observers that the associated activity is to be aborted. */ - abort(): void; + abort(reason?: any): void; } declare var AbortController: { @@ -1867,7 +1903,7 @@ interface AbortSignal extends EventTarget { declare var AbortSignal: { prototype: AbortSignal; new(): AbortSignal; - // abort(): AbortSignal; + // abort(): AbortSignal; - To be re-added in the future }; interface AbstractRange { @@ -1930,7 +1966,7 @@ interface AnimationEventMap { } interface Animation extends EventTarget { - currentTime: number | null; + currentTime: CSSNumberish | null; effect: AnimationEffect | null; readonly finished: Promise; id: string; @@ -1942,7 +1978,7 @@ interface Animation extends EventTarget { playbackRate: number; readonly ready: Promise; readonly replaceState: AnimationReplaceState; - startTime: number | null; + startTime: CSSNumberish | null; timeline: AnimationTimeline | null; cancel(): void; commitStyles(): void; @@ -1992,8 +2028,8 @@ interface AnimationFrameProvider { } interface AnimationPlaybackEvent extends Event { - readonly currentTime: number | null; - readonly timelineTime: number | null; + readonly currentTime: CSSNumberish | null; + readonly timelineTime: CSSNumberish | null; } declare var AnimationPlaybackEvent: { @@ -2208,6 +2244,7 @@ declare var AudioScheduledSourceNode: { new(): AudioScheduledSourceNode; }; +/** Available only in secure contexts. */ interface AudioWorklet extends Worklet { } @@ -2220,6 +2257,7 @@ interface AudioWorkletNodeEventMap { "processorerror": Event; } +/** Available only in secure contexts. */ interface AudioWorkletNode extends AudioNode { onprocessorerror: ((this: AudioWorkletNode, ev: Event) => any) | null; readonly parameters: AudioParamMap; @@ -2235,6 +2273,7 @@ declare var AudioWorkletNode: { new(context: BaseAudioContext, name: string, options?: AudioWorkletNodeOptions): AudioWorkletNode; }; +/** Available only in secure contexts. */ interface AuthenticatorAssertionResponse extends AuthenticatorResponse { readonly authenticatorData: ArrayBuffer; readonly signature: ArrayBuffer; @@ -2246,6 +2285,7 @@ declare var AuthenticatorAssertionResponse: { new(): AuthenticatorAssertionResponse; }; +/** Available only in secure contexts. */ interface AuthenticatorAttestationResponse extends AuthenticatorResponse { readonly attestationObject: ArrayBuffer; } @@ -2255,6 +2295,7 @@ declare var AuthenticatorAttestationResponse: { new(): AuthenticatorAttestationResponse; }; +/** Available only in secure contexts. */ interface AuthenticatorResponse { readonly clientDataJSON: ArrayBuffer; } @@ -2278,6 +2319,7 @@ interface BaseAudioContextEventMap { } interface BaseAudioContext extends EventTarget { + /** Available only in secure contexts. */ readonly audioWorklet: AudioWorklet; readonly currentTime: number; readonly destination: AudioDestinationNode; @@ -2600,6 +2642,7 @@ declare var CSSRuleList: { /** An object that is a CSS declaration block, and exposes style information and various style-related methods and properties. */ interface CSSStyleDeclaration { + accentColor: string; alignContent: string; alignItems: string; alignSelf: string; @@ -2773,11 +2816,14 @@ interface CSSStyleDeclaration { gridAutoRows: string; gridColumn: string; gridColumnEnd: string; + /** @deprecated This is a legacy alias of `columnGap`. */ gridColumnGap: string; gridColumnStart: string; + /** @deprecated This is a legacy alias of `gap`. */ gridGap: string; gridRow: string; gridRowEnd: string; + /** @deprecated This is a legacy alias of `rowGap`. */ gridRowGap: string; gridRowStart: string; gridTemplate: string; @@ -2918,6 +2964,7 @@ interface CSSStyleDeclaration { scrollSnapAlign: string; scrollSnapStop: string; scrollSnapType: string; + scrollbarGutter: string; shapeImageThreshold: string; shapeMargin: string; shapeOutside: string; @@ -3016,15 +3063,15 @@ interface CSSStyleDeclaration { webkitBorderTopLeftRadius: string; /** @deprecated This is a legacy alias of `borderTopRightRadius`. */ webkitBorderTopRightRadius: string; - /** @deprecated */ + /** @deprecated This is a legacy alias of `boxAlign`. */ webkitBoxAlign: string; - /** @deprecated */ + /** @deprecated This is a legacy alias of `boxFlex`. */ webkitBoxFlex: string; - /** @deprecated */ + /** @deprecated This is a legacy alias of `boxOrdinalGroup`. */ webkitBoxOrdinalGroup: string; - /** @deprecated */ + /** @deprecated This is a legacy alias of `boxOrient`. */ webkitBoxOrient: string; - /** @deprecated */ + /** @deprecated This is a legacy alias of `boxPack`. */ webkitBoxPack: string; /** @deprecated This is a legacy alias of `boxShadow`. */ webkitBoxShadow: string; @@ -3179,7 +3226,10 @@ declare var CSSTransition: { new(): CSSTransition; }; -/** Provides a storage mechanism for Request / Response object pairs that are cached, for example as part of the ServiceWorker life cycle. Note that the Cache interface is exposed to windowed scopes as well as workers. You don't have to use it in conjunction with service workers, even though it is defined in the service worker spec. */ +/** + * Provides a storage mechanism for Request / Response object pairs that are cached, for example as part of the ServiceWorker life cycle. Note that the Cache interface is exposed to windowed scopes as well as workers. You don't have to use it in conjunction with service workers, even though it is defined in the service worker spec. + * Available only in secure contexts. + */ interface Cache { add(request: RequestInfo): Promise; addAll(requests: RequestInfo[]): Promise; @@ -3195,7 +3245,10 @@ declare var Cache: { new(): Cache; }; -/** The storage for Cache objects. */ +/** + * The storage for Cache objects. + * Available only in secure contexts. + */ interface CacheStorage { delete(cacheName: string): Promise; has(cacheName: string): Promise; @@ -3209,9 +3262,23 @@ declare var CacheStorage: { new(): CacheStorage; }; +interface CanvasCaptureMediaStreamTrack extends MediaStreamTrack { + readonly canvas: HTMLCanvasElement; + requestFrame(): void; + addEventListener(type: K, listener: (this: CanvasCaptureMediaStreamTrack, ev: MediaStreamTrackEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; + removeEventListener(type: K, listener: (this: CanvasCaptureMediaStreamTrack, ev: MediaStreamTrackEventMap[K]) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; +} + +declare var CanvasCaptureMediaStreamTrack: { + prototype: CanvasCaptureMediaStreamTrack; + new(): CanvasCaptureMediaStreamTrack; +}; + interface CanvasCompositing { globalAlpha: number; - globalCompositeOperation: string; + globalCompositeOperation: GlobalCompositeOperation; } interface CanvasDrawImage { @@ -3237,6 +3304,7 @@ interface CanvasDrawPath { interface CanvasFillStrokeStyles { fillStyle: string | CanvasGradient | CanvasPattern; strokeStyle: string | CanvasGradient | CanvasPattern; + createConicGradient(startAngle: number, x: number, y: number): CanvasGradient; createLinearGradient(x0: number, y0: number, x1: number, y1: number): CanvasGradient; createPattern(image: CanvasImageSource, repetition: string | null): CanvasPattern | null; createRadialGradient(x0: number, y0: number, r0: number, x1: number, y1: number, r1: number): CanvasGradient; @@ -3427,6 +3495,7 @@ interface ChildNode extends Node { interface ClientRect extends DOMRect { } +/** Available only in secure contexts. */ interface Clipboard extends EventTarget { read(): Promise; readText(): Promise; @@ -3530,6 +3599,7 @@ declare var CountQueuingStrategy: { new(init: QueuingStrategyInit): CountQueuingStrategy; }; +/** Available only in secure contexts. */ interface Credential { readonly id: string; readonly type: string; @@ -3540,6 +3610,7 @@ declare var Credential: { new(): Credential; }; +/** Available only in secure contexts. */ interface CredentialsContainer { create(options?: CredentialCreationOptions): Promise; get(options?: CredentialRequestOptions): Promise; @@ -3554,8 +3625,11 @@ declare var CredentialsContainer: { /** Basic cryptography features available in the current context. It allows access to a cryptographically strong random number generator and to cryptographic primitives. */ interface Crypto { + /** Available only in secure contexts. */ readonly subtle: SubtleCrypto; getRandomValues(array: T): T; + /** Available only in secure contexts. */ + randomUUID(): string; } declare var Crypto: { @@ -3563,7 +3637,10 @@ declare var Crypto: { new(): Crypto; }; -/** The CryptoKey dictionary of the Web Crypto API represents a cryptographic key. */ +/** + * The CryptoKey dictionary of the Web Crypto API represents a cryptographic key. + * Available only in secure contexts. + */ interface CryptoKey { readonly algorithm: KeyAlgorithm; readonly extractable: boolean; @@ -4071,7 +4148,10 @@ declare var DelayNode: { new(context: BaseAudioContext, options?: DelayOptions): DelayNode; }; -/** The DeviceMotionEvent provides web developers with information about the speed of changes for the device's position and orientation. */ +/** + * The DeviceMotionEvent provides web developers with information about the speed of changes for the device's position and orientation. + * Available only in secure contexts. + */ interface DeviceMotionEvent extends Event { readonly acceleration: DeviceMotionEventAcceleration | null; readonly accelerationIncludingGravity: DeviceMotionEventAcceleration | null; @@ -4084,19 +4164,24 @@ declare var DeviceMotionEvent: { new(type: string, eventInitDict?: DeviceMotionEventInit): DeviceMotionEvent; }; +/** Available only in secure contexts. */ interface DeviceMotionEventAcceleration { readonly x: number | null; readonly y: number | null; readonly z: number | null; } +/** Available only in secure contexts. */ interface DeviceMotionEventRotationRate { readonly alpha: number | null; readonly beta: number | null; readonly gamma: number | null; } -/** The DeviceOrientationEvent provides web developers with information from the physical orientation of the device running the web page. */ +/** + * The DeviceOrientationEvent provides web developers with information from the physical orientation of the device running the web page. + * Available only in secure contexts. + */ interface DeviceOrientationEvent extends Event { readonly absolute: boolean; readonly alpha: number | null; @@ -4251,7 +4336,7 @@ interface Document extends Node, DocumentAndElementEventHandlers, DocumentOrShad readonly timeline: DocumentTimeline; /** Contains the title of the document. */ title: string; - readonly visibilityState: VisibilityState; + readonly visibilityState: DocumentVisibilityState; /** * Sets or gets the color of the links that the user has visited. * @deprecated @@ -4394,13 +4479,6 @@ interface Document extends Node, DocumentAndElementEventHandlers, DocumentOrShad * @param filter A custom NodeFilter function to use. */ createTreeWalker(root: Node, whatToShow?: number, filter?: NodeFilter | null): TreeWalker; - /** - * Returns the element for the specified x coordinate and the specified y coordinate. - * @param x The x-offset - * @param y The y-offset - */ - elementFromPoint(x: number, y: number): Element | null; - elementsFromPoint(x: number, y: number): Element[]; /** * Executes a command on the current document, current selection, or the given range. * @param commandId String that specifies the command to execute. This command can be any of the command identifiers that can be executed in script. @@ -4558,6 +4636,13 @@ interface DocumentOrShadowRoot { readonly pointerLockElement: Element | null; /** Retrieves a collection of styleSheet objects representing the style sheets that correspond to each instance of a link or style object in the document. */ readonly styleSheets: StyleSheetList; + /** + * Returns the element for the specified x coordinate and the specified y coordinate. + * @param x The x-offset + * @param y The y-offset + */ + elementFromPoint(x: number, y: number): Element | null; + elementsFromPoint(x: number, y: number): Element[]; getAnimations(): Animation[]; } @@ -4785,6 +4870,16 @@ interface ElementContentEditable { readonly isContentEditable: boolean; } +interface ElementInternals extends ARIAMixin { + /** Returns the ShadowRoot for internals's target element, if the target element is a shadow host, or null otherwise. */ + readonly shadowRoot: ShadowRoot | null; +} + +declare var ElementInternals: { + prototype: ElementInternals; + new(): ElementInternals; +}; + /** Events providing information related to errors in scripts or in files. */ interface ErrorEvent extends Event { readonly colno: number; @@ -4881,8 +4976,10 @@ interface EventSource extends EventTarget { readonly CONNECTING: number; readonly OPEN: number; addEventListener(type: K, listener: (this: EventSource, ev: EventSourceEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: string, listener: (this: EventSource, event: MessageEvent) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; removeEventListener(type: K, listener: (this: EventSource, ev: EventSourceEventMap[K]) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: string, listener: (this: EventSource, event: MessageEvent) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; } @@ -5024,13 +5121,24 @@ declare var FileSystemDirectoryEntry: { new(): FileSystemDirectoryEntry; }; -/** @deprecated */ +/** Available only in secure contexts. */ +interface FileSystemDirectoryHandle extends FileSystemHandle { + readonly kind: "directory"; + getDirectoryHandle(name: string, options?: FileSystemGetDirectoryOptions): Promise; + getFileHandle(name: string, options?: FileSystemGetFileOptions): Promise; + removeEntry(name: string, options?: FileSystemRemoveOptions): Promise; + resolve(possibleDescendant: FileSystemHandle): Promise; +} + +declare var FileSystemDirectoryHandle: { + prototype: FileSystemDirectoryHandle; + new(): FileSystemDirectoryHandle; +}; + interface FileSystemDirectoryReader { - /** @deprecated */ readEntries(successCallback: FileSystemEntriesCallback, errorCallback?: ErrorCallback): void; } -/** @deprecated */ declare var FileSystemDirectoryReader: { prototype: FileSystemDirectoryReader; new(): FileSystemDirectoryReader; @@ -5059,6 +5167,29 @@ declare var FileSystemFileEntry: { new(): FileSystemFileEntry; }; +/** Available only in secure contexts. */ +interface FileSystemFileHandle extends FileSystemHandle { + readonly kind: "file"; + getFile(): Promise; +} + +declare var FileSystemFileHandle: { + prototype: FileSystemFileHandle; + new(): FileSystemFileHandle; +}; + +/** Available only in secure contexts. */ +interface FileSystemHandle { + readonly kind: FileSystemHandleKind; + readonly name: string; + isSameEntry(other: FileSystemHandle): Promise; +} + +declare var FileSystemHandle: { + prototype: FileSystemHandle; + new(): FileSystemHandle; +}; + /** Focus-related events like focus, blur, focusin, or focusout. */ interface FocusEvent extends UIEvent { readonly relatedTarget: EventTarget | null; @@ -5167,7 +5298,10 @@ declare var GainNode: { new(context: BaseAudioContext, options?: GainOptions): GainNode; }; -/** This Gamepad API interface defines an individual gamepad or other controller, allowing access to information such as button presses, axis positions, and id. */ +/** + * This Gamepad API interface defines an individual gamepad or other controller, allowing access to information such as button presses, axis positions, and id. + * Available only in secure contexts. + */ interface Gamepad { readonly axes: ReadonlyArray; readonly buttons: ReadonlyArray; @@ -5184,7 +5318,10 @@ declare var Gamepad: { new(): Gamepad; }; -/** An individual button of a gamepad or other controller, allowing access to the current state of different types of buttons available on the control device. */ +/** + * An individual button of a gamepad or other controller, allowing access to the current state of different types of buttons available on the control device. + * Available only in secure contexts. + */ interface GamepadButton { readonly pressed: boolean; readonly touched: boolean; @@ -5196,7 +5333,10 @@ declare var GamepadButton: { new(): GamepadButton; }; -/** This Gamepad API interface contains references to gamepads connected to the system, which is what the gamepad events Window.gamepadconnected and Window.gamepaddisconnected are fired in response to. */ +/** + * This Gamepad API interface contains references to gamepads connected to the system, which is what the gamepad events Window.gamepadconnected and Window.gamepaddisconnected are fired in response to. + * Available only in secure contexts. + */ interface GamepadEvent extends Event { readonly gamepad: Gamepad; } @@ -5233,6 +5373,7 @@ declare var Geolocation: { new(): Geolocation; }; +/** Available only in secure contexts. */ interface GeolocationCoordinates { readonly accuracy: number; readonly altitude: number | null; @@ -5248,9 +5389,10 @@ declare var GeolocationCoordinates: { new(): GeolocationCoordinates; }; +/** Available only in secure contexts. */ interface GeolocationPosition { readonly coords: GeolocationCoordinates; - readonly timestamp: DOMTimeStamp; + readonly timestamp: EpochTimeStamp; } declare var GeolocationPosition: { @@ -5349,6 +5491,7 @@ interface GlobalEventHandlersEventMap { "select": Event; "selectionchange": Event; "selectstart": Event; + "slotchange": Event; "stalled": Event; "submit": SubmitEvent; "suspend": Event; @@ -5583,6 +5726,7 @@ interface GlobalEventHandlers { * @param ev The event. */ onscroll: ((this: GlobalEventHandlers, ev: Event) => any) | null; + onsecuritypolicyviolation: ((this: GlobalEventHandlers, ev: SecurityPolicyViolationEvent) => any) | null; /** * Occurs when the seek operation ends. * @param ev The event. @@ -5600,6 +5744,7 @@ interface GlobalEventHandlers { onselect: ((this: GlobalEventHandlers, ev: Event) => any) | null; onselectionchange: ((this: GlobalEventHandlers, ev: Event) => any) | null; onselectstart: ((this: GlobalEventHandlers, ev: Event) => any) | null; + onslotchange: ((this: GlobalEventHandlers, ev: Event) => any) | null; /** * Occurs when the download has stopped. * @param ev The event. @@ -6072,6 +6217,7 @@ interface HTMLElement extends Element, DocumentAndElementEventHandlers, ElementC spellcheck: boolean; title: string; translate: boolean; + attachInternals(): ElementInternals; click(): void; addEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; @@ -6564,7 +6710,8 @@ interface HTMLImageElement extends HTMLElement { hspace: number; /** Sets or retrieves whether the image is a server-side image map. */ isMap: boolean; - loading: string; + /** Sets or retrieves the policy for loading image elements that are outside the viewport. */ + loading: "eager" | "lazy"; /** * Sets or retrieves a Uniform Resource Identifier (URI) to a long description of the object. * @deprecated @@ -6933,6 +7080,7 @@ interface HTMLMediaElement extends HTMLElement { readonly error: MediaError | null; /** Gets or sets a flag to specify whether playback should restart after it completes. */ loop: boolean; + /** Available only in secure contexts. */ readonly mediaKeys: MediaKeys | null; /** Gets or sets a flag that indicates whether the audio (either audio or the audio track on video media) is muted. */ muted: boolean; @@ -6970,6 +7118,7 @@ interface HTMLMediaElement extends HTMLElement { pause(): void; /** Loads and starts playback of a media resource. */ play(): Promise; + /** Available only in secure contexts. */ setMediaKeys(mediaKeys: MediaKeys | null): Promise; readonly HAVE_CURRENT_DATA: number; readonly HAVE_ENOUGH_DATA: number; @@ -7020,6 +7169,7 @@ interface HTMLMetaElement extends HTMLElement { content: string; /** Gets or sets information used to bind the value of a content attribute of a meta element to an HTTP response header. */ httpEquiv: string; + media: string; /** Sets or retrieves the value specified in the content attribute of the meta object. */ name: string; /** @@ -7523,6 +7673,7 @@ declare var HTMLSelectElement: { interface HTMLSlotElement extends HTMLElement { name: string; + assign(...nodes: (Element | Text)[]): void; assignedElements(options?: AssignedNodesOptions): Element[]; assignedNodes(options?: AssignedNodesOptions): Node[]; addEventListener(type: K, listener: (this: HTMLSlotElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; @@ -7538,6 +7689,7 @@ declare var HTMLSlotElement: { /** Provides special properties (beyond the regular HTMLElement object interface it also has available to it by inheritance) for manipulating elements. */ interface HTMLSourceElement extends HTMLElement { + height: number; /** Gets or sets the intended media type of the media source. */ media: string; sizes: string; @@ -7546,6 +7698,7 @@ interface HTMLSourceElement extends HTMLElement { srcset: string; /** Gets or sets the MIME type of a media resource. */ type: string; + width: number; addEventListener(type: K, listener: (this: HTMLSourceElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; removeEventListener(type: K, listener: (this: HTMLSourceElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void; @@ -8501,6 +8654,7 @@ interface IDBTransactionEventMap { interface IDBTransaction extends EventTarget { /** Returns the transaction's connection. */ readonly db: IDBDatabase; + readonly durability: IDBTransactionDurability; /** If the transaction was aborted, returns the error (a DOMException) providing the reason. */ readonly error: DOMException | null; /** Returns the mode the transaction was created with ("readonly" or "readwrite"), or "versionchange" for an upgrade transaction. */ @@ -8603,6 +8757,14 @@ interface InnerHTML { innerHTML: string; } +interface InputDeviceInfo extends MediaDeviceInfo { +} + +declare var InputDeviceInfo: { + prototype: InputDeviceInfo; + new(): InputDeviceInfo; +}; + interface InputEvent extends UIEvent { readonly data: string | null; readonly dataTransfer: DataTransfer | null; @@ -8772,6 +8934,29 @@ declare var Location: { new(): Location; }; +/** Available only in secure contexts. */ +interface Lock { + readonly mode: LockMode; + readonly name: string; +} + +declare var Lock: { + prototype: Lock; + new(): Lock; +}; + +/** Available only in secure contexts. */ +interface LockManager { + query(): Promise; + request(name: string, callback: LockGrantedCallback): Promise; + request(name: string, options: LockOptions, callback: LockGrantedCallback): Promise; +} + +declare var LockManager: { + prototype: LockManager; + new(): LockManager; +}; + interface MathMLElementEventMap extends ElementEventMap, DocumentAndElementEventHandlersEventMap, GlobalEventHandlersEventMap { } @@ -8797,7 +8982,10 @@ declare var MediaCapabilities: { new(): MediaCapabilities; }; -/** The MediaDevicesInfo interface contains information that describes a single media input or output device. */ +/** + * The MediaDevicesInfo interface contains information that describes a single media input or output device. + * Available only in secure contexts. + */ interface MediaDeviceInfo { readonly deviceId: string; readonly groupId: string; @@ -8815,7 +9003,10 @@ interface MediaDevicesEventMap { "devicechange": Event; } -/** Provides access to connected media input devices like cameras and microphones, as well as screen sharing. In essence, it lets you obtain access to any hardware source of media data. */ +/** + * Provides access to connected media input devices like cameras and microphones, as well as screen sharing. In essence, it lets you obtain access to any hardware source of media data. + * Available only in secure contexts. + */ interface MediaDevices extends EventTarget { ondevicechange: ((this: MediaDevices, ev: Event) => any) | null; enumerateDevices(): Promise; @@ -8872,7 +9063,10 @@ declare var MediaError: { readonly MEDIA_ERR_SRC_NOT_SUPPORTED: number; }; -/** This EncryptedMediaExtensions API interface contains the content and related data when the content decryption module generates a message for the session. */ +/** + * This EncryptedMediaExtensions API interface contains the content and related data when the content decryption module generates a message for the session. + * Available only in secure contexts. + */ interface MediaKeyMessageEvent extends Event { readonly message: ArrayBuffer; readonly messageType: MediaKeyMessageType; @@ -8888,7 +9082,10 @@ interface MediaKeySessionEventMap { "message": MediaKeyMessageEvent; } -/** This EncryptedMediaExtensions API interface represents a context for message exchange with a content decryption module (CDM). */ +/** + * This EncryptedMediaExtensions API interface represents a context for message exchange with a content decryption module (CDM). + * Available only in secure contexts. + */ interface MediaKeySession extends EventTarget { readonly closed: Promise; readonly expiration: number; @@ -8912,7 +9109,10 @@ declare var MediaKeySession: { new(): MediaKeySession; }; -/** This EncryptedMediaExtensions API interface is a read-only map of media key statuses by key IDs. */ +/** + * This EncryptedMediaExtensions API interface is a read-only map of media key statuses by key IDs. + * Available only in secure contexts. + */ interface MediaKeyStatusMap { readonly size: number; get(keyId: BufferSource): MediaKeyStatus | undefined; @@ -8925,7 +9125,10 @@ declare var MediaKeyStatusMap: { new(): MediaKeyStatusMap; }; -/** This EncryptedMediaExtensions API interface provides access to a Key System for decryption and/or a content protection provider. You can request an instance of this object using the Navigator.requestMediaKeySystemAccess method. */ +/** + * This EncryptedMediaExtensions API interface provides access to a Key System for decryption and/or a content protection provider. You can request an instance of this object using the Navigator.requestMediaKeySystemAccess method. + * Available only in secure contexts. + */ interface MediaKeySystemAccess { readonly keySystem: string; createMediaKeys(): Promise; @@ -8937,7 +9140,10 @@ declare var MediaKeySystemAccess: { new(): MediaKeySystemAccess; }; -/** This EncryptedMediaExtensions API interface the represents a set of keys that an associated HTMLMediaElement can use for decryption of media data during playback. */ +/** + * This EncryptedMediaExtensions API interface the represents a set of keys that an associated HTMLMediaElement can use for decryption of media data during playback. + * Available only in secure contexts. + */ interface MediaKeys { createSession(sessionType?: MediaKeySessionType): MediaKeySession; setServerCertificate(serverCertificate: BufferSource): Promise; @@ -9011,7 +9217,7 @@ declare var MediaQueryListEvent: { interface MediaRecorderEventMap { "dataavailable": BlobEvent; - "error": Event; + "error": MediaRecorderErrorEvent; "pause": Event; "resume": Event; "start": Event; @@ -9022,7 +9228,7 @@ interface MediaRecorder extends EventTarget { readonly audioBitsPerSecond: number; readonly mimeType: string; ondataavailable: ((this: MediaRecorder, ev: BlobEvent) => any) | null; - onerror: ((this: MediaRecorder, ev: Event) => any) | null; + onerror: ((this: MediaRecorder, ev: MediaRecorderErrorEvent) => any) | null; onpause: ((this: MediaRecorder, ev: Event) => any) | null; onresume: ((this: MediaRecorder, ev: Event) => any) | null; onstart: ((this: MediaRecorder, ev: Event) => any) | null; @@ -9441,20 +9647,27 @@ declare var NamedNodeMap: { /** The state and the identity of the user agent. It allows scripts to query it and to register themselves to carry on some activities. */ interface Navigator extends NavigatorAutomationInformation, NavigatorConcurrentHardware, NavigatorContentUtils, NavigatorCookies, NavigatorID, NavigatorLanguage, NavigatorNetworkInformation, NavigatorOnLine, NavigatorPlugins, NavigatorStorage { + /** Available only in secure contexts. */ readonly clipboard: Clipboard; + /** Available only in secure contexts. */ readonly credentials: CredentialsContainer; readonly doNotTrack: string | null; readonly geolocation: Geolocation; readonly maxTouchPoints: number; readonly mediaCapabilities: MediaCapabilities; + /** Available only in secure contexts. */ readonly mediaDevices: MediaDevices; readonly mediaSession: MediaSession; readonly permissions: Permissions; - readonly pointerEnabled: boolean; + /** Available only in secure contexts. */ readonly serviceWorker: ServiceWorkerContainer; + /** Available only in secure contexts. */ + canShare(data?: ShareData): boolean; getGamepads(): (Gamepad | null)[]; + /** Available only in secure contexts. */ requestMediaKeySystemAccess(keySystem: string, supportedConfigurations: MediaKeySystemConfiguration[]): Promise; sendBeacon(url: string | URL, data?: BodyInit | null): boolean; + /** Available only in secure contexts. */ share(data?: ShareData): Promise; vibrate(pattern: VibratePattern): boolean; } @@ -9473,6 +9686,7 @@ interface NavigatorConcurrentHardware { } interface NavigatorContentUtils { + /** Available only in secure contexts. */ registerProtocolHandler(scheme: string, url: string | URL): void; } @@ -9521,6 +9735,7 @@ interface NavigatorPlugins { javaEnabled(): boolean; } +/** Available only in secure contexts. */ interface NavigatorStorage { readonly storage: StorageManager; } @@ -9948,41 +10163,7 @@ declare var Path2D: { new(path?: Path2D | string): Path2D; }; -/** - * This Payment Request API interface is used to store shipping or payment address information. - * @deprecated - */ -interface PaymentAddress { - /** @deprecated */ - readonly addressLine: ReadonlyArray; - /** @deprecated */ - readonly city: string; - /** @deprecated */ - readonly country: string; - /** @deprecated */ - readonly dependentLocality: string; - /** @deprecated */ - readonly organization: string; - /** @deprecated */ - readonly phone: string; - /** @deprecated */ - readonly postalCode: string; - /** @deprecated */ - readonly recipient: string; - /** @deprecated */ - readonly region: string; - /** @deprecated */ - readonly sortingCode: string; - /** @deprecated */ - toJSON(): any; -} - -/** @deprecated */ -declare var PaymentAddress: { - prototype: PaymentAddress; - new(): PaymentAddress; -}; - +/** Available only in secure contexts. */ interface PaymentMethodChangeEvent extends PaymentRequestUpdateEvent { readonly methodDetails: any; readonly methodName: string; @@ -9997,7 +10178,10 @@ interface PaymentRequestEventMap { "paymentmethodchange": Event; } -/** This Payment Request API interface is the primary access point into the API, and lets web content and apps accept payments from the end user. */ +/** + * This Payment Request API interface is the primary access point into the API, and lets web content and apps accept payments from the end user. + * Available only in secure contexts. + */ interface PaymentRequest extends EventTarget { readonly id: string; onpaymentmethodchange: ((this: PaymentRequest, ev: Event) => any) | null; @@ -10015,7 +10199,10 @@ declare var PaymentRequest: { new(methodData: PaymentMethodData[], details: PaymentDetailsInit): PaymentRequest; }; -/** This Payment Request API interface enables a web page to update the details of a PaymentRequest in response to a user action. */ +/** + * This Payment Request API interface enables a web page to update the details of a PaymentRequest in response to a user action. + * Available only in secure contexts. + */ interface PaymentRequestUpdateEvent extends Event { updateWith(detailsPromise: PaymentDetailsUpdate | PromiseLike): void; } @@ -10025,7 +10212,10 @@ declare var PaymentRequestUpdateEvent: { new(type: string, eventInitDict?: PaymentRequestUpdateEventInit): PaymentRequestUpdateEvent; }; -/** This Payment Request API interface is returned after a user selects a payment method and approves a payment request. */ +/** + * This Payment Request API interface is returned after a user selects a payment method and approves a payment request. + * Available only in secure contexts. + */ interface PaymentResponse extends EventTarget { readonly details: any; readonly methodName: string; @@ -10093,6 +10283,7 @@ interface PerformanceEventTiming extends PerformanceEntry { readonly processingEnd: DOMHighResTimeStamp; readonly processingStart: DOMHighResTimeStamp; readonly target: Node | null; + toJSON(): any; } declare var PerformanceEventTiming: { @@ -10425,6 +10616,7 @@ interface PointerEvent extends MouseEvent { readonly tiltY: number; readonly twist: number; readonly width: number; + /** Available only in secure contexts. */ getCoalescedEvents(): PointerEvent[]; getPredictedEvents(): PointerEvent[]; } @@ -10479,6 +10671,7 @@ declare var PromiseRejectionEvent: { new(type: string, eventInitDict: PromiseRejectionEventInit): PromiseRejectionEvent; }; +/** Available only in secure contexts. */ interface PublicKeyCredential extends Credential { readonly rawId: ArrayBuffer; readonly response: AuthenticatorResponse; @@ -10491,10 +10684,13 @@ declare var PublicKeyCredential: { isUserVerifyingPlatformAuthenticatorAvailable(): Promise; }; -/** This Push API interface provides a way to receive notifications from third-party servers as well as request URLs for push notifications. */ +/** + * This Push API interface provides a way to receive notifications from third-party servers as well as request URLs for push notifications. + * Available only in secure contexts. + */ interface PushManager { getSubscription(): Promise; - permissionState(options?: PushSubscriptionOptionsInit): Promise; + permissionState(options?: PushSubscriptionOptionsInit): Promise; subscribe(options?: PushSubscriptionOptionsInit): Promise; } @@ -10504,7 +10700,10 @@ declare var PushManager: { readonly supportedContentEncodings: ReadonlyArray; }; -/** This Push API interface provides a subcription's URL endpoint and allows unsubscription from a push service. */ +/** + * This Push API interface provides a subcription's URL endpoint and allows unsubscription from a push service. + * Available only in secure contexts. + */ interface PushSubscription { readonly endpoint: string; readonly options: PushSubscriptionOptions; @@ -10518,6 +10717,7 @@ declare var PushSubscription: { new(): PushSubscription; }; +/** Available only in secure contexts. */ interface PushSubscriptionOptions { readonly applicationServerKey: ArrayBuffer | null; } @@ -10528,7 +10728,7 @@ declare var PushSubscriptionOptions: { }; interface RTCCertificate { - readonly expires: DOMTimeStamp; + readonly expires: EpochTimeStamp; getFingerprints(): RTCDtlsFingerprint[]; } @@ -10806,6 +11006,7 @@ interface RTCRtpTransceiver { readonly mid: string | null; readonly receiver: RTCRtpReceiver; readonly sender: RTCRtpSender; + setCodecPreferences(codecs: RTCRtpCodecCapability[]): void; stop(): void; } @@ -10910,7 +11111,6 @@ interface ReadableStream { pipeThrough(transform: ReadableWritablePair, options?: StreamPipeOptions): ReadableStream; pipeTo(destination: WritableStream, options?: StreamPipeOptions): Promise; tee(): [ReadableStream, ReadableStream]; - forEach(callbackfn: (value: any, key: number, parent: ReadableStream) => void, thisArg?: any): void; } declare var ReadableStream: { @@ -11021,6 +11221,7 @@ interface ResizeObserverEntry { readonly borderBoxSize: ReadonlyArray; readonly contentBoxSize: ReadonlyArray; readonly contentRect: DOMRectReadOnly; + readonly devicePixelContentBoxSize: ReadonlyArray; readonly target: Element; } @@ -12898,7 +13099,10 @@ interface ServiceWorkerEventMap extends AbstractWorkerEventMap { "statechange": Event; } -/** This ServiceWorker API interface provides a reference to a service worker. Multiple browsing contexts (e.g. pages, workers, etc.) can be associated with the same service worker, each through a unique ServiceWorker object. */ +/** + * This ServiceWorker API interface provides a reference to a service worker. Multiple browsing contexts (e.g. pages, workers, etc.) can be associated with the same service worker, each through a unique ServiceWorker object. + * Available only in secure contexts. + */ interface ServiceWorker extends EventTarget, AbstractWorker { onstatechange: ((this: ServiceWorker, ev: Event) => any) | null; readonly scriptURL: string; @@ -12922,7 +13126,10 @@ interface ServiceWorkerContainerEventMap { "messageerror": MessageEvent; } -/** The ServiceWorkerContainer interface of the ServiceWorker API provides an object representing the service worker as an overall unit in the network ecosystem, including facilities to register, unregister and update service workers, and access the state of service workers and their registrations. */ +/** + * The ServiceWorkerContainer interface of the ServiceWorker API provides an object representing the service worker as an overall unit in the network ecosystem, including facilities to register, unregister and update service workers, and access the state of service workers and their registrations. + * Available only in secure contexts. + */ interface ServiceWorkerContainer extends EventTarget { readonly controller: ServiceWorker | null; oncontrollerchange: ((this: ServiceWorkerContainer, ev: Event) => any) | null; @@ -12948,7 +13155,10 @@ interface ServiceWorkerRegistrationEventMap { "updatefound": Event; } -/** This ServiceWorker API interface represents the service worker registration. You register a service worker to control one or more pages that share the same origin. */ +/** + * This ServiceWorker API interface represents the service worker registration. You register a service worker to control one or more pages that share the same origin. + * Available only in secure contexts. + */ interface ServiceWorkerRegistration extends EventTarget { readonly active: ServiceWorker | null; readonly installing: ServiceWorker | null; @@ -12972,11 +13182,21 @@ declare var ServiceWorkerRegistration: { new(): ServiceWorkerRegistration; }; +interface ShadowRootEventMap { + "slotchange": Event; +} + interface ShadowRoot extends DocumentFragment, DocumentOrShadowRoot, InnerHTML { readonly delegatesFocus: boolean; readonly host: Element; readonly mode: ShadowRootMode; + onslotchange: ((this: ShadowRoot, ev: Event) => any) | null; + readonly slotAssignment: SlotAssignmentMode; /** Throws a "NotSupportedError" DOMException if context object is a shadow root. */ + addEventListener(type: K, listener: (this: ShadowRoot, ev: ShadowRootEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; + removeEventListener(type: K, listener: (this: ShadowRoot, ev: ShadowRootEventMap[K]) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; } declare var ShadowRoot: { @@ -13266,8 +13486,10 @@ declare var StorageEvent: { new(type: string, eventInitDict?: StorageEventInit): StorageEvent; }; +/** Available only in secure contexts. */ interface StorageManager { estimate(): Promise; + getDirectory(): Promise; persist(): Promise; persisted(): Promise; } @@ -13321,7 +13543,10 @@ declare var SubmitEvent: { new(type: string, eventInitDict?: SubmitEventInit): SubmitEvent; }; -/** This Web Crypto API interface provides a number of low-level cryptographic functions. It is accessed via the Crypto.subtle properties available in a window context (via Window.crypto). */ +/** + * This Web Crypto API interface provides a number of low-level cryptographic functions. It is accessed via the Crypto.subtle properties available in a window context (via Window.crypto). + * Available only in secure contexts. + */ interface SubtleCrypto { decrypt(algorithm: AlgorithmIdentifier | RsaOaepParams | AesCtrParams | AesCbcParams | AesGcmParams, key: CryptoKey, data: BufferSource): Promise; deriveBits(algorithm: AlgorithmIdentifier | EcdhKeyDeriveParams | HkdfParams | Pbkdf2Params, baseKey: CryptoKey, length: number): Promise; @@ -13348,7 +13573,6 @@ declare var SubtleCrypto: { /** The textual content of Element or Attr. If an element has no markup within its content, it has a single child implementing Text that contains the element's text. However, if the element contains markup, it is parsed into information items and Text nodes that form its children. */ interface Text extends CharacterData, Slottable { - readonly assignedSlot: HTMLSlotElement | null; /** Returns the combined data of all direct Text node siblings. */ readonly wholeText: string; /** Splits data at the given offset and returns the remainder as Text node. */ @@ -14027,6 +14251,13 @@ interface WEBGL_lose_context { restoreContext(): void; } +interface WEBGL_multi_draw { + multiDrawArraysInstancedWEBGL(mode: GLenum, firstsList: Int32Array | GLint[], firstsOffset: GLuint, countsList: Int32Array | GLsizei[], countsOffset: GLuint, instanceCountsList: Int32Array | GLsizei[], instanceCountsOffset: GLuint, drawcount: GLsizei): void; + multiDrawArraysWEBGL(mode: GLenum, firstsList: Int32Array | GLint[], firstsOffset: GLuint, countsList: Int32Array | GLsizei[], countsOffset: GLuint, drawcount: GLsizei): void; + multiDrawElementsInstancedWEBGL(mode: GLenum, countsList: Int32Array | GLint[], countsOffset: GLuint, type: GLenum, offsetsList: Int32Array | GLsizei[], offsetsOffset: GLuint, instanceCountsList: Int32Array | GLsizei[], instanceCountsOffset: GLuint, drawcount: GLsizei): void; + multiDrawElementsWEBGL(mode: GLenum, countsList: Int32Array | GLint[], countsOffset: GLuint, type: GLenum, offsetsList: Int32Array | GLsizei[], offsetsOffset: GLuint, drawcount: GLsizei): void; +} + /** A WaveShaperNode always has exactly one input and one output. */ interface WaveShaperNode extends AudioNode { curve: Float32Array | null; @@ -16032,7 +16263,9 @@ interface Window extends EventTarget, AnimationFrameProvider, GlobalEventHandler readonly menubar: BarProp; name: string; readonly navigator: Navigator; + /** Available only in secure contexts. */ ondevicemotion: ((this: Window, ev: DeviceMotionEvent) => any) | null; + /** Available only in secure contexts. */ ondeviceorientation: ((this: Window, ev: DeviceOrientationEvent) => any) | null; /** @deprecated */ onorientationchange: ((this: Window, ev: Event) => any) | null; @@ -16180,6 +16413,7 @@ interface WindowLocalStorage { } interface WindowOrWorkerGlobalScope { + /** Available only in secure contexts. */ readonly caches: CacheStorage; readonly crossOriginIsolated: boolean; readonly crypto: Crypto; @@ -16189,12 +16423,13 @@ interface WindowOrWorkerGlobalScope { readonly performance: Performance; atob(data: string): string; btoa(data: string): string; - clearInterval(handle?: number): void; - clearTimeout(handle?: number): void; + clearInterval(id?: number): void; + clearTimeout(id?: number): void; createImageBitmap(image: ImageBitmapSource, options?: ImageBitmapOptions): Promise; createImageBitmap(image: ImageBitmapSource, sx: number, sy: number, sw: number, sh: number, options?: ImageBitmapOptions): Promise; fetch(input: RequestInfo, init?: RequestInit): Promise; queueMicrotask(callback: VoidFunction): void; + reportError(e: any): void; setInterval(handler: TimerHandler, timeout?: number, ...arguments: any[]): number; setTimeout(handler: TimerHandler, timeout?: number, ...arguments: any[]): number; } @@ -16228,6 +16463,7 @@ declare var Worker: { new(scriptURL: string | URL, options?: WorkerOptions): Worker; }; +/** Available only in secure contexts. */ interface Worklet { /** * Loads and executes the module script given by moduleURL into all of worklet's global scopes. It can also create additional global scopes as part of this process, depending on the worklet type. The returned promise will fulfill once the script has been successfully loaded and run in all global scopes. @@ -16573,7 +16809,8 @@ declare namespace WebAssembly { var CompileError: { prototype: CompileError; - new(): CompileError; + new(message?: string): CompileError; + (message?: string): CompileError; }; interface Global { @@ -16600,7 +16837,8 @@ declare namespace WebAssembly { var LinkError: { prototype: LinkError; - new(): LinkError; + new(message?: string): LinkError; + (message?: string): LinkError; }; interface Memory { @@ -16629,7 +16867,8 @@ declare namespace WebAssembly { var RuntimeError: { prototype: RuntimeError; - new(): RuntimeError; + new(message?: string): RuntimeError; + (message?: string): RuntimeError; }; interface Table { @@ -16679,7 +16918,7 @@ declare namespace WebAssembly { type ImportExportKind = "function" | "global" | "memory" | "table"; type TableKind = "anyfunc" | "externref"; - type ValueType = "anyfunc" | "externref" | "f32" | "f64" | "i32" | "i64"; + type ValueType = "anyfunc" | "externref" | "f32" | "f64" | "i32" | "i64" | "v128"; type ExportValue = Function | Global | Memory | Table; type Exports = Record; type ImportValue = ExportValue | number; @@ -16741,6 +16980,10 @@ interface IntersectionObserverCallback { (entries: IntersectionObserverEntry[], observer: IntersectionObserver): void; } +interface LockGrantedCallback { + (lock: Lock | null): any; +} + interface MediaSessionActionHandler { (details: MediaSessionActionDetails): void; } @@ -16774,7 +17017,7 @@ interface PositionErrorCallback { } interface QueuingStrategySize { - (chunk?: T): number; + (chunk: T): number; } interface RTCPeerConnectionErrorCallback { @@ -17066,7 +17309,9 @@ declare var menubar: BarProp; /** @deprecated */ declare const name: void; declare var navigator: Navigator; +/** Available only in secure contexts. */ declare var ondevicemotion: ((this: Window, ev: DeviceMotionEvent) => any) | null; +/** Available only in secure contexts. */ declare var ondeviceorientation: ((this: Window, ev: DeviceOrientationEvent) => any) | null; /** @deprecated */ declare var onorientationchange: ((this: Window, ev: Event) => any) | null; @@ -17367,6 +17612,7 @@ declare var onresize: ((this: Window, ev: UIEvent) => any) | null; * @param ev The event. */ declare var onscroll: ((this: Window, ev: Event) => any) | null; +declare var onsecuritypolicyviolation: ((this: Window, ev: SecurityPolicyViolationEvent) => any) | null; /** * Occurs when the seek operation ends. * @param ev The event. @@ -17384,6 +17630,7 @@ declare var onseeking: ((this: Window, ev: Event) => any) | null; declare var onselect: ((this: Window, ev: Event) => any) | null; declare var onselectionchange: ((this: Window, ev: Event) => any) | null; declare var onselectstart: ((this: Window, ev: Event) => any) | null; +declare var onslotchange: ((this: Window, ev: Event) => any) | null; /** * Occurs when the download has stopped. * @param ev The event. @@ -17447,6 +17694,7 @@ declare var onstorage: ((this: Window, ev: StorageEvent) => any) | null; declare var onunhandledrejection: ((this: Window, ev: PromiseRejectionEvent) => any) | null; declare var onunload: ((this: Window, ev: Event) => any) | null; declare var localStorage: Storage; +/** Available only in secure contexts. */ declare var caches: CacheStorage; declare var crossOriginIsolated: boolean; declare var crypto: Crypto; @@ -17456,12 +17704,13 @@ declare var origin: string; declare var performance: Performance; declare function atob(data: string): string; declare function btoa(data: string): string; -declare function clearInterval(handle?: number): void; -declare function clearTimeout(handle?: number): void; +declare function clearInterval(id?: number): void; +declare function clearTimeout(id?: number): void; declare function createImageBitmap(image: ImageBitmapSource, options?: ImageBitmapOptions): Promise; declare function createImageBitmap(image: ImageBitmapSource, sx: number, sy: number, sw: number, sh: number, options?: ImageBitmapOptions): Promise; declare function fetch(input: RequestInfo, init?: RequestInit): Promise; declare function queueMicrotask(callback: VoidFunction): void; +declare function reportError(e: any): void; declare function setInterval(handler: TimerHandler, timeout?: number, ...arguments: any[]): number; declare function setTimeout(handler: TimerHandler, timeout?: number, ...arguments: any[]): number; declare var sessionStorage: Storage; @@ -17486,7 +17735,7 @@ type ConstrainDOMString = string | string[] | ConstrainDOMStringParameters; type ConstrainDouble = number | ConstrainDoubleRange; type ConstrainULong = number | ConstrainULongRange; type DOMHighResTimeStamp = number; -type DOMTimeStamp = number; +type EpochTimeStamp = number; type EventListenerOrEventListenerObject = EventListener | EventListenerObject; type Float32List = Float32Array | GLfloat[]; type FormDataEntryValue = File | string; @@ -17570,17 +17819,21 @@ type DirectionSetting = "" | "lr" | "rl"; type DisplayCaptureSurfaceType = "application" | "browser" | "monitor" | "window"; type DistanceModelType = "exponential" | "inverse" | "linear"; type DocumentReadyState = "complete" | "interactive" | "loading"; +type DocumentVisibilityState = "hidden" | "visible"; type EndOfStreamError = "decode" | "network"; type EndingType = "native" | "transparent"; +type FileSystemHandleKind = "directory" | "file"; type FillMode = "auto" | "backwards" | "both" | "forwards" | "none"; type FontFaceLoadStatus = "error" | "loaded" | "loading" | "unloaded"; type FontFaceSetLoadStatus = "loaded" | "loading"; type FullscreenNavigationUI = "auto" | "hide" | "show"; type GamepadHapticActuatorType = "vibration"; type GamepadMappingType = "" | "standard" | "xr-standard"; +type GlobalCompositeOperation = "color" | "color-burn" | "color-dodge" | "copy" | "darken" | "destination-atop" | "destination-in" | "destination-out" | "destination-over" | "difference" | "exclusion" | "hard-light" | "hue" | "lighten" | "lighter" | "luminosity" | "multiply" | "overlay" | "saturation" | "screen" | "soft-light" | "source-atop" | "source-in" | "source-out" | "source-over" | "xor"; type HdrMetadataType = "smpteSt2086" | "smpteSt2094-10" | "smpteSt2094-40"; type IDBCursorDirection = "next" | "nextunique" | "prev" | "prevunique"; type IDBRequestReadyState = "done" | "pending"; +type IDBTransactionDurability = "default" | "relaxed" | "strict"; type IDBTransactionMode = "readonly" | "readwrite" | "versionchange"; type ImageOrientation = "flipY" | "none"; type ImageSmoothingQuality = "high" | "low" | "medium"; @@ -17589,6 +17842,7 @@ type KeyFormat = "jwk" | "pkcs8" | "raw" | "spki"; type KeyType = "private" | "public" | "secret"; type KeyUsage = "decrypt" | "deriveBits" | "deriveKey" | "encrypt" | "sign" | "unwrapKey" | "verify" | "wrapKey"; type LineAlignSetting = "center" | "end" | "start"; +type LockMode = "exclusive" | "shared"; type MediaDecodingType = "file" | "media-source" | "webrtc"; type MediaDeviceKind = "audioinput" | "audiooutput" | "videoinput"; type MediaEncodingType = "record" | "webrtc"; @@ -17609,7 +17863,7 @@ type OscillatorType = "custom" | "sawtooth" | "sine" | "square" | "triangle"; type OverSampleType = "2x" | "4x" | "none"; type PanningModelType = "HRTF" | "equalpower"; type PaymentComplete = "fail" | "success" | "unknown"; -type PermissionName = "geolocation" | "notifications" | "persistent-storage" | "push" | "screen-wake-lock"; +type PermissionName = "geolocation" | "notifications" | "persistent-storage" | "push" | "screen-wake-lock" | "xr-spatial-tracking"; type PermissionState = "denied" | "granted" | "prompt"; type PlaybackDirection = "alternate" | "alternate-reverse" | "normal" | "reverse"; type PositionAlignSetting = "auto" | "center" | "line-left" | "line-right"; @@ -17618,7 +17872,6 @@ type PremultiplyAlpha = "default" | "none" | "premultiply"; type PresentationStyle = "attachment" | "inline" | "unspecified"; type PublicKeyCredentialType = "public-key"; type PushEncryptionKeyName = "auth" | "p256dh"; -type PushPermissionState = "denied" | "granted" | "prompt"; type RTCBundlePolicy = "balanced" | "max-bundle" | "max-compat"; type RTCDataChannelState = "closed" | "closing" | "connecting" | "open"; type RTCDegradationPreference = "balanced" | "maintain-framerate" | "maintain-resolution"; @@ -17671,7 +17924,6 @@ type TouchType = "direct" | "stylus"; type TransferFunction = "hlg" | "pq" | "srgb"; type UserVerificationRequirement = "discouraged" | "preferred" | "required"; type VideoFacingModeEnum = "environment" | "left" | "right" | "user"; -type VisibilityState = "hidden" | "visible"; type WebGLPowerPreference = "default" | "high-performance" | "low-power"; type WorkerType = "classic" | "module"; type XMLHttpRequestResponseType = "" | "arraybuffer" | "blob" | "document" | "json" | "text"; diff --git a/src/lib/dom.iterable.generated.d.ts b/src/lib/dom.iterable.generated.d.ts index b261d86b16c5c..e85e6231da310 100644 --- a/src/lib/dom.iterable.generated.d.ts +++ b/src/lib/dom.iterable.generated.d.ts @@ -135,6 +135,7 @@ interface NamedNodeMap { } interface Navigator { + /** Available only in secure contexts. */ requestMediaKeySystemAccess(keySystem: string, supportedConfigurations: Iterable): Promise; vibrate(pattern: Iterable): boolean; } @@ -167,14 +168,11 @@ interface PluginArray { [Symbol.iterator](): IterableIterator; } -interface RTCStatsReport extends ReadonlyMap { +interface RTCRtpTransceiver { + setCodecPreferences(codecs: Iterable): void; } -interface ReadableStream { - [Symbol.iterator](): IterableIterator; - entries(): IterableIterator<[number, any]>; - keys(): IterableIterator; - values(): IterableIterator; +interface RTCStatsReport extends ReadonlyMap { } interface SVGLengthList { @@ -249,6 +247,13 @@ interface WEBGL_draw_buffers { drawBuffersWEBGL(buffers: Iterable): void; } +interface WEBGL_multi_draw { + multiDrawArraysInstancedWEBGL(mode: GLenum, firstsList: Int32Array | Iterable, firstsOffset: GLuint, countsList: Int32Array | Iterable, countsOffset: GLuint, instanceCountsList: Int32Array | Iterable, instanceCountsOffset: GLuint, drawcount: GLsizei): void; + multiDrawArraysWEBGL(mode: GLenum, firstsList: Int32Array | Iterable, firstsOffset: GLuint, countsList: Int32Array | Iterable, countsOffset: GLuint, drawcount: GLsizei): void; + multiDrawElementsInstancedWEBGL(mode: GLenum, countsList: Int32Array | Iterable, countsOffset: GLuint, type: GLenum, offsetsList: Int32Array | Iterable, offsetsOffset: GLuint, instanceCountsList: Int32Array | Iterable, instanceCountsOffset: GLuint, drawcount: GLsizei): void; + multiDrawElementsWEBGL(mode: GLenum, countsList: Int32Array | Iterable, countsOffset: GLuint, type: GLenum, offsetsList: Int32Array | Iterable, offsetsOffset: GLuint, drawcount: GLsizei): void; +} + interface WebGL2RenderingContextBase { clearBufferfv(buffer: GLenum, drawbuffer: GLint, values: Iterable, srcOffset?: GLuint): void; clearBufferiv(buffer: GLenum, drawbuffer: GLint, values: Iterable, srcOffset?: GLuint): void; diff --git a/src/lib/es2015.core.d.ts b/src/lib/es2015.core.d.ts index 8026b39455a17..b42880c8ece82 100644 --- a/src/lib/es2015.core.d.ts +++ b/src/lib/es2015.core.d.ts @@ -263,7 +263,7 @@ interface ObjectConstructor { * @param target The target object to copy to. * @param source The source object from which to copy properties. */ - assign(target: T, source: U): T & U; + assign(target: T, source: U): T & U; /** * Copy the values of all of the enumerable own properties from one or more source objects to a @@ -272,7 +272,7 @@ interface ObjectConstructor { * @param source1 The first source object from which to copy properties. * @param source2 The second source object from which to copy properties. */ - assign(target: T, source1: U, source2: V): T & U & V; + assign(target: T, source1: U, source2: V): T & U & V; /** * Copy the values of all of the enumerable own properties from one or more source objects to a @@ -282,7 +282,7 @@ interface ObjectConstructor { * @param source2 The second source object from which to copy properties. * @param source3 The third source object from which to copy properties. */ - assign(target: T, source1: U, source2: V, source3: W): T & U & V & W; + assign(target: T, source1: U, source2: V, source3: W): T & U & V & W; /** * Copy the values of all of the enumerable own properties from one or more source objects to a diff --git a/src/lib/es2015.iterable.d.ts b/src/lib/es2015.iterable.d.ts index 20b6920e0d66e..f1fb454f980b1 100644 --- a/src/lib/es2015.iterable.d.ts +++ b/src/lib/es2015.iterable.d.ts @@ -137,7 +137,8 @@ interface ReadonlyMap { } interface MapConstructor { - new (iterable: Iterable): Map; + new(): Map; + new (iterable?: Iterable | null): Map; } interface WeakMap { } diff --git a/src/lib/es2015.reflect.d.ts b/src/lib/es2015.reflect.d.ts index 51a8e3ba908df..ed968dc0b1740 100644 --- a/src/lib/es2015.reflect.d.ts +++ b/src/lib/es2015.reflect.d.ts @@ -24,7 +24,7 @@ declare namespace Reflect { * @param propertyKey The property name. * @param attributes Descriptor for the property. It can be for a data property or an accessor property. */ - function defineProperty(target: object, propertyKey: PropertyKey, attributes: PropertyDescriptor): boolean; + function defineProperty(target: object, propertyKey: PropertyKey, attributes: PropertyDescriptor & ThisType): boolean; /** * Removes a property from an object, equivalent to `delete target[propertyKey]`, diff --git a/src/lib/es2020.bigint.d.ts b/src/lib/es2020.bigint.d.ts index 659fa1a428775..50a10c7b33e89 100644 --- a/src/lib/es2020.bigint.d.ts +++ b/src/lib/es2020.bigint.d.ts @@ -1,3 +1,5 @@ +/// + interface BigIntToLocaleStringOptions { /** * The locale matching algorithm to use.The default is "best fit". For information about this option, see the {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#Locale_negotiation Intl page}. @@ -92,7 +94,7 @@ interface BigInt { toString(radix?: number): string; /** Returns a string representation appropriate to the host environment's current locale. */ - toLocaleString(locales?: string, options?: BigIntToLocaleStringOptions): string; + toLocaleString(locales?: Intl.LocalesArgument, options?: BigIntToLocaleStringOptions): string; /** Returns the primitive value of the specified object. */ valueOf(): bigint; diff --git a/src/lib/es2020.d.ts b/src/lib/es2020.d.ts index f420cd61b1d47..8d1fa3bf77d54 100644 --- a/src/lib/es2020.d.ts +++ b/src/lib/es2020.d.ts @@ -1,5 +1,7 @@ /// /// +/// +/// /// /// /// diff --git a/src/lib/es2020.date.d.ts b/src/lib/es2020.date.d.ts new file mode 100644 index 0000000000000..07af7065f7391 --- /dev/null +++ b/src/lib/es2020.date.d.ts @@ -0,0 +1,24 @@ +/// + +interface Date { + /** + * Converts a date and time to a string by using the current or specified locale. + * @param locales A locale string, array of locale strings, Intl.Locale object, or array of Intl.Locale objects that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used. + * @param options An object that contains one or more properties that specify comparison options. + */ + toLocaleString(locales?: Intl.LocalesArgument, options?: Intl.DateTimeFormatOptions): string; + + /** + * Converts a date to a string by using the current or specified locale. + * @param locales A locale string, array of locale strings, Intl.Locale object, or array of Intl.Locale objects that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used. + * @param options An object that contains one or more properties that specify comparison options. + */ + toLocaleDateString(locales?: Intl.LocalesArgument, options?: Intl.DateTimeFormatOptions): string; + + /** + * Converts a time to a string by using the current or specified locale. + * @param locales A locale string, array of locale strings, Intl.Locale object, or array of Intl.Locale objects that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used. + * @param options An object that contains one or more properties that specify comparison options. + */ + toLocaleTimeString(locales?: Intl.LocalesArgument, options?: Intl.DateTimeFormatOptions): string; +} \ No newline at end of file diff --git a/src/lib/es2020.intl.d.ts b/src/lib/es2020.intl.d.ts index f351ee3c0cee6..c7d4d725368ea 100644 --- a/src/lib/es2020.intl.d.ts +++ b/src/lib/es2020.intl.d.ts @@ -58,6 +58,13 @@ declare namespace Intl { */ type BCP47LanguageTag = string; + /** + * The locale(s) to use + * + * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#locales_argument). + */ + type LocalesArgument = UnicodeBCP47LocaleIdentifier | UnicodeBCP47LocaleIdentifier[] | Locale | Locale[] | undefined; + /** * An object with some or all of properties of `options` parameter * of `Intl.RelativeTimeFormat` constructor. @@ -200,17 +207,21 @@ declare namespace Intl { interface NumberFormatOptions { compactDisplay?: "short" | "long" | undefined; notation?: "standard" | "scientific" | "engineering" | "compact" | undefined; - signDisplay?: "auto" | "never" | "always" | undefined; + signDisplay?: "auto" | "never" | "always" | "exceptZero" | undefined; unit?: string | undefined; unitDisplay?: "short" | "long" | "narrow" | undefined; + currencyDisplay?: string | undefined; + currencySign?: string | undefined; } interface ResolvedNumberFormatOptions { compactDisplay?: "short" | "long"; notation?: "standard" | "scientific" | "engineering" | "compact"; - signDisplay?: "auto" | "never" | "always"; + signDisplay?: "auto" | "never" | "always" | "exceptZero"; unit?: string; unitDisplay?: "short" | "long" | "narrow"; + currencyDisplay?: string; + currencySign?: string; } interface DateTimeFormatOptions { @@ -250,6 +261,10 @@ declare namespace Intl { } interface Locale extends LocaleOptions { + /** A string containing the language, and the script and region if available. */ + baseName: string; + /** The primary language subtag associated with the locale. */ + language: string; /** Gets the most likely values for the language, script, and region of the locale based on existing values. */ maximize(): Locale; /** Attempts to remove information about the locale that would be added by calling `Locale.maximize()`. */ @@ -273,14 +288,37 @@ declare namespace Intl { * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale). */ const Locale: { - new (tag?: BCP47LanguageTag, options?: LocaleOptions): Locale; + new (tag: BCP47LanguageTag | Locale, options?: LocaleOptions): Locale; }; - interface DisplayNamesOptions { + type DisplayNamesFallback = + | "code" + | "none"; + + type ResolvedDisplayNamesType = + | "language" + | "region" + | "script" + | "currency"; + + type DisplayNamesType = + | ResolvedDisplayNamesType + | "calendar" + | "datetimeField"; + + interface DisplayNamesOptions { localeMatcher: RelativeTimeFormatLocaleMatcher; style: RelativeTimeFormatStyle; - type: "language" | "region" | "script" | "currency"; - fallback: "code" | "none"; + type: DisplayNamesType; + languageDisplay: "dialect" | "standard"; + fallback: DisplayNamesFallback; + } + + interface ResolvedDisplayNamesOptions { + locale: UnicodeBCP47LocaleIdentifier; + style: RelativeTimeFormatStyle; + type: ResolvedDisplayNamesType; + fallback: DisplayNamesFallback; } interface DisplayNames { @@ -299,14 +337,14 @@ declare namespace Intl { * * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames/of). */ - of(code: string): string; + of(code: string): string | undefined; /** * Returns a new object with properties reflecting the locale and style formatting options computed during the construction of the current * [`Intl/DisplayNames`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames) object. * * [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames/resolvedOptions). */ - resolvedOptions(): DisplayNamesOptions; + resolvedOptions(): ResolvedDisplayNamesOptions; } /** diff --git a/src/lib/es2020.number.d.ts b/src/lib/es2020.number.d.ts new file mode 100644 index 0000000000000..ba61f3dfd0f5a --- /dev/null +++ b/src/lib/es2020.number.d.ts @@ -0,0 +1,10 @@ +/// + +interface Number { + /** + * Converts a number to a string by using the current or specified locale. + * @param locales A locale string, array of locale strings, Intl.Locale object, or array of Intl.Locale objects that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used. + * @param options An object that contains one or more properties that specify comparison options. + */ + toLocaleString(locales?: Intl.LocalesArgument, options?: Intl.NumberFormatOptions): string; +} diff --git a/src/lib/es2021.intl.d.ts b/src/lib/es2021.intl.d.ts index 2adfe49056882..0476912be325f 100644 --- a/src/lib/es2021.intl.d.ts +++ b/src/lib/es2021.intl.d.ts @@ -8,6 +8,11 @@ declare namespace Intl { fractionalSecondDigits?: 0 | 1 | 2 | 3 | undefined; } + interface DateTimeFormat { + formatRange(startDate: Date | number | bigint, endDate: Date | number | bigint): string; + formatRangeToParts(startDate: Date | number | bigint, endDate: Date | number | bigint): DateTimeFormatPart[]; + } + interface ResolvedDateTimeFormatOptions { formatMatcher?: "basic" | "best fit" | "best fit"; dateStyle?: "full" | "long" | "medium" | "short"; @@ -16,9 +21,4 @@ declare namespace Intl { dayPeriod?: "narrow" | "short" | "long"; fractionalSecondDigits?: 0 | 1 | 2 | 3; } - - interface NumberFormat { - formatRange(startDate: number | bigint, endDate: number | bigint): string; - formatRangeToParts(startDate: number | bigint, endDate: number | bigint): NumberFormatPart[]; - } -} \ No newline at end of file +} diff --git a/src/lib/es2022.array.d.ts b/src/lib/es2022.array.d.ts new file mode 100644 index 0000000000000..68a797f8275d3 --- /dev/null +++ b/src/lib/es2022.array.d.ts @@ -0,0 +1,103 @@ +interface Array { + /** + * Returns the item located at the specified index. + * @param index The zero-based index of the desired code unit. A negative index will count back from the last item. + */ + at(index: number): T | undefined; +} + +interface ReadonlyArray { + /** + * Returns the item located at the specified index. + * @param index The zero-based index of the desired code unit. A negative index will count back from the last item. + */ + at(index: number): T | undefined; +} + +interface Int8Array { + /** + * Returns the item located at the specified index. + * @param index The zero-based index of the desired code unit. A negative index will count back from the last item. + */ + at(index: number): number | undefined; +} + +interface Uint8Array { + /** + * Returns the item located at the specified index. + * @param index The zero-based index of the desired code unit. A negative index will count back from the last item. + */ + at(index: number): number | undefined; +} + +interface Uint8ClampedArray { + /** + * Returns the item located at the specified index. + * @param index The zero-based index of the desired code unit. A negative index will count back from the last item. + */ + at(index: number): number | undefined; +} + +interface Int16Array { + /** + * Returns the item located at the specified index. + * @param index The zero-based index of the desired code unit. A negative index will count back from the last item. + */ + at(index: number): number | undefined; +} + +interface Uint16Array { + /** + * Returns the item located at the specified index. + * @param index The zero-based index of the desired code unit. A negative index will count back from the last item. + */ + at(index: number): number | undefined; +} + +interface Int32Array { + /** + * Returns the item located at the specified index. + * @param index The zero-based index of the desired code unit. A negative index will count back from the last item. + */ + at(index: number): number | undefined; +} + +interface Uint32Array { + /** + * Returns the item located at the specified index. + * @param index The zero-based index of the desired code unit. A negative index will count back from the last item. + */ + at(index: number): number | undefined; +} + +interface Float32Array { + /** + * Returns the item located at the specified index. + * @param index The zero-based index of the desired code unit. A negative index will count back from the last item. + */ + at(index: number): number | undefined; +} + +interface Float64Array { + /** + * Returns the item located at the specified index. + * @param index The zero-based index of the desired code unit. A negative index will count back from the last item. + */ + at(index: number): number | undefined; +} + +interface BigInt64Array { + /** + * Returns the item located at the specified index. + * @param index The zero-based index of the desired code unit. A negative index will count back from the last item. + */ + at(index: number): bigint | undefined; +} + +interface BigUint64Array { + /** + * Returns the item located at the specified index. + * @param index The zero-based index of the desired code unit. A negative index will count back from the last item. + */ + at(index: number): bigint | undefined; +} diff --git a/src/lib/es2022.d.ts b/src/lib/es2022.d.ts new file mode 100644 index 0000000000000..67a9199b5d6f4 --- /dev/null +++ b/src/lib/es2022.d.ts @@ -0,0 +1,5 @@ +/// +/// +/// +/// +/// diff --git a/src/lib/es2022.error.d.ts b/src/lib/es2022.error.d.ts new file mode 100644 index 0000000000000..2ba83dcf5de1b --- /dev/null +++ b/src/lib/es2022.error.d.ts @@ -0,0 +1,55 @@ +interface ErrorOptions { + cause?: Error; +} + +interface Error { + cause?: Error; +} + +interface ErrorConstructor { + new (message?: string, options?: ErrorOptions): Error; + (message?: string, options?: ErrorOptions): Error; +} + +interface EvalErrorConstructor { + new (message?: string, options?: ErrorOptions): EvalError; + (message?: string, options?: ErrorOptions): EvalError; +} + +interface RangeErrorConstructor { + new (message?: string, options?: ErrorOptions): RangeError; + (message?: string, options?: ErrorOptions): RangeError; +} + +interface ReferenceErrorConstructor { + new (message?: string, options?: ErrorOptions): ReferenceError; + (message?: string, options?: ErrorOptions): ReferenceError; +} + +interface SyntaxErrorConstructor { + new (message?: string, options?: ErrorOptions): SyntaxError; + (message?: string, options?: ErrorOptions): SyntaxError; +} + +interface TypeErrorConstructor { + new (message?: string, options?: ErrorOptions): TypeError; + (message?: string, options?: ErrorOptions): TypeError; +} + +interface URIErrorConstructor { + new (message?: string, options?: ErrorOptions): URIError; + (message?: string, options?: ErrorOptions): URIError; +} + +interface AggregateErrorConstructor { + new ( + errors: Iterable, + message?: string, + options?: ErrorOptions + ): AggregateError; + ( + errors: Iterable, + message?: string, + options?: ErrorOptions + ): AggregateError; +} diff --git a/src/lib/es2022.full.d.ts b/src/lib/es2022.full.d.ts new file mode 100644 index 0000000000000..f7a8fdc84c167 --- /dev/null +++ b/src/lib/es2022.full.d.ts @@ -0,0 +1,5 @@ +/// +/// +/// +/// +/// diff --git a/src/lib/es2022.object.d.ts b/src/lib/es2022.object.d.ts new file mode 100644 index 0000000000000..7325ef3c343e2 --- /dev/null +++ b/src/lib/es2022.object.d.ts @@ -0,0 +1,8 @@ +interface ObjectConstructor { + /** + * Determines whether an object has a property with the specified name. + * @param o An object. + * @param v A property name. + */ + hasOwn(o: object, v: PropertyKey): boolean; +} diff --git a/src/lib/es2022.string.d.ts b/src/lib/es2022.string.d.ts new file mode 100644 index 0000000000000..23f4a0123f269 --- /dev/null +++ b/src/lib/es2022.string.d.ts @@ -0,0 +1,7 @@ +interface String { + /** + * Returns a new String consisting of the single UTF-16 code unit located at the specified index. + * @param index The zero-based index of the desired code unit. A negative index will count back from the last item. + */ + at(index: number): string | undefined; +} diff --git a/src/lib/es5.d.ts b/src/lib/es5.d.ts index b10358a0f7e9d..94a033a0c1411 100644 --- a/src/lib/es5.d.ts +++ b/src/lib/es5.d.ts @@ -96,7 +96,7 @@ interface PropertyDescriptor { } interface PropertyDescriptorMap { - [s: string]: PropertyDescriptor; + [key: PropertyKey]: PropertyDescriptor; } interface Object { @@ -206,6 +206,12 @@ interface ObjectConstructor { */ freeze(f: T): T; + /** + * Prevents the modification of existing property attributes and values, and prevents the addition of new properties. + * @param o Object on which to lock the attributes. + */ + freeze(o: T): Readonly; + /** * Prevents the modification of existing property attributes and values, and prevents the addition of new properties. * @param o Object on which to lock the attributes. @@ -300,7 +306,7 @@ declare var Function: FunctionConstructor; /** * Extracts the type of the 'this' parameter of a function type, or 'unknown' if the function type has no 'this' parameter. */ -type ThisParameterType = T extends (this: infer U, ...args: any[]) => any ? U : unknown; +type ThisParameterType = T extends (this: infer U, ...args: never) => any ? U : unknown; /** * Removes the 'this' parameter from a function type. @@ -1495,7 +1501,7 @@ interface Promise { type Awaited = T extends null | undefined ? T : // special case for `null | undefined` when not in `--strictNullChecks` mode T extends object & { then(onfulfilled: infer F): any } ? // `await` only unwraps object types with a callable `then`. Non-object types are not unwrapped - F extends ((value: infer V) => any) ? // if the argument to `then` is callable, extracts the argument + F extends ((value: infer V, ...args: any) => any) ? // if the argument to `then` is callable, extracts the first argument Awaited : // recursively unwrap the value never : // the argument to `then` was not callable T; // non-object or non-thenable @@ -4355,7 +4361,6 @@ declare namespace Intl { localeMatcher?: string | undefined; style?: string | undefined; currency?: string | undefined; - currencyDisplay?: string | undefined; currencySign?: string | undefined; useGrouping?: boolean | undefined; minimumIntegerDigits?: number | undefined; @@ -4370,7 +4375,6 @@ declare namespace Intl { numberingSystem: string; style: string; currency?: string; - currencyDisplay?: string; minimumIntegerDigits: number; minimumFractionDigits: number; maximumFractionDigits: number; @@ -4387,6 +4391,7 @@ declare namespace Intl { new(locales?: string | string[], options?: NumberFormatOptions): NumberFormat; (locales?: string | string[], options?: NumberFormatOptions): NumberFormat; supportedLocalesOf(locales: string | string[], options?: NumberFormatOptions): string[]; + readonly prototype: NumberFormat; }; interface DateTimeFormatOptions { @@ -4430,6 +4435,7 @@ declare namespace Intl { new(locales?: string | string[], options?: DateTimeFormatOptions): DateTimeFormat; (locales?: string | string[], options?: DateTimeFormatOptions): DateTimeFormat; supportedLocalesOf(locales: string | string[], options?: DateTimeFormatOptions): string[]; + readonly prototype: DateTimeFormat; }; } diff --git a/src/lib/esnext.d.ts b/src/lib/esnext.d.ts index 4a3ac819c1900..6735ced8f7367 100644 --- a/src/lib/esnext.d.ts +++ b/src/lib/esnext.d.ts @@ -1,2 +1,2 @@ -/// +/// /// diff --git a/src/lib/esnext.intl.d.ts b/src/lib/esnext.intl.d.ts index 99cf65b4dcb47..a8baa0e4cc68d 100644 --- a/src/lib/esnext.intl.d.ts +++ b/src/lib/esnext.intl.d.ts @@ -1,3 +1,6 @@ declare namespace Intl { - // Empty for now + interface NumberFormat { + formatRange(start: number | bigint, end: number | bigint): string; + formatRangeToParts(start: number | bigint, end: number | bigint): NumberFormatPart[]; + } } diff --git a/src/lib/libs.json b/src/lib/libs.json index 4131d45171b23..0dbe57f36fa8d 100644 --- a/src/lib/libs.json +++ b/src/lib/libs.json @@ -9,6 +9,7 @@ "es2019", "es2020", "es2021", + "es2022", "esnext", // Host only "dom.generated", @@ -43,15 +44,21 @@ "es2019.string", "es2019.symbol", "es2020.bigint", + "es2020.date", "es2020.promise", "es2020.sharedmemory", "es2020.string", "es2020.symbol.wellknown", "es2020.intl", + "es2020.number", "es2021.string", "es2021.promise", "es2021.weakref", "es2021.intl", + "es2022.array", + "es2022.error", + "es2022.object", + "es2022.string", "esnext.intl", // Default libraries "es5.full", @@ -62,6 +69,7 @@ "es2019.full", "es2020.full", "es2021.full", + "es2022.full", "esnext.full" ], "paths": { diff --git a/src/lib/webworker.generated.d.ts b/src/lib/webworker.generated.d.ts index 437c2ac41da67..98e4e9292513e 100644 --- a/src/lib/webworker.generated.d.ts +++ b/src/lib/webworker.generated.d.ts @@ -70,8 +70,8 @@ interface CloseEventInit extends EventInit { } interface CryptoKeyPair { - privateKey?: CryptoKey; - publicKey?: CryptoKey; + privateKey: CryptoKey; + publicKey: CryptoKey; } interface CustomEventInit extends EventInit { @@ -190,6 +190,18 @@ interface FilePropertyBag extends BlobPropertyBag { lastModified?: number; } +interface FileSystemGetDirectoryOptions { + create?: boolean; +} + +interface FileSystemGetFileOptions { + create?: boolean; +} + +interface FileSystemRemoveOptions { + recursive?: boolean; +} + interface FontFaceDescriptors { display?: string; featureSettings?: string; @@ -290,6 +302,24 @@ interface KeyAlgorithm { name: string; } +interface LockInfo { + clientId?: string; + mode?: LockMode; + name?: string; +} + +interface LockManagerSnapshot { + held?: LockInfo[]; + pending?: LockInfo[]; +} + +interface LockOptions { + ifAvailable?: boolean; + mode?: LockMode; + signal?: AbortSignal; + steal?: boolean; +} + interface MediaCapabilitiesDecodingInfo extends MediaCapabilitiesInfo { configuration?: MediaDecodingConfiguration; } @@ -353,7 +383,7 @@ interface NotificationOptions { requireInteraction?: boolean; silent?: boolean; tag?: string; - timestamp?: DOMTimeStamp; + timestamp?: EpochTimeStamp; vibrate?: VibratePattern; } @@ -402,7 +432,7 @@ interface PushEventInit extends ExtendableEventInit { interface PushSubscriptionJSON { endpoint?: string; - expirationTime?: DOMTimeStamp | null; + expirationTime?: EpochTimeStamp | null; keys?: Record; } @@ -477,7 +507,7 @@ interface RequestInit { /** An AbortSignal to set request's signal. */ signal?: AbortSignal | null; /** Can only be null. Used to disassociate request from any Window. */ - window?: any; + window?: null; } interface ResponseInit { @@ -558,7 +588,7 @@ interface StreamPipeOptions { } interface StructuredSerializeOptions { - transfer?: any[]; + transfer?: Transferable[]; } interface TextDecodeOptions { @@ -645,7 +675,7 @@ interface AbortController { /** Returns the AbortSignal object associated with this object. */ readonly signal: AbortSignal; /** Invoking this method will set this object's AbortSignal's aborted flag and signal to any observers that the associated activity is to be aborted. */ - abort(): void; + abort(reason?: any): void; } declare var AbortController: { @@ -671,7 +701,7 @@ interface AbortSignal extends EventTarget { declare var AbortSignal: { prototype: AbortSignal; new(): AbortSignal; - // abort(): AbortSignal; + // abort(): AbortSignal; - To be re-added in the future }; interface AbstractWorkerEventMap { @@ -752,7 +782,10 @@ declare var ByteLengthQueuingStrategy: { new(init: QueuingStrategyInit): ByteLengthQueuingStrategy; }; -/** Provides a storage mechanism for Request / Response object pairs that are cached, for example as part of the ServiceWorker life cycle. Note that the Cache interface is exposed to windowed scopes as well as workers. You don't have to use it in conjunction with service workers, even though it is defined in the service worker spec. */ +/** + * Provides a storage mechanism for Request / Response object pairs that are cached, for example as part of the ServiceWorker life cycle. Note that the Cache interface is exposed to windowed scopes as well as workers. You don't have to use it in conjunction with service workers, even though it is defined in the service worker spec. + * Available only in secure contexts. + */ interface Cache { add(request: RequestInfo): Promise; addAll(requests: RequestInfo[]): Promise; @@ -768,7 +801,10 @@ declare var Cache: { new(): Cache; }; -/** The storage for Cache objects. */ +/** + * The storage for Cache objects. + * Available only in secure contexts. + */ interface CacheStorage { delete(cacheName: string): Promise; has(cacheName: string): Promise; @@ -876,8 +912,11 @@ declare var CountQueuingStrategy: { /** Basic cryptography features available in the current context. It allows access to a cryptographically strong random number generator and to cryptographic primitives. */ interface Crypto { + /** Available only in secure contexts. */ readonly subtle: SubtleCrypto; getRandomValues(array: T): T; + /** Available only in secure contexts. */ + randomUUID(): string; } declare var Crypto: { @@ -885,7 +924,10 @@ declare var Crypto: { new(): Crypto; }; -/** The CryptoKey dictionary of the Web Crypto API represents a cryptographic key. */ +/** + * The CryptoKey dictionary of the Web Crypto API represents a cryptographic key. + * Available only in secure contexts. + */ interface CryptoKey { readonly algorithm: KeyAlgorithm; readonly extractable: boolean; @@ -1328,8 +1370,10 @@ interface EventSource extends EventTarget { readonly CONNECTING: number; readonly OPEN: number; addEventListener(type: K, listener: (this: EventSource, ev: EventSourceEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: string, listener: (this: EventSource, event: MessageEvent) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; removeEventListener(type: K, listener: (this: EventSource, ev: EventSourceEventMap[K]) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: string, listener: (this: EventSource, event: MessageEvent) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; } @@ -1488,6 +1532,43 @@ declare var FileReaderSync: { new(): FileReaderSync; }; +/** Available only in secure contexts. */ +interface FileSystemDirectoryHandle extends FileSystemHandle { + readonly kind: "directory"; + getDirectoryHandle(name: string, options?: FileSystemGetDirectoryOptions): Promise; + getFileHandle(name: string, options?: FileSystemGetFileOptions): Promise; + removeEntry(name: string, options?: FileSystemRemoveOptions): Promise; + resolve(possibleDescendant: FileSystemHandle): Promise; +} + +declare var FileSystemDirectoryHandle: { + prototype: FileSystemDirectoryHandle; + new(): FileSystemDirectoryHandle; +}; + +/** Available only in secure contexts. */ +interface FileSystemFileHandle extends FileSystemHandle { + readonly kind: "file"; + getFile(): Promise; +} + +declare var FileSystemFileHandle: { + prototype: FileSystemFileHandle; + new(): FileSystemFileHandle; +}; + +/** Available only in secure contexts. */ +interface FileSystemHandle { + readonly kind: FileSystemHandleKind; + readonly name: string; + isSameEntry(other: FileSystemHandle): Promise; +} + +declare var FileSystemHandle: { + prototype: FileSystemHandle; + new(): FileSystemHandle; +}; + interface FontFace { ascentOverride: string; descentOverride: string; @@ -1951,6 +2032,7 @@ interface IDBTransactionEventMap { interface IDBTransaction extends EventTarget { /** Returns the transaction's connection. */ readonly db: IDBDatabase; + readonly durability: IDBTransactionDurability; /** If the transaction was aborted, returns the error (a DOMException) providing the reason. */ readonly error: DOMException | null; /** Returns the mode the transaction was created with ("readonly" or "readwrite"), or "versionchange" for an upgrade transaction. */ @@ -2031,6 +2113,29 @@ interface KHR_parallel_shader_compile { readonly COMPLETION_STATUS_KHR: GLenum; } +/** Available only in secure contexts. */ +interface Lock { + readonly mode: LockMode; + readonly name: string; +} + +declare var Lock: { + prototype: Lock; + new(): Lock; +}; + +/** Available only in secure contexts. */ +interface LockManager { + query(): Promise; + request(name: string, callback: LockGrantedCallback): Promise; + request(name: string, options: LockOptions, callback: LockGrantedCallback): Promise; +} + +declare var LockManager: { + prototype: LockManager; + new(): LockManager; +}; + interface MediaCapabilities { decodingInfo(configuration: MediaDecodingConfiguration): Promise; encodingInfo(configuration: MediaEncodingConfiguration): Promise; @@ -2137,6 +2242,7 @@ interface NavigatorOnLine { readonly onLine: boolean; } +/** Available only in secure contexts. */ interface NavigatorStorage { readonly storage: StorageManager; } @@ -2431,7 +2537,10 @@ declare var PromiseRejectionEvent: { new(type: string, eventInitDict: PromiseRejectionEventInit): PromiseRejectionEvent; }; -/** This Push API interface represents a push message that has been received. This event is sent to the global scope of a ServiceWorker. It contains the information sent from an application server to a PushSubscription. */ +/** + * This Push API interface represents a push message that has been received. This event is sent to the global scope of a ServiceWorker. It contains the information sent from an application server to a PushSubscription. + * Available only in secure contexts. + */ interface PushEvent extends ExtendableEvent { readonly data: PushMessageData | null; } @@ -2441,10 +2550,13 @@ declare var PushEvent: { new(type: string, eventInitDict?: PushEventInit): PushEvent; }; -/** This Push API interface provides a way to receive notifications from third-party servers as well as request URLs for push notifications. */ +/** + * This Push API interface provides a way to receive notifications from third-party servers as well as request URLs for push notifications. + * Available only in secure contexts. + */ interface PushManager { getSubscription(): Promise; - permissionState(options?: PushSubscriptionOptionsInit): Promise; + permissionState(options?: PushSubscriptionOptionsInit): Promise; subscribe(options?: PushSubscriptionOptionsInit): Promise; } @@ -2454,7 +2566,10 @@ declare var PushManager: { readonly supportedContentEncodings: ReadonlyArray; }; -/** This Push API interface provides methods which let you retrieve the push data sent by a server in various formats. */ +/** + * This Push API interface provides methods which let you retrieve the push data sent by a server in various formats. + * Available only in secure contexts. + */ interface PushMessageData { arrayBuffer(): ArrayBuffer; blob(): Blob; @@ -2467,7 +2582,10 @@ declare var PushMessageData: { new(): PushMessageData; }; -/** This Push API interface provides a subcription's URL endpoint and allows unsubscription from a push service. */ +/** + * This Push API interface provides a subcription's URL endpoint and allows unsubscription from a push service. + * Available only in secure contexts. + */ interface PushSubscription { readonly endpoint: string; readonly options: PushSubscriptionOptions; @@ -2481,6 +2599,7 @@ declare var PushSubscription: { new(): PushSubscription; }; +/** Available only in secure contexts. */ interface PushSubscriptionOptions { readonly applicationServerKey: ArrayBuffer | null; } @@ -2498,7 +2617,6 @@ interface ReadableStream { pipeThrough(transform: ReadableWritablePair, options?: StreamPipeOptions): ReadableStream; pipeTo(destination: WritableStream, options?: StreamPipeOptions): Promise; tee(): [ReadableStream, ReadableStream]; - forEach(callbackfn: (value: any, key: number, parent: ReadableStream) => void, thisArg?: any): void; } declare var ReadableStream: { @@ -2613,7 +2731,10 @@ interface ServiceWorkerEventMap extends AbstractWorkerEventMap { "statechange": Event; } -/** This ServiceWorker API interface provides a reference to a service worker. Multiple browsing contexts (e.g. pages, workers, etc.) can be associated with the same service worker, each through a unique ServiceWorker object. */ +/** + * This ServiceWorker API interface provides a reference to a service worker. Multiple browsing contexts (e.g. pages, workers, etc.) can be associated with the same service worker, each through a unique ServiceWorker object. + * Available only in secure contexts. + */ interface ServiceWorker extends EventTarget, AbstractWorker { onstatechange: ((this: ServiceWorker, ev: Event) => any) | null; readonly scriptURL: string; @@ -2637,7 +2758,10 @@ interface ServiceWorkerContainerEventMap { "messageerror": MessageEvent; } -/** The ServiceWorkerContainer interface of the ServiceWorker API provides an object representing the service worker as an overall unit in the network ecosystem, including facilities to register, unregister and update service workers, and access the state of service workers and their registrations. */ +/** + * The ServiceWorkerContainer interface of the ServiceWorker API provides an object representing the service worker as an overall unit in the network ecosystem, including facilities to register, unregister and update service workers, and access the state of service workers and their registrations. + * Available only in secure contexts. + */ interface ServiceWorkerContainer extends EventTarget { readonly controller: ServiceWorker | null; oncontrollerchange: ((this: ServiceWorkerContainer, ev: Event) => any) | null; @@ -2698,7 +2822,10 @@ interface ServiceWorkerRegistrationEventMap { "updatefound": Event; } -/** This ServiceWorker API interface represents the service worker registration. You register a service worker to control one or more pages that share the same origin. */ +/** + * This ServiceWorker API interface represents the service worker registration. You register a service worker to control one or more pages that share the same origin. + * Available only in secure contexts. + */ interface ServiceWorkerRegistration extends EventTarget { readonly active: ServiceWorker | null; readonly installing: ServiceWorker | null; @@ -2743,8 +2870,10 @@ declare var SharedWorkerGlobalScope: { new(): SharedWorkerGlobalScope; }; +/** Available only in secure contexts. */ interface StorageManager { estimate(): Promise; + getDirectory(): Promise; persisted(): Promise; } @@ -2753,7 +2882,10 @@ declare var StorageManager: { new(): StorageManager; }; -/** This Web Crypto API interface provides a number of low-level cryptographic functions. It is accessed via the Crypto.subtle properties available in a window context (via Window.crypto). */ +/** + * This Web Crypto API interface provides a number of low-level cryptographic functions. It is accessed via the Crypto.subtle properties available in a window context (via Window.crypto). + * Available only in secure contexts. + */ interface SubtleCrypto { decrypt(algorithm: AlgorithmIdentifier | RsaOaepParams | AesCtrParams | AesCbcParams | AesGcmParams, key: CryptoKey, data: BufferSource): Promise; deriveBits(algorithm: AlgorithmIdentifier | EcdhKeyDeriveParams | HkdfParams | Pbkdf2Params, baseKey: CryptoKey, length: number): Promise; @@ -3078,6 +3210,13 @@ interface WEBGL_lose_context { restoreContext(): void; } +interface WEBGL_multi_draw { + multiDrawArraysInstancedWEBGL(mode: GLenum, firstsList: Int32Array | GLint[], firstsOffset: GLuint, countsList: Int32Array | GLsizei[], countsOffset: GLuint, instanceCountsList: Int32Array | GLsizei[], instanceCountsOffset: GLuint, drawcount: GLsizei): void; + multiDrawArraysWEBGL(mode: GLenum, firstsList: Int32Array | GLint[], firstsOffset: GLuint, countsList: Int32Array | GLsizei[], countsOffset: GLuint, drawcount: GLsizei): void; + multiDrawElementsInstancedWEBGL(mode: GLenum, countsList: Int32Array | GLint[], countsOffset: GLuint, type: GLenum, offsetsList: Int32Array | GLsizei[], offsetsOffset: GLuint, instanceCountsList: Int32Array | GLsizei[], instanceCountsOffset: GLuint, drawcount: GLsizei): void; + multiDrawElementsWEBGL(mode: GLenum, countsList: Int32Array | GLint[], countsOffset: GLuint, type: GLenum, offsetsList: Int32Array | GLsizei[], offsetsOffset: GLuint, drawcount: GLsizei): void; +} + interface WebGL2RenderingContext extends WebGL2RenderingContextBase, WebGL2RenderingContextOverloads, WebGLRenderingContextBase { } @@ -5019,7 +5158,7 @@ declare var WebSocket: { /** This ServiceWorker API interface represents the scope of a service worker client that is a document in a browser context, controlled by an active worker. The service worker client independently selects and uses a service worker for its own loading and sub-resources. */ interface WindowClient extends Client { readonly focused: boolean; - readonly visibilityState: VisibilityState; + readonly visibilityState: DocumentVisibilityState; focus(): Promise; navigate(url: string | URL): Promise; } @@ -5030,6 +5169,7 @@ declare var WindowClient: { }; interface WindowOrWorkerGlobalScope { + /** Available only in secure contexts. */ readonly caches: CacheStorage; readonly crossOriginIsolated: boolean; readonly crypto: Crypto; @@ -5039,12 +5179,13 @@ interface WindowOrWorkerGlobalScope { readonly performance: Performance; atob(data: string): string; btoa(data: string): string; - clearInterval(handle?: number): void; - clearTimeout(handle?: number): void; + clearInterval(id?: number): void; + clearTimeout(id?: number): void; createImageBitmap(image: ImageBitmapSource, options?: ImageBitmapOptions): Promise; createImageBitmap(image: ImageBitmapSource, sx: number, sy: number, sw: number, sh: number, options?: ImageBitmapOptions): Promise; fetch(input: RequestInfo, init?: RequestInit): Promise; queueMicrotask(callback: VoidFunction): void; + reportError(e: any): void; setInterval(handler: TimerHandler, timeout?: number, ...arguments: any[]): number; setTimeout(handler: TimerHandler, timeout?: number, ...arguments: any[]): number; } @@ -5352,7 +5493,8 @@ declare namespace WebAssembly { var CompileError: { prototype: CompileError; - new(): CompileError; + new(message?: string): CompileError; + (message?: string): CompileError; }; interface Global { @@ -5379,7 +5521,8 @@ declare namespace WebAssembly { var LinkError: { prototype: LinkError; - new(): LinkError; + new(message?: string): LinkError; + (message?: string): LinkError; }; interface Memory { @@ -5408,7 +5551,8 @@ declare namespace WebAssembly { var RuntimeError: { prototype: RuntimeError; - new(): RuntimeError; + new(message?: string): RuntimeError; + (message?: string): RuntimeError; }; interface Table { @@ -5458,7 +5602,7 @@ declare namespace WebAssembly { type ImportExportKind = "function" | "global" | "memory" | "table"; type TableKind = "anyfunc" | "externref"; - type ValueType = "anyfunc" | "externref" | "f32" | "f64" | "i32" | "i64"; + type ValueType = "anyfunc" | "externref" | "f32" | "f64" | "i32" | "i64" | "v128"; type ExportValue = Function | Global | Memory | Table; type Exports = Record; type ImportValue = ExportValue | number; @@ -5476,6 +5620,10 @@ interface FrameRequestCallback { (time: DOMHighResTimeStamp): void; } +interface LockGrantedCallback { + (lock: Lock | null): any; +} + interface OnErrorEventHandlerNonNull { (event: Event | string, source?: string, lineno?: number, colno?: number, error?: Error): any; } @@ -5485,7 +5633,7 @@ interface PerformanceObserverCallback { } interface QueuingStrategySize { - (chunk?: T): number; + (chunk: T): number; } interface TransformerFlushCallback { @@ -5560,6 +5708,7 @@ declare function importScripts(...urls: (string | URL)[]): void; /** Dispatches a synthetic event event to target and returns true if either event's cancelable attribute value is false or its preventDefault() method was not invoked, and false otherwise. */ declare function dispatchEvent(event: Event): boolean; declare var fonts: FontFaceSet; +/** Available only in secure contexts. */ declare var caches: CacheStorage; declare var crossOriginIsolated: boolean; declare var crypto: Crypto; @@ -5569,12 +5718,13 @@ declare var origin: string; declare var performance: Performance; declare function atob(data: string): string; declare function btoa(data: string): string; -declare function clearInterval(handle?: number): void; -declare function clearTimeout(handle?: number): void; +declare function clearInterval(id?: number): void; +declare function clearTimeout(id?: number): void; declare function createImageBitmap(image: ImageBitmapSource, options?: ImageBitmapOptions): Promise; declare function createImageBitmap(image: ImageBitmapSource, sx: number, sy: number, sw: number, sh: number, options?: ImageBitmapOptions): Promise; declare function fetch(input: RequestInfo, init?: RequestInit): Promise; declare function queueMicrotask(callback: VoidFunction): void; +declare function reportError(e: any): void; declare function setInterval(handler: TimerHandler, timeout?: number, ...arguments: any[]): number; declare function setTimeout(handler: TimerHandler, timeout?: number, ...arguments: any[]): number; declare function cancelAnimationFrame(handle: number): void; @@ -5591,7 +5741,7 @@ type BodyInit = ReadableStream | XMLHttpRequestBodyInit; type BufferSource = ArrayBufferView | ArrayBuffer; type CanvasImageSource = ImageBitmap | OffscreenCanvas; type DOMHighResTimeStamp = number; -type DOMTimeStamp = number; +type EpochTimeStamp = number; type EventListenerOrEventListenerObject = EventListener | EventListenerObject; type Float32List = Float32Array | GLfloat[]; type FormDataEntryValue = File | string; @@ -5632,28 +5782,31 @@ type ClientTypes = "all" | "sharedworker" | "window" | "worker"; type ColorGamut = "p3" | "rec2020" | "srgb"; type ColorSpaceConversion = "default" | "none"; type ConnectionType = "bluetooth" | "cellular" | "ethernet" | "mixed" | "none" | "other" | "unknown" | "wifi"; +type DocumentVisibilityState = "hidden" | "visible"; type EndingType = "native" | "transparent"; +type FileSystemHandleKind = "directory" | "file"; type FontFaceLoadStatus = "error" | "loaded" | "loading" | "unloaded"; type FontFaceSetLoadStatus = "loaded" | "loading"; type FrameType = "auxiliary" | "nested" | "none" | "top-level"; type HdrMetadataType = "smpteSt2086" | "smpteSt2094-10" | "smpteSt2094-40"; type IDBCursorDirection = "next" | "nextunique" | "prev" | "prevunique"; type IDBRequestReadyState = "done" | "pending"; +type IDBTransactionDurability = "default" | "relaxed" | "strict"; type IDBTransactionMode = "readonly" | "readwrite" | "versionchange"; type ImageOrientation = "flipY" | "none"; type KeyFormat = "jwk" | "pkcs8" | "raw" | "spki"; type KeyType = "private" | "public" | "secret"; type KeyUsage = "decrypt" | "deriveBits" | "deriveKey" | "encrypt" | "sign" | "unwrapKey" | "verify" | "wrapKey"; +type LockMode = "exclusive" | "shared"; type MediaDecodingType = "file" | "media-source" | "webrtc"; type MediaEncodingType = "record" | "webrtc"; type NotificationDirection = "auto" | "ltr" | "rtl"; type NotificationPermission = "default" | "denied" | "granted"; -type PermissionName = "geolocation" | "notifications" | "persistent-storage" | "push" | "screen-wake-lock"; +type PermissionName = "geolocation" | "notifications" | "persistent-storage" | "push" | "screen-wake-lock" | "xr-spatial-tracking"; type PermissionState = "denied" | "granted" | "prompt"; type PredefinedColorSpace = "display-p3" | "srgb"; type PremultiplyAlpha = "default" | "none" | "premultiply"; type PushEncryptionKeyName = "auth" | "p256dh"; -type PushPermissionState = "denied" | "granted" | "prompt"; type ReferrerPolicy = "" | "no-referrer" | "no-referrer-when-downgrade" | "origin" | "origin-when-cross-origin" | "same-origin" | "strict-origin" | "strict-origin-when-cross-origin" | "unsafe-url"; type RequestCache = "default" | "force-cache" | "no-cache" | "no-store" | "only-if-cached" | "reload"; type RequestCredentials = "include" | "omit" | "same-origin"; @@ -5666,7 +5819,6 @@ type SecurityPolicyViolationEventDisposition = "enforce" | "report"; type ServiceWorkerState = "activated" | "activating" | "installed" | "installing" | "parsed" | "redundant"; type ServiceWorkerUpdateViaCache = "all" | "imports" | "none"; type TransferFunction = "hlg" | "pq" | "srgb"; -type VisibilityState = "hidden" | "visible"; type WebGLPowerPreference = "default" | "high-performance" | "low-power"; type WorkerType = "classic" | "module"; type XMLHttpRequestResponseType = "" | "arraybuffer" | "blob" | "document" | "json" | "text"; diff --git a/src/lib/webworker.iterable.generated.d.ts b/src/lib/webworker.iterable.generated.d.ts index 52d885453e0d4..6bc4a860b2d89 100644 --- a/src/lib/webworker.iterable.generated.d.ts +++ b/src/lib/webworker.iterable.generated.d.ts @@ -56,13 +56,6 @@ interface MessageEvent { initMessageEvent(type: string, bubbles?: boolean, cancelable?: boolean, data?: any, origin?: string, lastEventId?: string, source?: MessageEventSource | null, ports?: Iterable): void; } -interface ReadableStream { - [Symbol.iterator](): IterableIterator; - entries(): IterableIterator<[number, any]>; - keys(): IterableIterator; - values(): IterableIterator; -} - interface SubtleCrypto { deriveKey(algorithm: AlgorithmIdentifier | EcdhKeyDeriveParams | HkdfParams | Pbkdf2Params, baseKey: CryptoKey, derivedKeyType: AlgorithmIdentifier | AesDerivedKeyParams | HmacImportParams | HkdfParams | Pbkdf2Params, extractable: boolean, keyUsages: Iterable): Promise; generateKey(algorithm: RsaHashedKeyGenParams | EcKeyGenParams, extractable: boolean, keyUsages: KeyUsage[]): Promise; @@ -87,6 +80,13 @@ interface WEBGL_draw_buffers { drawBuffersWEBGL(buffers: Iterable): void; } +interface WEBGL_multi_draw { + multiDrawArraysInstancedWEBGL(mode: GLenum, firstsList: Int32Array | Iterable, firstsOffset: GLuint, countsList: Int32Array | Iterable, countsOffset: GLuint, instanceCountsList: Int32Array | Iterable, instanceCountsOffset: GLuint, drawcount: GLsizei): void; + multiDrawArraysWEBGL(mode: GLenum, firstsList: Int32Array | Iterable, firstsOffset: GLuint, countsList: Int32Array | Iterable, countsOffset: GLuint, drawcount: GLsizei): void; + multiDrawElementsInstancedWEBGL(mode: GLenum, countsList: Int32Array | Iterable, countsOffset: GLuint, type: GLenum, offsetsList: Int32Array | Iterable, offsetsOffset: GLuint, instanceCountsList: Int32Array | Iterable, instanceCountsOffset: GLuint, drawcount: GLsizei): void; + multiDrawElementsWEBGL(mode: GLenum, countsList: Int32Array | Iterable, countsOffset: GLuint, type: GLenum, offsetsList: Int32Array | Iterable, offsetsOffset: GLuint, drawcount: GLsizei): void; +} + interface WebGL2RenderingContextBase { clearBufferfv(buffer: GLenum, drawbuffer: GLint, values: Iterable, srcOffset?: GLuint): void; clearBufferiv(buffer: GLenum, drawbuffer: GLint, values: Iterable, srcOffset?: GLuint): void; diff --git a/src/loc/lcl/chs/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/chs/diagnosticMessages/diagnosticMessages.generated.json.lcl index 58e658a2be294..eb8e85488fff5 100644 --- a/src/loc/lcl/chs/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/chs/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -537,20 +537,11 @@ - + - + - - - - - - - - - - + @@ -855,15 +846,21 @@ - + - + - + + + + + + + + + + - - - @@ -966,6 +963,15 @@ + + + + + + + + + @@ -1038,18 +1044,6 @@ - - - - - - - - - - - - @@ -1221,15 +1215,6 @@ - - - - - - - - - @@ -1257,6 +1242,15 @@ + + + + + + + + + @@ -1436,10 +1430,13 @@ - + + + + @@ -1583,10 +1580,13 @@ - + + + + @@ -1866,11 +1866,20 @@ - + - + - + + + + + + + + + + @@ -1950,11 +1959,20 @@ - + + + + + + + + + + - + - + @@ -2121,11 +2139,11 @@ - + - + - + @@ -2459,10 +2477,13 @@ - + - + + + + @@ -2916,6 +2937,15 @@ + + + + + + + + + @@ -3207,6 +3237,15 @@ + + + + + + + + + @@ -3362,10 +3401,13 @@ - + + + + @@ -3609,6 +3651,15 @@ + + + + + + + + + @@ -3849,6 +3900,15 @@ + + + + + + + + + @@ -4029,6 +4089,15 @@ + + + + + + + + + @@ -4512,6 +4581,24 @@ + + + + + + + + + + + + + + + + + + @@ -4548,6 +4635,15 @@ + + + + + + + + + @@ -4602,11 +4698,32 @@ + + + + + + + + + - + + + + + + + + + + + + + - + @@ -4640,10 +4757,13 @@ - + + + + @@ -4769,10 +4889,13 @@ - + - + + + + @@ -4796,10 +4919,13 @@ - + + + + @@ -4823,10 +4949,13 @@ - + + + + @@ -4850,10 +4979,13 @@ - + - + + + + @@ -4931,10 +5063,13 @@ - + - + + + + @@ -4949,10 +5084,13 @@ - `s from expanding the number of files TypeScript should add to a project.]]> + 's from expanding the number of files TypeScript should add to a project.]]> - ” 扩展 TypeScript 应添加到项目的文件数。]]> + ” 扩展 TypeScript 应添加到项目的文件数。]]> + + `s from expanding the number of files TypeScript should add to a project.]]> + @@ -5241,11 +5379,11 @@ - + - + - + @@ -5360,10 +5498,13 @@ - + - + + + + @@ -5414,10 +5555,13 @@ - + - + + + + @@ -5441,10 +5585,13 @@ - + + + + @@ -5466,21 +5613,24 @@ - + - + - + - + - + + + + @@ -5495,19 +5645,13 @@ - - - - - - - - - - + - + + + + @@ -5585,10 +5729,13 @@ - + - + + + + @@ -5621,10 +5768,13 @@ - + - + + + + @@ -5766,6 +5916,15 @@ + + + + + + + + + @@ -6543,6 +6702,24 @@ + + + + + + + + + + + + + + + + + + @@ -6561,6 +6738,15 @@ + + + + + + + + + @@ -6869,10 +7055,13 @@ - + - + + + + @@ -7056,23 +7245,38 @@ - + - + - + + + + + + + + + + - - - - + - + - + + + + + + + + + + @@ -7125,15 +7329,6 @@ - - - - - - - - - @@ -7299,11 +7494,11 @@ - + - + - + @@ -7764,6 +7959,15 @@ + + + + + + + + + @@ -7989,15 +8193,6 @@ - - - - - - - - - @@ -8048,10 +8243,13 @@ - + + + + @@ -10224,15 +10422,6 @@ - - - - - - - - - @@ -10469,10 +10658,13 @@ - + - + + + + @@ -10548,6 +10740,24 @@ + + + + + + + + + + + + + + + + + + @@ -10674,6 +10884,24 @@ + + + + + + + + + + + + + + + + + + @@ -10746,6 +10974,15 @@ + + + + + + + + + ']]> @@ -10863,6 +11100,15 @@ + + + + + + + + + @@ -11633,10 +11879,13 @@ - + + + + @@ -11696,10 +11945,13 @@ - + - + + + + @@ -11768,19 +12020,25 @@ - + + + + - + - + + + + @@ -11858,10 +12116,13 @@ - + - + + + + @@ -11892,15 +12153,6 @@ - - - - - - - - - @@ -11921,10 +12173,13 @@ - + + + + @@ -11942,10 +12197,13 @@ - + - + + + + @@ -11958,6 +12216,15 @@ + + + + + + + + + @@ -12084,15 +12351,6 @@ - - - - - - - - - @@ -12233,10 +12491,13 @@ - + - + + + + @@ -12855,11 +13116,11 @@ - + - + - + @@ -13452,6 +13713,15 @@ + + + + + + + + + @@ -13626,6 +13896,15 @@ + + + + + + + + + @@ -13734,6 +14013,15 @@ + + + + + + + + + @@ -13947,15 +14235,6 @@ - - - - - - - - - @@ -13974,6 +14253,15 @@ + + + + + + + + + @@ -14598,6 +14886,15 @@ + + + + + + + + + @@ -14796,11 +15093,11 @@ - + - + - + @@ -14852,10 +15149,13 @@ - + + + + @@ -15267,6 +15567,15 @@ + + + + + + + + + @@ -15321,6 +15630,15 @@ + + + + + + + + + @@ -15357,6 +15675,15 @@ + + + + + + + + + @@ -15597,6 +15924,15 @@ + + + + + + + + + @@ -15663,6 +15999,15 @@ + + + + + + + + + @@ -16146,6 +16491,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/loc/lcl/cht/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/cht/diagnosticMessages/diagnosticMessages.generated.json.lcl index c4706da3c4bcb..854c998d30918 100644 --- a/src/loc/lcl/cht/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/cht/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -537,20 +537,11 @@ - + - + - - - - - - - - - - + @@ -855,15 +846,21 @@ - + - + - + + + + + + + + + + - - - @@ -966,6 +963,15 @@ + + + + + + + + + @@ -1038,18 +1044,6 @@ - - - - - - - - - - - - @@ -1221,15 +1215,6 @@ - - - - - - - - - @@ -1257,6 +1242,15 @@ + + + + + + + + + @@ -1436,10 +1430,13 @@ - + - + + + + @@ -1583,10 +1580,13 @@ - + - + + + + @@ -1866,11 +1866,20 @@ - + - + - + + + + + + + + + + @@ -1950,11 +1959,20 @@ - + + + + + + + + + + - + - + @@ -2121,11 +2139,11 @@ - + - + - + @@ -2459,10 +2477,13 @@ - + - + + + + @@ -2916,6 +2937,15 @@ + + + + + + + + + @@ -3207,6 +3237,15 @@ + + + + + + + + + @@ -3362,10 +3401,13 @@ - + - + + + + @@ -3609,6 +3651,15 @@ + + + + + + + + + @@ -3849,6 +3900,15 @@ + + + + + + + + + @@ -4029,6 +4089,15 @@ + + + + + + + + + @@ -4512,6 +4581,24 @@ + + + + + + + + + + + + + + + + + + @@ -4548,6 +4635,15 @@ + + + + + + + + + @@ -4602,11 +4698,32 @@ + + + + + + + + + - + + + + + + + + + + + + + - + @@ -4640,10 +4757,13 @@ - + - + + + + @@ -4769,10 +4889,13 @@ - + - + + + + @@ -4796,10 +4919,13 @@ - + - + + + + @@ -4823,10 +4949,13 @@ - + - + + + + @@ -4850,10 +4979,13 @@ - + - + + + + @@ -4931,10 +5063,13 @@ - + - + + + + @@ -4949,10 +5084,13 @@ - `s from expanding the number of files TypeScript should add to a project.]]> + 's from expanding the number of files TypeScript should add to a project.]]> - ` 擴充 TypeScript 應該加入專案的檔案數目。]]> + ' 擴充 TypeScript 應該加入專案的檔案數目。]]> + + `s from expanding the number of files TypeScript should add to a project.]]> + @@ -5241,9 +5379,9 @@ - + - + @@ -5360,10 +5498,13 @@ - + - + + + + @@ -5414,10 +5555,13 @@ - + - + + + + @@ -5441,10 +5585,13 @@ - + - + + + + @@ -5466,9 +5613,9 @@ - + - + @@ -5477,10 +5624,13 @@ - + - + + + + @@ -5495,19 +5645,13 @@ - - - - - - - - - - + - + + + + @@ -5585,10 +5729,13 @@ - + - + + + + @@ -5621,10 +5768,13 @@ - + - + + + + @@ -5766,6 +5916,15 @@ + + + + + + + + + @@ -6543,6 +6702,24 @@ + + + + + + + + + + + + + + + + + + @@ -6561,6 +6738,15 @@ + + + + + + + + + @@ -6869,10 +7055,13 @@ - + - + + + + @@ -7056,21 +7245,36 @@ - + - + - + + + + + + + + + + - - - - + - + + + + + + + + + + @@ -7125,15 +7329,6 @@ - - - - - - - - - @@ -7299,11 +7494,11 @@ - + - + - + @@ -7764,6 +7959,15 @@ + + + + + + + + + @@ -7989,15 +8193,6 @@ - - - - - - - - - @@ -8048,10 +8243,13 @@ - + - + + + + @@ -10224,15 +10422,6 @@ - - - - - - - - - @@ -10469,10 +10658,13 @@ - + - + + + + @@ -10548,6 +10740,24 @@ + + + + + + + + + + + + + + + + + + @@ -10674,6 +10884,24 @@ + + + + + + + + + + + + + + + + + + @@ -10746,6 +10974,15 @@ + + + + + + + + + ']]> @@ -10863,6 +11100,15 @@ + + + + + + + + + @@ -11633,10 +11879,13 @@ - + - + + + + @@ -11696,10 +11945,13 @@ - + - + + + + @@ -11768,19 +12020,25 @@ - + - + + + + - + - + + + + @@ -11858,10 +12116,13 @@ - + - + + + + @@ -11892,15 +12153,6 @@ - - - - - - - - - @@ -11921,10 +12173,13 @@ - + - + + + + @@ -11942,10 +12197,13 @@ - + - + + + + @@ -11958,6 +12216,15 @@ + + + + + + + + + @@ -12084,15 +12351,6 @@ - - - - - - - - - @@ -12233,10 +12491,13 @@ - + - + + + + @@ -12855,11 +13116,11 @@ - + - + - + @@ -13452,6 +13713,15 @@ + + + + + + + + + @@ -13626,6 +13896,15 @@ + + + + + + + + + @@ -13734,6 +14013,15 @@ + + + + + + + + + @@ -13947,15 +14235,6 @@ - - - - - - - - - @@ -13974,6 +14253,15 @@ + + + + + + + + + @@ -14598,6 +14886,15 @@ + + + + + + + + + @@ -14796,11 +15093,11 @@ - + - + - + @@ -14852,10 +15149,13 @@ - + - + + + + @@ -15267,6 +15567,15 @@ + + + + + + + + + @@ -15321,6 +15630,15 @@ + + + + + + + + + @@ -15357,6 +15675,15 @@ + + + + + + + + + @@ -15597,6 +15924,15 @@ + + + + + + + + + @@ -15663,6 +15999,15 @@ + + + + + + + + + @@ -16146,6 +16491,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/loc/lcl/csy/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/csy/diagnosticMessages/diagnosticMessages.generated.json.lcl index cf6c498e219eb..de7316b3cb6bf 100644 --- a/src/loc/lcl/csy/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/csy/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -546,20 +546,11 @@ - + - + - - - - - - - - - - + @@ -864,15 +855,21 @@ - + - + - + + + + + + + + + + - - - @@ -975,6 +972,15 @@ + + + + + + + + + @@ -1047,18 +1053,6 @@ - - - - - - - - - - - - @@ -1230,15 +1224,6 @@ - - - - - - - - - @@ -1266,6 +1251,15 @@ + + + + + + + + + @@ -1445,10 +1439,13 @@ - + - + + + + @@ -1592,10 +1589,13 @@ - + - + + + + @@ -1875,11 +1875,20 @@ - + - + - + + + + + + + + + + @@ -1959,11 +1968,20 @@ - + + + + + + + + + + - + - + @@ -2130,11 +2148,11 @@ - + - + - + @@ -2468,10 +2486,13 @@ - + - + + + + @@ -2925,6 +2946,15 @@ + + + + + + + + + @@ -3216,6 +3246,15 @@ + + + + + + + + + @@ -3371,10 +3410,13 @@ - + - + + + + @@ -3618,6 +3660,15 @@ + + + + + + + + + @@ -3858,6 +3909,15 @@ + + + + + + + + + @@ -4038,6 +4098,15 @@ + + + + + + + + + @@ -4521,6 +4590,24 @@ + + + + + + + + + + + + + + + + + + @@ -4557,6 +4644,15 @@ + + + + + + + + + @@ -4611,11 +4707,32 @@ + + + + + + + + + - + + + + + + + + + + + + + - + @@ -4649,10 +4766,13 @@ - + - + + + + @@ -4778,10 +4898,13 @@ - + - + + + + @@ -4805,10 +4928,13 @@ - + - + + + + @@ -4832,10 +4958,13 @@ - + - + + + + @@ -4859,10 +4988,13 @@ - + - + + + + @@ -4940,10 +5072,13 @@ - + - + + + + @@ -4958,10 +5093,13 @@ - `s from expanding the number of files TypeScript should add to a project.]]> + 's from expanding the number of files TypeScript should add to a project.]]> - + zvětšování počtu souborů, které by typeScript měl přidat do projektu.]]> + + `s from expanding the number of files TypeScript should add to a project.]]> + @@ -5250,11 +5388,11 @@ - + - + - + @@ -5369,10 +5507,13 @@ - + - + + + + @@ -5423,10 +5564,13 @@ - + + + + @@ -5450,10 +5594,13 @@ - + - + + + + @@ -5475,21 +5622,24 @@ - + - + - + - + - + + + + @@ -5504,19 +5654,13 @@ - - - - - - - - - - + - + + + + @@ -5594,10 +5738,13 @@ - + - + + + + @@ -5630,10 +5777,13 @@ - + - + + + + @@ -5775,6 +5925,15 @@ + + + + + + + + + @@ -6552,6 +6711,24 @@ + + + + + + + + + + + + + + + + + + @@ -6570,6 +6747,15 @@ + + + + + + + + + @@ -6878,10 +7064,13 @@ - + - + + + + @@ -7065,23 +7254,38 @@ - + - + - + + + + + + + + + + - - - - + - + - + + + + + + + + + + @@ -7134,15 +7338,6 @@ - - - - - - - - - @@ -7308,11 +7503,11 @@ - + - + - + @@ -7773,6 +7968,15 @@ + + + + + + + + + @@ -7998,15 +8202,6 @@ - - - - - - - - - @@ -8057,10 +8252,13 @@ - + - + + + + @@ -10233,15 +10431,6 @@ - - - - - - - - - @@ -10478,10 +10667,13 @@ - + - + + + + @@ -10557,6 +10749,24 @@ + + + + + + + + + + + + + + + + + + @@ -10683,6 +10893,24 @@ + + + + + + + + + + + + + + + + + + @@ -10755,6 +10983,15 @@ + + + + + + + + + ']]> @@ -10872,6 +11109,15 @@ + + + + + + + + + @@ -11642,10 +11888,13 @@ - + - + + + + @@ -11705,10 +11954,13 @@ - + + + + @@ -11777,19 +12029,25 @@ - + - + + + + - + - + + + + @@ -11867,10 +12125,13 @@ - + - + + + + @@ -11901,15 +12162,6 @@ - - - - - - - - - @@ -11930,10 +12182,13 @@ - + - + + + + @@ -11951,10 +12206,13 @@ - + - + + + + @@ -11967,6 +12225,15 @@ + + + + + + + + + @@ -12093,15 +12360,6 @@ - - - - - - - - - @@ -12242,10 +12500,13 @@ - + - + + + + @@ -12864,11 +13125,11 @@ - + - + - + @@ -13461,6 +13722,15 @@ + + + + + + + + + @@ -13635,6 +13905,15 @@ + + + + + + + + + @@ -13743,6 +14022,15 @@ + + + + + + + + + @@ -13956,15 +14244,6 @@ - - - - - - - - - @@ -13983,6 +14262,15 @@ + + + + + + + + + @@ -14607,6 +14895,15 @@ + + + + + + + + + @@ -14805,11 +15102,11 @@ - + - + - + @@ -14861,10 +15158,13 @@ - + - + + + + @@ -15276,6 +15576,15 @@ + + + + + + + + + @@ -15330,6 +15639,15 @@ + + + + + + + + + @@ -15366,6 +15684,15 @@ + + + + + + + + + @@ -15606,6 +15933,15 @@ + + + + + + + + + @@ -15672,6 +16008,15 @@ + + + + + + + + + @@ -16155,6 +16500,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/loc/lcl/deu/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/deu/diagnosticMessages/diagnosticMessages.generated.json.lcl index 0ba3b3a31d12d..97ec28c5a0d50 100644 --- a/src/loc/lcl/deu/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/deu/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -537,20 +537,11 @@ - + - + - - - - - - - - - - + @@ -852,15 +843,21 @@ - + - + - + + + + + + + + + + - - - @@ -963,6 +960,15 @@ + + + + + + + + + @@ -1035,18 +1041,6 @@ - - - - - - - - - - - - @@ -1218,15 +1212,6 @@ - - - - - - - - - @@ -1254,6 +1239,15 @@ + + + + + + + + + @@ -1433,10 +1427,13 @@ - + - + + + + @@ -1580,10 +1577,13 @@ - + - + + + + @@ -1863,11 +1863,20 @@ - + + + + + + + + + + - + - + @@ -1947,11 +1956,20 @@ - + + + + + + + + + + - + - + @@ -2118,11 +2136,11 @@ - + - + - + @@ -2456,10 +2474,13 @@ - + - + + + + @@ -2913,6 +2934,15 @@ + + + + + + + + + @@ -3204,6 +3234,15 @@ + + + + + + + + + @@ -3359,10 +3398,13 @@ - + - + + + + @@ -3606,6 +3648,15 @@ + + + + + + + + + @@ -3846,6 +3897,15 @@ + + + + + + + + + @@ -4026,6 +4086,15 @@ + + + + + + + + + @@ -4509,6 +4578,24 @@ + + + + + + + + + + + + + + + + + + @@ -4545,6 +4632,15 @@ + + + + + + + + + @@ -4599,11 +4695,32 @@ + + + + + + + + + - + + + + + + + + + + + + + - + @@ -4637,10 +4754,13 @@ - + - + + + + @@ -4766,10 +4886,13 @@ - + - + + + + @@ -4793,10 +4916,13 @@ - + - + + + + @@ -4820,10 +4946,13 @@ - + - + + + + @@ -4847,10 +4976,13 @@ - + - + + + + @@ -4928,10 +5060,13 @@ - + + + + @@ -4946,10 +5081,13 @@ - `s from expanding the number of files TypeScript should add to a project.]]> + 's from expanding the number of files TypeScript should add to a project.]]> - " die Anzahl der Dateien erweitern, die TypeScript einem Projekt hinzufügen soll.]]> + “ die Anzahl der Dateien erweitern, die TypeScript einem Projekt hinzufügen soll.]]> + + `s from expanding the number of files TypeScript should add to a project.]]> + @@ -5238,11 +5376,11 @@ - + - + - + @@ -5357,10 +5495,13 @@ - + - + + + + @@ -5411,10 +5552,13 @@ - + - + + + + @@ -5438,10 +5582,13 @@ - + - + + + + @@ -5463,9 +5610,9 @@ - + - + @@ -5474,10 +5621,13 @@ - + - + + + + @@ -5492,19 +5642,13 @@ - + - - - - - - - - - - + + + + @@ -5582,10 +5726,13 @@ - + - + + + + @@ -5618,10 +5765,13 @@ - + - + + + + @@ -5763,6 +5913,15 @@ + + + + + + + + + @@ -6540,6 +6699,24 @@ + + + + + + + + + + + + + + + + + + @@ -6558,6 +6735,15 @@ + + + + + + + + + @@ -6866,10 +7052,13 @@ - + - + + + + @@ -7053,23 +7242,38 @@ - + - + - + - - - - + - + - + + + + + + + + + + + + + + + + + + + @@ -7122,15 +7326,6 @@ - - - - - - - - - @@ -7296,11 +7491,11 @@ - + - + - + @@ -7761,6 +7956,15 @@ + + + + + + + + + @@ -7986,15 +8190,6 @@ - - - - - - - - - @@ -8045,10 +8240,13 @@ - + - + + + + @@ -10218,15 +10416,6 @@ - - - - - - - - - @@ -10463,10 +10652,13 @@ - + - + + + + @@ -10542,6 +10734,24 @@ + + + + + + + + + + + + + + + + + + @@ -10668,6 +10878,24 @@ + + + + + + + + + + + + + + + + + + @@ -10740,6 +10968,15 @@ + + + + + + + + + ']]> @@ -10857,6 +11094,15 @@ + + + + + + + + + @@ -11627,10 +11873,13 @@ - + - + + + + @@ -11690,10 +11939,13 @@ - + + + + @@ -11762,19 +12014,25 @@ - + - + + + + - + - + + + + @@ -11852,10 +12110,13 @@ - + - + + + + @@ -11886,15 +12147,6 @@ - - - - - - - - - @@ -11915,10 +12167,13 @@ - + - + + + + @@ -11936,10 +12191,13 @@ - + - + + + + @@ -11952,6 +12210,15 @@ + + + + + + + + + @@ -12078,15 +12345,6 @@ - - - - - - - - - @@ -12227,10 +12485,13 @@ - + - + + + + @@ -12849,11 +13110,11 @@ - + - + - + @@ -13446,6 +13707,15 @@ + + + + + + + + + @@ -13620,6 +13890,15 @@ + + + + + + + + + @@ -13728,6 +14007,15 @@ + + + + + + + + + @@ -13941,15 +14229,6 @@ - - - - - - - - - @@ -13968,6 +14247,15 @@ + + + + + + + + + @@ -14592,6 +14880,15 @@ + + + + + + + + + @@ -14790,11 +15087,11 @@ - + - + - + @@ -14846,10 +15143,13 @@ - + - + + + + @@ -15261,6 +15561,15 @@ + + + + + + + + + @@ -15315,6 +15624,15 @@ + + + + + + + + + @@ -15351,6 +15669,15 @@ + + + + + + + + + @@ -15591,6 +15918,15 @@ + + + + + + + + + @@ -15657,6 +15993,15 @@ + + + + + + + + + @@ -16140,6 +16485,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/loc/lcl/esn/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/esn/diagnosticMessages/diagnosticMessages.generated.json.lcl index bf8ec5fba576a..b534ce0a67390 100644 --- a/src/loc/lcl/esn/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/esn/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -546,20 +546,11 @@ - + - + - - - - - - - - - - + @@ -864,15 +855,21 @@ - + - + - + + + + + + + + + + - - - @@ -975,6 +972,15 @@ + + + + + + + + + @@ -1047,18 +1053,6 @@ - - - - - - - - - - - - @@ -1230,15 +1224,6 @@ - - - - - - - - - @@ -1266,6 +1251,15 @@ + + + + + + + + + @@ -1448,10 +1442,13 @@ - + - + + + + @@ -1595,10 +1592,13 @@ - + + + + @@ -1878,11 +1878,20 @@ - + - + - + + + + + + + + + + @@ -1962,11 +1971,20 @@ - + + + + + + + + + + - + - + @@ -2133,11 +2151,11 @@ - + - + - + @@ -2471,10 +2489,13 @@ - + - + + + + @@ -2928,6 +2949,15 @@ + + + + + + + + + @@ -3219,6 +3249,15 @@ + + + + + + + + + @@ -3374,10 +3413,13 @@ - + - + + + + @@ -3621,6 +3663,15 @@ + + + + + + + + + @@ -3861,6 +3912,15 @@ + + + + + + + + + @@ -4041,6 +4101,15 @@ + + + + + + + + + @@ -4524,6 +4593,24 @@ + + + + + + + + + + + + + + + + + + @@ -4560,6 +4647,15 @@ + + + + + + + + + @@ -4614,11 +4710,32 @@ + + + + + + + + + - + + + + + + + + + + + + + - + @@ -4652,10 +4769,13 @@ - + + + + @@ -4781,10 +4901,13 @@ - + + + + @@ -4808,10 +4931,13 @@ - + - + + + + @@ -4835,10 +4961,13 @@ - + - + + + + @@ -4862,10 +4991,13 @@ - + + + + @@ -4943,10 +5075,13 @@ - + - + + + + @@ -4961,10 +5096,13 @@ - `s from expanding the number of files TypeScript should add to a project.]]> + 's from expanding the number of files TypeScript should add to a project.]]> " amplíe el número de archivos que TypeScript debe agregar a un proyecto.]]> + + `s from expanding the number of files TypeScript should add to a project.]]> + @@ -5253,11 +5391,11 @@ - + - + - + @@ -5372,10 +5510,13 @@ - + + + + @@ -5426,10 +5567,13 @@ - + - + + + + @@ -5453,10 +5597,13 @@ - + - + + + + @@ -5478,9 +5625,9 @@ - + - + @@ -5489,10 +5636,13 @@ - + - + + + + @@ -5507,19 +5657,13 @@ - - - - - - - - - - + - + + + + @@ -5597,10 +5741,13 @@ - + - + + + + @@ -5633,10 +5780,13 @@ - + - + + + + @@ -5778,6 +5928,15 @@ + + + + + + + + + @@ -6555,6 +6714,24 @@ + + + + + + + + + + + + + + + + + + @@ -6573,6 +6750,15 @@ + + + + + + + + + @@ -6881,10 +7067,13 @@ - + - + + + + @@ -7068,23 +7257,38 @@ - + - + - + + + + + + + + + + - - - - + - + - + + + + + + + + + + @@ -7137,15 +7341,6 @@ - - - - - - - - - @@ -7311,11 +7506,11 @@ - + - + - + @@ -7776,6 +7971,15 @@ + + + + + + + + + @@ -8001,15 +8205,6 @@ - - - - - - - - - @@ -8060,10 +8255,13 @@ - + + + + @@ -10236,15 +10434,6 @@ - - - - - - - - - @@ -10481,10 +10670,13 @@ - + - + + + + @@ -10560,6 +10752,24 @@ + + + + + + + + + + + + + + + + + + @@ -10686,6 +10896,24 @@ + + + + + + + + + + + + + + + + + + @@ -10758,6 +10986,15 @@ + + + + + + + + + ']]> @@ -10875,6 +11112,15 @@ + + + + + + + + + @@ -11645,10 +11891,13 @@ - + - + + + + @@ -11708,10 +11957,13 @@ - + - + + + + @@ -11780,19 +12032,25 @@ - + - + + + + - + + + + @@ -11870,10 +12128,13 @@ - + - + + + + @@ -11904,15 +12165,6 @@ - - - - - - - - - @@ -11933,10 +12185,13 @@ - + + + + @@ -11954,10 +12209,13 @@ - + - + + + + @@ -11970,6 +12228,15 @@ + + + + + + + + + @@ -12096,15 +12363,6 @@ - - - - - - - - - @@ -12245,10 +12503,13 @@ - + - + + + + @@ -12867,11 +13128,11 @@ - + - + - + @@ -13464,6 +13725,15 @@ + + + + + + + + + @@ -13638,6 +13908,15 @@ + + + + + + + + + @@ -13746,6 +14025,15 @@ + + + + + + + + + @@ -13959,15 +14247,6 @@ - - - - - - - - - @@ -13986,6 +14265,15 @@ + + + + + + + + + @@ -14610,6 +14898,15 @@ + + + + + + + + + @@ -14808,11 +15105,11 @@ - + - + - + @@ -14864,10 +15161,13 @@ - + - + + + + @@ -15279,6 +15579,15 @@ + + + + + + + + + @@ -15333,6 +15642,15 @@ + + + + + + + + + @@ -15369,6 +15687,15 @@ + + + + + + + + + @@ -15609,6 +15936,15 @@ + + + + + + + + + @@ -15675,6 +16011,15 @@ + + + + + + + + + @@ -16158,6 +16503,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/loc/lcl/fra/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/fra/diagnosticMessages/diagnosticMessages.generated.json.lcl index 53a4056ae7679..d56a62f105758 100644 --- a/src/loc/lcl/fra/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/fra/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -546,20 +546,11 @@ - + - + - - - - - - - - - - + @@ -864,15 +855,21 @@ - + - + - + + + + + + + + + + - - - @@ -975,6 +972,15 @@ + + + + + + + + + @@ -1047,18 +1053,6 @@ - - - - - - - - - - - - @@ -1230,15 +1224,6 @@ - - - - - - - - - @@ -1266,6 +1251,15 @@ + + + + + + + + + @@ -1448,10 +1442,13 @@ - + + + + @@ -1595,10 +1592,13 @@ - + + + + @@ -1878,11 +1878,20 @@ - + - + - + + + + + + + + + + @@ -1962,11 +1971,20 @@ - + + + + + + + + + + - + - + @@ -2133,11 +2151,11 @@ - + - + - + @@ -2471,10 +2489,13 @@ - + - + + + + @@ -2928,6 +2949,15 @@ + + + + + + + + + @@ -3219,6 +3249,15 @@ + + + + + + + + + @@ -3374,10 +3413,13 @@ - + + + + @@ -3621,6 +3663,15 @@ + + + + + + + + + @@ -3861,6 +3912,15 @@ + + + + + + + + + @@ -4041,6 +4101,15 @@ + + + + + + + + + @@ -4524,6 +4593,24 @@ + + + + + + + + + + + + + + + + + + @@ -4560,6 +4647,15 @@ + + + + + + + + + @@ -4614,11 +4710,32 @@ + + + + + + + + + - + + + + + + + + + + + + + - + @@ -4652,10 +4769,13 @@ - + + + + @@ -4781,10 +4901,13 @@ - + + + + @@ -4808,10 +4931,13 @@ - + + + + @@ -4835,10 +4961,13 @@ - + - + + + + @@ -4862,10 +4991,13 @@ - + - + + + + @@ -4943,10 +5075,13 @@ - + - + + + + @@ -4961,10 +5096,13 @@ - `s from expanding the number of files TypeScript should add to a project.]]> + 's from expanding the number of files TypeScript should add to a project.]]> » d’étendre le nombre de fichiers que TypeScript doit ajouter à un projet.]]> + + `s from expanding the number of files TypeScript should add to a project.]]> + @@ -5253,11 +5391,11 @@ - + - + - + @@ -5372,10 +5510,13 @@ - + + + + @@ -5426,10 +5567,13 @@ - + - + + + + @@ -5453,10 +5597,13 @@ - + + + + @@ -5478,21 +5625,24 @@ - + - + - + - + + + + @@ -5507,19 +5657,13 @@ - - - - - - - - - - + - + + + + @@ -5597,10 +5741,13 @@ - + - + + + + @@ -5633,10 +5780,13 @@ - + - + + + + @@ -5778,6 +5928,15 @@ + + + + + + + + + @@ -6555,6 +6714,24 @@ + + + + + + + + + + + + + + + + + + @@ -6573,6 +6750,15 @@ + + + + + + + + + @@ -6881,10 +7067,13 @@ - + + + + @@ -7068,23 +7257,38 @@ - + - + - + + + + + + + + + + - - - - + - + - + + + + + + + + + + @@ -7137,15 +7341,6 @@ - - - - - - - - - @@ -7311,11 +7506,11 @@ - + - + - + @@ -7776,6 +7971,15 @@ + + + + + + + + + @@ -8001,15 +8205,6 @@ - - - - - - - - - @@ -8060,10 +8255,13 @@ - + + + + @@ -10236,15 +10434,6 @@ - - - - - - - - - @@ -10481,10 +10670,13 @@ - + - + + + + @@ -10560,6 +10752,24 @@ + + + + + + + + + + + + + + + + + + @@ -10686,6 +10896,24 @@ + + + + + + + + + + + + + + + + + + @@ -10758,6 +10986,15 @@ + + + + + + + + + ']]> @@ -10875,6 +11112,15 @@ + + + + + + + + + @@ -11645,10 +11891,13 @@ - + + + + @@ -11708,10 +11957,13 @@ - + - + + + + @@ -11780,19 +12032,25 @@ - + + + + - + + + + @@ -11870,10 +12128,13 @@ - + + + + @@ -11904,15 +12165,6 @@ - - - - - - - - - @@ -11933,10 +12185,13 @@ - + + + + @@ -11954,10 +12209,13 @@ - + + + + @@ -11970,6 +12228,15 @@ + + + + + + + + + @@ -12096,15 +12363,6 @@ - - - - - - - - - @@ -12245,10 +12503,13 @@ - + + + + @@ -12867,11 +13128,11 @@ - + - + - + @@ -13464,6 +13725,15 @@ + + + + + + + + + @@ -13638,6 +13908,15 @@ + + + + + + + + + @@ -13746,6 +14025,15 @@ + + + + + + + + + @@ -13959,15 +14247,6 @@ - - - - - - - - - @@ -13986,6 +14265,15 @@ + + + + + + + + + @@ -14610,6 +14898,15 @@ + + + + + + + + + @@ -14808,11 +15105,11 @@ - + - + - + @@ -14864,10 +15161,13 @@ - + + + + @@ -15279,6 +15579,15 @@ + + + + + + + + + @@ -15333,6 +15642,15 @@ + + + + + + + + + @@ -15369,6 +15687,15 @@ + + + + + + + + + @@ -15609,6 +15936,15 @@ + + + + + + + + + @@ -15675,6 +16011,15 @@ + + + + + + + + + @@ -16158,6 +16503,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/loc/lcl/ita/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/ita/diagnosticMessages/diagnosticMessages.generated.json.lcl index b9d0acf60880c..59951b9b44967 100644 --- a/src/loc/lcl/ita/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/ita/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -537,20 +537,11 @@ - + - + - - - - - - - - - - + @@ -855,15 +846,21 @@ - + - + - + + + + + + + + + + - - - @@ -966,6 +963,15 @@ + + + + + + + + + @@ -1038,18 +1044,6 @@ - - - - - - - - - - - - @@ -1221,15 +1215,6 @@ - - - - - - - - - @@ -1257,6 +1242,15 @@ + + + + + + + + + @@ -1436,10 +1430,13 @@ - + - + + + + @@ -1583,10 +1580,13 @@ - + - + + + + @@ -1866,11 +1866,20 @@ - + - + - + + + + + + + + + + @@ -1950,11 +1959,20 @@ - + + + + + + + + + + - + - + @@ -2121,11 +2139,11 @@ - + - + - + @@ -2459,10 +2477,13 @@ - + - + + + + @@ -2916,6 +2937,15 @@ + + + + + + + + + @@ -3207,6 +3237,15 @@ + + + + + + + + + @@ -3362,10 +3401,13 @@ - + - + + + + @@ -3609,6 +3651,15 @@ + + + + + + + + + @@ -3849,6 +3900,15 @@ + + + + + + + + + @@ -4029,6 +4089,15 @@ + + + + + + + + + @@ -4512,6 +4581,24 @@ + + + + + + + + + + + + + + + + + + @@ -4548,6 +4635,15 @@ + + + + + + + + + @@ -4602,11 +4698,32 @@ + + + + + + + + + - + + + + + + + + + + + + + - + @@ -4640,10 +4757,13 @@ - + - + + + + @@ -4769,10 +4889,13 @@ - + - + + + + @@ -4796,10 +4919,13 @@ - + - + + + + @@ -4823,10 +4949,13 @@ - + - + + + + @@ -4850,10 +4979,13 @@ - + - + + + + @@ -4931,10 +5063,13 @@ - + - + + + + @@ -4949,10 +5084,13 @@ - `s from expanding the number of files TypeScript should add to a project.]]> + 's from expanding the number of files TypeScript should add to a project.]]> - ` di espandere il numero di file che TypeScript deve aggiungere a un progetto.]]> + ' di espandere il numero di file che TypeScript deve aggiungere a un progetto.]]> + + `s from expanding the number of files TypeScript should add to a project.]]> + @@ -5241,11 +5379,11 @@ - + - + - + @@ -5360,10 +5498,13 @@ - + - + + + + @@ -5414,10 +5555,13 @@ - + - + + + + @@ -5441,10 +5585,13 @@ - + - + + + + @@ -5466,21 +5613,24 @@ - + - + - + - + - + + + + @@ -5495,19 +5645,13 @@ - - - - - - - - - - + - + + + + @@ -5585,10 +5729,13 @@ - + - + + + + @@ -5621,10 +5768,13 @@ - + - + + + + @@ -5766,6 +5916,15 @@ + + + + + + + + + @@ -6543,6 +6702,24 @@ + + + + + + + + + + + + + + + + + + @@ -6561,6 +6738,15 @@ + + + + + + + + + @@ -6869,10 +7055,13 @@ - + - + + + + @@ -7056,23 +7245,38 @@ - + - + - + + + + + + + + + + - - - - + - + - + + + + + + + + + + @@ -7125,15 +7329,6 @@ - - - - - - - - - @@ -7299,11 +7494,11 @@ - + - + - + @@ -7764,6 +7959,15 @@ + + + + + + + + + @@ -7989,15 +8193,6 @@ - - - - - - - - - @@ -8048,10 +8243,13 @@ - + - + + + + @@ -10224,15 +10422,6 @@ - - - - - - - - - @@ -10469,10 +10658,13 @@ - + - + + + + @@ -10548,6 +10740,24 @@ + + + + + + + + + + + + + + + + + + @@ -10674,6 +10884,24 @@ + + + + + + + + + + + + + + + + + + @@ -10746,6 +10974,15 @@ + + + + + + + + + ']]> @@ -10863,6 +11100,15 @@ + + + + + + + + + @@ -11633,10 +11879,13 @@ - + - + + + + @@ -11696,10 +11945,13 @@ - + - + + + + @@ -11768,19 +12020,25 @@ - + - + + + + - + - + + + + @@ -11858,10 +12116,13 @@ - + - + + + + @@ -11892,15 +12153,6 @@ - - - - - - - - - @@ -11921,10 +12173,13 @@ - + - + + + + @@ -11942,10 +12197,13 @@ - + - + + + + @@ -11958,6 +12216,15 @@ + + + + + + + + + @@ -12084,15 +12351,6 @@ - - - - - - - - - @@ -12233,10 +12491,13 @@ - + - + + + + @@ -12855,11 +13116,11 @@ - + - + - + @@ -13452,6 +13713,15 @@ + + + + + + + + + @@ -13626,6 +13896,15 @@ + + + + + + + + + @@ -13734,6 +14013,15 @@ + + + + + + + + + @@ -13947,15 +14235,6 @@ - - - - - - - - - @@ -13974,6 +14253,15 @@ + + + + + + + + + @@ -14598,6 +14886,15 @@ + + + + + + + + + @@ -14796,11 +15093,11 @@ - + - + - + @@ -14852,10 +15149,13 @@ - + - + + + + @@ -15267,6 +15567,15 @@ + + + + + + + + + @@ -15321,6 +15630,15 @@ + + + + + + + + + @@ -15357,6 +15675,15 @@ + + + + + + + + + @@ -15597,6 +15924,15 @@ + + + + + + + + + @@ -15663,6 +15999,15 @@ + + + + + + + + + @@ -16146,6 +16491,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/loc/lcl/jpn/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/jpn/diagnosticMessages/diagnosticMessages.generated.json.lcl index 4c5e403fd19c4..3b0ceb4783dcf 100644 --- a/src/loc/lcl/jpn/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/jpn/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -537,20 +537,11 @@ - + - + - - - - - - - - - - + @@ -855,15 +846,21 @@ - + - + - + + + + + + + + + + - - - @@ -966,6 +963,15 @@ + + + + + + + + + @@ -1038,18 +1044,6 @@ - - - - - - - - - - - - @@ -1221,15 +1215,6 @@ - - - - - - - - - @@ -1257,6 +1242,15 @@ + + + + + + + + + @@ -1436,10 +1430,13 @@ - + + + + @@ -1583,10 +1580,13 @@ - + + + + @@ -1866,11 +1866,20 @@ - + - + - + + + + + + + + + + @@ -1950,11 +1959,20 @@ - + + + + + + + + + + - + - + @@ -2121,11 +2139,11 @@ - + - + - + @@ -2459,10 +2477,13 @@ - + - + + + + @@ -2916,6 +2937,15 @@ + + + + + + + + + @@ -3207,6 +3237,15 @@ + + + + + + + + + @@ -3362,10 +3401,13 @@ - + + + + @@ -3609,6 +3651,15 @@ + + + + + + + + + @@ -3849,6 +3900,15 @@ + + + + + + + + + @@ -4029,6 +4089,15 @@ + + + + + + + + + @@ -4512,6 +4581,24 @@ + + + + + + + + + + + + + + + + + + @@ -4548,6 +4635,15 @@ + + + + + + + + + @@ -4602,11 +4698,32 @@ + + + + + + + + + - + + + + + + + + + + + + + - + @@ -4640,10 +4757,13 @@ - + + + + @@ -4769,10 +4889,13 @@ - + + + + @@ -4796,10 +4919,13 @@ - + + + + @@ -4823,10 +4949,13 @@ - + + + + @@ -4850,10 +4979,13 @@ - + - + + + + @@ -4931,10 +5063,13 @@ - + - + + + + @@ -4949,10 +5084,13 @@ - `s from expanding the number of files TypeScript should add to a project.]]> + 's from expanding the number of files TypeScript should add to a project.]]> ' を使用して TypeScript がプロジェクトに追加するファイルの数を増やすことを無効にします。]]> + + `s from expanding the number of files TypeScript should add to a project.]]> + @@ -5241,11 +5379,11 @@ - + - + - + @@ -5360,10 +5498,13 @@ - + + + + @@ -5414,10 +5555,13 @@ - + - + + + + @@ -5441,10 +5585,13 @@ - + + + + @@ -5466,9 +5613,9 @@ - + - + @@ -5477,10 +5624,13 @@ - + + + + @@ -5495,19 +5645,13 @@ - - - - - - - - - - + - + + + + @@ -5585,10 +5729,13 @@ - + - + + + + @@ -5621,10 +5768,13 @@ - + - + + + + @@ -5766,6 +5916,15 @@ + + + + + + + + + @@ -6543,6 +6702,24 @@ + + + + + + + + + + + + + + + + + + @@ -6561,6 +6738,15 @@ + + + + + + + + + @@ -6869,10 +7055,13 @@ - + + + + @@ -7056,23 +7245,38 @@ - + - + - + + + + + + + + + + - - - - + - + - + + + + + + + + + + @@ -7125,15 +7329,6 @@ - - - - - - - - - @@ -7299,11 +7494,11 @@ - + - + - + @@ -7764,6 +7959,15 @@ + + + + + + + + + @@ -7989,15 +8193,6 @@ - - - - - - - - - @@ -8048,10 +8243,13 @@ - + + + + @@ -10224,15 +10422,6 @@ - - - - - - - - - @@ -10469,10 +10658,13 @@ - + - + + + + @@ -10548,6 +10740,24 @@ + + + + + + + + + + + + + + + + + + @@ -10674,6 +10884,24 @@ + + + + + + + + + + + + + + + + + + @@ -10746,6 +10974,15 @@ + + + + + + + + + ']]> @@ -10863,6 +11100,15 @@ + + + + + + + + + @@ -11633,10 +11879,13 @@ - + + + + @@ -11696,10 +11945,13 @@ - + - + + + + @@ -11768,19 +12020,25 @@ - + + + + - + + + + @@ -11858,10 +12116,13 @@ - + + + + @@ -11892,15 +12153,6 @@ - - - - - - - - - @@ -11921,10 +12173,13 @@ - + + + + @@ -11942,10 +12197,13 @@ - + + + + @@ -11958,6 +12216,15 @@ + + + + + + + + + @@ -12084,15 +12351,6 @@ - - - - - - - - - @@ -12233,10 +12491,13 @@ - + + + + @@ -12855,11 +13116,11 @@ - + - + - + @@ -13452,6 +13713,15 @@ + + + + + + + + + @@ -13626,6 +13896,15 @@ + + + + + + + + + @@ -13734,6 +14013,15 @@ + + + + + + + + + @@ -13947,15 +14235,6 @@ - - - - - - - - - @@ -13974,6 +14253,15 @@ + + + + + + + + + @@ -14598,6 +14886,15 @@ + + + + + + + + + @@ -14796,11 +15093,11 @@ - + - + - + @@ -14852,10 +15149,13 @@ - + + + + @@ -15267,6 +15567,15 @@ + + + + + + + + + @@ -15321,6 +15630,15 @@ + + + + + + + + + @@ -15357,6 +15675,15 @@ + + + + + + + + + @@ -15597,6 +15924,15 @@ + + + + + + + + + @@ -15663,6 +15999,15 @@ + + + + + + + + + @@ -16146,6 +16491,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/loc/lcl/kor/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/kor/diagnosticMessages/diagnosticMessages.generated.json.lcl index 76c05cb54bcf0..aaa0d9488b2a0 100644 --- a/src/loc/lcl/kor/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/kor/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -537,20 +537,11 @@ - + - + - - - - - - - - - - + @@ -855,15 +846,21 @@ - + - + - + + + + + + + + + + - - - @@ -966,6 +963,15 @@ + + + + + + + + + @@ -1038,18 +1044,6 @@ - - - - - - - - - - - - @@ -1221,15 +1215,6 @@ - - - - - - - - - @@ -1257,6 +1242,15 @@ + + + + + + + + + @@ -1436,10 +1430,13 @@ - + - + + + + @@ -1583,10 +1580,13 @@ - + - + + + + @@ -1866,11 +1866,20 @@ - + - + - + + + + + + + + + + @@ -1950,11 +1959,20 @@ - + + + + + + + + + + - + - + @@ -2121,11 +2139,11 @@ - + - + - + @@ -2459,10 +2477,13 @@ - + - + + + + @@ -2916,6 +2937,15 @@ + + + + + + + + + @@ -3207,6 +3237,15 @@ + + + + + + + + + @@ -3362,10 +3401,13 @@ - + - + + + + @@ -3609,6 +3651,15 @@ + + + + + + + + + @@ -3849,6 +3900,15 @@ + + + + + + + + + @@ -4029,6 +4089,15 @@ + + + + + + + + + @@ -4512,6 +4581,24 @@ + + + + + + + + + + + + + + + + + + @@ -4548,6 +4635,15 @@ + + + + + + + + + @@ -4602,11 +4698,32 @@ + + + + + + + + + - + + + + + + + + + + + + + - + @@ -4640,10 +4757,13 @@ - + - + + + + @@ -4769,10 +4889,13 @@ - + - + + + + @@ -4796,10 +4919,13 @@ - + - + + + + @@ -4823,10 +4949,13 @@ - + - + + + + @@ -4850,10 +4979,13 @@ - + - + + + + @@ -4931,10 +5063,13 @@ - + - + + + + @@ -4949,10 +5084,13 @@ - `s from expanding the number of files TypeScript should add to a project.]]> + 's from expanding the number of files TypeScript should add to a project.]]> - '에서 확장하지 못하도록 합니다.]]> + '를 허용하지 않습니다.]]> + + `s from expanding the number of files TypeScript should add to a project.]]> + @@ -5241,11 +5379,11 @@ - + - + - + @@ -5360,10 +5498,13 @@ - + - + + + + @@ -5414,10 +5555,13 @@ - + - + + + + @@ -5441,10 +5585,13 @@ - + - + + + + @@ -5466,21 +5613,24 @@ - + - + - + - + - + + + + @@ -5495,19 +5645,13 @@ - - - - - - - - - - + - + + + + @@ -5585,10 +5729,13 @@ - + - + + + + @@ -5621,10 +5768,13 @@ - + - + + + + @@ -5766,6 +5916,15 @@ + + + + + + + + + @@ -6543,6 +6702,24 @@ + + + + + + + + + + + + + + + + + + @@ -6561,6 +6738,15 @@ + + + + + + + + + @@ -6869,10 +7055,13 @@ - + - + + + + @@ -7056,23 +7245,38 @@ - + - + - + + + + + + + + + + - - - - + - + - + + + + + + + + + + @@ -7125,15 +7329,6 @@ - - - - - - - - - @@ -7299,11 +7494,11 @@ - + - + - + @@ -7764,6 +7959,15 @@ + + + + + + + + + @@ -7989,15 +8193,6 @@ - - - - - - - - - @@ -8048,10 +8243,13 @@ - + - + + + + @@ -10224,15 +10422,6 @@ - - - - - - - - - @@ -10469,10 +10658,13 @@ - + - + + + + @@ -10548,6 +10740,24 @@ + + + + + + + + + + + + + + + + + + @@ -10674,6 +10884,24 @@ + + + + + + + + + + + + + + + + + + @@ -10746,6 +10974,15 @@ + + + + + + + + + ']]> @@ -10863,6 +11100,15 @@ + + + + + + + + + @@ -11633,10 +11879,13 @@ - + - + + + + @@ -11696,10 +11945,13 @@ - + - + + + + @@ -11768,19 +12020,25 @@ - + - + + + + - + + + + @@ -11858,10 +12116,13 @@ - + - + + + + @@ -11892,15 +12153,6 @@ - - - - - - - - - @@ -11921,10 +12173,13 @@ - + - + + + + @@ -11942,10 +12197,13 @@ - + - + + + + @@ -11958,6 +12216,15 @@ + + + + + + + + + @@ -12084,15 +12351,6 @@ - - - - - - - - - @@ -12233,10 +12491,13 @@ - + - + + + + @@ -12855,11 +13116,11 @@ - + - + - + @@ -13452,6 +13713,15 @@ + + + + + + + + + @@ -13626,6 +13896,15 @@ + + + + + + + + + @@ -13734,6 +14013,15 @@ + + + + + + + + + @@ -13947,15 +14235,6 @@ - - - - - - - - - @@ -13974,6 +14253,15 @@ + + + + + + + + + @@ -14598,6 +14886,15 @@ + + + + + + + + + @@ -14796,11 +15093,11 @@ - + - + - + @@ -14852,10 +15149,13 @@ - + - + + + + @@ -15267,6 +15567,15 @@ + + + + + + + + + @@ -15321,6 +15630,15 @@ + + + + + + + + + @@ -15357,6 +15675,15 @@ + + + + + + + + + @@ -15597,6 +15924,15 @@ + + + + + + + + + @@ -15663,6 +15999,15 @@ + + + + + + + + + @@ -16146,6 +16491,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/loc/lcl/plk/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/plk/diagnosticMessages/diagnosticMessages.generated.json.lcl index 74d9747f5b0b6..148cab39680f7 100644 --- a/src/loc/lcl/plk/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/plk/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -530,20 +530,11 @@ - + - + - - - - - - - - - - + @@ -845,15 +836,21 @@ - + - + - + + + + + + + + + + - - - @@ -956,6 +953,15 @@ + + + + + + + + + @@ -1028,18 +1034,6 @@ - - - - - - - - - - - - @@ -1211,15 +1205,6 @@ - - - - - - - - - @@ -1247,6 +1232,15 @@ + + + + + + + + + @@ -1426,10 +1420,13 @@ - + - + + + + @@ -1573,10 +1570,13 @@ - + + + + @@ -1856,11 +1856,20 @@ - + - + - + + + + + + + + + + @@ -1940,11 +1949,20 @@ - + + + + + + + + + + - + - + @@ -2111,11 +2129,11 @@ - + - + - + @@ -2449,10 +2467,13 @@ - + - + + + + @@ -2906,6 +2927,15 @@ + + + + + + + + + @@ -3197,6 +3227,15 @@ + + + + + + + + + @@ -3352,10 +3391,13 @@ - + + + + @@ -3599,6 +3641,15 @@ + + + + + + + + + @@ -3839,6 +3890,15 @@ + + + + + + + + + @@ -4019,6 +4079,15 @@ + + + + + + + + + @@ -4502,6 +4571,24 @@ + + + + + + + + + + + + + + + + + + @@ -4538,6 +4625,15 @@ + + + + + + + + + @@ -4592,11 +4688,32 @@ + + + + + + + + + - + + + + + + + + + + + + + - + @@ -4630,10 +4747,13 @@ - + + + + @@ -4759,10 +4879,13 @@ - + + + + @@ -4786,10 +4909,13 @@ - + + + + @@ -4813,10 +4939,13 @@ - + + + + @@ -4840,10 +4969,13 @@ - + - + + + + @@ -4921,10 +5053,13 @@ - + - + + + + @@ -4939,10 +5074,13 @@ - `s from expanding the number of files TypeScript should add to a project.]]> + 's from expanding the number of files TypeScript should add to a project.]]> ” na zwiększanie liczby plików, które powinny zostać dodane do projektu przez język TypeScript.]]> + + `s from expanding the number of files TypeScript should add to a project.]]> + @@ -5231,11 +5369,11 @@ - + - + - + @@ -5350,10 +5488,13 @@ - + + + + @@ -5404,10 +5545,13 @@ - + - + + + + @@ -5431,10 +5575,13 @@ - + + + + @@ -5456,9 +5603,9 @@ - + - + @@ -5467,10 +5614,13 @@ - + + + + @@ -5485,19 +5635,13 @@ - - - - - - - - - - + - + + + + @@ -5575,10 +5719,13 @@ - + - + + + + @@ -5611,10 +5758,13 @@ - + - + + + + @@ -5756,6 +5906,15 @@ + + + + + + + + + @@ -6533,6 +6692,24 @@ + + + + + + + + + + + + + + + + + + @@ -6551,6 +6728,15 @@ + + + + + + + + + @@ -6859,10 +7045,13 @@ - + - + + + + @@ -7046,23 +7235,38 @@ - + - + - + + + + + + + + + + - - - - + - + - + + + + + + + + + + @@ -7115,15 +7319,6 @@ - - - - - - - - - @@ -7289,11 +7484,11 @@ - + - + - + @@ -7754,6 +7949,15 @@ + + + + + + + + + @@ -7979,15 +8183,6 @@ - - - - - - - - - @@ -8038,10 +8233,13 @@ - + + + + @@ -10211,15 +10409,6 @@ - - - - - - - - - @@ -10456,10 +10645,13 @@ - + - + + + + @@ -10535,6 +10727,24 @@ + + + + + + + + + + + + + + + + + + @@ -10661,6 +10871,24 @@ + + + + + + + + + + + + + + + + + + @@ -10733,6 +10961,15 @@ + + + + + + + + + ']]> @@ -10850,6 +11087,15 @@ + + + + + + + + + @@ -11620,10 +11866,13 @@ - + + + + @@ -11683,10 +11932,13 @@ - + - + + + + @@ -11755,19 +12007,25 @@ - + + + + - + + + + @@ -11845,10 +12103,13 @@ - + + + + @@ -11879,15 +12140,6 @@ - - - - - - - - - @@ -11908,10 +12160,13 @@ - + - + + + + @@ -11929,10 +12184,13 @@ - + + + + @@ -11945,6 +12203,15 @@ + + + + + + + + + @@ -12071,15 +12338,6 @@ - - - - - - - - - @@ -12220,10 +12478,13 @@ - + + + + @@ -12842,11 +13103,11 @@ - + - + - + @@ -13439,6 +13700,15 @@ + + + + + + + + + @@ -13613,6 +13883,15 @@ + + + + + + + + + @@ -13721,6 +14000,15 @@ + + + + + + + + + @@ -13934,15 +14222,6 @@ - - - - - - - - - @@ -13961,6 +14240,15 @@ + + + + + + + + + @@ -14585,6 +14873,15 @@ + + + + + + + + + @@ -14783,11 +15080,11 @@ - + - + - + @@ -14839,10 +15136,13 @@ - + - + + + + @@ -15254,6 +15554,15 @@ + + + + + + + + + @@ -15308,6 +15617,15 @@ + + + + + + + + + @@ -15344,6 +15662,15 @@ + + + + + + + + + @@ -15584,6 +15911,15 @@ + + + + + + + + + @@ -15650,6 +15986,15 @@ + + + + + + + + + @@ -16133,6 +16478,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/loc/lcl/ptb/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/ptb/diagnosticMessages/diagnosticMessages.generated.json.lcl index adfe7311458b8..d66e5046b5dff 100644 --- a/src/loc/lcl/ptb/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/ptb/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -530,20 +530,11 @@ - + - + - - - - - - - - - - + @@ -845,15 +836,21 @@ - + - + - + + + + + + + + + + - - - @@ -956,6 +953,15 @@ + + + + + + + + + @@ -1028,18 +1034,6 @@ - - - - - - - - - - - - @@ -1211,15 +1205,6 @@ - - - - - - - - - @@ -1247,6 +1232,15 @@ + + + + + + + + + @@ -1429,10 +1423,13 @@ - + - + + + + @@ -1576,10 +1573,13 @@ - + + + + @@ -1859,11 +1859,20 @@ - + - + - + + + + + + + + + + @@ -1943,11 +1952,20 @@ - + + + + + + + + + + - + - + @@ -2114,11 +2132,11 @@ - + - + - + @@ -2452,10 +2470,13 @@ - + - + + + + @@ -2909,6 +2930,15 @@ + + + + + + + + + @@ -3200,6 +3230,15 @@ + + + + + + + + + @@ -3355,10 +3394,13 @@ - + - + + + + @@ -3602,6 +3644,15 @@ + + + + + + + + + @@ -3842,6 +3893,15 @@ + + + + + + + + + @@ -4022,6 +4082,15 @@ + + + + + + + + + @@ -4505,6 +4574,24 @@ + + + + + + + + + + + + + + + + + + @@ -4541,6 +4628,15 @@ + + + + + + + + + @@ -4595,11 +4691,32 @@ + + + + + + + + + - + + + + + + + + + + + + + - + @@ -4633,10 +4750,13 @@ - + + + + @@ -4762,10 +4882,13 @@ - + - + + + + @@ -4789,10 +4912,13 @@ - + - + + + + @@ -4816,10 +4942,13 @@ - + + + + @@ -4843,10 +4972,13 @@ - + - + + + + @@ -4924,10 +5056,13 @@ - + - + + + + @@ -4942,10 +5077,13 @@ - `s from expanding the number of files TypeScript should add to a project.]]> + 's from expanding the number of files TypeScript should add to a project.]]> - de expandir o número de arquivos que TypeScript deve adicionar a um projeto.]]> + de expandir o número de arquivos que TypeScript deve adicionar a um projeto.]]> + + `s from expanding the number of files TypeScript should add to a project.]]> + @@ -5234,11 +5372,11 @@ - + - + - + @@ -5353,10 +5491,13 @@ - + + + + @@ -5407,10 +5548,13 @@ - + - + + + + @@ -5434,10 +5578,13 @@ - + + + + @@ -5459,9 +5606,9 @@ - + - + @@ -5470,10 +5617,13 @@ - + + + + @@ -5488,19 +5638,13 @@ - - - - - - - - - - + - + + + + @@ -5578,10 +5722,13 @@ - + - + + + + @@ -5614,10 +5761,13 @@ - + - + + + + @@ -5759,6 +5909,15 @@ + + + + + + + + + @@ -6536,6 +6695,24 @@ + + + + + + + + + + + + + + + + + + @@ -6554,6 +6731,15 @@ + + + + + + + + + @@ -6862,10 +7048,13 @@ - + - + + + + @@ -7049,23 +7238,38 @@ - + - + - + + + + + + + + + + - - - - + - + - + + + + + + + + + + @@ -7118,15 +7322,6 @@ - - - - - - - - - @@ -7292,11 +7487,11 @@ - + - + - + @@ -7757,6 +7952,15 @@ + + + + + + + + + @@ -7982,15 +8186,6 @@ - - - - - - - - - @@ -8041,10 +8236,13 @@ - + + + + @@ -10214,15 +10412,6 @@ - - - - - - - - - @@ -10459,10 +10648,13 @@ - + - + + + + @@ -10538,6 +10730,24 @@ + + + + + + + + + + + + + + + + + + @@ -10664,6 +10874,24 @@ + + + + + + + + + + + + + + + + + + @@ -10736,6 +10964,15 @@ + + + + + + + + + ']]> @@ -10853,6 +11090,15 @@ + + + + + + + + + @@ -11623,10 +11869,13 @@ - + + + + @@ -11686,10 +11935,13 @@ - + - + + + + @@ -11758,19 +12010,25 @@ - + - + + + + - + + + + @@ -11848,10 +12106,13 @@ - + - + + + + @@ -11882,15 +12143,6 @@ - - - - - - - - - @@ -11911,10 +12163,13 @@ - + - + + + + @@ -11932,10 +12187,13 @@ - + - + + + + @@ -11948,6 +12206,15 @@ + + + + + + + + + @@ -12074,15 +12341,6 @@ - - - - - - - - - @@ -12223,10 +12481,13 @@ - + + + + @@ -12845,11 +13106,11 @@ - + - + - + @@ -13442,6 +13703,15 @@ + + + + + + + + + @@ -13616,6 +13886,15 @@ + + + + + + + + + @@ -13724,6 +14003,15 @@ + + + + + + + + + @@ -13937,15 +14225,6 @@ - - - - - - - - - @@ -13964,6 +14243,15 @@ + + + + + + + + + @@ -14588,6 +14876,15 @@ + + + + + + + + + @@ -14786,11 +15083,11 @@ - + - + - + @@ -14842,10 +15139,13 @@ - + + + + @@ -15257,6 +15557,15 @@ + + + + + + + + + @@ -15311,6 +15620,15 @@ + + + + + + + + + @@ -15347,6 +15665,15 @@ + + + + + + + + + @@ -15587,6 +15914,15 @@ + + + + + + + + + @@ -15653,6 +15989,15 @@ + + + + + + + + + @@ -16136,6 +16481,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/loc/lcl/rus/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/rus/diagnosticMessages/diagnosticMessages.generated.json.lcl index 2d66b99d92edb..f9c3e47e7445d 100644 --- a/src/loc/lcl/rus/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/rus/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -536,20 +536,11 @@ - + - + - - - - - - - - - - + @@ -854,15 +845,21 @@ - + - + - + + + + + + + + + + - - - @@ -965,6 +962,15 @@ + + + + + + + + + @@ -1037,18 +1043,6 @@ - - - - - - - - - - - - @@ -1220,15 +1214,6 @@ - - - - - - - - - @@ -1256,6 +1241,15 @@ + + + + + + + + + @@ -1435,10 +1429,13 @@ - + - + + + + @@ -1582,10 +1579,13 @@ - + + + + @@ -1865,11 +1865,20 @@ - + - + - + + + + + + + + + + @@ -1949,11 +1958,20 @@ - + + + + + + + + + + - + - + @@ -2120,11 +2138,11 @@ - + - + - + @@ -2458,10 +2476,13 @@ - + - + + + + @@ -2915,6 +2936,15 @@ + + + + + + + + + @@ -3206,6 +3236,15 @@ + + + + + + + + + @@ -3361,10 +3400,13 @@ - + - + + + + @@ -3608,6 +3650,15 @@ + + + + + + + + + @@ -3848,6 +3899,15 @@ + + + + + + + + + @@ -4028,6 +4088,15 @@ + + + + + + + + + @@ -4511,6 +4580,24 @@ + + + + + + + + + + + + + + + + + + @@ -4547,6 +4634,15 @@ + + + + + + + + + @@ -4601,11 +4697,32 @@ + + + + + + + + + - + + + + + + + + + + + + + - + @@ -4639,10 +4756,13 @@ - + + + + @@ -4768,10 +4888,13 @@ - + + + + @@ -4795,10 +4918,13 @@ - + - + + + + @@ -4822,10 +4948,13 @@ - + - + + + + @@ -4849,10 +4978,13 @@ - + - + + + + @@ -4930,10 +5062,13 @@ - + - + + + + @@ -4948,10 +5083,13 @@ - `s from expanding the number of files TypeScript should add to a project.]]> + 's from expanding the number of files TypeScript should add to a project.]]> - " увеличивать количество файлов, которые TypeScript должен добавить в проект.]]> + " увеличивать количество файлов, которые TypeScript должен добавить в проект.]]> + + `s from expanding the number of files TypeScript should add to a project.]]> + @@ -5240,11 +5378,11 @@ - + - + - + @@ -5359,10 +5497,13 @@ - + + + + @@ -5413,10 +5554,13 @@ - + - + + + + @@ -5440,10 +5584,13 @@ - + - + + + + @@ -5465,21 +5612,24 @@ - + - + - + - + - + + + + @@ -5494,19 +5644,13 @@ - - - - - - - - - - + - + + + + @@ -5584,10 +5728,13 @@ - + - + + + + @@ -5620,10 +5767,13 @@ - + - + + + + @@ -5765,6 +5915,15 @@ + + + + + + + + + @@ -6542,6 +6701,24 @@ + + + + + + + + + + + + + + + + + + @@ -6560,6 +6737,15 @@ + + + + + + + + + @@ -6868,10 +7054,13 @@ - + + + + @@ -7055,23 +7244,38 @@ - + - + - + + + + + + + + + + - - - - + - + - + + + + + + + + + + @@ -7124,15 +7328,6 @@ - - - - - - - - - @@ -7298,11 +7493,11 @@ - + - + - + @@ -7763,6 +7958,15 @@ + + + + + + + + + @@ -7988,15 +8192,6 @@ - - - - - - - - - @@ -8047,10 +8242,13 @@ - + + + + @@ -10223,15 +10421,6 @@ - - - - - - - - - @@ -10468,10 +10657,13 @@ - + - + + + + @@ -10547,6 +10739,24 @@ + + + + + + + + + + + + + + + + + + @@ -10673,6 +10883,24 @@ + + + + + + + + + + + + + + + + + + @@ -10745,6 +10973,15 @@ + + + + + + + + + ']]> @@ -10862,6 +11099,15 @@ + + + + + + + + + @@ -11632,10 +11878,13 @@ - + + + + @@ -11695,10 +11944,13 @@ - + - + + + + @@ -11767,19 +12019,25 @@ - + + + + - + + + + @@ -11857,10 +12115,13 @@ - + + + + @@ -11891,15 +12152,6 @@ - - - - - - - - - @@ -11920,10 +12172,13 @@ - + + + + @@ -11941,10 +12196,13 @@ - + + + + @@ -11957,6 +12215,15 @@ + + + + + + + + + @@ -12083,15 +12350,6 @@ - - - - - - - - - @@ -12232,10 +12490,13 @@ - + - + + + + @@ -12854,11 +13115,11 @@ - + - + - + @@ -13451,6 +13712,15 @@ + + + + + + + + + @@ -13625,6 +13895,15 @@ + + + + + + + + + @@ -13733,6 +14012,15 @@ + + + + + + + + + @@ -13946,15 +14234,6 @@ - - - - - - - - - @@ -13973,6 +14252,15 @@ + + + + + + + + + @@ -14597,6 +14885,15 @@ + + + + + + + + + @@ -14795,11 +15092,11 @@ - + - + - + @@ -14851,10 +15148,13 @@ - + + + + @@ -15266,6 +15566,15 @@ + + + + + + + + + @@ -15320,6 +15629,15 @@ + + + + + + + + + @@ -15356,6 +15674,15 @@ + + + + + + + + + @@ -15596,6 +15923,15 @@ + + + + + + + + + @@ -15662,6 +15998,15 @@ + + + + + + + + + @@ -16145,6 +16490,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/loc/lcl/trk/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/trk/diagnosticMessages/diagnosticMessages.generated.json.lcl index 44acf022a20b1..9f6f2861b6ef6 100644 --- a/src/loc/lcl/trk/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/trk/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -530,20 +530,11 @@ - + - + - - - - - - - - - - + @@ -848,15 +839,21 @@ - + - + - + + + + + + + + + + - - - @@ -959,6 +956,15 @@ + + + + + + + + + @@ -1031,18 +1037,6 @@ - - - - - - - - - - - - @@ -1214,15 +1208,6 @@ - - - - - - - - - @@ -1250,6 +1235,15 @@ + + + + + + + + + @@ -1429,10 +1423,13 @@ - + - + + + + @@ -1576,10 +1573,13 @@ - + - + + + + @@ -1859,11 +1859,20 @@ - + - + - + + + + + + + + + + @@ -1943,11 +1952,20 @@ - + + + + + + + + + + - + - + @@ -2114,11 +2132,11 @@ - + - + - + @@ -2452,10 +2470,13 @@ - + - + + + + @@ -2909,6 +2930,15 @@ + + + + + + + + + @@ -3200,6 +3230,15 @@ + + + + + + + + + @@ -3355,10 +3394,13 @@ - + - + + + + @@ -3602,6 +3644,15 @@ + + + + + + + + + @@ -3842,6 +3893,15 @@ + + + + + + + + + @@ -4022,6 +4082,15 @@ + + + + + + + + + @@ -4505,6 +4574,24 @@ + + + + + + + + + + + + + + + + + + @@ -4541,6 +4628,15 @@ + + + + + + + + + @@ -4595,11 +4691,32 @@ + + + + + + + + + - + + + + + + + + + + + + + - + @@ -4633,10 +4750,13 @@ - + - + + + + @@ -4762,10 +4882,13 @@ - + - + + + + @@ -4789,10 +4912,13 @@ - + - + + + + @@ -4816,10 +4942,13 @@ - + - + + + + @@ -4843,10 +4972,13 @@ - + - + + + + @@ -4924,10 +5056,13 @@ - + - + + + + @@ -4942,10 +5077,13 @@ - `s from expanding the number of files TypeScript should add to a project.]]> + 's from expanding the number of files TypeScript should add to a project.]]> - ` öğelerinin, TypeScript’in bir projeye eklemesi gereken dosya sayısını artırmasını engelleyin.]]> + ' ifadelerinin TypeScript'in projeye eklemesi gereken dosya sayısını artırmasına izin verme.]]> + + `s from expanding the number of files TypeScript should add to a project.]]> + @@ -5234,11 +5372,11 @@ - + - + - + @@ -5353,10 +5491,13 @@ - + - + + + + @@ -5407,10 +5548,13 @@ - + - + + + + @@ -5434,10 +5578,13 @@ - + - + + + + @@ -5459,21 +5606,24 @@ - + - + - + - + - + + + + @@ -5488,19 +5638,13 @@ - - - - - - - - - - + - + + + + @@ -5578,10 +5722,13 @@ - + - + + + + @@ -5614,10 +5761,13 @@ - + - + + + + @@ -5759,6 +5909,15 @@ + + + + + + + + + @@ -6536,6 +6695,24 @@ + + + + + + + + + + + + + + + + + + @@ -6554,6 +6731,15 @@ + + + + + + + + + @@ -6862,10 +7048,13 @@ - + - + + + + @@ -7049,23 +7238,38 @@ - + - + - + + + + + + + + + + - - - - + - + - + + + + + + + + + + @@ -7118,15 +7322,6 @@ - - - - - - - - - @@ -7292,11 +7487,11 @@ - + - + - + @@ -7757,6 +7952,15 @@ + + + + + + + + + @@ -7982,15 +8186,6 @@ - - - - - - - - - @@ -8041,10 +8236,13 @@ - + - + + + + @@ -10217,15 +10415,6 @@ - - - - - - - - - @@ -10462,10 +10651,13 @@ - + - + + + + @@ -10541,6 +10733,24 @@ + + + + + + + + + + + + + + + + + + @@ -10667,6 +10877,24 @@ + + + + + + + + + + + + + + + + + + @@ -10739,6 +10967,15 @@ + + + + + + + + + ']]> @@ -10856,6 +11093,15 @@ + + + + + + + + + @@ -11626,10 +11872,13 @@ - + - + + + + @@ -11689,10 +11938,13 @@ - + - + + + + @@ -11761,19 +12013,25 @@ - + - + + + + - + - + + + + @@ -11851,10 +12109,13 @@ - + - + + + + @@ -11885,15 +12146,6 @@ - - - - - - - - - @@ -11914,10 +12166,13 @@ - + - + + + + @@ -11935,10 +12190,13 @@ - + - + + + + @@ -11951,6 +12209,15 @@ + + + + + + + + + @@ -12077,15 +12344,6 @@ - - - - - - - - - @@ -12226,10 +12484,13 @@ - + - + + + + @@ -12848,11 +13109,11 @@ - + - + - + @@ -13445,6 +13706,15 @@ + + + + + + + + + @@ -13619,6 +13889,15 @@ + + + + + + + + + @@ -13727,6 +14006,15 @@ + + + + + + + + + @@ -13940,15 +14228,6 @@ - - - - - - - - - @@ -13967,6 +14246,15 @@ + + + + + + + + + @@ -14591,6 +14879,15 @@ + + + + + + + + + @@ -14789,11 +15086,11 @@ - + - + - + @@ -14845,10 +15142,13 @@ - + - + + + + @@ -15260,6 +15560,15 @@ + + + + + + + + + @@ -15314,6 +15623,15 @@ + + + + + + + + + @@ -15350,6 +15668,15 @@ + + + + + + + + + @@ -15590,6 +15917,15 @@ + + + + + + + + + @@ -15656,6 +15992,15 @@ + + + + + + + + + @@ -16139,6 +16484,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/server/editorServices.ts b/src/server/editorServices.ts index 50402fa2c12b3..5a81aff9cc461 100644 --- a/src/server/editorServices.ts +++ b/src/server/editorServices.ts @@ -49,24 +49,23 @@ namespace ts.server { readonly data: ProjectInfoTelemetryEventData; } - /* - * __GDPR__ - * "projectInfo" : { - * "${include}": ["${TypeScriptCommonProperties}"], - * "projectId": { "classification": "EndUserPseudonymizedInformation", "purpose": "FeatureInsight", "endpoint": "ProjectId" }, - * "fileStats": { "classification": "SystemMetaData", "purpose": "FeatureInsight" }, - * "compilerOptions": { "classification": "SystemMetaData", "purpose": "FeatureInsight" }, - * "extends": { "classification": "SystemMetaData", "purpose": "FeatureInsight" }, - * "files": { "classification": "SystemMetaData", "purpose": "FeatureInsight" }, - * "include": { "classification": "SystemMetaData", "purpose": "FeatureInsight" }, - * "exclude": { "classification": "SystemMetaData", "purpose": "FeatureInsight" }, - * "compileOnSave": { "classification": "SystemMetaData", "purpose": "FeatureInsight" }, - * "typeAcquisition": { "classification": "SystemMetaData", "purpose": "FeatureInsight" }, - * "configFileName": { "classification": "SystemMetaData", "purpose": "FeatureInsight" }, - * "projectType": { "classification": "SystemMetaData", "purpose": "FeatureInsight" }, - * "languageServiceEnabled": { "classification": "SystemMetaData", "purpose": "FeatureInsight" }, - * "version": { "classification": "SystemMetaData", "purpose": "FeatureInsight" } - * } + /* __GDPR__ + "projectInfo" : { + "${include}": ["${TypeScriptCommonProperties}"], + "projectId": { "classification": "EndUserPseudonymizedInformation", "purpose": "FeatureInsight", "endpoint": "ProjectId" }, + "fileStats": { "classification": "SystemMetaData", "purpose": "FeatureInsight" }, + "compilerOptions": { "classification": "SystemMetaData", "purpose": "FeatureInsight" }, + "extends": { "classification": "SystemMetaData", "purpose": "FeatureInsight" }, + "files": { "classification": "SystemMetaData", "purpose": "FeatureInsight" }, + "include": { "classification": "SystemMetaData", "purpose": "FeatureInsight" }, + "exclude": { "classification": "SystemMetaData", "purpose": "FeatureInsight" }, + "compileOnSave": { "classification": "SystemMetaData", "purpose": "FeatureInsight" }, + "typeAcquisition": { "classification": "SystemMetaData", "purpose": "FeatureInsight" }, + "configFileName": { "classification": "SystemMetaData", "purpose": "FeatureInsight" }, + "projectType": { "classification": "SystemMetaData", "purpose": "FeatureInsight" }, + "languageServiceEnabled": { "classification": "SystemMetaData", "purpose": "FeatureInsight" }, + "version": { "classification": "SystemMetaData", "purpose": "FeatureInsight" } + } */ export interface ProjectInfoTelemetryEventData { /** Cryptographically secure hash of project file location. */ @@ -2063,6 +2062,7 @@ namespace ts.server { /* @internal */ createConfiguredProject(configFileName: NormalizedPath) { + tracing?.instant(tracing.Phase.Session, "createConfiguredProject", { configFilePath: configFileName }); this.logger.info(`Creating configuration project ${configFileName}`); const canonicalConfigFilePath = asNormalizedPath(this.toCanonicalFileName(configFileName)); let configFileExistenceInfo = this.configFileExistenceInfoCache.get(canonicalConfigFilePath); @@ -2120,6 +2120,7 @@ namespace ts.server { */ /* @internal */ private loadConfiguredProject(project: ConfiguredProject, reason: string) { + tracing?.push(tracing.Phase.Session, "loadConfiguredProject", { configFilePath: project.canonicalConfigFilePath }); this.sendProjectLoadingStartEvent(project, reason); // Read updated contents from disk @@ -2161,6 +2162,7 @@ namespace ts.server { project.enablePluginsWithOptions(compilerOptions, this.currentPluginConfigOverrides); const filesToAdd = parsedCommandLine.fileNames.concat(project.getExternalFiles()); this.updateRootAndOptionsOfNonInferredProject(project, filesToAdd, fileNamePropertyReader, compilerOptions, parsedCommandLine.typeAcquisition!, parsedCommandLine.compileOnSave, parsedCommandLine.watchOptions); + tracing?.pop(); } /*@internal*/ diff --git a/src/server/moduleSpecifierCache.ts b/src/server/moduleSpecifierCache.ts index eed821a99c627..e5114fb64460d 100644 --- a/src/server/moduleSpecifierCache.ts +++ b/src/server/moduleSpecifierCache.ts @@ -9,12 +9,12 @@ namespace ts.server { let cache: ESMap | undefined; let currentKey: string | undefined; const result: ModuleSpecifierCache = { - get(fromFileName, toFileName, preferences) { - if (!cache || currentKey !== key(fromFileName, preferences)) return undefined; + get(fromFileName, toFileName, preferences, options) { + if (!cache || currentKey !== key(fromFileName, preferences, options)) return undefined; return cache.get(toFileName); }, - set(fromFileName, toFileName, preferences, modulePaths, moduleSpecifiers) { - ensureCache(fromFileName, preferences).set(toFileName, createInfo(modulePaths, moduleSpecifiers, /*isAutoImportable*/ true)); + set(fromFileName, toFileName, preferences, options, modulePaths, moduleSpecifiers) { + ensureCache(fromFileName, preferences, options).set(toFileName, createInfo(modulePaths, moduleSpecifiers, /*isAutoImportable*/ true)); // If any module specifiers were generated based off paths in node_modules, // a package.json file in that package was read and is an input to the cached. @@ -36,8 +36,8 @@ namespace ts.server { } } }, - setModulePaths(fromFileName, toFileName, preferences, modulePaths) { - const cache = ensureCache(fromFileName, preferences); + setModulePaths(fromFileName, toFileName, preferences, options, modulePaths) { + const cache = ensureCache(fromFileName, preferences, options); const info = cache.get(toFileName); if (info) { info.modulePaths = modulePaths; @@ -46,8 +46,8 @@ namespace ts.server { cache.set(toFileName, createInfo(modulePaths, /*moduleSpecifiers*/ undefined, /*isAutoImportable*/ undefined)); } }, - setIsAutoImportable(fromFileName, toFileName, preferences, isAutoImportable) { - const cache = ensureCache(fromFileName, preferences); + setIsAutoImportable(fromFileName, toFileName, preferences, options, isAutoImportable) { + const cache = ensureCache(fromFileName, preferences, options); const info = cache.get(toFileName); if (info) { info.isAutoImportable = isAutoImportable; @@ -71,8 +71,8 @@ namespace ts.server { } return result; - function ensureCache(fromFileName: Path, preferences: UserPreferences) { - const newKey = key(fromFileName, preferences); + function ensureCache(fromFileName: Path, preferences: UserPreferences, options: ModuleSpecifierOptions) { + const newKey = key(fromFileName, preferences, options); if (cache && (currentKey !== newKey)) { result.clear(); } @@ -80,8 +80,8 @@ namespace ts.server { return cache ||= new Map(); } - function key(fromFileName: Path, preferences: UserPreferences) { - return `${fromFileName},${preferences.importModuleSpecifierEnding},${preferences.importModuleSpecifierPreference}`; + function key(fromFileName: Path, preferences: UserPreferences, options: ModuleSpecifierOptions) { + return `${fromFileName},${preferences.importModuleSpecifierEnding},${preferences.importModuleSpecifierPreference},${options.overrideImportMode}`; } function createInfo( diff --git a/src/server/project.ts b/src/server/project.ts index 197585ff86b91..cabeb6d1e62e2 100644 --- a/src/server/project.ts +++ b/src/server/project.ts @@ -476,12 +476,16 @@ namespace ts.server { return this.resolutionCache.resolveModuleNames(moduleNames, containingFile, reusedNames, redirectedReference, containingSourceFile); } + getModuleResolutionCache(): ModuleResolutionCache | undefined { + return this.resolutionCache.getModuleResolutionCache(); + } + getResolvedModuleWithFailedLookupLocationsFromCache(moduleName: string, containingFile: string, resolutionMode?: ModuleKind.CommonJS | ModuleKind.ESNext): ResolvedModuleWithFailedLookupLocations | undefined { return this.resolutionCache.getResolvedModuleWithFailedLookupLocationsFromCache(moduleName, containingFile, resolutionMode); } - resolveTypeReferenceDirectives(typeDirectiveNames: string[], containingFile: string, redirectedReference?: ResolvedProjectReference): (ResolvedTypeReferenceDirective | undefined)[] { - return this.resolutionCache.resolveTypeReferenceDirectives(typeDirectiveNames, containingFile, redirectedReference); + resolveTypeReferenceDirectives(typeDirectiveNames: string[] | FileReference[], containingFile: string, redirectedReference?: ResolvedProjectReference, _options?: CompilerOptions, containingFileMode?: SourceFile["impliedNodeFormat"] | undefined): (ResolvedTypeReferenceDirective | undefined)[] { + return this.resolutionCache.resolveTypeReferenceDirectives(typeDirectiveNames, containingFile, redirectedReference, containingFileMode); } directoryExists(path: string): boolean { @@ -1031,11 +1035,17 @@ namespace ts.server { } } + /* @internal */ + onDiscoveredSymlink() { + this.hasAddedOrRemovedSymlinks = true; + } + /** * Updates set of files that contribute to this project * @returns: true if set of files in the project stays the same and false - otherwise. */ updateGraph(): boolean { + tracing?.push(tracing.Phase.Session, "updateGraph", { name: this.projectName, kind: ProjectKind[this.projectKind] }); perfLogger.logStartUpdateGraph(); this.resolutionCache.startRecordingFilesWithChangedResolutions(); @@ -1083,6 +1093,7 @@ namespace ts.server { this.getPackageJsonAutoImportProvider(); } perfLogger.logStopUpdateGraph(); + tracing?.pop(); return !hasNewProgram; } @@ -1119,7 +1130,9 @@ namespace ts.server { this.resolutionCache.startCachingPerDirectoryResolution(); this.program = this.languageService.getProgram(); // TODO: GH#18217 this.dirty = false; + tracing?.push(tracing.Phase.Session, "finishCachingPerDirectoryResolution"); this.resolutionCache.finishCachingPerDirectoryResolution(); + tracing?.pop(); Debug.assert(oldProgram === undefined || this.program !== undefined); @@ -1669,6 +1682,11 @@ namespace ts.server { return packageJsons; } + /* @internal */ + getPackageJsonCache() { + return this.projectService.packageJsonCache; + } + /*@internal*/ getCachedExportInfoMap() { return this.exportMapCache ||= createCacheableExportInfoMap(this); @@ -1733,13 +1751,16 @@ namespace ts.server { const dependencySelection = this.includePackageJsonAutoImports(); if (dependencySelection) { + tracing?.push(tracing.Phase.Session, "getPackageJsonAutoImportProvider"); const start = timestamp(); this.autoImportProviderHost = AutoImportProviderProject.create(dependencySelection, this, this.getModuleResolutionHostForAutoImportProvider(), this.documentRegistry); if (this.autoImportProviderHost) { updateProjectIfDirty(this.autoImportProviderHost); this.sendPerformanceEvent("CreatePackageJsonAutoImportProvider", timestamp() - start); + tracing?.pop(); return this.autoImportProviderHost.getCurrentProgram(); } + tracing?.pop(); } } @@ -1762,9 +1783,13 @@ namespace ts.server { } function getUnresolvedImports(program: Program, cachedUnresolvedImportsPerFile: ESMap): SortedReadonlyArray { + const sourceFiles = program.getSourceFiles(); + tracing?.push(tracing.Phase.Session, "getUnresolvedImports", { count: sourceFiles.length }); const ambientModules = program.getTypeChecker().getAmbientModules().map(mod => stripQuotes(mod.getName())); - return sortAndDeduplicate(flatMap(program.getSourceFiles(), sourceFile => + const result = sortAndDeduplicate(flatMap(sourceFiles, sourceFile => extractUnresolvedImportsFromSourceFile(sourceFile, ambientModules, cachedUnresolvedImportsPerFile))); + tracing?.pop(); + return result; } function extractUnresolvedImportsFromSourceFile(file: SourceFile, ambientModules: readonly string[], cachedUnresolvedImportsPerFile: ESMap): readonly string[] { return getOrUpdate(cachedUnresolvedImportsPerFile, file.path, () => { @@ -1910,6 +1935,7 @@ namespace ts.server { return ts.emptyArray; } + const start = timestamp(); let dependencyNames: Set | undefined; let rootNames: string[] | undefined; const rootFileName = combinePaths(hostProject.currentDirectory, inferredTypesContainingFile); @@ -1919,39 +1945,70 @@ namespace ts.server { packageJson.peerDependencies?.forEach((_, dependencyName) => addDependency(dependencyName)); } + let dependenciesAdded = 0; if (dependencyNames) { - const resolutions = mapDefined(arrayFrom(dependencyNames.keys()), name => { - const types = resolveTypeReferenceDirective( + const symlinkCache = hostProject.getSymlinkCache(); + for (const name of arrayFrom(dependencyNames.keys())) { + // Avoid creating a large project that would significantly slow down time to editor interactivity + if (dependencySelection === PackageJsonAutoImportPreference.Auto && dependenciesAdded > this.maxDependencies) { + hostProject.log(`AutoImportProviderProject: attempted to add more than ${this.maxDependencies} dependencies. Aborting.`); + return ts.emptyArray; + } + + // 1. Try to load from the implementation package. For many dependencies, the + // package.json will exist, but the package will not contain any typings, + // so `entrypoints` will be undefined. In that case, or if the dependency + // is missing altogether, we will move on to trying the @types package (2). + const packageJson = resolvePackageNameToPackageJson( name, - rootFileName, + hostProject.currentDirectory, compilerOptions, - moduleResolutionHost); - - if (types.resolvedTypeReferenceDirective) { - return types.resolvedTypeReferenceDirective; - } - if (compilerOptions.allowJs && compilerOptions.maxNodeModuleJsDepth) { - return tryResolveJSModule(name, hostProject.currentDirectory, moduleResolutionHost); + moduleResolutionHost, + program.getModuleResolutionCache()); + if (packageJson) { + const entrypoints = getRootNamesFromPackageJson(packageJson, program, symlinkCache); + if (entrypoints) { + rootNames = concatenate(rootNames, entrypoints); + dependenciesAdded += entrypoints.length ? 1 : 0; + continue; + } } - }); - const symlinkCache = hostProject.getSymlinkCache(); - for (const resolution of resolutions) { - if (!resolution.resolvedFileName) continue; - const { resolvedFileName, originalPath } = resolution; - if (!program.getSourceFile(resolvedFileName) && (!originalPath || !program.getSourceFile(originalPath))) { - rootNames = append(rootNames, resolvedFileName); - // Avoid creating a large project that would significantly slow down time to editor interactivity - if (dependencySelection === PackageJsonAutoImportPreference.Auto && rootNames.length > this.maxDependencies) { - return ts.emptyArray; - } - if (originalPath) { - symlinkCache.setSymlinkedDirectoryFromSymlinkedFile(originalPath, resolvedFileName); + // 2. Try to load from the @types package in the tree and in the global + // typings cache location, if enabled. + const done = forEach([hostProject.currentDirectory, hostProject.getGlobalTypingsCacheLocation()], directory => { + if (directory) { + const typesPackageJson = resolvePackageNameToPackageJson( + `@types/${name}`, + directory, + compilerOptions, + moduleResolutionHost, + program.getModuleResolutionCache()); + if (typesPackageJson) { + const entrypoints = getRootNamesFromPackageJson(typesPackageJson, program, symlinkCache); + rootNames = concatenate(rootNames, entrypoints); + dependenciesAdded += entrypoints?.length ? 1 : 0; + return true; + } } + }); + + if (done) continue; + + // 3. If the @types package did not exist and the user has settings that + // allow processing JS from node_modules, go back to the implementation + // package and load the JS. + if (packageJson && compilerOptions.allowJs && compilerOptions.maxNodeModuleJsDepth) { + const entrypoints = getRootNamesFromPackageJson(packageJson, program, symlinkCache, /*allowJs*/ true); + rootNames = concatenate(rootNames, entrypoints); + dependenciesAdded += entrypoints?.length ? 1 : 0; } } } + if (rootNames?.length) { + hostProject.log(`AutoImportProviderProject: found ${rootNames.length} root files in ${dependenciesAdded} dependencies in ${timestamp() - start} ms`); + } return rootNames || ts.emptyArray; function addDependency(dependency: string) { @@ -1959,6 +2016,33 @@ namespace ts.server { (dependencyNames || (dependencyNames = new Set())).add(dependency); } } + + type PackageJsonInfo = NonNullable>; + function getRootNamesFromPackageJson(packageJson: PackageJsonInfo, program: Program, symlinkCache: SymlinkCache, resolveJs?: boolean) { + const entrypoints = getEntrypointsFromPackageJsonInfo( + packageJson, + compilerOptions, + moduleResolutionHost, + program.getModuleResolutionCache(), + resolveJs); + if (entrypoints) { + const real = moduleResolutionHost.realpath?.(packageJson.packageDirectory); + const isSymlink = real && real !== packageJson.packageDirectory; + if (isSymlink) { + symlinkCache.setSymlinkedDirectory(packageJson.packageDirectory, { + real, + realPath: hostProject.toPath(real), + }); + } + + return mapDefined(entrypoints, entrypoint => { + const resolvedFileName = isSymlink ? entrypoint.replace(packageJson.packageDirectory, real) : entrypoint; + if (!program.getSourceFile(resolvedFileName) && !(isSymlink && program.getSourceFile(entrypoint))) { + return resolvedFileName; + } + }); + } + } } /*@internal*/ @@ -2093,6 +2177,11 @@ namespace ts.server { getSymlinkCache() { return this.hostProject.getSymlinkCache(); } + + /*@internal*/ + getModuleResolutionCache() { + return this.hostProject.getCurrentProgram()?.getModuleResolutionCache(); + } } /** diff --git a/src/server/protocol.ts b/src/server/protocol.ts index 67d6fda2a3b1b..426eccb2b1325 100644 --- a/src/server/protocol.ts +++ b/src/server/protocol.ts @@ -2289,7 +2289,11 @@ namespace ts.server.protocol { /** * Human-readable description of the `source`. */ - sourceDisplay?: SymbolDisplayPart[]; + sourceDisplay?: SymbolDisplayPart[]; + /** + * Additional details for the label. + */ + labelDetails?: CompletionEntryLabelDetails; /** * If true, this completion should be highlighted as recommended. There will only be one of these. * This will be set when we know the user should write an expression with a certain type and that type is an enum or constructable class. @@ -2319,6 +2323,21 @@ namespace ts.server.protocol { data?: unknown; } + export interface CompletionEntryLabelDetails { + /** + * An optional string which is rendered less prominently directly after + * {@link CompletionEntry.name name}, without any spacing. Should be + * used for function signatures or type annotations. + */ + detail?: string; + /** + * An optional string which is rendered less prominently after + * {@link CompletionEntryLabelDetails.detail}. Should be used for fully qualified + * names or file path. + */ + description?: string; + } + /** * Additional completion entry details, available on demand */ @@ -3199,14 +3218,32 @@ namespace ts.server.protocol { payload: TypingsInstalledTelemetryEventPayload; } - /* - * __GDPR__ - * "typingsinstalled" : { - * "${include}": ["${TypeScriptCommonProperties}"], - * "installedPackages": { "classification": "PublicNonPersonalData", "purpose": "FeatureInsight" }, - * "installSuccess": { "classification": "SystemMetaData", "purpose": "FeatureInsight" }, - * "typingsInstallerVersion": { "classification": "SystemMetaData", "purpose": "FeatureInsight" } - * } + // A __GDPR__FRAGMENT__ has no meaning until it is ${include}d by a __GDPR__ comment, at which point + // the included properties are effectively inlined into the __GDPR__ declaration. In this case, for + // example, any __GDPR__ comment including the TypeScriptCommonProperties will be updated with an + // additional version property with the classification below. Obviously, the purpose of such a construct + // is to reduce duplication and keep multiple use sites consistent (e.g. by making sure that all reflect + // any newly added TypeScriptCommonProperties). Unfortunately, the system has limits - in particular, + // these reusable __GDPR__FRAGMENT__s are not accessible across repo boundaries. Therefore, even though + // the code for adding the common properties (i.e. version), along with the corresponding __GDPR__FRAGMENT__, + // lives in the VS Code repo (see https://github.com/microsoft/vscode/blob/main/extensions/typescript-language-features/src/utils/telemetry.ts) + // we have to duplicate it here. It would be nice to keep them in sync, but the only likely failure mode + // is adding a property to the VS Code repro but not here and the only consequence would be having that + // property suppressed on the events (i.e. __GDPT__ comments) in this repo that reference the out-of-date + // local __GDPR__FRAGMENT__. + /* __GDPR__FRAGMENT__ + "TypeScriptCommonProperties" : { + "version" : { "classification": "SystemMetaData", "purpose": "FeatureInsight" } + } + */ + + /* __GDPR__ + "typingsinstalled" : { + "${include}": ["${TypeScriptCommonProperties}"], + "installedPackages": { "classification": "PublicNonPersonalData", "purpose": "FeatureInsight" }, + "installSuccess": { "classification": "SystemMetaData", "purpose": "FeatureInsight" }, + "typingsInstallerVersion": { "classification": "SystemMetaData", "purpose": "FeatureInsight" } + } */ export interface TypingsInstalledTelemetryEventPayload { /** @@ -3381,6 +3418,25 @@ namespace ts.server.protocol { * values, with insertion text to replace preceding `.` tokens with `?.`. */ readonly includeAutomaticOptionalChainCompletions?: boolean; + /** + * If enabled, completions for class members (e.g. methods and properties) will include + * a whole declaration for the member. + * E.g., `class A { f| }` could be completed to `class A { foo(): number {} }`, instead of + * `class A { foo }`. + */ + readonly includeCompletionsWithClassMemberSnippets?: boolean; + /** + * If enabled, object literal methods will have a method declaration completion entry in addition + * to the regular completion entry containing just the method name. + * E.g., `const objectLiteral: T = { f| }` could be completed to `const objectLiteral: T = { foo(): void {} }`, + * in addition to `const objectLiteral: T = { foo }`. + */ + readonly includeCompletionsWithObjectLiteralMethodSnippets?: boolean; + /** + * Indicates whether {@link CompletionEntry.labelDetails completion entry label details} are supported. + * If not, contents of `labelDetails` may be included in the {@link CompletionEntry.name} property. + */ + readonly useLabelDetailsInCompletionEntries?: boolean; readonly allowIncompleteCompletions?: boolean; readonly importModuleSpecifierPreference?: "shortest" | "project-relative" | "relative" | "non-relative"; /** Determines whether we import `foo/index.ts` as "foo", "foo/index", or "foo/index.js" */ @@ -3395,6 +3451,14 @@ namespace ts.server.protocol { readonly displayPartsForJSDoc?: boolean; readonly generateReturnInDocTemplate?: boolean; + + readonly includeInlayParameterNameHints?: "none" | "literals" | "all"; + readonly includeInlayParameterNameHintsWhenArgumentMatchesName?: boolean; + readonly includeInlayFunctionParameterTypeHints?: boolean, + readonly includeInlayVariableTypeHints?: boolean; + readonly includeInlayPropertyDeclarationTypeHints?: boolean; + readonly includeInlayFunctionLikeReturnTypeHints?: boolean; + readonly includeInlayEnumMemberValueHints?: boolean; } export interface CompilerOptions { @@ -3509,6 +3573,7 @@ namespace ts.server.protocol { ES2019 = "ES2019", ES2020 = "ES2020", ES2021 = "ES2021", + ES2022 = "ES2022", ESNext = "ESNext" } diff --git a/src/server/session.ts b/src/server/session.ts index a503509f07be5..5123867f4334c 100644 --- a/src/server/session.ts +++ b/src/server/session.ts @@ -294,46 +294,13 @@ namespace ts.server { return deduplicate(outputs, equateValues); } - type CombineOutputResult = { project: Project; result: readonly T[]; }[]; - function combineOutputResultContains(outputs: CombineOutputResult, output: T, areEqual: (a: T, b: T) => boolean) { - return outputs.some(({ result }) => contains(result, output, areEqual)); - } - function addToCombineOutputResult(outputs: CombineOutputResult, project: Project, result: readonly T[]) { - if (result.length) outputs.push({ project, result }); - } - - function combineProjectOutputFromEveryProject(projectService: ProjectService, action: (project: Project) => readonly T[], areEqual: (a: T, b: T) => boolean): CombineOutputResult { - const outputs: CombineOutputResult = []; - projectService.loadAncestorProjectTree(); - projectService.forEachEnabledProject(project => { - const theseOutputs = action(project); - addToCombineOutputResult(outputs, project, filter(theseOutputs, output => !combineOutputResultContains(outputs, output, areEqual))); - }); - return outputs; - } + interface ProjectNavigateToItems { + project: Project; + navigateToItems: readonly NavigateToItem[]; + }; - function flattenCombineOutputResult(outputs: CombineOutputResult): readonly T[] { - return flatMap(outputs, ({ result }) => result); - } - - function combineProjectOutputWhileOpeningReferencedProjects( - projects: Projects, - defaultProject: Project, - action: (project: Project) => readonly T[], - getLocation: (t: T) => DocumentPosition, - resultsEqual: (a: T, b: T) => boolean, - ): CombineOutputResult { - const outputs: CombineOutputResult = []; - combineProjectOutputWorker( - projects, - defaultProject, - /*initialLocation*/ undefined, - (project, _, tryAddToTodo) => { - const theseOutputs = action(project); - addToCombineOutputResult(outputs, project, filter(theseOutputs, output => !combineOutputResultContains(outputs, output, resultsEqual) && !tryAddToTodo(project, getLocation(output)))); - }, - ); - return outputs; + function createDocumentSpanSet(): Set { + return createSet(({textSpan}) => textSpan.start + 100003 * textSpan.length, documentSpansEqual); } function combineProjectOutputForRenameLocations( @@ -342,22 +309,26 @@ namespace ts.server { initialLocation: DocumentPosition, findInStrings: boolean, findInComments: boolean, - hostPreferences: UserPreferences + { providePrefixAndSuffixTextForRename }: UserPreferences ): readonly RenameLocation[] { const outputs: RenameLocation[] = []; + const seen = createDocumentSpanSet(); combineProjectOutputWorker( projects, defaultProject, initialLocation, (project, location, tryAddToTodo) => { - for (const output of project.getLanguageService().findRenameLocations(location.fileName, location.pos, findInStrings, findInComments, hostPreferences.providePrefixAndSuffixTextForRename) || emptyArray) { - if (!contains(outputs, output, documentSpansEqual) && !tryAddToTodo(project, documentSpanLocation(output))) { - outputs.push(output); + const projectOutputs = project.getLanguageService().findRenameLocations(location.fileName, location.pos, findInStrings, findInComments, providePrefixAndSuffixTextForRename); + if (projectOutputs) { + for (const output of projectOutputs) { + if (!seen.has(output) && !tryAddToTodo(project, documentSpanLocation(output))) { + seen.add(output); + outputs.push(output); + } } } }, ); - return outputs; } @@ -370,7 +341,8 @@ namespace ts.server { function combineProjectOutputForReferences( projects: Projects, defaultProject: Project, - initialLocation: DocumentPosition + initialLocation: DocumentPosition, + logger: Logger, ): readonly ReferencedSymbol[] { const outputs: ReferencedSymbol[] = []; @@ -379,27 +351,31 @@ namespace ts.server { defaultProject, initialLocation, (project, location, getMappedLocation) => { - for (const outputReferencedSymbol of project.getLanguageService().findReferences(location.fileName, location.pos) || emptyArray) { - const mappedDefinitionFile = getMappedLocation(project, documentSpanLocation(outputReferencedSymbol.definition)); - const definition: ReferencedSymbolDefinitionInfo = mappedDefinitionFile === undefined ? - outputReferencedSymbol.definition : - { - ...outputReferencedSymbol.definition, - textSpan: createTextSpan(mappedDefinitionFile.pos, outputReferencedSymbol.definition.textSpan.length), - fileName: mappedDefinitionFile.fileName, - contextSpan: getMappedContextSpan(outputReferencedSymbol.definition, project) - }; - - let symbolToAddTo = find(outputs, o => documentSpansEqual(o.definition, definition)); - if (!symbolToAddTo) { - symbolToAddTo = { definition, references: [] }; - outputs.push(symbolToAddTo); - } + logger.info(`Finding references to ${location.fileName} position ${location.pos} in project ${project.getProjectName()}`); + const projectOutputs = project.getLanguageService().findReferences(location.fileName, location.pos); + if (projectOutputs) { + for (const referencedSymbol of projectOutputs) { + const mappedDefinitionFile = getMappedLocation(project, documentSpanLocation(referencedSymbol.definition)); + const definition: ReferencedSymbolDefinitionInfo = mappedDefinitionFile === undefined ? + referencedSymbol.definition : + { + ...referencedSymbol.definition, + textSpan: createTextSpan(mappedDefinitionFile.pos, referencedSymbol.definition.textSpan.length), + fileName: mappedDefinitionFile.fileName, + contextSpan: getMappedContextSpan(referencedSymbol.definition, project) + }; + + let symbolToAddTo = find(outputs, o => documentSpansEqual(o.definition, definition)); + if (!symbolToAddTo) { + symbolToAddTo = { definition, references: [] }; + outputs.push(symbolToAddTo); + } - for (const ref of outputReferencedSymbol.references) { - // If it's in a mapped file, that is added to the todo list by `getMappedLocation`. - if (!contains(symbolToAddTo.references, ref, documentSpansEqual) && !getMappedLocation(project, documentSpanLocation(ref))) { - symbolToAddTo.references.push(ref); + for (const ref of referencedSymbol.references) { + // If it's in a mapped file, that is added to the todo list by `getMappedLocation`. + if (!contains(symbolToAddTo.references, ref, documentSpansEqual) && !getMappedLocation(project, documentSpanLocation(ref))) { + symbolToAddTo.references.push(ref); + } } } } @@ -409,29 +385,6 @@ namespace ts.server { return outputs.filter(o => o.references.length !== 0); } - function combineProjectOutputForFileReferences( - projects: Projects, - defaultProject: Project, - fileName: string - ): readonly ReferenceEntry[] { - const outputs: ReferenceEntry[] = []; - - combineProjectOutputWorker( - projects, - defaultProject, - /*initialLocation*/ undefined, - project => { - for (const referenceEntry of project.getLanguageService().getFileReferences(fileName) || emptyArray) { - if (!contains(outputs, referenceEntry, documentSpansEqual)) { - outputs.push(referenceEntry); - } - } - }, - ); - - return outputs; - } - interface ProjectAndLocation { readonly project: Project; readonly location: TLocation; @@ -940,13 +893,16 @@ namespace ts.server { } return; } + this.writeMessage(msg); + } + + protected writeMessage(msg: protocol.Message) { const msgText = formatMessage(msg, this.logger, this.byteLength, this.host.newLine); perfLogger.logEvent(`Response message size: ${msgText.length}`); this.host.write(msgText); } public event(body: T, eventName: string): void { - tracing?.instant(tracing.Phase.Session, "event", { eventName }); this.send(toEvent(eventName, body)); } @@ -998,18 +954,24 @@ namespace ts.server { } private semanticCheck(file: NormalizedPath, project: Project) { + tracing?.push(tracing.Phase.Session, "semanticCheck", { file, configFilePath: (project as ConfiguredProject).canonicalConfigFilePath }); // undefined is fine if the cast fails const diags = isDeclarationFileInJSOnlyNonConfiguredProject(project, file) ? emptyArray : project.getLanguageService().getSemanticDiagnostics(file).filter(d => !!d.file); this.sendDiagnosticsEvent(file, project, diags, "semanticDiag"); + tracing?.pop(); } private syntacticCheck(file: NormalizedPath, project: Project) { + tracing?.push(tracing.Phase.Session, "syntacticCheck", { file, configFilePath: (project as ConfiguredProject).canonicalConfigFilePath }); // undefined is fine if the cast fails this.sendDiagnosticsEvent(file, project, project.getLanguageService().getSyntacticDiagnostics(file), "syntaxDiag"); + tracing?.pop(); } private suggestionCheck(file: NormalizedPath, project: Project) { + tracing?.push(tracing.Phase.Session, "suggestionCheck", { file, configFilePath: (project as ConfiguredProject).canonicalConfigFilePath }); // undefined is fine if the cast fails this.sendDiagnosticsEvent(file, project, project.getLanguageService().getSuggestionDiagnostics(file), "suggestionDiag"); + tracing?.pop(); } private sendDiagnosticsEvent(file: NormalizedPath, project: Project, diagnostics: readonly Diagnostic[], kind: protocol.DiagnosticEventKind): void { @@ -1584,6 +1546,7 @@ namespace ts.server { projects, this.getDefaultProject(args), { fileName: args.file, pos: position }, + this.logger, ); if (!simplifiedResult) return references; @@ -1603,11 +1566,24 @@ namespace ts.server { private getFileReferences(args: protocol.FileRequestArgs, simplifiedResult: boolean): protocol.FileReferencesResponseBody | readonly ReferenceEntry[] { const projects = this.getProjects(args); - const references = combineProjectOutputForFileReferences( - projects, - this.getDefaultProject(args), - args.file, - ); + const fileName = args.file; + + const references: ReferenceEntry[] = []; + const seen = createDocumentSpanSet(); + + forEachProjectInProjects(projects, /*path*/ undefined, project => { + if (project.getCancellationToken().isCancellationRequested()) return; + + const projectOutputs = project.getLanguageService().getFileReferences(fileName); + if (projectOutputs) { + for (const referenceEntry of projectOutputs) { + if (!seen.has(referenceEntry)) { + references.push(referenceEntry); + seen.add(referenceEntry); + } + } + } + }); if (!simplifiedResult) return references; const refs = references.map(entry => referenceEntryToReferencesResponseItem(this.projectService, entry)); @@ -1842,26 +1818,62 @@ namespace ts.server { const scriptInfo = this.projectService.getScriptInfoForNormalizedPath(file)!; const position = this.getPosition(args, scriptInfo); - const completions = project.getLanguageService().getCompletionsAtPosition(file, position, { - ...convertUserPreferences(this.getPreferences(file)), - triggerCharacter: args.triggerCharacter, - triggerKind: args.triggerKind as CompletionTriggerKind | undefined, - includeExternalModuleExports: args.includeExternalModuleExports, - includeInsertTextCompletions: args.includeInsertTextCompletions - }); + const completions = project.getLanguageService().getCompletionsAtPosition( + file, + position, + { + ...convertUserPreferences(this.getPreferences(file)), + triggerCharacter: args.triggerCharacter, + triggerKind: args.triggerKind as CompletionTriggerKind | undefined, + includeExternalModuleExports: args.includeExternalModuleExports, + includeInsertTextCompletions: args.includeInsertTextCompletions, + }, + project.projectService.getFormatCodeOptions(file), + ); if (completions === undefined) return undefined; if (kind === protocol.CommandTypes.CompletionsFull) return completions; const prefix = args.prefix || ""; - const entries = stableSort(mapDefined(completions.entries, entry => { + const entries = mapDefined(completions.entries, entry => { if (completions.isMemberCompletion || startsWith(entry.name.toLowerCase(), prefix.toLowerCase())) { - const { name, kind, kindModifiers, sortText, insertText, replacementSpan, hasAction, source, sourceDisplay, isSnippet, isRecommended, isPackageJsonImport, isImportStatementCompletion, data } = entry; + const { + name, + kind, + kindModifiers, + sortText, + insertText, + replacementSpan, + hasAction, + source, + sourceDisplay, + labelDetails, + isSnippet, + isRecommended, + isPackageJsonImport, + isImportStatementCompletion, + data } = entry; const convertedSpan = replacementSpan ? toProtocolTextSpan(replacementSpan, scriptInfo) : undefined; // Use `hasAction || undefined` to avoid serializing `false`. - return { name, kind, kindModifiers, sortText, insertText, replacementSpan: convertedSpan, isSnippet, hasAction: hasAction || undefined, source, sourceDisplay, isRecommended, isPackageJsonImport, isImportStatementCompletion, data }; + return { + name, + kind, + kindModifiers, + sortText, + insertText, + replacementSpan: convertedSpan, + isSnippet, + hasAction: hasAction || undefined, + source, + sourceDisplay, + labelDetails, + isRecommended, + isPackageJsonImport, + isImportStatementCompletion, + data + }; } - }), (a, b) => compareStringsCaseSensitiveUI(a.name, b.name)); + }); if (kind === protocol.CommandTypes.Completions) { if (completions.metadata) (entries as WithMetadata).metadata = completions.metadata; @@ -2080,10 +2092,10 @@ namespace ts.server { private getNavigateToItems(args: protocol.NavtoRequestArgs, simplifiedResult: boolean): readonly protocol.NavtoItem[] | readonly NavigateToItem[] { const full = this.getFullNavigateToItems(args); return !simplifiedResult ? - flattenCombineOutputResult(full) : + flatMap(full, ({ navigateToItems }) => navigateToItems) : flatMap( full, - ({ project, result }) => result.map(navItem => { + ({ project, navigateToItems }) => navigateToItems.map(navItem => { const scriptInfo = project.getScriptInfo(navItem.fileName)!; const bakedItem: protocol.NavtoItem = { name: navItem.name, @@ -2109,26 +2121,72 @@ namespace ts.server { ); } - private getFullNavigateToItems(args: protocol.NavtoRequestArgs): CombineOutputResult { + private getFullNavigateToItems(args: protocol.NavtoRequestArgs): ProjectNavigateToItems[] { const { currentFileOnly, searchValue, maxResultCount, projectFileName } = args; + if (currentFileOnly) { - Debug.assertDefined(args.file); + Debug.assertIsDefined(args.file); const { file, project } = this.getFileAndProject(args as protocol.FileRequestArgs); - return [{ project, result: project.getLanguageService().getNavigateToItems(searchValue, maxResultCount, file) }]; - } - else if (!args.file && !projectFileName) { - return combineProjectOutputFromEveryProject( - this.projectService, - project => project.getLanguageService().getNavigateToItems(searchValue, maxResultCount, /*filename*/ undefined, /*excludeDts*/ project.isNonTsProject()), - navigateToItemIsEqualTo); - } - const fileArgs = args as protocol.FileRequestArgs; - return combineProjectOutputWhileOpeningReferencedProjects( - this.getProjects(fileArgs), - this.getDefaultProject(fileArgs), - project => project.getLanguageService().getNavigateToItems(searchValue, maxResultCount, /*fileName*/ undefined, /*excludeDts*/ project.isNonTsProject()), - documentSpanLocation, - navigateToItemIsEqualTo); + return [{ project, navigateToItems: project.getLanguageService().getNavigateToItems(searchValue, maxResultCount, file) }]; + } + + const outputs: ProjectNavigateToItems[] = []; + + // This is effectively a hashset with `name` as the custom hash and `navigateToItemIsEqualTo` as the custom equals. + // `name` is a very cheap hash function, but we could incorporate other properties to reduce collisions. + const seenItems = new Map(); // name to items with that name + + if (!args.file && !projectFileName) { + // VS Code's `Go to symbol in workspaces` sends request like this + + // TODO (https://github.com/microsoft/TypeScript/issues/47839) + // This appears to have been intended to search all projects but, in practice, it seems to only search + // those that are downstream from already-loaded projects. + // Filtering by !isSourceOfProjectReferenceRedirect is new, but seems appropriate and consistent with + // the case below. + this.projectService.loadAncestorProjectTree(); + this.projectService.forEachEnabledProject(project => addItemsForProject(project)); + } + else { + // VS's `Go to symbol` sends requests with just a project and doesn't want cascading since it will + // send a separate request for each project of interest + + // TODO (https://github.com/microsoft/TypeScript/issues/47839) + // This doesn't really make sense unless it's a single project matching `projectFileName` + const projects = this.getProjects(args as protocol.FileRequestArgs); + forEachProjectInProjects(projects, /*path*/ undefined, project => addItemsForProject(project)); + } + + return outputs; + + // Mutates `outputs` + function addItemsForProject(project: Project) { + const projectItems = project.getLanguageService().getNavigateToItems(searchValue, maxResultCount, /*filename*/ undefined, /*excludeDts*/ project.isNonTsProject()); + const unseenItems = filter(projectItems, item => tryAddSeenItem(item) && !getMappedLocation(documentSpanLocation(item), project)); + if (unseenItems.length) { + outputs.push({ project, navigateToItems: unseenItems }); + } + } + + // Returns true if the item had not been seen before + // Mutates `seenItems` + function tryAddSeenItem(item: NavigateToItem) { + const name = item.name; + if (!seenItems.has(name)) { + seenItems.set(name, [item]); + return true; + } + + const seen = seenItems.get(name)!; + for (const seenItem of seen) { + if (navigateToItemIsEqualTo(seenItem, item)) { + return false; + } + } + + seen.push(item); + return true; + } function navigateToItemIsEqualTo(a: NavigateToItem, b: NavigateToItem): boolean { if (a === b) { @@ -2243,14 +2301,29 @@ namespace ts.server { const newPath = toNormalizedPath(args.newFilePath); const formatOptions = this.getHostFormatOptions(); const preferences = this.getHostPreferences(); - const changes = flattenCombineOutputResult( - combineProjectOutputFromEveryProject( - this.projectService, - project => project.getLanguageService().getEditsForFileRename(oldPath, newPath, formatOptions, preferences), - (a, b) => a.fileName === b.fileName - ) - ); - return simplifiedResult ? changes.map(c => this.mapTextChangeToCodeEdit(c)) : changes; + + + const seenFiles = new Set(); + const textChanges: FileTextChanges[] = []; + // TODO (https://github.com/microsoft/TypeScript/issues/47839) + // This appears to have been intended to search all projects but, in practice, it seems to only search + // those that are downstream from already-loaded projects. + this.projectService.loadAncestorProjectTree(); + this.projectService.forEachEnabledProject(project => { + const projectTextChanges = project.getLanguageService().getEditsForFileRename(oldPath, newPath, formatOptions, preferences); + const projectFiles: string[] = []; + for (const textChange of projectTextChanges) { + if (!seenFiles.has(textChange.fileName)) { + textChanges.push(textChange); + projectFiles.push(textChange.fileName); + } + } + for (const file of projectFiles) { + seenFiles.add(file); + } + }); + + return simplifiedResult ? textChanges.map(c => this.mapTextChangeToCodeEdit(c)) : textChanges; } private getCodeFixes(args: protocol.CodeFixRequestArgs, simplifiedResult: boolean): readonly protocol.CodeFixAction[] | readonly CodeFixAction[] | undefined { diff --git a/src/services/classifier.ts b/src/services/classifier.ts index 764f22ab92faf..ed8445b8f3987 100644 --- a/src/services/classifier.ts +++ b/src/services/classifier.ts @@ -1075,6 +1075,10 @@ namespace ts { } return; } + + if (isConstTypeReference(token.parent)) { + return ClassificationType.keyword; + } } return ClassificationType.identifier; } diff --git a/src/services/codeFixProvider.ts b/src/services/codeFixProvider.ts index 5baf4734002fc..83ddaffa458a0 100644 --- a/src/services/codeFixProvider.ts +++ b/src/services/codeFixProvider.ts @@ -3,13 +3,6 @@ namespace ts.codefix { const errorCodeToFixes = createMultiMap(); const fixIdToRegistration = new Map(); - export type DiagnosticAndArguments = DiagnosticMessage | [DiagnosticMessage, string] | [DiagnosticMessage, string, string]; - function diagnosticToString(diag: DiagnosticAndArguments): string { - return isArray(diag) - ? formatStringFromArgs(getLocaleSpecificMessage(diag[0]), diag.slice(1) as readonly string[]) - : getLocaleSpecificMessage(diag); - } - export function createCodeFixActionWithoutFixAll(fixName: string, changes: FileTextChanges[], description: DiagnosticAndArguments) { return createCodeFixActionWorker(fixName, diagnosticToString(description), changes, /*fixId*/ undefined, /*fixAllDescription*/ undefined); } diff --git a/src/services/codefixes/addConvertToUnknownForNonOverlappingTypes.ts b/src/services/codefixes/addConvertToUnknownForNonOverlappingTypes.ts index 3351ef9e5a3a7..dae9c89e489a6 100644 --- a/src/services/codefixes/addConvertToUnknownForNonOverlappingTypes.ts +++ b/src/services/codefixes/addConvertToUnknownForNonOverlappingTypes.ts @@ -4,20 +4,30 @@ namespace ts.codefix { const errorCodes = [Diagnostics.Conversion_of_type_0_to_type_1_may_be_a_mistake_because_neither_type_sufficiently_overlaps_with_the_other_If_this_was_intentional_convert_the_expression_to_unknown_first.code]; registerCodeFix({ errorCodes, - getCodeActions: (context) => { - const changes = textChanges.ChangeTracker.with(context, t => makeChange(t, context.sourceFile, context.span.start)); + getCodeActions: function getCodeActionsToAddConvertToUnknownForNonOverlappingTypes(context) { + const assertion = getAssertion(context.sourceFile, context.span.start); + if (assertion === undefined) return undefined; + const changes = textChanges.ChangeTracker.with(context, t => makeChange(t, context.sourceFile, assertion)); return [createCodeFixAction(fixId, changes, Diagnostics.Add_unknown_conversion_for_non_overlapping_types, fixId, Diagnostics.Add_unknown_to_all_conversions_of_non_overlapping_types)]; }, fixIds: [fixId], - getAllCodeActions: context => codeFixAll(context, errorCodes, (changes, diag) => makeChange(changes, diag.file, diag.start)), + getAllCodeActions: context => codeFixAll(context, errorCodes, (changes, diag) => { + const assertion = getAssertion(diag.file, diag.start); + if (assertion) { + makeChange(changes, diag.file, assertion); + } + }), }); - function makeChange(changeTracker: textChanges.ChangeTracker, sourceFile: SourceFile, pos: number) { - const token = getTokenAtPosition(sourceFile, pos); - const assertion = Debug.checkDefined(findAncestor(token, (n): n is AsExpression | TypeAssertion => isAsExpression(n) || isTypeAssertionExpression(n)), "Expected to find an assertion expression"); + function makeChange(changeTracker: textChanges.ChangeTracker, sourceFile: SourceFile, assertion: AsExpression | TypeAssertion) { const replacement = isAsExpression(assertion) ? factory.createAsExpression(assertion.expression, factory.createKeywordTypeNode(SyntaxKind.UnknownKeyword)) : factory.createTypeAssertion(factory.createKeywordTypeNode(SyntaxKind.UnknownKeyword), assertion.expression); changeTracker.replaceNode(sourceFile, assertion.expression, replacement); } + + function getAssertion(sourceFile: SourceFile, pos: number): AsExpression | TypeAssertion | undefined { + if (isInJSFile(sourceFile)) return undefined; + return findAncestor(getTokenAtPosition(sourceFile, pos), (n): n is AsExpression | TypeAssertion => isAsExpression(n) || isTypeAssertionExpression(n)); + } } diff --git a/src/services/codefixes/addEmptyExportDeclaration.ts b/src/services/codefixes/addEmptyExportDeclaration.ts index ad68d5e0d40e5..de0dee3acbc63 100644 --- a/src/services/codefixes/addEmptyExportDeclaration.ts +++ b/src/services/codefixes/addEmptyExportDeclaration.ts @@ -5,7 +5,7 @@ namespace ts.codefix { Diagnostics.await_expressions_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_has_no_imports_or_exports_Consider_adding_an_empty_export_to_make_this_file_a_module.code, Diagnostics.for_await_loops_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_has_no_imports_or_exports_Consider_adding_an_empty_export_to_make_this_file_a_module.code, ], - getCodeActions: context => { + getCodeActions: function getCodeActionsToAddEmptyExportDeclaration(context) { const { sourceFile } = context; const changes = textChanges.ChangeTracker.with(context, changes => { const exportDeclaration = factory.createExportDeclaration( diff --git a/src/services/codefixes/addMissingAsync.ts b/src/services/codefixes/addMissingAsync.ts index 5876805ee1c02..de12496f86528 100644 --- a/src/services/codefixes/addMissingAsync.ts +++ b/src/services/codefixes/addMissingAsync.ts @@ -11,9 +11,9 @@ namespace ts.codefix { registerCodeFix({ fixIds: [fixId], errorCodes, - getCodeActions: context => { + getCodeActions: function getCodeActionsToAddMissingAsync(context) { const { sourceFile, errorCode, cancellationToken, program, span } = context; - const diagnostic = find(program.getDiagnosticsProducingTypeChecker().getDiagnostics(sourceFile, cancellationToken), getIsMatchingAsyncError(span, errorCode)); + const diagnostic = find(program.getTypeChecker().getDiagnostics(sourceFile, cancellationToken), getIsMatchingAsyncError(span, errorCode)); const directSpan = diagnostic && diagnostic.relatedInformation && find(diagnostic.relatedInformation, r => r.code === Diagnostics.Did_you_mean_to_mark_this_function_as_async.code) as TextSpan | undefined; const decl = getFixableErrorSpanDeclaration(sourceFile, directSpan); diff --git a/src/services/codefixes/addMissingAwait.ts b/src/services/codefixes/addMissingAwait.ts index 01f7ece1a0388..1a9110227e504 100644 --- a/src/services/codefixes/addMissingAwait.ts +++ b/src/services/codefixes/addMissingAwait.ts @@ -30,7 +30,7 @@ namespace ts.codefix { registerCodeFix({ fixIds: [fixId], errorCodes, - getCodeActions: context => { + getCodeActions: function getCodeActionsToAddMissingAwait(context) { const { sourceFile, errorCode, span, cancellationToken, program } = context; const expression = getAwaitErrorSpanExpression(sourceFile, errorCode, span, cancellationToken, program); if (!expression) { @@ -93,7 +93,7 @@ namespace ts.codefix { } function isMissingAwaitError(sourceFile: SourceFile, errorCode: number, span: TextSpan, cancellationToken: CancellationToken, program: Program) { - const checker = program.getDiagnosticsProducingTypeChecker(); + const checker = program.getTypeChecker(); const diagnostics = checker.getDiagnostics(sourceFile, cancellationToken); return some(diagnostics, ({ start, length, relatedInformation, code }) => isNumber(start) && isNumber(length) && textSpansEqual({ start, length }, span) && diff --git a/src/services/codefixes/addMissingConst.ts b/src/services/codefixes/addMissingConst.ts index 5f15572c9789f..9c0c7979cb3e5 100644 --- a/src/services/codefixes/addMissingConst.ts +++ b/src/services/codefixes/addMissingConst.ts @@ -8,7 +8,7 @@ namespace ts.codefix { registerCodeFix({ errorCodes, - getCodeActions: (context) => { + getCodeActions: function getCodeActionsToAddMissingConst(context) { const changes = textChanges.ChangeTracker.with(context, t => makeChange(t, context.sourceFile, context.span.start, context.program)); if (changes.length > 0) { return [createCodeFixAction(fixId, changes, Diagnostics.Add_const_to_unresolved_variable, fixId, Diagnostics.Add_const_to_all_unresolved_variables)]; diff --git a/src/services/codefixes/addMissingDeclareProperty.ts b/src/services/codefixes/addMissingDeclareProperty.ts index f7b9369f95715..6774e8749cf7a 100644 --- a/src/services/codefixes/addMissingDeclareProperty.ts +++ b/src/services/codefixes/addMissingDeclareProperty.ts @@ -7,7 +7,7 @@ namespace ts.codefix { registerCodeFix({ errorCodes, - getCodeActions: (context) => { + getCodeActions: function getCodeActionsToAddMissingDeclareOnProperty(context) { const changes = textChanges.ChangeTracker.with(context, t => makeChange(t, context.sourceFile, context.span.start)); if (changes.length > 0) { return [createCodeFixAction(fixId, changes, Diagnostics.Prefix_with_declare, fixId, Diagnostics.Prefix_all_incorrect_property_declarations_with_declare)]; diff --git a/src/services/codefixes/addMissingInvocationForDecorator.ts b/src/services/codefixes/addMissingInvocationForDecorator.ts index e772b4a82f267..22ce4eef384e1 100644 --- a/src/services/codefixes/addMissingInvocationForDecorator.ts +++ b/src/services/codefixes/addMissingInvocationForDecorator.ts @@ -4,7 +4,7 @@ namespace ts.codefix { const errorCodes = [Diagnostics._0_accepts_too_few_arguments_to_be_used_as_a_decorator_here_Did_you_mean_to_call_it_first_and_write_0.code]; registerCodeFix({ errorCodes, - getCodeActions: (context) => { + getCodeActions: function getCodeActionsToAddMissingInvocationForDecorator(context) { const changes = textChanges.ChangeTracker.with(context, t => makeChange(t, context.sourceFile, context.span.start)); return [createCodeFixAction(fixId, changes, Diagnostics.Call_decorator_expression, fixId, Diagnostics.Add_to_all_uncalled_decorators)]; }, diff --git a/src/services/codefixes/addNameToNamelessParameter.ts b/src/services/codefixes/addNameToNamelessParameter.ts index 07bc1bea7e3c6..d9aec73ee966e 100644 --- a/src/services/codefixes/addNameToNamelessParameter.ts +++ b/src/services/codefixes/addNameToNamelessParameter.ts @@ -4,7 +4,7 @@ namespace ts.codefix { const errorCodes = [Diagnostics.Parameter_has_a_name_but_no_type_Did_you_mean_0_Colon_1.code]; registerCodeFix({ errorCodes, - getCodeActions: (context) => { + getCodeActions: function getCodeActionsToAddNameToNamelessParameter(context) { const changes = textChanges.ChangeTracker.with(context, t => makeChange(t, context.sourceFile, context.span.start)); return [createCodeFixAction(fixId, changes, Diagnostics.Add_parameter_name, fixId, Diagnostics.Add_names_to_all_parameters_without_names)]; }, @@ -14,24 +14,24 @@ namespace ts.codefix { function makeChange(changeTracker: textChanges.ChangeTracker, sourceFile: SourceFile, pos: number) { const token = getTokenAtPosition(sourceFile, pos); - if (!isIdentifier(token)) { - return Debug.fail("add-name-to-nameless-parameter operates on identifiers, but got a " + Debug.formatSyntaxKind(token.kind)); - } const param = token.parent; if (!isParameter(param)) { return Debug.fail("Tried to add a parameter name to a non-parameter: " + Debug.formatSyntaxKind(token.kind)); } + const i = param.parent.parameters.indexOf(param); Debug.assert(!param.type, "Tried to add a parameter name to a parameter that already had one."); Debug.assert(i > -1, "Parameter not found in parent parameter list."); + + const typeNode = factory.createTypeReferenceNode(param.name as Identifier, /*typeArguments*/ undefined); const replacement = factory.createParameterDeclaration( /*decorators*/ undefined, param.modifiers, param.dotDotDotToken, "arg" + i, param.questionToken, - factory.createTypeReferenceNode(token, /*typeArguments*/ undefined), + param.dotDotDotToken ? factory.createArrayTypeNode(typeNode) : typeNode, param.initializer); - changeTracker.replaceNode(sourceFile, token, replacement); + changeTracker.replaceNode(sourceFile, param, replacement); } } diff --git a/src/services/codefixes/convertConstToLet.ts b/src/services/codefixes/convertConstToLet.ts index fddb697911c77..4036f93632e4e 100644 --- a/src/services/codefixes/convertConstToLet.ts +++ b/src/services/codefixes/convertConstToLet.ts @@ -5,7 +5,7 @@ namespace ts.codefix { registerCodeFix({ errorCodes, - getCodeActions: context => { + getCodeActions: function getCodeActionsToConvertConstToLet(context) { const { sourceFile, span, program } = context; const range = getConstTokenRange(sourceFile, span.start, program); if (range === undefined) return; diff --git a/src/services/codefixes/convertFunctionToEs6Class.ts b/src/services/codefixes/convertFunctionToEs6Class.ts index 8a20f68840d4c..352fbbb5bc160 100644 --- a/src/services/codefixes/convertFunctionToEs6Class.ts +++ b/src/services/codefixes/convertFunctionToEs6Class.ts @@ -43,21 +43,6 @@ namespace ts.codefix { function createClassElementsFromSymbol(symbol: Symbol) { const memberElements: ClassElement[] = []; - // all instance members are stored in the "member" array of symbol - if (symbol.members) { - symbol.members.forEach((member, key) => { - if (key === "constructor" && member.valueDeclaration) { - // fn.prototype.constructor = fn - changes.delete(sourceFile, member.valueDeclaration.parent); - return; - } - const memberElement = createClassElement(member, /*modifiers*/ undefined); - if (memberElement) { - memberElements.push(...memberElement); - } - }); - } - // all static members are stored in the "exports" array of symbol if (symbol.exports) { symbol.exports.forEach(member => { @@ -71,18 +56,31 @@ namespace ts.codefix { isObjectLiteralExpression(firstDeclaration.parent.right) ) { const prototypes = firstDeclaration.parent.right; - const memberElement = createClassElement(prototypes.symbol, /** modifiers */ undefined); - if (memberElement) { - memberElements.push(...memberElement); - } + createClassElement(prototypes.symbol, /** modifiers */ undefined, memberElements); } } else { - const memberElement = createClassElement(member, [factory.createToken(SyntaxKind.StaticKeyword)]); - if (memberElement) { - memberElements.push(...memberElement); + createClassElement(member, [factory.createToken(SyntaxKind.StaticKeyword)], memberElements); + } + }); + } + + // all instance members are stored in the "member" array of symbol (done last so instance members pulled from prototype assignments have priority) + if (symbol.members) { + symbol.members.forEach((member, key) => { + if (key === "constructor" && member.valueDeclaration) { + const prototypeAssignment = symbol.exports?.get("prototype" as __String)?.declarations?.[0]?.parent; + if (prototypeAssignment && isBinaryExpression(prototypeAssignment) && isObjectLiteralExpression(prototypeAssignment.right) && some(prototypeAssignment.right.properties, isConstructorAssignment)) { + // fn.prototype = { constructor: fn } + // Already deleted in `createClassElement` in first pass } + else { + // fn.prototype.constructor = fn + changes.delete(sourceFile, member.valueDeclaration.parent); + } + return; } + createClassElement(member, /*modifiers*/ undefined, memberElements); }); } @@ -109,19 +107,28 @@ namespace ts.codefix { } } - function createClassElement(symbol: Symbol, modifiers: Modifier[] | undefined): readonly ClassElement[] { + function createClassElement(symbol: Symbol, modifiers: Modifier[] | undefined, members: ClassElement[]): void { // Right now the only thing we can convert are function expressions, which are marked as methods // or { x: y } type prototype assignments, which are marked as ObjectLiteral - const members: ClassElement[] = []; if (!(symbol.flags & SymbolFlags.Method) && !(symbol.flags & SymbolFlags.ObjectLiteral)) { - return members; + return; } const memberDeclaration = symbol.valueDeclaration as AccessExpression | ObjectLiteralExpression; const assignmentBinaryExpression = memberDeclaration.parent as BinaryExpression; const assignmentExpr = assignmentBinaryExpression.right; if (!shouldConvertDeclaration(memberDeclaration, assignmentExpr)) { - return members; + return; + } + + if (some(members, m => { + const name = getNameOfDeclaration(m); + if (name && isIdentifier(name) && idText(name) === symbolName(symbol)) { + return true; // class member already made for this name + } + return false; + })) { + return; } // delete the entire statement if this expression is the sole expression to take care of the semicolon at the end @@ -132,7 +139,7 @@ namespace ts.codefix { if (!assignmentExpr) { members.push(factory.createPropertyDeclaration([], modifiers, symbol.name, /*questionToken*/ undefined, /*type*/ undefined, /*initializer*/ undefined)); - return members; + return; } // f.x = expr @@ -140,52 +147,54 @@ namespace ts.codefix { const quotePreference = getQuotePreference(sourceFile, preferences); const name = tryGetPropertyName(memberDeclaration, compilerOptions, quotePreference); if (name) { - return createFunctionLikeExpressionMember(members, assignmentExpr, name); + createFunctionLikeExpressionMember(members, assignmentExpr, name); } - return members; + return; } // f.prototype = { ... } else if (isObjectLiteralExpression(assignmentExpr)) { - return flatMap( + forEach( assignmentExpr.properties, property => { if (isMethodDeclaration(property) || isGetOrSetAccessorDeclaration(property)) { // MethodDeclaration and AccessorDeclaration can appear in a class directly - return members.concat(property); + members.push(property); } if (isPropertyAssignment(property) && isFunctionExpression(property.initializer)) { - return createFunctionLikeExpressionMember(members, property.initializer, property.name); + createFunctionLikeExpressionMember(members, property.initializer, property.name); } // Drop constructor assignments - if (isConstructorAssignment(property)) return members; - return []; + if (isConstructorAssignment(property)) return; + return; } ); + return; } else { // Don't try to declare members in JavaScript files - if (isSourceFileJS(sourceFile)) return members; - if (!isPropertyAccessExpression(memberDeclaration)) return members; + if (isSourceFileJS(sourceFile)) return; + if (!isPropertyAccessExpression(memberDeclaration)) return; const prop = factory.createPropertyDeclaration(/*decorators*/ undefined, modifiers, memberDeclaration.name, /*questionToken*/ undefined, /*type*/ undefined, assignmentExpr); copyLeadingComments(assignmentBinaryExpression.parent, prop, sourceFile); members.push(prop); - return members; + return; } - function createFunctionLikeExpressionMember(members: readonly ClassElement[], expression: FunctionExpression | ArrowFunction, name: PropertyName) { + function createFunctionLikeExpressionMember(members: ClassElement[], expression: FunctionExpression | ArrowFunction, name: PropertyName) { if (isFunctionExpression(expression)) return createFunctionExpressionMember(members, expression, name); else return createArrowFunctionExpressionMember(members, expression, name); } - function createFunctionExpressionMember(members: readonly ClassElement[], functionExpression: FunctionExpression, name: PropertyName) { + function createFunctionExpressionMember(members: ClassElement[], functionExpression: FunctionExpression, name: PropertyName) { const fullModifiers = concatenate(modifiers, getModifierKindFromSource(functionExpression, SyntaxKind.AsyncKeyword)); const method = factory.createMethodDeclaration(/*decorators*/ undefined, fullModifiers, /*asteriskToken*/ undefined, name, /*questionToken*/ undefined, /*typeParameters*/ undefined, functionExpression.parameters, /*type*/ undefined, functionExpression.body); copyLeadingComments(assignmentBinaryExpression, method, sourceFile); - return members.concat(method); + members.push(method); + return; } - function createArrowFunctionExpressionMember(members: readonly ClassElement[], arrowFunction: ArrowFunction, name: PropertyName) { + function createArrowFunctionExpressionMember(members: ClassElement[], arrowFunction: ArrowFunction, name: PropertyName) { const arrowFunctionBody = arrowFunction.body; let bodyBlock: Block; @@ -201,7 +210,7 @@ namespace ts.codefix { const method = factory.createMethodDeclaration(/*decorators*/ undefined, fullModifiers, /*asteriskToken*/ undefined, name, /*questionToken*/ undefined, /*typeParameters*/ undefined, arrowFunction.parameters, /*type*/ undefined, bodyBlock); copyLeadingComments(assignmentBinaryExpression, method, sourceFile); - return members.concat(method); + members.push(method); } } } diff --git a/src/services/codefixes/convertLiteralTypeToMappedType.ts b/src/services/codefixes/convertLiteralTypeToMappedType.ts index edcbbe0c0ce59..9c5d03e09d828 100644 --- a/src/services/codefixes/convertLiteralTypeToMappedType.ts +++ b/src/services/codefixes/convertLiteralTypeToMappedType.ts @@ -5,7 +5,7 @@ namespace ts.codefix { registerCodeFix({ errorCodes, - getCodeActions: context => { + getCodeActions: function getCodeActionsToConvertLiteralTypeToMappedType(context) { const { sourceFile, span } = context; const info = getInfo(sourceFile, span.start); if (!info) { @@ -49,7 +49,7 @@ namespace ts.codefix { function doChange(changes: textChanges.ChangeTracker, sourceFile: SourceFile, { container, typeNode, constraint, name }: Info): void { changes.replaceNode(sourceFile, container, factory.createMappedTypeNode( /*readonlyToken*/ undefined, - factory.createTypeParameterDeclaration(name, factory.createTypeReferenceNode(constraint)), + factory.createTypeParameterDeclaration(/*modifiers*/ undefined, name, factory.createTypeReferenceNode(constraint)), /*nameType*/ undefined, /*questionToken*/ undefined, typeNode, diff --git a/src/services/codefixes/convertToEsModule.ts b/src/services/codefixes/convertToEsModule.ts index e9f29c80de7da..57c4e7995b6b2 100644 --- a/src/services/codefixes/convertToEsModule.ts +++ b/src/services/codefixes/convertToEsModule.ts @@ -408,9 +408,7 @@ namespace ts.codefix { const importSpecifiers = mapAllOrFail(name.elements, e => e.dotDotDotToken || e.initializer || e.propertyName && !isIdentifier(e.propertyName) || !isIdentifier(e.name) ? undefined - // (TODO: GH#18217) - // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion - : makeImportSpecifier(e.propertyName && (e.propertyName as Identifier).text, e.name.text)); + : makeImportSpecifier(e.propertyName && e.propertyName.text, e.name.text)); if (importSpecifiers) { return convertedImports([makeImport(/*name*/ undefined, importSpecifiers, moduleSpecifier, quotePreference)]); } diff --git a/src/services/codefixes/convertToMappedObjectType.ts b/src/services/codefixes/convertToMappedObjectType.ts index dc6c2f5cd504d..13429f17ec974 100644 --- a/src/services/codefixes/convertToMappedObjectType.ts +++ b/src/services/codefixes/convertToMappedObjectType.ts @@ -1,14 +1,13 @@ /* @internal */ namespace ts.codefix { - const fixIdAddMissingTypeof = "fixConvertToMappedObjectType"; - const fixId = fixIdAddMissingTypeof; + const fixId = "fixConvertToMappedObjectType"; const errorCodes = [Diagnostics.An_index_signature_parameter_type_cannot_be_a_literal_type_or_generic_type_Consider_using_a_mapped_object_type_instead.code]; type FixableDeclaration = InterfaceDeclaration | TypeAliasDeclaration; registerCodeFix({ errorCodes, - getCodeActions: context => { + getCodeActions: function getCodeActionsToConvertToMappedTypeObject(context) { const { sourceFile, span } = context; const info = getInfo(sourceFile, span.start); if (!info) return undefined; @@ -26,9 +25,12 @@ namespace ts.codefix { interface Info { readonly indexSignature: IndexSignatureDeclaration; readonly container: FixableDeclaration; } function getInfo(sourceFile: SourceFile, pos: number): Info | undefined { const token = getTokenAtPosition(sourceFile, pos); - const indexSignature = cast(token.parent.parent, isIndexSignatureDeclaration); - if (isClassDeclaration(indexSignature.parent)) return undefined; - const container = isInterfaceDeclaration(indexSignature.parent) ? indexSignature.parent : cast(indexSignature.parent.parent, isTypeAliasDeclaration); + const indexSignature = tryCast(token.parent.parent, isIndexSignatureDeclaration); + if (!indexSignature) return undefined; + + const container = isInterfaceDeclaration(indexSignature.parent) ? indexSignature.parent : tryCast(indexSignature.parent.parent, isTypeAliasDeclaration); + if (!container) return undefined; + return { indexSignature, container }; } @@ -40,7 +42,7 @@ namespace ts.codefix { const members = isInterfaceDeclaration(container) ? container.members : (container.type as TypeLiteralNode).members; const otherMembers = members.filter(member => !isIndexSignatureDeclaration(member)); const parameter = first(indexSignature.parameters); - const mappedTypeParameter = factory.createTypeParameterDeclaration(cast(parameter.name, isIdentifier), parameter.type); + const mappedTypeParameter = factory.createTypeParameterDeclaration(/*modifiers*/ undefined, cast(parameter.name, isIdentifier), parameter.type); const mappedIntersectionType = factory.createMappedTypeNode( hasEffectiveReadonlyModifier(indexSignature) ? factory.createModifier(SyntaxKind.ReadonlyKeyword) : undefined, mappedTypeParameter, diff --git a/src/services/codefixes/convertToTypeOnlyExport.ts b/src/services/codefixes/convertToTypeOnlyExport.ts index 8ff0b57ea099d..8cd4be7a20e60 100644 --- a/src/services/codefixes/convertToTypeOnlyExport.ts +++ b/src/services/codefixes/convertToTypeOnlyExport.ts @@ -4,14 +4,14 @@ namespace ts.codefix { const fixId = "convertToTypeOnlyExport"; registerCodeFix({ errorCodes, - getCodeActions: context => { + getCodeActions: function getCodeActionsToConvertToTypeOnlyExport(context) { const changes = textChanges.ChangeTracker.with(context, t => fixSingleExportDeclaration(t, getExportSpecifierForDiagnosticSpan(context.span, context.sourceFile), context)); if (changes.length) { return [createCodeFixAction(fixId, changes, Diagnostics.Convert_to_type_only_export, fixId, Diagnostics.Convert_all_re_exported_types_to_type_only_exports)]; } }, fixIds: [fixId], - getAllCodeActions: context => { + getAllCodeActions: function getAllCodeActionsToConvertToTypeOnlyExport(context) { const fixedExportDeclarations = new Map(); return codeFixAll(context, errorCodes, (changes, diag) => { const exportSpecifier = getExportSpecifierForDiagnosticSpan(diag, context.sourceFile); diff --git a/src/services/codefixes/convertToTypeOnlyImport.ts b/src/services/codefixes/convertToTypeOnlyImport.ts index 51d34a885fb06..0f92c4108cfba 100644 --- a/src/services/codefixes/convertToTypeOnlyImport.ts +++ b/src/services/codefixes/convertToTypeOnlyImport.ts @@ -4,7 +4,7 @@ namespace ts.codefix { const fixId = "convertToTypeOnlyImport"; registerCodeFix({ errorCodes, - getCodeActions: context => { + getCodeActions: function getCodeActionsToConvertToTypeOnlyImport(context) { const changes = textChanges.ChangeTracker.with(context, t => { const importDeclaration = getImportDeclarationForDiagnosticSpan(context.span, context.sourceFile); fixSingleImportDeclaration(t, importDeclaration, context); @@ -14,7 +14,7 @@ namespace ts.codefix { } }, fixIds: [fixId], - getAllCodeActions: context => { + getAllCodeActions: function getAllCodeActionsToConvertToTypeOnlyImport(context) { return codeFixAll(context, errorCodes, (changes, diag) => { const importDeclaration = getImportDeclarationForDiagnosticSpan(diag, context.sourceFile); fixSingleImportDeclaration(changes, importDeclaration, context); diff --git a/src/services/codefixes/disableJsDiagnostics.ts b/src/services/codefixes/disableJsDiagnostics.ts index 4469ffb6b716f..b5645ca394706 100644 --- a/src/services/codefixes/disableJsDiagnostics.ts +++ b/src/services/codefixes/disableJsDiagnostics.ts @@ -9,7 +9,7 @@ namespace ts.codefix { registerCodeFix({ errorCodes, - getCodeActions(context) { + getCodeActions: function getCodeActionsToDisableJsDiagnostics(context) { const { sourceFile, program, span, host, formatContext } = context; if (!isInJSFile(sourceFile) || !isCheckJsEnabledForFile(sourceFile, program.getCompilerOptions())) { diff --git a/src/services/codefixes/fixAddMissingMember.ts b/src/services/codefixes/fixAddMissingMember.ts index b709bd75340d0..ee4743f1afb74 100644 --- a/src/services/codefixes/fixAddMissingMember.ts +++ b/src/services/codefixes/fixAddMissingMember.ts @@ -46,7 +46,7 @@ namespace ts.codefix { const { program, fixId } = context; const checker = program.getTypeChecker(); const seen = new Map(); - const typeDeclToMembers = new Map(); + const typeDeclToMembers = new Map(); return createCombinedCodeActions(textChanges.ChangeTracker.with(context, changes => { eachDiagnostic(context, errorCodes, diag => { @@ -68,7 +68,7 @@ namespace ts.codefix { if (info.kind === InfoKind.Enum) { addEnumMemberDeclaration(changes, checker, info); } - if (info.kind === InfoKind.ClassOrInterface) { + if (info.kind === InfoKind.TypeLikeDeclaration) { const { parentDeclaration, token } = info; const infos = getOrUpdate(typeDeclToMembers, parentDeclaration, () => []); if (!infos.some(i => i.token.text === token.text)) { @@ -78,11 +78,11 @@ namespace ts.codefix { } }); - typeDeclToMembers.forEach((infos, classDeclaration) => { - const supers = getAllSupers(classDeclaration, checker); + typeDeclToMembers.forEach((infos, declaration) => { + const supers = isTypeLiteralNode(declaration) ? undefined : getAllSupers(declaration, checker); for (const info of infos) { // If some superclass added this property, don't add it again. - if (supers.some(superClassOrInterface => { + if (supers?.some(superClassOrInterface => { const superInfos = typeDeclToMembers.get(superClassOrInterface); return !!superInfos && superInfos.some(({ token }) => token.text === info.token.text); })) continue; @@ -93,11 +93,11 @@ namespace ts.codefix { addMethodDeclaration(context, changes, call, token, modifierFlags & ModifierFlags.Static, parentDeclaration, declSourceFile); } else { - if (isJSFile && !isInterfaceDeclaration(parentDeclaration)) { + if (isJSFile && !isInterfaceDeclaration(parentDeclaration) && !isTypeLiteralNode(parentDeclaration)) { addMissingMemberInJs(changes, declSourceFile, parentDeclaration, token, !!(modifierFlags & ModifierFlags.Static)); } else { - const typeNode = getTypeNode(program.getTypeChecker(), parentDeclaration, token); + const typeNode = getTypeNode(checker, parentDeclaration, token); addPropertyDeclaration(changes, declSourceFile, parentDeclaration, token.text, typeNode, modifierFlags & ModifierFlags.Static); } } @@ -107,8 +107,8 @@ namespace ts.codefix { }, }); - const enum InfoKind { Enum, ClassOrInterface, Function, ObjectLiteral, JsxAttributes } - type Info = EnumInfo | ClassOrInterfaceInfo | FunctionInfo | ObjectLiteralInfo | JsxAttributesInfo; + const enum InfoKind { TypeLikeDeclaration, Enum, Function, ObjectLiteral, JsxAttributes } + type Info = TypeLikeDeclarationInfo | EnumInfo | FunctionInfo | ObjectLiteralInfo | JsxAttributesInfo; interface EnumInfo { readonly kind: InfoKind.Enum; @@ -116,12 +116,12 @@ namespace ts.codefix { readonly parentDeclaration: EnumDeclaration; } - interface ClassOrInterfaceInfo { - readonly kind: InfoKind.ClassOrInterface; + interface TypeLikeDeclarationInfo { + readonly kind: InfoKind.TypeLikeDeclaration; readonly call: CallExpression | undefined; readonly token: Identifier | PrivateIdentifier; readonly modifierFlags: ModifierFlags; - readonly parentDeclaration: ClassOrInterface; + readonly parentDeclaration: ClassLikeDeclaration | InterfaceDeclaration | TypeLiteralNode; readonly declSourceFile: SourceFile; readonly isJSFile: boolean; } @@ -171,7 +171,7 @@ namespace ts.codefix { const properties = arrayFrom(checker.getUnmatchedProperties(checker.getTypeAtLocation(parent), checker.getTypeAtLocation(param), /* requireOptionalProperties */ false, /* matchDiscriminantProperties */ false)); if (!length(properties)) return undefined; - return { kind: InfoKind.ObjectLiteral, token: param.name, properties, indentation: 0, parentDeclaration: parent }; + return { kind: InfoKind.ObjectLiteral, token: param.name, properties, parentDeclaration: parent }; } if (!isMemberName(token)) return undefined; @@ -179,11 +179,13 @@ namespace ts.codefix { if (isIdentifier(token) && hasInitializer(parent) && parent.initializer && isObjectLiteralExpression(parent.initializer)) { const properties = arrayFrom(checker.getUnmatchedProperties(checker.getTypeAtLocation(parent.initializer), checker.getTypeAtLocation(token), /* requireOptionalProperties */ false, /* matchDiscriminantProperties */ false)); if (!length(properties)) return undefined; - return { kind: InfoKind.ObjectLiteral, token, properties, indentation: undefined, parentDeclaration: parent.initializer }; + + return { kind: InfoKind.ObjectLiteral, token, properties, parentDeclaration: parent.initializer }; } if (isIdentifier(token) && isJsxOpeningLikeElement(token.parent)) { - const attributes = getUnmatchedAttributes(checker, token.parent); + const target = getEmitScriptTarget(program.getCompilerOptions()); + const attributes = getUnmatchedAttributes(checker, target, token.parent); if (!length(attributes)) return undefined; return { kind: InfoKind.JsxAttributes, token, attributes, parentDeclaration: token.parent }; } @@ -218,22 +220,24 @@ namespace ts.codefix { if (!classDeclaration && isPrivateIdentifier(token)) return undefined; // Prefer to change the class instead of the interface if they are merged - const classOrInterface = classDeclaration || find(symbol.declarations, isInterfaceDeclaration); - if (classOrInterface && !isSourceFileFromLibrary(program, classOrInterface.getSourceFile())) { - const makeStatic = ((leftExpressionType as TypeReference).target || leftExpressionType) !== checker.getDeclaredTypeOfSymbol(symbol); - if (makeStatic && (isPrivateIdentifier(token) || isInterfaceDeclaration(classOrInterface))) return undefined; - - const declSourceFile = classOrInterface.getSourceFile(); - const modifierFlags = (makeStatic ? ModifierFlags.Static : 0) | (startsWithUnderscore(token.text) ? ModifierFlags.Private : 0); + const declaration = classDeclaration || find(symbol.declarations, d => isInterfaceDeclaration(d) || isTypeLiteralNode(d)) as InterfaceDeclaration | TypeLiteralNode | undefined; + if (declaration && !isSourceFileFromLibrary(program, declaration.getSourceFile())) { + const makeStatic = !isTypeLiteralNode(declaration) && ((leftExpressionType as TypeReference).target || leftExpressionType) !== checker.getDeclaredTypeOfSymbol(symbol); + if (makeStatic && (isPrivateIdentifier(token) || isInterfaceDeclaration(declaration))) return undefined; + + const declSourceFile = declaration.getSourceFile(); + const modifierFlags = isTypeLiteralNode(declaration) ? ModifierFlags.None : + (makeStatic ? ModifierFlags.Static : ModifierFlags.None) | (startsWithUnderscore(token.text) ? ModifierFlags.Private : ModifierFlags.None); const isJSFile = isSourceFileJS(declSourceFile); const call = tryCast(parent.parent, isCallExpression); - return { kind: InfoKind.ClassOrInterface, token, call, modifierFlags, parentDeclaration: classOrInterface, declSourceFile, isJSFile }; + return { kind: InfoKind.TypeLikeDeclaration, token, call, modifierFlags, parentDeclaration: declaration, declSourceFile, isJSFile }; } const enumDeclaration = find(symbol.declarations, isEnumDeclaration); if (enumDeclaration && !isPrivateIdentifier(token) && !isSourceFileFromLibrary(program, enumDeclaration.getSourceFile())) { return { kind: InfoKind.Enum, token, parentDeclaration: enumDeclaration }; } + return undefined; } @@ -241,13 +245,13 @@ namespace ts.codefix { return program.isSourceFileFromExternalLibrary(node) || program.isSourceFileDefaultLibrary(node); } - function getActionsForMissingMemberDeclaration(context: CodeFixContext, info: ClassOrInterfaceInfo): CodeFixAction[] | undefined { + function getActionsForMissingMemberDeclaration(context: CodeFixContext, info: TypeLikeDeclarationInfo): CodeFixAction[] | undefined { return info.isJSFile ? singleElementArray(createActionForAddMissingMemberInJavascriptFile(context, info)) : createActionsForAddMissingMemberInTypeScriptFile(context, info); } - function createActionForAddMissingMemberInJavascriptFile(context: CodeFixContext, { parentDeclaration, declSourceFile, modifierFlags, token }: ClassOrInterfaceInfo): CodeFixAction | undefined { - if (isInterfaceDeclaration(parentDeclaration)) { + function createActionForAddMissingMemberInJavascriptFile(context: CodeFixContext, { parentDeclaration, declSourceFile, modifierFlags, token }: TypeLikeDeclarationInfo): CodeFixAction | undefined { + if (isInterfaceDeclaration(parentDeclaration) || isTypeLiteralNode(parentDeclaration)) { return undefined; } @@ -262,7 +266,7 @@ namespace ts.codefix { return createCodeFixAction(fixMissingMember, changes, [diagnostic, token.text], fixMissingMember, Diagnostics.Add_all_missing_members); } - function addMissingMemberInJs(changeTracker: textChanges.ChangeTracker, declSourceFile: SourceFile, classDeclaration: ClassLikeDeclaration, token: Identifier | PrivateIdentifier, makeStatic: boolean): void { + function addMissingMemberInJs(changeTracker: textChanges.ChangeTracker, sourceFile: SourceFile, classDeclaration: ClassLikeDeclaration, token: Identifier | PrivateIdentifier, makeStatic: boolean): void { const tokenName = token.text; if (makeStatic) { if (classDeclaration.kind === SyntaxKind.ClassExpression) { @@ -270,7 +274,7 @@ namespace ts.codefix { } const className = classDeclaration.name!.getText(); const staticInitialization = initializePropertyToUndefined(factory.createIdentifier(className), tokenName); - changeTracker.insertNodeAfter(declSourceFile, classDeclaration, staticInitialization); + changeTracker.insertNodeAfter(sourceFile, classDeclaration, staticInitialization); } else if (isPrivateIdentifier(token)) { const property = factory.createPropertyDeclaration( @@ -283,10 +287,10 @@ namespace ts.codefix { const lastProp = getNodeToInsertPropertyAfter(classDeclaration); if (lastProp) { - changeTracker.insertNodeAfter(declSourceFile, lastProp, property); + changeTracker.insertNodeAfter(sourceFile, lastProp, property); } else { - changeTracker.insertNodeAtClassStart(declSourceFile, classDeclaration, property); + changeTracker.insertMemberAtStart(sourceFile, classDeclaration, property); } } else { @@ -295,7 +299,7 @@ namespace ts.codefix { return; } const propertyInitialization = initializePropertyToUndefined(factory.createThis(), tokenName); - changeTracker.insertNodeAtConstructorEnd(declSourceFile, classConstructor, propertyInitialization); + changeTracker.insertNodeAtConstructorEnd(sourceFile, classConstructor, propertyInitialization); } } @@ -303,7 +307,7 @@ namespace ts.codefix { return factory.createExpressionStatement(factory.createAssignment(factory.createPropertyAccessExpression(obj, propertyName), createUndefined())); } - function createActionsForAddMissingMemberInTypeScriptFile(context: CodeFixContext, { parentDeclaration, declSourceFile, modifierFlags, token }: ClassOrInterfaceInfo): CodeFixAction[] | undefined { + function createActionsForAddMissingMemberInTypeScriptFile(context: CodeFixContext, { parentDeclaration, declSourceFile, modifierFlags, token }: TypeLikeDeclarationInfo): CodeFixAction[] | undefined { const memberName = token.text; const isStatic = modifierFlags & ModifierFlags.Static; const typeNode = getTypeNode(context.program.getTypeChecker(), parentDeclaration, token); @@ -322,13 +326,13 @@ namespace ts.codefix { return actions; } - function getTypeNode(checker: TypeChecker, classDeclaration: ClassOrInterface, token: Node) { + function getTypeNode(checker: TypeChecker, node: ClassLikeDeclaration | InterfaceDeclaration | TypeLiteralNode, token: Node) { let typeNode: TypeNode | undefined; if (token.parent.parent.kind === SyntaxKind.BinaryExpression) { const binaryExpression = token.parent.parent as BinaryExpression; const otherExpression = token.parent === binaryExpression.left ? binaryExpression.right : binaryExpression.left; const widenedType = checker.getWidenedType(checker.getBaseTypeOfLiteralType(checker.getTypeAtLocation(otherExpression))); - typeNode = checker.typeToTypeNode(widenedType, classDeclaration, NodeBuilderFlags.NoTruncation); + typeNode = checker.typeToTypeNode(widenedType, node, NodeBuilderFlags.NoTruncation); } else { const contextualType = checker.getContextualType(token.parent as Expression); @@ -337,35 +341,33 @@ namespace ts.codefix { return typeNode || factory.createKeywordTypeNode(SyntaxKind.AnyKeyword); } - function addPropertyDeclaration(changeTracker: textChanges.ChangeTracker, declSourceFile: SourceFile, classDeclaration: ClassOrInterface, tokenName: string, typeNode: TypeNode, modifierFlags: ModifierFlags): void { - const property = factory.createPropertyDeclaration( - /*decorators*/ undefined, - /*modifiers*/ modifierFlags ? factory.createNodeArray(factory.createModifiersFromModifierFlags(modifierFlags)) : undefined, - tokenName, - /*questionToken*/ undefined, - typeNode, - /*initializer*/ undefined); + function addPropertyDeclaration(changeTracker: textChanges.ChangeTracker, sourceFile: SourceFile, node: ClassLikeDeclaration | InterfaceDeclaration | TypeLiteralNode, tokenName: string, typeNode: TypeNode, modifierFlags: ModifierFlags): void { + const modifiers = modifierFlags ? factory.createNodeArray(factory.createModifiersFromModifierFlags(modifierFlags)) : undefined; - const lastProp = getNodeToInsertPropertyAfter(classDeclaration); + const property = isClassLike(node) + ? factory.createPropertyDeclaration(/*decorators*/ undefined, modifiers, tokenName, /*questionToken*/ undefined, typeNode, /*initializer*/ undefined) + : factory.createPropertySignature(/*modifiers*/ undefined, tokenName, /*questionToken*/ undefined, typeNode); + + const lastProp = getNodeToInsertPropertyAfter(node); if (lastProp) { - changeTracker.insertNodeAfter(declSourceFile, lastProp, property); + changeTracker.insertNodeAfter(sourceFile, lastProp, property); } else { - changeTracker.insertNodeAtClassStart(declSourceFile, classDeclaration, property); + changeTracker.insertMemberAtStart(sourceFile, node, property); } } // Gets the last of the first run of PropertyDeclarations, or undefined if the class does not start with a PropertyDeclaration. - function getNodeToInsertPropertyAfter(cls: ClassOrInterface): PropertyDeclaration | undefined { + function getNodeToInsertPropertyAfter(node: ClassLikeDeclaration | InterfaceDeclaration | TypeLiteralNode): PropertyDeclaration | undefined { let res: PropertyDeclaration | undefined; - for (const member of cls.members) { + for (const member of node.members) { if (!isPropertyDeclaration(member)) break; res = member; } return res; } - function createAddIndexSignatureAction(context: CodeFixContext, declSourceFile: SourceFile, classDeclaration: ClassOrInterface, tokenName: string, typeNode: TypeNode): CodeFixAction { + function createAddIndexSignatureAction(context: CodeFixContext, sourceFile: SourceFile, node: ClassLikeDeclaration | InterfaceDeclaration | TypeLiteralNode, tokenName: string, typeNode: TypeNode): CodeFixAction { // Index signatures cannot have the static modifier. const stringTypeNode = factory.createKeywordTypeNode(SyntaxKind.StringKeyword); const indexingParameter = factory.createParameterDeclaration( @@ -382,12 +384,12 @@ namespace ts.codefix { [indexingParameter], typeNode); - const changes = textChanges.ChangeTracker.with(context, t => t.insertNodeAtClassStart(declSourceFile, classDeclaration, indexSignature)); + const changes = textChanges.ChangeTracker.with(context, t => t.insertMemberAtStart(sourceFile, node, indexSignature)); // No fixId here because code-fix-all currently only works on adding individual named properties. return createCodeFixActionWithoutFixAll(fixMissingMember, changes, [Diagnostics.Add_index_signature_for_property_0, tokenName]); } - function getActionsForMissingMethodDeclaration(context: CodeFixContext, info: ClassOrInterfaceInfo): CodeFixAction[] | undefined { + function getActionsForMissingMethodDeclaration(context: CodeFixContext, info: TypeLikeDeclarationInfo): CodeFixAction[] | undefined { const { parentDeclaration, declSourceFile, modifierFlags, token, call } = info; if (call === undefined) { return undefined; @@ -413,17 +415,18 @@ namespace ts.codefix { callExpression: CallExpression, name: Identifier, modifierFlags: ModifierFlags, - parentDeclaration: ClassOrInterface, + parentDeclaration: ClassLikeDeclaration | InterfaceDeclaration | TypeLiteralNode, sourceFile: SourceFile, ): void { const importAdder = createImportAdder(sourceFile, context.program, context.preferences, context.host); - const methodDeclaration = createSignatureDeclarationFromCallExpression(SyntaxKind.MethodDeclaration, context, importAdder, callExpression, name, modifierFlags, parentDeclaration) as MethodDeclaration; - const containingMethodDeclaration = findAncestor(callExpression, n => isMethodDeclaration(n) || isConstructorDeclaration(n)); - if (containingMethodDeclaration && containingMethodDeclaration.parent === parentDeclaration) { - changes.insertNodeAfter(sourceFile, containingMethodDeclaration, methodDeclaration); + const kind = isClassLike(parentDeclaration) ? SyntaxKind.MethodDeclaration : SyntaxKind.MethodSignature; + const signatureDeclaration = createSignatureDeclarationFromCallExpression(kind, context, importAdder, callExpression, name, modifierFlags, parentDeclaration) as MethodDeclaration; + const containingMethodDeclaration = tryGetContainingMethodDeclaration(parentDeclaration, callExpression); + if (containingMethodDeclaration) { + changes.insertNodeAfter(sourceFile, containingMethodDeclaration, signatureDeclaration); } else { - changes.insertNodeAtClassStart(sourceFile, parentDeclaration, methodDeclaration); + changes.insertMemberAtStart(sourceFile, parentDeclaration, signatureDeclaration); } importAdder.writeFixes(changes); } @@ -465,8 +468,12 @@ namespace ts.codefix { const jsxAttributesNode = info.parentDeclaration.attributes; const hasSpreadAttribute = some(jsxAttributesNode.properties, isJsxSpreadAttribute); const attrs = map(info.attributes, attr => { - const value = attr.valueDeclaration ? tryGetValueFromType(context, checker, importAdder, quotePreference, checker.getTypeAtLocation(attr.valueDeclaration)) : createUndefined(); - return factory.createJsxAttribute(factory.createIdentifier(attr.name), factory.createJsxExpression(/*dotDotDotToken*/ undefined, value)); + const value = tryGetValueFromType(context, checker, importAdder, quotePreference, checker.getTypeOfSymbol(attr)); + const name = factory.createIdentifier(attr.name); + const jsxAttribute = factory.createJsxAttribute(name, factory.createJsxExpression(/*dotDotDotToken*/ undefined, value)); + // formattingScanner requires the Identifier to have a context for scanning attributes with "-" (data-foo). + setParent(name, jsxAttribute); + return jsxAttribute; }); const jsxAttributes = factory.createJsxAttributes(hasSpreadAttribute ? [...attrs, ...jsxAttributesNode.properties] : [...jsxAttributesNode.properties, ...attrs]); const options = { prefix: jsxAttributesNode.pos === jsxAttributesNode.end ? " " : undefined }; @@ -476,10 +483,11 @@ namespace ts.codefix { function addObjectLiteralProperties(changes: textChanges.ChangeTracker, context: CodeFixContextBase, info: ObjectLiteralInfo) { const importAdder = createImportAdder(context.sourceFile, context.program, context.preferences, context.host); const quotePreference = getQuotePreference(context.sourceFile, context.preferences); + const target = getEmitScriptTarget(context.program.getCompilerOptions()); const checker = context.program.getTypeChecker(); const props = map(info.properties, prop => { - const initializer = prop.valueDeclaration ? tryGetValueFromType(context, checker, importAdder, quotePreference, checker.getTypeAtLocation(prop.valueDeclaration)) : createUndefined(); - return factory.createPropertyAssignment(prop.name, initializer); + const initializer = tryGetValueFromType(context, checker, importAdder, quotePreference, checker.getTypeOfSymbol(prop)); + return factory.createPropertyAssignment(createPropertyNameNodeForIdentifierOrLiteral(prop.name, target, quotePreference === QuotePreference.Single), initializer); }); const options = { leadingTriviaOption: textChanges.LeadingTriviaOption.Exclude, @@ -571,7 +579,7 @@ namespace ts.codefix { ((getObjectFlags(type) & ObjectFlags.ObjectLiteral) || (type.symbol && tryCast(singleOrUndefined(type.symbol.declarations), isTypeLiteralNode))); } - function getUnmatchedAttributes(checker: TypeChecker, source: JsxOpeningLikeElement) { + function getUnmatchedAttributes(checker: TypeChecker, target: ScriptTarget, source: JsxOpeningLikeElement) { const attrsType = checker.getContextualType(source.attributes); if (attrsType === undefined) return emptyArray; @@ -591,6 +599,14 @@ namespace ts.codefix { } } return filter(targetProps, targetProp => - !((targetProp.flags & SymbolFlags.Optional || getCheckFlags(targetProp) & CheckFlags.Partial) || seenNames.has(targetProp.escapedName))); + isIdentifierText(targetProp.name, target, LanguageVariant.JSX) && !((targetProp.flags & SymbolFlags.Optional || getCheckFlags(targetProp) & CheckFlags.Partial) || seenNames.has(targetProp.escapedName))); + } + + function tryGetContainingMethodDeclaration(node: ClassLikeDeclaration | InterfaceDeclaration | TypeLiteralNode, callExpression: CallExpression) { + if (isTypeLiteralNode(node)) { + return undefined; + } + const declaration = findAncestor(callExpression, n => isMethodDeclaration(n) || isConstructorDeclaration(n)); + return declaration && declaration.parent === node ? declaration : undefined; } } diff --git a/src/services/codefixes/fixAddModuleReferTypeMissingTypeof.ts b/src/services/codefixes/fixAddModuleReferTypeMissingTypeof.ts index f8f5f74ba282c..cd647bc23578d 100644 --- a/src/services/codefixes/fixAddModuleReferTypeMissingTypeof.ts +++ b/src/services/codefixes/fixAddModuleReferTypeMissingTypeof.ts @@ -6,7 +6,7 @@ namespace ts.codefix { registerCodeFix({ errorCodes, - getCodeActions: context => { + getCodeActions: function getCodeActionsToAddMissingTypeof(context) { const { sourceFile, span } = context; const importType = getImportTypeNode(sourceFile, span.start); const changes = textChanges.ChangeTracker.with(context, t => doChange(t, sourceFile, importType)); diff --git a/src/services/codefixes/fixAwaitInSyncFunction.ts b/src/services/codefixes/fixAwaitInSyncFunction.ts index 0f0f2880ec325..085b2febcdf31 100644 --- a/src/services/codefixes/fixAwaitInSyncFunction.ts +++ b/src/services/codefixes/fixAwaitInSyncFunction.ts @@ -4,6 +4,7 @@ namespace ts.codefix { const errorCodes = [ Diagnostics.await_expressions_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules.code, Diagnostics.for_await_loops_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules.code, + Diagnostics.Cannot_find_name_0_Did_you_mean_to_write_this_in_an_async_function.code ]; registerCodeFix({ errorCodes, @@ -15,7 +16,7 @@ namespace ts.codefix { return [createCodeFixAction(fixId, changes, Diagnostics.Add_async_modifier_to_containing_function, fixId, Diagnostics.Add_all_missing_async_modifiers)]; }, fixIds: [fixId], - getAllCodeActions: context => { + getAllCodeActions: function getAllCodeActionsToFixAwaitInSyncFunction(context) { const seen = new Map(); return codeFixAll(context, errorCodes, (changes, diag) => { const nodes = getNodes(diag.file, diag.start); diff --git a/src/services/codefixes/fixCannotFindModule.ts b/src/services/codefixes/fixCannotFindModule.ts index c2cb825b5e03f..98c4f058d3f4f 100644 --- a/src/services/codefixes/fixCannotFindModule.ts +++ b/src/services/codefixes/fixCannotFindModule.ts @@ -10,7 +10,7 @@ namespace ts.codefix { ]; registerCodeFix({ errorCodes, - getCodeActions: context => { + getCodeActions: function getCodeActionsToFixNotFoundModule(context) { const { host, sourceFile, span: { start } } = context; const packageName = tryGetImportedPackageName(sourceFile, start); if (packageName === undefined) return undefined; diff --git a/src/services/codefixes/fixClassDoesntImplementInheritedAbstractMember.ts b/src/services/codefixes/fixClassDoesntImplementInheritedAbstractMember.ts index 9e8313f357b14..31e78e811413b 100644 --- a/src/services/codefixes/fixClassDoesntImplementInheritedAbstractMember.ts +++ b/src/services/codefixes/fixClassDoesntImplementInheritedAbstractMember.ts @@ -7,14 +7,14 @@ namespace ts.codefix { const fixId = "fixClassDoesntImplementInheritedAbstractMember"; registerCodeFix({ errorCodes, - getCodeActions(context) { + getCodeActions: function getCodeActionsToFixClassNotImplementingInheritedMembers(context) { const { sourceFile, span } = context; const changes = textChanges.ChangeTracker.with(context, t => addMissingMembers(getClass(sourceFile, span.start), sourceFile, context, t, context.preferences)); return changes.length === 0 ? undefined : [createCodeFixAction(fixId, changes, Diagnostics.Implement_inherited_abstract_class, fixId, Diagnostics.Implement_all_inherited_abstract_classes)]; }, fixIds: [fixId], - getAllCodeActions: context => { + getAllCodeActions: function getAllCodeActionsToFixClassDoesntImplementInheritedAbstractMember(context) { const seenClassDeclarations = new Map(); return codeFixAll(context, errorCodes, (changes, diag) => { const classDeclaration = getClass(diag.file, diag.start); @@ -42,7 +42,7 @@ namespace ts.codefix { const abstractAndNonPrivateExtendsSymbols = checker.getPropertiesOfType(instantiatedExtendsType).filter(symbolPointsToNonPrivateAndAbstractMember); const importAdder = createImportAdder(sourceFile, context.program, preferences, context.host); - createMissingMemberNodes(classDeclaration, abstractAndNonPrivateExtendsSymbols, sourceFile, context, preferences, importAdder, member => changeTracker.insertNodeAtClassStart(sourceFile, classDeclaration, member)); + createMissingMemberNodes(classDeclaration, abstractAndNonPrivateExtendsSymbols, sourceFile, context, preferences, importAdder, member => changeTracker.insertMemberAtStart(sourceFile, classDeclaration, member as ClassElement)); importAdder.writeFixes(changeTracker); } diff --git a/src/services/codefixes/fixClassIncorrectlyImplementsInterface.ts b/src/services/codefixes/fixClassIncorrectlyImplementsInterface.ts index e1f17cb2856fc..bb7d032390fb3 100644 --- a/src/services/codefixes/fixClassIncorrectlyImplementsInterface.ts +++ b/src/services/codefixes/fixClassIncorrectlyImplementsInterface.ts @@ -64,7 +64,7 @@ namespace ts.codefix { } const importAdder = createImportAdder(sourceFile, context.program, preferences, context.host); - createMissingMemberNodes(classDeclaration, nonPrivateAndNotExistedInHeritageClauseMembers, sourceFile, context, preferences, importAdder, member => insertInterfaceMemberNode(sourceFile, classDeclaration, member)); + createMissingMemberNodes(classDeclaration, nonPrivateAndNotExistedInHeritageClauseMembers, sourceFile, context, preferences, importAdder, member => insertInterfaceMemberNode(sourceFile, classDeclaration, member as ClassElement)); importAdder.writeFixes(changeTracker); function createMissingIndexSignatureDeclaration(type: InterfaceType, kind: IndexKind): void { @@ -80,7 +80,7 @@ namespace ts.codefix { changeTracker.insertNodeAfter(sourceFile, constructor, newElement); } else { - changeTracker.insertNodeAtClassStart(sourceFile, cls, newElement); + changeTracker.insertMemberAtStart(sourceFile, cls, newElement); } } } diff --git a/src/services/codefixes/fixEnableExperimentalDecorators.ts b/src/services/codefixes/fixEnableExperimentalDecorators.ts index 13ff16945a477..5af8e8d248e22 100644 --- a/src/services/codefixes/fixEnableExperimentalDecorators.ts +++ b/src/services/codefixes/fixEnableExperimentalDecorators.ts @@ -6,7 +6,7 @@ namespace ts.codefix { ]; registerCodeFix({ errorCodes, - getCodeActions: (context) => { + getCodeActions: function getCodeActionsToEnableExperimentalDecorators(context) { const { configFile } = context.program.getCompilerOptions(); if (configFile === undefined) { return undefined; diff --git a/src/services/codefixes/fixEnableJsxFlag.ts b/src/services/codefixes/fixEnableJsxFlag.ts index f077880bc3c42..a77f93993689e 100644 --- a/src/services/codefixes/fixEnableJsxFlag.ts +++ b/src/services/codefixes/fixEnableJsxFlag.ts @@ -4,7 +4,7 @@ namespace ts.codefix { const errorCodes = [Diagnostics.Cannot_use_JSX_unless_the_jsx_flag_is_provided.code]; registerCodeFix({ errorCodes, - getCodeActions: context => { + getCodeActions: function getCodeActionsToFixEnableJsxFlag(context) { const { configFile } = context.program.getCompilerOptions(); if (configFile === undefined) { return undefined; diff --git a/src/services/codefixes/fixImplicitThis.ts b/src/services/codefixes/fixImplicitThis.ts index 91758428c8b14..a373c2830529f 100644 --- a/src/services/codefixes/fixImplicitThis.ts +++ b/src/services/codefixes/fixImplicitThis.ts @@ -4,7 +4,7 @@ namespace ts.codefix { const errorCodes = [Diagnostics.this_implicitly_has_type_any_because_it_does_not_have_a_type_annotation.code]; registerCodeFix({ errorCodes, - getCodeActions(context) { + getCodeActions: function getCodeActionsToFixImplicitThis(context) { const { sourceFile, program, span } = context; let diagnostic: DiagnosticAndArguments | undefined; const changes = textChanges.ChangeTracker.with(context, t => { @@ -20,15 +20,15 @@ namespace ts.codefix { function doChange(changes: textChanges.ChangeTracker, sourceFile: SourceFile, pos: number, checker: TypeChecker): DiagnosticAndArguments | undefined { const token = getTokenAtPosition(sourceFile, pos); - Debug.assert(token.kind === SyntaxKind.ThisKeyword); + if (!isThis(token)) return undefined; const fn = getThisContainer(token, /*includeArrowFunctions*/ false); if (!isFunctionDeclaration(fn) && !isFunctionExpression(fn)) return undefined; if (!isSourceFile(getThisContainer(fn, /*includeArrowFunctions*/ false))) { // 'this' is defined outside, convert to arrow function - const fnKeyword = Debug.assertDefined(findChildOfKind(fn, SyntaxKind.FunctionKeyword, sourceFile)); + const fnKeyword = Debug.checkDefined(findChildOfKind(fn, SyntaxKind.FunctionKeyword, sourceFile)); const { name } = fn; - const body = Debug.assertDefined(fn.body); // Should be defined because the function contained a 'this' expression + const body = Debug.checkDefined(fn.body); // Should be defined because the function contained a 'this' expression if (isFunctionExpression(fn)) { if (name && FindAllReferences.Core.isSymbolReferencedInFile(name, checker, sourceFile, body)) { // Function expression references itself. To fix we would have to extract it to a const. diff --git a/src/services/codefixes/fixIncorrectNamedTupleSyntax.ts b/src/services/codefixes/fixIncorrectNamedTupleSyntax.ts index a806e19f654c2..084adb2404b69 100644 --- a/src/services/codefixes/fixIncorrectNamedTupleSyntax.ts +++ b/src/services/codefixes/fixIncorrectNamedTupleSyntax.ts @@ -8,7 +8,7 @@ namespace ts.codefix { registerCodeFix({ errorCodes, - getCodeActions: context => { + getCodeActions: function getCodeActionsToFixIncorrectNamedTupleSyntax(context) { const { sourceFile, span } = context; const namedTupleMember = getNamedTupleMember(sourceFile, span.start); const changes = textChanges.ChangeTracker.with(context, t => doChange(t, sourceFile, namedTupleMember)); diff --git a/src/services/codefixes/fixModuleAndTargetOptions.ts b/src/services/codefixes/fixModuleAndTargetOptions.ts index ca7ab71f9a0c1..3aabc896b5ac5 100644 --- a/src/services/codefixes/fixModuleAndTargetOptions.ts +++ b/src/services/codefixes/fixModuleAndTargetOptions.ts @@ -5,7 +5,7 @@ namespace ts.codefix { Diagnostics.The_0_setting_1_does_not_support_top_level_await_expressions_Consider_switching_to_2.code, Diagnostics.The_0_setting_1_does_not_support_top_level_for_await_loops_Consider_switching_to_2.code, ], - getCodeActions: context => { + getCodeActions: function getCodeActionsToFixModuleAndTarget(context) { const compilerOptions = context.program.getCompilerOptions(); const { configFile } = compilerOptions; if (configFile === undefined) { diff --git a/src/services/codefixes/fixOverrideModifier.ts b/src/services/codefixes/fixOverrideModifier.ts index d267dececcf70..1eb9531130d3e 100644 --- a/src/services/codefixes/fixOverrideModifier.ts +++ b/src/services/codefixes/fixOverrideModifier.ts @@ -17,37 +17,81 @@ namespace ts.codefix { Diagnostics.This_member_cannot_have_an_override_modifier_because_its_containing_class_0_does_not_extend_another_class.code, Diagnostics.This_member_must_have_an_override_modifier_because_it_overrides_an_abstract_method_that_is_declared_in_the_base_class_0.code, Diagnostics.This_member_must_have_an_override_modifier_because_it_overrides_a_member_in_the_base_class_0.code, - Diagnostics.This_parameter_property_must_have_an_override_modifier_because_it_overrides_a_member_in_base_class_0.code + Diagnostics.This_parameter_property_must_have_an_override_modifier_because_it_overrides_a_member_in_base_class_0.code, + Diagnostics.This_member_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0.code, + Diagnostics.This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_its_containing_class_0_does_not_extend_another_class.code, + Diagnostics.This_parameter_property_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0.code, + Diagnostics.This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base_class_0.code, ]; - const errorCodeFixIdMap: Record = { - [Diagnostics.This_member_must_have_an_override_modifier_because_it_overrides_a_member_in_the_base_class_0.code]: [ - Diagnostics.Add_override_modifier, fixAddOverrideId, Diagnostics.Add_all_missing_override_modifiers, - ], - [Diagnostics.This_member_cannot_have_an_override_modifier_because_its_containing_class_0_does_not_extend_another_class.code]: [ - Diagnostics.Remove_override_modifier, fixRemoveOverrideId, Diagnostics.Remove_all_unnecessary_override_modifiers - ], - [Diagnostics.This_parameter_property_must_have_an_override_modifier_because_it_overrides_a_member_in_base_class_0.code]: [ - Diagnostics.Add_override_modifier, fixAddOverrideId, Diagnostics.Add_all_missing_override_modifiers, - ], - [Diagnostics.This_member_must_have_an_override_modifier_because_it_overrides_an_abstract_method_that_is_declared_in_the_base_class_0.code]: [ - Diagnostics.Add_override_modifier, fixAddOverrideId, Diagnostics.Remove_all_unnecessary_override_modifiers - ], - [Diagnostics.This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0.code]: [ - Diagnostics.Remove_override_modifier, fixRemoveOverrideId, Diagnostics.Remove_all_unnecessary_override_modifiers - ] + interface ErrorCodeFixInfo { + descriptions: DiagnosticMessage; + fixId?: string | undefined; + fixAllDescriptions?: DiagnosticMessage | undefined; + } + + const errorCodeFixIdMap: Record = { + // case #1: + [Diagnostics.This_member_must_have_an_override_modifier_because_it_overrides_a_member_in_the_base_class_0.code]: { + descriptions: Diagnostics.Add_override_modifier, + fixId: fixAddOverrideId, + fixAllDescriptions: Diagnostics.Add_all_missing_override_modifiers, + }, + [Diagnostics.This_member_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0.code]: { + descriptions: Diagnostics.Add_override_modifier, + fixId: fixAddOverrideId, + fixAllDescriptions: Diagnostics.Add_all_missing_override_modifiers + }, + // case #2: + [Diagnostics.This_member_cannot_have_an_override_modifier_because_its_containing_class_0_does_not_extend_another_class.code]: { + descriptions: Diagnostics.Remove_override_modifier, + fixId: fixRemoveOverrideId, + fixAllDescriptions: Diagnostics.Remove_all_unnecessary_override_modifiers, + }, + [Diagnostics.This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_its_containing_class_0_does_not_extend_another_class.code]: { + descriptions: Diagnostics.Remove_override_modifier, + fixId: fixRemoveOverrideId, + fixAllDescriptions: Diagnostics.Remove_override_modifier + }, + // case #3: + [Diagnostics.This_parameter_property_must_have_an_override_modifier_because_it_overrides_a_member_in_base_class_0.code]: { + descriptions: Diagnostics.Add_override_modifier, + fixId: fixAddOverrideId, + fixAllDescriptions: Diagnostics.Add_all_missing_override_modifiers, + }, + [Diagnostics.This_parameter_property_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0.code]: { + descriptions: Diagnostics.Add_override_modifier, + fixId: fixAddOverrideId, + fixAllDescriptions: Diagnostics.Add_all_missing_override_modifiers, + }, + // case #4: + [Diagnostics.This_member_must_have_an_override_modifier_because_it_overrides_an_abstract_method_that_is_declared_in_the_base_class_0.code]: { + descriptions: Diagnostics.Add_override_modifier, + fixId: fixAddOverrideId, + fixAllDescriptions: Diagnostics.Remove_all_unnecessary_override_modifiers, + }, + // case #5: + [Diagnostics.This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0.code]: { + descriptions: Diagnostics.Remove_override_modifier, + fixId: fixRemoveOverrideId, + fixAllDescriptions: Diagnostics.Remove_all_unnecessary_override_modifiers, + }, + [Diagnostics.This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base_class_0.code]: { + descriptions: Diagnostics.Remove_override_modifier, + fixId: fixRemoveOverrideId, + fixAllDescriptions: Diagnostics.Remove_all_unnecessary_override_modifiers, + } }; registerCodeFix({ errorCodes, - getCodeActions: context => { - const { errorCode, span, sourceFile } = context; + getCodeActions: function getCodeActionsToFixOverrideModifierIssues(context) { + const { errorCode, span } = context; const info = errorCodeFixIdMap[errorCode]; if (!info) return emptyArray; - const [ descriptions, fixId, fixAllDescriptions ] = info; - if (isSourceFileJS(sourceFile)) return emptyArray; + const { descriptions, fixId, fixAllDescriptions } = info; const changes = textChanges.ChangeTracker.with(context, changes => dispatchChanges(changes, context, errorCode, span.start)); return [ @@ -57,9 +101,9 @@ namespace ts.codefix { fixIds: [fixName, fixAddOverrideId, fixRemoveOverrideId], getAllCodeActions: context => codeFixAll(context, errorCodes, (changes, diag) => { - const { code, start, file } = diag; + const { code, start } = diag; const info = errorCodeFixIdMap[code]; - if (!info || info[1] !== context.fixId || isSourceFileJS(file)) { + if (!info || info.fixId !== context.fixId) { return; } @@ -74,11 +118,15 @@ namespace ts.codefix { pos: number) { switch (errorCode) { case Diagnostics.This_member_must_have_an_override_modifier_because_it_overrides_a_member_in_the_base_class_0.code: + case Diagnostics.This_member_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0.code: case Diagnostics.This_member_must_have_an_override_modifier_because_it_overrides_an_abstract_method_that_is_declared_in_the_base_class_0.code: case Diagnostics.This_parameter_property_must_have_an_override_modifier_because_it_overrides_a_member_in_base_class_0.code: + case Diagnostics.This_parameter_property_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0.code: return doAddOverrideModifierChange(changeTracker, context.sourceFile, pos); case Diagnostics.This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0.code: + case Diagnostics.This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base_class_0.code: case Diagnostics.This_member_cannot_have_an_override_modifier_because_its_containing_class_0_does_not_extend_another_class.code: + case Diagnostics.This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_its_containing_class_0_does_not_extend_another_class.code: return doRemoveOverrideModifierChange(changeTracker, context.sourceFile, pos); default: Debug.fail("Unexpected error code: " + errorCode); @@ -87,6 +135,10 @@ namespace ts.codefix { function doAddOverrideModifierChange(changeTracker: textChanges.ChangeTracker, sourceFile: SourceFile, pos: number) { const classElement = findContainerClassElementLike(sourceFile, pos); + if (isSourceFileJS(sourceFile)) { + changeTracker.addJSDocTags(sourceFile, classElement, [factory.createJSDocOverrideTag(factory.createIdentifier("override"))]); + return; + } const modifiers = classElement.modifiers || emptyArray; const staticModifier = find(modifiers, isStaticModifier); const abstractModifier = find(modifiers, isAbstractModifier); @@ -101,6 +153,10 @@ namespace ts.codefix { function doRemoveOverrideModifierChange(changeTracker: textChanges.ChangeTracker, sourceFile: SourceFile, pos: number) { const classElement = findContainerClassElementLike(sourceFile, pos); + if (isSourceFileJS(sourceFile)) { + changeTracker.filterJSDocTags(sourceFile, classElement, not(isJSDocOverrideTag)); + return; + } const overrideModifier = classElement.modifiers && find(classElement.modifiers, modifier => modifier.kind === SyntaxKind.OverrideKeyword); Debug.assertIsDefined(overrideModifier); diff --git a/src/services/codefixes/fixReturnTypeInAsyncFunction.ts b/src/services/codefixes/fixReturnTypeInAsyncFunction.ts index 6d27b8030d574..15b3722fd45ae 100644 --- a/src/services/codefixes/fixReturnTypeInAsyncFunction.ts +++ b/src/services/codefixes/fixReturnTypeInAsyncFunction.ts @@ -15,7 +15,7 @@ namespace ts.codefix { registerCodeFix({ errorCodes, fixIds: [fixId], - getCodeActions: context => { + getCodeActions: function getCodeActionsToFixReturnTypeInAsyncFunction(context) { const { sourceFile, program, span } = context; const checker = program.getTypeChecker(); const info = getInfo(sourceFile, program.getTypeChecker(), span.start); diff --git a/src/services/codefixes/fixStrictClassInitialization.ts b/src/services/codefixes/fixStrictClassInitialization.ts index 37cb7ffa74224..67f5e41f7d485 100644 --- a/src/services/codefixes/fixStrictClassInitialization.ts +++ b/src/services/codefixes/fixStrictClassInitialization.ts @@ -7,38 +7,34 @@ namespace ts.codefix { const errorCodes = [Diagnostics.Property_0_has_no_initializer_and_is_not_definitely_assigned_in_the_constructor.code]; registerCodeFix({ errorCodes, - getCodeActions: (context) => { - const propertyDeclaration = getPropertyDeclaration(context.sourceFile, context.span.start); - if (!propertyDeclaration) return; - - const result = [ - getActionForAddMissingUndefinedType(context, propertyDeclaration), - getActionForAddMissingDefiniteAssignmentAssertion(context, propertyDeclaration) - ]; - - append(result, getActionForAddMissingInitializer(context, propertyDeclaration)); - + getCodeActions: function getCodeActionsForStrictClassInitializationErrors(context) { + const info = getInfo(context.sourceFile, context.span.start); + if (!info) return; + + const result: CodeFixAction[] = []; + append(result, getActionForAddMissingUndefinedType(context, info)); + append(result, getActionForAddMissingDefiniteAssignmentAssertion(context, info)); + append(result, getActionForAddMissingInitializer(context, info)); return result; }, fixIds: [fixIdAddDefiniteAssignmentAssertions, fixIdAddUndefinedType, fixIdAddInitializer], getAllCodeActions: context => { return codeFixAll(context, errorCodes, (changes, diag) => { - const propertyDeclaration = getPropertyDeclaration(diag.file, diag.start); - if (!propertyDeclaration) return; + const info = getInfo(diag.file, diag.start); + if (!info) return; switch (context.fixId) { case fixIdAddDefiniteAssignmentAssertions: - addDefiniteAssignmentAssertion(changes, diag.file, propertyDeclaration); + addDefiniteAssignmentAssertion(changes, diag.file, info.prop); break; case fixIdAddUndefinedType: - addUndefinedType(changes, diag.file, propertyDeclaration); + addUndefinedType(changes, diag.file, info); break; case fixIdAddInitializer: const checker = context.program.getTypeChecker(); - const initializer = getInitializer(checker, propertyDeclaration); + const initializer = getInitializer(checker, info.prop); if (!initializer) return; - - addInitializer(changes, diag.file, propertyDeclaration, initializer); + addInitializer(changes, diag.file, info.prop, initializer); break; default: Debug.fail(JSON.stringify(context.fixId)); @@ -47,17 +43,31 @@ namespace ts.codefix { }, }); - function getPropertyDeclaration(sourceFile: SourceFile, pos: number): PropertyDeclaration | undefined { + interface Info { + prop: PropertyDeclaration; + type: TypeNode; + isJs: boolean; + } + + function getInfo(sourceFile: SourceFile, pos: number): Info | undefined { const token = getTokenAtPosition(sourceFile, pos); - return isIdentifier(token) ? cast(token.parent, isPropertyDeclaration) : undefined; + if (isIdentifier(token) && isPropertyDeclaration(token.parent)) { + const type = getEffectiveTypeAnnotationNode(token.parent); + if (type) { + return { type, prop: token.parent, isJs: isInJSFile(token.parent) }; + } + } + return undefined; } - function getActionForAddMissingDefiniteAssignmentAssertion(context: CodeFixContext, propertyDeclaration: PropertyDeclaration): CodeFixAction { - const changes = textChanges.ChangeTracker.with(context, t => addDefiniteAssignmentAssertion(t, context.sourceFile, propertyDeclaration)); - return createCodeFixAction(fixName, changes, [Diagnostics.Add_definite_assignment_assertion_to_property_0, propertyDeclaration.getText()], fixIdAddDefiniteAssignmentAssertions, Diagnostics.Add_definite_assignment_assertions_to_all_uninitialized_properties); + function getActionForAddMissingDefiniteAssignmentAssertion(context: CodeFixContext, info: Info): CodeFixAction | undefined { + if (info.isJs) return undefined; + const changes = textChanges.ChangeTracker.with(context, t => addDefiniteAssignmentAssertion(t, context.sourceFile, info.prop)); + return createCodeFixAction(fixName, changes, [Diagnostics.Add_definite_assignment_assertion_to_property_0, info.prop.getText()], fixIdAddDefiniteAssignmentAssertions, Diagnostics.Add_definite_assignment_assertions_to_all_uninitialized_properties); } function addDefiniteAssignmentAssertion(changeTracker: textChanges.ChangeTracker, propertyDeclarationSourceFile: SourceFile, propertyDeclaration: PropertyDeclaration): void { + suppressLeadingAndTrailingTrivia(propertyDeclaration); const property = factory.updatePropertyDeclaration( propertyDeclaration, propertyDeclaration.decorators, @@ -70,28 +80,36 @@ namespace ts.codefix { changeTracker.replaceNode(propertyDeclarationSourceFile, propertyDeclaration, property); } - function getActionForAddMissingUndefinedType(context: CodeFixContext, propertyDeclaration: PropertyDeclaration): CodeFixAction { - const changes = textChanges.ChangeTracker.with(context, t => addUndefinedType(t, context.sourceFile, propertyDeclaration)); - return createCodeFixAction(fixName, changes, [Diagnostics.Add_undefined_type_to_property_0, propertyDeclaration.name.getText()], fixIdAddUndefinedType, Diagnostics.Add_undefined_type_to_all_uninitialized_properties); + function getActionForAddMissingUndefinedType(context: CodeFixContext, info: Info): CodeFixAction { + const changes = textChanges.ChangeTracker.with(context, t => addUndefinedType(t, context.sourceFile, info)); + return createCodeFixAction(fixName, changes, [Diagnostics.Add_undefined_type_to_property_0, info.prop.name.getText()], fixIdAddUndefinedType, Diagnostics.Add_undefined_type_to_all_uninitialized_properties); } - function addUndefinedType(changeTracker: textChanges.ChangeTracker, propertyDeclarationSourceFile: SourceFile, propertyDeclaration: PropertyDeclaration): void { + function addUndefinedType(changeTracker: textChanges.ChangeTracker, sourceFile: SourceFile, info: Info): void { const undefinedTypeNode = factory.createKeywordTypeNode(SyntaxKind.UndefinedKeyword); - const type = propertyDeclaration.type!; // TODO: GH#18217 - const types = isUnionTypeNode(type) ? type.types.concat(undefinedTypeNode) : [type, undefinedTypeNode]; - changeTracker.replaceNode(propertyDeclarationSourceFile, type, factory.createUnionTypeNode(types)); + const types = isUnionTypeNode(info.type) ? info.type.types.concat(undefinedTypeNode) : [info.type, undefinedTypeNode]; + const unionTypeNode = factory.createUnionTypeNode(types); + if (info.isJs) { + changeTracker.addJSDocTags(sourceFile, info.prop, [factory.createJSDocTypeTag(/*tagName*/ undefined, factory.createJSDocTypeExpression(unionTypeNode))]); + } + else { + changeTracker.replaceNode(sourceFile, info.type, unionTypeNode); + } } - function getActionForAddMissingInitializer(context: CodeFixContext, propertyDeclaration: PropertyDeclaration): CodeFixAction | undefined { + function getActionForAddMissingInitializer(context: CodeFixContext, info: Info): CodeFixAction | undefined { + if (info.isJs) return undefined; + const checker = context.program.getTypeChecker(); - const initializer = getInitializer(checker, propertyDeclaration); + const initializer = getInitializer(checker, info.prop); if (!initializer) return undefined; - const changes = textChanges.ChangeTracker.with(context, t => addInitializer(t, context.sourceFile, propertyDeclaration, initializer)); - return createCodeFixAction(fixName, changes, [Diagnostics.Add_initializer_to_property_0, propertyDeclaration.name.getText()], fixIdAddInitializer, Diagnostics.Add_initializers_to_all_uninitialized_properties); + const changes = textChanges.ChangeTracker.with(context, t => addInitializer(t, context.sourceFile, info.prop, initializer)); + return createCodeFixAction(fixName, changes, [Diagnostics.Add_initializer_to_property_0, info.prop.name.getText()], fixIdAddInitializer, Diagnostics.Add_initializers_to_all_uninitialized_properties); } function addInitializer(changeTracker: textChanges.ChangeTracker, propertyDeclarationSourceFile: SourceFile, propertyDeclaration: PropertyDeclaration, initializer: Expression): void { + suppressLeadingAndTrailingTrivia(propertyDeclaration); const property = factory.updatePropertyDeclaration( propertyDeclaration, propertyDeclaration.decorators, diff --git a/src/services/codefixes/fixUnmatchedParameter.ts b/src/services/codefixes/fixUnmatchedParameter.ts new file mode 100644 index 0000000000000..b0dc5db0a85ae --- /dev/null +++ b/src/services/codefixes/fixUnmatchedParameter.ts @@ -0,0 +1,104 @@ +/* @internal */ +namespace ts.codefix { + const deleteUnmatchedParameter = "deleteUnmatchedParameter"; + const renameUnmatchedParameter = "renameUnmatchedParameter"; + + const errorCodes = [ + Diagnostics.JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name.code, + ]; + + registerCodeFix({ + fixIds: [deleteUnmatchedParameter, renameUnmatchedParameter], + errorCodes, + getCodeActions: function getCodeActionsToFixUnmatchedParameter(context) { + const { sourceFile, span } = context; + const actions: CodeFixAction[] = []; + const info = getInfo(sourceFile, span.start); + if (info) { + append(actions, getDeleteAction(context, info)); + append(actions, getRenameAction(context, info)); + return actions; + } + return undefined; + }, + getAllCodeActions: function getAllCodeActionsToFixUnmatchedParameter(context) { + const tagsToSignature = new Map(); + return createCombinedCodeActions(textChanges.ChangeTracker.with(context, changes => { + eachDiagnostic(context, errorCodes, ({ file, start }) => { + const info = getInfo(file, start); + if (info) { + tagsToSignature.set(info.signature, append(tagsToSignature.get(info.signature), info.jsDocParameterTag)); + } + }); + + tagsToSignature.forEach((tags, signature) => { + if (context.fixId === deleteUnmatchedParameter) { + const tagsSet = new Set(tags); + changes.filterJSDocTags(signature.getSourceFile(), signature, t => !tagsSet.has(t)); + } + }); + })); + } + }); + + function getDeleteAction(context: CodeFixContext, { name, signature, jsDocParameterTag }: Info) { + const changes = textChanges.ChangeTracker.with(context, changeTracker => + changeTracker.filterJSDocTags(context.sourceFile, signature, t => t !== jsDocParameterTag)); + return createCodeFixAction( + deleteUnmatchedParameter, + changes, + [Diagnostics.Delete_unused_param_tag_0, name.getText(context.sourceFile)], + deleteUnmatchedParameter, + Diagnostics.Delete_all_unused_param_tags + ); + } + + function getRenameAction(context: CodeFixContext, { name, signature, jsDocParameterTag }: Info) { + if (!length(signature.parameters)) return undefined; + + const sourceFile = context.sourceFile; + const tags = getJSDocTags(signature); + const names = new Set<__String>(); + for (const tag of tags) { + if (isJSDocParameterTag(tag) && isIdentifier(tag.name)) { + names.add(tag.name.escapedText); + } + } + // @todo - match to all available names instead to the first parameter name + // @see /codeFixRenameUnmatchedParameter3.ts + const parameterName = firstDefined(signature.parameters, p => + isIdentifier(p.name) && !names.has(p.name.escapedText) ? p.name.getText(sourceFile) : undefined); + if (parameterName === undefined) return undefined; + + const newJSDocParameterTag = factory.updateJSDocParameterTag( + jsDocParameterTag, + jsDocParameterTag.tagName, + factory.createIdentifier(parameterName), + jsDocParameterTag.isBracketed, + jsDocParameterTag.typeExpression, + jsDocParameterTag.isNameFirst, + jsDocParameterTag.comment + ); + const changes = textChanges.ChangeTracker.with(context, changeTracker => + changeTracker.replaceJSDocComment(sourceFile, signature, map(tags, t => t === jsDocParameterTag ? newJSDocParameterTag : t))); + return createCodeFixActionWithoutFixAll(renameUnmatchedParameter, changes, [Diagnostics.Rename_param_tag_name_0_to_1, name.getText(sourceFile), parameterName]); + } + + interface Info { + readonly signature: SignatureDeclaration; + readonly jsDocParameterTag: JSDocParameterTag; + readonly name: Identifier; + } + + function getInfo(sourceFile: SourceFile, pos: number): Info | undefined { + const token = getTokenAtPosition(sourceFile, pos); + if (token.parent && isJSDocParameterTag(token.parent) && isIdentifier(token.parent.name)) { + const jsDocParameterTag = token.parent; + const signature = getHostSignatureFromJSDoc(jsDocParameterTag); + if (signature) { + return { signature, name: token.parent.name, jsDocParameterTag }; + } + } + return undefined; + } +} diff --git a/src/services/codefixes/fixUnreachableCode.ts b/src/services/codefixes/fixUnreachableCode.ts index d4d53c4d27f95..4e3f62d384e51 100644 --- a/src/services/codefixes/fixUnreachableCode.ts +++ b/src/services/codefixes/fixUnreachableCode.ts @@ -5,6 +5,8 @@ namespace ts.codefix { registerCodeFix({ errorCodes, getCodeActions(context) { + const syntacticDiagnostics = context.program.getSyntacticDiagnostics(context.sourceFile, context.cancellationToken); + if (syntacticDiagnostics.length) return; const changes = textChanges.ChangeTracker.with(context, t => doChange(t, context.sourceFile, context.span.start, context.span.length, context.errorCode)); return [createCodeFixAction(fixId, changes, Diagnostics.Remove_unreachable_code, fixId, Diagnostics.Remove_all_unreachable_code)]; }, diff --git a/src/services/codefixes/fixUnreferenceableDecoratorMetadata.ts b/src/services/codefixes/fixUnreferenceableDecoratorMetadata.ts new file mode 100644 index 0000000000000..30fefde64efed --- /dev/null +++ b/src/services/codefixes/fixUnreferenceableDecoratorMetadata.ts @@ -0,0 +1,70 @@ +/* @internal */ +namespace ts.codefix { + const fixId = "fixUnreferenceableDecoratorMetadata"; + const errorCodes = [Diagnostics.A_type_referenced_in_a_decorated_signature_must_be_imported_with_import_type_or_a_namespace_import_when_isolatedModules_and_emitDecoratorMetadata_are_enabled.code]; + registerCodeFix({ + errorCodes, + getCodeActions: context => { + const importDeclaration = getImportDeclaration(context.sourceFile, context.program, context.span.start); + if (!importDeclaration) return; + + const namespaceChanges = textChanges.ChangeTracker.with(context, t => importDeclaration.kind === SyntaxKind.ImportSpecifier && doNamespaceImportChange(t, context.sourceFile, importDeclaration, context.program)); + const typeOnlyChanges = textChanges.ChangeTracker.with(context, t => doTypeOnlyImportChange(t, context.sourceFile, importDeclaration, context.program)); + let actions: CodeFixAction[] | undefined; + if (namespaceChanges.length) { + actions = append(actions, createCodeFixActionWithoutFixAll(fixId, namespaceChanges, Diagnostics.Convert_named_imports_to_namespace_import)); + } + if (typeOnlyChanges.length) { + actions = append(actions, createCodeFixActionWithoutFixAll(fixId, typeOnlyChanges, Diagnostics.Convert_to_type_only_import)); + } + return actions; + }, + fixIds: [fixId], + }); + + function getImportDeclaration(sourceFile: SourceFile, program: Program, start: number): ImportClause | ImportSpecifier | ImportEqualsDeclaration | undefined { + const identifier = tryCast(getTokenAtPosition(sourceFile, start), isIdentifier); + if (!identifier || identifier.parent.kind !== SyntaxKind.TypeReference) return; + + const checker = program.getTypeChecker(); + const symbol = checker.getSymbolAtLocation(identifier); + return find(symbol?.declarations || emptyArray, or(isImportClause, isImportSpecifier, isImportEqualsDeclaration) as (n: Node) => n is ImportClause | ImportSpecifier | ImportEqualsDeclaration); + } + + // Converts the import declaration of the offending import to a type-only import, + // only if it can be done without affecting other imported names. If the conversion + // cannot be done cleanly, we could offer to *extract* the offending import to a + // new type-only import declaration, but honestly I doubt anyone will ever use this + // codefix at all, so it's probably not worth the lines of code. + function doTypeOnlyImportChange(changes: textChanges.ChangeTracker, sourceFile: SourceFile, importDeclaration: ImportClause | ImportSpecifier | ImportEqualsDeclaration, program: Program) { + if (importDeclaration.kind === SyntaxKind.ImportEqualsDeclaration) { + changes.insertModifierBefore(sourceFile, SyntaxKind.TypeKeyword, importDeclaration.name); + return; + } + + const importClause = importDeclaration.kind === SyntaxKind.ImportClause ? importDeclaration : importDeclaration.parent.parent; + if (importClause.name && importClause.namedBindings) { + // Cannot convert an import with a default import and named bindings to type-only + // (it's a grammar error). + return; + } + + const checker = program.getTypeChecker(); + const importsValue = !!forEachImportClauseDeclaration(importClause, decl => { + if (skipAlias(decl.symbol, checker).flags & SymbolFlags.Value) return true; + }); + + if (importsValue) { + // Assume that if someone wrote a non-type-only import that includes some values, + // they intend to use those values in value positions, even if they haven't yet. + // Don't convert it to type-only. + return; + } + + changes.insertModifierBefore(sourceFile, SyntaxKind.TypeKeyword, importClause); + } + + function doNamespaceImportChange(changes: textChanges.ChangeTracker, sourceFile: SourceFile, importDeclaration: ImportSpecifier, program: Program) { + refactor.doChangeNamedToNamespaceOrDefault(sourceFile, program, changes, importDeclaration.parent); + } +} diff --git a/src/services/codefixes/fixUnusedIdentifier.ts b/src/services/codefixes/fixUnusedIdentifier.ts index f11c6bce72fd0..df44b8b2e5a3b 100644 --- a/src/services/codefixes/fixUnusedIdentifier.ts +++ b/src/services/codefixes/fixUnusedIdentifier.ts @@ -316,6 +316,10 @@ namespace ts.codefix { // Setter must have a parameter return false; + case SyntaxKind.GetAccessor: + // Getter cannot have parameters + return true; + default: return Debug.failBadSyntaxKind(parent); } diff --git a/src/services/codefixes/generateAccessors.ts b/src/services/codefixes/generateAccessors.ts index 1e02160fbfc1d..92ad1f62f7b70 100644 --- a/src/services/codefixes/generateAccessors.ts +++ b/src/services/codefixes/generateAccessors.ts @@ -214,7 +214,7 @@ namespace ts.codefix { } function insertAccessor(changeTracker: textChanges.ChangeTracker, file: SourceFile, accessor: AccessorDeclaration, declaration: AcceptedDeclaration, container: ContainerDeclaration) { - isParameterPropertyDeclaration(declaration, declaration.parent) ? changeTracker.insertNodeAtClassStart(file, container as ClassLikeDeclaration, accessor) : + isParameterPropertyDeclaration(declaration, declaration.parent) ? changeTracker.insertMemberAtStart(file, container as ClassLikeDeclaration, accessor) : isPropertyAssignment(declaration) ? changeTracker.insertNodeAfterComma(file, declaration, accessor) : changeTracker.insertNodeAfter(file, declaration, accessor); } diff --git a/src/services/codefixes/helpers.ts b/src/services/codefixes/helpers.ts index 5cdf6fb4789d4..cc6575912beb1 100644 --- a/src/services/codefixes/helpers.ts +++ b/src/services/codefixes/helpers.ts @@ -7,11 +7,18 @@ namespace ts.codefix { * @param importAdder If provided, type annotations will use identifier type references instead of ImportTypeNodes, and the missing imports will be added to the importAdder. * @returns Empty string iff there are no member insertions. */ - export function createMissingMemberNodes(classDeclaration: ClassLikeDeclaration, possiblyMissingSymbols: readonly Symbol[], sourceFile: SourceFile, context: TypeConstructionContext, preferences: UserPreferences, importAdder: ImportAdder | undefined, addClassElement: (node: ClassElement) => void): void { + export function createMissingMemberNodes( + classDeclaration: ClassLikeDeclaration, + possiblyMissingSymbols: readonly Symbol[], + sourceFile: SourceFile, + context: TypeConstructionContext, + preferences: UserPreferences, + importAdder: ImportAdder | undefined, + addClassElement: (node: AddNode) => void): void { const classMembers = classDeclaration.symbol.members!; for (const symbol of possiblyMissingSymbols) { if (!classMembers.has(symbol.escapedName)) { - addNewNodeForMemberSymbol(symbol, classDeclaration, sourceFile, context, preferences, importAdder, addClassElement); + addNewNodeForMemberSymbol(symbol, classDeclaration, sourceFile, context, preferences, importAdder, addClassElement, /* body */ undefined); } } } @@ -28,10 +35,30 @@ namespace ts.codefix { host: LanguageServiceHost; } + type AddNode = PropertyDeclaration | GetAccessorDeclaration | SetAccessorDeclaration | MethodDeclaration | FunctionExpression | ArrowFunction; + + export const enum PreserveOptionalFlags { + Method = 1 << 0, + Property = 1 << 1, + All = Method | Property + } + /** - * @returns Empty string iff there we can't figure out a representation for `symbol` in `enclosingDeclaration`. + * `addClassElement` will not be called if we can't figure out a representation for `symbol` in `enclosingDeclaration`. + * @param body If defined, this will be the body of the member node passed to `addClassElement`. Otherwise, the body will default to a stub. */ - function addNewNodeForMemberSymbol(symbol: Symbol, enclosingDeclaration: ClassLikeDeclaration, sourceFile: SourceFile, context: TypeConstructionContext, preferences: UserPreferences, importAdder: ImportAdder | undefined, addClassElement: (node: Node) => void): void { + export function addNewNodeForMemberSymbol( + symbol: Symbol, + enclosingDeclaration: ClassLikeDeclaration, + sourceFile: SourceFile, + context: TypeConstructionContext, + preferences: UserPreferences, + importAdder: ImportAdder | undefined, + addClassElement: (node: AddNode) => void, + body: Block | undefined, + preserveOptional = PreserveOptionalFlags.All, + isAmbient = false, + ): void { const declarations = symbol.getDeclarations(); if (!(declarations && declarations.length)) { return undefined; @@ -44,7 +71,7 @@ namespace ts.codefix { const modifiers = visibilityModifier ? factory.createNodeArray([visibilityModifier]) : undefined; const type = checker.getWidenedType(checker.getTypeOfSymbolAtLocation(symbol, enclosingDeclaration)); const optional = !!(symbol.flags & SymbolFlags.Optional); - const ambient = !!(enclosingDeclaration.flags & NodeFlags.Ambient); + const ambient = !!(enclosingDeclaration.flags & NodeFlags.Ambient) || isAmbient; const quotePreference = getQuotePreference(sourceFile, preferences); switch (declaration.kind) { @@ -63,7 +90,7 @@ namespace ts.codefix { /*decorators*/ undefined, modifiers, name, - optional ? factory.createToken(SyntaxKind.QuestionToken) : undefined, + optional && (preserveOptional & PreserveOptionalFlags.Property) ? factory.createToken(SyntaxKind.QuestionToken) : undefined, typeNode, /*initializer*/ undefined)); break; @@ -89,7 +116,7 @@ namespace ts.codefix { name, emptyArray, typeNode, - ambient ? undefined : createStubbedMethodBody(quotePreference))); + ambient ? undefined : body || createStubbedMethodBody(quotePreference))); } else { Debug.assertNode(accessor, isSetAccessorDeclaration, "The counterpart to a getter should be a setter"); @@ -100,7 +127,7 @@ namespace ts.codefix { modifiers, name, createDummyParameters(1, [parameterName], [typeNode], 1, /*inJs*/ false), - ambient ? undefined : createStubbedMethodBody(quotePreference))); + ambient ? undefined : body || createStubbedMethodBody(quotePreference))); } } break; @@ -122,7 +149,7 @@ namespace ts.codefix { if (declarations.length === 1) { Debug.assert(signatures.length === 1, "One declaration implies one signature"); const signature = signatures[0]; - outputMethod(quotePreference, signature, modifiers, name, ambient ? undefined : createStubbedMethodBody(quotePreference)); + outputMethod(quotePreference, signature, modifiers, name, ambient ? undefined : body || createStubbedMethodBody(quotePreference)); break; } @@ -134,18 +161,18 @@ namespace ts.codefix { if (!ambient) { if (declarations.length > signatures.length) { const signature = checker.getSignatureFromDeclaration(declarations[declarations.length - 1] as SignatureDeclaration)!; - outputMethod(quotePreference, signature, modifiers, name, createStubbedMethodBody(quotePreference)); + outputMethod(quotePreference, signature, modifiers, name, body || createStubbedMethodBody(quotePreference)); } else { Debug.assert(declarations.length === signatures.length, "Declarations and signatures should match count"); - addClassElement(createMethodImplementingSignatures(checker, context, enclosingDeclaration, signatures, name, optional, modifiers, quotePreference)); + addClassElement(createMethodImplementingSignatures(checker, context, enclosingDeclaration, signatures, name, optional && !!(preserveOptional & PreserveOptionalFlags.Method), modifiers, quotePreference, body)); } } break; } function outputMethod(quotePreference: QuotePreference, signature: Signature, modifiers: NodeArray | undefined, name: PropertyName, body?: Block): void { - const method = createSignatureDeclarationFromSignature(SyntaxKind.MethodDeclaration, context, quotePreference, signature, body, name, modifiers, optional, enclosingDeclaration, importAdder); + const method = createSignatureDeclarationFromSignature(SyntaxKind.MethodDeclaration, context, quotePreference, signature, body, name, modifiers, optional && !!(preserveOptional & PreserveOptionalFlags.Method), enclosingDeclaration, importAdder); if (method) addClassElement(method); } } @@ -195,6 +222,7 @@ namespace ts.codefix { } return factory.updateTypeParameterDeclaration( typeParameterDecl, + typeParameterDecl.modifiers, typeParameterDecl.name, constraint, defaultType @@ -249,7 +277,7 @@ namespace ts.codefix { } export function createSignatureDeclarationFromCallExpression( - kind: SyntaxKind.MethodDeclaration | SyntaxKind.FunctionDeclaration, + kind: SyntaxKind.MethodDeclaration | SyntaxKind.FunctionDeclaration | SyntaxKind.MethodSignature, context: CodeFixContextBase, importAdder: ImportAdder, call: CallExpression, @@ -279,35 +307,48 @@ namespace ts.codefix { const typeParameters = isJs || typeArguments === undefined ? undefined : map(typeArguments, (_, i) => - factory.createTypeParameterDeclaration(CharacterCodes.T + typeArguments.length - 1 <= CharacterCodes.Z ? String.fromCharCode(CharacterCodes.T + i) : `T${i}`)); + factory.createTypeParameterDeclaration(/*modifiers*/ undefined, CharacterCodes.T + typeArguments.length - 1 <= CharacterCodes.Z ? String.fromCharCode(CharacterCodes.T + i) : `T${i}`)); const parameters = createDummyParameters(args.length, names, types, /*minArgumentCount*/ undefined, isJs); const type = isJs || contextualType === undefined ? undefined : checker.typeToTypeNode(contextualType, contextNode, /*flags*/ undefined, tracker); - if (kind === SyntaxKind.MethodDeclaration) { - return factory.createMethodDeclaration( - /*decorators*/ undefined, - modifiers, - asteriskToken, - name, - /*questionToken*/ undefined, - typeParameters, - parameters, - type, - isInterfaceDeclaration(contextNode) ? undefined : createStubbedMethodBody(quotePreference) - ); + switch (kind) { + case SyntaxKind.MethodDeclaration: + return factory.createMethodDeclaration( + /*decorators*/ undefined, + modifiers, + asteriskToken, + name, + /*questionToken*/ undefined, + typeParameters, + parameters, + type, + createStubbedMethodBody(quotePreference) + ); + case SyntaxKind.MethodSignature: + return factory.createMethodSignature( + modifiers, + name, + /*questionToken*/ undefined, + typeParameters, + parameters, + type + ); + case SyntaxKind.FunctionDeclaration: + return factory.createFunctionDeclaration( + /*decorators*/ undefined, + modifiers, + asteriskToken, + name, + typeParameters, + parameters, + type, + createStubbedBody(Diagnostics.Function_not_implemented.message, quotePreference) + ); + default: + Debug.fail("Unexpected kind"); } - return factory.createFunctionDeclaration( - /*decorators*/ undefined, - modifiers, - asteriskToken, - name, - typeParameters, - parameters, - type, - createStubbedBody(Diagnostics.Function_not_implemented.message, quotePreference) - ); } export function typeToAutoImportableTypeNode(checker: TypeChecker, importAdder: ImportAdder, type: Type, contextNode: Node | undefined, scriptTarget: ScriptTarget, flags?: NodeBuilderFlags, tracker?: SymbolTracker): TypeNode | undefined { @@ -332,7 +373,7 @@ namespace ts.codefix { /*dotDotDotToken*/ undefined, /*name*/ names && names[i] || `arg${i}`, /*questionToken*/ minArgumentCount !== undefined && i >= minArgumentCount ? factory.createToken(SyntaxKind.QuestionToken) : undefined, - /*type*/ inJs ? undefined : types && types[i] || factory.createKeywordTypeNode(SyntaxKind.AnyKeyword), + /*type*/ inJs ? undefined : types && types[i] || factory.createKeywordTypeNode(SyntaxKind.UnknownKeyword), /*initializer*/ undefined); parameters.push(newParameter); } @@ -348,6 +389,7 @@ namespace ts.codefix { optional: boolean, modifiers: readonly Modifier[] | undefined, quotePreference: QuotePreference, + body: Block | undefined, ): MethodDeclaration { /** This is *a* signature with the maximal number of arguments, * such that if there is a "maximal" signature without rest arguments, @@ -370,14 +412,13 @@ namespace ts.codefix { const parameters = createDummyParameters(maxNonRestArgs, maxArgsParameterSymbolNames, /* types */ undefined, minArgumentCount, /*inJs*/ false); if (someSigHasRestParameter) { - const anyArrayType = factory.createArrayTypeNode(factory.createKeywordTypeNode(SyntaxKind.AnyKeyword)); const restParameter = factory.createParameterDeclaration( /*decorators*/ undefined, /*modifiers*/ undefined, factory.createToken(SyntaxKind.DotDotDotToken), maxArgsParameterSymbolNames[maxNonRestArgs] || "rest", /*questionToken*/ maxNonRestArgs >= minArgumentCount ? factory.createToken(SyntaxKind.QuestionToken) : undefined, - anyArrayType, + factory.createArrayTypeNode(factory.createKeywordTypeNode(SyntaxKind.UnknownKeyword)), /*initializer*/ undefined); parameters.push(restParameter); } @@ -389,7 +430,8 @@ namespace ts.codefix { /*typeParameters*/ undefined, parameters, getReturnTypeFromSignatures(signatures, checker, context, enclosingDeclaration), - quotePreference); + quotePreference, + body); } function getReturnTypeFromSignatures(signatures: readonly Signature[], checker: TypeChecker, context: TypeConstructionContext, enclosingDeclaration: ClassLikeDeclaration): TypeNode | undefined { @@ -406,7 +448,8 @@ namespace ts.codefix { typeParameters: readonly TypeParameterDeclaration[] | undefined, parameters: readonly ParameterDeclaration[], returnType: TypeNode | undefined, - quotePreference: QuotePreference + quotePreference: QuotePreference, + body: Block | undefined ): MethodDeclaration { return factory.createMethodDeclaration( /*decorators*/ undefined, @@ -417,7 +460,7 @@ namespace ts.codefix { typeParameters, parameters, returnType, - createStubbedMethodBody(quotePreference)); + body || createStubbedMethodBody(quotePreference)); } function createStubbedMethodBody(quotePreference: QuotePreference) { diff --git a/src/services/codefixes/importFixes.ts b/src/services/codefixes/importFixes.ts index 89b673097b70c..485fc02727990 100644 --- a/src/services/codefixes/importFixes.ts +++ b/src/services/codefixes/importFixes.ts @@ -10,7 +10,8 @@ namespace ts.codefix { Diagnostics.Cannot_find_namespace_0.code, Diagnostics._0_refers_to_a_UMD_global_but_the_current_file_is_a_module_Consider_adding_an_import_instead.code, Diagnostics._0_only_refers_to_a_type_but_is_being_used_as_a_value_here.code, - Diagnostics.No_value_exists_in_scope_for_the_shorthand_property_0_Either_declare_one_or_provide_an_initializer.code + Diagnostics.No_value_exists_in_scope_for_the_shorthand_property_0_Either_declare_one_or_provide_an_initializer.code, + Diagnostics._0_cannot_be_used_as_a_value_because_it_was_imported_using_import_type.code, ]; registerCodeFix({ @@ -19,9 +20,16 @@ namespace ts.codefix { const { errorCode, preferences, sourceFile, span, program } = context; const info = getFixesInfo(context, errorCode, span.start, /*useAutoImportProvider*/ true); if (!info) return undefined; - const { fixes, symbolName } = info; + const { fixes, symbolName, errorIdentifierText } = info; const quotePreference = getQuotePreference(sourceFile, preferences); - return fixes.map(fix => codeActionForFix(context, sourceFile, symbolName, fix, quotePreference, program.getCompilerOptions())); + return fixes.map(fix => codeActionForFix( + context, + sourceFile, + symbolName, + fix, + /*includeSymbolNameInDescription*/ symbolName !== errorIdentifierText, + quotePreference, + program.getCompilerOptions())); }, fixIds: [importFixId], getAllCodeActions: context => { @@ -33,6 +41,7 @@ namespace ts.codefix { }); export interface ImportAdder { + hasFixes(): boolean; addImportFromDiagnostic: (diagnostic: DiagnosticWithLocation, context: CodeFixContextBase) => void; addImportFromExportedSymbol: (exportedSymbol: Symbol, isValidTypeOnlyUseSite?: boolean) => void; writeFixes: (changeTracker: textChanges.ChangeTracker) => void; @@ -59,7 +68,7 @@ namespace ts.codefix { type NewImportsKey = `${0 | 1}|${string}`; /** Use `getNewImportEntry` for access */ const newImports = new Map>(); - return { addImportFromDiagnostic, addImportFromExportedSymbol, writeFixes }; + return { addImportFromDiagnostic, addImportFromExportedSymbol, writeFixes, hasFixes }; function addImportFromDiagnostic(diagnostic: DiagnosticWithLocation, context: CodeFixContextBase) { const info = getFixesInfo(context, diagnostic.code, diagnostic.start, useAutoImportProvider); @@ -72,11 +81,11 @@ namespace ts.codefix { const symbolName = getNameForExportedSymbol(exportedSymbol, getEmitScriptTarget(compilerOptions)); const checker = program.getTypeChecker(); const symbol = checker.getMergedSymbol(skipAlias(exportedSymbol, checker)); - const exportInfos = getAllReExportingModules(sourceFile, symbol, moduleSymbol, symbolName, host, program, preferences, useAutoImportProvider); + const exportInfo = getAllReExportingModules(sourceFile, symbol, moduleSymbol, symbolName, /*isJsxTagName*/ false, host, program, preferences, useAutoImportProvider); const useRequire = shouldUseRequire(sourceFile, program); - const fix = getImportFixForSymbol(sourceFile, exportInfos, moduleSymbol, symbolName, program, /*position*/ undefined, !!isValidTypeOnlyUseSite, useRequire, host, preferences); + const fix = getImportFixForSymbol(sourceFile, exportInfo, moduleSymbol, symbolName, program, /*position*/ undefined, !!isValidTypeOnlyUseSite, useRequire, host, preferences); if (fix) { - addImport({ fixes: [fix], symbolName }); + addImport({ fixes: [fix], symbolName, errorIdentifierText: undefined }); } } @@ -132,6 +141,9 @@ namespace ts.codefix { } break; } + case ImportFixKind.PromoteTypeOnly: + // Excluding from fix-all + break; default: Debug.assertNever(fix, `fix wasn't never - got kind ${(fix as ImportFix).kind}`); } @@ -217,10 +229,14 @@ namespace ts.codefix { insertImports(changeTracker, sourceFile, newDeclarations, /*blankLineBetween*/ true); } } + + function hasFixes() { + return addToNamespace.length > 0 || importType.length > 0 || addToExisting.size > 0 || newImports.size > 0; + } } // Sorted with the preferred fix coming first. - const enum ImportFixKind { UseNamespace, JsdocTypeImport, AddToExisting, AddNew } + const enum ImportFixKind { UseNamespace, JsdocTypeImport, AddToExisting, AddNew, PromoteTypeOnly } // These should not be combined as bitflags, but are given powers of 2 values to // easily detect conflicts between `NotAllowed` and `Required` by giving them a unique sum. // They're also ordered in terms of increasing priority for a fix-all scenario (see @@ -230,35 +246,44 @@ namespace ts.codefix { Required = 1 << 1, NotAllowed = 1 << 2, } - type ImportFix = FixUseNamespaceImport | FixAddJsdocTypeImport | FixAddToExistingImport | FixAddNewImport; - interface FixUseNamespaceImport { + type ImportFix = FixUseNamespaceImport | FixAddJsdocTypeImport | FixAddToExistingImport | FixAddNewImport | FixPromoteTypeOnlyImport; + type ImportFixWithModuleSpecifier = FixUseNamespaceImport | FixAddJsdocTypeImport | FixAddToExistingImport | FixAddNewImport; + + // Properties are be undefined if fix is derived from an existing import + interface ImportFixBase { + readonly isReExport?: boolean; + readonly exportInfo?: SymbolExportInfo; + readonly moduleSpecifier: string; + } + interface FixUseNamespaceImport extends ImportFixBase { readonly kind: ImportFixKind.UseNamespace; readonly namespacePrefix: string; readonly position: number; - readonly moduleSpecifier: string; } - interface FixAddJsdocTypeImport { + interface FixAddJsdocTypeImport extends ImportFixBase { readonly kind: ImportFixKind.JsdocTypeImport; - readonly moduleSpecifier: string; readonly position: number; + readonly isReExport: boolean; readonly exportInfo: SymbolExportInfo; } - interface FixAddToExistingImport { + interface FixAddToExistingImport extends ImportFixBase { readonly kind: ImportFixKind.AddToExisting; readonly importClauseOrBindingPattern: ImportClause | ObjectBindingPattern; - readonly moduleSpecifier: string; readonly importKind: ImportKind.Default | ImportKind.Named; readonly addAsTypeOnly: AddAsTypeOnly; } - interface FixAddNewImport { + interface FixAddNewImport extends ImportFixBase { readonly kind: ImportFixKind.AddNew; - readonly moduleSpecifier: string; readonly importKind: ImportKind; readonly addAsTypeOnly: AddAsTypeOnly; readonly useRequire: boolean; - readonly exportInfo?: SymbolExportInfo; + } + interface FixPromoteTypeOnlyImport { + readonly kind: ImportFixKind.PromoteTypeOnly; + readonly typeOnlyAliasDeclaration: TypeOnlyAliasDeclaration; } + /** Information needed to augment an existing import declaration. */ interface FixAddToExistingImportInfo { readonly declaration: AnyImportOrRequire; @@ -268,10 +293,11 @@ namespace ts.codefix { } export function getImportCompletionAction( - exportedSymbol: Symbol, + targetSymbol: Symbol, moduleSymbol: Symbol, sourceFile: SourceFile, symbolName: string, + isJsxTagName: boolean, host: LanguageServiceHost, program: Program, formatContext: formatting.FormatContext, @@ -280,8 +306,8 @@ namespace ts.codefix { ): { readonly moduleSpecifier: string, readonly codeAction: CodeAction } { const compilerOptions = program.getCompilerOptions(); const exportInfos = pathIsBareSpecifier(stripQuotes(moduleSymbol.name)) - ? [getSymbolExportInfoForSymbol(exportedSymbol, moduleSymbol, program, host)] - : getAllReExportingModules(sourceFile, exportedSymbol, moduleSymbol, symbolName, host, program, preferences, /*useAutoImportProvider*/ true); + ? [getSymbolExportInfoForSymbol(targetSymbol, moduleSymbol, program, host)] + : getAllReExportingModules(sourceFile, targetSymbol, moduleSymbol, symbolName, isJsxTagName, host, program, preferences, /*useAutoImportProvider*/ true); const useRequire = shouldUseRequire(sourceFile, program); const isValidTypeOnlyUseSite = isValidTypeOnlyAliasUseSite(getTokenAtPosition(sourceFile, position)); const fix = Debug.checkDefined(getImportFixForSymbol(sourceFile, exportInfos, moduleSymbol, symbolName, program, position, isValidTypeOnlyUseSite, useRequire, host, preferences)); @@ -292,13 +318,23 @@ namespace ts.codefix { sourceFile, symbolName, fix, + /*includeSymbolNameInDescription*/ false, getQuotePreference(sourceFile, preferences), compilerOptions)) }; } + export function getPromoteTypeOnlyCompletionAction(sourceFile: SourceFile, symbolToken: Identifier, program: Program, host: LanguageServiceHost, formatContext: formatting.FormatContext, preferences: UserPreferences) { + const compilerOptions = program.getCompilerOptions(); + const symbolName = getSymbolName(sourceFile, program.getTypeChecker(), symbolToken, compilerOptions); + const fix = getTypeOnlyPromotionFix(sourceFile, symbolToken, symbolName, program); + const includeSymbolNameInDescription = symbolName !== symbolToken.text; + return fix && codeFixActionToCodeAction(codeActionForFix({ host, formatContext, preferences }, sourceFile, symbolName, fix, includeSymbolNameInDescription, QuotePreference.Double, compilerOptions)); + } + function getImportFixForSymbol(sourceFile: SourceFile, exportInfos: readonly SymbolExportInfo[], moduleSymbol: Symbol, symbolName: string, program: Program, position: number | undefined, isValidTypeOnlyUseSite: boolean, useRequire: boolean, host: LanguageServiceHost, preferences: UserPreferences) { Debug.assert(exportInfos.some(info => info.moduleSymbol === moduleSymbol || info.symbol.parent === moduleSymbol), "Some exportInfo should match the specified moduleSymbol"); - return getBestFix(getImportFixes(exportInfos, symbolName, position, isValidTypeOnlyUseSite, useRequire, program, sourceFile, host, preferences), sourceFile, program, host, preferences); + const packageJsonImportFilter = createPackageJsonImportFilter(sourceFile, preferences, host); + return getBestFix(getImportFixes(exportInfos, symbolName, position, isValidTypeOnlyUseSite, useRequire, program, sourceFile, host, preferences), sourceFile, program, packageJsonImportFilter, host); } function codeFixActionToCodeAction({ description, changes, commands }: CodeFixAction): CodeAction { @@ -326,7 +362,7 @@ namespace ts.codefix { } } - function getAllReExportingModules(importingFile: SourceFile, exportedSymbol: Symbol, exportingModuleSymbol: Symbol, symbolName: string, host: LanguageServiceHost, program: Program, preferences: UserPreferences, useAutoImportProvider: boolean): readonly SymbolExportInfo[] { + function getAllReExportingModules(importingFile: SourceFile, targetSymbol: Symbol, exportingModuleSymbol: Symbol, symbolName: string, isJsxTagName: boolean, host: LanguageServiceHost, program: Program, preferences: UserPreferences, useAutoImportProvider: boolean): readonly SymbolExportInfo[] { const result: SymbolExportInfo[] = []; const compilerOptions = program.getCompilerOptions(); const getModuleSpecifierResolutionHost = memoizeOne((isFromPackageJson: boolean) => { @@ -341,12 +377,12 @@ namespace ts.codefix { } const defaultInfo = getDefaultLikeExportInfo(moduleSymbol, checker, compilerOptions); - if (defaultInfo && (defaultInfo.name === symbolName || moduleSymbolToValidIdentifier(moduleSymbol, getEmitScriptTarget(compilerOptions)) === symbolName) && skipAlias(defaultInfo.symbol, checker) === exportedSymbol && isImportable(program, moduleFile, isFromPackageJson)) { + if (defaultInfo && (defaultInfo.name === symbolName || moduleSymbolToValidIdentifier(moduleSymbol, getEmitScriptTarget(compilerOptions), isJsxTagName) === symbolName) && skipAlias(defaultInfo.symbol, checker) === targetSymbol && isImportable(program, moduleFile, isFromPackageJson)) { result.push({ symbol: defaultInfo.symbol, moduleSymbol, moduleFileName: moduleFile?.fileName, exportKind: defaultInfo.exportKind, targetFlags: skipAlias(defaultInfo.symbol, checker).flags, isFromPackageJson }); } for (const exported of checker.getExportsAndPropertiesOfModule(moduleSymbol)) { - if (exported.name === symbolName && skipAlias(exported, checker) === exportedSymbol && isImportable(program, moduleFile, isFromPackageJson)) { + if (exported.name === symbolName && checker.getMergedSymbol(skipAlias(exported, checker)) === targetSymbol && isImportable(program, moduleFile, isFromPackageJson)) { result.push({ symbol: exported, moduleSymbol, moduleFileName: moduleFile?.fileName, exportKind: ExportKind.Named, targetFlags: skipAlias(exported, checker).flags, isFromPackageJson }); } } @@ -364,6 +400,7 @@ namespace ts.codefix { program: Program, host: LanguageServiceHost, preferences: UserPreferences, + packageJsonImportFilter?: PackageJsonImportFilter, fromCacheOnly?: boolean, ): { exportInfo?: SymbolExportInfo, moduleSpecifier: string, computedWithoutCacheCount: number } | undefined { const { fixes, computedWithoutCacheCount } = getNewImportFixes( @@ -376,7 +413,7 @@ namespace ts.codefix { host, preferences, fromCacheOnly); - const result = getBestFix(fixes, importingFile, program, host, preferences); + const result = getBestFix(fixes, importingFile, program, packageJsonImportFilter || createPackageJsonImportFilter(importingFile, preferences, host), host); return result && { ...result, computedWithoutCacheCount }; } @@ -391,7 +428,7 @@ namespace ts.codefix { sourceFile: SourceFile, host: LanguageServiceHost, preferences: UserPreferences, - ): readonly ImportFix[] { + ): readonly ImportFixWithModuleSpecifier[] { const checker = program.getTypeChecker(); const existingImports = flatMap(exportInfos, info => getExistingImportDeclarations(info, checker, sourceFile, program.getCompilerOptions())); const useNamespace = position === undefined ? undefined : tryUseExistingNamespaceImport(existingImports, symbolName, position, checker); @@ -530,7 +567,7 @@ namespace ts.codefix { const importKind = getImportKind(importingFile, exportKind, compilerOptions); return mapDefined(importingFile.imports, (moduleSpecifier): FixAddToExistingImportInfo | undefined => { const i = importFromModuleSpecifier(moduleSpecifier); - if (isRequireVariableDeclaration(i.parent)) { + if (isVariableDeclarationInitializedToRequire(i.parent)) { return checker.resolveExternalModuleName(moduleSpecifier) === moduleSymbol ? { declaration: i.parent, importKind, symbol, targetFlags } : undefined; } if (i.kind === SyntaxKind.ImportDeclaration || i.kind === SyntaxKind.ImportEqualsDeclaration) { @@ -572,7 +609,7 @@ namespace ts.codefix { position: number | undefined, isValidTypeOnlyUseSite: boolean, useRequire: boolean, - moduleSymbols: readonly SymbolExportInfo[], + exportInfo: readonly SymbolExportInfo[], host: LanguageServiceHost, preferences: UserPreferences, fromCacheOnly?: boolean, @@ -586,7 +623,7 @@ namespace ts.codefix { : (moduleSymbol: Symbol, checker: TypeChecker) => moduleSpecifiers.getModuleSpecifiersWithCacheInfo(moduleSymbol, checker, compilerOptions, sourceFile, moduleSpecifierResolutionHost, preferences); let computedWithoutCacheCount = 0; - const fixes = flatMap(moduleSymbols, exportInfo => { + const fixes = flatMap(exportInfo, (exportInfo, i) => { const checker = getChecker(exportInfo.isFromPackageJson); const { computedWithoutCache, moduleSpecifiers } = getModuleSpecifiers(exportInfo.moduleSymbol, checker); const importedSymbolHasValueMeaning = !!(exportInfo.targetFlags & SymbolFlags.Value); @@ -595,7 +632,7 @@ namespace ts.codefix { return moduleSpecifiers?.map((moduleSpecifier): FixAddNewImport | FixAddJsdocTypeImport => // `position` should only be undefined at a missing jsx namespace, in which case we shouldn't be looking for pure types. !importedSymbolHasValueMeaning && isJs && position !== undefined - ? { kind: ImportFixKind.JsdocTypeImport, moduleSpecifier, position, exportInfo } + ? { kind: ImportFixKind.JsdocTypeImport, moduleSpecifier, position, exportInfo, isReExport: i > 0 } : { kind: ImportFixKind.AddNew, moduleSpecifier, @@ -603,6 +640,7 @@ namespace ts.codefix { useRequire, addAsTypeOnly, exportInfo, + isReExport: i > 0, } ); }); @@ -641,59 +679,111 @@ namespace ts.codefix { } } - interface FixesInfo { readonly fixes: readonly ImportFix[]; readonly symbolName: string; } + interface FixesInfo { readonly fixes: readonly ImportFix[], readonly symbolName: string, readonly errorIdentifierText: string | undefined } function getFixesInfo(context: CodeFixContextBase, errorCode: number, pos: number, useAutoImportProvider: boolean): FixesInfo | undefined { const symbolToken = getTokenAtPosition(context.sourceFile, pos); - const info = errorCode === Diagnostics._0_refers_to_a_UMD_global_but_the_current_file_is_a_module_Consider_adding_an_import_instead.code - ? getFixesInfoForUMDImport(context, symbolToken) - : isIdentifier(symbolToken) ? getFixesInfoForNonUMDImport(context, symbolToken, useAutoImportProvider) : undefined; - return info && { ...info, fixes: sortFixes(info.fixes, context.sourceFile, context.program, context.host, context.preferences) }; + let info; + if (errorCode === Diagnostics._0_refers_to_a_UMD_global_but_the_current_file_is_a_module_Consider_adding_an_import_instead.code) { + info = getFixesInfoForUMDImport(context, symbolToken); + } + else if (!isIdentifier(symbolToken)) { + return undefined; + } + else if (errorCode === Diagnostics._0_cannot_be_used_as_a_value_because_it_was_imported_using_import_type.code) { + const symbolName = getSymbolName(context.sourceFile, context.program.getTypeChecker(), symbolToken, context.program.getCompilerOptions()); + const fix = getTypeOnlyPromotionFix(context.sourceFile, symbolToken, symbolName, context.program); + return fix && { fixes: [fix], symbolName, errorIdentifierText: symbolToken.text }; + } + else { + info = getFixesInfoForNonUMDImport(context, symbolToken, useAutoImportProvider); + } + + const packageJsonImportFilter = createPackageJsonImportFilter(context.sourceFile, context.preferences, context.host); + return info && { ...info, fixes: sortFixes(info.fixes, context.sourceFile, context.program, packageJsonImportFilter, context.host) }; } - function sortFixes(fixes: readonly ImportFix[], sourceFile: SourceFile, program: Program, host: LanguageServiceHost, preferences: UserPreferences): readonly ImportFix[] { - const { allowsImportingSpecifier } = createPackageJsonImportFilter(sourceFile, preferences, host); - return sort(fixes, (a, b) => compareValues(a.kind, b.kind) || compareModuleSpecifiers(a, b, sourceFile, program, allowsImportingSpecifier)); + function sortFixes(fixes: readonly ImportFixWithModuleSpecifier[], sourceFile: SourceFile, program: Program, packageJsonImportFilter: PackageJsonImportFilter, host: LanguageServiceHost): readonly ImportFixWithModuleSpecifier[] { + const _toPath = (fileName: string) => toPath(fileName, host.getCurrentDirectory(), hostGetCanonicalFileName(host)); + return sort(fixes, (a, b) => compareValues(a.kind, b.kind) || compareModuleSpecifiers(a, b, sourceFile, program, packageJsonImportFilter.allowsImportingSpecifier, _toPath)); } - function getBestFix(fixes: readonly T[], sourceFile: SourceFile, program: Program, host: LanguageServiceHost, preferences: UserPreferences): T | undefined { + function getBestFix(fixes: readonly ImportFixWithModuleSpecifier[], sourceFile: SourceFile, program: Program, packageJsonImportFilter: PackageJsonImportFilter, host: LanguageServiceHost): ImportFixWithModuleSpecifier | undefined { if (!some(fixes)) return; // These will always be placed first if available, and are better than other kinds if (fixes[0].kind === ImportFixKind.UseNamespace || fixes[0].kind === ImportFixKind.AddToExisting) { return fixes[0]; } - const { allowsImportingSpecifier } = createPackageJsonImportFilter(sourceFile, preferences, host); + return fixes.reduce((best, fix) => // Takes true branch of conditional if `fix` is better than `best` - compareModuleSpecifiers(fix, best, sourceFile, program, allowsImportingSpecifier) === Comparison.LessThan ? fix : best + compareModuleSpecifiers( + fix, + best, + sourceFile, + program, + packageJsonImportFilter.allowsImportingSpecifier, + fileName => toPath(fileName, host.getCurrentDirectory(), hostGetCanonicalFileName(host)), + ) === Comparison.LessThan ? fix : best ); } /** @returns `Comparison.LessThan` if `a` is better than `b`. */ - function compareModuleSpecifiers(a: ImportFix, b: ImportFix, importingFile: SourceFile, program: Program, allowsImportingSpecifier: (specifier: string) => boolean): Comparison { + function compareModuleSpecifiers( + a: ImportFixWithModuleSpecifier, + b: ImportFixWithModuleSpecifier, + importingFile: SourceFile, + program: Program, + allowsImportingSpecifier: (specifier: string) => boolean, + toPath: (fileName: string) => Path, + ): Comparison { if (a.kind !== ImportFixKind.UseNamespace && b.kind !== ImportFixKind.UseNamespace) { return compareBooleans(allowsImportingSpecifier(b.moduleSpecifier), allowsImportingSpecifier(a.moduleSpecifier)) || compareNodeCoreModuleSpecifiers(a.moduleSpecifier, b.moduleSpecifier, importingFile, program) + || compareBooleans( + isFixPossiblyReExportingImportingFile(a, importingFile, program.getCompilerOptions(), toPath), + isFixPossiblyReExportingImportingFile(b, importingFile, program.getCompilerOptions(), toPath)) || compareNumberOfDirectorySeparators(a.moduleSpecifier, b.moduleSpecifier); } return Comparison.EqualTo; } + // This is a simple heuristic to try to avoid creating an import cycle with a barrel re-export. + // E.g., do not `import { Foo } from ".."` when you could `import { Foo } from "../Foo"`. + // This can produce false positives or negatives if re-exports cross into sibling directories + // (e.g. `export * from "../whatever"`) or are not named "index" (we don't even try to consider + // this if we're in a resolution mode where you can't drop trailing "/index" from paths). + function isFixPossiblyReExportingImportingFile(fix: ImportFixWithModuleSpecifier, importingFile: SourceFile, compilerOptions: CompilerOptions, toPath: (fileName: string) => Path): boolean { + if (fix.isReExport && + fix.exportInfo?.moduleFileName && + getEmitModuleResolutionKind(compilerOptions) === ModuleResolutionKind.NodeJs && + isIndexFileName(fix.exportInfo.moduleFileName) + ) { + const reExportDir = toPath(getDirectoryPath(fix.exportInfo.moduleFileName)); + return startsWith((importingFile.path), reExportDir); + } + return false; + } + + function isIndexFileName(fileName: string) { + return getBaseFileName(fileName, [".js", ".jsx", ".d.ts", ".ts", ".tsx"], /*ignoreCase*/ true) === "index"; + } + function compareNodeCoreModuleSpecifiers(a: string, b: string, importingFile: SourceFile, program: Program): Comparison { if (startsWith(a, "node:") && !startsWith(b, "node:")) return shouldUseUriStyleNodeCoreModules(importingFile, program) ? Comparison.LessThan : Comparison.GreaterThan; if (startsWith(b, "node:") && !startsWith(a, "node:")) return shouldUseUriStyleNodeCoreModules(importingFile, program) ? Comparison.GreaterThan : Comparison.LessThan; return Comparison.EqualTo; } - function getFixesInfoForUMDImport({ sourceFile, program, host, preferences }: CodeFixContextBase, token: Node): FixesInfo | undefined { + function getFixesInfoForUMDImport({ sourceFile, program, host, preferences }: CodeFixContextBase, token: Node): FixesInfo & { fixes: readonly ImportFixWithModuleSpecifier[] } | undefined { const checker = program.getTypeChecker(); const umdSymbol = getUmdSymbol(token, checker); if (!umdSymbol) return undefined; const symbol = checker.getAliasedSymbol(umdSymbol); const symbolName = umdSymbol.name; - const exportInfos: readonly SymbolExportInfo[] = [{ symbol: umdSymbol, moduleSymbol: symbol, moduleFileName: undefined, exportKind: ExportKind.UMD, targetFlags: symbol.flags, isFromPackageJson: false }]; + const exportInfo: readonly SymbolExportInfo[] = [{ symbol: umdSymbol, moduleSymbol: symbol, moduleFileName: undefined, exportKind: ExportKind.UMD, targetFlags: symbol.flags, isFromPackageJson: false }]; const useRequire = shouldUseRequire(sourceFile, program); - const fixes = getImportFixes(exportInfos, symbolName, isIdentifier(token) ? token.getStart(sourceFile) : undefined, /*isValidTypeOnlyUseSite*/ false, useRequire, program, sourceFile, host, preferences); - return { fixes, symbolName }; + const fixes = getImportFixes(exportInfo, symbolName, isIdentifier(token) ? token.getStart(sourceFile) : undefined, /*isValidTypeOnlyUseSite*/ false, useRequire, program, sourceFile, host, preferences); + return { fixes, symbolName, errorIdentifierText: tryCast(token, isIdentifier)?.text }; } function getUmdSymbol(token: Node, checker: TypeChecker): Symbol | undefined { // try the identifier to see if it is the umd symbol @@ -753,39 +843,54 @@ namespace ts.codefix { } } - function getFixesInfoForNonUMDImport({ sourceFile, program, cancellationToken, host, preferences }: CodeFixContextBase, symbolToken: Identifier, useAutoImportProvider: boolean): FixesInfo | undefined { + function getFixesInfoForNonUMDImport({ sourceFile, program, cancellationToken, host, preferences }: CodeFixContextBase, symbolToken: Identifier, useAutoImportProvider: boolean): FixesInfo & { fixes: readonly ImportFixWithModuleSpecifier[] } | undefined { const checker = program.getTypeChecker(); const compilerOptions = program.getCompilerOptions(); const symbolName = getSymbolName(sourceFile, checker, symbolToken, compilerOptions); - // "default" is a keyword and not a legal identifier for the import, so we don't expect it here - Debug.assert(symbolName !== InternalSymbolName.Default, "'default' isn't a legal identifier and couldn't occur here"); - + // "default" is a keyword and not a legal identifier for the import, but appears as an identifier. + if (symbolName === InternalSymbolName.Default) { + return undefined; + } const isValidTypeOnlyUseSite = isValidTypeOnlyAliasUseSite(symbolToken); const useRequire = shouldUseRequire(sourceFile, program); - const exportInfos = getExportInfos(symbolName, getMeaningFromLocation(symbolToken), cancellationToken, sourceFile, program, useAutoImportProvider, host, preferences); - const fixes = arrayFrom(flatMapIterator(exportInfos.entries(), ([_, exportInfos]) => + const exportInfo = getExportInfos(symbolName, isJSXTagName(symbolToken), getMeaningFromLocation(symbolToken), cancellationToken, sourceFile, program, useAutoImportProvider, host, preferences); + const fixes = arrayFrom(flatMapIterator(exportInfo.entries(), ([_, exportInfos]) => getImportFixes(exportInfos, symbolName, symbolToken.getStart(sourceFile), isValidTypeOnlyUseSite, useRequire, program, sourceFile, host, preferences))); - return { fixes, symbolName }; + return { fixes, symbolName, errorIdentifierText: symbolToken.text }; } - function jsxModeNeedsExplicitImport(jsx: JsxEmit | undefined) { - return jsx === JsxEmit.React || jsx === JsxEmit.ReactNative; + function getTypeOnlyPromotionFix(sourceFile: SourceFile, symbolToken: Identifier, symbolName: string, program: Program): FixPromoteTypeOnlyImport | undefined { + const checker = program.getTypeChecker(); + const symbol = checker.resolveName(symbolName, symbolToken, SymbolFlags.Value, /*excludeGlobals*/ true); + if (!symbol) return undefined; + + const typeOnlyAliasDeclaration = checker.getTypeOnlyAliasDeclaration(symbol); + if (!typeOnlyAliasDeclaration || getSourceFileOfNode(typeOnlyAliasDeclaration) !== sourceFile) return undefined; + + return { kind: ImportFixKind.PromoteTypeOnly, typeOnlyAliasDeclaration }; } function getSymbolName(sourceFile: SourceFile, checker: TypeChecker, symbolToken: Identifier, compilerOptions: CompilerOptions): string { const parent = symbolToken.parent; if ((isJsxOpeningLikeElement(parent) || isJsxClosingElement(parent)) && parent.tagName === symbolToken && jsxModeNeedsExplicitImport(compilerOptions.jsx)) { const jsxNamespace = checker.getJsxNamespace(sourceFile); - if (isIntrinsicJsxName(symbolToken.text) || !checker.resolveName(jsxNamespace, parent, SymbolFlags.Value, /*excludeGlobals*/ true)) { + if (needsJsxNamespaceFix(jsxNamespace, symbolToken, checker)) { return jsxNamespace; } } return symbolToken.text; } + function needsJsxNamespaceFix(jsxNamespace: string, symbolToken: Identifier, checker: TypeChecker) { + if (isIntrinsicJsxName(symbolToken.text)) return true; // If we were triggered by a matching error code on an intrinsic, the error must have been about missing the JSX factory + const namespaceSymbol = checker.resolveName(jsxNamespace, symbolToken, SymbolFlags.Value, /*excludeGlobals*/ true); + return !namespaceSymbol || some(namespaceSymbol.declarations, isTypeOnlyImportOrExportDeclaration) && !(namespaceSymbol.flags & SymbolFlags.Value); + } + // Returns a map from an exported symbol's ID to a list of every way it's (re-)exported. function getExportInfos( symbolName: string, + isJsxTagName: boolean, currentTokenMeaning: SemanticMeaning, cancellationToken: CancellationToken, fromFile: SourceFile, @@ -817,7 +922,7 @@ namespace ts.codefix { const compilerOptions = program.getCompilerOptions(); const defaultInfo = getDefaultLikeExportInfo(moduleSymbol, checker, compilerOptions); - if (defaultInfo && (defaultInfo.name === symbolName || moduleSymbolToValidIdentifier(moduleSymbol, getEmitScriptTarget(compilerOptions)) === symbolName) && symbolHasMeaning(defaultInfo.symbolForMeaning, currentTokenMeaning)) { + if (defaultInfo && (defaultInfo.name === symbolName || moduleSymbolToValidIdentifier(moduleSymbol, getEmitScriptTarget(compilerOptions), isJsxTagName) === symbolName) && symbolHasMeaning(defaultInfo.symbolForMeaning, currentTokenMeaning)) { addSymbol(moduleSymbol, sourceFile, defaultInfo.symbol, defaultInfo.exportKind, program, isFromPackageJson); } @@ -859,14 +964,14 @@ namespace ts.codefix { return allowSyntheticDefaults ? ImportKind.Default : ImportKind.CommonJS; } - function codeActionForFix(context: textChanges.TextChangesContext, sourceFile: SourceFile, symbolName: string, fix: ImportFix, quotePreference: QuotePreference, compilerOptions: CompilerOptions): CodeFixAction { + function codeActionForFix(context: textChanges.TextChangesContext, sourceFile: SourceFile, symbolName: string, fix: ImportFix, includeSymbolNameInDescription: boolean, quotePreference: QuotePreference, compilerOptions: CompilerOptions): CodeFixAction { let diag!: DiagnosticAndArguments; const changes = textChanges.ChangeTracker.with(context, tracker => { - diag = codeActionForFixWorker(tracker, sourceFile, symbolName, fix, quotePreference, compilerOptions); + diag = codeActionForFixWorker(tracker, sourceFile, symbolName, fix, includeSymbolNameInDescription, quotePreference, compilerOptions); }); return createCodeFixAction(importFixName, changes, diag, importFixId, Diagnostics.Add_all_missing_imports); } - function codeActionForFixWorker(changes: textChanges.ChangeTracker, sourceFile: SourceFile, symbolName: string, fix: ImportFix, quotePreference: QuotePreference, compilerOptions: CompilerOptions): DiagnosticAndArguments { + function codeActionForFixWorker(changes: textChanges.ChangeTracker, sourceFile: SourceFile, symbolName: string, fix: ImportFix, includeSymbolNameInDescription: boolean, quotePreference: QuotePreference, compilerOptions: CompilerOptions): DiagnosticAndArguments { switch (fix.kind) { case ImportFixKind.UseNamespace: addNamespaceQualifier(changes, sourceFile, fix); @@ -884,11 +989,9 @@ namespace ts.codefix { importKind === ImportKind.Named ? [{ name: symbolName, addAsTypeOnly }] : emptyArray, compilerOptions); const moduleSpecifierWithoutQuotes = stripQuotes(moduleSpecifier); - return [ - importKind === ImportKind.Default ? Diagnostics.Add_default_import_0_to_existing_import_declaration_from_1 : Diagnostics.Add_0_to_existing_import_declaration_from_1, - symbolName, - moduleSpecifierWithoutQuotes - ]; // you too! + return includeSymbolNameInDescription + ? [Diagnostics.Import_0_from_1, symbolName, moduleSpecifierWithoutQuotes] + : [Diagnostics.Update_import_from_0, moduleSpecifierWithoutQuotes]; } case ImportFixKind.AddNew: { const { importKind, moduleSpecifier, addAsTypeOnly, useRequire } = fix; @@ -897,13 +1000,87 @@ namespace ts.codefix { const namedImports: Import[] | undefined = importKind === ImportKind.Named ? [{ name: symbolName, addAsTypeOnly }] : undefined; const namespaceLikeImport = importKind === ImportKind.Namespace || importKind === ImportKind.CommonJS ? { importKind, name: symbolName, addAsTypeOnly } : undefined; insertImports(changes, sourceFile, getDeclarations(moduleSpecifier, quotePreference, defaultImport, namedImports, namespaceLikeImport), /*blankLineBetween*/ true); - return [importKind === ImportKind.Default ? Diagnostics.Import_default_0_from_module_1 : Diagnostics.Import_0_from_module_1, symbolName, moduleSpecifier]; + return includeSymbolNameInDescription + ? [Diagnostics.Import_0_from_1, symbolName, moduleSpecifier] + : [Diagnostics.Add_import_from_0, moduleSpecifier]; + } + case ImportFixKind.PromoteTypeOnly: { + const { typeOnlyAliasDeclaration } = fix; + const promotedDeclaration = promoteFromTypeOnly(changes, typeOnlyAliasDeclaration, compilerOptions, sourceFile); + return promotedDeclaration.kind === SyntaxKind.ImportSpecifier + ? [Diagnostics.Remove_type_from_import_of_0_from_1, symbolName, getModuleSpecifierText(promotedDeclaration.parent.parent)] + : [Diagnostics.Remove_type_from_import_declaration_from_0, getModuleSpecifierText(promotedDeclaration)]; } default: return Debug.assertNever(fix, `Unexpected fix kind ${(fix as ImportFix).kind}`); } } + function getModuleSpecifierText(promotedDeclaration: ImportClause | ImportEqualsDeclaration): string { + return promotedDeclaration.kind === SyntaxKind.ImportEqualsDeclaration + ? tryCast(tryCast(promotedDeclaration.moduleReference, isExternalModuleReference)?.expression, isStringLiteralLike)?.text || promotedDeclaration.moduleReference.getText() + : cast(promotedDeclaration.parent.moduleSpecifier, isStringLiteral).text; + } + + function promoteFromTypeOnly(changes: textChanges.ChangeTracker, aliasDeclaration: TypeOnlyAliasDeclaration, compilerOptions: CompilerOptions, sourceFile: SourceFile) { + // See comment in `doAddExistingFix` on constant with the same name. + const convertExistingToTypeOnly = compilerOptions.preserveValueImports && compilerOptions.isolatedModules; + switch (aliasDeclaration.kind) { + case SyntaxKind.ImportSpecifier: + if (aliasDeclaration.isTypeOnly) { + if (aliasDeclaration.parent.elements.length > 1 && OrganizeImports.importSpecifiersAreSorted(aliasDeclaration.parent.elements)) { + changes.delete(sourceFile, aliasDeclaration); + const newSpecifier = factory.updateImportSpecifier(aliasDeclaration, /*isTypeOnly*/ false, aliasDeclaration.propertyName, aliasDeclaration.name); + const insertionIndex = OrganizeImports.getImportSpecifierInsertionIndex(aliasDeclaration.parent.elements, newSpecifier); + changes.insertImportSpecifierAtIndex(sourceFile, newSpecifier, aliasDeclaration.parent, insertionIndex); + } + else { + changes.deleteRange(sourceFile, aliasDeclaration.getFirstToken()!); + } + return aliasDeclaration; + } + else { + Debug.assert(aliasDeclaration.parent.parent.isTypeOnly); + promoteImportClause(aliasDeclaration.parent.parent); + return aliasDeclaration.parent.parent; + } + case SyntaxKind.ImportClause: + promoteImportClause(aliasDeclaration); + return aliasDeclaration; + case SyntaxKind.NamespaceImport: + promoteImportClause(aliasDeclaration.parent); + return aliasDeclaration.parent; + case SyntaxKind.ImportEqualsDeclaration: + changes.deleteRange(sourceFile, aliasDeclaration.getChildAt(1)); + return aliasDeclaration; + default: + Debug.failBadSyntaxKind(aliasDeclaration); + } + + function promoteImportClause(importClause: ImportClause) { + changes.delete(sourceFile, getTypeKeywordOfTypeOnlyImport(importClause, sourceFile)); + if (convertExistingToTypeOnly) { + const namedImports = tryCast(importClause.namedBindings, isNamedImports); + if (namedImports && namedImports.elements.length > 1) { + if (OrganizeImports.importSpecifiersAreSorted(namedImports.elements) && + aliasDeclaration.kind === SyntaxKind.ImportSpecifier && + namedImports.elements.indexOf(aliasDeclaration) !== 0 + ) { + // The import specifier being promoted will be the only non-type-only, + // import in the NamedImports, so it should be moved to the front. + changes.delete(sourceFile, aliasDeclaration); + changes.insertImportSpecifierAtIndex(sourceFile, aliasDeclaration, namedImports, 0); + } + for (const element of namedImports.elements) { + if (element !== aliasDeclaration && !element.isTypeOnly) { + changes.insertModifierBefore(sourceFile, SyntaxKind.TypeKeyword, element); + } + } + } + } + } + } + function doAddExistingFix( changes: textChanges.ChangeTracker, sourceFile: SourceFile, @@ -953,17 +1130,7 @@ namespace ts.codefix { const insertionIndex = convertExistingToTypeOnly && !spec.isTypeOnly ? 0 : OrganizeImports.getImportSpecifierInsertionIndex(existingSpecifiers, spec); - const prevSpecifier = (clause.namedBindings as NamedImports).elements[insertionIndex - 1]; - if (prevSpecifier) { - changes.insertNodeInListAfter(sourceFile, prevSpecifier, spec); - } - else { - changes.insertNodeBefore( - sourceFile, - existingSpecifiers[0], - spec, - !positionsAreOnSameLine(existingSpecifiers[0].getStart(), clause.parent.getStart(), sourceFile)); - } + changes.insertImportSpecifierAtIndex(sourceFile, spec, clause.namedBindings as NamedImports, insertionIndex); } } else if (existingSpecifiers?.length) { @@ -1116,17 +1283,20 @@ namespace ts.codefix { return some(declarations, decl => !!(getMeaningFromDeclaration(decl) & meaning)); } - export function moduleSymbolToValidIdentifier(moduleSymbol: Symbol, target: ScriptTarget | undefined): string { - return moduleSpecifierToValidIdentifier(removeFileExtension(stripQuotes(moduleSymbol.name)), target); + export function moduleSymbolToValidIdentifier(moduleSymbol: Symbol, target: ScriptTarget | undefined, forceCapitalize: boolean): string { + return moduleSpecifierToValidIdentifier(removeFileExtension(stripQuotes(moduleSymbol.name)), target, forceCapitalize); } - export function moduleSpecifierToValidIdentifier(moduleSpecifier: string, target: ScriptTarget | undefined): string { + export function moduleSpecifierToValidIdentifier(moduleSpecifier: string, target: ScriptTarget | undefined, forceCapitalize?: boolean): string { const baseName = getBaseFileName(removeSuffix(moduleSpecifier, "/index")); let res = ""; let lastCharWasValid = true; const firstCharCode = baseName.charCodeAt(0); if (isIdentifierStart(firstCharCode, target)) { res += String.fromCharCode(firstCharCode); + if (forceCapitalize) { + res = res.toUpperCase(); + } } else { lastCharWasValid = false; diff --git a/src/services/codefixes/inferFromUsage.ts b/src/services/codefixes/inferFromUsage.ts index b6b3aea3f02fd..643d64f2c21af 100644 --- a/src/services/codefixes/inferFromUsage.ts +++ b/src/services/codefixes/inferFromUsage.ts @@ -58,7 +58,7 @@ namespace ts.codefix { }); const name = declaration && getNameOfDeclaration(declaration); return !name || changes.length === 0 ? undefined - : [createCodeFixAction(fixId, changes, [getDiagnostic(errorCode, token), name.getText(sourceFile)], fixId, Diagnostics.Infer_all_types_from_usage)]; + : [createCodeFixAction(fixId, changes, [getDiagnostic(errorCode, token), getTextOfNode(name)], fixId, Diagnostics.Infer_all_types_from_usage)]; }, fixIds: [fixId], getAllCodeActions(context) { @@ -131,7 +131,7 @@ namespace ts.codefix { if (typeNode) { // Note that the codefix will never fire with an existing `@type` tag, so there is no need to merge tags const typeTag = factory.createJSDocTypeTag(/*tagName*/ undefined, factory.createJSDocTypeExpression(typeNode), /*comment*/ undefined); - addJSDocTags(changes, sourceFile, cast(parent.parent.parent, isExpressionStatement), [typeTag]); + changes.addJSDocTags(sourceFile, cast(parent.parent.parent, isExpressionStatement), [typeTag]); } importAdder.writeFixes(changes); return parent; @@ -141,7 +141,7 @@ namespace ts.codefix { case Diagnostics.Variable_0_implicitly_has_an_1_type.code: { const symbol = program.getTypeChecker().getSymbolAtLocation(token); if (symbol && symbol.valueDeclaration && isVariableDeclaration(symbol.valueDeclaration) && markSeen(symbol.valueDeclaration)) { - annotateVariableDeclaration(changes, importAdder, sourceFile, symbol.valueDeclaration, program, host, cancellationToken); + annotateVariableDeclaration(changes, importAdder, getSourceFileOfNode(symbol.valueDeclaration), symbol.valueDeclaration, program, host, cancellationToken); importAdder.writeFixes(changes); return symbol.valueDeclaration; } @@ -271,7 +271,7 @@ namespace ts.codefix { } function annotateJSDocThis(changes: textChanges.ChangeTracker, sourceFile: SourceFile, containingFunction: SignatureDeclaration, typeNode: TypeNode) { - addJSDocTags(changes, sourceFile, containingFunction, [ + changes.addJSDocTags(sourceFile, containingFunction, [ factory.createJSDocThisTag(/*tagName*/ undefined, factory.createJSDocTypeExpression(typeNode)), ]); } @@ -311,7 +311,7 @@ namespace ts.codefix { } const typeExpression = factory.createJSDocTypeExpression(typeNode); const typeTag = isGetAccessorDeclaration(declaration) ? factory.createJSDocReturnTag(/*tagName*/ undefined, typeExpression, /*comment*/ undefined) : factory.createJSDocTypeTag(/*tagName*/ undefined, typeExpression, /*comment*/ undefined); - addJSDocTags(changes, sourceFile, parent, [typeTag]); + changes.addJSDocTags(sourceFile, parent, [typeTag]); } else if (!tryReplaceImportTypeNodeWithAutoImport(typeNode, declaration, sourceFile, changes, importAdder, getEmitScriptTarget(program.getCompilerOptions()))) { changes.tryInsertTypeAnnotation(sourceFile, declaration, typeNode); @@ -378,46 +378,7 @@ namespace ts.codefix { else { const paramTags = map(inferences, ({ name, typeNode, isOptional }) => factory.createJSDocParameterTag(/*tagName*/ undefined, name, /*isBracketed*/ !!isOptional, factory.createJSDocTypeExpression(typeNode), /* isNameFirst */ false, /*comment*/ undefined)); - addJSDocTags(changes, sourceFile, signature, paramTags); - } - } - - export function addJSDocTags(changes: textChanges.ChangeTracker, sourceFile: SourceFile, parent: HasJSDoc, newTags: readonly JSDocTag[]): void { - const comments = flatMap(parent.jsDoc, j => typeof j.comment === "string" ? factory.createJSDocText(j.comment) : j.comment) as JSDocComment[]; - const oldTags = flatMapToMutable(parent.jsDoc, j => j.tags); - const unmergedNewTags = newTags.filter(newTag => !oldTags || !oldTags.some((tag, i) => { - const merged = tryMergeJsdocTags(tag, newTag); - if (merged) oldTags[i] = merged; - return !!merged; - })); - const tag = factory.createJSDocComment(factory.createNodeArray(intersperse(comments, factory.createJSDocText("\n"))), factory.createNodeArray([...(oldTags || emptyArray), ...unmergedNewTags])); - const jsDocNode = parent.kind === SyntaxKind.ArrowFunction ? getJsDocNodeForArrowFunction(parent) : parent; - jsDocNode.jsDoc = parent.jsDoc; - jsDocNode.jsDocCache = parent.jsDocCache; - changes.insertJsdocCommentBefore(sourceFile, jsDocNode, tag); - } - - function getJsDocNodeForArrowFunction(signature: ArrowFunction): HasJSDoc { - if (signature.parent.kind === SyntaxKind.PropertyDeclaration) { - return signature.parent as HasJSDoc; - } - return signature.parent.parent as HasJSDoc; - } - - function tryMergeJsdocTags(oldTag: JSDocTag, newTag: JSDocTag): JSDocTag | undefined { - if (oldTag.kind !== newTag.kind) { - return undefined; - } - switch (oldTag.kind) { - case SyntaxKind.JSDocParameterTag: { - const oldParam = oldTag as JSDocParameterTag; - const newParam = newTag as JSDocParameterTag; - return isIdentifier(oldParam.name) && isIdentifier(newParam.name) && oldParam.name.escapedText === newParam.name.escapedText - ? factory.createJSDocParameterTag(/*tagName*/ undefined, newParam.name, /*isBracketed*/ false, newParam.typeExpression, newParam.isNameFirst, oldParam.comment) - : undefined; - } - case SyntaxKind.JSDocReturnTag: - return factory.createJSDocReturnTag(/*tagName*/ undefined, (newTag as JSDocReturnTag).typeExpression, oldTag.comment); + changes.addJSDocTags(sourceFile, signature, paramTags); } } @@ -1000,13 +961,25 @@ namespace ts.codefix { if (usage.numberIndex) { types.push(checker.createArrayType(combineFromUsage(usage.numberIndex))); } - if (usage.properties?.size || usage.calls?.length || usage.constructs?.length || usage.stringIndex) { + if (usage.properties?.size || usage.constructs?.length || usage.stringIndex) { types.push(inferStructuralType(usage)); } - types.push(...(usage.candidateTypes || []).map(t => checker.getBaseTypeOfLiteralType(t))); - types.push(...inferNamedTypesFromProperties(usage)); + const candidateTypes = (usage.candidateTypes || []).map(t => checker.getBaseTypeOfLiteralType(t)); + const callsType = usage.calls?.length ? inferStructuralType(usage) : undefined; + if (callsType && candidateTypes) { + types.push(checker.getUnionType([callsType, ...candidateTypes], UnionReduction.Subtype)); + } + else { + if (callsType) { + types.push(callsType); + } + if (length(candidateTypes)) { + types.push(...candidateTypes); + } + } + types.push(...inferNamedTypesFromProperties(usage)); return types; } diff --git a/src/services/codefixes/removeUnnecessaryAwait.ts b/src/services/codefixes/removeUnnecessaryAwait.ts index 07028e2793762..59e786ccd2cb8 100644 --- a/src/services/codefixes/removeUnnecessaryAwait.ts +++ b/src/services/codefixes/removeUnnecessaryAwait.ts @@ -7,7 +7,7 @@ namespace ts.codefix { registerCodeFix({ errorCodes, - getCodeActions: (context) => { + getCodeActions: function getCodeActionsToRemoveUnnecessaryAwait(context) { const changes = textChanges.ChangeTracker.with(context, t => makeChange(t, context.sourceFile, context.span)); if (changes.length > 0) { return [createCodeFixAction(fixId, changes, Diagnostics.Remove_unnecessary_await, fixId, Diagnostics.Remove_all_unnecessary_uses_of_await)]; diff --git a/src/services/codefixes/returnValueCorrect.ts b/src/services/codefixes/returnValueCorrect.ts index c7631607e1feb..33d32c0ed085d 100644 --- a/src/services/codefixes/returnValueCorrect.ts +++ b/src/services/codefixes/returnValueCorrect.ts @@ -36,7 +36,7 @@ namespace ts.codefix { registerCodeFix({ errorCodes, fixIds: [fixIdAddReturnStatement, fixRemoveBracesFromArrowFunctionBody, fixIdWrapTheBlockWithParen], - getCodeActions: context => { + getCodeActions: function getCodeActionsToCorrectReturnValue(context) { const { program, sourceFile, span: { start }, errorCode } = context; const info = getInfo(program.getTypeChecker(), sourceFile, start, errorCode); if (!info) return undefined; diff --git a/src/services/codefixes/splitTypeOnlyImport.ts b/src/services/codefixes/splitTypeOnlyImport.ts index 10f8d311a8fc4..d4138bf20e892 100644 --- a/src/services/codefixes/splitTypeOnlyImport.ts +++ b/src/services/codefixes/splitTypeOnlyImport.ts @@ -5,7 +5,7 @@ namespace ts.codefix { registerCodeFix({ errorCodes, fixIds: [fixId], - getCodeActions: context => { + getCodeActions: function getCodeActionsToSplitTypeOnlyImport(context) { const changes = textChanges.ChangeTracker.with(context, t => { return splitTypeOnlyImport(t, getImportDeclaration(context.sourceFile, context.span), context); }); diff --git a/src/services/codefixes/useBigintLiteral.ts b/src/services/codefixes/useBigintLiteral.ts index f521386f85e2f..0b174e5915e1f 100644 --- a/src/services/codefixes/useBigintLiteral.ts +++ b/src/services/codefixes/useBigintLiteral.ts @@ -7,7 +7,7 @@ namespace ts.codefix { registerCodeFix({ errorCodes, - getCodeActions: context => { + getCodeActions: function getCodeActionsToUseBigintLiteral(context) { const changes = textChanges.ChangeTracker.with(context, t => makeChange(t, context.sourceFile, context.span)); if (changes.length > 0) { return [createCodeFixAction(fixId, changes, Diagnostics.Convert_to_a_bigint_numeric_literal, fixId, Diagnostics.Convert_all_to_bigint_numeric_literals)]; diff --git a/src/services/codefixes/wrapJsxInFragment.ts b/src/services/codefixes/wrapJsxInFragment.ts index c70ee0833d77d..a1ce0650a3139 100644 --- a/src/services/codefixes/wrapJsxInFragment.ts +++ b/src/services/codefixes/wrapJsxInFragment.ts @@ -4,7 +4,7 @@ namespace ts.codefix { const errorCodes = [Diagnostics.JSX_expressions_must_have_one_parent_element.code]; registerCodeFix({ errorCodes, - getCodeActions: context => { + getCodeActions: function getCodeActionsToWrapJsxInFragment(context) { const { sourceFile, span } = context; const node = findNodeToFix(sourceFile, span.start); if (!node) return undefined; diff --git a/src/services/completions.ts b/src/services/completions.ts index 40053d2e87350..0e936a774d580 100644 --- a/src/services/completions.ts +++ b/src/services/completions.ts @@ -6,43 +6,32 @@ namespace ts.Completions { export type Log = (message: string) => void; - // NOTE: Make sure that each entry has the exact same number of digits - // since many implementations will sort by string contents, - // where "10" is considered less than "2". - export enum SortText { - LocalDeclarationPriority = "10", - LocationPriority = "11", - OptionalMember = "12", - MemberDeclaredBySpreadAssignment = "13", - SuggestedClassMembers = "14", - GlobalsOrKeywords = "15", - AutoImportSuggestions = "16", - JavascriptIdentifiers = "17", - DeprecatedLocalDeclarationPriority = "18", - DeprecatedLocationPriority = "19", - DeprecatedOptionalMember = "20", - DeprecatedMemberDeclaredBySpreadAssignment = "21", - DeprecatedSuggestedClassMembers = "22", - DeprecatedGlobalsOrKeywords = "23", - DeprecatedAutoImportSuggestions = "24" - } - - const enum SortTextId { - LocalDeclarationPriority = 10, - LocationPriority = 11, - OptionalMember = 12, - MemberDeclaredBySpreadAssignment = 13, - SuggestedClassMembers = 14, - GlobalsOrKeywords = 15, - AutoImportSuggestions = 16, - - // Don't use these directly. - _JavaScriptIdentifiers = 17, - _DeprecatedStart = 18, - _First = LocalDeclarationPriority, - - DeprecatedOffset = _DeprecatedStart - _First, - } + export type SortText = string & { __sortText: any }; + export const SortText = { + // Presets + LocalDeclarationPriority: "10" as SortText, + LocationPriority: "11" as SortText, + OptionalMember: "12" as SortText, + MemberDeclaredBySpreadAssignment: "13" as SortText, + SuggestedClassMembers: "14" as SortText, + GlobalsOrKeywords: "15" as SortText, + AutoImportSuggestions: "16" as SortText, + ClassMemberSnippets: "17" as SortText, + JavascriptIdentifiers: "18" as SortText, + + // Transformations + Deprecated(sortText: SortText): SortText { + return "z" + sortText as SortText; + }, + + ObjectLiteralProperty(presetSortText: SortText, symbolDisplayName: string): SortText { + return `${presetSortText}\0${symbolDisplayName}\0` as SortText; + }, + + SortBelow(sortText: SortText): SortText { + return sortText + "1" as SortText; + }, + }; /** * Special values for `CompletionInfo['source']` used to disambiguate @@ -57,7 +46,13 @@ namespace ts.Completions { */ export enum CompletionSource { /** Completions that require `this.` insertion text */ - ThisProperty = "ThisProperty/" + ThisProperty = "ThisProperty/", + /** Auto-import that comes attached to a class member snippet */ + ClassMemberSnippet = "ClassMemberSnippet/", + /** A type-only import that needs to be promoted in order to be used at the completion location */ + TypeOnlyAlias = "TypeOnlyAlias/", + /** Auto-import that comes attached to an object literal method snippet */ + ObjectLiteralMethodSnippet = "ObjectLiteralMethodSnippet/", } const enum SymbolOriginInfoKind { @@ -67,6 +62,8 @@ namespace ts.Completions { Promise = 1 << 3, Nullable = 1 << 4, ResolvedExport = 1 << 5, + TypeOnlyAlias = 1 << 6, + ObjectLiteralMethod = 1 << 7, SymbolMemberNoExport = SymbolMember, SymbolMemberExport = SymbolMember | Export, @@ -94,6 +91,17 @@ namespace ts.Completions { moduleSpecifier: string; } + interface SymbolOriginInfoTypeOnlyAlias extends SymbolOriginInfo { + declaration: TypeOnlyAliasDeclaration; + } + + interface SymbolOriginInfoObjectLiteralMethod extends SymbolOriginInfo { + importAdder: codefix.ImportAdder, + insertText: string, + labelDetails: CompletionEntryLabelDetails, + isSnippet?: true, + } + function originIsThisType(origin: SymbolOriginInfo): boolean { return !!(origin.kind & SymbolOriginInfoKind.ThisType); } @@ -126,6 +134,14 @@ namespace ts.Completions { return !!(origin.kind & SymbolOriginInfoKind.Nullable); } + function originIsTypeOnlyAlias(origin: SymbolOriginInfo | undefined): origin is SymbolOriginInfoTypeOnlyAlias { + return !!(origin && origin.kind & SymbolOriginInfoKind.TypeOnlyAlias); + } + + function originIsObjectLiteralMethod(origin: SymbolOriginInfo | undefined): origin is SymbolOriginInfoObjectLiteralMethod { + return !!(origin && origin.kind & SymbolOriginInfoKind.ObjectLiteralMethod); + } + interface UniqueNameSet { add(name: string): void; has(name: string): boolean; @@ -133,12 +149,11 @@ namespace ts.Completions { /** * Map from symbol index in `symbols` -> SymbolOriginInfo. - * Only populated for symbols that come from other modules. */ type SymbolOriginInfoMap = Record; - /** Map from symbol id -> SortTextId. */ - type SymbolSortTextIdMap = (SortTextId | undefined)[]; + /** Map from symbol id -> SortText. */ + type SymbolSortTextMap = (SortText | undefined)[]; const enum KeywordCompletionFilters { None, // No keywords @@ -175,6 +190,7 @@ namespace ts.Completions { cb: (context: ModuleSpecifierResolutioContext) => TReturn, ): TReturn { const start = timestamp(); + const packageJsonImportFilter = createPackageJsonImportFilter(sourceFile, preferences, host); let resolutionLimitExceeded = false; let ambientCount = 0; let resolvedCount = 0; @@ -200,7 +216,7 @@ namespace ts.Completions { const shouldResolveModuleSpecifier = isForImportStatementCompletion || preferences.allowIncompleteCompletions && resolvedCount < moduleSpecifierResolutionLimit; const shouldGetModuleSpecifierFromCache = !shouldResolveModuleSpecifier && preferences.allowIncompleteCompletions && cacheAttemptCount < moduleSpecifierResolutionCacheAttemptLimit; const result = (shouldResolveModuleSpecifier || shouldGetModuleSpecifierFromCache) - ? codefix.getModuleSpecifierForBestExportInfo(exportInfo, sourceFile, program, host, preferences, shouldGetModuleSpecifierFromCache) + ? codefix.getModuleSpecifierForBestExportInfo(exportInfo, sourceFile, program, host, preferences, packageJsonImportFilter, shouldGetModuleSpecifierFromCache) : undefined; if (!shouldResolveModuleSpecifier && !shouldGetModuleSpecifierFromCache || shouldGetModuleSpecifierFromCache && !result) { @@ -227,6 +243,7 @@ namespace ts.Completions { triggerCharacter: CompletionsTriggerCharacter | undefined, completionKind: CompletionTriggerKind | undefined, cancellationToken: CancellationToken, + formatContext?: formatting.FormatContext, ): CompletionInfo | undefined { const { previousToken } = getRelevantTokens(position, sourceFile); if (triggerCharacter && !isInString(sourceFile, position, previousToken) && !isValidTrigger(sourceFile, triggerCharacter, previousToken, position)) { @@ -244,7 +261,6 @@ namespace ts.Completions { // If the request is a continuation of an earlier `isIncomplete` response, // we can continue it from the cached previous response. - const typeChecker = program.getTypeChecker(); const compilerOptions = program.getCompilerOptions(); const incompleteCompletionsCache = preferences.allowIncompleteCompletions ? host.getIncompleteCompletionsCache?.() : undefined; if (incompleteCompletionsCache && completionKind === CompletionTriggerKind.TriggerForIncompleteCompletions && previousToken && isIdentifier(previousToken)) { @@ -257,7 +273,7 @@ namespace ts.Completions { incompleteCompletionsCache?.clear(); } - const stringCompletions = StringCompletions.getStringLiteralCompletions(sourceFile, position, previousToken, typeChecker, compilerOptions, host, log, preferences); + const stringCompletions = StringCompletions.getStringLiteralCompletions(sourceFile, position, previousToken, compilerOptions, host, program, log, preferences); if (stringCompletions) { return stringCompletions; } @@ -267,14 +283,14 @@ namespace ts.Completions { return getLabelCompletionAtPosition(previousToken.parent); } - const completionData = getCompletionData(program, log, sourceFile, isUncheckedFile(sourceFile, compilerOptions), position, preferences, /*detailsEntryId*/ undefined, host, cancellationToken); + const completionData = getCompletionData(program, log, sourceFile, compilerOptions, position, preferences, /*detailsEntryId*/ undefined, host, formatContext, cancellationToken); if (!completionData) { return undefined; } switch (completionData.kind) { case CompletionDataKind.Data: - const response = completionInfoFromData(sourceFile, typeChecker, compilerOptions, log, completionData, preferences); + const response = completionInfoFromData(sourceFile, host, program, compilerOptions, log, completionData, preferences, formatContext, position); if (response?.isIncomplete) { incompleteCompletionsCache?.set(response); } @@ -294,6 +310,32 @@ namespace ts.Completions { } } + // Editors will use the `sortText` and then fall back to `name` for sorting, but leave ties in response order. + // So, it's important that we sort those ties in the order we want them displayed if it matters. We don't + // strictly need to sort by name or SortText here since clients are going to do it anyway, but we have to + // do the work of comparing them so we can sort those ties appropriately; plus, it makes the order returned + // by the language service consistent with what TS Server does and what editors typically do. This also makes + // completions tests make more sense. We used to sort only alphabetically and only in the server layer, but + // this made tests really weird, since most fourslash tests don't use the server. + function compareCompletionEntries(entryInArray: CompletionEntry, entryToInsert: CompletionEntry): Comparison { + let result = compareStringsCaseSensitiveUI(entryInArray.sortText, entryToInsert.sortText); + if (result === Comparison.EqualTo) { + result = compareStringsCaseSensitiveUI(entryInArray.name, entryToInsert.name); + } + if (result === Comparison.EqualTo && entryInArray.data?.moduleSpecifier && entryToInsert.data?.moduleSpecifier) { + // Sort same-named auto-imports by module specifier + result = compareNumberOfDirectorySeparators( + (entryInArray.data as CompletionEntryDataResolved).moduleSpecifier, + (entryToInsert.data as CompletionEntryDataResolved).moduleSpecifier, + ); + } + if (result === Comparison.EqualTo) { + // Fall back to symbol order - if we return `EqualTo`, `insertSorted` will put later symbols first. + return Comparison.LessThan; + } + return result; + } + function completionEntryDataIsResolved(data: CompletionEntryDataAutoImport | undefined): data is CompletionEntryDataResolved { return !!data?.moduleSpecifier; } @@ -403,7 +445,17 @@ namespace ts.Completions { return location?.kind === SyntaxKind.Identifier ? createTextSpanFromNode(location) : undefined; } - function completionInfoFromData(sourceFile: SourceFile, typeChecker: TypeChecker, compilerOptions: CompilerOptions, log: Log, completionData: CompletionData, preferences: UserPreferences): CompletionInfo | undefined { + function completionInfoFromData( + sourceFile: SourceFile, + host: LanguageServiceHost, + program: Program, + compilerOptions: CompilerOptions, + log: Log, + completionData: CompletionData, + preferences: UserPreferences, + formatContext: formatting.FormatContext | undefined, + position: number + ): CompletionInfo | undefined { const { symbols, contextToken, @@ -419,9 +471,10 @@ namespace ts.Completions { isJsxInitializer, isTypeOnlyLocation, isJsxIdentifierExpected, + isRightOfOpenTag, importCompletionNode, insideJsDocTagTypeExpression, - symbolToSortTextIdMap, + symbolToSortTextMap: symbolToSortTextMap, hasUnresolvedAutoImports, } = completionData; @@ -433,7 +486,7 @@ namespace ts.Completions { } } - const entries: CompletionEntry[] = []; + const entries = createSortedArray(); if (isUncheckedFile(sourceFile, compilerOptions)) { const uniqueNames = getCompletionEntriesFromSymbols( @@ -443,12 +496,14 @@ namespace ts.Completions { contextToken, location, sourceFile, - typeChecker, + host, + program, getEmitScriptTarget(compilerOptions), log, completionKind, preferences, compilerOptions, + formatContext, isTypeOnlyLocation, propertyAccessToConvert, isJsxIdentifierExpected, @@ -456,9 +511,11 @@ namespace ts.Completions { importCompletionNode, recommendedCompletion, symbolToOriginInfoMap, - symbolToSortTextIdMap + symbolToSortTextMap, + isJsxIdentifierExpected, + isRightOfOpenTag, ); - getJSCompletionEntries(sourceFile, location.pos, uniqueNames, getEmitScriptTarget(compilerOptions), entries); // TODO: GH#18217 + getJSCompletionEntries(sourceFile, location.pos, uniqueNames, getEmitScriptTarget(compilerOptions), entries); } else { if (!isNewIdentifierLocation && (!symbols || symbols.length === 0) && keywordFilters === KeywordCompletionFilters.None) { @@ -472,12 +529,14 @@ namespace ts.Completions { contextToken, location, sourceFile, - typeChecker, + host, + program, getEmitScriptTarget(compilerOptions), log, completionKind, preferences, compilerOptions, + formatContext, isTypeOnlyLocation, propertyAccessToConvert, isJsxIdentifierExpected, @@ -485,7 +544,9 @@ namespace ts.Completions { importCompletionNode, recommendedCompletion, symbolToOriginInfoMap, - symbolToSortTextIdMap + symbolToSortTextMap, + isJsxIdentifierExpected, + isRightOfOpenTag, ); } @@ -493,13 +554,20 @@ namespace ts.Completions { const entryNames = new Set(entries.map(e => e.name)); for (const keywordEntry of getKeywordCompletions(keywordFilters, !insideJsDocTagTypeExpression && isSourceFileJS(sourceFile))) { if (!entryNames.has(keywordEntry.name)) { - entries.push(keywordEntry); + insertSorted(entries, keywordEntry, compareCompletionEntries, /*allowDuplicates*/ true); } } } + const entryNames = new Set(entries.map(e => e.name)); + for (const keywordEntry of getContextualKeywords(contextToken, position)) { + if (!entryNames.has(keywordEntry.name)) { + insertSorted(entries, keywordEntry, compareCompletionEntries, /*allowDuplicates*/ true); + } + } + for (const literal of literals) { - entries.push(createCompletionEntryForLiteral(sourceFile, preferences, literal)); + insertSorted(entries, createCompletionEntryForLiteral(sourceFile, preferences, literal), compareCompletionEntries, /*allowDuplicates*/ true); } return { @@ -578,7 +646,7 @@ namespace ts.Completions { position: number, uniqueNames: UniqueNameSet, target: ScriptTarget, - entries: Push): void { + entries: SortedArray): void { getNameTable(sourceFile).forEach((pos, name) => { // Skip identifiers produced only from the current location if (pos === position) { @@ -587,13 +655,13 @@ namespace ts.Completions { const realName = unescapeLeadingUnderscores(name); if (!uniqueNames.has(realName) && isIdentifierText(realName, target)) { uniqueNames.add(realName); - entries.push({ + insertSorted(entries, { name: realName, kind: ScriptElementKind.warning, kindModifiers: "", sortText: SortText.JavascriptIdentifiers, isFromUncheckedFile: true - }); + }, compareCompletionEntries); } }); } @@ -614,7 +682,8 @@ namespace ts.Completions { contextToken: Node | undefined, location: Node, sourceFile: SourceFile, - typeChecker: TypeChecker, + host: LanguageServiceHost, + program: Program, name: string, needsConvertPropertyAccess: boolean, origin: SymbolOriginInfo | undefined, @@ -625,14 +694,21 @@ namespace ts.Completions { useSemicolons: boolean, options: CompilerOptions, preferences: UserPreferences, + completionKind: CompletionKind, + formatContext: formatting.FormatContext | undefined, + isJsxIdentifierExpected: boolean | undefined, + isRightOfOpenTag: boolean | undefined, ): CompletionEntry | undefined { let insertText: string | undefined; let replacementSpan = getReplacementSpanForContextToken(replacementToken); let data: CompletionEntryData | undefined; let isSnippet: true | undefined; + let source = getSourceFromOrigin(origin); let sourceDisplay; let hasAction; + let labelDetails; + const typeChecker = program.getTypeChecker(); const insertQuestionDot = origin && originIsNullableMember(origin); const useBraces = origin && originIsSymbolMember(origin) || needsConvertPropertyAccess; if (origin && originIsThisType(origin)) { @@ -686,17 +762,38 @@ namespace ts.Completions { } } - if (insertText !== undefined && !preferences.includeCompletionsWithInsertText) { - return undefined; + if (origin?.kind === SymbolOriginInfoKind.TypeOnlyAlias) { + hasAction = true; } - if (originIsExport(origin) || originIsResolvedExport(origin)) { - data = originToCompletionEntryData(origin); - hasAction = !importCompletionNode; + if (preferences.includeCompletionsWithClassMemberSnippets && + preferences.includeCompletionsWithInsertText && + completionKind === CompletionKind.MemberLike && + isClassLikeMemberCompletion(symbol, location)) { + let importAdder; + ({ insertText, isSnippet, importAdder, replacementSpan } = getEntryForMemberCompletion(host, program, options, preferences, name, symbol, location, contextToken, formatContext)); + sortText = SortText.ClassMemberSnippets; // sortText has to be lower priority than the sortText for keywords. See #47852. + if (importAdder?.hasFixes()) { + hasAction = true; + source = CompletionSource.ClassMemberSnippet; + } } - const kind = SymbolDisplay.getSymbolKind(typeChecker, symbol, location); - if (kind === ScriptElementKind.jsxAttribute && preferences.includeCompletionsWithSnippetText && preferences.jsxAttributeCompletionStyle && preferences.jsxAttributeCompletionStyle !== "none") { + if (origin && originIsObjectLiteralMethod(origin)) { + let importAdder; + ({ insertText, isSnippet, importAdder, labelDetails } = origin); + if (!preferences.useLabelDetailsInCompletionEntries) { + name = name + labelDetails.detail; + labelDetails = undefined; + } + source = CompletionSource.ObjectLiteralMethodSnippet; + sortText = SortText.SortBelow(sortText); + if (importAdder.hasFixes()) { + hasAction = true; + } + } + + if (isJsxIdentifierExpected && !isRightOfOpenTag && preferences.includeCompletionsWithSnippetText && preferences.jsxAttributeCompletionStyle && preferences.jsxAttributeCompletionStyle !== "none") { let useBraces = preferences.jsxAttributeCompletionStyle === "braces"; const type = typeChecker.getTypeOfSymbolAtLocation(symbol, location); @@ -720,10 +817,15 @@ namespace ts.Completions { insertText = `${escapeSnippetText(name)}={$1}`; isSnippet = true; } + } - if (isSnippet) { - replacementSpan = createTextSpanFromNode(location, sourceFile); - } + if (insertText !== undefined && !preferences.includeCompletionsWithInsertText) { + return undefined; + } + + if (originIsExport(origin) || originIsResolvedExport(origin)) { + data = originToCompletionEntryData(origin); + hasAction = !importCompletionNode; } // TODO(drosen): Right now we just permit *all* semantic meanings when calling @@ -736,15 +838,16 @@ namespace ts.Completions { // entries (like JavaScript identifier entries). return { name, - kind, + kind: SymbolDisplay.getSymbolKind(typeChecker, symbol, location), kindModifiers: SymbolDisplay.getSymbolModifiers(typeChecker, symbol), sortText, - source: getSourceFromOrigin(origin), + source, hasAction: hasAction ? true : undefined, isRecommended: isRecommendedCompletionMatch(symbol, recommendedCompletion, typeChecker) || undefined, insertText, replacementSpan, sourceDisplay, + labelDetails, isSnippet, isPackageJsonImport: originIsPackageJsonImport(origin) || undefined, isImportStatementCompletion: !!importCompletionNode || undefined, @@ -752,8 +855,412 @@ namespace ts.Completions { }; } - function escapeSnippetText(text: string): string { - return text.replace(/\$/gm, "\\$"); + function isClassLikeMemberCompletion(symbol: Symbol, location: Node): boolean { + // TODO: support JS files. + if (isInJSFile(location)) { + return false; + } + + // Completion symbol must be for a class member. + const memberFlags = + SymbolFlags.ClassMember + & SymbolFlags.EnumMemberExcludes; + /* In + `class C { + | + }` + `location` is a class-like declaration. + In + `class C { + m| + }` + `location` is an identifier, + `location.parent` is a class element declaration, + and `location.parent.parent` is a class-like declaration. + In + `abstract class C { + abstract + abstract m| + }` + `location` is a syntax list (with modifiers as children), + and `location.parent` is a class-like declaration. + */ + return !!(symbol.flags & memberFlags) && + ( + isClassLike(location) || + ( + location.parent && + location.parent.parent && + isClassElement(location.parent) && + location === location.parent.name && + isClassLike(location.parent.parent) + ) || + ( + location.parent && + isSyntaxList(location) && + isClassLike(location.parent) + ) + ); + } + + function getEntryForMemberCompletion( + host: LanguageServiceHost, + program: Program, + options: CompilerOptions, + preferences: UserPreferences, + name: string, + symbol: Symbol, + location: Node, + contextToken: Node | undefined, + formatContext: formatting.FormatContext | undefined, + ): { insertText: string, isSnippet?: true, importAdder?: codefix.ImportAdder, replacementSpan?: TextSpan } { + const classLikeDeclaration = findAncestor(location, isClassLike); + if (!classLikeDeclaration) { + return { insertText: name }; + } + + let isSnippet: true | undefined; + let replacementSpan: TextSpan | undefined; + let insertText: string = name; + + const checker = program.getTypeChecker(); + const sourceFile = location.getSourceFile(); + const printer = createSnippetPrinter({ + removeComments: true, + module: options.module, + target: options.target, + omitTrailingSemicolon: false, + newLine: getNewLineKind(getNewLineCharacter(options, maybeBind(host, host.getNewLine))), + }); + const importAdder = codefix.createImportAdder(sourceFile, program, preferences, host); + + // Create empty body for possible method implementation. + let body; + if (preferences.includeCompletionsWithSnippetText) { + isSnippet = true; + // We are adding a tabstop (i.e. `$0`) in the body of the suggested member, + // if it has one, so that the cursor ends up in the body once the completion is inserted. + // Note: this assumes we won't have more than one body in the completion nodes, which should be the case. + const emptyStmt = factory.createEmptyStatement(); + body = factory.createBlock([emptyStmt], /* multiline */ true); + setSnippetElement(emptyStmt, { kind: SnippetKind.TabStop, order: 0 }); + } + else { + body = factory.createBlock([], /* multiline */ true); + } + + let modifiers = ModifierFlags.None; + // Whether the suggested member should be abstract. + // e.g. in `abstract class C { abstract | }`, we should offer abstract method signatures at position `|`. + const { modifiers: presentModifiers, span: modifiersSpan } = getPresentModifiers(contextToken); + const isAbstract = !!(presentModifiers & ModifierFlags.Abstract); + const completionNodes: Node[] = []; + codefix.addNewNodeForMemberSymbol( + symbol, + classLikeDeclaration, + sourceFile, + { program, host }, + preferences, + importAdder, + // `addNewNodeForMemberSymbol` calls this callback function for each new member node + // it adds for the given member symbol. + // We store these member nodes in the `completionNodes` array. + // Note: there might be: + // - No nodes if `addNewNodeForMemberSymbol` cannot figure out a node for the member; + // - One node; + // - More than one node if the member is overloaded (e.g. a method with overload signatures). + node => { + let requiredModifiers = ModifierFlags.None; + if (isAbstract) { + requiredModifiers |= ModifierFlags.Abstract; + } + if (isClassElement(node) + && checker.getMemberOverrideModifierStatus(classLikeDeclaration, node) === MemberOverrideStatus.NeedsOverride) { + requiredModifiers |= ModifierFlags.Override; + } + + if (!completionNodes.length) { + // Keep track of added missing required modifiers and modifiers already present. + // This is needed when we have overloaded signatures, + // so this callback will be called for multiple nodes/signatures, + // and we need to make sure the modifiers are uniform for all nodes/signatures. + modifiers = node.modifierFlagsCache | requiredModifiers | presentModifiers; + } + node = factory.updateModifiers(node, modifiers); + completionNodes.push(node); + }, + body, + codefix.PreserveOptionalFlags.Property, + isAbstract); + + if (completionNodes.length) { + const format = ListFormat.MultiLine | ListFormat.NoTrailingNewLine; + replacementSpan = modifiersSpan; + // If we have access to formatting settings, we print the nodes using the emitter, + // and then format the printed text. + if (formatContext) { + insertText = printer.printAndFormatSnippetList( + format, + factory.createNodeArray(completionNodes), + sourceFile, + formatContext); + } + else { // Otherwise, just use emitter to print the new nodes. + insertText = printer.printSnippetList( + format, + factory.createNodeArray(completionNodes), + sourceFile); + } + } + + return { insertText, isSnippet, importAdder, replacementSpan }; + } + + function getPresentModifiers(contextToken: Node | undefined): { modifiers: ModifierFlags, span?: TextSpan } { + if (!contextToken) { + return { modifiers: ModifierFlags.None }; + } + let modifiers = ModifierFlags.None; + let span; + let contextMod; + /* + Cases supported: + In + `class C { + public abstract | + }` + `contextToken` is ``abstract`` (as an identifier), + `contextToken.parent` is property declaration, + `location` is class declaration ``class C { ... }``. + In + `class C { + protected override m| + }` + `contextToken` is ``override`` (as a keyword), + `contextToken.parent` is property declaration, + `location` is identifier ``m``, + `location.parent` is property declaration ``protected override m``, + `location.parent.parent` is class declaration ``class C { ... }``. + */ + if (contextMod = isModifierLike(contextToken)) { + modifiers |= modifierToFlag(contextMod); + span = createTextSpanFromNode(contextToken); + } + if (isPropertyDeclaration(contextToken.parent)) { + modifiers |= modifiersToFlags(contextToken.parent.modifiers); + span = createTextSpanFromNode(contextToken.parent); + } + return { modifiers, span }; + } + + function isModifierLike(node: Node): ModifierSyntaxKind | undefined { + if (isModifier(node)) { + return node.kind; + } + if (isIdentifier(node) && node.originalKeywordKind && isModifierKind(node.originalKeywordKind)) { + return node.originalKeywordKind; + } + return undefined; + } + + function getEntryForObjectLiteralMethodCompletion( + symbol: Symbol, + name: string, + enclosingDeclaration: ObjectLiteralExpression, + program: Program, + host: LanguageServiceHost, + options: CompilerOptions, + preferences: UserPreferences, + formatContext: formatting.FormatContext | undefined, + ): { insertText: string, isSnippet?: true, importAdder: codefix.ImportAdder, labelDetails: CompletionEntryLabelDetails } | undefined { + const isSnippet = preferences.includeCompletionsWithSnippetText || undefined; + let insertText: string = name; + + const sourceFile = enclosingDeclaration.getSourceFile(); + const importAdder = codefix.createImportAdder(sourceFile, program, preferences, host); + + const method = createObjectLiteralMethod(symbol, enclosingDeclaration, sourceFile, program, host, preferences, importAdder); + if (!method) { + return undefined; + } + + const printer = createSnippetPrinter({ + removeComments: true, + module: options.module, + target: options.target, + omitTrailingSemicolon: false, + newLine: getNewLineKind(getNewLineCharacter(options, maybeBind(host, host.getNewLine))), + }); + if (formatContext) { + insertText = printer.printAndFormatSnippetList(ListFormat.CommaDelimited | ListFormat.AllowTrailingComma, factory.createNodeArray([method], /*hasTrailingComma*/ true), sourceFile, formatContext); + } + else { + insertText = printer.printSnippetList(ListFormat.CommaDelimited | ListFormat.AllowTrailingComma, factory.createNodeArray([method], /*hasTrailingComma*/ true), sourceFile); + } + + const signaturePrinter = createPrinter({ + removeComments: true, + module: options.module, + target: options.target, + omitTrailingSemicolon: true, + }); + // The `labelDetails.detail` will be displayed right beside the method name, + // so we drop the name (and modifiers) from the signature. + const methodSignature = factory.createMethodSignature( + /*modifiers*/ undefined, + /*name*/ "", + method.questionToken, + method.typeParameters, + method.parameters, + method.type); + const labelDetails = { detail: signaturePrinter.printNode(EmitHint.Unspecified, methodSignature, sourceFile) }; + + return { isSnippet, insertText, importAdder, labelDetails }; + + }; + + function createObjectLiteralMethod( + symbol: Symbol, + enclosingDeclaration: ObjectLiteralExpression, + sourceFile: SourceFile, + program: Program, + host: LanguageServiceHost, + preferences: UserPreferences, + importAdder: codefix.ImportAdder, + ): MethodDeclaration | undefined { + const declarations = symbol.getDeclarations(); + if (!(declarations && declarations.length)) { + return undefined; + } + const checker = program.getTypeChecker(); + const scriptTarget = getEmitScriptTarget(program.getCompilerOptions()); + const declaration = declarations[0]; + const name = getSynthesizedDeepClone(getNameOfDeclaration(declaration), /*includeTrivia*/ false) as PropertyName; + const type = checker.getWidenedType(checker.getTypeOfSymbolAtLocation(symbol, enclosingDeclaration)); + const quotePreference = getQuotePreference(sourceFile, preferences); + const builderFlags = quotePreference === QuotePreference.Single ? NodeBuilderFlags.UseSingleQuotesForStringLiteralType : undefined; + + switch (declaration.kind) { + case SyntaxKind.PropertySignature: + case SyntaxKind.PropertyDeclaration: + case SyntaxKind.MethodSignature: + case SyntaxKind.MethodDeclaration: { + let effectiveType = type.flags & TypeFlags.Union && (type as UnionType).types.length < 10 + ? checker.getUnionType((type as UnionType).types, UnionReduction.Subtype) + : type; + if (effectiveType.flags & TypeFlags.Union) { + // Only offer the completion if there's a single function type component. + const functionTypes = filter((effectiveType as UnionType).types, type => checker.getSignaturesOfType(type, SignatureKind.Call).length > 0); + if (functionTypes.length === 1) { + effectiveType = functionTypes[0]; + } + else { + return undefined; + } + } + const signatures = checker.getSignaturesOfType(effectiveType, SignatureKind.Call); + if (signatures.length !== 1) { + // We don't support overloads in object literals. + return undefined; + } + let typeNode = checker.typeToTypeNode(effectiveType, enclosingDeclaration, builderFlags, codefix.getNoopSymbolTrackerWithResolver({ program, host })); + if (!typeNode || !isFunctionTypeNode(typeNode)) { + return undefined; + } + const importableReference = codefix.tryGetAutoImportableReferenceFromTypeNode(typeNode, scriptTarget); + if (importableReference) { + typeNode = importableReference.typeNode; + codefix.importSymbols(importAdder, importableReference.symbols); + } + + let body; + if (preferences.includeCompletionsWithSnippetText) { + const emptyStmt = factory.createEmptyStatement(); + body = factory.createBlock([emptyStmt], /* multiline */ true); + setSnippetElement(emptyStmt, { kind: SnippetKind.TabStop, order: 0 }); + } + else { + body = factory.createBlock([], /* multiline */ true); + } + + return factory.createMethodDeclaration( + /*decorators*/ undefined, + /*modifiers*/ undefined, + /*asteriskToken*/ undefined, + name, + /*questionToken*/ undefined, + (typeNode as FunctionTypeNode).typeParameters, + (typeNode as FunctionTypeNode).parameters, + (typeNode as FunctionTypeNode).type, + body); + } + default: + return undefined; + } + } + + function createSnippetPrinter( + printerOptions: PrinterOptions, + ) { + const baseWriter = textChanges.createWriter(getNewLineCharacter(printerOptions)); + const printer = createPrinter(printerOptions, baseWriter); + const writer: EmitTextWriter = { + ...baseWriter, + write: s => baseWriter.write(escapeSnippetText(s)), + nonEscapingWrite: baseWriter.write, + writeLiteral: s => baseWriter.writeLiteral(escapeSnippetText(s)), + writeStringLiteral: s => baseWriter.writeStringLiteral(escapeSnippetText(s)), + writeSymbol: (s, symbol) => baseWriter.writeSymbol(escapeSnippetText(s), symbol), + writeParameter: s => baseWriter.writeParameter(escapeSnippetText(s)), + writeComment: s => baseWriter.writeComment(escapeSnippetText(s)), + writeProperty: s => baseWriter.writeProperty(escapeSnippetText(s)), + }; + + return { + printSnippetList, + printAndFormatSnippetList, + }; + + /* Snippet-escaping version of `printer.printList`. */ + function printSnippetList( + format: ListFormat, + list: NodeArray, + sourceFile: SourceFile | undefined, + ): string { + writer.clear(); + printer.writeList(format, list, sourceFile, writer); + return writer.getText(); + } + + function printAndFormatSnippetList( + format: ListFormat, + list: NodeArray, + sourceFile: SourceFile, + formatContext: formatting.FormatContext, + ): string { + const syntheticFile = { + text: printSnippetList( + format, + list, + sourceFile), + getLineAndCharacterOfPosition(pos: number) { + return getLineAndCharacterOfPosition(this, pos); + }, + }; + + const formatOptions = getFormatCodeSettingsForWriting(formatContext, sourceFile); + const changes = flatMap(list, node => { + const nodeWithPos = textChanges.assignPositionsToNode(node); + return formatting.formatNodeGivenIndentation( + nodeWithPos, + syntheticFile, + sourceFile.languageVariant, + /* indentation */ 0, + /* delta */ 0, + { ...formatContext, options: formatOptions }); + }); + return textChanges.applyChanges(syntheticFile.text, changes); + } } function originToCompletionEntryData(origin: SymbolOriginInfoExport | SymbolOriginInfoResolvedExport): CompletionEntryData | undefined { @@ -854,21 +1361,26 @@ namespace ts.Completions { if (origin?.kind === SymbolOriginInfoKind.ThisType) { return CompletionSource.ThisProperty; } + if (origin?.kind === SymbolOriginInfoKind.TypeOnlyAlias) { + return CompletionSource.TypeOnlyAlias; + } } export function getCompletionEntriesFromSymbols( symbols: readonly Symbol[], - entries: Push, + entries: SortedArray, replacementToken: Node | undefined, contextToken: Node | undefined, location: Node, sourceFile: SourceFile, - typeChecker: TypeChecker, + host: LanguageServiceHost, + program: Program, target: ScriptTarget, log: Log, kind: CompletionKind, preferences: UserPreferences, compilerOptions: CompilerOptions, + formatContext: formatting.FormatContext | undefined, isTypeOnlyLocation?: boolean, propertyAccessToConvert?: PropertyAccessExpression, jsxIdentifierExpected?: boolean, @@ -876,11 +1388,14 @@ namespace ts.Completions { importCompletionNode?: Node, recommendedCompletion?: Symbol, symbolToOriginInfoMap?: SymbolOriginInfoMap, - symbolToSortTextIdMap?: SymbolSortTextIdMap, + symbolToSortTextMap?: SymbolSortTextMap, + isJsxIdentifierExpected?: boolean, + isRightOfOpenTag?: boolean, ): UniqueNameSet { const start = timestamp(); const variableDeclaration = getVariableDeclaration(location); const useSemicolons = probablyUsesSemicolons(sourceFile); + const typeChecker = program.getTypeChecker(); // Tracks unique names. // Value is set to false for global variables or completions from external module exports, because we can have multiple of those; // true otherwise. Based on the order we add things we will always see locals first, then globals, then module exports. @@ -890,13 +1405,13 @@ namespace ts.Completions { const symbol = symbols[i]; const origin = symbolToOriginInfoMap?.[i]; const info = getCompletionEntryDisplayNameForSymbol(symbol, target, origin, kind, !!jsxIdentifierExpected); - if (!info || uniques.get(info.name) || kind === CompletionKind.Global && symbolToSortTextIdMap && !shouldIncludeSymbol(symbol, symbolToSortTextIdMap)) { + if (!info || (uniques.get(info.name) && (!origin || !originIsObjectLiteralMethod(origin))) || kind === CompletionKind.Global && symbolToSortTextMap && !shouldIncludeSymbol(symbol, symbolToSortTextMap)) { continue; } const { name, needsConvertPropertyAccess } = info; - const sortTextId = symbolToSortTextIdMap?.[getSymbolId(symbol)] ?? SortTextId.LocationPriority; - const sortText = (isDeprecated(symbol, typeChecker) ? SortTextId.DeprecatedOffset + sortTextId : sortTextId).toString() as SortText; + const originalSortText = symbolToSortTextMap?.[getSymbolId(symbol)] ?? SortText.LocationPriority; + const sortText = (isDeprecated(symbol, typeChecker) ? SortText.Deprecated(originalSortText) : originalSortText); const entry = createCompletionEntry( symbol, sortText, @@ -904,7 +1419,8 @@ namespace ts.Completions { contextToken, location, sourceFile, - typeChecker, + host, + program, name, needsConvertPropertyAccess, origin, @@ -914,16 +1430,20 @@ namespace ts.Completions { importCompletionNode, useSemicolons, compilerOptions, - preferences + preferences, + kind, + formatContext, + isJsxIdentifierExpected, + isRightOfOpenTag, ); if (!entry) { continue; } /** True for locals; false for globals, module exports from other files, `this.` completions. */ - const shouldShadowLaterSymbols = !origin && !(symbol.parent === undefined && !some(symbol.declarations, d => d.getSourceFile() === location.getSourceFile())); + const shouldShadowLaterSymbols = (!origin || originIsTypeOnlyAlias(origin)) && !(symbol.parent === undefined && !some(symbol.declarations, d => d.getSourceFile() === location.getSourceFile())); uniques.set(name, shouldShadowLaterSymbols); - entries.push(entry); + insertSorted(entries, entry, compareCompletionEntries, /*allowDuplicates*/ true); } log("getCompletionsAtPosition: getCompletionEntriesFromSymbols: " + (timestamp() - start)); @@ -936,7 +1456,8 @@ namespace ts.Completions { add: name => uniques.set(name, true), }; - function shouldIncludeSymbol(symbol: Symbol, symbolToSortTextIdMap: SymbolSortTextIdMap): boolean { + function shouldIncludeSymbol(symbol: Symbol, symbolToSortTextMap: SymbolSortTextMap): boolean { + let allFlags = symbol.flags; if (!isSourceFile(location)) { // export = /**/ here we want to get all meanings, so any symbol is ok if (isExportAssignment(location.parent)) { @@ -958,17 +1479,17 @@ namespace ts.Completions { // Auto Imports are not available for scripts so this conditional is always false if (!!sourceFile.externalModuleIndicator && !compilerOptions.allowUmdGlobalAccess - && symbolToSortTextIdMap[getSymbolId(symbol)] === SortTextId.GlobalsOrKeywords - && (symbolToSortTextIdMap[getSymbolId(symbolOrigin)] === SortTextId.AutoImportSuggestions - || symbolToSortTextIdMap[getSymbolId(symbolOrigin)] === SortTextId.LocationPriority)) { + && symbolToSortTextMap[getSymbolId(symbol)] === SortText.GlobalsOrKeywords + && (symbolToSortTextMap[getSymbolId(symbolOrigin)] === SortText.AutoImportSuggestions + || symbolToSortTextMap[getSymbolId(symbolOrigin)] === SortText.LocationPriority)) { return false; } - // Continue with origin symbol - symbol = symbolOrigin; + + allFlags |= getCombinedLocalAndExportSymbolFlags(symbolOrigin); // import m = /**/ <-- It can only access namespace (if typing import = x. this would get member symbols and not namespace) if (isInRightSideOfInternalImportEqualsDeclaration(location)) { - return !!(symbol.flags & SymbolFlags.Namespace); + return !!(allFlags & SymbolFlags.Namespace); } if (isTypeOnlyLocation) { @@ -978,7 +1499,7 @@ namespace ts.Completions { } // expressions are value space (which includes the value namespaces) - return !!(getCombinedLocalAndExportSymbolFlags(symbol) & SymbolFlags.Value); + return !!(allFlags & SymbolFlags.Value); } } @@ -1021,6 +1542,7 @@ namespace ts.Completions { location: Node; origin: SymbolOriginInfo | SymbolOriginInfoExport | SymbolOriginInfoResolvedExport | undefined; previousToken: Node | undefined; + contextToken: Node | undefined; readonly isJsxInitializer: IsJsxInitializer; readonly isTypeOnlyLocation: boolean; } @@ -1036,11 +1558,13 @@ namespace ts.Completions { if (entryId.data) { const autoImport = getAutoImportSymbolFromCompletionEntryData(entryId.name, entryId.data, program, host); if (autoImport) { + const { contextToken, previousToken } = getRelevantTokens(position, sourceFile); return { type: "symbol", symbol: autoImport.symbol, location: getTouchingPropertyName(sourceFile, position), - previousToken: findPrecedingToken(position, sourceFile, /*startNode*/ undefined)!, + previousToken, + contextToken, isJsxInitializer: false, isTypeOnlyLocation: false, origin: autoImport.origin, @@ -1049,7 +1573,7 @@ namespace ts.Completions { } const compilerOptions = program.getCompilerOptions(); - const completionData = getCompletionData(program, log, sourceFile, isUncheckedFile(sourceFile, compilerOptions), position, { includeCompletionsForModuleExports: true, includeCompletionsWithInsertText: true }, entryId, host); + const completionData = getCompletionData(program, log, sourceFile, compilerOptions, position, { includeCompletionsForModuleExports: true, includeCompletionsWithInsertText: true }, entryId, host, /*formatContext*/ undefined); if (!completionData) { return { type: "none" }; } @@ -1057,7 +1581,7 @@ namespace ts.Completions { return { type: "request", request: completionData }; } - const { symbols, literals, location, completionKind, symbolToOriginInfoMap, previousToken, isJsxInitializer, isTypeOnlyLocation } = completionData; + const { symbols, literals, location, completionKind, symbolToOriginInfoMap, contextToken, previousToken, isJsxInitializer, isTypeOnlyLocation } = completionData; const literal = find(literals, l => completionNameForLiteral(sourceFile, preferences, l) === entryId.name); if (literal !== undefined) return { type: "literal", literal }; @@ -1069,8 +1593,11 @@ namespace ts.Completions { return firstDefined(symbols, (symbol, index): SymbolCompletion | undefined => { const origin = symbolToOriginInfoMap[index]; const info = getCompletionEntryDisplayNameForSymbol(symbol, getEmitScriptTarget(compilerOptions), origin, completionKind, completionData.isJsxIdentifierExpected); - return info && info.name === entryId.name && getSourceFromOrigin(origin) === entryId.source - ? { type: "symbol" as const, symbol, location, origin, previousToken, isJsxInitializer, isTypeOnlyLocation } + return info && info.name === entryId.name && ( + entryId.source === CompletionSource.ClassMemberSnippet && symbol.flags & SymbolFlags.ClassMember + || entryId.source === CompletionSource.ObjectLiteralMethodSnippet && symbol.flags & (SymbolFlags.Property | SymbolFlags.Method) + || getSourceFromOrigin(origin) === entryId.source) + ? { type: "symbol" as const, symbol, location, origin, contextToken, previousToken, isJsxInitializer, isTypeOnlyLocation } : undefined; }) || { type: "none" }; } @@ -1094,7 +1621,7 @@ namespace ts.Completions { ): CompletionEntryDetails | undefined { const typeChecker = program.getTypeChecker(); const compilerOptions = program.getCompilerOptions(); - const { name } = entryId; + const { name, source, data } = entryId; const contextToken = findPrecedingToken(position, sourceFile); if (isInString(sourceFile, position, contextToken)) { @@ -1120,8 +1647,8 @@ namespace ts.Completions { } } case "symbol": { - const { symbol, location, origin, previousToken } = symbolCompletion; - const { codeActions, sourceDisplay } = getCompletionEntryCodeActionsAndSourceDisplay(origin, symbol, program, host, compilerOptions, sourceFile, position, previousToken, formatContext, preferences, entryId.data); + const { symbol, location, contextToken, origin, previousToken } = symbolCompletion; + const { codeActions, sourceDisplay } = getCompletionEntryCodeActionsAndSourceDisplay(name, location, contextToken, origin, symbol, program, host, compilerOptions, sourceFile, position, previousToken, formatContext, preferences, data, source); return createCompletionDetailsForSymbol(symbol, typeChecker, sourceFile, location, cancellationToken, codeActions, sourceDisplay); // TODO: GH#18217 } case "literal": { @@ -1157,6 +1684,9 @@ namespace ts.Completions { readonly sourceDisplay: SymbolDisplayPart[] | undefined; } function getCompletionEntryCodeActionsAndSourceDisplay( + name: string, + location: Node, + contextToken: Node | undefined, origin: SymbolOriginInfo | SymbolOriginInfoExport | SymbolOriginInfoResolvedExport | undefined, symbol: Symbol, program: Program, @@ -1168,27 +1698,90 @@ namespace ts.Completions { formatContext: formatting.FormatContext, preferences: UserPreferences, data: CompletionEntryData | undefined, + source: string | undefined, ): CodeActionsAndSourceDisplay { if (data?.moduleSpecifier) { - const { contextToken, previousToken } = getRelevantTokens(position, sourceFile); if (previousToken && getImportStatementCompletionInfo(contextToken || previousToken).replacementNode) { // Import statement completion: 'import c|' return { codeActions: undefined, sourceDisplay: [textPart(data.moduleSpecifier)] }; } } + if (source === CompletionSource.ClassMemberSnippet) { + const { importAdder } = getEntryForMemberCompletion( + host, + program, + compilerOptions, + preferences, + name, + symbol, + location, + contextToken, + formatContext); + if (importAdder) { + const changes = textChanges.ChangeTracker.with( + { host, formatContext, preferences }, + importAdder.writeFixes); + return { + sourceDisplay: undefined, + codeActions: [{ + changes, + description: diagnosticToString([Diagnostics.Includes_imports_of_types_referenced_by_0, name]), + }], + }; + } + } + + if (source === CompletionSource.ObjectLiteralMethodSnippet) { + const enclosingDeclaration = tryGetObjectLikeCompletionContainer(contextToken) as ObjectLiteralExpression; + const { importAdder } = getEntryForObjectLiteralMethodCompletion( + symbol, + name, + enclosingDeclaration, + program, + host, + compilerOptions, + preferences, + formatContext)!; + if (importAdder.hasFixes()) { + const changes = textChanges.ChangeTracker.with({ host, formatContext, preferences }, importAdder.writeFixes); + return { + sourceDisplay: undefined, + codeActions: [{ + changes, + description: diagnosticToString([Diagnostics.Includes_imports_of_types_referenced_by_0, name]), + }], + }; + } + } + + if (originIsTypeOnlyAlias(origin)) { + const codeAction = codefix.getPromoteTypeOnlyCompletionAction( + sourceFile, + origin.declaration.name, + program, + host, + formatContext, + preferences); + + Debug.assertIsDefined(codeAction, "Expected to have a code action for promoting type-only alias"); + return { codeActions: [codeAction], sourceDisplay: undefined }; + } + if (!origin || !(originIsExport(origin) || originIsResolvedExport(origin))) { return { codeActions: undefined, sourceDisplay: undefined }; } const checker = origin.isFromPackageJson ? host.getPackageJsonAutoImportProvider!()!.getTypeChecker() : program.getTypeChecker(); const { moduleSymbol } = origin; - const exportedSymbol = checker.getMergedSymbol(skipAlias(symbol.exportSymbol || symbol, checker)); + const targetSymbol = checker.getMergedSymbol(skipAlias(symbol.exportSymbol || symbol, checker)); + const isJsxOpeningTagName = contextToken?.kind === SyntaxKind.LessThanToken && isJsxOpeningLikeElement(contextToken.parent); const { moduleSpecifier, codeAction } = codefix.getImportCompletionAction( - exportedSymbol, + targetSymbol, moduleSymbol, sourceFile, - getNameForExportedSymbol(symbol, getEmitScriptTarget(compilerOptions)), + getNameForExportedSymbol(symbol, getEmitScriptTarget(compilerOptions), isJsxOpeningTagName), + isJsxOpeningTagName, host, program, formatContext, @@ -1231,10 +1824,11 @@ namespace ts.Completions { readonly contextToken: Node | undefined; readonly isJsxInitializer: IsJsxInitializer; readonly insideJsDocTagTypeExpression: boolean; - readonly symbolToSortTextIdMap: SymbolSortTextIdMap; + readonly symbolToSortTextMap: SymbolSortTextMap; readonly isTypeOnlyLocation: boolean; /** In JSX tag name and attribute names, identifiers like "my-tag" or "aria-name" is valid identifier. */ readonly isJsxIdentifierExpected: boolean; + readonly isRightOfOpenTag: boolean; readonly importCompletionNode?: Node; readonly hasUnresolvedAutoImports?: boolean; } @@ -1282,7 +1876,8 @@ namespace ts.Completions { case SyntaxKind.NewKeyword: return checker.getContextualType(parent as Expression); case SyntaxKind.CaseKeyword: - return getSwitchedType(cast(parent, isCaseClause), checker); + const caseClause = tryCast(parent, isCaseClause); + return caseClause ? getSwitchedType(caseClause, checker) : undefined; case SyntaxKind.OpenBraceToken: return isJsxExpression(parent) && !isJsxElement(parent.parent) && !isJsxFragment(parent.parent) ? checker.getContextualTypeForJsxAttribute(parent.parent) : undefined; default: @@ -1311,15 +1906,16 @@ namespace ts.Completions { program: Program, log: (message: string) => void, sourceFile: SourceFile, - isUncheckedFile: boolean, + compilerOptions: CompilerOptions, position: number, preferences: UserPreferences, detailsEntryId: CompletionEntryIdentifier | undefined, host: LanguageServiceHost, + formatContext: formatting.FormatContext | undefined, cancellationToken?: CancellationToken, ): CompletionData | Request | undefined { const typeChecker = program.getTypeChecker(); - + const inUncheckedFile = isUncheckedFile(sourceFile, compilerOptions); let start = timestamp(); let currentToken = getTokenAtPosition(sourceFile, position); // TODO: GH#15853 // We will check for jsdoc comments with insideComment and getJsDocTagAtPosition. (TODO: that seems rather inefficient to check the same thing so many times.) @@ -1371,14 +1967,15 @@ namespace ts.Completions { if (tag.tagName.pos <= position && position <= tag.tagName.end) { return { kind: CompletionDataKind.JsDocTagName }; } - if (isTagWithTypeExpression(tag) && tag.typeExpression && tag.typeExpression.kind === SyntaxKind.JSDocTypeExpression) { + const typeExpression = tryGetTypeExpressionFromTag(tag); + if (typeExpression) { currentToken = getTokenAtPosition(sourceFile, position); if (!currentToken || (!isDeclarationName(currentToken) && (currentToken.parent.kind !== SyntaxKind.JSDocPropertyTag || (currentToken.parent as JSDocPropertyTag).name !== currentToken))) { // Use as type location if inside tag's type expression - insideJsDocTagTypeExpression = isCurrentlyEditingNode(tag.typeExpression); + insideJsDocTagTypeExpression = isCurrentlyEditingNode(typeExpression); } } if (!insideJsDocTagTypeExpression && isJSDocParameterTag(tag) && (nodeIsMissing(tag.name) || tag.name.pos <= position && position <= tag.name.end)) { @@ -1549,7 +2146,7 @@ namespace ts.Completions { // For `
`, `parent` will be JsxAttribute and `previousToken` will be its initializer if ((parent as JsxAttribute).initializer === previousToken && previousToken.end < position) { - isJsxIdentifierExpected = true; + isJsxIdentifierExpected = true; break; } switch (previousToken.kind) { @@ -1578,7 +2175,7 @@ namespace ts.Completions { // This also gets mutated in nested-functions after the return let symbols: Symbol[] = []; const symbolToOriginInfoMap: SymbolOriginInfoMap = []; - const symbolToSortTextIdMap: SymbolSortTextIdMap = []; + const symbolToSortTextMap: SymbolSortTextMap = []; const seenPropertySymbols = new Map(); const isTypeOnlyLocation = isTypeOnlyCompletion(); const getModuleSpecifierResolutionHost = memoizeOne((isFromPackageJson: boolean) => { @@ -1639,14 +2236,15 @@ namespace ts.Completions { contextToken, isJsxInitializer, insideJsDocTagTypeExpression, - symbolToSortTextIdMap, + symbolToSortTextMap, isTypeOnlyLocation, isJsxIdentifierExpected, + isRightOfOpenTag, importCompletionNode, hasUnresolvedAutoImports, }; - type JSDocTagWithTypeExpression = JSDocParameterTag | JSDocPropertyTag | JSDocReturnTag | JSDocTypeTag | JSDocTypedefTag; + type JSDocTagWithTypeExpression = JSDocParameterTag | JSDocPropertyTag | JSDocReturnTag | JSDocTypeTag | JSDocTypedefTag | JSDocTemplateTag; function isTagWithTypeExpression(tag: JSDocTag): tag is JSDocTagWithTypeExpression { switch (tag.kind) { @@ -1656,11 +2254,21 @@ namespace ts.Completions { case SyntaxKind.JSDocTypeTag: case SyntaxKind.JSDocTypedefTag: return true; + case SyntaxKind.JSDocTemplateTag: + return !!(tag as JSDocTemplateTag).constraint; default: return false; } } + function tryGetTypeExpressionFromTag(tag: JSDocTag): JSDocTypeExpression | undefined { + if (isTagWithTypeExpression(tag)) { + const typeExpression = isJSDocTemplateTag(tag) ? tag.constraint : tag.typeExpression; + return typeExpression && typeExpression.kind === SyntaxKind.JSDocTypeExpression ? typeExpression : undefined; + } + return undefined; + } + function getTypeScriptMemberSymbols(): void { // Right of dot member completion list completionKind = CompletionKind.PropertyAccess; @@ -1729,8 +2337,7 @@ namespace ts.Completions { // GH#39946. Pulling on the type of a node inside of a function with a contextual `this` parameter can result in a circularity // if the `node` is part of the exprssion of a `yield` or `return`. This circularity doesn't exist at compile time because // we will check (and cache) the type of `this` *before* checking the type of the node. - const container = getThisContainer(node, /*includeArrowFunctions*/ false); - if (!isSourceFile(container) && container.parent) typeChecker.getTypeAtLocation(container); + typeChecker.tryGetThisTypeAt(node, /*includeGlobalThis*/ false); let type = typeChecker.getTypeAtLocation(node).getNonOptionalType(); let insertQuestionDot = false; @@ -1758,7 +2365,7 @@ namespace ts.Completions { } const propertyAccess = node.kind === SyntaxKind.ImportType ? node as ImportTypeNode : node.parent as PropertyAccessExpression | QualifiedName; - if (isUncheckedFile) { + if (inUncheckedFile) { // In javascript files, for union types, we don't just get the members that // the individual types have in common, we also include all the members that // each individual type has. This is because we're going to add all identifiers @@ -1845,7 +2452,7 @@ namespace ts.Completions { function addSymbolSortInfo(symbol: Symbol) { if (isStaticProperty(symbol)) { - symbolToSortTextIdMap[getSymbolId(symbol)] = SortTextId.LocalDeclarationPriority; + symbolToSortTextMap[getSymbolId(symbol)] = SortText.LocalDeclarationPriority; } } @@ -1900,7 +2507,7 @@ namespace ts.Completions { const attrsType = jsxContainer && typeChecker.getContextualType(jsxContainer.attributes); if (!attrsType) return GlobalsSearch.Continue; const completionsType = jsxContainer && typeChecker.getContextualType(jsxContainer.attributes, ContextFlags.Completions); - symbols = concatenate(symbols, filterJsxAttributes(getPropertiesForObjectExpression(attrsType, completionsType, jsxContainer!.attributes, typeChecker), jsxContainer!.attributes.properties)); + symbols = concatenate(symbols, filterJsxAttributes(getPropertiesForObjectExpression(attrsType, completionsType, jsxContainer.attributes, typeChecker), jsxContainer.attributes.properties)); setSortTextToOptionalMember(); completionKind = CompletionKind.MemberLike; isNewIdentifierLocation = false; @@ -1957,13 +2564,22 @@ namespace ts.Completions { isInSnippetScope = isSnippetScope(scopeNode); const symbolMeanings = (isTypeOnlyLocation ? SymbolFlags.None : SymbolFlags.Value) | SymbolFlags.Type | SymbolFlags.Namespace | SymbolFlags.Alias; + const typeOnlyAliasNeedsPromotion = previousToken && !isValidTypeOnlyAliasUseSite(previousToken); symbols = concatenate(symbols, typeChecker.getSymbolsInScope(scopeNode, symbolMeanings)); Debug.assertEachIsDefined(symbols, "getSymbolsInScope() should all be defined"); - for (const symbol of symbols) { + for (let i = 0; i < symbols.length; i++) { + const symbol = symbols[i]; if (!typeChecker.isArgumentsSymbol(symbol) && !some(symbol.declarations, d => d.getSourceFile() === sourceFile)) { - symbolToSortTextIdMap[getSymbolId(symbol)] = SortTextId.GlobalsOrKeywords; + symbolToSortTextMap[getSymbolId(symbol)] = SortText.GlobalsOrKeywords; + } + if (typeOnlyAliasNeedsPromotion && !(symbol.flags & SymbolFlags.Value)) { + const typeOnlyAliasDeclaration = symbol.declarations && find(symbol.declarations, isTypeOnlyImportOrExportDeclaration); + if (typeOnlyAliasDeclaration) { + const origin: SymbolOriginInfoTypeOnlyAlias = { kind: SymbolOriginInfoKind.TypeOnlyAlias, declaration: typeOnlyAliasDeclaration }; + symbolToOriginInfoMap[i] = origin; + } } } @@ -1974,7 +2590,7 @@ namespace ts.Completions { for (const symbol of getPropertiesForCompletion(thisType, typeChecker)) { symbolToOriginInfoMap[symbols.length] = { kind: SymbolOriginInfoKind.ThisType }; symbols.push(symbol); - symbolToSortTextIdMap[getSymbolId(symbol)] = SortTextId.SuggestedClassMembers; + symbolToSortTextMap[getSymbolId(symbol)] = SortText.SuggestedClassMembers; } } } @@ -2057,7 +2673,7 @@ namespace ts.Completions { return false; } - /** Mutates `symbols`, `symbolToOriginInfoMap`, and `symbolToSortTextIdMap` */ + /** Mutates `symbols`, `symbolToOriginInfoMap`, and `symbolToSortTextMap` */ function collectAutoImports() { if (!shouldOfferImportCompletions()) return; Debug.assert(!detailsEntryId?.data, "Should not run 'collectAutoImports' when faster path is available via `data`"); @@ -2088,14 +2704,26 @@ namespace ts.Completions { preferences, !!importCompletionNode, context => { - exportInfo.forEach(sourceFile.path, (info, symbolName, isFromAmbientModule, exportMapKey) => { - if (!isIdentifierText(symbolName, getEmitScriptTarget(host.getCompilationSettings()))) return; - if (!detailsEntryId && isStringANonContextualKeyword(symbolName)) return; - // `targetFlags` should be the same for each `info` - if (!isTypeOnlyLocation && !importCompletionNode && !(info[0].targetFlags & SymbolFlags.Value)) return; - if (isTypeOnlyLocation && !(info[0].targetFlags & (SymbolFlags.Module | SymbolFlags.Type))) return; - const isCompletionDetailsMatch = detailsEntryId && some(info, i => detailsEntryId.source === stripQuotes(i.moduleSymbol.name)); - if (isCompletionDetailsMatch || !detailsEntryId && charactersFuzzyMatchInString(symbolName, lowerCaseTokenText)) { + exportInfo.search( + sourceFile.path, + /*preferCapitalized*/ isRightOfOpenTag, + (symbolName, targetFlags) => { + if (!isIdentifierText(symbolName, getEmitScriptTarget(host.getCompilationSettings()))) return false; + if (!detailsEntryId && isStringANonContextualKeyword(symbolName)) return false; + if (!isTypeOnlyLocation && !importCompletionNode && !(targetFlags & SymbolFlags.Value)) return false; + if (isTypeOnlyLocation && !(targetFlags & (SymbolFlags.Module | SymbolFlags.Type))) return false; + // Do not try to auto-import something with a lowercase first letter for a JSX tag + const firstChar = symbolName.charCodeAt(0); + if (isRightOfOpenTag && (firstChar < CharacterCodes.A || firstChar > CharacterCodes.Z)) return false; + + if (detailsEntryId) return true; + return charactersFuzzyMatchInString(symbolName, lowerCaseTokenText); + }, + (info, symbolName, isFromAmbientModule, exportMapKey) => { + if (detailsEntryId && !some(info, i => detailsEntryId.source === stripQuotes(i.moduleSymbol.name))) { + return; + } + const defaultExportInfo = find(info, isImportableExportInfo); if (!defaultExportInfo) { return; @@ -2106,6 +2734,7 @@ namespace ts.Completions { const { exportInfo = defaultExportInfo, moduleSpecifier } = context.tryResolve(info, isFromAmbientModule) || {}; const isDefaultExport = exportInfo.exportKind === ExportKind.Default; const symbol = isDefaultExport && getLocalSymbolForExportDefault(exportInfo.symbol) || exportInfo.symbol; + pushAutoImportSymbol(symbol, { kind: moduleSpecifier ? SymbolOriginInfoKind.ResolvedExport : SymbolOriginInfoKind.Export, moduleSpecifier, @@ -2118,7 +2747,7 @@ namespace ts.Completions { isFromPackageJson: exportInfo.isFromPackageJson, }); } - }); + ); hasUnresolvedAutoImports = context.resolutionLimitExceeded(); } @@ -2148,15 +2777,69 @@ namespace ts.Completions { function pushAutoImportSymbol(symbol: Symbol, origin: SymbolOriginInfoResolvedExport | SymbolOriginInfoExport) { const symbolId = getSymbolId(symbol); - if (symbolToSortTextIdMap[symbolId] === SortTextId.GlobalsOrKeywords) { + if (symbolToSortTextMap[symbolId] === SortText.GlobalsOrKeywords) { // If an auto-importable symbol is available as a global, don't add the auto import return; } symbolToOriginInfoMap[symbols.length] = origin; - symbolToSortTextIdMap[symbolId] = importCompletionNode ? SortTextId.LocationPriority : SortTextId.AutoImportSuggestions; + symbolToSortTextMap[symbolId] = importCompletionNode ? SortText.LocationPriority : SortText.AutoImportSuggestions; symbols.push(symbol); } + /* Mutates `symbols` and `symbolToOriginInfoMap`. */ + function collectObjectLiteralMethodSymbols(members: Symbol[], enclosingDeclaration: ObjectLiteralExpression): void { + // TODO: support JS files. + if (isInJSFile(location)) { + return; + } + members.forEach(member => { + if (!isObjectLiteralMethodSymbol(member)) { + return; + } + const displayName = getCompletionEntryDisplayNameForSymbol( + member, + getEmitScriptTarget(compilerOptions), + /*origin*/ undefined, + CompletionKind.ObjectPropertyDeclaration, + /*jsxIdentifierExpected*/ false); + if (!displayName) { + return; + } + const { name } = displayName; + const entryProps = getEntryForObjectLiteralMethodCompletion( + member, + name, + enclosingDeclaration, + program, + host, + compilerOptions, + preferences, + formatContext); + if (!entryProps) { + return; + } + const origin: SymbolOriginInfoObjectLiteralMethod = { kind: SymbolOriginInfoKind.ObjectLiteralMethod, ...entryProps }; + symbolToOriginInfoMap[symbols.length] = origin; + symbols.push(member); + }); + } + + function isObjectLiteralMethodSymbol(symbol: Symbol): boolean { + /* + For an object type + `type Foo = { + bar(x: number): void; + foo: (x: string) => string; + }`, + `bar` will have symbol flag `Method`, + `foo` will have symbol flag `Property`. + */ + if (!(symbol.flags & (SymbolFlags.Property | SymbolFlags.Method))) { + return false; + } + return true; + } + /** * Finds the first node that "embraces" the position, so that one may * accurately aggregate locals from the closest containing scope. @@ -2186,16 +2869,20 @@ namespace ts.Completions { } if (contextToken.kind === SyntaxKind.GreaterThanToken && contextToken.parent) { + // /**/ /> + // /**/ > + // - contextToken: GreaterThanToken (before cursor) + // - location: JsxSelfClosingElement or JsxOpeningElement + // - contextToken.parent === location + if (location === contextToken.parent && (location.kind === SyntaxKind.JsxOpeningElement || location.kind === SyntaxKind.JsxSelfClosingElement)) { + return false; + } + if (contextToken.parent.kind === SyntaxKind.JsxOpeningElement) { - // Two possibilities: - // 1.
/**/ - // - contextToken: GreaterThanToken (before cursor) - // - location: JSXElement - // - different parents (JSXOpeningElement, JSXElement) - // 2. /**/> - // - contextToken: GreaterThanToken (before cursor) - // - location: GreaterThanToken (after cursor) - // - same parent (JSXOpeningElement) + //
/**/ + // - contextToken: GreaterThanToken (before cursor) + // - location: JSXElement + // - different parents (JSXOpeningElement, JSXElement) return location.parent.kind !== SyntaxKind.JsxOpeningElement; } @@ -2209,8 +2896,9 @@ namespace ts.Completions { function isNewIdentifierDefinitionLocation(): boolean { if (contextToken) { const containingNodeKind = contextToken.parent.kind; + const tokenKind = keywordForNode(contextToken); // Previous token may have been a keyword that was converted to an identifier. - switch (keywordForNode(contextToken)) { + switch (tokenKind) { case SyntaxKind.CommaToken: return containingNodeKind === SyntaxKind.CallExpression // func( a, | || containingNodeKind === SyntaxKind.Constructor // constructor( a, | /* public, protected, private keywords are allowed here, so show completion */ @@ -2254,10 +2942,16 @@ namespace ts.Completions { case SyntaxKind.TemplateMiddle: return containingNodeKind === SyntaxKind.TemplateSpan; // `aa ${10} dd ${| - case SyntaxKind.PublicKeyword: - case SyntaxKind.PrivateKeyword: - case SyntaxKind.ProtectedKeyword: - return containingNodeKind === SyntaxKind.PropertyDeclaration; // class A{ public | + case SyntaxKind.AsyncKeyword: + return containingNodeKind === SyntaxKind.MethodDeclaration // const obj = { async c|() + || containingNodeKind === SyntaxKind.ShorthandPropertyAssignment; // const obj = { async c| + + case SyntaxKind.AsteriskToken: + return containingNodeKind === SyntaxKind.MethodDeclaration; // const obj = { * c| + } + + if (isClassMemberCompletionKeyword(tokenKind)) { + return true; } } @@ -2307,6 +3001,7 @@ namespace ts.Completions { * @returns true if 'symbols' was successfully populated; false otherwise. */ function tryGetObjectLikeCompletionSymbols(): GlobalsSearch | undefined { + const symbolsStartIndex = symbols.length; const objectLikeContainer = tryGetObjectLikeCompletionContainer(contextToken); if (!objectLikeContainer) return GlobalsSearch.Continue; @@ -2376,9 +3071,16 @@ namespace ts.Completions { if (typeMembers && typeMembers.length > 0) { // Add filtered items to the completion list - symbols = concatenate(symbols, filterObjectMembersList(typeMembers, Debug.checkDefined(existingMembers))); + const filteredMembers = filterObjectMembersList(typeMembers, Debug.checkDefined(existingMembers)); + symbols = concatenate(symbols, filteredMembers); + setSortTextToOptionalMember(); + if (objectLikeContainer.kind === SyntaxKind.ObjectLiteralExpression + && preferences.includeCompletionsWithObjectLiteralMethodSnippets + && preferences.includeCompletionsWithInsertText) { + transformObjectLiteralMembersSortText(symbolsStartIndex); + collectObjectLiteralMethodSymbols(filteredMembers, objectLikeContainer); + } } - setSortTextToOptionalMember(); return GlobalsSearch.Success; } @@ -2460,7 +3162,7 @@ namespace ts.Completions { localsContainer.locals?.forEach((symbol, name) => { symbols.push(symbol); if (localsContainer.symbol?.exports?.has(name)) { - symbolToSortTextIdMap[getSymbolId(symbol)] = SortTextId.OptionalMember; + symbolToSortTextMap[getSymbolId(symbol)] = SortText.OptionalMember; } }); return GlobalsSearch.Success; @@ -2520,31 +3222,6 @@ namespace ts.Completions { return GlobalsSearch.Success; } - /** - * Returns the immediate owning object literal or binding pattern of a context token, - * on the condition that one exists and that the context implies completion should be given. - */ - function tryGetObjectLikeCompletionContainer(contextToken: Node): ObjectLiteralExpression | ObjectBindingPattern | undefined { - if (contextToken) { - const { parent } = contextToken; - switch (contextToken.kind) { - case SyntaxKind.OpenBraceToken: // const x = { | - case SyntaxKind.CommaToken: // const x = { a: 0, | - if (isObjectLiteralExpression(parent) || isObjectBindingPattern(parent)) { - return parent; - } - break; - case SyntaxKind.AsteriskToken: - return isMethodDeclaration(parent) ? tryCast(parent.parent, isObjectLiteralExpression) : undefined; - case SyntaxKind.Identifier: - return (contextToken as Identifier).text === "async" && isShorthandPropertyAssignment(contextToken.parent) - ? contextToken.parent.parent : undefined; - } - } - - return undefined; - } - function isConstructorParameterCompletion(node: Node): boolean { return !!node.parent && isParameter(node.parent) && isConstructorDeclaration(node.parent.parent) && (isParameterPropertyModifier(node.kind) || isDeclarationName(node)); @@ -2925,7 +3602,7 @@ namespace ts.Completions { symbols.forEach(m => { if (m.flags & SymbolFlags.Optional) { const symbolId = getSymbolId(m); - symbolToSortTextIdMap[symbolId] = symbolToSortTextIdMap[symbolId] ?? SortTextId.OptionalMember; + symbolToSortTextMap[symbolId] = symbolToSortTextMap[symbolId] ?? SortText.OptionalMember; } }); } @@ -2937,7 +3614,27 @@ namespace ts.Completions { } for (const contextualMemberSymbol of contextualMemberSymbols) { if (membersDeclaredBySpreadAssignment.has(contextualMemberSymbol.name)) { - symbolToSortTextIdMap[getSymbolId(contextualMemberSymbol)] = SortTextId.MemberDeclaredBySpreadAssignment; + symbolToSortTextMap[getSymbolId(contextualMemberSymbol)] = SortText.MemberDeclaredBySpreadAssignment; + } + } + } + + function transformObjectLiteralMembersSortText(start: number): void { + for (let i = start; i < symbols.length; i++) { + const symbol = symbols[i]; + const symbolId = getSymbolId(symbol); + const origin = symbolToOriginInfoMap?.[i]; + const target = getEmitScriptTarget(compilerOptions); + const displayName = getCompletionEntryDisplayNameForSymbol( + symbol, + target, + origin, + CompletionKind.ObjectPropertyDeclaration, + /*jsxIdentifierExpected*/ false); + if (displayName) { + const originalSortText = symbolToSortTextMap[symbolId] ?? SortText.LocationPriority; + const { name } = displayName; + symbolToSortTextMap[symbolId] = SortText.ObjectLiteralProperty(originalSortText, name); } } } @@ -3020,6 +3717,31 @@ namespace ts.Completions { } } + /** + * Returns the immediate owning object literal or binding pattern of a context token, + * on the condition that one exists and that the context implies completion should be given. + */ + function tryGetObjectLikeCompletionContainer(contextToken: Node | undefined): ObjectLiteralExpression | ObjectBindingPattern | undefined { + if (contextToken) { + const { parent } = contextToken; + switch (contextToken.kind) { + case SyntaxKind.OpenBraceToken: // const x = { | + case SyntaxKind.CommaToken: // const x = { a: 0, | + if (isObjectLiteralExpression(parent) || isObjectBindingPattern(parent)) { + return parent; + } + break; + case SyntaxKind.AsteriskToken: + return isMethodDeclaration(parent) ? tryCast(parent.parent, isObjectLiteralExpression) : undefined; + case SyntaxKind.Identifier: + return (contextToken as Identifier).text === "async" && isShorthandPropertyAssignment(contextToken.parent) + ? contextToken.parent.parent : undefined; + } + } + + return undefined; + } + function getRelevantTokens(position: number, sourceFile: SourceFile): { contextToken: Node, previousToken: Node } | { contextToken: undefined, previousToken: undefined } { const previousToken = findPrecedingToken(position, sourceFile); if (previousToken && position <= previousToken.end && (isMemberName(previousToken) || isKeyword(previousToken.kind))) { @@ -3214,16 +3936,49 @@ namespace ts.Completions { return isIdentifier(node) ? node.originalKeywordKind || SyntaxKind.Unknown : node.kind; } + function getContextualKeywords( + contextToken: Node | undefined, + position: number, + ): readonly CompletionEntry[] { + const entries = []; + /** + * An `AssertClause` can come after an import declaration: + * import * from "foo" | + * import "foo" | + * or after a re-export declaration that has a module specifier: + * export { foo } from "foo" | + * Source: https://tc39.es/proposal-import-assertions/ + */ + if (contextToken) { + const file = contextToken.getSourceFile(); + const parent = contextToken.parent; + const tokenLine = file.getLineAndCharacterOfPosition(contextToken.end).line; + const currentLine = file.getLineAndCharacterOfPosition(position).line; + if ((isImportDeclaration(parent) || isExportDeclaration(parent) && parent.moduleSpecifier) + && contextToken === parent.moduleSpecifier + && tokenLine === currentLine) { + entries.push({ + name: tokenToString(SyntaxKind.AssertKeyword)!, + kind: ScriptElementKind.keyword, + kindModifiers: ScriptElementKindModifier.none, + sortText: SortText.GlobalsOrKeywords, + }); + } + } + return entries; + } + /** Get the corresponding JSDocTag node if the position is in a jsDoc comment */ function getJsDocTagAtPosition(node: Node, position: number): JSDocTag | undefined { - const jsdoc = findAncestor(node, isJSDoc); - return jsdoc && jsdoc.tags && (rangeContainsPosition(jsdoc, position) ? findLast(jsdoc.tags, tag => tag.pos < position) : undefined); + return findAncestor(node, n => + isJSDocTag(n) && rangeContainsPosition(n, position) ? true : + isJSDoc(n) ? "quit" : false) as JSDocTag | undefined; } export function getPropertiesForObjectExpression(contextualType: Type, completionsType: Type | undefined, obj: ObjectLiteralExpression | JsxAttributes, checker: TypeChecker): Symbol[] { const hasCompletionsType = completionsType && completionsType !== contextualType; - const type = hasCompletionsType && !(completionsType!.flags & TypeFlags.AnyOrUnknown) - ? checker.getUnionType([contextualType, completionsType!]) + const type = hasCompletionsType && !(completionsType.flags & TypeFlags.AnyOrUnknown) + ? checker.getUnionType([contextualType, completionsType]) : contextualType; const properties = getApparentProperties(type, obj, checker); @@ -3236,6 +3991,7 @@ namespace ts.Completions { // function f(x: T) {} // f({ abc/**/: "" }) // `abc` is a member of `T` but only because it declares itself function hasDeclarationOtherThanSelf(member: Symbol) { + if (!length(member.declarations)) return true; return some(member.declarations, decl => decl.parent !== obj); } } @@ -3433,9 +4189,14 @@ namespace ts.Completions { if (type) { return type; } - if (isBinaryExpression(node.parent) && node.parent.operatorToken.kind === SyntaxKind.EqualsToken && node === node.parent.left) { + const parent = walkUpParenthesizedExpressions(node.parent); + if (isBinaryExpression(parent) && parent.operatorToken.kind === SyntaxKind.EqualsToken && node === parent.left) { // Object literal is assignment pattern: ({ | } = x) - return typeChecker.getTypeAtLocation(node.parent); + return typeChecker.getTypeAtLocation(parent); + } + if (isExpression(parent)) { + // f(() => (({ | }))); + return typeChecker.getContextualType(parent); } return undefined; } @@ -3535,10 +4296,15 @@ namespace ts.Completions { /** True if symbol is a type or a module containing at least one type. */ function symbolCanBeReferencedAtTypeLocation(symbol: Symbol, checker: TypeChecker, seenModules = new Map()): boolean { - const sym = skipAlias(symbol.exportSymbol || symbol, checker); - return !!(sym.flags & SymbolFlags.Type) || checker.isUnknownSymbol(sym) || - !!(sym.flags & SymbolFlags.Module) && addToSeen(seenModules, getSymbolId(sym)) && - checker.getExportsOfModule(sym).some(e => symbolCanBeReferencedAtTypeLocation(e, checker, seenModules)); + // Since an alias can be merged with a local declaration, we need to test both the alias and its target. + // This code used to just test the result of `skipAlias`, but that would ignore any locally introduced meanings. + return nonAliasCanBeReferencedAtTypeLocation(symbol) || nonAliasCanBeReferencedAtTypeLocation(skipAlias(symbol.exportSymbol || symbol, checker)); + + function nonAliasCanBeReferencedAtTypeLocation(symbol: Symbol): boolean { + return !!(symbol.flags & SymbolFlags.Type) || checker.isUnknownSymbol(symbol) || + !!(symbol.flags & SymbolFlags.Module) && addToSeen(seenModules, getSymbolId(symbol)) && + checker.getExportsOfModule(symbol).some(e => symbolCanBeReferencedAtTypeLocation(e, checker, seenModules)); + } } function isDeprecated(symbol: Symbol, checker: TypeChecker) { @@ -3599,5 +4365,6 @@ namespace ts.Completions { } return charCode; } + } diff --git a/src/services/documentRegistry.ts b/src/services/documentRegistry.ts index 719f219025929..88d7daf468bf1 100644 --- a/src/services/documentRegistry.ts +++ b/src/services/documentRegistry.ts @@ -21,9 +21,12 @@ namespace ts { * the SourceFile if was not found in the registry. * * @param fileName The name of the file requested - * @param compilationSettings Some compilation settings like target affects the + * @param compilationSettingsOrHost Some compilation settings like target affects the * shape of a the resulting SourceFile. This allows the DocumentRegistry to store - * multiple copies of the same file for different compilation settings. + * multiple copies of the same file for different compilation settings. A minimal + * resolution cache is needed to fully define a source file's shape when + * the compilation settings include `module: node12`+, so providing a cache host + * object should be preferred. A common host is a language service `ConfiguredProject`. * @param scriptSnapshot Text of the file. Only used if the file was not found * in the registry and a new one was created. * @param version Current version of the file. Only used if the file was not found @@ -31,7 +34,7 @@ namespace ts { */ acquireDocument( fileName: string, - compilationSettings: CompilerOptions, + compilationSettingsOrHost: CompilerOptions | MinimalResolutionCacheHost, scriptSnapshot: IScriptSnapshot, version: string, scriptKind?: ScriptKind): SourceFile; @@ -39,7 +42,7 @@ namespace ts { acquireDocumentWithKey( fileName: string, path: Path, - compilationSettings: CompilerOptions, + compilationSettingsOrHost: CompilerOptions | MinimalResolutionCacheHost, key: DocumentRegistryBucketKey, scriptSnapshot: IScriptSnapshot, version: string, @@ -51,15 +54,18 @@ namespace ts { * to get an updated SourceFile. * * @param fileName The name of the file requested - * @param compilationSettings Some compilation settings like target affects the + * @param compilationSettingsOrHost Some compilation settings like target affects the * shape of a the resulting SourceFile. This allows the DocumentRegistry to store - * multiple copies of the same file for different compilation settings. + * multiple copies of the same file for different compilation settings. A minimal + * resolution cache is needed to fully define a source file's shape when + * the compilation settings include `module: node12`+, so providing a cache host + * object should be preferred. A common host is a language service `ConfiguredProject`. * @param scriptSnapshot Text of the file. * @param version Current version of the file. */ updateDocument( fileName: string, - compilationSettings: CompilerOptions, + compilationSettingsOrHost: CompilerOptions | MinimalResolutionCacheHost, scriptSnapshot: IScriptSnapshot, version: string, scriptKind?: ScriptKind): SourceFile; @@ -67,7 +73,7 @@ namespace ts { updateDocumentWithKey( fileName: string, path: Path, - compilationSettings: CompilerOptions, + compilationSettingsOrHost: CompilerOptions | MinimalResolutionCacheHost, key: DocumentRegistryBucketKey, scriptSnapshot: IScriptSnapshot, version: string, @@ -165,24 +171,31 @@ namespace ts { return JSON.stringify(bucketInfoArray, undefined, 2); } - function acquireDocument(fileName: string, compilationSettings: CompilerOptions, scriptSnapshot: IScriptSnapshot, version: string, scriptKind?: ScriptKind): SourceFile { + function getCompilationSettings(settingsOrHost: CompilerOptions | MinimalResolutionCacheHost) { + if (typeof settingsOrHost.getCompilationSettings === "function") { + return (settingsOrHost as MinimalResolutionCacheHost).getCompilationSettings(); + } + return settingsOrHost as CompilerOptions; + } + + function acquireDocument(fileName: string, compilationSettings: CompilerOptions | MinimalResolutionCacheHost, scriptSnapshot: IScriptSnapshot, version: string, scriptKind?: ScriptKind): SourceFile { const path = toPath(fileName, currentDirectory, getCanonicalFileName); - const key = getKeyForCompilationSettings(compilationSettings); + const key = getKeyForCompilationSettings(getCompilationSettings(compilationSettings)); return acquireDocumentWithKey(fileName, path, compilationSettings, key, scriptSnapshot, version, scriptKind); } - function acquireDocumentWithKey(fileName: string, path: Path, compilationSettings: CompilerOptions, key: DocumentRegistryBucketKey, scriptSnapshot: IScriptSnapshot, version: string, scriptKind?: ScriptKind): SourceFile { + function acquireDocumentWithKey(fileName: string, path: Path, compilationSettings: CompilerOptions | MinimalResolutionCacheHost, key: DocumentRegistryBucketKey, scriptSnapshot: IScriptSnapshot, version: string, scriptKind?: ScriptKind): SourceFile { return acquireOrUpdateDocument(fileName, path, compilationSettings, key, scriptSnapshot, version, /*acquiring*/ true, scriptKind); } - function updateDocument(fileName: string, compilationSettings: CompilerOptions, scriptSnapshot: IScriptSnapshot, version: string, scriptKind?: ScriptKind): SourceFile { + function updateDocument(fileName: string, compilationSettings: CompilerOptions | MinimalResolutionCacheHost, scriptSnapshot: IScriptSnapshot, version: string, scriptKind?: ScriptKind): SourceFile { const path = toPath(fileName, currentDirectory, getCanonicalFileName); - const key = getKeyForCompilationSettings(compilationSettings); + const key = getKeyForCompilationSettings(getCompilationSettings(compilationSettings)); return updateDocumentWithKey(fileName, path, compilationSettings, key, scriptSnapshot, version, scriptKind); } - function updateDocumentWithKey(fileName: string, path: Path, compilationSettings: CompilerOptions, key: DocumentRegistryBucketKey, scriptSnapshot: IScriptSnapshot, version: string, scriptKind?: ScriptKind): SourceFile { - return acquireOrUpdateDocument(fileName, path, compilationSettings, key, scriptSnapshot, version, /*acquiring*/ false, scriptKind); + function updateDocumentWithKey(fileName: string, path: Path, compilationSettings: CompilerOptions | MinimalResolutionCacheHost, key: DocumentRegistryBucketKey, scriptSnapshot: IScriptSnapshot, version: string, scriptKind?: ScriptKind): SourceFile { + return acquireOrUpdateDocument(fileName, path, getCompilationSettings(compilationSettings), key, scriptSnapshot, version, /*acquiring*/ false, scriptKind); } function getDocumentRegistryEntry(bucketEntry: BucketEntry, scriptKind: ScriptKind | undefined) { @@ -194,15 +207,42 @@ namespace ts { function acquireOrUpdateDocument( fileName: string, path: Path, - compilationSettings: CompilerOptions, + compilationSettingsOrHost: CompilerOptions | MinimalResolutionCacheHost, key: DocumentRegistryBucketKey, scriptSnapshot: IScriptSnapshot, version: string, acquiring: boolean, scriptKind?: ScriptKind): SourceFile { scriptKind = ensureScriptKind(fileName, scriptKind); + const compilationSettings = getCompilationSettings(compilationSettingsOrHost); + const host: MinimalResolutionCacheHost | undefined = compilationSettingsOrHost === compilationSettings ? undefined : compilationSettingsOrHost as MinimalResolutionCacheHost; const scriptTarget = scriptKind === ScriptKind.JSON ? ScriptTarget.JSON : getEmitScriptTarget(compilationSettings); + const sourceFileOptions: CreateSourceFileOptions = { + languageVersion: scriptTarget, + impliedNodeFormat: host && getImpliedNodeFormatForFile(path, host.getCompilerHost?.()?.getModuleResolutionCache?.()?.getPackageJsonInfoCache(), host, compilationSettings), + setExternalModuleIndicator: getSetExternalModuleIndicator(compilationSettings) + }; + + const oldBucketCount = buckets.size; const bucket = getOrUpdate(buckets, key, () => new Map()); + if (tracing) { + if (buckets.size > oldBucketCount) { + // It is interesting, but not definitively problematic if a build requires multiple document registry buckets - + // perhaps they are for two projects that don't have any overlap. + // Bonus: these events can help us interpret the more interesting event below. + tracing.instant(tracing.Phase.Session, "createdDocumentRegistryBucket", { configFilePath: compilationSettings.configFilePath, key }); + } + + // It is fairly suspicious to have one path in two buckets - you'd expect dependencies to have similar configurations. + // If this occurs unexpectedly, the fix is likely to synchronize the project settings. + // Skip .d.ts files to reduce noise (should also cover most of node_modules). + const otherBucketKey = !fileExtensionIs(path, Extension.Dts) && + forEachEntry(buckets, (bucket, bucketKey) => bucketKey !== key && bucket.has(path) && bucketKey); + if (otherBucketKey) { + tracing.instant(tracing.Phase.Session, "documentRegistryBucketOverlap", { path, key1: otherBucketKey, key2: key }); + } + } + const bucketEntry = bucket.get(path); let entry = bucketEntry && getDocumentRegistryEntry(bucketEntry, scriptKind); if (!entry && externalCache) { @@ -219,7 +259,7 @@ namespace ts { if (!entry) { // Have never seen this file with these settings. Create a new source file for it. - const sourceFile = createLanguageServiceSourceFile(fileName, scriptSnapshot, scriptTarget, version, /*setNodeParents*/ false, scriptKind); + const sourceFile = createLanguageServiceSourceFile(fileName, scriptSnapshot, sourceFileOptions, version, /*setNodeParents*/ false, scriptKind); if (externalCache) { externalCache.setDocument(key, path, sourceFile); } @@ -317,7 +357,23 @@ namespace ts { }; } + function compilerOptionValueToString(value: unknown): string { + if (value === null || typeof value !== "object") { // eslint-disable-line no-null/no-null + return "" + value; + } + if (isArray(value)) { + return `[${map(value, e => compilerOptionValueToString(e))?.join(",")}]`; + } + let str = "{"; + for (const key in value) { + if (ts.hasOwnProperty.call(value, key)) { // eslint-disable-line @typescript-eslint/no-unnecessary-qualifier + str += `${key}: ${compilerOptionValueToString((value as any)[key])}`; + } + } + return str + "}"; + } + function getKeyForCompilationSettings(settings: CompilerOptions): DocumentRegistryBucketKey { - return sourceFileAffectingCompilerOptions.map(option => getCompilerOptionValue(settings, option)).join("|") as DocumentRegistryBucketKey; + return sourceFileAffectingCompilerOptions.map(option => compilerOptionValueToString(getCompilerOptionValue(settings, option))).join("|") + (settings.pathsBasePath ? `|${settings.pathsBasePath}` : undefined) as DocumentRegistryBucketKey; } } diff --git a/src/services/exportInfoMap.ts b/src/services/exportInfoMap.ts index 4d49f63117434..4004815a4a6de 100644 --- a/src/services/exportInfoMap.ts +++ b/src/services/exportInfoMap.ts @@ -29,9 +29,11 @@ namespace ts { // Used to rehydrate `symbol` and `moduleSymbol` when transient id: number; symbolName: string; + capitalizedSymbolName: string | undefined; symbolTableKey: __String; moduleName: string; moduleFile: SourceFile | undefined; + packageName: string | undefined; // SymbolExportInfo, but optional symbols readonly symbol: Symbol | undefined; @@ -45,9 +47,9 @@ namespace ts { export interface ExportInfoMap { isUsableByFile(importingFile: Path): boolean; clear(): void; - add(importingFile: Path, symbol: Symbol, key: __String, moduleSymbol: Symbol, moduleFile: SourceFile | undefined, exportKind: ExportKind, isFromPackageJson: boolean, scriptTarget: ScriptTarget, checker: TypeChecker): void; + add(importingFile: Path, symbol: Symbol, key: __String, moduleSymbol: Symbol, moduleFile: SourceFile | undefined, exportKind: ExportKind, isFromPackageJson: boolean, checker: TypeChecker): void; get(importingFile: Path, key: string): readonly SymbolExportInfo[] | undefined; - forEach(importingFile: Path, action: (info: readonly SymbolExportInfo[], name: string, isFromAmbientModule: boolean, key: string) => void): void; + search(importingFile: Path, preferCapitalized: boolean, matches: (name: string, targetFlags: SymbolFlags) => boolean, action: (info: readonly SymbolExportInfo[], symbolName: string, isFromAmbientModule: boolean, key: string) => void): void; releaseSymbols(): void; isEmpty(): boolean; /** @returns Whether the change resulted in the cache being cleared */ @@ -57,12 +59,24 @@ namespace ts { export interface CacheableExportInfoMapHost { getCurrentProgram(): Program | undefined; getPackageJsonAutoImportProvider(): Program | undefined; + getGlobalTypingsCacheLocation(): string | undefined; } export function createCacheableExportInfoMap(host: CacheableExportInfoMapHost): ExportInfoMap { let exportInfoId = 1; const exportInfo = createMultiMap(); const symbols = new Map(); + /** + * Key: node_modules package name (no @types). + * Value: path to deepest node_modules folder seen that is + * both visible to `usableByFileName` and contains the package. + * + * Later, we can see if a given SymbolExportInfo is shadowed by + * a another installation of the same package in a deeper + * node_modules folder by seeing if its path starts with the + * value stored here. + */ + const packages = new Map(); let usableByFileName: Path | undefined; const cache: ExportInfoMap = { isUsableByFile: importingFile => importingFile === usableByFileName, @@ -72,19 +86,50 @@ namespace ts { symbols.clear(); usableByFileName = undefined; }, - add: (importingFile, symbol, symbolTableKey, moduleSymbol, moduleFile, exportKind, isFromPackageJson, scriptTarget, checker) => { + add: (importingFile, symbol, symbolTableKey, moduleSymbol, moduleFile, exportKind, isFromPackageJson, checker) => { if (importingFile !== usableByFileName) { cache.clear(); usableByFileName = importingFile; } + + let packageName; + if (moduleFile) { + const nodeModulesPathParts = getNodeModulePathParts(moduleFile.fileName); + if (nodeModulesPathParts) { + const { topLevelNodeModulesIndex, topLevelPackageNameIndex, packageRootIndex } = nodeModulesPathParts; + packageName = unmangleScopedPackageName(getPackageNameFromTypesPackageName(moduleFile.fileName.substring(topLevelPackageNameIndex + 1, packageRootIndex))); + if (startsWith(importingFile, moduleFile.path.substring(0, topLevelNodeModulesIndex))) { + const prevDeepestNodeModulesPath = packages.get(packageName); + const nodeModulesPath = moduleFile.fileName.substring(0, topLevelPackageNameIndex + 1); + if (prevDeepestNodeModulesPath) { + const prevDeepestNodeModulesIndex = prevDeepestNodeModulesPath.indexOf(nodeModulesPathPart); + if (topLevelNodeModulesIndex > prevDeepestNodeModulesIndex) { + packages.set(packageName, nodeModulesPath); + } + } + else { + packages.set(packageName, nodeModulesPath); + } + } + } + } + const isDefault = exportKind === ExportKind.Default; const namedSymbol = isDefault && getLocalSymbolForExportDefault(symbol) || symbol; - // A re-export merged with an export from a module augmentation can result in `symbol` - // being an external module symbol; the name it is re-exported by will be `symbolTableKey` - // (which comes from the keys of `moduleSymbol.exports`.) - const importedName = isExternalModuleSymbol(namedSymbol) + // 1. A named export must be imported by its key in `moduleSymbol.exports` or `moduleSymbol.members`. + // 2. A re-export merged with an export from a module augmentation can result in `symbol` + // being an external module symbol; the name it is re-exported by will be `symbolTableKey` + // (which comes from the keys of `moduleSymbol.exports`.) + // 3. Otherwise, we have a default/namespace import that can be imported by any name, and + // `symbolTableKey` will be something undesirable like `export=` or `default`, so we try to + // get a better name. + const names = exportKind === ExportKind.Named || isExternalModuleSymbol(namedSymbol) ? unescapeLeadingUnderscores(symbolTableKey) - : getNameForExportedSymbol(namedSymbol, scriptTarget); + : getNamesForExportedSymbol(namedSymbol, /*scriptTarget*/ undefined); + + const symbolName = typeof names === "string" ? names : names[0]; + const capitalizedSymbolName = typeof names === "string" ? undefined : names[1]; + const moduleName = stripQuotes(moduleSymbol.name); const id = exportInfoId++; const target = skipAlias(symbol, checker); @@ -92,13 +137,15 @@ namespace ts { const storedModuleSymbol = moduleSymbol.flags & SymbolFlags.Transient ? undefined : moduleSymbol; if (!storedSymbol || !storedModuleSymbol) symbols.set(id, [symbol, moduleSymbol]); - exportInfo.add(key(importedName, symbol, isExternalModuleNameRelative(moduleName) ? undefined : moduleName, checker), { + exportInfo.add(key(symbolName, symbol, isExternalModuleNameRelative(moduleName) ? undefined : moduleName, checker), { id, symbolTableKey, - symbolName: importedName, + symbolName, + capitalizedSymbolName, moduleName, moduleFile, moduleFileName: moduleFile?.fileName, + packageName, exportKind, targetFlags: target.flags, isFromPackageJson, @@ -111,11 +158,18 @@ namespace ts { const result = exportInfo.get(key); return result?.map(rehydrateCachedInfo); }, - forEach: (importingFile, action) => { + search: (importingFile, preferCapitalized, matches, action) => { if (importingFile !== usableByFileName) return; exportInfo.forEach((info, key) => { const { symbolName, ambientModuleName } = parseKey(key); - action(info.map(rehydrateCachedInfo), symbolName, !!ambientModuleName, key); + const name = preferCapitalized && info[0].capitalizedSymbolName || symbolName; + if (matches(name, info[0].targetFlags)) { + const rehydrated = info.map(rehydrateCachedInfo); + const filtered = rehydrated.filter((r, i) => isNotShadowedByDeeperNodeModulesPackage(r, info[i].packageName)); + if (filtered.length) { + action(filtered, name, !!ambientModuleName, key); + } + } }); }, releaseSymbols: () => { @@ -216,6 +270,14 @@ namespace ts { } return true; } + + function isNotShadowedByDeeperNodeModulesPackage(info: SymbolExportInfo, packageName: string | undefined) { + if (!packageName || !info.moduleFileName) return true; + const typingsCacheLocation = host.getGlobalTypingsCacheLocation(); + if (typingsCacheLocation && startsWith(info.moduleFileName, typingsCacheLocation)) return true; + const packageDeepestNodeModulesPath = packages.get(packageName); + return !packageDeepestNodeModulesPath || startsWith(info.moduleFileName, packageDeepestNodeModulesPath); + } } export function isImportableFile( @@ -228,7 +290,7 @@ namespace ts { moduleSpecifierCache: ModuleSpecifierCache | undefined, ): boolean { if (from === to) return false; - const cachedResult = moduleSpecifierCache?.get(from.path, to.path, preferences); + const cachedResult = moduleSpecifierCache?.get(from.path, to.path, preferences, {}); if (cachedResult?.isAutoImportable !== undefined) { return cachedResult.isAutoImportable; } @@ -251,7 +313,7 @@ namespace ts { if (packageJsonFilter) { const isAutoImportable = hasImportablePath && packageJsonFilter.allowsImportingSourceFile(to, moduleSpecifierResolutionHost); - moduleSpecifierCache?.setIsAutoImportable(from.path, to.path, preferences, isAutoImportable); + moduleSpecifierCache?.setIsAutoImportable(from.path, to.path, preferences, {}, isAutoImportable); return isAutoImportable; } @@ -308,6 +370,7 @@ namespace ts { const cache = host.getCachedExportInfoMap?.() || createCacheableExportInfoMap({ getCurrentProgram: () => program, getPackageJsonAutoImportProvider: () => host.getPackageJsonAutoImportProvider?.(), + getGlobalTypingsCacheLocation: () => host.getGlobalTypingsCacheLocation?.(), }); if (cache.isUsableByFile(importingFile.path)) { @@ -317,11 +380,10 @@ namespace ts { host.log?.("getExportInfoMap: cache miss or empty; calculating new results"); const compilerOptions = program.getCompilerOptions(); - const scriptTarget = getEmitScriptTarget(compilerOptions); let moduleCount = 0; forEachExternalModuleToImportFrom(program, host, /*useAutoImportProvider*/ true, (moduleSymbol, moduleFile, program, isFromPackageJson) => { if (++moduleCount % 100 === 0) cancellationToken?.throwIfCancellationRequested(); - const seenExports = new Map(); + const seenExports = new Map<__String, true>(); const checker = program.getTypeChecker(); const defaultInfo = getDefaultLikeExportInfo(moduleSymbol, checker, compilerOptions); // Note: I think we shouldn't actually see resolved module symbols here, but weird merges @@ -335,11 +397,10 @@ namespace ts { moduleFile, defaultInfo.exportKind, isFromPackageJson, - scriptTarget, checker); } checker.forEachExportAndPropertyOfModule(moduleSymbol, (exported, key) => { - if (exported !== defaultInfo?.symbol && isImportableSymbol(exported, checker) && addToSeen(seenExports, exported)) { + if (exported !== defaultInfo?.symbol && isImportableSymbol(exported, checker) && addToSeen(seenExports, key)) { cache.add( importingFile.path, exported, @@ -348,7 +409,6 @@ namespace ts { moduleFile, ExportKind.Named, isFromPackageJson, - scriptTarget, checker); } }); diff --git a/src/services/findAllReferences.ts b/src/services/findAllReferences.ts index 0c04f00e6a87b..d9a74d10d07fd 100644 --- a/src/services/findAllReferences.ts +++ b/src/services/findAllReferences.ts @@ -206,9 +206,10 @@ namespace ts.FindAllReferences { export function findReferencedSymbols(program: Program, cancellationToken: CancellationToken, sourceFiles: readonly SourceFile[], sourceFile: SourceFile, position: number): ReferencedSymbol[] | undefined { const node = getTouchingPropertyName(sourceFile, position); - const referencedSymbols = Core.getReferencedSymbolsForNode(position, node, program, sourceFiles, cancellationToken, { use: FindReferencesUse.References }); + const options = { use: FindReferencesUse.References }; + const referencedSymbols = Core.getReferencedSymbolsForNode(position, node, program, sourceFiles, cancellationToken, options); const checker = program.getTypeChecker(); - const symbol = checker.getSymbolAtLocation(node); + const symbol = checker.getSymbolAtLocation(getAdjustedReferenceLocation(Core.getAdjustedNode(node, options))); return !referencedSymbols || !referencedSymbols.length ? undefined : mapDefined(referencedSymbols, ({ definition, references }) => // Only include referenced symbols that have a valid definition. definition && { @@ -526,7 +527,7 @@ namespace ts.FindAllReferences { function getTextSpan(node: Node, sourceFile: SourceFile, endNode?: Node): TextSpan { let start = node.getStart(sourceFile); let end = (endNode || node).getEnd(); - if (isStringLiteralLike(node)) { + if (isStringLiteralLike(node) && (end - start) > 2) { Debug.assert(endNode === undefined); start += 1; end -= 1; @@ -622,12 +623,7 @@ namespace ts.FindAllReferences { export namespace Core { /** Core find-all-references algorithm. Handles special cases before delegating to `getReferencedSymbolsForSymbol`. */ export function getReferencedSymbolsForNode(position: number, node: Node, program: Program, sourceFiles: readonly SourceFile[], cancellationToken: CancellationToken, options: Options = {}, sourceFilesSet: ReadonlySet = new Set(sourceFiles.map(f => f.fileName))): readonly SymbolAndEntries[] | undefined { - if (options.use === FindReferencesUse.References) { - node = getAdjustedReferenceLocation(node); - } - else if (options.use === FindReferencesUse.Rename) { - node = getAdjustedRenameLocation(node); - } + node = getAdjustedNode(node, options); if (isSourceFile(node)) { const resolvedRef = GoToDefinition.getReferenceAtPosition(node, position, program); if (!resolvedRef?.file) { @@ -695,6 +691,16 @@ namespace ts.FindAllReferences { return mergeReferences(program, moduleReferences, references, moduleReferencesOfExportTarget); } + export function getAdjustedNode(node: Node, options: Options) { + if (options.use === FindReferencesUse.References) { + node = getAdjustedReferenceLocation(node); + } + else if (options.use === FindReferencesUse.Rename) { + node = getAdjustedRenameLocation(node); + } + return node; + } + export function getReferencesForFileName(fileName: string, program: Program, sourceFiles: readonly SourceFile[], sourceFilesSet: ReadonlySet = new Set(sourceFiles.map(f => f.fileName))): readonly Entry[] { const moduleSymbol = program.getSourceFile(fileName)?.symbol; if (moduleSymbol) { @@ -890,6 +896,10 @@ namespace ts.FindAllReferences { node.kind === SyntaxKind.ReadonlyKeyword ? isReadonlyTypeOperator : undefined); } + if (isImportMeta(node.parent) && node.parent.name === node) { + return getAllReferencesForImportMeta(sourceFiles, cancellationToken); + } + if (isStaticModifier(node) && isClassStaticBlockDeclaration(node.parent)) { return [{ definition: { type: DefinitionKind.Keyword, node }, references: [nodeEntry(node)] }]; } @@ -1276,7 +1286,7 @@ namespace ts.FindAllReferences { - But if the parent has `export as namespace`, the symbol is globally visible through that namespace. */ const exposedByParent = parent && !(symbol.flags & SymbolFlags.TypeParameter); - if (exposedByParent && !(isExternalModuleSymbol(parent!) && !parent!.globalExports)) { + if (exposedByParent && !(isExternalModuleSymbol(parent) && !parent.globalExports)) { return undefined; } @@ -1323,7 +1333,7 @@ namespace ts.FindAllReferences { if (!symbol) return undefined; for (const token of getPossibleSymbolReferenceNodes(sourceFile, symbol.name, searchContainer)) { if (!isIdentifier(token) || token === definition || token.escapedText !== definition.escapedText) continue; - const referenceSymbol: Symbol = checker.getSymbolAtLocation(token)!; // See GH#19955 for why the type annotation is necessary + const referenceSymbol = checker.getSymbolAtLocation(token)!; if (referenceSymbol === symbol || checker.getShorthandAssignmentValueSymbol(token.parent) === symbol || isExportSpecifier(token.parent) && getLocalSymbolForExportSpecifier(token, referenceSymbol, token.parent, checker) === symbol) { @@ -1435,6 +1445,19 @@ namespace ts.FindAllReferences { } } + function getAllReferencesForImportMeta(sourceFiles: readonly SourceFile[], cancellationToken: CancellationToken): SymbolAndEntries[] | undefined { + const references = flatMap(sourceFiles, sourceFile => { + cancellationToken.throwIfCancellationRequested(); + return mapDefined(getPossibleSymbolReferenceNodes(sourceFile, "meta", sourceFile), node => { + const parent = node.parent; + if (isImportMeta(parent)) { + return nodeEntry(parent); + } + }); + }); + return references.length ? [{ definition: { type: DefinitionKind.Keyword, node: references[0].node }, references }] : undefined; + } + function getAllReferencesForKeyword(sourceFiles: readonly SourceFile[], keywordKind: SyntaxKind, cancellationToken: CancellationToken, filter?: (node: Node) => boolean): SymbolAndEntries[] | undefined { const references = flatMap(sourceFiles, sourceFile => { cancellationToken.throwIfCancellationRequested(); @@ -1531,7 +1554,7 @@ namespace ts.FindAllReferences { // Use the parent symbol if the location is commonjs require syntax on javascript files only. if (isInJSFile(referenceLocation) && referenceLocation.parent.kind === SyntaxKind.BindingElement - && isRequireVariableDeclaration(referenceLocation.parent)) { + && isVariableDeclarationInitializedToBareOrAccessedRequire(referenceLocation.parent)) { referenceSymbol = referenceLocation.parent.symbol; // The parent will not have a symbol if it's an ObjectBindingPattern (when destructuring is used). In // this case, just skip it, since the bound identifiers are not an alias of the import. @@ -1656,6 +1679,12 @@ namespace ts.FindAllReferences { function addReference(referenceLocation: Node, relatedSymbol: Symbol | RelatedSymbol, state: State): void { const { kind, symbol } = "kind" in relatedSymbol ? relatedSymbol : { kind: undefined, symbol: relatedSymbol }; // eslint-disable-line no-in-operator + + // if rename symbol from default export anonymous function, for example `export default function() {}`, we do not need to add reference + if (state.options.use === FindReferencesUse.Rename && referenceLocation.kind === SyntaxKind.DefaultKeyword) { + return; + } + const addRef = state.referenceAdder(symbol); if (state.options.implementations) { addImplementationReferences(referenceLocation, addRef, state); @@ -2021,7 +2050,8 @@ namespace ts.FindAllReferences { } } else { - return nodeEntry(ref, EntryKind.StringLiteral); + return isNoSubstitutionTemplateLiteral(ref) && !rangeIsOnSingleLine(ref, sourceFile) ? undefined : + nodeEntry(ref, EntryKind.StringLiteral); } } }); diff --git a/src/services/formatting/formatting.ts b/src/services/formatting/formatting.ts index 1a8542741ea46..5a9948cd35f72 100644 --- a/src/services/formatting/formatting.ts +++ b/src/services/formatting/formatting.ts @@ -344,7 +344,7 @@ namespace ts.formatting { } export function formatNodeGivenIndentation(node: Node, sourceFileLike: SourceFileLike, languageVariant: LanguageVariant, initialIndentation: number, delta: number, formatContext: FormatContext): TextChange[] { - const range = { pos: 0, end: sourceFileLike.text.length }; + const range = { pos: node.pos, end: node.end }; return getFormattingScanner(sourceFileLike.text, languageVariant, range.pos, range.end, scanner => formatSpanWorker( range, node, @@ -438,6 +438,26 @@ namespace ts.formatting { } } + if (previousRange! && formattingScanner.getStartPos() >= originalRange.end) { + const tokenInfo = + formattingScanner.isOnEOF() ? formattingScanner.readEOFTokenRange() : + formattingScanner.isOnToken() ? formattingScanner.readTokenInfo(enclosingNode).token : + undefined; + + if (tokenInfo) { + const parent = findPrecedingToken(tokenInfo.end, sourceFile, enclosingNode)?.parent || previousParent!; + processPair( + tokenInfo, + sourceFile.getLineAndCharacterOfPosition(tokenInfo.pos).line, + parent, + previousRange, + previousRangeStartLine!, + previousParent!, + parent, + /*dynamicIndentation*/ undefined); + } + } + return edits; // local functions @@ -653,29 +673,14 @@ namespace ts.formatting { }); // proceed any tokens in the node that are located after child nodes - while (formattingScanner.isOnToken()) { + while (formattingScanner.isOnToken() && formattingScanner.getStartPos() < originalRange.end) { const tokenInfo = formattingScanner.readTokenInfo(node); - if (tokenInfo.token.end > node.end) { + if (tokenInfo.token.end > Math.min(node.end, originalRange.end)) { break; } consumeTokenAndAdvanceScanner(tokenInfo, node, nodeDynamicIndentation, node); } - if (!node.parent && formattingScanner.isOnEOF()) { - const token = formattingScanner.readEOFTokenRange(); - if (token.end <= node.end && previousRange) { - processPair( - token, - sourceFile.getLineAndCharacterOfPosition(token.pos).line, - node, - previousRange, - previousRangeStartLine, - previousParent, - contextNode, - nodeDynamicIndentation); - } - } - function processChildNode( child: Node, inheritedIndentation: number, @@ -717,9 +722,12 @@ namespace ts.formatting { return inheritedIndentation; } - while (formattingScanner.isOnToken()) { + while (formattingScanner.isOnToken() && formattingScanner.getStartPos() < originalRange.end) { // proceed any parent tokens that are located prior to child.getStart() const tokenInfo = formattingScanner.readTokenInfo(node); + if (tokenInfo.token.end > originalRange.end) { + return inheritedIndentation; + } if (tokenInfo.token.end > childStartPos) { if (tokenInfo.token.pos > childStartPos) { formattingScanner.skipToStartOf(child); @@ -731,7 +739,7 @@ namespace ts.formatting { consumeTokenAndAdvanceScanner(tokenInfo, node, parentDynamicIndentation, node); } - if (!formattingScanner.isOnToken()) { + if (!formattingScanner.isOnToken() || formattingScanner.getStartPos() >= originalRange.end) { return inheritedIndentation; } @@ -773,7 +781,7 @@ namespace ts.formatting { if (listStartToken !== SyntaxKind.Unknown) { // introduce a new indentation scope for lists (including list start and end tokens) - while (formattingScanner.isOnToken()) { + while (formattingScanner.isOnToken() && formattingScanner.getStartPos() < originalRange.end) { const tokenInfo = formattingScanner.readTokenInfo(parent); if (tokenInfo.token.end > nodes.pos) { // stop when formatting scanner moves past the beginning of node list @@ -814,7 +822,7 @@ namespace ts.formatting { } const listEndToken = getCloseTokenForOpenToken(listStartToken); - if (listEndToken !== SyntaxKind.Unknown && formattingScanner.isOnToken()) { + if (listEndToken !== SyntaxKind.Unknown && formattingScanner.isOnToken() && formattingScanner.getStartPos() < originalRange.end) { let tokenInfo: TokenInfo | undefined = formattingScanner.readTokenInfo(parent); if (tokenInfo.token.kind === SyntaxKind.CommaToken && isCallLikeExpression(parent)) { const commaTokenLine = sourceFile.getLineAndCharacterOfPosition(tokenInfo.token.pos).line; @@ -969,7 +977,7 @@ namespace ts.formatting { previousStartLine: number, previousParent: Node, contextNode: Node, - dynamicIndentation: DynamicIndentation): LineAction { + dynamicIndentation: DynamicIndentation | undefined): LineAction { formattingContext.updateContext(previousItem, previousParent, currentItem, currentParent, contextNode); @@ -982,24 +990,26 @@ namespace ts.formatting { // win in a conflict with lower priority rules. forEachRight(rules, rule => { lineAction = applyRuleEdits(rule, previousItem, previousStartLine, currentItem, currentStartLine); - switch (lineAction) { - case LineAction.LineRemoved: - // Handle the case where the next line is moved to be the end of this line. - // In this case we don't indent the next line in the next pass. - if (currentParent.getStart(sourceFile) === currentItem.pos) { - dynamicIndentation.recomputeIndentation(/*lineAddedByFormatting*/ false, contextNode); - } - break; - case LineAction.LineAdded: - // Handle the case where token2 is moved to the new line. - // In this case we indent token2 in the next pass but we set - // sameLineIndent flag to notify the indenter that the indentation is within the line. - if (currentParent.getStart(sourceFile) === currentItem.pos) { - dynamicIndentation.recomputeIndentation(/*lineAddedByFormatting*/ true, contextNode); - } - break; - default: - Debug.assert(lineAction === LineAction.None); + if (dynamicIndentation) { + switch (lineAction) { + case LineAction.LineRemoved: + // Handle the case where the next line is moved to be the end of this line. + // In this case we don't indent the next line in the next pass. + if (currentParent.getStart(sourceFile) === currentItem.pos) { + dynamicIndentation.recomputeIndentation(/*lineAddedByFormatting*/ false, contextNode); + } + break; + case LineAction.LineAdded: + // Handle the case where token2 is moved to the new line. + // In this case we indent token2 in the next pass but we set + // sameLineIndent flag to notify the indenter that the indentation is within the line. + if (currentParent.getStart(sourceFile) === currentItem.pos) { + dynamicIndentation.recomputeIndentation(/*lineAddedByFormatting*/ true, contextNode); + } + break; + default: + Debug.assert(lineAction === LineAction.None); + } } // We need to trim trailing whitespace between the tokens if they were on different lines, and no rule was applied to put them on the same line diff --git a/src/services/formatting/formattingScanner.ts b/src/services/formatting/formattingScanner.ts index b619f98eb2b85..05bbc34041600 100644 --- a/src/services/formatting/formattingScanner.ts +++ b/src/services/formatting/formattingScanner.ts @@ -5,6 +5,7 @@ namespace ts.formatting { export interface FormattingScanner { advance(): void; + getStartPos(): number; isOnToken(): boolean; isOnEOF(): boolean; readTokenInfo(n: Node): TokenInfo; @@ -49,6 +50,7 @@ namespace ts.formatting { lastTrailingTriviaWasNewLine: () => wasNewLine, skipToEndOf, skipToStartOf, + getStartPos: () => lastTokenInfo?.token.pos ?? scanner.getTokenPos(), }); lastTokenInfo = undefined; @@ -265,8 +267,7 @@ namespace ts.formatting { function isOnToken(): boolean { const current = lastTokenInfo ? lastTokenInfo.token.kind : scanner.getToken(); - const startPos = lastTokenInfo ? lastTokenInfo.token.pos : scanner.getStartPos(); - return startPos < endPos && current !== SyntaxKind.EndOfFileToken && !isTrivia(current); + return current !== SyntaxKind.EndOfFileToken && !isTrivia(current); } function isOnEOF(): boolean { diff --git a/src/services/formatting/smartIndenter.ts b/src/services/formatting/smartIndenter.ts index de22396383207..fc65d3581bd64 100644 --- a/src/services/formatting/smartIndenter.ts +++ b/src/services/formatting/smartIndenter.ts @@ -55,7 +55,28 @@ namespace ts.formatting { // indentation is first non-whitespace character in a previous line // for block indentation, we should look for a line which contains something that's not // whitespace. - if (options.indentStyle === IndentStyle.Block) { + const currentToken = getTokenAtPosition(sourceFile, position); + // for object literal, we want to the indentation work like block + // if { starts in any position (can be in the middle of line) + // the following indentation should treat { as starting of that line (including leading whitespace) + // ``` + // const a: { x: undefined, y: undefined } = {} // leading 4 whitespaces and { starts in the middle of line + // -> + // const a: { x: undefined, y: undefined } = { + // x: undefined, + // y: undefined, + // } + // --------------------- + // const a: {x : undefined, y: undefined } = + // {} + // -> + // const a: { x: undefined, y: undefined } = + // { // leading 5 whitespaces and { starts at 6 column + // x: undefined, + // y: undefined, + // } + // ``` + if (options.indentStyle === IndentStyle.Block || currentToken.kind === SyntaxKind.OpenBraceToken) { return getBlockIndent(sourceFile, position, options); } @@ -432,6 +453,8 @@ namespace ts.formatting { case SyntaxKind.ConstructorType: case SyntaxKind.ConstructSignature: return getList((node as SignatureDeclaration).typeParameters) || getList((node as SignatureDeclaration).parameters); + case SyntaxKind.GetAccessor: + return getList((node as GetAccessorDeclaration).parameters); case SyntaxKind.ClassDeclaration: case SyntaxKind.ClassExpression: case SyntaxKind.InterfaceDeclaration: diff --git a/src/services/getEditsForFileRename.ts b/src/services/getEditsForFileRename.ts index fa0749df0cecc..369f8e8e23f07 100644 --- a/src/services/getEditsForFileRename.ts +++ b/src/services/getEditsForFileRename.ts @@ -156,7 +156,7 @@ namespace ts { // Need an update if the imported file moved, or the importing file moved and was using a relative path. return toImport !== undefined && (toImport.updated || (importingSourceFileMoved && pathIsRelative(importLiteral.text))) - ? moduleSpecifiers.updateModuleSpecifier(program.getCompilerOptions(), getCanonicalFileName(newImportFromPath) as Path, toImport.newFileName, createModuleSpecifierResolutionHost(program, host), importLiteral.text) + ? moduleSpecifiers.updateModuleSpecifier(program.getCompilerOptions(), sourceFile, getCanonicalFileName(newImportFromPath) as Path, toImport.newFileName, createModuleSpecifierResolutionHost(program, host), importLiteral.text) : undefined; }); } diff --git a/src/services/goToDefinition.ts b/src/services/goToDefinition.ts index af03eb260f507..3b49ec4b64610 100644 --- a/src/services/goToDefinition.ts +++ b/src/services/goToDefinition.ts @@ -159,7 +159,7 @@ namespace ts.GoToDefinition { const typeReferenceDirective = findReferenceInPosition(sourceFile.typeReferenceDirectives, position); if (typeReferenceDirective) { - const reference = program.getResolvedTypeReferenceDirectives().get(typeReferenceDirective.fileName); + const reference = program.getResolvedTypeReferenceDirectives().get(typeReferenceDirective.fileName, typeReferenceDirective.resolutionMode || sourceFile.impliedNodeFormat); const file = reference && program.getSourceFile(reference.resolvedFileName!); // TODO:GH#18217 return file && { reference: typeReferenceDirective, fileName: file.fileName, file, unverified: false }; } @@ -171,7 +171,7 @@ namespace ts.GoToDefinition { } if (sourceFile.resolvedModules?.size()) { - const node = getTokenAtPosition(sourceFile, position); + const node = getTouchingToken(sourceFile, position); if (isModuleSpecifierLike(node) && isExternalModuleNameRelative(node.text) && sourceFile.resolvedModules.has(node.text, getModeForUsageLocation(sourceFile, node))) { const verifiedFileName = sourceFile.resolvedModules.get(node.text, getModeForUsageLocation(sourceFile, node))?.resolvedFileName; const fileName = verifiedFileName || resolvePath(getDirectoryPath(sourceFile.fileName), node.text); @@ -198,14 +198,21 @@ namespace ts.GoToDefinition { return undefined; } - const symbol = typeChecker.getSymbolAtLocation(node); + if (isImportMeta(node.parent) && node.parent.name === node) { + return definitionFromType(typeChecker.getTypeAtLocation(node.parent), typeChecker, node.parent); + } + + const symbol = getSymbol(node, typeChecker); if (!symbol) return undefined; const typeAtLocation = typeChecker.getTypeOfSymbolAtLocation(symbol, node); const returnType = tryGetReturnTypeOfFunction(symbol, typeAtLocation, typeChecker); const fromReturnType = returnType && definitionFromType(returnType, typeChecker, node); // If a function returns 'void' or some other type with no definition, just return the function definition. - return fromReturnType && fromReturnType.length !== 0 ? fromReturnType : definitionFromType(typeAtLocation, typeChecker, node); + const typeDefinitions = fromReturnType && fromReturnType.length !== 0 ? fromReturnType : definitionFromType(typeAtLocation, typeChecker, node); + return typeDefinitions.length ? typeDefinitions + : !(symbol.flags & SymbolFlags.Value) && symbol.flags & SymbolFlags.Type ? getDefinitionFromSymbol(typeChecker, skipAlias(symbol, typeChecker), node) + : undefined; } function definitionFromType(type: Type, checker: TypeChecker, node: Node): readonly DefinitionInfo[] { @@ -287,7 +294,7 @@ namespace ts.GoToDefinition { return declaration.parent.kind === SyntaxKind.NamedImports; case SyntaxKind.BindingElement: case SyntaxKind.VariableDeclaration: - return isInJSFile(declaration) && isRequireVariableDeclaration(declaration); + return isInJSFile(declaration) && isVariableDeclarationInitializedToBareOrAccessedRequire(declaration); default: return false; } diff --git a/src/services/importTracker.ts b/src/services/importTracker.ts index d3c95854f9bbe..a3fcfb76680de 100644 --- a/src/services/importTracker.ts +++ b/src/services/importTracker.ts @@ -367,7 +367,7 @@ namespace ts.FindAllReferences { } } for (const ref of referencingFile.typeReferenceDirectives) { - const referenced = program.getResolvedTypeReferenceDirectives().get(ref.fileName); + const referenced = program.getResolvedTypeReferenceDirectives().get(ref.fileName, ref.resolutionMode || referencingFile.impliedNodeFormat); if (referenced !== undefined && referenced.resolvedFileName === (searchSourceFile as SourceFile).fileName) { refs.push({ kind: "reference", referencingFile, ref }); } @@ -621,7 +621,7 @@ namespace ts.FindAllReferences { Debug.assert((parent as ImportClause | NamespaceImport).name === node); return true; case SyntaxKind.BindingElement: - return isInJSFile(node) && isRequireVariableDeclaration(parent); + return isInJSFile(node) && isVariableDeclarationInitializedToBareOrAccessedRequire(parent); default: return false; } diff --git a/src/services/inlayHints.ts b/src/services/inlayHints.ts index 59add59b0aedf..110e9718405cb 100644 --- a/src/services/inlayHints.ts +++ b/src/services/inlayHints.ts @@ -7,11 +7,11 @@ namespace ts.InlayHints { return new RegExp(`^\\s?/\\*\\*?\\s?${name}\\s?\\*\\/\\s?$`); }; - function shouldShowParameterNameHints(preferences: InlayHintsOptions) { + function shouldShowParameterNameHints(preferences: UserPreferences) { return preferences.includeInlayParameterNameHints === "literals" || preferences.includeInlayParameterNameHints === "all"; } - function shouldShowLiteralParameterNameHintsOnly(preferences: InlayHintsOptions) { + function shouldShowLiteralParameterNameHintsOnly(preferences: UserPreferences) { return preferences.includeInlayParameterNameHints === "literals"; } @@ -279,7 +279,7 @@ namespace ts.InlayHints { continue; } - addTypeHints(typeDisplayString, param.name.end); + addTypeHints(typeDisplayString, param.questionToken ? param.questionToken.end : param.name.end); } } diff --git a/src/services/jsDoc.ts b/src/services/jsDoc.ts index 2e2bc61136a3f..ca6b9cc047d45 100644 --- a/src/services/jsDoc.ts +++ b/src/services/jsDoc.ts @@ -169,7 +169,27 @@ namespace ts.JsDoc { case SyntaxKind.JSDocAugmentsTag: return withNode((tag as JSDocAugmentsTag).class); case SyntaxKind.JSDocTemplateTag: - return addComment((tag as JSDocTemplateTag).typeParameters.map(tp => tp.getText()).join(", ")); + const templateTag = tag as JSDocTemplateTag; + const displayParts: SymbolDisplayPart[] = []; + if (templateTag.constraint) { + displayParts.push(textPart(templateTag.constraint.getText())); + } + if (length(templateTag.typeParameters)) { + if (length(displayParts)) { + displayParts.push(spacePart()); + } + const lastTypeParameter = templateTag.typeParameters[templateTag.typeParameters.length - 1]; + forEach(templateTag.typeParameters, tp => { + displayParts.push(namePart(tp.getText())); + if (lastTypeParameter !== tp) { + displayParts.push(...[punctuationPart(SyntaxKind.CommaToken), spacePart()]); + } + }); + } + if (comment) { + displayParts.push(...[spacePart(), ...getDisplayPartsFromComment(comment, checker)]); + } + return displayParts; case SyntaxKind.JSDocTypeTag: return withNode((tag as JSDocTypeTag).typeExpression); case SyntaxKind.JSDocTypedefTag: @@ -333,7 +353,8 @@ namespace ts.JsDoc { } const { commentOwner, parameters, hasReturn } = commentOwnerInfo; - if (commentOwner.getStart(sourceFile) < position) { + const commentOwnerJSDoc = hasJSDocNodes(commentOwner) && commentOwner.jsDoc ? lastOrUndefined(commentOwner.jsDoc) : undefined; + if (commentOwner.getStart(sourceFile) < position || commentOwnerJSDoc && commentOwnerJSDoc !== existingDocComment) { return undefined; } diff --git a/src/services/navigateTo.ts b/src/services/navigateTo.ts index 709dd80eb90a3..462d4fd0ac3ef 100644 --- a/src/services/navigateTo.ts +++ b/src/services/navigateTo.ts @@ -130,7 +130,7 @@ namespace ts.NavigateTo { textSpan: createTextSpanFromNode(declaration), // TODO(jfreeman): What should be the containerName when the container has a computed name? containerName: containerName ? (containerName as Identifier).text : "", - containerKind: containerName ? getNodeKind(container!) : ScriptElementKind.unknown, // TODO: GH#18217 Just use `container ? ...` + containerKind: containerName ? getNodeKind(container) : ScriptElementKind.unknown, }; } } diff --git a/src/services/navigationBar.ts b/src/services/navigationBar.ts index 6f9cdd55950c3..6b0e4869eb1a1 100644 --- a/src/services/navigationBar.ts +++ b/src/services/navigationBar.ts @@ -650,7 +650,10 @@ namespace ts.NavigationBar { // We use 1 NavNode to represent 'A.B.C', but there are multiple source nodes. // Only merge module nodes that have the same chain. Don't merge 'A.B.C' with 'A'! function areSameModule(a: ModuleDeclaration, b: ModuleDeclaration): boolean { - return a.body!.kind === b.body!.kind && (a.body!.kind !== SyntaxKind.ModuleDeclaration || areSameModule(a.body as ModuleDeclaration, b.body as ModuleDeclaration)); + if (!a.body || !b.body) { + return a.body === b.body; + } + return a.body.kind === b.body.kind && (a.body.kind !== SyntaxKind.ModuleDeclaration || areSameModule(a.body as ModuleDeclaration, b.body as ModuleDeclaration)); } /** Merge source into target. Source should be thrown away after this is called. */ diff --git a/src/services/organizeImports.ts b/src/services/organizeImports.ts index 5463cf00585d4..d01f2eae5f6d6 100644 --- a/src/services/organizeImports.ts +++ b/src/services/organizeImports.ts @@ -95,6 +95,7 @@ namespace ts.OrganizeImports { } const typeChecker = program.getTypeChecker(); + const compilerOptions = program.getCompilerOptions(); const jsxNamespace = typeChecker.getJsxNamespace(sourceFile); const jsxFragmentFactory = typeChecker.getJsxFragmentFactory(sourceFile); const jsxElementsPresent = !!(sourceFile.transformFlags & TransformFlags.ContainsJsx); @@ -162,7 +163,7 @@ namespace ts.OrganizeImports { function isDeclarationUsed(identifier: Identifier) { // The JSX factory symbol is always used if JSX elements are present - even if they are not allowed. - return jsxElementsPresent && (identifier.text === jsxNamespace || jsxFragmentFactory && identifier.text === jsxFragmentFactory) || + return jsxElementsPresent && (identifier.text === jsxNamespace || jsxFragmentFactory && identifier.text === jsxFragmentFactory) && jsxModeNeedsExplicitImport(compilerOptions.jsx) || FindAllReferences.Core.isSymbolReferencedInFile(identifier, typeChecker, sourceFile); } } @@ -236,10 +237,9 @@ namespace ts.OrganizeImports { } } - newImportSpecifiers.push(...flatMap(namedImports, i => (i.importClause!.namedBindings as NamedImports).elements)); // TODO: GH#18217 + newImportSpecifiers.push(...getNewImportSpecifiers(namedImports)); const sortedImportSpecifiers = sortSpecifiers(newImportSpecifiers); - const importDecl = defaultImports.length > 0 ? defaultImports[0] : namedImports[0]; @@ -492,4 +492,20 @@ namespace ts.OrganizeImports { return 6; } } + + function getNewImportSpecifiers(namedImports: ImportDeclaration[]) { + return flatMap(namedImports, namedImport => + map(tryGetNamedBindingElements(namedImport), importSpecifier => + importSpecifier.name && importSpecifier.propertyName && importSpecifier.name.escapedText === importSpecifier.propertyName.escapedText + ? factory.updateImportSpecifier(importSpecifier, importSpecifier.isTypeOnly, /*propertyName*/ undefined, importSpecifier.name) + : importSpecifier + ) + ); + } + + function tryGetNamedBindingElements(namedImport: ImportDeclaration) { + return namedImport.importClause?.namedBindings && isNamedImports(namedImport.importClause.namedBindings) + ? namedImport.importClause.namedBindings.elements + : undefined; + } } diff --git a/src/services/outliningElementsCollector.ts b/src/services/outliningElementsCollector.ts index be6755e880c5e..ee06b0c3a6833 100644 --- a/src/services/outliningElementsCollector.ts +++ b/src/services/outliningElementsCollector.ts @@ -34,7 +34,7 @@ namespace ts.OutliningElementsCollector { if (depthRemaining === 0) return; cancellationToken.throwIfCancellationRequested(); - if (isDeclaration(n) || isVariableStatement(n) || isReturnStatement(n) || n.kind === SyntaxKind.EndOfFileToken) { + if (isDeclaration(n) || isVariableStatement(n) || isReturnStatement(n) || isCallOrNewExpression(n) || n.kind === SyntaxKind.EndOfFileToken) { addOutliningForLeadingCommentsForNode(n, sourceFile, cancellationToken, out); } @@ -240,6 +240,8 @@ namespace ts.OutliningElementsCollector { return spanForArrowFunction(n as ArrowFunction); case SyntaxKind.CallExpression: return spanForCallExpression(n as CallExpression); + case SyntaxKind.ParenthesizedExpression: + return spanForParenthesizedExpression(n as ParenthesizedExpression); } function spanForCallExpression(node: CallExpression): OutliningSpan | undefined { @@ -256,7 +258,7 @@ namespace ts.OutliningElementsCollector { } function spanForArrowFunction(node: ArrowFunction): OutliningSpan | undefined { - if (isBlock(node.body) || positionsAreOnSameLine(node.body.getFullStart(), node.body.getEnd(), sourceFile)) { + if (isBlock(node.body) || isParenthesizedExpression(node.body) || positionsAreOnSameLine(node.body.getFullStart(), node.body.getEnd(), sourceFile)) { return undefined; } const textSpan = createTextSpanFromBounds(node.body.getFullStart(), node.body.getEnd()); @@ -307,6 +309,12 @@ namespace ts.OutliningElementsCollector { function spanForNodeArray(nodeArray: NodeArray): OutliningSpan | undefined { return nodeArray.length ? createOutliningSpan(createTextSpanFromRange(nodeArray), OutliningSpanKind.Code) : undefined; } + + function spanForParenthesizedExpression(node: ParenthesizedExpression): OutliningSpan | undefined { + if (positionsAreOnSameLine(node.getStart(), node.getEnd(), sourceFile)) return undefined; + const textSpan = createTextSpanFromBounds(node.getStart(), node.getEnd()); + return createOutliningSpan(textSpan, OutliningSpanKind.Code, createTextSpanFromNode(node)); + } } function functionSpan(node: SignatureDeclaration, body: Block, sourceFile: SourceFile): OutliningSpan | undefined { diff --git a/src/services/preProcess.ts b/src/services/preProcess.ts index 41845616bbe4b..d5c384e9161cc 100644 --- a/src/services/preProcess.ts +++ b/src/services/preProcess.ts @@ -345,6 +345,42 @@ namespace ts { break; } + if (scanner.getToken() === SyntaxKind.TemplateHead) { + const stack = [scanner.getToken()]; + let token = scanner.scan(); + loop: while (length(stack)) { + switch (token) { + case SyntaxKind.EndOfFileToken: + break loop; + case SyntaxKind.ImportKeyword: + tryConsumeImport(); + break; + case SyntaxKind.TemplateHead: + stack.push(token); + break; + case SyntaxKind.OpenBraceToken: + if (length(stack)) { + stack.push(token); + } + break; + case SyntaxKind.CloseBraceToken: + if (length(stack)) { + if (lastOrUndefined(stack) === SyntaxKind.TemplateHead) { + if (scanner.reScanTemplateToken(/* isTaggedTemplate */ false) === SyntaxKind.TemplateTail) { + stack.pop(); + } + } + else { + stack.pop(); + } + } + break; + } + token = scanner.scan(); + } + nextToken(); + } + // check if at least one of alternative have moved scanner forward if (tryConsumeDeclare() || tryConsumeImport() || diff --git a/src/services/refactors/addOrRemoveBracesToArrowFunction.ts b/src/services/refactors/addOrRemoveBracesToArrowFunction.ts index fd75154c56273..aba1a33664085 100644 --- a/src/services/refactors/addOrRemoveBracesToArrowFunction.ts +++ b/src/services/refactors/addOrRemoveBracesToArrowFunction.ts @@ -15,8 +15,9 @@ namespace ts.refactor.addOrRemoveBracesToArrowFunction { }; registerRefactor(refactorName, { kinds: [removeBracesAction.kind], - getEditsForAction, - getAvailableActions }); + getEditsForAction: getRefactorEditsToRemoveFunctionBraces, + getAvailableActions: getRefactorActionsToRemoveFunctionBraces + }); interface FunctionBracesInfo { func: ArrowFunction; @@ -25,7 +26,7 @@ namespace ts.refactor.addOrRemoveBracesToArrowFunction { addBraces: boolean; } - function getAvailableActions(context: RefactorContext): readonly ApplicableRefactorInfo[] { + function getRefactorActionsToRemoveFunctionBraces(context: RefactorContext): readonly ApplicableRefactorInfo[] { const { file, startPosition, triggerReason } = context; const info = getConvertibleArrowFunctionAtPosition(file, startPosition, triggerReason === "invoked"); if (!info) return emptyArray; @@ -54,7 +55,7 @@ namespace ts.refactor.addOrRemoveBracesToArrowFunction { return emptyArray; } - function getEditsForAction(context: RefactorContext, actionName: string): RefactorEditInfo | undefined { + function getRefactorEditsToRemoveFunctionBraces(context: RefactorContext, actionName: string): RefactorEditInfo | undefined { const { file, startPosition } = context; const info = getConvertibleArrowFunctionAtPosition(file, startPosition); Debug.assert(info && !isRefactorErrorInfo(info), "Expected applicable refactor info"); diff --git a/src/services/refactors/convertArrowFunctionOrFunctionExpression.ts b/src/services/refactors/convertArrowFunctionOrFunctionExpression.ts index 4165cbfcc07ed..ea0c72a4dd684 100644 --- a/src/services/refactors/convertArrowFunctionOrFunctionExpression.ts +++ b/src/services/refactors/convertArrowFunctionOrFunctionExpression.ts @@ -24,8 +24,8 @@ namespace ts.refactor.convertArrowFunctionOrFunctionExpression { toNamedFunctionAction.kind, toArrowFunctionAction.kind ], - getEditsForAction, - getAvailableActions + getEditsForAction: getRefactorEditsToConvertFunctionExpressions, + getAvailableActions: getRefactorActionsToConvertFunctionExpressions }); interface FunctionInfo { @@ -40,7 +40,7 @@ namespace ts.refactor.convertArrowFunctionOrFunctionExpression { readonly name: Identifier; } - function getAvailableActions(context: RefactorContext): readonly ApplicableRefactorInfo[] { + function getRefactorActionsToConvertFunctionExpressions(context: RefactorContext): readonly ApplicableRefactorInfo[] { const { file, startPosition, program, kind } = context; const info = getFunctionInfo(file, startPosition, program); @@ -88,7 +88,7 @@ namespace ts.refactor.convertArrowFunctionOrFunctionExpression { }]; } - function getEditsForAction(context: RefactorContext, actionName: string): RefactorEditInfo | undefined { + function getRefactorEditsToConvertFunctionExpressions(context: RefactorContext, actionName: string): RefactorEditInfo | undefined { const { file, startPosition, program } = context; const info = getFunctionInfo(file, startPosition, program); diff --git a/src/services/refactors/convertExport.ts b/src/services/refactors/convertExport.ts index 3737f74a09620..3d3a9de095b80 100644 --- a/src/services/refactors/convertExport.ts +++ b/src/services/refactors/convertExport.ts @@ -18,7 +18,7 @@ namespace ts.refactor { defaultToNamedAction.kind, namedToDefaultAction.kind ], - getAvailableActions(context): readonly ApplicableRefactorInfo[] { + getAvailableActions: function getRefactorActionsToConvertBetweenNamedAndDefaultExports(context): readonly ApplicableRefactorInfo[] { const info = getInfo(context, context.triggerReason === "invoked"); if (!info) return emptyArray; @@ -38,7 +38,7 @@ namespace ts.refactor { return emptyArray; }, - getEditsForAction(context, actionName): RefactorEditInfo { + getEditsForAction: function getRefactorEditsToConvertBetweenNamedAndDefaultExports(context, actionName): RefactorEditInfo { Debug.assert(actionName === defaultToNamedAction.name || actionName === namedToDefaultAction.name, "Unexpected action name"); const info = getInfo(context); Debug.assert(info && !isRefactorErrorInfo(info), "Expected applicable refactor info"); diff --git a/src/services/refactors/convertImport.ts b/src/services/refactors/convertImport.ts index 65a684d8c46d5..01333162abb14 100644 --- a/src/services/refactors/convertImport.ts +++ b/src/services/refactors/convertImport.ts @@ -2,46 +2,48 @@ namespace ts.refactor { const refactorName = "Convert import"; - const namespaceToNamedAction = { - name: "Convert namespace import to named imports", - description: Diagnostics.Convert_namespace_import_to_named_imports.message, - kind: "refactor.rewrite.import.named", - }; - const namedToNamespaceAction = { - name: "Convert named imports to namespace import", - description: Diagnostics.Convert_named_imports_to_namespace_import.message, - kind: "refactor.rewrite.import.namespace", + const actions = { + [ImportKind.Named]: { + name: "Convert namespace import to named imports", + description: Diagnostics.Convert_namespace_import_to_named_imports.message, + kind: "refactor.rewrite.import.named", + }, + [ImportKind.Namespace]: { + name: "Convert named imports to namespace import", + description: Diagnostics.Convert_named_imports_to_namespace_import.message, + kind: "refactor.rewrite.import.namespace", + }, + [ImportKind.Default]: { + name: "Convert named imports to default import", + description: Diagnostics.Convert_named_imports_to_default_import.message, + kind: "refactor.rewrite.import.default", + }, }; registerRefactor(refactorName, { - kinds: [ - namespaceToNamedAction.kind, - namedToNamespaceAction.kind - ], - getAvailableActions(context): readonly ApplicableRefactorInfo[] { - const info = getImportToConvert(context, context.triggerReason === "invoked"); + kinds: getOwnValues(actions).map(a => a.kind), + getAvailableActions: function getRefactorActionsToConvertBetweenNamedAndNamespacedImports(context): readonly ApplicableRefactorInfo[] { + const info = getImportConversionInfo(context, context.triggerReason === "invoked"); if (!info) return emptyArray; if (!isRefactorErrorInfo(info)) { - const namespaceImport = info.kind === SyntaxKind.NamespaceImport; - const action = namespaceImport ? namespaceToNamedAction : namedToNamespaceAction; + const action = actions[info.convertTo]; return [{ name: refactorName, description: action.description, actions: [action] }]; } if (context.preferences.provideRefactorNotApplicableReason) { - return [ - { name: refactorName, description: namespaceToNamedAction.description, - actions: [{ ...namespaceToNamedAction, notApplicableReason: info.error }] }, - { name: refactorName, description: namedToNamespaceAction.description, - actions: [{ ...namedToNamespaceAction, notApplicableReason: info.error }] } - ]; + return getOwnValues(actions).map(action => ({ + name: refactorName, + description: action.description, + actions: [{ ...action, notApplicableReason: info.error }] + })); } return emptyArray; }, - getEditsForAction(context, actionName): RefactorEditInfo { - Debug.assert(actionName === namespaceToNamedAction.name || actionName === namedToNamespaceAction.name, "Unexpected action name"); - const info = getImportToConvert(context); + getEditsForAction: function getRefactorEditsToConvertBetweenNamedAndNamespacedImports(context, actionName): RefactorEditInfo { + Debug.assert(some(getOwnValues(actions), action => action.name === actionName), "Unexpected action name"); + const info = getImportConversionInfo(context); Debug.assert(info && !isRefactorErrorInfo(info), "Expected applicable refactor info"); const edits = textChanges.ChangeTracker.with(context, t => doChange(context.file, context.program, t, info)); return { edits, renameFilename: undefined, renameLocation: undefined }; @@ -49,7 +51,12 @@ namespace ts.refactor { }); // Can convert imports of the form `import * as m from "m";` or `import d, { x, y } from "m";`. - function getImportToConvert(context: RefactorContext, considerPartialSpans = true): NamedImportBindings | RefactorErrorInfo | undefined { + type ImportConversionInfo = + | { convertTo: ImportKind.Default, import: NamedImports } + | { convertTo: ImportKind.Namespace, import: NamedImports } + | { convertTo: ImportKind.Named, import: NamespaceImport }; + + function getImportConversionInfo(context: RefactorContext, considerPartialSpans = true): ImportConversionInfo | RefactorErrorInfo | undefined { const { file } = context; const span = getRefactorContextSpan(context); const token = getTokenAtPosition(file, span.start); @@ -69,16 +76,28 @@ namespace ts.refactor { return { error: getLocaleSpecificMessage(Diagnostics.Could_not_find_namespace_import_or_named_imports) }; } - return importClause.namedBindings; + if (importClause.namedBindings.kind === SyntaxKind.NamespaceImport) { + return { convertTo: ImportKind.Named, import: importClause.namedBindings }; + } + const shouldUseDefault = getShouldUseDefault(context.program, importClause); + + return shouldUseDefault + ? { convertTo: ImportKind.Default, import: importClause.namedBindings } + : { convertTo: ImportKind.Namespace, import: importClause.namedBindings }; + } + + function getShouldUseDefault(program: Program, importClause: ImportClause) { + return getAllowSyntheticDefaultImports(program.getCompilerOptions()) + && isExportEqualsModule(importClause.parent.moduleSpecifier, program.getTypeChecker()); } - function doChange(sourceFile: SourceFile, program: Program, changes: textChanges.ChangeTracker, toConvert: NamedImportBindings): void { + function doChange(sourceFile: SourceFile, program: Program, changes: textChanges.ChangeTracker, info: ImportConversionInfo): void { const checker = program.getTypeChecker(); - if (toConvert.kind === SyntaxKind.NamespaceImport) { - doChangeNamespaceToNamed(sourceFile, checker, changes, toConvert, getAllowSyntheticDefaultImports(program.getCompilerOptions())); + if (info.convertTo === ImportKind.Named) { + doChangeNamespaceToNamed(sourceFile, checker, changes, info.import, getAllowSyntheticDefaultImports(program.getCompilerOptions())); } else { - doChangeNamedToNamespace(sourceFile, checker, changes, toConvert); + doChangeNamedToNamespaceOrDefault(sourceFile, program, changes, info.import, info.convertTo === ImportKind.Default); } } @@ -137,7 +156,8 @@ namespace ts.refactor { return isPropertyAccessExpression(propertyAccessOrQualifiedName) ? propertyAccessOrQualifiedName.expression : propertyAccessOrQualifiedName.left; } - function doChangeNamedToNamespace(sourceFile: SourceFile, checker: TypeChecker, changes: textChanges.ChangeTracker, toConvert: NamedImports): void { + export function doChangeNamedToNamespaceOrDefault(sourceFile: SourceFile, program: Program, changes: textChanges.ChangeTracker, toConvert: NamedImports, shouldUseDefault = getShouldUseDefault(program, toConvert.parent)): void { + const checker = program.getTypeChecker(); const importDecl = toConvert.parent.parent; const { moduleSpecifier } = importDecl; @@ -188,7 +208,9 @@ namespace ts.refactor { }); } - changes.replaceNode(sourceFile, toConvert, factory.createNamespaceImport(factory.createIdentifier(namespaceImportName))); + changes.replaceNode(sourceFile, toConvert, shouldUseDefault + ? factory.createIdentifier(namespaceImportName) + : factory.createNamespaceImport(factory.createIdentifier(namespaceImportName))); if (neededNamedImports.size) { const newNamedImports: ImportSpecifier[] = arrayFrom(neededNamedImports.values()).map(element => factory.createImportSpecifier(element.isTypeOnly, element.propertyName && factory.createIdentifier(element.propertyName.text), factory.createIdentifier(element.name.text))); @@ -196,6 +218,13 @@ namespace ts.refactor { } } + function isExportEqualsModule(moduleSpecifier: Expression, checker: TypeChecker) { + const externalModule = checker.resolveExternalModuleName(moduleSpecifier); + if (!externalModule) return false; + const exportEquals = checker.resolveExternalModuleSymbol(externalModule); + return externalModule !== exportEquals; + } + function updateImport(old: ImportDeclaration, defaultImportName: Identifier | undefined, elements: readonly ImportSpecifier[] | undefined): ImportDeclaration { return factory.createImportDeclaration(/*decorators*/ undefined, /*modifiers*/ undefined, factory.createImportClause(/*isTypeOnly*/ false, defaultImportName, elements && elements.length ? factory.createNamedImports(elements) : undefined), old.moduleSpecifier, /*assertClause*/ undefined); diff --git a/src/services/refactors/convertOverloadListToSingleSignature.ts b/src/services/refactors/convertOverloadListToSingleSignature.ts index 5c49bf06d0970..83c071c70ac48 100644 --- a/src/services/refactors/convertOverloadListToSingleSignature.ts +++ b/src/services/refactors/convertOverloadListToSingleSignature.ts @@ -10,11 +10,11 @@ namespace ts.refactor.addOrRemoveBracesToArrowFunction { }; registerRefactor(refactorName, { kinds: [functionOverloadAction.kind], - getEditsForAction, - getAvailableActions + getEditsForAction: getRefactorEditsToConvertOverloadsToOneSignature, + getAvailableActions: getRefactorActionsToConvertOverloadsToOneSignature }); - function getAvailableActions(context: RefactorContext): readonly ApplicableRefactorInfo[] { + function getRefactorActionsToConvertOverloadsToOneSignature(context: RefactorContext): readonly ApplicableRefactorInfo[] { const { file, startPosition, program } = context; const info = getConvertableOverloadListAtPosition(file, startPosition, program); if (!info) return emptyArray; @@ -26,7 +26,7 @@ namespace ts.refactor.addOrRemoveBracesToArrowFunction { }]; } - function getEditsForAction(context: RefactorContext): RefactorEditInfo | undefined { + function getRefactorEditsToConvertOverloadsToOneSignature(context: RefactorContext): RefactorEditInfo | undefined { const { file, startPosition, program } = context; const signatureDecls = getConvertableOverloadListAtPosition(file, startPosition, program); if (!signatureDecls) return undefined; diff --git a/src/services/refactors/convertParamsToDestructuredObject.ts b/src/services/refactors/convertParamsToDestructuredObject.ts index cec2503f83fde..5fcd96a801870 100644 --- a/src/services/refactors/convertParamsToDestructuredObject.ts +++ b/src/services/refactors/convertParamsToDestructuredObject.ts @@ -1,7 +1,7 @@ /* @internal */ namespace ts.refactor.convertParamsToDestructuredObject { const refactorName = "Convert parameters to destructured object"; - const minimumParameterLength = 2; + const minimumParameterLength = 1; const refactorDescription = getLocaleSpecificMessage(Diagnostics.Convert_parameters_to_destructured_object); const toDestructuredAction = { @@ -11,11 +11,11 @@ namespace ts.refactor.convertParamsToDestructuredObject { }; registerRefactor(refactorName, { kinds: [toDestructuredAction.kind], - getEditsForAction, - getAvailableActions + getEditsForAction: getRefactorEditsToConvertParametersToDestructuredObject, + getAvailableActions: getRefactorActionsToConvertParametersToDestructuredObject }); - function getAvailableActions(context: RefactorContext): readonly ApplicableRefactorInfo[] { + function getRefactorActionsToConvertParametersToDestructuredObject(context: RefactorContext): readonly ApplicableRefactorInfo[] { const { file, startPosition } = context; const isJSFile = isSourceFileJS(file); if (isJSFile) return emptyArray; // TODO: GH#30113 @@ -29,7 +29,7 @@ namespace ts.refactor.convertParamsToDestructuredObject { }]; } - function getEditsForAction(context: RefactorContext, actionName: string): RefactorEditInfo | undefined { + function getRefactorEditsToConvertParametersToDestructuredObject(context: RefactorContext, actionName: string): RefactorEditInfo | undefined { Debug.assert(actionName === refactorName, "Unexpected action name"); const { file, startPosition, program, cancellationToken, host } = context; const functionDeclaration = getFunctionDeclarationAtPosition(file, startPosition, program.getTypeChecker()); diff --git a/src/services/refactors/convertStringOrTemplateLiteral.ts b/src/services/refactors/convertStringOrTemplateLiteral.ts index e417a0f2eae41..82c7452f81923 100644 --- a/src/services/refactors/convertStringOrTemplateLiteral.ts +++ b/src/services/refactors/convertStringOrTemplateLiteral.ts @@ -10,11 +10,11 @@ namespace ts.refactor.convertStringOrTemplateLiteral { }; registerRefactor(refactorName, { kinds: [convertStringAction.kind], - getEditsForAction, - getAvailableActions + getEditsForAction: getRefactorEditsToConvertToTemplateString, + getAvailableActions: getRefactorActionsToConvertToTemplateString }); - function getAvailableActions(context: RefactorContext): readonly ApplicableRefactorInfo[] { + function getRefactorActionsToConvertToTemplateString(context: RefactorContext): readonly ApplicableRefactorInfo[] { const { file, startPosition } = context; const node = getNodeOrParentOfParentheses(file, startPosition); const maybeBinary = getParentBinaryExpression(node); @@ -48,7 +48,7 @@ namespace ts.refactor.convertStringOrTemplateLiteral { return node; } - function getEditsForAction(context: RefactorContext, actionName: string): RefactorEditInfo | undefined { + function getRefactorEditsToConvertToTemplateString(context: RefactorContext, actionName: string): RefactorEditInfo | undefined { const { file, startPosition } = context; const node = getNodeOrParentOfParentheses(file, startPosition); @@ -215,7 +215,7 @@ namespace ts.refactor.convertStringOrTemplateLiteral { const isLastSpan = index === currentNode.templateSpans.length - 1; const text = span.literal.text + (isLastSpan ? subsequentText : ""); const rawText = getRawTextOfTemplate(span.literal) + (isLastSpan ? rawSubsequentText : ""); - return factory.createTemplateSpan(span.expression, isLast + return factory.createTemplateSpan(span.expression, isLast && isLastSpan ? factory.createTemplateTail(text, rawText) : factory.createTemplateMiddle(text, rawText)); }); diff --git a/src/services/refactors/convertToOptionalChainExpression.ts b/src/services/refactors/convertToOptionalChainExpression.ts index 8bfb222c8bf0f..ba40ec6a5e553 100644 --- a/src/services/refactors/convertToOptionalChainExpression.ts +++ b/src/services/refactors/convertToOptionalChainExpression.ts @@ -10,11 +10,11 @@ namespace ts.refactor.convertToOptionalChainExpression { }; registerRefactor(refactorName, { kinds: [toOptionalChainAction.kind], - getAvailableActions, - getEditsForAction + getEditsForAction: getRefactorEditsToConvertToOptionalChain, + getAvailableActions: getRefactorActionsToConvertToOptionalChain, }); - function getAvailableActions(context: RefactorContext): readonly ApplicableRefactorInfo[] { + function getRefactorActionsToConvertToOptionalChain(context: RefactorContext): readonly ApplicableRefactorInfo[] { const info = getInfo(context, context.triggerReason === "invoked"); if (!info) return emptyArray; @@ -36,7 +36,7 @@ namespace ts.refactor.convertToOptionalChainExpression { return emptyArray; } - function getEditsForAction(context: RefactorContext, actionName: string): RefactorEditInfo | undefined { + function getRefactorEditsToConvertToOptionalChain(context: RefactorContext, actionName: string): RefactorEditInfo | undefined { const info = getInfo(context); Debug.assert(info && !isRefactorErrorInfo(info), "Expected applicable refactor info"); const edits = textChanges.ChangeTracker.with(context, t => diff --git a/src/services/refactors/extractSymbol.ts b/src/services/refactors/extractSymbol.ts index 6490fde538708..36571bbf1c18a 100644 --- a/src/services/refactors/extractSymbol.ts +++ b/src/services/refactors/extractSymbol.ts @@ -17,15 +17,15 @@ namespace ts.refactor.extractSymbol { extractConstantAction.kind, extractFunctionAction.kind ], - getAvailableActions, - getEditsForAction + getEditsForAction: getRefactorEditsToExtractSymbol, + getAvailableActions: getRefactorActionsToExtractSymbol, }); /** * Compute the associated code actions * Exported for tests. */ - export function getAvailableActions(context: RefactorContext): readonly ApplicableRefactorInfo[] { + export function getRefactorActionsToExtractSymbol(context: RefactorContext): readonly ApplicableRefactorInfo[] { const requestedRefactor = context.kind; const rangeToExtract = getRangeToExtract(context.file, getRefactorContextSpan(context), context.triggerReason === "invoked"); const targetRange = rangeToExtract.targetRange; @@ -168,7 +168,7 @@ namespace ts.refactor.extractSymbol { } /* Exported for tests */ - export function getEditsForAction(context: RefactorContext, actionName: string): RefactorEditInfo | undefined { + export function getRefactorEditsToExtractSymbol(context: RefactorContext, actionName: string): RefactorEditInfo | undefined { const rangeToExtract = getRangeToExtract(context.file, getRefactorContextSpan(context)); const targetRange = rangeToExtract.targetRange!; // TODO:GH#18217 @@ -283,7 +283,7 @@ namespace ts.refactor.extractSymbol { // Walk up starting from the the start position until we find a non-SourceFile node that subsumes the selected span. // This may fail (e.g. you select two statements in the root of a source file) - const start = cursorRequest ? getExtractableParent(startToken): getParentNodeInSpan(startToken, sourceFile, adjustedSpan); + const start = cursorRequest ? getExtractableParent(startToken) : getParentNodeInSpan(startToken, sourceFile, adjustedSpan); // Do the same for the ending position const end = cursorRequest ? start : getParentNodeInSpan(endToken, sourceFile, adjustedSpan); @@ -299,7 +299,7 @@ namespace ts.refactor.extractSymbol { return { errors: [createFileDiagnostic(sourceFile, span.start, length, Messages.cannotExtractRange)] }; } - if (isJSDoc(start)) { + if (start.flags & NodeFlags.JSDoc) { return { errors: [createFileDiagnostic(sourceFile, span.start, length, Messages.cannotExtractJSDoc)] }; } @@ -314,8 +314,7 @@ namespace ts.refactor.extractSymbol { return { errors: [createFileDiagnostic(sourceFile, span.start, length, Messages.cannotExtractRange)] }; } const statements: Statement[] = []; - const start2 = start; // TODO: GH#18217 Need to alias `start` to get this to compile. See https://github.com/Microsoft/TypeScript/issues/19955#issuecomment-344118248 - for (const statement of (start2.parent as BlockLike).statements) { + for (const statement of start.parent.statements) { if (statement === start || statements.length) { const errors = checkNode(statement); if (errors) { @@ -364,10 +363,11 @@ namespace ts.refactor.extractSymbol { return node.expression; } } - else if (isVariableStatement(node)) { + else if (isVariableStatement(node) || isVariableDeclarationList(node)) { + const declarations = isVariableStatement(node) ? node.declarationList.declarations : node.declarations; let numInitializers = 0; let lastInitializer: Expression | undefined; - for (const declaration of node.declarationList.declarations) { + for (const declaration of declarations) { if (declaration.initializer) { numInitializers++; lastInitializer = declaration.initializer; @@ -383,7 +383,6 @@ namespace ts.refactor.extractSymbol { return node.initializer; } } - return node; } @@ -434,7 +433,7 @@ namespace ts.refactor.extractSymbol { // For understanding how skipTrivia functioned: Debug.assert(!positionIsSynthesized(nodeToCheck.pos), "This failure could trigger https://github.com/Microsoft/TypeScript/issues/20809 (2)"); - if (!isStatement(nodeToCheck) && !(isExpressionNode(nodeToCheck) && isExtractableExpression(nodeToCheck))) { + if (!isStatement(nodeToCheck) && !(isExpressionNode(nodeToCheck) && isExtractableExpression(nodeToCheck)) && !isStringLiteralJsxAttribute(nodeToCheck)) { return [createDiagnosticForNode(nodeToCheck, Messages.statementOrExpressionExpected)]; } @@ -487,8 +486,8 @@ namespace ts.refactor.extractSymbol { // but a super *method call* simply implies a 'this' reference if (node.parent.kind === SyntaxKind.CallExpression) { // Super constructor call - const containingClass = getContainingClass(node)!; // TODO:GH#18217 - if (containingClass.pos < span.start || containingClass.end >= (span.start + span.length)) { + const containingClass = getContainingClass(node); + if (containingClass === undefined || containingClass.pos < span.start || containingClass.end >= (span.start + span.length)) { (errors ||= []).push(createDiagnosticForNode(node, Messages.cannotExtractSuper)); return true; } @@ -626,13 +625,16 @@ namespace ts.refactor.extractSymbol { if (isStatement(node)) { return [node]; } - else if (isExpressionNode(node)) { + if (isExpressionNode(node)) { // If our selection is the expression in an ExpressionStatement, expand // the selection to include the enclosing Statement (this stops us // from trying to care about the return value of the extracted function // and eliminates double semicolon insertion in certain scenarios) return isExpressionStatement(node.parent) ? [node.parent] : node as Expression; } + if (isStringLiteralJsxAttribute(node)) { + return node; + } return undefined; } @@ -1134,7 +1136,9 @@ namespace ts.refactor.extractSymbol { // Make a unique name for the extracted variable const file = scope.getSourceFile(); - const localNameText = getUniqueName(isClassLike(scope) ? "newProperty" : "newLocal", file); + const localNameText = isPropertyAccessExpression(node) && !isClassLike(scope) && !checker.resolveName(node.name.text, node, SymbolFlags.Value, /*excludeGlobals*/ false) && !isPrivateIdentifier(node.name) && !isKeyword(node.name.originalKeywordKind!) + ? node.name.text + : getUniqueName(isClassLike(scope) ? "newProperty" : "newLocal", file); const isJS = isInJSFile(scope); let variableType = isJS || !checker.isContextSensitive(node) @@ -1650,7 +1654,7 @@ namespace ts.refactor.extractSymbol { // Unfortunately, this code takes advantage of the knowledge that the generated method // will use the contextual type of an expression as the return type of the extracted // method (and will therefore "use" all the types involved). - if (inGenericContext && !isReadonlyArray(targetRange.range)) { + if (inGenericContext && !isReadonlyArray(targetRange.range) && !isJsxAttribute(targetRange.range)) { const contextualType = checker.getContextualType(targetRange.range)!; // TODO: GH#18217 recordTypeParameterUsages(contextualType); } @@ -1998,6 +2002,11 @@ namespace ts.refactor.extractSymbol { } function isInJSXContent(node: Node) { - return (isJsxElement(node) || isJsxSelfClosingElement(node) || isJsxFragment(node)) && (isJsxElement(node.parent) || isJsxFragment(node.parent)); + return isStringLiteralJsxAttribute(node) || + (isJsxElement(node) || isJsxSelfClosingElement(node) || isJsxFragment(node)) && (isJsxElement(node.parent) || isJsxFragment(node.parent)); + } + + function isStringLiteralJsxAttribute(node: Node): node is StringLiteral { + return isStringLiteral(node) && node.parent && isJsxAttribute(node.parent); } } diff --git a/src/services/refactors/extractType.ts b/src/services/refactors/extractType.ts index 549ff99f4d7ac..c785160ad80d2 100644 --- a/src/services/refactors/extractType.ts +++ b/src/services/refactors/extractType.ts @@ -24,7 +24,7 @@ namespace ts.refactor { extractToInterfaceAction.kind, extractToTypeDefAction.kind ], - getAvailableActions(context): readonly ApplicableRefactorInfo[] { + getAvailableActions: function getRefactorActionsToExtractType(context): readonly ApplicableRefactorInfo[] { const info = getRangeToExtract(context, context.triggerReason === "invoked"); if (!info) return emptyArray; @@ -51,7 +51,7 @@ namespace ts.refactor { return emptyArray; }, - getEditsForAction(context, actionName): RefactorEditInfo { + getEditsForAction: function getRefactorEditsToExtractType(context, actionName): RefactorEditInfo { const { file, } = context; const info = getRangeToExtract(context); Debug.assert(info && !isRefactorErrorInfo(info), "Expected to find a range to extract"); @@ -144,11 +144,20 @@ namespace ts.refactor { function visitor(node: Node): true | undefined { if (isTypeReferenceNode(node)) { if (isIdentifier(node.typeName)) { - const symbol = checker.resolveName(node.typeName.text, node.typeName, SymbolFlags.TypeParameter, /* excludeGlobals */ true); - if (symbol?.declarations) { - const declaration = cast(first(symbol.declarations), isTypeParameterDeclaration); - if (rangeContainsSkipTrivia(statement, declaration, file) && !rangeContainsSkipTrivia(selection, declaration, file)) { - pushIfUnique(result, declaration); + const typeName = node.typeName; + const symbol = checker.resolveName(typeName.text, typeName, SymbolFlags.TypeParameter, /* excludeGlobals */ true); + for (const decl of symbol?.declarations || emptyArray) { + if (isTypeParameterDeclaration(decl) && decl.getSourceFile() === file) { + // skip extraction if the type node is in the range of the type parameter declaration. + // function foo(): void; + if (decl.name.escapedText === typeName.escapedText && rangeContainsSkipTrivia(decl, selection, file)) { + return true; + } + + if (rangeContainsSkipTrivia(statement, decl, file) && !rangeContainsSkipTrivia(selection, decl, file)) { + pushIfUnique(result, decl); + break; + } } } } @@ -194,7 +203,7 @@ namespace ts.refactor { /* decorators */ undefined, /* modifiers */ undefined, name, - typeParameters.map(id => factory.updateTypeParameterDeclaration(id, id.name, id.constraint, /* defaultType */ undefined)), + typeParameters.map(id => factory.updateTypeParameterDeclaration(id, id.modifiers, id.name, id.constraint, /* defaultType */ undefined)), selection ); changes.insertNodeBefore(file, firstStatement, ignoreSourceNewlines(newTypeNode), /* blankLineBetween */ true); @@ -228,7 +237,7 @@ namespace ts.refactor { const templates: JSDocTemplateTag[] = []; forEach(typeParameters, typeParameter => { const constraint = getEffectiveConstraintOfTypeParameter(typeParameter); - const parameter = factory.createTypeParameterDeclaration(typeParameter.name); + const parameter = factory.createTypeParameterDeclaration(/*modifiers*/ undefined, typeParameter.name); const template = factory.createJSDocTemplateTag( factory.createIdentifier("template"), constraint && cast(constraint, isJSDocTypeExpression), diff --git a/src/services/refactors/generateGetAccessorAndSetAccessor.ts b/src/services/refactors/generateGetAccessorAndSetAccessor.ts index 76de5a7f4eaff..70f1da47dfc8e 100644 --- a/src/services/refactors/generateGetAccessorAndSetAccessor.ts +++ b/src/services/refactors/generateGetAccessorAndSetAccessor.ts @@ -10,7 +10,7 @@ namespace ts.refactor.generateGetAccessorAndSetAccessor { }; registerRefactor(actionName, { kinds: [generateGetSetAction.kind], - getEditsForAction(context, actionName) { + getEditsForAction: function getRefactorActionsToGenerateGetAndSetAccessors(context, actionName) { if (!context.endPosition) return undefined; const info = codefix.getAccessorConvertiblePropertyAtPosition(context.file, context.program, context.startPosition, context.endPosition); Debug.assert(info && !isRefactorErrorInfo(info), "Expected applicable refactor info"); diff --git a/src/services/refactors/inferFunctionReturnType.ts b/src/services/refactors/inferFunctionReturnType.ts index 919aaf5413dfa..f2e4a8f66edc1 100644 --- a/src/services/refactors/inferFunctionReturnType.ts +++ b/src/services/refactors/inferFunctionReturnType.ts @@ -10,11 +10,11 @@ namespace ts.refactor.inferFunctionReturnType { }; registerRefactor(refactorName, { kinds: [inferReturnTypeAction.kind], - getEditsForAction, - getAvailableActions + getEditsForAction: getRefactorEditsToInferReturnType, + getAvailableActions: getRefactorActionsToInferReturnType }); - function getEditsForAction(context: RefactorContext): RefactorEditInfo | undefined { + function getRefactorEditsToInferReturnType(context: RefactorContext): RefactorEditInfo | undefined { const info = getInfo(context); if (info && !isRefactorErrorInfo(info)) { const edits = textChanges.ChangeTracker.with(context, t => doChange(context.file, t, info.declaration, info.returnTypeNode)); @@ -23,7 +23,7 @@ namespace ts.refactor.inferFunctionReturnType { return undefined; } - function getAvailableActions(context: RefactorContext): readonly ApplicableRefactorInfo[] { + function getRefactorActionsToInferReturnType(context: RefactorContext): readonly ApplicableRefactorInfo[] { const info = getInfo(context); if (!info) return emptyArray; if (!isRefactorErrorInfo(info)) { diff --git a/src/services/refactors/moveToNewFile.ts b/src/services/refactors/moveToNewFile.ts index 271a08b20f4ab..2e96d5aa95b4f 100644 --- a/src/services/refactors/moveToNewFile.ts +++ b/src/services/refactors/moveToNewFile.ts @@ -10,7 +10,7 @@ namespace ts.refactor { }; registerRefactor(refactorName, { kinds: [moveToNewFileAction.kind], - getAvailableActions(context): readonly ApplicableRefactorInfo[] { + getAvailableActions: function getRefactorActionsToMoveToNewFile(context): readonly ApplicableRefactorInfo[] { const statements = getStatementsToMove(context); if (context.preferences.allowTextChangesInNewFiles && statements) { return [{ name: refactorName, description, actions: [moveToNewFileAction] }]; @@ -22,7 +22,7 @@ namespace ts.refactor { } return emptyArray; }, - getEditsForAction(context, actionName): RefactorEditInfo { + getEditsForAction: function getRefactorEditsToMoveToNewFile(context, actionName): RefactorEditInfo { Debug.assert(actionName === refactorName, "Wrong refactor invoked"); const statements = Debug.checkDefined(getStatementsToMove(context)); const edits = textChanges.ChangeTracker.with(context, t => doChange(context.file, context.program, statements, t, context.host, context.preferences)); @@ -473,7 +473,7 @@ namespace ts.refactor { let newModuleName = moduleName; for (let i = 1; ; i++) { const name = combinePaths(inDirectory, newModuleName + extension); - if (!host.fileExists!(name)) return newModuleName; // TODO: GH#18217 + if (!host.fileExists(name)) return newModuleName; newModuleName = `${moduleName}.${i}`; } } diff --git a/src/services/services.ts b/src/services/services.ts index b04052a29c0b6..efb31f257970e 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -299,6 +299,9 @@ namespace ts { contextualGetAccessorDocumentationComment?: SymbolDisplayPart[]; contextualSetAccessorDocumentationComment?: SymbolDisplayPart[]; + contextualGetAccessorTags?: JSDocTagInfo[]; + contextualSetAccessorTags?: JSDocTagInfo[]; + constructor(flags: SymbolFlags, name: __String) { this.flags = flags; this.escapedName = name; @@ -343,13 +346,11 @@ namespace ts { switch (context?.kind) { case SyntaxKind.GetAccessor: if (!this.contextualGetAccessorDocumentationComment) { - this.contextualGetAccessorDocumentationComment = emptyArray; this.contextualGetAccessorDocumentationComment = getDocumentationComment(filter(this.declarations, isGetAccessor), checker); } return this.contextualGetAccessorDocumentationComment; case SyntaxKind.SetAccessor: if (!this.contextualSetAccessorDocumentationComment) { - this.contextualSetAccessorDocumentationComment = emptyArray; this.contextualSetAccessorDocumentationComment = getDocumentationComment(filter(this.declarations, isSetAccessor), checker); } return this.contextualSetAccessorDocumentationComment; @@ -360,11 +361,28 @@ namespace ts { getJsDocTags(checker?: TypeChecker): JSDocTagInfo[] { if (this.tags === undefined) { - this.tags = JsDoc.getJsDocTagsFromDeclarations(this.declarations, checker); + this.tags = getJsDocTagsOfDeclarations(this.declarations, checker); } return this.tags; } + + getContextualJsDocTags(context: Node | undefined, checker: TypeChecker | undefined): JSDocTagInfo[] { + switch (context?.kind) { + case SyntaxKind.GetAccessor: + if (!this.contextualGetAccessorTags) { + this.contextualGetAccessorTags = getJsDocTagsOfDeclarations(filter(this.declarations, isGetAccessor), checker); + } + return this.contextualGetAccessorTags; + case SyntaxKind.SetAccessor: + if (!this.contextualSetAccessorTags) { + this.contextualSetAccessorTags = getJsDocTagsOfDeclarations(filter(this.declarations, isSetAccessor), checker); + } + return this.contextualSetAccessorTags; + default: + return this.getJsDocTags(checker); + } + } } class TokenObject extends TokenOrIdentifierObject implements Token { @@ -500,6 +518,9 @@ namespace ts { isClass(): this is InterfaceType { return !!(getObjectFlags(this) & ObjectFlags.Class); } + isIndexType(): this is IndexType { + return !!(this.flags & TypeFlags.Index); + } /** * This polyfills `referenceType.typeArguments` for API consumers */ @@ -545,16 +566,23 @@ namespace ts { getReturnType(): Type { return this.checker.getReturnTypeOfSignature(this); } + getTypeParameterAtPosition(pos: number): Type { + const type = this.checker.getParameterType(this, pos); + if (type.isIndexType() && isThisTypeParameter(type.type)) { + const constraint = type.type.getConstraint(); + if (constraint) { + return this.checker.getIndexType(constraint); + } + } + return type; + } getDocumentationComment(): SymbolDisplayPart[] { return this.documentationComment || (this.documentationComment = getDocumentationComment(singleElementArray(this.declaration), this.checker)); } getJsDocTags(): JSDocTagInfo[] { - if (this.jsDocTags === undefined) { - this.jsDocTags = this.declaration ? getJsDocTagsOfSignature(this.declaration, this.checker) : []; - } - return this.jsDocTags; + return this.jsDocTags || (this.jsDocTags = getJsDocTagsOfDeclarations(singleElementArray(this.declaration), this.checker)); } } @@ -567,12 +595,25 @@ namespace ts { return getJSDocTags(node).some(tag => tag.tagName.text === "inheritDoc"); } - function getJsDocTagsOfSignature(declaration: Declaration, checker: TypeChecker): JSDocTagInfo[] { - let tags = JsDoc.getJsDocTagsFromDeclarations([declaration], checker); - if (tags.length === 0 || hasJSDocInheritDocTag(declaration)) { - const inheritedTags = findBaseOfDeclaration(checker, declaration, symbol => symbol.declarations?.length === 1 ? symbol.getJsDocTags() : undefined); - if (inheritedTags) { - tags = [...inheritedTags, ...tags]; + function getJsDocTagsOfDeclarations(declarations: Declaration[] | undefined, checker: TypeChecker | undefined): JSDocTagInfo[] { + if (!declarations) return emptyArray; + + let tags = JsDoc.getJsDocTagsFromDeclarations(declarations, checker); + if (checker && (tags.length === 0 || declarations.some(hasJSDocInheritDocTag))) { + const seenSymbols = new Set(); + for (const declaration of declarations) { + const inheritedTags = findBaseOfDeclaration(checker, declaration, symbol => { + if (!seenSymbols.has(symbol)) { + seenSymbols.add(symbol); + if (declaration.kind === SyntaxKind.GetAccessor || declaration.kind === SyntaxKind.SetAccessor) { + return symbol.getContextualJsDocTags(declaration, checker); + } + return symbol.declarations?.length === 1 ? symbol.getJsDocTags() : undefined; + } + }); + if (inheritedTags) { + tags = [...inheritedTags, ...tags]; + } } } return tags; @@ -588,6 +629,9 @@ namespace ts { const inheritedDocs = findBaseOfDeclaration(checker, declaration, symbol => { if (!seenSymbols.has(symbol)) { seenSymbols.add(symbol); + if (declaration.kind === SyntaxKind.GetAccessor || declaration.kind === SyntaxKind.SetAccessor) { + return symbol.getContextualDocumentationComment(declaration, checker); + } return symbol.getDocumentationComment(checker); } }); @@ -599,10 +643,11 @@ namespace ts { } function findBaseOfDeclaration(checker: TypeChecker, declaration: Declaration, cb: (symbol: Symbol) => T[] | undefined): T[] | undefined { + if (hasStaticModifier(declaration)) return; + const classOrInterfaceDeclaration = declaration.parent?.kind === SyntaxKind.Constructor ? declaration.parent.parent : declaration.parent; - if (!classOrInterfaceDeclaration) { - return; - } + if (!classOrInterfaceDeclaration) return; + return firstDefined(getAllSuperTypeNodes(classOrInterfaceDeclaration), superTypeNode => { const symbol = checker.getPropertyOfType(checker.getTypeAtLocation(superTypeNode), declaration.symbol.name); return symbol ? cb(symbol) : undefined; @@ -959,9 +1004,11 @@ namespace ts { // Initialize the list with the root file names const rootFileNames = host.getScriptFileNames(); + tracing?.push(tracing.Phase.Session, "initializeHostCache", { count: rootFileNames.length }); for (const fileName of rootFileNames) { this.createEntry(fileName, toPath(fileName, this.currentDirectory, getCanonicalFileName)); } + tracing?.pop(); } private createEntry(fileName: string, path: Path) { @@ -1040,7 +1087,17 @@ namespace ts { if (this.currentFileName !== fileName) { // This is a new file, just parse it - sourceFile = createLanguageServiceSourceFile(fileName, scriptSnapshot, ScriptTarget.Latest, version, /*setNodeParents*/ true, scriptKind); + const options: CreateSourceFileOptions = { + languageVersion: ScriptTarget.Latest, + impliedNodeFormat: getImpliedNodeFormatForFile( + toPath(fileName, this.host.getCurrentDirectory(), this.host.getCompilerHost?.()?.getCanonicalFileName || hostGetCanonicalFileName(this.host)), + this.host.getCompilerHost?.()?.getModuleResolutionCache?.()?.getPackageJsonInfoCache(), + this.host, + this.host.getCompilationSettings() + ), + setExternalModuleIndicator: getSetExternalModuleIndicator(this.host.getCompilationSettings()) + }; + sourceFile = createLanguageServiceSourceFile(fileName, scriptSnapshot, options, version, /*setNodeParents*/ true, scriptKind); } else if (this.currentFileVersion !== version) { // This is the same file, just a newer version. Incrementally parse the file. @@ -1065,8 +1122,8 @@ namespace ts { sourceFile.scriptSnapshot = scriptSnapshot; } - export function createLanguageServiceSourceFile(fileName: string, scriptSnapshot: IScriptSnapshot, scriptTarget: ScriptTarget, version: string, setNodeParents: boolean, scriptKind?: ScriptKind): SourceFile { - const sourceFile = createSourceFile(fileName, getSnapshotText(scriptSnapshot), scriptTarget, setNodeParents, scriptKind); + export function createLanguageServiceSourceFile(fileName: string, scriptSnapshot: IScriptSnapshot, scriptTargetOrOptions: ScriptTarget | CreateSourceFileOptions, version: string, setNodeParents: boolean, scriptKind?: ScriptKind): SourceFile { + const sourceFile = createSourceFile(fileName, getSnapshotText(scriptSnapshot), scriptTargetOrOptions, setNodeParents, scriptKind); setSourceFileFields(sourceFile, scriptSnapshot, version); return sourceFile; } @@ -1122,8 +1179,13 @@ namespace ts { } } + const options: CreateSourceFileOptions = { + languageVersion: sourceFile.languageVersion, + impliedNodeFormat: sourceFile.impliedNodeFormat, + setExternalModuleIndicator: sourceFile.setExternalModuleIndicator, + }; // Otherwise, just create a new source file. - return createLanguageServiceSourceFile(sourceFile.fileName, scriptSnapshot, sourceFile.languageVersion, version, /*setNodeParents*/ true, sourceFile.scriptKind); + return createLanguageServiceSourceFile(sourceFile.fileName, scriptSnapshot, options, version, /*setNodeParents*/ true, sourceFile.scriptKind); } const NoopCancellationToken: CancellationToken = { @@ -1245,10 +1307,9 @@ namespace ts { : NoopCancellationToken; const currentDirectory = host.getCurrentDirectory(); - // Check if the localized messages json is set, otherwise query the host for it - if (!localizedDiagnosticMessages && host.getLocalizedDiagnosticMessages) { - setLocalizedDiagnosticMessages(host.getLocalizedDiagnosticMessages()); - } + + // Checks if the localized messages json is set, and if not, query the host for it + maybeSetLocalizedDiagnosticMessages(host.getLocalizedDiagnosticMessages?.bind(host)); function log(message: string) { if (host.log) { @@ -1362,6 +1423,7 @@ namespace ts { hasChangedAutomaticTypeDirectiveNames, trace: parseConfigHost.trace, resolveModuleNames: maybeBind(host, host.resolveModuleNames), + getModuleResolutionCache: maybeBind(host, host.getModuleResolutionCache), resolveTypeReferenceDirectives: maybeBind(host, host.resolveTypeReferenceDirectives), useSourceOfProjectReferenceRedirect: maybeBind(host, host.useSourceOfProjectReferenceRedirect), getParsedCommandLine, @@ -1506,7 +1568,7 @@ namespace ts { // file's script kind, i.e. in one project some file is treated as ".ts" // and in another as ".js" if (hostFileInformation.scriptKind === oldSourceFile.scriptKind) { - return documentRegistry.updateDocumentWithKey(fileName, path, newSettings, documentRegistryBucketKey, hostFileInformation.scriptSnapshot, hostFileInformation.version, hostFileInformation.scriptKind); + return documentRegistry.updateDocumentWithKey(fileName, path, host, documentRegistryBucketKey, hostFileInformation.scriptSnapshot, hostFileInformation.version, hostFileInformation.scriptKind); } else { // Release old source file and fall through to aquire new file with new script kind @@ -1518,7 +1580,7 @@ namespace ts { } // Could not find this file in the old program, create a new SourceFile for it. - return documentRegistry.acquireDocumentWithKey(fileName, path, newSettings, documentRegistryBucketKey, hostFileInformation.scriptSnapshot, hostFileInformation.version, hostFileInformation.scriptKind); + return documentRegistry.acquireDocumentWithKey(fileName, path, host, documentRegistryBucketKey, hostFileInformation.scriptSnapshot, hostFileInformation.version, hostFileInformation.scriptKind); } } @@ -1592,7 +1654,7 @@ namespace ts { return [...program.getOptionsDiagnostics(cancellationToken), ...program.getGlobalDiagnostics(cancellationToken)]; } - function getCompletionsAtPosition(fileName: string, position: number, options: GetCompletionsAtPositionOptions = emptyOptions): CompletionInfo | undefined { + function getCompletionsAtPosition(fileName: string, position: number, options: GetCompletionsAtPositionOptions = emptyOptions, formattingSettings?: FormatCodeSettings): CompletionInfo | undefined { // Convert from deprecated options names to new names const fullPreferences: UserPreferences = { ...identity(options), // avoid excess property check @@ -1609,7 +1671,8 @@ namespace ts { fullPreferences, options.triggerCharacter, options.triggerKind, - cancellationToken); + cancellationToken, + formattingSettings && formatting.getFormatContext(formattingSettings, host)); } function getCompletionEntryDetails(fileName: string, position: number, name: string, formattingOptions: FormatCodeSettings | undefined, source: string | undefined, preferences: UserPreferences = emptyOptions, data?: CompletionEntryData): CompletionEntryDetails | undefined { @@ -1678,6 +1741,9 @@ namespace ts { if (isNamedTupleMember(node.parent) && node.pos === node.parent.pos) { return node.parent; } + if (isImportMeta(node.parent) && node.parent.name === node) { + return node.parent; + } return node; } @@ -1694,6 +1760,8 @@ namespace ts { case SyntaxKind.SuperKeyword: case SyntaxKind.NamedTupleMember: return true; + case SyntaxKind.MetaProperty: + return isImportMeta(node); default: return false; } @@ -2590,7 +2658,7 @@ namespace ts { return declaration ? CallHierarchy.getOutgoingCalls(program, declaration) : []; } - function provideInlayHints(fileName: string, span: TextSpan, preferences: InlayHintsOptions = emptyOptions): InlayHint[] { + function provideInlayHints(fileName: string, span: TextSpan, preferences: UserPreferences = emptyOptions): InlayHint[] { synchronizeHostData(); const sourceFile = getValidSourceFile(fileName); return InlayHints.provideInlayHints(getInlayHintsContext(sourceFile, span, preferences)); diff --git a/src/services/shims.ts b/src/services/shims.ts index 942e943f68f2c..cc09074aad563 100644 --- a/src/services/shims.ts +++ b/src/services/shims.ts @@ -151,7 +151,7 @@ namespace ts { getEncodedSyntacticClassifications(fileName: string, start: number, length: number): string; getEncodedSemanticClassifications(fileName: string, start: number, length: number, format?: SemanticClassificationFormat): string; - getCompletionsAtPosition(fileName: string, position: number, preferences: UserPreferences | undefined): string; + getCompletionsAtPosition(fileName: string, position: number, preferences: UserPreferences | undefined, formattingSettings: FormatCodeSettings | undefined): string; getCompletionEntryDetails(fileName: string, position: number, entryName: string, formatOptions: string/*Services.FormatCodeOptions*/ | undefined, source: string | undefined, preferences: UserPreferences | undefined, data: CompletionEntryData | undefined): string; getQuickInfoAtPosition(fileName: string, position: number): string; @@ -282,7 +282,7 @@ namespace ts { prepareCallHierarchy(fileName: string, position: number): string; provideCallHierarchyIncomingCalls(fileName: string, position: number): string; provideCallHierarchyOutgoingCalls(fileName: string, position: number): string; - provideInlayHints(fileName: string, span: TextSpan, preference: InlayHintsOptions | undefined): string; + provideInlayHints(fileName: string, span: TextSpan, preference: UserPreferences | undefined): string; getEmitOutput(fileName: string): string; getEmitOutputObject(fileName: string): EmitOutput; @@ -351,7 +351,7 @@ namespace ts { private tracingEnabled = false; public resolveModuleNames: ((moduleName: string[], containingFile: string) => (ResolvedModuleFull | undefined)[]) | undefined; - public resolveTypeReferenceDirectives: ((typeDirectiveNames: string[], containingFile: string) => (ResolvedTypeReferenceDirective | undefined)[]) | undefined; + public resolveTypeReferenceDirectives: ((typeDirectiveNames: string[] | readonly FileReference[], containingFile: string) => (ResolvedTypeReferenceDirective | undefined)[]) | undefined; public directoryExists: ((directoryName: string) => boolean) | undefined; constructor(private shimHost: LanguageServiceShimHost) { @@ -372,7 +372,7 @@ namespace ts { if ("getTypeReferenceDirectiveResolutionsForFile" in this.shimHost) { this.resolveTypeReferenceDirectives = (typeDirectiveNames, containingFile) => { const typeDirectivesForFile = JSON.parse(this.shimHost.getTypeReferenceDirectiveResolutionsForFile!(containingFile)) as MapLike; // TODO: GH#18217 - return map(typeDirectiveNames, name => getProperty(typeDirectivesForFile, name)); + return map(typeDirectiveNames as (string | FileReference)[], name => getProperty(typeDirectivesForFile, isString(name) ? name : name.fileName.toLowerCase())); }; } } @@ -554,7 +554,7 @@ namespace ts { } } - function simpleForwardCall(logger: Logger, actionDescription: string, action: () => {}, logPerformance: boolean): {} { + function simpleForwardCall(logger: Logger, actionDescription: string, action: () => unknown, logPerformance: boolean): unknown { let start: number | undefined; if (logPerformance) { logger.log(actionDescription); @@ -956,10 +956,10 @@ namespace ts { * to provide at the given source position and providing a member completion * list if requested. */ - public getCompletionsAtPosition(fileName: string, position: number, preferences: GetCompletionsAtPositionOptions | undefined) { + public getCompletionsAtPosition(fileName: string, position: number, preferences: GetCompletionsAtPositionOptions | undefined, formattingSettings: FormatCodeSettings | undefined) { return this.forwardJSONCall( - `getCompletionsAtPosition('${fileName}', ${position}, ${preferences})`, - () => this.languageService.getCompletionsAtPosition(fileName, position, preferences) + `getCompletionsAtPosition('${fileName}', ${position}, ${preferences}, ${formattingSettings})`, + () => this.languageService.getCompletionsAtPosition(fileName, position, preferences, formattingSettings) ); } @@ -1069,7 +1069,7 @@ namespace ts { ); } - public provideInlayHints(fileName: string, span: TextSpan, preference: InlayHintsOptions | undefined): string { + public provideInlayHints(fileName: string, span: TextSpan, preference: UserPreferences | undefined): string { return this.forwardJSONCall( `provideInlayHints('${fileName}', '${JSON.stringify(span)}', ${JSON.stringify(preference)})`, () => this.languageService.provideInlayHints(fileName, span, preference) diff --git a/src/services/signatureHelp.ts b/src/services/signatureHelp.ts index ea72661a8687c..e26b0f49425b8 100644 --- a/src/services/signatureHelp.ts +++ b/src/services/signatureHelp.ts @@ -169,12 +169,12 @@ namespace ts.SignatureHelp { : { invocation: info.invocation.node, argumentCount: info.argumentCount, argumentIndex: info.argumentIndex }; } - function getArgumentOrParameterListInfo(node: Node, sourceFile: SourceFile): { readonly list: Node, readonly argumentIndex: number, readonly argumentCount: number, readonly argumentsSpan: TextSpan } | undefined { + function getArgumentOrParameterListInfo(node: Node, position: number, sourceFile: SourceFile): { readonly list: Node, readonly argumentIndex: number, readonly argumentCount: number, readonly argumentsSpan: TextSpan } | undefined { const info = getArgumentOrParameterListAndIndex(node, sourceFile); if (!info) return undefined; const { list, argumentIndex } = info; - const argumentCount = getArgumentCount(list); + const argumentCount = getArgumentCount(list, /*ignoreTrailingComma*/ isInString(sourceFile, position, node)); if (argumentIndex !== 0) { Debug.assertLessThan(argumentIndex, argumentCount); } @@ -222,7 +222,7 @@ namespace ts.SignatureHelp { // Case 3: // foo(a#, #b#) -> The token is buried inside a list, and should give signature help // Find out if 'node' is an argument, a type argument, or neither - const info = getArgumentOrParameterListInfo(node, sourceFile); + const info = getArgumentOrParameterListInfo(node, position, sourceFile); if (!info) return undefined; const { list, argumentIndex, argumentCount, argumentsSpan } = info; const isTypeParameterList = !!parent.typeArguments && parent.typeArguments.pos === list.pos; @@ -299,8 +299,8 @@ namespace ts.SignatureHelp { return isBinaryExpression(b.left) ? countBinaryExpressionParameters(b.left) + 1 : 2; } - function tryGetParameterInfo(startingToken: Node, _position: number, sourceFile: SourceFile, checker: TypeChecker): ArgumentListInfo | undefined { - const info = getContextualSignatureLocationInfo(startingToken, sourceFile, checker); + function tryGetParameterInfo(startingToken: Node, position: number, sourceFile: SourceFile, checker: TypeChecker): ArgumentListInfo | undefined { + const info = getContextualSignatureLocationInfo(startingToken, sourceFile, position, checker); if (!info) return undefined; const { contextualType, argumentIndex, argumentCount, argumentsSpan } = info; @@ -315,7 +315,7 @@ namespace ts.SignatureHelp { } interface ContextualSignatureLocationInfo { readonly contextualType: Type; readonly argumentIndex: number; readonly argumentCount: number; readonly argumentsSpan: TextSpan; } - function getContextualSignatureLocationInfo(startingToken: Node, sourceFile: SourceFile, checker: TypeChecker): ContextualSignatureLocationInfo | undefined { + function getContextualSignatureLocationInfo(startingToken: Node, sourceFile: SourceFile, position: number, checker: TypeChecker): ContextualSignatureLocationInfo | undefined { if (startingToken.kind !== SyntaxKind.OpenParenToken && startingToken.kind !== SyntaxKind.CommaToken) return undefined; const { parent } = startingToken; switch (parent.kind) { @@ -323,7 +323,7 @@ namespace ts.SignatureHelp { case SyntaxKind.MethodDeclaration: case SyntaxKind.FunctionExpression: case SyntaxKind.ArrowFunction: - const info = getArgumentOrParameterListInfo(startingToken, sourceFile); + const info = getArgumentOrParameterListInfo(startingToken, position, sourceFile); if (!info) return undefined; const { argumentIndex, argumentCount, argumentsSpan } = info; const contextualType = isMethodDeclaration(parent) ? checker.getContextualTypeForObjectLiteralElement(parent) : checker.getContextualType(parent as ParenthesizedExpression | FunctionExpression | ArrowFunction); @@ -372,7 +372,7 @@ namespace ts.SignatureHelp { return argumentIndex; } - function getArgumentCount(argumentsList: Node) { + function getArgumentCount(argumentsList: Node, ignoreTrailingComma: boolean) { // The argument count for a list is normally the number of non-comma children it has. // For example, if you have "Foo(a,b)" then there will be three children of the arg // list 'a' '' 'b'. So, in this case the arg count will be 2. However, there @@ -387,10 +387,9 @@ namespace ts.SignatureHelp { const listChildren = argumentsList.getChildren(); let argumentCount = countWhere(listChildren, arg => arg.kind !== SyntaxKind.CommaToken); - if (listChildren.length > 0 && last(listChildren).kind === SyntaxKind.CommaToken) { + if (!ignoreTrailingComma && listChildren.length > 0 && last(listChildren).kind === SyntaxKind.CommaToken) { argumentCount++; } - return argumentCount; } diff --git a/src/services/stringCompletions.ts b/src/services/stringCompletions.ts index 91c886b189548..61f90c9817d7d 100644 --- a/src/services/stringCompletions.ts +++ b/src/services/stringCompletions.ts @@ -1,18 +1,35 @@ /* @internal */ namespace ts.Completions.StringCompletions { - export function getStringLiteralCompletions(sourceFile: SourceFile, position: number, contextToken: Node | undefined, checker: TypeChecker, options: CompilerOptions, host: LanguageServiceHost, log: Log, preferences: UserPreferences): CompletionInfo | undefined { + export function getStringLiteralCompletions( + sourceFile: SourceFile, + position: number, + contextToken: Node | undefined, + options: CompilerOptions, + host: LanguageServiceHost, + program: Program, + log: Log, + preferences: UserPreferences): CompletionInfo | undefined { if (isInReferenceComment(sourceFile, position)) { const entries = getTripleSlashReferenceCompletion(sourceFile, position, options, host); return entries && convertPathCompletions(entries); } if (isInString(sourceFile, position, contextToken)) { if (!contextToken || !isStringLiteralLike(contextToken)) return undefined; - const entries = getStringLiteralCompletionEntries(sourceFile, contextToken, position, checker, options, host, preferences); - return convertStringLiteralCompletions(entries, contextToken, sourceFile, checker, log, options, preferences); + const entries = getStringLiteralCompletionEntries(sourceFile, contextToken, position, program.getTypeChecker(), options, host, preferences); + return convertStringLiteralCompletions(entries, contextToken, sourceFile, host, program, log, options, preferences); } } - function convertStringLiteralCompletions(completion: StringLiteralCompletion | undefined, contextToken: StringLiteralLike, sourceFile: SourceFile, checker: TypeChecker, log: Log, options: CompilerOptions, preferences: UserPreferences): CompletionInfo | undefined { + function convertStringLiteralCompletions( + completion: StringLiteralCompletion | undefined, + contextToken: StringLiteralLike, + sourceFile: SourceFile, + host: LanguageServiceHost, + program: Program, + log: Log, + options: CompilerOptions, + preferences: UserPreferences, + ): CompletionInfo | undefined { if (completion === undefined) { return undefined; } @@ -22,7 +39,7 @@ namespace ts.Completions.StringCompletions { case StringLiteralCompletionKind.Paths: return convertPathCompletions(completion.paths); case StringLiteralCompletionKind.Properties: { - const entries: CompletionEntry[] = []; + const entries = createSortedArray(); getCompletionEntriesFromSymbols( completion.symbols, entries, @@ -30,12 +47,14 @@ namespace ts.Completions.StringCompletions { contextToken, sourceFile, sourceFile, - checker, + host, + program, ScriptTarget.ESNext, log, CompletionKind.String, preferences, options, + /*formatContext*/ undefined, ); // Target will not be used, so arbitrary return { isGlobalCompletion: false, isMemberCompletion: true, isNewIdentifierLocation: completion.hasIndexSignature, optionalReplacementSpan, entries }; } @@ -191,12 +210,13 @@ namespace ts.Completions.StringCompletions { case SyntaxKind.CallExpression: case SyntaxKind.NewExpression: + case SyntaxKind.JsxAttribute: if (!isRequireCallArgument(node) && !isImportCall(parent)) { - const argumentInfo = SignatureHelp.getArgumentInfoForCompletions(node, position, sourceFile); + const argumentInfo = SignatureHelp.getArgumentInfoForCompletions(parent.kind === SyntaxKind.JsxAttribute ? parent.parent : node, position, sourceFile); // Get string literal completions from specialized signatures of the target // i.e. declare function f(a: 'A'); // f("/*completion position*/") - return argumentInfo ? getStringLiteralCompletionsFromSignature(argumentInfo, typeChecker) : fromContextualType(); + return argumentInfo ? getStringLiteralCompletionsFromSignature(argumentInfo.invocation, node, argumentInfo, typeChecker) : fromContextualType(); } // falls through (is `require("")` or `require(""` or `import("")`) @@ -238,15 +258,21 @@ namespace ts.Completions.StringCompletions { type !== current && isLiteralTypeNode(type) && isStringLiteral(type.literal) ? type.literal.text : undefined); } - function getStringLiteralCompletionsFromSignature(argumentInfo: SignatureHelp.ArgumentInfoForCompletions, checker: TypeChecker): StringLiteralCompletionsFromTypes { + function getStringLiteralCompletionsFromSignature(call: CallLikeExpression, arg: StringLiteralLike, argumentInfo: SignatureHelp.ArgumentInfoForCompletions, checker: TypeChecker): StringLiteralCompletionsFromTypes { let isNewIdentifier = false; - const uniques = new Map(); const candidates: Signature[] = []; - checker.getResolvedSignature(argumentInfo.invocation, candidates, argumentInfo.argumentCount); + const editingArgument = isJsxOpeningLikeElement(call) ? Debug.checkDefined(findAncestor(arg.parent, isJsxAttribute)) : arg; + checker.getResolvedSignatureForStringLiteralCompletions(call, editingArgument, candidates); const types = flatMap(candidates, candidate => { if (!signatureHasRestParameter(candidate) && argumentInfo.argumentCount > candidate.parameters.length) return; - const type = checker.getParameterType(candidate, argumentInfo.argumentIndex); + let type = candidate.getTypeParameterAtPosition(argumentInfo.argumentIndex); + if (isJsxOpeningLikeElement(call)) { + const propType = checker.getTypeOfPropertyOfType(type, (editingArgument as JsxAttribute).name.text); + if (propType) { + type = propType; + } + } isNewIdentifier = isNewIdentifier || !!(type.flags & TypeFlags.String); return getStringLiteralTypes(type, uniques); }); @@ -349,9 +375,20 @@ namespace ts.Completions.StringCompletions { } } + function isEmitResolutionKindUsingNodeModules(compilerOptions: CompilerOptions): boolean { + return getEmitModuleResolutionKind(compilerOptions) === ModuleResolutionKind.NodeJs || + getEmitModuleResolutionKind(compilerOptions) === ModuleResolutionKind.Node12 || + getEmitModuleResolutionKind(compilerOptions) === ModuleResolutionKind.NodeNext; + } + + function isEmitModuleResolutionRespectingExportMaps(compilerOptions: CompilerOptions) { + return getEmitModuleResolutionKind(compilerOptions) === ModuleResolutionKind.Node12 || + getEmitModuleResolutionKind(compilerOptions) === ModuleResolutionKind.NodeNext; + } + function getSupportedExtensionsForModuleResolution(compilerOptions: CompilerOptions): readonly Extension[][] { const extensions = getSupportedExtensions(compilerOptions); - return getEmitModuleResolutionKind(compilerOptions) === ModuleResolutionKind.NodeJs ? + return isEmitResolutionKindUsingNodeModules(compilerOptions) ? getSupportedExtensionsWithJsonIfResolveJsonModule(compilerOptions, extensions) : extensions; } @@ -530,7 +567,7 @@ namespace ts.Completions.StringCompletions { getCompletionEntriesFromTypings(host, compilerOptions, scriptPath, fragmentDirectory, extensionOptions, result); - if (getEmitModuleResolutionKind(compilerOptions) === ModuleResolutionKind.NodeJs) { + if (isEmitResolutionKindUsingNodeModules(compilerOptions)) { // If looking for a global package name, don't just include everything in `node_modules` because that includes dependencies' own dependencies. // (But do if we didn't find anything, e.g. 'package.json' missing.) let foundGlobal = false; @@ -543,12 +580,65 @@ namespace ts.Completions.StringCompletions { } } if (!foundGlobal) { - forEachAncestorDirectory(scriptPath, ancestor => { + let ancestorLookup: (directory: string) => void | undefined = ancestor => { const nodeModules = combinePaths(ancestor, "node_modules"); if (tryDirectoryExists(host, nodeModules)) { getCompletionEntriesForDirectoryFragment(fragment, nodeModules, extensionOptions, host, /*exclude*/ undefined, result); } - }); + }; + if (fragmentDirectory && isEmitModuleResolutionRespectingExportMaps(compilerOptions)) { + const nodeModulesDirectoryLookup = ancestorLookup; + ancestorLookup = ancestor => { + const components = getPathComponents(fragment); + components.shift(); // shift off empty root + let packagePath = components.shift(); + if (!packagePath) { + return nodeModulesDirectoryLookup(ancestor); + } + if (startsWith(packagePath, "@")) { + const subName = components.shift(); + if (!subName) { + return nodeModulesDirectoryLookup(ancestor); + } + packagePath = combinePaths(packagePath, subName); + } + const packageFile = combinePaths(ancestor, "node_modules", packagePath, "package.json"); + if (tryFileExists(host, packageFile)) { + const packageJson = readJson(packageFile, host as { readFile: (filename: string) => string | undefined }); + const exports = (packageJson as any).exports; + if (exports) { + if (typeof exports !== "object" || exports === null) { // eslint-disable-line no-null/no-null + return; // null exports or entrypoint only, no sub-modules available + } + const keys = getOwnKeys(exports); + const fragmentSubpath = components.join("/"); + const processedKeys = mapDefined(keys, k => { + if (k === ".") return undefined; + if (!startsWith(k, "./")) return undefined; + const subpath = k.substring(2); + if (!startsWith(subpath, fragmentSubpath)) return undefined; + // subpath is a valid export (barring conditions, which we don't currently check here) + if (!stringContains(subpath, "*")) { + return subpath; + } + // pattern export - only return everything up to the `*`, so the user can autocomplete, then + // keep filling in the pattern (we could speculatively return a list of options by hitting disk, + // but conditions will make that somewhat awkward, as each condition may have a different set of possible + // options for the `*`. + return subpath.slice(0, subpath.indexOf("*")); + }); + forEach(processedKeys, k => { + if (k) { + result.push(nameAndKind(k, ScriptElementKind.externalModuleName, /*extension*/ undefined)); + } + }); + return; + } + } + return nodeModulesDirectoryLookup(ancestor); + }; + } + forEachAncestorDirectory(scriptPath, ancestorLookup); } } diff --git a/src/services/suggestionDiagnostics.ts b/src/services/suggestionDiagnostics.ts index 314d4d485b8f6..7be5d210b36ea 100644 --- a/src/services/suggestionDiagnostics.ts +++ b/src/services/suggestionDiagnostics.ts @@ -27,7 +27,7 @@ namespace ts { if (!name) continue; const module = getResolvedModule(sourceFile, moduleSpecifier.text, getModeForUsageLocation(sourceFile, moduleSpecifier)); const resolvedFile = module && program.getSourceFile(module.resolvedFileName); - if (resolvedFile && resolvedFile.externalModuleIndicator && isExportAssignment(resolvedFile.externalModuleIndicator) && resolvedFile.externalModuleIndicator.isExportEquals) { + if (resolvedFile && resolvedFile.externalModuleIndicator && resolvedFile.externalModuleIndicator !== true && isExportAssignment(resolvedFile.externalModuleIndicator) && resolvedFile.externalModuleIndicator.isExportEquals) { diags.push(createDiagnosticForNode(name, Diagnostics.Import_may_be_converted_to_a_default_import)); } } diff --git a/src/services/symbolDisplay.ts b/src/services/symbolDisplay.ts index 83508dbf9363d..973e28476b6a5 100644 --- a/src/services/symbolDisplay.ts +++ b/src/services/symbolDisplay.ts @@ -41,7 +41,7 @@ namespace ts.SymbolDisplay { if (typeChecker.isArgumentsSymbol(symbol)) { return ScriptElementKind.localVariableElement; } - if (location.kind === SyntaxKind.ThisKeyword && isExpression(location)) { + if (location.kind === SyntaxKind.ThisKeyword && isExpression(location) || isThisInTypeQuery(location)) { return ScriptElementKind.parameterElement; } const flags = getCombinedLocalAndExportSymbolFlags(symbol); @@ -58,6 +58,8 @@ namespace ts.SymbolDisplay { return isLocalVariableOrFunction(symbol) ? ScriptElementKind.localVariableElement : ScriptElementKind.variableElement; } if (flags & SymbolFlags.Function) return isLocalVariableOrFunction(symbol) ? ScriptElementKind.localFunctionElement : ScriptElementKind.functionElement; + // FIXME: getter and setter use the same symbol. And it is rare to use only setter without getter, so in most cases the symbol always has getter flag. + // So, even when the location is just on the declaration of setter, this function returns getter. if (flags & SymbolFlags.GetAccessor) return ScriptElementKind.memberGetAccessorElement; if (flags & SymbolFlags.SetAccessor) return ScriptElementKind.memberSetAccessorElement; if (flags & SymbolFlags.Method) return ScriptElementKind.memberFunctionElement; @@ -83,18 +85,8 @@ namespace ts.SymbolDisplay { } return unionPropertyKind; } - // If we requested completions after `x.` at the top-level, we may be at a source file location. - switch (location.parent && location.parent.kind) { - // If we've typed a character of the attribute name, will be 'JsxAttribute', else will be 'JsxOpeningElement'. - case SyntaxKind.JsxOpeningElement: - case SyntaxKind.JsxElement: - case SyntaxKind.JsxSelfClosingElement: - return location.kind === SyntaxKind.Identifier ? ScriptElementKind.memberVariableElement : ScriptElementKind.jsxAttribute; - case SyntaxKind.JsxAttribute: - return ScriptElementKind.jsxAttribute; - default: - return ScriptElementKind.memberVariableElement; - } + + return ScriptElementKind.memberVariableElement; } return ScriptElementKind.unknown; @@ -151,7 +143,7 @@ namespace ts.SymbolDisplay { const symbolFlags = getCombinedLocalAndExportSymbolFlags(symbol); let symbolKind = semanticMeaning & SemanticMeaning.Value ? getSymbolKindOfConstructorPropertyMethodAccessorFunctionOrVar(typeChecker, symbol, location) : ScriptElementKind.unknown; let hasAddedSymbolInfo = false; - const isThisExpression = location.kind === SyntaxKind.ThisKeyword && isInExpressionContext(location); + const isThisExpression = location.kind === SyntaxKind.ThisKeyword && isInExpressionContext(location) || isThisInTypeQuery(location); let type: Type | undefined; let printer: Printer; let documentationFromAlias: SymbolDisplayPart[] | undefined; @@ -164,9 +156,24 @@ namespace ts.SymbolDisplay { // Class at constructor site need to be shown as constructor apart from property,method, vars if (symbolKind !== ScriptElementKind.unknown || symbolFlags & SymbolFlags.Class || symbolFlags & SymbolFlags.Alias) { - // If it is accessor they are allowed only if location is at name of the accessor + // If symbol is accessor, they are allowed only if location is at declaration identifier of the accessor if (symbolKind === ScriptElementKind.memberGetAccessorElement || symbolKind === ScriptElementKind.memberSetAccessorElement) { - symbolKind = ScriptElementKind.memberVariableElement; + const declaration = find(symbol.declarations as ((GetAccessorDeclaration | SetAccessorDeclaration)[]), declaration => declaration.name === location); + if (declaration) { + switch(declaration.kind){ + case SyntaxKind.GetAccessor: + symbolKind = ScriptElementKind.memberGetAccessorElement; + break; + case SyntaxKind.SetAccessor: + symbolKind = ScriptElementKind.memberSetAccessorElement; + break; + default: + Debug.assertNever(declaration); + } + } + else { + symbolKind = ScriptElementKind.memberVariableElement; + } } let signature: Signature | undefined; @@ -330,7 +337,7 @@ namespace ts.SymbolDisplay { displayParts.push(spacePart()); displayParts.push(operatorPart(SyntaxKind.EqualsToken)); displayParts.push(spacePart()); - addRange(displayParts, typeToDisplayParts(typeChecker, typeChecker.getDeclaredTypeOfSymbol(symbol), enclosingDeclaration, TypeFormatFlags.InTypeAlias)); + addRange(displayParts, typeToDisplayParts(typeChecker, isConstTypeReference(location.parent) ? typeChecker.getTypeAtLocation(location.parent) : typeChecker.getDeclaredTypeOfSymbol(symbol), enclosingDeclaration, TypeFormatFlags.InTypeAlias)); } if (symbolFlags & SymbolFlags.Enum) { prefixNextMeaning(); @@ -502,6 +509,8 @@ namespace ts.SymbolDisplay { // For properties, variables and local vars: show the type if (symbolKind === ScriptElementKind.memberVariableElement || + symbolKind === ScriptElementKind.memberGetAccessorElement || + symbolKind === ScriptElementKind.memberSetAccessorElement || symbolKind === ScriptElementKind.jsxAttribute || symbolFlags & SymbolFlags.Variable || symbolKind === ScriptElementKind.localVariableElement || @@ -575,8 +584,21 @@ namespace ts.SymbolDisplay { } } + if (documentation.length === 0 && isIdentifier(location) && symbol.valueDeclaration && isBindingElement(symbol.valueDeclaration)) { + const declaration = symbol.valueDeclaration; + const parent = declaration.parent; + if (isIdentifier(declaration.name) && isObjectBindingPattern(parent)) { + const name = getTextOfIdentifierOrLiteral(declaration.name); + const objectType = typeChecker.getTypeAtLocation(parent); + documentation = firstDefined(objectType.isUnion() ? objectType.types : [objectType], t => { + const prop = t.getProperty(name); + return prop ? prop.getDocumentationComment(typeChecker) : undefined; + }) || emptyArray; + } + } + if (tags.length === 0 && !hasMultipleSignatures) { - tags = symbol.getJsDocTags(typeChecker); + tags = symbol.getContextualJsDocTags(enclosingDeclaration, typeChecker); } if (documentation.length === 0 && documentationFromAlias) { diff --git a/src/services/textChanges.ts b/src/services/textChanges.ts index 7b0365b343e3b..be02cb0a4f26f 100644 --- a/src/services/textChanges.ts +++ b/src/services/textChanges.ts @@ -116,10 +116,6 @@ namespace ts.textChanges { * Text of inserted node will be formatted with this delta, otherwise delta will be inferred from the new node kind */ delta?: number; - /** - * Do not trim leading white spaces in the edit range - */ - preserveLeadingWhitespace?: boolean; } export interface ReplaceWithMultipleNodesOptions extends InsertNodeOptions { @@ -303,7 +299,7 @@ namespace ts.textChanges { export class ChangeTracker { private readonly changes: Change[] = []; private readonly newFiles: { readonly oldFile: SourceFile | undefined, readonly fileName: string, readonly statements: readonly (Statement | SyntaxKind.NewLineTrivia)[] }[] = []; - private readonly classesWithNodesInsertedAtStart = new Map(); // Set implemented as Map + private readonly classesWithNodesInsertedAtStart = new Map(); // Set implemented as Map private readonly deletedNodes: { readonly sourceFile: SourceFile, readonly node: Node | NodeArray }[] = []; public static fromContext(context: TextChangesContext): ChangeTracker { @@ -339,6 +335,7 @@ namespace ts.textChanges { this.deletedNodes.push({ sourceFile, node }); } + /** Stop! Consider using `delete` instead, which has logic for deleting nodes from delimited lists. */ public deleteNode(sourceFile: SourceFile, node: Node, options: ConfigurableStartEnd = { leadingTriviaOption: LeadingTriviaOption.IncludeAll }): void { this.deleteRange(sourceFile, getAdjustedRange(sourceFile, node, node, options)); } @@ -491,7 +488,33 @@ namespace ts.textChanges { } const startPosition = getPrecedingNonSpaceCharacterPosition(sourceFile.text, fnStart - 1); const indent = sourceFile.text.slice(startPosition, fnStart); - this.insertNodeAt(sourceFile, fnStart, tag, { preserveLeadingWhitespace: false, suffix: this.newLineCharacter + indent }); + this.insertNodeAt(sourceFile, fnStart, tag, { suffix: this.newLineCharacter + indent }); + } + + private createJSDocText(sourceFile: SourceFile, node: HasJSDoc) { + const comments = flatMap(node.jsDoc, jsDoc => + isString(jsDoc.comment) ? factory.createJSDocText(jsDoc.comment) : jsDoc.comment) as JSDocComment[]; + const jsDoc = singleOrUndefined(node.jsDoc); + return jsDoc && positionsAreOnSameLine(jsDoc.pos, jsDoc.end, sourceFile) && length(comments) === 0 ? undefined : + factory.createNodeArray(intersperse(comments, factory.createJSDocText("\n"))); + } + + public replaceJSDocComment(sourceFile: SourceFile, node: HasJSDoc, tags: readonly JSDocTag[]) { + this.insertJsdocCommentBefore(sourceFile, updateJSDocHost(node), factory.createJSDocComment(this.createJSDocText(sourceFile, node), factory.createNodeArray(tags))); + } + + public addJSDocTags(sourceFile: SourceFile, parent: HasJSDoc, newTags: readonly JSDocTag[]): void { + const oldTags = flatMapToMutable(parent.jsDoc, j => j.tags); + const unmergedNewTags = newTags.filter(newTag => !oldTags.some((tag, i) => { + const merged = tryMergeJsdocTags(tag, newTag); + if (merged) oldTags[i] = merged; + return !!merged; + })); + this.replaceJSDocComment(sourceFile, parent, [...oldTags, ...unmergedNewTags]); + } + + public filterJSDocTags(sourceFile: SourceFile, parent: HasJSDoc, predicate: (tag: JSDocTag) => boolean): void { + this.replaceJSDocComment(sourceFile, parent, filter(flatMapToMutable(parent.jsDoc, j => j.tags), predicate)); } public replaceRangeWithText(sourceFile: SourceFile, range: TextRange, text: string): void { @@ -595,27 +618,27 @@ namespace ts.textChanges { }); } - public insertNodeAtClassStart(sourceFile: SourceFile, cls: ClassLikeDeclaration | InterfaceDeclaration, newElement: ClassElement): void { - this.insertNodeAtStartWorker(sourceFile, cls, newElement); + public insertMemberAtStart(sourceFile: SourceFile, node: ClassLikeDeclaration | InterfaceDeclaration | TypeLiteralNode, newElement: ClassElement | PropertySignature | MethodSignature): void { + this.insertNodeAtStartWorker(sourceFile, node, newElement); } public insertNodeAtObjectStart(sourceFile: SourceFile, obj: ObjectLiteralExpression, newElement: ObjectLiteralElementLike): void { this.insertNodeAtStartWorker(sourceFile, obj, newElement); } - private insertNodeAtStartWorker(sourceFile: SourceFile, cls: ClassLikeDeclaration | InterfaceDeclaration | ObjectLiteralExpression, newElement: ClassElement | ObjectLiteralElementLike): void { - const indentation = this.guessIndentationFromExistingMembers(sourceFile, cls) ?? this.computeIndentationForNewMember(sourceFile, cls); - this.insertNodeAt(sourceFile, getMembersOrProperties(cls).pos, newElement, this.getInsertNodeAtStartInsertOptions(sourceFile, cls, indentation)); + private insertNodeAtStartWorker(sourceFile: SourceFile, node: ClassLikeDeclaration | InterfaceDeclaration | ObjectLiteralExpression | TypeLiteralNode, newElement: ClassElement | ObjectLiteralElementLike | PropertySignature | MethodSignature): void { + const indentation = this.guessIndentationFromExistingMembers(sourceFile, node) ?? this.computeIndentationForNewMember(sourceFile, node); + this.insertNodeAt(sourceFile, getMembersOrProperties(node).pos, newElement, this.getInsertNodeAtStartInsertOptions(sourceFile, node, indentation)); } /** * Tries to guess the indentation from the existing members of a class/interface/object. All members must be on * new lines and must share the same indentation. */ - private guessIndentationFromExistingMembers(sourceFile: SourceFile, cls: ClassLikeDeclaration | InterfaceDeclaration | ObjectLiteralExpression) { + private guessIndentationFromExistingMembers(sourceFile: SourceFile, node: ClassLikeDeclaration | InterfaceDeclaration | ObjectLiteralExpression | TypeLiteralNode) { let indentation: number | undefined; - let lastRange: TextRange = cls; - for (const member of getMembersOrProperties(cls)) { + let lastRange: TextRange = node; + for (const member of getMembersOrProperties(node)) { if (rangeStartPositionsAreOnSameLine(lastRange, member, sourceFile)) { // each indented member must be on a new line return undefined; @@ -634,13 +657,13 @@ namespace ts.textChanges { return indentation; } - private computeIndentationForNewMember(sourceFile: SourceFile, cls: ClassLikeDeclaration | InterfaceDeclaration | ObjectLiteralExpression) { - const clsStart = cls.getStart(sourceFile); - return formatting.SmartIndenter.findFirstNonWhitespaceColumn(getLineStartPositionForPosition(clsStart, sourceFile), clsStart, sourceFile, this.formatContext.options) + private computeIndentationForNewMember(sourceFile: SourceFile, node: ClassLikeDeclaration | InterfaceDeclaration | ObjectLiteralExpression | TypeLiteralNode) { + const nodeStart = node.getStart(sourceFile); + return formatting.SmartIndenter.findFirstNonWhitespaceColumn(getLineStartPositionForPosition(nodeStart, sourceFile), nodeStart, sourceFile, this.formatContext.options) + (this.formatContext.options.indentSize ?? 4); } - private getInsertNodeAtStartInsertOptions(sourceFile: SourceFile, cls: ClassLikeDeclaration | InterfaceDeclaration | ObjectLiteralExpression, indentation: number): InsertNodeOptions { + private getInsertNodeAtStartInsertOptions(sourceFile: SourceFile, node: ClassLikeDeclaration | InterfaceDeclaration | ObjectLiteralExpression | TypeLiteralNode, indentation: number): InsertNodeOptions { // Rules: // - Always insert leading newline. // - For object literals: @@ -651,11 +674,11 @@ namespace ts.textChanges { // - Only insert a trailing newline if body is single-line and there are no other insertions for the node. // NOTE: This is handled in `finishClassesWithNodesInsertedAtStart`. - const members = getMembersOrProperties(cls); + const members = getMembersOrProperties(node); const isEmpty = members.length === 0; - const isFirstInsertion = addToSeen(this.classesWithNodesInsertedAtStart, getNodeId(cls), { node: cls, sourceFile }); - const insertTrailingComma = isObjectLiteralExpression(cls) && (!isJsonSourceFile(sourceFile) || !isEmpty); - const insertLeadingComma = isObjectLiteralExpression(cls) && isJsonSourceFile(sourceFile) && isEmpty && !isFirstInsertion; + const isFirstInsertion = addToSeen(this.classesWithNodesInsertedAtStart, getNodeId(node), { node, sourceFile }); + const insertTrailingComma = isObjectLiteralExpression(node) && (!isJsonSourceFile(sourceFile) || !isEmpty); + const insertLeadingComma = isObjectLiteralExpression(node) && isJsonSourceFile(sourceFile) && isEmpty && !isFirstInsertion; return { indentation, prefix: (insertLeadingComma ? "," : "") + this.newLineCharacter, @@ -761,6 +784,20 @@ namespace ts.textChanges { this.insertText(sourceFile, node.getStart(sourceFile), "export "); } + public insertImportSpecifierAtIndex(sourceFile: SourceFile, importSpecifier: ImportSpecifier, namedImports: NamedImports, index: number) { + const prevSpecifier = namedImports.elements[index - 1]; + if (prevSpecifier) { + this.insertNodeInListAfter(sourceFile, prevSpecifier, importSpecifier); + } + else { + this.insertNodeBefore( + sourceFile, + namedImports.elements[0], + importSpecifier, + !positionsAreOnSameLine(namedImports.elements[0].getStart(), namedImports.parent.parent.getStart(), sourceFile)); + } + } + /** * This function should be used to insert nodes in lists when nodes don't carry separators as the part of the node range, * i.e. arguments in arguments lists, parameters in parameter lists etc. @@ -920,6 +957,37 @@ namespace ts.textChanges { } } + function updateJSDocHost(parent: HasJSDoc): HasJSDoc { + if (parent.kind !== SyntaxKind.ArrowFunction) { + return parent; + } + const jsDocNode = parent.parent.kind === SyntaxKind.PropertyDeclaration ? + parent.parent as HasJSDoc : + parent.parent.parent as HasJSDoc; + jsDocNode.jsDoc = parent.jsDoc; + jsDocNode.jsDocCache = parent.jsDocCache; + return jsDocNode; + } + + function tryMergeJsdocTags(oldTag: JSDocTag, newTag: JSDocTag): JSDocTag | undefined { + if (oldTag.kind !== newTag.kind) { + return undefined; + } + switch (oldTag.kind) { + case SyntaxKind.JSDocParameterTag: { + const oldParam = oldTag as JSDocParameterTag; + const newParam = newTag as JSDocParameterTag; + return isIdentifier(oldParam.name) && isIdentifier(newParam.name) && oldParam.name.escapedText === newParam.name.escapedText + ? factory.createJSDocParameterTag(/*tagName*/ undefined, newParam.name, /*isBracketed*/ false, newParam.typeExpression, newParam.isNameFirst, oldParam.comment) + : undefined; + } + case SyntaxKind.JSDocReturnTag: + return factory.createJSDocReturnTag(/*tagName*/ undefined, (newTag as JSDocReturnTag).typeExpression, oldTag.comment); + case SyntaxKind.JSDocTypeTag: + return factory.createJSDocTypeTag(/*tagName*/ undefined, (newTag as JSDocTypeTag).typeExpression, oldTag.comment); + } + } + // find first non-whitespace position in the leading trivia of the node function startPositionToDeleteNodeInList(sourceFile: SourceFile, node: Node): number { return skipTrivia(sourceFile.text, getAdjustedStartPosition(sourceFile, node, { leadingTriviaOption: LeadingTriviaOption.IncludeAll }), /*stopAfterLineBreak*/ false, /*stopAtComments*/ true); @@ -930,8 +998,8 @@ namespace ts.textChanges { const close = findChildOfKind(cls, SyntaxKind.CloseBraceToken, sourceFile); return [open?.end, close?.end]; } - function getMembersOrProperties(cls: ClassLikeDeclaration | InterfaceDeclaration | ObjectLiteralExpression): NodeArray { - return isObjectLiteralExpression(cls) ? cls.properties : cls.members; + function getMembersOrProperties(node: ClassLikeDeclaration | InterfaceDeclaration | ObjectLiteralExpression | TypeLiteralNode): NodeArray { + return isObjectLiteralExpression(node) ? node.properties : node.members; } export type ValidateNonFormattedText = (node: Node, text: string) => void; @@ -996,21 +1064,12 @@ namespace ts.textChanges { ? change.nodes.map(n => removeSuffix(format(n), newLineCharacter)).join(change.options?.joiner || newLineCharacter) : format(change.node); // strip initial indentation (spaces or tabs) if text will be inserted in the middle of the line - const noIndent = (options.preserveLeadingWhitespace || options.indentation !== undefined || getLineStartPositionForPosition(pos, sourceFile) === pos) ? text : text.replace(/^\s+/, ""); + const noIndent = (options.indentation !== undefined || getLineStartPositionForPosition(pos, sourceFile) === pos) ? text : text.replace(/^\s+/, ""); return (options.prefix || "") + noIndent + ((!options.suffix || endsWith(noIndent, options.suffix)) ? "" : options.suffix); } - function getFormatCodeSettingsForWriting({ options }: formatting.FormatContext, sourceFile: SourceFile): FormatCodeSettings { - const shouldAutoDetectSemicolonPreference = !options.semicolons || options.semicolons === SemicolonPreference.Ignore; - const shouldRemoveSemicolons = options.semicolons === SemicolonPreference.Remove || shouldAutoDetectSemicolonPreference && !probablyUsesSemicolons(sourceFile); - return { - ...options, - semicolons: shouldRemoveSemicolons ? SemicolonPreference.Remove : SemicolonPreference.Ignore, - }; - } - /** Note: this may mutate `nodeIn`. */ function getFormattedTextOfNode(nodeIn: Node, sourceFile: SourceFile, pos: number, { indentation, prefix, delta }: InsertNodeOptions, newLineCharacter: string, formatContext: formatting.FormatContext, validate: ValidateNonFormattedText | undefined): string { const { node, text } = getNonformattedText(nodeIn, sourceFile, newLineCharacter); @@ -1037,7 +1096,7 @@ namespace ts.textChanges { /** Note: output node may be mutated input node. */ export function getNonformattedText(node: Node, sourceFile: SourceFile | undefined, newLineCharacter: string): { text: string, node: Node } { const writer = createWriter(newLineCharacter); - const newLine = newLineCharacter === "\n" ? NewLineKind.LineFeed : NewLineKind.CarriageReturnLineFeed; + const newLine = getNewLineKind(newLineCharacter); createPrinter({ newLine, neverAsciiEscape: true, @@ -1060,7 +1119,7 @@ namespace ts.textChanges { return skipTrivia(s, 0) === s.length; } - function assignPositionsToNode(node: Node): Node { + export function assignPositionsToNode(node: Node): Node { const visited = visitEachChild(node, assignPositionsToNode, nullTransformationContext, assignPositionsToNodeArray, assignPositionsToNode); // create proxy node for non synthesized nodes const newNode = nodeIsSynthesized(visited) ? visited : Object.create(visited) as Node; @@ -1081,7 +1140,7 @@ namespace ts.textChanges { interface TextChangesWriter extends EmitTextWriter, PrintHandlers {} - function createWriter(newLine: string): TextChangesWriter { + export function createWriter(newLine: string): TextChangesWriter { let lastNonTriviaPosition = 0; const writer = createTextWriter(newLine); diff --git a/src/services/transpile.ts b/src/services/transpile.ts index 5b73b91bd7f47..b2d8951e43b7e 100644 --- a/src/services/transpile.ts +++ b/src/services/transpile.ts @@ -46,23 +46,7 @@ namespace ts { // Filename can be non-ts file. options.allowNonTsExtensions = true; - // if jsx is specified then treat file as .tsx - const inputFileName = transpileOptions.fileName || (transpileOptions.compilerOptions && transpileOptions.compilerOptions.jsx ? "module.tsx" : "module.ts"); - const sourceFile = createSourceFile(inputFileName, input, getEmitScriptTarget(options)); - if (transpileOptions.moduleName) { - sourceFile.moduleName = transpileOptions.moduleName; - } - - if (transpileOptions.renamedDependencies) { - sourceFile.renamedDependencies = new Map(getEntries(transpileOptions.renamedDependencies)); - } - const newLine = getNewLineCharacter(options); - - // Output - let outputText: string | undefined; - let sourceMapText: string | undefined; - // Create a compilerHost object to allow the compiler to read and write files const compilerHost: CompilerHost = { getSourceFile: (fileName) => fileName === normalizePath(inputFileName) ? sourceFile : undefined, @@ -87,6 +71,29 @@ namespace ts { getDirectories: () => [] }; + // if jsx is specified then treat file as .tsx + const inputFileName = transpileOptions.fileName || (transpileOptions.compilerOptions && transpileOptions.compilerOptions.jsx ? "module.tsx" : "module.ts"); + const sourceFile = createSourceFile( + inputFileName, + input, + { + languageVersion: getEmitScriptTarget(options), + impliedNodeFormat: getImpliedNodeFormatForFile(toPath(inputFileName, "", compilerHost.getCanonicalFileName), /*cache*/ undefined, compilerHost, options), + setExternalModuleIndicator: getSetExternalModuleIndicator(options) + } + ); + if (transpileOptions.moduleName) { + sourceFile.moduleName = transpileOptions.moduleName; + } + + if (transpileOptions.renamedDependencies) { + sourceFile.renamedDependencies = new Map(getEntries(transpileOptions.renamedDependencies)); + } + + // Output + let outputText: string | undefined; + let sourceMapText: string | undefined; + const program = createProgram([inputFileName], options, compilerHost); if (transpileOptions.reportDiagnostics) { diff --git a/src/services/tsconfig.json b/src/services/tsconfig.json index d2119947f8fa8..cef6b9139698a 100644 --- a/src/services/tsconfig.json +++ b/src/services/tsconfig.json @@ -87,6 +87,8 @@ "codefixes/fixExtendsInterfaceBecomesImplements.ts", "codefixes/fixForgottenThisPropertyAccess.ts", "codefixes/fixInvalidJsxCharacters.ts", + "codefixes/fixUnmatchedParameter.ts", + "codefixes/fixUnreferenceableDecoratorMetadata.ts", "codefixes/fixUnusedIdentifier.ts", "codefixes/fixUnreachableCode.ts", "codefixes/fixUnusedLabel.ts", diff --git a/src/services/types.ts b/src/services/types.ts index 0659e6295e608..19749416467ab 100644 --- a/src/services/types.ts +++ b/src/services/types.ts @@ -44,6 +44,8 @@ namespace ts { /* @internal */ getContextualDocumentationComment(context: Node | undefined, checker: TypeChecker | undefined): SymbolDisplayPart[] getJsDocTags(checker?: TypeChecker): JSDocTagInfo[]; + /* @internal */ + getContextualJsDocTags(context: Node | undefined, checker: TypeChecker | undefined): JSDocTagInfo[]; } export interface Type { @@ -72,6 +74,7 @@ namespace ts { isTypeParameter(): this is TypeParameter; isClassOrInterface(): this is InterfaceType; isClass(): this is InterfaceType; + isIndexType(): this is IndexType; } export interface TypeReference { @@ -82,6 +85,7 @@ namespace ts { getDeclaration(): SignatureDeclaration; getTypeParameters(): TypeParameter[] | undefined; getParameters(): Symbol[]; + getTypeParameterAtPosition(pos: number): Type; getReturnType(): Type; getDocumentationComment(typeChecker: TypeChecker | undefined): SymbolDisplayPart[]; getJsDocTags(): JSDocTagInfo[]; @@ -236,7 +240,7 @@ namespace ts { // // Public interface of the host of a language service instance. // - export interface LanguageServiceHost extends GetEffectiveTypeRootsHost { + export interface LanguageServiceHost extends GetEffectiveTypeRootsHost, MinimalResolutionCacheHost { getCompilationSettings(): CompilerOptions; getNewLine?(): string; getProjectVersion?(): string; @@ -259,9 +263,14 @@ namespace ts { * Without these methods, only completions for ambient modules will be provided. */ readDirectory?(path: string, extensions?: readonly string[], exclude?: readonly string[], include?: readonly string[], depth?: number): string[]; - readFile?(path: string, encoding?: string): string | undefined; realpath?(path: string): string; - fileExists?(path: string): boolean; + + /* + * Unlike `realpath and `readDirectory`, `readFile` and `fileExists` are now _required_ + * to properly acquire and setup source files under module: node12+ modes. + */ + readFile(path: string, encoding?: string): string | undefined; + fileExists(path: string): boolean; /* * LS host can optionally implement these methods to support automatic updating when new type libraries are installed @@ -277,11 +286,13 @@ namespace ts { */ resolveModuleNames?(moduleNames: string[], containingFile: string, reusedNames: string[] | undefined, redirectedReference: ResolvedProjectReference | undefined, options: CompilerOptions, containingSourceFile?: SourceFile): (ResolvedModule | undefined)[]; getResolvedModuleWithFailedLookupLocationsFromCache?(modulename: string, containingFile: string, resolutionMode?: ModuleKind.CommonJS | ModuleKind.ESNext): ResolvedModuleWithFailedLookupLocations | undefined; - resolveTypeReferenceDirectives?(typeDirectiveNames: string[], containingFile: string, redirectedReference: ResolvedProjectReference | undefined, options: CompilerOptions): (ResolvedTypeReferenceDirective | undefined)[]; + resolveTypeReferenceDirectives?(typeDirectiveNames: string[] | FileReference[], containingFile: string, redirectedReference: ResolvedProjectReference | undefined, options: CompilerOptions, containingFileMode?: SourceFile["impliedNodeFormat"] | undefined): (ResolvedTypeReferenceDirective | undefined)[]; /* @internal */ hasInvalidatedResolution?: HasInvalidatedResolution; /* @internal */ hasChangedAutomaticTypeDirectiveNames?: HasChangedAutomaticTypeDirectiveNames; /* @internal */ getGlobalTypingsCacheLocation?(): string | undefined; /* @internal */ getSymlinkCache?(files?: readonly SourceFile[]): SymlinkCache; + /* Lets the Program from a AutoImportProviderProject use its host project's ModuleResolutionCache */ + /* @internal */ getModuleResolutionCache?(): ModuleResolutionCache | undefined; /* * Required for full import and type reference completions. @@ -414,8 +425,9 @@ namespace ts { * @param position A zero-based index of the character where you want the entries * @param options An object describing how the request was triggered and what kinds * of code actions can be returned with the completions. + * @param formattingSettings settings needed for calling formatting functions. */ - getCompletionsAtPosition(fileName: string, position: number, options: GetCompletionsAtPositionOptions | undefined): WithMetadata | undefined; + getCompletionsAtPosition(fileName: string, position: number, options: GetCompletionsAtPositionOptions | undefined, formattingSettings?: FormatCodeSettings): WithMetadata | undefined; /** * Gets the extended details for a completion entry retrieved from `getCompletionsAtPosition`. @@ -578,16 +590,6 @@ namespace ts { includeInsertTextCompletions?: boolean; } - export interface InlayHintsOptions extends UserPreferences { - readonly includeInlayParameterNameHints?: "none" | "literals" | "all"; - readonly includeInlayParameterNameHintsWhenArgumentMatchesName?: boolean; - readonly includeInlayFunctionParameterTypeHints?: boolean, - readonly includeInlayVariableTypeHints?: boolean; - readonly includeInlayPropertyDeclarationTypeHints?: boolean; - readonly includeInlayFunctionLikeReturnTypeHints?: boolean; - readonly includeInlayEnumMemberValueHints?: boolean; - } - export type SignatureHelpTriggerCharacter = "," | "(" | "<"; export type SignatureHelpRetriggerCharacter = SignatureHelpTriggerCharacter | ")"; @@ -1230,6 +1232,7 @@ namespace ts { hasAction?: true; source?: string; sourceDisplay?: SymbolDisplayPart[]; + labelDetails?: CompletionEntryLabelDetails; isRecommended?: true; isFromUncheckedFile?: true; isPackageJsonImport?: true; @@ -1245,6 +1248,11 @@ namespace ts { data?: CompletionEntryData; } + export interface CompletionEntryLabelDetails { + detail?: string; + description?: string; + } + export interface CompletionEntryDetails { name: string; kind: ScriptElementKind; @@ -1454,6 +1462,7 @@ namespace ts { /** * + * @deprecated */ jsxAttribute = "JSX attribute", @@ -1612,6 +1621,6 @@ namespace ts { cancellationToken: CancellationToken; host: LanguageServiceHost; span: TextSpan; - preferences: InlayHintsOptions; + preferences: UserPreferences; } } diff --git a/src/services/utilities.ts b/src/services/utilities.ts index b7e26ffeccbd3..16d406f7d259d 100644 --- a/src/services/utilities.ts +++ b/src/services/utilities.ts @@ -99,13 +99,6 @@ namespace ts { || isImportSpecifier(parent) || isImportClause(parent) || isImportEqualsDeclaration(parent) && node === parent.name) { - let decl: Node = parent; - while (decl) { - if (isImportEqualsDeclaration(decl) || isImportClause(decl) || isExportDeclaration(decl)) { - return decl.isTypeOnly ? SemanticMeaning.Type : SemanticMeaning.All; - } - decl = decl.parent; - } return SemanticMeaning.All; } else if (isInRightSideOfInternalImportEqualsDeclaration(node)) { @@ -207,7 +200,7 @@ namespace ts { case SyntaxKind.ImportType: return !(node.parent as ImportTypeNode).isTypeOf; case SyntaxKind.ExpressionWithTypeArguments: - return !isExpressionWithTypeArgumentsInClassExtendsClause(node.parent as ExpressionWithTypeArguments); + return isPartOfTypeNode(node.parent); } return false; @@ -1263,8 +1256,10 @@ namespace ts { * Finds the rightmost token satisfying `token.end <= position`, * excluding `JsxText` tokens containing only whitespace. */ - export function findPrecedingToken(position: number, sourceFile: SourceFile, startNode?: Node, excludeJsdoc?: boolean): Node | undefined { - const result = find(startNode || sourceFile); + export function findPrecedingToken(position: number, sourceFile: SourceFileLike, startNode: Node, excludeJsdoc?: boolean): Node | undefined; + export function findPrecedingToken(position: number, sourceFile: SourceFile, startNode?: Node, excludeJsdoc?: boolean): Node | undefined; + export function findPrecedingToken(position: number, sourceFile: SourceFileLike, startNode?: Node, excludeJsdoc?: boolean): Node | undefined { + const result = find((startNode || sourceFile) as Node); Debug.assert(!(result && isWhiteSpaceOnlyJsxText(result))); return result; @@ -1304,7 +1299,7 @@ namespace ts { if (lookInPreviousChild) { // actual start of the node is past the position - previous token should be at the end of previous child - const candidate = findRightmostChildNodeWithTokens(children, /*exclusiveStartPosition*/ i, sourceFile); + const candidate = findRightmostChildNodeWithTokens(children, /*exclusiveStartPosition*/ i, sourceFile, n.kind); return candidate && findRightmostToken(candidate, sourceFile); } else { @@ -1320,7 +1315,7 @@ namespace ts { // the only known case is when position is at the end of the file. // Try to find the rightmost token in the file without filtering. // Namely we are skipping the check: 'position < node.end' - const candidate = findRightmostChildNodeWithTokens(children, /*exclusiveStartPosition*/ children.length, sourceFile); + const candidate = findRightmostChildNodeWithTokens(children, /*exclusiveStartPosition*/ children.length, sourceFile, n.kind); return candidate && findRightmostToken(candidate, sourceFile); } } @@ -1329,7 +1324,7 @@ namespace ts { return isToken(n) && !isWhiteSpaceOnlyJsxText(n); } - function findRightmostToken(n: Node, sourceFile: SourceFile): Node | undefined { + function findRightmostToken(n: Node, sourceFile: SourceFileLike): Node | undefined { if (isNonWhitespaceToken(n)) { return n; } @@ -1339,19 +1334,21 @@ namespace ts { return n; } - const candidate = findRightmostChildNodeWithTokens(children, /*exclusiveStartPosition*/ children.length, sourceFile); + const candidate = findRightmostChildNodeWithTokens(children, /*exclusiveStartPosition*/ children.length, sourceFile, n.kind); return candidate && findRightmostToken(candidate, sourceFile); } /** * Finds the rightmost child to the left of `children[exclusiveStartPosition]` which is a non-all-whitespace token or has constituent tokens. */ - function findRightmostChildNodeWithTokens(children: Node[], exclusiveStartPosition: number, sourceFile: SourceFile): Node | undefined { + function findRightmostChildNodeWithTokens(children: Node[], exclusiveStartPosition: number, sourceFile: SourceFileLike, parentKind: SyntaxKind): Node | undefined { for (let i = exclusiveStartPosition - 1; i >= 0; i--) { const child = children[i]; if (isWhiteSpaceOnlyJsxText(child)) { - Debug.assert(i > 0, "`JsxText` tokens should not be the first child of `JsxElement | JsxSelfClosingElement`"); + if (i === 0 && (parentKind === SyntaxKind.JsxText || parentKind === SyntaxKind.JsxSelfClosingElement)) { + Debug.fail("`JsxText` tokens should not be the first child of `JsxElement | JsxSelfClosingElement`"); + } } else if (nodeHasTokens(children[i], sourceFile)) { return children[i]; @@ -1914,6 +1911,7 @@ namespace ts { useCaseSensitiveFileNames: maybeBind(host, host.useCaseSensitiveFileNames), getSymlinkCache: maybeBind(host, host.getSymlinkCache) || program.getSymlinkCache, getModuleSpecifierCache: maybeBind(host, host.getModuleSpecifierCache), + getPackageJsonInfoCache: () => program.getModuleResolutionCache()?.getPackageJsonInfoCache(), getGlobalTypingsCacheLocation: maybeBind(host, host.getGlobalTypingsCacheLocation), redirectTargetsMap: program.redirectTargetsMap, getProjectReferenceRedirect: fileName => program.getProjectReferenceRedirect(fileName), @@ -2311,26 +2309,37 @@ namespace ts { : "linkplain"; const parts = [linkPart(`{@${prefix} `)]; if (!link.name) { - if (link.text) parts.push(linkTextPart(link.text)); + if (link.text) { + parts.push(linkTextPart(link.text)); + } } else { const symbol = checker?.getSymbolAtLocation(link.name); const suffix = findLinkNameEnd(link.text); const name = getTextOfNode(link.name) + link.text.slice(0, suffix); - const text = link.text.slice(suffix); + const text = skipSeparatorFromLinkText(link.text.slice(suffix)); const decl = symbol?.valueDeclaration || symbol?.declarations?.[0]; if (decl) { parts.push(linkNamePart(name, decl)); if (text) parts.push(linkTextPart(text)); } else { - parts.push(linkTextPart(name + (suffix ? "" : " ") + text)); + parts.push(linkTextPart(name + (suffix || text.indexOf("://") === 0 ? "" : " ") + text)); } } parts.push(linkPart("}")); return parts; } + function skipSeparatorFromLinkText(text: string) { + let pos = 0; + if (text.charCodeAt(pos++) === CharacterCodes.bar) { + while (pos < text.length && text.charCodeAt(pos) === CharacterCodes.space) pos++; + return text.slice(pos); + } + return text; + } + function findLinkNameEnd(text: string) { if (text.indexOf("()") === 0) return 2; if (text[0] !== "<") return 0; @@ -2388,6 +2397,14 @@ namespace ts { }); } + export function nodeToDisplayParts(node: Node, enclosingDeclaration: Node): SymbolDisplayPart[] { + const file = enclosingDeclaration.getSourceFile(); + return mapToDisplayParts(writer => { + const printer = createPrinter({ removeComments: true, omitTrailingSemicolon: true }); + printer.writeNode(EmitHint.Unspecified, node, file, writer); + }); + } + export function isImportOrExportSpecifierName(location: Node): location is Identifier { return !!location.parent && isImportOrExportSpecifier(location.parent) && location.parent.propertyName === location; } @@ -2726,7 +2743,7 @@ namespace ts { return typeIsAccessible ? res : undefined; } - export function syntaxRequiresTrailingCommaOrSemicolonOrASI(kind: SyntaxKind) { + function syntaxRequiresTrailingCommaOrSemicolonOrASI(kind: SyntaxKind) { return kind === SyntaxKind.CallSignature || kind === SyntaxKind.ConstructSignature || kind === SyntaxKind.IndexSignature @@ -2734,7 +2751,7 @@ namespace ts { || kind === SyntaxKind.MethodSignature; } - export function syntaxRequiresTrailingFunctionBlockOrSemicolonOrASI(kind: SyntaxKind) { + function syntaxRequiresTrailingFunctionBlockOrSemicolonOrASI(kind: SyntaxKind) { return kind === SyntaxKind.FunctionDeclaration || kind === SyntaxKind.Constructor || kind === SyntaxKind.MethodDeclaration @@ -2742,7 +2759,7 @@ namespace ts { || kind === SyntaxKind.SetAccessor; } - export function syntaxRequiresTrailingModuleBlockOrSemicolonOrASI(kind: SyntaxKind) { + function syntaxRequiresTrailingModuleBlockOrSemicolonOrASI(kind: SyntaxKind) { return kind === SyntaxKind.ModuleDeclaration; } @@ -2831,13 +2848,29 @@ namespace ts { forEachChild(sourceFile, function visit(node): boolean | undefined { if (syntaxRequiresTrailingSemicolonOrASI(node.kind)) { const lastToken = node.getLastToken(sourceFile); - if (lastToken && lastToken.kind === SyntaxKind.SemicolonToken) { + if (lastToken?.kind === SyntaxKind.SemicolonToken) { withSemicolon++; } else { withoutSemicolon++; } } + else if (syntaxRequiresTrailingCommaOrSemicolonOrASI(node.kind)) { + const lastToken = node.getLastToken(sourceFile); + if (lastToken?.kind === SyntaxKind.SemicolonToken) { + withSemicolon++; + } + else if (lastToken && lastToken.kind !== SyntaxKind.CommaToken) { + const lastTokenLine = getLineAndCharacterOfPosition(sourceFile, lastToken.getStart(sourceFile)).line; + const nextTokenLine = getLineAndCharacterOfPosition(sourceFile, getSpanOfTokenAtPosition(sourceFile, lastToken.end).start).line; + // Avoid counting missing semicolon in single-line objects: + // `function f(p: { x: string /*no semicolon here is insignificant*/ }) {` + if (lastTokenLine !== nextTokenLine) { + withoutSemicolon++; + } + } + } + if (withSemicolon + withoutSemicolon >= nStatementsToObserve) { return true; } @@ -2845,7 +2878,7 @@ namespace ts { return forEachChild(node, visit); }); - // One statement missing a semicolon isn’t sufficient evidence to say the user + // One statement missing a semicolon isn't sufficient evidence to say the user // doesn’t want semicolons, because they may not even be done writing that statement. if (withSemicolon === 0 && withoutSemicolon <= 1) { return true; @@ -2918,7 +2951,7 @@ namespace ts { const packageJsons: PackageJsonInfo[] = []; forEachAncestorDirectory(getDirectoryPath(fileName), ancestor => { const packageJsonFileName = combinePaths(ancestor, "package.json"); - if (host.fileExists!(packageJsonFileName)) { + if (host.fileExists(packageJsonFileName)) { const info = createPackageJsonInfo(packageJsonFileName, host); if (info) { packageJsons.push(info); @@ -3076,7 +3109,7 @@ namespace ts { } const specifier = moduleSpecifiers.getNodeModulesPackageName( host.getCompilationSettings(), - fromFile.path, + fromFile, importedFileName, moduleSpecifierResolutionHost, preferences, @@ -3198,13 +3231,34 @@ namespace ts { return isArray(valueOrArray) ? first(valueOrArray) : valueOrArray; } - export function getNameForExportedSymbol(symbol: Symbol, scriptTarget: ScriptTarget | undefined) { - if (!(symbol.flags & SymbolFlags.Transient) && (symbol.escapedName === InternalSymbolName.ExportEquals || symbol.escapedName === InternalSymbolName.Default)) { + export function getNamesForExportedSymbol(symbol: Symbol, scriptTarget: ScriptTarget | undefined): string | [lowercase: string, capitalized: string] { + if (needsNameFromDeclaration(symbol)) { + const fromDeclaration = getDefaultLikeExportNameFromDeclaration(symbol); + if (fromDeclaration) return fromDeclaration; + const fileNameCase = codefix.moduleSymbolToValidIdentifier(getSymbolParentOrFail(symbol), scriptTarget, /*preferCapitalized*/ false); + const capitalized = codefix.moduleSymbolToValidIdentifier(getSymbolParentOrFail(symbol), scriptTarget, /*preferCapitalized*/ true); + if (fileNameCase === capitalized) return fileNameCase; + return [fileNameCase, capitalized]; + } + return symbol.name; + } + + export function getNameForExportedSymbol(symbol: Symbol, scriptTarget: ScriptTarget | undefined, preferCapitalized?: boolean) { + if (needsNameFromDeclaration(symbol)) { // Name of "export default foo;" is "foo". Name of "export default 0" is the filename converted to camelCase. - return firstDefined(symbol.declarations, d => isExportAssignment(d) ? tryCast(skipOuterExpressions(d.expression), isIdentifier)?.text : undefined) - || codefix.moduleSymbolToValidIdentifier(getSymbolParentOrFail(symbol), scriptTarget); + return getDefaultLikeExportNameFromDeclaration(symbol) + || codefix.moduleSymbolToValidIdentifier(getSymbolParentOrFail(symbol), scriptTarget, !!preferCapitalized); } return symbol.name; + + } + + function needsNameFromDeclaration(symbol: Symbol) { + return !(symbol.flags & SymbolFlags.Transient) && (symbol.escapedName === InternalSymbolName.ExportEquals || symbol.escapedName === InternalSymbolName.Default); + } + + function getDefaultLikeExportNameFromDeclaration(symbol: Symbol) { + return firstDefined(symbol.declarations, d => isExportAssignment(d) ? tryCast(skipOuterExpressions(d.expression), isIdentifier)?.text : undefined); } function getSymbolParentOrFail(symbol: Symbol) { @@ -3279,5 +3333,32 @@ namespace ts { return decisionFromFile ?? program.usesUriStyleNodeCoreModules; } + export function getNewLineKind(newLineCharacter: string): NewLineKind { + return newLineCharacter === "\n" ? NewLineKind.LineFeed : NewLineKind.CarriageReturnLineFeed; + } + + export type DiagnosticAndArguments = DiagnosticMessage | [DiagnosticMessage, string] | [DiagnosticMessage, string, string]; + export function diagnosticToString(diag: DiagnosticAndArguments): string { + return isArray(diag) + ? formatStringFromArgs(getLocaleSpecificMessage(diag[0]), diag.slice(1) as readonly string[]) + : getLocaleSpecificMessage(diag); + } + + /** + * Get format code settings for a code writing context (e.g. when formatting text changes or completions code). + */ + export function getFormatCodeSettingsForWriting({ options }: formatting.FormatContext, sourceFile: SourceFile): FormatCodeSettings { + const shouldAutoDetectSemicolonPreference = !options.semicolons || options.semicolons === SemicolonPreference.Ignore; + const shouldRemoveSemicolons = options.semicolons === SemicolonPreference.Remove || shouldAutoDetectSemicolonPreference && !probablyUsesSemicolons(sourceFile); + return { + ...options, + semicolons: shouldRemoveSemicolons ? SemicolonPreference.Remove : SemicolonPreference.Ignore, + }; + } + + export function jsxModeNeedsExplicitImport(jsx: JsxEmit | undefined) { + return jsx === JsxEmit.React || jsx === JsxEmit.ReactNative; + } + // #endregion } diff --git a/src/testRunner/compilerRunner.ts b/src/testRunner/compilerRunner.ts index 166ed164f77dd..1d320d667cf5f 100644 --- a/src/testRunner/compilerRunner.ts +++ b/src/testRunner/compilerRunner.ts @@ -118,6 +118,7 @@ namespace Harness { private static varyBy: readonly string[] = [ "module", "moduleResolution", + "moduleDetection", "target", "jsx", "removeComments", diff --git a/src/testRunner/externalCompileRunner.ts b/src/testRunner/externalCompileRunner.ts index 2b3a2ef9957dc..737377d89d7a8 100644 --- a/src/testRunner/externalCompileRunner.ts +++ b/src/testRunner/externalCompileRunner.ts @@ -12,6 +12,7 @@ namespace Harness { interface UserConfig { types: string[]; cloneUrl: string; + branch?: string; path?: string; } @@ -56,9 +57,10 @@ namespace Harness { ts.Debug.assert(!!config.cloneUrl, "Bad format from test.json: cloneUrl field must be present."); const submoduleDir = path.join(cwd, directoryName); if (!fs.existsSync(submoduleDir)) { - exec("git", ["--work-tree", submoduleDir, "clone", config.cloneUrl, path.join(submoduleDir, ".git")], { cwd }); + exec("git", ["--work-tree", submoduleDir, "clone", "-b", config.branch || "master", config.cloneUrl, path.join(submoduleDir, ".git")], { cwd }); } else { + exec("git", ["--git-dir", path.join(submoduleDir, ".git"), "--work-tree", submoduleDir, "checkout", config.branch || "master"], { cwd: submoduleDir }); exec("git", ["--git-dir", path.join(submoduleDir, ".git"), "--work-tree", submoduleDir, "reset", "HEAD", "--hard"], { cwd: submoduleDir }); exec("git", ["--git-dir", path.join(submoduleDir, ".git"), "--work-tree", submoduleDir, "clean", "-f"], { cwd: submoduleDir }); exec("git", ["--git-dir", path.join(submoduleDir, ".git"), "--work-tree", submoduleDir, "pull", "-f"], { cwd: submoduleDir }); diff --git a/src/testRunner/parallel/host.ts b/src/testRunner/parallel/host.ts index 421b95ef93af5..819325bc85cf3 100644 --- a/src/testRunner/parallel/host.ts +++ b/src/testRunner/parallel/host.ts @@ -14,7 +14,7 @@ namespace Harness.Parallel.Host { const { statSync } = require("fs") as typeof import("fs"); // NOTE: paths for module and types for FailedTestReporter _do not_ line up due to our use of --outFile for run.js - const FailedTestReporter = require(path.resolve(__dirname, "../../scripts/failed-tests")) as typeof import("../../../scripts/failed-tests"); + const FailedTestReporter = require(Utils.findUpFile("scripts/failed-tests.js")) as typeof import("../../../scripts/failed-tests"); const perfdataFileNameFragment = ".parallelperf"; const perfData = readSavedPerfData(configOption); diff --git a/src/testRunner/tsconfig.json b/src/testRunner/tsconfig.json index e85df70861ee9..2caa9873f29dd 100644 --- a/src/testRunner/tsconfig.json +++ b/src/testRunner/tsconfig.json @@ -2,7 +2,6 @@ "extends": "../tsconfig-noncomposite-base", "compilerOptions": { "outFile": "../../built/local/run.js", - "moduleResolution": "node", "composite": false, "declaration": false, "declarationMap": false, diff --git a/src/testRunner/unittests/compilerCore.ts b/src/testRunner/unittests/compilerCore.ts index 4c3918c3149f3..49c9601a39241 100644 --- a/src/testRunner/unittests/compilerCore.ts +++ b/src/testRunner/unittests/compilerCore.ts @@ -29,5 +29,167 @@ namespace ts { assert.isTrue(equalOwnProperties({ a: 1 }, { a: 2 }, () => true), "valid equality"); }); }); + describe("customSet", () => { + it("mutation", () => { + const set = createSet(x => x % 2, (x, y) => (x % 4) === (y % 4)); + assert.equal(set.size, 0); + + const newSet = set.add(0); + assert.strictEqual(newSet, set); + assert.equal(set.size, 1); + + set.add(1); + assert.equal(set.size, 2); + + set.add(2); // Collision with 0 + assert.equal(set.size, 3); + + set.add(3); // Collision with 1 + assert.equal(set.size, 4); + + set.add(4); // Already present as 0 + assert.equal(set.size, 4); + + set.add(5); // Already present as 1 + assert.equal(set.size, 4); + + assert.isTrue(set.has(6)); + assert.isTrue(set.has(7)); + + assert.isTrue(set.delete(8)); + assert.equal(set.size, 3); + assert.isFalse(set.has(8)); + assert.isFalse(set.delete(8)); + + assert.isTrue(set.delete(9)); + assert.equal(set.size, 2); + + assert.isTrue(set.delete(10)); + assert.equal(set.size, 1); + + assert.isTrue(set.delete(11)); + assert.equal(set.size, 0); + }); + it("resizing", () => { + const set = createSet(x => x % 2, (x, y) => x === y); + const elementCount = 100; + + for (let i = 0; i < elementCount; i++) { + assert.isFalse(set.has(i)); + set.add(i); + assert.isTrue(set.has(i)); + assert.equal(set.size, i + 1); + } + + for (let i = 0; i < elementCount; i++) { + assert.isTrue(set.has(i)); + set.delete(i); + assert.isFalse(set.has(i)); + assert.equal(set.size, elementCount - (i + 1)); + } + }); + it("clear", () => { + const set = createSet(x => x % 2, (x, y) => (x % 4) === (y % 4)); + for (let j = 0; j < 2; j++) { + for (let i = 0; i < 100; i++) { + set.add(i); + } + assert.equal(set.size, 4); + + set.clear(); + assert.equal(set.size, 0); + assert.isFalse(set.has(0)); + } + }); + it("forEach", () => { + const set = createSet(x => x % 2, (x, y) => (x % 4) === (y % 4)); + for (let i = 0; i < 100; i++) { + set.add(i); + } + + const values: number[] = []; + const keys: number[] = []; + set.forEach((value, key) => { + values.push(value); + keys.push(key); + }); + + assert.equal(values.length, 4); + + values.sort(); + keys.sort(); + + // NB: first equal value wins (i.e. not [96, 97, 98, 99]) + const expected = [0, 1, 2, 3]; + assert.deepEqual(values, expected); + assert.deepEqual(keys, expected); + }); + it("iteration", () => { + const set = createSet(x => x % 2, (x, y) => (x % 4) === (y % 4)); + for (let i = 0; i < 4; i++) { + set.add(i); + } + + const expected = [0, 1, 2, 3]; + let actual: number[]; + + actual = arrayFrom(set.keys()); + actual.sort(); + assert.deepEqual(actual, expected); + + actual = arrayFrom(set.values()); + actual.sort(); + assert.deepEqual(actual, expected); + + const actualTuple = arrayFrom(set.entries()); + assert.isFalse(actualTuple.some(([v, k]) => v !== k)); + actual = actualTuple.map(([v, _]) => v); + actual.sort(); + assert.deepEqual(actual, expected); + }); + it("string hash code", () => { + interface Thing { + x: number; + y: string; + } + + const set = createSet(t => t.y, (t, u) => t.x === u.x && t.y === u.y); + + const thing1: Thing = { + x: 1, + y: "a", + }; + + const thing2: Thing = { + x: 2, + y: "b", + }; + + const thing3: Thing = { + x: 3, + y: "a", // Collides with thing1 + }; + + set.add(thing1); + set.add(thing2); + set.add(thing3); + + assert.equal(set.size, 3); + + assert.isTrue(set.has(thing1)); + assert.isTrue(set.has(thing2)); + assert.isTrue(set.has(thing3)); + + assert.isFalse(set.has({ + x: 4, + y: "a", // Collides with thing1 + })); + + assert.isFalse(set.has({ + x: 5, + y: "c", // No collision + })); + }); + }); }); } diff --git a/src/testRunner/unittests/config/commandLineParsing.ts b/src/testRunner/unittests/config/commandLineParsing.ts index 9739b3245831f..0c9a9fd954bf7 100644 --- a/src/testRunner/unittests/config/commandLineParsing.ts +++ b/src/testRunner/unittests/config/commandLineParsing.ts @@ -211,7 +211,7 @@ namespace ts { start: undefined, length: undefined, }, { - messageText: "Argument for '--target' option must be: 'es3', 'es5', 'es6', 'es2015', 'es2016', 'es2017', 'es2018', 'es2019', 'es2020', 'es2021', 'esnext'.", + messageText: "Argument for '--target' option must be: 'es3', 'es5', 'es6', 'es2015', 'es2016', 'es2017', 'es2018', 'es2019', 'es2020', 'es2021', 'es2022', 'esnext'.", category: Diagnostics.Argument_for_0_option_must_be_Colon_1.category, code: Diagnostics.Argument_for_0_option_must_be_Colon_1.code, @@ -534,7 +534,7 @@ namespace ts { isTSConfigOnly: true, category: Diagnostics.Backwards_Compatibility, description: Diagnostics.Enable_project_compilation, - defaultValueDescription: "undefined", + defaultValueDescription: undefined, } ]; return { diff --git a/src/testRunner/unittests/config/convertCompilerOptionsFromJson.ts b/src/testRunner/unittests/config/convertCompilerOptionsFromJson.ts index 96da312068abd..97ae30d24083e 100644 --- a/src/testRunner/unittests/config/convertCompilerOptionsFromJson.ts +++ b/src/testRunner/unittests/config/convertCompilerOptionsFromJson.ts @@ -420,6 +420,70 @@ namespace ts { ); }); + it("Convert empty string option of moduleSuffixes to compiler-options ", () => { + assertCompilerOptions( + { + compilerOptions: { + moduleSuffixes: [".ios", ""] + } + }, "tsconfig.json", + { + compilerOptions: { + moduleSuffixes: [".ios", ""] + }, + errors: [] + } + ); + }); + + it("Convert empty string option of moduleSuffixes to compiler-options ", () => { + assertCompilerOptions( + { + compilerOptions: { + moduleSuffixes: [""] + } + }, "tsconfig.json", + { + compilerOptions: { + moduleSuffixes: [""] + }, + errors: [] + } + ); + }); + + it("Convert trailing-whitespace string option of moduleSuffixes to compiler-options ", () => { + assertCompilerOptions( + { + compilerOptions: { + moduleSuffixes: [" "] + } + }, "tsconfig.json", + { + compilerOptions: { + moduleSuffixes: [" "] + }, + errors: [] + } + ); + }); + + it("Convert empty option of moduleSuffixes to compiler-options ", () => { + assertCompilerOptions( + { + compilerOptions: { + moduleSuffixes: [] + } + }, "tsconfig.json", + { + compilerOptions: { + moduleSuffixes: [] + }, + errors: [] + } + ); + }); + it("Convert incorrectly format tsconfig.json to compiler-options ", () => { assertCompilerOptions( { diff --git a/src/testRunner/unittests/config/tsconfigParsing.ts b/src/testRunner/unittests/config/tsconfigParsing.ts index 3c6dfb6a53636..de793bffa4e05 100644 --- a/src/testRunner/unittests/config/tsconfigParsing.ts +++ b/src/testRunner/unittests/config/tsconfigParsing.ts @@ -412,5 +412,14 @@ namespace ts { Diagnostics.Compiler_option_0_requires_a_value_of_type_1.code, /*noLocation*/ true); }); + + it("parses wildcard directories even when parent directories have dots", () => { + const parsed = parseConfigFileTextToJson("/foo.bar/tsconfig.json", JSON.stringify({ + include: ["src"] + })); + + const parsedCommand = parseJsonConfigFileContent(parsed.config, sys, "/foo.bar"); + assert.deepEqual(parsedCommand.wildcardDirectories, { "/foo.bar/src": WatchDirectoryFlags.Recursive }); + }); }); } diff --git a/src/testRunner/unittests/createMapShim.ts b/src/testRunner/unittests/createMapShim.ts index d96524057a4c1..e76718e1f244b 100644 --- a/src/testRunner/unittests/createMapShim.ts +++ b/src/testRunner/unittests/createMapShim.ts @@ -130,9 +130,9 @@ namespace ts { } MapShim = ShimCollections.createMapShim(getIterator); - afterEach(() => { - MapShim = undefined!; - }); + }); + afterEach(() => { + MapShim = undefined!; }); it("iterates values in insertion order and handles changes with string keys", () => { diff --git a/src/testRunner/unittests/createSetShim.ts b/src/testRunner/unittests/createSetShim.ts index 28a6998e0eb07..bef82d78e2b61 100644 --- a/src/testRunner/unittests/createSetShim.ts +++ b/src/testRunner/unittests/createSetShim.ts @@ -128,9 +128,9 @@ namespace ts { } SetShim = ShimCollections.createSetShim(getIterator); - afterEach(() => { - SetShim = undefined!; - }); + }); + afterEach(() => { + SetShim = undefined!; }); it("iterates values in insertion order and handles changes with string keys", () => { diff --git a/src/testRunner/unittests/debugDeprecation.ts b/src/testRunner/unittests/debugDeprecation.ts index 86d4490c4c2c2..1687f24d40644 100644 --- a/src/testRunner/unittests/debugDeprecation.ts +++ b/src/testRunner/unittests/debugDeprecation.ts @@ -1,10 +1,12 @@ namespace ts { describe("unittests:: debugDeprecation", () => { + let loggingHost: LoggingHost | undefined; beforeEach(() => { - const loggingHost = Debug.loggingHost; - afterEach(() => { - Debug.loggingHost = loggingHost; - }); + loggingHost = Debug.loggingHost; + }); + afterEach(() => { + Debug.loggingHost = loggingHost; + loggingHost = undefined; }); describe("deprecateFunction", () => { it("silent deprecation", () => { diff --git a/src/testRunner/unittests/jsDocParsing.ts b/src/testRunner/unittests/jsDocParsing.ts index e0aa87f2a4cd2..0e544e7f77c95 100644 --- a/src/testRunner/unittests/jsDocParsing.ts +++ b/src/testRunner/unittests/jsDocParsing.ts @@ -393,13 +393,17 @@ oh.no assert.equal(last!.kind, SyntaxKind.EndOfFileToken); }); }); - describe("getStart of node with JSDoc but no parent pointers", () => { - const root = createSourceFile("foo.ts", "/** */var a = true;", ScriptTarget.ES5, /*setParentNodes*/ false); - root.statements[0].getStart(root, /*includeJsdocComment*/ true); + describe("getStart", () => { + it("runs when node with JSDoc but no parent pointers", () => { + const root = createSourceFile("foo.ts", "/** */var a = true;", ScriptTarget.ES5, /*setParentNodes*/ false); + root.statements[0].getStart(root, /*includeJsdocComment*/ true); + }); }); - describe("missing type parameter in jsDoc doesn't create a 1-element array", () => { - const doc = parseIsolatedJSDocComment("/**\n @template\n*/"); - assert.equal((doc?.jsDoc.tags?.[0] as JSDocTemplateTag).typeParameters.length, 0); + describe("parseIsolatedJSDocComment", () => { + it("doesn't create a 1-element array with missing type parameter in jsDoc", () => { + const doc = parseIsolatedJSDocComment("/**\n @template\n*/"); + assert.equal((doc?.jsDoc.tags?.[0] as JSDocTemplateTag).typeParameters.length, 0); + }); }); }); } diff --git a/src/testRunner/unittests/printer.ts b/src/testRunner/unittests/printer.ts index 50c776c0f9f6e..51e1727e7ef82 100644 --- a/src/testRunner/unittests/printer.ts +++ b/src/testRunner/unittests/printer.ts @@ -267,7 +267,7 @@ namespace ts { factory.createKeywordTypeNode(SyntaxKind.AnyKeyword) ), factory.createFunctionTypeNode( - [factory.createTypeParameterDeclaration("T")], + [factory.createTypeParameterDeclaration(/*modifiers*/ undefined, "T")], [factory.createParameterDeclaration( /*decorators*/ undefined, /*modifiers*/ undefined, diff --git a/src/testRunner/unittests/programApi.ts b/src/testRunner/unittests/programApi.ts index 359dff1c03434..e15ec0bf434d0 100644 --- a/src/testRunner/unittests/programApi.ts +++ b/src/testRunner/unittests/programApi.ts @@ -179,13 +179,13 @@ namespace ts { }); }); - describe("unittests:: programApi:: Program.getDiagnosticsProducingTypeChecker / Program.getSemanticDiagnostics", () => { + describe("unittests:: programApi:: Program.getTypeChecker / Program.getSemanticDiagnostics", () => { it("does not produce errors on `as const` it would not normally produce on the command line", () => { const main = new documents.TextDocument("/main.ts", "0 as const"); const fs = vfs.createFromFileSystem(Harness.IO, /*ignoreCase*/ false, { documents: [main], cwd: "/" }); const program = createProgram(["/main.ts"], {}, new fakes.CompilerHost(fs, { newLine: NewLineKind.LineFeed })); - const typeChecker = program.getDiagnosticsProducingTypeChecker(); + const typeChecker = program.getTypeChecker(); const sourceFile = program.getSourceFile("main.ts")!; typeChecker.getTypeAtLocation(((sourceFile.statements[0] as ExpressionStatement).expression as AsExpression).type); const diag = program.getSemanticDiagnostics(); @@ -199,7 +199,7 @@ namespace ts { const program = createProgram(["/main.ts"], {}, new fakes.CompilerHost(fs, { newLine: NewLineKind.LineFeed })); const sourceFile = program.getSourceFile("main.ts")!; - const typeChecker = program.getDiagnosticsProducingTypeChecker(); + const typeChecker = program.getTypeChecker(); typeChecker.getSymbolAtLocation((sourceFile.statements[0] as ImportDeclaration).moduleSpecifier); assert.isEmpty(program.getSemanticDiagnostics()); }); diff --git a/src/testRunner/unittests/publicApi.ts b/src/testRunner/unittests/publicApi.ts index e741e902b4e31..883b979f9c72e 100644 --- a/src/testRunner/unittests/publicApi.ts +++ b/src/testRunner/unittests/publicApi.ts @@ -182,34 +182,3 @@ describe("unittests:: Public APIs:: getChild* methods on EndOfFileToken with JSD assert.equal(endOfFileToken.getChildCount(), 1); assert.notEqual(endOfFileToken.getChildAt(0), /*expected*/ undefined); }); - -describe("unittests:: Public APIs:: sys", () => { - it("readDirectory", () => { - // #45990, testing passing a non-absolute path - // `sys.readDirectory` is just `matchFiles` plugged into the real FS - const read = ts.matchFiles( - /*path*/ "", - /*extensions*/ [".ts", ".tsx"], - /*excludes*/ ["node_modules", "dist"], - /*includes*/ ["**/*"], - /*useCaseSensitiveFileNames*/ true, - /*currentDirectory*/ "/", - /*depth*/ undefined, - /*getFileSystemEntries*/ path => { - switch (path) { - case "/": return { directories: [], files: ["file.ts"] }; - default: return { directories: [], files: [] }; - } - }, - /*realpath*/ ts.identity, - /*directoryExists*/ path => { - switch (path) { - case "/": return true; - default: return false; - } - } - ); - - assert.deepEqual(read, ["/file.ts"]); - }); -}); diff --git a/src/testRunner/unittests/reuseProgramStructure.ts b/src/testRunner/unittests/reuseProgramStructure.ts index 6dc13de241d47..3e9e5f2313441 100644 --- a/src/testRunner/unittests/reuseProgramStructure.ts +++ b/src/testRunner/unittests/reuseProgramStructure.ts @@ -234,7 +234,7 @@ namespace ts { }); assert.equal(program2.structureIsReused, StructureIsReused.Completely); const program1Diagnostics = program1.getSemanticDiagnostics(program1.getSourceFile("a.ts")); - const program2Diagnostics = program2.getSemanticDiagnostics(program1.getSourceFile("a.ts")); + const program2Diagnostics = program2.getSemanticDiagnostics(program2.getSourceFile("a.ts")); assert.equal(program1Diagnostics.length, program2Diagnostics.length); }); @@ -245,7 +245,26 @@ namespace ts { }); assert.equal(program2.structureIsReused, StructureIsReused.Completely); const program1Diagnostics = program1.getSemanticDiagnostics(program1.getSourceFile("a.ts")); - const program2Diagnostics = program2.getSemanticDiagnostics(program1.getSourceFile("a.ts")); + const program2Diagnostics = program2.getSemanticDiagnostics(program2.getSourceFile("a.ts")); + assert.equal(program1Diagnostics.length, program2Diagnostics.length); + }); + + it("successful if change affects a single module of a package", () => { + const files = [ + { name: "/a.ts", text: SourceText.New("", "import {b} from 'b'", "var a = b;") }, + { name: "/node_modules/b/index.d.ts", text: SourceText.New("", "export * from './internal';", "") }, + { name: "/node_modules/b/internal.d.ts", text: SourceText.New("", "", "export const b = 1;") }, + { name: "/node_modules/b/package.json", text: SourceText.New("", "", JSON.stringify({ name: "b", version: "1.2.3" })) }, + ]; + + const options: CompilerOptions = { target, moduleResolution: ModuleResolutionKind.NodeJs }; + const program1 = newProgram(files, ["/a.ts"], options); + const program2 = updateProgram(program1, ["/a.ts"], options, files => { + files[2].text = files[2].text.updateProgram("export const b = 2;"); + }); + assert.equal(program2.structureIsReused, StructureIsReused.Completely); + const program1Diagnostics = program1.getSemanticDiagnostics(program1.getSourceFile("a.ts")); + const program2Diagnostics = program2.getSemanticDiagnostics(program2.getSourceFile("a.ts")); assert.equal(program1Diagnostics.length, program2Diagnostics.length); }); diff --git a/src/testRunner/unittests/services/extract/constants.ts b/src/testRunner/unittests/services/extract/constants.ts index d9cd5010d5b09..05c3aa5ac52bb 100644 --- a/src/testRunner/unittests/services/extract/constants.ts +++ b/src/testRunner/unittests/services/extract/constants.ts @@ -279,6 +279,19 @@ switch (1) { break; } `); + + testExtractConstant("extractConstant_PropertyName", + `[#|x.y|].z();`); + + testExtractConstant("extractConstant_PropertyName_ExistingName", + `let y; +[#|x.y|].z();`); + + testExtractConstant("extractConstant_PropertyName_Keyword", + `[#|x.if|].z();`); + + testExtractConstant("extractConstant_PropertyName_PrivateIdentifierKeyword", + `[#|this.#if|].z();`); }); function testExtractConstant(caption: string, text: string) { diff --git a/src/testRunner/unittests/services/extract/helpers.ts b/src/testRunner/unittests/services/extract/helpers.ts index 9e86a96c617f2..660c903bd2bf3 100644 --- a/src/testRunner/unittests/services/extract/helpers.ts +++ b/src/testRunner/unittests/services/extract/helpers.ts @@ -72,6 +72,8 @@ namespace ts { getScriptSnapshot: notImplemented, getDefaultLibFileName: notImplemented, getCurrentDirectory: notImplemented, + readFile: notImplemented, + fileExists: notImplemented }; export function testExtractSymbol(caption: string, text: string, baselineFolder: string, description: DiagnosticMessage, includeLib?: boolean) { @@ -107,14 +109,14 @@ namespace ts { }; const rangeToExtract = refactor.extractSymbol.getRangeToExtract(sourceFile, createTextSpanFromRange(selectionRange)); assert.equal(rangeToExtract.errors, undefined, rangeToExtract.errors && "Range error: " + rangeToExtract.errors[0].messageText); - const infos = refactor.extractSymbol.getAvailableActions(context); + const infos = refactor.extractSymbol.getRefactorActionsToExtractSymbol(context); const actions = find(infos, info => info.description === description.message)!.actions; const data: string[] = []; data.push(`// ==ORIGINAL==`); data.push(text.replace("[#|", "/*[#|*/").replace("|]", "/*|]*/")); for (const action of actions) { - const { renameLocation, edits } = refactor.extractSymbol.getEditsForAction(context, action.name)!; + const { renameLocation, edits } = refactor.extractSymbol.getRefactorEditsToExtractSymbol(context, action.name)!; assert.lengthOf(edits, 1); data.push(`// ==SCOPE::${action.description}==`); const newText = textChanges.applyChanges(sourceFile.text, edits[0].textChanges); @@ -170,7 +172,7 @@ namespace ts { }; const rangeToExtract = refactor.extractSymbol.getRangeToExtract(sourceFile, createTextSpanFromRange(selectionRange)); assert.isUndefined(rangeToExtract.errors, rangeToExtract.errors && "Range error: " + rangeToExtract.errors[0].messageText); - const infos = refactor.extractSymbol.getAvailableActions(context); + const infos = refactor.extractSymbol.getRefactorActionsToExtractSymbol(context); assert.isUndefined(find(infos, info => info.description === description.message)); }); } diff --git a/src/testRunner/unittests/services/extract/ranges.ts b/src/testRunner/unittests/services/extract/ranges.ts index 2264f3982ff79..34f379df26d3c 100644 --- a/src/testRunner/unittests/services/extract/ranges.ts +++ b/src/testRunner/unittests/services/extract/ranges.ts @@ -191,7 +191,7 @@ namespace ts { testExtractRange("extractRange28", `[#|return [$|1|];|]`); // For statements - testExtractRange("extractRange29", `for ([#|var i = 1|]; i < 2; i++) {}`); + testExtractRange("extractRange29", `for ([#|var i = [$|1|]|]; i < 2; i++) {}`); testExtractRange("extractRange30", `for (var i = [#|[$|1|]|]; i < 2; i++) {}`); }); diff --git a/src/testRunner/unittests/services/hostNewLineSupport.ts b/src/testRunner/unittests/services/hostNewLineSupport.ts index 057cb60602a4b..762b8e3ddc159 100644 --- a/src/testRunner/unittests/services/hostNewLineSupport.ts +++ b/src/testRunner/unittests/services/hostNewLineSupport.ts @@ -15,6 +15,12 @@ namespace ts { getScriptSnapshot: name => snapFor(name), getDefaultLibFileName: () => "lib.d.ts", getCurrentDirectory: () => "", + readFile: name => { + const snap = snapFor(name); + if (!snap) return undefined; + return snap.getText(0, snap.getLength()); + }, + fileExists: name => !!snapFor(name), }; return createLanguageService(lshost); } diff --git a/src/testRunner/unittests/services/languageService.ts b/src/testRunner/unittests/services/languageService.ts index a1f7e5844b84d..c3f5f019541af 100644 --- a/src/testRunner/unittests/services/languageService.ts +++ b/src/testRunner/unittests/services/languageService.ts @@ -39,6 +39,8 @@ export function Component(x: Config): any;` getDefaultLibFileName(options) { return getDefaultLibFilePath(options); }, + fileExists: name => !!files[name], + readFile: name => files[name] }); } // Regression test for GH #18245 - bug in single line comment writer caused a debug assertion when attempting @@ -94,6 +96,7 @@ export function Component(x: Config): any;` useCaseSensitiveFileNames: returnTrue, getCompilationSettings: getDefaultCompilerOptions, fileExists: path => files.has(path), + readFile: path => files.get(path)?.text, getProjectVersion: !useProjectVersion ? undefined : () => projectVersion, getScriptFileNames: () => ["/project/root.ts"], getScriptVersion: path => files.get(path)?.version || "", @@ -189,6 +192,7 @@ export function Component(x: Config): any;` useSourceOfProjectReferenceRedirect, getCompilationSettings: () => result.options, fileExists: path => system.fileExists(path), + readFile: path => system.readFile(path), getScriptFileNames: () => result.fileNames, getScriptVersion: path => { const text = system.readFile(path); diff --git a/src/testRunner/unittests/services/preProcessFile.ts b/src/testRunner/unittests/services/preProcessFile.ts index fb7a7e62649d4..a6369d6e4d4cf 100644 --- a/src/testRunner/unittests/services/preProcessFile.ts +++ b/src/testRunner/unittests/services/preProcessFile.ts @@ -176,6 +176,177 @@ describe("unittests:: services:: PreProcessFile:", () => { }); }); + it("Correctly ignore commented imports following template expression", () => { + /* eslint-disable no-template-curly-in-string */ + test("/**" + "\n" + + " * Before" + "\n" + + " * ```" + "\n" + + " * import * as a from \"a\";" + "\n" + + " * ```" + "\n" + + " */" + "\n" + + "type Foo = `${string}`;" + "\n" + + "/**" + "\n" + + " * After" + "\n" + + " * ```" + "\n" + + " * import { B } from \"b\";" + "\n" + + " * import * as c from \"c\";" + "\n" + + " * ```" + "\n" + + " */", + /*readImportFile*/ true, + /*detectJavaScriptImports*/ true, + { + referencedFiles: [], + typeReferenceDirectives: [], + libReferenceDirectives: [], + importedFiles: [], + ambientExternalModules: undefined, + isLibFile: false + }); + /* eslint-enable no-template-curly-in-string */ + }); + + it("Correctly returns imports after a template expression", () => { + /* eslint-disable no-template-curly-in-string */ + test("`${foo}`; import \"./foo\";", + /*readImportFile*/ true, + /*detectJavaScriptImports*/ true, + { + referencedFiles: [], + typeReferenceDirectives: [], + libReferenceDirectives: [], + importedFiles: [ + { fileName: "./foo", pos: 17, end: 22 } + ], + ambientExternalModules: undefined, + isLibFile: false + }); + /* eslint-enable no-template-curly-in-string */ + }); + + it("Correctly returns dynamic imports from template expression", () => { + /* eslint-disable no-template-curly-in-string */ + test("`${(
Text `` ${} text {} " + "\n" + + "${import(\"a\")} {import(\"b\")} " + "\n" + + "${/* A comment */} ${/* import(\"ignored\") */}
)}`", + /*readImportFile*/ true, + /*detectJavaScriptImports*/ true, + { + referencedFiles: [], + typeReferenceDirectives: [], + libReferenceDirectives: [], + importedFiles: [ + { fileName: "a", pos: 39, end: 40 }, + { fileName: "b", pos: 53, end: 54 } + ], + ambientExternalModules: undefined, + isLibFile: false + }); + /* eslint-enable no-template-curly-in-string */ + }); + + it("Correctly returns dynamic imports from nested template expression", () => { + /* eslint-disable no-template-curly-in-string */ + test("`${foo(`${bar(`${import(\"a\")} ${import(\"b\")}`, `${baz(`${import(\"c\") ${import(\"d\")}`)}`)}`)}`", + /*readImportFile*/ true, + /*detectJavaScriptImports*/ true, + { + referencedFiles: [], + typeReferenceDirectives: [], + libReferenceDirectives: [], + importedFiles: [ + { fileName: "a", pos: 24, end: 25 }, + { fileName: "b", pos: 39, end: 40 }, + { fileName: "c", pos: 64, end: 65 }, + { fileName: "d", pos: 78, end: 79 }, + ], + ambientExternalModules: undefined, + isLibFile: false + }); + /* eslint-enable no-template-curly-in-string */ + }); + + it("Correctly returns dynamic imports from tagged template expression", () => { + /* eslint-disable no-template-curly-in-string */ + test("foo`${ fn({ a: 100 }, import(\"a\"), `${import(\"b\")}`, import(\"c\"), `${import(\"d\")} foo`, import(\"e\")) }`", + /*readImportFile*/ true, + /*detectJavaScriptImports*/ true, + { + referencedFiles: [], + typeReferenceDirectives: [], + libReferenceDirectives: [], + importedFiles: [ + { fileName: "a", pos: 29, end: 30 }, + { fileName: "b", pos: 45, end: 46 }, + { fileName: "c", pos: 60, end: 61 }, + { fileName: "d", pos: 76, end: 77 }, + { fileName: "e", pos: 95, end: 96 }, + ], + ambientExternalModules: undefined, + isLibFile: false + }); + /* eslint-enable no-template-curly-in-string */ + }); + + it("Correctly returns dynamic imports from template expression and imports following it", () => { + /* eslint-disable no-template-curly-in-string */ + test("const x = `hello ${await import(\"a\").default}`;" + "\n\n" + + "import { y } from \"b\";", + /*readImportFile*/ true, + /*detectJavaScriptImports*/ true, + { + referencedFiles: [], + typeReferenceDirectives: [], + libReferenceDirectives: [], + importedFiles: [ + { fileName: "a", pos: 32, end: 33 }, + { fileName: "b", pos: 67, end: 68 }, + ], + ambientExternalModules: undefined, + isLibFile: false + }); + /* eslint-enable no-template-curly-in-string */ + }); + + it("Correctly returns dynamic imports from template expressions and other imports", () => { + /* eslint-disable no-template-curly-in-string */ + test("const x = `x ${await import(\"a\").default}`;" + "\n\n" + + "import { y } from \"b\";" + "\n" + + "const y = `y ${import(\"c\")}`;" + "\n\n" + + "import { d } from \"d\";", + /*readImportFile*/ true, + /*detectJavaScriptImports*/ true, + { + referencedFiles: [], + typeReferenceDirectives: [], + libReferenceDirectives: [], + importedFiles: [ + { fileName: "a", pos: 28, end: 29 }, + { fileName: "b", pos: 63, end: 64 }, + { fileName: "c", pos: 90, end: 91 }, + { fileName: "d", pos: 117, end: 118 }, + ], + ambientExternalModules: undefined, + isLibFile: false + }); + /* eslint-enable no-template-curly-in-string */ + }); + + it("Correctly returns empty importedFiles with incorrect template expression", () => { + /* eslint-disable no-template-curly-in-string */ + test("const foo = `${", + /*readImportFile*/ true, + /*detectJavaScriptImports*/ true, + { + referencedFiles: [], + typeReferenceDirectives: [], + libReferenceDirectives: [], + importedFiles: [], + ambientExternalModules: undefined, + isLibFile: false + }); + /* eslint-enable no-template-curly-in-string */ + }); + it("Correctly return ES6 exports", () => { test("export * from \"m1\";" + "\n" + "export {a} from \"m2\";" + "\n" + diff --git a/src/testRunner/unittests/transform.ts b/src/testRunner/unittests/transform.ts index 476dc6540d502..256a1db2e303e 100644 --- a/src/testRunner/unittests/transform.ts +++ b/src/testRunner/unittests/transform.ts @@ -599,6 +599,63 @@ module MyModule { }, exports => { assert.equal(exports.stringLength, 5); }); + + function addStaticFieldWithComment(context: TransformationContext) { + return (sourceFile: SourceFile): SourceFile => { + return visitNode(sourceFile, rootTransform, isSourceFile); + }; + function rootTransform(node: T): Node { + if (isClassLike(node)) { + const newMembers = [factory.createPropertyDeclaration(/* decorators */ undefined, [factory.createModifier(SyntaxKind.StaticKeyword)], "newField", /* questionOrExclamationToken */ undefined, /* type */ undefined, factory.createStringLiteral("x"))]; + setSyntheticLeadingComments(newMembers[0], [{ kind: SyntaxKind.MultiLineCommentTrivia, text: "comment", pos: -1, end: -1, hasTrailingNewLine: true }]); + return isClassDeclaration(node) ? + factory.updateClassDeclaration( + node, node.decorators, + /* modifierFlags */ undefined, node.name, + node.typeParameters, node.heritageClauses, + newMembers) : + factory.updateClassExpression( + node, node.decorators, + /* modifierFlags */ undefined, node.name, + node.typeParameters, node.heritageClauses, + newMembers); + } + return visitEachChild(node, rootTransform, context); + } + } + + testBaseline("transformSyntheticCommentOnStaticFieldInClassDeclaration", () => { + return transpileModule(` +declare const Decorator: any; +@Decorator +class MyClass { +} +`, { + transformers: { + before: [addStaticFieldWithComment], + }, + compilerOptions: { + target: ScriptTarget.ES2015, + newLine: NewLineKind.CarriageReturnLineFeed, + } + }).outputText; + }); + + testBaseline("transformSyntheticCommentOnStaticFieldInClassExpression", () => { + return transpileModule(` +const MyClass = class { +}; +`, { + transformers: { + before: [addStaticFieldWithComment], + }, + compilerOptions: { + target: ScriptTarget.ES2015, + newLine: NewLineKind.CarriageReturnLineFeed, + } + }).outputText; + }); + }); } diff --git a/src/testRunner/unittests/tsbuild/publicApi.ts b/src/testRunner/unittests/tsbuild/publicApi.ts index d3c39188b421a..4b9d5ae5b6060 100644 --- a/src/testRunner/unittests/tsbuild/publicApi.ts +++ b/src/testRunner/unittests/tsbuild/publicApi.ts @@ -54,7 +54,7 @@ export function f22() { } // trailing`, /*createProgram*/ undefined, createDiagnosticReporter(sys, /*pretty*/ true), createBuilderStatusReporter(sys, /*pretty*/ true), - errorCount => sys.write(getErrorSummaryText(errorCount, sys.newLine)) + (errorCount, filesInError) => sys.write(getErrorSummaryText(errorCount, filesInError, sys.newLine, sys)) ); buildHost.afterProgramEmitAndDiagnostics = cb; buildHost.afterEmitBundle = cb; @@ -121,4 +121,4 @@ ${patch ? vfs.formatPatch(patch) : ""}` }); verifyTscBaseline(() => sys); }); -} \ No newline at end of file +} diff --git a/src/testRunner/unittests/tsc/incremental.ts b/src/testRunner/unittests/tsc/incremental.ts index a8fe334de7c7f..13a644a62082a 100644 --- a/src/testRunner/unittests/tsc/incremental.ts +++ b/src/testRunner/unittests/tsc/incremental.ts @@ -418,5 +418,36 @@ declare global { incrementalScenarios: noChangeOnlyRuns, baselinePrograms: true }); + + verifyTscSerializedIncrementalEdits({ + scenario: "incremental", + subScenario: "serializing error chains", + commandLineArgs: ["-p", `src/project`], + fs: () => loadProjectFromFiles({ + "/src/project/tsconfig.json": JSON.stringify({ + compilerOptions: { + incremental: true, + strict: true, + jsx: "react", + module: "esnext", + }, + }), + "/src/project/index.tsx": Utils.dedent` + declare namespace JSX { + interface ElementChildrenAttribute { children: {}; } + interface IntrinsicElements { div: {} } + } + + declare var React: any; + + declare function Component(props: never): any; + declare function Component(props: { children?: number }): any; + ( +
+
+ )` + }, `\ninterface ReadonlyArray { readonly length: number }`), + incrementalScenarios: noChangeOnlyRuns, + }); }); } diff --git a/src/testRunner/unittests/tscWatch/helpers.ts b/src/testRunner/unittests/tscWatch/helpers.ts index 813615fb869a2..881502781b80f 100644 --- a/src/testRunner/unittests/tscWatch/helpers.ts +++ b/src/testRunner/unittests/tscWatch/helpers.ts @@ -204,13 +204,18 @@ namespace ts.tscWatch { assert.equal(host.exitCode, expectedExitCode); } - export function checkNormalBuildErrors(host: WatchedSystem, errors: readonly Diagnostic[] | readonly string[], reportErrorSummary?: boolean) { + export function checkNormalBuildErrors( + host: WatchedSystem, + errors: readonly Diagnostic[] | readonly string[], + files: readonly ReportFileInError[], + reportErrorSummary?: boolean + ) { checkOutputErrors( host, [ ...map(errors, hostOutputDiagnostic), ...reportErrorSummary ? - [hostOutputWatchDiagnostic(getErrorSummaryText(errors.length, host.newLine))] : + [hostOutputWatchDiagnostic(getErrorSummaryText(errors.length, files, host.newLine, host))] : emptyArray ] ); diff --git a/src/testRunner/unittests/tscWatch/programUpdates.ts b/src/testRunner/unittests/tscWatch/programUpdates.ts index c7d2e1dec26f7..ea5ab542f52a9 100644 --- a/src/testRunner/unittests/tscWatch/programUpdates.ts +++ b/src/testRunner/unittests/tscWatch/programUpdates.ts @@ -638,6 +638,34 @@ export class A { ] }); + verifyTscWatch({ + scenario, + subScenario: "file in files is deleted", + commandLineArgs: ["-w", "-p", configFilePath], + sys: () => { + const file1 = { + path: "/a/b/f1.ts", + content: "let x = 1" + }; + const file2 = { + path: "/a/b/f2.ts", + content: "let y = 1" + }; + const configFile = { + path: configFilePath, + content: JSON.stringify({ compilerOptions: {}, files: ["f1.ts", "f2.ts"] }) + }; + return createWatchedSystem([file1, file2, libFile, configFile]); + }, + changes: [ + { + caption: "Delete f2", + change: sys => sys.deleteFile("/a/b/f2.ts"), + timeouts: checkSingleTimeoutQueueLengthAndRun, + } + ] + }); + verifyTscWatch({ scenario, subScenario: "config file is deleted", @@ -1815,5 +1843,29 @@ import { x } from "../b";`), }, ] }); + + verifyTscWatch({ + scenario, + subScenario: "when creating extensionless file", + commandLineArgs: ["-w", "-p", ".", "--extendedDiagnostics"], + sys: () => { + const module1: File = { + path: `${projectRoot}/index.ts`, + content: `` + }; + const config: File = { + path: `${projectRoot}/tsconfig.json`, + content: `{}` + }; + return createWatchedSystem([module1, config, libFile], { currentDirectory: projectRoot }); + }, + changes: [ + { + caption: "Create foo in project root", + change: sys => sys.writeFile(`${projectRoot}/foo`, ``), + timeouts: checkSingleTimeoutQueueLengthAndRun, + }, + ] + }); }); } diff --git a/src/testRunner/unittests/tsserver/autoImportProvider.ts b/src/testRunner/unittests/tsserver/autoImportProvider.ts index 9d1978849295b..f05d06f484237 100644 --- a/src/testRunner/unittests/tsserver/autoImportProvider.ts +++ b/src/testRunner/unittests/tsserver/autoImportProvider.ts @@ -326,7 +326,7 @@ namespace ts.projectSystem { }; function updateFile(path: string, newText: string) { - Debug.assertDefined(files.find(f => f.path === path)); + Debug.assertIsDefined(files.find(f => f.path === path)); session.executeCommandSeq({ command: protocol.CommandTypes.ApplyChangedToOpenFiles, arguments: { @@ -339,7 +339,7 @@ namespace ts.projectSystem { } function findAllReferences(file: string, line: number, offset: number) { - Debug.assertDefined(files.find(f => f.path === file)); + Debug.assertIsDefined(files.find(f => f.path === file)); session.executeCommandSeq({ command: protocol.CommandTypes.References, arguments: { diff --git a/src/testRunner/unittests/tsserver/completions.ts b/src/testRunner/unittests/tsserver/completions.ts index 4dff530a75b89..ab84366efc933 100644 --- a/src/testRunner/unittests/tsserver/completions.ts +++ b/src/testRunner/unittests/tsserver/completions.ts @@ -42,7 +42,8 @@ namespace ts.projectSystem { source: "/a", sourceDisplay: undefined, isSnippet: undefined, - data: { exportName: "foo", fileName: "/a.ts", ambientModuleName: undefined, isPackageJsonImport: undefined } + data: { exportName: "foo", fileName: "/a.ts", ambientModuleName: undefined, isPackageJsonImport: undefined }, + labelDetails: undefined, }; // `data.exportMapKey` contains a SymbolId so should not be mocked up with an expected value here. @@ -85,7 +86,7 @@ namespace ts.projectSystem { { codeActions: [ { - description: `Import 'foo' from module "./a"`, + description: `Add import from "./a"`, changes: [ { fileName: "/b.ts", @@ -118,7 +119,7 @@ namespace ts.projectSystem { { codeActions: [ { - description: `Import 'foo' from module "./a"`, + description: `Add import from "./a"`, changes: [ { fileName: "/b.ts", diff --git a/src/testRunner/unittests/tsserver/declarationFileMaps.ts b/src/testRunner/unittests/tsserver/declarationFileMaps.ts index c52e2ad807a74..79d3ad623f0fd 100644 --- a/src/testRunner/unittests/tsserver/declarationFileMaps.ts +++ b/src/testRunner/unittests/tsserver/declarationFileMaps.ts @@ -286,6 +286,8 @@ namespace ts.projectSystem { const session = makeSampleProjects(); const response = executeSessionRequest(session, CommandNames.Navto, { file: userTs.path, searchValue: "fn" }); assert.deepEqual(response, [ + // Keep the .d.ts file since the .ts file no longer exists + // (otherwise it would be treated as not in the project) { ...protocolFileSpanFromSubstring({ file: bDts, @@ -308,20 +310,9 @@ namespace ts.projectSystem { kind: ScriptElementKind.functionElement, kindModifiers: "export", }, - { - ...protocolFileSpanFromSubstring({ - file: aTs, - text: "export function fnA() {}" - }), - name: "fnA", - matchKind: "prefix", - isCaseSensitive: true, - kind: ScriptElementKind.functionElement, - kindModifiers: "export", - }, ]); - verifyATsConfigOriginalProject(session); + verifySingleInferredProject(session); }); it("navigateToAll -- when neither file nor project is specified", () => { diff --git a/src/testRunner/unittests/tsserver/duplicatePackages.ts b/src/testRunner/unittests/tsserver/duplicatePackages.ts index c6e4868ba4ab7..366ca5ea379c4 100644 --- a/src/testRunner/unittests/tsserver/duplicatePackages.ts +++ b/src/testRunner/unittests/tsserver/duplicatePackages.ts @@ -33,7 +33,7 @@ namespace ts.projectSystem { }); assert.deepEqual(response, [ { - description: `Import 'foo' from module "foo"`, + description: `Add import from "foo"`, fixName: "import", changes: [{ fileName: user.path, diff --git a/src/testRunner/unittests/tsserver/exportMapCache.ts b/src/testRunner/unittests/tsserver/exportMapCache.ts index 5eb69c514cd1b..184200c07cbe4 100644 --- a/src/testRunner/unittests/tsserver/exportMapCache.ts +++ b/src/testRunner/unittests/tsserver/exportMapCache.ts @@ -19,6 +19,10 @@ namespace ts.projectSystem { path: "/ambient.d.ts", content: "declare module 'ambient' {}" }; + const mobxPackageJson: File = { + path: "/node_modules/mobx/package.json", + content: `{ "name": "mobx", "version": "1.0.0" }` + }; const mobxDts: File = { path: "/node_modules/mobx/index.d.ts", content: "export declare function observable(): unknown;" @@ -83,8 +87,8 @@ namespace ts.projectSystem { // transient symbols are recreated with every new checker. const programBefore = project.getCurrentProgram()!; let sigintPropBefore: readonly SymbolExportInfo[] | undefined; - exportMapCache.forEach(bTs.path as Path, (info, name) => { - if (name === "SIGINT") sigintPropBefore = info; + exportMapCache.search(bTs.path as Path, /*preferCapitalized*/ false, returnTrue, (info, symbolName) => { + if (symbolName === "SIGINT") sigintPropBefore = info; }); assert.ok(sigintPropBefore); assert.ok(sigintPropBefore![0].symbol.flags & SymbolFlags.Transient); @@ -109,8 +113,8 @@ namespace ts.projectSystem { // Get same info from cache again let sigintPropAfter: readonly SymbolExportInfo[] | undefined; - exportMapCache.forEach(bTs.path as Path, (info, name) => { - if (name === "SIGINT") sigintPropAfter = info; + exportMapCache.search(bTs.path as Path, /*preferCapitalized*/ false, returnTrue, (info, symbolName) => { + if (symbolName === "SIGINT") sigintPropAfter = info; }); assert.ok(sigintPropAfter); assert.notEqual(symbolIdBefore, getSymbolId(sigintPropAfter![0].symbol)); @@ -118,7 +122,7 @@ namespace ts.projectSystem { }); function setup() { - const host = createServerHost([aTs, bTs, ambientDeclaration, tsconfig, packageJson, mobxDts, exportEqualsMappedType]); + const host = createServerHost([aTs, bTs, ambientDeclaration, tsconfig, packageJson, mobxPackageJson, mobxDts, exportEqualsMappedType]); const session = createSession(host); openFilesForSession([aTs, bTs], session); const projectService = session.getProjectService(); diff --git a/src/testRunner/unittests/tsserver/languageService.ts b/src/testRunner/unittests/tsserver/languageService.ts index 86d426664df7c..8e7bf0eedcdaa 100644 --- a/src/testRunner/unittests/tsserver/languageService.ts +++ b/src/testRunner/unittests/tsserver/languageService.ts @@ -1,5 +1,5 @@ namespace ts.projectSystem { - describe("unittests:: tsserver:: Language service", () => { + describe("unittests:: tsserver:: languageService", () => { it("should work correctly on case-sensitive file systems", () => { const lib = { path: "/a/Lib/lib.d.ts", @@ -15,5 +15,54 @@ namespace ts.projectSystem { projectService.checkNumberOfProjects({ inferredProjects: 1 }); projectService.inferredProjects[0].getLanguageService().getProgram(); }); + + it("should support multiple projects with the same file under differing `paths` settings", () => { + const files = [ + { + path: "/project/shared.ts", + content: Utils.dedent` + import {foo_a} from "foo"; + ` + }, + { + path: `/project/a/tsconfig.json`, + content: `{ "compilerOptions": { "paths": { "foo": ["./foo.d.ts"] } }, "files": ["./index.ts", "./foo.d.ts"] }` + }, + { + path: `/project/a/foo.d.ts`, + content: Utils.dedent` + export const foo_a = 1; + ` + }, + { + path: "/project/a/index.ts", + content: `import "../shared";` + }, + { + path: `/project/b/tsconfig.json`, + content: `{ "compilerOptions": { "paths": { "foo": ["./foo.d.ts"] } }, "files": ["./index.ts", "./foo.d.ts"] }` + }, + { + path: `/project/b/foo.d.ts`, + content: Utils.dedent` + export const foo_b = 1; + ` + }, + { + path: "/project/b/index.ts", + content: `import "../shared";` + } + ]; + + const host = createServerHost(files, { executingFilePath: "/project/tsc.js", useCaseSensitiveFileNames: true }); + const projectService = createProjectService(host); + projectService.openClientFile(files[3].path); + projectService.openClientFile(files[6].path); + projectService.checkNumberOfProjects({ configuredProjects: 2 }); + const proj1Diags = projectService.configuredProjects.get(files[1].path)!.getLanguageService().getProgram()!.getSemanticDiagnostics(); + Debug.assertEqual(proj1Diags.length, 0); + const proj2Diags = projectService.configuredProjects.get(files[4].path)!.getLanguageService().getProgram()!.getSemanticDiagnostics(); + Debug.assertEqual(proj2Diags.length, 1); + }); }); } diff --git a/src/testRunner/unittests/tsserver/moduleSpecifierCache.ts b/src/testRunner/unittests/tsserver/moduleSpecifierCache.ts index fd57438a2691e..60e584882a0d2 100644 --- a/src/testRunner/unittests/tsserver/moduleSpecifierCache.ts +++ b/src/testRunner/unittests/tsserver/moduleSpecifierCache.ts @@ -27,6 +27,10 @@ namespace ts.projectSystem { path: "/src/ambient.d.ts", content: "declare module 'ambient' {}" }; + const mobxPackageJson: File = { + path: "/node_modules/mobx/package.json", + content: `{ "name": "mobx", "version": "1.0.0" }` + }; const mobxDts: File = { path: "/node_modules/mobx/index.d.ts", content: "export declare function observable(): unknown;" @@ -35,14 +39,14 @@ namespace ts.projectSystem { describe("unittests:: tsserver:: moduleSpecifierCache", () => { it("caches importability within a file", () => { const { moduleSpecifierCache } = setup(); - assert.isTrue(moduleSpecifierCache.get(bTs.path as Path, aTs.path as Path, {})?.isAutoImportable); + assert.isTrue(moduleSpecifierCache.get(bTs.path as Path, aTs.path as Path, {}, {})?.isAutoImportable); }); it("caches module specifiers within a file", () => { const { moduleSpecifierCache, triggerCompletions } = setup(); // Completion at an import statement will calculate and cache module specifiers triggerCompletions({ file: cTs.path, line: 1, offset: cTs.content.length + 1 }); - const mobxCache = moduleSpecifierCache.get(cTs.path as Path, mobxDts.path as Path, {}); + const mobxCache = moduleSpecifierCache.get(cTs.path as Path, mobxDts.path as Path, {}, {}); assert.deepEqual(mobxCache, { modulePaths: [{ path: mobxDts.path, @@ -68,7 +72,7 @@ namespace ts.projectSystem { const { host, moduleSpecifierCache } = setup(); host.writeFile("/src/a2.ts", aTs.content); host.runQueuedTimeoutCallbacks(); - assert.isTrue(moduleSpecifierCache.get(bTs.path as Path, aTs.path as Path, {})?.isAutoImportable); + assert.isTrue(moduleSpecifierCache.get(bTs.path as Path, aTs.path as Path, {}, {})?.isAutoImportable); }); it("invalidates the cache when symlinks are added or removed", () => { @@ -114,13 +118,13 @@ namespace ts.projectSystem { assert.isUndefined(getWithPreferences(preferences)); function getWithPreferences(preferences: UserPreferences) { - return moduleSpecifierCache.get(bTs.path as Path, aTs.path as Path, preferences); + return moduleSpecifierCache.get(bTs.path as Path, aTs.path as Path, preferences, {}); } }); }); function setup() { - const host = createServerHost([aTs, bTs, cTs, bSymlink, ambientDeclaration, tsconfig, packageJson, mobxDts]); + const host = createServerHost([aTs, bTs, cTs, bSymlink, ambientDeclaration, tsconfig, packageJson, mobxPackageJson, mobxDts]); const session = createSession(host); openFilesForSession([aTs, bTs, cTs], session); const projectService = session.getProjectService(); diff --git a/src/testRunner/unittests/tsserver/partialSemanticServer.ts b/src/testRunner/unittests/tsserver/partialSemanticServer.ts index 290cd1cade215..2aee331883dcf 100644 --- a/src/testRunner/unittests/tsserver/partialSemanticServer.ts +++ b/src/testRunner/unittests/tsserver/partialSemanticServer.ts @@ -75,6 +75,7 @@ import { something } from "something"; data: undefined, sourceDisplay: undefined, isSnippet: undefined, + labelDetails: undefined, }; } }); diff --git a/src/testRunner/unittests/tsserver/projectReferencesSourcemap.ts b/src/testRunner/unittests/tsserver/projectReferencesSourcemap.ts index d50f879a60dc5..e49522f7dc96b 100644 --- a/src/testRunner/unittests/tsserver/projectReferencesSourcemap.ts +++ b/src/testRunner/unittests/tsserver/projectReferencesSourcemap.ts @@ -271,7 +271,7 @@ fn5(); }); } - interface Action { + interface Action { reqName: string; request: Partial; expectedResponse: Response; diff --git a/src/testRunner/unittests/tsserver/projects.ts b/src/testRunner/unittests/tsserver/projects.ts index cd9ba6c92bf0c..a9df947bf2b73 100644 --- a/src/testRunner/unittests/tsserver/projects.ts +++ b/src/testRunner/unittests/tsserver/projects.ts @@ -703,8 +703,7 @@ namespace ts.projectSystem { // Check identifiers defined in HTML content are available in .ts file const project = configuredProjectAt(projectService, 0); let completions = project.getLanguageService().getCompletionsAtPosition(file1.path, 1, emptyOptions); - assert(completions && completions.entries[1].name === "hello", `expected entry hello to be in completion list`); - assert(completions && completions.entries[0].name === "globalThis", `first entry should be globalThis (not strictly relevant for this test).`); + assert(completions && some(completions.entries, e => e.name === "hello"), `expected entry hello to be in completion list`); // Close HTML file projectService.applyChangesInOpenFiles( diff --git a/src/testRunner/unittests/tsserver/rename.ts b/src/testRunner/unittests/tsserver/rename.ts index a30eb895f0977..6c0af5688da68 100644 --- a/src/testRunner/unittests/tsserver/rename.ts +++ b/src/testRunner/unittests/tsserver/rename.ts @@ -174,6 +174,43 @@ namespace ts.projectSystem { }); }); + it("export default anonymous function works with prefixText and suffixText when disabled", () => { + const aTs: File = { path: "/a.ts", content: "export default function() {}" }; + const bTs: File = { path: "/b.ts", content: `import aTest from "./a"; function test() { return aTest(); }` }; + + const session = createSession(createServerHost([aTs, bTs])); + openFilesForSession([bTs], session); + + session.getProjectService().setHostConfiguration({ preferences: { providePrefixAndSuffixTextForRename: false } }); + const response1 = executeSessionRequest(session, protocol.CommandTypes.Rename, protocolFileLocationFromSubstring(bTs, "aTest(")); + assert.deepEqual(response1, { + info: { + canRename: true, + fileToRename: undefined, + displayName: "aTest", + fullDisplayName: "aTest", + kind: ScriptElementKind.alias, + kindModifiers: "export", + triggerSpan: protocolTextSpanFromSubstring(bTs.content, "aTest", { index: 1 }) + }, + locs: [{ + file: bTs.path, + locs: [ + protocolRenameSpanFromSubstring({ + fileText: bTs.content, + text: "aTest", + contextText: `import aTest from "./a";` + }), + protocolRenameSpanFromSubstring({ + fileText: bTs.content, + text: "aTest", + options: { index: 1 }, + }) + ] + }], + }); + }); + it("rename behavior is based on file of rename initiation", () => { const aTs: File = { path: "/a.ts", content: "const x = 1; export { x };" }; const bTs: File = { path: "/b.ts", content: `import { x } from "./a"; const y = x + 1;` }; diff --git a/src/testRunner/unittests/tsserver/symlinkCache.ts b/src/testRunner/unittests/tsserver/symlinkCache.ts index 7a80a0cc289f2..323d72cda73b9 100644 --- a/src/testRunner/unittests/tsserver/symlinkCache.ts +++ b/src/testRunner/unittests/tsserver/symlinkCache.ts @@ -60,7 +60,14 @@ namespace ts.projectSystem { it("works for paths close to the root", () => { const cache = createSymlinkCache("/", createGetCanonicalFileName(/*useCaseSensitiveFileNames*/ false)); - cache.setSymlinkedDirectoryFromSymlinkedFile("/foo", "/one/two/foo"); // Used to crash, #44953 + // Used to crash, #44953 + const map = createModeAwareCache(); + map.set("foo", /*mode*/ undefined, { + primary: true, + originalPath: "/foo", + resolvedFileName: "/one/two/foo", + }); + cache.setSymlinksFromResolutions([], map); }); }); diff --git a/src/testRunner/unittests/tsserver/typingsInstaller.ts b/src/testRunner/unittests/tsserver/typingsInstaller.ts index 470eb8717f276..1f3426aa8c7a9 100644 --- a/src/testRunner/unittests/tsserver/typingsInstaller.ts +++ b/src/testRunner/unittests/tsserver/typingsInstaller.ts @@ -834,15 +834,101 @@ namespace ts.projectSystem { checkProjectActualFiles(p2, [file3.path, grunt.path, gulp.path]); }); + it("configured scoped name projects discover from node_modules", () => { + const app = { + path: "/app.js", + content: "" + }; + const pkgJson = { + path: "/package.json", + content: JSON.stringify({ + dependencies: { + "@zkat/cacache": "1.0.0" + } + }) + }; + const jsconfig = { + path: "/jsconfig.json", + content: JSON.stringify({}) + }; + // Should only accept direct dependencies. + const commander = { + path: "/node_modules/commander/index.js", + content: "" + }; + const commanderPackage = { + path: "/node_modules/commander/package.json", + content: JSON.stringify({ + name: "commander", + }) + }; + const cacache = { + path: "/node_modules/@zkat/cacache/index.js", + content: "" + }; + const cacachePackage = { + path: "/node_modules/@zkat/cacache/package.json", + content: JSON.stringify({ name: "@zkat/cacache" }) + }; + const cacacheDTS = { + path: "/tmp/node_modules/@types/zkat__cacache/index.d.ts", + content: "" + }; + const host = createServerHost([app, jsconfig, pkgJson, commander, commanderPackage, cacache, cacachePackage]); + const installer = new (class extends Installer { + constructor() { + super(host, { globalTypingsCacheLocation: "/tmp", typesRegistry: createTypesRegistry("zkat__cacache", "nested", "commander") }); + } + installWorker(_requestId: number, args: string[], _cwd: string, cb: TI.RequestCompletedAction) { + assert.deepEqual(args, [`@types/zkat__cacache@ts${versionMajorMinor}`]); + const installedTypings = ["@types/zkat__cacache"]; + const typingFiles = [cacacheDTS]; + executeCommand(this, host, installedTypings, typingFiles, cb); + } + })(); + + const projectService = createProjectService(host, { useSingleInferredProject: true, typingsInstaller: installer }); + projectService.openClientFile(app.path); + + checkNumberOfProjects(projectService, { configuredProjects: 1 }); + const p = configuredProjectAt(projectService, 0); + checkProjectActualFiles(p, [app.path, jsconfig.path]); + + installer.installAll(/*expectedCount*/ 1); + + checkNumberOfProjects(projectService, { configuredProjects: 1 }); + host.checkTimeoutQueueLengthAndRun(2); + checkProjectActualFiles(p, [app.path, cacacheDTS.path, jsconfig.path]); + }); + it("configured projects discover from node_modules", () => { const app = { path: "/app.js", content: "" }; + const pkgJson = { + path: "/package.json", + content: JSON.stringify({ + dependencies: { + jquery: "1.0.0" + } + }) + }; const jsconfig = { path: "/jsconfig.json", content: JSON.stringify({}) }; + // Should only accept direct dependencies. + const commander = { + path: "/node_modules/commander/index.js", + content: "" + }; + const commanderPackage = { + path: "/node_modules/commander/package.json", + content: JSON.stringify({ + name: "commander", + }) + }; const jquery = { path: "/node_modules/jquery/index.js", content: "" @@ -860,10 +946,10 @@ namespace ts.projectSystem { path: "/tmp/node_modules/@types/jquery/index.d.ts", content: "" }; - const host = createServerHost([app, jsconfig, jquery, jqueryPackage, nestedPackage]); + const host = createServerHost([app, jsconfig, pkgJson, commander, commanderPackage, jquery, jqueryPackage, nestedPackage]); const installer = new (class extends Installer { constructor() { - super(host, { globalTypingsCacheLocation: "/tmp", typesRegistry: createTypesRegistry("jquery", "nested") }); + super(host, { globalTypingsCacheLocation: "/tmp", typesRegistry: createTypesRegistry("jquery", "nested", "commander") }); } installWorker(_requestId: number, args: string[], _cwd: string, cb: TI.RequestCompletedAction) { assert.deepEqual(args, [`@types/jquery@ts${versionMajorMinor}`]); @@ -901,7 +987,7 @@ namespace ts.projectSystem { content: "" }; const jqueryPackage = { - path: "/bower_components/jquery/package.json", + path: "/bower_components/jquery/bower.json", content: JSON.stringify({ name: "jquery" }) }; const jqueryDTS = { @@ -1556,6 +1642,31 @@ namespace ts.projectSystem { }); }); + it("should support scoped packages", () => { + const app = { + path: "/app.js", + content: "", + }; + const a = { + path: "/node_modules/@a/b/package.json", + content: JSON.stringify({ name: "@a/b" }), + }; + const host = createServerHost([app, a]); + const cache = new Map(); + const logger = trackingLogger(); + const result = JsTyping.discoverTypings(host, logger.log, [app.path], getDirectoryPath(app.path as Path), emptySafeList, cache, { enable: true }, /*unresolvedImports*/ [], emptyMap); + assert.deepEqual(logger.finish(), [ + 'Searching for typing names in /node_modules; all files: ["/node_modules/@a/b/package.json"]', + ' Found package names: ["@a/b"]', + "Inferred typings from unresolved imports: []", + 'Result: {"cachedTypingPaths":[],"newTypingNames":["@a/b"],"filesToWatch":["/bower_components","/node_modules"]}', + ]); + assert.deepEqual(result, { + cachedTypingPaths: [], + newTypingNames: ["@a/b"], + filesToWatch: ["/bower_components", "/node_modules"], + }); + }); it("should install expired typings", () => { const app = { path: "/a/app.js", diff --git a/src/tsconfig-base.json b/src/tsconfig-base.json index b0515e0a023d6..51cf414728dc0 100644 --- a/src/tsconfig-base.json +++ b/src/tsconfig-base.json @@ -3,7 +3,7 @@ "pretty": true, "lib": ["es2015.iterable", "es2015.generator", "es5"], "target": "es5", - "moduleResolution": "classic", + "moduleResolution": "node", "rootDir": ".", "declaration": true, diff --git a/src/tsserver/nodeServer.ts b/src/tsserver/nodeServer.ts index e8e42042d5523..c85943496e386 100644 --- a/src/tsserver/nodeServer.ts +++ b/src/tsserver/nodeServer.ts @@ -233,7 +233,7 @@ namespace ts.server { // Override sys.write because fs.writeSync is not reliable on Node 4 sys.write = (s: string) => writeMessage(sys.bufferFrom!(s, "utf8") as globalThis.Buffer); - // REVIEW: for now this implementation uses polling. + // REVIEW: for now this implementation uses polling. // The advantage of polling is that it works reliably // on all os and with network mounted files. // For 90 referenced files, the average time to detect @@ -759,12 +759,40 @@ namespace ts.server { } } + class IpcIOSession extends IOSession { + + protected writeMessage(msg: protocol.Message): void { + const verboseLogging = logger.hasLevel(LogLevel.verbose); + if (verboseLogging) { + const json = JSON.stringify(msg); + logger.info(`${msg.type}:${indent(json)}`); + } + + process.send!(msg); + } + + protected parseMessage(message: any): protocol.Request { + return message as protocol.Request; + } + + protected toStringMessage(message: any) { + return JSON.stringify(message, undefined, 2); + } + + public listen() { + process.on("message", (e: any) => { + this.onMessage(e); + }); + } + } + const eventPort: number | undefined = parseEventPort(findArgument("--eventPort")); const typingSafeListLocation = findArgument(Arguments.TypingSafeListLocation)!; // TODO: GH#18217 const typesMapLocation = findArgument(Arguments.TypesMapLocation) || combinePaths(getDirectoryPath(sys.getExecutingFilePath()), "typesMap.json"); const npmLocation = findArgument(Arguments.NpmLocation); const validateDefaultNpmLocation = hasArgument(Arguments.ValidateDefaultNpmLocation); const disableAutomaticTypingAcquisition = hasArgument("--disableAutomaticTypingAcquisition"); + const useNodeIpc = hasArgument("--useNodeIpc"); const telemetryEnabled = hasArgument(Arguments.EnableTelemetry); const commandLineTraceDir = findArgument("--traceDirectory"); const traceDir = commandLineTraceDir @@ -774,7 +802,7 @@ namespace ts.server { startTracing("server", traceDir); } - const ioSession = new IOSession(); + const ioSession = useNodeIpc ? new IpcIOSession() : new IOSession(); process.on("uncaughtException", err => { ioSession.logError(err, "unknown"); }); diff --git a/src/tsserver/webServer.ts b/src/tsserver/webServer.ts index 18d9ab4d13e97..704fd3d2887b4 100644 --- a/src/tsserver/webServer.ts +++ b/src/tsserver/webServer.ts @@ -1,12 +1,8 @@ /*@internal*/ -namespace ts.server { - declare const addEventListener: any; - declare const postMessage: any; - declare const close: any; - declare const location: any; - declare const XMLHttpRequest: any; - declare const self: any; +/// + +namespace ts.server { const nullLogger: Logger = { close: noop, hasLevel: returnFalse, @@ -86,7 +82,7 @@ namespace ts.server { } function hrtime(previous?: [number, number]) { - const now = self.performance.now(performance) * 1e-3; + const now = self.performance.now() * 1e-3; let seconds = Math.floor(now); let nanoseconds = Math.floor((now % 1) * 1e9); if (previous) { @@ -109,7 +105,7 @@ namespace ts.server { exit() { this.logger.info("Exiting..."); this.projectService.closeLog(); - close(0); + close(); } listen() { diff --git a/tests/baselines/reference/APISample_watcher.js b/tests/baselines/reference/APISample_watcher.js index 8241222971b20..d86eb60e6777b 100644 --- a/tests/baselines/reference/APISample_watcher.js +++ b/tests/baselines/reference/APISample_watcher.js @@ -47,6 +47,8 @@ function watch(rootFileNames: string[], options: ts.CompilerOptions) { getCurrentDirectory: () => process.cwd(), getCompilationSettings: () => options, getDefaultLibFileName: (options) => ts.getDefaultLibFilePath(options), + fileExists: fileName => fs.existsSync(fileName), + readFile: fileName => fs.readFileSync(fileName), }; // Create the language service files @@ -143,7 +145,9 @@ function watch(rootFileNames, options) { }, getCurrentDirectory: function () { return process.cwd(); }, getCompilationSettings: function () { return options; }, - getDefaultLibFileName: function (options) { return ts.getDefaultLibFilePath(options); } + getDefaultLibFileName: function (options) { return ts.getDefaultLibFilePath(options); }, + fileExists: function (fileName) { return fs.existsSync(fileName); }, + readFile: function (fileName) { return fs.readFileSync(fileName); } }; // Create the language service files var services = ts.createLanguageService(servicesHost, ts.createDocumentRegistry()); diff --git a/tests/baselines/reference/DateTimeFormatAndNumberFormatES2021.errors.txt b/tests/baselines/reference/DateTimeFormatAndNumberFormatES2021.errors.txt new file mode 100644 index 0000000000000..e93066c44c174 --- /dev/null +++ b/tests/baselines/reference/DateTimeFormatAndNumberFormatES2021.errors.txt @@ -0,0 +1,19 @@ +tests/cases/compiler/DateTimeFormatAndNumberFormatES2021.ts(1,29): error TS2339: Property 'formatRange' does not exist on type 'NumberFormat'. +tests/cases/compiler/DateTimeFormatAndNumberFormatES2021.ts(4,25): error TS2339: Property 'formatRange' does not exist on type 'NumberFormat'. +tests/cases/compiler/DateTimeFormatAndNumberFormatES2021.ts(5,25): error TS2339: Property 'formatRangeToParts' does not exist on type 'NumberFormat'. + + +==== tests/cases/compiler/DateTimeFormatAndNumberFormatES2021.ts (3 errors) ==== + Intl.NumberFormat.prototype.formatRange + ~~~~~~~~~~~ +!!! error TS2339: Property 'formatRange' does not exist on type 'NumberFormat'. + Intl.DateTimeFormat.prototype.formatRange + + new Intl.NumberFormat().formatRange + ~~~~~~~~~~~ +!!! error TS2339: Property 'formatRange' does not exist on type 'NumberFormat'. + new Intl.NumberFormat().formatRangeToParts + ~~~~~~~~~~~~~~~~~~ +!!! error TS2339: Property 'formatRangeToParts' does not exist on type 'NumberFormat'. + new Intl.DateTimeFormat().formatRange + new Intl.DateTimeFormat().formatRangeToParts \ No newline at end of file diff --git a/tests/baselines/reference/DateTimeFormatAndNumberFormatES2021.js b/tests/baselines/reference/DateTimeFormatAndNumberFormatES2021.js new file mode 100644 index 0000000000000..daa7bd00d4b3b --- /dev/null +++ b/tests/baselines/reference/DateTimeFormatAndNumberFormatES2021.js @@ -0,0 +1,16 @@ +//// [DateTimeFormatAndNumberFormatES2021.ts] +Intl.NumberFormat.prototype.formatRange +Intl.DateTimeFormat.prototype.formatRange + +new Intl.NumberFormat().formatRange +new Intl.NumberFormat().formatRangeToParts +new Intl.DateTimeFormat().formatRange +new Intl.DateTimeFormat().formatRangeToParts + +//// [DateTimeFormatAndNumberFormatES2021.js] +Intl.NumberFormat.prototype.formatRange; +Intl.DateTimeFormat.prototype.formatRange; +new Intl.NumberFormat().formatRange; +new Intl.NumberFormat().formatRangeToParts; +new Intl.DateTimeFormat().formatRange; +new Intl.DateTimeFormat().formatRangeToParts; diff --git a/tests/baselines/reference/DateTimeFormatAndNumberFormatES2021.symbols b/tests/baselines/reference/DateTimeFormatAndNumberFormatES2021.symbols new file mode 100644 index 0000000000000..226ba3eaefd42 --- /dev/null +++ b/tests/baselines/reference/DateTimeFormatAndNumberFormatES2021.symbols @@ -0,0 +1,41 @@ +=== tests/cases/compiler/DateTimeFormatAndNumberFormatES2021.ts === +Intl.NumberFormat.prototype.formatRange +>Intl.NumberFormat.prototype : Symbol(prototype, Decl(lib.es5.d.ts, --, --)) +>Intl.NumberFormat : Symbol(Intl.NumberFormat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2018.intl.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --)) +>Intl : Symbol(Intl, Decl(lib.es5.d.ts, --, --), Decl(lib.es2017.intl.d.ts, --, --), Decl(lib.es2018.intl.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2020.intl.d.ts, --, --) ... and 1 more) +>NumberFormat : Symbol(Intl.NumberFormat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2018.intl.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --)) +>prototype : Symbol(prototype, Decl(lib.es5.d.ts, --, --)) + +Intl.DateTimeFormat.prototype.formatRange +>Intl.DateTimeFormat.prototype.formatRange : Symbol(Intl.DateTimeFormat.formatRange, Decl(lib.es2021.intl.d.ts, --, --)) +>Intl.DateTimeFormat.prototype : Symbol(prototype, Decl(lib.es5.d.ts, --, --)) +>Intl.DateTimeFormat : Symbol(Intl.DateTimeFormat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2017.intl.d.ts, --, --), Decl(lib.es2021.intl.d.ts, --, --)) +>Intl : Symbol(Intl, Decl(lib.es5.d.ts, --, --), Decl(lib.es2017.intl.d.ts, --, --), Decl(lib.es2018.intl.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2020.intl.d.ts, --, --) ... and 1 more) +>DateTimeFormat : Symbol(Intl.DateTimeFormat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2017.intl.d.ts, --, --), Decl(lib.es2021.intl.d.ts, --, --)) +>prototype : Symbol(prototype, Decl(lib.es5.d.ts, --, --)) +>formatRange : Symbol(Intl.DateTimeFormat.formatRange, Decl(lib.es2021.intl.d.ts, --, --)) + +new Intl.NumberFormat().formatRange +>Intl.NumberFormat : Symbol(Intl.NumberFormat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2018.intl.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --)) +>Intl : Symbol(Intl, Decl(lib.es5.d.ts, --, --), Decl(lib.es2017.intl.d.ts, --, --), Decl(lib.es2018.intl.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2020.intl.d.ts, --, --) ... and 1 more) +>NumberFormat : Symbol(Intl.NumberFormat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2018.intl.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --)) + +new Intl.NumberFormat().formatRangeToParts +>Intl.NumberFormat : Symbol(Intl.NumberFormat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2018.intl.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --)) +>Intl : Symbol(Intl, Decl(lib.es5.d.ts, --, --), Decl(lib.es2017.intl.d.ts, --, --), Decl(lib.es2018.intl.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2020.intl.d.ts, --, --) ... and 1 more) +>NumberFormat : Symbol(Intl.NumberFormat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2018.intl.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --)) + +new Intl.DateTimeFormat().formatRange +>new Intl.DateTimeFormat().formatRange : Symbol(Intl.DateTimeFormat.formatRange, Decl(lib.es2021.intl.d.ts, --, --)) +>Intl.DateTimeFormat : Symbol(Intl.DateTimeFormat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2017.intl.d.ts, --, --), Decl(lib.es2021.intl.d.ts, --, --)) +>Intl : Symbol(Intl, Decl(lib.es5.d.ts, --, --), Decl(lib.es2017.intl.d.ts, --, --), Decl(lib.es2018.intl.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2020.intl.d.ts, --, --) ... and 1 more) +>DateTimeFormat : Symbol(Intl.DateTimeFormat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2017.intl.d.ts, --, --), Decl(lib.es2021.intl.d.ts, --, --)) +>formatRange : Symbol(Intl.DateTimeFormat.formatRange, Decl(lib.es2021.intl.d.ts, --, --)) + +new Intl.DateTimeFormat().formatRangeToParts +>new Intl.DateTimeFormat().formatRangeToParts : Symbol(Intl.DateTimeFormat.formatRangeToParts, Decl(lib.es2021.intl.d.ts, --, --)) +>Intl.DateTimeFormat : Symbol(Intl.DateTimeFormat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2017.intl.d.ts, --, --), Decl(lib.es2021.intl.d.ts, --, --)) +>Intl : Symbol(Intl, Decl(lib.es5.d.ts, --, --), Decl(lib.es2017.intl.d.ts, --, --), Decl(lib.es2018.intl.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2020.intl.d.ts, --, --) ... and 1 more) +>DateTimeFormat : Symbol(Intl.DateTimeFormat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2017.intl.d.ts, --, --), Decl(lib.es2021.intl.d.ts, --, --)) +>formatRangeToParts : Symbol(Intl.DateTimeFormat.formatRangeToParts, Decl(lib.es2021.intl.d.ts, --, --)) + diff --git a/tests/baselines/reference/DateTimeFormatAndNumberFormatES2021.types b/tests/baselines/reference/DateTimeFormatAndNumberFormatES2021.types new file mode 100644 index 0000000000000..98f06e294c4f8 --- /dev/null +++ b/tests/baselines/reference/DateTimeFormatAndNumberFormatES2021.types @@ -0,0 +1,51 @@ +=== tests/cases/compiler/DateTimeFormatAndNumberFormatES2021.ts === +Intl.NumberFormat.prototype.formatRange +>Intl.NumberFormat.prototype.formatRange : any +>Intl.NumberFormat.prototype : Intl.NumberFormat +>Intl.NumberFormat : { (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; new (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; supportedLocalesOf(locales: string | string[], options?: Intl.NumberFormatOptions): string[]; readonly prototype: Intl.NumberFormat; } +>Intl : typeof Intl +>NumberFormat : { (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; new (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; supportedLocalesOf(locales: string | string[], options?: Intl.NumberFormatOptions): string[]; readonly prototype: Intl.NumberFormat; } +>prototype : Intl.NumberFormat +>formatRange : any + +Intl.DateTimeFormat.prototype.formatRange +>Intl.DateTimeFormat.prototype.formatRange : (startDate: number | bigint | Date, endDate: number | bigint | Date) => string +>Intl.DateTimeFormat.prototype : Intl.DateTimeFormat +>Intl.DateTimeFormat : { (locales?: string | string[], options?: Intl.DateTimeFormatOptions): Intl.DateTimeFormat; new (locales?: string | string[], options?: Intl.DateTimeFormatOptions): Intl.DateTimeFormat; supportedLocalesOf(locales: string | string[], options?: Intl.DateTimeFormatOptions): string[]; readonly prototype: Intl.DateTimeFormat; } +>Intl : typeof Intl +>DateTimeFormat : { (locales?: string | string[], options?: Intl.DateTimeFormatOptions): Intl.DateTimeFormat; new (locales?: string | string[], options?: Intl.DateTimeFormatOptions): Intl.DateTimeFormat; supportedLocalesOf(locales: string | string[], options?: Intl.DateTimeFormatOptions): string[]; readonly prototype: Intl.DateTimeFormat; } +>prototype : Intl.DateTimeFormat +>formatRange : (startDate: number | bigint | Date, endDate: number | bigint | Date) => string + +new Intl.NumberFormat().formatRange +>new Intl.NumberFormat().formatRange : any +>new Intl.NumberFormat() : Intl.NumberFormat +>Intl.NumberFormat : { (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; new (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; supportedLocalesOf(locales: string | string[], options?: Intl.NumberFormatOptions): string[]; readonly prototype: Intl.NumberFormat; } +>Intl : typeof Intl +>NumberFormat : { (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; new (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; supportedLocalesOf(locales: string | string[], options?: Intl.NumberFormatOptions): string[]; readonly prototype: Intl.NumberFormat; } +>formatRange : any + +new Intl.NumberFormat().formatRangeToParts +>new Intl.NumberFormat().formatRangeToParts : any +>new Intl.NumberFormat() : Intl.NumberFormat +>Intl.NumberFormat : { (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; new (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; supportedLocalesOf(locales: string | string[], options?: Intl.NumberFormatOptions): string[]; readonly prototype: Intl.NumberFormat; } +>Intl : typeof Intl +>NumberFormat : { (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; new (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; supportedLocalesOf(locales: string | string[], options?: Intl.NumberFormatOptions): string[]; readonly prototype: Intl.NumberFormat; } +>formatRangeToParts : any + +new Intl.DateTimeFormat().formatRange +>new Intl.DateTimeFormat().formatRange : (startDate: number | bigint | Date, endDate: number | bigint | Date) => string +>new Intl.DateTimeFormat() : Intl.DateTimeFormat +>Intl.DateTimeFormat : { (locales?: string | string[], options?: Intl.DateTimeFormatOptions): Intl.DateTimeFormat; new (locales?: string | string[], options?: Intl.DateTimeFormatOptions): Intl.DateTimeFormat; supportedLocalesOf(locales: string | string[], options?: Intl.DateTimeFormatOptions): string[]; readonly prototype: Intl.DateTimeFormat; } +>Intl : typeof Intl +>DateTimeFormat : { (locales?: string | string[], options?: Intl.DateTimeFormatOptions): Intl.DateTimeFormat; new (locales?: string | string[], options?: Intl.DateTimeFormatOptions): Intl.DateTimeFormat; supportedLocalesOf(locales: string | string[], options?: Intl.DateTimeFormatOptions): string[]; readonly prototype: Intl.DateTimeFormat; } +>formatRange : (startDate: number | bigint | Date, endDate: number | bigint | Date) => string + +new Intl.DateTimeFormat().formatRangeToParts +>new Intl.DateTimeFormat().formatRangeToParts : (startDate: number | bigint | Date, endDate: number | bigint | Date) => Intl.DateTimeFormatPart[] +>new Intl.DateTimeFormat() : Intl.DateTimeFormat +>Intl.DateTimeFormat : { (locales?: string | string[], options?: Intl.DateTimeFormatOptions): Intl.DateTimeFormat; new (locales?: string | string[], options?: Intl.DateTimeFormatOptions): Intl.DateTimeFormat; supportedLocalesOf(locales: string | string[], options?: Intl.DateTimeFormatOptions): string[]; readonly prototype: Intl.DateTimeFormat; } +>Intl : typeof Intl +>DateTimeFormat : { (locales?: string | string[], options?: Intl.DateTimeFormatOptions): Intl.DateTimeFormat; new (locales?: string | string[], options?: Intl.DateTimeFormatOptions): Intl.DateTimeFormat; supportedLocalesOf(locales: string | string[], options?: Intl.DateTimeFormatOptions): string[]; readonly prototype: Intl.DateTimeFormat; } +>formatRangeToParts : (startDate: number | bigint | Date, endDate: number | bigint | Date) => Intl.DateTimeFormatPart[] + diff --git a/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.@@ does not start a new tag.json b/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.@@ does not start a new tag.json index 8da37b34c35ea..dca1bc102db2a 100644 --- a/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.@@ does not start a new tag.json +++ b/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.@@ does not start a new tag.json @@ -1,5 +1,5 @@ { - "kind": "JSDocComment", + "kind": "JSDoc", "pos": 0, "end": 54, "flags": "JSDoc", diff --git a/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.@link tags.json b/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.@link tags.json index d031b6e257728..4710d7b53c919 100644 --- a/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.@link tags.json +++ b/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.@link tags.json @@ -1,5 +1,5 @@ { - "kind": "JSDocComment", + "kind": "JSDoc", "pos": 0, "end": 674, "flags": "JSDoc", diff --git a/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.Chained tags, no leading whitespace.json b/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.Chained tags, no leading whitespace.json index 1a848db2bb816..9071bbe9d1a92 100644 --- a/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.Chained tags, no leading whitespace.json +++ b/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.Chained tags, no leading whitespace.json @@ -1,5 +1,5 @@ { - "kind": "JSDocComment", + "kind": "JSDoc", "pos": 0, "end": 15, "flags": "JSDoc", diff --git a/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.Initial email address is not a tag.json b/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.Initial email address is not a tag.json index a2ad2693915f0..de101a9765ca2 100644 --- a/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.Initial email address is not a tag.json +++ b/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.Initial email address is not a tag.json @@ -1,5 +1,5 @@ { - "kind": "JSDocComment", + "kind": "JSDoc", "pos": 0, "end": 21, "flags": "JSDoc", diff --git a/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.Initial star is not a tag.json b/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.Initial star is not a tag.json index 14d6d34b842d1..46750c7368b32 100644 --- a/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.Initial star is not a tag.json +++ b/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.Initial star is not a tag.json @@ -1,5 +1,5 @@ { - "kind": "JSDocComment", + "kind": "JSDoc", "pos": 0, "end": 8, "flags": "JSDoc", diff --git a/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.Initial star space is not a tag.json b/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.Initial star space is not a tag.json index 6a0af3e105dc4..ddd1e157e1c56 100644 --- a/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.Initial star space is not a tag.json +++ b/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.Initial star space is not a tag.json @@ -1,5 +1,5 @@ { - "kind": "JSDocComment", + "kind": "JSDoc", "pos": 0, "end": 9, "flags": "JSDoc", diff --git a/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.Nested @param tags.json b/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.Nested @param tags.json index 2c42878ec2605..39dfd5bb9ce02 100644 --- a/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.Nested @param tags.json +++ b/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.Nested @param tags.json @@ -1,5 +1,5 @@ { - "kind": "JSDocComment", + "kind": "JSDoc", "pos": 0, "end": 66, "flags": "JSDoc", diff --git a/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.argSynonymForParamTag.json b/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.argSynonymForParamTag.json index beadc1f572e2b..325eb9d10bc50 100644 --- a/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.argSynonymForParamTag.json +++ b/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.argSynonymForParamTag.json @@ -1,5 +1,5 @@ { - "kind": "JSDocComment", + "kind": "JSDoc", "pos": 0, "end": 44, "flags": "JSDoc", diff --git a/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.argumentSynonymForParamTag.json b/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.argumentSynonymForParamTag.json index 5ecb6ad069499..947d5dfe8e8ad 100644 --- a/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.argumentSynonymForParamTag.json +++ b/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.argumentSynonymForParamTag.json @@ -1,5 +1,5 @@ { - "kind": "JSDocComment", + "kind": "JSDoc", "pos": 0, "end": 49, "flags": "JSDoc", diff --git a/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.asteriskAfterPreamble.json b/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.asteriskAfterPreamble.json index 2d4beb55b12cd..b6b539fc47c36 100644 --- a/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.asteriskAfterPreamble.json +++ b/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.asteriskAfterPreamble.json @@ -1,5 +1,5 @@ { - "kind": "JSDocComment", + "kind": "JSDoc", "pos": 0, "end": 23, "flags": "JSDoc", diff --git a/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.authorTag.json b/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.authorTag.json index c1f9f90589d64..92772eb12d132 100644 --- a/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.authorTag.json +++ b/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.authorTag.json @@ -1,5 +1,5 @@ { - "kind": "JSDocComment", + "kind": "JSDoc", "pos": 0, "end": 739, "flags": "JSDoc", diff --git a/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.consecutive newline tokens.json b/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.consecutive newline tokens.json index 19eb9bd3e4ece..ebc0cbe69b388 100644 --- a/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.consecutive newline tokens.json +++ b/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.consecutive newline tokens.json @@ -1,5 +1,5 @@ { - "kind": "JSDocComment", + "kind": "JSDoc", "pos": 0, "end": 55, "flags": "JSDoc", diff --git a/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.emptyComment.json b/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.emptyComment.json index cf684f317f625..4749058d0c2fc 100644 --- a/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.emptyComment.json +++ b/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.emptyComment.json @@ -1,5 +1,5 @@ { - "kind": "JSDocComment", + "kind": "JSDoc", "pos": 0, "end": 5, "flags": "JSDoc", diff --git a/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.leadingAsterisk.json b/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.leadingAsterisk.json index 27a284ebe7bae..8d57b3d79ab77 100644 --- a/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.leadingAsterisk.json +++ b/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.leadingAsterisk.json @@ -1,5 +1,5 @@ { - "kind": "JSDocComment", + "kind": "JSDoc", "pos": 0, "end": 27, "flags": "JSDoc", diff --git a/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.less-than and greater-than characters.json b/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.less-than and greater-than characters.json index 25c634c52caa8..2112acfb91c23 100644 --- a/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.less-than and greater-than characters.json +++ b/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.less-than and greater-than characters.json @@ -1,5 +1,5 @@ { - "kind": "JSDocComment", + "kind": "JSDoc", "pos": 0, "end": 61, "flags": "JSDoc", diff --git a/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.no space before @ is not a new tag.json b/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.no space before @ is not a new tag.json index fa1dfa412ae55..64de20d9bef39 100644 --- a/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.no space before @ is not a new tag.json +++ b/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.no space before @ is not a new tag.json @@ -1,5 +1,5 @@ { - "kind": "JSDocComment", + "kind": "JSDoc", "pos": 0, "end": 91, "flags": "JSDoc", diff --git a/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.noLeadingAsterisk.json b/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.noLeadingAsterisk.json index 27a284ebe7bae..8d57b3d79ab77 100644 --- a/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.noLeadingAsterisk.json +++ b/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.noLeadingAsterisk.json @@ -1,5 +1,5 @@ { - "kind": "JSDocComment", + "kind": "JSDoc", "pos": 0, "end": 27, "flags": "JSDoc", diff --git a/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.noReturnType.json b/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.noReturnType.json index 052aa1c5aa6c5..ad2eea3f2d5c3 100644 --- a/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.noReturnType.json +++ b/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.noReturnType.json @@ -1,5 +1,5 @@ { - "kind": "JSDocComment", + "kind": "JSDoc", "pos": 0, "end": 20, "flags": "JSDoc", diff --git a/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.oneParamTag.json b/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.oneParamTag.json index be64961dc77bf..cf333fe962a17 100644 --- a/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.oneParamTag.json +++ b/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.oneParamTag.json @@ -1,5 +1,5 @@ { - "kind": "JSDocComment", + "kind": "JSDoc", "pos": 0, "end": 34, "flags": "JSDoc", diff --git a/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.paramTag1.json b/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.paramTag1.json index f45eb771178a3..87a7257d93202 100644 --- a/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.paramTag1.json +++ b/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.paramTag1.json @@ -1,5 +1,5 @@ { - "kind": "JSDocComment", + "kind": "JSDoc", "pos": 0, "end": 59, "flags": "JSDoc", diff --git a/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.paramTagBracketedName1.json b/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.paramTagBracketedName1.json index 0db3f02520e82..78e4224ea83e2 100644 --- a/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.paramTagBracketedName1.json +++ b/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.paramTagBracketedName1.json @@ -1,5 +1,5 @@ { - "kind": "JSDocComment", + "kind": "JSDoc", "pos": 0, "end": 61, "flags": "JSDoc", diff --git a/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.paramTagBracketedName2.json b/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.paramTagBracketedName2.json index 71cb84f5ed793..e2fb8a207a2a9 100644 --- a/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.paramTagBracketedName2.json +++ b/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.paramTagBracketedName2.json @@ -1,5 +1,5 @@ { - "kind": "JSDocComment", + "kind": "JSDoc", "pos": 0, "end": 66, "flags": "JSDoc", diff --git a/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.paramTagNameThenType1.json b/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.paramTagNameThenType1.json index 97a9e69010c1e..02e2fe9f1462d 100644 --- a/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.paramTagNameThenType1.json +++ b/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.paramTagNameThenType1.json @@ -1,5 +1,5 @@ { - "kind": "JSDocComment", + "kind": "JSDoc", "pos": 0, "end": 34, "flags": "JSDoc", diff --git a/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.paramTagNameThenType2.json b/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.paramTagNameThenType2.json index a1bed4eb49b73..4abe5fbe0a068 100644 --- a/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.paramTagNameThenType2.json +++ b/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.paramTagNameThenType2.json @@ -1,5 +1,5 @@ { - "kind": "JSDocComment", + "kind": "JSDoc", "pos": 0, "end": 46, "flags": "JSDoc", diff --git a/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.paramWithoutType.json b/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.paramWithoutType.json index 1143002ee91a8..f273ca6e439dc 100644 --- a/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.paramWithoutType.json +++ b/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.paramWithoutType.json @@ -1,5 +1,5 @@ { - "kind": "JSDocComment", + "kind": "JSDoc", "pos": 0, "end": 23, "flags": "JSDoc", diff --git a/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.returnTag1.json b/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.returnTag1.json index e5d3ee7b6149a..00e574a12c499 100644 --- a/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.returnTag1.json +++ b/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.returnTag1.json @@ -1,5 +1,5 @@ { - "kind": "JSDocComment", + "kind": "JSDoc", "pos": 0, "end": 29, "flags": "JSDoc", diff --git a/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.returnTag2.json b/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.returnTag2.json index b7b5fe254828a..7fb31fbd96d6a 100644 --- a/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.returnTag2.json +++ b/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.returnTag2.json @@ -1,5 +1,5 @@ { - "kind": "JSDocComment", + "kind": "JSDoc", "pos": 0, "end": 54, "flags": "JSDoc", diff --git a/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.returnsTag1.json b/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.returnsTag1.json index 230dd41541585..12b1a7ffbacbd 100644 --- a/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.returnsTag1.json +++ b/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.returnsTag1.json @@ -1,5 +1,5 @@ { - "kind": "JSDocComment", + "kind": "JSDoc", "pos": 0, "end": 30, "flags": "JSDoc", diff --git a/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.templateTag.json b/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.templateTag.json index 50c772455d0ec..46d293346c344 100644 --- a/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.templateTag.json +++ b/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.templateTag.json @@ -1,5 +1,5 @@ { - "kind": "JSDocComment", + "kind": "JSDoc", "pos": 0, "end": 24, "flags": "JSDoc", diff --git a/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.templateTag2.json b/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.templateTag2.json index 1b4c8e8976951..47a2e48d7b430 100644 --- a/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.templateTag2.json +++ b/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.templateTag2.json @@ -1,5 +1,5 @@ { - "kind": "JSDocComment", + "kind": "JSDoc", "pos": 0, "end": 26, "flags": "JSDoc", diff --git a/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.templateTag3.json b/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.templateTag3.json index 15bab6344a35b..e2d1488825d0a 100644 --- a/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.templateTag3.json +++ b/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.templateTag3.json @@ -1,5 +1,5 @@ { - "kind": "JSDocComment", + "kind": "JSDoc", "pos": 0, "end": 27, "flags": "JSDoc", diff --git a/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.templateTag4.json b/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.templateTag4.json index 15bab6344a35b..e2d1488825d0a 100644 --- a/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.templateTag4.json +++ b/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.templateTag4.json @@ -1,5 +1,5 @@ { - "kind": "JSDocComment", + "kind": "JSDoc", "pos": 0, "end": 27, "flags": "JSDoc", diff --git a/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.templateTag5.json b/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.templateTag5.json index e3f4dceb82b74..b05a2188fe1d9 100644 --- a/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.templateTag5.json +++ b/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.templateTag5.json @@ -1,5 +1,5 @@ { - "kind": "JSDocComment", + "kind": "JSDoc", "pos": 0, "end": 28, "flags": "JSDoc", diff --git a/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.templateTag6.json b/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.templateTag6.json index 29ee205ac48d9..fd6f6cfa39916 100644 --- a/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.templateTag6.json +++ b/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.templateTag6.json @@ -1,5 +1,5 @@ { - "kind": "JSDocComment", + "kind": "JSDoc", "pos": 0, "end": 60, "flags": "JSDoc", diff --git a/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.threeAsterisks.json b/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.threeAsterisks.json index 6e8ff913426b1..dc02383e4217e 100644 --- a/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.threeAsterisks.json +++ b/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.threeAsterisks.json @@ -1,5 +1,5 @@ { - "kind": "JSDocComment", + "kind": "JSDoc", "pos": 0, "end": 7, "flags": "JSDoc", diff --git a/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.twoParamTag2.json b/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.twoParamTag2.json index 8797eee4fef9f..9b74cfdcf18d5 100644 --- a/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.twoParamTag2.json +++ b/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.twoParamTag2.json @@ -1,5 +1,5 @@ { - "kind": "JSDocComment", + "kind": "JSDoc", "pos": 0, "end": 60, "flags": "JSDoc", diff --git a/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.twoParamTagOnSameLine.json b/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.twoParamTagOnSameLine.json index 937fc3836d757..6ad815ea17fe4 100644 --- a/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.twoParamTagOnSameLine.json +++ b/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.twoParamTagOnSameLine.json @@ -1,5 +1,5 @@ { - "kind": "JSDocComment", + "kind": "JSDoc", "pos": 0, "end": 56, "flags": "JSDoc", diff --git a/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.typeTag.json b/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.typeTag.json index 27a284ebe7bae..8d57b3d79ab77 100644 --- a/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.typeTag.json +++ b/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.typeTag.json @@ -1,5 +1,5 @@ { - "kind": "JSDocComment", + "kind": "JSDoc", "pos": 0, "end": 27, "flags": "JSDoc", diff --git a/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.typedefTagWithChildrenTags.json b/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.typedefTagWithChildrenTags.json index 228d54b2e1c51..616f1afa7c41d 100644 --- a/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.typedefTagWithChildrenTags.json +++ b/tests/baselines/reference/JSDocParsing/DocComments.parsesCorrectly.typedefTagWithChildrenTags.json @@ -1,5 +1,5 @@ { - "kind": "JSDocComment", + "kind": "JSDoc", "pos": 0, "end": 102, "flags": "JSDoc", diff --git a/tests/baselines/reference/abstractClassUnionInstantiation.errors.txt b/tests/baselines/reference/abstractClassUnionInstantiation.errors.txt new file mode 100644 index 0000000000000..ff1eb39980212 --- /dev/null +++ b/tests/baselines/reference/abstractClassUnionInstantiation.errors.txt @@ -0,0 +1,39 @@ +tests/cases/compiler/abstractClassUnionInstantiation.ts(14,1): error TS2511: Cannot create an instance of an abstract class. +tests/cases/compiler/abstractClassUnionInstantiation.ts(15,1): error TS2511: Cannot create an instance of an abstract class. +tests/cases/compiler/abstractClassUnionInstantiation.ts(18,46): error TS2511: Cannot create an instance of an abstract class. +tests/cases/compiler/abstractClassUnionInstantiation.ts(19,46): error TS2511: Cannot create an instance of an abstract class. +tests/cases/compiler/abstractClassUnionInstantiation.ts(21,35): error TS2511: Cannot create an instance of an abstract class. + + +==== tests/cases/compiler/abstractClassUnionInstantiation.ts (5 errors) ==== + class ConcreteA {} + class ConcreteB {} + abstract class AbstractA { a: string; } + abstract class AbstractB { b: string; } + + type Abstracts = typeof AbstractA | typeof AbstractB; + type Concretes = typeof ConcreteA | typeof ConcreteB; + type ConcretesOrAbstracts = Concretes | Abstracts; + + declare const cls1: ConcretesOrAbstracts; + declare const cls2: Abstracts; + declare const cls3: Concretes; + + new cls1(); // should error + ~~~~~~~~~~ +!!! error TS2511: Cannot create an instance of an abstract class. + new cls2(); // should error + ~~~~~~~~~~ +!!! error TS2511: Cannot create an instance of an abstract class. + new cls3(); // should work + + [ConcreteA, AbstractA, AbstractB].map(cls => new cls()); // should error + ~~~~~~~~~ +!!! error TS2511: Cannot create an instance of an abstract class. + [AbstractA, AbstractB, ConcreteA].map(cls => new cls()); // should error + ~~~~~~~~~ +!!! error TS2511: Cannot create an instance of an abstract class. + [ConcreteA, ConcreteB].map(cls => new cls()); // should work + [AbstractA, AbstractB].map(cls => new cls()); // should error + ~~~~~~~~~ +!!! error TS2511: Cannot create an instance of an abstract class. \ No newline at end of file diff --git a/tests/baselines/reference/abstractClassUnionInstantiation.js b/tests/baselines/reference/abstractClassUnionInstantiation.js new file mode 100644 index 0000000000000..c42d945625c75 --- /dev/null +++ b/tests/baselines/reference/abstractClassUnionInstantiation.js @@ -0,0 +1,51 @@ +//// [abstractClassUnionInstantiation.ts] +class ConcreteA {} +class ConcreteB {} +abstract class AbstractA { a: string; } +abstract class AbstractB { b: string; } + +type Abstracts = typeof AbstractA | typeof AbstractB; +type Concretes = typeof ConcreteA | typeof ConcreteB; +type ConcretesOrAbstracts = Concretes | Abstracts; + +declare const cls1: ConcretesOrAbstracts; +declare const cls2: Abstracts; +declare const cls3: Concretes; + +new cls1(); // should error +new cls2(); // should error +new cls3(); // should work + +[ConcreteA, AbstractA, AbstractB].map(cls => new cls()); // should error +[AbstractA, AbstractB, ConcreteA].map(cls => new cls()); // should error +[ConcreteA, ConcreteB].map(cls => new cls()); // should work +[AbstractA, AbstractB].map(cls => new cls()); // should error + +//// [abstractClassUnionInstantiation.js] +var ConcreteA = /** @class */ (function () { + function ConcreteA() { + } + return ConcreteA; +}()); +var ConcreteB = /** @class */ (function () { + function ConcreteB() { + } + return ConcreteB; +}()); +var AbstractA = /** @class */ (function () { + function AbstractA() { + } + return AbstractA; +}()); +var AbstractB = /** @class */ (function () { + function AbstractB() { + } + return AbstractB; +}()); +new cls1(); // should error +new cls2(); // should error +new cls3(); // should work +[ConcreteA, AbstractA, AbstractB].map(function (cls) { return new cls(); }); // should error +[AbstractA, AbstractB, ConcreteA].map(function (cls) { return new cls(); }); // should error +[ConcreteA, ConcreteB].map(function (cls) { return new cls(); }); // should work +[AbstractA, AbstractB].map(function (cls) { return new cls(); }); // should error diff --git a/tests/baselines/reference/abstractClassUnionInstantiation.symbols b/tests/baselines/reference/abstractClassUnionInstantiation.symbols new file mode 100644 index 0000000000000..453ce18244115 --- /dev/null +++ b/tests/baselines/reference/abstractClassUnionInstantiation.symbols @@ -0,0 +1,85 @@ +=== tests/cases/compiler/abstractClassUnionInstantiation.ts === +class ConcreteA {} +>ConcreteA : Symbol(ConcreteA, Decl(abstractClassUnionInstantiation.ts, 0, 0)) + +class ConcreteB {} +>ConcreteB : Symbol(ConcreteB, Decl(abstractClassUnionInstantiation.ts, 0, 18)) + +abstract class AbstractA { a: string; } +>AbstractA : Symbol(AbstractA, Decl(abstractClassUnionInstantiation.ts, 1, 18)) +>a : Symbol(AbstractA.a, Decl(abstractClassUnionInstantiation.ts, 2, 26)) + +abstract class AbstractB { b: string; } +>AbstractB : Symbol(AbstractB, Decl(abstractClassUnionInstantiation.ts, 2, 39)) +>b : Symbol(AbstractB.b, Decl(abstractClassUnionInstantiation.ts, 3, 26)) + +type Abstracts = typeof AbstractA | typeof AbstractB; +>Abstracts : Symbol(Abstracts, Decl(abstractClassUnionInstantiation.ts, 3, 39)) +>AbstractA : Symbol(AbstractA, Decl(abstractClassUnionInstantiation.ts, 1, 18)) +>AbstractB : Symbol(AbstractB, Decl(abstractClassUnionInstantiation.ts, 2, 39)) + +type Concretes = typeof ConcreteA | typeof ConcreteB; +>Concretes : Symbol(Concretes, Decl(abstractClassUnionInstantiation.ts, 5, 53)) +>ConcreteA : Symbol(ConcreteA, Decl(abstractClassUnionInstantiation.ts, 0, 0)) +>ConcreteB : Symbol(ConcreteB, Decl(abstractClassUnionInstantiation.ts, 0, 18)) + +type ConcretesOrAbstracts = Concretes | Abstracts; +>ConcretesOrAbstracts : Symbol(ConcretesOrAbstracts, Decl(abstractClassUnionInstantiation.ts, 6, 53)) +>Concretes : Symbol(Concretes, Decl(abstractClassUnionInstantiation.ts, 5, 53)) +>Abstracts : Symbol(Abstracts, Decl(abstractClassUnionInstantiation.ts, 3, 39)) + +declare const cls1: ConcretesOrAbstracts; +>cls1 : Symbol(cls1, Decl(abstractClassUnionInstantiation.ts, 9, 13)) +>ConcretesOrAbstracts : Symbol(ConcretesOrAbstracts, Decl(abstractClassUnionInstantiation.ts, 6, 53)) + +declare const cls2: Abstracts; +>cls2 : Symbol(cls2, Decl(abstractClassUnionInstantiation.ts, 10, 13)) +>Abstracts : Symbol(Abstracts, Decl(abstractClassUnionInstantiation.ts, 3, 39)) + +declare const cls3: Concretes; +>cls3 : Symbol(cls3, Decl(abstractClassUnionInstantiation.ts, 11, 13)) +>Concretes : Symbol(Concretes, Decl(abstractClassUnionInstantiation.ts, 5, 53)) + +new cls1(); // should error +>cls1 : Symbol(cls1, Decl(abstractClassUnionInstantiation.ts, 9, 13)) + +new cls2(); // should error +>cls2 : Symbol(cls2, Decl(abstractClassUnionInstantiation.ts, 10, 13)) + +new cls3(); // should work +>cls3 : Symbol(cls3, Decl(abstractClassUnionInstantiation.ts, 11, 13)) + +[ConcreteA, AbstractA, AbstractB].map(cls => new cls()); // should error +>[ConcreteA, AbstractA, AbstractB].map : Symbol(Array.map, Decl(lib.es5.d.ts, --, --)) +>ConcreteA : Symbol(ConcreteA, Decl(abstractClassUnionInstantiation.ts, 0, 0)) +>AbstractA : Symbol(AbstractA, Decl(abstractClassUnionInstantiation.ts, 1, 18)) +>AbstractB : Symbol(AbstractB, Decl(abstractClassUnionInstantiation.ts, 2, 39)) +>map : Symbol(Array.map, Decl(lib.es5.d.ts, --, --)) +>cls : Symbol(cls, Decl(abstractClassUnionInstantiation.ts, 17, 38)) +>cls : Symbol(cls, Decl(abstractClassUnionInstantiation.ts, 17, 38)) + +[AbstractA, AbstractB, ConcreteA].map(cls => new cls()); // should error +>[AbstractA, AbstractB, ConcreteA].map : Symbol(Array.map, Decl(lib.es5.d.ts, --, --)) +>AbstractA : Symbol(AbstractA, Decl(abstractClassUnionInstantiation.ts, 1, 18)) +>AbstractB : Symbol(AbstractB, Decl(abstractClassUnionInstantiation.ts, 2, 39)) +>ConcreteA : Symbol(ConcreteA, Decl(abstractClassUnionInstantiation.ts, 0, 0)) +>map : Symbol(Array.map, Decl(lib.es5.d.ts, --, --)) +>cls : Symbol(cls, Decl(abstractClassUnionInstantiation.ts, 18, 38)) +>cls : Symbol(cls, Decl(abstractClassUnionInstantiation.ts, 18, 38)) + +[ConcreteA, ConcreteB].map(cls => new cls()); // should work +>[ConcreteA, ConcreteB].map : Symbol(Array.map, Decl(lib.es5.d.ts, --, --)) +>ConcreteA : Symbol(ConcreteA, Decl(abstractClassUnionInstantiation.ts, 0, 0)) +>ConcreteB : Symbol(ConcreteB, Decl(abstractClassUnionInstantiation.ts, 0, 18)) +>map : Symbol(Array.map, Decl(lib.es5.d.ts, --, --)) +>cls : Symbol(cls, Decl(abstractClassUnionInstantiation.ts, 19, 27)) +>cls : Symbol(cls, Decl(abstractClassUnionInstantiation.ts, 19, 27)) + +[AbstractA, AbstractB].map(cls => new cls()); // should error +>[AbstractA, AbstractB].map : Symbol(Array.map, Decl(lib.es5.d.ts, --, --)) +>AbstractA : Symbol(AbstractA, Decl(abstractClassUnionInstantiation.ts, 1, 18)) +>AbstractB : Symbol(AbstractB, Decl(abstractClassUnionInstantiation.ts, 2, 39)) +>map : Symbol(Array.map, Decl(lib.es5.d.ts, --, --)) +>cls : Symbol(cls, Decl(abstractClassUnionInstantiation.ts, 20, 27)) +>cls : Symbol(cls, Decl(abstractClassUnionInstantiation.ts, 20, 27)) + diff --git a/tests/baselines/reference/abstractClassUnionInstantiation.types b/tests/baselines/reference/abstractClassUnionInstantiation.types new file mode 100644 index 0000000000000..969f0b85c44a5 --- /dev/null +++ b/tests/baselines/reference/abstractClassUnionInstantiation.types @@ -0,0 +1,99 @@ +=== tests/cases/compiler/abstractClassUnionInstantiation.ts === +class ConcreteA {} +>ConcreteA : ConcreteA + +class ConcreteB {} +>ConcreteB : ConcreteB + +abstract class AbstractA { a: string; } +>AbstractA : AbstractA +>a : string + +abstract class AbstractB { b: string; } +>AbstractB : AbstractB +>b : string + +type Abstracts = typeof AbstractA | typeof AbstractB; +>Abstracts : Abstracts +>AbstractA : typeof AbstractA +>AbstractB : typeof AbstractB + +type Concretes = typeof ConcreteA | typeof ConcreteB; +>Concretes : Concretes +>ConcreteA : typeof ConcreteA +>ConcreteB : typeof ConcreteB + +type ConcretesOrAbstracts = Concretes | Abstracts; +>ConcretesOrAbstracts : ConcretesOrAbstracts + +declare const cls1: ConcretesOrAbstracts; +>cls1 : ConcretesOrAbstracts + +declare const cls2: Abstracts; +>cls2 : Abstracts + +declare const cls3: Concretes; +>cls3 : Concretes + +new cls1(); // should error +>new cls1() : any +>cls1 : ConcretesOrAbstracts + +new cls2(); // should error +>new cls2() : any +>cls2 : Abstracts + +new cls3(); // should work +>new cls3() : ConcreteA | ConcreteB +>cls3 : Concretes + +[ConcreteA, AbstractA, AbstractB].map(cls => new cls()); // should error +>[ConcreteA, AbstractA, AbstractB].map(cls => new cls()) : any[] +>[ConcreteA, AbstractA, AbstractB].map : (callbackfn: (value: typeof ConcreteA | typeof AbstractA | typeof AbstractB, index: number, array: (typeof ConcreteA | typeof AbstractA | typeof AbstractB)[]) => U, thisArg?: any) => U[] +>[ConcreteA, AbstractA, AbstractB] : (typeof ConcreteA | typeof AbstractA | typeof AbstractB)[] +>ConcreteA : typeof ConcreteA +>AbstractA : typeof AbstractA +>AbstractB : typeof AbstractB +>map : (callbackfn: (value: typeof ConcreteA | typeof AbstractA | typeof AbstractB, index: number, array: (typeof ConcreteA | typeof AbstractA | typeof AbstractB)[]) => U, thisArg?: any) => U[] +>cls => new cls() : (cls: typeof ConcreteA | typeof AbstractA | typeof AbstractB) => any +>cls : typeof ConcreteA | typeof AbstractA | typeof AbstractB +>new cls() : any +>cls : typeof ConcreteA | typeof AbstractA | typeof AbstractB + +[AbstractA, AbstractB, ConcreteA].map(cls => new cls()); // should error +>[AbstractA, AbstractB, ConcreteA].map(cls => new cls()) : any[] +>[AbstractA, AbstractB, ConcreteA].map : (callbackfn: (value: typeof ConcreteA | typeof AbstractA | typeof AbstractB, index: number, array: (typeof ConcreteA | typeof AbstractA | typeof AbstractB)[]) => U, thisArg?: any) => U[] +>[AbstractA, AbstractB, ConcreteA] : (typeof ConcreteA | typeof AbstractA | typeof AbstractB)[] +>AbstractA : typeof AbstractA +>AbstractB : typeof AbstractB +>ConcreteA : typeof ConcreteA +>map : (callbackfn: (value: typeof ConcreteA | typeof AbstractA | typeof AbstractB, index: number, array: (typeof ConcreteA | typeof AbstractA | typeof AbstractB)[]) => U, thisArg?: any) => U[] +>cls => new cls() : (cls: typeof ConcreteA | typeof AbstractA | typeof AbstractB) => any +>cls : typeof ConcreteA | typeof AbstractA | typeof AbstractB +>new cls() : any +>cls : typeof ConcreteA | typeof AbstractA | typeof AbstractB + +[ConcreteA, ConcreteB].map(cls => new cls()); // should work +>[ConcreteA, ConcreteB].map(cls => new cls()) : ConcreteA[] +>[ConcreteA, ConcreteB].map : (callbackfn: (value: typeof ConcreteA, index: number, array: (typeof ConcreteA)[]) => U, thisArg?: any) => U[] +>[ConcreteA, ConcreteB] : (typeof ConcreteA)[] +>ConcreteA : typeof ConcreteA +>ConcreteB : typeof ConcreteB +>map : (callbackfn: (value: typeof ConcreteA, index: number, array: (typeof ConcreteA)[]) => U, thisArg?: any) => U[] +>cls => new cls() : (cls: typeof ConcreteA) => ConcreteA +>cls : typeof ConcreteA +>new cls() : ConcreteA +>cls : typeof ConcreteA + +[AbstractA, AbstractB].map(cls => new cls()); // should error +>[AbstractA, AbstractB].map(cls => new cls()) : any[] +>[AbstractA, AbstractB].map : (callbackfn: (value: typeof AbstractA | typeof AbstractB, index: number, array: (typeof AbstractA | typeof AbstractB)[]) => U, thisArg?: any) => U[] +>[AbstractA, AbstractB] : (typeof AbstractA | typeof AbstractB)[] +>AbstractA : typeof AbstractA +>AbstractB : typeof AbstractB +>map : (callbackfn: (value: typeof AbstractA | typeof AbstractB, index: number, array: (typeof AbstractA | typeof AbstractB)[]) => U, thisArg?: any) => U[] +>cls => new cls() : (cls: typeof AbstractA | typeof AbstractB) => any +>cls : typeof AbstractA | typeof AbstractB +>new cls() : any +>cls : typeof AbstractA | typeof AbstractB + diff --git a/tests/baselines/reference/ambientShorthand_reExport.js b/tests/baselines/reference/ambientShorthand_reExport.js index c78122c9424d2..6a9e3a9cf6eaa 100644 --- a/tests/baselines/reference/ambientShorthand_reExport.js +++ b/tests/baselines/reference/ambientShorthand_reExport.js @@ -20,7 +20,11 @@ x($); "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -33,7 +37,11 @@ __createBinding(exports, jquery_1, "x"); "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/amdLikeInputDeclarationEmit.js b/tests/baselines/reference/amdLikeInputDeclarationEmit.js new file mode 100644 index 0000000000000..a34697f4f3e4f --- /dev/null +++ b/tests/baselines/reference/amdLikeInputDeclarationEmit.js @@ -0,0 +1,40 @@ +//// [tests/cases/compiler/amdLikeInputDeclarationEmit.ts] //// + +//// [typing.d.ts] +declare function define(name: string, modules: string[], ready: (...modules: unknown[]) => T); +//// [BaseClass.d.ts] +declare module "deps/BaseClass" { + class BaseClass { + static extends(a: A): new () => A & BaseClass; + } + export = BaseClass; +} +//// [ExtendedClass.js] +define("lib/ExtendedClass", ["deps/BaseClass"], +/** + * {typeof import("deps/BaseClass")} + * @param {typeof import("deps/BaseClass")} BaseClass + * @returns + */ +(BaseClass) => { + + const ExtendedClass = BaseClass.extends({ + f: function() { + return "something"; + } + }); + + // Exports the module in a way tsc recognize class export + const module = {}; + module.exports = ExtendedClass + return module.exports; +}); + + + +//// [ExtendedClass.d.ts] +/// +export = ExtendedClass; +declare const ExtendedClass: new () => { + f: () => "something"; +} & import("deps/BaseClass"); diff --git a/tests/baselines/reference/amdLikeInputDeclarationEmit.symbols b/tests/baselines/reference/amdLikeInputDeclarationEmit.symbols new file mode 100644 index 0000000000000..4b9e455840f1a --- /dev/null +++ b/tests/baselines/reference/amdLikeInputDeclarationEmit.symbols @@ -0,0 +1,66 @@ +=== tests/cases/compiler/typing.d.ts === +declare function define(name: string, modules: string[], ready: (...modules: unknown[]) => T); +>define : Symbol(define, Decl(typing.d.ts, 0, 0)) +>T : Symbol(T, Decl(typing.d.ts, 0, 24)) +>name : Symbol(name, Decl(typing.d.ts, 0, 35)) +>modules : Symbol(modules, Decl(typing.d.ts, 0, 48)) +>ready : Symbol(ready, Decl(typing.d.ts, 0, 67)) +>modules : Symbol(modules, Decl(typing.d.ts, 0, 76)) +>T : Symbol(T, Decl(typing.d.ts, 0, 24)) + +=== tests/cases/compiler/deps/BaseClass.d.ts === +declare module "deps/BaseClass" { +>"deps/BaseClass" : Symbol("deps/BaseClass", Decl(BaseClass.d.ts, 0, 0)) + + class BaseClass { +>BaseClass : Symbol(BaseClass, Decl(BaseClass.d.ts, 0, 33)) + + static extends(a: A): new () => A & BaseClass; +>extends : Symbol(BaseClass.extends, Decl(BaseClass.d.ts, 1, 21)) +>A : Symbol(A, Decl(BaseClass.d.ts, 2, 23)) +>a : Symbol(a, Decl(BaseClass.d.ts, 2, 26)) +>A : Symbol(A, Decl(BaseClass.d.ts, 2, 23)) +>A : Symbol(A, Decl(BaseClass.d.ts, 2, 23)) +>BaseClass : Symbol(BaseClass, Decl(BaseClass.d.ts, 0, 33)) + } + export = BaseClass; +>BaseClass : Symbol(BaseClass, Decl(BaseClass.d.ts, 0, 33)) +} +=== tests/cases/compiler/ExtendedClass.js === +define("lib/ExtendedClass", ["deps/BaseClass"], +>define : Symbol(define, Decl(typing.d.ts, 0, 0)) + +/** + * {typeof import("deps/BaseClass")} + * @param {typeof import("deps/BaseClass")} BaseClass + * @returns + */ +(BaseClass) => { +>BaseClass : Symbol(BaseClass, Decl(ExtendedClass.js, 6, 1)) + + const ExtendedClass = BaseClass.extends({ +>ExtendedClass : Symbol(ExtendedClass, Decl(ExtendedClass.js, 8, 9)) +>BaseClass.extends : Symbol(BaseClass.extends, Decl(BaseClass.d.ts, 1, 21)) +>BaseClass : Symbol(BaseClass, Decl(ExtendedClass.js, 6, 1)) +>extends : Symbol(BaseClass.extends, Decl(BaseClass.d.ts, 1, 21)) + + f: function() { +>f : Symbol(f, Decl(ExtendedClass.js, 8, 45)) + + return "something"; + } + }); + + // Exports the module in a way tsc recognize class export + const module = {}; +>module : Symbol(module, Decl(ExtendedClass.js, 15, 9)) + + module.exports = ExtendedClass +>module : Symbol(export=, Decl(ExtendedClass.js, 15, 22)) +>exports : Symbol(export=, Decl(ExtendedClass.js, 15, 22)) +>ExtendedClass : Symbol(ExtendedClass, Decl(ExtendedClass.js, 8, 9)) + + return module.exports; +>module : Symbol(module, Decl(ExtendedClass.js, 15, 9)) + +}); diff --git a/tests/baselines/reference/amdLikeInputDeclarationEmit.types b/tests/baselines/reference/amdLikeInputDeclarationEmit.types new file mode 100644 index 0000000000000..6bf0319f5e200 --- /dev/null +++ b/tests/baselines/reference/amdLikeInputDeclarationEmit.types @@ -0,0 +1,74 @@ +=== tests/cases/compiler/typing.d.ts === +declare function define(name: string, modules: string[], ready: (...modules: unknown[]) => T); +>define : (name: string, modules: string[], ready: (...modules: unknown[]) => T) => any +>name : string +>modules : string[] +>ready : (...modules: unknown[]) => T +>modules : unknown[] + +=== tests/cases/compiler/deps/BaseClass.d.ts === +declare module "deps/BaseClass" { +>"deps/BaseClass" : typeof import("deps/BaseClass") + + class BaseClass { +>BaseClass : BaseClass + + static extends(a: A): new () => A & BaseClass; +>extends : (a: A) => new () => A & BaseClass +>a : A + } + export = BaseClass; +>BaseClass : BaseClass +} +=== tests/cases/compiler/ExtendedClass.js === +define("lib/ExtendedClass", ["deps/BaseClass"], +>define("lib/ExtendedClass", ["deps/BaseClass"], /** * {typeof import("deps/BaseClass")} * @param {typeof import("deps/BaseClass")} BaseClass * @returns */(BaseClass) => { const ExtendedClass = BaseClass.extends({ f: function() { return "something"; } }); // Exports the module in a way tsc recognize class export const module = {}; module.exports = ExtendedClass return module.exports;}) : any +>define : (name: string, modules: string[], ready: (...modules: unknown[]) => T) => any +>"lib/ExtendedClass" : "lib/ExtendedClass" +>["deps/BaseClass"] : string[] +>"deps/BaseClass" : "deps/BaseClass" + +/** + * {typeof import("deps/BaseClass")} + * @param {typeof import("deps/BaseClass")} BaseClass + * @returns + */ +(BaseClass) => { +>(BaseClass) => { const ExtendedClass = BaseClass.extends({ f: function() { return "something"; } }); // Exports the module in a way tsc recognize class export const module = {}; module.exports = ExtendedClass return module.exports;} : (BaseClass: typeof import("deps/BaseClass")) => any +>BaseClass : typeof import("deps/BaseClass") + + const ExtendedClass = BaseClass.extends({ +>ExtendedClass : new () => { f: () => "something"; } & import("deps/BaseClass") +>BaseClass.extends({ f: function() { return "something"; } }) : new () => { f: () => "something"; } & import("deps/BaseClass") +>BaseClass.extends : (a: A) => new () => A & import("deps/BaseClass") +>BaseClass : typeof import("deps/BaseClass") +>extends : (a: A) => new () => A & import("deps/BaseClass") +>{ f: function() { return "something"; } } : { f: () => "something"; } + + f: function() { +>f : () => "something" +>function() { return "something"; } : () => "something" + + return "something"; +>"something" : "something" + } + }); + + // Exports the module in a way tsc recognize class export + const module = {}; +>module : {} +>{} : {} + + module.exports = ExtendedClass +>module.exports = ExtendedClass : any +>module.exports : any +>module : {} +>exports : any +>ExtendedClass : new () => { f: () => "something"; } & import("deps/BaseClass") + + return module.exports; +>module.exports : any +>module : {} +>exports : any + +}); diff --git a/tests/baselines/reference/amdModuleConstEnumUsage.js b/tests/baselines/reference/amdModuleConstEnumUsage.js index 76670fe871f53..d37f974d69cd4 100644 --- a/tests/baselines/reference/amdModuleConstEnumUsage.js +++ b/tests/baselines/reference/amdModuleConstEnumUsage.js @@ -34,7 +34,7 @@ define(["require", "exports"], function (require, exports) { function User() { } User.prototype.method = function (input) { - if (0 /* A */ === input) { } + if (0 /* CharCode.A */ === input) { } }; return User; }()); diff --git a/tests/baselines/reference/api/tsserverlibrary.d.ts b/tests/baselines/reference/api/tsserverlibrary.d.ts index e1512586cff46..a5bd8005936da 100644 --- a/tests/baselines/reference/api/tsserverlibrary.d.ts +++ b/tests/baselines/reference/api/tsserverlibrary.d.ts @@ -14,7 +14,7 @@ and limitations under the License. ***************************************************************************** */ declare namespace ts { - const versionMajorMinor = "4.5"; + const versionMajorMinor = "4.7"; /** The version of the TypeScript compiler release */ const version: string; /** @@ -249,216 +249,219 @@ declare namespace ts { ModuleKeyword = 141, NamespaceKeyword = 142, NeverKeyword = 143, - ReadonlyKeyword = 144, - RequireKeyword = 145, - NumberKeyword = 146, - ObjectKeyword = 147, - SetKeyword = 148, - StringKeyword = 149, - SymbolKeyword = 150, - TypeKeyword = 151, - UndefinedKeyword = 152, - UniqueKeyword = 153, - UnknownKeyword = 154, - FromKeyword = 155, - GlobalKeyword = 156, - BigIntKeyword = 157, - OverrideKeyword = 158, - OfKeyword = 159, - QualifiedName = 160, - ComputedPropertyName = 161, - TypeParameter = 162, - Parameter = 163, - Decorator = 164, - PropertySignature = 165, - PropertyDeclaration = 166, - MethodSignature = 167, - MethodDeclaration = 168, - ClassStaticBlockDeclaration = 169, - Constructor = 170, - GetAccessor = 171, - SetAccessor = 172, - CallSignature = 173, - ConstructSignature = 174, - IndexSignature = 175, - TypePredicate = 176, - TypeReference = 177, - FunctionType = 178, - ConstructorType = 179, - TypeQuery = 180, - TypeLiteral = 181, - ArrayType = 182, - TupleType = 183, - OptionalType = 184, - RestType = 185, - UnionType = 186, - IntersectionType = 187, - ConditionalType = 188, - InferType = 189, - ParenthesizedType = 190, - ThisType = 191, - TypeOperator = 192, - IndexedAccessType = 193, - MappedType = 194, - LiteralType = 195, - NamedTupleMember = 196, - TemplateLiteralType = 197, - TemplateLiteralTypeSpan = 198, - ImportType = 199, - ObjectBindingPattern = 200, - ArrayBindingPattern = 201, - BindingElement = 202, - ArrayLiteralExpression = 203, - ObjectLiteralExpression = 204, - PropertyAccessExpression = 205, - ElementAccessExpression = 206, - CallExpression = 207, - NewExpression = 208, - TaggedTemplateExpression = 209, - TypeAssertionExpression = 210, - ParenthesizedExpression = 211, - FunctionExpression = 212, - ArrowFunction = 213, - DeleteExpression = 214, - TypeOfExpression = 215, - VoidExpression = 216, - AwaitExpression = 217, - PrefixUnaryExpression = 218, - PostfixUnaryExpression = 219, - BinaryExpression = 220, - ConditionalExpression = 221, - TemplateExpression = 222, - YieldExpression = 223, - SpreadElement = 224, - ClassExpression = 225, - OmittedExpression = 226, - ExpressionWithTypeArguments = 227, - AsExpression = 228, - NonNullExpression = 229, - MetaProperty = 230, - SyntheticExpression = 231, - TemplateSpan = 232, - SemicolonClassElement = 233, - Block = 234, - EmptyStatement = 235, - VariableStatement = 236, - ExpressionStatement = 237, - IfStatement = 238, - DoStatement = 239, - WhileStatement = 240, - ForStatement = 241, - ForInStatement = 242, - ForOfStatement = 243, - ContinueStatement = 244, - BreakStatement = 245, - ReturnStatement = 246, - WithStatement = 247, - SwitchStatement = 248, - LabeledStatement = 249, - ThrowStatement = 250, - TryStatement = 251, - DebuggerStatement = 252, - VariableDeclaration = 253, - VariableDeclarationList = 254, - FunctionDeclaration = 255, - ClassDeclaration = 256, - InterfaceDeclaration = 257, - TypeAliasDeclaration = 258, - EnumDeclaration = 259, - ModuleDeclaration = 260, - ModuleBlock = 261, - CaseBlock = 262, - NamespaceExportDeclaration = 263, - ImportEqualsDeclaration = 264, - ImportDeclaration = 265, - ImportClause = 266, - NamespaceImport = 267, - NamedImports = 268, - ImportSpecifier = 269, - ExportAssignment = 270, - ExportDeclaration = 271, - NamedExports = 272, - NamespaceExport = 273, - ExportSpecifier = 274, - MissingDeclaration = 275, - ExternalModuleReference = 276, - JsxElement = 277, - JsxSelfClosingElement = 278, - JsxOpeningElement = 279, - JsxClosingElement = 280, - JsxFragment = 281, - JsxOpeningFragment = 282, - JsxClosingFragment = 283, - JsxAttribute = 284, - JsxAttributes = 285, - JsxSpreadAttribute = 286, - JsxExpression = 287, - CaseClause = 288, - DefaultClause = 289, - HeritageClause = 290, - CatchClause = 291, - AssertClause = 292, - AssertEntry = 293, - PropertyAssignment = 294, - ShorthandPropertyAssignment = 295, - SpreadAssignment = 296, - EnumMember = 297, - UnparsedPrologue = 298, - UnparsedPrepend = 299, - UnparsedText = 300, - UnparsedInternalText = 301, - UnparsedSyntheticReference = 302, - SourceFile = 303, - Bundle = 304, - UnparsedSource = 305, - InputFiles = 306, - JSDocTypeExpression = 307, - JSDocNameReference = 308, - JSDocMemberName = 309, - JSDocAllType = 310, - JSDocUnknownType = 311, - JSDocNullableType = 312, - JSDocNonNullableType = 313, - JSDocOptionalType = 314, - JSDocFunctionType = 315, - JSDocVariadicType = 316, - JSDocNamepathType = 317, - JSDocComment = 318, - JSDocText = 319, - JSDocTypeLiteral = 320, - JSDocSignature = 321, - JSDocLink = 322, - JSDocLinkCode = 323, - JSDocLinkPlain = 324, - JSDocTag = 325, - JSDocAugmentsTag = 326, - JSDocImplementsTag = 327, - JSDocAuthorTag = 328, - JSDocDeprecatedTag = 329, - JSDocClassTag = 330, - JSDocPublicTag = 331, - JSDocPrivateTag = 332, - JSDocProtectedTag = 333, - JSDocReadonlyTag = 334, - JSDocOverrideTag = 335, - JSDocCallbackTag = 336, - JSDocEnumTag = 337, - JSDocParameterTag = 338, - JSDocReturnTag = 339, - JSDocThisTag = 340, - JSDocTypeTag = 341, - JSDocTemplateTag = 342, - JSDocTypedefTag = 343, - JSDocSeeTag = 344, - JSDocPropertyTag = 345, - SyntaxList = 346, - NotEmittedStatement = 347, - PartiallyEmittedExpression = 348, - CommaListExpression = 349, - MergeDeclarationMarker = 350, - EndOfDeclarationMarker = 351, - SyntheticReferenceExpression = 352, - Count = 353, + OutKeyword = 144, + ReadonlyKeyword = 145, + RequireKeyword = 146, + NumberKeyword = 147, + ObjectKeyword = 148, + SetKeyword = 149, + StringKeyword = 150, + SymbolKeyword = 151, + TypeKeyword = 152, + UndefinedKeyword = 153, + UniqueKeyword = 154, + UnknownKeyword = 155, + FromKeyword = 156, + GlobalKeyword = 157, + BigIntKeyword = 158, + OverrideKeyword = 159, + OfKeyword = 160, + QualifiedName = 161, + ComputedPropertyName = 162, + TypeParameter = 163, + Parameter = 164, + Decorator = 165, + PropertySignature = 166, + PropertyDeclaration = 167, + MethodSignature = 168, + MethodDeclaration = 169, + ClassStaticBlockDeclaration = 170, + Constructor = 171, + GetAccessor = 172, + SetAccessor = 173, + CallSignature = 174, + ConstructSignature = 175, + IndexSignature = 176, + TypePredicate = 177, + TypeReference = 178, + FunctionType = 179, + ConstructorType = 180, + TypeQuery = 181, + TypeLiteral = 182, + ArrayType = 183, + TupleType = 184, + OptionalType = 185, + RestType = 186, + UnionType = 187, + IntersectionType = 188, + ConditionalType = 189, + InferType = 190, + ParenthesizedType = 191, + ThisType = 192, + TypeOperator = 193, + IndexedAccessType = 194, + MappedType = 195, + LiteralType = 196, + NamedTupleMember = 197, + TemplateLiteralType = 198, + TemplateLiteralTypeSpan = 199, + ImportType = 200, + ObjectBindingPattern = 201, + ArrayBindingPattern = 202, + BindingElement = 203, + ArrayLiteralExpression = 204, + ObjectLiteralExpression = 205, + PropertyAccessExpression = 206, + ElementAccessExpression = 207, + CallExpression = 208, + NewExpression = 209, + TaggedTemplateExpression = 210, + TypeAssertionExpression = 211, + ParenthesizedExpression = 212, + FunctionExpression = 213, + ArrowFunction = 214, + DeleteExpression = 215, + TypeOfExpression = 216, + VoidExpression = 217, + AwaitExpression = 218, + PrefixUnaryExpression = 219, + PostfixUnaryExpression = 220, + BinaryExpression = 221, + ConditionalExpression = 222, + TemplateExpression = 223, + YieldExpression = 224, + SpreadElement = 225, + ClassExpression = 226, + OmittedExpression = 227, + ExpressionWithTypeArguments = 228, + AsExpression = 229, + NonNullExpression = 230, + MetaProperty = 231, + SyntheticExpression = 232, + TemplateSpan = 233, + SemicolonClassElement = 234, + Block = 235, + EmptyStatement = 236, + VariableStatement = 237, + ExpressionStatement = 238, + IfStatement = 239, + DoStatement = 240, + WhileStatement = 241, + ForStatement = 242, + ForInStatement = 243, + ForOfStatement = 244, + ContinueStatement = 245, + BreakStatement = 246, + ReturnStatement = 247, + WithStatement = 248, + SwitchStatement = 249, + LabeledStatement = 250, + ThrowStatement = 251, + TryStatement = 252, + DebuggerStatement = 253, + VariableDeclaration = 254, + VariableDeclarationList = 255, + FunctionDeclaration = 256, + ClassDeclaration = 257, + InterfaceDeclaration = 258, + TypeAliasDeclaration = 259, + EnumDeclaration = 260, + ModuleDeclaration = 261, + ModuleBlock = 262, + CaseBlock = 263, + NamespaceExportDeclaration = 264, + ImportEqualsDeclaration = 265, + ImportDeclaration = 266, + ImportClause = 267, + NamespaceImport = 268, + NamedImports = 269, + ImportSpecifier = 270, + ExportAssignment = 271, + ExportDeclaration = 272, + NamedExports = 273, + NamespaceExport = 274, + ExportSpecifier = 275, + MissingDeclaration = 276, + ExternalModuleReference = 277, + JsxElement = 278, + JsxSelfClosingElement = 279, + JsxOpeningElement = 280, + JsxClosingElement = 281, + JsxFragment = 282, + JsxOpeningFragment = 283, + JsxClosingFragment = 284, + JsxAttribute = 285, + JsxAttributes = 286, + JsxSpreadAttribute = 287, + JsxExpression = 288, + CaseClause = 289, + DefaultClause = 290, + HeritageClause = 291, + CatchClause = 292, + AssertClause = 293, + AssertEntry = 294, + ImportTypeAssertionContainer = 295, + PropertyAssignment = 296, + ShorthandPropertyAssignment = 297, + SpreadAssignment = 298, + EnumMember = 299, + UnparsedPrologue = 300, + UnparsedPrepend = 301, + UnparsedText = 302, + UnparsedInternalText = 303, + UnparsedSyntheticReference = 304, + SourceFile = 305, + Bundle = 306, + UnparsedSource = 307, + InputFiles = 308, + JSDocTypeExpression = 309, + JSDocNameReference = 310, + JSDocMemberName = 311, + JSDocAllType = 312, + JSDocUnknownType = 313, + JSDocNullableType = 314, + JSDocNonNullableType = 315, + JSDocOptionalType = 316, + JSDocFunctionType = 317, + JSDocVariadicType = 318, + JSDocNamepathType = 319, + /** @deprecated Use SyntaxKind.JSDoc */ + JSDocComment = 320, + JSDocText = 321, + JSDocTypeLiteral = 322, + JSDocSignature = 323, + JSDocLink = 324, + JSDocLinkCode = 325, + JSDocLinkPlain = 326, + JSDocTag = 327, + JSDocAugmentsTag = 328, + JSDocImplementsTag = 329, + JSDocAuthorTag = 330, + JSDocDeprecatedTag = 331, + JSDocClassTag = 332, + JSDocPublicTag = 333, + JSDocPrivateTag = 334, + JSDocProtectedTag = 335, + JSDocReadonlyTag = 336, + JSDocOverrideTag = 337, + JSDocCallbackTag = 338, + JSDocEnumTag = 339, + JSDocParameterTag = 340, + JSDocReturnTag = 341, + JSDocThisTag = 342, + JSDocTypeTag = 343, + JSDocTemplateTag = 344, + JSDocTypedefTag = 345, + JSDocSeeTag = 346, + JSDocPropertyTag = 347, + SyntaxList = 348, + NotEmittedStatement = 349, + PartiallyEmittedExpression = 350, + CommaListExpression = 351, + MergeDeclarationMarker = 352, + EndOfDeclarationMarker = 353, + SyntheticReferenceExpression = 354, + Count = 355, FirstAssignment = 63, LastAssignment = 78, FirstCompoundAssignment = 64, @@ -466,15 +469,15 @@ declare namespace ts { FirstReservedWord = 81, LastReservedWord = 116, FirstKeyword = 81, - LastKeyword = 159, + LastKeyword = 160, FirstFutureReservedWord = 117, LastFutureReservedWord = 125, - FirstTypeNode = 176, - LastTypeNode = 199, + FirstTypeNode = 177, + LastTypeNode = 200, FirstPunctuation = 18, LastPunctuation = 78, FirstToken = 0, - LastToken = 159, + LastToken = 160, FirstTriviaToken = 2, LastTriviaToken = 7, FirstLiteralToken = 8, @@ -483,20 +486,21 @@ declare namespace ts { LastTemplateToken = 17, FirstBinaryOperator = 29, LastBinaryOperator = 78, - FirstStatement = 236, - LastStatement = 252, - FirstNode = 160, - FirstJSDocNode = 307, - LastJSDocNode = 345, - FirstJSDocTagNode = 325, - LastJSDocTagNode = 345, + FirstStatement = 237, + LastStatement = 253, + FirstNode = 161, + FirstJSDocNode = 309, + LastJSDocNode = 347, + FirstJSDocTagNode = 327, + LastJSDocTagNode = 347, + JSDoc = 320 } export type TriviaSyntaxKind = SyntaxKind.SingleLineCommentTrivia | SyntaxKind.MultiLineCommentTrivia | SyntaxKind.NewLineTrivia | SyntaxKind.WhitespaceTrivia | SyntaxKind.ShebangTrivia | SyntaxKind.ConflictMarkerTrivia; export type LiteralSyntaxKind = SyntaxKind.NumericLiteral | SyntaxKind.BigIntLiteral | SyntaxKind.StringLiteral | SyntaxKind.JsxText | SyntaxKind.JsxTextAllWhiteSpaces | SyntaxKind.RegularExpressionLiteral | SyntaxKind.NoSubstitutionTemplateLiteral; export type PseudoLiteralSyntaxKind = SyntaxKind.TemplateHead | SyntaxKind.TemplateMiddle | SyntaxKind.TemplateTail; export type PunctuationSyntaxKind = SyntaxKind.OpenBraceToken | SyntaxKind.CloseBraceToken | SyntaxKind.OpenParenToken | SyntaxKind.CloseParenToken | SyntaxKind.OpenBracketToken | SyntaxKind.CloseBracketToken | SyntaxKind.DotToken | SyntaxKind.DotDotDotToken | SyntaxKind.SemicolonToken | SyntaxKind.CommaToken | SyntaxKind.QuestionDotToken | SyntaxKind.LessThanToken | SyntaxKind.LessThanSlashToken | SyntaxKind.GreaterThanToken | SyntaxKind.LessThanEqualsToken | SyntaxKind.GreaterThanEqualsToken | SyntaxKind.EqualsEqualsToken | SyntaxKind.ExclamationEqualsToken | SyntaxKind.EqualsEqualsEqualsToken | SyntaxKind.ExclamationEqualsEqualsToken | SyntaxKind.EqualsGreaterThanToken | SyntaxKind.PlusToken | SyntaxKind.MinusToken | SyntaxKind.AsteriskToken | SyntaxKind.AsteriskAsteriskToken | SyntaxKind.SlashToken | SyntaxKind.PercentToken | SyntaxKind.PlusPlusToken | SyntaxKind.MinusMinusToken | SyntaxKind.LessThanLessThanToken | SyntaxKind.GreaterThanGreaterThanToken | SyntaxKind.GreaterThanGreaterThanGreaterThanToken | SyntaxKind.AmpersandToken | SyntaxKind.BarToken | SyntaxKind.CaretToken | SyntaxKind.ExclamationToken | SyntaxKind.TildeToken | SyntaxKind.AmpersandAmpersandToken | SyntaxKind.BarBarToken | SyntaxKind.QuestionQuestionToken | SyntaxKind.QuestionToken | SyntaxKind.ColonToken | SyntaxKind.AtToken | SyntaxKind.BacktickToken | SyntaxKind.HashToken | SyntaxKind.EqualsToken | SyntaxKind.PlusEqualsToken | SyntaxKind.MinusEqualsToken | SyntaxKind.AsteriskEqualsToken | SyntaxKind.AsteriskAsteriskEqualsToken | SyntaxKind.SlashEqualsToken | SyntaxKind.PercentEqualsToken | SyntaxKind.LessThanLessThanEqualsToken | SyntaxKind.GreaterThanGreaterThanEqualsToken | SyntaxKind.GreaterThanGreaterThanGreaterThanEqualsToken | SyntaxKind.AmpersandEqualsToken | SyntaxKind.BarEqualsToken | SyntaxKind.CaretEqualsToken; - export type KeywordSyntaxKind = SyntaxKind.AbstractKeyword | SyntaxKind.AnyKeyword | SyntaxKind.AsKeyword | SyntaxKind.AssertsKeyword | SyntaxKind.AssertKeyword | SyntaxKind.AsyncKeyword | SyntaxKind.AwaitKeyword | SyntaxKind.BigIntKeyword | SyntaxKind.BooleanKeyword | SyntaxKind.BreakKeyword | SyntaxKind.CaseKeyword | SyntaxKind.CatchKeyword | SyntaxKind.ClassKeyword | SyntaxKind.ConstKeyword | SyntaxKind.ConstructorKeyword | SyntaxKind.ContinueKeyword | SyntaxKind.DebuggerKeyword | SyntaxKind.DeclareKeyword | SyntaxKind.DefaultKeyword | SyntaxKind.DeleteKeyword | SyntaxKind.DoKeyword | SyntaxKind.ElseKeyword | SyntaxKind.EnumKeyword | SyntaxKind.ExportKeyword | SyntaxKind.ExtendsKeyword | SyntaxKind.FalseKeyword | SyntaxKind.FinallyKeyword | SyntaxKind.ForKeyword | SyntaxKind.FromKeyword | SyntaxKind.FunctionKeyword | SyntaxKind.GetKeyword | SyntaxKind.GlobalKeyword | SyntaxKind.IfKeyword | SyntaxKind.ImplementsKeyword | SyntaxKind.ImportKeyword | SyntaxKind.InferKeyword | SyntaxKind.InKeyword | SyntaxKind.InstanceOfKeyword | SyntaxKind.InterfaceKeyword | SyntaxKind.IntrinsicKeyword | SyntaxKind.IsKeyword | SyntaxKind.KeyOfKeyword | SyntaxKind.LetKeyword | SyntaxKind.ModuleKeyword | SyntaxKind.NamespaceKeyword | SyntaxKind.NeverKeyword | SyntaxKind.NewKeyword | SyntaxKind.NullKeyword | SyntaxKind.NumberKeyword | SyntaxKind.ObjectKeyword | SyntaxKind.OfKeyword | SyntaxKind.PackageKeyword | SyntaxKind.PrivateKeyword | SyntaxKind.ProtectedKeyword | SyntaxKind.PublicKeyword | SyntaxKind.ReadonlyKeyword | SyntaxKind.OverrideKeyword | SyntaxKind.RequireKeyword | SyntaxKind.ReturnKeyword | SyntaxKind.SetKeyword | SyntaxKind.StaticKeyword | SyntaxKind.StringKeyword | SyntaxKind.SuperKeyword | SyntaxKind.SwitchKeyword | SyntaxKind.SymbolKeyword | SyntaxKind.ThisKeyword | SyntaxKind.ThrowKeyword | SyntaxKind.TrueKeyword | SyntaxKind.TryKeyword | SyntaxKind.TypeKeyword | SyntaxKind.TypeOfKeyword | SyntaxKind.UndefinedKeyword | SyntaxKind.UniqueKeyword | SyntaxKind.UnknownKeyword | SyntaxKind.VarKeyword | SyntaxKind.VoidKeyword | SyntaxKind.WhileKeyword | SyntaxKind.WithKeyword | SyntaxKind.YieldKeyword; - export type ModifierSyntaxKind = SyntaxKind.AbstractKeyword | SyntaxKind.AsyncKeyword | SyntaxKind.ConstKeyword | SyntaxKind.DeclareKeyword | SyntaxKind.DefaultKeyword | SyntaxKind.ExportKeyword | SyntaxKind.PrivateKeyword | SyntaxKind.ProtectedKeyword | SyntaxKind.PublicKeyword | SyntaxKind.ReadonlyKeyword | SyntaxKind.OverrideKeyword | SyntaxKind.StaticKeyword; + export type KeywordSyntaxKind = SyntaxKind.AbstractKeyword | SyntaxKind.AnyKeyword | SyntaxKind.AsKeyword | SyntaxKind.AssertsKeyword | SyntaxKind.AssertKeyword | SyntaxKind.AsyncKeyword | SyntaxKind.AwaitKeyword | SyntaxKind.BigIntKeyword | SyntaxKind.BooleanKeyword | SyntaxKind.BreakKeyword | SyntaxKind.CaseKeyword | SyntaxKind.CatchKeyword | SyntaxKind.ClassKeyword | SyntaxKind.ConstKeyword | SyntaxKind.ConstructorKeyword | SyntaxKind.ContinueKeyword | SyntaxKind.DebuggerKeyword | SyntaxKind.DeclareKeyword | SyntaxKind.DefaultKeyword | SyntaxKind.DeleteKeyword | SyntaxKind.DoKeyword | SyntaxKind.ElseKeyword | SyntaxKind.EnumKeyword | SyntaxKind.ExportKeyword | SyntaxKind.ExtendsKeyword | SyntaxKind.FalseKeyword | SyntaxKind.FinallyKeyword | SyntaxKind.ForKeyword | SyntaxKind.FromKeyword | SyntaxKind.FunctionKeyword | SyntaxKind.GetKeyword | SyntaxKind.GlobalKeyword | SyntaxKind.IfKeyword | SyntaxKind.ImplementsKeyword | SyntaxKind.ImportKeyword | SyntaxKind.InferKeyword | SyntaxKind.InKeyword | SyntaxKind.InstanceOfKeyword | SyntaxKind.InterfaceKeyword | SyntaxKind.IntrinsicKeyword | SyntaxKind.IsKeyword | SyntaxKind.KeyOfKeyword | SyntaxKind.LetKeyword | SyntaxKind.ModuleKeyword | SyntaxKind.NamespaceKeyword | SyntaxKind.NeverKeyword | SyntaxKind.NewKeyword | SyntaxKind.NullKeyword | SyntaxKind.NumberKeyword | SyntaxKind.ObjectKeyword | SyntaxKind.OfKeyword | SyntaxKind.PackageKeyword | SyntaxKind.PrivateKeyword | SyntaxKind.ProtectedKeyword | SyntaxKind.PublicKeyword | SyntaxKind.ReadonlyKeyword | SyntaxKind.OutKeyword | SyntaxKind.OverrideKeyword | SyntaxKind.RequireKeyword | SyntaxKind.ReturnKeyword | SyntaxKind.SetKeyword | SyntaxKind.StaticKeyword | SyntaxKind.StringKeyword | SyntaxKind.SuperKeyword | SyntaxKind.SwitchKeyword | SyntaxKind.SymbolKeyword | SyntaxKind.ThisKeyword | SyntaxKind.ThrowKeyword | SyntaxKind.TrueKeyword | SyntaxKind.TryKeyword | SyntaxKind.TypeKeyword | SyntaxKind.TypeOfKeyword | SyntaxKind.UndefinedKeyword | SyntaxKind.UniqueKeyword | SyntaxKind.UnknownKeyword | SyntaxKind.VarKeyword | SyntaxKind.VoidKeyword | SyntaxKind.WhileKeyword | SyntaxKind.WithKeyword | SyntaxKind.YieldKeyword; + export type ModifierSyntaxKind = SyntaxKind.AbstractKeyword | SyntaxKind.AsyncKeyword | SyntaxKind.ConstKeyword | SyntaxKind.DeclareKeyword | SyntaxKind.DefaultKeyword | SyntaxKind.ExportKeyword | SyntaxKind.InKeyword | SyntaxKind.PrivateKeyword | SyntaxKind.ProtectedKeyword | SyntaxKind.PublicKeyword | SyntaxKind.ReadonlyKeyword | SyntaxKind.OutKeyword | SyntaxKind.OverrideKeyword | SyntaxKind.StaticKeyword; export type KeywordTypeSyntaxKind = SyntaxKind.AnyKeyword | SyntaxKind.BigIntKeyword | SyntaxKind.BooleanKeyword | SyntaxKind.IntrinsicKeyword | SyntaxKind.NeverKeyword | SyntaxKind.NumberKeyword | SyntaxKind.ObjectKeyword | SyntaxKind.StringKeyword | SyntaxKind.SymbolKeyword | SyntaxKind.UndefinedKeyword | SyntaxKind.UnknownKeyword | SyntaxKind.VoidKeyword; export type TokenSyntaxKind = SyntaxKind.Unknown | SyntaxKind.EndOfFileToken | TriviaSyntaxKind | LiteralSyntaxKind | PseudoLiteralSyntaxKind | PunctuationSyntaxKind | SyntaxKind.Identifier | KeywordSyntaxKind; export type JsxTokenSyntaxKind = SyntaxKind.LessThanSlashToken | SyntaxKind.EndOfFileToken | SyntaxKind.ConflictMarkerTrivia | SyntaxKind.JsxText | SyntaxKind.JsxTextAllWhiteSpaces | SyntaxKind.OpenBraceToken | SyntaxKind.LessThanToken; @@ -547,13 +551,15 @@ declare namespace ts { HasComputedJSDocModifiers = 4096, Deprecated = 8192, Override = 16384, + In = 32768, + Out = 65536, HasComputedFlags = 536870912, AccessibilityModifier = 28, ParameterPropertyModifier = 16476, NonPublicAccessibilityModifier = 24, - TypeScriptModifier = 18654, + TypeScriptModifier = 116958, ExportDefault = 513, - All = 27647 + All = 125951 } export enum JsxFlags { None = 0, @@ -572,7 +578,7 @@ declare namespace ts { } export interface JSDocContainer { } - export type HasJSDoc = ParameterDeclaration | CallSignatureDeclaration | ClassStaticBlockDeclaration | ConstructSignatureDeclaration | MethodSignature | PropertySignature | ArrowFunction | ParenthesizedExpression | SpreadAssignment | ShorthandPropertyAssignment | PropertyAssignment | FunctionExpression | EmptyStatement | DebuggerStatement | Block | VariableStatement | ExpressionStatement | IfStatement | DoStatement | WhileStatement | ForStatement | ForInStatement | ForOfStatement | BreakStatement | ContinueStatement | ReturnStatement | WithStatement | SwitchStatement | LabeledStatement | ThrowStatement | TryStatement | FunctionDeclaration | ConstructorDeclaration | MethodDeclaration | VariableDeclaration | PropertyDeclaration | AccessorDeclaration | ClassLikeDeclaration | InterfaceDeclaration | TypeAliasDeclaration | EnumMember | EnumDeclaration | ModuleDeclaration | ImportEqualsDeclaration | ImportDeclaration | NamespaceExportDeclaration | ExportAssignment | IndexSignatureDeclaration | FunctionTypeNode | ConstructorTypeNode | JSDocFunctionType | ExportDeclaration | NamedTupleMember | EndOfFileToken; + export type HasJSDoc = ParameterDeclaration | CallSignatureDeclaration | ClassStaticBlockDeclaration | ConstructSignatureDeclaration | MethodSignature | PropertySignature | ArrowFunction | ParenthesizedExpression | SpreadAssignment | ShorthandPropertyAssignment | PropertyAssignment | FunctionExpression | EmptyStatement | DebuggerStatement | Block | VariableStatement | ExpressionStatement | IfStatement | DoStatement | WhileStatement | ForStatement | ForInStatement | ForOfStatement | BreakStatement | ContinueStatement | ReturnStatement | WithStatement | SwitchStatement | LabeledStatement | ThrowStatement | TryStatement | FunctionDeclaration | ConstructorDeclaration | MethodDeclaration | VariableDeclaration | PropertyDeclaration | AccessorDeclaration | ClassLikeDeclaration | InterfaceDeclaration | TypeAliasDeclaration | EnumMember | EnumDeclaration | ModuleDeclaration | ImportEqualsDeclaration | ImportDeclaration | NamespaceExportDeclaration | ExportAssignment | IndexSignatureDeclaration | FunctionTypeNode | ConstructorTypeNode | JSDocFunctionType | ExportDeclaration | NamedTupleMember | ExportSpecifier | CaseClause | EndOfFileToken; export type HasType = SignatureDeclaration | VariableDeclaration | ParameterDeclaration | PropertySignature | PropertyDeclaration | TypePredicateNode | ParenthesizedTypeNode | TypeOperatorNode | MappedTypeNode | AssertionExpression | TypeAliasDeclaration | JSDocTypeExpression | JSDocNonNullableType | JSDocNullableType | JSDocOptionalType | JSDocVariadicType; export type HasTypeArguments = CallExpression | NewExpression | TaggedTemplateExpression | JsxOpeningElement | JsxSelfClosingElement; export type HasInitializer = HasExpressionInitializer | ForStatement | ForInStatement | ForOfStatement | JsxAttribute; @@ -614,15 +620,17 @@ declare namespace ts { export type DeclareKeyword = ModifierToken; export type DefaultKeyword = ModifierToken; export type ExportKeyword = ModifierToken; + export type InKeyword = ModifierToken; export type PrivateKeyword = ModifierToken; export type ProtectedKeyword = ModifierToken; export type PublicKeyword = ModifierToken; export type ReadonlyKeyword = ModifierToken; + export type OutKeyword = ModifierToken; export type OverrideKeyword = ModifierToken; export type StaticKeyword = ModifierToken; /** @deprecated Use `ReadonlyKeyword` instead. */ export type ReadonlyToken = ReadonlyKeyword; - export type Modifier = AbstractKeyword | AsyncKeyword | ConstKeyword | DeclareKeyword | DefaultKeyword | ExportKeyword | PrivateKeyword | ProtectedKeyword | PublicKeyword | OverrideKeyword | ReadonlyKeyword | StaticKeyword; + export type Modifier = AbstractKeyword | AsyncKeyword | ConstKeyword | DeclareKeyword | DefaultKeyword | ExportKeyword | InKeyword | PrivateKeyword | ProtectedKeyword | PublicKeyword | OutKeyword | OverrideKeyword | ReadonlyKeyword | StaticKeyword; export type AccessibilityModifier = PublicKeyword | PrivateKeyword | ProtectedKeyword; export type ParameterPropertyModifier = AccessibilityModifier | ReadonlyKeyword; export type ClassMemberModifier = AccessibilityModifier | ReadonlyKeyword | StaticKeyword; @@ -866,10 +874,17 @@ declare namespace ts { export interface KeywordTypeNode extends KeywordToken, TypeNode { readonly kind: TKind; } + export interface ImportTypeAssertionContainer extends Node { + readonly kind: SyntaxKind.ImportTypeAssertionContainer; + readonly parent: ImportTypeNode; + readonly assertClause: AssertClause; + readonly multiLine?: boolean; + } export interface ImportTypeNode extends NodeWithTypeArguments { readonly kind: SyntaxKind.ImportType; readonly isTypeOf: boolean; readonly argument: TypeNode; + readonly assertions?: ImportTypeAssertionContainer; readonly qualifier?: EntityName; } export interface ThisTypeNode extends TypeNode { @@ -897,11 +912,11 @@ declare namespace ts { export interface TypePredicateNode extends TypeNode { readonly kind: SyntaxKind.TypePredicate; readonly parent: SignatureDeclaration | JSDocTypeExpression; - readonly assertsModifier?: AssertsToken; + readonly assertsModifier?: AssertsKeyword; readonly parameterName: Identifier | ThisTypeNode; readonly type?: TypeNode; } - export interface TypeQueryNode extends TypeNode { + export interface TypeQueryNode extends NodeWithTypeArguments { readonly kind: SyntaxKind.TypeQuery; readonly exprName: EntityName; } @@ -968,7 +983,7 @@ declare namespace ts { } export interface MappedTypeNode extends TypeNode, Declaration { readonly kind: SyntaxKind.MappedType; - readonly readonlyToken?: ReadonlyToken | PlusToken | MinusToken; + readonly readonlyToken?: ReadonlyKeyword | PlusToken | MinusToken; readonly typeParameter: TypeParameterDeclaration; readonly nameType?: TypeNode; readonly questionToken?: QuestionToken | PlusToken | MinusToken; @@ -1285,9 +1300,8 @@ declare namespace ts { export interface ImportCall extends CallExpression { readonly expression: ImportExpression; } - export interface ExpressionWithTypeArguments extends NodeWithTypeArguments { + export interface ExpressionWithTypeArguments extends MemberExpression, NodeWithTypeArguments { readonly kind: SyntaxKind.ExpressionWithTypeArguments; - readonly parent: HeritageClause | JSDocAugmentsTag | JSDocImplementsTag; readonly expression: LeftHandSideExpression; } export interface NewExpression extends PrimaryExpression, Declaration { @@ -1465,7 +1479,7 @@ declare namespace ts { } export interface ForOfStatement extends IterationStatement { readonly kind: SyntaxKind.ForOfStatement; - readonly awaitModifier?: AwaitKeywordToken; + readonly awaitModifier?: AwaitKeyword; readonly initializer: ForInitializer; readonly expression: Expression; } @@ -1498,7 +1512,7 @@ declare namespace ts { readonly parent: SwitchStatement; readonly clauses: NodeArray; } - export interface CaseClause extends Node { + export interface CaseClause extends Node, JSDocContainer { readonly kind: SyntaxKind.CaseClause; readonly parent: CaseBlock; readonly expression: Expression; @@ -1652,7 +1666,7 @@ declare namespace ts { readonly kind: SyntaxKind.AssertEntry; readonly parent: AssertClause; readonly name: AssertionKey; - readonly value: StringLiteral; + readonly value: Expression; } export interface AssertClause extends Node { readonly kind: SyntaxKind.AssertClause; @@ -1702,7 +1716,7 @@ declare namespace ts { readonly name: Identifier; readonly isTypeOnly: boolean; } - export interface ExportSpecifier extends NamedDeclaration { + export interface ExportSpecifier extends NamedDeclaration, JSDocContainer { readonly kind: SyntaxKind.ExportSpecifier; readonly parent: NamedExports; readonly isTypeOnly: boolean; @@ -1720,19 +1734,23 @@ declare namespace ts { readonly parent: ImportClause & { readonly isTypeOnly: true; }; - } | ImportSpecifier & { + } | ImportSpecifier & ({ + readonly isTypeOnly: true; + } | { readonly parent: NamedImports & { readonly parent: ImportClause & { readonly isTypeOnly: true; }; }; - } | ExportSpecifier & { + }) | ExportSpecifier & ({ + readonly isTypeOnly: true; + } | { readonly parent: NamedExports & { readonly parent: ExportDeclaration & { readonly isTypeOnly: true; }; }; - }; + }); /** * This is either an `export =` or an `export default` declaration. * Unless `isExportEquals` is set, this node was parsed as an `export default`. @@ -1745,6 +1763,7 @@ declare namespace ts { } export interface FileReference extends TextRange { fileName: string; + resolutionMode?: SourceFile["impliedNodeFormat"]; } export interface CheckJsDirective extends TextRange { enabled: boolean; @@ -1808,7 +1827,7 @@ declare namespace ts { } export type JSDocTypeReferencingNode = JSDocVariadicType | JSDocOptionalType | JSDocNullableType | JSDocNonNullableType; export interface JSDoc extends Node { - readonly kind: SyntaxKind.JSDocComment; + readonly kind: SyntaxKind.JSDoc; readonly parent: HasJSDoc; readonly tags?: NodeArray; readonly comment?: string | NodeArray; @@ -2011,6 +2030,12 @@ declare namespace ts { path: string; name?: string; } + /** + * Subset of properties from SourceFile that are used in multiple utility functions + */ + export interface SourceFileLike { + readonly text: string; + } export interface SourceFile extends Declaration { readonly kind: SyntaxKind.SourceFile; readonly statements: NodeArray; @@ -2070,7 +2095,7 @@ declare namespace ts { readonly prologues: readonly UnparsedPrologue[]; helpers: readonly UnscopedEmitHelper[] | undefined; referencedFiles: readonly FileReference[]; - typeReferenceDirectives: readonly string[] | undefined; + typeReferenceDirectives: readonly FileReference[] | undefined; libReferenceDirectives: readonly FileReference[]; hasNoDefaultLib?: boolean; sourceMapPath?: string; @@ -2650,13 +2675,13 @@ declare namespace ts { ObjectLiteralPatternWithComputedProperties = 512, ReverseMapped = 1024, JsxAttributes = 2048, - MarkerType = 4096, - JSLiteral = 8192, - FreshLiteral = 16384, - ArrayLiteral = 32768, + JSLiteral = 4096, + FreshLiteral = 8192, + ArrayLiteral = 16384, ClassOrInterface = 3, - ContainsSpread = 4194304, - ObjectRestType = 8388608, + ContainsSpread = 2097152, + ObjectRestType = 4194304, + InstantiationExpressionType = 8388608, } export interface ObjectType extends Type { objectFlags: ObjectFlags; @@ -2747,7 +2772,6 @@ declare namespace ts { checkType: Type; extendsType: Type; isDistributive: boolean; - isDistributionDependent: boolean; inferTypeParameters?: TypeParameter[]; outerTypeParameters?: TypeParameter[]; instantiations?: Map; @@ -2868,6 +2892,20 @@ declare namespace ts { Node12 = 3, NodeNext = 99 } + export enum ModuleDetectionKind { + /** + * Files with imports, exports and/or import.meta are considered modules + */ + Legacy = 1, + /** + * Legacy, but also files with jsx under react-jsx or react-jsxdev and esm mode files under moduleResolution: node12+ + */ + Auto = 2, + /** + * Consider all non-declaration files modules, regardless of present syntax + */ + Force = 3 + } export interface PluginImport { name: string; } @@ -2939,6 +2977,8 @@ declare namespace ts { maxNodeModuleJsDepth?: number; module?: ModuleKind; moduleResolution?: ModuleResolutionKind; + moduleSuffixes?: string[]; + moduleDetection?: ModuleDetectionKind; newLine?: NewLineKind; noEmit?: boolean; noEmitHelpers?: boolean; @@ -3079,6 +3119,7 @@ declare namespace ts { ES2019 = 6, ES2020 = 7, ES2021 = 8, + ES2022 = 9, ESNext = 99, JSON = 100, Latest = 99 @@ -3125,6 +3166,13 @@ declare namespace ts { getDirectories?(path: string): string[]; useCaseSensitiveFileNames?: boolean | (() => boolean); } + /** + * Used by services to specify the minimum host area required to set up source files under any compilation settings + */ + export interface MinimalResolutionCacheHost extends ModuleResolutionHost { + getCompilationSettings(): CompilerOptions; + getCompilerHost?(): CompilerHost | undefined; + } /** * Represents the result of module resolution. * Module resolution will pick up tsx/jsx/js files even if '--jsx' and '--allowJs' are turned off. @@ -3200,8 +3248,8 @@ declare namespace ts { readonly failedLookupLocations: string[]; } export interface CompilerHost extends ModuleResolutionHost { - getSourceFile(fileName: string, languageVersion: ScriptTarget, onError?: (message: string) => void, shouldCreateNewSourceFile?: boolean): SourceFile | undefined; - getSourceFileByPath?(fileName: string, path: Path, languageVersion: ScriptTarget, onError?: (message: string) => void, shouldCreateNewSourceFile?: boolean): SourceFile | undefined; + getSourceFile(fileName: string, languageVersionOrOptions: ScriptTarget | CreateSourceFileOptions, onError?: (message: string) => void, shouldCreateNewSourceFile?: boolean): SourceFile | undefined; + getSourceFileByPath?(fileName: string, path: Path, languageVersionOrOptions: ScriptTarget | CreateSourceFileOptions, onError?: (message: string) => void, shouldCreateNewSourceFile?: boolean): SourceFile | undefined; getCancellationToken?(): CancellationToken; getDefaultLibFileName(options: CompilerOptions): string; getDefaultLibLocation?(): string; @@ -3219,7 +3267,7 @@ declare namespace ts { /** * This method is a companion for 'resolveModuleNames' and is used to resolve 'types' references to actual type declaration files */ - resolveTypeReferenceDirectives?(typeReferenceDirectiveNames: string[], containingFile: string, redirectedReference: ResolvedProjectReference | undefined, options: CompilerOptions): (ResolvedTypeReferenceDirective | undefined)[]; + resolveTypeReferenceDirectives?(typeReferenceDirectiveNames: string[] | readonly FileReference[], containingFile: string, redirectedReference: ResolvedProjectReference | undefined, options: CompilerOptions, containingFileMode?: SourceFile["impliedNodeFormat"] | undefined): (ResolvedTypeReferenceDirective | undefined)[]; getEnvironmentVariable?(name: string): string | undefined; createHash?(data: string): string; getParsedCommandLine?(fileName: string): ParsedCommandLine | undefined; @@ -3344,12 +3392,16 @@ declare namespace ts { createTrue(): TrueLiteral; createFalse(): FalseLiteral; createModifier(kind: T): ModifierToken; - createModifiersFromModifierFlags(flags: ModifierFlags): Modifier[]; + createModifiersFromModifierFlags(flags: ModifierFlags): Modifier[] | undefined; createQualifiedName(left: EntityName, right: string | Identifier): QualifiedName; updateQualifiedName(node: QualifiedName, left: EntityName, right: Identifier): QualifiedName; createComputedPropertyName(expression: Expression): ComputedPropertyName; updateComputedPropertyName(node: ComputedPropertyName, expression: Expression): ComputedPropertyName; + createTypeParameterDeclaration(modifiers: readonly Modifier[] | undefined, name: string | Identifier, constraint?: TypeNode, defaultType?: TypeNode): TypeParameterDeclaration; + /** @deprecated */ createTypeParameterDeclaration(name: string | Identifier, constraint?: TypeNode, defaultType?: TypeNode): TypeParameterDeclaration; + updateTypeParameterDeclaration(node: TypeParameterDeclaration, modifiers: readonly Modifier[] | undefined, name: Identifier, constraint: TypeNode | undefined, defaultType: TypeNode | undefined): TypeParameterDeclaration; + /** @deprecated */ updateTypeParameterDeclaration(node: TypeParameterDeclaration, name: Identifier, constraint: TypeNode | undefined, defaultType: TypeNode | undefined): TypeParameterDeclaration; createParameterDeclaration(decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, dotDotDotToken: DotDotDotToken | undefined, name: string | BindingName, questionToken?: QuestionToken, type?: TypeNode, initializer?: Expression): ParameterDeclaration; updateParameterDeclaration(node: ParameterDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, dotDotDotToken: DotDotDotToken | undefined, name: string | BindingName, questionToken: QuestionToken | undefined, type: TypeNode | undefined, initializer: Expression | undefined): ParameterDeclaration; @@ -3392,8 +3444,8 @@ declare namespace ts { updateConstructorTypeNode(node: ConstructorTypeNode, modifiers: readonly Modifier[] | undefined, typeParameters: NodeArray | undefined, parameters: NodeArray, type: TypeNode): ConstructorTypeNode; /** @deprecated */ updateConstructorTypeNode(node: ConstructorTypeNode, typeParameters: NodeArray | undefined, parameters: NodeArray, type: TypeNode): ConstructorTypeNode; - createTypeQueryNode(exprName: EntityName): TypeQueryNode; - updateTypeQueryNode(node: TypeQueryNode, exprName: EntityName): TypeQueryNode; + createTypeQueryNode(exprName: EntityName, typeArguments?: readonly TypeNode[]): TypeQueryNode; + updateTypeQueryNode(node: TypeQueryNode, exprName: EntityName, typeArguments?: readonly TypeNode[]): TypeQueryNode; createTypeLiteralNode(members: readonly TypeElement[] | undefined): TypeLiteralNode; updateTypeLiteralNode(node: TypeLiteralNode, members: NodeArray): TypeLiteralNode; createArrayTypeNode(elementType: TypeNode): ArrayTypeNode; @@ -3415,7 +3467,9 @@ declare namespace ts { createInferTypeNode(typeParameter: TypeParameterDeclaration): InferTypeNode; updateInferTypeNode(node: InferTypeNode, typeParameter: TypeParameterDeclaration): InferTypeNode; createImportTypeNode(argument: TypeNode, qualifier?: EntityName, typeArguments?: readonly TypeNode[], isTypeOf?: boolean): ImportTypeNode; + createImportTypeNode(argument: TypeNode, assertions?: ImportTypeAssertionContainer, qualifier?: EntityName, typeArguments?: readonly TypeNode[], isTypeOf?: boolean): ImportTypeNode; updateImportTypeNode(node: ImportTypeNode, argument: TypeNode, qualifier: EntityName | undefined, typeArguments: readonly TypeNode[] | undefined, isTypeOf?: boolean): ImportTypeNode; + updateImportTypeNode(node: ImportTypeNode, argument: TypeNode, assertions: ImportTypeAssertionContainer | undefined, qualifier: EntityName | undefined, typeArguments: readonly TypeNode[] | undefined, isTypeOf?: boolean): ImportTypeNode; createParenthesizedType(type: TypeNode): ParenthesizedTypeNode; updateParenthesizedType(node: ParenthesizedTypeNode, type: TypeNode): ParenthesizedTypeNode; createThisTypeNode(): ThisTypeNode; @@ -3576,8 +3630,10 @@ declare namespace ts { updateImportClause(node: ImportClause, isTypeOnly: boolean, name: Identifier | undefined, namedBindings: NamedImportBindings | undefined): ImportClause; createAssertClause(elements: NodeArray, multiLine?: boolean): AssertClause; updateAssertClause(node: AssertClause, elements: NodeArray, multiLine?: boolean): AssertClause; - createAssertEntry(name: AssertionKey, value: StringLiteral): AssertEntry; - updateAssertEntry(node: AssertEntry, name: AssertionKey, value: StringLiteral): AssertEntry; + createAssertEntry(name: AssertionKey, value: Expression): AssertEntry; + updateAssertEntry(node: AssertEntry, name: AssertionKey, value: Expression): AssertEntry; + createImportTypeAssertionContainer(clause: AssertClause, multiLine?: boolean): ImportTypeAssertionContainer; + updateImportTypeAssertionContainer(node: ImportTypeAssertionContainer, clause: AssertClause, multiLine?: boolean): ImportTypeAssertionContainer; createNamespaceImport(name: Identifier): NamespaceImport; updateNamespaceImport(node: NamespaceImport, name: Identifier): NamespaceImport; createNamespaceExport(name: Identifier): NamespaceExport; @@ -4043,6 +4099,9 @@ declare namespace ts { readonly includeCompletionsWithSnippetText?: boolean; readonly includeAutomaticOptionalChainCompletions?: boolean; readonly includeCompletionsWithInsertText?: boolean; + readonly includeCompletionsWithClassMemberSnippets?: boolean; + readonly includeCompletionsWithObjectLiteralMethodSnippets?: boolean; + readonly useLabelDetailsInCompletionEntries?: boolean; readonly allowIncompleteCompletions?: boolean; readonly importModuleSpecifierPreference?: "shortest" | "project-relative" | "relative" | "non-relative"; /** Determines whether we import `foo/index.ts` as "foo", "foo/index", or "foo/index.js" */ @@ -4052,6 +4111,13 @@ declare namespace ts { readonly includePackageJsonAutoImports?: "auto" | "on" | "off"; readonly provideRefactorNotApplicableReason?: boolean; readonly jsxAttributeCompletionStyle?: "auto" | "braces" | "none"; + readonly includeInlayParameterNameHints?: "none" | "literals" | "all"; + readonly includeInlayParameterNameHintsWhenArgumentMatchesName?: boolean; + readonly includeInlayFunctionParameterTypeHints?: boolean; + readonly includeInlayVariableTypeHints?: boolean; + readonly includeInlayPropertyDeclarationTypeHints?: boolean; + readonly includeInlayFunctionLikeReturnTypeHints?: boolean; + readonly includeInlayEnumMemberValueHints?: boolean; } /** Represents a bigint literal value without requiring bigint support */ export interface PseudoBigInt { @@ -4743,7 +4809,22 @@ declare namespace ts { * that they appear in the source code. The language service depends on this property to locate nodes by position. */ export function forEachChild(node: Node, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined; - export function createSourceFile(fileName: string, sourceText: string, languageVersion: ScriptTarget, setParentNodes?: boolean, scriptKind?: ScriptKind): SourceFile; + export interface CreateSourceFileOptions { + languageVersion: ScriptTarget; + /** + * Controls the format the file is detected as - this can be derived from only the path + * and files on disk, but needs to be done with a module resolution cache in scope to be performant. + * This is usually `undefined` for compilations that do not have `moduleResolution` values of `node12` or `nodenext`. + */ + impliedNodeFormat?: ModuleKind.ESNext | ModuleKind.CommonJS; + /** + * Controls how module-y-ness is set for the given file. Usually the result of calling + * `getSetExternalModuleIndicator` on a valid `CompilerOptions` object. If not present, the default + * check specified by `isFileProbablyExternalModule` will be used to set the field. + */ + setExternalModuleIndicator?: (file: SourceFile) => void; + } + export function createSourceFile(fileName: string, sourceText: string, languageVersionOrOptions: ScriptTarget | CreateSourceFileOptions, setParentNodes?: boolean, scriptKind?: ScriptKind): SourceFile; export function parseIsolatedEntityName(text: string, languageVersion: ScriptTarget): EntityName | undefined; /** * Parse json text into SyntaxTree and return node and parse errors if any @@ -4850,7 +4931,7 @@ declare namespace ts { * This is possible in case if resolution is performed for directives specified via 'types' parameter. In this case initial path for secondary lookups * is assumed to be the same as root directory of the project. */ - export function resolveTypeReferenceDirective(typeReferenceDirectiveName: string, containingFile: string | undefined, options: CompilerOptions, host: ModuleResolutionHost, redirectedReference?: ResolvedProjectReference, cache?: TypeReferenceDirectiveResolutionCache): ResolvedTypeReferenceDirectiveWithFailedLookupLocations; + export function resolveTypeReferenceDirective(typeReferenceDirectiveName: string, containingFile: string | undefined, options: CompilerOptions, host: ModuleResolutionHost, redirectedReference?: ResolvedProjectReference, cache?: TypeReferenceDirectiveResolutionCache, resolutionMode?: SourceFile["impliedNodeFormat"]): ResolvedTypeReferenceDirectiveWithFailedLookupLocations; /** * Given a set of options, returns the set of type directive names * that should be included for this program automatically. @@ -5271,7 +5352,7 @@ declare namespace ts { /** If provided, used to resolve the module names, otherwise typescript's default module resolution */ resolveModuleNames?(moduleNames: string[], containingFile: string, reusedNames: string[] | undefined, redirectedReference: ResolvedProjectReference | undefined, options: CompilerOptions, containingSourceFile?: SourceFile): (ResolvedModule | undefined)[]; /** If provided, used to resolve type reference directives, otherwise typescript's default resolution */ - resolveTypeReferenceDirectives?(typeReferenceDirectiveNames: string[], containingFile: string, redirectedReference: ResolvedProjectReference | undefined, options: CompilerOptions): (ResolvedTypeReferenceDirective | undefined)[]; + resolveTypeReferenceDirectives?(typeReferenceDirectiveNames: string[] | readonly FileReference[], containingFile: string, redirectedReference: ResolvedProjectReference | undefined, options: CompilerOptions, containingFileMode?: SourceFile["impliedNodeFormat"] | undefined): (ResolvedTypeReferenceDirective | undefined)[]; } interface WatchCompilerHost extends ProgramHost, WatchHost { /** Instead of using output d.ts file from project reference, use its source file */ @@ -5351,7 +5432,11 @@ declare namespace ts { traceResolution?: boolean; [option: string]: CompilerOptionsValue | undefined; } - type ReportEmitErrorSummary = (errorCount: number) => void; + type ReportEmitErrorSummary = (errorCount: number, filesInError: (ReportFileInError | undefined)[]) => void; + interface ReportFileInError { + fileName: string; + line: number; + } interface SolutionBuilderHostBase extends ProgramHost { createDirectory?(path: string): void; /** @@ -5559,6 +5644,7 @@ declare namespace ts { isTypeParameter(): this is TypeParameter; isClassOrInterface(): this is InterfaceType; isClass(): this is InterfaceType; + isIndexType(): this is IndexType; } interface TypeReference { typeArguments?: readonly Type[]; @@ -5567,6 +5653,7 @@ declare namespace ts { getDeclaration(): SignatureDeclaration; getTypeParameters(): TypeParameter[] | undefined; getParameters(): Symbol[]; + getTypeParameterAtPosition(pos: number): Type; getReturnType(): Type; getDocumentationComment(typeChecker: TypeChecker | undefined): SymbolDisplayPart[]; getJsDocTags(): JSDocTagInfo[]; @@ -5637,7 +5724,7 @@ declare namespace ts { set(response: CompletionInfo): void; clear(): void; } - interface LanguageServiceHost extends GetEffectiveTypeRootsHost { + interface LanguageServiceHost extends GetEffectiveTypeRootsHost, MinimalResolutionCacheHost { getCompilationSettings(): CompilerOptions; getNewLine?(): string; getProjectVersion?(): string; @@ -5655,13 +5742,13 @@ declare namespace ts { error?(s: string): void; useCaseSensitiveFileNames?(): boolean; readDirectory?(path: string, extensions?: readonly string[], exclude?: readonly string[], include?: readonly string[], depth?: number): string[]; - readFile?(path: string, encoding?: string): string | undefined; realpath?(path: string): string; - fileExists?(path: string): boolean; + readFile(path: string, encoding?: string): string | undefined; + fileExists(path: string): boolean; getTypeRootsVersion?(): number; resolveModuleNames?(moduleNames: string[], containingFile: string, reusedNames: string[] | undefined, redirectedReference: ResolvedProjectReference | undefined, options: CompilerOptions, containingSourceFile?: SourceFile): (ResolvedModule | undefined)[]; getResolvedModuleWithFailedLookupLocationsFromCache?(modulename: string, containingFile: string, resolutionMode?: ModuleKind.CommonJS | ModuleKind.ESNext): ResolvedModuleWithFailedLookupLocations | undefined; - resolveTypeReferenceDirectives?(typeDirectiveNames: string[], containingFile: string, redirectedReference: ResolvedProjectReference | undefined, options: CompilerOptions): (ResolvedTypeReferenceDirective | undefined)[]; + resolveTypeReferenceDirectives?(typeDirectiveNames: string[] | FileReference[], containingFile: string, redirectedReference: ResolvedProjectReference | undefined, options: CompilerOptions, containingFileMode?: SourceFile["impliedNodeFormat"] | undefined): (ResolvedTypeReferenceDirective | undefined)[]; getDirectories?(directoryName: string): string[]; /** * Gets a set of custom transformers to use during emit. @@ -5753,8 +5840,9 @@ declare namespace ts { * @param position A zero-based index of the character where you want the entries * @param options An object describing how the request was triggered and what kinds * of code actions can be returned with the completions. + * @param formattingSettings settings needed for calling formatting functions. */ - getCompletionsAtPosition(fileName: string, position: number, options: GetCompletionsAtPositionOptions | undefined): WithMetadata | undefined; + getCompletionsAtPosition(fileName: string, position: number, options: GetCompletionsAtPositionOptions | undefined, formattingSettings?: FormatCodeSettings): WithMetadata | undefined; /** * Gets the extended details for a completion entry retrieved from `getCompletionsAtPosition`. * @@ -5869,15 +5957,6 @@ declare namespace ts { /** @deprecated Use includeCompletionsWithInsertText */ includeInsertTextCompletions?: boolean; } - interface InlayHintsOptions extends UserPreferences { - readonly includeInlayParameterNameHints?: "none" | "literals" | "all"; - readonly includeInlayParameterNameHintsWhenArgumentMatchesName?: boolean; - readonly includeInlayFunctionParameterTypeHints?: boolean; - readonly includeInlayVariableTypeHints?: boolean; - readonly includeInlayPropertyDeclarationTypeHints?: boolean; - readonly includeInlayFunctionLikeReturnTypeHints?: boolean; - readonly includeInlayEnumMemberValueHints?: boolean; - } type SignatureHelpTriggerCharacter = "," | "(" | "<"; type SignatureHelpRetriggerCharacter = SignatureHelpTriggerCharacter | ")"; interface SignatureHelpItemsOptions { @@ -6408,6 +6487,7 @@ declare namespace ts { hasAction?: true; source?: string; sourceDisplay?: SymbolDisplayPart[]; + labelDetails?: CompletionEntryLabelDetails; isRecommended?: true; isFromUncheckedFile?: true; isPackageJsonImport?: true; @@ -6422,6 +6502,10 @@ declare namespace ts { */ data?: CompletionEntryData; } + interface CompletionEntryLabelDetails { + detail?: string; + description?: string; + } interface CompletionEntryDetails { name: string; kind: ScriptElementKind; @@ -6586,6 +6670,7 @@ declare namespace ts { externalModuleName = "external module name", /** * + * @deprecated */ jsxAttribute = "JSX attribute", /** String literal */ @@ -6680,7 +6765,7 @@ declare namespace ts { cancellationToken: CancellationToken; host: LanguageServiceHost; span: TextSpan; - preferences: InlayHintsOptions; + preferences: UserPreferences; } } declare namespace ts { @@ -6716,30 +6801,36 @@ declare namespace ts { * the SourceFile if was not found in the registry. * * @param fileName The name of the file requested - * @param compilationSettings Some compilation settings like target affects the + * @param compilationSettingsOrHost Some compilation settings like target affects the * shape of a the resulting SourceFile. This allows the DocumentRegistry to store - * multiple copies of the same file for different compilation settings. + * multiple copies of the same file for different compilation settings. A minimal + * resolution cache is needed to fully define a source file's shape when + * the compilation settings include `module: node12`+, so providing a cache host + * object should be preferred. A common host is a language service `ConfiguredProject`. * @param scriptSnapshot Text of the file. Only used if the file was not found * in the registry and a new one was created. * @param version Current version of the file. Only used if the file was not found * in the registry and a new one was created. */ - acquireDocument(fileName: string, compilationSettings: CompilerOptions, scriptSnapshot: IScriptSnapshot, version: string, scriptKind?: ScriptKind): SourceFile; - acquireDocumentWithKey(fileName: string, path: Path, compilationSettings: CompilerOptions, key: DocumentRegistryBucketKey, scriptSnapshot: IScriptSnapshot, version: string, scriptKind?: ScriptKind): SourceFile; + acquireDocument(fileName: string, compilationSettingsOrHost: CompilerOptions | MinimalResolutionCacheHost, scriptSnapshot: IScriptSnapshot, version: string, scriptKind?: ScriptKind): SourceFile; + acquireDocumentWithKey(fileName: string, path: Path, compilationSettingsOrHost: CompilerOptions | MinimalResolutionCacheHost, key: DocumentRegistryBucketKey, scriptSnapshot: IScriptSnapshot, version: string, scriptKind?: ScriptKind): SourceFile; /** * Request an updated version of an already existing SourceFile with a given fileName * and compilationSettings. The update will in-turn call updateLanguageServiceSourceFile * to get an updated SourceFile. * * @param fileName The name of the file requested - * @param compilationSettings Some compilation settings like target affects the + * @param compilationSettingsOrHost Some compilation settings like target affects the * shape of a the resulting SourceFile. This allows the DocumentRegistry to store - * multiple copies of the same file for different compilation settings. + * multiple copies of the same file for different compilation settings. A minimal + * resolution cache is needed to fully define a source file's shape when + * the compilation settings include `module: node12`+, so providing a cache host + * object should be preferred. A common host is a language service `ConfiguredProject`. * @param scriptSnapshot Text of the file. * @param version Current version of the file. */ - updateDocument(fileName: string, compilationSettings: CompilerOptions, scriptSnapshot: IScriptSnapshot, version: string, scriptKind?: ScriptKind): SourceFile; - updateDocumentWithKey(fileName: string, path: Path, compilationSettings: CompilerOptions, key: DocumentRegistryBucketKey, scriptSnapshot: IScriptSnapshot, version: string, scriptKind?: ScriptKind): SourceFile; + updateDocument(fileName: string, compilationSettingsOrHost: CompilerOptions | MinimalResolutionCacheHost, scriptSnapshot: IScriptSnapshot, version: string, scriptKind?: ScriptKind): SourceFile; + updateDocumentWithKey(fileName: string, path: Path, compilationSettingsOrHost: CompilerOptions | MinimalResolutionCacheHost, key: DocumentRegistryBucketKey, scriptSnapshot: IScriptSnapshot, version: string, scriptKind?: ScriptKind): SourceFile; getKeyForCompilationSettings(settings: CompilerOptions): DocumentRegistryBucketKey; /** * Informs the DocumentRegistry that a file is not needed any longer. @@ -6801,7 +6892,7 @@ declare namespace ts { function displayPartsToString(displayParts: SymbolDisplayPart[] | undefined): string; function getDefaultCompilerOptions(): CompilerOptions; function getSupportedCodeFixes(): string[]; - function createLanguageServiceSourceFile(fileName: string, scriptSnapshot: IScriptSnapshot, scriptTarget: ScriptTarget, version: string, setNodeParents: boolean, scriptKind?: ScriptKind): SourceFile; + function createLanguageServiceSourceFile(fileName: string, scriptSnapshot: IScriptSnapshot, scriptTargetOrOptions: ScriptTarget | CreateSourceFileOptions, version: string, setNodeParents: boolean, scriptKind?: ScriptKind): SourceFile; function updateLanguageServiceSourceFile(sourceFile: SourceFile, scriptSnapshot: IScriptSnapshot, version: string, textChangeRange: TextChangeRange | undefined, aggressiveChecks?: boolean): SourceFile; function createLanguageService(host: LanguageServiceHost, documentRegistry?: DocumentRegistry, syntaxOnlyOrLanguageServiceMode?: boolean | LanguageServiceMode): LanguageService; /** @@ -8624,6 +8715,10 @@ declare namespace ts.server.protocol { * Human-readable description of the `source`. */ sourceDisplay?: SymbolDisplayPart[]; + /** + * Additional details for the label. + */ + labelDetails?: CompletionEntryLabelDetails; /** * If true, this completion should be highlighted as recommended. There will only be one of these. * This will be set when we know the user should write an expression with a certain type and that type is an enum or constructable class. @@ -8652,6 +8747,20 @@ declare namespace ts.server.protocol { */ data?: unknown; } + interface CompletionEntryLabelDetails { + /** + * An optional string which is rendered less prominently directly after + * {@link CompletionEntry.name name}, without any spacing. Should be + * used for function signatures or type annotations. + */ + detail?: string; + /** + * An optional string which is rendered less prominently after + * {@link CompletionEntryLabelDetails.detail}. Should be used for fully qualified + * names or file path. + */ + description?: string; + } /** * Additional completion entry details, available on demand */ @@ -9538,6 +9647,25 @@ declare namespace ts.server.protocol { * values, with insertion text to replace preceding `.` tokens with `?.`. */ readonly includeAutomaticOptionalChainCompletions?: boolean; + /** + * If enabled, completions for class members (e.g. methods and properties) will include + * a whole declaration for the member. + * E.g., `class A { f| }` could be completed to `class A { foo(): number {} }`, instead of + * `class A { foo }`. + */ + readonly includeCompletionsWithClassMemberSnippets?: boolean; + /** + * If enabled, object literal methods will have a method declaration completion entry in addition + * to the regular completion entry containing just the method name. + * E.g., `const objectLiteral: T = { f| }` could be completed to `const objectLiteral: T = { foo(): void {} }`, + * in addition to `const objectLiteral: T = { foo }`. + */ + readonly includeCompletionsWithObjectLiteralMethodSnippets?: boolean; + /** + * Indicates whether {@link CompletionEntry.labelDetails completion entry label details} are supported. + * If not, contents of `labelDetails` may be included in the {@link CompletionEntry.name} property. + */ + readonly useLabelDetailsInCompletionEntries?: boolean; readonly allowIncompleteCompletions?: boolean; readonly importModuleSpecifierPreference?: "shortest" | "project-relative" | "relative" | "non-relative"; /** Determines whether we import `foo/index.ts` as "foo", "foo/index", or "foo/index.js" */ @@ -9551,6 +9679,13 @@ declare namespace ts.server.protocol { readonly jsxAttributeCompletionStyle?: "auto" | "braces" | "none"; readonly displayPartsForJSDoc?: boolean; readonly generateReturnInDocTemplate?: boolean; + readonly includeInlayParameterNameHints?: "none" | "literals" | "all"; + readonly includeInlayParameterNameHintsWhenArgumentMatchesName?: boolean; + readonly includeInlayFunctionParameterTypeHints?: boolean; + readonly includeInlayVariableTypeHints?: boolean; + readonly includeInlayPropertyDeclarationTypeHints?: boolean; + readonly includeInlayFunctionLikeReturnTypeHints?: boolean; + readonly includeInlayEnumMemberValueHints?: boolean; } interface CompilerOptions { allowJs?: boolean; @@ -9659,6 +9794,7 @@ declare namespace ts.server.protocol { ES2019 = "ES2019", ES2020 = "ES2020", ES2021 = "ES2021", + ES2022 = "ES2022", ESNext = "ESNext" } enum ClassificationType { @@ -9858,8 +9994,9 @@ declare namespace ts.server { writeFile(fileName: string, content: string): void; fileExists(file: string): boolean; resolveModuleNames(moduleNames: string[], containingFile: string, reusedNames?: string[], redirectedReference?: ResolvedProjectReference, _options?: CompilerOptions, containingSourceFile?: SourceFile): (ResolvedModuleFull | undefined)[]; + getModuleResolutionCache(): ModuleResolutionCache | undefined; getResolvedModuleWithFailedLookupLocationsFromCache(moduleName: string, containingFile: string, resolutionMode?: ModuleKind.CommonJS | ModuleKind.ESNext): ResolvedModuleWithFailedLookupLocations | undefined; - resolveTypeReferenceDirectives(typeDirectiveNames: string[], containingFile: string, redirectedReference?: ResolvedProjectReference): (ResolvedTypeReferenceDirective | undefined)[]; + resolveTypeReferenceDirectives(typeDirectiveNames: string[] | FileReference[], containingFile: string, redirectedReference?: ResolvedProjectReference, _options?: CompilerOptions, containingFileMode?: SourceFile["impliedNodeFormat"] | undefined): (ResolvedTypeReferenceDirective | undefined)[]; directoryExists(path: string): boolean; getDirectories(path: string): string[]; log(s: string): void; @@ -10471,6 +10608,7 @@ declare namespace ts.server { logError(err: Error, cmd: string): void; private logErrorWorker; send(msg: protocol.Message): void; + protected writeMessage(msg: protocol.Message): void; event(body: T, eventName: string): void; /** @deprecated */ output(info: any, cmdName: string, reqSeq?: number, errorMsg?: string): void; @@ -10656,7 +10794,7 @@ declare namespace ts { /** @deprecated Use `factory.createModifier` or the factory supplied by your transformation context instead. */ const createModifier: (kind: T) => ModifierToken; /** @deprecated Use `factory.createModifiersFromModifierFlags` or the factory supplied by your transformation context instead. */ - const createModifiersFromModifierFlags: (flags: ModifierFlags) => Modifier[]; + const createModifiersFromModifierFlags: (flags: ModifierFlags) => Modifier[] | undefined; /** @deprecated Use `factory.createQualifiedName` or the factory supplied by your transformation context instead. */ const createQualifiedName: (left: EntityName, right: string | Identifier) => QualifiedName; /** @deprecated Use `factory.updateQualifiedName` or the factory supplied by your transformation context instead. */ @@ -10666,9 +10804,15 @@ declare namespace ts { /** @deprecated Use `factory.updateComputedPropertyName` or the factory supplied by your transformation context instead. */ const updateComputedPropertyName: (node: ComputedPropertyName, expression: Expression) => ComputedPropertyName; /** @deprecated Use `factory.createTypeParameterDeclaration` or the factory supplied by your transformation context instead. */ - const createTypeParameterDeclaration: (name: string | Identifier, constraint?: TypeNode | undefined, defaultType?: TypeNode | undefined) => TypeParameterDeclaration; + const createTypeParameterDeclaration: { + (modifiers: readonly Modifier[] | undefined, name: string | Identifier, constraint?: TypeNode | undefined, defaultType?: TypeNode | undefined): TypeParameterDeclaration; + (name: string | Identifier, constraint?: TypeNode | undefined, defaultType?: TypeNode | undefined): TypeParameterDeclaration; + }; /** @deprecated Use `factory.updateTypeParameterDeclaration` or the factory supplied by your transformation context instead. */ - const updateTypeParameterDeclaration: (node: TypeParameterDeclaration, name: Identifier, constraint: TypeNode | undefined, defaultType: TypeNode | undefined) => TypeParameterDeclaration; + const updateTypeParameterDeclaration: { + (node: TypeParameterDeclaration, modifiers: readonly Modifier[] | undefined, name: Identifier, constraint: TypeNode | undefined, defaultType: TypeNode | undefined): TypeParameterDeclaration; + (node: TypeParameterDeclaration, name: Identifier, constraint: TypeNode | undefined, defaultType: TypeNode | undefined): TypeParameterDeclaration; + }; /** @deprecated Use `factory.createParameterDeclaration` or the factory supplied by your transformation context instead. */ const createParameter: (decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, dotDotDotToken: DotDotDotToken | undefined, name: string | BindingName, questionToken?: QuestionToken | undefined, type?: TypeNode | undefined, initializer?: Expression | undefined) => ParameterDeclaration; /** @deprecated Use `factory.updateParameterDeclaration` or the factory supplied by your transformation context instead. */ @@ -10726,9 +10870,9 @@ declare namespace ts { /** @deprecated Use `factory.updateConstructorTypeNode` or the factory supplied by your transformation context instead. */ const updateConstructorTypeNode: (node: ConstructorTypeNode, typeParameters: NodeArray | undefined, parameters: NodeArray, type: TypeNode) => ConstructorTypeNode; /** @deprecated Use `factory.createTypeQueryNode` or the factory supplied by your transformation context instead. */ - const createTypeQueryNode: (exprName: EntityName) => TypeQueryNode; + const createTypeQueryNode: (exprName: EntityName, typeArguments?: readonly TypeNode[] | undefined) => TypeQueryNode; /** @deprecated Use `factory.updateTypeQueryNode` or the factory supplied by your transformation context instead. */ - const updateTypeQueryNode: (node: TypeQueryNode, exprName: EntityName) => TypeQueryNode; + const updateTypeQueryNode: (node: TypeQueryNode, exprName: EntityName, typeArguments?: readonly TypeNode[] | undefined) => TypeQueryNode; /** @deprecated Use `factory.createTypeLiteralNode` or the factory supplied by your transformation context instead. */ const createTypeLiteralNode: (members: readonly TypeElement[] | undefined) => TypeLiteralNode; /** @deprecated Use `factory.updateTypeLiteralNode` or the factory supplied by your transformation context instead. */ @@ -10766,9 +10910,15 @@ declare namespace ts { /** @deprecated Use `factory.updateInferTypeNode` or the factory supplied by your transformation context instead. */ const updateInferTypeNode: (node: InferTypeNode, typeParameter: TypeParameterDeclaration) => InferTypeNode; /** @deprecated Use `factory.createImportTypeNode` or the factory supplied by your transformation context instead. */ - const createImportTypeNode: (argument: TypeNode, qualifier?: EntityName | undefined, typeArguments?: readonly TypeNode[] | undefined, isTypeOf?: boolean | undefined) => ImportTypeNode; + const createImportTypeNode: { + (argument: TypeNode, qualifier?: EntityName | undefined, typeArguments?: readonly TypeNode[] | undefined, isTypeOf?: boolean | undefined): ImportTypeNode; + (argument: TypeNode, assertions?: ImportTypeAssertionContainer | undefined, qualifier?: EntityName | undefined, typeArguments?: readonly TypeNode[] | undefined, isTypeOf?: boolean | undefined): ImportTypeNode; + }; /** @deprecated Use `factory.updateImportTypeNode` or the factory supplied by your transformation context instead. */ - const updateImportTypeNode: (node: ImportTypeNode, argument: TypeNode, qualifier: EntityName | undefined, typeArguments: readonly TypeNode[] | undefined, isTypeOf?: boolean | undefined) => ImportTypeNode; + const updateImportTypeNode: { + (node: ImportTypeNode, argument: TypeNode, qualifier: EntityName | undefined, typeArguments: readonly TypeNode[] | undefined, isTypeOf?: boolean | undefined): ImportTypeNode; + (node: ImportTypeNode, argument: TypeNode, assertions: ImportTypeAssertionContainer | undefined, qualifier: EntityName | undefined, typeArguments: readonly TypeNode[] | undefined, isTypeOf?: boolean | undefined): ImportTypeNode; + }; /** @deprecated Use `factory.createParenthesizedType` or the factory supplied by your transformation context instead. */ const createParenthesizedType: (type: TypeNode) => ParenthesizedTypeNode; /** @deprecated Use `factory.updateParenthesizedType` or the factory supplied by your transformation context instead. */ diff --git a/tests/baselines/reference/api/typescript.d.ts b/tests/baselines/reference/api/typescript.d.ts index f93ca902bbf07..01ed44a4dfe9b 100644 --- a/tests/baselines/reference/api/typescript.d.ts +++ b/tests/baselines/reference/api/typescript.d.ts @@ -14,7 +14,7 @@ and limitations under the License. ***************************************************************************** */ declare namespace ts { - const versionMajorMinor = "4.5"; + const versionMajorMinor = "4.7"; /** The version of the TypeScript compiler release */ const version: string; /** @@ -249,216 +249,219 @@ declare namespace ts { ModuleKeyword = 141, NamespaceKeyword = 142, NeverKeyword = 143, - ReadonlyKeyword = 144, - RequireKeyword = 145, - NumberKeyword = 146, - ObjectKeyword = 147, - SetKeyword = 148, - StringKeyword = 149, - SymbolKeyword = 150, - TypeKeyword = 151, - UndefinedKeyword = 152, - UniqueKeyword = 153, - UnknownKeyword = 154, - FromKeyword = 155, - GlobalKeyword = 156, - BigIntKeyword = 157, - OverrideKeyword = 158, - OfKeyword = 159, - QualifiedName = 160, - ComputedPropertyName = 161, - TypeParameter = 162, - Parameter = 163, - Decorator = 164, - PropertySignature = 165, - PropertyDeclaration = 166, - MethodSignature = 167, - MethodDeclaration = 168, - ClassStaticBlockDeclaration = 169, - Constructor = 170, - GetAccessor = 171, - SetAccessor = 172, - CallSignature = 173, - ConstructSignature = 174, - IndexSignature = 175, - TypePredicate = 176, - TypeReference = 177, - FunctionType = 178, - ConstructorType = 179, - TypeQuery = 180, - TypeLiteral = 181, - ArrayType = 182, - TupleType = 183, - OptionalType = 184, - RestType = 185, - UnionType = 186, - IntersectionType = 187, - ConditionalType = 188, - InferType = 189, - ParenthesizedType = 190, - ThisType = 191, - TypeOperator = 192, - IndexedAccessType = 193, - MappedType = 194, - LiteralType = 195, - NamedTupleMember = 196, - TemplateLiteralType = 197, - TemplateLiteralTypeSpan = 198, - ImportType = 199, - ObjectBindingPattern = 200, - ArrayBindingPattern = 201, - BindingElement = 202, - ArrayLiteralExpression = 203, - ObjectLiteralExpression = 204, - PropertyAccessExpression = 205, - ElementAccessExpression = 206, - CallExpression = 207, - NewExpression = 208, - TaggedTemplateExpression = 209, - TypeAssertionExpression = 210, - ParenthesizedExpression = 211, - FunctionExpression = 212, - ArrowFunction = 213, - DeleteExpression = 214, - TypeOfExpression = 215, - VoidExpression = 216, - AwaitExpression = 217, - PrefixUnaryExpression = 218, - PostfixUnaryExpression = 219, - BinaryExpression = 220, - ConditionalExpression = 221, - TemplateExpression = 222, - YieldExpression = 223, - SpreadElement = 224, - ClassExpression = 225, - OmittedExpression = 226, - ExpressionWithTypeArguments = 227, - AsExpression = 228, - NonNullExpression = 229, - MetaProperty = 230, - SyntheticExpression = 231, - TemplateSpan = 232, - SemicolonClassElement = 233, - Block = 234, - EmptyStatement = 235, - VariableStatement = 236, - ExpressionStatement = 237, - IfStatement = 238, - DoStatement = 239, - WhileStatement = 240, - ForStatement = 241, - ForInStatement = 242, - ForOfStatement = 243, - ContinueStatement = 244, - BreakStatement = 245, - ReturnStatement = 246, - WithStatement = 247, - SwitchStatement = 248, - LabeledStatement = 249, - ThrowStatement = 250, - TryStatement = 251, - DebuggerStatement = 252, - VariableDeclaration = 253, - VariableDeclarationList = 254, - FunctionDeclaration = 255, - ClassDeclaration = 256, - InterfaceDeclaration = 257, - TypeAliasDeclaration = 258, - EnumDeclaration = 259, - ModuleDeclaration = 260, - ModuleBlock = 261, - CaseBlock = 262, - NamespaceExportDeclaration = 263, - ImportEqualsDeclaration = 264, - ImportDeclaration = 265, - ImportClause = 266, - NamespaceImport = 267, - NamedImports = 268, - ImportSpecifier = 269, - ExportAssignment = 270, - ExportDeclaration = 271, - NamedExports = 272, - NamespaceExport = 273, - ExportSpecifier = 274, - MissingDeclaration = 275, - ExternalModuleReference = 276, - JsxElement = 277, - JsxSelfClosingElement = 278, - JsxOpeningElement = 279, - JsxClosingElement = 280, - JsxFragment = 281, - JsxOpeningFragment = 282, - JsxClosingFragment = 283, - JsxAttribute = 284, - JsxAttributes = 285, - JsxSpreadAttribute = 286, - JsxExpression = 287, - CaseClause = 288, - DefaultClause = 289, - HeritageClause = 290, - CatchClause = 291, - AssertClause = 292, - AssertEntry = 293, - PropertyAssignment = 294, - ShorthandPropertyAssignment = 295, - SpreadAssignment = 296, - EnumMember = 297, - UnparsedPrologue = 298, - UnparsedPrepend = 299, - UnparsedText = 300, - UnparsedInternalText = 301, - UnparsedSyntheticReference = 302, - SourceFile = 303, - Bundle = 304, - UnparsedSource = 305, - InputFiles = 306, - JSDocTypeExpression = 307, - JSDocNameReference = 308, - JSDocMemberName = 309, - JSDocAllType = 310, - JSDocUnknownType = 311, - JSDocNullableType = 312, - JSDocNonNullableType = 313, - JSDocOptionalType = 314, - JSDocFunctionType = 315, - JSDocVariadicType = 316, - JSDocNamepathType = 317, - JSDocComment = 318, - JSDocText = 319, - JSDocTypeLiteral = 320, - JSDocSignature = 321, - JSDocLink = 322, - JSDocLinkCode = 323, - JSDocLinkPlain = 324, - JSDocTag = 325, - JSDocAugmentsTag = 326, - JSDocImplementsTag = 327, - JSDocAuthorTag = 328, - JSDocDeprecatedTag = 329, - JSDocClassTag = 330, - JSDocPublicTag = 331, - JSDocPrivateTag = 332, - JSDocProtectedTag = 333, - JSDocReadonlyTag = 334, - JSDocOverrideTag = 335, - JSDocCallbackTag = 336, - JSDocEnumTag = 337, - JSDocParameterTag = 338, - JSDocReturnTag = 339, - JSDocThisTag = 340, - JSDocTypeTag = 341, - JSDocTemplateTag = 342, - JSDocTypedefTag = 343, - JSDocSeeTag = 344, - JSDocPropertyTag = 345, - SyntaxList = 346, - NotEmittedStatement = 347, - PartiallyEmittedExpression = 348, - CommaListExpression = 349, - MergeDeclarationMarker = 350, - EndOfDeclarationMarker = 351, - SyntheticReferenceExpression = 352, - Count = 353, + OutKeyword = 144, + ReadonlyKeyword = 145, + RequireKeyword = 146, + NumberKeyword = 147, + ObjectKeyword = 148, + SetKeyword = 149, + StringKeyword = 150, + SymbolKeyword = 151, + TypeKeyword = 152, + UndefinedKeyword = 153, + UniqueKeyword = 154, + UnknownKeyword = 155, + FromKeyword = 156, + GlobalKeyword = 157, + BigIntKeyword = 158, + OverrideKeyword = 159, + OfKeyword = 160, + QualifiedName = 161, + ComputedPropertyName = 162, + TypeParameter = 163, + Parameter = 164, + Decorator = 165, + PropertySignature = 166, + PropertyDeclaration = 167, + MethodSignature = 168, + MethodDeclaration = 169, + ClassStaticBlockDeclaration = 170, + Constructor = 171, + GetAccessor = 172, + SetAccessor = 173, + CallSignature = 174, + ConstructSignature = 175, + IndexSignature = 176, + TypePredicate = 177, + TypeReference = 178, + FunctionType = 179, + ConstructorType = 180, + TypeQuery = 181, + TypeLiteral = 182, + ArrayType = 183, + TupleType = 184, + OptionalType = 185, + RestType = 186, + UnionType = 187, + IntersectionType = 188, + ConditionalType = 189, + InferType = 190, + ParenthesizedType = 191, + ThisType = 192, + TypeOperator = 193, + IndexedAccessType = 194, + MappedType = 195, + LiteralType = 196, + NamedTupleMember = 197, + TemplateLiteralType = 198, + TemplateLiteralTypeSpan = 199, + ImportType = 200, + ObjectBindingPattern = 201, + ArrayBindingPattern = 202, + BindingElement = 203, + ArrayLiteralExpression = 204, + ObjectLiteralExpression = 205, + PropertyAccessExpression = 206, + ElementAccessExpression = 207, + CallExpression = 208, + NewExpression = 209, + TaggedTemplateExpression = 210, + TypeAssertionExpression = 211, + ParenthesizedExpression = 212, + FunctionExpression = 213, + ArrowFunction = 214, + DeleteExpression = 215, + TypeOfExpression = 216, + VoidExpression = 217, + AwaitExpression = 218, + PrefixUnaryExpression = 219, + PostfixUnaryExpression = 220, + BinaryExpression = 221, + ConditionalExpression = 222, + TemplateExpression = 223, + YieldExpression = 224, + SpreadElement = 225, + ClassExpression = 226, + OmittedExpression = 227, + ExpressionWithTypeArguments = 228, + AsExpression = 229, + NonNullExpression = 230, + MetaProperty = 231, + SyntheticExpression = 232, + TemplateSpan = 233, + SemicolonClassElement = 234, + Block = 235, + EmptyStatement = 236, + VariableStatement = 237, + ExpressionStatement = 238, + IfStatement = 239, + DoStatement = 240, + WhileStatement = 241, + ForStatement = 242, + ForInStatement = 243, + ForOfStatement = 244, + ContinueStatement = 245, + BreakStatement = 246, + ReturnStatement = 247, + WithStatement = 248, + SwitchStatement = 249, + LabeledStatement = 250, + ThrowStatement = 251, + TryStatement = 252, + DebuggerStatement = 253, + VariableDeclaration = 254, + VariableDeclarationList = 255, + FunctionDeclaration = 256, + ClassDeclaration = 257, + InterfaceDeclaration = 258, + TypeAliasDeclaration = 259, + EnumDeclaration = 260, + ModuleDeclaration = 261, + ModuleBlock = 262, + CaseBlock = 263, + NamespaceExportDeclaration = 264, + ImportEqualsDeclaration = 265, + ImportDeclaration = 266, + ImportClause = 267, + NamespaceImport = 268, + NamedImports = 269, + ImportSpecifier = 270, + ExportAssignment = 271, + ExportDeclaration = 272, + NamedExports = 273, + NamespaceExport = 274, + ExportSpecifier = 275, + MissingDeclaration = 276, + ExternalModuleReference = 277, + JsxElement = 278, + JsxSelfClosingElement = 279, + JsxOpeningElement = 280, + JsxClosingElement = 281, + JsxFragment = 282, + JsxOpeningFragment = 283, + JsxClosingFragment = 284, + JsxAttribute = 285, + JsxAttributes = 286, + JsxSpreadAttribute = 287, + JsxExpression = 288, + CaseClause = 289, + DefaultClause = 290, + HeritageClause = 291, + CatchClause = 292, + AssertClause = 293, + AssertEntry = 294, + ImportTypeAssertionContainer = 295, + PropertyAssignment = 296, + ShorthandPropertyAssignment = 297, + SpreadAssignment = 298, + EnumMember = 299, + UnparsedPrologue = 300, + UnparsedPrepend = 301, + UnparsedText = 302, + UnparsedInternalText = 303, + UnparsedSyntheticReference = 304, + SourceFile = 305, + Bundle = 306, + UnparsedSource = 307, + InputFiles = 308, + JSDocTypeExpression = 309, + JSDocNameReference = 310, + JSDocMemberName = 311, + JSDocAllType = 312, + JSDocUnknownType = 313, + JSDocNullableType = 314, + JSDocNonNullableType = 315, + JSDocOptionalType = 316, + JSDocFunctionType = 317, + JSDocVariadicType = 318, + JSDocNamepathType = 319, + /** @deprecated Use SyntaxKind.JSDoc */ + JSDocComment = 320, + JSDocText = 321, + JSDocTypeLiteral = 322, + JSDocSignature = 323, + JSDocLink = 324, + JSDocLinkCode = 325, + JSDocLinkPlain = 326, + JSDocTag = 327, + JSDocAugmentsTag = 328, + JSDocImplementsTag = 329, + JSDocAuthorTag = 330, + JSDocDeprecatedTag = 331, + JSDocClassTag = 332, + JSDocPublicTag = 333, + JSDocPrivateTag = 334, + JSDocProtectedTag = 335, + JSDocReadonlyTag = 336, + JSDocOverrideTag = 337, + JSDocCallbackTag = 338, + JSDocEnumTag = 339, + JSDocParameterTag = 340, + JSDocReturnTag = 341, + JSDocThisTag = 342, + JSDocTypeTag = 343, + JSDocTemplateTag = 344, + JSDocTypedefTag = 345, + JSDocSeeTag = 346, + JSDocPropertyTag = 347, + SyntaxList = 348, + NotEmittedStatement = 349, + PartiallyEmittedExpression = 350, + CommaListExpression = 351, + MergeDeclarationMarker = 352, + EndOfDeclarationMarker = 353, + SyntheticReferenceExpression = 354, + Count = 355, FirstAssignment = 63, LastAssignment = 78, FirstCompoundAssignment = 64, @@ -466,15 +469,15 @@ declare namespace ts { FirstReservedWord = 81, LastReservedWord = 116, FirstKeyword = 81, - LastKeyword = 159, + LastKeyword = 160, FirstFutureReservedWord = 117, LastFutureReservedWord = 125, - FirstTypeNode = 176, - LastTypeNode = 199, + FirstTypeNode = 177, + LastTypeNode = 200, FirstPunctuation = 18, LastPunctuation = 78, FirstToken = 0, - LastToken = 159, + LastToken = 160, FirstTriviaToken = 2, LastTriviaToken = 7, FirstLiteralToken = 8, @@ -483,20 +486,21 @@ declare namespace ts { LastTemplateToken = 17, FirstBinaryOperator = 29, LastBinaryOperator = 78, - FirstStatement = 236, - LastStatement = 252, - FirstNode = 160, - FirstJSDocNode = 307, - LastJSDocNode = 345, - FirstJSDocTagNode = 325, - LastJSDocTagNode = 345, + FirstStatement = 237, + LastStatement = 253, + FirstNode = 161, + FirstJSDocNode = 309, + LastJSDocNode = 347, + FirstJSDocTagNode = 327, + LastJSDocTagNode = 347, + JSDoc = 320 } export type TriviaSyntaxKind = SyntaxKind.SingleLineCommentTrivia | SyntaxKind.MultiLineCommentTrivia | SyntaxKind.NewLineTrivia | SyntaxKind.WhitespaceTrivia | SyntaxKind.ShebangTrivia | SyntaxKind.ConflictMarkerTrivia; export type LiteralSyntaxKind = SyntaxKind.NumericLiteral | SyntaxKind.BigIntLiteral | SyntaxKind.StringLiteral | SyntaxKind.JsxText | SyntaxKind.JsxTextAllWhiteSpaces | SyntaxKind.RegularExpressionLiteral | SyntaxKind.NoSubstitutionTemplateLiteral; export type PseudoLiteralSyntaxKind = SyntaxKind.TemplateHead | SyntaxKind.TemplateMiddle | SyntaxKind.TemplateTail; export type PunctuationSyntaxKind = SyntaxKind.OpenBraceToken | SyntaxKind.CloseBraceToken | SyntaxKind.OpenParenToken | SyntaxKind.CloseParenToken | SyntaxKind.OpenBracketToken | SyntaxKind.CloseBracketToken | SyntaxKind.DotToken | SyntaxKind.DotDotDotToken | SyntaxKind.SemicolonToken | SyntaxKind.CommaToken | SyntaxKind.QuestionDotToken | SyntaxKind.LessThanToken | SyntaxKind.LessThanSlashToken | SyntaxKind.GreaterThanToken | SyntaxKind.LessThanEqualsToken | SyntaxKind.GreaterThanEqualsToken | SyntaxKind.EqualsEqualsToken | SyntaxKind.ExclamationEqualsToken | SyntaxKind.EqualsEqualsEqualsToken | SyntaxKind.ExclamationEqualsEqualsToken | SyntaxKind.EqualsGreaterThanToken | SyntaxKind.PlusToken | SyntaxKind.MinusToken | SyntaxKind.AsteriskToken | SyntaxKind.AsteriskAsteriskToken | SyntaxKind.SlashToken | SyntaxKind.PercentToken | SyntaxKind.PlusPlusToken | SyntaxKind.MinusMinusToken | SyntaxKind.LessThanLessThanToken | SyntaxKind.GreaterThanGreaterThanToken | SyntaxKind.GreaterThanGreaterThanGreaterThanToken | SyntaxKind.AmpersandToken | SyntaxKind.BarToken | SyntaxKind.CaretToken | SyntaxKind.ExclamationToken | SyntaxKind.TildeToken | SyntaxKind.AmpersandAmpersandToken | SyntaxKind.BarBarToken | SyntaxKind.QuestionQuestionToken | SyntaxKind.QuestionToken | SyntaxKind.ColonToken | SyntaxKind.AtToken | SyntaxKind.BacktickToken | SyntaxKind.HashToken | SyntaxKind.EqualsToken | SyntaxKind.PlusEqualsToken | SyntaxKind.MinusEqualsToken | SyntaxKind.AsteriskEqualsToken | SyntaxKind.AsteriskAsteriskEqualsToken | SyntaxKind.SlashEqualsToken | SyntaxKind.PercentEqualsToken | SyntaxKind.LessThanLessThanEqualsToken | SyntaxKind.GreaterThanGreaterThanEqualsToken | SyntaxKind.GreaterThanGreaterThanGreaterThanEqualsToken | SyntaxKind.AmpersandEqualsToken | SyntaxKind.BarEqualsToken | SyntaxKind.CaretEqualsToken; - export type KeywordSyntaxKind = SyntaxKind.AbstractKeyword | SyntaxKind.AnyKeyword | SyntaxKind.AsKeyword | SyntaxKind.AssertsKeyword | SyntaxKind.AssertKeyword | SyntaxKind.AsyncKeyword | SyntaxKind.AwaitKeyword | SyntaxKind.BigIntKeyword | SyntaxKind.BooleanKeyword | SyntaxKind.BreakKeyword | SyntaxKind.CaseKeyword | SyntaxKind.CatchKeyword | SyntaxKind.ClassKeyword | SyntaxKind.ConstKeyword | SyntaxKind.ConstructorKeyword | SyntaxKind.ContinueKeyword | SyntaxKind.DebuggerKeyword | SyntaxKind.DeclareKeyword | SyntaxKind.DefaultKeyword | SyntaxKind.DeleteKeyword | SyntaxKind.DoKeyword | SyntaxKind.ElseKeyword | SyntaxKind.EnumKeyword | SyntaxKind.ExportKeyword | SyntaxKind.ExtendsKeyword | SyntaxKind.FalseKeyword | SyntaxKind.FinallyKeyword | SyntaxKind.ForKeyword | SyntaxKind.FromKeyword | SyntaxKind.FunctionKeyword | SyntaxKind.GetKeyword | SyntaxKind.GlobalKeyword | SyntaxKind.IfKeyword | SyntaxKind.ImplementsKeyword | SyntaxKind.ImportKeyword | SyntaxKind.InferKeyword | SyntaxKind.InKeyword | SyntaxKind.InstanceOfKeyword | SyntaxKind.InterfaceKeyword | SyntaxKind.IntrinsicKeyword | SyntaxKind.IsKeyword | SyntaxKind.KeyOfKeyword | SyntaxKind.LetKeyword | SyntaxKind.ModuleKeyword | SyntaxKind.NamespaceKeyword | SyntaxKind.NeverKeyword | SyntaxKind.NewKeyword | SyntaxKind.NullKeyword | SyntaxKind.NumberKeyword | SyntaxKind.ObjectKeyword | SyntaxKind.OfKeyword | SyntaxKind.PackageKeyword | SyntaxKind.PrivateKeyword | SyntaxKind.ProtectedKeyword | SyntaxKind.PublicKeyword | SyntaxKind.ReadonlyKeyword | SyntaxKind.OverrideKeyword | SyntaxKind.RequireKeyword | SyntaxKind.ReturnKeyword | SyntaxKind.SetKeyword | SyntaxKind.StaticKeyword | SyntaxKind.StringKeyword | SyntaxKind.SuperKeyword | SyntaxKind.SwitchKeyword | SyntaxKind.SymbolKeyword | SyntaxKind.ThisKeyword | SyntaxKind.ThrowKeyword | SyntaxKind.TrueKeyword | SyntaxKind.TryKeyword | SyntaxKind.TypeKeyword | SyntaxKind.TypeOfKeyword | SyntaxKind.UndefinedKeyword | SyntaxKind.UniqueKeyword | SyntaxKind.UnknownKeyword | SyntaxKind.VarKeyword | SyntaxKind.VoidKeyword | SyntaxKind.WhileKeyword | SyntaxKind.WithKeyword | SyntaxKind.YieldKeyword; - export type ModifierSyntaxKind = SyntaxKind.AbstractKeyword | SyntaxKind.AsyncKeyword | SyntaxKind.ConstKeyword | SyntaxKind.DeclareKeyword | SyntaxKind.DefaultKeyword | SyntaxKind.ExportKeyword | SyntaxKind.PrivateKeyword | SyntaxKind.ProtectedKeyword | SyntaxKind.PublicKeyword | SyntaxKind.ReadonlyKeyword | SyntaxKind.OverrideKeyword | SyntaxKind.StaticKeyword; + export type KeywordSyntaxKind = SyntaxKind.AbstractKeyword | SyntaxKind.AnyKeyword | SyntaxKind.AsKeyword | SyntaxKind.AssertsKeyword | SyntaxKind.AssertKeyword | SyntaxKind.AsyncKeyword | SyntaxKind.AwaitKeyword | SyntaxKind.BigIntKeyword | SyntaxKind.BooleanKeyword | SyntaxKind.BreakKeyword | SyntaxKind.CaseKeyword | SyntaxKind.CatchKeyword | SyntaxKind.ClassKeyword | SyntaxKind.ConstKeyword | SyntaxKind.ConstructorKeyword | SyntaxKind.ContinueKeyword | SyntaxKind.DebuggerKeyword | SyntaxKind.DeclareKeyword | SyntaxKind.DefaultKeyword | SyntaxKind.DeleteKeyword | SyntaxKind.DoKeyword | SyntaxKind.ElseKeyword | SyntaxKind.EnumKeyword | SyntaxKind.ExportKeyword | SyntaxKind.ExtendsKeyword | SyntaxKind.FalseKeyword | SyntaxKind.FinallyKeyword | SyntaxKind.ForKeyword | SyntaxKind.FromKeyword | SyntaxKind.FunctionKeyword | SyntaxKind.GetKeyword | SyntaxKind.GlobalKeyword | SyntaxKind.IfKeyword | SyntaxKind.ImplementsKeyword | SyntaxKind.ImportKeyword | SyntaxKind.InferKeyword | SyntaxKind.InKeyword | SyntaxKind.InstanceOfKeyword | SyntaxKind.InterfaceKeyword | SyntaxKind.IntrinsicKeyword | SyntaxKind.IsKeyword | SyntaxKind.KeyOfKeyword | SyntaxKind.LetKeyword | SyntaxKind.ModuleKeyword | SyntaxKind.NamespaceKeyword | SyntaxKind.NeverKeyword | SyntaxKind.NewKeyword | SyntaxKind.NullKeyword | SyntaxKind.NumberKeyword | SyntaxKind.ObjectKeyword | SyntaxKind.OfKeyword | SyntaxKind.PackageKeyword | SyntaxKind.PrivateKeyword | SyntaxKind.ProtectedKeyword | SyntaxKind.PublicKeyword | SyntaxKind.ReadonlyKeyword | SyntaxKind.OutKeyword | SyntaxKind.OverrideKeyword | SyntaxKind.RequireKeyword | SyntaxKind.ReturnKeyword | SyntaxKind.SetKeyword | SyntaxKind.StaticKeyword | SyntaxKind.StringKeyword | SyntaxKind.SuperKeyword | SyntaxKind.SwitchKeyword | SyntaxKind.SymbolKeyword | SyntaxKind.ThisKeyword | SyntaxKind.ThrowKeyword | SyntaxKind.TrueKeyword | SyntaxKind.TryKeyword | SyntaxKind.TypeKeyword | SyntaxKind.TypeOfKeyword | SyntaxKind.UndefinedKeyword | SyntaxKind.UniqueKeyword | SyntaxKind.UnknownKeyword | SyntaxKind.VarKeyword | SyntaxKind.VoidKeyword | SyntaxKind.WhileKeyword | SyntaxKind.WithKeyword | SyntaxKind.YieldKeyword; + export type ModifierSyntaxKind = SyntaxKind.AbstractKeyword | SyntaxKind.AsyncKeyword | SyntaxKind.ConstKeyword | SyntaxKind.DeclareKeyword | SyntaxKind.DefaultKeyword | SyntaxKind.ExportKeyword | SyntaxKind.InKeyword | SyntaxKind.PrivateKeyword | SyntaxKind.ProtectedKeyword | SyntaxKind.PublicKeyword | SyntaxKind.ReadonlyKeyword | SyntaxKind.OutKeyword | SyntaxKind.OverrideKeyword | SyntaxKind.StaticKeyword; export type KeywordTypeSyntaxKind = SyntaxKind.AnyKeyword | SyntaxKind.BigIntKeyword | SyntaxKind.BooleanKeyword | SyntaxKind.IntrinsicKeyword | SyntaxKind.NeverKeyword | SyntaxKind.NumberKeyword | SyntaxKind.ObjectKeyword | SyntaxKind.StringKeyword | SyntaxKind.SymbolKeyword | SyntaxKind.UndefinedKeyword | SyntaxKind.UnknownKeyword | SyntaxKind.VoidKeyword; export type TokenSyntaxKind = SyntaxKind.Unknown | SyntaxKind.EndOfFileToken | TriviaSyntaxKind | LiteralSyntaxKind | PseudoLiteralSyntaxKind | PunctuationSyntaxKind | SyntaxKind.Identifier | KeywordSyntaxKind; export type JsxTokenSyntaxKind = SyntaxKind.LessThanSlashToken | SyntaxKind.EndOfFileToken | SyntaxKind.ConflictMarkerTrivia | SyntaxKind.JsxText | SyntaxKind.JsxTextAllWhiteSpaces | SyntaxKind.OpenBraceToken | SyntaxKind.LessThanToken; @@ -547,13 +551,15 @@ declare namespace ts { HasComputedJSDocModifiers = 4096, Deprecated = 8192, Override = 16384, + In = 32768, + Out = 65536, HasComputedFlags = 536870912, AccessibilityModifier = 28, ParameterPropertyModifier = 16476, NonPublicAccessibilityModifier = 24, - TypeScriptModifier = 18654, + TypeScriptModifier = 116958, ExportDefault = 513, - All = 27647 + All = 125951 } export enum JsxFlags { None = 0, @@ -572,7 +578,7 @@ declare namespace ts { } export interface JSDocContainer { } - export type HasJSDoc = ParameterDeclaration | CallSignatureDeclaration | ClassStaticBlockDeclaration | ConstructSignatureDeclaration | MethodSignature | PropertySignature | ArrowFunction | ParenthesizedExpression | SpreadAssignment | ShorthandPropertyAssignment | PropertyAssignment | FunctionExpression | EmptyStatement | DebuggerStatement | Block | VariableStatement | ExpressionStatement | IfStatement | DoStatement | WhileStatement | ForStatement | ForInStatement | ForOfStatement | BreakStatement | ContinueStatement | ReturnStatement | WithStatement | SwitchStatement | LabeledStatement | ThrowStatement | TryStatement | FunctionDeclaration | ConstructorDeclaration | MethodDeclaration | VariableDeclaration | PropertyDeclaration | AccessorDeclaration | ClassLikeDeclaration | InterfaceDeclaration | TypeAliasDeclaration | EnumMember | EnumDeclaration | ModuleDeclaration | ImportEqualsDeclaration | ImportDeclaration | NamespaceExportDeclaration | ExportAssignment | IndexSignatureDeclaration | FunctionTypeNode | ConstructorTypeNode | JSDocFunctionType | ExportDeclaration | NamedTupleMember | EndOfFileToken; + export type HasJSDoc = ParameterDeclaration | CallSignatureDeclaration | ClassStaticBlockDeclaration | ConstructSignatureDeclaration | MethodSignature | PropertySignature | ArrowFunction | ParenthesizedExpression | SpreadAssignment | ShorthandPropertyAssignment | PropertyAssignment | FunctionExpression | EmptyStatement | DebuggerStatement | Block | VariableStatement | ExpressionStatement | IfStatement | DoStatement | WhileStatement | ForStatement | ForInStatement | ForOfStatement | BreakStatement | ContinueStatement | ReturnStatement | WithStatement | SwitchStatement | LabeledStatement | ThrowStatement | TryStatement | FunctionDeclaration | ConstructorDeclaration | MethodDeclaration | VariableDeclaration | PropertyDeclaration | AccessorDeclaration | ClassLikeDeclaration | InterfaceDeclaration | TypeAliasDeclaration | EnumMember | EnumDeclaration | ModuleDeclaration | ImportEqualsDeclaration | ImportDeclaration | NamespaceExportDeclaration | ExportAssignment | IndexSignatureDeclaration | FunctionTypeNode | ConstructorTypeNode | JSDocFunctionType | ExportDeclaration | NamedTupleMember | ExportSpecifier | CaseClause | EndOfFileToken; export type HasType = SignatureDeclaration | VariableDeclaration | ParameterDeclaration | PropertySignature | PropertyDeclaration | TypePredicateNode | ParenthesizedTypeNode | TypeOperatorNode | MappedTypeNode | AssertionExpression | TypeAliasDeclaration | JSDocTypeExpression | JSDocNonNullableType | JSDocNullableType | JSDocOptionalType | JSDocVariadicType; export type HasTypeArguments = CallExpression | NewExpression | TaggedTemplateExpression | JsxOpeningElement | JsxSelfClosingElement; export type HasInitializer = HasExpressionInitializer | ForStatement | ForInStatement | ForOfStatement | JsxAttribute; @@ -614,15 +620,17 @@ declare namespace ts { export type DeclareKeyword = ModifierToken; export type DefaultKeyword = ModifierToken; export type ExportKeyword = ModifierToken; + export type InKeyword = ModifierToken; export type PrivateKeyword = ModifierToken; export type ProtectedKeyword = ModifierToken; export type PublicKeyword = ModifierToken; export type ReadonlyKeyword = ModifierToken; + export type OutKeyword = ModifierToken; export type OverrideKeyword = ModifierToken; export type StaticKeyword = ModifierToken; /** @deprecated Use `ReadonlyKeyword` instead. */ export type ReadonlyToken = ReadonlyKeyword; - export type Modifier = AbstractKeyword | AsyncKeyword | ConstKeyword | DeclareKeyword | DefaultKeyword | ExportKeyword | PrivateKeyword | ProtectedKeyword | PublicKeyword | OverrideKeyword | ReadonlyKeyword | StaticKeyword; + export type Modifier = AbstractKeyword | AsyncKeyword | ConstKeyword | DeclareKeyword | DefaultKeyword | ExportKeyword | InKeyword | PrivateKeyword | ProtectedKeyword | PublicKeyword | OutKeyword | OverrideKeyword | ReadonlyKeyword | StaticKeyword; export type AccessibilityModifier = PublicKeyword | PrivateKeyword | ProtectedKeyword; export type ParameterPropertyModifier = AccessibilityModifier | ReadonlyKeyword; export type ClassMemberModifier = AccessibilityModifier | ReadonlyKeyword | StaticKeyword; @@ -866,10 +874,17 @@ declare namespace ts { export interface KeywordTypeNode extends KeywordToken, TypeNode { readonly kind: TKind; } + export interface ImportTypeAssertionContainer extends Node { + readonly kind: SyntaxKind.ImportTypeAssertionContainer; + readonly parent: ImportTypeNode; + readonly assertClause: AssertClause; + readonly multiLine?: boolean; + } export interface ImportTypeNode extends NodeWithTypeArguments { readonly kind: SyntaxKind.ImportType; readonly isTypeOf: boolean; readonly argument: TypeNode; + readonly assertions?: ImportTypeAssertionContainer; readonly qualifier?: EntityName; } export interface ThisTypeNode extends TypeNode { @@ -897,11 +912,11 @@ declare namespace ts { export interface TypePredicateNode extends TypeNode { readonly kind: SyntaxKind.TypePredicate; readonly parent: SignatureDeclaration | JSDocTypeExpression; - readonly assertsModifier?: AssertsToken; + readonly assertsModifier?: AssertsKeyword; readonly parameterName: Identifier | ThisTypeNode; readonly type?: TypeNode; } - export interface TypeQueryNode extends TypeNode { + export interface TypeQueryNode extends NodeWithTypeArguments { readonly kind: SyntaxKind.TypeQuery; readonly exprName: EntityName; } @@ -968,7 +983,7 @@ declare namespace ts { } export interface MappedTypeNode extends TypeNode, Declaration { readonly kind: SyntaxKind.MappedType; - readonly readonlyToken?: ReadonlyToken | PlusToken | MinusToken; + readonly readonlyToken?: ReadonlyKeyword | PlusToken | MinusToken; readonly typeParameter: TypeParameterDeclaration; readonly nameType?: TypeNode; readonly questionToken?: QuestionToken | PlusToken | MinusToken; @@ -1285,9 +1300,8 @@ declare namespace ts { export interface ImportCall extends CallExpression { readonly expression: ImportExpression; } - export interface ExpressionWithTypeArguments extends NodeWithTypeArguments { + export interface ExpressionWithTypeArguments extends MemberExpression, NodeWithTypeArguments { readonly kind: SyntaxKind.ExpressionWithTypeArguments; - readonly parent: HeritageClause | JSDocAugmentsTag | JSDocImplementsTag; readonly expression: LeftHandSideExpression; } export interface NewExpression extends PrimaryExpression, Declaration { @@ -1465,7 +1479,7 @@ declare namespace ts { } export interface ForOfStatement extends IterationStatement { readonly kind: SyntaxKind.ForOfStatement; - readonly awaitModifier?: AwaitKeywordToken; + readonly awaitModifier?: AwaitKeyword; readonly initializer: ForInitializer; readonly expression: Expression; } @@ -1498,7 +1512,7 @@ declare namespace ts { readonly parent: SwitchStatement; readonly clauses: NodeArray; } - export interface CaseClause extends Node { + export interface CaseClause extends Node, JSDocContainer { readonly kind: SyntaxKind.CaseClause; readonly parent: CaseBlock; readonly expression: Expression; @@ -1652,7 +1666,7 @@ declare namespace ts { readonly kind: SyntaxKind.AssertEntry; readonly parent: AssertClause; readonly name: AssertionKey; - readonly value: StringLiteral; + readonly value: Expression; } export interface AssertClause extends Node { readonly kind: SyntaxKind.AssertClause; @@ -1702,7 +1716,7 @@ declare namespace ts { readonly name: Identifier; readonly isTypeOnly: boolean; } - export interface ExportSpecifier extends NamedDeclaration { + export interface ExportSpecifier extends NamedDeclaration, JSDocContainer { readonly kind: SyntaxKind.ExportSpecifier; readonly parent: NamedExports; readonly isTypeOnly: boolean; @@ -1720,19 +1734,23 @@ declare namespace ts { readonly parent: ImportClause & { readonly isTypeOnly: true; }; - } | ImportSpecifier & { + } | ImportSpecifier & ({ + readonly isTypeOnly: true; + } | { readonly parent: NamedImports & { readonly parent: ImportClause & { readonly isTypeOnly: true; }; }; - } | ExportSpecifier & { + }) | ExportSpecifier & ({ + readonly isTypeOnly: true; + } | { readonly parent: NamedExports & { readonly parent: ExportDeclaration & { readonly isTypeOnly: true; }; }; - }; + }); /** * This is either an `export =` or an `export default` declaration. * Unless `isExportEquals` is set, this node was parsed as an `export default`. @@ -1745,6 +1763,7 @@ declare namespace ts { } export interface FileReference extends TextRange { fileName: string; + resolutionMode?: SourceFile["impliedNodeFormat"]; } export interface CheckJsDirective extends TextRange { enabled: boolean; @@ -1808,7 +1827,7 @@ declare namespace ts { } export type JSDocTypeReferencingNode = JSDocVariadicType | JSDocOptionalType | JSDocNullableType | JSDocNonNullableType; export interface JSDoc extends Node { - readonly kind: SyntaxKind.JSDocComment; + readonly kind: SyntaxKind.JSDoc; readonly parent: HasJSDoc; readonly tags?: NodeArray; readonly comment?: string | NodeArray; @@ -2011,6 +2030,12 @@ declare namespace ts { path: string; name?: string; } + /** + * Subset of properties from SourceFile that are used in multiple utility functions + */ + export interface SourceFileLike { + readonly text: string; + } export interface SourceFile extends Declaration { readonly kind: SyntaxKind.SourceFile; readonly statements: NodeArray; @@ -2070,7 +2095,7 @@ declare namespace ts { readonly prologues: readonly UnparsedPrologue[]; helpers: readonly UnscopedEmitHelper[] | undefined; referencedFiles: readonly FileReference[]; - typeReferenceDirectives: readonly string[] | undefined; + typeReferenceDirectives: readonly FileReference[] | undefined; libReferenceDirectives: readonly FileReference[]; hasNoDefaultLib?: boolean; sourceMapPath?: string; @@ -2650,13 +2675,13 @@ declare namespace ts { ObjectLiteralPatternWithComputedProperties = 512, ReverseMapped = 1024, JsxAttributes = 2048, - MarkerType = 4096, - JSLiteral = 8192, - FreshLiteral = 16384, - ArrayLiteral = 32768, + JSLiteral = 4096, + FreshLiteral = 8192, + ArrayLiteral = 16384, ClassOrInterface = 3, - ContainsSpread = 4194304, - ObjectRestType = 8388608, + ContainsSpread = 2097152, + ObjectRestType = 4194304, + InstantiationExpressionType = 8388608, } export interface ObjectType extends Type { objectFlags: ObjectFlags; @@ -2747,7 +2772,6 @@ declare namespace ts { checkType: Type; extendsType: Type; isDistributive: boolean; - isDistributionDependent: boolean; inferTypeParameters?: TypeParameter[]; outerTypeParameters?: TypeParameter[]; instantiations?: Map; @@ -2868,6 +2892,20 @@ declare namespace ts { Node12 = 3, NodeNext = 99 } + export enum ModuleDetectionKind { + /** + * Files with imports, exports and/or import.meta are considered modules + */ + Legacy = 1, + /** + * Legacy, but also files with jsx under react-jsx or react-jsxdev and esm mode files under moduleResolution: node12+ + */ + Auto = 2, + /** + * Consider all non-declaration files modules, regardless of present syntax + */ + Force = 3 + } export interface PluginImport { name: string; } @@ -2939,6 +2977,8 @@ declare namespace ts { maxNodeModuleJsDepth?: number; module?: ModuleKind; moduleResolution?: ModuleResolutionKind; + moduleSuffixes?: string[]; + moduleDetection?: ModuleDetectionKind; newLine?: NewLineKind; noEmit?: boolean; noEmitHelpers?: boolean; @@ -3079,6 +3119,7 @@ declare namespace ts { ES2019 = 6, ES2020 = 7, ES2021 = 8, + ES2022 = 9, ESNext = 99, JSON = 100, Latest = 99 @@ -3125,6 +3166,13 @@ declare namespace ts { getDirectories?(path: string): string[]; useCaseSensitiveFileNames?: boolean | (() => boolean); } + /** + * Used by services to specify the minimum host area required to set up source files under any compilation settings + */ + export interface MinimalResolutionCacheHost extends ModuleResolutionHost { + getCompilationSettings(): CompilerOptions; + getCompilerHost?(): CompilerHost | undefined; + } /** * Represents the result of module resolution. * Module resolution will pick up tsx/jsx/js files even if '--jsx' and '--allowJs' are turned off. @@ -3200,8 +3248,8 @@ declare namespace ts { readonly failedLookupLocations: string[]; } export interface CompilerHost extends ModuleResolutionHost { - getSourceFile(fileName: string, languageVersion: ScriptTarget, onError?: (message: string) => void, shouldCreateNewSourceFile?: boolean): SourceFile | undefined; - getSourceFileByPath?(fileName: string, path: Path, languageVersion: ScriptTarget, onError?: (message: string) => void, shouldCreateNewSourceFile?: boolean): SourceFile | undefined; + getSourceFile(fileName: string, languageVersionOrOptions: ScriptTarget | CreateSourceFileOptions, onError?: (message: string) => void, shouldCreateNewSourceFile?: boolean): SourceFile | undefined; + getSourceFileByPath?(fileName: string, path: Path, languageVersionOrOptions: ScriptTarget | CreateSourceFileOptions, onError?: (message: string) => void, shouldCreateNewSourceFile?: boolean): SourceFile | undefined; getCancellationToken?(): CancellationToken; getDefaultLibFileName(options: CompilerOptions): string; getDefaultLibLocation?(): string; @@ -3219,7 +3267,7 @@ declare namespace ts { /** * This method is a companion for 'resolveModuleNames' and is used to resolve 'types' references to actual type declaration files */ - resolveTypeReferenceDirectives?(typeReferenceDirectiveNames: string[], containingFile: string, redirectedReference: ResolvedProjectReference | undefined, options: CompilerOptions): (ResolvedTypeReferenceDirective | undefined)[]; + resolveTypeReferenceDirectives?(typeReferenceDirectiveNames: string[] | readonly FileReference[], containingFile: string, redirectedReference: ResolvedProjectReference | undefined, options: CompilerOptions, containingFileMode?: SourceFile["impliedNodeFormat"] | undefined): (ResolvedTypeReferenceDirective | undefined)[]; getEnvironmentVariable?(name: string): string | undefined; createHash?(data: string): string; getParsedCommandLine?(fileName: string): ParsedCommandLine | undefined; @@ -3344,12 +3392,16 @@ declare namespace ts { createTrue(): TrueLiteral; createFalse(): FalseLiteral; createModifier(kind: T): ModifierToken; - createModifiersFromModifierFlags(flags: ModifierFlags): Modifier[]; + createModifiersFromModifierFlags(flags: ModifierFlags): Modifier[] | undefined; createQualifiedName(left: EntityName, right: string | Identifier): QualifiedName; updateQualifiedName(node: QualifiedName, left: EntityName, right: Identifier): QualifiedName; createComputedPropertyName(expression: Expression): ComputedPropertyName; updateComputedPropertyName(node: ComputedPropertyName, expression: Expression): ComputedPropertyName; + createTypeParameterDeclaration(modifiers: readonly Modifier[] | undefined, name: string | Identifier, constraint?: TypeNode, defaultType?: TypeNode): TypeParameterDeclaration; + /** @deprecated */ createTypeParameterDeclaration(name: string | Identifier, constraint?: TypeNode, defaultType?: TypeNode): TypeParameterDeclaration; + updateTypeParameterDeclaration(node: TypeParameterDeclaration, modifiers: readonly Modifier[] | undefined, name: Identifier, constraint: TypeNode | undefined, defaultType: TypeNode | undefined): TypeParameterDeclaration; + /** @deprecated */ updateTypeParameterDeclaration(node: TypeParameterDeclaration, name: Identifier, constraint: TypeNode | undefined, defaultType: TypeNode | undefined): TypeParameterDeclaration; createParameterDeclaration(decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, dotDotDotToken: DotDotDotToken | undefined, name: string | BindingName, questionToken?: QuestionToken, type?: TypeNode, initializer?: Expression): ParameterDeclaration; updateParameterDeclaration(node: ParameterDeclaration, decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, dotDotDotToken: DotDotDotToken | undefined, name: string | BindingName, questionToken: QuestionToken | undefined, type: TypeNode | undefined, initializer: Expression | undefined): ParameterDeclaration; @@ -3392,8 +3444,8 @@ declare namespace ts { updateConstructorTypeNode(node: ConstructorTypeNode, modifiers: readonly Modifier[] | undefined, typeParameters: NodeArray | undefined, parameters: NodeArray, type: TypeNode): ConstructorTypeNode; /** @deprecated */ updateConstructorTypeNode(node: ConstructorTypeNode, typeParameters: NodeArray | undefined, parameters: NodeArray, type: TypeNode): ConstructorTypeNode; - createTypeQueryNode(exprName: EntityName): TypeQueryNode; - updateTypeQueryNode(node: TypeQueryNode, exprName: EntityName): TypeQueryNode; + createTypeQueryNode(exprName: EntityName, typeArguments?: readonly TypeNode[]): TypeQueryNode; + updateTypeQueryNode(node: TypeQueryNode, exprName: EntityName, typeArguments?: readonly TypeNode[]): TypeQueryNode; createTypeLiteralNode(members: readonly TypeElement[] | undefined): TypeLiteralNode; updateTypeLiteralNode(node: TypeLiteralNode, members: NodeArray): TypeLiteralNode; createArrayTypeNode(elementType: TypeNode): ArrayTypeNode; @@ -3415,7 +3467,9 @@ declare namespace ts { createInferTypeNode(typeParameter: TypeParameterDeclaration): InferTypeNode; updateInferTypeNode(node: InferTypeNode, typeParameter: TypeParameterDeclaration): InferTypeNode; createImportTypeNode(argument: TypeNode, qualifier?: EntityName, typeArguments?: readonly TypeNode[], isTypeOf?: boolean): ImportTypeNode; + createImportTypeNode(argument: TypeNode, assertions?: ImportTypeAssertionContainer, qualifier?: EntityName, typeArguments?: readonly TypeNode[], isTypeOf?: boolean): ImportTypeNode; updateImportTypeNode(node: ImportTypeNode, argument: TypeNode, qualifier: EntityName | undefined, typeArguments: readonly TypeNode[] | undefined, isTypeOf?: boolean): ImportTypeNode; + updateImportTypeNode(node: ImportTypeNode, argument: TypeNode, assertions: ImportTypeAssertionContainer | undefined, qualifier: EntityName | undefined, typeArguments: readonly TypeNode[] | undefined, isTypeOf?: boolean): ImportTypeNode; createParenthesizedType(type: TypeNode): ParenthesizedTypeNode; updateParenthesizedType(node: ParenthesizedTypeNode, type: TypeNode): ParenthesizedTypeNode; createThisTypeNode(): ThisTypeNode; @@ -3576,8 +3630,10 @@ declare namespace ts { updateImportClause(node: ImportClause, isTypeOnly: boolean, name: Identifier | undefined, namedBindings: NamedImportBindings | undefined): ImportClause; createAssertClause(elements: NodeArray, multiLine?: boolean): AssertClause; updateAssertClause(node: AssertClause, elements: NodeArray, multiLine?: boolean): AssertClause; - createAssertEntry(name: AssertionKey, value: StringLiteral): AssertEntry; - updateAssertEntry(node: AssertEntry, name: AssertionKey, value: StringLiteral): AssertEntry; + createAssertEntry(name: AssertionKey, value: Expression): AssertEntry; + updateAssertEntry(node: AssertEntry, name: AssertionKey, value: Expression): AssertEntry; + createImportTypeAssertionContainer(clause: AssertClause, multiLine?: boolean): ImportTypeAssertionContainer; + updateImportTypeAssertionContainer(node: ImportTypeAssertionContainer, clause: AssertClause, multiLine?: boolean): ImportTypeAssertionContainer; createNamespaceImport(name: Identifier): NamespaceImport; updateNamespaceImport(node: NamespaceImport, name: Identifier): NamespaceImport; createNamespaceExport(name: Identifier): NamespaceExport; @@ -4043,6 +4099,9 @@ declare namespace ts { readonly includeCompletionsWithSnippetText?: boolean; readonly includeAutomaticOptionalChainCompletions?: boolean; readonly includeCompletionsWithInsertText?: boolean; + readonly includeCompletionsWithClassMemberSnippets?: boolean; + readonly includeCompletionsWithObjectLiteralMethodSnippets?: boolean; + readonly useLabelDetailsInCompletionEntries?: boolean; readonly allowIncompleteCompletions?: boolean; readonly importModuleSpecifierPreference?: "shortest" | "project-relative" | "relative" | "non-relative"; /** Determines whether we import `foo/index.ts` as "foo", "foo/index", or "foo/index.js" */ @@ -4052,6 +4111,13 @@ declare namespace ts { readonly includePackageJsonAutoImports?: "auto" | "on" | "off"; readonly provideRefactorNotApplicableReason?: boolean; readonly jsxAttributeCompletionStyle?: "auto" | "braces" | "none"; + readonly includeInlayParameterNameHints?: "none" | "literals" | "all"; + readonly includeInlayParameterNameHintsWhenArgumentMatchesName?: boolean; + readonly includeInlayFunctionParameterTypeHints?: boolean; + readonly includeInlayVariableTypeHints?: boolean; + readonly includeInlayPropertyDeclarationTypeHints?: boolean; + readonly includeInlayFunctionLikeReturnTypeHints?: boolean; + readonly includeInlayEnumMemberValueHints?: boolean; } /** Represents a bigint literal value without requiring bigint support */ export interface PseudoBigInt { @@ -4743,7 +4809,22 @@ declare namespace ts { * that they appear in the source code. The language service depends on this property to locate nodes by position. */ export function forEachChild(node: Node, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined; - export function createSourceFile(fileName: string, sourceText: string, languageVersion: ScriptTarget, setParentNodes?: boolean, scriptKind?: ScriptKind): SourceFile; + export interface CreateSourceFileOptions { + languageVersion: ScriptTarget; + /** + * Controls the format the file is detected as - this can be derived from only the path + * and files on disk, but needs to be done with a module resolution cache in scope to be performant. + * This is usually `undefined` for compilations that do not have `moduleResolution` values of `node12` or `nodenext`. + */ + impliedNodeFormat?: ModuleKind.ESNext | ModuleKind.CommonJS; + /** + * Controls how module-y-ness is set for the given file. Usually the result of calling + * `getSetExternalModuleIndicator` on a valid `CompilerOptions` object. If not present, the default + * check specified by `isFileProbablyExternalModule` will be used to set the field. + */ + setExternalModuleIndicator?: (file: SourceFile) => void; + } + export function createSourceFile(fileName: string, sourceText: string, languageVersionOrOptions: ScriptTarget | CreateSourceFileOptions, setParentNodes?: boolean, scriptKind?: ScriptKind): SourceFile; export function parseIsolatedEntityName(text: string, languageVersion: ScriptTarget): EntityName | undefined; /** * Parse json text into SyntaxTree and return node and parse errors if any @@ -4850,7 +4931,7 @@ declare namespace ts { * This is possible in case if resolution is performed for directives specified via 'types' parameter. In this case initial path for secondary lookups * is assumed to be the same as root directory of the project. */ - export function resolveTypeReferenceDirective(typeReferenceDirectiveName: string, containingFile: string | undefined, options: CompilerOptions, host: ModuleResolutionHost, redirectedReference?: ResolvedProjectReference, cache?: TypeReferenceDirectiveResolutionCache): ResolvedTypeReferenceDirectiveWithFailedLookupLocations; + export function resolveTypeReferenceDirective(typeReferenceDirectiveName: string, containingFile: string | undefined, options: CompilerOptions, host: ModuleResolutionHost, redirectedReference?: ResolvedProjectReference, cache?: TypeReferenceDirectiveResolutionCache, resolutionMode?: SourceFile["impliedNodeFormat"]): ResolvedTypeReferenceDirectiveWithFailedLookupLocations; /** * Given a set of options, returns the set of type directive names * that should be included for this program automatically. @@ -5271,7 +5352,7 @@ declare namespace ts { /** If provided, used to resolve the module names, otherwise typescript's default module resolution */ resolveModuleNames?(moduleNames: string[], containingFile: string, reusedNames: string[] | undefined, redirectedReference: ResolvedProjectReference | undefined, options: CompilerOptions, containingSourceFile?: SourceFile): (ResolvedModule | undefined)[]; /** If provided, used to resolve type reference directives, otherwise typescript's default resolution */ - resolveTypeReferenceDirectives?(typeReferenceDirectiveNames: string[], containingFile: string, redirectedReference: ResolvedProjectReference | undefined, options: CompilerOptions): (ResolvedTypeReferenceDirective | undefined)[]; + resolveTypeReferenceDirectives?(typeReferenceDirectiveNames: string[] | readonly FileReference[], containingFile: string, redirectedReference: ResolvedProjectReference | undefined, options: CompilerOptions, containingFileMode?: SourceFile["impliedNodeFormat"] | undefined): (ResolvedTypeReferenceDirective | undefined)[]; } interface WatchCompilerHost extends ProgramHost, WatchHost { /** Instead of using output d.ts file from project reference, use its source file */ @@ -5351,7 +5432,11 @@ declare namespace ts { traceResolution?: boolean; [option: string]: CompilerOptionsValue | undefined; } - type ReportEmitErrorSummary = (errorCount: number) => void; + type ReportEmitErrorSummary = (errorCount: number, filesInError: (ReportFileInError | undefined)[]) => void; + interface ReportFileInError { + fileName: string; + line: number; + } interface SolutionBuilderHostBase extends ProgramHost { createDirectory?(path: string): void; /** @@ -5559,6 +5644,7 @@ declare namespace ts { isTypeParameter(): this is TypeParameter; isClassOrInterface(): this is InterfaceType; isClass(): this is InterfaceType; + isIndexType(): this is IndexType; } interface TypeReference { typeArguments?: readonly Type[]; @@ -5567,6 +5653,7 @@ declare namespace ts { getDeclaration(): SignatureDeclaration; getTypeParameters(): TypeParameter[] | undefined; getParameters(): Symbol[]; + getTypeParameterAtPosition(pos: number): Type; getReturnType(): Type; getDocumentationComment(typeChecker: TypeChecker | undefined): SymbolDisplayPart[]; getJsDocTags(): JSDocTagInfo[]; @@ -5637,7 +5724,7 @@ declare namespace ts { set(response: CompletionInfo): void; clear(): void; } - interface LanguageServiceHost extends GetEffectiveTypeRootsHost { + interface LanguageServiceHost extends GetEffectiveTypeRootsHost, MinimalResolutionCacheHost { getCompilationSettings(): CompilerOptions; getNewLine?(): string; getProjectVersion?(): string; @@ -5655,13 +5742,13 @@ declare namespace ts { error?(s: string): void; useCaseSensitiveFileNames?(): boolean; readDirectory?(path: string, extensions?: readonly string[], exclude?: readonly string[], include?: readonly string[], depth?: number): string[]; - readFile?(path: string, encoding?: string): string | undefined; realpath?(path: string): string; - fileExists?(path: string): boolean; + readFile(path: string, encoding?: string): string | undefined; + fileExists(path: string): boolean; getTypeRootsVersion?(): number; resolveModuleNames?(moduleNames: string[], containingFile: string, reusedNames: string[] | undefined, redirectedReference: ResolvedProjectReference | undefined, options: CompilerOptions, containingSourceFile?: SourceFile): (ResolvedModule | undefined)[]; getResolvedModuleWithFailedLookupLocationsFromCache?(modulename: string, containingFile: string, resolutionMode?: ModuleKind.CommonJS | ModuleKind.ESNext): ResolvedModuleWithFailedLookupLocations | undefined; - resolveTypeReferenceDirectives?(typeDirectiveNames: string[], containingFile: string, redirectedReference: ResolvedProjectReference | undefined, options: CompilerOptions): (ResolvedTypeReferenceDirective | undefined)[]; + resolveTypeReferenceDirectives?(typeDirectiveNames: string[] | FileReference[], containingFile: string, redirectedReference: ResolvedProjectReference | undefined, options: CompilerOptions, containingFileMode?: SourceFile["impliedNodeFormat"] | undefined): (ResolvedTypeReferenceDirective | undefined)[]; getDirectories?(directoryName: string): string[]; /** * Gets a set of custom transformers to use during emit. @@ -5753,8 +5840,9 @@ declare namespace ts { * @param position A zero-based index of the character where you want the entries * @param options An object describing how the request was triggered and what kinds * of code actions can be returned with the completions. + * @param formattingSettings settings needed for calling formatting functions. */ - getCompletionsAtPosition(fileName: string, position: number, options: GetCompletionsAtPositionOptions | undefined): WithMetadata | undefined; + getCompletionsAtPosition(fileName: string, position: number, options: GetCompletionsAtPositionOptions | undefined, formattingSettings?: FormatCodeSettings): WithMetadata | undefined; /** * Gets the extended details for a completion entry retrieved from `getCompletionsAtPosition`. * @@ -5869,15 +5957,6 @@ declare namespace ts { /** @deprecated Use includeCompletionsWithInsertText */ includeInsertTextCompletions?: boolean; } - interface InlayHintsOptions extends UserPreferences { - readonly includeInlayParameterNameHints?: "none" | "literals" | "all"; - readonly includeInlayParameterNameHintsWhenArgumentMatchesName?: boolean; - readonly includeInlayFunctionParameterTypeHints?: boolean; - readonly includeInlayVariableTypeHints?: boolean; - readonly includeInlayPropertyDeclarationTypeHints?: boolean; - readonly includeInlayFunctionLikeReturnTypeHints?: boolean; - readonly includeInlayEnumMemberValueHints?: boolean; - } type SignatureHelpTriggerCharacter = "," | "(" | "<"; type SignatureHelpRetriggerCharacter = SignatureHelpTriggerCharacter | ")"; interface SignatureHelpItemsOptions { @@ -6408,6 +6487,7 @@ declare namespace ts { hasAction?: true; source?: string; sourceDisplay?: SymbolDisplayPart[]; + labelDetails?: CompletionEntryLabelDetails; isRecommended?: true; isFromUncheckedFile?: true; isPackageJsonImport?: true; @@ -6422,6 +6502,10 @@ declare namespace ts { */ data?: CompletionEntryData; } + interface CompletionEntryLabelDetails { + detail?: string; + description?: string; + } interface CompletionEntryDetails { name: string; kind: ScriptElementKind; @@ -6586,6 +6670,7 @@ declare namespace ts { externalModuleName = "external module name", /** * + * @deprecated */ jsxAttribute = "JSX attribute", /** String literal */ @@ -6680,7 +6765,7 @@ declare namespace ts { cancellationToken: CancellationToken; host: LanguageServiceHost; span: TextSpan; - preferences: InlayHintsOptions; + preferences: UserPreferences; } } declare namespace ts { @@ -6716,30 +6801,36 @@ declare namespace ts { * the SourceFile if was not found in the registry. * * @param fileName The name of the file requested - * @param compilationSettings Some compilation settings like target affects the + * @param compilationSettingsOrHost Some compilation settings like target affects the * shape of a the resulting SourceFile. This allows the DocumentRegistry to store - * multiple copies of the same file for different compilation settings. + * multiple copies of the same file for different compilation settings. A minimal + * resolution cache is needed to fully define a source file's shape when + * the compilation settings include `module: node12`+, so providing a cache host + * object should be preferred. A common host is a language service `ConfiguredProject`. * @param scriptSnapshot Text of the file. Only used if the file was not found * in the registry and a new one was created. * @param version Current version of the file. Only used if the file was not found * in the registry and a new one was created. */ - acquireDocument(fileName: string, compilationSettings: CompilerOptions, scriptSnapshot: IScriptSnapshot, version: string, scriptKind?: ScriptKind): SourceFile; - acquireDocumentWithKey(fileName: string, path: Path, compilationSettings: CompilerOptions, key: DocumentRegistryBucketKey, scriptSnapshot: IScriptSnapshot, version: string, scriptKind?: ScriptKind): SourceFile; + acquireDocument(fileName: string, compilationSettingsOrHost: CompilerOptions | MinimalResolutionCacheHost, scriptSnapshot: IScriptSnapshot, version: string, scriptKind?: ScriptKind): SourceFile; + acquireDocumentWithKey(fileName: string, path: Path, compilationSettingsOrHost: CompilerOptions | MinimalResolutionCacheHost, key: DocumentRegistryBucketKey, scriptSnapshot: IScriptSnapshot, version: string, scriptKind?: ScriptKind): SourceFile; /** * Request an updated version of an already existing SourceFile with a given fileName * and compilationSettings. The update will in-turn call updateLanguageServiceSourceFile * to get an updated SourceFile. * * @param fileName The name of the file requested - * @param compilationSettings Some compilation settings like target affects the + * @param compilationSettingsOrHost Some compilation settings like target affects the * shape of a the resulting SourceFile. This allows the DocumentRegistry to store - * multiple copies of the same file for different compilation settings. + * multiple copies of the same file for different compilation settings. A minimal + * resolution cache is needed to fully define a source file's shape when + * the compilation settings include `module: node12`+, so providing a cache host + * object should be preferred. A common host is a language service `ConfiguredProject`. * @param scriptSnapshot Text of the file. * @param version Current version of the file. */ - updateDocument(fileName: string, compilationSettings: CompilerOptions, scriptSnapshot: IScriptSnapshot, version: string, scriptKind?: ScriptKind): SourceFile; - updateDocumentWithKey(fileName: string, path: Path, compilationSettings: CompilerOptions, key: DocumentRegistryBucketKey, scriptSnapshot: IScriptSnapshot, version: string, scriptKind?: ScriptKind): SourceFile; + updateDocument(fileName: string, compilationSettingsOrHost: CompilerOptions | MinimalResolutionCacheHost, scriptSnapshot: IScriptSnapshot, version: string, scriptKind?: ScriptKind): SourceFile; + updateDocumentWithKey(fileName: string, path: Path, compilationSettingsOrHost: CompilerOptions | MinimalResolutionCacheHost, key: DocumentRegistryBucketKey, scriptSnapshot: IScriptSnapshot, version: string, scriptKind?: ScriptKind): SourceFile; getKeyForCompilationSettings(settings: CompilerOptions): DocumentRegistryBucketKey; /** * Informs the DocumentRegistry that a file is not needed any longer. @@ -6801,7 +6892,7 @@ declare namespace ts { function displayPartsToString(displayParts: SymbolDisplayPart[] | undefined): string; function getDefaultCompilerOptions(): CompilerOptions; function getSupportedCodeFixes(): string[]; - function createLanguageServiceSourceFile(fileName: string, scriptSnapshot: IScriptSnapshot, scriptTarget: ScriptTarget, version: string, setNodeParents: boolean, scriptKind?: ScriptKind): SourceFile; + function createLanguageServiceSourceFile(fileName: string, scriptSnapshot: IScriptSnapshot, scriptTargetOrOptions: ScriptTarget | CreateSourceFileOptions, version: string, setNodeParents: boolean, scriptKind?: ScriptKind): SourceFile; function updateLanguageServiceSourceFile(sourceFile: SourceFile, scriptSnapshot: IScriptSnapshot, version: string, textChangeRange: TextChangeRange | undefined, aggressiveChecks?: boolean): SourceFile; function createLanguageService(host: LanguageServiceHost, documentRegistry?: DocumentRegistry, syntaxOnlyOrLanguageServiceMode?: boolean | LanguageServiceMode): LanguageService; /** @@ -6855,7 +6946,7 @@ declare namespace ts { /** @deprecated Use `factory.createModifier` or the factory supplied by your transformation context instead. */ const createModifier: (kind: T) => ModifierToken; /** @deprecated Use `factory.createModifiersFromModifierFlags` or the factory supplied by your transformation context instead. */ - const createModifiersFromModifierFlags: (flags: ModifierFlags) => Modifier[]; + const createModifiersFromModifierFlags: (flags: ModifierFlags) => Modifier[] | undefined; /** @deprecated Use `factory.createQualifiedName` or the factory supplied by your transformation context instead. */ const createQualifiedName: (left: EntityName, right: string | Identifier) => QualifiedName; /** @deprecated Use `factory.updateQualifiedName` or the factory supplied by your transformation context instead. */ @@ -6865,9 +6956,15 @@ declare namespace ts { /** @deprecated Use `factory.updateComputedPropertyName` or the factory supplied by your transformation context instead. */ const updateComputedPropertyName: (node: ComputedPropertyName, expression: Expression) => ComputedPropertyName; /** @deprecated Use `factory.createTypeParameterDeclaration` or the factory supplied by your transformation context instead. */ - const createTypeParameterDeclaration: (name: string | Identifier, constraint?: TypeNode | undefined, defaultType?: TypeNode | undefined) => TypeParameterDeclaration; + const createTypeParameterDeclaration: { + (modifiers: readonly Modifier[] | undefined, name: string | Identifier, constraint?: TypeNode | undefined, defaultType?: TypeNode | undefined): TypeParameterDeclaration; + (name: string | Identifier, constraint?: TypeNode | undefined, defaultType?: TypeNode | undefined): TypeParameterDeclaration; + }; /** @deprecated Use `factory.updateTypeParameterDeclaration` or the factory supplied by your transformation context instead. */ - const updateTypeParameterDeclaration: (node: TypeParameterDeclaration, name: Identifier, constraint: TypeNode | undefined, defaultType: TypeNode | undefined) => TypeParameterDeclaration; + const updateTypeParameterDeclaration: { + (node: TypeParameterDeclaration, modifiers: readonly Modifier[] | undefined, name: Identifier, constraint: TypeNode | undefined, defaultType: TypeNode | undefined): TypeParameterDeclaration; + (node: TypeParameterDeclaration, name: Identifier, constraint: TypeNode | undefined, defaultType: TypeNode | undefined): TypeParameterDeclaration; + }; /** @deprecated Use `factory.createParameterDeclaration` or the factory supplied by your transformation context instead. */ const createParameter: (decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, dotDotDotToken: DotDotDotToken | undefined, name: string | BindingName, questionToken?: QuestionToken | undefined, type?: TypeNode | undefined, initializer?: Expression | undefined) => ParameterDeclaration; /** @deprecated Use `factory.updateParameterDeclaration` or the factory supplied by your transformation context instead. */ @@ -6925,9 +7022,9 @@ declare namespace ts { /** @deprecated Use `factory.updateConstructorTypeNode` or the factory supplied by your transformation context instead. */ const updateConstructorTypeNode: (node: ConstructorTypeNode, typeParameters: NodeArray | undefined, parameters: NodeArray, type: TypeNode) => ConstructorTypeNode; /** @deprecated Use `factory.createTypeQueryNode` or the factory supplied by your transformation context instead. */ - const createTypeQueryNode: (exprName: EntityName) => TypeQueryNode; + const createTypeQueryNode: (exprName: EntityName, typeArguments?: readonly TypeNode[] | undefined) => TypeQueryNode; /** @deprecated Use `factory.updateTypeQueryNode` or the factory supplied by your transformation context instead. */ - const updateTypeQueryNode: (node: TypeQueryNode, exprName: EntityName) => TypeQueryNode; + const updateTypeQueryNode: (node: TypeQueryNode, exprName: EntityName, typeArguments?: readonly TypeNode[] | undefined) => TypeQueryNode; /** @deprecated Use `factory.createTypeLiteralNode` or the factory supplied by your transformation context instead. */ const createTypeLiteralNode: (members: readonly TypeElement[] | undefined) => TypeLiteralNode; /** @deprecated Use `factory.updateTypeLiteralNode` or the factory supplied by your transformation context instead. */ @@ -6965,9 +7062,15 @@ declare namespace ts { /** @deprecated Use `factory.updateInferTypeNode` or the factory supplied by your transformation context instead. */ const updateInferTypeNode: (node: InferTypeNode, typeParameter: TypeParameterDeclaration) => InferTypeNode; /** @deprecated Use `factory.createImportTypeNode` or the factory supplied by your transformation context instead. */ - const createImportTypeNode: (argument: TypeNode, qualifier?: EntityName | undefined, typeArguments?: readonly TypeNode[] | undefined, isTypeOf?: boolean | undefined) => ImportTypeNode; + const createImportTypeNode: { + (argument: TypeNode, qualifier?: EntityName | undefined, typeArguments?: readonly TypeNode[] | undefined, isTypeOf?: boolean | undefined): ImportTypeNode; + (argument: TypeNode, assertions?: ImportTypeAssertionContainer | undefined, qualifier?: EntityName | undefined, typeArguments?: readonly TypeNode[] | undefined, isTypeOf?: boolean | undefined): ImportTypeNode; + }; /** @deprecated Use `factory.updateImportTypeNode` or the factory supplied by your transformation context instead. */ - const updateImportTypeNode: (node: ImportTypeNode, argument: TypeNode, qualifier: EntityName | undefined, typeArguments: readonly TypeNode[] | undefined, isTypeOf?: boolean | undefined) => ImportTypeNode; + const updateImportTypeNode: { + (node: ImportTypeNode, argument: TypeNode, qualifier: EntityName | undefined, typeArguments: readonly TypeNode[] | undefined, isTypeOf?: boolean | undefined): ImportTypeNode; + (node: ImportTypeNode, argument: TypeNode, assertions: ImportTypeAssertionContainer | undefined, qualifier: EntityName | undefined, typeArguments: readonly TypeNode[] | undefined, isTypeOf?: boolean | undefined): ImportTypeNode; + }; /** @deprecated Use `factory.createParenthesizedType` or the factory supplied by your transformation context instead. */ const createParenthesizedType: (type: TypeNode) => ParenthesizedTypeNode; /** @deprecated Use `factory.updateParenthesizedType` or the factory supplied by your transformation context instead. */ diff --git a/tests/baselines/reference/argumentsPropertyNameInJsMode1.errors.txt b/tests/baselines/reference/argumentsPropertyNameInJsMode1.errors.txt new file mode 100644 index 0000000000000..ac1633442243e --- /dev/null +++ b/tests/baselines/reference/argumentsPropertyNameInJsMode1.errors.txt @@ -0,0 +1,16 @@ +tests/cases/compiler/a.js(9,7): error TS2554: Expected 0-1 arguments, but got 3. + + +==== tests/cases/compiler/a.js (1 errors) ==== + const foo = { + f1: (params) => { } + } + + function f2(x) { + foo.f1({ x, arguments: [] }); + } + + f2(1, 2, 3); + ~~~~ +!!! error TS2554: Expected 0-1 arguments, but got 3. + \ No newline at end of file diff --git a/tests/baselines/reference/argumentsPropertyNameInJsMode1.js b/tests/baselines/reference/argumentsPropertyNameInJsMode1.js new file mode 100644 index 0000000000000..7589f1bedc325 --- /dev/null +++ b/tests/baselines/reference/argumentsPropertyNameInJsMode1.js @@ -0,0 +1,27 @@ +//// [a.js] +const foo = { + f1: (params) => { } +} + +function f2(x) { + foo.f1({ x, arguments: [] }); +} + +f2(1, 2, 3); + + +//// [a.js] +var foo = { + f1: function (params) { } +}; +function f2(x) { + foo.f1({ x: x, arguments: [] }); +} +f2(1, 2, 3); + + +//// [a.d.ts] +declare function f2(x: any): void; +declare namespace foo { + function f1(params: any): void; +} diff --git a/tests/baselines/reference/argumentsPropertyNameInJsMode1.symbols b/tests/baselines/reference/argumentsPropertyNameInJsMode1.symbols new file mode 100644 index 0000000000000..508d78501c65a --- /dev/null +++ b/tests/baselines/reference/argumentsPropertyNameInJsMode1.symbols @@ -0,0 +1,24 @@ +=== tests/cases/compiler/a.js === +const foo = { +>foo : Symbol(foo, Decl(a.js, 0, 5)) + + f1: (params) => { } +>f1 : Symbol(f1, Decl(a.js, 0, 13)) +>params : Symbol(params, Decl(a.js, 1, 8)) +} + +function f2(x) { +>f2 : Symbol(f2, Decl(a.js, 2, 1)) +>x : Symbol(x, Decl(a.js, 4, 12)) + + foo.f1({ x, arguments: [] }); +>foo.f1 : Symbol(f1, Decl(a.js, 0, 13)) +>foo : Symbol(foo, Decl(a.js, 0, 5)) +>f1 : Symbol(f1, Decl(a.js, 0, 13)) +>x : Symbol(x, Decl(a.js, 5, 10)) +>arguments : Symbol(arguments, Decl(a.js, 5, 13)) +} + +f2(1, 2, 3); +>f2 : Symbol(f2, Decl(a.js, 2, 1)) + diff --git a/tests/baselines/reference/argumentsPropertyNameInJsMode1.types b/tests/baselines/reference/argumentsPropertyNameInJsMode1.types new file mode 100644 index 0000000000000..ceb83fe65db48 --- /dev/null +++ b/tests/baselines/reference/argumentsPropertyNameInJsMode1.types @@ -0,0 +1,33 @@ +=== tests/cases/compiler/a.js === +const foo = { +>foo : { f1: (params: any) => void; } +>{ f1: (params) => { }} : { f1: (params: any) => void; } + + f1: (params) => { } +>f1 : (params: any) => void +>(params) => { } : (params: any) => void +>params : any +} + +function f2(x) { +>f2 : (x: any) => void +>x : any + + foo.f1({ x, arguments: [] }); +>foo.f1({ x, arguments: [] }) : void +>foo.f1 : (params: any) => void +>foo : { f1: (params: any) => void; } +>f1 : (params: any) => void +>{ x, arguments: [] } : { x: any; arguments: undefined[]; } +>x : any +>arguments : undefined[] +>[] : undefined[] +} + +f2(1, 2, 3); +>f2(1, 2, 3) : void +>f2 : (x: any) => void +>1 : 1 +>2 : 2 +>3 : 3 + diff --git a/tests/baselines/reference/argumentsPropertyNameInJsMode2.js b/tests/baselines/reference/argumentsPropertyNameInJsMode2.js new file mode 100644 index 0000000000000..a1e6a1a361e86 --- /dev/null +++ b/tests/baselines/reference/argumentsPropertyNameInJsMode2.js @@ -0,0 +1,17 @@ +//// [a.js] +function f(x) { + arguments; +} + +f(1, 2, 3); + + +//// [a.js] +function f(x) { + arguments; +} +f(1, 2, 3); + + +//// [a.d.ts] +declare function f(x: any, ...args: any[]): void; diff --git a/tests/baselines/reference/argumentsPropertyNameInJsMode2.symbols b/tests/baselines/reference/argumentsPropertyNameInJsMode2.symbols new file mode 100644 index 0000000000000..7675a88efb38c --- /dev/null +++ b/tests/baselines/reference/argumentsPropertyNameInJsMode2.symbols @@ -0,0 +1,12 @@ +=== tests/cases/compiler/a.js === +function f(x) { +>f : Symbol(f, Decl(a.js, 0, 0)) +>x : Symbol(x, Decl(a.js, 0, 11)) + + arguments; +>arguments : Symbol(arguments) +} + +f(1, 2, 3); +>f : Symbol(f, Decl(a.js, 0, 0)) + diff --git a/tests/baselines/reference/argumentsPropertyNameInJsMode2.types b/tests/baselines/reference/argumentsPropertyNameInJsMode2.types new file mode 100644 index 0000000000000..104a4c4c650a1 --- /dev/null +++ b/tests/baselines/reference/argumentsPropertyNameInJsMode2.types @@ -0,0 +1,16 @@ +=== tests/cases/compiler/a.js === +function f(x) { +>f : (x: any, ...args: any[]) => void +>x : any + + arguments; +>arguments : IArguments +} + +f(1, 2, 3); +>f(1, 2, 3) : void +>f : (x: any, ...args: any[]) => void +>1 : 1 +>2 : 2 +>3 : 3 + diff --git a/tests/baselines/reference/argumentsReferenceInConstructor4_Js.errors.txt b/tests/baselines/reference/argumentsReferenceInConstructor4_Js.errors.txt new file mode 100644 index 0000000000000..30d6092c3f9a4 --- /dev/null +++ b/tests/baselines/reference/argumentsReferenceInConstructor4_Js.errors.txt @@ -0,0 +1,46 @@ +/a.js(18,9): error TS1210: Code contained in a class is evaluated in JavaScript's strict mode which does not allow this use of 'arguments'. For more information, see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Strict_mode. + + +==== /a.js (1 errors) ==== + class A { + /** + * Constructor + * + * @param {object} [foo={}] + */ + constructor(foo = {}) { + const key = "bar"; + + /** + * @type object + */ + this.foo = foo; + + /** + * @type object + */ + const arguments = this.arguments; + ~~~~~~~~~ +!!! error TS1210: Code contained in a class is evaluated in JavaScript's strict mode which does not allow this use of 'arguments'. For more information, see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Strict_mode. + + /** + * @type object + */ + this.bar = arguments.bar; + + /** + * @type object + */ + this.baz = arguments[key]; + + /** + * @type object + */ + this.options = arguments; + } + + get arguments() { + return { bar: {} }; + } + } + \ No newline at end of file diff --git a/tests/baselines/reference/argumentsReferenceInMethod4_Js.errors.txt b/tests/baselines/reference/argumentsReferenceInMethod4_Js.errors.txt new file mode 100644 index 0000000000000..8c90a67da1700 --- /dev/null +++ b/tests/baselines/reference/argumentsReferenceInMethod4_Js.errors.txt @@ -0,0 +1,44 @@ +/a.js(16,9): error TS1210: Code contained in a class is evaluated in JavaScript's strict mode which does not allow this use of 'arguments'. For more information, see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Strict_mode. + + +==== /a.js (1 errors) ==== + class A { + /** + * @param {object} [foo={}] + */ + m(foo = {}) { + const key = "bar"; + + /** + * @type object + */ + this.foo = foo; + + /** + * @type object + */ + const arguments = this.arguments; + ~~~~~~~~~ +!!! error TS1210: Code contained in a class is evaluated in JavaScript's strict mode which does not allow this use of 'arguments'. For more information, see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Strict_mode. + + /** + * @type object + */ + this.bar = arguments.bar; + + /** + * @type object + */ + this.baz = arguments[key]; + + /** + * @type object + */ + this.options = arguments; + } + + get arguments() { + return { bar: {} }; + } + } + \ No newline at end of file diff --git a/tests/baselines/reference/arrayAssignmentTest1.errors.txt b/tests/baselines/reference/arrayAssignmentTest1.errors.txt index 4ee34fcf7368e..2ff2066dac365 100644 --- a/tests/baselines/reference/arrayAssignmentTest1.errors.txt +++ b/tests/baselines/reference/arrayAssignmentTest1.errors.txt @@ -20,7 +20,7 @@ tests/cases/compiler/arrayAssignmentTest1.ts(76,1): error TS2322: Type 'C1[]' is Property 'CM3M1' is missing in type 'C1' but required in type 'C3'. tests/cases/compiler/arrayAssignmentTest1.ts(77,1): error TS2322: Type 'I1[]' is not assignable to type 'C3[]'. Property 'CM3M1' is missing in type 'I1' but required in type 'C3'. -tests/cases/compiler/arrayAssignmentTest1.ts(79,1): error TS2740: Type '() => C1' is missing the following properties from type 'any[]': pop, push, concat, join, and 15 more. +tests/cases/compiler/arrayAssignmentTest1.ts(79,1): error TS2322: Type '() => C1' is not assignable to type 'any[]'. tests/cases/compiler/arrayAssignmentTest1.ts(80,1): error TS2740: Type '{ one: number; }' is missing the following properties from type 'any[]': length, pop, push, concat, and 16 more. tests/cases/compiler/arrayAssignmentTest1.ts(82,1): error TS2740: Type 'C1' is missing the following properties from type 'any[]': length, pop, push, concat, and 16 more. tests/cases/compiler/arrayAssignmentTest1.ts(83,1): error TS2740: Type 'C2' is missing the following properties from type 'any[]': length, pop, push, concat, and 16 more. @@ -152,7 +152,7 @@ tests/cases/compiler/arrayAssignmentTest1.ts(85,1): error TS2740: Type 'I1' is m arr_any = f1; // should be an error - is ~~~~~~~ -!!! error TS2740: Type '() => C1' is missing the following properties from type 'any[]': pop, push, concat, join, and 15 more. +!!! error TS2322: Type '() => C1' is not assignable to type 'any[]'. arr_any = o1; // should be an error - is ~~~~~~~ !!! error TS2740: Type '{ one: number; }' is missing the following properties from type 'any[]': length, pop, push, concat, and 16 more. diff --git a/tests/baselines/reference/arrayAssignmentTest2.errors.txt b/tests/baselines/reference/arrayAssignmentTest2.errors.txt index 4333dd119d666..f79695c546ce1 100644 --- a/tests/baselines/reference/arrayAssignmentTest2.errors.txt +++ b/tests/baselines/reference/arrayAssignmentTest2.errors.txt @@ -4,8 +4,8 @@ tests/cases/compiler/arrayAssignmentTest2.ts(48,1): error TS2322: Type 'C1[]' is Property 'CM3M1' is missing in type 'C1' but required in type 'C3'. tests/cases/compiler/arrayAssignmentTest2.ts(49,1): error TS2322: Type 'I1[]' is not assignable to type 'C3[]'. Property 'CM3M1' is missing in type 'I1' but required in type 'C3'. -tests/cases/compiler/arrayAssignmentTest2.ts(51,1): error TS2740: Type '() => C1' is missing the following properties from type 'any[]': pop, push, concat, join, and 15 more. -tests/cases/compiler/arrayAssignmentTest2.ts(52,1): error TS2740: Type '() => any' is missing the following properties from type 'any[]': pop, push, concat, join, and 15 more. +tests/cases/compiler/arrayAssignmentTest2.ts(51,1): error TS2322: Type '() => C1' is not assignable to type 'any[]'. +tests/cases/compiler/arrayAssignmentTest2.ts(52,1): error TS2322: Type '() => any' is not assignable to type 'any[]'. tests/cases/compiler/arrayAssignmentTest2.ts(53,1): error TS2740: Type '{ one: number; }' is missing the following properties from type 'any[]': length, pop, push, concat, and 16 more. tests/cases/compiler/arrayAssignmentTest2.ts(55,1): error TS2740: Type 'C1' is missing the following properties from type 'any[]': length, pop, push, concat, and 16 more. tests/cases/compiler/arrayAssignmentTest2.ts(56,1): error TS2740: Type 'C2' is missing the following properties from type 'any[]': length, pop, push, concat, and 16 more. @@ -78,10 +78,10 @@ tests/cases/compiler/arrayAssignmentTest2.ts(58,1): error TS2740: Type 'I1' is m arr_any = f1; // should be an error - is ~~~~~~~ -!!! error TS2740: Type '() => C1' is missing the following properties from type 'any[]': pop, push, concat, join, and 15 more. +!!! error TS2322: Type '() => C1' is not assignable to type 'any[]'. arr_any = function () { return null;} // should be an error - is ~~~~~~~ -!!! error TS2740: Type '() => any' is missing the following properties from type 'any[]': pop, push, concat, join, and 15 more. +!!! error TS2322: Type '() => any' is not assignable to type 'any[]'. arr_any = o1; // should be an error - is ~~~~~~~ !!! error TS2740: Type '{ one: number; }' is missing the following properties from type 'any[]': length, pop, push, concat, and 16 more. diff --git a/tests/baselines/reference/arrayAssignmentTest4.errors.txt b/tests/baselines/reference/arrayAssignmentTest4.errors.txt index 3e1c6c3de1285..c2103507d902a 100644 --- a/tests/baselines/reference/arrayAssignmentTest4.errors.txt +++ b/tests/baselines/reference/arrayAssignmentTest4.errors.txt @@ -1,4 +1,4 @@ -tests/cases/compiler/arrayAssignmentTest4.ts(22,1): error TS2740: Type '() => any' is missing the following properties from type 'any[]': pop, push, concat, join, and 15 more. +tests/cases/compiler/arrayAssignmentTest4.ts(22,1): error TS2322: Type '() => any' is not assignable to type 'any[]'. tests/cases/compiler/arrayAssignmentTest4.ts(23,1): error TS2740: Type 'C3' is missing the following properties from type 'any[]': length, pop, push, concat, and 16 more. @@ -26,7 +26,7 @@ tests/cases/compiler/arrayAssignmentTest4.ts(23,1): error TS2740: Type 'C3' is m arr_any = function () { return null;} // should be an error - is ~~~~~~~ -!!! error TS2740: Type '() => any' is missing the following properties from type 'any[]': pop, push, concat, join, and 15 more. +!!! error TS2322: Type '() => any' is not assignable to type 'any[]'. arr_any = c3; // should be an error - is ~~~~~~~ !!! error TS2740: Type 'C3' is missing the following properties from type 'any[]': length, pop, push, concat, and 16 more. diff --git a/tests/baselines/reference/arrayDestructuringInSwitch1.js b/tests/baselines/reference/arrayDestructuringInSwitch1.js new file mode 100644 index 0000000000000..1947d7583e346 --- /dev/null +++ b/tests/baselines/reference/arrayDestructuringInSwitch1.js @@ -0,0 +1,47 @@ +//// [arrayDestructuringInSwitch1.ts] +export type Expression = BooleanLogicExpression | 'true' | 'false'; +export type BooleanLogicExpression = ['and', ...Expression[]] | ['not', Expression]; + +export function evaluate(expression: Expression): boolean { + if (Array.isArray(expression)) { + const [operator, ...operands] = expression; + switch (operator) { + case 'and': { + return operands.every((child) => evaluate(child)); + } + case 'not': { + return !evaluate(operands[0]); + } + default: { + throw new Error(`${operator} is not a supported operator`); + } + } + } else { + return expression === 'true'; + } +} + +//// [arrayDestructuringInSwitch1.js] +"use strict"; +exports.__esModule = true; +exports.evaluate = void 0; +function evaluate(expression) { + if (Array.isArray(expression)) { + var operator = expression[0], operands = expression.slice(1); + switch (operator) { + case 'and': { + return operands.every(function (child) { return evaluate(child); }); + } + case 'not': { + return !evaluate(operands[0]); + } + default: { + throw new Error("".concat(operator, " is not a supported operator")); + } + } + } + else { + return expression === 'true'; + } +} +exports.evaluate = evaluate; diff --git a/tests/baselines/reference/arrayDestructuringInSwitch1.symbols b/tests/baselines/reference/arrayDestructuringInSwitch1.symbols new file mode 100644 index 0000000000000..f1a9bea3fa35f --- /dev/null +++ b/tests/baselines/reference/arrayDestructuringInSwitch1.symbols @@ -0,0 +1,55 @@ +=== tests/cases/compiler/arrayDestructuringInSwitch1.ts === +export type Expression = BooleanLogicExpression | 'true' | 'false'; +>Expression : Symbol(Expression, Decl(arrayDestructuringInSwitch1.ts, 0, 0)) +>BooleanLogicExpression : Symbol(BooleanLogicExpression, Decl(arrayDestructuringInSwitch1.ts, 0, 67)) + +export type BooleanLogicExpression = ['and', ...Expression[]] | ['not', Expression]; +>BooleanLogicExpression : Symbol(BooleanLogicExpression, Decl(arrayDestructuringInSwitch1.ts, 0, 67)) +>Expression : Symbol(Expression, Decl(arrayDestructuringInSwitch1.ts, 0, 0)) +>Expression : Symbol(Expression, Decl(arrayDestructuringInSwitch1.ts, 0, 0)) + +export function evaluate(expression: Expression): boolean { +>evaluate : Symbol(evaluate, Decl(arrayDestructuringInSwitch1.ts, 1, 84)) +>expression : Symbol(expression, Decl(arrayDestructuringInSwitch1.ts, 3, 25)) +>Expression : Symbol(Expression, Decl(arrayDestructuringInSwitch1.ts, 0, 0)) + + if (Array.isArray(expression)) { +>Array.isArray : Symbol(ArrayConstructor.isArray, Decl(lib.es5.d.ts, --, --)) +>Array : Symbol(Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>isArray : Symbol(ArrayConstructor.isArray, Decl(lib.es5.d.ts, --, --)) +>expression : Symbol(expression, Decl(arrayDestructuringInSwitch1.ts, 3, 25)) + + const [operator, ...operands] = expression; +>operator : Symbol(operator, Decl(arrayDestructuringInSwitch1.ts, 5, 11)) +>operands : Symbol(operands, Decl(arrayDestructuringInSwitch1.ts, 5, 20)) +>expression : Symbol(expression, Decl(arrayDestructuringInSwitch1.ts, 3, 25)) + + switch (operator) { +>operator : Symbol(operator, Decl(arrayDestructuringInSwitch1.ts, 5, 11)) + + case 'and': { + return operands.every((child) => evaluate(child)); +>operands.every : Symbol(Array.every, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>operands : Symbol(operands, Decl(arrayDestructuringInSwitch1.ts, 5, 20)) +>every : Symbol(Array.every, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>child : Symbol(child, Decl(arrayDestructuringInSwitch1.ts, 8, 31)) +>evaluate : Symbol(evaluate, Decl(arrayDestructuringInSwitch1.ts, 1, 84)) +>child : Symbol(child, Decl(arrayDestructuringInSwitch1.ts, 8, 31)) + } + case 'not': { + return !evaluate(operands[0]); +>evaluate : Symbol(evaluate, Decl(arrayDestructuringInSwitch1.ts, 1, 84)) +>operands : Symbol(operands, Decl(arrayDestructuringInSwitch1.ts, 5, 20)) +>0 : Symbol(0) + } + default: { + throw new Error(`${operator} is not a supported operator`); +>Error : Symbol(Error, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>operator : Symbol(operator, Decl(arrayDestructuringInSwitch1.ts, 5, 11)) + } + } + } else { + return expression === 'true'; +>expression : Symbol(expression, Decl(arrayDestructuringInSwitch1.ts, 3, 25)) + } +} diff --git a/tests/baselines/reference/arrayDestructuringInSwitch1.types b/tests/baselines/reference/arrayDestructuringInSwitch1.types new file mode 100644 index 0000000000000..dfb06774cec16 --- /dev/null +++ b/tests/baselines/reference/arrayDestructuringInSwitch1.types @@ -0,0 +1,66 @@ +=== tests/cases/compiler/arrayDestructuringInSwitch1.ts === +export type Expression = BooleanLogicExpression | 'true' | 'false'; +>Expression : Expression + +export type BooleanLogicExpression = ['and', ...Expression[]] | ['not', Expression]; +>BooleanLogicExpression : BooleanLogicExpression + +export function evaluate(expression: Expression): boolean { +>evaluate : (expression: Expression) => boolean +>expression : Expression + + if (Array.isArray(expression)) { +>Array.isArray(expression) : boolean +>Array.isArray : (arg: any) => arg is any[] +>Array : ArrayConstructor +>isArray : (arg: any) => arg is any[] +>expression : Expression + + const [operator, ...operands] = expression; +>operator : "and" | "not" +>operands : Expression[] | [Expression] +>expression : BooleanLogicExpression + + switch (operator) { +>operator : "and" | "not" + + case 'and': { +>'and' : "and" + + return operands.every((child) => evaluate(child)); +>operands.every((child) => evaluate(child)) : boolean +>operands.every : { (predicate: (value: Expression, index: number, array: Expression[]) => value is S, thisArg?: any): this is S[]; (predicate: (value: Expression, index: number, array: Expression[]) => unknown, thisArg?: any): boolean; } | { (predicate: (value: Expression, index: number, array: Expression[]) => value is S, thisArg?: any): this is S[]; (predicate: (value: Expression, index: number, array: Expression[]) => unknown, thisArg?: any): boolean; } +>operands : Expression[] | [Expression] +>every : { (predicate: (value: Expression, index: number, array: Expression[]) => value is S, thisArg?: any): this is S[]; (predicate: (value: Expression, index: number, array: Expression[]) => unknown, thisArg?: any): boolean; } | { (predicate: (value: Expression, index: number, array: Expression[]) => value is S, thisArg?: any): this is S[]; (predicate: (value: Expression, index: number, array: Expression[]) => unknown, thisArg?: any): boolean; } +>(child) => evaluate(child) : (child: Expression) => boolean +>child : Expression +>evaluate(child) : boolean +>evaluate : (expression: Expression) => boolean +>child : Expression + } + case 'not': { +>'not' : "not" + + return !evaluate(operands[0]); +>!evaluate(operands[0]) : boolean +>evaluate(operands[0]) : boolean +>evaluate : (expression: Expression) => boolean +>operands[0] : Expression +>operands : Expression[] | [Expression] +>0 : 0 + } + default: { + throw new Error(`${operator} is not a supported operator`); +>new Error(`${operator} is not a supported operator`) : Error +>Error : ErrorConstructor +>`${operator} is not a supported operator` : string +>operator : never + } + } + } else { + return expression === 'true'; +>expression === 'true' : boolean +>expression : "true" | "false" +>'true' : "true" + } +} diff --git a/tests/baselines/reference/arrayDestructuringInSwitch2.errors.txt b/tests/baselines/reference/arrayDestructuringInSwitch2.errors.txt new file mode 100644 index 0000000000000..48fb17f0c6edc --- /dev/null +++ b/tests/baselines/reference/arrayDestructuringInSwitch2.errors.txt @@ -0,0 +1,20 @@ +tests/cases/compiler/arrayDestructuringInSwitch2.ts(11,13): error TS2488: Type 'never' must have a '[Symbol.iterator]()' method that returns an iterator. + + +==== tests/cases/compiler/arrayDestructuringInSwitch2.ts (1 errors) ==== + type X = { kind: "a", a: [1] } | { kind: "b", a: [] } + + function foo(x: X): 1 { + const { kind, a } = x; + switch (kind) { + case "a": + return a[0]; + case "b": + return 1; + default: + const [n] = a; + ~~~ +!!! error TS2488: Type 'never' must have a '[Symbol.iterator]()' method that returns an iterator. + return a; + } + } \ No newline at end of file diff --git a/tests/baselines/reference/arrayDestructuringInSwitch2.js b/tests/baselines/reference/arrayDestructuringInSwitch2.js new file mode 100644 index 0000000000000..be6f00c08416a --- /dev/null +++ b/tests/baselines/reference/arrayDestructuringInSwitch2.js @@ -0,0 +1,29 @@ +//// [arrayDestructuringInSwitch2.ts] +type X = { kind: "a", a: [1] } | { kind: "b", a: [] } + +function foo(x: X): 1 { + const { kind, a } = x; + switch (kind) { + case "a": + return a[0]; + case "b": + return 1; + default: + const [n] = a; + return a; + } +} + +//// [arrayDestructuringInSwitch2.js] +function foo(x) { + var kind = x.kind, a = x.a; + switch (kind) { + case "a": + return a[0]; + case "b": + return 1; + default: + var n = a[0]; + return a; + } +} diff --git a/tests/baselines/reference/arrayDestructuringInSwitch2.symbols b/tests/baselines/reference/arrayDestructuringInSwitch2.symbols new file mode 100644 index 0000000000000..7d64ebdb8a432 --- /dev/null +++ b/tests/baselines/reference/arrayDestructuringInSwitch2.symbols @@ -0,0 +1,37 @@ +=== tests/cases/compiler/arrayDestructuringInSwitch2.ts === +type X = { kind: "a", a: [1] } | { kind: "b", a: [] } +>X : Symbol(X, Decl(arrayDestructuringInSwitch2.ts, 0, 0)) +>kind : Symbol(kind, Decl(arrayDestructuringInSwitch2.ts, 0, 10)) +>a : Symbol(a, Decl(arrayDestructuringInSwitch2.ts, 0, 21)) +>kind : Symbol(kind, Decl(arrayDestructuringInSwitch2.ts, 0, 34)) +>a : Symbol(a, Decl(arrayDestructuringInSwitch2.ts, 0, 45)) + +function foo(x: X): 1 { +>foo : Symbol(foo, Decl(arrayDestructuringInSwitch2.ts, 0, 53)) +>x : Symbol(x, Decl(arrayDestructuringInSwitch2.ts, 2, 13)) +>X : Symbol(X, Decl(arrayDestructuringInSwitch2.ts, 0, 0)) + + const { kind, a } = x; +>kind : Symbol(kind, Decl(arrayDestructuringInSwitch2.ts, 3, 9)) +>a : Symbol(a, Decl(arrayDestructuringInSwitch2.ts, 3, 15)) +>x : Symbol(x, Decl(arrayDestructuringInSwitch2.ts, 2, 13)) + + switch (kind) { +>kind : Symbol(kind, Decl(arrayDestructuringInSwitch2.ts, 3, 9)) + + case "a": + return a[0]; +>a : Symbol(a, Decl(arrayDestructuringInSwitch2.ts, 3, 15)) +>0 : Symbol(0) + + case "b": + return 1; + default: + const [n] = a; +>n : Symbol(n, Decl(arrayDestructuringInSwitch2.ts, 10, 13)) +>a : Symbol(a, Decl(arrayDestructuringInSwitch2.ts, 3, 15)) + + return a; +>a : Symbol(a, Decl(arrayDestructuringInSwitch2.ts, 3, 15)) + } +} diff --git a/tests/baselines/reference/arrayDestructuringInSwitch2.types b/tests/baselines/reference/arrayDestructuringInSwitch2.types new file mode 100644 index 0000000000000..727a2fc68ebc3 --- /dev/null +++ b/tests/baselines/reference/arrayDestructuringInSwitch2.types @@ -0,0 +1,43 @@ +=== tests/cases/compiler/arrayDestructuringInSwitch2.ts === +type X = { kind: "a", a: [1] } | { kind: "b", a: [] } +>X : X +>kind : "a" +>a : [1] +>kind : "b" +>a : [] + +function foo(x: X): 1 { +>foo : (x: X) => 1 +>x : X + + const { kind, a } = x; +>kind : "a" | "b" +>a : [1] | [] +>x : X + + switch (kind) { +>kind : "a" | "b" + + case "a": +>"a" : "a" + + return a[0]; +>a[0] : 1 +>a : [1] +>0 : 0 + + case "b": +>"b" : "b" + + return 1; +>1 : 1 + + default: + const [n] = a; +>n : never +>a : never + + return a; +>a : never + } +} diff --git a/tests/baselines/reference/arrayTypeOfTypeOf.errors.txt b/tests/baselines/reference/arrayTypeOfTypeOf.errors.txt deleted file mode 100644 index 2726492f36da3..0000000000000 --- a/tests/baselines/reference/arrayTypeOfTypeOf.errors.txt +++ /dev/null @@ -1,22 +0,0 @@ -tests/cases/conformance/types/specifyingTypes/typeLiterals/arrayTypeOfTypeOf.ts(6,22): error TS1005: ',' expected. -tests/cases/conformance/types/specifyingTypes/typeLiterals/arrayTypeOfTypeOf.ts(6,30): error TS1109: Expression expected. -tests/cases/conformance/types/specifyingTypes/typeLiterals/arrayTypeOfTypeOf.ts(7,22): error TS1005: ',' expected. -tests/cases/conformance/types/specifyingTypes/typeLiterals/arrayTypeOfTypeOf.ts(7,32): error TS1109: Expression expected. - - -==== tests/cases/conformance/types/specifyingTypes/typeLiterals/arrayTypeOfTypeOf.ts (4 errors) ==== - // array type cannot use typeof. - - var x = 1; - var xs: typeof x[]; // Not an error. This is equivalent to Array - var xs2: typeof Array; - var xs3: typeof Array; - ~ -!!! error TS1005: ',' expected. - ~ -!!! error TS1109: Expression expected. - var xs4: typeof Array; - ~ -!!! error TS1005: ',' expected. - ~ -!!! error TS1109: Expression expected. \ No newline at end of file diff --git a/tests/baselines/reference/arrayTypeOfTypeOf.js b/tests/baselines/reference/arrayTypeOfTypeOf.js index ced62a73a0772..74a50b9cc1fc9 100644 --- a/tests/baselines/reference/arrayTypeOfTypeOf.js +++ b/tests/baselines/reference/arrayTypeOfTypeOf.js @@ -13,6 +13,4 @@ var x = 1; var xs; // Not an error. This is equivalent to Array var xs2; var xs3; -; var xs4; -; diff --git a/tests/baselines/reference/arrayTypeOfTypeOf.types b/tests/baselines/reference/arrayTypeOfTypeOf.types index 398cbb759a59f..60eec5fbba21b 100644 --- a/tests/baselines/reference/arrayTypeOfTypeOf.types +++ b/tests/baselines/reference/arrayTypeOfTypeOf.types @@ -14,15 +14,11 @@ var xs2: typeof Array; >Array : ArrayConstructor var xs3: typeof Array; ->xs3 : ArrayConstructor +>xs3 : { (arrayLength: number): number[]; (...items: number[]): number[]; new (arrayLength: number): number[]; new (...items: number[]): number[]; isArray(arg: any): arg is any[]; readonly prototype: any[]; } >Array : ArrayConstructor -> : number -> : any var xs4: typeof Array; ->xs4 : ArrayConstructor +>xs4 : { (arrayLength: number): number[]; (...items: number[]): number[]; new (arrayLength: number): number[]; new (...items: number[]): number[]; isArray(arg: any): arg is any[]; readonly prototype: any[]; } >Array : ArrayConstructor -> : number >x : number -> : any diff --git a/tests/baselines/reference/assignLambdaToNominalSubtypeOfFunction.errors.txt b/tests/baselines/reference/assignLambdaToNominalSubtypeOfFunction.errors.txt index eeab9734ccdbb..4f0e5d0d7be41 100644 --- a/tests/baselines/reference/assignLambdaToNominalSubtypeOfFunction.errors.txt +++ b/tests/baselines/reference/assignLambdaToNominalSubtypeOfFunction.errors.txt @@ -1,7 +1,5 @@ tests/cases/compiler/assignLambdaToNominalSubtypeOfFunction.ts(7,4): error TS2345: Argument of type '(a: any, b: any) => boolean' is not assignable to parameter of type 'IResultCallback'. - Property 'x' is missing in type '(a: any, b: any) => boolean' but required in type 'IResultCallback'. tests/cases/compiler/assignLambdaToNominalSubtypeOfFunction.ts(8,4): error TS2345: Argument of type '(a: any, b: any) => boolean' is not assignable to parameter of type 'IResultCallback'. - Property 'x' is missing in type '(a: any, b: any) => boolean' but required in type 'IResultCallback'. ==== tests/cases/compiler/assignLambdaToNominalSubtypeOfFunction.ts (2 errors) ==== @@ -14,11 +12,7 @@ tests/cases/compiler/assignLambdaToNominalSubtypeOfFunction.ts(8,4): error TS234 fn((a, b) => true); ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '(a: any, b: any) => boolean' is not assignable to parameter of type 'IResultCallback'. -!!! error TS2345: Property 'x' is missing in type '(a: any, b: any) => boolean' but required in type 'IResultCallback'. -!!! related TS2728 tests/cases/compiler/assignLambdaToNominalSubtypeOfFunction.ts:2:5: 'x' is declared here. fn(function (a, b) { return true; }) ~~~~~~~~ !!! error TS2345: Argument of type '(a: any, b: any) => boolean' is not assignable to parameter of type 'IResultCallback'. -!!! error TS2345: Property 'x' is missing in type '(a: any, b: any) => boolean' but required in type 'IResultCallback'. -!!! related TS2728 tests/cases/compiler/assignLambdaToNominalSubtypeOfFunction.ts:2:5: 'x' is declared here. \ No newline at end of file diff --git a/tests/baselines/reference/assignmentCompatWithCallSignatures2.errors.txt b/tests/baselines/reference/assignmentCompatWithCallSignatures2.errors.txt index ba14424f99fee..12cd30864464f 100644 --- a/tests/baselines/reference/assignmentCompatWithCallSignatures2.errors.txt +++ b/tests/baselines/reference/assignmentCompatWithCallSignatures2.errors.txt @@ -1,7 +1,7 @@ -tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignatures2.ts(31,1): error TS2741: Property 'f' is missing in type '() => number' but required in type 'T'. -tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignatures2.ts(32,1): error TS2741: Property 'f' is missing in type '(x: number) => string' but required in type 'T'. -tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignatures2.ts(33,1): error TS2741: Property 'f' is missing in type '() => number' but required in type '{ f(x: number): void; }'. -tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignatures2.ts(34,1): error TS2741: Property 'f' is missing in type '(x: number) => string' but required in type '{ f(x: number): void; }'. +tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignatures2.ts(31,1): error TS2322: Type '() => number' is not assignable to type 'T'. +tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignatures2.ts(32,1): error TS2322: Type '(x: number) => string' is not assignable to type 'T'. +tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignatures2.ts(33,1): error TS2322: Type '() => number' is not assignable to type '{ f(x: number): void; }'. +tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignatures2.ts(34,1): error TS2322: Type '(x: number) => string' is not assignable to type '{ f(x: number): void; }'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignatures2.ts(42,1): error TS2322: Type 'S2' is not assignable to type 'T'. Types of property 'f' are incompatible. Type '(x: string) => void' is not assignable to type '(x: number) => void'. @@ -12,8 +12,8 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignme Type '(x: string) => void' is not assignable to type '(x: number) => void'. Types of parameters 'x' and 'x' are incompatible. Type 'number' is not assignable to type 'string'. -tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignatures2.ts(44,1): error TS2741: Property 'f' is missing in type '(x: string) => number' but required in type 'T'. -tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignatures2.ts(45,1): error TS2741: Property 'f' is missing in type '(x: string) => string' but required in type 'T'. +tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignatures2.ts(44,1): error TS2322: Type '(x: string) => number' is not assignable to type 'T'. +tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignatures2.ts(45,1): error TS2322: Type '(x: string) => string' is not assignable to type 'T'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignatures2.ts(46,1): error TS2322: Type 'S2' is not assignable to type '{ f(x: number): void; }'. Types of property 'f' are incompatible. Type '(x: string) => void' is not assignable to type '(x: number) => void'. @@ -24,8 +24,8 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignme Type '(x: string) => void' is not assignable to type '(x: number) => void'. Types of parameters 'x' and 'x' are incompatible. Type 'number' is not assignable to type 'string'. -tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignatures2.ts(48,1): error TS2741: Property 'f' is missing in type '(x: string) => number' but required in type '{ f(x: number): void; }'. -tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignatures2.ts(49,1): error TS2741: Property 'f' is missing in type '(x: string) => string' but required in type '{ f(x: number): void; }'. +tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignatures2.ts(48,1): error TS2322: Type '(x: string) => number' is not assignable to type '{ f(x: number): void; }'. +tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignatures2.ts(49,1): error TS2322: Type '(x: string) => string' is not assignable to type '{ f(x: number): void; }'. ==== tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignatures2.ts (12 errors) ==== @@ -61,20 +61,16 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignme // errors t = () => 1; ~ -!!! error TS2741: Property 'f' is missing in type '() => number' but required in type 'T'. -!!! related TS2728 tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignatures2.ts:4:5: 'f' is declared here. +!!! error TS2322: Type '() => number' is not assignable to type 'T'. t = function (x: number) { return ''; } ~ -!!! error TS2741: Property 'f' is missing in type '(x: number) => string' but required in type 'T'. -!!! related TS2728 tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignatures2.ts:4:5: 'f' is declared here. +!!! error TS2322: Type '(x: number) => string' is not assignable to type 'T'. a = () => 1; ~ -!!! error TS2741: Property 'f' is missing in type '() => number' but required in type '{ f(x: number): void; }'. -!!! related TS2728 tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignatures2.ts:7:10: 'f' is declared here. +!!! error TS2322: Type '() => number' is not assignable to type '{ f(x: number): void; }'. a = function (x: number) { return ''; } ~ -!!! error TS2741: Property 'f' is missing in type '(x: number) => string' but required in type '{ f(x: number): void; }'. -!!! related TS2728 tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignatures2.ts:7:10: 'f' is declared here. +!!! error TS2322: Type '(x: number) => string' is not assignable to type '{ f(x: number): void; }'. interface S2 { f(x: string): void; @@ -98,12 +94,10 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignme !!! error TS2322: Type 'number' is not assignable to type 'string'. t = (x: string) => 1; ~ -!!! error TS2741: Property 'f' is missing in type '(x: string) => number' but required in type 'T'. -!!! related TS2728 tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignatures2.ts:4:5: 'f' is declared here. +!!! error TS2322: Type '(x: string) => number' is not assignable to type 'T'. t = function (x: string) { return ''; } ~ -!!! error TS2741: Property 'f' is missing in type '(x: string) => string' but required in type 'T'. -!!! related TS2728 tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignatures2.ts:4:5: 'f' is declared here. +!!! error TS2322: Type '(x: string) => string' is not assignable to type 'T'. a = s2; ~ !!! error TS2322: Type 'S2' is not assignable to type '{ f(x: number): void; }'. @@ -120,10 +114,8 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignme !!! error TS2322: Type 'number' is not assignable to type 'string'. a = (x: string) => 1; ~ -!!! error TS2741: Property 'f' is missing in type '(x: string) => number' but required in type '{ f(x: number): void; }'. -!!! related TS2728 tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignatures2.ts:7:10: 'f' is declared here. +!!! error TS2322: Type '(x: string) => number' is not assignable to type '{ f(x: number): void; }'. a = function (x: string) { return ''; } ~ -!!! error TS2741: Property 'f' is missing in type '(x: string) => string' but required in type '{ f(x: number): void; }'. -!!! related TS2728 tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithCallSignatures2.ts:7:10: 'f' is declared here. +!!! error TS2322: Type '(x: string) => string' is not assignable to type '{ f(x: number): void; }'. \ No newline at end of file diff --git a/tests/baselines/reference/assignmentCompatWithConstructSignatures2.errors.txt b/tests/baselines/reference/assignmentCompatWithConstructSignatures2.errors.txt index b42670aa9022c..9491885cc81f5 100644 --- a/tests/baselines/reference/assignmentCompatWithConstructSignatures2.errors.txt +++ b/tests/baselines/reference/assignmentCompatWithConstructSignatures2.errors.txt @@ -1,7 +1,7 @@ -tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures2.ts(23,1): error TS2741: Property 'f' is missing in type '() => number' but required in type 'T'. -tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures2.ts(24,1): error TS2741: Property 'f' is missing in type '(x: number) => string' but required in type 'T'. -tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures2.ts(25,1): error TS2741: Property 'f' is missing in type '() => number' but required in type '{ f: new (x: number) => void; }'. -tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures2.ts(26,1): error TS2741: Property 'f' is missing in type '(x: number) => string' but required in type '{ f: new (x: number) => void; }'. +tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures2.ts(23,1): error TS2322: Type '() => number' is not assignable to type 'T'. +tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures2.ts(24,1): error TS2322: Type '(x: number) => string' is not assignable to type 'T'. +tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures2.ts(25,1): error TS2322: Type '() => number' is not assignable to type '{ f: new (x: number) => void; }'. +tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures2.ts(26,1): error TS2322: Type '(x: number) => string' is not assignable to type '{ f: new (x: number) => void; }'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures2.ts(34,1): error TS2322: Type 'S2' is not assignable to type 'T'. Types of property 'f' are incompatible. Type '(x: string) => void' is not assignable to type 'new (x: number) => void'. @@ -10,8 +10,8 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignme Types of property 'f' are incompatible. Type '(x: string) => void' is not assignable to type 'new (x: number) => void'. Type '(x: string) => void' provides no match for the signature 'new (x: number): void'. -tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures2.ts(36,1): error TS2741: Property 'f' is missing in type '(x: string) => number' but required in type 'T'. -tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures2.ts(37,1): error TS2741: Property 'f' is missing in type '(x: string) => string' but required in type 'T'. +tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures2.ts(36,1): error TS2322: Type '(x: string) => number' is not assignable to type 'T'. +tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures2.ts(37,1): error TS2322: Type '(x: string) => string' is not assignable to type 'T'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures2.ts(38,1): error TS2322: Type 'S2' is not assignable to type '{ f: new (x: number) => void; }'. Types of property 'f' are incompatible. Type '(x: string) => void' is not assignable to type 'new (x: number) => void'. @@ -20,8 +20,8 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignme Types of property 'f' are incompatible. Type '(x: string) => void' is not assignable to type 'new (x: number) => void'. Type '(x: string) => void' provides no match for the signature 'new (x: number): void'. -tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures2.ts(40,1): error TS2741: Property 'f' is missing in type '(x: string) => number' but required in type '{ f: new (x: number) => void; }'. -tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures2.ts(41,1): error TS2741: Property 'f' is missing in type '(x: string) => string' but required in type '{ f: new (x: number) => void; }'. +tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures2.ts(40,1): error TS2322: Type '(x: string) => number' is not assignable to type '{ f: new (x: number) => void; }'. +tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures2.ts(41,1): error TS2322: Type '(x: string) => string' is not assignable to type '{ f: new (x: number) => void; }'. ==== tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures2.ts (12 errors) ==== @@ -49,20 +49,16 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignme // errors t = () => 1; ~ -!!! error TS2741: Property 'f' is missing in type '() => number' but required in type 'T'. -!!! related TS2728 tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures2.ts:4:5: 'f' is declared here. +!!! error TS2322: Type '() => number' is not assignable to type 'T'. t = function (x: number) { return ''; } ~ -!!! error TS2741: Property 'f' is missing in type '(x: number) => string' but required in type 'T'. -!!! related TS2728 tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures2.ts:4:5: 'f' is declared here. +!!! error TS2322: Type '(x: number) => string' is not assignable to type 'T'. a = () => 1; ~ -!!! error TS2741: Property 'f' is missing in type '() => number' but required in type '{ f: new (x: number) => void; }'. -!!! related TS2728 tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures2.ts:7:10: 'f' is declared here. +!!! error TS2322: Type '() => number' is not assignable to type '{ f: new (x: number) => void; }'. a = function (x: number) { return ''; } ~ -!!! error TS2741: Property 'f' is missing in type '(x: number) => string' but required in type '{ f: new (x: number) => void; }'. -!!! related TS2728 tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures2.ts:7:10: 'f' is declared here. +!!! error TS2322: Type '(x: number) => string' is not assignable to type '{ f: new (x: number) => void; }'. interface S2 { f(x: string): void; @@ -84,12 +80,10 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignme !!! error TS2322: Type '(x: string) => void' provides no match for the signature 'new (x: number): void'. t = (x: string) => 1; ~ -!!! error TS2741: Property 'f' is missing in type '(x: string) => number' but required in type 'T'. -!!! related TS2728 tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures2.ts:4:5: 'f' is declared here. +!!! error TS2322: Type '(x: string) => number' is not assignable to type 'T'. t = function (x: string) { return ''; } ~ -!!! error TS2741: Property 'f' is missing in type '(x: string) => string' but required in type 'T'. -!!! related TS2728 tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures2.ts:4:5: 'f' is declared here. +!!! error TS2322: Type '(x: string) => string' is not assignable to type 'T'. a = s2; ~ !!! error TS2322: Type 'S2' is not assignable to type '{ f: new (x: number) => void; }'. @@ -104,10 +98,8 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignme !!! error TS2322: Type '(x: string) => void' provides no match for the signature 'new (x: number): void'. a = (x: string) => 1; ~ -!!! error TS2741: Property 'f' is missing in type '(x: string) => number' but required in type '{ f: new (x: number) => void; }'. -!!! related TS2728 tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures2.ts:7:10: 'f' is declared here. +!!! error TS2322: Type '(x: string) => number' is not assignable to type '{ f: new (x: number) => void; }'. a = function (x: string) { return ''; } ~ -!!! error TS2741: Property 'f' is missing in type '(x: string) => string' but required in type '{ f: new (x: number) => void; }'. -!!! related TS2728 tests/cases/conformance/types/typeRelationships/assignmentCompatibility/assignmentCompatWithConstructSignatures2.ts:7:10: 'f' is declared here. +!!! error TS2322: Type '(x: string) => string' is not assignable to type '{ f: new (x: number) => void; }'. \ No newline at end of file diff --git a/tests/baselines/reference/assignmentNonObjectTypeConstraints.js b/tests/baselines/reference/assignmentNonObjectTypeConstraints.js index 35d6d7c1ff327..d26ac7802e7c5 100644 --- a/tests/baselines/reference/assignmentNonObjectTypeConstraints.js +++ b/tests/baselines/reference/assignmentNonObjectTypeConstraints.js @@ -24,7 +24,7 @@ function foo(x) { var y = x; // Ok } foo(5); -foo(0 /* A */); +foo(0 /* E.A */); var A = /** @class */ (function () { function A() { } diff --git a/tests/baselines/reference/assignmentToVoidZero1.js b/tests/baselines/reference/assignmentToVoidZero1.js index 542c1fdcf1818..c9bdab8606b83 100644 --- a/tests/baselines/reference/assignmentToVoidZero1.js +++ b/tests/baselines/reference/assignmentToVoidZero1.js @@ -13,5 +13,5 @@ exports.y = 2; //// [assignmentToVoidZero1.d.ts] -export var x: number; -export var y: number; +export const x: 1; +export const y: 2; diff --git a/tests/baselines/reference/assignmentToVoidZero1.types b/tests/baselines/reference/assignmentToVoidZero1.types index 810cdff57aa0c..fd73a19bd66cb 100644 --- a/tests/baselines/reference/assignmentToVoidZero1.types +++ b/tests/baselines/reference/assignmentToVoidZero1.types @@ -2,27 +2,27 @@ // #38552 exports.y = exports.x = void 0; >exports.y = exports.x = void 0 : undefined ->exports.y : number +>exports.y : 2 >exports : typeof import("tests/cases/conformance/salsa/assignmentToVoidZero1") ->y : number +>y : 2 >exports.x = void 0 : undefined ->exports.x : number +>exports.x : 1 >exports : typeof import("tests/cases/conformance/salsa/assignmentToVoidZero1") ->x : number +>x : 1 >void 0 : undefined >0 : 0 exports.x = 1; >exports.x = 1 : 1 ->exports.x : number +>exports.x : 1 >exports : typeof import("tests/cases/conformance/salsa/assignmentToVoidZero1") ->x : number +>x : 1 >1 : 1 exports.y = 2; >exports.y = 2 : 2 ->exports.y : number +>exports.y : 2 >exports : typeof import("tests/cases/conformance/salsa/assignmentToVoidZero1") ->y : number +>y : 2 >2 : 2 diff --git a/tests/baselines/reference/assignmentToVoidZero2.js b/tests/baselines/reference/assignmentToVoidZero2.js index c8b658474d2b8..b4480fe91dae3 100644 --- a/tests/baselines/reference/assignmentToVoidZero2.js +++ b/tests/baselines/reference/assignmentToVoidZero2.js @@ -41,6 +41,6 @@ assignmentToVoidZero2_1.j + assignmentToVoidZero2_1.k; //// [assignmentToVoidZero2.d.ts] -export var j: number; +export const j: 1; //// [importer.d.ts] export {}; diff --git a/tests/baselines/reference/assignmentToVoidZero2.types b/tests/baselines/reference/assignmentToVoidZero2.types index e67f0ce830204..53455e654b2dd 100644 --- a/tests/baselines/reference/assignmentToVoidZero2.types +++ b/tests/baselines/reference/assignmentToVoidZero2.types @@ -1,9 +1,9 @@ === tests/cases/conformance/salsa/assignmentToVoidZero2.js === exports.j = 1; >exports.j = 1 : 1 ->exports.j : number +>exports.j : 1 >exports : typeof import("tests/cases/conformance/salsa/assignmentToVoidZero2") ->j : number +>j : 1 >1 : 1 exports.k = void 0; @@ -76,11 +76,11 @@ c.p + c.q === tests/cases/conformance/salsa/importer.js === import { j, k } from './assignmentToVoidZero2' ->j : number +>j : 1 >k : any j + k >j + k : any ->j : number +>j : 1 >k : any diff --git a/tests/baselines/reference/avoidListingPropertiesForTypesWithOnlyCallOrConstructSignatures.errors.txt b/tests/baselines/reference/avoidListingPropertiesForTypesWithOnlyCallOrConstructSignatures.errors.txt new file mode 100644 index 0000000000000..444fe284b26c7 --- /dev/null +++ b/tests/baselines/reference/avoidListingPropertiesForTypesWithOnlyCallOrConstructSignatures.errors.txt @@ -0,0 +1,15 @@ +tests/cases/compiler/avoidListingPropertiesForTypesWithOnlyCallOrConstructSignatures.ts(7,20): error TS2322: Type '() => Dog' is not assignable to type 'Dog'. + + +==== tests/cases/compiler/avoidListingPropertiesForTypesWithOnlyCallOrConstructSignatures.ts (1 errors) ==== + interface Dog { + barkable: true + } + + declare function getRover(): Dog + + export let x:Dog = getRover; + ~~~~~~~~ +!!! error TS2322: Type '() => Dog' is not assignable to type 'Dog'. +!!! related TS6212 tests/cases/compiler/avoidListingPropertiesForTypesWithOnlyCallOrConstructSignatures.ts:7:20: Did you mean to call this expression? + // export let x: Dog = getRover; \ No newline at end of file diff --git a/tests/baselines/reference/avoidListingPropertiesForTypesWithOnlyCallOrConstructSignatures.js b/tests/baselines/reference/avoidListingPropertiesForTypesWithOnlyCallOrConstructSignatures.js new file mode 100644 index 0000000000000..8607be93b3086 --- /dev/null +++ b/tests/baselines/reference/avoidListingPropertiesForTypesWithOnlyCallOrConstructSignatures.js @@ -0,0 +1,16 @@ +//// [avoidListingPropertiesForTypesWithOnlyCallOrConstructSignatures.ts] +interface Dog { + barkable: true +} + +declare function getRover(): Dog + +export let x:Dog = getRover; +// export let x: Dog = getRover; + +//// [avoidListingPropertiesForTypesWithOnlyCallOrConstructSignatures.js] +"use strict"; +exports.__esModule = true; +exports.x = void 0; +exports.x = getRover; +// export let x: Dog = getRover; diff --git a/tests/baselines/reference/avoidListingPropertiesForTypesWithOnlyCallOrConstructSignatures.symbols b/tests/baselines/reference/avoidListingPropertiesForTypesWithOnlyCallOrConstructSignatures.symbols new file mode 100644 index 0000000000000..2f6116fe78de9 --- /dev/null +++ b/tests/baselines/reference/avoidListingPropertiesForTypesWithOnlyCallOrConstructSignatures.symbols @@ -0,0 +1,18 @@ +=== tests/cases/compiler/avoidListingPropertiesForTypesWithOnlyCallOrConstructSignatures.ts === +interface Dog { +>Dog : Symbol(Dog, Decl(avoidListingPropertiesForTypesWithOnlyCallOrConstructSignatures.ts, 0, 0)) + + barkable: true +>barkable : Symbol(Dog.barkable, Decl(avoidListingPropertiesForTypesWithOnlyCallOrConstructSignatures.ts, 0, 15)) +} + +declare function getRover(): Dog +>getRover : Symbol(getRover, Decl(avoidListingPropertiesForTypesWithOnlyCallOrConstructSignatures.ts, 2, 1)) +>Dog : Symbol(Dog, Decl(avoidListingPropertiesForTypesWithOnlyCallOrConstructSignatures.ts, 0, 0)) + +export let x:Dog = getRover; +>x : Symbol(x, Decl(avoidListingPropertiesForTypesWithOnlyCallOrConstructSignatures.ts, 6, 10)) +>Dog : Symbol(Dog, Decl(avoidListingPropertiesForTypesWithOnlyCallOrConstructSignatures.ts, 0, 0)) +>getRover : Symbol(getRover, Decl(avoidListingPropertiesForTypesWithOnlyCallOrConstructSignatures.ts, 2, 1)) + +// export let x: Dog = getRover; diff --git a/tests/baselines/reference/avoidListingPropertiesForTypesWithOnlyCallOrConstructSignatures.types b/tests/baselines/reference/avoidListingPropertiesForTypesWithOnlyCallOrConstructSignatures.types new file mode 100644 index 0000000000000..c3c7b18a67d82 --- /dev/null +++ b/tests/baselines/reference/avoidListingPropertiesForTypesWithOnlyCallOrConstructSignatures.types @@ -0,0 +1,15 @@ +=== tests/cases/compiler/avoidListingPropertiesForTypesWithOnlyCallOrConstructSignatures.ts === +interface Dog { + barkable: true +>barkable : true +>true : true +} + +declare function getRover(): Dog +>getRover : () => Dog + +export let x:Dog = getRover; +>x : Dog +>getRover : () => Dog + +// export let x: Dog = getRover; diff --git a/tests/baselines/reference/awaitCallExpressionInSyncFunction.errors.txt b/tests/baselines/reference/awaitCallExpressionInSyncFunction.errors.txt new file mode 100644 index 0000000000000..51d7f4d4694a7 --- /dev/null +++ b/tests/baselines/reference/awaitCallExpressionInSyncFunction.errors.txt @@ -0,0 +1,11 @@ +tests/cases/compiler/awaitCallExpressionInSyncFunction.ts(2,16): error TS2311: Cannot find name 'await'. Did you mean to write this in an async function? + + +==== tests/cases/compiler/awaitCallExpressionInSyncFunction.ts (1 errors) ==== + function foo() { + const foo = await(Promise.resolve(1)); + ~~~~~ +!!! error TS2311: Cannot find name 'await'. Did you mean to write this in an async function? + return foo; + } + \ No newline at end of file diff --git a/tests/baselines/reference/awaitCallExpressionInSyncFunction.js b/tests/baselines/reference/awaitCallExpressionInSyncFunction.js new file mode 100644 index 0000000000000..2fef4c398d4e5 --- /dev/null +++ b/tests/baselines/reference/awaitCallExpressionInSyncFunction.js @@ -0,0 +1,12 @@ +//// [awaitCallExpressionInSyncFunction.ts] +function foo() { + const foo = await(Promise.resolve(1)); + return foo; +} + + +//// [awaitCallExpressionInSyncFunction.js] +function foo() { + const foo = await(Promise.resolve(1)); + return foo; +} diff --git a/tests/baselines/reference/awaitCallExpressionInSyncFunction.symbols b/tests/baselines/reference/awaitCallExpressionInSyncFunction.symbols new file mode 100644 index 0000000000000..b41b6c2f67a0b --- /dev/null +++ b/tests/baselines/reference/awaitCallExpressionInSyncFunction.symbols @@ -0,0 +1,14 @@ +=== tests/cases/compiler/awaitCallExpressionInSyncFunction.ts === +function foo() { +>foo : Symbol(foo, Decl(awaitCallExpressionInSyncFunction.ts, 0, 0)) + + const foo = await(Promise.resolve(1)); +>foo : Symbol(foo, Decl(awaitCallExpressionInSyncFunction.ts, 1, 8)) +>Promise.resolve : Symbol(PromiseConstructor.resolve, Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --)) +>Promise : Symbol(Promise, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2018.promise.d.ts, --, --)) +>resolve : Symbol(PromiseConstructor.resolve, Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --)) + + return foo; +>foo : Symbol(foo, Decl(awaitCallExpressionInSyncFunction.ts, 1, 8)) +} + diff --git a/tests/baselines/reference/awaitCallExpressionInSyncFunction.types b/tests/baselines/reference/awaitCallExpressionInSyncFunction.types new file mode 100644 index 0000000000000..d3aeb8a72368f --- /dev/null +++ b/tests/baselines/reference/awaitCallExpressionInSyncFunction.types @@ -0,0 +1,18 @@ +=== tests/cases/compiler/awaitCallExpressionInSyncFunction.ts === +function foo() { +>foo : () => any + + const foo = await(Promise.resolve(1)); +>foo : any +>await(Promise.resolve(1)) : any +>await : any +>Promise.resolve(1) : Promise +>Promise.resolve : { (): Promise; (value: T | PromiseLike): Promise; } +>Promise : PromiseConstructor +>resolve : { (): Promise; (value: T | PromiseLike): Promise; } +>1 : 1 + + return foo; +>foo : any +} + diff --git a/tests/baselines/reference/awaitedType.errors.txt b/tests/baselines/reference/awaitedType.errors.txt index 731e3720f8ed5..f367a1b81bc48 100644 --- a/tests/baselines/reference/awaitedType.errors.txt +++ b/tests/baselines/reference/awaitedType.errors.txt @@ -30,6 +30,9 @@ tests/cases/compiler/awaitedType.ts(22,12): error TS2589: Type instantiation is ~~~~~~~~~~~~~~~~~~~~ !!! error TS2589: Type instantiation is excessively deep and possibly infinite. + // https://github.com/microsoft/TypeScript/issues/46934 + type T18 = Awaited<{ then(cb: (value: number, other: { }) => void)}>; // number + // https://github.com/microsoft/TypeScript/issues/33562 type MaybePromise = T | Promise | PromiseLike declare function MaybePromise(value: T): MaybePromise; diff --git a/tests/baselines/reference/awaitedType.js b/tests/baselines/reference/awaitedType.js index 4c1485c9d0188..70204376de741 100644 --- a/tests/baselines/reference/awaitedType.js +++ b/tests/baselines/reference/awaitedType.js @@ -22,6 +22,9 @@ interface BadPromise1 { then(cb: (value: BadPromise2) => void): void; } interface BadPromise2 { then(cb: (value: BadPromise1) => void): void; } type T17 = Awaited; // error +// https://github.com/microsoft/TypeScript/issues/46934 +type T18 = Awaited<{ then(cb: (value: number, other: { }) => void)}>; // number + // https://github.com/microsoft/TypeScript/issues/33562 type MaybePromise = T | Promise | PromiseLike declare function MaybePromise(value: T): MaybePromise; diff --git a/tests/baselines/reference/awaitedType.symbols b/tests/baselines/reference/awaitedType.symbols index 31e6093852ef0..594afc9fc2e82 100644 --- a/tests/baselines/reference/awaitedType.symbols +++ b/tests/baselines/reference/awaitedType.symbols @@ -60,21 +60,21 @@ type T12 = Awaited>>; type T13 = _Expect> | string | null>, /*expected*/ string | number | null>; // otherwise just prints T13 in types tests, which isn't very helpful >T13 : Symbol(T13, Decl(awaitedType.ts, 11, 45)) ->_Expect : Symbol(_Expect, Decl(awaitedType.ts, 153, 1)) +>_Expect : Symbol(_Expect, Decl(awaitedType.ts, 156, 1)) >Awaited : Symbol(Awaited, Decl(lib.es5.d.ts, --, --)) >Promise : Symbol(Promise, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2018.promise.d.ts, --, --)) >Promise : Symbol(Promise, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2018.promise.d.ts, --, --)) type T14 = _Expect> | string | undefined>, /*expected*/ string | number | undefined>; // otherwise just prints T14 in types tests, which isn't very helpful >T14 : Symbol(T14, Decl(awaitedType.ts, 12, 107)) ->_Expect : Symbol(_Expect, Decl(awaitedType.ts, 153, 1)) +>_Expect : Symbol(_Expect, Decl(awaitedType.ts, 156, 1)) >Awaited : Symbol(Awaited, Decl(lib.es5.d.ts, --, --)) >Promise : Symbol(Promise, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2018.promise.d.ts, --, --)) >Promise : Symbol(Promise, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2018.promise.d.ts, --, --)) type T15 = _Expect> | string | null | undefined>, /*expected*/ string | number | null | undefined>; // otherwise just prints T15 in types tests, which isn't very helpful >T15 : Symbol(T15, Decl(awaitedType.ts, 13, 117)) ->_Expect : Symbol(_Expect, Decl(awaitedType.ts, 153, 1)) +>_Expect : Symbol(_Expect, Decl(awaitedType.ts, 156, 1)) >Awaited : Symbol(Awaited, Decl(lib.es5.d.ts, --, --)) >Promise : Symbol(Promise, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2018.promise.d.ts, --, --)) >Promise : Symbol(Promise, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2018.promise.d.ts, --, --)) @@ -110,39 +110,48 @@ type T17 = Awaited; // error >Awaited : Symbol(Awaited, Decl(lib.es5.d.ts, --, --)) >BadPromise1 : Symbol(BadPromise1, Decl(awaitedType.ts, 17, 31)) +// https://github.com/microsoft/TypeScript/issues/46934 +type T18 = Awaited<{ then(cb: (value: number, other: { }) => void)}>; // number +>T18 : Symbol(T18, Decl(awaitedType.ts, 21, 32)) +>Awaited : Symbol(Awaited, Decl(lib.es5.d.ts, --, --)) +>then : Symbol(then, Decl(awaitedType.ts, 24, 20)) +>cb : Symbol(cb, Decl(awaitedType.ts, 24, 26)) +>value : Symbol(value, Decl(awaitedType.ts, 24, 31)) +>other : Symbol(other, Decl(awaitedType.ts, 24, 45)) + // https://github.com/microsoft/TypeScript/issues/33562 type MaybePromise = T | Promise | PromiseLike ->MaybePromise : Symbol(MaybePromise, Decl(awaitedType.ts, 24, 54), Decl(awaitedType.ts, 21, 32)) ->T : Symbol(T, Decl(awaitedType.ts, 24, 18)) ->T : Symbol(T, Decl(awaitedType.ts, 24, 18)) +>MaybePromise : Symbol(MaybePromise, Decl(awaitedType.ts, 27, 54), Decl(awaitedType.ts, 24, 69)) +>T : Symbol(T, Decl(awaitedType.ts, 27, 18)) +>T : Symbol(T, Decl(awaitedType.ts, 27, 18)) >Promise : Symbol(Promise, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2018.promise.d.ts, --, --)) ->T : Symbol(T, Decl(awaitedType.ts, 24, 18)) +>T : Symbol(T, Decl(awaitedType.ts, 27, 18)) >PromiseLike : Symbol(PromiseLike, Decl(lib.es5.d.ts, --, --)) ->T : Symbol(T, Decl(awaitedType.ts, 24, 18)) +>T : Symbol(T, Decl(awaitedType.ts, 27, 18)) declare function MaybePromise(value: T): MaybePromise; ->MaybePromise : Symbol(MaybePromise, Decl(awaitedType.ts, 24, 54), Decl(awaitedType.ts, 21, 32)) ->T : Symbol(T, Decl(awaitedType.ts, 25, 30)) ->value : Symbol(value, Decl(awaitedType.ts, 25, 33)) ->T : Symbol(T, Decl(awaitedType.ts, 25, 30)) ->MaybePromise : Symbol(MaybePromise, Decl(awaitedType.ts, 24, 54), Decl(awaitedType.ts, 21, 32)) ->T : Symbol(T, Decl(awaitedType.ts, 25, 30)) +>MaybePromise : Symbol(MaybePromise, Decl(awaitedType.ts, 27, 54), Decl(awaitedType.ts, 24, 69)) +>T : Symbol(T, Decl(awaitedType.ts, 28, 30)) +>value : Symbol(value, Decl(awaitedType.ts, 28, 33)) +>T : Symbol(T, Decl(awaitedType.ts, 28, 30)) +>MaybePromise : Symbol(MaybePromise, Decl(awaitedType.ts, 27, 54), Decl(awaitedType.ts, 24, 69)) +>T : Symbol(T, Decl(awaitedType.ts, 28, 30)) async function main() { ->main : Symbol(main, Decl(awaitedType.ts, 25, 60)) +>main : Symbol(main, Decl(awaitedType.ts, 28, 60)) let aaa: number; ->aaa : Symbol(aaa, Decl(awaitedType.ts, 28, 7)) +>aaa : Symbol(aaa, Decl(awaitedType.ts, 31, 7)) let bbb: string; ->bbb : Symbol(bbb, Decl(awaitedType.ts, 29, 7)) +>bbb : Symbol(bbb, Decl(awaitedType.ts, 32, 7)) [ aaa, ->aaa : Symbol(aaa, Decl(awaitedType.ts, 28, 7)) +>aaa : Symbol(aaa, Decl(awaitedType.ts, 31, 7)) bbb, ->bbb : Symbol(bbb, Decl(awaitedType.ts, 29, 7)) +>bbb : Symbol(bbb, Decl(awaitedType.ts, 32, 7)) ] = await Promise.all([ >Promise.all : Symbol(PromiseConstructor.all, Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --)) @@ -150,88 +159,88 @@ async function main() { >all : Symbol(PromiseConstructor.all, Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --)) MaybePromise(1), ->MaybePromise : Symbol(MaybePromise, Decl(awaitedType.ts, 24, 54), Decl(awaitedType.ts, 21, 32)) +>MaybePromise : Symbol(MaybePromise, Decl(awaitedType.ts, 27, 54), Decl(awaitedType.ts, 24, 69)) MaybePromise('2'), ->MaybePromise : Symbol(MaybePromise, Decl(awaitedType.ts, 24, 54), Decl(awaitedType.ts, 21, 32)) +>MaybePromise : Symbol(MaybePromise, Decl(awaitedType.ts, 27, 54), Decl(awaitedType.ts, 24, 69)) MaybePromise(true), ->MaybePromise : Symbol(MaybePromise, Decl(awaitedType.ts, 24, 54), Decl(awaitedType.ts, 21, 32)) +>MaybePromise : Symbol(MaybePromise, Decl(awaitedType.ts, 27, 54), Decl(awaitedType.ts, 24, 69)) ]) } // non-generic async function f1(x: string) { ->f1 : Symbol(f1, Decl(awaitedType.ts, 38, 1)) ->x : Symbol(x, Decl(awaitedType.ts, 41, 18)) +>f1 : Symbol(f1, Decl(awaitedType.ts, 41, 1)) +>x : Symbol(x, Decl(awaitedType.ts, 44, 18)) // y: string const y = await x; ->y : Symbol(y, Decl(awaitedType.ts, 43, 9)) ->x : Symbol(x, Decl(awaitedType.ts, 41, 18)) +>y : Symbol(y, Decl(awaitedType.ts, 46, 9)) +>x : Symbol(x, Decl(awaitedType.ts, 44, 18)) } async function f2(x: unknown) { ->f2 : Symbol(f2, Decl(awaitedType.ts, 44, 1)) ->x : Symbol(x, Decl(awaitedType.ts, 46, 18)) +>f2 : Symbol(f2, Decl(awaitedType.ts, 47, 1)) +>x : Symbol(x, Decl(awaitedType.ts, 49, 18)) // y: unknown const y = await x; ->y : Symbol(y, Decl(awaitedType.ts, 48, 9)) ->x : Symbol(x, Decl(awaitedType.ts, 46, 18)) +>y : Symbol(y, Decl(awaitedType.ts, 51, 9)) +>x : Symbol(x, Decl(awaitedType.ts, 49, 18)) } async function f3(x: object) { ->f3 : Symbol(f3, Decl(awaitedType.ts, 49, 1)) ->x : Symbol(x, Decl(awaitedType.ts, 51, 18)) +>f3 : Symbol(f3, Decl(awaitedType.ts, 52, 1)) +>x : Symbol(x, Decl(awaitedType.ts, 54, 18)) // y: object const y = await x; ->y : Symbol(y, Decl(awaitedType.ts, 53, 9)) ->x : Symbol(x, Decl(awaitedType.ts, 51, 18)) +>y : Symbol(y, Decl(awaitedType.ts, 56, 9)) +>x : Symbol(x, Decl(awaitedType.ts, 54, 18)) } async function f4(x: Promise) { ->f4 : Symbol(f4, Decl(awaitedType.ts, 54, 1)) ->x : Symbol(x, Decl(awaitedType.ts, 56, 18)) +>f4 : Symbol(f4, Decl(awaitedType.ts, 57, 1)) +>x : Symbol(x, Decl(awaitedType.ts, 59, 18)) >Promise : Symbol(Promise, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2018.promise.d.ts, --, --)) // y: string const y = await x; ->y : Symbol(y, Decl(awaitedType.ts, 58, 9)) ->x : Symbol(x, Decl(awaitedType.ts, 56, 18)) +>y : Symbol(y, Decl(awaitedType.ts, 61, 9)) +>x : Symbol(x, Decl(awaitedType.ts, 59, 18)) } async function f5(x: Promise) { ->f5 : Symbol(f5, Decl(awaitedType.ts, 59, 1)) ->x : Symbol(x, Decl(awaitedType.ts, 61, 18)) +>f5 : Symbol(f5, Decl(awaitedType.ts, 62, 1)) +>x : Symbol(x, Decl(awaitedType.ts, 64, 18)) >Promise : Symbol(Promise, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2018.promise.d.ts, --, --)) // y: unknown const y = await x; ->y : Symbol(y, Decl(awaitedType.ts, 63, 9)) ->x : Symbol(x, Decl(awaitedType.ts, 61, 18)) +>y : Symbol(y, Decl(awaitedType.ts, 66, 9)) +>x : Symbol(x, Decl(awaitedType.ts, 64, 18)) } async function f6(x: Promise) { ->f6 : Symbol(f6, Decl(awaitedType.ts, 64, 1)) ->x : Symbol(x, Decl(awaitedType.ts, 66, 18)) +>f6 : Symbol(f6, Decl(awaitedType.ts, 67, 1)) +>x : Symbol(x, Decl(awaitedType.ts, 69, 18)) >Promise : Symbol(Promise, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2018.promise.d.ts, --, --)) // y: object const y = await x; ->y : Symbol(y, Decl(awaitedType.ts, 68, 9)) ->x : Symbol(x, Decl(awaitedType.ts, 66, 18)) +>y : Symbol(y, Decl(awaitedType.ts, 71, 9)) +>x : Symbol(x, Decl(awaitedType.ts, 69, 18)) } // generic async function f7(x: T) { ->f7 : Symbol(f7, Decl(awaitedType.ts, 69, 1)) ->T : Symbol(T, Decl(awaitedType.ts, 73, 18)) ->x : Symbol(x, Decl(awaitedType.ts, 73, 21)) ->T : Symbol(T, Decl(awaitedType.ts, 73, 18)) +>f7 : Symbol(f7, Decl(awaitedType.ts, 72, 1)) +>T : Symbol(T, Decl(awaitedType.ts, 76, 18)) +>x : Symbol(x, Decl(awaitedType.ts, 76, 21)) +>T : Symbol(T, Decl(awaitedType.ts, 76, 18)) // NOTE: T does not belong solely to the domain of primitive types and either does // not have a base constraint, its base constraint is `any`, `unknown`, `{}`, or `object`, @@ -239,15 +248,15 @@ async function f7(x: T) { // y: Awaited const y = await x; ->y : Symbol(y, Decl(awaitedType.ts, 79, 9)) ->x : Symbol(x, Decl(awaitedType.ts, 73, 21)) +>y : Symbol(y, Decl(awaitedType.ts, 82, 9)) +>x : Symbol(x, Decl(awaitedType.ts, 76, 21)) } async function f8(x: T) { ->f8 : Symbol(f8, Decl(awaitedType.ts, 80, 1)) ->T : Symbol(T, Decl(awaitedType.ts, 82, 18)) ->x : Symbol(x, Decl(awaitedType.ts, 82, 33)) ->T : Symbol(T, Decl(awaitedType.ts, 82, 18)) +>f8 : Symbol(f8, Decl(awaitedType.ts, 83, 1)) +>T : Symbol(T, Decl(awaitedType.ts, 85, 18)) +>x : Symbol(x, Decl(awaitedType.ts, 85, 33)) +>T : Symbol(T, Decl(awaitedType.ts, 85, 18)) // NOTE: T does not belong solely to the domain of primitive types and either does // not have a base constraint, its base constraint is `any`, `unknown`, `{}`, or `object`, @@ -255,15 +264,15 @@ async function f8(x: T) { // y: Awaited const y = await x; ->y : Symbol(y, Decl(awaitedType.ts, 88, 9)) ->x : Symbol(x, Decl(awaitedType.ts, 82, 33)) +>y : Symbol(y, Decl(awaitedType.ts, 91, 9)) +>x : Symbol(x, Decl(awaitedType.ts, 85, 33)) } async function f9(x: T) { ->f9 : Symbol(f9, Decl(awaitedType.ts, 89, 1)) ->T : Symbol(T, Decl(awaitedType.ts, 91, 18)) ->x : Symbol(x, Decl(awaitedType.ts, 91, 37)) ->T : Symbol(T, Decl(awaitedType.ts, 91, 18)) +>f9 : Symbol(f9, Decl(awaitedType.ts, 92, 1)) +>T : Symbol(T, Decl(awaitedType.ts, 94, 18)) +>x : Symbol(x, Decl(awaitedType.ts, 94, 37)) +>T : Symbol(T, Decl(awaitedType.ts, 94, 18)) // NOTE: T does not belong solely to the domain of primitive types and either does // not have a base constraint, its base constraint is `any`, `unknown`, `{}`, or `object`, @@ -271,15 +280,15 @@ async function f9(x: T) { // y: Awaited const y = await x; ->y : Symbol(y, Decl(awaitedType.ts, 97, 9)) ->x : Symbol(x, Decl(awaitedType.ts, 91, 37)) +>y : Symbol(y, Decl(awaitedType.ts, 100, 9)) +>x : Symbol(x, Decl(awaitedType.ts, 94, 37)) } async function f10(x: T) { ->f10 : Symbol(f10, Decl(awaitedType.ts, 98, 1)) ->T : Symbol(T, Decl(awaitedType.ts, 100, 19)) ->x : Symbol(x, Decl(awaitedType.ts, 100, 33)) ->T : Symbol(T, Decl(awaitedType.ts, 100, 19)) +>f10 : Symbol(f10, Decl(awaitedType.ts, 101, 1)) +>T : Symbol(T, Decl(awaitedType.ts, 103, 19)) +>x : Symbol(x, Decl(awaitedType.ts, 103, 33)) +>T : Symbol(T, Decl(awaitedType.ts, 103, 19)) // NOTE: T does not belong solely to the domain of primitive types and either does // not have a base constraint, its base constraint is `any`, `unknown`, `{}`, or `object`, @@ -287,18 +296,18 @@ async function f10(x: T) { // y: Awaited const y = await x; ->y : Symbol(y, Decl(awaitedType.ts, 106, 9)) ->x : Symbol(x, Decl(awaitedType.ts, 100, 33)) +>y : Symbol(y, Decl(awaitedType.ts, 109, 9)) +>x : Symbol(x, Decl(awaitedType.ts, 103, 33)) } async function f11 void): void }>(x: T) { ->f11 : Symbol(f11, Decl(awaitedType.ts, 107, 1)) ->T : Symbol(T, Decl(awaitedType.ts, 109, 19)) ->then : Symbol(then, Decl(awaitedType.ts, 109, 30)) ->onfulfilled : Symbol(onfulfilled, Decl(awaitedType.ts, 109, 36)) ->value : Symbol(value, Decl(awaitedType.ts, 109, 50)) ->x : Symbol(x, Decl(awaitedType.ts, 109, 84)) ->T : Symbol(T, Decl(awaitedType.ts, 109, 19)) +>f11 : Symbol(f11, Decl(awaitedType.ts, 110, 1)) +>T : Symbol(T, Decl(awaitedType.ts, 112, 19)) +>then : Symbol(then, Decl(awaitedType.ts, 112, 30)) +>onfulfilled : Symbol(onfulfilled, Decl(awaitedType.ts, 112, 36)) +>value : Symbol(value, Decl(awaitedType.ts, 112, 50)) +>x : Symbol(x, Decl(awaitedType.ts, 112, 84)) +>T : Symbol(T, Decl(awaitedType.ts, 112, 19)) // NOTE: T does not belong solely to the domain of primitive types and either does // not have a base constraint, its base constraint is `any`, `unknown`, `{}`, or `object`, @@ -306,15 +315,15 @@ async function f11 void): void // y: Awaited const y = await x; ->y : Symbol(y, Decl(awaitedType.ts, 115, 9)) ->x : Symbol(x, Decl(awaitedType.ts, 109, 84)) +>y : Symbol(y, Decl(awaitedType.ts, 118, 9)) +>x : Symbol(x, Decl(awaitedType.ts, 112, 84)) } async function f12(x: T) { ->f12 : Symbol(f12, Decl(awaitedType.ts, 116, 1)) ->T : Symbol(T, Decl(awaitedType.ts, 118, 19)) ->x : Symbol(x, Decl(awaitedType.ts, 118, 46)) ->T : Symbol(T, Decl(awaitedType.ts, 118, 19)) +>f12 : Symbol(f12, Decl(awaitedType.ts, 119, 1)) +>T : Symbol(T, Decl(awaitedType.ts, 121, 19)) +>x : Symbol(x, Decl(awaitedType.ts, 121, 46)) +>T : Symbol(T, Decl(awaitedType.ts, 121, 19)) // NOTE: T does not belong solely to the domain of primitive types and either does // not have a base constraint, its base constraint is `any`, `unknown`, `{}`, or `object`, @@ -322,75 +331,75 @@ async function f12(x: T) { // y: Awaited const y = await x; ->y : Symbol(y, Decl(awaitedType.ts, 124, 9)) ->x : Symbol(x, Decl(awaitedType.ts, 118, 46)) +>y : Symbol(y, Decl(awaitedType.ts, 127, 9)) +>x : Symbol(x, Decl(awaitedType.ts, 121, 46)) } async function f13(x: T) { ->f13 : Symbol(f13, Decl(awaitedType.ts, 125, 1)) ->T : Symbol(T, Decl(awaitedType.ts, 127, 19)) ->x : Symbol(x, Decl(awaitedType.ts, 127, 37)) ->T : Symbol(T, Decl(awaitedType.ts, 127, 19)) +>f13 : Symbol(f13, Decl(awaitedType.ts, 128, 1)) +>T : Symbol(T, Decl(awaitedType.ts, 130, 19)) +>x : Symbol(x, Decl(awaitedType.ts, 130, 37)) +>T : Symbol(T, Decl(awaitedType.ts, 130, 19)) // NOTE: T belongs to the domain of primitive types // y: T const y = await x; ->y : Symbol(y, Decl(awaitedType.ts, 131, 9)) ->x : Symbol(x, Decl(awaitedType.ts, 127, 37)) +>y : Symbol(y, Decl(awaitedType.ts, 134, 9)) +>x : Symbol(x, Decl(awaitedType.ts, 130, 37)) } async function f14(x: T) { ->f14 : Symbol(f14, Decl(awaitedType.ts, 132, 1)) ->T : Symbol(T, Decl(awaitedType.ts, 134, 19)) ->x : Symbol(x, Decl(awaitedType.ts, 134, 30)) ->x : Symbol(x, Decl(awaitedType.ts, 134, 44)) ->T : Symbol(T, Decl(awaitedType.ts, 134, 19)) +>f14 : Symbol(f14, Decl(awaitedType.ts, 135, 1)) +>T : Symbol(T, Decl(awaitedType.ts, 137, 19)) +>x : Symbol(x, Decl(awaitedType.ts, 137, 30)) +>x : Symbol(x, Decl(awaitedType.ts, 137, 44)) +>T : Symbol(T, Decl(awaitedType.ts, 137, 19)) // NOTE: T has a non-primitive base constraint without a callable `then`. // y: T const y = await x; ->y : Symbol(y, Decl(awaitedType.ts, 138, 9)) ->x : Symbol(x, Decl(awaitedType.ts, 134, 44)) +>y : Symbol(y, Decl(awaitedType.ts, 141, 9)) +>x : Symbol(x, Decl(awaitedType.ts, 137, 44)) } async function f15(x: T) { ->f15 : Symbol(f15, Decl(awaitedType.ts, 139, 1)) ->T : Symbol(T, Decl(awaitedType.ts, 141, 19)) ->then : Symbol(then, Decl(awaitedType.ts, 141, 30)) ->x : Symbol(x, Decl(awaitedType.ts, 141, 47)) ->T : Symbol(T, Decl(awaitedType.ts, 141, 19)) +>f15 : Symbol(f15, Decl(awaitedType.ts, 142, 1)) +>T : Symbol(T, Decl(awaitedType.ts, 144, 19)) +>then : Symbol(then, Decl(awaitedType.ts, 144, 30)) +>x : Symbol(x, Decl(awaitedType.ts, 144, 47)) +>T : Symbol(T, Decl(awaitedType.ts, 144, 19)) // NOTE: T has a non-primitive base constraint without a callable `then`. // y: T const y = await x; ->y : Symbol(y, Decl(awaitedType.ts, 145, 9)) ->x : Symbol(x, Decl(awaitedType.ts, 141, 47)) +>y : Symbol(y, Decl(awaitedType.ts, 148, 9)) +>x : Symbol(x, Decl(awaitedType.ts, 144, 47)) } async function f16(x: T) { ->f16 : Symbol(f16, Decl(awaitedType.ts, 146, 1)) ->T : Symbol(T, Decl(awaitedType.ts, 148, 19)) ->then : Symbol(then, Decl(awaitedType.ts, 148, 39)) ->x : Symbol(x, Decl(awaitedType.ts, 148, 56)) ->T : Symbol(T, Decl(awaitedType.ts, 148, 19)) +>f16 : Symbol(f16, Decl(awaitedType.ts, 149, 1)) +>T : Symbol(T, Decl(awaitedType.ts, 151, 19)) +>then : Symbol(then, Decl(awaitedType.ts, 151, 39)) +>x : Symbol(x, Decl(awaitedType.ts, 151, 56)) +>T : Symbol(T, Decl(awaitedType.ts, 151, 19)) // NOTE: T belongs to the domain of primitive types (regardless of `then`) // y: T const y = await x; ->y : Symbol(y, Decl(awaitedType.ts, 152, 9)) ->x : Symbol(x, Decl(awaitedType.ts, 148, 56)) +>y : Symbol(y, Decl(awaitedType.ts, 155, 9)) +>x : Symbol(x, Decl(awaitedType.ts, 151, 56)) } // helps with tests where '.types' just prints out the type alias name type _Expect = TActual; ->_Expect : Symbol(_Expect, Decl(awaitedType.ts, 153, 1)) ->TActual : Symbol(TActual, Decl(awaitedType.ts, 157, 13)) ->TExpected : Symbol(TExpected, Decl(awaitedType.ts, 157, 39)) ->TExpected : Symbol(TExpected, Decl(awaitedType.ts, 157, 39)) ->TActual : Symbol(TActual, Decl(awaitedType.ts, 157, 13)) +>_Expect : Symbol(_Expect, Decl(awaitedType.ts, 156, 1)) +>TActual : Symbol(TActual, Decl(awaitedType.ts, 160, 13)) +>TExpected : Symbol(TExpected, Decl(awaitedType.ts, 160, 39)) +>TExpected : Symbol(TExpected, Decl(awaitedType.ts, 160, 39)) +>TActual : Symbol(TActual, Decl(awaitedType.ts, 160, 13)) diff --git a/tests/baselines/reference/awaitedType.types b/tests/baselines/reference/awaitedType.types index 86d8402812dba..9bca225ef3de3 100644 --- a/tests/baselines/reference/awaitedType.types +++ b/tests/baselines/reference/awaitedType.types @@ -75,6 +75,14 @@ interface BadPromise2 { then(cb: (value: BadPromise1) => void): void; } type T17 = Awaited; // error >T17 : any +// https://github.com/microsoft/TypeScript/issues/46934 +type T18 = Awaited<{ then(cb: (value: number, other: { }) => void)}>; // number +>T18 : number +>then : (cb: (value: number, other: {}) => void) => any +>cb : (value: number, other: {}) => void +>value : number +>other : {} + // https://github.com/microsoft/TypeScript/issues/33562 type MaybePromise = T | Promise | PromiseLike >MaybePromise : MaybePromise @@ -105,9 +113,9 @@ async function main() { ] = await Promise.all([ >await Promise.all([ MaybePromise(1), MaybePromise('2'), MaybePromise(true), ]) : [number, string, boolean] >Promise.all([ MaybePromise(1), MaybePromise('2'), MaybePromise(true), ]) : Promise<[number, string, boolean]> ->Promise.all : { (values: Iterable>): Promise[]>; (values: T): Promise<{ -readonly [P in keyof T]: Awaited; }>; } +>Promise.all : { (values: Iterable>): Promise[]>; (values: T): Promise<{ -readonly [P in keyof T]: Awaited; }>; } >Promise : PromiseConstructor ->all : { (values: Iterable>): Promise[]>; (values: T): Promise<{ -readonly [P in keyof T]: Awaited; }>; } +>all : { (values: Iterable>): Promise[]>; (values: T): Promise<{ -readonly [P in keyof T]: Awaited; }>; } >[ MaybePromise(1), MaybePromise('2'), MaybePromise(true), ] : [number | Promise<1> | PromiseLike<1>, string | Promise<"2"> | PromiseLike<"2">, MaybePromise] MaybePromise(1), diff --git a/tests/baselines/reference/awaitedTypeStrictNull.errors.txt b/tests/baselines/reference/awaitedTypeStrictNull.errors.txt index ac8f375f4f02e..7a658af146350 100644 --- a/tests/baselines/reference/awaitedTypeStrictNull.errors.txt +++ b/tests/baselines/reference/awaitedTypeStrictNull.errors.txt @@ -30,6 +30,9 @@ tests/cases/compiler/awaitedTypeStrictNull.ts(22,12): error TS2589: Type instant ~~~~~~~~~~~~~~~~~~~~ !!! error TS2589: Type instantiation is excessively deep and possibly infinite. + // https://github.com/microsoft/TypeScript/issues/46934 + type T18 = Awaited<{ then(cb: (value: number, other: { }) => void)}>; // number + // https://github.com/microsoft/TypeScript/issues/33562 type MaybePromise = T | Promise | PromiseLike declare function MaybePromise(value: T): MaybePromise; diff --git a/tests/baselines/reference/awaitedTypeStrictNull.js b/tests/baselines/reference/awaitedTypeStrictNull.js index a4d69c5ebeb32..e53ce7ea31d73 100644 --- a/tests/baselines/reference/awaitedTypeStrictNull.js +++ b/tests/baselines/reference/awaitedTypeStrictNull.js @@ -22,6 +22,9 @@ interface BadPromise1 { then(cb: (value: BadPromise2) => void): void; } interface BadPromise2 { then(cb: (value: BadPromise1) => void): void; } type T17 = Awaited; // error +// https://github.com/microsoft/TypeScript/issues/46934 +type T18 = Awaited<{ then(cb: (value: number, other: { }) => void)}>; // number + // https://github.com/microsoft/TypeScript/issues/33562 type MaybePromise = T | Promise | PromiseLike declare function MaybePromise(value: T): MaybePromise; diff --git a/tests/baselines/reference/awaitedTypeStrictNull.symbols b/tests/baselines/reference/awaitedTypeStrictNull.symbols index ab59248aeaae2..8c8225dc122d4 100644 --- a/tests/baselines/reference/awaitedTypeStrictNull.symbols +++ b/tests/baselines/reference/awaitedTypeStrictNull.symbols @@ -60,21 +60,21 @@ type T12 = Awaited>>; type T13 = _Expect> | string | null>, /*expected*/ string | number | null>; // otherwise just prints T13 in types tests, which isn't very helpful >T13 : Symbol(T13, Decl(awaitedTypeStrictNull.ts, 11, 45)) ->_Expect : Symbol(_Expect, Decl(awaitedTypeStrictNull.ts, 54, 1)) +>_Expect : Symbol(_Expect, Decl(awaitedTypeStrictNull.ts, 57, 1)) >Awaited : Symbol(Awaited, Decl(lib.es5.d.ts, --, --)) >Promise : Symbol(Promise, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2018.promise.d.ts, --, --)) >Promise : Symbol(Promise, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2018.promise.d.ts, --, --)) type T14 = _Expect> | string | undefined>, /*expected*/ string | number | undefined>; // otherwise just prints T14 in types tests, which isn't very helpful >T14 : Symbol(T14, Decl(awaitedTypeStrictNull.ts, 12, 107)) ->_Expect : Symbol(_Expect, Decl(awaitedTypeStrictNull.ts, 54, 1)) +>_Expect : Symbol(_Expect, Decl(awaitedTypeStrictNull.ts, 57, 1)) >Awaited : Symbol(Awaited, Decl(lib.es5.d.ts, --, --)) >Promise : Symbol(Promise, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2018.promise.d.ts, --, --)) >Promise : Symbol(Promise, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2018.promise.d.ts, --, --)) type T15 = _Expect> | string | null | undefined>, /*expected*/ string | number | null | undefined>; // otherwise just prints T15 in types tests, which isn't very helpful >T15 : Symbol(T15, Decl(awaitedTypeStrictNull.ts, 13, 117)) ->_Expect : Symbol(_Expect, Decl(awaitedTypeStrictNull.ts, 54, 1)) +>_Expect : Symbol(_Expect, Decl(awaitedTypeStrictNull.ts, 57, 1)) >Awaited : Symbol(Awaited, Decl(lib.es5.d.ts, --, --)) >Promise : Symbol(Promise, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2018.promise.d.ts, --, --)) >Promise : Symbol(Promise, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2018.promise.d.ts, --, --)) @@ -110,39 +110,48 @@ type T17 = Awaited; // error >Awaited : Symbol(Awaited, Decl(lib.es5.d.ts, --, --)) >BadPromise1 : Symbol(BadPromise1, Decl(awaitedTypeStrictNull.ts, 17, 31)) +// https://github.com/microsoft/TypeScript/issues/46934 +type T18 = Awaited<{ then(cb: (value: number, other: { }) => void)}>; // number +>T18 : Symbol(T18, Decl(awaitedTypeStrictNull.ts, 21, 32)) +>Awaited : Symbol(Awaited, Decl(lib.es5.d.ts, --, --)) +>then : Symbol(then, Decl(awaitedTypeStrictNull.ts, 24, 20)) +>cb : Symbol(cb, Decl(awaitedTypeStrictNull.ts, 24, 26)) +>value : Symbol(value, Decl(awaitedTypeStrictNull.ts, 24, 31)) +>other : Symbol(other, Decl(awaitedTypeStrictNull.ts, 24, 45)) + // https://github.com/microsoft/TypeScript/issues/33562 type MaybePromise = T | Promise | PromiseLike ->MaybePromise : Symbol(MaybePromise, Decl(awaitedTypeStrictNull.ts, 24, 54), Decl(awaitedTypeStrictNull.ts, 21, 32)) ->T : Symbol(T, Decl(awaitedTypeStrictNull.ts, 24, 18)) ->T : Symbol(T, Decl(awaitedTypeStrictNull.ts, 24, 18)) +>MaybePromise : Symbol(MaybePromise, Decl(awaitedTypeStrictNull.ts, 27, 54), Decl(awaitedTypeStrictNull.ts, 24, 69)) +>T : Symbol(T, Decl(awaitedTypeStrictNull.ts, 27, 18)) +>T : Symbol(T, Decl(awaitedTypeStrictNull.ts, 27, 18)) >Promise : Symbol(Promise, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2018.promise.d.ts, --, --)) ->T : Symbol(T, Decl(awaitedTypeStrictNull.ts, 24, 18)) +>T : Symbol(T, Decl(awaitedTypeStrictNull.ts, 27, 18)) >PromiseLike : Symbol(PromiseLike, Decl(lib.es5.d.ts, --, --)) ->T : Symbol(T, Decl(awaitedTypeStrictNull.ts, 24, 18)) +>T : Symbol(T, Decl(awaitedTypeStrictNull.ts, 27, 18)) declare function MaybePromise(value: T): MaybePromise; ->MaybePromise : Symbol(MaybePromise, Decl(awaitedTypeStrictNull.ts, 24, 54), Decl(awaitedTypeStrictNull.ts, 21, 32)) ->T : Symbol(T, Decl(awaitedTypeStrictNull.ts, 25, 30)) ->value : Symbol(value, Decl(awaitedTypeStrictNull.ts, 25, 33)) ->T : Symbol(T, Decl(awaitedTypeStrictNull.ts, 25, 30)) ->MaybePromise : Symbol(MaybePromise, Decl(awaitedTypeStrictNull.ts, 24, 54), Decl(awaitedTypeStrictNull.ts, 21, 32)) ->T : Symbol(T, Decl(awaitedTypeStrictNull.ts, 25, 30)) +>MaybePromise : Symbol(MaybePromise, Decl(awaitedTypeStrictNull.ts, 27, 54), Decl(awaitedTypeStrictNull.ts, 24, 69)) +>T : Symbol(T, Decl(awaitedTypeStrictNull.ts, 28, 30)) +>value : Symbol(value, Decl(awaitedTypeStrictNull.ts, 28, 33)) +>T : Symbol(T, Decl(awaitedTypeStrictNull.ts, 28, 30)) +>MaybePromise : Symbol(MaybePromise, Decl(awaitedTypeStrictNull.ts, 27, 54), Decl(awaitedTypeStrictNull.ts, 24, 69)) +>T : Symbol(T, Decl(awaitedTypeStrictNull.ts, 28, 30)) async function main() { ->main : Symbol(main, Decl(awaitedTypeStrictNull.ts, 25, 60)) +>main : Symbol(main, Decl(awaitedTypeStrictNull.ts, 28, 60)) let aaa: number; ->aaa : Symbol(aaa, Decl(awaitedTypeStrictNull.ts, 28, 7)) +>aaa : Symbol(aaa, Decl(awaitedTypeStrictNull.ts, 31, 7)) let bbb: string; ->bbb : Symbol(bbb, Decl(awaitedTypeStrictNull.ts, 29, 7)) +>bbb : Symbol(bbb, Decl(awaitedTypeStrictNull.ts, 32, 7)) [ aaa, ->aaa : Symbol(aaa, Decl(awaitedTypeStrictNull.ts, 28, 7)) +>aaa : Symbol(aaa, Decl(awaitedTypeStrictNull.ts, 31, 7)) bbb, ->bbb : Symbol(bbb, Decl(awaitedTypeStrictNull.ts, 29, 7)) +>bbb : Symbol(bbb, Decl(awaitedTypeStrictNull.ts, 32, 7)) ] = await Promise.all([ >Promise.all : Symbol(PromiseConstructor.all, Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --)) @@ -150,71 +159,71 @@ async function main() { >all : Symbol(PromiseConstructor.all, Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --)) MaybePromise(1), ->MaybePromise : Symbol(MaybePromise, Decl(awaitedTypeStrictNull.ts, 24, 54), Decl(awaitedTypeStrictNull.ts, 21, 32)) +>MaybePromise : Symbol(MaybePromise, Decl(awaitedTypeStrictNull.ts, 27, 54), Decl(awaitedTypeStrictNull.ts, 24, 69)) MaybePromise('2'), ->MaybePromise : Symbol(MaybePromise, Decl(awaitedTypeStrictNull.ts, 24, 54), Decl(awaitedTypeStrictNull.ts, 21, 32)) +>MaybePromise : Symbol(MaybePromise, Decl(awaitedTypeStrictNull.ts, 27, 54), Decl(awaitedTypeStrictNull.ts, 24, 69)) MaybePromise(true), ->MaybePromise : Symbol(MaybePromise, Decl(awaitedTypeStrictNull.ts, 24, 54), Decl(awaitedTypeStrictNull.ts, 21, 32)) +>MaybePromise : Symbol(MaybePromise, Decl(awaitedTypeStrictNull.ts, 27, 54), Decl(awaitedTypeStrictNull.ts, 24, 69)) ]) } // https://github.com/microsoft/TypeScript/issues/45924 class Api { ->Api : Symbol(Api, Decl(awaitedTypeStrictNull.ts, 38, 1)) ->D : Symbol(D, Decl(awaitedTypeStrictNull.ts, 41, 10)) +>Api : Symbol(Api, Decl(awaitedTypeStrictNull.ts, 41, 1)) +>D : Symbol(D, Decl(awaitedTypeStrictNull.ts, 44, 10)) // Should result in `Promise` instead of `Promise>`. async post() { return this.request(); } ->post : Symbol(Api.post, Decl(awaitedTypeStrictNull.ts, 41, 19)) ->T : Symbol(T, Decl(awaitedTypeStrictNull.ts, 43, 12)) ->D : Symbol(D, Decl(awaitedTypeStrictNull.ts, 41, 10)) ->this.request : Symbol(Api.request, Decl(awaitedTypeStrictNull.ts, 43, 50)) ->this : Symbol(Api, Decl(awaitedTypeStrictNull.ts, 38, 1)) ->request : Symbol(Api.request, Decl(awaitedTypeStrictNull.ts, 43, 50)) ->T : Symbol(T, Decl(awaitedTypeStrictNull.ts, 43, 12)) +>post : Symbol(Api.post, Decl(awaitedTypeStrictNull.ts, 44, 19)) +>T : Symbol(T, Decl(awaitedTypeStrictNull.ts, 46, 12)) +>D : Symbol(D, Decl(awaitedTypeStrictNull.ts, 44, 10)) +>this.request : Symbol(Api.request, Decl(awaitedTypeStrictNull.ts, 46, 50)) +>this : Symbol(Api, Decl(awaitedTypeStrictNull.ts, 41, 1)) +>request : Symbol(Api.request, Decl(awaitedTypeStrictNull.ts, 46, 50)) +>T : Symbol(T, Decl(awaitedTypeStrictNull.ts, 46, 12)) async request(): Promise { throw new Error(); } ->request : Symbol(Api.request, Decl(awaitedTypeStrictNull.ts, 43, 50)) ->D : Symbol(D, Decl(awaitedTypeStrictNull.ts, 44, 15)) +>request : Symbol(Api.request, Decl(awaitedTypeStrictNull.ts, 46, 50)) +>D : Symbol(D, Decl(awaitedTypeStrictNull.ts, 47, 15)) >Promise : Symbol(Promise, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2018.promise.d.ts, --, --)) ->D : Symbol(D, Decl(awaitedTypeStrictNull.ts, 44, 15)) ->Error : Symbol(Error, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>D : Symbol(D, Decl(awaitedTypeStrictNull.ts, 47, 15)) +>Error : Symbol(Error, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2022.error.d.ts, --, --)) } declare const api: Api; ->api : Symbol(api, Decl(awaitedTypeStrictNull.ts, 47, 13)) ->Api : Symbol(Api, Decl(awaitedTypeStrictNull.ts, 38, 1)) +>api : Symbol(api, Decl(awaitedTypeStrictNull.ts, 50, 13)) +>Api : Symbol(Api, Decl(awaitedTypeStrictNull.ts, 41, 1)) interface Obj { x: number } ->Obj : Symbol(Obj, Decl(awaitedTypeStrictNull.ts, 47, 23)) ->x : Symbol(Obj.x, Decl(awaitedTypeStrictNull.ts, 48, 15)) +>Obj : Symbol(Obj, Decl(awaitedTypeStrictNull.ts, 50, 23)) +>x : Symbol(Obj.x, Decl(awaitedTypeStrictNull.ts, 51, 15)) async function fn(): Promise { ->fn : Symbol(fn, Decl(awaitedTypeStrictNull.ts, 48, 27)) ->T : Symbol(T, Decl(awaitedTypeStrictNull.ts, 50, 18)) +>fn : Symbol(fn, Decl(awaitedTypeStrictNull.ts, 51, 27)) +>T : Symbol(T, Decl(awaitedTypeStrictNull.ts, 53, 18)) >Promise : Symbol(Promise, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2018.promise.d.ts, --, --)) ->T : Symbol(T, Decl(awaitedTypeStrictNull.ts, 50, 18)) ->K : Symbol(K, Decl(awaitedTypeStrictNull.ts, 50, 54)) ->T : Symbol(T, Decl(awaitedTypeStrictNull.ts, 50, 18)) ->Obj : Symbol(Obj, Decl(awaitedTypeStrictNull.ts, 47, 23)) ->Obj : Symbol(Obj, Decl(awaitedTypeStrictNull.ts, 47, 23)) +>T : Symbol(T, Decl(awaitedTypeStrictNull.ts, 53, 18)) +>K : Symbol(K, Decl(awaitedTypeStrictNull.ts, 53, 54)) +>T : Symbol(T, Decl(awaitedTypeStrictNull.ts, 53, 18)) +>Obj : Symbol(Obj, Decl(awaitedTypeStrictNull.ts, 50, 23)) +>Obj : Symbol(Obj, Decl(awaitedTypeStrictNull.ts, 50, 23)) // Per #45924, this was failing due to incorrect inference both above and here. // Should not error. return api.post(); ->api.post : Symbol(Api.post, Decl(awaitedTypeStrictNull.ts, 41, 19)) ->api : Symbol(api, Decl(awaitedTypeStrictNull.ts, 47, 13)) ->post : Symbol(Api.post, Decl(awaitedTypeStrictNull.ts, 41, 19)) +>api.post : Symbol(Api.post, Decl(awaitedTypeStrictNull.ts, 44, 19)) +>api : Symbol(api, Decl(awaitedTypeStrictNull.ts, 50, 13)) +>post : Symbol(Api.post, Decl(awaitedTypeStrictNull.ts, 44, 19)) } // helps with tests where '.types' just prints out the type alias name type _Expect = TActual; ->_Expect : Symbol(_Expect, Decl(awaitedTypeStrictNull.ts, 54, 1)) ->TActual : Symbol(TActual, Decl(awaitedTypeStrictNull.ts, 57, 13)) ->TExpected : Symbol(TExpected, Decl(awaitedTypeStrictNull.ts, 57, 39)) ->TExpected : Symbol(TExpected, Decl(awaitedTypeStrictNull.ts, 57, 39)) ->TActual : Symbol(TActual, Decl(awaitedTypeStrictNull.ts, 57, 13)) +>_Expect : Symbol(_Expect, Decl(awaitedTypeStrictNull.ts, 57, 1)) +>TActual : Symbol(TActual, Decl(awaitedTypeStrictNull.ts, 60, 13)) +>TExpected : Symbol(TExpected, Decl(awaitedTypeStrictNull.ts, 60, 39)) +>TExpected : Symbol(TExpected, Decl(awaitedTypeStrictNull.ts, 60, 39)) +>TActual : Symbol(TActual, Decl(awaitedTypeStrictNull.ts, 60, 13)) diff --git a/tests/baselines/reference/awaitedTypeStrictNull.types b/tests/baselines/reference/awaitedTypeStrictNull.types index f5824eb476eab..574161fa592e4 100644 --- a/tests/baselines/reference/awaitedTypeStrictNull.types +++ b/tests/baselines/reference/awaitedTypeStrictNull.types @@ -75,6 +75,14 @@ interface BadPromise2 { then(cb: (value: BadPromise1) => void): void; } type T17 = Awaited; // error >T17 : any +// https://github.com/microsoft/TypeScript/issues/46934 +type T18 = Awaited<{ then(cb: (value: number, other: { }) => void)}>; // number +>T18 : number +>then : (cb: (value: number, other: {}) => void) => any +>cb : (value: number, other: {}) => void +>value : number +>other : {} + // https://github.com/microsoft/TypeScript/issues/33562 type MaybePromise = T | Promise | PromiseLike >MaybePromise : MaybePromise @@ -105,9 +113,9 @@ async function main() { ] = await Promise.all([ >await Promise.all([ MaybePromise(1), MaybePromise('2'), MaybePromise(true), ]) : [number, string, boolean] >Promise.all([ MaybePromise(1), MaybePromise('2'), MaybePromise(true), ]) : Promise<[number, string, boolean]> ->Promise.all : { (values: Iterable>): Promise[]>; (values: T): Promise<{ -readonly [P in keyof T]: Awaited; }>; } +>Promise.all : { (values: Iterable>): Promise[]>; (values: T): Promise<{ -readonly [P in keyof T]: Awaited; }>; } >Promise : PromiseConstructor ->all : { (values: Iterable>): Promise[]>; (values: T): Promise<{ -readonly [P in keyof T]: Awaited; }>; } +>all : { (values: Iterable>): Promise[]>; (values: T): Promise<{ -readonly [P in keyof T]: Awaited; }>; } >[ MaybePromise(1), MaybePromise('2'), MaybePromise(true), ] : [number | Promise<1> | PromiseLike<1>, string | Promise<"2"> | PromiseLike<"2">, MaybePromise] MaybePromise(1), diff --git a/tests/baselines/reference/baseCheck.errors.txt b/tests/baselines/reference/baseCheck.errors.txt index 16bdd632b502f..e390418633082 100644 --- a/tests/baselines/reference/baseCheck.errors.txt +++ b/tests/baselines/reference/baseCheck.errors.txt @@ -1,4 +1,4 @@ -tests/cases/compiler/baseCheck.ts(9,18): error TS2552: Cannot find name 'loc'. Did you mean 'ELoc'? +tests/cases/compiler/baseCheck.ts(9,18): error TS2552: Cannot find name 'loc'. Did you mean 'Lock'? tests/cases/compiler/baseCheck.ts(17,53): error TS2554: Expected 2 arguments, but got 1. tests/cases/compiler/baseCheck.ts(17,59): error TS17009: 'super' must be called before accessing 'this' in the constructor of a derived class. tests/cases/compiler/baseCheck.ts(18,62): error TS17009: 'super' must be called before accessing 'this' in the constructor of a derived class. @@ -20,8 +20,8 @@ tests/cases/compiler/baseCheck.ts(26,9): error TS2304: Cannot find name 'x'. constructor(x: number) { super(0, loc); ~~~ -!!! error TS2552: Cannot find name 'loc'. Did you mean 'ELoc'? -!!! related TS2728 tests/cases/compiler/baseCheck.ts:2:7: 'ELoc' is declared here. +!!! error TS2552: Cannot find name 'loc'. Did you mean 'Lock'? +!!! related TS2728 /.ts/lib.dom.d.ts:8963:13: 'Lock' is declared here. } m() { diff --git a/tests/baselines/reference/bigintWithLib.errors.txt b/tests/baselines/reference/bigintWithLib.errors.txt index 006847c4824b1..bfc87bff5d8dd 100644 --- a/tests/baselines/reference/bigintWithLib.errors.txt +++ b/tests/baselines/reference/bigintWithLib.errors.txt @@ -20,7 +20,6 @@ tests/cases/compiler/bigintWithLib.ts(31,35): error TS2769: No overload matches Argument of type 'number[]' is not assignable to parameter of type 'Iterable'. Overload 3 of 3, '(buffer: ArrayBufferLike, byteOffset?: number, length?: number): BigUint64Array', gave the following error. Argument of type 'number[]' is not assignable to parameter of type 'ArrayBufferLike'. - Type 'number[]' is not assignable to type 'SharedArrayBuffer'. tests/cases/compiler/bigintWithLib.ts(36,13): error TS2540: Cannot assign to 'length' because it is a read-only property. tests/cases/compiler/bigintWithLib.ts(43,25): error TS2345: Argument of type 'number' is not assignable to parameter of type 'bigint'. tests/cases/compiler/bigintWithLib.ts(46,26): error TS2345: Argument of type 'number' is not assignable to parameter of type 'bigint'. @@ -84,7 +83,6 @@ tests/cases/compiler/bigintWithLib.ts(46,26): error TS2345: Argument of type 'nu !!! error TS2769: Argument of type 'number[]' is not assignable to parameter of type 'Iterable'. !!! error TS2769: Overload 3 of 3, '(buffer: ArrayBufferLike, byteOffset?: number, length?: number): BigUint64Array', gave the following error. !!! error TS2769: Argument of type 'number[]' is not assignable to parameter of type 'ArrayBufferLike'. -!!! error TS2769: Type 'number[]' is not assignable to type 'SharedArrayBuffer'. bigUintArray = new BigUint64Array(new ArrayBuffer(80)); bigUintArray = new BigUint64Array(new ArrayBuffer(80), 8); bigUintArray = new BigUint64Array(new ArrayBuffer(80), 8, 3); diff --git a/tests/baselines/reference/bigintWithLib.types b/tests/baselines/reference/bigintWithLib.types index 802aa7c0b5500..6e4376a0e24a2 100644 --- a/tests/baselines/reference/bigintWithLib.types +++ b/tests/baselines/reference/bigintWithLib.types @@ -66,26 +66,26 @@ stringVal = bigintVal.toLocaleString(); >stringVal = bigintVal.toLocaleString() : string >stringVal : string >bigintVal.toLocaleString() : string ->bigintVal.toLocaleString : (locales?: string, options?: BigIntToLocaleStringOptions) => string +>bigintVal.toLocaleString : (locales?: Intl.LocalesArgument, options?: BigIntToLocaleStringOptions) => string >bigintVal : bigint ->toLocaleString : (locales?: string, options?: BigIntToLocaleStringOptions) => string +>toLocaleString : (locales?: Intl.LocalesArgument, options?: BigIntToLocaleStringOptions) => string stringVal = bigintVal.toLocaleString('de-DE'); >stringVal = bigintVal.toLocaleString('de-DE') : string >stringVal : string >bigintVal.toLocaleString('de-DE') : string ->bigintVal.toLocaleString : (locales?: string, options?: BigIntToLocaleStringOptions) => string +>bigintVal.toLocaleString : (locales?: Intl.LocalesArgument, options?: BigIntToLocaleStringOptions) => string >bigintVal : bigint ->toLocaleString : (locales?: string, options?: BigIntToLocaleStringOptions) => string +>toLocaleString : (locales?: Intl.LocalesArgument, options?: BigIntToLocaleStringOptions) => string >'de-DE' : "de-DE" stringVal = bigintVal.toLocaleString('de-DE', { style: 'currency' }); >stringVal = bigintVal.toLocaleString('de-DE', { style: 'currency' }) : string >stringVal : string >bigintVal.toLocaleString('de-DE', { style: 'currency' }) : string ->bigintVal.toLocaleString : (locales?: string, options?: BigIntToLocaleStringOptions) => string +>bigintVal.toLocaleString : (locales?: Intl.LocalesArgument, options?: BigIntToLocaleStringOptions) => string >bigintVal : bigint ->toLocaleString : (locales?: string, options?: BigIntToLocaleStringOptions) => string +>toLocaleString : (locales?: Intl.LocalesArgument, options?: BigIntToLocaleStringOptions) => string >'de-DE' : "de-DE" >{ style: 'currency' } : { style: string; } >style : string @@ -95,9 +95,9 @@ stringVal = bigintVal.toLocaleString('de-DE', { style: 'currency', currency: 'EU >stringVal = bigintVal.toLocaleString('de-DE', { style: 'currency', currency: 'EUR' }) : string >stringVal : string >bigintVal.toLocaleString('de-DE', { style: 'currency', currency: 'EUR' }) : string ->bigintVal.toLocaleString : (locales?: string, options?: BigIntToLocaleStringOptions) => string +>bigintVal.toLocaleString : (locales?: Intl.LocalesArgument, options?: BigIntToLocaleStringOptions) => string >bigintVal : bigint ->toLocaleString : (locales?: string, options?: BigIntToLocaleStringOptions) => string +>toLocaleString : (locales?: Intl.LocalesArgument, options?: BigIntToLocaleStringOptions) => string >'de-DE' : "de-DE" >{ style: 'currency', currency: 'EUR' } : { style: string; currency: string; } >style : string @@ -390,9 +390,9 @@ new Intl.NumberFormat("fr").format(3000n); >new Intl.NumberFormat("fr").format(3000n) : string >new Intl.NumberFormat("fr").format : { (value: number): string; (value: number | bigint): string; } >new Intl.NumberFormat("fr") : Intl.NumberFormat ->Intl.NumberFormat : { (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; new (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; supportedLocalesOf(locales: string | string[], options?: Intl.NumberFormatOptions): string[]; } +>Intl.NumberFormat : { (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; new (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; supportedLocalesOf(locales: string | string[], options?: Intl.NumberFormatOptions): string[]; readonly prototype: Intl.NumberFormat; } >Intl : typeof Intl ->NumberFormat : { (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; new (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; supportedLocalesOf(locales: string | string[], options?: Intl.NumberFormatOptions): string[]; } +>NumberFormat : { (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; new (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; supportedLocalesOf(locales: string | string[], options?: Intl.NumberFormatOptions): string[]; readonly prototype: Intl.NumberFormat; } >"fr" : "fr" >format : { (value: number): string; (value: number | bigint): string; } >3000n : 3000n @@ -401,9 +401,9 @@ new Intl.NumberFormat("fr").format(bigintVal); >new Intl.NumberFormat("fr").format(bigintVal) : string >new Intl.NumberFormat("fr").format : { (value: number): string; (value: number | bigint): string; } >new Intl.NumberFormat("fr") : Intl.NumberFormat ->Intl.NumberFormat : { (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; new (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; supportedLocalesOf(locales: string | string[], options?: Intl.NumberFormatOptions): string[]; } +>Intl.NumberFormat : { (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; new (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; supportedLocalesOf(locales: string | string[], options?: Intl.NumberFormatOptions): string[]; readonly prototype: Intl.NumberFormat; } >Intl : typeof Intl ->NumberFormat : { (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; new (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; supportedLocalesOf(locales: string | string[], options?: Intl.NumberFormatOptions): string[]; } +>NumberFormat : { (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; new (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; supportedLocalesOf(locales: string | string[], options?: Intl.NumberFormatOptions): string[]; readonly prototype: Intl.NumberFormat; } >"fr" : "fr" >format : { (value: number): string; (value: number | bigint): string; } >bigintVal : bigint diff --git a/tests/baselines/reference/bigintWithoutLib.types b/tests/baselines/reference/bigintWithoutLib.types index d10dc725b598a..f0e50102edef3 100644 --- a/tests/baselines/reference/bigintWithoutLib.types +++ b/tests/baselines/reference/bigintWithoutLib.types @@ -374,9 +374,9 @@ new Intl.NumberFormat("fr").format(3000n); >new Intl.NumberFormat("fr").format(3000n) : string >new Intl.NumberFormat("fr").format : (value: number) => string >new Intl.NumberFormat("fr") : Intl.NumberFormat ->Intl.NumberFormat : { (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; new (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; supportedLocalesOf(locales: string | string[], options?: Intl.NumberFormatOptions): string[]; } +>Intl.NumberFormat : { (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; new (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; supportedLocalesOf(locales: string | string[], options?: Intl.NumberFormatOptions): string[]; readonly prototype: Intl.NumberFormat; } >Intl : typeof Intl ->NumberFormat : { (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; new (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; supportedLocalesOf(locales: string | string[], options?: Intl.NumberFormatOptions): string[]; } +>NumberFormat : { (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; new (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; supportedLocalesOf(locales: string | string[], options?: Intl.NumberFormatOptions): string[]; readonly prototype: Intl.NumberFormat; } >"fr" : "fr" >format : (value: number) => string >3000n : 3000n @@ -385,9 +385,9 @@ new Intl.NumberFormat("fr").format(bigintVal); >new Intl.NumberFormat("fr").format(bigintVal) : string >new Intl.NumberFormat("fr").format : (value: number) => string >new Intl.NumberFormat("fr") : Intl.NumberFormat ->Intl.NumberFormat : { (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; new (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; supportedLocalesOf(locales: string | string[], options?: Intl.NumberFormatOptions): string[]; } +>Intl.NumberFormat : { (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; new (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; supportedLocalesOf(locales: string | string[], options?: Intl.NumberFormatOptions): string[]; readonly prototype: Intl.NumberFormat; } >Intl : typeof Intl ->NumberFormat : { (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; new (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; supportedLocalesOf(locales: string | string[], options?: Intl.NumberFormatOptions): string[]; } +>NumberFormat : { (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; new (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; supportedLocalesOf(locales: string | string[], options?: Intl.NumberFormatOptions): string[]; readonly prototype: Intl.NumberFormat; } >"fr" : "fr" >format : (value: number) => string >bigintVal : bigint diff --git a/tests/baselines/reference/blockScopedEnumVariablesUseBeforeDef.js b/tests/baselines/reference/blockScopedEnumVariablesUseBeforeDef.js index 552d099b07cf1..f436b05456575 100644 --- a/tests/baselines/reference/blockScopedEnumVariablesUseBeforeDef.js +++ b/tests/baselines/reference/blockScopedEnumVariablesUseBeforeDef.js @@ -18,5 +18,5 @@ function foo1() { })(E || (E = {})); } function foo2() { - return 0 /* A */; + return 0 /* E.A */; } diff --git a/tests/baselines/reference/blockScopedEnumVariablesUseBeforeDef_preserve.js b/tests/baselines/reference/blockScopedEnumVariablesUseBeforeDef_preserve.js index 239a87f00426f..f9ef662699d5b 100644 --- a/tests/baselines/reference/blockScopedEnumVariablesUseBeforeDef_preserve.js +++ b/tests/baselines/reference/blockScopedEnumVariablesUseBeforeDef_preserve.js @@ -18,7 +18,7 @@ function foo1() { })(E || (E = {})); } function foo2() { - return 0 /* A */; + return 0 /* E.A */; var E; (function (E) { E[E["A"] = 0] = "A"; diff --git a/tests/baselines/reference/blockScopedVariablesUseBeforeDef.errors.txt b/tests/baselines/reference/blockScopedVariablesUseBeforeDef.errors.txt index 91bd5dde00cb6..9dacd0975bd53 100644 --- a/tests/baselines/reference/blockScopedVariablesUseBeforeDef.errors.txt +++ b/tests/baselines/reference/blockScopedVariablesUseBeforeDef.errors.txt @@ -2,9 +2,12 @@ tests/cases/compiler/blockScopedVariablesUseBeforeDef.ts(2,13): error TS2448: Bl tests/cases/compiler/blockScopedVariablesUseBeforeDef.ts(58,20): error TS2448: Block-scoped variable 'x' used before its declaration. tests/cases/compiler/blockScopedVariablesUseBeforeDef.ts(65,20): error TS2448: Block-scoped variable 'x' used before its declaration. tests/cases/compiler/blockScopedVariablesUseBeforeDef.ts(100,12): error TS2448: Block-scoped variable 'x' used before its declaration. +tests/cases/compiler/blockScopedVariablesUseBeforeDef.ts(111,28): error TS2448: Block-scoped variable 'a' used before its declaration. +tests/cases/compiler/blockScopedVariablesUseBeforeDef.ts(112,21): error TS2448: Block-scoped variable 'a' used before its declaration. +tests/cases/compiler/blockScopedVariablesUseBeforeDef.ts(122,22): error TS2448: Block-scoped variable 'a' used before its declaration. -==== tests/cases/compiler/blockScopedVariablesUseBeforeDef.ts (4 errors) ==== +==== tests/cases/compiler/blockScopedVariablesUseBeforeDef.ts (7 errors) ==== function foo0() { let a = x; ~ @@ -120,4 +123,33 @@ tests/cases/compiler/blockScopedVariablesUseBeforeDef.ts(100,12): error TS2448: } let x } + + function foo15() { + // https://github.com/microsoft/TypeScript/issues/42678 + const [ + a, + b, + ] = ((): [number, number] => { + (() => console.log(a))(); // should error + ~ +!!! error TS2448: Block-scoped variable 'a' used before its declaration. +!!! related TS2728 tests/cases/compiler/blockScopedVariablesUseBeforeDef.ts:108:9: 'a' is declared here. + console.log(a); // should error + ~ +!!! error TS2448: Block-scoped variable 'a' used before its declaration. +!!! related TS2728 tests/cases/compiler/blockScopedVariablesUseBeforeDef.ts:108:9: 'a' is declared here. + const b = () => a; // should be ok + return [ + 0, + 0, + ]; + })(); + } + + function foo16() { + let [a] = (() => a)(); + ~ +!!! error TS2448: Block-scoped variable 'a' used before its declaration. +!!! related TS2728 tests/cases/compiler/blockScopedVariablesUseBeforeDef.ts:122:10: 'a' is declared here. + } \ No newline at end of file diff --git a/tests/baselines/reference/blockScopedVariablesUseBeforeDef.js b/tests/baselines/reference/blockScopedVariablesUseBeforeDef.js index 9ca3f8998a2eb..b49ce9ddaa4b2 100644 --- a/tests/baselines/reference/blockScopedVariablesUseBeforeDef.js +++ b/tests/baselines/reference/blockScopedVariablesUseBeforeDef.js @@ -102,6 +102,26 @@ function foo14() { } let x } + +function foo15() { + // https://github.com/microsoft/TypeScript/issues/42678 + const [ + a, + b, + ] = ((): [number, number] => { + (() => console.log(a))(); // should error + console.log(a); // should error + const b = () => a; // should be ok + return [ + 0, + 0, + ]; + })(); +} + +function foo16() { + let [a] = (() => a)(); +} //// [blockScopedVariablesUseBeforeDef.js] @@ -219,3 +239,18 @@ function foo14() { }; var x; } +function foo15() { + // https://github.com/microsoft/TypeScript/issues/42678 + var _a = (function () { + (function () { return console.log(a); })(); // should error + console.log(a); // should error + var b = function () { return a; }; // should be ok + return [ + 0, + 0, + ]; + })(), a = _a[0], b = _a[1]; +} +function foo16() { + var a = (function () { return a; })()[0]; +} diff --git a/tests/baselines/reference/blockScopedVariablesUseBeforeDef.symbols b/tests/baselines/reference/blockScopedVariablesUseBeforeDef.symbols index 83cb91db1d0cd..ea588cd22fa19 100644 --- a/tests/baselines/reference/blockScopedVariablesUseBeforeDef.symbols +++ b/tests/baselines/reference/blockScopedVariablesUseBeforeDef.symbols @@ -213,3 +213,46 @@ function foo14() { >x : Symbol(x, Decl(blockScopedVariablesUseBeforeDef.ts, 101, 7)) } +function foo15() { +>foo15 : Symbol(foo15, Decl(blockScopedVariablesUseBeforeDef.ts, 102, 1)) + + // https://github.com/microsoft/TypeScript/issues/42678 + const [ + a, +>a : Symbol(a, Decl(blockScopedVariablesUseBeforeDef.ts, 106, 11)) + + b, +>b : Symbol(b, Decl(blockScopedVariablesUseBeforeDef.ts, 107, 10)) + + ] = ((): [number, number] => { + (() => console.log(a))(); // should error +>console.log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>console : Symbol(console, Decl(lib.dom.d.ts, --, --)) +>log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>a : Symbol(a, Decl(blockScopedVariablesUseBeforeDef.ts, 106, 11)) + + console.log(a); // should error +>console.log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>console : Symbol(console, Decl(lib.dom.d.ts, --, --)) +>log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>a : Symbol(a, Decl(blockScopedVariablesUseBeforeDef.ts, 106, 11)) + + const b = () => a; // should be ok +>b : Symbol(b, Decl(blockScopedVariablesUseBeforeDef.ts, 112, 13)) +>a : Symbol(a, Decl(blockScopedVariablesUseBeforeDef.ts, 106, 11)) + + return [ + 0, + 0, + ]; + })(); +} + +function foo16() { +>foo16 : Symbol(foo16, Decl(blockScopedVariablesUseBeforeDef.ts, 118, 1)) + + let [a] = (() => a)(); +>a : Symbol(a, Decl(blockScopedVariablesUseBeforeDef.ts, 121, 9)) +>a : Symbol(a, Decl(blockScopedVariablesUseBeforeDef.ts, 121, 9)) +} + diff --git a/tests/baselines/reference/blockScopedVariablesUseBeforeDef.types b/tests/baselines/reference/blockScopedVariablesUseBeforeDef.types index 3098b8c0f91e0..e24197911cf04 100644 --- a/tests/baselines/reference/blockScopedVariablesUseBeforeDef.types +++ b/tests/baselines/reference/blockScopedVariablesUseBeforeDef.types @@ -225,3 +225,65 @@ function foo14() { >x : any } +function foo15() { +>foo15 : () => void + + // https://github.com/microsoft/TypeScript/issues/42678 + const [ + a, +>a : number + + b, +>b : number + + ] = ((): [number, number] => { +>((): [number, number] => { (() => console.log(a))(); // should error console.log(a); // should error const b = () => a; // should be ok return [ 0, 0, ]; })() : [number, number] +>((): [number, number] => { (() => console.log(a))(); // should error console.log(a); // should error const b = () => a; // should be ok return [ 0, 0, ]; }) : () => [number, number] +>(): [number, number] => { (() => console.log(a))(); // should error console.log(a); // should error const b = () => a; // should be ok return [ 0, 0, ]; } : () => [number, number] + + (() => console.log(a))(); // should error +>(() => console.log(a))() : void +>(() => console.log(a)) : () => void +>() => console.log(a) : () => void +>console.log(a) : void +>console.log : (...data: any[]) => void +>console : Console +>log : (...data: any[]) => void +>a : number + + console.log(a); // should error +>console.log(a) : void +>console.log : (...data: any[]) => void +>console : Console +>log : (...data: any[]) => void +>a : number + + const b = () => a; // should be ok +>b : () => number +>() => a : () => number +>a : number + + return [ +>[ 0, 0, ] : [number, number] + + 0, +>0 : 0 + + 0, +>0 : 0 + + ]; + })(); +} + +function foo16() { +>foo16 : () => void + + let [a] = (() => a)(); +>a : any +>(() => a)() : any +>(() => a) : () => any +>() => a : () => any +>a : any +} + diff --git a/tests/baselines/reference/callChainWithSuper(target=es2022).js b/tests/baselines/reference/callChainWithSuper(target=es2022).js new file mode 100644 index 0000000000000..30e1ad3886dc5 --- /dev/null +++ b/tests/baselines/reference/callChainWithSuper(target=es2022).js @@ -0,0 +1,18 @@ +//// [callChainWithSuper.ts] +// GH#34952 +class Base { method?() {} } +class Derived extends Base { + method1() { return super.method?.(); } + method2() { return super["method"]?.(); } +} + +//// [callChainWithSuper.js] +"use strict"; +// GH#34952 +class Base { + method() { } +} +class Derived extends Base { + method1() { return super.method?.(); } + method2() { return super["method"]?.(); } +} diff --git a/tests/baselines/reference/callWithSpread4.symbols b/tests/baselines/reference/callWithSpread4.symbols index dbb7576582895..428f41b17c340 100644 --- a/tests/baselines/reference/callWithSpread4.symbols +++ b/tests/baselines/reference/callWithSpread4.symbols @@ -30,7 +30,7 @@ declare const pli: { (streams: ReadonlyArray): Promise; >streams : Symbol(streams, Decl(callWithSpread4.ts, 5, 5)) ->ReadonlyArray : Symbol(ReadonlyArray, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --), Decl(lib.es2019.array.d.ts, --, --)) +>ReadonlyArray : Symbol(ReadonlyArray, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --), Decl(lib.es2019.array.d.ts, --, --) ... and 1 more) >R : Symbol(R, Decl(callWithSpread4.ts, 0, 0)) >W : Symbol(W, Decl(callWithSpread4.ts, 0, 22)) >RW : Symbol(RW, Decl(callWithSpread4.ts, 1, 22)) @@ -43,7 +43,7 @@ declare const pli: { >RW : Symbol(RW, Decl(callWithSpread4.ts, 1, 22)) >W : Symbol(W, Decl(callWithSpread4.ts, 0, 22)) >streams : Symbol(streams, Decl(callWithSpread4.ts, 6, 23)) ->Array : Symbol(Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --) ... and 2 more) +>Array : Symbol(Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --) ... and 3 more) >RW : Symbol(RW, Decl(callWithSpread4.ts, 1, 22)) >W : Symbol(W, Decl(callWithSpread4.ts, 0, 22)) >Promise : Symbol(Promise, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2018.promise.d.ts, --, --)) diff --git a/tests/baselines/reference/capturedLetConstInLoop1.js b/tests/baselines/reference/capturedLetConstInLoop1.js index 7acaf851cc214..61d853491f4d4 100644 --- a/tests/baselines/reference/capturedLetConstInLoop1.js +++ b/tests/baselines/reference/capturedLetConstInLoop1.js @@ -231,11 +231,13 @@ var _loop_11 = function (y) { else inc_1 = true; if (!(use(function () { return y; }), y < 1)) - return "break"; + return out_y_2 = y, "break"; + out_y_2 = y; }; -var inc_1 = false; +var out_y_2, inc_1 = false; for (var y = 0;;) { var state_1 = _loop_11(y); + y = out_y_2; if (state_1 === "break") break; } @@ -244,14 +246,16 @@ var _loop_12 = function (y) { use(function () { return y; }), ++y; else inc_2 = true; + out_y_3 = y; }; -var inc_2 = false; +var out_y_3, inc_2 = false; for (var y = 0; y < 1;) { _loop_12(y); + y = out_y_3; } var _loop_init_2 = function () { var y = (use(function () { return y; }), 0); - out_y_2 = y; + out_y_4 = y; }; var _loop_13 = function (y) { if (inc_3) @@ -259,13 +263,15 @@ var _loop_13 = function (y) { else inc_3 = true; if (!(use(function () { return y; }), y < 1)) - return out_y_2 = y, "break"; + return out_y_4 = y, "break"; use(function () { return y; }); + out_y_4 = y; }; -var out_y_2, inc_3 = false; +var out_y_4, inc_3 = false; _loop_init_2(); -for (var y = out_y_2;;) { +for (var y = out_y_4;;) { var state_2 = _loop_13(y); + y = out_y_4; if (state_2 === "break") break; } diff --git a/tests/baselines/reference/checkJsdocParamOnVariableDeclaredFunctionExpression.errors.txt b/tests/baselines/reference/checkJsdocParamOnVariableDeclaredFunctionExpression.errors.txt new file mode 100644 index 0000000000000..f3ea79ea97cfa --- /dev/null +++ b/tests/baselines/reference/checkJsdocParamOnVariableDeclaredFunctionExpression.errors.txt @@ -0,0 +1,23 @@ +tests/cases/conformance/jsdoc/0.js(14,20): error TS8024: JSDoc '@param' tag has name 's', but there is no parameter with that name. + + +==== tests/cases/conformance/jsdoc/0.js (1 errors) ==== + // @ts-check + /** + * @param {number=} n + * @param {string} [s] + */ + var x = function foo(n, s) {} + var y; + /** + * @param {boolean!} b + */ + y = function bar(b) {} + + /** + * @param {string} s + ~ +!!! error TS8024: JSDoc '@param' tag has name 's', but there is no parameter with that name. + */ + var one = function (s) { }, two = function (untyped) { }; + \ No newline at end of file diff --git a/tests/baselines/reference/checkJsdocTypeTag6.errors.txt b/tests/baselines/reference/checkJsdocTypeTag6.errors.txt index 7a7915c0f618c..1106e60da7502 100644 --- a/tests/baselines/reference/checkJsdocTypeTag6.errors.txt +++ b/tests/baselines/reference/checkJsdocTypeTag6.errors.txt @@ -1,5 +1,5 @@ tests/cases/conformance/jsdoc/test.js(1,12): error TS8030: The type of a function declaration must match the function's signature. -tests/cases/conformance/jsdoc/test.js(7,5): error TS2741: Property 'prop' is missing in type '(prop: any) => void' but required in type '{ prop: string; }'. +tests/cases/conformance/jsdoc/test.js(7,5): error TS2322: Type '(prop: any) => void' is not assignable to type '{ prop: string; }'. tests/cases/conformance/jsdoc/test.js(10,12): error TS8030: The type of a function declaration must match the function's signature. @@ -14,8 +14,7 @@ tests/cases/conformance/jsdoc/test.js(10,12): error TS8030: The type of a functi /** @type {{ prop: string }} */ var g = function (prop) { ~ -!!! error TS2741: Property 'prop' is missing in type '(prop: any) => void' but required in type '{ prop: string; }'. -!!! related TS2728 tests/cases/conformance/jsdoc/test.js:6:14: 'prop' is declared here. +!!! error TS2322: Type '(prop: any) => void' is not assignable to type '{ prop: string; }'. } /** @type {(a: number) => number} */ diff --git a/tests/baselines/reference/checkJsdocTypeTag7.symbols b/tests/baselines/reference/checkJsdocTypeTag7.symbols new file mode 100644 index 0000000000000..7013bb921a5a9 --- /dev/null +++ b/tests/baselines/reference/checkJsdocTypeTag7.symbols @@ -0,0 +1,15 @@ +=== tests/cases/conformance/jsdoc/test.js === +/** + * @typedef {(a: string, b: number) => void} Foo + */ + +class C { +>C : Symbol(C, Decl(test.js, 0, 0)) + + /** @type {Foo} */ + foo(a, b) {} +>foo : Symbol(C.foo, Decl(test.js, 4, 9)) +>a : Symbol(a, Decl(test.js, 6, 8)) +>b : Symbol(b, Decl(test.js, 6, 10)) +} + diff --git a/tests/baselines/reference/checkJsdocTypeTag7.types b/tests/baselines/reference/checkJsdocTypeTag7.types new file mode 100644 index 0000000000000..f4aac580feefa --- /dev/null +++ b/tests/baselines/reference/checkJsdocTypeTag7.types @@ -0,0 +1,15 @@ +=== tests/cases/conformance/jsdoc/test.js === +/** + * @typedef {(a: string, b: number) => void} Foo + */ + +class C { +>C : C + + /** @type {Foo} */ + foo(a, b) {} +>foo : (a: string, b: number) => void +>a : string +>b : number +} + diff --git a/tests/baselines/reference/checkJsdocTypeTagOnExportAssignment8.js b/tests/baselines/reference/checkJsdocTypeTagOnExportAssignment8.js new file mode 100644 index 0000000000000..9aa3e5d915be0 --- /dev/null +++ b/tests/baselines/reference/checkJsdocTypeTagOnExportAssignment8.js @@ -0,0 +1,32 @@ +//// [tests/cases/compiler/checkJsdocTypeTagOnExportAssignment8.ts] //// + +//// [checkJsdocTypeTagOnExportAssignment8.js] + +//// [a.js] +/** + * @typedef Foo + * @property {string} a + * @property {'b'} b + */ + +/** @type {Foo} */ +export default { + a: 'a', + b: 'b' +} + + +//// [checkJsdocTypeTagOnExportAssignment8.js] +//// [a.js] +"use strict"; +/** + * @typedef Foo + * @property {string} a + * @property {'b'} b + */ +exports.__esModule = true; +/** @type {Foo} */ +exports["default"] = { + a: 'a', + b: 'b' +}; diff --git a/tests/baselines/reference/checkJsdocTypeTagOnExportAssignment8.symbols b/tests/baselines/reference/checkJsdocTypeTagOnExportAssignment8.symbols new file mode 100644 index 0000000000000..be50e619090af --- /dev/null +++ b/tests/baselines/reference/checkJsdocTypeTagOnExportAssignment8.symbols @@ -0,0 +1,18 @@ +=== tests/cases/compiler/checkJsdocTypeTagOnExportAssignment8.js === + +No type information for this code.=== tests/cases/compiler/a.js === +/** + * @typedef Foo + * @property {string} a + * @property {'b'} b + */ + +/** @type {Foo} */ +export default { + a: 'a', +>a : Symbol(a, Decl(a.js, 7, 16)) + + b: 'b' +>b : Symbol(b, Decl(a.js, 8, 11)) +} + diff --git a/tests/baselines/reference/checkJsdocTypeTagOnExportAssignment8.types b/tests/baselines/reference/checkJsdocTypeTagOnExportAssignment8.types new file mode 100644 index 0000000000000..7d7d4a27d329d --- /dev/null +++ b/tests/baselines/reference/checkJsdocTypeTagOnExportAssignment8.types @@ -0,0 +1,22 @@ +=== tests/cases/compiler/checkJsdocTypeTagOnExportAssignment8.js === + +No type information for this code.=== tests/cases/compiler/a.js === +/** + * @typedef Foo + * @property {string} a + * @property {'b'} b + */ + +/** @type {Foo} */ +export default { +>{ a: 'a', b: 'b'} : { a: string; b: "b"; } + + a: 'a', +>a : string +>'a' : "a" + + b: 'b' +>b : "b" +>'b' : "b" +} + diff --git a/tests/baselines/reference/checkJsdocTypeTagOnObjectProperty2.errors.txt b/tests/baselines/reference/checkJsdocTypeTagOnObjectProperty2.errors.txt index 825347f0d776f..523fbcaa0662a 100644 --- a/tests/baselines/reference/checkJsdocTypeTagOnObjectProperty2.errors.txt +++ b/tests/baselines/reference/checkJsdocTypeTagOnObjectProperty2.errors.txt @@ -1,4 +1,4 @@ -tests/cases/conformance/jsdoc/0.js(5,3): error TS2322: Type 'number' is not assignable to type 'string | undefined'. +tests/cases/conformance/jsdoc/0.js(5,3): error TS2322: Type 'number' is not assignable to type 'string'. tests/cases/conformance/jsdoc/0.js(8,7): error TS2322: Type 'string' is not assignable to type 'number'. tests/cases/conformance/jsdoc/0.js(11,20): error TS2322: Type 'string' is not assignable to type 'number'. tests/cases/conformance/jsdoc/0.js(13,15): error TS2322: Type 'string' is not assignable to type 'number'. @@ -15,7 +15,7 @@ tests/cases/conformance/jsdoc/0.js(22,22): error TS2345: Argument of type 'strin /** @type {string|undefined} */ bar: 42, ~~~~~~~ -!!! error TS2322: Type 'number' is not assignable to type 'string | undefined'. +!!! error TS2322: Type 'number' is not assignable to type 'string'. /** @type {function(number): number} */ method1(n1) { return "42"; diff --git a/tests/baselines/reference/checkJsxChildrenProperty4.errors.txt b/tests/baselines/reference/checkJsxChildrenProperty4.errors.txt index 98afca173245f..f5daf1b17c0b2 100644 --- a/tests/baselines/reference/checkJsxChildrenProperty4.errors.txt +++ b/tests/baselines/reference/checkJsxChildrenProperty4.errors.txt @@ -1,8 +1,6 @@ tests/cases/conformance/jsx/file.tsx(24,28): error TS2551: Property 'NAme' does not exist on type 'IUser'. Did you mean 'Name'? tests/cases/conformance/jsx/file.tsx(36,15): error TS2322: Type '(user: IUser) => Element' is not assignable to type 'boolean | any[] | ReactChild'. - Type '(user: IUser) => Element' is missing the following properties from type 'ReactElement': type, props tests/cases/conformance/jsx/file.tsx(39,15): error TS2322: Type '(user: IUser) => Element' is not assignable to type 'boolean | any[] | ReactChild'. - Type '(user: IUser) => Element' is missing the following properties from type 'ReactElement': type, props ==== tests/cases/conformance/jsx/file.tsx (3 errors) ==== @@ -51,7 +49,6 @@ tests/cases/conformance/jsx/file.tsx(39,15): error TS2322: Type '(user: IUser) = ) } ~~~~~~~~~~~~~ !!! error TS2322: Type '(user: IUser) => Element' is not assignable to type 'boolean | any[] | ReactChild'. -!!! error TS2322: Type '(user: IUser) => Element' is missing the following properties from type 'ReactElement': type, props !!! related TS6212 tests/cases/conformance/jsx/file.tsx:36:15: Did you mean to call this expression? { user => ( ~~~~~~~~~ @@ -60,7 +57,6 @@ tests/cases/conformance/jsx/file.tsx(39,15): error TS2322: Type '(user: IUser) = ) } ~~~~~~~~~~~~~ !!! error TS2322: Type '(user: IUser) => Element' is not assignable to type 'boolean | any[] | ReactChild'. -!!! error TS2322: Type '(user: IUser) => Element' is missing the following properties from type 'ReactElement': type, props !!! related TS6212 tests/cases/conformance/jsx/file.tsx:39:15: Did you mean to call this expression? ); diff --git a/tests/baselines/reference/checkJsxNotSetError.errors.txt b/tests/baselines/reference/checkJsxNotSetError.errors.txt new file mode 100644 index 0000000000000..55dbe1b239ff9 --- /dev/null +++ b/tests/baselines/reference/checkJsxNotSetError.errors.txt @@ -0,0 +1,20 @@ +/bar.jsx(1,17): error TS6142: Module '/foo' was resolved to '/foo.jsx', but '--jsx' is not set. +/bar.jsx(2,11): error TS17004: Cannot use JSX unless the '--jsx' flag is provided. +/foo.jsx(2,5): error TS17004: Cannot use JSX unless the '--jsx' flag is provided. + + +==== /foo.jsx (1 errors) ==== + const Foo = () => ( +
foo
+ ~~~~~ +!!! error TS17004: Cannot use JSX unless the '--jsx' flag is provided. + ); + export default Foo; + +==== /bar.jsx (2 errors) ==== + import Foo from '/foo'; + ~~~~~~ +!!! error TS6142: Module '/foo' was resolved to '/foo.jsx', but '--jsx' is not set. + const a = + ~~~~~~~ +!!! error TS17004: Cannot use JSX unless the '--jsx' flag is provided. \ No newline at end of file diff --git a/tests/baselines/reference/checkJsxNotSetError.js b/tests/baselines/reference/checkJsxNotSetError.js new file mode 100644 index 0000000000000..5273963c87a1d --- /dev/null +++ b/tests/baselines/reference/checkJsxNotSetError.js @@ -0,0 +1,22 @@ +//// [tests/cases/compiler/checkJsxNotSetError.ts] //// + +//// [foo.jsx] +const Foo = () => ( +
foo
+); +export default Foo; + +//// [bar.jsx] +import Foo from '/foo'; +const a = + +//// [foo.js] +"use strict"; +exports.__esModule = true; +var Foo = function () { return (
foo
); }; +exports["default"] = Foo; +//// [bar.js] +"use strict"; +exports.__esModule = true; +var foo_1 = require("/foo"); +var a = ; diff --git a/tests/baselines/reference/checkJsxNotSetError.symbols b/tests/baselines/reference/checkJsxNotSetError.symbols new file mode 100644 index 0000000000000..2aa436b2a267b --- /dev/null +++ b/tests/baselines/reference/checkJsxNotSetError.symbols @@ -0,0 +1,17 @@ +=== /foo.jsx === +const Foo = () => ( +>Foo : Symbol(Foo, Decl(foo.jsx, 0, 5)) + +
foo
+); +export default Foo; +>Foo : Symbol(Foo, Decl(foo.jsx, 0, 5)) + +=== /bar.jsx === +import Foo from '/foo'; +>Foo : Symbol(Foo, Decl(bar.jsx, 0, 6)) + +const a = +>a : Symbol(a, Decl(bar.jsx, 1, 5)) +>Foo : Symbol(Foo, Decl(bar.jsx, 0, 6)) + diff --git a/tests/baselines/reference/checkJsxNotSetError.types b/tests/baselines/reference/checkJsxNotSetError.types new file mode 100644 index 0000000000000..8922347d8a998 --- /dev/null +++ b/tests/baselines/reference/checkJsxNotSetError.types @@ -0,0 +1,24 @@ +=== /foo.jsx === +const Foo = () => ( +>Foo : () => any +>() => (
foo
) : () => any +>(
foo
) : any + +
foo
+>
foo
: any +>div : any +>div : any + +); +export default Foo; +>Foo : () => any + +=== /bar.jsx === +import Foo from '/foo'; +>Foo : () => any + +const a = +>a : any +> : any +>Foo : () => any + diff --git a/tests/baselines/reference/checkerInitializationCrash.js b/tests/baselines/reference/checkerInitializationCrash.js new file mode 100644 index 0000000000000..8cb6babc45a47 --- /dev/null +++ b/tests/baselines/reference/checkerInitializationCrash.js @@ -0,0 +1,42 @@ +//// [tests/cases/compiler/checkerInitializationCrash.ts] //// + +//// [index.d.ts] +import * as react from 'react'; +declare global { + namespace FullCalendarVDom { + export import VNode = react.ReactNode; + } +} + +export default class FullCalendar { +} + +//// [index.d.ts] +import * as preact from 'preact'; +declare global { + namespace FullCalendarVDom { + type VNode = preact.VNode; + } +} + +export type EventInput = any; + +//// [index.d.ts] +export = React; +export as namespace React; +declare namespace React { + type ReactNode = any; + function useMemo(factory: () => T, deps: undefined): T; +} + +//// [index.d.ts] +export as namespace preact; +export interface VNode

{} + +//// [index.tsx] +import FullCalendar from "@fullcalendar/react"; +import { EventInput } from "@fullcalendar/core"; + + +//// [index.js] +export {}; diff --git a/tests/baselines/reference/checkerInitializationCrash.symbols b/tests/baselines/reference/checkerInitializationCrash.symbols new file mode 100644 index 0000000000000..2cd749dd4c3a3 --- /dev/null +++ b/tests/baselines/reference/checkerInitializationCrash.symbols @@ -0,0 +1,78 @@ +=== /node_modules/@fullcalendar/react/index.d.ts === +import * as react from 'react'; +>react : Symbol(react, Decl(index.d.ts, 0, 6)) + +declare global { +>global : Symbol(global, Decl(index.d.ts, 0, 31)) + + namespace FullCalendarVDom { +>FullCalendarVDom : Symbol(FullCalendarVDom, Decl(index.d.ts, 1, 16), Decl(index.d.ts, 1, 16)) + + export import VNode = react.ReactNode; +>VNode : Symbol(FullCalendarVDom.VNode, Decl(index.d.ts, 2, 30)) +>react : Symbol(react, Decl(index.d.ts, 0, 6)) +>ReactNode : Symbol(react.ReactNode, Decl(index.d.ts, 2, 25), Decl(index.d.ts, 2, 30)) + } +} + +export default class FullCalendar { +>FullCalendar : Symbol(FullCalendar, Decl(index.d.ts, 5, 1)) +} + +=== /node_modules/@fullcalendar/core/index.d.ts === +import * as preact from 'preact'; +>preact : Symbol(preact, Decl(index.d.ts, 0, 6)) + +declare global { +>global : Symbol(global, Decl(index.d.ts, 0, 33)) + + namespace FullCalendarVDom { +>FullCalendarVDom : Symbol(FullCalendarVDom, Decl(index.d.ts, 1, 16), Decl(index.d.ts, 1, 16)) + + type VNode = preact.VNode; +>VNode : Symbol(React.ReactNode, Decl(index.d.ts, 2, 25), Decl(index.d.ts, 2, 30)) +>preact : Symbol(preact, Decl(index.d.ts, 0, 6)) +>VNode : Symbol(preact.VNode, Decl(index.d.ts, 0, 27)) + } +} + +export type EventInput = any; +>EventInput : Symbol(EventInput, Decl(index.d.ts, 5, 1)) + +=== /node_modules/@types/react/index.d.ts === +export = React; +>React : Symbol(React, Decl(index.d.ts, 1, 26)) + +export as namespace React; +>React : Symbol(React, Decl(index.d.ts, 0, 15)) + +declare namespace React { +>React : Symbol(React, Decl(index.d.ts, 1, 26)) + + type ReactNode = any; +>ReactNode : Symbol(ReactNode, Decl(index.d.ts, 2, 25), Decl(index.d.ts, 2, 30)) + + function useMemo(factory: () => T, deps: undefined): T; +>useMemo : Symbol(useMemo, Decl(index.d.ts, 3, 25)) +>T : Symbol(T, Decl(index.d.ts, 4, 21)) +>factory : Symbol(factory, Decl(index.d.ts, 4, 24)) +>T : Symbol(T, Decl(index.d.ts, 4, 21)) +>deps : Symbol(deps, Decl(index.d.ts, 4, 41)) +>T : Symbol(T, Decl(index.d.ts, 4, 21)) +} + +=== /node_modules/preact/index.d.ts === +export as namespace preact; +>preact : Symbol(preact, Decl(index.d.ts, 0, 0)) + +export interface VNode

{} +>VNode : Symbol(VNode, Decl(index.d.ts, 0, 27)) +>P : Symbol(P, Decl(index.d.ts, 1, 23)) + +=== /index.tsx === +import FullCalendar from "@fullcalendar/react"; +>FullCalendar : Symbol(FullCalendar, Decl(index.tsx, 0, 6)) + +import { EventInput } from "@fullcalendar/core"; +>EventInput : Symbol(EventInput, Decl(index.tsx, 1, 8)) + diff --git a/tests/baselines/reference/checkerInitializationCrash.types b/tests/baselines/reference/checkerInitializationCrash.types new file mode 100644 index 0000000000000..f93c830bd04f5 --- /dev/null +++ b/tests/baselines/reference/checkerInitializationCrash.types @@ -0,0 +1,70 @@ +=== /node_modules/@fullcalendar/react/index.d.ts === +import * as react from 'react'; +>react : typeof react + +declare global { +>global : typeof global + + namespace FullCalendarVDom { +>FullCalendarVDom : typeof FullCalendarVDom + + export import VNode = react.ReactNode; +>VNode : any +>react : typeof react +>ReactNode : any + } +} + +export default class FullCalendar { +>FullCalendar : FullCalendar +} + +=== /node_modules/@fullcalendar/core/index.d.ts === +import * as preact from 'preact'; +>preact : typeof preact + +declare global { +>global : any + + namespace FullCalendarVDom { + type VNode = preact.VNode; +>VNode : any +>preact : any + } +} + +export type EventInput = any; +>EventInput : any + +=== /node_modules/@types/react/index.d.ts === +export = React; +>React : typeof React + +export as namespace React; +>React : typeof React + +declare namespace React { +>React : typeof React + + type ReactNode = any; +>ReactNode : any + + function useMemo(factory: () => T, deps: undefined): T; +>useMemo : (factory: () => T, deps: undefined) => T +>factory : () => T +>deps : undefined +} + +=== /node_modules/preact/index.d.ts === +export as namespace preact; +>preact : typeof import("/node_modules/preact/index") + +export interface VNode

{} + +=== /index.tsx === +import FullCalendar from "@fullcalendar/react"; +>FullCalendar : typeof FullCalendar + +import { EventInput } from "@fullcalendar/core"; +>EventInput : any + diff --git a/tests/baselines/reference/circularAccessorAnnotations.errors.txt b/tests/baselines/reference/circularAccessorAnnotations.errors.txt new file mode 100644 index 0000000000000..890726fcaf6f6 --- /dev/null +++ b/tests/baselines/reference/circularAccessorAnnotations.errors.txt @@ -0,0 +1,41 @@ +tests/cases/compiler/circularAccessorAnnotations.ts(2,9): error TS2502: 'foo' is referenced directly or indirectly in its own type annotation. +tests/cases/compiler/circularAccessorAnnotations.ts(6,9): error TS2502: 'foo' is referenced directly or indirectly in its own type annotation. +tests/cases/compiler/circularAccessorAnnotations.ts(15,9): error TS2502: 'foo' is referenced directly or indirectly in its own type annotation. +tests/cases/compiler/circularAccessorAnnotations.ts(19,9): error TS2502: 'foo' is referenced directly or indirectly in its own type annotation. + + +==== tests/cases/compiler/circularAccessorAnnotations.ts (4 errors) ==== + declare const c1: { + get foo(): typeof c1.foo; + ~~~ +!!! error TS2502: 'foo' is referenced directly or indirectly in its own type annotation. + } + + declare const c2: { + set foo(value: typeof c2.foo); + ~~~ +!!! error TS2502: 'foo' is referenced directly or indirectly in its own type annotation. + } + + declare const c3: { + get foo(): string; + set foo(value: typeof c3.foo); + } + + type T1 = { + get foo(): T1["foo"]; + ~~~ +!!! error TS2502: 'foo' is referenced directly or indirectly in its own type annotation. + } + + type T2 = { + set foo(value: T2["foo"]); + ~~~ +!!! error TS2502: 'foo' is referenced directly or indirectly in its own type annotation. + } + + type T3 = { + get foo(): string; + set foo(value: T3["foo"]); + } + \ No newline at end of file diff --git a/tests/baselines/reference/circularAccessorAnnotations.js b/tests/baselines/reference/circularAccessorAnnotations.js new file mode 100644 index 0000000000000..2cdb41d7fa2d5 --- /dev/null +++ b/tests/baselines/reference/circularAccessorAnnotations.js @@ -0,0 +1,53 @@ +//// [circularAccessorAnnotations.ts] +declare const c1: { + get foo(): typeof c1.foo; +} + +declare const c2: { + set foo(value: typeof c2.foo); +} + +declare const c3: { + get foo(): string; + set foo(value: typeof c3.foo); +} + +type T1 = { + get foo(): T1["foo"]; +} + +type T2 = { + set foo(value: T2["foo"]); +} + +type T3 = { + get foo(): string; + set foo(value: T3["foo"]); +} + + +//// [circularAccessorAnnotations.js] +"use strict"; + + +//// [circularAccessorAnnotations.d.ts] +declare const c1: { + get foo(): typeof c1.foo; +}; +declare const c2: { + set foo(value: typeof c2.foo); +}; +declare const c3: { + get foo(): string; + set foo(value: typeof c3.foo); +}; +declare type T1 = { + get foo(): T1["foo"]; +}; +declare type T2 = { + set foo(value: T2["foo"]); +}; +declare type T3 = { + get foo(): string; + set foo(value: T3["foo"]); +}; diff --git a/tests/baselines/reference/circularAccessorAnnotations.symbols b/tests/baselines/reference/circularAccessorAnnotations.symbols new file mode 100644 index 0000000000000..b3514fc1ea494 --- /dev/null +++ b/tests/baselines/reference/circularAccessorAnnotations.symbols @@ -0,0 +1,65 @@ +=== tests/cases/compiler/circularAccessorAnnotations.ts === +declare const c1: { +>c1 : Symbol(c1, Decl(circularAccessorAnnotations.ts, 0, 13)) + + get foo(): typeof c1.foo; +>foo : Symbol(foo, Decl(circularAccessorAnnotations.ts, 0, 19)) +>c1.foo : Symbol(foo, Decl(circularAccessorAnnotations.ts, 0, 19)) +>c1 : Symbol(c1, Decl(circularAccessorAnnotations.ts, 0, 13)) +>foo : Symbol(foo, Decl(circularAccessorAnnotations.ts, 0, 19)) +} + +declare const c2: { +>c2 : Symbol(c2, Decl(circularAccessorAnnotations.ts, 4, 13)) + + set foo(value: typeof c2.foo); +>foo : Symbol(foo, Decl(circularAccessorAnnotations.ts, 4, 19)) +>value : Symbol(value, Decl(circularAccessorAnnotations.ts, 5, 12)) +>c2.foo : Symbol(foo, Decl(circularAccessorAnnotations.ts, 4, 19)) +>c2 : Symbol(c2, Decl(circularAccessorAnnotations.ts, 4, 13)) +>foo : Symbol(foo, Decl(circularAccessorAnnotations.ts, 4, 19)) +} + +declare const c3: { +>c3 : Symbol(c3, Decl(circularAccessorAnnotations.ts, 8, 13)) + + get foo(): string; +>foo : Symbol(foo, Decl(circularAccessorAnnotations.ts, 8, 19), Decl(circularAccessorAnnotations.ts, 9, 22)) + + set foo(value: typeof c3.foo); +>foo : Symbol(foo, Decl(circularAccessorAnnotations.ts, 8, 19), Decl(circularAccessorAnnotations.ts, 9, 22)) +>value : Symbol(value, Decl(circularAccessorAnnotations.ts, 10, 12)) +>c3.foo : Symbol(foo, Decl(circularAccessorAnnotations.ts, 8, 19), Decl(circularAccessorAnnotations.ts, 9, 22)) +>c3 : Symbol(c3, Decl(circularAccessorAnnotations.ts, 8, 13)) +>foo : Symbol(foo, Decl(circularAccessorAnnotations.ts, 8, 19), Decl(circularAccessorAnnotations.ts, 9, 22)) +} + +type T1 = { +>T1 : Symbol(T1, Decl(circularAccessorAnnotations.ts, 11, 1)) + + get foo(): T1["foo"]; +>foo : Symbol(foo, Decl(circularAccessorAnnotations.ts, 13, 11)) +>T1 : Symbol(T1, Decl(circularAccessorAnnotations.ts, 11, 1)) +} + +type T2 = { +>T2 : Symbol(T2, Decl(circularAccessorAnnotations.ts, 15, 1)) + + set foo(value: T2["foo"]); +>foo : Symbol(foo, Decl(circularAccessorAnnotations.ts, 17, 11)) +>value : Symbol(value, Decl(circularAccessorAnnotations.ts, 18, 12)) +>T2 : Symbol(T2, Decl(circularAccessorAnnotations.ts, 15, 1)) +} + +type T3 = { +>T3 : Symbol(T3, Decl(circularAccessorAnnotations.ts, 19, 1)) + + get foo(): string; +>foo : Symbol(foo, Decl(circularAccessorAnnotations.ts, 21, 11), Decl(circularAccessorAnnotations.ts, 22, 22)) + + set foo(value: T3["foo"]); +>foo : Symbol(foo, Decl(circularAccessorAnnotations.ts, 21, 11), Decl(circularAccessorAnnotations.ts, 22, 22)) +>value : Symbol(value, Decl(circularAccessorAnnotations.ts, 23, 12)) +>T3 : Symbol(T3, Decl(circularAccessorAnnotations.ts, 19, 1)) +} + diff --git a/tests/baselines/reference/circularAccessorAnnotations.types b/tests/baselines/reference/circularAccessorAnnotations.types new file mode 100644 index 0000000000000..1945fdc51092a --- /dev/null +++ b/tests/baselines/reference/circularAccessorAnnotations.types @@ -0,0 +1,62 @@ +=== tests/cases/compiler/circularAccessorAnnotations.ts === +declare const c1: { +>c1 : { readonly foo: any; } + + get foo(): typeof c1.foo; +>foo : any +>c1.foo : any +>c1 : { readonly foo: any; } +>foo : any +} + +declare const c2: { +>c2 : { foo: any; } + + set foo(value: typeof c2.foo); +>foo : any +>value : any +>c2.foo : any +>c2 : { foo: any; } +>foo : any +} + +declare const c3: { +>c3 : { foo: string; } + + get foo(): string; +>foo : string + + set foo(value: typeof c3.foo); +>foo : string +>value : string +>c3.foo : string +>c3 : { foo: string; } +>foo : string +} + +type T1 = { +>T1 : T1 + + get foo(): T1["foo"]; +>foo : any +} + +type T2 = { +>T2 : T2 + + set foo(value: T2["foo"]); +>foo : any +>value : any +} + +type T3 = { +>T3 : T3 + + get foo(): string; +>foo : string + + set foo(value: T3["foo"]); +>foo : string +>value : string +} + diff --git a/tests/baselines/reference/circularContextualReturnType.symbols b/tests/baselines/reference/circularContextualReturnType.symbols index 207daf487cc4e..b313077c45e46 100644 --- a/tests/baselines/reference/circularContextualReturnType.symbols +++ b/tests/baselines/reference/circularContextualReturnType.symbols @@ -2,17 +2,17 @@ // Repro from #17711 Object.freeze({ ->Object.freeze : Symbol(ObjectConstructor.freeze, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>Object.freeze : Symbol(ObjectConstructor.freeze, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) >Object : Symbol(Object, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) ->freeze : Symbol(ObjectConstructor.freeze, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>freeze : Symbol(ObjectConstructor.freeze, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) foo() { >foo : Symbol(foo, Decl(circularContextualReturnType.ts, 2, 15)) return Object.freeze('a'); ->Object.freeze : Symbol(ObjectConstructor.freeze, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>Object.freeze : Symbol(ObjectConstructor.freeze, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) >Object : Symbol(Object, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) ->freeze : Symbol(ObjectConstructor.freeze, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>freeze : Symbol(ObjectConstructor.freeze, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) }, }); diff --git a/tests/baselines/reference/circularContextualReturnType.types b/tests/baselines/reference/circularContextualReturnType.types index 99745ef58d32f..883cf67ba574c 100644 --- a/tests/baselines/reference/circularContextualReturnType.types +++ b/tests/baselines/reference/circularContextualReturnType.types @@ -3,9 +3,9 @@ Object.freeze({ >Object.freeze({ foo() { return Object.freeze('a'); },}) : Readonly<{ foo(): string; }> ->Object.freeze : { (a: T[]): readonly T[]; (f: T): T; (o: T): Readonly; } +>Object.freeze : { (a: T[]): readonly T[]; (f: T): T; (o: T): Readonly; (o: T): Readonly; } >Object : ObjectConstructor ->freeze : { (a: T[]): readonly T[]; (f: T): T; (o: T): Readonly; } +>freeze : { (a: T[]): readonly T[]; (f: T): T; (o: T): Readonly; (o: T): Readonly; } >{ foo() { return Object.freeze('a'); },} : { foo(): string; } foo() { @@ -13,9 +13,9 @@ Object.freeze({ return Object.freeze('a'); >Object.freeze('a') : string ->Object.freeze : { (a: T[]): readonly T[]; (f: T): T; (o: T): Readonly; } +>Object.freeze : { (a: T[]): readonly T[]; (f: T): T; (o: T): Readonly; (o: T): Readonly; } >Object : ObjectConstructor ->freeze : { (a: T[]): readonly T[]; (f: T): T; (o: T): Readonly; } +>freeze : { (a: T[]): readonly T[]; (f: T): T; (o: T): Readonly; (o: T): Readonly; } >'a' : "a" }, diff --git a/tests/baselines/reference/circularGetAccessor(noimplicitany=false).errors.txt b/tests/baselines/reference/circularGetAccessor(noimplicitany=false).errors.txt new file mode 100644 index 0000000000000..b616c1ad8bfeb --- /dev/null +++ b/tests/baselines/reference/circularGetAccessor(noimplicitany=false).errors.txt @@ -0,0 +1,10 @@ +tests/cases/compiler/circularGetAccessor.ts(2,9): error TS2502: 'foo' is referenced directly or indirectly in its own type annotation. + + +==== tests/cases/compiler/circularGetAccessor.ts (1 errors) ==== + declare class C { + get foo(): typeof this.foo; + ~~~ +!!! error TS2502: 'foo' is referenced directly or indirectly in its own type annotation. + } + \ No newline at end of file diff --git a/tests/baselines/reference/circularGetAccessor(noimplicitany=false).js b/tests/baselines/reference/circularGetAccessor(noimplicitany=false).js new file mode 100644 index 0000000000000..ffe5c03a85d0b --- /dev/null +++ b/tests/baselines/reference/circularGetAccessor(noimplicitany=false).js @@ -0,0 +1,7 @@ +//// [circularGetAccessor.ts] +declare class C { + get foo(): typeof this.foo; +} + + +//// [circularGetAccessor.js] diff --git a/tests/baselines/reference/circularGetAccessor(noimplicitany=false).symbols b/tests/baselines/reference/circularGetAccessor(noimplicitany=false).symbols new file mode 100644 index 0000000000000..0afc5b19d1e5d --- /dev/null +++ b/tests/baselines/reference/circularGetAccessor(noimplicitany=false).symbols @@ -0,0 +1,11 @@ +=== tests/cases/compiler/circularGetAccessor.ts === +declare class C { +>C : Symbol(C, Decl(circularGetAccessor.ts, 0, 0)) + + get foo(): typeof this.foo; +>foo : Symbol(C.foo, Decl(circularGetAccessor.ts, 0, 17)) +>this.foo : Symbol(C.foo, Decl(circularGetAccessor.ts, 0, 17)) +>this : Symbol(C, Decl(circularGetAccessor.ts, 0, 0)) +>foo : Symbol(C.foo, Decl(circularGetAccessor.ts, 0, 17)) +} + diff --git a/tests/baselines/reference/circularGetAccessor(noimplicitany=false).types b/tests/baselines/reference/circularGetAccessor(noimplicitany=false).types new file mode 100644 index 0000000000000..bb7527742c71c --- /dev/null +++ b/tests/baselines/reference/circularGetAccessor(noimplicitany=false).types @@ -0,0 +1,11 @@ +=== tests/cases/compiler/circularGetAccessor.ts === +declare class C { +>C : C + + get foo(): typeof this.foo; +>foo : any +>this.foo : any +>this : this +>foo : any +} + diff --git a/tests/baselines/reference/circularGetAccessor(noimplicitany=true).errors.txt b/tests/baselines/reference/circularGetAccessor(noimplicitany=true).errors.txt new file mode 100644 index 0000000000000..b616c1ad8bfeb --- /dev/null +++ b/tests/baselines/reference/circularGetAccessor(noimplicitany=true).errors.txt @@ -0,0 +1,10 @@ +tests/cases/compiler/circularGetAccessor.ts(2,9): error TS2502: 'foo' is referenced directly or indirectly in its own type annotation. + + +==== tests/cases/compiler/circularGetAccessor.ts (1 errors) ==== + declare class C { + get foo(): typeof this.foo; + ~~~ +!!! error TS2502: 'foo' is referenced directly or indirectly in its own type annotation. + } + \ No newline at end of file diff --git a/tests/baselines/reference/circularGetAccessor(noimplicitany=true).js b/tests/baselines/reference/circularGetAccessor(noimplicitany=true).js new file mode 100644 index 0000000000000..ffe5c03a85d0b --- /dev/null +++ b/tests/baselines/reference/circularGetAccessor(noimplicitany=true).js @@ -0,0 +1,7 @@ +//// [circularGetAccessor.ts] +declare class C { + get foo(): typeof this.foo; +} + + +//// [circularGetAccessor.js] diff --git a/tests/baselines/reference/circularGetAccessor(noimplicitany=true).symbols b/tests/baselines/reference/circularGetAccessor(noimplicitany=true).symbols new file mode 100644 index 0000000000000..0afc5b19d1e5d --- /dev/null +++ b/tests/baselines/reference/circularGetAccessor(noimplicitany=true).symbols @@ -0,0 +1,11 @@ +=== tests/cases/compiler/circularGetAccessor.ts === +declare class C { +>C : Symbol(C, Decl(circularGetAccessor.ts, 0, 0)) + + get foo(): typeof this.foo; +>foo : Symbol(C.foo, Decl(circularGetAccessor.ts, 0, 17)) +>this.foo : Symbol(C.foo, Decl(circularGetAccessor.ts, 0, 17)) +>this : Symbol(C, Decl(circularGetAccessor.ts, 0, 0)) +>foo : Symbol(C.foo, Decl(circularGetAccessor.ts, 0, 17)) +} + diff --git a/tests/baselines/reference/circularGetAccessor(noimplicitany=true).types b/tests/baselines/reference/circularGetAccessor(noimplicitany=true).types new file mode 100644 index 0000000000000..bb7527742c71c --- /dev/null +++ b/tests/baselines/reference/circularGetAccessor(noimplicitany=true).types @@ -0,0 +1,11 @@ +=== tests/cases/compiler/circularGetAccessor.ts === +declare class C { +>C : C + + get foo(): typeof this.foo; +>foo : any +>this.foo : any +>this : this +>foo : any +} + diff --git a/tests/baselines/reference/circularIndexedAccessErrors.errors.txt b/tests/baselines/reference/circularIndexedAccessErrors.errors.txt index f2bf858ab9e0e..3bd2d323f1cf4 100644 --- a/tests/baselines/reference/circularIndexedAccessErrors.errors.txt +++ b/tests/baselines/reference/circularIndexedAccessErrors.errors.txt @@ -1,5 +1,5 @@ tests/cases/conformance/types/keyof/circularIndexedAccessErrors.ts(2,5): error TS2502: 'x' is referenced directly or indirectly in its own type annotation. -tests/cases/conformance/types/keyof/circularIndexedAccessErrors.ts(6,5): error TS2502: 'x' is referenced directly or indirectly in its own type annotation. +tests/cases/conformance/types/keyof/circularIndexedAccessErrors.ts(11,11): error TS2589: Type instantiation is excessively deep and possibly infinite. tests/cases/conformance/types/keyof/circularIndexedAccessErrors.ts(18,5): error TS2502: 'x' is referenced directly or indirectly in its own type annotation. tests/cases/conformance/types/keyof/circularIndexedAccessErrors.ts(22,5): error TS2502: 'x' is referenced directly or indirectly in its own type annotation. tests/cases/conformance/types/keyof/circularIndexedAccessErrors.ts(37,24): error TS2313: Type parameter 'T' has a circular constraint. @@ -15,13 +15,13 @@ tests/cases/conformance/types/keyof/circularIndexedAccessErrors.ts(37,30): error type T2 = { x: T2[K]; // Error - ~ -!!! error TS2502: 'x' is referenced directly or indirectly in its own type annotation. y: number; } declare let x2: T2<"x">; let x2x = x2.x; + ~~~~ +!!! error TS2589: Type instantiation is excessively deep and possibly infinite. interface T3> { x: T["x"]; diff --git a/tests/baselines/reference/circularlyConstrainedMappedTypeContainingConditionalNoInfiniteInstantiationDepth.errors.txt b/tests/baselines/reference/circularlyConstrainedMappedTypeContainingConditionalNoInfiniteInstantiationDepth.errors.txt index e8e8253d0b199..88ffa05ad4deb 100644 --- a/tests/baselines/reference/circularlyConstrainedMappedTypeContainingConditionalNoInfiniteInstantiationDepth.errors.txt +++ b/tests/baselines/reference/circularlyConstrainedMappedTypeContainingConditionalNoInfiniteInstantiationDepth.errors.txt @@ -5,63 +5,27 @@ tests/cases/compiler/circularlyConstrainedMappedTypeContainingConditionalNoInfin Type 'GetProps[P] | (TInjectedProps[P] extends GetProps[P] ? GetProps[P] : TInjectedProps[P])' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. Type 'GetProps[P]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. Type 'GetProps[Extract>]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. - Type 'GetProps[Extract>]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. - Type 'GetProps[P]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. - Type 'Extract> extends keyof TInjectedProps ? TInjectedProps[Extract>] extends GetProps[Extract>] ? GetProps[Extract>] : TInjectedProps[Extract>] : GetProps[Extract>]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. - Type 'GetProps[Extract>] | (TInjectedProps[Extract>] extends GetProps[Extract>] ? GetProps[Extract>] : TInjectedProps[Extract>])' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. - Type 'GetProps[Extract>]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. - Type 'GetProps[Extract>] | GetProps[Extract>] | GetProps[Extract>]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. - Type 'GetProps[Extract>]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. - Type 'GetProps[keyof GetProps & string]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. - Type 'GetProps[string]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. - Type 'GetProps[string]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. - Type 'GetProps[keyof GetProps & string]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. - Type 'GetProps[Extract>]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. - Type 'GetProps[Extract>]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. - Type '(Extract> extends keyof TInjectedProps ? TInjectedProps[keyof TInjectedProps & Extract>] extends GetProps[keyof TInjectedProps & Extract>] ? GetProps[keyof TInjectedProps & Extract>] : TInjectedProps[keyof TInjectedProps & Extract>] : GetProps[Extract>]) | (Extract> extends keyof TInjectedProps ? TInjectedProps[keyof TInjectedProps & Extract>] extends GetProps[keyof TInjectedProps & Extract>] ? GetProps[keyof TInjectedProps & Extract>] : TInjectedProps[keyof TInjectedProps & Extract>] : GetProps[Extract>]) | (Extract> extends keyof TInjectedProps ? TInjectedProps[keyof TInjectedProps & Extract>] extends GetProps[keyof TInjectedProps & Extract>] ? GetProps[keyof TInjectedProps & Extract>] : TInjectedProps[keyof TInjectedProps & Extract>] : GetProps[Extract>])' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. - Type 'Extract> extends keyof TInjectedProps ? TInjectedProps[keyof TInjectedProps & Extract>] extends GetProps[keyof TInjectedProps & Extract>] ? GetProps[keyof TInjectedProps & Extract>] : TInjectedProps[keyof TInjectedProps & Extract>] : GetProps[Extract>]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. - Type '(TInjectedProps[keyof TInjectedProps & Extract>] extends GetProps[keyof TInjectedProps & Extract>] ? GetProps[keyof TInjectedProps & Extract>] : TInjectedProps[keyof TInjectedProps & Extract>]) | GetProps[Extract>]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. - Type 'TInjectedProps[keyof TInjectedProps & Extract>] extends GetProps[keyof TInjectedProps & Extract>] ? GetProps[keyof TInjectedProps & Extract>] : TInjectedProps[keyof TInjectedProps & Extract>]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. - Type 'GetProps[keyof TInjectedProps & Extract>] | TInjectedProps[keyof TInjectedProps & Extract>]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. - Type 'GetProps[keyof TInjectedProps & Extract>]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. + Type 'Extract> extends keyof TInjectedProps ? TInjectedProps[Extract>] extends GetProps[Extract>] ? GetProps[Extract>] : TInjectedProps[Extract>] : GetProps[Extract>]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. + Type 'GetProps[Extract>] | (TInjectedProps[Extract>] extends GetProps[Extract>] ? GetProps[Extract>] : TInjectedProps[Extract>])' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. + Type 'GetProps[Extract>]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. + Type 'GetProps[Extract>] | GetProps[Extract>] | GetProps[Extract>]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. + Type 'GetProps[Extract>]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. + Type 'GetProps[keyof GetProps & string]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. + Type 'GetProps[string]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. + Type '(Extract> extends keyof TInjectedProps ? TInjectedProps[keyof TInjectedProps & Extract>] extends GetProps[keyof TInjectedProps & Extract>] ? GetProps[keyof TInjectedProps & Extract>] : TInjectedProps[keyof TInjectedProps & Extract>] : GetProps[Extract>]) | (Extract> extends keyof TInjectedProps ? TInjectedProps[keyof TInjectedProps & Extract>] extends GetProps[keyof TInjectedProps & Extract>] ? GetProps[keyof TInjectedProps & Extract>] : TInjectedProps[keyof TInjectedProps & Extract>] : GetProps[Extract>]) | (Extract> extends keyof TInjectedProps ? TInjectedProps[keyof TInjectedProps & Extract>] extends GetProps[keyof TInjectedProps & Extract>] ? GetProps[keyof TInjectedProps & Extract>] : TInjectedProps[keyof TInjectedProps & Extract>] : GetProps[Extract>])' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. + Type 'Extract> extends keyof TInjectedProps ? TInjectedProps[keyof TInjectedProps & Extract>] extends GetProps[keyof TInjectedProps & Extract>] ? GetProps[keyof TInjectedProps & Extract>] : TInjectedProps[keyof TInjectedProps & Extract>] : GetProps[Extract>]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. + Type '(TInjectedProps[keyof TInjectedProps & Extract>] extends GetProps[keyof TInjectedProps & Extract>] ? GetProps[keyof TInjectedProps & Extract>] : TInjectedProps[keyof TInjectedProps & Extract>]) | GetProps[Extract>]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. + Type 'TInjectedProps[keyof TInjectedProps & Extract>] extends GetProps[keyof TInjectedProps & Extract>] ? GetProps[keyof TInjectedProps & Extract>] : TInjectedProps[keyof TInjectedProps & Extract>]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. + Type 'GetProps[keyof TInjectedProps & Extract>] | TInjectedProps[keyof TInjectedProps & Extract>]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. + Type 'GetProps[keyof TInjectedProps & Extract>]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. + Type 'GetProps[string]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. + Type 'keyof GetProps & string extends keyof TInjectedProps ? TInjectedProps[keyof TInjectedProps & keyof GetProps & string] extends GetProps[keyof TInjectedProps & keyof GetProps & string] ? GetProps[keyof TInjectedProps & keyof GetProps & string] : TInjectedProps[keyof TInjectedProps & keyof GetProps & string] : GetProps[keyof GetProps & string]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. + Type '(TInjectedProps[keyof TInjectedProps & keyof GetProps & string] extends GetProps[keyof TInjectedProps & keyof GetProps & string] ? GetProps[keyof TInjectedProps & keyof GetProps & string] : TInjectedProps[keyof TInjectedProps & keyof GetProps & string]) | GetProps[keyof GetProps & string]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. + Type 'TInjectedProps[keyof TInjectedProps & keyof GetProps & string] extends GetProps[keyof TInjectedProps & keyof GetProps & string] ? GetProps[keyof TInjectedProps & keyof GetProps & string] : TInjectedProps[keyof TInjectedProps & keyof GetProps & string]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. + Type 'GetProps[keyof TInjectedProps & keyof GetProps & string] | TInjectedProps[keyof TInjectedProps & keyof GetProps & string]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. + Type 'GetProps[keyof TInjectedProps & keyof GetProps & string]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. Type 'GetProps[string]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. - Type 'GetProps[string]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. - Type 'GetProps[keyof TInjectedProps & Extract>]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. - Type 'TInjectedProps[keyof TInjectedProps & Extract>] extends GetProps[keyof TInjectedProps & Extract>] ? GetProps[keyof TInjectedProps & Extract>] : TInjectedProps[keyof TInjectedProps & Extract>]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. - Type 'keyof GetProps & string extends keyof TInjectedProps ? TInjectedProps[keyof TInjectedProps & keyof GetProps & string] extends GetProps[keyof TInjectedProps & keyof GetProps & string] ? GetProps[keyof TInjectedProps & keyof GetProps & string] : TInjectedProps[keyof TInjectedProps & keyof GetProps & string] : GetProps[keyof GetProps & string]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. - Type '(TInjectedProps[keyof TInjectedProps & keyof GetProps & string] extends GetProps[keyof TInjectedProps & keyof GetProps & string] ? GetProps[keyof TInjectedProps & keyof GetProps & string] : TInjectedProps[keyof TInjectedProps & keyof GetProps & string]) | GetProps[keyof GetProps & string]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. - Type 'TInjectedProps[keyof TInjectedProps & keyof GetProps & string] extends GetProps[keyof TInjectedProps & keyof GetProps & string] ? GetProps[keyof TInjectedProps & keyof GetProps & string] : TInjectedProps[keyof TInjectedProps & keyof GetProps & string]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. - Type 'GetProps[keyof TInjectedProps & keyof GetProps & string] | TInjectedProps[keyof TInjectedProps & keyof GetProps & string]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. - Type 'GetProps[keyof TInjectedProps & keyof GetProps & string]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. - Type 'GetProps[string]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. - Type 'GetProps[string]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. - Type 'GetProps[keyof TInjectedProps & keyof GetProps & string]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. - Type 'TInjectedProps[keyof TInjectedProps & keyof GetProps & string] extends GetProps[keyof TInjectedProps & keyof GetProps & string] ? GetProps[keyof TInjectedProps & keyof GetProps & string] : TInjectedProps[keyof TInjectedProps & keyof GetProps & string]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. - Type 'string extends keyof TInjectedProps ? TInjectedProps[keyof TInjectedProps & string] extends GetProps[keyof TInjectedProps & string] ? GetProps[keyof TInjectedProps & string] : TInjectedProps[keyof TInjectedProps & string] : GetProps[string]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. - Type 'string extends keyof TInjectedProps ? TInjectedProps[keyof TInjectedProps & string] extends GetProps[keyof TInjectedProps & string] ? GetProps[keyof TInjectedProps & string] : TInjectedProps[keyof TInjectedProps & string] : GetProps[string]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. - Type 'keyof GetProps & string extends keyof TInjectedProps ? TInjectedProps[keyof TInjectedProps & keyof GetProps & string] extends GetProps[keyof TInjectedProps & keyof GetProps & string] ? GetProps[keyof TInjectedProps & keyof GetProps & string] : TInjectedProps[keyof TInjectedProps & keyof GetProps & string] : GetProps[keyof GetProps & string]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. - Type '(TInjectedProps[keyof TInjectedProps & keyof GetProps & string] extends GetProps[keyof TInjectedProps & keyof GetProps & string] ? GetProps[keyof TInjectedProps & keyof GetProps & string] : TInjectedProps[keyof TInjectedProps & keyof GetProps & string]) | GetProps[keyof GetProps & string]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. - Type 'TInjectedProps[keyof TInjectedProps & keyof GetProps & string] extends GetProps[keyof TInjectedProps & keyof GetProps & string] ? GetProps[keyof TInjectedProps & keyof GetProps & string] : TInjectedProps[keyof TInjectedProps & keyof GetProps & string]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. - Type 'GetProps[keyof TInjectedProps & keyof GetProps & string] | TInjectedProps[keyof TInjectedProps & keyof GetProps & string]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. - Type 'GetProps[keyof TInjectedProps & keyof GetProps & string]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. - Type 'GetProps[string]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. - Type 'Extract> extends keyof TInjectedProps ? TInjectedProps[keyof TInjectedProps & Extract>] extends GetProps[keyof TInjectedProps & Extract>] ? GetProps[keyof TInjectedProps & Extract>] : TInjectedProps[keyof TInjectedProps & Extract>] : GetProps[Extract>]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. - Type '(TInjectedProps[keyof TInjectedProps & Extract>] extends GetProps[keyof TInjectedProps & Extract>] ? GetProps[keyof TInjectedProps & Extract>] : TInjectedProps[keyof TInjectedProps & Extract>]) | GetProps[Extract>]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. - Type 'TInjectedProps[keyof TInjectedProps & Extract>] extends GetProps[keyof TInjectedProps & Extract>] ? GetProps[keyof TInjectedProps & Extract>] : TInjectedProps[keyof TInjectedProps & Extract>]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. - Type 'GetProps[keyof TInjectedProps & Extract>] | TInjectedProps[keyof TInjectedProps & Extract>]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. - Type 'GetProps[keyof TInjectedProps & Extract>]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. - Type 'GetProps[string]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. - Type 'Extract> extends keyof TInjectedProps ? TInjectedProps[Extract>] extends GetProps[Extract>] ? GetProps[Extract>] : TInjectedProps[Extract>] : GetProps[Extract>]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. - Type 'GetProps[Extract>] | (TInjectedProps[Extract>] extends GetProps[Extract>] ? GetProps[Extract>] : TInjectedProps[Extract>])' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. - Type 'GetProps[Extract>]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. - Type 'P extends keyof TInjectedProps ? TInjectedProps[P] extends GetProps[P] ? GetProps[P] : TInjectedProps[P] : GetProps[P]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. - Type 'GetProps[P] | (TInjectedProps[P] extends GetProps[P] ? GetProps[P] : TInjectedProps[P])' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. - Type 'GetProps[P]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. - Type 'GetProps[Extract>]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. - Type 'GetProps[Extract>] | GetProps[Extract>] | GetProps[Extract>]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. - Type 'GetProps[Extract>]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. - Type 'GetProps[keyof GetProps & string]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. - Type 'GetProps[string]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. + Type 'string extends keyof TInjectedProps ? TInjectedProps[keyof TInjectedProps & string] extends GetProps[keyof TInjectedProps & string] ? GetProps[keyof TInjectedProps & string] : TInjectedProps[keyof TInjectedProps & string] : GetProps[string]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. ==== tests/cases/compiler/circularlyConstrainedMappedTypeContainingConditionalNoInfiniteInstantiationDepth.ts (1 errors) ==== @@ -136,61 +100,25 @@ tests/cases/compiler/circularlyConstrainedMappedTypeContainingConditionalNoInfin !!! error TS2344: Type 'GetProps[P] | (TInjectedProps[P] extends GetProps[P] ? GetProps[P] : TInjectedProps[P])' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. !!! error TS2344: Type 'GetProps[P]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. !!! error TS2344: Type 'GetProps[Extract>]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. -!!! error TS2344: Type 'GetProps[Extract>]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. -!!! error TS2344: Type 'GetProps[P]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. -!!! error TS2344: Type 'Extract> extends keyof TInjectedProps ? TInjectedProps[Extract>] extends GetProps[Extract>] ? GetProps[Extract>] : TInjectedProps[Extract>] : GetProps[Extract>]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. -!!! error TS2344: Type 'GetProps[Extract>] | (TInjectedProps[Extract>] extends GetProps[Extract>] ? GetProps[Extract>] : TInjectedProps[Extract>])' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. -!!! error TS2344: Type 'GetProps[Extract>]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. -!!! error TS2344: Type 'GetProps[Extract>] | GetProps[Extract>] | GetProps[Extract>]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. -!!! error TS2344: Type 'GetProps[Extract>]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. -!!! error TS2344: Type 'GetProps[keyof GetProps & string]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. -!!! error TS2344: Type 'GetProps[string]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. -!!! error TS2344: Type 'GetProps[string]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. -!!! error TS2344: Type 'GetProps[keyof GetProps & string]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. -!!! error TS2344: Type 'GetProps[Extract>]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. -!!! error TS2344: Type 'GetProps[Extract>]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. -!!! error TS2344: Type '(Extract> extends keyof TInjectedProps ? TInjectedProps[keyof TInjectedProps & Extract>] extends GetProps[keyof TInjectedProps & Extract>] ? GetProps[keyof TInjectedProps & Extract>] : TInjectedProps[keyof TInjectedProps & Extract>] : GetProps[Extract>]) | (Extract> extends keyof TInjectedProps ? TInjectedProps[keyof TInjectedProps & Extract>] extends GetProps[keyof TInjectedProps & Extract>] ? GetProps[keyof TInjectedProps & Extract>] : TInjectedProps[keyof TInjectedProps & Extract>] : GetProps[Extract>]) | (Extract> extends keyof TInjectedProps ? TInjectedProps[keyof TInjectedProps & Extract>] extends GetProps[keyof TInjectedProps & Extract>] ? GetProps[keyof TInjectedProps & Extract>] : TInjectedProps[keyof TInjectedProps & Extract>] : GetProps[Extract>])' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. -!!! error TS2344: Type 'Extract> extends keyof TInjectedProps ? TInjectedProps[keyof TInjectedProps & Extract>] extends GetProps[keyof TInjectedProps & Extract>] ? GetProps[keyof TInjectedProps & Extract>] : TInjectedProps[keyof TInjectedProps & Extract>] : GetProps[Extract>]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. -!!! error TS2344: Type '(TInjectedProps[keyof TInjectedProps & Extract>] extends GetProps[keyof TInjectedProps & Extract>] ? GetProps[keyof TInjectedProps & Extract>] : TInjectedProps[keyof TInjectedProps & Extract>]) | GetProps[Extract>]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. -!!! error TS2344: Type 'TInjectedProps[keyof TInjectedProps & Extract>] extends GetProps[keyof TInjectedProps & Extract>] ? GetProps[keyof TInjectedProps & Extract>] : TInjectedProps[keyof TInjectedProps & Extract>]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. -!!! error TS2344: Type 'GetProps[keyof TInjectedProps & Extract>] | TInjectedProps[keyof TInjectedProps & Extract>]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. -!!! error TS2344: Type 'GetProps[keyof TInjectedProps & Extract>]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. +!!! error TS2344: Type 'Extract> extends keyof TInjectedProps ? TInjectedProps[Extract>] extends GetProps[Extract>] ? GetProps[Extract>] : TInjectedProps[Extract>] : GetProps[Extract>]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. +!!! error TS2344: Type 'GetProps[Extract>] | (TInjectedProps[Extract>] extends GetProps[Extract>] ? GetProps[Extract>] : TInjectedProps[Extract>])' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. +!!! error TS2344: Type 'GetProps[Extract>]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. +!!! error TS2344: Type 'GetProps[Extract>] | GetProps[Extract>] | GetProps[Extract>]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. +!!! error TS2344: Type 'GetProps[Extract>]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. +!!! error TS2344: Type 'GetProps[keyof GetProps & string]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. +!!! error TS2344: Type 'GetProps[string]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. +!!! error TS2344: Type '(Extract> extends keyof TInjectedProps ? TInjectedProps[keyof TInjectedProps & Extract>] extends GetProps[keyof TInjectedProps & Extract>] ? GetProps[keyof TInjectedProps & Extract>] : TInjectedProps[keyof TInjectedProps & Extract>] : GetProps[Extract>]) | (Extract> extends keyof TInjectedProps ? TInjectedProps[keyof TInjectedProps & Extract>] extends GetProps[keyof TInjectedProps & Extract>] ? GetProps[keyof TInjectedProps & Extract>] : TInjectedProps[keyof TInjectedProps & Extract>] : GetProps[Extract>]) | (Extract> extends keyof TInjectedProps ? TInjectedProps[keyof TInjectedProps & Extract>] extends GetProps[keyof TInjectedProps & Extract>] ? GetProps[keyof TInjectedProps & Extract>] : TInjectedProps[keyof TInjectedProps & Extract>] : GetProps[Extract>])' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. +!!! error TS2344: Type 'Extract> extends keyof TInjectedProps ? TInjectedProps[keyof TInjectedProps & Extract>] extends GetProps[keyof TInjectedProps & Extract>] ? GetProps[keyof TInjectedProps & Extract>] : TInjectedProps[keyof TInjectedProps & Extract>] : GetProps[Extract>]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. +!!! error TS2344: Type '(TInjectedProps[keyof TInjectedProps & Extract>] extends GetProps[keyof TInjectedProps & Extract>] ? GetProps[keyof TInjectedProps & Extract>] : TInjectedProps[keyof TInjectedProps & Extract>]) | GetProps[Extract>]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. +!!! error TS2344: Type 'TInjectedProps[keyof TInjectedProps & Extract>] extends GetProps[keyof TInjectedProps & Extract>] ? GetProps[keyof TInjectedProps & Extract>] : TInjectedProps[keyof TInjectedProps & Extract>]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. +!!! error TS2344: Type 'GetProps[keyof TInjectedProps & Extract>] | TInjectedProps[keyof TInjectedProps & Extract>]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. +!!! error TS2344: Type 'GetProps[keyof TInjectedProps & Extract>]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. +!!! error TS2344: Type 'GetProps[string]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. +!!! error TS2344: Type 'keyof GetProps & string extends keyof TInjectedProps ? TInjectedProps[keyof TInjectedProps & keyof GetProps & string] extends GetProps[keyof TInjectedProps & keyof GetProps & string] ? GetProps[keyof TInjectedProps & keyof GetProps & string] : TInjectedProps[keyof TInjectedProps & keyof GetProps & string] : GetProps[keyof GetProps & string]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. +!!! error TS2344: Type '(TInjectedProps[keyof TInjectedProps & keyof GetProps & string] extends GetProps[keyof TInjectedProps & keyof GetProps & string] ? GetProps[keyof TInjectedProps & keyof GetProps & string] : TInjectedProps[keyof TInjectedProps & keyof GetProps & string]) | GetProps[keyof GetProps & string]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. +!!! error TS2344: Type 'TInjectedProps[keyof TInjectedProps & keyof GetProps & string] extends GetProps[keyof TInjectedProps & keyof GetProps & string] ? GetProps[keyof TInjectedProps & keyof GetProps & string] : TInjectedProps[keyof TInjectedProps & keyof GetProps & string]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. +!!! error TS2344: Type 'GetProps[keyof TInjectedProps & keyof GetProps & string] | TInjectedProps[keyof TInjectedProps & keyof GetProps & string]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. +!!! error TS2344: Type 'GetProps[keyof TInjectedProps & keyof GetProps & string]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. !!! error TS2344: Type 'GetProps[string]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. -!!! error TS2344: Type 'GetProps[string]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. -!!! error TS2344: Type 'GetProps[keyof TInjectedProps & Extract>]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. -!!! error TS2344: Type 'TInjectedProps[keyof TInjectedProps & Extract>] extends GetProps[keyof TInjectedProps & Extract>] ? GetProps[keyof TInjectedProps & Extract>] : TInjectedProps[keyof TInjectedProps & Extract>]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. -!!! error TS2344: Type 'keyof GetProps & string extends keyof TInjectedProps ? TInjectedProps[keyof TInjectedProps & keyof GetProps & string] extends GetProps[keyof TInjectedProps & keyof GetProps & string] ? GetProps[keyof TInjectedProps & keyof GetProps & string] : TInjectedProps[keyof TInjectedProps & keyof GetProps & string] : GetProps[keyof GetProps & string]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. -!!! error TS2344: Type '(TInjectedProps[keyof TInjectedProps & keyof GetProps & string] extends GetProps[keyof TInjectedProps & keyof GetProps & string] ? GetProps[keyof TInjectedProps & keyof GetProps & string] : TInjectedProps[keyof TInjectedProps & keyof GetProps & string]) | GetProps[keyof GetProps & string]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. -!!! error TS2344: Type 'TInjectedProps[keyof TInjectedProps & keyof GetProps & string] extends GetProps[keyof TInjectedProps & keyof GetProps & string] ? GetProps[keyof TInjectedProps & keyof GetProps & string] : TInjectedProps[keyof TInjectedProps & keyof GetProps & string]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. -!!! error TS2344: Type 'GetProps[keyof TInjectedProps & keyof GetProps & string] | TInjectedProps[keyof TInjectedProps & keyof GetProps & string]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. -!!! error TS2344: Type 'GetProps[keyof TInjectedProps & keyof GetProps & string]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. -!!! error TS2344: Type 'GetProps[string]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. -!!! error TS2344: Type 'GetProps[string]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. -!!! error TS2344: Type 'GetProps[keyof TInjectedProps & keyof GetProps & string]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. -!!! error TS2344: Type 'TInjectedProps[keyof TInjectedProps & keyof GetProps & string] extends GetProps[keyof TInjectedProps & keyof GetProps & string] ? GetProps[keyof TInjectedProps & keyof GetProps & string] : TInjectedProps[keyof TInjectedProps & keyof GetProps & string]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. -!!! error TS2344: Type 'string extends keyof TInjectedProps ? TInjectedProps[keyof TInjectedProps & string] extends GetProps[keyof TInjectedProps & string] ? GetProps[keyof TInjectedProps & string] : TInjectedProps[keyof TInjectedProps & string] : GetProps[string]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. -!!! error TS2344: Type 'string extends keyof TInjectedProps ? TInjectedProps[keyof TInjectedProps & string] extends GetProps[keyof TInjectedProps & string] ? GetProps[keyof TInjectedProps & string] : TInjectedProps[keyof TInjectedProps & string] : GetProps[string]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. -!!! error TS2344: Type 'keyof GetProps & string extends keyof TInjectedProps ? TInjectedProps[keyof TInjectedProps & keyof GetProps & string] extends GetProps[keyof TInjectedProps & keyof GetProps & string] ? GetProps[keyof TInjectedProps & keyof GetProps & string] : TInjectedProps[keyof TInjectedProps & keyof GetProps & string] : GetProps[keyof GetProps & string]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. -!!! error TS2344: Type '(TInjectedProps[keyof TInjectedProps & keyof GetProps & string] extends GetProps[keyof TInjectedProps & keyof GetProps & string] ? GetProps[keyof TInjectedProps & keyof GetProps & string] : TInjectedProps[keyof TInjectedProps & keyof GetProps & string]) | GetProps[keyof GetProps & string]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. -!!! error TS2344: Type 'TInjectedProps[keyof TInjectedProps & keyof GetProps & string] extends GetProps[keyof TInjectedProps & keyof GetProps & string] ? GetProps[keyof TInjectedProps & keyof GetProps & string] : TInjectedProps[keyof TInjectedProps & keyof GetProps & string]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. -!!! error TS2344: Type 'GetProps[keyof TInjectedProps & keyof GetProps & string] | TInjectedProps[keyof TInjectedProps & keyof GetProps & string]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. -!!! error TS2344: Type 'GetProps[keyof TInjectedProps & keyof GetProps & string]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. -!!! error TS2344: Type 'GetProps[string]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. -!!! error TS2344: Type 'Extract> extends keyof TInjectedProps ? TInjectedProps[keyof TInjectedProps & Extract>] extends GetProps[keyof TInjectedProps & Extract>] ? GetProps[keyof TInjectedProps & Extract>] : TInjectedProps[keyof TInjectedProps & Extract>] : GetProps[Extract>]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. -!!! error TS2344: Type '(TInjectedProps[keyof TInjectedProps & Extract>] extends GetProps[keyof TInjectedProps & Extract>] ? GetProps[keyof TInjectedProps & Extract>] : TInjectedProps[keyof TInjectedProps & Extract>]) | GetProps[Extract>]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. -!!! error TS2344: Type 'TInjectedProps[keyof TInjectedProps & Extract>] extends GetProps[keyof TInjectedProps & Extract>] ? GetProps[keyof TInjectedProps & Extract>] : TInjectedProps[keyof TInjectedProps & Extract>]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. -!!! error TS2344: Type 'GetProps[keyof TInjectedProps & Extract>] | TInjectedProps[keyof TInjectedProps & Extract>]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. -!!! error TS2344: Type 'GetProps[keyof TInjectedProps & Extract>]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. -!!! error TS2344: Type 'GetProps[string]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. -!!! error TS2344: Type 'Extract> extends keyof TInjectedProps ? TInjectedProps[Extract>] extends GetProps[Extract>] ? GetProps[Extract>] : TInjectedProps[Extract>] : GetProps[Extract>]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. -!!! error TS2344: Type 'GetProps[Extract>] | (TInjectedProps[Extract>] extends GetProps[Extract>] ? GetProps[Extract>] : TInjectedProps[Extract>])' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. -!!! error TS2344: Type 'GetProps[Extract>]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. -!!! error TS2344: Type 'P extends keyof TInjectedProps ? TInjectedProps[P] extends GetProps[P] ? GetProps[P] : TInjectedProps[P] : GetProps[P]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. -!!! error TS2344: Type 'GetProps[P] | (TInjectedProps[P] extends GetProps[P] ? GetProps[P] : TInjectedProps[P])' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. -!!! error TS2344: Type 'GetProps[P]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. -!!! error TS2344: Type 'GetProps[Extract>]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. -!!! error TS2344: Type 'GetProps[Extract>] | GetProps[Extract>] | GetProps[Extract>]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. -!!! error TS2344: Type 'GetProps[Extract>]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. -!!! error TS2344: Type 'GetProps[keyof GetProps & string]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. -!!! error TS2344: Type 'GetProps[string]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. +!!! error TS2344: Type 'string extends keyof TInjectedProps ? TInjectedProps[keyof TInjectedProps & string] extends GetProps[keyof TInjectedProps & string] ? GetProps[keyof TInjectedProps & string] : TInjectedProps[keyof TInjectedProps & string] : GetProps[string]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. \ No newline at end of file diff --git a/tests/baselines/reference/classExtendsNull.js b/tests/baselines/reference/classExtendsNull.js index 29143e609de96..0a90a0aa3c7ae 100644 --- a/tests/baselines/reference/classExtendsNull.js +++ b/tests/baselines/reference/classExtendsNull.js @@ -31,7 +31,7 @@ var __extends = (this && this.__extends) || (function () { var C = /** @class */ (function (_super) { __extends(C, _super); function C() { - _this = _super.call(this) || this; + var _this = _super.call(this) || this; return Object.create(null); } return C; diff --git a/tests/baselines/reference/classFunctionMerging2.js b/tests/baselines/reference/classFunctionMerging2.js new file mode 100644 index 0000000000000..7d70156166ca8 --- /dev/null +++ b/tests/baselines/reference/classFunctionMerging2.js @@ -0,0 +1,18 @@ +//// [classFunctionMerging2.ts] +declare abstract class A { + constructor(p: number); + a: number; +} + +declare function B(p: string): B; +declare class B extends A { + constructor(p: string); + b: number; +} + +let b = new B("Hey") +console.log(b.a) + +//// [classFunctionMerging2.js] +var b = new B("Hey"); +console.log(b.a); diff --git a/tests/baselines/reference/classFunctionMerging2.symbols b/tests/baselines/reference/classFunctionMerging2.symbols new file mode 100644 index 0000000000000..5fae3dda842c5 --- /dev/null +++ b/tests/baselines/reference/classFunctionMerging2.symbols @@ -0,0 +1,39 @@ +=== tests/cases/compiler/classFunctionMerging2.ts === +declare abstract class A { +>A : Symbol(A, Decl(classFunctionMerging2.ts, 0, 0)) + + constructor(p: number); +>p : Symbol(p, Decl(classFunctionMerging2.ts, 1, 16)) + + a: number; +>a : Symbol(A.a, Decl(classFunctionMerging2.ts, 1, 27)) +} + +declare function B(p: string): B; +>B : Symbol(B, Decl(classFunctionMerging2.ts, 3, 1), Decl(classFunctionMerging2.ts, 5, 33)) +>p : Symbol(p, Decl(classFunctionMerging2.ts, 5, 19)) +>B : Symbol(B, Decl(classFunctionMerging2.ts, 3, 1), Decl(classFunctionMerging2.ts, 5, 33)) + +declare class B extends A { +>B : Symbol(B, Decl(classFunctionMerging2.ts, 3, 1), Decl(classFunctionMerging2.ts, 5, 33)) +>A : Symbol(A, Decl(classFunctionMerging2.ts, 0, 0)) + + constructor(p: string); +>p : Symbol(p, Decl(classFunctionMerging2.ts, 7, 16)) + + b: number; +>b : Symbol(B.b, Decl(classFunctionMerging2.ts, 7, 27)) +} + +let b = new B("Hey") +>b : Symbol(b, Decl(classFunctionMerging2.ts, 11, 3)) +>B : Symbol(B, Decl(classFunctionMerging2.ts, 3, 1), Decl(classFunctionMerging2.ts, 5, 33)) + +console.log(b.a) +>console.log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>console : Symbol(console, Decl(lib.dom.d.ts, --, --)) +>log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>b.a : Symbol(A.a, Decl(classFunctionMerging2.ts, 1, 27)) +>b : Symbol(b, Decl(classFunctionMerging2.ts, 11, 3)) +>a : Symbol(A.a, Decl(classFunctionMerging2.ts, 1, 27)) + diff --git a/tests/baselines/reference/classFunctionMerging2.types b/tests/baselines/reference/classFunctionMerging2.types new file mode 100644 index 0000000000000..03bbd61293bcc --- /dev/null +++ b/tests/baselines/reference/classFunctionMerging2.types @@ -0,0 +1,41 @@ +=== tests/cases/compiler/classFunctionMerging2.ts === +declare abstract class A { +>A : A + + constructor(p: number); +>p : number + + a: number; +>a : number +} + +declare function B(p: string): B; +>B : typeof B +>p : string + +declare class B extends A { +>B : B +>A : A + + constructor(p: string); +>p : string + + b: number; +>b : number +} + +let b = new B("Hey") +>b : B +>new B("Hey") : B +>B : typeof B +>"Hey" : "Hey" + +console.log(b.a) +>console.log(b.a) : void +>console.log : (...data: any[]) => void +>console : Console +>log : (...data: any[]) => void +>b.a : number +>b : B +>a : number + diff --git a/tests/baselines/reference/classStaticBlock1(target=es2022).js b/tests/baselines/reference/classStaticBlock1(target=es2022).js new file mode 100644 index 0000000000000..c7180cdabd6f8 --- /dev/null +++ b/tests/baselines/reference/classStaticBlock1(target=es2022).js @@ -0,0 +1,20 @@ +//// [classStaticBlock1.ts] +const a = 2; + +class C { + static { + const a = 1; + + a; + } +} + + +//// [classStaticBlock1.js] +const a = 2; +class C { + static { + const a = 1; + a; + } +} diff --git a/tests/baselines/reference/classStaticBlock1(target=es2022).symbols b/tests/baselines/reference/classStaticBlock1(target=es2022).symbols new file mode 100644 index 0000000000000..e4aa99e0d68d5 --- /dev/null +++ b/tests/baselines/reference/classStaticBlock1(target=es2022).symbols @@ -0,0 +1,16 @@ +=== tests/cases/conformance/classes/classStaticBlock/classStaticBlock1.ts === +const a = 2; +>a : Symbol(a, Decl(classStaticBlock1.ts, 0, 5)) + +class C { +>C : Symbol(C, Decl(classStaticBlock1.ts, 0, 12)) + + static { + const a = 1; +>a : Symbol(a, Decl(classStaticBlock1.ts, 4, 13)) + + a; +>a : Symbol(a, Decl(classStaticBlock1.ts, 4, 13)) + } +} + diff --git a/tests/baselines/reference/classStaticBlock1(target=es2022).types b/tests/baselines/reference/classStaticBlock1(target=es2022).types new file mode 100644 index 0000000000000..a0fd3b4d6480a --- /dev/null +++ b/tests/baselines/reference/classStaticBlock1(target=es2022).types @@ -0,0 +1,18 @@ +=== tests/cases/conformance/classes/classStaticBlock/classStaticBlock1.ts === +const a = 2; +>a : 2 +>2 : 2 + +class C { +>C : C + + static { + const a = 1; +>a : 1 +>1 : 1 + + a; +>a : 1 + } +} + diff --git a/tests/baselines/reference/classStaticBlock10(target=es2015).js b/tests/baselines/reference/classStaticBlock10(target=es2015).js index dcf0be3960cb6..b9129346c7a2f 100644 --- a/tests/baselines/reference/classStaticBlock10(target=es2015).js +++ b/tests/baselines/reference/classStaticBlock10(target=es2015).js @@ -25,7 +25,8 @@ class C2 { const b1 = 222; const b2 = 222; } -} +} + //// [classStaticBlock10.js] var a1 = 1; diff --git a/tests/baselines/reference/classStaticBlock10(target=es2015).symbols b/tests/baselines/reference/classStaticBlock10(target=es2015).symbols index 12d2d16b0784c..c7aca333245ec 100644 --- a/tests/baselines/reference/classStaticBlock10(target=es2015).symbols +++ b/tests/baselines/reference/classStaticBlock10(target=es2015).symbols @@ -56,3 +56,4 @@ class C2 { >b2 : Symbol(b2, Decl(classStaticBlock10.ts, 24, 13)) } } + diff --git a/tests/baselines/reference/classStaticBlock10(target=es2015).types b/tests/baselines/reference/classStaticBlock10(target=es2015).types index dbbf3ebd6b0a4..ceda14a642e38 100644 --- a/tests/baselines/reference/classStaticBlock10(target=es2015).types +++ b/tests/baselines/reference/classStaticBlock10(target=es2015).types @@ -70,3 +70,4 @@ class C2 { >222 : 222 } } + diff --git a/tests/baselines/reference/classStaticBlock10(target=es2022).js b/tests/baselines/reference/classStaticBlock10(target=es2022).js new file mode 100644 index 0000000000000..7fe65ddcace5a --- /dev/null +++ b/tests/baselines/reference/classStaticBlock10(target=es2022).js @@ -0,0 +1,55 @@ +//// [classStaticBlock10.ts] +var a1 = 1; +var a2 = 1; +const b1 = 2; +const b2 = 2; + +function f () { + var a1 = 11; + const b1 = 22; + + class C1 { + static { + var a1 = 111; + var a2 = 111; + const b1 = 222; + const b2 = 222; + } + } +} + +class C2 { + static { + var a1 = 111; + var a2 = 111; + const b1 = 222; + const b2 = 222; + } +} + + +//// [classStaticBlock10.js] +var a1 = 1; +var a2 = 1; +const b1 = 2; +const b2 = 2; +function f() { + var a1 = 11; + const b1 = 22; + class C1 { + static { + var a1 = 111; + var a2 = 111; + const b1 = 222; + const b2 = 222; + } + } +} +class C2 { + static { + var a1 = 111; + var a2 = 111; + const b1 = 222; + const b2 = 222; + } +} diff --git a/tests/baselines/reference/classStaticBlock10(target=es2022).symbols b/tests/baselines/reference/classStaticBlock10(target=es2022).symbols new file mode 100644 index 0000000000000..c7aca333245ec --- /dev/null +++ b/tests/baselines/reference/classStaticBlock10(target=es2022).symbols @@ -0,0 +1,59 @@ +=== tests/cases/conformance/classes/classStaticBlock/classStaticBlock10.ts === +var a1 = 1; +>a1 : Symbol(a1, Decl(classStaticBlock10.ts, 0, 3)) + +var a2 = 1; +>a2 : Symbol(a2, Decl(classStaticBlock10.ts, 1, 3)) + +const b1 = 2; +>b1 : Symbol(b1, Decl(classStaticBlock10.ts, 2, 5)) + +const b2 = 2; +>b2 : Symbol(b2, Decl(classStaticBlock10.ts, 3, 5)) + +function f () { +>f : Symbol(f, Decl(classStaticBlock10.ts, 3, 13)) + + var a1 = 11; +>a1 : Symbol(a1, Decl(classStaticBlock10.ts, 6, 7)) + + const b1 = 22; +>b1 : Symbol(b1, Decl(classStaticBlock10.ts, 7, 9)) + + class C1 { +>C1 : Symbol(C1, Decl(classStaticBlock10.ts, 7, 18)) + + static { + var a1 = 111; +>a1 : Symbol(a1, Decl(classStaticBlock10.ts, 11, 15)) + + var a2 = 111; +>a2 : Symbol(a2, Decl(classStaticBlock10.ts, 12, 15)) + + const b1 = 222; +>b1 : Symbol(b1, Decl(classStaticBlock10.ts, 13, 17)) + + const b2 = 222; +>b2 : Symbol(b2, Decl(classStaticBlock10.ts, 14, 17)) + } + } +} + +class C2 { +>C2 : Symbol(C2, Decl(classStaticBlock10.ts, 17, 1)) + + static { + var a1 = 111; +>a1 : Symbol(a1, Decl(classStaticBlock10.ts, 21, 11)) + + var a2 = 111; +>a2 : Symbol(a2, Decl(classStaticBlock10.ts, 22, 11)) + + const b1 = 222; +>b1 : Symbol(b1, Decl(classStaticBlock10.ts, 23, 13)) + + const b2 = 222; +>b2 : Symbol(b2, Decl(classStaticBlock10.ts, 24, 13)) + } +} + diff --git a/tests/baselines/reference/classStaticBlock10(target=es2022).types b/tests/baselines/reference/classStaticBlock10(target=es2022).types new file mode 100644 index 0000000000000..ceda14a642e38 --- /dev/null +++ b/tests/baselines/reference/classStaticBlock10(target=es2022).types @@ -0,0 +1,73 @@ +=== tests/cases/conformance/classes/classStaticBlock/classStaticBlock10.ts === +var a1 = 1; +>a1 : number +>1 : 1 + +var a2 = 1; +>a2 : number +>1 : 1 + +const b1 = 2; +>b1 : 2 +>2 : 2 + +const b2 = 2; +>b2 : 2 +>2 : 2 + +function f () { +>f : () => void + + var a1 = 11; +>a1 : number +>11 : 11 + + const b1 = 22; +>b1 : 22 +>22 : 22 + + class C1 { +>C1 : C1 + + static { + var a1 = 111; +>a1 : number +>111 : 111 + + var a2 = 111; +>a2 : number +>111 : 111 + + const b1 = 222; +>b1 : 222 +>222 : 222 + + const b2 = 222; +>b2 : 222 +>222 : 222 + } + } +} + +class C2 { +>C2 : C2 + + static { + var a1 = 111; +>a1 : number +>111 : 111 + + var a2 = 111; +>a2 : number +>111 : 111 + + const b1 = 222; +>b1 : 222 +>222 : 222 + + const b2 = 222; +>b2 : 222 +>222 : 222 + } +} + diff --git a/tests/baselines/reference/classStaticBlock10(target=es5).js b/tests/baselines/reference/classStaticBlock10(target=es5).js index e390c2eb62da5..0c5cb146bc71e 100644 --- a/tests/baselines/reference/classStaticBlock10(target=es5).js +++ b/tests/baselines/reference/classStaticBlock10(target=es5).js @@ -25,7 +25,8 @@ class C2 { const b1 = 222; const b2 = 222; } -} +} + //// [classStaticBlock10.js] var a1 = 1; diff --git a/tests/baselines/reference/classStaticBlock10(target=es5).symbols b/tests/baselines/reference/classStaticBlock10(target=es5).symbols index 12d2d16b0784c..c7aca333245ec 100644 --- a/tests/baselines/reference/classStaticBlock10(target=es5).symbols +++ b/tests/baselines/reference/classStaticBlock10(target=es5).symbols @@ -56,3 +56,4 @@ class C2 { >b2 : Symbol(b2, Decl(classStaticBlock10.ts, 24, 13)) } } + diff --git a/tests/baselines/reference/classStaticBlock10(target=es5).types b/tests/baselines/reference/classStaticBlock10(target=es5).types index dbbf3ebd6b0a4..ceda14a642e38 100644 --- a/tests/baselines/reference/classStaticBlock10(target=es5).types +++ b/tests/baselines/reference/classStaticBlock10(target=es5).types @@ -70,3 +70,4 @@ class C2 { >222 : 222 } } + diff --git a/tests/baselines/reference/classStaticBlock10(target=esnext).js b/tests/baselines/reference/classStaticBlock10(target=esnext).js index 6593ae74ffed9..7fe65ddcace5a 100644 --- a/tests/baselines/reference/classStaticBlock10(target=esnext).js +++ b/tests/baselines/reference/classStaticBlock10(target=esnext).js @@ -25,7 +25,8 @@ class C2 { const b1 = 222; const b2 = 222; } -} +} + //// [classStaticBlock10.js] var a1 = 1; diff --git a/tests/baselines/reference/classStaticBlock10(target=esnext).symbols b/tests/baselines/reference/classStaticBlock10(target=esnext).symbols index 12d2d16b0784c..c7aca333245ec 100644 --- a/tests/baselines/reference/classStaticBlock10(target=esnext).symbols +++ b/tests/baselines/reference/classStaticBlock10(target=esnext).symbols @@ -56,3 +56,4 @@ class C2 { >b2 : Symbol(b2, Decl(classStaticBlock10.ts, 24, 13)) } } + diff --git a/tests/baselines/reference/classStaticBlock10(target=esnext).types b/tests/baselines/reference/classStaticBlock10(target=esnext).types index dbbf3ebd6b0a4..ceda14a642e38 100644 --- a/tests/baselines/reference/classStaticBlock10(target=esnext).types +++ b/tests/baselines/reference/classStaticBlock10(target=esnext).types @@ -70,3 +70,4 @@ class C2 { >222 : 222 } } + diff --git a/tests/baselines/reference/classStaticBlock11(target=es2022).js b/tests/baselines/reference/classStaticBlock11(target=es2022).js new file mode 100644 index 0000000000000..42228bd5d223d --- /dev/null +++ b/tests/baselines/reference/classStaticBlock11(target=es2022).js @@ -0,0 +1,27 @@ +//// [classStaticBlock11.ts] +let getX; +class C { + #x = 1 + constructor(x: number) { + this.#x = x; + } + + static { + // getX has privileged access to #x + getX = (obj: C) => obj.#x; + } +} + + +//// [classStaticBlock11.js] +let getX; +class C { + #x = 1; + constructor(x) { + this.#x = x; + } + static { + // getX has privileged access to #x + getX = (obj) => obj.#x; + } +} diff --git a/tests/baselines/reference/classStaticBlock11(target=es2022).symbols b/tests/baselines/reference/classStaticBlock11(target=es2022).symbols new file mode 100644 index 0000000000000..d61ff7c9e16f9 --- /dev/null +++ b/tests/baselines/reference/classStaticBlock11(target=es2022).symbols @@ -0,0 +1,30 @@ +=== tests/cases/conformance/classes/classStaticBlock/classStaticBlock11.ts === +let getX; +>getX : Symbol(getX, Decl(classStaticBlock11.ts, 0, 3)) + +class C { +>C : Symbol(C, Decl(classStaticBlock11.ts, 0, 9)) + + #x = 1 +>#x : Symbol(C.#x, Decl(classStaticBlock11.ts, 1, 9)) + + constructor(x: number) { +>x : Symbol(x, Decl(classStaticBlock11.ts, 3, 14)) + + this.#x = x; +>this.#x : Symbol(C.#x, Decl(classStaticBlock11.ts, 1, 9)) +>this : Symbol(C, Decl(classStaticBlock11.ts, 0, 9)) +>x : Symbol(x, Decl(classStaticBlock11.ts, 3, 14)) + } + + static { + // getX has privileged access to #x + getX = (obj: C) => obj.#x; +>getX : Symbol(getX, Decl(classStaticBlock11.ts, 0, 3)) +>obj : Symbol(obj, Decl(classStaticBlock11.ts, 9, 12)) +>C : Symbol(C, Decl(classStaticBlock11.ts, 0, 9)) +>obj.#x : Symbol(C.#x, Decl(classStaticBlock11.ts, 1, 9)) +>obj : Symbol(obj, Decl(classStaticBlock11.ts, 9, 12)) + } +} + diff --git a/tests/baselines/reference/classStaticBlock11(target=es2022).types b/tests/baselines/reference/classStaticBlock11(target=es2022).types new file mode 100644 index 0000000000000..c295e7b93df36 --- /dev/null +++ b/tests/baselines/reference/classStaticBlock11(target=es2022).types @@ -0,0 +1,33 @@ +=== tests/cases/conformance/classes/classStaticBlock/classStaticBlock11.ts === +let getX; +>getX : any + +class C { +>C : C + + #x = 1 +>#x : number +>1 : 1 + + constructor(x: number) { +>x : number + + this.#x = x; +>this.#x = x : number +>this.#x : number +>this : this +>x : number + } + + static { + // getX has privileged access to #x + getX = (obj: C) => obj.#x; +>getX = (obj: C) => obj.#x : (obj: C) => number +>getX : any +>(obj: C) => obj.#x : (obj: C) => number +>obj : C +>obj.#x : number +>obj : C + } +} + diff --git a/tests/baselines/reference/classStaticBlock13(target=es2015).js b/tests/baselines/reference/classStaticBlock13(target=es2015).js index 442dbba65755f..de7cb926fba12 100644 --- a/tests/baselines/reference/classStaticBlock13(target=es2015).js +++ b/tests/baselines/reference/classStaticBlock13(target=es2015).js @@ -1,7 +1,7 @@ //// [classStaticBlock13.ts] class C { static #x = 123; - + static { console.log(C.#x) } diff --git a/tests/baselines/reference/classStaticBlock13(target=es2015).symbols b/tests/baselines/reference/classStaticBlock13(target=es2015).symbols index 7f94ddadbe167..dec13b283d9bd 100644 --- a/tests/baselines/reference/classStaticBlock13(target=es2015).symbols +++ b/tests/baselines/reference/classStaticBlock13(target=es2015).symbols @@ -4,7 +4,7 @@ class C { static #x = 123; >#x : Symbol(C.#x, Decl(classStaticBlock13.ts, 0, 9)) - + static { console.log(C.#x) >console.log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) diff --git a/tests/baselines/reference/classStaticBlock13(target=es2015).types b/tests/baselines/reference/classStaticBlock13(target=es2015).types index 735409daa5c44..1de5122ac9f6f 100644 --- a/tests/baselines/reference/classStaticBlock13(target=es2015).types +++ b/tests/baselines/reference/classStaticBlock13(target=es2015).types @@ -5,7 +5,7 @@ class C { static #x = 123; >#x : number >123 : 123 - + static { console.log(C.#x) >console.log(C.#x) : void diff --git a/tests/baselines/reference/classStaticBlock13(target=es2022).js b/tests/baselines/reference/classStaticBlock13(target=es2022).js new file mode 100644 index 0000000000000..10bd99ec48105 --- /dev/null +++ b/tests/baselines/reference/classStaticBlock13(target=es2022).js @@ -0,0 +1,24 @@ +//// [classStaticBlock13.ts] +class C { + static #x = 123; + + static { + console.log(C.#x) + } + + foo () { + return C.#x; + } +} + + +//// [classStaticBlock13.js] +class C { + static #x = 123; + static { + console.log(C.#x); + } + foo() { + return C.#x; + } +} diff --git a/tests/baselines/reference/classStaticBlock13(target=es2022).symbols b/tests/baselines/reference/classStaticBlock13(target=es2022).symbols new file mode 100644 index 0000000000000..dec13b283d9bd --- /dev/null +++ b/tests/baselines/reference/classStaticBlock13(target=es2022).symbols @@ -0,0 +1,25 @@ +=== tests/cases/conformance/classes/classStaticBlock/classStaticBlock13.ts === +class C { +>C : Symbol(C, Decl(classStaticBlock13.ts, 0, 0)) + + static #x = 123; +>#x : Symbol(C.#x, Decl(classStaticBlock13.ts, 0, 9)) + + static { + console.log(C.#x) +>console.log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>console : Symbol(console, Decl(lib.dom.d.ts, --, --)) +>log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>C.#x : Symbol(C.#x, Decl(classStaticBlock13.ts, 0, 9)) +>C : Symbol(C, Decl(classStaticBlock13.ts, 0, 0)) + } + + foo () { +>foo : Symbol(C.foo, Decl(classStaticBlock13.ts, 5, 3)) + + return C.#x; +>C.#x : Symbol(C.#x, Decl(classStaticBlock13.ts, 0, 9)) +>C : Symbol(C, Decl(classStaticBlock13.ts, 0, 0)) + } +} + diff --git a/tests/baselines/reference/classStaticBlock13(target=es2022).types b/tests/baselines/reference/classStaticBlock13(target=es2022).types new file mode 100644 index 0000000000000..1de5122ac9f6f --- /dev/null +++ b/tests/baselines/reference/classStaticBlock13(target=es2022).types @@ -0,0 +1,27 @@ +=== tests/cases/conformance/classes/classStaticBlock/classStaticBlock13.ts === +class C { +>C : C + + static #x = 123; +>#x : number +>123 : 123 + + static { + console.log(C.#x) +>console.log(C.#x) : void +>console.log : (...data: any[]) => void +>console : Console +>log : (...data: any[]) => void +>C.#x : number +>C : typeof C + } + + foo () { +>foo : () => number + + return C.#x; +>C.#x : number +>C : typeof C + } +} + diff --git a/tests/baselines/reference/classStaticBlock13(target=esnext).js b/tests/baselines/reference/classStaticBlock13(target=esnext).js index 5821962aee033..10bd99ec48105 100644 --- a/tests/baselines/reference/classStaticBlock13(target=esnext).js +++ b/tests/baselines/reference/classStaticBlock13(target=esnext).js @@ -1,7 +1,7 @@ //// [classStaticBlock13.ts] class C { static #x = 123; - + static { console.log(C.#x) } diff --git a/tests/baselines/reference/classStaticBlock13(target=esnext).symbols b/tests/baselines/reference/classStaticBlock13(target=esnext).symbols index 7f94ddadbe167..dec13b283d9bd 100644 --- a/tests/baselines/reference/classStaticBlock13(target=esnext).symbols +++ b/tests/baselines/reference/classStaticBlock13(target=esnext).symbols @@ -4,7 +4,7 @@ class C { static #x = 123; >#x : Symbol(C.#x, Decl(classStaticBlock13.ts, 0, 9)) - + static { console.log(C.#x) >console.log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) diff --git a/tests/baselines/reference/classStaticBlock13(target=esnext).types b/tests/baselines/reference/classStaticBlock13(target=esnext).types index 735409daa5c44..1de5122ac9f6f 100644 --- a/tests/baselines/reference/classStaticBlock13(target=esnext).types +++ b/tests/baselines/reference/classStaticBlock13(target=esnext).types @@ -5,7 +5,7 @@ class C { static #x = 123; >#x : number >123 : 123 - + static { console.log(C.#x) >console.log(C.#x) : void diff --git a/tests/baselines/reference/classStaticBlock15(target=es2022).js b/tests/baselines/reference/classStaticBlock15(target=es2022).js new file mode 100644 index 0000000000000..5646a0ef941b3 --- /dev/null +++ b/tests/baselines/reference/classStaticBlock15(target=es2022).js @@ -0,0 +1,33 @@ +//// [classStaticBlock15.ts] +var _C__1; + +class C { + static #_1 = 1; + static #_3 = 3; + static #_5 = 5; + + static {} + static {} + static {} + static {} + static {} + static {} +} + +console.log(_C__1) + + +//// [classStaticBlock15.js] +var _C__1; +class C { + static #_1 = 1; + static #_3 = 3; + static #_5 = 5; + static { } + static { } + static { } + static { } + static { } + static { } +} +console.log(_C__1); diff --git a/tests/baselines/reference/classStaticBlock15(target=es2022).symbols b/tests/baselines/reference/classStaticBlock15(target=es2022).symbols new file mode 100644 index 0000000000000..12ab9dd68059b --- /dev/null +++ b/tests/baselines/reference/classStaticBlock15(target=es2022).symbols @@ -0,0 +1,30 @@ +=== tests/cases/conformance/classes/classStaticBlock/classStaticBlock15.ts === +var _C__1; +>_C__1 : Symbol(_C__1, Decl(classStaticBlock15.ts, 0, 3)) + +class C { +>C : Symbol(C, Decl(classStaticBlock15.ts, 0, 10)) + + static #_1 = 1; +>#_1 : Symbol(C.#_1, Decl(classStaticBlock15.ts, 2, 9)) + + static #_3 = 3; +>#_3 : Symbol(C.#_3, Decl(classStaticBlock15.ts, 3, 17)) + + static #_5 = 5; +>#_5 : Symbol(C.#_5, Decl(classStaticBlock15.ts, 4, 17)) + + static {} + static {} + static {} + static {} + static {} + static {} +} + +console.log(_C__1) +>console.log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>console : Symbol(console, Decl(lib.dom.d.ts, --, --)) +>log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>_C__1 : Symbol(_C__1, Decl(classStaticBlock15.ts, 0, 3)) + diff --git a/tests/baselines/reference/classStaticBlock15(target=es2022).types b/tests/baselines/reference/classStaticBlock15(target=es2022).types new file mode 100644 index 0000000000000..262ff1a4c2769 --- /dev/null +++ b/tests/baselines/reference/classStaticBlock15(target=es2022).types @@ -0,0 +1,34 @@ +=== tests/cases/conformance/classes/classStaticBlock/classStaticBlock15.ts === +var _C__1; +>_C__1 : any + +class C { +>C : C + + static #_1 = 1; +>#_1 : number +>1 : 1 + + static #_3 = 3; +>#_3 : number +>3 : 3 + + static #_5 = 5; +>#_5 : number +>5 : 5 + + static {} + static {} + static {} + static {} + static {} + static {} +} + +console.log(_C__1) +>console.log(_C__1) : void +>console.log : (...data: any[]) => void +>console : Console +>log : (...data: any[]) => void +>_C__1 : any + diff --git a/tests/baselines/reference/classStaticBlock18(target=es2022).js b/tests/baselines/reference/classStaticBlock18(target=es2022).js new file mode 100644 index 0000000000000..ed8123e3e059d --- /dev/null +++ b/tests/baselines/reference/classStaticBlock18(target=es2022).js @@ -0,0 +1,30 @@ +//// [classStaticBlock18.ts] +function foo () { + return class { + static foo = 1; + static { + const c = class { + static bar = 2; + static { + // do + } + } + } + } +} + + +//// [classStaticBlock18.js] +function foo() { + return class { + static foo = 1; + static { + const c = class { + static bar = 2; + static { + // do + } + }; + } + }; +} diff --git a/tests/baselines/reference/classStaticBlock18(target=es2022).symbols b/tests/baselines/reference/classStaticBlock18(target=es2022).symbols new file mode 100644 index 0000000000000..22e9413ef67ef --- /dev/null +++ b/tests/baselines/reference/classStaticBlock18(target=es2022).symbols @@ -0,0 +1,23 @@ +=== tests/cases/conformance/classes/classStaticBlock/classStaticBlock18.ts === +function foo () { +>foo : Symbol(foo, Decl(classStaticBlock18.ts, 0, 0)) + + return class { + static foo = 1; +>foo : Symbol((Anonymous class).foo, Decl(classStaticBlock18.ts, 1, 16)) + + static { + const c = class { +>c : Symbol(c, Decl(classStaticBlock18.ts, 4, 11)) + + static bar = 2; +>bar : Symbol(c.bar, Decl(classStaticBlock18.ts, 4, 23)) + + static { + // do + } + } + } + } +} + diff --git a/tests/baselines/reference/classStaticBlock18(target=es2022).types b/tests/baselines/reference/classStaticBlock18(target=es2022).types new file mode 100644 index 0000000000000..5bc9155932a2b --- /dev/null +++ b/tests/baselines/reference/classStaticBlock18(target=es2022).types @@ -0,0 +1,28 @@ +=== tests/cases/conformance/classes/classStaticBlock/classStaticBlock18.ts === +function foo () { +>foo : () => typeof (Anonymous class) + + return class { +>class { static foo = 1; static { const c = class { static bar = 2; static { // do } } } } : typeof (Anonymous class) + + static foo = 1; +>foo : number +>1 : 1 + + static { + const c = class { +>c : typeof c +>class { static bar = 2; static { // do } } : typeof c + + static bar = 2; +>bar : number +>2 : 2 + + static { + // do + } + } + } + } +} + diff --git a/tests/baselines/reference/classStaticBlock2(target=es2022).js b/tests/baselines/reference/classStaticBlock2(target=es2022).js new file mode 100644 index 0000000000000..ccff801b61335 --- /dev/null +++ b/tests/baselines/reference/classStaticBlock2(target=es2022).js @@ -0,0 +1,36 @@ +//// [classStaticBlock2.ts] +const a = 1; +const b = 2; + +class C { + static { + const a = 11; + + a; + b; + } + + static { + const a = 11; + + a; + b; + } +} + + +//// [classStaticBlock2.js] +const a = 1; +const b = 2; +class C { + static { + const a = 11; + a; + b; + } + static { + const a = 11; + a; + b; + } +} diff --git a/tests/baselines/reference/classStaticBlock2(target=es2022).symbols b/tests/baselines/reference/classStaticBlock2(target=es2022).symbols new file mode 100644 index 0000000000000..93bfa964aaeb6 --- /dev/null +++ b/tests/baselines/reference/classStaticBlock2(target=es2022).symbols @@ -0,0 +1,33 @@ +=== tests/cases/conformance/classes/classStaticBlock/classStaticBlock2.ts === +const a = 1; +>a : Symbol(a, Decl(classStaticBlock2.ts, 0, 5)) + +const b = 2; +>b : Symbol(b, Decl(classStaticBlock2.ts, 1, 5)) + +class C { +>C : Symbol(C, Decl(classStaticBlock2.ts, 1, 12)) + + static { + const a = 11; +>a : Symbol(a, Decl(classStaticBlock2.ts, 5, 13)) + + a; +>a : Symbol(a, Decl(classStaticBlock2.ts, 5, 13)) + + b; +>b : Symbol(b, Decl(classStaticBlock2.ts, 1, 5)) + } + + static { + const a = 11; +>a : Symbol(a, Decl(classStaticBlock2.ts, 12, 13)) + + a; +>a : Symbol(a, Decl(classStaticBlock2.ts, 12, 13)) + + b; +>b : Symbol(b, Decl(classStaticBlock2.ts, 1, 5)) + } +} + diff --git a/tests/baselines/reference/classStaticBlock2(target=es2022).types b/tests/baselines/reference/classStaticBlock2(target=es2022).types new file mode 100644 index 0000000000000..2e22833b22ddf --- /dev/null +++ b/tests/baselines/reference/classStaticBlock2(target=es2022).types @@ -0,0 +1,37 @@ +=== tests/cases/conformance/classes/classStaticBlock/classStaticBlock2.ts === +const a = 1; +>a : 1 +>1 : 1 + +const b = 2; +>b : 2 +>2 : 2 + +class C { +>C : C + + static { + const a = 11; +>a : 11 +>11 : 11 + + a; +>a : 11 + + b; +>b : 2 + } + + static { + const a = 11; +>a : 11 +>11 : 11 + + a; +>a : 11 + + b; +>b : 2 + } +} + diff --git a/tests/baselines/reference/classStaticBlock22.errors.txt b/tests/baselines/reference/classStaticBlock22(target=es2022).errors.txt similarity index 97% rename from tests/baselines/reference/classStaticBlock22.errors.txt rename to tests/baselines/reference/classStaticBlock22(target=es2022).errors.txt index cb89b33e3bc3b..2c4916721197e 100644 --- a/tests/baselines/reference/classStaticBlock22.errors.txt +++ b/tests/baselines/reference/classStaticBlock22(target=es2022).errors.txt @@ -91,4 +91,5 @@ tests/cases/conformance/classes/classStaticBlock/classStaticBlock22.ts(32,12): e static propFunc = function () { await; } } } - } \ No newline at end of file + } + \ No newline at end of file diff --git a/tests/baselines/reference/classStaticBlock22.js b/tests/baselines/reference/classStaticBlock22(target=es2022).js similarity index 97% rename from tests/baselines/reference/classStaticBlock22.js rename to tests/baselines/reference/classStaticBlock22(target=es2022).js index bed746875acdf..c148e501751f2 100644 --- a/tests/baselines/reference/classStaticBlock22.js +++ b/tests/baselines/reference/classStaticBlock22(target=es2022).js @@ -68,7 +68,8 @@ class C { static propFunc = function () { await; } } } -} +} + //// [classStaticBlock22.js] let await; diff --git a/tests/baselines/reference/classStaticBlock22.symbols b/tests/baselines/reference/classStaticBlock22(target=es2022).symbols similarity index 97% rename from tests/baselines/reference/classStaticBlock22.symbols rename to tests/baselines/reference/classStaticBlock22(target=es2022).symbols index 9f78f245322f3..6d927f0fe6237 100644 --- a/tests/baselines/reference/classStaticBlock22.symbols +++ b/tests/baselines/reference/classStaticBlock22(target=es2022).symbols @@ -128,3 +128,4 @@ class C { } } } + diff --git a/tests/baselines/reference/classStaticBlock22.types b/tests/baselines/reference/classStaticBlock22(target=es2022).types similarity index 94% rename from tests/baselines/reference/classStaticBlock22.types rename to tests/baselines/reference/classStaticBlock22(target=es2022).types index 8334f1b584217..ea9ac111e6129 100644 --- a/tests/baselines/reference/classStaticBlock22.types +++ b/tests/baselines/reference/classStaticBlock22(target=es2022).types @@ -148,3 +148,4 @@ class C { } } } + diff --git a/tests/baselines/reference/classStaticBlock22(target=esnext).errors.txt b/tests/baselines/reference/classStaticBlock22(target=esnext).errors.txt new file mode 100644 index 0000000000000..2c4916721197e --- /dev/null +++ b/tests/baselines/reference/classStaticBlock22(target=esnext).errors.txt @@ -0,0 +1,95 @@ +tests/cases/conformance/classes/classStaticBlock/classStaticBlock22.ts(4,9): error TS1359: Identifier expected. 'await' is a reserved word that cannot be used here. +tests/cases/conformance/classes/classStaticBlock/classStaticBlock22.ts(7,11): error TS1359: Identifier expected. 'await' is a reserved word that cannot be used here. +tests/cases/conformance/classes/classStaticBlock/classStaticBlock22.ts(13,9): error TS1359: Identifier expected. 'await' is a reserved word that cannot be used here. +tests/cases/conformance/classes/classStaticBlock/classStaticBlock22.ts(16,14): error TS1359: Identifier expected. 'await' is a reserved word that cannot be used here. +tests/cases/conformance/classes/classStaticBlock/classStaticBlock22.ts(19,11): error TS1359: Identifier expected. 'await' is a reserved word that cannot be used here. +tests/cases/conformance/classes/classStaticBlock/classStaticBlock22.ts(29,15): error TS1359: Identifier expected. 'await' is a reserved word that cannot be used here. +tests/cases/conformance/classes/classStaticBlock/classStaticBlock22.ts(32,12): error TS1359: Identifier expected. 'await' is a reserved word that cannot be used here. + + +==== tests/cases/conformance/classes/classStaticBlock/classStaticBlock22.ts (7 errors) ==== + let await: "any"; + class C { + static { + let await: any; // illegal, cannot declare a new binding for await + ~~~~~ +!!! error TS1359: Identifier expected. 'await' is a reserved word that cannot be used here. + } + static { + let { await } = {} as any; // illegal, cannot declare a new binding for await + ~~~~~ +!!! error TS1359: Identifier expected. 'await' is a reserved word that cannot be used here. + } + static { + let { await: other } = {} as any; // legal + } + static { + let await; // illegal, cannot declare a new binding for await + ~~~~~ +!!! error TS1359: Identifier expected. 'await' is a reserved word that cannot be used here. + } + static { + function await() { }; // illegal + ~~~~~ +!!! error TS1359: Identifier expected. 'await' is a reserved word that cannot be used here. + } + static { + class await { }; // illegal + ~~~~~ +!!! error TS1359: Identifier expected. 'await' is a reserved word that cannot be used here. + } + + static { + class D { + await = 1; // legal + x = await; // legal (initializers have an implicit function boundary) + }; + } + static { + (function await() { }); // legal, 'await' in function expression name not bound inside of static block + ~~~~~ +!!! error TS1359: Identifier expected. 'await' is a reserved word that cannot be used here. + } + static { + (class await { }); // legal, 'await' in class expression name not bound inside of static block + ~~~~~ +!!! error TS1359: Identifier expected. 'await' is a reserved word that cannot be used here. + } + static { + (function () { return await; }); // legal, 'await' is inside of a new function boundary + } + static { + (() => await); // legal, 'await' is inside of a new function boundary + } + + static { + class E { + constructor() { await; } + method() { await; } + get accessor() { + await; + return 1; + } + set accessor(v: any) { + await; + } + propLambda = () => { await; } + propFunc = function () { await; } + } + } + static { + class S { + static method() { await; } + static get accessor() { + await; + return 1; + } + static set accessor(v: any) { + await; + } + static propLambda = () => { await; } + static propFunc = function () { await; } + } + } + } + \ No newline at end of file diff --git a/tests/baselines/reference/classStaticBlock22(target=esnext).js b/tests/baselines/reference/classStaticBlock22(target=esnext).js new file mode 100644 index 0000000000000..c148e501751f2 --- /dev/null +++ b/tests/baselines/reference/classStaticBlock22(target=esnext).js @@ -0,0 +1,147 @@ +//// [classStaticBlock22.ts] +let await: "any"; +class C { + static { + let await: any; // illegal, cannot declare a new binding for await + } + static { + let { await } = {} as any; // illegal, cannot declare a new binding for await + } + static { + let { await: other } = {} as any; // legal + } + static { + let await; // illegal, cannot declare a new binding for await + } + static { + function await() { }; // illegal + } + static { + class await { }; // illegal + } + + static { + class D { + await = 1; // legal + x = await; // legal (initializers have an implicit function boundary) + }; + } + static { + (function await() { }); // legal, 'await' in function expression name not bound inside of static block + } + static { + (class await { }); // legal, 'await' in class expression name not bound inside of static block + } + static { + (function () { return await; }); // legal, 'await' is inside of a new function boundary + } + static { + (() => await); // legal, 'await' is inside of a new function boundary + } + + static { + class E { + constructor() { await; } + method() { await; } + get accessor() { + await; + return 1; + } + set accessor(v: any) { + await; + } + propLambda = () => { await; } + propFunc = function () { await; } + } + } + static { + class S { + static method() { await; } + static get accessor() { + await; + return 1; + } + static set accessor(v: any) { + await; + } + static propLambda = () => { await; } + static propFunc = function () { await; } + } + } +} + + +//// [classStaticBlock22.js] +let await; +class C { + static { + let await; // illegal, cannot declare a new binding for await + } + static { + let { await } = {}; // illegal, cannot declare a new binding for await + } + static { + let { await: other } = {}; // legal + } + static { + let await; // illegal, cannot declare a new binding for await + } + static { + function await() { } + ; // illegal + } + static { + class await { + } + ; // illegal + } + static { + class D { + await = 1; // legal + x = await; // legal (initializers have an implicit function boundary) + } + ; + } + static { + (function await() { }); // legal, 'await' in function expression name not bound inside of static block + } + static { + (class await { + }); // legal, 'await' in class expression name not bound inside of static block + } + static { + (function () { return await; }); // legal, 'await' is inside of a new function boundary + } + static { + (() => await); // legal, 'await' is inside of a new function boundary + } + static { + class E { + constructor() { await; } + method() { await; } + get accessor() { + await; + return 1; + } + set accessor(v) { + await; + } + propLambda = () => { await; }; + propFunc = function () { await; }; + } + } + static { + class S { + static method() { await; } + static get accessor() { + await; + return 1; + } + static set accessor(v) { + await; + } + static propLambda = () => { await; }; + static propFunc = function () { await; }; + } + } +} diff --git a/tests/baselines/reference/classStaticBlock22(target=esnext).symbols b/tests/baselines/reference/classStaticBlock22(target=esnext).symbols new file mode 100644 index 0000000000000..6d927f0fe6237 --- /dev/null +++ b/tests/baselines/reference/classStaticBlock22(target=esnext).symbols @@ -0,0 +1,131 @@ +=== tests/cases/conformance/classes/classStaticBlock/classStaticBlock22.ts === +let await: "any"; +>await : Symbol(await, Decl(classStaticBlock22.ts, 0, 3)) + +class C { +>C : Symbol(C, Decl(classStaticBlock22.ts, 0, 17)) + + static { + let await: any; // illegal, cannot declare a new binding for await +>await : Symbol(await, Decl(classStaticBlock22.ts, 3, 7)) + } + static { + let { await } = {} as any; // illegal, cannot declare a new binding for await +>await : Symbol(await, Decl(classStaticBlock22.ts, 6, 9)) + } + static { + let { await: other } = {} as any; // legal +>other : Symbol(other, Decl(classStaticBlock22.ts, 9, 9)) + } + static { + let await; // illegal, cannot declare a new binding for await +>await : Symbol(await, Decl(classStaticBlock22.ts, 12, 7)) + } + static { + function await() { }; // illegal +>await : Symbol(await, Decl(classStaticBlock22.ts, 14, 10)) + } + static { + class await { }; // illegal +>await : Symbol(await, Decl(classStaticBlock22.ts, 17, 10)) + } + + static { + class D { +>D : Symbol(D, Decl(classStaticBlock22.ts, 21, 10)) + + await = 1; // legal +>await : Symbol(D.await, Decl(classStaticBlock22.ts, 22, 13)) + + x = await; // legal (initializers have an implicit function boundary) +>x : Symbol(D.x, Decl(classStaticBlock22.ts, 23, 16)) +>await : Symbol(await, Decl(classStaticBlock22.ts, 0, 3)) + + }; + } + static { + (function await() { }); // legal, 'await' in function expression name not bound inside of static block +>await : Symbol(await, Decl(classStaticBlock22.ts, 28, 5)) + } + static { + (class await { }); // legal, 'await' in class expression name not bound inside of static block +>await : Symbol(await, Decl(classStaticBlock22.ts, 31, 5)) + } + static { + (function () { return await; }); // legal, 'await' is inside of a new function boundary +>await : Symbol(await, Decl(classStaticBlock22.ts, 0, 3)) + } + static { + (() => await); // legal, 'await' is inside of a new function boundary +>await : Symbol(await, Decl(classStaticBlock22.ts, 0, 3)) + } + + static { + class E { +>E : Symbol(E, Decl(classStaticBlock22.ts, 40, 10)) + + constructor() { await; } +>await : Symbol(await, Decl(classStaticBlock22.ts, 0, 3)) + + method() { await; } +>method : Symbol(E.method, Decl(classStaticBlock22.ts, 42, 30)) +>await : Symbol(await, Decl(classStaticBlock22.ts, 0, 3)) + + get accessor() { +>accessor : Symbol(E.accessor, Decl(classStaticBlock22.ts, 43, 25), Decl(classStaticBlock22.ts, 47, 7)) + + await; +>await : Symbol(await, Decl(classStaticBlock22.ts, 0, 3)) + + return 1; + } + set accessor(v: any) { +>accessor : Symbol(E.accessor, Decl(classStaticBlock22.ts, 43, 25), Decl(classStaticBlock22.ts, 47, 7)) +>v : Symbol(v, Decl(classStaticBlock22.ts, 48, 19)) + + await; +>await : Symbol(await, Decl(classStaticBlock22.ts, 0, 3)) + } + propLambda = () => { await; } +>propLambda : Symbol(E.propLambda, Decl(classStaticBlock22.ts, 50, 7)) +>await : Symbol(await, Decl(classStaticBlock22.ts, 0, 3)) + + propFunc = function () { await; } +>propFunc : Symbol(E.propFunc, Decl(classStaticBlock22.ts, 51, 35)) +>await : Symbol(await, Decl(classStaticBlock22.ts, 0, 3)) + } + } + static { + class S { +>S : Symbol(S, Decl(classStaticBlock22.ts, 55, 10)) + + static method() { await; } +>method : Symbol(S.method, Decl(classStaticBlock22.ts, 56, 13)) +>await : Symbol(await, Decl(classStaticBlock22.ts, 0, 3)) + + static get accessor() { +>accessor : Symbol(S.accessor, Decl(classStaticBlock22.ts, 57, 32), Decl(classStaticBlock22.ts, 61, 7)) + + await; +>await : Symbol(await, Decl(classStaticBlock22.ts, 0, 3)) + + return 1; + } + static set accessor(v: any) { +>accessor : Symbol(S.accessor, Decl(classStaticBlock22.ts, 57, 32), Decl(classStaticBlock22.ts, 61, 7)) +>v : Symbol(v, Decl(classStaticBlock22.ts, 62, 26)) + + await; +>await : Symbol(await, Decl(classStaticBlock22.ts, 0, 3)) + } + static propLambda = () => { await; } +>propLambda : Symbol(S.propLambda, Decl(classStaticBlock22.ts, 64, 7)) +>await : Symbol(await, Decl(classStaticBlock22.ts, 0, 3)) + + static propFunc = function () { await; } +>propFunc : Symbol(S.propFunc, Decl(classStaticBlock22.ts, 65, 42)) +>await : Symbol(await, Decl(classStaticBlock22.ts, 0, 3)) + } + } +} + diff --git a/tests/baselines/reference/classStaticBlock22(target=esnext).types b/tests/baselines/reference/classStaticBlock22(target=esnext).types new file mode 100644 index 0000000000000..ea9ac111e6129 --- /dev/null +++ b/tests/baselines/reference/classStaticBlock22(target=esnext).types @@ -0,0 +1,151 @@ +=== tests/cases/conformance/classes/classStaticBlock/classStaticBlock22.ts === +let await: "any"; +>await : "any" + +class C { +>C : C + + static { + let await: any; // illegal, cannot declare a new binding for await +>await : any + } + static { + let { await } = {} as any; // illegal, cannot declare a new binding for await +>await : any +>{} as any : any +>{} : {} + } + static { + let { await: other } = {} as any; // legal +>await : any +>other : any +>{} as any : any +>{} : {} + } + static { + let await; // illegal, cannot declare a new binding for await +>await : any + } + static { + function await() { }; // illegal +>await : () => void + } + static { + class await { }; // illegal +>await : await + } + + static { + class D { +>D : D + + await = 1; // legal +>await : number +>1 : 1 + + x = await; // legal (initializers have an implicit function boundary) +>x : "any" +>await : "any" + + }; + } + static { + (function await() { }); // legal, 'await' in function expression name not bound inside of static block +>(function await() { }) : () => void +>function await() { } : () => void +>await : () => void + } + static { + (class await { }); // legal, 'await' in class expression name not bound inside of static block +>(class await { }) : typeof await +>class await { } : typeof await +>await : typeof await + } + static { + (function () { return await; }); // legal, 'await' is inside of a new function boundary +>(function () { return await; }) : () => "any" +>function () { return await; } : () => "any" +>await : "any" + } + static { + (() => await); // legal, 'await' is inside of a new function boundary +>(() => await) : () => "any" +>() => await : () => "any" +>await : "any" + } + + static { + class E { +>E : E + + constructor() { await; } +>await : "any" + + method() { await; } +>method : () => void +>await : "any" + + get accessor() { +>accessor : any + + await; +>await : "any" + + return 1; +>1 : 1 + } + set accessor(v: any) { +>accessor : any +>v : any + + await; +>await : "any" + } + propLambda = () => { await; } +>propLambda : () => void +>() => { await; } : () => void +>await : "any" + + propFunc = function () { await; } +>propFunc : () => void +>function () { await; } : () => void +>await : "any" + } + } + static { + class S { +>S : S + + static method() { await; } +>method : () => void +>await : "any" + + static get accessor() { +>accessor : any + + await; +>await : "any" + + return 1; +>1 : 1 + } + static set accessor(v: any) { +>accessor : any +>v : any + + await; +>await : "any" + } + static propLambda = () => { await; } +>propLambda : () => void +>() => { await; } : () => void +>await : "any" + + static propFunc = function () { await; } +>propFunc : () => void +>function () { await; } : () => void +>await : "any" + } + } +} + diff --git a/tests/baselines/reference/classStaticBlock23.errors.txt b/tests/baselines/reference/classStaticBlock23(target=es2022).errors.txt similarity index 96% rename from tests/baselines/reference/classStaticBlock23.errors.txt rename to tests/baselines/reference/classStaticBlock23(target=es2022).errors.txt index eee258b4a5b12..7e13f7c9e3f54 100644 --- a/tests/baselines/reference/classStaticBlock23.errors.txt +++ b/tests/baselines/reference/classStaticBlock23(target=es2022).errors.txt @@ -25,4 +25,5 @@ tests/cases/conformance/classes/classStaticBlock/classStaticBlock23.ts(14,11): e } } } - } \ No newline at end of file + } + \ No newline at end of file diff --git a/tests/baselines/reference/classStaticBlock23.js b/tests/baselines/reference/classStaticBlock23(target=es2022).js similarity index 96% rename from tests/baselines/reference/classStaticBlock23.js rename to tests/baselines/reference/classStaticBlock23(target=es2022).js index ae72a288a2bab..9795859bc39bd 100644 --- a/tests/baselines/reference/classStaticBlock23.js +++ b/tests/baselines/reference/classStaticBlock23(target=es2022).js @@ -17,7 +17,8 @@ async function foo () { } } } -} +} + //// [classStaticBlock23.js] const nums = [1, 2, 3].map(n => Promise.resolve(n)); diff --git a/tests/baselines/reference/classStaticBlock23.symbols b/tests/baselines/reference/classStaticBlock23(target=es2022).symbols similarity index 97% rename from tests/baselines/reference/classStaticBlock23.symbols rename to tests/baselines/reference/classStaticBlock23(target=es2022).symbols index 39771ac55fbab..2e15bade3be31 100644 --- a/tests/baselines/reference/classStaticBlock23.symbols +++ b/tests/baselines/reference/classStaticBlock23(target=es2022).symbols @@ -46,3 +46,4 @@ async function foo () { } } } + diff --git a/tests/baselines/reference/classStaticBlock23.types b/tests/baselines/reference/classStaticBlock23(target=es2022).types similarity index 95% rename from tests/baselines/reference/classStaticBlock23.types rename to tests/baselines/reference/classStaticBlock23(target=es2022).types index 379a40f31c5d1..421336fa087c9 100644 --- a/tests/baselines/reference/classStaticBlock23.types +++ b/tests/baselines/reference/classStaticBlock23(target=es2022).types @@ -55,3 +55,4 @@ async function foo () { } } } + diff --git a/tests/baselines/reference/classStaticBlock23(target=esnext).errors.txt b/tests/baselines/reference/classStaticBlock23(target=esnext).errors.txt new file mode 100644 index 0000000000000..7e13f7c9e3f54 --- /dev/null +++ b/tests/baselines/reference/classStaticBlock23(target=esnext).errors.txt @@ -0,0 +1,29 @@ +tests/cases/conformance/classes/classStaticBlock/classStaticBlock23.ts(5,9): error TS18038: 'For await' loops cannot be used inside a class static block. +tests/cases/conformance/classes/classStaticBlock/classStaticBlock23.ts(14,11): error TS18038: 'For await' loops cannot be used inside a class static block. + + +==== tests/cases/conformance/classes/classStaticBlock/classStaticBlock23.ts (2 errors) ==== + const nums = [1, 2, 3].map(n => Promise.resolve(n)) + + class C { + static { + for await (const nn of nums) { + ~~~~~ +!!! error TS18038: 'For await' loops cannot be used inside a class static block. + console.log(nn) + } + } + } + + async function foo () { + class C { + static { + for await (const nn of nums) { + ~~~~~ +!!! error TS18038: 'For await' loops cannot be used inside a class static block. + console.log(nn) + } + } + } + } + \ No newline at end of file diff --git a/tests/baselines/reference/classStaticBlock23(target=esnext).js b/tests/baselines/reference/classStaticBlock23(target=esnext).js new file mode 100644 index 0000000000000..9795859bc39bd --- /dev/null +++ b/tests/baselines/reference/classStaticBlock23(target=esnext).js @@ -0,0 +1,40 @@ +//// [classStaticBlock23.ts] +const nums = [1, 2, 3].map(n => Promise.resolve(n)) + +class C { + static { + for await (const nn of nums) { + console.log(nn) + } + } +} + +async function foo () { + class C { + static { + for await (const nn of nums) { + console.log(nn) + } + } + } +} + + +//// [classStaticBlock23.js] +const nums = [1, 2, 3].map(n => Promise.resolve(n)); +class C { + static { + for await (const nn of nums) { + console.log(nn); + } + } +} +async function foo() { + class C { + static { + for await (const nn of nums) { + console.log(nn); + } + } + } +} diff --git a/tests/baselines/reference/classStaticBlock23(target=esnext).symbols b/tests/baselines/reference/classStaticBlock23(target=esnext).symbols new file mode 100644 index 0000000000000..2e15bade3be31 --- /dev/null +++ b/tests/baselines/reference/classStaticBlock23(target=esnext).symbols @@ -0,0 +1,49 @@ +=== tests/cases/conformance/classes/classStaticBlock/classStaticBlock23.ts === +const nums = [1, 2, 3].map(n => Promise.resolve(n)) +>nums : Symbol(nums, Decl(classStaticBlock23.ts, 0, 5)) +>[1, 2, 3].map : Symbol(Array.map, Decl(lib.es5.d.ts, --, --)) +>map : Symbol(Array.map, Decl(lib.es5.d.ts, --, --)) +>n : Symbol(n, Decl(classStaticBlock23.ts, 0, 27)) +>Promise.resolve : Symbol(PromiseConstructor.resolve, Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --)) +>Promise : Symbol(Promise, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2018.promise.d.ts, --, --)) +>resolve : Symbol(PromiseConstructor.resolve, Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --)) +>n : Symbol(n, Decl(classStaticBlock23.ts, 0, 27)) + +class C { +>C : Symbol(C, Decl(classStaticBlock23.ts, 0, 51)) + + static { + for await (const nn of nums) { +>nn : Symbol(nn, Decl(classStaticBlock23.ts, 4, 20)) +>nums : Symbol(nums, Decl(classStaticBlock23.ts, 0, 5)) + + console.log(nn) +>console.log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>console : Symbol(console, Decl(lib.dom.d.ts, --, --)) +>log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>nn : Symbol(nn, Decl(classStaticBlock23.ts, 4, 20)) + } + } +} + +async function foo () { +>foo : Symbol(foo, Decl(classStaticBlock23.ts, 8, 1)) + + class C { +>C : Symbol(C, Decl(classStaticBlock23.ts, 10, 23)) + + static { + for await (const nn of nums) { +>nn : Symbol(nn, Decl(classStaticBlock23.ts, 13, 22)) +>nums : Symbol(nums, Decl(classStaticBlock23.ts, 0, 5)) + + console.log(nn) +>console.log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>console : Symbol(console, Decl(lib.dom.d.ts, --, --)) +>log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>nn : Symbol(nn, Decl(classStaticBlock23.ts, 13, 22)) + } + } + } +} + diff --git a/tests/baselines/reference/classStaticBlock23(target=esnext).types b/tests/baselines/reference/classStaticBlock23(target=esnext).types new file mode 100644 index 0000000000000..421336fa087c9 --- /dev/null +++ b/tests/baselines/reference/classStaticBlock23(target=esnext).types @@ -0,0 +1,58 @@ +=== tests/cases/conformance/classes/classStaticBlock/classStaticBlock23.ts === +const nums = [1, 2, 3].map(n => Promise.resolve(n)) +>nums : Promise[] +>[1, 2, 3].map(n => Promise.resolve(n)) : Promise[] +>[1, 2, 3].map : (callbackfn: (value: number, index: number, array: number[]) => U, thisArg?: any) => U[] +>[1, 2, 3] : number[] +>1 : 1 +>2 : 2 +>3 : 3 +>map : (callbackfn: (value: number, index: number, array: number[]) => U, thisArg?: any) => U[] +>n => Promise.resolve(n) : (n: number) => Promise +>n : number +>Promise.resolve(n) : Promise +>Promise.resolve : { (): Promise; (value: T | PromiseLike): Promise; } +>Promise : PromiseConstructor +>resolve : { (): Promise; (value: T | PromiseLike): Promise; } +>n : number + +class C { +>C : C + + static { + for await (const nn of nums) { +>nn : number +>nums : Promise[] + + console.log(nn) +>console.log(nn) : void +>console.log : (...data: any[]) => void +>console : Console +>log : (...data: any[]) => void +>nn : number + } + } +} + +async function foo () { +>foo : () => Promise + + class C { +>C : C + + static { + for await (const nn of nums) { +>nn : number +>nums : Promise[] + + console.log(nn) +>console.log(nn) : void +>console.log : (...data: any[]) => void +>console : Console +>log : (...data: any[]) => void +>nn : number + } + } + } +} + diff --git a/tests/baselines/reference/classStaticBlock24(module=es2022).js b/tests/baselines/reference/classStaticBlock24(module=es2022).js new file mode 100644 index 0000000000000..450e53df8a141 --- /dev/null +++ b/tests/baselines/reference/classStaticBlock24(module=es2022).js @@ -0,0 +1,19 @@ +//// [classStaticBlock24.ts] +export class C { + static x: number; + static { + C.x = 1; + } +} + + +//// [classStaticBlock24.js] +var C = /** @class */ (function () { + function C() { + } + return C; +}()); +export { C }; +(function () { + C.x = 1; +})(); diff --git a/tests/baselines/reference/classStaticBlock24(module=es2022).symbols b/tests/baselines/reference/classStaticBlock24(module=es2022).symbols new file mode 100644 index 0000000000000..41b09da5f7732 --- /dev/null +++ b/tests/baselines/reference/classStaticBlock24(module=es2022).symbols @@ -0,0 +1,15 @@ +=== tests/cases/conformance/classes/classStaticBlock/classStaticBlock24.ts === +export class C { +>C : Symbol(C, Decl(classStaticBlock24.ts, 0, 0)) + + static x: number; +>x : Symbol(C.x, Decl(classStaticBlock24.ts, 0, 16)) + + static { + C.x = 1; +>C.x : Symbol(C.x, Decl(classStaticBlock24.ts, 0, 16)) +>C : Symbol(C, Decl(classStaticBlock24.ts, 0, 0)) +>x : Symbol(C.x, Decl(classStaticBlock24.ts, 0, 16)) + } +} + diff --git a/tests/baselines/reference/classStaticBlock24(module=es2022).types b/tests/baselines/reference/classStaticBlock24(module=es2022).types new file mode 100644 index 0000000000000..15bf228fcc593 --- /dev/null +++ b/tests/baselines/reference/classStaticBlock24(module=es2022).types @@ -0,0 +1,17 @@ +=== tests/cases/conformance/classes/classStaticBlock/classStaticBlock24.ts === +export class C { +>C : C + + static x: number; +>x : number + + static { + C.x = 1; +>C.x = 1 : 1 +>C.x : number +>C : typeof C +>x : number +>1 : 1 + } +} + diff --git a/tests/baselines/reference/classStaticBlock25.js b/tests/baselines/reference/classStaticBlock25(target=es2022).js similarity index 100% rename from tests/baselines/reference/classStaticBlock25.js rename to tests/baselines/reference/classStaticBlock25(target=es2022).js diff --git a/tests/baselines/reference/classStaticBlock25.js.map b/tests/baselines/reference/classStaticBlock25(target=es2022).js.map similarity index 100% rename from tests/baselines/reference/classStaticBlock25.js.map rename to tests/baselines/reference/classStaticBlock25(target=es2022).js.map diff --git a/tests/baselines/reference/classStaticBlock25.sourcemap.txt b/tests/baselines/reference/classStaticBlock25(target=es2022).sourcemap.txt similarity index 100% rename from tests/baselines/reference/classStaticBlock25.sourcemap.txt rename to tests/baselines/reference/classStaticBlock25(target=es2022).sourcemap.txt diff --git a/tests/baselines/reference/classStaticBlock25.symbols b/tests/baselines/reference/classStaticBlock25(target=es2022).symbols similarity index 100% rename from tests/baselines/reference/classStaticBlock25.symbols rename to tests/baselines/reference/classStaticBlock25(target=es2022).symbols diff --git a/tests/baselines/reference/classStaticBlock25.types b/tests/baselines/reference/classStaticBlock25(target=es2022).types similarity index 100% rename from tests/baselines/reference/classStaticBlock25.types rename to tests/baselines/reference/classStaticBlock25(target=es2022).types diff --git a/tests/baselines/reference/classStaticBlock25(target=esnext).js b/tests/baselines/reference/classStaticBlock25(target=esnext).js new file mode 100644 index 0000000000000..79864030028c1 --- /dev/null +++ b/tests/baselines/reference/classStaticBlock25(target=esnext).js @@ -0,0 +1,44 @@ +//// [classStaticBlock25.ts] +const a = 1; +const b = 2; + +class C { + static { + const a = 11; + + a; + b; + } + + static { + const a = 11; + + a; + b; + } +} + + +//// [classStaticBlock25.js] +const a = 1; +const b = 2; +class C { + static { + const a = 11; + a; + b; + } + static { + const a = 11; + a; + b; + } +} +//# sourceMappingURL=classStaticBlock25.js.map + +//// [classStaticBlock25.d.ts] +declare const a = 1; +declare const b = 2; +declare class C { +} +//# sourceMappingURL=classStaticBlock25.d.ts.map \ No newline at end of file diff --git a/tests/baselines/reference/classStaticBlock25(target=esnext).js.map b/tests/baselines/reference/classStaticBlock25(target=esnext).js.map new file mode 100644 index 0000000000000..f3bccac8cb86f --- /dev/null +++ b/tests/baselines/reference/classStaticBlock25(target=esnext).js.map @@ -0,0 +1,7 @@ +//// [classStaticBlock25.js.map] +{"version":3,"file":"classStaticBlock25.js","sourceRoot":"","sources":["classStaticBlock25.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,GAAG,CAAC,CAAC;AACZ,MAAM,CAAC,GAAG,CAAC,CAAC;AAEZ,MAAM,CAAC;IACH;QACI,MAAM,CAAC,GAAG,EAAE,CAAC;QAEb,CAAC,CAAC;QACF,CAAC,CAAC;IACN,CAAC;IAED;QACI,MAAM,CAAC,GAAG,EAAE,CAAC;QAEb,CAAC,CAAC;QACF,CAAC,CAAC;IACN,CAAC;CACJ"} +//// https://sokra.github.io/source-map-visualization#base64,Y29uc3QgYSA9IDE7DQpjb25zdCBiID0gMjsNCmNsYXNzIEMgew0KICAgIHN0YXRpYyB7DQogICAgICAgIGNvbnN0IGEgPSAxMTsNCiAgICAgICAgYTsNCiAgICAgICAgYjsNCiAgICB9DQogICAgc3RhdGljIHsNCiAgICAgICAgY29uc3QgYSA9IDExOw0KICAgICAgICBhOw0KICAgICAgICBiOw0KICAgIH0NCn0NCi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNsYXNzU3RhdGljQmxvY2syNS5qcy5tYXA=,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3NTdGF0aWNCbG9jazI1LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2xhc3NTdGF0aWNCbG9jazI1LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNaLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUVaLE1BQU0sQ0FBQztJQUNIO1FBQ0ksTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBRWIsQ0FBQyxDQUFDO1FBQ0YsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUVEO1FBQ0ksTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBRWIsQ0FBQyxDQUFDO1FBQ0YsQ0FBQyxDQUFDO0lBQ04sQ0FBQztDQUNKIn0=,Y29uc3QgYSA9IDE7CmNvbnN0IGIgPSAyOwoKY2xhc3MgQyB7CiAgICBzdGF0aWMgewogICAgICAgIGNvbnN0IGEgPSAxMTsKCiAgICAgICAgYTsKICAgICAgICBiOwogICAgfQoKICAgIHN0YXRpYyB7CiAgICAgICAgY29uc3QgYSA9IDExOwoKICAgICAgICBhOwogICAgICAgIGI7CiAgICB9Cn0K + +//// [classStaticBlock25.d.ts.map] +{"version":3,"file":"classStaticBlock25.d.ts","sourceRoot":"","sources":["classStaticBlock25.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,CAAC,IAAI,CAAC;AACZ,QAAA,MAAM,CAAC,IAAI,CAAC;AAEZ,cAAM,CAAC;CAcN"} +//// https://sokra.github.io/source-map-visualization#base64,ZGVjbGFyZSBjb25zdCBhID0gMTsNCmRlY2xhcmUgY29uc3QgYiA9IDI7DQpkZWNsYXJlIGNsYXNzIEMgew0KfQ0KLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y2xhc3NTdGF0aWNCbG9jazI1LmQudHMubWFw,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3NTdGF0aWNCbG9jazI1LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjbGFzc1N0YXRpY0Jsb2NrMjUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsUUFBQSxNQUFNLENBQUMsSUFBSSxDQUFDO0FBQ1osUUFBQSxNQUFNLENBQUMsSUFBSSxDQUFDO0FBRVosY0FBTSxDQUFDO0NBY04ifQ==,Y29uc3QgYSA9IDE7CmNvbnN0IGIgPSAyOwoKY2xhc3MgQyB7CiAgICBzdGF0aWMgewogICAgICAgIGNvbnN0IGEgPSAxMTsKCiAgICAgICAgYTsKICAgICAgICBiOwogICAgfQoKICAgIHN0YXRpYyB7CiAgICAgICAgY29uc3QgYSA9IDExOwoKICAgICAgICBhOwogICAgICAgIGI7CiAgICB9Cn0K diff --git a/tests/baselines/reference/classStaticBlock25(target=esnext).sourcemap.txt b/tests/baselines/reference/classStaticBlock25(target=esnext).sourcemap.txt new file mode 100644 index 0000000000000..91f7b7913f116 --- /dev/null +++ b/tests/baselines/reference/classStaticBlock25(target=esnext).sourcemap.txt @@ -0,0 +1,287 @@ +=================================================================== +JsFile: classStaticBlock25.js +mapUrl: classStaticBlock25.js.map +sourceRoot: +sources: classStaticBlock25.ts +=================================================================== +------------------------------------------------------------------- +emittedFile:tests/cases/conformance/classes/classStaticBlock/classStaticBlock25.js +sourceFile:classStaticBlock25.ts +------------------------------------------------------------------- +>>>const a = 1; +1 > +2 >^^^^^^ +3 > ^ +4 > ^^^ +5 > ^ +6 > ^ +7 > ^-> +1 > +2 >const +3 > a +4 > = +5 > 1 +6 > ; +1 >Emitted(1, 1) Source(1, 1) + SourceIndex(0) +2 >Emitted(1, 7) Source(1, 7) + SourceIndex(0) +3 >Emitted(1, 8) Source(1, 8) + SourceIndex(0) +4 >Emitted(1, 11) Source(1, 11) + SourceIndex(0) +5 >Emitted(1, 12) Source(1, 12) + SourceIndex(0) +6 >Emitted(1, 13) Source(1, 13) + SourceIndex(0) +--- +>>>const b = 2; +1-> +2 >^^^^^^ +3 > ^ +4 > ^^^ +5 > ^ +6 > ^ +1-> + > +2 >const +3 > b +4 > = +5 > 2 +6 > ; +1->Emitted(2, 1) Source(2, 1) + SourceIndex(0) +2 >Emitted(2, 7) Source(2, 7) + SourceIndex(0) +3 >Emitted(2, 8) Source(2, 8) + SourceIndex(0) +4 >Emitted(2, 11) Source(2, 11) + SourceIndex(0) +5 >Emitted(2, 12) Source(2, 12) + SourceIndex(0) +6 >Emitted(2, 13) Source(2, 13) + SourceIndex(0) +--- +>>>class C { +1 > +2 >^^^^^^ +3 > ^ +4 > ^^^^^^-> +1 > + > + > +2 >class +3 > C +1 >Emitted(3, 1) Source(4, 1) + SourceIndex(0) +2 >Emitted(3, 7) Source(4, 7) + SourceIndex(0) +3 >Emitted(3, 8) Source(4, 8) + SourceIndex(0) +--- +>>> static { +1->^^^^ +2 > ^^^^^^^^^^^^^^^^^^-> +1-> { + > +1->Emitted(4, 5) Source(5, 5) + SourceIndex(0) +--- +>>> const a = 11; +1->^^^^^^^^ +2 > ^^^^^^ +3 > ^ +4 > ^^^ +5 > ^^ +6 > ^ +1->static { + > +2 > const +3 > a +4 > = +5 > 11 +6 > ; +1->Emitted(5, 9) Source(6, 9) + SourceIndex(0) +2 >Emitted(5, 15) Source(6, 15) + SourceIndex(0) +3 >Emitted(5, 16) Source(6, 16) + SourceIndex(0) +4 >Emitted(5, 19) Source(6, 19) + SourceIndex(0) +5 >Emitted(5, 21) Source(6, 21) + SourceIndex(0) +6 >Emitted(5, 22) Source(6, 22) + SourceIndex(0) +--- +>>> a; +1 >^^^^^^^^ +2 > ^ +3 > ^ +4 > ^-> +1 > + > + > +2 > a +3 > ; +1 >Emitted(6, 9) Source(8, 9) + SourceIndex(0) +2 >Emitted(6, 10) Source(8, 10) + SourceIndex(0) +3 >Emitted(6, 11) Source(8, 11) + SourceIndex(0) +--- +>>> b; +1->^^^^^^^^ +2 > ^ +3 > ^ +1-> + > +2 > b +3 > ; +1->Emitted(7, 9) Source(9, 9) + SourceIndex(0) +2 >Emitted(7, 10) Source(9, 10) + SourceIndex(0) +3 >Emitted(7, 11) Source(9, 11) + SourceIndex(0) +--- +>>> } +1 >^^^^ +2 > ^ +3 > ^^^^^^^^-> +1 > + > +2 > } +1 >Emitted(8, 5) Source(10, 5) + SourceIndex(0) +2 >Emitted(8, 6) Source(10, 6) + SourceIndex(0) +--- +>>> static { +1->^^^^ +2 > ^^^^^^^^^^^^^^^^^^-> +1-> + > + > +1->Emitted(9, 5) Source(12, 5) + SourceIndex(0) +--- +>>> const a = 11; +1->^^^^^^^^ +2 > ^^^^^^ +3 > ^ +4 > ^^^ +5 > ^^ +6 > ^ +1->static { + > +2 > const +3 > a +4 > = +5 > 11 +6 > ; +1->Emitted(10, 9) Source(13, 9) + SourceIndex(0) +2 >Emitted(10, 15) Source(13, 15) + SourceIndex(0) +3 >Emitted(10, 16) Source(13, 16) + SourceIndex(0) +4 >Emitted(10, 19) Source(13, 19) + SourceIndex(0) +5 >Emitted(10, 21) Source(13, 21) + SourceIndex(0) +6 >Emitted(10, 22) Source(13, 22) + SourceIndex(0) +--- +>>> a; +1 >^^^^^^^^ +2 > ^ +3 > ^ +4 > ^-> +1 > + > + > +2 > a +3 > ; +1 >Emitted(11, 9) Source(15, 9) + SourceIndex(0) +2 >Emitted(11, 10) Source(15, 10) + SourceIndex(0) +3 >Emitted(11, 11) Source(15, 11) + SourceIndex(0) +--- +>>> b; +1->^^^^^^^^ +2 > ^ +3 > ^ +1-> + > +2 > b +3 > ; +1->Emitted(12, 9) Source(16, 9) + SourceIndex(0) +2 >Emitted(12, 10) Source(16, 10) + SourceIndex(0) +3 >Emitted(12, 11) Source(16, 11) + SourceIndex(0) +--- +>>> } +1 >^^^^ +2 > ^ +1 > + > +2 > } +1 >Emitted(13, 5) Source(17, 5) + SourceIndex(0) +2 >Emitted(13, 6) Source(17, 6) + SourceIndex(0) +--- +>>>} +1 >^ +2 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +1 > + >} +1 >Emitted(14, 2) Source(18, 2) + SourceIndex(0) +--- +>>>//# sourceMappingURL=classStaticBlock25.js.map=================================================================== +JsFile: classStaticBlock25.d.ts +mapUrl: classStaticBlock25.d.ts.map +sourceRoot: +sources: classStaticBlock25.ts +=================================================================== +------------------------------------------------------------------- +emittedFile:tests/cases/conformance/classes/classStaticBlock/classStaticBlock25.d.ts +sourceFile:classStaticBlock25.ts +------------------------------------------------------------------- +>>>declare const a = 1; +1 > +2 >^^^^^^^^ +3 > ^^^^^^ +4 > ^ +5 > ^^^^ +6 > ^ +7 > ^-> +1 > +2 > +3 > const +4 > a +5 > = 1 +6 > ; +1 >Emitted(1, 1) Source(1, 1) + SourceIndex(0) +2 >Emitted(1, 9) Source(1, 1) + SourceIndex(0) +3 >Emitted(1, 15) Source(1, 7) + SourceIndex(0) +4 >Emitted(1, 16) Source(1, 8) + SourceIndex(0) +5 >Emitted(1, 20) Source(1, 12) + SourceIndex(0) +6 >Emitted(1, 21) Source(1, 13) + SourceIndex(0) +--- +>>>declare const b = 2; +1-> +2 >^^^^^^^^ +3 > ^^^^^^ +4 > ^ +5 > ^^^^ +6 > ^ +1-> + > +2 > +3 > const +4 > b +5 > = 2 +6 > ; +1->Emitted(2, 1) Source(2, 1) + SourceIndex(0) +2 >Emitted(2, 9) Source(2, 1) + SourceIndex(0) +3 >Emitted(2, 15) Source(2, 7) + SourceIndex(0) +4 >Emitted(2, 16) Source(2, 8) + SourceIndex(0) +5 >Emitted(2, 20) Source(2, 12) + SourceIndex(0) +6 >Emitted(2, 21) Source(2, 13) + SourceIndex(0) +--- +>>>declare class C { +1 > +2 >^^^^^^^^^^^^^^ +3 > ^ +1 > + > + > +2 >class +3 > C +1 >Emitted(3, 1) Source(4, 1) + SourceIndex(0) +2 >Emitted(3, 15) Source(4, 7) + SourceIndex(0) +3 >Emitted(3, 16) Source(4, 8) + SourceIndex(0) +--- +>>>} +1 >^ +2 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +1 > { + > static { + > const a = 11; + > + > a; + > b; + > } + > + > static { + > const a = 11; + > + > a; + > b; + > } + >} +1 >Emitted(4, 2) Source(18, 2) + SourceIndex(0) +--- +>>>//# sourceMappingURL=classStaticBlock25.d.ts.map \ No newline at end of file diff --git a/tests/baselines/reference/classStaticBlock25(target=esnext).symbols b/tests/baselines/reference/classStaticBlock25(target=esnext).symbols new file mode 100644 index 0000000000000..034fa041ed6d4 --- /dev/null +++ b/tests/baselines/reference/classStaticBlock25(target=esnext).symbols @@ -0,0 +1,33 @@ +=== tests/cases/conformance/classes/classStaticBlock/classStaticBlock25.ts === +const a = 1; +>a : Symbol(a, Decl(classStaticBlock25.ts, 0, 5)) + +const b = 2; +>b : Symbol(b, Decl(classStaticBlock25.ts, 1, 5)) + +class C { +>C : Symbol(C, Decl(classStaticBlock25.ts, 1, 12)) + + static { + const a = 11; +>a : Symbol(a, Decl(classStaticBlock25.ts, 5, 13)) + + a; +>a : Symbol(a, Decl(classStaticBlock25.ts, 5, 13)) + + b; +>b : Symbol(b, Decl(classStaticBlock25.ts, 1, 5)) + } + + static { + const a = 11; +>a : Symbol(a, Decl(classStaticBlock25.ts, 12, 13)) + + a; +>a : Symbol(a, Decl(classStaticBlock25.ts, 12, 13)) + + b; +>b : Symbol(b, Decl(classStaticBlock25.ts, 1, 5)) + } +} + diff --git a/tests/baselines/reference/classStaticBlock25(target=esnext).types b/tests/baselines/reference/classStaticBlock25(target=esnext).types new file mode 100644 index 0000000000000..dd78af7dda7e6 --- /dev/null +++ b/tests/baselines/reference/classStaticBlock25(target=esnext).types @@ -0,0 +1,37 @@ +=== tests/cases/conformance/classes/classStaticBlock/classStaticBlock25.ts === +const a = 1; +>a : 1 +>1 : 1 + +const b = 2; +>b : 2 +>2 : 2 + +class C { +>C : C + + static { + const a = 11; +>a : 11 +>11 : 11 + + a; +>a : 11 + + b; +>b : 2 + } + + static { + const a = 11; +>a : 11 +>11 : 11 + + a; +>a : 11 + + b; +>b : 2 + } +} + diff --git a/tests/baselines/reference/classStaticBlock26.errors.txt b/tests/baselines/reference/classStaticBlock26(target=es2022).errors.txt similarity index 100% rename from tests/baselines/reference/classStaticBlock26.errors.txt rename to tests/baselines/reference/classStaticBlock26(target=es2022).errors.txt diff --git a/tests/baselines/reference/classStaticBlock26.js b/tests/baselines/reference/classStaticBlock26(target=es2022).js similarity index 100% rename from tests/baselines/reference/classStaticBlock26.js rename to tests/baselines/reference/classStaticBlock26(target=es2022).js diff --git a/tests/baselines/reference/classStaticBlock26.symbols b/tests/baselines/reference/classStaticBlock26(target=es2022).symbols similarity index 100% rename from tests/baselines/reference/classStaticBlock26.symbols rename to tests/baselines/reference/classStaticBlock26(target=es2022).symbols diff --git a/tests/baselines/reference/classStaticBlock26.types b/tests/baselines/reference/classStaticBlock26(target=es2022).types similarity index 100% rename from tests/baselines/reference/classStaticBlock26.types rename to tests/baselines/reference/classStaticBlock26(target=es2022).types diff --git a/tests/baselines/reference/classStaticBlock26(target=esnext).errors.txt b/tests/baselines/reference/classStaticBlock26(target=esnext).errors.txt new file mode 100644 index 0000000000000..3c5eb52fb8f34 --- /dev/null +++ b/tests/baselines/reference/classStaticBlock26(target=esnext).errors.txt @@ -0,0 +1,86 @@ +tests/cases/conformance/classes/classStaticBlock/classStaticBlock26.ts(3,9): error TS18037: Await expression cannot be used inside a class static block. +tests/cases/conformance/classes/classStaticBlock/classStaticBlock26.ts(3,14): error TS1109: Expression expected. +tests/cases/conformance/classes/classStaticBlock/classStaticBlock26.ts(6,9): error TS18037: Await expression cannot be used inside a class static block. +tests/cases/conformance/classes/classStaticBlock/classStaticBlock26.ts(9,13): error TS18037: Await expression cannot be used inside a class static block. +tests/cases/conformance/classes/classStaticBlock/classStaticBlock26.ts(9,18): error TS1109: Expression expected. +tests/cases/conformance/classes/classStaticBlock/classStaticBlock26.ts(13,14): error TS18037: Await expression cannot be used inside a class static block. +tests/cases/conformance/classes/classStaticBlock/classStaticBlock26.ts(13,19): error TS1109: Expression expected. +tests/cases/conformance/classes/classStaticBlock/classStaticBlock26.ts(17,18): error TS1005: ':' expected. +tests/cases/conformance/classes/classStaticBlock/classStaticBlock26.ts(20,9): error TS18037: Await expression cannot be used inside a class static block. +tests/cases/conformance/classes/classStaticBlock/classStaticBlock26.ts(20,14): error TS1109: Expression expected. +tests/cases/conformance/classes/classStaticBlock/classStaticBlock26.ts(21,15): error TS1003: Identifier expected. +tests/cases/conformance/classes/classStaticBlock/classStaticBlock26.ts(21,15): error TS18037: Await expression cannot be used inside a class static block. +tests/cases/conformance/classes/classStaticBlock/classStaticBlock26.ts(21,20): error TS1109: Expression expected. +tests/cases/conformance/classes/classStaticBlock/classStaticBlock26.ts(25,21): error TS18037: Await expression cannot be used inside a class static block. +tests/cases/conformance/classes/classStaticBlock/classStaticBlock26.ts(25,26): error TS1109: Expression expected. +tests/cases/conformance/classes/classStaticBlock/classStaticBlock26.ts(25,28): error TS1005: ';' expected. +tests/cases/conformance/classes/classStaticBlock/classStaticBlock26.ts(26,21): error TS18037: Await expression cannot be used inside a class static block. +tests/cases/conformance/classes/classStaticBlock/classStaticBlock26.ts(26,27): error TS1109: Expression expected. + + +==== tests/cases/conformance/classes/classStaticBlock/classStaticBlock26.ts (18 errors) ==== + class C { + static { + await; // illegal + ~~~~~ +!!! error TS18037: Await expression cannot be used inside a class static block. + ~ +!!! error TS1109: Expression expected. + } + static { + await (1); // illegal + ~~~~~~~~~ +!!! error TS18037: Await expression cannot be used inside a class static block. + } + static { + ({ [await]: 1 }); // illegal + ~~~~~ +!!! error TS18037: Await expression cannot be used inside a class static block. + ~ +!!! error TS1109: Expression expected. + } + static { + class D { + [await] = 1; // illegal (computed property names are evaluated outside of a class body + ~~~~~ +!!! error TS18037: Await expression cannot be used inside a class static block. + ~ +!!! error TS1109: Expression expected. + }; + } + static { + ({ await }); // illegal short-hand property reference + ~ +!!! error TS1005: ':' expected. + } + static { + await: // illegal, 'await' cannot be used as a label + ~~~~~ +!!! error TS18037: Await expression cannot be used inside a class static block. + ~ +!!! error TS1109: Expression expected. + break await; // illegal, 'await' cannot be used as a label + ~~~~~ +!!! error TS1003: Identifier expected. + ~~~~~ +!!! error TS18037: Await expression cannot be used inside a class static block. + ~ +!!! error TS1109: Expression expected. + } + static { + function f(await) { } + const ff = (await) => { } + ~~~~~ +!!! error TS18037: Await expression cannot be used inside a class static block. + ~ +!!! error TS1109: Expression expected. + ~~ +!!! error TS1005: ';' expected. + const fff = await => { } + ~~~~~ +!!! error TS18037: Await expression cannot be used inside a class static block. + ~~ +!!! error TS1109: Expression expected. + } + } + \ No newline at end of file diff --git a/tests/baselines/reference/classStaticBlock26(target=esnext).js b/tests/baselines/reference/classStaticBlock26(target=esnext).js new file mode 100644 index 0000000000000..ababa6abf24ac --- /dev/null +++ b/tests/baselines/reference/classStaticBlock26(target=esnext).js @@ -0,0 +1,64 @@ +//// [classStaticBlock26.ts] +class C { + static { + await; // illegal + } + static { + await (1); // illegal + } + static { + ({ [await]: 1 }); // illegal + } + static { + class D { + [await] = 1; // illegal (computed property names are evaluated outside of a class body + }; + } + static { + ({ await }); // illegal short-hand property reference + } + static { + await: // illegal, 'await' cannot be used as a label + break await; // illegal, 'await' cannot be used as a label + } + static { + function f(await) { } + const ff = (await) => { } + const fff = await => { } + } +} + + +//// [classStaticBlock26.js] +class C { + static { + await ; // illegal + } + static { + await (1); // illegal + } + static { + ({ [await ]: 1 }); // illegal + } + static { + class D { + [await ] = 1; // illegal (computed property names are evaluated outside of a class body + } + ; + } + static { + ({ await: }); // illegal short-hand property reference + } + static { + await ; + break ; + await ; // illegal, 'await' cannot be used as a label + } + static { + function f(await) { } + const ff = (await ); + { } + const fff = await ; + { } + } +} diff --git a/tests/baselines/reference/classStaticBlock26(target=esnext).symbols b/tests/baselines/reference/classStaticBlock26(target=esnext).symbols new file mode 100644 index 0000000000000..2d3b2717ba213 --- /dev/null +++ b/tests/baselines/reference/classStaticBlock26(target=esnext).symbols @@ -0,0 +1,44 @@ +=== tests/cases/conformance/classes/classStaticBlock/classStaticBlock26.ts === +class C { +>C : Symbol(C, Decl(classStaticBlock26.ts, 0, 0)) + + static { + await; // illegal + } + static { + await (1); // illegal + } + static { + ({ [await]: 1 }); // illegal +>[await] : Symbol([await], Decl(classStaticBlock26.ts, 8, 10)) + } + static { + class D { +>D : Symbol(D, Decl(classStaticBlock26.ts, 10, 12)) + + [await] = 1; // illegal (computed property names are evaluated outside of a class body +>[await] : Symbol(D[await], Decl(classStaticBlock26.ts, 11, 17)) + + }; + } + static { + ({ await }); // illegal short-hand property reference +>await : Symbol(await, Decl(classStaticBlock26.ts, 16, 10)) + } + static { + await: // illegal, 'await' cannot be used as a label + break await; // illegal, 'await' cannot be used as a label + } + static { + function f(await) { } +>f : Symbol(f, Decl(classStaticBlock26.ts, 22, 12)) +>await : Symbol(await, Decl(classStaticBlock26.ts, 23, 19)) + + const ff = (await) => { } +>ff : Symbol(ff, Decl(classStaticBlock26.ts, 24, 13)) + + const fff = await => { } +>fff : Symbol(fff, Decl(classStaticBlock26.ts, 25, 13)) + } +} + diff --git a/tests/baselines/reference/classStaticBlock26(target=esnext).types b/tests/baselines/reference/classStaticBlock26(target=esnext).types new file mode 100644 index 0000000000000..0922330a47533 --- /dev/null +++ b/tests/baselines/reference/classStaticBlock26(target=esnext).types @@ -0,0 +1,71 @@ +=== tests/cases/conformance/classes/classStaticBlock/classStaticBlock26.ts === +class C { +>C : C + + static { + await; // illegal +>await : any +> : any + } + static { + await (1); // illegal +>await (1) : 1 +>(1) : 1 +>1 : 1 + } + static { + ({ [await]: 1 }); // illegal +>({ [await]: 1 }) : { [x: number]: number; } +>{ [await]: 1 } : { [x: number]: number; } +>[await] : number +>await : any +> : any +>1 : 1 + } + static { + class D { +>D : D + + [await] = 1; // illegal (computed property names are evaluated outside of a class body +>[await] : number +>await : any +> : any +>1 : 1 + + }; + } + static { + ({ await }); // illegal short-hand property reference +>({ await }) : { await: any; } +>{ await } : { await: any; } +>await : any +> : any + } + static { + await: // illegal, 'await' cannot be used as a label +>await : any +> : any + + break await; // illegal, 'await' cannot be used as a label +> : any +>await : any +> : any + } + static { + function f(await) { } +>f : (await: any) => void +>await : any + + const ff = (await) => { } +>ff : any +>(await) : any +>await : any +> : any + + const fff = await => { } +>fff : any +>await : any +> : any + } +} + diff --git a/tests/baselines/reference/classStaticBlock28.js b/tests/baselines/reference/classStaticBlock28.js new file mode 100644 index 0000000000000..955dc88d3cfd7 --- /dev/null +++ b/tests/baselines/reference/classStaticBlock28.js @@ -0,0 +1,23 @@ +//// [classStaticBlock28.ts] +let foo: number; + +class C { + static { + foo = 1 + } +} + +console.log(foo) + +//// [classStaticBlock28.js] +"use strict"; +var foo; +var C = /** @class */ (function () { + function C() { + } + return C; +}()); +(function () { + foo = 1; +})(); +console.log(foo); diff --git a/tests/baselines/reference/classStaticBlock28.symbols b/tests/baselines/reference/classStaticBlock28.symbols new file mode 100644 index 0000000000000..3a8dc99b9d194 --- /dev/null +++ b/tests/baselines/reference/classStaticBlock28.symbols @@ -0,0 +1,19 @@ +=== tests/cases/conformance/classes/classStaticBlock/classStaticBlock28.ts === +let foo: number; +>foo : Symbol(foo, Decl(classStaticBlock28.ts, 0, 3)) + +class C { +>C : Symbol(C, Decl(classStaticBlock28.ts, 0, 16)) + + static { + foo = 1 +>foo : Symbol(foo, Decl(classStaticBlock28.ts, 0, 3)) + } +} + +console.log(foo) +>console.log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>console : Symbol(console, Decl(lib.dom.d.ts, --, --)) +>log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>foo : Symbol(foo, Decl(classStaticBlock28.ts, 0, 3)) + diff --git a/tests/baselines/reference/classStaticBlock28.types b/tests/baselines/reference/classStaticBlock28.types new file mode 100644 index 0000000000000..8abbe617d9f5c --- /dev/null +++ b/tests/baselines/reference/classStaticBlock28.types @@ -0,0 +1,22 @@ +=== tests/cases/conformance/classes/classStaticBlock/classStaticBlock28.ts === +let foo: number; +>foo : number + +class C { +>C : C + + static { + foo = 1 +>foo = 1 : 1 +>foo : number +>1 : 1 + } +} + +console.log(foo) +>console.log(foo) : void +>console.log : (...data: any[]) => void +>console : Console +>log : (...data: any[]) => void +>foo : number + diff --git a/tests/baselines/reference/classStaticBlock3.errors.txt b/tests/baselines/reference/classStaticBlock3(target=es2022).errors.txt similarity index 100% rename from tests/baselines/reference/classStaticBlock3.errors.txt rename to tests/baselines/reference/classStaticBlock3(target=es2022).errors.txt diff --git a/tests/baselines/reference/classStaticBlock3.js b/tests/baselines/reference/classStaticBlock3(target=es2022).js similarity index 100% rename from tests/baselines/reference/classStaticBlock3.js rename to tests/baselines/reference/classStaticBlock3(target=es2022).js diff --git a/tests/baselines/reference/classStaticBlock3.symbols b/tests/baselines/reference/classStaticBlock3(target=es2022).symbols similarity index 100% rename from tests/baselines/reference/classStaticBlock3.symbols rename to tests/baselines/reference/classStaticBlock3(target=es2022).symbols diff --git a/tests/baselines/reference/classStaticBlock3.types b/tests/baselines/reference/classStaticBlock3(target=es2022).types similarity index 100% rename from tests/baselines/reference/classStaticBlock3.types rename to tests/baselines/reference/classStaticBlock3(target=es2022).types diff --git a/tests/baselines/reference/classStaticBlock3(target=esnext).errors.txt b/tests/baselines/reference/classStaticBlock3(target=esnext).errors.txt new file mode 100644 index 0000000000000..bf01354e1405f --- /dev/null +++ b/tests/baselines/reference/classStaticBlock3(target=esnext).errors.txt @@ -0,0 +1,33 @@ +tests/cases/conformance/classes/classStaticBlock/classStaticBlock3.ts(7,29): error TS2729: Property 'f2' is used before its initialization. +tests/cases/conformance/classes/classStaticBlock/classStaticBlock3.ts(7,35): error TS2729: Property 'f3' is used before its initialization. +tests/cases/conformance/classes/classStaticBlock/classStaticBlock3.ts(13,35): error TS2729: Property 'f3' is used before its initialization. + + +==== tests/cases/conformance/classes/classStaticBlock/classStaticBlock3.ts (3 errors) ==== + const a = 1; + + class C { + static f1 = 1; + + static { + console.log(C.f1, C.f2, C.f3) + ~~ +!!! error TS2729: Property 'f2' is used before its initialization. +!!! related TS2728 tests/cases/conformance/classes/classStaticBlock/classStaticBlock3.ts:10:12: 'f2' is declared here. + ~~ +!!! error TS2729: Property 'f3' is used before its initialization. +!!! related TS2728 tests/cases/conformance/classes/classStaticBlock/classStaticBlock3.ts:16:12: 'f3' is declared here. + } + + static f2 = 2; + + static { + console.log(C.f1, C.f2, C.f3) + ~~ +!!! error TS2729: Property 'f3' is used before its initialization. +!!! related TS2728 tests/cases/conformance/classes/classStaticBlock/classStaticBlock3.ts:16:12: 'f3' is declared here. + } + + static f3 = 3; + } + \ No newline at end of file diff --git a/tests/baselines/reference/classStaticBlock3(target=esnext).js b/tests/baselines/reference/classStaticBlock3(target=esnext).js new file mode 100644 index 0000000000000..99fe38cf28e28 --- /dev/null +++ b/tests/baselines/reference/classStaticBlock3(target=esnext).js @@ -0,0 +1,33 @@ +//// [classStaticBlock3.ts] +const a = 1; + +class C { + static f1 = 1; + + static { + console.log(C.f1, C.f2, C.f3) + } + + static f2 = 2; + + static { + console.log(C.f1, C.f2, C.f3) + } + + static f3 = 3; +} + + +//// [classStaticBlock3.js] +const a = 1; +class C { + static f1 = 1; + static { + console.log(C.f1, C.f2, C.f3); + } + static f2 = 2; + static { + console.log(C.f1, C.f2, C.f3); + } + static f3 = 3; +} diff --git a/tests/baselines/reference/classStaticBlock3(target=esnext).symbols b/tests/baselines/reference/classStaticBlock3(target=esnext).symbols new file mode 100644 index 0000000000000..758fa0790609a --- /dev/null +++ b/tests/baselines/reference/classStaticBlock3(target=esnext).symbols @@ -0,0 +1,49 @@ +=== tests/cases/conformance/classes/classStaticBlock/classStaticBlock3.ts === +const a = 1; +>a : Symbol(a, Decl(classStaticBlock3.ts, 0, 5)) + +class C { +>C : Symbol(C, Decl(classStaticBlock3.ts, 0, 12)) + + static f1 = 1; +>f1 : Symbol(C.f1, Decl(classStaticBlock3.ts, 2, 9)) + + static { + console.log(C.f1, C.f2, C.f3) +>console.log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>console : Symbol(console, Decl(lib.dom.d.ts, --, --)) +>log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>C.f1 : Symbol(C.f1, Decl(classStaticBlock3.ts, 2, 9)) +>C : Symbol(C, Decl(classStaticBlock3.ts, 0, 12)) +>f1 : Symbol(C.f1, Decl(classStaticBlock3.ts, 2, 9)) +>C.f2 : Symbol(C.f2, Decl(classStaticBlock3.ts, 7, 5)) +>C : Symbol(C, Decl(classStaticBlock3.ts, 0, 12)) +>f2 : Symbol(C.f2, Decl(classStaticBlock3.ts, 7, 5)) +>C.f3 : Symbol(C.f3, Decl(classStaticBlock3.ts, 13, 5)) +>C : Symbol(C, Decl(classStaticBlock3.ts, 0, 12)) +>f3 : Symbol(C.f3, Decl(classStaticBlock3.ts, 13, 5)) + } + + static f2 = 2; +>f2 : Symbol(C.f2, Decl(classStaticBlock3.ts, 7, 5)) + + static { + console.log(C.f1, C.f2, C.f3) +>console.log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>console : Symbol(console, Decl(lib.dom.d.ts, --, --)) +>log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>C.f1 : Symbol(C.f1, Decl(classStaticBlock3.ts, 2, 9)) +>C : Symbol(C, Decl(classStaticBlock3.ts, 0, 12)) +>f1 : Symbol(C.f1, Decl(classStaticBlock3.ts, 2, 9)) +>C.f2 : Symbol(C.f2, Decl(classStaticBlock3.ts, 7, 5)) +>C : Symbol(C, Decl(classStaticBlock3.ts, 0, 12)) +>f2 : Symbol(C.f2, Decl(classStaticBlock3.ts, 7, 5)) +>C.f3 : Symbol(C.f3, Decl(classStaticBlock3.ts, 13, 5)) +>C : Symbol(C, Decl(classStaticBlock3.ts, 0, 12)) +>f3 : Symbol(C.f3, Decl(classStaticBlock3.ts, 13, 5)) + } + + static f3 = 3; +>f3 : Symbol(C.f3, Decl(classStaticBlock3.ts, 13, 5)) +} + diff --git a/tests/baselines/reference/classStaticBlock3(target=esnext).types b/tests/baselines/reference/classStaticBlock3(target=esnext).types new file mode 100644 index 0000000000000..d5705a72e8775 --- /dev/null +++ b/tests/baselines/reference/classStaticBlock3(target=esnext).types @@ -0,0 +1,55 @@ +=== tests/cases/conformance/classes/classStaticBlock/classStaticBlock3.ts === +const a = 1; +>a : 1 +>1 : 1 + +class C { +>C : C + + static f1 = 1; +>f1 : number +>1 : 1 + + static { + console.log(C.f1, C.f2, C.f3) +>console.log(C.f1, C.f2, C.f3) : void +>console.log : (...data: any[]) => void +>console : Console +>log : (...data: any[]) => void +>C.f1 : number +>C : typeof C +>f1 : number +>C.f2 : number +>C : typeof C +>f2 : number +>C.f3 : number +>C : typeof C +>f3 : number + } + + static f2 = 2; +>f2 : number +>2 : 2 + + static { + console.log(C.f1, C.f2, C.f3) +>console.log(C.f1, C.f2, C.f3) : void +>console.log : (...data: any[]) => void +>console : Console +>log : (...data: any[]) => void +>C.f1 : number +>C : typeof C +>f1 : number +>C.f2 : number +>C : typeof C +>f2 : number +>C.f3 : number +>C : typeof C +>f3 : number + } + + static f3 = 3; +>f3 : number +>3 : 3 +} + diff --git a/tests/baselines/reference/classStaticBlock4.errors.txt b/tests/baselines/reference/classStaticBlock4(target=es2022).errors.txt similarity index 100% rename from tests/baselines/reference/classStaticBlock4.errors.txt rename to tests/baselines/reference/classStaticBlock4(target=es2022).errors.txt diff --git a/tests/baselines/reference/classStaticBlock4.js b/tests/baselines/reference/classStaticBlock4(target=es2022).js similarity index 100% rename from tests/baselines/reference/classStaticBlock4.js rename to tests/baselines/reference/classStaticBlock4(target=es2022).js diff --git a/tests/baselines/reference/classStaticBlock4.symbols b/tests/baselines/reference/classStaticBlock4(target=es2022).symbols similarity index 100% rename from tests/baselines/reference/classStaticBlock4.symbols rename to tests/baselines/reference/classStaticBlock4(target=es2022).symbols diff --git a/tests/baselines/reference/classStaticBlock4.types b/tests/baselines/reference/classStaticBlock4(target=es2022).types similarity index 100% rename from tests/baselines/reference/classStaticBlock4.types rename to tests/baselines/reference/classStaticBlock4(target=es2022).types diff --git a/tests/baselines/reference/classStaticBlock4(target=esnext).errors.txt b/tests/baselines/reference/classStaticBlock4(target=esnext).errors.txt new file mode 100644 index 0000000000000..d4ec1db72f646 --- /dev/null +++ b/tests/baselines/reference/classStaticBlock4(target=esnext).errors.txt @@ -0,0 +1,26 @@ +tests/cases/conformance/classes/classStaticBlock/classStaticBlock4.ts(8,14): error TS2729: Property 's2' is used before its initialization. +tests/cases/conformance/classes/classStaticBlock/classStaticBlock4.ts(9,11): error TS2729: Property 's2' is used before its initialization. + + +==== tests/cases/conformance/classes/classStaticBlock/classStaticBlock4.ts (2 errors) ==== + class C { + static s1 = 1; + + static { + this.s1; + C.s1; + + this.s2; + ~~ +!!! error TS2729: Property 's2' is used before its initialization. +!!! related TS2728 tests/cases/conformance/classes/classStaticBlock/classStaticBlock4.ts:12:12: 's2' is declared here. + C.s2; + ~~ +!!! error TS2729: Property 's2' is used before its initialization. +!!! related TS2728 tests/cases/conformance/classes/classStaticBlock/classStaticBlock4.ts:12:12: 's2' is declared here. + } + + static s2 = 2; + static ss2 = this.s1; + } + \ No newline at end of file diff --git a/tests/baselines/reference/classStaticBlock4(target=esnext).js b/tests/baselines/reference/classStaticBlock4(target=esnext).js new file mode 100644 index 0000000000000..b8821bc0f36c4 --- /dev/null +++ b/tests/baselines/reference/classStaticBlock4(target=esnext).js @@ -0,0 +1,29 @@ +//// [classStaticBlock4.ts] +class C { + static s1 = 1; + + static { + this.s1; + C.s1; + + this.s2; + C.s2; + } + + static s2 = 2; + static ss2 = this.s1; +} + + +//// [classStaticBlock4.js] +class C { + static s1 = 1; + static { + this.s1; + C.s1; + this.s2; + C.s2; + } + static s2 = 2; + static ss2 = this.s1; +} diff --git a/tests/baselines/reference/classStaticBlock4(target=esnext).symbols b/tests/baselines/reference/classStaticBlock4(target=esnext).symbols new file mode 100644 index 0000000000000..fd412244fbe0e --- /dev/null +++ b/tests/baselines/reference/classStaticBlock4(target=esnext).symbols @@ -0,0 +1,39 @@ +=== tests/cases/conformance/classes/classStaticBlock/classStaticBlock4.ts === +class C { +>C : Symbol(C, Decl(classStaticBlock4.ts, 0, 0)) + + static s1 = 1; +>s1 : Symbol(C.s1, Decl(classStaticBlock4.ts, 0, 9)) + + static { + this.s1; +>this.s1 : Symbol(C.s1, Decl(classStaticBlock4.ts, 0, 9)) +>this : Symbol(C, Decl(classStaticBlock4.ts, 0, 0)) +>s1 : Symbol(C.s1, Decl(classStaticBlock4.ts, 0, 9)) + + C.s1; +>C.s1 : Symbol(C.s1, Decl(classStaticBlock4.ts, 0, 9)) +>C : Symbol(C, Decl(classStaticBlock4.ts, 0, 0)) +>s1 : Symbol(C.s1, Decl(classStaticBlock4.ts, 0, 9)) + + this.s2; +>this.s2 : Symbol(C.s2, Decl(classStaticBlock4.ts, 9, 5)) +>this : Symbol(C, Decl(classStaticBlock4.ts, 0, 0)) +>s2 : Symbol(C.s2, Decl(classStaticBlock4.ts, 9, 5)) + + C.s2; +>C.s2 : Symbol(C.s2, Decl(classStaticBlock4.ts, 9, 5)) +>C : Symbol(C, Decl(classStaticBlock4.ts, 0, 0)) +>s2 : Symbol(C.s2, Decl(classStaticBlock4.ts, 9, 5)) + } + + static s2 = 2; +>s2 : Symbol(C.s2, Decl(classStaticBlock4.ts, 9, 5)) + + static ss2 = this.s1; +>ss2 : Symbol(C.ss2, Decl(classStaticBlock4.ts, 11, 18)) +>this.s1 : Symbol(C.s1, Decl(classStaticBlock4.ts, 0, 9)) +>this : Symbol(C, Decl(classStaticBlock4.ts, 0, 0)) +>s1 : Symbol(C.s1, Decl(classStaticBlock4.ts, 0, 9)) +} + diff --git a/tests/baselines/reference/classStaticBlock4(target=esnext).types b/tests/baselines/reference/classStaticBlock4(target=esnext).types new file mode 100644 index 0000000000000..db068a795397c --- /dev/null +++ b/tests/baselines/reference/classStaticBlock4(target=esnext).types @@ -0,0 +1,41 @@ +=== tests/cases/conformance/classes/classStaticBlock/classStaticBlock4.ts === +class C { +>C : C + + static s1 = 1; +>s1 : number +>1 : 1 + + static { + this.s1; +>this.s1 : number +>this : typeof C +>s1 : number + + C.s1; +>C.s1 : number +>C : typeof C +>s1 : number + + this.s2; +>this.s2 : number +>this : typeof C +>s2 : number + + C.s2; +>C.s2 : number +>C : typeof C +>s2 : number + } + + static s2 = 2; +>s2 : number +>2 : 2 + + static ss2 = this.s1; +>ss2 : number +>this.s1 : number +>this : typeof C +>s1 : number +} + diff --git a/tests/baselines/reference/classStaticBlock5(target=es2022).js b/tests/baselines/reference/classStaticBlock5(target=es2022).js new file mode 100644 index 0000000000000..84fece2b40219 --- /dev/null +++ b/tests/baselines/reference/classStaticBlock5(target=es2022).js @@ -0,0 +1,32 @@ +//// [classStaticBlock5.ts] +class B { + static a = 1; + static b = 2; +} + +class C extends B { + static b = 3; + static c = super.a + + static { + this.b; + super.b; + super.a; + } +} + + +//// [classStaticBlock5.js] +class B { + static a = 1; + static b = 2; +} +class C extends B { + static b = 3; + static c = super.a; + static { + this.b; + super.b; + super.a; + } +} diff --git a/tests/baselines/reference/classStaticBlock5(target=es2022).symbols b/tests/baselines/reference/classStaticBlock5(target=es2022).symbols new file mode 100644 index 0000000000000..4559a1eaaf287 --- /dev/null +++ b/tests/baselines/reference/classStaticBlock5(target=es2022).symbols @@ -0,0 +1,42 @@ +=== tests/cases/conformance/classes/classStaticBlock/classStaticBlock5.ts === +class B { +>B : Symbol(B, Decl(classStaticBlock5.ts, 0, 0)) + + static a = 1; +>a : Symbol(B.a, Decl(classStaticBlock5.ts, 0, 9)) + + static b = 2; +>b : Symbol(B.b, Decl(classStaticBlock5.ts, 1, 17)) +} + +class C extends B { +>C : Symbol(C, Decl(classStaticBlock5.ts, 3, 1)) +>B : Symbol(B, Decl(classStaticBlock5.ts, 0, 0)) + + static b = 3; +>b : Symbol(C.b, Decl(classStaticBlock5.ts, 5, 19)) + + static c = super.a +>c : Symbol(C.c, Decl(classStaticBlock5.ts, 6, 17)) +>super.a : Symbol(B.a, Decl(classStaticBlock5.ts, 0, 9)) +>super : Symbol(B, Decl(classStaticBlock5.ts, 0, 0)) +>a : Symbol(B.a, Decl(classStaticBlock5.ts, 0, 9)) + + static { + this.b; +>this.b : Symbol(C.b, Decl(classStaticBlock5.ts, 5, 19)) +>this : Symbol(C, Decl(classStaticBlock5.ts, 3, 1)) +>b : Symbol(C.b, Decl(classStaticBlock5.ts, 5, 19)) + + super.b; +>super.b : Symbol(B.b, Decl(classStaticBlock5.ts, 1, 17)) +>super : Symbol(B, Decl(classStaticBlock5.ts, 0, 0)) +>b : Symbol(B.b, Decl(classStaticBlock5.ts, 1, 17)) + + super.a; +>super.a : Symbol(B.a, Decl(classStaticBlock5.ts, 0, 9)) +>super : Symbol(B, Decl(classStaticBlock5.ts, 0, 0)) +>a : Symbol(B.a, Decl(classStaticBlock5.ts, 0, 9)) + } +} + diff --git a/tests/baselines/reference/classStaticBlock5(target=es2022).types b/tests/baselines/reference/classStaticBlock5(target=es2022).types new file mode 100644 index 0000000000000..8aebace4d70e3 --- /dev/null +++ b/tests/baselines/reference/classStaticBlock5(target=es2022).types @@ -0,0 +1,45 @@ +=== tests/cases/conformance/classes/classStaticBlock/classStaticBlock5.ts === +class B { +>B : B + + static a = 1; +>a : number +>1 : 1 + + static b = 2; +>b : number +>2 : 2 +} + +class C extends B { +>C : C +>B : B + + static b = 3; +>b : number +>3 : 3 + + static c = super.a +>c : number +>super.a : number +>super : typeof B +>a : number + + static { + this.b; +>this.b : number +>this : typeof C +>b : number + + super.b; +>super.b : number +>super : typeof B +>b : number + + super.a; +>super.a : number +>super : typeof B +>a : number + } +} + diff --git a/tests/baselines/reference/classStaticBlock9(target=es2022).errors.txt b/tests/baselines/reference/classStaticBlock9(target=es2022).errors.txt new file mode 100644 index 0000000000000..4e8572da31914 --- /dev/null +++ b/tests/baselines/reference/classStaticBlock9(target=es2022).errors.txt @@ -0,0 +1,19 @@ +tests/cases/conformance/classes/classStaticBlock/classStaticBlock9.ts(2,20): error TS2729: Property 'foo' is used before its initialization. +tests/cases/conformance/classes/classStaticBlock/classStaticBlock9.ts(4,11): error TS2729: Property 'foo' is used before its initialization. + + +==== tests/cases/conformance/classes/classStaticBlock/classStaticBlock9.ts (2 errors) ==== + class A { + static bar = A.foo + 1 + ~~~ +!!! error TS2729: Property 'foo' is used before its initialization. +!!! related TS2728 tests/cases/conformance/classes/classStaticBlock/classStaticBlock9.ts:6:12: 'foo' is declared here. + static { + A.foo + 2; + ~~~ +!!! error TS2729: Property 'foo' is used before its initialization. +!!! related TS2728 tests/cases/conformance/classes/classStaticBlock/classStaticBlock9.ts:6:12: 'foo' is declared here. + } + static foo = 1; + } + \ No newline at end of file diff --git a/tests/baselines/reference/classStaticBlock9(target=es2022).js b/tests/baselines/reference/classStaticBlock9(target=es2022).js new file mode 100644 index 0000000000000..de762275b1eec --- /dev/null +++ b/tests/baselines/reference/classStaticBlock9(target=es2022).js @@ -0,0 +1,18 @@ +//// [classStaticBlock9.ts] +class A { + static bar = A.foo + 1 + static { + A.foo + 2; + } + static foo = 1; +} + + +//// [classStaticBlock9.js] +class A { + static bar = A.foo + 1; + static { + A.foo + 2; + } + static foo = 1; +} diff --git a/tests/baselines/reference/classStaticBlock9(target=es2022).symbols b/tests/baselines/reference/classStaticBlock9(target=es2022).symbols new file mode 100644 index 0000000000000..2cb44695c8328 --- /dev/null +++ b/tests/baselines/reference/classStaticBlock9(target=es2022).symbols @@ -0,0 +1,20 @@ +=== tests/cases/conformance/classes/classStaticBlock/classStaticBlock9.ts === +class A { +>A : Symbol(A, Decl(classStaticBlock9.ts, 0, 0)) + + static bar = A.foo + 1 +>bar : Symbol(A.bar, Decl(classStaticBlock9.ts, 0, 9)) +>A.foo : Symbol(A.foo, Decl(classStaticBlock9.ts, 4, 5)) +>A : Symbol(A, Decl(classStaticBlock9.ts, 0, 0)) +>foo : Symbol(A.foo, Decl(classStaticBlock9.ts, 4, 5)) + + static { + A.foo + 2; +>A.foo : Symbol(A.foo, Decl(classStaticBlock9.ts, 4, 5)) +>A : Symbol(A, Decl(classStaticBlock9.ts, 0, 0)) +>foo : Symbol(A.foo, Decl(classStaticBlock9.ts, 4, 5)) + } + static foo = 1; +>foo : Symbol(A.foo, Decl(classStaticBlock9.ts, 4, 5)) +} + diff --git a/tests/baselines/reference/classStaticBlock9(target=es2022).types b/tests/baselines/reference/classStaticBlock9(target=es2022).types new file mode 100644 index 0000000000000..9ac192ac54bed --- /dev/null +++ b/tests/baselines/reference/classStaticBlock9(target=es2022).types @@ -0,0 +1,25 @@ +=== tests/cases/conformance/classes/classStaticBlock/classStaticBlock9.ts === +class A { +>A : A + + static bar = A.foo + 1 +>bar : number +>A.foo + 1 : number +>A.foo : number +>A : typeof A +>foo : number +>1 : 1 + + static { + A.foo + 2; +>A.foo + 2 : number +>A.foo : number +>A : typeof A +>foo : number +>2 : 2 + } + static foo = 1; +>foo : number +>1 : 1 +} + diff --git a/tests/baselines/reference/classStaticBlockUseBeforeDef1.symbols b/tests/baselines/reference/classStaticBlockUseBeforeDef1(target=es2022).symbols similarity index 97% rename from tests/baselines/reference/classStaticBlockUseBeforeDef1.symbols rename to tests/baselines/reference/classStaticBlockUseBeforeDef1(target=es2022).symbols index 3a432e830e4b1..991c2c6e6bfaa 100644 --- a/tests/baselines/reference/classStaticBlockUseBeforeDef1.symbols +++ b/tests/baselines/reference/classStaticBlockUseBeforeDef1(target=es2022).symbols @@ -30,3 +30,4 @@ class C { >y : Symbol(C.y, Decl(classStaticBlockUseBeforeDef1.ts, 4, 5)) } } + diff --git a/tests/baselines/reference/classStaticBlockUseBeforeDef1.types b/tests/baselines/reference/classStaticBlockUseBeforeDef1(target=es2022).types similarity index 93% rename from tests/baselines/reference/classStaticBlockUseBeforeDef1.types rename to tests/baselines/reference/classStaticBlockUseBeforeDef1(target=es2022).types index 084534b0a169f..3d94fcee3940e 100644 --- a/tests/baselines/reference/classStaticBlockUseBeforeDef1.types +++ b/tests/baselines/reference/classStaticBlockUseBeforeDef1(target=es2022).types @@ -33,3 +33,4 @@ class C { >y : number } } + diff --git a/tests/baselines/reference/classStaticBlockUseBeforeDef1(target=esnext).symbols b/tests/baselines/reference/classStaticBlockUseBeforeDef1(target=esnext).symbols new file mode 100644 index 0000000000000..991c2c6e6bfaa --- /dev/null +++ b/tests/baselines/reference/classStaticBlockUseBeforeDef1(target=esnext).symbols @@ -0,0 +1,33 @@ +=== tests/cases/conformance/classes/classStaticBlock/classStaticBlockUseBeforeDef1.ts === +class C { +>C : Symbol(C, Decl(classStaticBlockUseBeforeDef1.ts, 0, 0)) + + static x; +>x : Symbol(C.x, Decl(classStaticBlockUseBeforeDef1.ts, 0, 9)) + + static { + this.x = 1; +>this.x : Symbol(C.x, Decl(classStaticBlockUseBeforeDef1.ts, 0, 9)) +>this : Symbol(C, Decl(classStaticBlockUseBeforeDef1.ts, 0, 0)) +>x : Symbol(C.x, Decl(classStaticBlockUseBeforeDef1.ts, 0, 9)) + } + static y = this.x; +>y : Symbol(C.y, Decl(classStaticBlockUseBeforeDef1.ts, 4, 5)) +>this.x : Symbol(C.x, Decl(classStaticBlockUseBeforeDef1.ts, 0, 9)) +>this : Symbol(C, Decl(classStaticBlockUseBeforeDef1.ts, 0, 0)) +>x : Symbol(C.x, Decl(classStaticBlockUseBeforeDef1.ts, 0, 9)) + + static z; +>z : Symbol(C.z, Decl(classStaticBlockUseBeforeDef1.ts, 5, 22)) + + static { + this.z = this.y; +>this.z : Symbol(C.z, Decl(classStaticBlockUseBeforeDef1.ts, 5, 22)) +>this : Symbol(C, Decl(classStaticBlockUseBeforeDef1.ts, 0, 0)) +>z : Symbol(C.z, Decl(classStaticBlockUseBeforeDef1.ts, 5, 22)) +>this.y : Symbol(C.y, Decl(classStaticBlockUseBeforeDef1.ts, 4, 5)) +>this : Symbol(C, Decl(classStaticBlockUseBeforeDef1.ts, 0, 0)) +>y : Symbol(C.y, Decl(classStaticBlockUseBeforeDef1.ts, 4, 5)) + } +} + diff --git a/tests/baselines/reference/classStaticBlockUseBeforeDef1(target=esnext).types b/tests/baselines/reference/classStaticBlockUseBeforeDef1(target=esnext).types new file mode 100644 index 0000000000000..3d94fcee3940e --- /dev/null +++ b/tests/baselines/reference/classStaticBlockUseBeforeDef1(target=esnext).types @@ -0,0 +1,36 @@ +=== tests/cases/conformance/classes/classStaticBlock/classStaticBlockUseBeforeDef1.ts === +class C { +>C : C + + static x; +>x : number + + static { + this.x = 1; +>this.x = 1 : 1 +>this.x : number +>this : typeof C +>x : number +>1 : 1 + } + static y = this.x; +>y : number +>this.x : number +>this : typeof C +>x : number + + static z; +>z : number + + static { + this.z = this.y; +>this.z = this.y : number +>this.z : number +>this : typeof C +>z : number +>this.y : number +>this : typeof C +>y : number + } +} + diff --git a/tests/baselines/reference/classStaticBlockUseBeforeDef2.errors.txt b/tests/baselines/reference/classStaticBlockUseBeforeDef2(target=es2022).errors.txt similarity index 96% rename from tests/baselines/reference/classStaticBlockUseBeforeDef2.errors.txt rename to tests/baselines/reference/classStaticBlockUseBeforeDef2(target=es2022).errors.txt index ca13946d6230a..e95cceef97526 100644 --- a/tests/baselines/reference/classStaticBlockUseBeforeDef2.errors.txt +++ b/tests/baselines/reference/classStaticBlockUseBeforeDef2(target=es2022).errors.txt @@ -10,4 +10,5 @@ tests/cases/conformance/classes/classStaticBlock/classStaticBlockUseBeforeDef2.t !!! related TS2728 tests/cases/conformance/classes/classStaticBlock/classStaticBlockUseBeforeDef2.ts:5:12: 'x' is declared here. } static x; - } \ No newline at end of file + } + \ No newline at end of file diff --git a/tests/baselines/reference/classStaticBlockUseBeforeDef2.symbols b/tests/baselines/reference/classStaticBlockUseBeforeDef2(target=es2022).symbols similarity index 96% rename from tests/baselines/reference/classStaticBlockUseBeforeDef2.symbols rename to tests/baselines/reference/classStaticBlockUseBeforeDef2(target=es2022).symbols index 69716958faa82..9781ba0779193 100644 --- a/tests/baselines/reference/classStaticBlockUseBeforeDef2.symbols +++ b/tests/baselines/reference/classStaticBlockUseBeforeDef2(target=es2022).symbols @@ -11,3 +11,4 @@ class C { static x; >x : Symbol(C.x, Decl(classStaticBlockUseBeforeDef2.ts, 3, 5)) } + diff --git a/tests/baselines/reference/classStaticBlockUseBeforeDef2.types b/tests/baselines/reference/classStaticBlockUseBeforeDef2(target=es2022).types similarity index 93% rename from tests/baselines/reference/classStaticBlockUseBeforeDef2.types rename to tests/baselines/reference/classStaticBlockUseBeforeDef2(target=es2022).types index 660b09c8d25b1..bae1432f62e0f 100644 --- a/tests/baselines/reference/classStaticBlockUseBeforeDef2.types +++ b/tests/baselines/reference/classStaticBlockUseBeforeDef2(target=es2022).types @@ -13,3 +13,4 @@ class C { static x; >x : number } + diff --git a/tests/baselines/reference/classStaticBlockUseBeforeDef2(target=esnext).errors.txt b/tests/baselines/reference/classStaticBlockUseBeforeDef2(target=esnext).errors.txt new file mode 100644 index 0000000000000..e95cceef97526 --- /dev/null +++ b/tests/baselines/reference/classStaticBlockUseBeforeDef2(target=esnext).errors.txt @@ -0,0 +1,14 @@ +tests/cases/conformance/classes/classStaticBlock/classStaticBlockUseBeforeDef2.ts(3,14): error TS2729: Property 'x' is used before its initialization. + + +==== tests/cases/conformance/classes/classStaticBlock/classStaticBlockUseBeforeDef2.ts (1 errors) ==== + class C { + static { + this.x = 1; + ~ +!!! error TS2729: Property 'x' is used before its initialization. +!!! related TS2728 tests/cases/conformance/classes/classStaticBlock/classStaticBlockUseBeforeDef2.ts:5:12: 'x' is declared here. + } + static x; + } + \ No newline at end of file diff --git a/tests/baselines/reference/classStaticBlockUseBeforeDef2(target=esnext).symbols b/tests/baselines/reference/classStaticBlockUseBeforeDef2(target=esnext).symbols new file mode 100644 index 0000000000000..9781ba0779193 --- /dev/null +++ b/tests/baselines/reference/classStaticBlockUseBeforeDef2(target=esnext).symbols @@ -0,0 +1,14 @@ +=== tests/cases/conformance/classes/classStaticBlock/classStaticBlockUseBeforeDef2.ts === +class C { +>C : Symbol(C, Decl(classStaticBlockUseBeforeDef2.ts, 0, 0)) + + static { + this.x = 1; +>this.x : Symbol(C.x, Decl(classStaticBlockUseBeforeDef2.ts, 3, 5)) +>this : Symbol(C, Decl(classStaticBlockUseBeforeDef2.ts, 0, 0)) +>x : Symbol(C.x, Decl(classStaticBlockUseBeforeDef2.ts, 3, 5)) + } + static x; +>x : Symbol(C.x, Decl(classStaticBlockUseBeforeDef2.ts, 3, 5)) +} + diff --git a/tests/baselines/reference/classStaticBlockUseBeforeDef2(target=esnext).types b/tests/baselines/reference/classStaticBlockUseBeforeDef2(target=esnext).types new file mode 100644 index 0000000000000..bae1432f62e0f --- /dev/null +++ b/tests/baselines/reference/classStaticBlockUseBeforeDef2(target=esnext).types @@ -0,0 +1,16 @@ +=== tests/cases/conformance/classes/classStaticBlock/classStaticBlockUseBeforeDef2.ts === +class C { +>C : C + + static { + this.x = 1; +>this.x = 1 : 1 +>this.x : number +>this : typeof C +>x : number +>1 : 1 + } + static x; +>x : number +} + diff --git a/tests/baselines/reference/classStaticBlockUseBeforeDef3.errors.txt b/tests/baselines/reference/classStaticBlockUseBeforeDef3.errors.txt new file mode 100644 index 0000000000000..7fed7444b57ef --- /dev/null +++ b/tests/baselines/reference/classStaticBlockUseBeforeDef3.errors.txt @@ -0,0 +1,53 @@ +tests/cases/conformance/classes/classStaticBlock/classStaticBlockUseBeforeDef3.ts(14,21): error TS2448: Block-scoped variable 'FOO' used before its declaration. +tests/cases/conformance/classes/classStaticBlock/classStaticBlockUseBeforeDef3.ts(14,21): error TS2454: Variable 'FOO' is used before being assigned. + + +==== tests/cases/conformance/classes/classStaticBlock/classStaticBlockUseBeforeDef3.ts (2 errors) ==== + class A { + static { + A.doSomething(); // should not error + } + + static doSomething() { + console.log("gotcha!"); + } + } + + + class Baz { + static { + console.log(FOO); // should error + ~~~ +!!! error TS2448: Block-scoped variable 'FOO' used before its declaration. +!!! related TS2728 tests/cases/conformance/classes/classStaticBlock/classStaticBlockUseBeforeDef3.ts:18:7: 'FOO' is declared here. + ~~~ +!!! error TS2454: Variable 'FOO' is used before being assigned. + } + } + + const FOO = "FOO"; + class Bar { + static { + console.log(FOO); // should not error + } + } + + let u = "FOO" as "FOO" | "BAR"; + + class CFA { + static { + u = "BAR"; + u; // should be "BAR" + } + + static t = 1; + + static doSomething() {} + + static { + u; // should be "BAR" + } + } + + u; // should be "BAR" + \ No newline at end of file diff --git a/tests/baselines/reference/classStaticBlockUseBeforeDef3.symbols b/tests/baselines/reference/classStaticBlockUseBeforeDef3.symbols new file mode 100644 index 0000000000000..beb214dab0860 --- /dev/null +++ b/tests/baselines/reference/classStaticBlockUseBeforeDef3.symbols @@ -0,0 +1,78 @@ +=== tests/cases/conformance/classes/classStaticBlock/classStaticBlockUseBeforeDef3.ts === +class A { +>A : Symbol(A, Decl(classStaticBlockUseBeforeDef3.ts, 0, 0)) + + static { + A.doSomething(); // should not error +>A.doSomething : Symbol(A.doSomething, Decl(classStaticBlockUseBeforeDef3.ts, 3, 5)) +>A : Symbol(A, Decl(classStaticBlockUseBeforeDef3.ts, 0, 0)) +>doSomething : Symbol(A.doSomething, Decl(classStaticBlockUseBeforeDef3.ts, 3, 5)) + } + + static doSomething() { +>doSomething : Symbol(A.doSomething, Decl(classStaticBlockUseBeforeDef3.ts, 3, 5)) + + console.log("gotcha!"); +>console.log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>console : Symbol(console, Decl(lib.dom.d.ts, --, --)) +>log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) + } +} + + +class Baz { +>Baz : Symbol(Baz, Decl(classStaticBlockUseBeforeDef3.ts, 8, 1)) + + static { + console.log(FOO); // should error +>console.log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>console : Symbol(console, Decl(lib.dom.d.ts, --, --)) +>log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>FOO : Symbol(FOO, Decl(classStaticBlockUseBeforeDef3.ts, 17, 5)) + } +} + +const FOO = "FOO"; +>FOO : Symbol(FOO, Decl(classStaticBlockUseBeforeDef3.ts, 17, 5)) + +class Bar { +>Bar : Symbol(Bar, Decl(classStaticBlockUseBeforeDef3.ts, 17, 18)) + + static { + console.log(FOO); // should not error +>console.log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>console : Symbol(console, Decl(lib.dom.d.ts, --, --)) +>log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>FOO : Symbol(FOO, Decl(classStaticBlockUseBeforeDef3.ts, 17, 5)) + } +} + +let u = "FOO" as "FOO" | "BAR"; +>u : Symbol(u, Decl(classStaticBlockUseBeforeDef3.ts, 24, 3)) + +class CFA { +>CFA : Symbol(CFA, Decl(classStaticBlockUseBeforeDef3.ts, 24, 31)) + + static { + u = "BAR"; +>u : Symbol(u, Decl(classStaticBlockUseBeforeDef3.ts, 24, 3)) + + u; // should be "BAR" +>u : Symbol(u, Decl(classStaticBlockUseBeforeDef3.ts, 24, 3)) + } + + static t = 1; +>t : Symbol(CFA.t, Decl(classStaticBlockUseBeforeDef3.ts, 30, 5)) + + static doSomething() {} +>doSomething : Symbol(CFA.doSomething, Decl(classStaticBlockUseBeforeDef3.ts, 32, 17)) + + static { + u; // should be "BAR" +>u : Symbol(u, Decl(classStaticBlockUseBeforeDef3.ts, 24, 3)) + } +} + +u; // should be "BAR" +>u : Symbol(u, Decl(classStaticBlockUseBeforeDef3.ts, 24, 3)) + diff --git a/tests/baselines/reference/classStaticBlockUseBeforeDef3.types b/tests/baselines/reference/classStaticBlockUseBeforeDef3.types new file mode 100644 index 0000000000000..f10c2ee0f67a1 --- /dev/null +++ b/tests/baselines/reference/classStaticBlockUseBeforeDef3.types @@ -0,0 +1,89 @@ +=== tests/cases/conformance/classes/classStaticBlock/classStaticBlockUseBeforeDef3.ts === +class A { +>A : A + + static { + A.doSomething(); // should not error +>A.doSomething() : void +>A.doSomething : () => void +>A : typeof A +>doSomething : () => void + } + + static doSomething() { +>doSomething : () => void + + console.log("gotcha!"); +>console.log("gotcha!") : void +>console.log : (...data: any[]) => void +>console : Console +>log : (...data: any[]) => void +>"gotcha!" : "gotcha!" + } +} + + +class Baz { +>Baz : Baz + + static { + console.log(FOO); // should error +>console.log(FOO) : void +>console.log : (...data: any[]) => void +>console : Console +>log : (...data: any[]) => void +>FOO : "FOO" + } +} + +const FOO = "FOO"; +>FOO : "FOO" +>"FOO" : "FOO" + +class Bar { +>Bar : Bar + + static { + console.log(FOO); // should not error +>console.log(FOO) : void +>console.log : (...data: any[]) => void +>console : Console +>log : (...data: any[]) => void +>FOO : "FOO" + } +} + +let u = "FOO" as "FOO" | "BAR"; +>u : "FOO" | "BAR" +>"FOO" as "FOO" | "BAR" : "FOO" | "BAR" +>"FOO" : "FOO" + +class CFA { +>CFA : CFA + + static { + u = "BAR"; +>u = "BAR" : "BAR" +>u : "FOO" | "BAR" +>"BAR" : "BAR" + + u; // should be "BAR" +>u : "BAR" + } + + static t = 1; +>t : number +>1 : 1 + + static doSomething() {} +>doSomething : () => void + + static { + u; // should be "BAR" +>u : "BAR" + } +} + +u; // should be "BAR" +>u : "BAR" + diff --git a/tests/baselines/reference/classUpdateTests.errors.txt b/tests/baselines/reference/classUpdateTests.errors.txt index 4a10022982838..7609acf8e2374 100644 --- a/tests/baselines/reference/classUpdateTests.errors.txt +++ b/tests/baselines/reference/classUpdateTests.errors.txt @@ -1,11 +1,9 @@ tests/cases/compiler/classUpdateTests.ts(34,2): error TS2377: Constructors for derived classes must contain a 'super' call. tests/cases/compiler/classUpdateTests.ts(43,18): error TS2335: 'super' can only be referenced in a derived class. -tests/cases/compiler/classUpdateTests.ts(57,2): error TS2376: A 'super' call must be the first statement in the constructor when a class contains initialized properties, parameter properties, or private identifiers. tests/cases/compiler/classUpdateTests.ts(63,7): error TS2415: Class 'L' incorrectly extends base class 'G'. Property 'p1' is private in type 'L' but not in type 'G'. tests/cases/compiler/classUpdateTests.ts(69,7): error TS2415: Class 'M' incorrectly extends base class 'G'. Property 'p1' is private in type 'M' but not in type 'G'. -tests/cases/compiler/classUpdateTests.ts(70,2): error TS2376: A 'super' call must be the first statement in the constructor when a class contains initialized properties, parameter properties, or private identifiers. tests/cases/compiler/classUpdateTests.ts(93,3): error TS1128: Declaration or statement expected. tests/cases/compiler/classUpdateTests.ts(95,1): error TS1128: Declaration or statement expected. tests/cases/compiler/classUpdateTests.ts(99,3): error TS1128: Declaration or statement expected. @@ -20,7 +18,7 @@ tests/cases/compiler/classUpdateTests.ts(111,15): error TS1068: Unexpected token tests/cases/compiler/classUpdateTests.ts(113,1): error TS1128: Declaration or statement expected. -==== tests/cases/compiler/classUpdateTests.ts (18 errors) ==== +==== tests/cases/compiler/classUpdateTests.ts (16 errors) ==== // // test codegen for instance properties // @@ -82,14 +80,9 @@ tests/cases/compiler/classUpdateTests.ts(113,1): error TS1128: Declaration or st class K extends G { constructor(public p1:number) { // ERROR - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ var i = 0; - ~~~~~~~~~~~~ super(); - ~~~~~~~~~~ } - ~~ -!!! error TS2376: A 'super' call must be the first statement in the constructor when a class contains initialized properties, parameter properties, or private identifiers. } class L extends G { @@ -106,14 +99,9 @@ tests/cases/compiler/classUpdateTests.ts(113,1): error TS1128: Declaration or st !!! error TS2415: Class 'M' incorrectly extends base class 'G'. !!! error TS2415: Property 'p1' is private in type 'M' but not in type 'G'. constructor(private p1:number) { // ERROR - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ var i = 0; - ~~~~~~~~~~~~ super(); - ~~~~~~~~~~ } - ~~ -!!! error TS2376: A 'super' call must be the first statement in the constructor when a class contains initialized properties, parameter properties, or private identifiers. } // diff --git a/tests/baselines/reference/classUpdateTests.js b/tests/baselines/reference/classUpdateTests.js index 325f4ef87f166..cc641c1eaf047 100644 --- a/tests/baselines/reference/classUpdateTests.js +++ b/tests/baselines/reference/classUpdateTests.js @@ -192,7 +192,7 @@ var G = /** @class */ (function (_super) { }(D)); var H = /** @class */ (function () { function H() { - _this = _super.call(this) || this; + return _super.call(this) || this; } // ERROR - no super call allowed return H; }()); diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=preserve,module=commonjs).js b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=preserve,module=commonjs,moduledetection=auto).js similarity index 100% rename from tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=preserve,module=commonjs).js rename to tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=preserve,module=commonjs,moduledetection=auto).js diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=preserve,module=commonjs).symbols b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=preserve,module=commonjs,moduledetection=auto).symbols similarity index 100% rename from tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=preserve,module=commonjs).symbols rename to tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=preserve,module=commonjs,moduledetection=auto).symbols diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=preserve,module=commonjs).types b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=preserve,module=commonjs,moduledetection=auto).types similarity index 100% rename from tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=preserve,module=commonjs).types rename to tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=preserve,module=commonjs,moduledetection=auto).types diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=preserve,module=commonjs,moduledetection=force).js b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=preserve,module=commonjs,moduledetection=force).js new file mode 100644 index 0000000000000..758128360f884 --- /dev/null +++ b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=preserve,module=commonjs,moduledetection=force).js @@ -0,0 +1,46 @@ +//// [commentsOnJSXExpressionsArePreserved.tsx] +// file is intentionally not a module - this tests for a crash in the module/system transforms alongside the `react-jsx` and `react-jsxdev` outputs +namespace JSX {} +class Component { + render() { + return

+ {/* missing */} + {null/* preserved */} + { + // ??? 1 + } + { // ??? 2 + } + {// ??? 3 + } + { + // ??? 4 + /* ??? 5 */} +
; + } +} + +//// [commentsOnJSXExpressionsArePreserved.jsx] +"use strict"; +exports.__esModule = true; +var Component = /** @class */ (function () { + function Component() { + } + Component.prototype.render = function () { + return
+ {/* missing */} + {null /* preserved */} + { + // ??? 1 + } + {// ??? 2 + } + {// ??? 3 + } + { + // ??? 4 + /* ??? 5 */ } +
; + }; + return Component; +}()); diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=preserve,module=system).symbols b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=preserve,module=commonjs,moduledetection=force).symbols similarity index 100% rename from tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=preserve,module=system).symbols rename to tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=preserve,module=commonjs,moduledetection=force).symbols diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=preserve,module=system).types b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=preserve,module=commonjs,moduledetection=force).types similarity index 100% rename from tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=preserve,module=system).types rename to tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=preserve,module=commonjs,moduledetection=force).types diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=preserve,module=system).js b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=preserve,module=commonjs,moduledetection=legacy).js similarity index 100% rename from tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=preserve,module=system).js rename to tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=preserve,module=commonjs,moduledetection=legacy).js diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react,module=commonjs).symbols b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=preserve,module=commonjs,moduledetection=legacy).symbols similarity index 100% rename from tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react,module=commonjs).symbols rename to tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=preserve,module=commonjs,moduledetection=legacy).symbols diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=preserve,module=commonjs,moduledetection=legacy).types b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=preserve,module=commonjs,moduledetection=legacy).types new file mode 100644 index 0000000000000..113455cf53d6c --- /dev/null +++ b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=preserve,module=commonjs,moduledetection=legacy).types @@ -0,0 +1,30 @@ +=== tests/cases/compiler/commentsOnJSXExpressionsArePreserved.tsx === +// file is intentionally not a module - this tests for a crash in the module/system transforms alongside the `react-jsx` and `react-jsxdev` outputs +namespace JSX {} +class Component { +>Component : Component + + render() { +>render : () => any + + return
+>
{/* missing */} {null/* preserved */} { // ??? 1 } { // ??? 2 } {// ??? 3 } { // ??? 4 /* ??? 5 */}
: error +>div : any + + {/* missing */} + {null/* preserved */} +>null : null + { + // ??? 1 + } + { // ??? 2 + } + {// ??? 3 + } + { + // ??? 4 + /* ??? 5 */} +
; +>div : any + } +} diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=preserve,module=system,moduledetection=auto).js b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=preserve,module=system,moduledetection=auto).js new file mode 100644 index 0000000000000..f68279f3f58e7 --- /dev/null +++ b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=preserve,module=system,moduledetection=auto).js @@ -0,0 +1,44 @@ +//// [commentsOnJSXExpressionsArePreserved.tsx] +// file is intentionally not a module - this tests for a crash in the module/system transforms alongside the `react-jsx` and `react-jsxdev` outputs +namespace JSX {} +class Component { + render() { + return
+ {/* missing */} + {null/* preserved */} + { + // ??? 1 + } + { // ??? 2 + } + {// ??? 3 + } + { + // ??? 4 + /* ??? 5 */} +
; + } +} + +//// [commentsOnJSXExpressionsArePreserved.jsx] +var Component = /** @class */ (function () { + function Component() { + } + Component.prototype.render = function () { + return
+ {/* missing */} + {null /* preserved */} + { + // ??? 1 + } + {// ??? 2 + } + {// ??? 3 + } + { + // ??? 4 + /* ??? 5 */ } +
; + }; + return Component; +}()); diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react,module=system).symbols b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=preserve,module=system,moduledetection=auto).symbols similarity index 100% rename from tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react,module=system).symbols rename to tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=preserve,module=system,moduledetection=auto).symbols diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=preserve,module=system,moduledetection=auto).types b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=preserve,module=system,moduledetection=auto).types new file mode 100644 index 0000000000000..113455cf53d6c --- /dev/null +++ b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=preserve,module=system,moduledetection=auto).types @@ -0,0 +1,30 @@ +=== tests/cases/compiler/commentsOnJSXExpressionsArePreserved.tsx === +// file is intentionally not a module - this tests for a crash in the module/system transforms alongside the `react-jsx` and `react-jsxdev` outputs +namespace JSX {} +class Component { +>Component : Component + + render() { +>render : () => any + + return
+>
{/* missing */} {null/* preserved */} { // ??? 1 } { // ??? 2 } {// ??? 3 } { // ??? 4 /* ??? 5 */}
: error +>div : any + + {/* missing */} + {null/* preserved */} +>null : null + { + // ??? 1 + } + { // ??? 2 + } + {// ??? 3 + } + { + // ??? 4 + /* ??? 5 */} +
; +>div : any + } +} diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=preserve,module=system,moduledetection=force).js b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=preserve,module=system,moduledetection=force).js new file mode 100644 index 0000000000000..ea4ff413244f4 --- /dev/null +++ b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=preserve,module=system,moduledetection=force).js @@ -0,0 +1,54 @@ +//// [commentsOnJSXExpressionsArePreserved.tsx] +// file is intentionally not a module - this tests for a crash in the module/system transforms alongside the `react-jsx` and `react-jsxdev` outputs +namespace JSX {} +class Component { + render() { + return
+ {/* missing */} + {null/* preserved */} + { + // ??? 1 + } + { // ??? 2 + } + {// ??? 3 + } + { + // ??? 4 + /* ??? 5 */} +
; + } +} + +//// [commentsOnJSXExpressionsArePreserved.jsx] +System.register([], function (exports_1, context_1) { + "use strict"; + var Component; + var __moduleName = context_1 && context_1.id; + return { + setters: [], + execute: function () { + Component = /** @class */ (function () { + function Component() { + } + Component.prototype.render = function () { + return
+ {/* missing */} + {null /* preserved */} + { + // ??? 1 + } + {// ??? 2 + } + {// ??? 3 + } + { + // ??? 4 + /* ??? 5 */ } +
; + }; + return Component; + }()); + } + }; +}); diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=commonjs).symbols b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=preserve,module=system,moduledetection=force).symbols similarity index 100% rename from tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=commonjs).symbols rename to tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=preserve,module=system,moduledetection=force).symbols diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=preserve,module=system,moduledetection=force).types b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=preserve,module=system,moduledetection=force).types new file mode 100644 index 0000000000000..113455cf53d6c --- /dev/null +++ b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=preserve,module=system,moduledetection=force).types @@ -0,0 +1,30 @@ +=== tests/cases/compiler/commentsOnJSXExpressionsArePreserved.tsx === +// file is intentionally not a module - this tests for a crash in the module/system transforms alongside the `react-jsx` and `react-jsxdev` outputs +namespace JSX {} +class Component { +>Component : Component + + render() { +>render : () => any + + return
+>
{/* missing */} {null/* preserved */} { // ??? 1 } { // ??? 2 } {// ??? 3 } { // ??? 4 /* ??? 5 */}
: error +>div : any + + {/* missing */} + {null/* preserved */} +>null : null + { + // ??? 1 + } + { // ??? 2 + } + {// ??? 3 + } + { + // ??? 4 + /* ??? 5 */} +
; +>div : any + } +} diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=preserve,module=system,moduledetection=legacy).js b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=preserve,module=system,moduledetection=legacy).js new file mode 100644 index 0000000000000..f68279f3f58e7 --- /dev/null +++ b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=preserve,module=system,moduledetection=legacy).js @@ -0,0 +1,44 @@ +//// [commentsOnJSXExpressionsArePreserved.tsx] +// file is intentionally not a module - this tests for a crash in the module/system transforms alongside the `react-jsx` and `react-jsxdev` outputs +namespace JSX {} +class Component { + render() { + return
+ {/* missing */} + {null/* preserved */} + { + // ??? 1 + } + { // ??? 2 + } + {// ??? 3 + } + { + // ??? 4 + /* ??? 5 */} +
; + } +} + +//// [commentsOnJSXExpressionsArePreserved.jsx] +var Component = /** @class */ (function () { + function Component() { + } + Component.prototype.render = function () { + return
+ {/* missing */} + {null /* preserved */} + { + // ??? 1 + } + {// ??? 2 + } + {// ??? 3 + } + { + // ??? 4 + /* ??? 5 */ } +
; + }; + return Component; +}()); diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=system).symbols b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=preserve,module=system,moduledetection=legacy).symbols similarity index 100% rename from tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=system).symbols rename to tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=preserve,module=system,moduledetection=legacy).symbols diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=preserve,module=system,moduledetection=legacy).types b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=preserve,module=system,moduledetection=legacy).types new file mode 100644 index 0000000000000..113455cf53d6c --- /dev/null +++ b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=preserve,module=system,moduledetection=legacy).types @@ -0,0 +1,30 @@ +=== tests/cases/compiler/commentsOnJSXExpressionsArePreserved.tsx === +// file is intentionally not a module - this tests for a crash in the module/system transforms alongside the `react-jsx` and `react-jsxdev` outputs +namespace JSX {} +class Component { +>Component : Component + + render() { +>render : () => any + + return
+>
{/* missing */} {null/* preserved */} { // ??? 1 } { // ??? 2 } {// ??? 3 } { // ??? 4 /* ??? 5 */}
: error +>div : any + + {/* missing */} + {null/* preserved */} +>null : null + { + // ??? 1 + } + { // ??? 2 + } + {// ??? 3 + } + { + // ??? 4 + /* ??? 5 */} +
; +>div : any + } +} diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react,module=commonjs).errors.txt b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react,module=commonjs,moduledetection=auto).errors.txt similarity index 100% rename from tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react,module=commonjs).errors.txt rename to tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react,module=commonjs,moduledetection=auto).errors.txt diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react,module=commonjs).js b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react,module=commonjs,moduledetection=auto).js similarity index 100% rename from tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react,module=commonjs).js rename to tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react,module=commonjs,moduledetection=auto).js diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=commonjs).symbols b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react,module=commonjs,moduledetection=auto).symbols similarity index 100% rename from tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=commonjs).symbols rename to tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react,module=commonjs,moduledetection=auto).symbols diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react,module=commonjs).types b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react,module=commonjs,moduledetection=auto).types similarity index 100% rename from tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react,module=commonjs).types rename to tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react,module=commonjs,moduledetection=auto).types diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react,module=system).errors.txt b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react,module=commonjs,moduledetection=force).errors.txt similarity index 100% rename from tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react,module=system).errors.txt rename to tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react,module=commonjs,moduledetection=force).errors.txt diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react,module=commonjs,moduledetection=force).js b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react,module=commonjs,moduledetection=force).js new file mode 100644 index 0000000000000..f271b199ed61d --- /dev/null +++ b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react,module=commonjs,moduledetection=force).js @@ -0,0 +1,33 @@ +//// [commentsOnJSXExpressionsArePreserved.tsx] +// file is intentionally not a module - this tests for a crash in the module/system transforms alongside the `react-jsx` and `react-jsxdev` outputs +namespace JSX {} +class Component { + render() { + return
+ {/* missing */} + {null/* preserved */} + { + // ??? 1 + } + { // ??? 2 + } + {// ??? 3 + } + { + // ??? 4 + /* ??? 5 */} +
; + } +} + +//// [commentsOnJSXExpressionsArePreserved.js] +"use strict"; +exports.__esModule = true; +var Component = /** @class */ (function () { + function Component() { + } + Component.prototype.render = function () { + return React.createElement("div", null, null /* preserved */); + }; + return Component; +}()); diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=system).symbols b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react,module=commonjs,moduledetection=force).symbols similarity index 100% rename from tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=system).symbols rename to tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react,module=commonjs,moduledetection=force).symbols diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react,module=system).types b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react,module=commonjs,moduledetection=force).types similarity index 100% rename from tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react,module=system).types rename to tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react,module=commonjs,moduledetection=force).types diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react,module=commonjs,moduledetection=legacy).errors.txt b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react,module=commonjs,moduledetection=legacy).errors.txt new file mode 100644 index 0000000000000..388601f8ae848 --- /dev/null +++ b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react,module=commonjs,moduledetection=legacy).errors.txt @@ -0,0 +1,26 @@ +tests/cases/compiler/commentsOnJSXExpressionsArePreserved.tsx(5,17): error TS2304: Cannot find name 'React'. + + +==== tests/cases/compiler/commentsOnJSXExpressionsArePreserved.tsx (1 errors) ==== + // file is intentionally not a module - this tests for a crash in the module/system transforms alongside the `react-jsx` and `react-jsxdev` outputs + namespace JSX {} + class Component { + render() { + return
+ ~~~ +!!! error TS2304: Cannot find name 'React'. + {/* missing */} + {null/* preserved */} + { + // ??? 1 + } + { // ??? 2 + } + {// ??? 3 + } + { + // ??? 4 + /* ??? 5 */} +
; + } + } \ No newline at end of file diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react,module=system).js b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react,module=commonjs,moduledetection=legacy).js similarity index 100% rename from tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react,module=system).js rename to tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react,module=commonjs,moduledetection=legacy).js diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react,module=commonjs,moduledetection=legacy).symbols b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react,module=commonjs,moduledetection=legacy).symbols new file mode 100644 index 0000000000000..95b7eeda0623f --- /dev/null +++ b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react,module=commonjs,moduledetection=legacy).symbols @@ -0,0 +1,27 @@ +=== tests/cases/compiler/commentsOnJSXExpressionsArePreserved.tsx === +// file is intentionally not a module - this tests for a crash in the module/system transforms alongside the `react-jsx` and `react-jsxdev` outputs +namespace JSX {} +>JSX : Symbol(JSX, Decl(commentsOnJSXExpressionsArePreserved.tsx, 0, 0)) + +class Component { +>Component : Symbol(Component, Decl(commentsOnJSXExpressionsArePreserved.tsx, 1, 16)) + + render() { +>render : Symbol(Component.render, Decl(commentsOnJSXExpressionsArePreserved.tsx, 2, 17)) + + return
+ {/* missing */} + {null/* preserved */} + { + // ??? 1 + } + { // ??? 2 + } + {// ??? 3 + } + { + // ??? 4 + /* ??? 5 */} +
; + } +} diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=commonjs).types b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react,module=commonjs,moduledetection=legacy).types similarity index 100% rename from tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=commonjs).types rename to tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react,module=commonjs,moduledetection=legacy).types diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react,module=system,moduledetection=auto).errors.txt b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react,module=system,moduledetection=auto).errors.txt new file mode 100644 index 0000000000000..388601f8ae848 --- /dev/null +++ b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react,module=system,moduledetection=auto).errors.txt @@ -0,0 +1,26 @@ +tests/cases/compiler/commentsOnJSXExpressionsArePreserved.tsx(5,17): error TS2304: Cannot find name 'React'. + + +==== tests/cases/compiler/commentsOnJSXExpressionsArePreserved.tsx (1 errors) ==== + // file is intentionally not a module - this tests for a crash in the module/system transforms alongside the `react-jsx` and `react-jsxdev` outputs + namespace JSX {} + class Component { + render() { + return
+ ~~~ +!!! error TS2304: Cannot find name 'React'. + {/* missing */} + {null/* preserved */} + { + // ??? 1 + } + { // ??? 2 + } + {// ??? 3 + } + { + // ??? 4 + /* ??? 5 */} +
; + } + } \ No newline at end of file diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=system).js b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react,module=system,moduledetection=auto).js similarity index 89% rename from tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=system).js rename to tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react,module=system,moduledetection=auto).js index c8b14c6198d70..5cc6523cd071d 100644 --- a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=system).js +++ b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react,module=system,moduledetection=auto).js @@ -25,7 +25,7 @@ var Component = /** @class */ (function () { function Component() { } Component.prototype.render = function () { - return _jsx("div", { children: null /* preserved */ }, void 0); + return React.createElement("div", null, null /* preserved */); }; return Component; }()); diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react,module=system,moduledetection=auto).symbols b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react,module=system,moduledetection=auto).symbols new file mode 100644 index 0000000000000..95b7eeda0623f --- /dev/null +++ b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react,module=system,moduledetection=auto).symbols @@ -0,0 +1,27 @@ +=== tests/cases/compiler/commentsOnJSXExpressionsArePreserved.tsx === +// file is intentionally not a module - this tests for a crash in the module/system transforms alongside the `react-jsx` and `react-jsxdev` outputs +namespace JSX {} +>JSX : Symbol(JSX, Decl(commentsOnJSXExpressionsArePreserved.tsx, 0, 0)) + +class Component { +>Component : Symbol(Component, Decl(commentsOnJSXExpressionsArePreserved.tsx, 1, 16)) + + render() { +>render : Symbol(Component.render, Decl(commentsOnJSXExpressionsArePreserved.tsx, 2, 17)) + + return
+ {/* missing */} + {null/* preserved */} + { + // ??? 1 + } + { // ??? 2 + } + {// ??? 3 + } + { + // ??? 4 + /* ??? 5 */} +
; + } +} diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=system).types b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react,module=system,moduledetection=auto).types similarity index 100% rename from tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=system).types rename to tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react,module=system,moduledetection=auto).types diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react,module=system,moduledetection=force).errors.txt b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react,module=system,moduledetection=force).errors.txt new file mode 100644 index 0000000000000..388601f8ae848 --- /dev/null +++ b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react,module=system,moduledetection=force).errors.txt @@ -0,0 +1,26 @@ +tests/cases/compiler/commentsOnJSXExpressionsArePreserved.tsx(5,17): error TS2304: Cannot find name 'React'. + + +==== tests/cases/compiler/commentsOnJSXExpressionsArePreserved.tsx (1 errors) ==== + // file is intentionally not a module - this tests for a crash in the module/system transforms alongside the `react-jsx` and `react-jsxdev` outputs + namespace JSX {} + class Component { + render() { + return
+ ~~~ +!!! error TS2304: Cannot find name 'React'. + {/* missing */} + {null/* preserved */} + { + // ??? 1 + } + { // ??? 2 + } + {// ??? 3 + } + { + // ??? 4 + /* ??? 5 */} +
; + } + } \ No newline at end of file diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react,module=system,moduledetection=force).js b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react,module=system,moduledetection=force).js new file mode 100644 index 0000000000000..ca668d2af987f --- /dev/null +++ b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react,module=system,moduledetection=force).js @@ -0,0 +1,41 @@ +//// [commentsOnJSXExpressionsArePreserved.tsx] +// file is intentionally not a module - this tests for a crash in the module/system transforms alongside the `react-jsx` and `react-jsxdev` outputs +namespace JSX {} +class Component { + render() { + return
+ {/* missing */} + {null/* preserved */} + { + // ??? 1 + } + { // ??? 2 + } + {// ??? 3 + } + { + // ??? 4 + /* ??? 5 */} +
; + } +} + +//// [commentsOnJSXExpressionsArePreserved.js] +System.register([], function (exports_1, context_1) { + "use strict"; + var Component; + var __moduleName = context_1 && context_1.id; + return { + setters: [], + execute: function () { + Component = /** @class */ (function () { + function Component() { + } + Component.prototype.render = function () { + return React.createElement("div", null, null /* preserved */); + }; + return Component; + }()); + } + }; +}); diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react,module=system,moduledetection=force).symbols b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react,module=system,moduledetection=force).symbols new file mode 100644 index 0000000000000..95b7eeda0623f --- /dev/null +++ b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react,module=system,moduledetection=force).symbols @@ -0,0 +1,27 @@ +=== tests/cases/compiler/commentsOnJSXExpressionsArePreserved.tsx === +// file is intentionally not a module - this tests for a crash in the module/system transforms alongside the `react-jsx` and `react-jsxdev` outputs +namespace JSX {} +>JSX : Symbol(JSX, Decl(commentsOnJSXExpressionsArePreserved.tsx, 0, 0)) + +class Component { +>Component : Symbol(Component, Decl(commentsOnJSXExpressionsArePreserved.tsx, 1, 16)) + + render() { +>render : Symbol(Component.render, Decl(commentsOnJSXExpressionsArePreserved.tsx, 2, 17)) + + return
+ {/* missing */} + {null/* preserved */} + { + // ??? 1 + } + { // ??? 2 + } + {// ??? 3 + } + { + // ??? 4 + /* ??? 5 */} +
; + } +} diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=commonjs).types b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react,module=system,moduledetection=force).types similarity index 100% rename from tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=commonjs).types rename to tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react,module=system,moduledetection=force).types diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react,module=system,moduledetection=legacy).errors.txt b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react,module=system,moduledetection=legacy).errors.txt new file mode 100644 index 0000000000000..388601f8ae848 --- /dev/null +++ b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react,module=system,moduledetection=legacy).errors.txt @@ -0,0 +1,26 @@ +tests/cases/compiler/commentsOnJSXExpressionsArePreserved.tsx(5,17): error TS2304: Cannot find name 'React'. + + +==== tests/cases/compiler/commentsOnJSXExpressionsArePreserved.tsx (1 errors) ==== + // file is intentionally not a module - this tests for a crash in the module/system transforms alongside the `react-jsx` and `react-jsxdev` outputs + namespace JSX {} + class Component { + render() { + return
+ ~~~ +!!! error TS2304: Cannot find name 'React'. + {/* missing */} + {null/* preserved */} + { + // ??? 1 + } + { // ??? 2 + } + {// ??? 3 + } + { + // ??? 4 + /* ??? 5 */} +
; + } + } \ No newline at end of file diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react,module=system,moduledetection=legacy).js b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react,module=system,moduledetection=legacy).js new file mode 100644 index 0000000000000..5cc6523cd071d --- /dev/null +++ b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react,module=system,moduledetection=legacy).js @@ -0,0 +1,31 @@ +//// [commentsOnJSXExpressionsArePreserved.tsx] +// file is intentionally not a module - this tests for a crash in the module/system transforms alongside the `react-jsx` and `react-jsxdev` outputs +namespace JSX {} +class Component { + render() { + return
+ {/* missing */} + {null/* preserved */} + { + // ??? 1 + } + { // ??? 2 + } + {// ??? 3 + } + { + // ??? 4 + /* ??? 5 */} +
; + } +} + +//// [commentsOnJSXExpressionsArePreserved.js] +var Component = /** @class */ (function () { + function Component() { + } + Component.prototype.render = function () { + return React.createElement("div", null, null /* preserved */); + }; + return Component; +}()); diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react,module=system,moduledetection=legacy).symbols b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react,module=system,moduledetection=legacy).symbols new file mode 100644 index 0000000000000..95b7eeda0623f --- /dev/null +++ b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react,module=system,moduledetection=legacy).symbols @@ -0,0 +1,27 @@ +=== tests/cases/compiler/commentsOnJSXExpressionsArePreserved.tsx === +// file is intentionally not a module - this tests for a crash in the module/system transforms alongside the `react-jsx` and `react-jsxdev` outputs +namespace JSX {} +>JSX : Symbol(JSX, Decl(commentsOnJSXExpressionsArePreserved.tsx, 0, 0)) + +class Component { +>Component : Symbol(Component, Decl(commentsOnJSXExpressionsArePreserved.tsx, 1, 16)) + + render() { +>render : Symbol(Component.render, Decl(commentsOnJSXExpressionsArePreserved.tsx, 2, 17)) + + return
+ {/* missing */} + {null/* preserved */} + { + // ??? 1 + } + { // ??? 2 + } + {// ??? 3 + } + { + // ??? 4 + /* ??? 5 */} +
; + } +} diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=system).types b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react,module=system,moduledetection=legacy).types similarity index 100% rename from tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=system).types rename to tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react,module=system,moduledetection=legacy).types diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=commonjs).errors.txt b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=commonjs,moduledetection=auto).errors.txt similarity index 100% rename from tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=commonjs).errors.txt rename to tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=commonjs,moduledetection=auto).errors.txt diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=commonjs,moduledetection=auto).js b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=commonjs,moduledetection=auto).js new file mode 100644 index 0000000000000..f7712f000b8e4 --- /dev/null +++ b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=commonjs,moduledetection=auto).js @@ -0,0 +1,34 @@ +//// [commentsOnJSXExpressionsArePreserved.tsx] +// file is intentionally not a module - this tests for a crash in the module/system transforms alongside the `react-jsx` and `react-jsxdev` outputs +namespace JSX {} +class Component { + render() { + return
+ {/* missing */} + {null/* preserved */} + { + // ??? 1 + } + { // ??? 2 + } + {// ??? 3 + } + { + // ??? 4 + /* ??? 5 */} +
; + } +} + +//// [commentsOnJSXExpressionsArePreserved.js] +"use strict"; +exports.__esModule = true; +var jsx_runtime_1 = require("react/jsx-runtime"); +var Component = /** @class */ (function () { + function Component() { + } + Component.prototype.render = function () { + return (0, jsx_runtime_1.jsx)("div", { children: null /* preserved */ }); + }; + return Component; +}()); diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=commonjs,moduledetection=auto).symbols b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=commonjs,moduledetection=auto).symbols new file mode 100644 index 0000000000000..95b7eeda0623f --- /dev/null +++ b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=commonjs,moduledetection=auto).symbols @@ -0,0 +1,27 @@ +=== tests/cases/compiler/commentsOnJSXExpressionsArePreserved.tsx === +// file is intentionally not a module - this tests for a crash in the module/system transforms alongside the `react-jsx` and `react-jsxdev` outputs +namespace JSX {} +>JSX : Symbol(JSX, Decl(commentsOnJSXExpressionsArePreserved.tsx, 0, 0)) + +class Component { +>Component : Symbol(Component, Decl(commentsOnJSXExpressionsArePreserved.tsx, 1, 16)) + + render() { +>render : Symbol(Component.render, Decl(commentsOnJSXExpressionsArePreserved.tsx, 2, 17)) + + return
+ {/* missing */} + {null/* preserved */} + { + // ??? 1 + } + { // ??? 2 + } + {// ??? 3 + } + { + // ??? 4 + /* ??? 5 */} +
; + } +} diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=commonjs,moduledetection=auto).types b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=commonjs,moduledetection=auto).types new file mode 100644 index 0000000000000..5acb76daa70c1 --- /dev/null +++ b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=commonjs,moduledetection=auto).types @@ -0,0 +1,30 @@ +=== tests/cases/compiler/commentsOnJSXExpressionsArePreserved.tsx === +// file is intentionally not a module - this tests for a crash in the module/system transforms alongside the `react-jsx` and `react-jsxdev` outputs +namespace JSX {} +class Component { +>Component : Component + + render() { +>render : () => any + + return
+>
{/* missing */} {null/* preserved */} { // ??? 1 } { // ??? 2 } {// ??? 3 } { // ??? 4 /* ??? 5 */}
: any +>div : any + + {/* missing */} + {null/* preserved */} +>null : null + { + // ??? 1 + } + { // ??? 2 + } + {// ??? 3 + } + { + // ??? 4 + /* ??? 5 */} +
; +>div : any + } +} diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=commonjs,moduledetection=force).errors.txt b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=commonjs,moduledetection=force).errors.txt new file mode 100644 index 0000000000000..0f9a371c783da --- /dev/null +++ b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=commonjs,moduledetection=force).errors.txt @@ -0,0 +1,39 @@ +tests/cases/compiler/commentsOnJSXExpressionsArePreserved.tsx(5,16): error TS2307: Cannot find module 'react/jsx-runtime' or its corresponding type declarations. + + +==== tests/cases/compiler/commentsOnJSXExpressionsArePreserved.tsx (1 errors) ==== + // file is intentionally not a module - this tests for a crash in the module/system transforms alongside the `react-jsx` and `react-jsxdev` outputs + namespace JSX {} + class Component { + render() { + return
+ ~~~~~ + {/* missing */} + ~~~~~~~~~~~~~~~~~~~~~~~~~~~ + {null/* preserved */} + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + { + ~~~~~~~~~~~~~ + // ??? 1 + ~~~~~~~~~~~~~~~~~~~~~~~~ + } + ~~~~~~~~~~~~~ + { // ??? 2 + ~~~~~~~~~~~~~~~~~~~~~~ + } + ~~~~~~~~~~~~~ + {// ??? 3 + ~~~~~~~~~~~~~~~~~~~~~ + } + ~~~~~~~~~~~~~ + { + ~~~~~~~~~~~~~ + // ??? 4 + ~~~~~~~~~~~~~~~~~~~~~~~~ + /* ??? 5 */} + ~~~~~~~~~~~~~~~~~~~~~~~~ +
; + ~~~~~~~~~~~~~~ +!!! error TS2307: Cannot find module 'react/jsx-runtime' or its corresponding type declarations. + } + } \ No newline at end of file diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=commonjs,moduledetection=force).js b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=commonjs,moduledetection=force).js new file mode 100644 index 0000000000000..f7712f000b8e4 --- /dev/null +++ b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=commonjs,moduledetection=force).js @@ -0,0 +1,34 @@ +//// [commentsOnJSXExpressionsArePreserved.tsx] +// file is intentionally not a module - this tests for a crash in the module/system transforms alongside the `react-jsx` and `react-jsxdev` outputs +namespace JSX {} +class Component { + render() { + return
+ {/* missing */} + {null/* preserved */} + { + // ??? 1 + } + { // ??? 2 + } + {// ??? 3 + } + { + // ??? 4 + /* ??? 5 */} +
; + } +} + +//// [commentsOnJSXExpressionsArePreserved.js] +"use strict"; +exports.__esModule = true; +var jsx_runtime_1 = require("react/jsx-runtime"); +var Component = /** @class */ (function () { + function Component() { + } + Component.prototype.render = function () { + return (0, jsx_runtime_1.jsx)("div", { children: null /* preserved */ }); + }; + return Component; +}()); diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=commonjs,moduledetection=force).symbols b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=commonjs,moduledetection=force).symbols new file mode 100644 index 0000000000000..95b7eeda0623f --- /dev/null +++ b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=commonjs,moduledetection=force).symbols @@ -0,0 +1,27 @@ +=== tests/cases/compiler/commentsOnJSXExpressionsArePreserved.tsx === +// file is intentionally not a module - this tests for a crash in the module/system transforms alongside the `react-jsx` and `react-jsxdev` outputs +namespace JSX {} +>JSX : Symbol(JSX, Decl(commentsOnJSXExpressionsArePreserved.tsx, 0, 0)) + +class Component { +>Component : Symbol(Component, Decl(commentsOnJSXExpressionsArePreserved.tsx, 1, 16)) + + render() { +>render : Symbol(Component.render, Decl(commentsOnJSXExpressionsArePreserved.tsx, 2, 17)) + + return
+ {/* missing */} + {null/* preserved */} + { + // ??? 1 + } + { // ??? 2 + } + {// ??? 3 + } + { + // ??? 4 + /* ??? 5 */} +
; + } +} diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=commonjs,moduledetection=force).types b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=commonjs,moduledetection=force).types new file mode 100644 index 0000000000000..5acb76daa70c1 --- /dev/null +++ b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=commonjs,moduledetection=force).types @@ -0,0 +1,30 @@ +=== tests/cases/compiler/commentsOnJSXExpressionsArePreserved.tsx === +// file is intentionally not a module - this tests for a crash in the module/system transforms alongside the `react-jsx` and `react-jsxdev` outputs +namespace JSX {} +class Component { +>Component : Component + + render() { +>render : () => any + + return
+>
{/* missing */} {null/* preserved */} { // ??? 1 } { // ??? 2 } {// ??? 3 } { // ??? 4 /* ??? 5 */}
: any +>div : any + + {/* missing */} + {null/* preserved */} +>null : null + { + // ??? 1 + } + { // ??? 2 + } + {// ??? 3 + } + { + // ??? 4 + /* ??? 5 */} +
; +>div : any + } +} diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=commonjs,moduledetection=legacy).errors.txt b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=commonjs,moduledetection=legacy).errors.txt new file mode 100644 index 0000000000000..0f9a371c783da --- /dev/null +++ b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=commonjs,moduledetection=legacy).errors.txt @@ -0,0 +1,39 @@ +tests/cases/compiler/commentsOnJSXExpressionsArePreserved.tsx(5,16): error TS2307: Cannot find module 'react/jsx-runtime' or its corresponding type declarations. + + +==== tests/cases/compiler/commentsOnJSXExpressionsArePreserved.tsx (1 errors) ==== + // file is intentionally not a module - this tests for a crash in the module/system transforms alongside the `react-jsx` and `react-jsxdev` outputs + namespace JSX {} + class Component { + render() { + return
+ ~~~~~ + {/* missing */} + ~~~~~~~~~~~~~~~~~~~~~~~~~~~ + {null/* preserved */} + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + { + ~~~~~~~~~~~~~ + // ??? 1 + ~~~~~~~~~~~~~~~~~~~~~~~~ + } + ~~~~~~~~~~~~~ + { // ??? 2 + ~~~~~~~~~~~~~~~~~~~~~~ + } + ~~~~~~~~~~~~~ + {// ??? 3 + ~~~~~~~~~~~~~~~~~~~~~ + } + ~~~~~~~~~~~~~ + { + ~~~~~~~~~~~~~ + // ??? 4 + ~~~~~~~~~~~~~~~~~~~~~~~~ + /* ??? 5 */} + ~~~~~~~~~~~~~~~~~~~~~~~~ +
; + ~~~~~~~~~~~~~~ +!!! error TS2307: Cannot find module 'react/jsx-runtime' or its corresponding type declarations. + } + } \ No newline at end of file diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=commonjs).js b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=commonjs,moduledetection=legacy).js similarity index 96% rename from tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=commonjs).js rename to tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=commonjs,moduledetection=legacy).js index eee8eb6aff00a..5ed8e680add05 100644 --- a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=commonjs).js +++ b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=commonjs,moduledetection=legacy).js @@ -25,7 +25,7 @@ var Component = /** @class */ (function () { function Component() { } Component.prototype.render = function () { - return (0, _a.jsx)("div", { children: null /* preserved */ }, void 0); + return (0, _a.jsx)("div", { children: null /* preserved */ }); }; return Component; }()); diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=commonjs,moduledetection=legacy).symbols b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=commonjs,moduledetection=legacy).symbols new file mode 100644 index 0000000000000..95b7eeda0623f --- /dev/null +++ b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=commonjs,moduledetection=legacy).symbols @@ -0,0 +1,27 @@ +=== tests/cases/compiler/commentsOnJSXExpressionsArePreserved.tsx === +// file is intentionally not a module - this tests for a crash in the module/system transforms alongside the `react-jsx` and `react-jsxdev` outputs +namespace JSX {} +>JSX : Symbol(JSX, Decl(commentsOnJSXExpressionsArePreserved.tsx, 0, 0)) + +class Component { +>Component : Symbol(Component, Decl(commentsOnJSXExpressionsArePreserved.tsx, 1, 16)) + + render() { +>render : Symbol(Component.render, Decl(commentsOnJSXExpressionsArePreserved.tsx, 2, 17)) + + return
+ {/* missing */} + {null/* preserved */} + { + // ??? 1 + } + { // ??? 2 + } + {// ??? 3 + } + { + // ??? 4 + /* ??? 5 */} +
; + } +} diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=commonjs,moduledetection=legacy).types b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=commonjs,moduledetection=legacy).types new file mode 100644 index 0000000000000..5acb76daa70c1 --- /dev/null +++ b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=commonjs,moduledetection=legacy).types @@ -0,0 +1,30 @@ +=== tests/cases/compiler/commentsOnJSXExpressionsArePreserved.tsx === +// file is intentionally not a module - this tests for a crash in the module/system transforms alongside the `react-jsx` and `react-jsxdev` outputs +namespace JSX {} +class Component { +>Component : Component + + render() { +>render : () => any + + return
+>
{/* missing */} {null/* preserved */} { // ??? 1 } { // ??? 2 } {// ??? 3 } { // ??? 4 /* ??? 5 */}
: any +>div : any + + {/* missing */} + {null/* preserved */} +>null : null + { + // ??? 1 + } + { // ??? 2 + } + {// ??? 3 + } + { + // ??? 4 + /* ??? 5 */} +
; +>div : any + } +} diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=system).errors.txt b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=system,moduledetection=auto).errors.txt similarity index 100% rename from tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=system).errors.txt rename to tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=system,moduledetection=auto).errors.txt diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=system,moduledetection=auto).js b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=system,moduledetection=auto).js new file mode 100644 index 0000000000000..223fb4a66ba4e --- /dev/null +++ b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=system,moduledetection=auto).js @@ -0,0 +1,45 @@ +//// [commentsOnJSXExpressionsArePreserved.tsx] +// file is intentionally not a module - this tests for a crash in the module/system transforms alongside the `react-jsx` and `react-jsxdev` outputs +namespace JSX {} +class Component { + render() { + return
+ {/* missing */} + {null/* preserved */} + { + // ??? 1 + } + { // ??? 2 + } + {// ??? 3 + } + { + // ??? 4 + /* ??? 5 */} +
; + } +} + +//// [commentsOnJSXExpressionsArePreserved.js] +System.register(["react/jsx-runtime"], function (exports_1, context_1) { + "use strict"; + var jsx_runtime_1, Component; + var __moduleName = context_1 && context_1.id; + return { + setters: [ + function (jsx_runtime_1_1) { + jsx_runtime_1 = jsx_runtime_1_1; + } + ], + execute: function () { + Component = /** @class */ (function () { + function Component() { + } + Component.prototype.render = function () { + return _jsx("div", { children: null /* preserved */ }); + }; + return Component; + }()); + } + }; +}); diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=system,moduledetection=auto).symbols b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=system,moduledetection=auto).symbols new file mode 100644 index 0000000000000..95b7eeda0623f --- /dev/null +++ b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=system,moduledetection=auto).symbols @@ -0,0 +1,27 @@ +=== tests/cases/compiler/commentsOnJSXExpressionsArePreserved.tsx === +// file is intentionally not a module - this tests for a crash in the module/system transforms alongside the `react-jsx` and `react-jsxdev` outputs +namespace JSX {} +>JSX : Symbol(JSX, Decl(commentsOnJSXExpressionsArePreserved.tsx, 0, 0)) + +class Component { +>Component : Symbol(Component, Decl(commentsOnJSXExpressionsArePreserved.tsx, 1, 16)) + + render() { +>render : Symbol(Component.render, Decl(commentsOnJSXExpressionsArePreserved.tsx, 2, 17)) + + return
+ {/* missing */} + {null/* preserved */} + { + // ??? 1 + } + { // ??? 2 + } + {// ??? 3 + } + { + // ??? 4 + /* ??? 5 */} +
; + } +} diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=system,moduledetection=auto).types b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=system,moduledetection=auto).types new file mode 100644 index 0000000000000..5acb76daa70c1 --- /dev/null +++ b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=system,moduledetection=auto).types @@ -0,0 +1,30 @@ +=== tests/cases/compiler/commentsOnJSXExpressionsArePreserved.tsx === +// file is intentionally not a module - this tests for a crash in the module/system transforms alongside the `react-jsx` and `react-jsxdev` outputs +namespace JSX {} +class Component { +>Component : Component + + render() { +>render : () => any + + return
+>
{/* missing */} {null/* preserved */} { // ??? 1 } { // ??? 2 } {// ??? 3 } { // ??? 4 /* ??? 5 */}
: any +>div : any + + {/* missing */} + {null/* preserved */} +>null : null + { + // ??? 1 + } + { // ??? 2 + } + {// ??? 3 + } + { + // ??? 4 + /* ??? 5 */} +
; +>div : any + } +} diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=system,moduledetection=force).errors.txt b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=system,moduledetection=force).errors.txt new file mode 100644 index 0000000000000..610a0fa29c506 --- /dev/null +++ b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=system,moduledetection=force).errors.txt @@ -0,0 +1,39 @@ +tests/cases/compiler/commentsOnJSXExpressionsArePreserved.tsx(5,16): error TS2792: Cannot find module 'react/jsx-runtime'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? + + +==== tests/cases/compiler/commentsOnJSXExpressionsArePreserved.tsx (1 errors) ==== + // file is intentionally not a module - this tests for a crash in the module/system transforms alongside the `react-jsx` and `react-jsxdev` outputs + namespace JSX {} + class Component { + render() { + return
+ ~~~~~ + {/* missing */} + ~~~~~~~~~~~~~~~~~~~~~~~~~~~ + {null/* preserved */} + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + { + ~~~~~~~~~~~~~ + // ??? 1 + ~~~~~~~~~~~~~~~~~~~~~~~~ + } + ~~~~~~~~~~~~~ + { // ??? 2 + ~~~~~~~~~~~~~~~~~~~~~~ + } + ~~~~~~~~~~~~~ + {// ??? 3 + ~~~~~~~~~~~~~~~~~~~~~ + } + ~~~~~~~~~~~~~ + { + ~~~~~~~~~~~~~ + // ??? 4 + ~~~~~~~~~~~~~~~~~~~~~~~~ + /* ??? 5 */} + ~~~~~~~~~~~~~~~~~~~~~~~~ +
; + ~~~~~~~~~~~~~~ +!!! error TS2792: Cannot find module 'react/jsx-runtime'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? + } + } \ No newline at end of file diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=system,moduledetection=force).js b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=system,moduledetection=force).js new file mode 100644 index 0000000000000..223fb4a66ba4e --- /dev/null +++ b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=system,moduledetection=force).js @@ -0,0 +1,45 @@ +//// [commentsOnJSXExpressionsArePreserved.tsx] +// file is intentionally not a module - this tests for a crash in the module/system transforms alongside the `react-jsx` and `react-jsxdev` outputs +namespace JSX {} +class Component { + render() { + return
+ {/* missing */} + {null/* preserved */} + { + // ??? 1 + } + { // ??? 2 + } + {// ??? 3 + } + { + // ??? 4 + /* ??? 5 */} +
; + } +} + +//// [commentsOnJSXExpressionsArePreserved.js] +System.register(["react/jsx-runtime"], function (exports_1, context_1) { + "use strict"; + var jsx_runtime_1, Component; + var __moduleName = context_1 && context_1.id; + return { + setters: [ + function (jsx_runtime_1_1) { + jsx_runtime_1 = jsx_runtime_1_1; + } + ], + execute: function () { + Component = /** @class */ (function () { + function Component() { + } + Component.prototype.render = function () { + return _jsx("div", { children: null /* preserved */ }); + }; + return Component; + }()); + } + }; +}); diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=system,moduledetection=force).symbols b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=system,moduledetection=force).symbols new file mode 100644 index 0000000000000..95b7eeda0623f --- /dev/null +++ b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=system,moduledetection=force).symbols @@ -0,0 +1,27 @@ +=== tests/cases/compiler/commentsOnJSXExpressionsArePreserved.tsx === +// file is intentionally not a module - this tests for a crash in the module/system transforms alongside the `react-jsx` and `react-jsxdev` outputs +namespace JSX {} +>JSX : Symbol(JSX, Decl(commentsOnJSXExpressionsArePreserved.tsx, 0, 0)) + +class Component { +>Component : Symbol(Component, Decl(commentsOnJSXExpressionsArePreserved.tsx, 1, 16)) + + render() { +>render : Symbol(Component.render, Decl(commentsOnJSXExpressionsArePreserved.tsx, 2, 17)) + + return
+ {/* missing */} + {null/* preserved */} + { + // ??? 1 + } + { // ??? 2 + } + {// ??? 3 + } + { + // ??? 4 + /* ??? 5 */} +
; + } +} diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=system,moduledetection=force).types b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=system,moduledetection=force).types new file mode 100644 index 0000000000000..5acb76daa70c1 --- /dev/null +++ b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=system,moduledetection=force).types @@ -0,0 +1,30 @@ +=== tests/cases/compiler/commentsOnJSXExpressionsArePreserved.tsx === +// file is intentionally not a module - this tests for a crash in the module/system transforms alongside the `react-jsx` and `react-jsxdev` outputs +namespace JSX {} +class Component { +>Component : Component + + render() { +>render : () => any + + return
+>
{/* missing */} {null/* preserved */} { // ??? 1 } { // ??? 2 } {// ??? 3 } { // ??? 4 /* ??? 5 */}
: any +>div : any + + {/* missing */} + {null/* preserved */} +>null : null + { + // ??? 1 + } + { // ??? 2 + } + {// ??? 3 + } + { + // ??? 4 + /* ??? 5 */} +
; +>div : any + } +} diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=system,moduledetection=legacy).errors.txt b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=system,moduledetection=legacy).errors.txt new file mode 100644 index 0000000000000..610a0fa29c506 --- /dev/null +++ b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=system,moduledetection=legacy).errors.txt @@ -0,0 +1,39 @@ +tests/cases/compiler/commentsOnJSXExpressionsArePreserved.tsx(5,16): error TS2792: Cannot find module 'react/jsx-runtime'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? + + +==== tests/cases/compiler/commentsOnJSXExpressionsArePreserved.tsx (1 errors) ==== + // file is intentionally not a module - this tests for a crash in the module/system transforms alongside the `react-jsx` and `react-jsxdev` outputs + namespace JSX {} + class Component { + render() { + return
+ ~~~~~ + {/* missing */} + ~~~~~~~~~~~~~~~~~~~~~~~~~~~ + {null/* preserved */} + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + { + ~~~~~~~~~~~~~ + // ??? 1 + ~~~~~~~~~~~~~~~~~~~~~~~~ + } + ~~~~~~~~~~~~~ + { // ??? 2 + ~~~~~~~~~~~~~~~~~~~~~~ + } + ~~~~~~~~~~~~~ + {// ??? 3 + ~~~~~~~~~~~~~~~~~~~~~ + } + ~~~~~~~~~~~~~ + { + ~~~~~~~~~~~~~ + // ??? 4 + ~~~~~~~~~~~~~~~~~~~~~~~~ + /* ??? 5 */} + ~~~~~~~~~~~~~~~~~~~~~~~~ +
; + ~~~~~~~~~~~~~~ +!!! error TS2792: Cannot find module 'react/jsx-runtime'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? + } + } \ No newline at end of file diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=system,moduledetection=legacy).js b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=system,moduledetection=legacy).js new file mode 100644 index 0000000000000..7dfb4487e41d5 --- /dev/null +++ b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=system,moduledetection=legacy).js @@ -0,0 +1,31 @@ +//// [commentsOnJSXExpressionsArePreserved.tsx] +// file is intentionally not a module - this tests for a crash in the module/system transforms alongside the `react-jsx` and `react-jsxdev` outputs +namespace JSX {} +class Component { + render() { + return
+ {/* missing */} + {null/* preserved */} + { + // ??? 1 + } + { // ??? 2 + } + {// ??? 3 + } + { + // ??? 4 + /* ??? 5 */} +
; + } +} + +//// [commentsOnJSXExpressionsArePreserved.js] +var Component = /** @class */ (function () { + function Component() { + } + Component.prototype.render = function () { + return _jsx("div", { children: null /* preserved */ }); + }; + return Component; +}()); diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=system,moduledetection=legacy).symbols b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=system,moduledetection=legacy).symbols new file mode 100644 index 0000000000000..95b7eeda0623f --- /dev/null +++ b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=system,moduledetection=legacy).symbols @@ -0,0 +1,27 @@ +=== tests/cases/compiler/commentsOnJSXExpressionsArePreserved.tsx === +// file is intentionally not a module - this tests for a crash in the module/system transforms alongside the `react-jsx` and `react-jsxdev` outputs +namespace JSX {} +>JSX : Symbol(JSX, Decl(commentsOnJSXExpressionsArePreserved.tsx, 0, 0)) + +class Component { +>Component : Symbol(Component, Decl(commentsOnJSXExpressionsArePreserved.tsx, 1, 16)) + + render() { +>render : Symbol(Component.render, Decl(commentsOnJSXExpressionsArePreserved.tsx, 2, 17)) + + return
+ {/* missing */} + {null/* preserved */} + { + // ??? 1 + } + { // ??? 2 + } + {// ??? 3 + } + { + // ??? 4 + /* ??? 5 */} +
; + } +} diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=system,moduledetection=legacy).types b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=system,moduledetection=legacy).types new file mode 100644 index 0000000000000..5acb76daa70c1 --- /dev/null +++ b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsx,module=system,moduledetection=legacy).types @@ -0,0 +1,30 @@ +=== tests/cases/compiler/commentsOnJSXExpressionsArePreserved.tsx === +// file is intentionally not a module - this tests for a crash in the module/system transforms alongside the `react-jsx` and `react-jsxdev` outputs +namespace JSX {} +class Component { +>Component : Component + + render() { +>render : () => any + + return
+>
{/* missing */} {null/* preserved */} { // ??? 1 } { // ??? 2 } {// ??? 3 } { // ??? 4 /* ??? 5 */}
: any +>div : any + + {/* missing */} + {null/* preserved */} +>null : null + { + // ??? 1 + } + { // ??? 2 + } + {// ??? 3 + } + { + // ??? 4 + /* ??? 5 */} +
; +>div : any + } +} diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=commonjs).errors.txt b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=commonjs,moduledetection=auto).errors.txt similarity index 100% rename from tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=commonjs).errors.txt rename to tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=commonjs,moduledetection=auto).errors.txt diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=commonjs,moduledetection=auto).js b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=commonjs,moduledetection=auto).js new file mode 100644 index 0000000000000..810347d948d57 --- /dev/null +++ b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=commonjs,moduledetection=auto).js @@ -0,0 +1,35 @@ +//// [commentsOnJSXExpressionsArePreserved.tsx] +// file is intentionally not a module - this tests for a crash in the module/system transforms alongside the `react-jsx` and `react-jsxdev` outputs +namespace JSX {} +class Component { + render() { + return
+ {/* missing */} + {null/* preserved */} + { + // ??? 1 + } + { // ??? 2 + } + {// ??? 3 + } + { + // ??? 4 + /* ??? 5 */} +
; + } +} + +//// [commentsOnJSXExpressionsArePreserved.js] +"use strict"; +exports.__esModule = true; +var jsx_dev_runtime_1 = require("react/jsx-dev-runtime"); +var _jsxFileName = "tests/cases/compiler/commentsOnJSXExpressionsArePreserved.tsx"; +var Component = /** @class */ (function () { + function Component() { + } + Component.prototype.render = function () { + return (0, jsx_dev_runtime_1.jsxDEV)("div", { children: null /* preserved */ }, void 0, false, { fileName: _jsxFileName, lineNumber: 5, columnNumber: 15 }, this); + }; + return Component; +}()); diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=commonjs,moduledetection=auto).symbols b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=commonjs,moduledetection=auto).symbols new file mode 100644 index 0000000000000..95b7eeda0623f --- /dev/null +++ b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=commonjs,moduledetection=auto).symbols @@ -0,0 +1,27 @@ +=== tests/cases/compiler/commentsOnJSXExpressionsArePreserved.tsx === +// file is intentionally not a module - this tests for a crash in the module/system transforms alongside the `react-jsx` and `react-jsxdev` outputs +namespace JSX {} +>JSX : Symbol(JSX, Decl(commentsOnJSXExpressionsArePreserved.tsx, 0, 0)) + +class Component { +>Component : Symbol(Component, Decl(commentsOnJSXExpressionsArePreserved.tsx, 1, 16)) + + render() { +>render : Symbol(Component.render, Decl(commentsOnJSXExpressionsArePreserved.tsx, 2, 17)) + + return
+ {/* missing */} + {null/* preserved */} + { + // ??? 1 + } + { // ??? 2 + } + {// ??? 3 + } + { + // ??? 4 + /* ??? 5 */} +
; + } +} diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=commonjs,moduledetection=auto).types b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=commonjs,moduledetection=auto).types new file mode 100644 index 0000000000000..5acb76daa70c1 --- /dev/null +++ b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=commonjs,moduledetection=auto).types @@ -0,0 +1,30 @@ +=== tests/cases/compiler/commentsOnJSXExpressionsArePreserved.tsx === +// file is intentionally not a module - this tests for a crash in the module/system transforms alongside the `react-jsx` and `react-jsxdev` outputs +namespace JSX {} +class Component { +>Component : Component + + render() { +>render : () => any + + return
+>
{/* missing */} {null/* preserved */} { // ??? 1 } { // ??? 2 } {// ??? 3 } { // ??? 4 /* ??? 5 */}
: any +>div : any + + {/* missing */} + {null/* preserved */} +>null : null + { + // ??? 1 + } + { // ??? 2 + } + {// ??? 3 + } + { + // ??? 4 + /* ??? 5 */} +
; +>div : any + } +} diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=commonjs,moduledetection=force).errors.txt b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=commonjs,moduledetection=force).errors.txt new file mode 100644 index 0000000000000..7ecc135630b91 --- /dev/null +++ b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=commonjs,moduledetection=force).errors.txt @@ -0,0 +1,39 @@ +tests/cases/compiler/commentsOnJSXExpressionsArePreserved.tsx(5,16): error TS2307: Cannot find module 'react/jsx-dev-runtime' or its corresponding type declarations. + + +==== tests/cases/compiler/commentsOnJSXExpressionsArePreserved.tsx (1 errors) ==== + // file is intentionally not a module - this tests for a crash in the module/system transforms alongside the `react-jsx` and `react-jsxdev` outputs + namespace JSX {} + class Component { + render() { + return
+ ~~~~~ + {/* missing */} + ~~~~~~~~~~~~~~~~~~~~~~~~~~~ + {null/* preserved */} + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + { + ~~~~~~~~~~~~~ + // ??? 1 + ~~~~~~~~~~~~~~~~~~~~~~~~ + } + ~~~~~~~~~~~~~ + { // ??? 2 + ~~~~~~~~~~~~~~~~~~~~~~ + } + ~~~~~~~~~~~~~ + {// ??? 3 + ~~~~~~~~~~~~~~~~~~~~~ + } + ~~~~~~~~~~~~~ + { + ~~~~~~~~~~~~~ + // ??? 4 + ~~~~~~~~~~~~~~~~~~~~~~~~ + /* ??? 5 */} + ~~~~~~~~~~~~~~~~~~~~~~~~ +
; + ~~~~~~~~~~~~~~ +!!! error TS2307: Cannot find module 'react/jsx-dev-runtime' or its corresponding type declarations. + } + } \ No newline at end of file diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=commonjs,moduledetection=force).js b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=commonjs,moduledetection=force).js new file mode 100644 index 0000000000000..810347d948d57 --- /dev/null +++ b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=commonjs,moduledetection=force).js @@ -0,0 +1,35 @@ +//// [commentsOnJSXExpressionsArePreserved.tsx] +// file is intentionally not a module - this tests for a crash in the module/system transforms alongside the `react-jsx` and `react-jsxdev` outputs +namespace JSX {} +class Component { + render() { + return
+ {/* missing */} + {null/* preserved */} + { + // ??? 1 + } + { // ??? 2 + } + {// ??? 3 + } + { + // ??? 4 + /* ??? 5 */} +
; + } +} + +//// [commentsOnJSXExpressionsArePreserved.js] +"use strict"; +exports.__esModule = true; +var jsx_dev_runtime_1 = require("react/jsx-dev-runtime"); +var _jsxFileName = "tests/cases/compiler/commentsOnJSXExpressionsArePreserved.tsx"; +var Component = /** @class */ (function () { + function Component() { + } + Component.prototype.render = function () { + return (0, jsx_dev_runtime_1.jsxDEV)("div", { children: null /* preserved */ }, void 0, false, { fileName: _jsxFileName, lineNumber: 5, columnNumber: 15 }, this); + }; + return Component; +}()); diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=commonjs,moduledetection=force).symbols b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=commonjs,moduledetection=force).symbols new file mode 100644 index 0000000000000..95b7eeda0623f --- /dev/null +++ b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=commonjs,moduledetection=force).symbols @@ -0,0 +1,27 @@ +=== tests/cases/compiler/commentsOnJSXExpressionsArePreserved.tsx === +// file is intentionally not a module - this tests for a crash in the module/system transforms alongside the `react-jsx` and `react-jsxdev` outputs +namespace JSX {} +>JSX : Symbol(JSX, Decl(commentsOnJSXExpressionsArePreserved.tsx, 0, 0)) + +class Component { +>Component : Symbol(Component, Decl(commentsOnJSXExpressionsArePreserved.tsx, 1, 16)) + + render() { +>render : Symbol(Component.render, Decl(commentsOnJSXExpressionsArePreserved.tsx, 2, 17)) + + return
+ {/* missing */} + {null/* preserved */} + { + // ??? 1 + } + { // ??? 2 + } + {// ??? 3 + } + { + // ??? 4 + /* ??? 5 */} +
; + } +} diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=commonjs,moduledetection=force).types b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=commonjs,moduledetection=force).types new file mode 100644 index 0000000000000..5acb76daa70c1 --- /dev/null +++ b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=commonjs,moduledetection=force).types @@ -0,0 +1,30 @@ +=== tests/cases/compiler/commentsOnJSXExpressionsArePreserved.tsx === +// file is intentionally not a module - this tests for a crash in the module/system transforms alongside the `react-jsx` and `react-jsxdev` outputs +namespace JSX {} +class Component { +>Component : Component + + render() { +>render : () => any + + return
+>
{/* missing */} {null/* preserved */} { // ??? 1 } { // ??? 2 } {// ??? 3 } { // ??? 4 /* ??? 5 */}
: any +>div : any + + {/* missing */} + {null/* preserved */} +>null : null + { + // ??? 1 + } + { // ??? 2 + } + {// ??? 3 + } + { + // ??? 4 + /* ??? 5 */} +
; +>div : any + } +} diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=commonjs,moduledetection=legacy).errors.txt b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=commonjs,moduledetection=legacy).errors.txt new file mode 100644 index 0000000000000..7ecc135630b91 --- /dev/null +++ b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=commonjs,moduledetection=legacy).errors.txt @@ -0,0 +1,39 @@ +tests/cases/compiler/commentsOnJSXExpressionsArePreserved.tsx(5,16): error TS2307: Cannot find module 'react/jsx-dev-runtime' or its corresponding type declarations. + + +==== tests/cases/compiler/commentsOnJSXExpressionsArePreserved.tsx (1 errors) ==== + // file is intentionally not a module - this tests for a crash in the module/system transforms alongside the `react-jsx` and `react-jsxdev` outputs + namespace JSX {} + class Component { + render() { + return
+ ~~~~~ + {/* missing */} + ~~~~~~~~~~~~~~~~~~~~~~~~~~~ + {null/* preserved */} + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + { + ~~~~~~~~~~~~~ + // ??? 1 + ~~~~~~~~~~~~~~~~~~~~~~~~ + } + ~~~~~~~~~~~~~ + { // ??? 2 + ~~~~~~~~~~~~~~~~~~~~~~ + } + ~~~~~~~~~~~~~ + {// ??? 3 + ~~~~~~~~~~~~~~~~~~~~~ + } + ~~~~~~~~~~~~~ + { + ~~~~~~~~~~~~~ + // ??? 4 + ~~~~~~~~~~~~~~~~~~~~~~~~ + /* ??? 5 */} + ~~~~~~~~~~~~~~~~~~~~~~~~ +
; + ~~~~~~~~~~~~~~ +!!! error TS2307: Cannot find module 'react/jsx-dev-runtime' or its corresponding type declarations. + } + } \ No newline at end of file diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=commonjs).js b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=commonjs,moduledetection=legacy).js similarity index 100% rename from tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=commonjs).js rename to tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=commonjs,moduledetection=legacy).js diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=commonjs,moduledetection=legacy).symbols b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=commonjs,moduledetection=legacy).symbols new file mode 100644 index 0000000000000..95b7eeda0623f --- /dev/null +++ b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=commonjs,moduledetection=legacy).symbols @@ -0,0 +1,27 @@ +=== tests/cases/compiler/commentsOnJSXExpressionsArePreserved.tsx === +// file is intentionally not a module - this tests for a crash in the module/system transforms alongside the `react-jsx` and `react-jsxdev` outputs +namespace JSX {} +>JSX : Symbol(JSX, Decl(commentsOnJSXExpressionsArePreserved.tsx, 0, 0)) + +class Component { +>Component : Symbol(Component, Decl(commentsOnJSXExpressionsArePreserved.tsx, 1, 16)) + + render() { +>render : Symbol(Component.render, Decl(commentsOnJSXExpressionsArePreserved.tsx, 2, 17)) + + return
+ {/* missing */} + {null/* preserved */} + { + // ??? 1 + } + { // ??? 2 + } + {// ??? 3 + } + { + // ??? 4 + /* ??? 5 */} +
; + } +} diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=commonjs,moduledetection=legacy).types b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=commonjs,moduledetection=legacy).types new file mode 100644 index 0000000000000..5acb76daa70c1 --- /dev/null +++ b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=commonjs,moduledetection=legacy).types @@ -0,0 +1,30 @@ +=== tests/cases/compiler/commentsOnJSXExpressionsArePreserved.tsx === +// file is intentionally not a module - this tests for a crash in the module/system transforms alongside the `react-jsx` and `react-jsxdev` outputs +namespace JSX {} +class Component { +>Component : Component + + render() { +>render : () => any + + return
+>
{/* missing */} {null/* preserved */} { // ??? 1 } { // ??? 2 } {// ??? 3 } { // ??? 4 /* ??? 5 */}
: any +>div : any + + {/* missing */} + {null/* preserved */} +>null : null + { + // ??? 1 + } + { // ??? 2 + } + {// ??? 3 + } + { + // ??? 4 + /* ??? 5 */} +
; +>div : any + } +} diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=system).errors.txt b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=system,moduledetection=auto).errors.txt similarity index 100% rename from tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=system).errors.txt rename to tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=system,moduledetection=auto).errors.txt diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=system,moduledetection=auto).js b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=system,moduledetection=auto).js new file mode 100644 index 0000000000000..dd74fc86a3c63 --- /dev/null +++ b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=system,moduledetection=auto).js @@ -0,0 +1,46 @@ +//// [commentsOnJSXExpressionsArePreserved.tsx] +// file is intentionally not a module - this tests for a crash in the module/system transforms alongside the `react-jsx` and `react-jsxdev` outputs +namespace JSX {} +class Component { + render() { + return
+ {/* missing */} + {null/* preserved */} + { + // ??? 1 + } + { // ??? 2 + } + {// ??? 3 + } + { + // ??? 4 + /* ??? 5 */} +
; + } +} + +//// [commentsOnJSXExpressionsArePreserved.js] +System.register(["react/jsx-dev-runtime"], function (exports_1, context_1) { + "use strict"; + var jsx_dev_runtime_1, _jsxFileName, Component; + var __moduleName = context_1 && context_1.id; + return { + setters: [ + function (jsx_dev_runtime_1_1) { + jsx_dev_runtime_1 = jsx_dev_runtime_1_1; + } + ], + execute: function () { + _jsxFileName = "tests/cases/compiler/commentsOnJSXExpressionsArePreserved.tsx"; + Component = /** @class */ (function () { + function Component() { + } + Component.prototype.render = function () { + return _jsxDEV("div", { children: null /* preserved */ }, void 0, false, { fileName: _jsxFileName, lineNumber: 5, columnNumber: 15 }, this); + }; + return Component; + }()); + } + }; +}); diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=system,moduledetection=auto).symbols b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=system,moduledetection=auto).symbols new file mode 100644 index 0000000000000..95b7eeda0623f --- /dev/null +++ b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=system,moduledetection=auto).symbols @@ -0,0 +1,27 @@ +=== tests/cases/compiler/commentsOnJSXExpressionsArePreserved.tsx === +// file is intentionally not a module - this tests for a crash in the module/system transforms alongside the `react-jsx` and `react-jsxdev` outputs +namespace JSX {} +>JSX : Symbol(JSX, Decl(commentsOnJSXExpressionsArePreserved.tsx, 0, 0)) + +class Component { +>Component : Symbol(Component, Decl(commentsOnJSXExpressionsArePreserved.tsx, 1, 16)) + + render() { +>render : Symbol(Component.render, Decl(commentsOnJSXExpressionsArePreserved.tsx, 2, 17)) + + return
+ {/* missing */} + {null/* preserved */} + { + // ??? 1 + } + { // ??? 2 + } + {// ??? 3 + } + { + // ??? 4 + /* ??? 5 */} +
; + } +} diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=system,moduledetection=auto).types b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=system,moduledetection=auto).types new file mode 100644 index 0000000000000..5acb76daa70c1 --- /dev/null +++ b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=system,moduledetection=auto).types @@ -0,0 +1,30 @@ +=== tests/cases/compiler/commentsOnJSXExpressionsArePreserved.tsx === +// file is intentionally not a module - this tests for a crash in the module/system transforms alongside the `react-jsx` and `react-jsxdev` outputs +namespace JSX {} +class Component { +>Component : Component + + render() { +>render : () => any + + return
+>
{/* missing */} {null/* preserved */} { // ??? 1 } { // ??? 2 } {// ??? 3 } { // ??? 4 /* ??? 5 */}
: any +>div : any + + {/* missing */} + {null/* preserved */} +>null : null + { + // ??? 1 + } + { // ??? 2 + } + {// ??? 3 + } + { + // ??? 4 + /* ??? 5 */} +
; +>div : any + } +} diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=system,moduledetection=force).errors.txt b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=system,moduledetection=force).errors.txt new file mode 100644 index 0000000000000..072fbae9425eb --- /dev/null +++ b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=system,moduledetection=force).errors.txt @@ -0,0 +1,39 @@ +tests/cases/compiler/commentsOnJSXExpressionsArePreserved.tsx(5,16): error TS2792: Cannot find module 'react/jsx-dev-runtime'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? + + +==== tests/cases/compiler/commentsOnJSXExpressionsArePreserved.tsx (1 errors) ==== + // file is intentionally not a module - this tests for a crash in the module/system transforms alongside the `react-jsx` and `react-jsxdev` outputs + namespace JSX {} + class Component { + render() { + return
+ ~~~~~ + {/* missing */} + ~~~~~~~~~~~~~~~~~~~~~~~~~~~ + {null/* preserved */} + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + { + ~~~~~~~~~~~~~ + // ??? 1 + ~~~~~~~~~~~~~~~~~~~~~~~~ + } + ~~~~~~~~~~~~~ + { // ??? 2 + ~~~~~~~~~~~~~~~~~~~~~~ + } + ~~~~~~~~~~~~~ + {// ??? 3 + ~~~~~~~~~~~~~~~~~~~~~ + } + ~~~~~~~~~~~~~ + { + ~~~~~~~~~~~~~ + // ??? 4 + ~~~~~~~~~~~~~~~~~~~~~~~~ + /* ??? 5 */} + ~~~~~~~~~~~~~~~~~~~~~~~~ +
; + ~~~~~~~~~~~~~~ +!!! error TS2792: Cannot find module 'react/jsx-dev-runtime'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? + } + } \ No newline at end of file diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=system,moduledetection=force).js b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=system,moduledetection=force).js new file mode 100644 index 0000000000000..dd74fc86a3c63 --- /dev/null +++ b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=system,moduledetection=force).js @@ -0,0 +1,46 @@ +//// [commentsOnJSXExpressionsArePreserved.tsx] +// file is intentionally not a module - this tests for a crash in the module/system transforms alongside the `react-jsx` and `react-jsxdev` outputs +namespace JSX {} +class Component { + render() { + return
+ {/* missing */} + {null/* preserved */} + { + // ??? 1 + } + { // ??? 2 + } + {// ??? 3 + } + { + // ??? 4 + /* ??? 5 */} +
; + } +} + +//// [commentsOnJSXExpressionsArePreserved.js] +System.register(["react/jsx-dev-runtime"], function (exports_1, context_1) { + "use strict"; + var jsx_dev_runtime_1, _jsxFileName, Component; + var __moduleName = context_1 && context_1.id; + return { + setters: [ + function (jsx_dev_runtime_1_1) { + jsx_dev_runtime_1 = jsx_dev_runtime_1_1; + } + ], + execute: function () { + _jsxFileName = "tests/cases/compiler/commentsOnJSXExpressionsArePreserved.tsx"; + Component = /** @class */ (function () { + function Component() { + } + Component.prototype.render = function () { + return _jsxDEV("div", { children: null /* preserved */ }, void 0, false, { fileName: _jsxFileName, lineNumber: 5, columnNumber: 15 }, this); + }; + return Component; + }()); + } + }; +}); diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=system,moduledetection=force).symbols b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=system,moduledetection=force).symbols new file mode 100644 index 0000000000000..95b7eeda0623f --- /dev/null +++ b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=system,moduledetection=force).symbols @@ -0,0 +1,27 @@ +=== tests/cases/compiler/commentsOnJSXExpressionsArePreserved.tsx === +// file is intentionally not a module - this tests for a crash in the module/system transforms alongside the `react-jsx` and `react-jsxdev` outputs +namespace JSX {} +>JSX : Symbol(JSX, Decl(commentsOnJSXExpressionsArePreserved.tsx, 0, 0)) + +class Component { +>Component : Symbol(Component, Decl(commentsOnJSXExpressionsArePreserved.tsx, 1, 16)) + + render() { +>render : Symbol(Component.render, Decl(commentsOnJSXExpressionsArePreserved.tsx, 2, 17)) + + return
+ {/* missing */} + {null/* preserved */} + { + // ??? 1 + } + { // ??? 2 + } + {// ??? 3 + } + { + // ??? 4 + /* ??? 5 */} +
; + } +} diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=system,moduledetection=force).types b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=system,moduledetection=force).types new file mode 100644 index 0000000000000..5acb76daa70c1 --- /dev/null +++ b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=system,moduledetection=force).types @@ -0,0 +1,30 @@ +=== tests/cases/compiler/commentsOnJSXExpressionsArePreserved.tsx === +// file is intentionally not a module - this tests for a crash in the module/system transforms alongside the `react-jsx` and `react-jsxdev` outputs +namespace JSX {} +class Component { +>Component : Component + + render() { +>render : () => any + + return
+>
{/* missing */} {null/* preserved */} { // ??? 1 } { // ??? 2 } {// ??? 3 } { // ??? 4 /* ??? 5 */}
: any +>div : any + + {/* missing */} + {null/* preserved */} +>null : null + { + // ??? 1 + } + { // ??? 2 + } + {// ??? 3 + } + { + // ??? 4 + /* ??? 5 */} +
; +>div : any + } +} diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=system,moduledetection=legacy).errors.txt b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=system,moduledetection=legacy).errors.txt new file mode 100644 index 0000000000000..072fbae9425eb --- /dev/null +++ b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=system,moduledetection=legacy).errors.txt @@ -0,0 +1,39 @@ +tests/cases/compiler/commentsOnJSXExpressionsArePreserved.tsx(5,16): error TS2792: Cannot find module 'react/jsx-dev-runtime'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? + + +==== tests/cases/compiler/commentsOnJSXExpressionsArePreserved.tsx (1 errors) ==== + // file is intentionally not a module - this tests for a crash in the module/system transforms alongside the `react-jsx` and `react-jsxdev` outputs + namespace JSX {} + class Component { + render() { + return
+ ~~~~~ + {/* missing */} + ~~~~~~~~~~~~~~~~~~~~~~~~~~~ + {null/* preserved */} + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + { + ~~~~~~~~~~~~~ + // ??? 1 + ~~~~~~~~~~~~~~~~~~~~~~~~ + } + ~~~~~~~~~~~~~ + { // ??? 2 + ~~~~~~~~~~~~~~~~~~~~~~ + } + ~~~~~~~~~~~~~ + {// ??? 3 + ~~~~~~~~~~~~~~~~~~~~~ + } + ~~~~~~~~~~~~~ + { + ~~~~~~~~~~~~~ + // ??? 4 + ~~~~~~~~~~~~~~~~~~~~~~~~ + /* ??? 5 */} + ~~~~~~~~~~~~~~~~~~~~~~~~ +
; + ~~~~~~~~~~~~~~ +!!! error TS2792: Cannot find module 'react/jsx-dev-runtime'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? + } + } \ No newline at end of file diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=system).js b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=system,moduledetection=legacy).js similarity index 100% rename from tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=system).js rename to tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=system,moduledetection=legacy).js diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=system,moduledetection=legacy).symbols b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=system,moduledetection=legacy).symbols new file mode 100644 index 0000000000000..95b7eeda0623f --- /dev/null +++ b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=system,moduledetection=legacy).symbols @@ -0,0 +1,27 @@ +=== tests/cases/compiler/commentsOnJSXExpressionsArePreserved.tsx === +// file is intentionally not a module - this tests for a crash in the module/system transforms alongside the `react-jsx` and `react-jsxdev` outputs +namespace JSX {} +>JSX : Symbol(JSX, Decl(commentsOnJSXExpressionsArePreserved.tsx, 0, 0)) + +class Component { +>Component : Symbol(Component, Decl(commentsOnJSXExpressionsArePreserved.tsx, 1, 16)) + + render() { +>render : Symbol(Component.render, Decl(commentsOnJSXExpressionsArePreserved.tsx, 2, 17)) + + return
+ {/* missing */} + {null/* preserved */} + { + // ??? 1 + } + { // ??? 2 + } + {// ??? 3 + } + { + // ??? 4 + /* ??? 5 */} +
; + } +} diff --git a/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=system,moduledetection=legacy).types b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=system,moduledetection=legacy).types new file mode 100644 index 0000000000000..5acb76daa70c1 --- /dev/null +++ b/tests/baselines/reference/commentsOnJSXExpressionsArePreserved(jsx=react-jsxdev,module=system,moduledetection=legacy).types @@ -0,0 +1,30 @@ +=== tests/cases/compiler/commentsOnJSXExpressionsArePreserved.tsx === +// file is intentionally not a module - this tests for a crash in the module/system transforms alongside the `react-jsx` and `react-jsxdev` outputs +namespace JSX {} +class Component { +>Component : Component + + render() { +>render : () => any + + return
+>
{/* missing */} {null/* preserved */} { // ??? 1 } { // ??? 2 } {// ??? 3 } { // ??? 4 /* ??? 5 */}
: any +>div : any + + {/* missing */} + {null/* preserved */} +>null : null + { + // ??? 1 + } + { // ??? 2 + } + {// ??? 3 + } + { + // ??? 4 + /* ??? 5 */} +
; +>div : any + } +} diff --git a/tests/baselines/reference/commonJsUnusedLocals.types b/tests/baselines/reference/commonJsUnusedLocals.types index 55c07a7d23046..10c61705d2356 100644 --- a/tests/baselines/reference/commonJsUnusedLocals.types +++ b/tests/baselines/reference/commonJsUnusedLocals.types @@ -5,8 +5,8 @@ const x = 0; exports.y = 1; >exports.y = 1 : 1 ->exports.y : number +>exports.y : 1 >exports : typeof import("/a") ->y : number +>y : 1 >1 : 1 diff --git a/tests/baselines/reference/commonjsAccessExports.types b/tests/baselines/reference/commonjsAccessExports.types index d33258547892f..70ba3ee15d8d1 100644 --- a/tests/baselines/reference/commonjsAccessExports.types +++ b/tests/baselines/reference/commonjsAccessExports.types @@ -1,15 +1,15 @@ === /a.js === exports.x = 0; >exports.x = 0 : 0 ->exports.x : number +>exports.x : 0 >exports : typeof import("/a") ->x : number +>x : 0 >0 : 0 exports.x; ->exports.x : number +>exports.x : 0 >exports : typeof import("/a") ->x : number +>x : 0 // Works nested { diff --git a/tests/baselines/reference/completionEntryForUnionMethod.baseline b/tests/baselines/reference/completionEntryForUnionMethod.baseline index 8bfd544e98a6d..f03ee666dc0d8 100644 --- a/tests/baselines/reference/completionEntryForUnionMethod.baseline +++ b/tests/baselines/reference/completionEntryForUnionMethod.baseline @@ -15,7 +15,7 @@ }, "entries": [ { - "name": "length", + "name": "concat", "kind": "property", "kindModifiers": "declare", "sortText": "11", @@ -57,7 +57,7 @@ "kind": "punctuation" }, { - "text": "length", + "text": "concat", "kind": "propertyName" }, { @@ -69,33 +69,31 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [ + "text": "{", + "kind": "punctuation" + }, { - "text": "Gets or sets the length of the array. This is a number one higher than the highest index in the array.", - "kind": "text" - } - ] - }, - { - "name": "toString", - "kind": "method", - "kindModifiers": "declare", - "sortText": "11", - "displayParts": [ + "text": "\n", + "kind": "lineBreak" + }, + { + "text": " ", + "kind": "space" + }, { "text": "(", "kind": "punctuation" }, { - "text": "method", - "kind": "text" + "text": "...", + "kind": "punctuation" }, { - "text": ")", + "text": "items", + "kind": "parameterName" + }, + { + "text": ":", "kind": "punctuation" }, { @@ -103,31 +101,27 @@ "kind": "space" }, { - "text": "Array", - "kind": "localName" + "text": "ConcatArray", + "kind": "interfaceName" }, { "text": "<", "kind": "punctuation" }, { - "text": "T", - "kind": "typeParameterName" + "text": "string", + "kind": "keyword" }, { "text": ">", "kind": "punctuation" }, { - "text": ".", + "text": "[", "kind": "punctuation" }, { - "text": "toString", - "kind": "propertyName" - }, - { - "text": "(", + "text": "]", "kind": "punctuation" }, { @@ -145,69 +139,39 @@ { "text": "string", "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Returns a string representation of an array.", - "kind": "text" - } - ] - }, - { - "name": "toLocaleString", - "kind": "method", - "kindModifiers": "declare", - "sortText": "11", - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" }, { - "text": ")", + "text": "[", "kind": "punctuation" }, { - "text": " ", - "kind": "space" - }, - { - "text": "Array", - "kind": "localName" - }, - { - "text": "<", + "text": "]", "kind": "punctuation" }, { - "text": "T", - "kind": "typeParameterName" - }, - { - "text": ">", + "text": ";", "kind": "punctuation" }, { - "text": ".", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": "toLocaleString", - "kind": "propertyName" + "text": " ", + "kind": "space" }, { "text": "(", "kind": "punctuation" }, { - "text": ")", + "text": "...", "kind": "punctuation" }, + { + "text": "items", + "kind": "parameterName" + }, { "text": ":", "kind": "punctuation" @@ -216,34 +180,20 @@ "text": " ", "kind": "space" }, - { - "text": "string", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Returns a string representation of an array. The elements are converted to string using their toLocaleString methods.", - "kind": "text" - } - ] - }, - { - "name": "pop", - "kind": "method", - "kindModifiers": "declare", - "sortText": "11", - "displayParts": [ { "text": "(", "kind": "punctuation" }, { - "text": "method", - "kind": "text" + "text": "string", + "kind": "keyword" }, { - "text": ")", + "text": " ", + "kind": "space" + }, + { + "text": "|", "kind": "punctuation" }, { @@ -251,31 +201,31 @@ "kind": "space" }, { - "text": "Array", - "kind": "localName" + "text": "ConcatArray", + "kind": "interfaceName" }, { "text": "<", "kind": "punctuation" }, { - "text": "T", - "kind": "typeParameterName" + "text": "string", + "kind": "keyword" }, { "text": ">", "kind": "punctuation" }, { - "text": ".", + "text": ")", "kind": "punctuation" }, { - "text": "pop", - "kind": "propertyName" + "text": "[", + "kind": "punctuation" }, { - "text": "(", + "text": "]", "kind": "punctuation" }, { @@ -294,6 +244,26 @@ "text": "string", "kind": "keyword" }, + { + "text": "[", + "kind": "punctuation" + }, + { + "text": "]", + "kind": "punctuation" + }, + { + "text": ";", + "kind": "punctuation" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "}", + "kind": "punctuation" + }, { "text": " ", "kind": "space" @@ -307,33 +277,31 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [ + "text": "{", + "kind": "punctuation" + }, { - "text": "Removes the last element from an array and returns it.\r\nIf the array is empty, undefined is returned and the array is not modified.", - "kind": "text" - } - ] - }, - { - "name": "push", - "kind": "method", - "kindModifiers": "declare", - "sortText": "11", - "displayParts": [ + "text": "\n", + "kind": "lineBreak" + }, + { + "text": " ", + "kind": "space" + }, { "text": "(", "kind": "punctuation" }, { - "text": "method", - "kind": "text" + "text": "...", + "kind": "punctuation" }, { - "text": ")", + "text": "items", + "kind": "parameterName" + }, + { + "text": ":", "kind": "punctuation" }, { @@ -341,36 +309,32 @@ "kind": "space" }, { - "text": "Array", - "kind": "localName" + "text": "ConcatArray", + "kind": "interfaceName" }, { "text": "<", "kind": "punctuation" }, { - "text": "T", - "kind": "typeParameterName" + "text": "number", + "kind": "keyword" }, { "text": ">", "kind": "punctuation" }, { - "text": ".", + "text": "[", "kind": "punctuation" }, { - "text": "push", - "kind": "propertyName" - }, - { - "text": "(", + "text": "]", "kind": "punctuation" }, { - "text": "items", - "kind": "parameterName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -381,7 +345,7 @@ "kind": "space" }, { - "text": "never", + "text": "number", "kind": "keyword" }, { @@ -393,9 +357,29 @@ "kind": "punctuation" }, { - "text": ")", + "text": ";", + "kind": "punctuation" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "...", "kind": "punctuation" }, + { + "text": "items", + "kind": "parameterName" + }, { "text": ":", "kind": "punctuation" @@ -405,13 +389,93 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "(", + "kind": "punctuation" + }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "|", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "ConcatArray", + "kind": "interfaceName" + }, + { + "text": "<", + "kind": "punctuation" + }, + { + "text": "...", + "kind": "text" + }, + { + "text": ">", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": "[", + "kind": "punctuation" + }, + { + "text": "]", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": "[", + "kind": "punctuation" + }, + { + "text": "]", + "kind": "punctuation" + }, + { + "text": ";", + "kind": "punctuation" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "}", + "kind": "punctuation" } ], "documentation": [ { - "text": "Appends new elements to the end of an array, and returns the new length of the array.", + "text": "Combines two or more arrays.\r\nThis method returns a new array without modifying any existing arrays.", "kind": "text" } ], @@ -428,7 +492,24 @@ "kind": "space" }, { - "text": "New elements to add to the array.", + "text": "Additional arrays and/or items to add to the end of the array.", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "items", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Additional arrays and/or items to add to the end of the array.", "kind": "text" } ] @@ -436,7 +517,7 @@ ] }, { - "name": "concat", + "name": "every", "kind": "property", "kindModifiers": "declare", "sortText": "11", @@ -478,7 +559,7 @@ "kind": "punctuation" }, { - "text": "concat", + "text": "every", "kind": "propertyName" }, { @@ -502,32 +583,24 @@ "kind": "space" }, { - "text": "(", - "kind": "punctuation" - }, - { - "text": "...", + "text": "<", "kind": "punctuation" }, { - "text": "items", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" + "text": "S", + "kind": "typeParameterName" }, { "text": " ", "kind": "space" }, { - "text": "ConcatArray", - "kind": "interfaceName" + "text": "extends", + "kind": "keyword" }, { - "text": "<", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { "text": "string", @@ -538,17 +611,29 @@ "kind": "punctuation" }, { - "text": "[", + "text": "(", "kind": "punctuation" }, { - "text": "]", + "text": "predicate", + "kind": "parameterName" + }, + { + "text": ":", "kind": "punctuation" }, { - "text": ")", + "text": " ", + "kind": "space" + }, + { + "text": "(", "kind": "punctuation" }, + { + "text": "value", + "kind": "parameterName" + }, { "text": ":", "kind": "punctuation" @@ -562,35 +647,39 @@ "kind": "keyword" }, { - "text": "[", + "text": ",", "kind": "punctuation" }, { - "text": "]", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": ";", - "kind": "punctuation" + "text": "index", + "kind": "parameterName" }, { - "text": "\n", - "kind": "lineBreak" + "text": ":", + "kind": "punctuation" }, { - "text": " ", + "text": " ", "kind": "space" }, { - "text": "(", - "kind": "punctuation" + "text": "number", + "kind": "keyword" }, { - "text": "...", + "text": ",", "kind": "punctuation" }, { - "text": "items", + "text": " ", + "kind": "space" + }, + { + "text": "array", "kind": "parameterName" }, { @@ -602,19 +691,27 @@ "kind": "space" }, { - "text": "(", + "text": "string", + "kind": "keyword" + }, + { + "text": "[", "kind": "punctuation" }, { - "text": "string", - "kind": "keyword" + "text": "]", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "|", + "text": "=>", "kind": "punctuation" }, { @@ -622,35 +719,39 @@ "kind": "space" }, { - "text": "ConcatArray", - "kind": "interfaceName" + "text": "value", + "kind": "text" }, { - "text": "<", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": "string", + "text": "is", "kind": "keyword" }, { - "text": ">", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": ")", - "kind": "punctuation" + "text": "S", + "kind": "typeParameterName" }, { - "text": "[", + "text": ",", "kind": "punctuation" }, { - "text": "]", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": ")", + "text": "thisArg", + "kind": "parameterName" + }, + { + "text": "?", "kind": "punctuation" }, { @@ -662,43 +763,51 @@ "kind": "space" }, { - "text": "string", + "text": "any", "kind": "keyword" }, { - "text": "[", + "text": ")", "kind": "punctuation" }, { - "text": "]", + "text": ":", "kind": "punctuation" }, { - "text": ";", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": "\n", - "kind": "lineBreak" + "text": "this", + "kind": "keyword" }, { - "text": "}", - "kind": "punctuation" + "text": " ", + "kind": "space" + }, + { + "text": "is", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "|", + "text": "S", + "kind": "typeParameterName" + }, + { + "text": "[", "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "]", + "kind": "punctuation" }, { - "text": "{", + "text": ";", "kind": "punctuation" }, { @@ -714,11 +823,7 @@ "kind": "punctuation" }, { - "text": "...", - "kind": "punctuation" - }, - { - "text": "items", + "text": "predicate", "kind": "parameterName" }, { @@ -730,32 +835,36 @@ "kind": "space" }, { - "text": "ConcatArray", - "kind": "interfaceName" + "text": "(", + "kind": "punctuation" }, { - "text": "<", + "text": "value", + "kind": "parameterName" + }, + { + "text": ":", "kind": "punctuation" }, { - "text": "number", - "kind": "keyword" + "text": " ", + "kind": "space" }, { - "text": ">", - "kind": "punctuation" + "text": "string", + "kind": "keyword" }, { - "text": "[", + "text": ",", "kind": "punctuation" }, { - "text": "]", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": ")", - "kind": "punctuation" + "text": "index", + "kind": "parameterName" }, { "text": ":", @@ -770,39 +879,39 @@ "kind": "keyword" }, { - "text": "[", + "text": ",", "kind": "punctuation" }, { - "text": "]", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": ";", - "kind": "punctuation" + "text": "array", + "kind": "parameterName" }, { - "text": "\n", - "kind": "lineBreak" + "text": ":", + "kind": "punctuation" }, { - "text": " ", + "text": " ", "kind": "space" }, { - "text": "(", - "kind": "punctuation" + "text": "string", + "kind": "keyword" }, { - "text": "...", + "text": "[", "kind": "punctuation" }, { - "text": "items", - "kind": "parameterName" + "text": "]", + "kind": "punctuation" }, { - "text": ":", + "text": ")", "kind": "punctuation" }, { @@ -810,19 +919,19 @@ "kind": "space" }, { - "text": "(", + "text": "=>", "kind": "punctuation" }, - { - "text": "number", - "kind": "keyword" - }, { "text": " ", "kind": "space" }, { - "text": "|", + "text": "unknown", + "kind": "keyword" + }, + { + "text": ",", "kind": "punctuation" }, { @@ -830,39 +939,51 @@ "kind": "space" }, { - "text": "ConcatArray", - "kind": "interfaceName" + "text": "thisArg", + "kind": "parameterName" }, { - "text": "<", + "text": "?", "kind": "punctuation" }, { - "text": "...", - "kind": "text" + "text": ":", + "kind": "punctuation" }, { - "text": ">", - "kind": "punctuation" + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" }, { "text": ")", "kind": "punctuation" }, { - "text": "[", + "text": ":", "kind": "punctuation" }, { - "text": "]", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": ")", + "text": "boolean", + "kind": "keyword" + }, + { + "text": ";", "kind": "punctuation" }, { - "text": ":", + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "}", "kind": "punctuation" }, { @@ -870,17 +991,29 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "|", + "kind": "punctuation" }, { - "text": "[", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": "]", + "text": "{", "kind": "punctuation" }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "...", + "kind": "propertyName" + }, { "text": ";", "kind": "punctuation" @@ -896,7 +1029,7 @@ ], "documentation": [ { - "text": "Combines two or more arrays.\r\nThis method returns a new array without modifying any existing arrays.", + "text": "Determines whether all the members of an array satisfy the specified test.", "kind": "text" } ], @@ -905,7 +1038,7 @@ "name": "param", "text": [ { - "text": "items", + "text": "predicate", "kind": "parameterName" }, { @@ -913,7 +1046,7 @@ "kind": "space" }, { - "text": "Additional arrays and/or items to add to the end of the array.", + "text": "A function that accepts up to three arguments. The every method calls\r\nthe predicate function for each element in the array until the predicate returns a value\r\nwhich is coercible to the Boolean value false, or until the end of the array.", "kind": "text" } ] @@ -922,7 +1055,7 @@ "name": "param", "text": [ { - "text": "items", + "text": "thisArg", "kind": "parameterName" }, { @@ -930,7 +1063,41 @@ "kind": "space" }, { - "text": "Additional arrays and/or items to add to the end of the array.", + "text": "An object to which the this keyword can refer in the predicate function.\r\nIf thisArg is omitted, undefined is used as the this value.", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "predicate", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A function that accepts up to three arguments. The every method calls\r\nthe predicate function for each element in the array until the predicate returns a value\r\nwhich is coercible to the Boolean value false, or until the end of the array.", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "thisArg", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "An object to which the this keyword can refer in the predicate function.\r\nIf thisArg is omitted, undefined is used as the this value.", "kind": "text" } ] @@ -938,8 +1105,8 @@ ] }, { - "name": "join", - "kind": "method", + "name": "filter", + "kind": "property", "kindModifiers": "declare", "sortText": "11", "displayParts": [ @@ -948,7 +1115,7 @@ "kind": "punctuation" }, { - "text": "method", + "text": "property", "kind": "text" }, { @@ -980,40 +1147,44 @@ "kind": "punctuation" }, { - "text": "join", + "text": "filter", "kind": "propertyName" }, { - "text": "(", + "text": ":", "kind": "punctuation" }, { - "text": "separator", - "kind": "parameterName" + "text": " ", + "kind": "space" }, { - "text": "?", + "text": "{", "kind": "punctuation" }, { - "text": ":", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": " ", + "text": " ", "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "<", + "kind": "punctuation" }, { - "text": ")", - "kind": "punctuation" + "text": "S", + "kind": "typeParameterName" }, { - "text": ":", - "kind": "punctuation" + "text": " ", + "kind": "space" + }, + { + "text": "extends", + "kind": "keyword" }, { "text": " ", @@ -1022,50 +1193,21 @@ { "text": "string", "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Adds all the elements of an array into a string, separated by the specified separator string.", - "kind": "text" - } - ], - "tags": [ + }, { - "name": "param", - "text": [ - { - "text": "separator", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string used to separate one element of the array from the next in the resulting string. If omitted, the array elements are separated with a comma.", - "kind": "text" - } - ] - } - ] - }, - { - "name": "reverse", - "kind": "method", - "kindModifiers": "declare", - "sortText": "11", - "displayParts": [ + "text": ">", + "kind": "punctuation" + }, { "text": "(", "kind": "punctuation" }, { - "text": "method", - "kind": "text" + "text": "predicate", + "kind": "parameterName" }, { - "text": ")", + "text": ":", "kind": "punctuation" }, { @@ -1073,37 +1215,61 @@ "kind": "space" }, { - "text": "Array", - "kind": "localName" + "text": "(", + "kind": "punctuation" }, { - "text": "<", + "text": "value", + "kind": "parameterName" + }, + { + "text": ":", "kind": "punctuation" }, { - "text": "T", - "kind": "typeParameterName" + "text": " ", + "kind": "space" }, { - "text": ">", - "kind": "punctuation" + "text": "string", + "kind": "keyword" }, { - "text": ".", + "text": ",", "kind": "punctuation" }, { - "text": "reverse", - "kind": "propertyName" + "text": " ", + "kind": "space" }, { - "text": "(", + "text": "index", + "kind": "parameterName" + }, + { + "text": ":", "kind": "punctuation" }, { - "text": ")", + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": ",", "kind": "punctuation" }, + { + "text": " ", + "kind": "space" + }, + { + "text": "array", + "kind": "parameterName" + }, { "text": ":", "kind": "punctuation" @@ -1124,12 +1290,16 @@ "text": "]", "kind": "punctuation" }, + { + "text": ")", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "|", + "text": "=>", "kind": "punctuation" }, { @@ -1137,41 +1307,43 @@ "kind": "space" }, { - "text": "number", + "text": "value", + "kind": "text" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "is", "kind": "keyword" }, { - "text": "[", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": "]", + "text": "S", + "kind": "typeParameterName" + }, + { + "text": ",", "kind": "punctuation" - } - ], - "documentation": [ + }, { - "text": "Reverses the elements in an array in place.\r\nThis method mutates the array and returns a reference to the same array.", - "kind": "text" - } - ] - }, - { - "name": "shift", - "kind": "method", - "kindModifiers": "declare", - "sortText": "11", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "(", - "kind": "punctuation" + "text": "thisArg", + "kind": "parameterName" }, { - "text": "method", - "kind": "text" + "text": "?", + "kind": "punctuation" }, { - "text": ")", + "text": ":", "kind": "punctuation" }, { @@ -1179,36 +1351,52 @@ "kind": "space" }, { - "text": "Array", - "kind": "localName" + "text": "any", + "kind": "keyword" }, { - "text": "<", + "text": ")", "kind": "punctuation" }, { - "text": "T", + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "S", "kind": "typeParameterName" }, { - "text": ">", + "text": "[", "kind": "punctuation" }, { - "text": ".", + "text": "]", "kind": "punctuation" }, { - "text": "shift", - "kind": "propertyName" + "text": ";", + "kind": "punctuation" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": " ", + "kind": "space" }, { "text": "(", "kind": "punctuation" }, { - "text": ")", - "kind": "punctuation" + "text": "predicate", + "kind": "parameterName" }, { "text": ":", @@ -1219,15 +1407,15 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "(", + "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "value", + "kind": "parameterName" }, { - "text": "|", + "text": ":", "kind": "punctuation" }, { @@ -1235,33 +1423,23 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Removes the first element from an array and returns it.\r\nIf the array is empty, undefined is returned and the array is not modified.", - "kind": "text" - } - ] - }, - { - "name": "slice", - "kind": "method", - "kindModifiers": "declare", - "sortText": "11", - "displayParts": [ + }, { - "text": "(", + "text": ",", "kind": "punctuation" }, { - "text": "method", - "kind": "text" + "text": " ", + "kind": "space" }, { - "text": ")", + "text": "index", + "kind": "parameterName" + }, + { + "text": ":", "kind": "punctuation" }, { @@ -1269,43 +1447,51 @@ "kind": "space" }, { - "text": "Array", - "kind": "localName" + "text": "number", + "kind": "keyword" }, { - "text": "<", + "text": ",", "kind": "punctuation" }, { - "text": "T", - "kind": "typeParameterName" + "text": " ", + "kind": "space" }, { - "text": ">", - "kind": "punctuation" + "text": "array", + "kind": "parameterName" }, { - "text": ".", + "text": ":", "kind": "punctuation" }, { - "text": "slice", - "kind": "propertyName" + "text": " ", + "kind": "space" }, { - "text": "(", + "text": "string", + "kind": "keyword" + }, + { + "text": "[", "kind": "punctuation" }, { - "text": "start", - "kind": "parameterName" + "text": "]", + "kind": "punctuation" }, { - "text": "?", + "text": ")", "kind": "punctuation" }, { - "text": ":", + "text": " ", + "kind": "space" + }, + { + "text": "=>", "kind": "punctuation" }, { @@ -1313,7 +1499,7 @@ "kind": "space" }, { - "text": "number", + "text": "unknown", "kind": "keyword" }, { @@ -1325,7 +1511,7 @@ "kind": "space" }, { - "text": "end", + "text": "thisArg", "kind": "parameterName" }, { @@ -1341,7 +1527,7 @@ "kind": "space" }, { - "text": "number", + "text": "any", "kind": "keyword" }, { @@ -1368,6 +1554,18 @@ "text": "]", "kind": "punctuation" }, + { + "text": ";", + "kind": "punctuation" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "}", + "kind": "punctuation" + }, { "text": " ", "kind": "space" @@ -1381,21 +1579,37 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "{", + "kind": "punctuation" }, { - "text": "[", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": "]", + "text": " ", + "kind": "space" + }, + { + "text": "...", + "kind": "propertyName" + }, + { + "text": ";", "kind": "punctuation" - } - ], - "documentation": [ + }, { - "text": "Returns a copy of a section of an array.\r\nFor both start and end, a negative index can be used to indicate an offset from the end of the array.\r\nFor example, -2 refers to the second to last element of the array.", + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "}", + "kind": "punctuation" + } + ], + "documentation": [ + { + "text": "Returns the elements of an array that meet the condition specified in a callback function.", "kind": "text" } ], @@ -1404,7 +1618,7 @@ "name": "param", "text": [ { - "text": "start", + "text": "predicate", "kind": "parameterName" }, { @@ -1412,7 +1626,7 @@ "kind": "space" }, { - "text": "The beginning index of the specified portion of the array.\r\nIf start is undefined, then the slice begins at index 0.", + "text": "A function that accepts up to three arguments. The filter method calls the predicate function one time for each element in the array.", "kind": "text" } ] @@ -1421,7 +1635,7 @@ "name": "param", "text": [ { - "text": "end", + "text": "thisArg", "kind": "parameterName" }, { @@ -1429,7 +1643,41 @@ "kind": "space" }, { - "text": "The end index of the specified portion of the array. This is exclusive of the element at the index 'end'.\r\nIf end is undefined, then the slice extends to the end of the array.", + "text": "An object to which the this keyword can refer in the predicate function. If thisArg is omitted, undefined is used as the this value.", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "predicate", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A function that accepts up to three arguments. The filter method calls the predicate function one time for each element in the array.", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "thisArg", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "An object to which the this keyword can refer in the predicate function. If thisArg is omitted, undefined is used as the this value.", "kind": "text" } ] @@ -1437,7 +1685,7 @@ ] }, { - "name": "sort", + "name": "forEach", "kind": "method", "kindModifiers": "declare", "sortText": "11", @@ -1479,7 +1727,7 @@ "kind": "punctuation" }, { - "text": "sort", + "text": "forEach", "kind": "propertyName" }, { @@ -1487,7 +1735,7 @@ "kind": "punctuation" }, { - "text": "compareFn", + "text": "callbackfn", "kind": "parameterName" }, { @@ -1507,7 +1755,7 @@ "kind": "punctuation" }, { - "text": "a", + "text": "value", "kind": "parameterName" }, { @@ -1531,7 +1779,31 @@ "kind": "space" }, { - "text": "b", + "text": "index", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": ",", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "array", "kind": "parameterName" }, { @@ -1546,6 +1818,14 @@ "text": "string", "kind": "keyword" }, + { + "text": "[", + "kind": "punctuation" + }, + { + "text": "]", + "kind": "punctuation" + }, { "text": ")", "kind": "punctuation" @@ -1563,7 +1843,7 @@ "kind": "space" }, { - "text": "number", + "text": "void", "kind": "keyword" }, { @@ -1591,7 +1871,7 @@ "kind": "punctuation" }, { - "text": "a", + "text": "value", "kind": "parameterName" }, { @@ -1615,7 +1895,7 @@ "kind": "space" }, { - "text": "b", + "text": "index", "kind": "parameterName" }, { @@ -1631,7 +1911,7 @@ "kind": "keyword" }, { - "text": ")", + "text": ",", "kind": "punctuation" }, { @@ -1639,7 +1919,11 @@ "kind": "space" }, { - "text": "=>", + "text": "array", + "kind": "parameterName" + }, + { + "text": ":", "kind": "punctuation" }, { @@ -1651,7 +1935,11 @@ "kind": "keyword" }, { - "text": ")", + "text": "[", + "kind": "punctuation" + }, + { + "text": "]", "kind": "punctuation" }, { @@ -1659,7 +1947,11 @@ "kind": "punctuation" }, { - "text": ":", + "text": " ", + "kind": "space" + }, + { + "text": "=>", "kind": "punctuation" }, { @@ -1667,15 +1959,15 @@ "kind": "space" }, { - "text": "string", + "text": "void", "kind": "keyword" }, { - "text": "[", + "text": ")", "kind": "punctuation" }, { - "text": "]", + "text": ",", "kind": "punctuation" }, { @@ -1683,7 +1975,11 @@ "kind": "space" }, { - "text": "|", + "text": "thisArg", + "kind": "parameterName" + }, + { + "text": ":", "kind": "punctuation" }, { @@ -1691,21 +1987,29 @@ "kind": "space" }, { - "text": "number", + "text": "any", "kind": "keyword" }, { - "text": "[", + "text": ")", "kind": "punctuation" }, { - "text": "]", + "text": ":", "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" } ], "documentation": [ { - "text": "Sorts an array in place.\r\nThis method mutates the array and returns a reference to the same array.", + "text": "Performs the specified action for each element in an array.", "kind": "text" } ], @@ -1714,7 +2018,7 @@ "name": "param", "text": [ { - "text": "compareFn", + "text": "callbackfn", "kind": "parameterName" }, { @@ -1722,7 +2026,24 @@ "kind": "space" }, { - "text": "Function used to determine the order of the elements. It is expected to return\r\na negative value if the first argument is less than the second argument, zero if they're equal, and a positive\r\nvalue otherwise. If omitted, the elements are sorted in ascending, ASCII character order.\r\n```ts\r\n[11,2,22,1].sort((a, b) => a - b)\r\n```", + "text": "A function that accepts up to three arguments. forEach calls the callbackfn function one time for each element in the array.", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "thisArg", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.", "kind": "text" } ] @@ -1730,7 +2051,7 @@ ] }, { - "name": "splice", + "name": "indexOf", "kind": "method", "kindModifiers": "declare", "sortText": "11", @@ -1772,7 +2093,7 @@ "kind": "punctuation" }, { - "text": "splice", + "text": "indexOf", "kind": "propertyName" }, { @@ -1780,7 +2101,7 @@ "kind": "punctuation" }, { - "text": "start", + "text": "searchElement", "kind": "parameterName" }, { @@ -1792,7 +2113,7 @@ "kind": "space" }, { - "text": "number", + "text": "never", "kind": "keyword" }, { @@ -1804,13 +2125,9 @@ "kind": "space" }, { - "text": "deleteCount", + "text": "fromIndex", "kind": "parameterName" }, - { - "text": "?", - "kind": "punctuation" - }, { "text": ":", "kind": "punctuation" @@ -1835,74 +2152,14 @@ "text": " ", "kind": "space" }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": "[", - "kind": "punctuation" - }, - { - "text": "]", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "|", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, { "text": "number", "kind": "keyword" - }, - { - "text": "[", - "kind": "punctuation" - }, - { - "text": "]", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "+", - "kind": "operator" - }, - { - "text": "2", - "kind": "numericLiteral" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "overloads", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" } ], "documentation": [ { - "text": "Removes elements from an array and, if necessary, inserts new elements in their place, returning the deleted elements.", + "text": "Returns the index of the first occurrence of a value in an array, or -1 if it is not present.", "kind": "text" } ], @@ -1911,7 +2168,7 @@ "name": "param", "text": [ { - "text": "start", + "text": "searchElement", "kind": "parameterName" }, { @@ -1919,7 +2176,7 @@ "kind": "space" }, { - "text": "The zero-based location in the array from which to start removing elements.", + "text": "The value to locate in the array.", "kind": "text" } ] @@ -1928,7 +2185,7 @@ "name": "param", "text": [ { - "text": "deleteCount", + "text": "fromIndex", "kind": "parameterName" }, { @@ -1936,16 +2193,7 @@ "kind": "space" }, { - "text": "The number of elements to remove.", - "kind": "text" - } - ] - }, - { - "name": "returns", - "text": [ - { - "text": "An array containing the elements that were deleted.", + "text": "The array index at which to begin the search. If fromIndex is omitted, the search starts at index 0.", "kind": "text" } ] @@ -1953,7 +2201,7 @@ ] }, { - "name": "unshift", + "name": "join", "kind": "method", "kindModifiers": "declare", "sortText": "11", @@ -1995,7 +2243,7 @@ "kind": "punctuation" }, { - "text": "unshift", + "text": "join", "kind": "propertyName" }, { @@ -2003,9 +2251,13 @@ "kind": "punctuation" }, { - "text": "items", + "text": "separator", "kind": "parameterName" }, + { + "text": "?", + "kind": "punctuation" + }, { "text": ":", "kind": "punctuation" @@ -2015,17 +2267,9 @@ "kind": "space" }, { - "text": "never", + "text": "string", "kind": "keyword" }, - { - "text": "[", - "kind": "punctuation" - }, - { - "text": "]", - "kind": "punctuation" - }, { "text": ")", "kind": "punctuation" @@ -2039,13 +2283,13 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" } ], "documentation": [ { - "text": "Inserts new elements at the start of an array, and returns the new length of the array.", + "text": "Adds all the elements of an array into a string, separated by the specified separator string.", "kind": "text" } ], @@ -2054,7 +2298,7 @@ "name": "param", "text": [ { - "text": "items", + "text": "separator", "kind": "parameterName" }, { @@ -2062,7 +2306,7 @@ "kind": "space" }, { - "text": "Elements to insert at the start of the array.", + "text": "A string used to separate one element of the array from the next in the resulting string. If omitted, the array elements are separated with a comma.", "kind": "text" } ] @@ -2070,7 +2314,7 @@ ] }, { - "name": "indexOf", + "name": "lastIndexOf", "kind": "method", "kindModifiers": "declare", "sortText": "11", @@ -2112,7 +2356,7 @@ "kind": "punctuation" }, { - "text": "indexOf", + "text": "lastIndexOf", "kind": "propertyName" }, { @@ -2178,7 +2422,7 @@ ], "documentation": [ { - "text": "Returns the index of the first occurrence of a value in an array, or -1 if it is not present.", + "text": "Returns the index of the last occurrence of a specified value in an array, or -1 if it is not present.", "kind": "text" } ], @@ -2212,7 +2456,7 @@ "kind": "space" }, { - "text": "The array index at which to begin the search. If fromIndex is omitted, the search starts at index 0.", + "text": "The array index at which to begin searching backward. If fromIndex is omitted, the search starts at the last index in the array.", "kind": "text" } ] @@ -2220,8 +2464,8 @@ ] }, { - "name": "lastIndexOf", - "kind": "method", + "name": "length", + "kind": "property", "kindModifiers": "declare", "sortText": "11", "displayParts": [ @@ -2230,7 +2474,7 @@ "kind": "punctuation" }, { - "text": "method", + "text": "property", "kind": "text" }, { @@ -2262,57 +2506,9 @@ "kind": "punctuation" }, { - "text": "lastIndexOf", + "text": "length", "kind": "propertyName" }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "searchElement", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "never", - "kind": "keyword" - }, - { - "text": ",", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "fromIndex", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, { "text": ":", "kind": "punctuation" @@ -2328,50 +2524,14 @@ ], "documentation": [ { - "text": "Returns the index of the last occurrence of a specified value in an array, or -1 if it is not present.", + "text": "Gets or sets the length of the array. This is a number one higher than the highest index in the array.", "kind": "text" } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "searchElement", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "The value to locate in the array.", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "fromIndex", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "The array index at which to begin searching backward. If fromIndex is omitted, the search starts at the last index in the array.", - "kind": "text" - } - ] - } ] }, { - "name": "every", - "kind": "property", + "name": "map", + "kind": "method", "kindModifiers": "declare", "sortText": "11", "displayParts": [ @@ -2380,7 +2540,7 @@ "kind": "punctuation" }, { - "text": "property", + "text": "method", "kind": "text" }, { @@ -2412,51 +2572,15 @@ "kind": "punctuation" }, { - "text": "every", + "text": "map", "kind": "propertyName" }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "{", - "kind": "punctuation" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": " ", - "kind": "space" - }, { "text": "<", "kind": "punctuation" }, { - "text": "S", - "kind": "typeParameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "extends", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", + "text": "unknown", "kind": "keyword" }, { @@ -2468,7 +2592,7 @@ "kind": "punctuation" }, { - "text": "predicate", + "text": "callbackfn", "kind": "parameterName" }, { @@ -2483,6 +2607,10 @@ "text": "(", "kind": "punctuation" }, + { + "text": "(", + "kind": "punctuation" + }, { "text": "value", "kind": "parameterName" @@ -2572,27 +2700,19 @@ "kind": "space" }, { - "text": "value", - "kind": "text" - }, - { - "text": " ", - "kind": "space" + "text": "unknown", + "kind": "keyword" }, { - "text": "is", - "kind": "keyword" + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "S", - "kind": "typeParameterName" - }, - { - "text": ",", + "text": "&", "kind": "punctuation" }, { @@ -2600,13 +2720,17 @@ "kind": "space" }, { - "text": "thisArg", - "kind": "parameterName" + "text": "(", + "kind": "punctuation" }, { - "text": "?", + "text": "(", "kind": "punctuation" }, + { + "text": "value", + "kind": "parameterName" + }, { "text": ":", "kind": "punctuation" @@ -2616,13 +2740,21 @@ "kind": "space" }, { - "text": "any", + "text": "number", "kind": "keyword" }, { - "text": ")", + "text": ",", "kind": "punctuation" }, + { + "text": " ", + "kind": "space" + }, + { + "text": "index", + "kind": "parameterName" + }, { "text": ":", "kind": "punctuation" @@ -2632,24 +2764,32 @@ "kind": "space" }, { - "text": "this", + "text": "number", "kind": "keyword" }, + { + "text": ",", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "is", - "kind": "keyword" + "text": "array", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "S", - "kind": "typeParameterName" + "text": "number", + "kind": "keyword" }, { "text": "[", @@ -2660,91 +2800,15 @@ "kind": "punctuation" }, { - "text": ";", + "text": ")", "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": " ", + "text": " ", "kind": "space" }, { - "text": "(", - "kind": "punctuation" - }, - { - "text": "predicate", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "value", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": ",", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "index", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": ",", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "array", - "kind": "parameterName" - }, - { - "text": ":", + "text": "=>", "kind": "punctuation" }, { @@ -2752,37 +2816,13 @@ "kind": "space" }, { - "text": "string", + "text": "unknown", "kind": "keyword" }, - { - "text": "[", - "kind": "punctuation" - }, - { - "text": "]", - "kind": "punctuation" - }, { "text": ")", "kind": "punctuation" }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=>", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "unknown", - "kind": "keyword" - }, { "text": ",", "kind": "punctuation" @@ -2795,10 +2835,6 @@ "text": "thisArg", "kind": "parameterName" }, - { - "text": "?", - "kind": "punctuation" - }, { "text": ":", "kind": "punctuation" @@ -2824,65 +2860,21 @@ "kind": "space" }, { - "text": "boolean", + "text": "unknown", "kind": "keyword" }, { - "text": ";", - "kind": "punctuation" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "}", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "|", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "{", - "kind": "punctuation" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "...", - "kind": "propertyName" - }, - { - "text": ";", + "text": "[", "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "}", + "text": "]", "kind": "punctuation" } ], "documentation": [ { - "text": "Determines whether all the members of an array satisfy the specified test.", + "text": "Calls a defined callback function on each element of an array, and returns an array that contains the results.", "kind": "text" } ], @@ -2891,41 +2883,7 @@ "name": "param", "text": [ { - "text": "predicate", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A function that accepts up to three arguments. The every method calls\r\nthe predicate function for each element in the array until the predicate returns a value\r\nwhich is coercible to the Boolean value false, or until the end of the array.", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "thisArg", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "An object to which the this keyword can refer in the predicate function.\r\nIf thisArg is omitted, undefined is used as the this value.", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "predicate", + "text": "callbackfn", "kind": "parameterName" }, { @@ -2933,7 +2891,7 @@ "kind": "space" }, { - "text": "A function that accepts up to three arguments. The every method calls\r\nthe predicate function for each element in the array until the predicate returns a value\r\nwhich is coercible to the Boolean value false, or until the end of the array.", + "text": "A function that accepts up to three arguments. The map method calls the callbackfn function one time for each element in the array.", "kind": "text" } ] @@ -2950,7 +2908,7 @@ "kind": "space" }, { - "text": "An object to which the this keyword can refer in the predicate function.\r\nIf thisArg is omitted, undefined is used as the this value.", + "text": "An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.", "kind": "text" } ] @@ -2958,7 +2916,7 @@ ] }, { - "name": "some", + "name": "pop", "kind": "method", "kindModifiers": "declare", "sortText": "11", @@ -3000,7 +2958,7 @@ "kind": "punctuation" }, { - "text": "some", + "text": "pop", "kind": "propertyName" }, { @@ -3008,8 +2966,8 @@ "kind": "punctuation" }, { - "text": "predicate", - "kind": "parameterName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -3020,19 +2978,15 @@ "kind": "space" }, { - "text": "(", - "kind": "punctuation" - }, - { - "text": "(", - "kind": "punctuation" + "text": "string", + "kind": "keyword" }, { - "text": "value", - "kind": "parameterName" + "text": " ", + "kind": "space" }, { - "text": ":", + "text": "|", "kind": "punctuation" }, { @@ -3040,23 +2994,33 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" - }, + } + ], + "documentation": [ { - "text": ",", - "kind": "punctuation" - }, + "text": "Removes the last element from an array and returns it.\r\nIf the array is empty, undefined is returned and the array is not modified.", + "kind": "text" + } + ] + }, + { + "name": "push", + "kind": "method", + "kindModifiers": "declare", + "sortText": "11", + "displayParts": [ { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "index", - "kind": "parameterName" + "text": "method", + "kind": "text" }, { - "text": ":", + "text": ")", "kind": "punctuation" }, { @@ -3064,19 +3028,35 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "Array", + "kind": "localName" }, { - "text": ",", + "text": "<", "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "T", + "kind": "typeParameterName" }, { - "text": "array", + "text": ">", + "kind": "punctuation" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "push", + "kind": "propertyName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "items", "kind": "parameterName" }, { @@ -3088,7 +3068,7 @@ "kind": "space" }, { - "text": "string", + "text": "never", "kind": "keyword" }, { @@ -3104,11 +3084,7 @@ "kind": "punctuation" }, { - "text": " ", - "kind": "space" - }, - { - "text": "=>", + "text": ":", "kind": "punctuation" }, { @@ -3116,8 +3092,49 @@ "kind": "space" }, { - "text": "unknown", + "text": "number", "kind": "keyword" + } + ], + "documentation": [ + { + "text": "Appends new elements to the end of an array, and returns the new length of the array.", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "items", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "New elements to add to the array.", + "kind": "text" + } + ] + } + ] + }, + { + "name": "reduce", + "kind": "property", + "kindModifiers": "declare", + "sortText": "11", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" }, { "text": ")", @@ -3128,24 +3145,28 @@ "kind": "space" }, { - "text": "&", + "text": "Array", + "kind": "localName" + }, + { + "text": "<", "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "T", + "kind": "typeParameterName" }, { - "text": "(", + "text": ">", "kind": "punctuation" }, { - "text": "(", + "text": ".", "kind": "punctuation" }, { - "text": "value", - "kind": "parameterName" + "text": "reduce", + "kind": "propertyName" }, { "text": ":", @@ -3156,11 +3177,27 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "{", + "kind": "punctuation" }, { - "text": ",", + "text": "\n", + "kind": "lineBreak" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "callbackfn", + "kind": "parameterName" + }, + { + "text": ":", "kind": "punctuation" }, { @@ -3168,7 +3205,11 @@ "kind": "space" }, { - "text": "index", + "text": "(", + "kind": "punctuation" + }, + { + "text": "previousValue", "kind": "parameterName" }, { @@ -3180,7 +3221,7 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" }, { @@ -3192,7 +3233,7 @@ "kind": "space" }, { - "text": "array", + "text": "currentValue", "kind": "parameterName" }, { @@ -3204,19 +3245,11 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" }, { - "text": "[", - "kind": "punctuation" - }, - { - "text": "]", - "kind": "punctuation" - }, - { - "text": ")", + "text": ",", "kind": "punctuation" }, { @@ -3224,7 +3257,11 @@ "kind": "space" }, { - "text": "=>", + "text": "currentIndex", + "kind": "parameterName" + }, + { + "text": ":", "kind": "punctuation" }, { @@ -3232,13 +3269,9 @@ "kind": "space" }, { - "text": "unknown", + "text": "number", "kind": "keyword" }, - { - "text": ")", - "kind": "punctuation" - }, { "text": ",", "kind": "punctuation" @@ -3248,7 +3281,7 @@ "kind": "space" }, { - "text": "thisArg", + "text": "array", "kind": "parameterName" }, { @@ -3260,15 +3293,19 @@ "kind": "space" }, { - "text": "any", + "text": "string", "kind": "keyword" }, { - "text": ")", + "text": "[", "kind": "punctuation" }, { - "text": ":", + "text": "]", + "kind": "punctuation" + }, + { + "text": ")", "kind": "punctuation" }, { @@ -3276,98 +3313,44 @@ "kind": "space" }, { - "text": "boolean", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Determines whether the specified callback function returns true for any element of an array.", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "predicate", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A function that accepts up to three arguments. The some method calls\r\nthe predicate function for each element in the array until the predicate returns a value\r\nwhich is coercible to the Boolean value true, or until the end of the array.", - "kind": "text" - } - ] + "text": "=>", + "kind": "punctuation" }, { - "name": "param", - "text": [ - { - "text": "thisArg", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "An object to which the this keyword can refer in the predicate function.\r\nIf thisArg is omitted, undefined is used as the this value.", - "kind": "text" - } - ] - } - ] - }, - { - "name": "forEach", - "kind": "method", - "kindModifiers": "declare", - "sortText": "11", - "displayParts": [ - { - "text": "(", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": "method", - "kind": "text" + "text": "string", + "kind": "keyword" }, { "text": ")", "kind": "punctuation" }, { - "text": " ", - "kind": "space" - }, - { - "text": "Array", - "kind": "localName" + "text": ":", + "kind": "punctuation" }, { - "text": "<", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": "T", - "kind": "typeParameterName" + "text": "string", + "kind": "keyword" }, { - "text": ">", + "text": ";", "kind": "punctuation" }, { - "text": ".", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": "forEach", - "kind": "propertyName" + "text": " ", + "kind": "space" }, { "text": "(", @@ -3390,11 +3373,7 @@ "kind": "punctuation" }, { - "text": "(", - "kind": "punctuation" - }, - { - "text": "value", + "text": "previousValue", "kind": "parameterName" }, { @@ -3418,7 +3397,7 @@ "kind": "space" }, { - "text": "index", + "text": "currentValue", "kind": "parameterName" }, { @@ -3430,7 +3409,7 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" }, { @@ -3442,99 +3421,7 @@ "kind": "space" }, { - "text": "array", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": "[", - "kind": "punctuation" - }, - { - "text": "]", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=>", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "&", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "value", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": ",", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "index", + "text": "currentIndex", "kind": "parameterName" }, { @@ -3570,7 +3457,7 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" }, { @@ -3598,13 +3485,9 @@ "kind": "space" }, { - "text": "void", + "text": "string", "kind": "keyword" }, - { - "text": ")", - "kind": "punctuation" - }, { "text": ",", "kind": "punctuation" @@ -3614,7 +3497,7 @@ "kind": "space" }, { - "text": "thisArg", + "text": "initialValue", "kind": "parameterName" }, { @@ -3626,7 +3509,7 @@ "kind": "space" }, { - "text": "any", + "text": "string", "kind": "keyword" }, { @@ -3642,85 +3525,27 @@ "kind": "space" }, { - "text": "void", + "text": "string", "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Performs the specified action for each element in an array.", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "callbackfn", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A function that accepts up to three arguments. forEach calls the callbackfn function one time for each element in the array.", - "kind": "text" - } - ] }, { - "name": "param", - "text": [ - { - "text": "thisArg", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.", - "kind": "text" - } - ] - } - ] - }, - { - "name": "map", - "kind": "method", - "kindModifiers": "declare", - "sortText": "11", - "displayParts": [ - { - "text": "(", + "text": ";", "kind": "punctuation" }, { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": " ", + "text": " ", "kind": "space" }, - { - "text": "Array", - "kind": "localName" - }, { "text": "<", "kind": "punctuation" }, { - "text": "T", + "text": "U", "kind": "typeParameterName" }, { @@ -3728,31 +3553,27 @@ "kind": "punctuation" }, { - "text": ".", + "text": "(", "kind": "punctuation" }, { - "text": "map", - "kind": "propertyName" + "text": "callbackfn", + "kind": "parameterName" }, { - "text": "<", + "text": ":", "kind": "punctuation" }, { - "text": "unknown", - "kind": "keyword" - }, - { - "text": ">", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { "text": "(", "kind": "punctuation" }, { - "text": "callbackfn", + "text": "previousValue", "kind": "parameterName" }, { @@ -3764,15 +3585,19 @@ "kind": "space" }, { - "text": "(", - "kind": "punctuation" + "text": "U", + "kind": "typeParameterName" }, { - "text": "(", + "text": ",", "kind": "punctuation" }, { - "text": "value", + "text": " ", + "kind": "space" + }, + { + "text": "currentValue", "kind": "parameterName" }, { @@ -3796,7 +3621,7 @@ "kind": "space" }, { - "text": "index", + "text": "currentIndex", "kind": "parameterName" }, { @@ -3860,11 +3685,11 @@ "kind": "space" }, { - "text": "unknown", - "kind": "keyword" + "text": "U", + "kind": "typeParameterName" }, { - "text": ")", + "text": ",", "kind": "punctuation" }, { @@ -3872,7 +3697,11 @@ "kind": "space" }, { - "text": "&", + "text": "initialValue", + "kind": "parameterName" + }, + { + "text": ":", "kind": "punctuation" }, { @@ -3880,17 +3709,13 @@ "kind": "space" }, { - "text": "(", - "kind": "punctuation" + "text": "U", + "kind": "typeParameterName" }, { - "text": "(", + "text": ")", "kind": "punctuation" }, - { - "text": "value", - "kind": "parameterName" - }, { "text": ":", "kind": "punctuation" @@ -3900,23 +3725,19 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "U", + "kind": "typeParameterName" }, { - "text": ",", + "text": ";", "kind": "punctuation" }, { - "text": " ", - "kind": "space" - }, - { - "text": "index", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", + "text": "}", "kind": "punctuation" }, { @@ -3924,11 +3745,7 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" - }, - { - "text": ",", + "text": "|", "kind": "punctuation" }, { @@ -3936,105 +3753,37 @@ "kind": "space" }, { - "text": "array", - "kind": "parameterName" + "text": "{", + "kind": "punctuation" }, { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": "[", - "kind": "punctuation" - }, - { - "text": "]", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=>", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "unknown", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ",", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "thisArg", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": " ", + "text": " ", "kind": "space" }, { - "text": "any", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "...", + "kind": "propertyName" }, { - "text": ":", + "text": ";", "kind": "punctuation" }, { - "text": " ", - "kind": "space" - }, - { - "text": "unknown", - "kind": "keyword" - }, - { - "text": "[", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": "]", + "text": "}", "kind": "punctuation" } ], "documentation": [ { - "text": "Calls a defined callback function on each element of an array, and returns an array that contains the results.", + "text": "Calls the specified callback function for all the elements in an array. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.", "kind": "text" } ], @@ -4051,7 +3800,7 @@ "kind": "space" }, { - "text": "A function that accepts up to three arguments. The map method calls the callbackfn function one time for each element in the array.", + "text": "A function that accepts up to four arguments. The reduce method calls the callbackfn function one time for each element in the array.", "kind": "text" } ] @@ -4060,7 +3809,7 @@ "name": "param", "text": [ { - "text": "thisArg", + "text": "initialValue", "kind": "parameterName" }, { @@ -4068,7 +3817,41 @@ "kind": "space" }, { - "text": "An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.", + "text": "If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "callbackfn", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A function that accepts up to four arguments. The reduce method calls the callbackfn function one time for each element in the array.", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "initialValue", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.", "kind": "text" } ] @@ -4076,7 +3859,7 @@ ] }, { - "name": "filter", + "name": "reduceRight", "kind": "property", "kindModifiers": "declare", "sortText": "11", @@ -4118,7 +3901,7 @@ "kind": "punctuation" }, { - "text": "filter", + "text": "reduceRight", "kind": "propertyName" }, { @@ -4142,39 +3925,27 @@ "kind": "space" }, { - "text": "<", + "text": "(", "kind": "punctuation" }, { - "text": "S", - "kind": "typeParameterName" - }, - { - "text": " ", - "kind": "space" + "text": "callbackfn", + "kind": "parameterName" }, { - "text": "extends", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": ">", - "kind": "punctuation" - }, { "text": "(", "kind": "punctuation" }, { - "text": "predicate", + "text": "previousValue", "kind": "parameterName" }, { @@ -4186,11 +3957,19 @@ "kind": "space" }, { - "text": "(", + "text": "string", + "kind": "keyword" + }, + { + "text": ",", "kind": "punctuation" }, { - "text": "value", + "text": " ", + "kind": "space" + }, + { + "text": "currentValue", "kind": "parameterName" }, { @@ -4214,7 +3993,7 @@ "kind": "space" }, { - "text": "index", + "text": "currentIndex", "kind": "parameterName" }, { @@ -4278,39 +4057,11 @@ "kind": "space" }, { - "text": "value", - "kind": "text" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "is", + "text": "string", "kind": "keyword" }, { - "text": " ", - "kind": "space" - }, - { - "text": "S", - "kind": "typeParameterName" - }, - { - "text": ",", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "thisArg", - "kind": "parameterName" - }, - { - "text": "?", + "text": ")", "kind": "punctuation" }, { @@ -4322,43 +4073,35 @@ "kind": "space" }, { - "text": "any", + "text": "string", "kind": "keyword" }, { - "text": ")", + "text": ";", "kind": "punctuation" }, { - "text": ":", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": " ", + "text": " ", "kind": "space" }, { - "text": "S", - "kind": "typeParameterName" - }, - { - "text": "[", + "text": "(", "kind": "punctuation" }, { - "text": "]", - "kind": "punctuation" + "text": "callbackfn", + "kind": "parameterName" }, { - "text": ";", + "text": ":", "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": " ", + "text": " ", "kind": "space" }, { @@ -4366,7 +4109,7 @@ "kind": "punctuation" }, { - "text": "predicate", + "text": "previousValue", "kind": "parameterName" }, { @@ -4378,11 +4121,19 @@ "kind": "space" }, { - "text": "(", + "text": "string", + "kind": "keyword" + }, + { + "text": ",", "kind": "punctuation" }, { - "text": "value", + "text": " ", + "kind": "space" + }, + { + "text": "currentValue", "kind": "parameterName" }, { @@ -4406,7 +4157,7 @@ "kind": "space" }, { - "text": "index", + "text": "currentIndex", "kind": "parameterName" }, { @@ -4470,7 +4221,7 @@ "kind": "space" }, { - "text": "unknown", + "text": "string", "kind": "keyword" }, { @@ -4482,13 +4233,9 @@ "kind": "space" }, { - "text": "thisArg", + "text": "initialValue", "kind": "parameterName" }, - { - "text": "?", - "kind": "punctuation" - }, { "text": ":", "kind": "punctuation" @@ -4498,7 +4245,7 @@ "kind": "space" }, { - "text": "any", + "text": "string", "kind": "keyword" }, { @@ -4517,14 +4264,6 @@ "text": "string", "kind": "keyword" }, - { - "text": "[", - "kind": "punctuation" - }, - { - "text": "]", - "kind": "punctuation" - }, { "text": ";", "kind": "punctuation" @@ -4533,194 +4272,22 @@ "text": "\n", "kind": "lineBreak" }, - { - "text": "}", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "|", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "{", - "kind": "punctuation" - }, - { - "text": "\n", - "kind": "lineBreak" - }, { "text": " ", "kind": "space" }, - { - "text": "...", - "kind": "propertyName" - }, - { - "text": ";", - "kind": "punctuation" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "}", - "kind": "punctuation" - } - ], - "documentation": [ - { - "text": "Returns the elements of an array that meet the condition specified in a callback function.", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "predicate", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A function that accepts up to three arguments. The filter method calls the predicate function one time for each element in the array.", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "thisArg", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "An object to which the this keyword can refer in the predicate function. If thisArg is omitted, undefined is used as the this value.", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "predicate", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A function that accepts up to three arguments. The filter method calls the predicate function one time for each element in the array.", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "thisArg", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "An object to which the this keyword can refer in the predicate function. If thisArg is omitted, undefined is used as the this value.", - "kind": "text" - } - ] - } - ] - }, - { - "name": "reduce", - "kind": "property", - "kindModifiers": "declare", - "sortText": "11", - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Array", - "kind": "localName" - }, { "text": "<", "kind": "punctuation" }, { - "text": "T", + "text": "U", "kind": "typeParameterName" }, { "text": ">", "kind": "punctuation" }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "reduce", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "{", - "kind": "punctuation" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": " ", - "kind": "space" - }, { "text": "(", "kind": "punctuation" @@ -4754,8 +4321,8 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "U", + "kind": "typeParameterName" }, { "text": ",", @@ -4854,15 +4421,11 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "U", + "kind": "typeParameterName" }, { - "text": ":", + "text": ",", "kind": "punctuation" }, { @@ -4870,28 +4433,24 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "initialValue", + "kind": "parameterName" }, { - "text": ";", + "text": ":", "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": " ", + "text": " ", "kind": "space" }, { - "text": "(", - "kind": "punctuation" + "text": "U", + "kind": "typeParameterName" }, { - "text": "callbackfn", - "kind": "parameterName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -4902,15 +4461,19 @@ "kind": "space" }, { - "text": "(", + "text": "U", + "kind": "typeParameterName" + }, + { + "text": ";", "kind": "punctuation" }, { - "text": "previousValue", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", + "text": "}", "kind": "punctuation" }, { @@ -4918,11 +4481,7 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" - }, - { - "text": ",", + "text": "|", "kind": "punctuation" }, { @@ -4930,33 +4489,165 @@ "kind": "space" }, { - "text": "currentValue", - "kind": "parameterName" + "text": "{", + "kind": "punctuation" }, { - "text": ":", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": " ", + "text": " ", "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "...", + "kind": "propertyName" }, { - "text": ",", + "text": ";", "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, { - "text": "currentIndex", - "kind": "parameterName" - }, + "text": "}", + "kind": "punctuation" + } + ], + "documentation": [ + { + "text": "Calls the specified callback function for all the elements in an array, in descending order. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "callbackfn", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A function that accepts up to four arguments. The reduceRight method calls the callbackfn function one time for each element in the array.", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "initialValue", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "callbackfn", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A function that accepts up to four arguments. The reduceRight method calls the callbackfn function one time for each element in the array.", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "initialValue", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.", + "kind": "text" + } + ] + } + ] + }, + { + "name": "reverse", + "kind": "method", + "kindModifiers": "declare", + "sortText": "11", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Array", + "kind": "localName" + }, + { + "text": "<", + "kind": "punctuation" + }, + { + "text": "T", + "kind": "typeParameterName" + }, + { + "text": ">", + "kind": "punctuation" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "reverse", + "kind": "propertyName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, { "text": ":", "kind": "punctuation" @@ -4965,12 +4656,66 @@ "text": " ", "kind": "space" }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": "[", + "kind": "punctuation" + }, + { + "text": "]", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "|", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, { "text": "number", "kind": "keyword" }, { - "text": ",", + "text": "[", + "kind": "punctuation" + }, + { + "text": "]", + "kind": "punctuation" + } + ], + "documentation": [ + { + "text": "Reverses the elements in an array in place.\r\nThis method mutates the array and returns a reference to the same array.", + "kind": "text" + } + ] + }, + { + "name": "shift", + "kind": "method", + "kindModifiers": "declare", + "sortText": "11", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", "kind": "punctuation" }, { @@ -4978,8 +4723,36 @@ "kind": "space" }, { - "text": "array", - "kind": "parameterName" + "text": "Array", + "kind": "localName" + }, + { + "text": "<", + "kind": "punctuation" + }, + { + "text": "T", + "kind": "typeParameterName" + }, + { + "text": ">", + "kind": "punctuation" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "shift", + "kind": "propertyName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -4994,13 +4767,43 @@ "kind": "keyword" }, { - "text": "[", + "text": " ", + "kind": "space" + }, + { + "text": "|", "kind": "punctuation" }, { - "text": "]", + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } + ], + "documentation": [ + { + "text": "Removes the first element from an array and returns it.\r\nIf the array is empty, undefined is returned and the array is not modified.", + "kind": "text" + } + ] + }, + { + "name": "slice", + "kind": "method", + "kindModifiers": "declare", + "sortText": "11", + "displayParts": [ + { + "text": "(", "kind": "punctuation" }, + { + "text": "method", + "kind": "text" + }, { "text": ")", "kind": "punctuation" @@ -5010,7 +4813,43 @@ "kind": "space" }, { - "text": "=>", + "text": "Array", + "kind": "localName" + }, + { + "text": "<", + "kind": "punctuation" + }, + { + "text": "T", + "kind": "typeParameterName" + }, + { + "text": ">", + "kind": "punctuation" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "slice", + "kind": "propertyName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "start", + "kind": "parameterName" + }, + { + "text": "?", + "kind": "punctuation" + }, + { + "text": ":", "kind": "punctuation" }, { @@ -5018,7 +4857,7 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" }, { @@ -5030,9 +4869,13 @@ "kind": "space" }, { - "text": "initialValue", + "text": "end", "kind": "parameterName" }, + { + "text": "?", + "kind": "punctuation" + }, { "text": ":", "kind": "punctuation" @@ -5042,7 +4885,7 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" }, { @@ -5062,35 +4905,133 @@ "kind": "keyword" }, { - "text": ";", + "text": "[", "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": "]", + "kind": "punctuation" }, { - "text": " ", + "text": " ", "kind": "space" }, + { + "text": "|", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": "[", + "kind": "punctuation" + }, + { + "text": "]", + "kind": "punctuation" + } + ], + "documentation": [ + { + "text": "Returns a copy of a section of an array.\r\nFor both start and end, a negative index can be used to indicate an offset from the end of the array.\r\nFor example, -2 refers to the second to last element of the array.", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "start", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "The beginning index of the specified portion of the array.\r\nIf start is undefined, then the slice begins at index 0.", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "end", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "The end index of the specified portion of the array. This is exclusive of the element at the index 'end'.\r\nIf end is undefined, then the slice extends to the end of the array.", + "kind": "text" + } + ] + } + ] + }, + { + "name": "some", + "kind": "method", + "kindModifiers": "declare", + "sortText": "11", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Array", + "kind": "localName" + }, { "text": "<", "kind": "punctuation" }, { - "text": "U", + "text": "T", "kind": "typeParameterName" }, { - "text": ">", - "kind": "punctuation" + "text": ">", + "kind": "punctuation" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "some", + "kind": "propertyName" }, { "text": "(", "kind": "punctuation" }, { - "text": "callbackfn", + "text": "predicate", "kind": "parameterName" }, { @@ -5106,7 +5047,11 @@ "kind": "punctuation" }, { - "text": "previousValue", + "text": "(", + "kind": "punctuation" + }, + { + "text": "value", "kind": "parameterName" }, { @@ -5118,8 +5063,8 @@ "kind": "space" }, { - "text": "U", - "kind": "typeParameterName" + "text": "string", + "kind": "keyword" }, { "text": ",", @@ -5130,7 +5075,7 @@ "kind": "space" }, { - "text": "currentValue", + "text": "index", "kind": "parameterName" }, { @@ -5142,7 +5087,7 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" }, { @@ -5154,7 +5099,7 @@ "kind": "space" }, { - "text": "currentIndex", + "text": "array", "kind": "parameterName" }, { @@ -5166,23 +5111,27 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" }, { - "text": ",", + "text": "[", "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "]", + "kind": "punctuation" }, { - "text": "array", - "kind": "parameterName" + "text": ")", + "kind": "punctuation" }, { - "text": ":", + "text": " ", + "kind": "space" + }, + { + "text": "=>", "kind": "punctuation" }, { @@ -5190,19 +5139,19 @@ "kind": "space" }, { - "text": "string", + "text": "unknown", "kind": "keyword" }, { - "text": "[", + "text": ")", "kind": "punctuation" }, { - "text": "]", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": ")", + "text": "&", "kind": "punctuation" }, { @@ -5210,7 +5159,19 @@ "kind": "space" }, { - "text": "=>", + "text": "(", + "kind": "punctuation" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "value", + "kind": "parameterName" + }, + { + "text": ":", "kind": "punctuation" }, { @@ -5218,8 +5179,8 @@ "kind": "space" }, { - "text": "U", - "kind": "typeParameterName" + "text": "number", + "kind": "keyword" }, { "text": ",", @@ -5230,7 +5191,7 @@ "kind": "space" }, { - "text": "initialValue", + "text": "index", "kind": "parameterName" }, { @@ -5242,13 +5203,21 @@ "kind": "space" }, { - "text": "U", - "kind": "typeParameterName" + "text": "number", + "kind": "keyword" }, { - "text": ")", + "text": ",", "kind": "punctuation" }, + { + "text": " ", + "kind": "space" + }, + { + "text": "array", + "kind": "parameterName" + }, { "text": ":", "kind": "punctuation" @@ -5258,19 +5227,19 @@ "kind": "space" }, { - "text": "U", - "kind": "typeParameterName" + "text": "number", + "kind": "keyword" }, { - "text": ";", + "text": "[", "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": "]", + "kind": "punctuation" }, { - "text": "}", + "text": ")", "kind": "punctuation" }, { @@ -5278,7 +5247,7 @@ "kind": "space" }, { - "text": "|", + "text": "=>", "kind": "punctuation" }, { @@ -5286,37 +5255,57 @@ "kind": "space" }, { - "text": "{", + "text": "unknown", + "kind": "keyword" + }, + { + "text": ")", "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": ",", + "kind": "punctuation" }, { - "text": " ", + "text": " ", "kind": "space" }, { - "text": "...", - "kind": "propertyName" + "text": "thisArg", + "kind": "parameterName" }, { - "text": ";", + "text": ":", "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": " ", + "kind": "space" }, { - "text": "}", + "text": "any", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "boolean", + "kind": "keyword" } ], "documentation": [ { - "text": "Calls the specified callback function for all the elements in an array. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.", + "text": "Determines whether the specified callback function returns true for any element of an array.", "kind": "text" } ], @@ -5325,41 +5314,7 @@ "name": "param", "text": [ { - "text": "callbackfn", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A function that accepts up to four arguments. The reduce method calls the callbackfn function one time for each element in the array.", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "initialValue", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "callbackfn", + "text": "predicate", "kind": "parameterName" }, { @@ -5367,7 +5322,7 @@ "kind": "space" }, { - "text": "A function that accepts up to four arguments. The reduce method calls the callbackfn function one time for each element in the array.", + "text": "A function that accepts up to three arguments. The some method calls\r\nthe predicate function for each element in the array until the predicate returns a value\r\nwhich is coercible to the Boolean value true, or until the end of the array.", "kind": "text" } ] @@ -5376,7 +5331,7 @@ "name": "param", "text": [ { - "text": "initialValue", + "text": "thisArg", "kind": "parameterName" }, { @@ -5384,7 +5339,7 @@ "kind": "space" }, { - "text": "If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.", + "text": "An object to which the this keyword can refer in the predicate function.\r\nIf thisArg is omitted, undefined is used as the this value.", "kind": "text" } ] @@ -5392,8 +5347,8 @@ ] }, { - "name": "reduceRight", - "kind": "property", + "name": "sort", + "kind": "method", "kindModifiers": "declare", "sortText": "11", "displayParts": [ @@ -5402,7 +5357,7 @@ "kind": "punctuation" }, { - "text": "property", + "text": "method", "kind": "text" }, { @@ -5434,9 +5389,17 @@ "kind": "punctuation" }, { - "text": "reduceRight", + "text": "sort", "kind": "propertyName" }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "compareFn", + "kind": "parameterName" + }, { "text": ":", "kind": "punctuation" @@ -5446,27 +5409,83 @@ "kind": "space" }, { - "text": "{", + "text": "(", "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" + }, + { + "text": "a", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": ",", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "b", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" }, { - "text": " ", + "text": " ", "kind": "space" }, { - "text": "(", + "text": "number", + "kind": "keyword" + }, + { + "text": ")", "kind": "punctuation" }, { - "text": "callbackfn", - "kind": "parameterName" + "text": " ", + "kind": "space" }, { - "text": ":", + "text": "&", "kind": "punctuation" }, { @@ -5478,7 +5497,11 @@ "kind": "punctuation" }, { - "text": "previousValue", + "text": "(", + "kind": "punctuation" + }, + { + "text": "a", "kind": "parameterName" }, { @@ -5490,7 +5513,7 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" }, { @@ -5502,7 +5525,7 @@ "kind": "space" }, { - "text": "currentValue", + "text": "b", "kind": "parameterName" }, { @@ -5514,11 +5537,11 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" }, { - "text": ",", + "text": ")", "kind": "punctuation" }, { @@ -5526,11 +5549,7 @@ "kind": "space" }, { - "text": "currentIndex", - "kind": "parameterName" - }, - { - "text": ":", + "text": "=>", "kind": "punctuation" }, { @@ -5542,16 +5561,12 @@ "kind": "keyword" }, { - "text": ",", + "text": ")", "kind": "punctuation" }, { - "text": " ", - "kind": "space" - }, - { - "text": "array", - "kind": "parameterName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -5573,16 +5588,12 @@ "text": "]", "kind": "punctuation" }, - { - "text": ")", - "kind": "punctuation" - }, { "text": " ", "kind": "space" }, { - "text": "=>", + "text": "|", "kind": "punctuation" }, { @@ -5590,47 +5601,60 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" }, { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", + "text": "[", "kind": "punctuation" }, { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": ";", + "text": "]", "kind": "punctuation" - }, + } + ], + "documentation": [ { - "text": "\n", - "kind": "lineBreak" - }, + "text": "Sorts an array in place.\r\nThis method mutates the array and returns a reference to the same array.", + "kind": "text" + } + ], + "tags": [ { - "text": " ", - "kind": "space" - }, + "name": "param", + "text": [ + { + "text": "compareFn", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Function used to determine the order of the elements. It is expected to return\r\na negative value if the first argument is less than the second argument, zero if they're equal, and a positive\r\nvalue otherwise. If omitted, the elements are sorted in ascending, ASCII character order.\r\n```ts\r\n[11,2,22,1].sort((a, b) => a - b)\r\n```", + "kind": "text" + } + ] + } + ] + }, + { + "name": "splice", + "kind": "method", + "kindModifiers": "declare", + "sortText": "11", + "displayParts": [ { "text": "(", "kind": "punctuation" }, { - "text": "callbackfn", - "kind": "parameterName" + "text": "method", + "kind": "text" }, { - "text": ":", + "text": ")", "kind": "punctuation" }, { @@ -5638,35 +5662,35 @@ "kind": "space" }, { - "text": "(", + "text": "Array", + "kind": "localName" + }, + { + "text": "<", "kind": "punctuation" }, { - "text": "previousValue", - "kind": "parameterName" + "text": "T", + "kind": "typeParameterName" }, { - "text": ":", + "text": ">", "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": ".", + "kind": "punctuation" }, { - "text": "string", - "kind": "keyword" + "text": "splice", + "kind": "propertyName" }, { - "text": ",", + "text": "(", "kind": "punctuation" }, { - "text": " ", - "kind": "space" - }, - { - "text": "currentValue", + "text": "start", "kind": "parameterName" }, { @@ -5678,7 +5702,7 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" }, { @@ -5690,9 +5714,13 @@ "kind": "space" }, { - "text": "currentIndex", + "text": "deleteCount", "kind": "parameterName" }, + { + "text": "?", + "kind": "punctuation" + }, { "text": ":", "kind": "punctuation" @@ -5706,17 +5734,9 @@ "kind": "keyword" }, { - "text": ",", + "text": ")", "kind": "punctuation" }, - { - "text": " ", - "kind": "space" - }, - { - "text": "array", - "kind": "parameterName" - }, { "text": ":", "kind": "punctuation" @@ -5737,16 +5757,12 @@ "text": "]", "kind": "punctuation" }, - { - "text": ")", - "kind": "punctuation" - }, { "text": " ", "kind": "space" }, { - "text": "=>", + "text": "|", "kind": "punctuation" }, { @@ -5754,11 +5770,15 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" }, { - "text": ",", + "text": "[", + "kind": "punctuation" + }, + { + "text": "]", "kind": "punctuation" }, { @@ -5766,55 +5786,114 @@ "kind": "space" }, { - "text": "initialValue", - "kind": "parameterName" + "text": "(", + "kind": "punctuation" }, { - "text": ":", - "kind": "punctuation" + "text": "+", + "kind": "operator" + }, + { + "text": "2", + "kind": "numericLiteral" }, { "text": " ", "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "overloads", + "kind": "text" }, { "text": ")", "kind": "punctuation" + } + ], + "documentation": [ + { + "text": "Removes elements from an array and, if necessary, inserts new elements in their place, returning the deleted elements.", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "start", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "The zero-based location in the array from which to start removing elements.", + "kind": "text" + } + ] }, { - "text": ":", - "kind": "punctuation" + "name": "param", + "text": [ + { + "text": "deleteCount", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "The number of elements to remove.", + "kind": "text" + } + ] }, { - "text": " ", - "kind": "space" + "name": "returns", + "text": [ + { + "text": "An array containing the elements that were deleted.", + "kind": "text" + } + ] + } + ] + }, + { + "name": "toLocaleString", + "kind": "method", + "kindModifiers": "declare", + "sortText": "11", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" }, { - "text": "string", - "kind": "keyword" + "text": "method", + "kind": "text" }, { - "text": ";", + "text": ")", "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": " ", + "kind": "space" }, { - "text": " ", - "kind": "space" + "text": "Array", + "kind": "localName" }, { "text": "<", "kind": "punctuation" }, { - "text": "U", + "text": "T", "kind": "typeParameterName" }, { @@ -5822,28 +5901,20 @@ "kind": "punctuation" }, { - "text": "(", - "kind": "punctuation" - }, - { - "text": "callbackfn", - "kind": "parameterName" - }, - { - "text": ":", + "text": ".", "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "toLocaleString", + "kind": "propertyName" }, { "text": "(", "kind": "punctuation" }, { - "text": "previousValue", - "kind": "parameterName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -5854,23 +5925,33 @@ "kind": "space" }, { - "text": "U", - "kind": "typeParameterName" - }, + "text": "string", + "kind": "keyword" + } + ], + "documentation": [ { - "text": ",", - "kind": "punctuation" - }, + "text": "Returns a string representation of an array. The elements are converted to string using their toLocaleString methods.", + "kind": "text" + } + ] + }, + { + "name": "toString", + "kind": "method", + "kindModifiers": "declare", + "sortText": "11", + "displayParts": [ { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "currentValue", - "kind": "parameterName" + "text": "method", + "kind": "text" }, { - "text": ":", + "text": ")", "kind": "punctuation" }, { @@ -5878,44 +5959,36 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "Array", + "kind": "localName" }, { - "text": ",", + "text": "<", "kind": "punctuation" }, { - "text": " ", - "kind": "space" - }, - { - "text": "currentIndex", - "kind": "parameterName" + "text": "T", + "kind": "typeParameterName" }, { - "text": ":", + "text": ">", "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": ".", + "kind": "punctuation" }, { - "text": "number", - "kind": "keyword" + "text": "toString", + "kind": "propertyName" }, { - "text": ",", + "text": "(", "kind": "punctuation" }, { - "text": " ", - "kind": "space" - }, - { - "text": "array", - "kind": "parameterName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -5928,14 +6001,28 @@ { "text": "string", "kind": "keyword" - }, + } + ], + "documentation": [ { - "text": "[", + "text": "Returns a string representation of an array.", + "kind": "text" + } + ] + }, + { + "name": "unshift", + "kind": "method", + "kindModifiers": "declare", + "sortText": "11", + "displayParts": [ + { + "text": "(", "kind": "punctuation" }, { - "text": "]", - "kind": "punctuation" + "text": "method", + "kind": "text" }, { "text": ")", @@ -5946,44 +6033,36 @@ "kind": "space" }, { - "text": "=>", - "kind": "punctuation" + "text": "Array", + "kind": "localName" }, { - "text": " ", - "kind": "space" + "text": "<", + "kind": "punctuation" }, { - "text": "U", + "text": "T", "kind": "typeParameterName" }, { - "text": ",", + "text": ">", "kind": "punctuation" }, { - "text": " ", - "kind": "space" - }, - { - "text": "initialValue", - "kind": "parameterName" - }, - { - "text": ":", + "text": ".", "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "unshift", + "kind": "propertyName" }, { - "text": "U", - "kind": "typeParameterName" + "text": "(", + "kind": "punctuation" }, { - "text": ")", - "kind": "punctuation" + "text": "items", + "kind": "parameterName" }, { "text": ":", @@ -5994,65 +6073,37 @@ "kind": "space" }, { - "text": "U", - "kind": "typeParameterName" + "text": "never", + "kind": "keyword" }, { - "text": ";", + "text": "[", "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "}", + "text": "]", "kind": "punctuation" }, { - "text": " ", - "kind": "space" - }, - { - "text": "|", + "text": ")", "kind": "punctuation" }, { - "text": " ", - "kind": "space" - }, - { - "text": "{", + "text": ":", "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": " ", + "text": " ", "kind": "space" }, { - "text": "...", - "kind": "propertyName" - }, - { - "text": ";", - "kind": "punctuation" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "}", - "kind": "punctuation" + "text": "number", + "kind": "keyword" } ], "documentation": [ { - "text": "Calls the specified callback function for all the elements in an array, in descending order. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.", + "text": "Inserts new elements at the start of an array, and returns the new length of the array.", "kind": "text" } ], @@ -6061,58 +6112,7 @@ "name": "param", "text": [ { - "text": "callbackfn", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A function that accepts up to four arguments. The reduceRight method calls the callbackfn function one time for each element in the array.", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "initialValue", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "callbackfn", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A function that accepts up to four arguments. The reduceRight method calls the callbackfn function one time for each element in the array.", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "initialValue", + "text": "items", "kind": "parameterName" }, { @@ -6120,7 +6120,7 @@ "kind": "space" }, { - "text": "If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.", + "text": "Elements to insert at the start of the array.", "kind": "text" } ] diff --git a/tests/baselines/reference/completionsCommentsClass.baseline b/tests/baselines/reference/completionsCommentsClass.baseline index f6625952f041c..66766ee70bef1 100644 --- a/tests/baselines/reference/completionsCommentsClass.baseline +++ b/tests/baselines/reference/completionsCommentsClass.baseline @@ -11,13 +11,13 @@ "isNewIdentifierLocation": false, "entries": [ { - "name": "globalThis", - "kind": "module", + "name": "a", + "kind": "class", "kindModifiers": "", - "sortText": "15", + "sortText": "11", "displayParts": [ { - "text": "module", + "text": "class", "kind": "keyword" }, { @@ -25,20 +25,20 @@ "kind": "space" }, { - "text": "globalThis", - "kind": "moduleName" + "text": "a", + "kind": "className" } ], "documentation": [] }, { - "name": "eval", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "name": "c2", + "kind": "class", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "function", + "text": "class", "kind": "keyword" }, { @@ -46,80 +46,124 @@ "kind": "space" }, { - "text": "eval", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, + "text": "c2", + "kind": "className" + } + ], + "documentation": [ { - "text": "x", - "kind": "parameterName" - }, + "text": "This is class c2 without constructor", + "kind": "text" + } + ] + }, + { + "name": "c3", + "kind": "class", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { - "text": ":", - "kind": "punctuation" + "text": "class", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "string", + "text": "c3", + "kind": "className" + } + ], + "documentation": [] + }, + { + "name": "c4", + "kind": "class", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "class", "kind": "keyword" }, { - "text": ")", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": ":", - "kind": "punctuation" + "text": "c4", + "kind": "className" + } + ], + "documentation": [ + { + "text": "Class comment", + "kind": "text" + } + ] + }, + { + "name": "c5", + "kind": "class", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "class", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "any", - "kind": "keyword" + "text": "c5", + "kind": "className" } ], "documentation": [ { - "text": "Evaluates JavaScript code and executes it.", + "text": "Class with statics", "kind": "text" } + ] + }, + { + "name": "c6", + "kind": "class", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "c6", + "kind": "className" + } ], - "tags": [ + "documentation": [ { - "name": "param", - "text": [ - { - "text": "x", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A String value that contains valid JavaScript code.", - "kind": "text" - } - ] + "text": "class with statics and constructor", + "kind": "text" } ] }, { - "name": "parseInt", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "name": "i2", + "kind": "var", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "function", + "text": "var", "kind": "keyword" }, { @@ -127,31 +171,44 @@ "kind": "space" }, { - "text": "parseInt", - "kind": "functionName" + "text": "i2", + "kind": "localName" }, { - "text": "(", + "text": ":", "kind": "punctuation" }, { - "text": "string", - "kind": "parameterName" + "text": " ", + "kind": "space" }, { - "text": ":", - "kind": "punctuation" + "text": "c2", + "kind": "className" + } + ], + "documentation": [] + }, + { + "name": "i2_c", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "i2_c", + "kind": "localName" }, { - "text": ",", + "text": ":", "kind": "punctuation" }, { @@ -159,12 +216,37 @@ "kind": "space" }, { - "text": "radix", - "kind": "parameterName" + "text": "typeof", + "kind": "keyword" }, { - "text": "?", - "kind": "punctuation" + "text": " ", + "kind": "space" + }, + { + "text": "c2", + "kind": "className" + } + ], + "documentation": [] + }, + { + "name": "i3", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "i3", + "kind": "localName" }, { "text": ":", @@ -175,12 +257,29 @@ "kind": "space" }, { - "text": "number", + "text": "c3", + "kind": "className" + } + ], + "documentation": [] + }, + { + "name": "i3_c", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "var", "kind": "keyword" }, { - "text": ")", - "kind": "punctuation" + "text": " ", + "kind": "space" + }, + { + "text": "i3_c", + "kind": "localName" }, { "text": ":", @@ -191,61 +290,28 @@ "kind": "space" }, { - "text": "number", + "text": "typeof", "kind": "keyword" - } - ], - "documentation": [ + }, { - "text": "Converts a string to an integer.", - "kind": "text" + "text": " ", + "kind": "space" + }, + { + "text": "c3", + "kind": "className" } ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string to convert into a number.", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "radix", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value between 2 and 36 that specifies the base of the number in `string`.\r\nIf this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal.\r\nAll other strings are considered decimal.", - "kind": "text" - } - ] - } - ] + "documentation": [] }, { - "name": "parseFloat", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "name": "i4", + "kind": "var", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "function", + "text": "var", "kind": "keyword" }, { @@ -253,16 +319,8 @@ "kind": "space" }, { - "text": "parseFloat", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "string", - "kind": "parameterName" + "text": "i4", + "kind": "localName" }, { "text": ":", @@ -273,12 +331,29 @@ "kind": "space" }, { - "text": "string", + "text": "c4", + "kind": "className" + } + ], + "documentation": [] + }, + { + "name": "i4_c", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "var", "kind": "keyword" }, { - "text": ")", - "kind": "punctuation" + "text": " ", + "kind": "space" + }, + { + "text": "i4_c", + "kind": "localName" }, { "text": ":", @@ -289,44 +364,28 @@ "kind": "space" }, { - "text": "number", + "text": "typeof", "kind": "keyword" - } - ], - "documentation": [ + }, { - "text": "Converts a string to a floating-point number.", - "kind": "text" - } - ], - "tags": [ + "text": " ", + "kind": "space" + }, { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string that contains a floating-point number.", - "kind": "text" - } - ] + "text": "c4", + "kind": "className" } - ] + ], + "documentation": [] }, { - "name": "isNaN", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "name": "i5", + "kind": "var", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "function", + "text": "var", "kind": "keyword" }, { @@ -334,16 +393,8 @@ "kind": "space" }, { - "text": "isNaN", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "number", - "kind": "parameterName" + "text": "i5", + "kind": "localName" }, { "text": ":", @@ -354,12 +405,29 @@ "kind": "space" }, { - "text": "number", + "text": "c5", + "kind": "className" + } + ], + "documentation": [] + }, + { + "name": "i5_c", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "var", "kind": "keyword" }, { - "text": ")", - "kind": "punctuation" + "text": " ", + "kind": "space" + }, + { + "text": "i5_c", + "kind": "localName" }, { "text": ":", @@ -370,44 +438,28 @@ "kind": "space" }, { - "text": "boolean", + "text": "typeof", "kind": "keyword" - } - ], - "documentation": [ + }, { - "text": "Returns a Boolean value that indicates whether a value is the reserved value NaN (not a number).", - "kind": "text" - } - ], - "tags": [ + "text": " ", + "kind": "space" + }, { - "name": "param", - "text": [ - { - "text": "number", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A numeric value.", - "kind": "text" - } - ] + "text": "c5", + "kind": "className" } - ] + ], + "documentation": [] }, { - "name": "isFinite", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "name": "i6", + "kind": "var", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "function", + "text": "var", "kind": "keyword" }, { @@ -415,16 +467,8 @@ "kind": "space" }, { - "text": "isFinite", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "number", - "kind": "parameterName" + "text": "i6", + "kind": "localName" }, { "text": ":", @@ -435,12 +479,29 @@ "kind": "space" }, { - "text": "number", + "text": "c6", + "kind": "className" + } + ], + "documentation": [] + }, + { + "name": "i6_c", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "var", "kind": "keyword" }, { - "text": ")", - "kind": "punctuation" + "text": " ", + "kind": "space" + }, + { + "text": "i6_c", + "kind": "localName" }, { "text": ":", @@ -451,44 +512,28 @@ "kind": "space" }, { - "text": "boolean", + "text": "typeof", "kind": "keyword" - } - ], - "documentation": [ + }, { - "text": "Determines whether a supplied number is finite.", - "kind": "text" + "text": " ", + "kind": "space" + }, + { + "text": "c6", + "kind": "className" } ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "number", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Any numeric value.", - "kind": "text" - } - ] - } - ] + "documentation": [] }, { - "name": "decodeURI", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "name": "m", + "kind": "module", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "function", + "text": "namespace", "kind": "keyword" }, { @@ -496,16 +541,29 @@ "kind": "space" }, { - "text": "decodeURI", - "kind": "functionName" + "text": "m", + "kind": "moduleName" + } + ], + "documentation": [] + }, + { + "name": "myVar", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "var", + "kind": "keyword" }, { - "text": "(", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": "encodedURI", - "kind": "parameterName" + "text": "myVar", + "kind": "localName" }, { "text": ":", @@ -516,60 +574,60 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "m", + "kind": "moduleName" }, { - "text": ")", + "text": ".", "kind": "punctuation" }, { - "text": ":", - "kind": "punctuation" + "text": "m2", + "kind": "moduleName" }, { - "text": " ", - "kind": "space" + "text": ".", + "kind": "punctuation" }, { - "text": "string", - "kind": "keyword" + "text": "c1", + "kind": "className" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "abstract", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "Gets the unencoded version of an encoded Uniform Resource Identifier (URI).", - "kind": "text" + "text": "abstract", + "kind": "keyword" } - ], - "tags": [ + ] + }, + { + "name": "any", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "encodedURI", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI.", - "kind": "text" - } - ] + "text": "any", + "kind": "keyword" } ] }, { - "name": "decodeURIComponent", - "kind": "function", + "name": "Array", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -577,32 +635,36 @@ "kind": "space" }, { - "text": "decodeURIComponent", - "kind": "functionName" + "text": "Array", + "kind": "localName" }, { - "text": "(", + "text": "<", "kind": "punctuation" }, { - "text": "encodedURIComponent", - "kind": "parameterName" + "text": "T", + "kind": "typeParameterName" }, { - "text": ":", + "text": ">", "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, { - "text": "string", + "text": "var", "kind": "keyword" }, { - "text": ")", - "kind": "punctuation" + "text": " ", + "kind": "space" + }, + { + "text": "Array", + "kind": "localName" }, { "text": ":", @@ -613,44 +675,20 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).", - "kind": "text" + "text": "ArrayConstructor", + "kind": "interfaceName" } ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "encodedURIComponent", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI component.", - "kind": "text" - } - ] - } - ] + "documentation": [] }, { - "name": "encodeURI", - "kind": "function", + "name": "ArrayBuffer", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -658,32 +696,24 @@ "kind": "space" }, { - "text": "encodeURI", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" + "text": "ArrayBuffer", + "kind": "localName" }, { - "text": "uri", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "ArrayBuffer", + "kind": "localName" }, { "text": ":", @@ -694,72 +724,113 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "ArrayBufferConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "Encodes a text string as a valid Uniform Resource Identifier (URI)", + "text": "Represents a raw buffer of binary data, which is used to store data for the\r\ndifferent typed arrays. ArrayBuffers cannot be read from or written to directly,\r\nbut can be passed to a typed array or DataView Object to interpret the raw\r\nbuffer as needed.", "kind": "text" } - ], - "tags": [ + ] + }, + { + "name": "as", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "uri", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI.", - "kind": "text" - } - ] + "text": "as", + "kind": "keyword" } ] }, { - "name": "encodeURIComponent", - "kind": "function", - "kindModifiers": "declare", + "name": "asserts", + "kind": "keyword", + "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "asserts", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, + } + ] + }, + { + "name": "async", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "encodeURIComponent", - "kind": "functionName" - }, + "text": "async", + "kind": "keyword" + } + ] + }, + { + "name": "await", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "(", - "kind": "punctuation" - }, + "text": "await", + "kind": "keyword" + } + ] + }, + { + "name": "bigint", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "uriComponent", - "kind": "parameterName" - }, + "text": "bigint", + "kind": "keyword" + } + ] + }, + { + "name": "boolean", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": ":", - "kind": "punctuation" + "text": "boolean", + "kind": "keyword" + } + ] + }, + { + "name": "Boolean", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "string", + "text": "Boolean", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" }, { @@ -767,7 +838,11 @@ "kind": "space" }, { - "text": "|", + "text": "Boolean", + "kind": "localName" + }, + { + "text": ":", "kind": "punctuation" }, { @@ -775,7 +850,92 @@ "kind": "space" }, { - "text": "number", + "text": "BooleanConstructor", + "kind": "interfaceName" + } + ], + "documentation": [] + }, + { + "name": "break", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "break", + "kind": "keyword" + } + ] + }, + { + "name": "case", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "case", + "kind": "keyword" + } + ] + }, + { + "name": "catch", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "catch", + "kind": "keyword" + } + ] + }, + { + "name": "class", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + } + ] + }, + { + "name": "const", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + } + ] + }, + { + "name": "continue", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "continue", + "kind": "keyword" + } + ] + }, + { + "name": "DataView", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", "kind": "keyword" }, { @@ -783,20 +943,24 @@ "kind": "space" }, { - "text": "|", - "kind": "punctuation" + "text": "DataView", + "kind": "localName" }, { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, { - "text": "boolean", + "text": "var", "kind": "keyword" }, { - "text": ")", - "kind": "punctuation" + "text": " ", + "kind": "space" + }, + { + "text": "DataView", + "kind": "localName" }, { "text": ":", @@ -807,44 +971,20 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Encodes a text string as a valid component of a Uniform Resource Identifier (URI).", - "kind": "text" + "text": "DataViewConstructor", + "kind": "interfaceName" } ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "uriComponent", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI component.", - "kind": "text" - } - ] - } - ] + "documentation": [] }, { - "name": "escape", - "kind": "function", - "kindModifiers": "deprecated,declare", - "sortText": "23", + "name": "Date", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -852,32 +992,24 @@ "kind": "space" }, { - "text": "escape", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" + "text": "Date", + "kind": "localName" }, { - "text": "string", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "Date", + "kind": "localName" }, { "text": ":", @@ -888,50 +1020,46 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "DateConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "Computes a new string in which certain characters have been replaced by a hexadecimal escape sequence.", + "text": "Enables basic storage and retrieval of dates and times.", "kind": "text" } - ], - "tags": [ + ] + }, + { + "name": "debugger", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "deprecated", - "text": [ - { - "text": "A legacy feature for browser compatibility", - "kind": "text" - } - ] - }, + "text": "debugger", + "kind": "keyword" + } + ] + }, + { + "name": "declare", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string value", - "kind": "text" - } - ] + "text": "declare", + "kind": "keyword" } ] }, { - "name": "unescape", + "name": "decodeURI", "kind": "function", - "kindModifiers": "deprecated,declare", - "sortText": "23", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { "text": "function", @@ -942,7 +1070,7 @@ "kind": "space" }, { - "text": "unescape", + "text": "decodeURI", "kind": "functionName" }, { @@ -950,7 +1078,7 @@ "kind": "punctuation" }, { - "text": "string", + "text": "encodedURI", "kind": "parameterName" }, { @@ -984,25 +1112,16 @@ ], "documentation": [ { - "text": "Computes a new string in which hexadecimal escape sequences are replaced with the character that it represents.", + "text": "Gets the unencoded version of an encoded Uniform Resource Identifier (URI).", "kind": "text" } ], "tags": [ - { - "name": "deprecated", - "text": [ - { - "text": "A legacy feature for browser compatibility", - "kind": "text" - } - ] - }, { "name": "param", "text": [ { - "text": "string", + "text": "encodedURI", "kind": "parameterName" }, { @@ -1010,7 +1129,7 @@ "kind": "space" }, { - "text": "A string value", + "text": "A value representing an encoded URI.", "kind": "text" } ] @@ -1018,13 +1137,13 @@ ] }, { - "name": "NaN", - "kind": "var", + "name": "decodeURIComponent", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "var", + "text": "function", "kind": "keyword" }, { @@ -1032,41 +1151,32 @@ "kind": "space" }, { - "text": "NaN", - "kind": "localName" + "text": "decodeURIComponent", + "kind": "functionName" }, { - "text": ":", + "text": "(", "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "encodedURIComponent", + "kind": "parameterName" }, { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "Infinity", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Infinity", - "kind": "localName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -1077,20 +1187,92 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "encodedURIComponent", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI component.", + "kind": "text" + } + ] + } + ] }, { - "name": "Object", - "kind": "var", + "name": "default", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "default", + "kind": "keyword" + } + ] + }, + { + "name": "delete", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "delete", + "kind": "keyword" + } + ] + }, + { + "name": "do", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "do", + "kind": "keyword" + } + ] + }, + { + "name": "else", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "else", + "kind": "keyword" + } + ] + }, + { + "name": "encodeURI", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -1098,24 +1280,32 @@ "kind": "space" }, { - "text": "Object", - "kind": "localName" + "text": "encodeURI", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "uri", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Object", - "kind": "localName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -1126,25 +1316,44 @@ "kind": "space" }, { - "text": "ObjectConstructor", - "kind": "interfaceName" + "text": "string", + "kind": "keyword" } ], "documentation": [ { - "text": "Provides functionality common to all JavaScript objects.", + "text": "Encodes a text string as a valid Uniform Resource Identifier (URI)", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "uri", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI.", + "kind": "text" + } + ] + } ] }, { - "name": "Function", - "kind": "var", + "name": "encodeURIComponent", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -1152,78 +1361,64 @@ "kind": "space" }, { - "text": "Function", - "kind": "localName" + "text": "encodeURIComponent", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "uriComponent", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Function", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" + "text": "string", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "FunctionConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "Creates a new function.", - "kind": "text" - } - ] - }, - { - "name": "String", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" + "text": "|", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "String", - "kind": "localName" + "text": "number", + "kind": "keyword" }, { - "text": "\n", - "kind": "lineBreak" + "text": " ", + "kind": "space" }, { - "text": "var", - "kind": "keyword" + "text": "|", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "String", - "kind": "localName" + "text": "boolean", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -1234,19 +1429,50 @@ "kind": "space" }, { - "text": "StringConstructor", - "kind": "interfaceName" + "text": "string", + "kind": "keyword" } ], "documentation": [ { - "text": "Allows manipulation and formatting of text strings and determination and location of substrings within strings.", + "text": "Encodes a text string as a valid component of a Uniform Resource Identifier (URI).", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "uriComponent", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI component.", + "kind": "text" + } + ] + } ] }, { - "name": "Boolean", + "name": "enum", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "enum", + "kind": "keyword" + } + ] + }, + { + "name": "Error", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -1260,7 +1486,7 @@ "kind": "space" }, { - "text": "Boolean", + "text": "Error", "kind": "localName" }, { @@ -1276,7 +1502,7 @@ "kind": "space" }, { - "text": "Boolean", + "text": "Error", "kind": "localName" }, { @@ -1288,20 +1514,20 @@ "kind": "space" }, { - "text": "BooleanConstructor", + "text": "ErrorConstructor", "kind": "interfaceName" } ], "documentation": [] }, { - "name": "Number", - "kind": "var", + "name": "eval", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -1309,24 +1535,32 @@ "kind": "space" }, { - "text": "Number", - "kind": "localName" + "text": "eval", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "x", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Number", - "kind": "localName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -1337,19 +1571,38 @@ "kind": "space" }, { - "text": "NumberConstructor", - "kind": "interfaceName" + "text": "any", + "kind": "keyword" } ], "documentation": [ { - "text": "An object that represents a number of any kind. All JavaScript numbers are 64-bit floating-point numbers.", + "text": "Evaluates JavaScript code and executes it.", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "x", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A String value that contains valid JavaScript code.", + "kind": "text" + } + ] + } ] }, { - "name": "Math", + "name": "EvalError", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -1363,7 +1616,7 @@ "kind": "space" }, { - "text": "Math", + "text": "EvalError", "kind": "localName" }, { @@ -1379,7 +1632,7 @@ "kind": "space" }, { - "text": "Math", + "text": "EvalError", "kind": "localName" }, { @@ -1391,19 +1644,62 @@ "kind": "space" }, { - "text": "Math", - "kind": "localName" + "text": "EvalErrorConstructor", + "kind": "interfaceName" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "export", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "An intrinsic object that provides basic mathematics functionality and constants.", - "kind": "text" + "text": "export", + "kind": "keyword" } ] }, { - "name": "Date", + "name": "extends", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "extends", + "kind": "keyword" + } + ] + }, + { + "name": "false", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "false", + "kind": "keyword" + } + ] + }, + { + "name": "finally", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "finally", + "kind": "keyword" + } + ] + }, + { + "name": "Float32Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -1417,7 +1713,7 @@ "kind": "space" }, { - "text": "Date", + "text": "Float32Array", "kind": "localName" }, { @@ -1433,7 +1729,7 @@ "kind": "space" }, { - "text": "Date", + "text": "Float32Array", "kind": "localName" }, { @@ -1445,19 +1741,19 @@ "kind": "space" }, { - "text": "DateConstructor", + "text": "Float32ArrayConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "Enables basic storage and retrieval of dates and times.", + "text": "A typed array of 32-bit float values. The contents are initialized to 0. If the requested number\r\nof bytes could not be allocated an exception is raised.", "kind": "text" } ] }, { - "name": "RegExp", + "name": "Float64Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -1471,7 +1767,7 @@ "kind": "space" }, { - "text": "RegExp", + "text": "Float64Array", "kind": "localName" }, { @@ -1487,7 +1783,7 @@ "kind": "space" }, { - "text": "RegExp", + "text": "Float64Array", "kind": "localName" }, { @@ -1499,63 +1795,43 @@ "kind": "space" }, { - "text": "RegExpConstructor", + "text": "Float64ArrayConstructor", "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "A typed array of 64-bit float values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] }, { - "name": "Error", - "kind": "var", - "kindModifiers": "declare", + "name": "for", + "kind": "keyword", + "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "for", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, + } + ] + }, + { + "name": "function", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "Error", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", + "text": "function", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Error", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "ErrorConstructor", - "kind": "interfaceName" } - ], - "documentation": [] + ] }, { - "name": "EvalError", + "name": "Function", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -1569,7 +1845,7 @@ "kind": "space" }, { - "text": "EvalError", + "text": "Function", "kind": "localName" }, { @@ -1585,7 +1861,7 @@ "kind": "space" }, { - "text": "EvalError", + "text": "Function", "kind": "localName" }, { @@ -1597,20 +1873,25 @@ "kind": "space" }, { - "text": "EvalErrorConstructor", + "text": "FunctionConstructor", "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "Creates a new function.", + "kind": "text" + } + ] }, { - "name": "RangeError", - "kind": "var", - "kindModifiers": "declare", + "name": "globalThis", + "kind": "module", + "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "module", "kind": "keyword" }, { @@ -1618,13 +1899,78 @@ "kind": "space" }, { - "text": "RangeError", - "kind": "localName" - }, + "text": "globalThis", + "kind": "moduleName" + } + ], + "documentation": [] + }, + { + "name": "if", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "\n", - "kind": "lineBreak" - }, + "text": "if", + "kind": "keyword" + } + ] + }, + { + "name": "implements", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "implements", + "kind": "keyword" + } + ] + }, + { + "name": "import", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "import", + "kind": "keyword" + } + ] + }, + { + "name": "in", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "in", + "kind": "keyword" + } + ] + }, + { + "name": "infer", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "infer", + "kind": "keyword" + } + ] + }, + { + "name": "Infinity", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { "text": "var", "kind": "keyword" @@ -1634,7 +1980,7 @@ "kind": "space" }, { - "text": "RangeError", + "text": "Infinity", "kind": "localName" }, { @@ -1646,14 +1992,26 @@ "kind": "space" }, { - "text": "RangeErrorConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], "documentation": [] }, { - "name": "ReferenceError", + "name": "instanceof", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "instanceof", + "kind": "keyword" + } + ] + }, + { + "name": "Int16Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -1667,7 +2025,7 @@ "kind": "space" }, { - "text": "ReferenceError", + "text": "Int16Array", "kind": "localName" }, { @@ -1683,7 +2041,7 @@ "kind": "space" }, { - "text": "ReferenceError", + "text": "Int16Array", "kind": "localName" }, { @@ -1695,14 +2053,19 @@ "kind": "space" }, { - "text": "ReferenceErrorConstructor", + "text": "Int16ArrayConstructor", "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "A typed array of 16-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] }, { - "name": "SyntaxError", + "name": "Int32Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -1716,7 +2079,7 @@ "kind": "space" }, { - "text": "SyntaxError", + "text": "Int32Array", "kind": "localName" }, { @@ -1732,7 +2095,7 @@ "kind": "space" }, { - "text": "SyntaxError", + "text": "Int32Array", "kind": "localName" }, { @@ -1744,14 +2107,19 @@ "kind": "space" }, { - "text": "SyntaxErrorConstructor", + "text": "Int32ArrayConstructor", "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "A typed array of 32-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] }, { - "name": "TypeError", + "name": "Int8Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -1765,7 +2133,7 @@ "kind": "space" }, { - "text": "TypeError", + "text": "Int8Array", "kind": "localName" }, { @@ -1781,7 +2149,7 @@ "kind": "space" }, { - "text": "TypeError", + "text": "Int8Array", "kind": "localName" }, { @@ -1793,36 +2161,37 @@ "kind": "space" }, { - "text": "TypeErrorConstructor", + "text": "Int8ArrayConstructor", "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "A typed array of 8-bit integer values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] }, { - "name": "URIError", - "kind": "var", - "kindModifiers": "declare", + "name": "interface", + "kind": "keyword", + "kindModifiers": "", "sortText": "15", "displayParts": [ { "text": "interface", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "URIError", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, + } + ] + }, + { + "name": "Intl", + "kind": "module", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { - "text": "var", + "text": "namespace", "kind": "keyword" }, { @@ -1830,32 +2199,20 @@ "kind": "space" }, { - "text": "URIError", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "URIErrorConstructor", - "kind": "interfaceName" + "text": "Intl", + "kind": "moduleName" } ], "documentation": [] }, { - "name": "JSON", - "kind": "var", + "name": "isFinite", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -1863,24 +2220,32 @@ "kind": "space" }, { - "text": "JSON", - "kind": "localName" + "text": "isFinite", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" - }, + "text": "number", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "JSON", - "kind": "localName" + "text": "number", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -1891,25 +2256,44 @@ "kind": "space" }, { - "text": "JSON", - "kind": "localName" + "text": "boolean", + "kind": "keyword" } ], "documentation": [ { - "text": "An intrinsic object that provides functions to convert JavaScript values to and from the JavaScript Object Notation (JSON) format.", + "text": "Determines whether a supplied number is finite.", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "number", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Any numeric value.", + "kind": "text" + } + ] + } ] }, { - "name": "Array", - "kind": "var", + "name": "isNaN", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -1917,36 +2301,32 @@ "kind": "space" }, { - "text": "Array", - "kind": "localName" + "text": "isNaN", + "kind": "functionName" }, { - "text": "<", + "text": "(", "kind": "punctuation" }, { - "text": "T", - "kind": "typeParameterName" + "text": "number", + "kind": "parameterName" }, { - "text": ">", + "text": ":", "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": " ", + "kind": "space" }, { - "text": "var", + "text": "number", "kind": "keyword" }, { - "text": " ", - "kind": "space" - }, - { - "text": "Array", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -1957,14 +2337,38 @@ "kind": "space" }, { - "text": "ArrayConstructor", - "kind": "interfaceName" + "text": "boolean", + "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Returns a Boolean value that indicates whether a value is the reserved value NaN (not a number).", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "number", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A numeric value.", + "kind": "text" + } + ] + } + ] }, { - "name": "ArrayBuffer", + "name": "JSON", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -1978,7 +2382,7 @@ "kind": "space" }, { - "text": "ArrayBuffer", + "text": "JSON", "kind": "localName" }, { @@ -1994,7 +2398,7 @@ "kind": "space" }, { - "text": "ArrayBuffer", + "text": "JSON", "kind": "localName" }, { @@ -2006,19 +2410,43 @@ "kind": "space" }, { - "text": "ArrayBufferConstructor", - "kind": "interfaceName" + "text": "JSON", + "kind": "localName" } ], "documentation": [ { - "text": "Represents a raw buffer of binary data, which is used to store data for the\r\ndifferent typed arrays. ArrayBuffers cannot be read from or written to directly,\r\nbut can be passed to a typed array or DataView Object to interpret the raw\r\nbuffer as needed.", + "text": "An intrinsic object that provides functions to convert JavaScript values to and from the JavaScript Object Notation (JSON) format.", "kind": "text" } ] }, { - "name": "DataView", + "name": "keyof", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "keyof", + "kind": "keyword" + } + ] + }, + { + "name": "let", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "let", + "kind": "keyword" + } + ] + }, + { + "name": "Math", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -2032,7 +2460,7 @@ "kind": "space" }, { - "text": "DataView", + "text": "Math", "kind": "localName" }, { @@ -2048,7 +2476,7 @@ "kind": "space" }, { - "text": "DataView", + "text": "Math", "kind": "localName" }, { @@ -2060,34 +2488,47 @@ "kind": "space" }, { - "text": "DataViewConstructor", - "kind": "interfaceName" + "text": "Math", + "kind": "localName" } ], - "documentation": [] + "documentation": [ + { + "text": "An intrinsic object that provides basic mathematics functionality and constants.", + "kind": "text" + } + ] }, { - "name": "Int8Array", - "kind": "var", - "kindModifiers": "declare", + "name": "module", + "kind": "keyword", + "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "module", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Int8Array", - "kind": "localName" - }, + } + ] + }, + { + "name": "namespace", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "\n", - "kind": "lineBreak" - }, + "text": "namespace", + "kind": "keyword" + } + ] + }, + { + "name": "NaN", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { "text": "var", "kind": "keyword" @@ -2097,7 +2538,7 @@ "kind": "space" }, { - "text": "Int8Array", + "text": "NaN", "kind": "localName" }, { @@ -2109,19 +2550,62 @@ "kind": "space" }, { - "text": "Int8ArrayConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "never", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "A typed array of 8-bit integer values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", - "kind": "text" + "text": "never", + "kind": "keyword" } ] }, { - "name": "Uint8Array", + "name": "new", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "new", + "kind": "keyword" + } + ] + }, + { + "name": "null", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "null", + "kind": "keyword" + } + ] + }, + { + "name": "number", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "number", + "kind": "keyword" + } + ] + }, + { + "name": "Number", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -2135,7 +2619,7 @@ "kind": "space" }, { - "text": "Uint8Array", + "text": "Number", "kind": "localName" }, { @@ -2151,7 +2635,7 @@ "kind": "space" }, { - "text": "Uint8Array", + "text": "Number", "kind": "localName" }, { @@ -2163,19 +2647,31 @@ "kind": "space" }, { - "text": "Uint8ArrayConstructor", + "text": "NumberConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "text": "An object that represents a number of any kind. All JavaScript numbers are 64-bit floating-point numbers.", "kind": "text" } ] }, { - "name": "Uint8ClampedArray", + "name": "object", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "object", + "kind": "keyword" + } + ] + }, + { + "name": "Object", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -2189,7 +2685,7 @@ "kind": "space" }, { - "text": "Uint8ClampedArray", + "text": "Object", "kind": "localName" }, { @@ -2205,7 +2701,7 @@ "kind": "space" }, { - "text": "Uint8ClampedArray", + "text": "Object", "kind": "localName" }, { @@ -2217,25 +2713,37 @@ "kind": "space" }, { - "text": "Uint8ClampedArrayConstructor", + "text": "ObjectConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0.\r\nIf the requested number of bytes could not be allocated an exception is raised.", + "text": "Provides functionality common to all JavaScript objects.", "kind": "text" } ] }, { - "name": "Int16Array", - "kind": "var", + "name": "package", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "package", + "kind": "keyword" + } + ] + }, + { + "name": "parseFloat", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -2243,24 +2751,32 @@ "kind": "space" }, { - "text": "Int16Array", - "kind": "localName" + "text": "parseFloat", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "string", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Int16Array", - "kind": "localName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -2271,25 +2787,44 @@ "kind": "space" }, { - "text": "Int16ArrayConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], "documentation": [ { - "text": "A typed array of 16-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "text": "Converts a string to a floating-point number.", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string that contains a floating-point number.", + "kind": "text" + } + ] + } ] }, { - "name": "Uint16Array", - "kind": "var", + "name": "parseInt", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -2297,24 +2832,16 @@ "kind": "space" }, { - "text": "Uint16Array", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": "parseInt", + "kind": "functionName" }, { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "Uint16Array", - "kind": "localName" + "text": "string", + "kind": "parameterName" }, { "text": ":", @@ -2325,50 +2852,40 @@ "kind": "space" }, { - "text": "Uint16ArrayConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] - }, - { - "name": "Int32Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", + "text": "string", "kind": "keyword" }, + { + "text": ",", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "Int32Array", - "kind": "localName" + "text": "radix", + "kind": "parameterName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "?", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Int32Array", - "kind": "localName" + "text": "number", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -2379,19 +2896,55 @@ "kind": "space" }, { - "text": "Int32ArrayConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], "documentation": [ { - "text": "A typed array of 32-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "text": "Converts a string to an integer.", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string to convert into a number.", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "radix", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value between 2 and 36 that specifies the base of the number in `string`.\r\nIf this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal.\r\nAll other strings are considered decimal.", + "kind": "text" + } + ] + } ] }, { - "name": "Uint32Array", + "name": "RangeError", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -2405,7 +2958,7 @@ "kind": "space" }, { - "text": "Uint32Array", + "text": "RangeError", "kind": "localName" }, { @@ -2421,7 +2974,7 @@ "kind": "space" }, { - "text": "Uint32Array", + "text": "RangeError", "kind": "localName" }, { @@ -2433,19 +2986,26 @@ "kind": "space" }, { - "text": "Uint32ArrayConstructor", + "text": "RangeErrorConstructor", "kind": "interfaceName" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "readonly", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" + "text": "readonly", + "kind": "keyword" } ] }, { - "name": "Float32Array", + "name": "ReferenceError", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -2459,7 +3019,7 @@ "kind": "space" }, { - "text": "Float32Array", + "text": "ReferenceError", "kind": "localName" }, { @@ -2475,7 +3035,7 @@ "kind": "space" }, { - "text": "Float32Array", + "text": "ReferenceError", "kind": "localName" }, { @@ -2487,19 +3047,14 @@ "kind": "space" }, { - "text": "Float32ArrayConstructor", + "text": "ReferenceErrorConstructor", "kind": "interfaceName" } ], - "documentation": [ - { - "text": "A typed array of 32-bit float values. The contents are initialized to 0. If the requested number\r\nof bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "Float64Array", + "name": "RegExp", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -2513,7 +3068,7 @@ "kind": "space" }, { - "text": "Float64Array", + "text": "RegExp", "kind": "localName" }, { @@ -2529,7 +3084,7 @@ "kind": "space" }, { - "text": "Float64Array", + "text": "RegExp", "kind": "localName" }, { @@ -2541,72 +3096,44 @@ "kind": "space" }, { - "text": "Float64ArrayConstructor", + "text": "RegExpConstructor", "kind": "interfaceName" } ], - "documentation": [ - { - "text": "A typed array of 64-bit float values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "Intl", - "kind": "module", - "kindModifiers": "declare", + "name": "return", + "kind": "keyword", + "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "namespace", + "text": "return", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Intl", - "kind": "moduleName" } - ], - "documentation": [] + ] }, { - "name": "c2", - "kind": "class", + "name": "string", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "class", + "text": "string", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "c2", - "kind": "className" - } - ], - "documentation": [ - { - "text": "This is class c2 without constructor", - "kind": "text" } ] }, { - "name": "i2", + "name": "String", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -2614,30 +3141,13 @@ "kind": "space" }, { - "text": "i2", + "text": "String", "kind": "localName" }, { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, - { - "text": "c2", - "kind": "className" - } - ], - "documentation": [] - }, - { - "name": "i2_c", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ { "text": "var", "kind": "keyword" @@ -2647,7 +3157,7 @@ "kind": "space" }, { - "text": "i2_c", + "text": "String", "kind": "localName" }, { @@ -2659,49 +3169,61 @@ "kind": "space" }, { - "text": "typeof", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "c2", - "kind": "className" + "text": "StringConstructor", + "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "Allows manipulation and formatting of text strings and determination and location of substrings within strings.", + "kind": "text" + } + ] }, { - "name": "c3", - "kind": "class", + "name": "super", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "class", + "text": "super", "kind": "keyword" - }, + } + ] + }, + { + "name": "switch", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": " ", - "kind": "space" - }, + "text": "switch", + "kind": "keyword" + } + ] + }, + { + "name": "symbol", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "c3", - "kind": "className" + "text": "symbol", + "kind": "keyword" } - ], - "documentation": [] + ] }, { - "name": "i3", + "name": "SyntaxError", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -2709,30 +3231,13 @@ "kind": "space" }, { - "text": "i3", + "text": "SyntaxError", "kind": "localName" }, { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, - { - "text": "c3", - "kind": "className" - } - ], - "documentation": [] - }, - { - "name": "i3_c", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ { "text": "var", "kind": "keyword" @@ -2742,7 +3247,7 @@ "kind": "space" }, { - "text": "i3_c", + "text": "SyntaxError", "kind": "localName" }, { @@ -2754,54 +3259,80 @@ "kind": "space" }, { - "text": "typeof", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "c3", - "kind": "className" + "text": "SyntaxErrorConstructor", + "kind": "interfaceName" } ], "documentation": [] }, { - "name": "c4", - "kind": "class", + "name": "this", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "class", + "text": "this", "kind": "keyword" - }, + } + ] + }, + { + "name": "throw", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": " ", - "kind": "space" - }, + "text": "throw", + "kind": "keyword" + } + ] + }, + { + "name": "true", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "c4", - "kind": "className" + "text": "true", + "kind": "keyword" } - ], - "documentation": [ + ] + }, + { + "name": "try", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "Class comment", - "kind": "text" + "text": "try", + "kind": "keyword" } ] }, { - "name": "i4", - "kind": "var", + "name": "type", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "type", + "kind": "keyword" + } + ] + }, + { + "name": "TypeError", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", "kind": "keyword" }, { @@ -2809,30 +3340,13 @@ "kind": "space" }, { - "text": "i4", + "text": "TypeError", "kind": "localName" }, { - "text": ":", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, - { - "text": " ", - "kind": "space" - }, - { - "text": "c4", - "kind": "className" - } - ], - "documentation": [] - }, - { - "name": "i4_c", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ { "text": "var", "kind": "keyword" @@ -2842,7 +3356,7 @@ "kind": "space" }, { - "text": "i4_c", + "text": "TypeError", "kind": "localName" }, { @@ -2854,28 +3368,32 @@ "kind": "space" }, { - "text": "typeof", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "c4", - "kind": "className" + "text": "TypeErrorConstructor", + "kind": "interfaceName" } ], "documentation": [] }, { - "name": "c5", - "kind": "class", + "name": "typeof", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "class", + "text": "typeof", + "kind": "keyword" + } + ] + }, + { + "name": "Uint16Array", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", "kind": "keyword" }, { @@ -2883,23 +3401,13 @@ "kind": "space" }, { - "text": "c5", - "kind": "className" - } - ], - "documentation": [ + "text": "Uint16Array", + "kind": "localName" + }, { - "text": "Class with statics", - "kind": "text" - } - ] - }, - { - "name": "i5", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ + "text": "\n", + "kind": "lineBreak" + }, { "text": "var", "kind": "keyword" @@ -2909,7 +3417,7 @@ "kind": "space" }, { - "text": "i5", + "text": "Uint16Array", "kind": "localName" }, { @@ -2921,20 +3429,25 @@ "kind": "space" }, { - "text": "c5", - "kind": "className" + "text": "Uint16ArrayConstructor", + "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] }, { - "name": "i5_c", + "name": "Uint32Array", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -2942,19 +3455,15 @@ "kind": "space" }, { - "text": "i5_c", + "text": "Uint32Array", "kind": "localName" }, { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, { - "text": "typeof", + "text": "var", "kind": "keyword" }, { @@ -2962,46 +3471,37 @@ "kind": "space" }, { - "text": "c5", - "kind": "className" - } - ], - "documentation": [] - }, - { - "name": "c6", - "kind": "class", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ + "text": "Uint32Array", + "kind": "localName" + }, { - "text": "class", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "c6", - "kind": "className" + "text": "Uint32ArrayConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "class with statics and constructor", + "text": "A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", "kind": "text" } ] }, { - "name": "i6", + "name": "Uint8Array", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -3009,30 +3509,13 @@ "kind": "space" }, { - "text": "i6", + "text": "Uint8Array", "kind": "localName" }, { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, - { - "text": "c6", - "kind": "className" - } - ], - "documentation": [] - }, - { - "name": "i6_c", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ { "text": "var", "kind": "keyword" @@ -3042,7 +3525,7 @@ "kind": "space" }, { - "text": "i6_c", + "text": "Uint8Array", "kind": "localName" }, { @@ -3054,28 +3537,25 @@ "kind": "space" }, { - "text": "typeof", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "c6", - "kind": "className" + "text": "Uint8ArrayConstructor", + "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] }, { - "name": "a", - "kind": "class", - "kindModifiers": "", - "sortText": "11", + "name": "Uint8ClampedArray", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "class", + "text": "interface", "kind": "keyword" }, { @@ -3083,39 +3563,13 @@ "kind": "space" }, { - "text": "a", - "kind": "className" - } - ], - "documentation": [] - }, - { - "name": "m", - "kind": "module", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "namespace", - "kind": "keyword" + "text": "Uint8ClampedArray", + "kind": "localName" }, { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, - { - "text": "m", - "kind": "moduleName" - } - ], - "documentation": [] - }, - { - "name": "myVar", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ { "text": "var", "kind": "keyword" @@ -3125,7 +3579,7 @@ "kind": "space" }, { - "text": "myVar", + "text": "Uint8ClampedArray", "kind": "localName" }, { @@ -3137,27 +3591,16 @@ "kind": "space" }, { - "text": "m", - "kind": "moduleName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "m2", - "kind": "moduleName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "c1", - "kind": "className" + "text": "Uint8ClampedArrayConstructor", + "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0.\r\nIf the requested number of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] }, { "name": "undefined", @@ -3174,766 +3617,323 @@ "kind": "space" }, { - "text": "undefined", - "kind": "propertyName" - } - ], - "documentation": [] - }, - { - "name": "break", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "break", - "kind": "keyword" - } - ] - }, - { - "name": "case", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "case", - "kind": "keyword" - } - ] - }, - { - "name": "catch", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "catch", - "kind": "keyword" - } - ] - }, - { - "name": "class", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "class", - "kind": "keyword" - } - ] - }, - { - "name": "const", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "const", - "kind": "keyword" - } - ] - }, - { - "name": "continue", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "continue", - "kind": "keyword" - } - ] - }, - { - "name": "debugger", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "debugger", - "kind": "keyword" - } - ] - }, - { - "name": "default", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "default", - "kind": "keyword" - } - ] - }, - { - "name": "delete", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "delete", - "kind": "keyword" - } - ] - }, - { - "name": "do", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "do", - "kind": "keyword" - } - ] - }, - { - "name": "else", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "else", - "kind": "keyword" - } - ] - }, - { - "name": "enum", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "enum", - "kind": "keyword" - } - ] - }, - { - "name": "export", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "export", - "kind": "keyword" - } - ] - }, - { - "name": "extends", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "extends", - "kind": "keyword" - } - ] - }, - { - "name": "false", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "false", - "kind": "keyword" - } - ] - }, - { - "name": "finally", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "finally", - "kind": "keyword" - } - ] - }, - { - "name": "for", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "for", - "kind": "keyword" - } - ] - }, - { - "name": "function", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "function", - "kind": "keyword" - } - ] - }, - { - "name": "if", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "if", - "kind": "keyword" - } - ] - }, - { - "name": "import", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "import", - "kind": "keyword" - } - ] - }, - { - "name": "in", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "in", - "kind": "keyword" - } - ] - }, - { - "name": "instanceof", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "instanceof", - "kind": "keyword" - } - ] - }, - { - "name": "new", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "new", - "kind": "keyword" - } - ] - }, - { - "name": "null", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "null", - "kind": "keyword" - } - ] - }, - { - "name": "return", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "return", - "kind": "keyword" - } - ] - }, - { - "name": "super", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "super", - "kind": "keyword" - } - ] - }, - { - "name": "switch", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "switch", - "kind": "keyword" - } - ] - }, - { - "name": "this", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "this", - "kind": "keyword" - } - ] - }, - { - "name": "throw", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "throw", - "kind": "keyword" - } - ] - }, - { - "name": "true", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "true", - "kind": "keyword" - } - ] - }, - { - "name": "try", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "try", - "kind": "keyword" - } - ] - }, - { - "name": "typeof", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "typeof", - "kind": "keyword" - } - ] - }, - { - "name": "var", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "var", - "kind": "keyword" - } - ] - }, - { - "name": "void", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "void", - "kind": "keyword" - } - ] - }, - { - "name": "while", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "while", - "kind": "keyword" - } - ] - }, - { - "name": "with", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "with", - "kind": "keyword" - } - ] - }, - { - "name": "implements", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "implements", - "kind": "keyword" - } - ] - }, - { - "name": "interface", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - } - ] - }, - { - "name": "let", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "let", - "kind": "keyword" - } - ] - }, - { - "name": "package", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "package", - "kind": "keyword" - } - ] - }, - { - "name": "yield", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "yield", - "kind": "keyword" - } - ] - }, - { - "name": "abstract", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "abstract", - "kind": "keyword" - } - ] - }, - { - "name": "as", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "as", - "kind": "keyword" - } - ] - }, - { - "name": "asserts", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "asserts", - "kind": "keyword" - } - ] - }, - { - "name": "any", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "any", - "kind": "keyword" - } - ] - }, - { - "name": "async", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "async", - "kind": "keyword" - } - ] - }, - { - "name": "await", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "await", - "kind": "keyword" - } - ] - }, - { - "name": "boolean", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "boolean", - "kind": "keyword" - } - ] - }, - { - "name": "declare", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "declare", - "kind": "keyword" - } - ] - }, - { - "name": "infer", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "infer", - "kind": "keyword" - } - ] - }, - { - "name": "keyof", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "keyof", - "kind": "keyword" - } - ] - }, - { - "name": "module", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "module", - "kind": "keyword" - } - ] - }, - { - "name": "namespace", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "namespace", - "kind": "keyword" + "text": "undefined", + "kind": "propertyName" } - ] + ], + "documentation": [] }, { - "name": "never", + "name": "unique", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "never", + "text": "unique", "kind": "keyword" } ] }, { - "name": "readonly", + "name": "unknown", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "readonly", + "text": "unknown", "kind": "keyword" } ] }, { - "name": "number", - "kind": "keyword", - "kindModifiers": "", + "name": "URIError", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "number", + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "URIError", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "URIError", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "URIErrorConstructor", + "kind": "interfaceName" } - ] + ], + "documentation": [] }, { - "name": "object", + "name": "var", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "object", + "text": "var", "kind": "keyword" } ] }, { - "name": "string", + "name": "void", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "string", + "text": "void", "kind": "keyword" } ] }, { - "name": "symbol", + "name": "while", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "symbol", + "text": "while", "kind": "keyword" } ] }, { - "name": "type", + "name": "with", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "type", + "text": "with", "kind": "keyword" } ] }, { - "name": "unique", + "name": "yield", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "unique", + "text": "yield", "kind": "keyword" } ] }, { - "name": "unknown", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", + "name": "escape", + "kind": "function", + "kindModifiers": "deprecated,declare", + "sortText": "z15", "displayParts": [ { - "text": "unknown", + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "escape", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "string", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", "kind": "keyword" } + ], + "documentation": [ + { + "text": "Computes a new string in which certain characters have been replaced by a hexadecimal escape sequence.", + "kind": "text" + } + ], + "tags": [ + { + "name": "deprecated", + "text": [ + { + "text": "A legacy feature for browser compatibility", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string value", + "kind": "text" + } + ] + } ] }, { - "name": "bigint", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", + "name": "unescape", + "kind": "function", + "kindModifiers": "deprecated,declare", + "sortText": "z15", "displayParts": [ { - "text": "bigint", + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "unescape", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "string", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", "kind": "keyword" } + ], + "documentation": [ + { + "text": "Computes a new string in which hexadecimal escape sequences are replaced with the character that it represents.", + "kind": "text" + } + ], + "tags": [ + { + "name": "deprecated", + "text": [ + { + "text": "A legacy feature for browser compatibility", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string value", + "kind": "text" + } + ] + } ] } ] diff --git a/tests/baselines/reference/completionsCommentsClassMembers.baseline b/tests/baselines/reference/completionsCommentsClassMembers.baseline index b3fd787cd6b58..af89101b92aed 100644 --- a/tests/baselines/reference/completionsCommentsClassMembers.baseline +++ b/tests/baselines/reference/completionsCommentsClassMembers.baseline @@ -15,7 +15,7 @@ }, "entries": [ { - "name": "p1", + "name": "nc_p1", "kind": "property", "kindModifiers": "public", "sortText": "11", @@ -45,7 +45,7 @@ "kind": "punctuation" }, { - "text": "p1", + "text": "nc_p1", "kind": "propertyName" }, { @@ -61,15 +61,10 @@ "kind": "keyword" } ], - "documentation": [ - { - "text": "p1 is property of c1", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "p2", + "name": "nc_p2", "kind": "method", "kindModifiers": "public", "sortText": "11", @@ -99,7 +94,7 @@ "kind": "punctuation" }, { - "text": "p2", + "text": "nc_p2", "kind": "methodName" }, { @@ -139,15 +134,10 @@ "kind": "keyword" } ], - "documentation": [ - { - "text": "sum with property", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "p3", + "name": "nc_p3", "kind": "property", "kindModifiers": "public", "sortText": "11", @@ -177,7 +167,7 @@ "kind": "punctuation" }, { - "text": "p3", + "text": "nc_p3", "kind": "propertyName" }, { @@ -193,23 +183,10 @@ "kind": "keyword" } ], - "documentation": [ - { - "text": "getter property 1", - "kind": "text" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "setter property 1", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "pp1", + "name": "nc_pp1", "kind": "property", "kindModifiers": "private", "sortText": "11", @@ -239,7 +216,7 @@ "kind": "punctuation" }, { - "text": "pp1", + "text": "nc_pp1", "kind": "propertyName" }, { @@ -255,15 +232,10 @@ "kind": "keyword" } ], - "documentation": [ - { - "text": "pp1 is property of c1", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "pp2", + "name": "nc_pp2", "kind": "method", "kindModifiers": "private", "sortText": "11", @@ -293,7 +265,7 @@ "kind": "punctuation" }, { - "text": "pp2", + "text": "nc_pp2", "kind": "methodName" }, { @@ -333,15 +305,10 @@ "kind": "keyword" } ], - "documentation": [ - { - "text": "sum with property", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "pp3", + "name": "nc_pp3", "kind": "property", "kindModifiers": "private", "sortText": "11", @@ -371,7 +338,7 @@ "kind": "punctuation" }, { - "text": "pp3", + "text": "nc_pp3", "kind": "propertyName" }, { @@ -387,23 +354,10 @@ "kind": "keyword" } ], - "documentation": [ - { - "text": "getter property 2", - "kind": "text" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "setter property 2", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "nc_p1", + "name": "p1", "kind": "property", "kindModifiers": "public", "sortText": "11", @@ -433,7 +387,7 @@ "kind": "punctuation" }, { - "text": "nc_p1", + "text": "p1", "kind": "propertyName" }, { @@ -449,10 +403,15 @@ "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "p1 is property of c1", + "kind": "text" + } + ] }, { - "name": "nc_p2", + "name": "p2", "kind": "method", "kindModifiers": "public", "sortText": "11", @@ -482,7 +441,7 @@ "kind": "punctuation" }, { - "text": "nc_p2", + "text": "p2", "kind": "methodName" }, { @@ -522,10 +481,15 @@ "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "sum with property", + "kind": "text" + } + ] }, { - "name": "nc_p3", + "name": "p3", "kind": "property", "kindModifiers": "public", "sortText": "11", @@ -555,7 +519,7 @@ "kind": "punctuation" }, { - "text": "nc_p3", + "text": "p3", "kind": "propertyName" }, { @@ -571,10 +535,23 @@ "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "getter property 1", + "kind": "text" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "setter property 1", + "kind": "text" + } + ] }, { - "name": "nc_pp1", + "name": "pp1", "kind": "property", "kindModifiers": "private", "sortText": "11", @@ -604,7 +581,7 @@ "kind": "punctuation" }, { - "text": "nc_pp1", + "text": "pp1", "kind": "propertyName" }, { @@ -620,10 +597,15 @@ "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "pp1 is property of c1", + "kind": "text" + } + ] }, { - "name": "nc_pp2", + "name": "pp2", "kind": "method", "kindModifiers": "private", "sortText": "11", @@ -653,7 +635,7 @@ "kind": "punctuation" }, { - "text": "nc_pp2", + "text": "pp2", "kind": "methodName" }, { @@ -693,10 +675,15 @@ "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "sum with property", + "kind": "text" + } + ] }, { - "name": "nc_pp3", + "name": "pp3", "kind": "property", "kindModifiers": "private", "sortText": "11", @@ -726,7 +713,7 @@ "kind": "punctuation" }, { - "text": "nc_pp3", + "text": "pp3", "kind": "propertyName" }, { @@ -742,7 +729,20 @@ "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "getter property 2", + "kind": "text" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "setter property 2", + "kind": "text" + } + ] } ] } @@ -762,6 +762,47 @@ "length": 1 }, "entries": [ + { + "name": "arguments", + "kind": "local var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "local var", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "arguments", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "IArguments", + "kind": "interfaceName" + } + ], + "documentation": [] + }, { "name": "b", "kind": "parameter", @@ -809,30 +850,69 @@ ] }, { - "name": "arguments", - "kind": "local var", + "name": "c1", + "kind": "class", "kindModifiers": "", "sortText": "11", "displayParts": [ { - "text": "(", - "kind": "punctuation" + "text": "class", + "kind": "keyword" }, { - "text": "local var", + "text": " ", + "kind": "space" + }, + { + "text": "c1", + "kind": "className" + } + ], + "documentation": [ + { + "text": "This is comment for c1", "kind": "text" + } + ] + }, + { + "name": "cProperties", + "kind": "class", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "class", + "kind": "keyword" }, { - "text": ")", - "kind": "punctuation" + "text": " ", + "kind": "space" + }, + { + "text": "cProperties", + "kind": "className" + } + ], + "documentation": [] + }, + { + "name": "cProperties_i", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "arguments", - "kind": "propertyName" + "text": "cProperties_i", + "kind": "localName" }, { "text": ":", @@ -843,20 +923,20 @@ "kind": "space" }, { - "text": "IArguments", - "kind": "interfaceName" + "text": "cProperties", + "kind": "className" } ], "documentation": [] }, { - "name": "globalThis", - "kind": "module", + "name": "cWithConstructorProperty", + "kind": "class", "kindModifiers": "", - "sortText": "15", + "sortText": "11", "displayParts": [ { - "text": "module", + "text": "class", "kind": "keyword" }, { @@ -864,20 +944,20 @@ "kind": "space" }, { - "text": "globalThis", - "kind": "moduleName" + "text": "cWithConstructorProperty", + "kind": "className" } ], "documentation": [] }, { - "name": "eval", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "name": "i1", + "kind": "var", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "function", + "text": "var", "kind": "keyword" }, { @@ -885,16 +965,8 @@ "kind": "space" }, { - "text": "eval", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "x", - "kind": "parameterName" + "text": "i1", + "kind": "localName" }, { "text": ":", @@ -905,12 +977,29 @@ "kind": "space" }, { - "text": "string", + "text": "c1", + "kind": "className" + } + ], + "documentation": [] + }, + { + "name": "i1_c", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "var", "kind": "keyword" }, { - "text": ")", - "kind": "punctuation" + "text": " ", + "kind": "space" + }, + { + "text": "i1_c", + "kind": "localName" }, { "text": ":", @@ -921,44 +1010,28 @@ "kind": "space" }, { - "text": "any", + "text": "typeof", "kind": "keyword" - } - ], - "documentation": [ + }, { - "text": "Evaluates JavaScript code and executes it.", - "kind": "text" - } - ], - "tags": [ + "text": " ", + "kind": "space" + }, { - "name": "param", - "text": [ - { - "text": "x", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A String value that contains valid JavaScript code.", - "kind": "text" - } - ] + "text": "c1", + "kind": "className" } - ] + ], + "documentation": [] }, { - "name": "parseInt", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "name": "i1_f", + "kind": "var", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "function", + "text": "var", "kind": "keyword" }, { @@ -966,15 +1039,23 @@ "kind": "space" }, { - "text": "parseInt", - "kind": "functionName" + "text": "i1_f", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" }, { "text": "(", "kind": "punctuation" }, { - "text": "string", + "text": "b", "kind": "parameterName" }, { @@ -986,11 +1067,11 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" }, { - "text": ",", + "text": ")", "kind": "punctuation" }, { @@ -998,15 +1079,7 @@ "kind": "space" }, { - "text": "radix", - "kind": "parameterName" - }, - { - "text": "?", - "kind": "punctuation" - }, - { - "text": ":", + "text": "=>", "kind": "punctuation" }, { @@ -1016,10 +1089,27 @@ { "text": "number", "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "i1_nc_p", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "var", + "kind": "keyword" }, { - "text": ")", - "kind": "punctuation" + "text": " ", + "kind": "space" + }, + { + "text": "i1_nc_p", + "kind": "localName" }, { "text": ":", @@ -1034,57 +1124,16 @@ "kind": "keyword" } ], - "documentation": [ - { - "text": "Converts a string to an integer.", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string to convert into a number.", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "radix", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value between 2 and 36 that specifies the base of the number in `string`.\r\nIf this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal.\r\nAll other strings are considered decimal.", - "kind": "text" - } - ] - } - ] + "documentation": [] }, { - "name": "parseFloat", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "name": "i1_ncf", + "kind": "var", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "function", + "text": "var", "kind": "keyword" }, { @@ -1092,15 +1141,23 @@ "kind": "space" }, { - "text": "parseFloat", - "kind": "functionName" + "text": "i1_ncf", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" }, { "text": "(", "kind": "punctuation" }, { - "text": "string", + "text": "b", "kind": "parameterName" }, { @@ -1112,7 +1169,7 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" }, { @@ -1120,7 +1177,11 @@ "kind": "punctuation" }, { - "text": ":", + "text": " ", + "kind": "space" + }, + { + "text": "=>", "kind": "punctuation" }, { @@ -1132,40 +1193,49 @@ "kind": "keyword" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "i1_ncprop", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { - "text": "Converts a string to a floating-point number.", - "kind": "text" - } - ], - "tags": [ + "text": "var", + "kind": "keyword" + }, { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string that contains a floating-point number.", - "kind": "text" - } - ] + "text": " ", + "kind": "space" + }, + { + "text": "i1_ncprop", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" } - ] + ], + "documentation": [] }, { - "name": "isNaN", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "name": "i1_ncr", + "kind": "var", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "function", + "text": "var", "kind": "keyword" }, { @@ -1173,16 +1243,8 @@ "kind": "space" }, { - "text": "isNaN", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "number", - "kind": "parameterName" + "text": "i1_ncr", + "kind": "localName" }, { "text": ":", @@ -1195,10 +1257,27 @@ { "text": "number", "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "i1_p", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "var", + "kind": "keyword" }, { - "text": ")", - "kind": "punctuation" + "text": " ", + "kind": "space" + }, + { + "text": "i1_p", + "kind": "localName" }, { "text": ":", @@ -1209,44 +1288,20 @@ "kind": "space" }, { - "text": "boolean", + "text": "number", "kind": "keyword" } ], - "documentation": [ - { - "text": "Returns a Boolean value that indicates whether a value is the reserved value NaN (not a number).", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "number", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A numeric value.", - "kind": "text" - } - ] - } - ] + "documentation": [] }, { - "name": "isFinite", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "name": "i1_prop", + "kind": "var", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "function", + "text": "var", "kind": "keyword" }, { @@ -1254,16 +1309,8 @@ "kind": "space" }, { - "text": "isFinite", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "number", - "kind": "parameterName" + "text": "i1_prop", + "kind": "localName" }, { "text": ":", @@ -1276,10 +1323,27 @@ { "text": "number", "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "i1_r", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "var", + "kind": "keyword" }, { - "text": ")", - "kind": "punctuation" + "text": " ", + "kind": "space" + }, + { + "text": "i1_r", + "kind": "localName" }, { "text": ":", @@ -1290,44 +1354,20 @@ "kind": "space" }, { - "text": "boolean", + "text": "number", "kind": "keyword" } ], - "documentation": [ - { - "text": "Determines whether a supplied number is finite.", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "number", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Any numeric value.", - "kind": "text" - } - ] - } - ] + "documentation": [] }, { - "name": "decodeURI", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "name": "i1_s_f", + "kind": "var", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "function", + "text": "var", "kind": "keyword" }, { @@ -1335,15 +1375,23 @@ "kind": "space" }, { - "text": "decodeURI", - "kind": "functionName" + "text": "i1_s_f", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" }, { "text": "(", "kind": "punctuation" }, { - "text": "encodedURI", + "text": "b", "kind": "parameterName" }, { @@ -1355,7 +1403,7 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" }, { @@ -1363,7 +1411,11 @@ "kind": "punctuation" }, { - "text": ":", + "text": " ", + "kind": "space" + }, + { + "text": "=>", "kind": "punctuation" }, { @@ -1371,44 +1423,20 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" } ], - "documentation": [ - { - "text": "Gets the unencoded version of an encoded Uniform Resource Identifier (URI).", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "encodedURI", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI.", - "kind": "text" - } - ] - } - ] + "documentation": [] }, { - "name": "decodeURIComponent", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "name": "i1_s_nc_p", + "kind": "var", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "function", + "text": "var", "kind": "keyword" }, { @@ -1416,32 +1444,8 @@ "kind": "space" }, { - "text": "decodeURIComponent", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "encodedURIComponent", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "i1_s_nc_p", + "kind": "localName" }, { "text": ":", @@ -1452,44 +1456,20 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" } ], - "documentation": [ - { - "text": "Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "encodedURIComponent", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI component.", - "kind": "text" - } - ] - } - ] + "documentation": [] }, { - "name": "encodeURI", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "name": "i1_s_ncf", + "kind": "var", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "function", + "text": "var", "kind": "keyword" }, { @@ -1497,15 +1477,23 @@ "kind": "space" }, { - "text": "encodeURI", - "kind": "functionName" + "text": "i1_s_ncf", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" }, { "text": "(", "kind": "punctuation" }, { - "text": "uri", + "text": "b", "kind": "parameterName" }, { @@ -1517,7 +1505,7 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" }, { @@ -1525,7 +1513,11 @@ "kind": "punctuation" }, { - "text": ":", + "text": " ", + "kind": "space" + }, + { + "text": "=>", "kind": "punctuation" }, { @@ -1533,44 +1525,20 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" } ], - "documentation": [ - { - "text": "Encodes a text string as a valid Uniform Resource Identifier (URI)", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "uri", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI.", - "kind": "text" - } - ] - } - ] + "documentation": [] }, { - "name": "encodeURIComponent", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "name": "i1_s_ncprop", + "kind": "var", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "function", + "text": "var", "kind": "keyword" }, { @@ -1578,16 +1546,8 @@ "kind": "space" }, { - "text": "encodeURIComponent", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "uriComponent", - "kind": "parameterName" + "text": "i1_s_ncprop", + "kind": "localName" }, { "text": ":", @@ -1598,7 +1558,20 @@ "kind": "space" }, { - "text": "string", + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "i1_s_ncr", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "var", "kind": "keyword" }, { @@ -1606,7 +1579,11 @@ "kind": "space" }, { - "text": "|", + "text": "i1_s_ncr", + "kind": "localName" + }, + { + "text": ":", "kind": "punctuation" }, { @@ -1616,26 +1593,27 @@ { "text": "number", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, + } + ], + "documentation": [] + }, + { + "name": "i1_s_p", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { - "text": "|", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "boolean", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "i1_s_p", + "kind": "localName" }, { "text": ":", @@ -1646,44 +1624,20 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" } ], - "documentation": [ - { - "text": "Encodes a text string as a valid component of a Uniform Resource Identifier (URI).", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "uriComponent", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI component.", - "kind": "text" - } - ] - } - ] + "documentation": [] }, { - "name": "escape", - "kind": "function", - "kindModifiers": "deprecated,declare", - "sortText": "23", + "name": "i1_s_prop", + "kind": "var", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "function", + "text": "var", "kind": "keyword" }, { @@ -1691,16 +1645,8 @@ "kind": "space" }, { - "text": "escape", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "string", - "kind": "parameterName" + "text": "i1_s_prop", + "kind": "localName" }, { "text": ":", @@ -1711,12 +1657,29 @@ "kind": "space" }, { - "text": "string", + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "i1_s_r", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "var", "kind": "keyword" }, { - "text": ")", - "kind": "punctuation" + "text": " ", + "kind": "space" + }, + { + "text": "i1_s_r", + "kind": "localName" }, { "text": ":", @@ -1727,143 +1690,20 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" } ], - "documentation": [ - { - "text": "Computes a new string in which certain characters have been replaced by a hexadecimal escape sequence.", - "kind": "text" - } - ], - "tags": [ - { - "name": "deprecated", - "text": [ - { - "text": "A legacy feature for browser compatibility", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string value", - "kind": "text" - } - ] - } - ] - }, - { - "name": "unescape", - "kind": "function", - "kindModifiers": "deprecated,declare", - "sortText": "23", - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "unescape", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "string", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Computes a new string in which hexadecimal escape sequences are replaced with the character that it represents.", - "kind": "text" - } - ], - "tags": [ - { - "name": "deprecated", - "text": [ - { - "text": "A legacy feature for browser compatibility", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string value", - "kind": "text" - } - ] - } - ] + "documentation": [] }, { - "name": "NaN", + "name": "Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -1871,30 +1711,25 @@ "kind": "space" }, { - "text": "NaN", + "text": "Array", "kind": "localName" }, { - "text": ":", + "text": "<", "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "T", + "kind": "typeParameterName" }, { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "Infinity", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ + "text": ">", + "kind": "punctuation" + }, + { + "text": "\n", + "kind": "lineBreak" + }, { "text": "var", "kind": "keyword" @@ -1904,7 +1739,7 @@ "kind": "space" }, { - "text": "Infinity", + "text": "Array", "kind": "localName" }, { @@ -1916,14 +1751,14 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "ArrayConstructor", + "kind": "interfaceName" } ], "documentation": [] }, { - "name": "Object", + "name": "ArrayBuffer", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -1937,7 +1772,7 @@ "kind": "space" }, { - "text": "Object", + "text": "ArrayBuffer", "kind": "localName" }, { @@ -1953,7 +1788,7 @@ "kind": "space" }, { - "text": "Object", + "text": "ArrayBuffer", "kind": "localName" }, { @@ -1965,19 +1800,55 @@ "kind": "space" }, { - "text": "ObjectConstructor", + "text": "ArrayBufferConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "Provides functionality common to all JavaScript objects.", + "text": "Represents a raw buffer of binary data, which is used to store data for the\r\ndifferent typed arrays. ArrayBuffers cannot be read from or written to directly,\r\nbut can be passed to a typed array or DataView Object to interpret the raw\r\nbuffer as needed.", "kind": "text" } ] }, { - "name": "Function", + "name": "as", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "as", + "kind": "keyword" + } + ] + }, + { + "name": "async", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "async", + "kind": "keyword" + } + ] + }, + { + "name": "await", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "await", + "kind": "keyword" + } + ] + }, + { + "name": "Boolean", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -1991,7 +1862,7 @@ "kind": "space" }, { - "text": "Function", + "text": "Boolean", "kind": "localName" }, { @@ -2007,7 +1878,7 @@ "kind": "space" }, { - "text": "Function", + "text": "Boolean", "kind": "localName" }, { @@ -2019,73 +1890,86 @@ "kind": "space" }, { - "text": "FunctionConstructor", + "text": "BooleanConstructor", "kind": "interfaceName" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "break", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "Creates a new function.", - "kind": "text" + "text": "break", + "kind": "keyword" } ] }, { - "name": "String", - "kind": "var", - "kindModifiers": "declare", + "name": "case", + "kind": "keyword", + "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "case", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "String", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, + } + ] + }, + { + "name": "catch", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "var", + "text": "catch", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "String", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, + } + ] + }, + { + "name": "class", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": " ", - "kind": "space" - }, + "text": "class", + "kind": "keyword" + } + ] + }, + { + "name": "const", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "StringConstructor", - "kind": "interfaceName" + "text": "const", + "kind": "keyword" } - ], - "documentation": [ + ] + }, + { + "name": "continue", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "Allows manipulation and formatting of text strings and determination and location of substrings within strings.", - "kind": "text" + "text": "continue", + "kind": "keyword" } ] }, { - "name": "Boolean", + "name": "DataView", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -2099,7 +1983,7 @@ "kind": "space" }, { - "text": "Boolean", + "text": "DataView", "kind": "localName" }, { @@ -2115,7 +1999,7 @@ "kind": "space" }, { - "text": "Boolean", + "text": "DataView", "kind": "localName" }, { @@ -2127,14 +2011,14 @@ "kind": "space" }, { - "text": "BooleanConstructor", + "text": "DataViewConstructor", "kind": "interfaceName" } ], "documentation": [] }, { - "name": "Number", + "name": "Date", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -2148,7 +2032,7 @@ "kind": "space" }, { - "text": "Number", + "text": "Date", "kind": "localName" }, { @@ -2164,7 +2048,7 @@ "kind": "space" }, { - "text": "Number", + "text": "Date", "kind": "localName" }, { @@ -2176,25 +2060,37 @@ "kind": "space" }, { - "text": "NumberConstructor", + "text": "DateConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "An object that represents a number of any kind. All JavaScript numbers are 64-bit floating-point numbers.", + "text": "Enables basic storage and retrieval of dates and times.", "kind": "text" } ] }, { - "name": "Math", - "kind": "var", + "name": "debugger", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "debugger", + "kind": "keyword" + } + ] + }, + { + "name": "decodeURI", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -2202,24 +2098,32 @@ "kind": "space" }, { - "text": "Math", - "kind": "localName" + "text": "decodeURI", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "encodedURI", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Math", - "kind": "localName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -2230,25 +2134,44 @@ "kind": "space" }, { - "text": "Math", - "kind": "localName" + "text": "string", + "kind": "keyword" } ], "documentation": [ { - "text": "An intrinsic object that provides basic mathematics functionality and constants.", + "text": "Gets the unencoded version of an encoded Uniform Resource Identifier (URI).", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "encodedURI", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI.", + "kind": "text" + } + ] + } ] }, { - "name": "Date", - "kind": "var", + "name": "decodeURIComponent", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -2256,24 +2179,32 @@ "kind": "space" }, { - "text": "Date", - "kind": "localName" + "text": "decodeURIComponent", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "encodedURIComponent", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Date", - "kind": "localName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -2284,41 +2215,92 @@ "kind": "space" }, { - "text": "DateConstructor", - "kind": "interfaceName" + "text": "string", + "kind": "keyword" } ], "documentation": [ { - "text": "Enables basic storage and retrieval of dates and times.", + "text": "Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "encodedURIComponent", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI component.", + "kind": "text" + } + ] + } ] }, { - "name": "RegExp", - "kind": "var", - "kindModifiers": "declare", + "name": "default", + "kind": "keyword", + "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "default", "kind": "keyword" - }, + } + ] + }, + { + "name": "delete", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": " ", - "kind": "space" - }, + "text": "delete", + "kind": "keyword" + } + ] + }, + { + "name": "do", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "RegExp", - "kind": "localName" - }, + "text": "do", + "kind": "keyword" + } + ] + }, + { + "name": "else", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "\n", - "kind": "lineBreak" - }, + "text": "else", + "kind": "keyword" + } + ] + }, + { + "name": "encodeURI", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { - "text": "var", + "text": "function", "kind": "keyword" }, { @@ -2326,8 +2308,16 @@ "kind": "space" }, { - "text": "RegExp", - "kind": "localName" + "text": "encodeURI", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "uri", + "kind": "parameterName" }, { "text": ":", @@ -2338,20 +2328,60 @@ "kind": "space" }, { - "text": "RegExpConstructor", - "kind": "interfaceName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Encodes a text string as a valid Uniform Resource Identifier (URI)", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "uri", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI.", + "kind": "text" + } + ] + } + ] }, { - "name": "Error", - "kind": "var", + "name": "encodeURIComponent", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -2359,27 +2389,35 @@ "kind": "space" }, { - "text": "Error", - "kind": "localName" + "text": "encodeURIComponent", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "uriComponent", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Error", - "kind": "localName" + "text": "string", + "kind": "keyword" }, { - "text": ":", + "text": " ", + "kind": "space" + }, + { + "text": "|", "kind": "punctuation" }, { @@ -2387,20 +2425,7 @@ "kind": "space" }, { - "text": "ErrorConstructor", - "kind": "interfaceName" - } - ], - "documentation": [] - }, - { - "name": "EvalError", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", + "text": "number", "kind": "keyword" }, { @@ -2408,24 +2433,20 @@ "kind": "space" }, { - "text": "EvalError", - "kind": "localName" + "text": "|", + "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": " ", + "kind": "space" }, { - "text": "var", + "text": "boolean", "kind": "keyword" }, { - "text": " ", - "kind": "space" - }, - { - "text": "EvalError", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -2436,14 +2457,50 @@ "kind": "space" }, { - "text": "EvalErrorConstructor", - "kind": "interfaceName" + "text": "string", + "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Encodes a text string as a valid component of a Uniform Resource Identifier (URI).", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "uriComponent", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI component.", + "kind": "text" + } + ] + } + ] }, { - "name": "RangeError", + "name": "enum", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "enum", + "kind": "keyword" + } + ] + }, + { + "name": "Error", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -2457,7 +2514,7 @@ "kind": "space" }, { - "text": "RangeError", + "text": "Error", "kind": "localName" }, { @@ -2473,7 +2530,7 @@ "kind": "space" }, { - "text": "RangeError", + "text": "Error", "kind": "localName" }, { @@ -2485,20 +2542,20 @@ "kind": "space" }, { - "text": "RangeErrorConstructor", + "text": "ErrorConstructor", "kind": "interfaceName" } ], "documentation": [] }, { - "name": "ReferenceError", - "kind": "var", + "name": "eval", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -2506,24 +2563,32 @@ "kind": "space" }, { - "text": "ReferenceError", - "kind": "localName" + "text": "eval", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "x", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "ReferenceError", - "kind": "localName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -2534,14 +2599,38 @@ "kind": "space" }, { - "text": "ReferenceErrorConstructor", - "kind": "interfaceName" + "text": "any", + "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Evaluates JavaScript code and executes it.", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "x", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A String value that contains valid JavaScript code.", + "kind": "text" + } + ] + } + ] }, { - "name": "SyntaxError", + "name": "EvalError", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -2555,7 +2644,7 @@ "kind": "space" }, { - "text": "SyntaxError", + "text": "EvalError", "kind": "localName" }, { @@ -2571,7 +2660,7 @@ "kind": "space" }, { - "text": "SyntaxError", + "text": "EvalError", "kind": "localName" }, { @@ -2583,14 +2672,62 @@ "kind": "space" }, { - "text": "SyntaxErrorConstructor", + "text": "EvalErrorConstructor", "kind": "interfaceName" } ], "documentation": [] }, { - "name": "TypeError", + "name": "export", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "export", + "kind": "keyword" + } + ] + }, + { + "name": "extends", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "extends", + "kind": "keyword" + } + ] + }, + { + "name": "false", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "false", + "kind": "keyword" + } + ] + }, + { + "name": "finally", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "finally", + "kind": "keyword" + } + ] + }, + { + "name": "Float32Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -2604,7 +2741,7 @@ "kind": "space" }, { - "text": "TypeError", + "text": "Float32Array", "kind": "localName" }, { @@ -2620,7 +2757,7 @@ "kind": "space" }, { - "text": "TypeError", + "text": "Float32Array", "kind": "localName" }, { @@ -2632,14 +2769,19 @@ "kind": "space" }, { - "text": "TypeErrorConstructor", + "text": "Float32ArrayConstructor", "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "A typed array of 32-bit float values. The contents are initialized to 0. If the requested number\r\nof bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] }, { - "name": "URIError", + "name": "Float64Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -2653,7 +2795,7 @@ "kind": "space" }, { - "text": "URIError", + "text": "Float64Array", "kind": "localName" }, { @@ -2669,7 +2811,7 @@ "kind": "space" }, { - "text": "URIError", + "text": "Float64Array", "kind": "localName" }, { @@ -2681,14 +2823,43 @@ "kind": "space" }, { - "text": "URIErrorConstructor", + "text": "Float64ArrayConstructor", "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "A typed array of 64-bit float values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] }, { - "name": "JSON", + "name": "for", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "for", + "kind": "keyword" + } + ] + }, + { + "name": "function", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + } + ] + }, + { + "name": "Function", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -2702,7 +2873,7 @@ "kind": "space" }, { - "text": "JSON", + "text": "Function", "kind": "localName" }, { @@ -2718,7 +2889,7 @@ "kind": "space" }, { - "text": "JSON", + "text": "Function", "kind": "localName" }, { @@ -2730,25 +2901,25 @@ "kind": "space" }, { - "text": "JSON", - "kind": "localName" + "text": "FunctionConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "An intrinsic object that provides functions to convert JavaScript values to and from the JavaScript Object Notation (JSON) format.", + "text": "Creates a new function.", "kind": "text" } ] }, { - "name": "Array", - "kind": "var", - "kindModifiers": "declare", + "name": "globalThis", + "kind": "module", + "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "module", "kind": "keyword" }, { @@ -2756,25 +2927,66 @@ "kind": "space" }, { - "text": "Array", - "kind": "localName" - }, + "text": "globalThis", + "kind": "moduleName" + } + ], + "documentation": [] + }, + { + "name": "if", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "<", - "kind": "punctuation" - }, + "text": "if", + "kind": "keyword" + } + ] + }, + { + "name": "implements", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "T", - "kind": "typeParameterName" - }, + "text": "implements", + "kind": "keyword" + } + ] + }, + { + "name": "import", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": ">", - "kind": "punctuation" - }, + "text": "import", + "kind": "keyword" + } + ] + }, + { + "name": "in", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "\n", - "kind": "lineBreak" - }, + "text": "in", + "kind": "keyword" + } + ] + }, + { + "name": "Infinity", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { "text": "var", "kind": "keyword" @@ -2784,7 +2996,7 @@ "kind": "space" }, { - "text": "Array", + "text": "Infinity", "kind": "localName" }, { @@ -2796,14 +3008,26 @@ "kind": "space" }, { - "text": "ArrayConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], "documentation": [] }, { - "name": "ArrayBuffer", + "name": "instanceof", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "instanceof", + "kind": "keyword" + } + ] + }, + { + "name": "Int16Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -2817,7 +3041,7 @@ "kind": "space" }, { - "text": "ArrayBuffer", + "text": "Int16Array", "kind": "localName" }, { @@ -2833,7 +3057,7 @@ "kind": "space" }, { - "text": "ArrayBuffer", + "text": "Int16Array", "kind": "localName" }, { @@ -2845,19 +3069,19 @@ "kind": "space" }, { - "text": "ArrayBufferConstructor", + "text": "Int16ArrayConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "Represents a raw buffer of binary data, which is used to store data for the\r\ndifferent typed arrays. ArrayBuffers cannot be read from or written to directly,\r\nbut can be passed to a typed array or DataView Object to interpret the raw\r\nbuffer as needed.", + "text": "A typed array of 16-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", "kind": "text" } ] }, { - "name": "DataView", + "name": "Int32Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -2871,7 +3095,7 @@ "kind": "space" }, { - "text": "DataView", + "text": "Int32Array", "kind": "localName" }, { @@ -2887,7 +3111,7 @@ "kind": "space" }, { - "text": "DataView", + "text": "Int32Array", "kind": "localName" }, { @@ -2899,11 +3123,16 @@ "kind": "space" }, { - "text": "DataViewConstructor", + "text": "Int32ArrayConstructor", "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "A typed array of 32-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] }, { "name": "Int8Array", @@ -2960,29 +3189,46 @@ ] }, { - "name": "Uint8Array", - "kind": "var", - "kindModifiers": "declare", + "name": "interface", + "kind": "keyword", + "kindModifiers": "", "sortText": "15", "displayParts": [ { "text": "interface", "kind": "keyword" + } + ] + }, + { + "name": "Intl", + "kind": "module", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "namespace", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "Uint8Array", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, + "text": "Intl", + "kind": "moduleName" + } + ], + "documentation": [] + }, + { + "name": "isFinite", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { - "text": "var", + "text": "function", "kind": "keyword" }, { @@ -2990,62 +3236,32 @@ "kind": "space" }, { - "text": "Uint8Array", - "kind": "localName" + "text": "isFinite", + "kind": "functionName" }, { - "text": ":", + "text": "(", "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "number", + "kind": "parameterName" }, { - "text": "Uint8ArrayConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] - }, - { - "name": "Uint8ClampedArray", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Uint8ClampedArray", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", + "text": "number", "kind": "keyword" }, { - "text": " ", - "kind": "space" - }, - { - "text": "Uint8ClampedArray", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -3056,25 +3272,44 @@ "kind": "space" }, { - "text": "Uint8ClampedArrayConstructor", - "kind": "interfaceName" + "text": "boolean", + "kind": "keyword" } ], "documentation": [ { - "text": "A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0.\r\nIf the requested number of bytes could not be allocated an exception is raised.", + "text": "Determines whether a supplied number is finite.", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "number", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Any numeric value.", + "kind": "text" + } + ] + } ] }, { - "name": "Int16Array", - "kind": "var", + "name": "isNaN", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -3082,24 +3317,32 @@ "kind": "space" }, { - "text": "Int16Array", - "kind": "localName" + "text": "isNaN", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "number", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Int16Array", - "kind": "localName" + "text": "number", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -3110,19 +3353,38 @@ "kind": "space" }, { - "text": "Int16ArrayConstructor", - "kind": "interfaceName" + "text": "boolean", + "kind": "keyword" } ], "documentation": [ { - "text": "A typed array of 16-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "text": "Returns a Boolean value that indicates whether a value is the reserved value NaN (not a number).", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "number", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A numeric value.", + "kind": "text" + } + ] + } ] }, { - "name": "Uint16Array", + "name": "JSON", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -3136,7 +3398,7 @@ "kind": "space" }, { - "text": "Uint16Array", + "text": "JSON", "kind": "localName" }, { @@ -3152,7 +3414,7 @@ "kind": "space" }, { - "text": "Uint16Array", + "text": "JSON", "kind": "localName" }, { @@ -3164,19 +3426,31 @@ "kind": "space" }, { - "text": "Uint16ArrayConstructor", - "kind": "interfaceName" + "text": "JSON", + "kind": "localName" } ], "documentation": [ { - "text": "A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "text": "An intrinsic object that provides functions to convert JavaScript values to and from the JavaScript Object Notation (JSON) format.", "kind": "text" } ] }, { - "name": "Int32Array", + "name": "let", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "let", + "kind": "keyword" + } + ] + }, + { + "name": "Math", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -3190,7 +3464,7 @@ "kind": "space" }, { - "text": "Int32Array", + "text": "Math", "kind": "localName" }, { @@ -3206,7 +3480,7 @@ "kind": "space" }, { - "text": "Int32Array", + "text": "Math", "kind": "localName" }, { @@ -3218,39 +3492,23 @@ "kind": "space" }, { - "text": "Int32ArrayConstructor", - "kind": "interfaceName" + "text": "Math", + "kind": "localName" } ], "documentation": [ { - "text": "A typed array of 32-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "text": "An intrinsic object that provides basic mathematics functionality and constants.", "kind": "text" } ] }, { - "name": "Uint32Array", + "name": "NaN", "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Uint32Array", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, { "text": "var", "kind": "keyword" @@ -3260,7 +3518,7 @@ "kind": "space" }, { - "text": "Uint32Array", + "text": "NaN", "kind": "localName" }, { @@ -3272,19 +3530,38 @@ "kind": "space" }, { - "text": "Uint32ArrayConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "new", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" + "text": "new", + "kind": "keyword" } ] }, { - "name": "Float32Array", + "name": "null", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "null", + "kind": "keyword" + } + ] + }, + { + "name": "Number", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -3298,7 +3575,7 @@ "kind": "space" }, { - "text": "Float32Array", + "text": "Number", "kind": "localName" }, { @@ -3314,7 +3591,7 @@ "kind": "space" }, { - "text": "Float32Array", + "text": "Number", "kind": "localName" }, { @@ -3326,19 +3603,19 @@ "kind": "space" }, { - "text": "Float32ArrayConstructor", + "text": "NumberConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "A typed array of 32-bit float values. The contents are initialized to 0. If the requested number\r\nof bytes could not be allocated an exception is raised.", + "text": "An object that represents a number of any kind. All JavaScript numbers are 64-bit floating-point numbers.", "kind": "text" } ] }, { - "name": "Float64Array", + "name": "Object", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -3352,7 +3629,7 @@ "kind": "space" }, { - "text": "Float64Array", + "text": "Object", "kind": "localName" }, { @@ -3368,7 +3645,7 @@ "kind": "space" }, { - "text": "Float64Array", + "text": "Object", "kind": "localName" }, { @@ -3380,46 +3657,37 @@ "kind": "space" }, { - "text": "Float64ArrayConstructor", + "text": "ObjectConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "A typed array of 64-bit float values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", + "text": "Provides functionality common to all JavaScript objects.", "kind": "text" } ] }, { - "name": "Intl", - "kind": "module", - "kindModifiers": "declare", + "name": "package", + "kind": "keyword", + "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "namespace", + "text": "package", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Intl", - "kind": "moduleName" } - ], - "documentation": [] + ] }, { - "name": "c1", - "kind": "class", - "kindModifiers": "", - "sortText": "11", + "name": "parseFloat", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "class", + "text": "function", "kind": "keyword" }, { @@ -3427,34 +3695,16 @@ "kind": "space" }, { - "text": "c1", - "kind": "className" - } - ], - "documentation": [ - { - "text": "This is comment for c1", - "kind": "text" - } - ] - }, - { - "name": "i1", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "var", - "kind": "keyword" + "text": "parseFloat", + "kind": "functionName" }, { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "i1", - "kind": "localName" + "text": "string", + "kind": "parameterName" }, { "text": ":", @@ -3465,29 +3715,12 @@ "kind": "space" }, { - "text": "c1", - "kind": "className" - } - ], - "documentation": [] - }, - { - "name": "i1_p", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "var", + "text": "string", "kind": "keyword" }, { - "text": " ", - "kind": "space" - }, - { - "text": "i1_p", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -3502,16 +3735,40 @@ "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Converts a string to a floating-point number.", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string that contains a floating-point number.", + "kind": "text" + } + ] + } + ] }, { - "name": "i1_f", - "kind": "var", - "kindModifiers": "", - "sortText": "11", + "name": "parseInt", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "function", "kind": "keyword" }, { @@ -3519,8 +3776,16 @@ "kind": "space" }, { - "text": "i1_f", - "kind": "localName" + "text": "parseInt", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "string", + "kind": "parameterName" }, { "text": ":", @@ -3531,13 +3796,25 @@ "kind": "space" }, { - "text": "(", + "text": "string", + "kind": "keyword" + }, + { + "text": ",", "kind": "punctuation" }, { - "text": "b", + "text": " ", + "kind": "space" + }, + { + "text": "radix", "kind": "parameterName" }, + { + "text": "?", + "kind": "punctuation" + }, { "text": ":", "kind": "punctuation" @@ -3555,11 +3832,7 @@ "kind": "punctuation" }, { - "text": " ", - "kind": "space" - }, - { - "text": "=>", + "text": ":", "kind": "punctuation" }, { @@ -3571,16 +3844,57 @@ "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Converts a string to an integer.", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string to convert into a number.", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "radix", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value between 2 and 36 that specifies the base of the number in `string`.\r\nIf this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal.\r\nAll other strings are considered decimal.", + "kind": "text" + } + ] + } + ] }, { - "name": "i1_r", + "name": "RangeError", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -3588,30 +3902,13 @@ "kind": "space" }, { - "text": "i1_r", + "text": "RangeError", "kind": "localName" }, { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_prop", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ { "text": "var", "kind": "keyword" @@ -3621,7 +3918,7 @@ "kind": "space" }, { - "text": "i1_prop", + "text": "RangeError", "kind": "localName" }, { @@ -3633,18 +3930,34 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "RangeErrorConstructor", + "kind": "interfaceName" } ], "documentation": [] }, { - "name": "i1_nc_p", + "name": "ReferenceError", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "ReferenceError", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, { "text": "var", "kind": "keyword" @@ -3654,7 +3967,7 @@ "kind": "space" }, { - "text": "i1_nc_p", + "text": "ReferenceError", "kind": "localName" }, { @@ -3666,20 +3979,20 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "ReferenceErrorConstructor", + "kind": "interfaceName" } ], "documentation": [] }, { - "name": "i1_ncf", + "name": "RegExp", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -3687,47 +4000,27 @@ "kind": "space" }, { - "text": "i1_ncf", + "text": "RegExp", "kind": "localName" }, { - "text": ":", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "b", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "RegExp", + "kind": "localName" }, { - "text": "=>", + "text": ":", "kind": "punctuation" }, { @@ -3735,20 +4028,32 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "RegExpConstructor", + "kind": "interfaceName" } ], "documentation": [] }, { - "name": "i1_ncr", - "kind": "var", + "name": "return", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "return", + "kind": "keyword" + } + ] + }, + { + "name": "String", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", "kind": "keyword" }, { @@ -3756,30 +4061,13 @@ "kind": "space" }, { - "text": "i1_ncr", + "text": "String", "kind": "localName" }, { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_ncprop", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ { "text": "var", "kind": "keyword" @@ -3789,7 +4077,7 @@ "kind": "space" }, { - "text": "i1_ncprop", + "text": "String", "kind": "localName" }, { @@ -3801,53 +4089,49 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "StringConstructor", + "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "Allows manipulation and formatting of text strings and determination and location of substrings within strings.", + "kind": "text" + } + ] }, { - "name": "i1_s_p", - "kind": "var", + "name": "super", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "super", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "i1_s_p", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, + } + ] + }, + { + "name": "switch", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "number", + "text": "switch", "kind": "keyword" } - ], - "documentation": [] + ] }, { - "name": "i1_s_f", + "name": "SyntaxError", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -3855,24 +4139,24 @@ "kind": "space" }, { - "text": "i1_s_f", + "text": "SyntaxError", "kind": "localName" }, { - "text": ":", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": " ", - "kind": "space" + "text": "var", + "kind": "keyword" }, { - "text": "(", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": "b", - "kind": "parameterName" + "text": "SyntaxError", + "kind": "localName" }, { "text": ":", @@ -3883,40 +4167,68 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, + "text": "SyntaxErrorConstructor", + "kind": "interfaceName" + } + ], + "documentation": [] + }, + { + "name": "this", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": " ", - "kind": "space" - }, + "text": "this", + "kind": "keyword" + } + ] + }, + { + "name": "throw", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "=>", - "kind": "punctuation" - }, + "text": "throw", + "kind": "keyword" + } + ] + }, + { + "name": "true", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": " ", - "kind": "space" - }, + "text": "true", + "kind": "keyword" + } + ] + }, + { + "name": "try", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "number", + "text": "try", "kind": "keyword" } - ], - "documentation": [] + ] }, { - "name": "i1_s_r", + "name": "TypeError", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -3924,30 +4236,13 @@ "kind": "space" }, { - "text": "i1_s_r", + "text": "TypeError", "kind": "localName" }, { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_s_prop", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ { "text": "var", "kind": "keyword" @@ -3957,7 +4252,7 @@ "kind": "space" }, { - "text": "i1_s_prop", + "text": "TypeError", "kind": "localName" }, { @@ -3969,20 +4264,32 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "TypeErrorConstructor", + "kind": "interfaceName" } ], "documentation": [] }, { - "name": "i1_s_nc_p", - "kind": "var", + "name": "typeof", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "typeof", + "kind": "keyword" + } + ] + }, + { + "name": "Uint16Array", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", "kind": "keyword" }, { @@ -3990,30 +4297,13 @@ "kind": "space" }, { - "text": "i1_s_nc_p", + "text": "Uint16Array", "kind": "localName" }, { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_s_ncf", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ { "text": "var", "kind": "keyword" @@ -4023,7 +4313,7 @@ "kind": "space" }, { - "text": "i1_s_ncf", + "text": "Uint16Array", "kind": "localName" }, { @@ -4035,35 +4325,53 @@ "kind": "space" }, { - "text": "(", - "kind": "punctuation" - }, + "text": "Uint16ArrayConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ { - "text": "b", - "kind": "parameterName" - }, + "text": "A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] + }, + { + "name": "Uint32Array", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { - "text": ":", - "kind": "punctuation" + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "Uint32Array", + "kind": "localName" }, { - "text": ")", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "=>", + "text": "Uint32Array", + "kind": "localName" + }, + { + "text": ":", "kind": "punctuation" }, { @@ -4071,20 +4379,25 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "Uint32ArrayConstructor", + "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] }, { - "name": "i1_s_ncr", + "name": "Uint8Array", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -4092,30 +4405,13 @@ "kind": "space" }, { - "text": "i1_s_ncr", + "text": "Uint8Array", "kind": "localName" }, { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_s_ncprop", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ { "text": "var", "kind": "keyword" @@ -4125,7 +4421,7 @@ "kind": "space" }, { - "text": "i1_s_ncprop", + "text": "Uint8Array", "kind": "localName" }, { @@ -4137,20 +4433,25 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "Uint8ArrayConstructor", + "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] }, { - "name": "i1_c", + "name": "Uint8ClampedArray", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -4158,40 +4459,53 @@ "kind": "space" }, { - "text": "i1_c", + "text": "Uint8ClampedArray", "kind": "localName" }, { - "text": ":", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "typeof", - "kind": "keyword" + "text": "Uint8ClampedArray", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "c1", - "kind": "className" + "text": "Uint8ClampedArrayConstructor", + "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0.\r\nIf the requested number of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] }, { - "name": "cProperties", - "kind": "class", + "name": "undefined", + "kind": "var", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "class", + "text": "var", "kind": "keyword" }, { @@ -4199,20 +4513,20 @@ "kind": "space" }, { - "text": "cProperties", - "kind": "className" + "text": "undefined", + "kind": "propertyName" } ], "documentation": [] }, { - "name": "cProperties_i", + "name": "URIError", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -4220,612 +4534,640 @@ "kind": "space" }, { - "text": "cProperties_i", + "text": "URIError", "kind": "localName" }, { - "text": ":", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "cProperties", - "kind": "className" - } - ], - "documentation": [] - }, - { - "name": "cWithConstructorProperty", - "kind": "class", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ + "text": "URIError", + "kind": "localName" + }, { - "text": "class", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "cWithConstructorProperty", - "kind": "className" + "text": "URIErrorConstructor", + "kind": "interfaceName" } ], "documentation": [] }, { - "name": "undefined", - "kind": "var", + "name": "var", + "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { "text": "var", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "undefined", - "kind": "propertyName" } - ], - "documentation": [] + ] }, { - "name": "break", + "name": "void", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "break", + "text": "void", "kind": "keyword" } ] }, { - "name": "case", + "name": "while", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "case", + "text": "while", "kind": "keyword" } ] }, { - "name": "catch", + "name": "with", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "catch", + "text": "with", "kind": "keyword" } ] }, { - "name": "class", + "name": "yield", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "class", + "text": "yield", "kind": "keyword" } ] }, { - "name": "const", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", + "name": "escape", + "kind": "function", + "kindModifiers": "deprecated,declare", + "sortText": "z15", "displayParts": [ { - "text": "const", + "text": "function", "kind": "keyword" - } - ] - }, - { - "name": "continue", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "continue", - "kind": "keyword" - } - ] - }, - { - "name": "debugger", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "debugger", + "text": "escape", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "string", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", "kind": "keyword" - } - ] - }, - { - "name": "default", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "default", + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", "kind": "keyword" } - ] - }, - { - "name": "delete", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "delete", - "kind": "keyword" + "text": "Computes a new string in which certain characters have been replaced by a hexadecimal escape sequence.", + "kind": "text" } - ] - }, - { - "name": "do", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "tags": [ { - "text": "do", - "kind": "keyword" + "name": "deprecated", + "text": [ + { + "text": "A legacy feature for browser compatibility", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string value", + "kind": "text" + } + ] } ] }, { - "name": "else", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", + "name": "unescape", + "kind": "function", + "kindModifiers": "deprecated,declare", + "sortText": "z15", "displayParts": [ { - "text": "else", + "text": "function", "kind": "keyword" - } - ] - }, - { - "name": "enum", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "enum", + "text": " ", + "kind": "space" + }, + { + "text": "unescape", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "string", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", "kind": "keyword" - } - ] - }, - { - "name": "export", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "export", + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", "kind": "keyword" } - ] - }, - { - "name": "extends", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "extends", - "kind": "keyword" + "text": "Computes a new string in which hexadecimal escape sequences are replaced with the character that it represents.", + "kind": "text" } - ] - }, - { - "name": "false", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "tags": [ { - "text": "false", - "kind": "keyword" + "name": "deprecated", + "text": [ + { + "text": "A legacy feature for browser compatibility", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string value", + "kind": "text" + } + ] } ] - }, + } + ] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/completionsCommentsClassMembers.ts", + "position": 272, + "name": "7" + }, + "completionList": { + "isGlobalCompletion": false, + "isMemberCompletion": true, + "isNewIdentifierLocation": false, + "optionalReplacementSpan": { + "start": 272, + "length": 2 + }, + "entries": [ { - "name": "finally", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", + "name": "nc_p1", + "kind": "property", + "kindModifiers": "public", + "sortText": "11", "displayParts": [ { - "text": "finally", + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "c1", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "nc_p1", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" } - ] + ], + "documentation": [] }, { - "name": "for", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", + "name": "nc_p2", + "kind": "method", + "kindModifiers": "public", + "sortText": "11", "displayParts": [ { - "text": "for", + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "c1", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "nc_p2", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "b", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" - } - ] - }, - { - "name": "function", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "function", + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" } - ] + ], + "documentation": [] }, { - "name": "if", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", + "name": "nc_p3", + "kind": "property", + "kindModifiers": "public", + "sortText": "11", "displayParts": [ { - "text": "if", + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "c1", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "nc_p3", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" } - ] + ], + "documentation": [] }, { - "name": "import", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", + "name": "nc_pp1", + "kind": "property", + "kindModifiers": "private", + "sortText": "11", "displayParts": [ { - "text": "import", + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "c1", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "nc_pp1", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" } - ] + ], + "documentation": [] }, { - "name": "in", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", + "name": "nc_pp2", + "kind": "method", + "kindModifiers": "private", + "sortText": "11", "displayParts": [ { - "text": "in", - "kind": "keyword" - } - ] - }, - { - "name": "instanceof", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "(", + "kind": "punctuation" + }, { - "text": "instanceof", - "kind": "keyword" - } - ] - }, - { - "name": "new", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "method", + "kind": "text" + }, { - "text": "new", - "kind": "keyword" - } - ] - }, - { - "name": "null", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": ")", + "kind": "punctuation" + }, { - "text": "null", - "kind": "keyword" - } - ] - }, - { - "name": "return", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "return", - "kind": "keyword" - } - ] - }, - { - "name": "super", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "c1", + "kind": "className" + }, { - "text": "super", - "kind": "keyword" - } - ] - }, - { - "name": "switch", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": ".", + "kind": "punctuation" + }, { - "text": "switch", - "kind": "keyword" - } - ] - }, - { - "name": "this", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "nc_pp2", + "kind": "methodName" + }, { - "text": "this", - "kind": "keyword" - } - ] - }, - { - "name": "throw", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "(", + "kind": "punctuation" + }, { - "text": "throw", - "kind": "keyword" - } - ] - }, - { - "name": "true", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "b", + "kind": "parameterName" + }, { - "text": "true", - "kind": "keyword" - } - ] - }, - { - "name": "try", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": ":", + "kind": "punctuation" + }, { - "text": "try", - "kind": "keyword" - } - ] - }, - { - "name": "typeof", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "typeof", + "text": "number", "kind": "keyword" - } - ] - }, - { - "name": "var", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "var", - "kind": "keyword" - } - ] - }, - { - "name": "void", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": ")", + "kind": "punctuation" + }, { - "text": "void", - "kind": "keyword" - } - ] - }, - { - "name": "while", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": ":", + "kind": "punctuation" + }, { - "text": "while", - "kind": "keyword" - } - ] - }, - { - "name": "with", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "with", + "text": "number", "kind": "keyword" } - ] + ], + "documentation": [] }, { - "name": "implements", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", + "name": "nc_pp3", + "kind": "property", + "kindModifiers": "private", + "sortText": "11", "displayParts": [ { - "text": "implements", - "kind": "keyword" - } - ] - }, - { - "name": "interface", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "(", + "kind": "punctuation" + }, { - "text": "interface", - "kind": "keyword" - } - ] - }, - { - "name": "let", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "property", + "kind": "text" + }, { - "text": "let", - "kind": "keyword" - } - ] - }, - { - "name": "package", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": ")", + "kind": "punctuation" + }, { - "text": "package", - "kind": "keyword" - } - ] - }, - { - "name": "yield", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "yield", - "kind": "keyword" - } - ] - }, - { - "name": "as", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "c1", + "kind": "className" + }, { - "text": "as", - "kind": "keyword" - } - ] - }, - { - "name": "async", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": ".", + "kind": "punctuation" + }, { - "text": "async", - "kind": "keyword" - } - ] - }, - { - "name": "await", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "nc_pp3", + "kind": "propertyName" + }, { - "text": "await", + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" } - ] - } - ] - } - }, - { - "marker": { - "fileName": "/tests/cases/fourslash/completionsCommentsClassMembers.ts", - "position": 272, - "name": "7" - }, - "completionList": { - "isGlobalCompletion": false, - "isMemberCompletion": true, - "isNewIdentifierLocation": false, - "optionalReplacementSpan": { - "start": 272, - "length": 2 - }, - "entries": [ + ], + "documentation": [] + }, { "name": "p1", "kind": "property", @@ -5213,7 +5555,25 @@ "kind": "text" } ] - }, + } + ] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/completionsCommentsClassMembers.ts", + "position": 280, + "name": "9" + }, + "completionList": { + "isGlobalCompletion": false, + "isMemberCompletion": true, + "isNewIdentifierLocation": false, + "optionalReplacementSpan": { + "start": 280, + "length": 2 + }, + "entries": [ { "name": "nc_p1", "kind": "property", @@ -5555,25 +5915,7 @@ } ], "documentation": [] - } - ] - } - }, - { - "marker": { - "fileName": "/tests/cases/fourslash/completionsCommentsClassMembers.ts", - "position": 280, - "name": "9" - }, - "completionList": { - "isGlobalCompletion": false, - "isMemberCompletion": true, - "isNewIdentifierLocation": false, - "optionalReplacementSpan": { - "start": 280, - "length": 2 - }, - "entries": [ + }, { "name": "p1", "kind": "property", @@ -5961,7 +6303,25 @@ "kind": "text" } ] - }, + } + ] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/completionsCommentsClassMembers.ts", + "position": 386, + "name": "11" + }, + "completionList": { + "isGlobalCompletion": false, + "isMemberCompletion": true, + "isNewIdentifierLocation": false, + "optionalReplacementSpan": { + "start": 386, + "length": 2 + }, + "entries": [ { "name": "nc_p1", "kind": "property", @@ -6303,25 +6663,7 @@ } ], "documentation": [] - } - ] - } - }, - { - "marker": { - "fileName": "/tests/cases/fourslash/completionsCommentsClassMembers.ts", - "position": 386, - "name": "11" - }, - "completionList": { - "isGlobalCompletion": false, - "isMemberCompletion": true, - "isNewIdentifierLocation": false, - "optionalReplacementSpan": { - "start": 386, - "length": 2 - }, - "entries": [ + }, { "name": "p1", "kind": "property", @@ -6709,7 +7051,25 @@ "kind": "text" } ] - }, + } + ] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/completionsCommentsClassMembers.ts", + "position": 396, + "name": "12" + }, + "completionList": { + "isGlobalCompletion": false, + "isMemberCompletion": true, + "isNewIdentifierLocation": false, + "optionalReplacementSpan": { + "start": 396, + "length": 2 + }, + "entries": [ { "name": "nc_p1", "kind": "property", @@ -7051,25 +7411,7 @@ } ], "documentation": [] - } - ] - } - }, - { - "marker": { - "fileName": "/tests/cases/fourslash/completionsCommentsClassMembers.ts", - "position": 396, - "name": "12" - }, - "completionList": { - "isGlobalCompletion": false, - "isMemberCompletion": true, - "isNewIdentifierLocation": false, - "optionalReplacementSpan": { - "start": 396, - "length": 2 - }, - "entries": [ + }, { "name": "p1", "kind": "property", @@ -7457,11 +7799,29 @@ "kind": "text" } ] - }, + } + ] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/completionsCommentsClassMembers.ts", + "position": 399, + "name": "13" + }, + "completionList": { + "isGlobalCompletion": false, + "isMemberCompletion": false, + "isNewIdentifierLocation": true, + "optionalReplacementSpan": { + "start": 399, + "length": 5 + }, + "entries": [ { - "name": "nc_p1", - "kind": "property", - "kindModifiers": "public", + "name": "arguments", + "kind": "local var", + "kindModifiers": "", "sortText": "11", "displayParts": [ { @@ -7469,7 +7829,7 @@ "kind": "punctuation" }, { - "text": "property", + "text": "local var", "kind": "text" }, { @@ -7480,17 +7840,89 @@ "text": " ", "kind": "space" }, + { + "text": "arguments", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "IArguments", + "kind": "interfaceName" + } + ], + "documentation": [] + }, + { + "name": "c1", + "kind": "class", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, { "text": "c1", "kind": "className" + } + ], + "documentation": [ + { + "text": "This is comment for c1", + "kind": "text" + } + ] + }, + { + "name": "cProperties", + "kind": "class", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "class", + "kind": "keyword" }, { - "text": ".", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": "nc_p1", - "kind": "propertyName" + "text": "cProperties", + "kind": "className" + } + ], + "documentation": [] + }, + { + "name": "cProperties_i", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "cProperties_i", + "kind": "localName" }, { "text": ":", @@ -7501,45 +7933,132 @@ "kind": "space" }, { - "text": "number", + "text": "cProperties", + "kind": "className" + } + ], + "documentation": [] + }, + { + "name": "cWithConstructorProperty", + "kind": "class", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "class", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "cWithConstructorProperty", + "kind": "className" } ], "documentation": [] }, { - "name": "nc_p2", - "kind": "method", - "kindModifiers": "public", + "name": "i1", + "kind": "var", + "kindModifiers": "", "sortText": "11", "displayParts": [ { - "text": "(", + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "i1", + "kind": "localName" + }, + { + "text": ":", "kind": "punctuation" }, { - "text": "method", - "kind": "text" + "text": " ", + "kind": "space" }, { - "text": ")", + "text": "c1", + "kind": "className" + } + ], + "documentation": [] + }, + { + "name": "i1_c", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "i1_c", + "kind": "localName" + }, + { + "text": ":", "kind": "punctuation" }, { "text": " ", "kind": "space" }, + { + "text": "typeof", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, { "text": "c1", "kind": "className" + } + ], + "documentation": [] + }, + { + "name": "i1_f", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "var", + "kind": "keyword" }, { - "text": ".", + "text": " ", + "kind": "space" + }, + { + "text": "i1_f", + "kind": "localName" + }, + { + "text": ":", "kind": "punctuation" }, { - "text": "nc_p2", - "kind": "methodName" + "text": " ", + "kind": "space" }, { "text": "(", @@ -7566,7 +8085,11 @@ "kind": "punctuation" }, { - "text": ":", + "text": " ", + "kind": "space" + }, + { + "text": "=>", "kind": "punctuation" }, { @@ -7581,38 +8104,22 @@ "documentation": [] }, { - "name": "nc_p3", - "kind": "property", - "kindModifiers": "public", + "name": "i1_nc_p", + "kind": "var", + "kindModifiers": "", "sortText": "11", "displayParts": [ { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "c1", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "nc_p3", - "kind": "propertyName" + "text": "i1_nc_p", + "kind": "localName" }, { "text": ":", @@ -7630,21 +8137,25 @@ "documentation": [] }, { - "name": "nc_pp1", - "kind": "property", - "kindModifiers": "private", + "name": "i1_ncf", + "kind": "var", + "kindModifiers": "", "sortText": "11", "displayParts": [ { - "text": "(", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { - "text": "property", - "kind": "text" + "text": " ", + "kind": "space" }, { - "text": ")", + "text": "i1_ncf", + "kind": "localName" + }, + { + "text": ":", "kind": "punctuation" }, { @@ -7652,16 +8163,12 @@ "kind": "space" }, { - "text": "c1", - "kind": "className" - }, - { - "text": ".", + "text": "(", "kind": "punctuation" }, { - "text": "nc_pp1", - "kind": "propertyName" + "text": "b", + "kind": "parameterName" }, { "text": ":", @@ -7674,23 +8181,6 @@ { "text": "number", "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "nc_pp2", - "kind": "method", - "kindModifiers": "private", - "sortText": "11", - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" }, { "text": ")", @@ -7701,24 +8191,37 @@ "kind": "space" }, { - "text": "c1", - "kind": "className" + "text": "=>", + "kind": "punctuation" }, { - "text": ".", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": "nc_pp2", - "kind": "methodName" + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "i1_ncprop", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "var", + "kind": "keyword" }, { - "text": "(", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": "b", - "kind": "parameterName" + "text": "i1_ncprop", + "kind": "localName" }, { "text": ":", @@ -7731,10 +8234,27 @@ { "text": "number", "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "i1_ncr", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "var", + "kind": "keyword" }, { - "text": ")", - "kind": "punctuation" + "text": " ", + "kind": "space" + }, + { + "text": "i1_ncr", + "kind": "localName" }, { "text": ":", @@ -7752,38 +8272,22 @@ "documentation": [] }, { - "name": "nc_pp3", - "kind": "property", - "kindModifiers": "private", + "name": "i1_p", + "kind": "var", + "kindModifiers": "", "sortText": "11", "displayParts": [ { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "c1", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "nc_pp3", - "kind": "propertyName" + "text": "i1_p", + "kind": "localName" }, { "text": ":", @@ -7799,50 +8303,24 @@ } ], "documentation": [] - } - ] - } - }, - { - "marker": { - "fileName": "/tests/cases/fourslash/completionsCommentsClassMembers.ts", - "position": 399, - "name": "13" - }, - "completionList": { - "isGlobalCompletion": false, - "isMemberCompletion": false, - "isNewIdentifierLocation": true, - "optionalReplacementSpan": { - "start": 399, - "length": 5 - }, - "entries": [ + }, { - "name": "value", - "kind": "parameter", + "name": "i1_prop", + "kind": "var", "kindModifiers": "", "sortText": "11", "displayParts": [ { - "text": "(", - "kind": "punctuation" - }, - { - "text": "parameter", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "value", - "kind": "parameterName" + "text": "i1_prop", + "kind": "localName" }, { "text": ":", @@ -7857,38 +8335,25 @@ "kind": "keyword" } ], - "documentation": [ - { - "text": "this is value", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "arguments", - "kind": "local var", + "name": "i1_r", + "kind": "var", "kindModifiers": "", "sortText": "11", "displayParts": [ { - "text": "(", - "kind": "punctuation" - }, - { - "text": "local var", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "arguments", - "kind": "propertyName" + "text": "i1_r", + "kind": "localName" }, { "text": ":", @@ -7899,20 +8364,20 @@ "kind": "space" }, { - "text": "IArguments", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], "documentation": [] }, { - "name": "globalThis", - "kind": "module", + "name": "i1_s_f", + "kind": "var", "kindModifiers": "", - "sortText": "15", + "sortText": "11", "displayParts": [ { - "text": "module", + "text": "var", "kind": "keyword" }, { @@ -7920,36 +8385,23 @@ "kind": "space" }, { - "text": "globalThis", - "kind": "moduleName" - } - ], - "documentation": [] - }, - { - "name": "eval", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ + "text": "i1_s_f", + "kind": "localName" + }, { - "text": "function", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, - { - "text": "eval", - "kind": "functionName" - }, { "text": "(", "kind": "punctuation" }, { - "text": "x", + "text": "b", "kind": "parameterName" }, { @@ -7961,7 +8413,7 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" }, { @@ -7969,7 +8421,11 @@ "kind": "punctuation" }, { - "text": ":", + "text": " ", + "kind": "space" + }, + { + "text": "=>", "kind": "punctuation" }, { @@ -7977,44 +8433,20 @@ "kind": "space" }, { - "text": "any", + "text": "number", "kind": "keyword" } ], - "documentation": [ - { - "text": "Evaluates JavaScript code and executes it.", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "x", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A String value that contains valid JavaScript code.", - "kind": "text" - } - ] - } - ] + "documentation": [] }, { - "name": "parseInt", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "name": "i1_s_nc_p", + "kind": "var", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "function", + "text": "var", "kind": "keyword" }, { @@ -8022,31 +8454,44 @@ "kind": "space" }, { - "text": "parseInt", - "kind": "functionName" + "text": "i1_s_nc_p", + "kind": "localName" }, { - "text": "(", + "text": ":", "kind": "punctuation" }, { - "text": "string", - "kind": "parameterName" + "text": " ", + "kind": "space" }, { - "text": ":", - "kind": "punctuation" + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "i1_s_ncf", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "i1_s_ncf", + "kind": "localName" }, { - "text": ",", + "text": ":", "kind": "punctuation" }, { @@ -8054,12 +8499,12 @@ "kind": "space" }, { - "text": "radix", - "kind": "parameterName" + "text": "(", + "kind": "punctuation" }, { - "text": "?", - "kind": "punctuation" + "text": "b", + "kind": "parameterName" }, { "text": ":", @@ -8078,7 +8523,11 @@ "kind": "punctuation" }, { - "text": ":", + "text": " ", + "kind": "space" + }, + { + "text": "=>", "kind": "punctuation" }, { @@ -8090,57 +8539,16 @@ "kind": "keyword" } ], - "documentation": [ - { - "text": "Converts a string to an integer.", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string to convert into a number.", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "radix", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value between 2 and 36 that specifies the base of the number in `string`.\r\nIf this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal.\r\nAll other strings are considered decimal.", - "kind": "text" - } - ] - } - ] + "documentation": [] }, { - "name": "parseFloat", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "name": "i1_s_ncprop", + "kind": "var", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "function", + "text": "var", "kind": "keyword" }, { @@ -8148,16 +8556,8 @@ "kind": "space" }, { - "text": "parseFloat", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "string", - "kind": "parameterName" + "text": "i1_s_ncprop", + "kind": "localName" }, { "text": ":", @@ -8168,12 +8568,29 @@ "kind": "space" }, { - "text": "string", + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "i1_s_ncr", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "var", "kind": "keyword" }, { - "text": ")", - "kind": "punctuation" + "text": " ", + "kind": "space" + }, + { + "text": "i1_s_ncr", + "kind": "localName" }, { "text": ":", @@ -8188,40 +8605,16 @@ "kind": "keyword" } ], - "documentation": [ - { - "text": "Converts a string to a floating-point number.", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string that contains a floating-point number.", - "kind": "text" - } - ] - } - ] + "documentation": [] }, { - "name": "isNaN", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "name": "i1_s_p", + "kind": "var", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "function", + "text": "var", "kind": "keyword" }, { @@ -8229,16 +8622,8 @@ "kind": "space" }, { - "text": "isNaN", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "number", - "kind": "parameterName" + "text": "i1_s_p", + "kind": "localName" }, { "text": ":", @@ -8251,10 +8636,27 @@ { "text": "number", "kind": "keyword" - }, + } + ], + "documentation": [] + }, + { + "name": "i1_s_prop", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { - "text": ")", - "kind": "punctuation" + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "i1_s_prop", + "kind": "localName" }, { "text": ":", @@ -8265,44 +8667,20 @@ "kind": "space" }, { - "text": "boolean", + "text": "number", "kind": "keyword" } ], - "documentation": [ - { - "text": "Returns a Boolean value that indicates whether a value is the reserved value NaN (not a number).", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "number", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A numeric value.", - "kind": "text" - } - ] - } - ] + "documentation": [] }, { - "name": "isFinite", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "name": "i1_s_r", + "kind": "var", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "function", + "text": "var", "kind": "keyword" }, { @@ -8310,16 +8688,8 @@ "kind": "space" }, { - "text": "isFinite", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "number", - "kind": "parameterName" + "text": "i1_s_r", + "kind": "localName" }, { "text": ":", @@ -8332,11 +8702,36 @@ { "text": "number", "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "value", + "kind": "parameter", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "parameter", + "kind": "text" }, { "text": ")", "kind": "punctuation" }, + { + "text": " ", + "kind": "space" + }, + { + "text": "value", + "kind": "parameterName" + }, { "text": ":", "kind": "punctuation" @@ -8346,44 +8741,25 @@ "kind": "space" }, { - "text": "boolean", + "text": "number", "kind": "keyword" } ], "documentation": [ { - "text": "Determines whether a supplied number is finite.", + "text": "this is value", "kind": "text" } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "number", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Any numeric value.", - "kind": "text" - } - ] - } ] }, { - "name": "decodeURI", - "kind": "function", + "name": "Array", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -8391,32 +8767,36 @@ "kind": "space" }, { - "text": "decodeURI", - "kind": "functionName" + "text": "Array", + "kind": "localName" }, { - "text": "(", + "text": "<", "kind": "punctuation" }, { - "text": "encodedURI", - "kind": "parameterName" + "text": "T", + "kind": "typeParameterName" }, { - "text": ":", + "text": ">", "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, { - "text": "string", + "text": "var", "kind": "keyword" }, { - "text": ")", - "kind": "punctuation" + "text": " ", + "kind": "space" + }, + { + "text": "Array", + "kind": "localName" }, { "text": ":", @@ -8427,44 +8807,20 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Gets the unencoded version of an encoded Uniform Resource Identifier (URI).", - "kind": "text" + "text": "ArrayConstructor", + "kind": "interfaceName" } ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "encodedURI", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI.", - "kind": "text" - } - ] - } - ] + "documentation": [] }, { - "name": "decodeURIComponent", - "kind": "function", + "name": "ArrayBuffer", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -8472,32 +8828,24 @@ "kind": "space" }, { - "text": "decodeURIComponent", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" + "text": "ArrayBuffer", + "kind": "localName" }, { - "text": "encodedURIComponent", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "ArrayBuffer", + "kind": "localName" }, { "text": ":", @@ -8508,44 +8856,61 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "ArrayBufferConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).", + "text": "Represents a raw buffer of binary data, which is used to store data for the\r\ndifferent typed arrays. ArrayBuffers cannot be read from or written to directly,\r\nbut can be passed to a typed array or DataView Object to interpret the raw\r\nbuffer as needed.", "kind": "text" } - ], - "tags": [ + ] + }, + { + "name": "as", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "encodedURIComponent", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI component.", - "kind": "text" - } - ] + "text": "as", + "kind": "keyword" } ] }, { - "name": "encodeURI", - "kind": "function", + "name": "async", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "async", + "kind": "keyword" + } + ] + }, + { + "name": "await", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "await", + "kind": "keyword" + } + ] + }, + { + "name": "Boolean", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -8553,32 +8918,24 @@ "kind": "space" }, { - "text": "encodeURI", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" + "text": "Boolean", + "kind": "localName" }, { - "text": "uri", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "Boolean", + "kind": "localName" }, { "text": ":", @@ -8589,44 +8946,92 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "BooleanConstructor", + "kind": "interfaceName" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "break", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "Encodes a text string as a valid Uniform Resource Identifier (URI)", - "kind": "text" + "text": "break", + "kind": "keyword" } - ], - "tags": [ + ] + }, + { + "name": "case", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "uri", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI.", - "kind": "text" - } - ] + "text": "case", + "kind": "keyword" } ] }, { - "name": "encodeURIComponent", - "kind": "function", + "name": "catch", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "catch", + "kind": "keyword" + } + ] + }, + { + "name": "class", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + } + ] + }, + { + "name": "const", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + } + ] + }, + { + "name": "continue", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "continue", + "kind": "keyword" + } + ] + }, + { + "name": "DataView", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -8634,35 +9039,27 @@ "kind": "space" }, { - "text": "encodeURIComponent", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" + "text": "DataView", + "kind": "localName" }, { - "text": "uriComponent", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "string", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" + "text": "DataView", + "kind": "localName" }, { - "text": "|", + "text": ":", "kind": "punctuation" }, { @@ -8670,7 +9067,20 @@ "kind": "space" }, { - "text": "number", + "text": "DataViewConstructor", + "kind": "interfaceName" + } + ], + "documentation": [] + }, + { + "name": "Date", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", "kind": "keyword" }, { @@ -8678,20 +9088,24 @@ "kind": "space" }, { - "text": "|", - "kind": "punctuation" + "text": "Date", + "kind": "localName" }, { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, { - "text": "boolean", + "text": "var", "kind": "keyword" }, { - "text": ")", - "kind": "punctuation" + "text": " ", + "kind": "space" + }, + { + "text": "Date", + "kind": "localName" }, { "text": ":", @@ -8702,41 +9116,34 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "DateConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "Encodes a text string as a valid component of a Uniform Resource Identifier (URI).", + "text": "Enables basic storage and retrieval of dates and times.", "kind": "text" } - ], - "tags": [ + ] + }, + { + "name": "debugger", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "uriComponent", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI component.", - "kind": "text" - } - ] + "text": "debugger", + "kind": "keyword" } ] }, { - "name": "escape", + "name": "decodeURI", "kind": "function", - "kindModifiers": "deprecated,declare", - "sortText": "23", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { "text": "function", @@ -8747,7 +9154,7 @@ "kind": "space" }, { - "text": "escape", + "text": "decodeURI", "kind": "functionName" }, { @@ -8755,7 +9162,7 @@ "kind": "punctuation" }, { - "text": "string", + "text": "encodedURI", "kind": "parameterName" }, { @@ -8789,25 +9196,16 @@ ], "documentation": [ { - "text": "Computes a new string in which certain characters have been replaced by a hexadecimal escape sequence.", + "text": "Gets the unencoded version of an encoded Uniform Resource Identifier (URI).", "kind": "text" } ], "tags": [ - { - "name": "deprecated", - "text": [ - { - "text": "A legacy feature for browser compatibility", - "kind": "text" - } - ] - }, { "name": "param", "text": [ { - "text": "string", + "text": "encodedURI", "kind": "parameterName" }, { @@ -8815,7 +9213,7 @@ "kind": "space" }, { - "text": "A string value", + "text": "A value representing an encoded URI.", "kind": "text" } ] @@ -8823,10 +9221,10 @@ ] }, { - "name": "unescape", + "name": "decodeURIComponent", "kind": "function", - "kindModifiers": "deprecated,declare", - "sortText": "23", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { "text": "function", @@ -8837,7 +9235,7 @@ "kind": "space" }, { - "text": "unescape", + "text": "decodeURIComponent", "kind": "functionName" }, { @@ -8845,7 +9243,7 @@ "kind": "punctuation" }, { - "text": "string", + "text": "encodedURIComponent", "kind": "parameterName" }, { @@ -8879,25 +9277,16 @@ ], "documentation": [ { - "text": "Computes a new string in which hexadecimal escape sequences are replaced with the character that it represents.", + "text": "Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).", "kind": "text" } ], "tags": [ - { - "name": "deprecated", - "text": [ - { - "text": "A legacy feature for browser compatibility", - "kind": "text" - } - ] - }, { "name": "param", "text": [ { - "text": "string", + "text": "encodedURIComponent", "kind": "parameterName" }, { @@ -8905,7 +9294,7 @@ "kind": "space" }, { - "text": "A string value", + "text": "A value representing an encoded URI component.", "kind": "text" } ] @@ -8913,13 +9302,61 @@ ] }, { - "name": "NaN", - "kind": "var", + "name": "default", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "default", + "kind": "keyword" + } + ] + }, + { + "name": "delete", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "delete", + "kind": "keyword" + } + ] + }, + { + "name": "do", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "do", + "kind": "keyword" + } + ] + }, + { + "name": "else", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "else", + "kind": "keyword" + } + ] + }, + { + "name": "encodeURI", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "var", + "text": "function", "kind": "keyword" }, { @@ -8927,8 +9364,16 @@ "kind": "space" }, { - "text": "NaN", - "kind": "localName" + "text": "encodeURI", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "uri", + "kind": "parameterName" }, { "text": ":", @@ -8939,20 +9384,60 @@ "kind": "space" }, { - "text": "number", + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Encodes a text string as a valid Uniform Resource Identifier (URI)", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "uri", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI.", + "kind": "text" + } + ] + } + ] }, { - "name": "Infinity", - "kind": "var", + "name": "encodeURIComponent", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "var", + "text": "function", "kind": "keyword" }, { @@ -8960,8 +9445,16 @@ "kind": "space" }, { - "text": "Infinity", - "kind": "localName" + "text": "encodeURIComponent", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "uriComponent", + "kind": "parameterName" }, { "text": ":", @@ -8972,20 +9465,7 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "Object", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", + "text": "string", "kind": "keyword" }, { @@ -8993,15 +9473,15 @@ "kind": "space" }, { - "text": "Object", - "kind": "localName" + "text": "|", + "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": " ", + "kind": "space" }, { - "text": "var", + "text": "number", "kind": "keyword" }, { @@ -9009,8 +9489,20 @@ "kind": "space" }, { - "text": "Object", - "kind": "localName" + "text": "|", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "boolean", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -9021,19 +9513,50 @@ "kind": "space" }, { - "text": "ObjectConstructor", - "kind": "interfaceName" + "text": "string", + "kind": "keyword" } ], "documentation": [ { - "text": "Provides functionality common to all JavaScript objects.", + "text": "Encodes a text string as a valid component of a Uniform Resource Identifier (URI).", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "uriComponent", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI component.", + "kind": "text" + } + ] + } ] }, { - "name": "Function", + "name": "enum", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "enum", + "kind": "keyword" + } + ] + }, + { + "name": "Error", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -9047,7 +9570,7 @@ "kind": "space" }, { - "text": "Function", + "text": "Error", "kind": "localName" }, { @@ -9063,7 +9586,7 @@ "kind": "space" }, { - "text": "Function", + "text": "Error", "kind": "localName" }, { @@ -9075,25 +9598,20 @@ "kind": "space" }, { - "text": "FunctionConstructor", + "text": "ErrorConstructor", "kind": "interfaceName" } ], - "documentation": [ - { - "text": "Creates a new function.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "String", - "kind": "var", + "name": "eval", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -9101,24 +9619,32 @@ "kind": "space" }, { - "text": "String", - "kind": "localName" + "text": "eval", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "x", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "String", - "kind": "localName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -9129,19 +9655,38 @@ "kind": "space" }, { - "text": "StringConstructor", - "kind": "interfaceName" + "text": "any", + "kind": "keyword" } ], "documentation": [ { - "text": "Allows manipulation and formatting of text strings and determination and location of substrings within strings.", + "text": "Evaluates JavaScript code and executes it.", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "x", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A String value that contains valid JavaScript code.", + "kind": "text" + } + ] + } ] }, { - "name": "Boolean", + "name": "EvalError", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -9155,7 +9700,7 @@ "kind": "space" }, { - "text": "Boolean", + "text": "EvalError", "kind": "localName" }, { @@ -9171,7 +9716,7 @@ "kind": "space" }, { - "text": "Boolean", + "text": "EvalError", "kind": "localName" }, { @@ -9183,14 +9728,62 @@ "kind": "space" }, { - "text": "BooleanConstructor", + "text": "EvalErrorConstructor", "kind": "interfaceName" } ], "documentation": [] }, { - "name": "Number", + "name": "export", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "export", + "kind": "keyword" + } + ] + }, + { + "name": "extends", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "extends", + "kind": "keyword" + } + ] + }, + { + "name": "false", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "false", + "kind": "keyword" + } + ] + }, + { + "name": "finally", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "finally", + "kind": "keyword" + } + ] + }, + { + "name": "Float32Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -9204,7 +9797,7 @@ "kind": "space" }, { - "text": "Number", + "text": "Float32Array", "kind": "localName" }, { @@ -9220,7 +9813,7 @@ "kind": "space" }, { - "text": "Number", + "text": "Float32Array", "kind": "localName" }, { @@ -9232,19 +9825,19 @@ "kind": "space" }, { - "text": "NumberConstructor", + "text": "Float32ArrayConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "An object that represents a number of any kind. All JavaScript numbers are 64-bit floating-point numbers.", + "text": "A typed array of 32-bit float values. The contents are initialized to 0. If the requested number\r\nof bytes could not be allocated an exception is raised.", "kind": "text" } ] }, { - "name": "Math", + "name": "Float64Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -9258,7 +9851,7 @@ "kind": "space" }, { - "text": "Math", + "text": "Float64Array", "kind": "localName" }, { @@ -9274,7 +9867,7 @@ "kind": "space" }, { - "text": "Math", + "text": "Float64Array", "kind": "localName" }, { @@ -9286,19 +9879,43 @@ "kind": "space" }, { - "text": "Math", - "kind": "localName" + "text": "Float64ArrayConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "An intrinsic object that provides basic mathematics functionality and constants.", + "text": "A typed array of 64-bit float values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", "kind": "text" } ] }, { - "name": "Date", + "name": "for", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "for", + "kind": "keyword" + } + ] + }, + { + "name": "function", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + } + ] + }, + { + "name": "Function", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -9312,7 +9929,7 @@ "kind": "space" }, { - "text": "Date", + "text": "Function", "kind": "localName" }, { @@ -9328,7 +9945,7 @@ "kind": "space" }, { - "text": "Date", + "text": "Function", "kind": "localName" }, { @@ -9340,25 +9957,25 @@ "kind": "space" }, { - "text": "DateConstructor", + "text": "FunctionConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "Enables basic storage and retrieval of dates and times.", + "text": "Creates a new function.", "kind": "text" } ] }, { - "name": "RegExp", - "kind": "var", - "kindModifiers": "declare", + "name": "globalThis", + "kind": "module", + "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "module", "kind": "keyword" }, { @@ -9366,13 +9983,66 @@ "kind": "space" }, { - "text": "RegExp", - "kind": "localName" - }, + "text": "globalThis", + "kind": "moduleName" + } + ], + "documentation": [] + }, + { + "name": "if", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "\n", - "kind": "lineBreak" - }, + "text": "if", + "kind": "keyword" + } + ] + }, + { + "name": "implements", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "implements", + "kind": "keyword" + } + ] + }, + { + "name": "import", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "import", + "kind": "keyword" + } + ] + }, + { + "name": "in", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "in", + "kind": "keyword" + } + ] + }, + { + "name": "Infinity", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { "text": "var", "kind": "keyword" @@ -9382,7 +10052,7 @@ "kind": "space" }, { - "text": "RegExp", + "text": "Infinity", "kind": "localName" }, { @@ -9394,14 +10064,26 @@ "kind": "space" }, { - "text": "RegExpConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], "documentation": [] }, { - "name": "Error", + "name": "instanceof", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "instanceof", + "kind": "keyword" + } + ] + }, + { + "name": "Int16Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -9415,7 +10097,7 @@ "kind": "space" }, { - "text": "Error", + "text": "Int16Array", "kind": "localName" }, { @@ -9431,7 +10113,7 @@ "kind": "space" }, { - "text": "Error", + "text": "Int16Array", "kind": "localName" }, { @@ -9443,14 +10125,19 @@ "kind": "space" }, { - "text": "ErrorConstructor", + "text": "Int16ArrayConstructor", "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "A typed array of 16-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] }, { - "name": "EvalError", + "name": "Int32Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -9464,7 +10151,7 @@ "kind": "space" }, { - "text": "EvalError", + "text": "Int32Array", "kind": "localName" }, { @@ -9480,7 +10167,7 @@ "kind": "space" }, { - "text": "EvalError", + "text": "Int32Array", "kind": "localName" }, { @@ -9492,14 +10179,19 @@ "kind": "space" }, { - "text": "EvalErrorConstructor", + "text": "Int32ArrayConstructor", "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "A typed array of 32-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] }, { - "name": "RangeError", + "name": "Int8Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -9513,7 +10205,7 @@ "kind": "space" }, { - "text": "RangeError", + "text": "Int8Array", "kind": "localName" }, { @@ -9529,7 +10221,7 @@ "kind": "space" }, { - "text": "RangeError", + "text": "Int8Array", "kind": "localName" }, { @@ -9541,36 +10233,37 @@ "kind": "space" }, { - "text": "RangeErrorConstructor", + "text": "Int8ArrayConstructor", "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "A typed array of 8-bit integer values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] }, { - "name": "ReferenceError", - "kind": "var", - "kindModifiers": "declare", + "name": "interface", + "kind": "keyword", + "kindModifiers": "", "sortText": "15", "displayParts": [ { "text": "interface", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "ReferenceError", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, + } + ] + }, + { + "name": "Intl", + "kind": "module", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { - "text": "var", + "text": "namespace", "kind": "keyword" }, { @@ -9578,32 +10271,20 @@ "kind": "space" }, { - "text": "ReferenceError", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "ReferenceErrorConstructor", - "kind": "interfaceName" + "text": "Intl", + "kind": "moduleName" } ], "documentation": [] }, { - "name": "SyntaxError", - "kind": "var", + "name": "isFinite", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -9611,24 +10292,32 @@ "kind": "space" }, { - "text": "SyntaxError", - "kind": "localName" + "text": "isFinite", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "number", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "SyntaxError", - "kind": "localName" + "text": "number", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -9639,20 +10328,44 @@ "kind": "space" }, { - "text": "SyntaxErrorConstructor", - "kind": "interfaceName" + "text": "boolean", + "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Determines whether a supplied number is finite.", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "number", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Any numeric value.", + "kind": "text" + } + ] + } + ] }, { - "name": "TypeError", - "kind": "var", + "name": "isNaN", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -9660,24 +10373,32 @@ "kind": "space" }, { - "text": "TypeError", - "kind": "localName" + "text": "isNaN", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "number", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "TypeError", - "kind": "localName" + "text": "number", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -9688,14 +10409,38 @@ "kind": "space" }, { - "text": "TypeErrorConstructor", - "kind": "interfaceName" + "text": "boolean", + "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Returns a Boolean value that indicates whether a value is the reserved value NaN (not a number).", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "number", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A numeric value.", + "kind": "text" + } + ] + } + ] }, { - "name": "URIError", + "name": "JSON", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -9709,7 +10454,7 @@ "kind": "space" }, { - "text": "URIError", + "text": "JSON", "kind": "localName" }, { @@ -9725,7 +10470,7 @@ "kind": "space" }, { - "text": "URIError", + "text": "JSON", "kind": "localName" }, { @@ -9737,14 +10482,31 @@ "kind": "space" }, { - "text": "URIErrorConstructor", - "kind": "interfaceName" + "text": "JSON", + "kind": "localName" } ], - "documentation": [] + "documentation": [ + { + "text": "An intrinsic object that provides functions to convert JavaScript values to and from the JavaScript Object Notation (JSON) format.", + "kind": "text" + } + ] }, { - "name": "JSON", + "name": "let", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "let", + "kind": "keyword" + } + ] + }, + { + "name": "Math", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -9758,7 +10520,7 @@ "kind": "space" }, { - "text": "JSON", + "text": "Math", "kind": "localName" }, { @@ -9774,7 +10536,7 @@ "kind": "space" }, { - "text": "JSON", + "text": "Math", "kind": "localName" }, { @@ -9786,51 +10548,23 @@ "kind": "space" }, { - "text": "JSON", + "text": "Math", "kind": "localName" } ], "documentation": [ { - "text": "An intrinsic object that provides functions to convert JavaScript values to and from the JavaScript Object Notation (JSON) format.", + "text": "An intrinsic object that provides basic mathematics functionality and constants.", "kind": "text" } ] }, { - "name": "Array", + "name": "NaN", "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Array", - "kind": "localName" - }, - { - "text": "<", - "kind": "punctuation" - }, - { - "text": "T", - "kind": "typeParameterName" - }, - { - "text": ">", - "kind": "punctuation" - }, - { - "text": "\n", - "kind": "lineBreak" - }, { "text": "var", "kind": "keyword" @@ -9840,7 +10574,7 @@ "kind": "space" }, { - "text": "Array", + "text": "NaN", "kind": "localName" }, { @@ -9852,14 +10586,38 @@ "kind": "space" }, { - "text": "ArrayConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], "documentation": [] }, { - "name": "ArrayBuffer", + "name": "new", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "new", + "kind": "keyword" + } + ] + }, + { + "name": "null", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "null", + "kind": "keyword" + } + ] + }, + { + "name": "Number", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -9873,7 +10631,7 @@ "kind": "space" }, { - "text": "ArrayBuffer", + "text": "Number", "kind": "localName" }, { @@ -9889,7 +10647,7 @@ "kind": "space" }, { - "text": "ArrayBuffer", + "text": "Number", "kind": "localName" }, { @@ -9901,19 +10659,19 @@ "kind": "space" }, { - "text": "ArrayBufferConstructor", + "text": "NumberConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "Represents a raw buffer of binary data, which is used to store data for the\r\ndifferent typed arrays. ArrayBuffers cannot be read from or written to directly,\r\nbut can be passed to a typed array or DataView Object to interpret the raw\r\nbuffer as needed.", + "text": "An object that represents a number of any kind. All JavaScript numbers are 64-bit floating-point numbers.", "kind": "text" } ] }, { - "name": "DataView", + "name": "Object", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -9927,7 +10685,7 @@ "kind": "space" }, { - "text": "DataView", + "text": "Object", "kind": "localName" }, { @@ -9943,7 +10701,7 @@ "kind": "space" }, { - "text": "DataView", + "text": "Object", "kind": "localName" }, { @@ -9955,20 +10713,37 @@ "kind": "space" }, { - "text": "DataViewConstructor", + "text": "ObjectConstructor", "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "Provides functionality common to all JavaScript objects.", + "kind": "text" + } + ] }, { - "name": "Int8Array", - "kind": "var", + "name": "package", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "package", + "kind": "keyword" + } + ] + }, + { + "name": "parseFloat", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -9976,24 +10751,32 @@ "kind": "space" }, { - "text": "Int8Array", - "kind": "localName" + "text": "parseFloat", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "string", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Int8Array", - "kind": "localName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -10004,25 +10787,44 @@ "kind": "space" }, { - "text": "Int8ArrayConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], "documentation": [ { - "text": "A typed array of 8-bit integer values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", + "text": "Converts a string to a floating-point number.", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string that contains a floating-point number.", + "kind": "text" + } + ] + } ] }, { - "name": "Uint8Array", - "kind": "var", + "name": "parseInt", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -10030,24 +10832,44 @@ "kind": "space" }, { - "text": "Uint8Array", - "kind": "localName" + "text": "parseInt", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", + "text": "string", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", "kind": "keyword" }, + { + "text": ",", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "Uint8Array", - "kind": "localName" + "text": "radix", + "kind": "parameterName" + }, + { + "text": "?", + "kind": "punctuation" }, { "text": ":", @@ -10058,19 +10880,71 @@ "kind": "space" }, { - "text": "Uint8ArrayConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" } ], "documentation": [ { - "text": "A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "text": "Converts a string to an integer.", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string to convert into a number.", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "radix", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value between 2 and 36 that specifies the base of the number in `string`.\r\nIf this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal.\r\nAll other strings are considered decimal.", + "kind": "text" + } + ] + } ] }, { - "name": "Uint8ClampedArray", + "name": "RangeError", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -10084,7 +10958,7 @@ "kind": "space" }, { - "text": "Uint8ClampedArray", + "text": "RangeError", "kind": "localName" }, { @@ -10100,7 +10974,7 @@ "kind": "space" }, { - "text": "Uint8ClampedArray", + "text": "RangeError", "kind": "localName" }, { @@ -10112,19 +10986,14 @@ "kind": "space" }, { - "text": "Uint8ClampedArrayConstructor", + "text": "RangeErrorConstructor", "kind": "interfaceName" } ], - "documentation": [ - { - "text": "A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0.\r\nIf the requested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "Int16Array", + "name": "ReferenceError", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -10138,7 +11007,7 @@ "kind": "space" }, { - "text": "Int16Array", + "text": "ReferenceError", "kind": "localName" }, { @@ -10154,7 +11023,7 @@ "kind": "space" }, { - "text": "Int16Array", + "text": "ReferenceError", "kind": "localName" }, { @@ -10166,19 +11035,14 @@ "kind": "space" }, { - "text": "Int16ArrayConstructor", + "text": "ReferenceErrorConstructor", "kind": "interfaceName" } ], - "documentation": [ - { - "text": "A typed array of 16-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "Uint16Array", + "name": "RegExp", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -10192,7 +11056,7 @@ "kind": "space" }, { - "text": "Uint16Array", + "text": "RegExp", "kind": "localName" }, { @@ -10208,7 +11072,7 @@ "kind": "space" }, { - "text": "Uint16Array", + "text": "RegExp", "kind": "localName" }, { @@ -10220,19 +11084,26 @@ "kind": "space" }, { - "text": "Uint16ArrayConstructor", + "text": "RegExpConstructor", "kind": "interfaceName" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "return", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" + "text": "return", + "kind": "keyword" } ] }, { - "name": "Int32Array", + "name": "String", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -10246,7 +11117,7 @@ "kind": "space" }, { - "text": "Int32Array", + "text": "String", "kind": "localName" }, { @@ -10262,7 +11133,7 @@ "kind": "space" }, { - "text": "Int32Array", + "text": "String", "kind": "localName" }, { @@ -10274,19 +11145,43 @@ "kind": "space" }, { - "text": "Int32ArrayConstructor", + "text": "StringConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "A typed array of 32-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "text": "Allows manipulation and formatting of text strings and determination and location of substrings within strings.", "kind": "text" } ] }, { - "name": "Uint32Array", + "name": "super", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "super", + "kind": "keyword" + } + ] + }, + { + "name": "switch", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "switch", + "kind": "keyword" + } + ] + }, + { + "name": "SyntaxError", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -10300,7 +11195,7 @@ "kind": "space" }, { - "text": "Uint32Array", + "text": "SyntaxError", "kind": "localName" }, { @@ -10316,7 +11211,7 @@ "kind": "space" }, { - "text": "Uint32Array", + "text": "SyntaxError", "kind": "localName" }, { @@ -10328,19 +11223,62 @@ "kind": "space" }, { - "text": "Uint32ArrayConstructor", + "text": "SyntaxErrorConstructor", "kind": "interfaceName" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "this", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" + "text": "this", + "kind": "keyword" } ] }, { - "name": "Float32Array", + "name": "throw", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "throw", + "kind": "keyword" + } + ] + }, + { + "name": "true", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "true", + "kind": "keyword" + } + ] + }, + { + "name": "try", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "try", + "kind": "keyword" + } + ] + }, + { + "name": "TypeError", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -10354,7 +11292,7 @@ "kind": "space" }, { - "text": "Float32Array", + "text": "TypeError", "kind": "localName" }, { @@ -10370,7 +11308,7 @@ "kind": "space" }, { - "text": "Float32Array", + "text": "TypeError", "kind": "localName" }, { @@ -10382,19 +11320,26 @@ "kind": "space" }, { - "text": "Float32ArrayConstructor", + "text": "TypeErrorConstructor", "kind": "interfaceName" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "typeof", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "A typed array of 32-bit float values. The contents are initialized to 0. If the requested number\r\nof bytes could not be allocated an exception is raised.", - "kind": "text" + "text": "typeof", + "kind": "keyword" } ] }, { - "name": "Float64Array", + "name": "Uint16Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -10408,7 +11353,7 @@ "kind": "space" }, { - "text": "Float64Array", + "text": "Uint16Array", "kind": "localName" }, { @@ -10424,7 +11369,7 @@ "kind": "space" }, { - "text": "Float64Array", + "text": "Uint16Array", "kind": "localName" }, { @@ -10436,25 +11381,25 @@ "kind": "space" }, { - "text": "Float64ArrayConstructor", + "text": "Uint16ArrayConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "A typed array of 64-bit float values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", + "text": "A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", "kind": "text" } ] }, { - "name": "Intl", - "kind": "module", + "name": "Uint32Array", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "namespace", + "text": "interface", "kind": "keyword" }, { @@ -10462,20 +11407,15 @@ "kind": "space" }, { - "text": "Intl", - "kind": "moduleName" - } - ], - "documentation": [] - }, - { - "name": "c1", - "kind": "class", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ + "text": "Uint32Array", + "kind": "localName" + }, { - "text": "class", + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" }, { @@ -10483,25 +11423,37 @@ "kind": "space" }, { - "text": "c1", - "kind": "className" + "text": "Uint32Array", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint32ArrayConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "This is comment for c1", + "text": "A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", "kind": "text" } ] }, { - "name": "i1", + "name": "Uint8Array", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -10509,30 +11461,13 @@ "kind": "space" }, { - "text": "i1", + "text": "Uint8Array", "kind": "localName" }, { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, - { - "text": "c1", - "kind": "className" - } - ], - "documentation": [] - }, - { - "name": "i1_p", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ { "text": "var", "kind": "keyword" @@ -10542,7 +11477,7 @@ "kind": "space" }, { - "text": "i1_p", + "text": "Uint8Array", "kind": "localName" }, { @@ -10554,20 +11489,25 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "Uint8ArrayConstructor", + "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] }, { - "name": "i1_f", + "name": "Uint8ClampedArray", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -10575,24 +11515,24 @@ "kind": "space" }, { - "text": "i1_f", + "text": "Uint8ClampedArray", "kind": "localName" }, { - "text": ":", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": " ", - "kind": "space" + "text": "var", + "kind": "keyword" }, { - "text": "(", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": "b", - "kind": "parameterName" + "text": "Uint8ClampedArray", + "kind": "localName" }, { "text": ":", @@ -10603,40 +11543,46 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, + "text": "Uint8ClampedArrayConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ { - "text": " ", - "kind": "space" - }, + "text": "A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0.\r\nIf the requested number of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] + }, + { + "name": "undefined", + "kind": "var", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "=>", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "undefined", + "kind": "propertyName" } ], "documentation": [] }, { - "name": "i1_r", + "name": "URIError", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -10644,30 +11590,13 @@ "kind": "space" }, { - "text": "i1_r", + "text": "URIError", "kind": "localName" }, { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_prop", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ { "text": "var", "kind": "keyword" @@ -10677,7 +11606,7 @@ "kind": "space" }, { - "text": "i1_prop", + "text": "URIError", "kind": "localName" }, { @@ -10689,53 +11618,80 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "URIErrorConstructor", + "kind": "interfaceName" } ], "documentation": [] }, { - "name": "i1_nc_p", - "kind": "var", + "name": "var", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { "text": "var", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "i1_nc_p", - "kind": "localName" - }, + } + ] + }, + { + "name": "void", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": ":", - "kind": "punctuation" - }, + "text": "void", + "kind": "keyword" + } + ] + }, + { + "name": "while", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": " ", - "kind": "space" - }, + "text": "while", + "kind": "keyword" + } + ] + }, + { + "name": "with", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "number", + "text": "with", "kind": "keyword" } - ], - "documentation": [] + ] }, { - "name": "i1_ncf", - "kind": "var", + "name": "yield", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "yield", + "kind": "keyword" + } + ] + }, + { + "name": "escape", + "kind": "function", + "kindModifiers": "deprecated,declare", + "sortText": "z15", + "displayParts": [ + { + "text": "function", "kind": "keyword" }, { @@ -10743,23 +11699,15 @@ "kind": "space" }, { - "text": "i1_ncf", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "escape", + "kind": "functionName" }, { "text": "(", "kind": "punctuation" }, { - "text": "b", + "text": "string", "kind": "parameterName" }, { @@ -10771,7 +11719,7 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" }, { @@ -10779,11 +11727,7 @@ "kind": "punctuation" }, { - "text": " ", - "kind": "space" - }, - { - "text": "=>", + "text": ":", "kind": "punctuation" }, { @@ -10791,20 +11735,53 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Computes a new string in which certain characters have been replaced by a hexadecimal escape sequence.", + "kind": "text" + } + ], + "tags": [ + { + "name": "deprecated", + "text": [ + { + "text": "A legacy feature for browser compatibility", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string value", + "kind": "text" + } + ] + } + ] }, { - "name": "i1_ncr", - "kind": "var", - "kindModifiers": "", - "sortText": "11", + "name": "unescape", + "kind": "function", + "kindModifiers": "deprecated,declare", + "sortText": "z15", "displayParts": [ { - "text": "var", + "text": "function", "kind": "keyword" }, { @@ -10812,41 +11789,32 @@ "kind": "space" }, { - "text": "i1_ncr", - "kind": "localName" + "text": "unescape", + "kind": "functionName" }, { - "text": ":", + "text": "(", "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "string", + "kind": "parameterName" }, { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_ncprop", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "i1_ncprop", - "kind": "localName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -10857,29 +11825,96 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" } ], - "documentation": [] - }, - { - "name": "i1_s_p", - "kind": "var", - "kindModifiers": "", + "documentation": [ + { + "text": "Computes a new string in which hexadecimal escape sequences are replaced with the character that it represents.", + "kind": "text" + } + ], + "tags": [ + { + "name": "deprecated", + "text": [ + { + "text": "A legacy feature for browser compatibility", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string value", + "kind": "text" + } + ] + } + ] + } + ] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/completionsCommentsClassMembers.ts", + "position": 566, + "name": "16" + }, + "completionList": { + "isGlobalCompletion": false, + "isMemberCompletion": true, + "isNewIdentifierLocation": false, + "optionalReplacementSpan": { + "start": 566, + "length": 2 + }, + "entries": [ + { + "name": "nc_p1", + "kind": "property", + "kindModifiers": "public", "sortText": "11", "displayParts": [ { - "text": "var", - "kind": "keyword" + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "i1_s_p", - "kind": "localName" + "text": "c1", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "nc_p1", + "kind": "propertyName" }, { "text": ":", @@ -10897,30 +11932,38 @@ "documentation": [] }, { - "name": "i1_s_f", - "kind": "var", - "kindModifiers": "", + "name": "nc_p2", + "kind": "method", + "kindModifiers": "public", "sortText": "11", "displayParts": [ { - "text": "var", - "kind": "keyword" + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "i1_s_f", - "kind": "localName" + "text": "c1", + "kind": "className" }, { - "text": ":", + "text": ".", "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "nc_p2", + "kind": "methodName" }, { "text": "(", @@ -10947,11 +11990,7 @@ "kind": "punctuation" }, { - "text": " ", - "kind": "space" - }, - { - "text": "=>", + "text": ":", "kind": "punctuation" }, { @@ -10966,25 +12005,21 @@ "documentation": [] }, { - "name": "i1_s_r", - "kind": "var", - "kindModifiers": "", + "name": "nc_p3", + "kind": "property", + "kindModifiers": "public", "sortText": "11", "displayParts": [ { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "i1_s_r", - "kind": "localName" + "text": "property", + "kind": "text" }, { - "text": ":", + "text": ")", "kind": "punctuation" }, { @@ -10992,29 +12027,16 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_s_prop", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "var", - "kind": "keyword" + "text": "c1", + "kind": "className" }, { - "text": " ", - "kind": "space" + "text": ".", + "kind": "punctuation" }, { - "text": "i1_s_prop", - "kind": "localName" + "text": "nc_p3", + "kind": "propertyName" }, { "text": ":", @@ -11032,22 +12054,38 @@ "documentation": [] }, { - "name": "i1_s_nc_p", - "kind": "var", - "kindModifiers": "", + "name": "nc_pp1", + "kind": "property", + "kindModifiers": "private", "sortText": "11", "displayParts": [ { - "text": "var", - "kind": "keyword" + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "i1_s_nc_p", - "kind": "localName" + "text": "c1", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "nc_pp1", + "kind": "propertyName" }, { "text": ":", @@ -11065,30 +12103,38 @@ "documentation": [] }, { - "name": "i1_s_ncf", - "kind": "var", - "kindModifiers": "", + "name": "nc_pp2", + "kind": "method", + "kindModifiers": "private", "sortText": "11", "displayParts": [ { - "text": "var", - "kind": "keyword" + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "i1_s_ncf", - "kind": "localName" + "text": "c1", + "kind": "className" }, { - "text": ":", + "text": ".", "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "nc_pp2", + "kind": "methodName" }, { "text": "(", @@ -11115,11 +12161,7 @@ "kind": "punctuation" }, { - "text": " ", - "kind": "space" - }, - { - "text": "=>", + "text": ":", "kind": "punctuation" }, { @@ -11134,22 +12176,38 @@ "documentation": [] }, { - "name": "i1_s_ncr", - "kind": "var", - "kindModifiers": "", + "name": "nc_pp3", + "kind": "property", + "kindModifiers": "private", "sortText": "11", "displayParts": [ { - "text": "var", - "kind": "keyword" + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "i1_s_ncr", - "kind": "localName" + "text": "c1", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "nc_pp3", + "kind": "propertyName" }, { "text": ":", @@ -11167,22 +12225,38 @@ "documentation": [] }, { - "name": "i1_s_ncprop", - "kind": "var", - "kindModifiers": "", + "name": "p1", + "kind": "property", + "kindModifiers": "public", "sortText": "11", "displayParts": [ { - "text": "var", - "kind": "keyword" + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "i1_s_ncprop", - "kind": "localName" + "text": "c1", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "p1", + "kind": "propertyName" }, { "text": ":", @@ -11197,25 +12271,54 @@ "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "p1 is property of c1", + "kind": "text" + } + ] }, { - "name": "i1_c", - "kind": "var", - "kindModifiers": "", + "name": "p2", + "kind": "method", + "kindModifiers": "public", "sortText": "11", "displayParts": [ { - "text": "var", - "kind": "keyword" + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "i1_c", - "kind": "localName" + "text": "c1", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "p2", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "b", + "kind": "parameterName" }, { "text": ":", @@ -11226,58 +12329,66 @@ "kind": "space" }, { - "text": "typeof", + "text": "number", "kind": "keyword" }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "c1", - "kind": "className" + "text": "number", + "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "sum with property", + "kind": "text" + } + ] }, { - "name": "cProperties", - "kind": "class", - "kindModifiers": "", + "name": "p3", + "kind": "property", + "kindModifiers": "public", "sortText": "11", "displayParts": [ { - "text": "class", - "kind": "keyword" + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "cProperties", + "text": "c1", "kind": "className" - } - ], - "documentation": [] - }, - { - "name": "cProperties_i", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "var", - "kind": "keyword" }, { - "text": " ", - "kind": "space" + "text": ".", + "kind": "punctuation" }, { - "text": "cProperties_i", - "kind": "localName" + "text": "p3", + "kind": "propertyName" }, { "text": ":", @@ -11288,633 +12399,585 @@ "kind": "space" }, { - "text": "cProperties", - "kind": "className" + "text": "number", + "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "getter property 1", + "kind": "text" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "setter property 1", + "kind": "text" + } + ] }, { - "name": "cWithConstructorProperty", - "kind": "class", - "kindModifiers": "", + "name": "pp1", + "kind": "property", + "kindModifiers": "private", "sortText": "11", "displayParts": [ { - "text": "class", - "kind": "keyword" + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "cWithConstructorProperty", + "text": "c1", "kind": "className" - } - ], - "documentation": [] - }, - { - "name": "undefined", - "kind": "var", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "var", - "kind": "keyword" + "text": ".", + "kind": "punctuation" + }, + { + "text": "pp1", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "undefined", - "kind": "propertyName" + "text": "number", + "kind": "keyword" } ], - "documentation": [] - }, - { - "name": "break", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "documentation": [ { - "text": "break", - "kind": "keyword" + "text": "pp1 is property of c1", + "kind": "text" } ] }, { - "name": "case", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", + "name": "pp2", + "kind": "method", + "kindModifiers": "private", + "sortText": "11", "displayParts": [ { - "text": "case", - "kind": "keyword" - } - ] - }, - { - "name": "catch", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "(", + "kind": "punctuation" + }, { - "text": "catch", - "kind": "keyword" - } - ] - }, - { - "name": "class", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "method", + "kind": "text" + }, { - "text": "class", - "kind": "keyword" - } - ] - }, - { - "name": "const", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": ")", + "kind": "punctuation" + }, { - "text": "const", - "kind": "keyword" - } - ] - }, - { - "name": "continue", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "continue", - "kind": "keyword" - } - ] - }, - { - "name": "debugger", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "c1", + "kind": "className" + }, { - "text": "debugger", - "kind": "keyword" - } - ] - }, - { - "name": "default", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": ".", + "kind": "punctuation" + }, { - "text": "default", - "kind": "keyword" - } - ] - }, - { - "name": "delete", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "pp2", + "kind": "methodName" + }, { - "text": "delete", - "kind": "keyword" - } - ] - }, - { - "name": "do", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "(", + "kind": "punctuation" + }, { - "text": "do", - "kind": "keyword" - } - ] - }, - { - "name": "else", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "b", + "kind": "parameterName" + }, { - "text": "else", + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" - } - ] - }, - { - "name": "enum", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "enum", + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" } - ] - }, - { - "name": "export", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "export", - "kind": "keyword" + "text": "sum with property", + "kind": "text" } ] }, { - "name": "extends", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", + "name": "pp3", + "kind": "property", + "kindModifiers": "private", + "sortText": "11", "displayParts": [ { - "text": "extends", + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "c1", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "pp3", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" } - ] - }, - { - "name": "false", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "false", - "kind": "keyword" + "text": "getter property 2", + "kind": "text" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "setter property 2", + "kind": "text" } ] - }, + } + ] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/completionsCommentsClassMembers.ts", + "position": 571, + "name": "17" + }, + "completionList": { + "isGlobalCompletion": false, + "isMemberCompletion": false, + "isNewIdentifierLocation": false, + "optionalReplacementSpan": { + "start": 571, + "length": 1 + }, + "entries": [ { - "name": "finally", - "kind": "keyword", + "name": "arguments", + "kind": "local var", "kindModifiers": "", - "sortText": "15", + "sortText": "11", "displayParts": [ { - "text": "finally", - "kind": "keyword" + "text": "(", + "kind": "punctuation" + }, + { + "text": "local var", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "arguments", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "IArguments", + "kind": "interfaceName" } - ] + ], + "documentation": [] }, { - "name": "for", - "kind": "keyword", + "name": "b", + "kind": "parameter", "kindModifiers": "", - "sortText": "15", + "sortText": "11", "displayParts": [ { - "text": "for", + "text": "(", + "kind": "punctuation" + }, + { + "text": "parameter", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "b", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" } - ] - }, - { - "name": "function", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "function", - "kind": "keyword" + "text": "number to add", + "kind": "text" } ] }, { - "name": "if", - "kind": "keyword", + "name": "c1", + "kind": "class", "kindModifiers": "", - "sortText": "15", + "sortText": "11", "displayParts": [ { - "text": "if", + "text": "class", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "c1", + "kind": "className" } - ] - }, - { - "name": "import", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "import", - "kind": "keyword" + "text": "This is comment for c1", + "kind": "text" } ] }, { - "name": "in", - "kind": "keyword", + "name": "cProperties", + "kind": "class", "kindModifiers": "", - "sortText": "15", + "sortText": "11", "displayParts": [ { - "text": "in", + "text": "class", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "cProperties", + "kind": "className" } - ] + ], + "documentation": [] }, { - "name": "instanceof", - "kind": "keyword", + "name": "cProperties_i", + "kind": "var", "kindModifiers": "", - "sortText": "15", + "sortText": "11", "displayParts": [ { - "text": "instanceof", + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "cProperties_i", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "cProperties", + "kind": "className" } - ] + ], + "documentation": [] }, { - "name": "new", - "kind": "keyword", + "name": "cWithConstructorProperty", + "kind": "class", "kindModifiers": "", - "sortText": "15", + "sortText": "11", "displayParts": [ { - "text": "new", + "text": "class", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "cWithConstructorProperty", + "kind": "className" } - ] + ], + "documentation": [] }, { - "name": "null", - "kind": "keyword", + "name": "i1", + "kind": "var", "kindModifiers": "", - "sortText": "15", + "sortText": "11", "displayParts": [ { - "text": "null", + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "i1", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "c1", + "kind": "className" } - ] + ], + "documentation": [] }, { - "name": "return", - "kind": "keyword", + "name": "i1_c", + "kind": "var", "kindModifiers": "", - "sortText": "15", + "sortText": "11", "displayParts": [ { - "text": "return", + "text": "var", "kind": "keyword" - } - ] - }, - { - "name": "super", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "super", + "text": " ", + "kind": "space" + }, + { + "text": "i1_c", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "typeof", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "c1", + "kind": "className" } - ] + ], + "documentation": [] }, { - "name": "switch", - "kind": "keyword", + "name": "i1_f", + "kind": "var", "kindModifiers": "", - "sortText": "15", + "sortText": "11", "displayParts": [ { - "text": "switch", + "text": "var", "kind": "keyword" - } - ] - }, - { - "name": "this", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "this", - "kind": "keyword" - } - ] - }, - { - "name": "throw", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "throw", - "kind": "keyword" - } - ] - }, - { - "name": "true", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "true", - "kind": "keyword" - } - ] - }, - { - "name": "try", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "try", - "kind": "keyword" - } - ] - }, - { - "name": "typeof", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "i1_f", + "kind": "localName" + }, { - "text": "typeof", - "kind": "keyword" - } - ] - }, - { - "name": "var", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": ":", + "kind": "punctuation" + }, { - "text": "var", - "kind": "keyword" - } - ] - }, - { - "name": "void", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "void", - "kind": "keyword" - } - ] - }, - { - "name": "while", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "(", + "kind": "punctuation" + }, { - "text": "while", - "kind": "keyword" - } - ] - }, - { - "name": "with", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "b", + "kind": "parameterName" + }, { - "text": "with", - "kind": "keyword" - } - ] - }, - { - "name": "implements", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": ":", + "kind": "punctuation" + }, { - "text": "implements", - "kind": "keyword" - } - ] - }, - { - "name": "interface", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "interface", + "text": "number", "kind": "keyword" - } - ] - }, - { - "name": "let", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "let", - "kind": "keyword" - } - ] - }, - { - "name": "package", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": ")", + "kind": "punctuation" + }, { - "text": "package", - "kind": "keyword" - } - ] - }, - { - "name": "yield", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "yield", - "kind": "keyword" - } - ] - }, - { - "name": "as", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "=>", + "kind": "punctuation" + }, { - "text": "as", - "kind": "keyword" - } - ] - }, - { - "name": "async", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "async", + "text": "number", "kind": "keyword" } - ] + ], + "documentation": [] }, { - "name": "await", - "kind": "keyword", + "name": "i1_nc_p", + "kind": "var", "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "await", - "kind": "keyword" - } - ] - } - ] - } - }, - { - "marker": { - "fileName": "/tests/cases/fourslash/completionsCommentsClassMembers.ts", - "position": 566, - "name": "16" - }, - "completionList": { - "isGlobalCompletion": false, - "isMemberCompletion": true, - "isNewIdentifierLocation": false, - "optionalReplacementSpan": { - "start": 566, - "length": 2 - }, - "entries": [ - { - "name": "p1", - "kind": "property", - "kindModifiers": "public", "sortText": "11", "displayParts": [ { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "c1", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "p1", - "kind": "propertyName" + "text": "i1_nc_p", + "kind": "localName" }, { "text": ":", @@ -11929,46 +12992,33 @@ "kind": "keyword" } ], - "documentation": [ - { - "text": "p1 is property of c1", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "p2", - "kind": "method", - "kindModifiers": "public", + "name": "i1_ncf", + "kind": "var", + "kindModifiers": "", "sortText": "11", "displayParts": [ { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "c1", - "kind": "className" + "text": "i1_ncf", + "kind": "localName" }, { - "text": ".", + "text": ":", "kind": "punctuation" }, { - "text": "p2", - "kind": "methodName" + "text": " ", + "kind": "space" }, { "text": "(", @@ -11995,7 +13045,11 @@ "kind": "punctuation" }, { - "text": ":", + "text": " ", + "kind": "space" + }, + { + "text": "=>", "kind": "punctuation" }, { @@ -12007,29 +13061,28 @@ "kind": "keyword" } ], - "documentation": [ - { - "text": "sum with property", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "p3", - "kind": "property", - "kindModifiers": "public", + "name": "i1_ncprop", + "kind": "var", + "kindModifiers": "", "sortText": "11", "displayParts": [ { - "text": "(", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { - "text": "property", - "kind": "text" + "text": " ", + "kind": "space" }, { - "text": ")", + "text": "i1_ncprop", + "kind": "localName" + }, + { + "text": ":", "kind": "punctuation" }, { @@ -12037,16 +13090,29 @@ "kind": "space" }, { - "text": "c1", - "kind": "className" + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "i1_ncr", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "var", + "kind": "keyword" }, { - "text": ".", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": "p3", - "kind": "propertyName" + "text": "i1_ncr", + "kind": "localName" }, { "text": ":", @@ -12061,37 +13127,61 @@ "kind": "keyword" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "i1_p", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { - "text": "getter property 1", - "kind": "text" + "text": "var", + "kind": "keyword" }, { - "text": "\n", - "kind": "lineBreak" + "text": " ", + "kind": "space" }, { - "text": "setter property 1", - "kind": "text" + "text": "i1_p", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" } - ] + ], + "documentation": [] }, { - "name": "pp1", - "kind": "property", - "kindModifiers": "private", + "name": "i1_prop", + "kind": "var", + "kindModifiers": "", "sortText": "11", "displayParts": [ { - "text": "(", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { - "text": "property", - "kind": "text" + "text": " ", + "kind": "space" }, { - "text": ")", + "text": "i1_prop", + "kind": "localName" + }, + { + "text": ":", "kind": "punctuation" }, { @@ -12099,16 +13189,29 @@ "kind": "space" }, { - "text": "c1", - "kind": "className" + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "i1_r", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "var", + "kind": "keyword" }, { - "text": ".", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": "pp1", - "kind": "propertyName" + "text": "i1_r", + "kind": "localName" }, { "text": ":", @@ -12123,46 +13226,33 @@ "kind": "keyword" } ], - "documentation": [ - { - "text": "pp1 is property of c1", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "pp2", - "kind": "method", - "kindModifiers": "private", + "name": "i1_s_f", + "kind": "var", + "kindModifiers": "", "sortText": "11", "displayParts": [ { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "c1", - "kind": "className" + "text": "i1_s_f", + "kind": "localName" }, { - "text": ".", + "text": ":", "kind": "punctuation" }, { - "text": "pp2", - "kind": "methodName" + "text": " ", + "kind": "space" }, { "text": "(", @@ -12189,7 +13279,11 @@ "kind": "punctuation" }, { - "text": ":", + "text": " ", + "kind": "space" + }, + { + "text": "=>", "kind": "punctuation" }, { @@ -12201,46 +13295,25 @@ "kind": "keyword" } ], - "documentation": [ - { - "text": "sum with property", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "pp3", - "kind": "property", - "kindModifiers": "private", + "name": "i1_s_nc_p", + "kind": "var", + "kindModifiers": "", "sortText": "11", "displayParts": [ { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "c1", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "pp3", - "kind": "propertyName" + "text": "i1_s_nc_p", + "kind": "localName" }, { "text": ":", @@ -12255,54 +13328,25 @@ "kind": "keyword" } ], - "documentation": [ - { - "text": "getter property 2", - "kind": "text" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "setter property 2", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "nc_p1", - "kind": "property", - "kindModifiers": "public", + "name": "i1_s_ncf", + "kind": "var", + "kindModifiers": "", "sortText": "11", "displayParts": [ { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "c1", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "nc_p1", - "kind": "propertyName" + "text": "i1_s_ncf", + "kind": "localName" }, { "text": ":", @@ -12312,47 +13356,6 @@ "text": " ", "kind": "space" }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "nc_p2", - "kind": "method", - "kindModifiers": "public", - "sortText": "11", - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "c1", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "nc_p2", - "kind": "methodName" - }, { "text": "(", "kind": "punctuation" @@ -12378,7 +13381,11 @@ "kind": "punctuation" }, { - "text": ":", + "text": " ", + "kind": "space" + }, + { + "text": "=>", "kind": "punctuation" }, { @@ -12393,38 +13400,22 @@ "documentation": [] }, { - "name": "nc_p3", - "kind": "property", - "kindModifiers": "public", + "name": "i1_s_ncprop", + "kind": "var", + "kindModifiers": "", "sortText": "11", "displayParts": [ { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "c1", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "nc_p3", - "kind": "propertyName" + "text": "i1_s_ncprop", + "kind": "localName" }, { "text": ":", @@ -12442,38 +13433,22 @@ "documentation": [] }, { - "name": "nc_pp1", - "kind": "property", - "kindModifiers": "private", + "name": "i1_s_ncr", + "kind": "var", + "kindModifiers": "", "sortText": "11", "displayParts": [ { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "c1", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "nc_pp1", - "kind": "propertyName" + "text": "i1_s_ncr", + "kind": "localName" }, { "text": ":", @@ -12491,62 +13466,22 @@ "documentation": [] }, { - "name": "nc_pp2", - "kind": "method", - "kindModifiers": "private", + "name": "i1_s_p", + "kind": "var", + "kindModifiers": "", "sortText": "11", "displayParts": [ { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "c1", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "nc_pp2", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "b", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "i1_s_p", + "kind": "localName" }, { "text": ":", @@ -12564,38 +13499,22 @@ "documentation": [] }, { - "name": "nc_pp3", - "kind": "property", - "kindModifiers": "private", + "name": "i1_s_prop", + "kind": "var", + "kindModifiers": "", "sortText": "11", "displayParts": [ { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "c1", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "nc_pp3", - "kind": "propertyName" + "text": "i1_s_prop", + "kind": "localName" }, { "text": ":", @@ -12611,50 +13530,24 @@ } ], "documentation": [] - } - ] - } - }, - { - "marker": { - "fileName": "/tests/cases/fourslash/completionsCommentsClassMembers.ts", - "position": 571, - "name": "17" - }, - "completionList": { - "isGlobalCompletion": false, - "isMemberCompletion": false, - "isNewIdentifierLocation": false, - "optionalReplacementSpan": { - "start": 571, - "length": 1 - }, - "entries": [ + }, { - "name": "b", - "kind": "parameter", + "name": "i1_s_r", + "kind": "var", "kindModifiers": "", "sortText": "11", "displayParts": [ { - "text": "(", - "kind": "punctuation" - }, - { - "text": "parameter", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "b", - "kind": "parameterName" + "text": "i1_s_r", + "kind": "localName" }, { "text": ":", @@ -12669,83 +13562,77 @@ "kind": "keyword" } ], - "documentation": [ - { - "text": "number to add", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "arguments", - "kind": "local var", - "kindModifiers": "", - "sortText": "11", + "name": "Array", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "(", - "kind": "punctuation" + "text": "interface", + "kind": "keyword" }, { - "text": "local var", - "kind": "text" + "text": " ", + "kind": "space" }, { - "text": ")", - "kind": "punctuation" + "text": "Array", + "kind": "localName" }, { - "text": " ", - "kind": "space" + "text": "<", + "kind": "punctuation" }, { - "text": "arguments", - "kind": "propertyName" + "text": "T", + "kind": "typeParameterName" }, { - "text": ":", + "text": ">", "kind": "punctuation" }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", + "kind": "keyword" + }, { "text": " ", "kind": "space" }, { - "text": "IArguments", - "kind": "interfaceName" - } - ], - "documentation": [] - }, - { - "name": "globalThis", - "kind": "module", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "Array", + "kind": "localName" + }, { - "text": "module", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "globalThis", - "kind": "moduleName" + "text": "ArrayConstructor", + "kind": "interfaceName" } ], "documentation": [] }, { - "name": "eval", - "kind": "function", + "name": "ArrayBuffer", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -12753,32 +13640,24 @@ "kind": "space" }, { - "text": "eval", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" + "text": "ArrayBuffer", + "kind": "localName" }, { - "text": "x", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "ArrayBuffer", + "kind": "localName" }, { "text": ":", @@ -12789,105 +13668,86 @@ "kind": "space" }, { - "text": "any", - "kind": "keyword" + "text": "ArrayBufferConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "Evaluates JavaScript code and executes it.", + "text": "Represents a raw buffer of binary data, which is used to store data for the\r\ndifferent typed arrays. ArrayBuffers cannot be read from or written to directly,\r\nbut can be passed to a typed array or DataView Object to interpret the raw\r\nbuffer as needed.", "kind": "text" } - ], - "tags": [ + ] + }, + { + "name": "as", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "x", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A String value that contains valid JavaScript code.", - "kind": "text" - } - ] + "text": "as", + "kind": "keyword" } ] }, { - "name": "parseInt", - "kind": "function", - "kindModifiers": "declare", + "name": "async", + "kind": "keyword", + "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "async", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "parseInt", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "string", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, + } + ] + }, + { + "name": "await", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "string", + "text": "await", "kind": "keyword" - }, + } + ] + }, + { + "name": "Boolean", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { - "text": ",", - "kind": "punctuation" + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "radix", - "kind": "parameterName" + "text": "Boolean", + "kind": "localName" }, { - "text": "?", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "Boolean", + "kind": "localName" }, { "text": ":", @@ -12898,142 +13758,92 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "BooleanConstructor", + "kind": "interfaceName" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "break", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "Converts a string to an integer.", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string to convert into a number.", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "radix", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value between 2 and 36 that specifies the base of the number in `string`.\r\nIf this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal.\r\nAll other strings are considered decimal.", - "kind": "text" - } - ] + "text": "break", + "kind": "keyword" } ] }, { - "name": "parseFloat", - "kind": "function", - "kindModifiers": "declare", + "name": "case", + "kind": "keyword", + "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "case", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "parseFloat", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "string", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, + } + ] + }, + { + "name": "catch", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "string", + "text": "catch", "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, + } + ] + }, + { + "name": "class", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "number", + "text": "class", "kind": "keyword" } - ], - "documentation": [ + ] + }, + { + "name": "const", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "Converts a string to a floating-point number.", - "kind": "text" + "text": "const", + "kind": "keyword" } - ], - "tags": [ + ] + }, + { + "name": "continue", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string that contains a floating-point number.", - "kind": "text" - } - ] + "text": "continue", + "kind": "keyword" } ] }, { - "name": "isNaN", - "kind": "function", + "name": "DataView", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -13041,32 +13851,24 @@ "kind": "space" }, { - "text": "isNaN", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" + "text": "DataView", + "kind": "localName" }, { - "text": "number", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "DataView", + "kind": "localName" }, { "text": ":", @@ -13077,44 +13879,20 @@ "kind": "space" }, { - "text": "boolean", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Returns a Boolean value that indicates whether a value is the reserved value NaN (not a number).", - "kind": "text" + "text": "DataViewConstructor", + "kind": "interfaceName" } ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "number", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A numeric value.", - "kind": "text" - } - ] - } - ] + "documentation": [] }, { - "name": "isFinite", - "kind": "function", + "name": "Date", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -13122,32 +13900,24 @@ "kind": "space" }, { - "text": "isFinite", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" + "text": "Date", + "kind": "localName" }, { - "text": "number", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "Date", + "kind": "localName" }, { "text": ":", @@ -13158,33 +13928,26 @@ "kind": "space" }, { - "text": "boolean", - "kind": "keyword" + "text": "DateConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "Determines whether a supplied number is finite.", + "text": "Enables basic storage and retrieval of dates and times.", "kind": "text" } - ], - "tags": [ + ] + }, + { + "name": "debugger", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "number", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Any numeric value.", - "kind": "text" - } - ] + "text": "debugger", + "kind": "keyword" } ] }, @@ -13350,6 +14113,54 @@ } ] }, + { + "name": "default", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "default", + "kind": "keyword" + } + ] + }, + { + "name": "delete", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "delete", + "kind": "keyword" + } + ] + }, + { + "name": "do", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "do", + "kind": "keyword" + } + ] + }, + { + "name": "else", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "else", + "kind": "keyword" + } + ] + }, { "name": "encodeURI", "kind": "function", @@ -13545,13 +14356,25 @@ ] }, { - "name": "escape", - "kind": "function", - "kindModifiers": "deprecated,declare", - "sortText": "23", + "name": "enum", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", "displayParts": [ { - "text": "function", + "text": "enum", + "kind": "keyword" + } + ] + }, + { + "name": "Error", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", "kind": "keyword" }, { @@ -13559,32 +14382,24 @@ "kind": "space" }, { - "text": "escape", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" + "text": "Error", + "kind": "localName" }, { - "text": "string", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "Error", + "kind": "localName" }, { "text": ":", @@ -13595,50 +14410,17 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Computes a new string in which certain characters have been replaced by a hexadecimal escape sequence.", - "kind": "text" + "text": "ErrorConstructor", + "kind": "interfaceName" } ], - "tags": [ - { - "name": "deprecated", - "text": [ - { - "text": "A legacy feature for browser compatibility", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string value", - "kind": "text" - } - ] - } - ] + "documentation": [] }, { - "name": "unescape", + "name": "eval", "kind": "function", - "kindModifiers": "deprecated,declare", - "sortText": "23", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { "text": "function", @@ -13649,7 +14431,7 @@ "kind": "space" }, { - "text": "unescape", + "text": "eval", "kind": "functionName" }, { @@ -13657,7 +14439,7 @@ "kind": "punctuation" }, { - "text": "string", + "text": "x", "kind": "parameterName" }, { @@ -13685,31 +14467,22 @@ "kind": "space" }, { - "text": "string", + "text": "any", "kind": "keyword" } ], "documentation": [ { - "text": "Computes a new string in which hexadecimal escape sequences are replaced with the character that it represents.", + "text": "Evaluates JavaScript code and executes it.", "kind": "text" } ], "tags": [ - { - "name": "deprecated", - "text": [ - { - "text": "A legacy feature for browser compatibility", - "kind": "text" - } - ] - }, { "name": "param", "text": [ { - "text": "string", + "text": "x", "kind": "parameterName" }, { @@ -13717,7 +14490,7 @@ "kind": "space" }, { - "text": "A string value", + "text": "A String value that contains valid JavaScript code.", "kind": "text" } ] @@ -13725,13 +14498,13 @@ ] }, { - "name": "NaN", + "name": "EvalError", "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -13739,30 +14512,13 @@ "kind": "space" }, { - "text": "NaN", + "text": "EvalError", "kind": "localName" }, { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "Infinity", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ { "text": "var", "kind": "keyword" @@ -13772,7 +14528,7 @@ "kind": "space" }, { - "text": "Infinity", + "text": "EvalError", "kind": "localName" }, { @@ -13784,14 +14540,62 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "EvalErrorConstructor", + "kind": "interfaceName" } ], "documentation": [] }, { - "name": "Object", + "name": "export", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "export", + "kind": "keyword" + } + ] + }, + { + "name": "extends", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "extends", + "kind": "keyword" + } + ] + }, + { + "name": "false", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "false", + "kind": "keyword" + } + ] + }, + { + "name": "finally", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "finally", + "kind": "keyword" + } + ] + }, + { + "name": "Float32Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -13805,7 +14609,7 @@ "kind": "space" }, { - "text": "Object", + "text": "Float32Array", "kind": "localName" }, { @@ -13821,7 +14625,7 @@ "kind": "space" }, { - "text": "Object", + "text": "Float32Array", "kind": "localName" }, { @@ -13833,19 +14637,19 @@ "kind": "space" }, { - "text": "ObjectConstructor", + "text": "Float32ArrayConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "Provides functionality common to all JavaScript objects.", + "text": "A typed array of 32-bit float values. The contents are initialized to 0. If the requested number\r\nof bytes could not be allocated an exception is raised.", "kind": "text" } ] }, { - "name": "Function", + "name": "Float64Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -13859,7 +14663,7 @@ "kind": "space" }, { - "text": "Function", + "text": "Float64Array", "kind": "localName" }, { @@ -13875,7 +14679,7 @@ "kind": "space" }, { - "text": "Function", + "text": "Float64Array", "kind": "localName" }, { @@ -13887,19 +14691,43 @@ "kind": "space" }, { - "text": "FunctionConstructor", + "text": "Float64ArrayConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "Creates a new function.", + "text": "A typed array of 64-bit float values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", "kind": "text" } ] }, { - "name": "String", + "name": "for", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "for", + "kind": "keyword" + } + ] + }, + { + "name": "function", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + } + ] + }, + { + "name": "Function", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -13913,7 +14741,7 @@ "kind": "space" }, { - "text": "String", + "text": "Function", "kind": "localName" }, { @@ -13929,7 +14757,7 @@ "kind": "space" }, { - "text": "String", + "text": "Function", "kind": "localName" }, { @@ -13941,25 +14769,25 @@ "kind": "space" }, { - "text": "StringConstructor", + "text": "FunctionConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "Allows manipulation and formatting of text strings and determination and location of substrings within strings.", + "text": "Creates a new function.", "kind": "text" } ] }, { - "name": "Boolean", - "kind": "var", - "kindModifiers": "declare", + "name": "globalThis", + "kind": "module", + "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "module", "kind": "keyword" }, { @@ -13967,13 +14795,66 @@ "kind": "space" }, { - "text": "Boolean", - "kind": "localName" - }, + "text": "globalThis", + "kind": "moduleName" + } + ], + "documentation": [] + }, + { + "name": "if", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "\n", - "kind": "lineBreak" - }, + "text": "if", + "kind": "keyword" + } + ] + }, + { + "name": "implements", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "implements", + "kind": "keyword" + } + ] + }, + { + "name": "import", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "import", + "kind": "keyword" + } + ] + }, + { + "name": "in", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "in", + "kind": "keyword" + } + ] + }, + { + "name": "Infinity", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { "text": "var", "kind": "keyword" @@ -13983,7 +14864,7 @@ "kind": "space" }, { - "text": "Boolean", + "text": "Infinity", "kind": "localName" }, { @@ -13995,14 +14876,26 @@ "kind": "space" }, { - "text": "BooleanConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], "documentation": [] }, { - "name": "Number", + "name": "instanceof", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "instanceof", + "kind": "keyword" + } + ] + }, + { + "name": "Int16Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -14016,7 +14909,7 @@ "kind": "space" }, { - "text": "Number", + "text": "Int16Array", "kind": "localName" }, { @@ -14032,7 +14925,7 @@ "kind": "space" }, { - "text": "Number", + "text": "Int16Array", "kind": "localName" }, { @@ -14044,19 +14937,19 @@ "kind": "space" }, { - "text": "NumberConstructor", + "text": "Int16ArrayConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "An object that represents a number of any kind. All JavaScript numbers are 64-bit floating-point numbers.", + "text": "A typed array of 16-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", "kind": "text" } ] }, { - "name": "Math", + "name": "Int32Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -14070,7 +14963,7 @@ "kind": "space" }, { - "text": "Math", + "text": "Int32Array", "kind": "localName" }, { @@ -14086,7 +14979,7 @@ "kind": "space" }, { - "text": "Math", + "text": "Int32Array", "kind": "localName" }, { @@ -14098,19 +14991,19 @@ "kind": "space" }, { - "text": "Math", - "kind": "localName" + "text": "Int32ArrayConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "An intrinsic object that provides basic mathematics functionality and constants.", + "text": "A typed array of 32-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", "kind": "text" } ] }, { - "name": "Date", + "name": "Int8Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -14124,7 +15017,7 @@ "kind": "space" }, { - "text": "Date", + "text": "Int8Array", "kind": "localName" }, { @@ -14140,7 +15033,7 @@ "kind": "space" }, { - "text": "Date", + "text": "Int8Array", "kind": "localName" }, { @@ -14152,41 +15045,37 @@ "kind": "space" }, { - "text": "DateConstructor", + "text": "Int8ArrayConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "Enables basic storage and retrieval of dates and times.", + "text": "A typed array of 8-bit integer values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", "kind": "text" } ] }, { - "name": "RegExp", - "kind": "var", - "kindModifiers": "declare", + "name": "interface", + "kind": "keyword", + "kindModifiers": "", "sortText": "15", "displayParts": [ { "text": "interface", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "RegExp", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, + } + ] + }, + { + "name": "Intl", + "kind": "module", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { - "text": "var", + "text": "namespace", "kind": "keyword" }, { @@ -14194,32 +15083,20 @@ "kind": "space" }, { - "text": "RegExp", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "RegExpConstructor", - "kind": "interfaceName" + "text": "Intl", + "kind": "moduleName" } ], "documentation": [] }, { - "name": "Error", - "kind": "var", + "name": "isFinite", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -14227,24 +15104,32 @@ "kind": "space" }, { - "text": "Error", - "kind": "localName" + "text": "isFinite", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "number", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Error", - "kind": "localName" + "text": "number", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -14255,20 +15140,44 @@ "kind": "space" }, { - "text": "ErrorConstructor", - "kind": "interfaceName" + "text": "boolean", + "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Determines whether a supplied number is finite.", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "number", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Any numeric value.", + "kind": "text" + } + ] + } + ] }, { - "name": "EvalError", - "kind": "var", + "name": "isNaN", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -14276,24 +15185,32 @@ "kind": "space" }, { - "text": "EvalError", - "kind": "localName" + "text": "isNaN", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "number", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "EvalError", - "kind": "localName" + "text": "number", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -14304,14 +15221,38 @@ "kind": "space" }, { - "text": "EvalErrorConstructor", - "kind": "interfaceName" + "text": "boolean", + "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Returns a Boolean value that indicates whether a value is the reserved value NaN (not a number).", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "number", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A numeric value.", + "kind": "text" + } + ] + } + ] }, { - "name": "RangeError", + "name": "JSON", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -14325,7 +15266,7 @@ "kind": "space" }, { - "text": "RangeError", + "text": "JSON", "kind": "localName" }, { @@ -14341,7 +15282,7 @@ "kind": "space" }, { - "text": "RangeError", + "text": "JSON", "kind": "localName" }, { @@ -14353,14 +15294,31 @@ "kind": "space" }, { - "text": "RangeErrorConstructor", - "kind": "interfaceName" + "text": "JSON", + "kind": "localName" } ], - "documentation": [] + "documentation": [ + { + "text": "An intrinsic object that provides functions to convert JavaScript values to and from the JavaScript Object Notation (JSON) format.", + "kind": "text" + } + ] }, { - "name": "ReferenceError", + "name": "let", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "let", + "kind": "keyword" + } + ] + }, + { + "name": "Math", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -14374,7 +15332,7 @@ "kind": "space" }, { - "text": "ReferenceError", + "text": "Math", "kind": "localName" }, { @@ -14390,7 +15348,7 @@ "kind": "space" }, { - "text": "ReferenceError", + "text": "Math", "kind": "localName" }, { @@ -14402,34 +15360,23 @@ "kind": "space" }, { - "text": "ReferenceErrorConstructor", - "kind": "interfaceName" + "text": "Math", + "kind": "localName" } ], - "documentation": [] + "documentation": [ + { + "text": "An intrinsic object that provides basic mathematics functionality and constants.", + "kind": "text" + } + ] }, { - "name": "SyntaxError", + "name": "NaN", "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "SyntaxError", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, { "text": "var", "kind": "keyword" @@ -14439,7 +15386,7 @@ "kind": "space" }, { - "text": "SyntaxError", + "text": "NaN", "kind": "localName" }, { @@ -14451,14 +15398,38 @@ "kind": "space" }, { - "text": "SyntaxErrorConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], "documentation": [] }, { - "name": "TypeError", + "name": "new", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "new", + "kind": "keyword" + } + ] + }, + { + "name": "null", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "null", + "kind": "keyword" + } + ] + }, + { + "name": "Number", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -14472,7 +15443,7 @@ "kind": "space" }, { - "text": "TypeError", + "text": "Number", "kind": "localName" }, { @@ -14488,7 +15459,7 @@ "kind": "space" }, { - "text": "TypeError", + "text": "Number", "kind": "localName" }, { @@ -14500,14 +15471,19 @@ "kind": "space" }, { - "text": "TypeErrorConstructor", + "text": "NumberConstructor", "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "An object that represents a number of any kind. All JavaScript numbers are 64-bit floating-point numbers.", + "kind": "text" + } + ] }, { - "name": "URIError", + "name": "Object", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -14521,7 +15497,7 @@ "kind": "space" }, { - "text": "URIError", + "text": "Object", "kind": "localName" }, { @@ -14537,7 +15513,7 @@ "kind": "space" }, { - "text": "URIError", + "text": "Object", "kind": "localName" }, { @@ -14549,20 +15525,37 @@ "kind": "space" }, { - "text": "URIErrorConstructor", + "text": "ObjectConstructor", "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "Provides functionality common to all JavaScript objects.", + "kind": "text" + } + ] }, { - "name": "JSON", - "kind": "var", + "name": "package", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "package", + "kind": "keyword" + } + ] + }, + { + "name": "parseFloat", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -14570,24 +15563,32 @@ "kind": "space" }, { - "text": "JSON", - "kind": "localName" + "text": "parseFloat", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "string", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "JSON", - "kind": "localName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -14598,25 +15599,44 @@ "kind": "space" }, { - "text": "JSON", - "kind": "localName" + "text": "number", + "kind": "keyword" } ], "documentation": [ { - "text": "An intrinsic object that provides functions to convert JavaScript values to and from the JavaScript Object Notation (JSON) format.", + "text": "Converts a string to a floating-point number.", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string that contains a floating-point number.", + "kind": "text" + } + ] + } ] }, { - "name": "Array", - "kind": "var", + "name": "parseInt", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -14624,39 +15644,31 @@ "kind": "space" }, { - "text": "Array", - "kind": "localName" + "text": "parseInt", + "kind": "functionName" }, { - "text": "<", + "text": "(", "kind": "punctuation" }, { - "text": "T", - "kind": "typeParameterName" + "text": "string", + "kind": "parameterName" }, { - "text": ">", + "text": ":", "kind": "punctuation" }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" - }, { "text": " ", "kind": "space" }, { - "text": "Array", - "kind": "localName" + "text": "string", + "kind": "keyword" }, { - "text": ":", + "text": ",", "kind": "punctuation" }, { @@ -14664,45 +15676,28 @@ "kind": "space" }, { - "text": "ArrayConstructor", - "kind": "interfaceName" - } - ], - "documentation": [] - }, - { - "name": "ArrayBuffer", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" + "text": "radix", + "kind": "parameterName" }, { - "text": " ", - "kind": "space" + "text": "?", + "kind": "punctuation" }, { - "text": "ArrayBuffer", - "kind": "localName" + "text": ":", + "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": " ", + "kind": "space" }, { - "text": "var", + "text": "number", "kind": "keyword" }, { - "text": " ", - "kind": "space" - }, - { - "text": "ArrayBuffer", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -14713,19 +15708,55 @@ "kind": "space" }, { - "text": "ArrayBufferConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], "documentation": [ { - "text": "Represents a raw buffer of binary data, which is used to store data for the\r\ndifferent typed arrays. ArrayBuffers cannot be read from or written to directly,\r\nbut can be passed to a typed array or DataView Object to interpret the raw\r\nbuffer as needed.", + "text": "Converts a string to an integer.", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string to convert into a number.", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "radix", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value between 2 and 36 that specifies the base of the number in `string`.\r\nIf this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal.\r\nAll other strings are considered decimal.", + "kind": "text" + } + ] + } ] }, { - "name": "DataView", + "name": "RangeError", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -14739,7 +15770,7 @@ "kind": "space" }, { - "text": "DataView", + "text": "RangeError", "kind": "localName" }, { @@ -14755,7 +15786,7 @@ "kind": "space" }, { - "text": "DataView", + "text": "RangeError", "kind": "localName" }, { @@ -14767,14 +15798,14 @@ "kind": "space" }, { - "text": "DataViewConstructor", + "text": "RangeErrorConstructor", "kind": "interfaceName" } ], "documentation": [] }, { - "name": "Int8Array", + "name": "ReferenceError", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -14788,7 +15819,7 @@ "kind": "space" }, { - "text": "Int8Array", + "text": "ReferenceError", "kind": "localName" }, { @@ -14804,7 +15835,7 @@ "kind": "space" }, { - "text": "Int8Array", + "text": "ReferenceError", "kind": "localName" }, { @@ -14816,19 +15847,14 @@ "kind": "space" }, { - "text": "Int8ArrayConstructor", + "text": "ReferenceErrorConstructor", "kind": "interfaceName" } ], - "documentation": [ - { - "text": "A typed array of 8-bit integer values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "Uint8Array", + "name": "RegExp", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -14842,7 +15868,7 @@ "kind": "space" }, { - "text": "Uint8Array", + "text": "RegExp", "kind": "localName" }, { @@ -14858,7 +15884,7 @@ "kind": "space" }, { - "text": "Uint8Array", + "text": "RegExp", "kind": "localName" }, { @@ -14870,19 +15896,26 @@ "kind": "space" }, { - "text": "Uint8ArrayConstructor", + "text": "RegExpConstructor", "kind": "interfaceName" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "return", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" + "text": "return", + "kind": "keyword" } ] }, { - "name": "Uint8ClampedArray", + "name": "String", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -14896,7 +15929,7 @@ "kind": "space" }, { - "text": "Uint8ClampedArray", + "text": "String", "kind": "localName" }, { @@ -14912,7 +15945,7 @@ "kind": "space" }, { - "text": "Uint8ClampedArray", + "text": "String", "kind": "localName" }, { @@ -14924,19 +15957,43 @@ "kind": "space" }, { - "text": "Uint8ClampedArrayConstructor", + "text": "StringConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0.\r\nIf the requested number of bytes could not be allocated an exception is raised.", + "text": "Allows manipulation and formatting of text strings and determination and location of substrings within strings.", "kind": "text" } ] }, { - "name": "Int16Array", + "name": "super", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "super", + "kind": "keyword" + } + ] + }, + { + "name": "switch", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "switch", + "kind": "keyword" + } + ] + }, + { + "name": "SyntaxError", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -14950,7 +16007,7 @@ "kind": "space" }, { - "text": "Int16Array", + "text": "SyntaxError", "kind": "localName" }, { @@ -14966,7 +16023,7 @@ "kind": "space" }, { - "text": "Int16Array", + "text": "SyntaxError", "kind": "localName" }, { @@ -14978,19 +16035,62 @@ "kind": "space" }, { - "text": "Int16ArrayConstructor", + "text": "SyntaxErrorConstructor", "kind": "interfaceName" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "this", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "A typed array of 16-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" + "text": "this", + "kind": "keyword" } ] }, { - "name": "Uint16Array", + "name": "throw", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "throw", + "kind": "keyword" + } + ] + }, + { + "name": "true", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "true", + "kind": "keyword" + } + ] + }, + { + "name": "try", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "try", + "kind": "keyword" + } + ] + }, + { + "name": "TypeError", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -15004,7 +16104,7 @@ "kind": "space" }, { - "text": "Uint16Array", + "text": "TypeError", "kind": "localName" }, { @@ -15020,7 +16120,7 @@ "kind": "space" }, { - "text": "Uint16Array", + "text": "TypeError", "kind": "localName" }, { @@ -15032,19 +16132,26 @@ "kind": "space" }, { - "text": "Uint16ArrayConstructor", + "text": "TypeErrorConstructor", "kind": "interfaceName" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "typeof", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" + "text": "typeof", + "kind": "keyword" } ] }, { - "name": "Int32Array", + "name": "Uint16Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -15058,7 +16165,7 @@ "kind": "space" }, { - "text": "Int32Array", + "text": "Uint16Array", "kind": "localName" }, { @@ -15074,7 +16181,7 @@ "kind": "space" }, { - "text": "Int32Array", + "text": "Uint16Array", "kind": "localName" }, { @@ -15086,13 +16193,13 @@ "kind": "space" }, { - "text": "Int32ArrayConstructor", + "text": "Uint16ArrayConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "A typed array of 32-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "text": "A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", "kind": "text" } ] @@ -15152,7 +16259,7 @@ ] }, { - "name": "Float32Array", + "name": "Uint8Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -15166,7 +16273,7 @@ "kind": "space" }, { - "text": "Float32Array", + "text": "Uint8Array", "kind": "localName" }, { @@ -15182,7 +16289,7 @@ "kind": "space" }, { - "text": "Float32Array", + "text": "Uint8Array", "kind": "localName" }, { @@ -15194,19 +16301,19 @@ "kind": "space" }, { - "text": "Float32ArrayConstructor", + "text": "Uint8ArrayConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "A typed array of 32-bit float values. The contents are initialized to 0. If the requested number\r\nof bytes could not be allocated an exception is raised.", + "text": "A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", "kind": "text" } ] }, { - "name": "Float64Array", + "name": "Uint8ClampedArray", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -15220,7 +16327,7 @@ "kind": "space" }, { - "text": "Float64Array", + "text": "Uint8ClampedArray", "kind": "localName" }, { @@ -15236,7 +16343,7 @@ "kind": "space" }, { - "text": "Float64Array", + "text": "Uint8ClampedArray", "kind": "localName" }, { @@ -15248,25 +16355,25 @@ "kind": "space" }, { - "text": "Float64ArrayConstructor", + "text": "Uint8ClampedArrayConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "A typed array of 64-bit float values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", + "text": "A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0.\r\nIf the requested number of bytes could not be allocated an exception is raised.", "kind": "text" } ] }, { - "name": "Intl", - "kind": "module", - "kindModifiers": "declare", + "name": "undefined", + "kind": "var", + "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "namespace", + "text": "var", "kind": "keyword" }, { @@ -15274,20 +16381,20 @@ "kind": "space" }, { - "text": "Intl", - "kind": "moduleName" + "text": "undefined", + "kind": "propertyName" } ], "documentation": [] }, { - "name": "c1", - "kind": "class", - "kindModifiers": "", - "sortText": "11", + "name": "URIError", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "class", + "text": "interface", "kind": "keyword" }, { @@ -15295,23 +16402,13 @@ "kind": "space" }, { - "text": "c1", - "kind": "className" - } - ], - "documentation": [ + "text": "URIError", + "kind": "localName" + }, { - "text": "This is comment for c1", - "kind": "text" - } - ] - }, - { - "name": "i1", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ + "text": "\n", + "kind": "lineBreak" + }, { "text": "var", "kind": "keyword" @@ -15321,7 +16418,7 @@ "kind": "space" }, { - "text": "i1", + "text": "URIError", "kind": "localName" }, { @@ -15333,53 +16430,80 @@ "kind": "space" }, { - "text": "c1", - "kind": "className" + "text": "URIErrorConstructor", + "kind": "interfaceName" } ], "documentation": [] }, { - "name": "i1_p", - "kind": "var", + "name": "var", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { "text": "var", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "i1_p", - "kind": "localName" - }, + } + ] + }, + { + "name": "void", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": ":", - "kind": "punctuation" - }, + "text": "void", + "kind": "keyword" + } + ] + }, + { + "name": "while", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": " ", - "kind": "space" - }, + "text": "while", + "kind": "keyword" + } + ] + }, + { + "name": "with", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "number", + "text": "with", "kind": "keyword" } - ], - "documentation": [] + ] }, { - "name": "i1_f", - "kind": "var", + "name": "yield", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "yield", + "kind": "keyword" + } + ] + }, + { + "name": "escape", + "kind": "function", + "kindModifiers": "deprecated,declare", + "sortText": "z15", + "displayParts": [ + { + "text": "function", "kind": "keyword" }, { @@ -15387,23 +16511,15 @@ "kind": "space" }, { - "text": "i1_f", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "escape", + "kind": "functionName" }, { "text": "(", "kind": "punctuation" }, { - "text": "b", + "text": "string", "kind": "parameterName" }, { @@ -15415,7 +16531,7 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" }, { @@ -15423,11 +16539,7 @@ "kind": "punctuation" }, { - "text": " ", - "kind": "space" - }, - { - "text": "=>", + "text": ":", "kind": "punctuation" }, { @@ -15435,20 +16547,53 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Computes a new string in which certain characters have been replaced by a hexadecimal escape sequence.", + "kind": "text" + } + ], + "tags": [ + { + "name": "deprecated", + "text": [ + { + "text": "A legacy feature for browser compatibility", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string value", + "kind": "text" + } + ] + } + ] }, { - "name": "i1_r", - "kind": "var", - "kindModifiers": "", - "sortText": "11", + "name": "unescape", + "kind": "function", + "kindModifiers": "deprecated,declare", + "sortText": "z15", "displayParts": [ { - "text": "var", + "text": "function", "kind": "keyword" }, { @@ -15456,41 +16601,32 @@ "kind": "space" }, { - "text": "i1_r", - "kind": "localName" + "text": "unescape", + "kind": "functionName" }, { - "text": ":", + "text": "(", "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "string", + "kind": "parameterName" }, { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_prop", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "i1_prop", - "kind": "localName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -15501,29 +16637,96 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" } ], - "documentation": [] - }, + "documentation": [ + { + "text": "Computes a new string in which hexadecimal escape sequences are replaced with the character that it represents.", + "kind": "text" + } + ], + "tags": [ + { + "name": "deprecated", + "text": [ + { + "text": "A legacy feature for browser compatibility", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string value", + "kind": "text" + } + ] + } + ] + } + ] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/completionsCommentsClassMembers.ts", + "position": 652, + "name": "19" + }, + "completionList": { + "isGlobalCompletion": false, + "isMemberCompletion": true, + "isNewIdentifierLocation": false, + "optionalReplacementSpan": { + "start": 652, + "length": 3 + }, + "entries": [ { - "name": "i1_nc_p", - "kind": "var", - "kindModifiers": "", + "name": "nc_p1", + "kind": "property", + "kindModifiers": "public", "sortText": "11", "displayParts": [ { - "text": "var", - "kind": "keyword" + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "i1_nc_p", - "kind": "localName" + "text": "c1", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "nc_p1", + "kind": "propertyName" }, { "text": ":", @@ -15541,30 +16744,38 @@ "documentation": [] }, { - "name": "i1_ncf", - "kind": "var", - "kindModifiers": "", + "name": "nc_p2", + "kind": "method", + "kindModifiers": "public", "sortText": "11", "displayParts": [ { - "text": "var", - "kind": "keyword" + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "i1_ncf", - "kind": "localName" + "text": "c1", + "kind": "className" }, { - "text": ":", + "text": ".", "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "nc_p2", + "kind": "methodName" }, { "text": "(", @@ -15591,11 +16802,7 @@ "kind": "punctuation" }, { - "text": " ", - "kind": "space" - }, - { - "text": "=>", + "text": ":", "kind": "punctuation" }, { @@ -15610,25 +16817,21 @@ "documentation": [] }, { - "name": "i1_ncr", - "kind": "var", - "kindModifiers": "", + "name": "nc_p3", + "kind": "property", + "kindModifiers": "public", "sortText": "11", "displayParts": [ { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "i1_ncr", - "kind": "localName" + "text": "property", + "kind": "text" }, { - "text": ":", + "text": ")", "kind": "punctuation" }, { @@ -15636,29 +16839,16 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_ncprop", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "var", - "kind": "keyword" + "text": "c1", + "kind": "className" }, { - "text": " ", - "kind": "space" + "text": ".", + "kind": "punctuation" }, { - "text": "i1_ncprop", - "kind": "localName" + "text": "nc_p3", + "kind": "propertyName" }, { "text": ":", @@ -15676,22 +16866,38 @@ "documentation": [] }, { - "name": "i1_s_p", - "kind": "var", - "kindModifiers": "", + "name": "nc_pp1", + "kind": "property", + "kindModifiers": "private", "sortText": "11", "displayParts": [ { - "text": "var", - "kind": "keyword" + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "i1_s_p", - "kind": "localName" + "text": "c1", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "nc_pp1", + "kind": "propertyName" }, { "text": ":", @@ -15709,30 +16915,38 @@ "documentation": [] }, { - "name": "i1_s_f", - "kind": "var", - "kindModifiers": "", + "name": "nc_pp2", + "kind": "method", + "kindModifiers": "private", "sortText": "11", "displayParts": [ { - "text": "var", - "kind": "keyword" + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "i1_s_f", - "kind": "localName" + "text": "c1", + "kind": "className" }, { - "text": ":", + "text": ".", "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "nc_pp2", + "kind": "methodName" }, { "text": "(", @@ -15759,11 +16973,7 @@ "kind": "punctuation" }, { - "text": " ", - "kind": "space" - }, - { - "text": "=>", + "text": ":", "kind": "punctuation" }, { @@ -15778,25 +16988,21 @@ "documentation": [] }, { - "name": "i1_s_r", - "kind": "var", - "kindModifiers": "", + "name": "nc_pp3", + "kind": "property", + "kindModifiers": "private", "sortText": "11", "displayParts": [ { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "i1_s_r", - "kind": "localName" + "text": "property", + "kind": "text" }, { - "text": ":", + "text": ")", "kind": "punctuation" }, { @@ -15804,29 +17010,16 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_s_prop", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "var", - "kind": "keyword" + "text": "c1", + "kind": "className" }, { - "text": " ", - "kind": "space" + "text": ".", + "kind": "punctuation" }, { - "text": "i1_s_prop", - "kind": "localName" + "text": "nc_pp3", + "kind": "propertyName" }, { "text": ":", @@ -15844,22 +17037,38 @@ "documentation": [] }, { - "name": "i1_s_nc_p", - "kind": "var", - "kindModifiers": "", + "name": "p1", + "kind": "property", + "kindModifiers": "public", "sortText": "11", "displayParts": [ { - "text": "var", - "kind": "keyword" + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "i1_s_nc_p", - "kind": "localName" + "text": "c1", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "p1", + "kind": "propertyName" }, { "text": ":", @@ -15874,33 +17083,46 @@ "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "p1 is property of c1", + "kind": "text" + } + ] }, { - "name": "i1_s_ncf", - "kind": "var", - "kindModifiers": "", + "name": "p2", + "kind": "method", + "kindModifiers": "public", "sortText": "11", "displayParts": [ { - "text": "var", - "kind": "keyword" + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "i1_s_ncf", - "kind": "localName" + "text": "c1", + "kind": "className" }, { - "text": ":", + "text": ".", "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "p2", + "kind": "methodName" }, { "text": "(", @@ -15927,11 +17149,7 @@ "kind": "punctuation" }, { - "text": " ", - "kind": "space" - }, - { - "text": "=>", + "text": ":", "kind": "punctuation" }, { @@ -15943,25 +17161,46 @@ "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "sum with property", + "kind": "text" + } + ] }, { - "name": "i1_s_ncr", - "kind": "var", - "kindModifiers": "", + "name": "p3", + "kind": "property", + "kindModifiers": "public", "sortText": "11", "displayParts": [ { - "text": "var", - "kind": "keyword" + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "i1_s_ncr", - "kind": "localName" + "text": "c1", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "p3", + "kind": "propertyName" }, { "text": ":", @@ -15976,25 +17215,54 @@ "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "getter property 1", + "kind": "text" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "setter property 1", + "kind": "text" + } + ] }, { - "name": "i1_s_ncprop", - "kind": "var", - "kindModifiers": "", + "name": "pp1", + "kind": "property", + "kindModifiers": "private", "sortText": "11", "displayParts": [ { - "text": "var", - "kind": "keyword" + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "i1_s_ncprop", - "kind": "localName" + "text": "c1", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "pp1", + "kind": "propertyName" }, { "text": ":", @@ -16009,87 +17277,204 @@ "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "pp1 is property of c1", + "kind": "text" + } + ] }, { - "name": "i1_c", - "kind": "var", - "kindModifiers": "", + "name": "pp2", + "kind": "method", + "kindModifiers": "private", "sortText": "11", "displayParts": [ { - "text": "var", - "kind": "keyword" + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "i1_c", - "kind": "localName" + "text": "c1", + "kind": "className" }, { - "text": ":", + "text": ".", "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "pp2", + "kind": "methodName" }, { - "text": "typeof", - "kind": "keyword" + "text": "(", + "kind": "punctuation" + }, + { + "text": "b", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "c1", - "kind": "className" + "text": "number", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "sum with property", + "kind": "text" + } + ] }, { - "name": "cProperties", - "kind": "class", - "kindModifiers": "", + "name": "pp3", + "kind": "property", + "kindModifiers": "private", "sortText": "11", "displayParts": [ { - "text": "class", - "kind": "keyword" + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "cProperties", + "text": "c1", "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "pp3", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" } ], - "documentation": [] - }, + "documentation": [ + { + "text": "getter property 2", + "kind": "text" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "setter property 2", + "kind": "text" + } + ] + } + ] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/completionsCommentsClassMembers.ts", + "position": 661, + "name": "21" + }, + "completionList": { + "isGlobalCompletion": false, + "isMemberCompletion": true, + "isNewIdentifierLocation": false, + "optionalReplacementSpan": { + "start": 661, + "length": 3 + }, + "entries": [ { - "name": "cProperties_i", - "kind": "var", - "kindModifiers": "", + "name": "nc_p1", + "kind": "property", + "kindModifiers": "public", "sortText": "11", "displayParts": [ { - "text": "var", - "kind": "keyword" + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "cProperties_i", - "kind": "localName" + "text": "c1", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "nc_p1", + "kind": "propertyName" }, { "text": ":", @@ -16100,659 +17485,364 @@ "kind": "space" }, { - "text": "cProperties", - "kind": "className" + "text": "number", + "kind": "keyword" } ], "documentation": [] }, { - "name": "cWithConstructorProperty", - "kind": "class", - "kindModifiers": "", + "name": "nc_p2", + "kind": "method", + "kindModifiers": "public", "sortText": "11", "displayParts": [ { - "text": "class", - "kind": "keyword" + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "cWithConstructorProperty", + "text": "c1", "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "nc_p2", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "b", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" } ], "documentation": [] }, { - "name": "undefined", - "kind": "var", - "kindModifiers": "", - "sortText": "15", + "name": "nc_p3", + "kind": "property", + "kindModifiers": "public", + "sortText": "11", "displayParts": [ { - "text": "var", - "kind": "keyword" + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "undefined", + "text": "c1", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "nc_p3", "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" } ], "documentation": [] }, { - "name": "break", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", + "name": "nc_pp1", + "kind": "property", + "kindModifiers": "private", + "sortText": "11", "displayParts": [ { - "text": "break", - "kind": "keyword" - } - ] - }, - { - "name": "case", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "(", + "kind": "punctuation" + }, { - "text": "case", - "kind": "keyword" - } - ] - }, - { - "name": "catch", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "property", + "kind": "text" + }, { - "text": "catch", + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "c1", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "nc_pp1", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" } - ] + ], + "documentation": [] }, { - "name": "class", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", + "name": "nc_pp2", + "kind": "method", + "kindModifiers": "private", + "sortText": "11", "displayParts": [ { - "text": "class", + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "c1", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "nc_pp2", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "b", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" - } - ] - }, - { - "name": "const", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "const", + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" } - ] + ], + "documentation": [] }, { - "name": "continue", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", + "name": "nc_pp3", + "kind": "property", + "kindModifiers": "private", + "sortText": "11", "displayParts": [ { - "text": "continue", + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "c1", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "nc_pp3", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" } - ] + ], + "documentation": [] }, { - "name": "debugger", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", + "name": "p1", + "kind": "property", + "kindModifiers": "public", + "sortText": "11", "displayParts": [ { - "text": "debugger", + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "c1", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "p1", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" } - ] - }, - { - "name": "default", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "default", - "kind": "keyword" + "text": "p1 is property of c1", + "kind": "text" } ] }, { - "name": "delete", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "delete", - "kind": "keyword" - } - ] - }, - { - "name": "do", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "do", - "kind": "keyword" - } - ] - }, - { - "name": "else", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "else", - "kind": "keyword" - } - ] - }, - { - "name": "enum", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "enum", - "kind": "keyword" - } - ] - }, - { - "name": "export", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "export", - "kind": "keyword" - } - ] - }, - { - "name": "extends", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "extends", - "kind": "keyword" - } - ] - }, - { - "name": "false", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "false", - "kind": "keyword" - } - ] - }, - { - "name": "finally", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "finally", - "kind": "keyword" - } - ] - }, - { - "name": "for", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "for", - "kind": "keyword" - } - ] - }, - { - "name": "function", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "function", - "kind": "keyword" - } - ] - }, - { - "name": "if", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "if", - "kind": "keyword" - } - ] - }, - { - "name": "import", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "import", - "kind": "keyword" - } - ] - }, - { - "name": "in", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "in", - "kind": "keyword" - } - ] - }, - { - "name": "instanceof", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "instanceof", - "kind": "keyword" - } - ] - }, - { - "name": "new", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "new", - "kind": "keyword" - } - ] - }, - { - "name": "null", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "null", - "kind": "keyword" - } - ] - }, - { - "name": "return", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "return", - "kind": "keyword" - } - ] - }, - { - "name": "super", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "super", - "kind": "keyword" - } - ] - }, - { - "name": "switch", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "switch", - "kind": "keyword" - } - ] - }, - { - "name": "this", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "this", - "kind": "keyword" - } - ] - }, - { - "name": "throw", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "throw", - "kind": "keyword" - } - ] - }, - { - "name": "true", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "true", - "kind": "keyword" - } - ] - }, - { - "name": "try", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "try", - "kind": "keyword" - } - ] - }, - { - "name": "typeof", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "typeof", - "kind": "keyword" - } - ] - }, - { - "name": "var", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "var", - "kind": "keyword" - } - ] - }, - { - "name": "void", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "void", - "kind": "keyword" - } - ] - }, - { - "name": "while", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "while", - "kind": "keyword" - } - ] - }, - { - "name": "with", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "with", - "kind": "keyword" - } - ] - }, - { - "name": "implements", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "implements", - "kind": "keyword" - } - ] - }, - { - "name": "interface", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - } - ] - }, - { - "name": "let", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "let", - "kind": "keyword" - } - ] - }, - { - "name": "package", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "package", - "kind": "keyword" - } - ] - }, - { - "name": "yield", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "yield", - "kind": "keyword" - } - ] - }, - { - "name": "as", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "as", - "kind": "keyword" - } - ] - }, - { - "name": "async", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "async", - "kind": "keyword" - } - ] - }, - { - "name": "await", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "await", - "kind": "keyword" - } - ] - } - ] - } - }, - { - "marker": { - "fileName": "/tests/cases/fourslash/completionsCommentsClassMembers.ts", - "position": 652, - "name": "19" - }, - "completionList": { - "isGlobalCompletion": false, - "isMemberCompletion": true, - "isNewIdentifierLocation": false, - "optionalReplacementSpan": { - "start": 652, - "length": 3 - }, - "entries": [ - { - "name": "p1", - "kind": "property", - "kindModifiers": "public", - "sortText": "11", - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "c1", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "p1", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "p1 is property of c1", - "kind": "text" - } - ] - }, - { - "name": "p2", - "kind": "method", - "kindModifiers": "public", - "sortText": "11", + "name": "p2", + "kind": "method", + "kindModifiers": "public", + "sortText": "11", "displayParts": [ { "text": "(", @@ -17081,19 +18171,37 @@ "kind": "text" } ] - }, - { - "name": "nc_p1", - "kind": "property", - "kindModifiers": "public", - "sortText": "11", - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", + } + ] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/completionsCommentsClassMembers.ts", + "position": 771, + "name": "23" + }, + "completionList": { + "isGlobalCompletion": false, + "isMemberCompletion": true, + "isNewIdentifierLocation": false, + "optionalReplacementSpan": { + "start": 771, + "length": 3 + }, + "entries": [ + { + "name": "nc_p1", + "kind": "property", + "kindModifiers": "public", + "sortText": "11", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", "kind": "text" }, { @@ -17423,25 +18531,7 @@ } ], "documentation": [] - } - ] - } - }, - { - "marker": { - "fileName": "/tests/cases/fourslash/completionsCommentsClassMembers.ts", - "position": 661, - "name": "21" - }, - "completionList": { - "isGlobalCompletion": false, - "isMemberCompletion": true, - "isNewIdentifierLocation": false, - "optionalReplacementSpan": { - "start": 661, - "length": 3 - }, - "entries": [ + }, { "name": "p1", "kind": "property", @@ -17829,348 +18919,6 @@ "kind": "text" } ] - }, - { - "name": "nc_p1", - "kind": "property", - "kindModifiers": "public", - "sortText": "11", - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "c1", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "nc_p1", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "nc_p2", - "kind": "method", - "kindModifiers": "public", - "sortText": "11", - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "c1", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "nc_p2", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "b", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "nc_p3", - "kind": "property", - "kindModifiers": "public", - "sortText": "11", - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "c1", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "nc_p3", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "nc_pp1", - "kind": "property", - "kindModifiers": "private", - "sortText": "11", - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "c1", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "nc_pp1", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "nc_pp2", - "kind": "method", - "kindModifiers": "private", - "sortText": "11", - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "c1", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "nc_pp2", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "b", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "nc_pp3", - "kind": "property", - "kindModifiers": "private", - "sortText": "11", - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "c1", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "nc_pp3", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] } ] } @@ -18178,20 +18926,20 @@ { "marker": { "fileName": "/tests/cases/fourslash/completionsCommentsClassMembers.ts", - "position": 771, - "name": "23" + "position": 782, + "name": "24" }, "completionList": { "isGlobalCompletion": false, "isMemberCompletion": true, "isNewIdentifierLocation": false, "optionalReplacementSpan": { - "start": 771, + "start": 782, "length": 3 }, "entries": [ { - "name": "p1", + "name": "nc_p1", "kind": "property", "kindModifiers": "public", "sortText": "11", @@ -18221,7 +18969,7 @@ "kind": "punctuation" }, { - "text": "p1", + "text": "nc_p1", "kind": "propertyName" }, { @@ -18237,398 +18985,10 @@ "kind": "keyword" } ], - "documentation": [ - { - "text": "p1 is property of c1", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "p2", - "kind": "method", - "kindModifiers": "public", - "sortText": "11", - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "c1", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "p2", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "b", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "sum with property", - "kind": "text" - } - ] - }, - { - "name": "p3", - "kind": "property", - "kindModifiers": "public", - "sortText": "11", - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "c1", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "p3", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "getter property 1", - "kind": "text" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "setter property 1", - "kind": "text" - } - ] - }, - { - "name": "pp1", - "kind": "property", - "kindModifiers": "private", - "sortText": "11", - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "c1", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "pp1", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "pp1 is property of c1", - "kind": "text" - } - ] - }, - { - "name": "pp2", - "kind": "method", - "kindModifiers": "private", - "sortText": "11", - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "c1", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "pp2", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "b", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "sum with property", - "kind": "text" - } - ] - }, - { - "name": "pp3", - "kind": "property", - "kindModifiers": "private", - "sortText": "11", - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "c1", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "pp3", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "getter property 2", - "kind": "text" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "setter property 2", - "kind": "text" - } - ] - }, - { - "name": "nc_p1", - "kind": "property", - "kindModifiers": "public", - "sortText": "11", - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "c1", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "nc_p1", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "nc_p2", + "name": "nc_p2", "kind": "method", "kindModifiers": "public", "sortText": "11", @@ -18792,9032 +19152,89 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "nc_pp2", - "kind": "method", - "kindModifiers": "private", - "sortText": "11", - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "c1", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "nc_pp2", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "b", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "nc_pp3", - "kind": "property", - "kindModifiers": "private", - "sortText": "11", - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "c1", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "nc_pp3", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - } - ] - } - }, - { - "marker": { - "fileName": "/tests/cases/fourslash/completionsCommentsClassMembers.ts", - "position": 782, - "name": "24" - }, - "completionList": { - "isGlobalCompletion": false, - "isMemberCompletion": true, - "isNewIdentifierLocation": false, - "optionalReplacementSpan": { - "start": 782, - "length": 3 - }, - "entries": [ - { - "name": "p1", - "kind": "property", - "kindModifiers": "public", - "sortText": "11", - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "c1", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "p1", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "p1 is property of c1", - "kind": "text" - } - ] - }, - { - "name": "p2", - "kind": "method", - "kindModifiers": "public", - "sortText": "11", - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "c1", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "p2", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "b", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "sum with property", - "kind": "text" - } - ] - }, - { - "name": "p3", - "kind": "property", - "kindModifiers": "public", - "sortText": "11", - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "c1", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "p3", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "getter property 1", - "kind": "text" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "setter property 1", - "kind": "text" - } - ] - }, - { - "name": "pp1", - "kind": "property", - "kindModifiers": "private", - "sortText": "11", - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "c1", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "pp1", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "pp1 is property of c1", - "kind": "text" - } - ] - }, - { - "name": "pp2", - "kind": "method", - "kindModifiers": "private", - "sortText": "11", - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "c1", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "pp2", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "b", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "sum with property", - "kind": "text" - } - ] - }, - { - "name": "pp3", - "kind": "property", - "kindModifiers": "private", - "sortText": "11", - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "c1", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "pp3", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "getter property 2", - "kind": "text" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "setter property 2", - "kind": "text" - } - ] - }, - { - "name": "nc_p1", - "kind": "property", - "kindModifiers": "public", - "sortText": "11", - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "c1", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "nc_p1", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "nc_p2", - "kind": "method", - "kindModifiers": "public", - "sortText": "11", - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "c1", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "nc_p2", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "b", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "nc_p3", - "kind": "property", - "kindModifiers": "public", - "sortText": "11", - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "c1", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "nc_p3", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "nc_pp1", - "kind": "property", - "kindModifiers": "private", - "sortText": "11", - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "c1", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "nc_pp1", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "nc_pp2", - "kind": "method", - "kindModifiers": "private", - "sortText": "11", - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "c1", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "nc_pp2", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "b", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "nc_pp3", - "kind": "property", - "kindModifiers": "private", - "sortText": "11", - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "c1", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "nc_pp3", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - } - ] - } - }, - { - "marker": { - "fileName": "/tests/cases/fourslash/completionsCommentsClassMembers.ts", - "position": 786, - "name": "25" - }, - "completionList": { - "isGlobalCompletion": false, - "isMemberCompletion": false, - "isNewIdentifierLocation": true, - "optionalReplacementSpan": { - "start": 786, - "length": 5 - }, - "entries": [ - { - "name": "value", - "kind": "parameter", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "parameter", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "value", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "this is value", - "kind": "text" - } - ] - }, - { - "name": "arguments", - "kind": "local var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "local var", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "arguments", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "IArguments", - "kind": "interfaceName" - } - ], - "documentation": [] - }, - { - "name": "globalThis", - "kind": "module", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "module", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "globalThis", - "kind": "moduleName" - } - ], - "documentation": [] - }, - { - "name": "eval", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "eval", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "x", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Evaluates JavaScript code and executes it.", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "x", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A String value that contains valid JavaScript code.", - "kind": "text" - } - ] - } - ] - }, - { - "name": "parseInt", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "parseInt", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "string", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": ",", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "radix", - "kind": "parameterName" - }, - { - "text": "?", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Converts a string to an integer.", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string to convert into a number.", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "radix", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value between 2 and 36 that specifies the base of the number in `string`.\r\nIf this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal.\r\nAll other strings are considered decimal.", - "kind": "text" - } - ] - } - ] - }, - { - "name": "parseFloat", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "parseFloat", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "string", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Converts a string to a floating-point number.", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string that contains a floating-point number.", - "kind": "text" - } - ] - } - ] - }, - { - "name": "isNaN", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "isNaN", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "number", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "boolean", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Returns a Boolean value that indicates whether a value is the reserved value NaN (not a number).", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "number", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A numeric value.", - "kind": "text" - } - ] - } - ] - }, - { - "name": "isFinite", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "isFinite", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "number", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "boolean", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Determines whether a supplied number is finite.", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "number", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Any numeric value.", - "kind": "text" - } - ] - } - ] - }, - { - "name": "decodeURI", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "decodeURI", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "encodedURI", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Gets the unencoded version of an encoded Uniform Resource Identifier (URI).", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "encodedURI", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI.", - "kind": "text" - } - ] - } - ] - }, - { - "name": "decodeURIComponent", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "decodeURIComponent", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "encodedURIComponent", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "encodedURIComponent", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI component.", - "kind": "text" - } - ] - } - ] - }, - { - "name": "encodeURI", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "encodeURI", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "uri", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Encodes a text string as a valid Uniform Resource Identifier (URI)", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "uri", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI.", - "kind": "text" - } - ] - } - ] - }, - { - "name": "encodeURIComponent", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "encodeURIComponent", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "uriComponent", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "|", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "|", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "boolean", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Encodes a text string as a valid component of a Uniform Resource Identifier (URI).", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "uriComponent", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI component.", - "kind": "text" - } - ] - } - ] - }, - { - "name": "escape", - "kind": "function", - "kindModifiers": "deprecated,declare", - "sortText": "23", - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "escape", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "string", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Computes a new string in which certain characters have been replaced by a hexadecimal escape sequence.", - "kind": "text" - } - ], - "tags": [ - { - "name": "deprecated", - "text": [ - { - "text": "A legacy feature for browser compatibility", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string value", - "kind": "text" - } - ] - } - ] - }, - { - "name": "unescape", - "kind": "function", - "kindModifiers": "deprecated,declare", - "sortText": "23", - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "unescape", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "string", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Computes a new string in which hexadecimal escape sequences are replaced with the character that it represents.", - "kind": "text" - } - ], - "tags": [ - { - "name": "deprecated", - "text": [ - { - "text": "A legacy feature for browser compatibility", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string value", - "kind": "text" - } - ] - } - ] - }, - { - "name": "NaN", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "NaN", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "Infinity", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Infinity", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "Object", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Object", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Object", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "ObjectConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "Provides functionality common to all JavaScript objects.", - "kind": "text" - } - ] - }, - { - "name": "Function", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Function", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Function", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "FunctionConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "Creates a new function.", - "kind": "text" - } - ] - }, - { - "name": "String", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "String", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "String", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "StringConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "Allows manipulation and formatting of text strings and determination and location of substrings within strings.", - "kind": "text" - } - ] - }, - { - "name": "Boolean", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Boolean", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Boolean", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "BooleanConstructor", - "kind": "interfaceName" - } - ], - "documentation": [] - }, - { - "name": "Number", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Number", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Number", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "NumberConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "An object that represents a number of any kind. All JavaScript numbers are 64-bit floating-point numbers.", - "kind": "text" - } - ] - }, - { - "name": "Math", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Math", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Math", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Math", - "kind": "localName" - } - ], - "documentation": [ - { - "text": "An intrinsic object that provides basic mathematics functionality and constants.", - "kind": "text" - } - ] - }, - { - "name": "Date", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Date", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Date", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "DateConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "Enables basic storage and retrieval of dates and times.", - "kind": "text" - } - ] - }, - { - "name": "RegExp", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "RegExp", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "RegExp", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "RegExpConstructor", - "kind": "interfaceName" - } - ], - "documentation": [] - }, - { - "name": "Error", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Error", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Error", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "ErrorConstructor", - "kind": "interfaceName" - } - ], - "documentation": [] - }, - { - "name": "EvalError", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "EvalError", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "EvalError", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "EvalErrorConstructor", - "kind": "interfaceName" - } - ], - "documentation": [] - }, - { - "name": "RangeError", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "RangeError", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "RangeError", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "RangeErrorConstructor", - "kind": "interfaceName" - } - ], - "documentation": [] - }, - { - "name": "ReferenceError", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "ReferenceError", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "ReferenceError", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "ReferenceErrorConstructor", - "kind": "interfaceName" - } - ], - "documentation": [] - }, - { - "name": "SyntaxError", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "SyntaxError", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "SyntaxError", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "SyntaxErrorConstructor", - "kind": "interfaceName" - } - ], - "documentation": [] - }, - { - "name": "TypeError", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "TypeError", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "TypeError", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "TypeErrorConstructor", - "kind": "interfaceName" - } - ], - "documentation": [] - }, - { - "name": "URIError", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "URIError", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "URIError", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "URIErrorConstructor", - "kind": "interfaceName" - } - ], - "documentation": [] - }, - { - "name": "JSON", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "JSON", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "JSON", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "JSON", - "kind": "localName" - } - ], - "documentation": [ - { - "text": "An intrinsic object that provides functions to convert JavaScript values to and from the JavaScript Object Notation (JSON) format.", - "kind": "text" - } - ] - }, - { - "name": "Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Array", - "kind": "localName" - }, - { - "text": "<", - "kind": "punctuation" - }, - { - "text": "T", - "kind": "typeParameterName" - }, - { - "text": ">", - "kind": "punctuation" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Array", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "ArrayConstructor", - "kind": "interfaceName" - } - ], - "documentation": [] - }, - { - "name": "ArrayBuffer", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "ArrayBuffer", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "ArrayBuffer", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "ArrayBufferConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "Represents a raw buffer of binary data, which is used to store data for the\r\ndifferent typed arrays. ArrayBuffers cannot be read from or written to directly,\r\nbut can be passed to a typed array or DataView Object to interpret the raw\r\nbuffer as needed.", - "kind": "text" - } - ] - }, - { - "name": "DataView", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "DataView", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "DataView", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "DataViewConstructor", - "kind": "interfaceName" - } - ], - "documentation": [] - }, - { - "name": "Int8Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Int8Array", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Int8Array", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Int8ArrayConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "A typed array of 8-bit integer values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] - }, - { - "name": "Uint8Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Uint8Array", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Uint8Array", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Uint8ArrayConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] - }, - { - "name": "Uint8ClampedArray", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Uint8ClampedArray", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Uint8ClampedArray", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Uint8ClampedArrayConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0.\r\nIf the requested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] - }, - { - "name": "Int16Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Int16Array", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Int16Array", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Int16ArrayConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "A typed array of 16-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] - }, - { - "name": "Uint16Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Uint16Array", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Uint16Array", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Uint16ArrayConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] - }, - { - "name": "Int32Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Int32Array", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Int32Array", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Int32ArrayConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "A typed array of 32-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] - }, - { - "name": "Uint32Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Uint32Array", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Uint32Array", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Uint32ArrayConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] - }, - { - "name": "Float32Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Float32Array", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Float32Array", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Float32ArrayConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "A typed array of 32-bit float values. The contents are initialized to 0. If the requested number\r\nof bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] - }, - { - "name": "Float64Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Float64Array", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Float64Array", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Float64ArrayConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "A typed array of 64-bit float values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] - }, - { - "name": "Intl", - "kind": "module", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Intl", - "kind": "moduleName" - } - ], - "documentation": [] - }, - { - "name": "c1", - "kind": "class", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "c1", - "kind": "className" - } - ], - "documentation": [ - { - "text": "This is comment for c1", - "kind": "text" - } - ] - }, - { - "name": "i1", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "i1", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "c1", - "kind": "className" - } - ], - "documentation": [] - }, - { - "name": "i1_p", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "i1_p", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_f", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "i1_f", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "b", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=>", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_r", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "i1_r", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_prop", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "i1_prop", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_nc_p", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "i1_nc_p", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_ncf", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "i1_ncf", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "b", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=>", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_ncr", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "i1_ncr", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_ncprop", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "i1_ncprop", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_s_p", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "i1_s_p", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_s_f", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "i1_s_f", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "b", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=>", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_s_r", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "i1_s_r", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_s_prop", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "i1_s_prop", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_s_nc_p", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "i1_s_nc_p", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_s_ncf", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "i1_s_ncf", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "b", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=>", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_s_ncr", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "i1_s_ncr", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_s_ncprop", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "i1_s_ncprop", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_c", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "i1_c", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "typeof", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "c1", - "kind": "className" - } - ], - "documentation": [] - }, - { - "name": "cProperties", - "kind": "class", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "cProperties", - "kind": "className" - } - ], - "documentation": [] - }, - { - "name": "cProperties_i", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "cProperties_i", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "cProperties", - "kind": "className" - } - ], - "documentation": [] - }, - { - "name": "cWithConstructorProperty", - "kind": "class", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "cWithConstructorProperty", - "kind": "className" - } - ], - "documentation": [] - }, - { - "name": "undefined", - "kind": "var", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "undefined", - "kind": "propertyName" - } - ], - "documentation": [] - }, - { - "name": "break", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "break", - "kind": "keyword" - } - ] - }, - { - "name": "case", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "case", - "kind": "keyword" - } - ] - }, - { - "name": "catch", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "catch", - "kind": "keyword" - } - ] - }, - { - "name": "class", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "class", - "kind": "keyword" - } - ] - }, - { - "name": "const", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "const", - "kind": "keyword" - } - ] - }, - { - "name": "continue", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "continue", - "kind": "keyword" - } - ] - }, - { - "name": "debugger", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "debugger", - "kind": "keyword" - } - ] - }, - { - "name": "default", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "default", - "kind": "keyword" - } - ] - }, - { - "name": "delete", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "delete", - "kind": "keyword" - } - ] - }, - { - "name": "do", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "do", - "kind": "keyword" - } - ] - }, - { - "name": "else", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "else", - "kind": "keyword" - } - ] - }, - { - "name": "enum", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "enum", - "kind": "keyword" - } - ] - }, - { - "name": "export", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "export", - "kind": "keyword" - } - ] - }, - { - "name": "extends", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "extends", - "kind": "keyword" - } - ] - }, - { - "name": "false", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "false", - "kind": "keyword" - } - ] - }, - { - "name": "finally", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "finally", - "kind": "keyword" - } - ] - }, - { - "name": "for", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "for", - "kind": "keyword" - } - ] - }, - { - "name": "function", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "function", - "kind": "keyword" - } - ] - }, - { - "name": "if", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "if", - "kind": "keyword" - } - ] - }, - { - "name": "import", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "import", - "kind": "keyword" - } - ] - }, - { - "name": "in", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "in", - "kind": "keyword" - } - ] - }, - { - "name": "instanceof", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "instanceof", - "kind": "keyword" - } - ] - }, - { - "name": "new", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "new", - "kind": "keyword" - } - ] - }, - { - "name": "null", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "null", - "kind": "keyword" - } - ] - }, - { - "name": "return", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "return", - "kind": "keyword" - } - ] - }, - { - "name": "super", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "super", - "kind": "keyword" - } - ] - }, - { - "name": "switch", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "switch", - "kind": "keyword" - } - ] - }, - { - "name": "this", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "this", - "kind": "keyword" - } - ] - }, - { - "name": "throw", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "throw", - "kind": "keyword" - } - ] - }, - { - "name": "true", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "true", - "kind": "keyword" - } - ] - }, - { - "name": "try", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "try", - "kind": "keyword" - } - ] - }, - { - "name": "typeof", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "typeof", - "kind": "keyword" - } - ] - }, - { - "name": "var", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "var", - "kind": "keyword" - } - ] - }, - { - "name": "void", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "void", - "kind": "keyword" - } - ] - }, - { - "name": "while", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "while", - "kind": "keyword" - } - ] - }, - { - "name": "with", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "with", - "kind": "keyword" - } - ] - }, - { - "name": "implements", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "implements", - "kind": "keyword" - } - ] - }, - { - "name": "interface", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - } - ] - }, - { - "name": "let", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "let", - "kind": "keyword" - } - ] - }, - { - "name": "package", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "package", - "kind": "keyword" - } - ] - }, - { - "name": "yield", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "yield", - "kind": "keyword" - } - ] - }, - { - "name": "as", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "as", - "kind": "keyword" - } - ] - }, - { - "name": "async", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "async", - "kind": "keyword" - } - ] - }, - { - "name": "await", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "await", - "kind": "keyword" - } - ] - } - ] - } - }, - { - "marker": { - "fileName": "/tests/cases/fourslash/completionsCommentsClassMembers.ts", - "position": 1012, - "name": "29" - }, - "completionList": { - "isGlobalCompletion": true, - "isMemberCompletion": false, - "isNewIdentifierLocation": false, - "optionalReplacementSpan": { - "start": 1012, - "length": 2 - }, - "entries": [ - { - "name": "b", - "kind": "parameter", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "parameter", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "b", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "number to add", - "kind": "text" - } - ] - }, - { - "name": "arguments", - "kind": "local var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "local var", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "arguments", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "IArguments", - "kind": "interfaceName" - } - ], - "documentation": [] - }, - { - "name": "globalThis", - "kind": "module", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "module", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "globalThis", - "kind": "moduleName" - } - ], - "documentation": [] - }, - { - "name": "eval", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "eval", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "x", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Evaluates JavaScript code and executes it.", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "x", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A String value that contains valid JavaScript code.", - "kind": "text" - } - ] - } - ] - }, - { - "name": "parseInt", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "parseInt", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "string", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": ",", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "radix", - "kind": "parameterName" - }, - { - "text": "?", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Converts a string to an integer.", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string to convert into a number.", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "radix", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value between 2 and 36 that specifies the base of the number in `string`.\r\nIf this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal.\r\nAll other strings are considered decimal.", - "kind": "text" - } - ] - } - ] - }, - { - "name": "parseFloat", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "parseFloat", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "string", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Converts a string to a floating-point number.", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string that contains a floating-point number.", - "kind": "text" - } - ] - } - ] - }, - { - "name": "isNaN", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "isNaN", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "number", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "boolean", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Returns a Boolean value that indicates whether a value is the reserved value NaN (not a number).", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "number", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A numeric value.", - "kind": "text" - } - ] - } - ] - }, - { - "name": "isFinite", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "isFinite", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "number", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "boolean", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Determines whether a supplied number is finite.", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "number", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Any numeric value.", - "kind": "text" - } - ] - } - ] - }, - { - "name": "decodeURI", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "decodeURI", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "encodedURI", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Gets the unencoded version of an encoded Uniform Resource Identifier (URI).", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "encodedURI", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI.", - "kind": "text" - } - ] - } - ] - }, - { - "name": "decodeURIComponent", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "decodeURIComponent", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "encodedURIComponent", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "encodedURIComponent", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI component.", - "kind": "text" - } - ] - } - ] - }, - { - "name": "encodeURI", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "encodeURI", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "uri", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Encodes a text string as a valid Uniform Resource Identifier (URI)", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "uri", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI.", - "kind": "text" - } - ] - } - ] - }, - { - "name": "encodeURIComponent", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "encodeURIComponent", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "uriComponent", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "|", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "|", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "boolean", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Encodes a text string as a valid component of a Uniform Resource Identifier (URI).", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "uriComponent", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI component.", - "kind": "text" - } - ] - } - ] - }, - { - "name": "escape", - "kind": "function", - "kindModifiers": "deprecated,declare", - "sortText": "23", - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "escape", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "string", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Computes a new string in which certain characters have been replaced by a hexadecimal escape sequence.", - "kind": "text" - } - ], - "tags": [ - { - "name": "deprecated", - "text": [ - { - "text": "A legacy feature for browser compatibility", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string value", - "kind": "text" - } - ] - } - ] - }, - { - "name": "unescape", - "kind": "function", - "kindModifiers": "deprecated,declare", - "sortText": "23", - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "unescape", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "string", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Computes a new string in which hexadecimal escape sequences are replaced with the character that it represents.", - "kind": "text" - } - ], - "tags": [ - { - "name": "deprecated", - "text": [ - { - "text": "A legacy feature for browser compatibility", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string value", - "kind": "text" - } - ] - } - ] - }, - { - "name": "NaN", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "NaN", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "Infinity", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Infinity", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "Object", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Object", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Object", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "ObjectConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "Provides functionality common to all JavaScript objects.", - "kind": "text" - } - ] - }, - { - "name": "Function", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Function", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Function", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "FunctionConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "Creates a new function.", - "kind": "text" - } - ] - }, - { - "name": "String", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "String", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "String", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "StringConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "Allows manipulation and formatting of text strings and determination and location of substrings within strings.", - "kind": "text" - } - ] - }, - { - "name": "Boolean", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Boolean", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Boolean", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "BooleanConstructor", - "kind": "interfaceName" - } - ], - "documentation": [] - }, - { - "name": "Number", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Number", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Number", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "NumberConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "An object that represents a number of any kind. All JavaScript numbers are 64-bit floating-point numbers.", - "kind": "text" - } - ] - }, - { - "name": "Math", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Math", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Math", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Math", - "kind": "localName" - } - ], - "documentation": [ - { - "text": "An intrinsic object that provides basic mathematics functionality and constants.", - "kind": "text" - } - ] - }, - { - "name": "Date", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Date", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Date", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "DateConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "Enables basic storage and retrieval of dates and times.", - "kind": "text" - } - ] - }, - { - "name": "RegExp", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "RegExp", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "RegExp", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "RegExpConstructor", - "kind": "interfaceName" - } - ], - "documentation": [] - }, - { - "name": "Error", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Error", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Error", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "ErrorConstructor", - "kind": "interfaceName" - } - ], - "documentation": [] - }, - { - "name": "EvalError", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "EvalError", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "EvalError", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "EvalErrorConstructor", - "kind": "interfaceName" - } - ], - "documentation": [] - }, - { - "name": "RangeError", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "RangeError", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "RangeError", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "RangeErrorConstructor", - "kind": "interfaceName" - } - ], - "documentation": [] - }, - { - "name": "ReferenceError", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "ReferenceError", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "ReferenceError", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "ReferenceErrorConstructor", - "kind": "interfaceName" - } - ], - "documentation": [] - }, - { - "name": "SyntaxError", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "SyntaxError", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "SyntaxError", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "SyntaxErrorConstructor", - "kind": "interfaceName" - } - ], - "documentation": [] - }, - { - "name": "TypeError", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "TypeError", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "TypeError", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "TypeErrorConstructor", - "kind": "interfaceName" - } - ], - "documentation": [] - }, - { - "name": "URIError", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "URIError", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "URIError", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "URIErrorConstructor", - "kind": "interfaceName" - } - ], - "documentation": [] - }, - { - "name": "JSON", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "JSON", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "JSON", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "JSON", - "kind": "localName" - } - ], - "documentation": [ - { - "text": "An intrinsic object that provides functions to convert JavaScript values to and from the JavaScript Object Notation (JSON) format.", - "kind": "text" - } - ] - }, - { - "name": "Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Array", - "kind": "localName" - }, - { - "text": "<", - "kind": "punctuation" - }, - { - "text": "T", - "kind": "typeParameterName" - }, - { - "text": ">", - "kind": "punctuation" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Array", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "ArrayConstructor", - "kind": "interfaceName" - } - ], - "documentation": [] - }, - { - "name": "ArrayBuffer", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "ArrayBuffer", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "ArrayBuffer", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "ArrayBufferConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "Represents a raw buffer of binary data, which is used to store data for the\r\ndifferent typed arrays. ArrayBuffers cannot be read from or written to directly,\r\nbut can be passed to a typed array or DataView Object to interpret the raw\r\nbuffer as needed.", - "kind": "text" - } - ] - }, - { - "name": "DataView", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "DataView", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "DataView", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "DataViewConstructor", - "kind": "interfaceName" - } - ], - "documentation": [] - }, - { - "name": "Int8Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Int8Array", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Int8Array", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Int8ArrayConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "A typed array of 8-bit integer values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] - }, - { - "name": "Uint8Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Uint8Array", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Uint8Array", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Uint8ArrayConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] - }, - { - "name": "Uint8ClampedArray", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Uint8ClampedArray", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Uint8ClampedArray", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Uint8ClampedArrayConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0.\r\nIf the requested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] - }, - { - "name": "Int16Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Int16Array", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Int16Array", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Int16ArrayConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "A typed array of 16-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] - }, - { - "name": "Uint16Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Uint16Array", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Uint16Array", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Uint16ArrayConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] - }, - { - "name": "Int32Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Int32Array", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Int32Array", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Int32ArrayConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "A typed array of 32-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] - }, - { - "name": "Uint32Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Uint32Array", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Uint32Array", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Uint32ArrayConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] - }, - { - "name": "Float32Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Float32Array", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Float32Array", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Float32ArrayConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "A typed array of 32-bit float values. The contents are initialized to 0. If the requested number\r\nof bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] - }, - { - "name": "Float64Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Float64Array", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Float64Array", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Float64ArrayConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "A typed array of 64-bit float values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] - }, - { - "name": "Intl", - "kind": "module", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Intl", - "kind": "moduleName" - } - ], - "documentation": [] - }, - { - "name": "c1", - "kind": "class", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "c1", - "kind": "className" - } - ], - "documentation": [ - { - "text": "This is comment for c1", - "kind": "text" - } - ] - }, - { - "name": "i1", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "i1", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "c1", - "kind": "className" - } - ], - "documentation": [] - }, - { - "name": "i1_p", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "i1_p", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_f", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "i1_f", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "b", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=>", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_r", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "i1_r", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_prop", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "i1_prop", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_nc_p", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "i1_nc_p", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_ncf", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "i1_ncf", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "b", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=>", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_ncr", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "i1_ncr", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_ncprop", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "i1_ncprop", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_s_p", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "i1_s_p", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_s_f", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "i1_s_f", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "b", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=>", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_s_r", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "i1_s_r", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_s_prop", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "i1_s_prop", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_s_nc_p", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "i1_s_nc_p", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_s_ncf", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "i1_s_ncf", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "b", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=>", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_s_ncr", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "i1_s_ncr", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_s_ncprop", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "i1_s_ncprop", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_c", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "i1_c", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "typeof", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "c1", - "kind": "className" - } - ], - "documentation": [] - }, - { - "name": "cProperties", - "kind": "class", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "cProperties", - "kind": "className" - } - ], - "documentation": [] - }, - { - "name": "cProperties_i", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "cProperties_i", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "cProperties", - "kind": "className" - } - ], - "documentation": [] - }, - { - "name": "cWithConstructorProperty", - "kind": "class", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "cWithConstructorProperty", - "kind": "className" - } - ], - "documentation": [] - }, - { - "name": "undefined", - "kind": "var", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "undefined", - "kind": "propertyName" - } - ], - "documentation": [] - }, - { - "name": "break", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "break", - "kind": "keyword" - } - ] - }, - { - "name": "case", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "case", - "kind": "keyword" - } - ] - }, - { - "name": "catch", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "catch", - "kind": "keyword" - } - ] - }, - { - "name": "class", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "class", - "kind": "keyword" - } - ] - }, - { - "name": "const", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "const", - "kind": "keyword" - } - ] - }, - { - "name": "continue", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "continue", - "kind": "keyword" - } - ] - }, - { - "name": "debugger", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "debugger", - "kind": "keyword" - } - ] - }, - { - "name": "default", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "default", - "kind": "keyword" - } - ] - }, - { - "name": "delete", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "delete", - "kind": "keyword" - } - ] - }, - { - "name": "do", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "do", - "kind": "keyword" - } - ] - }, - { - "name": "else", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "else", - "kind": "keyword" - } - ] - }, - { - "name": "enum", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "enum", - "kind": "keyword" - } - ] - }, - { - "name": "export", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "export", - "kind": "keyword" - } - ] - }, - { - "name": "extends", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "extends", - "kind": "keyword" - } - ] - }, - { - "name": "false", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "false", - "kind": "keyword" - } - ] - }, - { - "name": "finally", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "finally", - "kind": "keyword" - } - ] - }, - { - "name": "for", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "for", - "kind": "keyword" - } - ] - }, - { - "name": "function", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "function", - "kind": "keyword" - } - ] - }, - { - "name": "if", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "if", - "kind": "keyword" - } - ] - }, - { - "name": "import", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "import", - "kind": "keyword" - } - ] - }, - { - "name": "in", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "in", - "kind": "keyword" - } - ] - }, - { - "name": "instanceof", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "instanceof", - "kind": "keyword" - } - ] - }, - { - "name": "new", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "new", - "kind": "keyword" - } - ] - }, - { - "name": "null", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "null", - "kind": "keyword" - } - ] - }, - { - "name": "return", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "return", - "kind": "keyword" - } - ] - }, - { - "name": "super", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "super", - "kind": "keyword" - } - ] - }, - { - "name": "switch", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "switch", - "kind": "keyword" - } - ] - }, - { - "name": "this", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "this", - "kind": "keyword" - } - ] - }, - { - "name": "throw", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "throw", - "kind": "keyword" - } - ] - }, - { - "name": "true", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "true", - "kind": "keyword" - } - ] - }, - { - "name": "try", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "try", - "kind": "keyword" - } - ] - }, - { - "name": "typeof", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "typeof", - "kind": "keyword" - } - ] - }, - { - "name": "var", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "var", - "kind": "keyword" - } - ] - }, - { - "name": "void", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "void", - "kind": "keyword" - } - ] - }, - { - "name": "while", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "while", - "kind": "keyword" - } - ] - }, - { - "name": "with", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "with", - "kind": "keyword" - } - ] - }, - { - "name": "implements", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "implements", - "kind": "keyword" - } - ] - }, - { - "name": "interface", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - } - ] - }, - { - "name": "let", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "let", - "kind": "keyword" - } - ] - }, - { - "name": "package", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "package", - "kind": "keyword" - } - ] - }, - { - "name": "yield", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "yield", + "text": "number", "kind": "keyword" } - ] + ], + "documentation": [] }, { - "name": "as", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", + "name": "nc_pp2", + "kind": "method", + "kindModifiers": "private", + "sortText": "11", "displayParts": [ { - "text": "as", - "kind": "keyword" - } - ] - }, - { - "name": "async", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "(", + "kind": "punctuation" + }, { - "text": "async", + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "c1", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "nc_pp2", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "b", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" - } - ] - }, - { - "name": "await", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "await", + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" } - ] - } - ] - } - }, - { - "marker": { - "fileName": "/tests/cases/fourslash/completionsCommentsClassMembers.ts", - "position": 1015, - "name": "30" - }, - "completionList": { - "isGlobalCompletion": false, - "isMemberCompletion": true, - "isNewIdentifierLocation": false, - "optionalReplacementSpan": { - "start": 1015, - "length": 2 - }, - "entries": [ + ], + "documentation": [] + }, { - "name": "prototype", + "name": "nc_pp3", "kind": "property", - "kindModifiers": "", + "kindModifiers": "private", "sortText": "11", "displayParts": [ { @@ -27845,7 +19262,7 @@ "kind": "punctuation" }, { - "text": "prototype", + "text": "nc_pp3", "kind": "propertyName" }, { @@ -27857,17 +19274,17 @@ "kind": "space" }, { - "text": "c1", - "kind": "className" + "text": "number", + "kind": "keyword" } ], "documentation": [] }, { - "name": "s1", + "name": "p1", "kind": "property", - "kindModifiers": "static", - "sortText": "10", + "kindModifiers": "public", + "sortText": "11", "displayParts": [ { "text": "(", @@ -27894,7 +19311,7 @@ "kind": "punctuation" }, { - "text": "s1", + "text": "p1", "kind": "propertyName" }, { @@ -27912,16 +19329,16 @@ ], "documentation": [ { - "text": "s1 is static property of c1", + "text": "p1 is property of c1", "kind": "text" } ] }, { - "name": "s2", + "name": "p2", "kind": "method", - "kindModifiers": "static", - "sortText": "10", + "kindModifiers": "public", + "sortText": "11", "displayParts": [ { "text": "(", @@ -27948,7 +19365,7 @@ "kind": "punctuation" }, { - "text": "s2", + "text": "p2", "kind": "methodName" }, { @@ -27990,16 +19407,16 @@ ], "documentation": [ { - "text": "static sum with property", + "text": "sum with property", "kind": "text" } ] }, { - "name": "s3", + "name": "p3", "kind": "property", - "kindModifiers": "static", - "sortText": "10", + "kindModifiers": "public", + "sortText": "11", "displayParts": [ { "text": "(", @@ -28026,7 +19443,7 @@ "kind": "punctuation" }, { - "text": "s3", + "text": "p3", "kind": "propertyName" }, { @@ -28044,7 +19461,7 @@ ], "documentation": [ { - "text": "static getter property", + "text": "getter property 1", "kind": "text" }, { @@ -28052,16 +19469,16 @@ "kind": "lineBreak" }, { - "text": "setter property 3", + "text": "setter property 1", "kind": "text" } ] }, { - "name": "nc_s1", + "name": "pp1", "kind": "property", - "kindModifiers": "static", - "sortText": "10", + "kindModifiers": "private", + "sortText": "11", "displayParts": [ { "text": "(", @@ -28088,7 +19505,7 @@ "kind": "punctuation" }, { - "text": "nc_s1", + "text": "pp1", "kind": "propertyName" }, { @@ -28104,13 +19521,18 @@ "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "pp1 is property of c1", + "kind": "text" + } + ] }, { - "name": "nc_s2", + "name": "pp2", "kind": "method", - "kindModifiers": "static", - "sortText": "10", + "kindModifiers": "private", + "sortText": "11", "displayParts": [ { "text": "(", @@ -28137,7 +19559,7 @@ "kind": "punctuation" }, { - "text": "nc_s2", + "text": "pp2", "kind": "methodName" }, { @@ -28177,13 +19599,18 @@ "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "sum with property", + "kind": "text" + } + ] }, { - "name": "nc_s3", + "name": "pp3", "kind": "property", - "kindModifiers": "static", - "sortText": "10", + "kindModifiers": "private", + "sortText": "11", "displayParts": [ { "text": "(", @@ -28210,7 +19637,7 @@ "kind": "punctuation" }, { - "text": "nc_s3", + "text": "pp3", "kind": "propertyName" }, { @@ -28226,12 +19653,43 @@ "kind": "keyword" } ], - "documentation": [] - }, + "documentation": [ + { + "text": "getter property 2", + "kind": "text" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "setter property 2", + "kind": "text" + } + ] + } + ] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/completionsCommentsClassMembers.ts", + "position": 786, + "name": "25" + }, + "completionList": { + "isGlobalCompletion": false, + "isMemberCompletion": false, + "isNewIdentifierLocation": true, + "optionalReplacementSpan": { + "start": 786, + "length": 5 + }, + "entries": [ { - "name": "apply", - "kind": "method", - "kindModifiers": "declare", + "name": "arguments", + "kind": "local var", + "kindModifiers": "", "sortText": "11", "displayParts": [ { @@ -28239,7 +19697,7 @@ "kind": "punctuation" }, { - "text": "method", + "text": "local var", "kind": "text" }, { @@ -28251,24 +19709,88 @@ "kind": "space" }, { - "text": "Function", - "kind": "localName" + "text": "arguments", + "kind": "propertyName" }, { - "text": ".", + "text": ":", "kind": "punctuation" }, { - "text": "apply", - "kind": "methodName" + "text": " ", + "kind": "space" }, { - "text": "(", - "kind": "punctuation" + "text": "IArguments", + "kind": "interfaceName" + } + ], + "documentation": [] + }, + { + "name": "c1", + "kind": "class", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "class", + "kind": "keyword" }, { - "text": "this", - "kind": "parameterName" + "text": " ", + "kind": "space" + }, + { + "text": "c1", + "kind": "className" + } + ], + "documentation": [ + { + "text": "This is comment for c1", + "kind": "text" + } + ] + }, + { + "name": "cProperties", + "kind": "class", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "cProperties", + "kind": "className" + } + ], + "documentation": [] + }, + { + "name": "cProperties_i", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "cProperties_i", + "kind": "localName" }, { "text": ":", @@ -28279,11 +19801,53 @@ "kind": "space" }, { - "text": "Function", + "text": "cProperties", + "kind": "className" + } + ], + "documentation": [] + }, + { + "name": "cWithConstructorProperty", + "kind": "class", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "cWithConstructorProperty", + "kind": "className" + } + ], + "documentation": [] + }, + { + "name": "i1", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "i1", "kind": "localName" }, { - "text": ",", + "text": ":", "kind": "punctuation" }, { @@ -28291,8 +19855,29 @@ "kind": "space" }, { - "text": "thisArg", - "kind": "parameterName" + "text": "c1", + "kind": "className" + } + ], + "documentation": [] + }, + { + "name": "i1_c", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "i1_c", + "kind": "localName" }, { "text": ":", @@ -28303,25 +19888,54 @@ "kind": "space" }, { - "text": "any", + "text": "typeof", "kind": "keyword" }, { - "text": ",", - "kind": "punctuation" + "text": " ", + "kind": "space" + }, + { + "text": "c1", + "kind": "className" + } + ], + "documentation": [] + }, + { + "name": "i1_f", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "argArray", - "kind": "parameterName" + "text": "i1_f", + "kind": "localName" }, { - "text": "?", + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", "kind": "punctuation" }, + { + "text": "b", + "kind": "parameterName" + }, { "text": ":", "kind": "punctuation" @@ -28331,7 +19945,7 @@ "kind": "space" }, { - "text": "any", + "text": "number", "kind": "keyword" }, { @@ -28339,7 +19953,11 @@ "kind": "punctuation" }, { - "text": ":", + "text": " ", + "kind": "space" + }, + { + "text": "=>", "kind": "punctuation" }, { @@ -28347,93 +19965,77 @@ "kind": "space" }, { - "text": "any", + "text": "number", "kind": "keyword" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "i1_nc_p", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { - "text": "Calls the function, substituting the specified object for the this value of the function, and the specified array for the arguments of the function.", - "kind": "text" - } - ], - "tags": [ + "text": "var", + "kind": "keyword" + }, { - "name": "param", - "text": [ - { - "text": "thisArg", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "The object to be used as the this object.", - "kind": "text" - } - ] + "text": " ", + "kind": "space" }, { - "name": "param", - "text": [ - { - "text": "argArray", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A set of arguments to be passed to the function.", - "kind": "text" - } - ] + "text": "i1_nc_p", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" } - ] + ], + "documentation": [] }, { - "name": "call", - "kind": "method", - "kindModifiers": "declare", + "name": "i1_ncf", + "kind": "var", + "kindModifiers": "", "sortText": "11", "displayParts": [ { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "Function", + "text": "i1_ncf", "kind": "localName" }, { - "text": ".", + "text": ":", "kind": "punctuation" }, { - "text": "call", - "kind": "methodName" + "text": " ", + "kind": "space" }, { "text": "(", "kind": "punctuation" }, { - "text": "this", + "text": "b", "kind": "parameterName" }, { @@ -28445,11 +20047,11 @@ "kind": "space" }, { - "text": "Function", - "kind": "localName" + "text": "number", + "kind": "keyword" }, { - "text": ",", + "text": ")", "kind": "punctuation" }, { @@ -28457,11 +20059,7 @@ "kind": "space" }, { - "text": "thisArg", - "kind": "parameterName" - }, - { - "text": ":", + "text": "=>", "kind": "punctuation" }, { @@ -28469,24 +20067,29 @@ "kind": "space" }, { - "text": "any", + "text": "number", "kind": "keyword" - }, + } + ], + "documentation": [] + }, + { + "name": "i1_ncprop", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { - "text": ",", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "...", - "kind": "punctuation" - }, - { - "text": "argArray", - "kind": "parameterName" + "text": "i1_ncprop", + "kind": "localName" }, { "text": ":", @@ -28497,20 +20100,29 @@ "kind": "space" }, { - "text": "any", + "text": "number", "kind": "keyword" - }, + } + ], + "documentation": [] + }, + { + "name": "i1_ncr", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { - "text": "[", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { - "text": "]", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": ")", - "kind": "punctuation" + "text": "i1_ncr", + "kind": "localName" }, { "text": ":", @@ -28521,69 +20133,32 @@ "kind": "space" }, { - "text": "any", + "text": "number", "kind": "keyword" } ], - "documentation": [ - { - "text": "Calls a method of an object, substituting another object for the current object.", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "thisArg", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "The object to be used as the current object.", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "argArray", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A list of arguments to be passed to the method.", - "kind": "text" - } - ] - } - ] + "documentation": [] }, { - "name": "bind", - "kind": "method", - "kindModifiers": "declare", + "name": "i1_p", + "kind": "var", + "kindModifiers": "", "sortText": "11", "displayParts": [ { - "text": "(", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { - "text": "method", - "kind": "text" + "text": " ", + "kind": "space" }, { - "text": ")", + "text": "i1_p", + "kind": "localName" + }, + { + "text": ":", "kind": "punctuation" }, { @@ -28591,39 +20166,65 @@ "kind": "space" }, { - "text": "Function", - "kind": "localName" + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "i1_prop", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "var", + "kind": "keyword" }, { - "text": ".", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": "bind", - "kind": "methodName" + "text": "i1_prop", + "kind": "localName" }, { - "text": "(", + "text": ":", "kind": "punctuation" }, { - "text": "this", - "kind": "parameterName" + "text": " ", + "kind": "space" }, { - "text": ":", - "kind": "punctuation" + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "i1_r", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "Function", + "text": "i1_r", "kind": "localName" }, { - "text": ",", + "text": ":", "kind": "punctuation" }, { @@ -28631,23 +20232,32 @@ "kind": "space" }, { - "text": "thisArg", - "kind": "parameterName" - }, + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "i1_s_f", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "any", - "kind": "keyword" + "text": "i1_s_f", + "kind": "localName" }, { - "text": ",", + "text": ":", "kind": "punctuation" }, { @@ -28655,11 +20265,11 @@ "kind": "space" }, { - "text": "...", + "text": "(", "kind": "punctuation" }, { - "text": "argArray", + "text": "b", "kind": "parameterName" }, { @@ -28671,23 +20281,19 @@ "kind": "space" }, { - "text": "any", + "text": "number", "kind": "keyword" }, { - "text": "[", - "kind": "punctuation" - }, - { - "text": "]", + "text": ")", "kind": "punctuation" }, { - "text": ")", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": ":", + "text": "=>", "kind": "punctuation" }, { @@ -28695,94 +20301,62 @@ "kind": "space" }, { - "text": "any", + "text": "number", "kind": "keyword" } ], - "documentation": [ - { - "text": "For a given function, creates a bound function that has the same body as the original function.\r\nThe this object of the bound function is associated with the specified object, and has the specified initial parameters.", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "thisArg", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "An object to which the this keyword can refer inside the new function.", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "argArray", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A list of arguments to be passed to the new function.", - "kind": "text" - } - ] - } - ] + "documentation": [] }, { - "name": "toString", - "kind": "method", - "kindModifiers": "declare", + "name": "i1_s_nc_p", + "kind": "var", + "kindModifiers": "", "sortText": "11", "displayParts": [ { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "Function", + "text": "i1_s_nc_p", "kind": "localName" }, { - "text": ".", + "text": ":", "kind": "punctuation" }, { - "text": "toString", - "kind": "methodName" + "text": " ", + "kind": "space" }, { - "text": "(", - "kind": "punctuation" + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "i1_s_ncf", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "var", + "kind": "keyword" }, { - "text": ")", - "kind": "punctuation" + "text": " ", + "kind": "space" + }, + { + "text": "i1_s_ncf", + "kind": "localName" }, { "text": ":", @@ -28792,34 +20366,16 @@ "text": " ", "kind": "space" }, - { - "text": "string", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Returns a string representation of a function.", - "kind": "text" - } - ] - }, - { - "name": "length", - "kind": "property", - "kindModifiers": "declare", - "sortText": "11", - "displayParts": [ { "text": "(", "kind": "punctuation" }, { - "text": "property", - "kind": "text" + "text": "b", + "kind": "parameterName" }, { - "text": ")", + "text": ":", "kind": "punctuation" }, { @@ -28827,19 +20383,19 @@ "kind": "space" }, { - "text": "Function", - "kind": "localName" + "text": "number", + "kind": "keyword" }, { - "text": ".", + "text": ")", "kind": "punctuation" }, { - "text": "length", - "kind": "propertyName" + "text": " ", + "kind": "space" }, { - "text": ":", + "text": "=>", "kind": "punctuation" }, { @@ -28854,39 +20410,23 @@ "documentation": [] }, { - "name": "arguments", - "kind": "property", - "kindModifiers": "declare", + "name": "i1_s_ncprop", + "kind": "var", + "kindModifiers": "", "sortText": "11", "displayParts": [ { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "Function", + "text": "i1_s_ncprop", "kind": "localName" }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "arguments", - "kind": "propertyName" - }, { "text": ":", "kind": "punctuation" @@ -28896,46 +20436,30 @@ "kind": "space" }, { - "text": "any", + "text": "number", "kind": "keyword" } ], "documentation": [] }, { - "name": "caller", - "kind": "property", - "kindModifiers": "declare", + "name": "i1_s_ncr", + "kind": "var", + "kindModifiers": "", "sortText": "11", "displayParts": [ { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "Function", + "text": "i1_s_ncr", "kind": "localName" }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "caller", - "kind": "propertyName" - }, { "text": ":", "kind": "punctuation" @@ -28945,55 +20469,29 @@ "kind": "space" }, { - "text": "Function", - "kind": "localName" + "text": "number", + "kind": "keyword" } ], "documentation": [] - } - ] - } - }, - { - "marker": { - "fileName": "/tests/cases/fourslash/completionsCommentsClassMembers.ts", - "position": 1020, - "name": "31" - }, - "completionList": { - "isGlobalCompletion": false, - "isMemberCompletion": false, - "isNewIdentifierLocation": false, - "optionalReplacementSpan": { - "start": 1020, - "length": 1 - }, - "entries": [ + }, { - "name": "b", - "kind": "parameter", + "name": "i1_s_p", + "kind": "var", "kindModifiers": "", "sortText": "11", "displayParts": [ { - "text": "(", - "kind": "punctuation" - }, - { - "text": "parameter", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "b", - "kind": "parameterName" + "text": "i1_s_p", + "kind": "localName" }, { "text": ":", @@ -29008,38 +20506,25 @@ "kind": "keyword" } ], - "documentation": [ - { - "text": "number to add", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "arguments", - "kind": "local var", + "name": "i1_s_prop", + "kind": "var", "kindModifiers": "", "sortText": "11", "displayParts": [ { - "text": "(", - "kind": "punctuation" - }, - { - "text": "local var", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "arguments", - "kind": "propertyName" + "text": "i1_s_prop", + "kind": "localName" }, { "text": ":", @@ -29050,20 +20535,20 @@ "kind": "space" }, { - "text": "IArguments", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], "documentation": [] }, { - "name": "globalThis", - "kind": "module", + "name": "i1_s_r", + "kind": "var", "kindModifiers": "", - "sortText": "15", + "sortText": "11", "displayParts": [ { - "text": "module", + "text": "var", "kind": "keyword" }, { @@ -29071,40 +20556,40 @@ "kind": "space" }, { - "text": "globalThis", - "kind": "moduleName" - } - ], - "documentation": [] - }, - { - "name": "eval", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ + "text": "i1_s_r", + "kind": "localName" + }, { - "text": "function", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "eval", - "kind": "functionName" - }, + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "value", + "kind": "parameter", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { "text": "(", "kind": "punctuation" }, { - "text": "x", - "kind": "parameterName" + "text": "parameter", + "kind": "text" }, { - "text": ":", + "text": ")", "kind": "punctuation" }, { @@ -29112,12 +20597,8 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "value", + "kind": "parameterName" }, { "text": ":", @@ -29128,44 +20609,25 @@ "kind": "space" }, { - "text": "any", + "text": "number", "kind": "keyword" } ], "documentation": [ { - "text": "Evaluates JavaScript code and executes it.", + "text": "this is value", "kind": "text" } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "x", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A String value that contains valid JavaScript code.", - "kind": "text" - } - ] - } ] }, { - "name": "parseInt", - "kind": "function", + "name": "Array", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -29173,31 +20635,39 @@ "kind": "space" }, { - "text": "parseInt", - "kind": "functionName" + "text": "Array", + "kind": "localName" }, { - "text": "(", + "text": "<", "kind": "punctuation" }, { - "text": "string", - "kind": "parameterName" + "text": "T", + "kind": "typeParameterName" }, { - "text": ":", + "text": ">", "kind": "punctuation" }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", + "kind": "keyword" + }, { "text": " ", "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "Array", + "kind": "localName" }, { - "text": ",", + "text": ":", "kind": "punctuation" }, { @@ -29205,28 +20675,45 @@ "kind": "space" }, { - "text": "radix", - "kind": "parameterName" + "text": "ArrayConstructor", + "kind": "interfaceName" + } + ], + "documentation": [] + }, + { + "name": "ArrayBuffer", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" }, { - "text": "?", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": ":", - "kind": "punctuation" + "text": "ArrayBuffer", + "kind": "localName" }, { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, { - "text": "number", + "text": "var", "kind": "keyword" }, { - "text": ")", - "kind": "punctuation" + "text": " ", + "kind": "space" + }, + { + "text": "ArrayBuffer", + "kind": "localName" }, { "text": ":", @@ -29237,61 +20724,61 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "ArrayBufferConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "Converts a string to an integer.", + "text": "Represents a raw buffer of binary data, which is used to store data for the\r\ndifferent typed arrays. ArrayBuffers cannot be read from or written to directly,\r\nbut can be passed to a typed array or DataView Object to interpret the raw\r\nbuffer as needed.", "kind": "text" } - ], - "tags": [ + ] + }, + { + "name": "as", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string to convert into a number.", - "kind": "text" - } - ] - }, + "text": "as", + "kind": "keyword" + } + ] + }, + { + "name": "async", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "radix", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value between 2 and 36 that specifies the base of the number in `string`.\r\nIf this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal.\r\nAll other strings are considered decimal.", - "kind": "text" - } - ] + "text": "async", + "kind": "keyword" } ] }, { - "name": "parseFloat", - "kind": "function", + "name": "await", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "await", + "kind": "keyword" + } + ] + }, + { + "name": "Boolean", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -29299,32 +20786,24 @@ "kind": "space" }, { - "text": "parseFloat", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" + "text": "Boolean", + "kind": "localName" }, { - "text": "string", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "Boolean", + "kind": "localName" }, { "text": ":", @@ -29335,44 +20814,92 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "BooleanConstructor", + "kind": "interfaceName" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "break", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "Converts a string to a floating-point number.", - "kind": "text" + "text": "break", + "kind": "keyword" } - ], - "tags": [ + ] + }, + { + "name": "case", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string that contains a floating-point number.", - "kind": "text" - } - ] + "text": "case", + "kind": "keyword" } ] }, { - "name": "isNaN", - "kind": "function", + "name": "catch", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "catch", + "kind": "keyword" + } + ] + }, + { + "name": "class", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + } + ] + }, + { + "name": "const", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + } + ] + }, + { + "name": "continue", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "continue", + "kind": "keyword" + } + ] + }, + { + "name": "DataView", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -29380,32 +20907,24 @@ "kind": "space" }, { - "text": "isNaN", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" + "text": "DataView", + "kind": "localName" }, { - "text": "number", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "DataView", + "kind": "localName" }, { "text": ":", @@ -29416,44 +20935,20 @@ "kind": "space" }, { - "text": "boolean", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Returns a Boolean value that indicates whether a value is the reserved value NaN (not a number).", - "kind": "text" + "text": "DataViewConstructor", + "kind": "interfaceName" } ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "number", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A numeric value.", - "kind": "text" - } - ] - } - ] + "documentation": [] }, { - "name": "isFinite", - "kind": "function", + "name": "Date", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -29461,32 +20956,24 @@ "kind": "space" }, { - "text": "isFinite", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" + "text": "Date", + "kind": "localName" }, { - "text": "number", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "Date", + "kind": "localName" }, { "text": ":", @@ -29497,33 +20984,26 @@ "kind": "space" }, { - "text": "boolean", - "kind": "keyword" + "text": "DateConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "Determines whether a supplied number is finite.", + "text": "Enables basic storage and retrieval of dates and times.", "kind": "text" } - ], - "tags": [ + ] + }, + { + "name": "debugger", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "number", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Any numeric value.", - "kind": "text" - } - ] + "text": "debugger", + "kind": "keyword" } ] }, @@ -29659,33 +21139,81 @@ "kind": "space" }, { - "text": "string", + "text": "string", + "kind": "keyword" + } + ], + "documentation": [ + { + "text": "Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "encodedURIComponent", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI component.", + "kind": "text" + } + ] + } + ] + }, + { + "name": "default", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "default", + "kind": "keyword" + } + ] + }, + { + "name": "delete", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "delete", "kind": "keyword" } - ], - "documentation": [ + ] + }, + { + "name": "do", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).", - "kind": "text" + "text": "do", + "kind": "keyword" } - ], - "tags": [ + ] + }, + { + "name": "else", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "encodedURIComponent", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI component.", - "kind": "text" - } - ] + "text": "else", + "kind": "keyword" } ] }, @@ -29884,13 +21412,25 @@ ] }, { - "name": "escape", - "kind": "function", - "kindModifiers": "deprecated,declare", - "sortText": "23", + "name": "enum", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", "displayParts": [ { - "text": "function", + "text": "enum", + "kind": "keyword" + } + ] + }, + { + "name": "Error", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", "kind": "keyword" }, { @@ -29898,32 +21438,24 @@ "kind": "space" }, { - "text": "escape", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" + "text": "Error", + "kind": "localName" }, { - "text": "string", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "Error", + "kind": "localName" }, { "text": ":", @@ -29934,50 +21466,17 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Computes a new string in which certain characters have been replaced by a hexadecimal escape sequence.", - "kind": "text" + "text": "ErrorConstructor", + "kind": "interfaceName" } ], - "tags": [ - { - "name": "deprecated", - "text": [ - { - "text": "A legacy feature for browser compatibility", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string value", - "kind": "text" - } - ] - } - ] + "documentation": [] }, { - "name": "unescape", + "name": "eval", "kind": "function", - "kindModifiers": "deprecated,declare", - "sortText": "23", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { "text": "function", @@ -29988,7 +21487,7 @@ "kind": "space" }, { - "text": "unescape", + "text": "eval", "kind": "functionName" }, { @@ -29996,7 +21495,7 @@ "kind": "punctuation" }, { - "text": "string", + "text": "x", "kind": "parameterName" }, { @@ -30024,31 +21523,22 @@ "kind": "space" }, { - "text": "string", + "text": "any", "kind": "keyword" } ], "documentation": [ { - "text": "Computes a new string in which hexadecimal escape sequences are replaced with the character that it represents.", + "text": "Evaluates JavaScript code and executes it.", "kind": "text" } ], "tags": [ - { - "name": "deprecated", - "text": [ - { - "text": "A legacy feature for browser compatibility", - "kind": "text" - } - ] - }, { "name": "param", "text": [ { - "text": "string", + "text": "x", "kind": "parameterName" }, { @@ -30056,7 +21546,7 @@ "kind": "space" }, { - "text": "A string value", + "text": "A String value that contains valid JavaScript code.", "kind": "text" } ] @@ -30064,13 +21554,13 @@ ] }, { - "name": "NaN", + "name": "EvalError", "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -30078,30 +21568,13 @@ "kind": "space" }, { - "text": "NaN", + "text": "EvalError", "kind": "localName" }, { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "Infinity", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ { "text": "var", "kind": "keyword" @@ -30111,7 +21584,7 @@ "kind": "space" }, { - "text": "Infinity", + "text": "EvalError", "kind": "localName" }, { @@ -30123,14 +21596,62 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "EvalErrorConstructor", + "kind": "interfaceName" } ], "documentation": [] }, { - "name": "Object", + "name": "export", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "export", + "kind": "keyword" + } + ] + }, + { + "name": "extends", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "extends", + "kind": "keyword" + } + ] + }, + { + "name": "false", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "false", + "kind": "keyword" + } + ] + }, + { + "name": "finally", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "finally", + "kind": "keyword" + } + ] + }, + { + "name": "Float32Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -30144,7 +21665,7 @@ "kind": "space" }, { - "text": "Object", + "text": "Float32Array", "kind": "localName" }, { @@ -30160,7 +21681,7 @@ "kind": "space" }, { - "text": "Object", + "text": "Float32Array", "kind": "localName" }, { @@ -30172,19 +21693,19 @@ "kind": "space" }, { - "text": "ObjectConstructor", + "text": "Float32ArrayConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "Provides functionality common to all JavaScript objects.", + "text": "A typed array of 32-bit float values. The contents are initialized to 0. If the requested number\r\nof bytes could not be allocated an exception is raised.", "kind": "text" } ] }, { - "name": "Function", + "name": "Float64Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -30198,7 +21719,7 @@ "kind": "space" }, { - "text": "Function", + "text": "Float64Array", "kind": "localName" }, { @@ -30214,7 +21735,7 @@ "kind": "space" }, { - "text": "Function", + "text": "Float64Array", "kind": "localName" }, { @@ -30226,19 +21747,43 @@ "kind": "space" }, { - "text": "FunctionConstructor", + "text": "Float64ArrayConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "Creates a new function.", + "text": "A typed array of 64-bit float values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", "kind": "text" } ] }, { - "name": "String", + "name": "for", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "for", + "kind": "keyword" + } + ] + }, + { + "name": "function", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + } + ] + }, + { + "name": "Function", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -30252,7 +21797,7 @@ "kind": "space" }, { - "text": "String", + "text": "Function", "kind": "localName" }, { @@ -30268,7 +21813,7 @@ "kind": "space" }, { - "text": "String", + "text": "Function", "kind": "localName" }, { @@ -30280,25 +21825,25 @@ "kind": "space" }, { - "text": "StringConstructor", + "text": "FunctionConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "Allows manipulation and formatting of text strings and determination and location of substrings within strings.", + "text": "Creates a new function.", "kind": "text" } ] }, { - "name": "Boolean", - "kind": "var", - "kindModifiers": "declare", + "name": "globalThis", + "kind": "module", + "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "module", "kind": "keyword" }, { @@ -30306,13 +21851,66 @@ "kind": "space" }, { - "text": "Boolean", - "kind": "localName" - }, + "text": "globalThis", + "kind": "moduleName" + } + ], + "documentation": [] + }, + { + "name": "if", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "\n", - "kind": "lineBreak" - }, + "text": "if", + "kind": "keyword" + } + ] + }, + { + "name": "implements", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "implements", + "kind": "keyword" + } + ] + }, + { + "name": "import", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "import", + "kind": "keyword" + } + ] + }, + { + "name": "in", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "in", + "kind": "keyword" + } + ] + }, + { + "name": "Infinity", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { "text": "var", "kind": "keyword" @@ -30322,7 +21920,7 @@ "kind": "space" }, { - "text": "Boolean", + "text": "Infinity", "kind": "localName" }, { @@ -30334,14 +21932,26 @@ "kind": "space" }, { - "text": "BooleanConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], "documentation": [] }, { - "name": "Number", + "name": "instanceof", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "instanceof", + "kind": "keyword" + } + ] + }, + { + "name": "Int16Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -30355,7 +21965,7 @@ "kind": "space" }, { - "text": "Number", + "text": "Int16Array", "kind": "localName" }, { @@ -30371,7 +21981,7 @@ "kind": "space" }, { - "text": "Number", + "text": "Int16Array", "kind": "localName" }, { @@ -30383,19 +21993,19 @@ "kind": "space" }, { - "text": "NumberConstructor", + "text": "Int16ArrayConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "An object that represents a number of any kind. All JavaScript numbers are 64-bit floating-point numbers.", + "text": "A typed array of 16-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", "kind": "text" } ] }, { - "name": "Math", + "name": "Int32Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -30409,7 +22019,7 @@ "kind": "space" }, { - "text": "Math", + "text": "Int32Array", "kind": "localName" }, { @@ -30425,7 +22035,7 @@ "kind": "space" }, { - "text": "Math", + "text": "Int32Array", "kind": "localName" }, { @@ -30437,19 +22047,19 @@ "kind": "space" }, { - "text": "Math", - "kind": "localName" + "text": "Int32ArrayConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "An intrinsic object that provides basic mathematics functionality and constants.", + "text": "A typed array of 32-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", "kind": "text" } ] }, { - "name": "Date", + "name": "Int8Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -30463,7 +22073,7 @@ "kind": "space" }, { - "text": "Date", + "text": "Int8Array", "kind": "localName" }, { @@ -30479,7 +22089,7 @@ "kind": "space" }, { - "text": "Date", + "text": "Int8Array", "kind": "localName" }, { @@ -30491,50 +22101,91 @@ "kind": "space" }, { - "text": "DateConstructor", + "text": "Int8ArrayConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "Enables basic storage and retrieval of dates and times.", + "text": "A typed array of 8-bit integer values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", "kind": "text" } ] }, { - "name": "RegExp", - "kind": "var", - "kindModifiers": "declare", + "name": "interface", + "kind": "keyword", + "kindModifiers": "", "sortText": "15", "displayParts": [ { "text": "interface", "kind": "keyword" + } + ] + }, + { + "name": "Intl", + "kind": "module", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "namespace", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "RegExp", - "kind": "localName" + "text": "Intl", + "kind": "moduleName" + } + ], + "documentation": [] + }, + { + "name": "isFinite", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "function", + "kind": "keyword" }, { - "text": "\n", - "kind": "lineBreak" + "text": " ", + "kind": "space" }, { - "text": "var", - "kind": "keyword" + "text": "isFinite", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "number", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "RegExp", - "kind": "localName" + "text": "number", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -30545,20 +22196,44 @@ "kind": "space" }, { - "text": "RegExpConstructor", - "kind": "interfaceName" + "text": "boolean", + "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Determines whether a supplied number is finite.", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "number", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Any numeric value.", + "kind": "text" + } + ] + } + ] }, { - "name": "Error", - "kind": "var", + "name": "isNaN", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -30566,24 +22241,32 @@ "kind": "space" }, { - "text": "Error", - "kind": "localName" + "text": "isNaN", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "number", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Error", - "kind": "localName" + "text": "number", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -30594,14 +22277,38 @@ "kind": "space" }, { - "text": "ErrorConstructor", - "kind": "interfaceName" + "text": "boolean", + "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Returns a Boolean value that indicates whether a value is the reserved value NaN (not a number).", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "number", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A numeric value.", + "kind": "text" + } + ] + } + ] }, { - "name": "EvalError", + "name": "JSON", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -30615,7 +22322,7 @@ "kind": "space" }, { - "text": "EvalError", + "text": "JSON", "kind": "localName" }, { @@ -30631,7 +22338,7 @@ "kind": "space" }, { - "text": "EvalError", + "text": "JSON", "kind": "localName" }, { @@ -30643,14 +22350,31 @@ "kind": "space" }, { - "text": "EvalErrorConstructor", - "kind": "interfaceName" + "text": "JSON", + "kind": "localName" } ], - "documentation": [] + "documentation": [ + { + "text": "An intrinsic object that provides functions to convert JavaScript values to and from the JavaScript Object Notation (JSON) format.", + "kind": "text" + } + ] }, { - "name": "RangeError", + "name": "let", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "let", + "kind": "keyword" + } + ] + }, + { + "name": "Math", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -30664,7 +22388,7 @@ "kind": "space" }, { - "text": "RangeError", + "text": "Math", "kind": "localName" }, { @@ -30680,7 +22404,7 @@ "kind": "space" }, { - "text": "RangeError", + "text": "Math", "kind": "localName" }, { @@ -30692,34 +22416,23 @@ "kind": "space" }, { - "text": "RangeErrorConstructor", - "kind": "interfaceName" + "text": "Math", + "kind": "localName" } ], - "documentation": [] + "documentation": [ + { + "text": "An intrinsic object that provides basic mathematics functionality and constants.", + "kind": "text" + } + ] }, { - "name": "ReferenceError", + "name": "NaN", "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "ReferenceError", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, { "text": "var", "kind": "keyword" @@ -30729,7 +22442,7 @@ "kind": "space" }, { - "text": "ReferenceError", + "text": "NaN", "kind": "localName" }, { @@ -30741,14 +22454,38 @@ "kind": "space" }, { - "text": "ReferenceErrorConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], "documentation": [] }, { - "name": "SyntaxError", + "name": "new", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "new", + "kind": "keyword" + } + ] + }, + { + "name": "null", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "null", + "kind": "keyword" + } + ] + }, + { + "name": "Number", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -30762,7 +22499,7 @@ "kind": "space" }, { - "text": "SyntaxError", + "text": "Number", "kind": "localName" }, { @@ -30778,7 +22515,7 @@ "kind": "space" }, { - "text": "SyntaxError", + "text": "Number", "kind": "localName" }, { @@ -30790,14 +22527,19 @@ "kind": "space" }, { - "text": "SyntaxErrorConstructor", + "text": "NumberConstructor", "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "An object that represents a number of any kind. All JavaScript numbers are 64-bit floating-point numbers.", + "kind": "text" + } + ] }, { - "name": "TypeError", + "name": "Object", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -30811,7 +22553,7 @@ "kind": "space" }, { - "text": "TypeError", + "text": "Object", "kind": "localName" }, { @@ -30827,7 +22569,7 @@ "kind": "space" }, { - "text": "TypeError", + "text": "Object", "kind": "localName" }, { @@ -30839,20 +22581,37 @@ "kind": "space" }, { - "text": "TypeErrorConstructor", + "text": "ObjectConstructor", "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "Provides functionality common to all JavaScript objects.", + "kind": "text" + } + ] }, { - "name": "URIError", - "kind": "var", + "name": "package", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "package", + "kind": "keyword" + } + ] + }, + { + "name": "parseFloat", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -30860,24 +22619,32 @@ "kind": "space" }, { - "text": "URIError", - "kind": "localName" + "text": "parseFloat", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "string", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "URIError", - "kind": "localName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -30888,20 +22655,44 @@ "kind": "space" }, { - "text": "URIErrorConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Converts a string to a floating-point number.", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string that contains a floating-point number.", + "kind": "text" + } + ] + } + ] }, { - "name": "JSON", - "kind": "var", + "name": "parseInt", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -30909,24 +22700,16 @@ "kind": "space" }, { - "text": "JSON", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": "parseInt", + "kind": "functionName" }, { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "JSON", - "kind": "localName" + "text": "string", + "kind": "parameterName" }, { "text": ":", @@ -30937,62 +22720,40 @@ "kind": "space" }, { - "text": "JSON", - "kind": "localName" - } - ], - "documentation": [ - { - "text": "An intrinsic object that provides functions to convert JavaScript values to and from the JavaScript Object Notation (JSON) format.", - "kind": "text" - } - ] - }, - { - "name": "Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", + "text": "string", "kind": "keyword" }, + { + "text": ",", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "Array", - "kind": "localName" + "text": "radix", + "kind": "parameterName" }, { - "text": "<", + "text": "?", "kind": "punctuation" }, { - "text": "T", - "kind": "typeParameterName" - }, - { - "text": ">", + "text": ":", "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": " ", + "kind": "space" }, { - "text": "var", + "text": "number", "kind": "keyword" }, { - "text": " ", - "kind": "space" - }, - { - "text": "Array", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -31003,14 +22764,55 @@ "kind": "space" }, { - "text": "ArrayConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Converts a string to an integer.", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string to convert into a number.", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "radix", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value between 2 and 36 that specifies the base of the number in `string`.\r\nIf this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal.\r\nAll other strings are considered decimal.", + "kind": "text" + } + ] + } + ] }, { - "name": "ArrayBuffer", + "name": "RangeError", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -31024,7 +22826,7 @@ "kind": "space" }, { - "text": "ArrayBuffer", + "text": "RangeError", "kind": "localName" }, { @@ -31040,7 +22842,7 @@ "kind": "space" }, { - "text": "ArrayBuffer", + "text": "RangeError", "kind": "localName" }, { @@ -31052,19 +22854,14 @@ "kind": "space" }, { - "text": "ArrayBufferConstructor", + "text": "RangeErrorConstructor", "kind": "interfaceName" } ], - "documentation": [ - { - "text": "Represents a raw buffer of binary data, which is used to store data for the\r\ndifferent typed arrays. ArrayBuffers cannot be read from or written to directly,\r\nbut can be passed to a typed array or DataView Object to interpret the raw\r\nbuffer as needed.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "DataView", + "name": "ReferenceError", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -31078,7 +22875,7 @@ "kind": "space" }, { - "text": "DataView", + "text": "ReferenceError", "kind": "localName" }, { @@ -31094,7 +22891,7 @@ "kind": "space" }, { - "text": "DataView", + "text": "ReferenceError", "kind": "localName" }, { @@ -31106,14 +22903,14 @@ "kind": "space" }, { - "text": "DataViewConstructor", + "text": "ReferenceErrorConstructor", "kind": "interfaceName" } ], "documentation": [] }, { - "name": "Int8Array", + "name": "RegExp", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -31127,7 +22924,7 @@ "kind": "space" }, { - "text": "Int8Array", + "text": "RegExp", "kind": "localName" }, { @@ -31143,7 +22940,7 @@ "kind": "space" }, { - "text": "Int8Array", + "text": "RegExp", "kind": "localName" }, { @@ -31155,19 +22952,26 @@ "kind": "space" }, { - "text": "Int8ArrayConstructor", + "text": "RegExpConstructor", "kind": "interfaceName" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "return", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "A typed array of 8-bit integer values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", - "kind": "text" + "text": "return", + "kind": "keyword" } ] }, { - "name": "Uint8Array", + "name": "String", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -31181,7 +22985,7 @@ "kind": "space" }, { - "text": "Uint8Array", + "text": "String", "kind": "localName" }, { @@ -31197,7 +23001,7 @@ "kind": "space" }, { - "text": "Uint8Array", + "text": "String", "kind": "localName" }, { @@ -31209,19 +23013,43 @@ "kind": "space" }, { - "text": "Uint8ArrayConstructor", + "text": "StringConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "text": "Allows manipulation and formatting of text strings and determination and location of substrings within strings.", "kind": "text" } ] }, { - "name": "Uint8ClampedArray", + "name": "super", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "super", + "kind": "keyword" + } + ] + }, + { + "name": "switch", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "switch", + "kind": "keyword" + } + ] + }, + { + "name": "SyntaxError", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -31235,7 +23063,7 @@ "kind": "space" }, { - "text": "Uint8ClampedArray", + "text": "SyntaxError", "kind": "localName" }, { @@ -31251,7 +23079,7 @@ "kind": "space" }, { - "text": "Uint8ClampedArray", + "text": "SyntaxError", "kind": "localName" }, { @@ -31263,19 +23091,62 @@ "kind": "space" }, { - "text": "Uint8ClampedArrayConstructor", + "text": "SyntaxErrorConstructor", "kind": "interfaceName" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "this", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0.\r\nIf the requested number of bytes could not be allocated an exception is raised.", - "kind": "text" + "text": "this", + "kind": "keyword" } ] }, { - "name": "Int16Array", + "name": "throw", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "throw", + "kind": "keyword" + } + ] + }, + { + "name": "true", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "true", + "kind": "keyword" + } + ] + }, + { + "name": "try", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "try", + "kind": "keyword" + } + ] + }, + { + "name": "TypeError", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -31289,7 +23160,7 @@ "kind": "space" }, { - "text": "Int16Array", + "text": "TypeError", "kind": "localName" }, { @@ -31305,7 +23176,7 @@ "kind": "space" }, { - "text": "Int16Array", + "text": "TypeError", "kind": "localName" }, { @@ -31317,14 +23188,21 @@ "kind": "space" }, { - "text": "Int16ArrayConstructor", + "text": "TypeErrorConstructor", "kind": "interfaceName" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "typeof", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "A typed array of 16-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" + "text": "typeof", + "kind": "keyword" } ] }, @@ -31383,7 +23261,7 @@ ] }, { - "name": "Int32Array", + "name": "Uint32Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -31397,7 +23275,7 @@ "kind": "space" }, { - "text": "Int32Array", + "text": "Uint32Array", "kind": "localName" }, { @@ -31413,7 +23291,7 @@ "kind": "space" }, { - "text": "Int32Array", + "text": "Uint32Array", "kind": "localName" }, { @@ -31425,19 +23303,19 @@ "kind": "space" }, { - "text": "Int32ArrayConstructor", + "text": "Uint32ArrayConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "A typed array of 32-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "text": "A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", "kind": "text" } ] }, { - "name": "Uint32Array", + "name": "Uint8Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -31451,7 +23329,7 @@ "kind": "space" }, { - "text": "Uint32Array", + "text": "Uint8Array", "kind": "localName" }, { @@ -31467,7 +23345,7 @@ "kind": "space" }, { - "text": "Uint32Array", + "text": "Uint8Array", "kind": "localName" }, { @@ -31479,19 +23357,19 @@ "kind": "space" }, { - "text": "Uint32ArrayConstructor", + "text": "Uint8ArrayConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "text": "A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", "kind": "text" } ] }, { - "name": "Float32Array", + "name": "Uint8ClampedArray", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -31505,7 +23383,7 @@ "kind": "space" }, { - "text": "Float32Array", + "text": "Uint8ClampedArray", "kind": "localName" }, { @@ -31521,7 +23399,7 @@ "kind": "space" }, { - "text": "Float32Array", + "text": "Uint8ClampedArray", "kind": "localName" }, { @@ -31533,19 +23411,40 @@ "kind": "space" }, { - "text": "Float32ArrayConstructor", + "text": "Uint8ClampedArrayConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "A typed array of 32-bit float values. The contents are initialized to 0. If the requested number\r\nof bytes could not be allocated an exception is raised.", + "text": "A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0.\r\nIf the requested number of bytes could not be allocated an exception is raised.", "kind": "text" } ] }, { - "name": "Float64Array", + "name": "undefined", + "kind": "var", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "undefined", + "kind": "propertyName" + } + ], + "documentation": [] + }, + { + "name": "URIError", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -31559,7 +23458,7 @@ "kind": "space" }, { - "text": "Float64Array", + "text": "URIError", "kind": "localName" }, { @@ -31575,7 +23474,7 @@ "kind": "space" }, { - "text": "Float64Array", + "text": "URIError", "kind": "localName" }, { @@ -31587,72 +23486,80 @@ "kind": "space" }, { - "text": "Float64ArrayConstructor", + "text": "URIErrorConstructor", "kind": "interfaceName" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "var", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "A typed array of 64-bit float values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", - "kind": "text" + "text": "var", + "kind": "keyword" } ] }, { - "name": "Intl", - "kind": "module", - "kindModifiers": "declare", + "name": "void", + "kind": "keyword", + "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "namespace", + "text": "void", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Intl", - "kind": "moduleName" } - ], - "documentation": [] + ] }, { - "name": "c1", - "kind": "class", + "name": "while", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "class", + "text": "while", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "c1", - "kind": "className" } - ], - "documentation": [ + ] + }, + { + "name": "with", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "This is comment for c1", - "kind": "text" + "text": "with", + "kind": "keyword" } ] }, { - "name": "i1", - "kind": "var", + "name": "yield", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "yield", + "kind": "keyword" + } + ] + }, + { + "name": "escape", + "kind": "function", + "kindModifiers": "deprecated,declare", + "sortText": "z15", + "displayParts": [ + { + "text": "function", "kind": "keyword" }, { @@ -31660,41 +23567,32 @@ "kind": "space" }, { - "text": "i1", - "kind": "localName" + "text": "escape", + "kind": "functionName" }, { - "text": ":", + "text": "(", "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "string", + "kind": "parameterName" }, { - "text": "c1", - "kind": "className" - } - ], - "documentation": [] - }, - { - "name": "i1_p", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "i1_p", - "kind": "localName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -31705,20 +23603,53 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Computes a new string in which certain characters have been replaced by a hexadecimal escape sequence.", + "kind": "text" + } + ], + "tags": [ + { + "name": "deprecated", + "text": [ + { + "text": "A legacy feature for browser compatibility", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string value", + "kind": "text" + } + ] + } + ] }, { - "name": "i1_f", - "kind": "var", - "kindModifiers": "", - "sortText": "11", + "name": "unescape", + "kind": "function", + "kindModifiers": "deprecated,declare", + "sortText": "z15", "displayParts": [ { - "text": "var", + "text": "function", "kind": "keyword" }, { @@ -31726,8 +23657,16 @@ "kind": "space" }, { - "text": "i1_f", - "kind": "localName" + "text": "unescape", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "string", + "kind": "parameterName" }, { "text": ":", @@ -31738,12 +23677,12 @@ "kind": "space" }, { - "text": "(", - "kind": "punctuation" + "text": "string", + "kind": "keyword" }, { - "text": "b", - "kind": "parameterName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -31754,8 +23693,76 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" + } + ], + "documentation": [ + { + "text": "Computes a new string in which hexadecimal escape sequences are replaced with the character that it represents.", + "kind": "text" + } + ], + "tags": [ + { + "name": "deprecated", + "text": [ + { + "text": "A legacy feature for browser compatibility", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string value", + "kind": "text" + } + ] + } + ] + } + ] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/completionsCommentsClassMembers.ts", + "position": 1012, + "name": "29" + }, + "completionList": { + "isGlobalCompletion": true, + "isMemberCompletion": false, + "isNewIdentifierLocation": false, + "optionalReplacementSpan": { + "start": 1012, + "length": 2 + }, + "entries": [ + { + "name": "arguments", + "kind": "local var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "local var", + "kind": "text" }, { "text": ")", @@ -31766,7 +23773,11 @@ "kind": "space" }, { - "text": "=>", + "text": "arguments", + "kind": "propertyName" + }, + { + "text": ":", "kind": "punctuation" }, { @@ -31774,29 +23785,37 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "IArguments", + "kind": "interfaceName" } ], "documentation": [] }, { - "name": "i1_r", - "kind": "var", + "name": "b", + "kind": "parameter", "kindModifiers": "", "sortText": "11", "displayParts": [ { - "text": "var", - "kind": "keyword" + "text": "(", + "kind": "punctuation" + }, + { + "text": "parameter", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "i1_r", - "kind": "localName" + "text": "b", + "kind": "parameterName" }, { "text": ":", @@ -31811,16 +23830,21 @@ "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "number to add", + "kind": "text" + } + ] }, { - "name": "i1_prop", - "kind": "var", + "name": "c1", + "kind": "class", "kindModifiers": "", "sortText": "11", "displayParts": [ { - "text": "var", + "text": "class", "kind": "keyword" }, { @@ -31828,26 +23852,40 @@ "kind": "space" }, { - "text": "i1_prop", - "kind": "localName" - }, + "text": "c1", + "kind": "className" + } + ], + "documentation": [ { - "text": ":", - "kind": "punctuation" + "text": "This is comment for c1", + "kind": "text" + } + ] + }, + { + "name": "cProperties", + "kind": "class", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "class", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "cProperties", + "kind": "className" } ], "documentation": [] }, { - "name": "i1_nc_p", + "name": "cProperties_i", "kind": "var", "kindModifiers": "", "sortText": "11", @@ -31861,7 +23899,7 @@ "kind": "space" }, { - "text": "i1_nc_p", + "text": "cProperties_i", "kind": "localName" }, { @@ -31873,14 +23911,35 @@ "kind": "space" }, { - "text": "number", + "text": "cProperties", + "kind": "className" + } + ], + "documentation": [] + }, + { + "name": "cWithConstructorProperty", + "kind": "class", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "class", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "cWithConstructorProperty", + "kind": "className" } ], "documentation": [] }, { - "name": "i1_ncf", + "name": "i1", "kind": "var", "kindModifiers": "", "sortText": "11", @@ -31894,7 +23953,7 @@ "kind": "space" }, { - "text": "i1_ncf", + "text": "i1", "kind": "localName" }, { @@ -31906,27 +23965,32 @@ "kind": "space" }, { - "text": "(", - "kind": "punctuation" - }, - { - "text": "b", - "kind": "parameterName" - }, + "text": "c1", + "kind": "className" + } + ], + "documentation": [] + }, + { + "name": "i1_c", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "i1_c", + "kind": "localName" }, { - "text": ")", + "text": ":", "kind": "punctuation" }, { @@ -31934,22 +23998,22 @@ "kind": "space" }, { - "text": "=>", - "kind": "punctuation" + "text": "typeof", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "c1", + "kind": "className" } ], "documentation": [] }, { - "name": "i1_ncr", + "name": "i1_f", "kind": "var", "kindModifiers": "", "sortText": "11", @@ -31963,7 +24027,7 @@ "kind": "space" }, { - "text": "i1_ncr", + "text": "i1_f", "kind": "localName" }, { @@ -31975,32 +24039,35 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_ncprop", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ + "text": "(", + "kind": "punctuation" + }, { - "text": "var", - "kind": "keyword" + "text": "b", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "i1_ncprop", - "kind": "localName" + "text": "number", + "kind": "keyword" }, { - "text": ":", + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", "kind": "punctuation" }, { @@ -32015,7 +24082,7 @@ "documentation": [] }, { - "name": "i1_s_p", + "name": "i1_nc_p", "kind": "var", "kindModifiers": "", "sortText": "11", @@ -32029,7 +24096,7 @@ "kind": "space" }, { - "text": "i1_s_p", + "text": "i1_nc_p", "kind": "localName" }, { @@ -32048,7 +24115,7 @@ "documentation": [] }, { - "name": "i1_s_f", + "name": "i1_ncf", "kind": "var", "kindModifiers": "", "sortText": "11", @@ -32062,7 +24129,7 @@ "kind": "space" }, { - "text": "i1_s_f", + "text": "i1_ncf", "kind": "localName" }, { @@ -32117,7 +24184,7 @@ "documentation": [] }, { - "name": "i1_s_r", + "name": "i1_ncprop", "kind": "var", "kindModifiers": "", "sortText": "11", @@ -32131,7 +24198,7 @@ "kind": "space" }, { - "text": "i1_s_r", + "text": "i1_ncprop", "kind": "localName" }, { @@ -32150,7 +24217,7 @@ "documentation": [] }, { - "name": "i1_s_prop", + "name": "i1_ncr", "kind": "var", "kindModifiers": "", "sortText": "11", @@ -32164,7 +24231,7 @@ "kind": "space" }, { - "text": "i1_s_prop", + "text": "i1_ncr", "kind": "localName" }, { @@ -32183,7 +24250,7 @@ "documentation": [] }, { - "name": "i1_s_nc_p", + "name": "i1_p", "kind": "var", "kindModifiers": "", "sortText": "11", @@ -32197,7 +24264,7 @@ "kind": "space" }, { - "text": "i1_s_nc_p", + "text": "i1_p", "kind": "localName" }, { @@ -32216,7 +24283,7 @@ "documentation": [] }, { - "name": "i1_s_ncf", + "name": "i1_prop", "kind": "var", "kindModifiers": "", "sortText": "11", @@ -32230,7 +24297,73 @@ "kind": "space" }, { - "text": "i1_s_ncf", + "text": "i1_prop", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "i1_r", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "i1_r", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "i1_s_f", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "i1_s_f", "kind": "localName" }, { @@ -32285,7 +24418,7 @@ "documentation": [] }, { - "name": "i1_s_ncr", + "name": "i1_s_nc_p", "kind": "var", "kindModifiers": "", "sortText": "11", @@ -32299,7 +24432,7 @@ "kind": "space" }, { - "text": "i1_s_ncr", + "text": "i1_s_nc_p", "kind": "localName" }, { @@ -32318,7 +24451,7 @@ "documentation": [] }, { - "name": "i1_s_ncprop", + "name": "i1_s_ncf", "kind": "var", "kindModifiers": "", "sortText": "11", @@ -32332,7 +24465,7 @@ "kind": "space" }, { - "text": "i1_s_ncprop", + "text": "i1_s_ncf", "kind": "localName" }, { @@ -32344,29 +24477,12 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_c", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "i1_c", - "kind": "localName" + "text": "b", + "kind": "parameterName" }, { "text": ":", @@ -32377,43 +24493,34 @@ "kind": "space" }, { - "text": "typeof", + "text": "number", "kind": "keyword" }, + { + "text": ")", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "c1", - "kind": "className" - } - ], - "documentation": [] - }, - { - "name": "cProperties", - "kind": "class", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "class", - "kind": "keyword" + "text": "=>", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "cProperties", - "kind": "className" + "text": "number", + "kind": "keyword" } ], "documentation": [] }, { - "name": "cProperties_i", + "name": "i1_s_ncprop", "kind": "var", "kindModifiers": "", "sortText": "11", @@ -32427,7 +24534,7 @@ "kind": "space" }, { - "text": "cProperties_i", + "text": "i1_s_ncprop", "kind": "localName" }, { @@ -32439,20 +24546,20 @@ "kind": "space" }, { - "text": "cProperties", - "kind": "className" + "text": "number", + "kind": "keyword" } ], "documentation": [] }, { - "name": "cWithConstructorProperty", - "kind": "class", + "name": "i1_s_ncr", + "kind": "var", "kindModifiers": "", "sortText": "11", "displayParts": [ { - "text": "class", + "text": "var", "kind": "keyword" }, { @@ -32460,604 +24567,428 @@ "kind": "space" }, { - "text": "cWithConstructorProperty", - "kind": "className" - } - ], - "documentation": [] - }, - { - "name": "undefined", - "kind": "var", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "i1_s_ncr", + "kind": "localName" + }, { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "undefined", - "kind": "propertyName" + "text": "number", + "kind": "keyword" } ], "documentation": [] }, { - "name": "break", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "break", - "kind": "keyword" - } - ] - }, - { - "name": "case", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "case", - "kind": "keyword" - } - ] - }, - { - "name": "catch", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "catch", - "kind": "keyword" - } - ] - }, - { - "name": "class", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "class", - "kind": "keyword" - } - ] - }, - { - "name": "const", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "const", - "kind": "keyword" - } - ] - }, - { - "name": "continue", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "continue", - "kind": "keyword" - } - ] - }, - { - "name": "debugger", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "debugger", - "kind": "keyword" - } - ] - }, - { - "name": "default", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "default", - "kind": "keyword" - } - ] - }, - { - "name": "delete", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "delete", - "kind": "keyword" - } - ] - }, - { - "name": "do", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "do", - "kind": "keyword" - } - ] - }, - { - "name": "else", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "else", - "kind": "keyword" - } - ] - }, - { - "name": "enum", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "enum", - "kind": "keyword" - } - ] - }, - { - "name": "export", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "export", - "kind": "keyword" - } - ] - }, - { - "name": "extends", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "extends", - "kind": "keyword" - } - ] - }, - { - "name": "false", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "false", - "kind": "keyword" - } - ] - }, - { - "name": "finally", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "finally", - "kind": "keyword" - } - ] - }, - { - "name": "for", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "for", - "kind": "keyword" - } - ] - }, - { - "name": "function", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "function", - "kind": "keyword" - } - ] - }, - { - "name": "if", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "if", - "kind": "keyword" - } - ] - }, - { - "name": "import", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "import", - "kind": "keyword" - } - ] - }, - { - "name": "in", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "in", - "kind": "keyword" - } - ] - }, - { - "name": "instanceof", - "kind": "keyword", + "name": "i1_s_p", + "kind": "var", "kindModifiers": "", - "sortText": "15", + "sortText": "11", "displayParts": [ { - "text": "instanceof", + "text": "var", "kind": "keyword" - } - ] - }, - { - "name": "new", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "new", - "kind": "keyword" - } - ] - }, - { - "name": "null", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "null", - "kind": "keyword" - } - ] - }, - { - "name": "return", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "i1_s_p", + "kind": "localName" + }, { - "text": "return", - "kind": "keyword" - } - ] - }, - { - "name": "super", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": ":", + "kind": "punctuation" + }, { - "text": "super", - "kind": "keyword" - } - ] - }, - { - "name": "switch", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "switch", + "text": "number", "kind": "keyword" } - ] + ], + "documentation": [] }, { - "name": "this", - "kind": "keyword", + "name": "i1_s_prop", + "kind": "var", "kindModifiers": "", - "sortText": "15", + "sortText": "11", "displayParts": [ { - "text": "this", + "text": "var", "kind": "keyword" - } - ] - }, - { - "name": "throw", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "throw", + "text": " ", + "kind": "space" + }, + { + "text": "i1_s_prop", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" } - ] + ], + "documentation": [] }, { - "name": "true", - "kind": "keyword", + "name": "i1_s_r", + "kind": "var", "kindModifiers": "", - "sortText": "15", + "sortText": "11", "displayParts": [ { - "text": "true", + "text": "var", "kind": "keyword" - } - ] - }, - { - "name": "try", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "try", + "text": " ", + "kind": "space" + }, + { + "text": "i1_s_r", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" } - ] + ], + "documentation": [] }, { - "name": "typeof", - "kind": "keyword", - "kindModifiers": "", + "name": "Array", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "typeof", + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Array", + "kind": "localName" + }, + { + "text": "<", + "kind": "punctuation" + }, + { + "text": "T", + "kind": "typeParameterName" + }, + { + "text": ">", + "kind": "punctuation" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Array", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "ArrayConstructor", + "kind": "interfaceName" } - ] + ], + "documentation": [] }, { - "name": "var", - "kind": "keyword", - "kindModifiers": "", + "name": "ArrayBuffer", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "ArrayBuffer", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, { "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "ArrayBuffer", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "ArrayBufferConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ + { + "text": "Represents a raw buffer of binary data, which is used to store data for the\r\ndifferent typed arrays. ArrayBuffers cannot be read from or written to directly,\r\nbut can be passed to a typed array or DataView Object to interpret the raw\r\nbuffer as needed.", + "kind": "text" } ] }, { - "name": "void", + "name": "as", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "void", + "text": "as", "kind": "keyword" } ] }, { - "name": "while", + "name": "async", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "while", + "text": "async", "kind": "keyword" } ] }, { - "name": "with", + "name": "await", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "with", + "text": "await", "kind": "keyword" } ] }, { - "name": "implements", - "kind": "keyword", - "kindModifiers": "", + "name": "Boolean", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "implements", + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Boolean", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Boolean", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "BooleanConstructor", + "kind": "interfaceName" } - ] + ], + "documentation": [] }, { - "name": "interface", + "name": "break", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "break", "kind": "keyword" } ] }, { - "name": "let", + "name": "case", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "let", + "text": "case", "kind": "keyword" } ] }, { - "name": "package", + "name": "catch", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "package", + "text": "catch", "kind": "keyword" } ] }, { - "name": "yield", + "name": "class", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "yield", + "text": "class", "kind": "keyword" } ] }, { - "name": "as", + "name": "const", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "as", + "text": "const", "kind": "keyword" } ] }, { - "name": "async", + "name": "continue", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "async", + "text": "continue", "kind": "keyword" } ] }, { - "name": "await", - "kind": "keyword", - "kindModifiers": "", + "name": "DataView", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "await", + "text": "interface", "kind": "keyword" - } - ] - } - ] - } - }, - { - "marker": { - "fileName": "/tests/cases/fourslash/completionsCommentsClassMembers.ts", - "position": 1099, - "name": "33" - }, - "completionList": { - "isGlobalCompletion": true, - "isMemberCompletion": false, - "isNewIdentifierLocation": false, - "optionalReplacementSpan": { - "start": 1099, - "length": 2 - }, - "entries": [ - { - "name": "arguments", - "kind": "local var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ + }, { - "text": "(", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": "local var", - "kind": "text" + "text": "DataView", + "kind": "localName" }, { - "text": ")", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "arguments", - "kind": "propertyName" + "text": "DataView", + "kind": "localName" }, { "text": ":", @@ -33068,20 +24999,20 @@ "kind": "space" }, { - "text": "IArguments", + "text": "DataViewConstructor", "kind": "interfaceName" } ], "documentation": [] }, { - "name": "globalThis", - "kind": "module", - "kindModifiers": "", + "name": "Date", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "module", + "text": "interface", "kind": "keyword" }, { @@ -33089,14 +25020,59 @@ "kind": "space" }, { - "text": "globalThis", - "kind": "moduleName" + "text": "Date", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Date", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "DateConstructor", + "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "Enables basic storage and retrieval of dates and times.", + "kind": "text" + } + ] }, { - "name": "eval", + "name": "debugger", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "debugger", + "kind": "keyword" + } + ] + }, + { + "name": "decodeURI", "kind": "function", "kindModifiers": "declare", "sortText": "15", @@ -33110,7 +25086,7 @@ "kind": "space" }, { - "text": "eval", + "text": "decodeURI", "kind": "functionName" }, { @@ -33118,7 +25094,7 @@ "kind": "punctuation" }, { - "text": "x", + "text": "encodedURI", "kind": "parameterName" }, { @@ -33146,13 +25122,13 @@ "kind": "space" }, { - "text": "any", + "text": "string", "kind": "keyword" } ], "documentation": [ { - "text": "Evaluates JavaScript code and executes it.", + "text": "Gets the unencoded version of an encoded Uniform Resource Identifier (URI).", "kind": "text" } ], @@ -33161,7 +25137,7 @@ "name": "param", "text": [ { - "text": "x", + "text": "encodedURI", "kind": "parameterName" }, { @@ -33169,7 +25145,7 @@ "kind": "space" }, { - "text": "A String value that contains valid JavaScript code.", + "text": "A value representing an encoded URI.", "kind": "text" } ] @@ -33177,7 +25153,7 @@ ] }, { - "name": "parseInt", + "name": "decodeURIComponent", "kind": "function", "kindModifiers": "declare", "sortText": "15", @@ -33191,7 +25167,7 @@ "kind": "space" }, { - "text": "parseInt", + "text": "decodeURIComponent", "kind": "functionName" }, { @@ -33199,7 +25175,7 @@ "kind": "punctuation" }, { - "text": "string", + "text": "encodedURIComponent", "kind": "parameterName" }, { @@ -33214,34 +25190,6 @@ "text": "string", "kind": "keyword" }, - { - "text": ",", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "radix", - "kind": "parameterName" - }, - { - "text": "?", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, { "text": ")", "kind": "punctuation" @@ -33255,13 +25203,13 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" } ], "documentation": [ { - "text": "Converts a string to an integer.", + "text": "Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).", "kind": "text" } ], @@ -33270,7 +25218,7 @@ "name": "param", "text": [ { - "text": "string", + "text": "encodedURIComponent", "kind": "parameterName" }, { @@ -33278,32 +25226,63 @@ "kind": "space" }, { - "text": "A string to convert into a number.", + "text": "A value representing an encoded URI component.", "kind": "text" } ] - }, + } + ] + }, + { + "name": "default", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "radix", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value between 2 and 36 that specifies the base of the number in `string`.\r\nIf this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal.\r\nAll other strings are considered decimal.", - "kind": "text" - } - ] + "text": "default", + "kind": "keyword" } ] }, { - "name": "parseFloat", + "name": "delete", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "delete", + "kind": "keyword" + } + ] + }, + { + "name": "do", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "do", + "kind": "keyword" + } + ] + }, + { + "name": "else", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "else", + "kind": "keyword" + } + ] + }, + { + "name": "encodeURI", "kind": "function", "kindModifiers": "declare", "sortText": "15", @@ -33317,7 +25296,7 @@ "kind": "space" }, { - "text": "parseFloat", + "text": "encodeURI", "kind": "functionName" }, { @@ -33325,7 +25304,7 @@ "kind": "punctuation" }, { - "text": "string", + "text": "uri", "kind": "parameterName" }, { @@ -33353,13 +25332,13 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" } ], "documentation": [ { - "text": "Converts a string to a floating-point number.", + "text": "Encodes a text string as a valid Uniform Resource Identifier (URI)", "kind": "text" } ], @@ -33368,7 +25347,7 @@ "name": "param", "text": [ { - "text": "string", + "text": "uri", "kind": "parameterName" }, { @@ -33376,7 +25355,7 @@ "kind": "space" }, { - "text": "A string that contains a floating-point number.", + "text": "A value representing an encoded URI.", "kind": "text" } ] @@ -33384,7 +25363,7 @@ ] }, { - "name": "isNaN", + "name": "encodeURIComponent", "kind": "function", "kindModifiers": "declare", "sortText": "15", @@ -33398,7 +25377,7 @@ "kind": "space" }, { - "text": "isNaN", + "text": "encodeURIComponent", "kind": "functionName" }, { @@ -33406,7 +25385,7 @@ "kind": "punctuation" }, { - "text": "number", + "text": "uriComponent", "kind": "parameterName" }, { @@ -33417,10 +25396,42 @@ "text": " ", "kind": "space" }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "|", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, { "text": "number", "kind": "keyword" }, + { + "text": " ", + "kind": "space" + }, + { + "text": "|", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "boolean", + "kind": "keyword" + }, { "text": ")", "kind": "punctuation" @@ -33434,13 +25445,13 @@ "kind": "space" }, { - "text": "boolean", + "text": "string", "kind": "keyword" } ], "documentation": [ { - "text": "Returns a Boolean value that indicates whether a value is the reserved value NaN (not a number).", + "text": "Encodes a text string as a valid component of a Uniform Resource Identifier (URI).", "kind": "text" } ], @@ -33449,7 +25460,7 @@ "name": "param", "text": [ { - "text": "number", + "text": "uriComponent", "kind": "parameterName" }, { @@ -33457,7 +25468,7 @@ "kind": "space" }, { - "text": "A numeric value.", + "text": "A value representing an encoded URI component.", "kind": "text" } ] @@ -33465,7 +25476,68 @@ ] }, { - "name": "isFinite", + "name": "enum", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "enum", + "kind": "keyword" + } + ] + }, + { + "name": "Error", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Error", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Error", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "ErrorConstructor", + "kind": "interfaceName" + } + ], + "documentation": [] + }, + { + "name": "eval", "kind": "function", "kindModifiers": "declare", "sortText": "15", @@ -33479,7 +25551,7 @@ "kind": "space" }, { - "text": "isFinite", + "text": "eval", "kind": "functionName" }, { @@ -33487,7 +25559,7 @@ "kind": "punctuation" }, { - "text": "number", + "text": "x", "kind": "parameterName" }, { @@ -33499,7 +25571,7 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" }, { @@ -33515,13 +25587,13 @@ "kind": "space" }, { - "text": "boolean", + "text": "any", "kind": "keyword" } ], "documentation": [ { - "text": "Determines whether a supplied number is finite.", + "text": "Evaluates JavaScript code and executes it.", "kind": "text" } ], @@ -33530,7 +25602,7 @@ "name": "param", "text": [ { - "text": "number", + "text": "x", "kind": "parameterName" }, { @@ -33538,7 +25610,7 @@ "kind": "space" }, { - "text": "Any numeric value.", + "text": "A String value that contains valid JavaScript code.", "kind": "text" } ] @@ -33546,13 +25618,13 @@ ] }, { - "name": "decodeURI", - "kind": "function", + "name": "EvalError", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -33560,16 +25632,24 @@ "kind": "space" }, { - "text": "decodeURI", - "kind": "functionName" + "text": "EvalError", + "kind": "localName" }, { - "text": "(", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": "encodedURI", - "kind": "parameterName" + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "EvalError", + "kind": "localName" }, { "text": ":", @@ -33580,12 +25660,93 @@ "kind": "space" }, { - "text": "string", + "text": "EvalErrorConstructor", + "kind": "interfaceName" + } + ], + "documentation": [] + }, + { + "name": "export", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "export", + "kind": "keyword" + } + ] + }, + { + "name": "extends", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "extends", + "kind": "keyword" + } + ] + }, + { + "name": "false", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "false", + "kind": "keyword" + } + ] + }, + { + "name": "finally", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "finally", + "kind": "keyword" + } + ] + }, + { + "name": "Float32Array", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", "kind": "keyword" }, { - "text": ")", - "kind": "punctuation" + "text": " ", + "kind": "space" + }, + { + "text": "Float32Array", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Float32Array", + "kind": "localName" }, { "text": ":", @@ -33596,44 +25757,25 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "Float32ArrayConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "Gets the unencoded version of an encoded Uniform Resource Identifier (URI).", + "text": "A typed array of 32-bit float values. The contents are initialized to 0. If the requested number\r\nof bytes could not be allocated an exception is raised.", "kind": "text" } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "encodedURI", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI.", - "kind": "text" - } - ] - } ] }, { - "name": "decodeURIComponent", - "kind": "function", + "name": "Float64Array", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -33641,16 +25783,24 @@ "kind": "space" }, { - "text": "decodeURIComponent", - "kind": "functionName" + "text": "Float64Array", + "kind": "localName" }, { - "text": "(", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": "encodedURIComponent", - "kind": "parameterName" + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Float64Array", + "kind": "localName" }, { "text": ":", @@ -33661,12 +25811,74 @@ "kind": "space" }, { - "text": "string", + "text": "Float64ArrayConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ + { + "text": "A typed array of 64-bit float values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] + }, + { + "name": "for", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "for", + "kind": "keyword" + } + ] + }, + { + "name": "function", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + } + ] + }, + { + "name": "Function", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", "kind": "keyword" }, { - "text": ")", - "kind": "punctuation" + "text": " ", + "kind": "space" + }, + { + "text": "Function", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Function", + "kind": "localName" }, { "text": ":", @@ -33677,44 +25889,94 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "FunctionConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).", + "text": "Creates a new function.", "kind": "text" } + ] + }, + { + "name": "globalThis", + "kind": "module", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "module", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "globalThis", + "kind": "moduleName" + } ], - "tags": [ + "documentation": [] + }, + { + "name": "if", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "encodedURIComponent", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI component.", - "kind": "text" - } - ] + "text": "if", + "kind": "keyword" } ] }, { - "name": "encodeURI", - "kind": "function", + "name": "implements", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "implements", + "kind": "keyword" + } + ] + }, + { + "name": "import", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "import", + "kind": "keyword" + } + ] + }, + { + "name": "in", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "in", + "kind": "keyword" + } + ] + }, + { + "name": "Infinity", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "var", "kind": "keyword" }, { @@ -33722,32 +25984,69 @@ "kind": "space" }, { - "text": "encodeURI", - "kind": "functionName" + "text": "Infinity", + "kind": "localName" }, { - "text": "(", + "text": ":", "kind": "punctuation" }, { - "text": "uri", - "kind": "parameterName" + "text": " ", + "kind": "space" }, { - "text": ":", - "kind": "punctuation" + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "instanceof", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "instanceof", + "kind": "keyword" + } + ] + }, + { + "name": "Int16Array", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "string", + "text": "Int16Array", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" }, { - "text": ")", - "kind": "punctuation" + "text": " ", + "kind": "space" + }, + { + "text": "Int16Array", + "kind": "localName" }, { "text": ":", @@ -33758,44 +26057,25 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "Int16ArrayConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "Encodes a text string as a valid Uniform Resource Identifier (URI)", + "text": "A typed array of 16-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", "kind": "text" } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "uri", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI.", - "kind": "text" - } - ] - } ] }, { - "name": "encodeURIComponent", - "kind": "function", + "name": "Int32Array", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -33803,35 +26083,27 @@ "kind": "space" }, { - "text": "encodeURIComponent", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" + "text": "Int32Array", + "kind": "localName" }, { - "text": "uriComponent", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "string", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" + "text": "Int32Array", + "kind": "localName" }, { - "text": "|", + "text": ":", "kind": "punctuation" }, { @@ -33839,7 +26111,25 @@ "kind": "space" }, { - "text": "number", + "text": "Int32ArrayConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ + { + "text": "A typed array of 32-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] + }, + { + "name": "Int8Array", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", "kind": "keyword" }, { @@ -33847,20 +26137,24 @@ "kind": "space" }, { - "text": "|", - "kind": "punctuation" + "text": "Int8Array", + "kind": "localName" }, { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, { - "text": "boolean", + "text": "var", "kind": "keyword" }, { - "text": ")", - "kind": "punctuation" + "text": " ", + "kind": "space" + }, + { + "text": "Int8Array", + "kind": "localName" }, { "text": ":", @@ -33871,41 +26165,55 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "Int8ArrayConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "Encodes a text string as a valid component of a Uniform Resource Identifier (URI).", + "text": "A typed array of 8-bit integer values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", "kind": "text" } - ], - "tags": [ + ] + }, + { + "name": "interface", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "uriComponent", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI component.", - "kind": "text" - } - ] + "text": "interface", + "kind": "keyword" } ] }, { - "name": "escape", + "name": "Intl", + "kind": "module", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Intl", + "kind": "moduleName" + } + ], + "documentation": [] + }, + { + "name": "isFinite", "kind": "function", - "kindModifiers": "deprecated,declare", - "sortText": "23", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { "text": "function", @@ -33916,7 +26224,7 @@ "kind": "space" }, { - "text": "escape", + "text": "isFinite", "kind": "functionName" }, { @@ -33924,7 +26232,7 @@ "kind": "punctuation" }, { - "text": "string", + "text": "number", "kind": "parameterName" }, { @@ -33936,7 +26244,7 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" }, { @@ -33952,31 +26260,22 @@ "kind": "space" }, { - "text": "string", + "text": "boolean", "kind": "keyword" } ], "documentation": [ { - "text": "Computes a new string in which certain characters have been replaced by a hexadecimal escape sequence.", + "text": "Determines whether a supplied number is finite.", "kind": "text" } ], "tags": [ - { - "name": "deprecated", - "text": [ - { - "text": "A legacy feature for browser compatibility", - "kind": "text" - } - ] - }, { "name": "param", "text": [ { - "text": "string", + "text": "number", "kind": "parameterName" }, { @@ -33984,7 +26283,7 @@ "kind": "space" }, { - "text": "A string value", + "text": "Any numeric value.", "kind": "text" } ] @@ -33992,10 +26291,10 @@ ] }, { - "name": "unescape", + "name": "isNaN", "kind": "function", - "kindModifiers": "deprecated,declare", - "sortText": "23", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { "text": "function", @@ -34006,7 +26305,7 @@ "kind": "space" }, { - "text": "unescape", + "text": "isNaN", "kind": "functionName" }, { @@ -34014,7 +26313,7 @@ "kind": "punctuation" }, { - "text": "string", + "text": "number", "kind": "parameterName" }, { @@ -34026,7 +26325,7 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" }, { @@ -34042,31 +26341,22 @@ "kind": "space" }, { - "text": "string", + "text": "boolean", "kind": "keyword" } ], "documentation": [ { - "text": "Computes a new string in which hexadecimal escape sequences are replaced with the character that it represents.", + "text": "Returns a Boolean value that indicates whether a value is the reserved value NaN (not a number).", "kind": "text" } ], "tags": [ - { - "name": "deprecated", - "text": [ - { - "text": "A legacy feature for browser compatibility", - "kind": "text" - } - ] - }, { "name": "param", "text": [ { - "text": "string", + "text": "number", "kind": "parameterName" }, { @@ -34074,7 +26364,7 @@ "kind": "space" }, { - "text": "A string value", + "text": "A numeric value.", "kind": "text" } ] @@ -34082,13 +26372,13 @@ ] }, { - "name": "NaN", + "name": "JSON", "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -34096,30 +26386,13 @@ "kind": "space" }, { - "text": "NaN", + "text": "JSON", "kind": "localName" }, { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "Infinity", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ { "text": "var", "kind": "keyword" @@ -34129,7 +26402,7 @@ "kind": "space" }, { - "text": "Infinity", + "text": "JSON", "kind": "localName" }, { @@ -34141,14 +26414,31 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "JSON", + "kind": "localName" } ], - "documentation": [] + "documentation": [ + { + "text": "An intrinsic object that provides functions to convert JavaScript values to and from the JavaScript Object Notation (JSON) format.", + "kind": "text" + } + ] }, { - "name": "Object", + "name": "let", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "let", + "kind": "keyword" + } + ] + }, + { + "name": "Math", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -34162,7 +26452,7 @@ "kind": "space" }, { - "text": "Object", + "text": "Math", "kind": "localName" }, { @@ -34178,7 +26468,7 @@ "kind": "space" }, { - "text": "Object", + "text": "Math", "kind": "localName" }, { @@ -34190,39 +26480,23 @@ "kind": "space" }, { - "text": "ObjectConstructor", - "kind": "interfaceName" + "text": "Math", + "kind": "localName" } ], "documentation": [ { - "text": "Provides functionality common to all JavaScript objects.", + "text": "An intrinsic object that provides basic mathematics functionality and constants.", "kind": "text" } ] }, { - "name": "Function", + "name": "NaN", "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Function", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, { "text": "var", "kind": "keyword" @@ -34232,7 +26506,7 @@ "kind": "space" }, { - "text": "Function", + "text": "NaN", "kind": "localName" }, { @@ -34244,19 +26518,38 @@ "kind": "space" }, { - "text": "FunctionConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "new", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "Creates a new function.", - "kind": "text" + "text": "new", + "kind": "keyword" } ] }, { - "name": "String", + "name": "null", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "null", + "kind": "keyword" + } + ] + }, + { + "name": "Number", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -34270,7 +26563,7 @@ "kind": "space" }, { - "text": "String", + "text": "Number", "kind": "localName" }, { @@ -34286,7 +26579,7 @@ "kind": "space" }, { - "text": "String", + "text": "Number", "kind": "localName" }, { @@ -34298,19 +26591,19 @@ "kind": "space" }, { - "text": "StringConstructor", + "text": "NumberConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "Allows manipulation and formatting of text strings and determination and location of substrings within strings.", + "text": "An object that represents a number of any kind. All JavaScript numbers are 64-bit floating-point numbers.", "kind": "text" } ] }, { - "name": "Boolean", + "name": "Object", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -34324,7 +26617,7 @@ "kind": "space" }, { - "text": "Boolean", + "text": "Object", "kind": "localName" }, { @@ -34340,7 +26633,7 @@ "kind": "space" }, { - "text": "Boolean", + "text": "Object", "kind": "localName" }, { @@ -34352,20 +26645,37 @@ "kind": "space" }, { - "text": "BooleanConstructor", + "text": "ObjectConstructor", "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "Provides functionality common to all JavaScript objects.", + "kind": "text" + } + ] }, { - "name": "Number", - "kind": "var", + "name": "package", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "package", + "kind": "keyword" + } + ] + }, + { + "name": "parseFloat", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -34373,24 +26683,32 @@ "kind": "space" }, { - "text": "Number", - "kind": "localName" + "text": "parseFloat", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "string", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Number", - "kind": "localName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -34401,25 +26719,44 @@ "kind": "space" }, { - "text": "NumberConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], "documentation": [ { - "text": "An object that represents a number of any kind. All JavaScript numbers are 64-bit floating-point numbers.", + "text": "Converts a string to a floating-point number.", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string that contains a floating-point number.", + "kind": "text" + } + ] + } ] }, { - "name": "Math", - "kind": "var", + "name": "parseInt", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -34427,24 +26764,16 @@ "kind": "space" }, { - "text": "Math", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": "parseInt", + "kind": "functionName" }, { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "Math", - "kind": "localName" + "text": "string", + "kind": "parameterName" }, { "text": ":", @@ -34455,50 +26784,40 @@ "kind": "space" }, { - "text": "Math", - "kind": "localName" - } - ], - "documentation": [ - { - "text": "An intrinsic object that provides basic mathematics functionality and constants.", - "kind": "text" - } - ] - }, - { - "name": "Date", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", + "text": "string", "kind": "keyword" }, + { + "text": ",", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "Date", - "kind": "localName" + "text": "radix", + "kind": "parameterName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "?", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Date", - "kind": "localName" + "text": "number", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -34509,19 +26828,55 @@ "kind": "space" }, { - "text": "DateConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], "documentation": [ { - "text": "Enables basic storage and retrieval of dates and times.", + "text": "Converts a string to an integer.", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string to convert into a number.", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "radix", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value between 2 and 36 that specifies the base of the number in `string`.\r\nIf this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal.\r\nAll other strings are considered decimal.", + "kind": "text" + } + ] + } ] }, { - "name": "RegExp", + "name": "RangeError", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -34535,7 +26890,7 @@ "kind": "space" }, { - "text": "RegExp", + "text": "RangeError", "kind": "localName" }, { @@ -34551,7 +26906,7 @@ "kind": "space" }, { - "text": "RegExp", + "text": "RangeError", "kind": "localName" }, { @@ -34563,14 +26918,14 @@ "kind": "space" }, { - "text": "RegExpConstructor", + "text": "RangeErrorConstructor", "kind": "interfaceName" } ], "documentation": [] }, { - "name": "Error", + "name": "ReferenceError", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -34584,7 +26939,7 @@ "kind": "space" }, { - "text": "Error", + "text": "ReferenceError", "kind": "localName" }, { @@ -34600,7 +26955,7 @@ "kind": "space" }, { - "text": "Error", + "text": "ReferenceError", "kind": "localName" }, { @@ -34612,14 +26967,14 @@ "kind": "space" }, { - "text": "ErrorConstructor", + "text": "ReferenceErrorConstructor", "kind": "interfaceName" } ], "documentation": [] }, { - "name": "EvalError", + "name": "RegExp", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -34633,7 +26988,7 @@ "kind": "space" }, { - "text": "EvalError", + "text": "RegExp", "kind": "localName" }, { @@ -34649,7 +27004,7 @@ "kind": "space" }, { - "text": "EvalError", + "text": "RegExp", "kind": "localName" }, { @@ -34661,14 +27016,26 @@ "kind": "space" }, { - "text": "EvalErrorConstructor", + "text": "RegExpConstructor", "kind": "interfaceName" } ], "documentation": [] }, { - "name": "RangeError", + "name": "return", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "return", + "kind": "keyword" + } + ] + }, + { + "name": "String", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -34682,7 +27049,7 @@ "kind": "space" }, { - "text": "RangeError", + "text": "String", "kind": "localName" }, { @@ -34698,7 +27065,7 @@ "kind": "space" }, { - "text": "RangeError", + "text": "String", "kind": "localName" }, { @@ -34710,60 +27077,40 @@ "kind": "space" }, { - "text": "RangeErrorConstructor", + "text": "StringConstructor", "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "Allows manipulation and formatting of text strings and determination and location of substrings within strings.", + "kind": "text" + } + ] }, { - "name": "ReferenceError", - "kind": "var", - "kindModifiers": "declare", + "name": "super", + "kind": "keyword", + "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "super", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "ReferenceError", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, + } + ] + }, + { + "name": "switch", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "var", + "text": "switch", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "ReferenceError", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "ReferenceErrorConstructor", - "kind": "interfaceName" } - ], - "documentation": [] + ] }, { "name": "SyntaxError", @@ -34814,6 +27161,54 @@ ], "documentation": [] }, + { + "name": "this", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "this", + "kind": "keyword" + } + ] + }, + { + "name": "throw", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "throw", + "kind": "keyword" + } + ] + }, + { + "name": "true", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "true", + "kind": "keyword" + } + ] + }, + { + "name": "try", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "try", + "kind": "keyword" + } + ] + }, { "name": "TypeError", "kind": "var", @@ -34864,7 +27259,19 @@ "documentation": [] }, { - "name": "URIError", + "name": "typeof", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "typeof", + "kind": "keyword" + } + ] + }, + { + "name": "Uint16Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -34878,7 +27285,7 @@ "kind": "space" }, { - "text": "URIError", + "text": "Uint16Array", "kind": "localName" }, { @@ -34894,7 +27301,7 @@ "kind": "space" }, { - "text": "URIError", + "text": "Uint16Array", "kind": "localName" }, { @@ -34906,14 +27313,19 @@ "kind": "space" }, { - "text": "URIErrorConstructor", + "text": "Uint16ArrayConstructor", "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] }, { - "name": "JSON", + "name": "Uint32Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -34927,7 +27339,7 @@ "kind": "space" }, { - "text": "JSON", + "text": "Uint32Array", "kind": "localName" }, { @@ -34943,7 +27355,7 @@ "kind": "space" }, { - "text": "JSON", + "text": "Uint32Array", "kind": "localName" }, { @@ -34955,19 +27367,19 @@ "kind": "space" }, { - "text": "JSON", - "kind": "localName" + "text": "Uint32ArrayConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "An intrinsic object that provides functions to convert JavaScript values to and from the JavaScript Object Notation (JSON) format.", + "text": "A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", "kind": "text" } ] }, { - "name": "Array", + "name": "Uint8Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -34981,21 +27393,9 @@ "kind": "space" }, { - "text": "Array", + "text": "Uint8Array", "kind": "localName" }, - { - "text": "<", - "kind": "punctuation" - }, - { - "text": "T", - "kind": "typeParameterName" - }, - { - "text": ">", - "kind": "punctuation" - }, { "text": "\n", "kind": "lineBreak" @@ -35009,7 +27409,7 @@ "kind": "space" }, { - "text": "Array", + "text": "Uint8Array", "kind": "localName" }, { @@ -35021,14 +27421,19 @@ "kind": "space" }, { - "text": "ArrayConstructor", + "text": "Uint8ArrayConstructor", "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] }, { - "name": "ArrayBuffer", + "name": "Uint8ClampedArray", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -35042,7 +27447,7 @@ "kind": "space" }, { - "text": "ArrayBuffer", + "text": "Uint8ClampedArray", "kind": "localName" }, { @@ -35058,7 +27463,7 @@ "kind": "space" }, { - "text": "ArrayBuffer", + "text": "Uint8ClampedArray", "kind": "localName" }, { @@ -35070,39 +27475,23 @@ "kind": "space" }, { - "text": "ArrayBufferConstructor", + "text": "Uint8ClampedArrayConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "Represents a raw buffer of binary data, which is used to store data for the\r\ndifferent typed arrays. ArrayBuffers cannot be read from or written to directly,\r\nbut can be passed to a typed array or DataView Object to interpret the raw\r\nbuffer as needed.", + "text": "A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0.\r\nIf the requested number of bytes could not be allocated an exception is raised.", "kind": "text" } ] }, { - "name": "DataView", + "name": "undefined", "kind": "var", - "kindModifiers": "declare", + "kindModifiers": "", "sortText": "15", "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "DataView", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, { "text": "var", "kind": "keyword" @@ -35112,26 +27501,14 @@ "kind": "space" }, { - "text": "DataView", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "DataViewConstructor", - "kind": "interfaceName" + "text": "undefined", + "kind": "propertyName" } ], "documentation": [] }, { - "name": "Int8Array", + "name": "URIError", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -35145,7 +27522,7 @@ "kind": "space" }, { - "text": "Int8Array", + "text": "URIError", "kind": "localName" }, { @@ -35161,7 +27538,7 @@ "kind": "space" }, { - "text": "Int8Array", + "text": "URIError", "kind": "localName" }, { @@ -35173,25 +27550,80 @@ "kind": "space" }, { - "text": "Int8ArrayConstructor", + "text": "URIErrorConstructor", "kind": "interfaceName" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "var", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "A typed array of 8-bit integer values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", - "kind": "text" + "text": "var", + "kind": "keyword" } ] }, { - "name": "Uint8Array", - "kind": "var", - "kindModifiers": "declare", + "name": "void", + "kind": "keyword", + "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "void", + "kind": "keyword" + } + ] + }, + { + "name": "while", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "while", + "kind": "keyword" + } + ] + }, + { + "name": "with", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "with", + "kind": "keyword" + } + ] + }, + { + "name": "yield", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "yield", + "kind": "keyword" + } + ] + }, + { + "name": "escape", + "kind": "function", + "kindModifiers": "deprecated,declare", + "sortText": "z15", + "displayParts": [ + { + "text": "function", "kind": "keyword" }, { @@ -35199,24 +27631,32 @@ "kind": "space" }, { - "text": "Uint8Array", - "kind": "localName" + "text": "escape", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "string", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Uint8Array", - "kind": "localName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -35227,25 +27667,53 @@ "kind": "space" }, { - "text": "Uint8ArrayConstructor", - "kind": "interfaceName" + "text": "string", + "kind": "keyword" } ], "documentation": [ { - "text": "A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "text": "Computes a new string in which certain characters have been replaced by a hexadecimal escape sequence.", "kind": "text" } + ], + "tags": [ + { + "name": "deprecated", + "text": [ + { + "text": "A legacy feature for browser compatibility", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string value", + "kind": "text" + } + ] + } ] }, { - "name": "Uint8ClampedArray", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "unescape", + "kind": "function", + "kindModifiers": "deprecated,declare", + "sortText": "z15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -35253,24 +27721,32 @@ "kind": "space" }, { - "text": "Uint8ClampedArray", - "kind": "localName" + "text": "unescape", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "string", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Uint8ClampedArray", - "kind": "localName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -35281,50 +27757,96 @@ "kind": "space" }, { - "text": "Uint8ClampedArrayConstructor", - "kind": "interfaceName" + "text": "string", + "kind": "keyword" } ], "documentation": [ { - "text": "A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0.\r\nIf the requested number of bytes could not be allocated an exception is raised.", + "text": "Computes a new string in which hexadecimal escape sequences are replaced with the character that it represents.", "kind": "text" } + ], + "tags": [ + { + "name": "deprecated", + "text": [ + { + "text": "A legacy feature for browser compatibility", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string value", + "kind": "text" + } + ] + } ] - }, + } + ] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/completionsCommentsClassMembers.ts", + "position": 1015, + "name": "30" + }, + "completionList": { + "isGlobalCompletion": false, + "isMemberCompletion": true, + "isNewIdentifierLocation": false, + "optionalReplacementSpan": { + "start": 1015, + "length": 2 + }, + "entries": [ { - "name": "Int16Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "nc_s1", + "kind": "property", + "kindModifiers": "static", + "sortText": "10", "displayParts": [ { - "text": "interface", - "kind": "keyword" + "text": "(", + "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "property", + "kind": "text" }, { - "text": "Int16Array", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": " ", + "kind": "space" }, { - "text": "var", - "kind": "keyword" + "text": "c1", + "kind": "className" }, { - "text": " ", - "kind": "space" + "text": ".", + "kind": "punctuation" }, { - "text": "Int16Array", - "kind": "localName" + "text": "nc_s1", + "kind": "propertyName" }, { "text": ":", @@ -35335,104 +27857,69 @@ "kind": "space" }, { - "text": "Int16ArrayConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], - "documentation": [ - { - "text": "A typed array of 16-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "Uint16Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "nc_s2", + "kind": "method", + "kindModifiers": "static", + "sortText": "10", "displayParts": [ { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Uint16Array", - "kind": "localName" + "text": "(", + "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": "method", + "kind": "text" }, { - "text": "var", - "kind": "keyword" + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Uint16Array", - "kind": "localName" + "text": "c1", + "kind": "className" }, { - "text": ":", + "text": ".", "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "nc_s2", + "kind": "methodName" }, { - "text": "Uint16ArrayConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] - }, - { - "name": "Int32Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" + "text": "(", + "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "b", + "kind": "parameterName" }, { - "text": "Int32Array", - "kind": "localName" + "text": ":", + "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": " ", + "kind": "space" }, { - "text": "var", + "text": "number", "kind": "keyword" }, { - "text": " ", - "kind": "space" - }, - { - "text": "Int32Array", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -35443,50 +27930,45 @@ "kind": "space" }, { - "text": "Int32ArrayConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], - "documentation": [ - { - "text": "A typed array of 32-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "Uint32Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "nc_s3", + "kind": "property", + "kindModifiers": "static", + "sortText": "10", "displayParts": [ { - "text": "interface", - "kind": "keyword" + "text": "(", + "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "property", + "kind": "text" }, { - "text": "Uint32Array", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": " ", + "kind": "space" }, { - "text": "var", - "kind": "keyword" + "text": "c1", + "kind": "className" }, { - "text": " ", - "kind": "space" + "text": ".", + "kind": "punctuation" }, { - "text": "Uint32Array", - "kind": "localName" + "text": "nc_s3", + "kind": "propertyName" }, { "text": ":", @@ -35497,50 +27979,45 @@ "kind": "space" }, { - "text": "Uint32ArrayConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], - "documentation": [ - { - "text": "A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "Float32Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "s1", + "kind": "property", + "kindModifiers": "static", + "sortText": "10", "displayParts": [ { - "text": "interface", - "kind": "keyword" + "text": "(", + "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "property", + "kind": "text" }, { - "text": "Float32Array", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": " ", + "kind": "space" }, { - "text": "var", - "kind": "keyword" + "text": "c1", + "kind": "className" }, { - "text": " ", - "kind": "space" + "text": ".", + "kind": "punctuation" }, { - "text": "Float32Array", - "kind": "localName" + "text": "s1", + "kind": "propertyName" }, { "text": ":", @@ -35551,50 +28028,58 @@ "kind": "space" }, { - "text": "Float32ArrayConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], "documentation": [ { - "text": "A typed array of 32-bit float values. The contents are initialized to 0. If the requested number\r\nof bytes could not be allocated an exception is raised.", + "text": "s1 is static property of c1", "kind": "text" } ] }, { - "name": "Float64Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "s2", + "kind": "method", + "kindModifiers": "static", + "sortText": "10", "displayParts": [ { - "text": "interface", - "kind": "keyword" + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Float64Array", - "kind": "localName" + "text": "c1", + "kind": "className" }, { - "text": "\n", - "kind": "lineBreak" + "text": ".", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "s2", + "kind": "methodName" }, { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "Float64Array", - "kind": "localName" + "text": "b", + "kind": "parameterName" }, { "text": ":", @@ -35605,84 +28090,49 @@ "kind": "space" }, { - "text": "Float64ArrayConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "A typed array of 64-bit float values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] - }, - { - "name": "Intl", - "kind": "module", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "namespace", + "text": "number", "kind": "keyword" }, { - "text": " ", - "kind": "space" + "text": ")", + "kind": "punctuation" }, { - "text": "Intl", - "kind": "moduleName" - } - ], - "documentation": [] - }, - { - "name": "c1", - "kind": "class", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "class", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "c1", - "kind": "className" + "text": "number", + "kind": "keyword" } ], "documentation": [ { - "text": "This is comment for c1", + "text": "static sum with property", "kind": "text" } ] }, { - "name": "i1", - "kind": "var", - "kindModifiers": "", - "sortText": "11", + "name": "s3", + "kind": "property", + "kindModifiers": "static", + "sortText": "10", "displayParts": [ { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "i1", - "kind": "localName" + "text": "property", + "kind": "text" }, { - "text": ":", + "text": ")", "kind": "punctuation" }, { @@ -35692,27 +28142,14 @@ { "text": "c1", "kind": "className" - } - ], - "documentation": [] - }, - { - "name": "i1_p", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "var", - "kind": "keyword" }, { - "text": " ", - "kind": "space" + "text": ".", + "kind": "punctuation" }, { - "text": "i1_p", - "kind": "localName" + "text": "s3", + "kind": "propertyName" }, { "text": ":", @@ -35727,40 +28164,61 @@ "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "static getter property", + "kind": "text" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "setter property 3", + "kind": "text" + } + ] }, { - "name": "i1_f", - "kind": "var", - "kindModifiers": "", + "name": "apply", + "kind": "method", + "kindModifiers": "declare", "sortText": "11", "displayParts": [ { - "text": "var", - "kind": "keyword" + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "i1_f", + "text": "Function", "kind": "localName" }, { - "text": ":", + "text": ".", "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "apply", + "kind": "methodName" }, { "text": "(", "kind": "punctuation" }, { - "text": "b", + "text": "this", "kind": "parameterName" }, { @@ -35772,11 +28230,11 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "Function", + "kind": "localName" }, { - "text": ")", + "text": ",", "kind": "punctuation" }, { @@ -35784,7 +28242,11 @@ "kind": "space" }, { - "text": "=>", + "text": "thisArg", + "kind": "parameterName" + }, + { + "text": ":", "kind": "punctuation" }, { @@ -35792,29 +28254,24 @@ "kind": "space" }, { - "text": "number", + "text": "any", "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_r", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ + }, { - "text": "var", - "kind": "keyword" + "text": ",", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "i1_r", - "kind": "localName" + "text": "argArray", + "kind": "parameterName" + }, + { + "text": "?", + "kind": "punctuation" }, { "text": ":", @@ -35825,29 +28282,12 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_prop", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "var", + "text": "any", "kind": "keyword" }, { - "text": " ", - "kind": "space" - }, - { - "text": "i1_prop", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -35858,30 +28298,87 @@ "kind": "space" }, { - "text": "number", + "text": "any", "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Calls the function, substituting the specified object for the this value of the function, and the specified array for the arguments of the function.", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "thisArg", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "The object to be used as the this object.", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "argArray", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A set of arguments to be passed to the function.", + "kind": "text" + } + ] + } + ] }, { - "name": "i1_nc_p", - "kind": "var", - "kindModifiers": "", + "name": "arguments", + "kind": "property", + "kindModifiers": "declare", "sortText": "11", "displayParts": [ { - "text": "var", - "kind": "keyword" + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "i1_nc_p", + "text": "Function", "kind": "localName" }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "arguments", + "kind": "propertyName" + }, { "text": ":", "kind": "punctuation" @@ -35891,44 +28388,52 @@ "kind": "space" }, { - "text": "number", + "text": "any", "kind": "keyword" } ], "documentation": [] }, { - "name": "i1_ncf", - "kind": "var", - "kindModifiers": "", + "name": "bind", + "kind": "method", + "kindModifiers": "declare", "sortText": "11", "displayParts": [ { - "text": "var", - "kind": "keyword" + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "i1_ncf", + "text": "Function", "kind": "localName" }, { - "text": ":", + "text": ".", "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "bind", + "kind": "methodName" }, { "text": "(", "kind": "punctuation" }, { - "text": "b", + "text": "this", "kind": "parameterName" }, { @@ -35940,11 +28445,11 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "Function", + "kind": "localName" }, { - "text": ")", + "text": ",", "kind": "punctuation" }, { @@ -35952,7 +28457,11 @@ "kind": "space" }, { - "text": "=>", + "text": "thisArg", + "kind": "parameterName" + }, + { + "text": ":", "kind": "punctuation" }, { @@ -35960,29 +28469,24 @@ "kind": "space" }, { - "text": "number", + "text": "any", "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_ncr", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ + }, { - "text": "var", - "kind": "keyword" + "text": ",", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "i1_ncr", - "kind": "localName" + "text": "...", + "kind": "punctuation" + }, + { + "text": "argArray", + "kind": "parameterName" }, { "text": ":", @@ -35993,29 +28497,20 @@ "kind": "space" }, { - "text": "number", + "text": "any", "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_ncprop", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ + }, { - "text": "var", - "kind": "keyword" + "text": "[", + "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "]", + "kind": "punctuation" }, { - "text": "i1_ncprop", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -36026,65 +28521,109 @@ "kind": "space" }, { - "text": "number", + "text": "any", "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "For a given function, creates a bound function that has the same body as the original function.\r\nThe this object of the bound function is associated with the specified object, and has the specified initial parameters.", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "thisArg", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "An object to which the this keyword can refer inside the new function.", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "argArray", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A list of arguments to be passed to the new function.", + "kind": "text" + } + ] + } + ] }, { - "name": "i1_s_p", - "kind": "var", - "kindModifiers": "", + "name": "call", + "kind": "method", + "kindModifiers": "declare", "sortText": "11", "displayParts": [ { - "text": "var", - "kind": "keyword" + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "i1_s_p", + "text": "Function", "kind": "localName" }, { - "text": ":", + "text": ".", "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "call", + "kind": "methodName" }, { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_s_f", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ + "text": "(", + "kind": "punctuation" + }, { - "text": "var", - "kind": "keyword" + "text": "this", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "i1_s_f", + "text": "Function", "kind": "localName" }, { - "text": ":", + "text": ",", "kind": "punctuation" }, { @@ -36092,11 +28631,7 @@ "kind": "space" }, { - "text": "(", - "kind": "punctuation" - }, - { - "text": "b", + "text": "thisArg", "kind": "parameterName" }, { @@ -36108,11 +28643,11 @@ "kind": "space" }, { - "text": "number", + "text": "any", "kind": "keyword" }, { - "text": ")", + "text": ",", "kind": "punctuation" }, { @@ -36120,7 +28655,15 @@ "kind": "space" }, { - "text": "=>", + "text": "...", + "kind": "punctuation" + }, + { + "text": "argArray", + "kind": "parameterName" + }, + { + "text": ":", "kind": "punctuation" }, { @@ -36128,29 +28671,20 @@ "kind": "space" }, { - "text": "number", + "text": "any", "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_s_r", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ + }, { - "text": "var", - "kind": "keyword" + "text": "[", + "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "]", + "kind": "punctuation" }, { - "text": "i1_s_r", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -36161,30 +28695,87 @@ "kind": "space" }, { - "text": "number", + "text": "any", "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Calls a method of an object, substituting another object for the current object.", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "thisArg", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "The object to be used as the current object.", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "argArray", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A list of arguments to be passed to the method.", + "kind": "text" + } + ] + } + ] }, { - "name": "i1_s_prop", - "kind": "var", - "kindModifiers": "", + "name": "caller", + "kind": "property", + "kindModifiers": "declare", "sortText": "11", "displayParts": [ { - "text": "var", - "kind": "keyword" + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "i1_s_prop", + "text": "Function", "kind": "localName" }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "caller", + "kind": "propertyName" + }, { "text": ":", "kind": "punctuation" @@ -36194,30 +28785,46 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "Function", + "kind": "localName" } ], "documentation": [] }, { - "name": "i1_s_nc_p", - "kind": "var", - "kindModifiers": "", + "name": "length", + "kind": "property", + "kindModifiers": "declare", "sortText": "11", "displayParts": [ { - "text": "var", - "kind": "keyword" + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "i1_s_nc_p", + "text": "Function", "kind": "localName" }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "length", + "kind": "propertyName" + }, { "text": ":", "kind": "punctuation" @@ -36234,41 +28841,21 @@ "documentation": [] }, { - "name": "i1_s_ncf", - "kind": "var", + "name": "prototype", + "kind": "property", "kindModifiers": "", "sortText": "11", "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "i1_s_ncf", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, { "text": "(", "kind": "punctuation" }, { - "text": "b", - "kind": "parameterName" + "text": "property", + "kind": "text" }, { - "text": ":", + "text": ")", "kind": "punctuation" }, { @@ -36276,19 +28863,19 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "c1", + "kind": "className" }, { - "text": ")", + "text": ".", "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "prototype", + "kind": "propertyName" }, { - "text": "=>", + "text": ":", "kind": "punctuation" }, { @@ -36296,30 +28883,54 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "c1", + "kind": "className" } ], "documentation": [] }, { - "name": "i1_s_ncr", - "kind": "var", - "kindModifiers": "", + "name": "toString", + "kind": "method", + "kindModifiers": "declare", "sortText": "11", "displayParts": [ { - "text": "var", - "kind": "keyword" + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "i1_s_ncr", + "text": "Function", "kind": "localName" }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "toString", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, { "text": ":", "kind": "punctuation" @@ -36329,29 +28940,60 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" } ], - "documentation": [] - }, + "documentation": [ + { + "text": "Returns a string representation of a function.", + "kind": "text" + } + ] + } + ] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/completionsCommentsClassMembers.ts", + "position": 1020, + "name": "31" + }, + "completionList": { + "isGlobalCompletion": false, + "isMemberCompletion": false, + "isNewIdentifierLocation": false, + "optionalReplacementSpan": { + "start": 1020, + "length": 1 + }, + "entries": [ { - "name": "i1_s_ncprop", - "kind": "var", + "name": "arguments", + "kind": "local var", "kindModifiers": "", "sortText": "11", "displayParts": [ { - "text": "var", - "kind": "keyword" + "text": "(", + "kind": "punctuation" + }, + { + "text": "local var", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "i1_s_ncprop", - "kind": "localName" + "text": "arguments", + "kind": "propertyName" }, { "text": ":", @@ -36362,29 +29004,37 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "IArguments", + "kind": "interfaceName" } ], "documentation": [] }, { - "name": "i1_c", - "kind": "var", + "name": "b", + "kind": "parameter", "kindModifiers": "", "sortText": "11", "displayParts": [ { - "text": "var", - "kind": "keyword" + "text": "(", + "kind": "punctuation" + }, + { + "text": "parameter", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "i1_c", - "kind": "localName" + "text": "b", + "kind": "parameterName" }, { "text": ":", @@ -36395,7 +29045,25 @@ "kind": "space" }, { - "text": "typeof", + "text": "number", + "kind": "keyword" + } + ], + "documentation": [ + { + "text": "number to add", + "kind": "text" + } + ] + }, + { + "name": "c1", + "kind": "class", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "class", "kind": "keyword" }, { @@ -36407,7 +29075,12 @@ "kind": "className" } ], - "documentation": [] + "documentation": [ + { + "text": "This is comment for c1", + "kind": "text" + } + ] }, { "name": "cProperties", @@ -36485,10 +29158,10 @@ "documentation": [] }, { - "name": "undefined", + "name": "i1", "kind": "var", "kindModifiers": "", - "sortText": "15", + "sortText": "11", "displayParts": [ { "text": "var", @@ -36499,574 +29172,289 @@ "kind": "space" }, { - "text": "undefined", - "kind": "propertyName" - } - ], - "documentation": [] - }, - { - "name": "break", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "break", - "kind": "keyword" - } - ] - }, - { - "name": "case", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "case", - "kind": "keyword" - } - ] - }, - { - "name": "catch", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "catch", - "kind": "keyword" - } - ] - }, - { - "name": "class", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "class", - "kind": "keyword" - } - ] - }, - { - "name": "const", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "const", - "kind": "keyword" - } - ] - }, - { - "name": "continue", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "continue", - "kind": "keyword" - } - ] - }, - { - "name": "debugger", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "debugger", - "kind": "keyword" - } - ] - }, - { - "name": "default", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "default", - "kind": "keyword" - } - ] - }, - { - "name": "delete", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "delete", - "kind": "keyword" - } - ] - }, - { - "name": "do", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "do", - "kind": "keyword" - } - ] - }, - { - "name": "else", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "else", - "kind": "keyword" - } - ] - }, - { - "name": "enum", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "i1", + "kind": "localName" + }, { - "text": "enum", - "kind": "keyword" - } - ] - }, - { - "name": "export", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": ":", + "kind": "punctuation" + }, { - "text": "export", - "kind": "keyword" - } - ] - }, - { - "name": "extends", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "extends", - "kind": "keyword" + "text": "c1", + "kind": "className" } - ] + ], + "documentation": [] }, { - "name": "false", - "kind": "keyword", + "name": "i1_c", + "kind": "var", "kindModifiers": "", - "sortText": "15", + "sortText": "11", "displayParts": [ { - "text": "false", + "text": "var", "kind": "keyword" - } - ] - }, - { - "name": "finally", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "finally", - "kind": "keyword" - } - ] - }, - { - "name": "for", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "for", - "kind": "keyword" - } - ] - }, - { - "name": "function", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "i1_c", + "kind": "localName" + }, { - "text": "function", - "kind": "keyword" - } - ] - }, - { - "name": "if", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": ":", + "kind": "punctuation" + }, { - "text": "if", - "kind": "keyword" - } - ] - }, - { - "name": "import", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "import", + "text": "typeof", "kind": "keyword" - } - ] - }, - { - "name": "in", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "in", - "kind": "keyword" - } - ] - }, - { - "name": "instanceof", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "instanceof", - "kind": "keyword" + "text": "c1", + "kind": "className" } - ] + ], + "documentation": [] }, { - "name": "new", - "kind": "keyword", + "name": "i1_f", + "kind": "var", "kindModifiers": "", - "sortText": "15", + "sortText": "11", "displayParts": [ { - "text": "new", + "text": "var", "kind": "keyword" - } - ] - }, - { - "name": "null", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "null", - "kind": "keyword" - } - ] - }, - { - "name": "return", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "return", - "kind": "keyword" - } - ] - }, - { - "name": "super", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "i1_f", + "kind": "localName" + }, { - "text": "super", - "kind": "keyword" - } - ] - }, - { - "name": "switch", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": ":", + "kind": "punctuation" + }, { - "text": "switch", - "kind": "keyword" - } - ] - }, - { - "name": "this", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "this", - "kind": "keyword" - } - ] - }, - { - "name": "throw", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "(", + "kind": "punctuation" + }, { - "text": "throw", - "kind": "keyword" - } - ] - }, - { - "name": "true", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "b", + "kind": "parameterName" + }, { - "text": "true", - "kind": "keyword" - } - ] - }, - { - "name": "try", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": ":", + "kind": "punctuation" + }, { - "text": "try", - "kind": "keyword" - } - ] - }, - { - "name": "typeof", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "typeof", + "text": "number", "kind": "keyword" - } - ] - }, - { - "name": "var", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "var", - "kind": "keyword" - } - ] - }, - { - "name": "void", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": ")", + "kind": "punctuation" + }, { - "text": "void", - "kind": "keyword" - } - ] - }, - { - "name": "while", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "while", - "kind": "keyword" - } - ] - }, - { - "name": "with", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "=>", + "kind": "punctuation" + }, { - "text": "with", - "kind": "keyword" - } - ] - }, - { - "name": "implements", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "implements", + "text": "number", "kind": "keyword" } - ] + ], + "documentation": [] }, { - "name": "interface", - "kind": "keyword", + "name": "i1_nc_p", + "kind": "var", "kindModifiers": "", - "sortText": "15", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "var", "kind": "keyword" - } - ] - }, - { - "name": "let", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "let", + "text": " ", + "kind": "space" + }, + { + "text": "i1_nc_p", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" } - ] + ], + "documentation": [] }, { - "name": "package", - "kind": "keyword", + "name": "i1_ncf", + "kind": "var", "kindModifiers": "", - "sortText": "15", + "sortText": "11", "displayParts": [ { - "text": "package", + "text": "var", "kind": "keyword" - } - ] - }, - { - "name": "yield", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "yield", + "text": " ", + "kind": "space" + }, + { + "text": "i1_ncf", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "b", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" - } - ] - }, - { - "name": "as", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "as", + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" } - ] + ], + "documentation": [] }, { - "name": "async", - "kind": "keyword", + "name": "i1_ncprop", + "kind": "var", "kindModifiers": "", - "sortText": "15", + "sortText": "11", "displayParts": [ { - "text": "async", + "text": "var", "kind": "keyword" - } - ] - }, - { - "name": "await", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "await", + "text": " ", + "kind": "space" + }, + { + "text": "i1_ncprop", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" } - ] - } - ] - } - }, - { - "marker": { - "fileName": "/tests/cases/fourslash/completionsCommentsClassMembers.ts", - "position": 1102, - "name": "34" - }, - "completionList": { - "isGlobalCompletion": false, - "isMemberCompletion": true, - "isNewIdentifierLocation": false, - "optionalReplacementSpan": { - "start": 1102, - "length": 2 - }, - "entries": [ + ], + "documentation": [] + }, { - "name": "prototype", - "kind": "property", + "name": "i1_ncr", + "kind": "var", "kindModifiers": "", "sortText": "11", "displayParts": [ { - "text": "(", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { - "text": "property", - "kind": "text" + "text": " ", + "kind": "space" }, { - "text": ")", + "text": "i1_ncr", + "kind": "localName" + }, + { + "text": ":", "kind": "punctuation" }, { @@ -37074,16 +29462,29 @@ "kind": "space" }, { - "text": "c1", - "kind": "className" + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "i1_p", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "var", + "kind": "keyword" }, { - "text": ".", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": "prototype", - "kind": "propertyName" + "text": "i1_p", + "kind": "localName" }, { "text": ":", @@ -37094,28 +29495,32 @@ "kind": "space" }, { - "text": "c1", - "kind": "className" + "text": "number", + "kind": "keyword" } ], "documentation": [] }, { - "name": "s1", - "kind": "property", - "kindModifiers": "static", - "sortText": "10", + "name": "i1_prop", + "kind": "var", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "(", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { - "text": "property", - "kind": "text" + "text": " ", + "kind": "space" }, { - "text": ")", + "text": "i1_prop", + "kind": "localName" + }, + { + "text": ":", "kind": "punctuation" }, { @@ -37123,16 +29528,29 @@ "kind": "space" }, { - "text": "c1", - "kind": "className" + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "i1_r", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "var", + "kind": "keyword" }, { - "text": ".", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": "s1", - "kind": "propertyName" + "text": "i1_r", + "kind": "localName" }, { "text": ":", @@ -37147,46 +29565,33 @@ "kind": "keyword" } ], - "documentation": [ - { - "text": "s1 is static property of c1", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "s2", - "kind": "method", - "kindModifiers": "static", - "sortText": "10", + "name": "i1_s_f", + "kind": "var", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "c1", - "kind": "className" + "text": "i1_s_f", + "kind": "localName" }, { - "text": ".", + "text": ":", "kind": "punctuation" }, { - "text": "s2", - "kind": "methodName" + "text": " ", + "kind": "space" }, { "text": "(", @@ -37213,7 +29618,11 @@ "kind": "punctuation" }, { - "text": ":", + "text": " ", + "kind": "space" + }, + { + "text": "=>", "kind": "punctuation" }, { @@ -37225,46 +29634,25 @@ "kind": "keyword" } ], - "documentation": [ - { - "text": "static sum with property", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "s3", - "kind": "property", - "kindModifiers": "static", - "sortText": "10", + "name": "i1_s_nc_p", + "kind": "var", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "c1", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "s3", - "kind": "propertyName" + "text": "i1_s_nc_p", + "kind": "localName" }, { "text": ":", @@ -37279,37 +29667,44 @@ "kind": "keyword" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "i1_s_ncf", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { - "text": "static getter property", - "kind": "text" + "text": "var", + "kind": "keyword" }, { - "text": "\n", - "kind": "lineBreak" + "text": " ", + "kind": "space" }, { - "text": "setter property 3", - "kind": "text" - } - ] - }, - { - "name": "nc_s1", - "kind": "property", - "kindModifiers": "static", - "sortText": "10", - "displayParts": [ + "text": "i1_s_ncf", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, { "text": "(", "kind": "punctuation" }, { - "text": "property", - "kind": "text" + "text": "b", + "kind": "parameterName" }, { - "text": ")", + "text": ":", "kind": "punctuation" }, { @@ -37317,19 +29712,19 @@ "kind": "space" }, { - "text": "c1", - "kind": "className" + "text": "number", + "kind": "keyword" }, { - "text": ".", + "text": ")", "kind": "punctuation" }, { - "text": "nc_s1", - "kind": "propertyName" + "text": " ", + "kind": "space" }, { - "text": ":", + "text": "=>", "kind": "punctuation" }, { @@ -37344,21 +29739,25 @@ "documentation": [] }, { - "name": "nc_s2", - "kind": "method", - "kindModifiers": "static", - "sortText": "10", + "name": "i1_s_ncprop", + "kind": "var", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "(", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { - "text": "method", - "kind": "text" + "text": " ", + "kind": "space" }, { - "text": ")", + "text": "i1_s_ncprop", + "kind": "localName" + }, + { + "text": ":", "kind": "punctuation" }, { @@ -37366,24 +29765,29 @@ "kind": "space" }, { - "text": "c1", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "i1_s_ncr", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { - "text": "nc_s2", - "kind": "methodName" + "text": "var", + "kind": "keyword" }, { - "text": "(", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": "b", - "kind": "parameterName" + "text": "i1_s_ncr", + "kind": "localName" }, { "text": ":", @@ -37396,10 +29800,27 @@ { "text": "number", "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "i1_s_p", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "var", + "kind": "keyword" }, { - "text": ")", - "kind": "punctuation" + "text": " ", + "kind": "space" + }, + { + "text": "i1_s_p", + "kind": "localName" }, { "text": ":", @@ -37417,21 +29838,25 @@ "documentation": [] }, { - "name": "nc_s3", - "kind": "property", - "kindModifiers": "static", - "sortText": "10", + "name": "i1_s_prop", + "kind": "var", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "(", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { - "text": "property", - "kind": "text" + "text": " ", + "kind": "space" + }, + { + "text": "i1_s_prop", + "kind": "localName" }, { - "text": ")", + "text": ":", "kind": "punctuation" }, { @@ -37439,16 +29864,29 @@ "kind": "space" }, { - "text": "c1", - "kind": "className" + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "i1_s_r", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "var", + "kind": "keyword" }, { - "text": ".", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": "nc_s3", - "kind": "propertyName" + "text": "i1_s_r", + "kind": "localName" }, { "text": ":", @@ -37466,71 +29904,51 @@ "documentation": [] }, { - "name": "apply", - "kind": "method", + "name": "Array", + "kind": "var", "kindModifiers": "declare", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "Function", + "text": "Array", "kind": "localName" }, { - "text": ".", + "text": "<", "kind": "punctuation" }, { - "text": "apply", - "kind": "methodName" + "text": "T", + "kind": "typeParameterName" }, { - "text": "(", + "text": ">", "kind": "punctuation" }, { - "text": "this", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "Function", + "text": "Array", "kind": "localName" }, - { - "text": ",", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "thisArg", - "kind": "parameterName" - }, { "text": ":", "kind": "punctuation" @@ -37540,40 +29958,45 @@ "kind": "space" }, { - "text": "any", - "kind": "keyword" - }, + "text": "ArrayConstructor", + "kind": "interfaceName" + } + ], + "documentation": [] + }, + { + "name": "ArrayBuffer", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { - "text": ",", - "kind": "punctuation" + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "argArray", - "kind": "parameterName" + "text": "ArrayBuffer", + "kind": "localName" }, { - "text": "?", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "any", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "ArrayBuffer", + "kind": "localName" }, { "text": ":", @@ -37584,94 +30007,86 @@ "kind": "space" }, { - "text": "any", - "kind": "keyword" + "text": "ArrayBufferConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "Calls the function, substituting the specified object for the this value of the function, and the specified array for the arguments of the function.", + "text": "Represents a raw buffer of binary data, which is used to store data for the\r\ndifferent typed arrays. ArrayBuffers cannot be read from or written to directly,\r\nbut can be passed to a typed array or DataView Object to interpret the raw\r\nbuffer as needed.", "kind": "text" } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "thisArg", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "The object to be used as the this object.", - "kind": "text" - } - ] - }, + ] + }, + { + "name": "as", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "argArray", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A set of arguments to be passed to the function.", - "kind": "text" - } - ] + "text": "as", + "kind": "keyword" } ] }, { - "name": "call", - "kind": "method", - "kindModifiers": "declare", - "sortText": "11", + "name": "async", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", "displayParts": [ { - "text": "(", - "kind": "punctuation" - }, + "text": "async", + "kind": "keyword" + } + ] + }, + { + "name": "await", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "method", - "kind": "text" - }, + "text": "await", + "kind": "keyword" + } + ] + }, + { + "name": "Boolean", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { - "text": ")", - "kind": "punctuation" + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "Function", + "text": "Boolean", "kind": "localName" }, { - "text": ".", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": "call", - "kind": "methodName" + "text": "var", + "kind": "keyword" }, { - "text": "(", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": "this", - "kind": "parameterName" + "text": "Boolean", + "kind": "localName" }, { "text": ":", @@ -37682,35 +30097,120 @@ "kind": "space" }, { - "text": "Function", - "kind": "localName" - }, + "text": "BooleanConstructor", + "kind": "interfaceName" + } + ], + "documentation": [] + }, + { + "name": "break", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": ",", - "kind": "punctuation" + "text": "break", + "kind": "keyword" + } + ] + }, + { + "name": "case", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "case", + "kind": "keyword" + } + ] + }, + { + "name": "catch", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "catch", + "kind": "keyword" + } + ] + }, + { + "name": "class", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + } + ] + }, + { + "name": "const", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + } + ] + }, + { + "name": "continue", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "continue", + "kind": "keyword" + } + ] + }, + { + "name": "DataView", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "thisArg", - "kind": "parameterName" + "text": "DataView", + "kind": "localName" }, { - "text": ":", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "any", - "kind": "keyword" + "text": "DataView", + "kind": "localName" }, { - "text": ",", + "text": ":", "kind": "punctuation" }, { @@ -37718,36 +30218,45 @@ "kind": "space" }, { - "text": "...", - "kind": "punctuation" - }, - { - "text": "argArray", - "kind": "parameterName" - }, + "text": "DataViewConstructor", + "kind": "interfaceName" + } + ], + "documentation": [] + }, + { + "name": "Date", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { - "text": ":", - "kind": "punctuation" + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "any", - "kind": "keyword" + "text": "Date", + "kind": "localName" }, { - "text": "[", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": "]", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { - "text": ")", - "kind": "punctuation" + "text": " ", + "kind": "space" + }, + { + "text": "Date", + "kind": "localName" }, { "text": ":", @@ -37758,93 +30267,53 @@ "kind": "space" }, { - "text": "any", - "kind": "keyword" + "text": "DateConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "Calls a method of an object, substituting another object for the current object.", + "text": "Enables basic storage and retrieval of dates and times.", "kind": "text" } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "thisArg", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "The object to be used as the current object.", - "kind": "text" - } - ] - }, + ] + }, + { + "name": "debugger", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "argArray", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A list of arguments to be passed to the method.", - "kind": "text" - } - ] + "text": "debugger", + "kind": "keyword" } ] }, { - "name": "bind", - "kind": "method", + "name": "decodeURI", + "kind": "function", "kindModifiers": "declare", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" + "text": "function", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "Function", - "kind": "localName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "bind", - "kind": "methodName" + "text": "decodeURI", + "kind": "functionName" }, { "text": "(", "kind": "punctuation" }, { - "text": "this", + "text": "encodedURI", "kind": "parameterName" }, { @@ -37856,21 +30325,13 @@ "kind": "space" }, { - "text": "Function", - "kind": "localName" + "text": "string", + "kind": "keyword" }, { - "text": ",", + "text": ")", "kind": "punctuation" }, - { - "text": " ", - "kind": "space" - }, - { - "text": "thisArg", - "kind": "parameterName" - }, { "text": ":", "kind": "punctuation" @@ -37880,23 +30341,60 @@ "kind": "space" }, { - "text": "any", + "text": "string", "kind": "keyword" - }, + } + ], + "documentation": [ { - "text": ",", - "kind": "punctuation" + "text": "Gets the unencoded version of an encoded Uniform Resource Identifier (URI).", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "encodedURI", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI.", + "kind": "text" + } + ] + } + ] + }, + { + "name": "decodeURIComponent", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "function", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "...", + "text": "decodeURIComponent", + "kind": "functionName" + }, + { + "text": "(", "kind": "punctuation" }, { - "text": "argArray", + "text": "encodedURIComponent", "kind": "parameterName" }, { @@ -37908,17 +30406,9 @@ "kind": "space" }, { - "text": "any", + "text": "string", "kind": "keyword" }, - { - "text": "[", - "kind": "punctuation" - }, - { - "text": "]", - "kind": "punctuation" - }, { "text": ")", "kind": "punctuation" @@ -37932,13 +30422,13 @@ "kind": "space" }, { - "text": "any", + "text": "string", "kind": "keyword" } ], "documentation": [ { - "text": "For a given function, creates a bound function that has the same body as the original function.\r\nThe this object of the bound function is associated with the specified object, and has the specified initial parameters.", + "text": "Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).", "kind": "text" } ], @@ -37947,7 +30437,7 @@ "name": "param", "text": [ { - "text": "thisArg", + "text": "encodedURIComponent", "kind": "parameterName" }, { @@ -37955,68 +30445,99 @@ "kind": "space" }, { - "text": "An object to which the this keyword can refer inside the new function.", + "text": "A value representing an encoded URI component.", "kind": "text" } ] - }, + } + ] + }, + { + "name": "default", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "argArray", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A list of arguments to be passed to the new function.", - "kind": "text" - } - ] + "text": "default", + "kind": "keyword" } ] }, { - "name": "toString", - "kind": "method", - "kindModifiers": "declare", - "sortText": "11", + "name": "delete", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", "displayParts": [ { - "text": "(", - "kind": "punctuation" - }, + "text": "delete", + "kind": "keyword" + } + ] + }, + { + "name": "do", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "method", - "kind": "text" - }, + "text": "do", + "kind": "keyword" + } + ] + }, + { + "name": "else", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": ")", - "kind": "punctuation" + "text": "else", + "kind": "keyword" + } + ] + }, + { + "name": "encodeURI", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "function", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "Function", - "kind": "localName" + "text": "encodeURI", + "kind": "functionName" }, { - "text": ".", + "text": "(", "kind": "punctuation" }, { - "text": "toString", - "kind": "methodName" + "text": "uri", + "kind": "parameterName" }, { - "text": "(", + "text": ":", "kind": "punctuation" }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, { "text": ")", "kind": "punctuation" @@ -38036,44 +30557,55 @@ ], "documentation": [ { - "text": "Returns a string representation of a function.", + "text": "Encodes a text string as a valid Uniform Resource Identifier (URI)", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "uri", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI.", + "kind": "text" + } + ] + } ] }, { - "name": "length", - "kind": "property", + "name": "encodeURIComponent", + "kind": "function", "kindModifiers": "declare", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" + "text": "function", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "Function", - "kind": "localName" + "text": "encodeURIComponent", + "kind": "functionName" }, { - "text": ".", + "text": "(", "kind": "punctuation" }, { - "text": "length", - "kind": "propertyName" + "text": "uriComponent", + "kind": "parameterName" }, { "text": ":", @@ -38084,48 +30616,15 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "arguments", - "kind": "property", - "kindModifiers": "declare", - "sortText": "11", - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Function", - "kind": "localName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "arguments", - "kind": "propertyName" - }, - { - "text": ":", + "text": "|", "kind": "punctuation" }, { @@ -38133,28 +30632,15 @@ "kind": "space" }, { - "text": "any", + "text": "number", "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "caller", - "kind": "property", - "kindModifiers": "declare", - "sortText": "11", - "displayParts": [ - { - "text": "(", - "kind": "punctuation" }, { - "text": "property", - "kind": "text" + "text": " ", + "kind": "space" }, { - "text": ")", + "text": "|", "kind": "punctuation" }, { @@ -38162,17 +30648,13 @@ "kind": "space" }, { - "text": "Function", - "kind": "localName" + "text": "boolean", + "kind": "keyword" }, { - "text": ".", + "text": ")", "kind": "punctuation" }, - { - "text": "caller", - "kind": "propertyName" - }, { "text": ":", "kind": "punctuation" @@ -38182,88 +30664,93 @@ "kind": "space" }, { - "text": "Function", - "kind": "localName" + "text": "string", + "kind": "keyword" } ], - "documentation": [] - } - ] - } - }, - { - "marker": { - "fileName": "/tests/cases/fourslash/completionsCommentsClassMembers.ts", - "position": 1105, - "name": "35" - }, - "completionList": { - "isGlobalCompletion": false, - "isMemberCompletion": false, - "isNewIdentifierLocation": true, - "optionalReplacementSpan": { - "start": 1105, - "length": 2 - }, - "entries": [ + "documentation": [ + { + "text": "Encodes a text string as a valid component of a Uniform Resource Identifier (URI).", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "uriComponent", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI component.", + "kind": "text" + } + ] + } + ] + }, { - "name": "arguments", - "kind": "local var", + "name": "enum", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "(", - "kind": "punctuation" - }, - { - "text": "local var", - "kind": "text" - }, + "text": "enum", + "kind": "keyword" + } + ] + }, + { + "name": "Error", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { - "text": ")", - "kind": "punctuation" + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "arguments", - "kind": "propertyName" + "text": "Error", + "kind": "localName" }, { - "text": ":", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "IArguments", - "kind": "interfaceName" - } - ], - "documentation": [] - }, - { - "name": "globalThis", - "kind": "module", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "Error", + "kind": "localName" + }, { - "text": "module", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "globalThis", - "kind": "moduleName" + "text": "ErrorConstructor", + "kind": "interfaceName" } ], "documentation": [] @@ -38350,13 +30837,13 @@ ] }, { - "name": "parseInt", - "kind": "function", + "name": "EvalError", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -38364,44 +30851,24 @@ "kind": "space" }, { - "text": "parseInt", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "string", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" + "text": "EvalError", + "kind": "localName" }, { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, { - "text": "string", + "text": "var", "kind": "keyword" }, - { - "text": ",", - "kind": "punctuation" - }, { "text": " ", "kind": "space" }, { - "text": "radix", - "kind": "parameterName" - }, - { - "text": "?", - "kind": "punctuation" + "text": "EvalError", + "kind": "localName" }, { "text": ":", @@ -38412,77 +30879,68 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, + "text": "EvalErrorConstructor", + "kind": "interfaceName" + } + ], + "documentation": [] + }, + { + "name": "export", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "number", + "text": "export", "kind": "keyword" } - ], - "documentation": [ + ] + }, + { + "name": "extends", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "Converts a string to an integer.", - "kind": "text" + "text": "extends", + "kind": "keyword" } - ], - "tags": [ + ] + }, + { + "name": "false", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string to convert into a number.", - "kind": "text" - } - ] - }, + "text": "false", + "kind": "keyword" + } + ] + }, + { + "name": "finally", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "radix", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value between 2 and 36 that specifies the base of the number in `string`.\r\nIf this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal.\r\nAll other strings are considered decimal.", - "kind": "text" - } - ] + "text": "finally", + "kind": "keyword" } ] }, { - "name": "parseFloat", - "kind": "function", + "name": "Float32Array", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -38490,32 +30948,24 @@ "kind": "space" }, { - "text": "parseFloat", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" + "text": "Float32Array", + "kind": "localName" }, { - "text": "string", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "Float32Array", + "kind": "localName" }, { "text": ":", @@ -38526,44 +30976,25 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "Float32ArrayConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "Converts a string to a floating-point number.", + "text": "A typed array of 32-bit float values. The contents are initialized to 0. If the requested number\r\nof bytes could not be allocated an exception is raised.", "kind": "text" } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string that contains a floating-point number.", - "kind": "text" - } - ] - } ] }, { - "name": "isNaN", - "kind": "function", + "name": "Float64Array", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -38571,32 +31002,24 @@ "kind": "space" }, { - "text": "isNaN", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" + "text": "Float64Array", + "kind": "localName" }, { - "text": "number", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "Float64Array", + "kind": "localName" }, { "text": ":", @@ -38607,77 +31030,74 @@ "kind": "space" }, { - "text": "boolean", - "kind": "keyword" + "text": "Float64ArrayConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "Returns a Boolean value that indicates whether a value is the reserved value NaN (not a number).", + "text": "A typed array of 64-bit float values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", "kind": "text" } - ], - "tags": [ + ] + }, + { + "name": "for", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "number", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A numeric value.", - "kind": "text" - } - ] + "text": "for", + "kind": "keyword" } ] }, { - "name": "isFinite", - "kind": "function", - "kindModifiers": "declare", + "name": "function", + "kind": "keyword", + "kindModifiers": "", "sortText": "15", "displayParts": [ { "text": "function", "kind": "keyword" + } + ] + }, + { + "name": "Function", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "isFinite", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" + "text": "Function", + "kind": "localName" }, { - "text": "number", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "Function", + "kind": "localName" }, { "text": ":", @@ -38688,44 +31108,25 @@ "kind": "space" }, { - "text": "boolean", - "kind": "keyword" + "text": "FunctionConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "Determines whether a supplied number is finite.", + "text": "Creates a new function.", "kind": "text" } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "number", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Any numeric value.", - "kind": "text" - } - ] - } ] }, { - "name": "decodeURI", - "kind": "function", - "kindModifiers": "declare", + "name": "globalThis", + "kind": "module", + "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "module", "kind": "keyword" }, { @@ -38733,32 +31134,77 @@ "kind": "space" }, { - "text": "decodeURI", - "kind": "functionName" - }, + "text": "globalThis", + "kind": "moduleName" + } + ], + "documentation": [] + }, + { + "name": "if", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "(", - "kind": "punctuation" - }, + "text": "if", + "kind": "keyword" + } + ] + }, + { + "name": "implements", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "encodedURI", - "kind": "parameterName" - }, + "text": "implements", + "kind": "keyword" + } + ] + }, + { + "name": "import", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": ":", - "kind": "punctuation" + "text": "import", + "kind": "keyword" + } + ] + }, + { + "name": "in", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "in", + "kind": "keyword" + } + ] + }, + { + "name": "Infinity", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "Infinity", + "kind": "localName" }, { "text": ":", @@ -38769,44 +31215,32 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" } ], - "documentation": [ - { - "text": "Gets the unencoded version of an encoded Uniform Resource Identifier (URI).", - "kind": "text" - } - ], - "tags": [ + "documentation": [] + }, + { + "name": "instanceof", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "encodedURI", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI.", - "kind": "text" - } - ] + "text": "instanceof", + "kind": "keyword" } ] }, { - "name": "decodeURIComponent", - "kind": "function", + "name": "Int16Array", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -38814,32 +31248,24 @@ "kind": "space" }, { - "text": "decodeURIComponent", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" + "text": "Int16Array", + "kind": "localName" }, { - "text": "encodedURIComponent", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "Int16Array", + "kind": "localName" }, { "text": ":", @@ -38850,44 +31276,25 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "Int16ArrayConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).", + "text": "A typed array of 16-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", "kind": "text" } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "encodedURIComponent", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI component.", - "kind": "text" - } - ] - } ] }, { - "name": "encodeURI", - "kind": "function", + "name": "Int32Array", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -38895,32 +31302,24 @@ "kind": "space" }, { - "text": "encodeURI", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" + "text": "Int32Array", + "kind": "localName" }, { - "text": "uri", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "Int32Array", + "kind": "localName" }, { "text": ":", @@ -38931,44 +31330,25 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "Int32ArrayConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "Encodes a text string as a valid Uniform Resource Identifier (URI)", + "text": "A typed array of 32-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", "kind": "text" } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "uri", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI.", - "kind": "text" - } - ] - } ] }, { - "name": "encodeURIComponent", - "kind": "function", + "name": "Int8Array", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -38976,27 +31356,15 @@ "kind": "space" }, { - "text": "encodeURIComponent", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "uriComponent", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" + "text": "Int8Array", + "kind": "localName" }, { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, { - "text": "string", + "text": "var", "kind": "keyword" }, { @@ -39004,81 +31372,67 @@ "kind": "space" }, { - "text": "|", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "Int8Array", + "kind": "localName" }, { - "text": "number", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "|", - "kind": "punctuation" - }, + "text": "Int8ArrayConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ { - "text": " ", - "kind": "space" - }, + "text": "A typed array of 8-bit integer values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] + }, + { + "name": "interface", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "boolean", + "text": "interface", "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, + } + ] + }, + { + "name": "Intl", + "kind": "module", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { - "text": ":", - "kind": "punctuation" + "text": "namespace", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "string", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Encodes a text string as a valid component of a Uniform Resource Identifier (URI).", - "kind": "text" + "text": "Intl", + "kind": "moduleName" } ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "uriComponent", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI component.", - "kind": "text" - } - ] - } - ] + "documentation": [] }, { - "name": "escape", + "name": "isFinite", "kind": "function", - "kindModifiers": "deprecated,declare", - "sortText": "23", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { "text": "function", @@ -39089,7 +31443,7 @@ "kind": "space" }, { - "text": "escape", + "text": "isFinite", "kind": "functionName" }, { @@ -39097,7 +31451,7 @@ "kind": "punctuation" }, { - "text": "string", + "text": "number", "kind": "parameterName" }, { @@ -39109,7 +31463,7 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" }, { @@ -39125,31 +31479,22 @@ "kind": "space" }, { - "text": "string", + "text": "boolean", "kind": "keyword" } ], "documentation": [ { - "text": "Computes a new string in which certain characters have been replaced by a hexadecimal escape sequence.", + "text": "Determines whether a supplied number is finite.", "kind": "text" } ], "tags": [ - { - "name": "deprecated", - "text": [ - { - "text": "A legacy feature for browser compatibility", - "kind": "text" - } - ] - }, { "name": "param", "text": [ { - "text": "string", + "text": "number", "kind": "parameterName" }, { @@ -39157,7 +31502,7 @@ "kind": "space" }, { - "text": "A string value", + "text": "Any numeric value.", "kind": "text" } ] @@ -39165,10 +31510,10 @@ ] }, { - "name": "unescape", + "name": "isNaN", "kind": "function", - "kindModifiers": "deprecated,declare", - "sortText": "23", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { "text": "function", @@ -39179,7 +31524,7 @@ "kind": "space" }, { - "text": "unescape", + "text": "isNaN", "kind": "functionName" }, { @@ -39187,7 +31532,7 @@ "kind": "punctuation" }, { - "text": "string", + "text": "number", "kind": "parameterName" }, { @@ -39199,7 +31544,7 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" }, { @@ -39215,31 +31560,22 @@ "kind": "space" }, { - "text": "string", + "text": "boolean", "kind": "keyword" } ], "documentation": [ { - "text": "Computes a new string in which hexadecimal escape sequences are replaced with the character that it represents.", + "text": "Returns a Boolean value that indicates whether a value is the reserved value NaN (not a number).", "kind": "text" } ], "tags": [ - { - "name": "deprecated", - "text": [ - { - "text": "A legacy feature for browser compatibility", - "kind": "text" - } - ] - }, { "name": "param", "text": [ { - "text": "string", + "text": "number", "kind": "parameterName" }, { @@ -39247,7 +31583,7 @@ "kind": "space" }, { - "text": "A string value", + "text": "A numeric value.", "kind": "text" } ] @@ -39255,13 +31591,13 @@ ] }, { - "name": "NaN", + "name": "JSON", "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -39269,30 +31605,13 @@ "kind": "space" }, { - "text": "NaN", + "text": "JSON", "kind": "localName" }, { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "Infinity", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ { "text": "var", "kind": "keyword" @@ -39302,7 +31621,7 @@ "kind": "space" }, { - "text": "Infinity", + "text": "JSON", "kind": "localName" }, { @@ -39314,14 +31633,31 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "JSON", + "kind": "localName" } ], - "documentation": [] + "documentation": [ + { + "text": "An intrinsic object that provides functions to convert JavaScript values to and from the JavaScript Object Notation (JSON) format.", + "kind": "text" + } + ] }, { - "name": "Object", + "name": "let", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "let", + "kind": "keyword" + } + ] + }, + { + "name": "Math", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -39335,7 +31671,7 @@ "kind": "space" }, { - "text": "Object", + "text": "Math", "kind": "localName" }, { @@ -39351,7 +31687,7 @@ "kind": "space" }, { - "text": "Object", + "text": "Math", "kind": "localName" }, { @@ -39363,39 +31699,23 @@ "kind": "space" }, { - "text": "ObjectConstructor", - "kind": "interfaceName" + "text": "Math", + "kind": "localName" } ], "documentation": [ { - "text": "Provides functionality common to all JavaScript objects.", + "text": "An intrinsic object that provides basic mathematics functionality and constants.", "kind": "text" } ] }, { - "name": "Function", + "name": "NaN", "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Function", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, { "text": "var", "kind": "keyword" @@ -39405,7 +31725,7 @@ "kind": "space" }, { - "text": "Function", + "text": "NaN", "kind": "localName" }, { @@ -39417,19 +31737,38 @@ "kind": "space" }, { - "text": "FunctionConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "new", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "Creates a new function.", - "kind": "text" + "text": "new", + "kind": "keyword" } ] }, { - "name": "String", + "name": "null", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "null", + "kind": "keyword" + } + ] + }, + { + "name": "Number", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -39443,7 +31782,7 @@ "kind": "space" }, { - "text": "String", + "text": "Number", "kind": "localName" }, { @@ -39459,7 +31798,7 @@ "kind": "space" }, { - "text": "String", + "text": "Number", "kind": "localName" }, { @@ -39471,19 +31810,19 @@ "kind": "space" }, { - "text": "StringConstructor", + "text": "NumberConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "Allows manipulation and formatting of text strings and determination and location of substrings within strings.", + "text": "An object that represents a number of any kind. All JavaScript numbers are 64-bit floating-point numbers.", "kind": "text" } ] }, { - "name": "Boolean", + "name": "Object", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -39497,7 +31836,7 @@ "kind": "space" }, { - "text": "Boolean", + "text": "Object", "kind": "localName" }, { @@ -39513,7 +31852,7 @@ "kind": "space" }, { - "text": "Boolean", + "text": "Object", "kind": "localName" }, { @@ -39525,20 +31864,37 @@ "kind": "space" }, { - "text": "BooleanConstructor", + "text": "ObjectConstructor", "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "Provides functionality common to all JavaScript objects.", + "kind": "text" + } + ] }, { - "name": "Number", - "kind": "var", + "name": "package", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "package", + "kind": "keyword" + } + ] + }, + { + "name": "parseFloat", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -39546,24 +31902,32 @@ "kind": "space" }, { - "text": "Number", - "kind": "localName" + "text": "parseFloat", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "string", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Number", - "kind": "localName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -39574,25 +31938,44 @@ "kind": "space" }, { - "text": "NumberConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], "documentation": [ { - "text": "An object that represents a number of any kind. All JavaScript numbers are 64-bit floating-point numbers.", + "text": "Converts a string to a floating-point number.", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string that contains a floating-point number.", + "kind": "text" + } + ] + } ] }, { - "name": "Math", - "kind": "var", + "name": "parseInt", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -39600,24 +31983,16 @@ "kind": "space" }, { - "text": "Math", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": "parseInt", + "kind": "functionName" }, { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "Math", - "kind": "localName" + "text": "string", + "kind": "parameterName" }, { "text": ":", @@ -39628,50 +32003,40 @@ "kind": "space" }, { - "text": "Math", - "kind": "localName" - } - ], - "documentation": [ - { - "text": "An intrinsic object that provides basic mathematics functionality and constants.", - "kind": "text" - } - ] - }, - { - "name": "Date", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", + "text": "string", "kind": "keyword" }, + { + "text": ",", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "Date", - "kind": "localName" + "text": "radix", + "kind": "parameterName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "?", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Date", - "kind": "localName" + "text": "number", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -39682,19 +32047,55 @@ "kind": "space" }, { - "text": "DateConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], "documentation": [ { - "text": "Enables basic storage and retrieval of dates and times.", + "text": "Converts a string to an integer.", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string to convert into a number.", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "radix", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value between 2 and 36 that specifies the base of the number in `string`.\r\nIf this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal.\r\nAll other strings are considered decimal.", + "kind": "text" + } + ] + } ] }, { - "name": "RegExp", + "name": "RangeError", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -39708,7 +32109,7 @@ "kind": "space" }, { - "text": "RegExp", + "text": "RangeError", "kind": "localName" }, { @@ -39724,7 +32125,7 @@ "kind": "space" }, { - "text": "RegExp", + "text": "RangeError", "kind": "localName" }, { @@ -39736,14 +32137,14 @@ "kind": "space" }, { - "text": "RegExpConstructor", + "text": "RangeErrorConstructor", "kind": "interfaceName" } ], "documentation": [] }, { - "name": "Error", + "name": "ReferenceError", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -39757,7 +32158,7 @@ "kind": "space" }, { - "text": "Error", + "text": "ReferenceError", "kind": "localName" }, { @@ -39773,7 +32174,7 @@ "kind": "space" }, { - "text": "Error", + "text": "ReferenceError", "kind": "localName" }, { @@ -39785,14 +32186,14 @@ "kind": "space" }, { - "text": "ErrorConstructor", + "text": "ReferenceErrorConstructor", "kind": "interfaceName" } ], "documentation": [] }, { - "name": "EvalError", + "name": "RegExp", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -39806,7 +32207,7 @@ "kind": "space" }, { - "text": "EvalError", + "text": "RegExp", "kind": "localName" }, { @@ -39822,7 +32223,7 @@ "kind": "space" }, { - "text": "EvalError", + "text": "RegExp", "kind": "localName" }, { @@ -39834,14 +32235,26 @@ "kind": "space" }, { - "text": "EvalErrorConstructor", + "text": "RegExpConstructor", "kind": "interfaceName" } ], "documentation": [] }, { - "name": "RangeError", + "name": "return", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "return", + "kind": "keyword" + } + ] + }, + { + "name": "String", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -39855,7 +32268,7 @@ "kind": "space" }, { - "text": "RangeError", + "text": "String", "kind": "localName" }, { @@ -39871,7 +32284,7 @@ "kind": "space" }, { - "text": "RangeError", + "text": "String", "kind": "localName" }, { @@ -39883,14 +32296,43 @@ "kind": "space" }, { - "text": "RangeErrorConstructor", + "text": "StringConstructor", "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "Allows manipulation and formatting of text strings and determination and location of substrings within strings.", + "kind": "text" + } + ] }, { - "name": "ReferenceError", + "name": "super", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "super", + "kind": "keyword" + } + ] + }, + { + "name": "switch", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "switch", + "kind": "keyword" + } + ] + }, + { + "name": "SyntaxError", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -39904,7 +32346,7 @@ "kind": "space" }, { - "text": "ReferenceError", + "text": "SyntaxError", "kind": "localName" }, { @@ -39920,7 +32362,7 @@ "kind": "space" }, { - "text": "ReferenceError", + "text": "SyntaxError", "kind": "localName" }, { @@ -39932,60 +32374,59 @@ "kind": "space" }, { - "text": "ReferenceErrorConstructor", + "text": "SyntaxErrorConstructor", "kind": "interfaceName" } ], "documentation": [] }, { - "name": "SyntaxError", - "kind": "var", - "kindModifiers": "declare", + "name": "this", + "kind": "keyword", + "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "this", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "SyntaxError", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, + } + ] + }, + { + "name": "throw", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "var", + "text": "throw", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "SyntaxError", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, + } + ] + }, + { + "name": "true", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": " ", - "kind": "space" - }, + "text": "true", + "kind": "keyword" + } + ] + }, + { + "name": "try", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "SyntaxErrorConstructor", - "kind": "interfaceName" + "text": "try", + "kind": "keyword" } - ], - "documentation": [] + ] }, { "name": "TypeError", @@ -40037,7 +32478,19 @@ "documentation": [] }, { - "name": "URIError", + "name": "typeof", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "typeof", + "kind": "keyword" + } + ] + }, + { + "name": "Uint16Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -40051,7 +32504,7 @@ "kind": "space" }, { - "text": "URIError", + "text": "Uint16Array", "kind": "localName" }, { @@ -40067,7 +32520,7 @@ "kind": "space" }, { - "text": "URIError", + "text": "Uint16Array", "kind": "localName" }, { @@ -40079,14 +32532,19 @@ "kind": "space" }, { - "text": "URIErrorConstructor", + "text": "Uint16ArrayConstructor", "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] }, { - "name": "JSON", + "name": "Uint32Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -40100,7 +32558,7 @@ "kind": "space" }, { - "text": "JSON", + "text": "Uint32Array", "kind": "localName" }, { @@ -40116,7 +32574,7 @@ "kind": "space" }, { - "text": "JSON", + "text": "Uint32Array", "kind": "localName" }, { @@ -40128,19 +32586,19 @@ "kind": "space" }, { - "text": "JSON", - "kind": "localName" + "text": "Uint32ArrayConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "An intrinsic object that provides functions to convert JavaScript values to and from the JavaScript Object Notation (JSON) format.", + "text": "A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", "kind": "text" } ] }, { - "name": "Array", + "name": "Uint8Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -40154,21 +32612,9 @@ "kind": "space" }, { - "text": "Array", + "text": "Uint8Array", "kind": "localName" }, - { - "text": "<", - "kind": "punctuation" - }, - { - "text": "T", - "kind": "typeParameterName" - }, - { - "text": ">", - "kind": "punctuation" - }, { "text": "\n", "kind": "lineBreak" @@ -40182,7 +32628,7 @@ "kind": "space" }, { - "text": "Array", + "text": "Uint8Array", "kind": "localName" }, { @@ -40194,14 +32640,19 @@ "kind": "space" }, { - "text": "ArrayConstructor", + "text": "Uint8ArrayConstructor", "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] }, { - "name": "ArrayBuffer", + "name": "Uint8ClampedArray", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -40215,7 +32666,7 @@ "kind": "space" }, { - "text": "ArrayBuffer", + "text": "Uint8ClampedArray", "kind": "localName" }, { @@ -40231,7 +32682,7 @@ "kind": "space" }, { - "text": "ArrayBuffer", + "text": "Uint8ClampedArray", "kind": "localName" }, { @@ -40243,19 +32694,40 @@ "kind": "space" }, { - "text": "ArrayBufferConstructor", + "text": "Uint8ClampedArrayConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "Represents a raw buffer of binary data, which is used to store data for the\r\ndifferent typed arrays. ArrayBuffers cannot be read from or written to directly,\r\nbut can be passed to a typed array or DataView Object to interpret the raw\r\nbuffer as needed.", + "text": "A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0.\r\nIf the requested number of bytes could not be allocated an exception is raised.", "kind": "text" } ] }, { - "name": "DataView", + "name": "undefined", + "kind": "var", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "undefined", + "kind": "propertyName" + } + ], + "documentation": [] + }, + { + "name": "URIError", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -40269,7 +32741,7 @@ "kind": "space" }, { - "text": "DataView", + "text": "URIError", "kind": "localName" }, { @@ -40285,7 +32757,7 @@ "kind": "space" }, { - "text": "DataView", + "text": "URIError", "kind": "localName" }, { @@ -40297,20 +32769,80 @@ "kind": "space" }, { - "text": "DataViewConstructor", + "text": "URIErrorConstructor", "kind": "interfaceName" } ], "documentation": [] }, { - "name": "Int8Array", - "kind": "var", - "kindModifiers": "declare", + "name": "var", + "kind": "keyword", + "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "var", + "kind": "keyword" + } + ] + }, + { + "name": "void", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "void", + "kind": "keyword" + } + ] + }, + { + "name": "while", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "while", + "kind": "keyword" + } + ] + }, + { + "name": "with", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "with", + "kind": "keyword" + } + ] + }, + { + "name": "yield", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "yield", + "kind": "keyword" + } + ] + }, + { + "name": "escape", + "kind": "function", + "kindModifiers": "deprecated,declare", + "sortText": "z15", + "displayParts": [ + { + "text": "function", "kind": "keyword" }, { @@ -40318,24 +32850,32 @@ "kind": "space" }, { - "text": "Int8Array", - "kind": "localName" + "text": "escape", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "string", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Int8Array", - "kind": "localName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -40346,25 +32886,53 @@ "kind": "space" }, { - "text": "Int8ArrayConstructor", - "kind": "interfaceName" + "text": "string", + "kind": "keyword" } ], "documentation": [ { - "text": "A typed array of 8-bit integer values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", + "text": "Computes a new string in which certain characters have been replaced by a hexadecimal escape sequence.", "kind": "text" } + ], + "tags": [ + { + "name": "deprecated", + "text": [ + { + "text": "A legacy feature for browser compatibility", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string value", + "kind": "text" + } + ] + } ] }, { - "name": "Uint8Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "unescape", + "kind": "function", + "kindModifiers": "deprecated,declare", + "sortText": "z15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -40372,24 +32940,32 @@ "kind": "space" }, { - "text": "Uint8Array", - "kind": "localName" + "text": "unescape", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "string", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Uint8Array", - "kind": "localName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -40400,50 +32976,88 @@ "kind": "space" }, { - "text": "Uint8ArrayConstructor", - "kind": "interfaceName" + "text": "string", + "kind": "keyword" } ], "documentation": [ { - "text": "A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "text": "Computes a new string in which hexadecimal escape sequences are replaced with the character that it represents.", "kind": "text" } - ] - }, - { - "name": "Uint8ClampedArray", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ + ], + "tags": [ { - "text": "interface", - "kind": "keyword" + "name": "deprecated", + "text": [ + { + "text": "A legacy feature for browser compatibility", + "kind": "text" + } + ] }, { - "text": " ", - "kind": "space" - }, + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string value", + "kind": "text" + } + ] + } + ] + } + ] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/completionsCommentsClassMembers.ts", + "position": 1099, + "name": "33" + }, + "completionList": { + "isGlobalCompletion": true, + "isMemberCompletion": false, + "isNewIdentifierLocation": false, + "optionalReplacementSpan": { + "start": 1099, + "length": 2 + }, + "entries": [ + { + "name": "arguments", + "kind": "local var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { - "text": "Uint8ClampedArray", - "kind": "localName" + "text": "(", + "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": "local var", + "kind": "text" }, { - "text": "var", - "kind": "keyword" + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Uint8ClampedArray", - "kind": "localName" + "text": "arguments", + "kind": "propertyName" }, { "text": ":", @@ -40454,25 +33068,46 @@ "kind": "space" }, { - "text": "Uint8ClampedArrayConstructor", + "text": "IArguments", "kind": "interfaceName" } ], + "documentation": [] + }, + { + "name": "c1", + "kind": "class", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "c1", + "kind": "className" + } + ], "documentation": [ { - "text": "A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0.\r\nIf the requested number of bytes could not be allocated an exception is raised.", + "text": "This is comment for c1", "kind": "text" } ] }, { - "name": "Int16Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "cProperties", + "kind": "class", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "class", "kind": "keyword" }, { @@ -40480,13 +33115,18 @@ "kind": "space" }, { - "text": "Int16Array", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, + "text": "cProperties", + "kind": "className" + } + ], + "documentation": [] + }, + { + "name": "cProperties_i", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { "text": "var", "kind": "keyword" @@ -40496,7 +33136,7 @@ "kind": "space" }, { - "text": "Int16Array", + "text": "cProperties_i", "kind": "localName" }, { @@ -40508,25 +33148,20 @@ "kind": "space" }, { - "text": "Int16ArrayConstructor", - "kind": "interfaceName" + "text": "cProperties", + "kind": "className" } ], - "documentation": [ - { - "text": "A typed array of 16-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "Uint16Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "cWithConstructorProperty", + "kind": "class", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "class", "kind": "keyword" }, { @@ -40534,13 +33169,18 @@ "kind": "space" }, { - "text": "Uint16Array", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, + "text": "cWithConstructorProperty", + "kind": "className" + } + ], + "documentation": [] + }, + { + "name": "i1", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { "text": "var", "kind": "keyword" @@ -40550,7 +33190,7 @@ "kind": "space" }, { - "text": "Uint16Array", + "text": "i1", "kind": "localName" }, { @@ -40562,25 +33202,20 @@ "kind": "space" }, { - "text": "Uint16ArrayConstructor", - "kind": "interfaceName" + "text": "c1", + "kind": "className" } ], - "documentation": [ - { - "text": "A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "Int32Array", + "name": "i1_c", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "var", "kind": "keyword" }, { @@ -40588,53 +33223,40 @@ "kind": "space" }, { - "text": "Int32Array", + "text": "i1_c", "kind": "localName" }, { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Int32Array", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" + "text": "typeof", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "Int32ArrayConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "A typed array of 32-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" + "text": "c1", + "kind": "className" } - ] + ], + "documentation": [] }, { - "name": "Uint32Array", + "name": "i1_f", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "var", "kind": "keyword" }, { @@ -40642,24 +33264,24 @@ "kind": "space" }, { - "text": "Uint32Array", + "text": "i1_f", "kind": "localName" }, { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Uint32Array", - "kind": "localName" + "text": "(", + "kind": "punctuation" + }, + { + "text": "b", + "kind": "parameterName" }, { "text": ":", @@ -40670,39 +33292,38 @@ "kind": "space" }, { - "text": "Uint32ArrayConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] - }, - { - "name": "Float32Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", + "text": "number", "kind": "keyword" }, + { + "text": ")", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "Float32Array", - "kind": "localName" + "text": "=>", + "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": " ", + "kind": "space" }, + { + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "i1_nc_p", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { "text": "var", "kind": "keyword" @@ -40712,7 +33333,7 @@ "kind": "space" }, { - "text": "Float32Array", + "text": "i1_nc_p", "kind": "localName" }, { @@ -40724,25 +33345,20 @@ "kind": "space" }, { - "text": "Float32ArrayConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], - "documentation": [ - { - "text": "A typed array of 32-bit float values. The contents are initialized to 0. If the requested number\r\nof bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "Float64Array", + "name": "i1_ncf", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "var", "kind": "keyword" }, { @@ -40750,24 +33366,24 @@ "kind": "space" }, { - "text": "Float64Array", + "text": "i1_ncf", "kind": "localName" }, { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Float64Array", - "kind": "localName" + "text": "(", + "kind": "punctuation" + }, + { + "text": "b", + "kind": "parameterName" }, { "text": ":", @@ -40778,66 +33394,34 @@ "kind": "space" }, { - "text": "Float64ArrayConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "A typed array of 64-bit float values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] - }, - { - "name": "Intl", - "kind": "module", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "namespace", + "text": "number", "kind": "keyword" }, + { + "text": ")", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "Intl", - "kind": "moduleName" - } - ], - "documentation": [] - }, - { - "name": "c1", - "kind": "class", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "class", - "kind": "keyword" + "text": "=>", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "c1", - "kind": "className" + "text": "number", + "kind": "keyword" } ], - "documentation": [ - { - "text": "This is comment for c1", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "i1", + "name": "i1_ncprop", "kind": "var", "kindModifiers": "", "sortText": "11", @@ -40851,7 +33435,7 @@ "kind": "space" }, { - "text": "i1", + "text": "i1_ncprop", "kind": "localName" }, { @@ -40863,14 +33447,14 @@ "kind": "space" }, { - "text": "c1", - "kind": "className" + "text": "number", + "kind": "keyword" } ], "documentation": [] }, { - "name": "i1_p", + "name": "i1_ncr", "kind": "var", "kindModifiers": "", "sortText": "11", @@ -40884,7 +33468,7 @@ "kind": "space" }, { - "text": "i1_p", + "text": "i1_ncr", "kind": "localName" }, { @@ -40903,7 +33487,7 @@ "documentation": [] }, { - "name": "i1_f", + "name": "i1_p", "kind": "var", "kindModifiers": "", "sortText": "11", @@ -40917,7 +33501,7 @@ "kind": "space" }, { - "text": "i1_f", + "text": "i1_p", "kind": "localName" }, { @@ -40928,36 +33512,33 @@ "text": " ", "kind": "space" }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "b", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, { "text": "number", "kind": "keyword" - }, + } + ], + "documentation": [] + }, + { + "name": "i1_prop", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { - "text": ")", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "=>", + "text": "i1_prop", + "kind": "localName" + }, + { + "text": ":", "kind": "punctuation" }, { @@ -41005,7 +33586,7 @@ "documentation": [] }, { - "name": "i1_prop", + "name": "i1_s_f", "kind": "var", "kindModifiers": "", "sortText": "11", @@ -41019,7 +33600,7 @@ "kind": "space" }, { - "text": "i1_prop", + "text": "i1_s_f", "kind": "localName" }, { @@ -41030,6 +33611,42 @@ "text": " ", "kind": "space" }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "b", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, { "text": "number", "kind": "keyword" @@ -41038,7 +33655,7 @@ "documentation": [] }, { - "name": "i1_nc_p", + "name": "i1_s_nc_p", "kind": "var", "kindModifiers": "", "sortText": "11", @@ -41052,7 +33669,7 @@ "kind": "space" }, { - "text": "i1_nc_p", + "text": "i1_s_nc_p", "kind": "localName" }, { @@ -41071,7 +33688,7 @@ "documentation": [] }, { - "name": "i1_ncf", + "name": "i1_s_ncf", "kind": "var", "kindModifiers": "", "sortText": "11", @@ -41085,7 +33702,7 @@ "kind": "space" }, { - "text": "i1_ncf", + "text": "i1_s_ncf", "kind": "localName" }, { @@ -41140,7 +33757,7 @@ "documentation": [] }, { - "name": "i1_ncr", + "name": "i1_s_ncprop", "kind": "var", "kindModifiers": "", "sortText": "11", @@ -41154,7 +33771,7 @@ "kind": "space" }, { - "text": "i1_ncr", + "text": "i1_s_ncprop", "kind": "localName" }, { @@ -41173,7 +33790,7 @@ "documentation": [] }, { - "name": "i1_ncprop", + "name": "i1_s_ncr", "kind": "var", "kindModifiers": "", "sortText": "11", @@ -41187,7 +33804,7 @@ "kind": "space" }, { - "text": "i1_ncprop", + "text": "i1_s_ncr", "kind": "localName" }, { @@ -41239,7 +33856,7 @@ "documentation": [] }, { - "name": "i1_s_f", + "name": "i1_s_prop", "kind": "var", "kindModifiers": "", "sortText": "11", @@ -41253,7 +33870,7 @@ "kind": "space" }, { - "text": "i1_s_f", + "text": "i1_s_prop", "kind": "localName" }, { @@ -41265,12 +33882,29 @@ "kind": "space" }, { - "text": "(", - "kind": "punctuation" + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "i1_s_r", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "var", + "kind": "keyword" }, { - "text": "b", - "kind": "parameterName" + "text": " ", + "kind": "space" + }, + { + "text": "i1_s_r", + "kind": "localName" }, { "text": ":", @@ -41283,36 +33917,44 @@ { "text": "number", "kind": "keyword" - }, + } + ], + "documentation": [] + }, + { + "name": "Array", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { - "text": ")", - "kind": "punctuation" + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "=>", + "text": "Array", + "kind": "localName" + }, + { + "text": "<", "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "T", + "kind": "typeParameterName" }, { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_s_r", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ + "text": ">", + "kind": "punctuation" + }, + { + "text": "\n", + "kind": "lineBreak" + }, { "text": "var", "kind": "keyword" @@ -41322,7 +33964,7 @@ "kind": "space" }, { - "text": "i1_s_r", + "text": "Array", "kind": "localName" }, { @@ -41334,18 +33976,34 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "ArrayConstructor", + "kind": "interfaceName" } ], "documentation": [] }, { - "name": "i1_s_prop", + "name": "ArrayBuffer", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "ArrayBuffer", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, { "text": "var", "kind": "keyword" @@ -41355,7 +34013,7 @@ "kind": "space" }, { - "text": "i1_s_prop", + "text": "ArrayBuffer", "kind": "localName" }, { @@ -41367,18 +34025,75 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "ArrayBufferConstructor", + "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "Represents a raw buffer of binary data, which is used to store data for the\r\ndifferent typed arrays. ArrayBuffers cannot be read from or written to directly,\r\nbut can be passed to a typed array or DataView Object to interpret the raw\r\nbuffer as needed.", + "kind": "text" + } + ] }, { - "name": "i1_s_nc_p", - "kind": "var", + "name": "as", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", + "displayParts": [ + { + "text": "as", + "kind": "keyword" + } + ] + }, + { + "name": "async", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "async", + "kind": "keyword" + } + ] + }, + { + "name": "await", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "await", + "kind": "keyword" + } + ] + }, + { + "name": "Boolean", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Boolean", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, { "text": "var", "kind": "keyword" @@ -41388,7 +34103,7 @@ "kind": "space" }, { - "text": "i1_s_nc_p", + "text": "Boolean", "kind": "localName" }, { @@ -41400,20 +34115,92 @@ "kind": "space" }, { - "text": "number", + "text": "BooleanConstructor", + "kind": "interfaceName" + } + ], + "documentation": [] + }, + { + "name": "break", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "break", + "kind": "keyword" + } + ] + }, + { + "name": "case", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "case", + "kind": "keyword" + } + ] + }, + { + "name": "catch", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "catch", + "kind": "keyword" + } + ] + }, + { + "name": "class", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + } + ] + }, + { + "name": "const", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + } + ] + }, + { + "name": "continue", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "continue", "kind": "keyword" } - ], - "documentation": [] + ] }, { - "name": "i1_s_ncf", + "name": "DataView", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -41421,47 +34208,27 @@ "kind": "space" }, { - "text": "i1_s_ncf", + "text": "DataView", "kind": "localName" }, { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "b", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "DataView", + "kind": "localName" }, { - "text": "=>", + "text": ":", "kind": "punctuation" }, { @@ -41469,20 +34236,20 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "DataViewConstructor", + "kind": "interfaceName" } ], "documentation": [] }, { - "name": "i1_s_ncr", + "name": "Date", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -41490,30 +34257,13 @@ "kind": "space" }, { - "text": "i1_s_ncr", + "text": "Date", "kind": "localName" }, { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_s_ncprop", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ { "text": "var", "kind": "keyword" @@ -41523,7 +34273,7 @@ "kind": "space" }, { - "text": "i1_s_ncprop", + "text": "Date", "kind": "localName" }, { @@ -41535,20 +34285,37 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "DateConstructor", + "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "Enables basic storage and retrieval of dates and times.", + "kind": "text" + } + ] }, { - "name": "i1_c", - "kind": "var", + "name": "debugger", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "debugger", + "kind": "keyword" + } + ] + }, + { + "name": "decodeURI", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "function", "kind": "keyword" }, { @@ -41556,8 +34323,16 @@ "kind": "space" }, { - "text": "i1_c", - "kind": "localName" + "text": "decodeURI", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "encodedURI", + "kind": "parameterName" }, { "text": ":", @@ -41568,49 +34343,60 @@ "kind": "space" }, { - "text": "typeof", + "text": "string", "kind": "keyword" }, { - "text": " ", - "kind": "space" + "text": ")", + "kind": "punctuation" }, { - "text": "c1", - "kind": "className" - } - ], - "documentation": [] - }, - { - "name": "cProperties", - "kind": "class", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "class", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "cProperties", - "kind": "className" + "text": "string", + "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Gets the unencoded version of an encoded Uniform Resource Identifier (URI).", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "encodedURI", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI.", + "kind": "text" + } + ] + } + ] }, { - "name": "cProperties_i", - "kind": "var", - "kindModifiers": "", - "sortText": "11", + "name": "decodeURIComponent", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "function", "kind": "keyword" }, { @@ -41618,8 +34404,16 @@ "kind": "space" }, { - "text": "cProperties_i", - "kind": "localName" + "text": "decodeURIComponent", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "encodedURIComponent", + "kind": "parameterName" }, { "text": ":", @@ -41630,184 +34424,292 @@ "kind": "space" }, { - "text": "cProperties", - "kind": "className" - } - ], - "documentation": [] - }, - { - "name": "cWithConstructorProperty", - "kind": "class", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "class", + "text": "string", "kind": "keyword" }, { - "text": " ", - "kind": "space" + "text": ")", + "kind": "punctuation" }, { - "text": "cWithConstructorProperty", - "kind": "className" - } - ], - "documentation": [] - }, - { - "name": "undefined", - "kind": "var", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "undefined", - "kind": "propertyName" + "text": "string", + "kind": "keyword" } ], - "documentation": [] - }, - { - "name": "break", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "documentation": [ { - "text": "break", - "kind": "keyword" + "text": "Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).", + "kind": "text" } - ] - }, - { - "name": "case", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "tags": [ { - "text": "case", - "kind": "keyword" + "name": "param", + "text": [ + { + "text": "encodedURIComponent", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI component.", + "kind": "text" + } + ] } ] }, { - "name": "catch", + "name": "default", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "catch", + "text": "default", "kind": "keyword" } ] }, { - "name": "class", + "name": "delete", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "class", + "text": "delete", "kind": "keyword" } ] }, { - "name": "const", + "name": "do", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "const", + "text": "do", "kind": "keyword" } ] }, { - "name": "continue", + "name": "else", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "continue", + "text": "else", "kind": "keyword" } ] }, { - "name": "debugger", - "kind": "keyword", - "kindModifiers": "", + "name": "encodeURI", + "kind": "function", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "debugger", + "text": "function", "kind": "keyword" - } - ] - }, - { - "name": "default", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "default", + "text": " ", + "kind": "space" + }, + { + "text": "encodeURI", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "uri", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", "kind": "keyword" - } - ] - }, - { - "name": "delete", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "delete", + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", "kind": "keyword" } - ] - }, - { - "name": "do", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "do", - "kind": "keyword" + "text": "Encodes a text string as a valid Uniform Resource Identifier (URI)", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "uri", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI.", + "kind": "text" + } + ] } ] }, { - "name": "else", - "kind": "keyword", - "kindModifiers": "", + "name": "encodeURIComponent", + "kind": "function", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "else", + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "encodeURIComponent", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "uriComponent", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "|", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "|", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "boolean", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", "kind": "keyword" } + ], + "documentation": [ + { + "text": "Encodes a text string as a valid component of a Uniform Resource Identifier (URI).", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "uriComponent", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI component.", + "kind": "text" + } + ] + } ] }, { @@ -41823,289 +34725,447 @@ ] }, { - "name": "export", - "kind": "keyword", - "kindModifiers": "", + "name": "Error", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "export", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "extends", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "extends", + "text": " ", + "kind": "space" + }, + { + "text": "Error", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Error", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "ErrorConstructor", + "kind": "interfaceName" } - ] + ], + "documentation": [] }, { - "name": "false", - "kind": "keyword", - "kindModifiers": "", + "name": "eval", + "kind": "function", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "false", + "text": "function", "kind": "keyword" - } - ] - }, - { - "name": "finally", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "finally", + "text": " ", + "kind": "space" + }, + { + "text": "eval", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "x", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", "kind": "keyword" - } - ] - }, - { - "name": "for", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "for", + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", "kind": "keyword" } - ] - }, - { - "name": "function", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "function", - "kind": "keyword" + "text": "Evaluates JavaScript code and executes it.", + "kind": "text" } - ] - }, - { - "name": "if", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "tags": [ { - "text": "if", - "kind": "keyword" + "name": "param", + "text": [ + { + "text": "x", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A String value that contains valid JavaScript code.", + "kind": "text" + } + ] } ] }, { - "name": "import", - "kind": "keyword", - "kindModifiers": "", + "name": "EvalError", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "import", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "in", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "in", + "text": " ", + "kind": "space" + }, + { + "text": "EvalError", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "EvalError", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "EvalErrorConstructor", + "kind": "interfaceName" } - ] + ], + "documentation": [] }, { - "name": "instanceof", + "name": "export", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "instanceof", + "text": "export", "kind": "keyword" } ] }, { - "name": "new", + "name": "extends", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "new", + "text": "extends", "kind": "keyword" } ] }, { - "name": "null", + "name": "false", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "null", + "text": "false", "kind": "keyword" } ] }, { - "name": "return", + "name": "finally", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "return", + "text": "finally", "kind": "keyword" } ] }, { - "name": "super", - "kind": "keyword", - "kindModifiers": "", + "name": "Float32Array", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "super", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "switch", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "switch", + "text": " ", + "kind": "space" + }, + { + "text": "Float32Array", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Float32Array", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Float32ArrayConstructor", + "kind": "interfaceName" } - ] - }, - { - "name": "this", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "this", - "kind": "keyword" + "text": "A typed array of 32-bit float values. The contents are initialized to 0. If the requested number\r\nof bytes could not be allocated an exception is raised.", + "kind": "text" } ] }, { - "name": "throw", - "kind": "keyword", - "kindModifiers": "", + "name": "Float64Array", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "throw", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "true", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "true", + "text": " ", + "kind": "space" + }, + { + "text": "Float64Array", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Float64Array", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Float64ArrayConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ + { + "text": "A typed array of 64-bit float values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", + "kind": "text" } ] }, { - "name": "try", + "name": "for", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "try", + "text": "for", "kind": "keyword" } ] }, { - "name": "typeof", + "name": "function", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "typeof", + "text": "function", "kind": "keyword" } ] }, { - "name": "var", - "kind": "keyword", - "kindModifiers": "", + "name": "Function", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Function", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, { "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Function", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "FunctionConstructor", + "kind": "interfaceName" } - ] - }, - { - "name": "void", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "void", - "kind": "keyword" + "text": "Creates a new function.", + "kind": "text" } ] }, { - "name": "while", - "kind": "keyword", + "name": "globalThis", + "kind": "module", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "while", + "text": "module", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "globalThis", + "kind": "moduleName" } - ] + ], + "documentation": [] }, { - "name": "with", + "name": "if", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "with", + "text": "if", "kind": "keyword" } ] @@ -42123,140 +35183,161 @@ ] }, { - "name": "interface", + "name": "import", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "import", "kind": "keyword" } ] }, { - "name": "let", + "name": "in", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "let", + "text": "in", "kind": "keyword" } ] }, { - "name": "package", - "kind": "keyword", - "kindModifiers": "", + "name": "Infinity", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "package", + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Infinity", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" } - ] + ], + "documentation": [] }, { - "name": "yield", + "name": "instanceof", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "yield", + "text": "instanceof", "kind": "keyword" } ] }, { - "name": "as", - "kind": "keyword", - "kindModifiers": "", + "name": "Int16Array", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "as", + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Int16Array", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Int16Array", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Int16ArrayConstructor", + "kind": "interfaceName" } - ] - }, - { - "name": "async", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "async", - "kind": "keyword" + "text": "A typed array of 16-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" } ] }, { - "name": "await", - "kind": "keyword", - "kindModifiers": "", + "name": "Int32Array", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "await", + "text": "interface", "kind": "keyword" - } - ] - } - ] - } - }, - { - "marker": { - "fileName": "/tests/cases/fourslash/completionsCommentsClassMembers.ts", - "position": 1108, - "name": "36" - }, - "completionList": { - "isGlobalCompletion": false, - "isMemberCompletion": true, - "isNewIdentifierLocation": false, - "optionalReplacementSpan": { - "start": 1108, - "length": 2 - }, - "entries": [ - { - "name": "prototype", - "kind": "property", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "(", - "kind": "punctuation" }, { - "text": "property", - "kind": "text" + "text": " ", + "kind": "space" }, { - "text": ")", - "kind": "punctuation" + "text": "Int32Array", + "kind": "localName" }, { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, { - "text": "c1", - "kind": "className" + "text": "var", + "kind": "keyword" }, { - "text": ".", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": "prototype", - "kind": "propertyName" + "text": "Int32Array", + "kind": "localName" }, { "text": ":", @@ -42267,45 +35348,50 @@ "kind": "space" }, { - "text": "c1", - "kind": "className" + "text": "Int32ArrayConstructor", + "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "A typed array of 32-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] }, { - "name": "s1", - "kind": "property", - "kindModifiers": "static", - "sortText": "10", + "name": "Int8Array", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "(", - "kind": "punctuation" + "text": "interface", + "kind": "keyword" }, { - "text": "property", - "kind": "text" + "text": " ", + "kind": "space" }, { - "text": ")", - "kind": "punctuation" + "text": "Int8Array", + "kind": "localName" }, { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, { - "text": "c1", - "kind": "className" + "text": "var", + "kind": "keyword" }, { - "text": ".", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": "s1", - "kind": "propertyName" + "text": "Int8Array", + "kind": "localName" }, { "text": ":", @@ -42316,57 +35402,74 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "Int8ArrayConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "s1 is static property of c1", + "text": "A typed array of 8-bit integer values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", "kind": "text" } ] }, { - "name": "s2", - "kind": "method", - "kindModifiers": "static", - "sortText": "10", + "name": "interface", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", "displayParts": [ { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, + "text": "interface", + "kind": "keyword" + } + ] + }, + { + "name": "Intl", + "kind": "module", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { - "text": ")", - "kind": "punctuation" + "text": "namespace", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "c1", - "kind": "className" + "text": "Intl", + "kind": "moduleName" + } + ], + "documentation": [] + }, + { + "name": "isFinite", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "function", + "kind": "keyword" }, { - "text": ".", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": "s2", - "kind": "methodName" + "text": "isFinite", + "kind": "functionName" }, { "text": "(", "kind": "punctuation" }, { - "text": "b", + "text": "number", "kind": "parameterName" }, { @@ -42394,33 +35497,64 @@ "kind": "space" }, { - "text": "number", + "text": "boolean", "kind": "keyword" } ], "documentation": [ { - "text": "static sum with property", + "text": "Determines whether a supplied number is finite.", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "number", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Any numeric value.", + "kind": "text" + } + ] + } ] }, { - "name": "s3", - "kind": "property", - "kindModifiers": "static", - "sortText": "10", + "name": "isNaN", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "isNaN", + "kind": "functionName" + }, { "text": "(", "kind": "punctuation" }, { - "text": "property", - "kind": "text" + "text": "number", + "kind": "parameterName" }, { - "text": ")", + "text": ":", "kind": "punctuation" }, { @@ -42428,17 +35562,13 @@ "kind": "space" }, { - "text": "c1", - "kind": "className" + "text": "number", + "kind": "keyword" }, { - "text": ".", + "text": ")", "kind": "punctuation" }, - { - "text": "s3", - "kind": "propertyName" - }, { "text": ":", "kind": "punctuation" @@ -42448,58 +35578,69 @@ "kind": "space" }, { - "text": "number", + "text": "boolean", "kind": "keyword" } ], "documentation": [ { - "text": "static getter property", + "text": "Returns a Boolean value that indicates whether a value is the reserved value NaN (not a number).", "kind": "text" - }, - { - "text": "\n", - "kind": "lineBreak" - }, + } + ], + "tags": [ { - "text": "setter property 3", - "kind": "text" + "name": "param", + "text": [ + { + "text": "number", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A numeric value.", + "kind": "text" + } + ] } ] }, { - "name": "nc_s1", - "kind": "property", - "kindModifiers": "static", - "sortText": "10", + "name": "JSON", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "(", - "kind": "punctuation" + "text": "interface", + "kind": "keyword" }, { - "text": "property", - "kind": "text" + "text": " ", + "kind": "space" }, { - "text": ")", - "kind": "punctuation" + "text": "JSON", + "kind": "localName" }, { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, { - "text": "c1", - "kind": "className" + "text": "var", + "kind": "keyword" }, { - "text": ".", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": "nc_s1", - "kind": "propertyName" + "text": "JSON", + "kind": "localName" }, { "text": ":", @@ -42510,53 +35651,62 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "JSON", + "kind": "localName" } ], - "documentation": [] + "documentation": [ + { + "text": "An intrinsic object that provides functions to convert JavaScript values to and from the JavaScript Object Notation (JSON) format.", + "kind": "text" + } + ] }, { - "name": "nc_s2", - "kind": "method", - "kindModifiers": "static", - "sortText": "10", + "name": "let", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", "displayParts": [ { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, + "text": "let", + "kind": "keyword" + } + ] + }, + { + "name": "Math", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { - "text": ")", - "kind": "punctuation" + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "c1", - "kind": "className" + "text": "Math", + "kind": "localName" }, { - "text": ".", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": "nc_s2", - "kind": "methodName" + "text": "var", + "kind": "keyword" }, { - "text": "(", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": "b", - "kind": "parameterName" + "text": "Math", + "kind": "localName" }, { "text": ":", @@ -42567,12 +35717,34 @@ "kind": "space" }, { - "text": "number", + "text": "Math", + "kind": "localName" + } + ], + "documentation": [ + { + "text": "An intrinsic object that provides basic mathematics functionality and constants.", + "kind": "text" + } + ] + }, + { + "name": "NaN", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "var", "kind": "keyword" }, { - "text": ")", - "kind": "punctuation" + "text": " ", + "kind": "space" + }, + { + "text": "NaN", + "kind": "localName" }, { "text": ":", @@ -42590,38 +35762,62 @@ "documentation": [] }, { - "name": "nc_s3", - "kind": "property", - "kindModifiers": "static", - "sortText": "10", + "name": "new", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", "displayParts": [ { - "text": "(", - "kind": "punctuation" - }, + "text": "new", + "kind": "keyword" + } + ] + }, + { + "name": "null", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "property", - "kind": "text" - }, + "text": "null", + "kind": "keyword" + } + ] + }, + { + "name": "Number", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { - "text": ")", - "kind": "punctuation" + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "c1", - "kind": "className" + "text": "Number", + "kind": "localName" }, { - "text": ".", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": "nc_s3", - "kind": "propertyName" + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Number", + "kind": "localName" }, { "text": ":", @@ -42632,68 +35828,53 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "NumberConstructor", + "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "An object that represents a number of any kind. All JavaScript numbers are 64-bit floating-point numbers.", + "kind": "text" + } + ] }, { - "name": "apply", - "kind": "method", + "name": "Object", + "kind": "var", "kindModifiers": "declare", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "Function", + "text": "Object", "kind": "localName" }, { - "text": ".", - "kind": "punctuation" - }, - { - "text": "apply", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "this", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "Function", + "text": "Object", "kind": "localName" }, { - "text": ",", + "text": ":", "kind": "punctuation" }, { @@ -42701,37 +35882,55 @@ "kind": "space" }, { - "text": "thisArg", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, + "text": "ObjectConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ { - "text": " ", - "kind": "space" - }, + "text": "Provides functionality common to all JavaScript objects.", + "kind": "text" + } + ] + }, + { + "name": "package", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "any", + "text": "package", "kind": "keyword" - }, + } + ] + }, + { + "name": "parseFloat", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { - "text": ",", - "kind": "punctuation" + "text": "function", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "argArray", - "kind": "parameterName" + "text": "parseFloat", + "kind": "functionName" }, { - "text": "?", + "text": "(", "kind": "punctuation" }, + { + "text": "string", + "kind": "parameterName" + }, { "text": ":", "kind": "punctuation" @@ -42741,7 +35940,7 @@ "kind": "space" }, { - "text": "any", + "text": "string", "kind": "keyword" }, { @@ -42757,13 +35956,13 @@ "kind": "space" }, { - "text": "any", + "text": "number", "kind": "keyword" } ], "documentation": [ { - "text": "Calls the function, substituting the specified object for the this value of the function, and the specified array for the arguments of the function.", + "text": "Converts a string to a floating-point number.", "kind": "text" } ], @@ -42772,24 +35971,7 @@ "name": "param", "text": [ { - "text": "thisArg", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "The object to be used as the this object.", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "argArray", + "text": "string", "kind": "parameterName" }, { @@ -42797,7 +35979,7 @@ "kind": "space" }, { - "text": "A set of arguments to be passed to the function.", + "text": "A string that contains a floating-point number.", "kind": "text" } ] @@ -42805,45 +35987,29 @@ ] }, { - "name": "call", - "kind": "method", + "name": "parseInt", + "kind": "function", "kindModifiers": "declare", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" + "text": "function", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "Function", - "kind": "localName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "call", - "kind": "methodName" + "text": "parseInt", + "kind": "functionName" }, { "text": "(", "kind": "punctuation" }, { - "text": "this", + "text": "string", "kind": "parameterName" }, { @@ -42855,8 +36021,8 @@ "kind": "space" }, { - "text": "Function", - "kind": "localName" + "text": "string", + "kind": "keyword" }, { "text": ",", @@ -42867,37 +36033,13 @@ "kind": "space" }, { - "text": "thisArg", + "text": "radix", "kind": "parameterName" }, { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - }, - { - "text": ",", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "...", + "text": "?", "kind": "punctuation" }, - { - "text": "argArray", - "kind": "parameterName" - }, { "text": ":", "kind": "punctuation" @@ -42907,17 +36049,9 @@ "kind": "space" }, { - "text": "any", + "text": "number", "kind": "keyword" }, - { - "text": "[", - "kind": "punctuation" - }, - { - "text": "]", - "kind": "punctuation" - }, { "text": ")", "kind": "punctuation" @@ -42931,13 +36065,13 @@ "kind": "space" }, { - "text": "any", + "text": "number", "kind": "keyword" } ], "documentation": [ { - "text": "Calls a method of an object, substituting another object for the current object.", + "text": "Converts a string to an integer.", "kind": "text" } ], @@ -42946,7 +36080,7 @@ "name": "param", "text": [ { - "text": "thisArg", + "text": "string", "kind": "parameterName" }, { @@ -42954,7 +36088,7 @@ "kind": "space" }, { - "text": "The object to be used as the current object.", + "text": "A string to convert into a number.", "kind": "text" } ] @@ -42963,7 +36097,7 @@ "name": "param", "text": [ { - "text": "argArray", + "text": "radix", "kind": "parameterName" }, { @@ -42971,7 +36105,7 @@ "kind": "space" }, { - "text": "A list of arguments to be passed to the method.", + "text": "A value between 2 and 36 that specifies the base of the number in `string`.\r\nIf this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal.\r\nAll other strings are considered decimal.", "kind": "text" } ] @@ -42979,46 +36113,38 @@ ] }, { - "name": "bind", - "kind": "method", + "name": "RangeError", + "kind": "var", "kindModifiers": "declare", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "Function", + "text": "RangeError", "kind": "localName" }, { - "text": ".", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": "bind", - "kind": "methodName" + "text": "var", + "kind": "keyword" }, { - "text": "(", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": "this", - "kind": "parameterName" + "text": "RangeError", + "kind": "localName" }, { "text": ":", @@ -43029,20 +36155,45 @@ "kind": "space" }, { - "text": "Function", + "text": "RangeErrorConstructor", + "kind": "interfaceName" + } + ], + "documentation": [] + }, + { + "name": "ReferenceError", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "ReferenceError", "kind": "localName" }, { - "text": ",", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "thisArg", - "kind": "parameterName" + "text": "ReferenceError", + "kind": "localName" }, { "text": ":", @@ -43053,24 +36204,45 @@ "kind": "space" }, { - "text": "any", - "kind": "keyword" - }, + "text": "ReferenceErrorConstructor", + "kind": "interfaceName" + } + ], + "documentation": [] + }, + { + "name": "RegExp", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { - "text": ",", - "kind": "punctuation" + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "...", - "kind": "punctuation" + "text": "RegExp", + "kind": "localName" }, { - "text": "argArray", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "RegExp", + "kind": "localName" }, { "text": ":", @@ -43081,20 +36253,57 @@ "kind": "space" }, { - "text": "any", + "text": "RegExpConstructor", + "kind": "interfaceName" + } + ], + "documentation": [] + }, + { + "name": "return", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "return", + "kind": "keyword" + } + ] + }, + { + "name": "String", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", "kind": "keyword" }, { - "text": "[", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": "]", - "kind": "punctuation" + "text": "String", + "kind": "localName" }, { - "text": ")", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "String", + "kind": "localName" }, { "text": ":", @@ -43105,94 +36314,171 @@ "kind": "space" }, { - "text": "any", - "kind": "keyword" + "text": "StringConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "For a given function, creates a bound function that has the same body as the original function.\r\nThe this object of the bound function is associated with the specified object, and has the specified initial parameters.", + "text": "Allows manipulation and formatting of text strings and determination and location of substrings within strings.", "kind": "text" } - ], - "tags": [ + ] + }, + { + "name": "super", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "thisArg", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "An object to which the this keyword can refer inside the new function.", - "kind": "text" - } - ] - }, + "text": "super", + "kind": "keyword" + } + ] + }, + { + "name": "switch", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "argArray", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A list of arguments to be passed to the new function.", - "kind": "text" - } - ] + "text": "switch", + "kind": "keyword" } ] }, { - "name": "toString", - "kind": "method", + "name": "SyntaxError", + "kind": "var", "kindModifiers": "declare", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "(", + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "SyntaxError", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "SyntaxError", + "kind": "localName" + }, + { + "text": ":", "kind": "punctuation" }, { - "text": "method", - "kind": "text" + "text": " ", + "kind": "space" }, { - "text": ")", - "kind": "punctuation" + "text": "SyntaxErrorConstructor", + "kind": "interfaceName" + } + ], + "documentation": [] + }, + { + "name": "this", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "this", + "kind": "keyword" + } + ] + }, + { + "name": "throw", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "throw", + "kind": "keyword" + } + ] + }, + { + "name": "true", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "true", + "kind": "keyword" + } + ] + }, + { + "name": "try", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "try", + "kind": "keyword" + } + ] + }, + { + "name": "TypeError", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "Function", + "text": "TypeError", "kind": "localName" }, { - "text": ".", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": "toString", - "kind": "methodName" + "text": "var", + "kind": "keyword" }, { - "text": "(", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": ")", - "kind": "punctuation" + "text": "TypeError", + "kind": "localName" }, { "text": ":", @@ -43203,50 +36489,57 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "TypeErrorConstructor", + "kind": "interfaceName" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "typeof", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "Returns a string representation of a function.", - "kind": "text" + "text": "typeof", + "kind": "keyword" } ] }, { - "name": "length", - "kind": "property", + "name": "Uint16Array", + "kind": "var", "kindModifiers": "declare", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "(", - "kind": "punctuation" + "text": "interface", + "kind": "keyword" }, { - "text": "property", - "kind": "text" + "text": " ", + "kind": "space" }, { - "text": ")", - "kind": "punctuation" + "text": "Uint16Array", + "kind": "localName" }, { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, { - "text": "Function", - "kind": "localName" + "text": "var", + "kind": "keyword" }, { - "text": ".", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": "length", - "kind": "propertyName" + "text": "Uint16Array", + "kind": "localName" }, { "text": ":", @@ -43257,45 +36550,50 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "Uint16ArrayConstructor", + "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] }, { - "name": "arguments", - "kind": "property", + "name": "Uint32Array", + "kind": "var", "kindModifiers": "declare", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "(", - "kind": "punctuation" + "text": "interface", + "kind": "keyword" }, { - "text": "property", - "kind": "text" + "text": " ", + "kind": "space" }, { - "text": ")", - "kind": "punctuation" + "text": "Uint32Array", + "kind": "localName" }, { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, { - "text": "Function", - "kind": "localName" + "text": "var", + "kind": "keyword" }, { - "text": ".", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": "arguments", - "kind": "propertyName" + "text": "Uint32Array", + "kind": "localName" }, { "text": ":", @@ -43306,45 +36604,50 @@ "kind": "space" }, { - "text": "any", - "kind": "keyword" + "text": "Uint32ArrayConstructor", + "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] }, { - "name": "caller", - "kind": "property", + "name": "Uint8Array", + "kind": "var", "kindModifiers": "declare", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "(", - "kind": "punctuation" + "text": "interface", + "kind": "keyword" }, { - "text": "property", - "kind": "text" + "text": " ", + "kind": "space" }, { - "text": ")", - "kind": "punctuation" + "text": "Uint8Array", + "kind": "localName" }, { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, { - "text": "Function", - "kind": "localName" + "text": "var", + "kind": "keyword" }, { - "text": ".", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": "caller", - "kind": "propertyName" + "text": "Uint8Array", + "kind": "localName" }, { "text": ":", @@ -43355,55 +36658,50 @@ "kind": "space" }, { - "text": "Function", - "kind": "localName" + "text": "Uint8ArrayConstructor", + "kind": "interfaceName" } ], - "documentation": [] - } - ] - } - }, - { - "marker": { - "fileName": "/tests/cases/fourslash/completionsCommentsClassMembers.ts", - "position": 1210, - "name": "38" - }, - "completionList": { - "isGlobalCompletion": true, - "isMemberCompletion": false, - "isNewIdentifierLocation": false, - "optionalReplacementSpan": { - "start": 1210, - "length": 2 - }, - "entries": [ + "documentation": [ + { + "text": "A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] + }, { - "name": "value", - "kind": "parameter", - "kindModifiers": "", - "sortText": "11", + "name": "Uint8ClampedArray", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "(", - "kind": "punctuation" + "text": "interface", + "kind": "keyword" }, { - "text": "parameter", - "kind": "text" + "text": " ", + "kind": "space" }, { - "text": ")", - "kind": "punctuation" + "text": "Uint8ClampedArray", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "value", - "kind": "parameterName" + "text": "Uint8ClampedArray", + "kind": "localName" }, { "text": ":", @@ -43414,42 +36712,71 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "Uint8ClampedArrayConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "this is value", + "text": "A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0.\r\nIf the requested number of bytes could not be allocated an exception is raised.", "kind": "text" } ] }, { - "name": "arguments", - "kind": "local var", + "name": "undefined", + "kind": "var", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "(", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { - "text": "local var", - "kind": "text" + "text": " ", + "kind": "space" }, { - "text": ")", - "kind": "punctuation" + "text": "undefined", + "kind": "propertyName" + } + ], + "documentation": [] + }, + { + "name": "URIError", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "arguments", - "kind": "propertyName" + "text": "URIError", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "URIError", + "kind": "localName" }, { "text": ":", @@ -43460,38 +36787,77 @@ "kind": "space" }, { - "text": "IArguments", + "text": "URIErrorConstructor", "kind": "interfaceName" } ], "documentation": [] }, { - "name": "globalThis", - "kind": "module", + "name": "var", + "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "module", + "text": "var", "kind": "keyword" - }, + } + ] + }, + { + "name": "void", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": " ", - "kind": "space" - }, + "text": "void", + "kind": "keyword" + } + ] + }, + { + "name": "while", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "globalThis", - "kind": "moduleName" + "text": "while", + "kind": "keyword" } - ], - "documentation": [] + ] }, { - "name": "eval", - "kind": "function", - "kindModifiers": "declare", + "name": "with", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "with", + "kind": "keyword" + } + ] + }, + { + "name": "yield", + "kind": "keyword", + "kindModifiers": "", "sortText": "15", + "displayParts": [ + { + "text": "yield", + "kind": "keyword" + } + ] + }, + { + "name": "escape", + "kind": "function", + "kindModifiers": "deprecated,declare", + "sortText": "z15", "displayParts": [ { "text": "function", @@ -43502,7 +36868,7 @@ "kind": "space" }, { - "text": "eval", + "text": "escape", "kind": "functionName" }, { @@ -43510,7 +36876,7 @@ "kind": "punctuation" }, { - "text": "x", + "text": "string", "kind": "parameterName" }, { @@ -43538,22 +36904,31 @@ "kind": "space" }, { - "text": "any", + "text": "string", "kind": "keyword" } ], "documentation": [ { - "text": "Evaluates JavaScript code and executes it.", + "text": "Computes a new string in which certain characters have been replaced by a hexadecimal escape sequence.", "kind": "text" } ], "tags": [ + { + "name": "deprecated", + "text": [ + { + "text": "A legacy feature for browser compatibility", + "kind": "text" + } + ] + }, { "name": "param", "text": [ { - "text": "x", + "text": "string", "kind": "parameterName" }, { @@ -43561,7 +36936,7 @@ "kind": "space" }, { - "text": "A String value that contains valid JavaScript code.", + "text": "A string value", "kind": "text" } ] @@ -43569,10 +36944,10 @@ ] }, { - "name": "parseInt", + "name": "unescape", "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "deprecated,declare", + "sortText": "z15", "displayParts": [ { "text": "function", @@ -43583,7 +36958,7 @@ "kind": "space" }, { - "text": "parseInt", + "text": "unescape", "kind": "functionName" }, { @@ -43606,34 +36981,6 @@ "text": "string", "kind": "keyword" }, - { - "text": ",", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "radix", - "kind": "parameterName" - }, - { - "text": "?", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, { "text": ")", "kind": "punctuation" @@ -43647,30 +36994,22 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" } ], "documentation": [ { - "text": "Converts a string to an integer.", + "text": "Computes a new string in which hexadecimal escape sequences are replaced with the character that it represents.", "kind": "text" } ], "tags": [ { - "name": "param", + "name": "deprecated", "text": [ { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string to convert into a number.", + "text": "A legacy feature for browser compatibility", "kind": "text" } ] @@ -43679,7 +37018,7 @@ "name": "param", "text": [ { - "text": "radix", + "text": "string", "kind": "parameterName" }, { @@ -43687,41 +37026,47 @@ "kind": "space" }, { - "text": "A value between 2 and 36 that specifies the base of the number in `string`.\r\nIf this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal.\r\nAll other strings are considered decimal.", + "text": "A string value", "kind": "text" } ] } ] - }, + } + ] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/completionsCommentsClassMembers.ts", + "position": 1102, + "name": "34" + }, + "completionList": { + "isGlobalCompletion": false, + "isMemberCompletion": true, + "isNewIdentifierLocation": false, + "optionalReplacementSpan": { + "start": 1102, + "length": 2 + }, + "entries": [ { - "name": "parseFloat", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "name": "nc_s1", + "kind": "property", + "kindModifiers": "static", + "sortText": "10", "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "parseFloat", - "kind": "functionName" - }, { "text": "(", "kind": "punctuation" }, { - "text": "string", - "kind": "parameterName" + "text": "property", + "kind": "text" }, { - "text": ":", + "text": ")", "kind": "punctuation" }, { @@ -43729,13 +37074,17 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "c1", + "kind": "className" }, { - "text": ")", + "text": ".", "kind": "punctuation" }, + { + "text": "nc_s1", + "kind": "propertyName" + }, { "text": ":", "kind": "punctuation" @@ -43746,59 +37095,51 @@ }, { "text": "number", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Converts a string to a floating-point number.", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string that contains a floating-point number.", - "kind": "text" - } - ] + "kind": "keyword" } - ] + ], + "documentation": [] }, { - "name": "isNaN", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "name": "nc_s2", + "kind": "method", + "kindModifiers": "static", + "sortText": "10", "displayParts": [ { - "text": "function", - "kind": "keyword" + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "isNaN", - "kind": "functionName" + "text": "c1", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "nc_s2", + "kind": "methodName" }, { "text": "(", "kind": "punctuation" }, { - "text": "number", + "text": "b", "kind": "parameterName" }, { @@ -43826,64 +37167,28 @@ "kind": "space" }, { - "text": "boolean", + "text": "number", "kind": "keyword" } ], - "documentation": [ - { - "text": "Returns a Boolean value that indicates whether a value is the reserved value NaN (not a number).", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "number", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A numeric value.", - "kind": "text" - } - ] - } - ] + "documentation": [] }, { - "name": "isFinite", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "name": "nc_s3", + "kind": "property", + "kindModifiers": "static", + "sortText": "10", "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "isFinite", - "kind": "functionName" - }, { "text": "(", "kind": "punctuation" }, { - "text": "number", - "kind": "parameterName" + "text": "property", + "kind": "text" }, { - "text": ":", + "text": ")", "kind": "punctuation" }, { @@ -43891,13 +37196,17 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "c1", + "kind": "className" }, { - "text": ")", + "text": ".", "kind": "punctuation" }, + { + "text": "nc_s3", + "kind": "propertyName" + }, { "text": ":", "kind": "punctuation" @@ -43907,64 +37216,28 @@ "kind": "space" }, { - "text": "boolean", + "text": "number", "kind": "keyword" } ], - "documentation": [ - { - "text": "Determines whether a supplied number is finite.", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "number", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Any numeric value.", - "kind": "text" - } - ] - } - ] + "documentation": [] }, { - "name": "decodeURI", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "name": "s1", + "kind": "property", + "kindModifiers": "static", + "sortText": "10", "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "decodeURI", - "kind": "functionName" - }, { "text": "(", "kind": "punctuation" }, { - "text": "encodedURI", - "kind": "parameterName" + "text": "property", + "kind": "text" }, { - "text": ":", + "text": ")", "kind": "punctuation" }, { @@ -43972,13 +37245,17 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "c1", + "kind": "className" }, { - "text": ")", + "text": ".", "kind": "punctuation" }, + { + "text": "s1", + "kind": "propertyName" + }, { "text": ":", "kind": "punctuation" @@ -43988,60 +37265,57 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" } ], "documentation": [ { - "text": "Gets the unencoded version of an encoded Uniform Resource Identifier (URI).", + "text": "s1 is static property of c1", "kind": "text" } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "encodedURI", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI.", - "kind": "text" - } - ] - } ] }, { - "name": "decodeURIComponent", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "name": "s2", + "kind": "method", + "kindModifiers": "static", + "sortText": "10", "displayParts": [ { - "text": "function", - "kind": "keyword" + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "decodeURIComponent", - "kind": "functionName" + "text": "c1", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "s2", + "kind": "methodName" }, { "text": "(", "kind": "punctuation" }, { - "text": "encodedURIComponent", + "text": "b", "kind": "parameterName" }, { @@ -44053,7 +37327,7 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" }, { @@ -44069,64 +37343,33 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" } ], "documentation": [ { - "text": "Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).", + "text": "static sum with property", "kind": "text" } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "encodedURIComponent", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI component.", - "kind": "text" - } - ] - } ] }, { - "name": "encodeURI", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "name": "s3", + "kind": "property", + "kindModifiers": "static", + "sortText": "10", "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "encodeURI", - "kind": "functionName" - }, { "text": "(", "kind": "punctuation" }, { - "text": "uri", - "kind": "parameterName" + "text": "property", + "kind": "text" }, { - "text": ":", + "text": ")", "kind": "punctuation" }, { @@ -44134,13 +37377,17 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "c1", + "kind": "className" }, { - "text": ")", + "text": ".", "kind": "punctuation" }, + { + "text": "s3", + "kind": "propertyName" + }, { "text": ":", "kind": "punctuation" @@ -44150,60 +37397,65 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" } ], "documentation": [ { - "text": "Encodes a text string as a valid Uniform Resource Identifier (URI)", + "text": "static getter property", "kind": "text" - } - ], - "tags": [ + }, { - "name": "param", - "text": [ - { - "text": "uri", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI.", - "kind": "text" - } - ] + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "setter property 3", + "kind": "text" } ] }, { - "name": "encodeURIComponent", - "kind": "function", + "name": "apply", + "kind": "method", "kindModifiers": "declare", - "sortText": "15", + "sortText": "11", "displayParts": [ { - "text": "function", - "kind": "keyword" + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "encodeURIComponent", - "kind": "functionName" + "text": "Function", + "kind": "localName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "apply", + "kind": "methodName" }, { "text": "(", "kind": "punctuation" }, { - "text": "uriComponent", + "text": "this", "kind": "parameterName" }, { @@ -44215,15 +37467,23 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "Function", + "kind": "localName" + }, + { + "text": ",", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "|", + "text": "thisArg", + "kind": "parameterName" + }, + { + "text": ":", "kind": "punctuation" }, { @@ -44231,15 +37491,27 @@ "kind": "space" }, { - "text": "number", + "text": "any", "kind": "keyword" }, + { + "text": ",", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "|", + "text": "argArray", + "kind": "parameterName" + }, + { + "text": "?", + "kind": "punctuation" + }, + { + "text": ":", "kind": "punctuation" }, { @@ -44247,7 +37519,7 @@ "kind": "space" }, { - "text": "boolean", + "text": "any", "kind": "keyword" }, { @@ -44263,13 +37535,13 @@ "kind": "space" }, { - "text": "string", + "text": "any", "kind": "keyword" } ], "documentation": [ { - "text": "Encodes a text string as a valid component of a Uniform Resource Identifier (URI).", + "text": "Calls the function, substituting the specified object for the this value of the function, and the specified array for the arguments of the function.", "kind": "text" } ], @@ -44278,7 +37550,7 @@ "name": "param", "text": [ { - "text": "uriComponent", + "text": "thisArg", "kind": "parameterName" }, { @@ -44286,7 +37558,24 @@ "kind": "space" }, { - "text": "A value representing an encoded URI component.", + "text": "The object to be used as the this object.", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "argArray", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A set of arguments to be passed to the function.", "kind": "text" } ] @@ -44294,30 +37583,38 @@ ] }, { - "name": "escape", - "kind": "function", - "kindModifiers": "deprecated,declare", - "sortText": "23", + "name": "arguments", + "kind": "property", + "kindModifiers": "declare", + "sortText": "11", "displayParts": [ { - "text": "function", - "kind": "keyword" + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "escape", - "kind": "functionName" + "text": "Function", + "kind": "localName" }, { - "text": "(", + "text": ".", "kind": "punctuation" }, { - "text": "string", - "kind": "parameterName" + "text": "arguments", + "kind": "propertyName" }, { "text": ":", @@ -44328,15 +37625,28 @@ "kind": "space" }, { - "text": "string", + "text": "any", "kind": "keyword" - }, + } + ], + "documentation": [] + }, + { + "name": "bind", + "kind": "method", + "kindModifiers": "declare", + "sortText": "11", + "displayParts": [ { - "text": ")", + "text": "(", "kind": "punctuation" }, { - "text": ":", + "text": "method", + "kind": "text" + }, + { + "text": ")", "kind": "punctuation" }, { @@ -44344,69 +37654,75 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" - } - ], - "documentation": [ + "text": "Function", + "kind": "localName" + }, { - "text": "Computes a new string in which certain characters have been replaced by a hexadecimal escape sequence.", - "kind": "text" - } - ], - "tags": [ + "text": ".", + "kind": "punctuation" + }, { - "name": "deprecated", - "text": [ - { - "text": "A legacy feature for browser compatibility", - "kind": "text" - } - ] + "text": "bind", + "kind": "methodName" }, { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string value", - "kind": "text" - } - ] - } - ] - }, - { - "name": "unescape", - "kind": "function", - "kindModifiers": "deprecated,declare", - "sortText": "23", - "displayParts": [ + "text": "(", + "kind": "punctuation" + }, + { + "text": "this", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, { - "text": "function", - "kind": "keyword" + "text": "Function", + "kind": "localName" + }, + { + "text": ",", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "unescape", - "kind": "functionName" + "text": "thisArg", + "kind": "parameterName" }, { - "text": "(", + "text": ":", "kind": "punctuation" }, { - "text": "string", + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + }, + { + "text": ",", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "...", + "kind": "punctuation" + }, + { + "text": "argArray", "kind": "parameterName" }, { @@ -44418,9 +37734,17 @@ "kind": "space" }, { - "text": "string", + "text": "any", "kind": "keyword" }, + { + "text": "[", + "kind": "punctuation" + }, + { + "text": "]", + "kind": "punctuation" + }, { "text": ")", "kind": "punctuation" @@ -44434,22 +37758,30 @@ "kind": "space" }, { - "text": "string", + "text": "any", "kind": "keyword" } ], "documentation": [ { - "text": "Computes a new string in which hexadecimal escape sequences are replaced with the character that it represents.", + "text": "For a given function, creates a bound function that has the same body as the original function.\r\nThe this object of the bound function is associated with the specified object, and has the specified initial parameters.", "kind": "text" } ], "tags": [ { - "name": "deprecated", + "name": "param", "text": [ { - "text": "A legacy feature for browser compatibility", + "text": "thisArg", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "An object to which the this keyword can refer inside the new function.", "kind": "text" } ] @@ -44458,7 +37790,7 @@ "name": "param", "text": [ { - "text": "string", + "text": "argArray", "kind": "parameterName" }, { @@ -44466,7 +37798,7 @@ "kind": "space" }, { - "text": "A string value", + "text": "A list of arguments to be passed to the new function.", "kind": "text" } ] @@ -44474,25 +37806,21 @@ ] }, { - "name": "NaN", - "kind": "var", + "name": "call", + "kind": "method", "kindModifiers": "declare", - "sortText": "15", + "sortText": "11", "displayParts": [ { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "NaN", - "kind": "localName" + "text": "method", + "kind": "text" }, { - "text": ":", + "text": ")", "kind": "punctuation" }, { @@ -44500,78 +37828,48 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "Infinity", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "var", - "kind": "keyword" + "text": "Function", + "kind": "localName" }, { - "text": " ", - "kind": "space" + "text": ".", + "kind": "punctuation" }, { - "text": "Infinity", - "kind": "localName" + "text": "call", + "kind": "methodName" }, { - "text": ":", + "text": "(", "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "this", + "kind": "parameterName" }, { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "Object", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Object", + "text": "Function", "kind": "localName" }, { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": ",", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Object", - "kind": "localName" + "text": "thisArg", + "kind": "parameterName" }, { "text": ":", @@ -44582,50 +37880,48 @@ "kind": "space" }, { - "text": "ObjectConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "Provides functionality common to all JavaScript objects.", - "kind": "text" - } - ] - }, - { - "name": "Function", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", + "text": "any", "kind": "keyword" }, + { + "text": ",", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "Function", - "kind": "localName" + "text": "...", + "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": "argArray", + "kind": "parameterName" }, { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Function", - "kind": "localName" + "text": "any", + "kind": "keyword" + }, + { + "text": "[", + "kind": "punctuation" + }, + { + "text": "]", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -44636,50 +37932,86 @@ "kind": "space" }, { - "text": "FunctionConstructor", - "kind": "interfaceName" + "text": "any", + "kind": "keyword" } ], "documentation": [ { - "text": "Creates a new function.", + "text": "Calls a method of an object, substituting another object for the current object.", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "thisArg", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "The object to be used as the current object.", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "argArray", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A list of arguments to be passed to the method.", + "kind": "text" + } + ] + } ] }, { - "name": "String", - "kind": "var", + "name": "caller", + "kind": "property", "kindModifiers": "declare", - "sortText": "15", + "sortText": "11", "displayParts": [ { - "text": "interface", - "kind": "keyword" + "text": "(", + "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "property", + "kind": "text" }, { - "text": "String", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": " ", + "kind": "space" }, { - "text": "var", - "kind": "keyword" + "text": "Function", + "kind": "localName" }, { - "text": " ", - "kind": "space" + "text": ".", + "kind": "punctuation" }, { - "text": "String", - "kind": "localName" + "text": "caller", + "kind": "propertyName" }, { "text": ":", @@ -44690,50 +38022,45 @@ "kind": "space" }, { - "text": "StringConstructor", - "kind": "interfaceName" + "text": "Function", + "kind": "localName" } ], - "documentation": [ - { - "text": "Allows manipulation and formatting of text strings and determination and location of substrings within strings.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "Boolean", - "kind": "var", + "name": "length", + "kind": "property", "kindModifiers": "declare", - "sortText": "15", + "sortText": "11", "displayParts": [ { - "text": "interface", - "kind": "keyword" + "text": "(", + "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "property", + "kind": "text" }, { - "text": "Boolean", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": " ", + "kind": "space" }, { - "text": "var", - "kind": "keyword" + "text": "Function", + "kind": "localName" }, { - "text": " ", - "kind": "space" + "text": ".", + "kind": "punctuation" }, { - "text": "Boolean", - "kind": "localName" + "text": "length", + "kind": "propertyName" }, { "text": ":", @@ -44744,45 +38071,45 @@ "kind": "space" }, { - "text": "BooleanConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], "documentation": [] }, { - "name": "Number", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "prototype", + "kind": "property", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", - "kind": "keyword" + "text": "(", + "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "property", + "kind": "text" }, { - "text": "Number", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": " ", + "kind": "space" }, { - "text": "var", - "kind": "keyword" + "text": "c1", + "kind": "className" }, { - "text": " ", - "kind": "space" + "text": ".", + "kind": "punctuation" }, { - "text": "Number", - "kind": "localName" + "text": "prototype", + "kind": "propertyName" }, { "text": ":", @@ -44793,50 +38120,53 @@ "kind": "space" }, { - "text": "NumberConstructor", - "kind": "interfaceName" + "text": "c1", + "kind": "className" } ], - "documentation": [ - { - "text": "An object that represents a number of any kind. All JavaScript numbers are 64-bit floating-point numbers.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "Math", - "kind": "var", + "name": "toString", + "kind": "method", "kindModifiers": "declare", - "sortText": "15", + "sortText": "11", "displayParts": [ { - "text": "interface", - "kind": "keyword" + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Math", + "text": "Function", "kind": "localName" }, { - "text": "\n", - "kind": "lineBreak" + "text": ".", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "toString", + "kind": "methodName" }, { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "Math", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -44847,50 +38177,60 @@ "kind": "space" }, { - "text": "Math", - "kind": "localName" + "text": "string", + "kind": "keyword" } ], "documentation": [ { - "text": "An intrinsic object that provides basic mathematics functionality and constants.", + "text": "Returns a string representation of a function.", "kind": "text" } ] - }, + } + ] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/completionsCommentsClassMembers.ts", + "position": 1105, + "name": "35" + }, + "completionList": { + "isGlobalCompletion": false, + "isMemberCompletion": false, + "isNewIdentifierLocation": true, + "optionalReplacementSpan": { + "start": 1105, + "length": 2 + }, + "entries": [ { - "name": "Date", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "arguments", + "kind": "local var", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Date", - "kind": "localName" + "text": "(", + "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": "local var", + "kind": "text" }, { - "text": "var", - "kind": "keyword" + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Date", - "kind": "localName" + "text": "arguments", + "kind": "propertyName" }, { "text": ":", @@ -44901,25 +38241,46 @@ "kind": "space" }, { - "text": "DateConstructor", + "text": "IArguments", "kind": "interfaceName" } ], + "documentation": [] + }, + { + "name": "c1", + "kind": "class", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "c1", + "kind": "className" + } + ], "documentation": [ { - "text": "Enables basic storage and retrieval of dates and times.", + "text": "This is comment for c1", "kind": "text" } ] }, { - "name": "RegExp", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "cProperties", + "kind": "class", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "class", "kind": "keyword" }, { @@ -44927,14 +38288,19 @@ "kind": "space" }, { - "text": "RegExp", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { + "text": "cProperties", + "kind": "className" + } + ], + "documentation": [] + }, + { + "name": "cProperties_i", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { "text": "var", "kind": "keyword" }, @@ -44943,7 +38309,7 @@ "kind": "space" }, { - "text": "RegExp", + "text": "cProperties_i", "kind": "localName" }, { @@ -44955,20 +38321,20 @@ "kind": "space" }, { - "text": "RegExpConstructor", - "kind": "interfaceName" + "text": "cProperties", + "kind": "className" } ], "documentation": [] }, { - "name": "Error", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "cWithConstructorProperty", + "kind": "class", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "class", "kind": "keyword" }, { @@ -44976,13 +38342,18 @@ "kind": "space" }, { - "text": "Error", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, + "text": "cWithConstructorProperty", + "kind": "className" + } + ], + "documentation": [] + }, + { + "name": "i1", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { "text": "var", "kind": "keyword" @@ -44992,7 +38363,7 @@ "kind": "space" }, { - "text": "Error", + "text": "i1", "kind": "localName" }, { @@ -45004,20 +38375,20 @@ "kind": "space" }, { - "text": "ErrorConstructor", - "kind": "interfaceName" + "text": "c1", + "kind": "className" } ], "documentation": [] }, { - "name": "EvalError", + "name": "i1_c", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "var", "kind": "keyword" }, { @@ -45025,48 +38396,40 @@ "kind": "space" }, { - "text": "EvalError", + "text": "i1_c", "kind": "localName" }, { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "EvalError", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" + "text": "typeof", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "EvalErrorConstructor", - "kind": "interfaceName" + "text": "c1", + "kind": "className" } ], "documentation": [] }, { - "name": "RangeError", + "name": "i1_f", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "var", "kind": "keyword" }, { @@ -45074,24 +38437,24 @@ "kind": "space" }, { - "text": "RangeError", + "text": "i1_f", "kind": "localName" }, { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "RangeError", - "kind": "localName" + "text": "(", + "kind": "punctuation" + }, + { + "text": "b", + "kind": "parameterName" }, { "text": ":", @@ -45102,34 +38465,38 @@ "kind": "space" }, { - "text": "RangeErrorConstructor", - "kind": "interfaceName" - } - ], - "documentation": [] - }, - { - "name": "ReferenceError", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", + "text": "number", "kind": "keyword" }, + { + "text": ")", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "ReferenceError", - "kind": "localName" + "text": "=>", + "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": " ", + "kind": "space" }, + { + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "i1_nc_p", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { "text": "var", "kind": "keyword" @@ -45139,7 +38506,7 @@ "kind": "space" }, { - "text": "ReferenceError", + "text": "i1_nc_p", "kind": "localName" }, { @@ -45151,20 +38518,20 @@ "kind": "space" }, { - "text": "ReferenceErrorConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], "documentation": [] }, { - "name": "SyntaxError", + "name": "i1_ncf", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "var", "kind": "keyword" }, { @@ -45172,24 +38539,24 @@ "kind": "space" }, { - "text": "SyntaxError", + "text": "i1_ncf", "kind": "localName" }, { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "SyntaxError", - "kind": "localName" + "text": "(", + "kind": "punctuation" + }, + { + "text": "b", + "kind": "parameterName" }, { "text": ":", @@ -45200,34 +38567,38 @@ "kind": "space" }, { - "text": "SyntaxErrorConstructor", - "kind": "interfaceName" - } - ], - "documentation": [] - }, - { - "name": "TypeError", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", + "text": "number", "kind": "keyword" }, + { + "text": ")", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "TypeError", - "kind": "localName" + "text": "=>", + "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": " ", + "kind": "space" }, + { + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "i1_ncprop", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { "text": "var", "kind": "keyword" @@ -45237,7 +38608,7 @@ "kind": "space" }, { - "text": "TypeError", + "text": "i1_ncprop", "kind": "localName" }, { @@ -45249,34 +38620,18 @@ "kind": "space" }, { - "text": "TypeErrorConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], "documentation": [] }, { - "name": "URIError", + "name": "i1_ncr", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "URIError", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, { "text": "var", "kind": "keyword" @@ -45286,7 +38641,7 @@ "kind": "space" }, { - "text": "URIError", + "text": "i1_ncr", "kind": "localName" }, { @@ -45298,34 +38653,18 @@ "kind": "space" }, { - "text": "URIErrorConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], "documentation": [] }, { - "name": "JSON", + "name": "i1_p", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "JSON", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, { "text": "var", "kind": "keyword" @@ -45335,7 +38674,7 @@ "kind": "space" }, { - "text": "JSON", + "text": "i1_p", "kind": "localName" }, { @@ -45347,25 +38686,20 @@ "kind": "space" }, { - "text": "JSON", - "kind": "localName" + "text": "number", + "kind": "keyword" } ], - "documentation": [ - { - "text": "An intrinsic object that provides functions to convert JavaScript values to and from the JavaScript Object Notation (JSON) format.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "Array", + "name": "i1_prop", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "var", "kind": "keyword" }, { @@ -45373,25 +38707,30 @@ "kind": "space" }, { - "text": "Array", + "text": "i1_prop", "kind": "localName" }, { - "text": "<", + "text": ":", "kind": "punctuation" }, { - "text": "T", - "kind": "typeParameterName" - }, - { - "text": ">", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": "\n", - "kind": "lineBreak" - }, + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "i1_r", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { "text": "var", "kind": "keyword" @@ -45401,7 +38740,7 @@ "kind": "space" }, { - "text": "Array", + "text": "i1_r", "kind": "localName" }, { @@ -45413,20 +38752,20 @@ "kind": "space" }, { - "text": "ArrayConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], "documentation": [] }, { - "name": "ArrayBuffer", + "name": "i1_s_f", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "var", "kind": "keyword" }, { @@ -45434,24 +38773,24 @@ "kind": "space" }, { - "text": "ArrayBuffer", + "text": "i1_s_f", "kind": "localName" }, { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "ArrayBuffer", - "kind": "localName" + "text": "(", + "kind": "punctuation" + }, + { + "text": "b", + "kind": "parameterName" }, { "text": ":", @@ -45462,39 +38801,38 @@ "kind": "space" }, { - "text": "ArrayBufferConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "Represents a raw buffer of binary data, which is used to store data for the\r\ndifferent typed arrays. ArrayBuffers cannot be read from or written to directly,\r\nbut can be passed to a typed array or DataView Object to interpret the raw\r\nbuffer as needed.", - "kind": "text" - } - ] - }, - { - "name": "DataView", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", + "text": "number", "kind": "keyword" }, + { + "text": ")", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "DataView", - "kind": "localName" + "text": "=>", + "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": " ", + "kind": "space" }, + { + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "i1_s_nc_p", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { "text": "var", "kind": "keyword" @@ -45504,7 +38842,7 @@ "kind": "space" }, { - "text": "DataView", + "text": "i1_s_nc_p", "kind": "localName" }, { @@ -45516,20 +38854,20 @@ "kind": "space" }, { - "text": "DataViewConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], "documentation": [] }, { - "name": "Int8Array", + "name": "i1_s_ncf", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "var", "kind": "keyword" }, { @@ -45537,24 +38875,24 @@ "kind": "space" }, { - "text": "Int8Array", + "text": "i1_s_ncf", "kind": "localName" }, { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Int8Array", - "kind": "localName" + "text": "(", + "kind": "punctuation" + }, + { + "text": "b", + "kind": "parameterName" }, { "text": ":", @@ -45565,39 +38903,38 @@ "kind": "space" }, { - "text": "Int8ArrayConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "A typed array of 8-bit integer values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] - }, - { - "name": "Uint8Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", + "text": "number", "kind": "keyword" }, + { + "text": ")", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "Uint8Array", - "kind": "localName" + "text": "=>", + "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": " ", + "kind": "space" }, + { + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "i1_s_ncprop", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { "text": "var", "kind": "keyword" @@ -45607,7 +38944,7 @@ "kind": "space" }, { - "text": "Uint8Array", + "text": "i1_s_ncprop", "kind": "localName" }, { @@ -45619,25 +38956,20 @@ "kind": "space" }, { - "text": "Uint8ArrayConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], - "documentation": [ - { - "text": "A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "Uint8ClampedArray", + "name": "i1_s_ncr", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "var", "kind": "keyword" }, { @@ -45645,13 +38977,30 @@ "kind": "space" }, { - "text": "Uint8ClampedArray", + "text": "i1_s_ncr", "kind": "localName" }, { - "text": "\n", - "kind": "lineBreak" + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" }, + { + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "i1_s_p", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { "text": "var", "kind": "keyword" @@ -45661,7 +39010,7 @@ "kind": "space" }, { - "text": "Uint8ClampedArray", + "text": "i1_s_p", "kind": "localName" }, { @@ -45673,25 +39022,20 @@ "kind": "space" }, { - "text": "Uint8ClampedArrayConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], - "documentation": [ - { - "text": "A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0.\r\nIf the requested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "Int16Array", + "name": "i1_s_prop", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "var", "kind": "keyword" }, { @@ -45699,13 +39043,30 @@ "kind": "space" }, { - "text": "Int16Array", + "text": "i1_s_prop", "kind": "localName" }, { - "text": "\n", - "kind": "lineBreak" + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" }, + { + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "i1_s_r", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { "text": "var", "kind": "keyword" @@ -45715,7 +39076,7 @@ "kind": "space" }, { - "text": "Int16Array", + "text": "i1_s_r", "kind": "localName" }, { @@ -45727,19 +39088,14 @@ "kind": "space" }, { - "text": "Int16ArrayConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], - "documentation": [ - { - "text": "A typed array of 16-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "Uint16Array", + "name": "Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -45753,9 +39109,21 @@ "kind": "space" }, { - "text": "Uint16Array", + "text": "Array", "kind": "localName" }, + { + "text": "<", + "kind": "punctuation" + }, + { + "text": "T", + "kind": "typeParameterName" + }, + { + "text": ">", + "kind": "punctuation" + }, { "text": "\n", "kind": "lineBreak" @@ -45769,7 +39137,7 @@ "kind": "space" }, { - "text": "Uint16Array", + "text": "Array", "kind": "localName" }, { @@ -45781,19 +39149,14 @@ "kind": "space" }, { - "text": "Uint16ArrayConstructor", + "text": "ArrayConstructor", "kind": "interfaceName" } ], - "documentation": [ - { - "text": "A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "Int32Array", + "name": "ArrayBuffer", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -45807,7 +39170,7 @@ "kind": "space" }, { - "text": "Int32Array", + "text": "ArrayBuffer", "kind": "localName" }, { @@ -45823,7 +39186,7 @@ "kind": "space" }, { - "text": "Int32Array", + "text": "ArrayBuffer", "kind": "localName" }, { @@ -45835,19 +39198,55 @@ "kind": "space" }, { - "text": "Int32ArrayConstructor", + "text": "ArrayBufferConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "A typed array of 32-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "text": "Represents a raw buffer of binary data, which is used to store data for the\r\ndifferent typed arrays. ArrayBuffers cannot be read from or written to directly,\r\nbut can be passed to a typed array or DataView Object to interpret the raw\r\nbuffer as needed.", "kind": "text" } ] }, { - "name": "Uint32Array", + "name": "as", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "as", + "kind": "keyword" + } + ] + }, + { + "name": "async", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "async", + "kind": "keyword" + } + ] + }, + { + "name": "await", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "await", + "kind": "keyword" + } + ] + }, + { + "name": "Boolean", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -45861,7 +39260,7 @@ "kind": "space" }, { - "text": "Uint32Array", + "text": "Boolean", "kind": "localName" }, { @@ -45877,7 +39276,7 @@ "kind": "space" }, { - "text": "Uint32Array", + "text": "Boolean", "kind": "localName" }, { @@ -45889,19 +39288,86 @@ "kind": "space" }, { - "text": "Uint32ArrayConstructor", + "text": "BooleanConstructor", "kind": "interfaceName" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "break", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" + "text": "break", + "kind": "keyword" } ] }, { - "name": "Float32Array", + "name": "case", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "case", + "kind": "keyword" + } + ] + }, + { + "name": "catch", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "catch", + "kind": "keyword" + } + ] + }, + { + "name": "class", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + } + ] + }, + { + "name": "const", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + } + ] + }, + { + "name": "continue", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "continue", + "kind": "keyword" + } + ] + }, + { + "name": "DataView", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -45915,7 +39381,7 @@ "kind": "space" }, { - "text": "Float32Array", + "text": "DataView", "kind": "localName" }, { @@ -45931,7 +39397,7 @@ "kind": "space" }, { - "text": "Float32Array", + "text": "DataView", "kind": "localName" }, { @@ -45943,19 +39409,14 @@ "kind": "space" }, { - "text": "Float32ArrayConstructor", + "text": "DataViewConstructor", "kind": "interfaceName" } ], - "documentation": [ - { - "text": "A typed array of 32-bit float values. The contents are initialized to 0. If the requested number\r\nof bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "Float64Array", + "name": "Date", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -45969,7 +39430,7 @@ "kind": "space" }, { - "text": "Float64Array", + "text": "Date", "kind": "localName" }, { @@ -45985,7 +39446,7 @@ "kind": "space" }, { - "text": "Float64Array", + "text": "Date", "kind": "localName" }, { @@ -45997,46 +39458,37 @@ "kind": "space" }, { - "text": "Float64ArrayConstructor", + "text": "DateConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "A typed array of 64-bit float values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", + "text": "Enables basic storage and retrieval of dates and times.", "kind": "text" } ] }, { - "name": "Intl", - "kind": "module", - "kindModifiers": "declare", + "name": "debugger", + "kind": "keyword", + "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "namespace", + "text": "debugger", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Intl", - "kind": "moduleName" } - ], - "documentation": [] + ] }, { - "name": "c1", - "kind": "class", - "kindModifiers": "", - "sortText": "11", + "name": "decodeURI", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "class", + "text": "function", "kind": "keyword" }, { @@ -46044,34 +39496,16 @@ "kind": "space" }, { - "text": "c1", - "kind": "className" - } - ], - "documentation": [ - { - "text": "This is comment for c1", - "kind": "text" - } - ] - }, - { - "name": "i1", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "var", - "kind": "keyword" + "text": "decodeURI", + "kind": "functionName" }, { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "i1", - "kind": "localName" + "text": "encodedURI", + "kind": "parameterName" }, { "text": ":", @@ -46082,29 +39516,12 @@ "kind": "space" }, { - "text": "c1", - "kind": "className" - } - ], - "documentation": [] - }, - { - "name": "i1_p", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "var", + "text": "string", "kind": "keyword" }, { - "text": " ", - "kind": "space" - }, - { - "text": "i1_p", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -46115,20 +39532,44 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Gets the unencoded version of an encoded Uniform Resource Identifier (URI).", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "encodedURI", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI.", + "kind": "text" + } + ] + } + ] }, { - "name": "i1_f", - "kind": "var", - "kindModifiers": "", - "sortText": "11", + "name": "decodeURIComponent", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "function", "kind": "keyword" }, { @@ -46136,23 +39577,15 @@ "kind": "space" }, { - "text": "i1_f", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "decodeURIComponent", + "kind": "functionName" }, { "text": "(", "kind": "punctuation" }, { - "text": "b", + "text": "encodedURIComponent", "kind": "parameterName" }, { @@ -46164,7 +39597,7 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" }, { @@ -46172,11 +39605,7 @@ "kind": "punctuation" }, { - "text": " ", - "kind": "space" - }, - { - "text": "=>", + "text": ":", "kind": "punctuation" }, { @@ -46184,53 +39613,92 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "encodedURIComponent", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI component.", + "kind": "text" + } + ] + } + ] }, { - "name": "i1_r", - "kind": "var", + "name": "default", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "default", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "i1_r", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, + } + ] + }, + { + "name": "delete", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": " ", - "kind": "space" - }, + "text": "delete", + "kind": "keyword" + } + ] + }, + { + "name": "do", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "number", + "text": "do", "kind": "keyword" } - ], - "documentation": [] + ] }, { - "name": "i1_prop", - "kind": "var", + "name": "else", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "else", + "kind": "keyword" + } + ] + }, + { + "name": "encodeURI", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "function", "kind": "keyword" }, { @@ -46238,41 +39706,32 @@ "kind": "space" }, { - "text": "i1_prop", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "encodeURI", + "kind": "functionName" }, { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_nc_p", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ + "text": "(", + "kind": "punctuation" + }, { - "text": "var", - "kind": "keyword" + "text": "uri", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "i1_nc_p", - "kind": "localName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -46283,20 +39742,44 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Encodes a text string as a valid Uniform Resource Identifier (URI)", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "uri", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI.", + "kind": "text" + } + ] + } + ] }, { - "name": "i1_ncf", - "kind": "var", - "kindModifiers": "", - "sortText": "11", + "name": "encodeURIComponent", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "function", "kind": "keyword" }, { @@ -46304,23 +39787,15 @@ "kind": "space" }, { - "text": "i1_ncf", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "encodeURIComponent", + "kind": "functionName" }, { "text": "(", "kind": "punctuation" }, { - "text": "b", + "text": "uriComponent", "kind": "parameterName" }, { @@ -46332,19 +39807,15 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" }, - { - "text": ")", - "kind": "punctuation" - }, { "text": " ", "kind": "space" }, { - "text": "=>", + "text": "|", "kind": "punctuation" }, { @@ -46354,27 +39825,26 @@ { "text": "number", "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_ncr", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ + }, { - "text": "var", - "kind": "keyword" + "text": " ", + "kind": "space" + }, + { + "text": "|", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "i1_ncr", - "kind": "localName" + "text": "boolean", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -46385,20 +39855,56 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Encodes a text string as a valid component of a Uniform Resource Identifier (URI).", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "uriComponent", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI component.", + "kind": "text" + } + ] + } + ] }, { - "name": "i1_ncprop", - "kind": "var", + "name": "enum", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "enum", + "kind": "keyword" + } + ] + }, + { + "name": "Error", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", "kind": "keyword" }, { @@ -46406,30 +39912,13 @@ "kind": "space" }, { - "text": "i1_ncprop", + "text": "Error", "kind": "localName" }, { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_s_p", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ { "text": "var", "kind": "keyword" @@ -46439,7 +39928,7 @@ "kind": "space" }, { - "text": "i1_s_p", + "text": "Error", "kind": "localName" }, { @@ -46451,20 +39940,20 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "ErrorConstructor", + "kind": "interfaceName" } ], "documentation": [] }, { - "name": "i1_s_f", - "kind": "var", - "kindModifiers": "", - "sortText": "11", + "name": "eval", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "function", "kind": "keyword" }, { @@ -46472,23 +39961,15 @@ "kind": "space" }, { - "text": "i1_s_f", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "eval", + "kind": "functionName" }, { "text": "(", "kind": "punctuation" }, { - "text": "b", + "text": "x", "kind": "parameterName" }, { @@ -46500,7 +39981,7 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" }, { @@ -46508,11 +39989,7 @@ "kind": "punctuation" }, { - "text": " ", - "kind": "space" - }, - { - "text": "=>", + "text": ":", "kind": "punctuation" }, { @@ -46520,20 +39997,44 @@ "kind": "space" }, { - "text": "number", + "text": "any", "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Evaluates JavaScript code and executes it.", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "x", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A String value that contains valid JavaScript code.", + "kind": "text" + } + ] + } + ] }, { - "name": "i1_s_r", + "name": "EvalError", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -46541,30 +40042,13 @@ "kind": "space" }, { - "text": "i1_s_r", + "text": "EvalError", "kind": "localName" }, { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_s_prop", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ { "text": "var", "kind": "keyword" @@ -46574,7 +40058,7 @@ "kind": "space" }, { - "text": "i1_s_prop", + "text": "EvalError", "kind": "localName" }, { @@ -46586,53 +40070,68 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "EvalErrorConstructor", + "kind": "interfaceName" } ], "documentation": [] }, { - "name": "i1_s_nc_p", - "kind": "var", + "name": "export", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "export", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "i1_s_nc_p", - "kind": "localName" - }, + } + ] + }, + { + "name": "extends", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": ":", - "kind": "punctuation" - }, + "text": "extends", + "kind": "keyword" + } + ] + }, + { + "name": "false", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": " ", - "kind": "space" - }, + "text": "false", + "kind": "keyword" + } + ] + }, + { + "name": "finally", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "number", + "text": "finally", "kind": "keyword" } - ], - "documentation": [] + ] }, { - "name": "i1_s_ncf", + "name": "Float32Array", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -46640,47 +40139,27 @@ "kind": "space" }, { - "text": "i1_s_ncf", + "text": "Float32Array", "kind": "localName" }, { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "b", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "Float32Array", + "kind": "localName" }, { - "text": "=>", + "text": ":", "kind": "punctuation" }, { @@ -46688,20 +40167,25 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "Float32ArrayConstructor", + "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "A typed array of 32-bit float values. The contents are initialized to 0. If the requested number\r\nof bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] }, { - "name": "i1_s_ncr", + "name": "Float64Array", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -46709,30 +40193,13 @@ "kind": "space" }, { - "text": "i1_s_ncr", + "text": "Float64Array", "kind": "localName" }, { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_s_ncprop", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ { "text": "var", "kind": "keyword" @@ -46742,7 +40209,7 @@ "kind": "space" }, { - "text": "i1_s_ncprop", + "text": "Float64Array", "kind": "localName" }, { @@ -46754,61 +40221,49 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "Float64ArrayConstructor", + "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "A typed array of 64-bit float values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] }, { - "name": "i1_c", - "kind": "var", + "name": "for", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "for", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "i1_c", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, + } + ] + }, + { + "name": "function", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "typeof", + "text": "function", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "c1", - "kind": "className" } - ], - "documentation": [] + ] }, { - "name": "cProperties", - "kind": "class", - "kindModifiers": "", - "sortText": "11", + "name": "Function", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "class", + "text": "interface", "kind": "keyword" }, { @@ -46816,18 +40271,13 @@ "kind": "space" }, { - "text": "cProperties", - "kind": "className" - } - ], - "documentation": [] - }, - { - "name": "cProperties_i", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ + "text": "Function", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, { "text": "var", "kind": "keyword" @@ -46837,7 +40287,7 @@ "kind": "space" }, { - "text": "cProperties_i", + "text": "Function", "kind": "localName" }, { @@ -46849,41 +40299,25 @@ "kind": "space" }, { - "text": "cProperties", - "kind": "className" + "text": "FunctionConstructor", + "kind": "interfaceName" } ], - "documentation": [] - }, - { - "name": "cWithConstructorProperty", - "kind": "class", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, + "documentation": [ { - "text": "cWithConstructorProperty", - "kind": "className" + "text": "Creates a new function.", + "kind": "text" } - ], - "documentation": [] + ] }, { - "name": "undefined", - "kind": "var", + "name": "globalThis", + "kind": "module", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "var", + "text": "module", "kind": "keyword" }, { @@ -46891,477 +40325,744 @@ "kind": "space" }, { - "text": "undefined", - "kind": "propertyName" + "text": "globalThis", + "kind": "moduleName" } ], "documentation": [] }, { - "name": "break", + "name": "if", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "break", + "text": "if", "kind": "keyword" } ] }, { - "name": "case", + "name": "implements", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "case", + "text": "implements", "kind": "keyword" } ] }, { - "name": "catch", + "name": "import", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "catch", + "text": "import", "kind": "keyword" } ] }, { - "name": "class", + "name": "in", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "class", + "text": "in", "kind": "keyword" } ] }, { - "name": "const", - "kind": "keyword", - "kindModifiers": "", + "name": "Infinity", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "const", + "text": "var", "kind": "keyword" - } - ] - }, - { - "name": "continue", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "continue", + "text": " ", + "kind": "space" + }, + { + "text": "Infinity", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" } - ] + ], + "documentation": [] }, { - "name": "debugger", + "name": "instanceof", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "debugger", + "text": "instanceof", "kind": "keyword" } ] }, { - "name": "default", - "kind": "keyword", - "kindModifiers": "", + "name": "Int16Array", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "default", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "delete", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "delete", + "text": " ", + "kind": "space" + }, + { + "text": "Int16Array", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Int16Array", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Int16ArrayConstructor", + "kind": "interfaceName" } - ] - }, - { - "name": "do", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "do", - "kind": "keyword" + "text": "A typed array of 16-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" } ] }, { - "name": "else", - "kind": "keyword", - "kindModifiers": "", + "name": "Int32Array", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "else", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "enum", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "enum", + "text": " ", + "kind": "space" + }, + { + "text": "Int32Array", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Int32Array", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Int32ArrayConstructor", + "kind": "interfaceName" } - ] - }, - { - "name": "export", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "export", - "kind": "keyword" + "text": "A typed array of 32-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" } ] }, { - "name": "extends", - "kind": "keyword", - "kindModifiers": "", + "name": "Int8Array", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "extends", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "false", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "false", + "text": " ", + "kind": "space" + }, + { + "text": "Int8Array", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Int8Array", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Int8ArrayConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ + { + "text": "A typed array of 8-bit integer values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", + "kind": "text" } ] }, { - "name": "finally", + "name": "interface", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "finally", + "text": "interface", "kind": "keyword" } ] }, { - "name": "for", - "kind": "keyword", - "kindModifiers": "", + "name": "Intl", + "kind": "module", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "for", + "text": "namespace", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Intl", + "kind": "moduleName" } - ] + ], + "documentation": [] }, { - "name": "function", - "kind": "keyword", - "kindModifiers": "", + "name": "isFinite", + "kind": "function", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { "text": "function", "kind": "keyword" - } - ] - }, - { - "name": "if", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "if", + "text": " ", + "kind": "space" + }, + { + "text": "isFinite", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "number", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" - } - ] - }, - { - "name": "import", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "import", + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "boolean", "kind": "keyword" } - ] - }, - { - "name": "in", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "in", - "kind": "keyword" + "text": "Determines whether a supplied number is finite.", + "kind": "text" } - ] - }, - { - "name": "instanceof", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "tags": [ { - "text": "instanceof", - "kind": "keyword" + "name": "param", + "text": [ + { + "text": "number", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Any numeric value.", + "kind": "text" + } + ] } ] }, { - "name": "new", - "kind": "keyword", - "kindModifiers": "", + "name": "isNaN", + "kind": "function", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "new", + "text": "function", "kind": "keyword" - } - ] - }, - { - "name": "null", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "null", + "text": " ", + "kind": "space" + }, + { + "text": "isNaN", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "number", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" - } - ] - }, - { - "name": "return", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "return", + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "boolean", "kind": "keyword" } + ], + "documentation": [ + { + "text": "Returns a Boolean value that indicates whether a value is the reserved value NaN (not a number).", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "number", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A numeric value.", + "kind": "text" + } + ] + } ] }, { - "name": "super", - "kind": "keyword", - "kindModifiers": "", + "name": "JSON", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "super", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "switch", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "switch", + "text": " ", + "kind": "space" + }, + { + "text": "JSON", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "JSON", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "JSON", + "kind": "localName" } - ] - }, - { - "name": "this", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "this", - "kind": "keyword" + "text": "An intrinsic object that provides functions to convert JavaScript values to and from the JavaScript Object Notation (JSON) format.", + "kind": "text" } ] }, { - "name": "throw", + "name": "let", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "throw", + "text": "let", "kind": "keyword" } ] }, { - "name": "true", - "kind": "keyword", - "kindModifiers": "", + "name": "Math", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "true", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "try", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "try", + "text": " ", + "kind": "space" + }, + { + "text": "Math", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Math", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Math", + "kind": "localName" } - ] - }, - { - "name": "typeof", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "typeof", - "kind": "keyword" + "text": "An intrinsic object that provides basic mathematics functionality and constants.", + "kind": "text" } ] }, { - "name": "var", - "kind": "keyword", - "kindModifiers": "", + "name": "NaN", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { "text": "var", "kind": "keyword" - } - ] - }, - { - "name": "void", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "void", + "text": " ", + "kind": "space" + }, + { + "text": "NaN", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" } - ] + ], + "documentation": [] }, { - "name": "while", + "name": "new", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "while", + "text": "new", "kind": "keyword" } ] }, { - "name": "with", + "name": "null", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "with", + "text": "null", "kind": "keyword" } ] }, { - "name": "implements", - "kind": "keyword", - "kindModifiers": "", + "name": "Number", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "implements", + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Number", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Number", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "NumberConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ + { + "text": "An object that represents a number of any kind. All JavaScript numbers are 64-bit floating-point numbers.", + "kind": "text" } ] }, { - "name": "interface", - "kind": "keyword", - "kindModifiers": "", + "name": "Object", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "let", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "let", + "text": " ", + "kind": "space" + }, + { + "text": "Object", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Object", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "ObjectConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ + { + "text": "Provides functionality common to all JavaScript objects.", + "kind": "text" } ] }, @@ -47378,104 +41079,245 @@ ] }, { - "name": "yield", - "kind": "keyword", - "kindModifiers": "", + "name": "parseFloat", + "kind": "function", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "yield", + "text": "function", "kind": "keyword" - } - ] - }, - { - "name": "as", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "as", + "text": " ", + "kind": "space" + }, + { + "text": "parseFloat", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "string", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", "kind": "keyword" - } - ] - }, - { - "name": "async", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "async", + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" } + ], + "documentation": [ + { + "text": "Converts a string to a floating-point number.", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string that contains a floating-point number.", + "kind": "text" + } + ] + } ] }, { - "name": "await", - "kind": "keyword", - "kindModifiers": "", + "name": "parseInt", + "kind": "function", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "await", + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "parseInt", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "string", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": ",", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "radix", + "kind": "parameterName" + }, + { + "text": "?", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" } - ] - } - ] - } - }, - { - "marker": { - "fileName": "/tests/cases/fourslash/completionsCommentsClassMembers.ts", - "position": 1213, - "name": "39" - }, - "completionList": { - "isGlobalCompletion": false, - "isMemberCompletion": true, - "isNewIdentifierLocation": false, - "optionalReplacementSpan": { - "start": 1213, - "length": 2 - }, - "entries": [ + ], + "documentation": [ + { + "text": "Converts a string to an integer.", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string to convert into a number.", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "radix", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value between 2 and 36 that specifies the base of the number in `string`.\r\nIf this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal.\r\nAll other strings are considered decimal.", + "kind": "text" + } + ] + } + ] + }, { - "name": "prototype", - "kind": "property", - "kindModifiers": "", - "sortText": "11", + "name": "RangeError", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "(", - "kind": "punctuation" + "text": "interface", + "kind": "keyword" }, { - "text": "property", - "kind": "text" + "text": " ", + "kind": "space" }, { - "text": ")", - "kind": "punctuation" + "text": "RangeError", + "kind": "localName" }, { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, { - "text": "c1", - "kind": "className" + "text": "var", + "kind": "keyword" }, { - "text": ".", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": "prototype", - "kind": "propertyName" + "text": "RangeError", + "kind": "localName" }, { "text": ":", @@ -47486,45 +41328,45 @@ "kind": "space" }, { - "text": "c1", - "kind": "className" + "text": "RangeErrorConstructor", + "kind": "interfaceName" } ], "documentation": [] }, { - "name": "s1", - "kind": "property", - "kindModifiers": "static", - "sortText": "10", + "name": "ReferenceError", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "(", - "kind": "punctuation" + "text": "interface", + "kind": "keyword" }, { - "text": "property", - "kind": "text" + "text": " ", + "kind": "space" }, { - "text": ")", - "kind": "punctuation" + "text": "ReferenceError", + "kind": "localName" }, { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, { - "text": "c1", - "kind": "className" + "text": "var", + "kind": "keyword" }, { - "text": ".", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": "s1", - "kind": "propertyName" + "text": "ReferenceError", + "kind": "localName" }, { "text": ":", @@ -47535,74 +41377,45 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "ReferenceErrorConstructor", + "kind": "interfaceName" } ], - "documentation": [ - { - "text": "s1 is static property of c1", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "s2", - "kind": "method", - "kindModifiers": "static", - "sortText": "10", + "name": "RegExp", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "c1", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "s2", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" + "text": "RegExp", + "kind": "localName" }, { - "text": "b", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "RegExp", + "kind": "localName" }, { "text": ":", @@ -47613,50 +41426,57 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "RegExpConstructor", + "kind": "interfaceName" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "return", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "static sum with property", - "kind": "text" + "text": "return", + "kind": "keyword" } ] }, { - "name": "s3", - "kind": "property", - "kindModifiers": "static", - "sortText": "10", + "name": "String", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "(", - "kind": "punctuation" + "text": "interface", + "kind": "keyword" }, { - "text": "property", - "kind": "text" + "text": " ", + "kind": "space" }, { - "text": ")", - "kind": "punctuation" + "text": "String", + "kind": "localName" }, { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, { - "text": "c1", - "kind": "className" + "text": "var", + "kind": "keyword" }, { - "text": ".", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": "s3", - "kind": "propertyName" + "text": "String", + "kind": "localName" }, { "text": ":", @@ -47667,58 +41487,74 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "StringConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "static getter property", + "text": "Allows manipulation and formatting of text strings and determination and location of substrings within strings.", "kind": "text" - }, + } + ] + }, + { + "name": "super", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "\n", - "kind": "lineBreak" - }, + "text": "super", + "kind": "keyword" + } + ] + }, + { + "name": "switch", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "setter property 3", - "kind": "text" + "text": "switch", + "kind": "keyword" } ] }, { - "name": "nc_s1", - "kind": "property", - "kindModifiers": "static", - "sortText": "10", + "name": "SyntaxError", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "(", - "kind": "punctuation" + "text": "interface", + "kind": "keyword" }, { - "text": "property", - "kind": "text" + "text": " ", + "kind": "space" }, { - "text": ")", - "kind": "punctuation" + "text": "SyntaxError", + "kind": "localName" }, { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, { - "text": "c1", - "kind": "className" + "text": "var", + "kind": "keyword" }, { - "text": ".", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": "nc_s1", - "kind": "propertyName" + "text": "SyntaxError", + "kind": "localName" }, { "text": ":", @@ -47729,69 +41565,93 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "SyntaxErrorConstructor", + "kind": "interfaceName" } ], "documentation": [] }, { - "name": "nc_s2", - "kind": "method", - "kindModifiers": "static", - "sortText": "10", + "name": "this", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", "displayParts": [ { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, + "text": "this", + "kind": "keyword" + } + ] + }, + { + "name": "throw", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": ")", - "kind": "punctuation" - }, + "text": "throw", + "kind": "keyword" + } + ] + }, + { + "name": "true", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": " ", - "kind": "space" - }, + "text": "true", + "kind": "keyword" + } + ] + }, + { + "name": "try", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "c1", - "kind": "className" - }, + "text": "try", + "kind": "keyword" + } + ] + }, + { + "name": "TypeError", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { - "text": ".", - "kind": "punctuation" + "text": "interface", + "kind": "keyword" }, { - "text": "nc_s2", - "kind": "methodName" + "text": " ", + "kind": "space" }, { - "text": "(", - "kind": "punctuation" + "text": "TypeError", + "kind": "localName" }, { - "text": "b", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "TypeError", + "kind": "localName" }, { "text": ":", @@ -47802,45 +41662,57 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "TypeErrorConstructor", + "kind": "interfaceName" } ], "documentation": [] }, { - "name": "nc_s3", - "kind": "property", - "kindModifiers": "static", - "sortText": "10", + "name": "typeof", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", "displayParts": [ { - "text": "(", - "kind": "punctuation" + "text": "typeof", + "kind": "keyword" + } + ] + }, + { + "name": "Uint16Array", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" }, { - "text": "property", - "kind": "text" + "text": " ", + "kind": "space" }, { - "text": ")", - "kind": "punctuation" + "text": "Uint16Array", + "kind": "localName" }, { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, { - "text": "c1", - "kind": "className" + "text": "var", + "kind": "keyword" }, { - "text": ".", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": "nc_s3", - "kind": "propertyName" + "text": "Uint16Array", + "kind": "localName" }, { "text": ":", @@ -47851,77 +41723,104 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "Uint16ArrayConstructor", + "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] }, { - "name": "apply", - "kind": "method", + "name": "Uint32Array", + "kind": "var", "kindModifiers": "declare", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "(", - "kind": "punctuation" + "text": "interface", + "kind": "keyword" }, { - "text": "method", - "kind": "text" + "text": " ", + "kind": "space" }, { - "text": ")", - "kind": "punctuation" + "text": "Uint32Array", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "Function", + "text": "Uint32Array", "kind": "localName" }, { - "text": ".", + "text": ":", "kind": "punctuation" }, { - "text": "apply", - "kind": "methodName" + "text": " ", + "kind": "space" }, { - "text": "(", - "kind": "punctuation" - }, + "text": "Uint32ArrayConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ { - "text": "this", - "kind": "parameterName" - }, + "text": "A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] + }, + { + "name": "Uint8Array", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { - "text": ":", - "kind": "punctuation" + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "Function", + "text": "Uint8Array", "kind": "localName" }, { - "text": ",", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "thisArg", - "kind": "parameterName" + "text": "Uint8Array", + "kind": "localName" }, { "text": ":", @@ -47932,40 +41831,50 @@ "kind": "space" }, { - "text": "any", - "kind": "keyword" - }, + "text": "Uint8ArrayConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ { - "text": ",", - "kind": "punctuation" + "text": "A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] + }, + { + "name": "Uint8ClampedArray", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "argArray", - "kind": "parameterName" + "text": "Uint8ClampedArray", + "kind": "localName" }, { - "text": "?", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "any", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "Uint8ClampedArray", + "kind": "localName" }, { "text": ":", @@ -47976,109 +41885,74 @@ "kind": "space" }, { - "text": "any", - "kind": "keyword" + "text": "Uint8ClampedArrayConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "Calls the function, substituting the specified object for the this value of the function, and the specified array for the arguments of the function.", + "text": "A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0.\r\nIf the requested number of bytes could not be allocated an exception is raised.", "kind": "text" } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "thisArg", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "The object to be used as the this object.", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "argArray", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A set of arguments to be passed to the function.", - "kind": "text" - } - ] - } ] }, { - "name": "call", - "kind": "method", - "kindModifiers": "declare", - "sortText": "11", + "name": "undefined", + "kind": "var", + "kindModifiers": "", + "sortText": "15", "displayParts": [ { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "Function", - "kind": "localName" - }, + "text": "undefined", + "kind": "propertyName" + } + ], + "documentation": [] + }, + { + "name": "URIError", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { - "text": ".", - "kind": "punctuation" + "text": "interface", + "kind": "keyword" }, { - "text": "call", - "kind": "methodName" + "text": " ", + "kind": "space" }, { - "text": "(", - "kind": "punctuation" + "text": "URIError", + "kind": "localName" }, { - "text": "this", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "Function", + "text": "URIError", "kind": "localName" }, { - "text": ",", + "text": ":", "kind": "punctuation" }, { @@ -48086,35 +41960,96 @@ "kind": "space" }, { - "text": "thisArg", - "kind": "parameterName" - }, + "text": "URIErrorConstructor", + "kind": "interfaceName" + } + ], + "documentation": [] + }, + { + "name": "var", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": ":", - "kind": "punctuation" - }, + "text": "var", + "kind": "keyword" + } + ] + }, + { + "name": "void", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": " ", - "kind": "space" - }, + "text": "void", + "kind": "keyword" + } + ] + }, + { + "name": "while", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "any", + "text": "while", "kind": "keyword" - }, + } + ] + }, + { + "name": "with", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": ",", - "kind": "punctuation" + "text": "with", + "kind": "keyword" + } + ] + }, + { + "name": "yield", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "yield", + "kind": "keyword" + } + ] + }, + { + "name": "escape", + "kind": "function", + "kindModifiers": "deprecated,declare", + "sortText": "z15", + "displayParts": [ + { + "text": "function", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "...", + "text": "escape", + "kind": "functionName" + }, + { + "text": "(", "kind": "punctuation" }, { - "text": "argArray", + "text": "string", "kind": "parameterName" }, { @@ -48126,17 +42061,9 @@ "kind": "space" }, { - "text": "any", + "text": "string", "kind": "keyword" }, - { - "text": "[", - "kind": "punctuation" - }, - { - "text": "]", - "kind": "punctuation" - }, { "text": ")", "kind": "punctuation" @@ -48150,30 +42077,22 @@ "kind": "space" }, { - "text": "any", + "text": "string", "kind": "keyword" } ], "documentation": [ { - "text": "Calls a method of an object, substituting another object for the current object.", + "text": "Computes a new string in which certain characters have been replaced by a hexadecimal escape sequence.", "kind": "text" } ], "tags": [ { - "name": "param", + "name": "deprecated", "text": [ { - "text": "thisArg", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "The object to be used as the current object.", + "text": "A legacy feature for browser compatibility", "kind": "text" } ] @@ -48182,7 +42101,7 @@ "name": "param", "text": [ { - "text": "argArray", + "text": "string", "kind": "parameterName" }, { @@ -48190,7 +42109,7 @@ "kind": "space" }, { - "text": "A list of arguments to be passed to the method.", + "text": "A string value", "kind": "text" } ] @@ -48198,45 +42117,29 @@ ] }, { - "name": "bind", - "kind": "method", - "kindModifiers": "declare", - "sortText": "11", + "name": "unescape", + "kind": "function", + "kindModifiers": "deprecated,declare", + "sortText": "z15", "displayParts": [ { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" + "text": "function", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "Function", - "kind": "localName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "bind", - "kind": "methodName" + "text": "unescape", + "kind": "functionName" }, { "text": "(", "kind": "punctuation" }, { - "text": "this", + "text": "string", "kind": "parameterName" }, { @@ -48248,21 +42151,13 @@ "kind": "space" }, { - "text": "Function", - "kind": "localName" + "text": "string", + "kind": "keyword" }, { - "text": ",", + "text": ")", "kind": "punctuation" }, - { - "text": " ", - "kind": "space" - }, - { - "text": "thisArg", - "kind": "parameterName" - }, { "text": ":", "kind": "punctuation" @@ -48272,27 +42167,79 @@ "kind": "space" }, { - "text": "any", + "text": "string", "kind": "keyword" - }, + } + ], + "documentation": [ { - "text": ",", - "kind": "punctuation" - }, + "text": "Computes a new string in which hexadecimal escape sequences are replaced with the character that it represents.", + "kind": "text" + } + ], + "tags": [ { - "text": " ", - "kind": "space" + "name": "deprecated", + "text": [ + { + "text": "A legacy feature for browser compatibility", + "kind": "text" + } + ] }, { - "text": "...", + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string value", + "kind": "text" + } + ] + } + ] + } + ] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/completionsCommentsClassMembers.ts", + "position": 1108, + "name": "36" + }, + "completionList": { + "isGlobalCompletion": false, + "isMemberCompletion": true, + "isNewIdentifierLocation": false, + "optionalReplacementSpan": { + "start": 1108, + "length": 2 + }, + "entries": [ + { + "name": "nc_s1", + "kind": "property", + "kindModifiers": "static", + "sortText": "10", + "displayParts": [ + { + "text": "(", "kind": "punctuation" }, { - "text": "argArray", - "kind": "parameterName" + "text": "property", + "kind": "text" }, { - "text": ":", + "text": ")", "kind": "punctuation" }, { @@ -48300,20 +42247,16 @@ "kind": "space" }, { - "text": "any", - "kind": "keyword" - }, - { - "text": "[", - "kind": "punctuation" + "text": "c1", + "kind": "className" }, { - "text": "]", + "text": ".", "kind": "punctuation" }, { - "text": ")", - "kind": "punctuation" + "text": "nc_s1", + "kind": "propertyName" }, { "text": ":", @@ -48324,58 +42267,17 @@ "kind": "space" }, { - "text": "any", + "text": "number", "kind": "keyword" } ], - "documentation": [ - { - "text": "For a given function, creates a bound function that has the same body as the original function.\r\nThe this object of the bound function is associated with the specified object, and has the specified initial parameters.", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "thisArg", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "An object to which the this keyword can refer inside the new function.", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "argArray", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A list of arguments to be passed to the new function.", - "kind": "text" - } - ] - } - ] + "documentation": [] }, { - "name": "toString", + "name": "nc_s2", "kind": "method", - "kindModifiers": "declare", - "sortText": "11", + "kindModifiers": "static", + "sortText": "10", "displayParts": [ { "text": "(", @@ -48394,21 +42296,37 @@ "kind": "space" }, { - "text": "Function", - "kind": "localName" + "text": "c1", + "kind": "className" }, { "text": ".", "kind": "punctuation" }, { - "text": "toString", + "text": "nc_s2", "kind": "methodName" }, { "text": "(", "kind": "punctuation" }, + { + "text": "b", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, { "text": ")", "kind": "punctuation" @@ -48422,22 +42340,17 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" } ], - "documentation": [ - { - "text": "Returns a string representation of a function.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "length", + "name": "nc_s3", "kind": "property", - "kindModifiers": "declare", - "sortText": "11", + "kindModifiers": "static", + "sortText": "10", "displayParts": [ { "text": "(", @@ -48456,15 +42369,15 @@ "kind": "space" }, { - "text": "Function", - "kind": "localName" + "text": "c1", + "kind": "className" }, { "text": ".", "kind": "punctuation" }, { - "text": "length", + "text": "nc_s3", "kind": "propertyName" }, { @@ -48483,10 +42396,10 @@ "documentation": [] }, { - "name": "arguments", + "name": "s1", "kind": "property", - "kindModifiers": "declare", - "sortText": "11", + "kindModifiers": "static", + "sortText": "10", "displayParts": [ { "text": "(", @@ -48505,15 +42418,15 @@ "kind": "space" }, { - "text": "Function", - "kind": "localName" + "text": "c1", + "kind": "className" }, { "text": ".", "kind": "punctuation" }, { - "text": "arguments", + "text": "s1", "kind": "propertyName" }, { @@ -48525,24 +42438,29 @@ "kind": "space" }, { - "text": "any", + "text": "number", "kind": "keyword" } - ], - "documentation": [] + ], + "documentation": [ + { + "text": "s1 is static property of c1", + "kind": "text" + } + ] }, { - "name": "caller", - "kind": "property", - "kindModifiers": "declare", - "sortText": "11", + "name": "s2", + "kind": "method", + "kindModifiers": "static", + "sortText": "10", "displayParts": [ { "text": "(", "kind": "punctuation" }, { - "text": "property", + "text": "method", "kind": "text" }, { @@ -48554,66 +42472,27 @@ "kind": "space" }, { - "text": "Function", - "kind": "localName" + "text": "c1", + "kind": "className" }, { "text": ".", "kind": "punctuation" }, { - "text": "caller", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "s2", + "kind": "methodName" }, - { - "text": "Function", - "kind": "localName" - } - ], - "documentation": [] - } - ] - } - }, - { - "marker": { - "fileName": "/tests/cases/fourslash/completionsCommentsClassMembers.ts", - "position": 1218, - "name": "40" - }, - "completionList": { - "isGlobalCompletion": false, - "isMemberCompletion": false, - "isNewIdentifierLocation": true, - "optionalReplacementSpan": { - "start": 1218, - "length": 2 - }, - "entries": [ - { - "name": "value", - "kind": "parameter", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ { "text": "(", "kind": "punctuation" }, { - "text": "parameter", - "kind": "text" + "text": "b", + "kind": "parameterName" }, { - "text": ")", + "text": ":", "kind": "punctuation" }, { @@ -48621,8 +42500,12 @@ "kind": "space" }, { - "text": "value", - "kind": "parameterName" + "text": "number", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -48639,23 +42522,23 @@ ], "documentation": [ { - "text": "this is value", + "text": "static sum with property", "kind": "text" } ] }, { - "name": "arguments", - "kind": "local var", - "kindModifiers": "", - "sortText": "11", + "name": "s3", + "kind": "property", + "kindModifiers": "static", + "sortText": "10", "displayParts": [ { "text": "(", "kind": "punctuation" }, { - "text": "local var", + "text": "property", "kind": "text" }, { @@ -48667,7 +42550,15 @@ "kind": "space" }, { - "text": "arguments", + "text": "c1", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "s3", "kind": "propertyName" }, { @@ -48679,61 +42570,41 @@ "kind": "space" }, { - "text": "IArguments", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], - "documentation": [] - }, - { - "name": "globalThis", - "kind": "module", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "documentation": [ { - "text": "module", - "kind": "keyword" + "text": "static getter property", + "kind": "text" }, { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, { - "text": "globalThis", - "kind": "moduleName" + "text": "setter property 3", + "kind": "text" } - ], - "documentation": [] + ] }, { - "name": "eval", - "kind": "function", + "name": "apply", + "kind": "method", "kindModifiers": "declare", - "sortText": "15", + "sortText": "11", "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "eval", - "kind": "functionName" - }, { "text": "(", "kind": "punctuation" }, { - "text": "x", - "kind": "parameterName" + "text": "method", + "kind": "text" }, { - "text": ":", + "text": ")", "kind": "punctuation" }, { @@ -48741,76 +42612,47 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "Function", + "kind": "localName" }, { - "text": ")", + "text": ".", "kind": "punctuation" }, { - "text": ":", - "kind": "punctuation" + "text": "apply", + "kind": "methodName" }, { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "any", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Evaluates JavaScript code and executes it.", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "x", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A String value that contains valid JavaScript code.", - "kind": "text" - } - ] - } - ] - }, - { - "name": "parseInt", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ + "text": "this", + "kind": "parameterName" + }, { - "text": "function", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "parseInt", - "kind": "functionName" + "text": "Function", + "kind": "localName" }, { - "text": "(", + "text": ",", "kind": "punctuation" }, { - "text": "string", + "text": " ", + "kind": "space" + }, + { + "text": "thisArg", "kind": "parameterName" }, { @@ -48822,7 +42664,7 @@ "kind": "space" }, { - "text": "string", + "text": "any", "kind": "keyword" }, { @@ -48834,7 +42676,7 @@ "kind": "space" }, { - "text": "radix", + "text": "argArray", "kind": "parameterName" }, { @@ -48850,7 +42692,7 @@ "kind": "space" }, { - "text": "number", + "text": "any", "kind": "keyword" }, { @@ -48866,13 +42708,13 @@ "kind": "space" }, { - "text": "number", + "text": "any", "kind": "keyword" } ], "documentation": [ { - "text": "Converts a string to an integer.", + "text": "Calls the function, substituting the specified object for the this value of the function, and the specified array for the arguments of the function.", "kind": "text" } ], @@ -48881,7 +42723,7 @@ "name": "param", "text": [ { - "text": "string", + "text": "thisArg", "kind": "parameterName" }, { @@ -48889,7 +42731,7 @@ "kind": "space" }, { - "text": "A string to convert into a number.", + "text": "The object to be used as the this object.", "kind": "text" } ] @@ -48898,7 +42740,7 @@ "name": "param", "text": [ { - "text": "radix", + "text": "argArray", "kind": "parameterName" }, { @@ -48906,7 +42748,7 @@ "kind": "space" }, { - "text": "A value between 2 and 36 that specifies the base of the number in `string`.\r\nIf this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal.\r\nAll other strings are considered decimal.", + "text": "A set of arguments to be passed to the function.", "kind": "text" } ] @@ -48914,30 +42756,38 @@ ] }, { - "name": "parseFloat", - "kind": "function", + "name": "arguments", + "kind": "property", "kindModifiers": "declare", - "sortText": "15", + "sortText": "11", "displayParts": [ { - "text": "function", - "kind": "keyword" + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "parseFloat", - "kind": "functionName" + "text": "Function", + "kind": "localName" }, { - "text": "(", + "text": ".", "kind": "punctuation" }, { - "text": "string", - "kind": "parameterName" + "text": "arguments", + "kind": "propertyName" }, { "text": ":", @@ -48948,13 +42798,54 @@ "kind": "space" }, { - "text": "string", + "text": "any", "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "bind", + "kind": "method", + "kindModifiers": "declare", + "sortText": "11", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" }, { "text": ")", "kind": "punctuation" }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Function", + "kind": "localName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "bind", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "this", + "kind": "parameterName" + }, { "text": ":", "kind": "punctuation" @@ -48964,60 +42855,47 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [ + "text": "Function", + "kind": "localName" + }, { - "text": "Converts a string to a floating-point number.", - "kind": "text" - } - ], - "tags": [ + "text": ",", + "kind": "punctuation" + }, { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string that contains a floating-point number.", - "kind": "text" - } - ] - } - ] - }, - { - "name": "isNaN", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "function", - "kind": "keyword" + "text": "thisArg", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "isNaN", - "kind": "functionName" + "text": "any", + "kind": "keyword" }, { - "text": "(", + "text": ",", "kind": "punctuation" }, { - "text": "number", + "text": " ", + "kind": "space" + }, + { + "text": "...", + "kind": "punctuation" + }, + { + "text": "argArray", "kind": "parameterName" }, { @@ -49029,9 +42907,17 @@ "kind": "space" }, { - "text": "number", + "text": "any", "kind": "keyword" }, + { + "text": "[", + "kind": "punctuation" + }, + { + "text": "]", + "kind": "punctuation" + }, { "text": ")", "kind": "punctuation" @@ -49045,13 +42931,13 @@ "kind": "space" }, { - "text": "boolean", + "text": "any", "kind": "keyword" } ], "documentation": [ { - "text": "Returns a Boolean value that indicates whether a value is the reserved value NaN (not a number).", + "text": "For a given function, creates a bound function that has the same body as the original function.\r\nThe this object of the bound function is associated with the specified object, and has the specified initial parameters.", "kind": "text" } ], @@ -49060,7 +42946,7 @@ "name": "param", "text": [ { - "text": "number", + "text": "thisArg", "kind": "parameterName" }, { @@ -49068,7 +42954,24 @@ "kind": "space" }, { - "text": "A numeric value.", + "text": "An object to which the this keyword can refer inside the new function.", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "argArray", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A list of arguments to be passed to the new function.", "kind": "text" } ] @@ -49076,29 +42979,45 @@ ] }, { - "name": "isFinite", - "kind": "function", + "name": "call", + "kind": "method", "kindModifiers": "declare", - "sortText": "15", + "sortText": "11", "displayParts": [ { - "text": "function", - "kind": "keyword" + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "isFinite", - "kind": "functionName" + "text": "Function", + "kind": "localName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "call", + "kind": "methodName" }, { "text": "(", "kind": "punctuation" }, { - "text": "number", + "text": "this", "kind": "parameterName" }, { @@ -49110,13 +43029,21 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "Function", + "kind": "localName" }, { - "text": ")", + "text": ",", "kind": "punctuation" }, + { + "text": " ", + "kind": "space" + }, + { + "text": "thisArg", + "kind": "parameterName" + }, { "text": ":", "kind": "punctuation" @@ -49126,60 +43053,23 @@ "kind": "space" }, { - "text": "boolean", + "text": "any", "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Determines whether a supplied number is finite.", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "number", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Any numeric value.", - "kind": "text" - } - ] - } - ] - }, - { - "name": "decodeURI", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ + }, { - "text": "function", - "kind": "keyword" + "text": ",", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "decodeURI", - "kind": "functionName" - }, - { - "text": "(", + "text": "...", "kind": "punctuation" }, { - "text": "encodedURI", + "text": "argArray", "kind": "parameterName" }, { @@ -49191,8 +43081,16 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "any", + "kind": "keyword" + }, + { + "text": "[", + "kind": "punctuation" + }, + { + "text": "]", + "kind": "punctuation" }, { "text": ")", @@ -49207,13 +43105,13 @@ "kind": "space" }, { - "text": "string", + "text": "any", "kind": "keyword" } ], "documentation": [ { - "text": "Gets the unencoded version of an encoded Uniform Resource Identifier (URI).", + "text": "Calls a method of an object, substituting another object for the current object.", "kind": "text" } ], @@ -49222,7 +43120,7 @@ "name": "param", "text": [ { - "text": "encodedURI", + "text": "thisArg", "kind": "parameterName" }, { @@ -49230,7 +43128,24 @@ "kind": "space" }, { - "text": "A value representing an encoded URI.", + "text": "The object to be used as the current object.", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "argArray", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A list of arguments to be passed to the method.", "kind": "text" } ] @@ -49238,33 +43153,21 @@ ] }, { - "name": "decodeURIComponent", - "kind": "function", + "name": "caller", + "kind": "property", "kindModifiers": "declare", - "sortText": "15", + "sortText": "11", "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "decodeURIComponent", - "kind": "functionName" - }, { "text": "(", "kind": "punctuation" }, { - "text": "encodedURIComponent", - "kind": "parameterName" + "text": "property", + "kind": "text" }, { - "text": ":", + "text": ")", "kind": "punctuation" }, { @@ -49272,13 +43175,17 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "Function", + "kind": "localName" }, { - "text": ")", + "text": ".", "kind": "punctuation" }, + { + "text": "caller", + "kind": "propertyName" + }, { "text": ":", "kind": "punctuation" @@ -49288,64 +43195,28 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).", - "kind": "text" + "text": "Function", + "kind": "localName" } ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "encodedURIComponent", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI component.", - "kind": "text" - } - ] - } - ] + "documentation": [] }, { - "name": "encodeURI", - "kind": "function", + "name": "length", + "kind": "property", "kindModifiers": "declare", - "sortText": "15", + "sortText": "11", "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "encodeURI", - "kind": "functionName" - }, { "text": "(", "kind": "punctuation" }, { - "text": "uri", - "kind": "parameterName" + "text": "property", + "kind": "text" }, { - "text": ":", + "text": ")", "kind": "punctuation" }, { @@ -49353,13 +43224,17 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "Function", + "kind": "localName" }, { - "text": ")", + "text": ".", "kind": "punctuation" }, + { + "text": "length", + "kind": "propertyName" + }, { "text": ":", "kind": "punctuation" @@ -49369,61 +43244,45 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" } ], - "documentation": [ - { - "text": "Encodes a text string as a valid Uniform Resource Identifier (URI)", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "uri", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI.", - "kind": "text" - } - ] - } - ] + "documentation": [] }, { - "name": "encodeURIComponent", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "name": "prototype", + "kind": "property", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "function", - "kind": "keyword" + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "encodeURIComponent", - "kind": "functionName" + "text": "c1", + "kind": "className" }, { - "text": "(", + "text": ".", "kind": "punctuation" }, { - "text": "uriComponent", - "kind": "parameterName" + "text": "prototype", + "kind": "propertyName" }, { "text": ":", @@ -49434,15 +43293,28 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "c1", + "kind": "className" + } + ], + "documentation": [] + }, + { + "name": "toString", + "kind": "method", + "kindModifiers": "declare", + "sortText": "11", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "method", + "kind": "text" }, { - "text": "|", + "text": ")", "kind": "punctuation" }, { @@ -49450,24 +43322,20 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" + "text": "Function", + "kind": "localName" }, { - "text": "|", + "text": ".", "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "toString", + "kind": "methodName" }, { - "text": "boolean", - "kind": "keyword" + "text": "(", + "kind": "punctuation" }, { "text": ")", @@ -49488,55 +43356,54 @@ ], "documentation": [ { - "text": "Encodes a text string as a valid component of a Uniform Resource Identifier (URI).", + "text": "Returns a string representation of a function.", "kind": "text" } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "uriComponent", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI component.", - "kind": "text" - } - ] - } ] - }, + } + ] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/completionsCommentsClassMembers.ts", + "position": 1210, + "name": "38" + }, + "completionList": { + "isGlobalCompletion": true, + "isMemberCompletion": false, + "isNewIdentifierLocation": false, + "optionalReplacementSpan": { + "start": 1210, + "length": 2 + }, + "entries": [ { - "name": "escape", - "kind": "function", - "kindModifiers": "deprecated,declare", - "sortText": "23", + "name": "arguments", + "kind": "local var", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "function", - "kind": "keyword" + "text": "(", + "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "local var", + "kind": "text" }, { - "text": "escape", - "kind": "functionName" + "text": ")", + "kind": "punctuation" }, { - "text": "(", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": "string", - "kind": "parameterName" + "text": "arguments", + "kind": "propertyName" }, { "text": ":", @@ -49547,69 +43414,67 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, + "text": "IArguments", + "kind": "interfaceName" + } + ], + "documentation": [] + }, + { + "name": "c1", + "kind": "class", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { - "text": ":", - "kind": "punctuation" + "text": "class", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "c1", + "kind": "className" } ], "documentation": [ { - "text": "Computes a new string in which certain characters have been replaced by a hexadecimal escape sequence.", + "text": "This is comment for c1", "kind": "text" } - ], - "tags": [ + ] + }, + { + "name": "cProperties", + "kind": "class", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { - "name": "deprecated", - "text": [ - { - "text": "A legacy feature for browser compatibility", - "kind": "text" - } - ] + "text": "class", + "kind": "keyword" }, { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string value", - "kind": "text" - } - ] + "text": " ", + "kind": "space" + }, + { + "text": "cProperties", + "kind": "className" } - ] + ], + "documentation": [] }, { - "name": "unescape", - "kind": "function", - "kindModifiers": "deprecated,declare", - "sortText": "23", + "name": "cProperties_i", + "kind": "var", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "function", + "text": "var", "kind": "keyword" }, { @@ -49617,32 +43482,62 @@ "kind": "space" }, { - "text": "unescape", - "kind": "functionName" + "text": "cProperties_i", + "kind": "localName" }, { - "text": "(", + "text": ":", "kind": "punctuation" }, { - "text": "string", - "kind": "parameterName" + "text": " ", + "kind": "space" }, { - "text": ":", - "kind": "punctuation" + "text": "cProperties", + "kind": "className" + } + ], + "documentation": [] + }, + { + "name": "cWithConstructorProperty", + "kind": "class", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "class", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "string", + "text": "cWithConstructorProperty", + "kind": "className" + } + ], + "documentation": [] + }, + { + "name": "i1", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "var", "kind": "keyword" }, { - "text": ")", - "kind": "punctuation" + "text": " ", + "kind": "space" + }, + { + "text": "i1", + "kind": "localName" }, { "text": ":", @@ -49653,50 +43548,58 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "c1", + "kind": "className" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "i1_c", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { - "text": "Computes a new string in which hexadecimal escape sequences are replaced with the character that it represents.", - "kind": "text" - } - ], - "tags": [ + "text": "var", + "kind": "keyword" + }, { - "name": "deprecated", - "text": [ - { - "text": "A legacy feature for browser compatibility", - "kind": "text" - } - ] + "text": " ", + "kind": "space" }, { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string value", - "kind": "text" - } - ] + "text": "i1_c", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "typeof", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "c1", + "kind": "className" } - ] + ], + "documentation": [] }, { - "name": "NaN", + "name": "i1_f", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { "text": "var", @@ -49707,8 +43610,24 @@ "kind": "space" }, { - "text": "NaN", - "kind": "localName" + "text": "i1_f", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "b", + "kind": "parameterName" }, { "text": ":", @@ -49718,6 +43637,26 @@ "text": " ", "kind": "space" }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, { "text": "number", "kind": "keyword" @@ -49726,10 +43665,10 @@ "documentation": [] }, { - "name": "Infinity", + "name": "i1_nc_p", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { "text": "var", @@ -49740,7 +43679,7 @@ "kind": "space" }, { - "text": "Infinity", + "text": "i1_nc_p", "kind": "localName" }, { @@ -49759,13 +43698,13 @@ "documentation": [] }, { - "name": "Object", + "name": "i1_ncf", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "var", "kind": "keyword" }, { @@ -49773,24 +43712,24 @@ "kind": "space" }, { - "text": "Object", + "text": "i1_ncf", "kind": "localName" }, { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Object", - "kind": "localName" + "text": "(", + "kind": "punctuation" + }, + { + "text": "b", + "kind": "parameterName" }, { "text": ":", @@ -49801,39 +43740,38 @@ "kind": "space" }, { - "text": "ObjectConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "Provides functionality common to all JavaScript objects.", - "kind": "text" - } - ] - }, - { - "name": "Function", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", + "text": "number", "kind": "keyword" }, + { + "text": ")", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "Function", - "kind": "localName" + "text": "=>", + "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": " ", + "kind": "space" }, + { + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "i1_ncprop", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { "text": "var", "kind": "keyword" @@ -49843,7 +43781,7 @@ "kind": "space" }, { - "text": "Function", + "text": "i1_ncprop", "kind": "localName" }, { @@ -49855,25 +43793,20 @@ "kind": "space" }, { - "text": "FunctionConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], - "documentation": [ - { - "text": "Creates a new function.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "String", + "name": "i1_ncr", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "var", "kind": "keyword" }, { @@ -49881,13 +43814,30 @@ "kind": "space" }, { - "text": "String", + "text": "i1_ncr", "kind": "localName" }, { - "text": "\n", - "kind": "lineBreak" + "text": ":", + "kind": "punctuation" }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "i1_p", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { "text": "var", "kind": "keyword" @@ -49897,7 +43847,7 @@ "kind": "space" }, { - "text": "String", + "text": "i1_p", "kind": "localName" }, { @@ -49909,25 +43859,20 @@ "kind": "space" }, { - "text": "StringConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], - "documentation": [ - { - "text": "Allows manipulation and formatting of text strings and determination and location of substrings within strings.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "Boolean", + "name": "i1_prop", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "var", "kind": "keyword" }, { @@ -49935,13 +43880,30 @@ "kind": "space" }, { - "text": "Boolean", + "text": "i1_prop", "kind": "localName" }, { - "text": "\n", - "kind": "lineBreak" + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" }, + { + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "i1_r", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { "text": "var", "kind": "keyword" @@ -49951,7 +43913,7 @@ "kind": "space" }, { - "text": "Boolean", + "text": "i1_r", "kind": "localName" }, { @@ -49963,20 +43925,20 @@ "kind": "space" }, { - "text": "BooleanConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], "documentation": [] }, { - "name": "Number", + "name": "i1_s_f", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "var", "kind": "keyword" }, { @@ -49984,24 +43946,24 @@ "kind": "space" }, { - "text": "Number", + "text": "i1_s_f", "kind": "localName" }, { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Number", - "kind": "localName" + "text": "(", + "kind": "punctuation" + }, + { + "text": "b", + "kind": "parameterName" }, { "text": ":", @@ -50012,39 +43974,38 @@ "kind": "space" }, { - "text": "NumberConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "An object that represents a number of any kind. All JavaScript numbers are 64-bit floating-point numbers.", - "kind": "text" - } - ] - }, - { - "name": "Math", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", + "text": "number", "kind": "keyword" }, + { + "text": ")", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "Math", - "kind": "localName" + "text": "=>", + "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": " ", + "kind": "space" }, + { + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "i1_s_nc_p", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { "text": "var", "kind": "keyword" @@ -50054,7 +44015,7 @@ "kind": "space" }, { - "text": "Math", + "text": "i1_s_nc_p", "kind": "localName" }, { @@ -50066,25 +44027,20 @@ "kind": "space" }, { - "text": "Math", - "kind": "localName" + "text": "number", + "kind": "keyword" } ], - "documentation": [ - { - "text": "An intrinsic object that provides basic mathematics functionality and constants.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "Date", + "name": "i1_s_ncf", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "var", "kind": "keyword" }, { @@ -50092,24 +44048,24 @@ "kind": "space" }, { - "text": "Date", + "text": "i1_s_ncf", "kind": "localName" }, { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Date", - "kind": "localName" + "text": "(", + "kind": "punctuation" + }, + { + "text": "b", + "kind": "parameterName" }, { "text": ":", @@ -50120,39 +44076,38 @@ "kind": "space" }, { - "text": "DateConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "Enables basic storage and retrieval of dates and times.", - "kind": "text" - } - ] - }, - { - "name": "RegExp", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", + "text": "number", "kind": "keyword" }, + { + "text": ")", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "RegExp", - "kind": "localName" + "text": "=>", + "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": " ", + "kind": "space" }, + { + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "i1_s_ncprop", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { "text": "var", "kind": "keyword" @@ -50162,7 +44117,7 @@ "kind": "space" }, { - "text": "RegExp", + "text": "i1_s_ncprop", "kind": "localName" }, { @@ -50174,34 +44129,18 @@ "kind": "space" }, { - "text": "RegExpConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], "documentation": [] }, { - "name": "Error", + "name": "i1_s_ncr", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Error", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, { "text": "var", "kind": "keyword" @@ -50211,7 +44150,7 @@ "kind": "space" }, { - "text": "Error", + "text": "i1_s_ncr", "kind": "localName" }, { @@ -50223,34 +44162,18 @@ "kind": "space" }, { - "text": "ErrorConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], "documentation": [] }, { - "name": "EvalError", + "name": "i1_s_p", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "EvalError", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, { "text": "var", "kind": "keyword" @@ -50260,7 +44183,7 @@ "kind": "space" }, { - "text": "EvalError", + "text": "i1_s_p", "kind": "localName" }, { @@ -50272,34 +44195,18 @@ "kind": "space" }, { - "text": "EvalErrorConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], "documentation": [] }, { - "name": "RangeError", + "name": "i1_s_prop", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "RangeError", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, { "text": "var", "kind": "keyword" @@ -50309,7 +44216,7 @@ "kind": "space" }, { - "text": "RangeError", + "text": "i1_s_prop", "kind": "localName" }, { @@ -50321,34 +44228,18 @@ "kind": "space" }, { - "text": "RangeErrorConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], "documentation": [] }, { - "name": "ReferenceError", + "name": "i1_s_r", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "ReferenceError", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, { "text": "var", "kind": "keyword" @@ -50358,7 +44249,7 @@ "kind": "space" }, { - "text": "ReferenceError", + "text": "i1_s_r", "kind": "localName" }, { @@ -50370,45 +44261,37 @@ "kind": "space" }, { - "text": "ReferenceErrorConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], "documentation": [] }, { - "name": "SyntaxError", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "value", + "kind": "parameter", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "SyntaxError", - "kind": "localName" + "text": "(", + "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": "parameter", + "kind": "text" }, { - "text": "var", - "kind": "keyword" + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "SyntaxError", - "kind": "localName" + "text": "value", + "kind": "parameterName" }, { "text": ":", @@ -50419,14 +44302,19 @@ "kind": "space" }, { - "text": "SyntaxErrorConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "this is value", + "kind": "text" + } + ] }, { - "name": "TypeError", + "name": "Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -50440,9 +44328,21 @@ "kind": "space" }, { - "text": "TypeError", + "text": "Array", "kind": "localName" }, + { + "text": "<", + "kind": "punctuation" + }, + { + "text": "T", + "kind": "typeParameterName" + }, + { + "text": ">", + "kind": "punctuation" + }, { "text": "\n", "kind": "lineBreak" @@ -50456,7 +44356,7 @@ "kind": "space" }, { - "text": "TypeError", + "text": "Array", "kind": "localName" }, { @@ -50468,14 +44368,14 @@ "kind": "space" }, { - "text": "TypeErrorConstructor", + "text": "ArrayConstructor", "kind": "interfaceName" } ], "documentation": [] }, { - "name": "URIError", + "name": "ArrayBuffer", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -50489,7 +44389,7 @@ "kind": "space" }, { - "text": "URIError", + "text": "ArrayBuffer", "kind": "localName" }, { @@ -50505,7 +44405,7 @@ "kind": "space" }, { - "text": "URIError", + "text": "ArrayBuffer", "kind": "localName" }, { @@ -50517,14 +44417,55 @@ "kind": "space" }, { - "text": "URIErrorConstructor", + "text": "ArrayBufferConstructor", "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "Represents a raw buffer of binary data, which is used to store data for the\r\ndifferent typed arrays. ArrayBuffers cannot be read from or written to directly,\r\nbut can be passed to a typed array or DataView Object to interpret the raw\r\nbuffer as needed.", + "kind": "text" + } + ] }, { - "name": "JSON", + "name": "as", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "as", + "kind": "keyword" + } + ] + }, + { + "name": "async", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "async", + "kind": "keyword" + } + ] + }, + { + "name": "await", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "await", + "kind": "keyword" + } + ] + }, + { + "name": "Boolean", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -50538,7 +44479,7 @@ "kind": "space" }, { - "text": "JSON", + "text": "Boolean", "kind": "localName" }, { @@ -50554,7 +44495,7 @@ "kind": "space" }, { - "text": "JSON", + "text": "Boolean", "kind": "localName" }, { @@ -50566,19 +44507,86 @@ "kind": "space" }, { - "text": "JSON", - "kind": "localName" + "text": "BooleanConstructor", + "kind": "interfaceName" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "break", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "An intrinsic object that provides functions to convert JavaScript values to and from the JavaScript Object Notation (JSON) format.", - "kind": "text" + "text": "break", + "kind": "keyword" } ] }, { - "name": "Array", + "name": "case", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "case", + "kind": "keyword" + } + ] + }, + { + "name": "catch", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "catch", + "kind": "keyword" + } + ] + }, + { + "name": "class", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + } + ] + }, + { + "name": "const", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + } + ] + }, + { + "name": "continue", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "continue", + "kind": "keyword" + } + ] + }, + { + "name": "DataView", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -50592,21 +44600,9 @@ "kind": "space" }, { - "text": "Array", + "text": "DataView", "kind": "localName" }, - { - "text": "<", - "kind": "punctuation" - }, - { - "text": "T", - "kind": "typeParameterName" - }, - { - "text": ">", - "kind": "punctuation" - }, { "text": "\n", "kind": "lineBreak" @@ -50620,7 +44616,7 @@ "kind": "space" }, { - "text": "Array", + "text": "DataView", "kind": "localName" }, { @@ -50632,14 +44628,14 @@ "kind": "space" }, { - "text": "ArrayConstructor", + "text": "DataViewConstructor", "kind": "interfaceName" } ], "documentation": [] }, { - "name": "ArrayBuffer", + "name": "Date", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -50653,7 +44649,7 @@ "kind": "space" }, { - "text": "ArrayBuffer", + "text": "Date", "kind": "localName" }, { @@ -50669,7 +44665,7 @@ "kind": "space" }, { - "text": "ArrayBuffer", + "text": "Date", "kind": "localName" }, { @@ -50681,25 +44677,37 @@ "kind": "space" }, { - "text": "ArrayBufferConstructor", + "text": "DateConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "Represents a raw buffer of binary data, which is used to store data for the\r\ndifferent typed arrays. ArrayBuffers cannot be read from or written to directly,\r\nbut can be passed to a typed array or DataView Object to interpret the raw\r\nbuffer as needed.", + "text": "Enables basic storage and retrieval of dates and times.", "kind": "text" } ] }, { - "name": "DataView", - "kind": "var", + "name": "debugger", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "debugger", + "kind": "keyword" + } + ] + }, + { + "name": "decodeURI", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -50707,24 +44715,32 @@ "kind": "space" }, { - "text": "DataView", - "kind": "localName" + "text": "decodeURI", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "encodedURI", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "DataView", - "kind": "localName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -50735,20 +44751,44 @@ "kind": "space" }, { - "text": "DataViewConstructor", - "kind": "interfaceName" + "text": "string", + "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Gets the unencoded version of an encoded Uniform Resource Identifier (URI).", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "encodedURI", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI.", + "kind": "text" + } + ] + } + ] }, { - "name": "Int8Array", - "kind": "var", + "name": "decodeURIComponent", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -50756,24 +44796,32 @@ "kind": "space" }, { - "text": "Int8Array", - "kind": "localName" + "text": "decodeURIComponent", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "encodedURIComponent", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Int8Array", - "kind": "localName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -50784,25 +44832,92 @@ "kind": "space" }, { - "text": "Int8ArrayConstructor", - "kind": "interfaceName" + "text": "string", + "kind": "keyword" } ], "documentation": [ { - "text": "A typed array of 8-bit integer values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", + "text": "Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "encodedURIComponent", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI component.", + "kind": "text" + } + ] + } ] }, { - "name": "Uint8Array", - "kind": "var", + "name": "default", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "default", + "kind": "keyword" + } + ] + }, + { + "name": "delete", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "delete", + "kind": "keyword" + } + ] + }, + { + "name": "do", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "do", + "kind": "keyword" + } + ] + }, + { + "name": "else", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "else", + "kind": "keyword" + } + ] + }, + { + "name": "encodeURI", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -50810,24 +44925,32 @@ "kind": "space" }, { - "text": "Uint8Array", - "kind": "localName" + "text": "encodeURI", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "uri", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Uint8Array", - "kind": "localName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -50838,25 +44961,44 @@ "kind": "space" }, { - "text": "Uint8ArrayConstructor", - "kind": "interfaceName" + "text": "string", + "kind": "keyword" } ], "documentation": [ { - "text": "A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "text": "Encodes a text string as a valid Uniform Resource Identifier (URI)", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "uri", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI.", + "kind": "text" + } + ] + } ] }, { - "name": "Uint8ClampedArray", - "kind": "var", + "name": "encodeURIComponent", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -50864,15 +45006,27 @@ "kind": "space" }, { - "text": "Uint8ClampedArray", - "kind": "localName" + "text": "encodeURIComponent", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", + "text": "uriComponent", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", "kind": "keyword" }, { @@ -50880,8 +45034,36 @@ "kind": "space" }, { - "text": "Uint8ClampedArray", - "kind": "localName" + "text": "|", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "|", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "boolean", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -50892,19 +45074,50 @@ "kind": "space" }, { - "text": "Uint8ClampedArrayConstructor", - "kind": "interfaceName" + "text": "string", + "kind": "keyword" } ], "documentation": [ { - "text": "A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0.\r\nIf the requested number of bytes could not be allocated an exception is raised.", - "kind": "text" + "text": "Encodes a text string as a valid component of a Uniform Resource Identifier (URI).", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "uriComponent", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI component.", + "kind": "text" + } + ] + } + ] + }, + { + "name": "enum", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "enum", + "kind": "keyword" } ] }, { - "name": "Int16Array", + "name": "Error", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -50918,7 +45131,7 @@ "kind": "space" }, { - "text": "Int16Array", + "text": "Error", "kind": "localName" }, { @@ -50934,7 +45147,7 @@ "kind": "space" }, { - "text": "Int16Array", + "text": "Error", "kind": "localName" }, { @@ -50946,25 +45159,20 @@ "kind": "space" }, { - "text": "Int16ArrayConstructor", + "text": "ErrorConstructor", "kind": "interfaceName" } ], - "documentation": [ - { - "text": "A typed array of 16-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "Uint16Array", - "kind": "var", + "name": "eval", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -50972,24 +45180,32 @@ "kind": "space" }, { - "text": "Uint16Array", - "kind": "localName" + "text": "eval", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "x", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Uint16Array", - "kind": "localName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -51000,19 +45216,38 @@ "kind": "space" }, { - "text": "Uint16ArrayConstructor", - "kind": "interfaceName" + "text": "any", + "kind": "keyword" } ], "documentation": [ { - "text": "A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "text": "Evaluates JavaScript code and executes it.", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "x", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A String value that contains valid JavaScript code.", + "kind": "text" + } + ] + } ] }, { - "name": "Int32Array", + "name": "EvalError", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -51026,7 +45261,7 @@ "kind": "space" }, { - "text": "Int32Array", + "text": "EvalError", "kind": "localName" }, { @@ -51042,7 +45277,7 @@ "kind": "space" }, { - "text": "Int32Array", + "text": "EvalError", "kind": "localName" }, { @@ -51054,19 +45289,62 @@ "kind": "space" }, { - "text": "Int32ArrayConstructor", + "text": "EvalErrorConstructor", "kind": "interfaceName" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "export", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "A typed array of 32-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" + "text": "export", + "kind": "keyword" } ] }, { - "name": "Uint32Array", + "name": "extends", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "extends", + "kind": "keyword" + } + ] + }, + { + "name": "false", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "false", + "kind": "keyword" + } + ] + }, + { + "name": "finally", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "finally", + "kind": "keyword" + } + ] + }, + { + "name": "Float32Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -51080,7 +45358,7 @@ "kind": "space" }, { - "text": "Uint32Array", + "text": "Float32Array", "kind": "localName" }, { @@ -51096,7 +45374,7 @@ "kind": "space" }, { - "text": "Uint32Array", + "text": "Float32Array", "kind": "localName" }, { @@ -51108,19 +45386,19 @@ "kind": "space" }, { - "text": "Uint32ArrayConstructor", + "text": "Float32ArrayConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "text": "A typed array of 32-bit float values. The contents are initialized to 0. If the requested number\r\nof bytes could not be allocated an exception is raised.", "kind": "text" } ] }, { - "name": "Float32Array", + "name": "Float64Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -51134,7 +45412,7 @@ "kind": "space" }, { - "text": "Float32Array", + "text": "Float64Array", "kind": "localName" }, { @@ -51150,7 +45428,7 @@ "kind": "space" }, { - "text": "Float32Array", + "text": "Float64Array", "kind": "localName" }, { @@ -51162,19 +45440,43 @@ "kind": "space" }, { - "text": "Float32ArrayConstructor", + "text": "Float64ArrayConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "A typed array of 32-bit float values. The contents are initialized to 0. If the requested number\r\nof bytes could not be allocated an exception is raised.", + "text": "A typed array of 64-bit float values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", "kind": "text" } ] }, { - "name": "Float64Array", + "name": "for", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "for", + "kind": "keyword" + } + ] + }, + { + "name": "function", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + } + ] + }, + { + "name": "Function", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -51188,7 +45490,7 @@ "kind": "space" }, { - "text": "Float64Array", + "text": "Function", "kind": "localName" }, { @@ -51204,7 +45506,7 @@ "kind": "space" }, { - "text": "Float64Array", + "text": "Function", "kind": "localName" }, { @@ -51216,25 +45518,25 @@ "kind": "space" }, { - "text": "Float64ArrayConstructor", + "text": "FunctionConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "A typed array of 64-bit float values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", + "text": "Creates a new function.", "kind": "text" } ] }, { - "name": "Intl", + "name": "globalThis", "kind": "module", - "kindModifiers": "declare", + "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "namespace", + "text": "module", "kind": "keyword" }, { @@ -51242,43 +45544,65 @@ "kind": "space" }, { - "text": "Intl", + "text": "globalThis", "kind": "moduleName" } ], "documentation": [] }, { - "name": "c1", - "kind": "class", + "name": "if", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "class", + "text": "if", "kind": "keyword" - }, + } + ] + }, + { + "name": "implements", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": " ", - "kind": "space" - }, + "text": "implements", + "kind": "keyword" + } + ] + }, + { + "name": "import", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "c1", - "kind": "className" + "text": "import", + "kind": "keyword" } - ], - "documentation": [ + ] + }, + { + "name": "in", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "This is comment for c1", - "kind": "text" + "text": "in", + "kind": "keyword" } ] }, { - "name": "i1", + "name": "Infinity", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { "text": "var", @@ -51289,7 +45613,7 @@ "kind": "space" }, { - "text": "i1", + "text": "Infinity", "kind": "localName" }, { @@ -51301,18 +45625,46 @@ "kind": "space" }, { - "text": "c1", - "kind": "className" + "text": "number", + "kind": "keyword" } ], "documentation": [] }, { - "name": "i1_p", - "kind": "var", + "name": "instanceof", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", + "displayParts": [ + { + "text": "instanceof", + "kind": "keyword" + } + ] + }, + { + "name": "Int16Array", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Int16Array", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, { "text": "var", "kind": "keyword" @@ -51322,7 +45674,7 @@ "kind": "space" }, { - "text": "i1_p", + "text": "Int16Array", "kind": "localName" }, { @@ -51334,20 +45686,25 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "Int16ArrayConstructor", + "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "A typed array of 16-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] }, { - "name": "i1_f", + "name": "Int32Array", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -51355,24 +45712,24 @@ "kind": "space" }, { - "text": "i1_f", + "text": "Int32Array", "kind": "localName" }, { - "text": ":", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": " ", - "kind": "space" + "text": "var", + "kind": "keyword" }, { - "text": "(", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": "b", - "kind": "parameterName" + "text": "Int32Array", + "kind": "localName" }, { "text": ":", @@ -51383,38 +45740,39 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" - }, + "text": "Int32ArrayConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ { - "text": ")", - "kind": "punctuation" + "text": "A typed array of 32-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] + }, + { + "name": "Int8Array", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "=>", - "kind": "punctuation" + "text": "Int8Array", + "kind": "localName" }, { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_r", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ { "text": "var", "kind": "keyword" @@ -51424,7 +45782,7 @@ "kind": "space" }, { - "text": "i1_r", + "text": "Int8Array", "kind": "localName" }, { @@ -51436,53 +45794,58 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "Int8ArrayConstructor", + "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "A typed array of 8-bit integer values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] }, { - "name": "i1_prop", - "kind": "var", + "name": "interface", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "i1_prop", - "kind": "localName" - }, + } + ] + }, + { + "name": "Intl", + "kind": "module", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { - "text": ":", - "kind": "punctuation" + "text": "namespace", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "Intl", + "kind": "moduleName" } ], "documentation": [] }, { - "name": "i1_nc_p", - "kind": "var", - "kindModifiers": "", - "sortText": "11", + "name": "isFinite", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "function", "kind": "keyword" }, { @@ -51490,8 +45853,16 @@ "kind": "space" }, { - "text": "i1_nc_p", - "kind": "localName" + "text": "isFinite", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "number", + "kind": "parameterName" }, { "text": ":", @@ -51504,18 +45875,58 @@ { "text": "number", "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "boolean", + "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Determines whether a supplied number is finite.", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "number", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Any numeric value.", + "kind": "text" + } + ] + } + ] }, { - "name": "i1_ncf", - "kind": "var", - "kindModifiers": "", - "sortText": "11", + "name": "isNaN", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "function", "kind": "keyword" }, { @@ -51523,23 +45934,15 @@ "kind": "space" }, { - "text": "i1_ncf", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "isNaN", + "kind": "functionName" }, { "text": "(", "kind": "punctuation" }, { - "text": "b", + "text": "number", "kind": "parameterName" }, { @@ -51559,11 +45962,7 @@ "kind": "punctuation" }, { - "text": " ", - "kind": "space" - }, - { - "text": "=>", + "text": ":", "kind": "punctuation" }, { @@ -51571,18 +45970,58 @@ "kind": "space" }, { - "text": "number", + "text": "boolean", "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Returns a Boolean value that indicates whether a value is the reserved value NaN (not a number).", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "number", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A numeric value.", + "kind": "text" + } + ] + } + ] }, { - "name": "i1_ncr", + "name": "JSON", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "JSON", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, { "text": "var", "kind": "keyword" @@ -51592,7 +46031,7 @@ "kind": "space" }, { - "text": "i1_ncr", + "text": "JSON", "kind": "localName" }, { @@ -51604,18 +46043,51 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "JSON", + "kind": "localName" } ], - "documentation": [] + "documentation": [ + { + "text": "An intrinsic object that provides functions to convert JavaScript values to and from the JavaScript Object Notation (JSON) format.", + "kind": "text" + } + ] }, { - "name": "i1_ncprop", - "kind": "var", + "name": "let", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", + "displayParts": [ + { + "text": "let", + "kind": "keyword" + } + ] + }, + { + "name": "Math", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Math", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, { "text": "var", "kind": "keyword" @@ -51625,7 +46097,7 @@ "kind": "space" }, { - "text": "i1_ncprop", + "text": "Math", "kind": "localName" }, { @@ -51637,17 +46109,22 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "Math", + "kind": "localName" } ], - "documentation": [] + "documentation": [ + { + "text": "An intrinsic object that provides basic mathematics functionality and constants.", + "kind": "text" + } + ] }, { - "name": "i1_s_p", + "name": "NaN", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { "text": "var", @@ -51658,7 +46135,7 @@ "kind": "space" }, { - "text": "i1_s_p", + "text": "NaN", "kind": "localName" }, { @@ -51677,13 +46154,37 @@ "documentation": [] }, { - "name": "i1_s_f", - "kind": "var", + "name": "new", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "new", + "kind": "keyword" + } + ] + }, + { + "name": "null", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "null", + "kind": "keyword" + } + ] + }, + { + "name": "Number", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", "kind": "keyword" }, { @@ -51691,24 +46192,24 @@ "kind": "space" }, { - "text": "i1_s_f", + "text": "Number", "kind": "localName" }, { - "text": ":", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": " ", - "kind": "space" + "text": "var", + "kind": "keyword" }, { - "text": "(", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": "b", - "kind": "parameterName" + "text": "Number", + "kind": "localName" }, { "text": ":", @@ -51719,38 +46220,39 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" - }, + "text": "NumberConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ { - "text": ")", - "kind": "punctuation" + "text": "An object that represents a number of any kind. All JavaScript numbers are 64-bit floating-point numbers.", + "kind": "text" + } + ] + }, + { + "name": "Object", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "=>", - "kind": "punctuation" + "text": "Object", + "kind": "localName" }, { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_s_r", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ { "text": "var", "kind": "keyword" @@ -51760,7 +46262,7 @@ "kind": "space" }, { - "text": "i1_s_r", + "text": "Object", "kind": "localName" }, { @@ -51772,20 +46274,37 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "ObjectConstructor", + "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "Provides functionality common to all JavaScript objects.", + "kind": "text" + } + ] }, { - "name": "i1_s_prop", - "kind": "var", + "name": "package", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "package", + "kind": "keyword" + } + ] + }, + { + "name": "parseFloat", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "function", "kind": "keyword" }, { @@ -51793,41 +46312,32 @@ "kind": "space" }, { - "text": "i1_s_prop", - "kind": "localName" + "text": "parseFloat", + "kind": "functionName" }, { - "text": ":", + "text": "(", "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "string", + "kind": "parameterName" }, { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_s_nc_p", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "i1_s_nc_p", - "kind": "localName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -51842,16 +46352,40 @@ "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Converts a string to a floating-point number.", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string that contains a floating-point number.", + "kind": "text" + } + ] + } + ] }, { - "name": "i1_s_ncf", - "kind": "var", - "kindModifiers": "", - "sortText": "11", + "name": "parseInt", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "function", "kind": "keyword" }, { @@ -51859,8 +46393,16 @@ "kind": "space" }, { - "text": "i1_s_ncf", - "kind": "localName" + "text": "parseInt", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "string", + "kind": "parameterName" }, { "text": ":", @@ -51871,13 +46413,25 @@ "kind": "space" }, { - "text": "(", + "text": "string", + "kind": "keyword" + }, + { + "text": ",", "kind": "punctuation" }, { - "text": "b", + "text": " ", + "kind": "space" + }, + { + "text": "radix", "kind": "parameterName" }, + { + "text": "?", + "kind": "punctuation" + }, { "text": ":", "kind": "punctuation" @@ -51895,11 +46449,7 @@ "kind": "punctuation" }, { - "text": " ", - "kind": "space" - }, - { - "text": "=>", + "text": ":", "kind": "punctuation" }, { @@ -51911,16 +46461,57 @@ "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Converts a string to an integer.", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string to convert into a number.", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "radix", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value between 2 and 36 that specifies the base of the number in `string`.\r\nIf this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal.\r\nAll other strings are considered decimal.", + "kind": "text" + } + ] + } + ] }, { - "name": "i1_s_ncr", + "name": "RangeError", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -51928,30 +46519,13 @@ "kind": "space" }, { - "text": "i1_s_ncr", + "text": "RangeError", "kind": "localName" }, { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_s_ncprop", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ { "text": "var", "kind": "keyword" @@ -51961,7 +46535,7 @@ "kind": "space" }, { - "text": "i1_s_ncprop", + "text": "RangeError", "kind": "localName" }, { @@ -51973,20 +46547,20 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "RangeErrorConstructor", + "kind": "interfaceName" } ], "documentation": [] }, { - "name": "i1_c", + "name": "ReferenceError", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -51994,19 +46568,15 @@ "kind": "space" }, { - "text": "i1_c", + "text": "ReferenceError", "kind": "localName" }, { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, { - "text": "typeof", + "text": "var", "kind": "keyword" }, { @@ -52014,41 +46584,32 @@ "kind": "space" }, { - "text": "c1", - "kind": "className" - } - ], - "documentation": [] - }, - { - "name": "cProperties", - "kind": "class", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ + "text": "ReferenceError", + "kind": "localName" + }, { - "text": "class", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "cProperties", - "kind": "className" + "text": "ReferenceErrorConstructor", + "kind": "interfaceName" } ], "documentation": [] }, { - "name": "cProperties_i", + "name": "RegExp", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -52056,32 +46617,15 @@ "kind": "space" }, { - "text": "cProperties_i", + "text": "RegExp", "kind": "localName" }, { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, { - "text": "cProperties", - "kind": "className" - } - ], - "documentation": [] - }, - { - "name": "cWithConstructorProperty", - "kind": "class", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "class", + "text": "var", "kind": "keyword" }, { @@ -52089,612 +46633,643 @@ "kind": "space" }, { - "text": "cWithConstructorProperty", - "kind": "className" - } - ], - "documentation": [] - }, - { - "name": "undefined", - "kind": "var", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "RegExp", + "kind": "localName" + }, { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "undefined", - "kind": "propertyName" + "text": "RegExpConstructor", + "kind": "interfaceName" } ], "documentation": [] }, { - "name": "break", + "name": "return", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "break", + "text": "return", "kind": "keyword" } ] }, { - "name": "case", - "kind": "keyword", - "kindModifiers": "", + "name": "String", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "case", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "catch", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "catch", - "kind": "keyword" - } - ] - }, - { - "name": "class", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "class", - "kind": "keyword" - } - ] - }, - { - "name": "const", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "String", + "kind": "localName" + }, { - "text": "const", - "kind": "keyword" - } - ] - }, - { - "name": "continue", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "\n", + "kind": "lineBreak" + }, { - "text": "continue", + "text": "var", "kind": "keyword" - } - ] - }, - { - "name": "debugger", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "debugger", - "kind": "keyword" - } - ] - }, - { - "name": "default", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "default", - "kind": "keyword" - } - ] - }, - { - "name": "delete", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "String", + "kind": "localName" + }, { - "text": "delete", - "kind": "keyword" - } - ] - }, - { - "name": "do", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": ":", + "kind": "punctuation" + }, { - "text": "do", - "kind": "keyword" - } - ] - }, - { - "name": "else", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "else", - "kind": "keyword" + "text": "StringConstructor", + "kind": "interfaceName" } - ] - }, - { - "name": "enum", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "enum", - "kind": "keyword" + "text": "Allows manipulation and formatting of text strings and determination and location of substrings within strings.", + "kind": "text" } ] }, { - "name": "export", + "name": "super", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "export", + "text": "super", "kind": "keyword" } ] }, { - "name": "extends", + "name": "switch", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "extends", + "text": "switch", "kind": "keyword" } ] }, { - "name": "false", - "kind": "keyword", - "kindModifiers": "", + "name": "SyntaxError", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "false", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "finally", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "finally", - "kind": "keyword" - } - ] - }, - { - "name": "for", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "for", + "text": "SyntaxError", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "SyntaxError", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "SyntaxErrorConstructor", + "kind": "interfaceName" } - ] + ], + "documentation": [] }, { - "name": "function", + "name": "this", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "this", "kind": "keyword" } ] }, { - "name": "if", + "name": "throw", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "if", + "text": "throw", "kind": "keyword" } ] }, { - "name": "import", + "name": "true", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "import", + "text": "true", "kind": "keyword" } ] }, { - "name": "in", + "name": "try", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "in", + "text": "try", "kind": "keyword" } ] }, { - "name": "instanceof", - "kind": "keyword", - "kindModifiers": "", + "name": "TypeError", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "instanceof", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "new", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "new", + "text": " ", + "kind": "space" + }, + { + "text": "TypeError", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "TypeError", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "TypeErrorConstructor", + "kind": "interfaceName" } - ] + ], + "documentation": [] }, { - "name": "null", + "name": "typeof", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "null", + "text": "typeof", "kind": "keyword" } ] }, { - "name": "return", - "kind": "keyword", - "kindModifiers": "", + "name": "Uint16Array", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "return", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "super", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "super", + "text": " ", + "kind": "space" + }, + { + "text": "Uint16Array", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint16Array", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint16ArrayConstructor", + "kind": "interfaceName" } - ] - }, - { - "name": "switch", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "switch", - "kind": "keyword" + "text": "A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" } ] }, { - "name": "this", - "kind": "keyword", - "kindModifiers": "", + "name": "Uint32Array", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "this", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "throw", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "throw", + "text": " ", + "kind": "space" + }, + { + "text": "Uint32Array", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint32Array", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint32ArrayConstructor", + "kind": "interfaceName" } - ] - }, - { - "name": "true", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "true", - "kind": "keyword" + "text": "A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" } ] }, { - "name": "try", - "kind": "keyword", - "kindModifiers": "", + "name": "Uint8Array", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "try", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "typeof", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "typeof", + "text": " ", + "kind": "space" + }, + { + "text": "Uint8Array", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" - } - ] - }, - { - "name": "var", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint8Array", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, { - "text": "var", - "kind": "keyword" + "text": "Uint8ArrayConstructor", + "kind": "interfaceName" } - ] - }, - { - "name": "void", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "void", - "kind": "keyword" + "text": "A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" } ] }, { - "name": "while", - "kind": "keyword", - "kindModifiers": "", + "name": "Uint8ClampedArray", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "while", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "with", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "with", + "text": " ", + "kind": "space" + }, + { + "text": "Uint8ClampedArray", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint8ClampedArray", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint8ClampedArrayConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ + { + "text": "A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0.\r\nIf the requested number of bytes could not be allocated an exception is raised.", + "kind": "text" } ] }, { - "name": "implements", - "kind": "keyword", + "name": "undefined", + "kind": "var", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "implements", + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "undefined", + "kind": "propertyName" } - ] + ], + "documentation": [] }, { - "name": "interface", - "kind": "keyword", - "kindModifiers": "", + "name": "URIError", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "let", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "let", + "text": " ", + "kind": "space" + }, + { + "text": "URIError", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "URIError", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "URIErrorConstructor", + "kind": "interfaceName" } - ] + ], + "documentation": [] }, { - "name": "package", + "name": "var", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "package", + "text": "var", "kind": "keyword" } ] }, { - "name": "yield", + "name": "void", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "yield", + "text": "void", "kind": "keyword" } ] }, { - "name": "as", + "name": "while", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "as", + "text": "while", "kind": "keyword" } ] }, { - "name": "async", + "name": "with", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "async", + "text": "with", "kind": "keyword" } ] }, { - "name": "await", + "name": "yield", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "await", + "text": "yield", "kind": "keyword" } ] - } - ] - } - }, - { - "marker": { - "fileName": "/tests/cases/fourslash/completionsCommentsClassMembers.ts", - "position": 1221, - "name": "41" - }, - "completionList": { - "isGlobalCompletion": false, - "isMemberCompletion": true, - "isNewIdentifierLocation": false, - "optionalReplacementSpan": { - "start": 1221, - "length": 2 - }, - "entries": [ + }, { - "name": "prototype", - "kind": "property", - "kindModifiers": "", - "sortText": "11", + "name": "escape", + "kind": "function", + "kindModifiers": "deprecated,declare", + "sortText": "z15", "displayParts": [ { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" + "text": "function", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "c1", - "kind": "className" + "text": "escape", + "kind": "functionName" }, { - "text": ".", + "text": "(", "kind": "punctuation" }, { - "text": "prototype", - "kind": "propertyName" + "text": "string", + "kind": "parameterName" }, { "text": ":", @@ -52705,46 +47280,13 @@ "kind": "space" }, { - "text": "c1", - "kind": "className" - } - ], - "documentation": [] - }, - { - "name": "s1", - "kind": "property", - "kindModifiers": "static", - "sortText": "10", - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" + "text": "string", + "kind": "keyword" }, { "text": ")", "kind": "punctuation" }, - { - "text": " ", - "kind": "space" - }, - { - "text": "c1", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "s1", - "kind": "propertyName" - }, { "text": ":", "kind": "punctuation" @@ -52754,57 +47296,69 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" } ], "documentation": [ { - "text": "s1 is static property of c1", + "text": "Computes a new string in which certain characters have been replaced by a hexadecimal escape sequence.", "kind": "text" } + ], + "tags": [ + { + "name": "deprecated", + "text": [ + { + "text": "A legacy feature for browser compatibility", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string value", + "kind": "text" + } + ] + } ] }, { - "name": "s2", - "kind": "method", - "kindModifiers": "static", - "sortText": "10", + "name": "unescape", + "kind": "function", + "kindModifiers": "deprecated,declare", + "sortText": "z15", "displayParts": [ { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" + "text": "function", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "c1", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "s2", - "kind": "methodName" + "text": "unescape", + "kind": "functionName" }, { "text": "(", "kind": "punctuation" }, { - "text": "b", + "text": "string", "kind": "parameterName" }, { @@ -52816,7 +47370,7 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" }, { @@ -52832,79 +47386,63 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" } ], "documentation": [ { - "text": "static sum with property", - "kind": "text" - } - ] - }, - { - "name": "s3", - "kind": "property", - "kindModifiers": "static", - "sortText": "10", - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", + "text": "Computes a new string in which hexadecimal escape sequences are replaced with the character that it represents.", "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "c1", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "s3", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" } ], - "documentation": [ - { - "text": "static getter property", - "kind": "text" - }, + "tags": [ { - "text": "\n", - "kind": "lineBreak" + "name": "deprecated", + "text": [ + { + "text": "A legacy feature for browser compatibility", + "kind": "text" + } + ] }, { - "text": "setter property 3", - "kind": "text" + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string value", + "kind": "text" + } + ] } ] - }, + } + ] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/completionsCommentsClassMembers.ts", + "position": 1213, + "name": "39" + }, + "completionList": { + "isGlobalCompletion": false, + "isMemberCompletion": true, + "isNewIdentifierLocation": false, + "optionalReplacementSpan": { + "start": 1213, + "length": 2 + }, + "entries": [ { "name": "nc_s1", "kind": "property", @@ -53077,101 +47615,21 @@ "documentation": [] }, { - "name": "apply", - "kind": "method", - "kindModifiers": "declare", - "sortText": "11", - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Function", - "kind": "localName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "apply", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "this", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Function", - "kind": "localName" - }, - { - "text": ",", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "thisArg", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - }, - { - "text": ",", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, + "name": "s1", + "kind": "property", + "kindModifiers": "static", + "sortText": "10", + "displayParts": [ { - "text": "argArray", - "kind": "parameterName" + "text": "(", + "kind": "punctuation" }, { - "text": "?", - "kind": "punctuation" + "text": "property", + "kind": "text" }, { - "text": ":", + "text": ")", "kind": "punctuation" }, { @@ -53179,13 +47637,17 @@ "kind": "space" }, { - "text": "any", - "kind": "keyword" + "text": "c1", + "kind": "className" }, { - "text": ")", + "text": ".", "kind": "punctuation" }, + { + "text": "s1", + "kind": "propertyName" + }, { "text": ":", "kind": "punctuation" @@ -53195,58 +47657,22 @@ "kind": "space" }, { - "text": "any", + "text": "number", "kind": "keyword" } ], "documentation": [ { - "text": "Calls the function, substituting the specified object for the this value of the function, and the specified array for the arguments of the function.", + "text": "s1 is static property of c1", "kind": "text" } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "thisArg", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "The object to be used as the this object.", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "argArray", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A set of arguments to be passed to the function.", - "kind": "text" - } - ] - } ] }, { - "name": "call", + "name": "s2", "kind": "method", - "kindModifiers": "declare", - "sortText": "11", + "kindModifiers": "static", + "sortText": "10", "displayParts": [ { "text": "(", @@ -53265,15 +47691,15 @@ "kind": "space" }, { - "text": "Function", - "kind": "localName" + "text": "c1", + "kind": "className" }, { "text": ".", "kind": "punctuation" }, { - "text": "call", + "text": "s2", "kind": "methodName" }, { @@ -53281,7 +47707,7 @@ "kind": "punctuation" }, { - "text": "this", + "text": "b", "kind": "parameterName" }, { @@ -53293,21 +47719,13 @@ "kind": "space" }, { - "text": "Function", - "kind": "localName" + "text": "number", + "kind": "keyword" }, { - "text": ",", + "text": ")", "kind": "punctuation" }, - { - "text": " ", - "kind": "space" - }, - { - "text": "thisArg", - "kind": "parameterName" - }, { "text": ":", "kind": "punctuation" @@ -53317,27 +47735,33 @@ "kind": "space" }, { - "text": "any", + "text": "number", "kind": "keyword" - }, - { - "text": ",", - "kind": "punctuation" - }, + } + ], + "documentation": [ { - "text": " ", - "kind": "space" - }, + "text": "static sum with property", + "kind": "text" + } + ] + }, + { + "name": "s3", + "kind": "property", + "kindModifiers": "static", + "sortText": "10", + "displayParts": [ { - "text": "...", + "text": "(", "kind": "punctuation" }, { - "text": "argArray", - "kind": "parameterName" + "text": "property", + "kind": "text" }, { - "text": ":", + "text": ")", "kind": "punctuation" }, { @@ -53345,20 +47769,16 @@ "kind": "space" }, { - "text": "any", - "kind": "keyword" - }, - { - "text": "[", - "kind": "punctuation" + "text": "c1", + "kind": "className" }, { - "text": "]", + "text": ".", "kind": "punctuation" }, { - "text": ")", - "kind": "punctuation" + "text": "s3", + "kind": "propertyName" }, { "text": ":", @@ -53369,55 +47789,27 @@ "kind": "space" }, { - "text": "any", + "text": "number", "kind": "keyword" } ], "documentation": [ { - "text": "Calls a method of an object, substituting another object for the current object.", + "text": "static getter property", "kind": "text" - } - ], - "tags": [ + }, { - "name": "param", - "text": [ - { - "text": "thisArg", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "The object to be used as the current object.", - "kind": "text" - } - ] + "text": "\n", + "kind": "lineBreak" }, { - "name": "param", - "text": [ - { - "text": "argArray", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A list of arguments to be passed to the method.", - "kind": "text" - } - ] + "text": "setter property 3", + "kind": "text" } ] }, { - "name": "bind", + "name": "apply", "kind": "method", "kindModifiers": "declare", "sortText": "11", @@ -53447,7 +47839,7 @@ "kind": "punctuation" }, { - "text": "bind", + "text": "apply", "kind": "methodName" }, { @@ -53502,14 +47894,14 @@ "text": " ", "kind": "space" }, - { - "text": "...", - "kind": "punctuation" - }, { "text": "argArray", "kind": "parameterName" }, + { + "text": "?", + "kind": "punctuation" + }, { "text": ":", "kind": "punctuation" @@ -53522,14 +47914,6 @@ "text": "any", "kind": "keyword" }, - { - "text": "[", - "kind": "punctuation" - }, - { - "text": "]", - "kind": "punctuation" - }, { "text": ")", "kind": "punctuation" @@ -53549,7 +47933,7 @@ ], "documentation": [ { - "text": "For a given function, creates a bound function that has the same body as the original function.\r\nThe this object of the bound function is associated with the specified object, and has the specified initial parameters.", + "text": "Calls the function, substituting the specified object for the this value of the function, and the specified array for the arguments of the function.", "kind": "text" } ], @@ -53566,7 +47950,7 @@ "kind": "space" }, { - "text": "An object to which the this keyword can refer inside the new function.", + "text": "The object to be used as the this object.", "kind": "text" } ] @@ -53583,7 +47967,7 @@ "kind": "space" }, { - "text": "A list of arguments to be passed to the new function.", + "text": "A set of arguments to be passed to the function.", "kind": "text" } ] @@ -53591,69 +47975,7 @@ ] }, { - "name": "toString", - "kind": "method", - "kindModifiers": "declare", - "sortText": "11", - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Function", - "kind": "localName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "toString", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Returns a string representation of a function.", - "kind": "text" - } - ] - }, - { - "name": "length", + "name": "arguments", "kind": "property", "kindModifiers": "declare", "sortText": "11", @@ -53683,7 +48005,7 @@ "kind": "punctuation" }, { - "text": "length", + "text": "arguments", "kind": "propertyName" }, { @@ -53695,15 +48017,15 @@ "kind": "space" }, { - "text": "number", + "text": "any", "kind": "keyword" } ], "documentation": [] }, { - "name": "arguments", - "kind": "property", + "name": "bind", + "kind": "method", "kindModifiers": "declare", "sortText": "11", "displayParts": [ @@ -53712,7 +48034,7 @@ "kind": "punctuation" }, { - "text": "property", + "text": "method", "kind": "text" }, { @@ -53732,57 +48054,16 @@ "kind": "punctuation" }, { - "text": "arguments", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "bind", + "kind": "methodName" }, - { - "text": "any", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "caller", - "kind": "property", - "kindModifiers": "declare", - "sortText": "11", - "displayParts": [ { "text": "(", "kind": "punctuation" }, { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Function", - "kind": "localName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "caller", - "kind": "propertyName" + "text": "this", + "kind": "parameterName" }, { "text": ":", @@ -53795,44 +48076,9 @@ { "text": "Function", "kind": "localName" - } - ], - "documentation": [] - } - ] - } - }, - { - "marker": { - "fileName": "/tests/cases/fourslash/completionsCommentsClassMembers.ts", - "position": 1224, - "name": "42" - }, - "completionList": { - "isGlobalCompletion": false, - "isMemberCompletion": false, - "isNewIdentifierLocation": true, - "optionalReplacementSpan": { - "start": 1224, - "length": 5 - }, - "entries": [ - { - "name": "value", - "kind": "parameter", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "parameter", - "kind": "text" }, { - "text": ")", + "text": ",", "kind": "punctuation" }, { @@ -53840,7 +48086,7 @@ "kind": "space" }, { - "text": "value", + "text": "thisArg", "kind": "parameterName" }, { @@ -53852,33 +48098,11 @@ "kind": "space" }, { - "text": "number", + "text": "any", "kind": "keyword" - } - ], - "documentation": [ - { - "text": "this is value", - "kind": "text" - } - ] - }, - { - "name": "arguments", - "kind": "local var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "local var", - "kind": "text" }, { - "text": ")", + "text": ",", "kind": "punctuation" }, { @@ -53886,83 +48110,33 @@ "kind": "space" }, { - "text": "arguments", - "kind": "propertyName" - }, - { - "text": ":", + "text": "...", "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "argArray", + "kind": "parameterName" }, { - "text": "IArguments", - "kind": "interfaceName" - } - ], - "documentation": [] - }, - { - "name": "globalThis", - "kind": "module", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "module", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "globalThis", - "kind": "moduleName" - } - ], - "documentation": [] - }, - { - "name": "eval", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "function", + "text": "any", "kind": "keyword" }, { - "text": " ", - "kind": "space" - }, - { - "text": "eval", - "kind": "functionName" - }, - { - "text": "(", + "text": "[", "kind": "punctuation" }, { - "text": "x", - "kind": "parameterName" - }, - { - "text": ":", + "text": "]", "kind": "punctuation" }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, { "text": ")", "kind": "punctuation" @@ -53982,7 +48156,7 @@ ], "documentation": [ { - "text": "Evaluates JavaScript code and executes it.", + "text": "For a given function, creates a bound function that has the same body as the original function.\r\nThe this object of the bound function is associated with the specified object, and has the specified initial parameters.", "kind": "text" } ], @@ -53991,7 +48165,7 @@ "name": "param", "text": [ { - "text": "x", + "text": "thisArg", "kind": "parameterName" }, { @@ -53999,7 +48173,24 @@ "kind": "space" }, { - "text": "A String value that contains valid JavaScript code.", + "text": "An object to which the this keyword can refer inside the new function.", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "argArray", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A list of arguments to be passed to the new function.", "kind": "text" } ] @@ -54007,29 +48198,69 @@ ] }, { - "name": "parseInt", - "kind": "function", + "name": "call", + "kind": "method", "kindModifiers": "declare", - "sortText": "15", + "sortText": "11", "displayParts": [ { - "text": "function", - "kind": "keyword" + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Function", + "kind": "localName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "call", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "this", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "parseInt", - "kind": "functionName" + "text": "Function", + "kind": "localName" }, { - "text": "(", + "text": ",", "kind": "punctuation" }, { - "text": "string", + "text": " ", + "kind": "space" + }, + { + "text": "thisArg", "kind": "parameterName" }, { @@ -54041,7 +48272,7 @@ "kind": "space" }, { - "text": "string", + "text": "any", "kind": "keyword" }, { @@ -54053,12 +48284,12 @@ "kind": "space" }, { - "text": "radix", - "kind": "parameterName" + "text": "...", + "kind": "punctuation" }, { - "text": "?", - "kind": "punctuation" + "text": "argArray", + "kind": "parameterName" }, { "text": ":", @@ -54069,9 +48300,17 @@ "kind": "space" }, { - "text": "number", + "text": "any", "kind": "keyword" }, + { + "text": "[", + "kind": "punctuation" + }, + { + "text": "]", + "kind": "punctuation" + }, { "text": ")", "kind": "punctuation" @@ -54085,13 +48324,13 @@ "kind": "space" }, { - "text": "number", + "text": "any", "kind": "keyword" } ], "documentation": [ { - "text": "Converts a string to an integer.", + "text": "Calls a method of an object, substituting another object for the current object.", "kind": "text" } ], @@ -54100,7 +48339,7 @@ "name": "param", "text": [ { - "text": "string", + "text": "thisArg", "kind": "parameterName" }, { @@ -54108,7 +48347,7 @@ "kind": "space" }, { - "text": "A string to convert into a number.", + "text": "The object to be used as the current object.", "kind": "text" } ] @@ -54117,7 +48356,7 @@ "name": "param", "text": [ { - "text": "radix", + "text": "argArray", "kind": "parameterName" }, { @@ -54125,7 +48364,7 @@ "kind": "space" }, { - "text": "A value between 2 and 36 that specifies the base of the number in `string`.\r\nIf this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal.\r\nAll other strings are considered decimal.", + "text": "A list of arguments to be passed to the method.", "kind": "text" } ] @@ -54133,33 +48372,21 @@ ] }, { - "name": "parseFloat", - "kind": "function", + "name": "caller", + "kind": "property", "kindModifiers": "declare", - "sortText": "15", + "sortText": "11", "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "parseFloat", - "kind": "functionName" - }, { "text": "(", "kind": "punctuation" }, { - "text": "string", - "kind": "parameterName" + "text": "property", + "kind": "text" }, { - "text": ":", + "text": ")", "kind": "punctuation" }, { @@ -54167,13 +48394,17 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "Function", + "kind": "localName" }, { - "text": ")", + "text": ".", "kind": "punctuation" }, + { + "text": "caller", + "kind": "propertyName" + }, { "text": ":", "kind": "punctuation" @@ -54183,64 +48414,28 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Converts a string to a floating-point number.", - "kind": "text" + "text": "Function", + "kind": "localName" } ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string that contains a floating-point number.", - "kind": "text" - } - ] - } - ] + "documentation": [] }, { - "name": "isNaN", - "kind": "function", + "name": "length", + "kind": "property", "kindModifiers": "declare", - "sortText": "15", + "sortText": "11", "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "isNaN", - "kind": "functionName" - }, { "text": "(", "kind": "punctuation" }, { - "text": "number", - "kind": "parameterName" + "text": "property", + "kind": "text" }, { - "text": ":", + "text": ")", "kind": "punctuation" }, { @@ -54248,13 +48443,17 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "Function", + "kind": "localName" }, { - "text": ")", + "text": ".", "kind": "punctuation" }, + { + "text": "length", + "kind": "propertyName" + }, { "text": ":", "kind": "punctuation" @@ -54264,64 +48463,28 @@ "kind": "space" }, { - "text": "boolean", + "text": "number", "kind": "keyword" } ], - "documentation": [ - { - "text": "Returns a Boolean value that indicates whether a value is the reserved value NaN (not a number).", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "number", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A numeric value.", - "kind": "text" - } - ] - } - ] + "documentation": [] }, { - "name": "isFinite", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "name": "prototype", + "kind": "property", + "kindModifiers": "", + "sortText": "11", "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "isFinite", - "kind": "functionName" - }, { "text": "(", "kind": "punctuation" }, { - "text": "number", - "kind": "parameterName" + "text": "property", + "kind": "text" }, { - "text": ":", + "text": ")", "kind": "punctuation" }, { @@ -54329,13 +48492,17 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "c1", + "kind": "className" }, { - "text": ")", + "text": ".", "kind": "punctuation" }, + { + "text": "prototype", + "kind": "propertyName" + }, { "text": ":", "kind": "punctuation" @@ -54345,73 +48512,49 @@ "kind": "space" }, { - "text": "boolean", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Determines whether a supplied number is finite.", - "kind": "text" + "text": "c1", + "kind": "className" } ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "number", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Any numeric value.", - "kind": "text" - } - ] - } - ] + "documentation": [] }, { - "name": "decodeURI", - "kind": "function", + "name": "toString", + "kind": "method", "kindModifiers": "declare", - "sortText": "15", + "sortText": "11", "displayParts": [ { - "text": "function", - "kind": "keyword" + "text": "(", + "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "method", + "kind": "text" }, { - "text": "decodeURI", - "kind": "functionName" + "text": ")", + "kind": "punctuation" }, { - "text": "(", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": "encodedURI", - "kind": "parameterName" + "text": "Function", + "kind": "localName" }, { - "text": ":", + "text": ".", "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "toString", + "kind": "methodName" }, { - "text": "string", - "kind": "keyword" + "text": "(", + "kind": "punctuation" }, { "text": ")", @@ -54432,55 +48575,54 @@ ], "documentation": [ { - "text": "Gets the unencoded version of an encoded Uniform Resource Identifier (URI).", + "text": "Returns a string representation of a function.", "kind": "text" } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "encodedURI", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI.", - "kind": "text" - } - ] - } ] - }, + } + ] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/completionsCommentsClassMembers.ts", + "position": 1218, + "name": "40" + }, + "completionList": { + "isGlobalCompletion": false, + "isMemberCompletion": false, + "isNewIdentifierLocation": true, + "optionalReplacementSpan": { + "start": 1218, + "length": 2 + }, + "entries": [ { - "name": "decodeURIComponent", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "name": "arguments", + "kind": "local var", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "function", - "kind": "keyword" + "text": "(", + "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "local var", + "kind": "text" }, { - "text": "decodeURIComponent", - "kind": "functionName" + "text": ")", + "kind": "punctuation" }, { - "text": "(", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": "encodedURIComponent", - "kind": "parameterName" + "text": "arguments", + "kind": "propertyName" }, { "text": ":", @@ -54491,60 +48633,46 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, + "text": "IArguments", + "kind": "interfaceName" + } + ], + "documentation": [] + }, + { + "name": "c1", + "kind": "class", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { - "text": ":", - "kind": "punctuation" + "text": "class", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "c1", + "kind": "className" } ], "documentation": [ { - "text": "Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).", + "text": "This is comment for c1", "kind": "text" } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "encodedURIComponent", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI component.", - "kind": "text" - } - ] - } ] }, { - "name": "encodeURI", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "name": "cProperties", + "kind": "class", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "function", + "text": "class", "kind": "keyword" }, { @@ -54552,16 +48680,29 @@ "kind": "space" }, { - "text": "encodeURI", - "kind": "functionName" + "text": "cProperties", + "kind": "className" + } + ], + "documentation": [] + }, + { + "name": "cProperties_i", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "var", + "kind": "keyword" }, { - "text": "(", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": "uri", - "kind": "parameterName" + "text": "cProperties_i", + "kind": "localName" }, { "text": ":", @@ -54572,12 +48713,50 @@ "kind": "space" }, { - "text": "string", + "text": "cProperties", + "kind": "className" + } + ], + "documentation": [] + }, + { + "name": "cWithConstructorProperty", + "kind": "class", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "class", "kind": "keyword" }, { - "text": ")", - "kind": "punctuation" + "text": " ", + "kind": "space" + }, + { + "text": "cWithConstructorProperty", + "kind": "className" + } + ], + "documentation": [] + }, + { + "name": "i1", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "i1", + "kind": "localName" }, { "text": ":", @@ -54588,44 +48767,20 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Encodes a text string as a valid Uniform Resource Identifier (URI)", - "kind": "text" + "text": "c1", + "kind": "className" } ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "uri", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI.", - "kind": "text" - } - ] - } - ] + "documentation": [] }, { - "name": "encodeURIComponent", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "name": "i1_c", + "kind": "var", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "function", + "text": "var", "kind": "keyword" }, { @@ -54633,27 +48788,40 @@ "kind": "space" }, { - "text": "encodeURIComponent", - "kind": "functionName" + "text": "i1_c", + "kind": "localName" }, { - "text": "(", + "text": ":", "kind": "punctuation" }, { - "text": "uriComponent", - "kind": "parameterName" + "text": " ", + "kind": "space" }, { - "text": ":", - "kind": "punctuation" + "text": "typeof", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "string", + "text": "c1", + "kind": "className" + } + ], + "documentation": [] + }, + { + "name": "i1_f", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "var", "kind": "keyword" }, { @@ -54661,7 +48829,11 @@ "kind": "space" }, { - "text": "|", + "text": "i1_f", + "kind": "localName" + }, + { + "text": ":", "kind": "punctuation" }, { @@ -54669,15 +48841,15 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "(", + "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "b", + "kind": "parameterName" }, { - "text": "|", + "text": ":", "kind": "punctuation" }, { @@ -54685,7 +48857,7 @@ "kind": "space" }, { - "text": "boolean", + "text": "number", "kind": "keyword" }, { @@ -54693,7 +48865,11 @@ "kind": "punctuation" }, { - "text": ":", + "text": " ", + "kind": "space" + }, + { + "text": "=>", "kind": "punctuation" }, { @@ -54701,44 +48877,20 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" } ], - "documentation": [ - { - "text": "Encodes a text string as a valid component of a Uniform Resource Identifier (URI).", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "uriComponent", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI component.", - "kind": "text" - } - ] - } - ] + "documentation": [] }, { - "name": "escape", - "kind": "function", - "kindModifiers": "deprecated,declare", - "sortText": "23", + "name": "i1_nc_p", + "kind": "var", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "function", + "text": "var", "kind": "keyword" }, { @@ -54746,32 +48898,8 @@ "kind": "space" }, { - "text": "escape", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "string", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "i1_nc_p", + "kind": "localName" }, { "text": ":", @@ -54782,53 +48910,20 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" } ], - "documentation": [ - { - "text": "Computes a new string in which certain characters have been replaced by a hexadecimal escape sequence.", - "kind": "text" - } - ], - "tags": [ - { - "name": "deprecated", - "text": [ - { - "text": "A legacy feature for browser compatibility", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string value", - "kind": "text" - } - ] - } - ] + "documentation": [] }, { - "name": "unescape", - "kind": "function", - "kindModifiers": "deprecated,declare", - "sortText": "23", + "name": "i1_ncf", + "kind": "var", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "function", + "text": "var", "kind": "keyword" }, { @@ -54836,15 +48931,23 @@ "kind": "space" }, { - "text": "unescape", - "kind": "functionName" + "text": "i1_ncf", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" }, { "text": "(", "kind": "punctuation" }, { - "text": "string", + "text": "b", "kind": "parameterName" }, { @@ -54856,7 +48959,7 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" }, { @@ -54864,7 +48967,11 @@ "kind": "punctuation" }, { - "text": ":", + "text": " ", + "kind": "space" + }, + { + "text": "=>", "kind": "punctuation" }, { @@ -54872,50 +48979,17 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" } ], - "documentation": [ - { - "text": "Computes a new string in which hexadecimal escape sequences are replaced with the character that it represents.", - "kind": "text" - } - ], - "tags": [ - { - "name": "deprecated", - "text": [ - { - "text": "A legacy feature for browser compatibility", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string value", - "kind": "text" - } - ] - } - ] + "documentation": [] }, { - "name": "NaN", + "name": "i1_ncprop", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { "text": "var", @@ -54926,7 +49000,7 @@ "kind": "space" }, { - "text": "NaN", + "text": "i1_ncprop", "kind": "localName" }, { @@ -54945,10 +49019,10 @@ "documentation": [] }, { - "name": "Infinity", + "name": "i1_ncr", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { "text": "var", @@ -54959,7 +49033,7 @@ "kind": "space" }, { - "text": "Infinity", + "text": "i1_ncr", "kind": "localName" }, { @@ -54978,13 +49052,13 @@ "documentation": [] }, { - "name": "Object", + "name": "i1_p", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "var", "kind": "keyword" }, { @@ -54992,13 +49066,30 @@ "kind": "space" }, { - "text": "Object", + "text": "i1_p", "kind": "localName" }, { - "text": "\n", - "kind": "lineBreak" + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" }, + { + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "i1_prop", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { "text": "var", "kind": "keyword" @@ -55008,7 +49099,7 @@ "kind": "space" }, { - "text": "Object", + "text": "i1_prop", "kind": "localName" }, { @@ -55020,25 +49111,20 @@ "kind": "space" }, { - "text": "ObjectConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], - "documentation": [ - { - "text": "Provides functionality common to all JavaScript objects.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "Function", + "name": "i1_r", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "var", "kind": "keyword" }, { @@ -55046,13 +49132,30 @@ "kind": "space" }, { - "text": "Function", + "text": "i1_r", "kind": "localName" }, { - "text": "\n", - "kind": "lineBreak" + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" }, + { + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "i1_s_f", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { "text": "var", "kind": "keyword" @@ -55062,7 +49165,7 @@ "kind": "space" }, { - "text": "Function", + "text": "i1_s_f", "kind": "localName" }, { @@ -55074,39 +49177,54 @@ "kind": "space" }, { - "text": "FunctionConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ + "text": "(", + "kind": "punctuation" + }, { - "text": "Creates a new function.", - "kind": "text" - } - ] - }, - { - "name": "String", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ + "text": "b", + "kind": "parameterName" + }, { - "text": "interface", + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" }, + { + "text": ")", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "String", - "kind": "localName" + "text": "=>", + "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": " ", + "kind": "space" }, + { + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "i1_s_nc_p", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { "text": "var", "kind": "keyword" @@ -55116,7 +49234,7 @@ "kind": "space" }, { - "text": "String", + "text": "i1_s_nc_p", "kind": "localName" }, { @@ -55128,25 +49246,20 @@ "kind": "space" }, { - "text": "StringConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], - "documentation": [ - { - "text": "Allows manipulation and formatting of text strings and determination and location of substrings within strings.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "Boolean", + "name": "i1_s_ncf", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "var", "kind": "keyword" }, { @@ -55154,27 +49267,39 @@ "kind": "space" }, { - "text": "Boolean", + "text": "i1_s_ncf", "kind": "localName" }, { - "text": "\n", - "kind": "lineBreak" + "text": ":", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "b", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Boolean", - "kind": "localName" + "text": "number", + "kind": "keyword" }, { - "text": ":", + "text": ")", "kind": "punctuation" }, { @@ -55182,20 +49307,28 @@ "kind": "space" }, { - "text": "BooleanConstructor", - "kind": "interfaceName" + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" } ], "documentation": [] }, { - "name": "Number", + "name": "i1_s_ncprop", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "var", "kind": "keyword" }, { @@ -55203,13 +49336,30 @@ "kind": "space" }, { - "text": "Number", + "text": "i1_s_ncprop", "kind": "localName" }, { - "text": "\n", - "kind": "lineBreak" + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" }, + { + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "i1_s_ncr", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { "text": "var", "kind": "keyword" @@ -55219,7 +49369,7 @@ "kind": "space" }, { - "text": "Number", + "text": "i1_s_ncr", "kind": "localName" }, { @@ -55231,25 +49381,20 @@ "kind": "space" }, { - "text": "NumberConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], - "documentation": [ - { - "text": "An object that represents a number of any kind. All JavaScript numbers are 64-bit floating-point numbers.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "Math", + "name": "i1_s_p", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "var", "kind": "keyword" }, { @@ -55257,13 +49402,30 @@ "kind": "space" }, { - "text": "Math", + "text": "i1_s_p", "kind": "localName" }, { - "text": "\n", - "kind": "lineBreak" + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" }, + { + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "i1_s_prop", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { "text": "var", "kind": "keyword" @@ -55273,7 +49435,7 @@ "kind": "space" }, { - "text": "Math", + "text": "i1_s_prop", "kind": "localName" }, { @@ -55285,25 +49447,20 @@ "kind": "space" }, { - "text": "Math", - "kind": "localName" + "text": "number", + "kind": "keyword" } ], - "documentation": [ - { - "text": "An intrinsic object that provides basic mathematics functionality and constants.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "Date", + "name": "i1_s_r", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "var", "kind": "keyword" }, { @@ -55311,24 +49468,49 @@ "kind": "space" }, { - "text": "Date", + "text": "i1_s_r", "kind": "localName" }, { - "text": "\n", - "kind": "lineBreak" + "text": ":", + "kind": "punctuation" }, { - "text": "var", + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "value", + "kind": "parameter", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "parameter", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Date", - "kind": "localName" + "text": "value", + "kind": "parameterName" }, { "text": ":", @@ -55339,19 +49521,19 @@ "kind": "space" }, { - "text": "DateConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], "documentation": [ { - "text": "Enables basic storage and retrieval of dates and times.", + "text": "this is value", "kind": "text" } ] }, { - "name": "RegExp", + "name": "Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -55365,9 +49547,21 @@ "kind": "space" }, { - "text": "RegExp", + "text": "Array", "kind": "localName" }, + { + "text": "<", + "kind": "punctuation" + }, + { + "text": "T", + "kind": "typeParameterName" + }, + { + "text": ">", + "kind": "punctuation" + }, { "text": "\n", "kind": "lineBreak" @@ -55381,7 +49575,7 @@ "kind": "space" }, { - "text": "RegExp", + "text": "Array", "kind": "localName" }, { @@ -55393,14 +49587,14 @@ "kind": "space" }, { - "text": "RegExpConstructor", + "text": "ArrayConstructor", "kind": "interfaceName" } ], "documentation": [] }, { - "name": "Error", + "name": "ArrayBuffer", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -55414,7 +49608,7 @@ "kind": "space" }, { - "text": "Error", + "text": "ArrayBuffer", "kind": "localName" }, { @@ -55430,7 +49624,7 @@ "kind": "space" }, { - "text": "Error", + "text": "ArrayBuffer", "kind": "localName" }, { @@ -55442,14 +49636,55 @@ "kind": "space" }, { - "text": "ErrorConstructor", + "text": "ArrayBufferConstructor", "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "Represents a raw buffer of binary data, which is used to store data for the\r\ndifferent typed arrays. ArrayBuffers cannot be read from or written to directly,\r\nbut can be passed to a typed array or DataView Object to interpret the raw\r\nbuffer as needed.", + "kind": "text" + } + ] }, { - "name": "EvalError", + "name": "as", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "as", + "kind": "keyword" + } + ] + }, + { + "name": "async", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "async", + "kind": "keyword" + } + ] + }, + { + "name": "await", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "await", + "kind": "keyword" + } + ] + }, + { + "name": "Boolean", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -55463,7 +49698,7 @@ "kind": "space" }, { - "text": "EvalError", + "text": "Boolean", "kind": "localName" }, { @@ -55479,7 +49714,7 @@ "kind": "space" }, { - "text": "EvalError", + "text": "Boolean", "kind": "localName" }, { @@ -55491,63 +49726,86 @@ "kind": "space" }, { - "text": "EvalErrorConstructor", + "text": "BooleanConstructor", "kind": "interfaceName" } ], "documentation": [] }, { - "name": "RangeError", - "kind": "var", - "kindModifiers": "declare", + "name": "break", + "kind": "keyword", + "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "break", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "RangeError", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, + } + ] + }, + { + "name": "case", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "var", + "text": "case", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, + } + ] + }, + { + "name": "catch", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "RangeError", - "kind": "localName" - }, + "text": "catch", + "kind": "keyword" + } + ] + }, + { + "name": "class", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": ":", - "kind": "punctuation" - }, + "text": "class", + "kind": "keyword" + } + ] + }, + { + "name": "const", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": " ", - "kind": "space" - }, + "text": "const", + "kind": "keyword" + } + ] + }, + { + "name": "continue", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "RangeErrorConstructor", - "kind": "interfaceName" + "text": "continue", + "kind": "keyword" } - ], - "documentation": [] + ] }, { - "name": "ReferenceError", + "name": "DataView", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -55561,7 +49819,7 @@ "kind": "space" }, { - "text": "ReferenceError", + "text": "DataView", "kind": "localName" }, { @@ -55577,7 +49835,7 @@ "kind": "space" }, { - "text": "ReferenceError", + "text": "DataView", "kind": "localName" }, { @@ -55589,14 +49847,14 @@ "kind": "space" }, { - "text": "ReferenceErrorConstructor", + "text": "DataViewConstructor", "kind": "interfaceName" } ], "documentation": [] }, { - "name": "SyntaxError", + "name": "Date", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -55610,7 +49868,7 @@ "kind": "space" }, { - "text": "SyntaxError", + "text": "Date", "kind": "localName" }, { @@ -55626,7 +49884,7 @@ "kind": "space" }, { - "text": "SyntaxError", + "text": "Date", "kind": "localName" }, { @@ -55638,20 +49896,37 @@ "kind": "space" }, { - "text": "SyntaxErrorConstructor", + "text": "DateConstructor", "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "Enables basic storage and retrieval of dates and times.", + "kind": "text" + } + ] }, { - "name": "TypeError", - "kind": "var", + "name": "debugger", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "debugger", + "kind": "keyword" + } + ] + }, + { + "name": "decodeURI", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -55659,24 +49934,32 @@ "kind": "space" }, { - "text": "TypeError", - "kind": "localName" + "text": "decodeURI", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "encodedURI", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "TypeError", - "kind": "localName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -55687,20 +49970,44 @@ "kind": "space" }, { - "text": "TypeErrorConstructor", - "kind": "interfaceName" + "text": "string", + "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Gets the unencoded version of an encoded Uniform Resource Identifier (URI).", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "encodedURI", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI.", + "kind": "text" + } + ] + } + ] }, { - "name": "URIError", - "kind": "var", + "name": "decodeURIComponent", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -55708,24 +50015,32 @@ "kind": "space" }, { - "text": "URIError", - "kind": "localName" + "text": "decodeURIComponent", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "encodedURIComponent", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "URIError", - "kind": "localName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -55736,20 +50051,92 @@ "kind": "space" }, { - "text": "URIErrorConstructor", - "kind": "interfaceName" + "text": "string", + "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "encodedURIComponent", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI component.", + "kind": "text" + } + ] + } + ] }, { - "name": "JSON", - "kind": "var", + "name": "default", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "default", + "kind": "keyword" + } + ] + }, + { + "name": "delete", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "delete", + "kind": "keyword" + } + ] + }, + { + "name": "do", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "do", + "kind": "keyword" + } + ] + }, + { + "name": "else", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "else", + "kind": "keyword" + } + ] + }, + { + "name": "encodeURI", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -55757,24 +50144,32 @@ "kind": "space" }, { - "text": "JSON", - "kind": "localName" + "text": "encodeURI", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "uri", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "JSON", - "kind": "localName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -55785,25 +50180,44 @@ "kind": "space" }, { - "text": "JSON", - "kind": "localName" + "text": "string", + "kind": "keyword" } ], "documentation": [ { - "text": "An intrinsic object that provides functions to convert JavaScript values to and from the JavaScript Object Notation (JSON) format.", + "text": "Encodes a text string as a valid Uniform Resource Identifier (URI)", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "uri", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI.", + "kind": "text" + } + ] + } ] }, { - "name": "Array", - "kind": "var", + "name": "encodeURIComponent", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -55811,27 +50225,27 @@ "kind": "space" }, { - "text": "Array", - "kind": "localName" + "text": "encodeURIComponent", + "kind": "functionName" }, { - "text": "<", + "text": "(", "kind": "punctuation" }, { - "text": "T", - "kind": "typeParameterName" + "text": "uriComponent", + "kind": "parameterName" }, { - "text": ">", + "text": ":", "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": " ", + "kind": "space" }, { - "text": "var", + "text": "string", "kind": "keyword" }, { @@ -55839,11 +50253,7 @@ "kind": "space" }, { - "text": "Array", - "kind": "localName" - }, - { - "text": ":", + "text": "|", "kind": "punctuation" }, { @@ -55851,20 +50261,7 @@ "kind": "space" }, { - "text": "ArrayConstructor", - "kind": "interfaceName" - } - ], - "documentation": [] - }, - { - "name": "ArrayBuffer", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", + "text": "number", "kind": "keyword" }, { @@ -55872,24 +50269,20 @@ "kind": "space" }, { - "text": "ArrayBuffer", - "kind": "localName" + "text": "|", + "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": " ", + "kind": "space" }, { - "text": "var", + "text": "boolean", "kind": "keyword" }, { - "text": " ", - "kind": "space" - }, - { - "text": "ArrayBuffer", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -55900,19 +50293,50 @@ "kind": "space" }, { - "text": "ArrayBufferConstructor", - "kind": "interfaceName" + "text": "string", + "kind": "keyword" } ], "documentation": [ { - "text": "Represents a raw buffer of binary data, which is used to store data for the\r\ndifferent typed arrays. ArrayBuffers cannot be read from or written to directly,\r\nbut can be passed to a typed array or DataView Object to interpret the raw\r\nbuffer as needed.", + "text": "Encodes a text string as a valid component of a Uniform Resource Identifier (URI).", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "uriComponent", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI component.", + "kind": "text" + } + ] + } ] }, { - "name": "DataView", + "name": "enum", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "enum", + "kind": "keyword" + } + ] + }, + { + "name": "Error", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -55926,7 +50350,7 @@ "kind": "space" }, { - "text": "DataView", + "text": "Error", "kind": "localName" }, { @@ -55942,7 +50366,7 @@ "kind": "space" }, { - "text": "DataView", + "text": "Error", "kind": "localName" }, { @@ -55954,20 +50378,20 @@ "kind": "space" }, { - "text": "DataViewConstructor", + "text": "ErrorConstructor", "kind": "interfaceName" } ], "documentation": [] }, { - "name": "Int8Array", - "kind": "var", + "name": "eval", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -55975,24 +50399,32 @@ "kind": "space" }, { - "text": "Int8Array", - "kind": "localName" + "text": "eval", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "x", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Int8Array", - "kind": "localName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -56003,19 +50435,38 @@ "kind": "space" }, { - "text": "Int8ArrayConstructor", - "kind": "interfaceName" + "text": "any", + "kind": "keyword" } ], "documentation": [ { - "text": "A typed array of 8-bit integer values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", + "text": "Evaluates JavaScript code and executes it.", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "x", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A String value that contains valid JavaScript code.", + "kind": "text" + } + ] + } ] }, { - "name": "Uint8Array", + "name": "EvalError", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -56029,7 +50480,7 @@ "kind": "space" }, { - "text": "Uint8Array", + "text": "EvalError", "kind": "localName" }, { @@ -56045,7 +50496,7 @@ "kind": "space" }, { - "text": "Uint8Array", + "text": "EvalError", "kind": "localName" }, { @@ -56057,19 +50508,62 @@ "kind": "space" }, { - "text": "Uint8ArrayConstructor", + "text": "EvalErrorConstructor", "kind": "interfaceName" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "export", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" + "text": "export", + "kind": "keyword" } ] }, { - "name": "Uint8ClampedArray", + "name": "extends", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "extends", + "kind": "keyword" + } + ] + }, + { + "name": "false", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "false", + "kind": "keyword" + } + ] + }, + { + "name": "finally", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "finally", + "kind": "keyword" + } + ] + }, + { + "name": "Float32Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -56083,7 +50577,7 @@ "kind": "space" }, { - "text": "Uint8ClampedArray", + "text": "Float32Array", "kind": "localName" }, { @@ -56099,7 +50593,7 @@ "kind": "space" }, { - "text": "Uint8ClampedArray", + "text": "Float32Array", "kind": "localName" }, { @@ -56111,19 +50605,19 @@ "kind": "space" }, { - "text": "Uint8ClampedArrayConstructor", + "text": "Float32ArrayConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0.\r\nIf the requested number of bytes could not be allocated an exception is raised.", + "text": "A typed array of 32-bit float values. The contents are initialized to 0. If the requested number\r\nof bytes could not be allocated an exception is raised.", "kind": "text" } ] }, { - "name": "Int16Array", + "name": "Float64Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -56137,7 +50631,7 @@ "kind": "space" }, { - "text": "Int16Array", + "text": "Float64Array", "kind": "localName" }, { @@ -56153,7 +50647,7 @@ "kind": "space" }, { - "text": "Int16Array", + "text": "Float64Array", "kind": "localName" }, { @@ -56165,19 +50659,43 @@ "kind": "space" }, { - "text": "Int16ArrayConstructor", + "text": "Float64ArrayConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "A typed array of 16-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "text": "A typed array of 64-bit float values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", "kind": "text" } ] }, { - "name": "Uint16Array", + "name": "for", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "for", + "kind": "keyword" + } + ] + }, + { + "name": "function", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + } + ] + }, + { + "name": "Function", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -56191,7 +50709,7 @@ "kind": "space" }, { - "text": "Uint16Array", + "text": "Function", "kind": "localName" }, { @@ -56207,7 +50725,7 @@ "kind": "space" }, { - "text": "Uint16Array", + "text": "Function", "kind": "localName" }, { @@ -56219,25 +50737,25 @@ "kind": "space" }, { - "text": "Uint16ArrayConstructor", + "text": "FunctionConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "text": "Creates a new function.", "kind": "text" } ] }, { - "name": "Int32Array", - "kind": "var", - "kindModifiers": "declare", + "name": "globalThis", + "kind": "module", + "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "module", "kind": "keyword" }, { @@ -56245,13 +50763,66 @@ "kind": "space" }, { - "text": "Int32Array", - "kind": "localName" - }, + "text": "globalThis", + "kind": "moduleName" + } + ], + "documentation": [] + }, + { + "name": "if", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "\n", - "kind": "lineBreak" - }, + "text": "if", + "kind": "keyword" + } + ] + }, + { + "name": "implements", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "implements", + "kind": "keyword" + } + ] + }, + { + "name": "import", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "import", + "kind": "keyword" + } + ] + }, + { + "name": "in", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "in", + "kind": "keyword" + } + ] + }, + { + "name": "Infinity", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { "text": "var", "kind": "keyword" @@ -56261,7 +50832,7 @@ "kind": "space" }, { - "text": "Int32Array", + "text": "Infinity", "kind": "localName" }, { @@ -56273,19 +50844,26 @@ "kind": "space" }, { - "text": "Int32ArrayConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "instanceof", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "A typed array of 32-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" + "text": "instanceof", + "kind": "keyword" } ] }, { - "name": "Uint32Array", + "name": "Int16Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -56299,7 +50877,7 @@ "kind": "space" }, { - "text": "Uint32Array", + "text": "Int16Array", "kind": "localName" }, { @@ -56315,7 +50893,7 @@ "kind": "space" }, { - "text": "Uint32Array", + "text": "Int16Array", "kind": "localName" }, { @@ -56327,19 +50905,19 @@ "kind": "space" }, { - "text": "Uint32ArrayConstructor", + "text": "Int16ArrayConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "text": "A typed array of 16-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", "kind": "text" } ] }, { - "name": "Float32Array", + "name": "Int32Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -56353,7 +50931,7 @@ "kind": "space" }, { - "text": "Float32Array", + "text": "Int32Array", "kind": "localName" }, { @@ -56369,7 +50947,7 @@ "kind": "space" }, { - "text": "Float32Array", + "text": "Int32Array", "kind": "localName" }, { @@ -56381,19 +50959,19 @@ "kind": "space" }, { - "text": "Float32ArrayConstructor", + "text": "Int32ArrayConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "A typed array of 32-bit float values. The contents are initialized to 0. If the requested number\r\nof bytes could not be allocated an exception is raised.", + "text": "A typed array of 32-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", "kind": "text" } ] }, { - "name": "Float64Array", + "name": "Int8Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -56407,7 +50985,7 @@ "kind": "space" }, { - "text": "Float64Array", + "text": "Int8Array", "kind": "localName" }, { @@ -56423,7 +51001,7 @@ "kind": "space" }, { - "text": "Float64Array", + "text": "Int8Array", "kind": "localName" }, { @@ -56435,17 +51013,29 @@ "kind": "space" }, { - "text": "Float64ArrayConstructor", + "text": "Int8ArrayConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "A typed array of 64-bit float values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", + "text": "A typed array of 8-bit integer values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", "kind": "text" } ] }, + { + "name": "interface", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" + } + ] + }, { "name": "Intl", "kind": "module", @@ -56468,13 +51058,13 @@ "documentation": [] }, { - "name": "c1", - "kind": "class", - "kindModifiers": "", - "sortText": "11", + "name": "isFinite", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "class", + "text": "function", "kind": "keyword" }, { @@ -56482,34 +51072,16 @@ "kind": "space" }, { - "text": "c1", - "kind": "className" - } - ], - "documentation": [ - { - "text": "This is comment for c1", - "kind": "text" - } - ] - }, - { - "name": "i1", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "var", - "kind": "keyword" + "text": "isFinite", + "kind": "functionName" }, { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "i1", - "kind": "localName" + "text": "number", + "kind": "parameterName" }, { "text": ":", @@ -56520,29 +51092,12 @@ "kind": "space" }, { - "text": "c1", - "kind": "className" - } - ], - "documentation": [] - }, - { - "name": "i1_p", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "var", + "text": "number", "kind": "keyword" }, { - "text": " ", - "kind": "space" - }, - { - "text": "i1_p", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -56553,20 +51108,44 @@ "kind": "space" }, { - "text": "number", + "text": "boolean", "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Determines whether a supplied number is finite.", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "number", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Any numeric value.", + "kind": "text" + } + ] + } + ] }, { - "name": "i1_f", - "kind": "var", - "kindModifiers": "", - "sortText": "11", + "name": "isNaN", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "function", "kind": "keyword" }, { @@ -56574,23 +51153,15 @@ "kind": "space" }, { - "text": "i1_f", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { + "text": "isNaN", + "kind": "functionName" + }, + { "text": "(", "kind": "punctuation" }, { - "text": "b", + "text": "number", "kind": "parameterName" }, { @@ -56610,11 +51181,7 @@ "kind": "punctuation" }, { - "text": " ", - "kind": "space" - }, - { - "text": "=>", + "text": ":", "kind": "punctuation" }, { @@ -56622,20 +51189,44 @@ "kind": "space" }, { - "text": "number", + "text": "boolean", "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Returns a Boolean value that indicates whether a value is the reserved value NaN (not a number).", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "number", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A numeric value.", + "kind": "text" + } + ] + } + ] }, { - "name": "i1_r", + "name": "JSON", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -56643,30 +51234,13 @@ "kind": "space" }, { - "text": "i1_r", + "text": "JSON", "kind": "localName" }, { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_prop", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ { "text": "var", "kind": "keyword" @@ -56676,7 +51250,7 @@ "kind": "space" }, { - "text": "i1_prop", + "text": "JSON", "kind": "localName" }, { @@ -56688,53 +51262,37 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "JSON", + "kind": "localName" } ], - "documentation": [] + "documentation": [ + { + "text": "An intrinsic object that provides functions to convert JavaScript values to and from the JavaScript Object Notation (JSON) format.", + "kind": "text" + } + ] }, { - "name": "i1_nc_p", - "kind": "var", + "name": "let", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "i1_nc_p", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", + "text": "let", "kind": "keyword" } - ], - "documentation": [] + ] }, { - "name": "i1_ncf", + "name": "Math", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -56742,47 +51300,27 @@ "kind": "space" }, { - "text": "i1_ncf", + "text": "Math", "kind": "localName" }, { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "b", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "Math", + "kind": "localName" }, { - "text": "=>", + "text": ":", "kind": "punctuation" }, { @@ -56790,17 +51328,22 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "Math", + "kind": "localName" } ], - "documentation": [] + "documentation": [ + { + "text": "An intrinsic object that provides basic mathematics functionality and constants.", + "kind": "text" + } + ] }, { - "name": "i1_ncr", + "name": "NaN", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { "text": "var", @@ -56811,7 +51354,7 @@ "kind": "space" }, { - "text": "i1_ncr", + "text": "NaN", "kind": "localName" }, { @@ -56830,13 +51373,37 @@ "documentation": [] }, { - "name": "i1_ncprop", - "kind": "var", + "name": "new", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "new", + "kind": "keyword" + } + ] + }, + { + "name": "null", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "null", + "kind": "keyword" + } + ] + }, + { + "name": "Number", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", "kind": "keyword" }, { @@ -56844,30 +51411,13 @@ "kind": "space" }, { - "text": "i1_ncprop", + "text": "Number", "kind": "localName" }, { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_s_p", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ { "text": "var", "kind": "keyword" @@ -56877,7 +51427,7 @@ "kind": "space" }, { - "text": "i1_s_p", + "text": "Number", "kind": "localName" }, { @@ -56889,20 +51439,25 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "NumberConstructor", + "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "An object that represents a number of any kind. All JavaScript numbers are 64-bit floating-point numbers.", + "kind": "text" + } + ] }, { - "name": "i1_s_f", + "name": "Object", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -56910,39 +51465,27 @@ "kind": "space" }, { - "text": "i1_s_f", + "text": "Object", "kind": "localName" }, { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "b", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "Object", + "kind": "localName" }, { - "text": ")", + "text": ":", "kind": "punctuation" }, { @@ -56950,28 +51493,37 @@ "kind": "space" }, { - "text": "=>", - "kind": "punctuation" - }, + "text": "ObjectConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ { - "text": " ", - "kind": "space" - }, + "text": "Provides functionality common to all JavaScript objects.", + "kind": "text" + } + ] + }, + { + "name": "package", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "number", + "text": "package", "kind": "keyword" } - ], - "documentation": [] + ] }, { - "name": "i1_s_r", - "kind": "var", - "kindModifiers": "", - "sortText": "11", + "name": "parseFloat", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "function", "kind": "keyword" }, { @@ -56979,41 +51531,32 @@ "kind": "space" }, { - "text": "i1_s_r", - "kind": "localName" + "text": "parseFloat", + "kind": "functionName" }, { - "text": ":", + "text": "(", "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "string", + "kind": "parameterName" }, { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_s_prop", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "i1_s_prop", - "kind": "localName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -57028,16 +51571,40 @@ "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Converts a string to a floating-point number.", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string that contains a floating-point number.", + "kind": "text" + } + ] + } + ] }, { - "name": "i1_s_nc_p", - "kind": "var", - "kindModifiers": "", - "sortText": "11", + "name": "parseInt", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "function", "kind": "keyword" }, { @@ -57045,44 +51612,31 @@ "kind": "space" }, { - "text": "i1_s_nc_p", - "kind": "localName" + "text": "parseInt", + "kind": "functionName" }, { - "text": ":", + "text": "(", "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "string", + "kind": "parameterName" }, { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_s_ncf", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "i1_s_ncf", - "kind": "localName" + "text": "string", + "kind": "keyword" }, { - "text": ":", + "text": ",", "kind": "punctuation" }, { @@ -57090,12 +51644,12 @@ "kind": "space" }, { - "text": "(", - "kind": "punctuation" + "text": "radix", + "kind": "parameterName" }, { - "text": "b", - "kind": "parameterName" + "text": "?", + "kind": "punctuation" }, { "text": ":", @@ -57114,11 +51668,7 @@ "kind": "punctuation" }, { - "text": " ", - "kind": "space" - }, - { - "text": "=>", + "text": ":", "kind": "punctuation" }, { @@ -57130,16 +51680,57 @@ "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Converts a string to an integer.", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string to convert into a number.", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "radix", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value between 2 and 36 that specifies the base of the number in `string`.\r\nIf this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal.\r\nAll other strings are considered decimal.", + "kind": "text" + } + ] + } + ] }, { - "name": "i1_s_ncr", + "name": "RangeError", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -57147,30 +51738,13 @@ "kind": "space" }, { - "text": "i1_s_ncr", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_s_ncprop", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ + "text": "RangeError", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, { "text": "var", "kind": "keyword" @@ -57180,7 +51754,7 @@ "kind": "space" }, { - "text": "i1_s_ncprop", + "text": "RangeError", "kind": "localName" }, { @@ -57192,20 +51766,20 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "RangeErrorConstructor", + "kind": "interfaceName" } ], "documentation": [] }, { - "name": "i1_c", + "name": "ReferenceError", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -57213,40 +51787,48 @@ "kind": "space" }, { - "text": "i1_c", + "text": "ReferenceError", "kind": "localName" }, { - "text": ":", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "typeof", - "kind": "keyword" + "text": "ReferenceError", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "c1", - "kind": "className" + "text": "ReferenceErrorConstructor", + "kind": "interfaceName" } ], "documentation": [] }, { - "name": "cProperties", - "kind": "class", - "kindModifiers": "", - "sortText": "11", + "name": "RegExp", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "class", + "text": "interface", "kind": "keyword" }, { @@ -57254,18 +51836,13 @@ "kind": "space" }, { - "text": "cProperties", - "kind": "className" - } - ], - "documentation": [] - }, - { - "name": "cProperties_i", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ + "text": "RegExp", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, { "text": "var", "kind": "keyword" @@ -57275,7 +51852,7 @@ "kind": "space" }, { - "text": "cProperties_i", + "text": "RegExp", "kind": "localName" }, { @@ -57287,39 +51864,46 @@ "kind": "space" }, { - "text": "cProperties", - "kind": "className" + "text": "RegExpConstructor", + "kind": "interfaceName" } ], "documentation": [] }, { - "name": "cWithConstructorProperty", - "kind": "class", + "name": "return", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "class", + "text": "return", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "cWithConstructorProperty", - "kind": "className" } - ], - "documentation": [] + ] }, { - "name": "undefined", + "name": "String", "kind": "var", - "kindModifiers": "", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "String", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, { "text": "var", "kind": "keyword" @@ -57329,562 +51913,1124 @@ "kind": "space" }, { - "text": "undefined", - "kind": "propertyName" + "text": "String", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "StringConstructor", + "kind": "interfaceName" } ], - "documentation": [] - }, - { - "name": "break", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "documentation": [ { - "text": "break", - "kind": "keyword" + "text": "Allows manipulation and formatting of text strings and determination and location of substrings within strings.", + "kind": "text" } ] }, { - "name": "case", + "name": "super", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "case", + "text": "super", "kind": "keyword" } ] }, { - "name": "catch", + "name": "switch", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "catch", + "text": "switch", "kind": "keyword" } ] }, { - "name": "class", - "kind": "keyword", - "kindModifiers": "", + "name": "SyntaxError", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "class", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "const", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "const", + "text": " ", + "kind": "space" + }, + { + "text": "SyntaxError", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "SyntaxError", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "SyntaxErrorConstructor", + "kind": "interfaceName" } - ] + ], + "documentation": [] }, { - "name": "continue", + "name": "this", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "continue", + "text": "this", "kind": "keyword" } ] }, { - "name": "debugger", + "name": "throw", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "debugger", + "text": "throw", "kind": "keyword" } ] }, { - "name": "default", + "name": "true", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "default", + "text": "true", "kind": "keyword" } ] }, { - "name": "delete", + "name": "try", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "delete", + "text": "try", "kind": "keyword" } ] }, { - "name": "do", - "kind": "keyword", - "kindModifiers": "", + "name": "TypeError", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "do", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "else", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "else", + "text": " ", + "kind": "space" + }, + { + "text": "TypeError", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "TypeError", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "TypeErrorConstructor", + "kind": "interfaceName" } - ] + ], + "documentation": [] }, { - "name": "enum", + "name": "typeof", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "enum", + "text": "typeof", "kind": "keyword" } ] }, { - "name": "export", - "kind": "keyword", - "kindModifiers": "", + "name": "Uint16Array", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "export", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "extends", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "extends", + "text": " ", + "kind": "space" + }, + { + "text": "Uint16Array", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint16Array", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint16ArrayConstructor", + "kind": "interfaceName" } - ] - }, - { - "name": "false", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "false", - "kind": "keyword" + "text": "A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" } ] }, { - "name": "finally", - "kind": "keyword", - "kindModifiers": "", + "name": "Uint32Array", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "finally", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "for", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "for", + "text": " ", + "kind": "space" + }, + { + "text": "Uint32Array", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint32Array", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint32ArrayConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ + { + "text": "A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" } ] }, { - "name": "function", - "kind": "keyword", - "kindModifiers": "", + "name": "Uint8Array", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint8Array", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint8Array", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint8ArrayConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ + { + "text": "A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" } ] }, { - "name": "if", - "kind": "keyword", - "kindModifiers": "", + "name": "Uint8ClampedArray", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "if", + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint8ClampedArray", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint8ClampedArray", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint8ClampedArrayConstructor", + "kind": "interfaceName" } - ] - }, - { - "name": "import", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "import", - "kind": "keyword" + "text": "A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0.\r\nIf the requested number of bytes could not be allocated an exception is raised.", + "kind": "text" } ] }, { - "name": "in", - "kind": "keyword", + "name": "undefined", + "kind": "var", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "in", + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "undefined", + "kind": "propertyName" } - ] + ], + "documentation": [] }, { - "name": "instanceof", - "kind": "keyword", - "kindModifiers": "", + "name": "URIError", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "instanceof", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "new", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "new", + "text": " ", + "kind": "space" + }, + { + "text": "URIError", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "URIError", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "URIErrorConstructor", + "kind": "interfaceName" } - ] + ], + "documentation": [] }, { - "name": "null", + "name": "var", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "null", + "text": "var", "kind": "keyword" } ] }, { - "name": "return", + "name": "void", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "return", + "text": "void", "kind": "keyword" } ] }, { - "name": "super", + "name": "while", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "super", + "text": "while", "kind": "keyword" } ] }, { - "name": "switch", + "name": "with", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "switch", + "text": "with", "kind": "keyword" } ] }, { - "name": "this", + "name": "yield", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "this", + "text": "yield", "kind": "keyword" } ] }, { - "name": "throw", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", + "name": "escape", + "kind": "function", + "kindModifiers": "deprecated,declare", + "sortText": "z15", "displayParts": [ { - "text": "throw", + "text": "function", "kind": "keyword" - } - ] - }, - { - "name": "true", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "true", + "text": " ", + "kind": "space" + }, + { + "text": "escape", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "string", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", "kind": "keyword" } + ], + "documentation": [ + { + "text": "Computes a new string in which certain characters have been replaced by a hexadecimal escape sequence.", + "kind": "text" + } + ], + "tags": [ + { + "name": "deprecated", + "text": [ + { + "text": "A legacy feature for browser compatibility", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string value", + "kind": "text" + } + ] + } ] }, { - "name": "try", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", + "name": "unescape", + "kind": "function", + "kindModifiers": "deprecated,declare", + "sortText": "z15", "displayParts": [ { - "text": "try", + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "unescape", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "string", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", "kind": "keyword" } + ], + "documentation": [ + { + "text": "Computes a new string in which hexadecimal escape sequences are replaced with the character that it represents.", + "kind": "text" + } + ], + "tags": [ + { + "name": "deprecated", + "text": [ + { + "text": "A legacy feature for browser compatibility", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string value", + "kind": "text" + } + ] + } ] - }, + } + ] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/completionsCommentsClassMembers.ts", + "position": 1221, + "name": "41" + }, + "completionList": { + "isGlobalCompletion": false, + "isMemberCompletion": true, + "isNewIdentifierLocation": false, + "optionalReplacementSpan": { + "start": 1221, + "length": 2 + }, + "entries": [ { - "name": "typeof", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", + "name": "nc_s1", + "kind": "property", + "kindModifiers": "static", + "sortText": "10", "displayParts": [ { - "text": "typeof", + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "c1", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "nc_s1", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" } - ] + ], + "documentation": [] }, { - "name": "var", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", + "name": "nc_s2", + "kind": "method", + "kindModifiers": "static", + "sortText": "10", "displayParts": [ { - "text": "var", + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "c1", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "nc_s2", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "b", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" } - ] + ], + "documentation": [] }, { - "name": "void", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", + "name": "nc_s3", + "kind": "property", + "kindModifiers": "static", + "sortText": "10", "displayParts": [ { - "text": "void", + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "c1", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "nc_s3", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" } - ] + ], + "documentation": [] }, { - "name": "while", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", + "name": "s1", + "kind": "property", + "kindModifiers": "static", + "sortText": "10", "displayParts": [ { - "text": "while", + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "c1", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "s1", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" } - ] - }, - { - "name": "with", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "with", - "kind": "keyword" + "text": "s1 is static property of c1", + "kind": "text" } ] }, { - "name": "implements", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", + "name": "s2", + "kind": "method", + "kindModifiers": "static", + "sortText": "10", "displayParts": [ { - "text": "implements", - "kind": "keyword" - } - ] - }, - { - "name": "interface", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "(", + "kind": "punctuation" + }, { - "text": "interface", - "kind": "keyword" - } - ] - }, - { - "name": "let", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "method", + "kind": "text" + }, { - "text": "let", - "kind": "keyword" - } - ] - }, - { - "name": "package", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": ")", + "kind": "punctuation" + }, { - "text": "package", + "text": " ", + "kind": "space" + }, + { + "text": "c1", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "s2", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "b", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" - } - ] - }, - { - "name": "yield", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "yield", + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" } - ] - }, - { - "name": "as", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "as", - "kind": "keyword" + "text": "static sum with property", + "kind": "text" } ] }, { - "name": "async", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", + "name": "s3", + "kind": "property", + "kindModifiers": "static", + "sortText": "10", "displayParts": [ { - "text": "async", + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "c1", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "s3", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" } - ] - }, - { - "name": "await", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "await", - "kind": "keyword" + "text": "static getter property", + "kind": "text" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "setter property 3", + "kind": "text" } ] - } - ] - } - }, - { - "marker": { - "fileName": "/tests/cases/fourslash/completionsCommentsClassMembers.ts", - "position": 1322, - "name": "45" - }, - "completionList": { - "isGlobalCompletion": false, - "isMemberCompletion": false, - "isNewIdentifierLocation": false, - "optionalReplacementSpan": { - "start": 1322, - "length": 1 - }, - "entries": [ + }, { - "name": "b", - "kind": "parameter", - "kindModifiers": "", + "name": "apply", + "kind": "method", + "kindModifiers": "declare", "sortText": "11", "displayParts": [ { @@ -57892,7 +53038,7 @@ "kind": "punctuation" }, { - "text": "parameter", + "text": "method", "kind": "text" }, { @@ -57904,7 +53050,23 @@ "kind": "space" }, { - "text": "b", + "text": "Function", + "kind": "localName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "apply", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "this", "kind": "parameterName" }, { @@ -57916,16 +53078,125 @@ "kind": "space" }, { - "text": "number", + "text": "Function", + "kind": "localName" + }, + { + "text": ",", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "thisArg", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + }, + { + "text": ",", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "argArray", + "kind": "parameterName" + }, + { + "text": "?", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Calls the function, substituting the specified object for the this value of the function, and the specified array for the arguments of the function.", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "thisArg", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "The object to be used as the this object.", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "argArray", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A set of arguments to be passed to the function.", + "kind": "text" + } + ] + } + ] }, { "name": "arguments", - "kind": "local var", - "kindModifiers": "", + "kind": "property", + "kindModifiers": "declare", "sortText": "11", "displayParts": [ { @@ -57933,7 +53204,7 @@ "kind": "punctuation" }, { - "text": "local var", + "text": "property", "kind": "text" }, { @@ -57944,6 +53215,14 @@ "text": " ", "kind": "space" }, + { + "text": "Function", + "kind": "localName" + }, + { + "text": ".", + "kind": "punctuation" + }, { "text": "arguments", "kind": "propertyName" @@ -57957,57 +53236,76 @@ "kind": "space" }, { - "text": "IArguments", - "kind": "interfaceName" + "text": "any", + "kind": "keyword" } ], "documentation": [] }, { - "name": "globalThis", - "kind": "module", - "kindModifiers": "", - "sortText": "15", + "name": "bind", + "kind": "method", + "kindModifiers": "declare", + "sortText": "11", "displayParts": [ { - "text": "module", - "kind": "keyword" + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "globalThis", - "kind": "moduleName" - } - ], - "documentation": [] - }, - { - "name": "eval", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ + "text": "Function", + "kind": "localName" + }, { - "text": "function", - "kind": "keyword" + "text": ".", + "kind": "punctuation" + }, + { + "text": "bind", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "this", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "eval", - "kind": "functionName" + "text": "Function", + "kind": "localName" }, { - "text": "(", + "text": ",", "kind": "punctuation" }, { - "text": "x", + "text": " ", + "kind": "space" + }, + { + "text": "thisArg", "kind": "parameterName" }, { @@ -58019,9 +53317,45 @@ "kind": "space" }, { - "text": "string", + "text": "any", + "kind": "keyword" + }, + { + "text": ",", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "...", + "kind": "punctuation" + }, + { + "text": "argArray", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", "kind": "keyword" }, + { + "text": "[", + "kind": "punctuation" + }, + { + "text": "]", + "kind": "punctuation" + }, { "text": ")", "kind": "punctuation" @@ -58041,7 +53375,7 @@ ], "documentation": [ { - "text": "Evaluates JavaScript code and executes it.", + "text": "For a given function, creates a bound function that has the same body as the original function.\r\nThe this object of the bound function is associated with the specified object, and has the specified initial parameters.", "kind": "text" } ], @@ -58050,7 +53384,7 @@ "name": "param", "text": [ { - "text": "x", + "text": "thisArg", "kind": "parameterName" }, { @@ -58058,7 +53392,24 @@ "kind": "space" }, { - "text": "A String value that contains valid JavaScript code.", + "text": "An object to which the this keyword can refer inside the new function.", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "argArray", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A list of arguments to be passed to the new function.", "kind": "text" } ] @@ -58066,29 +53417,45 @@ ] }, { - "name": "parseInt", - "kind": "function", + "name": "call", + "kind": "method", "kindModifiers": "declare", - "sortText": "15", + "sortText": "11", "displayParts": [ { - "text": "function", - "kind": "keyword" + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "parseInt", - "kind": "functionName" + "text": "Function", + "kind": "localName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "call", + "kind": "methodName" }, { "text": "(", "kind": "punctuation" }, { - "text": "string", + "text": "this", "kind": "parameterName" }, { @@ -58100,8 +53467,8 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "Function", + "kind": "localName" }, { "text": ",", @@ -58112,13 +53479,37 @@ "kind": "space" }, { - "text": "radix", + "text": "thisArg", "kind": "parameterName" }, { - "text": "?", + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + }, + { + "text": ",", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "...", "kind": "punctuation" }, + { + "text": "argArray", + "kind": "parameterName" + }, { "text": ":", "kind": "punctuation" @@ -58128,9 +53519,17 @@ "kind": "space" }, { - "text": "number", + "text": "any", "kind": "keyword" }, + { + "text": "[", + "kind": "punctuation" + }, + { + "text": "]", + "kind": "punctuation" + }, { "text": ")", "kind": "punctuation" @@ -58144,13 +53543,13 @@ "kind": "space" }, { - "text": "number", + "text": "any", "kind": "keyword" } ], "documentation": [ { - "text": "Converts a string to an integer.", + "text": "Calls a method of an object, substituting another object for the current object.", "kind": "text" } ], @@ -58159,7 +53558,7 @@ "name": "param", "text": [ { - "text": "string", + "text": "thisArg", "kind": "parameterName" }, { @@ -58167,7 +53566,7 @@ "kind": "space" }, { - "text": "A string to convert into a number.", + "text": "The object to be used as the current object.", "kind": "text" } ] @@ -58176,7 +53575,7 @@ "name": "param", "text": [ { - "text": "radix", + "text": "argArray", "kind": "parameterName" }, { @@ -58184,7 +53583,7 @@ "kind": "space" }, { - "text": "A value between 2 and 36 that specifies the base of the number in `string`.\r\nIf this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal.\r\nAll other strings are considered decimal.", + "text": "A list of arguments to be passed to the method.", "kind": "text" } ] @@ -58192,33 +53591,21 @@ ] }, { - "name": "parseFloat", - "kind": "function", + "name": "caller", + "kind": "property", "kindModifiers": "declare", - "sortText": "15", + "sortText": "11", "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "parseFloat", - "kind": "functionName" - }, { "text": "(", "kind": "punctuation" }, { - "text": "string", - "kind": "parameterName" + "text": "property", + "kind": "text" }, { - "text": ":", + "text": ")", "kind": "punctuation" }, { @@ -58226,13 +53613,17 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "Function", + "kind": "localName" }, { - "text": ")", + "text": ".", "kind": "punctuation" }, + { + "text": "caller", + "kind": "propertyName" + }, { "text": ":", "kind": "punctuation" @@ -58242,61 +53633,45 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Converts a string to a floating-point number.", - "kind": "text" + "text": "Function", + "kind": "localName" } ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string that contains a floating-point number.", - "kind": "text" - } - ] - } - ] + "documentation": [] }, { - "name": "isNaN", - "kind": "function", + "name": "length", + "kind": "property", "kindModifiers": "declare", - "sortText": "15", + "sortText": "11", "displayParts": [ { - "text": "function", - "kind": "keyword" + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "isNaN", - "kind": "functionName" + "text": "Function", + "kind": "localName" }, { - "text": "(", + "text": ".", "kind": "punctuation" }, { - "text": "number", - "kind": "parameterName" + "text": "length", + "kind": "propertyName" }, { "text": ":", @@ -58309,11 +53684,44 @@ { "text": "number", "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "prototype", + "kind": "property", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" }, { "text": ")", "kind": "punctuation" }, + { + "text": " ", + "kind": "space" + }, + { + "text": "c1", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "prototype", + "kind": "propertyName" + }, { "text": ":", "kind": "punctuation" @@ -58323,73 +53731,49 @@ "kind": "space" }, { - "text": "boolean", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Returns a Boolean value that indicates whether a value is the reserved value NaN (not a number).", - "kind": "text" + "text": "c1", + "kind": "className" } ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "number", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A numeric value.", - "kind": "text" - } - ] - } - ] + "documentation": [] }, { - "name": "isFinite", - "kind": "function", + "name": "toString", + "kind": "method", "kindModifiers": "declare", - "sortText": "15", + "sortText": "11", "displayParts": [ { - "text": "function", - "kind": "keyword" + "text": "(", + "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "method", + "kind": "text" }, { - "text": "isFinite", - "kind": "functionName" + "text": ")", + "kind": "punctuation" }, { - "text": "(", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": "number", - "kind": "parameterName" + "text": "Function", + "kind": "localName" }, { - "text": ":", + "text": ".", "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "toString", + "kind": "methodName" }, { - "text": "number", - "kind": "keyword" + "text": "(", + "kind": "punctuation" }, { "text": ")", @@ -58404,61 +53788,60 @@ "kind": "space" }, { - "text": "boolean", + "text": "string", "kind": "keyword" } ], "documentation": [ { - "text": "Determines whether a supplied number is finite.", + "text": "Returns a string representation of a function.", "kind": "text" } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "number", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Any numeric value.", - "kind": "text" - } - ] - } ] - }, + } + ] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/completionsCommentsClassMembers.ts", + "position": 1224, + "name": "42" + }, + "completionList": { + "isGlobalCompletion": false, + "isMemberCompletion": false, + "isNewIdentifierLocation": true, + "optionalReplacementSpan": { + "start": 1224, + "length": 5 + }, + "entries": [ { - "name": "decodeURI", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "name": "arguments", + "kind": "local var", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "function", - "kind": "keyword" + "text": "(", + "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "local var", + "kind": "text" }, { - "text": "decodeURI", - "kind": "functionName" + "text": ")", + "kind": "punctuation" }, { - "text": "(", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": "encodedURI", - "kind": "parameterName" + "text": "arguments", + "kind": "propertyName" }, { "text": ":", @@ -58469,60 +53852,46 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, + "text": "IArguments", + "kind": "interfaceName" + } + ], + "documentation": [] + }, + { + "name": "c1", + "kind": "class", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { - "text": ":", - "kind": "punctuation" + "text": "class", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "c1", + "kind": "className" } ], "documentation": [ { - "text": "Gets the unencoded version of an encoded Uniform Resource Identifier (URI).", + "text": "This is comment for c1", "kind": "text" } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "encodedURI", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI.", - "kind": "text" - } - ] - } ] }, { - "name": "decodeURIComponent", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "name": "cProperties", + "kind": "class", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "function", + "text": "class", "kind": "keyword" }, { @@ -58530,16 +53899,29 @@ "kind": "space" }, { - "text": "decodeURIComponent", - "kind": "functionName" + "text": "cProperties", + "kind": "className" + } + ], + "documentation": [] + }, + { + "name": "cProperties_i", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "var", + "kind": "keyword" }, { - "text": "(", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": "encodedURIComponent", - "kind": "parameterName" + "text": "cProperties_i", + "kind": "localName" }, { "text": ":", @@ -58550,12 +53932,50 @@ "kind": "space" }, { - "text": "string", + "text": "cProperties", + "kind": "className" + } + ], + "documentation": [] + }, + { + "name": "cWithConstructorProperty", + "kind": "class", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "class", "kind": "keyword" }, { - "text": ")", - "kind": "punctuation" + "text": " ", + "kind": "space" + }, + { + "text": "cWithConstructorProperty", + "kind": "className" + } + ], + "documentation": [] + }, + { + "name": "i1", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "i1", + "kind": "localName" }, { "text": ":", @@ -58566,44 +53986,20 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).", - "kind": "text" + "text": "c1", + "kind": "className" } ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "encodedURIComponent", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI component.", - "kind": "text" - } - ] - } - ] + "documentation": [] }, { - "name": "encodeURI", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "name": "i1_c", + "kind": "var", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "function", + "text": "var", "kind": "keyword" }, { @@ -58611,16 +54007,8 @@ "kind": "space" }, { - "text": "encodeURI", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "uri", - "kind": "parameterName" + "text": "i1_c", + "kind": "localName" }, { "text": ":", @@ -58631,60 +54019,28 @@ "kind": "space" }, { - "text": "string", + "text": "typeof", "kind": "keyword" }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, { "text": " ", "kind": "space" }, { - "text": "string", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Encodes a text string as a valid Uniform Resource Identifier (URI)", - "kind": "text" + "text": "c1", + "kind": "className" } ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "uri", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI.", - "kind": "text" - } - ] - } - ] + "documentation": [] }, { - "name": "encodeURIComponent", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "name": "i1_f", + "kind": "var", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "function", + "text": "var", "kind": "keyword" }, { @@ -58692,15 +54048,23 @@ "kind": "space" }, { - "text": "encodeURIComponent", - "kind": "functionName" + "text": "i1_f", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" }, { "text": "(", "kind": "punctuation" }, { - "text": "uriComponent", + "text": "b", "kind": "parameterName" }, { @@ -58712,15 +54076,19 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" }, + { + "text": ")", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "|", + "text": "=>", "kind": "punctuation" }, { @@ -58730,26 +54098,27 @@ { "text": "number", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, + } + ], + "documentation": [] + }, + { + "name": "i1_nc_p", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { - "text": "|", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "boolean", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "i1_nc_p", + "kind": "localName" }, { "text": ":", @@ -58760,44 +54129,20 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" } ], - "documentation": [ - { - "text": "Encodes a text string as a valid component of a Uniform Resource Identifier (URI).", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "uriComponent", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI component.", - "kind": "text" - } - ] - } - ] + "documentation": [] }, { - "name": "escape", - "kind": "function", - "kindModifiers": "deprecated,declare", - "sortText": "23", + "name": "i1_ncf", + "kind": "var", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "function", + "text": "var", "kind": "keyword" }, { @@ -58805,15 +54150,23 @@ "kind": "space" }, { - "text": "escape", - "kind": "functionName" + "text": "i1_ncf", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" }, { "text": "(", "kind": "punctuation" }, { - "text": "string", + "text": "b", "kind": "parameterName" }, { @@ -58825,7 +54178,7 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" }, { @@ -58833,7 +54186,11 @@ "kind": "punctuation" }, { - "text": ":", + "text": " ", + "kind": "space" + }, + { + "text": "=>", "kind": "punctuation" }, { @@ -58841,53 +54198,20 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" } ], - "documentation": [ - { - "text": "Computes a new string in which certain characters have been replaced by a hexadecimal escape sequence.", - "kind": "text" - } - ], - "tags": [ - { - "name": "deprecated", - "text": [ - { - "text": "A legacy feature for browser compatibility", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string value", - "kind": "text" - } - ] - } - ] + "documentation": [] }, { - "name": "unescape", - "kind": "function", - "kindModifiers": "deprecated,declare", - "sortText": "23", + "name": "i1_ncprop", + "kind": "var", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "function", + "text": "var", "kind": "keyword" }, { @@ -58895,16 +54219,8 @@ "kind": "space" }, { - "text": "unescape", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "string", - "kind": "parameterName" + "text": "i1_ncprop", + "kind": "localName" }, { "text": ":", @@ -58915,12 +54231,29 @@ "kind": "space" }, { - "text": "string", + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "i1_ncr", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "var", "kind": "keyword" }, { - "text": ")", - "kind": "punctuation" + "text": " ", + "kind": "space" + }, + { + "text": "i1_ncr", + "kind": "localName" }, { "text": ":", @@ -58931,50 +54264,17 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" } ], - "documentation": [ - { - "text": "Computes a new string in which hexadecimal escape sequences are replaced with the character that it represents.", - "kind": "text" - } - ], - "tags": [ - { - "name": "deprecated", - "text": [ - { - "text": "A legacy feature for browser compatibility", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string value", - "kind": "text" - } - ] - } - ] + "documentation": [] }, { - "name": "NaN", + "name": "i1_p", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { "text": "var", @@ -58985,7 +54285,7 @@ "kind": "space" }, { - "text": "NaN", + "text": "i1_p", "kind": "localName" }, { @@ -59004,10 +54304,10 @@ "documentation": [] }, { - "name": "Infinity", + "name": "i1_prop", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { "text": "var", @@ -59018,7 +54318,7 @@ "kind": "space" }, { - "text": "Infinity", + "text": "i1_prop", "kind": "localName" }, { @@ -59037,13 +54337,13 @@ "documentation": [] }, { - "name": "Object", + "name": "i1_r", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "var", "kind": "keyword" }, { @@ -59051,13 +54351,30 @@ "kind": "space" }, { - "text": "Object", + "text": "i1_r", "kind": "localName" }, { - "text": "\n", - "kind": "lineBreak" + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" }, + { + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "i1_s_f", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { "text": "var", "kind": "keyword" @@ -59067,7 +54384,7 @@ "kind": "space" }, { - "text": "Object", + "text": "i1_s_f", "kind": "localName" }, { @@ -59079,39 +54396,54 @@ "kind": "space" }, { - "text": "ObjectConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ + "text": "(", + "kind": "punctuation" + }, { - "text": "Provides functionality common to all JavaScript objects.", - "kind": "text" - } - ] - }, - { - "name": "Function", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ + "text": "b", + "kind": "parameterName" + }, { - "text": "interface", + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" }, + { + "text": ")", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "Function", - "kind": "localName" + "text": "=>", + "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": " ", + "kind": "space" }, + { + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "i1_s_nc_p", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { "text": "var", "kind": "keyword" @@ -59121,7 +54453,7 @@ "kind": "space" }, { - "text": "Function", + "text": "i1_s_nc_p", "kind": "localName" }, { @@ -59133,25 +54465,20 @@ "kind": "space" }, { - "text": "FunctionConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], - "documentation": [ - { - "text": "Creates a new function.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "String", + "name": "i1_s_ncf", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "var", "kind": "keyword" }, { @@ -59159,24 +54486,24 @@ "kind": "space" }, { - "text": "String", + "text": "i1_s_ncf", "kind": "localName" }, { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "String", - "kind": "localName" + "text": "(", + "kind": "punctuation" + }, + { + "text": "b", + "kind": "parameterName" }, { "text": ":", @@ -59187,39 +54514,38 @@ "kind": "space" }, { - "text": "StringConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "Allows manipulation and formatting of text strings and determination and location of substrings within strings.", - "kind": "text" - } - ] - }, - { - "name": "Boolean", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", + "text": "number", "kind": "keyword" }, + { + "text": ")", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "Boolean", - "kind": "localName" + "text": "=>", + "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": " ", + "kind": "space" }, + { + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "i1_s_ncprop", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { "text": "var", "kind": "keyword" @@ -59229,7 +54555,7 @@ "kind": "space" }, { - "text": "Boolean", + "text": "i1_s_ncprop", "kind": "localName" }, { @@ -59241,20 +54567,20 @@ "kind": "space" }, { - "text": "BooleanConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], "documentation": [] }, { - "name": "Number", + "name": "i1_s_ncr", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "var", "kind": "keyword" }, { @@ -59262,13 +54588,30 @@ "kind": "space" }, { - "text": "Number", + "text": "i1_s_ncr", "kind": "localName" }, { - "text": "\n", - "kind": "lineBreak" + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" }, + { + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "i1_s_p", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { "text": "var", "kind": "keyword" @@ -59278,7 +54621,7 @@ "kind": "space" }, { - "text": "Number", + "text": "i1_s_p", "kind": "localName" }, { @@ -59290,25 +54633,20 @@ "kind": "space" }, { - "text": "NumberConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], - "documentation": [ - { - "text": "An object that represents a number of any kind. All JavaScript numbers are 64-bit floating-point numbers.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "Math", + "name": "i1_s_prop", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "var", "kind": "keyword" }, { @@ -59316,13 +54654,30 @@ "kind": "space" }, { - "text": "Math", + "text": "i1_s_prop", "kind": "localName" }, { - "text": "\n", - "kind": "lineBreak" + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" }, + { + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "i1_s_r", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { "text": "var", "kind": "keyword" @@ -59332,7 +54687,7 @@ "kind": "space" }, { - "text": "Math", + "text": "i1_s_r", "kind": "localName" }, { @@ -59344,50 +54699,37 @@ "kind": "space" }, { - "text": "Math", - "kind": "localName" + "text": "number", + "kind": "keyword" } ], - "documentation": [ - { - "text": "An intrinsic object that provides basic mathematics functionality and constants.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "Date", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "value", + "kind": "parameter", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Date", - "kind": "localName" + "text": "(", + "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": "parameter", + "kind": "text" }, { - "text": "var", - "kind": "keyword" + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Date", - "kind": "localName" + "text": "value", + "kind": "parameterName" }, { "text": ":", @@ -59398,19 +54740,19 @@ "kind": "space" }, { - "text": "DateConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], "documentation": [ { - "text": "Enables basic storage and retrieval of dates and times.", + "text": "this is value", "kind": "text" } ] }, { - "name": "RegExp", + "name": "Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -59424,9 +54766,21 @@ "kind": "space" }, { - "text": "RegExp", + "text": "Array", "kind": "localName" }, + { + "text": "<", + "kind": "punctuation" + }, + { + "text": "T", + "kind": "typeParameterName" + }, + { + "text": ">", + "kind": "punctuation" + }, { "text": "\n", "kind": "lineBreak" @@ -59440,7 +54794,7 @@ "kind": "space" }, { - "text": "RegExp", + "text": "Array", "kind": "localName" }, { @@ -59452,14 +54806,14 @@ "kind": "space" }, { - "text": "RegExpConstructor", + "text": "ArrayConstructor", "kind": "interfaceName" } ], "documentation": [] }, { - "name": "Error", + "name": "ArrayBuffer", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -59473,7 +54827,7 @@ "kind": "space" }, { - "text": "Error", + "text": "ArrayBuffer", "kind": "localName" }, { @@ -59489,7 +54843,7 @@ "kind": "space" }, { - "text": "Error", + "text": "ArrayBuffer", "kind": "localName" }, { @@ -59501,14 +54855,55 @@ "kind": "space" }, { - "text": "ErrorConstructor", + "text": "ArrayBufferConstructor", "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "Represents a raw buffer of binary data, which is used to store data for the\r\ndifferent typed arrays. ArrayBuffers cannot be read from or written to directly,\r\nbut can be passed to a typed array or DataView Object to interpret the raw\r\nbuffer as needed.", + "kind": "text" + } + ] }, { - "name": "EvalError", + "name": "as", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "as", + "kind": "keyword" + } + ] + }, + { + "name": "async", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "async", + "kind": "keyword" + } + ] + }, + { + "name": "await", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "await", + "kind": "keyword" + } + ] + }, + { + "name": "Boolean", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -59522,7 +54917,7 @@ "kind": "space" }, { - "text": "EvalError", + "text": "Boolean", "kind": "localName" }, { @@ -59538,7 +54933,7 @@ "kind": "space" }, { - "text": "EvalError", + "text": "Boolean", "kind": "localName" }, { @@ -59550,63 +54945,86 @@ "kind": "space" }, { - "text": "EvalErrorConstructor", + "text": "BooleanConstructor", "kind": "interfaceName" } ], "documentation": [] }, { - "name": "RangeError", - "kind": "var", - "kindModifiers": "declare", + "name": "break", + "kind": "keyword", + "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "break", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "RangeError", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, + } + ] + }, + { + "name": "case", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "var", + "text": "case", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, + } + ] + }, + { + "name": "catch", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "RangeError", - "kind": "localName" - }, + "text": "catch", + "kind": "keyword" + } + ] + }, + { + "name": "class", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": ":", - "kind": "punctuation" - }, + "text": "class", + "kind": "keyword" + } + ] + }, + { + "name": "const", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": " ", - "kind": "space" - }, + "text": "const", + "kind": "keyword" + } + ] + }, + { + "name": "continue", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "RangeErrorConstructor", - "kind": "interfaceName" + "text": "continue", + "kind": "keyword" } - ], - "documentation": [] + ] }, { - "name": "ReferenceError", + "name": "DataView", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -59620,7 +55038,7 @@ "kind": "space" }, { - "text": "ReferenceError", + "text": "DataView", "kind": "localName" }, { @@ -59636,7 +55054,7 @@ "kind": "space" }, { - "text": "ReferenceError", + "text": "DataView", "kind": "localName" }, { @@ -59648,14 +55066,14 @@ "kind": "space" }, { - "text": "ReferenceErrorConstructor", + "text": "DataViewConstructor", "kind": "interfaceName" } ], "documentation": [] }, { - "name": "SyntaxError", + "name": "Date", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -59669,7 +55087,7 @@ "kind": "space" }, { - "text": "SyntaxError", + "text": "Date", "kind": "localName" }, { @@ -59685,7 +55103,7 @@ "kind": "space" }, { - "text": "SyntaxError", + "text": "Date", "kind": "localName" }, { @@ -59697,20 +55115,37 @@ "kind": "space" }, { - "text": "SyntaxErrorConstructor", + "text": "DateConstructor", "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "Enables basic storage and retrieval of dates and times.", + "kind": "text" + } + ] }, { - "name": "TypeError", - "kind": "var", + "name": "debugger", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "debugger", + "kind": "keyword" + } + ] + }, + { + "name": "decodeURI", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -59718,24 +55153,32 @@ "kind": "space" }, { - "text": "TypeError", - "kind": "localName" + "text": "decodeURI", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "encodedURI", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "TypeError", - "kind": "localName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -59746,20 +55189,44 @@ "kind": "space" }, { - "text": "TypeErrorConstructor", - "kind": "interfaceName" + "text": "string", + "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Gets the unencoded version of an encoded Uniform Resource Identifier (URI).", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "encodedURI", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI.", + "kind": "text" + } + ] + } + ] }, { - "name": "URIError", - "kind": "var", + "name": "decodeURIComponent", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -59767,24 +55234,32 @@ "kind": "space" }, { - "text": "URIError", - "kind": "localName" + "text": "decodeURIComponent", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "encodedURIComponent", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "URIError", - "kind": "localName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -59795,20 +55270,92 @@ "kind": "space" }, { - "text": "URIErrorConstructor", - "kind": "interfaceName" + "text": "string", + "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "encodedURIComponent", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI component.", + "kind": "text" + } + ] + } + ] }, { - "name": "JSON", - "kind": "var", + "name": "default", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "default", + "kind": "keyword" + } + ] + }, + { + "name": "delete", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "delete", + "kind": "keyword" + } + ] + }, + { + "name": "do", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "do", + "kind": "keyword" + } + ] + }, + { + "name": "else", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "else", + "kind": "keyword" + } + ] + }, + { + "name": "encodeURI", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -59816,24 +55363,32 @@ "kind": "space" }, { - "text": "JSON", - "kind": "localName" + "text": "encodeURI", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "uri", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "JSON", - "kind": "localName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -59844,25 +55399,44 @@ "kind": "space" }, { - "text": "JSON", - "kind": "localName" + "text": "string", + "kind": "keyword" } ], "documentation": [ { - "text": "An intrinsic object that provides functions to convert JavaScript values to and from the JavaScript Object Notation (JSON) format.", + "text": "Encodes a text string as a valid Uniform Resource Identifier (URI)", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "uri", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI.", + "kind": "text" + } + ] + } ] }, { - "name": "Array", - "kind": "var", + "name": "encodeURIComponent", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -59870,27 +55444,27 @@ "kind": "space" }, { - "text": "Array", - "kind": "localName" + "text": "encodeURIComponent", + "kind": "functionName" }, { - "text": "<", + "text": "(", "kind": "punctuation" }, { - "text": "T", - "kind": "typeParameterName" + "text": "uriComponent", + "kind": "parameterName" }, { - "text": ">", + "text": ":", "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": " ", + "kind": "space" }, { - "text": "var", + "text": "string", "kind": "keyword" }, { @@ -59898,11 +55472,7 @@ "kind": "space" }, { - "text": "Array", - "kind": "localName" - }, - { - "text": ":", + "text": "|", "kind": "punctuation" }, { @@ -59910,20 +55480,7 @@ "kind": "space" }, { - "text": "ArrayConstructor", - "kind": "interfaceName" - } - ], - "documentation": [] - }, - { - "name": "ArrayBuffer", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", + "text": "number", "kind": "keyword" }, { @@ -59931,24 +55488,20 @@ "kind": "space" }, { - "text": "ArrayBuffer", - "kind": "localName" + "text": "|", + "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": " ", + "kind": "space" }, { - "text": "var", + "text": "boolean", "kind": "keyword" }, { - "text": " ", - "kind": "space" - }, - { - "text": "ArrayBuffer", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -59959,19 +55512,50 @@ "kind": "space" }, { - "text": "ArrayBufferConstructor", - "kind": "interfaceName" + "text": "string", + "kind": "keyword" } ], "documentation": [ { - "text": "Represents a raw buffer of binary data, which is used to store data for the\r\ndifferent typed arrays. ArrayBuffers cannot be read from or written to directly,\r\nbut can be passed to a typed array or DataView Object to interpret the raw\r\nbuffer as needed.", + "text": "Encodes a text string as a valid component of a Uniform Resource Identifier (URI).", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "uriComponent", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI component.", + "kind": "text" + } + ] + } ] }, { - "name": "DataView", + "name": "enum", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "enum", + "kind": "keyword" + } + ] + }, + { + "name": "Error", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -59985,7 +55569,7 @@ "kind": "space" }, { - "text": "DataView", + "text": "Error", "kind": "localName" }, { @@ -60001,7 +55585,7 @@ "kind": "space" }, { - "text": "DataView", + "text": "Error", "kind": "localName" }, { @@ -60013,20 +55597,20 @@ "kind": "space" }, { - "text": "DataViewConstructor", + "text": "ErrorConstructor", "kind": "interfaceName" } ], "documentation": [] }, { - "name": "Int8Array", - "kind": "var", + "name": "eval", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -60034,24 +55618,32 @@ "kind": "space" }, { - "text": "Int8Array", - "kind": "localName" + "text": "eval", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "x", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Int8Array", - "kind": "localName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -60062,19 +55654,38 @@ "kind": "space" }, { - "text": "Int8ArrayConstructor", - "kind": "interfaceName" + "text": "any", + "kind": "keyword" } ], "documentation": [ { - "text": "A typed array of 8-bit integer values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", + "text": "Evaluates JavaScript code and executes it.", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "x", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A String value that contains valid JavaScript code.", + "kind": "text" + } + ] + } ] }, { - "name": "Uint8Array", + "name": "EvalError", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -60088,7 +55699,7 @@ "kind": "space" }, { - "text": "Uint8Array", + "text": "EvalError", "kind": "localName" }, { @@ -60104,7 +55715,7 @@ "kind": "space" }, { - "text": "Uint8Array", + "text": "EvalError", "kind": "localName" }, { @@ -60116,19 +55727,62 @@ "kind": "space" }, { - "text": "Uint8ArrayConstructor", + "text": "EvalErrorConstructor", "kind": "interfaceName" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "export", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" + "text": "export", + "kind": "keyword" } ] }, { - "name": "Uint8ClampedArray", + "name": "extends", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "extends", + "kind": "keyword" + } + ] + }, + { + "name": "false", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "false", + "kind": "keyword" + } + ] + }, + { + "name": "finally", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "finally", + "kind": "keyword" + } + ] + }, + { + "name": "Float32Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -60142,7 +55796,7 @@ "kind": "space" }, { - "text": "Uint8ClampedArray", + "text": "Float32Array", "kind": "localName" }, { @@ -60158,7 +55812,7 @@ "kind": "space" }, { - "text": "Uint8ClampedArray", + "text": "Float32Array", "kind": "localName" }, { @@ -60170,19 +55824,19 @@ "kind": "space" }, { - "text": "Uint8ClampedArrayConstructor", + "text": "Float32ArrayConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0.\r\nIf the requested number of bytes could not be allocated an exception is raised.", + "text": "A typed array of 32-bit float values. The contents are initialized to 0. If the requested number\r\nof bytes could not be allocated an exception is raised.", "kind": "text" } ] }, { - "name": "Int16Array", + "name": "Float64Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -60196,7 +55850,7 @@ "kind": "space" }, { - "text": "Int16Array", + "text": "Float64Array", "kind": "localName" }, { @@ -60212,7 +55866,7 @@ "kind": "space" }, { - "text": "Int16Array", + "text": "Float64Array", "kind": "localName" }, { @@ -60224,19 +55878,43 @@ "kind": "space" }, { - "text": "Int16ArrayConstructor", + "text": "Float64ArrayConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "A typed array of 16-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "text": "A typed array of 64-bit float values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", "kind": "text" } ] }, { - "name": "Uint16Array", + "name": "for", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "for", + "kind": "keyword" + } + ] + }, + { + "name": "function", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + } + ] + }, + { + "name": "Function", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -60250,7 +55928,7 @@ "kind": "space" }, { - "text": "Uint16Array", + "text": "Function", "kind": "localName" }, { @@ -60266,7 +55944,7 @@ "kind": "space" }, { - "text": "Uint16Array", + "text": "Function", "kind": "localName" }, { @@ -60278,25 +55956,25 @@ "kind": "space" }, { - "text": "Uint16ArrayConstructor", + "text": "FunctionConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "text": "Creates a new function.", "kind": "text" } ] }, { - "name": "Int32Array", - "kind": "var", - "kindModifiers": "declare", + "name": "globalThis", + "kind": "module", + "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "module", "kind": "keyword" }, { @@ -60304,67 +55982,66 @@ "kind": "space" }, { - "text": "Int32Array", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, + "text": "globalThis", + "kind": "moduleName" + } + ], + "documentation": [] + }, + { + "name": "if", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "var", + "text": "if", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Int32Array", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, + } + ] + }, + { + "name": "implements", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": " ", - "kind": "space" - }, + "text": "implements", + "kind": "keyword" + } + ] + }, + { + "name": "import", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "Int32ArrayConstructor", - "kind": "interfaceName" + "text": "import", + "kind": "keyword" } - ], - "documentation": [ + ] + }, + { + "name": "in", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "A typed array of 32-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" + "text": "in", + "kind": "keyword" } ] }, { - "name": "Uint32Array", + "name": "Infinity", "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Uint32Array", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, { "text": "var", "kind": "keyword" @@ -60374,7 +56051,7 @@ "kind": "space" }, { - "text": "Uint32Array", + "text": "Infinity", "kind": "localName" }, { @@ -60386,19 +56063,26 @@ "kind": "space" }, { - "text": "Uint32ArrayConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "instanceof", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" + "text": "instanceof", + "kind": "keyword" } ] }, { - "name": "Float32Array", + "name": "Int16Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -60412,7 +56096,7 @@ "kind": "space" }, { - "text": "Float32Array", + "text": "Int16Array", "kind": "localName" }, { @@ -60428,7 +56112,7 @@ "kind": "space" }, { - "text": "Float32Array", + "text": "Int16Array", "kind": "localName" }, { @@ -60440,19 +56124,19 @@ "kind": "space" }, { - "text": "Float32ArrayConstructor", + "text": "Int16ArrayConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "A typed array of 32-bit float values. The contents are initialized to 0. If the requested number\r\nof bytes could not be allocated an exception is raised.", + "text": "A typed array of 16-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", "kind": "text" } ] }, { - "name": "Float64Array", + "name": "Int32Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -60466,7 +56150,7 @@ "kind": "space" }, { - "text": "Float64Array", + "text": "Int32Array", "kind": "localName" }, { @@ -60482,7 +56166,7 @@ "kind": "space" }, { - "text": "Float64Array", + "text": "Int32Array", "kind": "localName" }, { @@ -60494,72 +56178,25 @@ "kind": "space" }, { - "text": "Float64ArrayConstructor", + "text": "Int32ArrayConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "A typed array of 64-bit float values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", + "text": "A typed array of 32-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", "kind": "text" } ] }, { - "name": "Intl", - "kind": "module", + "name": "Int8Array", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Intl", - "kind": "moduleName" - } - ], - "documentation": [] - }, - { - "name": "c1", - "kind": "class", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "c1", - "kind": "className" - } - ], - "documentation": [ - { - "text": "This is comment for c1", - "kind": "text" - } - ] - }, - { - "name": "i1", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -60567,30 +56204,13 @@ "kind": "space" }, { - "text": "i1", + "text": "Int8Array", "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "c1", - "kind": "className" - } - ], - "documentation": [] - }, - { - "name": "i1_p", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ + }, + { + "text": "\n", + "kind": "lineBreak" + }, { "text": "var", "kind": "keyword" @@ -60600,7 +56220,7 @@ "kind": "space" }, { - "text": "i1_p", + "text": "Int8Array", "kind": "localName" }, { @@ -60612,20 +56232,37 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "Int8ArrayConstructor", + "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "A typed array of 8-bit integer values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] }, { - "name": "i1_f", - "kind": "var", + "name": "interface", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", + "kind": "keyword" + } + ] + }, + { + "name": "Intl", + "kind": "module", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "namespace", "kind": "keyword" }, { @@ -60633,23 +56270,36 @@ "kind": "space" }, { - "text": "i1_f", - "kind": "localName" - }, + "text": "Intl", + "kind": "moduleName" + } + ], + "documentation": [] + }, + { + "name": "isFinite", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { - "text": ":", - "kind": "punctuation" + "text": "function", + "kind": "keyword" }, { "text": " ", "kind": "space" }, + { + "text": "isFinite", + "kind": "functionName" + }, { "text": "(", "kind": "punctuation" }, { - "text": "b", + "text": "number", "kind": "parameterName" }, { @@ -60669,11 +56319,7 @@ "kind": "punctuation" }, { - "text": " ", - "kind": "space" - }, - { - "text": "=>", + "text": ":", "kind": "punctuation" }, { @@ -60681,20 +56327,44 @@ "kind": "space" }, { - "text": "number", + "text": "boolean", "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Determines whether a supplied number is finite.", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "number", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Any numeric value.", + "kind": "text" + } + ] + } + ] }, { - "name": "i1_r", - "kind": "var", - "kindModifiers": "", - "sortText": "11", + "name": "isNaN", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "function", "kind": "keyword" }, { @@ -60702,8 +56372,16 @@ "kind": "space" }, { - "text": "i1_r", - "kind": "localName" + "text": "isNaN", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "number", + "kind": "parameterName" }, { "text": ":", @@ -60716,27 +56394,10 @@ { "text": "number", "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_prop", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" }, { - "text": "i1_prop", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -60747,20 +56408,44 @@ "kind": "space" }, { - "text": "number", + "text": "boolean", "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Returns a Boolean value that indicates whether a value is the reserved value NaN (not a number).", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "number", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A numeric value.", + "kind": "text" + } + ] + } + ] }, { - "name": "i1_nc_p", + "name": "JSON", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -60768,30 +56453,13 @@ "kind": "space" }, { - "text": "i1_nc_p", + "text": "JSON", "kind": "localName" }, { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_ncf", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ { "text": "var", "kind": "keyword" @@ -60801,7 +56469,7 @@ "kind": "space" }, { - "text": "i1_ncf", + "text": "JSON", "kind": "localName" }, { @@ -60813,35 +56481,65 @@ "kind": "space" }, { - "text": "(", - "kind": "punctuation" - }, + "text": "JSON", + "kind": "localName" + } + ], + "documentation": [ { - "text": "b", - "kind": "parameterName" - }, + "text": "An intrinsic object that provides functions to convert JavaScript values to and from the JavaScript Object Notation (JSON) format.", + "kind": "text" + } + ] + }, + { + "name": "let", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": ":", - "kind": "punctuation" + "text": "let", + "kind": "keyword" + } + ] + }, + { + "name": "Math", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "Math", + "kind": "localName" }, { - "text": ")", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "=>", + "text": "Math", + "kind": "localName" + }, + { + "text": ":", "kind": "punctuation" }, { @@ -60849,17 +56547,22 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "Math", + "kind": "localName" } ], - "documentation": [] + "documentation": [ + { + "text": "An intrinsic object that provides basic mathematics functionality and constants.", + "kind": "text" + } + ] }, { - "name": "i1_ncr", + "name": "NaN", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { "text": "var", @@ -60870,7 +56573,7 @@ "kind": "space" }, { - "text": "i1_ncr", + "text": "NaN", "kind": "localName" }, { @@ -60889,13 +56592,37 @@ "documentation": [] }, { - "name": "i1_ncprop", - "kind": "var", + "name": "new", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "new", + "kind": "keyword" + } + ] + }, + { + "name": "null", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "null", + "kind": "keyword" + } + ] + }, + { + "name": "Number", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", "kind": "keyword" }, { @@ -60903,30 +56630,13 @@ "kind": "space" }, { - "text": "i1_ncprop", + "text": "Number", "kind": "localName" }, { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_s_p", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ { "text": "var", "kind": "keyword" @@ -60936,7 +56646,7 @@ "kind": "space" }, { - "text": "i1_s_p", + "text": "Number", "kind": "localName" }, { @@ -60948,20 +56658,25 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "NumberConstructor", + "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "An object that represents a number of any kind. All JavaScript numbers are 64-bit floating-point numbers.", + "kind": "text" + } + ] }, { - "name": "i1_s_f", + "name": "Object", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -60969,39 +56684,27 @@ "kind": "space" }, { - "text": "i1_s_f", + "text": "Object", "kind": "localName" }, { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "b", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "Object", + "kind": "localName" }, { - "text": ")", + "text": ":", "kind": "punctuation" }, { @@ -61009,28 +56712,37 @@ "kind": "space" }, { - "text": "=>", - "kind": "punctuation" - }, + "text": "ObjectConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ { - "text": " ", - "kind": "space" - }, + "text": "Provides functionality common to all JavaScript objects.", + "kind": "text" + } + ] + }, + { + "name": "package", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "number", + "text": "package", "kind": "keyword" } - ], - "documentation": [] + ] }, { - "name": "i1_s_r", - "kind": "var", - "kindModifiers": "", - "sortText": "11", + "name": "parseFloat", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "function", "kind": "keyword" }, { @@ -61038,41 +56750,32 @@ "kind": "space" }, { - "text": "i1_s_r", - "kind": "localName" + "text": "parseFloat", + "kind": "functionName" }, { - "text": ":", + "text": "(", "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "string", + "kind": "parameterName" }, { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_s_prop", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "i1_s_prop", - "kind": "localName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -61087,16 +56790,40 @@ "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Converts a string to a floating-point number.", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string that contains a floating-point number.", + "kind": "text" + } + ] + } + ] }, { - "name": "i1_s_nc_p", - "kind": "var", - "kindModifiers": "", - "sortText": "11", + "name": "parseInt", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "function", "kind": "keyword" }, { @@ -61104,44 +56831,31 @@ "kind": "space" }, { - "text": "i1_s_nc_p", - "kind": "localName" + "text": "parseInt", + "kind": "functionName" }, { - "text": ":", + "text": "(", "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_s_ncf", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ + }, { - "text": "var", - "kind": "keyword" + "text": "string", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "i1_s_ncf", - "kind": "localName" + "text": "string", + "kind": "keyword" }, { - "text": ":", + "text": ",", "kind": "punctuation" }, { @@ -61149,12 +56863,12 @@ "kind": "space" }, { - "text": "(", - "kind": "punctuation" + "text": "radix", + "kind": "parameterName" }, { - "text": "b", - "kind": "parameterName" + "text": "?", + "kind": "punctuation" }, { "text": ":", @@ -61173,11 +56887,7 @@ "kind": "punctuation" }, { - "text": " ", - "kind": "space" - }, - { - "text": "=>", + "text": ":", "kind": "punctuation" }, { @@ -61189,16 +56899,57 @@ "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Converts a string to an integer.", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string to convert into a number.", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "radix", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value between 2 and 36 that specifies the base of the number in `string`.\r\nIf this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal.\r\nAll other strings are considered decimal.", + "kind": "text" + } + ] + } + ] }, { - "name": "i1_s_ncr", + "name": "RangeError", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -61206,30 +56957,13 @@ "kind": "space" }, { - "text": "i1_s_ncr", + "text": "RangeError", "kind": "localName" }, { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_s_ncprop", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ { "text": "var", "kind": "keyword" @@ -61239,7 +56973,7 @@ "kind": "space" }, { - "text": "i1_s_ncprop", + "text": "RangeError", "kind": "localName" }, { @@ -61251,20 +56985,20 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "RangeErrorConstructor", + "kind": "interfaceName" } ], "documentation": [] }, { - "name": "i1_c", + "name": "ReferenceError", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -61272,40 +57006,48 @@ "kind": "space" }, { - "text": "i1_c", + "text": "ReferenceError", "kind": "localName" }, { - "text": ":", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "typeof", - "kind": "keyword" + "text": "ReferenceError", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "c1", - "kind": "className" + "text": "ReferenceErrorConstructor", + "kind": "interfaceName" } ], "documentation": [] }, { - "name": "cProperties", - "kind": "class", - "kindModifiers": "", - "sortText": "11", + "name": "RegExp", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "class", + "text": "interface", "kind": "keyword" }, { @@ -61313,18 +57055,13 @@ "kind": "space" }, { - "text": "cProperties", - "kind": "className" - } - ], - "documentation": [] - }, - { - "name": "cProperties_i", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ + "text": "RegExp", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, { "text": "var", "kind": "keyword" @@ -61334,7 +57071,7 @@ "kind": "space" }, { - "text": "cProperties_i", + "text": "RegExp", "kind": "localName" }, { @@ -61346,39 +57083,46 @@ "kind": "space" }, { - "text": "cProperties", - "kind": "className" + "text": "RegExpConstructor", + "kind": "interfaceName" } ], "documentation": [] }, { - "name": "cWithConstructorProperty", - "kind": "class", + "name": "return", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "class", + "text": "return", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "cWithConstructorProperty", - "kind": "className" } - ], - "documentation": [] + ] }, { - "name": "undefined", + "name": "String", "kind": "var", - "kindModifiers": "", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "String", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, { "text": "var", "kind": "keyword" @@ -61388,395 +57132,496 @@ "kind": "space" }, { - "text": "undefined", - "kind": "propertyName" + "text": "String", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "StringConstructor", + "kind": "interfaceName" } ], - "documentation": [] - }, - { - "name": "break", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "documentation": [ { - "text": "break", - "kind": "keyword" + "text": "Allows manipulation and formatting of text strings and determination and location of substrings within strings.", + "kind": "text" } ] }, { - "name": "case", + "name": "super", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "case", + "text": "super", "kind": "keyword" } ] }, { - "name": "catch", + "name": "switch", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "catch", + "text": "switch", "kind": "keyword" } ] }, { - "name": "class", - "kind": "keyword", - "kindModifiers": "", + "name": "SyntaxError", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "class", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "const", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "const", - "kind": "keyword" - } - ] - }, - { - "name": "continue", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "continue", - "kind": "keyword" - } - ] - }, - { - "name": "debugger", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "SyntaxError", + "kind": "localName" + }, { - "text": "debugger", - "kind": "keyword" - } - ] - }, - { - "name": "default", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "\n", + "kind": "lineBreak" + }, { - "text": "default", + "text": "var", "kind": "keyword" - } - ] - }, - { - "name": "delete", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "delete", - "kind": "keyword" - } - ] - }, - { - "name": "do", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "do", - "kind": "keyword" - } - ] - }, - { - "name": "else", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "SyntaxError", + "kind": "localName" + }, { - "text": "else", - "kind": "keyword" - } - ] - }, - { - "name": "enum", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": ":", + "kind": "punctuation" + }, { - "text": "enum", - "kind": "keyword" - } - ] - }, - { - "name": "export", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "export", - "kind": "keyword" + "text": "SyntaxErrorConstructor", + "kind": "interfaceName" } - ] + ], + "documentation": [] }, { - "name": "extends", + "name": "this", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "extends", + "text": "this", "kind": "keyword" } ] }, { - "name": "false", + "name": "throw", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "false", + "text": "throw", "kind": "keyword" } ] }, { - "name": "finally", + "name": "true", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "finally", + "text": "true", "kind": "keyword" } ] }, { - "name": "for", + "name": "try", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "for", + "text": "try", "kind": "keyword" } ] }, { - "name": "function", - "kind": "keyword", - "kindModifiers": "", + "name": "TypeError", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "if", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "if", - "kind": "keyword" - } - ] - }, - { - "name": "import", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "import", - "kind": "keyword" - } - ] - }, - { - "name": "in", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "TypeError", + "kind": "localName" + }, { - "text": "in", - "kind": "keyword" - } - ] - }, - { - "name": "instanceof", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "\n", + "kind": "lineBreak" + }, { - "text": "instanceof", + "text": "var", "kind": "keyword" - } - ] - }, - { - "name": "new", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "new", - "kind": "keyword" - } - ] - }, - { - "name": "null", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "null", - "kind": "keyword" - } - ] - }, - { - "name": "return", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "TypeError", + "kind": "localName" + }, { - "text": "return", - "kind": "keyword" + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "TypeErrorConstructor", + "kind": "interfaceName" } - ] + ], + "documentation": [] }, { - "name": "super", + "name": "typeof", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "super", + "text": "typeof", "kind": "keyword" } ] }, { - "name": "switch", - "kind": "keyword", - "kindModifiers": "", + "name": "Uint16Array", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "switch", + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint16Array", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint16Array", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint16ArrayConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ + { + "text": "A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" } ] }, { - "name": "this", - "kind": "keyword", - "kindModifiers": "", + "name": "Uint32Array", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "this", + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint32Array", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint32Array", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint32ArrayConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ + { + "text": "A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" } ] }, { - "name": "throw", - "kind": "keyword", - "kindModifiers": "", + "name": "Uint8Array", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "throw", + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint8Array", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint8Array", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint8ArrayConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ + { + "text": "A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" } ] }, { - "name": "true", - "kind": "keyword", - "kindModifiers": "", + "name": "Uint8ClampedArray", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "true", + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint8ClampedArray", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint8ClampedArray", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint8ClampedArrayConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ + { + "text": "A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0.\r\nIf the requested number of bytes could not be allocated an exception is raised.", + "kind": "text" } ] }, { - "name": "try", - "kind": "keyword", + "name": "undefined", + "kind": "var", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "try", + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "undefined", + "kind": "propertyName" } - ] + ], + "documentation": [] }, { - "name": "typeof", - "kind": "keyword", - "kindModifiers": "", + "name": "URIError", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "typeof", + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "URIError", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "URIError", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "URIErrorConstructor", + "kind": "interfaceName" } - ] + ], + "documentation": [] }, { "name": "var", @@ -61827,99 +57672,195 @@ ] }, { - "name": "implements", + "name": "yield", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "implements", + "text": "yield", "kind": "keyword" } ] }, { - "name": "interface", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", + "name": "escape", + "kind": "function", + "kindModifiers": "deprecated,declare", + "sortText": "z15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" - } - ] - }, - { - "name": "let", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "let", + "text": " ", + "kind": "space" + }, + { + "text": "escape", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "string", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", "kind": "keyword" - } - ] - }, - { - "name": "package", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "package", + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", "kind": "keyword" } - ] - }, - { - "name": "yield", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "yield", - "kind": "keyword" + "text": "Computes a new string in which certain characters have been replaced by a hexadecimal escape sequence.", + "kind": "text" } - ] - }, - { - "name": "as", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "tags": [ { - "text": "as", - "kind": "keyword" + "name": "deprecated", + "text": [ + { + "text": "A legacy feature for browser compatibility", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string value", + "kind": "text" + } + ] } ] }, { - "name": "async", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", + "name": "unescape", + "kind": "function", + "kindModifiers": "deprecated,declare", + "sortText": "z15", "displayParts": [ { - "text": "async", + "text": "function", "kind": "keyword" - } - ] - }, - { - "name": "await", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "await", + "text": " ", + "kind": "space" + }, + { + "text": "unescape", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "string", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", "kind": "keyword" } + ], + "documentation": [ + { + "text": "Computes a new string in which hexadecimal escape sequences are replaced with the character that it represents.", + "kind": "text" + } + ], + "tags": [ + { + "name": "deprecated", + "text": [ + { + "text": "A legacy feature for browser compatibility", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string value", + "kind": "text" + } + ] + } ] } ] @@ -61928,21 +57869,21 @@ { "marker": { "fileName": "/tests/cases/fourslash/completionsCommentsClassMembers.ts", - "position": 1471, - "name": "49" + "position": 1322, + "name": "45" }, "completionList": { "isGlobalCompletion": false, "isMemberCompletion": false, - "isNewIdentifierLocation": true, + "isNewIdentifierLocation": false, "optionalReplacementSpan": { - "start": 1471, - "length": 5 + "start": 1322, + "length": 1 }, "entries": [ { - "name": "value", - "kind": "parameter", + "name": "arguments", + "kind": "local var", "kindModifiers": "", "sortText": "11", "displayParts": [ @@ -61951,7 +57892,7 @@ "kind": "punctuation" }, { - "text": "parameter", + "text": "local var", "kind": "text" }, { @@ -61963,8 +57904,8 @@ "kind": "space" }, { - "text": "value", - "kind": "parameterName" + "text": "arguments", + "kind": "propertyName" }, { "text": ":", @@ -61975,15 +57916,15 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "IArguments", + "kind": "interfaceName" } ], "documentation": [] }, { - "name": "arguments", - "kind": "local var", + "name": "b", + "kind": "parameter", "kindModifiers": "", "sortText": "11", "displayParts": [ @@ -61992,7 +57933,7 @@ "kind": "punctuation" }, { - "text": "local var", + "text": "parameter", "kind": "text" }, { @@ -62004,8 +57945,8 @@ "kind": "space" }, { - "text": "arguments", - "kind": "propertyName" + "text": "b", + "kind": "parameterName" }, { "text": ":", @@ -62016,20 +57957,20 @@ "kind": "space" }, { - "text": "IArguments", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], "documentation": [] }, { - "name": "globalThis", - "kind": "module", + "name": "c1", + "kind": "class", "kindModifiers": "", - "sortText": "15", + "sortText": "11", "displayParts": [ { - "text": "module", + "text": "class", "kind": "keyword" }, { @@ -62037,20 +57978,25 @@ "kind": "space" }, { - "text": "globalThis", - "kind": "moduleName" + "text": "c1", + "kind": "className" } ], - "documentation": [] + "documentation": [ + { + "text": "This is comment for c1", + "kind": "text" + } + ] }, { - "name": "eval", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "name": "cProperties", + "kind": "class", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "function", + "text": "class", "kind": "keyword" }, { @@ -62058,32 +58004,29 @@ "kind": "space" }, { - "text": "eval", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "x", - "kind": "parameterName" - }, + "text": "cProperties", + "kind": "className" + } + ], + "documentation": [] + }, + { + "name": "cProperties_i", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "cProperties_i", + "kind": "localName" }, { "text": ":", @@ -62094,44 +58037,20 @@ "kind": "space" }, { - "text": "any", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Evaluates JavaScript code and executes it.", - "kind": "text" + "text": "cProperties", + "kind": "className" } ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "x", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A String value that contains valid JavaScript code.", - "kind": "text" - } - ] - } - ] + "documentation": [] }, { - "name": "parseInt", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "name": "cWithConstructorProperty", + "kind": "class", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "function", + "text": "class", "kind": "keyword" }, { @@ -62139,16 +58058,29 @@ "kind": "space" }, { - "text": "parseInt", - "kind": "functionName" + "text": "cWithConstructorProperty", + "kind": "className" + } + ], + "documentation": [] + }, + { + "name": "i1", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "var", + "kind": "keyword" }, { - "text": "(", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": "string", - "kind": "parameterName" + "text": "i1", + "kind": "localName" }, { "text": ":", @@ -62159,24 +58091,29 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" - }, + "text": "c1", + "kind": "className" + } + ], + "documentation": [] + }, + { + "name": "i1_c", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { - "text": ",", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "radix", - "kind": "parameterName" - }, - { - "text": "?", - "kind": "punctuation" + "text": "i1_c", + "kind": "localName" }, { "text": ":", @@ -62187,77 +58124,28 @@ "kind": "space" }, { - "text": "number", + "text": "typeof", "kind": "keyword" }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Converts a string to an integer.", - "kind": "text" + "text": "c1", + "kind": "className" } ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string to convert into a number.", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "radix", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value between 2 and 36 that specifies the base of the number in `string`.\r\nIf this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal.\r\nAll other strings are considered decimal.", - "kind": "text" - } - ] - } - ] + "documentation": [] }, { - "name": "parseFloat", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "name": "i1_f", + "kind": "var", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "function", + "text": "var", "kind": "keyword" }, { @@ -62265,15 +58153,23 @@ "kind": "space" }, { - "text": "parseFloat", - "kind": "functionName" + "text": "i1_f", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" }, { "text": "(", "kind": "punctuation" }, { - "text": "string", + "text": "b", "kind": "parameterName" }, { @@ -62285,7 +58181,7 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" }, { @@ -62293,7 +58189,11 @@ "kind": "punctuation" }, { - "text": ":", + "text": " ", + "kind": "space" + }, + { + "text": "=>", "kind": "punctuation" }, { @@ -62305,40 +58205,16 @@ "kind": "keyword" } ], - "documentation": [ - { - "text": "Converts a string to a floating-point number.", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string that contains a floating-point number.", - "kind": "text" - } - ] - } - ] + "documentation": [] }, { - "name": "isNaN", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "name": "i1_nc_p", + "kind": "var", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "function", + "text": "var", "kind": "keyword" }, { @@ -62346,16 +58222,8 @@ "kind": "space" }, { - "text": "isNaN", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "number", - "kind": "parameterName" + "text": "i1_nc_p", + "kind": "localName" }, { "text": ":", @@ -62368,58 +58236,18 @@ { "text": "number", "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "boolean", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Returns a Boolean value that indicates whether a value is the reserved value NaN (not a number).", - "kind": "text" } ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "number", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A numeric value.", - "kind": "text" - } - ] - } - ] + "documentation": [] }, { - "name": "isFinite", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "name": "i1_ncf", + "kind": "var", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "function", + "text": "var", "kind": "keyword" }, { @@ -62427,15 +58255,23 @@ "kind": "space" }, { - "text": "isFinite", - "kind": "functionName" + "text": "i1_ncf", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" }, { "text": "(", "kind": "punctuation" }, { - "text": "number", + "text": "b", "kind": "parameterName" }, { @@ -62455,7 +58291,11 @@ "kind": "punctuation" }, { - "text": ":", + "text": " ", + "kind": "space" + }, + { + "text": "=>", "kind": "punctuation" }, { @@ -62463,44 +58303,20 @@ "kind": "space" }, { - "text": "boolean", + "text": "number", "kind": "keyword" } ], - "documentation": [ - { - "text": "Determines whether a supplied number is finite.", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "number", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Any numeric value.", - "kind": "text" - } - ] - } - ] + "documentation": [] }, { - "name": "decodeURI", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "name": "i1_ncprop", + "kind": "var", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "function", + "text": "var", "kind": "keyword" }, { @@ -62508,32 +58324,8 @@ "kind": "space" }, { - "text": "decodeURI", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "encodedURI", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "i1_ncprop", + "kind": "localName" }, { "text": ":", @@ -62544,44 +58336,20 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" } ], - "documentation": [ - { - "text": "Gets the unencoded version of an encoded Uniform Resource Identifier (URI).", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "encodedURI", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI.", - "kind": "text" - } - ] - } - ] + "documentation": [] }, { - "name": "decodeURIComponent", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "name": "i1_ncr", + "kind": "var", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "function", + "text": "var", "kind": "keyword" }, { @@ -62589,32 +58357,41 @@ "kind": "space" }, { - "text": "decodeURIComponent", - "kind": "functionName" + "text": "i1_ncr", + "kind": "localName" }, { - "text": "(", + "text": ":", "kind": "punctuation" }, { - "text": "encodedURIComponent", - "kind": "parameterName" + "text": " ", + "kind": "space" }, { - "text": ":", - "kind": "punctuation" + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "i1_p", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "i1_p", + "kind": "localName" }, { "text": ":", @@ -62625,44 +58402,20 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" } ], - "documentation": [ - { - "text": "Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "encodedURIComponent", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI component.", - "kind": "text" - } - ] - } - ] + "documentation": [] }, { - "name": "encodeURI", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "name": "i1_prop", + "kind": "var", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "function", + "text": "var", "kind": "keyword" }, { @@ -62670,16 +58423,8 @@ "kind": "space" }, { - "text": "encodeURI", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "uri", - "kind": "parameterName" + "text": "i1_prop", + "kind": "localName" }, { "text": ":", @@ -62690,12 +58435,29 @@ "kind": "space" }, { - "text": "string", + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "i1_r", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "var", "kind": "keyword" }, { - "text": ")", - "kind": "punctuation" + "text": " ", + "kind": "space" + }, + { + "text": "i1_r", + "kind": "localName" }, { "text": ":", @@ -62706,44 +58468,20 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" } ], - "documentation": [ - { - "text": "Encodes a text string as a valid Uniform Resource Identifier (URI)", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "uri", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI.", - "kind": "text" - } - ] - } - ] + "documentation": [] }, { - "name": "encodeURIComponent", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "name": "i1_s_f", + "kind": "var", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "function", + "text": "var", "kind": "keyword" }, { @@ -62751,15 +58489,23 @@ "kind": "space" }, { - "text": "encodeURIComponent", - "kind": "functionName" + "text": "i1_s_f", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" }, { "text": "(", "kind": "punctuation" }, { - "text": "uriComponent", + "text": "b", "kind": "parameterName" }, { @@ -62771,15 +58517,19 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" }, + { + "text": ")", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "|", + "text": "=>", "kind": "punctuation" }, { @@ -62789,26 +58539,27 @@ { "text": "number", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, + } + ], + "documentation": [] + }, + { + "name": "i1_s_nc_p", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { - "text": "|", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "boolean", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "i1_s_nc_p", + "kind": "localName" }, { "text": ":", @@ -62819,44 +58570,20 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" } ], - "documentation": [ - { - "text": "Encodes a text string as a valid component of a Uniform Resource Identifier (URI).", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "uriComponent", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI component.", - "kind": "text" - } - ] - } - ] + "documentation": [] }, { - "name": "escape", - "kind": "function", - "kindModifiers": "deprecated,declare", - "sortText": "23", + "name": "i1_s_ncf", + "kind": "var", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "function", + "text": "var", "kind": "keyword" }, { @@ -62864,15 +58591,23 @@ "kind": "space" }, { - "text": "escape", - "kind": "functionName" + "text": "i1_s_ncf", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" }, { "text": "(", "kind": "punctuation" }, { - "text": "string", + "text": "b", "kind": "parameterName" }, { @@ -62884,7 +58619,7 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" }, { @@ -62892,7 +58627,11 @@ "kind": "punctuation" }, { - "text": ":", + "text": " ", + "kind": "space" + }, + { + "text": "=>", "kind": "punctuation" }, { @@ -62900,53 +58639,20 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" } ], - "documentation": [ - { - "text": "Computes a new string in which certain characters have been replaced by a hexadecimal escape sequence.", - "kind": "text" - } - ], - "tags": [ - { - "name": "deprecated", - "text": [ - { - "text": "A legacy feature for browser compatibility", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string value", - "kind": "text" - } - ] - } - ] + "documentation": [] }, { - "name": "unescape", - "kind": "function", - "kindModifiers": "deprecated,declare", - "sortText": "23", + "name": "i1_s_ncprop", + "kind": "var", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "function", + "text": "var", "kind": "keyword" }, { @@ -62954,16 +58660,8 @@ "kind": "space" }, { - "text": "unescape", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "string", - "kind": "parameterName" + "text": "i1_s_ncprop", + "kind": "localName" }, { "text": ":", @@ -62974,12 +58672,29 @@ "kind": "space" }, { - "text": "string", + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "i1_s_ncr", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "var", "kind": "keyword" }, { - "text": ")", - "kind": "punctuation" + "text": " ", + "kind": "space" + }, + { + "text": "i1_s_ncr", + "kind": "localName" }, { "text": ":", @@ -62990,50 +58705,50 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "i1_s_p", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { - "text": "Computes a new string in which hexadecimal escape sequences are replaced with the character that it represents.", - "kind": "text" - } - ], - "tags": [ + "text": "var", + "kind": "keyword" + }, { - "name": "deprecated", - "text": [ - { - "text": "A legacy feature for browser compatibility", - "kind": "text" - } - ] + "text": " ", + "kind": "space" }, { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string value", - "kind": "text" - } - ] + "text": "i1_s_p", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" } - ] + ], + "documentation": [] }, { - "name": "NaN", + "name": "i1_s_prop", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { "text": "var", @@ -63044,7 +58759,7 @@ "kind": "space" }, { - "text": "NaN", + "text": "i1_s_prop", "kind": "localName" }, { @@ -63063,10 +58778,10 @@ "documentation": [] }, { - "name": "Infinity", + "name": "i1_s_r", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { "text": "var", @@ -63077,7 +58792,7 @@ "kind": "space" }, { - "text": "Infinity", + "text": "i1_s_r", "kind": "localName" }, { @@ -63096,7 +58811,7 @@ "documentation": [] }, { - "name": "Object", + "name": "Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -63110,9 +58825,21 @@ "kind": "space" }, { - "text": "Object", + "text": "Array", "kind": "localName" }, + { + "text": "<", + "kind": "punctuation" + }, + { + "text": "T", + "kind": "typeParameterName" + }, + { + "text": ">", + "kind": "punctuation" + }, { "text": "\n", "kind": "lineBreak" @@ -63126,7 +58853,7 @@ "kind": "space" }, { - "text": "Object", + "text": "Array", "kind": "localName" }, { @@ -63138,19 +58865,14 @@ "kind": "space" }, { - "text": "ObjectConstructor", + "text": "ArrayConstructor", "kind": "interfaceName" } ], - "documentation": [ - { - "text": "Provides functionality common to all JavaScript objects.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "Function", + "name": "ArrayBuffer", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -63164,7 +58886,7 @@ "kind": "space" }, { - "text": "Function", + "text": "ArrayBuffer", "kind": "localName" }, { @@ -63180,7 +58902,7 @@ "kind": "space" }, { - "text": "Function", + "text": "ArrayBuffer", "kind": "localName" }, { @@ -63192,19 +58914,55 @@ "kind": "space" }, { - "text": "FunctionConstructor", + "text": "ArrayBufferConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "Creates a new function.", + "text": "Represents a raw buffer of binary data, which is used to store data for the\r\ndifferent typed arrays. ArrayBuffers cannot be read from or written to directly,\r\nbut can be passed to a typed array or DataView Object to interpret the raw\r\nbuffer as needed.", "kind": "text" } ] }, { - "name": "String", + "name": "as", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "as", + "kind": "keyword" + } + ] + }, + { + "name": "async", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "async", + "kind": "keyword" + } + ] + }, + { + "name": "await", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "await", + "kind": "keyword" + } + ] + }, + { + "name": "Boolean", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -63218,7 +58976,7 @@ "kind": "space" }, { - "text": "String", + "text": "Boolean", "kind": "localName" }, { @@ -63234,7 +58992,7 @@ "kind": "space" }, { - "text": "String", + "text": "Boolean", "kind": "localName" }, { @@ -63246,19 +59004,86 @@ "kind": "space" }, { - "text": "StringConstructor", - "kind": "interfaceName" + "text": "BooleanConstructor", + "kind": "interfaceName" + } + ], + "documentation": [] + }, + { + "name": "break", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "break", + "kind": "keyword" + } + ] + }, + { + "name": "case", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "case", + "kind": "keyword" + } + ] + }, + { + "name": "catch", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "catch", + "kind": "keyword" + } + ] + }, + { + "name": "class", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "class", + "kind": "keyword" } - ], - "documentation": [ + ] + }, + { + "name": "const", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "Allows manipulation and formatting of text strings and determination and location of substrings within strings.", - "kind": "text" + "text": "const", + "kind": "keyword" } ] }, { - "name": "Boolean", + "name": "continue", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "continue", + "kind": "keyword" + } + ] + }, + { + "name": "DataView", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -63272,7 +59097,7 @@ "kind": "space" }, { - "text": "Boolean", + "text": "DataView", "kind": "localName" }, { @@ -63288,7 +59113,7 @@ "kind": "space" }, { - "text": "Boolean", + "text": "DataView", "kind": "localName" }, { @@ -63300,14 +59125,14 @@ "kind": "space" }, { - "text": "BooleanConstructor", + "text": "DataViewConstructor", "kind": "interfaceName" } ], "documentation": [] }, { - "name": "Number", + "name": "Date", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -63321,7 +59146,7 @@ "kind": "space" }, { - "text": "Number", + "text": "Date", "kind": "localName" }, { @@ -63337,7 +59162,7 @@ "kind": "space" }, { - "text": "Number", + "text": "Date", "kind": "localName" }, { @@ -63349,25 +59174,37 @@ "kind": "space" }, { - "text": "NumberConstructor", + "text": "DateConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "An object that represents a number of any kind. All JavaScript numbers are 64-bit floating-point numbers.", + "text": "Enables basic storage and retrieval of dates and times.", "kind": "text" } ] }, { - "name": "Math", - "kind": "var", + "name": "debugger", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "debugger", + "kind": "keyword" + } + ] + }, + { + "name": "decodeURI", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -63375,24 +59212,32 @@ "kind": "space" }, { - "text": "Math", - "kind": "localName" + "text": "decodeURI", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "encodedURI", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Math", - "kind": "localName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -63403,25 +59248,44 @@ "kind": "space" }, { - "text": "Math", - "kind": "localName" + "text": "string", + "kind": "keyword" } ], "documentation": [ { - "text": "An intrinsic object that provides basic mathematics functionality and constants.", + "text": "Gets the unencoded version of an encoded Uniform Resource Identifier (URI).", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "encodedURI", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI.", + "kind": "text" + } + ] + } ] }, { - "name": "Date", - "kind": "var", + "name": "decodeURIComponent", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -63429,24 +59293,32 @@ "kind": "space" }, { - "text": "Date", - "kind": "localName" + "text": "decodeURIComponent", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "encodedURIComponent", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Date", - "kind": "localName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -63457,25 +59329,92 @@ "kind": "space" }, { - "text": "DateConstructor", - "kind": "interfaceName" + "text": "string", + "kind": "keyword" } ], "documentation": [ { - "text": "Enables basic storage and retrieval of dates and times.", + "text": "Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "encodedURIComponent", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI component.", + "kind": "text" + } + ] + } ] }, { - "name": "RegExp", - "kind": "var", + "name": "default", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "default", + "kind": "keyword" + } + ] + }, + { + "name": "delete", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "delete", + "kind": "keyword" + } + ] + }, + { + "name": "do", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "do", + "kind": "keyword" + } + ] + }, + { + "name": "else", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "else", + "kind": "keyword" + } + ] + }, + { + "name": "encodeURI", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -63483,24 +59422,32 @@ "kind": "space" }, { - "text": "RegExp", - "kind": "localName" + "text": "encodeURI", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "uri", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "RegExp", - "kind": "localName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -63511,20 +59458,44 @@ "kind": "space" }, { - "text": "RegExpConstructor", - "kind": "interfaceName" + "text": "string", + "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Encodes a text string as a valid Uniform Resource Identifier (URI)", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "uri", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI.", + "kind": "text" + } + ] + } + ] }, { - "name": "Error", - "kind": "var", + "name": "encodeURIComponent", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -63532,27 +59503,35 @@ "kind": "space" }, { - "text": "Error", - "kind": "localName" + "text": "encodeURIComponent", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "uriComponent", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Error", - "kind": "localName" + "text": "string", + "kind": "keyword" }, { - "text": ":", + "text": " ", + "kind": "space" + }, + { + "text": "|", "kind": "punctuation" }, { @@ -63560,20 +59539,7 @@ "kind": "space" }, { - "text": "ErrorConstructor", - "kind": "interfaceName" - } - ], - "documentation": [] - }, - { - "name": "EvalError", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", + "text": "number", "kind": "keyword" }, { @@ -63581,24 +59547,20 @@ "kind": "space" }, { - "text": "EvalError", - "kind": "localName" + "text": "|", + "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": " ", + "kind": "space" }, { - "text": "var", + "text": "boolean", "kind": "keyword" }, { - "text": " ", - "kind": "space" - }, - { - "text": "EvalError", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -63609,14 +59571,50 @@ "kind": "space" }, { - "text": "EvalErrorConstructor", - "kind": "interfaceName" + "text": "string", + "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Encodes a text string as a valid component of a Uniform Resource Identifier (URI).", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "uriComponent", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI component.", + "kind": "text" + } + ] + } + ] }, { - "name": "RangeError", + "name": "enum", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "enum", + "kind": "keyword" + } + ] + }, + { + "name": "Error", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -63630,7 +59628,7 @@ "kind": "space" }, { - "text": "RangeError", + "text": "Error", "kind": "localName" }, { @@ -63646,7 +59644,7 @@ "kind": "space" }, { - "text": "RangeError", + "text": "Error", "kind": "localName" }, { @@ -63658,20 +59656,20 @@ "kind": "space" }, { - "text": "RangeErrorConstructor", + "text": "ErrorConstructor", "kind": "interfaceName" } ], "documentation": [] }, { - "name": "ReferenceError", - "kind": "var", + "name": "eval", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -63679,24 +59677,32 @@ "kind": "space" }, { - "text": "ReferenceError", - "kind": "localName" + "text": "eval", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "x", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "ReferenceError", - "kind": "localName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -63707,14 +59713,38 @@ "kind": "space" }, { - "text": "ReferenceErrorConstructor", - "kind": "interfaceName" + "text": "any", + "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Evaluates JavaScript code and executes it.", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "x", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A String value that contains valid JavaScript code.", + "kind": "text" + } + ] + } + ] }, { - "name": "SyntaxError", + "name": "EvalError", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -63728,7 +59758,7 @@ "kind": "space" }, { - "text": "SyntaxError", + "text": "EvalError", "kind": "localName" }, { @@ -63744,7 +59774,7 @@ "kind": "space" }, { - "text": "SyntaxError", + "text": "EvalError", "kind": "localName" }, { @@ -63756,14 +59786,62 @@ "kind": "space" }, { - "text": "SyntaxErrorConstructor", + "text": "EvalErrorConstructor", "kind": "interfaceName" } ], "documentation": [] }, { - "name": "TypeError", + "name": "export", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "export", + "kind": "keyword" + } + ] + }, + { + "name": "extends", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "extends", + "kind": "keyword" + } + ] + }, + { + "name": "false", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "false", + "kind": "keyword" + } + ] + }, + { + "name": "finally", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "finally", + "kind": "keyword" + } + ] + }, + { + "name": "Float32Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -63777,7 +59855,7 @@ "kind": "space" }, { - "text": "TypeError", + "text": "Float32Array", "kind": "localName" }, { @@ -63793,7 +59871,7 @@ "kind": "space" }, { - "text": "TypeError", + "text": "Float32Array", "kind": "localName" }, { @@ -63805,14 +59883,19 @@ "kind": "space" }, { - "text": "TypeErrorConstructor", + "text": "Float32ArrayConstructor", "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "A typed array of 32-bit float values. The contents are initialized to 0. If the requested number\r\nof bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] }, { - "name": "URIError", + "name": "Float64Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -63826,7 +59909,7 @@ "kind": "space" }, { - "text": "URIError", + "text": "Float64Array", "kind": "localName" }, { @@ -63842,7 +59925,7 @@ "kind": "space" }, { - "text": "URIError", + "text": "Float64Array", "kind": "localName" }, { @@ -63854,14 +59937,43 @@ "kind": "space" }, { - "text": "URIErrorConstructor", + "text": "Float64ArrayConstructor", "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "A typed array of 64-bit float values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] }, { - "name": "JSON", + "name": "for", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "for", + "kind": "keyword" + } + ] + }, + { + "name": "function", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + } + ] + }, + { + "name": "Function", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -63875,7 +59987,7 @@ "kind": "space" }, { - "text": "JSON", + "text": "Function", "kind": "localName" }, { @@ -63891,7 +60003,7 @@ "kind": "space" }, { - "text": "JSON", + "text": "Function", "kind": "localName" }, { @@ -63903,25 +60015,25 @@ "kind": "space" }, { - "text": "JSON", - "kind": "localName" + "text": "FunctionConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "An intrinsic object that provides functions to convert JavaScript values to and from the JavaScript Object Notation (JSON) format.", + "text": "Creates a new function.", "kind": "text" } ] }, { - "name": "Array", - "kind": "var", - "kindModifiers": "declare", + "name": "globalThis", + "kind": "module", + "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "module", "kind": "keyword" }, { @@ -63929,25 +60041,66 @@ "kind": "space" }, { - "text": "Array", - "kind": "localName" - }, + "text": "globalThis", + "kind": "moduleName" + } + ], + "documentation": [] + }, + { + "name": "if", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "<", - "kind": "punctuation" - }, + "text": "if", + "kind": "keyword" + } + ] + }, + { + "name": "implements", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "T", - "kind": "typeParameterName" - }, + "text": "implements", + "kind": "keyword" + } + ] + }, + { + "name": "import", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": ">", - "kind": "punctuation" - }, + "text": "import", + "kind": "keyword" + } + ] + }, + { + "name": "in", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "\n", - "kind": "lineBreak" - }, + "text": "in", + "kind": "keyword" + } + ] + }, + { + "name": "Infinity", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { "text": "var", "kind": "keyword" @@ -63957,7 +60110,7 @@ "kind": "space" }, { - "text": "Array", + "text": "Infinity", "kind": "localName" }, { @@ -63969,14 +60122,26 @@ "kind": "space" }, { - "text": "ArrayConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], "documentation": [] }, { - "name": "ArrayBuffer", + "name": "instanceof", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "instanceof", + "kind": "keyword" + } + ] + }, + { + "name": "Int16Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -63990,7 +60155,7 @@ "kind": "space" }, { - "text": "ArrayBuffer", + "text": "Int16Array", "kind": "localName" }, { @@ -64006,7 +60171,7 @@ "kind": "space" }, { - "text": "ArrayBuffer", + "text": "Int16Array", "kind": "localName" }, { @@ -64018,19 +60183,19 @@ "kind": "space" }, { - "text": "ArrayBufferConstructor", + "text": "Int16ArrayConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "Represents a raw buffer of binary data, which is used to store data for the\r\ndifferent typed arrays. ArrayBuffers cannot be read from or written to directly,\r\nbut can be passed to a typed array or DataView Object to interpret the raw\r\nbuffer as needed.", + "text": "A typed array of 16-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", "kind": "text" } ] }, { - "name": "DataView", + "name": "Int32Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -64044,7 +60209,7 @@ "kind": "space" }, { - "text": "DataView", + "text": "Int32Array", "kind": "localName" }, { @@ -64060,7 +60225,7 @@ "kind": "space" }, { - "text": "DataView", + "text": "Int32Array", "kind": "localName" }, { @@ -64072,11 +60237,16 @@ "kind": "space" }, { - "text": "DataViewConstructor", + "text": "Int32ArrayConstructor", "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "A typed array of 32-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] }, { "name": "Int8Array", @@ -64133,29 +60303,25 @@ ] }, { - "name": "Uint8Array", - "kind": "var", - "kindModifiers": "declare", + "name": "interface", + "kind": "keyword", + "kindModifiers": "", "sortText": "15", "displayParts": [ { "text": "interface", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Uint8Array", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, + } + ] + }, + { + "name": "Intl", + "kind": "module", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { - "text": "var", + "text": "namespace", "kind": "keyword" }, { @@ -64163,37 +60329,20 @@ "kind": "space" }, { - "text": "Uint8Array", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Uint8ArrayConstructor", - "kind": "interfaceName" + "text": "Intl", + "kind": "moduleName" } ], - "documentation": [ - { - "text": "A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "Uint8ClampedArray", - "kind": "var", + "name": "isFinite", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -64201,24 +60350,32 @@ "kind": "space" }, { - "text": "Uint8ClampedArray", - "kind": "localName" + "text": "isFinite", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "number", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Uint8ClampedArray", - "kind": "localName" + "text": "number", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -64229,25 +60386,44 @@ "kind": "space" }, { - "text": "Uint8ClampedArrayConstructor", - "kind": "interfaceName" + "text": "boolean", + "kind": "keyword" } ], "documentation": [ { - "text": "A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0.\r\nIf the requested number of bytes could not be allocated an exception is raised.", + "text": "Determines whether a supplied number is finite.", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "number", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Any numeric value.", + "kind": "text" + } + ] + } ] }, { - "name": "Int16Array", - "kind": "var", + "name": "isNaN", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -64255,24 +60431,32 @@ "kind": "space" }, { - "text": "Int16Array", - "kind": "localName" + "text": "isNaN", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "number", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Int16Array", - "kind": "localName" + "text": "number", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -64283,19 +60467,38 @@ "kind": "space" }, { - "text": "Int16ArrayConstructor", - "kind": "interfaceName" + "text": "boolean", + "kind": "keyword" } ], "documentation": [ { - "text": "A typed array of 16-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "text": "Returns a Boolean value that indicates whether a value is the reserved value NaN (not a number).", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "number", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A numeric value.", + "kind": "text" + } + ] + } ] }, { - "name": "Uint16Array", + "name": "JSON", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -64309,7 +60512,7 @@ "kind": "space" }, { - "text": "Uint16Array", + "text": "JSON", "kind": "localName" }, { @@ -64325,7 +60528,7 @@ "kind": "space" }, { - "text": "Uint16Array", + "text": "JSON", "kind": "localName" }, { @@ -64337,19 +60540,31 @@ "kind": "space" }, { - "text": "Uint16ArrayConstructor", - "kind": "interfaceName" + "text": "JSON", + "kind": "localName" } ], "documentation": [ { - "text": "A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "text": "An intrinsic object that provides functions to convert JavaScript values to and from the JavaScript Object Notation (JSON) format.", "kind": "text" } ] }, { - "name": "Int32Array", + "name": "let", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "let", + "kind": "keyword" + } + ] + }, + { + "name": "Math", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -64363,7 +60578,7 @@ "kind": "space" }, { - "text": "Int32Array", + "text": "Math", "kind": "localName" }, { @@ -64379,7 +60594,7 @@ "kind": "space" }, { - "text": "Int32Array", + "text": "Math", "kind": "localName" }, { @@ -64391,39 +60606,23 @@ "kind": "space" }, { - "text": "Int32ArrayConstructor", - "kind": "interfaceName" + "text": "Math", + "kind": "localName" } ], "documentation": [ { - "text": "A typed array of 32-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "text": "An intrinsic object that provides basic mathematics functionality and constants.", "kind": "text" } ] }, { - "name": "Uint32Array", + "name": "NaN", "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Uint32Array", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, { "text": "var", "kind": "keyword" @@ -64433,7 +60632,7 @@ "kind": "space" }, { - "text": "Uint32Array", + "text": "NaN", "kind": "localName" }, { @@ -64445,19 +60644,38 @@ "kind": "space" }, { - "text": "Uint32ArrayConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "new", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" + "text": "new", + "kind": "keyword" } ] }, { - "name": "Float32Array", + "name": "null", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "null", + "kind": "keyword" + } + ] + }, + { + "name": "Number", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -64471,7 +60689,7 @@ "kind": "space" }, { - "text": "Float32Array", + "text": "Number", "kind": "localName" }, { @@ -64487,7 +60705,7 @@ "kind": "space" }, { - "text": "Float32Array", + "text": "Number", "kind": "localName" }, { @@ -64499,19 +60717,19 @@ "kind": "space" }, { - "text": "Float32ArrayConstructor", + "text": "NumberConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "A typed array of 32-bit float values. The contents are initialized to 0. If the requested number\r\nof bytes could not be allocated an exception is raised.", + "text": "An object that represents a number of any kind. All JavaScript numbers are 64-bit floating-point numbers.", "kind": "text" } ] }, { - "name": "Float64Array", + "name": "Object", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -64525,7 +60743,7 @@ "kind": "space" }, { - "text": "Float64Array", + "text": "Object", "kind": "localName" }, { @@ -64541,7 +60759,7 @@ "kind": "space" }, { - "text": "Float64Array", + "text": "Object", "kind": "localName" }, { @@ -64553,46 +60771,37 @@ "kind": "space" }, { - "text": "Float64ArrayConstructor", + "text": "ObjectConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "A typed array of 64-bit float values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", + "text": "Provides functionality common to all JavaScript objects.", "kind": "text" } ] }, { - "name": "Intl", - "kind": "module", - "kindModifiers": "declare", + "name": "package", + "kind": "keyword", + "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "namespace", + "text": "package", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Intl", - "kind": "moduleName" } - ], - "documentation": [] + ] }, { - "name": "c1", - "kind": "class", - "kindModifiers": "", - "sortText": "11", + "name": "parseFloat", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "class", + "text": "function", "kind": "keyword" }, { @@ -64600,34 +60809,16 @@ "kind": "space" }, { - "text": "c1", - "kind": "className" - } - ], - "documentation": [ - { - "text": "This is comment for c1", - "kind": "text" - } - ] - }, - { - "name": "i1", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "var", - "kind": "keyword" + "text": "parseFloat", + "kind": "functionName" }, { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "i1", - "kind": "localName" + "text": "string", + "kind": "parameterName" }, { "text": ":", @@ -64638,29 +60829,12 @@ "kind": "space" }, { - "text": "c1", - "kind": "className" - } - ], - "documentation": [] - }, - { - "name": "i1_p", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "var", + "text": "string", "kind": "keyword" }, { - "text": " ", - "kind": "space" - }, - { - "text": "i1_p", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -64675,16 +60849,40 @@ "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Converts a string to a floating-point number.", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string that contains a floating-point number.", + "kind": "text" + } + ] + } + ] }, { - "name": "i1_f", - "kind": "var", - "kindModifiers": "", - "sortText": "11", + "name": "parseInt", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "function", "kind": "keyword" }, { @@ -64692,23 +60890,15 @@ "kind": "space" }, { - "text": "i1_f", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "parseInt", + "kind": "functionName" }, { "text": "(", "kind": "punctuation" }, { - "text": "b", + "text": "string", "kind": "parameterName" }, { @@ -64720,11 +60910,11 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" }, { - "text": ")", + "text": ",", "kind": "punctuation" }, { @@ -64732,7 +60922,15 @@ "kind": "space" }, { - "text": "=>", + "text": "radix", + "kind": "parameterName" + }, + { + "text": "?", + "kind": "punctuation" + }, + { + "text": ":", "kind": "punctuation" }, { @@ -64742,27 +60940,10 @@ { "text": "number", "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_r", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" }, { - "text": "i1_r", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -64777,16 +60958,57 @@ "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Converts a string to an integer.", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string to convert into a number.", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "radix", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value between 2 and 36 that specifies the base of the number in `string`.\r\nIf this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal.\r\nAll other strings are considered decimal.", + "kind": "text" + } + ] + } + ] }, { - "name": "i1_prop", + "name": "RangeError", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -64794,30 +61016,13 @@ "kind": "space" }, { - "text": "i1_prop", + "text": "RangeError", "kind": "localName" }, { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_nc_p", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ { "text": "var", "kind": "keyword" @@ -64827,7 +61032,7 @@ "kind": "space" }, { - "text": "i1_nc_p", + "text": "RangeError", "kind": "localName" }, { @@ -64839,20 +61044,20 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "RangeErrorConstructor", + "kind": "interfaceName" } ], "documentation": [] }, { - "name": "i1_ncf", + "name": "ReferenceError", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -64860,24 +61065,24 @@ "kind": "space" }, { - "text": "i1_ncf", + "text": "ReferenceError", "kind": "localName" }, { - "text": ":", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": " ", - "kind": "space" + "text": "var", + "kind": "keyword" }, { - "text": "(", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": "b", - "kind": "parameterName" + "text": "ReferenceError", + "kind": "localName" }, { "text": ":", @@ -64888,38 +61093,34 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" - }, + "text": "ReferenceErrorConstructor", + "kind": "interfaceName" + } + ], + "documentation": [] + }, + { + "name": "RegExp", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { - "text": ")", - "kind": "punctuation" + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "=>", - "kind": "punctuation" + "text": "RegExp", + "kind": "localName" }, { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_ncr", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ { "text": "var", "kind": "keyword" @@ -64929,7 +61130,7 @@ "kind": "space" }, { - "text": "i1_ncr", + "text": "RegExp", "kind": "localName" }, { @@ -64941,20 +61142,32 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "RegExpConstructor", + "kind": "interfaceName" } ], "documentation": [] }, { - "name": "i1_ncprop", - "kind": "var", + "name": "return", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "return", + "kind": "keyword" + } + ] + }, + { + "name": "String", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", "kind": "keyword" }, { @@ -64962,30 +61175,13 @@ "kind": "space" }, { - "text": "i1_ncprop", + "text": "String", "kind": "localName" }, { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_s_p", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ { "text": "var", "kind": "keyword" @@ -64995,7 +61191,7 @@ "kind": "space" }, { - "text": "i1_s_p", + "text": "String", "kind": "localName" }, { @@ -65007,68 +61203,77 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "StringConstructor", + "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "Allows manipulation and formatting of text strings and determination and location of substrings within strings.", + "kind": "text" + } + ] }, { - "name": "i1_s_f", - "kind": "var", + "name": "super", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "super", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, + } + ] + }, + { + "name": "switch", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "i1_s_f", - "kind": "localName" - }, + "text": "switch", + "kind": "keyword" + } + ] + }, + { + "name": "SyntaxError", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { - "text": ":", - "kind": "punctuation" + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "(", - "kind": "punctuation" + "text": "SyntaxError", + "kind": "localName" }, { - "text": "b", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "SyntaxError", + "kind": "localName" }, { - "text": "=>", + "text": ":", "kind": "punctuation" }, { @@ -65076,53 +61281,68 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "SyntaxErrorConstructor", + "kind": "interfaceName" } ], "documentation": [] }, { - "name": "i1_s_r", - "kind": "var", + "name": "this", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "this", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "i1_s_r", - "kind": "localName" - }, + } + ] + }, + { + "name": "throw", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": ":", - "kind": "punctuation" - }, + "text": "throw", + "kind": "keyword" + } + ] + }, + { + "name": "true", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": " ", - "kind": "space" - }, + "text": "true", + "kind": "keyword" + } + ] + }, + { + "name": "try", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "number", + "text": "try", "kind": "keyword" } - ], - "documentation": [] + ] }, { - "name": "i1_s_prop", + "name": "TypeError", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -65130,30 +61350,13 @@ "kind": "space" }, { - "text": "i1_s_prop", + "text": "TypeError", "kind": "localName" }, { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_s_nc_p", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ { "text": "var", "kind": "keyword" @@ -65163,7 +61366,7 @@ "kind": "space" }, { - "text": "i1_s_nc_p", + "text": "TypeError", "kind": "localName" }, { @@ -65175,18 +61378,46 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "TypeErrorConstructor", + "kind": "interfaceName" } ], "documentation": [] }, { - "name": "i1_s_ncf", - "kind": "var", + "name": "typeof", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", + "displayParts": [ + { + "text": "typeof", + "kind": "keyword" + } + ] + }, + { + "name": "Uint16Array", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint16Array", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, { "text": "var", "kind": "keyword" @@ -65196,7 +61427,7 @@ "kind": "space" }, { - "text": "i1_s_ncf", + "text": "Uint16Array", "kind": "localName" }, { @@ -65208,35 +61439,53 @@ "kind": "space" }, { - "text": "(", - "kind": "punctuation" - }, + "text": "Uint16ArrayConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ { - "text": "b", - "kind": "parameterName" - }, + "text": "A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] + }, + { + "name": "Uint32Array", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { - "text": ":", - "kind": "punctuation" + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "Uint32Array", + "kind": "localName" }, { - "text": ")", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "=>", + "text": "Uint32Array", + "kind": "localName" + }, + { + "text": ":", "kind": "punctuation" }, { @@ -65244,20 +61493,25 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "Uint32ArrayConstructor", + "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] }, { - "name": "i1_s_ncr", + "name": "Uint8Array", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -65265,30 +61519,13 @@ "kind": "space" }, { - "text": "i1_s_ncr", + "text": "Uint8Array", "kind": "localName" }, { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_s_ncprop", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ { "text": "var", "kind": "keyword" @@ -65298,7 +61535,7 @@ "kind": "space" }, { - "text": "i1_s_ncprop", + "text": "Uint8Array", "kind": "localName" }, { @@ -65310,20 +61547,25 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "Uint8ArrayConstructor", + "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] }, { - "name": "i1_c", + "name": "Uint8ClampedArray", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -65331,40 +61573,53 @@ "kind": "space" }, { - "text": "i1_c", + "text": "Uint8ClampedArray", "kind": "localName" }, { - "text": ":", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "typeof", - "kind": "keyword" + "text": "Uint8ClampedArray", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "c1", - "kind": "className" + "text": "Uint8ClampedArrayConstructor", + "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0.\r\nIf the requested number of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] }, { - "name": "cProperties", - "kind": "class", + "name": "undefined", + "kind": "var", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "class", + "text": "var", "kind": "keyword" }, { @@ -65372,20 +61627,20 @@ "kind": "space" }, { - "text": "cProperties", - "kind": "className" + "text": "undefined", + "kind": "propertyName" } ], "documentation": [] }, { - "name": "cProperties_i", + "name": "URIError", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -65393,32 +61648,15 @@ "kind": "space" }, { - "text": "cProperties_i", + "text": "URIError", "kind": "localName" }, { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, { - "text": "cProperties", - "kind": "className" - } - ], - "documentation": [] - }, - { - "name": "cWithConstructorProperty", - "kind": "class", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "class", + "text": "var", "kind": "keyword" }, { @@ -65426,601 +61664,966 @@ "kind": "space" }, { - "text": "cWithConstructorProperty", - "kind": "className" - } - ], - "documentation": [] - }, - { - "name": "undefined", - "kind": "var", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "URIError", + "kind": "localName" + }, { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "undefined", - "kind": "propertyName" + "text": "URIErrorConstructor", + "kind": "interfaceName" } ], "documentation": [] }, { - "name": "break", + "name": "var", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "break", + "text": "var", "kind": "keyword" } ] }, { - "name": "case", + "name": "void", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "case", + "text": "void", "kind": "keyword" } ] }, { - "name": "catch", + "name": "while", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "catch", + "text": "while", "kind": "keyword" } ] }, { - "name": "class", + "name": "with", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "class", + "text": "with", "kind": "keyword" } ] }, { - "name": "const", + "name": "yield", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "const", + "text": "yield", "kind": "keyword" } ] }, { - "name": "continue", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", + "name": "escape", + "kind": "function", + "kindModifiers": "deprecated,declare", + "sortText": "z15", "displayParts": [ { - "text": "continue", + "text": "function", "kind": "keyword" - } - ] - }, - { - "name": "debugger", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "debugger", + "text": " ", + "kind": "space" + }, + { + "text": "escape", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "string", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", "kind": "keyword" - } - ] - }, - { - "name": "default", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "default", + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", "kind": "keyword" } - ] - }, - { - "name": "delete", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "delete", - "kind": "keyword" + "text": "Computes a new string in which certain characters have been replaced by a hexadecimal escape sequence.", + "kind": "text" } - ] - }, - { - "name": "do", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "tags": [ { - "text": "do", - "kind": "keyword" + "name": "deprecated", + "text": [ + { + "text": "A legacy feature for browser compatibility", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string value", + "kind": "text" + } + ] } ] }, { - "name": "else", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", + "name": "unescape", + "kind": "function", + "kindModifiers": "deprecated,declare", + "sortText": "z15", "displayParts": [ { - "text": "else", + "text": "function", "kind": "keyword" - } - ] - }, - { - "name": "enum", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "enum", + "text": " ", + "kind": "space" + }, + { + "text": "unescape", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "string", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", "kind": "keyword" - } - ] - }, - { - "name": "export", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "export", + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", "kind": "keyword" } - ] - }, - { - "name": "extends", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "extends", - "kind": "keyword" + "text": "Computes a new string in which hexadecimal escape sequences are replaced with the character that it represents.", + "kind": "text" + } + ], + "tags": [ + { + "name": "deprecated", + "text": [ + { + "text": "A legacy feature for browser compatibility", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string value", + "kind": "text" + } + ] } ] - }, + } + ] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/completionsCommentsClassMembers.ts", + "position": 1471, + "name": "49" + }, + "completionList": { + "isGlobalCompletion": false, + "isMemberCompletion": false, + "isNewIdentifierLocation": true, + "optionalReplacementSpan": { + "start": 1471, + "length": 5 + }, + "entries": [ { - "name": "false", - "kind": "keyword", + "name": "arguments", + "kind": "local var", "kindModifiers": "", - "sortText": "15", + "sortText": "11", "displayParts": [ { - "text": "false", - "kind": "keyword" + "text": "(", + "kind": "punctuation" + }, + { + "text": "local var", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "arguments", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "IArguments", + "kind": "interfaceName" } - ] + ], + "documentation": [] }, { - "name": "finally", - "kind": "keyword", + "name": "c1", + "kind": "class", "kindModifiers": "", - "sortText": "15", + "sortText": "11", "displayParts": [ { - "text": "finally", + "text": "class", "kind": "keyword" - } - ] - }, - { - "name": "for", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "for", - "kind": "keyword" + "text": " ", + "kind": "space" + }, + { + "text": "c1", + "kind": "className" } - ] - }, - { - "name": "function", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "function", - "kind": "keyword" + "text": "This is comment for c1", + "kind": "text" } ] }, { - "name": "if", - "kind": "keyword", + "name": "cProperties", + "kind": "class", "kindModifiers": "", - "sortText": "15", + "sortText": "11", "displayParts": [ { - "text": "if", + "text": "class", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "cProperties", + "kind": "className" } - ] + ], + "documentation": [] }, { - "name": "import", - "kind": "keyword", + "name": "cProperties_i", + "kind": "var", "kindModifiers": "", - "sortText": "15", + "sortText": "11", "displayParts": [ { - "text": "import", + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "cProperties_i", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "cProperties", + "kind": "className" } - ] + ], + "documentation": [] }, { - "name": "in", - "kind": "keyword", + "name": "cWithConstructorProperty", + "kind": "class", "kindModifiers": "", - "sortText": "15", + "sortText": "11", "displayParts": [ { - "text": "in", + "text": "class", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "cWithConstructorProperty", + "kind": "className" } - ] + ], + "documentation": [] }, { - "name": "instanceof", - "kind": "keyword", + "name": "i1", + "kind": "var", "kindModifiers": "", - "sortText": "15", + "sortText": "11", "displayParts": [ { - "text": "instanceof", + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "i1", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "c1", + "kind": "className" } - ] + ], + "documentation": [] }, { - "name": "new", - "kind": "keyword", + "name": "i1_c", + "kind": "var", "kindModifiers": "", - "sortText": "15", + "sortText": "11", "displayParts": [ { - "text": "new", + "text": "var", "kind": "keyword" - } - ] - }, - { - "name": "null", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "null", + "text": " ", + "kind": "space" + }, + { + "text": "i1_c", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "typeof", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "c1", + "kind": "className" } - ] + ], + "documentation": [] }, { - "name": "return", - "kind": "keyword", + "name": "i1_f", + "kind": "var", "kindModifiers": "", - "sortText": "15", + "sortText": "11", "displayParts": [ { - "text": "return", + "text": "var", "kind": "keyword" - } - ] - }, - { - "name": "super", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "super", + "text": " ", + "kind": "space" + }, + { + "text": "i1_f", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "b", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" - } - ] - }, - { - "name": "switch", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "switch", + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" } - ] + ], + "documentation": [] }, { - "name": "this", - "kind": "keyword", + "name": "i1_nc_p", + "kind": "var", "kindModifiers": "", - "sortText": "15", + "sortText": "11", "displayParts": [ { - "text": "this", + "text": "var", "kind": "keyword" - } - ] - }, - { - "name": "throw", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "throw", + "text": " ", + "kind": "space" + }, + { + "text": "i1_nc_p", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" } - ] + ], + "documentation": [] }, { - "name": "true", - "kind": "keyword", + "name": "i1_ncf", + "kind": "var", "kindModifiers": "", - "sortText": "15", + "sortText": "11", "displayParts": [ { - "text": "true", + "text": "var", "kind": "keyword" - } - ] - }, - { - "name": "try", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "try", + "text": " ", + "kind": "space" + }, + { + "text": "i1_ncf", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "b", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" - } - ] - }, - { - "name": "typeof", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "typeof", + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" } - ] + ], + "documentation": [] }, { - "name": "var", - "kind": "keyword", + "name": "i1_ncprop", + "kind": "var", "kindModifiers": "", - "sortText": "15", + "sortText": "11", "displayParts": [ { "text": "var", "kind": "keyword" - } - ] - }, - { - "name": "void", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "void", + "text": " ", + "kind": "space" + }, + { + "text": "i1_ncprop", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" } - ] + ], + "documentation": [] }, { - "name": "while", - "kind": "keyword", + "name": "i1_ncr", + "kind": "var", "kindModifiers": "", - "sortText": "15", + "sortText": "11", "displayParts": [ { - "text": "while", + "text": "var", "kind": "keyword" - } - ] - }, - { - "name": "with", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "with", + "text": " ", + "kind": "space" + }, + { + "text": "i1_ncr", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" } - ] + ], + "documentation": [] }, { - "name": "implements", - "kind": "keyword", + "name": "i1_p", + "kind": "var", "kindModifiers": "", - "sortText": "15", + "sortText": "11", "displayParts": [ { - "text": "implements", + "text": "var", "kind": "keyword" - } - ] - }, - { - "name": "interface", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "interface", + "text": " ", + "kind": "space" + }, + { + "text": "i1_p", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" } - ] + ], + "documentation": [] }, { - "name": "let", - "kind": "keyword", + "name": "i1_prop", + "kind": "var", "kindModifiers": "", - "sortText": "15", + "sortText": "11", "displayParts": [ { - "text": "let", + "text": "var", "kind": "keyword" - } - ] - }, - { - "name": "package", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "package", + "text": " ", + "kind": "space" + }, + { + "text": "i1_prop", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" } - ] + ], + "documentation": [] }, { - "name": "yield", - "kind": "keyword", + "name": "i1_r", + "kind": "var", "kindModifiers": "", - "sortText": "15", + "sortText": "11", "displayParts": [ { - "text": "yield", + "text": "var", "kind": "keyword" - } - ] - }, - { - "name": "as", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "as", + "text": " ", + "kind": "space" + }, + { + "text": "i1_r", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" } - ] + ], + "documentation": [] }, { - "name": "async", - "kind": "keyword", + "name": "i1_s_f", + "kind": "var", "kindModifiers": "", - "sortText": "15", + "sortText": "11", "displayParts": [ { - "text": "async", + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "i1_s_f", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "b", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" } - ] + ], + "documentation": [] }, { - "name": "await", - "kind": "keyword", + "name": "i1_s_nc_p", + "kind": "var", "kindModifiers": "", - "sortText": "15", + "sortText": "11", "displayParts": [ { - "text": "await", + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "i1_s_nc_p", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" } - ] - } - ] - } - }, - { - "marker": { - "fileName": "/tests/cases/fourslash/completionsCommentsClassMembers.ts", - "position": 1574, - "name": "52" - }, - "completionList": { - "isGlobalCompletion": false, - "isMemberCompletion": false, - "isNewIdentifierLocation": false, - "optionalReplacementSpan": { - "start": 1574, - "length": 1 - }, - "entries": [ + ], + "documentation": [] + }, { - "name": "b", - "kind": "parameter", + "name": "i1_s_ncf", + "kind": "var", "kindModifiers": "", "sortText": "11", "displayParts": [ { - "text": "(", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { - "text": "parameter", - "kind": "text" + "text": " ", + "kind": "space" }, { - "text": ")", + "text": "i1_s_ncf", + "kind": "localName" + }, + { + "text": ":", "kind": "punctuation" }, { "text": " ", "kind": "space" }, + { + "text": "(", + "kind": "punctuation" + }, { "text": "b", "kind": "parameterName" @@ -66033,6 +62636,26 @@ "text": " ", "kind": "space" }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, { "text": "number", "kind": "keyword" @@ -66041,21 +62664,25 @@ "documentation": [] }, { - "name": "arguments", - "kind": "local var", + "name": "i1_s_ncprop", + "kind": "var", "kindModifiers": "", "sortText": "11", "displayParts": [ { - "text": "(", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { - "text": "local var", - "kind": "text" + "text": " ", + "kind": "space" }, { - "text": ")", + "text": "i1_s_ncprop", + "kind": "localName" + }, + { + "text": ":", "kind": "punctuation" }, { @@ -66063,8 +62690,29 @@ "kind": "space" }, { - "text": "arguments", - "kind": "propertyName" + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "i1_s_ncr", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "i1_s_ncr", + "kind": "localName" }, { "text": ":", @@ -66075,20 +62723,20 @@ "kind": "space" }, { - "text": "IArguments", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], "documentation": [] }, { - "name": "globalThis", - "kind": "module", + "name": "i1_s_p", + "kind": "var", "kindModifiers": "", - "sortText": "15", + "sortText": "11", "displayParts": [ { - "text": "module", + "text": "var", "kind": "keyword" }, { @@ -66096,20 +62744,32 @@ "kind": "space" }, { - "text": "globalThis", - "kind": "moduleName" + "text": "i1_s_p", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" } ], "documentation": [] }, { - "name": "eval", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "name": "i1_s_prop", + "kind": "var", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "function", + "text": "var", "kind": "keyword" }, { @@ -66117,16 +62777,41 @@ "kind": "space" }, { - "text": "eval", - "kind": "functionName" + "text": "i1_s_prop", + "kind": "localName" }, { - "text": "(", + "text": ":", "kind": "punctuation" }, { - "text": "x", - "kind": "parameterName" + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "i1_s_r", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "i1_s_r", + "kind": "localName" }, { "text": ":", @@ -66137,13 +62822,38 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "value", + "kind": "parameter", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "parameter", + "kind": "text" }, { "text": ")", "kind": "punctuation" }, + { + "text": " ", + "kind": "space" + }, + { + "text": "value", + "kind": "parameterName" + }, { "text": ":", "kind": "punctuation" @@ -66153,44 +62863,20 @@ "kind": "space" }, { - "text": "any", + "text": "number", "kind": "keyword" } ], - "documentation": [ - { - "text": "Evaluates JavaScript code and executes it.", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "x", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A String value that contains valid JavaScript code.", - "kind": "text" - } - ] - } - ] + "documentation": [] }, { - "name": "parseInt", - "kind": "function", + "name": "Array", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -66198,31 +62884,39 @@ "kind": "space" }, { - "text": "parseInt", - "kind": "functionName" + "text": "Array", + "kind": "localName" }, { - "text": "(", + "text": "<", "kind": "punctuation" }, { - "text": "string", - "kind": "parameterName" + "text": "T", + "kind": "typeParameterName" }, { - "text": ":", + "text": ">", "kind": "punctuation" }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", + "kind": "keyword" + }, { "text": " ", "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "Array", + "kind": "localName" }, { - "text": ",", + "text": ":", "kind": "punctuation" }, { @@ -66230,28 +62924,45 @@ "kind": "space" }, { - "text": "radix", - "kind": "parameterName" + "text": "ArrayConstructor", + "kind": "interfaceName" + } + ], + "documentation": [] + }, + { + "name": "ArrayBuffer", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" }, { - "text": "?", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": ":", - "kind": "punctuation" + "text": "ArrayBuffer", + "kind": "localName" }, { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, { - "text": "number", + "text": "var", "kind": "keyword" }, { - "text": ")", - "kind": "punctuation" + "text": " ", + "kind": "space" + }, + { + "text": "ArrayBuffer", + "kind": "localName" }, { "text": ":", @@ -66262,61 +62973,61 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "ArrayBufferConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "Converts a string to an integer.", - "kind": "text" + "text": "Represents a raw buffer of binary data, which is used to store data for the\r\ndifferent typed arrays. ArrayBuffers cannot be read from or written to directly,\r\nbut can be passed to a typed array or DataView Object to interpret the raw\r\nbuffer as needed.", + "kind": "text" + } + ] + }, + { + "name": "as", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "as", + "kind": "keyword" + } + ] + }, + { + "name": "async", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "async", + "kind": "keyword" } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string to convert into a number.", - "kind": "text" - } - ] - }, + ] + }, + { + "name": "await", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "radix", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value between 2 and 36 that specifies the base of the number in `string`.\r\nIf this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal.\r\nAll other strings are considered decimal.", - "kind": "text" - } - ] + "text": "await", + "kind": "keyword" } ] }, { - "name": "parseFloat", - "kind": "function", + "name": "Boolean", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -66324,32 +63035,24 @@ "kind": "space" }, { - "text": "parseFloat", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" + "text": "Boolean", + "kind": "localName" }, { - "text": "string", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "Boolean", + "kind": "localName" }, { "text": ":", @@ -66360,44 +63063,92 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "BooleanConstructor", + "kind": "interfaceName" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "break", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "Converts a string to a floating-point number.", - "kind": "text" + "text": "break", + "kind": "keyword" } - ], - "tags": [ + ] + }, + { + "name": "case", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string that contains a floating-point number.", - "kind": "text" - } - ] + "text": "case", + "kind": "keyword" } ] }, { - "name": "isNaN", - "kind": "function", + "name": "catch", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "catch", + "kind": "keyword" + } + ] + }, + { + "name": "class", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + } + ] + }, + { + "name": "const", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + } + ] + }, + { + "name": "continue", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "continue", + "kind": "keyword" + } + ] + }, + { + "name": "DataView", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -66405,32 +63156,24 @@ "kind": "space" }, { - "text": "isNaN", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" + "text": "DataView", + "kind": "localName" }, { - "text": "number", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "DataView", + "kind": "localName" }, { "text": ":", @@ -66441,44 +63184,20 @@ "kind": "space" }, { - "text": "boolean", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Returns a Boolean value that indicates whether a value is the reserved value NaN (not a number).", - "kind": "text" + "text": "DataViewConstructor", + "kind": "interfaceName" } ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "number", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A numeric value.", - "kind": "text" - } - ] - } - ] + "documentation": [] }, { - "name": "isFinite", - "kind": "function", + "name": "Date", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -66486,32 +63205,24 @@ "kind": "space" }, { - "text": "isFinite", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" + "text": "Date", + "kind": "localName" }, { - "text": "number", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "Date", + "kind": "localName" }, { "text": ":", @@ -66522,33 +63233,26 @@ "kind": "space" }, { - "text": "boolean", - "kind": "keyword" + "text": "DateConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "Determines whether a supplied number is finite.", + "text": "Enables basic storage and retrieval of dates and times.", "kind": "text" } - ], - "tags": [ + ] + }, + { + "name": "debugger", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "number", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Any numeric value.", - "kind": "text" - } - ] + "text": "debugger", + "kind": "keyword" } ] }, @@ -66714,6 +63418,54 @@ } ] }, + { + "name": "default", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "default", + "kind": "keyword" + } + ] + }, + { + "name": "delete", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "delete", + "kind": "keyword" + } + ] + }, + { + "name": "do", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "do", + "kind": "keyword" + } + ] + }, + { + "name": "else", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "else", + "kind": "keyword" + } + ] + }, { "name": "encodeURI", "kind": "function", @@ -66850,182 +63602,11 @@ "kind": "keyword" }, { - "text": " ", - "kind": "space" - }, - { - "text": "|", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "boolean", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Encodes a text string as a valid component of a Uniform Resource Identifier (URI).", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "uriComponent", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI component.", - "kind": "text" - } - ] - } - ] - }, - { - "name": "escape", - "kind": "function", - "kindModifiers": "deprecated,declare", - "sortText": "23", - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "escape", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "string", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Computes a new string in which certain characters have been replaced by a hexadecimal escape sequence.", - "kind": "text" - } - ], - "tags": [ - { - "name": "deprecated", - "text": [ - { - "text": "A legacy feature for browser compatibility", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string value", - "kind": "text" - } - ] - } - ] - }, - { - "name": "unescape", - "kind": "function", - "kindModifiers": "deprecated,declare", - "sortText": "23", - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "unescape", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "string", - "kind": "parameterName" + "text": " ", + "kind": "space" }, { - "text": ":", + "text": "|", "kind": "punctuation" }, { @@ -67033,7 +63614,7 @@ "kind": "space" }, { - "text": "string", + "text": "boolean", "kind": "keyword" }, { @@ -67055,25 +63636,16 @@ ], "documentation": [ { - "text": "Computes a new string in which hexadecimal escape sequences are replaced with the character that it represents.", + "text": "Encodes a text string as a valid component of a Uniform Resource Identifier (URI).", "kind": "text" } ], "tags": [ - { - "name": "deprecated", - "text": [ - { - "text": "A legacy feature for browser compatibility", - "kind": "text" - } - ] - }, { "name": "param", "text": [ { - "text": "string", + "text": "uriComponent", "kind": "parameterName" }, { @@ -67081,7 +63653,7 @@ "kind": "space" }, { - "text": "A string value", + "text": "A value representing an encoded URI component.", "kind": "text" } ] @@ -67089,13 +63661,25 @@ ] }, { - "name": "NaN", + "name": "enum", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "enum", + "kind": "keyword" + } + ] + }, + { + "name": "Error", "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -67103,30 +63687,13 @@ "kind": "space" }, { - "text": "NaN", + "text": "Error", "kind": "localName" }, { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "Infinity", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ { "text": "var", "kind": "keyword" @@ -67136,7 +63703,7 @@ "kind": "space" }, { - "text": "Infinity", + "text": "Error", "kind": "localName" }, { @@ -67148,20 +63715,20 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "ErrorConstructor", + "kind": "interfaceName" } ], "documentation": [] }, { - "name": "Object", - "kind": "var", + "name": "eval", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -67169,24 +63736,32 @@ "kind": "space" }, { - "text": "Object", - "kind": "localName" + "text": "eval", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "x", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Object", - "kind": "localName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -67197,19 +63772,38 @@ "kind": "space" }, { - "text": "ObjectConstructor", - "kind": "interfaceName" + "text": "any", + "kind": "keyword" } ], "documentation": [ { - "text": "Provides functionality common to all JavaScript objects.", + "text": "Evaluates JavaScript code and executes it.", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "x", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A String value that contains valid JavaScript code.", + "kind": "text" + } + ] + } ] }, { - "name": "Function", + "name": "EvalError", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -67223,7 +63817,7 @@ "kind": "space" }, { - "text": "Function", + "text": "EvalError", "kind": "localName" }, { @@ -67239,7 +63833,7 @@ "kind": "space" }, { - "text": "Function", + "text": "EvalError", "kind": "localName" }, { @@ -67251,19 +63845,62 @@ "kind": "space" }, { - "text": "FunctionConstructor", + "text": "EvalErrorConstructor", "kind": "interfaceName" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "export", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "Creates a new function.", - "kind": "text" + "text": "export", + "kind": "keyword" } ] }, { - "name": "String", + "name": "extends", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "extends", + "kind": "keyword" + } + ] + }, + { + "name": "false", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "false", + "kind": "keyword" + } + ] + }, + { + "name": "finally", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "finally", + "kind": "keyword" + } + ] + }, + { + "name": "Float32Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -67277,7 +63914,7 @@ "kind": "space" }, { - "text": "String", + "text": "Float32Array", "kind": "localName" }, { @@ -67293,7 +63930,7 @@ "kind": "space" }, { - "text": "String", + "text": "Float32Array", "kind": "localName" }, { @@ -67305,19 +63942,19 @@ "kind": "space" }, { - "text": "StringConstructor", + "text": "Float32ArrayConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "Allows manipulation and formatting of text strings and determination and location of substrings within strings.", + "text": "A typed array of 32-bit float values. The contents are initialized to 0. If the requested number\r\nof bytes could not be allocated an exception is raised.", "kind": "text" } ] }, { - "name": "Boolean", + "name": "Float64Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -67331,7 +63968,7 @@ "kind": "space" }, { - "text": "Boolean", + "text": "Float64Array", "kind": "localName" }, { @@ -67347,7 +63984,7 @@ "kind": "space" }, { - "text": "Boolean", + "text": "Float64Array", "kind": "localName" }, { @@ -67359,14 +63996,43 @@ "kind": "space" }, { - "text": "BooleanConstructor", + "text": "Float64ArrayConstructor", "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "A typed array of 64-bit float values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] }, { - "name": "Number", + "name": "for", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "for", + "kind": "keyword" + } + ] + }, + { + "name": "function", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + } + ] + }, + { + "name": "Function", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -67380,7 +64046,7 @@ "kind": "space" }, { - "text": "Number", + "text": "Function", "kind": "localName" }, { @@ -67396,7 +64062,7 @@ "kind": "space" }, { - "text": "Number", + "text": "Function", "kind": "localName" }, { @@ -67408,25 +64074,25 @@ "kind": "space" }, { - "text": "NumberConstructor", + "text": "FunctionConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "An object that represents a number of any kind. All JavaScript numbers are 64-bit floating-point numbers.", + "text": "Creates a new function.", "kind": "text" } ] }, { - "name": "Math", - "kind": "var", - "kindModifiers": "declare", + "name": "globalThis", + "kind": "module", + "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "module", "kind": "keyword" }, { @@ -67434,67 +64100,66 @@ "kind": "space" }, { - "text": "Math", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, + "text": "globalThis", + "kind": "moduleName" + } + ], + "documentation": [] + }, + { + "name": "if", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "var", + "text": "if", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Math", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, + } + ] + }, + { + "name": "implements", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": " ", - "kind": "space" - }, + "text": "implements", + "kind": "keyword" + } + ] + }, + { + "name": "import", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "Math", - "kind": "localName" + "text": "import", + "kind": "keyword" } - ], - "documentation": [ + ] + }, + { + "name": "in", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "An intrinsic object that provides basic mathematics functionality and constants.", - "kind": "text" + "text": "in", + "kind": "keyword" } ] }, { - "name": "Date", + "name": "Infinity", "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Date", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, { "text": "var", "kind": "keyword" @@ -67504,7 +64169,7 @@ "kind": "space" }, { - "text": "Date", + "text": "Infinity", "kind": "localName" }, { @@ -67516,19 +64181,26 @@ "kind": "space" }, { - "text": "DateConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "instanceof", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "Enables basic storage and retrieval of dates and times.", - "kind": "text" + "text": "instanceof", + "kind": "keyword" } ] }, { - "name": "RegExp", + "name": "Int16Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -67542,7 +64214,7 @@ "kind": "space" }, { - "text": "RegExp", + "text": "Int16Array", "kind": "localName" }, { @@ -67558,7 +64230,7 @@ "kind": "space" }, { - "text": "RegExp", + "text": "Int16Array", "kind": "localName" }, { @@ -67570,14 +64242,19 @@ "kind": "space" }, { - "text": "RegExpConstructor", + "text": "Int16ArrayConstructor", "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "A typed array of 16-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] }, { - "name": "Error", + "name": "Int32Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -67591,7 +64268,7 @@ "kind": "space" }, { - "text": "Error", + "text": "Int32Array", "kind": "localName" }, { @@ -67607,7 +64284,7 @@ "kind": "space" }, { - "text": "Error", + "text": "Int32Array", "kind": "localName" }, { @@ -67619,14 +64296,19 @@ "kind": "space" }, { - "text": "ErrorConstructor", + "text": "Int32ArrayConstructor", "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "A typed array of 32-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] }, { - "name": "EvalError", + "name": "Int8Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -67640,7 +64322,7 @@ "kind": "space" }, { - "text": "EvalError", + "text": "Int8Array", "kind": "localName" }, { @@ -67656,7 +64338,7 @@ "kind": "space" }, { - "text": "EvalError", + "text": "Int8Array", "kind": "localName" }, { @@ -67668,36 +64350,37 @@ "kind": "space" }, { - "text": "EvalErrorConstructor", + "text": "Int8ArrayConstructor", "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "A typed array of 8-bit integer values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] }, { - "name": "RangeError", - "kind": "var", - "kindModifiers": "declare", + "name": "interface", + "kind": "keyword", + "kindModifiers": "", "sortText": "15", "displayParts": [ { "text": "interface", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "RangeError", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, + } + ] + }, + { + "name": "Intl", + "kind": "module", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { - "text": "var", + "text": "namespace", "kind": "keyword" }, { @@ -67705,32 +64388,20 @@ "kind": "space" }, { - "text": "RangeError", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "RangeErrorConstructor", - "kind": "interfaceName" + "text": "Intl", + "kind": "moduleName" } ], "documentation": [] }, { - "name": "ReferenceError", - "kind": "var", + "name": "isFinite", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -67738,24 +64409,32 @@ "kind": "space" }, { - "text": "ReferenceError", - "kind": "localName" + "text": "isFinite", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "number", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "ReferenceError", - "kind": "localName" + "text": "number", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -67766,20 +64445,44 @@ "kind": "space" }, { - "text": "ReferenceErrorConstructor", - "kind": "interfaceName" + "text": "boolean", + "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Determines whether a supplied number is finite.", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "number", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Any numeric value.", + "kind": "text" + } + ] + } + ] }, { - "name": "SyntaxError", - "kind": "var", + "name": "isNaN", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -67787,24 +64490,32 @@ "kind": "space" }, { - "text": "SyntaxError", - "kind": "localName" + "text": "isNaN", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "number", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "SyntaxError", - "kind": "localName" + "text": "number", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -67815,14 +64526,38 @@ "kind": "space" }, { - "text": "SyntaxErrorConstructor", - "kind": "interfaceName" + "text": "boolean", + "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Returns a Boolean value that indicates whether a value is the reserved value NaN (not a number).", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "number", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A numeric value.", + "kind": "text" + } + ] + } + ] }, { - "name": "TypeError", + "name": "JSON", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -67836,7 +64571,7 @@ "kind": "space" }, { - "text": "TypeError", + "text": "JSON", "kind": "localName" }, { @@ -67852,7 +64587,7 @@ "kind": "space" }, { - "text": "TypeError", + "text": "JSON", "kind": "localName" }, { @@ -67864,14 +64599,31 @@ "kind": "space" }, { - "text": "TypeErrorConstructor", - "kind": "interfaceName" + "text": "JSON", + "kind": "localName" } ], - "documentation": [] + "documentation": [ + { + "text": "An intrinsic object that provides functions to convert JavaScript values to and from the JavaScript Object Notation (JSON) format.", + "kind": "text" + } + ] }, { - "name": "URIError", + "name": "let", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "let", + "kind": "keyword" + } + ] + }, + { + "name": "Math", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -67885,7 +64637,7 @@ "kind": "space" }, { - "text": "URIError", + "text": "Math", "kind": "localName" }, { @@ -67901,7 +64653,7 @@ "kind": "space" }, { - "text": "URIError", + "text": "Math", "kind": "localName" }, { @@ -67913,34 +64665,23 @@ "kind": "space" }, { - "text": "URIErrorConstructor", - "kind": "interfaceName" + "text": "Math", + "kind": "localName" } ], - "documentation": [] + "documentation": [ + { + "text": "An intrinsic object that provides basic mathematics functionality and constants.", + "kind": "text" + } + ] }, { - "name": "JSON", + "name": "NaN", "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "JSON", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, { "text": "var", "kind": "keyword" @@ -67950,7 +64691,7 @@ "kind": "space" }, { - "text": "JSON", + "text": "NaN", "kind": "localName" }, { @@ -67962,19 +64703,38 @@ "kind": "space" }, { - "text": "JSON", - "kind": "localName" + "text": "number", + "kind": "keyword" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "new", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "An intrinsic object that provides functions to convert JavaScript values to and from the JavaScript Object Notation (JSON) format.", - "kind": "text" + "text": "new", + "kind": "keyword" } ] }, { - "name": "Array", + "name": "null", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "null", + "kind": "keyword" + } + ] + }, + { + "name": "Number", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -67988,21 +64748,9 @@ "kind": "space" }, { - "text": "Array", + "text": "Number", "kind": "localName" }, - { - "text": "<", - "kind": "punctuation" - }, - { - "text": "T", - "kind": "typeParameterName" - }, - { - "text": ">", - "kind": "punctuation" - }, { "text": "\n", "kind": "lineBreak" @@ -68016,7 +64764,7 @@ "kind": "space" }, { - "text": "Array", + "text": "Number", "kind": "localName" }, { @@ -68028,14 +64776,19 @@ "kind": "space" }, { - "text": "ArrayConstructor", + "text": "NumberConstructor", "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "An object that represents a number of any kind. All JavaScript numbers are 64-bit floating-point numbers.", + "kind": "text" + } + ] }, { - "name": "ArrayBuffer", + "name": "Object", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -68049,7 +64802,7 @@ "kind": "space" }, { - "text": "ArrayBuffer", + "text": "Object", "kind": "localName" }, { @@ -68065,7 +64818,7 @@ "kind": "space" }, { - "text": "ArrayBuffer", + "text": "Object", "kind": "localName" }, { @@ -68077,25 +64830,37 @@ "kind": "space" }, { - "text": "ArrayBufferConstructor", + "text": "ObjectConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "Represents a raw buffer of binary data, which is used to store data for the\r\ndifferent typed arrays. ArrayBuffers cannot be read from or written to directly,\r\nbut can be passed to a typed array or DataView Object to interpret the raw\r\nbuffer as needed.", + "text": "Provides functionality common to all JavaScript objects.", "kind": "text" } ] }, { - "name": "DataView", - "kind": "var", + "name": "package", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "package", + "kind": "keyword" + } + ] + }, + { + "name": "parseFloat", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -68103,24 +64868,32 @@ "kind": "space" }, { - "text": "DataView", - "kind": "localName" + "text": "parseFloat", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "string", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "DataView", - "kind": "localName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -68131,20 +64904,44 @@ "kind": "space" }, { - "text": "DataViewConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Converts a string to a floating-point number.", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string that contains a floating-point number.", + "kind": "text" + } + ] + } + ] }, { - "name": "Int8Array", - "kind": "var", + "name": "parseInt", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -68152,24 +64949,16 @@ "kind": "space" }, { - "text": "Int8Array", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": "parseInt", + "kind": "functionName" }, { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "Int8Array", - "kind": "localName" + "text": "string", + "kind": "parameterName" }, { "text": ":", @@ -68180,50 +64969,40 @@ "kind": "space" }, { - "text": "Int8ArrayConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "A typed array of 8-bit integer values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] - }, - { - "name": "Uint8Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", + "text": "string", "kind": "keyword" }, + { + "text": ",", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "Uint8Array", - "kind": "localName" + "text": "radix", + "kind": "parameterName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "?", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Uint8Array", - "kind": "localName" + "text": "number", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -68234,19 +65013,55 @@ "kind": "space" }, { - "text": "Uint8ArrayConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], "documentation": [ { - "text": "A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "text": "Converts a string to an integer.", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string to convert into a number.", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "radix", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value between 2 and 36 that specifies the base of the number in `string`.\r\nIf this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal.\r\nAll other strings are considered decimal.", + "kind": "text" + } + ] + } ] }, { - "name": "Uint8ClampedArray", + "name": "RangeError", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -68260,7 +65075,7 @@ "kind": "space" }, { - "text": "Uint8ClampedArray", + "text": "RangeError", "kind": "localName" }, { @@ -68276,7 +65091,7 @@ "kind": "space" }, { - "text": "Uint8ClampedArray", + "text": "RangeError", "kind": "localName" }, { @@ -68288,19 +65103,14 @@ "kind": "space" }, { - "text": "Uint8ClampedArrayConstructor", + "text": "RangeErrorConstructor", "kind": "interfaceName" } ], - "documentation": [ - { - "text": "A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0.\r\nIf the requested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "Int16Array", + "name": "ReferenceError", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -68314,7 +65124,7 @@ "kind": "space" }, { - "text": "Int16Array", + "text": "ReferenceError", "kind": "localName" }, { @@ -68330,7 +65140,7 @@ "kind": "space" }, { - "text": "Int16Array", + "text": "ReferenceError", "kind": "localName" }, { @@ -68342,19 +65152,14 @@ "kind": "space" }, { - "text": "Int16ArrayConstructor", + "text": "ReferenceErrorConstructor", "kind": "interfaceName" } ], - "documentation": [ - { - "text": "A typed array of 16-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "Uint16Array", + "name": "RegExp", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -68368,7 +65173,7 @@ "kind": "space" }, { - "text": "Uint16Array", + "text": "RegExp", "kind": "localName" }, { @@ -68384,7 +65189,7 @@ "kind": "space" }, { - "text": "Uint16Array", + "text": "RegExp", "kind": "localName" }, { @@ -68396,19 +65201,26 @@ "kind": "space" }, { - "text": "Uint16ArrayConstructor", + "text": "RegExpConstructor", "kind": "interfaceName" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "return", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" + "text": "return", + "kind": "keyword" } ] }, { - "name": "Int32Array", + "name": "String", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -68422,7 +65234,7 @@ "kind": "space" }, { - "text": "Int32Array", + "text": "String", "kind": "localName" }, { @@ -68438,7 +65250,7 @@ "kind": "space" }, { - "text": "Int32Array", + "text": "String", "kind": "localName" }, { @@ -68450,19 +65262,43 @@ "kind": "space" }, { - "text": "Int32ArrayConstructor", + "text": "StringConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "A typed array of 32-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "text": "Allows manipulation and formatting of text strings and determination and location of substrings within strings.", "kind": "text" } ] }, { - "name": "Uint32Array", + "name": "super", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "super", + "kind": "keyword" + } + ] + }, + { + "name": "switch", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "switch", + "kind": "keyword" + } + ] + }, + { + "name": "SyntaxError", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -68476,7 +65312,7 @@ "kind": "space" }, { - "text": "Uint32Array", + "text": "SyntaxError", "kind": "localName" }, { @@ -68492,7 +65328,7 @@ "kind": "space" }, { - "text": "Uint32Array", + "text": "SyntaxError", "kind": "localName" }, { @@ -68504,19 +65340,62 @@ "kind": "space" }, { - "text": "Uint32ArrayConstructor", + "text": "SyntaxErrorConstructor", "kind": "interfaceName" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "this", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" + "text": "this", + "kind": "keyword" + } + ] + }, + { + "name": "throw", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "throw", + "kind": "keyword" + } + ] + }, + { + "name": "true", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "true", + "kind": "keyword" + } + ] + }, + { + "name": "try", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "try", + "kind": "keyword" } ] }, { - "name": "Float32Array", + "name": "TypeError", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -68530,7 +65409,7 @@ "kind": "space" }, { - "text": "Float32Array", + "text": "TypeError", "kind": "localName" }, { @@ -68546,7 +65425,7 @@ "kind": "space" }, { - "text": "Float32Array", + "text": "TypeError", "kind": "localName" }, { @@ -68558,19 +65437,26 @@ "kind": "space" }, { - "text": "Float32ArrayConstructor", + "text": "TypeErrorConstructor", "kind": "interfaceName" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "typeof", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "A typed array of 32-bit float values. The contents are initialized to 0. If the requested number\r\nof bytes could not be allocated an exception is raised.", - "kind": "text" + "text": "typeof", + "kind": "keyword" } ] }, { - "name": "Float64Array", + "name": "Uint16Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -68584,7 +65470,7 @@ "kind": "space" }, { - "text": "Float64Array", + "text": "Uint16Array", "kind": "localName" }, { @@ -68600,7 +65486,7 @@ "kind": "space" }, { - "text": "Float64Array", + "text": "Uint16Array", "kind": "localName" }, { @@ -68612,25 +65498,25 @@ "kind": "space" }, { - "text": "Float64ArrayConstructor", + "text": "Uint16ArrayConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "A typed array of 64-bit float values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", + "text": "A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", "kind": "text" } ] }, { - "name": "Intl", - "kind": "module", + "name": "Uint32Array", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "namespace", + "text": "interface", "kind": "keyword" }, { @@ -68638,44 +65524,13 @@ "kind": "space" }, { - "text": "Intl", - "kind": "moduleName" - } - ], - "documentation": [] - }, - { - "name": "c1", - "kind": "class", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "class", - "kind": "keyword" + "text": "Uint32Array", + "kind": "localName" }, { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, - { - "text": "c1", - "kind": "className" - } - ], - "documentation": [ - { - "text": "This is comment for c1", - "kind": "text" - } - ] - }, - { - "name": "i1", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ { "text": "var", "kind": "keyword" @@ -68685,7 +65540,7 @@ "kind": "space" }, { - "text": "i1", + "text": "Uint32Array", "kind": "localName" }, { @@ -68697,20 +65552,25 @@ "kind": "space" }, { - "text": "c1", - "kind": "className" + "text": "Uint32ArrayConstructor", + "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] }, { - "name": "i1_p", + "name": "Uint8Array", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -68718,30 +65578,13 @@ "kind": "space" }, { - "text": "i1_p", + "text": "Uint8Array", "kind": "localName" }, { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_f", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ { "text": "var", "kind": "keyword" @@ -68751,7 +65594,7 @@ "kind": "space" }, { - "text": "i1_f", + "text": "Uint8Array", "kind": "localName" }, { @@ -68763,56 +65606,25 @@ "kind": "space" }, { - "text": "(", - "kind": "punctuation" - }, - { - "text": "b", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=>", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" + "text": "Uint8ArrayConstructor", + "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] }, { - "name": "i1_r", + "name": "Uint8ClampedArray", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -68820,30 +65632,13 @@ "kind": "space" }, { - "text": "i1_r", + "text": "Uint8ClampedArray", "kind": "localName" }, { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_prop", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ { "text": "var", "kind": "keyword" @@ -68853,7 +65648,7 @@ "kind": "space" }, { - "text": "i1_prop", + "text": "Uint8ClampedArray", "kind": "localName" }, { @@ -68865,17 +65660,22 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "Uint8ClampedArrayConstructor", + "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0.\r\nIf the requested number of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] }, { - "name": "i1_nc_p", + "name": "undefined", "kind": "var", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { "text": "var", @@ -68886,32 +65686,20 @@ "kind": "space" }, { - "text": "i1_nc_p", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" + "text": "undefined", + "kind": "propertyName" } ], "documentation": [] }, { - "name": "i1_ncf", + "name": "URIError", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -68919,47 +65707,27 @@ "kind": "space" }, { - "text": "i1_ncf", + "text": "URIError", "kind": "localName" }, { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "b", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "URIError", + "kind": "localName" }, { - "text": "=>", + "text": ":", "kind": "punctuation" }, { @@ -68967,119 +65735,80 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "URIErrorConstructor", + "kind": "interfaceName" } ], "documentation": [] }, { - "name": "i1_ncr", - "kind": "var", + "name": "var", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { "text": "var", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "i1_ncr", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" } - ], - "documentation": [] + ] }, { - "name": "i1_ncprop", - "kind": "var", + "name": "void", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "void", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "i1_ncprop", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, + } + ] + }, + { + "name": "while", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "number", + "text": "while", "kind": "keyword" } - ], - "documentation": [] + ] }, { - "name": "i1_s_p", - "kind": "var", + "name": "with", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "with", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "i1_s_p", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, + } + ] + }, + { + "name": "yield", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "number", + "text": "yield", "kind": "keyword" } - ], - "documentation": [] + ] }, { - "name": "i1_s_f", - "kind": "var", - "kindModifiers": "", - "sortText": "11", + "name": "escape", + "kind": "function", + "kindModifiers": "deprecated,declare", + "sortText": "z15", "displayParts": [ { - "text": "var", + "text": "function", "kind": "keyword" }, { @@ -69087,23 +65816,15 @@ "kind": "space" }, { - "text": "i1_s_f", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "escape", + "kind": "functionName" }, { "text": "(", "kind": "punctuation" }, { - "text": "b", + "text": "string", "kind": "parameterName" }, { @@ -69115,83 +65836,13 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" }, { "text": ")", "kind": "punctuation" }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=>", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_s_r", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "i1_s_r", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_s_prop", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "i1_s_prop", - "kind": "localName" - }, { "text": ":", "kind": "punctuation" @@ -69201,53 +65852,53 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" } ], - "documentation": [] - }, - { - "name": "i1_s_nc_p", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "i1_s_nc_p", - "kind": "localName" - }, + "documentation": [ { - "text": ":", - "kind": "punctuation" - }, + "text": "Computes a new string in which certain characters have been replaced by a hexadecimal escape sequence.", + "kind": "text" + } + ], + "tags": [ { - "text": " ", - "kind": "space" + "name": "deprecated", + "text": [ + { + "text": "A legacy feature for browser compatibility", + "kind": "text" + } + ] }, { - "text": "number", - "kind": "keyword" + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string value", + "kind": "text" + } + ] } - ], - "documentation": [] + ] }, { - "name": "i1_s_ncf", - "kind": "var", - "kindModifiers": "", - "sortText": "11", + "name": "unescape", + "kind": "function", + "kindModifiers": "deprecated,declare", + "sortText": "z15", "displayParts": [ { - "text": "var", + "text": "function", "kind": "keyword" }, { @@ -69255,23 +65906,15 @@ "kind": "space" }, { - "text": "i1_s_ncf", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "unescape", + "kind": "functionName" }, { "text": "(", "kind": "punctuation" }, { - "text": "b", + "text": "string", "kind": "parameterName" }, { @@ -69283,7 +65926,7 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" }, { @@ -69291,11 +65934,7 @@ "kind": "punctuation" }, { - "text": " ", - "kind": "space" - }, - { - "text": "=>", + "text": ":", "kind": "punctuation" }, { @@ -69303,29 +65942,88 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" } ], - "documentation": [] - }, + "documentation": [ + { + "text": "Computes a new string in which hexadecimal escape sequences are replaced with the character that it represents.", + "kind": "text" + } + ], + "tags": [ + { + "name": "deprecated", + "text": [ + { + "text": "A legacy feature for browser compatibility", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string value", + "kind": "text" + } + ] + } + ] + } + ] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/completionsCommentsClassMembers.ts", + "position": 1574, + "name": "52" + }, + "completionList": { + "isGlobalCompletion": false, + "isMemberCompletion": false, + "isNewIdentifierLocation": false, + "optionalReplacementSpan": { + "start": 1574, + "length": 1 + }, + "entries": [ { - "name": "i1_s_ncr", - "kind": "var", + "name": "arguments", + "kind": "local var", "kindModifiers": "", "sortText": "11", "displayParts": [ { - "text": "var", - "kind": "keyword" + "text": "(", + "kind": "punctuation" + }, + { + "text": "local var", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "i1_s_ncr", - "kind": "localName" + "text": "arguments", + "kind": "propertyName" }, { "text": ":", @@ -69336,29 +66034,37 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "IArguments", + "kind": "interfaceName" } ], "documentation": [] }, { - "name": "i1_s_ncprop", - "kind": "var", + "name": "b", + "kind": "parameter", "kindModifiers": "", "sortText": "11", "displayParts": [ { - "text": "var", - "kind": "keyword" + "text": "(", + "kind": "punctuation" + }, + { + "text": "parameter", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "i1_s_ncprop", - "kind": "localName" + "text": "b", + "kind": "parameterName" }, { "text": ":", @@ -69376,33 +66082,13 @@ "documentation": [] }, { - "name": "i1_c", - "kind": "var", + "name": "c1", + "kind": "class", "kindModifiers": "", "sortText": "11", "displayParts": [ { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "i1_c", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "typeof", + "text": "class", "kind": "keyword" }, { @@ -69414,7 +66100,12 @@ "kind": "className" } ], - "documentation": [] + "documentation": [ + { + "text": "This is comment for c1", + "kind": "text" + } + ] }, { "name": "cProperties", @@ -69492,10 +66183,10 @@ "documentation": [] }, { - "name": "undefined", + "name": "i1", "kind": "var", "kindModifiers": "", - "sortText": "15", + "sortText": "11", "displayParts": [ { "text": "var", @@ -69506,571 +66197,548 @@ "kind": "space" }, { - "text": "undefined", - "kind": "propertyName" + "text": "i1", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "c1", + "kind": "className" } ], "documentation": [] }, { - "name": "break", - "kind": "keyword", + "name": "i1_c", + "kind": "var", "kindModifiers": "", - "sortText": "15", + "sortText": "11", "displayParts": [ { - "text": "break", + "text": "var", "kind": "keyword" - } - ] - }, - { - "name": "case", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "case", - "kind": "keyword" - } - ] - }, - { - "name": "catch", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "catch", - "kind": "keyword" - } - ] - }, - { - "name": "class", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "i1_c", + "kind": "localName" + }, { - "text": "class", - "kind": "keyword" - } - ] - }, - { - "name": "const", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": ":", + "kind": "punctuation" + }, { - "text": "const", - "kind": "keyword" - } - ] - }, - { - "name": "continue", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "continue", + "text": "typeof", "kind": "keyword" - } - ] - }, - { - "name": "debugger", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "debugger", - "kind": "keyword" - } - ] - }, - { - "name": "default", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "default", - "kind": "keyword" + "text": "c1", + "kind": "className" } - ] + ], + "documentation": [] }, { - "name": "delete", - "kind": "keyword", + "name": "i1_f", + "kind": "var", "kindModifiers": "", - "sortText": "15", + "sortText": "11", "displayParts": [ { - "text": "delete", + "text": "var", "kind": "keyword" - } - ] - }, - { - "name": "do", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "do", - "kind": "keyword" - } - ] - }, - { - "name": "else", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "else", - "kind": "keyword" - } - ] - }, - { - "name": "enum", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "i1_f", + "kind": "localName" + }, { - "text": "enum", - "kind": "keyword" - } - ] - }, - { - "name": "export", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": ":", + "kind": "punctuation" + }, { - "text": "export", - "kind": "keyword" - } - ] - }, - { - "name": "extends", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "extends", - "kind": "keyword" - } - ] - }, - { - "name": "false", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "(", + "kind": "punctuation" + }, { - "text": "false", - "kind": "keyword" - } - ] - }, - { - "name": "finally", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "b", + "kind": "parameterName" + }, { - "text": "finally", - "kind": "keyword" - } - ] - }, - { - "name": "for", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": ":", + "kind": "punctuation" + }, { - "text": "for", - "kind": "keyword" - } - ] - }, - { - "name": "function", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "function", + "text": "number", "kind": "keyword" - } - ] - }, - { - "name": "if", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "if", - "kind": "keyword" - } - ] - }, - { - "name": "import", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": ")", + "kind": "punctuation" + }, { - "text": "import", - "kind": "keyword" - } - ] - }, - { - "name": "in", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "in", - "kind": "keyword" - } - ] - }, - { - "name": "instanceof", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, { - "text": "instanceof", + "text": "number", "kind": "keyword" } - ] + ], + "documentation": [] }, { - "name": "new", - "kind": "keyword", + "name": "i1_nc_p", + "kind": "var", "kindModifiers": "", - "sortText": "15", + "sortText": "11", "displayParts": [ { - "text": "new", + "text": "var", "kind": "keyword" - } - ] - }, - { - "name": "null", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "null", - "kind": "keyword" - } - ] - }, - { - "name": "return", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "return", + "text": "i1_nc_p", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" } - ] + ], + "documentation": [] }, { - "name": "super", - "kind": "keyword", + "name": "i1_ncf", + "kind": "var", "kindModifiers": "", - "sortText": "15", + "sortText": "11", "displayParts": [ { - "text": "super", + "text": "var", "kind": "keyword" - } - ] - }, - { - "name": "switch", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "switch", + "text": " ", + "kind": "space" + }, + { + "text": "i1_ncf", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "b", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" - } - ] - }, - { - "name": "this", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "this", + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" } - ] + ], + "documentation": [] }, { - "name": "throw", - "kind": "keyword", + "name": "i1_ncprop", + "kind": "var", "kindModifiers": "", - "sortText": "15", + "sortText": "11", "displayParts": [ { - "text": "throw", + "text": "var", "kind": "keyword" - } - ] - }, - { - "name": "true", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "true", + "text": " ", + "kind": "space" + }, + { + "text": "i1_ncprop", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" } - ] + ], + "documentation": [] }, { - "name": "try", - "kind": "keyword", + "name": "i1_ncr", + "kind": "var", "kindModifiers": "", - "sortText": "15", + "sortText": "11", "displayParts": [ { - "text": "try", + "text": "var", "kind": "keyword" - } - ] - }, - { - "name": "typeof", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "typeof", + "text": " ", + "kind": "space" + }, + { + "text": "i1_ncr", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" } - ] + ], + "documentation": [] }, { - "name": "var", - "kind": "keyword", + "name": "i1_p", + "kind": "var", "kindModifiers": "", - "sortText": "15", + "sortText": "11", "displayParts": [ { "text": "var", "kind": "keyword" - } - ] - }, - { - "name": "void", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "void", + "text": " ", + "kind": "space" + }, + { + "text": "i1_p", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" } - ] + ], + "documentation": [] }, { - "name": "while", - "kind": "keyword", + "name": "i1_prop", + "kind": "var", "kindModifiers": "", - "sortText": "15", + "sortText": "11", "displayParts": [ { - "text": "while", + "text": "var", "kind": "keyword" - } - ] - }, - { - "name": "with", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "with", + "text": " ", + "kind": "space" + }, + { + "text": "i1_prop", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" } - ] + ], + "documentation": [] }, { - "name": "implements", - "kind": "keyword", + "name": "i1_r", + "kind": "var", "kindModifiers": "", - "sortText": "15", + "sortText": "11", "displayParts": [ { - "text": "implements", + "text": "var", "kind": "keyword" - } - ] - }, - { - "name": "interface", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "interface", + "text": " ", + "kind": "space" + }, + { + "text": "i1_r", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" } - ] + ], + "documentation": [] }, { - "name": "let", - "kind": "keyword", + "name": "i1_s_f", + "kind": "var", "kindModifiers": "", - "sortText": "15", + "sortText": "11", "displayParts": [ { - "text": "let", + "text": "var", "kind": "keyword" - } - ] - }, - { - "name": "package", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "package", + "text": " ", + "kind": "space" + }, + { + "text": "i1_s_f", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "b", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" - } - ] - }, - { - "name": "yield", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "yield", + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" } - ] + ], + "documentation": [] }, { - "name": "as", - "kind": "keyword", + "name": "i1_s_nc_p", + "kind": "var", "kindModifiers": "", - "sortText": "15", + "sortText": "11", "displayParts": [ { - "text": "as", + "text": "var", "kind": "keyword" - } - ] - }, - { - "name": "async", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "async", + "text": " ", + "kind": "space" + }, + { + "text": "i1_s_nc_p", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" } - ] + ], + "documentation": [] }, { - "name": "await", - "kind": "keyword", + "name": "i1_s_ncf", + "kind": "var", "kindModifiers": "", - "sortText": "15", + "sortText": "11", "displayParts": [ { - "text": "await", + "text": "var", "kind": "keyword" - } - ] - } - ] - } - }, - { - "marker": { - "fileName": "/tests/cases/fourslash/completionsCommentsClassMembers.ts", - "position": 1731, - "name": "56" - }, - "completionList": { - "isGlobalCompletion": false, - "isMemberCompletion": false, - "isNewIdentifierLocation": true, - "optionalReplacementSpan": { - "start": 1731, - "length": 5 - }, - "entries": [ - { - "name": "value", - "kind": "parameter", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "i1_s_ncf", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, { "text": "(", "kind": "punctuation" }, { - "text": "parameter", - "kind": "text" + "text": "b", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" }, { "text": ")", @@ -70081,11 +66749,7 @@ "kind": "space" }, { - "text": "value", - "kind": "parameterName" - }, - { - "text": ":", + "text": "=>", "kind": "punctuation" }, { @@ -70100,30 +66764,22 @@ "documentation": [] }, { - "name": "arguments", - "kind": "local var", + "name": "i1_s_ncprop", + "kind": "var", "kindModifiers": "", "sortText": "11", "displayParts": [ { - "text": "(", - "kind": "punctuation" - }, - { - "text": "local var", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "arguments", - "kind": "propertyName" + "text": "i1_s_ncprop", + "kind": "localName" }, { "text": ":", @@ -70134,20 +66790,20 @@ "kind": "space" }, { - "text": "IArguments", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], "documentation": [] }, { - "name": "globalThis", - "kind": "module", + "name": "i1_s_ncr", + "kind": "var", "kindModifiers": "", - "sortText": "15", + "sortText": "11", "displayParts": [ { - "text": "module", + "text": "var", "kind": "keyword" }, { @@ -70155,20 +66811,32 @@ "kind": "space" }, { - "text": "globalThis", - "kind": "moduleName" + "text": "i1_s_ncr", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" } ], "documentation": [] }, { - "name": "eval", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "name": "i1_s_p", + "kind": "var", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "function", + "text": "var", "kind": "keyword" }, { @@ -70176,16 +66844,41 @@ "kind": "space" }, { - "text": "eval", - "kind": "functionName" + "text": "i1_s_p", + "kind": "localName" }, { - "text": "(", + "text": ":", "kind": "punctuation" }, { - "text": "x", - "kind": "parameterName" + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "i1_s_prop", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "i1_s_prop", + "kind": "localName" }, { "text": ":", @@ -70196,12 +66889,29 @@ "kind": "space" }, { - "text": "string", + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "i1_s_r", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "var", "kind": "keyword" }, { - "text": ")", - "kind": "punctuation" + "text": " ", + "kind": "space" + }, + { + "text": "i1_s_r", + "kind": "localName" }, { "text": ":", @@ -70212,44 +66922,20 @@ "kind": "space" }, { - "text": "any", + "text": "number", "kind": "keyword" } ], - "documentation": [ - { - "text": "Evaluates JavaScript code and executes it.", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "x", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A String value that contains valid JavaScript code.", - "kind": "text" - } - ] - } - ] + "documentation": [] }, { - "name": "parseInt", - "kind": "function", + "name": "Array", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -70257,31 +66943,39 @@ "kind": "space" }, { - "text": "parseInt", - "kind": "functionName" + "text": "Array", + "kind": "localName" }, { - "text": "(", + "text": "<", "kind": "punctuation" }, { - "text": "string", - "kind": "parameterName" + "text": "T", + "kind": "typeParameterName" }, { - "text": ":", + "text": ">", "kind": "punctuation" }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", + "kind": "keyword" + }, { "text": " ", "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "Array", + "kind": "localName" }, { - "text": ",", + "text": ":", "kind": "punctuation" }, { @@ -70289,28 +66983,45 @@ "kind": "space" }, { - "text": "radix", - "kind": "parameterName" + "text": "ArrayConstructor", + "kind": "interfaceName" + } + ], + "documentation": [] + }, + { + "name": "ArrayBuffer", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" }, { - "text": "?", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": ":", - "kind": "punctuation" + "text": "ArrayBuffer", + "kind": "localName" }, { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, { - "text": "number", + "text": "var", "kind": "keyword" }, { - "text": ")", - "kind": "punctuation" + "text": " ", + "kind": "space" + }, + { + "text": "ArrayBuffer", + "kind": "localName" }, { "text": ":", @@ -70321,61 +67032,61 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "ArrayBufferConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "Converts a string to an integer.", + "text": "Represents a raw buffer of binary data, which is used to store data for the\r\ndifferent typed arrays. ArrayBuffers cannot be read from or written to directly,\r\nbut can be passed to a typed array or DataView Object to interpret the raw\r\nbuffer as needed.", "kind": "text" } - ], - "tags": [ + ] + }, + { + "name": "as", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string to convert into a number.", - "kind": "text" - } - ] - }, + "text": "as", + "kind": "keyword" + } + ] + }, + { + "name": "async", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "radix", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value between 2 and 36 that specifies the base of the number in `string`.\r\nIf this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal.\r\nAll other strings are considered decimal.", - "kind": "text" - } - ] + "text": "async", + "kind": "keyword" } ] }, { - "name": "parseFloat", - "kind": "function", + "name": "await", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "await", + "kind": "keyword" + } + ] + }, + { + "name": "Boolean", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -70383,32 +67094,24 @@ "kind": "space" }, { - "text": "parseFloat", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" + "text": "Boolean", + "kind": "localName" }, { - "text": "string", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "Boolean", + "kind": "localName" }, { "text": ":", @@ -70419,44 +67122,92 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "BooleanConstructor", + "kind": "interfaceName" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "break", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "Converts a string to a floating-point number.", - "kind": "text" + "text": "break", + "kind": "keyword" } - ], - "tags": [ + ] + }, + { + "name": "case", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string that contains a floating-point number.", - "kind": "text" - } - ] + "text": "case", + "kind": "keyword" } ] }, { - "name": "isNaN", - "kind": "function", + "name": "catch", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "catch", + "kind": "keyword" + } + ] + }, + { + "name": "class", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + } + ] + }, + { + "name": "const", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + } + ] + }, + { + "name": "continue", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "continue", + "kind": "keyword" + } + ] + }, + { + "name": "DataView", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -70464,32 +67215,24 @@ "kind": "space" }, { - "text": "isNaN", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" + "text": "DataView", + "kind": "localName" }, { - "text": "number", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "DataView", + "kind": "localName" }, { "text": ":", @@ -70500,44 +67243,20 @@ "kind": "space" }, { - "text": "boolean", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Returns a Boolean value that indicates whether a value is the reserved value NaN (not a number).", - "kind": "text" + "text": "DataViewConstructor", + "kind": "interfaceName" } ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "number", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A numeric value.", - "kind": "text" - } - ] - } - ] + "documentation": [] }, { - "name": "isFinite", - "kind": "function", + "name": "Date", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -70545,32 +67264,24 @@ "kind": "space" }, { - "text": "isFinite", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" + "text": "Date", + "kind": "localName" }, { - "text": "number", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "Date", + "kind": "localName" }, { "text": ":", @@ -70581,33 +67292,26 @@ "kind": "space" }, { - "text": "boolean", - "kind": "keyword" + "text": "DateConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "Determines whether a supplied number is finite.", + "text": "Enables basic storage and retrieval of dates and times.", "kind": "text" } - ], - "tags": [ + ] + }, + { + "name": "debugger", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "number", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Any numeric value.", - "kind": "text" - } - ] + "text": "debugger", + "kind": "keyword" } ] }, @@ -70773,6 +67477,54 @@ } ] }, + { + "name": "default", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "default", + "kind": "keyword" + } + ] + }, + { + "name": "delete", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "delete", + "kind": "keyword" + } + ] + }, + { + "name": "do", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "do", + "kind": "keyword" + } + ] + }, + { + "name": "else", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "else", + "kind": "keyword" + } + ] + }, { "name": "encodeURI", "kind": "function", @@ -70968,13 +67720,25 @@ ] }, { - "name": "escape", - "kind": "function", - "kindModifiers": "deprecated,declare", - "sortText": "23", + "name": "enum", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", "displayParts": [ { - "text": "function", + "text": "enum", + "kind": "keyword" + } + ] + }, + { + "name": "Error", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", "kind": "keyword" }, { @@ -70982,32 +67746,24 @@ "kind": "space" }, { - "text": "escape", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" + "text": "Error", + "kind": "localName" }, { - "text": "string", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "Error", + "kind": "localName" }, { "text": ":", @@ -71018,50 +67774,17 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Computes a new string in which certain characters have been replaced by a hexadecimal escape sequence.", - "kind": "text" + "text": "ErrorConstructor", + "kind": "interfaceName" } ], - "tags": [ - { - "name": "deprecated", - "text": [ - { - "text": "A legacy feature for browser compatibility", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string value", - "kind": "text" - } - ] - } - ] + "documentation": [] }, { - "name": "unescape", + "name": "eval", "kind": "function", - "kindModifiers": "deprecated,declare", - "sortText": "23", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { "text": "function", @@ -71072,7 +67795,7 @@ "kind": "space" }, { - "text": "unescape", + "text": "eval", "kind": "functionName" }, { @@ -71080,7 +67803,7 @@ "kind": "punctuation" }, { - "text": "string", + "text": "x", "kind": "parameterName" }, { @@ -71108,31 +67831,22 @@ "kind": "space" }, { - "text": "string", + "text": "any", "kind": "keyword" } ], "documentation": [ { - "text": "Computes a new string in which hexadecimal escape sequences are replaced with the character that it represents.", + "text": "Evaluates JavaScript code and executes it.", "kind": "text" } ], "tags": [ - { - "name": "deprecated", - "text": [ - { - "text": "A legacy feature for browser compatibility", - "kind": "text" - } - ] - }, { "name": "param", "text": [ { - "text": "string", + "text": "x", "kind": "parameterName" }, { @@ -71140,7 +67854,7 @@ "kind": "space" }, { - "text": "A string value", + "text": "A String value that contains valid JavaScript code.", "kind": "text" } ] @@ -71148,11 +67862,27 @@ ] }, { - "name": "NaN", + "name": "EvalError", "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "EvalError", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, { "text": "var", "kind": "keyword" @@ -71162,7 +67892,7 @@ "kind": "space" }, { - "text": "NaN", + "text": "EvalError", "kind": "localName" }, { @@ -71174,18 +67904,82 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "EvalErrorConstructor", + "kind": "interfaceName" } ], "documentation": [] }, { - "name": "Infinity", + "name": "export", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "export", + "kind": "keyword" + } + ] + }, + { + "name": "extends", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "extends", + "kind": "keyword" + } + ] + }, + { + "name": "false", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "false", + "kind": "keyword" + } + ] + }, + { + "name": "finally", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "finally", + "kind": "keyword" + } + ] + }, + { + "name": "Float32Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Float32Array", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, { "text": "var", "kind": "keyword" @@ -71195,7 +67989,7 @@ "kind": "space" }, { - "text": "Infinity", + "text": "Float32Array", "kind": "localName" }, { @@ -71207,14 +68001,19 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "Float32ArrayConstructor", + "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "A typed array of 32-bit float values. The contents are initialized to 0. If the requested number\r\nof bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] }, { - "name": "Object", + "name": "Float64Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -71228,7 +68027,7 @@ "kind": "space" }, { - "text": "Object", + "text": "Float64Array", "kind": "localName" }, { @@ -71244,7 +68043,7 @@ "kind": "space" }, { - "text": "Object", + "text": "Float64Array", "kind": "localName" }, { @@ -71256,17 +68055,41 @@ "kind": "space" }, { - "text": "ObjectConstructor", + "text": "Float64ArrayConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "Provides functionality common to all JavaScript objects.", + "text": "A typed array of 64-bit float values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", "kind": "text" } ] }, + { + "name": "for", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "for", + "kind": "keyword" + } + ] + }, + { + "name": "function", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + } + ] + }, { "name": "Function", "kind": "var", @@ -71322,7 +68145,121 @@ ] }, { - "name": "String", + "name": "globalThis", + "kind": "module", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "module", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "globalThis", + "kind": "moduleName" + } + ], + "documentation": [] + }, + { + "name": "if", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "if", + "kind": "keyword" + } + ] + }, + { + "name": "implements", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "implements", + "kind": "keyword" + } + ] + }, + { + "name": "import", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "import", + "kind": "keyword" + } + ] + }, + { + "name": "in", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "in", + "kind": "keyword" + } + ] + }, + { + "name": "Infinity", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Infinity", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "instanceof", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "instanceof", + "kind": "keyword" + } + ] + }, + { + "name": "Int16Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -71336,7 +68273,7 @@ "kind": "space" }, { - "text": "String", + "text": "Int16Array", "kind": "localName" }, { @@ -71352,7 +68289,7 @@ "kind": "space" }, { - "text": "String", + "text": "Int16Array", "kind": "localName" }, { @@ -71364,19 +68301,19 @@ "kind": "space" }, { - "text": "StringConstructor", + "text": "Int16ArrayConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "Allows manipulation and formatting of text strings and determination and location of substrings within strings.", + "text": "A typed array of 16-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", "kind": "text" } ] }, { - "name": "Boolean", + "name": "Int32Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -71390,7 +68327,61 @@ "kind": "space" }, { - "text": "Boolean", + "text": "Int32Array", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Int32Array", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Int32ArrayConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ + { + "text": "A typed array of 32-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] + }, + { + "name": "Int8Array", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Int8Array", "kind": "localName" }, { @@ -71406,7 +68397,7 @@ "kind": "space" }, { - "text": "Boolean", + "text": "Int8Array", "kind": "localName" }, { @@ -71418,20 +68409,58 @@ "kind": "space" }, { - "text": "BooleanConstructor", + "text": "Int8ArrayConstructor", "kind": "interfaceName" } ], + "documentation": [ + { + "text": "A typed array of 8-bit integer values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] + }, + { + "name": "interface", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" + } + ] + }, + { + "name": "Intl", + "kind": "module", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Intl", + "kind": "moduleName" + } + ], "documentation": [] }, { - "name": "Number", - "kind": "var", + "name": "isFinite", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -71439,24 +68468,32 @@ "kind": "space" }, { - "text": "Number", - "kind": "localName" + "text": "isFinite", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "number", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Number", - "kind": "localName" + "text": "number", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -71467,25 +68504,44 @@ "kind": "space" }, { - "text": "NumberConstructor", - "kind": "interfaceName" + "text": "boolean", + "kind": "keyword" } ], "documentation": [ { - "text": "An object that represents a number of any kind. All JavaScript numbers are 64-bit floating-point numbers.", + "text": "Determines whether a supplied number is finite.", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "number", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Any numeric value.", + "kind": "text" + } + ] + } ] }, { - "name": "Math", - "kind": "var", + "name": "isNaN", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -71493,24 +68549,32 @@ "kind": "space" }, { - "text": "Math", - "kind": "localName" + "text": "isNaN", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "number", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Math", - "kind": "localName" + "text": "number", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -71521,19 +68585,38 @@ "kind": "space" }, { - "text": "Math", - "kind": "localName" + "text": "boolean", + "kind": "keyword" } ], "documentation": [ { - "text": "An intrinsic object that provides basic mathematics functionality and constants.", + "text": "Returns a Boolean value that indicates whether a value is the reserved value NaN (not a number).", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "number", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A numeric value.", + "kind": "text" + } + ] + } ] }, { - "name": "Date", + "name": "JSON", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -71547,7 +68630,7 @@ "kind": "space" }, { - "text": "Date", + "text": "JSON", "kind": "localName" }, { @@ -71563,7 +68646,7 @@ "kind": "space" }, { - "text": "Date", + "text": "JSON", "kind": "localName" }, { @@ -71575,19 +68658,31 @@ "kind": "space" }, { - "text": "DateConstructor", - "kind": "interfaceName" + "text": "JSON", + "kind": "localName" } ], "documentation": [ { - "text": "Enables basic storage and retrieval of dates and times.", + "text": "An intrinsic object that provides functions to convert JavaScript values to and from the JavaScript Object Notation (JSON) format.", "kind": "text" } ] }, { - "name": "RegExp", + "name": "let", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "let", + "kind": "keyword" + } + ] + }, + { + "name": "Math", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -71601,7 +68696,7 @@ "kind": "space" }, { - "text": "RegExp", + "text": "Math", "kind": "localName" }, { @@ -71617,7 +68712,7 @@ "kind": "space" }, { - "text": "RegExp", + "text": "Math", "kind": "localName" }, { @@ -71629,34 +68724,23 @@ "kind": "space" }, { - "text": "RegExpConstructor", - "kind": "interfaceName" + "text": "Math", + "kind": "localName" } ], - "documentation": [] + "documentation": [ + { + "text": "An intrinsic object that provides basic mathematics functionality and constants.", + "kind": "text" + } + ] }, { - "name": "Error", + "name": "NaN", "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Error", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, { "text": "var", "kind": "keyword" @@ -71666,7 +68750,7 @@ "kind": "space" }, { - "text": "Error", + "text": "NaN", "kind": "localName" }, { @@ -71678,14 +68762,38 @@ "kind": "space" }, { - "text": "ErrorConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], "documentation": [] }, { - "name": "EvalError", + "name": "new", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "new", + "kind": "keyword" + } + ] + }, + { + "name": "null", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "null", + "kind": "keyword" + } + ] + }, + { + "name": "Number", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -71699,7 +68807,7 @@ "kind": "space" }, { - "text": "EvalError", + "text": "Number", "kind": "localName" }, { @@ -71715,7 +68823,7 @@ "kind": "space" }, { - "text": "EvalError", + "text": "Number", "kind": "localName" }, { @@ -71727,14 +68835,19 @@ "kind": "space" }, { - "text": "EvalErrorConstructor", + "text": "NumberConstructor", "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "An object that represents a number of any kind. All JavaScript numbers are 64-bit floating-point numbers.", + "kind": "text" + } + ] }, { - "name": "RangeError", + "name": "Object", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -71748,7 +68861,7 @@ "kind": "space" }, { - "text": "RangeError", + "text": "Object", "kind": "localName" }, { @@ -71764,7 +68877,7 @@ "kind": "space" }, { - "text": "RangeError", + "text": "Object", "kind": "localName" }, { @@ -71776,20 +68889,37 @@ "kind": "space" }, { - "text": "RangeErrorConstructor", + "text": "ObjectConstructor", "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "Provides functionality common to all JavaScript objects.", + "kind": "text" + } + ] }, { - "name": "ReferenceError", - "kind": "var", + "name": "package", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "package", + "kind": "keyword" + } + ] + }, + { + "name": "parseFloat", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -71797,24 +68927,32 @@ "kind": "space" }, { - "text": "ReferenceError", - "kind": "localName" + "text": "parseFloat", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "string", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "ReferenceError", - "kind": "localName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -71825,20 +68963,44 @@ "kind": "space" }, { - "text": "ReferenceErrorConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Converts a string to a floating-point number.", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string that contains a floating-point number.", + "kind": "text" + } + ] + } + ] }, { - "name": "SyntaxError", - "kind": "var", + "name": "parseInt", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -71846,24 +69008,16 @@ "kind": "space" }, { - "text": "SyntaxError", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": "parseInt", + "kind": "functionName" }, { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "SyntaxError", - "kind": "localName" + "text": "string", + "kind": "parameterName" }, { "text": ":", @@ -71874,45 +69028,40 @@ "kind": "space" }, { - "text": "SyntaxErrorConstructor", - "kind": "interfaceName" - } - ], - "documentation": [] - }, - { - "name": "TypeError", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", + "text": "string", "kind": "keyword" }, + { + "text": ",", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "TypeError", - "kind": "localName" + "text": "radix", + "kind": "parameterName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "?", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "TypeError", - "kind": "localName" + "text": "number", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -71923,14 +69072,55 @@ "kind": "space" }, { - "text": "TypeErrorConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Converts a string to an integer.", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string to convert into a number.", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "radix", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value between 2 and 36 that specifies the base of the number in `string`.\r\nIf this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal.\r\nAll other strings are considered decimal.", + "kind": "text" + } + ] + } + ] }, { - "name": "URIError", + "name": "RangeError", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -71944,7 +69134,7 @@ "kind": "space" }, { - "text": "URIError", + "text": "RangeError", "kind": "localName" }, { @@ -71960,7 +69150,7 @@ "kind": "space" }, { - "text": "URIError", + "text": "RangeError", "kind": "localName" }, { @@ -71972,14 +69162,14 @@ "kind": "space" }, { - "text": "URIErrorConstructor", + "text": "RangeErrorConstructor", "kind": "interfaceName" } ], "documentation": [] }, { - "name": "JSON", + "name": "ReferenceError", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -71993,7 +69183,7 @@ "kind": "space" }, { - "text": "JSON", + "text": "ReferenceError", "kind": "localName" }, { @@ -72009,7 +69199,7 @@ "kind": "space" }, { - "text": "JSON", + "text": "ReferenceError", "kind": "localName" }, { @@ -72021,19 +69211,14 @@ "kind": "space" }, { - "text": "JSON", - "kind": "localName" + "text": "ReferenceErrorConstructor", + "kind": "interfaceName" } ], - "documentation": [ - { - "text": "An intrinsic object that provides functions to convert JavaScript values to and from the JavaScript Object Notation (JSON) format.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "Array", + "name": "RegExp", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -72047,21 +69232,9 @@ "kind": "space" }, { - "text": "Array", + "text": "RegExp", "kind": "localName" }, - { - "text": "<", - "kind": "punctuation" - }, - { - "text": "T", - "kind": "typeParameterName" - }, - { - "text": ">", - "kind": "punctuation" - }, { "text": "\n", "kind": "lineBreak" @@ -72075,7 +69248,7 @@ "kind": "space" }, { - "text": "Array", + "text": "RegExp", "kind": "localName" }, { @@ -72087,14 +69260,26 @@ "kind": "space" }, { - "text": "ArrayConstructor", + "text": "RegExpConstructor", "kind": "interfaceName" } - ], - "documentation": [] + ], + "documentation": [] + }, + { + "name": "return", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "return", + "kind": "keyword" + } + ] }, { - "name": "ArrayBuffer", + "name": "String", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -72108,7 +69293,7 @@ "kind": "space" }, { - "text": "ArrayBuffer", + "text": "String", "kind": "localName" }, { @@ -72124,7 +69309,7 @@ "kind": "space" }, { - "text": "ArrayBuffer", + "text": "String", "kind": "localName" }, { @@ -72136,19 +69321,43 @@ "kind": "space" }, { - "text": "ArrayBufferConstructor", + "text": "StringConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "Represents a raw buffer of binary data, which is used to store data for the\r\ndifferent typed arrays. ArrayBuffers cannot be read from or written to directly,\r\nbut can be passed to a typed array or DataView Object to interpret the raw\r\nbuffer as needed.", + "text": "Allows manipulation and formatting of text strings and determination and location of substrings within strings.", "kind": "text" } ] }, { - "name": "DataView", + "name": "super", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "super", + "kind": "keyword" + } + ] + }, + { + "name": "switch", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "switch", + "kind": "keyword" + } + ] + }, + { + "name": "SyntaxError", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -72162,7 +69371,7 @@ "kind": "space" }, { - "text": "DataView", + "text": "SyntaxError", "kind": "localName" }, { @@ -72178,7 +69387,7 @@ "kind": "space" }, { - "text": "DataView", + "text": "SyntaxError", "kind": "localName" }, { @@ -72190,14 +69399,62 @@ "kind": "space" }, { - "text": "DataViewConstructor", + "text": "SyntaxErrorConstructor", "kind": "interfaceName" } ], "documentation": [] }, { - "name": "Int8Array", + "name": "this", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "this", + "kind": "keyword" + } + ] + }, + { + "name": "throw", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "throw", + "kind": "keyword" + } + ] + }, + { + "name": "true", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "true", + "kind": "keyword" + } + ] + }, + { + "name": "try", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "try", + "kind": "keyword" + } + ] + }, + { + "name": "TypeError", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -72211,7 +69468,7 @@ "kind": "space" }, { - "text": "Int8Array", + "text": "TypeError", "kind": "localName" }, { @@ -72227,7 +69484,7 @@ "kind": "space" }, { - "text": "Int8Array", + "text": "TypeError", "kind": "localName" }, { @@ -72239,19 +69496,26 @@ "kind": "space" }, { - "text": "Int8ArrayConstructor", + "text": "TypeErrorConstructor", "kind": "interfaceName" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "typeof", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "A typed array of 8-bit integer values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", - "kind": "text" + "text": "typeof", + "kind": "keyword" } ] }, { - "name": "Uint8Array", + "name": "Uint16Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -72265,7 +69529,7 @@ "kind": "space" }, { - "text": "Uint8Array", + "text": "Uint16Array", "kind": "localName" }, { @@ -72281,7 +69545,7 @@ "kind": "space" }, { - "text": "Uint8Array", + "text": "Uint16Array", "kind": "localName" }, { @@ -72293,19 +69557,19 @@ "kind": "space" }, { - "text": "Uint8ArrayConstructor", + "text": "Uint16ArrayConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "text": "A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", "kind": "text" } ] }, { - "name": "Uint8ClampedArray", + "name": "Uint32Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -72319,7 +69583,7 @@ "kind": "space" }, { - "text": "Uint8ClampedArray", + "text": "Uint32Array", "kind": "localName" }, { @@ -72335,7 +69599,7 @@ "kind": "space" }, { - "text": "Uint8ClampedArray", + "text": "Uint32Array", "kind": "localName" }, { @@ -72347,19 +69611,19 @@ "kind": "space" }, { - "text": "Uint8ClampedArrayConstructor", + "text": "Uint32ArrayConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0.\r\nIf the requested number of bytes could not be allocated an exception is raised.", + "text": "A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", "kind": "text" } ] }, { - "name": "Int16Array", + "name": "Uint8Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -72373,7 +69637,7 @@ "kind": "space" }, { - "text": "Int16Array", + "text": "Uint8Array", "kind": "localName" }, { @@ -72389,7 +69653,7 @@ "kind": "space" }, { - "text": "Int16Array", + "text": "Uint8Array", "kind": "localName" }, { @@ -72401,19 +69665,19 @@ "kind": "space" }, { - "text": "Int16ArrayConstructor", + "text": "Uint8ArrayConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "A typed array of 16-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "text": "A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", "kind": "text" } ] }, { - "name": "Uint16Array", + "name": "Uint8ClampedArray", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -72427,7 +69691,7 @@ "kind": "space" }, { - "text": "Uint16Array", + "text": "Uint8ClampedArray", "kind": "localName" }, { @@ -72443,7 +69707,7 @@ "kind": "space" }, { - "text": "Uint16Array", + "text": "Uint8ClampedArray", "kind": "localName" }, { @@ -72455,19 +69719,40 @@ "kind": "space" }, { - "text": "Uint16ArrayConstructor", + "text": "Uint8ClampedArrayConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "text": "A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0.\r\nIf the requested number of bytes could not be allocated an exception is raised.", "kind": "text" } ] }, { - "name": "Int32Array", + "name": "undefined", + "kind": "var", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "undefined", + "kind": "propertyName" + } + ], + "documentation": [] + }, + { + "name": "URIError", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -72481,7 +69766,7 @@ "kind": "space" }, { - "text": "Int32Array", + "text": "URIError", "kind": "localName" }, { @@ -72497,7 +69782,7 @@ "kind": "space" }, { - "text": "Int32Array", + "text": "URIError", "kind": "localName" }, { @@ -72509,25 +69794,80 @@ "kind": "space" }, { - "text": "Int32ArrayConstructor", + "text": "URIErrorConstructor", "kind": "interfaceName" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "var", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "A typed array of 32-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" + "text": "var", + "kind": "keyword" } ] }, { - "name": "Uint32Array", - "kind": "var", - "kindModifiers": "declare", + "name": "void", + "kind": "keyword", + "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "void", + "kind": "keyword" + } + ] + }, + { + "name": "while", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "while", + "kind": "keyword" + } + ] + }, + { + "name": "with", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "with", + "kind": "keyword" + } + ] + }, + { + "name": "yield", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "yield", + "kind": "keyword" + } + ] + }, + { + "name": "escape", + "kind": "function", + "kindModifiers": "deprecated,declare", + "sortText": "z15", + "displayParts": [ + { + "text": "function", "kind": "keyword" }, { @@ -72535,24 +69875,32 @@ "kind": "space" }, { - "text": "Uint32Array", - "kind": "localName" + "text": "escape", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "string", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Uint32Array", - "kind": "localName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -72563,25 +69911,53 @@ "kind": "space" }, { - "text": "Uint32ArrayConstructor", - "kind": "interfaceName" + "text": "string", + "kind": "keyword" } ], "documentation": [ { - "text": "A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "text": "Computes a new string in which certain characters have been replaced by a hexadecimal escape sequence.", "kind": "text" } + ], + "tags": [ + { + "name": "deprecated", + "text": [ + { + "text": "A legacy feature for browser compatibility", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string value", + "kind": "text" + } + ] + } ] }, { - "name": "Float32Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "unescape", + "kind": "function", + "kindModifiers": "deprecated,declare", + "sortText": "z15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -72589,24 +69965,32 @@ "kind": "space" }, { - "text": "Float32Array", - "kind": "localName" + "text": "unescape", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "string", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Float32Array", - "kind": "localName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -72617,50 +70001,88 @@ "kind": "space" }, { - "text": "Float32ArrayConstructor", - "kind": "interfaceName" + "text": "string", + "kind": "keyword" } ], "documentation": [ { - "text": "A typed array of 32-bit float values. The contents are initialized to 0. If the requested number\r\nof bytes could not be allocated an exception is raised.", + "text": "Computes a new string in which hexadecimal escape sequences are replaced with the character that it represents.", "kind": "text" } - ] - }, - { - "name": "Float64Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ + ], + "tags": [ { - "text": "interface", - "kind": "keyword" + "name": "deprecated", + "text": [ + { + "text": "A legacy feature for browser compatibility", + "kind": "text" + } + ] }, { - "text": " ", - "kind": "space" - }, + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string value", + "kind": "text" + } + ] + } + ] + } + ] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/completionsCommentsClassMembers.ts", + "position": 1731, + "name": "56" + }, + "completionList": { + "isGlobalCompletion": false, + "isMemberCompletion": false, + "isNewIdentifierLocation": true, + "optionalReplacementSpan": { + "start": 1731, + "length": 5 + }, + "entries": [ + { + "name": "arguments", + "kind": "local var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { - "text": "Float64Array", - "kind": "localName" + "text": "(", + "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": "local var", + "kind": "text" }, { - "text": "var", - "kind": "keyword" + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Float64Array", - "kind": "localName" + "text": "arguments", + "kind": "propertyName" }, { "text": ":", @@ -72671,25 +70093,46 @@ "kind": "space" }, { - "text": "Float64ArrayConstructor", + "text": "IArguments", "kind": "interfaceName" } ], + "documentation": [] + }, + { + "name": "c1", + "kind": "class", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "c1", + "kind": "className" + } + ], "documentation": [ { - "text": "A typed array of 64-bit float values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", + "text": "This is comment for c1", "kind": "text" } ] }, { - "name": "Intl", - "kind": "module", - "kindModifiers": "declare", - "sortText": "15", + "name": "cProperties", + "kind": "class", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "namespace", + "text": "class", "kind": "keyword" }, { @@ -72697,20 +70140,20 @@ "kind": "space" }, { - "text": "Intl", - "kind": "moduleName" + "text": "cProperties", + "kind": "className" } ], "documentation": [] }, { - "name": "c1", - "kind": "class", + "name": "cProperties_i", + "kind": "var", "kindModifiers": "", "sortText": "11", "displayParts": [ { - "text": "class", + "text": "var", "kind": "keyword" }, { @@ -72718,16 +70161,44 @@ "kind": "space" }, { - "text": "c1", + "text": "cProperties_i", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "cProperties", "kind": "className" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "cWithConstructorProperty", + "kind": "class", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { - "text": "This is comment for c1", - "kind": "text" + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "cWithConstructorProperty", + "kind": "className" } - ] + ], + "documentation": [] }, { "name": "i1", @@ -72763,7 +70234,7 @@ "documentation": [] }, { - "name": "i1_p", + "name": "i1_c", "kind": "var", "kindModifiers": "", "sortText": "11", @@ -72777,7 +70248,7 @@ "kind": "space" }, { - "text": "i1_p", + "text": "i1_c", "kind": "localName" }, { @@ -72789,8 +70260,16 @@ "kind": "space" }, { - "text": "number", + "text": "typeof", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "c1", + "kind": "className" } ], "documentation": [] @@ -72865,7 +70344,7 @@ "documentation": [] }, { - "name": "i1_r", + "name": "i1_nc_p", "kind": "var", "kindModifiers": "", "sortText": "11", @@ -72879,7 +70358,7 @@ "kind": "space" }, { - "text": "i1_r", + "text": "i1_nc_p", "kind": "localName" }, { @@ -72898,7 +70377,7 @@ "documentation": [] }, { - "name": "i1_prop", + "name": "i1_ncf", "kind": "var", "kindModifiers": "", "sortText": "11", @@ -72912,7 +70391,7 @@ "kind": "space" }, { - "text": "i1_prop", + "text": "i1_ncf", "kind": "localName" }, { @@ -72923,6 +70402,42 @@ "text": " ", "kind": "space" }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "b", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, { "text": "number", "kind": "keyword" @@ -72931,7 +70446,7 @@ "documentation": [] }, { - "name": "i1_nc_p", + "name": "i1_ncprop", "kind": "var", "kindModifiers": "", "sortText": "11", @@ -72945,7 +70460,7 @@ "kind": "space" }, { - "text": "i1_nc_p", + "text": "i1_ncprop", "kind": "localName" }, { @@ -72964,7 +70479,7 @@ "documentation": [] }, { - "name": "i1_ncf", + "name": "i1_ncr", "kind": "var", "kindModifiers": "", "sortText": "11", @@ -72978,7 +70493,7 @@ "kind": "space" }, { - "text": "i1_ncf", + "text": "i1_ncr", "kind": "localName" }, { @@ -72990,12 +70505,29 @@ "kind": "space" }, { - "text": "(", - "kind": "punctuation" + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "i1_p", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "var", + "kind": "keyword" }, { - "text": "b", - "kind": "parameterName" + "text": " ", + "kind": "space" + }, + { + "text": "i1_p", + "kind": "localName" }, { "text": ":", @@ -73008,17 +70540,30 @@ { "text": "number", "kind": "keyword" - }, + } + ], + "documentation": [] + }, + { + "name": "i1_prop", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { - "text": ")", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "=>", + "text": "i1_prop", + "kind": "localName" + }, + { + "text": ":", "kind": "punctuation" }, { @@ -73033,7 +70578,7 @@ "documentation": [] }, { - "name": "i1_ncr", + "name": "i1_r", "kind": "var", "kindModifiers": "", "sortText": "11", @@ -73047,7 +70592,7 @@ "kind": "space" }, { - "text": "i1_ncr", + "text": "i1_r", "kind": "localName" }, { @@ -73066,7 +70611,7 @@ "documentation": [] }, { - "name": "i1_ncprop", + "name": "i1_s_f", "kind": "var", "kindModifiers": "", "sortText": "11", @@ -73080,7 +70625,7 @@ "kind": "space" }, { - "text": "i1_ncprop", + "text": "i1_s_f", "kind": "localName" }, { @@ -73091,6 +70636,42 @@ "text": " ", "kind": "space" }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "b", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, { "text": "number", "kind": "keyword" @@ -73099,7 +70680,7 @@ "documentation": [] }, { - "name": "i1_s_p", + "name": "i1_s_nc_p", "kind": "var", "kindModifiers": "", "sortText": "11", @@ -73113,7 +70694,7 @@ "kind": "space" }, { - "text": "i1_s_p", + "text": "i1_s_nc_p", "kind": "localName" }, { @@ -73132,7 +70713,7 @@ "documentation": [] }, { - "name": "i1_s_f", + "name": "i1_s_ncf", "kind": "var", "kindModifiers": "", "sortText": "11", @@ -73146,7 +70727,7 @@ "kind": "space" }, { - "text": "i1_s_f", + "text": "i1_s_ncf", "kind": "localName" }, { @@ -73201,7 +70782,7 @@ "documentation": [] }, { - "name": "i1_s_r", + "name": "i1_s_ncprop", "kind": "var", "kindModifiers": "", "sortText": "11", @@ -73215,7 +70796,7 @@ "kind": "space" }, { - "text": "i1_s_r", + "text": "i1_s_ncprop", "kind": "localName" }, { @@ -73234,7 +70815,7 @@ "documentation": [] }, { - "name": "i1_s_prop", + "name": "i1_s_ncr", "kind": "var", "kindModifiers": "", "sortText": "11", @@ -73248,7 +70829,7 @@ "kind": "space" }, { - "text": "i1_s_prop", + "text": "i1_s_ncr", "kind": "localName" }, { @@ -73267,7 +70848,7 @@ "documentation": [] }, { - "name": "i1_s_nc_p", + "name": "i1_s_p", "kind": "var", "kindModifiers": "", "sortText": "11", @@ -73281,7 +70862,7 @@ "kind": "space" }, { - "text": "i1_s_nc_p", + "text": "i1_s_p", "kind": "localName" }, { @@ -73300,7 +70881,7 @@ "documentation": [] }, { - "name": "i1_s_ncf", + "name": "i1_s_prop", "kind": "var", "kindModifiers": "", "sortText": "11", @@ -73314,7 +70895,7 @@ "kind": "space" }, { - "text": "i1_s_ncf", + "text": "i1_s_prop", "kind": "localName" }, { @@ -73326,12 +70907,29 @@ "kind": "space" }, { - "text": "(", - "kind": "punctuation" + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "i1_s_r", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "var", + "kind": "keyword" }, { - "text": "b", - "kind": "parameterName" + "text": " ", + "kind": "space" + }, + { + "text": "i1_s_r", + "kind": "localName" }, { "text": ":", @@ -73344,6 +70942,23 @@ { "text": "number", "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "value", + "kind": "parameter", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "parameter", + "kind": "text" }, { "text": ")", @@ -73354,7 +70969,11 @@ "kind": "space" }, { - "text": "=>", + "text": "value", + "kind": "parameterName" + }, + { + "text": ":", "kind": "punctuation" }, { @@ -73369,13 +70988,13 @@ "documentation": [] }, { - "name": "i1_s_ncr", + "name": "Array", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -73383,30 +71002,25 @@ "kind": "space" }, { - "text": "i1_s_ncr", + "text": "Array", "kind": "localName" }, { - "text": ":", + "text": "<", "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "T", + "kind": "typeParameterName" }, { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_s_ncprop", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ + "text": ">", + "kind": "punctuation" + }, + { + "text": "\n", + "kind": "lineBreak" + }, { "text": "var", "kind": "keyword" @@ -73416,7 +71030,7 @@ "kind": "space" }, { - "text": "i1_s_ncprop", + "text": "Array", "kind": "localName" }, { @@ -73428,20 +71042,20 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "ArrayConstructor", + "kind": "interfaceName" } ], "documentation": [] }, { - "name": "i1_c", + "name": "ArrayBuffer", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -73449,61 +71063,89 @@ "kind": "space" }, { - "text": "i1_c", + "text": "ArrayBuffer", "kind": "localName" }, { - "text": ":", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "typeof", - "kind": "keyword" + "text": "ArrayBuffer", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "c1", - "kind": "className" + "text": "ArrayBufferConstructor", + "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "Represents a raw buffer of binary data, which is used to store data for the\r\ndifferent typed arrays. ArrayBuffers cannot be read from or written to directly,\r\nbut can be passed to a typed array or DataView Object to interpret the raw\r\nbuffer as needed.", + "kind": "text" + } + ] }, { - "name": "cProperties", - "kind": "class", + "name": "as", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "class", + "text": "as", "kind": "keyword" - }, + } + ] + }, + { + "name": "async", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": " ", - "kind": "space" - }, + "text": "async", + "kind": "keyword" + } + ] + }, + { + "name": "await", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "cProperties", - "kind": "className" + "text": "await", + "kind": "keyword" } - ], - "documentation": [] + ] }, { - "name": "cProperties_i", + "name": "Boolean", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -73511,32 +71153,15 @@ "kind": "space" }, { - "text": "cProperties_i", + "text": "Boolean", "kind": "localName" }, { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, { - "text": "cProperties", - "kind": "className" - } - ], - "documentation": [] - }, - { - "name": "cWithConstructorProperty", - "kind": "class", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "class", + "text": "var", "kind": "keyword" }, { @@ -73544,29 +71169,20 @@ "kind": "space" }, { - "text": "cWithConstructorProperty", - "kind": "className" - } - ], - "documentation": [] - }, - { - "name": "undefined", - "kind": "var", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "Boolean", + "kind": "localName" + }, { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "undefined", - "kind": "propertyName" + "text": "BooleanConstructor", + "kind": "interfaceName" } ], "documentation": [] @@ -73644,495 +71260,613 @@ ] }, { - "name": "debugger", - "kind": "keyword", - "kindModifiers": "", + "name": "DataView", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "debugger", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "default", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "default", + "text": " ", + "kind": "space" + }, + { + "text": "DataView", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "DataView", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "DataViewConstructor", + "kind": "interfaceName" } - ] + ], + "documentation": [] }, { - "name": "delete", - "kind": "keyword", - "kindModifiers": "", + "name": "Date", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "delete", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "do", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "do", + "text": " ", + "kind": "space" + }, + { + "text": "Date", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Date", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "DateConstructor", + "kind": "interfaceName" } - ] - }, - { - "name": "else", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "else", - "kind": "keyword" + "text": "Enables basic storage and retrieval of dates and times.", + "kind": "text" } ] }, { - "name": "enum", + "name": "debugger", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "enum", + "text": "debugger", "kind": "keyword" } ] }, { - "name": "export", - "kind": "keyword", - "kindModifiers": "", + "name": "decodeURI", + "kind": "function", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "export", + "text": "function", "kind": "keyword" - } - ] - }, - { - "name": "extends", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "extends", + "text": " ", + "kind": "space" + }, + { + "text": "decodeURI", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "encodedURI", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", "kind": "keyword" - } - ] - }, - { - "name": "false", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "false", + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", "kind": "keyword" } - ] - }, - { - "name": "finally", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "finally", - "kind": "keyword" + "text": "Gets the unencoded version of an encoded Uniform Resource Identifier (URI).", + "kind": "text" } - ] - }, - { - "name": "for", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "tags": [ { - "text": "for", - "kind": "keyword" + "name": "param", + "text": [ + { + "text": "encodedURI", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI.", + "kind": "text" + } + ] } ] }, { - "name": "function", - "kind": "keyword", - "kindModifiers": "", + "name": "decodeURIComponent", + "kind": "function", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { "text": "function", "kind": "keyword" - } - ] - }, - { - "name": "if", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "if", - "kind": "keyword" - } - ] - }, - { - "name": "import", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "import", - "kind": "keyword" - } - ] - }, - { - "name": "in", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "decodeURIComponent", + "kind": "functionName" + }, { - "text": "in", - "kind": "keyword" - } - ] - }, - { - "name": "instanceof", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "(", + "kind": "punctuation" + }, { - "text": "instanceof", - "kind": "keyword" - } - ] - }, - { - "name": "new", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "encodedURIComponent", + "kind": "parameterName" + }, { - "text": "new", + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", "kind": "keyword" - } - ] - }, - { - "name": "null", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "null", + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", "kind": "keyword" } - ] - }, - { - "name": "return", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "return", - "kind": "keyword" + "text": "Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).", + "kind": "text" } - ] - }, - { - "name": "super", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "tags": [ { - "text": "super", - "kind": "keyword" + "name": "param", + "text": [ + { + "text": "encodedURIComponent", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI component.", + "kind": "text" + } + ] } ] }, { - "name": "switch", + "name": "default", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "switch", + "text": "default", "kind": "keyword" } ] }, { - "name": "this", + "name": "delete", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "this", + "text": "delete", "kind": "keyword" } ] }, { - "name": "throw", + "name": "do", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "throw", + "text": "do", "kind": "keyword" } ] }, { - "name": "true", + "name": "else", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "true", + "text": "else", "kind": "keyword" } ] }, { - "name": "try", - "kind": "keyword", - "kindModifiers": "", + "name": "encodeURI", + "kind": "function", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "try", + "text": "function", "kind": "keyword" - } - ] - }, - { - "name": "typeof", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "typeof", + "text": " ", + "kind": "space" + }, + { + "text": "encodeURI", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "uri", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", "kind": "keyword" - } - ] - }, - { - "name": "var", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "var", + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", "kind": "keyword" } - ] - }, - { - "name": "void", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "void", - "kind": "keyword" + "text": "Encodes a text string as a valid Uniform Resource Identifier (URI)", + "kind": "text" } - ] - }, - { - "name": "while", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "tags": [ { - "text": "while", - "kind": "keyword" + "name": "param", + "text": [ + { + "text": "uri", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI.", + "kind": "text" + } + ] } ] }, { - "name": "with", - "kind": "keyword", - "kindModifiers": "", + "name": "encodeURIComponent", + "kind": "function", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "with", + "text": "function", "kind": "keyword" - } - ] - }, - { - "name": "implements", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "implements", + "text": " ", + "kind": "space" + }, + { + "text": "encodeURIComponent", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "uriComponent", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", "kind": "keyword" - } - ] - }, - { - "name": "interface", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "interface", + "text": " ", + "kind": "space" + }, + { + "text": "|", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" - } - ] - }, - { - "name": "let", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "let", + "text": " ", + "kind": "space" + }, + { + "text": "|", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "boolean", "kind": "keyword" - } - ] - }, - { - "name": "package", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "package", + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", "kind": "keyword" } - ] - }, - { - "name": "yield", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "yield", - "kind": "keyword" + "text": "Encodes a text string as a valid component of a Uniform Resource Identifier (URI).", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "uriComponent", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI component.", + "kind": "text" + } + ] } ] }, { - "name": "as", + "name": "enum", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "as", + "text": "enum", "kind": "keyword" } ] }, { - "name": "async", - "kind": "keyword", - "kindModifiers": "", + "name": "Error", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "async", + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Error", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Error", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "ErrorConstructor", + "kind": "interfaceName" } - ] + ], + "documentation": [] }, { - "name": "await", - "kind": "keyword", - "kindModifiers": "", + "name": "eval", + "kind": "function", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "await", + "text": "function", "kind": "keyword" - } - ] - } - ] - } - }, - { - "marker": { - "fileName": "/tests/cases/fourslash/completionsCommentsClassMembers.ts", - "position": 1827, - "name": "59" - }, - "completionList": { - "isGlobalCompletion": false, - "isMemberCompletion": false, - "isNewIdentifierLocation": false, - "optionalReplacementSpan": { - "start": 1827, - "length": 1 - }, - "entries": [ - { - "name": "b", - "kind": "parameter", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "eval", + "kind": "functionName" + }, { "text": "(", "kind": "punctuation" }, { - "text": "parameter", - "kind": "text" + "text": "x", + "kind": "parameterName" }, { - "text": ")", + "text": ":", "kind": "punctuation" }, { @@ -74140,8 +71874,12 @@ "kind": "space" }, { - "text": "b", - "kind": "parameterName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -74152,37 +71890,69 @@ "kind": "space" }, { - "text": "number", + "text": "any", "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Evaluates JavaScript code and executes it.", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "x", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A String value that contains valid JavaScript code.", + "kind": "text" + } + ] + } + ] }, { - "name": "arguments", - "kind": "local var", - "kindModifiers": "", - "sortText": "11", + "name": "EvalError", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "(", - "kind": "punctuation" + "text": "interface", + "kind": "keyword" }, { - "text": "local var", - "kind": "text" + "text": " ", + "kind": "space" }, { - "text": ")", - "kind": "punctuation" + "text": "EvalError", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "arguments", - "kind": "propertyName" + "text": "EvalError", + "kind": "localName" }, { "text": ":", @@ -74193,74 +71963,93 @@ "kind": "space" }, { - "text": "IArguments", + "text": "EvalErrorConstructor", "kind": "interfaceName" } ], "documentation": [] }, { - "name": "globalThis", - "kind": "module", + "name": "export", + "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "module", + "text": "export", "kind": "keyword" - }, + } + ] + }, + { + "name": "extends", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": " ", - "kind": "space" - }, + "text": "extends", + "kind": "keyword" + } + ] + }, + { + "name": "false", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "globalThis", - "kind": "moduleName" + "text": "false", + "kind": "keyword" } - ], - "documentation": [] + ] }, { - "name": "eval", - "kind": "function", + "name": "finally", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "finally", + "kind": "keyword" + } + ] + }, + { + "name": "Float32Array", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { "text": " ", "kind": "space" }, - { - "text": "eval", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" + { + "text": "Float32Array", + "kind": "localName" }, { - "text": "x", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "Float32Array", + "kind": "localName" }, { "text": ":", @@ -74271,44 +72060,25 @@ "kind": "space" }, { - "text": "any", - "kind": "keyword" + "text": "Float32ArrayConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "Evaluates JavaScript code and executes it.", + "text": "A typed array of 32-bit float values. The contents are initialized to 0. If the requested number\r\nof bytes could not be allocated an exception is raised.", "kind": "text" } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "x", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A String value that contains valid JavaScript code.", - "kind": "text" - } - ] - } ] }, { - "name": "parseInt", - "kind": "function", + "name": "Float64Array", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -74316,60 +72086,24 @@ "kind": "space" }, { - "text": "parseInt", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "string", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" + "text": "Float64Array", + "kind": "localName" }, { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, { - "text": "string", + "text": "var", "kind": "keyword" }, - { - "text": ",", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "radix", - "kind": "parameterName" - }, - { - "text": "?", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "Float64Array", + "kind": "localName" }, { "text": ":", @@ -74380,61 +72114,49 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "Float64ArrayConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "Converts a string to an integer.", + "text": "A typed array of 64-bit float values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", "kind": "text" } - ], - "tags": [ + ] + }, + { + "name": "for", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string to convert into a number.", - "kind": "text" - } - ] - }, + "text": "for", + "kind": "keyword" + } + ] + }, + { + "name": "function", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "radix", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value between 2 and 36 that specifies the base of the number in `string`.\r\nIf this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal.\r\nAll other strings are considered decimal.", - "kind": "text" - } - ] + "text": "function", + "kind": "keyword" } ] }, { - "name": "parseFloat", - "kind": "function", + "name": "Function", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -74442,32 +72164,24 @@ "kind": "space" }, { - "text": "parseFloat", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" + "text": "Function", + "kind": "localName" }, { - "text": "string", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "Function", + "kind": "localName" }, { "text": ":", @@ -74478,44 +72192,25 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "FunctionConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "Converts a string to a floating-point number.", + "text": "Creates a new function.", "kind": "text" } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string that contains a floating-point number.", - "kind": "text" - } - ] - } ] }, { - "name": "isNaN", - "kind": "function", - "kindModifiers": "declare", + "name": "globalThis", + "kind": "module", + "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "module", "kind": "keyword" }, { @@ -74523,32 +72218,77 @@ "kind": "space" }, { - "text": "isNaN", - "kind": "functionName" - }, + "text": "globalThis", + "kind": "moduleName" + } + ], + "documentation": [] + }, + { + "name": "if", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "(", - "kind": "punctuation" - }, + "text": "if", + "kind": "keyword" + } + ] + }, + { + "name": "implements", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "number", - "kind": "parameterName" - }, + "text": "implements", + "kind": "keyword" + } + ] + }, + { + "name": "import", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": ":", - "kind": "punctuation" + "text": "import", + "kind": "keyword" + } + ] + }, + { + "name": "in", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "in", + "kind": "keyword" + } + ] + }, + { + "name": "Infinity", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "Infinity", + "kind": "localName" }, { "text": ":", @@ -74559,44 +72299,32 @@ "kind": "space" }, { - "text": "boolean", + "text": "number", "kind": "keyword" } ], - "documentation": [ - { - "text": "Returns a Boolean value that indicates whether a value is the reserved value NaN (not a number).", - "kind": "text" - } - ], - "tags": [ + "documentation": [] + }, + { + "name": "instanceof", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "number", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A numeric value.", - "kind": "text" - } - ] + "text": "instanceof", + "kind": "keyword" } ] }, { - "name": "isFinite", - "kind": "function", + "name": "Int16Array", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -74604,32 +72332,24 @@ "kind": "space" }, { - "text": "isFinite", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" + "text": "Int16Array", + "kind": "localName" }, { - "text": "number", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "Int16Array", + "kind": "localName" }, { "text": ":", @@ -74640,44 +72360,25 @@ "kind": "space" }, { - "text": "boolean", - "kind": "keyword" + "text": "Int16ArrayConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "Determines whether a supplied number is finite.", + "text": "A typed array of 16-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", "kind": "text" } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "number", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Any numeric value.", - "kind": "text" - } - ] - } ] }, { - "name": "decodeURI", - "kind": "function", + "name": "Int32Array", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -74685,32 +72386,24 @@ "kind": "space" }, { - "text": "decodeURI", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" + "text": "Int32Array", + "kind": "localName" }, { - "text": "encodedURI", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "Int32Array", + "kind": "localName" }, { "text": ":", @@ -74721,44 +72414,25 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "Int32ArrayConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "Gets the unencoded version of an encoded Uniform Resource Identifier (URI).", + "text": "A typed array of 32-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", "kind": "text" } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "encodedURI", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI.", - "kind": "text" - } - ] - } ] }, { - "name": "decodeURIComponent", - "kind": "function", + "name": "Int8Array", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -74766,32 +72440,24 @@ "kind": "space" }, { - "text": "decodeURIComponent", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" + "text": "Int8Array", + "kind": "localName" }, { - "text": "encodedURIComponent", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "Int8Array", + "kind": "localName" }, { "text": ":", @@ -74802,38 +72468,52 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "Int8ArrayConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).", - "kind": "text" + "text": "A typed array of 8-bit integer values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] + }, + { + "name": "interface", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" + } + ] + }, + { + "name": "Intl", + "kind": "module", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Intl", + "kind": "moduleName" } ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "encodedURIComponent", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI component.", - "kind": "text" - } - ] - } - ] + "documentation": [] }, { - "name": "encodeURI", + "name": "isFinite", "kind": "function", "kindModifiers": "declare", "sortText": "15", @@ -74847,7 +72527,7 @@ "kind": "space" }, { - "text": "encodeURI", + "text": "isFinite", "kind": "functionName" }, { @@ -74855,7 +72535,7 @@ "kind": "punctuation" }, { - "text": "uri", + "text": "number", "kind": "parameterName" }, { @@ -74867,7 +72547,7 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" }, { @@ -74883,13 +72563,13 @@ "kind": "space" }, { - "text": "string", + "text": "boolean", "kind": "keyword" } ], "documentation": [ { - "text": "Encodes a text string as a valid Uniform Resource Identifier (URI)", + "text": "Determines whether a supplied number is finite.", "kind": "text" } ], @@ -74898,7 +72578,7 @@ "name": "param", "text": [ { - "text": "uri", + "text": "number", "kind": "parameterName" }, { @@ -74906,7 +72586,7 @@ "kind": "space" }, { - "text": "A value representing an encoded URI.", + "text": "Any numeric value.", "kind": "text" } ] @@ -74914,7 +72594,7 @@ ] }, { - "name": "encodeURIComponent", + "name": "isNaN", "kind": "function", "kindModifiers": "declare", "sortText": "15", @@ -74928,7 +72608,7 @@ "kind": "space" }, { - "text": "encodeURIComponent", + "text": "isNaN", "kind": "functionName" }, { @@ -74936,7 +72616,7 @@ "kind": "punctuation" }, { - "text": "uriComponent", + "text": "number", "kind": "parameterName" }, { @@ -74947,42 +72627,10 @@ "text": " ", "kind": "space" }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "|", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, { "text": "number", "kind": "keyword" }, - { - "text": " ", - "kind": "space" - }, - { - "text": "|", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "boolean", - "kind": "keyword" - }, { "text": ")", "kind": "punctuation" @@ -74996,13 +72644,13 @@ "kind": "space" }, { - "text": "string", + "text": "boolean", "kind": "keyword" } ], "documentation": [ { - "text": "Encodes a text string as a valid component of a Uniform Resource Identifier (URI).", + "text": "Returns a Boolean value that indicates whether a value is the reserved value NaN (not a number).", "kind": "text" } ], @@ -75011,7 +72659,7 @@ "name": "param", "text": [ { - "text": "uriComponent", + "text": "number", "kind": "parameterName" }, { @@ -75019,7 +72667,7 @@ "kind": "space" }, { - "text": "A value representing an encoded URI component.", + "text": "A numeric value.", "kind": "text" } ] @@ -75027,13 +72675,13 @@ ] }, { - "name": "escape", - "kind": "function", - "kindModifiers": "deprecated,declare", - "sortText": "23", + "name": "JSON", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -75041,32 +72689,24 @@ "kind": "space" }, { - "text": "escape", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" + "text": "JSON", + "kind": "localName" }, { - "text": "string", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "JSON", + "kind": "localName" }, { "text": ":", @@ -75077,53 +72717,37 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "JSON", + "kind": "localName" } ], "documentation": [ { - "text": "Computes a new string in which certain characters have been replaced by a hexadecimal escape sequence.", + "text": "An intrinsic object that provides functions to convert JavaScript values to and from the JavaScript Object Notation (JSON) format.", "kind": "text" } - ], - "tags": [ - { - "name": "deprecated", - "text": [ - { - "text": "A legacy feature for browser compatibility", - "kind": "text" - } - ] - }, + ] + }, + { + "name": "let", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string value", - "kind": "text" - } - ] + "text": "let", + "kind": "keyword" } ] }, { - "name": "unescape", - "kind": "function", - "kindModifiers": "deprecated,declare", - "sortText": "23", + "name": "Math", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -75131,32 +72755,24 @@ "kind": "space" }, { - "text": "unescape", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" + "text": "Math", + "kind": "localName" }, { - "text": "string", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "Math", + "kind": "localName" }, { "text": ":", @@ -75167,43 +72783,15 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "Math", + "kind": "localName" } ], "documentation": [ { - "text": "Computes a new string in which hexadecimal escape sequences are replaced with the character that it represents.", + "text": "An intrinsic object that provides basic mathematics functionality and constants.", "kind": "text" } - ], - "tags": [ - { - "name": "deprecated", - "text": [ - { - "text": "A legacy feature for browser compatibility", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string value", - "kind": "text" - } - ] - } ] }, { @@ -75240,40 +72828,31 @@ "documentation": [] }, { - "name": "Infinity", - "kind": "var", - "kindModifiers": "declare", + "name": "new", + "kind": "keyword", + "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "var", + "text": "new", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Infinity", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, + } + ] + }, + { + "name": "null", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "number", + "text": "null", "kind": "keyword" } - ], - "documentation": [] + ] }, { - "name": "Object", + "name": "Number", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -75287,7 +72866,7 @@ "kind": "space" }, { - "text": "Object", + "text": "Number", "kind": "localName" }, { @@ -75303,7 +72882,7 @@ "kind": "space" }, { - "text": "Object", + "text": "Number", "kind": "localName" }, { @@ -75315,19 +72894,19 @@ "kind": "space" }, { - "text": "ObjectConstructor", + "text": "NumberConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "Provides functionality common to all JavaScript objects.", + "text": "An object that represents a number of any kind. All JavaScript numbers are 64-bit floating-point numbers.", "kind": "text" } ] }, { - "name": "Function", + "name": "Object", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -75341,7 +72920,7 @@ "kind": "space" }, { - "text": "Function", + "text": "Object", "kind": "localName" }, { @@ -75357,7 +72936,7 @@ "kind": "space" }, { - "text": "Function", + "text": "Object", "kind": "localName" }, { @@ -75369,25 +72948,37 @@ "kind": "space" }, { - "text": "FunctionConstructor", + "text": "ObjectConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "Creates a new function.", + "text": "Provides functionality common to all JavaScript objects.", "kind": "text" } ] }, { - "name": "String", - "kind": "var", + "name": "package", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "package", + "kind": "keyword" + } + ] + }, + { + "name": "parseFloat", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -75395,24 +72986,32 @@ "kind": "space" }, { - "text": "String", - "kind": "localName" + "text": "parseFloat", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "string", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "String", - "kind": "localName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -75423,25 +73022,44 @@ "kind": "space" }, { - "text": "StringConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], "documentation": [ { - "text": "Allows manipulation and formatting of text strings and determination and location of substrings within strings.", + "text": "Converts a string to a floating-point number.", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string that contains a floating-point number.", + "kind": "text" + } + ] + } ] }, { - "name": "Boolean", - "kind": "var", + "name": "parseInt", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -75449,24 +73067,44 @@ "kind": "space" }, { - "text": "Boolean", - "kind": "localName" + "text": "parseInt", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", + "text": "string", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", "kind": "keyword" }, + { + "text": ",", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "Boolean", - "kind": "localName" + "text": "radix", + "kind": "parameterName" + }, + { + "text": "?", + "kind": "punctuation" }, { "text": ":", @@ -75477,14 +73115,71 @@ "kind": "space" }, { - "text": "BooleanConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Converts a string to an integer.", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string to convert into a number.", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "radix", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value between 2 and 36 that specifies the base of the number in `string`.\r\nIf this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal.\r\nAll other strings are considered decimal.", + "kind": "text" + } + ] + } + ] }, { - "name": "Number", + "name": "RangeError", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -75498,7 +73193,7 @@ "kind": "space" }, { - "text": "Number", + "text": "RangeError", "kind": "localName" }, { @@ -75514,7 +73209,7 @@ "kind": "space" }, { - "text": "Number", + "text": "RangeError", "kind": "localName" }, { @@ -75526,19 +73221,14 @@ "kind": "space" }, { - "text": "NumberConstructor", + "text": "RangeErrorConstructor", "kind": "interfaceName" } ], - "documentation": [ - { - "text": "An object that represents a number of any kind. All JavaScript numbers are 64-bit floating-point numbers.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "Math", + "name": "ReferenceError", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -75552,7 +73242,7 @@ "kind": "space" }, { - "text": "Math", + "text": "ReferenceError", "kind": "localName" }, { @@ -75568,7 +73258,7 @@ "kind": "space" }, { - "text": "Math", + "text": "ReferenceError", "kind": "localName" }, { @@ -75580,19 +73270,14 @@ "kind": "space" }, { - "text": "Math", - "kind": "localName" + "text": "ReferenceErrorConstructor", + "kind": "interfaceName" } ], - "documentation": [ - { - "text": "An intrinsic object that provides basic mathematics functionality and constants.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "Date", + "name": "RegExp", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -75606,7 +73291,7 @@ "kind": "space" }, { - "text": "Date", + "text": "RegExp", "kind": "localName" }, { @@ -75622,7 +73307,7 @@ "kind": "space" }, { - "text": "Date", + "text": "RegExp", "kind": "localName" }, { @@ -75634,19 +73319,26 @@ "kind": "space" }, { - "text": "DateConstructor", + "text": "RegExpConstructor", "kind": "interfaceName" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "return", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "Enables basic storage and retrieval of dates and times.", - "kind": "text" + "text": "return", + "kind": "keyword" } ] }, { - "name": "RegExp", + "name": "String", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -75660,7 +73352,7 @@ "kind": "space" }, { - "text": "RegExp", + "text": "String", "kind": "localName" }, { @@ -75676,7 +73368,7 @@ "kind": "space" }, { - "text": "RegExp", + "text": "String", "kind": "localName" }, { @@ -75688,14 +73380,43 @@ "kind": "space" }, { - "text": "RegExpConstructor", + "text": "StringConstructor", "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "Allows manipulation and formatting of text strings and determination and location of substrings within strings.", + "kind": "text" + } + ] }, { - "name": "Error", + "name": "super", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "super", + "kind": "keyword" + } + ] + }, + { + "name": "switch", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "switch", + "kind": "keyword" + } + ] + }, + { + "name": "SyntaxError", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -75709,7 +73430,7 @@ "kind": "space" }, { - "text": "Error", + "text": "SyntaxError", "kind": "localName" }, { @@ -75725,7 +73446,7 @@ "kind": "space" }, { - "text": "Error", + "text": "SyntaxError", "kind": "localName" }, { @@ -75737,14 +73458,62 @@ "kind": "space" }, { - "text": "ErrorConstructor", + "text": "SyntaxErrorConstructor", "kind": "interfaceName" } ], "documentation": [] }, { - "name": "EvalError", + "name": "this", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "this", + "kind": "keyword" + } + ] + }, + { + "name": "throw", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "throw", + "kind": "keyword" + } + ] + }, + { + "name": "true", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "true", + "kind": "keyword" + } + ] + }, + { + "name": "try", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "try", + "kind": "keyword" + } + ] + }, + { + "name": "TypeError", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -75758,7 +73527,7 @@ "kind": "space" }, { - "text": "EvalError", + "text": "TypeError", "kind": "localName" }, { @@ -75774,7 +73543,7 @@ "kind": "space" }, { - "text": "EvalError", + "text": "TypeError", "kind": "localName" }, { @@ -75786,14 +73555,26 @@ "kind": "space" }, { - "text": "EvalErrorConstructor", + "text": "TypeErrorConstructor", "kind": "interfaceName" } ], "documentation": [] }, { - "name": "RangeError", + "name": "typeof", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "typeof", + "kind": "keyword" + } + ] + }, + { + "name": "Uint16Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -75807,7 +73588,7 @@ "kind": "space" }, { - "text": "RangeError", + "text": "Uint16Array", "kind": "localName" }, { @@ -75823,7 +73604,7 @@ "kind": "space" }, { - "text": "RangeError", + "text": "Uint16Array", "kind": "localName" }, { @@ -75835,14 +73616,19 @@ "kind": "space" }, { - "text": "RangeErrorConstructor", + "text": "Uint16ArrayConstructor", "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] }, { - "name": "ReferenceError", + "name": "Uint32Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -75856,7 +73642,7 @@ "kind": "space" }, { - "text": "ReferenceError", + "text": "Uint32Array", "kind": "localName" }, { @@ -75872,7 +73658,7 @@ "kind": "space" }, { - "text": "ReferenceError", + "text": "Uint32Array", "kind": "localName" }, { @@ -75884,14 +73670,19 @@ "kind": "space" }, { - "text": "ReferenceErrorConstructor", + "text": "Uint32ArrayConstructor", "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] }, { - "name": "SyntaxError", + "name": "Uint8Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -75905,7 +73696,7 @@ "kind": "space" }, { - "text": "SyntaxError", + "text": "Uint8Array", "kind": "localName" }, { @@ -75921,7 +73712,7 @@ "kind": "space" }, { - "text": "SyntaxError", + "text": "Uint8Array", "kind": "localName" }, { @@ -75933,14 +73724,19 @@ "kind": "space" }, { - "text": "SyntaxErrorConstructor", + "text": "Uint8ArrayConstructor", "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] }, { - "name": "TypeError", + "name": "Uint8ClampedArray", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -75954,7 +73750,7 @@ "kind": "space" }, { - "text": "TypeError", + "text": "Uint8ClampedArray", "kind": "localName" }, { @@ -75970,7 +73766,7 @@ "kind": "space" }, { - "text": "TypeError", + "text": "Uint8ClampedArray", "kind": "localName" }, { @@ -75982,10 +73778,36 @@ "kind": "space" }, { - "text": "TypeErrorConstructor", + "text": "Uint8ClampedArrayConstructor", "kind": "interfaceName" } ], + "documentation": [ + { + "text": "A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0.\r\nIf the requested number of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] + }, + { + "name": "undefined", + "kind": "var", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "undefined", + "kind": "propertyName" + } + ], "documentation": [] }, { @@ -76038,13 +73860,73 @@ "documentation": [] }, { - "name": "JSON", - "kind": "var", - "kindModifiers": "declare", + "name": "var", + "kind": "keyword", + "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "var", + "kind": "keyword" + } + ] + }, + { + "name": "void", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "void", + "kind": "keyword" + } + ] + }, + { + "name": "while", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "while", + "kind": "keyword" + } + ] + }, + { + "name": "with", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "with", + "kind": "keyword" + } + ] + }, + { + "name": "yield", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "yield", + "kind": "keyword" + } + ] + }, + { + "name": "escape", + "kind": "function", + "kindModifiers": "deprecated,declare", + "sortText": "z15", + "displayParts": [ + { + "text": "function", "kind": "keyword" }, { @@ -76052,24 +73934,32 @@ "kind": "space" }, { - "text": "JSON", - "kind": "localName" + "text": "escape", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "string", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "JSON", - "kind": "localName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -76080,25 +73970,53 @@ "kind": "space" }, { - "text": "JSON", - "kind": "localName" + "text": "string", + "kind": "keyword" } ], "documentation": [ { - "text": "An intrinsic object that provides functions to convert JavaScript values to and from the JavaScript Object Notation (JSON) format.", + "text": "Computes a new string in which certain characters have been replaced by a hexadecimal escape sequence.", "kind": "text" } + ], + "tags": [ + { + "name": "deprecated", + "text": [ + { + "text": "A legacy feature for browser compatibility", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string value", + "kind": "text" + } + ] + } ] }, { - "name": "Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "unescape", + "kind": "function", + "kindModifiers": "deprecated,declare", + "sortText": "z15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -76106,36 +74024,124 @@ "kind": "space" }, { - "text": "Array", - "kind": "localName" + "text": "unescape", + "kind": "functionName" }, { - "text": "<", + "text": "(", "kind": "punctuation" }, { - "text": "T", - "kind": "typeParameterName" + "text": "string", + "kind": "parameterName" }, { - "text": ">", + "text": ":", "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": " ", + "kind": "space" }, { - "text": "var", + "text": "string", "kind": "keyword" }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "Array", - "kind": "localName" + "text": "string", + "kind": "keyword" + } + ], + "documentation": [ + { + "text": "Computes a new string in which hexadecimal escape sequences are replaced with the character that it represents.", + "kind": "text" + } + ], + "tags": [ + { + "name": "deprecated", + "text": [ + { + "text": "A legacy feature for browser compatibility", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string value", + "kind": "text" + } + ] + } + ] + } + ] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/completionsCommentsClassMembers.ts", + "position": 1827, + "name": "59" + }, + "completionList": { + "isGlobalCompletion": false, + "isMemberCompletion": false, + "isNewIdentifierLocation": false, + "optionalReplacementSpan": { + "start": 1827, + "length": 1 + }, + "entries": [ + { + "name": "arguments", + "kind": "local var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "local var", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "arguments", + "kind": "propertyName" }, { "text": ":", @@ -76146,74 +74152,87 @@ "kind": "space" }, { - "text": "ArrayConstructor", + "text": "IArguments", "kind": "interfaceName" } ], "documentation": [] }, { - "name": "ArrayBuffer", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "b", + "kind": "parameter", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", - "kind": "keyword" + "text": "(", + "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "parameter", + "kind": "text" }, { - "text": "ArrayBuffer", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": " ", + "kind": "space" }, { - "text": "var", - "kind": "keyword" + "text": "b", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "ArrayBuffer", - "kind": "localName" - }, + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "c1", + "kind": "class", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { - "text": ":", - "kind": "punctuation" + "text": "class", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "ArrayBufferConstructor", - "kind": "interfaceName" + "text": "c1", + "kind": "className" } ], "documentation": [ { - "text": "Represents a raw buffer of binary data, which is used to store data for the\r\ndifferent typed arrays. ArrayBuffers cannot be read from or written to directly,\r\nbut can be passed to a typed array or DataView Object to interpret the raw\r\nbuffer as needed.", + "text": "This is comment for c1", "kind": "text" } ] }, { - "name": "DataView", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "cProperties", + "kind": "class", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "class", "kind": "keyword" }, { @@ -76221,13 +74240,18 @@ "kind": "space" }, { - "text": "DataView", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, + "text": "cProperties", + "kind": "className" + } + ], + "documentation": [] + }, + { + "name": "cProperties_i", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { "text": "var", "kind": "keyword" @@ -76237,7 +74261,7 @@ "kind": "space" }, { - "text": "DataView", + "text": "cProperties_i", "kind": "localName" }, { @@ -76249,20 +74273,20 @@ "kind": "space" }, { - "text": "DataViewConstructor", - "kind": "interfaceName" + "text": "cProperties", + "kind": "className" } ], "documentation": [] }, { - "name": "Int8Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "cWithConstructorProperty", + "kind": "class", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "class", "kind": "keyword" }, { @@ -76270,13 +74294,18 @@ "kind": "space" }, { - "text": "Int8Array", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, + "text": "cWithConstructorProperty", + "kind": "className" + } + ], + "documentation": [] + }, + { + "name": "i1", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { "text": "var", "kind": "keyword" @@ -76286,7 +74315,7 @@ "kind": "space" }, { - "text": "Int8Array", + "text": "i1", "kind": "localName" }, { @@ -76298,25 +74327,20 @@ "kind": "space" }, { - "text": "Int8ArrayConstructor", - "kind": "interfaceName" + "text": "c1", + "kind": "className" } ], - "documentation": [ - { - "text": "A typed array of 8-bit integer values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "Uint8Array", + "name": "i1_c", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "var", "kind": "keyword" }, { @@ -76324,53 +74348,40 @@ "kind": "space" }, { - "text": "Uint8Array", + "text": "i1_c", "kind": "localName" }, { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Uint8Array", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" + "text": "typeof", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "Uint8ArrayConstructor", - "kind": "interfaceName" + "text": "c1", + "kind": "className" } ], - "documentation": [ - { - "text": "A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "Uint8ClampedArray", + "name": "i1_f", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "var", "kind": "keyword" }, { @@ -76378,24 +74389,24 @@ "kind": "space" }, { - "text": "Uint8ClampedArray", + "text": "i1_f", "kind": "localName" }, { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Uint8ClampedArray", - "kind": "localName" + "text": "(", + "kind": "punctuation" + }, + { + "text": "b", + "kind": "parameterName" }, { "text": ":", @@ -76406,39 +74417,38 @@ "kind": "space" }, { - "text": "Uint8ClampedArrayConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0.\r\nIf the requested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] - }, - { - "name": "Int16Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", + "text": "number", "kind": "keyword" }, + { + "text": ")", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "Int16Array", - "kind": "localName" + "text": "=>", + "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": " ", + "kind": "space" }, + { + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "i1_nc_p", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { "text": "var", "kind": "keyword" @@ -76448,7 +74458,7 @@ "kind": "space" }, { - "text": "Int16Array", + "text": "i1_nc_p", "kind": "localName" }, { @@ -76460,25 +74470,20 @@ "kind": "space" }, { - "text": "Int16ArrayConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], - "documentation": [ - { - "text": "A typed array of 16-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "Uint16Array", + "name": "i1_ncf", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "var", "kind": "keyword" }, { @@ -76486,24 +74491,24 @@ "kind": "space" }, { - "text": "Uint16Array", + "text": "i1_ncf", "kind": "localName" }, { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Uint16Array", - "kind": "localName" + "text": "(", + "kind": "punctuation" + }, + { + "text": "b", + "kind": "parameterName" }, { "text": ":", @@ -76514,39 +74519,38 @@ "kind": "space" }, { - "text": "Uint16ArrayConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] - }, - { - "name": "Int32Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", + "text": "number", "kind": "keyword" }, + { + "text": ")", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "Int32Array", - "kind": "localName" + "text": "=>", + "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": " ", + "kind": "space" }, + { + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "i1_ncprop", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { "text": "var", "kind": "keyword" @@ -76556,7 +74560,7 @@ "kind": "space" }, { - "text": "Int32Array", + "text": "i1_ncprop", "kind": "localName" }, { @@ -76568,25 +74572,20 @@ "kind": "space" }, { - "text": "Int32ArrayConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], - "documentation": [ - { - "text": "A typed array of 32-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "Uint32Array", + "name": "i1_ncr", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "var", "kind": "keyword" }, { @@ -76594,13 +74593,30 @@ "kind": "space" }, { - "text": "Uint32Array", + "text": "i1_ncr", "kind": "localName" }, { - "text": "\n", - "kind": "lineBreak" + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" }, + { + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "i1_p", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { "text": "var", "kind": "keyword" @@ -76610,7 +74626,7 @@ "kind": "space" }, { - "text": "Uint32Array", + "text": "i1_p", "kind": "localName" }, { @@ -76622,25 +74638,20 @@ "kind": "space" }, { - "text": "Uint32ArrayConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], - "documentation": [ - { - "text": "A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "Float32Array", + "name": "i1_prop", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "var", "kind": "keyword" }, { @@ -76648,13 +74659,30 @@ "kind": "space" }, { - "text": "Float32Array", + "text": "i1_prop", "kind": "localName" }, { - "text": "\n", - "kind": "lineBreak" + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" }, + { + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "i1_r", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { "text": "var", "kind": "keyword" @@ -76664,7 +74692,7 @@ "kind": "space" }, { - "text": "Float32Array", + "text": "i1_r", "kind": "localName" }, { @@ -76676,25 +74704,20 @@ "kind": "space" }, { - "text": "Float32ArrayConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], - "documentation": [ - { - "text": "A typed array of 32-bit float values. The contents are initialized to 0. If the requested number\r\nof bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "Float64Array", + "name": "i1_s_f", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "var", "kind": "keyword" }, { @@ -76702,24 +74725,24 @@ "kind": "space" }, { - "text": "Float64Array", + "text": "i1_s_f", "kind": "localName" }, { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Float64Array", - "kind": "localName" + "text": "(", + "kind": "punctuation" + }, + { + "text": "b", + "kind": "parameterName" }, { "text": ":", @@ -76730,66 +74753,34 @@ "kind": "space" }, { - "text": "Float64ArrayConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "A typed array of 64-bit float values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] - }, - { - "name": "Intl", - "kind": "module", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "namespace", + "text": "number", "kind": "keyword" }, + { + "text": ")", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "Intl", - "kind": "moduleName" - } - ], - "documentation": [] - }, - { - "name": "c1", - "kind": "class", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "class", - "kind": "keyword" + "text": "=>", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "c1", - "kind": "className" + "text": "number", + "kind": "keyword" } ], - "documentation": [ - { - "text": "This is comment for c1", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "i1", + "name": "i1_s_nc_p", "kind": "var", "kindModifiers": "", "sortText": "11", @@ -76803,7 +74794,7 @@ "kind": "space" }, { - "text": "i1", + "text": "i1_s_nc_p", "kind": "localName" }, { @@ -76815,14 +74806,14 @@ "kind": "space" }, { - "text": "c1", - "kind": "className" + "text": "number", + "kind": "keyword" } ], "documentation": [] }, { - "name": "i1_p", + "name": "i1_s_ncf", "kind": "var", "kindModifiers": "", "sortText": "11", @@ -76836,7 +74827,7 @@ "kind": "space" }, { - "text": "i1_p", + "text": "i1_s_ncf", "kind": "localName" }, { @@ -76847,6 +74838,42 @@ "text": " ", "kind": "space" }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "b", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, { "text": "number", "kind": "keyword" @@ -76855,7 +74882,7 @@ "documentation": [] }, { - "name": "i1_f", + "name": "i1_s_ncprop", "kind": "var", "kindModifiers": "", "sortText": "11", @@ -76869,7 +74896,7 @@ "kind": "space" }, { - "text": "i1_f", + "text": "i1_s_ncprop", "kind": "localName" }, { @@ -76880,36 +74907,33 @@ "text": " ", "kind": "space" }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "b", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, { "text": "number", "kind": "keyword" - }, + } + ], + "documentation": [] + }, + { + "name": "i1_s_ncr", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { - "text": ")", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "=>", + "text": "i1_s_ncr", + "kind": "localName" + }, + { + "text": ":", "kind": "punctuation" }, { @@ -76924,7 +74948,7 @@ "documentation": [] }, { - "name": "i1_r", + "name": "i1_s_p", "kind": "var", "kindModifiers": "", "sortText": "11", @@ -76938,7 +74962,7 @@ "kind": "space" }, { - "text": "i1_r", + "text": "i1_s_p", "kind": "localName" }, { @@ -76957,7 +74981,7 @@ "documentation": [] }, { - "name": "i1_prop", + "name": "i1_s_prop", "kind": "var", "kindModifiers": "", "sortText": "11", @@ -76971,7 +74995,7 @@ "kind": "space" }, { - "text": "i1_prop", + "text": "i1_s_prop", "kind": "localName" }, { @@ -76990,7 +75014,7 @@ "documentation": [] }, { - "name": "i1_nc_p", + "name": "i1_s_r", "kind": "var", "kindModifiers": "", "sortText": "11", @@ -77004,7 +75028,7 @@ "kind": "space" }, { - "text": "i1_nc_p", + "text": "i1_s_r", "kind": "localName" }, { @@ -77023,13 +75047,13 @@ "documentation": [] }, { - "name": "i1_ncf", + "name": "Array", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -77037,47 +75061,39 @@ "kind": "space" }, { - "text": "i1_ncf", + "text": "Array", "kind": "localName" }, { - "text": ":", + "text": "<", "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "T", + "kind": "typeParameterName" }, { - "text": "(", + "text": ">", "kind": "punctuation" }, { - "text": "b", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "Array", + "kind": "localName" }, { - "text": "=>", + "text": ":", "kind": "punctuation" }, { @@ -77085,18 +75101,34 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "ArrayConstructor", + "kind": "interfaceName" } ], "documentation": [] }, { - "name": "i1_ncr", + "name": "ArrayBuffer", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "ArrayBuffer", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, { "text": "var", "kind": "keyword" @@ -77106,7 +75138,7 @@ "kind": "space" }, { - "text": "i1_ncr", + "text": "ArrayBuffer", "kind": "localName" }, { @@ -77118,18 +75150,75 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "ArrayBufferConstructor", + "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "Represents a raw buffer of binary data, which is used to store data for the\r\ndifferent typed arrays. ArrayBuffers cannot be read from or written to directly,\r\nbut can be passed to a typed array or DataView Object to interpret the raw\r\nbuffer as needed.", + "kind": "text" + } + ] }, { - "name": "i1_ncprop", - "kind": "var", + "name": "as", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", + "displayParts": [ + { + "text": "as", + "kind": "keyword" + } + ] + }, + { + "name": "async", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "async", + "kind": "keyword" + } + ] + }, + { + "name": "await", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "await", + "kind": "keyword" + } + ] + }, + { + "name": "Boolean", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Boolean", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, { "text": "var", "kind": "keyword" @@ -77139,7 +75228,7 @@ "kind": "space" }, { - "text": "i1_ncprop", + "text": "Boolean", "kind": "localName" }, { @@ -77151,18 +75240,106 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "BooleanConstructor", + "kind": "interfaceName" } ], "documentation": [] }, { - "name": "i1_s_p", - "kind": "var", + "name": "break", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", + "displayParts": [ + { + "text": "break", + "kind": "keyword" + } + ] + }, + { + "name": "case", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "case", + "kind": "keyword" + } + ] + }, + { + "name": "catch", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "catch", + "kind": "keyword" + } + ] + }, + { + "name": "class", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + } + ] + }, + { + "name": "const", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + } + ] + }, + { + "name": "continue", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "continue", + "kind": "keyword" + } + ] + }, + { + "name": "DataView", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "DataView", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, { "text": "var", "kind": "keyword" @@ -77172,7 +75349,7 @@ "kind": "space" }, { - "text": "i1_s_p", + "text": "DataView", "kind": "localName" }, { @@ -77184,18 +75361,34 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "DataViewConstructor", + "kind": "interfaceName" } ], "documentation": [] }, { - "name": "i1_s_f", + "name": "Date", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Date", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, { "text": "var", "kind": "keyword" @@ -77205,7 +75398,7 @@ "kind": "space" }, { - "text": "i1_s_f", + "text": "Date", "kind": "localName" }, { @@ -77216,12 +75409,54 @@ "text": " ", "kind": "space" }, + { + "text": "DateConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ + { + "text": "Enables basic storage and retrieval of dates and times.", + "kind": "text" + } + ] + }, + { + "name": "debugger", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "debugger", + "kind": "keyword" + } + ] + }, + { + "name": "decodeURI", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "decodeURI", + "kind": "functionName" + }, { "text": "(", "kind": "punctuation" }, { - "text": "b", + "text": "encodedURI", "kind": "parameterName" }, { @@ -77233,7 +75468,7 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" }, { @@ -77241,11 +75476,7 @@ "kind": "punctuation" }, { - "text": " ", - "kind": "space" - }, - { - "text": "=>", + "text": ":", "kind": "punctuation" }, { @@ -77253,20 +75484,44 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Gets the unencoded version of an encoded Uniform Resource Identifier (URI).", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "encodedURI", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI.", + "kind": "text" + } + ] + } + ] }, { - "name": "i1_s_r", - "kind": "var", - "kindModifiers": "", - "sortText": "11", + "name": "decodeURIComponent", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "function", "kind": "keyword" }, { @@ -77274,41 +75529,32 @@ "kind": "space" }, { - "text": "i1_s_r", - "kind": "localName" + "text": "decodeURIComponent", + "kind": "functionName" }, { - "text": ":", + "text": "(", "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "encodedURIComponent", + "kind": "parameterName" }, { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_s_prop", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "i1_s_prop", - "kind": "localName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -77319,77 +75565,108 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "encodedURIComponent", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI component.", + "kind": "text" + } + ] + } + ] }, { - "name": "i1_s_nc_p", - "kind": "var", + "name": "default", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "default", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "i1_s_nc_p", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, + } + ] + }, + { + "name": "delete", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "number", + "text": "delete", "kind": "keyword" } - ], - "documentation": [] + ] }, { - "name": "i1_s_ncf", - "kind": "var", + "name": "do", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "do", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, + } + ] + }, + { + "name": "else", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "i1_s_ncf", - "kind": "localName" - }, + "text": "else", + "kind": "keyword" + } + ] + }, + { + "name": "encodeURI", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { - "text": ":", - "kind": "punctuation" + "text": "function", + "kind": "keyword" }, { "text": " ", "kind": "space" }, + { + "text": "encodeURI", + "kind": "functionName" + }, { "text": "(", "kind": "punctuation" }, { - "text": "b", + "text": "uri", "kind": "parameterName" }, { @@ -77401,7 +75678,7 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" }, { @@ -77409,11 +75686,7 @@ "kind": "punctuation" }, { - "text": " ", - "kind": "space" - }, - { - "text": "=>", + "text": ":", "kind": "punctuation" }, { @@ -77421,20 +75694,44 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Encodes a text string as a valid Uniform Resource Identifier (URI)", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "uri", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI.", + "kind": "text" + } + ] + } + ] }, { - "name": "i1_s_ncr", - "kind": "var", - "kindModifiers": "", - "sortText": "11", + "name": "encodeURIComponent", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "function", "kind": "keyword" }, { @@ -77442,8 +75739,16 @@ "kind": "space" }, { - "text": "i1_s_ncr", - "kind": "localName" + "text": "encodeURIComponent", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "uriComponent", + "kind": "parameterName" }, { "text": ":", @@ -77454,20 +75759,7 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_s_ncprop", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "var", + "text": "string", "kind": "keyword" }, { @@ -77475,11 +75767,7 @@ "kind": "space" }, { - "text": "i1_s_ncprop", - "kind": "localName" - }, - { - "text": ":", + "text": "|", "kind": "punctuation" }, { @@ -77489,30 +75777,13 @@ { "text": "number", "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_c", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "var", - "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "i1_c", - "kind": "localName" - }, - { - "text": ":", + "text": "|", "kind": "punctuation" }, { @@ -77520,49 +75791,72 @@ "kind": "space" }, { - "text": "typeof", + "text": "boolean", "kind": "keyword" }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "c1", - "kind": "className" + "text": "string", + "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Encodes a text string as a valid component of a Uniform Resource Identifier (URI).", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "uriComponent", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI component.", + "kind": "text" + } + ] + } + ] }, { - "name": "cProperties", - "kind": "class", + "name": "enum", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "class", + "text": "enum", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "cProperties", - "kind": "className" } - ], - "documentation": [] + ] }, { - "name": "cProperties_i", + "name": "Error", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -77570,53 +75864,48 @@ "kind": "space" }, { - "text": "cProperties_i", + "text": "Error", "kind": "localName" }, { - "text": ":", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "cProperties", - "kind": "className" - } - ], - "documentation": [] - }, - { - "name": "cWithConstructorProperty", - "kind": "class", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ + "text": "Error", + "kind": "localName" + }, { - "text": "class", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "cWithConstructorProperty", - "kind": "className" + "text": "ErrorConstructor", + "kind": "interfaceName" } ], "documentation": [] }, { - "name": "undefined", - "kind": "var", - "kindModifiers": "", + "name": "eval", + "kind": "function", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "var", + "text": "function", "kind": "keyword" }, { @@ -77624,583 +75913,441 @@ "kind": "space" }, { - "text": "undefined", - "kind": "propertyName" - } - ], - "documentation": [] - }, - { - "name": "break", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "break", - "kind": "keyword" - } - ] - }, - { - "name": "case", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "case", - "kind": "keyword" - } - ] - }, - { - "name": "catch", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "catch", - "kind": "keyword" - } - ] - }, - { - "name": "class", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "class", - "kind": "keyword" - } - ] - }, - { - "name": "const", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "const", - "kind": "keyword" - } - ] - }, - { - "name": "continue", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "continue", - "kind": "keyword" - } - ] - }, - { - "name": "debugger", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "debugger", - "kind": "keyword" - } - ] - }, - { - "name": "default", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "default", - "kind": "keyword" - } - ] - }, - { - "name": "delete", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "delete", - "kind": "keyword" - } - ] - }, - { - "name": "do", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "do", - "kind": "keyword" - } - ] - }, - { - "name": "else", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "else", - "kind": "keyword" - } - ] - }, - { - "name": "enum", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "eval", + "kind": "functionName" + }, { - "text": "enum", - "kind": "keyword" - } - ] - }, - { - "name": "export", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "(", + "kind": "punctuation" + }, { - "text": "export", - "kind": "keyword" - } - ] - }, - { - "name": "extends", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "x", + "kind": "parameterName" + }, { - "text": "extends", - "kind": "keyword" - } - ] - }, - { - "name": "false", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": ":", + "kind": "punctuation" + }, { - "text": "false", - "kind": "keyword" - } - ] - }, - { - "name": "finally", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "finally", + "text": "string", "kind": "keyword" - } - ] - }, - { - "name": "for", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "for", - "kind": "keyword" - } - ] - }, - { - "name": "function", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": ")", + "kind": "punctuation" + }, { - "text": "function", - "kind": "keyword" - } - ] - }, - { - "name": "if", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": ":", + "kind": "punctuation" + }, { - "text": "if", - "kind": "keyword" - } - ] - }, - { - "name": "import", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "import", + "text": "any", "kind": "keyword" } - ] - }, - { - "name": "in", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "in", - "kind": "keyword" + "text": "Evaluates JavaScript code and executes it.", + "kind": "text" } - ] - }, - { - "name": "instanceof", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "tags": [ { - "text": "instanceof", - "kind": "keyword" + "name": "param", + "text": [ + { + "text": "x", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A String value that contains valid JavaScript code.", + "kind": "text" + } + ] } ] }, { - "name": "new", - "kind": "keyword", - "kindModifiers": "", + "name": "EvalError", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "new", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "null", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "null", + "text": " ", + "kind": "space" + }, + { + "text": "EvalError", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "EvalError", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "EvalErrorConstructor", + "kind": "interfaceName" } - ] + ], + "documentation": [] }, { - "name": "return", + "name": "export", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "return", + "text": "export", "kind": "keyword" } ] }, { - "name": "super", + "name": "extends", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "super", + "text": "extends", "kind": "keyword" } ] }, { - "name": "switch", + "name": "false", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "switch", + "text": "false", "kind": "keyword" } ] }, { - "name": "this", + "name": "finally", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "this", + "text": "finally", "kind": "keyword" } ] }, { - "name": "throw", - "kind": "keyword", - "kindModifiers": "", + "name": "Float32Array", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "throw", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "true", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "true", + "text": " ", + "kind": "space" + }, + { + "text": "Float32Array", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Float32Array", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Float32ArrayConstructor", + "kind": "interfaceName" } - ] - }, - { - "name": "try", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "try", - "kind": "keyword" + "text": "A typed array of 32-bit float values. The contents are initialized to 0. If the requested number\r\nof bytes could not be allocated an exception is raised.", + "kind": "text" } ] }, { - "name": "typeof", - "kind": "keyword", - "kindModifiers": "", + "name": "Float64Array", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "typeof", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "var", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Float64Array", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, { "text": "var", "kind": "keyword" - } - ] - }, - { - "name": "void", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "void", - "kind": "keyword" + "text": " ", + "kind": "space" + }, + { + "text": "Float64Array", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Float64ArrayConstructor", + "kind": "interfaceName" } - ] - }, - { - "name": "while", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "while", - "kind": "keyword" + "text": "A typed array of 64-bit float values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", + "kind": "text" } ] }, { - "name": "with", + "name": "for", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "with", + "text": "for", "kind": "keyword" } ] }, { - "name": "implements", + "name": "function", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "implements", + "text": "function", "kind": "keyword" } ] }, { - "name": "interface", - "kind": "keyword", - "kindModifiers": "", + "name": "Function", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { "text": "interface", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Function", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Function", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "FunctionConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ + { + "text": "Creates a new function.", + "kind": "text" } ] }, { - "name": "let", - "kind": "keyword", + "name": "globalThis", + "kind": "module", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "let", + "text": "module", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "globalThis", + "kind": "moduleName" } - ] + ], + "documentation": [] }, { - "name": "package", + "name": "if", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "package", + "text": "if", "kind": "keyword" } ] }, { - "name": "yield", + "name": "implements", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "yield", + "text": "implements", "kind": "keyword" } ] }, { - "name": "as", + "name": "import", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "as", + "text": "import", "kind": "keyword" } ] }, { - "name": "async", + "name": "in", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "async", + "text": "in", "kind": "keyword" } ] }, { - "name": "await", - "kind": "keyword", - "kindModifiers": "", + "name": "Infinity", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "await", + "text": "var", "kind": "keyword" - } - ] - } - ] - } - }, - { - "marker": { - "fileName": "/tests/cases/fourslash/completionsCommentsClassMembers.ts", - "position": 1968, - "name": "63" - }, - "completionList": { - "isGlobalCompletion": false, - "isMemberCompletion": false, - "isNewIdentifierLocation": true, - "optionalReplacementSpan": { - "start": 1968, - "length": 5 - }, - "entries": [ - { - "name": "value", - "kind": "parameter", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "parameter", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "value", - "kind": "parameterName" + "text": "Infinity", + "kind": "localName" }, { "text": ":", @@ -78218,75 +76365,25 @@ "documentation": [] }, { - "name": "arguments", - "kind": "local var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "local var", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "arguments", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "IArguments", - "kind": "interfaceName" - } - ], - "documentation": [] - }, - { - "name": "globalThis", - "kind": "module", + "name": "instanceof", + "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "module", + "text": "instanceof", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "globalThis", - "kind": "moduleName" } - ], - "documentation": [] + ] }, { - "name": "eval", - "kind": "function", + "name": "Int16Array", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -78294,32 +76391,24 @@ "kind": "space" }, { - "text": "eval", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" + "text": "Int16Array", + "kind": "localName" }, { - "text": "x", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "Int16Array", + "kind": "localName" }, { "text": ":", @@ -78330,105 +76419,50 @@ "kind": "space" }, { - "text": "any", - "kind": "keyword" + "text": "Int16ArrayConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "Evaluates JavaScript code and executes it.", + "text": "A typed array of 16-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", "kind": "text" } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "x", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A String value that contains valid JavaScript code.", - "kind": "text" - } - ] - } ] }, { - "name": "parseInt", - "kind": "function", + "name": "Int32Array", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "parseInt", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "string", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", + "text": "interface", "kind": "keyword" }, - { - "text": ",", - "kind": "punctuation" - }, { "text": " ", "kind": "space" }, { - "text": "radix", - "kind": "parameterName" + "text": "Int32Array", + "kind": "localName" }, { - "text": "?", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "Int32Array", + "kind": "localName" }, { "text": ":", @@ -78439,61 +76473,25 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "Int32ArrayConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "Converts a string to an integer.", + "text": "A typed array of 32-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", "kind": "text" } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string to convert into a number.", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "radix", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value between 2 and 36 that specifies the base of the number in `string`.\r\nIf this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal.\r\nAll other strings are considered decimal.", - "kind": "text" - } - ] - } ] }, { - "name": "parseFloat", - "kind": "function", + "name": "Int8Array", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -78501,32 +76499,24 @@ "kind": "space" }, { - "text": "parseFloat", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" + "text": "Int8Array", + "kind": "localName" }, { - "text": "string", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "Int8Array", + "kind": "localName" }, { "text": ":", @@ -78537,38 +76527,52 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "Int8ArrayConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "Converts a string to a floating-point number.", + "text": "A typed array of 8-bit integer values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", "kind": "text" } - ], - "tags": [ + ] + }, + { + "name": "interface", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string that contains a floating-point number.", - "kind": "text" - } - ] + "text": "interface", + "kind": "keyword" } ] }, { - "name": "isNaN", + "name": "Intl", + "kind": "module", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Intl", + "kind": "moduleName" + } + ], + "documentation": [] + }, + { + "name": "isFinite", "kind": "function", "kindModifiers": "declare", "sortText": "15", @@ -78582,7 +76586,7 @@ "kind": "space" }, { - "text": "isNaN", + "text": "isFinite", "kind": "functionName" }, { @@ -78624,7 +76628,7 @@ ], "documentation": [ { - "text": "Returns a Boolean value that indicates whether a value is the reserved value NaN (not a number).", + "text": "Determines whether a supplied number is finite.", "kind": "text" } ], @@ -78641,7 +76645,7 @@ "kind": "space" }, { - "text": "A numeric value.", + "text": "Any numeric value.", "kind": "text" } ] @@ -78649,7 +76653,7 @@ ] }, { - "name": "isFinite", + "name": "isNaN", "kind": "function", "kindModifiers": "declare", "sortText": "15", @@ -78663,7 +76667,7 @@ "kind": "space" }, { - "text": "isFinite", + "text": "isNaN", "kind": "functionName" }, { @@ -78705,7 +76709,7 @@ ], "documentation": [ { - "text": "Determines whether a supplied number is finite.", + "text": "Returns a Boolean value that indicates whether a value is the reserved value NaN (not a number).", "kind": "text" } ], @@ -78722,7 +76726,7 @@ "kind": "space" }, { - "text": "Any numeric value.", + "text": "A numeric value.", "kind": "text" } ] @@ -78730,13 +76734,13 @@ ] }, { - "name": "decodeURI", - "kind": "function", + "name": "JSON", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -78744,32 +76748,24 @@ "kind": "space" }, { - "text": "decodeURI", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" + "text": "JSON", + "kind": "localName" }, { - "text": "encodedURI", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "JSON", + "kind": "localName" }, { "text": ":", @@ -78780,44 +76776,37 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "JSON", + "kind": "localName" } ], "documentation": [ { - "text": "Gets the unencoded version of an encoded Uniform Resource Identifier (URI).", + "text": "An intrinsic object that provides functions to convert JavaScript values to and from the JavaScript Object Notation (JSON) format.", "kind": "text" } - ], - "tags": [ + ] + }, + { + "name": "let", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "encodedURI", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI.", - "kind": "text" - } - ] + "text": "let", + "kind": "keyword" } ] }, { - "name": "decodeURIComponent", - "kind": "function", + "name": "Math", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -78825,32 +76814,24 @@ "kind": "space" }, { - "text": "decodeURIComponent", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" + "text": "Math", + "kind": "localName" }, { - "text": "encodedURIComponent", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "Math", + "kind": "localName" }, { "text": ":", @@ -78861,44 +76842,25 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "Math", + "kind": "localName" } ], "documentation": [ { - "text": "Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).", + "text": "An intrinsic object that provides basic mathematics functionality and constants.", "kind": "text" } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "encodedURIComponent", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI component.", - "kind": "text" - } - ] - } ] }, { - "name": "encodeURI", - "kind": "function", + "name": "NaN", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "var", "kind": "keyword" }, { @@ -78906,32 +76868,8 @@ "kind": "space" }, { - "text": "encodeURI", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "uri", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "NaN", + "kind": "localName" }, { "text": ":", @@ -78942,44 +76880,44 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "new", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "Encodes a text string as a valid Uniform Resource Identifier (URI)", - "kind": "text" + "text": "new", + "kind": "keyword" } - ], - "tags": [ + ] + }, + { + "name": "null", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "uri", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI.", - "kind": "text" - } - ] + "text": "null", + "kind": "keyword" } ] }, { - "name": "encodeURIComponent", - "kind": "function", + "name": "Number", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -78987,35 +76925,27 @@ "kind": "space" }, { - "text": "encodeURIComponent", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" + "text": "Number", + "kind": "localName" }, { - "text": "uriComponent", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "string", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" + "text": "Number", + "kind": "localName" }, { - "text": "|", + "text": ":", "kind": "punctuation" }, { @@ -79023,7 +76953,25 @@ "kind": "space" }, { - "text": "number", + "text": "NumberConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ + { + "text": "An object that represents a number of any kind. All JavaScript numbers are 64-bit floating-point numbers.", + "kind": "text" + } + ] + }, + { + "name": "Object", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", "kind": "keyword" }, { @@ -79031,20 +76979,24 @@ "kind": "space" }, { - "text": "|", - "kind": "punctuation" + "text": "Object", + "kind": "localName" }, { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, { - "text": "boolean", + "text": "var", "kind": "keyword" }, { - "text": ")", - "kind": "punctuation" + "text": " ", + "kind": "space" + }, + { + "text": "Object", + "kind": "localName" }, { "text": ":", @@ -79055,41 +77007,34 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "ObjectConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "Encodes a text string as a valid component of a Uniform Resource Identifier (URI).", + "text": "Provides functionality common to all JavaScript objects.", "kind": "text" } - ], - "tags": [ + ] + }, + { + "name": "package", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "uriComponent", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI component.", - "kind": "text" - } - ] + "text": "package", + "kind": "keyword" } ] }, { - "name": "escape", + "name": "parseFloat", "kind": "function", - "kindModifiers": "deprecated,declare", - "sortText": "23", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { "text": "function", @@ -79100,7 +77045,7 @@ "kind": "space" }, { - "text": "escape", + "text": "parseFloat", "kind": "functionName" }, { @@ -79136,26 +77081,17 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" } ], "documentation": [ { - "text": "Computes a new string in which certain characters have been replaced by a hexadecimal escape sequence.", + "text": "Converts a string to a floating-point number.", "kind": "text" } ], "tags": [ - { - "name": "deprecated", - "text": [ - { - "text": "A legacy feature for browser compatibility", - "kind": "text" - } - ] - }, { "name": "param", "text": [ @@ -79168,7 +77104,7 @@ "kind": "space" }, { - "text": "A string value", + "text": "A string that contains a floating-point number.", "kind": "text" } ] @@ -79176,10 +77112,10 @@ ] }, { - "name": "unescape", + "name": "parseInt", "kind": "function", - "kindModifiers": "deprecated,declare", - "sortText": "23", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { "text": "function", @@ -79190,7 +77126,7 @@ "kind": "space" }, { - "text": "unescape", + "text": "parseInt", "kind": "functionName" }, { @@ -79213,6 +77149,34 @@ "text": "string", "kind": "keyword" }, + { + "text": ",", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "radix", + "kind": "parameterName" + }, + { + "text": "?", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, { "text": ")", "kind": "punctuation" @@ -79226,22 +77190,30 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" } ], "documentation": [ { - "text": "Computes a new string in which hexadecimal escape sequences are replaced with the character that it represents.", + "text": "Converts a string to an integer.", "kind": "text" } ], "tags": [ { - "name": "deprecated", + "name": "param", "text": [ { - "text": "A legacy feature for browser compatibility", + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string to convert into a number.", "kind": "text" } ] @@ -79250,7 +77222,7 @@ "name": "param", "text": [ { - "text": "string", + "text": "radix", "kind": "parameterName" }, { @@ -79258,7 +77230,7 @@ "kind": "space" }, { - "text": "A string value", + "text": "A value between 2 and 36 that specifies the base of the number in `string`.\r\nIf this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal.\r\nAll other strings are considered decimal.", "kind": "text" } ] @@ -79266,11 +77238,27 @@ ] }, { - "name": "NaN", + "name": "RangeError", "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "RangeError", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, { "text": "var", "kind": "keyword" @@ -79280,7 +77268,7 @@ "kind": "space" }, { - "text": "NaN", + "text": "RangeError", "kind": "localName" }, { @@ -79292,18 +77280,34 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "RangeErrorConstructor", + "kind": "interfaceName" } ], "documentation": [] }, { - "name": "Infinity", + "name": "ReferenceError", "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "ReferenceError", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, { "text": "var", "kind": "keyword" @@ -79313,7 +77317,7 @@ "kind": "space" }, { - "text": "Infinity", + "text": "ReferenceError", "kind": "localName" }, { @@ -79325,14 +77329,14 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "ReferenceErrorConstructor", + "kind": "interfaceName" } ], "documentation": [] }, { - "name": "Object", + "name": "RegExp", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -79346,7 +77350,7 @@ "kind": "space" }, { - "text": "Object", + "text": "RegExp", "kind": "localName" }, { @@ -79362,7 +77366,7 @@ "kind": "space" }, { - "text": "Object", + "text": "RegExp", "kind": "localName" }, { @@ -79374,19 +77378,26 @@ "kind": "space" }, { - "text": "ObjectConstructor", + "text": "RegExpConstructor", "kind": "interfaceName" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "return", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "Provides functionality common to all JavaScript objects.", - "kind": "text" + "text": "return", + "kind": "keyword" } ] }, { - "name": "Function", + "name": "String", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -79400,7 +77411,7 @@ "kind": "space" }, { - "text": "Function", + "text": "String", "kind": "localName" }, { @@ -79416,7 +77427,7 @@ "kind": "space" }, { - "text": "Function", + "text": "String", "kind": "localName" }, { @@ -79428,19 +77439,43 @@ "kind": "space" }, { - "text": "FunctionConstructor", + "text": "StringConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "Creates a new function.", + "text": "Allows manipulation and formatting of text strings and determination and location of substrings within strings.", "kind": "text" } ] }, { - "name": "String", + "name": "super", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "super", + "kind": "keyword" + } + ] + }, + { + "name": "switch", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "switch", + "kind": "keyword" + } + ] + }, + { + "name": "SyntaxError", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -79454,7 +77489,7 @@ "kind": "space" }, { - "text": "String", + "text": "SyntaxError", "kind": "localName" }, { @@ -79470,7 +77505,7 @@ "kind": "space" }, { - "text": "String", + "text": "SyntaxError", "kind": "localName" }, { @@ -79482,19 +77517,62 @@ "kind": "space" }, { - "text": "StringConstructor", + "text": "SyntaxErrorConstructor", "kind": "interfaceName" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "this", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "Allows manipulation and formatting of text strings and determination and location of substrings within strings.", - "kind": "text" + "text": "this", + "kind": "keyword" } ] }, { - "name": "Boolean", + "name": "throw", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "throw", + "kind": "keyword" + } + ] + }, + { + "name": "true", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "true", + "kind": "keyword" + } + ] + }, + { + "name": "try", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "try", + "kind": "keyword" + } + ] + }, + { + "name": "TypeError", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -79508,7 +77586,7 @@ "kind": "space" }, { - "text": "Boolean", + "text": "TypeError", "kind": "localName" }, { @@ -79524,7 +77602,7 @@ "kind": "space" }, { - "text": "Boolean", + "text": "TypeError", "kind": "localName" }, { @@ -79536,14 +77614,26 @@ "kind": "space" }, { - "text": "BooleanConstructor", + "text": "TypeErrorConstructor", "kind": "interfaceName" } ], "documentation": [] }, { - "name": "Number", + "name": "typeof", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "typeof", + "kind": "keyword" + } + ] + }, + { + "name": "Uint16Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -79557,7 +77647,7 @@ "kind": "space" }, { - "text": "Number", + "text": "Uint16Array", "kind": "localName" }, { @@ -79573,7 +77663,7 @@ "kind": "space" }, { - "text": "Number", + "text": "Uint16Array", "kind": "localName" }, { @@ -79585,19 +77675,19 @@ "kind": "space" }, { - "text": "NumberConstructor", + "text": "Uint16ArrayConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "An object that represents a number of any kind. All JavaScript numbers are 64-bit floating-point numbers.", + "text": "A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", "kind": "text" } ] }, { - "name": "Math", + "name": "Uint32Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -79611,7 +77701,7 @@ "kind": "space" }, { - "text": "Math", + "text": "Uint32Array", "kind": "localName" }, { @@ -79627,7 +77717,7 @@ "kind": "space" }, { - "text": "Math", + "text": "Uint32Array", "kind": "localName" }, { @@ -79639,19 +77729,19 @@ "kind": "space" }, { - "text": "Math", - "kind": "localName" + "text": "Uint32ArrayConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "An intrinsic object that provides basic mathematics functionality and constants.", + "text": "A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", "kind": "text" } ] }, { - "name": "Date", + "name": "Uint8Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -79665,7 +77755,7 @@ "kind": "space" }, { - "text": "Date", + "text": "Uint8Array", "kind": "localName" }, { @@ -79681,7 +77771,7 @@ "kind": "space" }, { - "text": "Date", + "text": "Uint8Array", "kind": "localName" }, { @@ -79693,19 +77783,19 @@ "kind": "space" }, { - "text": "DateConstructor", + "text": "Uint8ArrayConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "Enables basic storage and retrieval of dates and times.", + "text": "A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", "kind": "text" } ] }, { - "name": "RegExp", + "name": "Uint8ClampedArray", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -79719,7 +77809,7 @@ "kind": "space" }, { - "text": "RegExp", + "text": "Uint8ClampedArray", "kind": "localName" }, { @@ -79735,7 +77825,7 @@ "kind": "space" }, { - "text": "RegExp", + "text": "Uint8ClampedArray", "kind": "localName" }, { @@ -79747,14 +77837,40 @@ "kind": "space" }, { - "text": "RegExpConstructor", + "text": "Uint8ClampedArrayConstructor", "kind": "interfaceName" } ], + "documentation": [ + { + "text": "A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0.\r\nIf the requested number of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] + }, + { + "name": "undefined", + "kind": "var", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "undefined", + "kind": "propertyName" + } + ], "documentation": [] }, { - "name": "Error", + "name": "URIError", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -79768,7 +77884,7 @@ "kind": "space" }, { - "text": "Error", + "text": "URIError", "kind": "localName" }, { @@ -79784,7 +77900,7 @@ "kind": "space" }, { - "text": "Error", + "text": "URIError", "kind": "localName" }, { @@ -79796,20 +77912,80 @@ "kind": "space" }, { - "text": "ErrorConstructor", + "text": "URIErrorConstructor", "kind": "interfaceName" } ], "documentation": [] }, { - "name": "EvalError", - "kind": "var", - "kindModifiers": "declare", + "name": "var", + "kind": "keyword", + "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "var", + "kind": "keyword" + } + ] + }, + { + "name": "void", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "void", + "kind": "keyword" + } + ] + }, + { + "name": "while", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "while", + "kind": "keyword" + } + ] + }, + { + "name": "with", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "with", + "kind": "keyword" + } + ] + }, + { + "name": "yield", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "yield", + "kind": "keyword" + } + ] + }, + { + "name": "escape", + "kind": "function", + "kindModifiers": "deprecated,declare", + "sortText": "z15", + "displayParts": [ + { + "text": "function", "kind": "keyword" }, { @@ -79817,24 +77993,32 @@ "kind": "space" }, { - "text": "EvalError", - "kind": "localName" + "text": "escape", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "string", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "EvalError", - "kind": "localName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -79845,45 +78029,178 @@ "kind": "space" }, { - "text": "EvalErrorConstructor", - "kind": "interfaceName" + "text": "string", + "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Computes a new string in which certain characters have been replaced by a hexadecimal escape sequence.", + "kind": "text" + } + ], + "tags": [ + { + "name": "deprecated", + "text": [ + { + "text": "A legacy feature for browser compatibility", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string value", + "kind": "text" + } + ] + } + ] }, { - "name": "RangeError", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "unescape", + "kind": "function", + "kindModifiers": "deprecated,declare", + "sortText": "z15", "displayParts": [ { - "text": "interface", + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "unescape", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "string", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", "kind": "keyword" }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "RangeError", - "kind": "localName" + "text": "string", + "kind": "keyword" + } + ], + "documentation": [ + { + "text": "Computes a new string in which hexadecimal escape sequences are replaced with the character that it represents.", + "kind": "text" + } + ], + "tags": [ + { + "name": "deprecated", + "text": [ + { + "text": "A legacy feature for browser compatibility", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string value", + "kind": "text" + } + ] + } + ] + } + ] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/completionsCommentsClassMembers.ts", + "position": 1968, + "name": "63" + }, + "completionList": { + "isGlobalCompletion": false, + "isMemberCompletion": false, + "isNewIdentifierLocation": true, + "optionalReplacementSpan": { + "start": 1968, + "length": 5 + }, + "entries": [ + { + "name": "arguments", + "kind": "local var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": "local var", + "kind": "text" }, { - "text": "var", - "kind": "keyword" + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "RangeError", - "kind": "localName" + "text": "arguments", + "kind": "propertyName" }, { "text": ":", @@ -79894,20 +78211,20 @@ "kind": "space" }, { - "text": "RangeErrorConstructor", + "text": "IArguments", "kind": "interfaceName" } ], "documentation": [] }, { - "name": "ReferenceError", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "c1", + "kind": "class", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "class", "kind": "keyword" }, { @@ -79915,15 +78232,25 @@ "kind": "space" }, { - "text": "ReferenceError", - "kind": "localName" - }, + "text": "c1", + "kind": "className" + } + ], + "documentation": [ { - "text": "\n", - "kind": "lineBreak" - }, + "text": "This is comment for c1", + "kind": "text" + } + ] + }, + { + "name": "cProperties", + "kind": "class", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { - "text": "var", + "text": "class", "kind": "keyword" }, { @@ -79931,46 +78258,18 @@ "kind": "space" }, { - "text": "ReferenceError", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "ReferenceErrorConstructor", - "kind": "interfaceName" + "text": "cProperties", + "kind": "className" } ], "documentation": [] }, { - "name": "SyntaxError", + "name": "cProperties_i", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "SyntaxError", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, { "text": "var", "kind": "keyword" @@ -79980,7 +78279,7 @@ "kind": "space" }, { - "text": "SyntaxError", + "text": "cProperties_i", "kind": "localName" }, { @@ -79992,36 +78291,20 @@ "kind": "space" }, { - "text": "SyntaxErrorConstructor", - "kind": "interfaceName" + "text": "cProperties", + "kind": "className" } ], "documentation": [] }, { - "name": "TypeError", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "cWithConstructorProperty", + "kind": "class", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "TypeError", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", + "text": "class", "kind": "keyword" }, { @@ -80029,46 +78312,18 @@ "kind": "space" }, { - "text": "TypeError", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "TypeErrorConstructor", - "kind": "interfaceName" + "text": "cWithConstructorProperty", + "kind": "className" } ], "documentation": [] }, { - "name": "URIError", + "name": "i1", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "URIError", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, { "text": "var", "kind": "keyword" @@ -80078,7 +78333,7 @@ "kind": "space" }, { - "text": "URIError", + "text": "i1", "kind": "localName" }, { @@ -80090,20 +78345,20 @@ "kind": "space" }, { - "text": "URIErrorConstructor", - "kind": "interfaceName" + "text": "c1", + "kind": "className" } ], "documentation": [] }, { - "name": "JSON", + "name": "i1_c", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "var", "kind": "keyword" }, { @@ -80111,53 +78366,40 @@ "kind": "space" }, { - "text": "JSON", + "text": "i1_c", "kind": "localName" }, { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "JSON", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" + "text": "typeof", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "JSON", - "kind": "localName" + "text": "c1", + "kind": "className" } ], - "documentation": [ - { - "text": "An intrinsic object that provides functions to convert JavaScript values to and from the JavaScript Object Notation (JSON) format.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "Array", + "name": "i1_f", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "var", "kind": "keyword" }, { @@ -80165,36 +78407,24 @@ "kind": "space" }, { - "text": "Array", + "text": "i1_f", "kind": "localName" }, { - "text": "<", + "text": ":", "kind": "punctuation" }, { - "text": "T", - "kind": "typeParameterName" + "text": " ", + "kind": "space" }, { - "text": ">", + "text": "(", "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Array", - "kind": "localName" + "text": "b", + "kind": "parameterName" }, { "text": ":", @@ -80205,48 +78435,19 @@ "kind": "space" }, { - "text": "ArrayConstructor", - "kind": "interfaceName" - } - ], - "documentation": [] - }, - { - "name": "ArrayBuffer", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", + "text": "number", "kind": "keyword" }, { - "text": " ", - "kind": "space" - }, - { - "text": "ArrayBuffer", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "ArrayBuffer", - "kind": "localName" - }, - { - "text": ":", + "text": "=>", "kind": "punctuation" }, { @@ -80254,39 +78455,18 @@ "kind": "space" }, { - "text": "ArrayBufferConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], - "documentation": [ - { - "text": "Represents a raw buffer of binary data, which is used to store data for the\r\ndifferent typed arrays. ArrayBuffers cannot be read from or written to directly,\r\nbut can be passed to a typed array or DataView Object to interpret the raw\r\nbuffer as needed.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "DataView", + "name": "i1_nc_p", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "DataView", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, { "text": "var", "kind": "keyword" @@ -80296,7 +78476,7 @@ "kind": "space" }, { - "text": "DataView", + "text": "i1_nc_p", "kind": "localName" }, { @@ -80308,34 +78488,18 @@ "kind": "space" }, { - "text": "DataViewConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], "documentation": [] }, { - "name": "Int8Array", + "name": "i1_ncf", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Int8Array", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, { "text": "var", "kind": "keyword" @@ -80345,7 +78509,7 @@ "kind": "space" }, { - "text": "Int8Array", + "text": "i1_ncf", "kind": "localName" }, { @@ -80357,53 +78521,35 @@ "kind": "space" }, { - "text": "Int8ArrayConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ + "text": "(", + "kind": "punctuation" + }, { - "text": "A typed array of 8-bit integer values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] - }, - { - "name": "Uint8Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ + "text": "b", + "kind": "parameterName" + }, { - "text": "interface", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Uint8Array", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" + "text": "number", + "kind": "keyword" }, { - "text": "var", - "kind": "keyword" + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Uint8Array", - "kind": "localName" - }, - { - "text": ":", + "text": "=>", "kind": "punctuation" }, { @@ -80411,39 +78557,18 @@ "kind": "space" }, { - "text": "Uint8ArrayConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], - "documentation": [ - { - "text": "A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "Uint8ClampedArray", + "name": "i1_ncprop", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Uint8ClampedArray", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, { "text": "var", "kind": "keyword" @@ -80453,7 +78578,7 @@ "kind": "space" }, { - "text": "Uint8ClampedArray", + "text": "i1_ncprop", "kind": "localName" }, { @@ -80465,39 +78590,18 @@ "kind": "space" }, { - "text": "Uint8ClampedArrayConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], - "documentation": [ - { - "text": "A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0.\r\nIf the requested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "Int16Array", + "name": "i1_ncr", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Int16Array", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, { "text": "var", "kind": "keyword" @@ -80507,7 +78611,7 @@ "kind": "space" }, { - "text": "Int16Array", + "text": "i1_ncr", "kind": "localName" }, { @@ -80519,39 +78623,18 @@ "kind": "space" }, { - "text": "Int16ArrayConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], - "documentation": [ - { - "text": "A typed array of 16-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "Uint16Array", + "name": "i1_p", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Uint16Array", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, { "text": "var", "kind": "keyword" @@ -80561,7 +78644,7 @@ "kind": "space" }, { - "text": "Uint16Array", + "text": "i1_p", "kind": "localName" }, { @@ -80573,25 +78656,20 @@ "kind": "space" }, { - "text": "Uint16ArrayConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], - "documentation": [ - { - "text": "A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "Int32Array", + "name": "i1_prop", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "var", "kind": "keyword" }, { @@ -80599,13 +78677,30 @@ "kind": "space" }, { - "text": "Int32Array", + "text": "i1_prop", "kind": "localName" }, { - "text": "\n", - "kind": "lineBreak" + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" }, + { + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "i1_r", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { "text": "var", "kind": "keyword" @@ -80615,7 +78710,7 @@ "kind": "space" }, { - "text": "Int32Array", + "text": "i1_r", "kind": "localName" }, { @@ -80627,25 +78722,20 @@ "kind": "space" }, { - "text": "Int32ArrayConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], - "documentation": [ - { - "text": "A typed array of 32-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "Uint32Array", + "name": "i1_s_f", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "var", "kind": "keyword" }, { @@ -80653,24 +78743,24 @@ "kind": "space" }, { - "text": "Uint32Array", + "text": "i1_s_f", "kind": "localName" }, { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Uint32Array", - "kind": "localName" + "text": "(", + "kind": "punctuation" + }, + { + "text": "b", + "kind": "parameterName" }, { "text": ":", @@ -80681,39 +78771,38 @@ "kind": "space" }, { - "text": "Uint32ArrayConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] - }, - { - "name": "Float32Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", + "text": "number", "kind": "keyword" }, + { + "text": ")", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "Float32Array", - "kind": "localName" + "text": "=>", + "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": " ", + "kind": "space" }, + { + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "i1_s_nc_p", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { "text": "var", "kind": "keyword" @@ -80723,7 +78812,7 @@ "kind": "space" }, { - "text": "Float32Array", + "text": "i1_s_nc_p", "kind": "localName" }, { @@ -80735,25 +78824,20 @@ "kind": "space" }, { - "text": "Float32ArrayConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], - "documentation": [ - { - "text": "A typed array of 32-bit float values. The contents are initialized to 0. If the requested number\r\nof bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "Float64Array", + "name": "i1_s_ncf", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "var", "kind": "keyword" }, { @@ -80761,24 +78845,24 @@ "kind": "space" }, { - "text": "Float64Array", + "text": "i1_s_ncf", "kind": "localName" }, { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Float64Array", - "kind": "localName" + "text": "(", + "kind": "punctuation" + }, + { + "text": "b", + "kind": "parameterName" }, { "text": ":", @@ -80789,66 +78873,34 @@ "kind": "space" }, { - "text": "Float64ArrayConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "A typed array of 64-bit float values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] - }, - { - "name": "Intl", - "kind": "module", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "namespace", + "text": "number", "kind": "keyword" }, + { + "text": ")", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "Intl", - "kind": "moduleName" - } - ], - "documentation": [] - }, - { - "name": "c1", - "kind": "class", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "class", - "kind": "keyword" + "text": "=>", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "c1", - "kind": "className" + "text": "number", + "kind": "keyword" } ], - "documentation": [ - { - "text": "This is comment for c1", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "i1", + "name": "i1_s_ncprop", "kind": "var", "kindModifiers": "", "sortText": "11", @@ -80862,7 +78914,7 @@ "kind": "space" }, { - "text": "i1", + "text": "i1_s_ncprop", "kind": "localName" }, { @@ -80874,14 +78926,14 @@ "kind": "space" }, { - "text": "c1", - "kind": "className" + "text": "number", + "kind": "keyword" } ], "documentation": [] }, { - "name": "i1_p", + "name": "i1_s_ncr", "kind": "var", "kindModifiers": "", "sortText": "11", @@ -80895,7 +78947,7 @@ "kind": "space" }, { - "text": "i1_p", + "text": "i1_s_ncr", "kind": "localName" }, { @@ -80914,7 +78966,7 @@ "documentation": [] }, { - "name": "i1_f", + "name": "i1_s_p", "kind": "var", "kindModifiers": "", "sortText": "11", @@ -80928,7 +78980,7 @@ "kind": "space" }, { - "text": "i1_f", + "text": "i1_s_p", "kind": "localName" }, { @@ -80939,36 +78991,33 @@ "text": " ", "kind": "space" }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "b", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, { "text": "number", "kind": "keyword" - }, + } + ], + "documentation": [] + }, + { + "name": "i1_s_prop", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { - "text": ")", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "=>", + "text": "i1_s_prop", + "kind": "localName" + }, + { + "text": ":", "kind": "punctuation" }, { @@ -80983,7 +79032,7 @@ "documentation": [] }, { - "name": "i1_r", + "name": "i1_s_r", "kind": "var", "kindModifiers": "", "sortText": "11", @@ -80997,7 +79046,7 @@ "kind": "space" }, { - "text": "i1_r", + "text": "i1_s_r", "kind": "localName" }, { @@ -81016,22 +79065,30 @@ "documentation": [] }, { - "name": "i1_prop", - "kind": "var", + "name": "value", + "kind": "parameter", "kindModifiers": "", "sortText": "11", "displayParts": [ { - "text": "var", - "kind": "keyword" + "text": "(", + "kind": "punctuation" + }, + { + "text": "parameter", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "i1_prop", - "kind": "localName" + "text": "value", + "kind": "parameterName" }, { "text": ":", @@ -81049,11 +79106,39 @@ "documentation": [] }, { - "name": "i1_nc_p", + "name": "Array", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Array", + "kind": "localName" + }, + { + "text": "<", + "kind": "punctuation" + }, + { + "text": "T", + "kind": "typeParameterName" + }, + { + "text": ">", + "kind": "punctuation" + }, + { + "text": "\n", + "kind": "lineBreak" + }, { "text": "var", "kind": "keyword" @@ -81063,7 +79148,7 @@ "kind": "space" }, { - "text": "i1_nc_p", + "text": "Array", "kind": "localName" }, { @@ -81075,20 +79160,20 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "ArrayConstructor", + "kind": "interfaceName" } ], "documentation": [] }, { - "name": "i1_ncf", + "name": "ArrayBuffer", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -81096,24 +79181,24 @@ "kind": "space" }, { - "text": "i1_ncf", + "text": "ArrayBuffer", "kind": "localName" }, { - "text": ":", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": " ", - "kind": "space" + "text": "var", + "kind": "keyword" }, { - "text": "(", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": "b", - "kind": "parameterName" + "text": "ArrayBuffer", + "kind": "localName" }, { "text": ":", @@ -81124,19 +79209,89 @@ "kind": "space" }, { - "text": "number", + "text": "ArrayBufferConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ + { + "text": "Represents a raw buffer of binary data, which is used to store data for the\r\ndifferent typed arrays. ArrayBuffers cannot be read from or written to directly,\r\nbut can be passed to a typed array or DataView Object to interpret the raw\r\nbuffer as needed.", + "kind": "text" + } + ] + }, + { + "name": "as", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "as", + "kind": "keyword" + } + ] + }, + { + "name": "async", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "async", + "kind": "keyword" + } + ] + }, + { + "name": "await", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "await", + "kind": "keyword" + } + ] + }, + { + "name": "Boolean", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", "kind": "keyword" }, { - "text": ")", - "kind": "punctuation" + "text": " ", + "kind": "space" + }, + { + "text": "Boolean", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "=>", + "text": "Boolean", + "kind": "localName" + }, + { + "text": ":", "kind": "punctuation" }, { @@ -81144,18 +79299,106 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "BooleanConstructor", + "kind": "interfaceName" } ], "documentation": [] }, { - "name": "i1_ncr", - "kind": "var", + "name": "break", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", + "displayParts": [ + { + "text": "break", + "kind": "keyword" + } + ] + }, + { + "name": "case", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "case", + "kind": "keyword" + } + ] + }, + { + "name": "catch", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "catch", + "kind": "keyword" + } + ] + }, + { + "name": "class", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + } + ] + }, + { + "name": "const", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + } + ] + }, + { + "name": "continue", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "continue", + "kind": "keyword" + } + ] + }, + { + "name": "DataView", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "DataView", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, { "text": "var", "kind": "keyword" @@ -81165,7 +79408,7 @@ "kind": "space" }, { - "text": "i1_ncr", + "text": "DataView", "kind": "localName" }, { @@ -81177,20 +79420,20 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "DataViewConstructor", + "kind": "interfaceName" } ], "documentation": [] }, { - "name": "i1_ncprop", + "name": "Date", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -81198,30 +79441,13 @@ "kind": "space" }, { - "text": "i1_ncprop", + "text": "Date", "kind": "localName" }, { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_s_p", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ { "text": "var", "kind": "keyword" @@ -81231,7 +79457,7 @@ "kind": "space" }, { - "text": "i1_s_p", + "text": "Date", "kind": "localName" }, { @@ -81243,20 +79469,37 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "DateConstructor", + "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "Enables basic storage and retrieval of dates and times.", + "kind": "text" + } + ] }, { - "name": "i1_s_f", - "kind": "var", + "name": "debugger", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "debugger", + "kind": "keyword" + } + ] + }, + { + "name": "decodeURI", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "function", "kind": "keyword" }, { @@ -81264,23 +79507,15 @@ "kind": "space" }, { - "text": "i1_s_f", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "decodeURI", + "kind": "functionName" }, { "text": "(", "kind": "punctuation" }, { - "text": "b", + "text": "encodedURI", "kind": "parameterName" }, { @@ -81292,7 +79527,7 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" }, { @@ -81300,11 +79535,7 @@ "kind": "punctuation" }, { - "text": " ", - "kind": "space" - }, - { - "text": "=>", + "text": ":", "kind": "punctuation" }, { @@ -81312,20 +79543,44 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Gets the unencoded version of an encoded Uniform Resource Identifier (URI).", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "encodedURI", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI.", + "kind": "text" + } + ] + } + ] }, { - "name": "i1_s_r", - "kind": "var", - "kindModifiers": "", - "sortText": "11", + "name": "decodeURIComponent", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "function", "kind": "keyword" }, { @@ -81333,41 +79588,32 @@ "kind": "space" }, { - "text": "i1_s_r", - "kind": "localName" + "text": "decodeURIComponent", + "kind": "functionName" }, { - "text": ":", + "text": "(", "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "encodedURIComponent", + "kind": "parameterName" }, { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_s_prop", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "i1_s_prop", - "kind": "localName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -81378,20 +79624,92 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "encodedURIComponent", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI component.", + "kind": "text" + } + ] + } + ] }, { - "name": "i1_s_nc_p", - "kind": "var", + "name": "default", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "default", + "kind": "keyword" + } + ] + }, + { + "name": "delete", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "delete", + "kind": "keyword" + } + ] + }, + { + "name": "do", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "do", + "kind": "keyword" + } + ] + }, + { + "name": "else", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "else", + "kind": "keyword" + } + ] + }, + { + "name": "encodeURI", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "function", "kind": "keyword" }, { @@ -81399,8 +79717,16 @@ "kind": "space" }, { - "text": "i1_s_nc_p", - "kind": "localName" + "text": "encodeURI", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "uri", + "kind": "parameterName" }, { "text": ":", @@ -81411,20 +79737,60 @@ "kind": "space" }, { - "text": "number", + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Encodes a text string as a valid Uniform Resource Identifier (URI)", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "uri", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI.", + "kind": "text" + } + ] + } + ] }, { - "name": "i1_s_ncf", - "kind": "var", - "kindModifiers": "", - "sortText": "11", + "name": "encodeURIComponent", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "function", "kind": "keyword" }, { @@ -81432,8 +79798,16 @@ "kind": "space" }, { - "text": "i1_s_ncf", - "kind": "localName" + "text": "encodeURIComponent", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "uriComponent", + "kind": "parameterName" }, { "text": ":", @@ -81444,15 +79818,15 @@ "kind": "space" }, { - "text": "(", - "kind": "punctuation" + "text": "string", + "kind": "keyword" }, { - "text": "b", - "kind": "parameterName" + "text": " ", + "kind": "space" }, { - "text": ":", + "text": "|", "kind": "punctuation" }, { @@ -81464,7 +79838,11 @@ "kind": "keyword" }, { - "text": ")", + "text": " ", + "kind": "space" + }, + { + "text": "|", "kind": "punctuation" }, { @@ -81472,7 +79850,15 @@ "kind": "space" }, { - "text": "=>", + "text": "boolean", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", "kind": "punctuation" }, { @@ -81480,20 +79866,56 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Encodes a text string as a valid component of a Uniform Resource Identifier (URI).", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "uriComponent", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI component.", + "kind": "text" + } + ] + } + ] }, { - "name": "i1_s_ncr", - "kind": "var", + "name": "enum", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "enum", + "kind": "keyword" + } + ] + }, + { + "name": "Error", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", "kind": "keyword" }, { @@ -81501,30 +79923,13 @@ "kind": "space" }, { - "text": "i1_s_ncr", + "text": "Error", "kind": "localName" }, { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_s_ncprop", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ { "text": "var", "kind": "keyword" @@ -81534,7 +79939,7 @@ "kind": "space" }, { - "text": "i1_s_ncprop", + "text": "Error", "kind": "localName" }, { @@ -81546,20 +79951,20 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "ErrorConstructor", + "kind": "interfaceName" } ], "documentation": [] }, { - "name": "i1_c", - "kind": "var", - "kindModifiers": "", - "sortText": "11", + "name": "eval", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "function", "kind": "keyword" }, { @@ -81567,8 +79972,16 @@ "kind": "space" }, { - "text": "i1_c", - "kind": "localName" + "text": "eval", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "x", + "kind": "parameterName" }, { "text": ":", @@ -81579,49 +79992,60 @@ "kind": "space" }, { - "text": "typeof", + "text": "string", "kind": "keyword" }, { - "text": " ", - "kind": "space" + "text": ")", + "kind": "punctuation" }, { - "text": "c1", - "kind": "className" - } - ], - "documentation": [] - }, - { - "name": "cProperties", - "kind": "class", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "class", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "cProperties", - "kind": "className" + "text": "any", + "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Evaluates JavaScript code and executes it.", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "x", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A String value that contains valid JavaScript code.", + "kind": "text" + } + ] + } + ] }, { - "name": "cProperties_i", + "name": "EvalError", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -81629,32 +80053,15 @@ "kind": "space" }, { - "text": "cProperties_i", + "text": "EvalError", "kind": "localName" }, { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, { - "text": "cProperties", - "kind": "className" - } - ], - "documentation": [] - }, - { - "name": "cWithConstructorProperty", - "kind": "class", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "class", + "text": "var", "kind": "keyword" }, { @@ -81662,257 +80069,299 @@ "kind": "space" }, { - "text": "cWithConstructorProperty", - "kind": "className" - } - ], - "documentation": [] - }, - { - "name": "undefined", - "kind": "var", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "EvalError", + "kind": "localName" + }, { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "undefined", - "kind": "propertyName" + "text": "EvalErrorConstructor", + "kind": "interfaceName" } ], "documentation": [] }, { - "name": "break", + "name": "export", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "break", + "text": "export", "kind": "keyword" } ] }, { - "name": "case", + "name": "extends", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "case", + "text": "extends", "kind": "keyword" } ] }, { - "name": "catch", + "name": "false", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "catch", + "text": "false", "kind": "keyword" } ] }, { - "name": "class", + "name": "finally", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "class", + "text": "finally", "kind": "keyword" } ] }, { - "name": "const", - "kind": "keyword", - "kindModifiers": "", + "name": "Float32Array", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "const", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "continue", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "continue", - "kind": "keyword" - } - ] - }, - { - "name": "debugger", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "debugger", + "text": "Float32Array", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Float32Array", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Float32ArrayConstructor", + "kind": "interfaceName" } - ] - }, - { - "name": "default", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "default", - "kind": "keyword" + "text": "A typed array of 32-bit float values. The contents are initialized to 0. If the requested number\r\nof bytes could not be allocated an exception is raised.", + "kind": "text" } ] }, { - "name": "delete", - "kind": "keyword", - "kindModifiers": "", + "name": "Float64Array", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "delete", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "do", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "do", + "text": " ", + "kind": "space" + }, + { + "text": "Float64Array", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Float64Array", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Float64ArrayConstructor", + "kind": "interfaceName" } - ] - }, - { - "name": "else", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "else", - "kind": "keyword" + "text": "A typed array of 64-bit float values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", + "kind": "text" } ] }, { - "name": "enum", + "name": "for", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "enum", + "text": "for", "kind": "keyword" } ] }, { - "name": "export", + "name": "function", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "export", + "text": "function", "kind": "keyword" } ] }, { - "name": "extends", - "kind": "keyword", - "kindModifiers": "", + "name": "Function", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "extends", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "false", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "false", + "text": " ", + "kind": "space" + }, + { + "text": "Function", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Function", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "FunctionConstructor", + "kind": "interfaceName" } - ] - }, - { - "name": "finally", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "finally", - "kind": "keyword" + "text": "Creates a new function.", + "kind": "text" } ] }, { - "name": "for", - "kind": "keyword", + "name": "globalThis", + "kind": "module", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "for", + "text": "module", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "globalThis", + "kind": "moduleName" } - ] + ], + "documentation": [] }, { - "name": "function", + "name": "if", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "if", "kind": "keyword" } ] }, { - "name": "if", + "name": "implements", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "if", + "text": "implements", "kind": "keyword" } ] @@ -81942,194 +80391,209 @@ ] }, { - "name": "instanceof", - "kind": "keyword", - "kindModifiers": "", + "name": "Infinity", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "instanceof", + "text": "var", "kind": "keyword" - } - ] - }, - { - "name": "new", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "new", - "kind": "keyword" - } - ] - }, - { - "name": "null", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "null", - "kind": "keyword" - } - ] - }, - { - "name": "return", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "Infinity", + "kind": "localName" + }, { - "text": "return", - "kind": "keyword" - } - ] - }, - { - "name": "super", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": ":", + "kind": "punctuation" + }, { - "text": "super", - "kind": "keyword" - } - ] - }, - { - "name": "switch", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "switch", + "text": "number", "kind": "keyword" } - ] + ], + "documentation": [] }, { - "name": "this", + "name": "instanceof", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "this", + "text": "instanceof", "kind": "keyword" } ] }, { - "name": "throw", - "kind": "keyword", - "kindModifiers": "", + "name": "Int16Array", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "throw", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "true", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "true", + "text": " ", + "kind": "space" + }, + { + "text": "Int16Array", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Int16Array", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Int16ArrayConstructor", + "kind": "interfaceName" } - ] - }, - { - "name": "try", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "try", - "kind": "keyword" + "text": "A typed array of 16-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" } ] }, { - "name": "typeof", - "kind": "keyword", - "kindModifiers": "", + "name": "Int32Array", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "typeof", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "var", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Int32Array", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, { "text": "var", "kind": "keyword" - } - ] - }, - { - "name": "void", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Int32Array", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Int32ArrayConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ { - "text": "void", - "kind": "keyword" + "text": "A typed array of 32-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" } ] }, { - "name": "while", - "kind": "keyword", - "kindModifiers": "", + "name": "Int8Array", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "while", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "with", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "with", + "text": " ", + "kind": "space" + }, + { + "text": "Int8Array", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Int8Array", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Int8ArrayConstructor", + "kind": "interfaceName" } - ] - }, - { - "name": "implements", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "implements", - "kind": "keyword" + "text": "A typed array of 8-bit integer values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", + "kind": "text" } ] }, @@ -82146,111 +80610,54 @@ ] }, { - "name": "let", - "kind": "keyword", - "kindModifiers": "", + "name": "Intl", + "kind": "module", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "let", + "text": "namespace", "kind": "keyword" - } - ] - }, - { - "name": "package", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "package", - "kind": "keyword" - } - ] - }, - { - "name": "yield", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "yield", - "kind": "keyword" + "text": "Intl", + "kind": "moduleName" } - ] + ], + "documentation": [] }, { - "name": "as", - "kind": "keyword", - "kindModifiers": "", + "name": "isFinite", + "kind": "function", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "as", + "text": "function", "kind": "keyword" - } - ] - }, - { - "name": "async", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "async", - "kind": "keyword" - } - ] - }, - { - "name": "await", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "await", - "kind": "keyword" - } - ] - } - ] - } - }, - { - "marker": { - "fileName": "/tests/cases/fourslash/completionsCommentsClassMembers.ts", - "position": 2017, - "name": "67" - }, - "completionList": { - "isGlobalCompletion": false, - "isMemberCompletion": true, - "isNewIdentifierLocation": false, - "optionalReplacementSpan": { - "start": 2017, - "length": 2 - }, - "entries": [ - { - "name": "p1", - "kind": "property", - "kindModifiers": "public", - "sortText": "11", - "displayParts": [ + "text": "isFinite", + "kind": "functionName" + }, { "text": "(", "kind": "punctuation" }, { - "text": "property", - "kind": "text" + "text": "number", + "kind": "parameterName" }, { - "text": ")", + "text": ":", "kind": "punctuation" }, { @@ -82258,17 +80665,13 @@ "kind": "space" }, { - "text": "c1", - "kind": "className" + "text": "number", + "kind": "keyword" }, { - "text": ".", + "text": ")", "kind": "punctuation" }, - { - "text": "p1", - "kind": "propertyName" - }, { "text": ":", "kind": "punctuation" @@ -82278,57 +80681,60 @@ "kind": "space" }, { - "text": "number", + "text": "boolean", "kind": "keyword" } ], "documentation": [ { - "text": "p1 is property of c1", + "text": "Determines whether a supplied number is finite.", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "number", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Any numeric value.", + "kind": "text" + } + ] + } ] }, { - "name": "p2", - "kind": "method", - "kindModifiers": "public", - "sortText": "11", + "name": "isNaN", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" + "text": "function", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "c1", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "p2", - "kind": "methodName" + "text": "isNaN", + "kind": "functionName" }, { "text": "(", "kind": "punctuation" }, { - "text": "b", + "text": "number", "kind": "parameterName" }, { @@ -82356,50 +80762,69 @@ "kind": "space" }, { - "text": "number", + "text": "boolean", "kind": "keyword" } ], "documentation": [ { - "text": "sum with property", + "text": "Returns a Boolean value that indicates whether a value is the reserved value NaN (not a number).", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "number", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A numeric value.", + "kind": "text" + } + ] + } ] }, { - "name": "p3", - "kind": "property", - "kindModifiers": "public", - "sortText": "11", + "name": "JSON", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "(", - "kind": "punctuation" + "text": "interface", + "kind": "keyword" }, { - "text": "property", - "kind": "text" + "text": " ", + "kind": "space" }, { - "text": ")", - "kind": "punctuation" + "text": "JSON", + "kind": "localName" }, { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, { - "text": "c1", - "kind": "className" + "text": "var", + "kind": "keyword" }, { - "text": ".", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": "p3", - "kind": "propertyName" + "text": "JSON", + "kind": "localName" }, { "text": ":", @@ -82410,58 +80835,62 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "JSON", + "kind": "localName" } ], "documentation": [ { - "text": "getter property 1", + "text": "An intrinsic object that provides functions to convert JavaScript values to and from the JavaScript Object Notation (JSON) format.", "kind": "text" - }, - { - "text": "\n", - "kind": "lineBreak" - }, + } + ] + }, + { + "name": "let", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "setter property 1", - "kind": "text" + "text": "let", + "kind": "keyword" } ] }, { - "name": "nc_p1", - "kind": "property", - "kindModifiers": "public", - "sortText": "11", + "name": "Math", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "(", - "kind": "punctuation" + "text": "interface", + "kind": "keyword" }, { - "text": "property", - "kind": "text" + "text": " ", + "kind": "space" }, { - "text": ")", - "kind": "punctuation" + "text": "Math", + "kind": "localName" }, { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, { - "text": "c1", - "kind": "className" + "text": "var", + "kind": "keyword" }, { - "text": ".", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": "nc_p1", - "kind": "propertyName" + "text": "Math", + "kind": "localName" }, { "text": ":", @@ -82472,28 +80901,37 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "Math", + "kind": "localName" } ], - "documentation": [] + "documentation": [ + { + "text": "An intrinsic object that provides basic mathematics functionality and constants.", + "kind": "text" + } + ] }, { - "name": "nc_p2", - "kind": "method", - "kindModifiers": "public", - "sortText": "11", + "name": "NaN", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "(", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { - "text": "method", - "kind": "text" + "text": " ", + "kind": "space" }, { - "text": ")", + "text": "NaN", + "kind": "localName" + }, + { + "text": ":", "kind": "punctuation" }, { @@ -82501,40 +80939,69 @@ "kind": "space" }, { - "text": "c1", - "kind": "className" - }, + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "new", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": ".", - "kind": "punctuation" + "text": "new", + "kind": "keyword" + } + ] + }, + { + "name": "null", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "null", + "kind": "keyword" + } + ] + }, + { + "name": "Number", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" }, { - "text": "nc_p2", - "kind": "methodName" + "text": " ", + "kind": "space" }, { - "text": "(", - "kind": "punctuation" + "text": "Number", + "kind": "localName" }, { - "text": "b", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "Number", + "kind": "localName" }, { "text": ":", @@ -82545,45 +81012,50 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "NumberConstructor", + "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "An object that represents a number of any kind. All JavaScript numbers are 64-bit floating-point numbers.", + "kind": "text" + } + ] }, { - "name": "nc_p3", - "kind": "property", - "kindModifiers": "public", - "sortText": "11", + "name": "Object", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "(", - "kind": "punctuation" + "text": "interface", + "kind": "keyword" }, { - "text": "property", - "kind": "text" + "text": " ", + "kind": "space" }, { - "text": ")", - "kind": "punctuation" + "text": "Object", + "kind": "localName" }, { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, { - "text": "c1", - "kind": "className" + "text": "var", + "kind": "keyword" }, { - "text": ".", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": "nc_p3", - "kind": "propertyName" + "text": "Object", + "kind": "localName" }, { "text": ":", @@ -82594,53 +81066,31 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "ObjectConstructor", + "kind": "interfaceName" } ], - "documentation": [] - } - ] - } - }, - { - "marker": { - "fileName": "/tests/cases/fourslash/completionsCommentsClassMembers.ts", - "position": 2234, - "name": "87" - }, - "completionList": { - "isGlobalCompletion": false, - "isMemberCompletion": false, - "isNewIdentifierLocation": true, - "optionalReplacementSpan": { - "start": 2234, - "length": 2 - }, - "entries": [ + "documentation": [ + { + "text": "Provides functionality common to all JavaScript objects.", + "kind": "text" + } + ] + }, { - "name": "globalThis", - "kind": "module", + "name": "package", + "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "module", + "text": "package", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "globalThis", - "kind": "moduleName" } - ], - "documentation": [] + ] }, { - "name": "eval", + "name": "parseFloat", "kind": "function", "kindModifiers": "declare", "sortText": "15", @@ -82654,7 +81104,7 @@ "kind": "space" }, { - "text": "eval", + "text": "parseFloat", "kind": "functionName" }, { @@ -82662,7 +81112,7 @@ "kind": "punctuation" }, { - "text": "x", + "text": "string", "kind": "parameterName" }, { @@ -82690,13 +81140,13 @@ "kind": "space" }, { - "text": "any", + "text": "number", "kind": "keyword" } ], "documentation": [ { - "text": "Evaluates JavaScript code and executes it.", + "text": "Converts a string to a floating-point number.", "kind": "text" } ], @@ -82705,7 +81155,7 @@ "name": "param", "text": [ { - "text": "x", + "text": "string", "kind": "parameterName" }, { @@ -82713,7 +81163,7 @@ "kind": "space" }, { - "text": "A String value that contains valid JavaScript code.", + "text": "A string that contains a floating-point number.", "kind": "text" } ] @@ -82847,13 +81297,13 @@ ] }, { - "name": "parseFloat", - "kind": "function", + "name": "RangeError", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -82861,16 +81311,24 @@ "kind": "space" }, { - "text": "parseFloat", - "kind": "functionName" + "text": "RangeError", + "kind": "localName" }, { - "text": "(", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": "string", - "kind": "parameterName" + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "RangeError", + "kind": "localName" }, { "text": ":", @@ -82881,12 +81339,45 @@ "kind": "space" }, { - "text": "string", + "text": "RangeErrorConstructor", + "kind": "interfaceName" + } + ], + "documentation": [] + }, + { + "name": "ReferenceError", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", "kind": "keyword" }, { - "text": ")", - "kind": "punctuation" + "text": " ", + "kind": "space" + }, + { + "text": "ReferenceError", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "ReferenceError", + "kind": "localName" }, { "text": ":", @@ -82897,44 +81388,20 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Converts a string to a floating-point number.", - "kind": "text" + "text": "ReferenceErrorConstructor", + "kind": "interfaceName" } ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string that contains a floating-point number.", - "kind": "text" - } - ] - } - ] + "documentation": [] }, { - "name": "isNaN", - "kind": "function", + "name": "RegExp", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -82942,16 +81409,24 @@ "kind": "space" }, { - "text": "isNaN", - "kind": "functionName" + "text": "RegExp", + "kind": "localName" }, { - "text": "(", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": "number", - "kind": "parameterName" + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "RegExp", + "kind": "localName" }, { "text": ":", @@ -82962,12 +81437,57 @@ "kind": "space" }, { - "text": "number", + "text": "RegExpConstructor", + "kind": "interfaceName" + } + ], + "documentation": [] + }, + { + "name": "return", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "return", + "kind": "keyword" + } + ] + }, + { + "name": "String", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", "kind": "keyword" }, { - "text": ")", - "kind": "punctuation" + "text": " ", + "kind": "space" + }, + { + "text": "String", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "String", + "kind": "localName" }, { "text": ":", @@ -82978,44 +81498,49 @@ "kind": "space" }, { - "text": "boolean", - "kind": "keyword" + "text": "StringConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "Returns a Boolean value that indicates whether a value is the reserved value NaN (not a number).", + "text": "Allows manipulation and formatting of text strings and determination and location of substrings within strings.", "kind": "text" } - ], - "tags": [ + ] + }, + { + "name": "super", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "number", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A numeric value.", - "kind": "text" - } - ] + "text": "super", + "kind": "keyword" } ] }, { - "name": "isFinite", - "kind": "function", + "name": "switch", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "switch", + "kind": "keyword" + } + ] + }, + { + "name": "SyntaxError", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -83023,32 +81548,24 @@ "kind": "space" }, { - "text": "isFinite", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" + "text": "SyntaxError", + "kind": "localName" }, { - "text": "number", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "SyntaxError", + "kind": "localName" }, { "text": ":", @@ -83059,44 +81576,68 @@ "kind": "space" }, { - "text": "boolean", - "kind": "keyword" + "text": "SyntaxErrorConstructor", + "kind": "interfaceName" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "this", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "Determines whether a supplied number is finite.", - "kind": "text" + "text": "this", + "kind": "keyword" } - ], - "tags": [ + ] + }, + { + "name": "throw", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "number", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Any numeric value.", - "kind": "text" - } - ] + "text": "throw", + "kind": "keyword" } ] }, { - "name": "decodeURI", - "kind": "function", + "name": "true", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "true", + "kind": "keyword" + } + ] + }, + { + "name": "try", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "try", + "kind": "keyword" + } + ] + }, + { + "name": "TypeError", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -83104,16 +81645,24 @@ "kind": "space" }, { - "text": "decodeURI", - "kind": "functionName" + "text": "TypeError", + "kind": "localName" }, { - "text": "(", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": "encodedURI", - "kind": "parameterName" + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "TypeError", + "kind": "localName" }, { "text": ":", @@ -83124,12 +81673,57 @@ "kind": "space" }, { - "text": "string", + "text": "TypeErrorConstructor", + "kind": "interfaceName" + } + ], + "documentation": [] + }, + { + "name": "typeof", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "typeof", + "kind": "keyword" + } + ] + }, + { + "name": "Uint16Array", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", "kind": "keyword" }, { - "text": ")", - "kind": "punctuation" + "text": " ", + "kind": "space" + }, + { + "text": "Uint16Array", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint16Array", + "kind": "localName" }, { "text": ":", @@ -83140,44 +81734,25 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "Uint16ArrayConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "Gets the unencoded version of an encoded Uniform Resource Identifier (URI).", + "text": "A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", "kind": "text" } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "encodedURI", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI.", - "kind": "text" - } - ] - } ] }, { - "name": "decodeURIComponent", - "kind": "function", + "name": "Uint32Array", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -83185,32 +81760,24 @@ "kind": "space" }, { - "text": "decodeURIComponent", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" + "text": "Uint32Array", + "kind": "localName" }, { - "text": "encodedURIComponent", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "Uint32Array", + "kind": "localName" }, { "text": ":", @@ -83221,44 +81788,25 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "Uint32ArrayConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).", + "text": "A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", "kind": "text" } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "encodedURIComponent", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI component.", - "kind": "text" - } - ] - } ] }, { - "name": "encodeURI", - "kind": "function", + "name": "Uint8Array", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -83266,32 +81814,24 @@ "kind": "space" }, { - "text": "encodeURI", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" + "text": "Uint8Array", + "kind": "localName" }, { - "text": "uri", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "Uint8Array", + "kind": "localName" }, { "text": ":", @@ -83302,44 +81842,25 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "Uint8ArrayConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "Encodes a text string as a valid Uniform Resource Identifier (URI)", + "text": "A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", "kind": "text" } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "uri", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI.", - "kind": "text" - } - ] - } ] }, { - "name": "encodeURIComponent", - "kind": "function", + "name": "Uint8ClampedArray", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -83347,16 +81868,24 @@ "kind": "space" }, { - "text": "encodeURIComponent", - "kind": "functionName" + "text": "Uint8ClampedArray", + "kind": "localName" }, { - "text": "(", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": "uriComponent", - "kind": "parameterName" + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint8ClampedArray", + "kind": "localName" }, { "text": ":", @@ -83367,7 +81896,25 @@ "kind": "space" }, { - "text": "string", + "text": "Uint8ClampedArrayConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ + { + "text": "A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0.\r\nIf the requested number of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] + }, + { + "name": "undefined", + "kind": "var", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "var", "kind": "keyword" }, { @@ -83375,36 +81922,45 @@ "kind": "space" }, { - "text": "|", - "kind": "punctuation" + "text": "undefined", + "kind": "propertyName" + } + ], + "documentation": [] + }, + { + "name": "URIError", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "URIError", + "kind": "localName" }, { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, { - "text": "|", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "boolean", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "URIError", + "kind": "localName" }, { "text": ":", @@ -83415,33 +81971,69 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "URIErrorConstructor", + "kind": "interfaceName" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "var", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "Encodes a text string as a valid component of a Uniform Resource Identifier (URI).", - "kind": "text" + "text": "var", + "kind": "keyword" } - ], - "tags": [ + ] + }, + { + "name": "void", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "uriComponent", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI component.", - "kind": "text" - } - ] + "text": "void", + "kind": "keyword" + } + ] + }, + { + "name": "while", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "while", + "kind": "keyword" + } + ] + }, + { + "name": "with", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "with", + "kind": "keyword" + } + ] + }, + { + "name": "yield", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "yield", + "kind": "keyword" } ] }, @@ -83449,7 +82041,7 @@ "name": "escape", "kind": "function", "kindModifiers": "deprecated,declare", - "sortText": "23", + "sortText": "z15", "displayParts": [ { "text": "function", @@ -83539,7 +82131,7 @@ "name": "unescape", "kind": "function", "kindModifiers": "deprecated,declare", - "sortText": "23", + "sortText": "z15", "displayParts": [ { "text": "function", @@ -83624,27 +82216,41 @@ ] } ] - }, + } + ] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/completionsCommentsClassMembers.ts", + "position": 2017, + "name": "67" + }, + "completionList": { + "isGlobalCompletion": false, + "isMemberCompletion": true, + "isNewIdentifierLocation": false, + "optionalReplacementSpan": { + "start": 2017, + "length": 2 + }, + "entries": [ { - "name": "NaN", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "nc_p1", + "kind": "property", + "kindModifiers": "public", + "sortText": "11", "displayParts": [ { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "NaN", - "kind": "localName" + "text": "property", + "kind": "text" }, { - "text": ":", + "text": ")", "kind": "punctuation" }, { @@ -83652,29 +82258,16 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "Infinity", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "var", - "kind": "keyword" + "text": "c1", + "kind": "className" }, { - "text": " ", - "kind": "space" + "text": ".", + "kind": "punctuation" }, { - "text": "Infinity", - "kind": "localName" + "text": "nc_p1", + "kind": "propertyName" }, { "text": ":", @@ -83692,95 +82285,21 @@ "documentation": [] }, { - "name": "Object", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "nc_p2", + "kind": "method", + "kindModifiers": "public", + "sortText": "11", "displayParts": [ { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Object", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Object", - "kind": "localName" - }, - { - "text": ":", + "text": "(", "kind": "punctuation" }, { - "text": " ", - "kind": "space" - }, - { - "text": "ObjectConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "Provides functionality common to all JavaScript objects.", + "text": "method", "kind": "text" - } - ] - }, - { - "name": "Function", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Function", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Function", - "kind": "localName" }, { - "text": ":", + "text": ")", "kind": "punctuation" }, { @@ -83788,50 +82307,24 @@ "kind": "space" }, { - "text": "FunctionConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "Creates a new function.", - "kind": "text" - } - ] - }, - { - "name": "String", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "String", - "kind": "localName" + "text": "c1", + "kind": "className" }, { - "text": "\n", - "kind": "lineBreak" + "text": ".", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "nc_p2", + "kind": "methodName" }, { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "String", - "kind": "localName" + "text": "b", + "kind": "parameterName" }, { "text": ":", @@ -83842,50 +82335,12 @@ "kind": "space" }, { - "text": "StringConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "Allows manipulation and formatting of text strings and determination and location of substrings within strings.", - "kind": "text" - } - ] - }, - { - "name": "Boolean", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Boolean", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", + "text": "number", "kind": "keyword" }, { - "text": " ", - "kind": "space" - }, - { - "text": "Boolean", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -83896,45 +82351,45 @@ "kind": "space" }, { - "text": "BooleanConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], "documentation": [] }, { - "name": "Number", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "nc_p3", + "kind": "property", + "kindModifiers": "public", + "sortText": "11", "displayParts": [ { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Number", - "kind": "localName" + "text": "(", + "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": "property", + "kind": "text" }, { - "text": "var", - "kind": "keyword" + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Number", - "kind": "localName" + "text": "c1", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "nc_p3", + "kind": "propertyName" }, { "text": ":", @@ -83945,50 +82400,45 @@ "kind": "space" }, { - "text": "NumberConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], - "documentation": [ - { - "text": "An object that represents a number of any kind. All JavaScript numbers are 64-bit floating-point numbers.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "Math", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "p1", + "kind": "property", + "kindModifiers": "public", + "sortText": "11", "displayParts": [ { - "text": "interface", - "kind": "keyword" + "text": "(", + "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "property", + "kind": "text" }, { - "text": "Math", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": " ", + "kind": "space" }, { - "text": "var", - "kind": "keyword" + "text": "c1", + "kind": "className" }, { - "text": " ", - "kind": "space" + "text": ".", + "kind": "punctuation" }, { - "text": "Math", - "kind": "localName" + "text": "p1", + "kind": "propertyName" }, { "text": ":", @@ -83999,50 +82449,74 @@ "kind": "space" }, { - "text": "Math", - "kind": "localName" + "text": "number", + "kind": "keyword" } ], "documentation": [ { - "text": "An intrinsic object that provides basic mathematics functionality and constants.", + "text": "p1 is property of c1", "kind": "text" } ] }, { - "name": "Date", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "p2", + "kind": "method", + "kindModifiers": "public", + "sortText": "11", "displayParts": [ { - "text": "interface", - "kind": "keyword" + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Date", - "kind": "localName" + "text": "c1", + "kind": "className" }, { - "text": "\n", - "kind": "lineBreak" + "text": ".", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "p2", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "b", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Date", - "kind": "localName" + "text": "number", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -84053,50 +82527,50 @@ "kind": "space" }, { - "text": "DateConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], "documentation": [ { - "text": "Enables basic storage and retrieval of dates and times.", + "text": "sum with property", "kind": "text" } ] }, { - "name": "RegExp", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "p3", + "kind": "property", + "kindModifiers": "public", + "sortText": "11", "displayParts": [ { - "text": "interface", - "kind": "keyword" + "text": "(", + "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "property", + "kind": "text" }, { - "text": "RegExp", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": " ", + "kind": "space" }, { - "text": "var", - "kind": "keyword" + "text": "c1", + "kind": "className" }, { - "text": " ", - "kind": "space" + "text": ".", + "kind": "punctuation" }, { - "text": "RegExp", - "kind": "localName" + "text": "p3", + "kind": "propertyName" }, { "text": ":", @@ -84107,36 +82581,51 @@ "kind": "space" }, { - "text": "RegExpConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], - "documentation": [] - }, - { - "name": "Error", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, + "documentation": [ { - "text": "Error", - "kind": "localName" + "text": "getter property 1", + "kind": "text" }, { "text": "\n", "kind": "lineBreak" }, { - "text": "var", + "text": "setter property 1", + "kind": "text" + } + ] + } + ] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/completionsCommentsClassMembers.ts", + "position": 2234, + "name": "87" + }, + "completionList": { + "isGlobalCompletion": false, + "isMemberCompletion": false, + "isNewIdentifierLocation": true, + "optionalReplacementSpan": { + "start": 2234, + "length": 2 + }, + "entries": [ + { + "name": "c1", + "kind": "class", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "class", "kind": "keyword" }, { @@ -84144,46 +82633,44 @@ "kind": "space" }, { - "text": "Error", - "kind": "localName" - }, + "text": "c1", + "kind": "className" + } + ], + "documentation": [ { - "text": ":", - "kind": "punctuation" + "text": "This is comment for c1", + "kind": "text" + } + ] + }, + { + "name": "cProperties", + "kind": "class", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "class", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "ErrorConstructor", - "kind": "interfaceName" + "text": "cProperties", + "kind": "className" } ], "documentation": [] }, { - "name": "EvalError", + "name": "cProperties_i", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "EvalError", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, { "text": "var", "kind": "keyword" @@ -84193,7 +82680,7 @@ "kind": "space" }, { - "text": "EvalError", + "text": "cProperties_i", "kind": "localName" }, { @@ -84205,20 +82692,20 @@ "kind": "space" }, { - "text": "EvalErrorConstructor", - "kind": "interfaceName" + "text": "cProperties", + "kind": "className" } ], "documentation": [] }, { - "name": "RangeError", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "cWithConstructorProperty", + "kind": "class", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "class", "kind": "keyword" }, { @@ -84226,13 +82713,18 @@ "kind": "space" }, { - "text": "RangeError", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, + "text": "cWithConstructorProperty", + "kind": "className" + } + ], + "documentation": [] + }, + { + "name": "i1", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { "text": "var", "kind": "keyword" @@ -84242,7 +82734,7 @@ "kind": "space" }, { - "text": "RangeError", + "text": "i1", "kind": "localName" }, { @@ -84254,20 +82746,20 @@ "kind": "space" }, { - "text": "RangeErrorConstructor", - "kind": "interfaceName" + "text": "c1", + "kind": "className" } ], "documentation": [] }, { - "name": "ReferenceError", + "name": "i1_c", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "var", "kind": "keyword" }, { @@ -84275,48 +82767,40 @@ "kind": "space" }, { - "text": "ReferenceError", + "text": "i1_c", "kind": "localName" }, { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "ReferenceError", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" + "text": "typeof", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "ReferenceErrorConstructor", - "kind": "interfaceName" + "text": "c1", + "kind": "className" } ], "documentation": [] }, { - "name": "SyntaxError", + "name": "i1_f", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "var", "kind": "keyword" }, { @@ -84324,76 +82808,47 @@ "kind": "space" }, { - "text": "SyntaxError", + "text": "i1_f", "kind": "localName" }, { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "SyntaxError", - "kind": "localName" - }, - { - "text": ":", + "text": "(", "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "b", + "kind": "parameterName" }, { - "text": "SyntaxErrorConstructor", - "kind": "interfaceName" - } - ], - "documentation": [] - }, - { - "name": "TypeError", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "TypeError", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" + "text": "number", + "kind": "keyword" }, { - "text": "var", - "kind": "keyword" + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "TypeError", - "kind": "localName" - }, - { - "text": ":", + "text": "=>", "kind": "punctuation" }, { @@ -84401,34 +82856,18 @@ "kind": "space" }, { - "text": "TypeErrorConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], "documentation": [] }, { - "name": "URIError", + "name": "i1_nc_p", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "URIError", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, { "text": "var", "kind": "keyword" @@ -84438,7 +82877,7 @@ "kind": "space" }, { - "text": "URIError", + "text": "i1_nc_p", "kind": "localName" }, { @@ -84450,34 +82889,18 @@ "kind": "space" }, { - "text": "URIErrorConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], "documentation": [] }, { - "name": "JSON", + "name": "i1_ncf", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "JSON", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, { "text": "var", "kind": "keyword" @@ -84487,7 +82910,7 @@ "kind": "space" }, { - "text": "JSON", + "text": "i1_ncf", "kind": "localName" }, { @@ -84499,51 +82922,54 @@ "kind": "space" }, { - "text": "JSON", - "kind": "localName" - } - ], - "documentation": [ + "text": "(", + "kind": "punctuation" + }, { - "text": "An intrinsic object that provides functions to convert JavaScript values to and from the JavaScript Object Notation (JSON) format.", - "kind": "text" - } - ] - }, - { - "name": "Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ + "text": "b", + "kind": "parameterName" + }, { - "text": "interface", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Array", - "kind": "localName" + "text": "number", + "kind": "keyword" }, { - "text": "<", + "text": ")", "kind": "punctuation" }, { - "text": "T", - "kind": "typeParameterName" + "text": " ", + "kind": "space" }, { - "text": ">", + "text": "=>", "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": " ", + "kind": "space" }, + { + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "i1_ncprop", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { "text": "var", "kind": "keyword" @@ -84553,7 +82979,7 @@ "kind": "space" }, { - "text": "Array", + "text": "i1_ncprop", "kind": "localName" }, { @@ -84565,34 +82991,18 @@ "kind": "space" }, { - "text": "ArrayConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], "documentation": [] }, { - "name": "ArrayBuffer", + "name": "i1_ncr", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "ArrayBuffer", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, { "text": "var", "kind": "keyword" @@ -84602,7 +83012,7 @@ "kind": "space" }, { - "text": "ArrayBuffer", + "text": "i1_ncr", "kind": "localName" }, { @@ -84614,39 +83024,18 @@ "kind": "space" }, { - "text": "ArrayBufferConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], - "documentation": [ - { - "text": "Represents a raw buffer of binary data, which is used to store data for the\r\ndifferent typed arrays. ArrayBuffers cannot be read from or written to directly,\r\nbut can be passed to a typed array or DataView Object to interpret the raw\r\nbuffer as needed.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "DataView", + "name": "i1_p", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "DataView", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, { "text": "var", "kind": "keyword" @@ -84656,7 +83045,7 @@ "kind": "space" }, { - "text": "DataView", + "text": "i1_p", "kind": "localName" }, { @@ -84668,20 +83057,20 @@ "kind": "space" }, { - "text": "DataViewConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], "documentation": [] }, { - "name": "Int8Array", + "name": "i1_prop", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "var", "kind": "keyword" }, { @@ -84689,13 +83078,30 @@ "kind": "space" }, { - "text": "Int8Array", + "text": "i1_prop", "kind": "localName" }, { - "text": "\n", - "kind": "lineBreak" + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" }, + { + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "i1_r", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { "text": "var", "kind": "keyword" @@ -84705,7 +83111,7 @@ "kind": "space" }, { - "text": "Int8Array", + "text": "i1_r", "kind": "localName" }, { @@ -84717,25 +83123,20 @@ "kind": "space" }, { - "text": "Int8ArrayConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], - "documentation": [ - { - "text": "A typed array of 8-bit integer values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "Uint8Array", + "name": "i1_s_f", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "var", "kind": "keyword" }, { @@ -84743,24 +83144,24 @@ "kind": "space" }, { - "text": "Uint8Array", + "text": "i1_s_f", "kind": "localName" }, { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Uint8Array", - "kind": "localName" + "text": "(", + "kind": "punctuation" + }, + { + "text": "b", + "kind": "parameterName" }, { "text": ":", @@ -84771,39 +83172,38 @@ "kind": "space" }, { - "text": "Uint8ArrayConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] - }, - { - "name": "Uint8ClampedArray", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", + "text": "number", "kind": "keyword" }, + { + "text": ")", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "Uint8ClampedArray", - "kind": "localName" + "text": "=>", + "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": " ", + "kind": "space" }, + { + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "i1_s_nc_p", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { "text": "var", "kind": "keyword" @@ -84813,7 +83213,7 @@ "kind": "space" }, { - "text": "Uint8ClampedArray", + "text": "i1_s_nc_p", "kind": "localName" }, { @@ -84825,25 +83225,20 @@ "kind": "space" }, { - "text": "Uint8ClampedArrayConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], - "documentation": [ - { - "text": "A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0.\r\nIf the requested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "Int16Array", + "name": "i1_s_ncf", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "var", "kind": "keyword" }, { @@ -84851,24 +83246,24 @@ "kind": "space" }, { - "text": "Int16Array", + "text": "i1_s_ncf", "kind": "localName" }, { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Int16Array", - "kind": "localName" + "text": "(", + "kind": "punctuation" + }, + { + "text": "b", + "kind": "parameterName" }, { "text": ":", @@ -84879,39 +83274,38 @@ "kind": "space" }, { - "text": "Int16ArrayConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "A typed array of 16-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] - }, - { - "name": "Uint16Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", + "text": "number", "kind": "keyword" }, + { + "text": ")", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "Uint16Array", - "kind": "localName" + "text": "=>", + "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": " ", + "kind": "space" }, + { + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "i1_s_ncprop", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { "text": "var", "kind": "keyword" @@ -84921,7 +83315,7 @@ "kind": "space" }, { - "text": "Uint16Array", + "text": "i1_s_ncprop", "kind": "localName" }, { @@ -84933,39 +83327,18 @@ "kind": "space" }, { - "text": "Uint16ArrayConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], - "documentation": [ - { - "text": "A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "Int32Array", + "name": "i1_s_ncr", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Int32Array", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, { "text": "var", "kind": "keyword" @@ -84975,7 +83348,7 @@ "kind": "space" }, { - "text": "Int32Array", + "text": "i1_s_ncr", "kind": "localName" }, { @@ -84987,25 +83360,20 @@ "kind": "space" }, { - "text": "Int32ArrayConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], - "documentation": [ - { - "text": "A typed array of 32-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "Uint32Array", + "name": "i1_s_prop", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "var", "kind": "keyword" }, { @@ -85013,13 +83381,30 @@ "kind": "space" }, { - "text": "Uint32Array", + "text": "i1_s_prop", "kind": "localName" }, { - "text": "\n", - "kind": "lineBreak" + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" }, + { + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "i1_s_r", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { "text": "var", "kind": "keyword" @@ -85029,7 +83414,7 @@ "kind": "space" }, { - "text": "Uint32Array", + "text": "i1_s_r", "kind": "localName" }, { @@ -85041,19 +83426,38 @@ "kind": "space" }, { - "text": "Uint32ArrayConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "abstract", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" + "text": "abstract", + "kind": "keyword" } ] }, { - "name": "Float32Array", + "name": "any", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "any", + "kind": "keyword" + } + ] + }, + { + "name": "Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -85067,9 +83471,21 @@ "kind": "space" }, { - "text": "Float32Array", + "text": "Array", "kind": "localName" }, + { + "text": "<", + "kind": "punctuation" + }, + { + "text": "T", + "kind": "typeParameterName" + }, + { + "text": ">", + "kind": "punctuation" + }, { "text": "\n", "kind": "lineBreak" @@ -85083,7 +83499,7 @@ "kind": "space" }, { - "text": "Float32Array", + "text": "Array", "kind": "localName" }, { @@ -85095,19 +83511,14 @@ "kind": "space" }, { - "text": "Float32ArrayConstructor", + "text": "ArrayConstructor", "kind": "interfaceName" } ], - "documentation": [ - { - "text": "A typed array of 32-bit float values. The contents are initialized to 0. If the requested number\r\nof bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "Float64Array", + "name": "ArrayBuffer", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -85121,7 +83532,7 @@ "kind": "space" }, { - "text": "Float64Array", + "text": "ArrayBuffer", "kind": "localName" }, { @@ -85137,7 +83548,7 @@ "kind": "space" }, { - "text": "Float64Array", + "text": "ArrayBuffer", "kind": "localName" }, { @@ -85149,138 +83560,97 @@ "kind": "space" }, { - "text": "Float64ArrayConstructor", + "text": "ArrayBufferConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "A typed array of 64-bit float values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", + "text": "Represents a raw buffer of binary data, which is used to store data for the\r\ndifferent typed arrays. ArrayBuffers cannot be read from or written to directly,\r\nbut can be passed to a typed array or DataView Object to interpret the raw\r\nbuffer as needed.", "kind": "text" } ] }, { - "name": "Intl", - "kind": "module", - "kindModifiers": "declare", + "name": "as", + "kind": "keyword", + "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "namespace", + "text": "as", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Intl", - "kind": "moduleName" } - ], - "documentation": [] + ] }, { - "name": "c1", - "kind": "class", + "name": "asserts", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "class", + "text": "asserts", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "c1", - "kind": "className" } - ], - "documentation": [ + ] + }, + { + "name": "async", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "This is comment for c1", - "kind": "text" + "text": "async", + "kind": "keyword" } ] }, { - "name": "i1", - "kind": "var", + "name": "await", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "await", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "i1", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, + } + ] + }, + { + "name": "bigint", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "c1", - "kind": "className" + "text": "bigint", + "kind": "keyword" } - ], - "documentation": [] + ] }, { - "name": "i1_p", - "kind": "var", + "name": "boolean", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "i1_p", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", + "text": "boolean", "kind": "keyword" } - ], - "documentation": [] + ] }, { - "name": "i1_f", + "name": "Boolean", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -85288,47 +83658,27 @@ "kind": "space" }, { - "text": "i1_f", + "text": "Boolean", "kind": "localName" }, { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "b", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "Boolean", + "kind": "localName" }, { - "text": "=>", + "text": ":", "kind": "punctuation" }, { @@ -85336,119 +83686,92 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "BooleanConstructor", + "kind": "interfaceName" } ], "documentation": [] }, { - "name": "i1_r", - "kind": "var", + "name": "break", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "break", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "i1_r", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, + } + ] + }, + { + "name": "case", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "number", + "text": "case", "kind": "keyword" } - ], - "documentation": [] + ] }, { - "name": "i1_prop", - "kind": "var", + "name": "catch", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "catch", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "i1_prop", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, + } + ] + }, + { + "name": "class", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "number", + "text": "class", "kind": "keyword" } - ], - "documentation": [] + ] }, { - "name": "i1_nc_p", - "kind": "var", + "name": "const", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "const", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "i1_nc_p", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, + } + ] + }, + { + "name": "continue", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "number", + "text": "continue", "kind": "keyword" } - ], - "documentation": [] + ] }, { - "name": "i1_ncf", + "name": "DataView", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -85456,47 +83779,27 @@ "kind": "space" }, { - "text": "i1_ncf", + "text": "DataView", "kind": "localName" }, { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "b", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "DataView", + "kind": "localName" }, { - "text": "=>", + "text": ":", "kind": "punctuation" }, { @@ -85504,20 +83807,20 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "DataViewConstructor", + "kind": "interfaceName" } ], "documentation": [] }, { - "name": "i1_ncr", + "name": "Date", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -85525,30 +83828,13 @@ "kind": "space" }, { - "text": "i1_ncr", + "text": "Date", "kind": "localName" }, { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_ncprop", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ { "text": "var", "kind": "keyword" @@ -85558,7 +83844,7 @@ "kind": "space" }, { - "text": "i1_ncprop", + "text": "Date", "kind": "localName" }, { @@ -85570,44 +83856,65 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "DateConstructor", + "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "Enables basic storage and retrieval of dates and times.", + "kind": "text" + } + ] }, { - "name": "i1_s_f", - "kind": "var", + "name": "debugger", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "debugger", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, + } + ] + }, + { + "name": "declare", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "i1_s_f", - "kind": "localName" - }, + "text": "declare", + "kind": "keyword" + } + ] + }, + { + "name": "decodeURI", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { - "text": ":", - "kind": "punctuation" + "text": "function", + "kind": "keyword" }, { "text": " ", "kind": "space" }, + { + "text": "decodeURI", + "kind": "functionName" + }, { "text": "(", "kind": "punctuation" }, { - "text": "b", + "text": "encodedURI", "kind": "parameterName" }, { @@ -85619,7 +83926,7 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" }, { @@ -85627,11 +83934,7 @@ "kind": "punctuation" }, { - "text": " ", - "kind": "space" - }, - { - "text": "=>", + "text": ":", "kind": "punctuation" }, { @@ -85639,20 +83942,44 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Gets the unencoded version of an encoded Uniform Resource Identifier (URI).", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "encodedURI", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI.", + "kind": "text" + } + ] + } + ] }, { - "name": "i1_s_r", - "kind": "var", - "kindModifiers": "", - "sortText": "11", + "name": "decodeURIComponent", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "function", "kind": "keyword" }, { @@ -85660,41 +83987,32 @@ "kind": "space" }, { - "text": "i1_s_r", - "kind": "localName" + "text": "decodeURIComponent", + "kind": "functionName" }, { - "text": ":", + "text": "(", "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "encodedURIComponent", + "kind": "parameterName" }, { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_s_prop", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "i1_s_prop", - "kind": "localName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -85705,53 +84023,92 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "encodedURIComponent", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI component.", + "kind": "text" + } + ] + } + ] }, { - "name": "i1_s_nc_p", - "kind": "var", + "name": "default", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "default", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "i1_s_nc_p", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, + } + ] + }, + { + "name": "delete", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": " ", - "kind": "space" - }, + "text": "delete", + "kind": "keyword" + } + ] + }, + { + "name": "do", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "number", + "text": "do", "kind": "keyword" } - ], - "documentation": [] + ] }, { - "name": "i1_s_ncf", - "kind": "var", + "name": "else", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "else", + "kind": "keyword" + } + ] + }, + { + "name": "encodeURI", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "function", "kind": "keyword" }, { @@ -85759,23 +84116,15 @@ "kind": "space" }, { - "text": "i1_s_ncf", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "encodeURI", + "kind": "functionName" }, { "text": "(", "kind": "punctuation" }, { - "text": "b", + "text": "uri", "kind": "parameterName" }, { @@ -85787,7 +84136,7 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" }, { @@ -85795,11 +84144,7 @@ "kind": "punctuation" }, { - "text": " ", - "kind": "space" - }, - { - "text": "=>", + "text": ":", "kind": "punctuation" }, { @@ -85807,20 +84152,44 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Encodes a text string as a valid Uniform Resource Identifier (URI)", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "uri", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI.", + "kind": "text" + } + ] + } + ] }, { - "name": "i1_s_ncr", - "kind": "var", - "kindModifiers": "", - "sortText": "11", + "name": "encodeURIComponent", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "function", "kind": "keyword" }, { @@ -85828,41 +84197,16 @@ "kind": "space" }, { - "text": "i1_s_ncr", - "kind": "localName" + "text": "encodeURIComponent", + "kind": "functionName" }, { - "text": ":", + "text": "(", "kind": "punctuation" }, { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_s_ncprop", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "i1_s_ncprop", - "kind": "localName" + "text": "uriComponent", + "kind": "parameterName" }, { "text": ":", @@ -85873,20 +84217,7 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_c", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "var", + "text": "string", "kind": "keyword" }, { @@ -85894,11 +84225,7 @@ "kind": "space" }, { - "text": "i1_c", - "kind": "localName" - }, - { - "text": ":", + "text": "|", "kind": "punctuation" }, { @@ -85906,7 +84233,7 @@ "kind": "space" }, { - "text": "typeof", + "text": "number", "kind": "keyword" }, { @@ -85914,50 +84241,20 @@ "kind": "space" }, { - "text": "c1", - "kind": "className" - } - ], - "documentation": [] - }, - { - "name": "cProperties", - "kind": "class", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "class", - "kind": "keyword" + "text": "|", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "cProperties", - "kind": "className" - } - ], - "documentation": [] - }, - { - "name": "cProperties_i", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "var", + "text": "boolean", "kind": "keyword" }, { - "text": " ", - "kind": "space" - }, - { - "text": "cProperties_i", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -85968,638 +84265,526 @@ "kind": "space" }, { - "text": "cProperties", - "kind": "className" - } - ], - "documentation": [] - }, - { - "name": "cWithConstructorProperty", - "kind": "class", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "class", + "text": "string", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "cWithConstructorProperty", - "kind": "className" } ], - "documentation": [] - }, - { - "name": "undefined", - "kind": "var", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, + "documentation": [ { - "text": "undefined", - "kind": "propertyName" + "text": "Encodes a text string as a valid component of a Uniform Resource Identifier (URI).", + "kind": "text" } ], - "documentation": [] - }, - { - "name": "break", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "tags": [ { - "text": "break", - "kind": "keyword" + "name": "param", + "text": [ + { + "text": "uriComponent", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI component.", + "kind": "text" + } + ] } ] }, { - "name": "case", + "name": "enum", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "case", + "text": "enum", "kind": "keyword" } ] }, { - "name": "catch", - "kind": "keyword", - "kindModifiers": "", + "name": "Error", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "catch", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "class", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "class", - "kind": "keyword" - } - ] - }, - { - "name": "const", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "const", - "kind": "keyword" - } - ] - }, - { - "name": "continue", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "Error", + "kind": "localName" + }, { - "text": "continue", - "kind": "keyword" - } - ] - }, - { - "name": "debugger", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "\n", + "kind": "lineBreak" + }, { - "text": "debugger", + "text": "var", "kind": "keyword" - } - ] - }, - { - "name": "default", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "default", - "kind": "keyword" - } - ] - }, - { - "name": "delete", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "delete", - "kind": "keyword" - } - ] - }, - { - "name": "do", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "Error", + "kind": "localName" + }, { - "text": "do", - "kind": "keyword" - } - ] - }, - { - "name": "else", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": ":", + "kind": "punctuation" + }, { - "text": "else", - "kind": "keyword" - } - ] - }, - { - "name": "enum", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "enum", - "kind": "keyword" + "text": "ErrorConstructor", + "kind": "interfaceName" } - ] + ], + "documentation": [] }, { - "name": "export", - "kind": "keyword", - "kindModifiers": "", + "name": "eval", + "kind": "function", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "export", + "text": "function", "kind": "keyword" - } - ] - }, - { - "name": "extends", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "extends", - "kind": "keyword" - } - ] - }, - { - "name": "false", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "false", - "kind": "keyword" - } - ] - }, - { - "name": "finally", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "eval", + "kind": "functionName" + }, { - "text": "finally", - "kind": "keyword" - } - ] - }, - { - "name": "for", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "(", + "kind": "punctuation" + }, { - "text": "for", - "kind": "keyword" - } - ] - }, - { - "name": "function", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "x", + "kind": "parameterName" + }, { - "text": "function", - "kind": "keyword" - } - ] - }, - { - "name": "if", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": ":", + "kind": "punctuation" + }, { - "text": "if", - "kind": "keyword" - } - ] - }, - { - "name": "import", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "import", + "text": "string", "kind": "keyword" - } - ] - }, - { - "name": "in", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "in", - "kind": "keyword" - } - ] - }, - { - "name": "instanceof", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": ")", + "kind": "punctuation" + }, { - "text": "instanceof", - "kind": "keyword" - } - ] - }, - { - "name": "new", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, { - "text": "new", + "text": "any", "kind": "keyword" } - ] - }, - { - "name": "null", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "null", - "kind": "keyword" + "text": "Evaluates JavaScript code and executes it.", + "kind": "text" } - ] - }, - { - "name": "return", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "tags": [ { - "text": "return", - "kind": "keyword" + "name": "param", + "text": [ + { + "text": "x", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A String value that contains valid JavaScript code.", + "kind": "text" + } + ] } ] }, { - "name": "super", - "kind": "keyword", - "kindModifiers": "", + "name": "EvalError", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "super", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "switch", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "switch", + "text": " ", + "kind": "space" + }, + { + "text": "EvalError", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "EvalError", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "EvalErrorConstructor", + "kind": "interfaceName" } - ] + ], + "documentation": [] }, { - "name": "this", + "name": "export", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "this", + "text": "export", "kind": "keyword" } ] }, { - "name": "throw", + "name": "extends", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "throw", + "text": "extends", "kind": "keyword" } ] }, { - "name": "true", + "name": "false", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "true", + "text": "false", "kind": "keyword" } ] }, { - "name": "try", + "name": "finally", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "try", + "text": "finally", "kind": "keyword" } ] }, { - "name": "typeof", - "kind": "keyword", - "kindModifiers": "", + "name": "Float32Array", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "typeof", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "var", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Float32Array", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, { "text": "var", "kind": "keyword" - } - ] - }, - { - "name": "void", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "void", - "kind": "keyword" - } - ] - }, - { - "name": "while", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "while", - "kind": "keyword" - } - ] - }, - { - "name": "with", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "Float32Array", + "kind": "localName" + }, { - "text": "with", - "kind": "keyword" + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Float32ArrayConstructor", + "kind": "interfaceName" } - ] - }, - { - "name": "implements", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "implements", - "kind": "keyword" + "text": "A typed array of 32-bit float values. The contents are initialized to 0. If the requested number\r\nof bytes could not be allocated an exception is raised.", + "kind": "text" } ] }, { - "name": "interface", - "kind": "keyword", - "kindModifiers": "", + "name": "Float64Array", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "let", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "let", + "text": " ", + "kind": "space" + }, + { + "text": "Float64Array", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Float64Array", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Float64ArrayConstructor", + "kind": "interfaceName" } - ] - }, - { - "name": "package", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "package", - "kind": "keyword" + "text": "A typed array of 64-bit float values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", + "kind": "text" } ] }, { - "name": "yield", + "name": "for", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "yield", + "text": "for", "kind": "keyword" } ] }, { - "name": "abstract", + "name": "function", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "abstract", + "text": "function", "kind": "keyword" } ] }, { - "name": "as", - "kind": "keyword", - "kindModifiers": "", + "name": "Function", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "as", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "asserts", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "asserts", + "text": " ", + "kind": "space" + }, + { + "text": "Function", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Function", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "FunctionConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ + { + "text": "Creates a new function.", + "kind": "text" } ] }, { - "name": "any", - "kind": "keyword", + "name": "globalThis", + "kind": "module", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "any", + "text": "module", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "globalThis", + "kind": "moduleName" } - ] + ], + "documentation": [] }, { - "name": "async", + "name": "if", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "async", + "text": "if", "kind": "keyword" } ] }, { - "name": "await", + "name": "implements", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "await", + "text": "implements", "kind": "keyword" } ] }, { - "name": "boolean", + "name": "import", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "boolean", + "text": "import", "kind": "keyword" } ] }, { - "name": "declare", + "name": "in", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "declare", + "text": "in", "kind": "keyword" } ] @@ -86617,195 +84802,273 @@ ] }, { - "name": "keyof", - "kind": "keyword", - "kindModifiers": "", + "name": "Infinity", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "keyof", + "text": "var", "kind": "keyword" - } - ] - }, - { - "name": "module", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "module", + "text": " ", + "kind": "space" + }, + { + "text": "Infinity", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" } - ] + ], + "documentation": [] }, { - "name": "namespace", + "name": "instanceof", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "namespace", + "text": "instanceof", "kind": "keyword" } ] }, { - "name": "never", - "kind": "keyword", - "kindModifiers": "", + "name": "Int16Array", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "never", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "readonly", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "readonly", + "text": " ", + "kind": "space" + }, + { + "text": "Int16Array", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Int16Array", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Int16ArrayConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ + { + "text": "A typed array of 16-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" } ] }, { - "name": "number", - "kind": "keyword", - "kindModifiers": "", + "name": "Int32Array", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "number", - "kind": "keyword" + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Int32Array", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Int32Array", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Int32ArrayConstructor", + "kind": "interfaceName" } - ] - }, - { - "name": "object", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "object", - "kind": "keyword" + "text": "A typed array of 32-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" } ] }, { - "name": "string", - "kind": "keyword", - "kindModifiers": "", + "name": "Int8Array", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "string", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "symbol", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "symbol", + "text": " ", + "kind": "space" + }, + { + "text": "Int8Array", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Int8Array", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Int8ArrayConstructor", + "kind": "interfaceName" } - ] - }, - { - "name": "type", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "type", - "kind": "keyword" + "text": "A typed array of 8-bit integer values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", + "kind": "text" } ] }, { - "name": "unique", + "name": "interface", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "unique", + "text": "interface", "kind": "keyword" } ] }, { - "name": "unknown", - "kind": "keyword", - "kindModifiers": "", + "name": "Intl", + "kind": "module", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "unknown", + "text": "namespace", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Intl", + "kind": "moduleName" } - ] + ], + "documentation": [] }, { - "name": "bigint", - "kind": "keyword", - "kindModifiers": "", + "name": "isFinite", + "kind": "function", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "bigint", + "text": "function", "kind": "keyword" - } - ] - } - ] - } - }, - { - "marker": { - "fileName": "/tests/cases/fourslash/completionsCommentsClassMembers.ts", - "position": 2237, - "name": "88" - }, - "completionList": { - "isGlobalCompletion": false, - "isMemberCompletion": true, - "isNewIdentifierLocation": false, - "optionalReplacementSpan": { - "start": 2237, - "length": 2 - }, - "entries": [ - { - "name": "prototype", - "kind": "property", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "isFinite", + "kind": "functionName" + }, { "text": "(", "kind": "punctuation" }, { - "text": "property", - "kind": "text" + "text": "number", + "kind": "parameterName" }, { - "text": ")", + "text": ":", "kind": "punctuation" }, { @@ -86813,17 +85076,13 @@ "kind": "space" }, { - "text": "c1", - "kind": "className" + "text": "number", + "kind": "keyword" }, { - "text": ".", + "text": ")", "kind": "punctuation" }, - { - "text": "prototype", - "kind": "propertyName" - }, { "text": ":", "kind": "punctuation" @@ -86833,28 +85092,64 @@ "kind": "space" }, { - "text": "c1", - "kind": "className" + "text": "boolean", + "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Determines whether a supplied number is finite.", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "number", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Any numeric value.", + "kind": "text" + } + ] + } + ] }, { - "name": "s1", - "kind": "property", - "kindModifiers": "static", - "sortText": "10", + "name": "isNaN", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "isNaN", + "kind": "functionName" + }, { "text": "(", "kind": "punctuation" }, { - "text": "property", - "kind": "text" + "text": "number", + "kind": "parameterName" }, { - "text": ")", + "text": ":", "kind": "punctuation" }, { @@ -86862,17 +85157,13 @@ "kind": "space" }, { - "text": "c1", - "kind": "className" + "text": "number", + "kind": "keyword" }, { - "text": ".", + "text": ")", "kind": "punctuation" }, - { - "text": "s1", - "kind": "propertyName" - }, { "text": ":", "kind": "punctuation" @@ -86882,74 +85173,147 @@ "kind": "space" }, { - "text": "number", + "text": "boolean", "kind": "keyword" } ], "documentation": [ { - "text": "s1 is static property of c1", + "text": "Returns a Boolean value that indicates whether a value is the reserved value NaN (not a number).", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "number", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A numeric value.", + "kind": "text" + } + ] + } ] }, { - "name": "s2", - "kind": "method", - "kindModifiers": "static", - "sortText": "10", + "name": "JSON", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "(", - "kind": "punctuation" + "text": "interface", + "kind": "keyword" }, { - "text": "method", - "kind": "text" + "text": " ", + "kind": "space" }, { - "text": ")", - "kind": "punctuation" + "text": "JSON", + "kind": "localName" }, { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, { - "text": "c1", - "kind": "className" + "text": "var", + "kind": "keyword" }, { - "text": ".", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": "s2", - "kind": "methodName" + "text": "JSON", + "kind": "localName" }, { - "text": "(", + "text": ":", "kind": "punctuation" }, { - "text": "b", - "kind": "parameterName" + "text": " ", + "kind": "space" }, { - "text": ":", - "kind": "punctuation" + "text": "JSON", + "kind": "localName" + } + ], + "documentation": [ + { + "text": "An intrinsic object that provides functions to convert JavaScript values to and from the JavaScript Object Notation (JSON) format.", + "kind": "text" + } + ] + }, + { + "name": "keyof", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "keyof", + "kind": "keyword" + } + ] + }, + { + "name": "let", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "let", + "kind": "keyword" + } + ] + }, + { + "name": "Math", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "number", + "text": "Math", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" }, { - "text": ")", - "kind": "punctuation" + "text": " ", + "kind": "space" + }, + { + "text": "Math", + "kind": "localName" }, { "text": ":", @@ -86960,50 +85324,58 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "Math", + "kind": "localName" } ], "documentation": [ { - "text": "static sum with property", + "text": "An intrinsic object that provides basic mathematics functionality and constants.", "kind": "text" } ] }, { - "name": "s3", - "kind": "property", - "kindModifiers": "static", - "sortText": "10", + "name": "module", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", "displayParts": [ { - "text": "(", - "kind": "punctuation" - }, + "text": "module", + "kind": "keyword" + } + ] + }, + { + "name": "namespace", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "property", - "kind": "text" - }, + "text": "namespace", + "kind": "keyword" + } + ] + }, + { + "name": "NaN", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { - "text": ")", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "c1", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "s3", - "kind": "propertyName" + "text": "NaN", + "kind": "localName" }, { "text": ":", @@ -87018,54 +85390,89 @@ "kind": "keyword" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "never", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "static getter property", - "kind": "text" - }, + "text": "never", + "kind": "keyword" + } + ] + }, + { + "name": "new", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "\n", - "kind": "lineBreak" - }, + "text": "new", + "kind": "keyword" + } + ] + }, + { + "name": "null", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "setter property 3", - "kind": "text" + "text": "null", + "kind": "keyword" } ] }, { - "name": "nc_s1", - "kind": "property", - "kindModifiers": "static", - "sortText": "10", + "name": "number", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", "displayParts": [ { - "text": "(", - "kind": "punctuation" + "text": "number", + "kind": "keyword" + } + ] + }, + { + "name": "Number", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" }, { - "text": "property", - "kind": "text" + "text": " ", + "kind": "space" }, { - "text": ")", - "kind": "punctuation" + "text": "Number", + "kind": "localName" }, { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, { - "text": "c1", - "kind": "className" + "text": "var", + "kind": "keyword" }, { - "text": ".", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": "nc_s1", - "kind": "propertyName" + "text": "Number", + "kind": "localName" }, { "text": ":", @@ -87076,69 +85483,62 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "NumberConstructor", + "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "An object that represents a number of any kind. All JavaScript numbers are 64-bit floating-point numbers.", + "kind": "text" + } + ] }, { - "name": "nc_s2", - "kind": "method", - "kindModifiers": "static", - "sortText": "10", + "name": "object", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", "displayParts": [ { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, + "text": "object", + "kind": "keyword" + } + ] + }, + { + "name": "Object", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { - "text": ")", - "kind": "punctuation" + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "c1", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "nc_s2", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" + "text": "Object", + "kind": "localName" }, { - "text": "b", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "Object", + "kind": "localName" }, { "text": ":", @@ -87149,45 +85549,54 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "ObjectConstructor", + "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "Provides functionality common to all JavaScript objects.", + "kind": "text" + } + ] }, { - "name": "nc_s3", - "kind": "property", - "kindModifiers": "static", - "sortText": "10", + "name": "package", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", "displayParts": [ { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, + "text": "package", + "kind": "keyword" + } + ] + }, + { + "name": "parseFloat", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { - "text": ")", - "kind": "punctuation" + "text": "function", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "c1", - "kind": "className" + "text": "parseFloat", + "kind": "functionName" }, { - "text": ".", + "text": "(", "kind": "punctuation" }, { - "text": "nc_s3", - "kind": "propertyName" + "text": "string", + "kind": "parameterName" }, { "text": ":", @@ -87198,28 +85607,15 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "apply", - "kind": "method", - "kindModifiers": "declare", - "sortText": "11", - "displayParts": [ - { - "text": "(", - "kind": "punctuation" }, { - "text": "method", - "kind": "text" + "text": ")", + "kind": "punctuation" }, { - "text": ")", + "text": ":", "kind": "punctuation" }, { @@ -87227,47 +85623,60 @@ "kind": "space" }, { - "text": "Function", - "kind": "localName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "apply", - "kind": "methodName" - }, + "text": "number", + "kind": "keyword" + } + ], + "documentation": [ { - "text": "(", - "kind": "punctuation" - }, + "text": "Converts a string to a floating-point number.", + "kind": "text" + } + ], + "tags": [ { - "text": "this", - "kind": "parameterName" - }, + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string that contains a floating-point number.", + "kind": "text" + } + ] + } + ] + }, + { + "name": "parseInt", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { - "text": ":", - "kind": "punctuation" + "text": "function", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "Function", - "kind": "localName" + "text": "parseInt", + "kind": "functionName" }, { - "text": ",", + "text": "(", "kind": "punctuation" }, { - "text": " ", - "kind": "space" - }, - { - "text": "thisArg", + "text": "string", "kind": "parameterName" }, { @@ -87279,7 +85688,7 @@ "kind": "space" }, { - "text": "any", + "text": "string", "kind": "keyword" }, { @@ -87291,7 +85700,7 @@ "kind": "space" }, { - "text": "argArray", + "text": "radix", "kind": "parameterName" }, { @@ -87307,7 +85716,7 @@ "kind": "space" }, { - "text": "any", + "text": "number", "kind": "keyword" }, { @@ -87323,13 +85732,13 @@ "kind": "space" }, { - "text": "any", + "text": "number", "kind": "keyword" } ], "documentation": [ { - "text": "Calls the function, substituting the specified object for the this value of the function, and the specified array for the arguments of the function.", + "text": "Converts a string to an integer.", "kind": "text" } ], @@ -87338,7 +85747,7 @@ "name": "param", "text": [ { - "text": "thisArg", + "text": "string", "kind": "parameterName" }, { @@ -87346,7 +85755,7 @@ "kind": "space" }, { - "text": "The object to be used as the this object.", + "text": "A string to convert into a number.", "kind": "text" } ] @@ -87355,7 +85764,7 @@ "name": "param", "text": [ { - "text": "argArray", + "text": "radix", "kind": "parameterName" }, { @@ -87363,7 +85772,7 @@ "kind": "space" }, { - "text": "A set of arguments to be passed to the function.", + "text": "A value between 2 and 36 that specifies the base of the number in `string`.\r\nIf this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal.\r\nAll other strings are considered decimal.", "kind": "text" } ] @@ -87371,46 +85780,38 @@ ] }, { - "name": "call", - "kind": "method", + "name": "RangeError", + "kind": "var", "kindModifiers": "declare", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "Function", + "text": "RangeError", "kind": "localName" }, { - "text": ".", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": "call", - "kind": "methodName" + "text": "var", + "kind": "keyword" }, { - "text": "(", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": "this", - "kind": "parameterName" + "text": "RangeError", + "kind": "localName" }, { "text": ":", @@ -87421,35 +85822,60 @@ "kind": "space" }, { - "text": "Function", - "kind": "localName" - }, + "text": "RangeErrorConstructor", + "kind": "interfaceName" + } + ], + "documentation": [] + }, + { + "name": "readonly", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": ",", - "kind": "punctuation" + "text": "readonly", + "kind": "keyword" + } + ] + }, + { + "name": "ReferenceError", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "thisArg", - "kind": "parameterName" + "text": "ReferenceError", + "kind": "localName" }, { - "text": ":", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "any", - "kind": "keyword" + "text": "ReferenceError", + "kind": "localName" }, { - "text": ",", + "text": ":", "kind": "punctuation" }, { @@ -87457,36 +85883,45 @@ "kind": "space" }, { - "text": "...", - "kind": "punctuation" - }, - { - "text": "argArray", - "kind": "parameterName" - }, + "text": "ReferenceErrorConstructor", + "kind": "interfaceName" + } + ], + "documentation": [] + }, + { + "name": "RegExp", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { - "text": ":", - "kind": "punctuation" + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "any", - "kind": "keyword" + "text": "RegExp", + "kind": "localName" }, { - "text": "[", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": "]", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { - "text": ")", - "kind": "punctuation" + "text": " ", + "kind": "space" + }, + { + "text": "RegExp", + "kind": "localName" }, { "text": ":", @@ -87497,118 +85932,159 @@ "kind": "space" }, { - "text": "any", - "kind": "keyword" + "text": "RegExpConstructor", + "kind": "interfaceName" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "return", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "Calls a method of an object, substituting another object for the current object.", - "kind": "text" + "text": "return", + "kind": "keyword" } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "thisArg", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "The object to be used as the current object.", - "kind": "text" - } - ] - }, + ] + }, + { + "name": "string", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "argArray", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A list of arguments to be passed to the method.", - "kind": "text" - } - ] + "text": "string", + "kind": "keyword" } ] }, { - "name": "bind", - "kind": "method", + "name": "String", + "kind": "var", "kindModifiers": "declare", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "(", - "kind": "punctuation" + "text": "interface", + "kind": "keyword" }, { - "text": "method", - "kind": "text" + "text": " ", + "kind": "space" }, { - "text": ")", - "kind": "punctuation" + "text": "String", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "Function", + "text": "String", "kind": "localName" }, { - "text": ".", + "text": ":", "kind": "punctuation" }, { - "text": "bind", - "kind": "methodName" + "text": " ", + "kind": "space" }, { - "text": "(", - "kind": "punctuation" - }, + "text": "StringConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ { - "text": "this", - "kind": "parameterName" - }, + "text": "Allows manipulation and formatting of text strings and determination and location of substrings within strings.", + "kind": "text" + } + ] + }, + { + "name": "super", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "super", + "kind": "keyword" + } + ] + }, + { + "name": "switch", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "switch", + "kind": "keyword" + } + ] + }, + { + "name": "symbol", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "symbol", + "kind": "keyword" + } + ] + }, + { + "name": "SyntaxError", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { - "text": ":", - "kind": "punctuation" + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "Function", + "text": "SyntaxError", "kind": "localName" }, { - "text": ",", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "thisArg", - "kind": "parameterName" + "text": "SyntaxError", + "kind": "localName" }, { "text": ":", @@ -87619,48 +86095,105 @@ "kind": "space" }, { - "text": "any", + "text": "SyntaxErrorConstructor", + "kind": "interfaceName" + } + ], + "documentation": [] + }, + { + "name": "this", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "this", "kind": "keyword" - }, + } + ] + }, + { + "name": "throw", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": ",", - "kind": "punctuation" - }, + "text": "throw", + "kind": "keyword" + } + ] + }, + { + "name": "true", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": " ", - "kind": "space" - }, + "text": "true", + "kind": "keyword" + } + ] + }, + { + "name": "try", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "...", - "kind": "punctuation" - }, + "text": "try", + "kind": "keyword" + } + ] + }, + { + "name": "type", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "argArray", - "kind": "parameterName" - }, + "text": "type", + "kind": "keyword" + } + ] + }, + { + "name": "TypeError", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { - "text": ":", - "kind": "punctuation" + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "any", - "kind": "keyword" + "text": "TypeError", + "kind": "localName" }, { - "text": "[", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": "]", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { - "text": ")", - "kind": "punctuation" + "text": " ", + "kind": "space" + }, + { + "text": "TypeError", + "kind": "localName" }, { "text": ":", @@ -87671,94 +86204,57 @@ "kind": "space" }, { - "text": "any", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "For a given function, creates a bound function that has the same body as the original function.\r\nThe this object of the bound function is associated with the specified object, and has the specified initial parameters.", - "kind": "text" + "text": "TypeErrorConstructor", + "kind": "interfaceName" } ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "thisArg", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "An object to which the this keyword can refer inside the new function.", - "kind": "text" - } - ] - }, + "documentation": [] + }, + { + "name": "typeof", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "argArray", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A list of arguments to be passed to the new function.", - "kind": "text" - } - ] + "text": "typeof", + "kind": "keyword" } ] }, { - "name": "toString", - "kind": "method", + "name": "Uint16Array", + "kind": "var", "kindModifiers": "declare", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "Function", + "text": "Uint16Array", "kind": "localName" }, { - "text": ".", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": "toString", - "kind": "methodName" + "text": "var", + "kind": "keyword" }, { - "text": "(", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": ")", - "kind": "punctuation" + "text": "Uint16Array", + "kind": "localName" }, { "text": ":", @@ -87769,50 +86265,50 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "Uint16ArrayConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "Returns a string representation of a function.", + "text": "A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", "kind": "text" } ] }, { - "name": "length", - "kind": "property", + "name": "Uint32Array", + "kind": "var", "kindModifiers": "declare", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "(", - "kind": "punctuation" + "text": "interface", + "kind": "keyword" }, { - "text": "property", - "kind": "text" + "text": " ", + "kind": "space" }, { - "text": ")", - "kind": "punctuation" + "text": "Uint32Array", + "kind": "localName" }, { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, { - "text": "Function", - "kind": "localName" + "text": "var", + "kind": "keyword" }, { - "text": ".", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": "length", - "kind": "propertyName" + "text": "Uint32Array", + "kind": "localName" }, { "text": ":", @@ -87823,45 +86319,50 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "Uint32ArrayConstructor", + "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] }, { - "name": "arguments", - "kind": "property", + "name": "Uint8Array", + "kind": "var", "kindModifiers": "declare", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "(", - "kind": "punctuation" + "text": "interface", + "kind": "keyword" }, { - "text": "property", - "kind": "text" + "text": " ", + "kind": "space" }, { - "text": ")", - "kind": "punctuation" + "text": "Uint8Array", + "kind": "localName" }, { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, { - "text": "Function", - "kind": "localName" + "text": "var", + "kind": "keyword" }, { - "text": ".", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": "arguments", - "kind": "propertyName" + "text": "Uint8Array", + "kind": "localName" }, { "text": ":", @@ -87872,45 +86373,50 @@ "kind": "space" }, { - "text": "any", - "kind": "keyword" + "text": "Uint8ArrayConstructor", + "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] }, { - "name": "caller", - "kind": "property", + "name": "Uint8ClampedArray", + "kind": "var", "kindModifiers": "declare", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "(", - "kind": "punctuation" + "text": "interface", + "kind": "keyword" }, { - "text": "property", - "kind": "text" + "text": " ", + "kind": "space" }, { - "text": ")", - "kind": "punctuation" + "text": "Uint8ClampedArray", + "kind": "localName" }, { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, { - "text": "Function", - "kind": "localName" + "text": "var", + "kind": "keyword" }, { - "text": ".", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": "caller", - "kind": "propertyName" + "text": "Uint8ClampedArray", + "kind": "localName" }, { "text": ":", @@ -87921,34 +86427,25 @@ "kind": "space" }, { - "text": "Function", - "kind": "localName" + "text": "Uint8ClampedArrayConstructor", + "kind": "interfaceName" } ], - "documentation": [] - } - ] - } - }, - { - "marker": { - "fileName": "/tests/cases/fourslash/completionsCommentsClassMembers.ts", - "position": 2474, - "name": "109" - }, - "completionList": { - "isGlobalCompletion": true, - "isMemberCompletion": false, - "isNewIdentifierLocation": false, - "entries": [ + "documentation": [ + { + "text": "A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0.\r\nIf the requested number of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] + }, { - "name": "globalThis", - "kind": "module", + "name": "undefined", + "kind": "var", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "module", + "text": "var", "kind": "keyword" }, { @@ -87956,20 +86453,44 @@ "kind": "space" }, { - "text": "globalThis", - "kind": "moduleName" + "text": "undefined", + "kind": "propertyName" } ], "documentation": [] }, { - "name": "eval", - "kind": "function", + "name": "unique", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "unique", + "kind": "keyword" + } + ] + }, + { + "name": "unknown", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "unknown", + "kind": "keyword" + } + ] + }, + { + "name": "URIError", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -87977,32 +86498,24 @@ "kind": "space" }, { - "text": "eval", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" + "text": "URIError", + "kind": "localName" }, { - "text": "x", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "URIError", + "kind": "localName" }, { "text": ":", @@ -88013,41 +86526,77 @@ "kind": "space" }, { - "text": "any", - "kind": "keyword" + "text": "URIErrorConstructor", + "kind": "interfaceName" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "var", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "Evaluates JavaScript code and executes it.", - "kind": "text" + "text": "var", + "kind": "keyword" } - ], - "tags": [ + ] + }, + { + "name": "void", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "x", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A String value that contains valid JavaScript code.", - "kind": "text" - } - ] + "text": "void", + "kind": "keyword" + } + ] + }, + { + "name": "while", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "while", + "kind": "keyword" + } + ] + }, + { + "name": "with", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "with", + "kind": "keyword" + } + ] + }, + { + "name": "yield", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "yield", + "kind": "keyword" } ] }, { - "name": "parseInt", + "name": "escape", "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "deprecated,declare", + "sortText": "z15", "displayParts": [ { "text": "function", @@ -88058,7 +86607,7 @@ "kind": "space" }, { - "text": "parseInt", + "text": "escape", "kind": "functionName" }, { @@ -88081,34 +86630,6 @@ "text": "string", "kind": "keyword" }, - { - "text": ",", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "radix", - "kind": "parameterName" - }, - { - "text": "?", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, { "text": ")", "kind": "punctuation" @@ -88122,30 +86643,22 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" } ], "documentation": [ { - "text": "Converts a string to an integer.", + "text": "Computes a new string in which certain characters have been replaced by a hexadecimal escape sequence.", "kind": "text" } ], "tags": [ { - "name": "param", + "name": "deprecated", "text": [ { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string to convert into a number.", + "text": "A legacy feature for browser compatibility", "kind": "text" } ] @@ -88154,7 +86667,7 @@ "name": "param", "text": [ { - "text": "radix", + "text": "string", "kind": "parameterName" }, { @@ -88162,7 +86675,7 @@ "kind": "space" }, { - "text": "A value between 2 and 36 that specifies the base of the number in `string`.\r\nIf this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal.\r\nAll other strings are considered decimal.", + "text": "A string value", "kind": "text" } ] @@ -88170,10 +86683,10 @@ ] }, { - "name": "parseFloat", + "name": "unescape", "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "deprecated,declare", + "sortText": "z15", "displayParts": [ { "text": "function", @@ -88184,7 +86697,7 @@ "kind": "space" }, { - "text": "parseFloat", + "text": "unescape", "kind": "functionName" }, { @@ -88220,17 +86733,26 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" } ], "documentation": [ { - "text": "Converts a string to a floating-point number.", + "text": "Computes a new string in which hexadecimal escape sequences are replaced with the character that it represents.", "kind": "text" } ], "tags": [ + { + "name": "deprecated", + "text": [ + { + "text": "A legacy feature for browser compatibility", + "kind": "text" + } + ] + }, { "name": "param", "text": [ @@ -88243,41 +86765,47 @@ "kind": "space" }, { - "text": "A string that contains a floating-point number.", + "text": "A string value", "kind": "text" } ] } ] - }, + } + ] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/completionsCommentsClassMembers.ts", + "position": 2237, + "name": "88" + }, + "completionList": { + "isGlobalCompletion": false, + "isMemberCompletion": true, + "isNewIdentifierLocation": false, + "optionalReplacementSpan": { + "start": 2237, + "length": 2 + }, + "entries": [ { - "name": "isNaN", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "name": "nc_s1", + "kind": "property", + "kindModifiers": "static", + "sortText": "10", "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "isNaN", - "kind": "functionName" - }, { "text": "(", "kind": "punctuation" }, { - "text": "number", - "kind": "parameterName" + "text": "property", + "kind": "text" }, { - "text": ":", + "text": ")", "kind": "punctuation" }, { @@ -88285,13 +86813,17 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "c1", + "kind": "className" }, { - "text": ")", + "text": ".", "kind": "punctuation" }, + { + "text": "nc_s1", + "kind": "propertyName" + }, { "text": ":", "kind": "punctuation" @@ -88301,60 +86833,52 @@ "kind": "space" }, { - "text": "boolean", + "text": "number", "kind": "keyword" } ], - "documentation": [ - { - "text": "Returns a Boolean value that indicates whether a value is the reserved value NaN (not a number).", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "number", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A numeric value.", - "kind": "text" - } - ] - } - ] + "documentation": [] }, { - "name": "isFinite", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "name": "nc_s2", + "kind": "method", + "kindModifiers": "static", + "sortText": "10", "displayParts": [ { - "text": "function", - "kind": "keyword" + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "isFinite", - "kind": "functionName" + "text": "c1", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "nc_s2", + "kind": "methodName" }, { "text": "(", "kind": "punctuation" }, { - "text": "number", + "text": "b", "kind": "parameterName" }, { @@ -88382,64 +86906,28 @@ "kind": "space" }, { - "text": "boolean", + "text": "number", "kind": "keyword" } ], - "documentation": [ - { - "text": "Determines whether a supplied number is finite.", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "number", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Any numeric value.", - "kind": "text" - } - ] - } - ] + "documentation": [] }, { - "name": "decodeURI", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "name": "nc_s3", + "kind": "property", + "kindModifiers": "static", + "sortText": "10", "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "decodeURI", - "kind": "functionName" - }, { "text": "(", "kind": "punctuation" }, { - "text": "encodedURI", - "kind": "parameterName" + "text": "property", + "kind": "text" }, { - "text": ":", + "text": ")", "kind": "punctuation" }, { @@ -88447,13 +86935,17 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "c1", + "kind": "className" }, { - "text": ")", + "text": ".", "kind": "punctuation" }, + { + "text": "nc_s3", + "kind": "propertyName" + }, { "text": ":", "kind": "punctuation" @@ -88463,64 +86955,28 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" } ], - "documentation": [ - { - "text": "Gets the unencoded version of an encoded Uniform Resource Identifier (URI).", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "encodedURI", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI.", - "kind": "text" - } - ] - } - ] + "documentation": [] }, { - "name": "decodeURIComponent", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "name": "s1", + "kind": "property", + "kindModifiers": "static", + "sortText": "10", "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "decodeURIComponent", - "kind": "functionName" - }, { "text": "(", "kind": "punctuation" }, { - "text": "encodedURIComponent", - "kind": "parameterName" + "text": "property", + "kind": "text" }, { - "text": ":", + "text": ")", "kind": "punctuation" }, { @@ -88528,13 +86984,17 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "c1", + "kind": "className" }, { - "text": ")", + "text": ".", "kind": "punctuation" }, + { + "text": "s1", + "kind": "propertyName" + }, { "text": ":", "kind": "punctuation" @@ -88544,60 +87004,57 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" } ], "documentation": [ { - "text": "Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).", + "text": "s1 is static property of c1", "kind": "text" } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "encodedURIComponent", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI component.", - "kind": "text" - } - ] - } ] }, { - "name": "encodeURI", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "name": "s2", + "kind": "method", + "kindModifiers": "static", + "sortText": "10", "displayParts": [ { - "text": "function", - "kind": "keyword" + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "encodeURI", - "kind": "functionName" + "text": "c1", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "s2", + "kind": "methodName" }, { "text": "(", "kind": "punctuation" }, { - "text": "uri", + "text": "b", "kind": "parameterName" }, { @@ -88609,7 +87066,7 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" }, { @@ -88625,80 +87082,33 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" } ], "documentation": [ { - "text": "Encodes a text string as a valid Uniform Resource Identifier (URI)", + "text": "static sum with property", "kind": "text" } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "uri", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI.", - "kind": "text" - } - ] - } ] }, { - "name": "encodeURIComponent", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "name": "s3", + "kind": "property", + "kindModifiers": "static", + "sortText": "10", "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "encodeURIComponent", - "kind": "functionName" - }, { "text": "(", "kind": "punctuation" }, { - "text": "uriComponent", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" + "text": "property", + "kind": "text" }, { - "text": "|", + "text": ")", "kind": "punctuation" }, { @@ -88706,28 +87116,16 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" + "text": "c1", + "kind": "className" }, { - "text": "|", + "text": ".", "kind": "punctuation" }, { - "text": " ", - "kind": "space" - }, - { - "text": "boolean", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "s3", + "kind": "propertyName" }, { "text": ":", @@ -88738,60 +87136,65 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" } ], "documentation": [ { - "text": "Encodes a text string as a valid component of a Uniform Resource Identifier (URI).", + "text": "static getter property", "kind": "text" - } - ], - "tags": [ + }, { - "name": "param", - "text": [ - { - "text": "uriComponent", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI component.", - "kind": "text" - } - ] + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "setter property 3", + "kind": "text" } ] }, { - "name": "escape", - "kind": "function", - "kindModifiers": "deprecated,declare", - "sortText": "23", + "name": "apply", + "kind": "method", + "kindModifiers": "declare", + "sortText": "11", "displayParts": [ { - "text": "function", - "kind": "keyword" + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "escape", - "kind": "functionName" + "text": "Function", + "kind": "localName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "apply", + "kind": "methodName" }, { "text": "(", "kind": "punctuation" }, { - "text": "string", + "text": "this", "kind": "parameterName" }, { @@ -88803,13 +87206,21 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "Function", + "kind": "localName" }, { - "text": ")", + "text": ",", "kind": "punctuation" }, + { + "text": " ", + "kind": "space" + }, + { + "text": "thisArg", + "kind": "parameterName" + }, { "text": ":", "kind": "punctuation" @@ -88819,71 +87230,25 @@ "kind": "space" }, { - "text": "string", + "text": "any", "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Computes a new string in which certain characters have been replaced by a hexadecimal escape sequence.", - "kind": "text" - } - ], - "tags": [ - { - "name": "deprecated", - "text": [ - { - "text": "A legacy feature for browser compatibility", - "kind": "text" - } - ] }, { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string value", - "kind": "text" - } - ] - } - ] - }, - { - "name": "unescape", - "kind": "function", - "kindModifiers": "deprecated,declare", - "sortText": "23", - "displayParts": [ - { - "text": "function", - "kind": "keyword" + "text": ",", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "unescape", - "kind": "functionName" + "text": "argArray", + "kind": "parameterName" }, { - "text": "(", + "text": "?", "kind": "punctuation" }, - { - "text": "string", - "kind": "parameterName" - }, { "text": ":", "kind": "punctuation" @@ -88893,7 +87258,7 @@ "kind": "space" }, { - "text": "string", + "text": "any", "kind": "keyword" }, { @@ -88909,22 +87274,30 @@ "kind": "space" }, { - "text": "string", + "text": "any", "kind": "keyword" } ], "documentation": [ { - "text": "Computes a new string in which hexadecimal escape sequences are replaced with the character that it represents.", + "text": "Calls the function, substituting the specified object for the this value of the function, and the specified array for the arguments of the function.", "kind": "text" } ], "tags": [ { - "name": "deprecated", + "name": "param", "text": [ { - "text": "A legacy feature for browser compatibility", + "text": "thisArg", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "The object to be used as the this object.", "kind": "text" } ] @@ -88933,7 +87306,7 @@ "name": "param", "text": [ { - "text": "string", + "text": "argArray", "kind": "parameterName" }, { @@ -88941,7 +87314,7 @@ "kind": "space" }, { - "text": "A string value", + "text": "A set of arguments to be passed to the function.", "kind": "text" } ] @@ -88949,25 +87322,21 @@ ] }, { - "name": "NaN", - "kind": "var", + "name": "arguments", + "kind": "property", "kindModifiers": "declare", - "sortText": "15", + "sortText": "11", "displayParts": [ { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "NaN", - "kind": "localName" + "text": "property", + "kind": "text" }, { - "text": ":", + "text": ")", "kind": "punctuation" }, { @@ -88975,29 +87344,16 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "Infinity", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "var", - "kind": "keyword" + "text": "Function", + "kind": "localName" }, { - "text": " ", - "kind": "space" + "text": ".", + "kind": "punctuation" }, { - "text": "Infinity", - "kind": "localName" + "text": "arguments", + "kind": "propertyName" }, { "text": ":", @@ -89008,75 +87364,57 @@ "kind": "space" }, { - "text": "number", + "text": "any", "kind": "keyword" } ], "documentation": [] }, { - "name": "Object", - "kind": "var", + "name": "bind", + "kind": "method", "kindModifiers": "declare", - "sortText": "15", + "sortText": "11", "displayParts": [ { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Object", - "kind": "localName" + "text": "(", + "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": "method", + "kind": "text" }, { - "text": "var", - "kind": "keyword" + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Object", + "text": "Function", "kind": "localName" }, { - "text": ":", + "text": ".", "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "bind", + "kind": "methodName" }, { - "text": "ObjectConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ + "text": "(", + "kind": "punctuation" + }, { - "text": "Provides functionality common to all JavaScript objects.", - "kind": "text" - } - ] - }, - { - "name": "Function", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ + "text": "this", + "kind": "parameterName" + }, { - "text": "interface", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", @@ -89087,20 +87425,16 @@ "kind": "localName" }, { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": ",", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Function", - "kind": "localName" + "text": "thisArg", + "kind": "parameterName" }, { "text": ":", @@ -89111,50 +87445,48 @@ "kind": "space" }, { - "text": "FunctionConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "Creates a new function.", - "kind": "text" - } - ] - }, - { - "name": "String", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", + "text": "any", "kind": "keyword" }, + { + "text": ",", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "String", - "kind": "localName" + "text": "...", + "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": "argArray", + "kind": "parameterName" }, { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "String", - "kind": "localName" + "text": "any", + "kind": "keyword" + }, + { + "text": "[", + "kind": "punctuation" + }, + { + "text": "]", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -89165,50 +87497,94 @@ "kind": "space" }, { - "text": "StringConstructor", - "kind": "interfaceName" + "text": "any", + "kind": "keyword" } ], "documentation": [ { - "text": "Allows manipulation and formatting of text strings and determination and location of substrings within strings.", + "text": "For a given function, creates a bound function that has the same body as the original function.\r\nThe this object of the bound function is associated with the specified object, and has the specified initial parameters.", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "thisArg", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "An object to which the this keyword can refer inside the new function.", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "argArray", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A list of arguments to be passed to the new function.", + "kind": "text" + } + ] + } ] }, { - "name": "Boolean", - "kind": "var", + "name": "call", + "kind": "method", "kindModifiers": "declare", - "sortText": "15", + "sortText": "11", "displayParts": [ { - "text": "interface", - "kind": "keyword" + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Boolean", + "text": "Function", "kind": "localName" }, { - "text": "\n", - "kind": "lineBreak" + "text": ".", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "call", + "kind": "methodName" }, { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "Boolean", - "kind": "localName" + "text": "this", + "kind": "parameterName" }, { "text": ":", @@ -89219,48 +87595,35 @@ "kind": "space" }, { - "text": "BooleanConstructor", - "kind": "interfaceName" - } - ], - "documentation": [] - }, - { - "name": "Number", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ + "text": "Function", + "kind": "localName" + }, { - "text": "interface", - "kind": "keyword" + "text": ",", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Number", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" + "text": "thisArg", + "kind": "parameterName" }, { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Number", - "kind": "localName" + "text": "any", + "kind": "keyword" }, { - "text": ":", + "text": ",", "kind": "punctuation" }, { @@ -89268,50 +87631,36 @@ "kind": "space" }, { - "text": "NumberConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ + "text": "...", + "kind": "punctuation" + }, { - "text": "An object that represents a number of any kind. All JavaScript numbers are 64-bit floating-point numbers.", - "kind": "text" - } - ] - }, - { - "name": "Math", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ + "text": "argArray", + "kind": "parameterName" + }, { - "text": "interface", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Math", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" + "text": "any", + "kind": "keyword" }, { - "text": "var", - "kind": "keyword" + "text": "[", + "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "]", + "kind": "punctuation" }, { - "text": "Math", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -89322,51 +87671,87 @@ "kind": "space" }, { - "text": "Math", - "kind": "localName" + "text": "any", + "kind": "keyword" } ], "documentation": [ { - "text": "An intrinsic object that provides basic mathematics functionality and constants.", + "text": "Calls a method of an object, substituting another object for the current object.", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "thisArg", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "The object to be used as the current object.", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "argArray", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A list of arguments to be passed to the method.", + "kind": "text" + } + ] + } ] }, { - "name": "Date", - "kind": "var", + "name": "caller", + "kind": "property", "kindModifiers": "declare", - "sortText": "15", + "sortText": "11", "displayParts": [ { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Date", - "kind": "localName" + "text": "(", + "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": "property", + "kind": "text" }, { - "text": "var", - "kind": "keyword" + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Date", + "text": "Function", "kind": "localName" }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "caller", + "kind": "propertyName" + }, { "text": ":", "kind": "punctuation" @@ -89376,50 +87761,45 @@ "kind": "space" }, { - "text": "DateConstructor", - "kind": "interfaceName" + "text": "Function", + "kind": "localName" } ], - "documentation": [ - { - "text": "Enables basic storage and retrieval of dates and times.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "RegExp", - "kind": "var", + "name": "length", + "kind": "property", "kindModifiers": "declare", - "sortText": "15", + "sortText": "11", "displayParts": [ { - "text": "interface", - "kind": "keyword" + "text": "(", + "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "property", + "kind": "text" }, { - "text": "RegExp", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": " ", + "kind": "space" }, { - "text": "var", - "kind": "keyword" + "text": "Function", + "kind": "localName" }, { - "text": " ", - "kind": "space" + "text": ".", + "kind": "punctuation" }, { - "text": "RegExp", - "kind": "localName" + "text": "length", + "kind": "propertyName" }, { "text": ":", @@ -89430,45 +87810,45 @@ "kind": "space" }, { - "text": "RegExpConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], "documentation": [] }, { - "name": "Error", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "prototype", + "kind": "property", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", - "kind": "keyword" + "text": "(", + "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "property", + "kind": "text" }, { - "text": "Error", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": " ", + "kind": "space" }, { - "text": "var", - "kind": "keyword" + "text": "c1", + "kind": "className" }, { - "text": " ", - "kind": "space" + "text": ".", + "kind": "punctuation" }, { - "text": "Error", - "kind": "localName" + "text": "prototype", + "kind": "propertyName" }, { "text": ":", @@ -89479,45 +87859,53 @@ "kind": "space" }, { - "text": "ErrorConstructor", - "kind": "interfaceName" + "text": "c1", + "kind": "className" } ], "documentation": [] }, { - "name": "EvalError", - "kind": "var", + "name": "toString", + "kind": "method", "kindModifiers": "declare", - "sortText": "15", + "sortText": "11", "displayParts": [ { - "text": "interface", - "kind": "keyword" + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "EvalError", + "text": "Function", "kind": "localName" }, { - "text": "\n", - "kind": "lineBreak" + "text": ".", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "toString", + "kind": "methodName" }, { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "EvalError", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -89528,20 +87916,39 @@ "kind": "space" }, { - "text": "EvalErrorConstructor", - "kind": "interfaceName" + "text": "string", + "kind": "keyword" } ], - "documentation": [] - }, + "documentation": [ + { + "text": "Returns a string representation of a function.", + "kind": "text" + } + ] + } + ] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/completionsCommentsClassMembers.ts", + "position": 2474, + "name": "109" + }, + "completionList": { + "isGlobalCompletion": true, + "isMemberCompletion": false, + "isNewIdentifierLocation": false, + "entries": [ { - "name": "RangeError", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "c1", + "kind": "class", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "class", "kind": "keyword" }, { @@ -89549,13 +87956,44 @@ "kind": "space" }, { - "text": "RangeError", - "kind": "localName" + "text": "c1", + "kind": "className" + } + ], + "documentation": [ + { + "text": "This is comment for c1", + "kind": "text" + } + ] + }, + { + "name": "cProperties", + "kind": "class", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "class", + "kind": "keyword" }, { - "text": "\n", - "kind": "lineBreak" + "text": " ", + "kind": "space" }, + { + "text": "cProperties", + "kind": "className" + } + ], + "documentation": [] + }, + { + "name": "cProperties_i", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { "text": "var", "kind": "keyword" @@ -89565,7 +88003,7 @@ "kind": "space" }, { - "text": "RangeError", + "text": "cProperties_i", "kind": "localName" }, { @@ -89577,20 +88015,20 @@ "kind": "space" }, { - "text": "RangeErrorConstructor", - "kind": "interfaceName" + "text": "cProperties", + "kind": "className" } ], "documentation": [] }, { - "name": "ReferenceError", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "cWithConstructorProperty", + "kind": "class", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "class", "kind": "keyword" }, { @@ -89598,13 +88036,18 @@ "kind": "space" }, { - "text": "ReferenceError", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, + "text": "cWithConstructorProperty", + "kind": "className" + } + ], + "documentation": [] + }, + { + "name": "i1", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { "text": "var", "kind": "keyword" @@ -89614,7 +88057,7 @@ "kind": "space" }, { - "text": "ReferenceError", + "text": "i1", "kind": "localName" }, { @@ -89626,20 +88069,20 @@ "kind": "space" }, { - "text": "ReferenceErrorConstructor", - "kind": "interfaceName" + "text": "c1", + "kind": "className" } ], "documentation": [] }, { - "name": "SyntaxError", + "name": "i1_c", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "var", "kind": "keyword" }, { @@ -89647,48 +88090,40 @@ "kind": "space" }, { - "text": "SyntaxError", + "text": "i1_c", "kind": "localName" }, { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "SyntaxError", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" + "text": "typeof", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "SyntaxErrorConstructor", - "kind": "interfaceName" + "text": "c1", + "kind": "className" } ], "documentation": [] }, { - "name": "TypeError", + "name": "i1_f", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "var", "kind": "keyword" }, { @@ -89696,24 +88131,24 @@ "kind": "space" }, { - "text": "TypeError", + "text": "i1_f", "kind": "localName" }, { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "TypeError", - "kind": "localName" + "text": "(", + "kind": "punctuation" + }, + { + "text": "b", + "kind": "parameterName" }, { "text": ":", @@ -89724,34 +88159,38 @@ "kind": "space" }, { - "text": "TypeErrorConstructor", - "kind": "interfaceName" - } - ], - "documentation": [] - }, - { - "name": "URIError", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", + "text": "number", "kind": "keyword" }, + { + "text": ")", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "URIError", - "kind": "localName" + "text": "=>", + "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": " ", + "kind": "space" }, + { + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "i1_nc_p", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { "text": "var", "kind": "keyword" @@ -89761,7 +88200,7 @@ "kind": "space" }, { - "text": "URIError", + "text": "i1_nc_p", "kind": "localName" }, { @@ -89773,34 +88212,18 @@ "kind": "space" }, { - "text": "URIErrorConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], "documentation": [] }, { - "name": "JSON", + "name": "i1_ncf", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "JSON", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, { "text": "var", "kind": "keyword" @@ -89810,7 +88233,7 @@ "kind": "space" }, { - "text": "JSON", + "text": "i1_ncf", "kind": "localName" }, { @@ -89822,51 +88245,54 @@ "kind": "space" }, { - "text": "JSON", - "kind": "localName" - } - ], - "documentation": [ + "text": "(", + "kind": "punctuation" + }, { - "text": "An intrinsic object that provides functions to convert JavaScript values to and from the JavaScript Object Notation (JSON) format.", - "kind": "text" - } - ] - }, - { - "name": "Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ + "text": "b", + "kind": "parameterName" + }, { - "text": "interface", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Array", - "kind": "localName" + "text": "number", + "kind": "keyword" }, { - "text": "<", + "text": ")", "kind": "punctuation" }, { - "text": "T", - "kind": "typeParameterName" + "text": " ", + "kind": "space" }, { - "text": ">", + "text": "=>", "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": " ", + "kind": "space" }, + { + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "i1_ncprop", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { "text": "var", "kind": "keyword" @@ -89876,7 +88302,7 @@ "kind": "space" }, { - "text": "Array", + "text": "i1_ncprop", "kind": "localName" }, { @@ -89888,20 +88314,20 @@ "kind": "space" }, { - "text": "ArrayConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], "documentation": [] }, { - "name": "ArrayBuffer", + "name": "i1_ncr", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "var", "kind": "keyword" }, { @@ -89909,13 +88335,30 @@ "kind": "space" }, { - "text": "ArrayBuffer", + "text": "i1_ncr", "kind": "localName" }, { - "text": "\n", - "kind": "lineBreak" + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" }, + { + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "i1_p", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { "text": "var", "kind": "keyword" @@ -89925,7 +88368,7 @@ "kind": "space" }, { - "text": "ArrayBuffer", + "text": "i1_p", "kind": "localName" }, { @@ -89937,25 +88380,20 @@ "kind": "space" }, { - "text": "ArrayBufferConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], - "documentation": [ - { - "text": "Represents a raw buffer of binary data, which is used to store data for the\r\ndifferent typed arrays. ArrayBuffers cannot be read from or written to directly,\r\nbut can be passed to a typed array or DataView Object to interpret the raw\r\nbuffer as needed.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "DataView", + "name": "i1_prop", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "var", "kind": "keyword" }, { @@ -89963,13 +88401,30 @@ "kind": "space" }, { - "text": "DataView", + "text": "i1_prop", "kind": "localName" }, { - "text": "\n", - "kind": "lineBreak" + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" }, + { + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "i1_r", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { "text": "var", "kind": "keyword" @@ -89979,7 +88434,7 @@ "kind": "space" }, { - "text": "DataView", + "text": "i1_r", "kind": "localName" }, { @@ -89991,20 +88446,20 @@ "kind": "space" }, { - "text": "DataViewConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], "documentation": [] }, { - "name": "Int8Array", + "name": "i1_s_f", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "var", "kind": "keyword" }, { @@ -90012,24 +88467,24 @@ "kind": "space" }, { - "text": "Int8Array", + "text": "i1_s_f", "kind": "localName" }, { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Int8Array", - "kind": "localName" + "text": "(", + "kind": "punctuation" + }, + { + "text": "b", + "kind": "parameterName" }, { "text": ":", @@ -90040,39 +88495,38 @@ "kind": "space" }, { - "text": "Int8ArrayConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "A typed array of 8-bit integer values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] - }, - { - "name": "Uint8Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", + "text": "number", "kind": "keyword" }, + { + "text": ")", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "Uint8Array", - "kind": "localName" + "text": "=>", + "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": " ", + "kind": "space" }, + { + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "i1_s_nc_p", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { "text": "var", "kind": "keyword" @@ -90082,7 +88536,7 @@ "kind": "space" }, { - "text": "Uint8Array", + "text": "i1_s_nc_p", "kind": "localName" }, { @@ -90094,25 +88548,20 @@ "kind": "space" }, { - "text": "Uint8ArrayConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], - "documentation": [ - { - "text": "A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "Uint8ClampedArray", + "name": "i1_s_ncf", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "var", "kind": "keyword" }, { @@ -90120,24 +88569,24 @@ "kind": "space" }, { - "text": "Uint8ClampedArray", + "text": "i1_s_ncf", "kind": "localName" }, { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Uint8ClampedArray", - "kind": "localName" + "text": "(", + "kind": "punctuation" + }, + { + "text": "b", + "kind": "parameterName" }, { "text": ":", @@ -90148,39 +88597,38 @@ "kind": "space" }, { - "text": "Uint8ClampedArrayConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0.\r\nIf the requested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] - }, - { - "name": "Int16Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", + "text": "number", "kind": "keyword" }, + { + "text": ")", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "Int16Array", - "kind": "localName" + "text": "=>", + "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": " ", + "kind": "space" }, + { + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "i1_s_ncprop", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { "text": "var", "kind": "keyword" @@ -90190,7 +88638,7 @@ "kind": "space" }, { - "text": "Int16Array", + "text": "i1_s_ncprop", "kind": "localName" }, { @@ -90202,25 +88650,20 @@ "kind": "space" }, { - "text": "Int16ArrayConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], - "documentation": [ - { - "text": "A typed array of 16-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "Uint16Array", + "name": "i1_s_ncr", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "var", "kind": "keyword" }, { @@ -90228,13 +88671,30 @@ "kind": "space" }, { - "text": "Uint16Array", + "text": "i1_s_ncr", "kind": "localName" }, { - "text": "\n", - "kind": "lineBreak" + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" }, + { + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "i1_s_p", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { "text": "var", "kind": "keyword" @@ -90244,7 +88704,7 @@ "kind": "space" }, { - "text": "Uint16Array", + "text": "i1_s_p", "kind": "localName" }, { @@ -90256,25 +88716,20 @@ "kind": "space" }, { - "text": "Uint16ArrayConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], - "documentation": [ - { - "text": "A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "Int32Array", + "name": "i1_s_prop", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "var", "kind": "keyword" }, { @@ -90282,13 +88737,30 @@ "kind": "space" }, { - "text": "Int32Array", + "text": "i1_s_prop", "kind": "localName" }, { - "text": "\n", - "kind": "lineBreak" + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" }, + { + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "i1_s_r", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { "text": "var", "kind": "keyword" @@ -90298,7 +88770,7 @@ "kind": "space" }, { - "text": "Int32Array", + "text": "i1_s_r", "kind": "localName" }, { @@ -90310,19 +88782,38 @@ "kind": "space" }, { - "text": "Int32ArrayConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "abstract", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "A typed array of 32-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" + "text": "abstract", + "kind": "keyword" } ] }, { - "name": "Uint32Array", + "name": "any", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "any", + "kind": "keyword" + } + ] + }, + { + "name": "Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -90336,9 +88827,21 @@ "kind": "space" }, { - "text": "Uint32Array", + "text": "Array", "kind": "localName" }, + { + "text": "<", + "kind": "punctuation" + }, + { + "text": "T", + "kind": "typeParameterName" + }, + { + "text": ">", + "kind": "punctuation" + }, { "text": "\n", "kind": "lineBreak" @@ -90352,7 +88855,7 @@ "kind": "space" }, { - "text": "Uint32Array", + "text": "Array", "kind": "localName" }, { @@ -90364,19 +88867,14 @@ "kind": "space" }, { - "text": "Uint32ArrayConstructor", + "text": "ArrayConstructor", "kind": "interfaceName" } ], - "documentation": [ - { - "text": "A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "Float32Array", + "name": "ArrayBuffer", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -90390,7 +88888,7 @@ "kind": "space" }, { - "text": "Float32Array", + "text": "ArrayBuffer", "kind": "localName" }, { @@ -90406,7 +88904,7 @@ "kind": "space" }, { - "text": "Float32Array", + "text": "ArrayBuffer", "kind": "localName" }, { @@ -90418,19 +88916,91 @@ "kind": "space" }, { - "text": "Float32ArrayConstructor", + "text": "ArrayBufferConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "A typed array of 32-bit float values. The contents are initialized to 0. If the requested number\r\nof bytes could not be allocated an exception is raised.", + "text": "Represents a raw buffer of binary data, which is used to store data for the\r\ndifferent typed arrays. ArrayBuffers cannot be read from or written to directly,\r\nbut can be passed to a typed array or DataView Object to interpret the raw\r\nbuffer as needed.", "kind": "text" } ] }, { - "name": "Float64Array", + "name": "as", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "as", + "kind": "keyword" + } + ] + }, + { + "name": "asserts", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "asserts", + "kind": "keyword" + } + ] + }, + { + "name": "async", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "async", + "kind": "keyword" + } + ] + }, + { + "name": "await", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "await", + "kind": "keyword" + } + ] + }, + { + "name": "bigint", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "bigint", + "kind": "keyword" + } + ] + }, + { + "name": "boolean", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "boolean", + "kind": "keyword" + } + ] + }, + { + "name": "Boolean", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -90444,7 +89014,7 @@ "kind": "space" }, { - "text": "Float64Array", + "text": "Boolean", "kind": "localName" }, { @@ -90460,7 +89030,7 @@ "kind": "space" }, { - "text": "Float64Array", + "text": "Boolean", "kind": "localName" }, { @@ -90472,72 +89042,92 @@ "kind": "space" }, { - "text": "Float64ArrayConstructor", + "text": "BooleanConstructor", "kind": "interfaceName" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "break", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "A typed array of 64-bit float values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", - "kind": "text" + "text": "break", + "kind": "keyword" } ] }, { - "name": "Intl", - "kind": "module", - "kindModifiers": "declare", + "name": "case", + "kind": "keyword", + "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "namespace", + "text": "case", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, + } + ] + }, + { + "name": "catch", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "Intl", - "kind": "moduleName" + "text": "catch", + "kind": "keyword" } - ], - "documentation": [] + ] }, { - "name": "c1", - "kind": "class", + "name": "class", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { "text": "class", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, + } + ] + }, + { + "name": "const", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "c1", - "kind": "className" + "text": "const", + "kind": "keyword" } - ], - "documentation": [ + ] + }, + { + "name": "continue", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "This is comment for c1", - "kind": "text" + "text": "continue", + "kind": "keyword" } ] }, { - "name": "i1", + "name": "DataView", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -90545,30 +89135,13 @@ "kind": "space" }, { - "text": "i1", + "text": "DataView", "kind": "localName" }, { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "c1", - "kind": "className" - } - ], - "documentation": [] - }, - { - "name": "i1_p", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ + "text": "\n", + "kind": "lineBreak" + }, { "text": "var", "kind": "keyword" @@ -90578,7 +89151,7 @@ "kind": "space" }, { - "text": "i1_p", + "text": "DataView", "kind": "localName" }, { @@ -90590,20 +89163,20 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "DataViewConstructor", + "kind": "interfaceName" } ], "documentation": [] }, { - "name": "i1_f", + "name": "Date", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -90611,47 +89184,27 @@ "kind": "space" }, { - "text": "i1_f", + "text": "Date", "kind": "localName" }, { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "b", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "Date", + "kind": "localName" }, { - "text": "=>", + "text": ":", "kind": "punctuation" }, { @@ -90659,53 +89212,49 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "DateConstructor", + "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "Enables basic storage and retrieval of dates and times.", + "kind": "text" + } + ] }, { - "name": "i1_r", - "kind": "var", + "name": "debugger", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "debugger", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "i1_r", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, + } + ] + }, + { + "name": "declare", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "number", + "text": "declare", "kind": "keyword" } - ], - "documentation": [] + ] }, { - "name": "i1_prop", - "kind": "var", - "kindModifiers": "", - "sortText": "11", + "name": "decodeURI", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "function", "kind": "keyword" }, { @@ -90713,41 +89262,32 @@ "kind": "space" }, { - "text": "i1_prop", - "kind": "localName" + "text": "decodeURI", + "kind": "functionName" }, { - "text": ":", + "text": "(", "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "encodedURI", + "kind": "parameterName" }, { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_nc_p", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "i1_nc_p", - "kind": "localName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -90758,20 +89298,44 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Gets the unencoded version of an encoded Uniform Resource Identifier (URI).", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "encodedURI", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI.", + "kind": "text" + } + ] + } + ] }, { - "name": "i1_ncf", - "kind": "var", - "kindModifiers": "", - "sortText": "11", + "name": "decodeURIComponent", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "function", "kind": "keyword" }, { @@ -90779,23 +89343,15 @@ "kind": "space" }, { - "text": "i1_ncf", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "decodeURIComponent", + "kind": "functionName" }, { "text": "(", "kind": "punctuation" }, { - "text": "b", + "text": "encodedURIComponent", "kind": "parameterName" }, { @@ -90807,7 +89363,7 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" }, { @@ -90815,11 +89371,7 @@ "kind": "punctuation" }, { - "text": " ", - "kind": "space" - }, - { - "text": "=>", + "text": ":", "kind": "punctuation" }, { @@ -90827,53 +89379,92 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "encodedURIComponent", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI component.", + "kind": "text" + } + ] + } + ] }, { - "name": "i1_ncr", - "kind": "var", + "name": "default", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "default", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "i1_ncr", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, + } + ] + }, + { + "name": "delete", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": " ", - "kind": "space" - }, + "text": "delete", + "kind": "keyword" + } + ] + }, + { + "name": "do", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "number", + "text": "do", "kind": "keyword" } - ], - "documentation": [] + ] }, { - "name": "i1_ncprop", - "kind": "var", + "name": "else", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "else", + "kind": "keyword" + } + ] + }, + { + "name": "encodeURI", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "function", "kind": "keyword" }, { @@ -90881,41 +89472,32 @@ "kind": "space" }, { - "text": "i1_ncprop", - "kind": "localName" + "text": "encodeURI", + "kind": "functionName" }, { - "text": ":", + "text": "(", "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "uri", + "kind": "parameterName" }, { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_s_p", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "i1_s_p", - "kind": "localName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -90926,20 +89508,44 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Encodes a text string as a valid Uniform Resource Identifier (URI)", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "uri", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI.", + "kind": "text" + } + ] + } + ] }, { - "name": "i1_s_f", - "kind": "var", - "kindModifiers": "", - "sortText": "11", + "name": "encodeURIComponent", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "function", "kind": "keyword" }, { @@ -90947,23 +89553,15 @@ "kind": "space" }, { - "text": "i1_s_f", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "encodeURIComponent", + "kind": "functionName" }, { "text": "(", "kind": "punctuation" }, { - "text": "b", + "text": "uriComponent", "kind": "parameterName" }, { @@ -90975,19 +89573,15 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" }, - { - "text": ")", - "kind": "punctuation" - }, { "text": " ", "kind": "space" }, { - "text": "=>", + "text": "|", "kind": "punctuation" }, { @@ -90997,27 +89591,26 @@ { "text": "number", "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_s_r", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ + }, { - "text": "var", - "kind": "keyword" + "text": " ", + "kind": "space" + }, + { + "text": "|", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "i1_s_r", - "kind": "localName" + "text": "boolean", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -91028,20 +89621,56 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Encodes a text string as a valid component of a Uniform Resource Identifier (URI).", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "uriComponent", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI component.", + "kind": "text" + } + ] + } + ] }, { - "name": "i1_s_prop", - "kind": "var", + "name": "enum", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "enum", + "kind": "keyword" + } + ] + }, + { + "name": "Error", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", "kind": "keyword" }, { @@ -91049,30 +89678,13 @@ "kind": "space" }, { - "text": "i1_s_prop", + "text": "Error", "kind": "localName" }, { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_s_nc_p", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ { "text": "var", "kind": "keyword" @@ -91082,7 +89694,7 @@ "kind": "space" }, { - "text": "i1_s_nc_p", + "text": "Error", "kind": "localName" }, { @@ -91094,20 +89706,20 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "ErrorConstructor", + "kind": "interfaceName" } ], "documentation": [] }, { - "name": "i1_s_ncf", - "kind": "var", - "kindModifiers": "", - "sortText": "11", + "name": "eval", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "function", "kind": "keyword" }, { @@ -91115,23 +89727,15 @@ "kind": "space" }, { - "text": "i1_s_ncf", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "eval", + "kind": "functionName" }, { "text": "(", "kind": "punctuation" }, { - "text": "b", + "text": "x", "kind": "parameterName" }, { @@ -91143,7 +89747,7 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" }, { @@ -91151,11 +89755,7 @@ "kind": "punctuation" }, { - "text": " ", - "kind": "space" - }, - { - "text": "=>", + "text": ":", "kind": "punctuation" }, { @@ -91163,18 +89763,58 @@ "kind": "space" }, { - "text": "number", + "text": "any", "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Evaluates JavaScript code and executes it.", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "x", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A String value that contains valid JavaScript code.", + "kind": "text" + } + ] + } + ] }, { - "name": "i1_s_ncr", + "name": "EvalError", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "EvalError", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, { "text": "var", "kind": "keyword" @@ -91184,7 +89824,7 @@ "kind": "space" }, { - "text": "i1_s_ncr", + "text": "EvalError", "kind": "localName" }, { @@ -91196,18 +89836,82 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "EvalErrorConstructor", + "kind": "interfaceName" } ], "documentation": [] }, { - "name": "i1_s_ncprop", - "kind": "var", + "name": "export", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", + "displayParts": [ + { + "text": "export", + "kind": "keyword" + } + ] + }, + { + "name": "extends", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "extends", + "kind": "keyword" + } + ] + }, + { + "name": "false", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "false", + "kind": "keyword" + } + ] + }, + { + "name": "finally", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "finally", + "kind": "keyword" + } + ] + }, + { + "name": "Float32Array", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Float32Array", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, { "text": "var", "kind": "keyword" @@ -91217,7 +89921,7 @@ "kind": "space" }, { - "text": "i1_s_ncprop", + "text": "Float32Array", "kind": "localName" }, { @@ -91229,20 +89933,25 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "Float32ArrayConstructor", + "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "A typed array of 32-bit float values. The contents are initialized to 0. If the requested number\r\nof bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] }, { - "name": "i1_c", + "name": "Float64Array", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -91250,61 +89959,77 @@ "kind": "space" }, { - "text": "i1_c", + "text": "Float64Array", "kind": "localName" }, { - "text": ":", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "typeof", - "kind": "keyword" + "text": "Float64Array", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "c1", - "kind": "className" + "text": "Float64ArrayConstructor", + "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "A typed array of 64-bit float values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] }, { - "name": "cProperties", - "kind": "class", + "name": "for", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "class", + "text": "for", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, + } + ] + }, + { + "name": "function", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "cProperties", - "kind": "className" + "text": "function", + "kind": "keyword" } - ], - "documentation": [] + ] }, { - "name": "cProperties_i", + "name": "Function", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -91312,53 +90037,53 @@ "kind": "space" }, { - "text": "cProperties_i", + "text": "Function", "kind": "localName" }, { - "text": ":", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "cProperties", - "kind": "className" - } - ], - "documentation": [] - }, - { - "name": "cWithConstructorProperty", - "kind": "class", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ + "text": "Function", + "kind": "localName" + }, { - "text": "class", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "cWithConstructorProperty", - "kind": "className" + "text": "FunctionConstructor", + "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "Creates a new function.", + "kind": "text" + } + ] }, { - "name": "undefined", - "kind": "var", + "name": "globalThis", + "kind": "module", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "var", + "text": "module", "kind": "keyword" }, { @@ -91366,819 +90091,1465 @@ "kind": "space" }, { - "text": "undefined", - "kind": "propertyName" + "text": "globalThis", + "kind": "moduleName" } ], "documentation": [] }, { - "name": "break", + "name": "if", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "break", + "text": "if", "kind": "keyword" } ] }, { - "name": "case", + "name": "implements", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "case", + "text": "implements", "kind": "keyword" } ] }, { - "name": "catch", + "name": "import", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "catch", + "text": "import", "kind": "keyword" } ] }, { - "name": "class", + "name": "in", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "class", + "text": "in", "kind": "keyword" } ] }, { - "name": "const", + "name": "infer", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "const", + "text": "infer", "kind": "keyword" } ] }, { - "name": "continue", - "kind": "keyword", - "kindModifiers": "", + "name": "Infinity", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "continue", + "text": "var", "kind": "keyword" - } - ] - }, - { - "name": "debugger", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "debugger", + "text": " ", + "kind": "space" + }, + { + "text": "Infinity", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" } - ] + ], + "documentation": [] }, { - "name": "default", + "name": "instanceof", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "default", + "text": "instanceof", "kind": "keyword" } ] }, { - "name": "delete", - "kind": "keyword", - "kindModifiers": "", + "name": "Int16Array", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "delete", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "do", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "do", + "text": " ", + "kind": "space" + }, + { + "text": "Int16Array", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Int16Array", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Int16ArrayConstructor", + "kind": "interfaceName" } - ] - }, - { - "name": "else", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "else", - "kind": "keyword" + "text": "A typed array of 16-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" } ] }, { - "name": "enum", - "kind": "keyword", - "kindModifiers": "", + "name": "Int32Array", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "enum", + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Int32Array", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Int32Array", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Int32ArrayConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ + { + "text": "A typed array of 32-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" } ] }, { - "name": "export", - "kind": "keyword", - "kindModifiers": "", + "name": "Int8Array", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "export", + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Int8Array", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Int8Array", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Int8ArrayConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ + { + "text": "A typed array of 8-bit integer values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", + "kind": "text" } ] }, { - "name": "extends", + "name": "interface", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "extends", + "text": "interface", "kind": "keyword" } ] }, { - "name": "false", - "kind": "keyword", - "kindModifiers": "", + "name": "Intl", + "kind": "module", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "false", + "text": "namespace", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Intl", + "kind": "moduleName" } - ] + ], + "documentation": [] }, { - "name": "finally", - "kind": "keyword", - "kindModifiers": "", + "name": "isFinite", + "kind": "function", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "finally", + "text": "function", "kind": "keyword" - } - ] - }, - { - "name": "for", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "for", + "text": " ", + "kind": "space" + }, + { + "text": "isFinite", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "number", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "boolean", "kind": "keyword" } + ], + "documentation": [ + { + "text": "Determines whether a supplied number is finite.", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "number", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Any numeric value.", + "kind": "text" + } + ] + } ] }, { - "name": "function", - "kind": "keyword", - "kindModifiers": "", + "name": "isNaN", + "kind": "function", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { "text": "function", "kind": "keyword" - } - ] - }, - { - "name": "if", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "if", + "text": " ", + "kind": "space" + }, + { + "text": "isNaN", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "number", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" - } - ] - }, - { - "name": "import", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "import", + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "boolean", "kind": "keyword" } - ] - }, - { - "name": "in", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "in", - "kind": "keyword" + "text": "Returns a Boolean value that indicates whether a value is the reserved value NaN (not a number).", + "kind": "text" } - ] - }, - { - "name": "instanceof", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "tags": [ { - "text": "instanceof", - "kind": "keyword" + "name": "param", + "text": [ + { + "text": "number", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A numeric value.", + "kind": "text" + } + ] } ] }, { - "name": "new", - "kind": "keyword", - "kindModifiers": "", + "name": "JSON", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "new", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "null", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "null", + "text": " ", + "kind": "space" + }, + { + "text": "JSON", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "JSON", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "JSON", + "kind": "localName" } - ] - }, - { - "name": "return", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "return", - "kind": "keyword" + "text": "An intrinsic object that provides functions to convert JavaScript values to and from the JavaScript Object Notation (JSON) format.", + "kind": "text" } ] }, { - "name": "super", + "name": "keyof", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "super", + "text": "keyof", "kind": "keyword" } ] }, { - "name": "switch", + "name": "let", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "switch", + "text": "let", "kind": "keyword" } ] }, { - "name": "this", - "kind": "keyword", - "kindModifiers": "", + "name": "Math", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "this", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "throw", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "throw", + "text": " ", + "kind": "space" + }, + { + "text": "Math", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Math", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Math", + "kind": "localName" } - ] - }, - { - "name": "true", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "true", - "kind": "keyword" + "text": "An intrinsic object that provides basic mathematics functionality and constants.", + "kind": "text" } ] }, { - "name": "try", + "name": "module", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "try", + "text": "module", "kind": "keyword" } ] }, { - "name": "typeof", + "name": "namespace", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "typeof", + "text": "namespace", "kind": "keyword" } ] }, { - "name": "var", - "kind": "keyword", - "kindModifiers": "", + "name": "NaN", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "NaN", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" } - ] + ], + "documentation": [] }, { - "name": "void", + "name": "never", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "void", + "text": "never", "kind": "keyword" } ] }, { - "name": "while", + "name": "new", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "while", + "text": "new", "kind": "keyword" } ] }, { - "name": "with", + "name": "null", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "with", + "text": "null", "kind": "keyword" } ] }, { - "name": "implements", + "name": "number", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "implements", + "text": "number", "kind": "keyword" } ] }, { - "name": "interface", - "kind": "keyword", - "kindModifiers": "", + "name": "Number", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { "text": "interface", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Number", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Number", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "NumberConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ + { + "text": "An object that represents a number of any kind. All JavaScript numbers are 64-bit floating-point numbers.", + "kind": "text" } ] }, { - "name": "let", + "name": "object", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "let", + "text": "object", "kind": "keyword" } ] }, { - "name": "package", - "kind": "keyword", - "kindModifiers": "", + "name": "Object", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "package", + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Object", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Object", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "ObjectConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ + { + "text": "Provides functionality common to all JavaScript objects.", + "kind": "text" } ] }, { - "name": "yield", + "name": "package", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "yield", + "text": "package", "kind": "keyword" } ] }, { - "name": "abstract", - "kind": "keyword", - "kindModifiers": "", + "name": "parseFloat", + "kind": "function", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "abstract", + "text": "function", "kind": "keyword" - } - ] - }, - { - "name": "as", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "as", + "text": " ", + "kind": "space" + }, + { + "text": "parseFloat", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "string", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", "kind": "keyword" - } - ] - }, - { - "name": "asserts", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "asserts", + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" } - ] - }, - { - "name": "any", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "any", - "kind": "keyword" + "text": "Converts a string to a floating-point number.", + "kind": "text" } - ] - }, - { - "name": "async", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "tags": [ { - "text": "async", - "kind": "keyword" + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string that contains a floating-point number.", + "kind": "text" + } + ] } ] }, { - "name": "await", - "kind": "keyword", - "kindModifiers": "", + "name": "parseInt", + "kind": "function", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "await", + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "parseInt", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "string", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": ",", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "radix", + "kind": "parameterName" + }, + { + "text": "?", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" } + ], + "documentation": [ + { + "text": "Converts a string to an integer.", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string to convert into a number.", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "radix", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value between 2 and 36 that specifies the base of the number in `string`.\r\nIf this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal.\r\nAll other strings are considered decimal.", + "kind": "text" + } + ] + } ] }, { - "name": "boolean", - "kind": "keyword", - "kindModifiers": "", + "name": "RangeError", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "boolean", + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "RangeError", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "RangeError", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "RangeErrorConstructor", + "kind": "interfaceName" } - ] + ], + "documentation": [] }, { - "name": "declare", + "name": "readonly", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "declare", + "text": "readonly", "kind": "keyword" } ] }, { - "name": "infer", - "kind": "keyword", - "kindModifiers": "", + "name": "ReferenceError", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "infer", + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "ReferenceError", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "ReferenceError", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "ReferenceErrorConstructor", + "kind": "interfaceName" } - ] + ], + "documentation": [] }, { - "name": "keyof", - "kind": "keyword", - "kindModifiers": "", + "name": "RegExp", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "keyof", + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "RegExp", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "RegExp", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "RegExpConstructor", + "kind": "interfaceName" } - ] + ], + "documentation": [] }, { - "name": "module", + "name": "return", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "module", + "text": "return", "kind": "keyword" } ] }, { - "name": "namespace", + "name": "string", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "namespace", + "text": "string", "kind": "keyword" } ] }, { - "name": "never", - "kind": "keyword", - "kindModifiers": "", + "name": "String", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "never", + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "String", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "String", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "StringConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ + { + "text": "Allows manipulation and formatting of text strings and determination and location of substrings within strings.", + "kind": "text" } ] }, { - "name": "readonly", + "name": "super", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "readonly", + "text": "super", "kind": "keyword" } ] }, { - "name": "number", + "name": "switch", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "number", + "text": "switch", "kind": "keyword" } ] }, { - "name": "object", + "name": "symbol", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "object", + "text": "symbol", "kind": "keyword" } ] }, { - "name": "string", - "kind": "keyword", - "kindModifiers": "", + "name": "SyntaxError", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "string", + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "SyntaxError", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "SyntaxError", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "SyntaxErrorConstructor", + "kind": "interfaceName" } - ] + ], + "documentation": [] }, { - "name": "symbol", + "name": "this", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "symbol", + "text": "this", "kind": "keyword" } ] }, { - "name": "type", + "name": "throw", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "type", + "text": "throw", "kind": "keyword" } ] }, { - "name": "unique", + "name": "true", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "unique", + "text": "true", "kind": "keyword" } ] }, { - "name": "unknown", + "name": "try", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "unknown", + "text": "try", "kind": "keyword" } ] }, { - "name": "bigint", + "name": "type", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "bigint", + "text": "type", "kind": "keyword" } ] - } - ] - } - }, - { - "marker": { - "fileName": "/tests/cases/fourslash/completionsCommentsClassMembers.ts", - "position": 2882, - "name": "110" - }, - "completionList": { - "isGlobalCompletion": false, - "isMemberCompletion": true, - "isNewIdentifierLocation": false, - "optionalReplacementSpan": { - "start": 2882, - "length": 2 - }, - "entries": [ + }, { - "name": "p1", - "kind": "property", - "kindModifiers": "public", - "sortText": "11", + "name": "TypeError", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "(", - "kind": "punctuation" + "text": "interface", + "kind": "keyword" }, { - "text": "property", - "kind": "text" + "text": " ", + "kind": "space" }, { - "text": ")", - "kind": "punctuation" + "text": "TypeError", + "kind": "localName" }, { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, { - "text": "cProperties", - "kind": "className" + "text": "var", + "kind": "keyword" }, { - "text": ".", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": "p1", - "kind": "propertyName" + "text": "TypeError", + "kind": "localName" }, { "text": ":", @@ -92189,50 +91560,57 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "TypeErrorConstructor", + "kind": "interfaceName" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "typeof", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "getter only property", - "kind": "text" + "text": "typeof", + "kind": "keyword" } ] }, { - "name": "nc_p1", - "kind": "property", - "kindModifiers": "public", - "sortText": "11", + "name": "Uint16Array", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "(", - "kind": "punctuation" + "text": "interface", + "kind": "keyword" }, { - "text": "property", - "kind": "text" + "text": " ", + "kind": "space" }, { - "text": ")", - "kind": "punctuation" + "text": "Uint16Array", + "kind": "localName" }, { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, { - "text": "cProperties", - "kind": "className" + "text": "var", + "kind": "keyword" }, { - "text": ".", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": "nc_p1", - "kind": "propertyName" + "text": "Uint16Array", + "kind": "localName" }, { "text": ":", @@ -92243,45 +91621,50 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "Uint16ArrayConstructor", + "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] }, { - "name": "p2", - "kind": "property", - "kindModifiers": "public", - "sortText": "11", + "name": "Uint32Array", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "(", - "kind": "punctuation" + "text": "interface", + "kind": "keyword" }, { - "text": "property", - "kind": "text" + "text": " ", + "kind": "space" }, { - "text": ")", - "kind": "punctuation" + "text": "Uint32Array", + "kind": "localName" }, { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, { - "text": "cProperties", - "kind": "className" + "text": "var", + "kind": "keyword" }, { - "text": ".", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": "p2", - "kind": "propertyName" + "text": "Uint32Array", + "kind": "localName" }, { "text": ":", @@ -92292,117 +91675,50 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "Uint32ArrayConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "setter only property", + "text": "A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", "kind": "text" } ] }, { - "name": "nc_p2", - "kind": "property", - "kindModifiers": "public", - "sortText": "11", + "name": "Uint8Array", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "cProperties", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "nc_p2", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" + "text": "Uint8Array", + "kind": "localName" }, { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, { - "text": "number", + "text": "var", "kind": "keyword" - } - ], - "documentation": [] - } - ] - } - }, - { - "marker": { - "fileName": "/tests/cases/fourslash/completionsCommentsClassMembers.ts", - "position": 3190, - "name": "114" - }, - "completionList": { - "isGlobalCompletion": false, - "isMemberCompletion": true, - "isNewIdentifierLocation": false, - "optionalReplacementSpan": { - "start": 3190, - "length": 1 - }, - "entries": [ - { - "name": "a", - "kind": "property", - "kindModifiers": "public", - "sortText": "11", - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "property", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "cWithConstructorProperty", - "kind": "className" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "a", - "kind": "propertyName" + "text": "Uint8Array", + "kind": "localName" }, { "text": ":", @@ -92413,87 +91729,50 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "Uint8ArrayConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "more info about a", - "kind": "text" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "this is first parameter a", + "text": "A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", "kind": "text" } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "a", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "this is first parameter a", - "kind": "text" - } - ] - } ] - } - ] - } - }, - { - "marker": { - "fileName": "/tests/cases/fourslash/completionsCommentsClassMembers.ts", - "position": 3194, - "name": "115" - }, - "completionList": { - "isGlobalCompletion": false, - "isMemberCompletion": false, - "isNewIdentifierLocation": true, - "optionalReplacementSpan": { - "start": 3194, - "length": 1 - }, - "entries": [ + }, { - "name": "a", - "kind": "parameter", - "kindModifiers": "public", - "sortText": "11", + "name": "Uint8ClampedArray", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "(", - "kind": "punctuation" + "text": "interface", + "kind": "keyword" }, { - "text": "parameter", - "kind": "text" + "text": " ", + "kind": "space" }, { - "text": ")", - "kind": "punctuation" + "text": "Uint8ClampedArray", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "a", - "kind": "parameterName" + "text": "Uint8ClampedArray", + "kind": "localName" }, { "text": ":", @@ -92504,110 +91783,95 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "Uint8ClampedArrayConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "more info about a", + "text": "A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0.\r\nIf the requested number of bytes could not be allocated an exception is raised.", "kind": "text" + } + ] + }, + { + "name": "undefined", + "kind": "var", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "var", + "kind": "keyword" }, { - "text": "\n", - "kind": "lineBreak" + "text": " ", + "kind": "space" }, { - "text": "this is first parameter a", - "kind": "text" + "text": "undefined", + "kind": "propertyName" } ], - "tags": [ + "documentation": [] + }, + { + "name": "unique", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "a", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "this is first parameter a", - "kind": "text" - } - ] + "text": "unique", + "kind": "keyword" } ] }, { - "name": "bbbb", - "kind": "local var", + "name": "unknown", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "(", - "kind": "punctuation" - }, - { - "text": "local var", - "kind": "text" - }, + "text": "unknown", + "kind": "keyword" + } + ] + }, + { + "name": "URIError", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { - "text": ")", - "kind": "punctuation" + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "bbbb", + "text": "URIError", "kind": "localName" }, { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, { - "text": "number", + "text": "var", "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "arguments", - "kind": "local var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "local var", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "arguments", - "kind": "propertyName" + "text": "URIError", + "kind": "localName" }, { "text": ":", @@ -92618,38 +91882,77 @@ "kind": "space" }, { - "text": "IArguments", + "text": "URIErrorConstructor", "kind": "interfaceName" } ], "documentation": [] }, { - "name": "globalThis", - "kind": "module", + "name": "var", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + } + ] + }, + { + "name": "void", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "void", + "kind": "keyword" + } + ] + }, + { + "name": "while", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "while", + "kind": "keyword" + } + ] + }, + { + "name": "with", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "with", + "kind": "keyword" + } + ] + }, + { + "name": "yield", + "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "module", + "text": "yield", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "globalThis", - "kind": "moduleName" } - ], - "documentation": [] + ] }, { - "name": "eval", + "name": "escape", "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "deprecated,declare", + "sortText": "z15", "displayParts": [ { "text": "function", @@ -92660,7 +91963,7 @@ "kind": "space" }, { - "text": "eval", + "text": "escape", "kind": "functionName" }, { @@ -92668,7 +91971,7 @@ "kind": "punctuation" }, { - "text": "x", + "text": "string", "kind": "parameterName" }, { @@ -92696,22 +91999,31 @@ "kind": "space" }, { - "text": "any", + "text": "string", "kind": "keyword" } ], "documentation": [ { - "text": "Evaluates JavaScript code and executes it.", + "text": "Computes a new string in which certain characters have been replaced by a hexadecimal escape sequence.", "kind": "text" } ], "tags": [ + { + "name": "deprecated", + "text": [ + { + "text": "A legacy feature for browser compatibility", + "kind": "text" + } + ] + }, { "name": "param", "text": [ { - "text": "x", + "text": "string", "kind": "parameterName" }, { @@ -92719,7 +92031,7 @@ "kind": "space" }, { - "text": "A String value that contains valid JavaScript code.", + "text": "A string value", "kind": "text" } ] @@ -92727,10 +92039,10 @@ ] }, { - "name": "parseInt", + "name": "unescape", "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "deprecated,declare", + "sortText": "z15", "displayParts": [ { "text": "function", @@ -92741,7 +92053,7 @@ "kind": "space" }, { - "text": "parseInt", + "text": "unescape", "kind": "functionName" }, { @@ -92764,34 +92076,6 @@ "text": "string", "kind": "keyword" }, - { - "text": ",", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "radix", - "kind": "parameterName" - }, - { - "text": "?", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, { "text": ")", "kind": "punctuation" @@ -92805,30 +92089,22 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" } ], "documentation": [ { - "text": "Converts a string to an integer.", + "text": "Computes a new string in which hexadecimal escape sequences are replaced with the character that it represents.", "kind": "text" } ], "tags": [ { - "name": "param", + "name": "deprecated", "text": [ { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string to convert into a number.", + "text": "A legacy feature for browser compatibility", "kind": "text" } ] @@ -92837,7 +92113,7 @@ "name": "param", "text": [ { - "text": "radix", + "text": "string", "kind": "parameterName" }, { @@ -92845,41 +92121,47 @@ "kind": "space" }, { - "text": "A value between 2 and 36 that specifies the base of the number in `string`.\r\nIf this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal.\r\nAll other strings are considered decimal.", + "text": "A string value", "kind": "text" } ] } ] - }, + } + ] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/completionsCommentsClassMembers.ts", + "position": 2882, + "name": "110" + }, + "completionList": { + "isGlobalCompletion": false, + "isMemberCompletion": true, + "isNewIdentifierLocation": false, + "optionalReplacementSpan": { + "start": 2882, + "length": 2 + }, + "entries": [ { - "name": "parseFloat", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "name": "nc_p1", + "kind": "property", + "kindModifiers": "public", + "sortText": "11", "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "parseFloat", - "kind": "functionName" - }, { "text": "(", "kind": "punctuation" }, { - "text": "string", - "kind": "parameterName" + "text": "property", + "kind": "text" }, { - "text": ":", + "text": ")", "kind": "punctuation" }, { @@ -92887,13 +92169,17 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "cProperties", + "kind": "className" }, { - "text": ")", + "text": ".", "kind": "punctuation" }, + { + "text": "nc_p1", + "kind": "propertyName" + }, { "text": ":", "kind": "punctuation" @@ -92907,57 +92193,41 @@ "kind": "keyword" } ], - "documentation": [ - { - "text": "Converts a string to a floating-point number.", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string that contains a floating-point number.", - "kind": "text" - } - ] - } - ] + "documentation": [] }, { - "name": "isNaN", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "name": "nc_p2", + "kind": "property", + "kindModifiers": "public", + "sortText": "11", "displayParts": [ { - "text": "function", - "kind": "keyword" + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "isNaN", - "kind": "functionName" + "text": "cProperties", + "kind": "className" }, { - "text": "(", + "text": ".", "kind": "punctuation" }, { - "text": "number", - "kind": "parameterName" + "text": "nc_p2", + "kind": "propertyName" }, { "text": ":", @@ -92970,11 +92240,44 @@ { "text": "number", "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "p1", + "kind": "property", + "kindModifiers": "public", + "sortText": "11", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" }, { "text": ")", "kind": "punctuation" }, + { + "text": " ", + "kind": "space" + }, + { + "text": "cProperties", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "p1", + "kind": "propertyName" + }, { "text": ":", "kind": "punctuation" @@ -92984,64 +92287,33 @@ "kind": "space" }, { - "text": "boolean", + "text": "number", "kind": "keyword" } ], "documentation": [ { - "text": "Returns a Boolean value that indicates whether a value is the reserved value NaN (not a number).", + "text": "getter only property", "kind": "text" } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "number", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A numeric value.", - "kind": "text" - } - ] - } ] }, { - "name": "isFinite", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "name": "p2", + "kind": "property", + "kindModifiers": "public", + "sortText": "11", "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "isFinite", - "kind": "functionName" - }, { "text": "(", "kind": "punctuation" }, { - "text": "number", - "kind": "parameterName" + "text": "property", + "kind": "text" }, { - "text": ":", + "text": ")", "kind": "punctuation" }, { @@ -93049,13 +92321,17 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "cProperties", + "kind": "className" }, { - "text": ")", + "text": ".", "kind": "punctuation" }, + { + "text": "p2", + "kind": "propertyName" + }, { "text": ":", "kind": "punctuation" @@ -93065,64 +92341,51 @@ "kind": "space" }, { - "text": "boolean", + "text": "number", "kind": "keyword" } ], "documentation": [ { - "text": "Determines whether a supplied number is finite.", + "text": "setter only property", "kind": "text" } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "number", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Any numeric value.", - "kind": "text" - } - ] - } ] - }, + } + ] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/completionsCommentsClassMembers.ts", + "position": 3190, + "name": "114" + }, + "completionList": { + "isGlobalCompletion": false, + "isMemberCompletion": true, + "isNewIdentifierLocation": false, + "optionalReplacementSpan": { + "start": 3190, + "length": 1 + }, + "entries": [ { - "name": "decodeURI", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "name": "a", + "kind": "property", + "kindModifiers": "public", + "sortText": "11", "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "decodeURI", - "kind": "functionName" - }, { "text": "(", "kind": "punctuation" }, { - "text": "encodedURI", - "kind": "parameterName" + "text": "property", + "kind": "text" }, { - "text": ":", + "text": ")", "kind": "punctuation" }, { @@ -93130,13 +92393,17 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "cWithConstructorProperty", + "kind": "className" }, { - "text": ")", + "text": ".", "kind": "punctuation" }, + { + "text": "a", + "kind": "propertyName" + }, { "text": ":", "kind": "punctuation" @@ -93146,13 +92413,21 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" } ], "documentation": [ { - "text": "Gets the unencoded version of an encoded Uniform Resource Identifier (URI).", + "text": "more info about a", + "kind": "text" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "this is first parameter a", "kind": "text" } ], @@ -93161,7 +92436,7 @@ "name": "param", "text": [ { - "text": "encodedURI", + "text": "a", "kind": "parameterName" }, { @@ -93169,41 +92444,47 @@ "kind": "space" }, { - "text": "A value representing an encoded URI.", + "text": "this is first parameter a", "kind": "text" } ] } ] - }, + } + ] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/completionsCommentsClassMembers.ts", + "position": 3194, + "name": "115" + }, + "completionList": { + "isGlobalCompletion": false, + "isMemberCompletion": false, + "isNewIdentifierLocation": true, + "optionalReplacementSpan": { + "start": 3194, + "length": 1 + }, + "entries": [ { - "name": "decodeURIComponent", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "name": "a", + "kind": "parameter", + "kindModifiers": "public", + "sortText": "11", "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "decodeURIComponent", - "kind": "functionName" - }, { "text": "(", "kind": "punctuation" }, { - "text": "encodedURIComponent", - "kind": "parameterName" + "text": "parameter", + "kind": "text" }, { - "text": ":", + "text": ")", "kind": "punctuation" }, { @@ -93211,12 +92492,8 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "a", + "kind": "parameterName" }, { "text": ":", @@ -93227,13 +92504,21 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" } ], "documentation": [ { - "text": "Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).", + "text": "more info about a", + "kind": "text" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "this is first parameter a", "kind": "text" } ], @@ -93242,7 +92527,7 @@ "name": "param", "text": [ { - "text": "encodedURIComponent", + "text": "a", "kind": "parameterName" }, { @@ -93250,7 +92535,7 @@ "kind": "space" }, { - "text": "A value representing an encoded URI component.", + "text": "this is first parameter a", "kind": "text" } ] @@ -93258,33 +92543,62 @@ ] }, { - "name": "encodeURI", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "name": "arguments", + "kind": "local var", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "function", - "kind": "keyword" + "text": "(", + "kind": "punctuation" + }, + { + "text": "local var", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "encodeURI", - "kind": "functionName" + "text": "arguments", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" }, + { + "text": "IArguments", + "kind": "interfaceName" + } + ], + "documentation": [] + }, + { + "name": "bbbb", + "kind": "local var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { "text": "(", "kind": "punctuation" }, { - "text": "uri", - "kind": "parameterName" + "text": "local var", + "kind": "text" }, { - "text": ":", + "text": ")", "kind": "punctuation" }, { @@ -93292,12 +92606,8 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "bbbb", + "kind": "localName" }, { "text": ":", @@ -93308,44 +92618,46 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "c1", + "kind": "class", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { - "text": "Encodes a text string as a valid Uniform Resource Identifier (URI)", - "kind": "text" + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "c1", + "kind": "className" } ], - "tags": [ + "documentation": [ { - "name": "param", - "text": [ - { - "text": "uri", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI.", - "kind": "text" - } - ] + "text": "This is comment for c1", + "kind": "text" } ] }, { - "name": "encodeURIComponent", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "name": "cProperties", + "kind": "class", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "function", + "text": "class", "kind": "keyword" }, { @@ -93353,16 +92665,29 @@ "kind": "space" }, { - "text": "encodeURIComponent", - "kind": "functionName" + "text": "cProperties", + "kind": "className" + } + ], + "documentation": [] + }, + { + "name": "cProperties_i", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "var", + "kind": "keyword" }, { - "text": "(", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": "uriComponent", - "kind": "parameterName" + "text": "cProperties_i", + "kind": "localName" }, { "text": ":", @@ -93373,7 +92698,20 @@ "kind": "space" }, { - "text": "string", + "text": "cProperties", + "kind": "className" + } + ], + "documentation": [] + }, + { + "name": "cWithConstructorProperty", + "kind": "class", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "class", "kind": "keyword" }, { @@ -93381,15 +92719,20 @@ "kind": "space" }, { - "text": "|", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, + "text": "cWithConstructorProperty", + "kind": "className" + } + ], + "documentation": [] + }, + { + "name": "i1", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { - "text": "number", + "text": "var", "kind": "keyword" }, { @@ -93397,7 +92740,11 @@ "kind": "space" }, { - "text": "|", + "text": "i1", + "kind": "localName" + }, + { + "text": ":", "kind": "punctuation" }, { @@ -93405,12 +92752,29 @@ "kind": "space" }, { - "text": "boolean", + "text": "c1", + "kind": "className" + } + ], + "documentation": [] + }, + { + "name": "i1_c", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "var", "kind": "keyword" }, { - "text": ")", - "kind": "punctuation" + "text": " ", + "kind": "space" + }, + { + "text": "i1_c", + "kind": "localName" }, { "text": ":", @@ -93421,44 +92785,28 @@ "kind": "space" }, { - "text": "string", + "text": "typeof", "kind": "keyword" - } - ], - "documentation": [ + }, { - "text": "Encodes a text string as a valid component of a Uniform Resource Identifier (URI).", - "kind": "text" - } - ], - "tags": [ + "text": " ", + "kind": "space" + }, { - "name": "param", - "text": [ - { - "text": "uriComponent", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI component.", - "kind": "text" - } - ] + "text": "c1", + "kind": "className" } - ] + ], + "documentation": [] }, { - "name": "escape", - "kind": "function", - "kindModifiers": "deprecated,declare", - "sortText": "23", + "name": "i1_f", + "kind": "var", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "function", + "text": "var", "kind": "keyword" }, { @@ -93466,15 +92814,23 @@ "kind": "space" }, { - "text": "escape", - "kind": "functionName" + "text": "i1_f", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" }, { "text": "(", "kind": "punctuation" }, { - "text": "string", + "text": "b", "kind": "parameterName" }, { @@ -93486,7 +92842,7 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" }, { @@ -93494,7 +92850,11 @@ "kind": "punctuation" }, { - "text": ":", + "text": " ", + "kind": "space" + }, + { + "text": "=>", "kind": "punctuation" }, { @@ -93502,53 +92862,53 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "i1_nc_p", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { - "text": "Computes a new string in which certain characters have been replaced by a hexadecimal escape sequence.", - "kind": "text" - } - ], - "tags": [ + "text": "var", + "kind": "keyword" + }, { - "name": "deprecated", - "text": [ - { - "text": "A legacy feature for browser compatibility", - "kind": "text" - } - ] + "text": " ", + "kind": "space" }, { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string value", - "kind": "text" - } - ] + "text": "i1_nc_p", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" } - ] + ], + "documentation": [] }, { - "name": "unescape", - "kind": "function", - "kindModifiers": "deprecated,declare", - "sortText": "23", + "name": "i1_ncf", + "kind": "var", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "function", + "text": "var", "kind": "keyword" }, { @@ -93556,15 +92916,23 @@ "kind": "space" }, { - "text": "unescape", - "kind": "functionName" + "text": "i1_ncf", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" }, { "text": "(", "kind": "punctuation" }, { - "text": "string", + "text": "b", "kind": "parameterName" }, { @@ -93576,7 +92944,7 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" }, { @@ -93584,7 +92952,11 @@ "kind": "punctuation" }, { - "text": ":", + "text": " ", + "kind": "space" + }, + { + "text": "=>", "kind": "punctuation" }, { @@ -93592,50 +92964,17 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" } ], - "documentation": [ - { - "text": "Computes a new string in which hexadecimal escape sequences are replaced with the character that it represents.", - "kind": "text" - } - ], - "tags": [ - { - "name": "deprecated", - "text": [ - { - "text": "A legacy feature for browser compatibility", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string value", - "kind": "text" - } - ] - } - ] + "documentation": [] }, { - "name": "NaN", + "name": "i1_ncprop", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { "text": "var", @@ -93646,7 +92985,7 @@ "kind": "space" }, { - "text": "NaN", + "text": "i1_ncprop", "kind": "localName" }, { @@ -93665,10 +93004,10 @@ "documentation": [] }, { - "name": "Infinity", + "name": "i1_ncr", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { "text": "var", @@ -93679,7 +93018,7 @@ "kind": "space" }, { - "text": "Infinity", + "text": "i1_ncr", "kind": "localName" }, { @@ -93698,27 +93037,11 @@ "documentation": [] }, { - "name": "Object", + "name": "i1_p", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Object", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, { "text": "var", "kind": "keyword" @@ -93728,7 +93051,7 @@ "kind": "space" }, { - "text": "Object", + "text": "i1_p", "kind": "localName" }, { @@ -93740,25 +93063,20 @@ "kind": "space" }, { - "text": "ObjectConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], - "documentation": [ - { - "text": "Provides functionality common to all JavaScript objects.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "Function", + "name": "i1_prop", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "var", "kind": "keyword" }, { @@ -93766,13 +93084,30 @@ "kind": "space" }, { - "text": "Function", + "text": "i1_prop", "kind": "localName" }, { - "text": "\n", - "kind": "lineBreak" + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" }, + { + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "i1_r", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { "text": "var", "kind": "keyword" @@ -93782,7 +93117,7 @@ "kind": "space" }, { - "text": "Function", + "text": "i1_r", "kind": "localName" }, { @@ -93794,25 +93129,20 @@ "kind": "space" }, { - "text": "FunctionConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], - "documentation": [ - { - "text": "Creates a new function.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "String", + "name": "i1_s_f", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "var", "kind": "keyword" }, { @@ -93820,24 +93150,24 @@ "kind": "space" }, { - "text": "String", + "text": "i1_s_f", "kind": "localName" }, { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "String", - "kind": "localName" + "text": "(", + "kind": "punctuation" + }, + { + "text": "b", + "kind": "parameterName" }, { "text": ":", @@ -93848,39 +93178,38 @@ "kind": "space" }, { - "text": "StringConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "Allows manipulation and formatting of text strings and determination and location of substrings within strings.", - "kind": "text" - } - ] - }, - { - "name": "Boolean", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", + "text": "number", "kind": "keyword" }, + { + "text": ")", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "Boolean", - "kind": "localName" + "text": "=>", + "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": " ", + "kind": "space" }, + { + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "i1_s_nc_p", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { "text": "var", "kind": "keyword" @@ -93890,7 +93219,7 @@ "kind": "space" }, { - "text": "Boolean", + "text": "i1_s_nc_p", "kind": "localName" }, { @@ -93902,20 +93231,20 @@ "kind": "space" }, { - "text": "BooleanConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], "documentation": [] }, { - "name": "Number", + "name": "i1_s_ncf", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "var", "kind": "keyword" }, { @@ -93923,24 +93252,24 @@ "kind": "space" }, { - "text": "Number", + "text": "i1_s_ncf", "kind": "localName" }, { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Number", - "kind": "localName" + "text": "(", + "kind": "punctuation" + }, + { + "text": "b", + "kind": "parameterName" }, { "text": ":", @@ -93951,39 +93280,38 @@ "kind": "space" }, { - "text": "NumberConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "An object that represents a number of any kind. All JavaScript numbers are 64-bit floating-point numbers.", - "kind": "text" - } - ] - }, - { - "name": "Math", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", + "text": "number", "kind": "keyword" }, + { + "text": ")", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "Math", - "kind": "localName" + "text": "=>", + "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": " ", + "kind": "space" }, + { + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "i1_s_ncprop", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { "text": "var", "kind": "keyword" @@ -93993,7 +93321,7 @@ "kind": "space" }, { - "text": "Math", + "text": "i1_s_ncprop", "kind": "localName" }, { @@ -94005,25 +93333,20 @@ "kind": "space" }, { - "text": "Math", - "kind": "localName" + "text": "number", + "kind": "keyword" } ], - "documentation": [ - { - "text": "An intrinsic object that provides basic mathematics functionality and constants.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "Date", + "name": "i1_s_ncr", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "var", "kind": "keyword" }, { @@ -94031,13 +93354,30 @@ "kind": "space" }, { - "text": "Date", + "text": "i1_s_ncr", "kind": "localName" }, { - "text": "\n", - "kind": "lineBreak" + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" }, + { + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "i1_s_p", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { "text": "var", "kind": "keyword" @@ -94047,7 +93387,7 @@ "kind": "space" }, { - "text": "Date", + "text": "i1_s_p", "kind": "localName" }, { @@ -94059,25 +93399,20 @@ "kind": "space" }, { - "text": "DateConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], - "documentation": [ - { - "text": "Enables basic storage and retrieval of dates and times.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "RegExp", + "name": "i1_s_prop", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "var", "kind": "keyword" }, { @@ -94085,13 +93420,30 @@ "kind": "space" }, { - "text": "RegExp", + "text": "i1_s_prop", "kind": "localName" }, { - "text": "\n", - "kind": "lineBreak" + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" }, + { + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "i1_s_r", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { "text": "var", "kind": "keyword" @@ -94101,7 +93453,7 @@ "kind": "space" }, { - "text": "RegExp", + "text": "i1_s_r", "kind": "localName" }, { @@ -94113,14 +93465,14 @@ "kind": "space" }, { - "text": "RegExpConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], "documentation": [] }, { - "name": "Error", + "name": "Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -94134,9 +93486,21 @@ "kind": "space" }, { - "text": "Error", + "text": "Array", "kind": "localName" }, + { + "text": "<", + "kind": "punctuation" + }, + { + "text": "T", + "kind": "typeParameterName" + }, + { + "text": ">", + "kind": "punctuation" + }, { "text": "\n", "kind": "lineBreak" @@ -94150,7 +93514,7 @@ "kind": "space" }, { - "text": "Error", + "text": "Array", "kind": "localName" }, { @@ -94162,14 +93526,14 @@ "kind": "space" }, { - "text": "ErrorConstructor", + "text": "ArrayConstructor", "kind": "interfaceName" } ], "documentation": [] }, { - "name": "EvalError", + "name": "ArrayBuffer", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -94183,7 +93547,7 @@ "kind": "space" }, { - "text": "EvalError", + "text": "ArrayBuffer", "kind": "localName" }, { @@ -94199,7 +93563,7 @@ "kind": "space" }, { - "text": "EvalError", + "text": "ArrayBuffer", "kind": "localName" }, { @@ -94211,14 +93575,55 @@ "kind": "space" }, { - "text": "EvalErrorConstructor", + "text": "ArrayBufferConstructor", "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "Represents a raw buffer of binary data, which is used to store data for the\r\ndifferent typed arrays. ArrayBuffers cannot be read from or written to directly,\r\nbut can be passed to a typed array or DataView Object to interpret the raw\r\nbuffer as needed.", + "kind": "text" + } + ] }, { - "name": "RangeError", + "name": "as", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "as", + "kind": "keyword" + } + ] + }, + { + "name": "async", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "async", + "kind": "keyword" + } + ] + }, + { + "name": "await", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "await", + "kind": "keyword" + } + ] + }, + { + "name": "Boolean", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -94232,7 +93637,7 @@ "kind": "space" }, { - "text": "RangeError", + "text": "Boolean", "kind": "localName" }, { @@ -94248,7 +93653,7 @@ "kind": "space" }, { - "text": "RangeError", + "text": "Boolean", "kind": "localName" }, { @@ -94260,14 +93665,86 @@ "kind": "space" }, { - "text": "RangeErrorConstructor", + "text": "BooleanConstructor", "kind": "interfaceName" } ], "documentation": [] }, { - "name": "ReferenceError", + "name": "break", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "break", + "kind": "keyword" + } + ] + }, + { + "name": "case", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "case", + "kind": "keyword" + } + ] + }, + { + "name": "catch", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "catch", + "kind": "keyword" + } + ] + }, + { + "name": "class", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + } + ] + }, + { + "name": "const", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + } + ] + }, + { + "name": "continue", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "continue", + "kind": "keyword" + } + ] + }, + { + "name": "DataView", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -94281,7 +93758,7 @@ "kind": "space" }, { - "text": "ReferenceError", + "text": "DataView", "kind": "localName" }, { @@ -94297,7 +93774,7 @@ "kind": "space" }, { - "text": "ReferenceError", + "text": "DataView", "kind": "localName" }, { @@ -94309,14 +93786,14 @@ "kind": "space" }, { - "text": "ReferenceErrorConstructor", + "text": "DataViewConstructor", "kind": "interfaceName" } ], "documentation": [] }, { - "name": "SyntaxError", + "name": "Date", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -94330,7 +93807,7 @@ "kind": "space" }, { - "text": "SyntaxError", + "text": "Date", "kind": "localName" }, { @@ -94346,7 +93823,7 @@ "kind": "space" }, { - "text": "SyntaxError", + "text": "Date", "kind": "localName" }, { @@ -94358,20 +93835,37 @@ "kind": "space" }, { - "text": "SyntaxErrorConstructor", + "text": "DateConstructor", "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "Enables basic storage and retrieval of dates and times.", + "kind": "text" + } + ] }, { - "name": "TypeError", - "kind": "var", + "name": "debugger", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "debugger", + "kind": "keyword" + } + ] + }, + { + "name": "decodeURI", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -94379,24 +93873,32 @@ "kind": "space" }, { - "text": "TypeError", - "kind": "localName" + "text": "decodeURI", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "encodedURI", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "TypeError", - "kind": "localName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -94407,20 +93909,44 @@ "kind": "space" }, { - "text": "TypeErrorConstructor", - "kind": "interfaceName" + "text": "string", + "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Gets the unencoded version of an encoded Uniform Resource Identifier (URI).", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "encodedURI", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI.", + "kind": "text" + } + ] + } + ] }, { - "name": "URIError", - "kind": "var", + "name": "decodeURIComponent", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -94428,24 +93954,32 @@ "kind": "space" }, { - "text": "URIError", - "kind": "localName" + "text": "decodeURIComponent", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "encodedURIComponent", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "URIError", - "kind": "localName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -94456,20 +93990,92 @@ "kind": "space" }, { - "text": "URIErrorConstructor", - "kind": "interfaceName" + "text": "string", + "kind": "keyword" + } + ], + "documentation": [ + { + "text": "Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "encodedURIComponent", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI component.", + "kind": "text" + } + ] + } + ] + }, + { + "name": "default", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "default", + "kind": "keyword" + } + ] + }, + { + "name": "delete", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "delete", + "kind": "keyword" + } + ] + }, + { + "name": "do", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "do", + "kind": "keyword" + } + ] + }, + { + "name": "else", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "else", + "kind": "keyword" } - ], - "documentation": [] + ] }, { - "name": "JSON", - "kind": "var", + "name": "encodeURI", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -94477,24 +94083,32 @@ "kind": "space" }, { - "text": "JSON", - "kind": "localName" + "text": "encodeURI", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "uri", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "JSON", - "kind": "localName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -94505,25 +94119,44 @@ "kind": "space" }, { - "text": "JSON", - "kind": "localName" + "text": "string", + "kind": "keyword" } ], "documentation": [ { - "text": "An intrinsic object that provides functions to convert JavaScript values to and from the JavaScript Object Notation (JSON) format.", + "text": "Encodes a text string as a valid Uniform Resource Identifier (URI)", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "uri", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI.", + "kind": "text" + } + ] + } ] }, { - "name": "Array", - "kind": "var", + "name": "encodeURIComponent", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -94531,27 +94164,27 @@ "kind": "space" }, { - "text": "Array", - "kind": "localName" + "text": "encodeURIComponent", + "kind": "functionName" }, { - "text": "<", + "text": "(", "kind": "punctuation" }, { - "text": "T", - "kind": "typeParameterName" + "text": "uriComponent", + "kind": "parameterName" }, { - "text": ">", + "text": ":", "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": " ", + "kind": "space" }, { - "text": "var", + "text": "string", "kind": "keyword" }, { @@ -94559,11 +94192,7 @@ "kind": "space" }, { - "text": "Array", - "kind": "localName" - }, - { - "text": ":", + "text": "|", "kind": "punctuation" }, { @@ -94571,20 +94200,7 @@ "kind": "space" }, { - "text": "ArrayConstructor", - "kind": "interfaceName" - } - ], - "documentation": [] - }, - { - "name": "ArrayBuffer", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", + "text": "number", "kind": "keyword" }, { @@ -94592,24 +94208,20 @@ "kind": "space" }, { - "text": "ArrayBuffer", - "kind": "localName" + "text": "|", + "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": " ", + "kind": "space" }, { - "text": "var", + "text": "boolean", "kind": "keyword" }, { - "text": " ", - "kind": "space" - }, - { - "text": "ArrayBuffer", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -94620,19 +94232,50 @@ "kind": "space" }, { - "text": "ArrayBufferConstructor", - "kind": "interfaceName" + "text": "string", + "kind": "keyword" } ], "documentation": [ { - "text": "Represents a raw buffer of binary data, which is used to store data for the\r\ndifferent typed arrays. ArrayBuffers cannot be read from or written to directly,\r\nbut can be passed to a typed array or DataView Object to interpret the raw\r\nbuffer as needed.", + "text": "Encodes a text string as a valid component of a Uniform Resource Identifier (URI).", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "uriComponent", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI component.", + "kind": "text" + } + ] + } ] }, { - "name": "DataView", + "name": "enum", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "enum", + "kind": "keyword" + } + ] + }, + { + "name": "Error", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -94646,7 +94289,7 @@ "kind": "space" }, { - "text": "DataView", + "text": "Error", "kind": "localName" }, { @@ -94662,7 +94305,7 @@ "kind": "space" }, { - "text": "DataView", + "text": "Error", "kind": "localName" }, { @@ -94674,20 +94317,20 @@ "kind": "space" }, { - "text": "DataViewConstructor", + "text": "ErrorConstructor", "kind": "interfaceName" } ], "documentation": [] }, { - "name": "Int8Array", - "kind": "var", + "name": "eval", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -94695,24 +94338,32 @@ "kind": "space" }, { - "text": "Int8Array", - "kind": "localName" + "text": "eval", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "x", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Int8Array", - "kind": "localName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -94723,19 +94374,38 @@ "kind": "space" }, { - "text": "Int8ArrayConstructor", - "kind": "interfaceName" + "text": "any", + "kind": "keyword" } ], "documentation": [ { - "text": "A typed array of 8-bit integer values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", + "text": "Evaluates JavaScript code and executes it.", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "x", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A String value that contains valid JavaScript code.", + "kind": "text" + } + ] + } ] }, { - "name": "Uint8Array", + "name": "EvalError", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -94749,7 +94419,7 @@ "kind": "space" }, { - "text": "Uint8Array", + "text": "EvalError", "kind": "localName" }, { @@ -94765,7 +94435,7 @@ "kind": "space" }, { - "text": "Uint8Array", + "text": "EvalError", "kind": "localName" }, { @@ -94777,19 +94447,62 @@ "kind": "space" }, { - "text": "Uint8ArrayConstructor", + "text": "EvalErrorConstructor", "kind": "interfaceName" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "export", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" + "text": "export", + "kind": "keyword" } ] }, { - "name": "Uint8ClampedArray", + "name": "extends", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "extends", + "kind": "keyword" + } + ] + }, + { + "name": "false", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "false", + "kind": "keyword" + } + ] + }, + { + "name": "finally", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "finally", + "kind": "keyword" + } + ] + }, + { + "name": "Float32Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -94803,7 +94516,7 @@ "kind": "space" }, { - "text": "Uint8ClampedArray", + "text": "Float32Array", "kind": "localName" }, { @@ -94819,7 +94532,7 @@ "kind": "space" }, { - "text": "Uint8ClampedArray", + "text": "Float32Array", "kind": "localName" }, { @@ -94831,19 +94544,19 @@ "kind": "space" }, { - "text": "Uint8ClampedArrayConstructor", + "text": "Float32ArrayConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0.\r\nIf the requested number of bytes could not be allocated an exception is raised.", + "text": "A typed array of 32-bit float values. The contents are initialized to 0. If the requested number\r\nof bytes could not be allocated an exception is raised.", "kind": "text" } ] }, { - "name": "Int16Array", + "name": "Float64Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -94857,7 +94570,7 @@ "kind": "space" }, { - "text": "Int16Array", + "text": "Float64Array", "kind": "localName" }, { @@ -94873,7 +94586,7 @@ "kind": "space" }, { - "text": "Int16Array", + "text": "Float64Array", "kind": "localName" }, { @@ -94885,19 +94598,43 @@ "kind": "space" }, { - "text": "Int16ArrayConstructor", + "text": "Float64ArrayConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "A typed array of 16-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "text": "A typed array of 64-bit float values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", "kind": "text" } ] }, { - "name": "Uint16Array", + "name": "for", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "for", + "kind": "keyword" + } + ] + }, + { + "name": "function", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + } + ] + }, + { + "name": "Function", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -94911,7 +94648,7 @@ "kind": "space" }, { - "text": "Uint16Array", + "text": "Function", "kind": "localName" }, { @@ -94927,7 +94664,7 @@ "kind": "space" }, { - "text": "Uint16Array", + "text": "Function", "kind": "localName" }, { @@ -94939,25 +94676,25 @@ "kind": "space" }, { - "text": "Uint16ArrayConstructor", + "text": "FunctionConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "text": "Creates a new function.", "kind": "text" } ] }, { - "name": "Int32Array", - "kind": "var", - "kindModifiers": "declare", + "name": "globalThis", + "kind": "module", + "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "module", "kind": "keyword" }, { @@ -94965,13 +94702,66 @@ "kind": "space" }, { - "text": "Int32Array", - "kind": "localName" - }, + "text": "globalThis", + "kind": "moduleName" + } + ], + "documentation": [] + }, + { + "name": "if", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "\n", - "kind": "lineBreak" - }, + "text": "if", + "kind": "keyword" + } + ] + }, + { + "name": "implements", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "implements", + "kind": "keyword" + } + ] + }, + { + "name": "import", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "import", + "kind": "keyword" + } + ] + }, + { + "name": "in", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "in", + "kind": "keyword" + } + ] + }, + { + "name": "Infinity", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { "text": "var", "kind": "keyword" @@ -94981,7 +94771,7 @@ "kind": "space" }, { - "text": "Int32Array", + "text": "Infinity", "kind": "localName" }, { @@ -94993,19 +94783,26 @@ "kind": "space" }, { - "text": "Int32ArrayConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "instanceof", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "A typed array of 32-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" + "text": "instanceof", + "kind": "keyword" } ] }, { - "name": "Uint32Array", + "name": "Int16Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -95019,7 +94816,7 @@ "kind": "space" }, { - "text": "Uint32Array", + "text": "Int16Array", "kind": "localName" }, { @@ -95035,7 +94832,7 @@ "kind": "space" }, { - "text": "Uint32Array", + "text": "Int16Array", "kind": "localName" }, { @@ -95047,19 +94844,19 @@ "kind": "space" }, { - "text": "Uint32ArrayConstructor", + "text": "Int16ArrayConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "text": "A typed array of 16-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", "kind": "text" } ] }, { - "name": "Float32Array", + "name": "Int32Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -95073,7 +94870,7 @@ "kind": "space" }, { - "text": "Float32Array", + "text": "Int32Array", "kind": "localName" }, { @@ -95089,7 +94886,7 @@ "kind": "space" }, { - "text": "Float32Array", + "text": "Int32Array", "kind": "localName" }, { @@ -95101,19 +94898,19 @@ "kind": "space" }, { - "text": "Float32ArrayConstructor", + "text": "Int32ArrayConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "A typed array of 32-bit float values. The contents are initialized to 0. If the requested number\r\nof bytes could not be allocated an exception is raised.", + "text": "A typed array of 32-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", "kind": "text" } ] }, { - "name": "Float64Array", + "name": "Int8Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -95127,7 +94924,7 @@ "kind": "space" }, { - "text": "Float64Array", + "text": "Int8Array", "kind": "localName" }, { @@ -95143,7 +94940,7 @@ "kind": "space" }, { - "text": "Float64Array", + "text": "Int8Array", "kind": "localName" }, { @@ -95155,17 +94952,29 @@ "kind": "space" }, { - "text": "Float64ArrayConstructor", + "text": "Int8ArrayConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "A typed array of 64-bit float values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", + "text": "A typed array of 8-bit integer values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", "kind": "text" } ] }, + { + "name": "interface", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" + } + ] + }, { "name": "Intl", "kind": "module", @@ -95188,39 +94997,13 @@ "documentation": [] }, { - "name": "c1", - "kind": "class", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "c1", - "kind": "className" - } - ], - "documentation": [ - { - "text": "This is comment for c1", - "kind": "text" - } - ] - }, - { - "name": "i1", - "kind": "var", - "kindModifiers": "", - "sortText": "11", + "name": "isFinite", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "function", "kind": "keyword" }, { @@ -95228,41 +95011,32 @@ "kind": "space" }, { - "text": "i1", - "kind": "localName" + "text": "isFinite", + "kind": "functionName" }, { - "text": ":", + "text": "(", "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "number", + "kind": "parameterName" }, { - "text": "c1", - "kind": "className" - } - ], - "documentation": [] - }, - { - "name": "i1_p", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "i1_p", - "kind": "localName" + "text": "number", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -95273,20 +95047,44 @@ "kind": "space" }, { - "text": "number", + "text": "boolean", "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Determines whether a supplied number is finite.", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "number", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Any numeric value.", + "kind": "text" + } + ] + } + ] }, { - "name": "i1_f", - "kind": "var", - "kindModifiers": "", - "sortText": "11", + "name": "isNaN", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "function", "kind": "keyword" }, { @@ -95294,23 +95092,15 @@ "kind": "space" }, { - "text": "i1_f", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "isNaN", + "kind": "functionName" }, { "text": "(", "kind": "punctuation" }, { - "text": "b", + "text": "number", "kind": "parameterName" }, { @@ -95330,11 +95120,7 @@ "kind": "punctuation" }, { - "text": " ", - "kind": "space" - }, - { - "text": "=>", + "text": ":", "kind": "punctuation" }, { @@ -95342,20 +95128,44 @@ "kind": "space" }, { - "text": "number", + "text": "boolean", "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Returns a Boolean value that indicates whether a value is the reserved value NaN (not a number).", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "number", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A numeric value.", + "kind": "text" + } + ] + } + ] }, { - "name": "i1_r", + "name": "JSON", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -95363,30 +95173,13 @@ "kind": "space" }, { - "text": "i1_r", + "text": "JSON", "kind": "localName" }, { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_prop", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ { "text": "var", "kind": "keyword" @@ -95396,7 +95189,7 @@ "kind": "space" }, { - "text": "i1_prop", + "text": "JSON", "kind": "localName" }, { @@ -95408,53 +95201,37 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "JSON", + "kind": "localName" } ], - "documentation": [] + "documentation": [ + { + "text": "An intrinsic object that provides functions to convert JavaScript values to and from the JavaScript Object Notation (JSON) format.", + "kind": "text" + } + ] }, { - "name": "i1_nc_p", - "kind": "var", + "name": "let", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "i1_nc_p", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", + "text": "let", "kind": "keyword" } - ], - "documentation": [] + ] }, { - "name": "i1_ncf", + "name": "Math", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -95462,47 +95239,27 @@ "kind": "space" }, { - "text": "i1_ncf", + "text": "Math", "kind": "localName" }, { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "b", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "Math", + "kind": "localName" }, { - "text": "=>", + "text": ":", "kind": "punctuation" }, { @@ -95510,17 +95267,22 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "Math", + "kind": "localName" } ], - "documentation": [] + "documentation": [ + { + "text": "An intrinsic object that provides basic mathematics functionality and constants.", + "kind": "text" + } + ] }, { - "name": "i1_ncr", + "name": "NaN", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { "text": "var", @@ -95531,7 +95293,7 @@ "kind": "space" }, { - "text": "i1_ncr", + "text": "NaN", "kind": "localName" }, { @@ -95550,13 +95312,37 @@ "documentation": [] }, { - "name": "i1_ncprop", - "kind": "var", + "name": "new", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "new", + "kind": "keyword" + } + ] + }, + { + "name": "null", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "null", + "kind": "keyword" + } + ] + }, + { + "name": "Number", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", "kind": "keyword" }, { @@ -95564,30 +95350,13 @@ "kind": "space" }, { - "text": "i1_ncprop", + "text": "Number", "kind": "localName" }, { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_s_p", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ { "text": "var", "kind": "keyword" @@ -95597,7 +95366,7 @@ "kind": "space" }, { - "text": "i1_s_p", + "text": "Number", "kind": "localName" }, { @@ -95609,20 +95378,25 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "NumberConstructor", + "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "An object that represents a number of any kind. All JavaScript numbers are 64-bit floating-point numbers.", + "kind": "text" + } + ] }, { - "name": "i1_s_f", + "name": "Object", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -95630,39 +95404,27 @@ "kind": "space" }, { - "text": "i1_s_f", + "text": "Object", "kind": "localName" }, { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "b", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "Object", + "kind": "localName" }, { - "text": ")", + "text": ":", "kind": "punctuation" }, { @@ -95670,28 +95432,37 @@ "kind": "space" }, { - "text": "=>", - "kind": "punctuation" - }, + "text": "ObjectConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ { - "text": " ", - "kind": "space" - }, + "text": "Provides functionality common to all JavaScript objects.", + "kind": "text" + } + ] + }, + { + "name": "package", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "number", + "text": "package", "kind": "keyword" } - ], - "documentation": [] + ] }, { - "name": "i1_s_r", - "kind": "var", - "kindModifiers": "", - "sortText": "11", + "name": "parseFloat", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "function", "kind": "keyword" }, { @@ -95699,41 +95470,32 @@ "kind": "space" }, { - "text": "i1_s_r", - "kind": "localName" + "text": "parseFloat", + "kind": "functionName" }, { - "text": ":", + "text": "(", "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "string", + "kind": "parameterName" }, { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_s_prop", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "i1_s_prop", - "kind": "localName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -95748,16 +95510,40 @@ "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Converts a string to a floating-point number.", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string that contains a floating-point number.", + "kind": "text" + } + ] + } + ] }, { - "name": "i1_s_nc_p", - "kind": "var", - "kindModifiers": "", - "sortText": "11", + "name": "parseInt", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "function", "kind": "keyword" }, { @@ -95765,44 +95551,31 @@ "kind": "space" }, { - "text": "i1_s_nc_p", - "kind": "localName" + "text": "parseInt", + "kind": "functionName" }, { - "text": ":", + "text": "(", "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "string", + "kind": "parameterName" }, { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_s_ncf", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "i1_s_ncf", - "kind": "localName" + "text": "string", + "kind": "keyword" }, { - "text": ":", + "text": ",", "kind": "punctuation" }, { @@ -95810,12 +95583,12 @@ "kind": "space" }, { - "text": "(", - "kind": "punctuation" + "text": "radix", + "kind": "parameterName" }, { - "text": "b", - "kind": "parameterName" + "text": "?", + "kind": "punctuation" }, { "text": ":", @@ -95834,11 +95607,7 @@ "kind": "punctuation" }, { - "text": " ", - "kind": "space" - }, - { - "text": "=>", + "text": ":", "kind": "punctuation" }, { @@ -95850,16 +95619,57 @@ "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Converts a string to an integer.", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string to convert into a number.", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "radix", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value between 2 and 36 that specifies the base of the number in `string`.\r\nIf this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal.\r\nAll other strings are considered decimal.", + "kind": "text" + } + ] + } + ] }, { - "name": "i1_s_ncr", + "name": "RangeError", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -95867,30 +95677,13 @@ "kind": "space" }, { - "text": "i1_s_ncr", + "text": "RangeError", "kind": "localName" }, { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "i1_s_ncprop", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ { "text": "var", "kind": "keyword" @@ -95900,7 +95693,7 @@ "kind": "space" }, { - "text": "i1_s_ncprop", + "text": "RangeError", "kind": "localName" }, { @@ -95912,20 +95705,20 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "RangeErrorConstructor", + "kind": "interfaceName" } ], "documentation": [] }, { - "name": "i1_c", + "name": "ReferenceError", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -95933,19 +95726,15 @@ "kind": "space" }, { - "text": "i1_c", + "text": "ReferenceError", "kind": "localName" }, { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, { - "text": "typeof", + "text": "var", "kind": "keyword" }, { @@ -95953,41 +95742,32 @@ "kind": "space" }, { - "text": "c1", - "kind": "className" - } - ], - "documentation": [] - }, - { - "name": "cProperties", - "kind": "class", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ + "text": "ReferenceError", + "kind": "localName" + }, { - "text": "class", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "cProperties", - "kind": "className" + "text": "ReferenceErrorConstructor", + "kind": "interfaceName" } ], "documentation": [] }, { - "name": "cProperties_i", + "name": "RegExp", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -95995,32 +95775,15 @@ "kind": "space" }, { - "text": "cProperties_i", + "text": "RegExp", "kind": "localName" }, { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, { - "text": "cProperties", - "kind": "className" - } - ], - "documentation": [] - }, - { - "name": "cWithConstructorProperty", - "kind": "class", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "class", + "text": "var", "kind": "keyword" }, { @@ -96028,356 +95791,162 @@ "kind": "space" }, { - "text": "cWithConstructorProperty", - "kind": "className" - } - ], - "documentation": [] - }, - { - "name": "undefined", - "kind": "var", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "RegExp", + "kind": "localName" + }, { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "undefined", - "kind": "propertyName" + "text": "RegExpConstructor", + "kind": "interfaceName" } ], "documentation": [] }, { - "name": "break", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "break", - "kind": "keyword" - } - ] - }, - { - "name": "case", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "case", - "kind": "keyword" - } - ] - }, - { - "name": "catch", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "catch", - "kind": "keyword" - } - ] - }, - { - "name": "class", + "name": "return", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "class", + "text": "return", "kind": "keyword" } ] }, { - "name": "const", - "kind": "keyword", - "kindModifiers": "", + "name": "String", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "const", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "continue", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "continue", - "kind": "keyword" - } - ] - }, - { - "name": "debugger", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "debugger", - "kind": "keyword" - } - ] - }, - { - "name": "default", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "String", + "kind": "localName" + }, { - "text": "default", - "kind": "keyword" - } - ] - }, - { - "name": "delete", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "\n", + "kind": "lineBreak" + }, { - "text": "delete", + "text": "var", "kind": "keyword" - } - ] - }, - { - "name": "do", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "do", - "kind": "keyword" - } - ] - }, - { - "name": "else", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "else", - "kind": "keyword" - } - ] - }, - { - "name": "enum", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "String", + "kind": "localName" + }, { - "text": "enum", - "kind": "keyword" - } - ] - }, - { - "name": "export", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": ":", + "kind": "punctuation" + }, { - "text": "export", - "kind": "keyword" - } - ] - }, - { - "name": "extends", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "extends", - "kind": "keyword" + "text": "StringConstructor", + "kind": "interfaceName" } - ] - }, - { - "name": "false", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "false", - "kind": "keyword" + "text": "Allows manipulation and formatting of text strings and determination and location of substrings within strings.", + "kind": "text" } ] }, { - "name": "finally", + "name": "super", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "finally", + "text": "super", "kind": "keyword" } ] }, { - "name": "for", + "name": "switch", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "for", + "text": "switch", "kind": "keyword" } ] }, { - "name": "function", - "kind": "keyword", - "kindModifiers": "", + "name": "SyntaxError", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "if", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "if", - "kind": "keyword" - } - ] - }, - { - "name": "import", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "import", - "kind": "keyword" - } - ] - }, - { - "name": "in", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "SyntaxError", + "kind": "localName" + }, { - "text": "in", - "kind": "keyword" - } - ] - }, - { - "name": "instanceof", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "\n", + "kind": "lineBreak" + }, { - "text": "instanceof", + "text": "var", "kind": "keyword" - } - ] - }, - { - "name": "new", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "new", - "kind": "keyword" - } - ] - }, - { - "name": "null", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "null", - "kind": "keyword" - } - ] - }, - { - "name": "return", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "SyntaxError", + "kind": "localName" + }, { - "text": "return", - "kind": "keyword" - } - ] - }, - { - "name": "super", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": ":", + "kind": "punctuation" + }, { - "text": "super", - "kind": "keyword" - } - ] - }, - { - "name": "switch", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "switch", - "kind": "keyword" + "text": "SyntaxErrorConstructor", + "kind": "interfaceName" } - ] + ], + "documentation": [] }, { "name": "this", @@ -96427,6 +95996,55 @@ } ] }, + { + "name": "TypeError", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "TypeError", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "TypeError", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "TypeErrorConstructor", + "kind": "interfaceName" + } + ], + "documentation": [] + }, { "name": "typeof", "kind": "keyword", @@ -96440,147 +96058,529 @@ ] }, { - "name": "var", - "kind": "keyword", - "kindModifiers": "", + "name": "Uint16Array", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint16Array", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, { "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint16Array", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint16ArrayConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ + { + "text": "A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" } ] }, { - "name": "void", - "kind": "keyword", - "kindModifiers": "", + "name": "Uint32Array", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "void", + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint32Array", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint32Array", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint32ArrayConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ + { + "text": "A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" } ] }, { - "name": "while", - "kind": "keyword", - "kindModifiers": "", + "name": "Uint8Array", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "while", + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint8Array", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint8Array", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint8ArrayConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ + { + "text": "A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" } ] }, { - "name": "with", - "kind": "keyword", - "kindModifiers": "", + "name": "Uint8ClampedArray", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "with", + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint8ClampedArray", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint8ClampedArray", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint8ClampedArrayConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ + { + "text": "A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0.\r\nIf the requested number of bytes could not be allocated an exception is raised.", + "kind": "text" } ] }, { - "name": "implements", - "kind": "keyword", + "name": "undefined", + "kind": "var", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "implements", + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "undefined", + "kind": "propertyName" } - ] + ], + "documentation": [] }, { - "name": "interface", - "kind": "keyword", - "kindModifiers": "", + "name": "URIError", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { "text": "interface", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "URIError", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "URIError", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "URIErrorConstructor", + "kind": "interfaceName" } - ] + ], + "documentation": [] }, { - "name": "let", + "name": "var", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "let", + "text": "var", "kind": "keyword" } ] }, { - "name": "package", + "name": "void", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "package", + "text": "void", "kind": "keyword" } ] }, { - "name": "yield", + "name": "while", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "yield", + "text": "while", "kind": "keyword" } ] }, { - "name": "as", + "name": "with", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "as", + "text": "with", "kind": "keyword" } ] }, { - "name": "async", + "name": "yield", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "async", + "text": "yield", "kind": "keyword" } ] }, { - "name": "await", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", + "name": "escape", + "kind": "function", + "kindModifiers": "deprecated,declare", + "sortText": "z15", "displayParts": [ { - "text": "await", + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "escape", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "string", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } + ], + "documentation": [ + { + "text": "Computes a new string in which certain characters have been replaced by a hexadecimal escape sequence.", + "kind": "text" + } + ], + "tags": [ + { + "name": "deprecated", + "text": [ + { + "text": "A legacy feature for browser compatibility", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string value", + "kind": "text" + } + ] + } + ] + }, + { + "name": "unescape", + "kind": "function", + "kindModifiers": "deprecated,declare", + "sortText": "z15", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "unescape", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "string", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", "kind": "keyword" } + ], + "documentation": [ + { + "text": "Computes a new string in which hexadecimal escape sequences are replaced with the character that it represents.", + "kind": "text" + } + ], + "tags": [ + { + "name": "deprecated", + "text": [ + { + "text": "A legacy feature for browser compatibility", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string value", + "kind": "text" + } + ] + } ] } ] diff --git a/tests/baselines/reference/completionsCommentsCommentParsing.baseline b/tests/baselines/reference/completionsCommentsCommentParsing.baseline index 6da2d73bc7fbe..1ec7d5e207235 100644 --- a/tests/baselines/reference/completionsCommentsCommentParsing.baseline +++ b/tests/baselines/reference/completionsCommentsCommentParsing.baseline @@ -79,71 +79,6 @@ } ] }, - { - "name": "b", - "kind": "parameter", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "parameter", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "b", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "second number", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "b", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "second number", - "kind": "text" - } - ] - } - ] - }, { "name": "arguments", "kind": "local var", @@ -186,54 +121,21 @@ "documentation": [] }, { - "name": "globalThis", - "kind": "module", + "name": "b", + "kind": "parameter", "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "module", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "globalThis", - "kind": "moduleName" - } - ], - "documentation": [] - }, - { - "name": "eval", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "sortText": "11", "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "eval", - "kind": "functionName" - }, { "text": "(", "kind": "punctuation" }, { - "text": "x", - "kind": "parameterName" + "text": "parameter", + "kind": "text" }, { - "text": ":", + "text": ")", "kind": "punctuation" }, { @@ -241,12 +143,8 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "b", + "kind": "parameterName" }, { "text": ":", @@ -257,13 +155,13 @@ "kind": "space" }, { - "text": "any", + "text": "number", "kind": "keyword" } ], "documentation": [ { - "text": "Evaluates JavaScript code and executes it.", + "text": "second number", "kind": "text" } ], @@ -272,7 +170,7 @@ "name": "param", "text": [ { - "text": "x", + "text": "b", "kind": "parameterName" }, { @@ -280,7 +178,7 @@ "kind": "space" }, { - "text": "A String value that contains valid JavaScript code.", + "text": "second number", "kind": "text" } ] @@ -288,10 +186,10 @@ ] }, { - "name": "parseInt", + "name": "divide", "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { "text": "function", @@ -302,7 +200,7 @@ "kind": "space" }, { - "text": "parseInt", + "text": "divide", "kind": "functionName" }, { @@ -310,7 +208,7 @@ "kind": "punctuation" }, { - "text": "string", + "text": "a", "kind": "parameterName" }, { @@ -322,7 +220,7 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" }, { @@ -334,13 +232,9 @@ "kind": "space" }, { - "text": "radix", + "text": "b", "kind": "parameterName" }, - { - "text": "?", - "kind": "punctuation" - }, { "text": ":", "kind": "punctuation" @@ -366,13 +260,13 @@ "kind": "space" }, { - "text": "number", + "text": "void", "kind": "keyword" } ], "documentation": [ { - "text": "Converts a string to an integer.", + "text": "this is divide function", "kind": "text" } ], @@ -381,7 +275,7 @@ "name": "param", "text": [ { - "text": "string", + "text": "a", "kind": "parameterName" }, { @@ -389,7 +283,16 @@ "kind": "space" }, { - "text": "A string to convert into a number.", + "text": "this is a", + "kind": "text" + } + ] + }, + { + "name": "paramTag", + "text": [ + { + "text": "{ number } g this is optional param g", "kind": "text" } ] @@ -398,7 +301,7 @@ "name": "param", "text": [ { - "text": "radix", + "text": "b", "kind": "parameterName" }, { @@ -406,7 +309,7 @@ "kind": "space" }, { - "text": "A value between 2 and 36 that specifies the base of the number in `string`.\r\nIf this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal.\r\nAll other strings are considered decimal.", + "text": "this is b", "kind": "text" } ] @@ -414,10 +317,10 @@ ] }, { - "name": "parseFloat", + "name": "f1", "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { "text": "function", @@ -428,7 +331,7 @@ "kind": "space" }, { - "text": "parseFloat", + "text": "f1", "kind": "functionName" }, { @@ -436,7 +339,7 @@ "kind": "punctuation" }, { - "text": "string", + "text": "a", "kind": "parameterName" }, { @@ -448,7 +351,7 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" }, { @@ -464,94 +367,41 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Converts a string to a floating-point number.", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string that contains a floating-point number.", - "kind": "text" - } - ] - } - ] - }, - { - "name": "isNaN", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "function", + "text": "any", "kind": "keyword" }, { "text": " ", "kind": "space" }, - { - "text": "isNaN", - "kind": "functionName" - }, { "text": "(", "kind": "punctuation" }, { - "text": "number", - "kind": "parameterName" + "text": "+", + "kind": "operator" }, { - "text": ":", - "kind": "punctuation" + "text": "1", + "kind": "numericLiteral" }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "overload", + "kind": "text" }, { "text": ")", "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "boolean", - "kind": "keyword" } ], "documentation": [ { - "text": "Returns a Boolean value that indicates whether a value is the reserved value NaN (not a number).", + "text": "fn f1 with number", "kind": "text" } ], @@ -560,7 +410,7 @@ "name": "param", "text": [ { - "text": "number", + "text": "b", "kind": "parameterName" }, { @@ -568,7 +418,7 @@ "kind": "space" }, { - "text": "A numeric value.", + "text": "about b", "kind": "text" } ] @@ -576,10 +426,10 @@ ] }, { - "name": "isFinite", + "name": "fooBar", "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { "text": "function", @@ -590,7 +440,7 @@ "kind": "space" }, { - "text": "isFinite", + "text": "fooBar", "kind": "functionName" }, { @@ -598,7 +448,7 @@ "kind": "punctuation" }, { - "text": "number", + "text": "foo", "kind": "parameterName" }, { @@ -610,15 +460,11 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" }, { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", + "text": ",", "kind": "punctuation" }, { @@ -626,60 +472,7 @@ "kind": "space" }, { - "text": "boolean", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Determines whether a supplied number is finite.", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "number", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Any numeric value.", - "kind": "text" - } - ] - } - ] - }, - { - "name": "decodeURI", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "decodeURI", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "encodedURI", + "text": "bar", "kind": "parameterName" }, { @@ -713,7 +506,7 @@ ], "documentation": [ { - "text": "Gets the unencoded version of an encoded Uniform Resource Identifier (URI).", + "text": "Function returns string concat of foo and bar", "kind": "text" } ], @@ -722,7 +515,7 @@ "name": "param", "text": [ { - "text": "encodedURI", + "text": "foo", "kind": "parameterName" }, { @@ -730,7 +523,24 @@ "kind": "space" }, { - "text": "A value representing an encoded URI.", + "text": "is string", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "bar", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "is second string", "kind": "text" } ] @@ -738,10 +548,10 @@ ] }, { - "name": "decodeURIComponent", + "name": "jsDocCommentAlignmentTest1", "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { "text": "function", @@ -752,29 +562,13 @@ "kind": "space" }, { - "text": "decodeURIComponent", + "text": "jsDocCommentAlignmentTest1", "kind": "functionName" }, { "text": "(", "kind": "punctuation" }, - { - "text": "encodedURIComponent", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, { "text": ")", "kind": "punctuation" @@ -788,41 +582,22 @@ "kind": "space" }, { - "text": "string", + "text": "void", "kind": "keyword" } ], "documentation": [ { - "text": "Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).", + "text": "This is function comment\nAnd properly aligned comment", "kind": "text" } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "encodedURIComponent", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI component.", - "kind": "text" - } - ] - } ] }, { - "name": "encodeURI", + "name": "jsDocCommentAlignmentTest2", "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { "text": "function", @@ -833,29 +608,13 @@ "kind": "space" }, { - "text": "encodeURI", + "text": "jsDocCommentAlignmentTest2", "kind": "functionName" }, { "text": "(", "kind": "punctuation" }, - { - "text": "uri", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, { "text": ")", "kind": "punctuation" @@ -869,41 +628,22 @@ "kind": "space" }, { - "text": "string", + "text": "void", "kind": "keyword" } ], "documentation": [ { - "text": "Encodes a text string as a valid Uniform Resource Identifier (URI)", + "text": "This is function comment\n And aligned with 4 space char margin", "kind": "text" } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "uri", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI.", - "kind": "text" - } - ] - } ] }, { - "name": "encodeURIComponent", + "name": "jsDocCommentAlignmentTest3", "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { "text": "function", @@ -914,7 +654,7 @@ "kind": "space" }, { - "text": "encodeURIComponent", + "text": "jsDocCommentAlignmentTest3", "kind": "functionName" }, { @@ -922,7 +662,7 @@ "kind": "punctuation" }, { - "text": "uriComponent", + "text": "a", "kind": "parameterName" }, { @@ -937,12 +677,20 @@ "text": "string", "kind": "keyword" }, + { + "text": ",", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "|", + "text": "b", + "kind": "parameterName" + }, + { + "text": ":", "kind": "punctuation" }, { @@ -950,15 +698,23 @@ "kind": "space" }, { - "text": "number", + "text": "any", "kind": "keyword" }, + { + "text": ",", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "|", + "text": "c", + "kind": "parameterName" + }, + { + "text": ":", "kind": "punctuation" }, { @@ -966,7 +722,7 @@ "kind": "space" }, { - "text": "boolean", + "text": "any", "kind": "keyword" }, { @@ -982,13 +738,13 @@ "kind": "space" }, { - "text": "string", + "text": "void", "kind": "keyword" } ], "documentation": [ { - "text": "Encodes a text string as a valid component of a Uniform Resource Identifier (URI).", + "text": "This is function comment\n And aligned with 4 space char margin", "kind": "text" } ], @@ -997,7 +753,7 @@ "name": "param", "text": [ { - "text": "uriComponent", + "text": "a", "kind": "parameterName" }, { @@ -1005,89 +761,33 @@ "kind": "space" }, { - "text": "A value representing an encoded URI component.", + "text": "this is info about a\nspanning on two lines and aligned perfectly", "kind": "text" } ] - } - ] - }, - { - "name": "escape", - "kind": "function", - "kindModifiers": "deprecated,declare", - "sortText": "23", - "displayParts": [ - { - "text": "function", - "kind": "keyword" }, { - "text": " ", - "kind": "space" - }, - { - "text": "escape", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "string", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Computes a new string in which certain characters have been replaced by a hexadecimal escape sequence.", - "kind": "text" - } - ], - "tags": [ - { - "name": "deprecated", - "text": [ - { - "text": "A legacy feature for browser compatibility", - "kind": "text" - } - ] + "name": "param", + "text": [ + { + "text": "b", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "this is info about b\nspanning on two lines and aligned perfectly\nspanning one more line alined perfectly\n spanning another line with more margin", + "kind": "text" + } + ] }, { "name": "param", "text": [ { - "text": "string", + "text": "c", "kind": "parameterName" }, { @@ -1095,7 +795,7 @@ "kind": "space" }, { - "text": "A string value", + "text": "this is info about b\nnot aligned text about parameter will eat only one space", "kind": "text" } ] @@ -1103,10 +803,10 @@ ] }, { - "name": "unescape", + "name": "jsDocMixedComments1", "kind": "function", - "kindModifiers": "deprecated,declare", - "sortText": "23", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { "text": "function", @@ -1117,29 +817,13 @@ "kind": "space" }, { - "text": "unescape", + "text": "jsDocMixedComments1", "kind": "functionName" }, { "text": "(", "kind": "punctuation" }, - { - "text": "string", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, { "text": ")", "kind": "punctuation" @@ -1153,53 +837,25 @@ "kind": "space" }, { - "text": "string", + "text": "void", "kind": "keyword" } ], "documentation": [ { - "text": "Computes a new string in which hexadecimal escape sequences are replaced with the character that it represents.", + "text": "jsdoc comment", "kind": "text" } - ], - "tags": [ - { - "name": "deprecated", - "text": [ - { - "text": "A legacy feature for browser compatibility", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string value", - "kind": "text" - } - ] - } ] }, { - "name": "NaN", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "jsDocMixedComments2", + "kind": "function", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "var", + "text": "function", "kind": "keyword" }, { @@ -1207,41 +863,16 @@ "kind": "space" }, { - "text": "NaN", - "kind": "localName" + "text": "jsDocMixedComments2", + "kind": "functionName" }, { - "text": ":", + "text": "(", "kind": "punctuation" }, { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "Infinity", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Infinity", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -1252,20 +883,25 @@ "kind": "space" }, { - "text": "number", + "text": "void", "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "another jsDocComment", + "kind": "text" + } + ] }, { - "name": "Object", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "jsDocMixedComments3", + "kind": "function", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -1273,24 +909,16 @@ "kind": "space" }, { - "text": "Object", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": "jsDocMixedComments3", + "kind": "functionName" }, { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "Object", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -1301,25 +929,25 @@ "kind": "space" }, { - "text": "ObjectConstructor", - "kind": "interfaceName" + "text": "void", + "kind": "keyword" } ], "documentation": [ { - "text": "Provides functionality common to all JavaScript objects.", + "text": "* triplestar jsDocComment", "kind": "text" } ] }, { - "name": "Function", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "jsDocMixedComments4", + "kind": "function", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -1327,24 +955,16 @@ "kind": "space" }, { - "text": "Function", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": "jsDocMixedComments4", + "kind": "functionName" }, { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "Function", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -1355,25 +975,25 @@ "kind": "space" }, { - "text": "FunctionConstructor", - "kind": "interfaceName" + "text": "void", + "kind": "keyword" } ], "documentation": [ { - "text": "Creates a new function.", + "text": "another jsDocComment", "kind": "text" } ] }, { - "name": "String", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "jsDocMixedComments5", + "kind": "function", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -1381,24 +1001,16 @@ "kind": "space" }, { - "text": "String", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": "jsDocMixedComments5", + "kind": "functionName" }, { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "String", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -1409,25 +1021,25 @@ "kind": "space" }, { - "text": "StringConstructor", - "kind": "interfaceName" + "text": "void", + "kind": "keyword" } ], "documentation": [ { - "text": "Allows manipulation and formatting of text strings and determination and location of substrings within strings.", + "text": "another jsDocComment", "kind": "text" } ] }, { - "name": "Boolean", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "jsDocMixedComments6", + "kind": "function", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -1435,24 +1047,16 @@ "kind": "space" }, { - "text": "Boolean", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": "jsDocMixedComments6", + "kind": "functionName" }, { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "Boolean", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -1463,20 +1067,25 @@ "kind": "space" }, { - "text": "BooleanConstructor", - "kind": "interfaceName" + "text": "void", + "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "jsdoc comment", + "kind": "text" + } + ] }, { - "name": "Number", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "jsDocMultiLine", + "kind": "function", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -1484,24 +1093,16 @@ "kind": "space" }, { - "text": "Number", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": "jsDocMultiLine", + "kind": "functionName" }, { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "Number", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -1512,25 +1113,25 @@ "kind": "space" }, { - "text": "NumberConstructor", - "kind": "interfaceName" + "text": "void", + "kind": "keyword" } ], "documentation": [ { - "text": "An object that represents a number of any kind. All JavaScript numbers are 64-bit floating-point numbers.", + "text": "this is multiple line jsdoc stule comment\nNew line1\nNew Line2", "kind": "text" } ] }, { - "name": "Math", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "jsDocMultiLineMerge", + "kind": "function", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -1538,24 +1139,16 @@ "kind": "space" }, { - "text": "Math", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": "jsDocMultiLineMerge", + "kind": "functionName" }, { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "Math", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -1566,25 +1159,25 @@ "kind": "space" }, { - "text": "Math", - "kind": "localName" + "text": "void", + "kind": "keyword" } ], "documentation": [ { - "text": "An intrinsic object that provides basic mathematics functionality and constants.", + "text": "Another this one too", "kind": "text" } ] }, { - "name": "Date", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "jsDocParamTest", + "kind": "function", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -1592,27 +1185,31 @@ "kind": "space" }, { - "text": "Date", - "kind": "localName" + "text": "jsDocParamTest", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "a", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Date", - "kind": "localName" + "text": "number", + "kind": "keyword" }, { - "text": ":", + "text": ",", "kind": "punctuation" }, { @@ -1620,50 +1217,32 @@ "kind": "space" }, { - "text": "DateConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "Enables basic storage and retrieval of dates and times.", - "kind": "text" - } - ] - }, - { - "name": "RegExp", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ + "text": "b", + "kind": "parameterName" + }, { - "text": "interface", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "RegExp", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" + "text": "number", + "kind": "keyword" }, { - "text": "var", - "kind": "keyword" + "text": ",", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "RegExp", - "kind": "localName" + "text": "c", + "kind": "parameterName" }, { "text": ":", @@ -1674,45 +1253,36 @@ "kind": "space" }, { - "text": "RegExpConstructor", - "kind": "interfaceName" - } - ], - "documentation": [] - }, - { - "name": "Error", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", + "text": "number", "kind": "keyword" }, { - "text": " ", - "kind": "space" + "text": ",", + "kind": "punctuation" }, { - "text": "Error", - "kind": "localName" + "text": " ", + "kind": "space" }, { - "text": "\n", - "kind": "lineBreak" + "text": "d", + "kind": "parameterName" }, { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Error", - "kind": "localName" + "text": "number", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -1723,36 +1293,61 @@ "kind": "space" }, { - "text": "ErrorConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], - "documentation": [] - }, - { - "name": "EvalError", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, + "documentation": [ { - "text": " ", - "kind": "space" - }, + "text": "this is jsdoc style function with param tag as well as inline parameter help", + "kind": "text" + } + ], + "tags": [ { - "text": "EvalError", - "kind": "localName" + "name": "param", + "text": [ + { + "text": "a", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "it is first parameter", + "kind": "text" + } + ] }, { - "text": "\n", - "kind": "lineBreak" - }, + "name": "param", + "text": [ + { + "text": "c", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "it is third parameter", + "kind": "text" + } + ] + } + ] + }, + { + "name": "jsDocSingleLine", + "kind": "function", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { - "text": "var", + "text": "function", "kind": "keyword" }, { @@ -1760,8 +1355,16 @@ "kind": "space" }, { - "text": "EvalError", - "kind": "localName" + "text": "jsDocSingleLine", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -1772,20 +1375,25 @@ "kind": "space" }, { - "text": "EvalErrorConstructor", - "kind": "interfaceName" + "text": "void", + "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "this is eg of single line jsdoc style comment", + "kind": "text" + } + ] }, { - "name": "RangeError", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "multiLine", + "kind": "function", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -1793,24 +1401,16 @@ "kind": "space" }, { - "text": "RangeError", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": "multiLine", + "kind": "functionName" }, { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "RangeError", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -1821,20 +1421,20 @@ "kind": "space" }, { - "text": "RangeErrorConstructor", - "kind": "interfaceName" + "text": "void", + "kind": "keyword" } ], "documentation": [] }, { - "name": "ReferenceError", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "multiply", + "kind": "function", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -1842,27 +1442,31 @@ "kind": "space" }, { - "text": "ReferenceError", - "kind": "localName" + "text": "multiply", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "a", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "ReferenceError", - "kind": "localName" + "text": "number", + "kind": "keyword" }, { - "text": ":", + "text": ",", "kind": "punctuation" }, { @@ -1870,45 +1474,36 @@ "kind": "space" }, { - "text": "ReferenceErrorConstructor", - "kind": "interfaceName" - } - ], - "documentation": [] - }, - { - "name": "SyntaxError", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ + "text": "b", + "kind": "parameterName" + }, { - "text": "interface", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "SyntaxError", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" + "text": "number", + "kind": "keyword" }, { - "text": "var", - "kind": "keyword" + "text": ",", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "SyntaxError", - "kind": "localName" + "text": "c", + "kind": "parameterName" + }, + { + "text": "?", + "kind": "punctuation" }, { "text": ":", @@ -1919,48 +1514,39 @@ "kind": "space" }, { - "text": "SyntaxErrorConstructor", - "kind": "interfaceName" - } - ], - "documentation": [] - }, - { - "name": "TypeError", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", + "text": "number", "kind": "keyword" }, + { + "text": ",", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "TypeError", - "kind": "localName" + "text": "d", + "kind": "parameterName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "?", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "TypeError", - "kind": "localName" + "text": "any", + "kind": "keyword" }, { - "text": ":", + "text": ",", "kind": "punctuation" }, { @@ -1968,45 +1554,28 @@ "kind": "space" }, { - "text": "TypeErrorConstructor", - "kind": "interfaceName" - } - ], - "documentation": [] - }, - { - "name": "URIError", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" + "text": "e", + "kind": "parameterName" }, { - "text": " ", - "kind": "space" + "text": "?", + "kind": "punctuation" }, { - "text": "URIError", - "kind": "localName" + "text": ":", + "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": " ", + "kind": "space" }, { - "text": "var", + "text": "any", "kind": "keyword" }, { - "text": " ", - "kind": "space" - }, - { - "text": "URIError", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -2017,74 +1586,103 @@ "kind": "space" }, { - "text": "URIErrorConstructor", - "kind": "interfaceName" + "text": "void", + "kind": "keyword" } ], - "documentation": [] - }, - { - "name": "JSON", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, + "documentation": [ { - "text": " ", - "kind": "space" - }, + "text": "This is multiplication function", + "kind": "text" + } + ], + "tags": [ { - "text": "JSON", - "kind": "localName" + "name": "param", + "text": [ + { + "text": "", + "kind": "text" + } + ] }, { - "text": "\n", - "kind": "lineBreak" + "name": "param", + "text": [ + { + "text": "a", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "first number", + "kind": "text" + } + ] }, { - "text": "var", - "kind": "keyword" + "name": "param", + "text": [ + { + "text": "b", + "kind": "text" + } + ] }, { - "text": " ", - "kind": "space" + "name": "param", + "text": [ + { + "text": "c", + "kind": "text" + } + ] }, { - "text": "JSON", - "kind": "localName" + "name": "param", + "text": [ + { + "text": "d", + "kind": "text" + } + ] }, { - "text": ":", - "kind": "punctuation" + "name": "anotherTag" }, { - "text": " ", - "kind": "space" + "name": "param", + "text": [ + { + "text": "e", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "LastParam", + "kind": "text" + } + ] }, { - "text": "JSON", - "kind": "localName" - } - ], - "documentation": [ - { - "text": "An intrinsic object that provides functions to convert JavaScript values to and from the JavaScript Object Notation (JSON) format.", - "kind": "text" + "name": "anotherTag" } ] }, { - "name": "Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "noHelpComment1", + "kind": "function", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -2092,37 +1690,17 @@ "kind": "space" }, { - "text": "Array", - "kind": "localName" + "text": "noHelpComment1", + "kind": "functionName" }, { - "text": "<", + "text": "(", "kind": "punctuation" }, { - "text": "T", - "kind": "typeParameterName" - }, - { - "text": ">", + "text": ")", "kind": "punctuation" }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Array", - "kind": "localName" - }, { "text": ":", "kind": "punctuation" @@ -2132,20 +1710,20 @@ "kind": "space" }, { - "text": "ArrayConstructor", - "kind": "interfaceName" + "text": "void", + "kind": "keyword" } ], "documentation": [] }, { - "name": "ArrayBuffer", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "noHelpComment2", + "kind": "function", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -2153,24 +1731,16 @@ "kind": "space" }, { - "text": "ArrayBuffer", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": "noHelpComment2", + "kind": "functionName" }, { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "ArrayBuffer", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -2181,25 +1751,20 @@ "kind": "space" }, { - "text": "ArrayBufferConstructor", - "kind": "interfaceName" + "text": "void", + "kind": "keyword" } ], - "documentation": [ - { - "text": "Represents a raw buffer of binary data, which is used to store data for the\r\ndifferent typed arrays. ArrayBuffers cannot be read from or written to directly,\r\nbut can be passed to a typed array or DataView Object to interpret the raw\r\nbuffer as needed.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "DataView", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "noHelpComment3", + "kind": "function", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -2207,48 +1772,61 @@ "kind": "space" }, { - "text": "DataView", - "kind": "localName" + "text": "noHelpComment3", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "DataView", - "kind": "localName" - }, + "text": "void", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "NoQuickInfoClass", + "kind": "class", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { - "text": ":", - "kind": "punctuation" + "text": "class", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "DataViewConstructor", - "kind": "interfaceName" + "text": "NoQuickInfoClass", + "kind": "className" } ], "documentation": [] }, { - "name": "Int8Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "simple", + "kind": "function", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -2256,24 +1834,16 @@ "kind": "space" }, { - "text": "Int8Array", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": "simple", + "kind": "functionName" }, { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "Int8Array", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -2284,25 +1854,20 @@ "kind": "space" }, { - "text": "Int8ArrayConstructor", - "kind": "interfaceName" + "text": "void", + "kind": "keyword" } ], - "documentation": [ - { - "text": "A typed array of 8-bit integer values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "Uint8Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "square", + "kind": "function", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -2310,24 +1875,16 @@ "kind": "space" }, { - "text": "Uint8Array", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": "square", + "kind": "functionName" }, { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "Uint8Array", - "kind": "localName" + "text": "a", + "kind": "parameterName" }, { "text": ":", @@ -2338,50 +1895,12 @@ "kind": "space" }, { - "text": "Uint8ArrayConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] - }, - { - "name": "Uint8ClampedArray", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Uint8ClampedArray", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", + "text": "number", "kind": "keyword" }, { - "text": " ", - "kind": "space" - }, - { - "text": "Uint8ClampedArray", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -2392,25 +1911,62 @@ "kind": "space" }, { - "text": "Uint8ClampedArrayConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], "documentation": [ { - "text": "A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0.\r\nIf the requested number of bytes could not be allocated an exception is raised.", + "text": "this is square function", "kind": "text" } + ], + "tags": [ + { + "name": "paramTag", + "text": [ + { + "text": "{ number } a this is input number of paramTag", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "a", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "this is input number", + "kind": "text" + } + ] + }, + { + "name": "returnType", + "text": [ + { + "text": "{ number } it is return type", + "kind": "text" + } + ] + } ] }, { - "name": "Int16Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "subtract", + "kind": "function", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -2418,24 +1974,16 @@ "kind": "space" }, { - "text": "Int16Array", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": "subtract", + "kind": "functionName" }, { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "Int16Array", - "kind": "localName" + "text": "a", + "kind": "parameterName" }, { "text": ":", @@ -2446,50 +1994,20 @@ "kind": "space" }, { - "text": "Int16ArrayConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "A typed array of 16-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] - }, - { - "name": "Uint16Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", + "text": "number", "kind": "keyword" }, { - "text": " ", - "kind": "space" - }, - { - "text": "Uint16Array", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": ",", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Uint16Array", - "kind": "localName" + "text": "b", + "kind": "parameterName" }, { "text": ":", @@ -2500,53 +2018,39 @@ "kind": "space" }, { - "text": "Uint16ArrayConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] - }, - { - "name": "Int32Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", + "text": "number", "kind": "keyword" }, + { + "text": ",", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "Int32Array", - "kind": "localName" + "text": "c", + "kind": "parameterName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "?", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Int32Array", - "kind": "localName" + "text": "(", + "kind": "punctuation" }, { - "text": ":", + "text": ")", "kind": "punctuation" }, { @@ -2554,107 +2058,55 @@ "kind": "space" }, { - "text": "Int32ArrayConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "A typed array of 32-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] - }, - { - "name": "Uint32Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" + "text": "=>", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Uint32Array", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" + "text": "string", + "kind": "keyword" }, { - "text": "var", - "kind": "keyword" + "text": ",", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Uint32Array", - "kind": "localName" + "text": "d", + "kind": "parameterName" }, { - "text": ":", + "text": "?", "kind": "punctuation" }, { - "text": " ", - "kind": "space" - }, - { - "text": "Uint32ArrayConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] - }, - { - "name": "Float32Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Float32Array", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Float32Array", - "kind": "localName" - }, - { - "text": ":", + "text": "=>", "kind": "punctuation" }, { @@ -2662,53 +2114,39 @@ "kind": "space" }, { - "text": "Float32ArrayConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "A typed array of 32-bit float values. The contents are initialized to 0. If the requested number\r\nof bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] - }, - { - "name": "Float64Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", + "text": "string", "kind": "keyword" }, + { + "text": ",", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "Float64Array", - "kind": "localName" + "text": "e", + "kind": "parameterName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "?", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Float64Array", - "kind": "localName" + "text": "(", + "kind": "punctuation" }, { - "text": ":", + "text": ")", "kind": "punctuation" }, { @@ -2716,62 +2154,31 @@ "kind": "space" }, { - "text": "Float64ArrayConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "A typed array of 64-bit float values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] - }, - { - "name": "Intl", - "kind": "module", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "namespace", - "kind": "keyword" + "text": "=>", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Intl", - "kind": "moduleName" - } - ], - "documentation": [] - }, - { - "name": "simple", - "kind": "function", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "function", + "text": "string", "kind": "keyword" }, { - "text": " ", - "kind": "space" + "text": ",", + "kind": "punctuation" }, { - "text": "simple", - "kind": "functionName" + "text": " ", + "kind": "space" }, { - "text": "(", - "kind": "punctuation" + "text": "f", + "kind": "parameterName" }, { - "text": ")", + "text": "?", "kind": "punctuation" }, { @@ -2782,31 +2189,6 @@ "text": " ", "kind": "space" }, - { - "text": "void", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "multiLine", - "kind": "function", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "multiLine", - "kind": "functionName" - }, { "text": "(", "kind": "punctuation" @@ -2815,42 +2197,21 @@ "text": ")", "kind": "punctuation" }, - { - "text": ":", - "kind": "punctuation" - }, { "text": " ", "kind": "space" }, { - "text": "void", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "jsDocSingleLine", - "kind": "function", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "function", - "kind": "keyword" + "text": "=>", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "jsDocSingleLine", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" + "text": "string", + "kind": "keyword" }, { "text": ")", @@ -2871,59 +2232,109 @@ ], "documentation": [ { - "text": "this is eg of single line jsdoc style comment", + "text": "This is subtract function", "kind": "text" } - ] - }, - { - "name": "jsDocMultiLine", - "kind": "function", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ + ], + "tags": [ { - "text": "function", - "kind": "keyword" + "name": "param", + "text": [ + { + "text": "", + "kind": "text" + } + ] }, { - "text": " ", - "kind": "space" - }, - { - "text": "jsDocMultiLine", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" + "name": "param", + "text": [ + { + "text": "b", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "this is about b", + "kind": "text" + } + ] }, { - "text": ")", - "kind": "punctuation" + "name": "param", + "text": [ + { + "text": "c", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "this is optional param c", + "kind": "text" + } + ] }, { - "text": ":", - "kind": "punctuation" + "name": "param", + "text": [ + { + "text": "d", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "this is optional param d", + "kind": "text" + } + ] }, { - "text": " ", - "kind": "space" + "name": "param", + "text": [ + { + "text": "e", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "this is optional param e", + "kind": "text" + } + ] }, { - "text": "void", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "this is multiple line jsdoc stule comment\nNew line1\nNew Line2", - "kind": "text" + "name": "param", + "text": [ + { + "text": "", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "{ () => string; } } f this is optional param f", + "kind": "text" + } + ] } ] }, { - "name": "jsDocMultiLineMerge", + "name": "sum", "kind": "function", "kindModifiers": "", "sortText": "11", @@ -2937,7 +2348,7 @@ "kind": "space" }, { - "text": "jsDocMultiLineMerge", + "text": "sum", "kind": "functionName" }, { @@ -2945,8 +2356,8 @@ "kind": "punctuation" }, { - "text": ")", - "kind": "punctuation" + "text": "a", + "kind": "parameterName" }, { "text": ":", @@ -2957,39 +2368,33 @@ "kind": "space" }, { - "text": "void", + "text": "number", "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Another this one too", - "kind": "text" - } - ] - }, - { - "name": "jsDocMixedComments1", - "kind": "function", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ + }, { - "text": "function", - "kind": "keyword" + "text": ",", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "jsDocMixedComments1", - "kind": "functionName" + "text": "b", + "kind": "parameterName" }, { - "text": "(", + "text": ":", "kind": "punctuation" }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, { "text": ")", "kind": "punctuation" @@ -3003,25 +2408,61 @@ "kind": "space" }, { - "text": "void", + "text": "number", "kind": "keyword" } ], "documentation": [ { - "text": "jsdoc comment", + "text": "Adds two integers and returns the result", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "a", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "first number", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "b", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "second number", + "kind": "text" + } + ] + } ] }, { - "name": "jsDocMixedComments2", - "kind": "function", + "name": "x", + "kind": "var", "kindModifiers": "", "sortText": "11", "displayParts": [ { - "text": "function", + "text": "var", "kind": "keyword" }, { @@ -3029,16 +2470,8 @@ "kind": "space" }, { - "text": "jsDocMixedComments2", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" + "text": "x", + "kind": "localName" }, { "text": ":", @@ -3049,25 +2482,25 @@ "kind": "space" }, { - "text": "void", + "text": "any", "kind": "keyword" } ], "documentation": [ { - "text": "another jsDocComment", + "text": "This is a comment", "kind": "text" } ] }, { - "name": "jsDocMixedComments3", - "kind": "function", + "name": "y", + "kind": "var", "kindModifiers": "", "sortText": "11", "displayParts": [ { - "text": "function", + "text": "var", "kind": "keyword" }, { @@ -3075,16 +2508,8 @@ "kind": "space" }, { - "text": "jsDocMixedComments3", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" + "text": "y", + "kind": "localName" }, { "text": ":", @@ -3095,25 +2520,25 @@ "kind": "space" }, { - "text": "void", + "text": "any", "kind": "keyword" } ], "documentation": [ { - "text": "* triplestar jsDocComment", + "text": "This is a comment", "kind": "text" } ] }, { - "name": "jsDocMixedComments4", - "kind": "function", - "kindModifiers": "", - "sortText": "11", + "name": "Array", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -3121,17 +2546,37 @@ "kind": "space" }, { - "text": "jsDocMixedComments4", - "kind": "functionName" + "text": "Array", + "kind": "localName" }, { - "text": "(", + "text": "<", "kind": "punctuation" }, { - "text": ")", + "text": "T", + "kind": "typeParameterName" + }, + { + "text": ">", "kind": "punctuation" }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Array", + "kind": "localName" + }, { "text": ":", "kind": "punctuation" @@ -3141,25 +2586,20 @@ "kind": "space" }, { - "text": "void", - "kind": "keyword" + "text": "ArrayConstructor", + "kind": "interfaceName" } ], - "documentation": [ - { - "text": "another jsDocComment", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "jsDocMixedComments5", - "kind": "function", - "kindModifiers": "", - "sortText": "11", + "name": "ArrayBuffer", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -3167,16 +2607,24 @@ "kind": "space" }, { - "text": "jsDocMixedComments5", - "kind": "functionName" + "text": "ArrayBuffer", + "kind": "localName" }, { - "text": "(", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": ")", - "kind": "punctuation" + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "ArrayBuffer", + "kind": "localName" }, { "text": ":", @@ -3187,25 +2635,61 @@ "kind": "space" }, { - "text": "void", - "kind": "keyword" + "text": "ArrayBufferConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "another jsDocComment", + "text": "Represents a raw buffer of binary data, which is used to store data for the\r\ndifferent typed arrays. ArrayBuffers cannot be read from or written to directly,\r\nbut can be passed to a typed array or DataView Object to interpret the raw\r\nbuffer as needed.", "kind": "text" } ] }, { - "name": "jsDocMixedComments6", - "kind": "function", + "name": "as", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "function", + "text": "as", + "kind": "keyword" + } + ] + }, + { + "name": "async", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "async", + "kind": "keyword" + } + ] + }, + { + "name": "await", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "await", + "kind": "keyword" + } + ] + }, + { + "name": "Boolean", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", "kind": "keyword" }, { @@ -3213,16 +2697,24 @@ "kind": "space" }, { - "text": "jsDocMixedComments6", - "kind": "functionName" + "text": "Boolean", + "kind": "localName" }, { - "text": "(", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": ")", - "kind": "punctuation" + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Boolean", + "kind": "localName" }, { "text": ":", @@ -3233,25 +2725,92 @@ "kind": "space" }, { - "text": "void", - "kind": "keyword" + "text": "BooleanConstructor", + "kind": "interfaceName" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "break", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "jsdoc comment", - "kind": "text" + "text": "break", + "kind": "keyword" } ] }, { - "name": "noHelpComment1", - "kind": "function", + "name": "case", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "function", + "text": "case", + "kind": "keyword" + } + ] + }, + { + "name": "catch", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "catch", + "kind": "keyword" + } + ] + }, + { + "name": "class", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + } + ] + }, + { + "name": "const", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + } + ] + }, + { + "name": "continue", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "continue", + "kind": "keyword" + } + ] + }, + { + "name": "DataView", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", "kind": "keyword" }, { @@ -3259,16 +2818,24 @@ "kind": "space" }, { - "text": "noHelpComment1", - "kind": "functionName" + "text": "DataView", + "kind": "localName" }, { - "text": "(", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": ")", - "kind": "punctuation" + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "DataView", + "kind": "localName" }, { "text": ":", @@ -3279,20 +2846,20 @@ "kind": "space" }, { - "text": "void", - "kind": "keyword" + "text": "DataViewConstructor", + "kind": "interfaceName" } ], "documentation": [] }, { - "name": "noHelpComment2", - "kind": "function", - "kindModifiers": "", - "sortText": "11", + "name": "Date", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -3300,37 +2867,62 @@ "kind": "space" }, { - "text": "noHelpComment2", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" + "text": "Date", + "kind": "localName" }, { - "text": ")", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "void", - "kind": "keyword" + "text": "Date", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "DateConstructor", + "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "Enables basic storage and retrieval of dates and times.", + "kind": "text" + } + ] }, { - "name": "noHelpComment3", - "kind": "function", + "name": "debugger", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", + "displayParts": [ + { + "text": "debugger", + "kind": "keyword" + } + ] + }, + { + "name": "decodeURI", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { "text": "function", @@ -3341,13 +2933,29 @@ "kind": "space" }, { - "text": "noHelpComment3", + "text": "decodeURI", "kind": "functionName" }, { "text": "(", "kind": "punctuation" }, + { + "text": "encodedURI", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, { "text": ")", "kind": "punctuation" @@ -3361,17 +2969,41 @@ "kind": "space" }, { - "text": "void", + "text": "string", "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Gets the unencoded version of an encoded Uniform Resource Identifier (URI).", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "encodedURI", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI.", + "kind": "text" + } + ] + } + ] }, { - "name": "sum", + "name": "decodeURIComponent", "kind": "function", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { "text": "function", @@ -3382,7 +3014,7 @@ "kind": "space" }, { - "text": "sum", + "text": "decodeURIComponent", "kind": "functionName" }, { @@ -3390,31 +3022,7 @@ "kind": "punctuation" }, { - "text": "a", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": ",", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "b", + "text": "encodedURIComponent", "kind": "parameterName" }, { @@ -3426,7 +3034,7 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" }, { @@ -3442,13 +3050,13 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" } ], "documentation": [ { - "text": "Adds two integers and returns the result", + "text": "Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).", "kind": "text" } ], @@ -3457,7 +3065,7 @@ "name": "param", "text": [ { - "text": "a", + "text": "encodedURIComponent", "kind": "parameterName" }, { @@ -3465,35 +3073,66 @@ "kind": "space" }, { - "text": "first number", + "text": "A value representing an encoded URI component.", "kind": "text" } ] - }, + } + ] + }, + { + "name": "default", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "b", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "second number", - "kind": "text" - } - ] + "text": "default", + "kind": "keyword" } ] }, { - "name": "multiply", - "kind": "function", + "name": "delete", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", + "displayParts": [ + { + "text": "delete", + "kind": "keyword" + } + ] + }, + { + "name": "do", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "do", + "kind": "keyword" + } + ] + }, + { + "name": "else", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "else", + "kind": "keyword" + } + ] + }, + { + "name": "encodeURI", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { "text": "function", @@ -3504,7 +3143,7 @@ "kind": "space" }, { - "text": "multiply", + "text": "encodeURI", "kind": "functionName" }, { @@ -3512,7 +3151,7 @@ "kind": "punctuation" }, { - "text": "a", + "text": "uri", "kind": "parameterName" }, { @@ -3524,21 +3163,13 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" }, { - "text": ",", + "text": ")", "kind": "punctuation" }, - { - "text": " ", - "kind": "space" - }, - { - "text": "b", - "kind": "parameterName" - }, { "text": ":", "kind": "punctuation" @@ -3548,25 +3179,62 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" - }, + } + ], + "documentation": [ { - "text": ",", - "kind": "punctuation" + "text": "Encodes a text string as a valid Uniform Resource Identifier (URI)", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "uri", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI.", + "kind": "text" + } + ] + } + ] + }, + { + "name": "encodeURIComponent", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "function", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "c", - "kind": "parameterName" + "text": "encodeURIComponent", + "kind": "functionName" }, { - "text": "?", + "text": "(", "kind": "punctuation" }, + { + "text": "uriComponent", + "kind": "parameterName" + }, { "text": ":", "kind": "punctuation" @@ -3576,27 +3244,15 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" }, - { - "text": ",", - "kind": "punctuation" - }, { "text": " ", "kind": "space" }, { - "text": "d", - "kind": "parameterName" - }, - { - "text": "?", - "kind": "punctuation" - }, - { - "text": ":", + "text": "|", "kind": "punctuation" }, { @@ -3604,27 +3260,15 @@ "kind": "space" }, { - "text": "any", + "text": "number", "kind": "keyword" }, - { - "text": ",", - "kind": "punctuation" - }, { "text": " ", "kind": "space" }, { - "text": "e", - "kind": "parameterName" - }, - { - "text": "?", - "kind": "punctuation" - }, - { - "text": ":", + "text": "|", "kind": "punctuation" }, { @@ -3632,7 +3276,7 @@ "kind": "space" }, { - "text": "any", + "text": "boolean", "kind": "keyword" }, { @@ -3648,13 +3292,13 @@ "kind": "space" }, { - "text": "void", + "text": "string", "kind": "keyword" } ], "documentation": [ { - "text": "This is multiplication function", + "text": "Encodes a text string as a valid component of a Uniform Resource Identifier (URI).", "kind": "text" } ], @@ -3663,16 +3307,7 @@ "name": "param", "text": [ { - "text": "", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "a", + "text": "uriComponent", "kind": "parameterName" }, { @@ -3680,68 +3315,79 @@ "kind": "space" }, { - "text": "first number", + "text": "A value representing an encoded URI component.", "kind": "text" } ] + } + ] + }, + { + "name": "enum", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "enum", + "kind": "keyword" + } + ] + }, + { + "name": "Error", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" }, { - "name": "param", - "text": [ - { - "text": "b", - "kind": "text" - } - ] + "text": " ", + "kind": "space" }, { - "name": "param", - "text": [ - { - "text": "c", - "kind": "text" - } - ] + "text": "Error", + "kind": "localName" }, { - "name": "param", - "text": [ - { - "text": "d", - "kind": "text" - } - ] + "text": "\n", + "kind": "lineBreak" }, { - "name": "anotherTag" + "text": "var", + "kind": "keyword" }, { - "name": "param", - "text": [ - { - "text": "e", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "LastParam", - "kind": "text" - } - ] + "text": " ", + "kind": "space" }, { - "name": "anotherTag" + "text": "Error", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "ErrorConstructor", + "kind": "interfaceName" } - ] + ], + "documentation": [] }, { - "name": "f1", + "name": "eval", "kind": "function", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { "text": "function", @@ -3752,7 +3398,7 @@ "kind": "space" }, { - "text": "f1", + "text": "eval", "kind": "functionName" }, { @@ -3760,7 +3406,7 @@ "kind": "punctuation" }, { - "text": "a", + "text": "x", "kind": "parameterName" }, { @@ -3772,7 +3418,7 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" }, { @@ -3790,39 +3436,11 @@ { "text": "any", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "+", - "kind": "operator" - }, - { - "text": "1", - "kind": "numericLiteral" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "overload", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" } ], "documentation": [ { - "text": "fn f1 with number", + "text": "Evaluates JavaScript code and executes it.", "kind": "text" } ], @@ -3831,7 +3449,7 @@ "name": "param", "text": [ { - "text": "b", + "text": "x", "kind": "parameterName" }, { @@ -3839,7 +3457,7 @@ "kind": "space" }, { - "text": "about b", + "text": "A String value that contains valid JavaScript code.", "kind": "text" } ] @@ -3847,13 +3465,13 @@ ] }, { - "name": "subtract", - "kind": "function", - "kindModifiers": "", - "sortText": "11", + "name": "EvalError", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -3861,40 +3479,24 @@ "kind": "space" }, { - "text": "subtract", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "a", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" + "text": "EvalError", + "kind": "localName" }, { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, { - "text": "number", + "text": "var", "kind": "keyword" }, - { - "text": ",", - "kind": "punctuation" - }, { "text": " ", "kind": "space" }, { - "text": "b", - "kind": "parameterName" + "text": "EvalError", + "kind": "localName" }, { "text": ":", @@ -3905,47 +3507,96 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" - }, - { - "text": ",", - "kind": "punctuation" - }, + "text": "EvalErrorConstructor", + "kind": "interfaceName" + } + ], + "documentation": [] + }, + { + "name": "export", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": " ", - "kind": "space" - }, + "text": "export", + "kind": "keyword" + } + ] + }, + { + "name": "extends", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "c", - "kind": "parameterName" - }, + "text": "extends", + "kind": "keyword" + } + ] + }, + { + "name": "false", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "?", - "kind": "punctuation" - }, + "text": "false", + "kind": "keyword" + } + ] + }, + { + "name": "finally", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": ":", - "kind": "punctuation" + "text": "finally", + "kind": "keyword" + } + ] + }, + { + "name": "Float32Array", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "(", - "kind": "punctuation" + "text": "Float32Array", + "kind": "localName" }, { - "text": ")", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "=>", + "text": "Float32Array", + "kind": "localName" + }, + { + "text": ":", "kind": "punctuation" }, { @@ -3953,39 +3604,53 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" - }, + "text": "Float32ArrayConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ { - "text": ",", - "kind": "punctuation" + "text": "A typed array of 32-bit float values. The contents are initialized to 0. If the requested number\r\nof bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] + }, + { + "name": "Float64Array", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "d", - "kind": "parameterName" + "text": "Float64Array", + "kind": "localName" }, { - "text": "?", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "(", - "kind": "punctuation" + "text": "Float64Array", + "kind": "localName" }, { - "text": ")", + "text": ":", "kind": "punctuation" }, { @@ -3993,47 +3658,77 @@ "kind": "space" }, { - "text": "=>", - "kind": "punctuation" - }, + "text": "Float64ArrayConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ { - "text": " ", - "kind": "space" - }, + "text": "A typed array of 64-bit float values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] + }, + { + "name": "for", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "string", + "text": "for", "kind": "keyword" - }, + } + ] + }, + { + "name": "function", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": ",", - "kind": "punctuation" + "text": "function", + "kind": "keyword" + } + ] + }, + { + "name": "Function", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "e", - "kind": "parameterName" + "text": "Function", + "kind": "localName" }, { - "text": "?", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "(", - "kind": "punctuation" + "text": "Function", + "kind": "localName" }, { - "text": ")", + "text": ":", "kind": "punctuation" }, { @@ -4041,32 +3736,103 @@ "kind": "space" }, { - "text": "=>", - "kind": "punctuation" + "text": "FunctionConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ + { + "text": "Creates a new function.", + "kind": "text" + } + ] + }, + { + "name": "globalThis", + "kind": "module", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "module", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "string", + "text": "globalThis", + "kind": "moduleName" + } + ], + "documentation": [] + }, + { + "name": "if", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "if", "kind": "keyword" - }, + } + ] + }, + { + "name": "implements", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": ",", - "kind": "punctuation" + "text": "implements", + "kind": "keyword" + } + ] + }, + { + "name": "import", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "import", + "kind": "keyword" + } + ] + }, + { + "name": "in", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "in", + "kind": "keyword" + } + ] + }, + { + "name": "Infinity", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "f", - "kind": "parameterName" - }, - { - "text": "?", - "kind": "punctuation" + "text": "Infinity", + "kind": "localName" }, { "text": ":", @@ -4077,32 +3843,57 @@ "kind": "space" }, { - "text": "(", - "kind": "punctuation" - }, + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "instanceof", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": ")", - "kind": "punctuation" + "text": "instanceof", + "kind": "keyword" + } + ] + }, + { + "name": "Int16Array", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "=>", - "kind": "punctuation" + "text": "Int16Array", + "kind": "localName" }, { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, { - "text": "string", + "text": "var", "kind": "keyword" }, { - "text": ")", - "kind": "punctuation" + "text": " ", + "kind": "space" + }, + { + "text": "Int16Array", + "kind": "localName" }, { "text": ":", @@ -4113,121 +3904,79 @@ "kind": "space" }, { - "text": "void", - "kind": "keyword" + "text": "Int16ArrayConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "This is subtract function", + "text": "A typed array of 16-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", "kind": "text" } - ], - "tags": [ + ] + }, + { + "name": "Int32Array", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "", - "kind": "text" - } - ] + "text": "interface", + "kind": "keyword" }, { - "name": "param", - "text": [ - { - "text": "b", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "this is about b", - "kind": "text" - } - ] + "text": " ", + "kind": "space" }, { - "name": "param", - "text": [ - { - "text": "c", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "this is optional param c", - "kind": "text" - } - ] + "text": "Int32Array", + "kind": "localName" }, { - "name": "param", - "text": [ - { - "text": "d", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "this is optional param d", - "kind": "text" - } - ] + "text": "\n", + "kind": "lineBreak" }, { - "name": "param", - "text": [ - { - "text": "e", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "this is optional param e", - "kind": "text" - } - ] + "text": "var", + "kind": "keyword" }, { - "name": "param", - "text": [ - { - "text": "", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "{ () => string; } } f this is optional param f", - "kind": "text" - } - ] + "text": " ", + "kind": "space" + }, + { + "text": "Int32Array", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Int32ArrayConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ + { + "text": "A typed array of 32-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" } ] }, { - "name": "square", - "kind": "function", - "kindModifiers": "", - "sortText": "11", + "name": "Int8Array", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -4235,32 +3984,24 @@ "kind": "space" }, { - "text": "square", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" + "text": "Int8Array", + "kind": "localName" }, { - "text": "a", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "Int8Array", + "kind": "localName" }, { "text": ":", @@ -4271,59 +4012,55 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "Int8ArrayConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "this is square function", + "text": "A typed array of 8-bit integer values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", "kind": "text" } - ], - "tags": [ + ] + }, + { + "name": "interface", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "paramTag", - "text": [ - { - "text": "{ number } a this is input number of paramTag", - "kind": "text" - } - ] + "text": "interface", + "kind": "keyword" + } + ] + }, + { + "name": "Intl", + "kind": "module", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "namespace", + "kind": "keyword" }, { - "name": "param", - "text": [ - { - "text": "a", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "this is input number", - "kind": "text" - } - ] + "text": " ", + "kind": "space" }, { - "name": "returnType", - "text": [ - { - "text": "{ number } it is return type", - "kind": "text" - } - ] + "text": "Intl", + "kind": "moduleName" } - ] + ], + "documentation": [] }, { - "name": "divide", + "name": "isFinite", "kind": "function", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { "text": "function", @@ -4334,39 +4071,15 @@ "kind": "space" }, { - "text": "divide", + "text": "isFinite", "kind": "functionName" }, { "text": "(", "kind": "punctuation" }, - { - "text": "a", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, { "text": "number", - "kind": "keyword" - }, - { - "text": ",", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "b", "kind": "parameterName" }, { @@ -4394,13 +4107,13 @@ "kind": "space" }, { - "text": "void", + "text": "boolean", "kind": "keyword" } ], "documentation": [ { - "text": "this is divide function", + "text": "Determines whether a supplied number is finite.", "kind": "text" } ], @@ -4409,33 +4122,7 @@ "name": "param", "text": [ { - "text": "a", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "this is a", - "kind": "text" - } - ] - }, - { - "name": "paramTag", - "text": [ - { - "text": "{ number } g this is optional param g", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "b", + "text": "number", "kind": "parameterName" }, { @@ -4443,7 +4130,7 @@ "kind": "space" }, { - "text": "this is b", + "text": "Any numeric value.", "kind": "text" } ] @@ -4451,10 +4138,10 @@ ] }, { - "name": "fooBar", + "name": "isNaN", "kind": "function", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { "text": "function", @@ -4465,7 +4152,7 @@ "kind": "space" }, { - "text": "fooBar", + "text": "isNaN", "kind": "functionName" }, { @@ -4473,31 +4160,7 @@ "kind": "punctuation" }, { - "text": "foo", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": ",", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "bar", + "text": "number", "kind": "parameterName" }, { @@ -4509,7 +4172,7 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" }, { @@ -4525,13 +4188,13 @@ "kind": "space" }, { - "text": "string", + "text": "boolean", "kind": "keyword" } ], "documentation": [ { - "text": "Function returns string concat of foo and bar", + "text": "Returns a Boolean value that indicates whether a value is the reserved value NaN (not a number).", "kind": "text" } ], @@ -4540,24 +4203,7 @@ "name": "param", "text": [ { - "text": "foo", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "is string", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "bar", + "text": "number", "kind": "parameterName" }, { @@ -4565,7 +4211,7 @@ "kind": "space" }, { - "text": "is second string", + "text": "A numeric value.", "kind": "text" } ] @@ -4573,13 +4219,13 @@ ] }, { - "name": "jsDocParamTest", - "kind": "function", - "kindModifiers": "", - "sortText": "11", + "name": "JSON", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -4587,16 +4233,24 @@ "kind": "space" }, { - "text": "jsDocParamTest", - "kind": "functionName" + "text": "JSON", + "kind": "localName" }, { - "text": "(", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": "a", - "kind": "parameterName" + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "JSON", + "kind": "localName" }, { "text": ":", @@ -4607,20 +4261,62 @@ "kind": "space" }, { - "text": "number", + "text": "JSON", + "kind": "localName" + } + ], + "documentation": [ + { + "text": "An intrinsic object that provides functions to convert JavaScript values to and from the JavaScript Object Notation (JSON) format.", + "kind": "text" + } + ] + }, + { + "name": "let", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "let", + "kind": "keyword" + } + ] + }, + { + "name": "Math", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", "kind": "keyword" }, { - "text": ",", - "kind": "punctuation" + "text": " ", + "kind": "space" + }, + { + "text": "Math", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "b", - "kind": "parameterName" + "text": "Math", + "kind": "localName" }, { "text": ":", @@ -4631,20 +4327,34 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" - }, + "text": "Math", + "kind": "localName" + } + ], + "documentation": [ { - "text": ",", - "kind": "punctuation" + "text": "An intrinsic object that provides basic mathematics functionality and constants.", + "kind": "text" + } + ] + }, + { + "name": "NaN", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "c", - "kind": "parameterName" + "text": "NaN", + "kind": "localName" }, { "text": ":", @@ -4657,34 +4367,67 @@ { "text": "number", "kind": "keyword" - }, + } + ], + "documentation": [] + }, + { + "name": "new", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": ",", - "kind": "punctuation" + "text": "new", + "kind": "keyword" + } + ] + }, + { + "name": "null", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "null", + "kind": "keyword" + } + ] + }, + { + "name": "Number", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "d", - "kind": "parameterName" + "text": "Number", + "kind": "localName" }, { - "text": ":", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": " ", - "kind": "space" + "text": "var", + "kind": "keyword" }, { - "text": "number", - "kind": "keyword" + "text": " ", + "kind": "space" }, { - "text": ")", - "kind": "punctuation" + "text": "Number", + "kind": "localName" }, { "text": ":", @@ -4695,61 +4438,25 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "NumberConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "this is jsdoc style function with param tag as well as inline parameter help", + "text": "An object that represents a number of any kind. All JavaScript numbers are 64-bit floating-point numbers.", "kind": "text" } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "a", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "it is first parameter", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "c", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "it is third parameter", - "kind": "text" - } - ] - } ] }, { - "name": "jsDocCommentAlignmentTest1", - "kind": "function", - "kindModifiers": "", - "sortText": "11", + "name": "Object", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -4757,16 +4464,24 @@ "kind": "space" }, { - "text": "jsDocCommentAlignmentTest1", - "kind": "functionName" + "text": "Object", + "kind": "localName" }, { - "text": "(", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": ")", - "kind": "punctuation" + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Object", + "kind": "localName" }, { "text": ":", @@ -4777,22 +4492,34 @@ "kind": "space" }, { - "text": "void", - "kind": "keyword" + "text": "ObjectConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "This is function comment\nAnd properly aligned comment", + "text": "Provides functionality common to all JavaScript objects.", "kind": "text" } ] }, { - "name": "jsDocCommentAlignmentTest2", - "kind": "function", + "name": "package", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", + "displayParts": [ + { + "text": "package", + "kind": "keyword" + } + ] + }, + { + "name": "parseFloat", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { "text": "function", @@ -4803,13 +4530,29 @@ "kind": "space" }, { - "text": "jsDocCommentAlignmentTest2", + "text": "parseFloat", "kind": "functionName" }, { "text": "(", "kind": "punctuation" }, + { + "text": "string", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, { "text": ")", "kind": "punctuation" @@ -4823,22 +4566,41 @@ "kind": "space" }, { - "text": "void", + "text": "number", "kind": "keyword" } ], "documentation": [ { - "text": "This is function comment\n And aligned with 4 space char margin", + "text": "Converts a string to a floating-point number.", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string that contains a floating-point number.", + "kind": "text" + } + ] + } ] }, { - "name": "jsDocCommentAlignmentTest3", + "name": "parseInt", "kind": "function", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { "text": "function", @@ -4849,7 +4611,7 @@ "kind": "space" }, { - "text": "jsDocCommentAlignmentTest3", + "text": "parseInt", "kind": "functionName" }, { @@ -4857,7 +4619,7 @@ "kind": "punctuation" }, { - "text": "a", + "text": "string", "kind": "parameterName" }, { @@ -4881,9 +4643,13 @@ "kind": "space" }, { - "text": "b", + "text": "radix", "kind": "parameterName" }, + { + "text": "?", + "kind": "punctuation" + }, { "text": ":", "kind": "punctuation" @@ -4893,21 +4659,13 @@ "kind": "space" }, { - "text": "any", + "text": "number", "kind": "keyword" }, { - "text": ",", + "text": ")", "kind": "punctuation" }, - { - "text": " ", - "kind": "space" - }, - { - "text": "c", - "kind": "parameterName" - }, { "text": ":", "kind": "punctuation" @@ -4917,29 +4675,13 @@ "kind": "space" }, { - "text": "any", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", + "text": "number", "kind": "keyword" } ], "documentation": [ { - "text": "This is function comment\n And aligned with 4 space char margin", + "text": "Converts a string to an integer.", "kind": "text" } ], @@ -4948,24 +4690,7 @@ "name": "param", "text": [ { - "text": "a", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "this is info about a\nspanning on two lines and aligned perfectly", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "b", + "text": "string", "kind": "parameterName" }, { @@ -4973,7 +4698,7 @@ "kind": "space" }, { - "text": "this is info about b\nspanning on two lines and aligned perfectly\nspanning one more line alined perfectly\n spanning another line with more margin", + "text": "A string to convert into a number.", "kind": "text" } ] @@ -4982,7 +4707,7 @@ "name": "param", "text": [ { - "text": "c", + "text": "radix", "kind": "parameterName" }, { @@ -4990,7 +4715,7 @@ "kind": "space" }, { - "text": "this is info about b\nnot aligned text about parameter will eat only one space", + "text": "A value between 2 and 36 that specifies the base of the number in `string`.\r\nIf this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal.\r\nAll other strings are considered decimal.", "kind": "text" } ] @@ -4998,11 +4723,27 @@ ] }, { - "name": "x", + "name": "RangeError", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "RangeError", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, { "text": "var", "kind": "keyword" @@ -5012,7 +4753,7 @@ "kind": "space" }, { - "text": "x", + "text": "RangeError", "kind": "localName" }, { @@ -5024,23 +4765,34 @@ "kind": "space" }, { - "text": "any", - "kind": "keyword" + "text": "RangeErrorConstructor", + "kind": "interfaceName" } ], - "documentation": [ - { - "text": "This is a comment", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "y", + "name": "ReferenceError", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "ReferenceError", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, { "text": "var", "kind": "keyword" @@ -5050,7 +4802,7 @@ "kind": "space" }, { - "text": "y", + "text": "ReferenceError", "kind": "localName" }, { @@ -5062,25 +4814,20 @@ "kind": "space" }, { - "text": "any", - "kind": "keyword" + "text": "ReferenceErrorConstructor", + "kind": "interfaceName" } ], - "documentation": [ - { - "text": "This is a comment", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "NoQuickInfoClass", - "kind": "class", - "kindModifiers": "", - "sortText": "11", + "name": "RegExp", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "class", + "text": "interface", "kind": "keyword" }, { @@ -5088,18 +4835,13 @@ "kind": "space" }, { - "text": "NoQuickInfoClass", - "kind": "className" - } - ], - "documentation": [] - }, - { - "name": "undefined", - "kind": "var", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "RegExp", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, { "text": "var", "kind": "keyword" @@ -5109,395 +4851,557 @@ "kind": "space" }, { - "text": "undefined", - "kind": "propertyName" + "text": "RegExp", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "RegExpConstructor", + "kind": "interfaceName" } ], "documentation": [] }, { - "name": "break", + "name": "return", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "break", + "text": "return", "kind": "keyword" } ] }, { - "name": "case", - "kind": "keyword", - "kindModifiers": "", + "name": "String", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "case", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "catch", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "catch", + "text": " ", + "kind": "space" + }, + { + "text": "String", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "String", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "StringConstructor", + "kind": "interfaceName" } - ] - }, - { - "name": "class", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "class", - "kind": "keyword" + "text": "Allows manipulation and formatting of text strings and determination and location of substrings within strings.", + "kind": "text" } ] }, { - "name": "const", + "name": "super", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "const", + "text": "super", "kind": "keyword" } ] }, { - "name": "continue", + "name": "switch", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "continue", + "text": "switch", "kind": "keyword" } ] }, { - "name": "debugger", - "kind": "keyword", - "kindModifiers": "", + "name": "SyntaxError", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "debugger", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "default", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "default", + "text": " ", + "kind": "space" + }, + { + "text": "SyntaxError", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "SyntaxError", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "SyntaxErrorConstructor", + "kind": "interfaceName" } - ] + ], + "documentation": [] }, { - "name": "delete", + "name": "this", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "delete", + "text": "this", "kind": "keyword" } ] }, { - "name": "do", + "name": "throw", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "do", + "text": "throw", "kind": "keyword" } ] }, { - "name": "else", + "name": "true", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "else", + "text": "true", "kind": "keyword" } ] }, { - "name": "enum", + "name": "try", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "enum", + "text": "try", "kind": "keyword" } ] }, { - "name": "export", - "kind": "keyword", - "kindModifiers": "", + "name": "TypeError", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "export", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "extends", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "extends", + "text": " ", + "kind": "space" + }, + { + "text": "TypeError", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "TypeError", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "TypeErrorConstructor", + "kind": "interfaceName" } - ] + ], + "documentation": [] }, { - "name": "false", + "name": "typeof", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "false", + "text": "typeof", "kind": "keyword" } ] }, { - "name": "finally", - "kind": "keyword", - "kindModifiers": "", + "name": "Uint16Array", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "finally", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "for", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "for", + "text": " ", + "kind": "space" + }, + { + "text": "Uint16Array", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint16Array", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint16ArrayConstructor", + "kind": "interfaceName" } - ] - }, - { - "name": "function", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "function", - "kind": "keyword" + "text": "A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" } ] }, { - "name": "if", - "kind": "keyword", - "kindModifiers": "", + "name": "Uint32Array", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "if", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "import", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "import", + "text": " ", + "kind": "space" + }, + { + "text": "Uint32Array", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint32Array", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint32ArrayConstructor", + "kind": "interfaceName" } - ] - }, - { - "name": "in", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "in", - "kind": "keyword" + "text": "A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" } ] }, { - "name": "instanceof", - "kind": "keyword", - "kindModifiers": "", + "name": "Uint8Array", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "instanceof", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "new", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "new", - "kind": "keyword" - } - ] - }, - { - "name": "null", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "null", - "kind": "keyword" - } - ] - }, - { - "name": "return", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "Uint8Array", + "kind": "localName" + }, { - "text": "return", + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint8Array", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint8ArrayConstructor", + "kind": "interfaceName" } - ] - }, - { - "name": "super", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "super", - "kind": "keyword" + "text": "A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" } ] }, { - "name": "switch", - "kind": "keyword", - "kindModifiers": "", + "name": "Uint8ClampedArray", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "switch", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "this", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "this", + "text": " ", + "kind": "space" + }, + { + "text": "Uint8ClampedArray", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint8ClampedArray", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint8ClampedArrayConstructor", + "kind": "interfaceName" } - ] - }, - { - "name": "throw", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "throw", - "kind": "keyword" + "text": "A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0.\r\nIf the requested number of bytes could not be allocated an exception is raised.", + "kind": "text" } ] }, { - "name": "true", - "kind": "keyword", + "name": "undefined", + "kind": "var", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "true", + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "undefined", + "kind": "propertyName" } - ] + ], + "documentation": [] }, { - "name": "try", - "kind": "keyword", - "kindModifiers": "", + "name": "URIError", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "try", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "typeof", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "typeof", + "text": " ", + "kind": "space" + }, + { + "text": "URIError", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "URIError", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "URIErrorConstructor", + "kind": "interfaceName" } - ] + ], + "documentation": [] }, { "name": "var", @@ -5548,145 +5452,112 @@ ] }, { - "name": "implements", + "name": "yield", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "implements", + "text": "yield", "kind": "keyword" } ] }, { - "name": "interface", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", + "name": "escape", + "kind": "function", + "kindModifiers": "deprecated,declare", + "sortText": "z15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" - } - ] - }, - { - "name": "let", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "let", - "kind": "keyword" - } - ] - }, - { - "name": "package", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "package", - "kind": "keyword" - } - ] - }, - { - "name": "yield", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "escape", + "kind": "functionName" + }, { - "text": "yield", - "kind": "keyword" - } - ] - }, - { - "name": "as", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "(", + "kind": "punctuation" + }, { - "text": "as", - "kind": "keyword" - } - ] - }, - { - "name": "async", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "string", + "kind": "parameterName" + }, { - "text": "async", - "kind": "keyword" - } - ] - }, - { - "name": "await", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": ":", + "kind": "punctuation" + }, { - "text": "await", - "kind": "keyword" - } - ] - } - ] - } - }, - { - "marker": { - "fileName": "/tests/cases/fourslash/completionsCommentsCommentParsing.ts", - "position": 1924, - "name": "15" - }, - "completionList": { - "isGlobalCompletion": true, - "isMemberCompletion": false, - "isNewIdentifierLocation": false, - "optionalReplacementSpan": { - "start": 1924, - "length": 3 - }, - "entries": [ - { - "name": "globalThis", - "kind": "module", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "module", + "text": "string", "kind": "keyword" }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "globalThis", - "kind": "moduleName" + "text": "string", + "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Computes a new string in which certain characters have been replaced by a hexadecimal escape sequence.", + "kind": "text" + } + ], + "tags": [ + { + "name": "deprecated", + "text": [ + { + "text": "A legacy feature for browser compatibility", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string value", + "kind": "text" + } + ] + } + ] }, { - "name": "eval", + "name": "unescape", "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "deprecated,declare", + "sortText": "z15", "displayParts": [ { "text": "function", @@ -5697,7 +5568,7 @@ "kind": "space" }, { - "text": "eval", + "text": "unescape", "kind": "functionName" }, { @@ -5705,7 +5576,7 @@ "kind": "punctuation" }, { - "text": "x", + "text": "string", "kind": "parameterName" }, { @@ -5733,22 +5604,31 @@ "kind": "space" }, { - "text": "any", + "text": "string", "kind": "keyword" } ], "documentation": [ { - "text": "Evaluates JavaScript code and executes it.", + "text": "Computes a new string in which hexadecimal escape sequences are replaced with the character that it represents.", "kind": "text" } ], "tags": [ + { + "name": "deprecated", + "text": [ + { + "text": "A legacy feature for browser compatibility", + "kind": "text" + } + ] + }, { "name": "param", "text": [ { - "text": "x", + "text": "string", "kind": "parameterName" }, { @@ -5756,18 +5636,36 @@ "kind": "space" }, { - "text": "A String value that contains valid JavaScript code.", + "text": "A string value", "kind": "text" } ] } ] - }, + } + ] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/completionsCommentsCommentParsing.ts", + "position": 1924, + "name": "15" + }, + "completionList": { + "isGlobalCompletion": true, + "isMemberCompletion": false, + "isNewIdentifierLocation": false, + "optionalReplacementSpan": { + "start": 1924, + "length": 3 + }, + "entries": [ { - "name": "parseInt", + "name": "divide", "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { "text": "function", @@ -5778,7 +5676,7 @@ "kind": "space" }, { - "text": "parseInt", + "text": "divide", "kind": "functionName" }, { @@ -5786,7 +5684,7 @@ "kind": "punctuation" }, { - "text": "string", + "text": "a", "kind": "parameterName" }, { @@ -5798,7 +5696,7 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" }, { @@ -5810,13 +5708,9 @@ "kind": "space" }, { - "text": "radix", + "text": "b", "kind": "parameterName" }, - { - "text": "?", - "kind": "punctuation" - }, { "text": ":", "kind": "punctuation" @@ -5842,13 +5736,13 @@ "kind": "space" }, { - "text": "number", + "text": "void", "kind": "keyword" } ], "documentation": [ { - "text": "Converts a string to an integer.", + "text": "this is divide function", "kind": "text" } ], @@ -5857,7 +5751,7 @@ "name": "param", "text": [ { - "text": "string", + "text": "a", "kind": "parameterName" }, { @@ -5865,7 +5759,16 @@ "kind": "space" }, { - "text": "A string to convert into a number.", + "text": "this is a", + "kind": "text" + } + ] + }, + { + "name": "paramTag", + "text": [ + { + "text": "{ number } g this is optional param g", "kind": "text" } ] @@ -5874,7 +5777,7 @@ "name": "param", "text": [ { - "text": "radix", + "text": "b", "kind": "parameterName" }, { @@ -5882,7 +5785,7 @@ "kind": "space" }, { - "text": "A value between 2 and 36 that specifies the base of the number in `string`.\r\nIf this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal.\r\nAll other strings are considered decimal.", + "text": "this is b", "kind": "text" } ] @@ -5890,10 +5793,10 @@ ] }, { - "name": "parseFloat", + "name": "f1", "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { "text": "function", @@ -5904,7 +5807,7 @@ "kind": "space" }, { - "text": "parseFloat", + "text": "f1", "kind": "functionName" }, { @@ -5912,7 +5815,7 @@ "kind": "punctuation" }, { - "text": "string", + "text": "a", "kind": "parameterName" }, { @@ -5924,7 +5827,7 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" }, { @@ -5940,13 +5843,41 @@ "kind": "space" }, { - "text": "number", + "text": "any", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "+", + "kind": "operator" + }, + { + "text": "1", + "kind": "numericLiteral" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "overload", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" } ], "documentation": [ { - "text": "Converts a string to a floating-point number.", + "text": "fn f1 with number", "kind": "text" } ], @@ -5955,7 +5886,7 @@ "name": "param", "text": [ { - "text": "string", + "text": "b", "kind": "parameterName" }, { @@ -5963,7 +5894,7 @@ "kind": "space" }, { - "text": "A string that contains a floating-point number.", + "text": "about b", "kind": "text" } ] @@ -5971,10 +5902,10 @@ ] }, { - "name": "isNaN", + "name": "fooBar", "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { "text": "function", @@ -5985,7 +5916,7 @@ "kind": "space" }, { - "text": "isNaN", + "text": "fooBar", "kind": "functionName" }, { @@ -5993,7 +5924,7 @@ "kind": "punctuation" }, { - "text": "number", + "text": "foo", "kind": "parameterName" }, { @@ -6005,7 +5936,31 @@ "kind": "space" }, { - "text": "number", + "text": "string", + "kind": "keyword" + }, + { + "text": ",", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "bar", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", "kind": "keyword" }, { @@ -6021,13 +5976,13 @@ "kind": "space" }, { - "text": "boolean", + "text": "string", "kind": "keyword" } ], "documentation": [ { - "text": "Returns a Boolean value that indicates whether a value is the reserved value NaN (not a number).", + "text": "Function returns string concat of foo and bar", "kind": "text" } ], @@ -6036,7 +5991,7 @@ "name": "param", "text": [ { - "text": "number", + "text": "foo", "kind": "parameterName" }, { @@ -6044,7 +5999,24 @@ "kind": "space" }, { - "text": "A numeric value.", + "text": "is string", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "bar", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "is second string", "kind": "text" } ] @@ -6052,10 +6024,10 @@ ] }, { - "name": "isFinite", + "name": "jsDocCommentAlignmentTest1", "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { "text": "function", @@ -6066,7 +6038,7 @@ "kind": "space" }, { - "text": "isFinite", + "text": "jsDocCommentAlignmentTest1", "kind": "functionName" }, { @@ -6074,8 +6046,8 @@ "kind": "punctuation" }, { - "text": "number", - "kind": "parameterName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -6086,9 +6058,39 @@ "kind": "space" }, { - "text": "number", + "text": "void", + "kind": "keyword" + } + ], + "documentation": [ + { + "text": "This is function comment\nAnd properly aligned comment", + "kind": "text" + } + ] + }, + { + "name": "jsDocCommentAlignmentTest2", + "kind": "function", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "function", "kind": "keyword" }, + { + "text": " ", + "kind": "space" + }, + { + "text": "jsDocCommentAlignmentTest2", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, { "text": ")", "kind": "punctuation" @@ -6102,41 +6104,22 @@ "kind": "space" }, { - "text": "boolean", + "text": "void", "kind": "keyword" } ], "documentation": [ { - "text": "Determines whether a supplied number is finite.", + "text": "This is function comment\n And aligned with 4 space char margin", "kind": "text" } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "number", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Any numeric value.", - "kind": "text" - } - ] - } ] }, { - "name": "decodeURI", + "name": "jsDocCommentAlignmentTest3", "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { "text": "function", @@ -6147,7 +6130,7 @@ "kind": "space" }, { - "text": "decodeURI", + "text": "jsDocCommentAlignmentTest3", "kind": "functionName" }, { @@ -6155,7 +6138,7 @@ "kind": "punctuation" }, { - "text": "encodedURI", + "text": "a", "kind": "parameterName" }, { @@ -6171,11 +6154,7 @@ "kind": "keyword" }, { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", + "text": ",", "kind": "punctuation" }, { @@ -6183,60 +6162,31 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Gets the unencoded version of an encoded Uniform Resource Identifier (URI).", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "encodedURI", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI.", - "kind": "text" - } - ] - } - ] - }, - { - "name": "decodeURIComponent", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ + "text": "b", + "kind": "parameterName" + }, { - "text": "function", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "decodeURIComponent", - "kind": "functionName" + "text": "any", + "kind": "keyword" }, { - "text": "(", + "text": ",", "kind": "punctuation" }, { - "text": "encodedURIComponent", + "text": " ", + "kind": "space" + }, + { + "text": "c", "kind": "parameterName" }, { @@ -6248,7 +6198,7 @@ "kind": "space" }, { - "text": "string", + "text": "any", "kind": "keyword" }, { @@ -6264,13 +6214,13 @@ "kind": "space" }, { - "text": "string", + "text": "void", "kind": "keyword" } ], "documentation": [ { - "text": "Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).", + "text": "This is function comment\n And aligned with 4 space char margin", "kind": "text" } ], @@ -6279,7 +6229,7 @@ "name": "param", "text": [ { - "text": "encodedURIComponent", + "text": "a", "kind": "parameterName" }, { @@ -6287,7 +6237,41 @@ "kind": "space" }, { - "text": "A value representing an encoded URI component.", + "text": "this is info about a\nspanning on two lines and aligned perfectly", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "b", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "this is info about b\nspanning on two lines and aligned perfectly\nspanning one more line alined perfectly\n spanning another line with more margin", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "c", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "this is info about b\nnot aligned text about parameter will eat only one space", "kind": "text" } ] @@ -6295,10 +6279,10 @@ ] }, { - "name": "encodeURI", + "name": "jsDocMixedComments1", "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { "text": "function", @@ -6309,7 +6293,7 @@ "kind": "space" }, { - "text": "encodeURI", + "text": "jsDocMixedComments1", "kind": "functionName" }, { @@ -6317,8 +6301,8 @@ "kind": "punctuation" }, { - "text": "uri", - "kind": "parameterName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -6329,9 +6313,39 @@ "kind": "space" }, { - "text": "string", + "text": "void", + "kind": "keyword" + } + ], + "documentation": [ + { + "text": "jsdoc comment", + "kind": "text" + } + ] + }, + { + "name": "jsDocMixedComments2", + "kind": "function", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "function", "kind": "keyword" }, + { + "text": " ", + "kind": "space" + }, + { + "text": "jsDocMixedComments2", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, { "text": ")", "kind": "punctuation" @@ -6345,41 +6359,22 @@ "kind": "space" }, { - "text": "string", + "text": "void", "kind": "keyword" } ], "documentation": [ { - "text": "Encodes a text string as a valid Uniform Resource Identifier (URI)", + "text": "another jsDocComment", "kind": "text" } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "uri", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI.", - "kind": "text" - } - ] - } ] }, { - "name": "encodeURIComponent", + "name": "jsDocMixedComments3", "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { "text": "function", @@ -6390,7 +6385,7 @@ "kind": "space" }, { - "text": "encodeURIComponent", + "text": "jsDocMixedComments3", "kind": "functionName" }, { @@ -6398,8 +6393,8 @@ "kind": "punctuation" }, { - "text": "uriComponent", - "kind": "parameterName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -6410,23 +6405,25 @@ "kind": "space" }, { - "text": "string", + "text": "void", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "|", - "kind": "punctuation" - }, + } + ], + "documentation": [ { - "text": " ", - "kind": "space" - }, + "text": "* triplestar jsDocComment", + "kind": "text" + } + ] + }, + { + "name": "jsDocMixedComments4", + "kind": "function", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { - "text": "number", + "text": "function", "kind": "keyword" }, { @@ -6434,16 +6431,12 @@ "kind": "space" }, { - "text": "|", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "jsDocMixedComments4", + "kind": "functionName" }, { - "text": "boolean", - "kind": "keyword" + "text": "(", + "kind": "punctuation" }, { "text": ")", @@ -6458,41 +6451,22 @@ "kind": "space" }, { - "text": "string", + "text": "void", "kind": "keyword" } ], "documentation": [ { - "text": "Encodes a text string as a valid component of a Uniform Resource Identifier (URI).", + "text": "another jsDocComment", "kind": "text" } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "uriComponent", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI component.", - "kind": "text" - } - ] - } ] }, { - "name": "escape", + "name": "jsDocMixedComments5", "kind": "function", - "kindModifiers": "deprecated,declare", - "sortText": "23", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { "text": "function", @@ -6503,7 +6477,7 @@ "kind": "space" }, { - "text": "escape", + "text": "jsDocMixedComments5", "kind": "functionName" }, { @@ -6511,8 +6485,8 @@ "kind": "punctuation" }, { - "text": "string", - "kind": "parameterName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -6523,9 +6497,39 @@ "kind": "space" }, { - "text": "string", + "text": "void", + "kind": "keyword" + } + ], + "documentation": [ + { + "text": "another jsDocComment", + "kind": "text" + } + ] + }, + { + "name": "jsDocMixedComments6", + "kind": "function", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "function", "kind": "keyword" }, + { + "text": " ", + "kind": "space" + }, + { + "text": "jsDocMixedComments6", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, { "text": ")", "kind": "punctuation" @@ -6539,50 +6543,22 @@ "kind": "space" }, { - "text": "string", + "text": "void", "kind": "keyword" } ], "documentation": [ { - "text": "Computes a new string in which certain characters have been replaced by a hexadecimal escape sequence.", + "text": "jsdoc comment", "kind": "text" } - ], - "tags": [ - { - "name": "deprecated", - "text": [ - { - "text": "A legacy feature for browser compatibility", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string value", - "kind": "text" - } - ] - } ] }, { - "name": "unescape", + "name": "jsDocMultiLine", "kind": "function", - "kindModifiers": "deprecated,declare", - "sortText": "23", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { "text": "function", @@ -6593,7 +6569,7 @@ "kind": "space" }, { - "text": "unescape", + "text": "jsDocMultiLine", "kind": "functionName" }, { @@ -6601,8 +6577,8 @@ "kind": "punctuation" }, { - "text": "string", - "kind": "parameterName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -6613,8 +6589,38 @@ "kind": "space" }, { - "text": "string", + "text": "void", "kind": "keyword" + } + ], + "documentation": [ + { + "text": "this is multiple line jsdoc stule comment\nNew line1\nNew Line2", + "kind": "text" + } + ] + }, + { + "name": "jsDocMultiLineMerge", + "kind": "function", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "jsDocMultiLineMerge", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" }, { "text": ")", @@ -6629,53 +6635,25 @@ "kind": "space" }, { - "text": "string", + "text": "void", "kind": "keyword" } ], "documentation": [ { - "text": "Computes a new string in which hexadecimal escape sequences are replaced with the character that it represents.", + "text": "Another this one too", "kind": "text" } - ], - "tags": [ - { - "name": "deprecated", - "text": [ - { - "text": "A legacy feature for browser compatibility", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string value", - "kind": "text" - } - ] - } ] }, { - "name": "NaN", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "jsDocParamTest", + "kind": "function", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "var", + "text": "function", "kind": "keyword" }, { @@ -6683,8 +6661,16 @@ "kind": "space" }, { - "text": "NaN", - "kind": "localName" + "text": "jsDocParamTest", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "a", + "kind": "parameterName" }, { "text": ":", @@ -6697,27 +6683,18 @@ { "text": "number", "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "Infinity", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ + }, { - "text": "var", - "kind": "keyword" + "text": ",", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Infinity", - "kind": "localName" + "text": "b", + "kind": "parameterName" }, { "text": ":", @@ -6730,27 +6707,18 @@ { "text": "number", "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "Object", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ + }, { - "text": "var", - "kind": "keyword" + "text": ",", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Object", - "kind": "localName" + "text": "c", + "kind": "parameterName" }, { "text": ":", @@ -6761,19 +6729,11 @@ "kind": "space" }, { - "text": "ObjectConstructor", - "kind": "interfaceName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "(", - "kind": "punctuation" + "text": "number", + "kind": "keyword" }, { - "text": ")", + "text": ",", "kind": "punctuation" }, { @@ -6781,7 +6741,11 @@ "kind": "space" }, { - "text": "=>", + "text": "d", + "kind": "parameterName" + }, + { + "text": ":", "kind": "punctuation" }, { @@ -6789,64 +6753,123 @@ "kind": "space" }, { - "text": "any", + "text": "number", "kind": "keyword" }, { - "text": " ", - "kind": "space" + "text": ")", + "kind": "punctuation" }, { - "text": "(", + "text": ":", "kind": "punctuation" }, { - "text": "+", - "kind": "operator" + "text": " ", + "kind": "space" }, { - "text": "1", - "kind": "numericLiteral" + "text": "number", + "kind": "keyword" + } + ], + "documentation": [ + { + "text": "this is jsdoc style function with param tag as well as inline parameter help", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "a", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "it is first parameter", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "c", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "it is third parameter", + "kind": "text" + } + ] + } + ] + }, + { + "name": "jsDocSingleLine", + "kind": "function", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "function", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "overload", - "kind": "text" + "text": "jsDocSingleLine", + "kind": "functionName" }, { - "text": ")", + "text": "(", "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": ")", + "kind": "punctuation" }, { - "text": "interface", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Object", - "kind": "localName" + "text": "void", + "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "this is eg of single line jsdoc style comment", + "kind": "text" + } + ] }, { - "name": "Function", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "multiLine", + "kind": "function", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "var", + "text": "function", "kind": "keyword" }, { @@ -6854,8 +6877,16 @@ "kind": "space" }, { - "text": "Function", - "kind": "localName" + "text": "multiLine", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -6866,23 +6897,36 @@ "kind": "space" }, { - "text": "FunctionConstructor", - "kind": "interfaceName" + "text": "void", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "multiply", + "kind": "function", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "function", + "kind": "keyword" }, { - "text": "\n", - "kind": "lineBreak" + "text": " ", + "kind": "space" }, { - "text": "(", - "kind": "punctuation" + "text": "multiply", + "kind": "functionName" }, { - "text": "...", + "text": "(", "kind": "punctuation" }, { - "text": "args", + "text": "a", "kind": "parameterName" }, { @@ -6894,19 +6938,23 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" }, { - "text": "[", + "text": ",", "kind": "punctuation" }, { - "text": "]", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": ")", + "text": "b", + "kind": "parameterName" + }, + { + "text": ":", "kind": "punctuation" }, { @@ -6914,7 +6962,11 @@ "kind": "space" }, { - "text": "=>", + "text": "number", + "kind": "keyword" + }, + { + "text": ",", "kind": "punctuation" }, { @@ -6922,50 +6974,40 @@ "kind": "space" }, { - "text": "Function", - "kind": "localName" + "text": "c", + "kind": "parameterName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "?", + "kind": "punctuation" }, { - "text": "interface", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Function", - "kind": "localName" - } - ], - "documentation": [ - { - "text": "Creates a new function.", - "kind": "text" - } - ] - }, - { - "name": "String", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "var", + "text": "number", "kind": "keyword" }, + { + "text": ",", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "String", - "kind": "localName" + "text": "d", + "kind": "parameterName" + }, + { + "text": "?", + "kind": "punctuation" }, { "text": ":", @@ -6976,19 +7018,19 @@ "kind": "space" }, { - "text": "StringConstructor", - "kind": "interfaceName" + "text": "any", + "kind": "keyword" }, { - "text": "\n", - "kind": "lineBreak" + "text": ",", + "kind": "punctuation" }, { - "text": "(", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": "value", + "text": "e", "kind": "parameterName" }, { @@ -7012,11 +7054,7 @@ "kind": "punctuation" }, { - "text": " ", - "kind": "space" - }, - { - "text": "=>", + "text": ":", "kind": "punctuation" }, { @@ -7024,41 +7062,103 @@ "kind": "space" }, { - "text": "string", + "text": "void", "kind": "keyword" + } + ], + "documentation": [ + { + "text": "This is multiplication function", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "", + "kind": "text" + } + ] }, { - "text": "\n", - "kind": "lineBreak" + "name": "param", + "text": [ + { + "text": "a", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "first number", + "kind": "text" + } + ] }, { - "text": "interface", - "kind": "keyword" + "name": "param", + "text": [ + { + "text": "b", + "kind": "text" + } + ] }, { - "text": " ", - "kind": "space" + "name": "param", + "text": [ + { + "text": "c", + "kind": "text" + } + ] }, { - "text": "String", - "kind": "localName" - } - ], - "documentation": [ + "name": "param", + "text": [ + { + "text": "d", + "kind": "text" + } + ] + }, { - "text": "Allows manipulation and formatting of text strings and determination and location of substrings within strings.", - "kind": "text" + "name": "anotherTag" + }, + { + "name": "param", + "text": [ + { + "text": "e", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "LastParam", + "kind": "text" + } + ] + }, + { + "name": "anotherTag" } ] }, { - "name": "Boolean", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "noHelpComment1", + "kind": "function", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "var", + "text": "function", "kind": "keyword" }, { @@ -7066,47 +7166,56 @@ "kind": "space" }, { - "text": "Boolean", - "kind": "localName" + "text": "noHelpComment1", + "kind": "functionName" }, { - "text": ":", + "text": "(", "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": ")", + "kind": "punctuation" }, { - "text": "BooleanConstructor", - "kind": "interfaceName" + "text": ":", + "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": " ", + "kind": "space" }, { - "text": "<", - "kind": "punctuation" + "text": "void", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "noHelpComment2", + "kind": "function", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "function", + "kind": "keyword" }, { - "text": "T", - "kind": "typeParameterName" + "text": " ", + "kind": "space" }, { - "text": ">", - "kind": "punctuation" + "text": "noHelpComment2", + "kind": "functionName" }, { "text": "(", "kind": "punctuation" }, { - "text": "value", - "kind": "parameterName" - }, - { - "text": "?", + "text": ")", "kind": "punctuation" }, { @@ -7118,56 +7227,61 @@ "kind": "space" }, { - "text": "T", - "kind": "typeParameterName" - }, + "text": "void", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "noHelpComment3", + "kind": "function", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { - "text": ")", - "kind": "punctuation" + "text": "function", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "=>", - "kind": "punctuation" + "text": "noHelpComment3", + "kind": "functionName" }, { - "text": " ", - "kind": "space" - }, - { - "text": "boolean", - "kind": "keyword" + "text": "(", + "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": ")", + "kind": "punctuation" }, { - "text": "interface", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Boolean", - "kind": "localName" + "text": "void", + "kind": "keyword" } ], "documentation": [] }, { - "name": "Number", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "NoQuickInfoClass", + "kind": "class", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "var", + "text": "class", "kind": "keyword" }, { @@ -7175,59 +7289,40 @@ "kind": "space" }, { - "text": "Number", - "kind": "localName" - }, + "text": "NoQuickInfoClass", + "kind": "className" + } + ], + "documentation": [] + }, + { + "name": "simple", + "kind": "function", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { - "text": ":", - "kind": "punctuation" + "text": "function", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "NumberConstructor", - "kind": "interfaceName" - }, - { - "text": "\n", - "kind": "lineBreak" + "text": "simple", + "kind": "functionName" }, { "text": "(", "kind": "punctuation" }, - { - "text": "value", - "kind": "parameterName" - }, - { - "text": "?", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - }, { "text": ")", "kind": "punctuation" }, { - "text": " ", - "kind": "space" - }, - { - "text": "=>", + "text": ":", "kind": "punctuation" }, { @@ -7235,57 +7330,20 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "interface", + "text": "void", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Number", - "kind": "localName" } ], - "documentation": [ - { - "text": "An object that represents a number of any kind. All JavaScript numbers are 64-bit floating-point numbers.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "Math", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "square", + "kind": "function", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Math", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", + "text": "function", "kind": "keyword" }, { @@ -7293,46 +7351,16 @@ "kind": "space" }, { - "text": "Math", - "kind": "localName" + "text": "square", + "kind": "functionName" }, { - "text": ":", + "text": "(", "kind": "punctuation" }, { - "text": " ", - "kind": "space" - }, - { - "text": "Math", - "kind": "localName" - } - ], - "documentation": [ - { - "text": "An intrinsic object that provides basic mathematics functionality and constants.", - "kind": "text" - } - ] - }, - { - "name": "Date", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Date", - "kind": "localName" + "text": "a", + "kind": "parameterName" }, { "text": ":", @@ -7343,27 +7371,15 @@ "kind": "space" }, { - "text": "DateConstructor", - "kind": "interfaceName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "(", - "kind": "punctuation" + "text": "number", + "kind": "keyword" }, { "text": ")", "kind": "punctuation" }, { - "text": " ", - "kind": "space" - }, - { - "text": "=>", + "text": ":", "kind": "punctuation" }, { @@ -7371,41 +7387,62 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" - }, + } + ], + "documentation": [ { - "text": "\n", - "kind": "lineBreak" - }, + "text": "this is square function", + "kind": "text" + } + ], + "tags": [ { - "text": "interface", - "kind": "keyword" + "name": "paramTag", + "text": [ + { + "text": "{ number } a this is input number of paramTag", + "kind": "text" + } + ] }, { - "text": " ", - "kind": "space" + "name": "param", + "text": [ + { + "text": "a", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "this is input number", + "kind": "text" + } + ] }, { - "text": "Date", - "kind": "localName" - } - ], - "documentation": [ - { - "text": "Enables basic storage and retrieval of dates and times.", - "kind": "text" + "name": "returnType", + "text": [ + { + "text": "{ number } it is return type", + "kind": "text" + } + ] } ] }, { - "name": "RegExp", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "subtract", + "kind": "function", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "var", + "text": "function", "kind": "keyword" }, { @@ -7413,31 +7450,15 @@ "kind": "space" }, { - "text": "RegExp", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "RegExpConstructor", - "kind": "interfaceName" - }, - { - "text": "\n", - "kind": "lineBreak" + "text": "subtract", + "kind": "functionName" }, { "text": "(", "kind": "punctuation" }, { - "text": "pattern", + "text": "a", "kind": "parameterName" }, { @@ -7449,15 +7470,11 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" }, { - "text": " ", - "kind": "space" - }, - { - "text": "|", + "text": ",", "kind": "punctuation" }, { @@ -7465,11 +7482,11 @@ "kind": "space" }, { - "text": "RegExp", - "kind": "localName" + "text": "b", + "kind": "parameterName" }, { - "text": ")", + "text": ":", "kind": "punctuation" }, { @@ -7477,84 +7494,59 @@ "kind": "space" }, { - "text": "=>", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "number", + "kind": "keyword" }, { - "text": "RegExp", - "kind": "localName" + "text": ",", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "(", - "kind": "punctuation" + "text": "c", + "kind": "parameterName" }, { - "text": "+", - "kind": "operator" + "text": "?", + "kind": "punctuation" }, { - "text": "1", - "kind": "numericLiteral" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "overload", - "kind": "text" + "text": "(", + "kind": "punctuation" }, { "text": ")", "kind": "punctuation" }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "interface", - "kind": "keyword" - }, { "text": " ", "kind": "space" }, { - "text": "RegExp", - "kind": "localName" - } - ], - "documentation": [] - }, - { - "name": "Error", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "var", - "kind": "keyword" + "text": "=>", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Error", - "kind": "localName" + "text": "string", + "kind": "keyword" }, { - "text": ":", + "text": ",", "kind": "punctuation" }, { @@ -7562,19 +7554,7 @@ "kind": "space" }, { - "text": "ErrorConstructor", - "kind": "interfaceName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "message", + "text": "d", "kind": "parameterName" }, { @@ -7590,8 +7570,8 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "(", + "kind": "punctuation" }, { "text": ")", @@ -7610,48 +7590,11 @@ "kind": "space" }, { - "text": "Error", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Error", - "kind": "localName" - } - ], - "documentation": [] - }, - { - "name": "EvalError", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "var", + "text": "string", "kind": "keyword" }, { - "text": " ", - "kind": "space" - }, - { - "text": "EvalError", - "kind": "localName" - }, - { - "text": ":", + "text": ",", "kind": "punctuation" }, { @@ -7659,19 +7602,7 @@ "kind": "space" }, { - "text": "EvalErrorConstructor", - "kind": "interfaceName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "message", + "text": "e", "kind": "parameterName" }, { @@ -7687,8 +7618,8 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "(", + "kind": "punctuation" }, { "text": ")", @@ -7707,74 +7638,25 @@ "kind": "space" }, { - "text": "EvalError", - "kind": "localName" - }, - { - "text": " ", - "kind": "space" + "text": "string", + "kind": "keyword" }, { - "text": "(", + "text": ",", "kind": "punctuation" }, - { - "text": "+", - "kind": "operator" - }, - { - "text": "1", - "kind": "numericLiteral" - }, { "text": " ", "kind": "space" }, { - "text": "overload", - "kind": "text" + "text": "f", + "kind": "parameterName" }, { - "text": ")", + "text": "?", "kind": "punctuation" }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "EvalError", - "kind": "localName" - } - ], - "documentation": [] - }, - { - "name": "RangeError", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "RangeError", - "kind": "localName" - }, { "text": ":", "kind": "punctuation" @@ -7783,28 +7665,20 @@ "text": " ", "kind": "space" }, - { - "text": "RangeErrorConstructor", - "kind": "interfaceName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, { "text": "(", "kind": "punctuation" }, { - "text": "message", - "kind": "parameterName" + "text": ")", + "kind": "punctuation" }, { - "text": "?", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": ":", + "text": "=>", "kind": "punctuation" }, { @@ -7819,86 +7693,171 @@ "text": ")", "kind": "punctuation" }, + { + "text": ":", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "=>", - "kind": "punctuation" - }, + "text": "void", + "kind": "keyword" + } + ], + "documentation": [ { - "text": " ", - "kind": "space" + "text": "This is subtract function", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "", + "kind": "text" + } + ] }, { - "text": "RangeError", - "kind": "localName" + "name": "param", + "text": [ + { + "text": "b", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "this is about b", + "kind": "text" + } + ] }, { - "text": " ", - "kind": "space" + "name": "param", + "text": [ + { + "text": "c", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "this is optional param c", + "kind": "text" + } + ] }, { - "text": "(", - "kind": "punctuation" + "name": "param", + "text": [ + { + "text": "d", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "this is optional param d", + "kind": "text" + } + ] }, { - "text": "+", - "kind": "operator" + "name": "param", + "text": [ + { + "text": "e", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "this is optional param e", + "kind": "text" + } + ] }, { - "text": "1", - "kind": "numericLiteral" + "name": "param", + "text": [ + { + "text": "", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "{ () => string; } } f this is optional param f", + "kind": "text" + } + ] + } + ] + }, + { + "name": "sum", + "kind": "function", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "function", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "overload", - "kind": "text" + "text": "sum", + "kind": "functionName" }, { - "text": ")", + "text": "(", "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": "a", + "kind": "parameterName" }, { - "text": "interface", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "RangeError", - "kind": "localName" - } - ], - "documentation": [] - }, - { - "name": "ReferenceError", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "var", + "text": "number", "kind": "keyword" }, + { + "text": ",", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "ReferenceError", - "kind": "localName" + "text": "b", + "kind": "parameterName" }, { "text": ":", @@ -7909,23 +7868,11 @@ "kind": "space" }, { - "text": "ReferenceErrorConstructor", - "kind": "interfaceName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "message", - "kind": "parameterName" + "text": "number", + "kind": "keyword" }, { - "text": "?", + "text": ")", "kind": "punctuation" }, { @@ -7937,78 +7884,131 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" - }, + } + ], + "documentation": [ { - "text": ")", - "kind": "punctuation" - }, + "text": "Adds two integers and returns the result", + "kind": "text" + } + ], + "tags": [ { - "text": " ", - "kind": "space" + "name": "param", + "text": [ + { + "text": "a", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "first number", + "kind": "text" + } + ] }, { - "text": "=>", - "kind": "punctuation" + "name": "param", + "text": [ + { + "text": "b", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "second number", + "kind": "text" + } + ] + } + ] + }, + { + "name": "x", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "ReferenceError", + "text": "x", "kind": "localName" }, + { + "text": ":", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "(", - "kind": "punctuation" - }, + "text": "any", + "kind": "keyword" + } + ], + "documentation": [ { - "text": "+", - "kind": "operator" - }, + "text": "This is a comment", + "kind": "text" + } + ] + }, + { + "name": "y", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { - "text": "1", - "kind": "numericLiteral" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "overload", - "kind": "text" + "text": "y", + "kind": "localName" }, { - "text": ")", + "text": ":", "kind": "punctuation" }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "interface", - "kind": "keyword" - }, { "text": " ", "kind": "space" }, { - "text": "ReferenceError", - "kind": "localName" + "text": "any", + "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "This is a comment", + "kind": "text" + } + ] }, { - "name": "SyntaxError", + "name": "Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -8022,7 +8022,7 @@ "kind": "space" }, { - "text": "SyntaxError", + "text": "Array", "kind": "localName" }, { @@ -8034,7 +8034,7 @@ "kind": "space" }, { - "text": "SyntaxErrorConstructor", + "text": "ArrayConstructor", "kind": "interfaceName" }, { @@ -8046,7 +8046,7 @@ "kind": "punctuation" }, { - "text": "message", + "text": "arrayLength", "kind": "parameterName" }, { @@ -8062,7 +8062,7 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" }, { @@ -8082,8 +8082,16 @@ "kind": "space" }, { - "text": "SyntaxError", - "kind": "localName" + "text": "any", + "kind": "keyword" + }, + { + "text": "[", + "kind": "punctuation" + }, + { + "text": "]", + "kind": "punctuation" }, { "text": " ", @@ -8098,7 +8106,7 @@ "kind": "operator" }, { - "text": "1", + "text": "2", "kind": "numericLiteral" }, { @@ -8106,7 +8114,7 @@ "kind": "space" }, { - "text": "overload", + "text": "overloads", "kind": "text" }, { @@ -8126,20 +8134,32 @@ "kind": "space" }, { - "text": "SyntaxError", + "text": "Array", "kind": "localName" + }, + { + "text": "<", + "kind": "punctuation" + }, + { + "text": "T", + "kind": "typeParameterName" + }, + { + "text": ">", + "kind": "punctuation" } ], "documentation": [] }, { - "name": "TypeError", + "name": "ArrayBuffer", "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -8147,118 +8167,83 @@ "kind": "space" }, { - "text": "TypeError", + "text": "ArrayBuffer", "kind": "localName" }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "TypeErrorConstructor", - "kind": "interfaceName" - }, { "text": "\n", "kind": "lineBreak" }, { - "text": "(", - "kind": "punctuation" - }, - { - "text": "message", - "kind": "parameterName" - }, - { - "text": "?", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", + "text": "var", "kind": "keyword" }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=>", - "kind": "punctuation" - }, { "text": " ", "kind": "space" }, { - "text": "TypeError", + "text": "ArrayBuffer", "kind": "localName" }, { - "text": " ", - "kind": "space" - }, - { - "text": "(", + "text": ":", "kind": "punctuation" }, - { - "text": "+", - "kind": "operator" - }, - { - "text": "1", - "kind": "numericLiteral" - }, { "text": " ", "kind": "space" }, { - "text": "overload", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, + "text": "ArrayBufferConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ { - "text": "\n", - "kind": "lineBreak" - }, + "text": "Represents a raw buffer of binary data, which is used to store data for the\r\ndifferent typed arrays. ArrayBuffers cannot be read from or written to directly,\r\nbut can be passed to a typed array or DataView Object to interpret the raw\r\nbuffer as needed.", + "kind": "text" + } + ] + }, + { + "name": "as", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "interface", + "text": "as", "kind": "keyword" - }, + } + ] + }, + { + "name": "async", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": " ", - "kind": "space" - }, + "text": "async", + "kind": "keyword" + } + ] + }, + { + "name": "await", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "TypeError", - "kind": "localName" + "text": "await", + "kind": "keyword" } - ], - "documentation": [] + ] }, { - "name": "URIError", + "name": "Boolean", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -8272,7 +8257,7 @@ "kind": "space" }, { - "text": "URIError", + "text": "Boolean", "kind": "localName" }, { @@ -8284,19 +8269,31 @@ "kind": "space" }, { - "text": "URIErrorConstructor", + "text": "BooleanConstructor", "kind": "interfaceName" }, { "text": "\n", "kind": "lineBreak" }, + { + "text": "<", + "kind": "punctuation" + }, + { + "text": "T", + "kind": "typeParameterName" + }, + { + "text": ">", + "kind": "punctuation" + }, { "text": "(", "kind": "punctuation" }, { - "text": "message", + "text": "value", "kind": "parameterName" }, { @@ -8312,8 +8309,8 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "T", + "kind": "typeParameterName" }, { "text": ")", @@ -8332,58 +8329,102 @@ "kind": "space" }, { - "text": "URIError", - "kind": "localName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" + "text": "boolean", + "kind": "keyword" }, { - "text": "+", - "kind": "operator" + "text": "\n", + "kind": "lineBreak" }, { - "text": "1", - "kind": "numericLiteral" + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "overload", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": "\n", - "kind": "lineBreak" - }, + "text": "Boolean", + "kind": "localName" + } + ], + "documentation": [] + }, + { + "name": "break", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "interface", + "text": "break", "kind": "keyword" - }, + } + ] + }, + { + "name": "case", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": " ", - "kind": "space" - }, + "text": "case", + "kind": "keyword" + } + ] + }, + { + "name": "catch", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "URIError", - "kind": "localName" + "text": "catch", + "kind": "keyword" } - ], - "documentation": [] + ] }, { - "name": "JSON", + "name": "class", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + } + ] + }, + { + "name": "const", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + } + ] + }, + { + "name": "continue", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "continue", + "kind": "keyword" + } + ] + }, + { + "name": "DataView", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -8397,7 +8438,7 @@ "kind": "space" }, { - "text": "JSON", + "text": "DataView", "kind": "localName" }, { @@ -8413,7 +8454,7 @@ "kind": "space" }, { - "text": "JSON", + "text": "DataView", "kind": "localName" }, { @@ -8425,19 +8466,14 @@ "kind": "space" }, { - "text": "JSON", - "kind": "localName" + "text": "DataViewConstructor", + "kind": "interfaceName" } ], - "documentation": [ - { - "text": "An intrinsic object that provides functions to convert JavaScript values to and from the JavaScript Object Notation (JSON) format.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "Array", + "name": "Date", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -8451,7 +8487,7 @@ "kind": "space" }, { - "text": "Array", + "text": "Date", "kind": "localName" }, { @@ -8463,7 +8499,7 @@ "kind": "space" }, { - "text": "ArrayConstructor", + "text": "DateConstructor", "kind": "interfaceName" }, { @@ -8474,26 +8510,6 @@ "text": "(", "kind": "punctuation" }, - { - "text": "arrayLength", - "kind": "parameterName" - }, - { - "text": "?", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, { "text": ")", "kind": "punctuation" @@ -8511,45 +8527,9 @@ "kind": "space" }, { - "text": "any", + "text": "string", "kind": "keyword" }, - { - "text": "[", - "kind": "punctuation" - }, - { - "text": "]", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "+", - "kind": "operator" - }, - { - "text": "2", - "kind": "numericLiteral" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "overloads", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, { "text": "\n", "kind": "lineBreak" @@ -8563,32 +8543,37 @@ "kind": "space" }, { - "text": "Array", + "text": "Date", "kind": "localName" - }, - { - "text": "<", - "kind": "punctuation" - }, + } + ], + "documentation": [ { - "text": "T", - "kind": "typeParameterName" - }, + "text": "Enables basic storage and retrieval of dates and times.", + "kind": "text" + } + ] + }, + { + "name": "debugger", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": ">", - "kind": "punctuation" + "text": "debugger", + "kind": "keyword" } - ], - "documentation": [] + ] }, { - "name": "ArrayBuffer", - "kind": "var", + "name": "decodeURI", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -8596,24 +8581,32 @@ "kind": "space" }, { - "text": "ArrayBuffer", - "kind": "localName" + "text": "decodeURI", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "encodedURI", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "ArrayBuffer", - "kind": "localName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -8624,25 +8617,44 @@ "kind": "space" }, { - "text": "ArrayBufferConstructor", - "kind": "interfaceName" + "text": "string", + "kind": "keyword" } ], "documentation": [ { - "text": "Represents a raw buffer of binary data, which is used to store data for the\r\ndifferent typed arrays. ArrayBuffers cannot be read from or written to directly,\r\nbut can be passed to a typed array or DataView Object to interpret the raw\r\nbuffer as needed.", + "text": "Gets the unencoded version of an encoded Uniform Resource Identifier (URI).", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "encodedURI", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI.", + "kind": "text" + } + ] + } ] }, { - "name": "DataView", - "kind": "var", + "name": "decodeURIComponent", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -8650,24 +8662,32 @@ "kind": "space" }, { - "text": "DataView", - "kind": "localName" + "text": "decodeURIComponent", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "encodedURIComponent", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "DataView", - "kind": "localName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -8678,74 +8698,92 @@ "kind": "space" }, { - "text": "DataViewConstructor", - "kind": "interfaceName" + "text": "string", + "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "encodedURIComponent", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI component.", + "kind": "text" + } + ] + } + ] }, { - "name": "Int8Array", - "kind": "var", - "kindModifiers": "declare", + "name": "default", + "kind": "keyword", + "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "default", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Int8Array", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, + } + ] + }, + { + "name": "delete", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "var", + "text": "delete", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Int8Array", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, + } + ] + }, + { + "name": "do", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "Int8ArrayConstructor", - "kind": "interfaceName" + "text": "do", + "kind": "keyword" } - ], - "documentation": [ + ] + }, + { + "name": "else", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "A typed array of 8-bit integer values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", - "kind": "text" + "text": "else", + "kind": "keyword" } ] }, { - "name": "Uint8Array", - "kind": "var", + "name": "encodeURI", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -8753,24 +8791,32 @@ "kind": "space" }, { - "text": "Uint8Array", - "kind": "localName" + "text": "encodeURI", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "uri", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Uint8Array", - "kind": "localName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -8781,25 +8827,44 @@ "kind": "space" }, { - "text": "Uint8ArrayConstructor", - "kind": "interfaceName" + "text": "string", + "kind": "keyword" } ], "documentation": [ { - "text": "A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "text": "Encodes a text string as a valid Uniform Resource Identifier (URI)", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "uri", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI.", + "kind": "text" + } + ] + } ] }, { - "name": "Uint8ClampedArray", - "kind": "var", + "name": "encodeURIComponent", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -8807,27 +8872,35 @@ "kind": "space" }, { - "text": "Uint8ClampedArray", - "kind": "localName" + "text": "encodeURIComponent", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "uriComponent", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Uint8ClampedArray", - "kind": "localName" + "text": "string", + "kind": "keyword" }, { - "text": ":", + "text": " ", + "kind": "space" + }, + { + "text": "|", "kind": "punctuation" }, { @@ -8835,25 +8908,7 @@ "kind": "space" }, { - "text": "Uint8ClampedArrayConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0.\r\nIf the requested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] - }, - { - "name": "Int16Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", + "text": "number", "kind": "keyword" }, { @@ -8861,24 +8916,20 @@ "kind": "space" }, { - "text": "Int16Array", - "kind": "localName" + "text": "|", + "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": " ", + "kind": "space" }, { - "text": "var", + "text": "boolean", "kind": "keyword" }, { - "text": " ", - "kind": "space" - }, - { - "text": "Int16Array", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -8889,25 +8940,56 @@ "kind": "space" }, { - "text": "Int16ArrayConstructor", - "kind": "interfaceName" + "text": "string", + "kind": "keyword" } ], "documentation": [ { - "text": "A typed array of 16-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "text": "Encodes a text string as a valid component of a Uniform Resource Identifier (URI).", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "uriComponent", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI component.", + "kind": "text" + } + ] + } ] }, { - "name": "Uint16Array", + "name": "enum", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "enum", + "kind": "keyword" + } + ] + }, + { + "name": "Error", "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "var", "kind": "keyword" }, { @@ -8915,53 +8997,96 @@ "kind": "space" }, { - "text": "Uint16Array", + "text": "Error", "kind": "localName" }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "ErrorConstructor", + "kind": "interfaceName" + }, { "text": "\n", "kind": "lineBreak" }, { - "text": "var", + "text": "(", + "kind": "punctuation" + }, + { + "text": "message", + "kind": "parameterName" + }, + { + "text": "?", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", "kind": "keyword" }, + { + "text": ")", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "Uint16Array", + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Error", "kind": "localName" }, { - "text": ":", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "Uint16ArrayConstructor", - "kind": "interfaceName" + "text": "Error", + "kind": "localName" } ], - "documentation": [ - { - "text": "A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "Int32Array", - "kind": "var", + "name": "eval", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -8969,24 +9094,32 @@ "kind": "space" }, { - "text": "Int32Array", - "kind": "localName" + "text": "eval", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "x", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Int32Array", - "kind": "localName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -8997,25 +9130,44 @@ "kind": "space" }, { - "text": "Int32ArrayConstructor", - "kind": "interfaceName" + "text": "any", + "kind": "keyword" } ], "documentation": [ { - "text": "A typed array of 32-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "text": "Evaluates JavaScript code and executes it.", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "x", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A String value that contains valid JavaScript code.", + "kind": "text" + } + ] + } ] }, { - "name": "Uint32Array", + "name": "EvalError", "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "var", "kind": "keyword" }, { @@ -9023,42 +9175,161 @@ "kind": "space" }, { - "text": "Uint32Array", + "text": "EvalError", "kind": "localName" }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "EvalErrorConstructor", + "kind": "interfaceName" + }, { "text": "\n", "kind": "lineBreak" }, { - "text": "var", + "text": "(", + "kind": "punctuation" + }, + { + "text": "message", + "kind": "parameterName" + }, + { + "text": "?", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", "kind": "keyword" }, + { + "text": ")", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "Uint32Array", + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "EvalError", "kind": "localName" }, { - "text": ":", + "text": " ", + "kind": "space" + }, + { + "text": "(", "kind": "punctuation" }, + { + "text": "+", + "kind": "operator" + }, + { + "text": "1", + "kind": "numericLiteral" + }, { "text": " ", "kind": "space" }, { - "text": "Uint32ArrayConstructor", - "kind": "interfaceName" + "text": "overload", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "EvalError", + "kind": "localName" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "export", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" + "text": "export", + "kind": "keyword" + } + ] + }, + { + "name": "extends", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "extends", + "kind": "keyword" + } + ] + }, + { + "name": "false", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "false", + "kind": "keyword" + } + ] + }, + { + "name": "finally", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "finally", + "kind": "keyword" } ] }, @@ -9171,51 +9442,46 @@ ] }, { - "name": "Intl", - "kind": "module", - "kindModifiers": "declare", + "name": "for", + "kind": "keyword", + "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "namespace", + "text": "for", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Intl", - "kind": "moduleName" } - ], - "documentation": [] + ] }, { - "name": "simple", - "kind": "function", + "name": "function", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { "text": "function", "kind": "keyword" + } + ] + }, + { + "name": "Function", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "simple", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" + "text": "Function", + "kind": "localName" }, { "text": ":", @@ -9226,38 +9492,25 @@ "kind": "space" }, { - "text": "void", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "multiLine", - "kind": "function", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" + "text": "FunctionConstructor", + "kind": "interfaceName" }, { - "text": "multiLine", - "kind": "functionName" + "text": "\n", + "kind": "lineBreak" }, { "text": "(", "kind": "punctuation" }, { - "text": ")", + "text": "...", "kind": "punctuation" }, + { + "text": "args", + "kind": "parameterName" + }, { "text": ":", "kind": "punctuation" @@ -9267,40 +9520,19 @@ "kind": "space" }, { - "text": "void", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "jsDocSingleLine", - "kind": "function", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "function", + "text": "string", "kind": "keyword" }, { - "text": " ", - "kind": "space" - }, - { - "text": "jsDocSingleLine", - "kind": "functionName" - }, - { - "text": "(", + "text": "[", "kind": "punctuation" }, { - "text": ")", + "text": "]", "kind": "punctuation" }, { - "text": ":", + "text": ")", "kind": "punctuation" }, { @@ -9308,71 +9540,49 @@ "kind": "space" }, { - "text": "void", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "this is eg of single line jsdoc style comment", - "kind": "text" - } - ] - }, - { - "name": "jsDocMultiLine", - "kind": "function", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "function", - "kind": "keyword" + "text": "=>", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "jsDocMultiLine", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" + "text": "Function", + "kind": "localName" }, { - "text": ")", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "void", - "kind": "keyword" + "text": "Function", + "kind": "localName" } ], "documentation": [ { - "text": "this is multiple line jsdoc stule comment\nNew line1\nNew Line2", + "text": "Creates a new function.", "kind": "text" } ] }, { - "name": "jsDocMultiLineMerge", - "kind": "function", + "name": "globalThis", + "kind": "module", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "function", + "text": "module", "kind": "keyword" }, { @@ -9380,91 +9590,68 @@ "kind": "space" }, { - "text": "jsDocMultiLineMerge", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" + "text": "globalThis", + "kind": "moduleName" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "if", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "Another this one too", - "kind": "text" + "text": "if", + "kind": "keyword" } ] }, { - "name": "jsDocMixedComments1", - "kind": "function", + "name": "implements", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "function", + "text": "implements", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "jsDocMixedComments1", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, + } + ] + }, + { + "name": "import", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "void", + "text": "import", "kind": "keyword" } - ], - "documentation": [ + ] + }, + { + "name": "in", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "jsdoc comment", - "kind": "text" + "text": "in", + "kind": "keyword" } ] }, { - "name": "jsDocMixedComments2", - "kind": "function", - "kindModifiers": "", - "sortText": "11", + "name": "Infinity", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "function", + "text": "var", "kind": "keyword" }, { @@ -9472,16 +9659,8 @@ "kind": "space" }, { - "text": "jsDocMixedComments2", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" + "text": "Infinity", + "kind": "localName" }, { "text": ":", @@ -9492,25 +9671,32 @@ "kind": "space" }, { - "text": "void", + "text": "number", "kind": "keyword" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "instanceof", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "another jsDocComment", - "kind": "text" + "text": "instanceof", + "kind": "keyword" } ] }, { - "name": "jsDocMixedComments3", - "kind": "function", - "kindModifiers": "", - "sortText": "11", + "name": "Int16Array", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -9518,45 +9704,15 @@ "kind": "space" }, { - "text": "jsDocMixedComments3", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" + "text": "Int16Array", + "kind": "localName" }, { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, { - "text": "void", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "* triplestar jsDocComment", - "kind": "text" - } - ] - }, - { - "name": "jsDocMixedComments4", - "kind": "function", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "function", + "text": "var", "kind": "keyword" }, { @@ -9564,16 +9720,8 @@ "kind": "space" }, { - "text": "jsDocMixedComments4", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" + "text": "Int16Array", + "kind": "localName" }, { "text": ":", @@ -9584,25 +9732,25 @@ "kind": "space" }, { - "text": "void", - "kind": "keyword" + "text": "Int16ArrayConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "another jsDocComment", + "text": "A typed array of 16-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", "kind": "text" } ] }, { - "name": "jsDocMixedComments5", - "kind": "function", - "kindModifiers": "", - "sortText": "11", + "name": "Int32Array", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -9610,16 +9758,24 @@ "kind": "space" }, { - "text": "jsDocMixedComments5", - "kind": "functionName" + "text": "Int32Array", + "kind": "localName" }, { - "text": "(", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": ")", - "kind": "punctuation" + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Int32Array", + "kind": "localName" }, { "text": ":", @@ -9630,25 +9786,25 @@ "kind": "space" }, { - "text": "void", - "kind": "keyword" + "text": "Int32ArrayConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "another jsDocComment", + "text": "A typed array of 32-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", "kind": "text" } ] }, { - "name": "jsDocMixedComments6", - "kind": "function", - "kindModifiers": "", - "sortText": "11", + "name": "Int8Array", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -9656,16 +9812,24 @@ "kind": "space" }, { - "text": "jsDocMixedComments6", - "kind": "functionName" + "text": "Int8Array", + "kind": "localName" }, { - "text": "(", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": ")", - "kind": "punctuation" + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Int8Array", + "kind": "localName" }, { "text": ":", @@ -9676,63 +9840,55 @@ "kind": "space" }, { - "text": "void", - "kind": "keyword" + "text": "Int8ArrayConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "jsdoc comment", + "text": "A typed array of 8-bit integer values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", "kind": "text" } ] }, { - "name": "noHelpComment1", - "kind": "function", + "name": "interface", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "noHelpComment1", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, + } + ] + }, + { + "name": "Intl", + "kind": "module", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { - "text": ":", - "kind": "punctuation" + "text": "namespace", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "void", - "kind": "keyword" + "text": "Intl", + "kind": "moduleName" } ], "documentation": [] }, { - "name": "noHelpComment2", + "name": "isFinite", "kind": "function", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { "text": "function", @@ -9743,7 +9899,7 @@ "kind": "space" }, { - "text": "noHelpComment2", + "text": "isFinite", "kind": "functionName" }, { @@ -9751,8 +9907,8 @@ "kind": "punctuation" }, { - "text": ")", - "kind": "punctuation" + "text": "number", + "kind": "parameterName" }, { "text": ":", @@ -9763,34 +9919,9 @@ "kind": "space" }, { - "text": "void", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "noHelpComment3", - "kind": "function", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "function", + "text": "number", "kind": "keyword" }, - { - "text": " ", - "kind": "space" - }, - { - "text": "noHelpComment3", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, { "text": ")", "kind": "punctuation" @@ -9804,17 +9935,41 @@ "kind": "space" }, { - "text": "void", + "text": "boolean", "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Determines whether a supplied number is finite.", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "number", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Any numeric value.", + "kind": "text" + } + ] + } + ] }, { - "name": "sum", + "name": "isNaN", "kind": "function", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { "text": "function", @@ -9825,39 +9980,15 @@ "kind": "space" }, { - "text": "sum", + "text": "isNaN", "kind": "functionName" }, { "text": "(", "kind": "punctuation" }, - { - "text": "a", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, { "text": "number", - "kind": "keyword" - }, - { - "text": ",", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "b", "kind": "parameterName" }, { @@ -9885,13 +10016,13 @@ "kind": "space" }, { - "text": "number", + "text": "boolean", "kind": "keyword" } ], "documentation": [ { - "text": "Adds two integers and returns the result", + "text": "Returns a Boolean value that indicates whether a value is the reserved value NaN (not a number).", "kind": "text" } ], @@ -9900,24 +10031,7 @@ "name": "param", "text": [ { - "text": "a", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "first number", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "b", + "text": "number", "kind": "parameterName" }, { @@ -9925,7 +10039,7 @@ "kind": "space" }, { - "text": "second number", + "text": "A numeric value.", "kind": "text" } ] @@ -9933,13 +10047,13 @@ ] }, { - "name": "multiply", - "kind": "function", - "kindModifiers": "", - "sortText": "11", + "name": "JSON", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -9947,31 +10061,27 @@ "kind": "space" }, { - "text": "multiply", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" + "text": "JSON", + "kind": "localName" }, { - "text": "a", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "JSON", + "kind": "localName" }, { - "text": ",", + "text": ":", "kind": "punctuation" }, { @@ -9979,36 +10089,62 @@ "kind": "space" }, { - "text": "b", - "kind": "parameterName" - }, + "text": "JSON", + "kind": "localName" + } + ], + "documentation": [ { - "text": ":", - "kind": "punctuation" + "text": "An intrinsic object that provides functions to convert JavaScript values to and from the JavaScript Object Notation (JSON) format.", + "kind": "text" + } + ] + }, + { + "name": "let", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "let", + "kind": "keyword" + } + ] + }, + { + "name": "Math", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "Math", + "kind": "localName" }, { - "text": ",", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": " ", - "kind": "space" + "text": "var", + "kind": "keyword" }, { - "text": "c", - "kind": "parameterName" + "text": " ", + "kind": "space" }, { - "text": "?", - "kind": "punctuation" + "text": "Math", + "kind": "localName" }, { "text": ":", @@ -10019,24 +10155,34 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" - }, + "text": "Math", + "kind": "localName" + } + ], + "documentation": [ { - "text": ",", - "kind": "punctuation" + "text": "An intrinsic object that provides basic mathematics functionality and constants.", + "kind": "text" + } + ] + }, + { + "name": "NaN", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "d", - "kind": "parameterName" - }, - { - "text": "?", - "kind": "punctuation" + "text": "NaN", + "kind": "localName" }, { "text": ":", @@ -10047,11 +10193,56 @@ "kind": "space" }, { - "text": "any", + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "new", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "new", + "kind": "keyword" + } + ] + }, + { + "name": "null", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "null", + "kind": "keyword" + } + ] + }, + { + "name": "Number", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "var", "kind": "keyword" }, { - "text": ",", + "text": " ", + "kind": "space" + }, + { + "text": "Number", + "kind": "localName" + }, + { + "text": ":", "kind": "punctuation" }, { @@ -10059,7 +10250,19 @@ "kind": "space" }, { - "text": "e", + "text": "NumberConstructor", + "kind": "interfaceName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "value", "kind": "parameterName" }, { @@ -10083,7 +10286,11 @@ "kind": "punctuation" }, { - "text": ":", + "text": " ", + "kind": "space" + }, + { + "text": "=>", "kind": "punctuation" }, { @@ -10091,181 +10298,208 @@ "kind": "space" }, { - "text": "void", + "text": "number", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "interface", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Number", + "kind": "localName" } ], "documentation": [ { - "text": "This is multiplication function", + "text": "An object that represents a number of any kind. All JavaScript numbers are 64-bit floating-point numbers.", "kind": "text" } - ], - "tags": [ + ] + }, + { + "name": "Object", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "", - "kind": "text" - } - ] + "text": "var", + "kind": "keyword" }, { - "name": "param", - "text": [ - { - "text": "a", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "first number", - "kind": "text" - } - ] + "text": " ", + "kind": "space" }, { - "name": "param", - "text": [ - { - "text": "b", - "kind": "text" - } - ] + "text": "Object", + "kind": "localName" }, { - "name": "param", - "text": [ - { - "text": "c", - "kind": "text" - } - ] + "text": ":", + "kind": "punctuation" }, { - "name": "param", - "text": [ - { - "text": "d", - "kind": "text" - } - ] + "text": " ", + "kind": "space" }, { - "name": "anotherTag" + "text": "ObjectConstructor", + "kind": "interfaceName" }, { - "name": "param", - "text": [ - { - "text": "e", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "LastParam", - "kind": "text" - } - ] + "text": "\n", + "kind": "lineBreak" }, { - "name": "anotherTag" - } - ] - }, - { - "name": "f1", - "kind": "function", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ + "text": "(", + "kind": "punctuation" + }, { - "text": "function", - "kind": "keyword" + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "f1", - "kind": "functionName" + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" }, { "text": "(", "kind": "punctuation" }, { - "text": "a", - "kind": "parameterName" + "text": "+", + "kind": "operator" }, { - "text": ":", - "kind": "punctuation" + "text": "1", + "kind": "numericLiteral" }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "overload", + "kind": "text" }, { "text": ")", "kind": "punctuation" }, { - "text": ":", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "any", + "text": "Object", + "kind": "localName" + } + ], + "documentation": [] + }, + { + "name": "package", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "package", + "kind": "keyword" + } + ] + }, + { + "name": "parseFloat", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "function", "kind": "keyword" }, { "text": " ", "kind": "space" }, + { + "text": "parseFloat", + "kind": "functionName" + }, { "text": "(", "kind": "punctuation" }, { - "text": "+", - "kind": "operator" + "text": "string", + "kind": "parameterName" }, { - "text": "1", - "kind": "numericLiteral" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "overload", - "kind": "text" + "text": "string", + "kind": "keyword" }, { "text": ")", "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" } ], "documentation": [ { - "text": "fn f1 with number", + "text": "Converts a string to a floating-point number.", "kind": "text" } ], @@ -10274,7 +10508,7 @@ "name": "param", "text": [ { - "text": "b", + "text": "string", "kind": "parameterName" }, { @@ -10282,7 +10516,7 @@ "kind": "space" }, { - "text": "about b", + "text": "A string that contains a floating-point number.", "kind": "text" } ] @@ -10290,10 +10524,10 @@ ] }, { - "name": "subtract", + "name": "parseInt", "kind": "function", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { "text": "function", @@ -10304,7 +10538,7 @@ "kind": "space" }, { - "text": "subtract", + "text": "parseInt", "kind": "functionName" }, { @@ -10312,7 +10546,7 @@ "kind": "punctuation" }, { - "text": "a", + "text": "string", "kind": "parameterName" }, { @@ -10324,7 +10558,7 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" }, { @@ -10336,23 +10570,15 @@ "kind": "space" }, { - "text": "b", + "text": "radix", "kind": "parameterName" }, { - "text": ":", + "text": "?", "kind": "punctuation" }, { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": ",", + "text": ":", "kind": "punctuation" }, { @@ -10360,11 +10586,11 @@ "kind": "space" }, { - "text": "c", - "kind": "parameterName" + "text": "number", + "kind": "keyword" }, { - "text": "?", + "text": ")", "kind": "punctuation" }, { @@ -10376,19 +10602,73 @@ "kind": "space" }, { - "text": "(", - "kind": "punctuation" + "text": "number", + "kind": "keyword" + } + ], + "documentation": [ + { + "text": "Converts a string to an integer.", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string to convert into a number.", + "kind": "text" + } + ] }, { - "text": ")", - "kind": "punctuation" + "name": "param", + "text": [ + { + "text": "radix", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value between 2 and 36 that specifies the base of the number in `string`.\r\nIf this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal.\r\nAll other strings are considered decimal.", + "kind": "text" + } + ] + } + ] + }, + { + "name": "RangeError", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "=>", + "text": "RangeError", + "kind": "localName" + }, + { + "text": ":", "kind": "punctuation" }, { @@ -10396,19 +10676,19 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "RangeErrorConstructor", + "kind": "interfaceName" }, { - "text": ",", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "d", + "text": "message", "kind": "parameterName" }, { @@ -10424,8 +10704,8 @@ "kind": "space" }, { - "text": "(", - "kind": "punctuation" + "text": "string", + "kind": "keyword" }, { "text": ")", @@ -10444,59 +10724,76 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" - }, - { - "text": ",", - "kind": "punctuation" + "text": "RangeError", + "kind": "localName" }, { "text": " ", "kind": "space" }, { - "text": "e", - "kind": "parameterName" + "text": "(", + "kind": "punctuation" }, { - "text": "?", - "kind": "punctuation" + "text": "+", + "kind": "operator" }, { - "text": ":", - "kind": "punctuation" + "text": "1", + "kind": "numericLiteral" }, { "text": " ", "kind": "space" }, { - "text": "(", - "kind": "punctuation" + "text": "overload", + "kind": "text" }, { "text": ")", "kind": "punctuation" }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "interface", + "kind": "keyword" + }, { "text": " ", "kind": "space" }, { - "text": "=>", - "kind": "punctuation" + "text": "RangeError", + "kind": "localName" + } + ], + "documentation": [] + }, + { + "name": "ReferenceError", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "ReferenceError", + "kind": "localName" }, { - "text": ",", + "text": ":", "kind": "punctuation" }, { @@ -10504,7 +10801,19 @@ "kind": "space" }, { - "text": "f", + "text": "ReferenceErrorConstructor", + "kind": "interfaceName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "message", "kind": "parameterName" }, { @@ -10520,8 +10829,8 @@ "kind": "space" }, { - "text": "(", - "kind": "punctuation" + "text": "string", + "kind": "keyword" }, { "text": ")", @@ -10540,137 +10849,64 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "ReferenceError", + "kind": "localName" }, { - "text": ")", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": ":", + "text": "(", "kind": "punctuation" }, + { + "text": "+", + "kind": "operator" + }, + { + "text": "1", + "kind": "numericLiteral" + }, { "text": " ", "kind": "space" }, { - "text": "void", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "This is subtract function", + "text": "overload", "kind": "text" - } - ], - "tags": [ + }, { - "name": "param", - "text": [ - { - "text": "", - "kind": "text" - } - ] + "text": ")", + "kind": "punctuation" }, { - "name": "param", - "text": [ - { - "text": "b", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "this is about b", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "c", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "this is optional param c", - "kind": "text" - } - ] + "text": "\n", + "kind": "lineBreak" }, { - "name": "param", - "text": [ - { - "text": "d", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "this is optional param d", - "kind": "text" - } - ] + "text": "interface", + "kind": "keyword" }, { - "name": "param", - "text": [ - { - "text": "e", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "this is optional param e", - "kind": "text" - } - ] + "text": " ", + "kind": "space" }, { - "name": "param", - "text": [ - { - "text": "", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "{ () => string; } } f this is optional param f", - "kind": "text" - } - ] + "text": "ReferenceError", + "kind": "localName" } - ] + ], + "documentation": [] }, { - "name": "square", - "kind": "function", - "kindModifiers": "", - "sortText": "11", + "name": "RegExp", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "function", + "text": "var", "kind": "keyword" }, { @@ -10678,16 +10914,8 @@ "kind": "space" }, { - "text": "square", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "a", - "kind": "parameterName" + "text": "RegExp", + "kind": "localName" }, { "text": ":", @@ -10698,13 +10926,21 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "RegExpConstructor", + "kind": "interfaceName" }, { - "text": ")", + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "(", "kind": "punctuation" }, + { + "text": "pattern", + "kind": "parameterName" + }, { "text": ":", "kind": "punctuation" @@ -10714,82 +10950,35 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" - } - ], - "documentation": [ - { - "text": "this is square function", - "kind": "text" - } - ], - "tags": [ - { - "name": "paramTag", - "text": [ - { - "text": "{ number } a this is input number of paramTag", - "kind": "text" - } - ] }, { - "name": "param", - "text": [ - { - "text": "a", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "this is input number", - "kind": "text" - } - ] + "text": " ", + "kind": "space" }, { - "name": "returnType", - "text": [ - { - "text": "{ number } it is return type", - "kind": "text" - } - ] - } - ] - }, - { - "name": "divide", - "kind": "function", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "function", - "kind": "keyword" + "text": "|", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "divide", - "kind": "functionName" + "text": "RegExp", + "kind": "localName" }, { - "text": "(", + "text": ")", "kind": "punctuation" }, { - "text": "a", - "kind": "parameterName" + "text": " ", + "kind": "space" }, { - "text": ":", + "text": "=>", "kind": "punctuation" }, { @@ -10797,110 +10986,76 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" - }, - { - "text": ",", - "kind": "punctuation" + "text": "RegExp", + "kind": "localName" }, { "text": " ", "kind": "space" }, { - "text": "b", - "kind": "parameterName" + "text": "(", + "kind": "punctuation" }, { - "text": ":", - "kind": "punctuation" + "text": "+", + "kind": "operator" + }, + { + "text": "1", + "kind": "numericLiteral" }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "overload", + "kind": "text" }, { "text": ")", "kind": "punctuation" }, { - "text": ":", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "void", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "this is divide function", - "kind": "text" + "text": "RegExp", + "kind": "localName" } ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "a", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "this is a", - "kind": "text" - } - ] - }, - { - "name": "paramTag", - "text": [ - { - "text": "{ number } g this is optional param g", - "kind": "text" - } - ] - }, + "documentation": [] + }, + { + "name": "return", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "b", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "this is b", - "kind": "text" - } - ] + "text": "return", + "kind": "keyword" } ] }, { - "name": "fooBar", - "kind": "function", - "kindModifiers": "", - "sortText": "11", + "name": "String", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "function", + "text": "var", "kind": "keyword" }, { @@ -10908,17 +11063,37 @@ "kind": "space" }, { - "text": "fooBar", - "kind": "functionName" + "text": "String", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "StringConstructor", + "kind": "interfaceName" + }, + { + "text": "\n", + "kind": "lineBreak" }, { "text": "(", "kind": "punctuation" }, { - "text": "foo", + "text": "value", "kind": "parameterName" }, + { + "text": "?", + "kind": "punctuation" + }, { "text": ":", "kind": "punctuation" @@ -10928,11 +11103,11 @@ "kind": "space" }, { - "text": "string", + "text": "any", "kind": "keyword" }, { - "text": ",", + "text": ")", "kind": "punctuation" }, { @@ -10940,11 +11115,7 @@ "kind": "space" }, { - "text": "bar", - "kind": "parameterName" - }, - { - "text": ":", + "text": "=>", "kind": "punctuation" }, { @@ -10956,73 +11127,61 @@ "kind": "keyword" }, { - "text": ")", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "String", + "kind": "localName" } ], "documentation": [ { - "text": "Function returns string concat of foo and bar", + "text": "Allows manipulation and formatting of text strings and determination and location of substrings within strings.", "kind": "text" } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "foo", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "is string", - "kind": "text" - } - ] - }, + ] + }, + { + "name": "super", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "bar", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "is second string", - "kind": "text" - } - ] + "text": "super", + "kind": "keyword" } ] }, { - "name": "jsDocParamTest", - "kind": "function", + "name": "switch", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "function", + "text": "switch", + "kind": "keyword" + } + ] + }, + { + "name": "SyntaxError", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "var", "kind": "keyword" }, { @@ -11030,16 +11189,8 @@ "kind": "space" }, { - "text": "jsDocParamTest", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "a", - "kind": "parameterName" + "text": "SyntaxError", + "kind": "localName" }, { "text": ":", @@ -11050,21 +11201,25 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "SyntaxErrorConstructor", + "kind": "interfaceName" }, { - "text": ",", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "b", + "text": "message", "kind": "parameterName" }, + { + "text": "?", + "kind": "punctuation" + }, { "text": ":", "kind": "punctuation" @@ -11074,11 +11229,11 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" }, { - "text": ",", + "text": ")", "kind": "punctuation" }, { @@ -11086,11 +11241,7 @@ "kind": "space" }, { - "text": "c", - "kind": "parameterName" - }, - { - "text": ":", + "text": "=>", "kind": "punctuation" }, { @@ -11098,101 +11249,112 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" - }, - { - "text": ",", - "kind": "punctuation" + "text": "SyntaxError", + "kind": "localName" }, { "text": " ", "kind": "space" }, { - "text": "d", - "kind": "parameterName" + "text": "(", + "kind": "punctuation" }, { - "text": ":", - "kind": "punctuation" + "text": "+", + "kind": "operator" + }, + { + "text": "1", + "kind": "numericLiteral" }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "overload", + "kind": "text" }, { "text": ")", "kind": "punctuation" }, { - "text": ":", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "SyntaxError", + "kind": "localName" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "this", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "this is jsdoc style function with param tag as well as inline parameter help", - "kind": "text" + "text": "this", + "kind": "keyword" } - ], - "tags": [ + ] + }, + { + "name": "throw", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "a", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "it is first parameter", - "kind": "text" - } - ] - }, + "text": "throw", + "kind": "keyword" + } + ] + }, + { + "name": "true", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "c", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "it is third parameter", - "kind": "text" - } - ] + "text": "true", + "kind": "keyword" } ] }, { - "name": "jsDocCommentAlignmentTest1", - "kind": "function", + "name": "try", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "function", + "text": "try", + "kind": "keyword" + } + ] + }, + { + "name": "TypeError", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "var", "kind": "keyword" }, { @@ -11200,15 +11362,35 @@ "kind": "space" }, { - "text": "jsDocCommentAlignmentTest1", - "kind": "functionName" + "text": "TypeError", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "TypeErrorConstructor", + "kind": "interfaceName" + }, + { + "text": "\n", + "kind": "lineBreak" }, { "text": "(", "kind": "punctuation" }, { - "text": ")", + "text": "message", + "kind": "parameterName" + }, + { + "text": "?", "kind": "punctuation" }, { @@ -11220,71 +11402,96 @@ "kind": "space" }, { - "text": "void", + "text": "string", "kind": "keyword" - } - ], - "documentation": [ + }, { - "text": "This is function comment\nAnd properly aligned comment", - "kind": "text" - } - ] - }, - { - "name": "jsDocCommentAlignmentTest2", - "kind": "function", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ + "text": ")", + "kind": "punctuation" + }, { - "text": "function", - "kind": "keyword" + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "jsDocCommentAlignmentTest2", - "kind": "functionName" + "text": "TypeError", + "kind": "localName" + }, + { + "text": " ", + "kind": "space" }, { "text": "(", "kind": "punctuation" }, + { + "text": "+", + "kind": "operator" + }, + { + "text": "1", + "kind": "numericLiteral" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "overload", + "kind": "text" + }, { "text": ")", "kind": "punctuation" }, { - "text": ":", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "void", - "kind": "keyword" + "text": "TypeError", + "kind": "localName" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "typeof", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "This is function comment\n And aligned with 4 space char margin", - "kind": "text" + "text": "typeof", + "kind": "keyword" } ] }, { - "name": "jsDocCommentAlignmentTest3", - "kind": "function", - "kindModifiers": "", - "sortText": "11", + "name": "Uint16Array", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -11292,40 +11499,24 @@ "kind": "space" }, { - "text": "jsDocCommentAlignmentTest3", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "a", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" + "text": "Uint16Array", + "kind": "localName" }, { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, { - "text": "string", + "text": "var", "kind": "keyword" }, - { - "text": ",", - "kind": "punctuation" - }, { "text": " ", "kind": "space" }, { - "text": "b", - "kind": "parameterName" + "text": "Uint16Array", + "kind": "localName" }, { "text": ":", @@ -11336,36 +11527,50 @@ "kind": "space" }, { - "text": "any", - "kind": "keyword" - }, + "text": "Uint16ArrayConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ { - "text": ",", - "kind": "punctuation" + "text": "A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] + }, + { + "name": "Uint32Array", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "c", - "kind": "parameterName" + "text": "Uint32Array", + "kind": "localName" }, { - "text": ":", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": " ", - "kind": "space" + "text": "var", + "kind": "keyword" }, { - "text": "any", - "kind": "keyword" + "text": " ", + "kind": "space" }, { - "text": ")", - "kind": "punctuation" + "text": "Uint32Array", + "kind": "localName" }, { "text": ":", @@ -11376,76 +11581,39 @@ "kind": "space" }, { - "text": "void", - "kind": "keyword" + "text": "Uint32ArrayConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "This is function comment\n And aligned with 4 space char margin", + "text": "A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", "kind": "text" } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "a", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "this is info about a\nspanning on two lines and aligned perfectly", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "b", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "this is info about b\nspanning on two lines and aligned perfectly\nspanning one more line alined perfectly\n spanning another line with more margin", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "c", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "this is info about b\nnot aligned text about parameter will eat only one space", - "kind": "text" - } - ] - } ] }, { - "name": "x", + "name": "Uint8Array", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint8Array", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, { "text": "var", "kind": "keyword" @@ -11455,7 +11623,7 @@ "kind": "space" }, { - "text": "x", + "text": "Uint8Array", "kind": "localName" }, { @@ -11467,23 +11635,39 @@ "kind": "space" }, { - "text": "any", - "kind": "keyword" + "text": "Uint8ArrayConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "This is a comment", + "text": "A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", "kind": "text" } ] }, { - "name": "y", + "name": "Uint8ClampedArray", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint8ClampedArray", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, { "text": "var", "kind": "keyword" @@ -11493,7 +11677,7 @@ "kind": "space" }, { - "text": "y", + "text": "Uint8ClampedArray", "kind": "localName" }, { @@ -11505,25 +11689,25 @@ "kind": "space" }, { - "text": "any", - "kind": "keyword" + "text": "Uint8ClampedArrayConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "This is a comment", + "text": "A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0.\r\nIf the requested number of bytes could not be allocated an exception is raised.", "kind": "text" } ] }, { - "name": "NoQuickInfoClass", - "kind": "class", + "name": "undefined", + "kind": "var", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "class", + "text": "var", "kind": "keyword" }, { @@ -11531,16 +11715,16 @@ "kind": "space" }, { - "text": "NoQuickInfoClass", - "kind": "className" + "text": "undefined", + "kind": "propertyName" } ], "documentation": [] }, { - "name": "undefined", + "name": "URIError", "kind": "var", - "kindModifiers": "", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { @@ -11552,2051 +11736,184 @@ "kind": "space" }, { - "text": "undefined", - "kind": "propertyName" + "text": "URIError", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "URIErrorConstructor", + "kind": "interfaceName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "message", + "kind": "parameterName" + }, + { + "text": "?", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "URIError", + "kind": "localName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "+", + "kind": "operator" + }, + { + "text": "1", + "kind": "numericLiteral" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "overload", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "URIError", + "kind": "localName" } ], "documentation": [] }, { - "name": "break", + "name": "var", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "break", + "text": "var", "kind": "keyword" } ] }, { - "name": "case", + "name": "void", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "case", + "text": "void", "kind": "keyword" } ] }, { - "name": "catch", + "name": "while", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "catch", + "text": "while", "kind": "keyword" } ] }, { - "name": "class", + "name": "with", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "class", + "text": "with", "kind": "keyword" } ] }, { - "name": "const", + "name": "yield", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "const", + "text": "yield", "kind": "keyword" } ] }, { - "name": "continue", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "continue", - "kind": "keyword" - } - ] - }, - { - "name": "debugger", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "debugger", - "kind": "keyword" - } - ] - }, - { - "name": "default", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "default", - "kind": "keyword" - } - ] - }, - { - "name": "delete", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "delete", - "kind": "keyword" - } - ] - }, - { - "name": "do", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "do", - "kind": "keyword" - } - ] - }, - { - "name": "else", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "else", - "kind": "keyword" - } - ] - }, - { - "name": "enum", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "enum", - "kind": "keyword" - } - ] - }, - { - "name": "export", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "export", - "kind": "keyword" - } - ] - }, - { - "name": "extends", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "extends", - "kind": "keyword" - } - ] - }, - { - "name": "false", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "false", - "kind": "keyword" - } - ] - }, - { - "name": "finally", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "finally", - "kind": "keyword" - } - ] - }, - { - "name": "for", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "for", - "kind": "keyword" - } - ] - }, - { - "name": "function", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "function", - "kind": "keyword" - } - ] - }, - { - "name": "if", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "if", - "kind": "keyword" - } - ] - }, - { - "name": "import", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "import", - "kind": "keyword" - } - ] - }, - { - "name": "in", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "in", - "kind": "keyword" - } - ] - }, - { - "name": "instanceof", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "instanceof", - "kind": "keyword" - } - ] - }, - { - "name": "new", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "new", - "kind": "keyword" - } - ] - }, - { - "name": "null", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "null", - "kind": "keyword" - } - ] - }, - { - "name": "return", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "return", - "kind": "keyword" - } - ] - }, - { - "name": "super", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "super", - "kind": "keyword" - } - ] - }, - { - "name": "switch", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "switch", - "kind": "keyword" - } - ] - }, - { - "name": "this", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "this", - "kind": "keyword" - } - ] - }, - { - "name": "throw", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "throw", - "kind": "keyword" - } - ] - }, - { - "name": "true", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "true", - "kind": "keyword" - } - ] - }, - { - "name": "try", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "try", - "kind": "keyword" - } - ] - }, - { - "name": "typeof", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "typeof", - "kind": "keyword" - } - ] - }, - { - "name": "var", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "var", - "kind": "keyword" - } - ] - }, - { - "name": "void", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "void", - "kind": "keyword" - } - ] - }, - { - "name": "while", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "while", - "kind": "keyword" - } - ] - }, - { - "name": "with", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "with", - "kind": "keyword" - } - ] - }, - { - "name": "implements", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "implements", - "kind": "keyword" - } - ] - }, - { - "name": "interface", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - } - ] - }, - { - "name": "let", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "let", - "kind": "keyword" - } - ] - }, - { - "name": "package", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "package", - "kind": "keyword" - } - ] - }, - { - "name": "yield", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "yield", - "kind": "keyword" - } - ] - }, - { - "name": "as", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "as", - "kind": "keyword" - } - ] - }, - { - "name": "async", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "async", - "kind": "keyword" - } - ] - }, - { - "name": "await", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "await", - "kind": "keyword" - } - ] - } - ] - } - }, - { - "marker": { - "fileName": "/tests/cases/fourslash/completionsCommentsCommentParsing.ts", - "position": 2361, - "name": "24" - }, - "completionList": { - "isGlobalCompletion": true, - "isMemberCompletion": false, - "isNewIdentifierLocation": false, - "optionalReplacementSpan": { - "start": 2361, - "length": 4 - }, - "entries": [ - { - "name": "aOrb", - "kind": "parameter", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "parameter", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "aOrb", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "opt", - "kind": "parameter", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "parameter", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "opt", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "optional parameter", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "opt", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "optional parameter", - "kind": "text" - } - ] - } - ] - }, - { - "name": "arguments", - "kind": "local var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "local var", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "arguments", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "IArguments", - "kind": "interfaceName" - } - ], - "documentation": [] - }, - { - "name": "globalThis", - "kind": "module", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "module", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "globalThis", - "kind": "moduleName" - } - ], - "documentation": [] - }, - { - "name": "eval", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "eval", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "x", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Evaluates JavaScript code and executes it.", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "x", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A String value that contains valid JavaScript code.", - "kind": "text" - } - ] - } - ] - }, - { - "name": "parseInt", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "parseInt", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "string", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": ",", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "radix", - "kind": "parameterName" - }, - { - "text": "?", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Converts a string to an integer.", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string to convert into a number.", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "radix", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value between 2 and 36 that specifies the base of the number in `string`.\r\nIf this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal.\r\nAll other strings are considered decimal.", - "kind": "text" - } - ] - } - ] - }, - { - "name": "parseFloat", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "parseFloat", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "string", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Converts a string to a floating-point number.", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string that contains a floating-point number.", - "kind": "text" - } - ] - } - ] - }, - { - "name": "isNaN", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "isNaN", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "number", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "boolean", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Returns a Boolean value that indicates whether a value is the reserved value NaN (not a number).", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "number", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A numeric value.", - "kind": "text" - } - ] - } - ] - }, - { - "name": "isFinite", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "isFinite", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "number", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "boolean", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Determines whether a supplied number is finite.", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "number", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Any numeric value.", - "kind": "text" - } - ] - } - ] - }, - { - "name": "decodeURI", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "decodeURI", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "encodedURI", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Gets the unencoded version of an encoded Uniform Resource Identifier (URI).", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "encodedURI", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI.", - "kind": "text" - } - ] - } - ] - }, - { - "name": "decodeURIComponent", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "decodeURIComponent", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "encodedURIComponent", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "encodedURIComponent", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI component.", - "kind": "text" - } - ] - } - ] - }, - { - "name": "encodeURI", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "encodeURI", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "uri", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Encodes a text string as a valid Uniform Resource Identifier (URI)", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "uri", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI.", - "kind": "text" - } - ] - } - ] - }, - { - "name": "encodeURIComponent", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "encodeURIComponent", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "uriComponent", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "|", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "|", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "boolean", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Encodes a text string as a valid component of a Uniform Resource Identifier (URI).", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "uriComponent", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI component.", - "kind": "text" - } - ] - } - ] - }, - { - "name": "escape", - "kind": "function", - "kindModifiers": "deprecated,declare", - "sortText": "23", - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "escape", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "string", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Computes a new string in which certain characters have been replaced by a hexadecimal escape sequence.", - "kind": "text" - } - ], - "tags": [ - { - "name": "deprecated", - "text": [ - { - "text": "A legacy feature for browser compatibility", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string value", - "kind": "text" - } - ] - } - ] - }, - { - "name": "unescape", - "kind": "function", - "kindModifiers": "deprecated,declare", - "sortText": "23", - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "unescape", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "string", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Computes a new string in which hexadecimal escape sequences are replaced with the character that it represents.", - "kind": "text" - } - ], - "tags": [ - { - "name": "deprecated", - "text": [ - { - "text": "A legacy feature for browser compatibility", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string value", - "kind": "text" - } - ] - } - ] - }, - { - "name": "NaN", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "NaN", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "Infinity", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Infinity", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "Object", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Object", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Object", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "ObjectConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "Provides functionality common to all JavaScript objects.", - "kind": "text" - } - ] - }, - { - "name": "Function", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Function", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Function", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "FunctionConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "Creates a new function.", - "kind": "text" - } - ] - }, - { - "name": "String", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "String", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "String", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "StringConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "Allows manipulation and formatting of text strings and determination and location of substrings within strings.", - "kind": "text" - } - ] - }, - { - "name": "Boolean", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Boolean", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Boolean", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "BooleanConstructor", - "kind": "interfaceName" - } - ], - "documentation": [] - }, - { - "name": "Number", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Number", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Number", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "NumberConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "An object that represents a number of any kind. All JavaScript numbers are 64-bit floating-point numbers.", - "kind": "text" - } - ] - }, - { - "name": "Math", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "escape", + "kind": "function", + "kindModifiers": "deprecated,declare", + "sortText": "z15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -13604,24 +11921,16 @@ "kind": "space" }, { - "text": "Math", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": "escape", + "kind": "functionName" }, { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "Math", - "kind": "localName" + "text": "string", + "kind": "parameterName" }, { "text": ":", @@ -13632,50 +11941,12 @@ "kind": "space" }, { - "text": "Math", - "kind": "localName" - } - ], - "documentation": [ - { - "text": "An intrinsic object that provides basic mathematics functionality and constants.", - "kind": "text" - } - ] - }, - { - "name": "Date", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Date", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", + "text": "string", "kind": "keyword" }, { - "text": " ", - "kind": "space" - }, - { - "text": "Date", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -13686,25 +11957,53 @@ "kind": "space" }, { - "text": "DateConstructor", - "kind": "interfaceName" + "text": "string", + "kind": "keyword" } ], "documentation": [ { - "text": "Enables basic storage and retrieval of dates and times.", + "text": "Computes a new string in which certain characters have been replaced by a hexadecimal escape sequence.", "kind": "text" } + ], + "tags": [ + { + "name": "deprecated", + "text": [ + { + "text": "A legacy feature for browser compatibility", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string value", + "kind": "text" + } + ] + } ] }, { - "name": "RegExp", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "unescape", + "kind": "function", + "kindModifiers": "deprecated,declare", + "sortText": "z15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -13712,24 +12011,16 @@ "kind": "space" }, { - "text": "RegExp", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": "unescape", + "kind": "functionName" }, { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "RegExp", - "kind": "localName" + "text": "string", + "kind": "parameterName" }, { "text": ":", @@ -13740,45 +12031,12 @@ "kind": "space" }, { - "text": "RegExpConstructor", - "kind": "interfaceName" - } - ], - "documentation": [] - }, - { - "name": "Error", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Error", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", + "text": "string", "kind": "keyword" }, { - "text": " ", - "kind": "space" - }, - { - "text": "Error", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -13789,94 +12047,88 @@ "kind": "space" }, { - "text": "ErrorConstructor", - "kind": "interfaceName" + "text": "string", + "kind": "keyword" } ], - "documentation": [] - }, - { - "name": "EvalError", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "EvalError", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "EvalError", - "kind": "localName" - }, + "documentation": [ { - "text": ":", - "kind": "punctuation" - }, + "text": "Computes a new string in which hexadecimal escape sequences are replaced with the character that it represents.", + "kind": "text" + } + ], + "tags": [ { - "text": " ", - "kind": "space" + "name": "deprecated", + "text": [ + { + "text": "A legacy feature for browser compatibility", + "kind": "text" + } + ] }, { - "text": "EvalErrorConstructor", - "kind": "interfaceName" + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string value", + "kind": "text" + } + ] } - ], - "documentation": [] - }, + ] + } + ] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/completionsCommentsCommentParsing.ts", + "position": 2361, + "name": "24" + }, + "completionList": { + "isGlobalCompletion": true, + "isMemberCompletion": false, + "isNewIdentifierLocation": false, + "optionalReplacementSpan": { + "start": 2361, + "length": 4 + }, + "entries": [ { - "name": "RangeError", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "aOrb", + "kind": "parameter", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "RangeError", - "kind": "localName" + "text": "(", + "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": "parameter", + "kind": "text" }, { - "text": "var", - "kind": "keyword" + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "RangeError", - "kind": "localName" + "text": "aOrb", + "kind": "parameterName" }, { "text": ":", @@ -13887,45 +12139,37 @@ "kind": "space" }, { - "text": "RangeErrorConstructor", - "kind": "interfaceName" + "text": "any", + "kind": "keyword" } ], "documentation": [] }, { - "name": "ReferenceError", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "arguments", + "kind": "local var", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "ReferenceError", - "kind": "localName" + "text": "(", + "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": "local var", + "kind": "text" }, { - "text": "var", - "kind": "keyword" + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "ReferenceError", - "kind": "localName" + "text": "arguments", + "kind": "propertyName" }, { "text": ":", @@ -13936,20 +12180,20 @@ "kind": "space" }, { - "text": "ReferenceErrorConstructor", + "text": "IArguments", "kind": "interfaceName" } ], "documentation": [] }, { - "name": "SyntaxError", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "divide", + "kind": "function", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -13957,24 +12201,16 @@ "kind": "space" }, { - "text": "SyntaxError", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": "divide", + "kind": "functionName" }, { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "SyntaxError", - "kind": "localName" + "text": "a", + "kind": "parameterName" }, { "text": ":", @@ -13985,45 +12221,20 @@ "kind": "space" }, { - "text": "SyntaxErrorConstructor", - "kind": "interfaceName" - } - ], - "documentation": [] - }, - { - "name": "TypeError", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", + "text": "number", "kind": "keyword" }, { - "text": " ", - "kind": "space" - }, - { - "text": "TypeError", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": ",", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "TypeError", - "kind": "localName" + "text": "b", + "kind": "parameterName" }, { "text": ":", @@ -14034,45 +12245,12 @@ "kind": "space" }, { - "text": "TypeErrorConstructor", - "kind": "interfaceName" - } - ], - "documentation": [] - }, - { - "name": "URIError", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "URIError", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", + "text": "number", "kind": "keyword" }, { - "text": " ", - "kind": "space" - }, - { - "text": "URIError", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -14083,74 +12261,70 @@ "kind": "space" }, { - "text": "URIErrorConstructor", - "kind": "interfaceName" + "text": "void", + "kind": "keyword" } ], - "documentation": [] - }, - { - "name": "JSON", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "JSON", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "JSON", - "kind": "localName" - }, + "documentation": [ { - "text": ":", - "kind": "punctuation" - }, + "text": "this is divide function", + "kind": "text" + } + ], + "tags": [ { - "text": " ", - "kind": "space" + "name": "param", + "text": [ + { + "text": "a", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "this is a", + "kind": "text" + } + ] }, { - "text": "JSON", - "kind": "localName" - } - ], - "documentation": [ + "name": "paramTag", + "text": [ + { + "text": "{ number } g this is optional param g", + "kind": "text" + } + ] + }, { - "text": "An intrinsic object that provides functions to convert JavaScript values to and from the JavaScript Object Notation (JSON) format.", - "kind": "text" + "name": "param", + "text": [ + { + "text": "b", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "this is b", + "kind": "text" + } + ] } ] }, { - "name": "Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "f1", + "kind": "function", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -14158,36 +12332,32 @@ "kind": "space" }, { - "text": "Array", - "kind": "localName" + "text": "f1", + "kind": "functionName" }, { - "text": "<", + "text": "(", "kind": "punctuation" }, { - "text": "T", - "kind": "typeParameterName" + "text": "a", + "kind": "parameterName" }, { - "text": ">", + "text": ":", "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": " ", + "kind": "space" }, { - "text": "var", + "text": "number", "kind": "keyword" }, { - "text": " ", - "kind": "space" - }, - { - "text": "Array", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -14198,20 +12368,7 @@ "kind": "space" }, { - "text": "ArrayConstructor", - "kind": "interfaceName" - } - ], - "documentation": [] - }, - { - "name": "ArrayBuffer", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", + "text": "any", "kind": "keyword" }, { @@ -14219,53 +12376,64 @@ "kind": "space" }, { - "text": "ArrayBuffer", - "kind": "localName" + "text": "(", + "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": "+", + "kind": "operator" }, { - "text": "var", - "kind": "keyword" + "text": "1", + "kind": "numericLiteral" }, { "text": " ", "kind": "space" }, { - "text": "ArrayBuffer", - "kind": "localName" + "text": "overload", + "kind": "text" }, { - "text": ":", + "text": ")", "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "ArrayBufferConstructor", - "kind": "interfaceName" } ], "documentation": [ { - "text": "Represents a raw buffer of binary data, which is used to store data for the\r\ndifferent typed arrays. ArrayBuffers cannot be read from or written to directly,\r\nbut can be passed to a typed array or DataView Object to interpret the raw\r\nbuffer as needed.", + "text": "fn f1 with number", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "b", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "about b", + "kind": "text" + } + ] + } ] }, { - "name": "DataView", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "fooBar", + "kind": "function", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -14273,24 +12441,16 @@ "kind": "space" }, { - "text": "DataView", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": "fooBar", + "kind": "functionName" }, { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "DataView", - "kind": "localName" + "text": "foo", + "kind": "parameterName" }, { "text": ":", @@ -14301,45 +12461,36 @@ "kind": "space" }, { - "text": "DataViewConstructor", - "kind": "interfaceName" - } - ], - "documentation": [] - }, - { - "name": "Int8Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", + "text": "string", "kind": "keyword" }, { - "text": " ", - "kind": "space" + "text": ",", + "kind": "punctuation" }, { - "text": "Int8Array", - "kind": "localName" + "text": " ", + "kind": "space" }, { - "text": "\n", - "kind": "lineBreak" + "text": "bar", + "kind": "parameterName" }, { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Int8Array", - "kind": "localName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -14350,25 +12501,61 @@ "kind": "space" }, { - "text": "Int8ArrayConstructor", - "kind": "interfaceName" + "text": "string", + "kind": "keyword" } ], "documentation": [ { - "text": "A typed array of 8-bit integer values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", + "text": "Function returns string concat of foo and bar", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "foo", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "is string", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "bar", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "is second string", + "kind": "text" + } + ] + } ] }, { - "name": "Uint8Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "jsDocCommentAlignmentTest1", + "kind": "function", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -14376,24 +12563,16 @@ "kind": "space" }, { - "text": "Uint8Array", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": "jsDocCommentAlignmentTest1", + "kind": "functionName" }, { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "Uint8Array", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -14404,25 +12583,25 @@ "kind": "space" }, { - "text": "Uint8ArrayConstructor", - "kind": "interfaceName" + "text": "void", + "kind": "keyword" } ], "documentation": [ { - "text": "A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "text": "This is function comment\nAnd properly aligned comment", "kind": "text" } ] }, { - "name": "Uint8ClampedArray", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "jsDocCommentAlignmentTest2", + "kind": "function", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -14430,24 +12609,16 @@ "kind": "space" }, { - "text": "Uint8ClampedArray", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": "jsDocCommentAlignmentTest2", + "kind": "functionName" }, { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "Uint8ClampedArray", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -14458,25 +12629,25 @@ "kind": "space" }, { - "text": "Uint8ClampedArrayConstructor", - "kind": "interfaceName" + "text": "void", + "kind": "keyword" } ], "documentation": [ { - "text": "A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0.\r\nIf the requested number of bytes could not be allocated an exception is raised.", + "text": "This is function comment\n And aligned with 4 space char margin", "kind": "text" } ] }, { - "name": "Int16Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "jsDocCommentAlignmentTest3", + "kind": "function", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -14484,24 +12655,16 @@ "kind": "space" }, { - "text": "Int16Array", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": "jsDocCommentAlignmentTest3", + "kind": "functionName" }, { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "Int16Array", - "kind": "localName" + "text": "a", + "kind": "parameterName" }, { "text": ":", @@ -14512,50 +12675,20 @@ "kind": "space" }, { - "text": "Int16ArrayConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "A typed array of 16-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] - }, - { - "name": "Uint16Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", + "text": "string", "kind": "keyword" }, { - "text": " ", - "kind": "space" - }, - { - "text": "Uint16Array", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": ",", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Uint16Array", - "kind": "localName" + "text": "b", + "kind": "parameterName" }, { "text": ":", @@ -14566,50 +12699,36 @@ "kind": "space" }, { - "text": "Uint16ArrayConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] - }, - { - "name": "Int32Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", + "text": "any", "kind": "keyword" }, { - "text": " ", - "kind": "space" + "text": ",", + "kind": "punctuation" }, { - "text": "Int32Array", - "kind": "localName" + "text": " ", + "kind": "space" }, { - "text": "\n", - "kind": "lineBreak" + "text": "c", + "kind": "parameterName" }, { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Int32Array", - "kind": "localName" + "text": "any", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -14620,25 +12739,78 @@ "kind": "space" }, { - "text": "Int32ArrayConstructor", - "kind": "interfaceName" + "text": "void", + "kind": "keyword" } ], "documentation": [ { - "text": "A typed array of 32-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "text": "This is function comment\n And aligned with 4 space char margin", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "a", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "this is info about a\nspanning on two lines and aligned perfectly", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "b", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "this is info about b\nspanning on two lines and aligned perfectly\nspanning one more line alined perfectly\n spanning another line with more margin", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "c", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "this is info about b\nnot aligned text about parameter will eat only one space", + "kind": "text" + } + ] + } ] }, { - "name": "Uint32Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "jsDocMixedComments1", + "kind": "function", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -14646,24 +12818,16 @@ "kind": "space" }, { - "text": "Uint32Array", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": "jsDocMixedComments1", + "kind": "functionName" }, { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "Uint32Array", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -14674,25 +12838,25 @@ "kind": "space" }, { - "text": "Uint32ArrayConstructor", - "kind": "interfaceName" + "text": "void", + "kind": "keyword" } ], "documentation": [ { - "text": "A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "text": "jsdoc comment", "kind": "text" } ] }, { - "name": "Float32Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "jsDocMixedComments2", + "kind": "function", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -14700,24 +12864,16 @@ "kind": "space" }, { - "text": "Float32Array", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": "jsDocMixedComments2", + "kind": "functionName" }, { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "Float32Array", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -14728,25 +12884,25 @@ "kind": "space" }, { - "text": "Float32ArrayConstructor", - "kind": "interfaceName" + "text": "void", + "kind": "keyword" } ], "documentation": [ { - "text": "A typed array of 32-bit float values. The contents are initialized to 0. If the requested number\r\nof bytes could not be allocated an exception is raised.", + "text": "another jsDocComment", "kind": "text" } ] }, { - "name": "Float64Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "jsDocMixedComments3", + "kind": "function", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -14754,24 +12910,16 @@ "kind": "space" }, { - "text": "Float64Array", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": "jsDocMixedComments3", + "kind": "functionName" }, { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "Float64Array", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -14782,25 +12930,25 @@ "kind": "space" }, { - "text": "Float64ArrayConstructor", - "kind": "interfaceName" + "text": "void", + "kind": "keyword" } ], "documentation": [ { - "text": "A typed array of 64-bit float values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", + "text": "* triplestar jsDocComment", "kind": "text" } ] }, { - "name": "Intl", - "kind": "module", - "kindModifiers": "declare", - "sortText": "15", + "name": "jsDocMixedComments4", + "kind": "function", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "namespace", + "text": "function", "kind": "keyword" }, { @@ -14808,14 +12956,39 @@ "kind": "space" }, { - "text": "Intl", - "kind": "moduleName" + "text": "jsDocMixedComments4", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "another jsDocComment", + "kind": "text" + } + ] }, { - "name": "simple", + "name": "jsDocMixedComments5", "kind": "function", "kindModifiers": "", "sortText": "11", @@ -14829,7 +13002,7 @@ "kind": "space" }, { - "text": "simple", + "text": "jsDocMixedComments5", "kind": "functionName" }, { @@ -14853,10 +13026,15 @@ "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "another jsDocComment", + "kind": "text" + } + ] }, { - "name": "multiLine", + "name": "jsDocMixedComments6", "kind": "function", "kindModifiers": "", "sortText": "11", @@ -14870,7 +13048,7 @@ "kind": "space" }, { - "text": "multiLine", + "text": "jsDocMixedComments6", "kind": "functionName" }, { @@ -14894,10 +13072,15 @@ "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "jsdoc comment", + "kind": "text" + } + ] }, { - "name": "jsDocSingleLine", + "name": "jsDocMultiLine", "kind": "function", "kindModifiers": "", "sortText": "11", @@ -14911,7 +13094,7 @@ "kind": "space" }, { - "text": "jsDocSingleLine", + "text": "jsDocMultiLine", "kind": "functionName" }, { @@ -14937,13 +13120,13 @@ ], "documentation": [ { - "text": "this is eg of single line jsdoc style comment", + "text": "this is multiple line jsdoc stule comment\nNew line1\nNew Line2", "kind": "text" } ] }, { - "name": "jsDocMultiLine", + "name": "jsDocMultiLineMerge", "kind": "function", "kindModifiers": "", "sortText": "11", @@ -14957,7 +13140,7 @@ "kind": "space" }, { - "text": "jsDocMultiLine", + "text": "jsDocMultiLineMerge", "kind": "functionName" }, { @@ -14983,13 +13166,13 @@ ], "documentation": [ { - "text": "this is multiple line jsdoc stule comment\nNew line1\nNew Line2", + "text": "Another this one too", "kind": "text" } ] }, { - "name": "jsDocMultiLineMerge", + "name": "jsDocParamTest", "kind": "function", "kindModifiers": "", "sortText": "11", @@ -15003,13 +13186,101 @@ "kind": "space" }, { - "text": "jsDocMultiLineMerge", + "text": "jsDocParamTest", "kind": "functionName" }, { "text": "(", "kind": "punctuation" }, + { + "text": "a", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": ",", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "b", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": ",", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "c", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": ",", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "d", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, { "text": ")", "kind": "punctuation" @@ -15023,19 +13294,55 @@ "kind": "space" }, { - "text": "void", + "text": "number", "kind": "keyword" } ], "documentation": [ { - "text": "Another this one too", + "text": "this is jsdoc style function with param tag as well as inline parameter help", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "a", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "it is first parameter", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "c", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "it is third parameter", + "kind": "text" + } + ] + } ] }, { - "name": "jsDocMixedComments1", + "name": "jsDocSingleLine", "kind": "function", "kindModifiers": "", "sortText": "11", @@ -15049,7 +13356,7 @@ "kind": "space" }, { - "text": "jsDocMixedComments1", + "text": "jsDocSingleLine", "kind": "functionName" }, { @@ -15075,13 +13382,13 @@ ], "documentation": [ { - "text": "jsdoc comment", + "text": "this is eg of single line jsdoc style comment", "kind": "text" } ] }, { - "name": "jsDocMixedComments2", + "name": "multiLine", "kind": "function", "kindModifiers": "", "sortText": "11", @@ -15095,7 +13402,7 @@ "kind": "space" }, { - "text": "jsDocMixedComments2", + "text": "multiLine", "kind": "functionName" }, { @@ -15119,15 +13426,10 @@ "kind": "keyword" } ], - "documentation": [ - { - "text": "another jsDocComment", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "jsDocMixedComments3", + "name": "multiply", "kind": "function", "kindModifiers": "", "sortText": "11", @@ -15141,13 +13443,137 @@ "kind": "space" }, { - "text": "jsDocMixedComments3", + "text": "multiply", "kind": "functionName" }, { "text": "(", "kind": "punctuation" }, + { + "text": "a", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": ",", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "b", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": ",", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "c", + "kind": "parameterName" + }, + { + "text": "?", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": ",", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "d", + "kind": "parameterName" + }, + { + "text": "?", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + }, + { + "text": ",", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "e", + "kind": "parameterName" + }, + { + "text": "?", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + }, { "text": ")", "kind": "punctuation" @@ -15167,13 +13593,91 @@ ], "documentation": [ { - "text": "* triplestar jsDocComment", + "text": "This is multiplication function", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "a", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "first number", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "b", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "c", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "d", + "kind": "text" + } + ] + }, + { + "name": "anotherTag" + }, + { + "name": "param", + "text": [ + { + "text": "e", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "LastParam", + "kind": "text" + } + ] + }, + { + "name": "anotherTag" + } ] }, { - "name": "jsDocMixedComments4", + "name": "noHelpComment1", "kind": "function", "kindModifiers": "", "sortText": "11", @@ -15187,7 +13691,7 @@ "kind": "space" }, { - "text": "jsDocMixedComments4", + "text": "noHelpComment1", "kind": "functionName" }, { @@ -15211,15 +13715,10 @@ "kind": "keyword" } ], - "documentation": [ - { - "text": "another jsDocComment", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "jsDocMixedComments5", + "name": "noHelpComment2", "kind": "function", "kindModifiers": "", "sortText": "11", @@ -15233,7 +13732,7 @@ "kind": "space" }, { - "text": "jsDocMixedComments5", + "text": "noHelpComment2", "kind": "functionName" }, { @@ -15257,15 +13756,10 @@ "kind": "keyword" } ], - "documentation": [ - { - "text": "another jsDocComment", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "jsDocMixedComments6", + "name": "noHelpComment3", "kind": "function", "kindModifiers": "", "sortText": "11", @@ -15279,7 +13773,7 @@ "kind": "space" }, { - "text": "jsDocMixedComments6", + "text": "noHelpComment3", "kind": "functionName" }, { @@ -15303,21 +13797,16 @@ "kind": "keyword" } ], - "documentation": [ - { - "text": "jsdoc comment", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "noHelpComment1", - "kind": "function", + "name": "NoQuickInfoClass", + "kind": "class", "kindModifiers": "", "sortText": "11", "displayParts": [ { - "text": "function", + "text": "class", "kind": "keyword" }, { @@ -15325,57 +13814,37 @@ "kind": "space" }, { - "text": "noHelpComment1", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" + "text": "NoQuickInfoClass", + "kind": "className" } ], "documentation": [] }, { - "name": "noHelpComment2", - "kind": "function", + "name": "opt", + "kind": "parameter", "kindModifiers": "", "sortText": "11", "displayParts": [ { - "text": "function", - "kind": "keyword" + "text": "(", + "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "parameter", + "kind": "text" }, { - "text": "noHelpComment2", - "kind": "functionName" + "text": ")", + "kind": "punctuation" }, { - "text": "(", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": ")", - "kind": "punctuation" + "text": "opt", + "kind": "parameterName" }, { "text": ":", @@ -15386,14 +13855,38 @@ "kind": "space" }, { - "text": "void", + "text": "any", "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "optional parameter", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "opt", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "optional parameter", + "kind": "text" + } + ] + } + ] }, { - "name": "noHelpComment3", + "name": "simple", "kind": "function", "kindModifiers": "", "sortText": "11", @@ -15407,7 +13900,7 @@ "kind": "space" }, { - "text": "noHelpComment3", + "text": "simple", "kind": "functionName" }, { @@ -15434,7 +13927,7 @@ "documentation": [] }, { - "name": "sum", + "name": "square", "kind": "function", "kindModifiers": "", "sortText": "11", @@ -15448,7 +13941,7 @@ "kind": "space" }, { - "text": "sum", + "text": "square", "kind": "functionName" }, { @@ -15471,30 +13964,6 @@ "text": "number", "kind": "keyword" }, - { - "text": ",", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "b", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, { "text": ")", "kind": "punctuation" @@ -15514,11 +13983,20 @@ ], "documentation": [ { - "text": "Adds two integers and returns the result", + "text": "this is square function", "kind": "text" } ], "tags": [ + { + "name": "paramTag", + "text": [ + { + "text": "{ number } a this is input number of paramTag", + "kind": "text" + } + ] + }, { "name": "param", "text": [ @@ -15531,24 +14009,16 @@ "kind": "space" }, { - "text": "first number", + "text": "this is input number", "kind": "text" } ] }, { - "name": "param", + "name": "returnType", "text": [ { - "text": "b", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "second number", + "text": "{ number } it is return type", "kind": "text" } ] @@ -15556,7 +14026,7 @@ ] }, { - "name": "multiply", + "name": "subtract", "kind": "function", "kindModifiers": "", "sortText": "11", @@ -15570,7 +14040,7 @@ "kind": "space" }, { - "text": "multiply", + "text": "subtract", "kind": "functionName" }, { @@ -15642,7 +14112,27 @@ "kind": "space" }, { - "text": "number", + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", "kind": "keyword" }, { @@ -15670,7 +14160,27 @@ "kind": "space" }, { - "text": "any", + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", "kind": "keyword" }, { @@ -15698,7 +14208,75 @@ "kind": "space" }, { - "text": "any", + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": ",", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "f", + "kind": "parameterName" + }, + { + "text": "?", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", "kind": "keyword" }, { @@ -15720,7 +14298,7 @@ ], "documentation": [ { - "text": "This is multiplication function", + "text": "This is subtract function", "kind": "text" } ], @@ -15738,7 +14316,7 @@ "name": "param", "text": [ { - "text": "a", + "text": "b", "kind": "parameterName" }, { @@ -15746,7 +14324,7 @@ "kind": "space" }, { - "text": "first number", + "text": "this is about b", "kind": "text" } ] @@ -15755,7 +14333,15 @@ "name": "param", "text": [ { - "text": "b", + "text": "c", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "this is optional param c", "kind": "text" } ] @@ -15764,7 +14350,15 @@ "name": "param", "text": [ { - "text": "c", + "text": "d", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "this is optional param d", "kind": "text" } ] @@ -15773,19 +14367,24 @@ "name": "param", "text": [ { - "text": "d", + "text": "e", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "this is optional param e", "kind": "text" } ] }, - { - "name": "anotherTag" - }, { "name": "param", "text": [ { - "text": "e", + "text": "", "kind": "parameterName" }, { @@ -15793,18 +14392,15 @@ "kind": "space" }, { - "text": "LastParam", + "text": "{ () => string; } } f this is optional param f", "kind": "text" } ] - }, - { - "name": "anotherTag" } ] }, { - "name": "f1", + "name": "sum", "kind": "function", "kindModifiers": "", "sortText": "11", @@ -15818,7 +14414,7 @@ "kind": "space" }, { - "text": "f1", + "text": "sum", "kind": "functionName" }, { @@ -15842,11 +14438,7 @@ "kind": "keyword" }, { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", + "text": ",", "kind": "punctuation" }, { @@ -15854,45 +14446,62 @@ "kind": "space" }, { - "text": "any", - "kind": "keyword" + "text": "b", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "(", - "kind": "punctuation" + "text": "number", + "kind": "keyword" }, { - "text": "+", - "kind": "operator" + "text": ")", + "kind": "punctuation" }, { - "text": "1", - "kind": "numericLiteral" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "overload", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" + "text": "number", + "kind": "keyword" } ], "documentation": [ { - "text": "fn f1 with number", + "text": "Adds two integers and returns the result", "kind": "text" } ], "tags": [ + { + "name": "param", + "text": [ + { + "text": "a", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "first number", + "kind": "text" + } + ] + }, { "name": "param", "text": [ @@ -15905,7 +14514,7 @@ "kind": "space" }, { - "text": "about b", + "text": "second number", "kind": "text" } ] @@ -15913,13 +14522,13 @@ ] }, { - "name": "subtract", - "kind": "function", + "name": "x", + "kind": "var", "kindModifiers": "", "sortText": "11", "displayParts": [ { - "text": "function", + "text": "var", "kind": "keyword" }, { @@ -15927,16 +14536,8 @@ "kind": "space" }, { - "text": "subtract", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "a", - "kind": "parameterName" + "text": "x", + "kind": "localName" }, { "text": ":", @@ -15947,20 +14548,34 @@ "kind": "space" }, { - "text": "number", + "text": "any", "kind": "keyword" - }, + } + ], + "documentation": [ { - "text": ",", - "kind": "punctuation" + "text": "This is a comment", + "kind": "text" + } + ] + }, + { + "name": "y", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "b", - "kind": "parameterName" + "text": "y", + "kind": "localName" }, { "text": ":", @@ -15971,25 +14586,63 @@ "kind": "space" }, { - "text": "number", + "text": "any", "kind": "keyword" - }, + } + ], + "documentation": [ { - "text": ",", - "kind": "punctuation" + "text": "This is a comment", + "kind": "text" + } + ] + }, + { + "name": "Array", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "c", - "kind": "parameterName" + "text": "Array", + "kind": "localName" }, { - "text": "?", + "text": "<", + "kind": "punctuation" + }, + { + "text": "T", + "kind": "typeParameterName" + }, + { + "text": ">", "kind": "punctuation" }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Array", + "kind": "localName" + }, { "text": ":", "kind": "punctuation" @@ -15999,31 +14652,48 @@ "kind": "space" }, { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" + "text": "ArrayConstructor", + "kind": "interfaceName" + } + ], + "documentation": [] + }, + { + "name": "ArrayBuffer", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "ArrayBuffer", + "kind": "localName" }, { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, { - "text": "=>", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "ArrayBuffer", + "kind": "localName" }, { - "text": ",", + "text": ":", "kind": "punctuation" }, { @@ -16031,60 +14701,86 @@ "kind": "space" }, { - "text": "d", - "kind": "parameterName" - }, + "text": "ArrayBufferConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ { - "text": "?", - "kind": "punctuation" - }, + "text": "Represents a raw buffer of binary data, which is used to store data for the\r\ndifferent typed arrays. ArrayBuffers cannot be read from or written to directly,\r\nbut can be passed to a typed array or DataView Object to interpret the raw\r\nbuffer as needed.", + "kind": "text" + } + ] + }, + { + "name": "as", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": ":", - "kind": "punctuation" - }, + "text": "as", + "kind": "keyword" + } + ] + }, + { + "name": "async", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": " ", - "kind": "space" - }, + "text": "async", + "kind": "keyword" + } + ] + }, + { + "name": "await", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "(", - "kind": "punctuation" - }, + "text": "await", + "kind": "keyword" + } + ] + }, + { + "name": "Boolean", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { - "text": ")", - "kind": "punctuation" + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "=>", - "kind": "punctuation" + "text": "Boolean", + "kind": "localName" }, { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, { - "text": "string", + "text": "var", "kind": "keyword" }, - { - "text": ",", - "kind": "punctuation" - }, { "text": " ", "kind": "space" }, { - "text": "e", - "kind": "parameterName" - }, - { - "text": "?", - "kind": "punctuation" + "text": "Boolean", + "kind": "localName" }, { "text": ":", @@ -16095,44 +14791,117 @@ "kind": "space" }, { - "text": "(", - "kind": "punctuation" - }, + "text": "BooleanConstructor", + "kind": "interfaceName" + } + ], + "documentation": [] + }, + { + "name": "break", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": ")", - "kind": "punctuation" + "text": "break", + "kind": "keyword" + } + ] + }, + { + "name": "case", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "case", + "kind": "keyword" + } + ] + }, + { + "name": "catch", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "catch", + "kind": "keyword" + } + ] + }, + { + "name": "class", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + } + ] + }, + { + "name": "const", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + } + ] + }, + { + "name": "continue", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "continue", + "kind": "keyword" + } + ] + }, + { + "name": "DataView", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "=>", - "kind": "punctuation" + "text": "DataView", + "kind": "localName" }, { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, { - "text": "string", + "text": "var", "kind": "keyword" }, - { - "text": ",", - "kind": "punctuation" - }, { "text": " ", "kind": "space" }, { - "text": "f", - "kind": "parameterName" - }, - { - "text": "?", - "kind": "punctuation" + "text": "DataView", + "kind": "localName" }, { "text": ":", @@ -16143,32 +14912,45 @@ "kind": "space" }, { - "text": "(", - "kind": "punctuation" - }, + "text": "DataViewConstructor", + "kind": "interfaceName" + } + ], + "documentation": [] + }, + { + "name": "Date", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { - "text": ")", - "kind": "punctuation" + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "=>", - "kind": "punctuation" + "text": "Date", + "kind": "localName" }, { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, { - "text": "string", + "text": "var", "kind": "keyword" }, { - "text": ")", - "kind": "punctuation" + "text": " ", + "kind": "space" + }, + { + "text": "Date", + "kind": "localName" }, { "text": ":", @@ -16179,118 +14961,34 @@ "kind": "space" }, { - "text": "void", - "kind": "keyword" + "text": "DateConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "This is subtract function", + "text": "Enables basic storage and retrieval of dates and times.", "kind": "text" } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "b", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "this is about b", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "c", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "this is optional param c", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "d", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "this is optional param d", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "e", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "this is optional param e", - "kind": "text" - } - ] - }, + ] + }, + { + "name": "debugger", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "{ () => string; } } f this is optional param f", - "kind": "text" - } - ] + "text": "debugger", + "kind": "keyword" } ] }, { - "name": "square", + "name": "decodeURI", "kind": "function", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { "text": "function", @@ -16301,7 +14999,7 @@ "kind": "space" }, { - "text": "square", + "text": "decodeURI", "kind": "functionName" }, { @@ -16309,7 +15007,7 @@ "kind": "punctuation" }, { - "text": "a", + "text": "encodedURI", "kind": "parameterName" }, { @@ -16321,7 +15019,7 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" }, { @@ -16337,31 +15035,22 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" } ], "documentation": [ { - "text": "this is square function", + "text": "Gets the unencoded version of an encoded Uniform Resource Identifier (URI).", "kind": "text" } ], "tags": [ - { - "name": "paramTag", - "text": [ - { - "text": "{ number } a this is input number of paramTag", - "kind": "text" - } - ] - }, { "name": "param", "text": [ { - "text": "a", + "text": "encodedURI", "kind": "parameterName" }, { @@ -16369,16 +15058,7 @@ "kind": "space" }, { - "text": "this is input number", - "kind": "text" - } - ] - }, - { - "name": "returnType", - "text": [ - { - "text": "{ number } it is return type", + "text": "A value representing an encoded URI.", "kind": "text" } ] @@ -16386,10 +15066,10 @@ ] }, { - "name": "divide", + "name": "decodeURIComponent", "kind": "function", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { "text": "function", @@ -16400,7 +15080,7 @@ "kind": "space" }, { - "text": "divide", + "text": "decodeURIComponent", "kind": "functionName" }, { @@ -16408,31 +15088,7 @@ "kind": "punctuation" }, { - "text": "a", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": ",", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "b", + "text": "encodedURIComponent", "kind": "parameterName" }, { @@ -16444,7 +15100,7 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" }, { @@ -16460,13 +15116,13 @@ "kind": "space" }, { - "text": "void", + "text": "string", "kind": "keyword" } ], "documentation": [ { - "text": "this is divide function", + "text": "Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).", "kind": "text" } ], @@ -16475,7 +15131,7 @@ "name": "param", "text": [ { - "text": "a", + "text": "encodedURIComponent", "kind": "parameterName" }, { @@ -16483,44 +15139,66 @@ "kind": "space" }, { - "text": "this is a", + "text": "A value representing an encoded URI component.", "kind": "text" } ] - }, + } + ] + }, + { + "name": "default", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "paramTag", - "text": [ - { - "text": "{ number } g this is optional param g", - "kind": "text" - } - ] - }, + "text": "default", + "kind": "keyword" + } + ] + }, + { + "name": "delete", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "b", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "this is b", - "kind": "text" - } - ] + "text": "delete", + "kind": "keyword" + } + ] + }, + { + "name": "do", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "do", + "kind": "keyword" } ] }, { - "name": "fooBar", - "kind": "function", + "name": "else", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", + "displayParts": [ + { + "text": "else", + "kind": "keyword" + } + ] + }, + { + "name": "encodeURI", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { "text": "function", @@ -16531,7 +15209,7 @@ "kind": "space" }, { - "text": "fooBar", + "text": "encodeURI", "kind": "functionName" }, { @@ -16539,31 +15217,7 @@ "kind": "punctuation" }, { - "text": "foo", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": ",", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "bar", + "text": "uri", "kind": "parameterName" }, { @@ -16597,7 +15251,7 @@ ], "documentation": [ { - "text": "Function returns string concat of foo and bar", + "text": "Encodes a text string as a valid Uniform Resource Identifier (URI)", "kind": "text" } ], @@ -16606,24 +15260,7 @@ "name": "param", "text": [ { - "text": "foo", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "is string", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "bar", + "text": "uri", "kind": "parameterName" }, { @@ -16631,7 +15268,7 @@ "kind": "space" }, { - "text": "is second string", + "text": "A value representing an encoded URI.", "kind": "text" } ] @@ -16639,10 +15276,10 @@ ] }, { - "name": "jsDocParamTest", + "name": "encodeURIComponent", "kind": "function", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { "text": "function", @@ -16653,7 +15290,7 @@ "kind": "space" }, { - "text": "jsDocParamTest", + "text": "encodeURIComponent", "kind": "functionName" }, { @@ -16661,31 +15298,7 @@ "kind": "punctuation" }, { - "text": "a", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": ",", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "b", + "text": "uriComponent", "kind": "parameterName" }, { @@ -16697,23 +15310,15 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" }, - { - "text": ",", - "kind": "punctuation" - }, { "text": " ", "kind": "space" }, { - "text": "c", - "kind": "parameterName" - }, - { - "text": ":", + "text": "|", "kind": "punctuation" }, { @@ -16724,20 +15329,12 @@ "text": "number", "kind": "keyword" }, - { - "text": ",", - "kind": "punctuation" - }, { "text": " ", "kind": "space" }, { - "text": "d", - "kind": "parameterName" - }, - { - "text": ":", + "text": "|", "kind": "punctuation" }, { @@ -16745,7 +15342,7 @@ "kind": "space" }, { - "text": "number", + "text": "boolean", "kind": "keyword" }, { @@ -16761,13 +15358,13 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" } ], "documentation": [ { - "text": "this is jsdoc style function with param tag as well as inline parameter help", + "text": "Encodes a text string as a valid component of a Uniform Resource Identifier (URI).", "kind": "text" } ], @@ -16776,24 +15373,7 @@ "name": "param", "text": [ { - "text": "a", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "it is first parameter", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "c", + "text": "uriComponent", "kind": "parameterName" }, { @@ -16801,7 +15381,7 @@ "kind": "space" }, { - "text": "it is third parameter", + "text": "A value representing an encoded URI component.", "kind": "text" } ] @@ -16809,59 +15389,25 @@ ] }, { - "name": "jsDocCommentAlignmentTest1", - "kind": "function", + "name": "enum", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "jsDocCommentAlignmentTest1", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", + "text": "enum", "kind": "keyword" } - ], - "documentation": [ - { - "text": "This is function comment\nAnd properly aligned comment", - "kind": "text" - } ] }, { - "name": "jsDocCommentAlignmentTest2", - "kind": "function", - "kindModifiers": "", - "sortText": "11", + "name": "Error", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -16869,16 +15415,24 @@ "kind": "space" }, { - "text": "jsDocCommentAlignmentTest2", - "kind": "functionName" + "text": "Error", + "kind": "localName" }, { - "text": "(", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": ")", - "kind": "punctuation" + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Error", + "kind": "localName" }, { "text": ":", @@ -16889,22 +15443,17 @@ "kind": "space" }, { - "text": "void", - "kind": "keyword" + "text": "ErrorConstructor", + "kind": "interfaceName" } ], - "documentation": [ - { - "text": "This is function comment\n And aligned with 4 space char margin", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "jsDocCommentAlignmentTest3", + "name": "eval", "kind": "function", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { "text": "function", @@ -16915,7 +15464,7 @@ "kind": "space" }, { - "text": "jsDocCommentAlignmentTest3", + "text": "eval", "kind": "functionName" }, { @@ -16923,7 +15472,7 @@ "kind": "punctuation" }, { - "text": "a", + "text": "x", "kind": "parameterName" }, { @@ -16938,54 +15487,6 @@ "text": "string", "kind": "keyword" }, - { - "text": ",", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "b", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - }, - { - "text": ",", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "c", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - }, { "text": ")", "kind": "punctuation" @@ -16999,13 +15500,13 @@ "kind": "space" }, { - "text": "void", + "text": "any", "kind": "keyword" } ], "documentation": [ { - "text": "This is function comment\n And aligned with 4 space char margin", + "text": "Evaluates JavaScript code and executes it.", "kind": "text" } ], @@ -17014,41 +15515,7 @@ "name": "param", "text": [ { - "text": "a", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "this is info about a\nspanning on two lines and aligned perfectly", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "b", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "this is info about b\nspanning on two lines and aligned perfectly\nspanning one more line alined perfectly\n spanning another line with more margin", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "c", + "text": "x", "kind": "parameterName" }, { @@ -17056,7 +15523,7 @@ "kind": "space" }, { - "text": "this is info about b\nnot aligned text about parameter will eat only one space", + "text": "A String value that contains valid JavaScript code.", "kind": "text" } ] @@ -17064,11 +15531,27 @@ ] }, { - "name": "x", + "name": "EvalError", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "EvalError", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, { "text": "var", "kind": "keyword" @@ -17078,7 +15561,7 @@ "kind": "space" }, { - "text": "x", + "text": "EvalError", "kind": "localName" }, { @@ -17090,23 +15573,82 @@ "kind": "space" }, { - "text": "any", - "kind": "keyword" + "text": "EvalErrorConstructor", + "kind": "interfaceName" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "export", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "This is a comment", - "kind": "text" + "text": "export", + "kind": "keyword" } ] }, { - "name": "y", - "kind": "var", + "name": "extends", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", + "displayParts": [ + { + "text": "extends", + "kind": "keyword" + } + ] + }, + { + "name": "false", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "false", + "kind": "keyword" + } + ] + }, + { + "name": "finally", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "finally", + "kind": "keyword" + } + ] + }, + { + "name": "Float32Array", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Float32Array", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, { "text": "var", "kind": "keyword" @@ -17116,7 +15658,7 @@ "kind": "space" }, { - "text": "y", + "text": "Float32Array", "kind": "localName" }, { @@ -17128,25 +15670,25 @@ "kind": "space" }, { - "text": "any", - "kind": "keyword" + "text": "Float32ArrayConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "This is a comment", + "text": "A typed array of 32-bit float values. The contents are initialized to 0. If the requested number\r\nof bytes could not be allocated an exception is raised.", "kind": "text" } ] }, { - "name": "NoQuickInfoClass", - "kind": "class", - "kindModifiers": "", - "sortText": "11", + "name": "Float64Array", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "class", + "text": "interface", "kind": "keyword" }, { @@ -17154,18 +15696,13 @@ "kind": "space" }, { - "text": "NoQuickInfoClass", - "kind": "className" - } - ], - "documentation": [] - }, - { - "name": "undefined", - "kind": "var", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "Float64Array", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, { "text": "var", "kind": "keyword" @@ -17175,577 +15712,877 @@ "kind": "space" }, { - "text": "undefined", - "kind": "propertyName" - } - ], - "documentation": [] - }, - { - "name": "break", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "Float64Array", + "kind": "localName" + }, { - "text": "break", - "kind": "keyword" + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Float64ArrayConstructor", + "kind": "interfaceName" } - ] - }, - { - "name": "case", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "case", - "kind": "keyword" + "text": "A typed array of 64-bit float values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", + "kind": "text" } ] }, { - "name": "catch", + "name": "for", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "catch", + "text": "for", "kind": "keyword" } ] }, { - "name": "class", + "name": "function", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "class", + "text": "function", "kind": "keyword" } ] }, { - "name": "const", - "kind": "keyword", - "kindModifiers": "", + "name": "Function", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "const", + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Function", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Function", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "FunctionConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ + { + "text": "Creates a new function.", + "kind": "text" } ] }, { - "name": "continue", - "kind": "keyword", + "name": "globalThis", + "kind": "module", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "continue", + "text": "module", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "globalThis", + "kind": "moduleName" } - ] + ], + "documentation": [] }, { - "name": "debugger", + "name": "if", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "debugger", + "text": "if", "kind": "keyword" } ] }, { - "name": "default", + "name": "implements", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "default", + "text": "implements", "kind": "keyword" } ] }, { - "name": "delete", + "name": "import", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "delete", + "text": "import", "kind": "keyword" } ] }, { - "name": "do", + "name": "in", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "do", + "text": "in", "kind": "keyword" } ] }, { - "name": "else", - "kind": "keyword", - "kindModifiers": "", + "name": "Infinity", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "else", + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Infinity", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" } - ] + ], + "documentation": [] }, { - "name": "enum", + "name": "instanceof", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "enum", + "text": "instanceof", "kind": "keyword" } ] }, { - "name": "export", - "kind": "keyword", - "kindModifiers": "", + "name": "Int16Array", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "export", + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Int16Array", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Int16Array", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Int16ArrayConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ + { + "text": "A typed array of 16-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" } ] }, { - "name": "extends", - "kind": "keyword", - "kindModifiers": "", + "name": "Int32Array", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "extends", + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Int32Array", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Int32Array", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Int32ArrayConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ + { + "text": "A typed array of 32-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" } ] }, { - "name": "false", - "kind": "keyword", - "kindModifiers": "", + "name": "Int8Array", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "false", + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Int8Array", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Int8Array", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Int8ArrayConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ + { + "text": "A typed array of 8-bit integer values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", + "kind": "text" } ] }, { - "name": "finally", + "name": "interface", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "finally", + "text": "interface", "kind": "keyword" } ] }, { - "name": "for", - "kind": "keyword", - "kindModifiers": "", + "name": "Intl", + "kind": "module", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "for", + "text": "namespace", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Intl", + "kind": "moduleName" } - ] + ], + "documentation": [] }, { - "name": "function", - "kind": "keyword", - "kindModifiers": "", + "name": "isFinite", + "kind": "function", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { "text": "function", "kind": "keyword" - } - ] - }, - { - "name": "if", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "if", + "text": " ", + "kind": "space" + }, + { + "text": "isFinite", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "number", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" - } - ] - }, - { - "name": "import", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "import", + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "boolean", "kind": "keyword" } - ] - }, - { - "name": "in", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "in", - "kind": "keyword" + "text": "Determines whether a supplied number is finite.", + "kind": "text" } - ] - }, - { - "name": "instanceof", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "tags": [ { - "text": "instanceof", - "kind": "keyword" + "name": "param", + "text": [ + { + "text": "number", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Any numeric value.", + "kind": "text" + } + ] } ] }, { - "name": "new", - "kind": "keyword", - "kindModifiers": "", + "name": "isNaN", + "kind": "function", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "new", + "text": "function", "kind": "keyword" - } - ] - }, - { - "name": "null", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "null", + "text": " ", + "kind": "space" + }, + { + "text": "isNaN", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "number", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" - } - ] - }, - { - "name": "return", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "return", + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "boolean", "kind": "keyword" } - ] - }, - { - "name": "super", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "super", - "kind": "keyword" + "text": "Returns a Boolean value that indicates whether a value is the reserved value NaN (not a number).", + "kind": "text" } - ] - }, - { - "name": "switch", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "tags": [ { - "text": "switch", - "kind": "keyword" + "name": "param", + "text": [ + { + "text": "number", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A numeric value.", + "kind": "text" + } + ] } ] }, { - "name": "this", - "kind": "keyword", - "kindModifiers": "", + "name": "JSON", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "this", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "throw", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "throw", + "text": " ", + "kind": "space" + }, + { + "text": "JSON", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "JSON", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "JSON", + "kind": "localName" } - ] - }, - { - "name": "true", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "true", - "kind": "keyword" + "text": "An intrinsic object that provides functions to convert JavaScript values to and from the JavaScript Object Notation (JSON) format.", + "kind": "text" } ] }, { - "name": "try", + "name": "let", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "try", + "text": "let", "kind": "keyword" } ] }, { - "name": "typeof", - "kind": "keyword", - "kindModifiers": "", + "name": "Math", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "typeof", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "var", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Math", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, { "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Math", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Math", + "kind": "localName" } - ] - }, - { - "name": "void", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "void", - "kind": "keyword" + "text": "An intrinsic object that provides basic mathematics functionality and constants.", + "kind": "text" } ] }, { - "name": "while", - "kind": "keyword", - "kindModifiers": "", + "name": "NaN", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "while", + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "NaN", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" } - ] + ], + "documentation": [] }, { - "name": "with", + "name": "new", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "with", + "text": "new", "kind": "keyword" } ] }, { - "name": "implements", + "name": "null", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "implements", + "text": "null", "kind": "keyword" } ] }, { - "name": "interface", - "kind": "keyword", - "kindModifiers": "", + "name": "Number", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "let", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "let", + "text": " ", + "kind": "space" + }, + { + "text": "Number", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Number", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "NumberConstructor", + "kind": "interfaceName" } - ] - }, - { - "name": "package", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "package", - "kind": "keyword" + "text": "An object that represents a number of any kind. All JavaScript numbers are 64-bit floating-point numbers.", + "kind": "text" } ] }, { - "name": "yield", - "kind": "keyword", - "kindModifiers": "", + "name": "Object", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "yield", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "as", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "as", + "text": " ", + "kind": "space" + }, + { + "text": "Object", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Object", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "ObjectConstructor", + "kind": "interfaceName" } - ] - }, - { - "name": "async", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "async", - "kind": "keyword" + "text": "Provides functionality common to all JavaScript objects.", + "kind": "text" } ] }, { - "name": "await", + "name": "package", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "await", + "text": "package", "kind": "keyword" } ] - } - ] - } - }, - { - "marker": { - "fileName": "/tests/cases/fourslash/completionsCommentsCommentParsing.ts", - "position": 2390, - "name": "27" - }, - "completionList": { - "isGlobalCompletion": true, - "isMemberCompletion": false, - "isNewIdentifierLocation": false, - "entries": [ - { - "name": "globalThis", - "kind": "module", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "module", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "globalThis", - "kind": "moduleName" - } - ], - "documentation": [] }, { - "name": "eval", + "name": "parseFloat", "kind": "function", "kindModifiers": "declare", "sortText": "15", @@ -17759,7 +16596,7 @@ "kind": "space" }, { - "text": "eval", + "text": "parseFloat", "kind": "functionName" }, { @@ -17767,7 +16604,7 @@ "kind": "punctuation" }, { - "text": "x", + "text": "string", "kind": "parameterName" }, { @@ -17795,13 +16632,13 @@ "kind": "space" }, { - "text": "any", + "text": "number", "kind": "keyword" } ], "documentation": [ { - "text": "Evaluates JavaScript code and executes it.", + "text": "Converts a string to a floating-point number.", "kind": "text" } ], @@ -17810,7 +16647,7 @@ "name": "param", "text": [ { - "text": "x", + "text": "string", "kind": "parameterName" }, { @@ -17818,7 +16655,7 @@ "kind": "space" }, { - "text": "A String value that contains valid JavaScript code.", + "text": "A string that contains a floating-point number.", "kind": "text" } ] @@ -17952,13 +16789,172 @@ ] }, { - "name": "parseFloat", - "kind": "function", + "name": "RangeError", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "RangeError", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "RangeError", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "RangeErrorConstructor", + "kind": "interfaceName" + } + ], + "documentation": [] + }, + { + "name": "ReferenceError", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "ReferenceError", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "ReferenceError", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "ReferenceErrorConstructor", + "kind": "interfaceName" + } + ], + "documentation": [] + }, + { + "name": "RegExp", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "RegExp", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "RegExp", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "RegExpConstructor", + "kind": "interfaceName" + } + ], + "documentation": [] + }, + { + "name": "return", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "return", + "kind": "keyword" + } + ] + }, + { + "name": "String", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -17966,32 +16962,24 @@ "kind": "space" }, { - "text": "parseFloat", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" + "text": "String", + "kind": "localName" }, { - "text": "string", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "String", + "kind": "localName" }, { "text": ":", @@ -18002,44 +16990,49 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "StringConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "Converts a string to a floating-point number.", + "text": "Allows manipulation and formatting of text strings and determination and location of substrings within strings.", "kind": "text" } - ], - "tags": [ + ] + }, + { + "name": "super", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string that contains a floating-point number.", - "kind": "text" - } - ] + "text": "super", + "kind": "keyword" } ] }, { - "name": "isNaN", - "kind": "function", + "name": "switch", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "switch", + "kind": "keyword" + } + ] + }, + { + "name": "SyntaxError", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -18047,32 +17040,24 @@ "kind": "space" }, { - "text": "isNaN", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" + "text": "SyntaxError", + "kind": "localName" }, { - "text": "number", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "SyntaxError", + "kind": "localName" }, { "text": ":", @@ -18083,44 +17068,68 @@ "kind": "space" }, { - "text": "boolean", - "kind": "keyword" + "text": "SyntaxErrorConstructor", + "kind": "interfaceName" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "this", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "Returns a Boolean value that indicates whether a value is the reserved value NaN (not a number).", - "kind": "text" + "text": "this", + "kind": "keyword" } - ], - "tags": [ + ] + }, + { + "name": "throw", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "number", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A numeric value.", - "kind": "text" - } - ] + "text": "throw", + "kind": "keyword" } ] }, { - "name": "isFinite", - "kind": "function", + "name": "true", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "true", + "kind": "keyword" + } + ] + }, + { + "name": "try", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "try", + "kind": "keyword" + } + ] + }, + { + "name": "TypeError", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -18128,32 +17137,24 @@ "kind": "space" }, { - "text": "isFinite", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" + "text": "TypeError", + "kind": "localName" }, { - "text": "number", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "TypeError", + "kind": "localName" }, { "text": ":", @@ -18164,44 +17165,32 @@ "kind": "space" }, { - "text": "boolean", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Determines whether a supplied number is finite.", - "kind": "text" + "text": "TypeErrorConstructor", + "kind": "interfaceName" } ], - "tags": [ + "documentation": [] + }, + { + "name": "typeof", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "number", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Any numeric value.", - "kind": "text" - } - ] + "text": "typeof", + "kind": "keyword" } ] }, { - "name": "decodeURI", - "kind": "function", + "name": "Uint16Array", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -18209,32 +17198,24 @@ "kind": "space" }, { - "text": "decodeURI", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" + "text": "Uint16Array", + "kind": "localName" }, { - "text": "encodedURI", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "Uint16Array", + "kind": "localName" }, { "text": ":", @@ -18245,44 +17226,25 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "Uint16ArrayConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "Gets the unencoded version of an encoded Uniform Resource Identifier (URI).", + "text": "A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", "kind": "text" } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "encodedURI", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI.", - "kind": "text" - } - ] - } ] }, { - "name": "decodeURIComponent", - "kind": "function", + "name": "Uint32Array", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -18290,32 +17252,24 @@ "kind": "space" }, { - "text": "decodeURIComponent", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" + "text": "Uint32Array", + "kind": "localName" }, { - "text": "encodedURIComponent", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "Uint32Array", + "kind": "localName" }, { "text": ":", @@ -18326,44 +17280,25 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "Uint32ArrayConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).", + "text": "A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", "kind": "text" } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "encodedURIComponent", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI component.", - "kind": "text" - } - ] - } ] }, { - "name": "encodeURI", - "kind": "function", + "name": "Uint8Array", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -18371,32 +17306,24 @@ "kind": "space" }, { - "text": "encodeURI", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" + "text": "Uint8Array", + "kind": "localName" }, { - "text": "uri", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "Uint8Array", + "kind": "localName" }, { "text": ":", @@ -18407,44 +17334,25 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "Uint8ArrayConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "Encodes a text string as a valid Uniform Resource Identifier (URI)", + "text": "A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", "kind": "text" } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "uri", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI.", - "kind": "text" - } - ] - } ] }, { - "name": "encodeURIComponent", - "kind": "function", + "name": "Uint8ClampedArray", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -18452,16 +17360,24 @@ "kind": "space" }, { - "text": "encodeURIComponent", - "kind": "functionName" + "text": "Uint8ClampedArray", + "kind": "localName" }, { - "text": "(", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": "uriComponent", - "kind": "parameterName" + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint8ClampedArray", + "kind": "localName" }, { "text": ":", @@ -18472,7 +17388,25 @@ "kind": "space" }, { - "text": "string", + "text": "Uint8ClampedArrayConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ + { + "text": "A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0.\r\nIf the requested number of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] + }, + { + "name": "undefined", + "kind": "var", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "var", "kind": "keyword" }, { @@ -18480,15 +17414,36 @@ "kind": "space" }, { - "text": "|", - "kind": "punctuation" + "text": "undefined", + "kind": "propertyName" + } + ], + "documentation": [] + }, + { + "name": "URIError", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "number", + "text": "URIError", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" }, { @@ -18496,7 +17451,11 @@ "kind": "space" }, { - "text": "|", + "text": "URIError", + "kind": "localName" + }, + { + "text": ":", "kind": "punctuation" }, { @@ -18504,49 +17463,69 @@ "kind": "space" }, { - "text": "boolean", + "text": "URIErrorConstructor", + "kind": "interfaceName" + } + ], + "documentation": [] + }, + { + "name": "var", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + } + ] + }, + { + "name": "void", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "void", "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, + } + ] + }, + { + "name": "while", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "string", + "text": "while", "kind": "keyword" } - ], - "documentation": [ + ] + }, + { + "name": "with", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "Encodes a text string as a valid component of a Uniform Resource Identifier (URI).", - "kind": "text" + "text": "with", + "kind": "keyword" } - ], - "tags": [ + ] + }, + { + "name": "yield", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "uriComponent", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI component.", - "kind": "text" - } - ] + "text": "yield", + "kind": "keyword" } ] }, @@ -18554,7 +17533,7 @@ "name": "escape", "kind": "function", "kindModifiers": "deprecated,declare", - "sortText": "23", + "sortText": "z15", "displayParts": [ { "text": "function", @@ -18644,7 +17623,7 @@ "name": "unescape", "kind": "function", "kindModifiers": "deprecated,declare", - "sortText": "23", + "sortText": "z15", "displayParts": [ { "text": "function", @@ -18729,15 +17708,29 @@ ] } ] - }, + } + ] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/completionsCommentsCommentParsing.ts", + "position": 2390, + "name": "27" + }, + "completionList": { + "isGlobalCompletion": true, + "isMemberCompletion": false, + "isNewIdentifierLocation": false, + "entries": [ { - "name": "NaN", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "divide", + "kind": "function", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "var", + "text": "function", "kind": "keyword" }, { @@ -18745,8 +17738,16 @@ "kind": "space" }, { - "text": "NaN", - "kind": "localName" + "text": "divide", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "a", + "kind": "parameterName" }, { "text": ":", @@ -18759,27 +17760,18 @@ { "text": "number", "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "Infinity", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ + }, { - "text": "var", - "kind": "keyword" + "text": ",", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Infinity", - "kind": "localName" + "text": "b", + "kind": "parameterName" }, { "text": ":", @@ -18792,43 +17784,10 @@ { "text": "number", "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "Object", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Object", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" }, { - "text": "Object", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -18839,79 +17798,70 @@ "kind": "space" }, { - "text": "ObjectConstructor", - "kind": "interfaceName" + "text": "void", + "kind": "keyword" } ], "documentation": [ { - "text": "Provides functionality common to all JavaScript objects.", + "text": "this is divide function", "kind": "text" } - ] - }, - { - "name": "Function", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Function", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Function", - "kind": "localName" - }, + ], + "tags": [ { - "text": ":", - "kind": "punctuation" + "name": "param", + "text": [ + { + "text": "a", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "this is a", + "kind": "text" + } + ] }, { - "text": " ", - "kind": "space" + "name": "paramTag", + "text": [ + { + "text": "{ number } g this is optional param g", + "kind": "text" + } + ] }, { - "text": "FunctionConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "Creates a new function.", - "kind": "text" + "name": "param", + "text": [ + { + "text": "b", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "this is b", + "kind": "text" + } + ] } ] }, { - "name": "String", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "f1", + "kind": "function", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -18919,24 +17869,16 @@ "kind": "space" }, { - "text": "String", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": "f1", + "kind": "functionName" }, { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "String", - "kind": "localName" + "text": "a", + "kind": "parameterName" }, { "text": ":", @@ -18947,50 +17889,12 @@ "kind": "space" }, { - "text": "StringConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "Allows manipulation and formatting of text strings and determination and location of substrings within strings.", - "kind": "text" - } - ] - }, - { - "name": "Boolean", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Boolean", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", + "text": "number", "kind": "keyword" }, { - "text": " ", - "kind": "space" - }, - { - "text": "Boolean", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -19001,20 +17905,7 @@ "kind": "space" }, { - "text": "BooleanConstructor", - "kind": "interfaceName" - } - ], - "documentation": [] - }, - { - "name": "Number", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", + "text": "any", "kind": "keyword" }, { @@ -19022,53 +17913,64 @@ "kind": "space" }, { - "text": "Number", - "kind": "localName" + "text": "(", + "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": "+", + "kind": "operator" }, { - "text": "var", - "kind": "keyword" + "text": "1", + "kind": "numericLiteral" }, { "text": " ", "kind": "space" }, { - "text": "Number", - "kind": "localName" + "text": "overload", + "kind": "text" }, { - "text": ":", + "text": ")", "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "NumberConstructor", - "kind": "interfaceName" } ], "documentation": [ { - "text": "An object that represents a number of any kind. All JavaScript numbers are 64-bit floating-point numbers.", + "text": "fn f1 with number", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "b", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "about b", + "kind": "text" + } + ] + } ] }, { - "name": "Math", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "fooBar", + "kind": "function", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -19076,24 +17978,16 @@ "kind": "space" }, { - "text": "Math", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": "fooBar", + "kind": "functionName" }, { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "Math", - "kind": "localName" + "text": "foo", + "kind": "parameterName" }, { "text": ":", @@ -19104,50 +17998,36 @@ "kind": "space" }, { - "text": "Math", - "kind": "localName" - } - ], - "documentation": [ - { - "text": "An intrinsic object that provides basic mathematics functionality and constants.", - "kind": "text" - } - ] - }, - { - "name": "Date", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", + "text": "string", "kind": "keyword" }, { - "text": " ", - "kind": "space" + "text": ",", + "kind": "punctuation" }, { - "text": "Date", - "kind": "localName" + "text": " ", + "kind": "space" }, { - "text": "\n", - "kind": "lineBreak" + "text": "bar", + "kind": "parameterName" }, { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Date", - "kind": "localName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -19158,25 +18038,61 @@ "kind": "space" }, { - "text": "DateConstructor", - "kind": "interfaceName" + "text": "string", + "kind": "keyword" } ], "documentation": [ { - "text": "Enables basic storage and retrieval of dates and times.", + "text": "Function returns string concat of foo and bar", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "foo", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "is string", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "bar", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "is second string", + "kind": "text" + } + ] + } ] }, { - "name": "RegExp", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "jsDocCommentAlignmentTest1", + "kind": "function", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -19184,24 +18100,16 @@ "kind": "space" }, { - "text": "RegExp", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": "jsDocCommentAlignmentTest1", + "kind": "functionName" }, { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "RegExp", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -19212,20 +18120,25 @@ "kind": "space" }, { - "text": "RegExpConstructor", - "kind": "interfaceName" + "text": "void", + "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "This is function comment\nAnd properly aligned comment", + "kind": "text" + } + ] }, { - "name": "Error", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "jsDocCommentAlignmentTest2", + "kind": "function", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -19233,24 +18146,16 @@ "kind": "space" }, { - "text": "Error", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": "jsDocCommentAlignmentTest2", + "kind": "functionName" }, { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "Error", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -19261,20 +18166,25 @@ "kind": "space" }, { - "text": "ErrorConstructor", - "kind": "interfaceName" + "text": "void", + "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "This is function comment\n And aligned with 4 space char margin", + "kind": "text" + } + ] }, { - "name": "EvalError", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "jsDocCommentAlignmentTest3", + "kind": "function", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -19282,24 +18192,16 @@ "kind": "space" }, { - "text": "EvalError", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": "jsDocCommentAlignmentTest3", + "kind": "functionName" }, { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "EvalError", - "kind": "localName" + "text": "a", + "kind": "parameterName" }, { "text": ":", @@ -19310,48 +18212,35 @@ "kind": "space" }, { - "text": "EvalErrorConstructor", - "kind": "interfaceName" - } - ], - "documentation": [] - }, - { - "name": "RangeError", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", + "text": "string", "kind": "keyword" }, { - "text": " ", - "kind": "space" + "text": ",", + "kind": "punctuation" }, { - "text": "RangeError", - "kind": "localName" + "text": " ", + "kind": "space" }, { - "text": "\n", - "kind": "lineBreak" + "text": "b", + "kind": "parameterName" }, { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "RangeError", - "kind": "localName" + "text": "any", + "kind": "keyword" }, { - "text": ":", + "text": ",", "kind": "punctuation" }, { @@ -19359,69 +18248,106 @@ "kind": "space" }, { - "text": "RangeErrorConstructor", - "kind": "interfaceName" - } - ], - "documentation": [] - }, - { - "name": "ReferenceError", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ + "text": "c", + "kind": "parameterName" + }, { - "text": "interface", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "ReferenceError", - "kind": "localName" + "text": "any", + "kind": "keyword" }, { - "text": "\n", - "kind": "lineBreak" + "text": ")", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "ReferenceError", - "kind": "localName" - }, + "text": "void", + "kind": "keyword" + } + ], + "documentation": [ { - "text": ":", - "kind": "punctuation" + "text": "This is function comment\n And aligned with 4 space char margin", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "a", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "this is info about a\nspanning on two lines and aligned perfectly", + "kind": "text" + } + ] }, { - "text": " ", - "kind": "space" + "name": "param", + "text": [ + { + "text": "b", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "this is info about b\nspanning on two lines and aligned perfectly\nspanning one more line alined perfectly\n spanning another line with more margin", + "kind": "text" + } + ] }, { - "text": "ReferenceErrorConstructor", - "kind": "interfaceName" + "name": "param", + "text": [ + { + "text": "c", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "this is info about b\nnot aligned text about parameter will eat only one space", + "kind": "text" + } + ] } - ], - "documentation": [] + ] }, { - "name": "SyntaxError", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "jsDocMixedComments1", + "kind": "function", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -19429,24 +18355,16 @@ "kind": "space" }, { - "text": "SyntaxError", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": "jsDocMixedComments1", + "kind": "functionName" }, { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "SyntaxError", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -19457,20 +18375,25 @@ "kind": "space" }, { - "text": "SyntaxErrorConstructor", - "kind": "interfaceName" + "text": "void", + "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "jsdoc comment", + "kind": "text" + } + ] }, { - "name": "TypeError", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "jsDocMixedComments2", + "kind": "function", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -19478,24 +18401,16 @@ "kind": "space" }, { - "text": "TypeError", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": "jsDocMixedComments2", + "kind": "functionName" }, { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "TypeError", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -19506,20 +18421,25 @@ "kind": "space" }, { - "text": "TypeErrorConstructor", - "kind": "interfaceName" + "text": "void", + "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "another jsDocComment", + "kind": "text" + } + ] }, { - "name": "URIError", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "jsDocMixedComments3", + "kind": "function", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -19527,24 +18447,16 @@ "kind": "space" }, { - "text": "URIError", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": "jsDocMixedComments3", + "kind": "functionName" }, { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "URIError", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -19555,20 +18467,25 @@ "kind": "space" }, { - "text": "URIErrorConstructor", - "kind": "interfaceName" + "text": "void", + "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "* triplestar jsDocComment", + "kind": "text" + } + ] }, { - "name": "JSON", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "jsDocMixedComments4", + "kind": "function", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -19576,24 +18493,16 @@ "kind": "space" }, { - "text": "JSON", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": "jsDocMixedComments4", + "kind": "functionName" }, { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "JSON", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -19604,25 +18513,25 @@ "kind": "space" }, { - "text": "JSON", - "kind": "localName" + "text": "void", + "kind": "keyword" } ], "documentation": [ { - "text": "An intrinsic object that provides functions to convert JavaScript values to and from the JavaScript Object Notation (JSON) format.", + "text": "another jsDocComment", "kind": "text" } ] }, { - "name": "Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "jsDocMixedComments5", + "kind": "function", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -19630,37 +18539,17 @@ "kind": "space" }, { - "text": "Array", - "kind": "localName" + "text": "jsDocMixedComments5", + "kind": "functionName" }, { - "text": "<", + "text": "(", "kind": "punctuation" }, { - "text": "T", - "kind": "typeParameterName" - }, - { - "text": ">", + "text": ")", "kind": "punctuation" }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Array", - "kind": "localName" - }, { "text": ":", "kind": "punctuation" @@ -19670,20 +18559,25 @@ "kind": "space" }, { - "text": "ArrayConstructor", - "kind": "interfaceName" + "text": "void", + "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "another jsDocComment", + "kind": "text" + } + ] }, { - "name": "ArrayBuffer", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "jsDocMixedComments6", + "kind": "function", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -19691,24 +18585,16 @@ "kind": "space" }, { - "text": "ArrayBuffer", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": "jsDocMixedComments6", + "kind": "functionName" }, { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "ArrayBuffer", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -19719,41 +18605,25 @@ "kind": "space" }, { - "text": "ArrayBufferConstructor", - "kind": "interfaceName" + "text": "void", + "kind": "keyword" } ], "documentation": [ { - "text": "Represents a raw buffer of binary data, which is used to store data for the\r\ndifferent typed arrays. ArrayBuffers cannot be read from or written to directly,\r\nbut can be passed to a typed array or DataView Object to interpret the raw\r\nbuffer as needed.", + "text": "jsdoc comment", "kind": "text" } ] }, { - "name": "DataView", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "DataView", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, + "name": "jsDocMultiLine", + "kind": "function", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { - "text": "var", + "text": "function", "kind": "keyword" }, { @@ -19761,8 +18631,16 @@ "kind": "space" }, { - "text": "DataView", - "kind": "localName" + "text": "jsDocMultiLine", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -19773,20 +18651,25 @@ "kind": "space" }, { - "text": "DataViewConstructor", - "kind": "interfaceName" + "text": "void", + "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "this is multiple line jsdoc stule comment\nNew line1\nNew Line2", + "kind": "text" + } + ] }, { - "name": "Int8Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "jsDocMultiLineMerge", + "kind": "function", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -19794,24 +18677,16 @@ "kind": "space" }, { - "text": "Int8Array", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": "jsDocMultiLineMerge", + "kind": "functionName" }, { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "Int8Array", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -19822,25 +18697,25 @@ "kind": "space" }, { - "text": "Int8ArrayConstructor", - "kind": "interfaceName" + "text": "void", + "kind": "keyword" } ], "documentation": [ { - "text": "A typed array of 8-bit integer values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", + "text": "Another this one too", "kind": "text" } ] }, { - "name": "Uint8Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "jsDocParamTest", + "kind": "function", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -19848,27 +18723,31 @@ "kind": "space" }, { - "text": "Uint8Array", - "kind": "localName" + "text": "jsDocParamTest", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "a", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Uint8Array", - "kind": "localName" + "text": "number", + "kind": "keyword" }, { - "text": ":", + "text": ",", "kind": "punctuation" }, { @@ -19876,50 +18755,32 @@ "kind": "space" }, { - "text": "Uint8ArrayConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] - }, - { - "name": "Uint8ClampedArray", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ + "text": "b", + "kind": "parameterName" + }, { - "text": "interface", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Uint8ClampedArray", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" + "text": "number", + "kind": "keyword" }, { - "text": "var", - "kind": "keyword" + "text": ",", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Uint8ClampedArray", - "kind": "localName" + "text": "c", + "kind": "parameterName" }, { "text": ":", @@ -19930,50 +18791,36 @@ "kind": "space" }, { - "text": "Uint8ClampedArrayConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0.\r\nIf the requested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] - }, - { - "name": "Int16Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", + "text": "number", "kind": "keyword" }, { - "text": " ", - "kind": "space" + "text": ",", + "kind": "punctuation" }, { - "text": "Int16Array", - "kind": "localName" + "text": " ", + "kind": "space" }, { - "text": "\n", - "kind": "lineBreak" + "text": "d", + "kind": "parameterName" }, { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Int16Array", - "kind": "localName" + "text": "number", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -19984,25 +18831,61 @@ "kind": "space" }, { - "text": "Int16ArrayConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], "documentation": [ { - "text": "A typed array of 16-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "text": "this is jsdoc style function with param tag as well as inline parameter help", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "a", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "it is first parameter", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "c", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "it is third parameter", + "kind": "text" + } + ] + } ] }, { - "name": "Uint16Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "jsDocSingleLine", + "kind": "function", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -20010,24 +18893,16 @@ "kind": "space" }, { - "text": "Uint16Array", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": "jsDocSingleLine", + "kind": "functionName" }, { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "Uint16Array", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -20038,25 +18913,25 @@ "kind": "space" }, { - "text": "Uint16ArrayConstructor", - "kind": "interfaceName" + "text": "void", + "kind": "keyword" } ], "documentation": [ { - "text": "A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "text": "this is eg of single line jsdoc style comment", "kind": "text" } ] }, { - "name": "Int32Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "multiLine", + "kind": "function", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -20064,24 +18939,16 @@ "kind": "space" }, { - "text": "Int32Array", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": "multiLine", + "kind": "functionName" }, { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "Int32Array", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -20092,25 +18959,20 @@ "kind": "space" }, { - "text": "Int32ArrayConstructor", - "kind": "interfaceName" + "text": "void", + "kind": "keyword" } ], - "documentation": [ - { - "text": "A typed array of 32-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "Uint32Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "multiply", + "kind": "function", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -20118,27 +18980,31 @@ "kind": "space" }, { - "text": "Uint32Array", - "kind": "localName" + "text": "multiply", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "a", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Uint32Array", - "kind": "localName" + "text": "number", + "kind": "keyword" }, { - "text": ":", + "text": ",", "kind": "punctuation" }, { @@ -20146,53 +19012,51 @@ "kind": "space" }, { - "text": "Uint32ArrayConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ + "text": "b", + "kind": "parameterName" + }, { - "text": "A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] - }, - { - "name": "Float32Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ + "text": ":", + "kind": "punctuation" + }, { - "text": "interface", + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" }, + { + "text": ",", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "Float32Array", - "kind": "localName" + "text": "c", + "kind": "parameterName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "?", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Float32Array", - "kind": "localName" + "text": "number", + "kind": "keyword" }, { - "text": ":", + "text": ",", "kind": "punctuation" }, { @@ -20200,50 +19064,56 @@ "kind": "space" }, { - "text": "Float32ArrayConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ + "text": "d", + "kind": "parameterName" + }, { - "text": "A typed array of 32-bit float values. The contents are initialized to 0. If the requested number\r\nof bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] - }, - { - "name": "Float64Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ + "text": "?", + "kind": "punctuation" + }, { - "text": "interface", + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", "kind": "keyword" }, + { + "text": ",", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "Float64Array", - "kind": "localName" + "text": "e", + "kind": "parameterName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "?", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Float64Array", - "kind": "localName" + "text": "any", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -20254,40 +19124,97 @@ "kind": "space" }, { - "text": "Float64ArrayConstructor", - "kind": "interfaceName" + "text": "void", + "kind": "keyword" } ], "documentation": [ { - "text": "A typed array of 64-bit float values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", + "text": "This is multiplication function", "kind": "text" } - ] - }, - { - "name": "Intl", - "kind": "module", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ + ], + "tags": [ { - "text": "namespace", - "kind": "keyword" + "name": "param", + "text": [ + { + "text": "", + "kind": "text" + } + ] }, { - "text": " ", - "kind": "space" + "name": "param", + "text": [ + { + "text": "a", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "first number", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "b", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "c", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "d", + "kind": "text" + } + ] + }, + { + "name": "anotherTag" + }, + { + "name": "param", + "text": [ + { + "text": "e", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "LastParam", + "kind": "text" + } + ] }, { - "text": "Intl", - "kind": "moduleName" + "name": "anotherTag" } - ], - "documentation": [] + ] }, { - "name": "simple", + "name": "noHelpComment1", "kind": "function", "kindModifiers": "", "sortText": "11", @@ -20301,7 +19228,7 @@ "kind": "space" }, { - "text": "simple", + "text": "noHelpComment1", "kind": "functionName" }, { @@ -20328,7 +19255,7 @@ "documentation": [] }, { - "name": "multiLine", + "name": "noHelpComment2", "kind": "function", "kindModifiers": "", "sortText": "11", @@ -20342,7 +19269,7 @@ "kind": "space" }, { - "text": "multiLine", + "text": "noHelpComment2", "kind": "functionName" }, { @@ -20369,7 +19296,7 @@ "documentation": [] }, { - "name": "jsDocSingleLine", + "name": "noHelpComment3", "kind": "function", "kindModifiers": "", "sortText": "11", @@ -20383,7 +19310,7 @@ "kind": "space" }, { - "text": "jsDocSingleLine", + "text": "noHelpComment3", "kind": "functionName" }, { @@ -20407,15 +19334,31 @@ "kind": "keyword" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "NoQuickInfoClass", + "kind": "class", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { - "text": "this is eg of single line jsdoc style comment", - "kind": "text" + "text": "class", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "NoQuickInfoClass", + "kind": "className" } - ] + ], + "documentation": [] }, { - "name": "jsDocMultiLine", + "name": "simple", "kind": "function", "kindModifiers": "", "sortText": "11", @@ -20429,7 +19372,7 @@ "kind": "space" }, { - "text": "jsDocMultiLine", + "text": "simple", "kind": "functionName" }, { @@ -20453,15 +19396,10 @@ "kind": "keyword" } ], - "documentation": [ - { - "text": "this is multiple line jsdoc stule comment\nNew line1\nNew Line2", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "jsDocMultiLineMerge", + "name": "square", "kind": "function", "kindModifiers": "", "sortText": "11", @@ -20475,13 +19413,29 @@ "kind": "space" }, { - "text": "jsDocMultiLineMerge", + "text": "square", "kind": "functionName" }, { "text": "(", "kind": "punctuation" }, + { + "text": "a", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, { "text": ")", "kind": "punctuation" @@ -20495,19 +19449,56 @@ "kind": "space" }, { - "text": "void", + "text": "number", "kind": "keyword" } ], "documentation": [ { - "text": "Another this one too", + "text": "this is square function", "kind": "text" } + ], + "tags": [ + { + "name": "paramTag", + "text": [ + { + "text": "{ number } a this is input number of paramTag", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "a", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "this is input number", + "kind": "text" + } + ] + }, + { + "name": "returnType", + "text": [ + { + "text": "{ number } it is return type", + "kind": "text" + } + ] + } ] }, { - "name": "jsDocMixedComments1", + "name": "subtract", "kind": "function", "kindModifiers": "", "sortText": "11", @@ -20521,7 +19512,7 @@ "kind": "space" }, { - "text": "jsDocMixedComments1", + "text": "subtract", "kind": "functionName" }, { @@ -20529,8 +19520,8 @@ "kind": "punctuation" }, { - "text": ")", - "kind": "punctuation" + "text": "a", + "kind": "parameterName" }, { "text": ":", @@ -20541,34 +19532,56 @@ "kind": "space" }, { - "text": "void", + "text": "number", "kind": "keyword" - } - ], - "documentation": [ + }, { - "text": "jsdoc comment", - "kind": "text" - } - ] - }, - { - "name": "jsDocMixedComments2", - "kind": "function", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ + "text": ",", + "kind": "punctuation" + }, { - "text": "function", + "text": " ", + "kind": "space" + }, + { + "text": "b", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" }, + { + "text": ",", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "jsDocMixedComments2", - "kind": "functionName" + "text": "c", + "kind": "parameterName" + }, + { + "text": "?", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" }, { "text": "(", @@ -20578,6 +19591,38 @@ "text": ")", "kind": "punctuation" }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": ",", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "d", + "kind": "parameterName" + }, + { + "text": "?", + "kind": "punctuation" + }, { "text": ":", "kind": "punctuation" @@ -20587,34 +19632,100 @@ "kind": "space" }, { - "text": "void", + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", "kind": "keyword" - } - ], - "documentation": [ + }, { - "text": "another jsDocComment", - "kind": "text" - } - ] - }, - { - "name": "jsDocMixedComments3", - "kind": "function", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ + "text": ",", + "kind": "punctuation" + }, { - "text": "function", + "text": " ", + "kind": "space" + }, + { + "text": "e", + "kind": "parameterName" + }, + { + "text": "?", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", "kind": "keyword" }, + { + "text": ",", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "jsDocMixedComments3", - "kind": "functionName" + "text": "f", + "kind": "parameterName" + }, + { + "text": "?", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" }, { "text": "(", @@ -20624,6 +19735,26 @@ "text": ")", "kind": "punctuation" }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, { "text": ":", "kind": "punctuation" @@ -20639,13 +19770,109 @@ ], "documentation": [ { - "text": "* triplestar jsDocComment", + "text": "This is subtract function", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "b", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "this is about b", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "c", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "this is optional param c", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "d", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "this is optional param d", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "e", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "this is optional param e", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "{ () => string; } } f this is optional param f", + "kind": "text" + } + ] + } ] }, { - "name": "jsDocMixedComments4", + "name": "sum", "kind": "function", "kindModifiers": "", "sortText": "11", @@ -20659,13 +19886,53 @@ "kind": "space" }, { - "text": "jsDocMixedComments4", + "text": "sum", "kind": "functionName" }, { "text": "(", "kind": "punctuation" }, + { + "text": "a", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": ",", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "b", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, { "text": ")", "kind": "punctuation" @@ -20679,25 +19946,61 @@ "kind": "space" }, { - "text": "void", + "text": "number", "kind": "keyword" } ], "documentation": [ { - "text": "another jsDocComment", - "kind": "text" + "text": "Adds two integers and returns the result", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "a", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "first number", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "b", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "second number", + "kind": "text" + } + ] } ] }, { - "name": "jsDocMixedComments5", - "kind": "function", + "name": "x", + "kind": "var", "kindModifiers": "", "sortText": "11", "displayParts": [ { - "text": "function", + "text": "var", "kind": "keyword" }, { @@ -20705,16 +20008,8 @@ "kind": "space" }, { - "text": "jsDocMixedComments5", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" + "text": "x", + "kind": "localName" }, { "text": ":", @@ -20725,25 +20020,25 @@ "kind": "space" }, { - "text": "void", + "text": "any", "kind": "keyword" } ], "documentation": [ { - "text": "another jsDocComment", + "text": "This is a comment", "kind": "text" } ] }, { - "name": "jsDocMixedComments6", - "kind": "function", + "name": "y", + "kind": "var", "kindModifiers": "", "sortText": "11", "displayParts": [ { - "text": "function", + "text": "var", "kind": "keyword" }, { @@ -20751,16 +20046,8 @@ "kind": "space" }, { - "text": "jsDocMixedComments6", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" + "text": "y", + "kind": "localName" }, { "text": ":", @@ -20771,25 +20058,49 @@ "kind": "space" }, { - "text": "void", + "text": "any", "kind": "keyword" } ], "documentation": [ { - "text": "jsdoc comment", + "text": "This is a comment", "kind": "text" } ] }, { - "name": "noHelpComment1", - "kind": "function", + "name": "abstract", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "function", + "text": "abstract", + "kind": "keyword" + } + ] + }, + { + "name": "any", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "any", + "kind": "keyword" + } + ] + }, + { + "name": "Array", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", "kind": "keyword" }, { @@ -20797,40 +20108,27 @@ "kind": "space" }, { - "text": "noHelpComment1", - "kind": "functionName" + "text": "Array", + "kind": "localName" }, { - "text": "(", + "text": "<", "kind": "punctuation" }, { - "text": ")", - "kind": "punctuation" + "text": "T", + "kind": "typeParameterName" }, { - "text": ":", + "text": ">", "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, { - "text": "void", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "noHelpComment2", - "kind": "function", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "function", + "text": "var", "kind": "keyword" }, { @@ -20838,16 +20136,8 @@ "kind": "space" }, { - "text": "noHelpComment2", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" + "text": "Array", + "kind": "localName" }, { "text": ":", @@ -20858,20 +20148,20 @@ "kind": "space" }, { - "text": "void", - "kind": "keyword" + "text": "ArrayConstructor", + "kind": "interfaceName" } ], "documentation": [] }, { - "name": "noHelpComment3", - "kind": "function", - "kindModifiers": "", - "sortText": "11", + "name": "ArrayBuffer", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -20879,16 +20169,24 @@ "kind": "space" }, { - "text": "noHelpComment3", - "kind": "functionName" + "text": "ArrayBuffer", + "kind": "localName" }, { - "text": "(", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": ")", - "kind": "punctuation" + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "ArrayBuffer", + "kind": "localName" }, { "text": ":", @@ -20899,77 +20197,122 @@ "kind": "space" }, { - "text": "void", - "kind": "keyword" + "text": "ArrayBufferConstructor", + "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "Represents a raw buffer of binary data, which is used to store data for the\r\ndifferent typed arrays. ArrayBuffers cannot be read from or written to directly,\r\nbut can be passed to a typed array or DataView Object to interpret the raw\r\nbuffer as needed.", + "kind": "text" + } + ] }, { - "name": "sum", - "kind": "function", + "name": "as", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "function", + "text": "as", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "sum", - "kind": "functionName" - }, + } + ] + }, + { + "name": "asserts", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "(", - "kind": "punctuation" - }, + "text": "asserts", + "kind": "keyword" + } + ] + }, + { + "name": "async", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "a", - "kind": "parameterName" - }, + "text": "async", + "kind": "keyword" + } + ] + }, + { + "name": "await", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": ":", - "kind": "punctuation" - }, + "text": "await", + "kind": "keyword" + } + ] + }, + { + "name": "bigint", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": " ", - "kind": "space" - }, + "text": "bigint", + "kind": "keyword" + } + ] + }, + { + "name": "boolean", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "number", + "text": "boolean", "kind": "keyword" - }, + } + ] + }, + { + "name": "Boolean", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { - "text": ",", - "kind": "punctuation" + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "b", - "kind": "parameterName" + "text": "Boolean", + "kind": "localName" }, { - "text": ":", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": " ", - "kind": "space" + "text": "var", + "kind": "keyword" }, { - "text": "number", - "kind": "keyword" + "text": " ", + "kind": "space" }, { - "text": ")", - "kind": "punctuation" + "text": "Boolean", + "kind": "localName" }, { "text": ":", @@ -20980,102 +20323,117 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "BooleanConstructor", + "kind": "interfaceName" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "break", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "Adds two integers and returns the result", - "kind": "text" + "text": "break", + "kind": "keyword" } - ], - "tags": [ + ] + }, + { + "name": "case", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "a", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "first number", - "kind": "text" - } - ] - }, + "text": "case", + "kind": "keyword" + } + ] + }, + { + "name": "catch", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "b", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "second number", - "kind": "text" - } - ] + "text": "catch", + "kind": "keyword" } ] }, { - "name": "multiply", - "kind": "function", + "name": "class", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "function", + "text": "class", "kind": "keyword" - }, + } + ] + }, + { + "name": "const", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": " ", - "kind": "space" - }, + "text": "const", + "kind": "keyword" + } + ] + }, + { + "name": "continue", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "multiply", - "kind": "functionName" - }, + "text": "continue", + "kind": "keyword" + } + ] + }, + { + "name": "DataView", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { - "text": "(", - "kind": "punctuation" + "text": "interface", + "kind": "keyword" }, { - "text": "a", - "kind": "parameterName" + "text": " ", + "kind": "space" }, { - "text": ":", - "kind": "punctuation" + "text": "DataView", + "kind": "localName" }, { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, { - "text": "number", + "text": "var", "kind": "keyword" }, - { - "text": ",", - "kind": "punctuation" - }, { "text": " ", "kind": "space" }, { - "text": "b", - "kind": "parameterName" + "text": "DataView", + "kind": "localName" }, { "text": ":", @@ -21086,39 +20444,48 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" - }, + "text": "DataViewConstructor", + "kind": "interfaceName" + } + ], + "documentation": [] + }, + { + "name": "Date", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { - "text": ",", - "kind": "punctuation" + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "c", - "kind": "parameterName" + "text": "Date", + "kind": "localName" }, { - "text": "?", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "Date", + "kind": "localName" }, { - "text": ",", + "text": ":", "kind": "punctuation" }, { @@ -21126,41 +20493,67 @@ "kind": "space" }, { - "text": "d", - "kind": "parameterName" - }, + "text": "DateConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ + { + "text": "Enables basic storage and retrieval of dates and times.", + "kind": "text" + } + ] + }, + { + "name": "debugger", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "debugger", + "kind": "keyword" + } + ] + }, + { + "name": "declare", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "?", - "kind": "punctuation" - }, + "text": "declare", + "kind": "keyword" + } + ] + }, + { + "name": "decodeURI", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { - "text": ":", - "kind": "punctuation" + "text": "function", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "any", - "kind": "keyword" + "text": "decodeURI", + "kind": "functionName" }, { - "text": ",", + "text": "(", "kind": "punctuation" }, { - "text": " ", - "kind": "space" - }, - { - "text": "e", + "text": "encodedURI", "kind": "parameterName" }, - { - "text": "?", - "kind": "punctuation" - }, { "text": ":", "kind": "punctuation" @@ -21170,7 +20563,7 @@ "kind": "space" }, { - "text": "any", + "text": "string", "kind": "keyword" }, { @@ -21186,13 +20579,13 @@ "kind": "space" }, { - "text": "void", + "text": "string", "kind": "keyword" } ], "documentation": [ { - "text": "This is multiplication function", + "text": "Gets the unencoded version of an encoded Uniform Resource Identifier (URI).", "kind": "text" } ], @@ -21201,63 +20594,7 @@ "name": "param", "text": [ { - "text": "", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "a", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "first number", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "b", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "c", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "d", - "kind": "text" - } - ] - }, - { - "name": "anotherTag" - }, - { - "name": "param", - "text": [ - { - "text": "e", + "text": "encodedURI", "kind": "parameterName" }, { @@ -21265,21 +20602,18 @@ "kind": "space" }, { - "text": "LastParam", + "text": "A value representing an encoded URI.", "kind": "text" } ] - }, - { - "name": "anotherTag" } ] }, { - "name": "f1", + "name": "decodeURIComponent", "kind": "function", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { "text": "function", @@ -21290,7 +20624,7 @@ "kind": "space" }, { - "text": "f1", + "text": "decodeURIComponent", "kind": "functionName" }, { @@ -21298,7 +20632,7 @@ "kind": "punctuation" }, { - "text": "a", + "text": "encodedURIComponent", "kind": "parameterName" }, { @@ -21310,7 +20644,7 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" }, { @@ -21326,41 +20660,13 @@ "kind": "space" }, { - "text": "any", + "text": "string", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "+", - "kind": "operator" - }, - { - "text": "1", - "kind": "numericLiteral" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "overload", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" } ], "documentation": [ { - "text": "fn f1 with number", + "text": "Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).", "kind": "text" } ], @@ -21369,7 +20675,7 @@ "name": "param", "text": [ { - "text": "b", + "text": "encodedURIComponent", "kind": "parameterName" }, { @@ -21377,7 +20683,7 @@ "kind": "space" }, { - "text": "about b", + "text": "A value representing an encoded URI component.", "kind": "text" } ] @@ -21385,131 +20691,79 @@ ] }, { - "name": "subtract", - "kind": "function", + "name": "default", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "function", + "text": "default", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "subtract", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "a", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, + } + ] + }, + { + "name": "delete", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "number", + "text": "delete", "kind": "keyword" - }, - { - "text": ",", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "b", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, + } + ] + }, + { + "name": "do", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": " ", - "kind": "space" - }, + "text": "do", + "kind": "keyword" + } + ] + }, + { + "name": "else", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "number", + "text": "else", "kind": "keyword" - }, + } + ] + }, + { + "name": "encodeURI", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { - "text": ",", - "kind": "punctuation" + "text": "function", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "c", - "kind": "parameterName" - }, - { - "text": "?", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "encodeURI", + "kind": "functionName" }, { "text": "(", "kind": "punctuation" }, { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=>", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": ",", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "d", + "text": "uri", "kind": "parameterName" }, - { - "text": "?", - "kind": "punctuation" - }, { "text": ":", "kind": "punctuation" @@ -21519,19 +20773,15 @@ "kind": "space" }, { - "text": "(", - "kind": "punctuation" + "text": "string", + "kind": "keyword" }, { "text": ")", "kind": "punctuation" }, { - "text": " ", - "kind": "space" - }, - { - "text": "=>", + "text": ":", "kind": "punctuation" }, { @@ -21541,45 +20791,62 @@ { "text": "string", "kind": "keyword" - }, - { - "text": ",", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, + } + ], + "documentation": [ { - "text": "e", - "kind": "parameterName" - }, + "text": "Encodes a text string as a valid Uniform Resource Identifier (URI)", + "kind": "text" + } + ], + "tags": [ { - "text": "?", - "kind": "punctuation" - }, + "name": "param", + "text": [ + { + "text": "uri", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI.", + "kind": "text" + } + ] + } + ] + }, + { + "name": "encodeURIComponent", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { - "text": ":", - "kind": "punctuation" + "text": "function", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "(", - "kind": "punctuation" + "text": "encodeURIComponent", + "kind": "functionName" }, { - "text": ")", + "text": "(", "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "uriComponent", + "kind": "parameterName" }, { - "text": "=>", + "text": ":", "kind": "punctuation" }, { @@ -21590,24 +20857,12 @@ "text": "string", "kind": "keyword" }, - { - "text": ",", - "kind": "punctuation" - }, { "text": " ", "kind": "space" }, { - "text": "f", - "kind": "parameterName" - }, - { - "text": "?", - "kind": "punctuation" - }, - { - "text": ":", + "text": "|", "kind": "punctuation" }, { @@ -21615,19 +20870,15 @@ "kind": "space" }, { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" + "text": "number", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "=>", + "text": "|", "kind": "punctuation" }, { @@ -21635,7 +20886,7 @@ "kind": "space" }, { - "text": "string", + "text": "boolean", "kind": "keyword" }, { @@ -21651,13 +20902,13 @@ "kind": "space" }, { - "text": "void", + "text": "string", "kind": "keyword" } ], "documentation": [ { - "text": "This is subtract function", + "text": "Encodes a text string as a valid component of a Uniform Resource Identifier (URI).", "kind": "text" } ], @@ -21666,16 +20917,7 @@ "name": "param", "text": [ { - "text": "", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "b", + "text": "uriComponent", "kind": "parameterName" }, { @@ -21683,86 +20925,79 @@ "kind": "space" }, { - "text": "this is about b", + "text": "A value representing an encoded URI component.", "kind": "text" } ] + } + ] + }, + { + "name": "enum", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "enum", + "kind": "keyword" + } + ] + }, + { + "name": "Error", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" }, { - "name": "param", - "text": [ - { - "text": "c", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "this is optional param c", - "kind": "text" - } - ] + "text": " ", + "kind": "space" }, { - "name": "param", - "text": [ - { - "text": "d", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "this is optional param d", - "kind": "text" - } - ] + "text": "Error", + "kind": "localName" }, { - "name": "param", - "text": [ - { - "text": "e", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "this is optional param e", - "kind": "text" - } - ] + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Error", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" }, { - "name": "param", - "text": [ - { - "text": "", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "{ () => string; } } f this is optional param f", - "kind": "text" - } - ] + "text": "ErrorConstructor", + "kind": "interfaceName" } - ] + ], + "documentation": [] }, { - "name": "square", + "name": "eval", "kind": "function", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { "text": "function", @@ -21773,7 +21008,7 @@ "kind": "space" }, { - "text": "square", + "text": "eval", "kind": "functionName" }, { @@ -21781,7 +21016,7 @@ "kind": "punctuation" }, { - "text": "a", + "text": "x", "kind": "parameterName" }, { @@ -21793,7 +21028,7 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" }, { @@ -21809,31 +21044,22 @@ "kind": "space" }, { - "text": "number", + "text": "any", "kind": "keyword" } ], "documentation": [ { - "text": "this is square function", + "text": "Evaluates JavaScript code and executes it.", "kind": "text" } ], "tags": [ - { - "name": "paramTag", - "text": [ - { - "text": "{ number } a this is input number of paramTag", - "kind": "text" - } - ] - }, { "name": "param", "text": [ { - "text": "a", + "text": "x", "kind": "parameterName" }, { @@ -21841,16 +21067,7 @@ "kind": "space" }, { - "text": "this is input number", - "kind": "text" - } - ] - }, - { - "name": "returnType", - "text": [ - { - "text": "{ number } it is return type", + "text": "A String value that contains valid JavaScript code.", "kind": "text" } ] @@ -21858,13 +21075,13 @@ ] }, { - "name": "divide", - "kind": "function", - "kindModifiers": "", - "sortText": "11", + "name": "EvalError", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -21872,56 +21089,24 @@ "kind": "space" }, { - "text": "divide", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "a", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" + "text": "EvalError", + "kind": "localName" }, { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, { - "text": "number", + "text": "var", "kind": "keyword" }, - { - "text": ",", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "b", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "EvalError", + "kind": "localName" }, { "text": ":", @@ -21932,70 +21117,68 @@ "kind": "space" }, { - "text": "void", - "kind": "keyword" + "text": "EvalErrorConstructor", + "kind": "interfaceName" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "export", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "this is divide function", - "kind": "text" + "text": "export", + "kind": "keyword" } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "a", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "this is a", - "kind": "text" - } - ] - }, + ] + }, + { + "name": "extends", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "paramTag", - "text": [ - { - "text": "{ number } g this is optional param g", - "kind": "text" - } - ] - }, + "text": "extends", + "kind": "keyword" + } + ] + }, + { + "name": "false", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "b", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "this is b", - "kind": "text" - } - ] + "text": "false", + "kind": "keyword" } ] }, { - "name": "fooBar", - "kind": "function", + "name": "finally", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "function", + "text": "finally", + "kind": "keyword" + } + ] + }, + { + "name": "Float32Array", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", "kind": "keyword" }, { @@ -22003,31 +21186,27 @@ "kind": "space" }, { - "text": "fooBar", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" + "text": "Float32Array", + "kind": "localName" }, { - "text": "foo", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "Float32Array", + "kind": "localName" }, { - "text": ",", + "text": ":", "kind": "punctuation" }, { @@ -22035,24 +21214,50 @@ "kind": "space" }, { - "text": "bar", - "kind": "parameterName" - }, + "text": "Float32ArrayConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ { - "text": ":", - "kind": "punctuation" + "text": "A typed array of 32-bit float values. The contents are initialized to 0. If the requested number\r\nof bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] + }, + { + "name": "Float64Array", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "string", + "text": "Float64Array", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" }, { - "text": ")", - "kind": "punctuation" + "text": " ", + "kind": "space" + }, + { + "text": "Float64Array", + "kind": "localName" }, { "text": ":", @@ -22063,93 +21268,77 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "Float64ArrayConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "Function returns string concat of foo and bar", + "text": "A typed array of 64-bit float values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", "kind": "text" } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "foo", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "is string", - "kind": "text" - } - ] - }, + ] + }, + { + "name": "for", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "bar", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "is second string", - "kind": "text" - } - ] + "text": "for", + "kind": "keyword" } ] }, { - "name": "jsDocParamTest", - "kind": "function", + "name": "function", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { "text": "function", "kind": "keyword" + } + ] + }, + { + "name": "Function", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "jsDocParamTest", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" + "text": "Function", + "kind": "localName" }, { - "text": "a", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "Function", + "kind": "localName" }, { - "text": ",", + "text": ":", "kind": "punctuation" }, { @@ -22157,32 +21346,115 @@ "kind": "space" }, { - "text": "b", - "kind": "parameterName" - }, + "text": "FunctionConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ { - "text": ":", - "kind": "punctuation" + "text": "Creates a new function.", + "kind": "text" + } + ] + }, + { + "name": "globalThis", + "kind": "module", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "module", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "number", + "text": "globalThis", + "kind": "moduleName" + } + ], + "documentation": [] + }, + { + "name": "if", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "if", "kind": "keyword" - }, + } + ] + }, + { + "name": "implements", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": ",", - "kind": "punctuation" + "text": "implements", + "kind": "keyword" + } + ] + }, + { + "name": "import", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "import", + "kind": "keyword" + } + ] + }, + { + "name": "in", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "in", + "kind": "keyword" + } + ] + }, + { + "name": "infer", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "infer", + "kind": "keyword" + } + ] + }, + { + "name": "Infinity", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "c", - "kind": "parameterName" + "text": "Infinity", + "kind": "localName" }, { "text": ":", @@ -22195,34 +21467,55 @@ { "text": "number", "kind": "keyword" - }, + } + ], + "documentation": [] + }, + { + "name": "instanceof", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": ",", - "kind": "punctuation" + "text": "instanceof", + "kind": "keyword" + } + ] + }, + { + "name": "Int16Array", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "d", - "kind": "parameterName" + "text": "Int16Array", + "kind": "localName" }, { - "text": ":", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "Int16Array", + "kind": "localName" }, { "text": ":", @@ -22233,61 +21526,25 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "Int16ArrayConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "this is jsdoc style function with param tag as well as inline parameter help", + "text": "A typed array of 16-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", "kind": "text" } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "a", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "it is first parameter", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "c", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "it is third parameter", - "kind": "text" - } - ] - } ] }, { - "name": "jsDocCommentAlignmentTest1", - "kind": "function", - "kindModifiers": "", - "sortText": "11", + "name": "Int32Array", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -22295,16 +21552,24 @@ "kind": "space" }, { - "text": "jsDocCommentAlignmentTest1", - "kind": "functionName" + "text": "Int32Array", + "kind": "localName" }, { - "text": "(", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": ")", - "kind": "punctuation" + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Int32Array", + "kind": "localName" }, { "text": ":", @@ -22315,25 +21580,25 @@ "kind": "space" }, { - "text": "void", - "kind": "keyword" + "text": "Int32ArrayConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "This is function comment\nAnd properly aligned comment", + "text": "A typed array of 32-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", "kind": "text" } ] }, { - "name": "jsDocCommentAlignmentTest2", - "kind": "function", - "kindModifiers": "", - "sortText": "11", + "name": "Int8Array", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -22341,16 +21606,24 @@ "kind": "space" }, { - "text": "jsDocCommentAlignmentTest2", - "kind": "functionName" + "text": "Int8Array", + "kind": "localName" }, { - "text": "(", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": ")", - "kind": "punctuation" + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Int8Array", + "kind": "localName" }, { "text": ":", @@ -22361,22 +21634,55 @@ "kind": "space" }, { - "text": "void", - "kind": "keyword" + "text": "Int8ArrayConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "This is function comment\n And aligned with 4 space char margin", + "text": "A typed array of 8-bit integer values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", "kind": "text" } ] }, { - "name": "jsDocCommentAlignmentTest3", - "kind": "function", + "name": "interface", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" + } + ] + }, + { + "name": "Intl", + "kind": "module", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "namespace", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Intl", + "kind": "moduleName" + } + ], + "documentation": [] + }, + { + "name": "isFinite", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { "text": "function", @@ -22387,7 +21693,7 @@ "kind": "space" }, { - "text": "jsDocCommentAlignmentTest3", + "text": "isFinite", "kind": "functionName" }, { @@ -22395,7 +21701,7 @@ "kind": "punctuation" }, { - "text": "a", + "text": "number", "kind": "parameterName" }, { @@ -22407,21 +21713,13 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" }, { - "text": ",", + "text": ")", "kind": "punctuation" }, - { - "text": " ", - "kind": "space" - }, - { - "text": "b", - "kind": "parameterName" - }, { "text": ":", "kind": "punctuation" @@ -22431,19 +21729,60 @@ "kind": "space" }, { - "text": "any", + "text": "boolean", "kind": "keyword" - }, + } + ], + "documentation": [ { - "text": ",", - "kind": "punctuation" + "text": "Determines whether a supplied number is finite.", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "number", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Any numeric value.", + "kind": "text" + } + ] + } + ] + }, + { + "name": "isNaN", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "function", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "c", + "text": "isNaN", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "number", "kind": "parameterName" }, { @@ -22455,7 +21794,7 @@ "kind": "space" }, { - "text": "any", + "text": "number", "kind": "keyword" }, { @@ -22471,13 +21810,13 @@ "kind": "space" }, { - "text": "void", + "text": "boolean", "kind": "keyword" } ], "documentation": [ { - "text": "This is function comment\n And aligned with 4 space char margin", + "text": "Returns a Boolean value that indicates whether a value is the reserved value NaN (not a number).", "kind": "text" } ], @@ -22486,41 +21825,7 @@ "name": "param", "text": [ { - "text": "a", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "this is info about a\nspanning on two lines and aligned perfectly", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "b", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "this is info about b\nspanning on two lines and aligned perfectly\nspanning one more line alined perfectly\n spanning another line with more margin", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "c", + "text": "number", "kind": "parameterName" }, { @@ -22528,7 +21833,7 @@ "kind": "space" }, { - "text": "this is info about b\nnot aligned text about parameter will eat only one space", + "text": "A numeric value.", "kind": "text" } ] @@ -22536,13 +21841,13 @@ ] }, { - "name": "x", + "name": "JSON", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -22550,35 +21855,13 @@ "kind": "space" }, { - "text": "x", + "text": "JSON", "kind": "localName" }, { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, - { - "text": "any", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "This is a comment", - "kind": "text" - } - ] - }, - { - "name": "y", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ { "text": "var", "kind": "keyword" @@ -22588,7 +21871,7 @@ "kind": "space" }, { - "text": "y", + "text": "JSON", "kind": "localName" }, { @@ -22600,849 +21883,1380 @@ "kind": "space" }, { - "text": "any", - "kind": "keyword" + "text": "JSON", + "kind": "localName" } ], "documentation": [ { - "text": "This is a comment", + "text": "An intrinsic object that provides functions to convert JavaScript values to and from the JavaScript Object Notation (JSON) format.", "kind": "text" } ] }, { - "name": "NoQuickInfoClass", - "kind": "class", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "class", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "NoQuickInfoClass", - "kind": "className" - } - ], - "documentation": [] - }, - { - "name": "undefined", - "kind": "var", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "undefined", - "kind": "propertyName" - } - ], - "documentation": [] - }, - { - "name": "break", + "name": "keyof", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "break", + "text": "keyof", "kind": "keyword" } ] }, { - "name": "case", + "name": "let", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "case", + "text": "let", "kind": "keyword" } ] }, { - "name": "catch", - "kind": "keyword", - "kindModifiers": "", + "name": "Math", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "catch", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "class", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "class", - "kind": "keyword" - } - ] - }, - { - "name": "const", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "const", - "kind": "keyword" - } - ] - }, - { - "name": "continue", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "Math", + "kind": "localName" + }, { - "text": "continue", - "kind": "keyword" - } - ] - }, - { - "name": "debugger", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "\n", + "kind": "lineBreak" + }, { - "text": "debugger", + "text": "var", "kind": "keyword" - } - ] - }, - { - "name": "default", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "default", - "kind": "keyword" - } - ] - }, - { - "name": "delete", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "delete", - "kind": "keyword" - } - ] - }, - { - "name": "do", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "Math", + "kind": "localName" + }, { - "text": "do", - "kind": "keyword" - } - ] - }, - { - "name": "else", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": ":", + "kind": "punctuation" + }, { - "text": "else", - "kind": "keyword" - } - ] - }, - { - "name": "enum", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "enum", - "kind": "keyword" + "text": "Math", + "kind": "localName" } - ] - }, - { - "name": "export", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "export", - "kind": "keyword" + "text": "An intrinsic object that provides basic mathematics functionality and constants.", + "kind": "text" } ] }, { - "name": "extends", + "name": "module", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "extends", + "text": "module", "kind": "keyword" } ] }, { - "name": "false", + "name": "namespace", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "false", + "text": "namespace", "kind": "keyword" } ] }, { - "name": "finally", - "kind": "keyword", - "kindModifiers": "", + "name": "NaN", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "finally", + "text": "var", "kind": "keyword" - } - ] - }, - { - "name": "for", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "for", + "text": " ", + "kind": "space" + }, + { + "text": "NaN", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" } - ] + ], + "documentation": [] }, { - "name": "function", + "name": "never", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "never", "kind": "keyword" } ] }, { - "name": "if", + "name": "new", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "if", + "text": "new", "kind": "keyword" } ] }, { - "name": "import", + "name": "null", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "import", + "text": "null", "kind": "keyword" } ] }, { - "name": "in", + "name": "number", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "in", + "text": "number", "kind": "keyword" } ] }, { - "name": "instanceof", - "kind": "keyword", - "kindModifiers": "", + "name": "Number", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "instanceof", + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Number", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Number", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "NumberConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ + { + "text": "An object that represents a number of any kind. All JavaScript numbers are 64-bit floating-point numbers.", + "kind": "text" } ] }, { - "name": "new", + "name": "object", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "new", + "text": "object", "kind": "keyword" } ] }, { - "name": "null", - "kind": "keyword", - "kindModifiers": "", + "name": "Object", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "null", + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Object", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Object", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "ObjectConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ + { + "text": "Provides functionality common to all JavaScript objects.", + "kind": "text" } ] }, { - "name": "return", + "name": "package", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "return", + "text": "package", "kind": "keyword" } ] }, { - "name": "super", - "kind": "keyword", - "kindModifiers": "", + "name": "parseFloat", + "kind": "function", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "super", + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "parseFloat", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "string", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" } + ], + "documentation": [ + { + "text": "Converts a string to a floating-point number.", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string that contains a floating-point number.", + "kind": "text" + } + ] + } ] }, { - "name": "switch", - "kind": "keyword", - "kindModifiers": "", + "name": "parseInt", + "kind": "function", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "switch", + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "parseInt", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "string", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": ",", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "radix", + "kind": "parameterName" + }, + { + "text": "?", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" } + ], + "documentation": [ + { + "text": "Converts a string to an integer.", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string to convert into a number.", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "radix", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value between 2 and 36 that specifies the base of the number in `string`.\r\nIf this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal.\r\nAll other strings are considered decimal.", + "kind": "text" + } + ] + } ] }, { - "name": "this", - "kind": "keyword", - "kindModifiers": "", + "name": "RangeError", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "this", + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "RangeError", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "RangeError", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "RangeErrorConstructor", + "kind": "interfaceName" } - ] + ], + "documentation": [] }, { - "name": "throw", + "name": "readonly", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "throw", + "text": "readonly", "kind": "keyword" } ] }, { - "name": "true", - "kind": "keyword", - "kindModifiers": "", + "name": "ReferenceError", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "true", + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "ReferenceError", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "ReferenceError", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "ReferenceErrorConstructor", + "kind": "interfaceName" } - ] + ], + "documentation": [] }, { - "name": "try", - "kind": "keyword", - "kindModifiers": "", + "name": "RegExp", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "try", + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "RegExp", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "RegExp", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "RegExpConstructor", + "kind": "interfaceName" } - ] + ], + "documentation": [] }, { - "name": "typeof", + "name": "return", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "typeof", + "text": "return", "kind": "keyword" } ] }, { - "name": "var", + "name": "string", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "var", + "text": "string", "kind": "keyword" } ] }, { - "name": "void", - "kind": "keyword", - "kindModifiers": "", + "name": "String", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "void", + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "String", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "String", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "StringConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ + { + "text": "Allows manipulation and formatting of text strings and determination and location of substrings within strings.", + "kind": "text" } ] }, { - "name": "while", + "name": "super", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "while", + "text": "super", "kind": "keyword" } ] }, { - "name": "with", + "name": "switch", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "with", + "text": "switch", "kind": "keyword" } ] }, { - "name": "implements", + "name": "symbol", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "implements", + "text": "symbol", "kind": "keyword" } ] }, { - "name": "interface", - "kind": "keyword", - "kindModifiers": "", + "name": "SyntaxError", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "let", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "let", + "text": " ", + "kind": "space" + }, + { + "text": "SyntaxError", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "SyntaxError", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "SyntaxErrorConstructor", + "kind": "interfaceName" } - ] + ], + "documentation": [] }, { - "name": "package", + "name": "this", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "package", + "text": "this", "kind": "keyword" } ] }, { - "name": "yield", + "name": "throw", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "yield", + "text": "throw", "kind": "keyword" } ] }, { - "name": "abstract", + "name": "true", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "abstract", + "text": "true", "kind": "keyword" } ] }, { - "name": "as", + "name": "try", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "as", + "text": "try", "kind": "keyword" } ] }, { - "name": "asserts", + "name": "type", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "asserts", + "text": "type", "kind": "keyword" } ] }, { - "name": "any", - "kind": "keyword", - "kindModifiers": "", + "name": "TypeError", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "any", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "async", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "async", + "text": " ", + "kind": "space" + }, + { + "text": "TypeError", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "TypeError", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "TypeErrorConstructor", + "kind": "interfaceName" } - ] + ], + "documentation": [] }, { - "name": "await", + "name": "typeof", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "await", + "text": "typeof", "kind": "keyword" } ] }, { - "name": "boolean", - "kind": "keyword", - "kindModifiers": "", + "name": "Uint16Array", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "boolean", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "declare", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "declare", + "text": " ", + "kind": "space" + }, + { + "text": "Uint16Array", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint16Array", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint16ArrayConstructor", + "kind": "interfaceName" } - ] - }, - { - "name": "infer", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "infer", - "kind": "keyword" + "text": "A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" } ] }, { - "name": "keyof", - "kind": "keyword", - "kindModifiers": "", + "name": "Uint32Array", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "keyof", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "module", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "module", + "text": " ", + "kind": "space" + }, + { + "text": "Uint32Array", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint32Array", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint32ArrayConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ + { + "text": "A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" } ] }, { - "name": "namespace", - "kind": "keyword", - "kindModifiers": "", + "name": "Uint8Array", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "namespace", + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint8Array", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint8Array", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint8ArrayConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ + { + "text": "A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" } ] }, { - "name": "never", - "kind": "keyword", - "kindModifiers": "", + "name": "Uint8ClampedArray", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "never", + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint8ClampedArray", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint8ClampedArray", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint8ClampedArrayConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ + { + "text": "A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0.\r\nIf the requested number of bytes could not be allocated an exception is raised.", + "kind": "text" } ] }, { - "name": "readonly", - "kind": "keyword", + "name": "undefined", + "kind": "var", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "readonly", + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "undefined", + "kind": "propertyName" } - ] + ], + "documentation": [] }, { - "name": "number", + "name": "unique", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "number", + "text": "unique", "kind": "keyword" } ] }, { - "name": "object", + "name": "unknown", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "object", + "text": "unknown", "kind": "keyword" } ] }, { - "name": "string", - "kind": "keyword", - "kindModifiers": "", + "name": "URIError", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "string", + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "URIError", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "URIError", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "URIErrorConstructor", + "kind": "interfaceName" } - ] + ], + "documentation": [] }, { - "name": "symbol", + "name": "var", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "symbol", + "text": "var", "kind": "keyword" } ] }, { - "name": "type", + "name": "void", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "type", + "text": "void", "kind": "keyword" } ] }, { - "name": "unique", + "name": "while", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "unique", + "text": "while", "kind": "keyword" } ] }, { - "name": "unknown", + "name": "with", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "unknown", + "text": "with", "kind": "keyword" } ] }, { - "name": "bigint", + "name": "yield", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "bigint", + "text": "yield", "kind": "keyword" } ] - } - ] - } - }, - { - "marker": { - "fileName": "/tests/cases/fourslash/completionsCommentsCommentParsing.ts", - "position": 3874, - "name": "39" - }, - "completionList": { - "isGlobalCompletion": true, - "isMemberCompletion": false, - "isNewIdentifierLocation": false, - "optionalReplacementSpan": { - "start": 3874, - "length": 1 - }, - "entries": [ + }, { - "name": "a", - "kind": "parameter", - "kindModifiers": "", - "sortText": "11", + "name": "escape", + "kind": "function", + "kindModifiers": "deprecated,declare", + "sortText": "z15", "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "escape", + "kind": "functionName" + }, { "text": "(", "kind": "punctuation" }, { - "text": "parameter", - "kind": "text" + "text": "string", + "kind": "parameterName" }, { - "text": ")", + "text": ":", "kind": "punctuation" }, { @@ -23450,8 +23264,12 @@ "kind": "space" }, { - "text": "a", - "kind": "parameterName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -23462,30 +23280,31 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" } ], "documentation": [ { - "text": "this is inline comment for a", - "kind": "text" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "it is first parameter", + "text": "Computes a new string in which certain characters have been replaced by a hexadecimal escape sequence.", "kind": "text" } ], "tags": [ + { + "name": "deprecated", + "text": [ + { + "text": "A legacy feature for browser compatibility", + "kind": "text" + } + ] + }, { "name": "param", "text": [ { - "text": "a", + "text": "string", "kind": "parameterName" }, { @@ -23493,7 +23312,7 @@ "kind": "space" }, { - "text": "it is first parameter", + "text": "A string value", "kind": "text" } ] @@ -23501,21 +23320,33 @@ ] }, { - "name": "b", - "kind": "parameter", - "kindModifiers": "", - "sortText": "11", + "name": "unescape", + "kind": "function", + "kindModifiers": "deprecated,declare", + "sortText": "z15", "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "unescape", + "kind": "functionName" + }, { "text": "(", "kind": "punctuation" }, { - "text": "parameter", - "kind": "text" + "text": "string", + "kind": "parameterName" }, { - "text": ")", + "text": ":", "kind": "punctuation" }, { @@ -23523,8 +23354,12 @@ "kind": "space" }, { - "text": "b", - "kind": "parameterName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -23535,19 +23370,65 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" } ], "documentation": [ { - "text": "this is inline comment for b", + "text": "Computes a new string in which hexadecimal escape sequences are replaced with the character that it represents.", "kind": "text" } + ], + "tags": [ + { + "name": "deprecated", + "text": [ + { + "text": "A legacy feature for browser compatibility", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string value", + "kind": "text" + } + ] + } ] - }, + } + ] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/completionsCommentsCommentParsing.ts", + "position": 3874, + "name": "39" + }, + "completionList": { + "isGlobalCompletion": true, + "isMemberCompletion": false, + "isNewIdentifierLocation": false, + "optionalReplacementSpan": { + "start": 3874, + "length": 1 + }, + "entries": [ { - "name": "c", + "name": "a", "kind": "parameter", "kindModifiers": "", "sortText": "11", @@ -23569,7 +23450,7 @@ "kind": "space" }, { - "text": "c", + "text": "a", "kind": "parameterName" }, { @@ -23587,7 +23468,15 @@ ], "documentation": [ { - "text": "it is third parameter", + "text": "this is inline comment for a", + "kind": "text" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "it is first parameter", "kind": "text" } ], @@ -23596,7 +23485,7 @@ "name": "param", "text": [ { - "text": "c", + "text": "a", "kind": "parameterName" }, { @@ -23604,7 +23493,7 @@ "kind": "space" }, { - "text": "it is third parameter", + "text": "it is first parameter", "kind": "text" } ] @@ -23612,8 +23501,8 @@ ] }, { - "name": "d", - "kind": "parameter", + "name": "arguments", + "kind": "local var", "kindModifiers": "", "sortText": "11", "displayParts": [ @@ -23622,7 +23511,7 @@ "kind": "punctuation" }, { - "text": "parameter", + "text": "local var", "kind": "text" }, { @@ -23634,8 +23523,8 @@ "kind": "space" }, { - "text": "d", - "kind": "parameterName" + "text": "arguments", + "kind": "propertyName" }, { "text": ":", @@ -23646,15 +23535,15 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "IArguments", + "kind": "interfaceName" } ], "documentation": [] }, { - "name": "arguments", - "kind": "local var", + "name": "b", + "kind": "parameter", "kindModifiers": "", "sortText": "11", "displayParts": [ @@ -23663,7 +23552,7 @@ "kind": "punctuation" }, { - "text": "local var", + "text": "parameter", "kind": "text" }, { @@ -23675,8 +23564,8 @@ "kind": "space" }, { - "text": "arguments", - "kind": "propertyName" + "text": "b", + "kind": "parameterName" }, { "text": ":", @@ -23687,61 +23576,33 @@ "kind": "space" }, { - "text": "IArguments", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], - "documentation": [] - }, - { - "name": "globalThis", - "kind": "module", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "module", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, + "documentation": [ { - "text": "globalThis", - "kind": "moduleName" + "text": "this is inline comment for b", + "kind": "text" } - ], - "documentation": [] + ] }, { - "name": "eval", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "name": "c", + "kind": "parameter", + "kindModifiers": "", + "sortText": "11", "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "eval", - "kind": "functionName" - }, { "text": "(", "kind": "punctuation" }, { - "text": "x", - "kind": "parameterName" + "text": "parameter", + "kind": "text" }, { - "text": ":", + "text": ")", "kind": "punctuation" }, { @@ -23749,12 +23610,8 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "c", + "kind": "parameterName" }, { "text": ":", @@ -23765,13 +23622,13 @@ "kind": "space" }, { - "text": "any", + "text": "number", "kind": "keyword" } ], "documentation": [ { - "text": "Evaluates JavaScript code and executes it.", + "text": "it is third parameter", "kind": "text" } ], @@ -23780,7 +23637,7 @@ "name": "param", "text": [ { - "text": "x", + "text": "c", "kind": "parameterName" }, { @@ -23788,7 +23645,7 @@ "kind": "space" }, { - "text": "A String value that contains valid JavaScript code.", + "text": "it is third parameter", "kind": "text" } ] @@ -23796,10 +23653,51 @@ ] }, { - "name": "parseInt", + "name": "d", + "kind": "parameter", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "parameter", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "d", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "divide", "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { "text": "function", @@ -23810,7 +23708,7 @@ "kind": "space" }, { - "text": "parseInt", + "text": "divide", "kind": "functionName" }, { @@ -23818,7 +23716,7 @@ "kind": "punctuation" }, { - "text": "string", + "text": "a", "kind": "parameterName" }, { @@ -23830,7 +23728,7 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" }, { @@ -23842,13 +23740,9 @@ "kind": "space" }, { - "text": "radix", + "text": "b", "kind": "parameterName" }, - { - "text": "?", - "kind": "punctuation" - }, { "text": ":", "kind": "punctuation" @@ -23874,13 +23768,13 @@ "kind": "space" }, { - "text": "number", + "text": "void", "kind": "keyword" } ], "documentation": [ { - "text": "Converts a string to an integer.", + "text": "this is divide function", "kind": "text" } ], @@ -23889,7 +23783,7 @@ "name": "param", "text": [ { - "text": "string", + "text": "a", "kind": "parameterName" }, { @@ -23897,97 +23791,25 @@ "kind": "space" }, { - "text": "A string to convert into a number.", + "text": "this is a", "kind": "text" } ] }, { - "name": "param", + "name": "paramTag", "text": [ { - "text": "radix", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value between 2 and 36 that specifies the base of the number in `string`.\r\nIf this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal.\r\nAll other strings are considered decimal.", + "text": "{ number } g this is optional param g", "kind": "text" } ] - } - ] - }, - { - "name": "parseFloat", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "parseFloat", - "kind": "functionName" }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "string", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Converts a string to a floating-point number.", - "kind": "text" - } - ], - "tags": [ { "name": "param", "text": [ { - "text": "string", + "text": "b", "kind": "parameterName" }, { @@ -23995,7 +23817,7 @@ "kind": "space" }, { - "text": "A string that contains a floating-point number.", + "text": "this is b", "kind": "text" } ] @@ -24003,10 +23825,10 @@ ] }, { - "name": "isNaN", + "name": "f1", "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { "text": "function", @@ -24017,7 +23839,7 @@ "kind": "space" }, { - "text": "isNaN", + "text": "f1", "kind": "functionName" }, { @@ -24025,7 +23847,7 @@ "kind": "punctuation" }, { - "text": "number", + "text": "a", "kind": "parameterName" }, { @@ -24053,94 +23875,41 @@ "kind": "space" }, { - "text": "boolean", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Returns a Boolean value that indicates whether a value is the reserved value NaN (not a number).", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "number", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A numeric value.", - "kind": "text" - } - ] - } - ] - }, - { - "name": "isFinite", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "function", + "text": "any", "kind": "keyword" }, { "text": " ", "kind": "space" }, - { - "text": "isFinite", - "kind": "functionName" - }, { "text": "(", "kind": "punctuation" }, { - "text": "number", - "kind": "parameterName" + "text": "+", + "kind": "operator" }, { - "text": ":", - "kind": "punctuation" + "text": "1", + "kind": "numericLiteral" }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "overload", + "kind": "text" }, - { - "text": "boolean", - "kind": "keyword" + { + "text": ")", + "kind": "punctuation" } ], "documentation": [ { - "text": "Determines whether a supplied number is finite.", + "text": "fn f1 with number", "kind": "text" } ], @@ -24149,7 +23918,7 @@ "name": "param", "text": [ { - "text": "number", + "text": "b", "kind": "parameterName" }, { @@ -24157,7 +23926,7 @@ "kind": "space" }, { - "text": "Any numeric value.", + "text": "about b", "kind": "text" } ] @@ -24165,10 +23934,10 @@ ] }, { - "name": "decodeURI", + "name": "fooBar", "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { "text": "function", @@ -24179,7 +23948,7 @@ "kind": "space" }, { - "text": "decodeURI", + "text": "fooBar", "kind": "functionName" }, { @@ -24187,7 +23956,31 @@ "kind": "punctuation" }, { - "text": "encodedURI", + "text": "foo", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": ",", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "bar", "kind": "parameterName" }, { @@ -24221,7 +24014,7 @@ ], "documentation": [ { - "text": "Gets the unencoded version of an encoded Uniform Resource Identifier (URI).", + "text": "Function returns string concat of foo and bar", "kind": "text" } ], @@ -24230,7 +24023,7 @@ "name": "param", "text": [ { - "text": "encodedURI", + "text": "foo", "kind": "parameterName" }, { @@ -24238,7 +24031,24 @@ "kind": "space" }, { - "text": "A value representing an encoded URI.", + "text": "is string", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "bar", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "is second string", "kind": "text" } ] @@ -24246,10 +24056,10 @@ ] }, { - "name": "decodeURIComponent", + "name": "jsDocCommentAlignmentTest1", "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { "text": "function", @@ -24260,29 +24070,13 @@ "kind": "space" }, { - "text": "decodeURIComponent", + "text": "jsDocCommentAlignmentTest1", "kind": "functionName" }, { "text": "(", "kind": "punctuation" }, - { - "text": "encodedURIComponent", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, { "text": ")", "kind": "punctuation" @@ -24296,41 +24090,22 @@ "kind": "space" }, { - "text": "string", + "text": "void", "kind": "keyword" } ], "documentation": [ { - "text": "Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).", + "text": "This is function comment\nAnd properly aligned comment", "kind": "text" } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "encodedURIComponent", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI component.", - "kind": "text" - } - ] - } ] }, { - "name": "encodeURI", + "name": "jsDocCommentAlignmentTest2", "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { "text": "function", @@ -24341,29 +24116,13 @@ "kind": "space" }, { - "text": "encodeURI", + "text": "jsDocCommentAlignmentTest2", "kind": "functionName" }, { "text": "(", "kind": "punctuation" }, - { - "text": "uri", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, { "text": ")", "kind": "punctuation" @@ -24377,41 +24136,22 @@ "kind": "space" }, { - "text": "string", + "text": "void", "kind": "keyword" } ], "documentation": [ { - "text": "Encodes a text string as a valid Uniform Resource Identifier (URI)", + "text": "This is function comment\n And aligned with 4 space char margin", "kind": "text" } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "uri", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI.", - "kind": "text" - } - ] - } ] }, { - "name": "encodeURIComponent", + "name": "jsDocCommentAlignmentTest3", "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { "text": "function", @@ -24422,7 +24162,7 @@ "kind": "space" }, { - "text": "encodeURIComponent", + "text": "jsDocCommentAlignmentTest3", "kind": "functionName" }, { @@ -24430,7 +24170,7 @@ "kind": "punctuation" }, { - "text": "uriComponent", + "text": "a", "kind": "parameterName" }, { @@ -24445,12 +24185,20 @@ "text": "string", "kind": "keyword" }, + { + "text": ",", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "|", + "text": "b", + "kind": "parameterName" + }, + { + "text": ":", "kind": "punctuation" }, { @@ -24458,15 +24206,23 @@ "kind": "space" }, { - "text": "number", + "text": "any", "kind": "keyword" }, + { + "text": ",", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "|", + "text": "c", + "kind": "parameterName" + }, + { + "text": ":", "kind": "punctuation" }, { @@ -24474,7 +24230,7 @@ "kind": "space" }, { - "text": "boolean", + "text": "any", "kind": "keyword" }, { @@ -24490,13 +24246,13 @@ "kind": "space" }, { - "text": "string", + "text": "void", "kind": "keyword" } ], "documentation": [ { - "text": "Encodes a text string as a valid component of a Uniform Resource Identifier (URI).", + "text": "This is function comment\n And aligned with 4 space char margin", "kind": "text" } ], @@ -24505,7 +24261,7 @@ "name": "param", "text": [ { - "text": "uriComponent", + "text": "a", "kind": "parameterName" }, { @@ -24513,7 +24269,41 @@ "kind": "space" }, { - "text": "A value representing an encoded URI component.", + "text": "this is info about a\nspanning on two lines and aligned perfectly", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "b", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "this is info about b\nspanning on two lines and aligned perfectly\nspanning one more line alined perfectly\n spanning another line with more margin", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "c", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "this is info about b\nnot aligned text about parameter will eat only one space", "kind": "text" } ] @@ -24521,10 +24311,10 @@ ] }, { - "name": "escape", + "name": "jsDocMixedComments1", "kind": "function", - "kindModifiers": "deprecated,declare", - "sortText": "23", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { "text": "function", @@ -24535,7 +24325,7 @@ "kind": "space" }, { - "text": "escape", + "text": "jsDocMixedComments1", "kind": "functionName" }, { @@ -24543,8 +24333,8 @@ "kind": "punctuation" }, { - "text": "string", - "kind": "parameterName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -24555,9 +24345,39 @@ "kind": "space" }, { - "text": "string", + "text": "void", + "kind": "keyword" + } + ], + "documentation": [ + { + "text": "jsdoc comment", + "kind": "text" + } + ] + }, + { + "name": "jsDocMixedComments2", + "kind": "function", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "function", "kind": "keyword" }, + { + "text": " ", + "kind": "space" + }, + { + "text": "jsDocMixedComments2", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, { "text": ")", "kind": "punctuation" @@ -24571,50 +24391,22 @@ "kind": "space" }, { - "text": "string", + "text": "void", "kind": "keyword" } ], "documentation": [ { - "text": "Computes a new string in which certain characters have been replaced by a hexadecimal escape sequence.", + "text": "another jsDocComment", "kind": "text" } - ], - "tags": [ - { - "name": "deprecated", - "text": [ - { - "text": "A legacy feature for browser compatibility", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string value", - "kind": "text" - } - ] - } ] }, { - "name": "unescape", + "name": "jsDocMixedComments3", "kind": "function", - "kindModifiers": "deprecated,declare", - "sortText": "23", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { "text": "function", @@ -24625,7 +24417,7 @@ "kind": "space" }, { - "text": "unescape", + "text": "jsDocMixedComments3", "kind": "functionName" }, { @@ -24633,8 +24425,8 @@ "kind": "punctuation" }, { - "text": "string", - "kind": "parameterName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -24645,9 +24437,39 @@ "kind": "space" }, { - "text": "string", + "text": "void", + "kind": "keyword" + } + ], + "documentation": [ + { + "text": "* triplestar jsDocComment", + "kind": "text" + } + ] + }, + { + "name": "jsDocMixedComments4", + "kind": "function", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "function", "kind": "keyword" }, + { + "text": " ", + "kind": "space" + }, + { + "text": "jsDocMixedComments4", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, { "text": ")", "kind": "punctuation" @@ -24661,53 +24483,25 @@ "kind": "space" }, { - "text": "string", + "text": "void", "kind": "keyword" } ], "documentation": [ { - "text": "Computes a new string in which hexadecimal escape sequences are replaced with the character that it represents.", + "text": "another jsDocComment", "kind": "text" } - ], - "tags": [ - { - "name": "deprecated", - "text": [ - { - "text": "A legacy feature for browser compatibility", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string value", - "kind": "text" - } - ] - } ] }, { - "name": "NaN", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "jsDocMixedComments5", + "kind": "function", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "var", + "text": "function", "kind": "keyword" }, { @@ -24715,8 +24509,16 @@ "kind": "space" }, { - "text": "NaN", - "kind": "localName" + "text": "jsDocMixedComments5", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -24727,20 +24529,25 @@ "kind": "space" }, { - "text": "number", + "text": "void", "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "another jsDocComment", + "kind": "text" + } + ] }, { - "name": "Infinity", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "jsDocMixedComments6", + "kind": "function", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "var", + "text": "function", "kind": "keyword" }, { @@ -24748,8 +24555,16 @@ "kind": "space" }, { - "text": "Infinity", - "kind": "localName" + "text": "jsDocMixedComments6", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -24760,20 +24575,25 @@ "kind": "space" }, { - "text": "number", + "text": "void", "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "jsdoc comment", + "kind": "text" + } + ] }, { - "name": "Object", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "jsDocMultiLine", + "kind": "function", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -24781,24 +24601,16 @@ "kind": "space" }, { - "text": "Object", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": "jsDocMultiLine", + "kind": "functionName" }, { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "Object", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -24809,25 +24621,25 @@ "kind": "space" }, { - "text": "ObjectConstructor", - "kind": "interfaceName" + "text": "void", + "kind": "keyword" } ], "documentation": [ { - "text": "Provides functionality common to all JavaScript objects.", + "text": "this is multiple line jsdoc stule comment\nNew line1\nNew Line2", "kind": "text" } ] }, { - "name": "Function", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "jsDocMultiLineMerge", + "kind": "function", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -24835,24 +24647,16 @@ "kind": "space" }, { - "text": "Function", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": "jsDocMultiLineMerge", + "kind": "functionName" }, { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "Function", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -24863,25 +24667,25 @@ "kind": "space" }, { - "text": "FunctionConstructor", - "kind": "interfaceName" + "text": "void", + "kind": "keyword" } ], "documentation": [ { - "text": "Creates a new function.", + "text": "Another this one too", "kind": "text" } ] }, { - "name": "String", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "jsDocParamTest", + "kind": "function", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -24889,27 +24693,31 @@ "kind": "space" }, { - "text": "String", - "kind": "localName" + "text": "jsDocParamTest", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "a", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "String", - "kind": "localName" + "text": "number", + "kind": "keyword" }, { - "text": ":", + "text": ",", "kind": "punctuation" }, { @@ -24917,50 +24725,32 @@ "kind": "space" }, { - "text": "StringConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "Allows manipulation and formatting of text strings and determination and location of substrings within strings.", - "kind": "text" - } - ] - }, - { - "name": "Boolean", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ + "text": "b", + "kind": "parameterName" + }, { - "text": "interface", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Boolean", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" + "text": "number", + "kind": "keyword" }, { - "text": "var", - "kind": "keyword" + "text": ",", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Boolean", - "kind": "localName" + "text": "c", + "kind": "parameterName" }, { "text": ":", @@ -24971,45 +24761,36 @@ "kind": "space" }, { - "text": "BooleanConstructor", - "kind": "interfaceName" - } - ], - "documentation": [] - }, - { - "name": "Number", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", + "text": "number", "kind": "keyword" }, { - "text": " ", - "kind": "space" + "text": ",", + "kind": "punctuation" }, { - "text": "Number", - "kind": "localName" + "text": " ", + "kind": "space" }, { - "text": "\n", - "kind": "lineBreak" + "text": "d", + "kind": "parameterName" }, { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Number", - "kind": "localName" + "text": "number", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -25020,25 +24801,61 @@ "kind": "space" }, { - "text": "NumberConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], "documentation": [ { - "text": "An object that represents a number of any kind. All JavaScript numbers are 64-bit floating-point numbers.", + "text": "this is jsdoc style function with param tag as well as inline parameter help", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "a", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "it is first parameter", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "c", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "it is third parameter", + "kind": "text" + } + ] + } ] }, { - "name": "Math", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "jsDocSingleLine", + "kind": "function", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -25046,24 +24863,16 @@ "kind": "space" }, { - "text": "Math", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": "jsDocSingleLine", + "kind": "functionName" }, { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "Math", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -25074,25 +24883,25 @@ "kind": "space" }, { - "text": "Math", - "kind": "localName" + "text": "void", + "kind": "keyword" } ], "documentation": [ { - "text": "An intrinsic object that provides basic mathematics functionality and constants.", + "text": "this is eg of single line jsdoc style comment", "kind": "text" } ] }, { - "name": "Date", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "multiLine", + "kind": "function", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -25100,24 +24909,16 @@ "kind": "space" }, { - "text": "Date", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": "multiLine", + "kind": "functionName" }, { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "Date", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -25128,25 +24929,20 @@ "kind": "space" }, { - "text": "DateConstructor", - "kind": "interfaceName" + "text": "void", + "kind": "keyword" } ], - "documentation": [ - { - "text": "Enables basic storage and retrieval of dates and times.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "RegExp", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "multiply", + "kind": "function", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -25154,24 +24950,40 @@ "kind": "space" }, { - "text": "RegExp", - "kind": "localName" + "text": "multiply", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", + "text": "a", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" }, + { + "text": ",", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "RegExp", - "kind": "localName" + "text": "b", + "kind": "parameterName" }, { "text": ":", @@ -25182,45 +24994,52 @@ "kind": "space" }, { - "text": "RegExpConstructor", - "kind": "interfaceName" - } - ], - "documentation": [] - }, - { - "name": "Error", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", + "text": "number", "kind": "keyword" }, + { + "text": ",", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "Error", - "kind": "localName" + "text": "c", + "kind": "parameterName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "?", + "kind": "punctuation" }, { - "text": "var", + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" }, + { + "text": ",", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "Error", - "kind": "localName" + "text": "d", + "kind": "parameterName" + }, + { + "text": "?", + "kind": "punctuation" }, { "text": ":", @@ -25231,45 +25050,40 @@ "kind": "space" }, { - "text": "ErrorConstructor", - "kind": "interfaceName" - } - ], - "documentation": [] - }, - { - "name": "EvalError", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", + "text": "any", "kind": "keyword" }, + { + "text": ",", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "EvalError", - "kind": "localName" + "text": "e", + "kind": "parameterName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "?", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "EvalError", - "kind": "localName" + "text": "any", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -25280,36 +25094,103 @@ "kind": "space" }, { - "text": "EvalErrorConstructor", - "kind": "interfaceName" + "text": "void", + "kind": "keyword" } ], - "documentation": [] - }, - { - "name": "RangeError", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ + "documentation": [ { - "text": "interface", - "kind": "keyword" + "text": "This is multiplication function", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "", + "kind": "text" + } + ] }, { - "text": " ", - "kind": "space" + "name": "param", + "text": [ + { + "text": "a", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "first number", + "kind": "text" + } + ] }, { - "text": "RangeError", - "kind": "localName" + "name": "param", + "text": [ + { + "text": "b", + "kind": "text" + } + ] }, { - "text": "\n", - "kind": "lineBreak" + "name": "param", + "text": [ + { + "text": "c", + "kind": "text" + } + ] }, { - "text": "var", + "name": "param", + "text": [ + { + "text": "d", + "kind": "text" + } + ] + }, + { + "name": "anotherTag" + }, + { + "name": "param", + "text": [ + { + "text": "e", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "LastParam", + "kind": "text" + } + ] + }, + { + "name": "anotherTag" + } + ] + }, + { + "name": "noHelpComment1", + "kind": "function", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "function", "kind": "keyword" }, { @@ -25317,8 +25198,16 @@ "kind": "space" }, { - "text": "RangeError", - "kind": "localName" + "text": "noHelpComment1", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -25329,20 +25218,20 @@ "kind": "space" }, { - "text": "RangeErrorConstructor", - "kind": "interfaceName" + "text": "void", + "kind": "keyword" } ], "documentation": [] }, { - "name": "ReferenceError", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "noHelpComment2", + "kind": "function", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -25350,24 +25239,16 @@ "kind": "space" }, { - "text": "ReferenceError", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": "noHelpComment2", + "kind": "functionName" }, - { - "text": " ", - "kind": "space" + { + "text": "(", + "kind": "punctuation" }, { - "text": "ReferenceError", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -25378,20 +25259,20 @@ "kind": "space" }, { - "text": "ReferenceErrorConstructor", - "kind": "interfaceName" + "text": "void", + "kind": "keyword" } ], "documentation": [] }, { - "name": "SyntaxError", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "noHelpComment3", + "kind": "function", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -25399,24 +25280,16 @@ "kind": "space" }, { - "text": "SyntaxError", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": "noHelpComment3", + "kind": "functionName" }, { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "SyntaxError", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -25427,20 +25300,20 @@ "kind": "space" }, { - "text": "SyntaxErrorConstructor", - "kind": "interfaceName" + "text": "void", + "kind": "keyword" } ], "documentation": [] }, { - "name": "TypeError", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "NoQuickInfoClass", + "kind": "class", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "class", "kind": "keyword" }, { @@ -25448,15 +25321,20 @@ "kind": "space" }, { - "text": "TypeError", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, + "text": "NoQuickInfoClass", + "kind": "className" + } + ], + "documentation": [] + }, + { + "name": "simple", + "kind": "function", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { - "text": "var", + "text": "function", "kind": "keyword" }, { @@ -25464,8 +25342,16 @@ "kind": "space" }, { - "text": "TypeError", - "kind": "localName" + "text": "simple", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -25476,20 +25362,20 @@ "kind": "space" }, { - "text": "TypeErrorConstructor", - "kind": "interfaceName" + "text": "void", + "kind": "keyword" } ], "documentation": [] }, { - "name": "URIError", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "square", + "kind": "function", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -25497,24 +25383,32 @@ "kind": "space" }, { - "text": "URIError", - "kind": "localName" + "text": "square", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "a", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "URIError", - "kind": "localName" + "text": "number", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -25525,20 +25419,62 @@ "kind": "space" }, { - "text": "URIErrorConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "this is square function", + "kind": "text" + } + ], + "tags": [ + { + "name": "paramTag", + "text": [ + { + "text": "{ number } a this is input number of paramTag", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "a", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "this is input number", + "kind": "text" + } + ] + }, + { + "name": "returnType", + "text": [ + { + "text": "{ number } it is return type", + "kind": "text" + } + ] + } + ] }, { - "name": "JSON", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "subtract", + "kind": "function", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -25546,24 +25482,40 @@ "kind": "space" }, { - "text": "JSON", - "kind": "localName" + "text": "subtract", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", + "text": "a", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" }, + { + "text": ",", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "JSON", - "kind": "localName" + "text": "b", + "kind": "parameterName" }, { "text": ":", @@ -25574,62 +25526,72 @@ "kind": "space" }, { - "text": "JSON", - "kind": "localName" - } - ], - "documentation": [ + "text": "number", + "kind": "keyword" + }, { - "text": "An intrinsic object that provides functions to convert JavaScript values to and from the JavaScript Object Notation (JSON) format.", - "kind": "text" - } - ] - }, - { - "name": "Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ + "text": ",", + "kind": "punctuation" + }, { - "text": "interface", - "kind": "keyword" + "text": " ", + "kind": "space" + }, + { + "text": "c", + "kind": "parameterName" + }, + { + "text": "?", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Array", - "kind": "localName" + "text": "(", + "kind": "punctuation" }, { - "text": "<", + "text": ")", "kind": "punctuation" }, { - "text": "T", - "kind": "typeParameterName" + "text": " ", + "kind": "space" }, { - "text": ">", + "text": "=>", "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": " ", + "kind": "space" }, { - "text": "var", + "text": "string", "kind": "keyword" }, + { + "text": ",", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "Array", - "kind": "localName" + "text": "d", + "kind": "parameterName" + }, + { + "text": "?", + "kind": "punctuation" }, { "text": ":", @@ -25640,45 +25602,44 @@ "kind": "space" }, { - "text": "ArrayConstructor", - "kind": "interfaceName" - } - ], - "documentation": [] - }, - { - "name": "ArrayBuffer", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ + "text": "(", + "kind": "punctuation" + }, { - "text": "interface", - "kind": "keyword" + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "ArrayBuffer", - "kind": "localName" + "text": "=>", + "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": " ", + "kind": "space" }, { - "text": "var", + "text": "string", "kind": "keyword" }, + { + "text": ",", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "ArrayBuffer", - "kind": "localName" + "text": "e", + "kind": "parameterName" + }, + { + "text": "?", + "kind": "punctuation" }, { "text": ":", @@ -25689,50 +25650,44 @@ "kind": "space" }, { - "text": "ArrayBufferConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "Represents a raw buffer of binary data, which is used to store data for the\r\ndifferent typed arrays. ArrayBuffers cannot be read from or written to directly,\r\nbut can be passed to a typed array or DataView Object to interpret the raw\r\nbuffer as needed.", - "kind": "text" - } - ] - }, - { - "name": "DataView", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ + "text": "(", + "kind": "punctuation" + }, { - "text": "interface", - "kind": "keyword" + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "DataView", - "kind": "localName" + "text": "=>", + "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": " ", + "kind": "space" }, { - "text": "var", + "text": "string", "kind": "keyword" }, + { + "text": ",", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "DataView", - "kind": "localName" + "text": "f", + "kind": "parameterName" + }, + { + "text": "?", + "kind": "punctuation" }, { "text": ":", @@ -25743,45 +25698,32 @@ "kind": "space" }, { - "text": "DataViewConstructor", - "kind": "interfaceName" - } - ], - "documentation": [] - }, - { - "name": "Int8Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ + "text": "(", + "kind": "punctuation" + }, { - "text": "interface", - "kind": "keyword" + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Int8Array", - "kind": "localName" + "text": "=>", + "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": " ", + "kind": "space" }, { - "text": "var", + "text": "string", "kind": "keyword" }, { - "text": " ", - "kind": "space" - }, - { - "text": "Int8Array", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -25792,25 +25734,121 @@ "kind": "space" }, { - "text": "Int8ArrayConstructor", - "kind": "interfaceName" + "text": "void", + "kind": "keyword" } ], "documentation": [ { - "text": "A typed array of 8-bit integer values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", + "text": "This is subtract function", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "b", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "this is about b", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "c", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "this is optional param c", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "d", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "this is optional param d", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "e", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "this is optional param e", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "{ () => string; } } f this is optional param f", + "kind": "text" + } + ] + } ] }, { - "name": "Uint8Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "sum", + "kind": "function", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -25818,24 +25856,16 @@ "kind": "space" }, { - "text": "Uint8Array", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": "sum", + "kind": "functionName" }, { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "Uint8Array", - "kind": "localName" + "text": "a", + "kind": "parameterName" }, { "text": ":", @@ -25846,50 +25876,36 @@ "kind": "space" }, { - "text": "Uint8ArrayConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] - }, - { - "name": "Uint8ClampedArray", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", + "text": "number", "kind": "keyword" }, { - "text": " ", - "kind": "space" + "text": ",", + "kind": "punctuation" }, { - "text": "Uint8ClampedArray", - "kind": "localName" + "text": " ", + "kind": "space" }, { - "text": "\n", - "kind": "lineBreak" + "text": "b", + "kind": "parameterName" }, { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Uint8ClampedArray", - "kind": "localName" + "text": "number", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -25900,39 +25916,59 @@ "kind": "space" }, { - "text": "Uint8ClampedArrayConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], "documentation": [ { - "text": "A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0.\r\nIf the requested number of bytes could not be allocated an exception is raised.", + "text": "Adds two integers and returns the result", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "a", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "first number", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "b", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "second number", + "kind": "text" + } + ] + } ] }, { - "name": "Int16Array", + "name": "x", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Int16Array", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, { "text": "var", "kind": "keyword" @@ -25942,7 +25978,7 @@ "kind": "space" }, { - "text": "Int16Array", + "text": "x", "kind": "localName" }, { @@ -25954,39 +25990,23 @@ "kind": "space" }, { - "text": "Int16ArrayConstructor", - "kind": "interfaceName" + "text": "any", + "kind": "keyword" } ], "documentation": [ { - "text": "A typed array of 16-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "text": "This is a comment", "kind": "text" } ] }, { - "name": "Uint16Array", + "name": "y", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Uint16Array", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, { "text": "var", "kind": "keyword" @@ -25996,7 +26016,7 @@ "kind": "space" }, { - "text": "Uint16Array", + "text": "y", "kind": "localName" }, { @@ -26008,19 +26028,19 @@ "kind": "space" }, { - "text": "Uint16ArrayConstructor", - "kind": "interfaceName" + "text": "any", + "kind": "keyword" } ], "documentation": [ { - "text": "A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "text": "This is a comment", "kind": "text" } ] }, { - "name": "Int32Array", + "name": "Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -26034,9 +26054,21 @@ "kind": "space" }, { - "text": "Int32Array", + "text": "Array", "kind": "localName" }, + { + "text": "<", + "kind": "punctuation" + }, + { + "text": "T", + "kind": "typeParameterName" + }, + { + "text": ">", + "kind": "punctuation" + }, { "text": "\n", "kind": "lineBreak" @@ -26050,7 +26082,7 @@ "kind": "space" }, { - "text": "Int32Array", + "text": "Array", "kind": "localName" }, { @@ -26062,19 +26094,14 @@ "kind": "space" }, { - "text": "Int32ArrayConstructor", + "text": "ArrayConstructor", "kind": "interfaceName" } ], - "documentation": [ - { - "text": "A typed array of 32-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "Uint32Array", + "name": "ArrayBuffer", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -26088,7 +26115,7 @@ "kind": "space" }, { - "text": "Uint32Array", + "text": "ArrayBuffer", "kind": "localName" }, { @@ -26104,7 +26131,7 @@ "kind": "space" }, { - "text": "Uint32Array", + "text": "ArrayBuffer", "kind": "localName" }, { @@ -26116,73 +26143,55 @@ "kind": "space" }, { - "text": "Uint32ArrayConstructor", + "text": "ArrayBufferConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "text": "Represents a raw buffer of binary data, which is used to store data for the\r\ndifferent typed arrays. ArrayBuffers cannot be read from or written to directly,\r\nbut can be passed to a typed array or DataView Object to interpret the raw\r\nbuffer as needed.", "kind": "text" } ] }, { - "name": "Float32Array", - "kind": "var", - "kindModifiers": "declare", + "name": "as", + "kind": "keyword", + "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "as", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Float32Array", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, + } + ] + }, + { + "name": "async", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "var", + "text": "async", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Float32Array", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Float32ArrayConstructor", - "kind": "interfaceName" } - ], - "documentation": [ + ] + }, + { + "name": "await", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "A typed array of 32-bit float values. The contents are initialized to 0. If the requested number\r\nof bytes could not be allocated an exception is raised.", - "kind": "text" + "text": "await", + "kind": "keyword" } ] }, { - "name": "Float64Array", + "name": "Boolean", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -26196,7 +26205,7 @@ "kind": "space" }, { - "text": "Float64Array", + "text": "Boolean", "kind": "localName" }, { @@ -26212,7 +26221,7 @@ "kind": "space" }, { - "text": "Float64Array", + "text": "Boolean", "kind": "localName" }, { @@ -26224,266 +26233,92 @@ "kind": "space" }, { - "text": "Float64ArrayConstructor", + "text": "BooleanConstructor", "kind": "interfaceName" } ], - "documentation": [ - { - "text": "A typed array of 64-bit float values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "Intl", - "kind": "module", - "kindModifiers": "declare", + "name": "break", + "kind": "keyword", + "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "namespace", + "text": "break", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Intl", - "kind": "moduleName" } - ], - "documentation": [] + ] }, { - "name": "simple", - "kind": "function", + "name": "case", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "simple", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", + "text": "case", "kind": "keyword" } - ], - "documentation": [] + ] }, { - "name": "multiLine", - "kind": "function", + "name": "catch", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "multiLine", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", + "text": "catch", "kind": "keyword" } - ], - "documentation": [] + ] }, { - "name": "jsDocSingleLine", - "kind": "function", + "name": "class", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "jsDocSingleLine", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", + "text": "class", "kind": "keyword" } - ], - "documentation": [ - { - "text": "this is eg of single line jsdoc style comment", - "kind": "text" - } ] }, { - "name": "jsDocMultiLine", - "kind": "function", + "name": "const", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "jsDocMultiLine", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", + "text": "const", "kind": "keyword" } - ], - "documentation": [ - { - "text": "this is multiple line jsdoc stule comment\nNew line1\nNew Line2", - "kind": "text" - } ] }, { - "name": "jsDocMultiLineMerge", - "kind": "function", + "name": "continue", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "jsDocMultiLineMerge", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "documentation": [ + "sortText": "15", + "displayParts": [ { - "text": "Another this one too", - "kind": "text" + "text": "continue", + "kind": "keyword" } ] }, { - "name": "jsDocMixedComments1", - "kind": "function", - "kindModifiers": "", - "sortText": "11", + "name": "DataView", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -26491,16 +26326,24 @@ "kind": "space" }, { - "text": "jsDocMixedComments1", - "kind": "functionName" + "text": "DataView", + "kind": "localName" }, { - "text": "(", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": ")", - "kind": "punctuation" + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "DataView", + "kind": "localName" }, { "text": ":", @@ -26511,25 +26354,20 @@ "kind": "space" }, { - "text": "void", - "kind": "keyword" + "text": "DataViewConstructor", + "kind": "interfaceName" } ], - "documentation": [ - { - "text": "jsdoc comment", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "jsDocMixedComments2", - "kind": "function", - "kindModifiers": "", - "sortText": "11", + "name": "Date", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -26537,16 +26375,24 @@ "kind": "space" }, { - "text": "jsDocMixedComments2", - "kind": "functionName" + "text": "Date", + "kind": "localName" }, { - "text": "(", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": ")", - "kind": "punctuation" + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Date", + "kind": "localName" }, { "text": ":", @@ -26557,22 +26403,34 @@ "kind": "space" }, { - "text": "void", - "kind": "keyword" + "text": "DateConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "another jsDocComment", + "text": "Enables basic storage and retrieval of dates and times.", "kind": "text" } ] }, { - "name": "jsDocMixedComments3", - "kind": "function", + "name": "debugger", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", + "displayParts": [ + { + "text": "debugger", + "kind": "keyword" + } + ] + }, + { + "name": "decodeURI", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { "text": "function", @@ -26583,7 +26441,7 @@ "kind": "space" }, { - "text": "jsDocMixedComments3", + "text": "decodeURI", "kind": "functionName" }, { @@ -26591,8 +26449,8 @@ "kind": "punctuation" }, { - "text": ")", - "kind": "punctuation" + "text": "encodedURI", + "kind": "parameterName" }, { "text": ":", @@ -26603,39 +26461,9 @@ "kind": "space" }, { - "text": "void", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "* triplestar jsDocComment", - "kind": "text" - } - ] - }, - { - "name": "jsDocMixedComments4", - "kind": "function", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "function", + "text": "string", "kind": "keyword" }, - { - "text": " ", - "kind": "space" - }, - { - "text": "jsDocMixedComments4", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, { "text": ")", "kind": "punctuation" @@ -26649,22 +26477,41 @@ "kind": "space" }, { - "text": "void", + "text": "string", "kind": "keyword" } ], "documentation": [ { - "text": "another jsDocComment", + "text": "Gets the unencoded version of an encoded Uniform Resource Identifier (URI).", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "encodedURI", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI.", + "kind": "text" + } + ] + } ] }, { - "name": "jsDocMixedComments5", + "name": "decodeURIComponent", "kind": "function", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { "text": "function", @@ -26675,7 +26522,7 @@ "kind": "space" }, { - "text": "jsDocMixedComments5", + "text": "decodeURIComponent", "kind": "functionName" }, { @@ -26683,8 +26530,8 @@ "kind": "punctuation" }, { - "text": ")", - "kind": "punctuation" + "text": "encodedURIComponent", + "kind": "parameterName" }, { "text": ":", @@ -26695,39 +26542,9 @@ "kind": "space" }, { - "text": "void", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "another jsDocComment", - "kind": "text" - } - ] - }, - { - "name": "jsDocMixedComments6", - "kind": "function", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "function", + "text": "string", "kind": "keyword" }, - { - "text": " ", - "kind": "space" - }, - { - "text": "jsDocMixedComments6", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, { "text": ")", "kind": "punctuation" @@ -26741,63 +26558,89 @@ "kind": "space" }, { - "text": "void", + "text": "string", "kind": "keyword" } ], "documentation": [ { - "text": "jsdoc comment", + "text": "Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "encodedURIComponent", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI component.", + "kind": "text" + } + ] + } ] }, { - "name": "noHelpComment1", - "kind": "function", + "name": "default", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "function", + "text": "default", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "noHelpComment1", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, + } + ] + }, + { + "name": "delete", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": ":", - "kind": "punctuation" - }, + "text": "delete", + "kind": "keyword" + } + ] + }, + { + "name": "do", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": " ", - "kind": "space" - }, + "text": "do", + "kind": "keyword" + } + ] + }, + { + "name": "else", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "void", + "text": "else", "kind": "keyword" } - ], - "documentation": [] + ] }, { - "name": "noHelpComment2", + "name": "encodeURI", "kind": "function", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { "text": "function", @@ -26808,7 +26651,7 @@ "kind": "space" }, { - "text": "noHelpComment2", + "text": "encodeURI", "kind": "functionName" }, { @@ -26816,8 +26659,8 @@ "kind": "punctuation" }, { - "text": ")", - "kind": "punctuation" + "text": "uri", + "kind": "parameterName" }, { "text": ":", @@ -26828,34 +26671,9 @@ "kind": "space" }, { - "text": "void", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "noHelpComment3", - "kind": "function", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "function", + "text": "string", "kind": "keyword" }, - { - "text": " ", - "kind": "space" - }, - { - "text": "noHelpComment3", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, { "text": ")", "kind": "punctuation" @@ -26869,17 +26687,41 @@ "kind": "space" }, { - "text": "void", + "text": "string", "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Encodes a text string as a valid Uniform Resource Identifier (URI)", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "uri", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI.", + "kind": "text" + } + ] + } + ] }, { - "name": "sum", + "name": "encodeURIComponent", "kind": "function", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { "text": "function", @@ -26890,7 +26732,7 @@ "kind": "space" }, { - "text": "sum", + "text": "encodeURIComponent", "kind": "functionName" }, { @@ -26898,7 +26740,7 @@ "kind": "punctuation" }, { - "text": "a", + "text": "uriComponent", "kind": "parameterName" }, { @@ -26910,11 +26752,15 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" }, { - "text": ",", + "text": " ", + "kind": "space" + }, + { + "text": "|", "kind": "punctuation" }, { @@ -26922,11 +26768,15 @@ "kind": "space" }, { - "text": "b", - "kind": "parameterName" + "text": "number", + "kind": "keyword" }, { - "text": ":", + "text": " ", + "kind": "space" + }, + { + "text": "|", "kind": "punctuation" }, { @@ -26934,7 +26784,7 @@ "kind": "space" }, { - "text": "number", + "text": "boolean", "kind": "keyword" }, { @@ -26950,13 +26800,13 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" } ], "documentation": [ { - "text": "Adds two integers and returns the result", + "text": "Encodes a text string as a valid component of a Uniform Resource Identifier (URI).", "kind": "text" } ], @@ -26965,24 +26815,7 @@ "name": "param", "text": [ { - "text": "a", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "first number", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "b", + "text": "uriComponent", "kind": "parameterName" }, { @@ -26990,7 +26823,7 @@ "kind": "space" }, { - "text": "second number", + "text": "A value representing an encoded URI component.", "kind": "text" } ] @@ -26998,110 +26831,50 @@ ] }, { - "name": "multiply", - "kind": "function", + "name": "enum", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "multiply", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "a", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", + "text": "enum", "kind": "keyword" - }, - { - "text": ",", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "b", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, + } + ] + }, + { + "name": "Error", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { - "text": "number", + "text": "interface", "kind": "keyword" }, - { - "text": ",", - "kind": "punctuation" - }, { "text": " ", "kind": "space" }, { - "text": "c", - "kind": "parameterName" - }, - { - "text": "?", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "Error", + "kind": "localName" }, { - "text": "number", - "kind": "keyword" + "text": "\n", + "kind": "lineBreak" }, { - "text": ",", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "d", - "kind": "parameterName" - }, - { - "text": "?", - "kind": "punctuation" + "text": "Error", + "kind": "localName" }, { "text": ":", @@ -27112,25 +26885,38 @@ "kind": "space" }, { - "text": "any", - "kind": "keyword" - }, + "text": "ErrorConstructor", + "kind": "interfaceName" + } + ], + "documentation": [] + }, + { + "name": "eval", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { - "text": ",", - "kind": "punctuation" + "text": "function", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "e", - "kind": "parameterName" + "text": "eval", + "kind": "functionName" }, { - "text": "?", + "text": "(", "kind": "punctuation" }, + { + "text": "x", + "kind": "parameterName" + }, { "text": ":", "kind": "punctuation" @@ -27140,7 +26926,7 @@ "kind": "space" }, { - "text": "any", + "text": "string", "kind": "keyword" }, { @@ -27156,13 +26942,13 @@ "kind": "space" }, { - "text": "void", + "text": "any", "kind": "keyword" } ], "documentation": [ { - "text": "This is multiplication function", + "text": "Evaluates JavaScript code and executes it.", "kind": "text" } ], @@ -27171,63 +26957,7 @@ "name": "param", "text": [ { - "text": "", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "a", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "first number", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "b", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "c", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "d", - "kind": "text" - } - ] - }, - { - "name": "anotherTag" - }, - { - "name": "param", - "text": [ - { - "text": "e", + "text": "x", "kind": "parameterName" }, { @@ -27235,24 +26965,21 @@ "kind": "space" }, { - "text": "LastParam", + "text": "A String value that contains valid JavaScript code.", "kind": "text" } ] - }, - { - "name": "anotherTag" } ] }, { - "name": "f1", - "kind": "function", - "kindModifiers": "", - "sortText": "11", + "name": "EvalError", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -27260,32 +26987,24 @@ "kind": "space" }, { - "text": "f1", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" + "text": "EvalError", + "kind": "localName" }, { - "text": "a", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "EvalError", + "kind": "localName" }, { "text": ":", @@ -27296,7 +27015,68 @@ "kind": "space" }, { - "text": "any", + "text": "EvalErrorConstructor", + "kind": "interfaceName" + } + ], + "documentation": [] + }, + { + "name": "export", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "export", + "kind": "keyword" + } + ] + }, + { + "name": "extends", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "extends", + "kind": "keyword" + } + ] + }, + { + "name": "false", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "false", + "kind": "keyword" + } + ] + }, + { + "name": "finally", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "finally", + "kind": "keyword" + } + ] + }, + { + "name": "Float32Array", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", "kind": "keyword" }, { @@ -27304,64 +27084,53 @@ "kind": "space" }, { - "text": "(", - "kind": "punctuation" + "text": "Float32Array", + "kind": "localName" }, { - "text": "+", - "kind": "operator" + "text": "\n", + "kind": "lineBreak" }, { - "text": "1", - "kind": "numericLiteral" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "overload", - "kind": "text" + "text": "Float32Array", + "kind": "localName" }, { - "text": ")", + "text": ":", "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Float32ArrayConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "fn f1 with number", + "text": "A typed array of 32-bit float values. The contents are initialized to 0. If the requested number\r\nof bytes could not be allocated an exception is raised.", "kind": "text" } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "b", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "about b", - "kind": "text" - } - ] - } ] }, { - "name": "subtract", - "kind": "function", - "kindModifiers": "", - "sortText": "11", + "name": "Float64Array", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -27369,31 +27138,27 @@ "kind": "space" }, { - "text": "subtract", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" + "text": "Float64Array", + "kind": "localName" }, { - "text": "a", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "Float64Array", + "kind": "localName" }, { - "text": ",", + "text": ":", "kind": "punctuation" }, { @@ -27401,51 +27166,77 @@ "kind": "space" }, { - "text": "b", - "kind": "parameterName" - }, + "text": "Float64ArrayConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ { - "text": ":", - "kind": "punctuation" - }, + "text": "A typed array of 64-bit float values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] + }, + { + "name": "for", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": " ", - "kind": "space" - }, + "text": "for", + "kind": "keyword" + } + ] + }, + { + "name": "function", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "number", + "text": "function", "kind": "keyword" - }, + } + ] + }, + { + "name": "Function", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { - "text": ",", - "kind": "punctuation" + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "c", - "kind": "parameterName" + "text": "Function", + "kind": "localName" }, { - "text": "?", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "(", - "kind": "punctuation" + "text": "Function", + "kind": "localName" }, { - "text": ")", + "text": ":", "kind": "punctuation" }, { @@ -27453,32 +27244,103 @@ "kind": "space" }, { - "text": "=>", - "kind": "punctuation" + "text": "FunctionConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ + { + "text": "Creates a new function.", + "kind": "text" + } + ] + }, + { + "name": "globalThis", + "kind": "module", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "module", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "string", + "text": "globalThis", + "kind": "moduleName" + } + ], + "documentation": [] + }, + { + "name": "if", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "if", "kind": "keyword" - }, + } + ] + }, + { + "name": "implements", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": ",", - "kind": "punctuation" + "text": "implements", + "kind": "keyword" + } + ] + }, + { + "name": "import", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "import", + "kind": "keyword" + } + ] + }, + { + "name": "in", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "in", + "kind": "keyword" + } + ] + }, + { + "name": "Infinity", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "d", - "kind": "parameterName" - }, - { - "text": "?", - "kind": "punctuation" + "text": "Infinity", + "kind": "localName" }, { "text": ":", @@ -27489,31 +27351,60 @@ "kind": "space" }, { - "text": "(", - "kind": "punctuation" - }, + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "instanceof", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": ")", - "kind": "punctuation" + "text": "instanceof", + "kind": "keyword" + } + ] + }, + { + "name": "Int16Array", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "=>", - "kind": "punctuation" + "text": "Int16Array", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "Int16Array", + "kind": "localName" }, { - "text": ",", + "text": ":", "kind": "punctuation" }, { @@ -27521,47 +27412,53 @@ "kind": "space" }, { - "text": "e", - "kind": "parameterName" - }, + "text": "Int16ArrayConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ { - "text": "?", - "kind": "punctuation" - }, + "text": "A typed array of 16-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] + }, + { + "name": "Int32Array", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { - "text": ":", - "kind": "punctuation" + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" + "text": "Int32Array", + "kind": "localName" }, { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, { - "text": "=>", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "Int32Array", + "kind": "localName" }, { - "text": ",", + "text": ":", "kind": "punctuation" }, { @@ -27569,48 +27466,50 @@ "kind": "space" }, { - "text": "f", - "kind": "parameterName" - }, + "text": "Int32ArrayConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ { - "text": "?", - "kind": "punctuation" - }, + "text": "A typed array of 32-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] + }, + { + "name": "Int8Array", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { - "text": ":", - "kind": "punctuation" + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" + "text": "Int8Array", + "kind": "localName" }, { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, { - "text": "=>", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "Int8Array", + "kind": "localName" }, { "text": ":", @@ -27621,118 +27520,55 @@ "kind": "space" }, { - "text": "void", - "kind": "keyword" + "text": "Int8ArrayConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "This is subtract function", + "text": "A typed array of 8-bit integer values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", "kind": "text" } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "b", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "this is about b", - "kind": "text" - } - ] - }, + ] + }, + { + "name": "interface", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "c", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "this is optional param c", - "kind": "text" - } - ] - }, + "text": "interface", + "kind": "keyword" + } + ] + }, + { + "name": "Intl", + "kind": "module", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "d", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "this is optional param d", - "kind": "text" - } - ] + "text": "namespace", + "kind": "keyword" }, { - "name": "param", - "text": [ - { - "text": "e", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "this is optional param e", - "kind": "text" - } - ] + "text": " ", + "kind": "space" }, { - "name": "param", - "text": [ - { - "text": "", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "{ () => string; } } f this is optional param f", - "kind": "text" - } - ] + "text": "Intl", + "kind": "moduleName" } - ] + ], + "documentation": [] }, { - "name": "square", + "name": "isFinite", "kind": "function", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { "text": "function", @@ -27743,7 +27579,7 @@ "kind": "space" }, { - "text": "square", + "text": "isFinite", "kind": "functionName" }, { @@ -27751,7 +27587,7 @@ "kind": "punctuation" }, { - "text": "a", + "text": "number", "kind": "parameterName" }, { @@ -27779,31 +27615,22 @@ "kind": "space" }, { - "text": "number", + "text": "boolean", "kind": "keyword" } ], "documentation": [ { - "text": "this is square function", + "text": "Determines whether a supplied number is finite.", "kind": "text" } ], "tags": [ - { - "name": "paramTag", - "text": [ - { - "text": "{ number } a this is input number of paramTag", - "kind": "text" - } - ] - }, { "name": "param", "text": [ { - "text": "a", + "text": "number", "kind": "parameterName" }, { @@ -27811,16 +27638,7 @@ "kind": "space" }, { - "text": "this is input number", - "kind": "text" - } - ] - }, - { - "name": "returnType", - "text": [ - { - "text": "{ number } it is return type", + "text": "Any numeric value.", "kind": "text" } ] @@ -27828,10 +27646,10 @@ ] }, { - "name": "divide", + "name": "isNaN", "kind": "function", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { "text": "function", @@ -27842,39 +27660,15 @@ "kind": "space" }, { - "text": "divide", + "text": "isNaN", "kind": "functionName" }, { "text": "(", "kind": "punctuation" }, - { - "text": "a", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, { "text": "number", - "kind": "keyword" - }, - { - "text": ",", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "b", "kind": "parameterName" }, { @@ -27902,13 +27696,13 @@ "kind": "space" }, { - "text": "void", + "text": "boolean", "kind": "keyword" } ], "documentation": [ { - "text": "this is divide function", + "text": "Returns a Boolean value that indicates whether a value is the reserved value NaN (not a number).", "kind": "text" } ], @@ -27917,33 +27711,7 @@ "name": "param", "text": [ { - "text": "a", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "this is a", - "kind": "text" - } - ] - }, - { - "name": "paramTag", - "text": [ - { - "text": "{ number } g this is optional param g", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "b", + "text": "number", "kind": "parameterName" }, { @@ -27951,7 +27719,7 @@ "kind": "space" }, { - "text": "this is b", + "text": "A numeric value.", "kind": "text" } ] @@ -27959,13 +27727,13 @@ ] }, { - "name": "fooBar", - "kind": "function", - "kindModifiers": "", - "sortText": "11", + "name": "JSON", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -27973,56 +27741,24 @@ "kind": "space" }, { - "text": "fooBar", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "foo", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" + "text": "JSON", + "kind": "localName" }, { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, { - "text": "string", + "text": "var", "kind": "keyword" }, - { - "text": ",", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "bar", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, { "text": " ", "kind": "space" }, { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "JSON", + "kind": "localName" }, { "text": ":", @@ -28033,61 +27769,37 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "JSON", + "kind": "localName" } ], "documentation": [ { - "text": "Function returns string concat of foo and bar", + "text": "An intrinsic object that provides functions to convert JavaScript values to and from the JavaScript Object Notation (JSON) format.", "kind": "text" } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "foo", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "is string", - "kind": "text" - } - ] - }, + ] + }, + { + "name": "let", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "bar", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "is second string", - "kind": "text" - } - ] + "text": "let", + "kind": "keyword" } ] }, { - "name": "jsDocParamTest", - "kind": "function", - "kindModifiers": "", - "sortText": "11", + "name": "Math", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -28095,31 +27807,27 @@ "kind": "space" }, { - "text": "jsDocParamTest", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" + "text": "Math", + "kind": "localName" }, { - "text": "a", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "Math", + "kind": "localName" }, { - "text": ",", + "text": ":", "kind": "punctuation" }, { @@ -28127,23 +27835,37 @@ "kind": "space" }, { - "text": "b", - "kind": "parameterName" - }, + "text": "Math", + "kind": "localName" + } + ], + "documentation": [ { - "text": ":", - "kind": "punctuation" + "text": "An intrinsic object that provides basic mathematics functionality and constants.", + "kind": "text" + } + ] + }, + { + "name": "NaN", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "NaN", + "kind": "localName" }, { - "text": ",", + "text": ":", "kind": "punctuation" }, { @@ -28151,48 +27873,69 @@ "kind": "space" }, { - "text": "c", - "kind": "parameterName" - }, + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "new", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "new", + "kind": "keyword" + } + ] + }, + { + "name": "null", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "null", + "kind": "keyword" + } + ] + }, + { + "name": "Number", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { - "text": ":", - "kind": "punctuation" + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" - }, - { - "text": ",", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "Number", + "kind": "localName" }, { - "text": "d", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "Number", + "kind": "localName" }, { "text": ":", @@ -28203,61 +27946,25 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "NumberConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "this is jsdoc style function with param tag as well as inline parameter help", + "text": "An object that represents a number of any kind. All JavaScript numbers are 64-bit floating-point numbers.", "kind": "text" } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "a", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "it is first parameter", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "c", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "it is third parameter", - "kind": "text" - } - ] - } ] }, { - "name": "jsDocCommentAlignmentTest1", - "kind": "function", - "kindModifiers": "", - "sortText": "11", + "name": "Object", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -28265,16 +27972,24 @@ "kind": "space" }, { - "text": "jsDocCommentAlignmentTest1", - "kind": "functionName" + "text": "Object", + "kind": "localName" }, { - "text": "(", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": ")", - "kind": "punctuation" + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Object", + "kind": "localName" }, { "text": ":", @@ -28285,22 +28000,34 @@ "kind": "space" }, { - "text": "void", - "kind": "keyword" + "text": "ObjectConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "This is function comment\nAnd properly aligned comment", + "text": "Provides functionality common to all JavaScript objects.", "kind": "text" } ] }, { - "name": "jsDocCommentAlignmentTest2", - "kind": "function", + "name": "package", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", + "displayParts": [ + { + "text": "package", + "kind": "keyword" + } + ] + }, + { + "name": "parseFloat", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { "text": "function", @@ -28311,13 +28038,29 @@ "kind": "space" }, { - "text": "jsDocCommentAlignmentTest2", + "text": "parseFloat", "kind": "functionName" }, { "text": "(", "kind": "punctuation" }, + { + "text": "string", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, { "text": ")", "kind": "punctuation" @@ -28331,22 +28074,41 @@ "kind": "space" }, { - "text": "void", + "text": "number", "kind": "keyword" } ], "documentation": [ { - "text": "This is function comment\n And aligned with 4 space char margin", + "text": "Converts a string to a floating-point number.", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string that contains a floating-point number.", + "kind": "text" + } + ] + } ] }, { - "name": "jsDocCommentAlignmentTest3", + "name": "parseInt", "kind": "function", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { "text": "function", @@ -28357,7 +28119,7 @@ "kind": "space" }, { - "text": "jsDocCommentAlignmentTest3", + "text": "parseInt", "kind": "functionName" }, { @@ -28365,7 +28127,7 @@ "kind": "punctuation" }, { - "text": "a", + "text": "string", "kind": "parameterName" }, { @@ -28389,33 +28151,13 @@ "kind": "space" }, { - "text": "b", + "text": "radix", "kind": "parameterName" }, { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - }, - { - "text": ",", + "text": "?", "kind": "punctuation" }, - { - "text": " ", - "kind": "space" - }, - { - "text": "c", - "kind": "parameterName" - }, { "text": ":", "kind": "punctuation" @@ -28425,7 +28167,7 @@ "kind": "space" }, { - "text": "any", + "text": "number", "kind": "keyword" }, { @@ -28441,13 +28183,13 @@ "kind": "space" }, { - "text": "void", + "text": "number", "kind": "keyword" } ], "documentation": [ { - "text": "This is function comment\n And aligned with 4 space char margin", + "text": "Converts a string to an integer.", "kind": "text" } ], @@ -28456,24 +28198,7 @@ "name": "param", "text": [ { - "text": "a", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "this is info about a\nspanning on two lines and aligned perfectly", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "b", + "text": "string", "kind": "parameterName" }, { @@ -28481,7 +28206,7 @@ "kind": "space" }, { - "text": "this is info about b\nspanning on two lines and aligned perfectly\nspanning one more line alined perfectly\n spanning another line with more margin", + "text": "A string to convert into a number.", "kind": "text" } ] @@ -28490,7 +28215,7 @@ "name": "param", "text": [ { - "text": "c", + "text": "radix", "kind": "parameterName" }, { @@ -28498,7 +28223,7 @@ "kind": "space" }, { - "text": "this is info about b\nnot aligned text about parameter will eat only one space", + "text": "A value between 2 and 36 that specifies the base of the number in `string`.\r\nIf this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal.\r\nAll other strings are considered decimal.", "kind": "text" } ] @@ -28506,13 +28231,13 @@ ] }, { - "name": "x", + "name": "RangeError", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -28520,35 +28245,13 @@ "kind": "space" }, { - "text": "x", + "text": "RangeError", "kind": "localName" }, { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, - { - "text": "any", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "This is a comment", - "kind": "text" - } - ] - }, - { - "name": "y", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ { "text": "var", "kind": "keyword" @@ -28558,7 +28261,7 @@ "kind": "space" }, { - "text": "y", + "text": "RangeError", "kind": "localName" }, { @@ -28570,25 +28273,20 @@ "kind": "space" }, { - "text": "any", - "kind": "keyword" + "text": "RangeErrorConstructor", + "kind": "interfaceName" } ], - "documentation": [ - { - "text": "This is a comment", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "NoQuickInfoClass", - "kind": "class", - "kindModifiers": "", - "sortText": "11", + "name": "ReferenceError", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "class", + "text": "interface", "kind": "keyword" }, { @@ -28596,18 +28294,13 @@ "kind": "space" }, { - "text": "NoQuickInfoClass", - "kind": "className" - } - ], - "documentation": [] - }, - { - "name": "undefined", - "kind": "var", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "ReferenceError", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, { "text": "var", "kind": "keyword" @@ -28617,335 +28310,211 @@ "kind": "space" }, { - "text": "undefined", - "kind": "propertyName" - } - ], - "documentation": [] - }, - { - "name": "break", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "break", - "kind": "keyword" - } - ] - }, - { - "name": "case", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "case", - "kind": "keyword" - } - ] - }, - { - "name": "catch", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "catch", - "kind": "keyword" - } - ] - }, - { - "name": "class", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "class", - "kind": "keyword" - } - ] - }, - { - "name": "const", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "const", - "kind": "keyword" - } - ] - }, - { - "name": "continue", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "continue", - "kind": "keyword" - } - ] - }, - { - "name": "debugger", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "debugger", - "kind": "keyword" - } - ] - }, - { - "name": "default", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "default", - "kind": "keyword" - } - ] - }, - { - "name": "delete", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "delete", - "kind": "keyword" - } - ] - }, - { - "name": "do", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "do", - "kind": "keyword" - } - ] - }, - { - "name": "else", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "else", - "kind": "keyword" - } - ] - }, - { - "name": "enum", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "enum", - "kind": "keyword" - } - ] - }, - { - "name": "export", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "export", - "kind": "keyword" - } - ] - }, - { - "name": "extends", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "extends", - "kind": "keyword" - } - ] - }, - { - "name": "false", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "ReferenceError", + "kind": "localName" + }, { - "text": "false", - "kind": "keyword" - } - ] - }, - { - "name": "finally", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": ":", + "kind": "punctuation" + }, { - "text": "finally", - "kind": "keyword" - } - ] - }, - { - "name": "for", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "for", - "kind": "keyword" + "text": "ReferenceErrorConstructor", + "kind": "interfaceName" } - ] + ], + "documentation": [] }, { - "name": "function", - "kind": "keyword", - "kindModifiers": "", + "name": "RegExp", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "if", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "if", + "text": " ", + "kind": "space" + }, + { + "text": "RegExp", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "RegExp", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "RegExpConstructor", + "kind": "interfaceName" } - ] + ], + "documentation": [] }, { - "name": "import", + "name": "return", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "import", + "text": "return", "kind": "keyword" } ] }, { - "name": "in", - "kind": "keyword", - "kindModifiers": "", + "name": "String", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "in", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "instanceof", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "instanceof", + "text": " ", + "kind": "space" + }, + { + "text": "String", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "String", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "StringConstructor", + "kind": "interfaceName" } - ] - }, - { - "name": "new", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "new", - "kind": "keyword" + "text": "Allows manipulation and formatting of text strings and determination and location of substrings within strings.", + "kind": "text" } ] }, { - "name": "null", + "name": "super", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "null", + "text": "super", "kind": "keyword" } ] }, { - "name": "return", + "name": "switch", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "return", + "text": "switch", "kind": "keyword" } ] }, { - "name": "super", - "kind": "keyword", - "kindModifiers": "", + "name": "SyntaxError", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "super", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "switch", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "switch", + "text": " ", + "kind": "space" + }, + { + "text": "SyntaxError", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "SyntaxError", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "SyntaxErrorConstructor", + "kind": "interfaceName" } - ] + ], + "documentation": [] }, { "name": "this", @@ -28995,6 +28564,55 @@ } ] }, + { + "name": "TypeError", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "TypeError", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "TypeError", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "TypeErrorConstructor", + "kind": "interfaceName" + } + ], + "documentation": [] + }, { "name": "typeof", "kind": "keyword", @@ -29008,193 +28626,446 @@ ] }, { - "name": "var", - "kind": "keyword", - "kindModifiers": "", + "name": "Uint16Array", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint16Array", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, { "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint16Array", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint16ArrayConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ + { + "text": "A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" } ] }, { - "name": "void", - "kind": "keyword", - "kindModifiers": "", + "name": "Uint32Array", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "void", + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint32Array", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint32Array", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint32ArrayConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ + { + "text": "A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" } ] }, { - "name": "while", - "kind": "keyword", - "kindModifiers": "", + "name": "Uint8Array", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "while", + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint8Array", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint8Array", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint8ArrayConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ + { + "text": "A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" } ] }, { - "name": "with", - "kind": "keyword", - "kindModifiers": "", + "name": "Uint8ClampedArray", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "with", + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint8ClampedArray", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint8ClampedArray", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint8ClampedArrayConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ + { + "text": "A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0.\r\nIf the requested number of bytes could not be allocated an exception is raised.", + "kind": "text" } ] }, { - "name": "implements", - "kind": "keyword", + "name": "undefined", + "kind": "var", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "implements", + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "undefined", + "kind": "propertyName" } - ] + ], + "documentation": [] }, { - "name": "interface", - "kind": "keyword", - "kindModifiers": "", + "name": "URIError", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", - "kind": "keyword" + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "URIError", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "URIError", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "URIErrorConstructor", + "kind": "interfaceName" } - ] + ], + "documentation": [] }, { - "name": "let", + "name": "var", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "let", + "text": "var", "kind": "keyword" } ] }, { - "name": "package", + "name": "void", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "package", + "text": "void", "kind": "keyword" } ] }, { - "name": "yield", + "name": "while", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "yield", + "text": "while", "kind": "keyword" } ] }, { - "name": "as", + "name": "with", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "as", + "text": "with", "kind": "keyword" } ] }, { - "name": "async", + "name": "yield", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "async", + "text": "yield", "kind": "keyword" } ] }, { - "name": "await", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", + "name": "escape", + "kind": "function", + "kindModifiers": "deprecated,declare", + "sortText": "z15", "displayParts": [ { - "text": "await", + "text": "function", "kind": "keyword" - } - ] - } - ] - } - }, - { - "marker": { - "fileName": "/tests/cases/fourslash/completionsCommentsCommentParsing.ts", - "position": 3891, - "name": "44" - }, - "completionList": { - "isGlobalCompletion": true, - "isMemberCompletion": false, - "isNewIdentifierLocation": false, - "optionalReplacementSpan": { - "start": 3891, - "length": 14 - }, - "entries": [ - { - "name": "globalThis", - "kind": "module", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "module", + "text": " ", + "kind": "space" + }, + { + "text": "escape", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "string", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", "kind": "keyword" }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "globalThis", - "kind": "moduleName" + "text": "string", + "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Computes a new string in which certain characters have been replaced by a hexadecimal escape sequence.", + "kind": "text" + } + ], + "tags": [ + { + "name": "deprecated", + "text": [ + { + "text": "A legacy feature for browser compatibility", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string value", + "kind": "text" + } + ] + } + ] }, { - "name": "eval", + "name": "unescape", "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "deprecated,declare", + "sortText": "z15", "displayParts": [ { "text": "function", @@ -29205,7 +29076,7 @@ "kind": "space" }, { - "text": "eval", + "text": "unescape", "kind": "functionName" }, { @@ -29213,7 +29084,7 @@ "kind": "punctuation" }, { - "text": "x", + "text": "string", "kind": "parameterName" }, { @@ -29241,22 +29112,31 @@ "kind": "space" }, { - "text": "any", + "text": "string", "kind": "keyword" } ], "documentation": [ { - "text": "Evaluates JavaScript code and executes it.", + "text": "Computes a new string in which hexadecimal escape sequences are replaced with the character that it represents.", "kind": "text" } ], "tags": [ + { + "name": "deprecated", + "text": [ + { + "text": "A legacy feature for browser compatibility", + "kind": "text" + } + ] + }, { "name": "param", "text": [ { - "text": "x", + "text": "string", "kind": "parameterName" }, { @@ -29264,18 +29144,36 @@ "kind": "space" }, { - "text": "A String value that contains valid JavaScript code.", + "text": "A string value", "kind": "text" } ] } ] - }, + } + ] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/completionsCommentsCommentParsing.ts", + "position": 3891, + "name": "44" + }, + "completionList": { + "isGlobalCompletion": true, + "isMemberCompletion": false, + "isNewIdentifierLocation": false, + "optionalReplacementSpan": { + "start": 3891, + "length": 14 + }, + "entries": [ { - "name": "parseInt", + "name": "divide", "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { "text": "function", @@ -29286,7 +29184,7 @@ "kind": "space" }, { - "text": "parseInt", + "text": "divide", "kind": "functionName" }, { @@ -29294,7 +29192,7 @@ "kind": "punctuation" }, { - "text": "string", + "text": "a", "kind": "parameterName" }, { @@ -29306,7 +29204,7 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" }, { @@ -29318,13 +29216,9 @@ "kind": "space" }, { - "text": "radix", + "text": "b", "kind": "parameterName" }, - { - "text": "?", - "kind": "punctuation" - }, { "text": ":", "kind": "punctuation" @@ -29350,13 +29244,13 @@ "kind": "space" }, { - "text": "number", + "text": "void", "kind": "keyword" } ], "documentation": [ { - "text": "Converts a string to an integer.", + "text": "this is divide function", "kind": "text" } ], @@ -29365,7 +29259,7 @@ "name": "param", "text": [ { - "text": "string", + "text": "a", "kind": "parameterName" }, { @@ -29373,7 +29267,16 @@ "kind": "space" }, { - "text": "A string to convert into a number.", + "text": "this is a", + "kind": "text" + } + ] + }, + { + "name": "paramTag", + "text": [ + { + "text": "{ number } g this is optional param g", "kind": "text" } ] @@ -29382,7 +29285,7 @@ "name": "param", "text": [ { - "text": "radix", + "text": "b", "kind": "parameterName" }, { @@ -29390,7 +29293,7 @@ "kind": "space" }, { - "text": "A value between 2 and 36 that specifies the base of the number in `string`.\r\nIf this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal.\r\nAll other strings are considered decimal.", + "text": "this is b", "kind": "text" } ] @@ -29398,10 +29301,10 @@ ] }, { - "name": "parseFloat", + "name": "f1", "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { "text": "function", @@ -29412,7 +29315,7 @@ "kind": "space" }, { - "text": "parseFloat", + "text": "f1", "kind": "functionName" }, { @@ -29420,7 +29323,7 @@ "kind": "punctuation" }, { - "text": "string", + "text": "a", "kind": "parameterName" }, { @@ -29432,7 +29335,7 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" }, { @@ -29448,13 +29351,41 @@ "kind": "space" }, { - "text": "number", + "text": "any", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "+", + "kind": "operator" + }, + { + "text": "1", + "kind": "numericLiteral" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "overload", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" } ], "documentation": [ { - "text": "Converts a string to a floating-point number.", + "text": "fn f1 with number", "kind": "text" } ], @@ -29463,7 +29394,7 @@ "name": "param", "text": [ { - "text": "string", + "text": "b", "kind": "parameterName" }, { @@ -29471,7 +29402,7 @@ "kind": "space" }, { - "text": "A string that contains a floating-point number.", + "text": "about b", "kind": "text" } ] @@ -29479,10 +29410,10 @@ ] }, { - "name": "isNaN", + "name": "fooBar", "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { "text": "function", @@ -29493,7 +29424,7 @@ "kind": "space" }, { - "text": "isNaN", + "text": "fooBar", "kind": "functionName" }, { @@ -29501,7 +29432,7 @@ "kind": "punctuation" }, { - "text": "number", + "text": "foo", "kind": "parameterName" }, { @@ -29513,7 +29444,31 @@ "kind": "space" }, { - "text": "number", + "text": "string", + "kind": "keyword" + }, + { + "text": ",", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "bar", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", "kind": "keyword" }, { @@ -29529,13 +29484,13 @@ "kind": "space" }, { - "text": "boolean", + "text": "string", "kind": "keyword" } ], "documentation": [ { - "text": "Returns a Boolean value that indicates whether a value is the reserved value NaN (not a number).", + "text": "Function returns string concat of foo and bar", "kind": "text" } ], @@ -29544,7 +29499,7 @@ "name": "param", "text": [ { - "text": "number", + "text": "foo", "kind": "parameterName" }, { @@ -29552,7 +29507,24 @@ "kind": "space" }, { - "text": "A numeric value.", + "text": "is string", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "bar", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "is second string", "kind": "text" } ] @@ -29560,10 +29532,10 @@ ] }, { - "name": "isFinite", + "name": "jsDocCommentAlignmentTest1", "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { "text": "function", @@ -29574,7 +29546,7 @@ "kind": "space" }, { - "text": "isFinite", + "text": "jsDocCommentAlignmentTest1", "kind": "functionName" }, { @@ -29582,8 +29554,8 @@ "kind": "punctuation" }, { - "text": "number", - "kind": "parameterName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -29594,9 +29566,39 @@ "kind": "space" }, { - "text": "number", + "text": "void", + "kind": "keyword" + } + ], + "documentation": [ + { + "text": "This is function comment\nAnd properly aligned comment", + "kind": "text" + } + ] + }, + { + "name": "jsDocCommentAlignmentTest2", + "kind": "function", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "function", "kind": "keyword" }, + { + "text": " ", + "kind": "space" + }, + { + "text": "jsDocCommentAlignmentTest2", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, { "text": ")", "kind": "punctuation" @@ -29610,41 +29612,22 @@ "kind": "space" }, { - "text": "boolean", + "text": "void", "kind": "keyword" } ], "documentation": [ { - "text": "Determines whether a supplied number is finite.", + "text": "This is function comment\n And aligned with 4 space char margin", "kind": "text" } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "number", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Any numeric value.", - "kind": "text" - } - ] - } ] }, { - "name": "decodeURI", + "name": "jsDocCommentAlignmentTest3", "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { "text": "function", @@ -29655,7 +29638,7 @@ "kind": "space" }, { - "text": "decodeURI", + "text": "jsDocCommentAlignmentTest3", "kind": "functionName" }, { @@ -29663,7 +29646,7 @@ "kind": "punctuation" }, { - "text": "encodedURI", + "text": "a", "kind": "parameterName" }, { @@ -29679,11 +29662,7 @@ "kind": "keyword" }, { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", + "text": ",", "kind": "punctuation" }, { @@ -29691,60 +29670,31 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Gets the unencoded version of an encoded Uniform Resource Identifier (URI).", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "encodedURI", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI.", - "kind": "text" - } - ] - } - ] - }, - { - "name": "decodeURIComponent", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ + "text": "b", + "kind": "parameterName" + }, { - "text": "function", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "decodeURIComponent", - "kind": "functionName" + "text": "any", + "kind": "keyword" }, { - "text": "(", + "text": ",", "kind": "punctuation" }, { - "text": "encodedURIComponent", + "text": " ", + "kind": "space" + }, + { + "text": "c", "kind": "parameterName" }, { @@ -29756,7 +29706,7 @@ "kind": "space" }, { - "text": "string", + "text": "any", "kind": "keyword" }, { @@ -29772,13 +29722,13 @@ "kind": "space" }, { - "text": "string", + "text": "void", "kind": "keyword" } ], "documentation": [ { - "text": "Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).", + "text": "This is function comment\n And aligned with 4 space char margin", "kind": "text" } ], @@ -29787,7 +29737,41 @@ "name": "param", "text": [ { - "text": "encodedURIComponent", + "text": "a", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "this is info about a\nspanning on two lines and aligned perfectly", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "b", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "this is info about b\nspanning on two lines and aligned perfectly\nspanning one more line alined perfectly\n spanning another line with more margin", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "c", "kind": "parameterName" }, { @@ -29795,7 +29779,7 @@ "kind": "space" }, { - "text": "A value representing an encoded URI component.", + "text": "this is info about b\nnot aligned text about parameter will eat only one space", "kind": "text" } ] @@ -29803,10 +29787,10 @@ ] }, { - "name": "encodeURI", + "name": "jsDocMixedComments1", "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { "text": "function", @@ -29817,29 +29801,13 @@ "kind": "space" }, { - "text": "encodeURI", + "text": "jsDocMixedComments1", "kind": "functionName" }, { "text": "(", "kind": "punctuation" }, - { - "text": "uri", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, { "text": ")", "kind": "punctuation" @@ -29853,41 +29821,22 @@ "kind": "space" }, { - "text": "string", + "text": "void", "kind": "keyword" } ], "documentation": [ { - "text": "Encodes a text string as a valid Uniform Resource Identifier (URI)", + "text": "jsdoc comment", "kind": "text" } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "uri", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI.", - "kind": "text" - } - ] - } ] }, { - "name": "encodeURIComponent", + "name": "jsDocMixedComments2", "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { "text": "function", @@ -29898,7 +29847,7 @@ "kind": "space" }, { - "text": "encodeURIComponent", + "text": "jsDocMixedComments2", "kind": "functionName" }, { @@ -29906,8 +29855,8 @@ "kind": "punctuation" }, { - "text": "uriComponent", - "kind": "parameterName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -29918,23 +29867,25 @@ "kind": "space" }, { - "text": "string", + "text": "void", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "|", - "kind": "punctuation" - }, + } + ], + "documentation": [ { - "text": " ", - "kind": "space" - }, + "text": "another jsDocComment", + "kind": "text" + } + ] + }, + { + "name": "jsDocMixedComments3", + "kind": "function", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { - "text": "number", + "text": "function", "kind": "keyword" }, { @@ -29942,16 +29893,12 @@ "kind": "space" }, { - "text": "|", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "jsDocMixedComments3", + "kind": "functionName" }, { - "text": "boolean", - "kind": "keyword" + "text": "(", + "kind": "punctuation" }, { "text": ")", @@ -29966,41 +29913,22 @@ "kind": "space" }, { - "text": "string", + "text": "void", "kind": "keyword" } ], "documentation": [ { - "text": "Encodes a text string as a valid component of a Uniform Resource Identifier (URI).", + "text": "* triplestar jsDocComment", "kind": "text" } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "uriComponent", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI component.", - "kind": "text" - } - ] - } ] }, { - "name": "escape", + "name": "jsDocMixedComments4", "kind": "function", - "kindModifiers": "deprecated,declare", - "sortText": "23", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { "text": "function", @@ -30011,29 +29939,13 @@ "kind": "space" }, { - "text": "escape", + "text": "jsDocMixedComments4", "kind": "functionName" }, { "text": "(", "kind": "punctuation" }, - { - "text": "string", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, { "text": ")", "kind": "punctuation" @@ -30047,50 +29959,22 @@ "kind": "space" }, { - "text": "string", + "text": "void", "kind": "keyword" } ], "documentation": [ { - "text": "Computes a new string in which certain characters have been replaced by a hexadecimal escape sequence.", + "text": "another jsDocComment", "kind": "text" } - ], - "tags": [ - { - "name": "deprecated", - "text": [ - { - "text": "A legacy feature for browser compatibility", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string value", - "kind": "text" - } - ] - } ] }, { - "name": "unescape", + "name": "jsDocMixedComments5", "kind": "function", - "kindModifiers": "deprecated,declare", - "sortText": "23", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { "text": "function", @@ -30101,29 +29985,13 @@ "kind": "space" }, { - "text": "unescape", + "text": "jsDocMixedComments5", "kind": "functionName" }, { "text": "(", "kind": "punctuation" }, - { - "text": "string", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, { "text": ")", "kind": "punctuation" @@ -30137,53 +30005,25 @@ "kind": "space" }, { - "text": "string", + "text": "void", "kind": "keyword" } ], "documentation": [ { - "text": "Computes a new string in which hexadecimal escape sequences are replaced with the character that it represents.", + "text": "another jsDocComment", "kind": "text" } - ], - "tags": [ - { - "name": "deprecated", - "text": [ - { - "text": "A legacy feature for browser compatibility", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string value", - "kind": "text" - } - ] - } ] }, { - "name": "NaN", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "jsDocMixedComments6", + "kind": "function", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "var", + "text": "function", "kind": "keyword" }, { @@ -30191,8 +30031,16 @@ "kind": "space" }, { - "text": "NaN", - "kind": "localName" + "text": "jsDocMixedComments6", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -30203,20 +30051,25 @@ "kind": "space" }, { - "text": "number", + "text": "void", "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "jsdoc comment", + "kind": "text" + } + ] }, { - "name": "Infinity", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "jsDocMultiLine", + "kind": "function", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "var", + "text": "function", "kind": "keyword" }, { @@ -30224,8 +30077,16 @@ "kind": "space" }, { - "text": "Infinity", - "kind": "localName" + "text": "jsDocMultiLine", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -30236,20 +30097,25 @@ "kind": "space" }, { - "text": "number", + "text": "void", "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "this is multiple line jsdoc stule comment\nNew line1\nNew Line2", + "kind": "text" + } + ] }, { - "name": "Object", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "jsDocMultiLineMerge", + "kind": "function", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "var", + "text": "function", "kind": "keyword" }, { @@ -30257,24 +30123,8 @@ "kind": "space" }, { - "text": "Object", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "ObjectConstructor", - "kind": "interfaceName" - }, - { - "text": "\n", - "kind": "lineBreak" + "text": "jsDocMultiLineMerge", + "kind": "functionName" }, { "text": "(", @@ -30285,11 +30135,7 @@ "kind": "punctuation" }, { - "text": " ", - "kind": "space" - }, - { - "text": "=>", + "text": ":", "kind": "punctuation" }, { @@ -30297,73 +30143,66 @@ "kind": "space" }, { - "text": "any", + "text": "void", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, + } + ], + "documentation": [ { - "text": "+", - "kind": "operator" - }, + "text": "Another this one too", + "kind": "text" + } + ] + }, + { + "name": "jsDocParamTest", + "kind": "function", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { - "text": "1", - "kind": "numericLiteral" + "text": "function", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "overload", - "kind": "text" + "text": "jsDocParamTest", + "kind": "functionName" }, { - "text": ")", + "text": "(", "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": "a", + "kind": "parameterName" }, { - "text": "interface", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Object", - "kind": "localName" - } - ], - "documentation": [] - }, - { - "name": "Function", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "var", + "text": "number", "kind": "keyword" }, + { + "text": ",", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "Function", - "kind": "localName" + "text": "b", + "kind": "parameterName" }, { "text": ":", @@ -30374,23 +30213,19 @@ "kind": "space" }, { - "text": "FunctionConstructor", - "kind": "interfaceName" - }, - { - "text": "\n", - "kind": "lineBreak" + "text": "number", + "kind": "keyword" }, { - "text": "(", + "text": ",", "kind": "punctuation" }, { - "text": "...", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": "args", + "text": "c", "kind": "parameterName" }, { @@ -30402,19 +30237,11 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" }, { - "text": "[", - "kind": "punctuation" - }, - { - "text": "]", - "kind": "punctuation" - }, - { - "text": ")", + "text": ",", "kind": "punctuation" }, { @@ -30422,7 +30249,11 @@ "kind": "space" }, { - "text": "=>", + "text": "d", + "kind": "parameterName" + }, + { + "text": ":", "kind": "punctuation" }, { @@ -30430,77 +30261,93 @@ "kind": "space" }, { - "text": "Function", - "kind": "localName" + "text": "number", + "kind": "keyword" }, { - "text": "\n", - "kind": "lineBreak" + "text": ")", + "kind": "punctuation" }, { - "text": "interface", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Function", - "kind": "localName" + "text": "number", + "kind": "keyword" } ], "documentation": [ { - "text": "Creates a new function.", + "text": "this is jsdoc style function with param tag as well as inline parameter help", "kind": "text" } - ] - }, - { - "name": "String", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, + ], + "tags": [ { - "text": " ", - "kind": "space" + "name": "param", + "text": [ + { + "text": "a", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "it is first parameter", + "kind": "text" + } + ] }, { - "text": "String", - "kind": "localName" - }, + "name": "param", + "text": [ + { + "text": "c", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "it is third parameter", + "kind": "text" + } + ] + } + ] + }, + { + "name": "jsDocSingleLine", + "kind": "function", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { - "text": ":", - "kind": "punctuation" + "text": "function", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "StringConstructor", - "kind": "interfaceName" - }, - { - "text": "\n", - "kind": "lineBreak" + "text": "jsDocSingleLine", + "kind": "functionName" }, { "text": "(", "kind": "punctuation" }, { - "text": "value", - "kind": "parameterName" - }, - { - "text": "?", + "text": ")", "kind": "punctuation" }, { @@ -30512,61 +30359,66 @@ "kind": "space" }, { - "text": "any", + "text": "void", "kind": "keyword" - }, + } + ], + "documentation": [ { - "text": ")", - "kind": "punctuation" + "text": "this is eg of single line jsdoc style comment", + "kind": "text" + } + ] + }, + { + "name": "multiLine", + "kind": "function", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "function", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "=>", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "multiLine", + "kind": "functionName" }, { - "text": "string", - "kind": "keyword" + "text": "(", + "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": ")", + "kind": "punctuation" }, { - "text": "interface", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "String", - "kind": "localName" + "text": "void", + "kind": "keyword" } ], - "documentation": [ - { - "text": "Allows manipulation and formatting of text strings and determination and location of substrings within strings.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "Boolean", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "multiply", + "kind": "function", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "var", + "text": "function", "kind": "keyword" }, { @@ -30574,48 +30426,40 @@ "kind": "space" }, { - "text": "Boolean", - "kind": "localName" + "text": "multiply", + "kind": "functionName" }, { - "text": ":", + "text": "(", "kind": "punctuation" }, { - "text": " ", - "kind": "space" - }, - { - "text": "BooleanConstructor", - "kind": "interfaceName" - }, - { - "text": "\n", - "kind": "lineBreak" + "text": "a", + "kind": "parameterName" }, { - "text": "<", + "text": ":", "kind": "punctuation" }, { - "text": "T", - "kind": "typeParameterName" + "text": " ", + "kind": "space" }, { - "text": ">", - "kind": "punctuation" + "text": "number", + "kind": "keyword" }, { - "text": "(", + "text": ",", "kind": "punctuation" }, { - "text": "value", - "kind": "parameterName" + "text": " ", + "kind": "space" }, { - "text": "?", - "kind": "punctuation" + "text": "b", + "kind": "parameterName" }, { "text": ":", @@ -30626,11 +30470,11 @@ "kind": "space" }, { - "text": "T", - "kind": "typeParameterName" + "text": "number", + "kind": "keyword" }, { - "text": ")", + "text": ",", "kind": "punctuation" }, { @@ -30638,7 +30482,15 @@ "kind": "space" }, { - "text": "=>", + "text": "c", + "kind": "parameterName" + }, + { + "text": "?", + "kind": "punctuation" + }, + { + "text": ":", "kind": "punctuation" }, { @@ -30646,45 +30498,24 @@ "kind": "space" }, { - "text": "boolean", + "text": "number", "kind": "keyword" }, { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "interface", - "kind": "keyword" + "text": ",", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Boolean", - "kind": "localName" - } - ], - "documentation": [] - }, - { - "name": "Number", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" + "text": "d", + "kind": "parameterName" }, { - "text": "Number", - "kind": "localName" + "text": "?", + "kind": "punctuation" }, { "text": ":", @@ -30695,19 +30526,19 @@ "kind": "space" }, { - "text": "NumberConstructor", - "kind": "interfaceName" + "text": "any", + "kind": "keyword" }, { - "text": "\n", - "kind": "lineBreak" + "text": ",", + "kind": "punctuation" }, { - "text": "(", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": "value", + "text": "e", "kind": "parameterName" }, { @@ -30731,11 +30562,7 @@ "kind": "punctuation" }, { - "text": " ", - "kind": "space" - }, - { - "text": "=>", + "text": ":", "kind": "punctuation" }, { @@ -30743,41 +30570,103 @@ "kind": "space" }, { - "text": "number", + "text": "void", "kind": "keyword" + } + ], + "documentation": [ + { + "text": "This is multiplication function", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "", + "kind": "text" + } + ] }, { - "text": "\n", - "kind": "lineBreak" + "name": "param", + "text": [ + { + "text": "a", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "first number", + "kind": "text" + } + ] }, { - "text": "interface", - "kind": "keyword" + "name": "param", + "text": [ + { + "text": "b", + "kind": "text" + } + ] }, { - "text": " ", - "kind": "space" + "name": "param", + "text": [ + { + "text": "c", + "kind": "text" + } + ] }, { - "text": "Number", - "kind": "localName" - } - ], - "documentation": [ + "name": "param", + "text": [ + { + "text": "d", + "kind": "text" + } + ] + }, { - "text": "An object that represents a number of any kind. All JavaScript numbers are 64-bit floating-point numbers.", - "kind": "text" + "name": "anotherTag" + }, + { + "name": "param", + "text": [ + { + "text": "e", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "LastParam", + "kind": "text" + } + ] + }, + { + "name": "anotherTag" } ] }, { - "name": "Math", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "noHelpComment1", + "kind": "function", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -30785,24 +30674,16 @@ "kind": "space" }, { - "text": "Math", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": "noHelpComment1", + "kind": "functionName" }, { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "Math", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -30813,25 +30694,20 @@ "kind": "space" }, { - "text": "Math", - "kind": "localName" + "text": "void", + "kind": "keyword" } ], - "documentation": [ - { - "text": "An intrinsic object that provides basic mathematics functionality and constants.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "Date", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "noHelpComment2", + "kind": "function", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "var", + "text": "function", "kind": "keyword" }, { @@ -30839,8 +30715,16 @@ "kind": "space" }, { - "text": "Date", - "kind": "localName" + "text": "noHelpComment2", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -30851,12 +30735,29 @@ "kind": "space" }, { - "text": "DateConstructor", - "kind": "interfaceName" + "text": "void", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "noHelpComment3", + "kind": "function", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "function", + "kind": "keyword" }, { - "text": "\n", - "kind": "lineBreak" + "text": " ", + "kind": "space" + }, + { + "text": "noHelpComment3", + "kind": "functionName" }, { "text": "(", @@ -30867,11 +30768,7 @@ "kind": "punctuation" }, { - "text": " ", - "kind": "space" - }, - { - "text": "=>", + "text": ":", "kind": "punctuation" }, { @@ -30879,15 +30776,20 @@ "kind": "space" }, { - "text": "string", + "text": "void", "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, + } + ], + "documentation": [] + }, + { + "name": "NoQuickInfoClass", + "kind": "class", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { - "text": "interface", + "text": "class", "kind": "keyword" }, { @@ -30895,25 +30797,20 @@ "kind": "space" }, { - "text": "Date", - "kind": "localName" + "text": "NoQuickInfoClass", + "kind": "className" } ], - "documentation": [ - { - "text": "Enables basic storage and retrieval of dates and times.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "RegExp", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "simple", + "kind": "function", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "var", + "text": "function", "kind": "keyword" }, { @@ -30921,8 +30818,16 @@ "kind": "space" }, { - "text": "RegExp", - "kind": "localName" + "text": "simple", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -30933,19 +30838,36 @@ "kind": "space" }, { - "text": "RegExpConstructor", - "kind": "interfaceName" + "text": "void", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "square", + "kind": "function", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "function", + "kind": "keyword" }, { - "text": "\n", - "kind": "lineBreak" + "text": " ", + "kind": "space" + }, + { + "text": "square", + "kind": "functionName" }, { "text": "(", "kind": "punctuation" }, { - "text": "pattern", + "text": "a", "kind": "parameterName" }, { @@ -30957,15 +30879,15 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" }, { - "text": " ", - "kind": "space" + "text": ")", + "kind": "punctuation" }, { - "text": "|", + "text": ":", "kind": "punctuation" }, { @@ -30973,93 +30895,103 @@ "kind": "space" }, { - "text": "RegExp", - "kind": "localName" - }, + "text": "number", + "kind": "keyword" + } + ], + "documentation": [ { - "text": ")", - "kind": "punctuation" + "text": "this is square function", + "kind": "text" + } + ], + "tags": [ + { + "name": "paramTag", + "text": [ + { + "text": "{ number } a this is input number of paramTag", + "kind": "text" + } + ] }, { - "text": " ", - "kind": "space" + "name": "param", + "text": [ + { + "text": "a", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "this is input number", + "kind": "text" + } + ] }, { - "text": "=>", - "kind": "punctuation" + "name": "returnType", + "text": [ + { + "text": "{ number } it is return type", + "kind": "text" + } + ] + } + ] + }, + { + "name": "subtract", + "kind": "function", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "function", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "RegExp", - "kind": "localName" - }, - { - "text": " ", - "kind": "space" + "text": "subtract", + "kind": "functionName" }, { "text": "(", "kind": "punctuation" }, { - "text": "+", - "kind": "operator" + "text": "a", + "kind": "parameterName" }, { - "text": "1", - "kind": "numericLiteral" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "overload", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "interface", + "text": "number", "kind": "keyword" }, { - "text": " ", - "kind": "space" - }, - { - "text": "RegExp", - "kind": "localName" - } - ], - "documentation": [] - }, - { - "name": "Error", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "var", - "kind": "keyword" + "text": ",", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Error", - "kind": "localName" + "text": "b", + "kind": "parameterName" }, { "text": ":", @@ -31070,19 +31002,19 @@ "kind": "space" }, { - "text": "ErrorConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" }, { - "text": "\n", - "kind": "lineBreak" + "text": ",", + "kind": "punctuation" }, { - "text": "(", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": "message", + "text": "c", "kind": "parameterName" }, { @@ -31098,8 +31030,8 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "(", + "kind": "punctuation" }, { "text": ")", @@ -31118,48 +31050,11 @@ "kind": "space" }, { - "text": "Error", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Error", - "kind": "localName" - } - ], - "documentation": [] - }, - { - "name": "EvalError", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "var", + "text": "string", "kind": "keyword" }, { - "text": " ", - "kind": "space" - }, - { - "text": "EvalError", - "kind": "localName" - }, - { - "text": ":", + "text": ",", "kind": "punctuation" }, { @@ -31167,19 +31062,7 @@ "kind": "space" }, { - "text": "EvalErrorConstructor", - "kind": "interfaceName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "message", + "text": "d", "kind": "parameterName" }, { @@ -31195,8 +31078,8 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "(", + "kind": "punctuation" }, { "text": ")", @@ -31215,76 +31098,59 @@ "kind": "space" }, { - "text": "EvalError", - "kind": "localName" + "text": "string", + "kind": "keyword" + }, + { + "text": ",", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "(", - "kind": "punctuation" + "text": "e", + "kind": "parameterName" }, { - "text": "+", - "kind": "operator" + "text": "?", + "kind": "punctuation" }, { - "text": "1", - "kind": "numericLiteral" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "overload", - "kind": "text" + "text": "(", + "kind": "punctuation" }, { "text": ")", "kind": "punctuation" }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "interface", - "kind": "keyword" - }, { "text": " ", "kind": "space" }, { - "text": "EvalError", - "kind": "localName" - } - ], - "documentation": [] - }, - { - "name": "RangeError", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "var", - "kind": "keyword" + "text": "=>", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "RangeError", - "kind": "localName" + "text": "string", + "kind": "keyword" }, { - "text": ":", + "text": ",", "kind": "punctuation" }, { @@ -31292,19 +31158,7 @@ "kind": "space" }, { - "text": "RangeErrorConstructor", - "kind": "interfaceName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "message", + "text": "f", "kind": "parameterName" }, { @@ -31320,8 +31174,8 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "(", + "kind": "punctuation" }, { "text": ")", @@ -31340,64 +31194,137 @@ "kind": "space" }, { - "text": "RangeError", - "kind": "localName" - }, - { - "text": " ", - "kind": "space" + "text": "string", + "kind": "keyword" }, { - "text": "(", + "text": ")", "kind": "punctuation" }, { - "text": "+", - "kind": "operator" - }, - { - "text": "1", - "kind": "numericLiteral" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "overload", + "text": "void", + "kind": "keyword" + } + ], + "documentation": [ + { + "text": "This is subtract function", "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "", + "kind": "text" + } + ] }, { - "text": ")", - "kind": "punctuation" + "name": "param", + "text": [ + { + "text": "b", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "this is about b", + "kind": "text" + } + ] }, { - "text": "\n", - "kind": "lineBreak" + "name": "param", + "text": [ + { + "text": "c", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "this is optional param c", + "kind": "text" + } + ] }, { - "text": "interface", - "kind": "keyword" + "name": "param", + "text": [ + { + "text": "d", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "this is optional param d", + "kind": "text" + } + ] }, { - "text": " ", - "kind": "space" + "name": "param", + "text": [ + { + "text": "e", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "this is optional param e", + "kind": "text" + } + ] }, { - "text": "RangeError", - "kind": "localName" + "name": "param", + "text": [ + { + "text": "", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "{ () => string; } } f this is optional param f", + "kind": "text" + } + ] } - ], - "documentation": [] + ] }, { - "name": "ReferenceError", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "sum", + "kind": "function", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "var", + "text": "function", "kind": "keyword" }, { @@ -31405,8 +31332,16 @@ "kind": "space" }, { - "text": "ReferenceError", - "kind": "localName" + "text": "sum", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "a", + "kind": "parameterName" }, { "text": ":", @@ -31417,24 +31352,20 @@ "kind": "space" }, { - "text": "ReferenceErrorConstructor", - "kind": "interfaceName" - }, - { - "text": "\n", - "kind": "lineBreak" + "text": "number", + "kind": "keyword" }, { - "text": "(", + "text": ",", "kind": "punctuation" }, { - "text": "message", - "kind": "parameterName" + "text": " ", + "kind": "space" }, { - "text": "?", - "kind": "punctuation" + "text": "b", + "kind": "parameterName" }, { "text": ":", @@ -31445,7 +31376,7 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" }, { @@ -31453,11 +31384,7 @@ "kind": "punctuation" }, { - "text": " ", - "kind": "space" - }, - { - "text": "=>", + "text": ":", "kind": "punctuation" }, { @@ -31465,58 +31392,131 @@ "kind": "space" }, { - "text": "ReferenceError", - "kind": "localName" + "text": "number", + "kind": "keyword" + } + ], + "documentation": [ + { + "text": "Adds two integers and returns the result", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "a", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "first number", + "kind": "text" + } + ] }, { - "text": " ", - "kind": "space" + "name": "param", + "text": [ + { + "text": "b", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "second number", + "kind": "text" + } + ] + } + ] + }, + { + "name": "x", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "var", + "kind": "keyword" }, { - "text": "(", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": "+", - "kind": "operator" + "text": "x", + "kind": "localName" }, { - "text": "1", - "kind": "numericLiteral" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "overload", + "text": "any", + "kind": "keyword" + } + ], + "documentation": [ + { + "text": "This is a comment", "kind": "text" + } + ] + }, + { + "name": "y", + "kind": "var", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "var", + "kind": "keyword" }, { - "text": ")", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": "\n", - "kind": "lineBreak" + "text": "y", + "kind": "localName" }, { - "text": "interface", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "ReferenceError", - "kind": "localName" + "text": "any", + "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "This is a comment", + "kind": "text" + } + ] }, { - "name": "SyntaxError", + "name": "Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -31530,7 +31530,7 @@ "kind": "space" }, { - "text": "SyntaxError", + "text": "Array", "kind": "localName" }, { @@ -31542,7 +31542,7 @@ "kind": "space" }, { - "text": "SyntaxErrorConstructor", + "text": "ArrayConstructor", "kind": "interfaceName" }, { @@ -31554,7 +31554,7 @@ "kind": "punctuation" }, { - "text": "message", + "text": "arrayLength", "kind": "parameterName" }, { @@ -31570,7 +31570,7 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" }, { @@ -31590,8 +31590,16 @@ "kind": "space" }, { - "text": "SyntaxError", - "kind": "localName" + "text": "any", + "kind": "keyword" + }, + { + "text": "[", + "kind": "punctuation" + }, + { + "text": "]", + "kind": "punctuation" }, { "text": " ", @@ -31606,7 +31614,7 @@ "kind": "operator" }, { - "text": "1", + "text": "2", "kind": "numericLiteral" }, { @@ -31614,7 +31622,7 @@ "kind": "space" }, { - "text": "overload", + "text": "overloads", "kind": "text" }, { @@ -31634,18 +31642,46 @@ "kind": "space" }, { - "text": "SyntaxError", + "text": "Array", "kind": "localName" + }, + { + "text": "<", + "kind": "punctuation" + }, + { + "text": "T", + "kind": "typeParameterName" + }, + { + "text": ">", + "kind": "punctuation" } ], "documentation": [] }, { - "name": "TypeError", + "name": "ArrayBuffer", "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "ArrayBuffer", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, { "text": "var", "kind": "keyword" @@ -31655,7 +31691,7 @@ "kind": "space" }, { - "text": "TypeError", + "text": "ArrayBuffer", "kind": "localName" }, { @@ -31667,19 +31703,105 @@ "kind": "space" }, { - "text": "TypeErrorConstructor", + "text": "ArrayBufferConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ + { + "text": "Represents a raw buffer of binary data, which is used to store data for the\r\ndifferent typed arrays. ArrayBuffers cannot be read from or written to directly,\r\nbut can be passed to a typed array or DataView Object to interpret the raw\r\nbuffer as needed.", + "kind": "text" + } + ] + }, + { + "name": "as", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "as", + "kind": "keyword" + } + ] + }, + { + "name": "async", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "async", + "kind": "keyword" + } + ] + }, + { + "name": "await", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "await", + "kind": "keyword" + } + ] + }, + { + "name": "Boolean", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Boolean", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "BooleanConstructor", "kind": "interfaceName" }, { "text": "\n", "kind": "lineBreak" }, + { + "text": "<", + "kind": "punctuation" + }, + { + "text": "T", + "kind": "typeParameterName" + }, + { + "text": ">", + "kind": "punctuation" + }, { "text": "(", "kind": "punctuation" }, { - "text": "message", + "text": "value", "kind": "parameterName" }, { @@ -31695,8 +31817,8 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "T", + "kind": "typeParameterName" }, { "text": ")", @@ -31715,43 +31837,124 @@ "kind": "space" }, { - "text": "TypeError", - "kind": "localName" + "text": "boolean", + "kind": "keyword" }, { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, { - "text": "(", - "kind": "punctuation" + "text": "interface", + "kind": "keyword" }, { - "text": "+", - "kind": "operator" + "text": " ", + "kind": "space" }, { - "text": "1", - "kind": "numericLiteral" + "text": "Boolean", + "kind": "localName" + } + ], + "documentation": [] + }, + { + "name": "break", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "break", + "kind": "keyword" + } + ] + }, + { + "name": "case", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "case", + "kind": "keyword" + } + ] + }, + { + "name": "catch", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "catch", + "kind": "keyword" + } + ] + }, + { + "name": "class", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + } + ] + }, + { + "name": "const", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + } + ] + }, + { + "name": "continue", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "continue", + "kind": "keyword" + } + ] + }, + { + "name": "DataView", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "overload", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" + "text": "DataView", + "kind": "localName" }, { "text": "\n", "kind": "lineBreak" }, { - "text": "interface", + "text": "var", "kind": "keyword" }, { @@ -31759,14 +31962,26 @@ "kind": "space" }, { - "text": "TypeError", + "text": "DataView", "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "DataViewConstructor", + "kind": "interfaceName" } ], "documentation": [] }, { - "name": "URIError", + "name": "Date", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -31780,7 +31995,7 @@ "kind": "space" }, { - "text": "URIError", + "text": "Date", "kind": "localName" }, { @@ -31792,7 +32007,7 @@ "kind": "space" }, { - "text": "URIErrorConstructor", + "text": "DateConstructor", "kind": "interfaceName" }, { @@ -31804,15 +32019,15 @@ "kind": "punctuation" }, { - "text": "message", - "kind": "parameterName" + "text": ")", + "kind": "punctuation" }, { - "text": "?", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": ":", + "text": "=>", "kind": "punctuation" }, { @@ -31824,80 +32039,130 @@ "kind": "keyword" }, { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, { - "text": "=>", - "kind": "punctuation" + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "URIError", + "text": "Date", "kind": "localName" + } + ], + "documentation": [ + { + "text": "Enables basic storage and retrieval of dates and times.", + "kind": "text" + } + ] + }, + { + "name": "debugger", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "debugger", + "kind": "keyword" + } + ] + }, + { + "name": "decodeURI", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "function", + "kind": "keyword" }, { "text": " ", "kind": "space" }, + { + "text": "decodeURI", + "kind": "functionName" + }, { "text": "(", "kind": "punctuation" }, { - "text": "+", - "kind": "operator" + "text": "encodedURI", + "kind": "parameterName" }, { - "text": "1", - "kind": "numericLiteral" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "overload", - "kind": "text" + "text": "string", + "kind": "keyword" }, { "text": ")", "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "interface", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "URIError", - "kind": "localName" + "text": "string", + "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Gets the unencoded version of an encoded Uniform Resource Identifier (URI).", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "encodedURI", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI.", + "kind": "text" + } + ] + } + ] }, { - "name": "JSON", - "kind": "var", + "name": "decodeURIComponent", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -31905,24 +32170,32 @@ "kind": "space" }, { - "text": "JSON", - "kind": "localName" + "text": "decodeURIComponent", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "encodedURIComponent", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "JSON", - "kind": "localName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -31933,63 +32206,110 @@ "kind": "space" }, { - "text": "JSON", - "kind": "localName" + "text": "string", + "kind": "keyword" } ], "documentation": [ { - "text": "An intrinsic object that provides functions to convert JavaScript values to and from the JavaScript Object Notation (JSON) format.", + "text": "Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "encodedURIComponent", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI component.", + "kind": "text" + } + ] + } ] }, { - "name": "Array", - "kind": "var", - "kindModifiers": "declare", + "name": "default", + "kind": "keyword", + "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "var", + "text": "default", "kind": "keyword" - }, + } + ] + }, + { + "name": "delete", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": " ", - "kind": "space" - }, + "text": "delete", + "kind": "keyword" + } + ] + }, + { + "name": "do", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "Array", - "kind": "localName" - }, + "text": "do", + "kind": "keyword" + } + ] + }, + { + "name": "else", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": ":", - "kind": "punctuation" + "text": "else", + "kind": "keyword" + } + ] + }, + { + "name": "encodeURI", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "function", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "ArrayConstructor", - "kind": "interfaceName" - }, - { - "text": "\n", - "kind": "lineBreak" + "text": "encodeURI", + "kind": "functionName" }, { "text": "(", "kind": "punctuation" }, { - "text": "arrayLength", + "text": "uri", "kind": "parameterName" }, - { - "text": "?", - "kind": "punctuation" - }, { "text": ":", "kind": "punctuation" @@ -31999,7 +32319,7 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" }, { @@ -32007,11 +32327,7 @@ "kind": "punctuation" }, { - "text": " ", - "kind": "space" - }, - { - "text": "=>", + "text": ":", "kind": "punctuation" }, { @@ -32019,51 +32335,72 @@ "kind": "space" }, { - "text": "any", + "text": "string", "kind": "keyword" - }, + } + ], + "documentation": [ { - "text": "[", - "kind": "punctuation" - }, + "text": "Encodes a text string as a valid Uniform Resource Identifier (URI)", + "kind": "text" + } + ], + "tags": [ { - "text": "]", - "kind": "punctuation" + "name": "param", + "text": [ + { + "text": "uri", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI.", + "kind": "text" + } + ] + } + ] + }, + { + "name": "encodeURIComponent", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "function", + "kind": "keyword" }, { "text": " ", "kind": "space" }, + { + "text": "encodeURIComponent", + "kind": "functionName" + }, { "text": "(", "kind": "punctuation" }, { - "text": "+", - "kind": "operator" + "text": "uriComponent", + "kind": "parameterName" }, { - "text": "2", - "kind": "numericLiteral" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "overloads", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "interface", + "text": "string", "kind": "keyword" }, { @@ -32071,32 +32408,15 @@ "kind": "space" }, { - "text": "Array", - "kind": "localName" - }, - { - "text": "<", + "text": "|", "kind": "punctuation" }, { - "text": "T", - "kind": "typeParameterName" + "text": " ", + "kind": "space" }, { - "text": ">", - "kind": "punctuation" - } - ], - "documentation": [] - }, - { - "name": "ArrayBuffer", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", + "text": "number", "kind": "keyword" }, { @@ -32104,24 +32424,20 @@ "kind": "space" }, { - "text": "ArrayBuffer", - "kind": "localName" + "text": "|", + "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": " ", + "kind": "space" }, { - "text": "var", + "text": "boolean", "kind": "keyword" }, { - "text": " ", - "kind": "space" - }, - { - "text": "ArrayBuffer", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -32132,39 +32448,54 @@ "kind": "space" }, { - "text": "ArrayBufferConstructor", - "kind": "interfaceName" + "text": "string", + "kind": "keyword" } ], "documentation": [ { - "text": "Represents a raw buffer of binary data, which is used to store data for the\r\ndifferent typed arrays. ArrayBuffers cannot be read from or written to directly,\r\nbut can be passed to a typed array or DataView Object to interpret the raw\r\nbuffer as needed.", + "text": "Encodes a text string as a valid component of a Uniform Resource Identifier (URI).", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "uriComponent", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI component.", + "kind": "text" + } + ] + } ] }, { - "name": "DataView", - "kind": "var", - "kindModifiers": "declare", + "name": "enum", + "kind": "keyword", + "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "enum", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "DataView", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, + } + ] + }, + { + "name": "Error", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { "text": "var", "kind": "keyword" @@ -32174,7 +32505,7 @@ "kind": "space" }, { - "text": "DataView", + "text": "Error", "kind": "localName" }, { @@ -32186,48 +32517,39 @@ "kind": "space" }, { - "text": "DataViewConstructor", + "text": "ErrorConstructor", "kind": "interfaceName" - } - ], - "documentation": [] - }, - { - "name": "Int8Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ + }, { - "text": "interface", - "kind": "keyword" + "text": "\n", + "kind": "lineBreak" }, { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "Int8Array", - "kind": "localName" + "text": "message", + "kind": "parameterName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "?", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Int8Array", - "kind": "localName" + "text": "string", + "kind": "keyword" }, { - "text": ":", + "text": ")", "kind": "punctuation" }, { @@ -32235,33 +32557,15 @@ "kind": "space" }, { - "text": "Int8ArrayConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "A typed array of 8-bit integer values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] - }, - { - "name": "Uint8Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" + "text": "=>", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Uint8Array", + "text": "Error", "kind": "localName" }, { @@ -32269,7 +32573,7 @@ "kind": "lineBreak" }, { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -32277,37 +32581,20 @@ "kind": "space" }, { - "text": "Uint8Array", + "text": "Error", "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Uint8ArrayConstructor", - "kind": "interfaceName" } ], - "documentation": [ - { - "text": "A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "Uint8ClampedArray", - "kind": "var", + "name": "eval", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -32315,24 +32602,32 @@ "kind": "space" }, { - "text": "Uint8ClampedArray", - "kind": "localName" + "text": "eval", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "x", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Uint8ClampedArray", - "kind": "localName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -32343,39 +32638,42 @@ "kind": "space" }, { - "text": "Uint8ClampedArrayConstructor", - "kind": "interfaceName" + "text": "any", + "kind": "keyword" } ], "documentation": [ { - "text": "A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0.\r\nIf the requested number of bytes could not be allocated an exception is raised.", + "text": "Evaluates JavaScript code and executes it.", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "x", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A String value that contains valid JavaScript code.", + "kind": "text" + } + ] + } ] }, { - "name": "Int16Array", + "name": "EvalError", "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Int16Array", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, { "text": "var", "kind": "keyword" @@ -32385,7 +32683,7 @@ "kind": "space" }, { - "text": "Int16Array", + "text": "EvalError", "kind": "localName" }, { @@ -32397,50 +32695,24 @@ "kind": "space" }, { - "text": "Int16ArrayConstructor", + "text": "EvalErrorConstructor", "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "A typed array of 16-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] - }, - { - "name": "Uint16Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Uint16Array", - "kind": "localName" }, { "text": "\n", "kind": "lineBreak" }, { - "text": "var", - "kind": "keyword" + "text": "(", + "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "message", + "kind": "parameterName" }, { - "text": "Uint16Array", - "kind": "localName" + "text": "?", + "kind": "punctuation" }, { "text": ":", @@ -32451,95 +32723,63 @@ "kind": "space" }, { - "text": "Uint16ArrayConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] - }, - { - "name": "Int32Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", + "text": "string", "kind": "keyword" }, { - "text": " ", - "kind": "space" - }, - { - "text": "Int32Array", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": " ", + "kind": "space" }, { - "text": "var", - "kind": "keyword" + "text": "=>", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Int32Array", + "text": "EvalError", "kind": "localName" }, - { - "text": ":", - "kind": "punctuation" - }, { "text": " ", "kind": "space" }, { - "text": "Int32ArrayConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ + "text": "(", + "kind": "punctuation" + }, { - "text": "A typed array of 32-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] - }, - { - "name": "Uint32Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ + "text": "+", + "kind": "operator" + }, { - "text": "interface", - "kind": "keyword" + "text": "1", + "kind": "numericLiteral" }, { "text": " ", "kind": "space" }, { - "text": "Uint32Array", - "kind": "localName" + "text": "overload", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": "\n", "kind": "lineBreak" }, { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -32547,26 +32787,57 @@ "kind": "space" }, { - "text": "Uint32Array", + "text": "EvalError", "kind": "localName" - }, + } + ], + "documentation": [] + }, + { + "name": "export", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": ":", - "kind": "punctuation" - }, + "text": "export", + "kind": "keyword" + } + ] + }, + { + "name": "extends", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": " ", - "kind": "space" - }, + "text": "extends", + "kind": "keyword" + } + ] + }, + { + "name": "false", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "Uint32ArrayConstructor", - "kind": "interfaceName" + "text": "false", + "kind": "keyword" } - ], - "documentation": [ + ] + }, + { + "name": "finally", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" + "text": "finally", + "kind": "keyword" } ] }, @@ -32679,51 +32950,46 @@ ] }, { - "name": "Intl", - "kind": "module", - "kindModifiers": "declare", + "name": "for", + "kind": "keyword", + "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "namespace", + "text": "for", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Intl", - "kind": "moduleName" } - ], - "documentation": [] + ] }, { - "name": "simple", - "kind": "function", + "name": "function", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { "text": "function", "kind": "keyword" + } + ] + }, + { + "name": "Function", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "simple", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" + "text": "Function", + "kind": "localName" }, { "text": ":", @@ -32734,38 +33000,25 @@ "kind": "space" }, { - "text": "void", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "multiLine", - "kind": "function", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" + "text": "FunctionConstructor", + "kind": "interfaceName" }, { - "text": "multiLine", - "kind": "functionName" + "text": "\n", + "kind": "lineBreak" }, { "text": "(", "kind": "punctuation" }, { - "text": ")", + "text": "...", "kind": "punctuation" }, + { + "text": "args", + "kind": "parameterName" + }, { "text": ":", "kind": "punctuation" @@ -32775,40 +33028,19 @@ "kind": "space" }, { - "text": "void", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "jsDocSingleLine", - "kind": "function", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "function", + "text": "string", "kind": "keyword" }, { - "text": " ", - "kind": "space" - }, - { - "text": "jsDocSingleLine", - "kind": "functionName" - }, - { - "text": "(", + "text": "[", "kind": "punctuation" }, { - "text": ")", + "text": "]", "kind": "punctuation" }, { - "text": ":", + "text": ")", "kind": "punctuation" }, { @@ -32816,71 +33048,49 @@ "kind": "space" }, { - "text": "void", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "this is eg of single line jsdoc style comment", - "kind": "text" - } - ] - }, - { - "name": "jsDocMultiLine", - "kind": "function", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "function", - "kind": "keyword" + "text": "=>", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "jsDocMultiLine", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" + "text": "Function", + "kind": "localName" }, { - "text": ")", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "void", - "kind": "keyword" + "text": "Function", + "kind": "localName" } ], "documentation": [ { - "text": "this is multiple line jsdoc stule comment\nNew line1\nNew Line2", + "text": "Creates a new function.", "kind": "text" } ] }, { - "name": "jsDocMultiLineMerge", - "kind": "function", + "name": "globalThis", + "kind": "module", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "function", + "text": "module", "kind": "keyword" }, { @@ -32888,91 +33098,68 @@ "kind": "space" }, { - "text": "jsDocMultiLineMerge", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" + "text": "globalThis", + "kind": "moduleName" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "if", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "Another this one too", - "kind": "text" + "text": "if", + "kind": "keyword" } ] }, { - "name": "jsDocMixedComments1", - "kind": "function", + "name": "implements", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "function", + "text": "implements", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "jsDocMixedComments1", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, + } + ] + }, + { + "name": "import", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "void", + "text": "import", "kind": "keyword" } - ], - "documentation": [ + ] + }, + { + "name": "in", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "jsdoc comment", - "kind": "text" + "text": "in", + "kind": "keyword" } ] }, { - "name": "jsDocMixedComments2", - "kind": "function", - "kindModifiers": "", - "sortText": "11", + "name": "Infinity", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "function", + "text": "var", "kind": "keyword" }, { @@ -32980,16 +33167,8 @@ "kind": "space" }, { - "text": "jsDocMixedComments2", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" + "text": "Infinity", + "kind": "localName" }, { "text": ":", @@ -33000,25 +33179,32 @@ "kind": "space" }, { - "text": "void", + "text": "number", "kind": "keyword" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "instanceof", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "another jsDocComment", - "kind": "text" + "text": "instanceof", + "kind": "keyword" } ] }, { - "name": "jsDocMixedComments3", - "kind": "function", - "kindModifiers": "", - "sortText": "11", + "name": "Int16Array", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -33026,45 +33212,15 @@ "kind": "space" }, { - "text": "jsDocMixedComments3", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" + "text": "Int16Array", + "kind": "localName" }, { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, { - "text": "void", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "* triplestar jsDocComment", - "kind": "text" - } - ] - }, - { - "name": "jsDocMixedComments4", - "kind": "function", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "function", + "text": "var", "kind": "keyword" }, { @@ -33072,16 +33228,8 @@ "kind": "space" }, { - "text": "jsDocMixedComments4", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" + "text": "Int16Array", + "kind": "localName" }, { "text": ":", @@ -33092,25 +33240,25 @@ "kind": "space" }, { - "text": "void", - "kind": "keyword" + "text": "Int16ArrayConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "another jsDocComment", + "text": "A typed array of 16-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", "kind": "text" } ] }, { - "name": "jsDocMixedComments5", - "kind": "function", - "kindModifiers": "", - "sortText": "11", + "name": "Int32Array", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -33118,16 +33266,24 @@ "kind": "space" }, { - "text": "jsDocMixedComments5", - "kind": "functionName" + "text": "Int32Array", + "kind": "localName" }, { - "text": "(", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": ")", - "kind": "punctuation" + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Int32Array", + "kind": "localName" }, { "text": ":", @@ -33138,25 +33294,25 @@ "kind": "space" }, { - "text": "void", - "kind": "keyword" + "text": "Int32ArrayConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "another jsDocComment", + "text": "A typed array of 32-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", "kind": "text" } ] }, { - "name": "jsDocMixedComments6", - "kind": "function", - "kindModifiers": "", - "sortText": "11", + "name": "Int8Array", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -33164,16 +33320,24 @@ "kind": "space" }, { - "text": "jsDocMixedComments6", - "kind": "functionName" + "text": "Int8Array", + "kind": "localName" }, { - "text": "(", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": ")", - "kind": "punctuation" + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Int8Array", + "kind": "localName" }, { "text": ":", @@ -33184,104 +33348,55 @@ "kind": "space" }, { - "text": "void", - "kind": "keyword" + "text": "Int8ArrayConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "jsdoc comment", + "text": "A typed array of 8-bit integer values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", "kind": "text" } ] }, { - "name": "noHelpComment1", - "kind": "function", + "name": "interface", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "noHelpComment1", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", + "text": "interface", "kind": "keyword" } - ], - "documentation": [] + ] }, { - "name": "noHelpComment2", - "kind": "function", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "noHelpComment2", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, + "name": "Intl", + "kind": "module", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { - "text": ":", - "kind": "punctuation" + "text": "namespace", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "void", - "kind": "keyword" + "text": "Intl", + "kind": "moduleName" } ], "documentation": [] }, { - "name": "noHelpComment3", + "name": "isFinite", "kind": "function", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { "text": "function", @@ -33292,13 +33407,29 @@ "kind": "space" }, { - "text": "noHelpComment3", + "text": "isFinite", "kind": "functionName" }, { "text": "(", "kind": "punctuation" }, + { + "text": "number", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, { "text": ")", "kind": "punctuation" @@ -33312,17 +33443,41 @@ "kind": "space" }, { - "text": "void", + "text": "boolean", "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Determines whether a supplied number is finite.", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "number", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Any numeric value.", + "kind": "text" + } + ] + } + ] }, { - "name": "sum", + "name": "isNaN", "kind": "function", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { "text": "function", @@ -33333,39 +33488,15 @@ "kind": "space" }, { - "text": "sum", + "text": "isNaN", "kind": "functionName" }, { "text": "(", "kind": "punctuation" }, - { - "text": "a", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, { "text": "number", - "kind": "keyword" - }, - { - "text": ",", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "b", "kind": "parameterName" }, { @@ -33393,13 +33524,13 @@ "kind": "space" }, { - "text": "number", + "text": "boolean", "kind": "keyword" } ], "documentation": [ { - "text": "Adds two integers and returns the result", + "text": "Returns a Boolean value that indicates whether a value is the reserved value NaN (not a number).", "kind": "text" } ], @@ -33408,24 +33539,7 @@ "name": "param", "text": [ { - "text": "a", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "first number", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "b", + "text": "number", "kind": "parameterName" }, { @@ -33433,7 +33547,7 @@ "kind": "space" }, { - "text": "second number", + "text": "A numeric value.", "kind": "text" } ] @@ -33441,13 +33555,13 @@ ] }, { - "name": "multiply", - "kind": "function", - "kindModifiers": "", - "sortText": "11", + "name": "JSON", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -33455,16 +33569,24 @@ "kind": "space" }, { - "text": "multiply", - "kind": "functionName" + "text": "JSON", + "kind": "localName" }, { - "text": "(", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": "a", - "kind": "parameterName" + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "JSON", + "kind": "localName" }, { "text": ":", @@ -33475,35 +33597,65 @@ "kind": "space" }, { - "text": "number", + "text": "JSON", + "kind": "localName" + } + ], + "documentation": [ + { + "text": "An intrinsic object that provides functions to convert JavaScript values to and from the JavaScript Object Notation (JSON) format.", + "kind": "text" + } + ] + }, + { + "name": "let", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "let", "kind": "keyword" - }, + } + ] + }, + { + "name": "Math", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { - "text": ",", - "kind": "punctuation" + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "b", - "kind": "parameterName" + "text": "Math", + "kind": "localName" }, { - "text": ":", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "Math", + "kind": "localName" }, { - "text": ",", + "text": ":", "kind": "punctuation" }, { @@ -33511,12 +33663,34 @@ "kind": "space" }, { - "text": "c", - "kind": "parameterName" + "text": "Math", + "kind": "localName" + } + ], + "documentation": [ + { + "text": "An intrinsic object that provides basic mathematics functionality and constants.", + "kind": "text" + } + ] + }, + { + "name": "NaN", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "var", + "kind": "keyword" }, { - "text": "?", - "kind": "punctuation" + "text": " ", + "kind": "space" + }, + { + "text": "NaN", + "kind": "localName" }, { "text": ":", @@ -33529,22 +33703,51 @@ { "text": "number", "kind": "keyword" - }, + } + ], + "documentation": [] + }, + { + "name": "new", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": ",", - "kind": "punctuation" + "text": "new", + "kind": "keyword" + } + ] + }, + { + "name": "null", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "null", + "kind": "keyword" + } + ] + }, + { + "name": "Number", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "d", - "kind": "parameterName" - }, - { - "text": "?", - "kind": "punctuation" + "text": "Number", + "kind": "localName" }, { "text": ":", @@ -33555,19 +33758,19 @@ "kind": "space" }, { - "text": "any", - "kind": "keyword" + "text": "NumberConstructor", + "kind": "interfaceName" }, { - "text": ",", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "e", + "text": "value", "kind": "parameterName" }, { @@ -33591,7 +33794,11 @@ "kind": "punctuation" }, { - "text": ":", + "text": " ", + "kind": "space" + }, + { + "text": "=>", "kind": "punctuation" }, { @@ -33599,181 +33806,208 @@ "kind": "space" }, { - "text": "void", + "text": "number", + "kind": "keyword" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "interface", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Number", + "kind": "localName" } ], "documentation": [ { - "text": "This is multiplication function", + "text": "An object that represents a number of any kind. All JavaScript numbers are 64-bit floating-point numbers.", "kind": "text" } - ], - "tags": [ + ] + }, + { + "name": "Object", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "", - "kind": "text" - } - ] + "text": "var", + "kind": "keyword" }, { - "name": "param", - "text": [ - { - "text": "a", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "first number", - "kind": "text" - } - ] + "text": " ", + "kind": "space" }, { - "name": "param", - "text": [ - { - "text": "b", - "kind": "text" - } - ] + "text": "Object", + "kind": "localName" }, { - "name": "param", - "text": [ - { - "text": "c", - "kind": "text" - } - ] + "text": ":", + "kind": "punctuation" }, { - "name": "param", - "text": [ - { - "text": "d", - "kind": "text" - } - ] + "text": " ", + "kind": "space" }, { - "name": "anotherTag" + "text": "ObjectConstructor", + "kind": "interfaceName" }, { - "name": "param", - "text": [ - { - "text": "e", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "LastParam", - "kind": "text" - } - ] + "text": "\n", + "kind": "lineBreak" }, { - "name": "anotherTag" - } - ] - }, - { - "name": "f1", - "kind": "function", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ + "text": "(", + "kind": "punctuation" + }, { - "text": "function", - "kind": "keyword" + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "f1", - "kind": "functionName" + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" }, { "text": "(", "kind": "punctuation" }, { - "text": "a", - "kind": "parameterName" + "text": "+", + "kind": "operator" }, { - "text": ":", - "kind": "punctuation" + "text": "1", + "kind": "numericLiteral" }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "overload", + "kind": "text" }, { "text": ")", "kind": "punctuation" }, { - "text": ":", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "any", + "text": "Object", + "kind": "localName" + } + ], + "documentation": [] + }, + { + "name": "package", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "package", + "kind": "keyword" + } + ] + }, + { + "name": "parseFloat", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "function", "kind": "keyword" }, { "text": " ", "kind": "space" }, + { + "text": "parseFloat", + "kind": "functionName" + }, { "text": "(", "kind": "punctuation" }, { - "text": "+", - "kind": "operator" + "text": "string", + "kind": "parameterName" }, { - "text": "1", - "kind": "numericLiteral" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "overload", - "kind": "text" + "text": "string", + "kind": "keyword" }, { "text": ")", "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" } ], "documentation": [ { - "text": "fn f1 with number", + "text": "Converts a string to a floating-point number.", "kind": "text" } ], @@ -33782,7 +34016,7 @@ "name": "param", "text": [ { - "text": "b", + "text": "string", "kind": "parameterName" }, { @@ -33790,7 +34024,7 @@ "kind": "space" }, { - "text": "about b", + "text": "A string that contains a floating-point number.", "kind": "text" } ] @@ -33798,10 +34032,10 @@ ] }, { - "name": "subtract", + "name": "parseInt", "kind": "function", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { "text": "function", @@ -33812,7 +34046,7 @@ "kind": "space" }, { - "text": "subtract", + "text": "parseInt", "kind": "functionName" }, { @@ -33820,7 +34054,7 @@ "kind": "punctuation" }, { - "text": "a", + "text": "string", "kind": "parameterName" }, { @@ -33832,7 +34066,7 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" }, { @@ -33844,23 +34078,15 @@ "kind": "space" }, { - "text": "b", + "text": "radix", "kind": "parameterName" }, { - "text": ":", + "text": "?", "kind": "punctuation" }, { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": ",", + "text": ":", "kind": "punctuation" }, { @@ -33868,11 +34094,11 @@ "kind": "space" }, { - "text": "c", - "kind": "parameterName" + "text": "number", + "kind": "keyword" }, { - "text": "?", + "text": ")", "kind": "punctuation" }, { @@ -33884,19 +34110,73 @@ "kind": "space" }, { - "text": "(", - "kind": "punctuation" + "text": "number", + "kind": "keyword" + } + ], + "documentation": [ + { + "text": "Converts a string to an integer.", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string to convert into a number.", + "kind": "text" + } + ] }, { - "text": ")", - "kind": "punctuation" + "name": "param", + "text": [ + { + "text": "radix", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value between 2 and 36 that specifies the base of the number in `string`.\r\nIf this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal.\r\nAll other strings are considered decimal.", + "kind": "text" + } + ] + } + ] + }, + { + "name": "RangeError", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "=>", + "text": "RangeError", + "kind": "localName" + }, + { + "text": ":", "kind": "punctuation" }, { @@ -33904,19 +34184,19 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "RangeErrorConstructor", + "kind": "interfaceName" }, { - "text": ",", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "d", + "text": "message", "kind": "parameterName" }, { @@ -33932,8 +34212,8 @@ "kind": "space" }, { - "text": "(", - "kind": "punctuation" + "text": "string", + "kind": "keyword" }, { "text": ")", @@ -33952,59 +34232,76 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" - }, - { - "text": ",", - "kind": "punctuation" + "text": "RangeError", + "kind": "localName" }, { "text": " ", "kind": "space" }, { - "text": "e", - "kind": "parameterName" + "text": "(", + "kind": "punctuation" }, { - "text": "?", - "kind": "punctuation" + "text": "+", + "kind": "operator" }, { - "text": ":", - "kind": "punctuation" + "text": "1", + "kind": "numericLiteral" }, { "text": " ", "kind": "space" }, { - "text": "(", - "kind": "punctuation" + "text": "overload", + "kind": "text" }, { "text": ")", "kind": "punctuation" }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "interface", + "kind": "keyword" + }, { "text": " ", "kind": "space" }, { - "text": "=>", - "kind": "punctuation" + "text": "RangeError", + "kind": "localName" + } + ], + "documentation": [] + }, + { + "name": "ReferenceError", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "ReferenceError", + "kind": "localName" }, { - "text": ",", + "text": ":", "kind": "punctuation" }, { @@ -34012,7 +34309,19 @@ "kind": "space" }, { - "text": "f", + "text": "ReferenceErrorConstructor", + "kind": "interfaceName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "message", "kind": "parameterName" }, { @@ -34028,8 +34337,8 @@ "kind": "space" }, { - "text": "(", - "kind": "punctuation" + "text": "string", + "kind": "keyword" }, { "text": ")", @@ -34048,137 +34357,64 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "ReferenceError", + "kind": "localName" }, { - "text": ")", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": ":", + "text": "(", "kind": "punctuation" }, + { + "text": "+", + "kind": "operator" + }, + { + "text": "1", + "kind": "numericLiteral" + }, { "text": " ", "kind": "space" }, { - "text": "void", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "This is subtract function", + "text": "overload", "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "", - "kind": "text" - } - ] }, { - "name": "param", - "text": [ - { - "text": "b", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "this is about b", - "kind": "text" - } - ] + "text": ")", + "kind": "punctuation" }, { - "name": "param", - "text": [ - { - "text": "c", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "this is optional param c", - "kind": "text" - } - ] + "text": "\n", + "kind": "lineBreak" }, { - "name": "param", - "text": [ - { - "text": "d", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "this is optional param d", - "kind": "text" - } - ] + "text": "interface", + "kind": "keyword" }, { - "name": "param", - "text": [ - { - "text": "e", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "this is optional param e", - "kind": "text" - } - ] + "text": " ", + "kind": "space" }, { - "name": "param", - "text": [ - { - "text": "", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "{ () => string; } } f this is optional param f", - "kind": "text" - } - ] + "text": "ReferenceError", + "kind": "localName" } - ] + ], + "documentation": [] }, { - "name": "square", - "kind": "function", - "kindModifiers": "", - "sortText": "11", + "name": "RegExp", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "function", + "text": "var", "kind": "keyword" }, { @@ -34186,16 +34422,8 @@ "kind": "space" }, { - "text": "square", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "a", - "kind": "parameterName" + "text": "RegExp", + "kind": "localName" }, { "text": ":", @@ -34206,13 +34434,21 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "RegExpConstructor", + "kind": "interfaceName" }, { - "text": ")", + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "(", "kind": "punctuation" }, + { + "text": "pattern", + "kind": "parameterName" + }, { "text": ":", "kind": "punctuation" @@ -34222,82 +34458,35 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" - } - ], - "documentation": [ - { - "text": "this is square function", - "kind": "text" - } - ], - "tags": [ - { - "name": "paramTag", - "text": [ - { - "text": "{ number } a this is input number of paramTag", - "kind": "text" - } - ] }, { - "name": "param", - "text": [ - { - "text": "a", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "this is input number", - "kind": "text" - } - ] + "text": " ", + "kind": "space" }, { - "name": "returnType", - "text": [ - { - "text": "{ number } it is return type", - "kind": "text" - } - ] - } - ] - }, - { - "name": "divide", - "kind": "function", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "function", - "kind": "keyword" + "text": "|", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "divide", - "kind": "functionName" + "text": "RegExp", + "kind": "localName" }, { - "text": "(", + "text": ")", "kind": "punctuation" }, { - "text": "a", - "kind": "parameterName" + "text": " ", + "kind": "space" }, { - "text": ":", + "text": "=>", "kind": "punctuation" }, { @@ -34305,110 +34494,76 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" - }, - { - "text": ",", - "kind": "punctuation" + "text": "RegExp", + "kind": "localName" }, { "text": " ", "kind": "space" }, { - "text": "b", - "kind": "parameterName" + "text": "(", + "kind": "punctuation" }, { - "text": ":", - "kind": "punctuation" + "text": "+", + "kind": "operator" + }, + { + "text": "1", + "kind": "numericLiteral" }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "overload", + "kind": "text" }, { "text": ")", "kind": "punctuation" }, { - "text": ":", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "void", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "this is divide function", - "kind": "text" + "text": "RegExp", + "kind": "localName" } ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "a", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "this is a", - "kind": "text" - } - ] - }, - { - "name": "paramTag", - "text": [ - { - "text": "{ number } g this is optional param g", - "kind": "text" - } - ] - }, + "documentation": [] + }, + { + "name": "return", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "b", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "this is b", - "kind": "text" - } - ] + "text": "return", + "kind": "keyword" } ] }, { - "name": "fooBar", - "kind": "function", - "kindModifiers": "", - "sortText": "11", + "name": "String", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "function", + "text": "var", "kind": "keyword" }, { @@ -34416,17 +34571,37 @@ "kind": "space" }, { - "text": "fooBar", - "kind": "functionName" + "text": "String", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "StringConstructor", + "kind": "interfaceName" + }, + { + "text": "\n", + "kind": "lineBreak" }, { "text": "(", "kind": "punctuation" }, { - "text": "foo", + "text": "value", "kind": "parameterName" }, + { + "text": "?", + "kind": "punctuation" + }, { "text": ":", "kind": "punctuation" @@ -34436,11 +34611,11 @@ "kind": "space" }, { - "text": "string", + "text": "any", "kind": "keyword" }, { - "text": ",", + "text": ")", "kind": "punctuation" }, { @@ -34448,11 +34623,7 @@ "kind": "space" }, { - "text": "bar", - "kind": "parameterName" - }, - { - "text": ":", + "text": "=>", "kind": "punctuation" }, { @@ -34464,73 +34635,61 @@ "kind": "keyword" }, { - "text": ")", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "String", + "kind": "localName" } ], "documentation": [ { - "text": "Function returns string concat of foo and bar", + "text": "Allows manipulation and formatting of text strings and determination and location of substrings within strings.", "kind": "text" } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "foo", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "is string", - "kind": "text" - } - ] - }, + ] + }, + { + "name": "super", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "bar", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "is second string", - "kind": "text" - } - ] + "text": "super", + "kind": "keyword" } ] }, { - "name": "jsDocParamTest", - "kind": "function", + "name": "switch", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "function", + "text": "switch", + "kind": "keyword" + } + ] + }, + { + "name": "SyntaxError", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "var", "kind": "keyword" }, { @@ -34538,16 +34697,8 @@ "kind": "space" }, { - "text": "jsDocParamTest", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "a", - "kind": "parameterName" + "text": "SyntaxError", + "kind": "localName" }, { "text": ":", @@ -34558,21 +34709,25 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "SyntaxErrorConstructor", + "kind": "interfaceName" }, { - "text": ",", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "b", + "text": "message", "kind": "parameterName" }, + { + "text": "?", + "kind": "punctuation" + }, { "text": ":", "kind": "punctuation" @@ -34582,11 +34737,11 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" }, { - "text": ",", + "text": ")", "kind": "punctuation" }, { @@ -34594,11 +34749,7 @@ "kind": "space" }, { - "text": "c", - "kind": "parameterName" - }, - { - "text": ":", + "text": "=>", "kind": "punctuation" }, { @@ -34606,101 +34757,112 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" - }, - { - "text": ",", - "kind": "punctuation" + "text": "SyntaxError", + "kind": "localName" }, { "text": " ", "kind": "space" }, { - "text": "d", - "kind": "parameterName" + "text": "(", + "kind": "punctuation" }, { - "text": ":", - "kind": "punctuation" + "text": "+", + "kind": "operator" + }, + { + "text": "1", + "kind": "numericLiteral" }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "overload", + "kind": "text" }, { "text": ")", "kind": "punctuation" }, { - "text": ":", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "SyntaxError", + "kind": "localName" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "this", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "this is jsdoc style function with param tag as well as inline parameter help", - "kind": "text" + "text": "this", + "kind": "keyword" } - ], - "tags": [ + ] + }, + { + "name": "throw", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "a", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "it is first parameter", - "kind": "text" - } - ] - }, + "text": "throw", + "kind": "keyword" + } + ] + }, + { + "name": "true", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "c", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "it is third parameter", - "kind": "text" - } - ] + "text": "true", + "kind": "keyword" } ] }, { - "name": "jsDocCommentAlignmentTest1", - "kind": "function", + "name": "try", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "function", + "text": "try", + "kind": "keyword" + } + ] + }, + { + "name": "TypeError", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "var", "kind": "keyword" }, { @@ -34708,16 +34870,8 @@ "kind": "space" }, { - "text": "jsDocCommentAlignmentTest1", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" + "text": "TypeError", + "kind": "localName" }, { "text": ":", @@ -34728,41 +34882,23 @@ "kind": "space" }, { - "text": "void", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "This is function comment\nAnd properly aligned comment", - "kind": "text" - } - ] - }, - { - "name": "jsDocCommentAlignmentTest2", - "kind": "function", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" + "text": "TypeErrorConstructor", + "kind": "interfaceName" }, { - "text": "jsDocCommentAlignmentTest2", - "kind": "functionName" + "text": "\n", + "kind": "lineBreak" }, { "text": "(", "kind": "punctuation" }, { - "text": ")", + "text": "message", + "kind": "parameterName" + }, + { + "text": "?", "kind": "punctuation" }, { @@ -34774,106 +34910,121 @@ "kind": "space" }, { - "text": "void", + "text": "string", "kind": "keyword" - } - ], - "documentation": [ - { - "text": "This is function comment\n And aligned with 4 space char margin", - "kind": "text" - } - ] - }, - { - "name": "jsDocCommentAlignmentTest3", - "kind": "function", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ + }, { - "text": "function", - "kind": "keyword" + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "jsDocCommentAlignmentTest3", - "kind": "functionName" - }, - { - "text": "(", + "text": "=>", "kind": "punctuation" }, { - "text": "a", - "kind": "parameterName" + "text": " ", + "kind": "space" }, { - "text": ":", - "kind": "punctuation" + "text": "TypeError", + "kind": "localName" }, { "text": " ", "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "(", + "kind": "punctuation" }, { - "text": ",", - "kind": "punctuation" + "text": "+", + "kind": "operator" + }, + { + "text": "1", + "kind": "numericLiteral" }, { "text": " ", "kind": "space" }, { - "text": "b", - "kind": "parameterName" + "text": "overload", + "kind": "text" }, { - "text": ":", + "text": ")", "kind": "punctuation" }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "interface", + "kind": "keyword" + }, { "text": " ", "kind": "space" }, { - "text": "any", + "text": "TypeError", + "kind": "localName" + } + ], + "documentation": [] + }, + { + "name": "typeof", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "typeof", "kind": "keyword" - }, + } + ] + }, + { + "name": "Uint16Array", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { - "text": ",", - "kind": "punctuation" + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "c", - "kind": "parameterName" + "text": "Uint16Array", + "kind": "localName" }, { - "text": ":", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": " ", - "kind": "space" + "text": "var", + "kind": "keyword" }, { - "text": "any", - "kind": "keyword" + "text": " ", + "kind": "space" }, { - "text": ")", - "kind": "punctuation" + "text": "Uint16Array", + "kind": "localName" }, { "text": ":", @@ -34884,76 +35035,39 @@ "kind": "space" }, { - "text": "void", - "kind": "keyword" + "text": "Uint16ArrayConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "This is function comment\n And aligned with 4 space char margin", + "text": "A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", "kind": "text" } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "a", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "this is info about a\nspanning on two lines and aligned perfectly", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "b", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "this is info about b\nspanning on two lines and aligned perfectly\nspanning one more line alined perfectly\n spanning another line with more margin", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "c", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "this is info about b\nnot aligned text about parameter will eat only one space", - "kind": "text" - } - ] - } ] }, { - "name": "x", + "name": "Uint32Array", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint32Array", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, { "text": "var", "kind": "keyword" @@ -34963,7 +35077,7 @@ "kind": "space" }, { - "text": "x", + "text": "Uint32Array", "kind": "localName" }, { @@ -34975,23 +35089,39 @@ "kind": "space" }, { - "text": "any", - "kind": "keyword" + "text": "Uint32ArrayConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "This is a comment", + "text": "A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", "kind": "text" } ] }, { - "name": "y", + "name": "Uint8Array", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint8Array", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, { "text": "var", "kind": "keyword" @@ -35001,7 +35131,7 @@ "kind": "space" }, { - "text": "y", + "text": "Uint8Array", "kind": "localName" }, { @@ -35013,25 +35143,25 @@ "kind": "space" }, { - "text": "any", - "kind": "keyword" + "text": "Uint8ArrayConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "This is a comment", + "text": "A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", "kind": "text" } ] }, { - "name": "NoQuickInfoClass", - "kind": "class", - "kindModifiers": "", - "sortText": "11", + "name": "Uint8ClampedArray", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "class", + "text": "interface", "kind": "keyword" }, { @@ -35039,18 +35169,13 @@ "kind": "space" }, { - "text": "NoQuickInfoClass", - "kind": "className" - } - ], - "documentation": [] - }, - { - "name": "undefined", - "kind": "var", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "Uint8ClampedArray", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, { "text": "var", "kind": "keyword" @@ -35060,395 +35185,174 @@ "kind": "space" }, { - "text": "undefined", - "kind": "propertyName" + "text": "Uint8ClampedArray", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint8ClampedArrayConstructor", + "kind": "interfaceName" } ], - "documentation": [] - }, - { - "name": "break", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "documentation": [ { - "text": "break", - "kind": "keyword" + "text": "A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0.\r\nIf the requested number of bytes could not be allocated an exception is raised.", + "kind": "text" } ] }, { - "name": "case", - "kind": "keyword", + "name": "undefined", + "kind": "var", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "case", + "text": "var", "kind": "keyword" - } - ] - }, - { - "name": "catch", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "catch", - "kind": "keyword" - } - ] - }, - { - "name": "class", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "class", - "kind": "keyword" + "text": "undefined", + "kind": "propertyName" } - ] + ], + "documentation": [] }, { - "name": "const", - "kind": "keyword", - "kindModifiers": "", + "name": "URIError", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "const", + "text": "var", "kind": "keyword" - } - ] - }, - { - "name": "continue", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "continue", - "kind": "keyword" - } - ] - }, - { - "name": "debugger", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "debugger", - "kind": "keyword" - } - ] - }, - { - "name": "default", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "URIError", + "kind": "localName" + }, { - "text": "default", - "kind": "keyword" - } - ] - }, - { - "name": "delete", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": ":", + "kind": "punctuation" + }, { - "text": "delete", - "kind": "keyword" - } - ] - }, - { - "name": "do", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "do", - "kind": "keyword" - } - ] - }, - { - "name": "else", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "URIErrorConstructor", + "kind": "interfaceName" + }, { - "text": "else", - "kind": "keyword" - } - ] - }, - { - "name": "enum", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "\n", + "kind": "lineBreak" + }, { - "text": "enum", - "kind": "keyword" - } - ] - }, - { - "name": "export", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "(", + "kind": "punctuation" + }, { - "text": "export", - "kind": "keyword" - } - ] - }, - { - "name": "extends", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "message", + "kind": "parameterName" + }, { - "text": "extends", - "kind": "keyword" - } - ] - }, - { - "name": "false", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "?", + "kind": "punctuation" + }, { - "text": "false", - "kind": "keyword" - } - ] - }, - { - "name": "finally", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": ":", + "kind": "punctuation" + }, { - "text": "finally", - "kind": "keyword" - } - ] - }, - { - "name": "for", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "for", + "text": "string", "kind": "keyword" - } - ] - }, - { - "name": "function", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "function", - "kind": "keyword" - } - ] - }, - { - "name": "if", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": ")", + "kind": "punctuation" + }, { - "text": "if", - "kind": "keyword" - } - ] - }, - { - "name": "import", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "import", - "kind": "keyword" - } - ] - }, - { - "name": "in", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "=>", + "kind": "punctuation" + }, { - "text": "in", - "kind": "keyword" - } - ] - }, - { - "name": "instanceof", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "instanceof", - "kind": "keyword" - } - ] - }, - { - "name": "new", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "URIError", + "kind": "localName" + }, { - "text": "new", - "kind": "keyword" - } - ] - }, - { - "name": "null", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "null", - "kind": "keyword" - } - ] - }, - { - "name": "return", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "(", + "kind": "punctuation" + }, { - "text": "return", - "kind": "keyword" - } - ] - }, - { - "name": "super", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "+", + "kind": "operator" + }, { - "text": "super", - "kind": "keyword" - } - ] - }, - { - "name": "switch", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "1", + "kind": "numericLiteral" + }, { - "text": "switch", - "kind": "keyword" - } - ] - }, - { - "name": "this", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "this", - "kind": "keyword" - } - ] - }, - { - "name": "throw", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "overload", + "kind": "text" + }, { - "text": "throw", - "kind": "keyword" - } - ] - }, - { - "name": "true", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": ")", + "kind": "punctuation" + }, { - "text": "true", - "kind": "keyword" - } - ] - }, - { - "name": "try", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "\n", + "kind": "lineBreak" + }, { - "text": "try", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "typeof", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "typeof", - "kind": "keyword" + "text": " ", + "kind": "space" + }, + { + "text": "URIError", + "kind": "localName" } - ] + ], + "documentation": [] }, { "name": "var", @@ -35499,99 +35403,195 @@ ] }, { - "name": "implements", + "name": "yield", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "implements", + "text": "yield", "kind": "keyword" } ] }, { - "name": "interface", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", + "name": "escape", + "kind": "function", + "kindModifiers": "deprecated,declare", + "sortText": "z15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" - } - ] - }, - { - "name": "let", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "let", + "text": " ", + "kind": "space" + }, + { + "text": "escape", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "string", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", "kind": "keyword" - } - ] - }, - { - "name": "package", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "package", + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", "kind": "keyword" } - ] - }, - { - "name": "yield", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "yield", - "kind": "keyword" + "text": "Computes a new string in which certain characters have been replaced by a hexadecimal escape sequence.", + "kind": "text" } - ] - }, - { - "name": "as", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "tags": [ { - "text": "as", - "kind": "keyword" + "name": "deprecated", + "text": [ + { + "text": "A legacy feature for browser compatibility", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string value", + "kind": "text" + } + ] } ] }, { - "name": "async", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", + "name": "unescape", + "kind": "function", + "kindModifiers": "deprecated,declare", + "sortText": "z15", "displayParts": [ { - "text": "async", + "text": "function", "kind": "keyword" - } - ] - }, - { - "name": "await", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "await", + "text": " ", + "kind": "space" + }, + { + "text": "unescape", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "string", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", "kind": "keyword" } + ], + "documentation": [ + { + "text": "Computes a new string in which hexadecimal escape sequences are replaced with the character that it represents.", + "kind": "text" + } + ], + "tags": [ + { + "name": "deprecated", + "text": [ + { + "text": "A legacy feature for browser compatibility", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string value", + "kind": "text" + } + ] + } ] } ] @@ -35609,13 +35609,13 @@ "isNewIdentifierLocation": false, "entries": [ { - "name": "globalThis", - "kind": "module", + "name": "divide", + "kind": "function", "kindModifiers": "", - "sortText": "15", + "sortText": "11", "displayParts": [ { - "text": "module", + "text": "function", "kind": "keyword" }, { @@ -35623,17 +35623,127 @@ "kind": "space" }, { - "text": "globalThis", - "kind": "moduleName" + "text": "divide", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "a", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": ",", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "b", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "this is divide function", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "a", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "this is a", + "kind": "text" + } + ] + }, + { + "name": "paramTag", + "text": [ + { + "text": "{ number } g this is optional param g", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "b", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "this is b", + "kind": "text" + } + ] + } + ] }, { - "name": "eval", + "name": "f1", "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { "text": "function", @@ -35644,7 +35754,7 @@ "kind": "space" }, { - "text": "eval", + "text": "f1", "kind": "functionName" }, { @@ -35652,7 +35762,7 @@ "kind": "punctuation" }, { - "text": "x", + "text": "a", "kind": "parameterName" }, { @@ -35664,7 +35774,7 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" }, { @@ -35682,11 +35792,39 @@ { "text": "any", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "+", + "kind": "operator" + }, + { + "text": "1", + "kind": "numericLiteral" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "overload", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" } ], "documentation": [ { - "text": "Evaluates JavaScript code and executes it.", + "text": "fn f1 with number", "kind": "text" } ], @@ -35695,7 +35833,7 @@ "name": "param", "text": [ { - "text": "x", + "text": "b", "kind": "parameterName" }, { @@ -35703,7 +35841,7 @@ "kind": "space" }, { - "text": "A String value that contains valid JavaScript code.", + "text": "about b", "kind": "text" } ] @@ -35711,10 +35849,10 @@ ] }, { - "name": "parseInt", + "name": "fooBar", "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { "text": "function", @@ -35725,7 +35863,7 @@ "kind": "space" }, { - "text": "parseInt", + "text": "fooBar", "kind": "functionName" }, { @@ -35733,7 +35871,7 @@ "kind": "punctuation" }, { - "text": "string", + "text": "foo", "kind": "parameterName" }, { @@ -35757,13 +35895,9 @@ "kind": "space" }, { - "text": "radix", + "text": "bar", "kind": "parameterName" }, - { - "text": "?", - "kind": "punctuation" - }, { "text": ":", "kind": "punctuation" @@ -35773,7 +35907,7 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" }, { @@ -35789,13 +35923,13 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" } ], "documentation": [ { - "text": "Converts a string to an integer.", + "text": "Function returns string concat of foo and bar", "kind": "text" } ], @@ -35804,7 +35938,7 @@ "name": "param", "text": [ { - "text": "string", + "text": "foo", "kind": "parameterName" }, { @@ -35812,7 +35946,7 @@ "kind": "space" }, { - "text": "A string to convert into a number.", + "text": "is string", "kind": "text" } ] @@ -35821,7 +35955,7 @@ "name": "param", "text": [ { - "text": "radix", + "text": "bar", "kind": "parameterName" }, { @@ -35829,7 +35963,7 @@ "kind": "space" }, { - "text": "A value between 2 and 36 that specifies the base of the number in `string`.\r\nIf this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal.\r\nAll other strings are considered decimal.", + "text": "is second string", "kind": "text" } ] @@ -35837,10 +35971,10 @@ ] }, { - "name": "parseFloat", + "name": "jsDocCommentAlignmentTest1", "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { "text": "function", @@ -35851,7 +35985,7 @@ "kind": "space" }, { - "text": "parseFloat", + "text": "jsDocCommentAlignmentTest1", "kind": "functionName" }, { @@ -35859,8 +35993,8 @@ "kind": "punctuation" }, { - "text": "string", - "kind": "parameterName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -35871,9 +36005,39 @@ "kind": "space" }, { - "text": "string", + "text": "void", + "kind": "keyword" + } + ], + "documentation": [ + { + "text": "This is function comment\nAnd properly aligned comment", + "kind": "text" + } + ] + }, + { + "name": "jsDocCommentAlignmentTest2", + "kind": "function", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "function", "kind": "keyword" }, + { + "text": " ", + "kind": "space" + }, + { + "text": "jsDocCommentAlignmentTest2", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, { "text": ")", "kind": "punctuation" @@ -35887,41 +36051,22 @@ "kind": "space" }, { - "text": "number", + "text": "void", "kind": "keyword" } ], "documentation": [ { - "text": "Converts a string to a floating-point number.", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string that contains a floating-point number.", - "kind": "text" - } - ] + "text": "This is function comment\n And aligned with 4 space char margin", + "kind": "text" } ] }, { - "name": "isNaN", + "name": "jsDocCommentAlignmentTest3", "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { "text": "function", @@ -35932,7 +36077,7 @@ "kind": "space" }, { - "text": "isNaN", + "text": "jsDocCommentAlignmentTest3", "kind": "functionName" }, { @@ -35940,7 +36085,7 @@ "kind": "punctuation" }, { - "text": "number", + "text": "a", "kind": "parameterName" }, { @@ -35952,15 +36097,11 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" }, { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", + "text": ",", "kind": "punctuation" }, { @@ -35968,60 +36109,31 @@ "kind": "space" }, { - "text": "boolean", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Returns a Boolean value that indicates whether a value is the reserved value NaN (not a number).", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "number", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A numeric value.", - "kind": "text" - } - ] - } - ] - }, - { - "name": "isFinite", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ + "text": "b", + "kind": "parameterName" + }, { - "text": "function", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "isFinite", - "kind": "functionName" + "text": "any", + "kind": "keyword" }, { - "text": "(", + "text": ",", "kind": "punctuation" }, { - "text": "number", + "text": " ", + "kind": "space" + }, + { + "text": "c", "kind": "parameterName" }, { @@ -36033,7 +36145,7 @@ "kind": "space" }, { - "text": "number", + "text": "any", "kind": "keyword" }, { @@ -36049,13 +36161,13 @@ "kind": "space" }, { - "text": "boolean", + "text": "void", "kind": "keyword" } ], "documentation": [ { - "text": "Determines whether a supplied number is finite.", + "text": "This is function comment\n And aligned with 4 space char margin", "kind": "text" } ], @@ -36064,7 +36176,7 @@ "name": "param", "text": [ { - "text": "number", + "text": "a", "kind": "parameterName" }, { @@ -36072,7 +36184,41 @@ "kind": "space" }, { - "text": "Any numeric value.", + "text": "this is info about a\nspanning on two lines and aligned perfectly", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "b", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "this is info about b\nspanning on two lines and aligned perfectly\nspanning one more line alined perfectly\n spanning another line with more margin", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "c", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "this is info about b\nnot aligned text about parameter will eat only one space", "kind": "text" } ] @@ -36080,10 +36226,10 @@ ] }, { - "name": "decodeURI", + "name": "jsDocMixedComments1", "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { "text": "function", @@ -36094,29 +36240,13 @@ "kind": "space" }, { - "text": "decodeURI", + "text": "jsDocMixedComments1", "kind": "functionName" }, { "text": "(", "kind": "punctuation" }, - { - "text": "encodedURI", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, { "text": ")", "kind": "punctuation" @@ -36130,41 +36260,22 @@ "kind": "space" }, { - "text": "string", + "text": "void", "kind": "keyword" } ], "documentation": [ { - "text": "Gets the unencoded version of an encoded Uniform Resource Identifier (URI).", + "text": "jsdoc comment", "kind": "text" } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "encodedURI", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI.", - "kind": "text" - } - ] - } ] }, { - "name": "decodeURIComponent", + "name": "jsDocMixedComments2", "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { "text": "function", @@ -36175,29 +36286,13 @@ "kind": "space" }, { - "text": "decodeURIComponent", + "text": "jsDocMixedComments2", "kind": "functionName" }, { "text": "(", "kind": "punctuation" }, - { - "text": "encodedURIComponent", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, { "text": ")", "kind": "punctuation" @@ -36211,41 +36306,22 @@ "kind": "space" }, { - "text": "string", + "text": "void", "kind": "keyword" } ], "documentation": [ { - "text": "Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).", + "text": "another jsDocComment", "kind": "text" } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "encodedURIComponent", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI component.", - "kind": "text" - } - ] - } ] }, { - "name": "encodeURI", + "name": "jsDocMixedComments3", "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { "text": "function", @@ -36256,29 +36332,13 @@ "kind": "space" }, { - "text": "encodeURI", + "text": "jsDocMixedComments3", "kind": "functionName" }, { "text": "(", "kind": "punctuation" }, - { - "text": "uri", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, { "text": ")", "kind": "punctuation" @@ -36292,41 +36352,22 @@ "kind": "space" }, { - "text": "string", + "text": "void", "kind": "keyword" } ], "documentation": [ { - "text": "Encodes a text string as a valid Uniform Resource Identifier (URI)", + "text": "* triplestar jsDocComment", "kind": "text" } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "uri", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI.", - "kind": "text" - } - ] - } ] }, { - "name": "encodeURIComponent", + "name": "jsDocMixedComments4", "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { "text": "function", @@ -36337,7 +36378,7 @@ "kind": "space" }, { - "text": "encodeURIComponent", + "text": "jsDocMixedComments4", "kind": "functionName" }, { @@ -36345,8 +36386,8 @@ "kind": "punctuation" }, { - "text": "uriComponent", - "kind": "parameterName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -36357,23 +36398,25 @@ "kind": "space" }, { - "text": "string", + "text": "void", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "|", - "kind": "punctuation" - }, + } + ], + "documentation": [ { - "text": " ", - "kind": "space" - }, + "text": "another jsDocComment", + "kind": "text" + } + ] + }, + { + "name": "jsDocMixedComments5", + "kind": "function", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { - "text": "number", + "text": "function", "kind": "keyword" }, { @@ -36381,16 +36424,12 @@ "kind": "space" }, { - "text": "|", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "jsDocMixedComments5", + "kind": "functionName" }, { - "text": "boolean", - "kind": "keyword" + "text": "(", + "kind": "punctuation" }, { "text": ")", @@ -36405,41 +36444,22 @@ "kind": "space" }, { - "text": "string", + "text": "void", "kind": "keyword" } ], "documentation": [ { - "text": "Encodes a text string as a valid component of a Uniform Resource Identifier (URI).", + "text": "another jsDocComment", "kind": "text" } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "uriComponent", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI component.", - "kind": "text" - } - ] - } ] }, { - "name": "escape", + "name": "jsDocMixedComments6", "kind": "function", - "kindModifiers": "deprecated,declare", - "sortText": "23", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { "text": "function", @@ -36450,29 +36470,13 @@ "kind": "space" }, { - "text": "escape", + "text": "jsDocMixedComments6", "kind": "functionName" }, { "text": "(", "kind": "punctuation" }, - { - "text": "string", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, { "text": ")", "kind": "punctuation" @@ -36486,50 +36490,22 @@ "kind": "space" }, { - "text": "string", + "text": "void", "kind": "keyword" } ], "documentation": [ { - "text": "Computes a new string in which certain characters have been replaced by a hexadecimal escape sequence.", + "text": "jsdoc comment", "kind": "text" } - ], - "tags": [ - { - "name": "deprecated", - "text": [ - { - "text": "A legacy feature for browser compatibility", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string value", - "kind": "text" - } - ] - } ] }, { - "name": "unescape", + "name": "jsDocMultiLine", "kind": "function", - "kindModifiers": "deprecated,declare", - "sortText": "23", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { "text": "function", @@ -36540,29 +36516,13 @@ "kind": "space" }, { - "text": "unescape", + "text": "jsDocMultiLine", "kind": "functionName" }, { "text": "(", "kind": "punctuation" }, - { - "text": "string", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, { "text": ")", "kind": "punctuation" @@ -36576,53 +36536,25 @@ "kind": "space" }, { - "text": "string", + "text": "void", "kind": "keyword" } ], "documentation": [ { - "text": "Computes a new string in which hexadecimal escape sequences are replaced with the character that it represents.", + "text": "this is multiple line jsdoc stule comment\nNew line1\nNew Line2", "kind": "text" } - ], - "tags": [ - { - "name": "deprecated", - "text": [ - { - "text": "A legacy feature for browser compatibility", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string value", - "kind": "text" - } - ] - } ] }, { - "name": "NaN", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "jsDocMultiLineMerge", + "kind": "function", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "var", + "text": "function", "kind": "keyword" }, { @@ -36630,8 +36562,16 @@ "kind": "space" }, { - "text": "NaN", - "kind": "localName" + "text": "jsDocMultiLineMerge", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -36642,20 +36582,25 @@ "kind": "space" }, { - "text": "number", + "text": "void", "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Another this one too", + "kind": "text" + } + ] }, { - "name": "Infinity", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "jsDocParamTest", + "kind": "function", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "var", + "text": "function", "kind": "keyword" }, { @@ -36663,8 +36608,16 @@ "kind": "space" }, { - "text": "Infinity", - "kind": "localName" + "text": "jsDocParamTest", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "a", + "kind": "parameterName" }, { "text": ":", @@ -36677,43 +36630,42 @@ { "text": "number", "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "Object", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" + }, + { + "text": ",", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Object", - "kind": "localName" + "text": "b", + "kind": "parameterName" }, { - "text": "\n", - "kind": "lineBreak" + "text": ":", + "kind": "punctuation" }, { - "text": "var", + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" }, + { + "text": ",", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "Object", - "kind": "localName" + "text": "c", + "kind": "parameterName" }, { "text": ":", @@ -36724,50 +36676,36 @@ "kind": "space" }, { - "text": "ObjectConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "Provides functionality common to all JavaScript objects.", - "kind": "text" - } - ] - }, - { - "name": "Function", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", + "text": "number", "kind": "keyword" }, { - "text": " ", - "kind": "space" + "text": ",", + "kind": "punctuation" }, { - "text": "Function", - "kind": "localName" + "text": " ", + "kind": "space" }, { - "text": "\n", - "kind": "lineBreak" + "text": "d", + "kind": "parameterName" }, { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Function", - "kind": "localName" + "text": "number", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -36778,25 +36716,61 @@ "kind": "space" }, { - "text": "FunctionConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], "documentation": [ { - "text": "Creates a new function.", + "text": "this is jsdoc style function with param tag as well as inline parameter help", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "a", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "it is first parameter", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "c", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "it is third parameter", + "kind": "text" + } + ] + } ] }, { - "name": "String", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "jsDocSingleLine", + "kind": "function", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -36804,24 +36778,16 @@ "kind": "space" }, { - "text": "String", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": "jsDocSingleLine", + "kind": "functionName" }, { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "String", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -36832,25 +36798,25 @@ "kind": "space" }, { - "text": "StringConstructor", - "kind": "interfaceName" + "text": "void", + "kind": "keyword" } ], "documentation": [ { - "text": "Allows manipulation and formatting of text strings and determination and location of substrings within strings.", + "text": "this is eg of single line jsdoc style comment", "kind": "text" } ] }, { - "name": "Boolean", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "multiLine", + "kind": "function", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -36858,24 +36824,16 @@ "kind": "space" }, { - "text": "Boolean", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": "multiLine", + "kind": "functionName" }, { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "Boolean", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -36886,20 +36844,20 @@ "kind": "space" }, { - "text": "BooleanConstructor", - "kind": "interfaceName" + "text": "void", + "kind": "keyword" } ], "documentation": [] }, { - "name": "Number", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "multiply", + "kind": "function", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -36907,24 +36865,16 @@ "kind": "space" }, { - "text": "Number", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": "multiply", + "kind": "functionName" }, { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "Number", - "kind": "localName" + "text": "a", + "kind": "parameterName" }, { "text": ":", @@ -36935,53 +36885,35 @@ "kind": "space" }, { - "text": "NumberConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "An object that represents a number of any kind. All JavaScript numbers are 64-bit floating-point numbers.", - "kind": "text" - } - ] - }, - { - "name": "Math", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", + "text": "number", "kind": "keyword" }, { - "text": " ", - "kind": "space" + "text": ",", + "kind": "punctuation" }, { - "text": "Math", - "kind": "localName" + "text": " ", + "kind": "space" }, { - "text": "\n", - "kind": "lineBreak" + "text": "b", + "kind": "parameterName" }, { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Math", - "kind": "localName" + "text": "number", + "kind": "keyword" }, { - "text": ":", + "text": ",", "kind": "punctuation" }, { @@ -36989,50 +36921,40 @@ "kind": "space" }, { - "text": "Math", - "kind": "localName" - } - ], - "documentation": [ + "text": "c", + "kind": "parameterName" + }, { - "text": "An intrinsic object that provides basic mathematics functionality and constants.", - "kind": "text" - } - ] - }, - { - "name": "Date", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ + "text": "?", + "kind": "punctuation" + }, { - "text": "interface", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Date", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" + "text": "number", + "kind": "keyword" }, { - "text": "var", - "kind": "keyword" + "text": ",", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Date", - "kind": "localName" + "text": "d", + "kind": "parameterName" + }, + { + "text": "?", + "kind": "punctuation" }, { "text": ":", @@ -37043,50 +36965,40 @@ "kind": "space" }, { - "text": "DateConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "Enables basic storage and retrieval of dates and times.", - "kind": "text" - } - ] - }, - { - "name": "RegExp", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", + "text": "any", "kind": "keyword" }, + { + "text": ",", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "RegExp", - "kind": "localName" + "text": "e", + "kind": "parameterName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "?", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "RegExp", - "kind": "localName" + "text": "any", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -37097,69 +37009,103 @@ "kind": "space" }, { - "text": "RegExpConstructor", - "kind": "interfaceName" + "text": "void", + "kind": "keyword" } ], - "documentation": [] - }, - { - "name": "Error", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, + "documentation": [ { - "text": " ", - "kind": "space" - }, + "text": "This is multiplication function", + "kind": "text" + } + ], + "tags": [ { - "text": "Error", - "kind": "localName" + "name": "param", + "text": [ + { + "text": "", + "kind": "text" + } + ] }, { - "text": "\n", - "kind": "lineBreak" + "name": "param", + "text": [ + { + "text": "a", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "first number", + "kind": "text" + } + ] }, { - "text": "var", - "kind": "keyword" + "name": "param", + "text": [ + { + "text": "b", + "kind": "text" + } + ] }, { - "text": " ", - "kind": "space" + "name": "param", + "text": [ + { + "text": "c", + "kind": "text" + } + ] }, { - "text": "Error", - "kind": "localName" + "name": "param", + "text": [ + { + "text": "d", + "kind": "text" + } + ] }, { - "text": ":", - "kind": "punctuation" + "name": "anotherTag" }, { - "text": " ", - "kind": "space" + "name": "param", + "text": [ + { + "text": "e", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "LastParam", + "kind": "text" + } + ] }, { - "text": "ErrorConstructor", - "kind": "interfaceName" + "name": "anotherTag" } - ], - "documentation": [] + ] }, { - "name": "EvalError", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "noHelpComment1", + "kind": "function", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -37167,24 +37113,16 @@ "kind": "space" }, { - "text": "EvalError", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": "noHelpComment1", + "kind": "functionName" }, { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "EvalError", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -37195,20 +37133,20 @@ "kind": "space" }, { - "text": "EvalErrorConstructor", - "kind": "interfaceName" + "text": "void", + "kind": "keyword" } ], "documentation": [] }, { - "name": "RangeError", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "noHelpComment2", + "kind": "function", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -37216,24 +37154,16 @@ "kind": "space" }, { - "text": "RangeError", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": "noHelpComment2", + "kind": "functionName" }, { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "RangeError", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -37244,20 +37174,20 @@ "kind": "space" }, { - "text": "RangeErrorConstructor", - "kind": "interfaceName" + "text": "void", + "kind": "keyword" } ], "documentation": [] }, { - "name": "ReferenceError", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "noHelpComment3", + "kind": "function", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -37265,24 +37195,16 @@ "kind": "space" }, { - "text": "ReferenceError", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": "noHelpComment3", + "kind": "functionName" }, { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "ReferenceError", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -37293,20 +37215,20 @@ "kind": "space" }, { - "text": "ReferenceErrorConstructor", - "kind": "interfaceName" + "text": "void", + "kind": "keyword" } ], "documentation": [] }, { - "name": "SyntaxError", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "NoQuickInfoClass", + "kind": "class", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "class", "kind": "keyword" }, { @@ -37314,15 +37236,20 @@ "kind": "space" }, { - "text": "SyntaxError", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, + "text": "NoQuickInfoClass", + "kind": "className" + } + ], + "documentation": [] + }, + { + "name": "simple", + "kind": "function", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { - "text": "var", + "text": "function", "kind": "keyword" }, { @@ -37330,8 +37257,16 @@ "kind": "space" }, { - "text": "SyntaxError", - "kind": "localName" + "text": "simple", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -37342,20 +37277,20 @@ "kind": "space" }, { - "text": "SyntaxErrorConstructor", - "kind": "interfaceName" + "text": "void", + "kind": "keyword" } ], "documentation": [] }, { - "name": "TypeError", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "square", + "kind": "function", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -37363,24 +37298,32 @@ "kind": "space" }, { - "text": "TypeError", - "kind": "localName" + "text": "square", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "a", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "TypeError", - "kind": "localName" + "text": "number", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -37391,20 +37334,62 @@ "kind": "space" }, { - "text": "TypeErrorConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "this is square function", + "kind": "text" + } + ], + "tags": [ + { + "name": "paramTag", + "text": [ + { + "text": "{ number } a this is input number of paramTag", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "a", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "this is input number", + "kind": "text" + } + ] + }, + { + "name": "returnType", + "text": [ + { + "text": "{ number } it is return type", + "kind": "text" + } + ] + } + ] }, { - "name": "URIError", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "subtract", + "kind": "function", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -37412,24 +37397,16 @@ "kind": "space" }, { - "text": "URIError", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": "subtract", + "kind": "functionName" }, { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "URIError", - "kind": "localName" + "text": "a", + "kind": "parameterName" }, { "text": ":", @@ -37440,48 +37417,35 @@ "kind": "space" }, { - "text": "URIErrorConstructor", - "kind": "interfaceName" - } - ], - "documentation": [] - }, - { - "name": "JSON", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", + "text": "number", "kind": "keyword" }, { - "text": " ", - "kind": "space" + "text": ",", + "kind": "punctuation" }, { - "text": "JSON", - "kind": "localName" + "text": " ", + "kind": "space" }, { - "text": "\n", - "kind": "lineBreak" + "text": "b", + "kind": "parameterName" }, { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "JSON", - "kind": "localName" + "text": "number", + "kind": "keyword" }, { - "text": ":", + "text": ",", "kind": "punctuation" }, { @@ -37489,62 +37453,60 @@ "kind": "space" }, { - "text": "JSON", - "kind": "localName" - } - ], - "documentation": [ + "text": "c", + "kind": "parameterName" + }, { - "text": "An intrinsic object that provides functions to convert JavaScript values to and from the JavaScript Object Notation (JSON) format.", - "kind": "text" - } - ] - }, - { - "name": "Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ + "text": "?", + "kind": "punctuation" + }, { - "text": "interface", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Array", - "kind": "localName" + "text": "(", + "kind": "punctuation" }, { - "text": "<", + "text": ")", "kind": "punctuation" }, { - "text": "T", - "kind": "typeParameterName" + "text": " ", + "kind": "space" }, { - "text": ">", + "text": "=>", "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": " ", + "kind": "space" }, { - "text": "var", + "text": "string", "kind": "keyword" }, + { + "text": ",", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "Array", - "kind": "localName" + "text": "d", + "kind": "parameterName" + }, + { + "text": "?", + "kind": "punctuation" }, { "text": ":", @@ -37555,45 +37517,44 @@ "kind": "space" }, { - "text": "ArrayConstructor", - "kind": "interfaceName" - } - ], - "documentation": [] - }, - { - "name": "ArrayBuffer", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ + "text": "(", + "kind": "punctuation" + }, { - "text": "interface", - "kind": "keyword" + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "ArrayBuffer", - "kind": "localName" + "text": "=>", + "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": " ", + "kind": "space" }, { - "text": "var", + "text": "string", "kind": "keyword" }, + { + "text": ",", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "ArrayBuffer", - "kind": "localName" + "text": "e", + "kind": "parameterName" + }, + { + "text": "?", + "kind": "punctuation" }, { "text": ":", @@ -37604,50 +37565,44 @@ "kind": "space" }, { - "text": "ArrayBufferConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "Represents a raw buffer of binary data, which is used to store data for the\r\ndifferent typed arrays. ArrayBuffers cannot be read from or written to directly,\r\nbut can be passed to a typed array or DataView Object to interpret the raw\r\nbuffer as needed.", - "kind": "text" - } - ] - }, - { - "name": "DataView", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ + "text": "(", + "kind": "punctuation" + }, { - "text": "interface", - "kind": "keyword" + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "DataView", - "kind": "localName" + "text": "=>", + "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": " ", + "kind": "space" }, { - "text": "var", + "text": "string", "kind": "keyword" }, + { + "text": ",", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "DataView", - "kind": "localName" + "text": "f", + "kind": "parameterName" + }, + { + "text": "?", + "kind": "punctuation" }, { "text": ":", @@ -37658,45 +37613,32 @@ "kind": "space" }, { - "text": "DataViewConstructor", - "kind": "interfaceName" - } - ], - "documentation": [] - }, - { - "name": "Int8Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ + "text": "(", + "kind": "punctuation" + }, { - "text": "interface", - "kind": "keyword" + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Int8Array", - "kind": "localName" + "text": "=>", + "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": " ", + "kind": "space" }, { - "text": "var", + "text": "string", "kind": "keyword" }, { - "text": " ", - "kind": "space" - }, - { - "text": "Int8Array", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -37707,25 +37649,121 @@ "kind": "space" }, { - "text": "Int8ArrayConstructor", - "kind": "interfaceName" + "text": "void", + "kind": "keyword" } ], "documentation": [ { - "text": "A typed array of 8-bit integer values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", + "text": "This is subtract function", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "b", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "this is about b", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "c", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "this is optional param c", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "d", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "this is optional param d", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "e", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "this is optional param e", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "{ () => string; } } f this is optional param f", + "kind": "text" + } + ] + } ] }, { - "name": "Uint8Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "sum", + "kind": "function", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -37733,24 +37771,16 @@ "kind": "space" }, { - "text": "Uint8Array", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": "sum", + "kind": "functionName" }, { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "Uint8Array", - "kind": "localName" + "text": "a", + "kind": "parameterName" }, { "text": ":", @@ -37761,50 +37791,20 @@ "kind": "space" }, { - "text": "Uint8ArrayConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] - }, - { - "name": "Uint8ClampedArray", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", + "text": "number", "kind": "keyword" }, { - "text": " ", - "kind": "space" - }, - { - "text": "Uint8ClampedArray", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": ",", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Uint8ClampedArray", - "kind": "localName" + "text": "b", + "kind": "parameterName" }, { "text": ":", @@ -37815,50 +37815,12 @@ "kind": "space" }, { - "text": "Uint8ClampedArrayConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0.\r\nIf the requested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] - }, - { - "name": "Int16Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Int16Array", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", + "text": "number", "kind": "keyword" }, { - "text": " ", - "kind": "space" - }, - { - "text": "Int16Array", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -37869,39 +37831,59 @@ "kind": "space" }, { - "text": "Int16ArrayConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], "documentation": [ { - "text": "A typed array of 16-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "text": "Adds two integers and returns the result", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "a", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "first number", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "b", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "second number", + "kind": "text" + } + ] + } ] }, { - "name": "Uint16Array", + "name": "x", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Uint16Array", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, { "text": "var", "kind": "keyword" @@ -37911,7 +37893,7 @@ "kind": "space" }, { - "text": "Uint16Array", + "text": "x", "kind": "localName" }, { @@ -37923,39 +37905,23 @@ "kind": "space" }, { - "text": "Uint16ArrayConstructor", - "kind": "interfaceName" + "text": "any", + "kind": "keyword" } ], "documentation": [ { - "text": "A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "text": "This is a comment", "kind": "text" } ] }, { - "name": "Int32Array", + "name": "y", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Int32Array", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, { "text": "var", "kind": "keyword" @@ -37965,7 +37931,7 @@ "kind": "space" }, { - "text": "Int32Array", + "text": "y", "kind": "localName" }, { @@ -37977,73 +37943,43 @@ "kind": "space" }, { - "text": "Int32ArrayConstructor", - "kind": "interfaceName" + "text": "any", + "kind": "keyword" } ], "documentation": [ { - "text": "A typed array of 32-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "text": "This is a comment", "kind": "text" } ] }, { - "name": "Uint32Array", - "kind": "var", - "kindModifiers": "declare", + "name": "abstract", + "kind": "keyword", + "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Uint32Array", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", + "text": "abstract", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Uint32Array", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Uint32ArrayConstructor", - "kind": "interfaceName" } - ], - "documentation": [ + ] + }, + { + "name": "any", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" + "text": "any", + "kind": "keyword" } ] }, { - "name": "Float32Array", + "name": "Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -38057,9 +37993,21 @@ "kind": "space" }, { - "text": "Float32Array", + "text": "Array", "kind": "localName" }, + { + "text": "<", + "kind": "punctuation" + }, + { + "text": "T", + "kind": "typeParameterName" + }, + { + "text": ">", + "kind": "punctuation" + }, { "text": "\n", "kind": "lineBreak" @@ -38073,7 +38021,7 @@ "kind": "space" }, { - "text": "Float32Array", + "text": "Array", "kind": "localName" }, { @@ -38085,19 +38033,14 @@ "kind": "space" }, { - "text": "Float32ArrayConstructor", + "text": "ArrayConstructor", "kind": "interfaceName" } ], - "documentation": [ - { - "text": "A typed array of 32-bit float values. The contents are initialized to 0. If the requested number\r\nof bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "Float64Array", + "name": "ArrayBuffer", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -38111,7 +38054,7 @@ "kind": "space" }, { - "text": "Float64Array", + "text": "ArrayBuffer", "kind": "localName" }, { @@ -38127,7 +38070,7 @@ "kind": "space" }, { - "text": "Float64Array", + "text": "ArrayBuffer", "kind": "localName" }, { @@ -38139,220 +38082,97 @@ "kind": "space" }, { - "text": "Float64ArrayConstructor", + "text": "ArrayBufferConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "A typed array of 64-bit float values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", + "text": "Represents a raw buffer of binary data, which is used to store data for the\r\ndifferent typed arrays. ArrayBuffers cannot be read from or written to directly,\r\nbut can be passed to a typed array or DataView Object to interpret the raw\r\nbuffer as needed.", "kind": "text" } ] }, { - "name": "Intl", - "kind": "module", - "kindModifiers": "declare", + "name": "as", + "kind": "keyword", + "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "namespace", + "text": "as", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Intl", - "kind": "moduleName" } - ], - "documentation": [] + ] }, { - "name": "simple", - "kind": "function", + "name": "asserts", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "simple", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", + "text": "asserts", "kind": "keyword" } - ], - "documentation": [] + ] }, { - "name": "multiLine", - "kind": "function", + "name": "async", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "multiLine", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", + "text": "async", "kind": "keyword" } - ], - "documentation": [] + ] }, { - "name": "jsDocSingleLine", - "kind": "function", + "name": "await", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "jsDocSingleLine", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", + "text": "await", "kind": "keyword" } - ], - "documentation": [ - { - "text": "this is eg of single line jsdoc style comment", - "kind": "text" - } ] }, { - "name": "jsDocMultiLine", - "kind": "function", + "name": "bigint", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "jsDocMultiLine", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", + "text": "bigint", "kind": "keyword" } - ], - "documentation": [ + ] + }, + { + "name": "boolean", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "this is multiple line jsdoc stule comment\nNew line1\nNew Line2", - "kind": "text" + "text": "boolean", + "kind": "keyword" } ] }, { - "name": "jsDocMultiLineMerge", - "kind": "function", - "kindModifiers": "", - "sortText": "11", + "name": "Boolean", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -38360,16 +38180,24 @@ "kind": "space" }, { - "text": "jsDocMultiLineMerge", - "kind": "functionName" + "text": "Boolean", + "kind": "localName" }, { - "text": "(", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": ")", - "kind": "punctuation" + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Boolean", + "kind": "localName" }, { "text": ":", @@ -38380,71 +38208,92 @@ "kind": "space" }, { - "text": "void", - "kind": "keyword" + "text": "BooleanConstructor", + "kind": "interfaceName" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "break", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "Another this one too", - "kind": "text" + "text": "break", + "kind": "keyword" } ] }, { - "name": "jsDocMixedComments1", - "kind": "function", + "name": "case", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "function", + "text": "case", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "jsDocMixedComments1", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, + } + ] + }, + { + "name": "catch", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": " ", - "kind": "space" - }, + "text": "catch", + "kind": "keyword" + } + ] + }, + { + "name": "class", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "void", + "text": "class", "kind": "keyword" } - ], - "documentation": [ + ] + }, + { + "name": "const", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "jsdoc comment", - "kind": "text" + "text": "const", + "kind": "keyword" } ] }, { - "name": "jsDocMixedComments2", - "kind": "function", + "name": "continue", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "function", + "text": "continue", + "kind": "keyword" + } + ] + }, + { + "name": "DataView", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", "kind": "keyword" }, { @@ -38452,16 +38301,24 @@ "kind": "space" }, { - "text": "jsDocMixedComments2", - "kind": "functionName" + "text": "DataView", + "kind": "localName" }, { - "text": "(", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": ")", - "kind": "punctuation" + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "DataView", + "kind": "localName" }, { "text": ":", @@ -38472,25 +38329,20 @@ "kind": "space" }, { - "text": "void", - "kind": "keyword" + "text": "DataViewConstructor", + "kind": "interfaceName" } ], - "documentation": [ - { - "text": "another jsDocComment", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "jsDocMixedComments3", - "kind": "function", - "kindModifiers": "", - "sortText": "11", + "name": "Date", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -38498,16 +38350,24 @@ "kind": "space" }, { - "text": "jsDocMixedComments3", - "kind": "functionName" + "text": "Date", + "kind": "localName" }, { - "text": "(", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": ")", - "kind": "punctuation" + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Date", + "kind": "localName" }, { "text": ":", @@ -38518,68 +38378,46 @@ "kind": "space" }, { - "text": "void", - "kind": "keyword" + "text": "DateConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "* triplestar jsDocComment", + "text": "Enables basic storage and retrieval of dates and times.", "kind": "text" } ] }, { - "name": "jsDocMixedComments4", - "kind": "function", + "name": "debugger", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "jsDocMixedComments4", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", + "text": "debugger", "kind": "keyword" } - ], - "documentation": [ + ] + }, + { + "name": "declare", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "another jsDocComment", - "kind": "text" + "text": "declare", + "kind": "keyword" } ] }, { - "name": "jsDocMixedComments5", + "name": "decodeURI", "kind": "function", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { "text": "function", @@ -38590,7 +38428,7 @@ "kind": "space" }, { - "text": "jsDocMixedComments5", + "text": "decodeURI", "kind": "functionName" }, { @@ -38598,8 +38436,8 @@ "kind": "punctuation" }, { - "text": ")", - "kind": "punctuation" + "text": "encodedURI", + "kind": "parameterName" }, { "text": ":", @@ -38610,39 +38448,9 @@ "kind": "space" }, { - "text": "void", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "another jsDocComment", - "kind": "text" - } - ] - }, - { - "name": "jsDocMixedComments6", - "kind": "function", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "function", + "text": "string", "kind": "keyword" }, - { - "text": " ", - "kind": "space" - }, - { - "text": "jsDocMixedComments6", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, { "text": ")", "kind": "punctuation" @@ -38656,22 +38464,41 @@ "kind": "space" }, { - "text": "void", + "text": "string", "kind": "keyword" } ], "documentation": [ { - "text": "jsdoc comment", + "text": "Gets the unencoded version of an encoded Uniform Resource Identifier (URI).", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "encodedURI", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI.", + "kind": "text" + } + ] + } ] }, { - "name": "noHelpComment1", + "name": "decodeURIComponent", "kind": "function", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { "text": "function", @@ -38682,7 +38509,7 @@ "kind": "space" }, { - "text": "noHelpComment1", + "text": "decodeURIComponent", "kind": "functionName" }, { @@ -38690,8 +38517,8 @@ "kind": "punctuation" }, { - "text": ")", - "kind": "punctuation" + "text": "encodedURIComponent", + "kind": "parameterName" }, { "text": ":", @@ -38702,34 +38529,9 @@ "kind": "space" }, { - "text": "void", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "noHelpComment2", - "kind": "function", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "function", + "text": "string", "kind": "keyword" }, - { - "text": " ", - "kind": "space" - }, - { - "text": "noHelpComment2", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, { "text": ")", "kind": "punctuation" @@ -38743,58 +38545,89 @@ "kind": "space" }, { - "text": "void", + "text": "string", "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "encodedURIComponent", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI component.", + "kind": "text" + } + ] + } + ] }, { - "name": "noHelpComment3", - "kind": "function", + "name": "default", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "function", + "text": "default", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "noHelpComment3", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, + } + ] + }, + { + "name": "delete", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": ":", - "kind": "punctuation" - }, + "text": "delete", + "kind": "keyword" + } + ] + }, + { + "name": "do", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": " ", - "kind": "space" - }, + "text": "do", + "kind": "keyword" + } + ] + }, + { + "name": "else", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "void", + "text": "else", "kind": "keyword" } - ], - "documentation": [] + ] }, { - "name": "sum", + "name": "encodeURI", "kind": "function", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { "text": "function", @@ -38805,7 +38638,7 @@ "kind": "space" }, { - "text": "sum", + "text": "encodeURI", "kind": "functionName" }, { @@ -38813,31 +38646,7 @@ "kind": "punctuation" }, { - "text": "a", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": ",", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "b", + "text": "uri", "kind": "parameterName" }, { @@ -38849,7 +38658,7 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" }, { @@ -38865,13 +38674,13 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" } ], "documentation": [ { - "text": "Adds two integers and returns the result", + "text": "Encodes a text string as a valid Uniform Resource Identifier (URI)", "kind": "text" } ], @@ -38880,24 +38689,7 @@ "name": "param", "text": [ { - "text": "a", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "first number", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "b", + "text": "uri", "kind": "parameterName" }, { @@ -38905,7 +38697,7 @@ "kind": "space" }, { - "text": "second number", + "text": "A value representing an encoded URI.", "kind": "text" } ] @@ -38913,10 +38705,10 @@ ] }, { - "name": "multiply", + "name": "encodeURIComponent", "kind": "function", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { "text": "function", @@ -38927,7 +38719,7 @@ "kind": "space" }, { - "text": "multiply", + "text": "encodeURIComponent", "kind": "functionName" }, { @@ -38935,7 +38727,7 @@ "kind": "punctuation" }, { - "text": "a", + "text": "uriComponent", "kind": "parameterName" }, { @@ -38947,23 +38739,15 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" }, - { - "text": ",", - "kind": "punctuation" - }, { "text": " ", "kind": "space" }, { - "text": "b", - "kind": "parameterName" - }, - { - "text": ":", + "text": "|", "kind": "punctuation" }, { @@ -38975,7 +38759,11 @@ "kind": "keyword" }, { - "text": ",", + "text": " ", + "kind": "space" + }, + { + "text": "|", "kind": "punctuation" }, { @@ -38983,11 +38771,11 @@ "kind": "space" }, { - "text": "c", - "kind": "parameterName" + "text": "boolean", + "kind": "keyword" }, { - "text": "?", + "text": ")", "kind": "punctuation" }, { @@ -38999,39 +38787,84 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" - }, + } + ], + "documentation": [ { - "text": ",", - "kind": "punctuation" + "text": "Encodes a text string as a valid component of a Uniform Resource Identifier (URI).", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "uriComponent", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI component.", + "kind": "text" + } + ] + } + ] + }, + { + "name": "enum", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "enum", + "kind": "keyword" + } + ] + }, + { + "name": "Error", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "d", - "kind": "parameterName" + "text": "Error", + "kind": "localName" }, { - "text": "?", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "any", - "kind": "keyword" + "text": "Error", + "kind": "localName" }, { - "text": ",", + "text": ":", "kind": "punctuation" }, { @@ -39039,13 +38872,38 @@ "kind": "space" }, { - "text": "e", - "kind": "parameterName" + "text": "ErrorConstructor", + "kind": "interfaceName" + } + ], + "documentation": [] + }, + { + "name": "eval", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "function", + "kind": "keyword" }, { - "text": "?", + "text": " ", + "kind": "space" + }, + { + "text": "eval", + "kind": "functionName" + }, + { + "text": "(", "kind": "punctuation" }, + { + "text": "x", + "kind": "parameterName" + }, { "text": ":", "kind": "punctuation" @@ -39055,7 +38913,7 @@ "kind": "space" }, { - "text": "any", + "text": "string", "kind": "keyword" }, { @@ -39071,13 +38929,13 @@ "kind": "space" }, { - "text": "void", + "text": "any", "kind": "keyword" } ], "documentation": [ { - "text": "This is multiplication function", + "text": "Evaluates JavaScript code and executes it.", "kind": "text" } ], @@ -39086,63 +38944,7 @@ "name": "param", "text": [ { - "text": "", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "a", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "first number", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "b", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "c", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "d", - "kind": "text" - } - ] - }, - { - "name": "anotherTag" - }, - { - "name": "param", - "text": [ - { - "text": "e", + "text": "x", "kind": "parameterName" }, { @@ -39150,24 +38952,21 @@ "kind": "space" }, { - "text": "LastParam", + "text": "A String value that contains valid JavaScript code.", "kind": "text" } ] - }, - { - "name": "anotherTag" } ] }, { - "name": "f1", - "kind": "function", - "kindModifiers": "", - "sortText": "11", + "name": "EvalError", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -39175,32 +38974,24 @@ "kind": "space" }, { - "text": "f1", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" + "text": "EvalError", + "kind": "localName" }, { - "text": "a", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "EvalError", + "kind": "localName" }, { "text": ":", @@ -39211,7 +39002,68 @@ "kind": "space" }, { - "text": "any", + "text": "EvalErrorConstructor", + "kind": "interfaceName" + } + ], + "documentation": [] + }, + { + "name": "export", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "export", + "kind": "keyword" + } + ] + }, + { + "name": "extends", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "extends", + "kind": "keyword" + } + ] + }, + { + "name": "false", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "false", + "kind": "keyword" + } + ] + }, + { + "name": "finally", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "finally", + "kind": "keyword" + } + ] + }, + { + "name": "Float32Array", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", "kind": "keyword" }, { @@ -39219,64 +39071,53 @@ "kind": "space" }, { - "text": "(", - "kind": "punctuation" + "text": "Float32Array", + "kind": "localName" }, { - "text": "+", - "kind": "operator" + "text": "\n", + "kind": "lineBreak" }, { - "text": "1", - "kind": "numericLiteral" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "overload", - "kind": "text" + "text": "Float32Array", + "kind": "localName" }, { - "text": ")", + "text": ":", "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Float32ArrayConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "fn f1 with number", + "text": "A typed array of 32-bit float values. The contents are initialized to 0. If the requested number\r\nof bytes could not be allocated an exception is raised.", "kind": "text" } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "b", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "about b", - "kind": "text" - } - ] - } ] }, { - "name": "subtract", - "kind": "function", - "kindModifiers": "", - "sortText": "11", + "name": "Float64Array", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -39284,31 +39125,27 @@ "kind": "space" }, { - "text": "subtract", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" + "text": "Float64Array", + "kind": "localName" }, { - "text": "a", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "Float64Array", + "kind": "localName" }, { - "text": ",", + "text": ":", "kind": "punctuation" }, { @@ -39316,36 +39153,74 @@ "kind": "space" }, { - "text": "b", - "kind": "parameterName" - }, + "text": "Float64ArrayConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ { - "text": ":", - "kind": "punctuation" + "text": "A typed array of 64-bit float values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] + }, + { + "name": "for", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "for", + "kind": "keyword" + } + ] + }, + { + "name": "function", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + } + ] + }, + { + "name": "Function", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "Function", + "kind": "localName" }, { - "text": ",", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": " ", - "kind": "space" + "text": "var", + "kind": "keyword" }, { - "text": "c", - "kind": "parameterName" + "text": " ", + "kind": "space" }, { - "text": "?", - "kind": "punctuation" + "text": "Function", + "kind": "localName" }, { "text": ":", @@ -39356,44 +39231,115 @@ "kind": "space" }, { - "text": "(", - "kind": "punctuation" - }, + "text": "FunctionConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ { - "text": ")", - "kind": "punctuation" + "text": "Creates a new function.", + "kind": "text" + } + ] + }, + { + "name": "globalThis", + "kind": "module", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "module", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "=>", - "kind": "punctuation" - }, + "text": "globalThis", + "kind": "moduleName" + } + ], + "documentation": [] + }, + { + "name": "if", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "if", + "kind": "keyword" + } + ] + }, + { + "name": "implements", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "implements", + "kind": "keyword" + } + ] + }, + { + "name": "import", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "import", + "kind": "keyword" + } + ] + }, + { + "name": "in", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": " ", - "kind": "space" - }, + "text": "in", + "kind": "keyword" + } + ] + }, + { + "name": "infer", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "string", + "text": "infer", "kind": "keyword" - }, + } + ] + }, + { + "name": "Infinity", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { - "text": ",", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "d", - "kind": "parameterName" - }, - { - "text": "?", - "kind": "punctuation" + "text": "Infinity", + "kind": "localName" }, { "text": ":", @@ -39404,59 +39350,60 @@ "kind": "space" }, { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=>", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "instanceof", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "string", + "text": "instanceof", "kind": "keyword" - }, + } + ] + }, + { + "name": "Int16Array", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { - "text": ",", - "kind": "punctuation" + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "e", - "kind": "parameterName" + "text": "Int16Array", + "kind": "localName" }, { - "text": "?", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "(", - "kind": "punctuation" + "text": "Int16Array", + "kind": "localName" }, { - "text": ")", + "text": ":", "kind": "punctuation" }, { @@ -39464,68 +39411,50 @@ "kind": "space" }, { - "text": "=>", - "kind": "punctuation" - }, + "text": "Int16ArrayConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ { - "text": " ", - "kind": "space" - }, + "text": "A typed array of 16-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] + }, + { + "name": "Int32Array", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { - "text": "string", + "text": "interface", "kind": "keyword" }, - { - "text": ",", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "f", - "kind": "parameterName" - }, - { - "text": "?", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, { "text": " ", "kind": "space" }, { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" + "text": "Int32Array", + "kind": "localName" }, { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, { - "text": "=>", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "Int32Array", + "kind": "localName" }, { "text": ":", @@ -39536,121 +39465,25 @@ "kind": "space" }, { - "text": "void", - "kind": "keyword" + "text": "Int32ArrayConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "This is subtract function", + "text": "A typed array of 32-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", "kind": "text" } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "b", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "this is about b", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "c", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "this is optional param c", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "d", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "this is optional param d", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "e", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "this is optional param e", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "{ () => string; } } f this is optional param f", - "kind": "text" - } - ] - } ] }, { - "name": "square", - "kind": "function", - "kindModifiers": "", - "sortText": "11", + "name": "Int8Array", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -39658,32 +39491,24 @@ "kind": "space" }, { - "text": "square", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" + "text": "Int8Array", + "kind": "localName" }, { - "text": "a", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "Int8Array", + "kind": "localName" }, { "text": ":", @@ -39694,59 +39519,55 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "Int8ArrayConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "this is square function", + "text": "A typed array of 8-bit integer values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", "kind": "text" } - ], - "tags": [ + ] + }, + { + "name": "interface", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "paramTag", - "text": [ - { - "text": "{ number } a this is input number of paramTag", - "kind": "text" - } - ] + "text": "interface", + "kind": "keyword" + } + ] + }, + { + "name": "Intl", + "kind": "module", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "namespace", + "kind": "keyword" }, { - "name": "param", - "text": [ - { - "text": "a", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "this is input number", - "kind": "text" - } - ] + "text": " ", + "kind": "space" }, { - "name": "returnType", - "text": [ - { - "text": "{ number } it is return type", - "kind": "text" - } - ] + "text": "Intl", + "kind": "moduleName" } - ] + ], + "documentation": [] }, { - "name": "divide", + "name": "isFinite", "kind": "function", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { "text": "function", @@ -39757,39 +39578,15 @@ "kind": "space" }, { - "text": "divide", + "text": "isFinite", "kind": "functionName" }, { "text": "(", "kind": "punctuation" }, - { - "text": "a", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, { "text": "number", - "kind": "keyword" - }, - { - "text": ",", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "b", "kind": "parameterName" }, { @@ -39817,13 +39614,13 @@ "kind": "space" }, { - "text": "void", + "text": "boolean", "kind": "keyword" } ], "documentation": [ { - "text": "this is divide function", + "text": "Determines whether a supplied number is finite.", "kind": "text" } ], @@ -39832,33 +39629,7 @@ "name": "param", "text": [ { - "text": "a", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "this is a", - "kind": "text" - } - ] - }, - { - "name": "paramTag", - "text": [ - { - "text": "{ number } g this is optional param g", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "b", + "text": "number", "kind": "parameterName" }, { @@ -39866,7 +39637,7 @@ "kind": "space" }, { - "text": "this is b", + "text": "Any numeric value.", "kind": "text" } ] @@ -39874,10 +39645,10 @@ ] }, { - "name": "fooBar", + "name": "isNaN", "kind": "function", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { "text": "function", @@ -39888,7 +39659,7 @@ "kind": "space" }, { - "text": "fooBar", + "text": "isNaN", "kind": "functionName" }, { @@ -39896,31 +39667,7 @@ "kind": "punctuation" }, { - "text": "foo", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": ",", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "bar", + "text": "number", "kind": "parameterName" }, { @@ -39932,7 +39679,7 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" }, { @@ -39944,43 +39691,26 @@ "kind": "punctuation" }, { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Function returns string concat of foo and bar", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "foo", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "is string", - "kind": "text" - } - ] + "text": " ", + "kind": "space" }, + { + "text": "boolean", + "kind": "keyword" + } + ], + "documentation": [ + { + "text": "Returns a Boolean value that indicates whether a value is the reserved value NaN (not a number).", + "kind": "text" + } + ], + "tags": [ { "name": "param", "text": [ { - "text": "bar", + "text": "number", "kind": "parameterName" }, { @@ -39988,7 +39718,7 @@ "kind": "space" }, { - "text": "is second string", + "text": "A numeric value.", "kind": "text" } ] @@ -39996,13 +39726,13 @@ ] }, { - "name": "jsDocParamTest", - "kind": "function", - "kindModifiers": "", - "sortText": "11", + "name": "JSON", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -40010,16 +39740,24 @@ "kind": "space" }, { - "text": "jsDocParamTest", - "kind": "functionName" + "text": "JSON", + "kind": "localName" }, { - "text": "(", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": "a", - "kind": "parameterName" + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "JSON", + "kind": "localName" }, { "text": ":", @@ -40030,20 +39768,74 @@ "kind": "space" }, { - "text": "number", + "text": "JSON", + "kind": "localName" + } + ], + "documentation": [ + { + "text": "An intrinsic object that provides functions to convert JavaScript values to and from the JavaScript Object Notation (JSON) format.", + "kind": "text" + } + ] + }, + { + "name": "keyof", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "keyof", + "kind": "keyword" + } + ] + }, + { + "name": "let", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "let", + "kind": "keyword" + } + ] + }, + { + "name": "Math", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", "kind": "keyword" }, { - "text": ",", - "kind": "punctuation" + "text": " ", + "kind": "space" + }, + { + "text": "Math", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "b", - "kind": "parameterName" + "text": "Math", + "kind": "localName" }, { "text": ":", @@ -40054,20 +39846,58 @@ "kind": "space" }, { - "text": "number", + "text": "Math", + "kind": "localName" + } + ], + "documentation": [ + { + "text": "An intrinsic object that provides basic mathematics functionality and constants.", + "kind": "text" + } + ] + }, + { + "name": "module", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "module", "kind": "keyword" - }, + } + ] + }, + { + "name": "namespace", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": ",", - "kind": "punctuation" + "text": "namespace", + "kind": "keyword" + } + ] + }, + { + "name": "NaN", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "c", - "kind": "parameterName" + "text": "NaN", + "kind": "localName" }, { "text": ":", @@ -40080,34 +39910,91 @@ { "text": "number", "kind": "keyword" - }, + } + ], + "documentation": [] + }, + { + "name": "never", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": ",", - "kind": "punctuation" + "text": "never", + "kind": "keyword" + } + ] + }, + { + "name": "new", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "new", + "kind": "keyword" + } + ] + }, + { + "name": "null", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "null", + "kind": "keyword" + } + ] + }, + { + "name": "number", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "number", + "kind": "keyword" + } + ] + }, + { + "name": "Number", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "d", - "kind": "parameterName" + "text": "Number", + "kind": "localName" }, { - "text": ":", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": " ", - "kind": "space" + "text": "var", + "kind": "keyword" }, { - "text": "number", - "kind": "keyword" + "text": " ", + "kind": "space" }, { - "text": ")", - "kind": "punctuation" + "text": "Number", + "kind": "localName" }, { "text": ":", @@ -40118,61 +40005,37 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "NumberConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "this is jsdoc style function with param tag as well as inline parameter help", + "text": "An object that represents a number of any kind. All JavaScript numbers are 64-bit floating-point numbers.", "kind": "text" } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "a", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "it is first parameter", - "kind": "text" - } - ] - }, + ] + }, + { + "name": "object", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "c", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "it is third parameter", - "kind": "text" - } - ] + "text": "object", + "kind": "keyword" } ] }, { - "name": "jsDocCommentAlignmentTest1", - "kind": "function", - "kindModifiers": "", - "sortText": "11", + "name": "Object", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -40180,16 +40043,24 @@ "kind": "space" }, { - "text": "jsDocCommentAlignmentTest1", - "kind": "functionName" + "text": "Object", + "kind": "localName" }, { - "text": "(", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": ")", - "kind": "punctuation" + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Object", + "kind": "localName" }, { "text": ":", @@ -40200,22 +40071,34 @@ "kind": "space" }, { - "text": "void", - "kind": "keyword" + "text": "ObjectConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "This is function comment\nAnd properly aligned comment", + "text": "Provides functionality common to all JavaScript objects.", "kind": "text" } ] }, { - "name": "jsDocCommentAlignmentTest2", - "kind": "function", + "name": "package", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", + "displayParts": [ + { + "text": "package", + "kind": "keyword" + } + ] + }, + { + "name": "parseFloat", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { "text": "function", @@ -40226,13 +40109,29 @@ "kind": "space" }, { - "text": "jsDocCommentAlignmentTest2", + "text": "parseFloat", "kind": "functionName" }, { "text": "(", "kind": "punctuation" }, + { + "text": "string", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, { "text": ")", "kind": "punctuation" @@ -40246,22 +40145,41 @@ "kind": "space" }, { - "text": "void", + "text": "number", "kind": "keyword" } ], "documentation": [ { - "text": "This is function comment\n And aligned with 4 space char margin", + "text": "Converts a string to a floating-point number.", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string that contains a floating-point number.", + "kind": "text" + } + ] + } ] }, { - "name": "jsDocCommentAlignmentTest3", + "name": "parseInt", "kind": "function", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { "text": "function", @@ -40272,7 +40190,7 @@ "kind": "space" }, { - "text": "jsDocCommentAlignmentTest3", + "text": "parseInt", "kind": "functionName" }, { @@ -40280,7 +40198,7 @@ "kind": "punctuation" }, { - "text": "a", + "text": "string", "kind": "parameterName" }, { @@ -40304,33 +40222,13 @@ "kind": "space" }, { - "text": "b", + "text": "radix", "kind": "parameterName" }, { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - }, - { - "text": ",", + "text": "?", "kind": "punctuation" }, - { - "text": " ", - "kind": "space" - }, - { - "text": "c", - "kind": "parameterName" - }, { "text": ":", "kind": "punctuation" @@ -40340,7 +40238,7 @@ "kind": "space" }, { - "text": "any", + "text": "number", "kind": "keyword" }, { @@ -40356,13 +40254,13 @@ "kind": "space" }, { - "text": "void", + "text": "number", "kind": "keyword" } ], "documentation": [ { - "text": "This is function comment\n And aligned with 4 space char margin", + "text": "Converts a string to an integer.", "kind": "text" } ], @@ -40371,24 +40269,7 @@ "name": "param", "text": [ { - "text": "a", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "this is info about a\nspanning on two lines and aligned perfectly", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "b", + "text": "string", "kind": "parameterName" }, { @@ -40396,7 +40277,7 @@ "kind": "space" }, { - "text": "this is info about b\nspanning on two lines and aligned perfectly\nspanning one more line alined perfectly\n spanning another line with more margin", + "text": "A string to convert into a number.", "kind": "text" } ] @@ -40405,7 +40286,7 @@ "name": "param", "text": [ { - "text": "c", + "text": "radix", "kind": "parameterName" }, { @@ -40413,7 +40294,7 @@ "kind": "space" }, { - "text": "this is info about b\nnot aligned text about parameter will eat only one space", + "text": "A value between 2 and 36 that specifies the base of the number in `string`.\r\nIf this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal.\r\nAll other strings are considered decimal.", "kind": "text" } ] @@ -40421,11 +40302,27 @@ ] }, { - "name": "x", + "name": "RangeError", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "RangeError", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, { "text": "var", "kind": "keyword" @@ -40435,7 +40332,7 @@ "kind": "space" }, { - "text": "x", + "text": "RangeError", "kind": "localName" }, { @@ -40447,23 +40344,46 @@ "kind": "space" }, { - "text": "any", - "kind": "keyword" + "text": "RangeErrorConstructor", + "kind": "interfaceName" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "readonly", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "This is a comment", - "kind": "text" + "text": "readonly", + "kind": "keyword" } ] }, { - "name": "y", + "name": "ReferenceError", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "ReferenceError", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, { "text": "var", "kind": "keyword" @@ -40473,7 +40393,7 @@ "kind": "space" }, { - "text": "y", + "text": "ReferenceError", "kind": "localName" }, { @@ -40485,25 +40405,20 @@ "kind": "space" }, { - "text": "any", - "kind": "keyword" + "text": "ReferenceErrorConstructor", + "kind": "interfaceName" } ], - "documentation": [ - { - "text": "This is a comment", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "NoQuickInfoClass", - "kind": "class", - "kindModifiers": "", - "sortText": "11", + "name": "RegExp", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "class", + "text": "interface", "kind": "keyword" }, { @@ -40511,18 +40426,13 @@ "kind": "space" }, { - "text": "NoQuickInfoClass", - "kind": "className" - } - ], - "documentation": [] - }, - { - "name": "undefined", - "kind": "var", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "RegExp", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, { "text": "var", "kind": "keyword" @@ -40532,335 +40442,186 @@ "kind": "space" }, { - "text": "undefined", - "kind": "propertyName" + "text": "RegExp", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "RegExpConstructor", + "kind": "interfaceName" } ], "documentation": [] }, { - "name": "break", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "break", - "kind": "keyword" - } - ] - }, - { - "name": "case", + "name": "return", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "case", + "text": "return", "kind": "keyword" } ] }, { - "name": "catch", + "name": "string", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "catch", + "text": "string", "kind": "keyword" } ] }, { - "name": "class", - "kind": "keyword", - "kindModifiers": "", + "name": "String", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "class", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "const", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "const", - "kind": "keyword" - } - ] - }, - { - "name": "continue", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "continue", - "kind": "keyword" - } - ] - }, - { - "name": "debugger", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "String", + "kind": "localName" + }, { - "text": "debugger", - "kind": "keyword" - } - ] - }, - { - "name": "default", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "\n", + "kind": "lineBreak" + }, { - "text": "default", + "text": "var", "kind": "keyword" - } - ] - }, - { - "name": "delete", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "delete", - "kind": "keyword" - } - ] - }, - { - "name": "do", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "do", - "kind": "keyword" - } - ] - }, - { - "name": "else", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "String", + "kind": "localName" + }, { - "text": "else", - "kind": "keyword" - } - ] - }, - { - "name": "enum", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": ":", + "kind": "punctuation" + }, { - "text": "enum", - "kind": "keyword" - } - ] - }, - { - "name": "export", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "export", - "kind": "keyword" + "text": "StringConstructor", + "kind": "interfaceName" } - ] - }, - { - "name": "extends", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "extends", - "kind": "keyword" + "text": "Allows manipulation and formatting of text strings and determination and location of substrings within strings.", + "kind": "text" } ] }, { - "name": "false", + "name": "super", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "false", + "text": "super", "kind": "keyword" } ] }, { - "name": "finally", + "name": "switch", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "finally", + "text": "switch", "kind": "keyword" } ] }, { - "name": "for", + "name": "symbol", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "for", + "text": "symbol", "kind": "keyword" } ] }, { - "name": "function", - "kind": "keyword", - "kindModifiers": "", + "name": "SyntaxError", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "if", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "if", - "kind": "keyword" - } - ] - }, - { - "name": "import", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "import", - "kind": "keyword" - } - ] - }, - { - "name": "in", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "SyntaxError", + "kind": "localName" + }, { - "text": "in", - "kind": "keyword" - } - ] - }, - { - "name": "instanceof", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "\n", + "kind": "lineBreak" + }, { - "text": "instanceof", + "text": "var", "kind": "keyword" - } - ] - }, - { - "name": "new", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "new", - "kind": "keyword" - } - ] - }, - { - "name": "null", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "null", - "kind": "keyword" - } - ] - }, - { - "name": "return", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "SyntaxError", + "kind": "localName" + }, { - "text": "return", - "kind": "keyword" - } - ] - }, - { - "name": "super", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": ":", + "kind": "punctuation" + }, { - "text": "super", - "kind": "keyword" - } - ] - }, - { - "name": "switch", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "switch", - "kind": "keyword" + "text": "SyntaxErrorConstructor", + "kind": "interfaceName" } - ] + ], + "documentation": [] }, { "name": "this", @@ -40911,387 +40672,626 @@ ] }, { - "name": "typeof", + "name": "type", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "typeof", + "text": "type", "kind": "keyword" } ] }, { - "name": "var", - "kind": "keyword", - "kindModifiers": "", + "name": "TypeError", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "void", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "void", - "kind": "keyword" - } - ] - }, - { - "name": "while", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "while", - "kind": "keyword" - } - ] - }, - { - "name": "with", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "TypeError", + "kind": "localName" + }, { - "text": "with", - "kind": "keyword" - } - ] - }, - { - "name": "implements", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "\n", + "kind": "lineBreak" + }, { - "text": "implements", + "text": "var", "kind": "keyword" - } - ] - }, - { - "name": "interface", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "interface", - "kind": "keyword" - } - ] - }, - { - "name": "let", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "let", - "kind": "keyword" - } - ] - }, - { - "name": "package", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "TypeError", + "kind": "localName" + }, { - "text": "package", - "kind": "keyword" - } - ] - }, - { - "name": "yield", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": ":", + "kind": "punctuation" + }, { - "text": "yield", - "kind": "keyword" - } - ] - }, - { - "name": "abstract", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "abstract", - "kind": "keyword" + "text": "TypeErrorConstructor", + "kind": "interfaceName" } - ] + ], + "documentation": [] }, { - "name": "as", + "name": "typeof", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "as", + "text": "typeof", "kind": "keyword" } ] }, { - "name": "asserts", - "kind": "keyword", - "kindModifiers": "", + "name": "Uint16Array", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "asserts", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "any", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "any", + "text": " ", + "kind": "space" + }, + { + "text": "Uint16Array", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint16Array", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint16ArrayConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ + { + "text": "A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" } ] }, { - "name": "async", - "kind": "keyword", - "kindModifiers": "", + "name": "Uint32Array", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "async", + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint32Array", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint32Array", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint32ArrayConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ + { + "text": "A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" } ] }, { - "name": "await", - "kind": "keyword", - "kindModifiers": "", + "name": "Uint8Array", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "await", + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint8Array", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint8Array", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint8ArrayConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ + { + "text": "A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" } ] }, { - "name": "boolean", - "kind": "keyword", - "kindModifiers": "", + "name": "Uint8ClampedArray", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "boolean", + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint8ClampedArray", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint8ClampedArray", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint8ClampedArrayConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ + { + "text": "A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0.\r\nIf the requested number of bytes could not be allocated an exception is raised.", + "kind": "text" } ] }, { - "name": "declare", - "kind": "keyword", + "name": "undefined", + "kind": "var", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "declare", + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "undefined", + "kind": "propertyName" } - ] + ], + "documentation": [] }, { - "name": "infer", + "name": "unique", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "infer", + "text": "unique", "kind": "keyword" } ] }, { - "name": "keyof", + "name": "unknown", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "keyof", + "text": "unknown", "kind": "keyword" } ] }, { - "name": "module", - "kind": "keyword", - "kindModifiers": "", + "name": "URIError", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "module", + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "URIError", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "URIError", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "URIErrorConstructor", + "kind": "interfaceName" } - ] + ], + "documentation": [] }, { - "name": "namespace", + "name": "var", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "namespace", + "text": "var", "kind": "keyword" } ] }, { - "name": "never", + "name": "void", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "never", + "text": "void", "kind": "keyword" } ] }, { - "name": "readonly", + "name": "while", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "readonly", + "text": "while", "kind": "keyword" } ] }, { - "name": "number", + "name": "with", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "number", + "text": "with", "kind": "keyword" } ] }, { - "name": "object", + "name": "yield", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "object", + "text": "yield", "kind": "keyword" } ] }, { - "name": "string", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", + "name": "escape", + "kind": "function", + "kindModifiers": "deprecated,declare", + "sortText": "z15", "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "escape", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "string", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, { "text": "string", "kind": "keyword" - } - ] - }, - { - "name": "symbol", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "symbol", + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", "kind": "keyword" } - ] - }, - { - "name": "type", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "type", - "kind": "keyword" + "text": "Computes a new string in which certain characters have been replaced by a hexadecimal escape sequence.", + "kind": "text" } - ] - }, - { - "name": "unique", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "tags": [ { - "text": "unique", - "kind": "keyword" + "name": "deprecated", + "text": [ + { + "text": "A legacy feature for browser compatibility", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string value", + "kind": "text" + } + ] } ] }, { - "name": "unknown", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", + "name": "unescape", + "kind": "function", + "kindModifiers": "deprecated,declare", + "sortText": "z15", "displayParts": [ { - "text": "unknown", + "text": "function", "kind": "keyword" - } - ] - }, - { - "name": "bigint", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "bigint", + "text": " ", + "kind": "space" + }, + { + "text": "unescape", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "string", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", "kind": "keyword" } + ], + "documentation": [ + { + "text": "Computes a new string in which hexadecimal escape sequences are replaced with the character that it represents.", + "kind": "text" + } + ], + "tags": [ + { + "name": "deprecated", + "text": [ + { + "text": "A legacy feature for browser compatibility", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string value", + "kind": "text" + } + ] + } ] } ] diff --git a/tests/baselines/reference/completionsCommentsFunctionDeclaration.baseline b/tests/baselines/reference/completionsCommentsFunctionDeclaration.baseline index 87283cb4e0c3e..ae41c9cc50c9e 100644 --- a/tests/baselines/reference/completionsCommentsFunctionDeclaration.baseline +++ b/tests/baselines/reference/completionsCommentsFunctionDeclaration.baseline @@ -15,31 +15,10 @@ }, "entries": [ { - "name": "globalThis", - "kind": "module", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "module", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "globalThis", - "kind": "moduleName" - } - ], - "documentation": [] - }, - { - "name": "eval", + "name": "fn", "kind": "function", "kindModifiers": "declare", - "sortText": "15", + "sortText": "11", "displayParts": [ { "text": "function", @@ -50,7 +29,7 @@ "kind": "space" }, { - "text": "eval", + "text": "fn", "kind": "functionName" }, { @@ -58,7 +37,7 @@ "kind": "punctuation" }, { - "text": "x", + "text": "a", "kind": "parameterName" }, { @@ -92,7 +71,7 @@ ], "documentation": [ { - "text": "Evaluates JavaScript code and executes it.", + "text": "Does something", "kind": "text" } ], @@ -101,7 +80,7 @@ "name": "param", "text": [ { - "text": "x", + "text": "a", "kind": "parameterName" }, { @@ -109,7 +88,7 @@ "kind": "space" }, { - "text": "A String value that contains valid JavaScript code.", + "text": "a string", "kind": "text" } ] @@ -117,10 +96,10 @@ ] }, { - "name": "parseInt", + "name": "foo", "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { "text": "function", @@ -131,7 +110,7 @@ "kind": "space" }, { - "text": "parseInt", + "text": "foo", "kind": "functionName" }, { @@ -139,7 +118,53 @@ "kind": "punctuation" }, { - "text": "string", + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } + ], + "documentation": [ + { + "text": "This comment should appear for foo", + "kind": "text" + } + ] + }, + { + "name": "fooWithParameters", + "kind": "function", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "fooWithParameters", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "a", "kind": "parameterName" }, { @@ -163,13 +188,9 @@ "kind": "space" }, { - "text": "radix", + "text": "b", "kind": "parameterName" }, - { - "text": "?", - "kind": "punctuation" - }, { "text": ":", "kind": "punctuation" @@ -195,61 +216,25 @@ "kind": "space" }, { - "text": "number", + "text": "void", "kind": "keyword" } ], "documentation": [ { - "text": "Converts a string to an integer.", + "text": "This is comment for function signature", "kind": "text" } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string to convert into a number.", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "radix", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value between 2 and 36 that specifies the base of the number in `string`.\r\nIf this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal.\r\nAll other strings are considered decimal.", - "kind": "text" - } - ] - } ] }, { - "name": "parseFloat", - "kind": "function", + "name": "Array", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "var", "kind": "keyword" }, { @@ -257,17 +242,37 @@ "kind": "space" }, { - "text": "parseFloat", - "kind": "functionName" + "text": "Array", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "ArrayConstructor", + "kind": "interfaceName" + }, + { + "text": "\n", + "kind": "lineBreak" }, { "text": "(", "kind": "punctuation" }, { - "text": "string", + "text": "arrayLength", "kind": "parameterName" }, + { + "text": "?", + "kind": "punctuation" + }, { "text": ":", "kind": "punctuation" @@ -277,7 +282,7 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" }, { @@ -285,7 +290,11 @@ "kind": "punctuation" }, { - "text": ":", + "text": " ", + "kind": "space" + }, + { + "text": "=>", "kind": "punctuation" }, { @@ -293,125 +302,84 @@ "kind": "space" }, { - "text": "number", + "text": "any", "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Converts a string to a floating-point number.", - "kind": "text" - } - ], - "tags": [ + }, { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string that contains a floating-point number.", - "kind": "text" - } - ] - } - ] - }, - { - "name": "isNaN", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ + "text": "[", + "kind": "punctuation" + }, { - "text": "function", - "kind": "keyword" + "text": "]", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, - { - "text": "isNaN", - "kind": "functionName" - }, { "text": "(", "kind": "punctuation" }, { - "text": "number", - "kind": "parameterName" + "text": "+", + "kind": "operator" }, { - "text": ":", - "kind": "punctuation" + "text": "2", + "kind": "numericLiteral" }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "overloads", + "kind": "text" }, { "text": ")", "kind": "punctuation" }, { - "text": ":", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "boolean", - "kind": "keyword" - } - ], - "documentation": [ + "text": "Array", + "kind": "localName" + }, { - "text": "Returns a Boolean value that indicates whether a value is the reserved value NaN (not a number).", - "kind": "text" - } - ], - "tags": [ + "text": "<", + "kind": "punctuation" + }, { - "name": "param", - "text": [ - { - "text": "number", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A numeric value.", - "kind": "text" - } - ] + "text": "T", + "kind": "typeParameterName" + }, + { + "text": ">", + "kind": "punctuation" } - ] + ], + "documentation": [] }, { - "name": "isFinite", - "kind": "function", + "name": "ArrayBuffer", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -419,32 +387,24 @@ "kind": "space" }, { - "text": "isFinite", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" + "text": "ArrayBuffer", + "kind": "localName" }, { - "text": "number", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "ArrayBuffer", + "kind": "localName" }, { "text": ":", @@ -455,44 +415,61 @@ "kind": "space" }, { - "text": "boolean", - "kind": "keyword" + "text": "ArrayBufferConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "Determines whether a supplied number is finite.", + "text": "Represents a raw buffer of binary data, which is used to store data for the\r\ndifferent typed arrays. ArrayBuffers cannot be read from or written to directly,\r\nbut can be passed to a typed array or DataView Object to interpret the raw\r\nbuffer as needed.", "kind": "text" } - ], - "tags": [ + ] + }, + { + "name": "as", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "number", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Any numeric value.", - "kind": "text" - } - ] + "text": "as", + "kind": "keyword" } ] }, { - "name": "decodeURI", - "kind": "function", + "name": "async", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "async", + "kind": "keyword" + } + ] + }, + { + "name": "await", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "await", + "kind": "keyword" + } + ] + }, + { + "name": "Boolean", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "var", "kind": "keyword" }, { @@ -500,16 +477,8 @@ "kind": "space" }, { - "text": "decodeURI", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "encodedURI", - "kind": "parameterName" + "text": "Boolean", + "kind": "localName" }, { "text": ":", @@ -520,80 +489,59 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "BooleanConstructor", + "kind": "interfaceName" }, { - "text": ")", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", + "text": "<", "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "T", + "kind": "typeParameterName" }, { - "text": "string", - "kind": "keyword" - } - ], - "documentation": [ + "text": ">", + "kind": "punctuation" + }, { - "text": "Gets the unencoded version of an encoded Uniform Resource Identifier (URI).", - "kind": "text" - } - ], - "tags": [ + "text": "(", + "kind": "punctuation" + }, { - "name": "param", - "text": [ - { - "text": "encodedURI", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI.", - "kind": "text" - } - ] - } - ] - }, - { - "name": "decodeURIComponent", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ + "text": "value", + "kind": "parameterName" + }, { - "text": "function", - "kind": "keyword" + "text": "?", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "decodeURIComponent", - "kind": "functionName" + "text": "T", + "kind": "typeParameterName" }, { - "text": "(", + "text": ")", "kind": "punctuation" }, { - "text": "encodedURIComponent", - "kind": "parameterName" + "text": " ", + "kind": "space" }, { - "text": ":", + "text": "=>", "kind": "punctuation" }, { @@ -601,60 +549,108 @@ "kind": "space" }, { - "text": "string", + "text": "boolean", "kind": "keyword" }, { - "text": ")", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "string", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).", - "kind": "text" + "text": "Boolean", + "kind": "localName" } ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "encodedURIComponent", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI component.", - "kind": "text" - } - ] - } - ] + "documentation": [] }, { - "name": "encodeURI", - "kind": "function", - "kindModifiers": "declare", + "name": "break", + "kind": "keyword", + "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "break", + "kind": "keyword" + } + ] + }, + { + "name": "case", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "case", + "kind": "keyword" + } + ] + }, + { + "name": "catch", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "catch", + "kind": "keyword" + } + ] + }, + { + "name": "class", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + } + ] + }, + { + "name": "const", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + } + ] + }, + { + "name": "continue", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "continue", + "kind": "keyword" + } + ] + }, + { + "name": "DataView", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", "kind": "keyword" }, { @@ -662,32 +658,24 @@ "kind": "space" }, { - "text": "encodeURI", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" + "text": "DataView", + "kind": "localName" }, { - "text": "uri", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "DataView", + "kind": "localName" }, { "text": ":", @@ -698,44 +686,20 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Encodes a text string as a valid Uniform Resource Identifier (URI)", - "kind": "text" + "text": "DataViewConstructor", + "kind": "interfaceName" } ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "uri", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI.", - "kind": "text" - } - ] - } - ] + "documentation": [] }, { - "name": "encodeURIComponent", - "kind": "function", + "name": "Date", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "var", "kind": "keyword" }, { @@ -743,16 +707,8 @@ "kind": "space" }, { - "text": "encodeURIComponent", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "uriComponent", - "kind": "parameterName" + "text": "Date", + "kind": "localName" }, { "text": ":", @@ -763,31 +719,27 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "DateConstructor", + "kind": "interfaceName" }, { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, { - "text": "|", + "text": "(", "kind": "punctuation" }, { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "|", + "text": "=>", "kind": "punctuation" }, { @@ -795,57 +747,50 @@ "kind": "space" }, { - "text": "boolean", + "text": "string", "kind": "keyword" }, { - "text": ")", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "Date", + "kind": "localName" } ], "documentation": [ { - "text": "Encodes a text string as a valid component of a Uniform Resource Identifier (URI).", + "text": "Enables basic storage and retrieval of dates and times.", "kind": "text" } - ], - "tags": [ + ] + }, + { + "name": "debugger", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "uriComponent", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI component.", - "kind": "text" - } - ] + "text": "debugger", + "kind": "keyword" } ] }, { - "name": "escape", + "name": "decodeURI", "kind": "function", - "kindModifiers": "deprecated,declare", - "sortText": "23", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { "text": "function", @@ -856,7 +801,7 @@ "kind": "space" }, { - "text": "escape", + "text": "decodeURI", "kind": "functionName" }, { @@ -864,7 +809,7 @@ "kind": "punctuation" }, { - "text": "string", + "text": "encodedURI", "kind": "parameterName" }, { @@ -898,25 +843,16 @@ ], "documentation": [ { - "text": "Computes a new string in which certain characters have been replaced by a hexadecimal escape sequence.", + "text": "Gets the unencoded version of an encoded Uniform Resource Identifier (URI).", "kind": "text" } ], "tags": [ - { - "name": "deprecated", - "text": [ - { - "text": "A legacy feature for browser compatibility", - "kind": "text" - } - ] - }, { "name": "param", "text": [ { - "text": "string", + "text": "encodedURI", "kind": "parameterName" }, { @@ -924,7 +860,7 @@ "kind": "space" }, { - "text": "A string value", + "text": "A value representing an encoded URI.", "kind": "text" } ] @@ -932,10 +868,10 @@ ] }, { - "name": "unescape", + "name": "decodeURIComponent", "kind": "function", - "kindModifiers": "deprecated,declare", - "sortText": "23", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { "text": "function", @@ -946,7 +882,7 @@ "kind": "space" }, { - "text": "unescape", + "text": "decodeURIComponent", "kind": "functionName" }, { @@ -954,7 +890,7 @@ "kind": "punctuation" }, { - "text": "string", + "text": "encodedURIComponent", "kind": "parameterName" }, { @@ -988,25 +924,16 @@ ], "documentation": [ { - "text": "Computes a new string in which hexadecimal escape sequences are replaced with the character that it represents.", + "text": "Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).", "kind": "text" } ], "tags": [ - { - "name": "deprecated", - "text": [ - { - "text": "A legacy feature for browser compatibility", - "kind": "text" - } - ] - }, { "name": "param", "text": [ { - "text": "string", + "text": "encodedURIComponent", "kind": "parameterName" }, { @@ -1014,7 +941,7 @@ "kind": "space" }, { - "text": "A string value", + "text": "A value representing an encoded URI component.", "kind": "text" } ] @@ -1022,13 +949,61 @@ ] }, { - "name": "NaN", - "kind": "var", + "name": "default", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "default", + "kind": "keyword" + } + ] + }, + { + "name": "delete", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "delete", + "kind": "keyword" + } + ] + }, + { + "name": "do", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "do", + "kind": "keyword" + } + ] + }, + { + "name": "else", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "else", + "kind": "keyword" + } + ] + }, + { + "name": "encodeURI", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "var", + "text": "function", "kind": "keyword" }, { @@ -1036,41 +1011,32 @@ "kind": "space" }, { - "text": "NaN", - "kind": "localName" + "text": "encodeURI", + "kind": "functionName" }, { - "text": ":", + "text": "(", "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "uri", + "kind": "parameterName" }, { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "Infinity", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Infinity", - "kind": "localName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -1081,20 +1047,44 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Encodes a text string as a valid Uniform Resource Identifier (URI)", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "uri", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI.", + "kind": "text" + } + ] + } + ] }, { - "name": "Object", - "kind": "var", + "name": "encodeURIComponent", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "var", + "text": "function", "kind": "keyword" }, { @@ -1102,39 +1092,35 @@ "kind": "space" }, { - "text": "Object", - "kind": "localName" + "text": "encodeURIComponent", + "kind": "functionName" }, { - "text": ":", + "text": "(", "kind": "punctuation" }, { - "text": " ", - "kind": "space" - }, - { - "text": "ObjectConstructor", - "kind": "interfaceName" + "text": "uriComponent", + "kind": "parameterName" }, { - "text": "\n", - "kind": "lineBreak" + "text": ":", + "kind": "punctuation" }, { - "text": "(", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": ")", - "kind": "punctuation" + "text": "string", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "=>", + "text": "|", "kind": "punctuation" }, { @@ -1142,7 +1128,7 @@ "kind": "space" }, { - "text": "any", + "text": "number", "kind": "keyword" }, { @@ -1150,50 +1136,74 @@ "kind": "space" }, { - "text": "(", + "text": "|", "kind": "punctuation" }, - { - "text": "+", - "kind": "operator" - }, - { - "text": "1", - "kind": "numericLiteral" - }, { "text": " ", "kind": "space" }, { - "text": "overload", - "kind": "text" + "text": "boolean", + "kind": "keyword" }, { "text": ")", "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "interface", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Object", - "kind": "localName" + "text": "string", + "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Encodes a text string as a valid component of a Uniform Resource Identifier (URI).", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "uriComponent", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI component.", + "kind": "text" + } + ] + } + ] }, { - "name": "Function", + "name": "enum", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "enum", + "kind": "keyword" + } + ] + }, + { + "name": "Error", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -1207,7 +1217,7 @@ "kind": "space" }, { - "text": "Function", + "text": "Error", "kind": "localName" }, { @@ -1219,7 +1229,7 @@ "kind": "space" }, { - "text": "FunctionConstructor", + "text": "ErrorConstructor", "kind": "interfaceName" }, { @@ -1231,12 +1241,12 @@ "kind": "punctuation" }, { - "text": "...", - "kind": "punctuation" + "text": "message", + "kind": "parameterName" }, { - "text": "args", - "kind": "parameterName" + "text": "?", + "kind": "punctuation" }, { "text": ":", @@ -1250,14 +1260,6 @@ "text": "string", "kind": "keyword" }, - { - "text": "[", - "kind": "punctuation" - }, - { - "text": "]", - "kind": "punctuation" - }, { "text": ")", "kind": "punctuation" @@ -1275,7 +1277,7 @@ "kind": "space" }, { - "text": "Function", + "text": "Error", "kind": "localName" }, { @@ -1291,25 +1293,20 @@ "kind": "space" }, { - "text": "Function", + "text": "Error", "kind": "localName" } ], - "documentation": [ - { - "text": "Creates a new function.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "String", - "kind": "var", + "name": "eval", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "var", + "text": "function", "kind": "keyword" }, { @@ -1317,37 +1314,17 @@ "kind": "space" }, { - "text": "String", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "StringConstructor", - "kind": "interfaceName" - }, - { - "text": "\n", - "kind": "lineBreak" + "text": "eval", + "kind": "functionName" }, { "text": "(", "kind": "punctuation" }, { - "text": "value", + "text": "x", "kind": "parameterName" }, - { - "text": "?", - "kind": "punctuation" - }, { "text": ":", "kind": "punctuation" @@ -1357,7 +1334,7 @@ "kind": "space" }, { - "text": "any", + "text": "string", "kind": "keyword" }, { @@ -1365,11 +1342,7 @@ "kind": "punctuation" }, { - "text": " ", - "kind": "space" - }, - { - "text": "=>", + "text": ":", "kind": "punctuation" }, { @@ -1377,35 +1350,38 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "interface", + "text": "any", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "String", - "kind": "localName" } ], "documentation": [ { - "text": "Allows manipulation and formatting of text strings and determination and location of substrings within strings.", + "text": "Evaluates JavaScript code and executes it.", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "x", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A String value that contains valid JavaScript code.", + "kind": "text" + } + ] + } ] }, { - "name": "Boolean", + "name": "EvalError", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -1419,7 +1395,7 @@ "kind": "space" }, { - "text": "Boolean", + "text": "EvalError", "kind": "localName" }, { @@ -1431,31 +1407,19 @@ "kind": "space" }, { - "text": "BooleanConstructor", + "text": "EvalErrorConstructor", "kind": "interfaceName" }, { "text": "\n", "kind": "lineBreak" }, - { - "text": "<", - "kind": "punctuation" - }, - { - "text": "T", - "kind": "typeParameterName" - }, - { - "text": ">", - "kind": "punctuation" - }, { "text": "(", "kind": "punctuation" }, { - "text": "value", + "text": "message", "kind": "parameterName" }, { @@ -1471,8 +1435,8 @@ "kind": "space" }, { - "text": "T", - "kind": "typeParameterName" + "text": "string", + "kind": "keyword" }, { "text": ")", @@ -1491,106 +1455,37 @@ "kind": "space" }, { - "text": "boolean", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Boolean", - "kind": "localName" - } - ], - "documentation": [] - }, - { - "name": "Number", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Number", + "text": "EvalError", "kind": "localName" }, - { - "text": ":", - "kind": "punctuation" - }, { "text": " ", "kind": "space" }, - { - "text": "NumberConstructor", - "kind": "interfaceName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, { "text": "(", "kind": "punctuation" }, { - "text": "value", - "kind": "parameterName" - }, - { - "text": "?", - "kind": "punctuation" + "text": "+", + "kind": "operator" }, { - "text": ":", - "kind": "punctuation" + "text": "1", + "kind": "numericLiteral" }, { "text": " ", "kind": "space" }, { - "text": "any", - "kind": "keyword" + "text": "overload", + "kind": "text" }, { "text": ")", "kind": "punctuation" }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=>", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, { "text": "\n", "kind": "lineBreak" @@ -1604,19 +1499,62 @@ "kind": "space" }, { - "text": "Number", + "text": "EvalError", "kind": "localName" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "export", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "An object that represents a number of any kind. All JavaScript numbers are 64-bit floating-point numbers.", - "kind": "text" + "text": "export", + "kind": "keyword" } ] }, { - "name": "Math", + "name": "extends", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "extends", + "kind": "keyword" + } + ] + }, + { + "name": "false", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "false", + "kind": "keyword" + } + ] + }, + { + "name": "finally", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "finally", + "kind": "keyword" + } + ] + }, + { + "name": "Float32Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -1630,7 +1568,7 @@ "kind": "space" }, { - "text": "Math", + "text": "Float32Array", "kind": "localName" }, { @@ -1646,7 +1584,7 @@ "kind": "space" }, { - "text": "Math", + "text": "Float32Array", "kind": "localName" }, { @@ -1658,25 +1596,25 @@ "kind": "space" }, { - "text": "Math", - "kind": "localName" + "text": "Float32ArrayConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "An intrinsic object that provides basic mathematics functionality and constants.", + "text": "A typed array of 32-bit float values. The contents are initialized to 0. If the requested number\r\nof bytes could not be allocated an exception is raised.", "kind": "text" } ] }, { - "name": "Date", + "name": "Float64Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -1684,75 +1622,71 @@ "kind": "space" }, { - "text": "Date", + "text": "Float64Array", "kind": "localName" }, { - "text": ":", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": " ", - "kind": "space" - }, - { - "text": "DateConstructor", - "kind": "interfaceName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=>", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "string", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" + "text": "Float64Array", + "kind": "localName" }, { - "text": "interface", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Date", - "kind": "localName" + "text": "Float64ArrayConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "Enables basic storage and retrieval of dates and times.", + "text": "A typed array of 64-bit float values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", "kind": "text" } ] }, { - "name": "RegExp", + "name": "for", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "for", + "kind": "keyword" + } + ] + }, + { + "name": "function", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + } + ] + }, + { + "name": "Function", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -1766,7 +1700,7 @@ "kind": "space" }, { - "text": "RegExp", + "text": "Function", "kind": "localName" }, { @@ -1778,7 +1712,7 @@ "kind": "space" }, { - "text": "RegExpConstructor", + "text": "FunctionConstructor", "kind": "interfaceName" }, { @@ -1790,7 +1724,11 @@ "kind": "punctuation" }, { - "text": "pattern", + "text": "...", + "kind": "punctuation" + }, + { + "text": "args", "kind": "parameterName" }, { @@ -1806,20 +1744,12 @@ "kind": "keyword" }, { - "text": " ", - "kind": "space" - }, - { - "text": "|", + "text": "[", "kind": "punctuation" }, { - "text": " ", - "kind": "space" - }, - { - "text": "RegExp", - "kind": "localName" + "text": "]", + "kind": "punctuation" }, { "text": ")", @@ -1838,43 +1768,41 @@ "kind": "space" }, { - "text": "RegExp", + "text": "Function", "kind": "localName" }, { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "+", - "kind": "operator" + "text": "\n", + "kind": "lineBreak" }, { - "text": "1", - "kind": "numericLiteral" + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "overload", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, + "text": "Function", + "kind": "localName" + } + ], + "documentation": [ { - "text": "\n", - "kind": "lineBreak" - }, + "text": "Creates a new function.", + "kind": "text" + } + ] + }, + { + "name": "globalThis", + "kind": "module", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "interface", + "text": "module", "kind": "keyword" }, { @@ -1882,14 +1810,62 @@ "kind": "space" }, { - "text": "RegExp", - "kind": "localName" + "text": "globalThis", + "kind": "moduleName" } ], "documentation": [] }, { - "name": "Error", + "name": "if", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "if", + "kind": "keyword" + } + ] + }, + { + "name": "implements", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "implements", + "kind": "keyword" + } + ] + }, + { + "name": "import", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "import", + "kind": "keyword" + } + ] + }, + { + "name": "in", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "in", + "kind": "keyword" + } + ] + }, + { + "name": "Infinity", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -1903,7 +1879,7 @@ "kind": "space" }, { - "text": "Error", + "text": "Infinity", "kind": "localName" }, { @@ -1915,39 +1891,60 @@ "kind": "space" }, { - "text": "ErrorConstructor", - "kind": "interfaceName" - }, + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "instanceof", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "\n", - "kind": "lineBreak" + "text": "instanceof", + "kind": "keyword" + } + ] + }, + { + "name": "Int16Array", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" }, { - "text": "(", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": "message", - "kind": "parameterName" + "text": "Int16Array", + "kind": "localName" }, { - "text": "?", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "Int16Array", + "kind": "localName" }, { - "text": ")", + "text": ":", "kind": "punctuation" }, { @@ -1955,44 +1952,25 @@ "kind": "space" }, { - "text": "=>", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Error", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Error", - "kind": "localName" + "text": "Int16ArrayConstructor", + "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "A typed array of 16-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] }, { - "name": "EvalError", + "name": "Int32Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -2000,36 +1978,24 @@ "kind": "space" }, { - "text": "EvalError", + "text": "Int32Array", "kind": "localName" }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "EvalErrorConstructor", - "kind": "interfaceName" - }, { "text": "\n", "kind": "lineBreak" }, { - "text": "(", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { - "text": "message", - "kind": "parameterName" + "text": " ", + "kind": "space" }, { - "text": "?", - "kind": "punctuation" + "text": "Int32Array", + "kind": "localName" }, { "text": ":", @@ -2040,84 +2006,112 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" - }, + "text": "Int32ArrayConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ { - "text": ")", - "kind": "punctuation" + "text": "A typed array of 32-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] + }, + { + "name": "Int8Array", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "=>", - "kind": "punctuation" + "text": "Int8Array", + "kind": "localName" }, { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, { - "text": "EvalError", - "kind": "localName" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "(", - "kind": "punctuation" - }, - { - "text": "+", - "kind": "operator" + "text": "Int8Array", + "kind": "localName" }, { - "text": "1", - "kind": "numericLiteral" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "overload", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, + "text": "Int8ArrayConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ { - "text": "\n", - "kind": "lineBreak" - }, + "text": "A typed array of 8-bit integer values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] + }, + { + "name": "interface", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { "text": "interface", "kind": "keyword" + } + ] + }, + { + "name": "Intl", + "kind": "module", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "namespace", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "EvalError", - "kind": "localName" + "text": "Intl", + "kind": "moduleName" } ], "documentation": [] }, { - "name": "RangeError", - "kind": "var", + "name": "isFinite", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "var", + "text": "function", "kind": "keyword" }, { @@ -2125,37 +2119,17 @@ "kind": "space" }, { - "text": "RangeError", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "RangeErrorConstructor", - "kind": "interfaceName" - }, - { - "text": "\n", - "kind": "lineBreak" + "text": "isFinite", + "kind": "functionName" }, { "text": "(", "kind": "punctuation" }, { - "text": "message", + "text": "number", "kind": "parameterName" }, - { - "text": "?", - "kind": "punctuation" - }, { "text": ":", "kind": "punctuation" @@ -2165,7 +2139,7 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" }, { @@ -2173,11 +2147,7 @@ "kind": "punctuation" }, { - "text": " ", - "kind": "space" - }, - { - "text": "=>", + "text": ":", "kind": "punctuation" }, { @@ -2185,64 +2155,125 @@ "kind": "space" }, { - "text": "RangeError", - "kind": "localName" + "text": "boolean", + "kind": "keyword" + } + ], + "documentation": [ + { + "text": "Determines whether a supplied number is finite.", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "number", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Any numeric value.", + "kind": "text" + } + ] + } + ] + }, + { + "name": "isNaN", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "function", + "kind": "keyword" }, { "text": " ", "kind": "space" }, + { + "text": "isNaN", + "kind": "functionName" + }, { "text": "(", "kind": "punctuation" }, { - "text": "+", - "kind": "operator" + "text": "number", + "kind": "parameterName" }, { - "text": "1", - "kind": "numericLiteral" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "overload", - "kind": "text" + "text": "number", + "kind": "keyword" }, { "text": ")", "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "interface", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "RangeError", - "kind": "localName" - } + "text": "boolean", + "kind": "keyword" + } ], - "documentation": [] + "documentation": [ + { + "text": "Returns a Boolean value that indicates whether a value is the reserved value NaN (not a number).", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "number", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A numeric value.", + "kind": "text" + } + ] + } + ] }, { - "name": "ReferenceError", + "name": "JSON", "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -2250,36 +2281,24 @@ "kind": "space" }, { - "text": "ReferenceError", + "text": "JSON", "kind": "localName" }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "ReferenceErrorConstructor", - "kind": "interfaceName" - }, { "text": "\n", "kind": "lineBreak" }, { - "text": "(", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { - "text": "message", - "kind": "parameterName" + "text": " ", + "kind": "space" }, { - "text": "?", - "kind": "punctuation" + "text": "JSON", + "kind": "localName" }, { "text": ":", @@ -2290,78 +2309,142 @@ "kind": "space" }, { - "text": "string", + "text": "JSON", + "kind": "localName" + } + ], + "documentation": [ + { + "text": "An intrinsic object that provides functions to convert JavaScript values to and from the JavaScript Object Notation (JSON) format.", + "kind": "text" + } + ] + }, + { + "name": "let", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "let", "kind": "keyword" - }, + } + ] + }, + { + "name": "Math", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { - "text": ")", - "kind": "punctuation" + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "=>", - "kind": "punctuation" + "text": "Math", + "kind": "localName" }, { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, { - "text": "ReferenceError", - "kind": "localName" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "(", - "kind": "punctuation" - }, - { - "text": "+", - "kind": "operator" + "text": "Math", + "kind": "localName" }, { - "text": "1", - "kind": "numericLiteral" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "overload", + "text": "Math", + "kind": "localName" + } + ], + "documentation": [ + { + "text": "An intrinsic object that provides basic mathematics functionality and constants.", "kind": "text" + } + ] + }, + { + "name": "NaN", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "var", + "kind": "keyword" }, { - "text": ")", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": "\n", - "kind": "lineBreak" + "text": "NaN", + "kind": "localName" }, { - "text": "interface", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "ReferenceError", - "kind": "localName" + "text": "number", + "kind": "keyword" } ], "documentation": [] }, { - "name": "SyntaxError", + "name": "new", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "new", + "kind": "keyword" + } + ] + }, + { + "name": "null", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "null", + "kind": "keyword" + } + ] + }, + { + "name": "Number", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -2375,7 +2458,7 @@ "kind": "space" }, { - "text": "SyntaxError", + "text": "Number", "kind": "localName" }, { @@ -2387,7 +2470,7 @@ "kind": "space" }, { - "text": "SyntaxErrorConstructor", + "text": "NumberConstructor", "kind": "interfaceName" }, { @@ -2399,7 +2482,7 @@ "kind": "punctuation" }, { - "text": "message", + "text": "value", "kind": "parameterName" }, { @@ -2415,7 +2498,7 @@ "kind": "space" }, { - "text": "string", + "text": "any", "kind": "keyword" }, { @@ -2435,36 +2518,8 @@ "kind": "space" }, { - "text": "SyntaxError", - "kind": "localName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "+", - "kind": "operator" - }, - { - "text": "1", - "kind": "numericLiteral" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "overload", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" + "text": "number", + "kind": "keyword" }, { "text": "\n", @@ -2479,14 +2534,19 @@ "kind": "space" }, { - "text": "SyntaxError", + "text": "Number", "kind": "localName" } ], - "documentation": [] + "documentation": [ + { + "text": "An object that represents a number of any kind. All JavaScript numbers are 64-bit floating-point numbers.", + "kind": "text" + } + ] }, { - "name": "TypeError", + "name": "Object", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -2500,7 +2560,7 @@ "kind": "space" }, { - "text": "TypeError", + "text": "Object", "kind": "localName" }, { @@ -2512,7 +2572,7 @@ "kind": "space" }, { - "text": "TypeErrorConstructor", + "text": "ObjectConstructor", "kind": "interfaceName" }, { @@ -2524,15 +2584,15 @@ "kind": "punctuation" }, { - "text": "message", - "kind": "parameterName" + "text": ")", + "kind": "punctuation" }, { - "text": "?", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": ":", + "text": "=>", "kind": "punctuation" }, { @@ -2540,40 +2600,20 @@ "kind": "space" }, { - "text": "string", + "text": "any", "kind": "keyword" }, - { - "text": ")", - "kind": "punctuation" - }, { "text": " ", "kind": "space" }, { - "text": "=>", + "text": "(", "kind": "punctuation" }, { - "text": " ", - "kind": "space" - }, - { - "text": "TypeError", - "kind": "localName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "+", - "kind": "operator" + "text": "+", + "kind": "operator" }, { "text": "1", @@ -2604,58 +2644,50 @@ "kind": "space" }, { - "text": "TypeError", + "text": "Object", "kind": "localName" } ], "documentation": [] }, { - "name": "URIError", - "kind": "var", - "kindModifiers": "declare", + "name": "package", + "kind": "keyword", + "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "var", + "text": "package", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "URIError", - "kind": "localName" - }, + } + ] + }, + { + "name": "parseFloat", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { - "text": ":", - "kind": "punctuation" + "text": "function", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "URIErrorConstructor", - "kind": "interfaceName" - }, - { - "text": "\n", - "kind": "lineBreak" + "text": "parseFloat", + "kind": "functionName" }, { "text": "(", "kind": "punctuation" }, { - "text": "message", + "text": "string", "kind": "parameterName" }, - { - "text": "?", - "kind": "punctuation" - }, { "text": ":", "kind": "punctuation" @@ -2673,11 +2705,7 @@ "kind": "punctuation" }, { - "text": " ", - "kind": "space" - }, - { - "text": "=>", + "text": ":", "kind": "punctuation" }, { @@ -2685,89 +2713,105 @@ "kind": "space" }, { - "text": "URIError", - "kind": "localName" - }, - { - "text": " ", - "kind": "space" - }, + "text": "number", + "kind": "keyword" + } + ], + "documentation": [ { - "text": "(", - "kind": "punctuation" - }, + "text": "Converts a string to a floating-point number.", + "kind": "text" + } + ], + "tags": [ { - "text": "+", - "kind": "operator" - }, + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string that contains a floating-point number.", + "kind": "text" + } + ] + } + ] + }, + { + "name": "parseInt", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { - "text": "1", - "kind": "numericLiteral" + "text": "function", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "overload", - "kind": "text" + "text": "parseInt", + "kind": "functionName" }, { - "text": ")", + "text": "(", "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": "string", + "kind": "parameterName" }, { - "text": "interface", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "URIError", - "kind": "localName" - } - ], - "documentation": [] - }, - { - "name": "JSON", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", + "text": "string", "kind": "keyword" }, + { + "text": ",", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "JSON", - "kind": "localName" + "text": "radix", + "kind": "parameterName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "?", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "JSON", - "kind": "localName" + "text": "number", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -2778,19 +2822,55 @@ "kind": "space" }, { - "text": "JSON", - "kind": "localName" + "text": "number", + "kind": "keyword" } ], "documentation": [ { - "text": "An intrinsic object that provides functions to convert JavaScript values to and from the JavaScript Object Notation (JSON) format.", + "text": "Converts a string to an integer.", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string to convert into a number.", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "radix", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value between 2 and 36 that specifies the base of the number in `string`.\r\nIf this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal.\r\nAll other strings are considered decimal.", + "kind": "text" + } + ] + } ] }, { - "name": "Array", + "name": "RangeError", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -2804,7 +2884,7 @@ "kind": "space" }, { - "text": "Array", + "text": "RangeError", "kind": "localName" }, { @@ -2816,7 +2896,7 @@ "kind": "space" }, { - "text": "ArrayConstructor", + "text": "RangeErrorConstructor", "kind": "interfaceName" }, { @@ -2828,7 +2908,7 @@ "kind": "punctuation" }, { - "text": "arrayLength", + "text": "message", "kind": "parameterName" }, { @@ -2844,7 +2924,7 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" }, { @@ -2864,16 +2944,8 @@ "kind": "space" }, { - "text": "any", - "kind": "keyword" - }, - { - "text": "[", - "kind": "punctuation" - }, - { - "text": "]", - "kind": "punctuation" + "text": "RangeError", + "kind": "localName" }, { "text": " ", @@ -2888,7 +2960,7 @@ "kind": "operator" }, { - "text": "2", + "text": "1", "kind": "numericLiteral" }, { @@ -2896,7 +2968,7 @@ "kind": "space" }, { - "text": "overloads", + "text": "overload", "kind": "text" }, { @@ -2916,32 +2988,20 @@ "kind": "space" }, { - "text": "Array", + "text": "RangeError", "kind": "localName" - }, - { - "text": "<", - "kind": "punctuation" - }, - { - "text": "T", - "kind": "typeParameterName" - }, - { - "text": ">", - "kind": "punctuation" } ], "documentation": [] }, { - "name": "ArrayBuffer", + "name": "ReferenceError", "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "var", "kind": "keyword" }, { @@ -2949,24 +3009,36 @@ "kind": "space" }, { - "text": "ArrayBuffer", + "text": "ReferenceError", "kind": "localName" }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "ReferenceErrorConstructor", + "kind": "interfaceName" + }, { "text": "\n", "kind": "lineBreak" }, { - "text": "var", - "kind": "keyword" + "text": "(", + "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "message", + "kind": "parameterName" }, { - "text": "ArrayBuffer", - "kind": "localName" + "text": "?", + "kind": "punctuation" }, { "text": ":", @@ -2977,74 +3049,84 @@ "kind": "space" }, { - "text": "ArrayBufferConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ + "text": "string", + "kind": "keyword" + }, { - "text": "Represents a raw buffer of binary data, which is used to store data for the\r\ndifferent typed arrays. ArrayBuffers cannot be read from or written to directly,\r\nbut can be passed to a typed array or DataView Object to interpret the raw\r\nbuffer as needed.", - "kind": "text" - } - ] - }, - { - "name": "DataView", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ + "text": ")", + "kind": "punctuation" + }, { - "text": "interface", - "kind": "keyword" + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "DataView", + "text": "ReferenceError", "kind": "localName" }, { - "text": "\n", - "kind": "lineBreak" + "text": " ", + "kind": "space" }, { - "text": "var", - "kind": "keyword" + "text": "(", + "kind": "punctuation" + }, + { + "text": "+", + "kind": "operator" + }, + { + "text": "1", + "kind": "numericLiteral" }, { "text": " ", "kind": "space" }, { - "text": "DataView", - "kind": "localName" + "text": "overload", + "kind": "text" }, { - "text": ":", + "text": ")", "kind": "punctuation" }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "interface", + "kind": "keyword" + }, { "text": " ", "kind": "space" }, { - "text": "DataViewConstructor", - "kind": "interfaceName" + "text": "ReferenceError", + "kind": "localName" } ], "documentation": [] }, { - "name": "Int8Array", + "name": "RegExp", "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "var", "kind": "keyword" }, { @@ -3052,81 +3134,63 @@ "kind": "space" }, { - "text": "Int8Array", + "text": "RegExp", "kind": "localName" }, { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Int8Array", - "kind": "localName" + "text": "RegExpConstructor", + "kind": "interfaceName" }, { - "text": ":", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "Int8ArrayConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "A typed array of 8-bit integer values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] - }, - { - "name": "Uint8Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ + "text": "pattern", + "kind": "parameterName" + }, { - "text": "interface", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Uint8Array", - "kind": "localName" + "text": "string", + "kind": "keyword" }, { - "text": "\n", - "kind": "lineBreak" + "text": " ", + "kind": "space" }, { - "text": "var", - "kind": "keyword" + "text": "|", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Uint8Array", + "text": "RegExp", "kind": "localName" }, { - "text": ":", + "text": ")", "kind": "punctuation" }, { @@ -3134,79 +3198,84 @@ "kind": "space" }, { - "text": "Uint8ArrayConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ + "text": "=>", + "kind": "punctuation" + }, { - "text": "A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] - }, - { - "name": "Uint8ClampedArray", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "interface", - "kind": "keyword" + "text": "RegExp", + "kind": "localName" }, { "text": " ", "kind": "space" }, { - "text": "Uint8ClampedArray", - "kind": "localName" + "text": "(", + "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": "+", + "kind": "operator" }, { - "text": "var", - "kind": "keyword" + "text": "1", + "kind": "numericLiteral" }, { "text": " ", "kind": "space" }, { - "text": "Uint8ClampedArray", - "kind": "localName" + "text": "overload", + "kind": "text" }, { - "text": ":", + "text": ")", "kind": "punctuation" }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "interface", + "kind": "keyword" + }, { "text": " ", "kind": "space" }, { - "text": "Uint8ClampedArrayConstructor", - "kind": "interfaceName" + "text": "RegExp", + "kind": "localName" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "return", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0.\r\nIf the requested number of bytes could not be allocated an exception is raised.", - "kind": "text" + "text": "return", + "kind": "keyword" } ] }, { - "name": "Int16Array", + "name": "String", "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "var", "kind": "keyword" }, { @@ -3214,81 +3283,51 @@ "kind": "space" }, { - "text": "Int16Array", + "text": "String", "kind": "localName" }, { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Int16Array", - "kind": "localName" + "text": "StringConstructor", + "kind": "interfaceName" }, { - "text": ":", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "Int16ArrayConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "A typed array of 16-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] - }, - { - "name": "Uint16Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Uint16Array", - "kind": "localName" + "text": "value", + "kind": "parameterName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "?", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Uint16Array", - "kind": "localName" + "text": "any", + "kind": "keyword" }, { - "text": ":", + "text": ")", "kind": "punctuation" }, { @@ -3296,41 +3335,23 @@ "kind": "space" }, { - "text": "Uint16ArrayConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] - }, - { - "name": "Int32Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" + "text": "=>", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Int32Array", - "kind": "localName" + "text": "string", + "kind": "keyword" }, { "text": "\n", "kind": "lineBreak" }, { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -3338,51 +3359,47 @@ "kind": "space" }, { - "text": "Int32Array", + "text": "String", "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Int32ArrayConstructor", - "kind": "interfaceName" } ], "documentation": [ { - "text": "A typed array of 32-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "text": "Allows manipulation and formatting of text strings and determination and location of substrings within strings.", "kind": "text" } ] }, { - "name": "Uint32Array", - "kind": "var", - "kindModifiers": "declare", + "name": "super", + "kind": "keyword", + "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "super", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Uint32Array", - "kind": "localName" - }, + } + ] + }, + { + "name": "switch", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "\n", - "kind": "lineBreak" - }, + "text": "switch", + "kind": "keyword" + } + ] + }, + { + "name": "SyntaxError", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { "text": "var", "kind": "keyword" @@ -3392,7 +3409,7 @@ "kind": "space" }, { - "text": "Uint32Array", + "text": "SyntaxError", "kind": "localName" }, { @@ -3404,53 +3421,39 @@ "kind": "space" }, { - "text": "Uint32ArrayConstructor", + "text": "SyntaxErrorConstructor", "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] - }, - { - "name": "Float32Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ + }, { - "text": "interface", - "kind": "keyword" + "text": "\n", + "kind": "lineBreak" }, { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "Float32Array", - "kind": "localName" + "text": "message", + "kind": "parameterName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "?", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Float32Array", - "kind": "localName" + "text": "string", + "kind": "keyword" }, { - "text": ":", + "text": ")", "kind": "punctuation" }, { @@ -3458,79 +3461,51 @@ "kind": "space" }, { - "text": "Float32ArrayConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ + "text": "=>", + "kind": "punctuation" + }, { - "text": "A typed array of 32-bit float values. The contents are initialized to 0. If the requested number\r\nof bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] - }, - { - "name": "Float64Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "interface", - "kind": "keyword" + "text": "SyntaxError", + "kind": "localName" }, { "text": " ", "kind": "space" }, { - "text": "Float64Array", - "kind": "localName" + "text": "(", + "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": "+", + "kind": "operator" }, { - "text": "var", - "kind": "keyword" + "text": "1", + "kind": "numericLiteral" }, { "text": " ", "kind": "space" }, { - "text": "Float64Array", - "kind": "localName" + "text": "overload", + "kind": "text" }, { - "text": ":", + "text": ")", "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, { - "text": "Float64ArrayConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "A typed array of 64-bit float values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] - }, - { - "name": "Intl", - "kind": "module", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "namespace", + "text": "interface", "kind": "keyword" }, { @@ -3538,66 +3513,68 @@ "kind": "space" }, { - "text": "Intl", - "kind": "moduleName" + "text": "SyntaxError", + "kind": "localName" } ], "documentation": [] }, { - "name": "foo", - "kind": "function", + "name": "this", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "function", + "text": "this", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, + } + ] + }, + { + "name": "throw", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "void", + "text": "throw", "kind": "keyword" } - ], - "documentation": [ + ] + }, + { + "name": "true", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "This comment should appear for foo", - "kind": "text" + "text": "true", + "kind": "keyword" } ] }, { - "name": "fooWithParameters", - "kind": "function", + "name": "try", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "function", + "text": "try", + "kind": "keyword" + } + ] + }, + { + "name": "TypeError", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "var", "kind": "keyword" }, { @@ -3605,17 +3582,37 @@ "kind": "space" }, { - "text": "fooWithParameters", - "kind": "functionName" + "text": "TypeError", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "TypeErrorConstructor", + "kind": "interfaceName" + }, + { + "text": "\n", + "kind": "lineBreak" }, { "text": "(", "kind": "punctuation" }, { - "text": "a", + "text": "message", "kind": "parameterName" }, + { + "text": "?", + "kind": "punctuation" + }, { "text": ":", "kind": "punctuation" @@ -3629,7 +3626,7 @@ "kind": "keyword" }, { - "text": ",", + "text": ")", "kind": "punctuation" }, { @@ -3637,53 +3634,84 @@ "kind": "space" }, { - "text": "b", - "kind": "parameterName" + "text": "=>", + "kind": "punctuation" }, { - "text": ":", + "text": " ", + "kind": "space" + }, + { + "text": "TypeError", + "kind": "localName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", "kind": "punctuation" }, + { + "text": "+", + "kind": "operator" + }, + { + "text": "1", + "kind": "numericLiteral" + }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "overload", + "kind": "text" }, { "text": ")", "kind": "punctuation" }, { - "text": ":", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "void", - "kind": "keyword" + "text": "TypeError", + "kind": "localName" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "typeof", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "This is comment for function signature", - "kind": "text" + "text": "typeof", + "kind": "keyword" } ] }, { - "name": "fn", - "kind": "function", + "name": "Uint16Array", + "kind": "var", "kindModifiers": "declare", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -3691,32 +3719,24 @@ "kind": "space" }, { - "text": "fn", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" + "text": "Uint16Array", + "kind": "localName" }, { - "text": "a", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "Uint16Array", + "kind": "localName" }, { "text": ":", @@ -3727,42 +3747,39 @@ "kind": "space" }, { - "text": "any", - "kind": "keyword" + "text": "Uint16ArrayConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "Does something", + "text": "A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", "kind": "text" } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "a", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "a string", - "kind": "text" - } - ] - } ] }, { - "name": "undefined", + "name": "Uint32Array", "kind": "var", - "kindModifiers": "", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint32Array", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, { "text": "var", "kind": "keyword" @@ -3772,1667 +3789,492 @@ "kind": "space" }, { - "text": "undefined", - "kind": "propertyName" + "text": "Uint32Array", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint32ArrayConstructor", + "kind": "interfaceName" } ], - "documentation": [] - }, - { - "name": "break", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "documentation": [ { - "text": "break", - "kind": "keyword" + "text": "A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" } ] }, { - "name": "case", - "kind": "keyword", - "kindModifiers": "", + "name": "Uint8Array", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "case", + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint8Array", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint8Array", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint8ArrayConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ + { + "text": "A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" } ] }, { - "name": "catch", - "kind": "keyword", - "kindModifiers": "", + "name": "Uint8ClampedArray", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "catch", + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint8ClampedArray", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint8ClampedArray", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint8ClampedArrayConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ + { + "text": "A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0.\r\nIf the requested number of bytes could not be allocated an exception is raised.", + "kind": "text" } ] }, { - "name": "class", - "kind": "keyword", + "name": "undefined", + "kind": "var", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "class", + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "undefined", + "kind": "propertyName" } - ] + ], + "documentation": [] }, { - "name": "const", - "kind": "keyword", - "kindModifiers": "", + "name": "URIError", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "const", + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "URIError", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "URIErrorConstructor", + "kind": "interfaceName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "message", + "kind": "parameterName" + }, + { + "text": "?", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "URIError", + "kind": "localName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "+", + "kind": "operator" + }, + { + "text": "1", + "kind": "numericLiteral" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "overload", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "interface", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "URIError", + "kind": "localName" } - ] + ], + "documentation": [] }, { - "name": "continue", + "name": "var", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "continue", + "text": "var", "kind": "keyword" } ] }, { - "name": "debugger", + "name": "void", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "debugger", + "text": "void", "kind": "keyword" } ] }, { - "name": "default", + "name": "while", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "default", + "text": "while", "kind": "keyword" } ] }, { - "name": "delete", + "name": "with", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "delete", + "text": "with", "kind": "keyword" } ] }, { - "name": "do", + "name": "yield", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "do", + "text": "yield", "kind": "keyword" } ] }, { - "name": "else", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", + "name": "escape", + "kind": "function", + "kindModifiers": "deprecated,declare", + "sortText": "z15", "displayParts": [ { - "text": "else", + "text": "function", "kind": "keyword" - } - ] - }, - { - "name": "enum", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "enum", - "kind": "keyword" - } - ] - }, - { - "name": "export", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "export", - "kind": "keyword" - } - ] - }, - { - "name": "extends", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "escape", + "kind": "functionName" + }, { - "text": "extends", + "text": "(", + "kind": "punctuation" + }, + { + "text": "string", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", "kind": "keyword" - } - ] - }, - { - "name": "false", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "false", + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", "kind": "keyword" } - ] - }, - { - "name": "finally", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "finally", - "kind": "keyword" + "text": "Computes a new string in which certain characters have been replaced by a hexadecimal escape sequence.", + "kind": "text" } - ] - }, - { - "name": "for", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "tags": [ { - "text": "for", - "kind": "keyword" + "name": "deprecated", + "text": [ + { + "text": "A legacy feature for browser compatibility", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string value", + "kind": "text" + } + ] } ] }, { - "name": "function", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", + "name": "unescape", + "kind": "function", + "kindModifiers": "deprecated,declare", + "sortText": "z15", "displayParts": [ { "text": "function", "kind": "keyword" - } - ] - }, - { - "name": "if", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "if", - "kind": "keyword" - } - ] - }, - { - "name": "import", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "import", - "kind": "keyword" - } - ] - }, - { - "name": "in", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "unescape", + "kind": "functionName" + }, { - "text": "in", - "kind": "keyword" - } - ] - }, - { - "name": "instanceof", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "(", + "kind": "punctuation" + }, { - "text": "instanceof", + "text": "string", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", "kind": "keyword" - } - ] - }, - { - "name": "new", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "new", + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", "kind": "keyword" } - ] - }, - { - "name": "null", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "null", - "kind": "keyword" - } - ] - }, - { - "name": "return", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "return", - "kind": "keyword" - } - ] - }, - { - "name": "super", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "super", - "kind": "keyword" - } - ] - }, - { - "name": "switch", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "switch", - "kind": "keyword" - } - ] - }, - { - "name": "this", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "this", - "kind": "keyword" - } - ] - }, - { - "name": "throw", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "throw", - "kind": "keyword" - } - ] - }, - { - "name": "true", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "true", - "kind": "keyword" - } - ] - }, - { - "name": "try", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "try", - "kind": "keyword" - } - ] - }, - { - "name": "typeof", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "typeof", - "kind": "keyword" - } - ] - }, - { - "name": "var", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "var", - "kind": "keyword" - } - ] - }, - { - "name": "void", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "void", - "kind": "keyword" - } - ] - }, - { - "name": "while", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "while", - "kind": "keyword" - } - ] - }, - { - "name": "with", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "with", - "kind": "keyword" - } - ] - }, - { - "name": "implements", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "implements", - "kind": "keyword" - } - ] - }, - { - "name": "interface", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - } - ] - }, - { - "name": "let", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "let", - "kind": "keyword" - } - ] - }, - { - "name": "package", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "package", - "kind": "keyword" - } - ] - }, - { - "name": "yield", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "yield", - "kind": "keyword" - } - ] - }, - { - "name": "as", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "as", - "kind": "keyword" - } - ] - }, - { - "name": "async", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "async", - "kind": "keyword" - } - ] - }, - { - "name": "await", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "await", - "kind": "keyword" - } - ] - } - ] - } - }, - { - "marker": { - "fileName": "/tests/cases/fourslash/completionsCommentsFunctionDeclaration.ts", - "position": 240, - "name": "7" - }, - "completionList": { - "isGlobalCompletion": false, - "isMemberCompletion": false, - "isNewIdentifierLocation": true, - "optionalReplacementSpan": { - "start": 240, - "length": 1 - }, - "entries": [ - { - "name": "a", - "kind": "parameter", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "parameter", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "a", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "this is comment about a", - "kind": "text" - } - ] - }, - { - "name": "b", - "kind": "parameter", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "parameter", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "b", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "this is comment for b", - "kind": "text" - } - ] - }, - { - "name": "arguments", - "kind": "local var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "local var", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "arguments", - "kind": "propertyName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "IArguments", - "kind": "interfaceName" - } - ], - "documentation": [] - }, - { - "name": "globalThis", - "kind": "module", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "module", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "globalThis", - "kind": "moduleName" - } - ], - "documentation": [] - }, - { - "name": "eval", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "eval", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "x", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Evaluates JavaScript code and executes it.", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "x", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A String value that contains valid JavaScript code.", - "kind": "text" - } - ] - } - ] - }, - { - "name": "parseInt", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "parseInt", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "string", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": ",", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "radix", - "kind": "parameterName" - }, - { - "text": "?", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Converts a string to an integer.", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string to convert into a number.", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "radix", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value between 2 and 36 that specifies the base of the number in `string`.\r\nIf this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal.\r\nAll other strings are considered decimal.", - "kind": "text" - } - ] - } - ] - }, - { - "name": "parseFloat", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "parseFloat", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "string", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Converts a string to a floating-point number.", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string that contains a floating-point number.", - "kind": "text" - } - ] - } - ] - }, - { - "name": "isNaN", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "isNaN", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "number", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "boolean", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Returns a Boolean value that indicates whether a value is the reserved value NaN (not a number).", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "number", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A numeric value.", - "kind": "text" - } - ] - } - ] - }, - { - "name": "isFinite", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "isFinite", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "number", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "boolean", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Determines whether a supplied number is finite.", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "number", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Any numeric value.", - "kind": "text" - } - ] - } - ] - }, - { - "name": "decodeURI", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "decodeURI", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "encodedURI", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Gets the unencoded version of an encoded Uniform Resource Identifier (URI).", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "encodedURI", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI.", - "kind": "text" - } - ] - } - ] - }, - { - "name": "decodeURIComponent", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "decodeURIComponent", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "encodedURIComponent", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "encodedURIComponent", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI component.", - "kind": "text" - } - ] - } - ] - }, - { - "name": "encodeURI", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "encodeURI", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "uri", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Encodes a text string as a valid Uniform Resource Identifier (URI)", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "uri", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI.", - "kind": "text" - } - ] - } - ] - }, - { - "name": "encodeURIComponent", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "encodeURIComponent", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "uriComponent", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "|", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "|", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "boolean", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Encodes a text string as a valid component of a Uniform Resource Identifier (URI).", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "uriComponent", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI component.", - "kind": "text" - } - ] - } - ] - }, - { - "name": "escape", - "kind": "function", - "kindModifiers": "deprecated,declare", - "sortText": "23", - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "escape", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "string", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Computes a new string in which certain characters have been replaced by a hexadecimal escape sequence.", - "kind": "text" - } - ], - "tags": [ - { - "name": "deprecated", - "text": [ - { - "text": "A legacy feature for browser compatibility", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string value", - "kind": "text" - } - ] - } - ] - }, - { - "name": "unescape", - "kind": "function", - "kindModifiers": "deprecated,declare", - "sortText": "23", - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "unescape", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "string", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Computes a new string in which hexadecimal escape sequences are replaced with the character that it represents.", - "kind": "text" + "text": "Computes a new string in which hexadecimal escape sequences are replaced with the character that it represents.", + "kind": "text" } ], "tags": [ @@ -5463,214 +4305,50 @@ ] } ] - }, - { - "name": "NaN", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "NaN", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "Infinity", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Infinity", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "Object", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Object", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Object", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "ObjectConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "Provides functionality common to all JavaScript objects.", - "kind": "text" - } - ] - }, - { - "name": "Function", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Function", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Function", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "FunctionConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "Creates a new function.", - "kind": "text" - } - ] - }, - { - "name": "String", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + } + ] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/completionsCommentsFunctionDeclaration.ts", + "position": 240, + "name": "7" + }, + "completionList": { + "isGlobalCompletion": false, + "isMemberCompletion": false, + "isNewIdentifierLocation": true, + "optionalReplacementSpan": { + "start": 240, + "length": 1 + }, + "entries": [ + { + "name": "a", + "kind": "parameter", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "String", - "kind": "localName" + "text": "(", + "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": "parameter", + "kind": "text" }, { - "text": "var", - "kind": "keyword" + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "String", - "kind": "localName" + "text": "a", + "kind": "parameterName" }, { "text": ":", @@ -5681,50 +4359,42 @@ "kind": "space" }, { - "text": "StringConstructor", - "kind": "interfaceName" + "text": "string", + "kind": "keyword" } ], "documentation": [ { - "text": "Allows manipulation and formatting of text strings and determination and location of substrings within strings.", + "text": "this is comment about a", "kind": "text" } ] }, { - "name": "Boolean", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "arguments", + "kind": "local var", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Boolean", - "kind": "localName" + "text": "(", + "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": "local var", + "kind": "text" }, { - "text": "var", - "kind": "keyword" + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Boolean", - "kind": "localName" + "text": "arguments", + "kind": "propertyName" }, { "text": ":", @@ -5735,45 +4405,37 @@ "kind": "space" }, { - "text": "BooleanConstructor", + "text": "IArguments", "kind": "interfaceName" } ], "documentation": [] }, { - "name": "Number", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "b", + "kind": "parameter", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Number", - "kind": "localName" + "text": "(", + "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": "parameter", + "kind": "text" }, { - "text": "var", - "kind": "keyword" + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Number", - "kind": "localName" + "text": "b", + "kind": "parameterName" }, { "text": ":", @@ -5784,25 +4446,25 @@ "kind": "space" }, { - "text": "NumberConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], "documentation": [ { - "text": "An object that represents a number of any kind. All JavaScript numbers are 64-bit floating-point numbers.", + "text": "this is comment for b", "kind": "text" } ] }, { - "name": "Math", - "kind": "var", + "name": "fn", + "kind": "function", "kindModifiers": "declare", - "sortText": "15", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -5810,24 +4472,32 @@ "kind": "space" }, { - "text": "Math", - "kind": "localName" + "text": "fn", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "a", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Math", - "kind": "localName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -5838,25 +4508,44 @@ "kind": "space" }, { - "text": "Math", - "kind": "localName" + "text": "any", + "kind": "keyword" } ], "documentation": [ { - "text": "An intrinsic object that provides basic mathematics functionality and constants.", + "text": "Does something", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "a", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "a string", + "kind": "text" + } + ] + } ] }, { - "name": "Date", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "foo", + "kind": "function", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -5864,24 +4553,16 @@ "kind": "space" }, { - "text": "Date", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": "foo", + "kind": "functionName" }, { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "Date", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -5892,25 +4573,25 @@ "kind": "space" }, { - "text": "DateConstructor", - "kind": "interfaceName" + "text": "void", + "kind": "keyword" } ], "documentation": [ { - "text": "Enables basic storage and retrieval of dates and times.", + "text": "This comment should appear for foo", "kind": "text" } ] }, { - "name": "RegExp", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "fooWithParameters", + "kind": "function", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -5918,24 +4599,56 @@ "kind": "space" }, { - "text": "RegExp", - "kind": "localName" + "text": "fooWithParameters", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", + "text": "a", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", "kind": "keyword" }, + { + "text": ",", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "RegExp", - "kind": "localName" + "text": "b", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -5946,14 +4659,19 @@ "kind": "space" }, { - "text": "RegExpConstructor", - "kind": "interfaceName" + "text": "void", + "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "This is comment for function signature", + "kind": "text" + } + ] }, { - "name": "Error", + "name": "Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -5967,9 +4685,21 @@ "kind": "space" }, { - "text": "Error", + "text": "Array", "kind": "localName" }, + { + "text": "<", + "kind": "punctuation" + }, + { + "text": "T", + "kind": "typeParameterName" + }, + { + "text": ">", + "kind": "punctuation" + }, { "text": "\n", "kind": "lineBreak" @@ -5983,7 +4713,7 @@ "kind": "space" }, { - "text": "Error", + "text": "Array", "kind": "localName" }, { @@ -5995,14 +4725,14 @@ "kind": "space" }, { - "text": "ErrorConstructor", + "text": "ArrayConstructor", "kind": "interfaceName" } ], "documentation": [] }, { - "name": "EvalError", + "name": "ArrayBuffer", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -6016,7 +4746,7 @@ "kind": "space" }, { - "text": "EvalError", + "text": "ArrayBuffer", "kind": "localName" }, { @@ -6032,7 +4762,7 @@ "kind": "space" }, { - "text": "EvalError", + "text": "ArrayBuffer", "kind": "localName" }, { @@ -6044,14 +4774,55 @@ "kind": "space" }, { - "text": "EvalErrorConstructor", + "text": "ArrayBufferConstructor", "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "Represents a raw buffer of binary data, which is used to store data for the\r\ndifferent typed arrays. ArrayBuffers cannot be read from or written to directly,\r\nbut can be passed to a typed array or DataView Object to interpret the raw\r\nbuffer as needed.", + "kind": "text" + } + ] }, { - "name": "RangeError", + "name": "as", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "as", + "kind": "keyword" + } + ] + }, + { + "name": "async", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "async", + "kind": "keyword" + } + ] + }, + { + "name": "await", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "await", + "kind": "keyword" + } + ] + }, + { + "name": "Boolean", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -6065,7 +4836,7 @@ "kind": "space" }, { - "text": "RangeError", + "text": "Boolean", "kind": "localName" }, { @@ -6081,7 +4852,7 @@ "kind": "space" }, { - "text": "RangeError", + "text": "Boolean", "kind": "localName" }, { @@ -6093,14 +4864,86 @@ "kind": "space" }, { - "text": "RangeErrorConstructor", + "text": "BooleanConstructor", "kind": "interfaceName" } ], "documentation": [] }, { - "name": "ReferenceError", + "name": "break", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "break", + "kind": "keyword" + } + ] + }, + { + "name": "case", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "case", + "kind": "keyword" + } + ] + }, + { + "name": "catch", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "catch", + "kind": "keyword" + } + ] + }, + { + "name": "class", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + } + ] + }, + { + "name": "const", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + } + ] + }, + { + "name": "continue", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "continue", + "kind": "keyword" + } + ] + }, + { + "name": "DataView", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -6114,7 +4957,7 @@ "kind": "space" }, { - "text": "ReferenceError", + "text": "DataView", "kind": "localName" }, { @@ -6130,7 +4973,7 @@ "kind": "space" }, { - "text": "ReferenceError", + "text": "DataView", "kind": "localName" }, { @@ -6142,14 +4985,14 @@ "kind": "space" }, { - "text": "ReferenceErrorConstructor", + "text": "DataViewConstructor", "kind": "interfaceName" } ], "documentation": [] }, { - "name": "SyntaxError", + "name": "Date", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -6163,7 +5006,7 @@ "kind": "space" }, { - "text": "SyntaxError", + "text": "Date", "kind": "localName" }, { @@ -6179,7 +5022,7 @@ "kind": "space" }, { - "text": "SyntaxError", + "text": "Date", "kind": "localName" }, { @@ -6191,20 +5034,37 @@ "kind": "space" }, { - "text": "SyntaxErrorConstructor", + "text": "DateConstructor", "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "Enables basic storage and retrieval of dates and times.", + "kind": "text" + } + ] }, { - "name": "TypeError", - "kind": "var", + "name": "debugger", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "debugger", + "kind": "keyword" + } + ] + }, + { + "name": "decodeURI", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -6212,24 +5072,32 @@ "kind": "space" }, { - "text": "TypeError", - "kind": "localName" + "text": "decodeURI", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "encodedURI", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "TypeError", - "kind": "localName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -6240,20 +5108,44 @@ "kind": "space" }, { - "text": "TypeErrorConstructor", - "kind": "interfaceName" + "text": "string", + "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Gets the unencoded version of an encoded Uniform Resource Identifier (URI).", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "encodedURI", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI.", + "kind": "text" + } + ] + } + ] }, { - "name": "URIError", - "kind": "var", + "name": "decodeURIComponent", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -6261,24 +5153,32 @@ "kind": "space" }, { - "text": "URIError", - "kind": "localName" + "text": "decodeURIComponent", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "encodedURIComponent", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "URIError", - "kind": "localName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -6289,20 +5189,92 @@ "kind": "space" }, { - "text": "URIErrorConstructor", - "kind": "interfaceName" + "text": "string", + "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "encodedURIComponent", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI component.", + "kind": "text" + } + ] + } + ] }, { - "name": "JSON", - "kind": "var", + "name": "default", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "default", + "kind": "keyword" + } + ] + }, + { + "name": "delete", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "delete", + "kind": "keyword" + } + ] + }, + { + "name": "do", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "do", + "kind": "keyword" + } + ] + }, + { + "name": "else", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "else", + "kind": "keyword" + } + ] + }, + { + "name": "encodeURI", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -6310,24 +5282,32 @@ "kind": "space" }, { - "text": "JSON", - "kind": "localName" + "text": "encodeURI", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "uri", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "JSON", - "kind": "localName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -6338,25 +5318,44 @@ "kind": "space" }, { - "text": "JSON", - "kind": "localName" + "text": "string", + "kind": "keyword" } ], "documentation": [ { - "text": "An intrinsic object that provides functions to convert JavaScript values to and from the JavaScript Object Notation (JSON) format.", + "text": "Encodes a text string as a valid Uniform Resource Identifier (URI)", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "uri", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI.", + "kind": "text" + } + ] + } ] }, { - "name": "Array", - "kind": "var", + "name": "encodeURIComponent", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -6364,27 +5363,27 @@ "kind": "space" }, { - "text": "Array", - "kind": "localName" + "text": "encodeURIComponent", + "kind": "functionName" }, { - "text": "<", + "text": "(", "kind": "punctuation" }, { - "text": "T", - "kind": "typeParameterName" + "text": "uriComponent", + "kind": "parameterName" }, { - "text": ">", + "text": ":", "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": " ", + "kind": "space" }, { - "text": "var", + "text": "string", "kind": "keyword" }, { @@ -6392,11 +5391,7 @@ "kind": "space" }, { - "text": "Array", - "kind": "localName" - }, - { - "text": ":", + "text": "|", "kind": "punctuation" }, { @@ -6404,20 +5399,7 @@ "kind": "space" }, { - "text": "ArrayConstructor", - "kind": "interfaceName" - } - ], - "documentation": [] - }, - { - "name": "ArrayBuffer", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", + "text": "number", "kind": "keyword" }, { @@ -6425,24 +5407,20 @@ "kind": "space" }, { - "text": "ArrayBuffer", - "kind": "localName" + "text": "|", + "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": " ", + "kind": "space" }, { - "text": "var", + "text": "boolean", "kind": "keyword" }, { - "text": " ", - "kind": "space" - }, - { - "text": "ArrayBuffer", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -6453,19 +5431,50 @@ "kind": "space" }, { - "text": "ArrayBufferConstructor", - "kind": "interfaceName" + "text": "string", + "kind": "keyword" + } + ], + "documentation": [ + { + "text": "Encodes a text string as a valid component of a Uniform Resource Identifier (URI).", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "uriComponent", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI component.", + "kind": "text" + } + ] } - ], - "documentation": [ + ] + }, + { + "name": "enum", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "Represents a raw buffer of binary data, which is used to store data for the\r\ndifferent typed arrays. ArrayBuffers cannot be read from or written to directly,\r\nbut can be passed to a typed array or DataView Object to interpret the raw\r\nbuffer as needed.", - "kind": "text" + "text": "enum", + "kind": "keyword" } ] }, { - "name": "DataView", + "name": "Error", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -6479,7 +5488,7 @@ "kind": "space" }, { - "text": "DataView", + "text": "Error", "kind": "localName" }, { @@ -6495,7 +5504,7 @@ "kind": "space" }, { - "text": "DataView", + "text": "Error", "kind": "localName" }, { @@ -6507,20 +5516,20 @@ "kind": "space" }, { - "text": "DataViewConstructor", + "text": "ErrorConstructor", "kind": "interfaceName" } ], "documentation": [] }, { - "name": "Int8Array", - "kind": "var", + "name": "eval", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -6528,24 +5537,32 @@ "kind": "space" }, { - "text": "Int8Array", - "kind": "localName" + "text": "eval", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "x", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Int8Array", - "kind": "localName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -6556,19 +5573,38 @@ "kind": "space" }, { - "text": "Int8ArrayConstructor", - "kind": "interfaceName" + "text": "any", + "kind": "keyword" } ], "documentation": [ { - "text": "A typed array of 8-bit integer values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", + "text": "Evaluates JavaScript code and executes it.", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "x", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A String value that contains valid JavaScript code.", + "kind": "text" + } + ] + } ] }, { - "name": "Uint8Array", + "name": "EvalError", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -6582,7 +5618,7 @@ "kind": "space" }, { - "text": "Uint8Array", + "text": "EvalError", "kind": "localName" }, { @@ -6598,7 +5634,7 @@ "kind": "space" }, { - "text": "Uint8Array", + "text": "EvalError", "kind": "localName" }, { @@ -6610,19 +5646,62 @@ "kind": "space" }, { - "text": "Uint8ArrayConstructor", + "text": "EvalErrorConstructor", "kind": "interfaceName" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "export", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" + "text": "export", + "kind": "keyword" } ] }, { - "name": "Uint8ClampedArray", + "name": "extends", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "extends", + "kind": "keyword" + } + ] + }, + { + "name": "false", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "false", + "kind": "keyword" + } + ] + }, + { + "name": "finally", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "finally", + "kind": "keyword" + } + ] + }, + { + "name": "Float32Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -6636,7 +5715,7 @@ "kind": "space" }, { - "text": "Uint8ClampedArray", + "text": "Float32Array", "kind": "localName" }, { @@ -6652,7 +5731,7 @@ "kind": "space" }, { - "text": "Uint8ClampedArray", + "text": "Float32Array", "kind": "localName" }, { @@ -6664,19 +5743,19 @@ "kind": "space" }, { - "text": "Uint8ClampedArrayConstructor", + "text": "Float32ArrayConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0.\r\nIf the requested number of bytes could not be allocated an exception is raised.", + "text": "A typed array of 32-bit float values. The contents are initialized to 0. If the requested number\r\nof bytes could not be allocated an exception is raised.", "kind": "text" } ] }, { - "name": "Int16Array", + "name": "Float64Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -6690,7 +5769,7 @@ "kind": "space" }, { - "text": "Int16Array", + "text": "Float64Array", "kind": "localName" }, { @@ -6706,7 +5785,7 @@ "kind": "space" }, { - "text": "Int16Array", + "text": "Float64Array", "kind": "localName" }, { @@ -6718,19 +5797,43 @@ "kind": "space" }, { - "text": "Int16ArrayConstructor", + "text": "Float64ArrayConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "A typed array of 16-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "text": "A typed array of 64-bit float values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", "kind": "text" } ] }, { - "name": "Uint16Array", + "name": "for", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "for", + "kind": "keyword" + } + ] + }, + { + "name": "function", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + } + ] + }, + { + "name": "Function", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -6744,7 +5847,7 @@ "kind": "space" }, { - "text": "Uint16Array", + "text": "Function", "kind": "localName" }, { @@ -6760,7 +5863,7 @@ "kind": "space" }, { - "text": "Uint16Array", + "text": "Function", "kind": "localName" }, { @@ -6772,39 +5875,92 @@ "kind": "space" }, { - "text": "Uint16ArrayConstructor", + "text": "FunctionConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" + "text": "Creates a new function.", + "kind": "text" + } + ] + }, + { + "name": "globalThis", + "kind": "module", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "module", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "globalThis", + "kind": "moduleName" + } + ], + "documentation": [] + }, + { + "name": "if", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "if", + "kind": "keyword" + } + ] + }, + { + "name": "implements", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "implements", + "kind": "keyword" + } + ] + }, + { + "name": "import", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "import", + "kind": "keyword" + } + ] + }, + { + "name": "in", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "in", + "kind": "keyword" } ] }, { - "name": "Int32Array", + "name": "Infinity", "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Int32Array", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, { "text": "var", "kind": "keyword" @@ -6814,7 +5970,7 @@ "kind": "space" }, { - "text": "Int32Array", + "text": "Infinity", "kind": "localName" }, { @@ -6826,19 +5982,26 @@ "kind": "space" }, { - "text": "Int32ArrayConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "instanceof", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "A typed array of 32-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" + "text": "instanceof", + "kind": "keyword" } ] }, { - "name": "Uint32Array", + "name": "Int16Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -6852,7 +6015,7 @@ "kind": "space" }, { - "text": "Uint32Array", + "text": "Int16Array", "kind": "localName" }, { @@ -6868,7 +6031,7 @@ "kind": "space" }, { - "text": "Uint32Array", + "text": "Int16Array", "kind": "localName" }, { @@ -6880,19 +6043,19 @@ "kind": "space" }, { - "text": "Uint32ArrayConstructor", + "text": "Int16ArrayConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "text": "A typed array of 16-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", "kind": "text" } ] }, { - "name": "Float32Array", + "name": "Int32Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -6906,7 +6069,7 @@ "kind": "space" }, { - "text": "Float32Array", + "text": "Int32Array", "kind": "localName" }, { @@ -6922,7 +6085,7 @@ "kind": "space" }, { - "text": "Float32Array", + "text": "Int32Array", "kind": "localName" }, { @@ -6934,19 +6097,19 @@ "kind": "space" }, { - "text": "Float32ArrayConstructor", + "text": "Int32ArrayConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "A typed array of 32-bit float values. The contents are initialized to 0. If the requested number\r\nof bytes could not be allocated an exception is raised.", + "text": "A typed array of 32-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", "kind": "text" } ] }, { - "name": "Float64Array", + "name": "Int8Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -6960,7 +6123,7 @@ "kind": "space" }, { - "text": "Float64Array", + "text": "Int8Array", "kind": "localName" }, { @@ -6976,7 +6139,7 @@ "kind": "space" }, { - "text": "Float64Array", + "text": "Int8Array", "kind": "localName" }, { @@ -6988,17 +6151,29 @@ "kind": "space" }, { - "text": "Float64ArrayConstructor", + "text": "Int8ArrayConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "A typed array of 64-bit float values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", + "text": "A typed array of 8-bit integer values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", "kind": "text" } ] }, + { + "name": "interface", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" + } + ] + }, { "name": "Intl", "kind": "module", @@ -7021,56 +6196,10 @@ "documentation": [] }, { - "name": "foo", - "kind": "function", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "foo", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "void", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "This comment should appear for foo", - "kind": "text" - } - ] - }, - { - "name": "fooWithParameters", + "name": "isFinite", "kind": "function", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { "text": "function", @@ -7081,7 +6210,7 @@ "kind": "space" }, { - "text": "fooWithParameters", + "text": "isFinite", "kind": "functionName" }, { @@ -7089,31 +6218,7 @@ "kind": "punctuation" }, { - "text": "a", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": ",", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "b", + "text": "number", "kind": "parameterName" }, { @@ -7141,22 +6246,41 @@ "kind": "space" }, { - "text": "void", + "text": "boolean", "kind": "keyword" } ], "documentation": [ { - "text": "This is comment for function signature", + "text": "Determines whether a supplied number is finite.", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "number", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Any numeric value.", + "kind": "text" + } + ] + } ] }, { - "name": "fn", + "name": "isNaN", "kind": "function", "kindModifiers": "declare", - "sortText": "11", + "sortText": "15", "displayParts": [ { "text": "function", @@ -7167,7 +6291,7 @@ "kind": "space" }, { - "text": "fn", + "text": "isNaN", "kind": "functionName" }, { @@ -7175,7 +6299,7 @@ "kind": "punctuation" }, { - "text": "a", + "text": "number", "kind": "parameterName" }, { @@ -7187,7 +6311,7 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" }, { @@ -7203,13 +6327,13 @@ "kind": "space" }, { - "text": "any", + "text": "boolean", "kind": "keyword" } ], "documentation": [ { - "text": "Does something", + "text": "Returns a Boolean value that indicates whether a value is the reserved value NaN (not a number).", "kind": "text" } ], @@ -7218,7 +6342,7 @@ "name": "param", "text": [ { - "text": "a", + "text": "number", "kind": "parameterName" }, { @@ -7226,7 +6350,7 @@ "kind": "space" }, { - "text": "a string", + "text": "A numeric value.", "kind": "text" } ] @@ -7234,13 +6358,13 @@ ] }, { - "name": "undefined", + "name": "JSON", "kind": "var", - "kindModifiers": "", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -7248,587 +6372,837 @@ "kind": "space" }, { - "text": "undefined", - "kind": "propertyName" - } - ], - "documentation": [] - }, - { - "name": "break", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "JSON", + "kind": "localName" + }, { - "text": "break", + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" - } - ] - }, - { - "name": "case", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "JSON", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, { - "text": "case", - "kind": "keyword" + "text": "JSON", + "kind": "localName" } - ] - }, - { - "name": "catch", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "catch", - "kind": "keyword" + "text": "An intrinsic object that provides functions to convert JavaScript values to and from the JavaScript Object Notation (JSON) format.", + "kind": "text" } ] }, { - "name": "class", + "name": "let", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "class", + "text": "let", "kind": "keyword" } ] }, { - "name": "const", - "kind": "keyword", - "kindModifiers": "", + "name": "Math", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "const", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "continue", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "continue", + "text": " ", + "kind": "space" + }, + { + "text": "Math", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Math", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Math", + "kind": "localName" } - ] - }, - { - "name": "debugger", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "debugger", - "kind": "keyword" + "text": "An intrinsic object that provides basic mathematics functionality and constants.", + "kind": "text" } ] }, { - "name": "default", - "kind": "keyword", - "kindModifiers": "", + "name": "NaN", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "default", + "text": "var", "kind": "keyword" - } - ] - }, - { - "name": "delete", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "delete", + "text": " ", + "kind": "space" + }, + { + "text": "NaN", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" } - ] + ], + "documentation": [] }, { - "name": "do", + "name": "new", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "do", + "text": "new", "kind": "keyword" } ] }, { - "name": "else", + "name": "null", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "else", + "text": "null", "kind": "keyword" } ] }, { - "name": "enum", - "kind": "keyword", - "kindModifiers": "", + "name": "Number", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "enum", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "export", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "export", + "text": " ", + "kind": "space" + }, + { + "text": "Number", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Number", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "NumberConstructor", + "kind": "interfaceName" } - ] - }, - { - "name": "extends", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "extends", - "kind": "keyword" + "text": "An object that represents a number of any kind. All JavaScript numbers are 64-bit floating-point numbers.", + "kind": "text" } ] }, { - "name": "false", - "kind": "keyword", - "kindModifiers": "", + "name": "Object", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "false", + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Object", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Object", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "ObjectConstructor", + "kind": "interfaceName" } - ] - }, - { - "name": "finally", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "finally", - "kind": "keyword" + "text": "Provides functionality common to all JavaScript objects.", + "kind": "text" } ] }, { - "name": "for", + "name": "package", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "for", + "text": "package", "kind": "keyword" } ] }, { - "name": "function", - "kind": "keyword", - "kindModifiers": "", + "name": "parseFloat", + "kind": "function", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { "text": "function", "kind": "keyword" - } - ] - }, - { - "name": "if", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "if", + "text": " ", + "kind": "space" + }, + { + "text": "parseFloat", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "string", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", "kind": "keyword" - } - ] - }, - { - "name": "import", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "import", + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" } - ] - }, - { - "name": "in", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "in", - "kind": "keyword" + "text": "Converts a string to a floating-point number.", + "kind": "text" } - ] - }, - { - "name": "instanceof", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "tags": [ { - "text": "instanceof", - "kind": "keyword" + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string that contains a floating-point number.", + "kind": "text" + } + ] } ] }, { - "name": "new", - "kind": "keyword", - "kindModifiers": "", + "name": "parseInt", + "kind": "function", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "new", + "text": "function", "kind": "keyword" - } - ] - }, - { - "name": "null", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "null", + "text": " ", + "kind": "space" + }, + { + "text": "parseInt", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "string", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", "kind": "keyword" - } - ] - }, - { - "name": "return", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "return", + "text": ",", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "radix", + "kind": "parameterName" + }, + { + "text": "?", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" - } - ] - }, - { - "name": "super", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "super", + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" } + ], + "documentation": [ + { + "text": "Converts a string to an integer.", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string to convert into a number.", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "radix", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value between 2 and 36 that specifies the base of the number in `string`.\r\nIf this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal.\r\nAll other strings are considered decimal.", + "kind": "text" + } + ] + } ] }, { - "name": "switch", - "kind": "keyword", - "kindModifiers": "", + "name": "RangeError", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "switch", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "this", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "this", - "kind": "keyword" - } - ] - }, - { - "name": "throw", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "throw", + "text": "RangeError", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "RangeError", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "RangeErrorConstructor", + "kind": "interfaceName" } - ] + ], + "documentation": [] }, { - "name": "true", - "kind": "keyword", - "kindModifiers": "", + "name": "ReferenceError", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "true", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "try", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "try", + "text": " ", + "kind": "space" + }, + { + "text": "ReferenceError", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "ReferenceError", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "ReferenceErrorConstructor", + "kind": "interfaceName" } - ] + ], + "documentation": [] }, { - "name": "typeof", - "kind": "keyword", - "kindModifiers": "", + "name": "RegExp", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "typeof", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "var", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "RegExp", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, { "text": "var", "kind": "keyword" - } - ] - }, - { - "name": "void", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "void", - "kind": "keyword" + "text": " ", + "kind": "space" + }, + { + "text": "RegExp", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "RegExpConstructor", + "kind": "interfaceName" } - ] + ], + "documentation": [] }, { - "name": "while", + "name": "return", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "while", + "text": "return", "kind": "keyword" } ] }, { - "name": "with", - "kind": "keyword", - "kindModifiers": "", + "name": "String", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "with", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "implements", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "implements", + "text": " ", + "kind": "space" + }, + { + "text": "String", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "String", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "StringConstructor", + "kind": "interfaceName" } - ] - }, - { - "name": "interface", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "interface", - "kind": "keyword" + "text": "Allows manipulation and formatting of text strings and determination and location of substrings within strings.", + "kind": "text" } ] }, { - "name": "let", + "name": "super", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "let", + "text": "super", "kind": "keyword" } ] }, { - "name": "package", + "name": "switch", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "package", + "text": "switch", "kind": "keyword" } ] }, { - "name": "yield", - "kind": "keyword", - "kindModifiers": "", + "name": "SyntaxError", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "yield", + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "SyntaxError", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "SyntaxError", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "SyntaxErrorConstructor", + "kind": "interfaceName" } - ] + ], + "documentation": [] }, { - "name": "as", + "name": "this", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "as", + "text": "this", "kind": "keyword" } ] }, { - "name": "async", + "name": "throw", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "async", + "text": "throw", "kind": "keyword" } ] }, { - "name": "await", + "name": "true", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "await", + "text": "true", "kind": "keyword" } ] - } - ] - } - }, - { - "marker": { - "fileName": "/tests/cases/fourslash/completionsCommentsFunctionDeclaration.ts", - "position": 262, - "name": "9" - }, - "completionList": { - "isGlobalCompletion": true, - "isMemberCompletion": false, - "isNewIdentifierLocation": false, - "optionalReplacementSpan": { - "start": 245, - "length": 17 - }, - "entries": [ + }, { - "name": "globalThis", - "kind": "module", + "name": "try", + "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "module", + "text": "try", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "globalThis", - "kind": "moduleName" } - ], - "documentation": [] + ] }, { - "name": "eval", - "kind": "function", + "name": "TypeError", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -7836,32 +7210,24 @@ "kind": "space" }, { - "text": "eval", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" + "text": "TypeError", + "kind": "localName" }, { - "text": "x", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "TypeError", + "kind": "localName" }, { "text": ":", @@ -7872,44 +7238,32 @@ "kind": "space" }, { - "text": "any", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Evaluates JavaScript code and executes it.", - "kind": "text" + "text": "TypeErrorConstructor", + "kind": "interfaceName" } ], - "tags": [ + "documentation": [] + }, + { + "name": "typeof", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "x", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A String value that contains valid JavaScript code.", - "kind": "text" - } - ] + "text": "typeof", + "kind": "keyword" } ] }, { - "name": "parseInt", - "kind": "function", + "name": "Uint16Array", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -7917,60 +7271,24 @@ "kind": "space" }, { - "text": "parseInt", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "string", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" + "text": "Uint16Array", + "kind": "localName" }, { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, { - "text": "string", + "text": "var", "kind": "keyword" }, - { - "text": ",", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "radix", - "kind": "parameterName" - }, - { - "text": "?", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "Uint16Array", + "kind": "localName" }, { "text": ":", @@ -7981,61 +7299,25 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Converts a string to an integer.", - "kind": "text" + "text": "Uint16ArrayConstructor", + "kind": "interfaceName" } ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string to convert into a number.", - "kind": "text" - } - ] - }, + "documentation": [ { - "name": "param", - "text": [ - { - "text": "radix", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value between 2 and 36 that specifies the base of the number in `string`.\r\nIf this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal.\r\nAll other strings are considered decimal.", - "kind": "text" - } - ] + "text": "A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" } ] }, { - "name": "parseFloat", - "kind": "function", + "name": "Uint32Array", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -8043,32 +7325,24 @@ "kind": "space" }, { - "text": "parseFloat", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" + "text": "Uint32Array", + "kind": "localName" }, { - "text": "string", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "Uint32Array", + "kind": "localName" }, { "text": ":", @@ -8079,44 +7353,25 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "Uint32ArrayConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "Converts a string to a floating-point number.", + "text": "A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", "kind": "text" } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string that contains a floating-point number.", - "kind": "text" - } - ] - } ] }, { - "name": "isNaN", - "kind": "function", + "name": "Uint8Array", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -8124,32 +7379,24 @@ "kind": "space" }, { - "text": "isNaN", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" + "text": "Uint8Array", + "kind": "localName" }, { - "text": "number", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "Uint8Array", + "kind": "localName" }, { "text": ":", @@ -8160,44 +7407,25 @@ "kind": "space" }, { - "text": "boolean", - "kind": "keyword" + "text": "Uint8ArrayConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "Returns a Boolean value that indicates whether a value is the reserved value NaN (not a number).", + "text": "A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", "kind": "text" } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "number", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A numeric value.", - "kind": "text" - } - ] - } ] }, { - "name": "isFinite", - "kind": "function", + "name": "Uint8ClampedArray", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -8205,32 +7433,24 @@ "kind": "space" }, { - "text": "isFinite", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" + "text": "Uint8ClampedArray", + "kind": "localName" }, { - "text": "number", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "Uint8ClampedArray", + "kind": "localName" }, { "text": ":", @@ -8241,44 +7461,25 @@ "kind": "space" }, { - "text": "boolean", - "kind": "keyword" + "text": "Uint8ClampedArrayConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "Determines whether a supplied number is finite.", + "text": "A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0.\r\nIf the requested number of bytes could not be allocated an exception is raised.", "kind": "text" } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "number", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Any numeric value.", - "kind": "text" - } - ] - } ] }, { - "name": "decodeURI", - "kind": "function", - "kindModifiers": "declare", + "name": "undefined", + "kind": "var", + "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "var", "kind": "keyword" }, { @@ -8286,77 +7487,126 @@ "kind": "space" }, { - "text": "decodeURI", - "kind": "functionName" + "text": "undefined", + "kind": "propertyName" + } + ], + "documentation": [] + }, + { + "name": "URIError", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" }, { - "text": "(", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": "encodedURI", - "kind": "parameterName" + "text": "URIError", + "kind": "localName" }, { - "text": ":", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "URIError", + "kind": "localName" }, { - "text": ")", + "text": ":", "kind": "punctuation" }, { - "text": ":", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": " ", - "kind": "space" - }, + "text": "URIErrorConstructor", + "kind": "interfaceName" + } + ], + "documentation": [] + }, + { + "name": "var", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + } + ] + }, + { + "name": "void", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "void", + "kind": "keyword" + } + ] + }, + { + "name": "while", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "string", + "text": "while", "kind": "keyword" } - ], - "documentation": [ + ] + }, + { + "name": "with", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "Gets the unencoded version of an encoded Uniform Resource Identifier (URI).", - "kind": "text" + "text": "with", + "kind": "keyword" } - ], - "tags": [ + ] + }, + { + "name": "yield", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "encodedURI", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI.", - "kind": "text" - } - ] + "text": "yield", + "kind": "keyword" } ] }, { - "name": "decodeURIComponent", + "name": "escape", "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "deprecated,declare", + "sortText": "z15", "displayParts": [ { "text": "function", @@ -8367,7 +7617,7 @@ "kind": "space" }, { - "text": "decodeURIComponent", + "text": "escape", "kind": "functionName" }, { @@ -8375,7 +7625,7 @@ "kind": "punctuation" }, { - "text": "encodedURIComponent", + "text": "string", "kind": "parameterName" }, { @@ -8409,16 +7659,25 @@ ], "documentation": [ { - "text": "Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).", + "text": "Computes a new string in which certain characters have been replaced by a hexadecimal escape sequence.", "kind": "text" } ], "tags": [ + { + "name": "deprecated", + "text": [ + { + "text": "A legacy feature for browser compatibility", + "kind": "text" + } + ] + }, { "name": "param", "text": [ { - "text": "encodedURIComponent", + "text": "string", "kind": "parameterName" }, { @@ -8426,7 +7685,7 @@ "kind": "space" }, { - "text": "A value representing an encoded URI component.", + "text": "A string value", "kind": "text" } ] @@ -8434,10 +7693,10 @@ ] }, { - "name": "encodeURI", + "name": "unescape", "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "deprecated,declare", + "sortText": "z15", "displayParts": [ { "text": "function", @@ -8448,7 +7707,7 @@ "kind": "space" }, { - "text": "encodeURI", + "text": "unescape", "kind": "functionName" }, { @@ -8456,7 +7715,7 @@ "kind": "punctuation" }, { - "text": "uri", + "text": "string", "kind": "parameterName" }, { @@ -8490,16 +7749,25 @@ ], "documentation": [ { - "text": "Encodes a text string as a valid Uniform Resource Identifier (URI)", + "text": "Computes a new string in which hexadecimal escape sequences are replaced with the character that it represents.", "kind": "text" } ], "tags": [ + { + "name": "deprecated", + "text": [ + { + "text": "A legacy feature for browser compatibility", + "kind": "text" + } + ] + }, { "name": "param", "text": [ { - "text": "uri", + "text": "string", "kind": "parameterName" }, { @@ -8507,18 +7775,36 @@ "kind": "space" }, { - "text": "A value representing an encoded URI.", + "text": "A string value", "kind": "text" } ] } ] - }, + } + ] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/completionsCommentsFunctionDeclaration.ts", + "position": 262, + "name": "9" + }, + "completionList": { + "isGlobalCompletion": true, + "isMemberCompletion": false, + "isNewIdentifierLocation": false, + "optionalReplacementSpan": { + "start": 245, + "length": 17 + }, + "entries": [ { - "name": "encodeURIComponent", + "name": "fn", "kind": "function", "kindModifiers": "declare", - "sortText": "15", + "sortText": "11", "displayParts": [ { "text": "function", @@ -8529,7 +7815,7 @@ "kind": "space" }, { - "text": "encodeURIComponent", + "text": "fn", "kind": "functionName" }, { @@ -8537,7 +7823,7 @@ "kind": "punctuation" }, { - "text": "uriComponent", + "text": "a", "kind": "parameterName" }, { @@ -8552,38 +7838,6 @@ "text": "string", "kind": "keyword" }, - { - "text": " ", - "kind": "space" - }, - { - "text": "|", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "|", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "boolean", - "kind": "keyword" - }, { "text": ")", "kind": "punctuation" @@ -8597,13 +7851,13 @@ "kind": "space" }, { - "text": "string", + "text": "any", "kind": "keyword" } ], "documentation": [ { - "text": "Encodes a text string as a valid component of a Uniform Resource Identifier (URI).", + "text": "Does something", "kind": "text" } ], @@ -8612,7 +7866,7 @@ "name": "param", "text": [ { - "text": "uriComponent", + "text": "a", "kind": "parameterName" }, { @@ -8620,7 +7874,7 @@ "kind": "space" }, { - "text": "A value representing an encoded URI component.", + "text": "a string", "kind": "text" } ] @@ -8628,10 +7882,10 @@ ] }, { - "name": "escape", + "name": "foo", "kind": "function", - "kindModifiers": "deprecated,declare", - "sortText": "23", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { "text": "function", @@ -8642,29 +7896,13 @@ "kind": "space" }, { - "text": "escape", + "text": "foo", "kind": "functionName" }, { "text": "(", "kind": "punctuation" }, - { - "text": "string", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, { "text": ")", "kind": "punctuation" @@ -8678,87 +7916,43 @@ "kind": "space" }, { - "text": "string", + "text": "void", "kind": "keyword" } ], "documentation": [ { - "text": "Computes a new string in which certain characters have been replaced by a hexadecimal escape sequence.", + "text": "This comment should appear for foo", "kind": "text" } - ], - "tags": [ - { - "name": "deprecated", - "text": [ - { - "text": "A legacy feature for browser compatibility", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string value", - "kind": "text" - } - ] - } ] }, { - "name": "unescape", + "name": "fooWithParameters", "kind": "function", - "kindModifiers": "deprecated,declare", - "sortText": "23", - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "unescape", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "string", - "kind": "parameterName" - }, + "kindModifiers": "", + "sortText": "11", + "displayParts": [ { - "text": ":", - "kind": "punctuation" + "text": "function", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "fooWithParameters", + "kind": "functionName" }, { - "text": ")", + "text": "(", "kind": "punctuation" }, + { + "text": "a", + "kind": "parameterName" + }, { "text": ":", "kind": "punctuation" @@ -8770,60 +7964,18 @@ { "text": "string", "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Computes a new string in which hexadecimal escape sequences are replaced with the character that it represents.", - "kind": "text" - } - ], - "tags": [ - { - "name": "deprecated", - "text": [ - { - "text": "A legacy feature for browser compatibility", - "kind": "text" - } - ] }, { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string value", - "kind": "text" - } - ] - } - ] - }, - { - "name": "NaN", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "var", - "kind": "keyword" + "text": ",", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "NaN", - "kind": "localName" + "text": "b", + "kind": "parameterName" }, { "text": ":", @@ -8836,27 +7988,10 @@ { "text": "number", "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "Infinity", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" }, { - "text": "Infinity", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -8867,14 +8002,19 @@ "kind": "space" }, { - "text": "number", + "text": "void", "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "This is comment for function signature", + "kind": "text" + } + ] }, { - "name": "Object", + "name": "Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -8888,7 +8028,7 @@ "kind": "space" }, { - "text": "Object", + "text": "Array", "kind": "localName" }, { @@ -8900,7 +8040,7 @@ "kind": "space" }, { - "text": "ObjectConstructor", + "text": "ArrayConstructor", "kind": "interfaceName" }, { @@ -8911,6 +8051,26 @@ "text": "(", "kind": "punctuation" }, + { + "text": "arrayLength", + "kind": "parameterName" + }, + { + "text": "?", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, { "text": ")", "kind": "punctuation" @@ -8931,6 +8091,14 @@ "text": "any", "kind": "keyword" }, + { + "text": "[", + "kind": "punctuation" + }, + { + "text": "]", + "kind": "punctuation" + }, { "text": " ", "kind": "space" @@ -8944,7 +8112,7 @@ "kind": "operator" }, { - "text": "1", + "text": "2", "kind": "numericLiteral" }, { @@ -8952,7 +8120,7 @@ "kind": "space" }, { - "text": "overload", + "text": "overloads", "kind": "text" }, { @@ -8972,18 +8140,46 @@ "kind": "space" }, { - "text": "Object", + "text": "Array", "kind": "localName" + }, + { + "text": "<", + "kind": "punctuation" + }, + { + "text": "T", + "kind": "typeParameterName" + }, + { + "text": ">", + "kind": "punctuation" } ], "documentation": [] }, { - "name": "Function", + "name": "ArrayBuffer", "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "ArrayBuffer", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, { "text": "var", "kind": "keyword" @@ -8993,7 +8189,7 @@ "kind": "space" }, { - "text": "Function", + "text": "ArrayBuffer", "kind": "localName" }, { @@ -9005,24 +8201,110 @@ "kind": "space" }, { - "text": "FunctionConstructor", + "text": "ArrayBufferConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ + { + "text": "Represents a raw buffer of binary data, which is used to store data for the\r\ndifferent typed arrays. ArrayBuffers cannot be read from or written to directly,\r\nbut can be passed to a typed array or DataView Object to interpret the raw\r\nbuffer as needed.", + "kind": "text" + } + ] + }, + { + "name": "as", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "as", + "kind": "keyword" + } + ] + }, + { + "name": "async", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "async", + "kind": "keyword" + } + ] + }, + { + "name": "await", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "await", + "kind": "keyword" + } + ] + }, + { + "name": "Boolean", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Boolean", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "BooleanConstructor", "kind": "interfaceName" }, { "text": "\n", "kind": "lineBreak" }, + { + "text": "<", + "kind": "punctuation" + }, + { + "text": "T", + "kind": "typeParameterName" + }, + { + "text": ">", + "kind": "punctuation" + }, { "text": "(", "kind": "punctuation" }, { - "text": "...", - "kind": "punctuation" + "text": "value", + "kind": "parameterName" }, { - "text": "args", - "kind": "parameterName" + "text": "?", + "kind": "punctuation" }, { "text": ":", @@ -9033,16 +8315,8 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" - }, - { - "text": "[", - "kind": "punctuation" - }, - { - "text": "]", - "kind": "punctuation" + "text": "T", + "kind": "typeParameterName" }, { "text": ")", @@ -9061,8 +8335,8 @@ "kind": "space" }, { - "text": "Function", - "kind": "localName" + "text": "boolean", + "kind": "keyword" }, { "text": "\n", @@ -9077,23 +8351,106 @@ "kind": "space" }, { - "text": "Function", + "text": "Boolean", "kind": "localName" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "break", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "Creates a new function.", - "kind": "text" + "text": "break", + "kind": "keyword" } ] }, { - "name": "String", + "name": "case", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "case", + "kind": "keyword" + } + ] + }, + { + "name": "catch", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "catch", + "kind": "keyword" + } + ] + }, + { + "name": "class", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + } + ] + }, + { + "name": "const", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + } + ] + }, + { + "name": "continue", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "continue", + "kind": "keyword" + } + ] + }, + { + "name": "DataView", "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "DataView", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, { "text": "var", "kind": "keyword" @@ -9103,7 +8460,7 @@ "kind": "space" }, { - "text": "String", + "text": "DataView", "kind": "localName" }, { @@ -9115,24 +8472,29 @@ "kind": "space" }, { - "text": "StringConstructor", + "text": "DataViewConstructor", "kind": "interfaceName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, + } + ], + "documentation": [] + }, + { + "name": "Date", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { - "text": "(", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { - "text": "value", - "kind": "parameterName" + "text": " ", + "kind": "space" }, { - "text": "?", - "kind": "punctuation" + "text": "Date", + "kind": "localName" }, { "text": ":", @@ -9143,8 +8505,16 @@ "kind": "space" }, { - "text": "any", - "kind": "keyword" + "text": "DateConstructor", + "kind": "interfaceName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "(", + "kind": "punctuation" }, { "text": ")", @@ -9179,75 +8549,55 @@ "kind": "space" }, { - "text": "String", + "text": "Date", "kind": "localName" } ], "documentation": [ { - "text": "Allows manipulation and formatting of text strings and determination and location of substrings within strings.", + "text": "Enables basic storage and retrieval of dates and times.", "kind": "text" } ] }, { - "name": "Boolean", - "kind": "var", - "kindModifiers": "declare", + "name": "debugger", + "kind": "keyword", + "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "var", + "text": "debugger", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Boolean", - "kind": "localName" - }, + } + ] + }, + { + "name": "decodeURI", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { - "text": ":", - "kind": "punctuation" + "text": "function", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "BooleanConstructor", - "kind": "interfaceName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "<", - "kind": "punctuation" - }, - { - "text": "T", - "kind": "typeParameterName" - }, - { - "text": ">", - "kind": "punctuation" + "text": "decodeURI", + "kind": "functionName" }, { "text": "(", "kind": "punctuation" }, { - "text": "value", + "text": "encodedURI", "kind": "parameterName" }, - { - "text": "?", - "kind": "punctuation" - }, { "text": ":", "kind": "punctuation" @@ -9257,19 +8607,15 @@ "kind": "space" }, { - "text": "T", - "kind": "typeParameterName" + "text": "string", + "kind": "keyword" }, { "text": ")", "kind": "punctuation" }, { - "text": " ", - "kind": "space" - }, - { - "text": "=>", + "text": ":", "kind": "punctuation" }, { @@ -9277,36 +8623,44 @@ "kind": "space" }, { - "text": "boolean", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "interface", + "text": "string", "kind": "keyword" - }, + } + ], + "documentation": [ { - "text": " ", - "kind": "space" - }, + "text": "Gets the unencoded version of an encoded Uniform Resource Identifier (URI).", + "kind": "text" + } + ], + "tags": [ { - "text": "Boolean", - "kind": "localName" + "name": "param", + "text": [ + { + "text": "encodedURI", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI.", + "kind": "text" + } + ] } - ], - "documentation": [] + ] }, { - "name": "Number", - "kind": "var", + "name": "decodeURIComponent", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "var", + "text": "function", "kind": "keyword" }, { @@ -9314,37 +8668,17 @@ "kind": "space" }, { - "text": "Number", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "NumberConstructor", - "kind": "interfaceName" - }, - { - "text": "\n", - "kind": "lineBreak" + "text": "decodeURIComponent", + "kind": "functionName" }, { "text": "(", "kind": "punctuation" }, { - "text": "value", + "text": "encodedURIComponent", "kind": "parameterName" }, - { - "text": "?", - "kind": "punctuation" - }, { "text": ":", "kind": "punctuation" @@ -9354,7 +8688,7 @@ "kind": "space" }, { - "text": "any", + "text": "string", "kind": "keyword" }, { @@ -9362,11 +8696,7 @@ "kind": "punctuation" }, { - "text": " ", - "kind": "space" - }, - { - "text": "=>", + "text": ":", "kind": "punctuation" }, { @@ -9374,41 +8704,92 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" - }, + } + ], + "documentation": [ { - "text": "\n", - "kind": "lineBreak" - }, + "text": "Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).", + "kind": "text" + } + ], + "tags": [ { - "text": "interface", + "name": "param", + "text": [ + { + "text": "encodedURIComponent", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI component.", + "kind": "text" + } + ] + } + ] + }, + { + "name": "default", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "default", "kind": "keyword" - }, + } + ] + }, + { + "name": "delete", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": " ", - "kind": "space" - }, + "text": "delete", + "kind": "keyword" + } + ] + }, + { + "name": "do", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "Number", - "kind": "localName" + "text": "do", + "kind": "keyword" } - ], - "documentation": [ + ] + }, + { + "name": "else", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "An object that represents a number of any kind. All JavaScript numbers are 64-bit floating-point numbers.", - "kind": "text" + "text": "else", + "kind": "keyword" } ] }, { - "name": "Math", - "kind": "var", + "name": "encodeURI", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -9416,24 +8797,32 @@ "kind": "space" }, { - "text": "Math", - "kind": "localName" + "text": "encodeURI", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "uri", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Math", - "kind": "localName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -9444,25 +8833,44 @@ "kind": "space" }, { - "text": "Math", - "kind": "localName" + "text": "string", + "kind": "keyword" } ], "documentation": [ { - "text": "An intrinsic object that provides basic mathematics functionality and constants.", + "text": "Encodes a text string as a valid Uniform Resource Identifier (URI)", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "uri", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI.", + "kind": "text" + } + ] + } ] }, { - "name": "Date", - "kind": "var", + "name": "encodeURIComponent", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "var", + "text": "function", "kind": "keyword" }, { @@ -9470,8 +8878,16 @@ "kind": "space" }, { - "text": "Date", - "kind": "localName" + "text": "encodeURIComponent", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "uriComponent", + "kind": "parameterName" }, { "text": ":", @@ -9482,27 +8898,31 @@ "kind": "space" }, { - "text": "DateConstructor", - "kind": "interfaceName" + "text": "string", + "kind": "keyword" }, { - "text": "\n", - "kind": "lineBreak" + "text": " ", + "kind": "space" }, { - "text": "(", + "text": "|", "kind": "punctuation" }, { - "text": ")", - "kind": "punctuation" + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "=>", + "text": "|", "kind": "punctuation" }, { @@ -9510,35 +8930,66 @@ "kind": "space" }, { - "text": "string", + "text": "boolean", "kind": "keyword" }, { - "text": "\n", - "kind": "lineBreak" + "text": ")", + "kind": "punctuation" }, { - "text": "interface", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Date", - "kind": "localName" + "text": "string", + "kind": "keyword" + } + ], + "documentation": [ + { + "text": "Encodes a text string as a valid component of a Uniform Resource Identifier (URI).", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "uriComponent", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI component.", + "kind": "text" + } + ] } - ], - "documentation": [ + ] + }, + { + "name": "enum", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "Enables basic storage and retrieval of dates and times.", - "kind": "text" + "text": "enum", + "kind": "keyword" } ] }, { - "name": "RegExp", + "name": "Error", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -9552,7 +9003,7 @@ "kind": "space" }, { - "text": "RegExp", + "text": "Error", "kind": "localName" }, { @@ -9564,7 +9015,7 @@ "kind": "space" }, { - "text": "RegExpConstructor", + "text": "ErrorConstructor", "kind": "interfaceName" }, { @@ -9576,9 +9027,13 @@ "kind": "punctuation" }, { - "text": "pattern", + "text": "message", "kind": "parameterName" }, + { + "text": "?", + "kind": "punctuation" + }, { "text": ":", "kind": "punctuation" @@ -9591,12 +9046,16 @@ "text": "string", "kind": "keyword" }, + { + "text": ")", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "|", + "text": "=>", "kind": "punctuation" }, { @@ -9604,78 +9063,111 @@ "kind": "space" }, { - "text": "RegExp", + "text": "Error", "kind": "localName" }, { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, { - "text": "=>", - "kind": "punctuation" + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "RegExp", + "text": "Error", "kind": "localName" + } + ], + "documentation": [] + }, + { + "name": "eval", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "function", + "kind": "keyword" }, { "text": " ", "kind": "space" }, + { + "text": "eval", + "kind": "functionName" + }, { "text": "(", "kind": "punctuation" }, { - "text": "+", - "kind": "operator" + "text": "x", + "kind": "parameterName" }, { - "text": "1", - "kind": "numericLiteral" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "overload", - "kind": "text" + "text": "string", + "kind": "keyword" }, { "text": ")", "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "interface", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "RegExp", - "kind": "localName" + "text": "any", + "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Evaluates JavaScript code and executes it.", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "x", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A String value that contains valid JavaScript code.", + "kind": "text" + } + ] + } + ] }, { - "name": "Error", + "name": "EvalError", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -9689,7 +9181,7 @@ "kind": "space" }, { - "text": "Error", + "text": "EvalError", "kind": "localName" }, { @@ -9701,7 +9193,7 @@ "kind": "space" }, { - "text": "ErrorConstructor", + "text": "EvalErrorConstructor", "kind": "interfaceName" }, { @@ -9749,96 +9241,140 @@ "kind": "space" }, { - "text": "Error", + "text": "EvalError", "kind": "localName" }, { - "text": "\n", - "kind": "lineBreak" + "text": " ", + "kind": "space" }, { - "text": "interface", - "kind": "keyword" + "text": "(", + "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "+", + "kind": "operator" }, { - "text": "Error", - "kind": "localName" - } - ], - "documentation": [] - }, - { - "name": "EvalError", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "var", - "kind": "keyword" + "text": "1", + "kind": "numericLiteral" }, { "text": " ", "kind": "space" }, { - "text": "EvalError", - "kind": "localName" + "text": "overload", + "kind": "text" }, { - "text": ":", + "text": ")", "kind": "punctuation" }, - { - "text": " ", - "kind": "space" - }, - { - "text": "EvalErrorConstructor", - "kind": "interfaceName" - }, { "text": "\n", "kind": "lineBreak" }, { - "text": "(", - "kind": "punctuation" + "text": "interface", + "kind": "keyword" }, { - "text": "message", - "kind": "parameterName" + "text": " ", + "kind": "space" }, { - "text": "?", - "kind": "punctuation" - }, + "text": "EvalError", + "kind": "localName" + } + ], + "documentation": [] + }, + { + "name": "export", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": ":", - "kind": "punctuation" + "text": "export", + "kind": "keyword" + } + ] + }, + { + "name": "extends", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "extends", + "kind": "keyword" + } + ] + }, + { + "name": "false", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "false", + "kind": "keyword" + } + ] + }, + { + "name": "finally", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "finally", + "kind": "keyword" + } + ] + }, + { + "name": "Float32Array", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "Float32Array", + "kind": "localName" }, { - "text": ")", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "=>", + "text": "Float32Array", + "kind": "localName" + }, + { + "text": ":", "kind": "punctuation" }, { @@ -9846,58 +9382,97 @@ "kind": "space" }, { - "text": "EvalError", - "kind": "localName" + "text": "Float32ArrayConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ + { + "text": "A typed array of 32-bit float values. The contents are initialized to 0. If the requested number\r\nof bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] + }, + { + "name": "Float64Array", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "(", - "kind": "punctuation" + "text": "Float64Array", + "kind": "localName" }, { - "text": "+", - "kind": "operator" + "text": "\n", + "kind": "lineBreak" }, { - "text": "1", - "kind": "numericLiteral" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "overload", - "kind": "text" + "text": "Float64Array", + "kind": "localName" }, { - "text": ")", + "text": ":", "kind": "punctuation" }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "interface", - "kind": "keyword" - }, { "text": " ", "kind": "space" }, { - "text": "EvalError", - "kind": "localName" + "text": "Float64ArrayConstructor", + "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "A typed array of 64-bit float values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] }, { - "name": "RangeError", + "name": "for", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "for", + "kind": "keyword" + } + ] + }, + { + "name": "function", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + } + ] + }, + { + "name": "Function", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -9911,7 +9486,7 @@ "kind": "space" }, { - "text": "RangeError", + "text": "Function", "kind": "localName" }, { @@ -9923,7 +9498,7 @@ "kind": "space" }, { - "text": "RangeErrorConstructor", + "text": "FunctionConstructor", "kind": "interfaceName" }, { @@ -9935,12 +9510,12 @@ "kind": "punctuation" }, { - "text": "message", - "kind": "parameterName" + "text": "...", + "kind": "punctuation" }, { - "text": "?", - "kind": "punctuation" + "text": "args", + "kind": "parameterName" }, { "text": ":", @@ -9955,15 +9530,15 @@ "kind": "keyword" }, { - "text": ")", + "text": "[", "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "]", + "kind": "punctuation" }, { - "text": "=>", + "text": ")", "kind": "punctuation" }, { @@ -9971,43 +9546,49 @@ "kind": "space" }, { - "text": "RangeError", - "kind": "localName" + "text": "=>", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "(", - "kind": "punctuation" + "text": "Function", + "kind": "localName" }, { - "text": "+", - "kind": "operator" + "text": "\n", + "kind": "lineBreak" }, { - "text": "1", - "kind": "numericLiteral" + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "overload", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, + "text": "Function", + "kind": "localName" + } + ], + "documentation": [ { - "text": "\n", - "kind": "lineBreak" - }, + "text": "Creates a new function.", + "kind": "text" + } + ] + }, + { + "name": "globalThis", + "kind": "module", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "interface", + "text": "module", "kind": "keyword" }, { @@ -10015,14 +9596,62 @@ "kind": "space" }, { - "text": "RangeError", - "kind": "localName" + "text": "globalThis", + "kind": "moduleName" } ], "documentation": [] }, { - "name": "ReferenceError", + "name": "if", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "if", + "kind": "keyword" + } + ] + }, + { + "name": "implements", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "implements", + "kind": "keyword" + } + ] + }, + { + "name": "import", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "import", + "kind": "keyword" + } + ] + }, + { + "name": "in", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "in", + "kind": "keyword" + } + ] + }, + { + "name": "Infinity", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -10036,51 +9665,72 @@ "kind": "space" }, { - "text": "ReferenceError", + "text": "Infinity", "kind": "localName" }, { - "text": ":", - "kind": "punctuation" + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "instanceof", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "instanceof", + "kind": "keyword" + } + ] + }, + { + "name": "Int16Array", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "ReferenceErrorConstructor", - "kind": "interfaceName" + "text": "Int16Array", + "kind": "localName" }, { "text": "\n", "kind": "lineBreak" }, { - "text": "(", - "kind": "punctuation" - }, - { - "text": "message", - "kind": "parameterName" - }, - { - "text": "?", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "Int16Array", + "kind": "localName" }, { - "text": ")", + "text": ":", "kind": "punctuation" }, { @@ -10088,72 +9738,79 @@ "kind": "space" }, { - "text": "=>", - "kind": "punctuation" - }, + "text": "Int16ArrayConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ { - "text": " ", - "kind": "space" - }, + "text": "A typed array of 16-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] + }, + { + "name": "Int32Array", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { - "text": "ReferenceError", - "kind": "localName" + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "(", - "kind": "punctuation" + "text": "Int32Array", + "kind": "localName" }, { - "text": "+", - "kind": "operator" + "text": "\n", + "kind": "lineBreak" }, { - "text": "1", - "kind": "numericLiteral" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "overload", - "kind": "text" + "text": "Int32Array", + "kind": "localName" }, { - "text": ")", + "text": ":", "kind": "punctuation" }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "interface", - "kind": "keyword" - }, { "text": " ", "kind": "space" }, { - "text": "ReferenceError", - "kind": "localName" + "text": "Int32ArrayConstructor", + "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "A typed array of 32-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] }, { - "name": "SyntaxError", + "name": "Int8Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -10161,36 +9818,24 @@ "kind": "space" }, { - "text": "SyntaxError", + "text": "Int8Array", "kind": "localName" }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "SyntaxErrorConstructor", - "kind": "interfaceName" - }, { "text": "\n", "kind": "lineBreak" }, { - "text": "(", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { - "text": "message", - "kind": "parameterName" + "text": " ", + "kind": "space" }, { - "text": "?", - "kind": "punctuation" + "text": "Int8Array", + "kind": "localName" }, { "text": ":", @@ -10201,122 +9846,157 @@ "kind": "space" }, { - "text": "string", + "text": "Int8ArrayConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ + { + "text": "A typed array of 8-bit integer values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] + }, + { + "name": "interface", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "interface", "kind": "keyword" - }, + } + ] + }, + { + "name": "Intl", + "kind": "module", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { - "text": ")", - "kind": "punctuation" + "text": "namespace", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "=>", - "kind": "punctuation" + "text": "Intl", + "kind": "moduleName" + } + ], + "documentation": [] + }, + { + "name": "isFinite", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "function", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "SyntaxError", - "kind": "localName" - }, - { - "text": " ", - "kind": "space" + "text": "isFinite", + "kind": "functionName" }, { "text": "(", "kind": "punctuation" }, { - "text": "+", - "kind": "operator" + "text": "number", + "kind": "parameterName" }, { - "text": "1", - "kind": "numericLiteral" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "overload", - "kind": "text" + "text": "number", + "kind": "keyword" }, { "text": ")", "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "interface", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "SyntaxError", - "kind": "localName" + "text": "boolean", + "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Determines whether a supplied number is finite.", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "number", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Any numeric value.", + "kind": "text" + } + ] + } + ] }, { - "name": "TypeError", - "kind": "var", + "name": "isNaN", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "var", + "text": "function", "kind": "keyword" }, { - "text": " ", - "kind": "space" - }, - { - "text": "TypeError", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "TypeErrorConstructor", - "kind": "interfaceName" + "text": " ", + "kind": "space" }, { - "text": "\n", - "kind": "lineBreak" + "text": "isNaN", + "kind": "functionName" }, { "text": "(", "kind": "punctuation" }, { - "text": "message", + "text": "number", "kind": "parameterName" }, - { - "text": "?", - "kind": "punctuation" - }, { "text": ":", "kind": "punctuation" @@ -10326,7 +10006,7 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" }, { @@ -10334,11 +10014,7 @@ "kind": "punctuation" }, { - "text": " ", - "kind": "space" - }, - { - "text": "=>", + "text": ":", "kind": "punctuation" }, { @@ -10346,64 +10022,110 @@ "kind": "space" }, { - "text": "TypeError", - "kind": "localName" + "text": "boolean", + "kind": "keyword" + } + ], + "documentation": [ + { + "text": "Returns a Boolean value that indicates whether a value is the reserved value NaN (not a number).", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "number", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A numeric value.", + "kind": "text" + } + ] + } + ] + }, + { + "name": "JSON", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "(", - "kind": "punctuation" + "text": "JSON", + "kind": "localName" }, { - "text": "+", - "kind": "operator" + "text": "\n", + "kind": "lineBreak" }, { - "text": "1", - "kind": "numericLiteral" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "overload", - "kind": "text" + "text": "JSON", + "kind": "localName" }, { - "text": ")", + "text": ":", "kind": "punctuation" }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "interface", - "kind": "keyword" - }, { "text": " ", "kind": "space" }, { - "text": "TypeError", + "text": "JSON", "kind": "localName" } ], - "documentation": [] + "documentation": [ + { + "text": "An intrinsic object that provides functions to convert JavaScript values to and from the JavaScript Object Notation (JSON) format.", + "kind": "text" + } + ] }, { - "name": "URIError", + "name": "let", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "let", + "kind": "keyword" + } + ] + }, + { + "name": "Math", "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -10411,36 +10133,24 @@ "kind": "space" }, { - "text": "URIError", + "text": "Math", "kind": "localName" }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "URIErrorConstructor", - "kind": "interfaceName" - }, { "text": "\n", "kind": "lineBreak" }, { - "text": "(", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { - "text": "message", - "kind": "parameterName" + "text": " ", + "kind": "space" }, { - "text": "?", - "kind": "punctuation" + "text": "Math", + "kind": "localName" }, { "text": ":", @@ -10451,19 +10161,37 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" - }, + "text": "Math", + "kind": "localName" + } + ], + "documentation": [ { - "text": ")", - "kind": "punctuation" + "text": "An intrinsic object that provides basic mathematics functionality and constants.", + "kind": "text" + } + ] + }, + { + "name": "NaN", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "=>", + "text": "NaN", + "kind": "localName" + }, + { + "text": ":", "kind": "punctuation" }, { @@ -10471,112 +10199,140 @@ "kind": "space" }, { - "text": "URIError", - "kind": "localName" + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + }, + { + "name": "new", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "new", + "kind": "keyword" + } + ] + }, + { + "name": "null", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "null", + "kind": "keyword" + } + ] + }, + { + "name": "Number", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "(", - "kind": "punctuation" - }, - { - "text": "+", - "kind": "operator" + "text": "Number", + "kind": "localName" }, { - "text": "1", - "kind": "numericLiteral" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "overload", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" + "text": "NumberConstructor", + "kind": "interfaceName" }, { "text": "\n", "kind": "lineBreak" }, { - "text": "interface", - "kind": "keyword" + "text": "(", + "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "value", + "kind": "parameterName" }, { - "text": "URIError", - "kind": "localName" - } - ], - "documentation": [] - }, - { - "name": "JSON", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ + "text": "?", + "kind": "punctuation" + }, { - "text": "interface", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "JSON", - "kind": "localName" + "text": "any", + "kind": "keyword" }, { - "text": "\n", - "kind": "lineBreak" + "text": ")", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "JSON", - "kind": "localName" + "text": "number", + "kind": "keyword" }, { - "text": ":", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "JSON", + "text": "Number", "kind": "localName" } ], "documentation": [ { - "text": "An intrinsic object that provides functions to convert JavaScript values to and from the JavaScript Object Notation (JSON) format.", + "text": "An object that represents a number of any kind. All JavaScript numbers are 64-bit floating-point numbers.", "kind": "text" } ] }, { - "name": "Array", + "name": "Object", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -10590,7 +10346,7 @@ "kind": "space" }, { - "text": "Array", + "text": "Object", "kind": "localName" }, { @@ -10602,7 +10358,7 @@ "kind": "space" }, { - "text": "ArrayConstructor", + "text": "ObjectConstructor", "kind": "interfaceName" }, { @@ -10613,26 +10369,6 @@ "text": "(", "kind": "punctuation" }, - { - "text": "arrayLength", - "kind": "parameterName" - }, - { - "text": "?", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, { "text": ")", "kind": "punctuation" @@ -10653,14 +10389,6 @@ "text": "any", "kind": "keyword" }, - { - "text": "[", - "kind": "punctuation" - }, - { - "text": "]", - "kind": "punctuation" - }, { "text": " ", "kind": "space" @@ -10674,7 +10402,7 @@ "kind": "operator" }, { - "text": "2", + "text": "1", "kind": "numericLiteral" }, { @@ -10682,7 +10410,7 @@ "kind": "space" }, { - "text": "overloads", + "text": "overload", "kind": "text" }, { @@ -10702,32 +10430,32 @@ "kind": "space" }, { - "text": "Array", + "text": "Object", "kind": "localName" - }, - { - "text": "<", - "kind": "punctuation" - }, - { - "text": "T", - "kind": "typeParameterName" - }, - { - "text": ">", - "kind": "punctuation" } ], "documentation": [] }, { - "name": "ArrayBuffer", - "kind": "var", + "name": "package", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "package", + "kind": "keyword" + } + ] + }, + { + "name": "parseFloat", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -10735,24 +10463,32 @@ "kind": "space" }, { - "text": "ArrayBuffer", - "kind": "localName" + "text": "parseFloat", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "string", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "ArrayBuffer", - "kind": "localName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -10763,25 +10499,44 @@ "kind": "space" }, { - "text": "ArrayBufferConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], "documentation": [ { - "text": "Represents a raw buffer of binary data, which is used to store data for the\r\ndifferent typed arrays. ArrayBuffers cannot be read from or written to directly,\r\nbut can be passed to a typed array or DataView Object to interpret the raw\r\nbuffer as needed.", + "text": "Converts a string to a floating-point number.", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string that contains a floating-point number.", + "kind": "text" + } + ] + } ] }, { - "name": "DataView", - "kind": "var", + "name": "parseInt", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -10789,24 +10544,44 @@ "kind": "space" }, { - "text": "DataView", - "kind": "localName" + "text": "parseInt", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", + "text": "string", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", "kind": "keyword" }, + { + "text": ",", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "DataView", - "kind": "localName" + "text": "radix", + "kind": "parameterName" + }, + { + "text": "?", + "kind": "punctuation" }, { "text": ":", @@ -10817,34 +10592,75 @@ "kind": "space" }, { - "text": "DataViewConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Converts a string to an integer.", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string to convert into a number.", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "radix", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value between 2 and 36 that specifies the base of the number in `string`.\r\nIf this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal.\r\nAll other strings are considered decimal.", + "kind": "text" + } + ] + } + ] }, { - "name": "Int8Array", + "name": "RangeError", "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Int8Array", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, { "text": "var", "kind": "keyword" @@ -10854,7 +10670,7 @@ "kind": "space" }, { - "text": "Int8Array", + "text": "RangeError", "kind": "localName" }, { @@ -10866,53 +10682,39 @@ "kind": "space" }, { - "text": "Int8ArrayConstructor", + "text": "RangeErrorConstructor", "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "A typed array of 8-bit integer values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] - }, - { - "name": "Uint8Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ + }, { - "text": "interface", - "kind": "keyword" + "text": "\n", + "kind": "lineBreak" }, { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "Uint8Array", - "kind": "localName" + "text": "message", + "kind": "parameterName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "?", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Uint8Array", - "kind": "localName" + "text": "string", + "kind": "keyword" }, { - "text": ":", + "text": ")", "kind": "punctuation" }, { @@ -10920,93 +10722,70 @@ "kind": "space" }, { - "text": "Uint8ArrayConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ + "text": "=>", + "kind": "punctuation" + }, { - "text": "A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] - }, - { - "name": "Uint8ClampedArray", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "interface", - "kind": "keyword" + "text": "RangeError", + "kind": "localName" }, { "text": " ", "kind": "space" }, { - "text": "Uint8ClampedArray", - "kind": "localName" + "text": "(", + "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": "+", + "kind": "operator" }, { - "text": "var", - "kind": "keyword" + "text": "1", + "kind": "numericLiteral" }, { "text": " ", "kind": "space" }, { - "text": "Uint8ClampedArray", - "kind": "localName" + "text": "overload", + "kind": "text" }, { - "text": ":", + "text": ")", "kind": "punctuation" }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "interface", + "kind": "keyword" + }, { "text": " ", "kind": "space" }, { - "text": "Uint8ClampedArrayConstructor", - "kind": "interfaceName" + "text": "RangeError", + "kind": "localName" } ], - "documentation": [ - { - "text": "A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0.\r\nIf the requested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "Int16Array", + "name": "ReferenceError", "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Int16Array", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, { "text": "var", "kind": "keyword" @@ -11016,7 +10795,7 @@ "kind": "space" }, { - "text": "Int16Array", + "text": "ReferenceError", "kind": "localName" }, { @@ -11028,53 +10807,39 @@ "kind": "space" }, { - "text": "Int16ArrayConstructor", + "text": "ReferenceErrorConstructor", "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "A typed array of 16-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] - }, - { - "name": "Uint16Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ + }, { - "text": "interface", - "kind": "keyword" + "text": "\n", + "kind": "lineBreak" }, { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "Uint16Array", - "kind": "localName" + "text": "message", + "kind": "parameterName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "?", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Uint16Array", - "kind": "localName" + "text": "string", + "kind": "keyword" }, { - "text": ":", + "text": ")", "kind": "punctuation" }, { @@ -11082,77 +10847,49 @@ "kind": "space" }, { - "text": "Uint16ArrayConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ + "text": "=>", + "kind": "punctuation" + }, { - "text": "A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] - }, - { - "name": "Int32Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "interface", - "kind": "keyword" + "text": "ReferenceError", + "kind": "localName" }, { "text": " ", "kind": "space" }, { - "text": "Int32Array", - "kind": "localName" + "text": "(", + "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": "+", + "kind": "operator" }, { - "text": "var", - "kind": "keyword" + "text": "1", + "kind": "numericLiteral" }, { "text": " ", "kind": "space" }, { - "text": "Int32Array", - "kind": "localName" + "text": "overload", + "kind": "text" }, { - "text": ":", + "text": ")", "kind": "punctuation" }, { - "text": " ", - "kind": "space" - }, - { - "text": "Int32ArrayConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "A typed array of 32-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] - }, - { - "name": "Uint32Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ + "text": "\n", + "kind": "lineBreak" + }, { "text": "interface", "kind": "keyword" @@ -11162,13 +10899,18 @@ "kind": "space" }, { - "text": "Uint32Array", + "text": "ReferenceError", "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, + } + ], + "documentation": [] + }, + { + "name": "RegExp", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { "text": "var", "kind": "keyword" @@ -11178,7 +10920,7 @@ "kind": "space" }, { - "text": "Uint32Array", + "text": "RegExp", "kind": "localName" }, { @@ -11190,53 +10932,51 @@ "kind": "space" }, { - "text": "Uint32ArrayConstructor", + "text": "RegExpConstructor", "kind": "interfaceName" - } - ], - "documentation": [ + }, { - "text": "A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] - }, - { - "name": "Float32Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ + "text": "\n", + "kind": "lineBreak" + }, { - "text": "interface", - "kind": "keyword" + "text": "(", + "kind": "punctuation" + }, + { + "text": "pattern", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Float32Array", - "kind": "localName" + "text": "string", + "kind": "keyword" }, { - "text": "\n", - "kind": "lineBreak" + "text": " ", + "kind": "space" }, { - "text": "var", - "kind": "keyword" + "text": "|", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Float32Array", + "text": "RegExp", "kind": "localName" }, { - "text": ":", + "text": ")", "kind": "punctuation" }, { @@ -11244,79 +10984,51 @@ "kind": "space" }, { - "text": "Float32ArrayConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ + "text": "=>", + "kind": "punctuation" + }, { - "text": "A typed array of 32-bit float values. The contents are initialized to 0. If the requested number\r\nof bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] - }, - { - "name": "Float64Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "interface", - "kind": "keyword" + "text": "RegExp", + "kind": "localName" }, { "text": " ", "kind": "space" }, { - "text": "Float64Array", - "kind": "localName" + "text": "(", + "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": "+", + "kind": "operator" }, { - "text": "var", - "kind": "keyword" + "text": "1", + "kind": "numericLiteral" }, { "text": " ", "kind": "space" }, { - "text": "Float64Array", - "kind": "localName" + "text": "overload", + "kind": "text" }, { - "text": ":", + "text": ")", "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, { - "text": "Float64ArrayConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "A typed array of 64-bit float values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] - }, - { - "name": "Intl", - "kind": "module", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "namespace", + "text": "interface", "kind": "keyword" }, { @@ -11324,20 +11036,32 @@ "kind": "space" }, { - "text": "Intl", - "kind": "moduleName" + "text": "RegExp", + "kind": "localName" } ], "documentation": [] }, { - "name": "foo", - "kind": "function", + "name": "return", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "function", + "text": "return", + "kind": "keyword" + } + ] + }, + { + "name": "String", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "var", "kind": "keyword" }, { @@ -11345,16 +11069,8 @@ "kind": "space" }, { - "text": "foo", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" + "text": "String", + "kind": "localName" }, { "text": ":", @@ -11365,43 +11081,25 @@ "kind": "space" }, { - "text": "void", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "This comment should appear for foo", - "kind": "text" - } - ] - }, - { - "name": "fooWithParameters", - "kind": "function", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" + "text": "StringConstructor", + "kind": "interfaceName" }, { - "text": "fooWithParameters", - "kind": "functionName" + "text": "\n", + "kind": "lineBreak" }, { "text": "(", "kind": "punctuation" }, { - "text": "a", + "text": "value", "kind": "parameterName" }, + { + "text": "?", + "kind": "punctuation" + }, { "text": ":", "kind": "punctuation" @@ -11411,11 +11109,11 @@ "kind": "space" }, { - "text": "string", + "text": "any", "kind": "keyword" }, { - "text": ",", + "text": ")", "kind": "punctuation" }, { @@ -11423,11 +11121,7 @@ "kind": "space" }, { - "text": "b", - "kind": "parameterName" - }, - { - "text": ":", + "text": "=>", "kind": "punctuation" }, { @@ -11435,41 +11129,65 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" }, { - "text": ")", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "void", - "kind": "keyword" + "text": "String", + "kind": "localName" } ], "documentation": [ { - "text": "This is comment for function signature", + "text": "Allows manipulation and formatting of text strings and determination and location of substrings within strings.", "kind": "text" } ] }, { - "name": "fn", - "kind": "function", + "name": "super", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "super", + "kind": "keyword" + } + ] + }, + { + "name": "switch", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "switch", + "kind": "keyword" + } + ] + }, + { + "name": "SyntaxError", + "kind": "var", "kindModifiers": "declare", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "function", + "text": "var", "kind": "keyword" }, { @@ -11477,17 +11195,37 @@ "kind": "space" }, { - "text": "fn", - "kind": "functionName" + "text": "SyntaxError", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "SyntaxErrorConstructor", + "kind": "interfaceName" + }, + { + "text": "\n", + "kind": "lineBreak" }, { "text": "(", "kind": "punctuation" }, { - "text": "a", + "text": "message", "kind": "parameterName" }, + { + "text": "?", + "kind": "punctuation" + }, { "text": ":", "kind": "punctuation" @@ -11505,7 +11243,11 @@ "kind": "punctuation" }, { - "text": ":", + "text": " ", + "kind": "space" + }, + { + "text": "=>", "kind": "punctuation" }, { @@ -11513,440 +11255,602 @@ "kind": "space" }, { - "text": "any", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Does something", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "a", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "a string", - "kind": "text" - } - ] - } - ] - }, - { - "name": "undefined", - "kind": "var", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "var", - "kind": "keyword" + "text": "SyntaxError", + "kind": "localName" }, { "text": " ", "kind": "space" }, { - "text": "undefined", - "kind": "propertyName" - } - ], - "documentation": [] - }, - { - "name": "break", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "break", - "kind": "keyword" - } - ] - }, - { - "name": "case", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "case", - "kind": "keyword" - } - ] - }, - { - "name": "catch", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "catch", - "kind": "keyword" - } - ] - }, - { - "name": "class", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "class", - "kind": "keyword" - } - ] - }, - { - "name": "const", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "(", + "kind": "punctuation" + }, { - "text": "const", - "kind": "keyword" - } - ] - }, - { - "name": "continue", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "+", + "kind": "operator" + }, { - "text": "continue", - "kind": "keyword" - } - ] - }, - { - "name": "debugger", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "1", + "kind": "numericLiteral" + }, { - "text": "debugger", - "kind": "keyword" - } - ] - }, - { - "name": "default", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "default", - "kind": "keyword" - } - ] - }, - { - "name": "delete", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "overload", + "kind": "text" + }, { - "text": "delete", - "kind": "keyword" - } - ] - }, - { - "name": "do", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": ")", + "kind": "punctuation" + }, { - "text": "do", - "kind": "keyword" - } - ] - }, - { - "name": "else", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "\n", + "kind": "lineBreak" + }, { - "text": "else", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "enum", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "enum", - "kind": "keyword" - } - ] - }, - { - "name": "export", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "export", - "kind": "keyword" + "text": "SyntaxError", + "kind": "localName" } - ] + ], + "documentation": [] }, { - "name": "extends", + "name": "this", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "extends", + "text": "this", "kind": "keyword" } ] }, { - "name": "false", + "name": "throw", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "false", + "text": "throw", "kind": "keyword" } ] }, { - "name": "finally", + "name": "true", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "finally", + "text": "true", "kind": "keyword" } ] }, { - "name": "for", + "name": "try", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "for", + "text": "try", "kind": "keyword" } ] }, { - "name": "function", - "kind": "keyword", - "kindModifiers": "", + "name": "TypeError", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "var", "kind": "keyword" - } - ] - }, - { - "name": "if", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "if", + "text": " ", + "kind": "space" + }, + { + "text": "TypeError", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "TypeErrorConstructor", + "kind": "interfaceName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "message", + "kind": "parameterName" + }, + { + "text": "?", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "TypeError", + "kind": "localName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "+", + "kind": "operator" + }, + { + "text": "1", + "kind": "numericLiteral" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "overload", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "interface", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "TypeError", + "kind": "localName" } - ] + ], + "documentation": [] }, { - "name": "import", + "name": "typeof", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "import", + "text": "typeof", "kind": "keyword" } ] }, { - "name": "in", - "kind": "keyword", - "kindModifiers": "", + "name": "Uint16Array", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "in", + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint16Array", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint16Array", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint16ArrayConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ + { + "text": "A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" } ] }, { - "name": "instanceof", - "kind": "keyword", - "kindModifiers": "", + "name": "Uint32Array", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "instanceof", + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint32Array", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint32Array", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint32ArrayConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ + { + "text": "A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" } ] }, { - "name": "new", - "kind": "keyword", - "kindModifiers": "", + "name": "Uint8Array", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "new", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "null", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "null", + "text": " ", + "kind": "space" + }, + { + "text": "Uint8Array", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint8Array", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint8ArrayConstructor", + "kind": "interfaceName" } - ] - }, - { - "name": "return", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "return", - "kind": "keyword" + "text": "A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" } ] }, { - "name": "super", - "kind": "keyword", - "kindModifiers": "", + "name": "Uint8ClampedArray", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "super", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "switch", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "switch", + "text": " ", + "kind": "space" + }, + { + "text": "Uint8ClampedArray", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint8ClampedArray", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint8ClampedArrayConstructor", + "kind": "interfaceName" } - ] - }, - { - "name": "this", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "this", - "kind": "keyword" + "text": "A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0.\r\nIf the requested number of bytes could not be allocated an exception is raised.", + "kind": "text" } ] }, { - "name": "throw", - "kind": "keyword", + "name": "undefined", + "kind": "var", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "throw", + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "undefined", + "kind": "propertyName" } - ] + ], + "documentation": [] }, { - "name": "true", - "kind": "keyword", - "kindModifiers": "", + "name": "URIError", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "true", - "kind": "keyword" - } - ] - }, - { - "name": "try", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "URIError", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "URIErrorConstructor", + "kind": "interfaceName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "message", + "kind": "parameterName" + }, + { + "text": "?", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "URIError", + "kind": "localName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "+", + "kind": "operator" + }, + { + "text": "1", + "kind": "numericLiteral" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "overload", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": "\n", + "kind": "lineBreak" + }, { - "text": "try", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "typeof", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "typeof", - "kind": "keyword" + "text": " ", + "kind": "space" + }, + { + "text": "URIError", + "kind": "localName" } - ] + ], + "documentation": [] }, { "name": "var", @@ -11997,99 +11901,195 @@ ] }, { - "name": "implements", + "name": "yield", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "implements", + "text": "yield", "kind": "keyword" } ] }, { - "name": "interface", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", + "name": "escape", + "kind": "function", + "kindModifiers": "deprecated,declare", + "sortText": "z15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" - } - ] - }, - { - "name": "let", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "let", + "text": " ", + "kind": "space" + }, + { + "text": "escape", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "string", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", "kind": "keyword" - } - ] - }, - { - "name": "package", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "package", + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", "kind": "keyword" } - ] - }, - { - "name": "yield", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "yield", - "kind": "keyword" + "text": "Computes a new string in which certain characters have been replaced by a hexadecimal escape sequence.", + "kind": "text" } - ] - }, - { - "name": "as", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "tags": [ { - "text": "as", - "kind": "keyword" + "name": "deprecated", + "text": [ + { + "text": "A legacy feature for browser compatibility", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string value", + "kind": "text" + } + ] } ] }, { - "name": "async", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", + "name": "unescape", + "kind": "function", + "kindModifiers": "deprecated,declare", + "sortText": "z15", "displayParts": [ { - "text": "async", + "text": "function", "kind": "keyword" - } - ] - }, - { - "name": "await", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "await", + "text": " ", + "kind": "space" + }, + { + "text": "unescape", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "string", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", "kind": "keyword" } + ], + "documentation": [ + { + "text": "Computes a new string in which hexadecimal escape sequences are replaced with the character that it represents.", + "kind": "text" + } + ], + "tags": [ + { + "name": "deprecated", + "text": [ + { + "text": "A legacy feature for browser compatibility", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string value", + "kind": "text" + } + ] + } ] } ] diff --git a/tests/baselines/reference/completionsCommentsFunctionExpression.baseline b/tests/baselines/reference/completionsCommentsFunctionExpression.baseline index 52b00c2a5d86a..9c1bc3392836e 100644 --- a/tests/baselines/reference/completionsCommentsFunctionExpression.baseline +++ b/tests/baselines/reference/completionsCommentsFunctionExpression.baseline @@ -61,77 +61,10 @@ ] }, { - "name": "b", - "kind": "parameter", + "name": "anotherFunc", + "kind": "function", "kindModifiers": "", "sortText": "11", - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "parameter", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "b", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "param b", - "kind": "text" - } - ] - }, - { - "name": "globalThis", - "kind": "module", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "module", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "globalThis", - "kind": "moduleName" - } - ], - "documentation": [] - }, - { - "name": "eval", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", "displayParts": [ { "text": "function", @@ -142,7 +75,7 @@ "kind": "space" }, { - "text": "eval", + "text": "anotherFunc", "kind": "functionName" }, { @@ -150,7 +83,7 @@ "kind": "punctuation" }, { - "text": "x", + "text": "a", "kind": "parameterName" }, { @@ -162,7 +95,7 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" }, { @@ -178,44 +111,20 @@ "kind": "space" }, { - "text": "any", + "text": "string", "kind": "keyword" } ], - "documentation": [ - { - "text": "Evaluates JavaScript code and executes it.", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "x", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A String value that contains valid JavaScript code.", - "kind": "text" - } - ] - } - ] + "documentation": [] }, { - "name": "parseInt", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "name": "assigned", + "kind": "var", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "function", + "text": "var", "kind": "keyword" }, { @@ -223,16 +132,8 @@ "kind": "space" }, { - "text": "parseInt", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "string", - "kind": "parameterName" + "text": "assigned", + "kind": "localName" }, { "text": ":", @@ -243,25 +144,13 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" - }, - { - "text": ",", + "text": "(", "kind": "punctuation" }, { - "text": " ", - "kind": "space" - }, - { - "text": "radix", + "text": "s", "kind": "parameterName" }, - { - "text": "?", - "kind": "punctuation" - }, { "text": ":", "kind": "punctuation" @@ -271,7 +160,7 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" }, { @@ -279,7 +168,11 @@ "kind": "punctuation" }, { - "text": ":", + "text": " ", + "kind": "space" + }, + { + "text": "=>", "kind": "punctuation" }, { @@ -293,7 +186,15 @@ ], "documentation": [ { - "text": "Converts a string to an integer.", + "text": "Summary on expression", + "kind": "text" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "On variable", "kind": "text" } ], @@ -302,7 +203,7 @@ "name": "param", "text": [ { - "text": "string", + "text": "s", "kind": "parameterName" }, { @@ -310,7 +211,16 @@ "kind": "space" }, { - "text": "A string to convert into a number.", + "text": "param on expression", + "kind": "text" + } + ] + }, + { + "name": "returns", + "text": [ + { + "text": "return on expression", "kind": "text" } ] @@ -319,7 +229,7 @@ "name": "param", "text": [ { - "text": "radix", + "text": "s", "kind": "parameterName" }, { @@ -327,7 +237,16 @@ "kind": "space" }, { - "text": "A value between 2 and 36 that specifies the base of the number in `string`.\r\nIf this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal.\r\nAll other strings are considered decimal.", + "text": "the first parameter!", + "kind": "text" + } + ] + }, + { + "name": "returns", + "text": [ + { + "text": "the parameter's length", "kind": "text" } ] @@ -335,33 +254,21 @@ ] }, { - "name": "parseFloat", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "name": "b", + "kind": "parameter", + "kindModifiers": "", + "sortText": "11", "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "parseFloat", - "kind": "functionName" - }, { "text": "(", "kind": "punctuation" }, { - "text": "string", - "kind": "parameterName" + "text": "parameter", + "kind": "text" }, { - "text": ":", + "text": ")", "kind": "punctuation" }, { @@ -369,12 +276,8 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "b", + "kind": "parameterName" }, { "text": ":", @@ -391,38 +294,19 @@ ], "documentation": [ { - "text": "Converts a string to a floating-point number.", + "text": "param b", "kind": "text" } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string that contains a floating-point number.", - "kind": "text" - } - ] - } ] }, { - "name": "isNaN", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "name": "lambdaFoo", + "kind": "var", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "function", + "text": "var", "kind": "keyword" }, { @@ -430,15 +314,47 @@ "kind": "space" }, { - "text": "isNaN", - "kind": "functionName" + "text": "lambdaFoo", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" }, { "text": "(", "kind": "punctuation" }, + { + "text": "a", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, { "text": "number", + "kind": "keyword" + }, + { + "text": ",", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "b", "kind": "parameterName" }, { @@ -458,7 +374,11 @@ "kind": "punctuation" }, { - "text": ":", + "text": " ", + "kind": "space" + }, + { + "text": "=>", "kind": "punctuation" }, { @@ -466,44 +386,33 @@ "kind": "space" }, { - "text": "boolean", + "text": "number", "kind": "keyword" } ], "documentation": [ { - "text": "Returns a Boolean value that indicates whether a value is the reserved value NaN (not a number).", + "text": "this is lambda comment", "kind": "text" - } - ], - "tags": [ + }, { - "name": "param", - "text": [ - { - "text": "number", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A numeric value.", - "kind": "text" - } - ] + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "lambdaFoo var comment", + "kind": "text" } ] }, { - "name": "isFinite", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "name": "lambddaNoVarComment", + "kind": "var", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "function", + "text": "var", "kind": "keyword" }, { @@ -511,15 +420,47 @@ "kind": "space" }, { - "text": "isFinite", - "kind": "functionName" + "text": "lambddaNoVarComment", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" }, { "text": "(", "kind": "punctuation" }, + { + "text": "a", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, { "text": "number", + "kind": "keyword" + }, + { + "text": ",", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "b", "kind": "parameterName" }, { @@ -539,7 +480,11 @@ "kind": "punctuation" }, { - "text": ":", + "text": " ", + "kind": "space" + }, + { + "text": "=>", "kind": "punctuation" }, { @@ -547,44 +492,49 @@ "kind": "space" }, { - "text": "boolean", + "text": "number", "kind": "keyword" } ], "documentation": [ { - "text": "Determines whether a supplied number is finite.", + "text": "this is lambda multiplication", "kind": "text" } - ], - "tags": [ + ] + }, + { + "name": "abstract", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "number", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Any numeric value.", - "kind": "text" - } - ] + "text": "abstract", + "kind": "keyword" } ] }, { - "name": "decodeURI", - "kind": "function", + "name": "any", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "any", + "kind": "keyword" + } + ] + }, + { + "name": "Array", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -592,32 +542,36 @@ "kind": "space" }, { - "text": "decodeURI", - "kind": "functionName" + "text": "Array", + "kind": "localName" }, { - "text": "(", + "text": "<", "kind": "punctuation" }, { - "text": "encodedURI", - "kind": "parameterName" + "text": "T", + "kind": "typeParameterName" }, { - "text": ":", + "text": ">", "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, { - "text": "string", + "text": "var", "kind": "keyword" }, { - "text": ")", - "kind": "punctuation" + "text": " ", + "kind": "space" + }, + { + "text": "Array", + "kind": "localName" }, { "text": ":", @@ -628,44 +582,20 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Gets the unencoded version of an encoded Uniform Resource Identifier (URI).", - "kind": "text" + "text": "ArrayConstructor", + "kind": "interfaceName" } ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "encodedURI", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI.", - "kind": "text" - } - ] - } - ] + "documentation": [] }, { - "name": "decodeURIComponent", - "kind": "function", + "name": "ArrayBuffer", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -673,32 +603,24 @@ "kind": "space" }, { - "text": "decodeURIComponent", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" + "text": "ArrayBuffer", + "kind": "localName" }, { - "text": "encodedURIComponent", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "ArrayBuffer", + "kind": "localName" }, { "text": ":", @@ -709,44 +631,97 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "ArrayBufferConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).", + "text": "Represents a raw buffer of binary data, which is used to store data for the\r\ndifferent typed arrays. ArrayBuffers cannot be read from or written to directly,\r\nbut can be passed to a typed array or DataView Object to interpret the raw\r\nbuffer as needed.", "kind": "text" } - ], - "tags": [ + ] + }, + { + "name": "as", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "encodedURIComponent", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI component.", - "kind": "text" - } - ] + "text": "as", + "kind": "keyword" } ] }, { - "name": "encodeURI", - "kind": "function", + "name": "asserts", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "asserts", + "kind": "keyword" + } + ] + }, + { + "name": "async", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "async", + "kind": "keyword" + } + ] + }, + { + "name": "await", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "await", + "kind": "keyword" + } + ] + }, + { + "name": "bigint", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "bigint", + "kind": "keyword" + } + ] + }, + { + "name": "boolean", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "boolean", + "kind": "keyword" + } + ] + }, + { + "name": "Boolean", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -754,32 +729,24 @@ "kind": "space" }, { - "text": "encodeURI", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" + "text": "Boolean", + "kind": "localName" }, { - "text": "uri", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "Boolean", + "kind": "localName" }, { "text": ":", @@ -790,72 +757,92 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "BooleanConstructor", + "kind": "interfaceName" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "break", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "Encodes a text string as a valid Uniform Resource Identifier (URI)", - "kind": "text" + "text": "break", + "kind": "keyword" } - ], - "tags": [ + ] + }, + { + "name": "case", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "uri", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI.", - "kind": "text" - } - ] + "text": "case", + "kind": "keyword" } ] }, { - "name": "encodeURIComponent", - "kind": "function", - "kindModifiers": "declare", + "name": "catch", + "kind": "keyword", + "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "catch", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "encodeURIComponent", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, + } + ] + }, + { + "name": "class", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "uriComponent", - "kind": "parameterName" - }, + "text": "class", + "kind": "keyword" + } + ] + }, + { + "name": "const", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": ":", - "kind": "punctuation" - }, + "text": "const", + "kind": "keyword" + } + ] + }, + { + "name": "continue", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": " ", - "kind": "space" - }, + "text": "continue", + "kind": "keyword" + } + ] + }, + { + "name": "DataView", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { - "text": "string", + "text": "interface", "kind": "keyword" }, { @@ -863,15 +850,15 @@ "kind": "space" }, { - "text": "|", - "kind": "punctuation" + "text": "DataView", + "kind": "localName" }, { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, { - "text": "number", + "text": "var", "kind": "keyword" }, { @@ -879,7 +866,11 @@ "kind": "space" }, { - "text": "|", + "text": "DataView", + "kind": "localName" + }, + { + "text": ":", "kind": "punctuation" }, { @@ -887,12 +878,45 @@ "kind": "space" }, { - "text": "boolean", + "text": "DataViewConstructor", + "kind": "interfaceName" + } + ], + "documentation": [] + }, + { + "name": "Date", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", "kind": "keyword" }, { - "text": ")", - "kind": "punctuation" + "text": " ", + "kind": "space" + }, + { + "text": "Date", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Date", + "kind": "localName" }, { "text": ":", @@ -903,41 +927,46 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "DateConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "Encodes a text string as a valid component of a Uniform Resource Identifier (URI).", + "text": "Enables basic storage and retrieval of dates and times.", "kind": "text" } - ], - "tags": [ + ] + }, + { + "name": "debugger", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "uriComponent", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI component.", - "kind": "text" - } - ] + "text": "debugger", + "kind": "keyword" } ] }, { - "name": "escape", + "name": "declare", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "declare", + "kind": "keyword" + } + ] + }, + { + "name": "decodeURI", "kind": "function", - "kindModifiers": "deprecated,declare", - "sortText": "23", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { "text": "function", @@ -948,7 +977,7 @@ "kind": "space" }, { - "text": "escape", + "text": "decodeURI", "kind": "functionName" }, { @@ -956,7 +985,7 @@ "kind": "punctuation" }, { - "text": "string", + "text": "encodedURI", "kind": "parameterName" }, { @@ -990,25 +1019,16 @@ ], "documentation": [ { - "text": "Computes a new string in which certain characters have been replaced by a hexadecimal escape sequence.", + "text": "Gets the unencoded version of an encoded Uniform Resource Identifier (URI).", "kind": "text" } ], "tags": [ - { - "name": "deprecated", - "text": [ - { - "text": "A legacy feature for browser compatibility", - "kind": "text" - } - ] - }, { "name": "param", "text": [ { - "text": "string", + "text": "encodedURI", "kind": "parameterName" }, { @@ -1016,7 +1036,7 @@ "kind": "space" }, { - "text": "A string value", + "text": "A value representing an encoded URI.", "kind": "text" } ] @@ -1024,10 +1044,10 @@ ] }, { - "name": "unescape", + "name": "decodeURIComponent", "kind": "function", - "kindModifiers": "deprecated,declare", - "sortText": "23", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { "text": "function", @@ -1038,7 +1058,7 @@ "kind": "space" }, { - "text": "unescape", + "text": "decodeURIComponent", "kind": "functionName" }, { @@ -1046,7 +1066,7 @@ "kind": "punctuation" }, { - "text": "string", + "text": "encodedURIComponent", "kind": "parameterName" }, { @@ -1080,25 +1100,16 @@ ], "documentation": [ { - "text": "Computes a new string in which hexadecimal escape sequences are replaced with the character that it represents.", + "text": "Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).", "kind": "text" } ], "tags": [ - { - "name": "deprecated", - "text": [ - { - "text": "A legacy feature for browser compatibility", - "kind": "text" - } - ] - }, { "name": "param", "text": [ { - "text": "string", + "text": "encodedURIComponent", "kind": "parameterName" }, { @@ -1106,7 +1117,7 @@ "kind": "space" }, { - "text": "A string value", + "text": "A value representing an encoded URI component.", "kind": "text" } ] @@ -1114,79 +1125,61 @@ ] }, { - "name": "NaN", - "kind": "var", - "kindModifiers": "declare", + "name": "default", + "kind": "keyword", + "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "var", + "text": "default", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "NaN", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, + } + ] + }, + { + "name": "delete", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "number", + "text": "delete", "kind": "keyword" } - ], - "documentation": [] + ] }, { - "name": "Infinity", - "kind": "var", - "kindModifiers": "declare", + "name": "do", + "kind": "keyword", + "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "var", + "text": "do", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Infinity", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, + } + ] + }, + { + "name": "else", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "number", + "text": "else", "kind": "keyword" } - ], - "documentation": [] + ] }, { - "name": "Object", - "kind": "var", + "name": "encodeURI", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -1194,24 +1187,32 @@ "kind": "space" }, { - "text": "Object", - "kind": "localName" + "text": "encodeURI", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "uri", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Object", - "kind": "localName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -1222,25 +1223,44 @@ "kind": "space" }, { - "text": "ObjectConstructor", - "kind": "interfaceName" + "text": "string", + "kind": "keyword" } ], "documentation": [ { - "text": "Provides functionality common to all JavaScript objects.", + "text": "Encodes a text string as a valid Uniform Resource Identifier (URI)", "kind": "text" } - ] - }, - { - "name": "Function", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ + ], + "tags": [ { - "text": "interface", + "name": "param", + "text": [ + { + "text": "uri", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI.", + "kind": "text" + } + ] + } + ] + }, + { + "name": "encodeURIComponent", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "function", "kind": "keyword" }, { @@ -1248,27 +1268,35 @@ "kind": "space" }, { - "text": "Function", - "kind": "localName" + "text": "encodeURIComponent", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "uriComponent", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Function", - "kind": "localName" + "text": "string", + "kind": "keyword" }, { - "text": ":", + "text": " ", + "kind": "space" + }, + { + "text": "|", "kind": "punctuation" }, { @@ -1276,25 +1304,7 @@ "kind": "space" }, { - "text": "FunctionConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "Creates a new function.", - "kind": "text" - } - ] - }, - { - "name": "String", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", + "text": "number", "kind": "keyword" }, { @@ -1302,24 +1312,20 @@ "kind": "space" }, { - "text": "String", - "kind": "localName" + "text": "|", + "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": " ", + "kind": "space" }, { - "text": "var", + "text": "boolean", "kind": "keyword" }, { - "text": " ", - "kind": "space" - }, - { - "text": "String", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -1330,19 +1336,50 @@ "kind": "space" }, { - "text": "StringConstructor", - "kind": "interfaceName" + "text": "string", + "kind": "keyword" } ], "documentation": [ { - "text": "Allows manipulation and formatting of text strings and determination and location of substrings within strings.", + "text": "Encodes a text string as a valid component of a Uniform Resource Identifier (URI).", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "uriComponent", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI component.", + "kind": "text" + } + ] + } ] }, { - "name": "Boolean", + "name": "enum", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "enum", + "kind": "keyword" + } + ] + }, + { + "name": "Error", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -1356,7 +1393,7 @@ "kind": "space" }, { - "text": "Boolean", + "text": "Error", "kind": "localName" }, { @@ -1372,7 +1409,7 @@ "kind": "space" }, { - "text": "Boolean", + "text": "Error", "kind": "localName" }, { @@ -1384,20 +1421,20 @@ "kind": "space" }, { - "text": "BooleanConstructor", + "text": "ErrorConstructor", "kind": "interfaceName" } ], "documentation": [] }, { - "name": "Number", - "kind": "var", + "name": "eval", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -1405,24 +1442,32 @@ "kind": "space" }, { - "text": "Number", - "kind": "localName" + "text": "eval", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "x", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Number", - "kind": "localName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -1433,19 +1478,38 @@ "kind": "space" }, { - "text": "NumberConstructor", - "kind": "interfaceName" + "text": "any", + "kind": "keyword" } ], "documentation": [ { - "text": "An object that represents a number of any kind. All JavaScript numbers are 64-bit floating-point numbers.", + "text": "Evaluates JavaScript code and executes it.", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "x", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A String value that contains valid JavaScript code.", + "kind": "text" + } + ] + } ] }, { - "name": "Math", + "name": "EvalError", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -1459,7 +1523,7 @@ "kind": "space" }, { - "text": "Math", + "text": "EvalError", "kind": "localName" }, { @@ -1475,7 +1539,7 @@ "kind": "space" }, { - "text": "Math", + "text": "EvalError", "kind": "localName" }, { @@ -1487,19 +1551,62 @@ "kind": "space" }, { - "text": "Math", - "kind": "localName" + "text": "EvalErrorConstructor", + "kind": "interfaceName" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "export", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "An intrinsic object that provides basic mathematics functionality and constants.", - "kind": "text" + "text": "export", + "kind": "keyword" } ] }, { - "name": "Date", + "name": "extends", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "extends", + "kind": "keyword" + } + ] + }, + { + "name": "false", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "false", + "kind": "keyword" + } + ] + }, + { + "name": "finally", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "finally", + "kind": "keyword" + } + ] + }, + { + "name": "Float32Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -1513,7 +1620,7 @@ "kind": "space" }, { - "text": "Date", + "text": "Float32Array", "kind": "localName" }, { @@ -1529,7 +1636,7 @@ "kind": "space" }, { - "text": "Date", + "text": "Float32Array", "kind": "localName" }, { @@ -1541,19 +1648,19 @@ "kind": "space" }, { - "text": "DateConstructor", + "text": "Float32ArrayConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "Enables basic storage and retrieval of dates and times.", + "text": "A typed array of 32-bit float values. The contents are initialized to 0. If the requested number\r\nof bytes could not be allocated an exception is raised.", "kind": "text" } ] }, { - "name": "RegExp", + "name": "Float64Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -1567,7 +1674,7 @@ "kind": "space" }, { - "text": "RegExp", + "text": "Float64Array", "kind": "localName" }, { @@ -1583,7 +1690,7 @@ "kind": "space" }, { - "text": "RegExp", + "text": "Float64Array", "kind": "localName" }, { @@ -1595,14 +1702,43 @@ "kind": "space" }, { - "text": "RegExpConstructor", + "text": "Float64ArrayConstructor", "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "A typed array of 64-bit float values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] }, { - "name": "Error", + "name": "for", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "for", + "kind": "keyword" + } + ] + }, + { + "name": "function", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + } + ] + }, + { + "name": "Function", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -1616,7 +1752,7 @@ "kind": "space" }, { - "text": "Error", + "text": "Function", "kind": "localName" }, { @@ -1632,7 +1768,7 @@ "kind": "space" }, { - "text": "Error", + "text": "Function", "kind": "localName" }, { @@ -1644,20 +1780,25 @@ "kind": "space" }, { - "text": "ErrorConstructor", + "text": "FunctionConstructor", "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "Creates a new function.", + "kind": "text" + } + ] }, { - "name": "EvalError", - "kind": "var", - "kindModifiers": "declare", + "name": "globalThis", + "kind": "module", + "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "module", "kind": "keyword" }, { @@ -1665,13 +1806,78 @@ "kind": "space" }, { - "text": "EvalError", - "kind": "localName" - }, + "text": "globalThis", + "kind": "moduleName" + } + ], + "documentation": [] + }, + { + "name": "if", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "\n", - "kind": "lineBreak" - }, + "text": "if", + "kind": "keyword" + } + ] + }, + { + "name": "implements", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "implements", + "kind": "keyword" + } + ] + }, + { + "name": "import", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "import", + "kind": "keyword" + } + ] + }, + { + "name": "in", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "in", + "kind": "keyword" + } + ] + }, + { + "name": "infer", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "infer", + "kind": "keyword" + } + ] + }, + { + "name": "Infinity", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { "text": "var", "kind": "keyword" @@ -1681,7 +1887,7 @@ "kind": "space" }, { - "text": "EvalError", + "text": "Infinity", "kind": "localName" }, { @@ -1693,14 +1899,26 @@ "kind": "space" }, { - "text": "EvalErrorConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], "documentation": [] }, { - "name": "RangeError", + "name": "instanceof", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "instanceof", + "kind": "keyword" + } + ] + }, + { + "name": "Int16Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -1714,7 +1932,7 @@ "kind": "space" }, { - "text": "RangeError", + "text": "Int16Array", "kind": "localName" }, { @@ -1730,7 +1948,7 @@ "kind": "space" }, { - "text": "RangeError", + "text": "Int16Array", "kind": "localName" }, { @@ -1742,14 +1960,19 @@ "kind": "space" }, { - "text": "RangeErrorConstructor", + "text": "Int16ArrayConstructor", "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "A typed array of 16-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] }, { - "name": "ReferenceError", + "name": "Int32Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -1763,7 +1986,7 @@ "kind": "space" }, { - "text": "ReferenceError", + "text": "Int32Array", "kind": "localName" }, { @@ -1779,7 +2002,7 @@ "kind": "space" }, { - "text": "ReferenceError", + "text": "Int32Array", "kind": "localName" }, { @@ -1791,14 +2014,19 @@ "kind": "space" }, { - "text": "ReferenceErrorConstructor", + "text": "Int32ArrayConstructor", "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "A typed array of 32-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] }, { - "name": "SyntaxError", + "name": "Int8Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -1812,7 +2040,7 @@ "kind": "space" }, { - "text": "SyntaxError", + "text": "Int8Array", "kind": "localName" }, { @@ -1828,7 +2056,7 @@ "kind": "space" }, { - "text": "SyntaxError", + "text": "Int8Array", "kind": "localName" }, { @@ -1840,36 +2068,58 @@ "kind": "space" }, { - "text": "SyntaxErrorConstructor", + "text": "Int8ArrayConstructor", "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "A typed array of 8-bit integer values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] }, { - "name": "TypeError", - "kind": "var", - "kindModifiers": "declare", + "name": "interface", + "kind": "keyword", + "kindModifiers": "", "sortText": "15", "displayParts": [ { "text": "interface", "kind": "keyword" + } + ] + }, + { + "name": "Intl", + "kind": "module", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "namespace", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "TypeError", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, + "text": "Intl", + "kind": "moduleName" + } + ], + "documentation": [] + }, + { + "name": "isFinite", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { - "text": "var", + "text": "function", "kind": "keyword" }, { @@ -1877,8 +2127,16 @@ "kind": "space" }, { - "text": "TypeError", - "kind": "localName" + "text": "isFinite", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "number", + "kind": "parameterName" }, { "text": ":", @@ -1889,20 +2147,60 @@ "kind": "space" }, { - "text": "TypeErrorConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "boolean", + "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Determines whether a supplied number is finite.", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "number", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Any numeric value.", + "kind": "text" + } + ] + } + ] }, { - "name": "URIError", - "kind": "var", + "name": "isNaN", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -1910,24 +2208,32 @@ "kind": "space" }, { - "text": "URIError", - "kind": "localName" + "text": "isNaN", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "number", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "URIError", - "kind": "localName" + "text": "number", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -1938,11 +2244,35 @@ "kind": "space" }, { - "text": "URIErrorConstructor", - "kind": "interfaceName" + "text": "boolean", + "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Returns a Boolean value that indicates whether a value is the reserved value NaN (not a number).", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "number", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A numeric value.", + "kind": "text" + } + ] + } + ] }, { "name": "JSON", @@ -1999,68 +2329,31 @@ ] }, { - "name": "Array", - "kind": "var", - "kindModifiers": "declare", + "name": "keyof", + "kind": "keyword", + "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "keyof", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Array", - "kind": "localName" - }, - { - "text": "<", - "kind": "punctuation" - }, - { - "text": "T", - "kind": "typeParameterName" - }, - { - "text": ">", - "kind": "punctuation" - }, - { - "text": "\n", - "kind": "lineBreak" - }, + } + ] + }, + { + "name": "let", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "var", + "text": "let", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Array", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "ArrayConstructor", - "kind": "interfaceName" } - ], - "documentation": [] + ] }, { - "name": "ArrayBuffer", + "name": "Math", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -2074,7 +2367,7 @@ "kind": "space" }, { - "text": "ArrayBuffer", + "text": "Math", "kind": "localName" }, { @@ -2090,7 +2383,7 @@ "kind": "space" }, { - "text": "ArrayBuffer", + "text": "Math", "kind": "localName" }, { @@ -2102,39 +2395,47 @@ "kind": "space" }, { - "text": "ArrayBufferConstructor", - "kind": "interfaceName" + "text": "Math", + "kind": "localName" } ], "documentation": [ { - "text": "Represents a raw buffer of binary data, which is used to store data for the\r\ndifferent typed arrays. ArrayBuffers cannot be read from or written to directly,\r\nbut can be passed to a typed array or DataView Object to interpret the raw\r\nbuffer as needed.", + "text": "An intrinsic object that provides basic mathematics functionality and constants.", "kind": "text" } ] }, { - "name": "DataView", - "kind": "var", - "kindModifiers": "declare", + "name": "module", + "kind": "keyword", + "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "module", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "DataView", - "kind": "localName" - }, + } + ] + }, + { + "name": "namespace", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "\n", - "kind": "lineBreak" - }, + "text": "namespace", + "kind": "keyword" + } + ] + }, + { + "name": "NaN", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { "text": "var", "kind": "keyword" @@ -2144,7 +2445,7 @@ "kind": "space" }, { - "text": "DataView", + "text": "NaN", "kind": "localName" }, { @@ -2156,68 +2457,62 @@ "kind": "space" }, { - "text": "DataViewConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], "documentation": [] }, { - "name": "Int8Array", - "kind": "var", - "kindModifiers": "declare", + "name": "never", + "kind": "keyword", + "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "never", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, + } + ] + }, + { + "name": "new", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "Int8Array", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", + "text": "new", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Int8Array", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, + } + ] + }, + { + "name": "null", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "Int8ArrayConstructor", - "kind": "interfaceName" + "text": "null", + "kind": "keyword" } - ], - "documentation": [ + ] + }, + { + "name": "number", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "A typed array of 8-bit integer values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", - "kind": "text" + "text": "number", + "kind": "keyword" } ] }, { - "name": "Uint8Array", + "name": "Number", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -2231,7 +2526,7 @@ "kind": "space" }, { - "text": "Uint8Array", + "text": "Number", "kind": "localName" }, { @@ -2247,7 +2542,7 @@ "kind": "space" }, { - "text": "Uint8Array", + "text": "Number", "kind": "localName" }, { @@ -2259,19 +2554,31 @@ "kind": "space" }, { - "text": "Uint8ArrayConstructor", + "text": "NumberConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "text": "An object that represents a number of any kind. All JavaScript numbers are 64-bit floating-point numbers.", "kind": "text" } ] }, { - "name": "Uint8ClampedArray", + "name": "object", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "object", + "kind": "keyword" + } + ] + }, + { + "name": "Object", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -2285,7 +2592,7 @@ "kind": "space" }, { - "text": "Uint8ClampedArray", + "text": "Object", "kind": "localName" }, { @@ -2301,7 +2608,7 @@ "kind": "space" }, { - "text": "Uint8ClampedArray", + "text": "Object", "kind": "localName" }, { @@ -2313,25 +2620,37 @@ "kind": "space" }, { - "text": "Uint8ClampedArrayConstructor", + "text": "ObjectConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0.\r\nIf the requested number of bytes could not be allocated an exception is raised.", + "text": "Provides functionality common to all JavaScript objects.", "kind": "text" } ] }, { - "name": "Int16Array", - "kind": "var", + "name": "package", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "package", + "kind": "keyword" + } + ] + }, + { + "name": "parseFloat", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -2339,24 +2658,32 @@ "kind": "space" }, { - "text": "Int16Array", - "kind": "localName" + "text": "parseFloat", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "string", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Int16Array", - "kind": "localName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -2367,25 +2694,44 @@ "kind": "space" }, { - "text": "Int16ArrayConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], "documentation": [ { - "text": "A typed array of 16-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "text": "Converts a string to a floating-point number.", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string that contains a floating-point number.", + "kind": "text" + } + ] + } ] }, { - "name": "Uint16Array", - "kind": "var", + "name": "parseInt", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -2393,24 +2739,44 @@ "kind": "space" }, { - "text": "Uint16Array", - "kind": "localName" + "text": "parseInt", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", + "text": "string", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", "kind": "keyword" }, + { + "text": ",", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "Uint16Array", - "kind": "localName" + "text": "radix", + "kind": "parameterName" + }, + { + "text": "?", + "kind": "punctuation" }, { "text": ":", @@ -2421,19 +2787,71 @@ "kind": "space" }, { - "text": "Uint16ArrayConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" } ], "documentation": [ { - "text": "A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "text": "Converts a string to an integer.", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string to convert into a number.", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "radix", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value between 2 and 36 that specifies the base of the number in `string`.\r\nIf this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal.\r\nAll other strings are considered decimal.", + "kind": "text" + } + ] + } ] }, { - "name": "Int32Array", + "name": "RangeError", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -2447,7 +2865,7 @@ "kind": "space" }, { - "text": "Int32Array", + "text": "RangeError", "kind": "localName" }, { @@ -2463,7 +2881,7 @@ "kind": "space" }, { - "text": "Int32Array", + "text": "RangeError", "kind": "localName" }, { @@ -2475,19 +2893,26 @@ "kind": "space" }, { - "text": "Int32ArrayConstructor", + "text": "RangeErrorConstructor", "kind": "interfaceName" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "readonly", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "A typed array of 32-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" + "text": "readonly", + "kind": "keyword" } ] }, { - "name": "Uint32Array", + "name": "ReferenceError", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -2501,7 +2926,7 @@ "kind": "space" }, { - "text": "Uint32Array", + "text": "ReferenceError", "kind": "localName" }, { @@ -2517,7 +2942,7 @@ "kind": "space" }, { - "text": "Uint32Array", + "text": "ReferenceError", "kind": "localName" }, { @@ -2529,19 +2954,14 @@ "kind": "space" }, { - "text": "Uint32ArrayConstructor", + "text": "ReferenceErrorConstructor", "kind": "interfaceName" } ], - "documentation": [ - { - "text": "A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "Float32Array", + "name": "RegExp", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -2555,7 +2975,7 @@ "kind": "space" }, { - "text": "Float32Array", + "text": "RegExp", "kind": "localName" }, { @@ -2571,7 +2991,7 @@ "kind": "space" }, { - "text": "Float32Array", + "text": "RegExp", "kind": "localName" }, { @@ -2583,19 +3003,38 @@ "kind": "space" }, { - "text": "Float32ArrayConstructor", + "text": "RegExpConstructor", "kind": "interfaceName" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "return", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "A typed array of 32-bit float values. The contents are initialized to 0. If the requested number\r\nof bytes could not be allocated an exception is raised.", - "kind": "text" + "text": "return", + "kind": "keyword" } ] }, { - "name": "Float64Array", + "name": "string", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "string", + "kind": "keyword" + } + ] + }, + { + "name": "String", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -2609,7 +3048,7 @@ "kind": "space" }, { - "text": "Float64Array", + "text": "String", "kind": "localName" }, { @@ -2625,7 +3064,7 @@ "kind": "space" }, { - "text": "Float64Array", + "text": "String", "kind": "localName" }, { @@ -2637,46 +3076,61 @@ "kind": "space" }, { - "text": "Float64ArrayConstructor", + "text": "StringConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "A typed array of 64-bit float values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", + "text": "Allows manipulation and formatting of text strings and determination and location of substrings within strings.", "kind": "text" } ] }, { - "name": "Intl", - "kind": "module", - "kindModifiers": "declare", + "name": "super", + "kind": "keyword", + "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "namespace", + "text": "super", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, + } + ] + }, + { + "name": "switch", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "Intl", - "kind": "moduleName" + "text": "switch", + "kind": "keyword" } - ], - "documentation": [] + ] }, { - "name": "anotherFunc", - "kind": "function", + "name": "symbol", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "function", + "text": "symbol", + "kind": "keyword" + } + ] + }, + { + "name": "SyntaxError", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", "kind": "keyword" }, { @@ -2684,32 +3138,24 @@ "kind": "space" }, { - "text": "anotherFunc", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" + "text": "SyntaxError", + "kind": "localName" }, { - "text": "a", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "SyntaxError", + "kind": "localName" }, { "text": ":", @@ -2720,69 +3166,105 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "SyntaxErrorConstructor", + "kind": "interfaceName" } ], "documentation": [] }, { - "name": "lambdaFoo", - "kind": "var", + "name": "this", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "this", "kind": "keyword" - }, + } + ] + }, + { + "name": "throw", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": " ", - "kind": "space" - }, + "text": "throw", + "kind": "keyword" + } + ] + }, + { + "name": "true", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "lambdaFoo", - "kind": "localName" - }, + "text": "true", + "kind": "keyword" + } + ] + }, + { + "name": "try", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": ":", - "kind": "punctuation" - }, + "text": "try", + "kind": "keyword" + } + ] + }, + { + "name": "type", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": " ", - "kind": "space" - }, + "text": "type", + "kind": "keyword" + } + ] + }, + { + "name": "TypeError", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { - "text": "(", - "kind": "punctuation" + "text": "interface", + "kind": "keyword" }, { - "text": "a", - "kind": "parameterName" + "text": " ", + "kind": "space" }, { - "text": ":", - "kind": "punctuation" + "text": "TypeError", + "kind": "localName" }, { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, { - "text": "number", + "text": "var", "kind": "keyword" }, - { - "text": ",", - "kind": "punctuation" - }, { "text": " ", "kind": "space" }, { - "text": "b", - "kind": "parameterName" + "text": "TypeError", + "kind": "localName" }, { "text": ":", @@ -2793,53 +3275,32 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=>", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" + "text": "TypeErrorConstructor", + "kind": "interfaceName" } ], - "documentation": [ - { - "text": "this is lambda comment", - "kind": "text" - }, - { - "text": "\n", - "kind": "lineBreak" - }, + "documentation": [] + }, + { + "name": "typeof", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "lambdaFoo var comment", - "kind": "text" + "text": "typeof", + "kind": "keyword" } ] }, { - "name": "lambddaNoVarComment", + "name": "Uint16Array", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -2847,24 +3308,24 @@ "kind": "space" }, { - "text": "lambddaNoVarComment", + "text": "Uint16Array", "kind": "localName" }, { - "text": ":", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": " ", - "kind": "space" + "text": "var", + "kind": "keyword" }, { - "text": "(", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": "a", - "kind": "parameterName" + "text": "Uint16Array", + "kind": "localName" }, { "text": ":", @@ -2875,43 +3336,53 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" - }, + "text": "Uint16ArrayConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ { - "text": ",", - "kind": "punctuation" + "text": "A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] + }, + { + "name": "Uint32Array", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "b", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" + "text": "Uint32Array", + "kind": "localName" }, { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, { - "text": "number", + "text": "var", "kind": "keyword" }, - { - "text": ")", - "kind": "punctuation" - }, { "text": " ", "kind": "space" }, { - "text": "=>", + "text": "Uint32Array", + "kind": "localName" + }, + { + "text": ":", "kind": "punctuation" }, { @@ -2919,25 +3390,25 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "Uint32ArrayConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "this is lambda multiplication", + "text": "A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", "kind": "text" } ] }, { - "name": "assigned", + "name": "Uint8Array", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -2945,24 +3416,24 @@ "kind": "space" }, { - "text": "assigned", + "text": "Uint8Array", "kind": "localName" }, { - "text": ":", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": " ", - "kind": "space" + "text": "var", + "kind": "keyword" }, { - "text": "(", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": "s", - "kind": "parameterName" + "text": "Uint8Array", + "kind": "localName" }, { "text": ":", @@ -2973,96 +3444,68 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" - }, + "text": "Uint8ArrayConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ { - "text": ")", - "kind": "punctuation" + "text": "A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] + }, + { + "name": "Uint8ClampedArray", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "=>", - "kind": "punctuation" + "text": "Uint8ClampedArray", + "kind": "localName" }, { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, { - "text": "number", + "text": "var", "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Summary on expression", - "kind": "text" }, { - "text": "\n", - "kind": "lineBreak" + "text": " ", + "kind": "space" }, { - "text": "On variable", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "s", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "param on expression", - "kind": "text" - } - ] + "text": "Uint8ClampedArray", + "kind": "localName" }, { - "name": "returns", - "text": [ - { - "text": "return on expression", - "kind": "text" - } - ] + "text": ":", + "kind": "punctuation" }, { - "name": "param", - "text": [ - { - "text": "s", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "the first parameter!", - "kind": "text" - } - ] + "text": " ", + "kind": "space" }, { - "name": "returns", - "text": [ - { - "text": "the parameter's length", - "kind": "text" - } - ] + "text": "Uint8ClampedArrayConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ + { + "text": "A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0.\r\nIf the requested number of bytes could not be allocated an exception is raised.", + "kind": "text" } ] }, @@ -3088,2075 +3531,401 @@ "documentation": [] }, { - "name": "break", + "name": "unique", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "break", + "text": "unique", "kind": "keyword" } ] }, { - "name": "case", + "name": "unknown", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "case", + "text": "unknown", "kind": "keyword" } ] }, { - "name": "catch", - "kind": "keyword", - "kindModifiers": "", + "name": "URIError", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "catch", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "class", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "class", - "kind": "keyword" - } - ] - }, - { - "name": "const", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "const", - "kind": "keyword" - } - ] - }, - { - "name": "continue", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "URIError", + "kind": "localName" + }, { - "text": "continue", - "kind": "keyword" - } - ] - }, - { - "name": "debugger", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "\n", + "kind": "lineBreak" + }, { - "text": "debugger", + "text": "var", "kind": "keyword" - } - ] - }, - { - "name": "default", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "default", - "kind": "keyword" - } - ] - }, - { - "name": "delete", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "delete", - "kind": "keyword" + "text": "URIError", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "URIErrorConstructor", + "kind": "interfaceName" } - ] + ], + "documentation": [] }, { - "name": "do", + "name": "var", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "do", + "text": "var", "kind": "keyword" } ] }, { - "name": "else", + "name": "void", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "else", + "text": "void", "kind": "keyword" } ] }, { - "name": "enum", + "name": "while", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "enum", + "text": "while", "kind": "keyword" } ] }, { - "name": "export", + "name": "with", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "export", + "text": "with", "kind": "keyword" } ] }, { - "name": "extends", + "name": "yield", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "extends", + "text": "yield", "kind": "keyword" } ] }, { - "name": "false", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", + "name": "escape", + "kind": "function", + "kindModifiers": "deprecated,declare", + "sortText": "z15", "displayParts": [ { - "text": "false", + "text": "function", "kind": "keyword" - } - ] - }, - { - "name": "finally", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "finally", + "text": " ", + "kind": "space" + }, + { + "text": "escape", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "string", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", "kind": "keyword" - } - ] - }, - { - "name": "for", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "for", + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", "kind": "keyword" } - ] - }, - { - "name": "function", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "function", - "kind": "keyword" + "text": "Computes a new string in which certain characters have been replaced by a hexadecimal escape sequence.", + "kind": "text" } - ] - }, - { - "name": "if", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "tags": [ { - "text": "if", - "kind": "keyword" + "name": "deprecated", + "text": [ + { + "text": "A legacy feature for browser compatibility", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string value", + "kind": "text" + } + ] } ] }, { - "name": "import", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", + "name": "unescape", + "kind": "function", + "kindModifiers": "deprecated,declare", + "sortText": "z15", "displayParts": [ { - "text": "import", + "text": "function", "kind": "keyword" - } - ] - }, - { - "name": "in", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "in", - "kind": "keyword" - } - ] - }, - { - "name": "instanceof", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "instanceof", - "kind": "keyword" - } - ] - }, - { - "name": "new", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "unescape", + "kind": "functionName" + }, { - "text": "new", - "kind": "keyword" - } - ] - }, - { - "name": "null", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "(", + "kind": "punctuation" + }, { - "text": "null", - "kind": "keyword" - } - ] - }, - { - "name": "return", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "string", + "kind": "parameterName" + }, { - "text": "return", + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", "kind": "keyword" - } - ] - }, - { - "name": "super", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "super", + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", "kind": "keyword" } - ] - }, - { - "name": "switch", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "switch", - "kind": "keyword" + "text": "Computes a new string in which hexadecimal escape sequences are replaced with the character that it represents.", + "kind": "text" } - ] - }, - { - "name": "this", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "tags": [ { - "text": "this", - "kind": "keyword" + "name": "deprecated", + "text": [ + { + "text": "A legacy feature for browser compatibility", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string value", + "kind": "text" + } + ] } ] - }, + } + ] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/completionsCommentsFunctionExpression.ts", + "position": 249, + "name": "4" + }, + "completionList": { + "isGlobalCompletion": true, + "isMemberCompletion": false, + "isNewIdentifierLocation": false, + "optionalReplacementSpan": { + "start": 249, + "length": 9 + }, + "entries": [ { - "name": "throw", - "kind": "keyword", + "name": "anotherFunc", + "kind": "function", "kindModifiers": "", - "sortText": "15", + "sortText": "11", "displayParts": [ { - "text": "throw", + "text": "function", "kind": "keyword" - } - ] - }, - { - "name": "true", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "true", + "text": " ", + "kind": "space" + }, + { + "text": "anotherFunc", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "a", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" - } - ] - }, - { - "name": "try", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "try", + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", "kind": "keyword" } - ] + ], + "documentation": [] }, { - "name": "typeof", - "kind": "keyword", + "name": "assigned", + "kind": "var", "kindModifiers": "", - "sortText": "15", + "sortText": "11", "displayParts": [ { - "text": "typeof", - "kind": "keyword" - } - ] - }, - { - "name": "var", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "var", - "kind": "keyword" - } - ] - }, - { - "name": "void", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "void", - "kind": "keyword" - } - ] - }, - { - "name": "while", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "while", - "kind": "keyword" - } - ] - }, - { - "name": "with", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "with", - "kind": "keyword" - } - ] - }, - { - "name": "implements", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "implements", - "kind": "keyword" - } - ] - }, - { - "name": "interface", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - } - ] - }, - { - "name": "let", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "let", - "kind": "keyword" - } - ] - }, - { - "name": "package", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "package", - "kind": "keyword" - } - ] - }, - { - "name": "yield", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "yield", - "kind": "keyword" - } - ] - }, - { - "name": "abstract", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "abstract", - "kind": "keyword" - } - ] - }, - { - "name": "as", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "as", - "kind": "keyword" - } - ] - }, - { - "name": "asserts", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "asserts", - "kind": "keyword" - } - ] - }, - { - "name": "any", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "any", - "kind": "keyword" - } - ] - }, - { - "name": "async", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "async", - "kind": "keyword" - } - ] - }, - { - "name": "await", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "await", - "kind": "keyword" - } - ] - }, - { - "name": "boolean", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "boolean", - "kind": "keyword" - } - ] - }, - { - "name": "declare", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "declare", - "kind": "keyword" - } - ] - }, - { - "name": "infer", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "infer", - "kind": "keyword" - } - ] - }, - { - "name": "keyof", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "keyof", - "kind": "keyword" - } - ] - }, - { - "name": "module", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "module", - "kind": "keyword" - } - ] - }, - { - "name": "namespace", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "namespace", - "kind": "keyword" - } - ] - }, - { - "name": "never", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "never", - "kind": "keyword" - } - ] - }, - { - "name": "readonly", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "readonly", - "kind": "keyword" - } - ] - }, - { - "name": "number", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "number", - "kind": "keyword" - } - ] - }, - { - "name": "object", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "object", - "kind": "keyword" - } - ] - }, - { - "name": "string", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "string", - "kind": "keyword" - } - ] - }, - { - "name": "symbol", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "symbol", - "kind": "keyword" - } - ] - }, - { - "name": "type", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "type", - "kind": "keyword" - } - ] - }, - { - "name": "unique", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "unique", - "kind": "keyword" - } - ] - }, - { - "name": "unknown", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "unknown", - "kind": "keyword" - } - ] - }, - { - "name": "bigint", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "bigint", - "kind": "keyword" - } - ] - } - ] - } - }, - { - "marker": { - "fileName": "/tests/cases/fourslash/completionsCommentsFunctionExpression.ts", - "position": 249, - "name": "4" - }, - "completionList": { - "isGlobalCompletion": true, - "isMemberCompletion": false, - "isNewIdentifierLocation": false, - "optionalReplacementSpan": { - "start": 249, - "length": 9 - }, - "entries": [ - { - "name": "globalThis", - "kind": "module", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "module", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "globalThis", - "kind": "moduleName" - } - ], - "documentation": [] - }, - { - "name": "eval", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "eval", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "x", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Evaluates JavaScript code and executes it.", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "x", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A String value that contains valid JavaScript code.", - "kind": "text" - } - ] - } - ] - }, - { - "name": "parseInt", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "parseInt", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "string", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": ",", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "radix", - "kind": "parameterName" - }, - { - "text": "?", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Converts a string to an integer.", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string to convert into a number.", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "radix", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value between 2 and 36 that specifies the base of the number in `string`.\r\nIf this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal.\r\nAll other strings are considered decimal.", - "kind": "text" - } - ] - } - ] - }, - { - "name": "parseFloat", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "parseFloat", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "string", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Converts a string to a floating-point number.", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string that contains a floating-point number.", - "kind": "text" - } - ] - } - ] - }, - { - "name": "isNaN", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "isNaN", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "number", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "boolean", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Returns a Boolean value that indicates whether a value is the reserved value NaN (not a number).", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "number", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A numeric value.", - "kind": "text" - } - ] - } - ] - }, - { - "name": "isFinite", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "isFinite", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "number", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "boolean", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Determines whether a supplied number is finite.", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "number", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Any numeric value.", - "kind": "text" - } - ] - } - ] - }, - { - "name": "decodeURI", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "decodeURI", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "encodedURI", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Gets the unencoded version of an encoded Uniform Resource Identifier (URI).", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "encodedURI", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI.", - "kind": "text" - } - ] - } - ] - }, - { - "name": "decodeURIComponent", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "decodeURIComponent", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "encodedURIComponent", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "encodedURIComponent", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI component.", - "kind": "text" - } - ] - } - ] - }, - { - "name": "encodeURI", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "encodeURI", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "uri", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Encodes a text string as a valid Uniform Resource Identifier (URI)", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "uri", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI.", - "kind": "text" - } - ] - } - ] - }, - { - "name": "encodeURIComponent", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "encodeURIComponent", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "uriComponent", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "|", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "|", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "boolean", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Encodes a text string as a valid component of a Uniform Resource Identifier (URI).", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "uriComponent", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI component.", - "kind": "text" - } - ] - } - ] - }, - { - "name": "escape", - "kind": "function", - "kindModifiers": "deprecated,declare", - "sortText": "23", - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "escape", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "string", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Computes a new string in which certain characters have been replaced by a hexadecimal escape sequence.", - "kind": "text" - } - ], - "tags": [ - { - "name": "deprecated", - "text": [ - { - "text": "A legacy feature for browser compatibility", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string value", - "kind": "text" - } - ] - } - ] - }, - { - "name": "unescape", - "kind": "function", - "kindModifiers": "deprecated,declare", - "sortText": "23", - "displayParts": [ - { - "text": "function", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "unescape", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "string", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Computes a new string in which hexadecimal escape sequences are replaced with the character that it represents.", - "kind": "text" - } - ], - "tags": [ - { - "name": "deprecated", - "text": [ - { - "text": "A legacy feature for browser compatibility", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string value", - "kind": "text" - } - ] - } - ] - }, - { - "name": "NaN", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "NaN", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "Infinity", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Infinity", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "Object", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Object", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "ObjectConstructor", - "kind": "interfaceName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=>", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "any", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "+", - "kind": "operator" - }, - { - "text": "1", - "kind": "numericLiteral" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "overload", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Object", - "kind": "localName" - } - ], - "documentation": [] - }, - { - "name": "Function", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Function", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "FunctionConstructor", - "kind": "interfaceName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "...", - "kind": "punctuation" - }, - { - "text": "args", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": "[", - "kind": "punctuation" - }, - { - "text": "]", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=>", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Function", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Function", - "kind": "localName" - } - ], - "documentation": [ - { - "text": "Creates a new function.", - "kind": "text" - } - ] - }, - { - "name": "String", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "var", + "text": "var", "kind": "keyword" }, { @@ -5164,7 +3933,7 @@ "kind": "space" }, { - "text": "String", + "text": "assigned", "kind": "localName" }, { @@ -5175,26 +3944,14 @@ "text": " ", "kind": "space" }, - { - "text": "StringConstructor", - "kind": "interfaceName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, { "text": "(", "kind": "punctuation" }, { - "text": "value", + "text": "s", "kind": "parameterName" }, - { - "text": "?", - "kind": "punctuation" - }, { "text": ":", "kind": "punctuation" @@ -5204,7 +3961,7 @@ "kind": "space" }, { - "text": "any", + "text": "string", "kind": "keyword" }, { @@ -5224,38 +3981,84 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" + } + ], + "documentation": [ + { + "text": "Summary on expression", + "kind": "text" }, { "text": "\n", "kind": "lineBreak" }, { - "text": "interface", - "kind": "keyword" + "text": "On variable", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "s", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "param on expression", + "kind": "text" + } + ] }, { - "text": " ", - "kind": "space" + "name": "returns", + "text": [ + { + "text": "return on expression", + "kind": "text" + } + ] }, { - "text": "String", - "kind": "localName" - } - ], - "documentation": [ + "name": "param", + "text": [ + { + "text": "s", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "the first parameter!", + "kind": "text" + } + ] + }, { - "text": "Allows manipulation and formatting of text strings and determination and location of substrings within strings.", - "kind": "text" + "name": "returns", + "text": [ + { + "text": "the parameter's length", + "kind": "text" + } + ] } ] }, { - "name": "Boolean", + "name": "lambdaFoo", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { "text": "var", @@ -5266,7 +4069,7 @@ "kind": "space" }, { - "text": "Boolean", + "text": "lambdaFoo", "kind": "localName" }, { @@ -5277,38 +4080,14 @@ "text": " ", "kind": "space" }, - { - "text": "BooleanConstructor", - "kind": "interfaceName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "<", - "kind": "punctuation" - }, - { - "text": "T", - "kind": "typeParameterName" - }, - { - "text": ">", - "kind": "punctuation" - }, { "text": "(", "kind": "punctuation" }, { - "text": "value", + "text": "a", "kind": "parameterName" }, - { - "text": "?", - "kind": "punctuation" - }, { "text": ":", "kind": "punctuation" @@ -5318,68 +4097,11 @@ "kind": "space" }, { - "text": "T", - "kind": "typeParameterName" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=>", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "boolean", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Boolean", - "kind": "localName" - } - ], - "documentation": [] - }, - { - "name": "Number", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "var", + "text": "number", "kind": "keyword" }, { - "text": " ", - "kind": "space" - }, - { - "text": "Number", - "kind": "localName" - }, - { - "text": ":", + "text": ",", "kind": "punctuation" }, { @@ -5387,24 +4109,8 @@ "kind": "space" }, { - "text": "NumberConstructor", - "kind": "interfaceName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "value", - "kind": "parameterName" - }, - { - "text": "?", - "kind": "punctuation" + "text": "b", + "kind": "parameterName" }, { "text": ":", @@ -5415,7 +4121,7 @@ "kind": "space" }, { - "text": "any", + "text": "number", "kind": "keyword" }, { @@ -5437,39 +4143,31 @@ { "text": "number", "kind": "keyword" + } + ], + "documentation": [ + { + "text": "this is lambda comment", + "kind": "text" }, { "text": "\n", "kind": "lineBreak" }, { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Number", - "kind": "localName" - } - ], - "documentation": [ - { - "text": "An object that represents a number of any kind. All JavaScript numbers are 64-bit floating-point numbers.", + "text": "lambdaFoo var comment", "kind": "text" } ] }, { - "name": "Math", + "name": "lambddaNoVarComment", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "var", "kind": "keyword" }, { @@ -5477,24 +4175,24 @@ "kind": "space" }, { - "text": "Math", + "text": "lambddaNoVarComment", "kind": "localName" }, { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Math", - "kind": "localName" + "text": "(", + "kind": "punctuation" + }, + { + "text": "a", + "kind": "parameterName" }, { "text": ":", @@ -5505,34 +4203,20 @@ "kind": "space" }, { - "text": "Math", - "kind": "localName" - } - ], - "documentation": [ - { - "text": "An intrinsic object that provides basic mathematics functionality and constants.", - "kind": "text" - } - ] - }, - { - "name": "Date", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "var", + "text": "number", "kind": "keyword" }, + { + "text": ",", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "Date", - "kind": "localName" + "text": "b", + "kind": "parameterName" }, { "text": ":", @@ -5543,16 +4227,8 @@ "kind": "space" }, { - "text": "DateConstructor", - "kind": "interfaceName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "(", - "kind": "punctuation" + "text": "number", + "kind": "keyword" }, { "text": ")", @@ -5571,35 +4247,43 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "interface", + "text": "number", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Date", - "kind": "localName" } ], "documentation": [ { - "text": "Enables basic storage and retrieval of dates and times.", + "text": "this is lambda multiplication", "kind": "text" } ] }, { - "name": "RegExp", + "name": "abstract", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "abstract", + "kind": "keyword" + } + ] + }, + { + "name": "any", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "any", + "kind": "keyword" + } + ] + }, + { + "name": "Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -5613,7 +4297,7 @@ "kind": "space" }, { - "text": "RegExp", + "text": "Array", "kind": "localName" }, { @@ -5625,7 +4309,7 @@ "kind": "space" }, { - "text": "RegExpConstructor", + "text": "ArrayConstructor", "kind": "interfaceName" }, { @@ -5637,9 +4321,13 @@ "kind": "punctuation" }, { - "text": "pattern", + "text": "arrayLength", "kind": "parameterName" }, + { + "text": "?", + "kind": "punctuation" + }, { "text": ":", "kind": "punctuation" @@ -5649,15 +4337,11 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" }, { - "text": " ", - "kind": "space" - }, - { - "text": "|", + "text": ")", "kind": "punctuation" }, { @@ -5665,11 +4349,7 @@ "kind": "space" }, { - "text": "RegExp", - "kind": "localName" - }, - { - "text": ")", + "text": "=>", "kind": "punctuation" }, { @@ -5677,16 +4357,16 @@ "kind": "space" }, { - "text": "=>", - "kind": "punctuation" + "text": "any", + "kind": "keyword" }, { - "text": " ", - "kind": "space" + "text": "[", + "kind": "punctuation" }, { - "text": "RegExp", - "kind": "localName" + "text": "]", + "kind": "punctuation" }, { "text": " ", @@ -5701,7 +4381,7 @@ "kind": "operator" }, { - "text": "1", + "text": "2", "kind": "numericLiteral" }, { @@ -5709,7 +4389,7 @@ "kind": "space" }, { - "text": "overload", + "text": "overloads", "kind": "text" }, { @@ -5729,88 +4409,40 @@ "kind": "space" }, { - "text": "RegExp", + "text": "Array", "kind": "localName" + }, + { + "text": "<", + "kind": "punctuation" + }, + { + "text": "T", + "kind": "typeParameterName" + }, + { + "text": ">", + "kind": "punctuation" } ], "documentation": [] }, { - "name": "Error", + "name": "ArrayBuffer", "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Error", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "ErrorConstructor", - "kind": "interfaceName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "message", - "kind": "parameterName" - }, - { - "text": "?", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", + "text": "interface", "kind": "keyword" }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=>", - "kind": "punctuation" - }, { "text": " ", "kind": "space" }, { - "text": "Error", + "text": "ArrayBuffer", "kind": "localName" }, { @@ -5818,7 +4450,7 @@ "kind": "lineBreak" }, { - "text": "interface", + "text": "var", "kind": "keyword" }, { @@ -5826,14 +4458,103 @@ "kind": "space" }, { - "text": "Error", + "text": "ArrayBuffer", "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "ArrayBufferConstructor", + "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "Represents a raw buffer of binary data, which is used to store data for the\r\ndifferent typed arrays. ArrayBuffers cannot be read from or written to directly,\r\nbut can be passed to a typed array or DataView Object to interpret the raw\r\nbuffer as needed.", + "kind": "text" + } + ] }, { - "name": "EvalError", + "name": "as", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "as", + "kind": "keyword" + } + ] + }, + { + "name": "asserts", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "asserts", + "kind": "keyword" + } + ] + }, + { + "name": "async", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "async", + "kind": "keyword" + } + ] + }, + { + "name": "await", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "await", + "kind": "keyword" + } + ] + }, + { + "name": "bigint", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "bigint", + "kind": "keyword" + } + ] + }, + { + "name": "boolean", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "boolean", + "kind": "keyword" + } + ] + }, + { + "name": "Boolean", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -5847,7 +4568,7 @@ "kind": "space" }, { - "text": "EvalError", + "text": "Boolean", "kind": "localName" }, { @@ -5859,7 +4580,7 @@ "kind": "space" }, { - "text": "EvalErrorConstructor", + "text": "BooleanConstructor", "kind": "interfaceName" }, { @@ -5867,31 +4588,31 @@ "kind": "lineBreak" }, { - "text": "(", + "text": "<", "kind": "punctuation" }, { - "text": "message", - "kind": "parameterName" + "text": "T", + "kind": "typeParameterName" }, { - "text": "?", + "text": ">", "kind": "punctuation" }, { - "text": ":", + "text": "(", "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "value", + "kind": "parameterName" }, { - "text": "string", - "kind": "keyword" + "text": "?", + "kind": "punctuation" }, { - "text": ")", + "text": ":", "kind": "punctuation" }, { @@ -5899,44 +4620,28 @@ "kind": "space" }, { - "text": "=>", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "T", + "kind": "typeParameterName" }, { - "text": "EvalError", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "(", + "text": "=>", "kind": "punctuation" }, - { - "text": "+", - "kind": "operator" - }, - { - "text": "1", - "kind": "numericLiteral" - }, { "text": " ", "kind": "space" }, { - "text": "overload", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" + "text": "boolean", + "kind": "keyword" }, { "text": "\n", @@ -5951,57 +4656,117 @@ "kind": "space" }, { - "text": "EvalError", + "text": "Boolean", "kind": "localName" } ], "documentation": [] }, { - "name": "RangeError", - "kind": "var", - "kindModifiers": "declare", + "name": "break", + "kind": "keyword", + "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "var", + "text": "break", "kind": "keyword" - }, + } + ] + }, + { + "name": "case", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": " ", - "kind": "space" - }, + "text": "case", + "kind": "keyword" + } + ] + }, + { + "name": "catch", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "RangeError", - "kind": "localName" - }, + "text": "catch", + "kind": "keyword" + } + ] + }, + { + "name": "class", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": ":", - "kind": "punctuation" + "text": "class", + "kind": "keyword" + } + ] + }, + { + "name": "const", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + } + ] + }, + { + "name": "continue", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "continue", + "kind": "keyword" + } + ] + }, + { + "name": "DataView", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "RangeErrorConstructor", - "kind": "interfaceName" + "text": "DataView", + "kind": "localName" }, { "text": "\n", "kind": "lineBreak" }, { - "text": "(", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { - "text": "message", - "kind": "parameterName" + "text": " ", + "kind": "space" }, { - "text": "?", - "kind": "punctuation" + "text": "DataView", + "kind": "localName" }, { "text": ":", @@ -6012,19 +4777,32 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" - }, + "text": "DataViewConstructor", + "kind": "interfaceName" + } + ], + "documentation": [] + }, + { + "name": "Date", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { - "text": ")", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "=>", + "text": "Date", + "kind": "localName" + }, + { + "text": ":", "kind": "punctuation" }, { @@ -6032,36 +4810,36 @@ "kind": "space" }, { - "text": "RangeError", - "kind": "localName" + "text": "DateConstructor", + "kind": "interfaceName" }, { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, { "text": "(", "kind": "punctuation" }, { - "text": "+", - "kind": "operator" - }, - { - "text": "1", - "kind": "numericLiteral" + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "overload", - "kind": "text" + "text": "=>", + "kind": "punctuation" }, { - "text": ")", - "kind": "punctuation" + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" }, { "text": "\n", @@ -6076,58 +4854,67 @@ "kind": "space" }, { - "text": "RangeError", + "text": "Date", "kind": "localName" } ], - "documentation": [] + "documentation": [ + { + "text": "Enables basic storage and retrieval of dates and times.", + "kind": "text" + } + ] }, { - "name": "ReferenceError", - "kind": "var", - "kindModifiers": "declare", + "name": "debugger", + "kind": "keyword", + "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "var", + "text": "debugger", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, + } + ] + }, + { + "name": "declare", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "ReferenceError", - "kind": "localName" - }, + "text": "declare", + "kind": "keyword" + } + ] + }, + { + "name": "decodeURI", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { - "text": ":", - "kind": "punctuation" + "text": "function", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "ReferenceErrorConstructor", - "kind": "interfaceName" - }, - { - "text": "\n", - "kind": "lineBreak" + "text": "decodeURI", + "kind": "functionName" }, { "text": "(", "kind": "punctuation" }, { - "text": "message", + "text": "encodedURI", "kind": "parameterName" }, - { - "text": "?", - "kind": "punctuation" - }, { "text": ":", "kind": "punctuation" @@ -6145,11 +4932,7 @@ "kind": "punctuation" }, { - "text": " ", - "kind": "space" - }, - { - "text": "=>", + "text": ":", "kind": "punctuation" }, { @@ -6157,64 +4940,173 @@ "kind": "space" }, { - "text": "ReferenceError", - "kind": "localName" + "text": "string", + "kind": "keyword" + } + ], + "documentation": [ + { + "text": "Gets the unencoded version of an encoded Uniform Resource Identifier (URI).", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "encodedURI", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI.", + "kind": "text" + } + ] + } + ] + }, + { + "name": "decodeURIComponent", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "function", + "kind": "keyword" }, { "text": " ", "kind": "space" }, + { + "text": "decodeURIComponent", + "kind": "functionName" + }, { "text": "(", "kind": "punctuation" }, { - "text": "+", - "kind": "operator" + "text": "encodedURIComponent", + "kind": "parameterName" }, { - "text": "1", - "kind": "numericLiteral" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "overload", - "kind": "text" + "text": "string", + "kind": "keyword" }, { "text": ")", "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "interface", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "ReferenceError", - "kind": "localName" + "text": "string", + "kind": "keyword" + } + ], + "documentation": [ + { + "text": "Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "encodedURIComponent", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI component.", + "kind": "text" + } + ] + } + ] + }, + { + "name": "default", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "default", + "kind": "keyword" + } + ] + }, + { + "name": "delete", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "delete", + "kind": "keyword" + } + ] + }, + { + "name": "do", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "do", + "kind": "keyword" + } + ] + }, + { + "name": "else", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "else", + "kind": "keyword" } - ], - "documentation": [] + ] }, { - "name": "SyntaxError", - "kind": "var", + "name": "encodeURI", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "var", + "text": "function", "kind": "keyword" }, { @@ -6222,37 +5114,17 @@ "kind": "space" }, { - "text": "SyntaxError", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "SyntaxErrorConstructor", - "kind": "interfaceName" - }, - { - "text": "\n", - "kind": "lineBreak" + "text": "encodeURI", + "kind": "functionName" }, { "text": "(", "kind": "punctuation" }, { - "text": "message", + "text": "uri", "kind": "parameterName" }, - { - "text": "?", - "kind": "punctuation" - }, { "text": ":", "kind": "punctuation" @@ -6270,76 +5142,52 @@ "kind": "punctuation" }, { - "text": " ", - "kind": "space" - }, - { - "text": "=>", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "SyntaxError", - "kind": "localName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", + "text": ":", "kind": "punctuation" }, - { - "text": "+", - "kind": "operator" - }, - { - "text": "1", - "kind": "numericLiteral" - }, { "text": " ", "kind": "space" }, { - "text": "overload", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "interface", + "text": "string", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, + } + ], + "documentation": [ { - "text": "SyntaxError", - "kind": "localName" + "text": "Encodes a text string as a valid Uniform Resource Identifier (URI)", + "kind": "text" } ], - "documentation": [] + "tags": [ + { + "name": "param", + "text": [ + { + "text": "uri", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI.", + "kind": "text" + } + ] + } + ] }, { - "name": "TypeError", - "kind": "var", + "name": "encodeURIComponent", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "var", + "text": "function", "kind": "keyword" }, { @@ -6347,37 +5195,17 @@ "kind": "space" }, { - "text": "TypeError", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "TypeErrorConstructor", - "kind": "interfaceName" - }, - { - "text": "\n", - "kind": "lineBreak" + "text": "encodeURIComponent", + "kind": "functionName" }, { "text": "(", "kind": "punctuation" }, { - "text": "message", + "text": "uriComponent", "kind": "parameterName" }, - { - "text": "?", - "kind": "punctuation" - }, { "text": ":", "kind": "punctuation" @@ -6390,16 +5218,12 @@ "text": "string", "kind": "keyword" }, - { - "text": ")", - "kind": "punctuation" - }, { "text": " ", "kind": "space" }, { - "text": "=>", + "text": "|", "kind": "punctuation" }, { @@ -6407,58 +5231,82 @@ "kind": "space" }, { - "text": "TypeError", - "kind": "localName" + "text": "number", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "(", + "text": "|", "kind": "punctuation" }, - { - "text": "+", - "kind": "operator" - }, - { - "text": "1", - "kind": "numericLiteral" - }, { "text": " ", "kind": "space" }, { - "text": "overload", - "kind": "text" + "text": "boolean", + "kind": "keyword" }, { "text": ")", "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "interface", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "TypeError", - "kind": "localName" + "text": "string", + "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Encodes a text string as a valid component of a Uniform Resource Identifier (URI).", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "uriComponent", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI component.", + "kind": "text" + } + ] + } + ] }, { - "name": "URIError", + "name": "enum", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "enum", + "kind": "keyword" + } + ] + }, + { + "name": "Error", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -6472,7 +5320,7 @@ "kind": "space" }, { - "text": "URIError", + "text": "Error", "kind": "localName" }, { @@ -6484,7 +5332,7 @@ "kind": "space" }, { - "text": "URIErrorConstructor", + "text": "ErrorConstructor", "kind": "interfaceName" }, { @@ -6516,52 +5364,24 @@ "kind": "keyword" }, { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=>", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "URIError", - "kind": "localName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", + "text": ")", "kind": "punctuation" }, { - "text": "+", - "kind": "operator" + "text": " ", + "kind": "space" }, { - "text": "1", - "kind": "numericLiteral" + "text": "=>", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "overload", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" + "text": "Error", + "kind": "localName" }, { "text": "\n", @@ -6576,20 +5396,20 @@ "kind": "space" }, { - "text": "URIError", + "text": "Error", "kind": "localName" } ], "documentation": [] }, { - "name": "JSON", - "kind": "var", + "name": "eval", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -6597,24 +5417,32 @@ "kind": "space" }, { - "text": "JSON", - "kind": "localName" + "text": "eval", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "x", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "JSON", - "kind": "localName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -6625,19 +5453,38 @@ "kind": "space" }, { - "text": "JSON", - "kind": "localName" + "text": "any", + "kind": "keyword" } ], "documentation": [ { - "text": "An intrinsic object that provides functions to convert JavaScript values to and from the JavaScript Object Notation (JSON) format.", + "text": "Evaluates JavaScript code and executes it.", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "x", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A String value that contains valid JavaScript code.", + "kind": "text" + } + ] + } ] }, { - "name": "Array", + "name": "EvalError", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -6651,7 +5498,7 @@ "kind": "space" }, { - "text": "Array", + "text": "EvalError", "kind": "localName" }, { @@ -6663,7 +5510,7 @@ "kind": "space" }, { - "text": "ArrayConstructor", + "text": "EvalErrorConstructor", "kind": "interfaceName" }, { @@ -6675,7 +5522,7 @@ "kind": "punctuation" }, { - "text": "arrayLength", + "text": "message", "kind": "parameterName" }, { @@ -6691,7 +5538,7 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" }, { @@ -6711,16 +5558,8 @@ "kind": "space" }, { - "text": "any", - "kind": "keyword" - }, - { - "text": "[", - "kind": "punctuation" - }, - { - "text": "]", - "kind": "punctuation" + "text": "EvalError", + "kind": "localName" }, { "text": " ", @@ -6735,7 +5574,7 @@ "kind": "operator" }, { - "text": "2", + "text": "1", "kind": "numericLiteral" }, { @@ -6743,7 +5582,7 @@ "kind": "space" }, { - "text": "overloads", + "text": "overload", "kind": "text" }, { @@ -6763,183 +5602,62 @@ "kind": "space" }, { - "text": "Array", + "text": "EvalError", "kind": "localName" - }, - { - "text": "<", - "kind": "punctuation" - }, - { - "text": "T", - "kind": "typeParameterName" - }, - { - "text": ">", - "kind": "punctuation" } ], "documentation": [] }, { - "name": "ArrayBuffer", - "kind": "var", - "kindModifiers": "declare", + "name": "export", + "kind": "keyword", + "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "ArrayBuffer", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", + "text": "export", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "ArrayBuffer", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "ArrayBufferConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "Represents a raw buffer of binary data, which is used to store data for the\r\ndifferent typed arrays. ArrayBuffers cannot be read from or written to directly,\r\nbut can be passed to a typed array or DataView Object to interpret the raw\r\nbuffer as needed.", - "kind": "text" } ] }, { - "name": "DataView", - "kind": "var", - "kindModifiers": "declare", + "name": "extends", + "kind": "keyword", + "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "DataView", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", + "text": "extends", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "DataView", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "DataViewConstructor", - "kind": "interfaceName" } - ], - "documentation": [] + ] }, { - "name": "Int8Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Int8Array", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Int8Array", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, + "name": "false", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "Int8ArrayConstructor", - "kind": "interfaceName" + "text": "false", + "kind": "keyword" } - ], - "documentation": [ + ] + }, + { + "name": "finally", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "A typed array of 8-bit integer values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", - "kind": "text" + "text": "finally", + "kind": "keyword" } ] }, { - "name": "Uint8Array", + "name": "Float32Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -6953,7 +5671,7 @@ "kind": "space" }, { - "text": "Uint8Array", + "text": "Float32Array", "kind": "localName" }, { @@ -6969,7 +5687,7 @@ "kind": "space" }, { - "text": "Uint8Array", + "text": "Float32Array", "kind": "localName" }, { @@ -6981,19 +5699,19 @@ "kind": "space" }, { - "text": "Uint8ArrayConstructor", + "text": "Float32ArrayConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "text": "A typed array of 32-bit float values. The contents are initialized to 0. If the requested number\r\nof bytes could not be allocated an exception is raised.", "kind": "text" } ] }, { - "name": "Uint8ClampedArray", + "name": "Float64Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -7007,7 +5725,7 @@ "kind": "space" }, { - "text": "Uint8ClampedArray", + "text": "Float64Array", "kind": "localName" }, { @@ -7023,7 +5741,7 @@ "kind": "space" }, { - "text": "Uint8ClampedArray", + "text": "Float64Array", "kind": "localName" }, { @@ -7035,25 +5753,49 @@ "kind": "space" }, { - "text": "Uint8ClampedArrayConstructor", + "text": "Float64ArrayConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0.\r\nIf the requested number of bytes could not be allocated an exception is raised.", + "text": "A typed array of 64-bit float values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", "kind": "text" } ] }, { - "name": "Int16Array", + "name": "for", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "for", + "kind": "keyword" + } + ] + }, + { + "name": "function", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + } + ] + }, + { + "name": "Function", "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "var", "kind": "keyword" }, { @@ -7061,24 +5803,36 @@ "kind": "space" }, { - "text": "Int16Array", + "text": "Function", "kind": "localName" }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "FunctionConstructor", + "kind": "interfaceName" + }, { "text": "\n", "kind": "lineBreak" }, { - "text": "var", - "kind": "keyword" + "text": "(", + "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "...", + "kind": "punctuation" }, { - "text": "Int16Array", - "kind": "localName" + "text": "args", + "kind": "parameterName" }, { "text": ":", @@ -7089,79 +5843,69 @@ "kind": "space" }, { - "text": "Int16ArrayConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "A typed array of 16-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] - }, - { - "name": "Uint16Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", + "text": "string", "kind": "keyword" }, { - "text": " ", - "kind": "space" + "text": "[", + "kind": "punctuation" }, { - "text": "Uint16Array", - "kind": "localName" + "text": "]", + "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": ")", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Uint16Array", + "text": "Function", "kind": "localName" }, { - "text": ":", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "Uint16ArrayConstructor", - "kind": "interfaceName" + "text": "Function", + "kind": "localName" } ], "documentation": [ { - "text": "A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "text": "Creates a new function.", "kind": "text" } ] }, { - "name": "Int32Array", - "kind": "var", - "kindModifiers": "declare", + "name": "globalThis", + "kind": "module", + "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "module", "kind": "keyword" }, { @@ -7169,13 +5913,78 @@ "kind": "space" }, { - "text": "Int32Array", - "kind": "localName" - }, + "text": "globalThis", + "kind": "moduleName" + } + ], + "documentation": [] + }, + { + "name": "if", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "\n", - "kind": "lineBreak" - }, + "text": "if", + "kind": "keyword" + } + ] + }, + { + "name": "implements", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "implements", + "kind": "keyword" + } + ] + }, + { + "name": "import", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "import", + "kind": "keyword" + } + ] + }, + { + "name": "in", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "in", + "kind": "keyword" + } + ] + }, + { + "name": "infer", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "infer", + "kind": "keyword" + } + ] + }, + { + "name": "Infinity", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { "text": "var", "kind": "keyword" @@ -7185,7 +5994,7 @@ "kind": "space" }, { - "text": "Int32Array", + "text": "Infinity", "kind": "localName" }, { @@ -7197,19 +6006,26 @@ "kind": "space" }, { - "text": "Int32ArrayConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "instanceof", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "A typed array of 32-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" + "text": "instanceof", + "kind": "keyword" } ] }, { - "name": "Uint32Array", + "name": "Int16Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -7223,7 +6039,7 @@ "kind": "space" }, { - "text": "Uint32Array", + "text": "Int16Array", "kind": "localName" }, { @@ -7239,7 +6055,7 @@ "kind": "space" }, { - "text": "Uint32Array", + "text": "Int16Array", "kind": "localName" }, { @@ -7251,19 +6067,19 @@ "kind": "space" }, { - "text": "Uint32ArrayConstructor", + "text": "Int16ArrayConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "text": "A typed array of 16-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", "kind": "text" } ] }, { - "name": "Float32Array", + "name": "Int32Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -7277,7 +6093,7 @@ "kind": "space" }, { - "text": "Float32Array", + "text": "Int32Array", "kind": "localName" }, { @@ -7293,7 +6109,7 @@ "kind": "space" }, { - "text": "Float32Array", + "text": "Int32Array", "kind": "localName" }, { @@ -7305,19 +6121,19 @@ "kind": "space" }, { - "text": "Float32ArrayConstructor", + "text": "Int32ArrayConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "A typed array of 32-bit float values. The contents are initialized to 0. If the requested number\r\nof bytes could not be allocated an exception is raised.", + "text": "A typed array of 32-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", "kind": "text" } ] }, { - "name": "Float64Array", + "name": "Int8Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -7331,7 +6147,7 @@ "kind": "space" }, { - "text": "Float64Array", + "text": "Int8Array", "kind": "localName" }, { @@ -7347,7 +6163,7 @@ "kind": "space" }, { - "text": "Float64Array", + "text": "Int8Array", "kind": "localName" }, { @@ -7359,17 +6175,29 @@ "kind": "space" }, { - "text": "Float64ArrayConstructor", + "text": "Int8ArrayConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "A typed array of 64-bit float values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", + "text": "A typed array of 8-bit integer values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", "kind": "text" } ] }, + { + "name": "interface", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" + } + ] + }, { "name": "Intl", "kind": "module", @@ -7392,10 +6220,10 @@ "documentation": [] }, { - "name": "anotherFunc", + "name": "isFinite", "kind": "function", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { "text": "function", @@ -7406,104 +6234,15 @@ "kind": "space" }, { - "text": "anotherFunc", + "text": "isFinite", "kind": "functionName" }, { "text": "(", "kind": "punctuation" }, - { - "text": "a", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "lambdaFoo", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "lambdaFoo", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "a", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, { "text": "number", - "kind": "keyword" - }, - { - "text": ",", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "b", "kind": "parameterName" }, { @@ -7523,11 +6262,7 @@ "kind": "punctuation" }, { - "text": " ", - "kind": "space" - }, - { - "text": "=>", + "text": ":", "kind": "punctuation" }, { @@ -7535,131 +6270,44 @@ "kind": "space" }, { - "text": "number", + "text": "boolean", "kind": "keyword" } ], "documentation": [ { - "text": "this is lambda comment", - "kind": "text" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "lambdaFoo var comment", + "text": "Determines whether a supplied number is finite.", "kind": "text" } - ] - }, - { - "name": "lambddaNoVarComment", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "lambddaNoVarComment", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "a", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": ",", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "b", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=>", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - } ], - "documentation": [ + "tags": [ { - "text": "this is lambda multiplication", - "kind": "text" + "name": "param", + "text": [ + { + "text": "number", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Any numeric value.", + "kind": "text" + } + ] } ] }, { - "name": "assigned", - "kind": "var", - "kindModifiers": "", - "sortText": "11", + "name": "isNaN", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "function", "kind": "keyword" }, { @@ -7667,23 +6315,15 @@ "kind": "space" }, { - "text": "assigned", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "isNaN", + "kind": "functionName" }, { "text": "(", "kind": "punctuation" }, { - "text": "s", + "text": "number", "kind": "parameterName" }, { @@ -7695,7 +6335,7 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" }, { @@ -7703,11 +6343,7 @@ "kind": "punctuation" }, { - "text": " ", - "kind": "space" - }, - { - "text": "=>", + "text": ":", "kind": "punctuation" }, { @@ -7715,21 +6351,13 @@ "kind": "space" }, { - "text": "number", + "text": "boolean", "kind": "keyword" } ], "documentation": [ { - "text": "Summary on expression", - "kind": "text" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "On variable", + "text": "Returns a Boolean value that indicates whether a value is the reserved value NaN (not a number).", "kind": "text" } ], @@ -7738,33 +6366,7 @@ "name": "param", "text": [ { - "text": "s", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "param on expression", - "kind": "text" - } - ] - }, - { - "name": "returns", - "text": [ - { - "text": "return on expression", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "s", + "text": "number", "kind": "parameterName" }, { @@ -7772,16 +6374,7 @@ "kind": "space" }, { - "text": "the first parameter!", - "kind": "text" - } - ] - }, - { - "name": "returns", - "text": [ - { - "text": "the parameter's length", + "text": "A numeric value.", "kind": "text" } ] @@ -7789,13 +6382,13 @@ ] }, { - "name": "undefined", + "name": "JSON", "kind": "var", - "kindModifiers": "", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -7803,272 +6396,188 @@ "kind": "space" }, { - "text": "undefined", - "kind": "propertyName" - } - ], - "documentation": [] - }, - { - "name": "break", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "break", - "kind": "keyword" - } - ] - }, - { - "name": "case", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "case", - "kind": "keyword" - } - ] - }, - { - "name": "catch", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "catch", - "kind": "keyword" - } - ] - }, - { - "name": "class", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "class", - "kind": "keyword" - } - ] - }, - { - "name": "const", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "const", - "kind": "keyword" - } - ] - }, - { - "name": "continue", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "JSON", + "kind": "localName" + }, { - "text": "continue", - "kind": "keyword" - } - ] - }, - { - "name": "debugger", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "\n", + "kind": "lineBreak" + }, { - "text": "debugger", + "text": "var", "kind": "keyword" - } - ] - }, - { - "name": "default", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "default", - "kind": "keyword" - } - ] - }, - { - "name": "delete", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "delete", - "kind": "keyword" - } - ] - }, - { - "name": "do", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "JSON", + "kind": "localName" + }, { - "text": "do", - "kind": "keyword" - } - ] - }, - { - "name": "else", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": ":", + "kind": "punctuation" + }, { - "text": "else", - "kind": "keyword" - } - ] - }, - { - "name": "enum", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "enum", - "kind": "keyword" + "text": "JSON", + "kind": "localName" } - ] - }, - { - "name": "export", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "export", - "kind": "keyword" + "text": "An intrinsic object that provides functions to convert JavaScript values to and from the JavaScript Object Notation (JSON) format.", + "kind": "text" } ] }, { - "name": "extends", + "name": "keyof", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "extends", + "text": "keyof", "kind": "keyword" } ] }, { - "name": "false", + "name": "let", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "false", + "text": "let", "kind": "keyword" } ] }, { - "name": "finally", - "kind": "keyword", - "kindModifiers": "", + "name": "Math", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "finally", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "for", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "for", + "text": " ", + "kind": "space" + }, + { + "text": "Math", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Math", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Math", + "kind": "localName" } - ] - }, - { - "name": "function", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "function", - "kind": "keyword" + "text": "An intrinsic object that provides basic mathematics functionality and constants.", + "kind": "text" } ] }, { - "name": "if", + "name": "module", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "if", + "text": "module", "kind": "keyword" } ] }, { - "name": "import", + "name": "namespace", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "import", + "text": "namespace", "kind": "keyword" } ] }, { - "name": "in", - "kind": "keyword", - "kindModifiers": "", + "name": "NaN", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "in", + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "NaN", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" } - ] + ], + "documentation": [] }, { - "name": "instanceof", + "name": "never", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "instanceof", + "text": "never", "kind": "keyword" } ] @@ -8098,364 +6607,579 @@ ] }, { - "name": "return", + "name": "number", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "return", + "text": "number", "kind": "keyword" } ] }, { - "name": "super", - "kind": "keyword", - "kindModifiers": "", + "name": "Number", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "super", + "text": "var", "kind": "keyword" - } - ] - }, - { - "name": "switch", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "switch", - "kind": "keyword" - } - ] - }, - { - "name": "this", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "this", + "text": "Number", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "NumberConstructor", + "kind": "interfaceName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "value", + "kind": "parameterName" + }, + { + "text": "?", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", "kind": "keyword" - } - ] - }, - { - "name": "throw", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "throw", + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" - } - ] - }, - { - "name": "true", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "true", + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "interface", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Number", + "kind": "localName" } - ] - }, - { - "name": "try", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "try", - "kind": "keyword" + "text": "An object that represents a number of any kind. All JavaScript numbers are 64-bit floating-point numbers.", + "kind": "text" } ] }, { - "name": "typeof", + "name": "object", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "typeof", + "text": "object", "kind": "keyword" } ] }, { - "name": "var", - "kind": "keyword", - "kindModifiers": "", + "name": "Object", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { "text": "var", "kind": "keyword" - } - ] - }, - { - "name": "void", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "void", + "text": " ", + "kind": "space" + }, + { + "text": "Object", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "ObjectConstructor", + "kind": "interfaceName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", "kind": "keyword" - } - ] - }, - { - "name": "while", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "while", + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "+", + "kind": "operator" + }, + { + "text": "1", + "kind": "numericLiteral" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "overload", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "interface", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Object", + "kind": "localName" } - ] + ], + "documentation": [] }, { - "name": "with", + "name": "package", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "with", + "text": "package", "kind": "keyword" } ] }, { - "name": "implements", - "kind": "keyword", - "kindModifiers": "", + "name": "parseFloat", + "kind": "function", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "implements", + "text": "function", "kind": "keyword" - } - ] - }, - { - "name": "interface", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "interface", + "text": " ", + "kind": "space" + }, + { + "text": "parseFloat", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "string", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", "kind": "keyword" - } - ] - }, - { - "name": "let", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "let", + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" } - ] - }, - { - "name": "package", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "package", - "kind": "keyword" + "text": "Converts a string to a floating-point number.", + "kind": "text" } - ] - }, - { - "name": "yield", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "tags": [ { - "text": "yield", - "kind": "keyword" + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string that contains a floating-point number.", + "kind": "text" + } + ] } ] }, { - "name": "abstract", - "kind": "keyword", - "kindModifiers": "", + "name": "parseInt", + "kind": "function", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "abstract", + "text": "function", "kind": "keyword" - } - ] - }, - { - "name": "as", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "as", + "text": " ", + "kind": "space" + }, + { + "text": "parseInt", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "string", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", "kind": "keyword" - } - ] - }, - { - "name": "asserts", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "asserts", + "text": ",", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "radix", + "kind": "parameterName" + }, + { + "text": "?", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" - } - ] - }, - { - "name": "any", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "any", + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" } - ] - }, - { - "name": "async", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "async", - "kind": "keyword" + "text": "Converts a string to an integer.", + "kind": "text" } - ] - }, - { - "name": "await", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "tags": [ { - "text": "await", - "kind": "keyword" + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string to convert into a number.", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "radix", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value between 2 and 36 that specifies the base of the number in `string`.\r\nIf this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal.\r\nAll other strings are considered decimal.", + "kind": "text" + } + ] } ] }, { - "name": "boolean", - "kind": "keyword", - "kindModifiers": "", + "name": "RangeError", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "boolean", + "text": "var", "kind": "keyword" - } - ] - }, - { - "name": "declare", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "RangeError", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "RangeErrorConstructor", + "kind": "interfaceName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "message", + "kind": "parameterName" + }, + { + "text": "?", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "RangeError", + "kind": "localName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, { - "text": "declare", - "kind": "keyword" - } - ] - }, - { - "name": "infer", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "+", + "kind": "operator" + }, { - "text": "infer", - "kind": "keyword" - } - ] - }, - { - "name": "keyof", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "1", + "kind": "numericLiteral" + }, { - "text": "keyof", - "kind": "keyword" - } - ] - }, - { - "name": "module", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "module", - "kind": "keyword" - } - ] - }, - { - "name": "namespace", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "overload", + "kind": "text" + }, { - "text": "namespace", - "kind": "keyword" - } - ] - }, - { - "name": "never", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": ")", + "kind": "punctuation" + }, { - "text": "never", + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "interface", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "RangeError", + "kind": "localName" } - ] + ], + "documentation": [] }, { "name": "readonly", @@ -8470,135 +7194,150 @@ ] }, { - "name": "number", - "kind": "keyword", - "kindModifiers": "", + "name": "ReferenceError", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "number", + "text": "var", "kind": "keyword" - } - ] - }, - { - "name": "object", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "object", - "kind": "keyword" - } - ] - }, - { - "name": "string", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, + { + "text": "ReferenceError", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "ReferenceErrorConstructor", + "kind": "interfaceName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "message", + "kind": "parameterName" + }, + { + "text": "?", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, { "text": "string", "kind": "keyword" - } - ] - }, - { - "name": "symbol", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "symbol", - "kind": "keyword" - } - ] - }, - { - "name": "type", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": ")", + "kind": "punctuation" + }, { - "text": "type", - "kind": "keyword" - } - ] - }, - { - "name": "unique", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "unique", + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "ReferenceError", + "kind": "localName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "+", + "kind": "operator" + }, + { + "text": "1", + "kind": "numericLiteral" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "overload", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "unknown", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, + { + "text": " ", + "kind": "space" + }, { - "text": "unknown", - "kind": "keyword" + "text": "ReferenceError", + "kind": "localName" } - ] + ], + "documentation": [] }, { - "name": "bigint", - "kind": "keyword", - "kindModifiers": "", + "name": "RegExp", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "bigint", + "text": "var", "kind": "keyword" - } - ] - } - ] - } - }, - { - "marker": { - "fileName": "/tests/cases/fourslash/completionsCommentsFunctionExpression.ts", - "position": 841, - "name": "15" - }, - "completionList": { - "isGlobalCompletion": true, - "isMemberCompletion": false, - "isNewIdentifierLocation": false, - "optionalReplacementSpan": { - "start": 841, - "length": 1 - }, - "entries": [ - { - "name": "s", - "kind": "parameter", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ + }, { - "text": "(", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": "parameter", - "kind": "text" + "text": "RegExp", + "kind": "localName" }, { - "text": ")", + "text": ":", "kind": "punctuation" }, { @@ -8606,7 +7345,19 @@ "kind": "space" }, { - "text": "s", + "text": "RegExpConstructor", + "kind": "interfaceName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "pattern", "kind": "parameterName" }, { @@ -8620,137 +7371,122 @@ { "text": "string", "kind": "keyword" - } - ], - "documentation": [ + }, { - "text": "On parameter", - "kind": "text" + "text": " ", + "kind": "space" }, { - "text": "\n", - "kind": "lineBreak" + "text": "|", + "kind": "punctuation" }, { - "text": "param on expression", - "kind": "text" + "text": " ", + "kind": "space" }, { - "text": "\n", - "kind": "lineBreak" + "text": "RegExp", + "kind": "localName" }, { - "text": "the first parameter!", - "kind": "text" - } - ], - "tags": [ + "text": ")", + "kind": "punctuation" + }, { - "name": "param", - "text": [ - { - "text": "s", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "param on expression", - "kind": "text" - } - ] + "text": " ", + "kind": "space" }, { - "name": "param", - "text": [ - { - "text": "s", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "the first parameter!", - "kind": "text" - } - ] - } - ] - }, - { - "name": "arguments", - "kind": "local var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "RegExp", + "kind": "localName" + }, + { + "text": " ", + "kind": "space" + }, { "text": "(", "kind": "punctuation" }, { - "text": "local var", - "kind": "text" + "text": "+", + "kind": "operator" }, { - "text": ")", - "kind": "punctuation" + "text": "1", + "kind": "numericLiteral" }, { "text": " ", "kind": "space" }, { - "text": "arguments", - "kind": "propertyName" + "text": "overload", + "kind": "text" }, { - "text": ":", + "text": ")", "kind": "punctuation" }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "interface", + "kind": "keyword" + }, { "text": " ", "kind": "space" }, { - "text": "IArguments", - "kind": "interfaceName" + "text": "RegExp", + "kind": "localName" } ], "documentation": [] }, { - "name": "globalThis", - "kind": "module", + "name": "return", + "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "module", + "text": "return", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, + } + ] + }, + { + "name": "string", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "globalThis", - "kind": "moduleName" + "text": "string", + "kind": "keyword" } - ], - "documentation": [] + ] }, { - "name": "eval", - "kind": "function", + "name": "String", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "var", "kind": "keyword" }, { @@ -8758,19 +7494,59 @@ "kind": "space" }, { - "text": "eval", - "kind": "functionName" + "text": "String", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "StringConstructor", + "kind": "interfaceName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "value", + "kind": "parameterName" + }, + { + "text": "?", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" }, { - "text": "(", + "text": ")", "kind": "punctuation" }, { - "text": "x", - "kind": "parameterName" + "text": " ", + "kind": "space" }, { - "text": ":", + "text": "=>", "kind": "punctuation" }, { @@ -8782,56 +7558,73 @@ "kind": "keyword" }, { - "text": ")", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "any", - "kind": "keyword" + "text": "String", + "kind": "localName" } ], "documentation": [ { - "text": "Evaluates JavaScript code and executes it.", + "text": "Allows manipulation and formatting of text strings and determination and location of substrings within strings.", "kind": "text" } - ], - "tags": [ + ] + }, + { + "name": "super", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "x", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A String value that contains valid JavaScript code.", - "kind": "text" - } - ] + "text": "super", + "kind": "keyword" } ] }, { - "name": "parseInt", - "kind": "function", + "name": "switch", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "switch", + "kind": "keyword" + } + ] + }, + { + "name": "symbol", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "symbol", + "kind": "keyword" + } + ] + }, + { + "name": "SyntaxError", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "var", "kind": "keyword" }, { @@ -8839,17 +7632,37 @@ "kind": "space" }, { - "text": "parseInt", - "kind": "functionName" + "text": "SyntaxError", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "SyntaxErrorConstructor", + "kind": "interfaceName" + }, + { + "text": "\n", + "kind": "lineBreak" }, { "text": "(", "kind": "punctuation" }, { - "text": "string", + "text": "message", "kind": "parameterName" }, + { + "text": "?", + "kind": "punctuation" + }, { "text": ":", "kind": "punctuation" @@ -8863,7 +7676,7 @@ "kind": "keyword" }, { - "text": ",", + "text": ")", "kind": "punctuation" }, { @@ -8871,111 +7684,170 @@ "kind": "space" }, { - "text": "radix", - "kind": "parameterName" + "text": "=>", + "kind": "punctuation" }, { - "text": "?", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": ":", + "text": "SyntaxError", + "kind": "localName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", "kind": "punctuation" }, + { + "text": "+", + "kind": "operator" + }, + { + "text": "1", + "kind": "numericLiteral" + }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "overload", + "kind": "text" }, { "text": ")", "kind": "punctuation" }, { - "text": ":", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "SyntaxError", + "kind": "localName" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "this", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "Converts a string to an integer.", - "kind": "text" + "text": "this", + "kind": "keyword" } - ], - "tags": [ + ] + }, + { + "name": "throw", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string to convert into a number.", - "kind": "text" - } - ] - }, + "text": "throw", + "kind": "keyword" + } + ] + }, + { + "name": "true", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "radix", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value between 2 and 36 that specifies the base of the number in `string`.\r\nIf this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal.\r\nAll other strings are considered decimal.", - "kind": "text" - } - ] + "text": "true", + "kind": "keyword" } ] }, { - "name": "parseFloat", - "kind": "function", + "name": "try", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "try", + "kind": "keyword" + } + ] + }, + { + "name": "type", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "type", + "kind": "keyword" + } + ] + }, + { + "name": "TypeError", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", - "kind": "keyword" + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "TypeError", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "parseFloat", - "kind": "functionName" + "text": "TypeErrorConstructor", + "kind": "interfaceName" + }, + { + "text": "\n", + "kind": "lineBreak" }, { "text": "(", "kind": "punctuation" }, { - "text": "string", + "text": "message", "kind": "parameterName" }, + { + "text": "?", + "kind": "punctuation" + }, { "text": ":", "kind": "punctuation" @@ -8993,7 +7865,11 @@ "kind": "punctuation" }, { - "text": ":", + "text": " ", + "kind": "space" + }, + { + "text": "=>", "kind": "punctuation" }, { @@ -9001,125 +7877,76 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Converts a string to a floating-point number.", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string that contains a floating-point number.", - "kind": "text" - } - ] - } - ] - }, - { - "name": "isNaN", - "kind": "function", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "function", - "kind": "keyword" + "text": "TypeError", + "kind": "localName" }, { "text": " ", "kind": "space" }, - { - "text": "isNaN", - "kind": "functionName" - }, { "text": "(", "kind": "punctuation" }, { - "text": "number", - "kind": "parameterName" + "text": "+", + "kind": "operator" }, { - "text": ":", - "kind": "punctuation" + "text": "1", + "kind": "numericLiteral" }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "overload", + "kind": "text" }, { "text": ")", "kind": "punctuation" }, { - "text": ":", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "boolean", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Returns a Boolean value that indicates whether a value is the reserved value NaN (not a number).", - "kind": "text" + "text": "TypeError", + "kind": "localName" } ], - "tags": [ + "documentation": [] + }, + { + "name": "typeof", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "number", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A numeric value.", - "kind": "text" - } - ] + "text": "typeof", + "kind": "keyword" } ] }, { - "name": "isFinite", - "kind": "function", + "name": "Uint16Array", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -9127,32 +7954,24 @@ "kind": "space" }, { - "text": "isFinite", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" + "text": "Uint16Array", + "kind": "localName" }, { - "text": "number", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "Uint16Array", + "kind": "localName" }, { "text": ":", @@ -9163,44 +7982,25 @@ "kind": "space" }, { - "text": "boolean", - "kind": "keyword" + "text": "Uint16ArrayConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "Determines whether a supplied number is finite.", + "text": "A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", "kind": "text" } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "number", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Any numeric value.", - "kind": "text" - } - ] - } ] }, { - "name": "decodeURI", - "kind": "function", + "name": "Uint32Array", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -9208,32 +8008,24 @@ "kind": "space" }, { - "text": "decodeURI", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" + "text": "Uint32Array", + "kind": "localName" }, { - "text": "encodedURI", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "Uint32Array", + "kind": "localName" }, { "text": ":", @@ -9244,44 +8036,25 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "Uint32ArrayConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "Gets the unencoded version of an encoded Uniform Resource Identifier (URI).", + "text": "A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", "kind": "text" } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "encodedURI", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI.", - "kind": "text" - } - ] - } ] }, { - "name": "decodeURIComponent", - "kind": "function", + "name": "Uint8Array", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -9289,32 +8062,24 @@ "kind": "space" }, { - "text": "decodeURIComponent", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" + "text": "Uint8Array", + "kind": "localName" }, { - "text": "encodedURIComponent", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "Uint8Array", + "kind": "localName" }, { "text": ":", @@ -9325,44 +8090,25 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "Uint8ArrayConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).", + "text": "A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", "kind": "text" } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "encodedURIComponent", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI component.", - "kind": "text" - } - ] - } ] }, { - "name": "encodeURI", - "kind": "function", + "name": "Uint8ClampedArray", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -9370,32 +8116,24 @@ "kind": "space" }, { - "text": "encodeURI", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" + "text": "Uint8ClampedArray", + "kind": "localName" }, { - "text": "uri", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "Uint8ClampedArray", + "kind": "localName" }, { "text": ":", @@ -9406,44 +8144,70 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "Uint8ClampedArrayConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "Encodes a text string as a valid Uniform Resource Identifier (URI)", + "text": "A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0.\r\nIf the requested number of bytes could not be allocated an exception is raised.", "kind": "text" } + ] + }, + { + "name": "undefined", + "kind": "var", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "undefined", + "kind": "propertyName" + } ], - "tags": [ + "documentation": [] + }, + { + "name": "unique", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "uri", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI.", - "kind": "text" - } - ] + "text": "unique", + "kind": "keyword" } ] }, { - "name": "encodeURIComponent", - "kind": "function", + "name": "unknown", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "unknown", + "kind": "keyword" + } + ] + }, + { + "name": "URIError", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "var", "kind": "keyword" }, { @@ -9451,17 +8215,37 @@ "kind": "space" }, { - "text": "encodeURIComponent", - "kind": "functionName" + "text": "URIError", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "URIErrorConstructor", + "kind": "interfaceName" + }, + { + "text": "\n", + "kind": "lineBreak" }, { "text": "(", "kind": "punctuation" }, { - "text": "uriComponent", + "text": "message", "kind": "parameterName" }, + { + "text": "?", + "kind": "punctuation" + }, { "text": ":", "kind": "punctuation" @@ -9474,12 +8258,16 @@ "text": "string", "kind": "keyword" }, + { + "text": ")", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "|", + "text": "=>", "kind": "punctuation" }, { @@ -9487,65 +8275,113 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "URIError", + "kind": "localName" }, { "text": " ", "kind": "space" }, { - "text": "|", + "text": "(", "kind": "punctuation" }, + { + "text": "+", + "kind": "operator" + }, + { + "text": "1", + "kind": "numericLiteral" + }, { "text": " ", "kind": "space" }, { - "text": "boolean", - "kind": "keyword" + "text": "overload", + "kind": "text" }, { "text": ")", "kind": "punctuation" }, { - "text": ":", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "URIError", + "kind": "localName" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "var", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "Encodes a text string as a valid component of a Uniform Resource Identifier (URI).", - "kind": "text" + "text": "var", + "kind": "keyword" } - ], - "tags": [ + ] + }, + { + "name": "void", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "uriComponent", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI component.", - "kind": "text" - } - ] + "text": "void", + "kind": "keyword" + } + ] + }, + { + "name": "while", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "while", + "kind": "keyword" + } + ] + }, + { + "name": "with", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "with", + "kind": "keyword" + } + ] + }, + { + "name": "yield", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "yield", + "kind": "keyword" } ] }, @@ -9553,7 +8389,7 @@ "name": "escape", "kind": "function", "kindModifiers": "deprecated,declare", - "sortText": "23", + "sortText": "z15", "displayParts": [ { "text": "function", @@ -9643,7 +8479,7 @@ "name": "unescape", "kind": "function", "kindModifiers": "deprecated,declare", - "sortText": "23", + "sortText": "z15", "displayParts": [ { "text": "function", @@ -9728,15 +8564,33 @@ ] } ] - }, + } + ] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/completionsCommentsFunctionExpression.ts", + "position": 841, + "name": "15" + }, + "completionList": { + "isGlobalCompletion": true, + "isMemberCompletion": false, + "isNewIdentifierLocation": false, + "optionalReplacementSpan": { + "start": 841, + "length": 1 + }, + "entries": [ { - "name": "NaN", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "anotherFunc", + "kind": "function", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "var", + "text": "function", "kind": "keyword" }, { @@ -9744,8 +8598,16 @@ "kind": "space" }, { - "text": "NaN", - "kind": "localName" + "text": "anotherFunc", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "a", + "kind": "parameterName" }, { "text": ":", @@ -9758,27 +8620,10 @@ { "text": "number", "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "Infinity", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "var", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" }, { - "text": "Infinity", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -9789,45 +8634,37 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" } ], "documentation": [] }, { - "name": "Object", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "arguments", + "kind": "local var", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Object", - "kind": "localName" + "text": "(", + "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": "local var", + "kind": "text" }, { - "text": "var", - "kind": "keyword" + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Object", - "kind": "localName" + "text": "arguments", + "kind": "propertyName" }, { "text": ":", @@ -9838,25 +8675,20 @@ "kind": "space" }, { - "text": "ObjectConstructor", + "text": "IArguments", "kind": "interfaceName" } ], - "documentation": [ - { - "text": "Provides functionality common to all JavaScript objects.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "Function", + "name": "assigned", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "var", "kind": "keyword" }, { @@ -9864,24 +8696,24 @@ "kind": "space" }, { - "text": "Function", + "text": "assigned", "kind": "localName" }, { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Function", - "kind": "localName" + "text": "(", + "kind": "punctuation" + }, + { + "text": "s", + "kind": "parameterName" }, { "text": ":", @@ -9892,79 +8724,107 @@ "kind": "space" }, { - "text": "FunctionConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "Creates a new function.", - "kind": "text" - } - ] - }, - { - "name": "String", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", + "text": "string", "kind": "keyword" }, + { + "text": ")", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "String", - "kind": "localName" + "text": "=>", + "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": " ", + "kind": "space" }, { - "text": "var", + "text": "number", "kind": "keyword" - }, + } + ], + "documentation": [ { - "text": " ", - "kind": "space" + "text": "Summary on expression", + "kind": "text" }, { - "text": "String", - "kind": "localName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "On variable", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "s", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "param on expression", + "kind": "text" + } + ] }, { - "text": " ", - "kind": "space" + "name": "returns", + "text": [ + { + "text": "return on expression", + "kind": "text" + } + ] }, { - "text": "StringConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ + "name": "param", + "text": [ + { + "text": "s", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "the first parameter!", + "kind": "text" + } + ] + }, { - "text": "Allows manipulation and formatting of text strings and determination and location of substrings within strings.", - "kind": "text" + "name": "returns", + "text": [ + { + "text": "the parameter's length", + "kind": "text" + } + ] } ] }, { - "name": "Boolean", + "name": "lambdaFoo", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "var", "kind": "keyword" }, { @@ -9972,24 +8832,24 @@ "kind": "space" }, { - "text": "Boolean", + "text": "lambdaFoo", "kind": "localName" }, { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Boolean", - "kind": "localName" + "text": "(", + "kind": "punctuation" + }, + { + "text": "a", + "kind": "parameterName" }, { "text": ":", @@ -10000,48 +8860,43 @@ "kind": "space" }, { - "text": "BooleanConstructor", - "kind": "interfaceName" - } - ], - "documentation": [] - }, - { - "name": "Number", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", + "text": "number", "kind": "keyword" }, + { + "text": ",", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "Number", - "kind": "localName" + "text": "b", + "kind": "parameterName" }, { - "text": "\n", - "kind": "lineBreak" + "text": ":", + "kind": "punctuation" }, { - "text": "var", + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" }, { - "text": " ", - "kind": "space" + "text": ")", + "kind": "punctuation" }, { - "text": "Number", - "kind": "localName" + "text": " ", + "kind": "space" }, { - "text": ":", + "text": "=>", "kind": "punctuation" }, { @@ -10049,25 +8904,33 @@ "kind": "space" }, { - "text": "NumberConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], "documentation": [ { - "text": "An object that represents a number of any kind. All JavaScript numbers are 64-bit floating-point numbers.", + "text": "this is lambda comment", + "kind": "text" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "lambdaFoo var comment", "kind": "text" } ] }, { - "name": "Math", + "name": "lambddaNoVarComment", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", + "text": "var", "kind": "keyword" }, { @@ -10075,24 +8938,24 @@ "kind": "space" }, { - "text": "Math", + "text": "lambddaNoVarComment", "kind": "localName" }, { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Math", - "kind": "localName" + "text": "(", + "kind": "punctuation" + }, + { + "text": "a", + "kind": "parameterName" }, { "text": ":", @@ -10103,53 +8966,43 @@ "kind": "space" }, { - "text": "Math", - "kind": "localName" - } - ], - "documentation": [ - { - "text": "An intrinsic object that provides basic mathematics functionality and constants.", - "kind": "text" - } - ] - }, - { - "name": "Date", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", + "text": "number", "kind": "keyword" }, + { + "text": ",", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "Date", - "kind": "localName" + "text": "b", + "kind": "parameterName" }, { - "text": "\n", - "kind": "lineBreak" + "text": ":", + "kind": "punctuation" }, { - "text": "var", + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" }, { - "text": " ", - "kind": "space" + "text": ")", + "kind": "punctuation" }, { - "text": "Date", - "kind": "localName" + "text": " ", + "kind": "space" }, { - "text": ":", + "text": "=>", "kind": "punctuation" }, { @@ -10157,50 +9010,42 @@ "kind": "space" }, { - "text": "DateConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], "documentation": [ { - "text": "Enables basic storage and retrieval of dates and times.", + "text": "this is lambda multiplication", "kind": "text" } ] }, { - "name": "RegExp", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "name": "s", + "kind": "parameter", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "RegExp", - "kind": "localName" + "text": "(", + "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": "parameter", + "kind": "text" }, { - "text": "var", - "kind": "keyword" + "text": ")", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "RegExp", - "kind": "localName" + "text": "s", + "kind": "parameterName" }, { "text": ":", @@ -10211,14 +9056,71 @@ "kind": "space" }, { - "text": "RegExpConstructor", - "kind": "interfaceName" + "text": "string", + "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "On parameter", + "kind": "text" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "param on expression", + "kind": "text" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "the first parameter!", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "s", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "param on expression", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "s", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "the first parameter!", + "kind": "text" + } + ] + } + ] }, { - "name": "Error", + "name": "Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -10232,9 +9134,21 @@ "kind": "space" }, { - "text": "Error", + "text": "Array", "kind": "localName" }, + { + "text": "<", + "kind": "punctuation" + }, + { + "text": "T", + "kind": "typeParameterName" + }, + { + "text": ">", + "kind": "punctuation" + }, { "text": "\n", "kind": "lineBreak" @@ -10248,7 +9162,7 @@ "kind": "space" }, { - "text": "Error", + "text": "Array", "kind": "localName" }, { @@ -10260,14 +9174,14 @@ "kind": "space" }, { - "text": "ErrorConstructor", + "text": "ArrayConstructor", "kind": "interfaceName" } ], "documentation": [] }, { - "name": "EvalError", + "name": "ArrayBuffer", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -10281,7 +9195,7 @@ "kind": "space" }, { - "text": "EvalError", + "text": "ArrayBuffer", "kind": "localName" }, { @@ -10297,7 +9211,7 @@ "kind": "space" }, { - "text": "EvalError", + "text": "ArrayBuffer", "kind": "localName" }, { @@ -10309,14 +9223,55 @@ "kind": "space" }, { - "text": "EvalErrorConstructor", + "text": "ArrayBufferConstructor", "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "Represents a raw buffer of binary data, which is used to store data for the\r\ndifferent typed arrays. ArrayBuffers cannot be read from or written to directly,\r\nbut can be passed to a typed array or DataView Object to interpret the raw\r\nbuffer as needed.", + "kind": "text" + } + ] }, { - "name": "RangeError", + "name": "as", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "as", + "kind": "keyword" + } + ] + }, + { + "name": "async", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "async", + "kind": "keyword" + } + ] + }, + { + "name": "await", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "await", + "kind": "keyword" + } + ] + }, + { + "name": "Boolean", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -10330,7 +9285,7 @@ "kind": "space" }, { - "text": "RangeError", + "text": "Boolean", "kind": "localName" }, { @@ -10346,7 +9301,7 @@ "kind": "space" }, { - "text": "RangeError", + "text": "Boolean", "kind": "localName" }, { @@ -10358,14 +9313,86 @@ "kind": "space" }, { - "text": "RangeErrorConstructor", + "text": "BooleanConstructor", "kind": "interfaceName" } ], "documentation": [] }, { - "name": "ReferenceError", + "name": "break", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "break", + "kind": "keyword" + } + ] + }, + { + "name": "case", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "case", + "kind": "keyword" + } + ] + }, + { + "name": "catch", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "catch", + "kind": "keyword" + } + ] + }, + { + "name": "class", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + } + ] + }, + { + "name": "const", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + } + ] + }, + { + "name": "continue", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "continue", + "kind": "keyword" + } + ] + }, + { + "name": "DataView", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -10379,7 +9406,7 @@ "kind": "space" }, { - "text": "ReferenceError", + "text": "DataView", "kind": "localName" }, { @@ -10395,7 +9422,7 @@ "kind": "space" }, { - "text": "ReferenceError", + "text": "DataView", "kind": "localName" }, { @@ -10407,14 +9434,14 @@ "kind": "space" }, { - "text": "ReferenceErrorConstructor", + "text": "DataViewConstructor", "kind": "interfaceName" } ], "documentation": [] }, { - "name": "SyntaxError", + "name": "Date", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -10428,7 +9455,7 @@ "kind": "space" }, { - "text": "SyntaxError", + "text": "Date", "kind": "localName" }, { @@ -10444,7 +9471,7 @@ "kind": "space" }, { - "text": "SyntaxError", + "text": "Date", "kind": "localName" }, { @@ -10456,20 +9483,37 @@ "kind": "space" }, { - "text": "SyntaxErrorConstructor", + "text": "DateConstructor", "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "Enables basic storage and retrieval of dates and times.", + "kind": "text" + } + ] }, { - "name": "TypeError", - "kind": "var", + "name": "debugger", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "debugger", + "kind": "keyword" + } + ] + }, + { + "name": "decodeURI", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -10477,24 +9521,32 @@ "kind": "space" }, { - "text": "TypeError", - "kind": "localName" + "text": "decodeURI", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "encodedURI", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "TypeError", - "kind": "localName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -10505,20 +9557,44 @@ "kind": "space" }, { - "text": "TypeErrorConstructor", - "kind": "interfaceName" + "text": "string", + "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Gets the unencoded version of an encoded Uniform Resource Identifier (URI).", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "encodedURI", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI.", + "kind": "text" + } + ] + } + ] }, { - "name": "URIError", - "kind": "var", + "name": "decodeURIComponent", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -10526,24 +9602,32 @@ "kind": "space" }, { - "text": "URIError", - "kind": "localName" + "text": "decodeURIComponent", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": "encodedURIComponent", + "kind": "parameterName" }, { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "URIError", - "kind": "localName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -10554,20 +9638,92 @@ "kind": "space" }, { - "text": "URIErrorConstructor", - "kind": "interfaceName" + "text": "string", + "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "encodedURIComponent", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI component.", + "kind": "text" + } + ] + } + ] }, { - "name": "JSON", - "kind": "var", + "name": "default", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "default", + "kind": "keyword" + } + ] + }, + { + "name": "delete", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "delete", + "kind": "keyword" + } + ] + }, + { + "name": "do", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "do", + "kind": "keyword" + } + ] + }, + { + "name": "else", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "else", + "kind": "keyword" + } + ] + }, + { + "name": "encodeURI", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -10575,24 +9731,32 @@ "kind": "space" }, { - "text": "JSON", - "kind": "localName" + "text": "encodeURI", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "uri", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "JSON", - "kind": "localName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -10603,25 +9767,44 @@ "kind": "space" }, { - "text": "JSON", - "kind": "localName" + "text": "string", + "kind": "keyword" } ], "documentation": [ { - "text": "An intrinsic object that provides functions to convert JavaScript values to and from the JavaScript Object Notation (JSON) format.", + "text": "Encodes a text string as a valid Uniform Resource Identifier (URI)", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "uri", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI.", + "kind": "text" + } + ] + } ] }, { - "name": "Array", - "kind": "var", + "name": "encodeURIComponent", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -10629,27 +9812,27 @@ "kind": "space" }, { - "text": "Array", - "kind": "localName" + "text": "encodeURIComponent", + "kind": "functionName" }, { - "text": "<", + "text": "(", "kind": "punctuation" }, { - "text": "T", - "kind": "typeParameterName" + "text": "uriComponent", + "kind": "parameterName" }, { - "text": ">", + "text": ":", "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": " ", + "kind": "space" }, { - "text": "var", + "text": "string", "kind": "keyword" }, { @@ -10657,11 +9840,7 @@ "kind": "space" }, { - "text": "Array", - "kind": "localName" - }, - { - "text": ":", + "text": "|", "kind": "punctuation" }, { @@ -10669,20 +9848,7 @@ "kind": "space" }, { - "text": "ArrayConstructor", - "kind": "interfaceName" - } - ], - "documentation": [] - }, - { - "name": "ArrayBuffer", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", + "text": "number", "kind": "keyword" }, { @@ -10690,24 +9856,20 @@ "kind": "space" }, { - "text": "ArrayBuffer", - "kind": "localName" + "text": "|", + "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": " ", + "kind": "space" }, { - "text": "var", + "text": "boolean", "kind": "keyword" }, { - "text": " ", - "kind": "space" - }, - { - "text": "ArrayBuffer", - "kind": "localName" + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -10718,19 +9880,50 @@ "kind": "space" }, { - "text": "ArrayBufferConstructor", - "kind": "interfaceName" + "text": "string", + "kind": "keyword" } ], "documentation": [ { - "text": "Represents a raw buffer of binary data, which is used to store data for the\r\ndifferent typed arrays. ArrayBuffers cannot be read from or written to directly,\r\nbut can be passed to a typed array or DataView Object to interpret the raw\r\nbuffer as needed.", + "text": "Encodes a text string as a valid component of a Uniform Resource Identifier (URI).", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "uriComponent", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI component.", + "kind": "text" + } + ] + } ] }, { - "name": "DataView", + "name": "enum", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "enum", + "kind": "keyword" + } + ] + }, + { + "name": "Error", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -10744,7 +9937,7 @@ "kind": "space" }, { - "text": "DataView", + "text": "Error", "kind": "localName" }, { @@ -10760,7 +9953,7 @@ "kind": "space" }, { - "text": "DataView", + "text": "Error", "kind": "localName" }, { @@ -10772,20 +9965,20 @@ "kind": "space" }, { - "text": "DataViewConstructor", + "text": "ErrorConstructor", "kind": "interfaceName" } ], "documentation": [] }, { - "name": "Int8Array", - "kind": "var", + "name": "eval", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -10793,24 +9986,32 @@ "kind": "space" }, { - "text": "Int8Array", - "kind": "localName" + "text": "eval", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "x", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Int8Array", - "kind": "localName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -10821,19 +10022,38 @@ "kind": "space" }, { - "text": "Int8ArrayConstructor", - "kind": "interfaceName" + "text": "any", + "kind": "keyword" } ], "documentation": [ { - "text": "A typed array of 8-bit integer values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", + "text": "Evaluates JavaScript code and executes it.", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "x", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A String value that contains valid JavaScript code.", + "kind": "text" + } + ] + } ] }, { - "name": "Uint8Array", + "name": "EvalError", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -10847,7 +10067,7 @@ "kind": "space" }, { - "text": "Uint8Array", + "text": "EvalError", "kind": "localName" }, { @@ -10863,7 +10083,7 @@ "kind": "space" }, { - "text": "Uint8Array", + "text": "EvalError", "kind": "localName" }, { @@ -10875,19 +10095,62 @@ "kind": "space" }, { - "text": "Uint8ArrayConstructor", + "text": "EvalErrorConstructor", "kind": "interfaceName" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "export", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" + "text": "export", + "kind": "keyword" } ] }, { - "name": "Uint8ClampedArray", + "name": "extends", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "extends", + "kind": "keyword" + } + ] + }, + { + "name": "false", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "false", + "kind": "keyword" + } + ] + }, + { + "name": "finally", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "finally", + "kind": "keyword" + } + ] + }, + { + "name": "Float32Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -10901,7 +10164,7 @@ "kind": "space" }, { - "text": "Uint8ClampedArray", + "text": "Float32Array", "kind": "localName" }, { @@ -10917,7 +10180,7 @@ "kind": "space" }, { - "text": "Uint8ClampedArray", + "text": "Float32Array", "kind": "localName" }, { @@ -10929,19 +10192,19 @@ "kind": "space" }, { - "text": "Uint8ClampedArrayConstructor", + "text": "Float32ArrayConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0.\r\nIf the requested number of bytes could not be allocated an exception is raised.", + "text": "A typed array of 32-bit float values. The contents are initialized to 0. If the requested number\r\nof bytes could not be allocated an exception is raised.", "kind": "text" } ] }, { - "name": "Int16Array", + "name": "Float64Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -10955,7 +10218,7 @@ "kind": "space" }, { - "text": "Int16Array", + "text": "Float64Array", "kind": "localName" }, { @@ -10971,7 +10234,7 @@ "kind": "space" }, { - "text": "Int16Array", + "text": "Float64Array", "kind": "localName" }, { @@ -10983,19 +10246,43 @@ "kind": "space" }, { - "text": "Int16ArrayConstructor", + "text": "Float64ArrayConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "A typed array of 16-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "text": "A typed array of 64-bit float values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", "kind": "text" } ] }, { - "name": "Uint16Array", + "name": "for", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "for", + "kind": "keyword" + } + ] + }, + { + "name": "function", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + } + ] + }, + { + "name": "Function", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -11009,7 +10296,7 @@ "kind": "space" }, { - "text": "Uint16Array", + "text": "Function", "kind": "localName" }, { @@ -11025,7 +10312,7 @@ "kind": "space" }, { - "text": "Uint16Array", + "text": "Function", "kind": "localName" }, { @@ -11037,25 +10324,25 @@ "kind": "space" }, { - "text": "Uint16ArrayConstructor", + "text": "FunctionConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "text": "Creates a new function.", "kind": "text" } ] }, { - "name": "Int32Array", - "kind": "var", - "kindModifiers": "declare", + "name": "globalThis", + "kind": "module", + "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "module", "kind": "keyword" }, { @@ -11063,67 +10350,66 @@ "kind": "space" }, { - "text": "Int32Array", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, + "text": "globalThis", + "kind": "moduleName" + } + ], + "documentation": [] + }, + { + "name": "if", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "var", + "text": "if", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Int32Array", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, + } + ] + }, + { + "name": "implements", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": " ", - "kind": "space" - }, + "text": "implements", + "kind": "keyword" + } + ] + }, + { + "name": "import", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "Int32ArrayConstructor", - "kind": "interfaceName" + "text": "import", + "kind": "keyword" } - ], - "documentation": [ + ] + }, + { + "name": "in", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "A typed array of 32-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" + "text": "in", + "kind": "keyword" } ] }, { - "name": "Uint32Array", + "name": "Infinity", "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Uint32Array", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, { "text": "var", "kind": "keyword" @@ -11133,7 +10419,7 @@ "kind": "space" }, { - "text": "Uint32Array", + "text": "Infinity", "kind": "localName" }, { @@ -11145,19 +10431,26 @@ "kind": "space" }, { - "text": "Uint32ArrayConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "instanceof", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" + "text": "instanceof", + "kind": "keyword" } ] }, { - "name": "Float32Array", + "name": "Int16Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -11171,7 +10464,7 @@ "kind": "space" }, { - "text": "Float32Array", + "text": "Int16Array", "kind": "localName" }, { @@ -11187,7 +10480,7 @@ "kind": "space" }, { - "text": "Float32Array", + "text": "Int16Array", "kind": "localName" }, { @@ -11199,19 +10492,19 @@ "kind": "space" }, { - "text": "Float32ArrayConstructor", + "text": "Int16ArrayConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "A typed array of 32-bit float values. The contents are initialized to 0. If the requested number\r\nof bytes could not be allocated an exception is raised.", + "text": "A typed array of 16-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", "kind": "text" } ] }, { - "name": "Float64Array", + "name": "Int32Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -11225,7 +10518,7 @@ "kind": "space" }, { - "text": "Float64Array", + "text": "Int32Array", "kind": "localName" }, { @@ -11241,7 +10534,7 @@ "kind": "space" }, { - "text": "Float64Array", + "text": "Int32Array", "kind": "localName" }, { @@ -11253,46 +10546,25 @@ "kind": "space" }, { - "text": "Float64ArrayConstructor", + "text": "Int32ArrayConstructor", "kind": "interfaceName" } ], "documentation": [ { - "text": "A typed array of 64-bit float values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", + "text": "A typed array of 32-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", "kind": "text" } ] }, { - "name": "Intl", - "kind": "module", + "name": "Int8Array", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "namespace", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Intl", - "kind": "moduleName" - } - ], - "documentation": [] - }, - { - "name": "anotherFunc", - "kind": "function", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -11300,54 +10572,13 @@ "kind": "space" }, { - "text": "anotherFunc", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "a", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" + "text": "Int8Array", + "kind": "localName" }, { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, - { - "text": "string", - "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "lambdaFoo", - "kind": "var", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ { "text": "var", "kind": "keyword" @@ -11357,7 +10588,7 @@ "kind": "space" }, { - "text": "lambdaFoo", + "text": "Int8Array", "kind": "localName" }, { @@ -11369,141 +10600,74 @@ "kind": "space" }, { - "text": "(", - "kind": "punctuation" - }, - { - "text": "a", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": ",", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "b", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "=>", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "number", - "kind": "keyword" + "text": "Int8ArrayConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "this is lambda comment", - "kind": "text" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "lambdaFoo var comment", + "text": "A typed array of 8-bit integer values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", "kind": "text" } ] }, { - "name": "lambddaNoVarComment", - "kind": "var", + "name": "interface", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "lambddaNoVarComment", - "kind": "localName" - }, + } + ] + }, + { + "name": "Intl", + "kind": "module", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { - "text": ":", - "kind": "punctuation" + "text": "namespace", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "(", - "kind": "punctuation" - }, - { - "text": "a", - "kind": "parameterName" - }, + "text": "Intl", + "kind": "moduleName" + } + ], + "documentation": [] + }, + { + "name": "isFinite", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { - "text": ":", - "kind": "punctuation" + "text": "function", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "isFinite", + "kind": "functionName" }, { - "text": ",", + "text": "(", "kind": "punctuation" }, { - "text": " ", - "kind": "space" - }, - { - "text": "b", + "text": "number", "kind": "parameterName" }, { @@ -11523,11 +10687,7 @@ "kind": "punctuation" }, { - "text": " ", - "kind": "space" - }, - { - "text": "=>", + "text": ":", "kind": "punctuation" }, { @@ -11535,25 +10695,44 @@ "kind": "space" }, { - "text": "number", + "text": "boolean", "kind": "keyword" } ], "documentation": [ { - "text": "this is lambda multiplication", + "text": "Determines whether a supplied number is finite.", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "number", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Any numeric value.", + "kind": "text" + } + ] + } ] }, { - "name": "assigned", - "kind": "var", - "kindModifiers": "", - "sortText": "11", + "name": "isNaN", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { - "text": "var", + "text": "function", "kind": "keyword" }, { @@ -11561,23 +10740,15 @@ "kind": "space" }, { - "text": "assigned", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "isNaN", + "kind": "functionName" }, { "text": "(", "kind": "punctuation" }, { - "text": "s", + "text": "number", "kind": "parameterName" }, { @@ -11589,7 +10760,7 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" }, { @@ -11597,11 +10768,7 @@ "kind": "punctuation" }, { - "text": " ", - "kind": "space" - }, - { - "text": "=>", + "text": ":", "kind": "punctuation" }, { @@ -11609,21 +10776,13 @@ "kind": "space" }, { - "text": "number", + "text": "boolean", "kind": "keyword" } ], "documentation": [ { - "text": "Summary on expression", - "kind": "text" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "On variable", + "text": "Returns a Boolean value that indicates whether a value is the reserved value NaN (not a number).", "kind": "text" } ], @@ -11632,33 +10791,7 @@ "name": "param", "text": [ { - "text": "s", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "param on expression", - "kind": "text" - } - ] - }, - { - "name": "returns", - "text": [ - { - "text": "return on expression", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "s", + "text": "number", "kind": "parameterName" }, { @@ -11666,16 +10799,7 @@ "kind": "space" }, { - "text": "the first parameter!", - "kind": "text" - } - ] - }, - { - "name": "returns", - "text": [ - { - "text": "the parameter's length", + "text": "A numeric value.", "kind": "text" } ] @@ -11683,13 +10807,13 @@ ] }, { - "name": "undefined", + "name": "JSON", "kind": "var", - "kindModifiers": "", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -11697,587 +10821,837 @@ "kind": "space" }, { - "text": "undefined", - "kind": "propertyName" - } - ], - "documentation": [] - }, - { - "name": "break", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "break", - "kind": "keyword" - } - ] - }, - { - "name": "case", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "case", - "kind": "keyword" - } - ] - }, - { - "name": "catch", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "JSON", + "kind": "localName" + }, { - "text": "catch", - "kind": "keyword" - } - ] - }, - { - "name": "class", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "\n", + "kind": "lineBreak" + }, { - "text": "class", + "text": "var", "kind": "keyword" - } - ] - }, - { - "name": "const", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "const", - "kind": "keyword" - } - ] - }, - { - "name": "continue", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "continue", - "kind": "keyword" - } - ] - }, - { - "name": "debugger", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "JSON", + "kind": "localName" + }, { - "text": "debugger", - "kind": "keyword" - } - ] - }, - { - "name": "default", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": ":", + "kind": "punctuation" + }, { - "text": "default", - "kind": "keyword" - } - ] - }, - { - "name": "delete", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "delete", - "kind": "keyword" + "text": "JSON", + "kind": "localName" } - ] - }, - { - "name": "do", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "do", - "kind": "keyword" + "text": "An intrinsic object that provides functions to convert JavaScript values to and from the JavaScript Object Notation (JSON) format.", + "kind": "text" } ] }, { - "name": "else", + "name": "let", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "else", + "text": "let", "kind": "keyword" } ] }, { - "name": "enum", - "kind": "keyword", - "kindModifiers": "", + "name": "Math", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "enum", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "export", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "export", + "text": " ", + "kind": "space" + }, + { + "text": "Math", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Math", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Math", + "kind": "localName" } - ] - }, - { - "name": "extends", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "extends", - "kind": "keyword" + "text": "An intrinsic object that provides basic mathematics functionality and constants.", + "kind": "text" } ] }, { - "name": "false", - "kind": "keyword", - "kindModifiers": "", + "name": "NaN", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "false", + "text": "var", "kind": "keyword" - } - ] - }, - { - "name": "finally", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "finally", + "text": " ", + "kind": "space" + }, + { + "text": "NaN", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" } - ] + ], + "documentation": [] }, { - "name": "for", + "name": "new", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "for", + "text": "new", "kind": "keyword" } ] }, { - "name": "function", + "name": "null", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "null", "kind": "keyword" } ] }, { - "name": "if", - "kind": "keyword", - "kindModifiers": "", + "name": "Number", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "if", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "import", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "import", + "text": " ", + "kind": "space" + }, + { + "text": "Number", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Number", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "NumberConstructor", + "kind": "interfaceName" } - ] - }, - { - "name": "in", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "in", - "kind": "keyword" + "text": "An object that represents a number of any kind. All JavaScript numbers are 64-bit floating-point numbers.", + "kind": "text" } ] }, { - "name": "instanceof", - "kind": "keyword", - "kindModifiers": "", + "name": "Object", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "instanceof", + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Object", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Object", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "ObjectConstructor", + "kind": "interfaceName" } - ] - }, - { - "name": "new", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "new", - "kind": "keyword" + "text": "Provides functionality common to all JavaScript objects.", + "kind": "text" } ] }, { - "name": "null", + "name": "package", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "null", + "text": "package", "kind": "keyword" } ] }, { - "name": "return", - "kind": "keyword", - "kindModifiers": "", + "name": "parseFloat", + "kind": "function", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "return", + "text": "function", "kind": "keyword" - } - ] - }, - { - "name": "super", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "super", + "text": " ", + "kind": "space" + }, + { + "text": "parseFloat", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "string", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" } + ], + "documentation": [ + { + "text": "Converts a string to a floating-point number.", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string that contains a floating-point number.", + "kind": "text" + } + ] + } ] }, { - "name": "switch", - "kind": "keyword", - "kindModifiers": "", + "name": "parseInt", + "kind": "function", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "switch", + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "parseInt", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "string", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": ",", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "radix", + "kind": "parameterName" + }, + { + "text": "?", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", "kind": "keyword" } + ], + "documentation": [ + { + "text": "Converts a string to an integer.", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string to convert into a number.", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "radix", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value between 2 and 36 that specifies the base of the number in `string`.\r\nIf this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal.\r\nAll other strings are considered decimal.", + "kind": "text" + } + ] + } ] }, { - "name": "this", - "kind": "keyword", - "kindModifiers": "", + "name": "RangeError", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "this", - "kind": "keyword" + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "RangeError", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "RangeError", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "RangeErrorConstructor", + "kind": "interfaceName" } - ] + ], + "documentation": [] }, { - "name": "throw", - "kind": "keyword", - "kindModifiers": "", + "name": "ReferenceError", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "throw", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "true", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "true", - "kind": "keyword" - } - ] - }, - { - "name": "try", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "try", + "text": "ReferenceError", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "ReferenceError", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "ReferenceErrorConstructor", + "kind": "interfaceName" } - ] + ], + "documentation": [] }, { - "name": "typeof", - "kind": "keyword", - "kindModifiers": "", + "name": "RegExp", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "typeof", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "var", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "RegExp", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, { "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "RegExp", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "RegExpConstructor", + "kind": "interfaceName" } - ] + ], + "documentation": [] }, { - "name": "void", + "name": "return", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "void", + "text": "return", "kind": "keyword" } ] }, { - "name": "while", - "kind": "keyword", - "kindModifiers": "", + "name": "String", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "while", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "with", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "with", + "text": " ", + "kind": "space" + }, + { + "text": "String", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "String", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "StringConstructor", + "kind": "interfaceName" } - ] - }, - { - "name": "implements", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "implements", - "kind": "keyword" + "text": "Allows manipulation and formatting of text strings and determination and location of substrings within strings.", + "kind": "text" } ] }, { - "name": "interface", + "name": "super", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "super", "kind": "keyword" } ] }, { - "name": "let", + "name": "switch", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "let", + "text": "switch", "kind": "keyword" } ] }, { - "name": "package", - "kind": "keyword", - "kindModifiers": "", + "name": "SyntaxError", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "package", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "yield", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "yield", + "text": " ", + "kind": "space" + }, + { + "text": "SyntaxError", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "SyntaxError", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "SyntaxErrorConstructor", + "kind": "interfaceName" } - ] + ], + "documentation": [] }, { - "name": "as", + "name": "this", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "as", + "text": "this", "kind": "keyword" } ] }, { - "name": "async", + "name": "throw", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "async", + "text": "throw", "kind": "keyword" } ] }, { - "name": "await", + "name": "true", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "await", + "text": "true", "kind": "keyword" } ] - } - ] - } - }, - { - "marker": { - "fileName": "/tests/cases/fourslash/completionsCommentsFunctionExpression.ts", - "position": 861, - "name": "17" - }, - "completionList": { - "isGlobalCompletion": true, - "isMemberCompletion": false, - "isNewIdentifierLocation": false, - "optionalReplacementSpan": { - "start": 853, - "length": 8 - }, - "entries": [ + }, { - "name": "globalThis", - "kind": "module", + "name": "try", + "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "module", + "text": "try", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "globalThis", - "kind": "moduleName" } - ], - "documentation": [] + ] }, { - "name": "eval", - "kind": "function", + "name": "TypeError", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -12285,32 +11659,24 @@ "kind": "space" }, { - "text": "eval", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" + "text": "TypeError", + "kind": "localName" }, { - "text": "x", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "TypeError", + "kind": "localName" }, { "text": ":", @@ -12321,44 +11687,32 @@ "kind": "space" }, { - "text": "any", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Evaluates JavaScript code and executes it.", - "kind": "text" + "text": "TypeErrorConstructor", + "kind": "interfaceName" } ], - "tags": [ + "documentation": [] + }, + { + "name": "typeof", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "x", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A String value that contains valid JavaScript code.", - "kind": "text" - } - ] + "text": "typeof", + "kind": "keyword" } ] }, { - "name": "parseInt", - "kind": "function", + "name": "Uint16Array", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -12366,60 +11720,24 @@ "kind": "space" }, { - "text": "parseInt", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "string", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" + "text": "Uint16Array", + "kind": "localName" }, { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, { - "text": "string", + "text": "var", "kind": "keyword" }, - { - "text": ",", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "radix", - "kind": "parameterName" - }, - { - "text": "?", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "Uint16Array", + "kind": "localName" }, { "text": ":", @@ -12430,61 +11748,25 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "Uint16ArrayConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "Converts a string to an integer.", + "text": "A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", "kind": "text" } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string to convert into a number.", - "kind": "text" - } - ] - }, - { - "name": "param", - "text": [ - { - "text": "radix", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value between 2 and 36 that specifies the base of the number in `string`.\r\nIf this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal.\r\nAll other strings are considered decimal.", - "kind": "text" - } - ] - } ] }, { - "name": "parseFloat", - "kind": "function", + "name": "Uint32Array", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -12492,32 +11774,24 @@ "kind": "space" }, { - "text": "parseFloat", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" + "text": "Uint32Array", + "kind": "localName" }, { - "text": "string", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "string", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "Uint32Array", + "kind": "localName" }, { "text": ":", @@ -12528,44 +11802,25 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Converts a string to a floating-point number.", - "kind": "text" + "text": "Uint32ArrayConstructor", + "kind": "interfaceName" } ], - "tags": [ + "documentation": [ { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string that contains a floating-point number.", - "kind": "text" - } - ] + "text": "A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" } ] }, { - "name": "isNaN", - "kind": "function", + "name": "Uint8Array", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -12573,32 +11828,24 @@ "kind": "space" }, { - "text": "isNaN", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" + "text": "Uint8Array", + "kind": "localName" }, { - "text": "number", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "Uint8Array", + "kind": "localName" }, { "text": ":", @@ -12609,44 +11856,25 @@ "kind": "space" }, { - "text": "boolean", - "kind": "keyword" + "text": "Uint8ArrayConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "Returns a Boolean value that indicates whether a value is the reserved value NaN (not a number).", + "text": "A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", "kind": "text" } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "number", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A numeric value.", - "kind": "text" - } - ] - } ] }, { - "name": "isFinite", - "kind": "function", + "name": "Uint8ClampedArray", + "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "interface", "kind": "keyword" }, { @@ -12654,32 +11882,24 @@ "kind": "space" }, { - "text": "isFinite", - "kind": "functionName" - }, - { - "text": "(", - "kind": "punctuation" + "text": "Uint8ClampedArray", + "kind": "localName" }, { - "text": "number", - "kind": "parameterName" + "text": "\n", + "kind": "lineBreak" }, { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" + "text": "Uint8ClampedArray", + "kind": "localName" }, { "text": ":", @@ -12690,44 +11910,25 @@ "kind": "space" }, { - "text": "boolean", - "kind": "keyword" + "text": "Uint8ClampedArrayConstructor", + "kind": "interfaceName" } ], "documentation": [ { - "text": "Determines whether a supplied number is finite.", + "text": "A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0.\r\nIf the requested number of bytes could not be allocated an exception is raised.", "kind": "text" } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "number", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Any numeric value.", - "kind": "text" - } - ] - } ] }, { - "name": "decodeURI", - "kind": "function", - "kindModifiers": "declare", + "name": "undefined", + "kind": "var", + "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "var", "kind": "keyword" }, { @@ -12735,32 +11936,45 @@ "kind": "space" }, { - "text": "decodeURI", - "kind": "functionName" - }, + "text": "undefined", + "kind": "propertyName" + } + ], + "documentation": [] + }, + { + "name": "URIError", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { - "text": "(", - "kind": "punctuation" + "text": "interface", + "kind": "keyword" }, { - "text": "encodedURI", - "kind": "parameterName" + "text": " ", + "kind": "space" }, { - "text": ":", - "kind": "punctuation" + "text": "URIError", + "kind": "localName" }, { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, { - "text": "string", + "text": "var", "kind": "keyword" }, { - "text": ")", - "kind": "punctuation" + "text": " ", + "kind": "space" + }, + { + "text": "URIError", + "kind": "localName" }, { "text": ":", @@ -12771,41 +11985,77 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "URIErrorConstructor", + "kind": "interfaceName" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "var", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "Gets the unencoded version of an encoded Uniform Resource Identifier (URI).", - "kind": "text" + "text": "var", + "kind": "keyword" } - ], - "tags": [ + ] + }, + { + "name": "void", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "name": "param", - "text": [ - { - "text": "encodedURI", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI.", - "kind": "text" - } - ] + "text": "void", + "kind": "keyword" + } + ] + }, + { + "name": "while", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "while", + "kind": "keyword" + } + ] + }, + { + "name": "with", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "with", + "kind": "keyword" + } + ] + }, + { + "name": "yield", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "yield", + "kind": "keyword" } ] }, { - "name": "decodeURIComponent", + "name": "escape", "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "deprecated,declare", + "sortText": "z15", "displayParts": [ { "text": "function", @@ -12816,7 +12066,7 @@ "kind": "space" }, { - "text": "decodeURIComponent", + "text": "escape", "kind": "functionName" }, { @@ -12824,7 +12074,7 @@ "kind": "punctuation" }, { - "text": "encodedURIComponent", + "text": "string", "kind": "parameterName" }, { @@ -12858,16 +12108,25 @@ ], "documentation": [ { - "text": "Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).", + "text": "Computes a new string in which certain characters have been replaced by a hexadecimal escape sequence.", "kind": "text" } ], "tags": [ + { + "name": "deprecated", + "text": [ + { + "text": "A legacy feature for browser compatibility", + "kind": "text" + } + ] + }, { "name": "param", "text": [ { - "text": "encodedURIComponent", + "text": "string", "kind": "parameterName" }, { @@ -12875,7 +12134,7 @@ "kind": "space" }, { - "text": "A value representing an encoded URI component.", + "text": "A string value", "kind": "text" } ] @@ -12883,10 +12142,10 @@ ] }, { - "name": "encodeURI", + "name": "unescape", "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "deprecated,declare", + "sortText": "z15", "displayParts": [ { "text": "function", @@ -12897,7 +12156,7 @@ "kind": "space" }, { - "text": "encodeURI", + "text": "unescape", "kind": "functionName" }, { @@ -12905,7 +12164,7 @@ "kind": "punctuation" }, { - "text": "uri", + "text": "string", "kind": "parameterName" }, { @@ -12939,16 +12198,25 @@ ], "documentation": [ { - "text": "Encodes a text string as a valid Uniform Resource Identifier (URI)", + "text": "Computes a new string in which hexadecimal escape sequences are replaced with the character that it represents.", "kind": "text" } ], "tags": [ + { + "name": "deprecated", + "text": [ + { + "text": "A legacy feature for browser compatibility", + "kind": "text" + } + ] + }, { "name": "param", "text": [ { - "text": "uri", + "text": "string", "kind": "parameterName" }, { @@ -12956,18 +12224,36 @@ "kind": "space" }, { - "text": "A value representing an encoded URI.", + "text": "A string value", "kind": "text" } ] } ] - }, + } + ] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/completionsCommentsFunctionExpression.ts", + "position": 861, + "name": "17" + }, + "completionList": { + "isGlobalCompletion": true, + "isMemberCompletion": false, + "isNewIdentifierLocation": false, + "optionalReplacementSpan": { + "start": 853, + "length": 8 + }, + "entries": [ { - "name": "encodeURIComponent", + "name": "anotherFunc", "kind": "function", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { "text": "function", @@ -12978,7 +12264,7 @@ "kind": "space" }, { - "text": "encodeURIComponent", + "text": "anotherFunc", "kind": "functionName" }, { @@ -12986,7 +12272,7 @@ "kind": "punctuation" }, { - "text": "uriComponent", + "text": "a", "kind": "parameterName" }, { @@ -12997,42 +12283,10 @@ "text": " ", "kind": "space" }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "|", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, { "text": "number", "kind": "keyword" }, - { - "text": " ", - "kind": "space" - }, - { - "text": "|", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "boolean", - "kind": "keyword" - }, { "text": ")", "kind": "punctuation" @@ -13050,40 +12304,16 @@ "kind": "keyword" } ], - "documentation": [ - { - "text": "Encodes a text string as a valid component of a Uniform Resource Identifier (URI).", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "uriComponent", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value representing an encoded URI component.", - "kind": "text" - } - ] - } - ] + "documentation": [] }, { - "name": "escape", - "kind": "function", - "kindModifiers": "deprecated,declare", - "sortText": "23", + "name": "assigned", + "kind": "var", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "function", + "text": "var", "kind": "keyword" }, { @@ -13091,15 +12321,23 @@ "kind": "space" }, { - "text": "escape", - "kind": "functionName" + "text": "assigned", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" }, { "text": "(", "kind": "punctuation" }, { - "text": "string", + "text": "s", "kind": "parameterName" }, { @@ -13119,7 +12357,11 @@ "kind": "punctuation" }, { - "text": ":", + "text": " ", + "kind": "space" + }, + { + "text": "=>", "kind": "punctuation" }, { @@ -13127,22 +12369,47 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" } ], "documentation": [ { - "text": "Computes a new string in which certain characters have been replaced by a hexadecimal escape sequence.", + "text": "Summary on expression", + "kind": "text" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "On variable", "kind": "text" } ], "tags": [ { - "name": "deprecated", + "name": "param", "text": [ { - "text": "A legacy feature for browser compatibility", + "text": "s", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "param on expression", + "kind": "text" + } + ] + }, + { + "name": "returns", + "text": [ + { + "text": "return on expression", "kind": "text" } ] @@ -13151,7 +12418,7 @@ "name": "param", "text": [ { - "text": "string", + "text": "s", "kind": "parameterName" }, { @@ -13159,7 +12426,16 @@ "kind": "space" }, { - "text": "A string value", + "text": "the first parameter!", + "kind": "text" + } + ] + }, + { + "name": "returns", + "text": [ + { + "text": "the parameter's length", "kind": "text" } ] @@ -13167,13 +12443,13 @@ ] }, { - "name": "unescape", - "kind": "function", - "kindModifiers": "deprecated,declare", - "sortText": "23", + "name": "lambdaFoo", + "kind": "var", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { - "text": "function", + "text": "var", "kind": "keyword" }, { @@ -13181,15 +12457,47 @@ "kind": "space" }, { - "text": "unescape", - "kind": "functionName" + "text": "lambdaFoo", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" }, { "text": "(", "kind": "punctuation" }, { - "text": "string", + "text": "a", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": ",", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "b", "kind": "parameterName" }, { @@ -13201,7 +12509,7 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" }, { @@ -13209,7 +12517,11 @@ "kind": "punctuation" }, { - "text": ":", + "text": " ", + "kind": "space" + }, + { + "text": "=>", "kind": "punctuation" }, { @@ -13217,50 +12529,30 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" } ], "documentation": [ { - "text": "Computes a new string in which hexadecimal escape sequences are replaced with the character that it represents.", + "text": "this is lambda comment", "kind": "text" - } - ], - "tags": [ + }, { - "name": "deprecated", - "text": [ - { - "text": "A legacy feature for browser compatibility", - "kind": "text" - } - ] + "text": "\n", + "kind": "lineBreak" }, { - "name": "param", - "text": [ - { - "text": "string", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A string value", - "kind": "text" - } - ] + "text": "lambdaFoo var comment", + "kind": "text" } ] }, { - "name": "NaN", + "name": "lambddaNoVarComment", "kind": "var", - "kindModifiers": "declare", - "sortText": "15", + "kindModifiers": "", + "sortText": "11", "displayParts": [ { "text": "var", @@ -13271,7 +12563,7 @@ "kind": "space" }, { - "text": "NaN", + "text": "lambddaNoVarComment", "kind": "localName" }, { @@ -13282,30 +12574,37 @@ "text": " ", "kind": "space" }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "a", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, { "text": "number", "kind": "keyword" - } - ], - "documentation": [] - }, - { - "name": "Infinity", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ + }, { - "text": "var", - "kind": "keyword" + "text": ",", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Infinity", - "kind": "localName" + "text": "b", + "kind": "parameterName" }, { "text": ":", @@ -13315,15 +12614,40 @@ "text": " ", "kind": "space" }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, { "text": "number", "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "this is lambda multiplication", + "kind": "text" + } + ] }, { - "name": "Object", + "name": "Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -13337,7 +12661,7 @@ "kind": "space" }, { - "text": "Object", + "text": "Array", "kind": "localName" }, { @@ -13349,7 +12673,7 @@ "kind": "space" }, { - "text": "ObjectConstructor", + "text": "ArrayConstructor", "kind": "interfaceName" }, { @@ -13360,6 +12684,26 @@ "text": "(", "kind": "punctuation" }, + { + "text": "arrayLength", + "kind": "parameterName" + }, + { + "text": "?", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, { "text": ")", "kind": "punctuation" @@ -13380,6 +12724,14 @@ "text": "any", "kind": "keyword" }, + { + "text": "[", + "kind": "punctuation" + }, + { + "text": "]", + "kind": "punctuation" + }, { "text": " ", "kind": "space" @@ -13393,7 +12745,7 @@ "kind": "operator" }, { - "text": "1", + "text": "2", "kind": "numericLiteral" }, { @@ -13401,7 +12753,7 @@ "kind": "space" }, { - "text": "overload", + "text": "overloads", "kind": "text" }, { @@ -13421,14 +12773,116 @@ "kind": "space" }, { - "text": "Object", + "text": "Array", + "kind": "localName" + }, + { + "text": "<", + "kind": "punctuation" + }, + { + "text": "T", + "kind": "typeParameterName" + }, + { + "text": ">", + "kind": "punctuation" + } + ], + "documentation": [] + }, + { + "name": "ArrayBuffer", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "ArrayBuffer", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "ArrayBuffer", "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "ArrayBufferConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ + { + "text": "Represents a raw buffer of binary data, which is used to store data for the\r\ndifferent typed arrays. ArrayBuffers cannot be read from or written to directly,\r\nbut can be passed to a typed array or DataView Object to interpret the raw\r\nbuffer as needed.", + "kind": "text" + } + ] + }, + { + "name": "as", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "as", + "kind": "keyword" + } + ] + }, + { + "name": "async", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "async", + "kind": "keyword" + } + ] + }, + { + "name": "await", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "await", + "kind": "keyword" } - ], - "documentation": [] + ] }, { - "name": "Function", + "name": "Boolean", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -13442,7 +12896,7 @@ "kind": "space" }, { - "text": "Function", + "text": "Boolean", "kind": "localName" }, { @@ -13454,7 +12908,7 @@ "kind": "space" }, { - "text": "FunctionConstructor", + "text": "BooleanConstructor", "kind": "interfaceName" }, { @@ -13462,36 +12916,40 @@ "kind": "lineBreak" }, { - "text": "(", + "text": "<", "kind": "punctuation" }, { - "text": "...", - "kind": "punctuation" + "text": "T", + "kind": "typeParameterName" }, { - "text": "args", - "kind": "parameterName" + "text": ">", + "kind": "punctuation" }, { - "text": ":", + "text": "(", "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "value", + "kind": "parameterName" }, { - "text": "string", - "kind": "keyword" + "text": "?", + "kind": "punctuation" }, { - "text": "[", + "text": ":", "kind": "punctuation" }, { - "text": "]", - "kind": "punctuation" + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "typeParameterName" }, { "text": ")", @@ -13510,8 +12968,8 @@ "kind": "space" }, { - "text": "Function", - "kind": "localName" + "text": "boolean", + "kind": "keyword" }, { "text": "\n", @@ -13526,23 +12984,106 @@ "kind": "space" }, { - "text": "Function", + "text": "Boolean", "kind": "localName" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "break", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "Creates a new function.", - "kind": "text" + "text": "break", + "kind": "keyword" } ] }, { - "name": "String", + "name": "case", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "case", + "kind": "keyword" + } + ] + }, + { + "name": "catch", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "catch", + "kind": "keyword" + } + ] + }, + { + "name": "class", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "class", + "kind": "keyword" + } + ] + }, + { + "name": "const", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "const", + "kind": "keyword" + } + ] + }, + { + "name": "continue", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "continue", + "kind": "keyword" + } + ] + }, + { + "name": "DataView", "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ + { + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "DataView", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, { "text": "var", "kind": "keyword" @@ -13552,7 +13093,7 @@ "kind": "space" }, { - "text": "String", + "text": "DataView", "kind": "localName" }, { @@ -13564,24 +13105,29 @@ "kind": "space" }, { - "text": "StringConstructor", + "text": "DataViewConstructor", "kind": "interfaceName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, + } + ], + "documentation": [] + }, + { + "name": "Date", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { - "text": "(", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { - "text": "value", - "kind": "parameterName" + "text": " ", + "kind": "space" }, { - "text": "?", - "kind": "punctuation" + "text": "Date", + "kind": "localName" }, { "text": ":", @@ -13592,8 +13138,16 @@ "kind": "space" }, { - "text": "any", - "kind": "keyword" + "text": "DateConstructor", + "kind": "interfaceName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "(", + "kind": "punctuation" }, { "text": ")", @@ -13628,97 +13182,57 @@ "kind": "space" }, { - "text": "String", + "text": "Date", "kind": "localName" } ], "documentation": [ { - "text": "Allows manipulation and formatting of text strings and determination and location of substrings within strings.", + "text": "Enables basic storage and retrieval of dates and times.", "kind": "text" } ] }, { - "name": "Boolean", - "kind": "var", - "kindModifiers": "declare", + "name": "debugger", + "kind": "keyword", + "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "var", + "text": "debugger", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Boolean", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "BooleanConstructor", - "kind": "interfaceName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "<", - "kind": "punctuation" - }, - { - "text": "T", - "kind": "typeParameterName" - }, - { - "text": ">", - "kind": "punctuation" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "value", - "kind": "parameterName" - }, - { - "text": "?", - "kind": "punctuation" - }, + } + ] + }, + { + "name": "decodeURI", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { - "text": ":", - "kind": "punctuation" + "text": "function", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "T", - "kind": "typeParameterName" + "text": "decodeURI", + "kind": "functionName" }, { - "text": ")", + "text": "(", "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "encodedURI", + "kind": "parameterName" }, { - "text": "=>", + "text": ":", "kind": "punctuation" }, { @@ -13726,36 +13240,60 @@ "kind": "space" }, { - "text": "boolean", + "text": "string", "kind": "keyword" }, { - "text": "\n", - "kind": "lineBreak" + "text": ")", + "kind": "punctuation" }, { - "text": "interface", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Boolean", - "kind": "localName" + "text": "string", + "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Gets the unencoded version of an encoded Uniform Resource Identifier (URI).", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "encodedURI", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI.", + "kind": "text" + } + ] + } + ] }, { - "name": "Number", - "kind": "var", + "name": "decodeURIComponent", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "var", + "text": "function", "kind": "keyword" }, { @@ -13763,37 +13301,17 @@ "kind": "space" }, { - "text": "Number", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "NumberConstructor", - "kind": "interfaceName" - }, - { - "text": "\n", - "kind": "lineBreak" + "text": "decodeURIComponent", + "kind": "functionName" }, { "text": "(", "kind": "punctuation" }, { - "text": "value", + "text": "encodedURIComponent", "kind": "parameterName" }, - { - "text": "?", - "kind": "punctuation" - }, { "text": ":", "kind": "punctuation" @@ -13803,7 +13321,7 @@ "kind": "space" }, { - "text": "any", + "text": "string", "kind": "keyword" }, { @@ -13811,11 +13329,7 @@ "kind": "punctuation" }, { - "text": " ", - "kind": "space" - }, - { - "text": "=>", + "text": ":", "kind": "punctuation" }, { @@ -13823,41 +13337,92 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" - }, + } + ], + "documentation": [ { - "text": "\n", - "kind": "lineBreak" - }, + "text": "Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).", + "kind": "text" + } + ], + "tags": [ { - "text": "interface", + "name": "param", + "text": [ + { + "text": "encodedURIComponent", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI component.", + "kind": "text" + } + ] + } + ] + }, + { + "name": "default", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "default", "kind": "keyword" - }, + } + ] + }, + { + "name": "delete", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": " ", - "kind": "space" - }, + "text": "delete", + "kind": "keyword" + } + ] + }, + { + "name": "do", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "Number", - "kind": "localName" + "text": "do", + "kind": "keyword" } - ], - "documentation": [ + ] + }, + { + "name": "else", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "An object that represents a number of any kind. All JavaScript numbers are 64-bit floating-point numbers.", - "kind": "text" + "text": "else", + "kind": "keyword" } ] }, { - "name": "Math", - "kind": "var", + "name": "encodeURI", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -13865,24 +13430,32 @@ "kind": "space" }, { - "text": "Math", - "kind": "localName" + "text": "encodeURI", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "uri", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Math", - "kind": "localName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -13893,25 +13466,44 @@ "kind": "space" }, { - "text": "Math", - "kind": "localName" + "text": "string", + "kind": "keyword" } ], "documentation": [ { - "text": "An intrinsic object that provides basic mathematics functionality and constants.", + "text": "Encodes a text string as a valid Uniform Resource Identifier (URI)", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "uri", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI.", + "kind": "text" + } + ] + } ] }, { - "name": "Date", - "kind": "var", + "name": "encodeURIComponent", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "var", + "text": "function", "kind": "keyword" }, { @@ -13919,8 +13511,16 @@ "kind": "space" }, { - "text": "Date", - "kind": "localName" + "text": "encodeURIComponent", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "uriComponent", + "kind": "parameterName" }, { "text": ":", @@ -13931,27 +13531,31 @@ "kind": "space" }, { - "text": "DateConstructor", - "kind": "interfaceName" - }, - { - "text": "\n", - "kind": "lineBreak" + "text": "string", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "|", + "kind": "punctuation" }, { - "text": "(", - "kind": "punctuation" + "text": " ", + "kind": "space" }, { - "text": ")", - "kind": "punctuation" + "text": "number", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "=>", + "text": "|", "kind": "punctuation" }, { @@ -13959,35 +13563,66 @@ "kind": "space" }, { - "text": "string", + "text": "boolean", "kind": "keyword" }, { - "text": "\n", - "kind": "lineBreak" + "text": ")", + "kind": "punctuation" }, { - "text": "interface", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Date", - "kind": "localName" + "text": "string", + "kind": "keyword" } ], "documentation": [ { - "text": "Enables basic storage and retrieval of dates and times.", + "text": "Encodes a text string as a valid component of a Uniform Resource Identifier (URI).", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "uriComponent", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value representing an encoded URI component.", + "kind": "text" + } + ] + } ] }, { - "name": "RegExp", + "name": "enum", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "enum", + "kind": "keyword" + } + ] + }, + { + "name": "Error", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -14001,7 +13636,7 @@ "kind": "space" }, { - "text": "RegExp", + "text": "Error", "kind": "localName" }, { @@ -14013,7 +13648,7 @@ "kind": "space" }, { - "text": "RegExpConstructor", + "text": "ErrorConstructor", "kind": "interfaceName" }, { @@ -14025,27 +13660,15 @@ "kind": "punctuation" }, { - "text": "pattern", + "text": "message", "kind": "parameterName" }, { - "text": ":", + "text": "?", "kind": "punctuation" }, { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "|", + "text": ":", "kind": "punctuation" }, { @@ -14053,8 +13676,8 @@ "kind": "space" }, { - "text": "RegExp", - "kind": "localName" + "text": "string", + "kind": "keyword" }, { "text": ")", @@ -14073,37 +13696,9 @@ "kind": "space" }, { - "text": "RegExp", + "text": "Error", "kind": "localName" }, - { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "+", - "kind": "operator" - }, - { - "text": "1", - "kind": "numericLiteral" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "overload", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, { "text": "\n", "kind": "lineBreak" @@ -14117,20 +13712,20 @@ "kind": "space" }, { - "text": "RegExp", + "text": "Error", "kind": "localName" } ], "documentation": [] }, { - "name": "Error", - "kind": "var", + "name": "eval", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "var", + "text": "function", "kind": "keyword" }, { @@ -14138,37 +13733,17 @@ "kind": "space" }, { - "text": "Error", - "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "ErrorConstructor", - "kind": "interfaceName" - }, - { - "text": "\n", - "kind": "lineBreak" + "text": "eval", + "kind": "functionName" }, { "text": "(", "kind": "punctuation" }, { - "text": "message", + "text": "x", "kind": "parameterName" }, - { - "text": "?", - "kind": "punctuation" - }, { "text": ":", "kind": "punctuation" @@ -14186,11 +13761,7 @@ "kind": "punctuation" }, { - "text": " ", - "kind": "space" - }, - { - "text": "=>", + "text": ":", "kind": "punctuation" }, { @@ -14198,27 +13769,35 @@ "kind": "space" }, { - "text": "Error", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "interface", + "text": "any", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, + } + ], + "documentation": [ { - "text": "Error", - "kind": "localName" + "text": "Evaluates JavaScript code and executes it.", + "kind": "text" } ], - "documentation": [] + "tags": [ + { + "name": "param", + "text": [ + { + "text": "x", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A String value that contains valid JavaScript code.", + "kind": "text" + } + ] + } + ] }, { "name": "EvalError", @@ -14331,28 +13910,76 @@ "kind": "lineBreak" }, { - "text": "interface", + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "EvalError", + "kind": "localName" + } + ], + "documentation": [] + }, + { + "name": "export", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "export", + "kind": "keyword" + } + ] + }, + { + "name": "extends", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "extends", + "kind": "keyword" + } + ] + }, + { + "name": "false", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "false", + "kind": "keyword" + } + ] + }, + { + "name": "finally", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "finally", "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "EvalError", - "kind": "localName" } - ], - "documentation": [] + ] }, { - "name": "RangeError", + "name": "Float32Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -14360,51 +13987,27 @@ "kind": "space" }, { - "text": "RangeError", + "text": "Float32Array", "kind": "localName" }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "RangeErrorConstructor", - "kind": "interfaceName" - }, { "text": "\n", "kind": "lineBreak" }, { - "text": "(", - "kind": "punctuation" - }, - { - "text": "message", - "kind": "parameterName" - }, - { - "text": "?", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "Float32Array", + "kind": "localName" }, { - "text": ")", + "text": ":", "kind": "punctuation" }, { @@ -14412,66 +14015,97 @@ "kind": "space" }, { - "text": "=>", - "kind": "punctuation" - }, + "text": "Float32ArrayConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ { - "text": " ", - "kind": "space" - }, + "text": "A typed array of 32-bit float values. The contents are initialized to 0. If the requested number\r\nof bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] + }, + { + "name": "Float64Array", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { - "text": "RangeError", - "kind": "localName" + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "(", - "kind": "punctuation" + "text": "Float64Array", + "kind": "localName" }, { - "text": "+", - "kind": "operator" + "text": "\n", + "kind": "lineBreak" }, { - "text": "1", - "kind": "numericLiteral" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "overload", - "kind": "text" + "text": "Float64Array", + "kind": "localName" }, { - "text": ")", + "text": ":", "kind": "punctuation" }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "interface", - "kind": "keyword" - }, { "text": " ", "kind": "space" }, { - "text": "RangeError", - "kind": "localName" + "text": "Float64ArrayConstructor", + "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "A typed array of 64-bit float values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] }, { - "name": "ReferenceError", + "name": "for", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "for", + "kind": "keyword" + } + ] + }, + { + "name": "function", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "function", + "kind": "keyword" + } + ] + }, + { + "name": "Function", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -14485,7 +14119,7 @@ "kind": "space" }, { - "text": "ReferenceError", + "text": "Function", "kind": "localName" }, { @@ -14497,7 +14131,7 @@ "kind": "space" }, { - "text": "ReferenceErrorConstructor", + "text": "FunctionConstructor", "kind": "interfaceName" }, { @@ -14509,12 +14143,12 @@ "kind": "punctuation" }, { - "text": "message", - "kind": "parameterName" + "text": "...", + "kind": "punctuation" }, { - "text": "?", - "kind": "punctuation" + "text": "args", + "kind": "parameterName" }, { "text": ":", @@ -14529,15 +14163,15 @@ "kind": "keyword" }, { - "text": ")", + "text": "[", "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "]", + "kind": "punctuation" }, { - "text": "=>", + "text": ")", "kind": "punctuation" }, { @@ -14545,43 +14179,49 @@ "kind": "space" }, { - "text": "ReferenceError", - "kind": "localName" + "text": "=>", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "(", - "kind": "punctuation" + "text": "Function", + "kind": "localName" }, { - "text": "+", - "kind": "operator" + "text": "\n", + "kind": "lineBreak" }, { - "text": "1", - "kind": "numericLiteral" + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "overload", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, + "text": "Function", + "kind": "localName" + } + ], + "documentation": [ { - "text": "\n", - "kind": "lineBreak" - }, + "text": "Creates a new function.", + "kind": "text" + } + ] + }, + { + "name": "globalThis", + "kind": "module", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "interface", + "text": "module", "kind": "keyword" }, { @@ -14589,14 +14229,62 @@ "kind": "space" }, { - "text": "ReferenceError", - "kind": "localName" + "text": "globalThis", + "kind": "moduleName" + } + ], + "documentation": [] + }, + { + "name": "if", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "if", + "kind": "keyword" + } + ] + }, + { + "name": "implements", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "implements", + "kind": "keyword" + } + ] + }, + { + "name": "import", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "import", + "kind": "keyword" + } + ] + }, + { + "name": "in", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "in", + "kind": "keyword" } - ], - "documentation": [] + ] }, { - "name": "SyntaxError", + "name": "Infinity", "kind": "var", "kindModifiers": "declare", "sortText": "15", @@ -14610,7 +14298,7 @@ "kind": "space" }, { - "text": "SyntaxError", + "text": "Infinity", "kind": "localName" }, { @@ -14622,112 +14310,86 @@ "kind": "space" }, { - "text": "SyntaxErrorConstructor", - "kind": "interfaceName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "message", - "kind": "parameterName" - }, - { - "text": "?", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", + "text": "number", "kind": "keyword" - }, - { - "text": ")", - "kind": "punctuation" - }, + } + ], + "documentation": [] + }, + { + "name": "instanceof", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": " ", - "kind": "space" - }, + "text": "instanceof", + "kind": "keyword" + } + ] + }, + { + "name": "Int16Array", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { - "text": "=>", - "kind": "punctuation" + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "SyntaxError", + "text": "Int16Array", "kind": "localName" }, { - "text": " ", - "kind": "space" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "+", - "kind": "operator" + "text": "\n", + "kind": "lineBreak" }, { - "text": "1", - "kind": "numericLiteral" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "overload", - "kind": "text" + "text": "Int16Array", + "kind": "localName" }, { - "text": ")", + "text": ":", "kind": "punctuation" }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "interface", - "kind": "keyword" - }, { "text": " ", "kind": "space" }, { - "text": "SyntaxError", - "kind": "localName" + "text": "Int16ArrayConstructor", + "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "A typed array of 16-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] }, { - "name": "TypeError", + "name": "Int32Array", "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -14735,51 +14397,27 @@ "kind": "space" }, { - "text": "TypeError", + "text": "Int32Array", "kind": "localName" }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "TypeErrorConstructor", - "kind": "interfaceName" - }, { "text": "\n", "kind": "lineBreak" }, { - "text": "(", - "kind": "punctuation" - }, - { - "text": "message", - "kind": "parameterName" - }, - { - "text": "?", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "Int32Array", + "kind": "localName" }, { - "text": ")", + "text": ":", "kind": "punctuation" }, { @@ -14787,72 +14425,91 @@ "kind": "space" }, { - "text": "=>", - "kind": "punctuation" - }, + "text": "Int32ArrayConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ { - "text": " ", - "kind": "space" - }, + "text": "A typed array of 32-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] + }, + { + "name": "Int8Array", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { - "text": "TypeError", - "kind": "localName" + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "(", - "kind": "punctuation" + "text": "Int8Array", + "kind": "localName" }, { - "text": "+", - "kind": "operator" + "text": "\n", + "kind": "lineBreak" }, { - "text": "1", - "kind": "numericLiteral" + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "overload", - "kind": "text" + "text": "Int8Array", + "kind": "localName" }, { - "text": ")", + "text": ":", "kind": "punctuation" }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "interface", - "kind": "keyword" - }, { "text": " ", "kind": "space" }, { - "text": "TypeError", - "kind": "localName" + "text": "Int8ArrayConstructor", + "kind": "interfaceName" } ], - "documentation": [] + "documentation": [ + { + "text": "A typed array of 8-bit integer values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", + "kind": "text" + } + ] }, { - "name": "URIError", - "kind": "var", + "name": "interface", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "interface", + "kind": "keyword" + } + ] + }, + { + "name": "Intl", + "kind": "module", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "var", + "text": "namespace", "kind": "keyword" }, { @@ -14860,37 +14517,38 @@ "kind": "space" }, { - "text": "URIError", - "kind": "localName" - }, + "text": "Intl", + "kind": "moduleName" + } + ], + "documentation": [] + }, + { + "name": "isFinite", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ { - "text": ":", - "kind": "punctuation" + "text": "function", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "URIErrorConstructor", - "kind": "interfaceName" - }, - { - "text": "\n", - "kind": "lineBreak" + "text": "isFinite", + "kind": "functionName" }, { "text": "(", "kind": "punctuation" }, { - "text": "message", + "text": "number", "kind": "parameterName" }, - { - "text": "?", - "kind": "punctuation" - }, { "text": ":", "kind": "punctuation" @@ -14900,7 +14558,7 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" }, { @@ -14908,11 +14566,7 @@ "kind": "punctuation" }, { - "text": " ", - "kind": "space" - }, - { - "text": "=>", + "text": ":", "kind": "punctuation" }, { @@ -14920,55 +14574,116 @@ "kind": "space" }, { - "text": "URIError", - "kind": "localName" + "text": "boolean", + "kind": "keyword" + } + ], + "documentation": [ + { + "text": "Determines whether a supplied number is finite.", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "number", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Any numeric value.", + "kind": "text" + } + ] + } + ] + }, + { + "name": "isNaN", + "kind": "function", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "function", + "kind": "keyword" }, { "text": " ", "kind": "space" }, + { + "text": "isNaN", + "kind": "functionName" + }, { "text": "(", "kind": "punctuation" }, { - "text": "+", - "kind": "operator" + "text": "number", + "kind": "parameterName" }, { - "text": "1", - "kind": "numericLiteral" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "overload", - "kind": "text" + "text": "number", + "kind": "keyword" }, { "text": ")", "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "interface", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "URIError", - "kind": "localName" + "text": "boolean", + "kind": "keyword" } ], - "documentation": [] + "documentation": [ + { + "text": "Returns a Boolean value that indicates whether a value is the reserved value NaN (not a number).", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "number", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A numeric value.", + "kind": "text" + } + ] + } + ] }, { "name": "JSON", @@ -15025,13 +14740,25 @@ ] }, { - "name": "Array", + "name": "let", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "let", + "kind": "keyword" + } + ] + }, + { + "name": "Math", "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -15039,36 +14766,24 @@ "kind": "space" }, { - "text": "Array", + "text": "Math", "kind": "localName" }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "ArrayConstructor", - "kind": "interfaceName" - }, { "text": "\n", "kind": "lineBreak" }, { - "text": "(", - "kind": "punctuation" + "text": "var", + "kind": "keyword" }, { - "text": "arrayLength", - "kind": "parameterName" + "text": " ", + "kind": "space" }, { - "text": "?", - "kind": "punctuation" + "text": "Math", + "kind": "localName" }, { "text": ":", @@ -15079,19 +14794,37 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" - }, + "text": "Math", + "kind": "localName" + } + ], + "documentation": [ { - "text": ")", - "kind": "punctuation" + "text": "An intrinsic object that provides basic mathematics functionality and constants.", + "kind": "text" + } + ] + }, + { + "name": "NaN", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "=>", + "text": "NaN", + "kind": "localName" + }, + { + "text": ":", "kind": "punctuation" }, { @@ -15099,100 +14832,120 @@ "kind": "space" }, { - "text": "any", + "text": "number", "kind": "keyword" - }, + } + ], + "documentation": [] + }, + { + "name": "new", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "[", - "kind": "punctuation" - }, + "text": "new", + "kind": "keyword" + } + ] + }, + { + "name": "null", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "]", - "kind": "punctuation" + "text": "null", + "kind": "keyword" + } + ] + }, + { + "name": "Number", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", + "displayParts": [ + { + "text": "var", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "(", + "text": "Number", + "kind": "localName" + }, + { + "text": ":", "kind": "punctuation" }, { - "text": "+", - "kind": "operator" + "text": " ", + "kind": "space" }, { - "text": "2", - "kind": "numericLiteral" + "text": "NumberConstructor", + "kind": "interfaceName" }, { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, { - "text": "overloads", - "kind": "text" + "text": "(", + "kind": "punctuation" }, { - "text": ")", - "kind": "punctuation" + "text": "value", + "kind": "parameterName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "?", + "kind": "punctuation" }, { - "text": "interface", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Array", - "kind": "localName" + "text": "any", + "kind": "keyword" }, { - "text": "<", + "text": ")", "kind": "punctuation" }, { - "text": "T", - "kind": "typeParameterName" + "text": " ", + "kind": "space" }, { - "text": ">", + "text": "=>", "kind": "punctuation" - } - ], - "documentation": [] - }, - { - "name": "ArrayBuffer", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", - "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "ArrayBuffer", - "kind": "localName" + "text": "number", + "kind": "keyword" }, { "text": "\n", "kind": "lineBreak" }, { - "text": "var", + "text": "interface", "kind": "keyword" }, { @@ -15200,37 +14953,25 @@ "kind": "space" }, { - "text": "ArrayBuffer", + "text": "Number", "kind": "localName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "ArrayBufferConstructor", - "kind": "interfaceName" } ], "documentation": [ { - "text": "Represents a raw buffer of binary data, which is used to store data for the\r\ndifferent typed arrays. ArrayBuffers cannot be read from or written to directly,\r\nbut can be passed to a typed array or DataView Object to interpret the raw\r\nbuffer as needed.", + "text": "An object that represents a number of any kind. All JavaScript numbers are 64-bit floating-point numbers.", "kind": "text" } ] }, { - "name": "DataView", + "name": "Object", "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "var", "kind": "keyword" }, { @@ -15238,27 +14979,39 @@ "kind": "space" }, { - "text": "DataView", + "text": "Object", "kind": "localName" }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "ObjectConstructor", + "kind": "interfaceName" + }, { "text": "\n", "kind": "lineBreak" }, { - "text": "var", - "kind": "keyword" + "text": "(", + "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": ")", + "kind": "punctuation" }, { - "text": "DataView", - "kind": "localName" + "text": " ", + "kind": "space" }, { - "text": ":", + "text": "=>", "kind": "punctuation" }, { @@ -15266,20 +15019,7 @@ "kind": "space" }, { - "text": "DataViewConstructor", - "kind": "interfaceName" - } - ], - "documentation": [] - }, - { - "name": "Int8Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", + "text": "any", "kind": "keyword" }, { @@ -15287,53 +15027,68 @@ "kind": "space" }, { - "text": "Int8Array", - "kind": "localName" + "text": "(", + "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": "+", + "kind": "operator" }, { - "text": "var", - "kind": "keyword" + "text": "1", + "kind": "numericLiteral" }, { "text": " ", "kind": "space" }, { - "text": "Int8Array", - "kind": "localName" + "text": "overload", + "kind": "text" }, { - "text": ":", + "text": ")", "kind": "punctuation" }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "interface", + "kind": "keyword" + }, { "text": " ", "kind": "space" }, { - "text": "Int8ArrayConstructor", - "kind": "interfaceName" + "text": "Object", + "kind": "localName" } ], - "documentation": [ + "documentation": [] + }, + { + "name": "package", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ { - "text": "A typed array of 8-bit integer values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", - "kind": "text" + "text": "package", + "kind": "keyword" } ] }, { - "name": "Uint8Array", - "kind": "var", + "name": "parseFloat", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -15341,24 +15096,32 @@ "kind": "space" }, { - "text": "Uint8Array", - "kind": "localName" + "text": "parseFloat", + "kind": "functionName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "(", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": "string", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Uint8Array", - "kind": "localName" + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -15369,25 +15132,44 @@ "kind": "space" }, { - "text": "Uint8ArrayConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], "documentation": [ { - "text": "A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "text": "Converts a string to a floating-point number.", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string that contains a floating-point number.", + "kind": "text" + } + ] + } ] }, { - "name": "Uint8ClampedArray", - "kind": "var", + "name": "parseInt", + "kind": "function", "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" }, { @@ -15395,78 +15177,60 @@ "kind": "space" }, { - "text": "Uint8ClampedArray", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, - { - "text": "var", - "kind": "keyword" + "text": "parseInt", + "kind": "functionName" }, { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "Uint8ClampedArray", - "kind": "localName" + "text": "string", + "kind": "parameterName" }, { "text": ":", "kind": "punctuation" }, { - "text": " ", - "kind": "space" - }, - { - "text": "Uint8ClampedArrayConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0.\r\nIf the requested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] - }, - { - "name": "Int16Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "interface", + "text": " ", + "kind": "space" + }, + { + "text": "string", "kind": "keyword" }, + { + "text": ",", + "kind": "punctuation" + }, { "text": " ", "kind": "space" }, { - "text": "Int16Array", - "kind": "localName" + "text": "radix", + "kind": "parameterName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "?", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Int16Array", - "kind": "localName" + "text": "number", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -15477,39 +15241,59 @@ "kind": "space" }, { - "text": "Int16ArrayConstructor", - "kind": "interfaceName" + "text": "number", + "kind": "keyword" } ], "documentation": [ { - "text": "A typed array of 16-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "text": "Converts a string to an integer.", "kind": "text" } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string to convert into a number.", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "radix", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value between 2 and 36 that specifies the base of the number in `string`.\r\nIf this argument is not supplied, strings with a prefix of '0x' are considered hexadecimal.\r\nAll other strings are considered decimal.", + "kind": "text" + } + ] + } ] }, { - "name": "Uint16Array", + "name": "RangeError", "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Uint16Array", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, { "text": "var", "kind": "keyword" @@ -15519,7 +15303,7 @@ "kind": "space" }, { - "text": "Uint16Array", + "text": "RangeError", "kind": "localName" }, { @@ -15531,53 +15315,39 @@ "kind": "space" }, { - "text": "Uint16ArrayConstructor", + "text": "RangeErrorConstructor", "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] - }, - { - "name": "Int32Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ + }, { - "text": "interface", - "kind": "keyword" + "text": "\n", + "kind": "lineBreak" }, { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "Int32Array", - "kind": "localName" + "text": "message", + "kind": "parameterName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "?", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Int32Array", - "kind": "localName" + "text": "string", + "kind": "keyword" }, { - "text": ":", + "text": ")", "kind": "punctuation" }, { @@ -15585,93 +15355,70 @@ "kind": "space" }, { - "text": "Int32ArrayConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ + "text": "=>", + "kind": "punctuation" + }, { - "text": "A typed array of 32-bit signed integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] - }, - { - "name": "Uint32Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "interface", - "kind": "keyword" + "text": "RangeError", + "kind": "localName" }, { "text": " ", "kind": "space" }, { - "text": "Uint32Array", - "kind": "localName" + "text": "(", + "kind": "punctuation" }, { - "text": "\n", - "kind": "lineBreak" + "text": "+", + "kind": "operator" }, { - "text": "var", - "kind": "keyword" + "text": "1", + "kind": "numericLiteral" }, { "text": " ", "kind": "space" }, { - "text": "Uint32Array", - "kind": "localName" + "text": "overload", + "kind": "text" }, { - "text": ":", + "text": ")", "kind": "punctuation" }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "interface", + "kind": "keyword" + }, { "text": " ", "kind": "space" }, { - "text": "Uint32ArrayConstructor", - "kind": "interfaceName" + "text": "RangeError", + "kind": "localName" } ], - "documentation": [ - { - "text": "A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] + "documentation": [] }, { - "name": "Float32Array", + "name": "ReferenceError", "kind": "var", "kindModifiers": "declare", "sortText": "15", "displayParts": [ - { - "text": "interface", - "kind": "keyword" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "Float32Array", - "kind": "localName" - }, - { - "text": "\n", - "kind": "lineBreak" - }, { "text": "var", "kind": "keyword" @@ -15681,7 +15428,7 @@ "kind": "space" }, { - "text": "Float32Array", + "text": "ReferenceError", "kind": "localName" }, { @@ -15693,53 +15440,39 @@ "kind": "space" }, { - "text": "Float32ArrayConstructor", + "text": "ReferenceErrorConstructor", "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "A typed array of 32-bit float values. The contents are initialized to 0. If the requested number\r\nof bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] - }, - { - "name": "Float64Array", - "kind": "var", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ + }, { - "text": "interface", - "kind": "keyword" + "text": "\n", + "kind": "lineBreak" }, { - "text": " ", - "kind": "space" + "text": "(", + "kind": "punctuation" }, { - "text": "Float64Array", - "kind": "localName" + "text": "message", + "kind": "parameterName" }, { - "text": "\n", - "kind": "lineBreak" + "text": "?", + "kind": "punctuation" }, { - "text": "var", - "kind": "keyword" + "text": ":", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Float64Array", - "kind": "localName" + "text": "string", + "kind": "keyword" }, { - "text": ":", + "text": ")", "kind": "punctuation" }, { @@ -15747,100 +15480,69 @@ "kind": "space" }, { - "text": "Float64ArrayConstructor", - "kind": "interfaceName" - } - ], - "documentation": [ - { - "text": "A typed array of 64-bit float values. The contents are initialized to 0. If the requested\r\nnumber of bytes could not be allocated an exception is raised.", - "kind": "text" - } - ] - }, - { - "name": "Intl", - "kind": "module", - "kindModifiers": "declare", - "sortText": "15", - "displayParts": [ - { - "text": "namespace", - "kind": "keyword" + "text": "=>", + "kind": "punctuation" }, { "text": " ", "kind": "space" }, { - "text": "Intl", - "kind": "moduleName" - } - ], - "documentation": [] - }, - { - "name": "anotherFunc", - "kind": "function", - "kindModifiers": "", - "sortText": "11", - "displayParts": [ - { - "text": "function", - "kind": "keyword" + "text": "ReferenceError", + "kind": "localName" }, { "text": " ", "kind": "space" }, - { - "text": "anotherFunc", - "kind": "functionName" - }, { "text": "(", "kind": "punctuation" }, { - "text": "a", - "kind": "parameterName" + "text": "+", + "kind": "operator" }, { - "text": ":", - "kind": "punctuation" + "text": "1", + "kind": "numericLiteral" }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "overload", + "kind": "text" }, { "text": ")", "kind": "punctuation" }, { - "text": ":", - "kind": "punctuation" + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "ReferenceError", + "kind": "localName" } ], "documentation": [] }, { - "name": "lambdaFoo", + "name": "RegExp", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { "text": "var", @@ -15851,7 +15553,7 @@ "kind": "space" }, { - "text": "lambdaFoo", + "text": "RegExp", "kind": "localName" }, { @@ -15862,12 +15564,20 @@ "text": " ", "kind": "space" }, + { + "text": "RegExpConstructor", + "kind": "interfaceName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, { "text": "(", "kind": "punctuation" }, { - "text": "a", + "text": "pattern", "kind": "parameterName" }, { @@ -15879,11 +15589,15 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" }, { - "text": ",", + "text": " ", + "kind": "space" + }, + { + "text": "|", "kind": "punctuation" }, { @@ -15891,11 +15605,11 @@ "kind": "space" }, { - "text": "b", - "kind": "parameterName" + "text": "RegExp", + "kind": "localName" }, { - "text": ":", + "text": ")", "kind": "punctuation" }, { @@ -15903,50 +15617,81 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "=>", + "kind": "punctuation" }, { - "text": ")", - "kind": "punctuation" + "text": " ", + "kind": "space" + }, + { + "text": "RegExp", + "kind": "localName" }, { "text": " ", "kind": "space" }, { - "text": "=>", + "text": "(", "kind": "punctuation" }, + { + "text": "+", + "kind": "operator" + }, + { + "text": "1", + "kind": "numericLiteral" + }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "this is lambda comment", + "text": "overload", "kind": "text" }, + { + "text": ")", + "kind": "punctuation" + }, { "text": "\n", "kind": "lineBreak" }, { - "text": "lambdaFoo var comment", - "kind": "text" + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "RegExp", + "kind": "localName" + } + ], + "documentation": [] + }, + { + "name": "return", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "return", + "kind": "keyword" } ] }, { - "name": "lambddaNoVarComment", + "name": "String", "kind": "var", - "kindModifiers": "", - "sortText": "11", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { "text": "var", @@ -15957,7 +15702,7 @@ "kind": "space" }, { - "text": "lambddaNoVarComment", + "text": "String", "kind": "localName" }, { @@ -15968,14 +15713,26 @@ "text": " ", "kind": "space" }, + { + "text": "StringConstructor", + "kind": "interfaceName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, { "text": "(", "kind": "punctuation" }, { - "text": "a", + "text": "value", "kind": "parameterName" }, + { + "text": "?", + "kind": "punctuation" + }, { "text": ":", "kind": "punctuation" @@ -15985,11 +15742,11 @@ "kind": "space" }, { - "text": "number", + "text": "any", "kind": "keyword" }, { - "text": ",", + "text": ")", "kind": "punctuation" }, { @@ -15997,11 +15754,7 @@ "kind": "space" }, { - "text": "b", - "kind": "parameterName" - }, - { - "text": ":", + "text": "=>", "kind": "punctuation" }, { @@ -16009,42 +15762,62 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" }, { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" + "text": "\n", + "kind": "lineBreak" }, { - "text": "=>", - "kind": "punctuation" + "text": "interface", + "kind": "keyword" }, { "text": " ", "kind": "space" }, { - "text": "number", - "kind": "keyword" + "text": "String", + "kind": "localName" } ], "documentation": [ { - "text": "this is lambda multiplication", + "text": "Allows manipulation and formatting of text strings and determination and location of substrings within strings.", "kind": "text" } ] }, { - "name": "assigned", - "kind": "var", + "name": "super", + "kind": "keyword", "kindModifiers": "", - "sortText": "11", + "sortText": "15", + "displayParts": [ + { + "text": "super", + "kind": "keyword" + } + ] + }, + { + "name": "switch", + "kind": "keyword", + "kindModifiers": "", + "sortText": "15", + "displayParts": [ + { + "text": "switch", + "kind": "keyword" + } + ] + }, + { + "name": "SyntaxError", + "kind": "var", + "kindModifiers": "declare", + "sortText": "15", "displayParts": [ { "text": "var", @@ -16055,7 +15828,7 @@ "kind": "space" }, { - "text": "assigned", + "text": "SyntaxError", "kind": "localName" }, { @@ -16066,14 +15839,26 @@ "text": " ", "kind": "space" }, + { + "text": "SyntaxErrorConstructor", + "kind": "interfaceName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, { "text": "(", "kind": "punctuation" }, { - "text": "s", + "text": "message", "kind": "parameterName" }, + { + "text": "?", + "kind": "punctuation" + }, { "text": ":", "kind": "punctuation" @@ -16103,483 +15888,602 @@ "kind": "space" }, { - "text": "number", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Summary on expression", - "kind": "text" - }, - { - "text": "\n", - "kind": "lineBreak" + "text": "SyntaxError", + "kind": "localName" }, { - "text": "On variable", - "kind": "text" - } - ], - "tags": [ - { - "name": "param", - "text": [ - { - "text": "s", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "param on expression", - "kind": "text" - } - ] + "text": " ", + "kind": "space" }, { - "name": "returns", - "text": [ - { - "text": "return on expression", - "kind": "text" - } - ] + "text": "(", + "kind": "punctuation" }, { - "name": "param", - "text": [ - { - "text": "s", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "the first parameter!", - "kind": "text" - } - ] + "text": "+", + "kind": "operator" }, { - "name": "returns", - "text": [ - { - "text": "the parameter's length", - "kind": "text" - } - ] - } - ] - }, - { - "name": "undefined", - "kind": "var", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "var", - "kind": "keyword" + "text": "1", + "kind": "numericLiteral" }, { "text": " ", "kind": "space" }, { - "text": "undefined", - "kind": "propertyName" - } - ], - "documentation": [] - }, - { - "name": "break", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "break", - "kind": "keyword" - } - ] - }, - { - "name": "case", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "case", - "kind": "keyword" - } - ] - }, - { - "name": "catch", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "catch", - "kind": "keyword" - } - ] - }, - { - "name": "class", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "class", - "kind": "keyword" - } - ] - }, - { - "name": "const", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "const", - "kind": "keyword" - } - ] - }, - { - "name": "continue", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "continue", - "kind": "keyword" - } - ] - }, - { - "name": "debugger", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "debugger", - "kind": "keyword" - } - ] - }, - { - "name": "default", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ - { - "text": "default", - "kind": "keyword" - } - ] - }, - { - "name": "delete", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "overload", + "kind": "text" + }, { - "text": "delete", - "kind": "keyword" - } - ] - }, - { - "name": "do", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": ")", + "kind": "punctuation" + }, { - "text": "do", - "kind": "keyword" - } - ] - }, - { - "name": "else", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "\n", + "kind": "lineBreak" + }, { - "text": "else", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "enum", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "enum", - "kind": "keyword" - } - ] - }, - { - "name": "export", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": " ", + "kind": "space" + }, { - "text": "export", - "kind": "keyword" + "text": "SyntaxError", + "kind": "localName" } - ] + ], + "documentation": [] }, { - "name": "extends", + "name": "this", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "extends", + "text": "this", "kind": "keyword" } ] }, { - "name": "false", + "name": "throw", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "false", + "text": "throw", "kind": "keyword" } ] }, { - "name": "finally", + "name": "true", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "finally", + "text": "true", "kind": "keyword" } ] }, { - "name": "for", + "name": "try", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "for", + "text": "try", "kind": "keyword" } ] }, { - "name": "function", - "kind": "keyword", - "kindModifiers": "", + "name": "TypeError", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "function", + "text": "var", "kind": "keyword" - } - ] - }, - { - "name": "if", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "if", + "text": " ", + "kind": "space" + }, + { + "text": "TypeError", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "TypeErrorConstructor", + "kind": "interfaceName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "message", + "kind": "parameterName" + }, + { + "text": "?", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "TypeError", + "kind": "localName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "+", + "kind": "operator" + }, + { + "text": "1", + "kind": "numericLiteral" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "overload", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "interface", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "TypeError", + "kind": "localName" } - ] + ], + "documentation": [] }, { - "name": "import", + "name": "typeof", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "import", + "text": "typeof", "kind": "keyword" } ] }, { - "name": "in", - "kind": "keyword", - "kindModifiers": "", + "name": "Uint16Array", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "in", + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint16Array", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint16Array", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint16ArrayConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ + { + "text": "A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" } ] }, { - "name": "instanceof", - "kind": "keyword", - "kindModifiers": "", + "name": "Uint32Array", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "instanceof", + "text": "interface", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint32Array", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint32Array", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint32ArrayConstructor", + "kind": "interfaceName" + } + ], + "documentation": [ + { + "text": "A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" } ] }, { - "name": "new", - "kind": "keyword", - "kindModifiers": "", + "name": "Uint8Array", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "new", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "null", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "null", + "text": " ", + "kind": "space" + }, + { + "text": "Uint8Array", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint8Array", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint8ArrayConstructor", + "kind": "interfaceName" } - ] - }, - { - "name": "return", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "return", - "kind": "keyword" + "text": "A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the\r\nrequested number of bytes could not be allocated an exception is raised.", + "kind": "text" } ] }, { - "name": "super", - "kind": "keyword", - "kindModifiers": "", + "name": "Uint8ClampedArray", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "super", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "switch", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "switch", + "text": " ", + "kind": "space" + }, + { + "text": "Uint8ClampedArray", + "kind": "localName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint8ClampedArray", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Uint8ClampedArrayConstructor", + "kind": "interfaceName" } - ] - }, - { - "name": "this", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "this", - "kind": "keyword" + "text": "A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0.\r\nIf the requested number of bytes could not be allocated an exception is raised.", + "kind": "text" } ] }, { - "name": "throw", - "kind": "keyword", + "name": "undefined", + "kind": "var", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "throw", + "text": "var", "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "undefined", + "kind": "propertyName" } - ] + ], + "documentation": [] }, { - "name": "true", - "kind": "keyword", - "kindModifiers": "", + "name": "URIError", + "kind": "var", + "kindModifiers": "declare", "sortText": "15", "displayParts": [ { - "text": "true", - "kind": "keyword" - } - ] - }, - { - "name": "try", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "URIError", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "URIErrorConstructor", + "kind": "interfaceName" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "message", + "kind": "parameterName" + }, + { + "text": "?", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "URIError", + "kind": "localName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "+", + "kind": "operator" + }, + { + "text": "1", + "kind": "numericLiteral" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "overload", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": "\n", + "kind": "lineBreak" + }, { - "text": "try", + "text": "interface", "kind": "keyword" - } - ] - }, - { - "name": "typeof", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "typeof", - "kind": "keyword" + "text": " ", + "kind": "space" + }, + { + "text": "URIError", + "kind": "localName" } - ] + ], + "documentation": [] }, { "name": "var", @@ -16630,99 +16534,195 @@ ] }, { - "name": "implements", + "name": "yield", "kind": "keyword", "kindModifiers": "", "sortText": "15", "displayParts": [ { - "text": "implements", + "text": "yield", "kind": "keyword" } ] }, { - "name": "interface", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", + "name": "escape", + "kind": "function", + "kindModifiers": "deprecated,declare", + "sortText": "z15", "displayParts": [ { - "text": "interface", + "text": "function", "kind": "keyword" - } - ] - }, - { - "name": "let", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "let", + "text": " ", + "kind": "space" + }, + { + "text": "escape", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "string", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", "kind": "keyword" - } - ] - }, - { - "name": "package", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "package", + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", "kind": "keyword" } - ] - }, - { - "name": "yield", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "documentation": [ { - "text": "yield", - "kind": "keyword" + "text": "Computes a new string in which certain characters have been replaced by a hexadecimal escape sequence.", + "kind": "text" } - ] - }, - { - "name": "as", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + ], + "tags": [ { - "text": "as", - "kind": "keyword" + "name": "deprecated", + "text": [ + { + "text": "A legacy feature for browser compatibility", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string value", + "kind": "text" + } + ] } ] }, { - "name": "async", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", + "name": "unescape", + "kind": "function", + "kindModifiers": "deprecated,declare", + "sortText": "z15", "displayParts": [ { - "text": "async", + "text": "function", "kind": "keyword" - } - ] - }, - { - "name": "await", - "kind": "keyword", - "kindModifiers": "", - "sortText": "15", - "displayParts": [ + }, { - "text": "await", + "text": " ", + "kind": "space" + }, + { + "text": "unescape", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "string", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", "kind": "keyword" } + ], + "documentation": [ + { + "text": "Computes a new string in which hexadecimal escape sequences are replaced with the character that it represents.", + "kind": "text" + } + ], + "tags": [ + { + "name": "deprecated", + "text": [ + { + "text": "A legacy feature for browser compatibility", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "string", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A string value", + "kind": "text" + } + ] + } ] } ] diff --git a/tests/baselines/reference/completionsJSDocTags.baseline b/tests/baselines/reference/completionsJSDocTags.baseline index 5df26afeb2dda..4c876248179c9 100644 --- a/tests/baselines/reference/completionsJSDocTags.baseline +++ b/tests/baselines/reference/completionsJSDocTags.baseline @@ -77,8 +77,8 @@ ] }, { - "name": "property1", - "kind": "property", + "name": "method3", + "kind": "method", "kindModifiers": "", "sortText": "11", "displayParts": [ @@ -87,7 +87,7 @@ "kind": "punctuation" }, { - "text": "property", + "text": "method", "kind": "text" }, { @@ -107,8 +107,16 @@ "kind": "punctuation" }, { - "text": "property1", - "kind": "propertyName" + "text": "method3", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -119,17 +127,17 @@ "kind": "space" }, { - "text": "string", + "text": "number", "kind": "keyword" } ], "documentation": [], "tags": [ { - "name": "mytag", + "name": "returns", "text": [ { - "text": "comment1 comment2", + "text": "a value", "kind": "text" } ] @@ -137,8 +145,8 @@ ] }, { - "name": "property2", - "kind": "property", + "name": "method4", + "kind": "method", "kindModifiers": "", "sortText": "11", "displayParts": [ @@ -147,7 +155,7 @@ "kind": "punctuation" }, { - "text": "property", + "text": "method", "kind": "text" }, { @@ -167,8 +175,32 @@ "kind": "punctuation" }, { - "text": "property2", - "kind": "propertyName" + "text": "method4", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "foo", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -186,33 +218,38 @@ "documentation": [], "tags": [ { - "name": "mytag1", + "name": "param", "text": [ { - "text": "some comments\nsome more comments about mytag1", + "text": "foo", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A value.", "kind": "text" } ] }, { - "name": "mytag2", + "name": "returns", "text": [ { - "text": "here all the comments are on a new line", + "text": "Another value", "kind": "text" } ] }, - { - "name": "mytag3" - }, { "name": "mytag" } ] }, { - "name": "method3", + "name": "method5", "kind": "method", "kindModifiers": "", "sortText": "11", @@ -242,7 +279,7 @@ "kind": "punctuation" }, { - "text": "method3", + "text": "method5", "kind": "methodName" }, { @@ -262,25 +299,19 @@ "kind": "space" }, { - "text": "number", + "text": "void", "kind": "keyword" } ], "documentation": [], "tags": [ { - "name": "returns", - "text": [ - { - "text": "a value", - "kind": "text" - } - ] + "name": "mytag" } ] }, { - "name": "method4", + "name": "newMethod", "kind": "method", "kindModifiers": "", "sortText": "11", @@ -310,29 +341,13 @@ "kind": "punctuation" }, { - "text": "method4", + "text": "newMethod", "kind": "methodName" }, { "text": "(", "kind": "punctuation" }, - { - "text": "foo", - "kind": "parameterName" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - }, { "text": ")", "kind": "punctuation" @@ -346,46 +361,31 @@ "kind": "space" }, { - "text": "number", + "text": "void", "kind": "keyword" } ], - "documentation": [], - "tags": [ + "documentation": [ { - "name": "param", - "text": [ - { - "text": "foo", - "kind": "parameterName" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "A value.", - "kind": "text" - } - ] - }, + "text": "method documentation", + "kind": "text" + } + ], + "tags": [ { - "name": "returns", + "name": "mytag", "text": [ { - "text": "Another value", + "text": "a JSDoc tag", "kind": "text" } ] - }, - { - "name": "mytag" } ] }, { - "name": "method5", - "kind": "method", + "name": "property1", + "kind": "property", "kindModifiers": "", "sortText": "11", "displayParts": [ @@ -394,7 +394,7 @@ "kind": "punctuation" }, { - "text": "method", + "text": "property", "kind": "text" }, { @@ -414,16 +414,8 @@ "kind": "punctuation" }, { - "text": "method5", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" + "text": "property1", + "kind": "propertyName" }, { "text": ":", @@ -434,20 +426,26 @@ "kind": "space" }, { - "text": "void", + "text": "string", "kind": "keyword" } ], "documentation": [], "tags": [ { - "name": "mytag" + "name": "mytag", + "text": [ + { + "text": "comment1 comment2", + "kind": "text" + } + ] } ] }, { - "name": "newMethod", - "kind": "method", + "name": "property2", + "kind": "property", "kindModifiers": "", "sortText": "11", "displayParts": [ @@ -456,7 +454,7 @@ "kind": "punctuation" }, { - "text": "method", + "text": "property", "kind": "text" }, { @@ -476,16 +474,8 @@ "kind": "punctuation" }, { - "text": "newMethod", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" + "text": "property2", + "kind": "propertyName" }, { "text": ":", @@ -496,25 +486,35 @@ "kind": "space" }, { - "text": "void", + "text": "number", "kind": "keyword" } ], - "documentation": [ - { - "text": "method documentation", - "kind": "text" - } - ], + "documentation": [], "tags": [ { - "name": "mytag", + "name": "mytag1", "text": [ { - "text": "a JSDoc tag", + "text": "some comments\nsome more comments about mytag1", "kind": "text" } ] + }, + { + "name": "mytag2", + "text": [ + { + "text": "here all the comments are on a new line", + "kind": "text" + } + ] + }, + { + "name": "mytag3" + }, + { + "name": "mytag" } ] } diff --git a/tests/baselines/reference/completionsSalsaMethodsOnAssignedFunctionExpressions.baseline b/tests/baselines/reference/completionsSalsaMethodsOnAssignedFunctionExpressions.baseline index 8db58c0dee683..4c5bcf2c68d03 100644 --- a/tests/baselines/reference/completionsSalsaMethodsOnAssignedFunctionExpressions.baseline +++ b/tests/baselines/reference/completionsSalsaMethodsOnAssignedFunctionExpressions.baseline @@ -124,38 +124,38 @@ ] }, { - "name": "C", + "name": "a", "kind": "warning", "kindModifiers": "", - "sortText": "17", + "sortText": "18", "isFromUncheckedFile": true }, { - "name": "f", + "name": "C", "kind": "warning", "kindModifiers": "", - "sortText": "17", + "sortText": "18", "isFromUncheckedFile": true }, { - "name": "a", + "name": "f", "kind": "warning", "kindModifiers": "", - "sortText": "17", + "sortText": "18", "isFromUncheckedFile": true }, { "name": "prototype", "kind": "warning", "kindModifiers": "", - "sortText": "17", + "sortText": "18", "isFromUncheckedFile": true }, { "name": "x", "kind": "warning", "kindModifiers": "", - "sortText": "17", + "sortText": "18", "isFromUncheckedFile": true } ] diff --git a/tests/baselines/reference/completionsStringMethods.baseline b/tests/baselines/reference/completionsStringMethods.baseline index f9caf9cd86a72..327daf9f0d9a2 100644 --- a/tests/baselines/reference/completionsStringMethods.baseline +++ b/tests/baselines/reference/completionsStringMethods.baseline @@ -10,68 +10,6 @@ "isMemberCompletion": true, "isNewIdentifierLocation": false, "entries": [ - { - "name": "toString", - "kind": "method", - "kindModifiers": "declare", - "sortText": "11", - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "String", - "kind": "localName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "toString", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Returns a string representation of a string.", - "kind": "text" - } - ] - }, { "name": "charAt", "kind": "method", @@ -659,6 +597,60 @@ } ] }, + { + "name": "length", + "kind": "property", + "kindModifiers": "declare", + "sortText": "11", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "String", + "kind": "localName" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "length", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } + ], + "documentation": [ + { + "text": "Returns the length of a String object.", + "kind": "text" + } + ] + }, { "name": "localeCompare", "kind": "method", @@ -1647,7 +1639,7 @@ ] }, { - "name": "toLowerCase", + "name": "toLocaleLowerCase", "kind": "method", "kindModifiers": "declare", "sortText": "11", @@ -1677,13 +1669,57 @@ "kind": "punctuation" }, { - "text": "toLowerCase", + "text": "toLocaleLowerCase", "kind": "methodName" }, { "text": "(", "kind": "punctuation" }, + { + "text": "locales", + "kind": "parameterName" + }, + { + "text": "?", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "|", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": "[", + "kind": "punctuation" + }, + { + "text": "]", + "kind": "punctuation" + }, { "text": ")", "kind": "punctuation" @@ -1703,13 +1739,13 @@ ], "documentation": [ { - "text": "Converts all the alphabetic characters in a string to lowercase.", + "text": "Converts all alphabetic characters to lowercase, taking into account the host environment's current locale.", "kind": "text" } ] }, { - "name": "toLocaleLowerCase", + "name": "toLocaleUpperCase", "kind": "method", "kindModifiers": "declare", "sortText": "11", @@ -1739,7 +1775,7 @@ "kind": "punctuation" }, { - "text": "toLocaleLowerCase", + "text": "toLocaleUpperCase", "kind": "methodName" }, { @@ -1809,13 +1845,13 @@ ], "documentation": [ { - "text": "Converts all alphabetic characters to lowercase, taking into account the host environment's current locale.", + "text": "Returns a string where all alphabetic characters have been converted to uppercase, taking into account the host environment's current locale.", "kind": "text" } ] }, { - "name": "toUpperCase", + "name": "toLowerCase", "kind": "method", "kindModifiers": "declare", "sortText": "11", @@ -1845,7 +1881,7 @@ "kind": "punctuation" }, { - "text": "toUpperCase", + "text": "toLowerCase", "kind": "methodName" }, { @@ -1871,13 +1907,13 @@ ], "documentation": [ { - "text": "Converts all the alphabetic characters in a string to uppercase.", + "text": "Converts all the alphabetic characters in a string to lowercase.", "kind": "text" } ] }, { - "name": "toLocaleUpperCase", + "name": "toString", "kind": "method", "kindModifiers": "declare", "sortText": "11", @@ -1907,7 +1943,7 @@ "kind": "punctuation" }, { - "text": "toLocaleUpperCase", + "text": "toString", "kind": "methodName" }, { @@ -1915,11 +1951,7 @@ "kind": "punctuation" }, { - "text": "locales", - "kind": "parameterName" - }, - { - "text": "?", + "text": ")", "kind": "punctuation" }, { @@ -1933,13 +1965,31 @@ { "text": "string", "kind": "keyword" + } + ], + "documentation": [ + { + "text": "Returns a string representation of a string.", + "kind": "text" + } + ] + }, + { + "name": "toUpperCase", + "kind": "method", + "kindModifiers": "declare", + "sortText": "11", + "displayParts": [ + { + "text": "(", + "kind": "punctuation" }, { - "text": " ", - "kind": "space" + "text": "method", + "kind": "text" }, { - "text": "|", + "text": ")", "kind": "punctuation" }, { @@ -1947,15 +1997,19 @@ "kind": "space" }, { - "text": "string", - "kind": "keyword" + "text": "String", + "kind": "localName" }, { - "text": "[", + "text": ".", "kind": "punctuation" }, { - "text": "]", + "text": "toUpperCase", + "kind": "methodName" + }, + { + "text": "(", "kind": "punctuation" }, { @@ -1977,7 +2031,7 @@ ], "documentation": [ { - "text": "Returns a string where all alphabetic characters have been converted to uppercase, taking into account the host environment's current locale.", + "text": "Converts all the alphabetic characters in a string to uppercase.", "kind": "text" } ] @@ -2045,8 +2099,8 @@ ] }, { - "name": "length", - "kind": "property", + "name": "valueOf", + "kind": "method", "kindModifiers": "declare", "sortText": "11", "displayParts": [ @@ -2055,7 +2109,7 @@ "kind": "punctuation" }, { - "text": "property", + "text": "method", "kind": "text" }, { @@ -2075,8 +2129,16 @@ "kind": "punctuation" }, { - "text": "length", - "kind": "propertyName" + "text": "valueOf", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" }, { "text": ":", @@ -2087,13 +2149,13 @@ "kind": "space" }, { - "text": "number", + "text": "string", "kind": "keyword" } ], "documentation": [ { - "text": "Returns the length of a String object.", + "text": "Returns the primitive value of the specified object.", "kind": "text" } ] @@ -2102,7 +2164,7 @@ "name": "substr", "kind": "method", "kindModifiers": "deprecated,declare", - "sortText": "19", + "sortText": "z11", "displayParts": [ { "text": "(", @@ -2248,68 +2310,6 @@ ] } ] - }, - { - "name": "valueOf", - "kind": "method", - "kindModifiers": "declare", - "sortText": "11", - "displayParts": [ - { - "text": "(", - "kind": "punctuation" - }, - { - "text": "method", - "kind": "text" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "String", - "kind": "localName" - }, - { - "text": ".", - "kind": "punctuation" - }, - { - "text": "valueOf", - "kind": "methodName" - }, - { - "text": "(", - "kind": "punctuation" - }, - { - "text": ")", - "kind": "punctuation" - }, - { - "text": ":", - "kind": "punctuation" - }, - { - "text": " ", - "kind": "space" - }, - { - "text": "string", - "kind": "keyword" - } - ], - "documentation": [ - { - "text": "Returns the primitive value of the specified object.", - "kind": "text" - } - ] } ] } diff --git a/tests/baselines/reference/complicatedIndexedAccessKeyofReliesOnKeyofNeverUpperBound.errors.txt b/tests/baselines/reference/complicatedIndexedAccessKeyofReliesOnKeyofNeverUpperBound.errors.txt index af63c18523d6a..ec5fce9a3825c 100644 --- a/tests/baselines/reference/complicatedIndexedAccessKeyofReliesOnKeyofNeverUpperBound.errors.txt +++ b/tests/baselines/reference/complicatedIndexedAccessKeyofReliesOnKeyofNeverUpperBound.errors.txt @@ -9,16 +9,14 @@ tests/cases/compiler/complicatedIndexedAccessKeyofReliesOnKeyofNeverUpperBound.t Type '"text" | "email"' is not assignable to type 'ChannelOfType["type"]'. Type '"text"' is not assignable to type 'ChannelOfType["type"]'. Type '"text"' is not assignable to type 'T & "text"'. - Type '"text"' is not assignable to type 'T'. - '"text"' is assignable to the constraint of type 'T', but 'T' could be instantiated with a different subtype of constraint '"text" | "email"'. - Type 'T' is not assignable to type 'T & "text"'. - Type '"text" | "email"' is not assignable to type 'T & "text"'. - Type '"text"' is not assignable to type 'T & "text"'. - Type '"text"' is not assignable to type 'T'. - '"text"' is assignable to the constraint of type 'T', but 'T' could be instantiated with a different subtype of constraint '"text" | "email"'. - Type 'T' is not assignable to type '"text"'. - Type '"text" | "email"' is not assignable to type '"text"'. - Type '"email"' is not assignable to type '"text"'. + Type 'T' is not assignable to type 'T & "text"'. + Type '"text" | "email"' is not assignable to type 'T & "text"'. + Type '"text"' is not assignable to type 'T & "text"'. + Type '"text"' is not assignable to type 'T'. + '"text"' is assignable to the constraint of type 'T', but 'T' could be instantiated with a different subtype of constraint '"text" | "email"'. + Type 'T' is not assignable to type '"text"'. + Type '"text" | "email"' is not assignable to type '"text"'. + Type '"email"' is not assignable to type '"text"'. ==== tests/cases/compiler/complicatedIndexedAccessKeyofReliesOnKeyofNeverUpperBound.ts (1 errors) ==== @@ -67,16 +65,14 @@ tests/cases/compiler/complicatedIndexedAccessKeyofReliesOnKeyofNeverUpperBound.t !!! error TS2322: Type '"text" | "email"' is not assignable to type 'ChannelOfType["type"]'. !!! error TS2322: Type '"text"' is not assignable to type 'ChannelOfType["type"]'. !!! error TS2322: Type '"text"' is not assignable to type 'T & "text"'. -!!! error TS2322: Type '"text"' is not assignable to type 'T'. -!!! error TS2322: '"text"' is assignable to the constraint of type 'T', but 'T' could be instantiated with a different subtype of constraint '"text" | "email"'. -!!! error TS2322: Type 'T' is not assignable to type 'T & "text"'. -!!! error TS2322: Type '"text" | "email"' is not assignable to type 'T & "text"'. -!!! error TS2322: Type '"text"' is not assignable to type 'T & "text"'. -!!! error TS2322: Type '"text"' is not assignable to type 'T'. -!!! error TS2322: '"text"' is assignable to the constraint of type 'T', but 'T' could be instantiated with a different subtype of constraint '"text" | "email"'. -!!! error TS2322: Type 'T' is not assignable to type '"text"'. -!!! error TS2322: Type '"text" | "email"' is not assignable to type '"text"'. -!!! error TS2322: Type '"email"' is not assignable to type '"text"'. +!!! error TS2322: Type 'T' is not assignable to type 'T & "text"'. +!!! error TS2322: Type '"text" | "email"' is not assignable to type 'T & "text"'. +!!! error TS2322: Type '"text"' is not assignable to type 'T & "text"'. +!!! error TS2322: Type '"text"' is not assignable to type 'T'. +!!! error TS2322: '"text"' is assignable to the constraint of type 'T', but 'T' could be instantiated with a different subtype of constraint '"text" | "email"'. +!!! error TS2322: Type 'T' is not assignable to type '"text"'. +!!! error TS2322: Type '"text" | "email"' is not assignable to type '"text"'. +!!! error TS2322: Type '"email"' is not assignable to type '"text"'. } const newTextChannel = makeNewChannel('text'); diff --git a/tests/baselines/reference/compoundExponentiationAssignmentLHSIsValue.js b/tests/baselines/reference/compoundExponentiationAssignmentLHSIsValue.js index 8cc2cbeb53656..73fca72a9b2e6 100644 --- a/tests/baselines/reference/compoundExponentiationAssignmentLHSIsValue.js +++ b/tests/baselines/reference/compoundExponentiationAssignmentLHSIsValue.js @@ -150,8 +150,9 @@ _a = Math.pow(['', ''], value), '' = _a[0], '' = _a[1]; var Derived = /** @class */ (function (_super) { __extends(Derived, _super); function Derived() { + var _this = this; var _a; - var _this = _super.call(this) || this; + _this = _super.call(this) || this; (_a = _super.prototype). = Math.pow(_a., value); return _this; } diff --git a/tests/baselines/reference/computedPropertyName.js b/tests/baselines/reference/computedPropertyName.js index 27adbb6113886..d1e2e359311ae 100644 --- a/tests/baselines/reference/computedPropertyName.js +++ b/tests/baselines/reference/computedPropertyName.js @@ -56,8 +56,8 @@ class D { constructor() { this[_a] = 0; // Error } + static { _a = onInit; } } -_a = onInit; class E { [onInit]() { } // Error } diff --git a/tests/baselines/reference/conditionalDoesntLeakUninstantiatedTypeParameter.errors.txt b/tests/baselines/reference/conditionalDoesntLeakUninstantiatedTypeParameter.errors.txt new file mode 100644 index 0000000000000..d6561f60989cc --- /dev/null +++ b/tests/baselines/reference/conditionalDoesntLeakUninstantiatedTypeParameter.errors.txt @@ -0,0 +1,14 @@ +tests/cases/compiler/conditionalDoesntLeakUninstantiatedTypeParameter.ts(7,7): error TS2322: Type 'string' is not assignable to type 'number'. + + +==== tests/cases/compiler/conditionalDoesntLeakUninstantiatedTypeParameter.ts (1 errors) ==== + interface Synthetic {} + type SyntheticDestination = U extends Synthetic ? V : never; + type TestSynthetic = // Resolved to T, should be `number` or an inference failure (`unknown`) + SyntheticDestination>; + + const y: TestSynthetic = 3; // Type '3' is not assignable to type 'T'. (shouldn't error) + const z: TestSynthetic = '3'; // Type '"3""' is not assignable to type 'T'. (should not mention T) + ~ +!!! error TS2322: Type 'string' is not assignable to type 'number'. + \ No newline at end of file diff --git a/tests/baselines/reference/conditionalDoesntLeakUninstantiatedTypeParameter.js b/tests/baselines/reference/conditionalDoesntLeakUninstantiatedTypeParameter.js new file mode 100644 index 0000000000000..8813585f62bee --- /dev/null +++ b/tests/baselines/reference/conditionalDoesntLeakUninstantiatedTypeParameter.js @@ -0,0 +1,13 @@ +//// [conditionalDoesntLeakUninstantiatedTypeParameter.ts] +interface Synthetic {} +type SyntheticDestination = U extends Synthetic ? V : never; +type TestSynthetic = // Resolved to T, should be `number` or an inference failure (`unknown`) + SyntheticDestination>; + +const y: TestSynthetic = 3; // Type '3' is not assignable to type 'T'. (shouldn't error) +const z: TestSynthetic = '3'; // Type '"3""' is not assignable to type 'T'. (should not mention T) + + +//// [conditionalDoesntLeakUninstantiatedTypeParameter.js] +var y = 3; // Type '3' is not assignable to type 'T'. (shouldn't error) +var z = '3'; // Type '"3""' is not assignable to type 'T'. (should not mention T) diff --git a/tests/baselines/reference/conditionalDoesntLeakUninstantiatedTypeParameter.symbols b/tests/baselines/reference/conditionalDoesntLeakUninstantiatedTypeParameter.symbols new file mode 100644 index 0000000000000..7a66712e5feb7 --- /dev/null +++ b/tests/baselines/reference/conditionalDoesntLeakUninstantiatedTypeParameter.symbols @@ -0,0 +1,32 @@ +=== tests/cases/compiler/conditionalDoesntLeakUninstantiatedTypeParameter.ts === +interface Synthetic {} +>Synthetic : Symbol(Synthetic, Decl(conditionalDoesntLeakUninstantiatedTypeParameter.ts, 0, 0)) +>A : Symbol(A, Decl(conditionalDoesntLeakUninstantiatedTypeParameter.ts, 0, 20)) +>B : Symbol(B, Decl(conditionalDoesntLeakUninstantiatedTypeParameter.ts, 0, 22)) +>A : Symbol(A, Decl(conditionalDoesntLeakUninstantiatedTypeParameter.ts, 0, 20)) + +type SyntheticDestination = U extends Synthetic ? V : never; +>SyntheticDestination : Symbol(SyntheticDestination, Decl(conditionalDoesntLeakUninstantiatedTypeParameter.ts, 0, 38)) +>T : Symbol(T, Decl(conditionalDoesntLeakUninstantiatedTypeParameter.ts, 1, 26)) +>U : Symbol(U, Decl(conditionalDoesntLeakUninstantiatedTypeParameter.ts, 1, 28)) +>U : Symbol(U, Decl(conditionalDoesntLeakUninstantiatedTypeParameter.ts, 1, 28)) +>Synthetic : Symbol(Synthetic, Decl(conditionalDoesntLeakUninstantiatedTypeParameter.ts, 0, 0)) +>T : Symbol(T, Decl(conditionalDoesntLeakUninstantiatedTypeParameter.ts, 1, 26)) +>V : Symbol(V, Decl(conditionalDoesntLeakUninstantiatedTypeParameter.ts, 1, 62)) +>V : Symbol(V, Decl(conditionalDoesntLeakUninstantiatedTypeParameter.ts, 1, 62)) + +type TestSynthetic = // Resolved to T, should be `number` or an inference failure (`unknown`) +>TestSynthetic : Symbol(TestSynthetic, Decl(conditionalDoesntLeakUninstantiatedTypeParameter.ts, 1, 78)) + + SyntheticDestination>; +>SyntheticDestination : Symbol(SyntheticDestination, Decl(conditionalDoesntLeakUninstantiatedTypeParameter.ts, 0, 38)) +>Synthetic : Symbol(Synthetic, Decl(conditionalDoesntLeakUninstantiatedTypeParameter.ts, 0, 0)) + +const y: TestSynthetic = 3; // Type '3' is not assignable to type 'T'. (shouldn't error) +>y : Symbol(y, Decl(conditionalDoesntLeakUninstantiatedTypeParameter.ts, 5, 5)) +>TestSynthetic : Symbol(TestSynthetic, Decl(conditionalDoesntLeakUninstantiatedTypeParameter.ts, 1, 78)) + +const z: TestSynthetic = '3'; // Type '"3""' is not assignable to type 'T'. (should not mention T) +>z : Symbol(z, Decl(conditionalDoesntLeakUninstantiatedTypeParameter.ts, 6, 5)) +>TestSynthetic : Symbol(TestSynthetic, Decl(conditionalDoesntLeakUninstantiatedTypeParameter.ts, 1, 78)) + diff --git a/tests/baselines/reference/conditionalDoesntLeakUninstantiatedTypeParameter.types b/tests/baselines/reference/conditionalDoesntLeakUninstantiatedTypeParameter.types new file mode 100644 index 0000000000000..4b08f80d3f521 --- /dev/null +++ b/tests/baselines/reference/conditionalDoesntLeakUninstantiatedTypeParameter.types @@ -0,0 +1,18 @@ +=== tests/cases/compiler/conditionalDoesntLeakUninstantiatedTypeParameter.ts === +interface Synthetic {} +type SyntheticDestination = U extends Synthetic ? V : never; +>SyntheticDestination : SyntheticDestination + +type TestSynthetic = // Resolved to T, should be `number` or an inference failure (`unknown`) +>TestSynthetic : number + + SyntheticDestination>; + +const y: TestSynthetic = 3; // Type '3' is not assignable to type 'T'. (shouldn't error) +>y : number +>3 : 3 + +const z: TestSynthetic = '3'; // Type '"3""' is not assignable to type 'T'. (should not mention T) +>z : number +>'3' : "3" + diff --git a/tests/baselines/reference/conditionalTypeBasedContextualTypeReturnTypeWidening.js b/tests/baselines/reference/conditionalTypeBasedContextualTypeReturnTypeWidening.js new file mode 100644 index 0000000000000..aed6a5c9ff425 --- /dev/null +++ b/tests/baselines/reference/conditionalTypeBasedContextualTypeReturnTypeWidening.js @@ -0,0 +1,19 @@ +//// [conditionalTypeBasedContextualTypeReturnTypeWidening.ts] +declare function useState1(initialState: (S extends (() => any) ? never : S) | (() => S)): S; // No args +declare function useState2(initialState: (S extends ((...args: any[]) => any) ? never : S) | (() => S)): S; // Any args + +const func1 = useState1(() => () => 0); +const func2 = useState2(() => () => 0); + +declare function useState3(initialState: (T extends (() => any) ? never : T) | (() => S)): S; // No args +declare function useState4(initialState: (T extends ((...args: any[]) => any) ? never : T) | (() => S)): S; // Any args + +const func3 = useState1(() => () => 0); +const func4 = useState2(() => () => 0); + + +//// [conditionalTypeBasedContextualTypeReturnTypeWidening.js] +var func1 = useState1(function () { return function () { return 0; }; }); +var func2 = useState2(function () { return function () { return 0; }; }); +var func3 = useState1(function () { return function () { return 0; }; }); +var func4 = useState2(function () { return function () { return 0; }; }); diff --git a/tests/baselines/reference/conditionalTypeBasedContextualTypeReturnTypeWidening.symbols b/tests/baselines/reference/conditionalTypeBasedContextualTypeReturnTypeWidening.symbols new file mode 100644 index 0000000000000..d9d8304322022 --- /dev/null +++ b/tests/baselines/reference/conditionalTypeBasedContextualTypeReturnTypeWidening.symbols @@ -0,0 +1,59 @@ +=== tests/cases/compiler/conditionalTypeBasedContextualTypeReturnTypeWidening.ts === +declare function useState1(initialState: (S extends (() => any) ? never : S) | (() => S)): S; // No args +>useState1 : Symbol(useState1, Decl(conditionalTypeBasedContextualTypeReturnTypeWidening.ts, 0, 0)) +>S : Symbol(S, Decl(conditionalTypeBasedContextualTypeReturnTypeWidening.ts, 0, 27)) +>initialState : Symbol(initialState, Decl(conditionalTypeBasedContextualTypeReturnTypeWidening.ts, 0, 30)) +>S : Symbol(S, Decl(conditionalTypeBasedContextualTypeReturnTypeWidening.ts, 0, 27)) +>S : Symbol(S, Decl(conditionalTypeBasedContextualTypeReturnTypeWidening.ts, 0, 27)) +>S : Symbol(S, Decl(conditionalTypeBasedContextualTypeReturnTypeWidening.ts, 0, 27)) +>S : Symbol(S, Decl(conditionalTypeBasedContextualTypeReturnTypeWidening.ts, 0, 27)) + +declare function useState2(initialState: (S extends ((...args: any[]) => any) ? never : S) | (() => S)): S; // Any args +>useState2 : Symbol(useState2, Decl(conditionalTypeBasedContextualTypeReturnTypeWidening.ts, 0, 96)) +>S : Symbol(S, Decl(conditionalTypeBasedContextualTypeReturnTypeWidening.ts, 1, 27)) +>initialState : Symbol(initialState, Decl(conditionalTypeBasedContextualTypeReturnTypeWidening.ts, 1, 30)) +>S : Symbol(S, Decl(conditionalTypeBasedContextualTypeReturnTypeWidening.ts, 1, 27)) +>args : Symbol(args, Decl(conditionalTypeBasedContextualTypeReturnTypeWidening.ts, 1, 57)) +>S : Symbol(S, Decl(conditionalTypeBasedContextualTypeReturnTypeWidening.ts, 1, 27)) +>S : Symbol(S, Decl(conditionalTypeBasedContextualTypeReturnTypeWidening.ts, 1, 27)) +>S : Symbol(S, Decl(conditionalTypeBasedContextualTypeReturnTypeWidening.ts, 1, 27)) + +const func1 = useState1(() => () => 0); +>func1 : Symbol(func1, Decl(conditionalTypeBasedContextualTypeReturnTypeWidening.ts, 3, 5)) +>useState1 : Symbol(useState1, Decl(conditionalTypeBasedContextualTypeReturnTypeWidening.ts, 0, 0)) + +const func2 = useState2(() => () => 0); +>func2 : Symbol(func2, Decl(conditionalTypeBasedContextualTypeReturnTypeWidening.ts, 4, 5)) +>useState2 : Symbol(useState2, Decl(conditionalTypeBasedContextualTypeReturnTypeWidening.ts, 0, 96)) + +declare function useState3(initialState: (T extends (() => any) ? never : T) | (() => S)): S; // No args +>useState3 : Symbol(useState3, Decl(conditionalTypeBasedContextualTypeReturnTypeWidening.ts, 4, 39)) +>S : Symbol(S, Decl(conditionalTypeBasedContextualTypeReturnTypeWidening.ts, 6, 27)) +>T : Symbol(T, Decl(conditionalTypeBasedContextualTypeReturnTypeWidening.ts, 6, 29)) +>S : Symbol(S, Decl(conditionalTypeBasedContextualTypeReturnTypeWidening.ts, 6, 27)) +>initialState : Symbol(initialState, Decl(conditionalTypeBasedContextualTypeReturnTypeWidening.ts, 6, 43)) +>T : Symbol(T, Decl(conditionalTypeBasedContextualTypeReturnTypeWidening.ts, 6, 29)) +>T : Symbol(T, Decl(conditionalTypeBasedContextualTypeReturnTypeWidening.ts, 6, 29)) +>S : Symbol(S, Decl(conditionalTypeBasedContextualTypeReturnTypeWidening.ts, 6, 27)) +>S : Symbol(S, Decl(conditionalTypeBasedContextualTypeReturnTypeWidening.ts, 6, 27)) + +declare function useState4(initialState: (T extends ((...args: any[]) => any) ? never : T) | (() => S)): S; // Any args +>useState4 : Symbol(useState4, Decl(conditionalTypeBasedContextualTypeReturnTypeWidening.ts, 6, 109)) +>S : Symbol(S, Decl(conditionalTypeBasedContextualTypeReturnTypeWidening.ts, 7, 27)) +>T : Symbol(T, Decl(conditionalTypeBasedContextualTypeReturnTypeWidening.ts, 7, 29)) +>S : Symbol(S, Decl(conditionalTypeBasedContextualTypeReturnTypeWidening.ts, 7, 27)) +>initialState : Symbol(initialState, Decl(conditionalTypeBasedContextualTypeReturnTypeWidening.ts, 7, 43)) +>T : Symbol(T, Decl(conditionalTypeBasedContextualTypeReturnTypeWidening.ts, 7, 29)) +>args : Symbol(args, Decl(conditionalTypeBasedContextualTypeReturnTypeWidening.ts, 7, 70)) +>T : Symbol(T, Decl(conditionalTypeBasedContextualTypeReturnTypeWidening.ts, 7, 29)) +>S : Symbol(S, Decl(conditionalTypeBasedContextualTypeReturnTypeWidening.ts, 7, 27)) +>S : Symbol(S, Decl(conditionalTypeBasedContextualTypeReturnTypeWidening.ts, 7, 27)) + +const func3 = useState1(() => () => 0); +>func3 : Symbol(func3, Decl(conditionalTypeBasedContextualTypeReturnTypeWidening.ts, 9, 5)) +>useState1 : Symbol(useState1, Decl(conditionalTypeBasedContextualTypeReturnTypeWidening.ts, 0, 0)) + +const func4 = useState2(() => () => 0); +>func4 : Symbol(func4, Decl(conditionalTypeBasedContextualTypeReturnTypeWidening.ts, 10, 5)) +>useState2 : Symbol(useState2, Decl(conditionalTypeBasedContextualTypeReturnTypeWidening.ts, 0, 96)) + diff --git a/tests/baselines/reference/conditionalTypeBasedContextualTypeReturnTypeWidening.types b/tests/baselines/reference/conditionalTypeBasedContextualTypeReturnTypeWidening.types new file mode 100644 index 0000000000000..ca6336e060f95 --- /dev/null +++ b/tests/baselines/reference/conditionalTypeBasedContextualTypeReturnTypeWidening.types @@ -0,0 +1,51 @@ +=== tests/cases/compiler/conditionalTypeBasedContextualTypeReturnTypeWidening.ts === +declare function useState1(initialState: (S extends (() => any) ? never : S) | (() => S)): S; // No args +>useState1 : (initialState: (S extends (() => any) ? never : S) | (() => S)) => S +>initialState : (S extends () => any ? never : S) | (() => S) + +declare function useState2(initialState: (S extends ((...args: any[]) => any) ? never : S) | (() => S)): S; // Any args +>useState2 : (initialState: (S extends (...args: any[]) => any ? never : S) | (() => S)) => S +>initialState : (S extends (...args: any[]) => any ? never : S) | (() => S) +>args : any[] + +const func1 = useState1(() => () => 0); +>func1 : () => 0 +>useState1(() => () => 0) : () => 0 +>useState1 : (initialState: (S extends () => any ? never : S) | (() => S)) => S +>() => () => 0 : () => () => 0 +>() => 0 : () => 0 +>0 : 0 + +const func2 = useState2(() => () => 0); +>func2 : () => 0 +>useState2(() => () => 0) : () => 0 +>useState2 : (initialState: (S extends (...args: any[]) => any ? never : S) | (() => S)) => S +>() => () => 0 : () => () => 0 +>() => 0 : () => 0 +>0 : 0 + +declare function useState3(initialState: (T extends (() => any) ? never : T) | (() => S)): S; // No args +>useState3 : (initialState: (T extends (() => any) ? never : T) | (() => S)) => S +>initialState : (T extends () => any ? never : T) | (() => S) + +declare function useState4(initialState: (T extends ((...args: any[]) => any) ? never : T) | (() => S)): S; // Any args +>useState4 : (initialState: (T extends (...args: any[]) => any ? never : T) | (() => S)) => S +>initialState : (T extends (...args: any[]) => any ? never : T) | (() => S) +>args : any[] + +const func3 = useState1(() => () => 0); +>func3 : () => 0 +>useState1(() => () => 0) : () => 0 +>useState1 : (initialState: (S extends () => any ? never : S) | (() => S)) => S +>() => () => 0 : () => () => 0 +>() => 0 : () => 0 +>0 : 0 + +const func4 = useState2(() => () => 0); +>func4 : () => 0 +>useState2(() => () => 0) : () => 0 +>useState2 : (initialState: (S extends (...args: any[]) => any ? never : S) | (() => S)) => S +>() => () => 0 : () => () => 0 +>() => 0 : () => 0 +>0 : 0 + diff --git a/tests/baselines/reference/conditionalTypeDoesntSpinForever.types b/tests/baselines/reference/conditionalTypeDoesntSpinForever.types index e60be08b85d4c..c1eee6deff83f 100644 --- a/tests/baselines/reference/conditionalTypeDoesntSpinForever.types +++ b/tests/baselines/reference/conditionalTypeDoesntSpinForever.types @@ -69,9 +69,9 @@ export enum PubSubRecordIsStoredInRedisAsA { >buildPubSubRecordType : (soFar: SO_FAR) => BuildPubSubRecordType >Object.assign({}, soFar, {name: instance as TYPE}) as SO_FAR & {name: TYPE} : SO_FAR & { name: TYPE; } >Object.assign({}, soFar, {name: instance as TYPE}) : SO_FAR & { name: TYPE; } ->Object.assign : { (target: T, source: U): T & U; (target: T, source1: U, source2: V): T & U & V; (target: T, source1: U, source2: V, source3: W): T & U & V & W; (target: object, ...sources: any[]): any; } +>Object.assign : { (target: T, source: U): T & U; (target: T, source1: U, source2: V): T & U & V; (target: T, source1: U, source2: V, source3: W): T & U & V & W; (target: object, ...sources: any[]): any; } >Object : ObjectConstructor ->assign : { (target: T, source: U): T & U; (target: T, source1: U, source2: V): T & U & V; (target: T, source1: U, source2: V, source3: W): T & U & V & W; (target: object, ...sources: any[]): any; } +>assign : { (target: T, source: U): T & U; (target: T, source1: U, source2: V): T & U & V; (target: T, source1: U, source2: V, source3: W): T & U & V & W; (target: object, ...sources: any[]): any; } >{} : {} >soFar : SO_FAR >{name: instance as TYPE} : { name: TYPE; } @@ -123,9 +123,9 @@ export enum PubSubRecordIsStoredInRedisAsA { >buildPubSubRecordType(Object.assign({}, soFar, {storedAs: PubSubRecordIsStoredInRedisAsA.jsonEncodedRedisString})) : BuildPubSubRecordType >buildPubSubRecordType : (soFar: SO_FAR) => BuildPubSubRecordType >Object.assign({}, soFar, {storedAs: PubSubRecordIsStoredInRedisAsA.jsonEncodedRedisString}) : SO_FAR & { storedAs: PubSubRecordIsStoredInRedisAsA; } ->Object.assign : { (target: T, source: U): T & U; (target: T, source1: U, source2: V): T & U & V; (target: T, source1: U, source2: V, source3: W): T & U & V & W; (target: object, ...sources: any[]): any; } +>Object.assign : { (target: T, source: U): T & U; (target: T, source1: U, source2: V): T & U & V; (target: T, source1: U, source2: V, source3: W): T & U & V & W; (target: object, ...sources: any[]): any; } >Object : ObjectConstructor ->assign : { (target: T, source: U): T & U; (target: T, source1: U, source2: V): T & U & V; (target: T, source1: U, source2: V, source3: W): T & U & V & W; (target: object, ...sources: any[]): any; } +>assign : { (target: T, source: U): T & U; (target: T, source1: U, source2: V): T & U & V; (target: T, source1: U, source2: V, source3: W): T & U & V & W; (target: object, ...sources: any[]): any; } >{} : {} >soFar : SO_FAR >{storedAs: PubSubRecordIsStoredInRedisAsA.jsonEncodedRedisString} : { storedAs: PubSubRecordIsStoredInRedisAsA.jsonEncodedRedisString; } @@ -147,9 +147,9 @@ export enum PubSubRecordIsStoredInRedisAsA { >buildPubSubRecordType(Object.assign({}, soFar, {storedAs: PubSubRecordIsStoredInRedisAsA.redisHash})) : BuildPubSubRecordType >buildPubSubRecordType : (soFar: SO_FAR) => BuildPubSubRecordType >Object.assign({}, soFar, {storedAs: PubSubRecordIsStoredInRedisAsA.redisHash}) : SO_FAR & { storedAs: PubSubRecordIsStoredInRedisAsA; } ->Object.assign : { (target: T, source: U): T & U; (target: T, source1: U, source2: V): T & U & V; (target: T, source1: U, source2: V, source3: W): T & U & V & W; (target: object, ...sources: any[]): any; } +>Object.assign : { (target: T, source: U): T & U; (target: T, source1: U, source2: V): T & U & V; (target: T, source1: U, source2: V, source3: W): T & U & V & W; (target: object, ...sources: any[]): any; } >Object : ObjectConstructor ->assign : { (target: T, source: U): T & U; (target: T, source1: U, source2: V): T & U & V; (target: T, source1: U, source2: V, source3: W): T & U & V & W; (target: object, ...sources: any[]): any; } +>assign : { (target: T, source: U): T & U; (target: T, source1: U, source2: V): T & U & V; (target: T, source1: U, source2: V, source3: W): T & U & V & W; (target: object, ...sources: any[]): any; } >{} : {} >soFar : SO_FAR >{storedAs: PubSubRecordIsStoredInRedisAsA.redisHash} : { storedAs: PubSubRecordIsStoredInRedisAsA.redisHash; } @@ -213,9 +213,9 @@ export enum PubSubRecordIsStoredInRedisAsA { >buildPubSubRecordType : (soFar: SO_FAR) => BuildPubSubRecordType >Object.assign({}, soFar, {identifier: instance as TYPE}) as SO_FAR & {identifier: TYPE} : SO_FAR & { identifier: TYPE; } >Object.assign({}, soFar, {identifier: instance as TYPE}) : SO_FAR & { identifier: TYPE; } ->Object.assign : { (target: T, source: U): T & U; (target: T, source1: U, source2: V): T & U & V; (target: T, source1: U, source2: V, source3: W): T & U & V & W; (target: object, ...sources: any[]): any; } +>Object.assign : { (target: T, source: U): T & U; (target: T, source1: U, source2: V): T & U & V; (target: T, source1: U, source2: V, source3: W): T & U & V & W; (target: object, ...sources: any[]): any; } >Object : ObjectConstructor ->assign : { (target: T, source: U): T & U; (target: T, source1: U, source2: V): T & U & V; (target: T, source1: U, source2: V, source3: W): T & U & V & W; (target: object, ...sources: any[]): any; } +>assign : { (target: T, source: U): T & U; (target: T, source1: U, source2: V): T & U & V; (target: T, source1: U, source2: V, source3: W): T & U & V & W; (target: object, ...sources: any[]): any; } >{} : {} >soFar : SO_FAR >{identifier: instance as TYPE} : { identifier: TYPE; } @@ -265,9 +265,9 @@ export enum PubSubRecordIsStoredInRedisAsA { >buildPubSubRecordType : (soFar: SO_FAR) => BuildPubSubRecordType >Object.assign({}, soFar, {record: instance as TYPE}) as SO_FAR & {record: TYPE} : SO_FAR & { record: TYPE; } >Object.assign({}, soFar, {record: instance as TYPE}) : SO_FAR & { record: TYPE; } ->Object.assign : { (target: T, source: U): T & U; (target: T, source1: U, source2: V): T & U & V; (target: T, source1: U, source2: V, source3: W): T & U & V & W; (target: object, ...sources: any[]): any; } +>Object.assign : { (target: T, source: U): T & U; (target: T, source1: U, source2: V): T & U & V; (target: T, source1: U, source2: V, source3: W): T & U & V & W; (target: object, ...sources: any[]): any; } >Object : ObjectConstructor ->assign : { (target: T, source: U): T & U; (target: T, source1: U, source2: V): T & U & V; (target: T, source1: U, source2: V, source3: W): T & U & V & W; (target: object, ...sources: any[]): any; } +>assign : { (target: T, source: U): T & U; (target: T, source1: U, source2: V): T & U & V; (target: T, source1: U, source2: V, source3: W): T & U & V & W; (target: object, ...sources: any[]): any; } >{} : {} >soFar : SO_FAR >{record: instance as TYPE} : { record: TYPE; } @@ -321,9 +321,9 @@ export enum PubSubRecordIsStoredInRedisAsA { >buildPubSubRecordType(Object.assign({}, soFar, {maxMsToWaitBeforePublishing: instance})) : BuildPubSubRecordType >buildPubSubRecordType : (soFar: SO_FAR) => BuildPubSubRecordType >Object.assign({}, soFar, {maxMsToWaitBeforePublishing: instance}) : SO_FAR & { maxMsToWaitBeforePublishing: number; } ->Object.assign : { (target: T, source: U): T & U; (target: T, source1: U, source2: V): T & U & V; (target: T, source1: U, source2: V, source3: W): T & U & V & W; (target: object, ...sources: any[]): any; } +>Object.assign : { (target: T, source: U): T & U; (target: T, source1: U, source2: V): T & U & V; (target: T, source1: U, source2: V, source3: W): T & U & V & W; (target: object, ...sources: any[]): any; } >Object : ObjectConstructor ->assign : { (target: T, source: U): T & U; (target: T, source1: U, source2: V): T & U & V; (target: T, source1: U, source2: V, source3: W): T & U & V & W; (target: object, ...sources: any[]): any; } +>assign : { (target: T, source: U): T & U; (target: T, source1: U, source2: V): T & U & V; (target: T, source1: U, source2: V, source3: W): T & U & V & W; (target: object, ...sources: any[]): any; } >{} : {} >soFar : SO_FAR >{maxMsToWaitBeforePublishing: instance} : { maxMsToWaitBeforePublishing: number; } @@ -340,9 +340,9 @@ export enum PubSubRecordIsStoredInRedisAsA { >buildPubSubRecordType(Object.assign({}, soFar, {maxMsToWaitBeforePublishing: 0})) : BuildPubSubRecordType >buildPubSubRecordType : (soFar: SO_FAR) => BuildPubSubRecordType >Object.assign({}, soFar, {maxMsToWaitBeforePublishing: 0}) : SO_FAR & { maxMsToWaitBeforePublishing: number; } ->Object.assign : { (target: T, source: U): T & U; (target: T, source1: U, source2: V): T & U & V; (target: T, source1: U, source2: V, source3: W): T & U & V & W; (target: object, ...sources: any[]): any; } +>Object.assign : { (target: T, source: U): T & U; (target: T, source1: U, source2: V): T & U & V; (target: T, source1: U, source2: V, source3: W): T & U & V & W; (target: object, ...sources: any[]): any; } >Object : ObjectConstructor ->assign : { (target: T, source: U): T & U; (target: T, source1: U, source2: V): T & U & V; (target: T, source1: U, source2: V, source3: W): T & U & V & W; (target: object, ...sources: any[]): any; } +>assign : { (target: T, source: U): T & U; (target: T, source1: U, source2: V): T & U & V; (target: T, source1: U, source2: V, source3: W): T & U & V & W; (target: object, ...sources: any[]): any; } >{} : {} >soFar : SO_FAR >{maxMsToWaitBeforePublishing: 0} : { maxMsToWaitBeforePublishing: number; } @@ -441,9 +441,9 @@ export enum PubSubRecordIsStoredInRedisAsA { >soFar : SO_FAR >Object.assign( {}, buildNameFieldConstructor(soFar), buildIdentifierFieldConstructor(soFar), buildRecordFieldConstructor(soFar), buildStoredAsConstructor(soFar), buildMaxMsToWaitBeforePublishingFieldConstructor(soFar), buildType(soFar) ) as BuildPubSubRecordType : BuildPubSubRecordType >Object.assign( {}, buildNameFieldConstructor(soFar), buildIdentifierFieldConstructor(soFar), buildRecordFieldConstructor(soFar), buildStoredAsConstructor(soFar), buildMaxMsToWaitBeforePublishingFieldConstructor(soFar), buildType(soFar) ) : any ->Object.assign : { (target: T, source: U): T & U; (target: T, source1: U, source2: V): T & U & V; (target: T, source1: U, source2: V, source3: W): T & U & V & W; (target: object, ...sources: any[]): any; } +>Object.assign : { (target: T, source: U): T & U; (target: T, source1: U, source2: V): T & U & V; (target: T, source1: U, source2: V, source3: W): T & U & V & W; (target: object, ...sources: any[]): any; } >Object : ObjectConstructor ->assign : { (target: T, source: U): T & U; (target: T, source1: U, source2: V): T & U & V; (target: T, source1: U, source2: V, source3: W): T & U & V & W; (target: object, ...sources: any[]): any; } +>assign : { (target: T, source: U): T & U; (target: T, source1: U, source2: V): T & U & V; (target: T, source1: U, source2: V, source3: W): T & U & V & W; (target: object, ...sources: any[]): any; } {}, >{} : {} diff --git a/tests/baselines/reference/conditionalTypes2.errors.txt b/tests/baselines/reference/conditionalTypes2.errors.txt index 9eaf6ae95293b..7a4f8bf73447f 100644 --- a/tests/baselines/reference/conditionalTypes2.errors.txt +++ b/tests/baselines/reference/conditionalTypes2.errors.txt @@ -17,9 +17,6 @@ tests/cases/conformance/types/conditional/conditionalTypes2.ts(24,5): error TS23 Type 'keyof B' is not assignable to type 'number | "toString" | "charAt" | "charCodeAt" | "concat" | "indexOf" | "lastIndexOf" | "localeCompare" | "match" | "replace" | "search" | "slice" | "split" | "substring" | "toLowerCase" | "toLocaleLowerCase" | "toUpperCase" | "toLocaleUpperCase" | "trim" | "length" | "substr" | "valueOf"'. Type 'string | number | symbol' is not assignable to type 'number | "toString" | "charAt" | "charCodeAt" | "concat" | "indexOf" | "lastIndexOf" | "localeCompare" | "match" | "replace" | "search" | "slice" | "split" | "substring" | "toLowerCase" | "toLocaleLowerCase" | "toUpperCase" | "toLocaleUpperCase" | "trim" | "length" | "substr" | "valueOf"'. Type 'string' is not assignable to type 'number | "toString" | "charAt" | "charCodeAt" | "concat" | "indexOf" | "lastIndexOf" | "localeCompare" | "match" | "replace" | "search" | "slice" | "split" | "substring" | "toLowerCase" | "toLocaleLowerCase" | "toUpperCase" | "toLocaleUpperCase" | "trim" | "length" | "substr" | "valueOf"'. - Type 'keyof B' is not assignable to type 'number'. - Type 'string | number | symbol' is not assignable to type 'number'. - Type 'string' is not assignable to type 'number'. tests/cases/conformance/types/conditional/conditionalTypes2.ts(25,5): error TS2322: Type 'Invariant' is not assignable to type 'Invariant'. Types of property 'foo' are incompatible. Type 'A extends string ? keyof A : A' is not assignable to type 'B extends string ? keyof B : B'. @@ -85,9 +82,6 @@ tests/cases/conformance/types/conditional/conditionalTypes2.ts(75,12): error TS2 !!! error TS2322: Type 'keyof B' is not assignable to type 'number | "toString" | "charAt" | "charCodeAt" | "concat" | "indexOf" | "lastIndexOf" | "localeCompare" | "match" | "replace" | "search" | "slice" | "split" | "substring" | "toLowerCase" | "toLocaleLowerCase" | "toUpperCase" | "toLocaleUpperCase" | "trim" | "length" | "substr" | "valueOf"'. !!! error TS2322: Type 'string | number | symbol' is not assignable to type 'number | "toString" | "charAt" | "charCodeAt" | "concat" | "indexOf" | "lastIndexOf" | "localeCompare" | "match" | "replace" | "search" | "slice" | "split" | "substring" | "toLowerCase" | "toLocaleLowerCase" | "toUpperCase" | "toLocaleUpperCase" | "trim" | "length" | "substr" | "valueOf"'. !!! error TS2322: Type 'string' is not assignable to type 'number | "toString" | "charAt" | "charCodeAt" | "concat" | "indexOf" | "lastIndexOf" | "localeCompare" | "match" | "replace" | "search" | "slice" | "split" | "substring" | "toLowerCase" | "toLocaleLowerCase" | "toUpperCase" | "toLocaleUpperCase" | "trim" | "length" | "substr" | "valueOf"'. -!!! error TS2322: Type 'keyof B' is not assignable to type 'number'. -!!! error TS2322: Type 'string | number | symbol' is not assignable to type 'number'. -!!! error TS2322: Type 'string' is not assignable to type 'number'. b = a; // Error ~ !!! error TS2322: Type 'Invariant' is not assignable to type 'Invariant'. diff --git a/tests/baselines/reference/constEnum3.js b/tests/baselines/reference/constEnum3.js index c219975d10f22..8505c686a3ee4 100644 --- a/tests/baselines/reference/constEnum3.js +++ b/tests/baselines/reference/constEnum3.js @@ -14,7 +14,7 @@ f2('bar') //// [constEnum3.js] function f1(f) { } function f2(f) { } -f1(0 /* foo */); -f1(1 /* bar */); +f1(0 /* TestType.foo */); +f1(1 /* TestType.bar */); f2('foo'); f2('bar'); diff --git a/tests/baselines/reference/constEnumErrors.errors.txt b/tests/baselines/reference/constEnumErrors.errors.txt index abfd41c6faa7c..a999e22a95748 100644 --- a/tests/baselines/reference/constEnumErrors.errors.txt +++ b/tests/baselines/reference/constEnumErrors.errors.txt @@ -2,7 +2,9 @@ tests/cases/compiler/constEnumErrors.ts(1,12): error TS2567: Enum declarations c tests/cases/compiler/constEnumErrors.ts(5,8): error TS2567: Enum declarations can only merge with namespace or other enum declarations. tests/cases/compiler/constEnumErrors.ts(12,9): error TS2651: A member initializer in a enum declaration cannot reference members declared after it, including members defined in other enums. tests/cases/compiler/constEnumErrors.ts(14,9): error TS2474: const enum member initializers can only contain literal values and other computed enum values. +tests/cases/compiler/constEnumErrors.ts(14,12): error TS2339: Property 'Z' does not exist on type 'typeof E1'. tests/cases/compiler/constEnumErrors.ts(15,10): error TS2474: const enum member initializers can only contain literal values and other computed enum values. +tests/cases/compiler/constEnumErrors.ts(15,13): error TS2339: Property 'Z' does not exist on type 'typeof E1'. tests/cases/compiler/constEnumErrors.ts(22,13): error TS2476: A const enum member can only be accessed using a string literal. tests/cases/compiler/constEnumErrors.ts(24,13): error TS2476: A const enum member can only be accessed using a string literal. tests/cases/compiler/constEnumErrors.ts(25,13): error TS2476: A const enum member can only be accessed using a string literal. @@ -14,7 +16,7 @@ tests/cases/compiler/constEnumErrors.ts(42,9): error TS2477: 'const' enum member tests/cases/compiler/constEnumErrors.ts(43,9): error TS2478: 'const' enum member initializer was evaluated to disallowed value 'NaN'. -==== tests/cases/compiler/constEnumErrors.ts (14 errors) ==== +==== tests/cases/compiler/constEnumErrors.ts (16 errors) ==== const enum E { ~ !!! error TS2567: Enum declarations can only merge with namespace or other enum declarations. @@ -37,9 +39,13 @@ tests/cases/compiler/constEnumErrors.ts(43,9): error TS2478: 'const' enum member Y = E1.Z, ~~~~ !!! error TS2474: const enum member initializers can only contain literal values and other computed enum values. + ~ +!!! error TS2339: Property 'Z' does not exist on type 'typeof E1'. Y1 = E1["Z"] ~~~~~~~ !!! error TS2474: const enum member initializers can only contain literal values and other computed enum values. + ~~~ +!!! error TS2339: Property 'Z' does not exist on type 'typeof E1'. } const enum E2 { diff --git a/tests/baselines/reference/constEnumExternalModule.js b/tests/baselines/reference/constEnumExternalModule.js index 8ea5625ac0797..9ac191b5e2145 100644 --- a/tests/baselines/reference/constEnumExternalModule.js +++ b/tests/baselines/reference/constEnumExternalModule.js @@ -19,5 +19,5 @@ define(["require", "exports"], function (require, exports) { define(["require", "exports"], function (require, exports) { "use strict"; exports.__esModule = true; - var v = 100 /* V */; + var v = 100 /* A.V */; }); diff --git a/tests/baselines/reference/constEnumNamespaceReferenceCausesNoImport(isolatedmodules=false).js b/tests/baselines/reference/constEnumNamespaceReferenceCausesNoImport(isolatedmodules=false).js index 145cb9d37e835..c9e964d8af189 100644 --- a/tests/baselines/reference/constEnumNamespaceReferenceCausesNoImport(isolatedmodules=false).js +++ b/tests/baselines/reference/constEnumNamespaceReferenceCausesNoImport(isolatedmodules=false).js @@ -29,7 +29,7 @@ exports.fooFunc = fooFunc; exports.__esModule = true; function check(x) { switch (x) { - case 0 /* Some */: + case 0 /* Foo.ConstFooEnum.Some */: break; } } diff --git a/tests/baselines/reference/constEnumNamespaceReferenceCausesNoImport2.js b/tests/baselines/reference/constEnumNamespaceReferenceCausesNoImport2.js index 02a802f20ea9a..4a8e84f1ad5ac 100644 --- a/tests/baselines/reference/constEnumNamespaceReferenceCausesNoImport2.js +++ b/tests/baselines/reference/constEnumNamespaceReferenceCausesNoImport2.js @@ -44,7 +44,7 @@ module.exports = Foo.ConstEnumOnlyModule; exports.__esModule = true; function check(x) { switch (x) { - case 0 /* Some */: + case 0 /* Foo.ConstFooEnum.Some */: break; } } diff --git a/tests/baselines/reference/constEnumNoEmitReexport.js b/tests/baselines/reference/constEnumNoEmitReexport.js index de1ed1ff03275..bfb73d8643847 100644 --- a/tests/baselines/reference/constEnumNoEmitReexport.js +++ b/tests/baselines/reference/constEnumNoEmitReexport.js @@ -47,13 +47,13 @@ exports.__esModule = true; //// [Usage1.js] "use strict"; exports.__esModule = true; -0 /* Foo */; -0 /* Foo */; +0 /* MyConstEnum1.Foo */; +0 /* MyConstEnum2.Foo */; //// [Usage2.js] "use strict"; exports.__esModule = true; -0 /* Foo */; +0 /* MyConstEnum.Foo */; //// [Usage3.js] "use strict"; exports.__esModule = true; -0 /* Foo */; +0 /* MyConstEnum.Foo */; diff --git a/tests/baselines/reference/constEnumNoPreserveDeclarationReexport.js b/tests/baselines/reference/constEnumNoPreserveDeclarationReexport.js index 0edacd183ef11..d34b5d557160e 100644 --- a/tests/baselines/reference/constEnumNoPreserveDeclarationReexport.js +++ b/tests/baselines/reference/constEnumNoPreserveDeclarationReexport.js @@ -23,6 +23,6 @@ StillEnum.Foo; //// [usages.js] "use strict"; exports.__esModule = true; -0 /* Foo */; -0 /* Foo */; -0 /* Foo */; +0 /* MyConstEnum.Foo */; +0 /* AlsoEnum.Foo */; +0 /* StillEnum.Foo */; diff --git a/tests/baselines/reference/constEnumOnlyModuleMerging.js b/tests/baselines/reference/constEnumOnlyModuleMerging.js index 1d32fe748ab1b..787f024eb213c 100644 --- a/tests/baselines/reference/constEnumOnlyModuleMerging.js +++ b/tests/baselines/reference/constEnumOnlyModuleMerging.js @@ -21,6 +21,6 @@ var Outer; var B; (function (B) { var O = Outer; - var x = 0 /* X */; + var x = 0 /* O.A.X */; var y = O.x; })(B || (B = {})); diff --git a/tests/baselines/reference/constEnumPreserveEmitReexport.js b/tests/baselines/reference/constEnumPreserveEmitReexport.js index ac5e823d4198c..949d8e6c54504 100644 --- a/tests/baselines/reference/constEnumPreserveEmitReexport.js +++ b/tests/baselines/reference/constEnumPreserveEmitReexport.js @@ -30,7 +30,11 @@ exports["default"] = ConstEnum_1.MyConstEnum; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/constEnumPropertyAccess1.js b/tests/baselines/reference/constEnumPropertyAccess1.js index db733e44b1de3..e0c885c970a52 100644 --- a/tests/baselines/reference/constEnumPropertyAccess1.js +++ b/tests/baselines/reference/constEnumPropertyAccess1.js @@ -37,15 +37,15 @@ class C { var o = { 1: true }; -var a = 1 /* A */; -var a1 = 1 /* "A" */; -var g = o[1 /* A */]; +var a = 1 /* G.A */; +var a1 = 1 /* G["A"] */; +var g = o[1 /* G.A */]; class C { - [1 /* A */]() { } - get [2 /* B */]() { + [1 /* G.A */]() { } + get [2 /* G.B */]() { return true; } - set [2 /* B */](x) { } + set [2 /* G.B */](x) { } } diff --git a/tests/baselines/reference/constEnumPropertyAccess2.js b/tests/baselines/reference/constEnumPropertyAccess2.js index 5d04466fbd05b..a35e2587ba04d 100644 --- a/tests/baselines/reference/constEnumPropertyAccess2.js +++ b/tests/baselines/reference/constEnumPropertyAccess2.js @@ -25,11 +25,11 @@ G.B = 3; // than a property access that selects one of the enum's members // Error from referring constant enum in any other context than a property access var z = G; -var z1 = G[1 /* A */]; +var z1 = G[1 /* G.A */]; var g; g = "string"; function foo(x) { } -2 /* B */ = 3; +2 /* G.B */ = 3; //// [constEnumPropertyAccess2.d.ts] diff --git a/tests/baselines/reference/constEnumSyntheticNodesComments.js b/tests/baselines/reference/constEnumSyntheticNodesComments.js index 511b5127e5a76..35cc85fdf8994 100644 --- a/tests/baselines/reference/constEnumSyntheticNodesComments.js +++ b/tests/baselines/reference/constEnumSyntheticNodesComments.js @@ -24,13 +24,13 @@ function assert(x) { } function verify(a) { switch (a) { - case 0 /* A */: + case 0 /* En.A */: return assert(a); - case 1 /* "B" */: + case 1 /* En["B"] */: return assert(a); - case 2 /* `C` */: + case 2 /* En[`C`] */: return assert(a); - case 3 /* "\u{44}" */: + case 3 /* En["\u{44}"] */: return assert(a); } } diff --git a/tests/baselines/reference/constEnumToStringWithComments.js b/tests/baselines/reference/constEnumToStringWithComments.js index f0fbc8663859e..233e15f162119 100644 --- a/tests/baselines/reference/constEnumToStringWithComments.js +++ b/tests/baselines/reference/constEnumToStringWithComments.js @@ -23,15 +23,15 @@ let c1 = Foo["C"].toString(); //// [constEnumToStringWithComments.js] -var x0 = 100 /* X */.toString(); -var x1 = 100 /* "X" */.toString(); -var y0 = 0.5 /* Y */.toString(); -var y1 = 0.5 /* "Y" */.toString(); -var z0 = 2 /* Z */.toString(); -var z1 = 2 /* "Z" */.toString(); -var a0 = -1 /* A */.toString(); -var a1 = -1 /* "A" */.toString(); -var b0 = -1.5 /* B */.toString(); -var b1 = -1.5 /* "B" */.toString(); -var c0 = -1 /* C */.toString(); -var c1 = -1 /* "C" */.toString(); +var x0 = 100 /* Foo.X */.toString(); +var x1 = 100 /* Foo["X"] */.toString(); +var y0 = 0.5 /* Foo.Y */.toString(); +var y1 = 0.5 /* Foo["Y"] */.toString(); +var z0 = 2 /* Foo.Z */.toString(); +var z1 = 2 /* Foo["Z"] */.toString(); +var a0 = -1 /* Foo.A */.toString(); +var a1 = -1 /* Foo["A"] */.toString(); +var b0 = -1.5 /* Foo.B */.toString(); +var b1 = -1.5 /* Foo["B"] */.toString(); +var c0 = -1 /* Foo.C */.toString(); +var c1 = -1 /* Foo["C"] */.toString(); diff --git a/tests/baselines/reference/constEnums.js b/tests/baselines/reference/constEnums.js index dc48951f7f57f..c7239bb2f1113 100644 --- a/tests/baselines/reference/constEnums.js +++ b/tests/baselines/reference/constEnums.js @@ -38,6 +38,15 @@ const enum Enum1 { W5 = Enum1[`V`], } +const enum Comments { + "//", + "/*", + "*/", + "///", + "#", + "", +} module A { export module B { @@ -153,7 +162,21 @@ function bar(e: A.B.C.E): number { case A.B.C.E.V2: return 1; case A.B.C.E.V3: return 1; } -} +} + +function baz(c: Comments) { + switch (c) { + case Comments["//"]: + case Comments["/*"]: + case Comments["*/"]: + case Comments["///"]: + case Comments["#"]: + case Comments[""]: + break; + } +} + //// [constEnums.js] var A2; @@ -169,60 +192,72 @@ var A2; })(A2 || (A2 = {})); var I2 = A2.B; function foo0(e) { - if (e === 1 /* V1 */) { + if (e === 1 /* I.V1 */) { } - else if (e === 101 /* V2 */) { + else if (e === 101 /* I.V2 */) { } } function foo1(e) { - if (e === 10 /* V1 */) { + if (e === 10 /* I1.C.E.V1 */) { } - else if (e === 110 /* V2 */) { + else if (e === 110 /* I1.C.E.V2 */) { } } function foo2(e) { - if (e === 10 /* V1 */) { + if (e === 10 /* I2.C.E.V1 */) { } - else if (e === 110 /* V2 */) { + else if (e === 110 /* I2.C.E.V2 */) { } } function foo(x) { switch (x) { - case 0 /* A */: - case 1 /* B */: - case 10 /* C */: - case 1 /* D */: - case 1 /* E */: - case 1 /* F */: - case 1 /* G */: - case -2 /* H */: - case 0 /* I */: - case 0 /* J */: - case -6 /* K */: - case -2 /* L */: - case 2 /* M */: - case 2 /* N */: - case 0 /* O */: - case 0 /* P */: - case 1 /* PQ */: - case -1 /* Q */: - case 0 /* R */: - case 0 /* S */: - case 11 /* "T" */: - case 11 /* `U` */: - case 11 /* V */: - case 11 /* W */: - case 100 /* W1 */: - case 100 /* W2 */: - case 100 /* W3 */: - case 11 /* W4 */: + case 0 /* Enum1.A */: + case 1 /* Enum1.B */: + case 10 /* Enum1.C */: + case 1 /* Enum1.D */: + case 1 /* Enum1.E */: + case 1 /* Enum1.F */: + case 1 /* Enum1.G */: + case -2 /* Enum1.H */: + case 0 /* Enum1.I */: + case 0 /* Enum1.J */: + case -6 /* Enum1.K */: + case -2 /* Enum1.L */: + case 2 /* Enum1.M */: + case 2 /* Enum1.N */: + case 0 /* Enum1.O */: + case 0 /* Enum1.P */: + case 1 /* Enum1.PQ */: + case -1 /* Enum1.Q */: + case 0 /* Enum1.R */: + case 0 /* Enum1.S */: + case 11 /* Enum1["T"] */: + case 11 /* Enum1[`U`] */: + case 11 /* Enum1.V */: + case 11 /* Enum1.W */: + case 100 /* Enum1.W1 */: + case 100 /* Enum1.W2 */: + case 100 /* Enum1.W3 */: + case 11 /* Enum1.W4 */: break; } } function bar(e) { switch (e) { - case 1 /* V1 */: return 1; - case 101 /* V2 */: return 1; - case 64 /* V3 */: return 1; + case 1 /* A.B.C.E.V1 */: return 1; + case 101 /* A.B.C.E.V2 */: return 1; + case 64 /* A.B.C.E.V3 */: return 1; + } +} +function baz(c) { + switch (c) { + case 0 /* Comments["//"] */: + case 1 /* Comments["/*"] */: + case 2 /* Comments["*_/"] */: + case 3 /* Comments["///"] */: + case 4 /* Comments["#"] */: + case 5 /* Comments[""] */: + break; } } diff --git a/tests/baselines/reference/constEnums.symbols b/tests/baselines/reference/constEnums.symbols index 0f0536734a044..c4e4ca8a532d4 100644 --- a/tests/baselines/reference/constEnums.symbols +++ b/tests/baselines/reference/constEnums.symbols @@ -135,229 +135,253 @@ const enum Enum1 { >`V` : Symbol(Enum1.V, Decl(constEnums.ts, 27, 14)) } +const enum Comments { +>Comments : Symbol(Comments, Decl(constEnums.ts, 37, 1)) + + "//", +>"//" : Symbol(Comments["//"], Decl(constEnums.ts, 39, 21)) + + "/*", +>"/*" : Symbol(Comments["/*"], Decl(constEnums.ts, 40, 9)) + + "*/", +>"*/" : Symbol(Comments["*/"], Decl(constEnums.ts, 41, 9)) + + "///", +>"///" : Symbol(Comments["///"], Decl(constEnums.ts, 42, 9)) + + "#", +>"#" : Symbol(Comments["#"], Decl(constEnums.ts, 43, 10)) + + "", +>"-->" : Symbol(Comments["-->"], Decl(constEnums.ts, 45, 11)) +} module A { ->A : Symbol(A, Decl(constEnums.ts, 37, 1), Decl(constEnums.ts, 49, 1)) +>A : Symbol(A, Decl(constEnums.ts, 47, 1), Decl(constEnums.ts, 58, 1)) export module B { ->B : Symbol(B, Decl(constEnums.ts, 40, 10), Decl(constEnums.ts, 51, 10)) +>B : Symbol(B, Decl(constEnums.ts, 49, 10), Decl(constEnums.ts, 60, 10)) export module C { ->C : Symbol(C, Decl(constEnums.ts, 41, 21), Decl(constEnums.ts, 52, 21)) +>C : Symbol(C, Decl(constEnums.ts, 50, 21), Decl(constEnums.ts, 61, 21)) export const enum E { ->E : Symbol(E, Decl(constEnums.ts, 42, 25), Decl(constEnums.ts, 53, 25)) +>E : Symbol(E, Decl(constEnums.ts, 51, 25), Decl(constEnums.ts, 62, 25)) V1 = 1, ->V1 : Symbol(I.V1, Decl(constEnums.ts, 43, 33)) +>V1 : Symbol(I.V1, Decl(constEnums.ts, 52, 33)) V2 = A.B.C.E.V1 | 100 ->V2 : Symbol(I.V2, Decl(constEnums.ts, 44, 23)) ->A.B.C.E.V1 : Symbol(I.V1, Decl(constEnums.ts, 43, 33)) ->A.B.C.E : Symbol(E, Decl(constEnums.ts, 42, 25), Decl(constEnums.ts, 53, 25)) ->A.B.C : Symbol(C, Decl(constEnums.ts, 41, 21), Decl(constEnums.ts, 52, 21)) ->A.B : Symbol(B, Decl(constEnums.ts, 40, 10), Decl(constEnums.ts, 51, 10)) ->A : Symbol(A, Decl(constEnums.ts, 37, 1), Decl(constEnums.ts, 49, 1)) ->B : Symbol(B, Decl(constEnums.ts, 40, 10), Decl(constEnums.ts, 51, 10)) ->C : Symbol(C, Decl(constEnums.ts, 41, 21), Decl(constEnums.ts, 52, 21)) ->E : Symbol(E, Decl(constEnums.ts, 42, 25), Decl(constEnums.ts, 53, 25)) ->V1 : Symbol(I.V1, Decl(constEnums.ts, 43, 33)) +>V2 : Symbol(I.V2, Decl(constEnums.ts, 53, 23)) +>A.B.C.E.V1 : Symbol(I.V1, Decl(constEnums.ts, 52, 33)) +>A.B.C.E : Symbol(E, Decl(constEnums.ts, 51, 25), Decl(constEnums.ts, 62, 25)) +>A.B.C : Symbol(C, Decl(constEnums.ts, 50, 21), Decl(constEnums.ts, 61, 21)) +>A.B : Symbol(B, Decl(constEnums.ts, 49, 10), Decl(constEnums.ts, 60, 10)) +>A : Symbol(A, Decl(constEnums.ts, 47, 1), Decl(constEnums.ts, 58, 1)) +>B : Symbol(B, Decl(constEnums.ts, 49, 10), Decl(constEnums.ts, 60, 10)) +>C : Symbol(C, Decl(constEnums.ts, 50, 21), Decl(constEnums.ts, 61, 21)) +>E : Symbol(E, Decl(constEnums.ts, 51, 25), Decl(constEnums.ts, 62, 25)) +>V1 : Symbol(I.V1, Decl(constEnums.ts, 52, 33)) } } } } module A { ->A : Symbol(A, Decl(constEnums.ts, 37, 1), Decl(constEnums.ts, 49, 1)) +>A : Symbol(A, Decl(constEnums.ts, 47, 1), Decl(constEnums.ts, 58, 1)) export module B { ->B : Symbol(B, Decl(constEnums.ts, 40, 10), Decl(constEnums.ts, 51, 10)) +>B : Symbol(B, Decl(constEnums.ts, 49, 10), Decl(constEnums.ts, 60, 10)) export module C { ->C : Symbol(C, Decl(constEnums.ts, 41, 21), Decl(constEnums.ts, 52, 21)) +>C : Symbol(C, Decl(constEnums.ts, 50, 21), Decl(constEnums.ts, 61, 21)) export const enum E { ->E : Symbol(E, Decl(constEnums.ts, 42, 25), Decl(constEnums.ts, 53, 25)) +>E : Symbol(E, Decl(constEnums.ts, 51, 25), Decl(constEnums.ts, 62, 25)) V3 = A.B.C.E["V2"] & 200, ->V3 : Symbol(I.V3, Decl(constEnums.ts, 54, 33)) ->A.B.C.E : Symbol(E, Decl(constEnums.ts, 42, 25), Decl(constEnums.ts, 53, 25)) ->A.B.C : Symbol(C, Decl(constEnums.ts, 41, 21), Decl(constEnums.ts, 52, 21)) ->A.B : Symbol(B, Decl(constEnums.ts, 40, 10), Decl(constEnums.ts, 51, 10)) ->A : Symbol(A, Decl(constEnums.ts, 37, 1), Decl(constEnums.ts, 49, 1)) ->B : Symbol(B, Decl(constEnums.ts, 40, 10), Decl(constEnums.ts, 51, 10)) ->C : Symbol(C, Decl(constEnums.ts, 41, 21), Decl(constEnums.ts, 52, 21)) ->E : Symbol(E, Decl(constEnums.ts, 42, 25), Decl(constEnums.ts, 53, 25)) ->"V2" : Symbol(I.V2, Decl(constEnums.ts, 44, 23)) +>V3 : Symbol(I.V3, Decl(constEnums.ts, 63, 33)) +>A.B.C.E : Symbol(E, Decl(constEnums.ts, 51, 25), Decl(constEnums.ts, 62, 25)) +>A.B.C : Symbol(C, Decl(constEnums.ts, 50, 21), Decl(constEnums.ts, 61, 21)) +>A.B : Symbol(B, Decl(constEnums.ts, 49, 10), Decl(constEnums.ts, 60, 10)) +>A : Symbol(A, Decl(constEnums.ts, 47, 1), Decl(constEnums.ts, 58, 1)) +>B : Symbol(B, Decl(constEnums.ts, 49, 10), Decl(constEnums.ts, 60, 10)) +>C : Symbol(C, Decl(constEnums.ts, 50, 21), Decl(constEnums.ts, 61, 21)) +>E : Symbol(E, Decl(constEnums.ts, 51, 25), Decl(constEnums.ts, 62, 25)) +>"V2" : Symbol(I.V2, Decl(constEnums.ts, 53, 23)) V4 = A.B.C.E[`V1`] << 1, ->V4 : Symbol(I.V4, Decl(constEnums.ts, 55, 41)) ->A.B.C.E : Symbol(E, Decl(constEnums.ts, 42, 25), Decl(constEnums.ts, 53, 25)) ->A.B.C : Symbol(C, Decl(constEnums.ts, 41, 21), Decl(constEnums.ts, 52, 21)) ->A.B : Symbol(B, Decl(constEnums.ts, 40, 10), Decl(constEnums.ts, 51, 10)) ->A : Symbol(A, Decl(constEnums.ts, 37, 1), Decl(constEnums.ts, 49, 1)) ->B : Symbol(B, Decl(constEnums.ts, 40, 10), Decl(constEnums.ts, 51, 10)) ->C : Symbol(C, Decl(constEnums.ts, 41, 21), Decl(constEnums.ts, 52, 21)) ->E : Symbol(E, Decl(constEnums.ts, 42, 25), Decl(constEnums.ts, 53, 25)) ->`V1` : Symbol(I.V1, Decl(constEnums.ts, 43, 33)) +>V4 : Symbol(I.V4, Decl(constEnums.ts, 64, 41)) +>A.B.C.E : Symbol(E, Decl(constEnums.ts, 51, 25), Decl(constEnums.ts, 62, 25)) +>A.B.C : Symbol(C, Decl(constEnums.ts, 50, 21), Decl(constEnums.ts, 61, 21)) +>A.B : Symbol(B, Decl(constEnums.ts, 49, 10), Decl(constEnums.ts, 60, 10)) +>A : Symbol(A, Decl(constEnums.ts, 47, 1), Decl(constEnums.ts, 58, 1)) +>B : Symbol(B, Decl(constEnums.ts, 49, 10), Decl(constEnums.ts, 60, 10)) +>C : Symbol(C, Decl(constEnums.ts, 50, 21), Decl(constEnums.ts, 61, 21)) +>E : Symbol(E, Decl(constEnums.ts, 51, 25), Decl(constEnums.ts, 62, 25)) +>`V1` : Symbol(I.V1, Decl(constEnums.ts, 52, 33)) } } } } module A1 { ->A1 : Symbol(A1, Decl(constEnums.ts, 60, 1)) +>A1 : Symbol(A1, Decl(constEnums.ts, 69, 1)) export module B { ->B : Symbol(B, Decl(constEnums.ts, 62, 11)) +>B : Symbol(B, Decl(constEnums.ts, 71, 11)) export module C { ->C : Symbol(C, Decl(constEnums.ts, 63, 21)) +>C : Symbol(C, Decl(constEnums.ts, 72, 21)) export const enum E { ->E : Symbol(E, Decl(constEnums.ts, 64, 25)) +>E : Symbol(E, Decl(constEnums.ts, 73, 25)) V1 = 10, ->V1 : Symbol(E.V1, Decl(constEnums.ts, 65, 33)) +>V1 : Symbol(E.V1, Decl(constEnums.ts, 74, 33)) V2 = 110, ->V2 : Symbol(E.V2, Decl(constEnums.ts, 66, 24)) +>V2 : Symbol(E.V2, Decl(constEnums.ts, 75, 24)) } } } } module A2 { ->A2 : Symbol(A2, Decl(constEnums.ts, 71, 1)) +>A2 : Symbol(A2, Decl(constEnums.ts, 80, 1)) export module B { ->B : Symbol(B, Decl(constEnums.ts, 73, 11)) +>B : Symbol(B, Decl(constEnums.ts, 82, 11)) export module C { ->C : Symbol(C, Decl(constEnums.ts, 74, 21), Decl(constEnums.ts, 80, 9)) +>C : Symbol(C, Decl(constEnums.ts, 83, 21), Decl(constEnums.ts, 89, 9)) export const enum E { ->E : Symbol(E, Decl(constEnums.ts, 75, 25)) +>E : Symbol(E, Decl(constEnums.ts, 84, 25)) V1 = 10, ->V1 : Symbol(E.V1, Decl(constEnums.ts, 76, 33)) +>V1 : Symbol(E.V1, Decl(constEnums.ts, 85, 33)) V2 = 110, ->V2 : Symbol(E.V2, Decl(constEnums.ts, 77, 24)) +>V2 : Symbol(E.V2, Decl(constEnums.ts, 86, 24)) } } // module C will be classified as value export module C { ->C : Symbol(C, Decl(constEnums.ts, 74, 21), Decl(constEnums.ts, 80, 9)) +>C : Symbol(C, Decl(constEnums.ts, 83, 21), Decl(constEnums.ts, 89, 9)) var x = 1 ->x : Symbol(x, Decl(constEnums.ts, 83, 15)) +>x : Symbol(x, Decl(constEnums.ts, 92, 15)) } } } import I = A.B.C.E; ->I : Symbol(I, Decl(constEnums.ts, 86, 1)) ->A : Symbol(A, Decl(constEnums.ts, 37, 1), Decl(constEnums.ts, 49, 1)) ->B : Symbol(A.B, Decl(constEnums.ts, 40, 10), Decl(constEnums.ts, 51, 10)) ->C : Symbol(A.B.C, Decl(constEnums.ts, 41, 21), Decl(constEnums.ts, 52, 21)) ->E : Symbol(I, Decl(constEnums.ts, 42, 25), Decl(constEnums.ts, 53, 25)) +>I : Symbol(I, Decl(constEnums.ts, 95, 1)) +>A : Symbol(A, Decl(constEnums.ts, 47, 1), Decl(constEnums.ts, 58, 1)) +>B : Symbol(A.B, Decl(constEnums.ts, 49, 10), Decl(constEnums.ts, 60, 10)) +>C : Symbol(A.B.C, Decl(constEnums.ts, 50, 21), Decl(constEnums.ts, 61, 21)) +>E : Symbol(I, Decl(constEnums.ts, 51, 25), Decl(constEnums.ts, 62, 25)) import I1 = A1.B; ->I1 : Symbol(I1, Decl(constEnums.ts, 88, 19)) ->A1 : Symbol(A1, Decl(constEnums.ts, 60, 1)) ->B : Symbol(I1, Decl(constEnums.ts, 62, 11)) +>I1 : Symbol(I1, Decl(constEnums.ts, 97, 19)) +>A1 : Symbol(A1, Decl(constEnums.ts, 69, 1)) +>B : Symbol(I1, Decl(constEnums.ts, 71, 11)) import I2 = A2.B; ->I2 : Symbol(I2, Decl(constEnums.ts, 89, 17)) ->A2 : Symbol(A2, Decl(constEnums.ts, 71, 1)) ->B : Symbol(I2, Decl(constEnums.ts, 73, 11)) +>I2 : Symbol(I2, Decl(constEnums.ts, 98, 17)) +>A2 : Symbol(A2, Decl(constEnums.ts, 80, 1)) +>B : Symbol(I2, Decl(constEnums.ts, 82, 11)) function foo0(e: I): void { ->foo0 : Symbol(foo0, Decl(constEnums.ts, 90, 17)) ->e : Symbol(e, Decl(constEnums.ts, 92, 14)) ->I : Symbol(I, Decl(constEnums.ts, 86, 1)) +>foo0 : Symbol(foo0, Decl(constEnums.ts, 99, 17)) +>e : Symbol(e, Decl(constEnums.ts, 101, 14)) +>I : Symbol(I, Decl(constEnums.ts, 95, 1)) if (e === I.V1) { ->e : Symbol(e, Decl(constEnums.ts, 92, 14)) ->I.V1 : Symbol(I.V1, Decl(constEnums.ts, 43, 33)) ->I : Symbol(I, Decl(constEnums.ts, 86, 1)) ->V1 : Symbol(I.V1, Decl(constEnums.ts, 43, 33)) +>e : Symbol(e, Decl(constEnums.ts, 101, 14)) +>I.V1 : Symbol(I.V1, Decl(constEnums.ts, 52, 33)) +>I : Symbol(I, Decl(constEnums.ts, 95, 1)) +>V1 : Symbol(I.V1, Decl(constEnums.ts, 52, 33)) } else if (e === I.V2) { ->e : Symbol(e, Decl(constEnums.ts, 92, 14)) ->I.V2 : Symbol(I.V2, Decl(constEnums.ts, 44, 23)) ->I : Symbol(I, Decl(constEnums.ts, 86, 1)) ->V2 : Symbol(I.V2, Decl(constEnums.ts, 44, 23)) +>e : Symbol(e, Decl(constEnums.ts, 101, 14)) +>I.V2 : Symbol(I.V2, Decl(constEnums.ts, 53, 23)) +>I : Symbol(I, Decl(constEnums.ts, 95, 1)) +>V2 : Symbol(I.V2, Decl(constEnums.ts, 53, 23)) } } function foo1(e: I1.C.E): void { ->foo1 : Symbol(foo1, Decl(constEnums.ts, 97, 1)) ->e : Symbol(e, Decl(constEnums.ts, 99, 14)) ->I1 : Symbol(I1, Decl(constEnums.ts, 88, 19)) ->C : Symbol(I1.C, Decl(constEnums.ts, 63, 21)) ->E : Symbol(I1.C.E, Decl(constEnums.ts, 64, 25)) +>foo1 : Symbol(foo1, Decl(constEnums.ts, 106, 1)) +>e : Symbol(e, Decl(constEnums.ts, 108, 14)) +>I1 : Symbol(I1, Decl(constEnums.ts, 97, 19)) +>C : Symbol(I1.C, Decl(constEnums.ts, 72, 21)) +>E : Symbol(I1.C.E, Decl(constEnums.ts, 73, 25)) if (e === I1.C.E.V1) { ->e : Symbol(e, Decl(constEnums.ts, 99, 14)) ->I1.C.E.V1 : Symbol(I1.C.E.V1, Decl(constEnums.ts, 65, 33)) ->I1.C.E : Symbol(I1.C.E, Decl(constEnums.ts, 64, 25)) ->I1.C : Symbol(I1.C, Decl(constEnums.ts, 63, 21)) ->I1 : Symbol(I1, Decl(constEnums.ts, 88, 19)) ->C : Symbol(I1.C, Decl(constEnums.ts, 63, 21)) ->E : Symbol(I1.C.E, Decl(constEnums.ts, 64, 25)) ->V1 : Symbol(I1.C.E.V1, Decl(constEnums.ts, 65, 33)) +>e : Symbol(e, Decl(constEnums.ts, 108, 14)) +>I1.C.E.V1 : Symbol(I1.C.E.V1, Decl(constEnums.ts, 74, 33)) +>I1.C.E : Symbol(I1.C.E, Decl(constEnums.ts, 73, 25)) +>I1.C : Symbol(I1.C, Decl(constEnums.ts, 72, 21)) +>I1 : Symbol(I1, Decl(constEnums.ts, 97, 19)) +>C : Symbol(I1.C, Decl(constEnums.ts, 72, 21)) +>E : Symbol(I1.C.E, Decl(constEnums.ts, 73, 25)) +>V1 : Symbol(I1.C.E.V1, Decl(constEnums.ts, 74, 33)) } else if (e === I1.C.E.V2) { ->e : Symbol(e, Decl(constEnums.ts, 99, 14)) ->I1.C.E.V2 : Symbol(I1.C.E.V2, Decl(constEnums.ts, 66, 24)) ->I1.C.E : Symbol(I1.C.E, Decl(constEnums.ts, 64, 25)) ->I1.C : Symbol(I1.C, Decl(constEnums.ts, 63, 21)) ->I1 : Symbol(I1, Decl(constEnums.ts, 88, 19)) ->C : Symbol(I1.C, Decl(constEnums.ts, 63, 21)) ->E : Symbol(I1.C.E, Decl(constEnums.ts, 64, 25)) ->V2 : Symbol(I1.C.E.V2, Decl(constEnums.ts, 66, 24)) +>e : Symbol(e, Decl(constEnums.ts, 108, 14)) +>I1.C.E.V2 : Symbol(I1.C.E.V2, Decl(constEnums.ts, 75, 24)) +>I1.C.E : Symbol(I1.C.E, Decl(constEnums.ts, 73, 25)) +>I1.C : Symbol(I1.C, Decl(constEnums.ts, 72, 21)) +>I1 : Symbol(I1, Decl(constEnums.ts, 97, 19)) +>C : Symbol(I1.C, Decl(constEnums.ts, 72, 21)) +>E : Symbol(I1.C.E, Decl(constEnums.ts, 73, 25)) +>V2 : Symbol(I1.C.E.V2, Decl(constEnums.ts, 75, 24)) } } function foo2(e: I2.C.E): void { ->foo2 : Symbol(foo2, Decl(constEnums.ts, 104, 1)) ->e : Symbol(e, Decl(constEnums.ts, 106, 14)) ->I2 : Symbol(I2, Decl(constEnums.ts, 89, 17)) ->C : Symbol(I2.C, Decl(constEnums.ts, 74, 21), Decl(constEnums.ts, 80, 9)) ->E : Symbol(I2.C.E, Decl(constEnums.ts, 75, 25)) +>foo2 : Symbol(foo2, Decl(constEnums.ts, 113, 1)) +>e : Symbol(e, Decl(constEnums.ts, 115, 14)) +>I2 : Symbol(I2, Decl(constEnums.ts, 98, 17)) +>C : Symbol(I2.C, Decl(constEnums.ts, 83, 21), Decl(constEnums.ts, 89, 9)) +>E : Symbol(I2.C.E, Decl(constEnums.ts, 84, 25)) if (e === I2.C.E.V1) { ->e : Symbol(e, Decl(constEnums.ts, 106, 14)) ->I2.C.E.V1 : Symbol(I2.C.E.V1, Decl(constEnums.ts, 76, 33)) ->I2.C.E : Symbol(I2.C.E, Decl(constEnums.ts, 75, 25)) ->I2.C : Symbol(I2.C, Decl(constEnums.ts, 74, 21), Decl(constEnums.ts, 80, 9)) ->I2 : Symbol(I2, Decl(constEnums.ts, 89, 17)) ->C : Symbol(I2.C, Decl(constEnums.ts, 74, 21), Decl(constEnums.ts, 80, 9)) ->E : Symbol(I2.C.E, Decl(constEnums.ts, 75, 25)) ->V1 : Symbol(I2.C.E.V1, Decl(constEnums.ts, 76, 33)) +>e : Symbol(e, Decl(constEnums.ts, 115, 14)) +>I2.C.E.V1 : Symbol(I2.C.E.V1, Decl(constEnums.ts, 85, 33)) +>I2.C.E : Symbol(I2.C.E, Decl(constEnums.ts, 84, 25)) +>I2.C : Symbol(I2.C, Decl(constEnums.ts, 83, 21), Decl(constEnums.ts, 89, 9)) +>I2 : Symbol(I2, Decl(constEnums.ts, 98, 17)) +>C : Symbol(I2.C, Decl(constEnums.ts, 83, 21), Decl(constEnums.ts, 89, 9)) +>E : Symbol(I2.C.E, Decl(constEnums.ts, 84, 25)) +>V1 : Symbol(I2.C.E.V1, Decl(constEnums.ts, 85, 33)) } else if (e === I2.C.E.V2) { ->e : Symbol(e, Decl(constEnums.ts, 106, 14)) ->I2.C.E.V2 : Symbol(I2.C.E.V2, Decl(constEnums.ts, 77, 24)) ->I2.C.E : Symbol(I2.C.E, Decl(constEnums.ts, 75, 25)) ->I2.C : Symbol(I2.C, Decl(constEnums.ts, 74, 21), Decl(constEnums.ts, 80, 9)) ->I2 : Symbol(I2, Decl(constEnums.ts, 89, 17)) ->C : Symbol(I2.C, Decl(constEnums.ts, 74, 21), Decl(constEnums.ts, 80, 9)) ->E : Symbol(I2.C.E, Decl(constEnums.ts, 75, 25)) ->V2 : Symbol(I2.C.E.V2, Decl(constEnums.ts, 77, 24)) +>e : Symbol(e, Decl(constEnums.ts, 115, 14)) +>I2.C.E.V2 : Symbol(I2.C.E.V2, Decl(constEnums.ts, 86, 24)) +>I2.C.E : Symbol(I2.C.E, Decl(constEnums.ts, 84, 25)) +>I2.C : Symbol(I2.C, Decl(constEnums.ts, 83, 21), Decl(constEnums.ts, 89, 9)) +>I2 : Symbol(I2, Decl(constEnums.ts, 98, 17)) +>C : Symbol(I2.C, Decl(constEnums.ts, 83, 21), Decl(constEnums.ts, 89, 9)) +>E : Symbol(I2.C.E, Decl(constEnums.ts, 84, 25)) +>V2 : Symbol(I2.C.E.V2, Decl(constEnums.ts, 86, 24)) } } function foo(x: Enum1) { ->foo : Symbol(foo, Decl(constEnums.ts, 111, 1)) ->x : Symbol(x, Decl(constEnums.ts, 114, 13)) +>foo : Symbol(foo, Decl(constEnums.ts, 120, 1)) +>x : Symbol(x, Decl(constEnums.ts, 123, 13)) >Enum1 : Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1)) switch (x) { ->x : Symbol(x, Decl(constEnums.ts, 114, 13)) +>x : Symbol(x, Decl(constEnums.ts, 123, 13)) case Enum1.A: >Enum1.A : Symbol(Enum1.A, Decl(constEnums.ts, 4, 18)) @@ -502,47 +526,88 @@ function foo(x: Enum1) { } function bar(e: A.B.C.E): number { ->bar : Symbol(bar, Decl(constEnums.ts, 146, 1)) ->e : Symbol(e, Decl(constEnums.ts, 148, 13)) ->A : Symbol(A, Decl(constEnums.ts, 37, 1), Decl(constEnums.ts, 49, 1)) ->B : Symbol(A.B, Decl(constEnums.ts, 40, 10), Decl(constEnums.ts, 51, 10)) ->C : Symbol(A.B.C, Decl(constEnums.ts, 41, 21), Decl(constEnums.ts, 52, 21)) ->E : Symbol(I, Decl(constEnums.ts, 42, 25), Decl(constEnums.ts, 53, 25)) +>bar : Symbol(bar, Decl(constEnums.ts, 155, 1)) +>e : Symbol(e, Decl(constEnums.ts, 157, 13)) +>A : Symbol(A, Decl(constEnums.ts, 47, 1), Decl(constEnums.ts, 58, 1)) +>B : Symbol(A.B, Decl(constEnums.ts, 49, 10), Decl(constEnums.ts, 60, 10)) +>C : Symbol(A.B.C, Decl(constEnums.ts, 50, 21), Decl(constEnums.ts, 61, 21)) +>E : Symbol(I, Decl(constEnums.ts, 51, 25), Decl(constEnums.ts, 62, 25)) switch (e) { ->e : Symbol(e, Decl(constEnums.ts, 148, 13)) +>e : Symbol(e, Decl(constEnums.ts, 157, 13)) case A.B.C.E.V1: return 1; ->A.B.C.E.V1 : Symbol(I.V1, Decl(constEnums.ts, 43, 33)) ->A.B.C.E : Symbol(I, Decl(constEnums.ts, 42, 25), Decl(constEnums.ts, 53, 25)) ->A.B.C : Symbol(A.B.C, Decl(constEnums.ts, 41, 21), Decl(constEnums.ts, 52, 21)) ->A.B : Symbol(A.B, Decl(constEnums.ts, 40, 10), Decl(constEnums.ts, 51, 10)) ->A : Symbol(A, Decl(constEnums.ts, 37, 1), Decl(constEnums.ts, 49, 1)) ->B : Symbol(A.B, Decl(constEnums.ts, 40, 10), Decl(constEnums.ts, 51, 10)) ->C : Symbol(A.B.C, Decl(constEnums.ts, 41, 21), Decl(constEnums.ts, 52, 21)) ->E : Symbol(I, Decl(constEnums.ts, 42, 25), Decl(constEnums.ts, 53, 25)) ->V1 : Symbol(I.V1, Decl(constEnums.ts, 43, 33)) +>A.B.C.E.V1 : Symbol(I.V1, Decl(constEnums.ts, 52, 33)) +>A.B.C.E : Symbol(I, Decl(constEnums.ts, 51, 25), Decl(constEnums.ts, 62, 25)) +>A.B.C : Symbol(A.B.C, Decl(constEnums.ts, 50, 21), Decl(constEnums.ts, 61, 21)) +>A.B : Symbol(A.B, Decl(constEnums.ts, 49, 10), Decl(constEnums.ts, 60, 10)) +>A : Symbol(A, Decl(constEnums.ts, 47, 1), Decl(constEnums.ts, 58, 1)) +>B : Symbol(A.B, Decl(constEnums.ts, 49, 10), Decl(constEnums.ts, 60, 10)) +>C : Symbol(A.B.C, Decl(constEnums.ts, 50, 21), Decl(constEnums.ts, 61, 21)) +>E : Symbol(I, Decl(constEnums.ts, 51, 25), Decl(constEnums.ts, 62, 25)) +>V1 : Symbol(I.V1, Decl(constEnums.ts, 52, 33)) case A.B.C.E.V2: return 1; ->A.B.C.E.V2 : Symbol(I.V2, Decl(constEnums.ts, 44, 23)) ->A.B.C.E : Symbol(I, Decl(constEnums.ts, 42, 25), Decl(constEnums.ts, 53, 25)) ->A.B.C : Symbol(A.B.C, Decl(constEnums.ts, 41, 21), Decl(constEnums.ts, 52, 21)) ->A.B : Symbol(A.B, Decl(constEnums.ts, 40, 10), Decl(constEnums.ts, 51, 10)) ->A : Symbol(A, Decl(constEnums.ts, 37, 1), Decl(constEnums.ts, 49, 1)) ->B : Symbol(A.B, Decl(constEnums.ts, 40, 10), Decl(constEnums.ts, 51, 10)) ->C : Symbol(A.B.C, Decl(constEnums.ts, 41, 21), Decl(constEnums.ts, 52, 21)) ->E : Symbol(I, Decl(constEnums.ts, 42, 25), Decl(constEnums.ts, 53, 25)) ->V2 : Symbol(I.V2, Decl(constEnums.ts, 44, 23)) +>A.B.C.E.V2 : Symbol(I.V2, Decl(constEnums.ts, 53, 23)) +>A.B.C.E : Symbol(I, Decl(constEnums.ts, 51, 25), Decl(constEnums.ts, 62, 25)) +>A.B.C : Symbol(A.B.C, Decl(constEnums.ts, 50, 21), Decl(constEnums.ts, 61, 21)) +>A.B : Symbol(A.B, Decl(constEnums.ts, 49, 10), Decl(constEnums.ts, 60, 10)) +>A : Symbol(A, Decl(constEnums.ts, 47, 1), Decl(constEnums.ts, 58, 1)) +>B : Symbol(A.B, Decl(constEnums.ts, 49, 10), Decl(constEnums.ts, 60, 10)) +>C : Symbol(A.B.C, Decl(constEnums.ts, 50, 21), Decl(constEnums.ts, 61, 21)) +>E : Symbol(I, Decl(constEnums.ts, 51, 25), Decl(constEnums.ts, 62, 25)) +>V2 : Symbol(I.V2, Decl(constEnums.ts, 53, 23)) case A.B.C.E.V3: return 1; ->A.B.C.E.V3 : Symbol(I.V3, Decl(constEnums.ts, 54, 33)) ->A.B.C.E : Symbol(I, Decl(constEnums.ts, 42, 25), Decl(constEnums.ts, 53, 25)) ->A.B.C : Symbol(A.B.C, Decl(constEnums.ts, 41, 21), Decl(constEnums.ts, 52, 21)) ->A.B : Symbol(A.B, Decl(constEnums.ts, 40, 10), Decl(constEnums.ts, 51, 10)) ->A : Symbol(A, Decl(constEnums.ts, 37, 1), Decl(constEnums.ts, 49, 1)) ->B : Symbol(A.B, Decl(constEnums.ts, 40, 10), Decl(constEnums.ts, 51, 10)) ->C : Symbol(A.B.C, Decl(constEnums.ts, 41, 21), Decl(constEnums.ts, 52, 21)) ->E : Symbol(I, Decl(constEnums.ts, 42, 25), Decl(constEnums.ts, 53, 25)) ->V3 : Symbol(I.V3, Decl(constEnums.ts, 54, 33)) +>A.B.C.E.V3 : Symbol(I.V3, Decl(constEnums.ts, 63, 33)) +>A.B.C.E : Symbol(I, Decl(constEnums.ts, 51, 25), Decl(constEnums.ts, 62, 25)) +>A.B.C : Symbol(A.B.C, Decl(constEnums.ts, 50, 21), Decl(constEnums.ts, 61, 21)) +>A.B : Symbol(A.B, Decl(constEnums.ts, 49, 10), Decl(constEnums.ts, 60, 10)) +>A : Symbol(A, Decl(constEnums.ts, 47, 1), Decl(constEnums.ts, 58, 1)) +>B : Symbol(A.B, Decl(constEnums.ts, 49, 10), Decl(constEnums.ts, 60, 10)) +>C : Symbol(A.B.C, Decl(constEnums.ts, 50, 21), Decl(constEnums.ts, 61, 21)) +>E : Symbol(I, Decl(constEnums.ts, 51, 25), Decl(constEnums.ts, 62, 25)) +>V3 : Symbol(I.V3, Decl(constEnums.ts, 63, 33)) } } + +function baz(c: Comments) { +>baz : Symbol(baz, Decl(constEnums.ts, 163, 1)) +>c : Symbol(c, Decl(constEnums.ts, 165, 13)) +>Comments : Symbol(Comments, Decl(constEnums.ts, 37, 1)) + + switch (c) { +>c : Symbol(c, Decl(constEnums.ts, 165, 13)) + + case Comments["//"]: +>Comments : Symbol(Comments, Decl(constEnums.ts, 37, 1)) +>"//" : Symbol(Comments["//"], Decl(constEnums.ts, 39, 21)) + + case Comments["/*"]: +>Comments : Symbol(Comments, Decl(constEnums.ts, 37, 1)) +>"/*" : Symbol(Comments["/*"], Decl(constEnums.ts, 40, 9)) + + case Comments["*/"]: +>Comments : Symbol(Comments, Decl(constEnums.ts, 37, 1)) +>"*/" : Symbol(Comments["*/"], Decl(constEnums.ts, 41, 9)) + + case Comments["///"]: +>Comments : Symbol(Comments, Decl(constEnums.ts, 37, 1)) +>"///" : Symbol(Comments["///"], Decl(constEnums.ts, 42, 9)) + + case Comments["#"]: +>Comments : Symbol(Comments, Decl(constEnums.ts, 37, 1)) +>"#" : Symbol(Comments["#"], Decl(constEnums.ts, 43, 10)) + + case Comments[""]: +>Comments : Symbol(Comments, Decl(constEnums.ts, 37, 1)) +>"-->" : Symbol(Comments["-->"], Decl(constEnums.ts, 45, 11)) + + break; + } +} + diff --git a/tests/baselines/reference/constEnums.types b/tests/baselines/reference/constEnums.types index 36cb50a2aabdb..cee4da5c2e1ba 100644 --- a/tests/baselines/reference/constEnums.types +++ b/tests/baselines/reference/constEnums.types @@ -180,6 +180,30 @@ const enum Enum1 { >`V` : "V" } +const enum Comments { +>Comments : Comments + + "//", +>"//" : typeof Comments["//"] + + "/*", +>"/*" : typeof Comments["/*"] + + "*/", +>"*/" : typeof Comments["*/"] + + "///", +>"///" : typeof Comments["///"] + + "#", +>"#" : typeof Comments["#"] + + "", +>"-->" : typeof Comments["-->"] +} module A { export module B { @@ -591,3 +615,50 @@ function bar(e: A.B.C.E): number { >1 : 1 } } + +function baz(c: Comments) { +>baz : (c: Comments) => void +>c : Comments + + switch (c) { +>c : Comments + + case Comments["//"]: +>Comments["//"] : typeof Comments["//"] +>Comments : typeof Comments +>"//" : "//" + + case Comments["/*"]: +>Comments["/*"] : typeof Comments["/*"] +>Comments : typeof Comments +>"/*" : "/*" + + case Comments["*/"]: +>Comments["*/"] : typeof Comments["*/"] +>Comments : typeof Comments +>"*/" : "*/" + + case Comments["///"]: +>Comments["///"] : typeof Comments["///"] +>Comments : typeof Comments +>"///" : "///" + + case Comments["#"]: +>Comments["#"] : typeof Comments["#"] +>Comments : typeof Comments +>"#" : "#" + + case Comments[""]: +>Comments["-->"] : typeof Comments["-->"] +>Comments : typeof Comments +>"-->" : "-->" + + break; + } +} + diff --git a/tests/baselines/reference/constIndexedAccess.js b/tests/baselines/reference/constIndexedAccess.js index ea203c38e3ff8..c2278787243da 100644 --- a/tests/baselines/reference/constIndexedAccess.js +++ b/tests/baselines/reference/constIndexedAccess.js @@ -33,10 +33,10 @@ let n3 = test[numbersNotConst.one]; var test; var s = test[0]; var n = test[1]; -var s1 = test[0 /* zero */]; -var n1 = test[1 /* one */]; -var s2 = test[0 /* "zero" */]; -var n2 = test[1 /* "one" */]; +var s1 = test[0 /* numbers.zero */]; +var n1 = test[1 /* numbers.one */]; +var s2 = test[0 /* numbers["zero"] */]; +var n2 = test[1 /* numbers["one"] */]; var numbersNotConst; (function (numbersNotConst) { numbersNotConst[numbersNotConst["zero"] = 0] = "zero"; diff --git a/tests/baselines/reference/constantEnumAssert.js b/tests/baselines/reference/constantEnumAssert.js index 85f3db9d93a77..3612381d5138a 100644 --- a/tests/baselines/reference/constantEnumAssert.js +++ b/tests/baselines/reference/constantEnumAssert.js @@ -76,10 +76,10 @@ var foo2 = { a: E2.a }; var foo3 = { a: E1.a }; var foo4 = { a: E2.a }; var foo5 = { a: E3.a }; -var foo6 = { a: 0 /* a */ }; +var foo6 = { a: 0 /* E4.a */ }; var foo7 = { a: E5.a }; var foo8 = { a: E1.a }; var foo9 = { a: E2.a }; var foo10 = { a: E3.a }; -var foo11 = { a: 0 /* a */ }; +var foo11 = { a: 0 /* E4.a */ }; var foo12 = { a: E5.a }; diff --git a/tests/baselines/reference/constructBigint.errors.txt b/tests/baselines/reference/constructBigint.errors.txt index c9aab7d655ea2..4c778f474cd26 100644 --- a/tests/baselines/reference/constructBigint.errors.txt +++ b/tests/baselines/reference/constructBigint.errors.txt @@ -1,6 +1,5 @@ tests/cases/conformance/es2020/constructBigint.ts(6,8): error TS2345: Argument of type 'symbol' is not assignable to parameter of type 'string | number | bigint | boolean'. tests/cases/conformance/es2020/constructBigint.ts(7,8): error TS2345: Argument of type '{ e: number; m: number; }' is not assignable to parameter of type 'string | number | bigint | boolean'. - Type '{ e: number; m: number; }' is not assignable to type 'true'. tests/cases/conformance/es2020/constructBigint.ts(8,8): error TS2345: Argument of type 'null' is not assignable to parameter of type 'string | number | bigint | boolean'. tests/cases/conformance/es2020/constructBigint.ts(9,8): error TS2345: Argument of type 'undefined' is not assignable to parameter of type 'string | number | bigint | boolean'. @@ -17,7 +16,6 @@ tests/cases/conformance/es2020/constructBigint.ts(9,8): error TS2345: Argument o BigInt({ e: 1, m: 1 }) ~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '{ e: number; m: number; }' is not assignable to parameter of type 'string | number | bigint | boolean'. -!!! error TS2345: Type '{ e: number; m: number; }' is not assignable to type 'true'. BigInt(null); ~~~~ !!! error TS2345: Argument of type 'null' is not assignable to parameter of type 'string | number | bigint | boolean'. diff --git a/tests/baselines/reference/constructorFunctionMethodTypeParameters.symbols b/tests/baselines/reference/constructorFunctionMethodTypeParameters.symbols new file mode 100644 index 0000000000000..7af38bcb4cf29 --- /dev/null +++ b/tests/baselines/reference/constructorFunctionMethodTypeParameters.symbols @@ -0,0 +1,73 @@ +=== tests/cases/conformance/salsa/constructorFunctionMethodTypeParameters.js === +/** + * @template {string} T + * @param {T} t + */ +function Cls(t) { +>Cls : Symbol(Cls, Decl(constructorFunctionMethodTypeParameters.js, 0, 0)) +>t : Symbol(t, Decl(constructorFunctionMethodTypeParameters.js, 4, 13)) + + this.t = t; +>this.t : Symbol(Cls.t, Decl(constructorFunctionMethodTypeParameters.js, 4, 17)) +>this : Symbol(Cls, Decl(constructorFunctionMethodTypeParameters.js, 0, 0)) +>t : Symbol(Cls.t, Decl(constructorFunctionMethodTypeParameters.js, 4, 17)) +>t : Symbol(t, Decl(constructorFunctionMethodTypeParameters.js, 4, 13)) +} + +/** + * @template {string} V + * @param {T} t + * @param {V} v + * @return {V} + */ +Cls.prototype.topLevelComment = function (t, v) { +>Cls.prototype : Symbol(Cls.topLevelComment, Decl(constructorFunctionMethodTypeParameters.js, 6, 1)) +>Cls : Symbol(Cls, Decl(constructorFunctionMethodTypeParameters.js, 0, 0)) +>prototype : Symbol(Function.prototype, Decl(lib.es5.d.ts, --, --)) +>topLevelComment : Symbol(Cls.topLevelComment, Decl(constructorFunctionMethodTypeParameters.js, 6, 1)) +>t : Symbol(t, Decl(constructorFunctionMethodTypeParameters.js, 14, 42)) +>v : Symbol(v, Decl(constructorFunctionMethodTypeParameters.js, 14, 44)) + + return v +>v : Symbol(v, Decl(constructorFunctionMethodTypeParameters.js, 14, 44)) + +}; + +Cls.prototype.nestedComment = +>Cls.prototype : Symbol(Cls.nestedComment, Decl(constructorFunctionMethodTypeParameters.js, 16, 2)) +>Cls : Symbol(Cls, Decl(constructorFunctionMethodTypeParameters.js, 0, 0)) +>prototype : Symbol(Function.prototype, Decl(lib.es5.d.ts, --, --)) +>nestedComment : Symbol(Cls.nestedComment, Decl(constructorFunctionMethodTypeParameters.js, 16, 2)) + + /** + * @template {string} U + * @param {T} t + * @param {U} u + * @return {T} + */ + function (t, u) { +>t : Symbol(t, Decl(constructorFunctionMethodTypeParameters.js, 25, 14)) +>u : Symbol(u, Decl(constructorFunctionMethodTypeParameters.js, 25, 16)) + + return t +>t : Symbol(t, Decl(constructorFunctionMethodTypeParameters.js, 25, 14)) + + }; + +var c = new Cls('a'); +>c : Symbol(c, Decl(constructorFunctionMethodTypeParameters.js, 29, 3)) +>Cls : Symbol(Cls, Decl(constructorFunctionMethodTypeParameters.js, 0, 0)) + +const s = c.topLevelComment('a', 'b'); +>s : Symbol(s, Decl(constructorFunctionMethodTypeParameters.js, 30, 5)) +>c.topLevelComment : Symbol(Cls.topLevelComment, Decl(constructorFunctionMethodTypeParameters.js, 6, 1)) +>c : Symbol(c, Decl(constructorFunctionMethodTypeParameters.js, 29, 3)) +>topLevelComment : Symbol(Cls.topLevelComment, Decl(constructorFunctionMethodTypeParameters.js, 6, 1)) + +const t = c.nestedComment('a', 'b'); +>t : Symbol(t, Decl(constructorFunctionMethodTypeParameters.js, 31, 5)) +>c.nestedComment : Symbol(Cls.nestedComment, Decl(constructorFunctionMethodTypeParameters.js, 16, 2)) +>c : Symbol(c, Decl(constructorFunctionMethodTypeParameters.js, 29, 3)) +>nestedComment : Symbol(Cls.nestedComment, Decl(constructorFunctionMethodTypeParameters.js, 16, 2)) + + diff --git a/tests/baselines/reference/constructorFunctionMethodTypeParameters.types b/tests/baselines/reference/constructorFunctionMethodTypeParameters.types new file mode 100644 index 0000000000000..707a8922c1ac0 --- /dev/null +++ b/tests/baselines/reference/constructorFunctionMethodTypeParameters.types @@ -0,0 +1,88 @@ +=== tests/cases/conformance/salsa/constructorFunctionMethodTypeParameters.js === +/** + * @template {string} T + * @param {T} t + */ +function Cls(t) { +>Cls : typeof Cls +>t : T + + this.t = t; +>this.t = t : T +>this.t : any +>this : this +>t : any +>t : T +} + +/** + * @template {string} V + * @param {T} t + * @param {V} v + * @return {V} + */ +Cls.prototype.topLevelComment = function (t, v) { +>Cls.prototype.topLevelComment = function (t, v) { return v} : (t: T, v: V) => V +>Cls.prototype.topLevelComment : any +>Cls.prototype : any +>Cls : typeof Cls +>prototype : any +>topLevelComment : any +>function (t, v) { return v} : (t: T, v: V) => V +>t : T +>v : V + + return v +>v : V + +}; + +Cls.prototype.nestedComment = +>Cls.prototype.nestedComment = /** * @template {string} U * @param {T} t * @param {U} u * @return {T} */ function (t, u) { return t } : (t: T, u: U) => T +>Cls.prototype.nestedComment : any +>Cls.prototype : any +>Cls : typeof Cls +>prototype : any +>nestedComment : any + + /** + * @template {string} U + * @param {T} t + * @param {U} u + * @return {T} + */ + function (t, u) { +>function (t, u) { return t } : (t: T, u: U) => T +>t : T +>u : U + + return t +>t : T + + }; + +var c = new Cls('a'); +>c : Cls<"a"> +>new Cls('a') : Cls<"a"> +>Cls : typeof Cls +>'a' : "a" + +const s = c.topLevelComment('a', 'b'); +>s : "b" +>c.topLevelComment('a', 'b') : "b" +>c.topLevelComment : (t: "a", v: V) => V +>c : Cls<"a"> +>topLevelComment : (t: "a", v: V) => V +>'a' : "a" +>'b' : "b" + +const t = c.nestedComment('a', 'b'); +>t : "a" +>c.nestedComment('a', 'b') : "a" +>c.nestedComment : (t: "a", u: U) => "a" +>c : Cls<"a"> +>nestedComment : (t: "a", u: U) => "a" +>'a' : "a" +>'b' : "b" + + diff --git a/tests/baselines/reference/constructorWithIncompleteTypeAnnotation.errors.txt b/tests/baselines/reference/constructorWithIncompleteTypeAnnotation.errors.txt index 2e3854ac84726..2e95e0d27dfdc 100644 --- a/tests/baselines/reference/constructorWithIncompleteTypeAnnotation.errors.txt +++ b/tests/baselines/reference/constructorWithIncompleteTypeAnnotation.errors.txt @@ -121,6 +121,7 @@ tests/cases/compiler/constructorWithIncompleteTypeAnnotation.ts(261,1): error TS if (retValue != 0 ^= { ~~ !!! error TS1005: ')' expected. +!!! related TS1007 tests/cases/compiler/constructorWithIncompleteTypeAnnotation.ts:22:20: The parser expected to find a ')' to match the '(' token here. ~ diff --git a/tests/baselines/reference/contextuallyTypedBooleanLiterals.js b/tests/baselines/reference/contextuallyTypedBooleanLiterals.js new file mode 100644 index 0000000000000..702a92440ad83 --- /dev/null +++ b/tests/baselines/reference/contextuallyTypedBooleanLiterals.js @@ -0,0 +1,55 @@ +//// [contextuallyTypedBooleanLiterals.ts] +// Repro from #48363 + +type Box = { + get: () => T, + set: (value: T) => void +} + +declare function box(value: T): Box; + +const bn1 = box(0); // Box +const bn2: Box = box(0); // Ok + +const bb1 = box(false); // Box +const bb2: Box = box(false); // Error, box not assignable to Box + +// Repro from #48150 + +interface Observable +{ + (): T; + (value: T): any; +} + +declare function observable(value: T): Observable; + +const x: Observable = observable(false); + + +//// [contextuallyTypedBooleanLiterals.js] +"use strict"; +// Repro from #48363 +var bn1 = box(0); // Box +var bn2 = box(0); // Ok +var bb1 = box(false); // Box +var bb2 = box(false); // Error, box not assignable to Box +var x = observable(false); + + +//// [contextuallyTypedBooleanLiterals.d.ts] +declare type Box = { + get: () => T; + set: (value: T) => void; +}; +declare function box(value: T): Box; +declare const bn1: Box; +declare const bn2: Box; +declare const bb1: Box; +declare const bb2: Box; +interface Observable { + (): T; + (value: T): any; +} +declare function observable(value: T): Observable; +declare const x: Observable; diff --git a/tests/baselines/reference/contextuallyTypedBooleanLiterals.symbols b/tests/baselines/reference/contextuallyTypedBooleanLiterals.symbols new file mode 100644 index 0000000000000..da1ec08b5bfcd --- /dev/null +++ b/tests/baselines/reference/contextuallyTypedBooleanLiterals.symbols @@ -0,0 +1,70 @@ +=== tests/cases/compiler/contextuallyTypedBooleanLiterals.ts === +// Repro from #48363 + +type Box = { +>Box : Symbol(Box, Decl(contextuallyTypedBooleanLiterals.ts, 0, 0)) +>T : Symbol(T, Decl(contextuallyTypedBooleanLiterals.ts, 2, 9)) + + get: () => T, +>get : Symbol(get, Decl(contextuallyTypedBooleanLiterals.ts, 2, 15)) +>T : Symbol(T, Decl(contextuallyTypedBooleanLiterals.ts, 2, 9)) + + set: (value: T) => void +>set : Symbol(set, Decl(contextuallyTypedBooleanLiterals.ts, 3, 17)) +>value : Symbol(value, Decl(contextuallyTypedBooleanLiterals.ts, 4, 10)) +>T : Symbol(T, Decl(contextuallyTypedBooleanLiterals.ts, 2, 9)) +} + +declare function box(value: T): Box; +>box : Symbol(box, Decl(contextuallyTypedBooleanLiterals.ts, 5, 1)) +>T : Symbol(T, Decl(contextuallyTypedBooleanLiterals.ts, 7, 21)) +>value : Symbol(value, Decl(contextuallyTypedBooleanLiterals.ts, 7, 24)) +>T : Symbol(T, Decl(contextuallyTypedBooleanLiterals.ts, 7, 21)) +>Box : Symbol(Box, Decl(contextuallyTypedBooleanLiterals.ts, 0, 0)) +>T : Symbol(T, Decl(contextuallyTypedBooleanLiterals.ts, 7, 21)) + +const bn1 = box(0); // Box +>bn1 : Symbol(bn1, Decl(contextuallyTypedBooleanLiterals.ts, 9, 5)) +>box : Symbol(box, Decl(contextuallyTypedBooleanLiterals.ts, 5, 1)) + +const bn2: Box = box(0); // Ok +>bn2 : Symbol(bn2, Decl(contextuallyTypedBooleanLiterals.ts, 10, 5)) +>Box : Symbol(Box, Decl(contextuallyTypedBooleanLiterals.ts, 0, 0)) +>box : Symbol(box, Decl(contextuallyTypedBooleanLiterals.ts, 5, 1)) + +const bb1 = box(false); // Box +>bb1 : Symbol(bb1, Decl(contextuallyTypedBooleanLiterals.ts, 12, 5)) +>box : Symbol(box, Decl(contextuallyTypedBooleanLiterals.ts, 5, 1)) + +const bb2: Box = box(false); // Error, box not assignable to Box +>bb2 : Symbol(bb2, Decl(contextuallyTypedBooleanLiterals.ts, 13, 5)) +>Box : Symbol(Box, Decl(contextuallyTypedBooleanLiterals.ts, 0, 0)) +>box : Symbol(box, Decl(contextuallyTypedBooleanLiterals.ts, 5, 1)) + +// Repro from #48150 + +interface Observable +>Observable : Symbol(Observable, Decl(contextuallyTypedBooleanLiterals.ts, 13, 37)) +>T : Symbol(T, Decl(contextuallyTypedBooleanLiterals.ts, 17, 21)) +{ + (): T; +>T : Symbol(T, Decl(contextuallyTypedBooleanLiterals.ts, 17, 21)) + + (value: T): any; +>value : Symbol(value, Decl(contextuallyTypedBooleanLiterals.ts, 20, 3)) +>T : Symbol(T, Decl(contextuallyTypedBooleanLiterals.ts, 17, 21)) +} + +declare function observable(value: T): Observable; +>observable : Symbol(observable, Decl(contextuallyTypedBooleanLiterals.ts, 21, 1)) +>T : Symbol(T, Decl(contextuallyTypedBooleanLiterals.ts, 23, 28)) +>value : Symbol(value, Decl(contextuallyTypedBooleanLiterals.ts, 23, 31)) +>T : Symbol(T, Decl(contextuallyTypedBooleanLiterals.ts, 23, 28)) +>Observable : Symbol(Observable, Decl(contextuallyTypedBooleanLiterals.ts, 13, 37)) +>T : Symbol(T, Decl(contextuallyTypedBooleanLiterals.ts, 23, 28)) + +const x: Observable = observable(false); +>x : Symbol(x, Decl(contextuallyTypedBooleanLiterals.ts, 25, 5)) +>Observable : Symbol(Observable, Decl(contextuallyTypedBooleanLiterals.ts, 13, 37)) +>observable : Symbol(observable, Decl(contextuallyTypedBooleanLiterals.ts, 21, 1)) + diff --git a/tests/baselines/reference/contextuallyTypedBooleanLiterals.types b/tests/baselines/reference/contextuallyTypedBooleanLiterals.types new file mode 100644 index 0000000000000..346a6e4fdb10d --- /dev/null +++ b/tests/baselines/reference/contextuallyTypedBooleanLiterals.types @@ -0,0 +1,61 @@ +=== tests/cases/compiler/contextuallyTypedBooleanLiterals.ts === +// Repro from #48363 + +type Box = { +>Box : Box + + get: () => T, +>get : () => T + + set: (value: T) => void +>set : (value: T) => void +>value : T +} + +declare function box(value: T): Box; +>box : (value: T) => Box +>value : T + +const bn1 = box(0); // Box +>bn1 : Box +>box(0) : Box +>box : (value: T) => Box +>0 : 0 + +const bn2: Box = box(0); // Ok +>bn2 : Box +>box(0) : Box +>box : (value: T) => Box +>0 : 0 + +const bb1 = box(false); // Box +>bb1 : Box +>box(false) : Box +>box : (value: T) => Box +>false : false + +const bb2: Box = box(false); // Error, box not assignable to Box +>bb2 : Box +>box(false) : Box +>box : (value: T) => Box +>false : false + +// Repro from #48150 + +interface Observable +{ + (): T; + (value: T): any; +>value : T +} + +declare function observable(value: T): Observable; +>observable : (value: T) => Observable +>value : T + +const x: Observable = observable(false); +>x : Observable +>observable(false) : Observable +>observable : (value: T) => Observable +>false : false + diff --git a/tests/baselines/reference/contextuallyTypedSymbolNamedProperties.js b/tests/baselines/reference/contextuallyTypedSymbolNamedProperties.js new file mode 100644 index 0000000000000..fc949d87312ab --- /dev/null +++ b/tests/baselines/reference/contextuallyTypedSymbolNamedProperties.js @@ -0,0 +1,53 @@ +//// [contextuallyTypedSymbolNamedProperties.ts] +// Repros from #43628 + +const A = Symbol("A"); +const B = Symbol("B"); + +type Action = + | {type: typeof A, data: string} + | {type: typeof B, data: number} + +declare const ab: Action; + +declare function f(action: T, blah: { [K in T['type']]: (p: K) => void }): any; + +f(ab, { + [A]: ap => { ap.description }, + [B]: bp => { bp.description }, +}) + +const x: { [sym: symbol]: (p: string) => void } = { [A]: s => s.length }; + + +//// [contextuallyTypedSymbolNamedProperties.js] +"use strict"; +// Repros from #43628 +const A = Symbol("A"); +const B = Symbol("B"); +f(ab, { + [A]: ap => { ap.description; }, + [B]: bp => { bp.description; }, +}); +const x = { [A]: s => s.length }; + + +//// [contextuallyTypedSymbolNamedProperties.d.ts] +declare const A: unique symbol; +declare const B: unique symbol; +declare type Action = { + type: typeof A; + data: string; +} | { + type: typeof B; + data: number; +}; +declare const ab: Action; +declare function f(action: T, blah: { + [K in T['type']]: (p: K) => void; +}): any; +declare const x: { + [sym: symbol]: (p: string) => void; +}; diff --git a/tests/baselines/reference/contextuallyTypedSymbolNamedProperties.symbols b/tests/baselines/reference/contextuallyTypedSymbolNamedProperties.symbols new file mode 100644 index 0000000000000..0c186e59f61a1 --- /dev/null +++ b/tests/baselines/reference/contextuallyTypedSymbolNamedProperties.symbols @@ -0,0 +1,73 @@ +=== tests/cases/compiler/contextuallyTypedSymbolNamedProperties.ts === +// Repros from #43628 + +const A = Symbol("A"); +>A : Symbol(A, Decl(contextuallyTypedSymbolNamedProperties.ts, 2, 5)) +>Symbol : Symbol(Symbol, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.symbol.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2019.symbol.d.ts, --, --)) + +const B = Symbol("B"); +>B : Symbol(B, Decl(contextuallyTypedSymbolNamedProperties.ts, 3, 5)) +>Symbol : Symbol(Symbol, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.symbol.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2019.symbol.d.ts, --, --)) + +type Action = +>Action : Symbol(Action, Decl(contextuallyTypedSymbolNamedProperties.ts, 3, 22)) + + | {type: typeof A, data: string} +>type : Symbol(type, Decl(contextuallyTypedSymbolNamedProperties.ts, 6, 7)) +>A : Symbol(A, Decl(contextuallyTypedSymbolNamedProperties.ts, 2, 5)) +>data : Symbol(data, Decl(contextuallyTypedSymbolNamedProperties.ts, 6, 22)) + + | {type: typeof B, data: number} +>type : Symbol(type, Decl(contextuallyTypedSymbolNamedProperties.ts, 7, 7)) +>B : Symbol(B, Decl(contextuallyTypedSymbolNamedProperties.ts, 3, 5)) +>data : Symbol(data, Decl(contextuallyTypedSymbolNamedProperties.ts, 7, 22)) + +declare const ab: Action; +>ab : Symbol(ab, Decl(contextuallyTypedSymbolNamedProperties.ts, 9, 13)) +>Action : Symbol(Action, Decl(contextuallyTypedSymbolNamedProperties.ts, 3, 22)) + +declare function f(action: T, blah: { [K in T['type']]: (p: K) => void }): any; +>f : Symbol(f, Decl(contextuallyTypedSymbolNamedProperties.ts, 9, 25)) +>T : Symbol(T, Decl(contextuallyTypedSymbolNamedProperties.ts, 11, 19)) +>type : Symbol(type, Decl(contextuallyTypedSymbolNamedProperties.ts, 11, 30)) +>action : Symbol(action, Decl(contextuallyTypedSymbolNamedProperties.ts, 11, 56)) +>T : Symbol(T, Decl(contextuallyTypedSymbolNamedProperties.ts, 11, 19)) +>blah : Symbol(blah, Decl(contextuallyTypedSymbolNamedProperties.ts, 11, 66)) +>K : Symbol(K, Decl(contextuallyTypedSymbolNamedProperties.ts, 11, 76)) +>T : Symbol(T, Decl(contextuallyTypedSymbolNamedProperties.ts, 11, 19)) +>p : Symbol(p, Decl(contextuallyTypedSymbolNamedProperties.ts, 11, 94)) +>K : Symbol(K, Decl(contextuallyTypedSymbolNamedProperties.ts, 11, 76)) + +f(ab, { +>f : Symbol(f, Decl(contextuallyTypedSymbolNamedProperties.ts, 9, 25)) +>ab : Symbol(ab, Decl(contextuallyTypedSymbolNamedProperties.ts, 9, 13)) + + [A]: ap => { ap.description }, +>[A] : Symbol([A], Decl(contextuallyTypedSymbolNamedProperties.ts, 13, 7)) +>A : Symbol(A, Decl(contextuallyTypedSymbolNamedProperties.ts, 2, 5)) +>ap : Symbol(ap, Decl(contextuallyTypedSymbolNamedProperties.ts, 14, 8)) +>ap.description : Symbol(Symbol.description, Decl(lib.es2019.symbol.d.ts, --, --)) +>ap : Symbol(ap, Decl(contextuallyTypedSymbolNamedProperties.ts, 14, 8)) +>description : Symbol(Symbol.description, Decl(lib.es2019.symbol.d.ts, --, --)) + + [B]: bp => { bp.description }, +>[B] : Symbol([B], Decl(contextuallyTypedSymbolNamedProperties.ts, 14, 34)) +>B : Symbol(B, Decl(contextuallyTypedSymbolNamedProperties.ts, 3, 5)) +>bp : Symbol(bp, Decl(contextuallyTypedSymbolNamedProperties.ts, 15, 8)) +>bp.description : Symbol(Symbol.description, Decl(lib.es2019.symbol.d.ts, --, --)) +>bp : Symbol(bp, Decl(contextuallyTypedSymbolNamedProperties.ts, 15, 8)) +>description : Symbol(Symbol.description, Decl(lib.es2019.symbol.d.ts, --, --)) + +}) + +const x: { [sym: symbol]: (p: string) => void } = { [A]: s => s.length }; +>x : Symbol(x, Decl(contextuallyTypedSymbolNamedProperties.ts, 18, 5)) +>sym : Symbol(sym, Decl(contextuallyTypedSymbolNamedProperties.ts, 18, 12)) +>p : Symbol(p, Decl(contextuallyTypedSymbolNamedProperties.ts, 18, 27)) +>[A] : Symbol([A], Decl(contextuallyTypedSymbolNamedProperties.ts, 18, 51)) +>A : Symbol(A, Decl(contextuallyTypedSymbolNamedProperties.ts, 2, 5)) +>s : Symbol(s, Decl(contextuallyTypedSymbolNamedProperties.ts, 18, 56)) +>s.length : Symbol(String.length, Decl(lib.es5.d.ts, --, --)) +>s : Symbol(s, Decl(contextuallyTypedSymbolNamedProperties.ts, 18, 56)) +>length : Symbol(String.length, Decl(lib.es5.d.ts, --, --)) + diff --git a/tests/baselines/reference/contextuallyTypedSymbolNamedProperties.types b/tests/baselines/reference/contextuallyTypedSymbolNamedProperties.types new file mode 100644 index 0000000000000..7f3da21666af0 --- /dev/null +++ b/tests/baselines/reference/contextuallyTypedSymbolNamedProperties.types @@ -0,0 +1,77 @@ +=== tests/cases/compiler/contextuallyTypedSymbolNamedProperties.ts === +// Repros from #43628 + +const A = Symbol("A"); +>A : unique symbol +>Symbol("A") : unique symbol +>Symbol : SymbolConstructor +>"A" : "A" + +const B = Symbol("B"); +>B : unique symbol +>Symbol("B") : unique symbol +>Symbol : SymbolConstructor +>"B" : "B" + +type Action = +>Action : Action + + | {type: typeof A, data: string} +>type : unique symbol +>A : unique symbol +>data : string + + | {type: typeof B, data: number} +>type : unique symbol +>B : unique symbol +>data : number + +declare const ab: Action; +>ab : Action + +declare function f(action: T, blah: { [K in T['type']]: (p: K) => void }): any; +>f : (action: T, blah: { [K in T["type"]]: (p: K) => void; }) => any +>type : string | symbol +>action : T +>blah : { [K in T["type"]]: (p: K) => void; } +>p : K + +f(ab, { +>f(ab, { [A]: ap => { ap.description }, [B]: bp => { bp.description },}) : any +>f : (action: T, blah: { [K in T["type"]]: (p: K) => void; }) => any +>ab : Action +>{ [A]: ap => { ap.description }, [B]: bp => { bp.description },} : { [A]: (ap: unique symbol) => void; [B]: (bp: unique symbol) => void; } + + [A]: ap => { ap.description }, +>[A] : (ap: unique symbol) => void +>A : unique symbol +>ap => { ap.description } : (ap: unique symbol) => void +>ap : unique symbol +>ap.description : string | undefined +>ap : unique symbol +>description : string | undefined + + [B]: bp => { bp.description }, +>[B] : (bp: unique symbol) => void +>B : unique symbol +>bp => { bp.description } : (bp: unique symbol) => void +>bp : unique symbol +>bp.description : string | undefined +>bp : unique symbol +>description : string | undefined + +}) + +const x: { [sym: symbol]: (p: string) => void } = { [A]: s => s.length }; +>x : { [sym: symbol]: (p: string) => void; } +>sym : symbol +>p : string +>{ [A]: s => s.length } : { [A]: (s: string) => number; } +>[A] : (s: string) => number +>A : unique symbol +>s => s.length : (s: string) => number +>s : string +>s.length : number +>s : string +>length : number + diff --git a/tests/baselines/reference/controlFlowAliasing.errors.txt b/tests/baselines/reference/controlFlowAliasing.errors.txt index 04c2aacd71207..3bdd7b9a7eec4 100644 --- a/tests/baselines/reference/controlFlowAliasing.errors.txt +++ b/tests/baselines/reference/controlFlowAliasing.errors.txt @@ -28,15 +28,11 @@ tests/cases/conformance/controlFlow/controlFlowAliasing.ts(232,13): error TS2322 Type 'number' is not assignable to type 'string'. tests/cases/conformance/controlFlow/controlFlowAliasing.ts(233,13): error TS2322: Type 'string | number' is not assignable to type 'string'. Type 'number' is not assignable to type 'string'. -tests/cases/conformance/controlFlow/controlFlowAliasing.ts(267,13): error TS2322: Type 'string | number' is not assignable to type 'string'. - Type 'number' is not assignable to type 'string'. -tests/cases/conformance/controlFlow/controlFlowAliasing.ts(270,13): error TS2322: Type 'string | number' is not assignable to type 'number'. - Type 'string' is not assignable to type 'number'. tests/cases/conformance/controlFlow/controlFlowAliasing.ts(280,5): error TS2448: Block-scoped variable 'a' used before its declaration. tests/cases/conformance/controlFlow/controlFlowAliasing.ts(280,5): error TS2454: Variable 'a' is used before being assigned. -==== tests/cases/conformance/controlFlow/controlFlowAliasing.ts (19 errors) ==== +==== tests/cases/conformance/controlFlow/controlFlowAliasing.ts (17 errors) ==== // Narrowing by aliased conditional expressions function f10(x: string | number) { @@ -349,15 +345,9 @@ tests/cases/conformance/controlFlow/controlFlowAliasing.ts(280,5): error TS2454: function foo({ kind, payload }: Data) { if (kind === 'str') { let t: string = payload; - ~ -!!! error TS2322: Type 'string | number' is not assignable to type 'string'. -!!! error TS2322: Type 'number' is not assignable to type 'string'. } else { let t: number = payload; - ~ -!!! error TS2322: Type 'string | number' is not assignable to type 'number'. -!!! error TS2322: Type 'string' is not assignable to type 'number'. } } diff --git a/tests/baselines/reference/controlFlowAliasing.types b/tests/baselines/reference/controlFlowAliasing.types index bbca40eb168b8..a3c7f9f7f4f19 100644 --- a/tests/baselines/reference/controlFlowAliasing.types +++ b/tests/baselines/reference/controlFlowAliasing.types @@ -888,12 +888,12 @@ function foo({ kind, payload }: Data) { let t: string = payload; >t : string ->payload : string | number +>payload : string } else { let t: number = payload; >t : number ->payload : string | number +>payload : number } } diff --git a/tests/baselines/reference/controlFlowCommaExpressionAssertionMultiple.js b/tests/baselines/reference/controlFlowCommaExpressionAssertionMultiple.js new file mode 100644 index 0000000000000..0a60d98a46b2c --- /dev/null +++ b/tests/baselines/reference/controlFlowCommaExpressionAssertionMultiple.js @@ -0,0 +1,30 @@ +//// [controlFlowCommaExpressionAssertionMultiple.ts] +function Narrow(value: any): asserts value is T {} + +function func(foo: any, bar: any) { + Narrow(foo), Narrow(bar); + foo; + bar; +} + +function func2(foo: any, bar: any, baz: any) { + Narrow(foo), Narrow(bar), Narrow(baz); + foo; + bar; + baz; +} + + +//// [controlFlowCommaExpressionAssertionMultiple.js] +function Narrow(value) { } +function func(foo, bar) { + Narrow(foo), Narrow(bar); + foo; + bar; +} +function func2(foo, bar, baz) { + Narrow(foo), Narrow(bar), Narrow(baz); + foo; + bar; + baz; +} diff --git a/tests/baselines/reference/controlFlowCommaExpressionAssertionMultiple.symbols b/tests/baselines/reference/controlFlowCommaExpressionAssertionMultiple.symbols new file mode 100644 index 0000000000000..d95ac53dd5e8e --- /dev/null +++ b/tests/baselines/reference/controlFlowCommaExpressionAssertionMultiple.symbols @@ -0,0 +1,50 @@ +=== tests/cases/compiler/controlFlowCommaExpressionAssertionMultiple.ts === +function Narrow(value: any): asserts value is T {} +>Narrow : Symbol(Narrow, Decl(controlFlowCommaExpressionAssertionMultiple.ts, 0, 0)) +>T : Symbol(T, Decl(controlFlowCommaExpressionAssertionMultiple.ts, 0, 16)) +>value : Symbol(value, Decl(controlFlowCommaExpressionAssertionMultiple.ts, 0, 19)) +>value : Symbol(value, Decl(controlFlowCommaExpressionAssertionMultiple.ts, 0, 19)) +>T : Symbol(T, Decl(controlFlowCommaExpressionAssertionMultiple.ts, 0, 16)) + +function func(foo: any, bar: any) { +>func : Symbol(func, Decl(controlFlowCommaExpressionAssertionMultiple.ts, 0, 53)) +>foo : Symbol(foo, Decl(controlFlowCommaExpressionAssertionMultiple.ts, 2, 14)) +>bar : Symbol(bar, Decl(controlFlowCommaExpressionAssertionMultiple.ts, 2, 23)) + + Narrow(foo), Narrow(bar); +>Narrow : Symbol(Narrow, Decl(controlFlowCommaExpressionAssertionMultiple.ts, 0, 0)) +>foo : Symbol(foo, Decl(controlFlowCommaExpressionAssertionMultiple.ts, 2, 14)) +>Narrow : Symbol(Narrow, Decl(controlFlowCommaExpressionAssertionMultiple.ts, 0, 0)) +>bar : Symbol(bar, Decl(controlFlowCommaExpressionAssertionMultiple.ts, 2, 23)) + + foo; +>foo : Symbol(foo, Decl(controlFlowCommaExpressionAssertionMultiple.ts, 2, 14)) + + bar; +>bar : Symbol(bar, Decl(controlFlowCommaExpressionAssertionMultiple.ts, 2, 23)) +} + +function func2(foo: any, bar: any, baz: any) { +>func2 : Symbol(func2, Decl(controlFlowCommaExpressionAssertionMultiple.ts, 6, 1)) +>foo : Symbol(foo, Decl(controlFlowCommaExpressionAssertionMultiple.ts, 8, 15)) +>bar : Symbol(bar, Decl(controlFlowCommaExpressionAssertionMultiple.ts, 8, 24)) +>baz : Symbol(baz, Decl(controlFlowCommaExpressionAssertionMultiple.ts, 8, 34)) + + Narrow(foo), Narrow(bar), Narrow(baz); +>Narrow : Symbol(Narrow, Decl(controlFlowCommaExpressionAssertionMultiple.ts, 0, 0)) +>foo : Symbol(foo, Decl(controlFlowCommaExpressionAssertionMultiple.ts, 8, 15)) +>Narrow : Symbol(Narrow, Decl(controlFlowCommaExpressionAssertionMultiple.ts, 0, 0)) +>bar : Symbol(bar, Decl(controlFlowCommaExpressionAssertionMultiple.ts, 8, 24)) +>Narrow : Symbol(Narrow, Decl(controlFlowCommaExpressionAssertionMultiple.ts, 0, 0)) +>baz : Symbol(baz, Decl(controlFlowCommaExpressionAssertionMultiple.ts, 8, 34)) + + foo; +>foo : Symbol(foo, Decl(controlFlowCommaExpressionAssertionMultiple.ts, 8, 15)) + + bar; +>bar : Symbol(bar, Decl(controlFlowCommaExpressionAssertionMultiple.ts, 8, 24)) + + baz; +>baz : Symbol(baz, Decl(controlFlowCommaExpressionAssertionMultiple.ts, 8, 34)) +} + diff --git a/tests/baselines/reference/controlFlowCommaExpressionAssertionMultiple.types b/tests/baselines/reference/controlFlowCommaExpressionAssertionMultiple.types new file mode 100644 index 0000000000000..8010e69acd79d --- /dev/null +++ b/tests/baselines/reference/controlFlowCommaExpressionAssertionMultiple.types @@ -0,0 +1,55 @@ +=== tests/cases/compiler/controlFlowCommaExpressionAssertionMultiple.ts === +function Narrow(value: any): asserts value is T {} +>Narrow : (value: any) => asserts value is T +>value : any + +function func(foo: any, bar: any) { +>func : (foo: any, bar: any) => void +>foo : any +>bar : any + + Narrow(foo), Narrow(bar); +>Narrow(foo), Narrow(bar) : void +>Narrow(foo) : void +>Narrow : (value: any) => asserts value is T +>foo : any +>Narrow(bar) : void +>Narrow : (value: any) => asserts value is T +>bar : any + + foo; +>foo : number + + bar; +>bar : string +} + +function func2(foo: any, bar: any, baz: any) { +>func2 : (foo: any, bar: any, baz: any) => void +>foo : any +>bar : any +>baz : any + + Narrow(foo), Narrow(bar), Narrow(baz); +>Narrow(foo), Narrow(bar), Narrow(baz) : void +>Narrow(foo), Narrow(bar) : void +>Narrow(foo) : void +>Narrow : (value: any) => asserts value is T +>foo : any +>Narrow(bar) : void +>Narrow : (value: any) => asserts value is T +>bar : any +>Narrow(baz) : void +>Narrow : (value: any) => asserts value is T +>baz : any + + foo; +>foo : number + + bar; +>bar : string + + baz; +>baz : boolean +} + diff --git a/tests/baselines/reference/controlFlowGenericTypes.errors.txt b/tests/baselines/reference/controlFlowGenericTypes.errors.txt index 620c3ebb6d5c9..3130ba416fb75 100644 --- a/tests/baselines/reference/controlFlowGenericTypes.errors.txt +++ b/tests/baselines/reference/controlFlowGenericTypes.errors.txt @@ -220,4 +220,24 @@ tests/cases/conformance/controlFlow/controlFlowGenericTypes.ts(168,9): error TS2 this.validateRow(row); } } + + // Repro from #46495 + + interface Button { + type: "button"; + text: string; + } + + interface Checkbox { + type: "checkbox"; + isChecked: boolean; + } + + type Control = Button | Checkbox; + + function update(control : T | undefined, key: K, value: T[K]): void { + if (control !== undefined) { + control[key] = value; + } + } \ No newline at end of file diff --git a/tests/baselines/reference/controlFlowGenericTypes.js b/tests/baselines/reference/controlFlowGenericTypes.js index d080434b17c07..a59b496ecd753 100644 --- a/tests/baselines/reference/controlFlowGenericTypes.js +++ b/tests/baselines/reference/controlFlowGenericTypes.js @@ -190,6 +190,26 @@ class SqlTable { this.validateRow(row); } } + +// Repro from #46495 + +interface Button { + type: "button"; + text: string; +} + +interface Checkbox { + type: "checkbox"; + isChecked: boolean; +} + +type Control = Button | Checkbox; + +function update(control : T | undefined, key: K, value: T[K]): void { + if (control !== undefined) { + control[key] = value; + } +} //// [controlFlowGenericTypes.js] @@ -343,3 +363,8 @@ var SqlTable = /** @class */ (function () { }; return SqlTable; }()); +function update(control, key, value) { + if (control !== undefined) { + control[key] = value; + } +} diff --git a/tests/baselines/reference/controlFlowGenericTypes.symbols b/tests/baselines/reference/controlFlowGenericTypes.symbols index c940c7983d694..1a1edf72f0afc 100644 --- a/tests/baselines/reference/controlFlowGenericTypes.symbols +++ b/tests/baselines/reference/controlFlowGenericTypes.symbols @@ -574,3 +574,55 @@ class SqlTable { } } +// Repro from #46495 + +interface Button { +>Button : Symbol(Button, Decl(controlFlowGenericTypes.ts, 190, 1)) + + type: "button"; +>type : Symbol(Button.type, Decl(controlFlowGenericTypes.ts, 194, 18)) + + text: string; +>text : Symbol(Button.text, Decl(controlFlowGenericTypes.ts, 195, 19)) +} + +interface Checkbox { +>Checkbox : Symbol(Checkbox, Decl(controlFlowGenericTypes.ts, 197, 1)) + + type: "checkbox"; +>type : Symbol(Checkbox.type, Decl(controlFlowGenericTypes.ts, 199, 20)) + + isChecked: boolean; +>isChecked : Symbol(Checkbox.isChecked, Decl(controlFlowGenericTypes.ts, 200, 21)) +} + +type Control = Button | Checkbox; +>Control : Symbol(Control, Decl(controlFlowGenericTypes.ts, 202, 1)) +>Button : Symbol(Button, Decl(controlFlowGenericTypes.ts, 190, 1)) +>Checkbox : Symbol(Checkbox, Decl(controlFlowGenericTypes.ts, 197, 1)) + +function update(control : T | undefined, key: K, value: T[K]): void { +>update : Symbol(update, Decl(controlFlowGenericTypes.ts, 204, 33)) +>T : Symbol(T, Decl(controlFlowGenericTypes.ts, 206, 16)) +>Control : Symbol(Control, Decl(controlFlowGenericTypes.ts, 202, 1)) +>K : Symbol(K, Decl(controlFlowGenericTypes.ts, 206, 34)) +>T : Symbol(T, Decl(controlFlowGenericTypes.ts, 206, 16)) +>control : Symbol(control, Decl(controlFlowGenericTypes.ts, 206, 54)) +>T : Symbol(T, Decl(controlFlowGenericTypes.ts, 206, 16)) +>key : Symbol(key, Decl(controlFlowGenericTypes.ts, 206, 78)) +>K : Symbol(K, Decl(controlFlowGenericTypes.ts, 206, 34)) +>value : Symbol(value, Decl(controlFlowGenericTypes.ts, 206, 86)) +>T : Symbol(T, Decl(controlFlowGenericTypes.ts, 206, 16)) +>K : Symbol(K, Decl(controlFlowGenericTypes.ts, 206, 34)) + + if (control !== undefined) { +>control : Symbol(control, Decl(controlFlowGenericTypes.ts, 206, 54)) +>undefined : Symbol(undefined) + + control[key] = value; +>control : Symbol(control, Decl(controlFlowGenericTypes.ts, 206, 54)) +>key : Symbol(key, Decl(controlFlowGenericTypes.ts, 206, 78)) +>value : Symbol(value, Decl(controlFlowGenericTypes.ts, 206, 86)) + } +} + diff --git a/tests/baselines/reference/controlFlowGenericTypes.types b/tests/baselines/reference/controlFlowGenericTypes.types index 5bf18f4e37afc..6ee07abf4d63c 100644 --- a/tests/baselines/reference/controlFlowGenericTypes.types +++ b/tests/baselines/reference/controlFlowGenericTypes.types @@ -542,3 +542,44 @@ class SqlTable { } } +// Repro from #46495 + +interface Button { + type: "button"; +>type : "button" + + text: string; +>text : string +} + +interface Checkbox { + type: "checkbox"; +>type : "checkbox" + + isChecked: boolean; +>isChecked : boolean +} + +type Control = Button | Checkbox; +>Control : Control + +function update(control : T | undefined, key: K, value: T[K]): void { +>update : (control: T | undefined, key: K, value: T[K]) => void +>control : T | undefined +>key : K +>value : T[K] + + if (control !== undefined) { +>control !== undefined : boolean +>control : T | undefined +>undefined : undefined + + control[key] = value; +>control[key] = value : T[K] +>control[key] : T[K] +>control : T +>key : K +>value : T[K] + } +} + diff --git a/tests/baselines/reference/correlatedUnions.js b/tests/baselines/reference/correlatedUnions.js new file mode 100644 index 0000000000000..0d6698588d31c --- /dev/null +++ b/tests/baselines/reference/correlatedUnions.js @@ -0,0 +1,508 @@ +//// [correlatedUnions.ts] +// Various repros from #30581 + +type RecordMap = { n: number, s: string, b: boolean }; +type UnionRecord = { [P in K]: { + kind: P, + v: RecordMap[P], + f: (v: RecordMap[P]) => void +}}[K]; + +function processRecord(rec: UnionRecord) { + rec.f(rec.v); +} + +declare const r1: UnionRecord<'n'>; // { kind: 'n', v: number, f: (v: number) => void } +declare const r2: UnionRecord; // { kind: 'n', ... } | { kind: 's', ... } | { kind: 'b', ... } + +processRecord(r1); +processRecord(r2); +processRecord({ kind: 'n', v: 42, f: v => v.toExponential() }); + +// -------- + +type TextFieldData = { value: string } +type SelectFieldData = { options: string[], selectedValue: string } + +type FieldMap = { + text: TextFieldData; + select: SelectFieldData; +} + +type FormField = { type: K, data: FieldMap[K] }; + +type RenderFunc = (props: FieldMap[K]) => void; +type RenderFuncMap = { [K in keyof FieldMap]: RenderFunc }; + +function renderTextField(props: TextFieldData) {} +function renderSelectField(props: SelectFieldData) {} + +const renderFuncs: RenderFuncMap = { + text: renderTextField, + select: renderSelectField, +}; + +function renderField(field: FormField) { + const renderFn = renderFuncs[field.type]; + renderFn(field.data); +} + +// -------- + +type TypeMap = { + foo: string, + bar: number +}; + +type Keys = keyof TypeMap; + +type HandlerMap = { [P in Keys]: (x: TypeMap[P]) => void }; + +const handlers: HandlerMap = { + foo: s => s.length, + bar: n => n.toFixed(2) +}; + +type DataEntry = { [P in K]: { + type: P, + data: TypeMap[P] +}}[K]; + +const data: DataEntry[] = [ + { type: 'foo', data: 'abc' }, + { type: 'foo', data: 'def' }, + { type: 'bar', data: 42 }, +]; + +function process(data: DataEntry[]) { + data.forEach(block => { + if (block.type in handlers) { + handlers[block.type](block.data) + } + }); +} + +process(data); +process([{ type: 'foo', data: 'abc' }]); + +// -------- + +type LetterMap = { A: string, B: number } +type LetterCaller = { [P in K]: { letter: Record, caller: (x: Record) => void } }[K]; + +function call({ letter, caller }: LetterCaller): void { + caller(letter); +} + +type A = { A: string }; +type B = { B: number }; +type ACaller = (a: A) => void; +type BCaller = (b: B) => void; + +declare const xx: { letter: A, caller: ACaller } | { letter: B, caller: BCaller }; + +call(xx); + +// -------- + +type Ev = { [P in K]: { + readonly name: P; + readonly once?: boolean; + readonly callback: (ev: DocumentEventMap[P]) => void; +}}[K]; + +function processEvents(events: Ev[]) { + for (const event of events) { + document.addEventListener(event.name, (ev) => event.callback(ev), { once: event.once }); + } +} + +function createEventListener({ name, once = false, callback }: Ev): Ev { + return { name, once, callback }; +} + +const clickEvent = createEventListener({ + name: "click", + callback: ev => console.log(ev), +}); + +const scrollEvent = createEventListener({ + name: "scroll", + callback: ev => console.log(ev), +}); + +processEvents([clickEvent, scrollEvent]); + +processEvents([ + { name: "click", callback: ev => console.log(ev) }, + { name: "scroll", callback: ev => console.log(ev) }, +]); + +// -------- + +function ff1() { + type ArgMap = { + sum: [a: number, b: number], + concat: [a: string, b: string, c: string] + } + type Keys = keyof ArgMap; + const funs: { [P in Keys]: (...args: ArgMap[P]) => void } = { + sum: (a, b) => a + b, + concat: (a, b, c) => a + b + c + } + function apply(funKey: K, ...args: ArgMap[K]) { + const fn = funs[funKey]; + fn(...args); + } + const x1 = apply('sum', 1, 2) + const x2 = apply('concat', 'str1', 'str2', 'str3' ) +} + +// Repro from #47368 + +type ArgMap = { a: number, b: string }; +type Func = (x: ArgMap[K]) => void; +type Funcs = { [K in keyof ArgMap]: Func }; + +function f1(funcs: Funcs, key: K, arg: ArgMap[K]) { + funcs[key](arg); +} + +function f2(funcs: Funcs, key: K, arg: ArgMap[K]) { + const func = funcs[key]; // Type Funcs[K] + func(arg); +} + +function f3(funcs: Funcs, key: K, arg: ArgMap[K]) { + const func: Func = funcs[key]; // Error, Funcs[K] not assignable to Func + func(arg); +} + +function f4(x: Funcs[keyof ArgMap], y: Funcs[K]) { + x = y; +} + +// Repro from #47890 + +interface MyObj { + someKey: { + name: string; + } + someOtherKey: { + name: number; + } +} + +const ref: MyObj = { + someKey: { name: "" }, + someOtherKey: { name: 42 } +}; + +function func(k: K): MyObj[K]['name'] | undefined { + const myObj: Partial[K] = ref[k]; + if (myObj) { + return myObj.name; + } + const myObj2: Partial[keyof MyObj] = ref[k]; + if (myObj2) { + return myObj2.name; + } + return undefined; +} + +// Repro from #48157 + +interface Foo { + bar?: string +} + +function foo(prop: T, f: Required) { + bar(f[prop]); +} + +declare function bar(t: string): void; + +// Repro from #48246 + +declare function makeCompleteLookupMapping, Attr extends keyof T[number]>( + ops: T, attr: Attr): { [Item in T[number]as Item[Attr]]: Item }; + +const ALL_BARS = [{ name: 'a'}, {name: 'b'}] as const; + +const BAR_LOOKUP = makeCompleteLookupMapping(ALL_BARS, 'name'); + +type BarLookup = typeof BAR_LOOKUP; + +type Baz = { [K in keyof BarLookup]: BarLookup[K]['name'] }; + + +//// [correlatedUnions.js] +"use strict"; +// Various repros from #30581 +function processRecord(rec) { + rec.f(rec.v); +} +processRecord(r1); +processRecord(r2); +processRecord({ kind: 'n', v: 42, f: function (v) { return v.toExponential(); } }); +function renderTextField(props) { } +function renderSelectField(props) { } +var renderFuncs = { + text: renderTextField, + select: renderSelectField +}; +function renderField(field) { + var renderFn = renderFuncs[field.type]; + renderFn(field.data); +} +var handlers = { + foo: function (s) { return s.length; }, + bar: function (n) { return n.toFixed(2); } +}; +var data = [ + { type: 'foo', data: 'abc' }, + { type: 'foo', data: 'def' }, + { type: 'bar', data: 42 }, +]; +function process(data) { + data.forEach(function (block) { + if (block.type in handlers) { + handlers[block.type](block.data); + } + }); +} +process(data); +process([{ type: 'foo', data: 'abc' }]); +function call(_a) { + var letter = _a.letter, caller = _a.caller; + caller(letter); +} +call(xx); +function processEvents(events) { + var _loop_1 = function (event_1) { + document.addEventListener(event_1.name, function (ev) { return event_1.callback(ev); }, { once: event_1.once }); + }; + for (var _i = 0, events_1 = events; _i < events_1.length; _i++) { + var event_1 = events_1[_i]; + _loop_1(event_1); + } +} +function createEventListener(_a) { + var name = _a.name, _b = _a.once, once = _b === void 0 ? false : _b, callback = _a.callback; + return { name: name, once: once, callback: callback }; +} +var clickEvent = createEventListener({ + name: "click", + callback: function (ev) { return console.log(ev); } +}); +var scrollEvent = createEventListener({ + name: "scroll", + callback: function (ev) { return console.log(ev); } +}); +processEvents([clickEvent, scrollEvent]); +processEvents([ + { name: "click", callback: function (ev) { return console.log(ev); } }, + { name: "scroll", callback: function (ev) { return console.log(ev); } }, +]); +// -------- +function ff1() { + var funs = { + sum: function (a, b) { return a + b; }, + concat: function (a, b, c) { return a + b + c; } + }; + function apply(funKey) { + var args = []; + for (var _i = 1; _i < arguments.length; _i++) { + args[_i - 1] = arguments[_i]; + } + var fn = funs[funKey]; + fn.apply(void 0, args); + } + var x1 = apply('sum', 1, 2); + var x2 = apply('concat', 'str1', 'str2', 'str3'); +} +function f1(funcs, key, arg) { + funcs[key](arg); +} +function f2(funcs, key, arg) { + var func = funcs[key]; // Type Funcs[K] + func(arg); +} +function f3(funcs, key, arg) { + var func = funcs[key]; // Error, Funcs[K] not assignable to Func + func(arg); +} +function f4(x, y) { + x = y; +} +var ref = { + someKey: { name: "" }, + someOtherKey: { name: 42 } +}; +function func(k) { + var myObj = ref[k]; + if (myObj) { + return myObj.name; + } + var myObj2 = ref[k]; + if (myObj2) { + return myObj2.name; + } + return undefined; +} +function foo(prop, f) { + bar(f[prop]); +} +var ALL_BARS = [{ name: 'a' }, { name: 'b' }]; +var BAR_LOOKUP = makeCompleteLookupMapping(ALL_BARS, 'name'); + + +//// [correlatedUnions.d.ts] +declare type RecordMap = { + n: number; + s: string; + b: boolean; +}; +declare type UnionRecord = { + [P in K]: { + kind: P; + v: RecordMap[P]; + f: (v: RecordMap[P]) => void; + }; +}[K]; +declare function processRecord(rec: UnionRecord): void; +declare const r1: UnionRecord<'n'>; +declare const r2: UnionRecord; +declare type TextFieldData = { + value: string; +}; +declare type SelectFieldData = { + options: string[]; + selectedValue: string; +}; +declare type FieldMap = { + text: TextFieldData; + select: SelectFieldData; +}; +declare type FormField = { + type: K; + data: FieldMap[K]; +}; +declare type RenderFunc = (props: FieldMap[K]) => void; +declare type RenderFuncMap = { + [K in keyof FieldMap]: RenderFunc; +}; +declare function renderTextField(props: TextFieldData): void; +declare function renderSelectField(props: SelectFieldData): void; +declare const renderFuncs: RenderFuncMap; +declare function renderField(field: FormField): void; +declare type TypeMap = { + foo: string; + bar: number; +}; +declare type Keys = keyof TypeMap; +declare type HandlerMap = { + [P in Keys]: (x: TypeMap[P]) => void; +}; +declare const handlers: HandlerMap; +declare type DataEntry = { + [P in K]: { + type: P; + data: TypeMap[P]; + }; +}[K]; +declare const data: DataEntry[]; +declare function process(data: DataEntry[]): void; +declare type LetterMap = { + A: string; + B: number; +}; +declare type LetterCaller = { + [P in K]: { + letter: Record; + caller: (x: Record) => void; + }; +}[K]; +declare function call({ letter, caller }: LetterCaller): void; +declare type A = { + A: string; +}; +declare type B = { + B: number; +}; +declare type ACaller = (a: A) => void; +declare type BCaller = (b: B) => void; +declare const xx: { + letter: A; + caller: ACaller; +} | { + letter: B; + caller: BCaller; +}; +declare type Ev = { + [P in K]: { + readonly name: P; + readonly once?: boolean; + readonly callback: (ev: DocumentEventMap[P]) => void; + }; +}[K]; +declare function processEvents(events: Ev[]): void; +declare function createEventListener({ name, once, callback }: Ev): Ev; +declare const clickEvent: { + readonly name: "click"; + readonly once?: boolean | undefined; + readonly callback: (ev: MouseEvent) => void; +}; +declare const scrollEvent: { + readonly name: "scroll"; + readonly once?: boolean | undefined; + readonly callback: (ev: Event) => void; +}; +declare function ff1(): void; +declare type ArgMap = { + a: number; + b: string; +}; +declare type Func = (x: ArgMap[K]) => void; +declare type Funcs = { + [K in keyof ArgMap]: Func; +}; +declare function f1(funcs: Funcs, key: K, arg: ArgMap[K]): void; +declare function f2(funcs: Funcs, key: K, arg: ArgMap[K]): void; +declare function f3(funcs: Funcs, key: K, arg: ArgMap[K]): void; +declare function f4(x: Funcs[keyof ArgMap], y: Funcs[K]): void; +interface MyObj { + someKey: { + name: string; + }; + someOtherKey: { + name: number; + }; +} +declare const ref: MyObj; +declare function func(k: K): MyObj[K]['name'] | undefined; +interface Foo { + bar?: string; +} +declare function foo(prop: T, f: Required): void; +declare function bar(t: string): void; +declare function makeCompleteLookupMapping, Attr extends keyof T[number]>(ops: T, attr: Attr): { + [Item in T[number] as Item[Attr]]: Item; +}; +declare const ALL_BARS: readonly [{ + readonly name: "a"; +}, { + readonly name: "b"; +}]; +declare const BAR_LOOKUP: { + a: { + readonly name: "a"; + }; + b: { + readonly name: "b"; + }; +}; +declare type BarLookup = typeof BAR_LOOKUP; +declare type Baz = { + [K in keyof BarLookup]: BarLookup[K]['name']; +}; diff --git a/tests/baselines/reference/correlatedUnions.symbols b/tests/baselines/reference/correlatedUnions.symbols new file mode 100644 index 0000000000000..9485b70c5dcd5 --- /dev/null +++ b/tests/baselines/reference/correlatedUnions.symbols @@ -0,0 +1,826 @@ +=== tests/cases/compiler/correlatedUnions.ts === +// Various repros from #30581 + +type RecordMap = { n: number, s: string, b: boolean }; +>RecordMap : Symbol(RecordMap, Decl(correlatedUnions.ts, 0, 0)) +>n : Symbol(n, Decl(correlatedUnions.ts, 2, 18)) +>s : Symbol(s, Decl(correlatedUnions.ts, 2, 29)) +>b : Symbol(b, Decl(correlatedUnions.ts, 2, 40)) + +type UnionRecord = { [P in K]: { +>UnionRecord : Symbol(UnionRecord, Decl(correlatedUnions.ts, 2, 54)) +>K : Symbol(K, Decl(correlatedUnions.ts, 3, 17)) +>RecordMap : Symbol(RecordMap, Decl(correlatedUnions.ts, 0, 0)) +>RecordMap : Symbol(RecordMap, Decl(correlatedUnions.ts, 0, 0)) +>P : Symbol(P, Decl(correlatedUnions.ts, 3, 67)) +>K : Symbol(K, Decl(correlatedUnions.ts, 3, 17)) + + kind: P, +>kind : Symbol(kind, Decl(correlatedUnions.ts, 3, 77)) +>P : Symbol(P, Decl(correlatedUnions.ts, 3, 67)) + + v: RecordMap[P], +>v : Symbol(v, Decl(correlatedUnions.ts, 4, 12)) +>RecordMap : Symbol(RecordMap, Decl(correlatedUnions.ts, 0, 0)) +>P : Symbol(P, Decl(correlatedUnions.ts, 3, 67)) + + f: (v: RecordMap[P]) => void +>f : Symbol(f, Decl(correlatedUnions.ts, 5, 20)) +>v : Symbol(v, Decl(correlatedUnions.ts, 6, 8)) +>RecordMap : Symbol(RecordMap, Decl(correlatedUnions.ts, 0, 0)) +>P : Symbol(P, Decl(correlatedUnions.ts, 3, 67)) + +}}[K]; +>K : Symbol(K, Decl(correlatedUnions.ts, 3, 17)) + +function processRecord(rec: UnionRecord) { +>processRecord : Symbol(processRecord, Decl(correlatedUnions.ts, 7, 6)) +>K : Symbol(K, Decl(correlatedUnions.ts, 9, 23)) +>RecordMap : Symbol(RecordMap, Decl(correlatedUnions.ts, 0, 0)) +>rec : Symbol(rec, Decl(correlatedUnions.ts, 9, 50)) +>UnionRecord : Symbol(UnionRecord, Decl(correlatedUnions.ts, 2, 54)) +>K : Symbol(K, Decl(correlatedUnions.ts, 9, 23)) + + rec.f(rec.v); +>rec.f : Symbol(f, Decl(correlatedUnions.ts, 5, 20)) +>rec : Symbol(rec, Decl(correlatedUnions.ts, 9, 50)) +>f : Symbol(f, Decl(correlatedUnions.ts, 5, 20)) +>rec.v : Symbol(v, Decl(correlatedUnions.ts, 4, 12)) +>rec : Symbol(rec, Decl(correlatedUnions.ts, 9, 50)) +>v : Symbol(v, Decl(correlatedUnions.ts, 4, 12)) +} + +declare const r1: UnionRecord<'n'>; // { kind: 'n', v: number, f: (v: number) => void } +>r1 : Symbol(r1, Decl(correlatedUnions.ts, 13, 13)) +>UnionRecord : Symbol(UnionRecord, Decl(correlatedUnions.ts, 2, 54)) + +declare const r2: UnionRecord; // { kind: 'n', ... } | { kind: 's', ... } | { kind: 'b', ... } +>r2 : Symbol(r2, Decl(correlatedUnions.ts, 14, 13)) +>UnionRecord : Symbol(UnionRecord, Decl(correlatedUnions.ts, 2, 54)) + +processRecord(r1); +>processRecord : Symbol(processRecord, Decl(correlatedUnions.ts, 7, 6)) +>r1 : Symbol(r1, Decl(correlatedUnions.ts, 13, 13)) + +processRecord(r2); +>processRecord : Symbol(processRecord, Decl(correlatedUnions.ts, 7, 6)) +>r2 : Symbol(r2, Decl(correlatedUnions.ts, 14, 13)) + +processRecord({ kind: 'n', v: 42, f: v => v.toExponential() }); +>processRecord : Symbol(processRecord, Decl(correlatedUnions.ts, 7, 6)) +>kind : Symbol(kind, Decl(correlatedUnions.ts, 18, 15)) +>v : Symbol(v, Decl(correlatedUnions.ts, 18, 26)) +>f : Symbol(f, Decl(correlatedUnions.ts, 18, 33)) +>v : Symbol(v, Decl(correlatedUnions.ts, 18, 36)) +>v.toExponential : Symbol(Number.toExponential, Decl(lib.es5.d.ts, --, --)) +>v : Symbol(v, Decl(correlatedUnions.ts, 18, 36)) +>toExponential : Symbol(Number.toExponential, Decl(lib.es5.d.ts, --, --)) + +// -------- + +type TextFieldData = { value: string } +>TextFieldData : Symbol(TextFieldData, Decl(correlatedUnions.ts, 18, 63)) +>value : Symbol(value, Decl(correlatedUnions.ts, 22, 22)) + +type SelectFieldData = { options: string[], selectedValue: string } +>SelectFieldData : Symbol(SelectFieldData, Decl(correlatedUnions.ts, 22, 38)) +>options : Symbol(options, Decl(correlatedUnions.ts, 23, 24)) +>selectedValue : Symbol(selectedValue, Decl(correlatedUnions.ts, 23, 43)) + +type FieldMap = { +>FieldMap : Symbol(FieldMap, Decl(correlatedUnions.ts, 23, 67)) + + text: TextFieldData; +>text : Symbol(text, Decl(correlatedUnions.ts, 25, 17)) +>TextFieldData : Symbol(TextFieldData, Decl(correlatedUnions.ts, 18, 63)) + + select: SelectFieldData; +>select : Symbol(select, Decl(correlatedUnions.ts, 26, 24)) +>SelectFieldData : Symbol(SelectFieldData, Decl(correlatedUnions.ts, 22, 38)) +} + +type FormField = { type: K, data: FieldMap[K] }; +>FormField : Symbol(FormField, Decl(correlatedUnions.ts, 28, 1)) +>K : Symbol(K, Decl(correlatedUnions.ts, 30, 15)) +>FieldMap : Symbol(FieldMap, Decl(correlatedUnions.ts, 23, 67)) +>type : Symbol(type, Decl(correlatedUnions.ts, 30, 44)) +>K : Symbol(K, Decl(correlatedUnions.ts, 30, 15)) +>data : Symbol(data, Decl(correlatedUnions.ts, 30, 53)) +>FieldMap : Symbol(FieldMap, Decl(correlatedUnions.ts, 23, 67)) +>K : Symbol(K, Decl(correlatedUnions.ts, 30, 15)) + +type RenderFunc = (props: FieldMap[K]) => void; +>RenderFunc : Symbol(RenderFunc, Decl(correlatedUnions.ts, 30, 74)) +>K : Symbol(K, Decl(correlatedUnions.ts, 32, 16)) +>FieldMap : Symbol(FieldMap, Decl(correlatedUnions.ts, 23, 67)) +>props : Symbol(props, Decl(correlatedUnions.ts, 32, 45)) +>FieldMap : Symbol(FieldMap, Decl(correlatedUnions.ts, 23, 67)) +>K : Symbol(K, Decl(correlatedUnions.ts, 32, 16)) + +type RenderFuncMap = { [K in keyof FieldMap]: RenderFunc }; +>RenderFuncMap : Symbol(RenderFuncMap, Decl(correlatedUnions.ts, 32, 73)) +>K : Symbol(K, Decl(correlatedUnions.ts, 33, 24)) +>FieldMap : Symbol(FieldMap, Decl(correlatedUnions.ts, 23, 67)) +>RenderFunc : Symbol(RenderFunc, Decl(correlatedUnions.ts, 30, 74)) +>K : Symbol(K, Decl(correlatedUnions.ts, 33, 24)) + +function renderTextField(props: TextFieldData) {} +>renderTextField : Symbol(renderTextField, Decl(correlatedUnions.ts, 33, 62)) +>props : Symbol(props, Decl(correlatedUnions.ts, 35, 25)) +>TextFieldData : Symbol(TextFieldData, Decl(correlatedUnions.ts, 18, 63)) + +function renderSelectField(props: SelectFieldData) {} +>renderSelectField : Symbol(renderSelectField, Decl(correlatedUnions.ts, 35, 49)) +>props : Symbol(props, Decl(correlatedUnions.ts, 36, 27)) +>SelectFieldData : Symbol(SelectFieldData, Decl(correlatedUnions.ts, 22, 38)) + +const renderFuncs: RenderFuncMap = { +>renderFuncs : Symbol(renderFuncs, Decl(correlatedUnions.ts, 38, 5)) +>RenderFuncMap : Symbol(RenderFuncMap, Decl(correlatedUnions.ts, 32, 73)) + + text: renderTextField, +>text : Symbol(text, Decl(correlatedUnions.ts, 38, 36)) +>renderTextField : Symbol(renderTextField, Decl(correlatedUnions.ts, 33, 62)) + + select: renderSelectField, +>select : Symbol(select, Decl(correlatedUnions.ts, 39, 26)) +>renderSelectField : Symbol(renderSelectField, Decl(correlatedUnions.ts, 35, 49)) + +}; + +function renderField(field: FormField) { +>renderField : Symbol(renderField, Decl(correlatedUnions.ts, 41, 2)) +>K : Symbol(K, Decl(correlatedUnions.ts, 43, 21)) +>FieldMap : Symbol(FieldMap, Decl(correlatedUnions.ts, 23, 67)) +>field : Symbol(field, Decl(correlatedUnions.ts, 43, 47)) +>FormField : Symbol(FormField, Decl(correlatedUnions.ts, 28, 1)) +>K : Symbol(K, Decl(correlatedUnions.ts, 43, 21)) + + const renderFn = renderFuncs[field.type]; +>renderFn : Symbol(renderFn, Decl(correlatedUnions.ts, 44, 9)) +>renderFuncs : Symbol(renderFuncs, Decl(correlatedUnions.ts, 38, 5)) +>field.type : Symbol(type, Decl(correlatedUnions.ts, 30, 44)) +>field : Symbol(field, Decl(correlatedUnions.ts, 43, 47)) +>type : Symbol(type, Decl(correlatedUnions.ts, 30, 44)) + + renderFn(field.data); +>renderFn : Symbol(renderFn, Decl(correlatedUnions.ts, 44, 9)) +>field.data : Symbol(data, Decl(correlatedUnions.ts, 30, 53)) +>field : Symbol(field, Decl(correlatedUnions.ts, 43, 47)) +>data : Symbol(data, Decl(correlatedUnions.ts, 30, 53)) +} + +// -------- + +type TypeMap = { +>TypeMap : Symbol(TypeMap, Decl(correlatedUnions.ts, 46, 1)) + + foo: string, +>foo : Symbol(foo, Decl(correlatedUnions.ts, 50, 16)) + + bar: number +>bar : Symbol(bar, Decl(correlatedUnions.ts, 51, 16)) + +}; + +type Keys = keyof TypeMap; +>Keys : Symbol(Keys, Decl(correlatedUnions.ts, 53, 2)) +>TypeMap : Symbol(TypeMap, Decl(correlatedUnions.ts, 46, 1)) + +type HandlerMap = { [P in Keys]: (x: TypeMap[P]) => void }; +>HandlerMap : Symbol(HandlerMap, Decl(correlatedUnions.ts, 55, 26)) +>P : Symbol(P, Decl(correlatedUnions.ts, 57, 21)) +>Keys : Symbol(Keys, Decl(correlatedUnions.ts, 53, 2)) +>x : Symbol(x, Decl(correlatedUnions.ts, 57, 34)) +>TypeMap : Symbol(TypeMap, Decl(correlatedUnions.ts, 46, 1)) +>P : Symbol(P, Decl(correlatedUnions.ts, 57, 21)) + +const handlers: HandlerMap = { +>handlers : Symbol(handlers, Decl(correlatedUnions.ts, 59, 5)) +>HandlerMap : Symbol(HandlerMap, Decl(correlatedUnions.ts, 55, 26)) + + foo: s => s.length, +>foo : Symbol(foo, Decl(correlatedUnions.ts, 59, 30)) +>s : Symbol(s, Decl(correlatedUnions.ts, 60, 8)) +>s.length : Symbol(String.length, Decl(lib.es5.d.ts, --, --)) +>s : Symbol(s, Decl(correlatedUnions.ts, 60, 8)) +>length : Symbol(String.length, Decl(lib.es5.d.ts, --, --)) + + bar: n => n.toFixed(2) +>bar : Symbol(bar, Decl(correlatedUnions.ts, 60, 23)) +>n : Symbol(n, Decl(correlatedUnions.ts, 61, 8)) +>n.toFixed : Symbol(Number.toFixed, Decl(lib.es5.d.ts, --, --)) +>n : Symbol(n, Decl(correlatedUnions.ts, 61, 8)) +>toFixed : Symbol(Number.toFixed, Decl(lib.es5.d.ts, --, --)) + +}; + +type DataEntry = { [P in K]: { +>DataEntry : Symbol(DataEntry, Decl(correlatedUnions.ts, 62, 2)) +>K : Symbol(K, Decl(correlatedUnions.ts, 64, 15)) +>Keys : Symbol(Keys, Decl(correlatedUnions.ts, 53, 2)) +>Keys : Symbol(Keys, Decl(correlatedUnions.ts, 53, 2)) +>P : Symbol(P, Decl(correlatedUnions.ts, 64, 43)) +>K : Symbol(K, Decl(correlatedUnions.ts, 64, 15)) + + type: P, +>type : Symbol(type, Decl(correlatedUnions.ts, 64, 53)) +>P : Symbol(P, Decl(correlatedUnions.ts, 64, 43)) + + data: TypeMap[P] +>data : Symbol(data, Decl(correlatedUnions.ts, 65, 12)) +>TypeMap : Symbol(TypeMap, Decl(correlatedUnions.ts, 46, 1)) +>P : Symbol(P, Decl(correlatedUnions.ts, 64, 43)) + +}}[K]; +>K : Symbol(K, Decl(correlatedUnions.ts, 64, 15)) + +const data: DataEntry[] = [ +>data : Symbol(data, Decl(correlatedUnions.ts, 69, 5)) +>DataEntry : Symbol(DataEntry, Decl(correlatedUnions.ts, 62, 2)) + + { type: 'foo', data: 'abc' }, +>type : Symbol(type, Decl(correlatedUnions.ts, 70, 5)) +>data : Symbol(data, Decl(correlatedUnions.ts, 70, 18)) + + { type: 'foo', data: 'def' }, +>type : Symbol(type, Decl(correlatedUnions.ts, 71, 5)) +>data : Symbol(data, Decl(correlatedUnions.ts, 71, 18)) + + { type: 'bar', data: 42 }, +>type : Symbol(type, Decl(correlatedUnions.ts, 72, 5)) +>data : Symbol(data, Decl(correlatedUnions.ts, 72, 18)) + +]; + +function process(data: DataEntry[]) { +>process : Symbol(process, Decl(correlatedUnions.ts, 73, 2)) +>K : Symbol(K, Decl(correlatedUnions.ts, 75, 17)) +>Keys : Symbol(Keys, Decl(correlatedUnions.ts, 53, 2)) +>data : Symbol(data, Decl(correlatedUnions.ts, 75, 33)) +>DataEntry : Symbol(DataEntry, Decl(correlatedUnions.ts, 62, 2)) +>K : Symbol(K, Decl(correlatedUnions.ts, 75, 17)) + + data.forEach(block => { +>data.forEach : Symbol(Array.forEach, Decl(lib.es5.d.ts, --, --)) +>data : Symbol(data, Decl(correlatedUnions.ts, 75, 33)) +>forEach : Symbol(Array.forEach, Decl(lib.es5.d.ts, --, --)) +>block : Symbol(block, Decl(correlatedUnions.ts, 76, 17)) + + if (block.type in handlers) { +>block.type : Symbol(type, Decl(correlatedUnions.ts, 64, 53)) +>block : Symbol(block, Decl(correlatedUnions.ts, 76, 17)) +>type : Symbol(type, Decl(correlatedUnions.ts, 64, 53)) +>handlers : Symbol(handlers, Decl(correlatedUnions.ts, 59, 5)) + + handlers[block.type](block.data) +>handlers : Symbol(handlers, Decl(correlatedUnions.ts, 59, 5)) +>block.type : Symbol(type, Decl(correlatedUnions.ts, 64, 53)) +>block : Symbol(block, Decl(correlatedUnions.ts, 76, 17)) +>type : Symbol(type, Decl(correlatedUnions.ts, 64, 53)) +>block.data : Symbol(data, Decl(correlatedUnions.ts, 65, 12)) +>block : Symbol(block, Decl(correlatedUnions.ts, 76, 17)) +>data : Symbol(data, Decl(correlatedUnions.ts, 65, 12)) + } + }); +} + +process(data); +>process : Symbol(process, Decl(correlatedUnions.ts, 73, 2)) +>data : Symbol(data, Decl(correlatedUnions.ts, 69, 5)) + +process([{ type: 'foo', data: 'abc' }]); +>process : Symbol(process, Decl(correlatedUnions.ts, 73, 2)) +>type : Symbol(type, Decl(correlatedUnions.ts, 84, 10)) +>data : Symbol(data, Decl(correlatedUnions.ts, 84, 23)) + +// -------- + +type LetterMap = { A: string, B: number } +>LetterMap : Symbol(LetterMap, Decl(correlatedUnions.ts, 84, 40)) +>A : Symbol(A, Decl(correlatedUnions.ts, 88, 18)) +>B : Symbol(B, Decl(correlatedUnions.ts, 88, 29)) + +type LetterCaller = { [P in K]: { letter: Record, caller: (x: Record) => void } }[K]; +>LetterCaller : Symbol(LetterCaller, Decl(correlatedUnions.ts, 88, 41)) +>K : Symbol(K, Decl(correlatedUnions.ts, 89, 18)) +>LetterMap : Symbol(LetterMap, Decl(correlatedUnions.ts, 84, 40)) +>P : Symbol(P, Decl(correlatedUnions.ts, 89, 50)) +>K : Symbol(K, Decl(correlatedUnions.ts, 89, 18)) +>letter : Symbol(letter, Decl(correlatedUnions.ts, 89, 60)) +>Record : Symbol(Record, Decl(lib.es5.d.ts, --, --)) +>P : Symbol(P, Decl(correlatedUnions.ts, 89, 50)) +>LetterMap : Symbol(LetterMap, Decl(correlatedUnions.ts, 84, 40)) +>P : Symbol(P, Decl(correlatedUnions.ts, 89, 50)) +>caller : Symbol(caller, Decl(correlatedUnions.ts, 89, 93)) +>x : Symbol(x, Decl(correlatedUnions.ts, 89, 103)) +>Record : Symbol(Record, Decl(lib.es5.d.ts, --, --)) +>P : Symbol(P, Decl(correlatedUnions.ts, 89, 50)) +>LetterMap : Symbol(LetterMap, Decl(correlatedUnions.ts, 84, 40)) +>P : Symbol(P, Decl(correlatedUnions.ts, 89, 50)) +>K : Symbol(K, Decl(correlatedUnions.ts, 89, 18)) + +function call({ letter, caller }: LetterCaller): void { +>call : Symbol(call, Decl(correlatedUnions.ts, 89, 146)) +>K : Symbol(K, Decl(correlatedUnions.ts, 91, 14)) +>LetterMap : Symbol(LetterMap, Decl(correlatedUnions.ts, 84, 40)) +>letter : Symbol(letter, Decl(correlatedUnions.ts, 91, 42)) +>caller : Symbol(caller, Decl(correlatedUnions.ts, 91, 50)) +>LetterCaller : Symbol(LetterCaller, Decl(correlatedUnions.ts, 88, 41)) +>K : Symbol(K, Decl(correlatedUnions.ts, 91, 14)) + + caller(letter); +>caller : Symbol(caller, Decl(correlatedUnions.ts, 91, 50)) +>letter : Symbol(letter, Decl(correlatedUnions.ts, 91, 42)) +} + +type A = { A: string }; +>A : Symbol(A, Decl(correlatedUnions.ts, 93, 1)) +>A : Symbol(A, Decl(correlatedUnions.ts, 95, 10)) + +type B = { B: number }; +>B : Symbol(B, Decl(correlatedUnions.ts, 95, 23)) +>B : Symbol(B, Decl(correlatedUnions.ts, 96, 10)) + +type ACaller = (a: A) => void; +>ACaller : Symbol(ACaller, Decl(correlatedUnions.ts, 96, 23)) +>a : Symbol(a, Decl(correlatedUnions.ts, 97, 16)) +>A : Symbol(A, Decl(correlatedUnions.ts, 93, 1)) + +type BCaller = (b: B) => void; +>BCaller : Symbol(BCaller, Decl(correlatedUnions.ts, 97, 30)) +>b : Symbol(b, Decl(correlatedUnions.ts, 98, 16)) +>B : Symbol(B, Decl(correlatedUnions.ts, 95, 23)) + +declare const xx: { letter: A, caller: ACaller } | { letter: B, caller: BCaller }; +>xx : Symbol(xx, Decl(correlatedUnions.ts, 100, 13)) +>letter : Symbol(letter, Decl(correlatedUnions.ts, 100, 19)) +>A : Symbol(A, Decl(correlatedUnions.ts, 93, 1)) +>caller : Symbol(caller, Decl(correlatedUnions.ts, 100, 30)) +>ACaller : Symbol(ACaller, Decl(correlatedUnions.ts, 96, 23)) +>letter : Symbol(letter, Decl(correlatedUnions.ts, 100, 52)) +>B : Symbol(B, Decl(correlatedUnions.ts, 95, 23)) +>caller : Symbol(caller, Decl(correlatedUnions.ts, 100, 63)) +>BCaller : Symbol(BCaller, Decl(correlatedUnions.ts, 97, 30)) + +call(xx); +>call : Symbol(call, Decl(correlatedUnions.ts, 89, 146)) +>xx : Symbol(xx, Decl(correlatedUnions.ts, 100, 13)) + +// -------- + +type Ev = { [P in K]: { +>Ev : Symbol(Ev, Decl(correlatedUnions.ts, 102, 9)) +>K : Symbol(K, Decl(correlatedUnions.ts, 106, 8)) +>DocumentEventMap : Symbol(DocumentEventMap, Decl(lib.dom.d.ts, --, --)) +>P : Symbol(P, Decl(correlatedUnions.ts, 106, 47)) +>K : Symbol(K, Decl(correlatedUnions.ts, 106, 8)) + + readonly name: P; +>name : Symbol(name, Decl(correlatedUnions.ts, 106, 57)) +>P : Symbol(P, Decl(correlatedUnions.ts, 106, 47)) + + readonly once?: boolean; +>once : Symbol(once, Decl(correlatedUnions.ts, 107, 21)) + + readonly callback: (ev: DocumentEventMap[P]) => void; +>callback : Symbol(callback, Decl(correlatedUnions.ts, 108, 28)) +>ev : Symbol(ev, Decl(correlatedUnions.ts, 109, 24)) +>DocumentEventMap : Symbol(DocumentEventMap, Decl(lib.dom.d.ts, --, --)) +>P : Symbol(P, Decl(correlatedUnions.ts, 106, 47)) + +}}[K]; +>K : Symbol(K, Decl(correlatedUnions.ts, 106, 8)) + +function processEvents(events: Ev[]) { +>processEvents : Symbol(processEvents, Decl(correlatedUnions.ts, 110, 6)) +>K : Symbol(K, Decl(correlatedUnions.ts, 112, 23)) +>DocumentEventMap : Symbol(DocumentEventMap, Decl(lib.dom.d.ts, --, --)) +>events : Symbol(events, Decl(correlatedUnions.ts, 112, 57)) +>Ev : Symbol(Ev, Decl(correlatedUnions.ts, 102, 9)) +>K : Symbol(K, Decl(correlatedUnions.ts, 112, 23)) + + for (const event of events) { +>event : Symbol(event, Decl(correlatedUnions.ts, 113, 14)) +>events : Symbol(events, Decl(correlatedUnions.ts, 112, 57)) + + document.addEventListener(event.name, (ev) => event.callback(ev), { once: event.once }); +>document.addEventListener : Symbol(Document.addEventListener, Decl(lib.dom.d.ts, --, --), Decl(lib.dom.d.ts, --, --)) +>document : Symbol(document, Decl(lib.dom.d.ts, --, --)) +>addEventListener : Symbol(Document.addEventListener, Decl(lib.dom.d.ts, --, --), Decl(lib.dom.d.ts, --, --)) +>event.name : Symbol(name, Decl(correlatedUnions.ts, 106, 57)) +>event : Symbol(event, Decl(correlatedUnions.ts, 113, 14)) +>name : Symbol(name, Decl(correlatedUnions.ts, 106, 57)) +>ev : Symbol(ev, Decl(correlatedUnions.ts, 114, 47)) +>event.callback : Symbol(callback, Decl(correlatedUnions.ts, 108, 28)) +>event : Symbol(event, Decl(correlatedUnions.ts, 113, 14)) +>callback : Symbol(callback, Decl(correlatedUnions.ts, 108, 28)) +>ev : Symbol(ev, Decl(correlatedUnions.ts, 114, 47)) +>once : Symbol(once, Decl(correlatedUnions.ts, 114, 75)) +>event.once : Symbol(once, Decl(correlatedUnions.ts, 107, 21)) +>event : Symbol(event, Decl(correlatedUnions.ts, 113, 14)) +>once : Symbol(once, Decl(correlatedUnions.ts, 107, 21)) + } +} + +function createEventListener({ name, once = false, callback }: Ev): Ev { +>createEventListener : Symbol(createEventListener, Decl(correlatedUnions.ts, 116, 1)) +>K : Symbol(K, Decl(correlatedUnions.ts, 118, 29)) +>DocumentEventMap : Symbol(DocumentEventMap, Decl(lib.dom.d.ts, --, --)) +>name : Symbol(name, Decl(correlatedUnions.ts, 118, 64)) +>once : Symbol(once, Decl(correlatedUnions.ts, 118, 70)) +>callback : Symbol(callback, Decl(correlatedUnions.ts, 118, 84)) +>Ev : Symbol(Ev, Decl(correlatedUnions.ts, 102, 9)) +>K : Symbol(K, Decl(correlatedUnions.ts, 118, 29)) +>Ev : Symbol(Ev, Decl(correlatedUnions.ts, 102, 9)) +>K : Symbol(K, Decl(correlatedUnions.ts, 118, 29)) + + return { name, once, callback }; +>name : Symbol(name, Decl(correlatedUnions.ts, 119, 12)) +>once : Symbol(once, Decl(correlatedUnions.ts, 119, 18)) +>callback : Symbol(callback, Decl(correlatedUnions.ts, 119, 24)) +} + +const clickEvent = createEventListener({ +>clickEvent : Symbol(clickEvent, Decl(correlatedUnions.ts, 122, 5)) +>createEventListener : Symbol(createEventListener, Decl(correlatedUnions.ts, 116, 1)) + + name: "click", +>name : Symbol(name, Decl(correlatedUnions.ts, 122, 40)) + + callback: ev => console.log(ev), +>callback : Symbol(callback, Decl(correlatedUnions.ts, 123, 18)) +>ev : Symbol(ev, Decl(correlatedUnions.ts, 124, 13)) +>console.log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>console : Symbol(console, Decl(lib.dom.d.ts, --, --)) +>log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>ev : Symbol(ev, Decl(correlatedUnions.ts, 124, 13)) + +}); + +const scrollEvent = createEventListener({ +>scrollEvent : Symbol(scrollEvent, Decl(correlatedUnions.ts, 127, 5)) +>createEventListener : Symbol(createEventListener, Decl(correlatedUnions.ts, 116, 1)) + + name: "scroll", +>name : Symbol(name, Decl(correlatedUnions.ts, 127, 41)) + + callback: ev => console.log(ev), +>callback : Symbol(callback, Decl(correlatedUnions.ts, 128, 19)) +>ev : Symbol(ev, Decl(correlatedUnions.ts, 129, 13)) +>console.log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>console : Symbol(console, Decl(lib.dom.d.ts, --, --)) +>log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>ev : Symbol(ev, Decl(correlatedUnions.ts, 129, 13)) + +}); + +processEvents([clickEvent, scrollEvent]); +>processEvents : Symbol(processEvents, Decl(correlatedUnions.ts, 110, 6)) +>clickEvent : Symbol(clickEvent, Decl(correlatedUnions.ts, 122, 5)) +>scrollEvent : Symbol(scrollEvent, Decl(correlatedUnions.ts, 127, 5)) + +processEvents([ +>processEvents : Symbol(processEvents, Decl(correlatedUnions.ts, 110, 6)) + + { name: "click", callback: ev => console.log(ev) }, +>name : Symbol(name, Decl(correlatedUnions.ts, 135, 5)) +>callback : Symbol(callback, Decl(correlatedUnions.ts, 135, 20)) +>ev : Symbol(ev, Decl(correlatedUnions.ts, 135, 30)) +>console.log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>console : Symbol(console, Decl(lib.dom.d.ts, --, --)) +>log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>ev : Symbol(ev, Decl(correlatedUnions.ts, 135, 30)) + + { name: "scroll", callback: ev => console.log(ev) }, +>name : Symbol(name, Decl(correlatedUnions.ts, 136, 5)) +>callback : Symbol(callback, Decl(correlatedUnions.ts, 136, 21)) +>ev : Symbol(ev, Decl(correlatedUnions.ts, 136, 31)) +>console.log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>console : Symbol(console, Decl(lib.dom.d.ts, --, --)) +>log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>ev : Symbol(ev, Decl(correlatedUnions.ts, 136, 31)) + +]); + +// -------- + +function ff1() { +>ff1 : Symbol(ff1, Decl(correlatedUnions.ts, 137, 3)) + + type ArgMap = { +>ArgMap : Symbol(ArgMap, Decl(correlatedUnions.ts, 141, 16)) + + sum: [a: number, b: number], +>sum : Symbol(sum, Decl(correlatedUnions.ts, 142, 19)) + + concat: [a: string, b: string, c: string] +>concat : Symbol(concat, Decl(correlatedUnions.ts, 143, 36)) + } + type Keys = keyof ArgMap; +>Keys : Symbol(Keys, Decl(correlatedUnions.ts, 145, 5)) +>ArgMap : Symbol(ArgMap, Decl(correlatedUnions.ts, 141, 16)) + + const funs: { [P in Keys]: (...args: ArgMap[P]) => void } = { +>funs : Symbol(funs, Decl(correlatedUnions.ts, 147, 9)) +>P : Symbol(P, Decl(correlatedUnions.ts, 147, 19)) +>Keys : Symbol(Keys, Decl(correlatedUnions.ts, 145, 5)) +>args : Symbol(args, Decl(correlatedUnions.ts, 147, 32)) +>ArgMap : Symbol(ArgMap, Decl(correlatedUnions.ts, 141, 16)) +>P : Symbol(P, Decl(correlatedUnions.ts, 147, 19)) + + sum: (a, b) => a + b, +>sum : Symbol(sum, Decl(correlatedUnions.ts, 147, 65)) +>a : Symbol(a, Decl(correlatedUnions.ts, 148, 14)) +>b : Symbol(b, Decl(correlatedUnions.ts, 148, 16)) +>a : Symbol(a, Decl(correlatedUnions.ts, 148, 14)) +>b : Symbol(b, Decl(correlatedUnions.ts, 148, 16)) + + concat: (a, b, c) => a + b + c +>concat : Symbol(concat, Decl(correlatedUnions.ts, 148, 29)) +>a : Symbol(a, Decl(correlatedUnions.ts, 149, 17)) +>b : Symbol(b, Decl(correlatedUnions.ts, 149, 19)) +>c : Symbol(c, Decl(correlatedUnions.ts, 149, 22)) +>a : Symbol(a, Decl(correlatedUnions.ts, 149, 17)) +>b : Symbol(b, Decl(correlatedUnions.ts, 149, 19)) +>c : Symbol(c, Decl(correlatedUnions.ts, 149, 22)) + } + function apply(funKey: K, ...args: ArgMap[K]) { +>apply : Symbol(apply, Decl(correlatedUnions.ts, 150, 5)) +>K : Symbol(K, Decl(correlatedUnions.ts, 151, 19)) +>Keys : Symbol(Keys, Decl(correlatedUnions.ts, 145, 5)) +>funKey : Symbol(funKey, Decl(correlatedUnions.ts, 151, 35)) +>K : Symbol(K, Decl(correlatedUnions.ts, 151, 19)) +>args : Symbol(args, Decl(correlatedUnions.ts, 151, 45)) +>ArgMap : Symbol(ArgMap, Decl(correlatedUnions.ts, 141, 16)) +>K : Symbol(K, Decl(correlatedUnions.ts, 151, 19)) + + const fn = funs[funKey]; +>fn : Symbol(fn, Decl(correlatedUnions.ts, 152, 13)) +>funs : Symbol(funs, Decl(correlatedUnions.ts, 147, 9)) +>funKey : Symbol(funKey, Decl(correlatedUnions.ts, 151, 35)) + + fn(...args); +>fn : Symbol(fn, Decl(correlatedUnions.ts, 152, 13)) +>args : Symbol(args, Decl(correlatedUnions.ts, 151, 45)) + } + const x1 = apply('sum', 1, 2) +>x1 : Symbol(x1, Decl(correlatedUnions.ts, 155, 9)) +>apply : Symbol(apply, Decl(correlatedUnions.ts, 150, 5)) + + const x2 = apply('concat', 'str1', 'str2', 'str3' ) +>x2 : Symbol(x2, Decl(correlatedUnions.ts, 156, 9)) +>apply : Symbol(apply, Decl(correlatedUnions.ts, 150, 5)) +} + +// Repro from #47368 + +type ArgMap = { a: number, b: string }; +>ArgMap : Symbol(ArgMap, Decl(correlatedUnions.ts, 157, 1)) +>a : Symbol(a, Decl(correlatedUnions.ts, 161, 15)) +>b : Symbol(b, Decl(correlatedUnions.ts, 161, 26)) + +type Func = (x: ArgMap[K]) => void; +>Func : Symbol(Func, Decl(correlatedUnions.ts, 161, 39)) +>K : Symbol(K, Decl(correlatedUnions.ts, 162, 10)) +>ArgMap : Symbol(ArgMap, Decl(correlatedUnions.ts, 157, 1)) +>x : Symbol(x, Decl(correlatedUnions.ts, 162, 37)) +>ArgMap : Symbol(ArgMap, Decl(correlatedUnions.ts, 157, 1)) +>K : Symbol(K, Decl(correlatedUnions.ts, 162, 10)) + +type Funcs = { [K in keyof ArgMap]: Func }; +>Funcs : Symbol(Funcs, Decl(correlatedUnions.ts, 162, 59)) +>K : Symbol(K, Decl(correlatedUnions.ts, 163, 16)) +>ArgMap : Symbol(ArgMap, Decl(correlatedUnions.ts, 157, 1)) +>Func : Symbol(Func, Decl(correlatedUnions.ts, 161, 39)) +>K : Symbol(K, Decl(correlatedUnions.ts, 163, 16)) + +function f1(funcs: Funcs, key: K, arg: ArgMap[K]) { +>f1 : Symbol(f1, Decl(correlatedUnions.ts, 163, 46)) +>K : Symbol(K, Decl(correlatedUnions.ts, 165, 12)) +>ArgMap : Symbol(ArgMap, Decl(correlatedUnions.ts, 157, 1)) +>funcs : Symbol(funcs, Decl(correlatedUnions.ts, 165, 36)) +>Funcs : Symbol(Funcs, Decl(correlatedUnions.ts, 162, 59)) +>key : Symbol(key, Decl(correlatedUnions.ts, 165, 49)) +>K : Symbol(K, Decl(correlatedUnions.ts, 165, 12)) +>arg : Symbol(arg, Decl(correlatedUnions.ts, 165, 57)) +>ArgMap : Symbol(ArgMap, Decl(correlatedUnions.ts, 157, 1)) +>K : Symbol(K, Decl(correlatedUnions.ts, 165, 12)) + + funcs[key](arg); +>funcs : Symbol(funcs, Decl(correlatedUnions.ts, 165, 36)) +>key : Symbol(key, Decl(correlatedUnions.ts, 165, 49)) +>arg : Symbol(arg, Decl(correlatedUnions.ts, 165, 57)) +} + +function f2(funcs: Funcs, key: K, arg: ArgMap[K]) { +>f2 : Symbol(f2, Decl(correlatedUnions.ts, 167, 1)) +>K : Symbol(K, Decl(correlatedUnions.ts, 169, 12)) +>ArgMap : Symbol(ArgMap, Decl(correlatedUnions.ts, 157, 1)) +>funcs : Symbol(funcs, Decl(correlatedUnions.ts, 169, 36)) +>Funcs : Symbol(Funcs, Decl(correlatedUnions.ts, 162, 59)) +>key : Symbol(key, Decl(correlatedUnions.ts, 169, 49)) +>K : Symbol(K, Decl(correlatedUnions.ts, 169, 12)) +>arg : Symbol(arg, Decl(correlatedUnions.ts, 169, 57)) +>ArgMap : Symbol(ArgMap, Decl(correlatedUnions.ts, 157, 1)) +>K : Symbol(K, Decl(correlatedUnions.ts, 169, 12)) + + const func = funcs[key]; // Type Funcs[K] +>func : Symbol(func, Decl(correlatedUnions.ts, 170, 9)) +>funcs : Symbol(funcs, Decl(correlatedUnions.ts, 169, 36)) +>key : Symbol(key, Decl(correlatedUnions.ts, 169, 49)) + + func(arg); +>func : Symbol(func, Decl(correlatedUnions.ts, 170, 9)) +>arg : Symbol(arg, Decl(correlatedUnions.ts, 169, 57)) +} + +function f3(funcs: Funcs, key: K, arg: ArgMap[K]) { +>f3 : Symbol(f3, Decl(correlatedUnions.ts, 172, 1)) +>K : Symbol(K, Decl(correlatedUnions.ts, 174, 12)) +>ArgMap : Symbol(ArgMap, Decl(correlatedUnions.ts, 157, 1)) +>funcs : Symbol(funcs, Decl(correlatedUnions.ts, 174, 36)) +>Funcs : Symbol(Funcs, Decl(correlatedUnions.ts, 162, 59)) +>key : Symbol(key, Decl(correlatedUnions.ts, 174, 49)) +>K : Symbol(K, Decl(correlatedUnions.ts, 174, 12)) +>arg : Symbol(arg, Decl(correlatedUnions.ts, 174, 57)) +>ArgMap : Symbol(ArgMap, Decl(correlatedUnions.ts, 157, 1)) +>K : Symbol(K, Decl(correlatedUnions.ts, 174, 12)) + + const func: Func = funcs[key]; // Error, Funcs[K] not assignable to Func +>func : Symbol(func, Decl(correlatedUnions.ts, 175, 9)) +>Func : Symbol(Func, Decl(correlatedUnions.ts, 161, 39)) +>K : Symbol(K, Decl(correlatedUnions.ts, 174, 12)) +>funcs : Symbol(funcs, Decl(correlatedUnions.ts, 174, 36)) +>key : Symbol(key, Decl(correlatedUnions.ts, 174, 49)) + + func(arg); +>func : Symbol(func, Decl(correlatedUnions.ts, 175, 9)) +>arg : Symbol(arg, Decl(correlatedUnions.ts, 174, 57)) +} + +function f4(x: Funcs[keyof ArgMap], y: Funcs[K]) { +>f4 : Symbol(f4, Decl(correlatedUnions.ts, 177, 1)) +>K : Symbol(K, Decl(correlatedUnions.ts, 179, 12)) +>ArgMap : Symbol(ArgMap, Decl(correlatedUnions.ts, 157, 1)) +>x : Symbol(x, Decl(correlatedUnions.ts, 179, 36)) +>Funcs : Symbol(Funcs, Decl(correlatedUnions.ts, 162, 59)) +>ArgMap : Symbol(ArgMap, Decl(correlatedUnions.ts, 157, 1)) +>y : Symbol(y, Decl(correlatedUnions.ts, 179, 59)) +>Funcs : Symbol(Funcs, Decl(correlatedUnions.ts, 162, 59)) +>K : Symbol(K, Decl(correlatedUnions.ts, 179, 12)) + + x = y; +>x : Symbol(x, Decl(correlatedUnions.ts, 179, 36)) +>y : Symbol(y, Decl(correlatedUnions.ts, 179, 59)) +} + +// Repro from #47890 + +interface MyObj { +>MyObj : Symbol(MyObj, Decl(correlatedUnions.ts, 181, 1)) + + someKey: { +>someKey : Symbol(MyObj.someKey, Decl(correlatedUnions.ts, 185, 17)) + + name: string; +>name : Symbol(name, Decl(correlatedUnions.ts, 186, 14)) + } + someOtherKey: { +>someOtherKey : Symbol(MyObj.someOtherKey, Decl(correlatedUnions.ts, 188, 5)) + + name: number; +>name : Symbol(name, Decl(correlatedUnions.ts, 189, 19)) + } +} + +const ref: MyObj = { +>ref : Symbol(ref, Decl(correlatedUnions.ts, 194, 5)) +>MyObj : Symbol(MyObj, Decl(correlatedUnions.ts, 181, 1)) + + someKey: { name: "" }, +>someKey : Symbol(someKey, Decl(correlatedUnions.ts, 194, 20)) +>name : Symbol(name, Decl(correlatedUnions.ts, 195, 14)) + + someOtherKey: { name: 42 } +>someOtherKey : Symbol(someOtherKey, Decl(correlatedUnions.ts, 195, 26)) +>name : Symbol(name, Decl(correlatedUnions.ts, 196, 19)) + +}; + +function func(k: K): MyObj[K]['name'] | undefined { +>func : Symbol(func, Decl(correlatedUnions.ts, 197, 2)) +>K : Symbol(K, Decl(correlatedUnions.ts, 199, 14)) +>MyObj : Symbol(MyObj, Decl(correlatedUnions.ts, 181, 1)) +>k : Symbol(k, Decl(correlatedUnions.ts, 199, 37)) +>K : Symbol(K, Decl(correlatedUnions.ts, 199, 14)) +>MyObj : Symbol(MyObj, Decl(correlatedUnions.ts, 181, 1)) +>K : Symbol(K, Decl(correlatedUnions.ts, 199, 14)) + + const myObj: Partial[K] = ref[k]; +>myObj : Symbol(myObj, Decl(correlatedUnions.ts, 200, 9)) +>Partial : Symbol(Partial, Decl(lib.es5.d.ts, --, --)) +>MyObj : Symbol(MyObj, Decl(correlatedUnions.ts, 181, 1)) +>K : Symbol(K, Decl(correlatedUnions.ts, 199, 14)) +>ref : Symbol(ref, Decl(correlatedUnions.ts, 194, 5)) +>k : Symbol(k, Decl(correlatedUnions.ts, 199, 37)) + + if (myObj) { +>myObj : Symbol(myObj, Decl(correlatedUnions.ts, 200, 9)) + + return myObj.name; +>myObj.name : Symbol(name, Decl(correlatedUnions.ts, 186, 14), Decl(correlatedUnions.ts, 189, 19)) +>myObj : Symbol(myObj, Decl(correlatedUnions.ts, 200, 9)) +>name : Symbol(name, Decl(correlatedUnions.ts, 186, 14), Decl(correlatedUnions.ts, 189, 19)) + } + const myObj2: Partial[keyof MyObj] = ref[k]; +>myObj2 : Symbol(myObj2, Decl(correlatedUnions.ts, 204, 9)) +>Partial : Symbol(Partial, Decl(lib.es5.d.ts, --, --)) +>MyObj : Symbol(MyObj, Decl(correlatedUnions.ts, 181, 1)) +>MyObj : Symbol(MyObj, Decl(correlatedUnions.ts, 181, 1)) +>ref : Symbol(ref, Decl(correlatedUnions.ts, 194, 5)) +>k : Symbol(k, Decl(correlatedUnions.ts, 199, 37)) + + if (myObj2) { +>myObj2 : Symbol(myObj2, Decl(correlatedUnions.ts, 204, 9)) + + return myObj2.name; +>myObj2.name : Symbol(name, Decl(correlatedUnions.ts, 186, 14), Decl(correlatedUnions.ts, 189, 19)) +>myObj2 : Symbol(myObj2, Decl(correlatedUnions.ts, 204, 9)) +>name : Symbol(name, Decl(correlatedUnions.ts, 186, 14), Decl(correlatedUnions.ts, 189, 19)) + } + return undefined; +>undefined : Symbol(undefined) +} + +// Repro from #48157 + +interface Foo { +>Foo : Symbol(Foo, Decl(correlatedUnions.ts, 209, 1)) + + bar?: string +>bar : Symbol(Foo.bar, Decl(correlatedUnions.ts, 213, 15)) +} + +function foo(prop: T, f: Required) { +>foo : Symbol(foo, Decl(correlatedUnions.ts, 215, 1)) +>T : Symbol(T, Decl(correlatedUnions.ts, 217, 13)) +>Foo : Symbol(Foo, Decl(correlatedUnions.ts, 209, 1)) +>prop : Symbol(prop, Decl(correlatedUnions.ts, 217, 34)) +>T : Symbol(T, Decl(correlatedUnions.ts, 217, 13)) +>f : Symbol(f, Decl(correlatedUnions.ts, 217, 42)) +>Required : Symbol(Required, Decl(lib.es5.d.ts, --, --)) +>Foo : Symbol(Foo, Decl(correlatedUnions.ts, 209, 1)) + + bar(f[prop]); +>bar : Symbol(bar, Decl(correlatedUnions.ts, 219, 1)) +>f : Symbol(f, Decl(correlatedUnions.ts, 217, 42)) +>prop : Symbol(prop, Decl(correlatedUnions.ts, 217, 34)) +} + +declare function bar(t: string): void; +>bar : Symbol(bar, Decl(correlatedUnions.ts, 219, 1)) +>t : Symbol(t, Decl(correlatedUnions.ts, 221, 21)) + +// Repro from #48246 + +declare function makeCompleteLookupMapping, Attr extends keyof T[number]>( +>makeCompleteLookupMapping : Symbol(makeCompleteLookupMapping, Decl(correlatedUnions.ts, 221, 38)) +>T : Symbol(T, Decl(correlatedUnions.ts, 225, 43)) +>ReadonlyArray : Symbol(ReadonlyArray, Decl(lib.es5.d.ts, --, --)) +>Attr : Symbol(Attr, Decl(correlatedUnions.ts, 225, 72)) +>T : Symbol(T, Decl(correlatedUnions.ts, 225, 43)) + + ops: T, attr: Attr): { [Item in T[number]as Item[Attr]]: Item }; +>ops : Symbol(ops, Decl(correlatedUnions.ts, 225, 103)) +>T : Symbol(T, Decl(correlatedUnions.ts, 225, 43)) +>attr : Symbol(attr, Decl(correlatedUnions.ts, 226, 11)) +>Attr : Symbol(Attr, Decl(correlatedUnions.ts, 225, 72)) +>Item : Symbol(Item, Decl(correlatedUnions.ts, 226, 28)) +>T : Symbol(T, Decl(correlatedUnions.ts, 225, 43)) +>Item : Symbol(Item, Decl(correlatedUnions.ts, 226, 28)) +>Attr : Symbol(Attr, Decl(correlatedUnions.ts, 225, 72)) +>Item : Symbol(Item, Decl(correlatedUnions.ts, 226, 28)) + +const ALL_BARS = [{ name: 'a'}, {name: 'b'}] as const; +>ALL_BARS : Symbol(ALL_BARS, Decl(correlatedUnions.ts, 228, 5)) +>name : Symbol(name, Decl(correlatedUnions.ts, 228, 19)) +>name : Symbol(name, Decl(correlatedUnions.ts, 228, 33)) +>const : Symbol(const) + +const BAR_LOOKUP = makeCompleteLookupMapping(ALL_BARS, 'name'); +>BAR_LOOKUP : Symbol(BAR_LOOKUP, Decl(correlatedUnions.ts, 230, 5)) +>makeCompleteLookupMapping : Symbol(makeCompleteLookupMapping, Decl(correlatedUnions.ts, 221, 38)) +>ALL_BARS : Symbol(ALL_BARS, Decl(correlatedUnions.ts, 228, 5)) + +type BarLookup = typeof BAR_LOOKUP; +>BarLookup : Symbol(BarLookup, Decl(correlatedUnions.ts, 230, 63)) +>BAR_LOOKUP : Symbol(BAR_LOOKUP, Decl(correlatedUnions.ts, 230, 5)) + +type Baz = { [K in keyof BarLookup]: BarLookup[K]['name'] }; +>Baz : Symbol(Baz, Decl(correlatedUnions.ts, 232, 35)) +>K : Symbol(K, Decl(correlatedUnions.ts, 234, 14)) +>BarLookup : Symbol(BarLookup, Decl(correlatedUnions.ts, 230, 63)) +>BarLookup : Symbol(BarLookup, Decl(correlatedUnions.ts, 230, 63)) +>K : Symbol(K, Decl(correlatedUnions.ts, 234, 14)) + diff --git a/tests/baselines/reference/correlatedUnions.types b/tests/baselines/reference/correlatedUnions.types new file mode 100644 index 0000000000000..ec83dd5426dfa --- /dev/null +++ b/tests/baselines/reference/correlatedUnions.types @@ -0,0 +1,755 @@ +=== tests/cases/compiler/correlatedUnions.ts === +// Various repros from #30581 + +type RecordMap = { n: number, s: string, b: boolean }; +>RecordMap : RecordMap +>n : number +>s : string +>b : boolean + +type UnionRecord = { [P in K]: { +>UnionRecord : UnionRecord + + kind: P, +>kind : P + + v: RecordMap[P], +>v : RecordMap[P] + + f: (v: RecordMap[P]) => void +>f : (v: RecordMap[P]) => void +>v : RecordMap[P] + +}}[K]; + +function processRecord(rec: UnionRecord) { +>processRecord : (rec: UnionRecord) => void +>rec : UnionRecord + + rec.f(rec.v); +>rec.f(rec.v) : void +>rec.f : (v: RecordMap[K]) => void +>rec : UnionRecord +>f : (v: RecordMap[K]) => void +>rec.v : RecordMap[K] +>rec : UnionRecord +>v : RecordMap[K] +} + +declare const r1: UnionRecord<'n'>; // { kind: 'n', v: number, f: (v: number) => void } +>r1 : { kind: "n"; v: number; f: (v: number) => void; } + +declare const r2: UnionRecord; // { kind: 'n', ... } | { kind: 's', ... } | { kind: 'b', ... } +>r2 : UnionRecord + +processRecord(r1); +>processRecord(r1) : void +>processRecord : (rec: UnionRecord) => void +>r1 : { kind: "n"; v: number; f: (v: number) => void; } + +processRecord(r2); +>processRecord(r2) : void +>processRecord : (rec: UnionRecord) => void +>r2 : UnionRecord + +processRecord({ kind: 'n', v: 42, f: v => v.toExponential() }); +>processRecord({ kind: 'n', v: 42, f: v => v.toExponential() }) : void +>processRecord : (rec: UnionRecord) => void +>{ kind: 'n', v: 42, f: v => v.toExponential() } : { kind: "n"; v: number; f: (v: number) => string; } +>kind : "n" +>'n' : "n" +>v : number +>42 : 42 +>f : (v: number) => string +>v => v.toExponential() : (v: number) => string +>v : number +>v.toExponential() : string +>v.toExponential : (fractionDigits?: number | undefined) => string +>v : number +>toExponential : (fractionDigits?: number | undefined) => string + +// -------- + +type TextFieldData = { value: string } +>TextFieldData : TextFieldData +>value : string + +type SelectFieldData = { options: string[], selectedValue: string } +>SelectFieldData : SelectFieldData +>options : string[] +>selectedValue : string + +type FieldMap = { +>FieldMap : FieldMap + + text: TextFieldData; +>text : TextFieldData + + select: SelectFieldData; +>select : SelectFieldData +} + +type FormField = { type: K, data: FieldMap[K] }; +>FormField : FormField +>type : K +>data : FieldMap[K] + +type RenderFunc = (props: FieldMap[K]) => void; +>RenderFunc : RenderFunc +>props : FieldMap[K] + +type RenderFuncMap = { [K in keyof FieldMap]: RenderFunc }; +>RenderFuncMap : RenderFuncMap + +function renderTextField(props: TextFieldData) {} +>renderTextField : (props: TextFieldData) => void +>props : TextFieldData + +function renderSelectField(props: SelectFieldData) {} +>renderSelectField : (props: SelectFieldData) => void +>props : SelectFieldData + +const renderFuncs: RenderFuncMap = { +>renderFuncs : RenderFuncMap +>{ text: renderTextField, select: renderSelectField,} : { text: (props: TextFieldData) => void; select: (props: SelectFieldData) => void; } + + text: renderTextField, +>text : (props: TextFieldData) => void +>renderTextField : (props: TextFieldData) => void + + select: renderSelectField, +>select : (props: SelectFieldData) => void +>renderSelectField : (props: SelectFieldData) => void + +}; + +function renderField(field: FormField) { +>renderField : (field: FormField) => void +>field : FormField + + const renderFn = renderFuncs[field.type]; +>renderFn : RenderFuncMap[K] +>renderFuncs[field.type] : RenderFuncMap[K] +>renderFuncs : RenderFuncMap +>field.type : K +>field : FormField +>type : K + + renderFn(field.data); +>renderFn(field.data) : void +>renderFn : RenderFuncMap[K] +>field.data : FieldMap[K] +>field : FormField +>data : FieldMap[K] +} + +// -------- + +type TypeMap = { +>TypeMap : TypeMap + + foo: string, +>foo : string + + bar: number +>bar : number + +}; + +type Keys = keyof TypeMap; +>Keys : keyof TypeMap + +type HandlerMap = { [P in Keys]: (x: TypeMap[P]) => void }; +>HandlerMap : HandlerMap +>x : TypeMap[P] + +const handlers: HandlerMap = { +>handlers : HandlerMap +>{ foo: s => s.length, bar: n => n.toFixed(2)} : { foo: (s: string) => number; bar: (n: number) => string; } + + foo: s => s.length, +>foo : (s: string) => number +>s => s.length : (s: string) => number +>s : string +>s.length : number +>s : string +>length : number + + bar: n => n.toFixed(2) +>bar : (n: number) => string +>n => n.toFixed(2) : (n: number) => string +>n : number +>n.toFixed(2) : string +>n.toFixed : (fractionDigits?: number | undefined) => string +>n : number +>toFixed : (fractionDigits?: number | undefined) => string +>2 : 2 + +}; + +type DataEntry = { [P in K]: { +>DataEntry : DataEntry + + type: P, +>type : P + + data: TypeMap[P] +>data : TypeMap[P] + +}}[K]; + +const data: DataEntry[] = [ +>data : DataEntry[] +>[ { type: 'foo', data: 'abc' }, { type: 'foo', data: 'def' }, { type: 'bar', data: 42 },] : ({ type: "foo"; data: string; } | { type: "bar"; data: number; })[] + + { type: 'foo', data: 'abc' }, +>{ type: 'foo', data: 'abc' } : { type: "foo"; data: string; } +>type : "foo" +>'foo' : "foo" +>data : string +>'abc' : "abc" + + { type: 'foo', data: 'def' }, +>{ type: 'foo', data: 'def' } : { type: "foo"; data: string; } +>type : "foo" +>'foo' : "foo" +>data : string +>'def' : "def" + + { type: 'bar', data: 42 }, +>{ type: 'bar', data: 42 } : { type: "bar"; data: number; } +>type : "bar" +>'bar' : "bar" +>data : number +>42 : 42 + +]; + +function process(data: DataEntry[]) { +>process : (data: DataEntry[]) => void +>data : DataEntry[] + + data.forEach(block => { +>data.forEach(block => { if (block.type in handlers) { handlers[block.type](block.data) } }) : void +>data.forEach : (callbackfn: (value: DataEntry, index: number, array: DataEntry[]) => void, thisArg?: any) => void +>data : DataEntry[] +>forEach : (callbackfn: (value: DataEntry, index: number, array: DataEntry[]) => void, thisArg?: any) => void +>block => { if (block.type in handlers) { handlers[block.type](block.data) } } : (block: DataEntry) => void +>block : DataEntry + + if (block.type in handlers) { +>block.type in handlers : boolean +>block.type : K +>block : DataEntry +>type : K +>handlers : HandlerMap + + handlers[block.type](block.data) +>handlers[block.type](block.data) : void +>handlers[block.type] : HandlerMap[K] +>handlers : HandlerMap +>block.type : K +>block : DataEntry +>type : K +>block.data : TypeMap[K] +>block : DataEntry +>data : TypeMap[K] + } + }); +} + +process(data); +>process(data) : void +>process : (data: DataEntry[]) => void +>data : DataEntry[] + +process([{ type: 'foo', data: 'abc' }]); +>process([{ type: 'foo', data: 'abc' }]) : void +>process : (data: DataEntry[]) => void +>[{ type: 'foo', data: 'abc' }] : { type: "foo"; data: string; }[] +>{ type: 'foo', data: 'abc' } : { type: "foo"; data: string; } +>type : "foo" +>'foo' : "foo" +>data : string +>'abc' : "abc" + +// -------- + +type LetterMap = { A: string, B: number } +>LetterMap : LetterMap +>A : string +>B : number + +type LetterCaller = { [P in K]: { letter: Record, caller: (x: Record) => void } }[K]; +>LetterCaller : LetterCaller +>letter : Record +>caller : (x: Record) => void +>x : Record + +function call({ letter, caller }: LetterCaller): void { +>call : ({ letter, caller }: LetterCaller) => void +>letter : Record +>caller : (x: Record) => void + + caller(letter); +>caller(letter) : void +>caller : (x: Record) => void +>letter : Record +} + +type A = { A: string }; +>A : A +>A : string + +type B = { B: number }; +>B : B +>B : number + +type ACaller = (a: A) => void; +>ACaller : ACaller +>a : A + +type BCaller = (b: B) => void; +>BCaller : BCaller +>b : B + +declare const xx: { letter: A, caller: ACaller } | { letter: B, caller: BCaller }; +>xx : { letter: A; caller: ACaller; } | { letter: B; caller: BCaller; } +>letter : A +>caller : ACaller +>letter : B +>caller : BCaller + +call(xx); +>call(xx) : void +>call : ({ letter, caller }: LetterCaller) => void +>xx : { letter: A; caller: ACaller; } | { letter: B; caller: BCaller; } + +// -------- + +type Ev = { [P in K]: { +>Ev : Ev + + readonly name: P; +>name : P + + readonly once?: boolean; +>once : boolean | undefined + + readonly callback: (ev: DocumentEventMap[P]) => void; +>callback : (ev: DocumentEventMap[P]) => void +>ev : DocumentEventMap[P] + +}}[K]; + +function processEvents(events: Ev[]) { +>processEvents : (events: Ev[]) => void +>events : Ev[] + + for (const event of events) { +>event : Ev +>events : Ev[] + + document.addEventListener(event.name, (ev) => event.callback(ev), { once: event.once }); +>document.addEventListener(event.name, (ev) => event.callback(ev), { once: event.once }) : void +>document.addEventListener : { (type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions | undefined): void; (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions | undefined): void; } +>document : Document +>addEventListener : { (type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions | undefined): void; (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions | undefined): void; } +>event.name : K +>event : Ev +>name : K +>(ev) => event.callback(ev) : (this: Document, ev: DocumentEventMap[K]) => void +>ev : DocumentEventMap[K] +>event.callback(ev) : void +>event.callback : (ev: DocumentEventMap[K]) => void +>event : Ev +>callback : (ev: DocumentEventMap[K]) => void +>ev : DocumentEventMap[K] +>{ once: event.once } : { once: boolean | undefined; } +>once : boolean | undefined +>event.once : boolean | undefined +>event : Ev +>once : boolean | undefined + } +} + +function createEventListener({ name, once = false, callback }: Ev): Ev { +>createEventListener : ({ name, once, callback }: Ev) => Ev +>name : K +>once : boolean +>false : false +>callback : (ev: DocumentEventMap[K]) => void + + return { name, once, callback }; +>{ name, once, callback } : { name: K; once: boolean; callback: (ev: DocumentEventMap[K]) => void; } +>name : K +>once : boolean +>callback : (ev: DocumentEventMap[K]) => void +} + +const clickEvent = createEventListener({ +>clickEvent : { readonly name: "click"; readonly once?: boolean | undefined; readonly callback: (ev: MouseEvent) => void; } +>createEventListener({ name: "click", callback: ev => console.log(ev),}) : { readonly name: "click"; readonly once?: boolean | undefined; readonly callback: (ev: MouseEvent) => void; } +>createEventListener : ({ name, once, callback }: Ev) => Ev +>{ name: "click", callback: ev => console.log(ev),} : { name: "click"; callback: (ev: MouseEvent) => void; } + + name: "click", +>name : "click" +>"click" : "click" + + callback: ev => console.log(ev), +>callback : (ev: MouseEvent) => void +>ev => console.log(ev) : (ev: MouseEvent) => void +>ev : MouseEvent +>console.log(ev) : void +>console.log : (...data: any[]) => void +>console : Console +>log : (...data: any[]) => void +>ev : MouseEvent + +}); + +const scrollEvent = createEventListener({ +>scrollEvent : { readonly name: "scroll"; readonly once?: boolean | undefined; readonly callback: (ev: Event) => void; } +>createEventListener({ name: "scroll", callback: ev => console.log(ev),}) : { readonly name: "scroll"; readonly once?: boolean | undefined; readonly callback: (ev: Event) => void; } +>createEventListener : ({ name, once, callback }: Ev) => Ev +>{ name: "scroll", callback: ev => console.log(ev),} : { name: "scroll"; callback: (ev: Event) => void; } + + name: "scroll", +>name : "scroll" +>"scroll" : "scroll" + + callback: ev => console.log(ev), +>callback : (ev: Event) => void +>ev => console.log(ev) : (ev: Event) => void +>ev : Event +>console.log(ev) : void +>console.log : (...data: any[]) => void +>console : Console +>log : (...data: any[]) => void +>ev : Event + +}); + +processEvents([clickEvent, scrollEvent]); +>processEvents([clickEvent, scrollEvent]) : void +>processEvents : (events: Ev[]) => void +>[clickEvent, scrollEvent] : ({ readonly name: "click"; readonly once?: boolean | undefined; readonly callback: (ev: MouseEvent) => void; } | { readonly name: "scroll"; readonly once?: boolean | undefined; readonly callback: (ev: Event) => void; })[] +>clickEvent : { readonly name: "click"; readonly once?: boolean | undefined; readonly callback: (ev: MouseEvent) => void; } +>scrollEvent : { readonly name: "scroll"; readonly once?: boolean | undefined; readonly callback: (ev: Event) => void; } + +processEvents([ +>processEvents([ { name: "click", callback: ev => console.log(ev) }, { name: "scroll", callback: ev => console.log(ev) },]) : void +>processEvents : (events: Ev[]) => void +>[ { name: "click", callback: ev => console.log(ev) }, { name: "scroll", callback: ev => console.log(ev) },] : ({ name: "click"; callback: (ev: MouseEvent) => void; } | { name: "scroll"; callback: (ev: Event) => void; })[] + + { name: "click", callback: ev => console.log(ev) }, +>{ name: "click", callback: ev => console.log(ev) } : { name: "click"; callback: (ev: MouseEvent) => void; } +>name : "click" +>"click" : "click" +>callback : (ev: MouseEvent) => void +>ev => console.log(ev) : (ev: MouseEvent) => void +>ev : MouseEvent +>console.log(ev) : void +>console.log : (...data: any[]) => void +>console : Console +>log : (...data: any[]) => void +>ev : MouseEvent + + { name: "scroll", callback: ev => console.log(ev) }, +>{ name: "scroll", callback: ev => console.log(ev) } : { name: "scroll"; callback: (ev: Event) => void; } +>name : "scroll" +>"scroll" : "scroll" +>callback : (ev: Event) => void +>ev => console.log(ev) : (ev: Event) => void +>ev : Event +>console.log(ev) : void +>console.log : (...data: any[]) => void +>console : Console +>log : (...data: any[]) => void +>ev : Event + +]); + +// -------- + +function ff1() { +>ff1 : () => void + + type ArgMap = { +>ArgMap : { sum: [a: number, b: number]; concat: [a: string, b: string, c: string]; } + + sum: [a: number, b: number], +>sum : [a: number, b: number] + + concat: [a: string, b: string, c: string] +>concat : [a: string, b: string, c: string] + } + type Keys = keyof ArgMap; +>Keys : keyof { sum: [a: number, b: number]; concat: [a: string, b: string, c: string]; } + + const funs: { [P in Keys]: (...args: ArgMap[P]) => void } = { +>funs : { concat: (a: string, b: string, c: string) => void; sum: (a: number, b: number) => void; } +>args : { sum: [a: number, b: number]; concat: [a: string, b: string, c: string]; }[P] +>{ sum: (a, b) => a + b, concat: (a, b, c) => a + b + c } : { sum: (a: number, b: number) => number; concat: (a: string, b: string, c: string) => string; } + + sum: (a, b) => a + b, +>sum : (a: number, b: number) => number +>(a, b) => a + b : (a: number, b: number) => number +>a : number +>b : number +>a + b : number +>a : number +>b : number + + concat: (a, b, c) => a + b + c +>concat : (a: string, b: string, c: string) => string +>(a, b, c) => a + b + c : (a: string, b: string, c: string) => string +>a : string +>b : string +>c : string +>a + b + c : string +>a + b : string +>a : string +>b : string +>c : string + } + function apply(funKey: K, ...args: ArgMap[K]) { +>apply : (funKey: K, ...args: { sum: [a: number, b: number]; concat: [a: string, b: string, c: string]; }[K]) => void +>funKey : K +>args : { sum: [a: number, b: number]; concat: [a: string, b: string, c: string]; }[K] + + const fn = funs[funKey]; +>fn : { concat: (a: string, b: string, c: string) => void; sum: (a: number, b: number) => void; }[K] +>funs[funKey] : { concat: (a: string, b: string, c: string) => void; sum: (a: number, b: number) => void; }[K] +>funs : { concat: (a: string, b: string, c: string) => void; sum: (a: number, b: number) => void; } +>funKey : K + + fn(...args); +>fn(...args) : void +>fn : { concat: (a: string, b: string, c: string) => void; sum: (a: number, b: number) => void; }[K] +>...args : string | number +>args : { sum: [a: number, b: number]; concat: [a: string, b: string, c: string]; }[K] + } + const x1 = apply('sum', 1, 2) +>x1 : void +>apply('sum', 1, 2) : void +>apply : (funKey: K, ...args: { sum: [a: number, b: number]; concat: [a: string, b: string, c: string]; }[K]) => void +>'sum' : "sum" +>1 : 1 +>2 : 2 + + const x2 = apply('concat', 'str1', 'str2', 'str3' ) +>x2 : void +>apply('concat', 'str1', 'str2', 'str3' ) : void +>apply : (funKey: K, ...args: { sum: [a: number, b: number]; concat: [a: string, b: string, c: string]; }[K]) => void +>'concat' : "concat" +>'str1' : "str1" +>'str2' : "str2" +>'str3' : "str3" +} + +// Repro from #47368 + +type ArgMap = { a: number, b: string }; +>ArgMap : ArgMap +>a : number +>b : string + +type Func = (x: ArgMap[K]) => void; +>Func : Func +>x : ArgMap[K] + +type Funcs = { [K in keyof ArgMap]: Func }; +>Funcs : Funcs + +function f1(funcs: Funcs, key: K, arg: ArgMap[K]) { +>f1 : (funcs: Funcs, key: K, arg: ArgMap[K]) => void +>funcs : Funcs +>key : K +>arg : ArgMap[K] + + funcs[key](arg); +>funcs[key](arg) : void +>funcs[key] : Funcs[K] +>funcs : Funcs +>key : K +>arg : ArgMap[K] +} + +function f2(funcs: Funcs, key: K, arg: ArgMap[K]) { +>f2 : (funcs: Funcs, key: K, arg: ArgMap[K]) => void +>funcs : Funcs +>key : K +>arg : ArgMap[K] + + const func = funcs[key]; // Type Funcs[K] +>func : Funcs[K] +>funcs[key] : Funcs[K] +>funcs : Funcs +>key : K + + func(arg); +>func(arg) : void +>func : Funcs[K] +>arg : ArgMap[K] +} + +function f3(funcs: Funcs, key: K, arg: ArgMap[K]) { +>f3 : (funcs: Funcs, key: K, arg: ArgMap[K]) => void +>funcs : Funcs +>key : K +>arg : ArgMap[K] + + const func: Func = funcs[key]; // Error, Funcs[K] not assignable to Func +>func : Func +>funcs[key] : Funcs[K] +>funcs : Funcs +>key : K + + func(arg); +>func(arg) : void +>func : Func +>arg : ArgMap[K] +} + +function f4(x: Funcs[keyof ArgMap], y: Funcs[K]) { +>f4 : (x: Funcs[keyof ArgMap], y: Funcs[K]) => void +>x : Func<"b"> | Func<"a"> +>y : Funcs[K] + + x = y; +>x = y : Funcs[K] +>x : Func<"b"> | Func<"a"> +>y : Funcs[K] +} + +// Repro from #47890 + +interface MyObj { + someKey: { +>someKey : { name: string; } + + name: string; +>name : string + } + someOtherKey: { +>someOtherKey : { name: number; } + + name: number; +>name : number + } +} + +const ref: MyObj = { +>ref : MyObj +>{ someKey: { name: "" }, someOtherKey: { name: 42 }} : { someKey: { name: string; }; someOtherKey: { name: number; }; } + + someKey: { name: "" }, +>someKey : { name: string; } +>{ name: "" } : { name: string; } +>name : string +>"" : "" + + someOtherKey: { name: 42 } +>someOtherKey : { name: number; } +>{ name: 42 } : { name: number; } +>name : number +>42 : 42 + +}; + +function func(k: K): MyObj[K]['name'] | undefined { +>func : (k: K) => MyObj[K]['name'] | undefined +>k : K + + const myObj: Partial[K] = ref[k]; +>myObj : Partial[K] +>ref[k] : MyObj[K] +>ref : MyObj +>k : K + + if (myObj) { +>myObj : Partial[K] + + return myObj.name; +>myObj.name : string | number +>myObj : { name: string; } | { name: number; } +>name : string | number + } + const myObj2: Partial[keyof MyObj] = ref[k]; +>myObj2 : { name: string; } | { name: number; } | undefined +>ref[k] : { name: string; } | { name: number; } +>ref : MyObj +>k : K + + if (myObj2) { +>myObj2 : { name: string; } | { name: number; } + + return myObj2.name; +>myObj2.name : string | number +>myObj2 : { name: string; } | { name: number; } +>name : string | number + } + return undefined; +>undefined : undefined +} + +// Repro from #48157 + +interface Foo { + bar?: string +>bar : string | undefined +} + +function foo(prop: T, f: Required) { +>foo : (prop: T, f: Required) => void +>prop : T +>f : Required + + bar(f[prop]); +>bar(f[prop]) : void +>bar : (t: string) => void +>f[prop] : Required[T] +>f : Required +>prop : T +} + +declare function bar(t: string): void; +>bar : (t: string) => void +>t : string + +// Repro from #48246 + +declare function makeCompleteLookupMapping, Attr extends keyof T[number]>( +>makeCompleteLookupMapping : (ops: T, attr: Attr) => { [Item in T[number] as Item[Attr]]: Item; } + + ops: T, attr: Attr): { [Item in T[number]as Item[Attr]]: Item }; +>ops : T +>attr : Attr + +const ALL_BARS = [{ name: 'a'}, {name: 'b'}] as const; +>ALL_BARS : readonly [{ readonly name: "a"; }, { readonly name: "b"; }] +>[{ name: 'a'}, {name: 'b'}] as const : readonly [{ readonly name: "a"; }, { readonly name: "b"; }] +>[{ name: 'a'}, {name: 'b'}] : readonly [{ readonly name: "a"; }, { readonly name: "b"; }] +>{ name: 'a'} : { readonly name: "a"; } +>name : "a" +>'a' : "a" +>{name: 'b'} : { readonly name: "b"; } +>name : "b" +>'b' : "b" + +const BAR_LOOKUP = makeCompleteLookupMapping(ALL_BARS, 'name'); +>BAR_LOOKUP : { a: { readonly name: "a"; }; b: { readonly name: "b"; }; } +>makeCompleteLookupMapping(ALL_BARS, 'name') : { a: { readonly name: "a"; }; b: { readonly name: "b"; }; } +>makeCompleteLookupMapping : (ops: T, attr: Attr) => { [Item in T[number] as Item[Attr]]: Item; } +>ALL_BARS : readonly [{ readonly name: "a"; }, { readonly name: "b"; }] +>'name' : "name" + +type BarLookup = typeof BAR_LOOKUP; +>BarLookup : { a: { readonly name: "a"; }; b: { readonly name: "b"; }; } +>BAR_LOOKUP : { a: { readonly name: "a"; }; b: { readonly name: "b"; }; } + +type Baz = { [K in keyof BarLookup]: BarLookup[K]['name'] }; +>Baz : Baz + diff --git a/tests/baselines/reference/crashInsourcePropertyIsRelatableToTargetProperty.errors.txt b/tests/baselines/reference/crashInsourcePropertyIsRelatableToTargetProperty.errors.txt index 40deaf591d8f1..fa0f473af76a8 100644 --- a/tests/baselines/reference/crashInsourcePropertyIsRelatableToTargetProperty.errors.txt +++ b/tests/baselines/reference/crashInsourcePropertyIsRelatableToTargetProperty.errors.txt @@ -1,4 +1,4 @@ -tests/cases/compiler/crashInsourcePropertyIsRelatableToTargetProperty.ts(9,5): error TS2741: Property 'x' is missing in type '(x: "hi", items: string[]) => typeof foo' but required in type 'C'. +tests/cases/compiler/crashInsourcePropertyIsRelatableToTargetProperty.ts(9,5): error TS2322: Type '(x: "hi", items: string[]) => typeof foo' is not assignable to type 'D'. ==== tests/cases/compiler/crashInsourcePropertyIsRelatableToTargetProperty.ts (1 errors) ==== @@ -12,6 +12,5 @@ tests/cases/compiler/crashInsourcePropertyIsRelatableToTargetProperty.ts(9,5): e } var a: D = foo("hi", []); ~ -!!! error TS2741: Property 'x' is missing in type '(x: "hi", items: string[]) => typeof foo' but required in type 'C'. -!!! related TS2728 tests/cases/compiler/crashInsourcePropertyIsRelatableToTargetProperty.ts:2:13: 'x' is declared here. +!!! error TS2322: Type '(x: "hi", items: string[]) => typeof foo' is not assignable to type 'D'. \ No newline at end of file diff --git a/tests/baselines/reference/customAsyncIterator.symbols b/tests/baselines/reference/customAsyncIterator.symbols index 59c099ec40363..c10d28d658f84 100644 --- a/tests/baselines/reference/customAsyncIterator.symbols +++ b/tests/baselines/reference/customAsyncIterator.symbols @@ -23,7 +23,7 @@ class ConstantIterator implements AsyncIterator >value : Symbol(value, Decl(customAsyncIterator.ts, 4, 15)) throw new Error("ConstantIterator.prototype.next may not take any values"); ->Error : Symbol(Error, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>Error : Symbol(Error, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2022.error.d.ts, --, --)) } return { value: this.constant, done: false }; >value : Symbol(value, Decl(customAsyncIterator.ts, 8, 16)) diff --git a/tests/baselines/reference/declarationEmitAliasExportStar.js b/tests/baselines/reference/declarationEmitAliasExportStar.js index 450e1b15fa03b..27873972001cc 100644 --- a/tests/baselines/reference/declarationEmitAliasExportStar.js +++ b/tests/baselines/reference/declarationEmitAliasExportStar.js @@ -16,7 +16,11 @@ exports.__esModule = true; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/declarationEmitClassMemberWithComputedPropertyName.js b/tests/baselines/reference/declarationEmitClassMemberWithComputedPropertyName.js new file mode 100644 index 0000000000000..6f269712b2c1b --- /dev/null +++ b/tests/baselines/reference/declarationEmitClassMemberWithComputedPropertyName.js @@ -0,0 +1,88 @@ +//// [declarationEmitClassMemberWithComputedPropertyName.ts] +const k1 = Symbol(); +const k2 = 'foo' as const; + +const k3 = Symbol(); +const k4 = 'prop' as const; + +class Foo { + static [k1](): number { + return 1; + } + [k1](): string { + return ""; + } + + static [k2]() { + return 1; + } + [k2]() { + return ""; + } + + static m1() {} + m1() {} + + static [k3] = 1; + [k3] = 1; + + static [k4] = 1; + [k4] = 2; + + static p1 = 3; + p1 = 4; +} + +export const t1 = Foo[k1]; +export const t2 = new Foo()[k1]; + +export const t3 = Foo[k2]; +export const t4 = new Foo()[k2]; + +export const t5 = Foo.m1; +export const t6 = new Foo().m1; + +export const t7 = Foo[k3]; +export const t8 = new Foo()[k3]; + +export const t9 = Foo[k4]; +export const t10 = new Foo()[k4]; + +export const t11 = Foo.p1; +export const t12 = new Foo().p1; + + + + +//// [declarationEmitClassMemberWithComputedPropertyName.d.ts] +declare const k1: unique symbol; +declare const k2: "foo"; +declare const k3: unique symbol; +declare const k4: "prop"; +declare class Foo { + static [k1](): number; + [k1](): string; + static [k2](): number; + [k2](): string; + static m1(): void; + m1(): void; + static [k3]: number; + [k3]: number; + static [k4]: number; + [k4]: number; + static p1: number; + p1: number; +} +export declare const t1: (typeof Foo)[typeof k1]; +export declare const t2: () => string; +export declare const t3: typeof Foo.foo; +export declare const t4: () => string; +export declare const t5: typeof Foo.m1; +export declare const t6: () => void; +export declare const t7: number; +export declare const t8: number; +export declare const t9: number; +export declare const t10: number; +export declare const t11: number; +export declare const t12: number; +export {}; diff --git a/tests/baselines/reference/declarationEmitClassMemberWithComputedPropertyName.symbols b/tests/baselines/reference/declarationEmitClassMemberWithComputedPropertyName.symbols new file mode 100644 index 0000000000000..2153d8ecae1ba --- /dev/null +++ b/tests/baselines/reference/declarationEmitClassMemberWithComputedPropertyName.symbols @@ -0,0 +1,139 @@ +=== tests/cases/compiler/declarationEmitClassMemberWithComputedPropertyName.ts === +const k1 = Symbol(); +>k1 : Symbol(k1, Decl(declarationEmitClassMemberWithComputedPropertyName.ts, 0, 5)) +>Symbol : Symbol(Symbol, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.symbol.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2019.symbol.d.ts, --, --)) + +const k2 = 'foo' as const; +>k2 : Symbol(k2, Decl(declarationEmitClassMemberWithComputedPropertyName.ts, 1, 5)) +>const : Symbol(const) + +const k3 = Symbol(); +>k3 : Symbol(k3, Decl(declarationEmitClassMemberWithComputedPropertyName.ts, 3, 5)) +>Symbol : Symbol(Symbol, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.symbol.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2019.symbol.d.ts, --, --)) + +const k4 = 'prop' as const; +>k4 : Symbol(k4, Decl(declarationEmitClassMemberWithComputedPropertyName.ts, 4, 5)) +>const : Symbol(const) + +class Foo { +>Foo : Symbol(Foo, Decl(declarationEmitClassMemberWithComputedPropertyName.ts, 4, 27)) + + static [k1](): number { +>[k1] : Symbol(Foo[k1], Decl(declarationEmitClassMemberWithComputedPropertyName.ts, 6, 11)) +>k1 : Symbol(k1, Decl(declarationEmitClassMemberWithComputedPropertyName.ts, 0, 5)) + + return 1; + } + [k1](): string { +>[k1] : Symbol(Foo[k1], Decl(declarationEmitClassMemberWithComputedPropertyName.ts, 9, 5)) +>k1 : Symbol(k1, Decl(declarationEmitClassMemberWithComputedPropertyName.ts, 0, 5)) + + return ""; + } + + static [k2]() { +>[k2] : Symbol(Foo[k2], Decl(declarationEmitClassMemberWithComputedPropertyName.ts, 12, 5)) +>k2 : Symbol(k2, Decl(declarationEmitClassMemberWithComputedPropertyName.ts, 1, 5)) + + return 1; + } + [k2]() { +>[k2] : Symbol(Foo[k2], Decl(declarationEmitClassMemberWithComputedPropertyName.ts, 16, 5)) +>k2 : Symbol(k2, Decl(declarationEmitClassMemberWithComputedPropertyName.ts, 1, 5)) + + return ""; + } + + static m1() {} +>m1 : Symbol(Foo.m1, Decl(declarationEmitClassMemberWithComputedPropertyName.ts, 19, 5)) + + m1() {} +>m1 : Symbol(Foo.m1, Decl(declarationEmitClassMemberWithComputedPropertyName.ts, 21, 18)) + + static [k3] = 1; +>[k3] : Symbol(Foo[k3], Decl(declarationEmitClassMemberWithComputedPropertyName.ts, 22, 11)) +>k3 : Symbol(k3, Decl(declarationEmitClassMemberWithComputedPropertyName.ts, 3, 5)) + + [k3] = 1; +>[k3] : Symbol(Foo[k3], Decl(declarationEmitClassMemberWithComputedPropertyName.ts, 24, 20)) +>k3 : Symbol(k3, Decl(declarationEmitClassMemberWithComputedPropertyName.ts, 3, 5)) + + static [k4] = 1; +>[k4] : Symbol(Foo[k4], Decl(declarationEmitClassMemberWithComputedPropertyName.ts, 25, 13)) +>k4 : Symbol(k4, Decl(declarationEmitClassMemberWithComputedPropertyName.ts, 4, 5)) + + [k4] = 2; +>[k4] : Symbol(Foo[k4], Decl(declarationEmitClassMemberWithComputedPropertyName.ts, 27, 20)) +>k4 : Symbol(k4, Decl(declarationEmitClassMemberWithComputedPropertyName.ts, 4, 5)) + + static p1 = 3; +>p1 : Symbol(Foo.p1, Decl(declarationEmitClassMemberWithComputedPropertyName.ts, 28, 13)) + + p1 = 4; +>p1 : Symbol(Foo.p1, Decl(declarationEmitClassMemberWithComputedPropertyName.ts, 30, 18)) +} + +export const t1 = Foo[k1]; +>t1 : Symbol(t1, Decl(declarationEmitClassMemberWithComputedPropertyName.ts, 34, 12)) +>Foo : Symbol(Foo, Decl(declarationEmitClassMemberWithComputedPropertyName.ts, 4, 27)) +>k1 : Symbol(k1, Decl(declarationEmitClassMemberWithComputedPropertyName.ts, 0, 5)) + +export const t2 = new Foo()[k1]; +>t2 : Symbol(t2, Decl(declarationEmitClassMemberWithComputedPropertyName.ts, 35, 12)) +>Foo : Symbol(Foo, Decl(declarationEmitClassMemberWithComputedPropertyName.ts, 4, 27)) +>k1 : Symbol(k1, Decl(declarationEmitClassMemberWithComputedPropertyName.ts, 0, 5)) + +export const t3 = Foo[k2]; +>t3 : Symbol(t3, Decl(declarationEmitClassMemberWithComputedPropertyName.ts, 37, 12)) +>Foo : Symbol(Foo, Decl(declarationEmitClassMemberWithComputedPropertyName.ts, 4, 27)) +>k2 : Symbol(k2, Decl(declarationEmitClassMemberWithComputedPropertyName.ts, 1, 5)) + +export const t4 = new Foo()[k2]; +>t4 : Symbol(t4, Decl(declarationEmitClassMemberWithComputedPropertyName.ts, 38, 12)) +>Foo : Symbol(Foo, Decl(declarationEmitClassMemberWithComputedPropertyName.ts, 4, 27)) +>k2 : Symbol(k2, Decl(declarationEmitClassMemberWithComputedPropertyName.ts, 1, 5)) + +export const t5 = Foo.m1; +>t5 : Symbol(t5, Decl(declarationEmitClassMemberWithComputedPropertyName.ts, 40, 12)) +>Foo.m1 : Symbol(Foo.m1, Decl(declarationEmitClassMemberWithComputedPropertyName.ts, 19, 5)) +>Foo : Symbol(Foo, Decl(declarationEmitClassMemberWithComputedPropertyName.ts, 4, 27)) +>m1 : Symbol(Foo.m1, Decl(declarationEmitClassMemberWithComputedPropertyName.ts, 19, 5)) + +export const t6 = new Foo().m1; +>t6 : Symbol(t6, Decl(declarationEmitClassMemberWithComputedPropertyName.ts, 41, 12)) +>new Foo().m1 : Symbol(Foo.m1, Decl(declarationEmitClassMemberWithComputedPropertyName.ts, 21, 18)) +>Foo : Symbol(Foo, Decl(declarationEmitClassMemberWithComputedPropertyName.ts, 4, 27)) +>m1 : Symbol(Foo.m1, Decl(declarationEmitClassMemberWithComputedPropertyName.ts, 21, 18)) + +export const t7 = Foo[k3]; +>t7 : Symbol(t7, Decl(declarationEmitClassMemberWithComputedPropertyName.ts, 43, 12)) +>Foo : Symbol(Foo, Decl(declarationEmitClassMemberWithComputedPropertyName.ts, 4, 27)) +>k3 : Symbol(k3, Decl(declarationEmitClassMemberWithComputedPropertyName.ts, 3, 5)) + +export const t8 = new Foo()[k3]; +>t8 : Symbol(t8, Decl(declarationEmitClassMemberWithComputedPropertyName.ts, 44, 12)) +>Foo : Symbol(Foo, Decl(declarationEmitClassMemberWithComputedPropertyName.ts, 4, 27)) +>k3 : Symbol(k3, Decl(declarationEmitClassMemberWithComputedPropertyName.ts, 3, 5)) + +export const t9 = Foo[k4]; +>t9 : Symbol(t9, Decl(declarationEmitClassMemberWithComputedPropertyName.ts, 46, 12)) +>Foo : Symbol(Foo, Decl(declarationEmitClassMemberWithComputedPropertyName.ts, 4, 27)) +>k4 : Symbol(k4, Decl(declarationEmitClassMemberWithComputedPropertyName.ts, 4, 5)) + +export const t10 = new Foo()[k4]; +>t10 : Symbol(t10, Decl(declarationEmitClassMemberWithComputedPropertyName.ts, 47, 12)) +>Foo : Symbol(Foo, Decl(declarationEmitClassMemberWithComputedPropertyName.ts, 4, 27)) +>k4 : Symbol(k4, Decl(declarationEmitClassMemberWithComputedPropertyName.ts, 4, 5)) + +export const t11 = Foo.p1; +>t11 : Symbol(t11, Decl(declarationEmitClassMemberWithComputedPropertyName.ts, 49, 12)) +>Foo.p1 : Symbol(Foo.p1, Decl(declarationEmitClassMemberWithComputedPropertyName.ts, 28, 13)) +>Foo : Symbol(Foo, Decl(declarationEmitClassMemberWithComputedPropertyName.ts, 4, 27)) +>p1 : Symbol(Foo.p1, Decl(declarationEmitClassMemberWithComputedPropertyName.ts, 28, 13)) + +export const t12 = new Foo().p1; +>t12 : Symbol(t12, Decl(declarationEmitClassMemberWithComputedPropertyName.ts, 50, 12)) +>new Foo().p1 : Symbol(Foo.p1, Decl(declarationEmitClassMemberWithComputedPropertyName.ts, 30, 18)) +>Foo : Symbol(Foo, Decl(declarationEmitClassMemberWithComputedPropertyName.ts, 4, 27)) +>p1 : Symbol(Foo.p1, Decl(declarationEmitClassMemberWithComputedPropertyName.ts, 30, 18)) + diff --git a/tests/baselines/reference/declarationEmitClassMemberWithComputedPropertyName.types b/tests/baselines/reference/declarationEmitClassMemberWithComputedPropertyName.types new file mode 100644 index 0000000000000..b144e94b94582 --- /dev/null +++ b/tests/baselines/reference/declarationEmitClassMemberWithComputedPropertyName.types @@ -0,0 +1,167 @@ +=== tests/cases/compiler/declarationEmitClassMemberWithComputedPropertyName.ts === +const k1 = Symbol(); +>k1 : unique symbol +>Symbol() : unique symbol +>Symbol : SymbolConstructor + +const k2 = 'foo' as const; +>k2 : "foo" +>'foo' as const : "foo" +>'foo' : "foo" + +const k3 = Symbol(); +>k3 : unique symbol +>Symbol() : unique symbol +>Symbol : SymbolConstructor + +const k4 = 'prop' as const; +>k4 : "prop" +>'prop' as const : "prop" +>'prop' : "prop" + +class Foo { +>Foo : Foo + + static [k1](): number { +>[k1] : () => number +>k1 : unique symbol + + return 1; +>1 : 1 + } + [k1](): string { +>[k1] : () => string +>k1 : unique symbol + + return ""; +>"" : "" + } + + static [k2]() { +>[k2] : () => number +>k2 : "foo" + + return 1; +>1 : 1 + } + [k2]() { +>[k2] : () => string +>k2 : "foo" + + return ""; +>"" : "" + } + + static m1() {} +>m1 : () => void + + m1() {} +>m1 : () => void + + static [k3] = 1; +>[k3] : number +>k3 : unique symbol +>1 : 1 + + [k3] = 1; +>[k3] : number +>k3 : unique symbol +>1 : 1 + + static [k4] = 1; +>[k4] : number +>k4 : "prop" +>1 : 1 + + [k4] = 2; +>[k4] : number +>k4 : "prop" +>2 : 2 + + static p1 = 3; +>p1 : number +>3 : 3 + + p1 = 4; +>p1 : number +>4 : 4 +} + +export const t1 = Foo[k1]; +>t1 : () => number +>Foo[k1] : () => number +>Foo : typeof Foo +>k1 : unique symbol + +export const t2 = new Foo()[k1]; +>t2 : () => string +>new Foo()[k1] : () => string +>new Foo() : Foo +>Foo : typeof Foo +>k1 : unique symbol + +export const t3 = Foo[k2]; +>t3 : () => number +>Foo[k2] : () => number +>Foo : typeof Foo +>k2 : "foo" + +export const t4 = new Foo()[k2]; +>t4 : () => string +>new Foo()[k2] : () => string +>new Foo() : Foo +>Foo : typeof Foo +>k2 : "foo" + +export const t5 = Foo.m1; +>t5 : () => void +>Foo.m1 : () => void +>Foo : typeof Foo +>m1 : () => void + +export const t6 = new Foo().m1; +>t6 : () => void +>new Foo().m1 : () => void +>new Foo() : Foo +>Foo : typeof Foo +>m1 : () => void + +export const t7 = Foo[k3]; +>t7 : number +>Foo[k3] : number +>Foo : typeof Foo +>k3 : unique symbol + +export const t8 = new Foo()[k3]; +>t8 : number +>new Foo()[k3] : number +>new Foo() : Foo +>Foo : typeof Foo +>k3 : unique symbol + +export const t9 = Foo[k4]; +>t9 : number +>Foo[k4] : number +>Foo : typeof Foo +>k4 : "prop" + +export const t10 = new Foo()[k4]; +>t10 : number +>new Foo()[k4] : number +>new Foo() : Foo +>Foo : typeof Foo +>k4 : "prop" + +export const t11 = Foo.p1; +>t11 : number +>Foo.p1 : number +>Foo : typeof Foo +>p1 : number + +export const t12 = new Foo().p1; +>t12 : number +>new Foo().p1 : number +>new Foo() : Foo +>Foo : typeof Foo +>p1 : number + diff --git a/tests/baselines/reference/declarationEmitExportAssignedNamespaceNoTripleSlashTypesReference.js b/tests/baselines/reference/declarationEmitExportAssignedNamespaceNoTripleSlashTypesReference.js index add035f1054c5..6e3ba8f5d7649 100644 --- a/tests/baselines/reference/declarationEmitExportAssignedNamespaceNoTripleSlashTypesReference.js +++ b/tests/baselines/reference/declarationEmitExportAssignedNamespaceNoTripleSlashTypesReference.js @@ -59,7 +59,11 @@ exports.obj = { "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/declarationEmitObjectAssignedDefaultExport.types b/tests/baselines/reference/declarationEmitObjectAssignedDefaultExport.types index b95d5a76463fb..9d05d21a2fdd6 100644 --- a/tests/baselines/reference/declarationEmitObjectAssignedDefaultExport.types +++ b/tests/baselines/reference/declarationEmitObjectAssignedDefaultExport.types @@ -78,9 +78,9 @@ export const C = styled.div``; export default Object.assign(A, { >Object.assign(A, { B, C}) : string & import("tests/cases/compiler/node_modules/styled-components/index").StyledComponentBase<"div", import("tests/cases/compiler/node_modules/styled-components/index").DefaultTheme, {}, never> & import("tests/cases/compiler/node_modules/styled-components/node_modules/hoist-non-react-statics/index").NonReactStatics<"div"> & { B: import("tests/cases/compiler/node_modules/styled-components/index").StyledComponent<"div", import("tests/cases/compiler/node_modules/styled-components/index").DefaultTheme, {}, never>; C: import("tests/cases/compiler/node_modules/styled-components/index").StyledComponent<"div", import("tests/cases/compiler/node_modules/styled-components/index").DefaultTheme, {}, never>; } ->Object.assign : { (target: T, source: U): T & U; (target: T, source1: U, source2: V): T & U & V; (target: T, source1: U, source2: V, source3: W): T & U & V & W; (target: object, ...sources: any[]): any; } +>Object.assign : { (target: T, source: U): T & U; (target: T, source1: U, source2: V): T & U & V; (target: T, source1: U, source2: V, source3: W): T & U & V & W; (target: object, ...sources: any[]): any; } >Object : ObjectConstructor ->assign : { (target: T, source: U): T & U; (target: T, source1: U, source2: V): T & U & V; (target: T, source1: U, source2: V, source3: W): T & U & V & W; (target: object, ...sources: any[]): any; } +>assign : { (target: T, source: U): T & U; (target: T, source1: U, source2: V): T & U & V; (target: T, source1: U, source2: V, source3: W): T & U & V & W; (target: object, ...sources: any[]): any; } >A : import("tests/cases/compiler/node_modules/styled-components/index").StyledComponent<"div", import("tests/cases/compiler/node_modules/styled-components/index").DefaultTheme, {}, never> >{ B, C} : { B: import("tests/cases/compiler/node_modules/styled-components/index").StyledComponent<"div", import("tests/cases/compiler/node_modules/styled-components/index").DefaultTheme, {}, never>; C: import("tests/cases/compiler/node_modules/styled-components/index").StyledComponent<"div", import("tests/cases/compiler/node_modules/styled-components/index").DefaultTheme, {}, never>; } diff --git a/tests/baselines/reference/declarationEmitOutFileBundlePaths.js b/tests/baselines/reference/declarationEmitOutFileBundlePaths.js index 6d0af3cab62ea..02b1bd623bfcd 100644 --- a/tests/baselines/reference/declarationEmitOutFileBundlePaths.js +++ b/tests/baselines/reference/declarationEmitOutFileBundlePaths.js @@ -17,7 +17,7 @@ export { //// [index.d.ts] declare module "versions.static" { - var _default: { + const _default: { "@a/b": string; "@a/c": string; }; diff --git a/tests/baselines/reference/declarationEmitReexportedSymlinkReference.js b/tests/baselines/reference/declarationEmitReexportedSymlinkReference.js index b658eff96a793..7fa2a4194d6c9 100644 --- a/tests/baselines/reference/declarationEmitReexportedSymlinkReference.js +++ b/tests/baselines/reference/declarationEmitReexportedSymlinkReference.js @@ -53,7 +53,11 @@ exports.ADMIN = pkg2_1.MetadataAccessor.create('1'); "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/declarationEmitReexportedSymlinkReference2.js b/tests/baselines/reference/declarationEmitReexportedSymlinkReference2.js index 01e6e13a56357..c3736f2bbd2d6 100644 --- a/tests/baselines/reference/declarationEmitReexportedSymlinkReference2.js +++ b/tests/baselines/reference/declarationEmitReexportedSymlinkReference2.js @@ -56,7 +56,11 @@ exports.ADMIN = pkg2_1.MetadataAccessor.create('1'); "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/declarationEmitReexportedSymlinkReference3.js b/tests/baselines/reference/declarationEmitReexportedSymlinkReference3.js index e69ecceea663f..578fe16871a9d 100644 --- a/tests/baselines/reference/declarationEmitReexportedSymlinkReference3.js +++ b/tests/baselines/reference/declarationEmitReexportedSymlinkReference3.js @@ -53,7 +53,11 @@ exports.ADMIN = pkg2_1.MetadataAccessor.create('1'); "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/declarationEmitStringEnumUsedInNonlocalSpread.js b/tests/baselines/reference/declarationEmitStringEnumUsedInNonlocalSpread.js index 5aa9db78efdf4..743af023b79bb 100644 --- a/tests/baselines/reference/declarationEmitStringEnumUsedInNonlocalSpread.js +++ b/tests/baselines/reference/declarationEmitStringEnumUsedInNonlocalSpread.js @@ -41,8 +41,8 @@ var A = /** @class */ (function () { A.prototype.getA = function () { var _a; return _a = {}, - _a["123123" /* Test1 */] = '123', - _a["12312312312" /* Test2 */] = '123', + _a["123123" /* TestEnum.Test1 */] = '123', + _a["12312312312" /* TestEnum.Test2 */] = '123', _a; }; return A; diff --git a/tests/baselines/reference/declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.types b/tests/baselines/reference/declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.types index ac96422ad5a87..4e4bf5b76933a 100644 --- a/tests/baselines/reference/declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.types +++ b/tests/baselines/reference/declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.types @@ -39,9 +39,9 @@ export const updateIfChanged = (t: T) => { return Object.assign( >Object.assign( >(key: K) => reduce>(u[key as keyof U] as Value, (v: Value) => { return update(Object.assign(Array.isArray(u) ? [] : {}, u, { [key]: v })); }), { map: (updater: (u: U) => U) => set(updater(u)), set }) : ((key: K) => (>(key: K) => (>>(key: K) => (>>>(key: K) => (>>>>(key: K) => (>>>>>(key: K) => (>>>>>>(key: K) => (>>>>>>>(key: K) => (>>>>>>>>(key: K) => (>>>>>>>>>(key: K) => (>>>>>>>>>>(key: K) => any & { map: (updater: (u: Value>>>>>>>>>>) => Value>>>>>>>>>>) => T; set: (newU: Value>>>>>>>>>>) => T; }) & { map: (updater: (u: Value>>>>>>>>>) => Value>>>>>>>>>) => T; set: (newU: Value>>>>>>>>>) => T; }) & { map: (updater: (u: Value>>>>>>>>) => Value>>>>>>>>) => T; set: (newU: Value>>>>>>>>) => T; }) & { map: (updater: (u: Value>>>>>>>) => Value>>>>>>>) => T; set: (newU: Value>>>>>>>) => T; }) & { map: (updater: (u: Value>>>>>>) => Value>>>>>>) => T; set: (newU: Value>>>>>>) => T; }) & { map: (updater: (u: Value>>>>>) => Value>>>>>) => T; set: (newU: Value>>>>>) => T; }) & { map: (updater: (u: Value>>>>) => Value>>>>) => T; set: (newU: Value>>>>) => T; }) & { map: (updater: (u: Value>>>) => Value>>>) => T; set: (newU: Value>>>) => T; }) & { map: (updater: (u: Value>>) => Value>>) => T; set: (newU: Value>>) => T; }) & { map: (updater: (u: Value>) => Value>) => T; set: (newU: Value>) => T; }) & { map: (updater: (u: Value) => Value) => T; set: (newU: Value) => T; }) & { map: (updater: (u: U) => U) => T; set: (newU: U) => T; } ->Object.assign : { (target: T, source: U): T & U; (target: T, source1: U, source2: V): T & U & V; (target: T, source1: U, source2: V, source3: W): T & U & V & W; (target: object, ...sources: any[]): any; } +>Object.assign : { (target: T, source: U): T & U; (target: T, source1: U, source2: V): T & U & V; (target: T, source1: U, source2: V, source3: W): T & U & V & W; (target: object, ...sources: any[]): any; } >Object : ObjectConstructor ->assign : { (target: T, source: U): T & U; (target: T, source1: U, source2: V): T & U & V; (target: T, source1: U, source2: V, source3: W): T & U & V & W; (target: object, ...sources: any[]): any; } +>assign : { (target: T, source: U): T & U; (target: T, source1: U, source2: V): T & U & V; (target: T, source1: U, source2: V, source3: W): T & U & V & W; (target: object, ...sources: any[]): any; } >(key: K) => >>(key: K) => reduce>(u[key as keyof U] as Value, (v: Value) => { return update(Object.assign(Array.isArray(u) ? [] : {}, u, { [key]: v })); }) : (key: K) => (>(key: K) => (>>(key: K) => (>>>(key: K) => (>>>>(key: K) => (>>>>>(key: K) => (>>>>>>(key: K) => (>>>>>>>(key: K) => (>>>>>>>>(key: K) => (>>>>>>>>>(key: K) => (>>>>>>>>>>(key: K) => any & { map: (updater: (u: Value>>>>>>>>>>) => Value>>>>>>>>>>) => T; set: (newU: Value>>>>>>>>>>) => T; }) & { map: (updater: (u: Value>>>>>>>>>) => Value>>>>>>>>>) => T; set: (newU: Value>>>>>>>>>) => T; }) & { map: (updater: (u: Value>>>>>>>>) => Value>>>>>>>>) => T; set: (newU: Value>>>>>>>>) => T; }) & { map: (updater: (u: Value>>>>>>>) => Value>>>>>>>) => T; set: (newU: Value>>>>>>>) => T; }) & { map: (updater: (u: Value>>>>>>) => Value>>>>>>) => T; set: (newU: Value>>>>>>) => T; }) & { map: (updater: (u: Value>>>>>) => Value>>>>>) => T; set: (newU: Value>>>>>) => T; }) & { map: (updater: (u: Value>>>>) => Value>>>>) => T; set: (newU: Value>>>>) => T; }) & { map: (updater: (u: Value>>>) => Value>>>) => T; set: (newU: Value>>>) => T; }) & { map: (updater: (u: Value>>) => Value>>) => T; set: (newU: Value>>) => T; }) & { map: (updater: (u: Value>) => Value>) => T; set: (newU: Value>) => T; }) & { map: (updater: (u: Value) => Value) => T; set: (newU: Value) => T; } @@ -62,9 +62,9 @@ export const updateIfChanged = (t: T) => { >update(Object.assign(Array.isArray(u) ? [] : {}, u, { [key]: v })) : T >update : (u: U) => T >Object.assign(Array.isArray(u) ? [] : {}, u, { [key]: v }) : U & { [x: string]: Value; } ->Object.assign : { (target: T, source: U): T & U; (target: T, source1: U, source2: V): T & U & V; (target: T, source1: U, source2: V, source3: W): T & U & V & W; (target: object, ...sources: any[]): any; } +>Object.assign : { (target: T, source: U): T & U; (target: T, source1: U, source2: V): T & U & V; (target: T, source1: U, source2: V, source3: W): T & U & V & W; (target: object, ...sources: any[]): any; } >Object : ObjectConstructor ->assign : { (target: T, source: U): T & U; (target: T, source1: U, source2: V): T & U & V; (target: T, source1: U, source2: V, source3: W): T & U & V & W; (target: object, ...sources: any[]): any; } +>assign : { (target: T, source: U): T & U; (target: T, source1: U, source2: V): T & U & V; (target: T, source1: U, source2: V, source3: W): T & U & V & W; (target: object, ...sources: any[]): any; } >Array.isArray(u) ? [] : {} : undefined[] | {} >Array.isArray(u) : boolean >Array.isArray : (arg: any) => arg is any[] diff --git a/tests/baselines/reference/decoratorInAmbientContext.js b/tests/baselines/reference/decoratorInAmbientContext.js new file mode 100644 index 0000000000000..3ae6267dbc276 --- /dev/null +++ b/tests/baselines/reference/decoratorInAmbientContext.js @@ -0,0 +1,26 @@ +//// [decoratorInAmbientContext.ts] +declare function decorator(target: any, key: any): any; + +const b = Symbol('b'); +class Foo { + @decorator declare a: number; + @decorator declare [b]: number; +} + + +//// [decoratorInAmbientContext.js] +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +const b = Symbol('b'); +class Foo { +} +__decorate([ + decorator +], Foo.prototype, "a", void 0); +__decorate([ + decorator +], Foo.prototype, b, void 0); diff --git a/tests/baselines/reference/decoratorInAmbientContext.symbols b/tests/baselines/reference/decoratorInAmbientContext.symbols new file mode 100644 index 0000000000000..9ba2380150d78 --- /dev/null +++ b/tests/baselines/reference/decoratorInAmbientContext.symbols @@ -0,0 +1,23 @@ +=== tests/cases/conformance/decorators/decoratorInAmbientContext.ts === +declare function decorator(target: any, key: any): any; +>decorator : Symbol(decorator, Decl(decoratorInAmbientContext.ts, 0, 0)) +>target : Symbol(target, Decl(decoratorInAmbientContext.ts, 0, 27)) +>key : Symbol(key, Decl(decoratorInAmbientContext.ts, 0, 39)) + +const b = Symbol('b'); +>b : Symbol(b, Decl(decoratorInAmbientContext.ts, 2, 5)) +>Symbol : Symbol(Symbol, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.symbol.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2019.symbol.d.ts, --, --)) + +class Foo { +>Foo : Symbol(Foo, Decl(decoratorInAmbientContext.ts, 2, 22)) + + @decorator declare a: number; +>decorator : Symbol(decorator, Decl(decoratorInAmbientContext.ts, 0, 0)) +>a : Symbol(Foo.a, Decl(decoratorInAmbientContext.ts, 3, 11)) + + @decorator declare [b]: number; +>decorator : Symbol(decorator, Decl(decoratorInAmbientContext.ts, 0, 0)) +>[b] : Symbol(Foo[b], Decl(decoratorInAmbientContext.ts, 4, 33)) +>b : Symbol(b, Decl(decoratorInAmbientContext.ts, 2, 5)) +} + diff --git a/tests/baselines/reference/decoratorInAmbientContext.types b/tests/baselines/reference/decoratorInAmbientContext.types new file mode 100644 index 0000000000000..b1aaf7e07638a --- /dev/null +++ b/tests/baselines/reference/decoratorInAmbientContext.types @@ -0,0 +1,25 @@ +=== tests/cases/conformance/decorators/decoratorInAmbientContext.ts === +declare function decorator(target: any, key: any): any; +>decorator : (target: any, key: any) => any +>target : any +>key : any + +const b = Symbol('b'); +>b : unique symbol +>Symbol('b') : unique symbol +>Symbol : SymbolConstructor +>'b' : "b" + +class Foo { +>Foo : Foo + + @decorator declare a: number; +>decorator : (target: any, key: any) => any +>a : number + + @decorator declare [b]: number; +>decorator : (target: any, key: any) => any +>[b] : number +>b : unique symbol +} + diff --git a/tests/baselines/reference/decoratorOnClassMethod8.errors.txt b/tests/baselines/reference/decoratorOnClassMethod8.errors.txt index adfd69b9dff99..ab20c94e5bd8f 100644 --- a/tests/baselines/reference/decoratorOnClassMethod8.errors.txt +++ b/tests/baselines/reference/decoratorOnClassMethod8.errors.txt @@ -1,6 +1,5 @@ tests/cases/conformance/decorators/class/method/decoratorOnClassMethod8.ts(4,5): error TS1241: Unable to resolve signature of method decorator when called as an expression. -tests/cases/conformance/decorators/class/method/decoratorOnClassMethod8.ts(4,5): error TS1241: Unable to resolve signature of method decorator when called as an expression. - Type 'C' has no properties in common with type 'TypedPropertyDescriptor<() => void>'. +tests/cases/conformance/decorators/class/method/decoratorOnClassMethod8.ts(4,5): error TS1270: Decorator function return type 'C' is not assignable to type 'void | TypedPropertyDescriptor<() => void>'. ==== tests/cases/conformance/decorators/class/method/decoratorOnClassMethod8.ts (2 errors) ==== @@ -11,6 +10,5 @@ tests/cases/conformance/decorators/class/method/decoratorOnClassMethod8.ts(4,5): ~~~~ !!! error TS1241: Unable to resolve signature of method decorator when called as an expression. ~~~~ -!!! error TS1241: Unable to resolve signature of method decorator when called as an expression. -!!! error TS1241: Type 'C' has no properties in common with type 'TypedPropertyDescriptor<() => void>'. +!!! error TS1270: Decorator function return type 'C' is not assignable to type 'void | TypedPropertyDescriptor<() => void>'. } \ No newline at end of file diff --git a/tests/baselines/reference/decoratorOnClassProperty12.js b/tests/baselines/reference/decoratorOnClassProperty12.js new file mode 100644 index 0000000000000..a382229db5d44 --- /dev/null +++ b/tests/baselines/reference/decoratorOnClassProperty12.js @@ -0,0 +1,28 @@ +//// [decoratorOnClassProperty12.ts] +declare function dec(): (target: any, propertyKey: string) => void; + +class A { + @dec() + foo: `${string}` +} + + +//// [decoratorOnClassProperty12.js] +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +var A = /** @class */ (function () { + function A() { + } + __decorate([ + dec(), + __metadata("design:type", String) + ], A.prototype, "foo", void 0); + return A; +}()); diff --git a/tests/baselines/reference/decoratorOnClassProperty12.symbols b/tests/baselines/reference/decoratorOnClassProperty12.symbols new file mode 100644 index 0000000000000..2da0be023006b --- /dev/null +++ b/tests/baselines/reference/decoratorOnClassProperty12.symbols @@ -0,0 +1,17 @@ +=== tests/cases/conformance/decorators/class/property/decoratorOnClassProperty12.ts === +declare function dec(): (target: any, propertyKey: string) => void; +>dec : Symbol(dec, Decl(decoratorOnClassProperty12.ts, 0, 0)) +>T : Symbol(T, Decl(decoratorOnClassProperty12.ts, 0, 25)) +>target : Symbol(target, Decl(decoratorOnClassProperty12.ts, 0, 28)) +>propertyKey : Symbol(propertyKey, Decl(decoratorOnClassProperty12.ts, 0, 40)) + +class A { +>A : Symbol(A, Decl(decoratorOnClassProperty12.ts, 0, 70)) + + @dec() +>dec : Symbol(dec, Decl(decoratorOnClassProperty12.ts, 0, 0)) + + foo: `${string}` +>foo : Symbol(A.foo, Decl(decoratorOnClassProperty12.ts, 2, 9)) +} + diff --git a/tests/baselines/reference/decoratorOnClassProperty12.types b/tests/baselines/reference/decoratorOnClassProperty12.types new file mode 100644 index 0000000000000..cff46fbe4a94f --- /dev/null +++ b/tests/baselines/reference/decoratorOnClassProperty12.types @@ -0,0 +1,17 @@ +=== tests/cases/conformance/decorators/class/property/decoratorOnClassProperty12.ts === +declare function dec(): (target: any, propertyKey: string) => void; +>dec : () => (target: any, propertyKey: string) => void +>target : any +>propertyKey : string + +class A { +>A : A + + @dec() +>dec() : (target: any, propertyKey: string) => void +>dec : () => (target: any, propertyKey: string) => void + + foo: `${string}` +>foo : string +} + diff --git a/tests/baselines/reference/deepComparisons.errors.txt b/tests/baselines/reference/deepComparisons.errors.txt index 43eec648b7fdb..663d5d80d1b9f 100644 --- a/tests/baselines/reference/deepComparisons.errors.txt +++ b/tests/baselines/reference/deepComparisons.errors.txt @@ -46,4 +46,23 @@ tests/cases/compiler/deepComparisons.ts(4,9): error TS2322: Type 'T[K1][K2]' is function f3() { let x: Foo1 = 0 as any as Bar; // No error! - } \ No newline at end of file + } + + // Repro from #46500 + + type F = {} & ( + T extends [any, ...any[]] + ? { [K in keyof T]?: F } + : T extends any[] + ? F[] + : T extends { [K: string]: any } + ? { [K in keyof T]?: F } + : { x: string } + ); + + declare function f(): F; + + function g() { + return f() as F; + } + \ No newline at end of file diff --git a/tests/baselines/reference/deepComparisons.js b/tests/baselines/reference/deepComparisons.js index 95d81ea96cf41..78bd274047ada 100644 --- a/tests/baselines/reference/deepComparisons.js +++ b/tests/baselines/reference/deepComparisons.js @@ -17,7 +17,26 @@ type Foo2 = { x: Foo1 }; function f3() { let x: Foo1 = 0 as any as Bar; // No error! -} +} + +// Repro from #46500 + +type F = {} & ( + T extends [any, ...any[]] + ? { [K in keyof T]?: F } + : T extends any[] + ? F[] + : T extends { [K: string]: any } + ? { [K in keyof T]?: F } + : { x: string } +); + +declare function f(): F; + +function g() { + return f() as F; +} + //// [deepComparisons.js] function f1() { @@ -31,3 +50,6 @@ function f2() { function f3() { var x = 0; // No error! } +function g() { + return f(); +} diff --git a/tests/baselines/reference/deepComparisons.symbols b/tests/baselines/reference/deepComparisons.symbols index 4c172345e07ac..7b2dbd596ebfd 100644 --- a/tests/baselines/reference/deepComparisons.symbols +++ b/tests/baselines/reference/deepComparisons.symbols @@ -84,3 +84,57 @@ function f3() { >Bar : Symbol(Bar, Decl(deepComparisons.ts, 6, 28)) >U : Symbol(U, Decl(deepComparisons.ts, 16, 12)) } + +// Repro from #46500 + +type F = {} & ( +>F : Symbol(F, Decl(deepComparisons.ts, 18, 1)) +>T : Symbol(T, Decl(deepComparisons.ts, 22, 7)) + + T extends [any, ...any[]] +>T : Symbol(T, Decl(deepComparisons.ts, 22, 7)) + + ? { [K in keyof T]?: F } +>K : Symbol(K, Decl(deepComparisons.ts, 24, 13)) +>T : Symbol(T, Decl(deepComparisons.ts, 22, 7)) +>F : Symbol(F, Decl(deepComparisons.ts, 18, 1)) +>T : Symbol(T, Decl(deepComparisons.ts, 22, 7)) +>K : Symbol(K, Decl(deepComparisons.ts, 24, 13)) + + : T extends any[] +>T : Symbol(T, Decl(deepComparisons.ts, 22, 7)) + + ? F[] +>F : Symbol(F, Decl(deepComparisons.ts, 18, 1)) +>T : Symbol(T, Decl(deepComparisons.ts, 22, 7)) + + : T extends { [K: string]: any } +>T : Symbol(T, Decl(deepComparisons.ts, 22, 7)) +>K : Symbol(K, Decl(deepComparisons.ts, 27, 27)) + + ? { [K in keyof T]?: F } +>K : Symbol(K, Decl(deepComparisons.ts, 28, 21)) +>T : Symbol(T, Decl(deepComparisons.ts, 22, 7)) +>F : Symbol(F, Decl(deepComparisons.ts, 18, 1)) +>T : Symbol(T, Decl(deepComparisons.ts, 22, 7)) +>K : Symbol(K, Decl(deepComparisons.ts, 28, 21)) + + : { x: string } +>x : Symbol(x, Decl(deepComparisons.ts, 29, 19)) + +); + +declare function f(): F; +>f : Symbol(f, Decl(deepComparisons.ts, 30, 2)) +>T : Symbol(T, Decl(deepComparisons.ts, 32, 19)) +>F : Symbol(F, Decl(deepComparisons.ts, 18, 1)) +>T : Symbol(T, Decl(deepComparisons.ts, 32, 19)) + +function g() { +>g : Symbol(g, Decl(deepComparisons.ts, 32, 36)) + + return f() as F; +>f : Symbol(f, Decl(deepComparisons.ts, 30, 2)) +>F : Symbol(F, Decl(deepComparisons.ts, 18, 1)) +} + diff --git a/tests/baselines/reference/deepComparisons.types b/tests/baselines/reference/deepComparisons.types index 7bc16b70f8a64..f7cbbfae8a043 100644 --- a/tests/baselines/reference/deepComparisons.types +++ b/tests/baselines/reference/deepComparisons.types @@ -56,3 +56,34 @@ function f3() { >0 as any : any >0 : 0 } + +// Repro from #46500 + +type F = {} & ( +>F : F + + T extends [any, ...any[]] + ? { [K in keyof T]?: F } + : T extends any[] + ? F[] + : T extends { [K: string]: any } +>K : string + + ? { [K in keyof T]?: F } + : { x: string } +>x : string + +); + +declare function f(): F; +>f : () => F + +function g() { +>g : () => F + + return f() as F; +>f() as F : F +>f() : F +>f : () => F +} + diff --git a/tests/baselines/reference/deeplyNestedAssignabilityIssue.errors.txt b/tests/baselines/reference/deeplyNestedAssignabilityIssue.errors.txt index 493e746bc944a..33f16ce4f9b33 100644 --- a/tests/baselines/reference/deeplyNestedAssignabilityIssue.errors.txt +++ b/tests/baselines/reference/deeplyNestedAssignabilityIssue.errors.txt @@ -65,5 +65,5 @@ } } -Found 2 errors. +Found 2 errors in the same file, starting at: tests/cases/compiler/deeplyNestedAssignabilityIssue.ts:22 diff --git a/tests/baselines/reference/defaultNamedExportWithType1.js b/tests/baselines/reference/defaultNamedExportWithType1.js new file mode 100644 index 0000000000000..48d8c7c0b3a3f --- /dev/null +++ b/tests/baselines/reference/defaultNamedExportWithType1.js @@ -0,0 +1,9 @@ +//// [defaultNamedExportWithType1.ts] +type Foo = number; +export const Foo = 1; +export default Foo; + + +//// [defaultNamedExportWithType1.js] +export const Foo = 1; +export default Foo; diff --git a/tests/baselines/reference/defaultNamedExportWithType1.symbols b/tests/baselines/reference/defaultNamedExportWithType1.symbols new file mode 100644 index 0000000000000..d926ee0d485a5 --- /dev/null +++ b/tests/baselines/reference/defaultNamedExportWithType1.symbols @@ -0,0 +1,10 @@ +=== tests/cases/compiler/defaultNamedExportWithType1.ts === +type Foo = number; +>Foo : Symbol(Foo, Decl(defaultNamedExportWithType1.ts, 0, 0), Decl(defaultNamedExportWithType1.ts, 1, 12)) + +export const Foo = 1; +>Foo : Symbol(Foo, Decl(defaultNamedExportWithType1.ts, 1, 12)) + +export default Foo; +>Foo : Symbol(Foo, Decl(defaultNamedExportWithType1.ts, 0, 0), Decl(defaultNamedExportWithType1.ts, 1, 12)) + diff --git a/tests/baselines/reference/defaultNamedExportWithType1.types b/tests/baselines/reference/defaultNamedExportWithType1.types new file mode 100644 index 0000000000000..1189d7a481869 --- /dev/null +++ b/tests/baselines/reference/defaultNamedExportWithType1.types @@ -0,0 +1,11 @@ +=== tests/cases/compiler/defaultNamedExportWithType1.ts === +type Foo = number; +>Foo : number + +export const Foo = 1; +>Foo : 1 +>1 : 1 + +export default Foo; +>Foo : number + diff --git a/tests/baselines/reference/defaultNamedExportWithType2.js b/tests/baselines/reference/defaultNamedExportWithType2.js new file mode 100644 index 0000000000000..57450763b206f --- /dev/null +++ b/tests/baselines/reference/defaultNamedExportWithType2.js @@ -0,0 +1,9 @@ +//// [defaultNamedExportWithType2.ts] +type Foo = number; +const Foo = 1; +export default Foo; + + +//// [defaultNamedExportWithType2.js] +const Foo = 1; +export default Foo; diff --git a/tests/baselines/reference/defaultNamedExportWithType2.symbols b/tests/baselines/reference/defaultNamedExportWithType2.symbols new file mode 100644 index 0000000000000..0625c539b5442 --- /dev/null +++ b/tests/baselines/reference/defaultNamedExportWithType2.symbols @@ -0,0 +1,10 @@ +=== tests/cases/compiler/defaultNamedExportWithType2.ts === +type Foo = number; +>Foo : Symbol(Foo, Decl(defaultNamedExportWithType2.ts, 0, 0), Decl(defaultNamedExportWithType2.ts, 1, 5)) + +const Foo = 1; +>Foo : Symbol(Foo, Decl(defaultNamedExportWithType2.ts, 0, 0), Decl(defaultNamedExportWithType2.ts, 1, 5)) + +export default Foo; +>Foo : Symbol(Foo, Decl(defaultNamedExportWithType2.ts, 0, 0), Decl(defaultNamedExportWithType2.ts, 1, 5)) + diff --git a/tests/baselines/reference/defaultNamedExportWithType2.types b/tests/baselines/reference/defaultNamedExportWithType2.types new file mode 100644 index 0000000000000..d8d5103089d73 --- /dev/null +++ b/tests/baselines/reference/defaultNamedExportWithType2.types @@ -0,0 +1,11 @@ +=== tests/cases/compiler/defaultNamedExportWithType2.ts === +type Foo = number; +>Foo : number + +const Foo = 1; +>Foo : 1 +>1 : 1 + +export default Foo; +>Foo : number + diff --git a/tests/baselines/reference/defaultNamedExportWithType3.js b/tests/baselines/reference/defaultNamedExportWithType3.js new file mode 100644 index 0000000000000..46ecff720fcfb --- /dev/null +++ b/tests/baselines/reference/defaultNamedExportWithType3.js @@ -0,0 +1,9 @@ +//// [defaultNamedExportWithType3.ts] +interface Foo {} +export const Foo = {}; +export default Foo; + + +//// [defaultNamedExportWithType3.js] +export const Foo = {}; +export default Foo; diff --git a/tests/baselines/reference/defaultNamedExportWithType3.symbols b/tests/baselines/reference/defaultNamedExportWithType3.symbols new file mode 100644 index 0000000000000..a7b666cf34f4b --- /dev/null +++ b/tests/baselines/reference/defaultNamedExportWithType3.symbols @@ -0,0 +1,10 @@ +=== tests/cases/compiler/defaultNamedExportWithType3.ts === +interface Foo {} +>Foo : Symbol(Foo, Decl(defaultNamedExportWithType3.ts, 0, 0), Decl(defaultNamedExportWithType3.ts, 1, 12)) + +export const Foo = {}; +>Foo : Symbol(Foo, Decl(defaultNamedExportWithType3.ts, 1, 12)) + +export default Foo; +>Foo : Symbol(Foo, Decl(defaultNamedExportWithType3.ts, 0, 0), Decl(defaultNamedExportWithType3.ts, 1, 12)) + diff --git a/tests/baselines/reference/defaultNamedExportWithType3.types b/tests/baselines/reference/defaultNamedExportWithType3.types new file mode 100644 index 0000000000000..d7962a0350882 --- /dev/null +++ b/tests/baselines/reference/defaultNamedExportWithType3.types @@ -0,0 +1,9 @@ +=== tests/cases/compiler/defaultNamedExportWithType3.ts === +interface Foo {} +export const Foo = {}; +>Foo : {} +>{} : {} + +export default Foo; +>Foo : Foo + diff --git a/tests/baselines/reference/defaultNamedExportWithType4.js b/tests/baselines/reference/defaultNamedExportWithType4.js new file mode 100644 index 0000000000000..c2b2ab9e6ae03 --- /dev/null +++ b/tests/baselines/reference/defaultNamedExportWithType4.js @@ -0,0 +1,9 @@ +//// [defaultNamedExportWithType4.ts] +interface Foo {} +const Foo = {}; +export default Foo; + + +//// [defaultNamedExportWithType4.js] +const Foo = {}; +export default Foo; diff --git a/tests/baselines/reference/defaultNamedExportWithType4.symbols b/tests/baselines/reference/defaultNamedExportWithType4.symbols new file mode 100644 index 0000000000000..a9af2140a5d54 --- /dev/null +++ b/tests/baselines/reference/defaultNamedExportWithType4.symbols @@ -0,0 +1,10 @@ +=== tests/cases/compiler/defaultNamedExportWithType4.ts === +interface Foo {} +>Foo : Symbol(Foo, Decl(defaultNamedExportWithType4.ts, 0, 0), Decl(defaultNamedExportWithType4.ts, 1, 5)) + +const Foo = {}; +>Foo : Symbol(Foo, Decl(defaultNamedExportWithType4.ts, 0, 0), Decl(defaultNamedExportWithType4.ts, 1, 5)) + +export default Foo; +>Foo : Symbol(Foo, Decl(defaultNamedExportWithType4.ts, 0, 0), Decl(defaultNamedExportWithType4.ts, 1, 5)) + diff --git a/tests/baselines/reference/defaultNamedExportWithType4.types b/tests/baselines/reference/defaultNamedExportWithType4.types new file mode 100644 index 0000000000000..b3a8b9a1cd30b --- /dev/null +++ b/tests/baselines/reference/defaultNamedExportWithType4.types @@ -0,0 +1,9 @@ +=== tests/cases/compiler/defaultNamedExportWithType4.ts === +interface Foo {} +const Foo = {}; +>Foo : {} +>{} : {} + +export default Foo; +>Foo : Foo + diff --git a/tests/baselines/reference/dependentDestructuredVariables.js b/tests/baselines/reference/dependentDestructuredVariables.js new file mode 100644 index 0000000000000..a9f2006ec1e7a --- /dev/null +++ b/tests/baselines/reference/dependentDestructuredVariables.js @@ -0,0 +1,669 @@ +//// [dependentDestructuredVariables.ts] +type Action = + | { kind: 'A', payload: number } + | { kind: 'B', payload: string }; + +function f10({ kind, payload }: Action) { + if (kind === 'A') { + payload.toFixed(); + } + if (kind === 'B') { + payload.toUpperCase(); + } +} + +function f11(action: Action) { + const { kind, payload } = action; + if (kind === 'A') { + payload.toFixed(); + } + if (kind === 'B') { + payload.toUpperCase(); + } +} + +function f12({ kind, payload }: Action) { + switch (kind) { + case 'A': + payload.toFixed(); + break; + case 'B': + payload.toUpperCase(); + break; + default: + payload; // never + } +} + +type Action2 = + | { kind: 'A', payload: number | undefined } + | { kind: 'B', payload: string | undefined }; + +function f20({ kind, payload }: Action2) { + if (payload) { + if (kind === 'A') { + payload.toFixed(); + } + if (kind === 'B') { + payload.toUpperCase(); + } + } +} + +function f21(action: Action2) { + const { kind, payload } = action; + if (payload) { + if (kind === 'A') { + payload.toFixed(); + } + if (kind === 'B') { + payload.toUpperCase(); + } + } +} + +function f22(action: Action2) { + if (action.payload) { + const { kind, payload } = action; + if (kind === 'A') { + payload.toFixed(); + } + if (kind === 'B') { + payload.toUpperCase(); + } + } +} + +function f23({ kind, payload }: Action2) { + if (payload) { + switch (kind) { + case 'A': + payload.toFixed(); + break; + case 'B': + payload.toUpperCase(); + break; + default: + payload; // never + } + } +} + +type Foo = + | { kind: 'A', isA: true } + | { kind: 'B', isA: false } + | { kind: 'C', isA: false }; + +function f30({ kind, isA }: Foo) { + if (kind === 'A') { + isA; // true + } + if (kind === 'B') { + isA; // false + } + if (kind === 'C') { + isA; // false + } + if (isA) { + kind; // 'A' + } + else { + kind; // 'B' | 'C' + } +} + +type Args = ['A', number] | ['B', string] + +function f40(...[kind, data]: Args) { + if (kind === 'A') { + data.toFixed(); + } + if (kind === 'B') { + data.toUpperCase(); + } +} + +// Repro from #35283 + +interface A { variant: 'a', value: T } + +interface B { variant: 'b', value: Array } + +type AB = A | B; + +declare function printValue(t: T): void; + +declare function printValueList(t: Array): void; + +function unrefined1(ab: AB): void { + const { variant, value } = ab; + if (variant === 'a') { + printValue(value); + } + else { + printValueList(value); + } +} + +// Repro from #38020 + +type Action3 = + | {type: 'add', payload: { toAdd: number } } + | {type: 'remove', payload: { toRemove: number } }; + +const reducerBroken = (state: number, { type, payload }: Action3) => { + switch (type) { + case 'add': + return state + payload.toAdd; + case 'remove': + return state - payload.toRemove; + } +} + +// Repro from #46143 + +declare var it: Iterator; +const { value, done } = it.next(); +if (!done) { + value; // number +} + +// Repro from #46658 + +declare function f50(cb: (...args: Args) => void): void + +f50((kind, data) => { + if (kind === 'A') { + data.toFixed(); + } + if (kind === 'B') { + data.toUpperCase(); + } +}); + +const f51: (...args: ['A', number] | ['B', string]) => void = (kind, payload) => { + if (kind === 'A') { + payload.toFixed(); + } + if (kind === 'B') { + payload.toUpperCase(); + } +}; + +const f52: (...args: ['A', number] | ['B']) => void = (kind, payload?) => { + if (kind === 'A') { + payload.toFixed(); + } + else { + payload; // undefined + } +}; + +declare function readFile(path: string, callback: (...args: [err: null, data: unknown[]] | [err: Error, data: undefined]) => void): void; + +readFile('hello', (err, data) => { + if (err === null) { + data.length; + } + else { + err.message; + } +}); + +type ReducerArgs = ["add", { a: number, b: number }] | ["concat", { firstArr: any[], secondArr: any[] }]; + +const reducer: (...args: ReducerArgs) => void = (op, args) => { + switch (op) { + case "add": + console.log(args.a + args.b); + break; + case "concat": + console.log(args.firstArr.concat(args.secondArr)); + break; + } +} + +reducer("add", { a: 1, b: 3 }); +reducer("concat", { firstArr: [1, 2], secondArr: [3, 4] }); + +// repro from https://github.com/microsoft/TypeScript/pull/47190#issuecomment-1057603588 + +type FooMethod = { + method(...args: + [type: "str", cb: (e: string) => void] | + [type: "num", cb: (e: number) => void] + ): void; +} + +let fooM: FooMethod = { + method(type, cb) { + if (type == 'num') { + cb(123) + } else { + cb("abc") + } + } +}; + +type FooAsyncMethod = { + method(...args: + [type: "str", cb: (e: string) => void] | + [type: "num", cb: (e: number) => void] + ): Promise; +} + +let fooAsyncM: FooAsyncMethod = { + async method(type, cb) { + if (type == 'num') { + cb(123) + } else { + cb("abc") + } + } +}; + +type FooGenMethod = { + method(...args: + [type: "str", cb: (e: string) => void] | + [type: "num", cb: (e: number) => void] + ): Generator; +} + +let fooGenM: FooGenMethod = { + *method(type, cb) { + if (type == 'num') { + cb(123) + } else { + cb("abc") + } + } +}; + +type FooAsyncGenMethod = { + method(...args: + [type: "str", cb: (e: string) => void] | + [type: "num", cb: (e: number) => void] + ): AsyncGenerator; +} + +let fooAsyncGenM: FooAsyncGenMethod = { + async *method(type, cb) { + if (type == 'num') { + cb(123) + } else { + cb("abc") + } + } +}; + +// Repro from #48345 + +type Func = (...args: T) => void; + +const f60: Func = (kind, payload) => { + if (kind === "a") { + payload.toFixed(); // error + } + if (kind === "b") { + payload.toUpperCase(); // error + } +}; + + +//// [dependentDestructuredVariables.js] +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); } +var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) { + if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); + var g = generator.apply(thisArg, _arguments || []), i, q = []; + return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i; + function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; } + function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } } + function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); } + function fulfill(value) { resume("next", value); } + function reject(value) { resume("throw", value); } + function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); } +}; +function f10({ kind, payload }) { + if (kind === 'A') { + payload.toFixed(); + } + if (kind === 'B') { + payload.toUpperCase(); + } +} +function f11(action) { + const { kind, payload } = action; + if (kind === 'A') { + payload.toFixed(); + } + if (kind === 'B') { + payload.toUpperCase(); + } +} +function f12({ kind, payload }) { + switch (kind) { + case 'A': + payload.toFixed(); + break; + case 'B': + payload.toUpperCase(); + break; + default: + payload; // never + } +} +function f20({ kind, payload }) { + if (payload) { + if (kind === 'A') { + payload.toFixed(); + } + if (kind === 'B') { + payload.toUpperCase(); + } + } +} +function f21(action) { + const { kind, payload } = action; + if (payload) { + if (kind === 'A') { + payload.toFixed(); + } + if (kind === 'B') { + payload.toUpperCase(); + } + } +} +function f22(action) { + if (action.payload) { + const { kind, payload } = action; + if (kind === 'A') { + payload.toFixed(); + } + if (kind === 'B') { + payload.toUpperCase(); + } + } +} +function f23({ kind, payload }) { + if (payload) { + switch (kind) { + case 'A': + payload.toFixed(); + break; + case 'B': + payload.toUpperCase(); + break; + default: + payload; // never + } + } +} +function f30({ kind, isA }) { + if (kind === 'A') { + isA; // true + } + if (kind === 'B') { + isA; // false + } + if (kind === 'C') { + isA; // false + } + if (isA) { + kind; // 'A' + } + else { + kind; // 'B' | 'C' + } +} +function f40(...[kind, data]) { + if (kind === 'A') { + data.toFixed(); + } + if (kind === 'B') { + data.toUpperCase(); + } +} +function unrefined1(ab) { + const { variant, value } = ab; + if (variant === 'a') { + printValue(value); + } + else { + printValueList(value); + } +} +const reducerBroken = (state, { type, payload }) => { + switch (type) { + case 'add': + return state + payload.toAdd; + case 'remove': + return state - payload.toRemove; + } +}; +const { value, done } = it.next(); +if (!done) { + value; // number +} +f50((kind, data) => { + if (kind === 'A') { + data.toFixed(); + } + if (kind === 'B') { + data.toUpperCase(); + } +}); +const f51 = (kind, payload) => { + if (kind === 'A') { + payload.toFixed(); + } + if (kind === 'B') { + payload.toUpperCase(); + } +}; +const f52 = (kind, payload) => { + if (kind === 'A') { + payload.toFixed(); + } + else { + payload; // undefined + } +}; +readFile('hello', (err, data) => { + if (err === null) { + data.length; + } + else { + err.message; + } +}); +const reducer = (op, args) => { + switch (op) { + case "add": + console.log(args.a + args.b); + break; + case "concat": + console.log(args.firstArr.concat(args.secondArr)); + break; + } +}; +reducer("add", { a: 1, b: 3 }); +reducer("concat", { firstArr: [1, 2], secondArr: [3, 4] }); +let fooM = { + method(type, cb) { + if (type == 'num') { + cb(123); + } + else { + cb("abc"); + } + } +}; +let fooAsyncM = { + method(type, cb) { + return __awaiter(this, void 0, void 0, function* () { + if (type == 'num') { + cb(123); + } + else { + cb("abc"); + } + }); + } +}; +let fooGenM = { + *method(type, cb) { + if (type == 'num') { + cb(123); + } + else { + cb("abc"); + } + } +}; +let fooAsyncGenM = { + method(type, cb) { + return __asyncGenerator(this, arguments, function* method_1() { + if (type == 'num') { + cb(123); + } + else { + cb("abc"); + } + }); + } +}; +const f60 = (kind, payload) => { + if (kind === "a") { + payload.toFixed(); // error + } + if (kind === "b") { + payload.toUpperCase(); // error + } +}; + + +//// [dependentDestructuredVariables.d.ts] +declare type Action = { + kind: 'A'; + payload: number; +} | { + kind: 'B'; + payload: string; +}; +declare function f10({ kind, payload }: Action): void; +declare function f11(action: Action): void; +declare function f12({ kind, payload }: Action): void; +declare type Action2 = { + kind: 'A'; + payload: number | undefined; +} | { + kind: 'B'; + payload: string | undefined; +}; +declare function f20({ kind, payload }: Action2): void; +declare function f21(action: Action2): void; +declare function f22(action: Action2): void; +declare function f23({ kind, payload }: Action2): void; +declare type Foo = { + kind: 'A'; + isA: true; +} | { + kind: 'B'; + isA: false; +} | { + kind: 'C'; + isA: false; +}; +declare function f30({ kind, isA }: Foo): void; +declare type Args = ['A', number] | ['B', string]; +declare function f40(...[kind, data]: Args): void; +interface A { + variant: 'a'; + value: T; +} +interface B { + variant: 'b'; + value: Array; +} +declare type AB = A | B; +declare function printValue(t: T): void; +declare function printValueList(t: Array): void; +declare function unrefined1(ab: AB): void; +declare type Action3 = { + type: 'add'; + payload: { + toAdd: number; + }; +} | { + type: 'remove'; + payload: { + toRemove: number; + }; +}; +declare const reducerBroken: (state: number, { type, payload }: Action3) => number; +declare var it: Iterator; +declare const value: any, done: boolean | undefined; +declare function f50(cb: (...args: Args) => void): void; +declare const f51: (...args: ['A', number] | ['B', string]) => void; +declare const f52: (...args: ['A', number] | ['B']) => void; +declare function readFile(path: string, callback: (...args: [err: null, data: unknown[]] | [err: Error, data: undefined]) => void): void; +declare type ReducerArgs = ["add", { + a: number; + b: number; +}] | ["concat", { + firstArr: any[]; + secondArr: any[]; +}]; +declare const reducer: (...args: ReducerArgs) => void; +declare type FooMethod = { + method(...args: [ + type: "str", + cb: (e: string) => void + ] | [ + type: "num", + cb: (e: number) => void + ]): void; +}; +declare let fooM: FooMethod; +declare type FooAsyncMethod = { + method(...args: [ + type: "str", + cb: (e: string) => void + ] | [ + type: "num", + cb: (e: number) => void + ]): Promise; +}; +declare let fooAsyncM: FooAsyncMethod; +declare type FooGenMethod = { + method(...args: [ + type: "str", + cb: (e: string) => void + ] | [ + type: "num", + cb: (e: number) => void + ]): Generator; +}; +declare let fooGenM: FooGenMethod; +declare type FooAsyncGenMethod = { + method(...args: [ + type: "str", + cb: (e: string) => void + ] | [ + type: "num", + cb: (e: number) => void + ]): AsyncGenerator; +}; +declare let fooAsyncGenM: FooAsyncGenMethod; +declare type Func = (...args: T) => void; +declare const f60: Func; diff --git a/tests/baselines/reference/dependentDestructuredVariables.symbols b/tests/baselines/reference/dependentDestructuredVariables.symbols new file mode 100644 index 0000000000000..f859b5ee7566f --- /dev/null +++ b/tests/baselines/reference/dependentDestructuredVariables.symbols @@ -0,0 +1,786 @@ +=== tests/cases/conformance/controlFlow/dependentDestructuredVariables.ts === +type Action = +>Action : Symbol(Action, Decl(dependentDestructuredVariables.ts, 0, 0)) + + | { kind: 'A', payload: number } +>kind : Symbol(kind, Decl(dependentDestructuredVariables.ts, 1, 7)) +>payload : Symbol(payload, Decl(dependentDestructuredVariables.ts, 1, 18)) + + | { kind: 'B', payload: string }; +>kind : Symbol(kind, Decl(dependentDestructuredVariables.ts, 2, 7)) +>payload : Symbol(payload, Decl(dependentDestructuredVariables.ts, 2, 18)) + +function f10({ kind, payload }: Action) { +>f10 : Symbol(f10, Decl(dependentDestructuredVariables.ts, 2, 37)) +>kind : Symbol(kind, Decl(dependentDestructuredVariables.ts, 4, 14)) +>payload : Symbol(payload, Decl(dependentDestructuredVariables.ts, 4, 20)) +>Action : Symbol(Action, Decl(dependentDestructuredVariables.ts, 0, 0)) + + if (kind === 'A') { +>kind : Symbol(kind, Decl(dependentDestructuredVariables.ts, 4, 14)) + + payload.toFixed(); +>payload.toFixed : Symbol(Number.toFixed, Decl(lib.es5.d.ts, --, --)) +>payload : Symbol(payload, Decl(dependentDestructuredVariables.ts, 4, 20)) +>toFixed : Symbol(Number.toFixed, Decl(lib.es5.d.ts, --, --)) + } + if (kind === 'B') { +>kind : Symbol(kind, Decl(dependentDestructuredVariables.ts, 4, 14)) + + payload.toUpperCase(); +>payload.toUpperCase : Symbol(String.toUpperCase, Decl(lib.es5.d.ts, --, --)) +>payload : Symbol(payload, Decl(dependentDestructuredVariables.ts, 4, 20)) +>toUpperCase : Symbol(String.toUpperCase, Decl(lib.es5.d.ts, --, --)) + } +} + +function f11(action: Action) { +>f11 : Symbol(f11, Decl(dependentDestructuredVariables.ts, 11, 1)) +>action : Symbol(action, Decl(dependentDestructuredVariables.ts, 13, 13)) +>Action : Symbol(Action, Decl(dependentDestructuredVariables.ts, 0, 0)) + + const { kind, payload } = action; +>kind : Symbol(kind, Decl(dependentDestructuredVariables.ts, 14, 11)) +>payload : Symbol(payload, Decl(dependentDestructuredVariables.ts, 14, 17)) +>action : Symbol(action, Decl(dependentDestructuredVariables.ts, 13, 13)) + + if (kind === 'A') { +>kind : Symbol(kind, Decl(dependentDestructuredVariables.ts, 14, 11)) + + payload.toFixed(); +>payload.toFixed : Symbol(Number.toFixed, Decl(lib.es5.d.ts, --, --)) +>payload : Symbol(payload, Decl(dependentDestructuredVariables.ts, 14, 17)) +>toFixed : Symbol(Number.toFixed, Decl(lib.es5.d.ts, --, --)) + } + if (kind === 'B') { +>kind : Symbol(kind, Decl(dependentDestructuredVariables.ts, 14, 11)) + + payload.toUpperCase(); +>payload.toUpperCase : Symbol(String.toUpperCase, Decl(lib.es5.d.ts, --, --)) +>payload : Symbol(payload, Decl(dependentDestructuredVariables.ts, 14, 17)) +>toUpperCase : Symbol(String.toUpperCase, Decl(lib.es5.d.ts, --, --)) + } +} + +function f12({ kind, payload }: Action) { +>f12 : Symbol(f12, Decl(dependentDestructuredVariables.ts, 21, 1)) +>kind : Symbol(kind, Decl(dependentDestructuredVariables.ts, 23, 14)) +>payload : Symbol(payload, Decl(dependentDestructuredVariables.ts, 23, 20)) +>Action : Symbol(Action, Decl(dependentDestructuredVariables.ts, 0, 0)) + + switch (kind) { +>kind : Symbol(kind, Decl(dependentDestructuredVariables.ts, 23, 14)) + + case 'A': + payload.toFixed(); +>payload.toFixed : Symbol(Number.toFixed, Decl(lib.es5.d.ts, --, --)) +>payload : Symbol(payload, Decl(dependentDestructuredVariables.ts, 23, 20)) +>toFixed : Symbol(Number.toFixed, Decl(lib.es5.d.ts, --, --)) + + break; + case 'B': + payload.toUpperCase(); +>payload.toUpperCase : Symbol(String.toUpperCase, Decl(lib.es5.d.ts, --, --)) +>payload : Symbol(payload, Decl(dependentDestructuredVariables.ts, 23, 20)) +>toUpperCase : Symbol(String.toUpperCase, Decl(lib.es5.d.ts, --, --)) + + break; + default: + payload; // never +>payload : Symbol(payload, Decl(dependentDestructuredVariables.ts, 23, 20)) + } +} + +type Action2 = +>Action2 : Symbol(Action2, Decl(dependentDestructuredVariables.ts, 34, 1)) + + | { kind: 'A', payload: number | undefined } +>kind : Symbol(kind, Decl(dependentDestructuredVariables.ts, 37, 7)) +>payload : Symbol(payload, Decl(dependentDestructuredVariables.ts, 37, 18)) + + | { kind: 'B', payload: string | undefined }; +>kind : Symbol(kind, Decl(dependentDestructuredVariables.ts, 38, 7)) +>payload : Symbol(payload, Decl(dependentDestructuredVariables.ts, 38, 18)) + +function f20({ kind, payload }: Action2) { +>f20 : Symbol(f20, Decl(dependentDestructuredVariables.ts, 38, 49)) +>kind : Symbol(kind, Decl(dependentDestructuredVariables.ts, 40, 14)) +>payload : Symbol(payload, Decl(dependentDestructuredVariables.ts, 40, 20)) +>Action2 : Symbol(Action2, Decl(dependentDestructuredVariables.ts, 34, 1)) + + if (payload) { +>payload : Symbol(payload, Decl(dependentDestructuredVariables.ts, 40, 20)) + + if (kind === 'A') { +>kind : Symbol(kind, Decl(dependentDestructuredVariables.ts, 40, 14)) + + payload.toFixed(); +>payload.toFixed : Symbol(Number.toFixed, Decl(lib.es5.d.ts, --, --)) +>payload : Symbol(payload, Decl(dependentDestructuredVariables.ts, 40, 20)) +>toFixed : Symbol(Number.toFixed, Decl(lib.es5.d.ts, --, --)) + } + if (kind === 'B') { +>kind : Symbol(kind, Decl(dependentDestructuredVariables.ts, 40, 14)) + + payload.toUpperCase(); +>payload.toUpperCase : Symbol(String.toUpperCase, Decl(lib.es5.d.ts, --, --)) +>payload : Symbol(payload, Decl(dependentDestructuredVariables.ts, 40, 20)) +>toUpperCase : Symbol(String.toUpperCase, Decl(lib.es5.d.ts, --, --)) + } + } +} + +function f21(action: Action2) { +>f21 : Symbol(f21, Decl(dependentDestructuredVariables.ts, 49, 1)) +>action : Symbol(action, Decl(dependentDestructuredVariables.ts, 51, 13)) +>Action2 : Symbol(Action2, Decl(dependentDestructuredVariables.ts, 34, 1)) + + const { kind, payload } = action; +>kind : Symbol(kind, Decl(dependentDestructuredVariables.ts, 52, 11)) +>payload : Symbol(payload, Decl(dependentDestructuredVariables.ts, 52, 17)) +>action : Symbol(action, Decl(dependentDestructuredVariables.ts, 51, 13)) + + if (payload) { +>payload : Symbol(payload, Decl(dependentDestructuredVariables.ts, 52, 17)) + + if (kind === 'A') { +>kind : Symbol(kind, Decl(dependentDestructuredVariables.ts, 52, 11)) + + payload.toFixed(); +>payload.toFixed : Symbol(Number.toFixed, Decl(lib.es5.d.ts, --, --)) +>payload : Symbol(payload, Decl(dependentDestructuredVariables.ts, 52, 17)) +>toFixed : Symbol(Number.toFixed, Decl(lib.es5.d.ts, --, --)) + } + if (kind === 'B') { +>kind : Symbol(kind, Decl(dependentDestructuredVariables.ts, 52, 11)) + + payload.toUpperCase(); +>payload.toUpperCase : Symbol(String.toUpperCase, Decl(lib.es5.d.ts, --, --)) +>payload : Symbol(payload, Decl(dependentDestructuredVariables.ts, 52, 17)) +>toUpperCase : Symbol(String.toUpperCase, Decl(lib.es5.d.ts, --, --)) + } + } +} + +function f22(action: Action2) { +>f22 : Symbol(f22, Decl(dependentDestructuredVariables.ts, 61, 1)) +>action : Symbol(action, Decl(dependentDestructuredVariables.ts, 63, 13)) +>Action2 : Symbol(Action2, Decl(dependentDestructuredVariables.ts, 34, 1)) + + if (action.payload) { +>action.payload : Symbol(payload, Decl(dependentDestructuredVariables.ts, 37, 18), Decl(dependentDestructuredVariables.ts, 38, 18)) +>action : Symbol(action, Decl(dependentDestructuredVariables.ts, 63, 13)) +>payload : Symbol(payload, Decl(dependentDestructuredVariables.ts, 37, 18), Decl(dependentDestructuredVariables.ts, 38, 18)) + + const { kind, payload } = action; +>kind : Symbol(kind, Decl(dependentDestructuredVariables.ts, 65, 15)) +>payload : Symbol(payload, Decl(dependentDestructuredVariables.ts, 65, 21)) +>action : Symbol(action, Decl(dependentDestructuredVariables.ts, 63, 13)) + + if (kind === 'A') { +>kind : Symbol(kind, Decl(dependentDestructuredVariables.ts, 65, 15)) + + payload.toFixed(); +>payload.toFixed : Symbol(Number.toFixed, Decl(lib.es5.d.ts, --, --)) +>payload : Symbol(payload, Decl(dependentDestructuredVariables.ts, 65, 21)) +>toFixed : Symbol(Number.toFixed, Decl(lib.es5.d.ts, --, --)) + } + if (kind === 'B') { +>kind : Symbol(kind, Decl(dependentDestructuredVariables.ts, 65, 15)) + + payload.toUpperCase(); +>payload.toUpperCase : Symbol(String.toUpperCase, Decl(lib.es5.d.ts, --, --)) +>payload : Symbol(payload, Decl(dependentDestructuredVariables.ts, 65, 21)) +>toUpperCase : Symbol(String.toUpperCase, Decl(lib.es5.d.ts, --, --)) + } + } +} + +function f23({ kind, payload }: Action2) { +>f23 : Symbol(f23, Decl(dependentDestructuredVariables.ts, 73, 1)) +>kind : Symbol(kind, Decl(dependentDestructuredVariables.ts, 75, 14)) +>payload : Symbol(payload, Decl(dependentDestructuredVariables.ts, 75, 20)) +>Action2 : Symbol(Action2, Decl(dependentDestructuredVariables.ts, 34, 1)) + + if (payload) { +>payload : Symbol(payload, Decl(dependentDestructuredVariables.ts, 75, 20)) + + switch (kind) { +>kind : Symbol(kind, Decl(dependentDestructuredVariables.ts, 75, 14)) + + case 'A': + payload.toFixed(); +>payload.toFixed : Symbol(Number.toFixed, Decl(lib.es5.d.ts, --, --)) +>payload : Symbol(payload, Decl(dependentDestructuredVariables.ts, 75, 20)) +>toFixed : Symbol(Number.toFixed, Decl(lib.es5.d.ts, --, --)) + + break; + case 'B': + payload.toUpperCase(); +>payload.toUpperCase : Symbol(String.toUpperCase, Decl(lib.es5.d.ts, --, --)) +>payload : Symbol(payload, Decl(dependentDestructuredVariables.ts, 75, 20)) +>toUpperCase : Symbol(String.toUpperCase, Decl(lib.es5.d.ts, --, --)) + + break; + default: + payload; // never +>payload : Symbol(payload, Decl(dependentDestructuredVariables.ts, 75, 20)) + } + } +} + +type Foo = +>Foo : Symbol(Foo, Decl(dependentDestructuredVariables.ts, 88, 1)) + + | { kind: 'A', isA: true } +>kind : Symbol(kind, Decl(dependentDestructuredVariables.ts, 91, 7)) +>isA : Symbol(isA, Decl(dependentDestructuredVariables.ts, 91, 18)) + + | { kind: 'B', isA: false } +>kind : Symbol(kind, Decl(dependentDestructuredVariables.ts, 92, 7)) +>isA : Symbol(isA, Decl(dependentDestructuredVariables.ts, 92, 18)) + + | { kind: 'C', isA: false }; +>kind : Symbol(kind, Decl(dependentDestructuredVariables.ts, 93, 7)) +>isA : Symbol(isA, Decl(dependentDestructuredVariables.ts, 93, 18)) + +function f30({ kind, isA }: Foo) { +>f30 : Symbol(f30, Decl(dependentDestructuredVariables.ts, 93, 32)) +>kind : Symbol(kind, Decl(dependentDestructuredVariables.ts, 95, 14)) +>isA : Symbol(isA, Decl(dependentDestructuredVariables.ts, 95, 20)) +>Foo : Symbol(Foo, Decl(dependentDestructuredVariables.ts, 88, 1)) + + if (kind === 'A') { +>kind : Symbol(kind, Decl(dependentDestructuredVariables.ts, 95, 14)) + + isA; // true +>isA : Symbol(isA, Decl(dependentDestructuredVariables.ts, 95, 20)) + } + if (kind === 'B') { +>kind : Symbol(kind, Decl(dependentDestructuredVariables.ts, 95, 14)) + + isA; // false +>isA : Symbol(isA, Decl(dependentDestructuredVariables.ts, 95, 20)) + } + if (kind === 'C') { +>kind : Symbol(kind, Decl(dependentDestructuredVariables.ts, 95, 14)) + + isA; // false +>isA : Symbol(isA, Decl(dependentDestructuredVariables.ts, 95, 20)) + } + if (isA) { +>isA : Symbol(isA, Decl(dependentDestructuredVariables.ts, 95, 20)) + + kind; // 'A' +>kind : Symbol(kind, Decl(dependentDestructuredVariables.ts, 95, 14)) + } + else { + kind; // 'B' | 'C' +>kind : Symbol(kind, Decl(dependentDestructuredVariables.ts, 95, 14)) + } +} + +type Args = ['A', number] | ['B', string] +>Args : Symbol(Args, Decl(dependentDestructuredVariables.ts, 111, 1)) + +function f40(...[kind, data]: Args) { +>f40 : Symbol(f40, Decl(dependentDestructuredVariables.ts, 113, 41)) +>kind : Symbol(kind, Decl(dependentDestructuredVariables.ts, 115, 17)) +>data : Symbol(data, Decl(dependentDestructuredVariables.ts, 115, 22)) +>Args : Symbol(Args, Decl(dependentDestructuredVariables.ts, 111, 1)) + + if (kind === 'A') { +>kind : Symbol(kind, Decl(dependentDestructuredVariables.ts, 115, 17)) + + data.toFixed(); +>data.toFixed : Symbol(Number.toFixed, Decl(lib.es5.d.ts, --, --)) +>data : Symbol(data, Decl(dependentDestructuredVariables.ts, 115, 22)) +>toFixed : Symbol(Number.toFixed, Decl(lib.es5.d.ts, --, --)) + } + if (kind === 'B') { +>kind : Symbol(kind, Decl(dependentDestructuredVariables.ts, 115, 17)) + + data.toUpperCase(); +>data.toUpperCase : Symbol(String.toUpperCase, Decl(lib.es5.d.ts, --, --)) +>data : Symbol(data, Decl(dependentDestructuredVariables.ts, 115, 22)) +>toUpperCase : Symbol(String.toUpperCase, Decl(lib.es5.d.ts, --, --)) + } +} + +// Repro from #35283 + +interface A { variant: 'a', value: T } +>A : Symbol(A, Decl(dependentDestructuredVariables.ts, 122, 1)) +>T : Symbol(T, Decl(dependentDestructuredVariables.ts, 126, 12)) +>variant : Symbol(A.variant, Decl(dependentDestructuredVariables.ts, 126, 16)) +>value : Symbol(A.value, Decl(dependentDestructuredVariables.ts, 126, 30)) +>T : Symbol(T, Decl(dependentDestructuredVariables.ts, 126, 12)) + +interface B { variant: 'b', value: Array } +>B : Symbol(B, Decl(dependentDestructuredVariables.ts, 126, 41)) +>T : Symbol(T, Decl(dependentDestructuredVariables.ts, 128, 12)) +>variant : Symbol(B.variant, Decl(dependentDestructuredVariables.ts, 128, 16)) +>value : Symbol(B.value, Decl(dependentDestructuredVariables.ts, 128, 30)) +>Array : Symbol(Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --) ... and 3 more) +>T : Symbol(T, Decl(dependentDestructuredVariables.ts, 128, 12)) + +type AB = A | B; +>AB : Symbol(AB, Decl(dependentDestructuredVariables.ts, 128, 48)) +>T : Symbol(T, Decl(dependentDestructuredVariables.ts, 130, 8)) +>A : Symbol(A, Decl(dependentDestructuredVariables.ts, 122, 1)) +>T : Symbol(T, Decl(dependentDestructuredVariables.ts, 130, 8)) +>B : Symbol(B, Decl(dependentDestructuredVariables.ts, 126, 41)) +>T : Symbol(T, Decl(dependentDestructuredVariables.ts, 130, 8)) + +declare function printValue(t: T): void; +>printValue : Symbol(printValue, Decl(dependentDestructuredVariables.ts, 130, 25)) +>T : Symbol(T, Decl(dependentDestructuredVariables.ts, 132, 28)) +>t : Symbol(t, Decl(dependentDestructuredVariables.ts, 132, 31)) +>T : Symbol(T, Decl(dependentDestructuredVariables.ts, 132, 28)) + +declare function printValueList(t: Array): void; +>printValueList : Symbol(printValueList, Decl(dependentDestructuredVariables.ts, 132, 43)) +>T : Symbol(T, Decl(dependentDestructuredVariables.ts, 134, 32)) +>t : Symbol(t, Decl(dependentDestructuredVariables.ts, 134, 35)) +>Array : Symbol(Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --) ... and 3 more) +>T : Symbol(T, Decl(dependentDestructuredVariables.ts, 134, 32)) + +function unrefined1(ab: AB): void { +>unrefined1 : Symbol(unrefined1, Decl(dependentDestructuredVariables.ts, 134, 54)) +>T : Symbol(T, Decl(dependentDestructuredVariables.ts, 136, 20)) +>ab : Symbol(ab, Decl(dependentDestructuredVariables.ts, 136, 23)) +>AB : Symbol(AB, Decl(dependentDestructuredVariables.ts, 128, 48)) +>T : Symbol(T, Decl(dependentDestructuredVariables.ts, 136, 20)) + + const { variant, value } = ab; +>variant : Symbol(variant, Decl(dependentDestructuredVariables.ts, 137, 11)) +>value : Symbol(value, Decl(dependentDestructuredVariables.ts, 137, 20)) +>ab : Symbol(ab, Decl(dependentDestructuredVariables.ts, 136, 23)) + + if (variant === 'a') { +>variant : Symbol(variant, Decl(dependentDestructuredVariables.ts, 137, 11)) + + printValue(value); +>printValue : Symbol(printValue, Decl(dependentDestructuredVariables.ts, 130, 25)) +>T : Symbol(T, Decl(dependentDestructuredVariables.ts, 136, 20)) +>value : Symbol(value, Decl(dependentDestructuredVariables.ts, 137, 20)) + } + else { + printValueList(value); +>printValueList : Symbol(printValueList, Decl(dependentDestructuredVariables.ts, 132, 43)) +>T : Symbol(T, Decl(dependentDestructuredVariables.ts, 136, 20)) +>value : Symbol(value, Decl(dependentDestructuredVariables.ts, 137, 20)) + } +} + +// Repro from #38020 + +type Action3 = +>Action3 : Symbol(Action3, Decl(dependentDestructuredVariables.ts, 144, 1)) + + | {type: 'add', payload: { toAdd: number } } +>type : Symbol(type, Decl(dependentDestructuredVariables.ts, 149, 7)) +>payload : Symbol(payload, Decl(dependentDestructuredVariables.ts, 149, 19)) +>toAdd : Symbol(toAdd, Decl(dependentDestructuredVariables.ts, 149, 30)) + + | {type: 'remove', payload: { toRemove: number } }; +>type : Symbol(type, Decl(dependentDestructuredVariables.ts, 150, 7)) +>payload : Symbol(payload, Decl(dependentDestructuredVariables.ts, 150, 22)) +>toRemove : Symbol(toRemove, Decl(dependentDestructuredVariables.ts, 150, 33)) + +const reducerBroken = (state: number, { type, payload }: Action3) => { +>reducerBroken : Symbol(reducerBroken, Decl(dependentDestructuredVariables.ts, 152, 5)) +>state : Symbol(state, Decl(dependentDestructuredVariables.ts, 152, 23)) +>type : Symbol(type, Decl(dependentDestructuredVariables.ts, 152, 39)) +>payload : Symbol(payload, Decl(dependentDestructuredVariables.ts, 152, 45)) +>Action3 : Symbol(Action3, Decl(dependentDestructuredVariables.ts, 144, 1)) + + switch (type) { +>type : Symbol(type, Decl(dependentDestructuredVariables.ts, 152, 39)) + + case 'add': + return state + payload.toAdd; +>state : Symbol(state, Decl(dependentDestructuredVariables.ts, 152, 23)) +>payload.toAdd : Symbol(toAdd, Decl(dependentDestructuredVariables.ts, 149, 30)) +>payload : Symbol(payload, Decl(dependentDestructuredVariables.ts, 152, 45)) +>toAdd : Symbol(toAdd, Decl(dependentDestructuredVariables.ts, 149, 30)) + + case 'remove': + return state - payload.toRemove; +>state : Symbol(state, Decl(dependentDestructuredVariables.ts, 152, 23)) +>payload.toRemove : Symbol(toRemove, Decl(dependentDestructuredVariables.ts, 150, 33)) +>payload : Symbol(payload, Decl(dependentDestructuredVariables.ts, 152, 45)) +>toRemove : Symbol(toRemove, Decl(dependentDestructuredVariables.ts, 150, 33)) + } +} + +// Repro from #46143 + +declare var it: Iterator; +>it : Symbol(it, Decl(dependentDestructuredVariables.ts, 163, 11)) +>Iterator : Symbol(Iterator, Decl(lib.es2015.iterable.d.ts, --, --)) + +const { value, done } = it.next(); +>value : Symbol(value, Decl(dependentDestructuredVariables.ts, 164, 7)) +>done : Symbol(done, Decl(dependentDestructuredVariables.ts, 164, 14)) +>it.next : Symbol(Iterator.next, Decl(lib.es2015.iterable.d.ts, --, --)) +>it : Symbol(it, Decl(dependentDestructuredVariables.ts, 163, 11)) +>next : Symbol(Iterator.next, Decl(lib.es2015.iterable.d.ts, --, --)) + +if (!done) { +>done : Symbol(done, Decl(dependentDestructuredVariables.ts, 164, 14)) + + value; // number +>value : Symbol(value, Decl(dependentDestructuredVariables.ts, 164, 7)) +} + +// Repro from #46658 + +declare function f50(cb: (...args: Args) => void): void +>f50 : Symbol(f50, Decl(dependentDestructuredVariables.ts, 167, 1)) +>cb : Symbol(cb, Decl(dependentDestructuredVariables.ts, 171, 21)) +>args : Symbol(args, Decl(dependentDestructuredVariables.ts, 171, 26)) +>Args : Symbol(Args, Decl(dependentDestructuredVariables.ts, 111, 1)) + +f50((kind, data) => { +>f50 : Symbol(f50, Decl(dependentDestructuredVariables.ts, 167, 1)) +>kind : Symbol(kind, Decl(dependentDestructuredVariables.ts, 173, 5)) +>data : Symbol(data, Decl(dependentDestructuredVariables.ts, 173, 10)) + + if (kind === 'A') { +>kind : Symbol(kind, Decl(dependentDestructuredVariables.ts, 173, 5)) + + data.toFixed(); +>data.toFixed : Symbol(Number.toFixed, Decl(lib.es5.d.ts, --, --)) +>data : Symbol(data, Decl(dependentDestructuredVariables.ts, 173, 10)) +>toFixed : Symbol(Number.toFixed, Decl(lib.es5.d.ts, --, --)) + } + if (kind === 'B') { +>kind : Symbol(kind, Decl(dependentDestructuredVariables.ts, 173, 5)) + + data.toUpperCase(); +>data.toUpperCase : Symbol(String.toUpperCase, Decl(lib.es5.d.ts, --, --)) +>data : Symbol(data, Decl(dependentDestructuredVariables.ts, 173, 10)) +>toUpperCase : Symbol(String.toUpperCase, Decl(lib.es5.d.ts, --, --)) + } +}); + +const f51: (...args: ['A', number] | ['B', string]) => void = (kind, payload) => { +>f51 : Symbol(f51, Decl(dependentDestructuredVariables.ts, 182, 5)) +>args : Symbol(args, Decl(dependentDestructuredVariables.ts, 182, 12)) +>kind : Symbol(kind, Decl(dependentDestructuredVariables.ts, 182, 63)) +>payload : Symbol(payload, Decl(dependentDestructuredVariables.ts, 182, 68)) + + if (kind === 'A') { +>kind : Symbol(kind, Decl(dependentDestructuredVariables.ts, 182, 63)) + + payload.toFixed(); +>payload.toFixed : Symbol(Number.toFixed, Decl(lib.es5.d.ts, --, --)) +>payload : Symbol(payload, Decl(dependentDestructuredVariables.ts, 182, 68)) +>toFixed : Symbol(Number.toFixed, Decl(lib.es5.d.ts, --, --)) + } + if (kind === 'B') { +>kind : Symbol(kind, Decl(dependentDestructuredVariables.ts, 182, 63)) + + payload.toUpperCase(); +>payload.toUpperCase : Symbol(String.toUpperCase, Decl(lib.es5.d.ts, --, --)) +>payload : Symbol(payload, Decl(dependentDestructuredVariables.ts, 182, 68)) +>toUpperCase : Symbol(String.toUpperCase, Decl(lib.es5.d.ts, --, --)) + } +}; + +const f52: (...args: ['A', number] | ['B']) => void = (kind, payload?) => { +>f52 : Symbol(f52, Decl(dependentDestructuredVariables.ts, 191, 5)) +>args : Symbol(args, Decl(dependentDestructuredVariables.ts, 191, 12)) +>kind : Symbol(kind, Decl(dependentDestructuredVariables.ts, 191, 55)) +>payload : Symbol(payload, Decl(dependentDestructuredVariables.ts, 191, 60)) + + if (kind === 'A') { +>kind : Symbol(kind, Decl(dependentDestructuredVariables.ts, 191, 55)) + + payload.toFixed(); +>payload.toFixed : Symbol(Number.toFixed, Decl(lib.es5.d.ts, --, --)) +>payload : Symbol(payload, Decl(dependentDestructuredVariables.ts, 191, 60)) +>toFixed : Symbol(Number.toFixed, Decl(lib.es5.d.ts, --, --)) + } + else { + payload; // undefined +>payload : Symbol(payload, Decl(dependentDestructuredVariables.ts, 191, 60)) + } +}; + +declare function readFile(path: string, callback: (...args: [err: null, data: unknown[]] | [err: Error, data: undefined]) => void): void; +>readFile : Symbol(readFile, Decl(dependentDestructuredVariables.ts, 198, 2)) +>path : Symbol(path, Decl(dependentDestructuredVariables.ts, 200, 26)) +>callback : Symbol(callback, Decl(dependentDestructuredVariables.ts, 200, 39)) +>args : Symbol(args, Decl(dependentDestructuredVariables.ts, 200, 51)) +>Error : Symbol(Error, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2022.error.d.ts, --, --)) + +readFile('hello', (err, data) => { +>readFile : Symbol(readFile, Decl(dependentDestructuredVariables.ts, 198, 2)) +>err : Symbol(err, Decl(dependentDestructuredVariables.ts, 202, 19)) +>data : Symbol(data, Decl(dependentDestructuredVariables.ts, 202, 23)) + + if (err === null) { +>err : Symbol(err, Decl(dependentDestructuredVariables.ts, 202, 19)) + + data.length; +>data.length : Symbol(Array.length, Decl(lib.es5.d.ts, --, --)) +>data : Symbol(data, Decl(dependentDestructuredVariables.ts, 202, 23)) +>length : Symbol(Array.length, Decl(lib.es5.d.ts, --, --)) + } + else { + err.message; +>err.message : Symbol(Error.message, Decl(lib.es5.d.ts, --, --)) +>err : Symbol(err, Decl(dependentDestructuredVariables.ts, 202, 19)) +>message : Symbol(Error.message, Decl(lib.es5.d.ts, --, --)) + } +}); + +type ReducerArgs = ["add", { a: number, b: number }] | ["concat", { firstArr: any[], secondArr: any[] }]; +>ReducerArgs : Symbol(ReducerArgs, Decl(dependentDestructuredVariables.ts, 209, 3)) +>a : Symbol(a, Decl(dependentDestructuredVariables.ts, 211, 28)) +>b : Symbol(b, Decl(dependentDestructuredVariables.ts, 211, 39)) +>firstArr : Symbol(firstArr, Decl(dependentDestructuredVariables.ts, 211, 67)) +>secondArr : Symbol(secondArr, Decl(dependentDestructuredVariables.ts, 211, 84)) + +const reducer: (...args: ReducerArgs) => void = (op, args) => { +>reducer : Symbol(reducer, Decl(dependentDestructuredVariables.ts, 213, 5)) +>args : Symbol(args, Decl(dependentDestructuredVariables.ts, 213, 16)) +>ReducerArgs : Symbol(ReducerArgs, Decl(dependentDestructuredVariables.ts, 209, 3)) +>op : Symbol(op, Decl(dependentDestructuredVariables.ts, 213, 49)) +>args : Symbol(args, Decl(dependentDestructuredVariables.ts, 213, 52)) + + switch (op) { +>op : Symbol(op, Decl(dependentDestructuredVariables.ts, 213, 49)) + + case "add": + console.log(args.a + args.b); +>console.log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>console : Symbol(console, Decl(lib.dom.d.ts, --, --)) +>log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>args.a : Symbol(a, Decl(dependentDestructuredVariables.ts, 211, 28)) +>args : Symbol(args, Decl(dependentDestructuredVariables.ts, 213, 52)) +>a : Symbol(a, Decl(dependentDestructuredVariables.ts, 211, 28)) +>args.b : Symbol(b, Decl(dependentDestructuredVariables.ts, 211, 39)) +>args : Symbol(args, Decl(dependentDestructuredVariables.ts, 213, 52)) +>b : Symbol(b, Decl(dependentDestructuredVariables.ts, 211, 39)) + + break; + case "concat": + console.log(args.firstArr.concat(args.secondArr)); +>console.log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>console : Symbol(console, Decl(lib.dom.d.ts, --, --)) +>log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>args.firstArr.concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>args.firstArr : Symbol(firstArr, Decl(dependentDestructuredVariables.ts, 211, 67)) +>args : Symbol(args, Decl(dependentDestructuredVariables.ts, 213, 52)) +>firstArr : Symbol(firstArr, Decl(dependentDestructuredVariables.ts, 211, 67)) +>concat : Symbol(Array.concat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>args.secondArr : Symbol(secondArr, Decl(dependentDestructuredVariables.ts, 211, 84)) +>args : Symbol(args, Decl(dependentDestructuredVariables.ts, 213, 52)) +>secondArr : Symbol(secondArr, Decl(dependentDestructuredVariables.ts, 211, 84)) + + break; + } +} + +reducer("add", { a: 1, b: 3 }); +>reducer : Symbol(reducer, Decl(dependentDestructuredVariables.ts, 213, 5)) +>a : Symbol(a, Decl(dependentDestructuredVariables.ts, 224, 16)) +>b : Symbol(b, Decl(dependentDestructuredVariables.ts, 224, 22)) + +reducer("concat", { firstArr: [1, 2], secondArr: [3, 4] }); +>reducer : Symbol(reducer, Decl(dependentDestructuredVariables.ts, 213, 5)) +>firstArr : Symbol(firstArr, Decl(dependentDestructuredVariables.ts, 225, 19)) +>secondArr : Symbol(secondArr, Decl(dependentDestructuredVariables.ts, 225, 37)) + +// repro from https://github.com/microsoft/TypeScript/pull/47190#issuecomment-1057603588 + +type FooMethod = { +>FooMethod : Symbol(FooMethod, Decl(dependentDestructuredVariables.ts, 225, 59)) + + method(...args: +>method : Symbol(method, Decl(dependentDestructuredVariables.ts, 229, 18)) +>args : Symbol(args, Decl(dependentDestructuredVariables.ts, 230, 9)) + + [type: "str", cb: (e: string) => void] | +>e : Symbol(e, Decl(dependentDestructuredVariables.ts, 231, 23)) + + [type: "num", cb: (e: number) => void] +>e : Symbol(e, Decl(dependentDestructuredVariables.ts, 232, 23)) + + ): void; +} + +let fooM: FooMethod = { +>fooM : Symbol(fooM, Decl(dependentDestructuredVariables.ts, 236, 3)) +>FooMethod : Symbol(FooMethod, Decl(dependentDestructuredVariables.ts, 225, 59)) + + method(type, cb) { +>method : Symbol(method, Decl(dependentDestructuredVariables.ts, 236, 23)) +>type : Symbol(type, Decl(dependentDestructuredVariables.ts, 237, 9)) +>cb : Symbol(cb, Decl(dependentDestructuredVariables.ts, 237, 14)) + + if (type == 'num') { +>type : Symbol(type, Decl(dependentDestructuredVariables.ts, 237, 9)) + + cb(123) +>cb : Symbol(cb, Decl(dependentDestructuredVariables.ts, 237, 14)) + + } else { + cb("abc") +>cb : Symbol(cb, Decl(dependentDestructuredVariables.ts, 237, 14)) + } + } +}; + +type FooAsyncMethod = { +>FooAsyncMethod : Symbol(FooAsyncMethod, Decl(dependentDestructuredVariables.ts, 244, 2)) + + method(...args: +>method : Symbol(method, Decl(dependentDestructuredVariables.ts, 246, 23)) +>args : Symbol(args, Decl(dependentDestructuredVariables.ts, 247, 9)) + + [type: "str", cb: (e: string) => void] | +>e : Symbol(e, Decl(dependentDestructuredVariables.ts, 248, 23)) + + [type: "num", cb: (e: number) => void] +>e : Symbol(e, Decl(dependentDestructuredVariables.ts, 249, 23)) + + ): Promise; +>Promise : Symbol(Promise, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2018.promise.d.ts, --, --)) +} + +let fooAsyncM: FooAsyncMethod = { +>fooAsyncM : Symbol(fooAsyncM, Decl(dependentDestructuredVariables.ts, 253, 3)) +>FooAsyncMethod : Symbol(FooAsyncMethod, Decl(dependentDestructuredVariables.ts, 244, 2)) + + async method(type, cb) { +>method : Symbol(method, Decl(dependentDestructuredVariables.ts, 253, 33)) +>type : Symbol(type, Decl(dependentDestructuredVariables.ts, 254, 15)) +>cb : Symbol(cb, Decl(dependentDestructuredVariables.ts, 254, 20)) + + if (type == 'num') { +>type : Symbol(type, Decl(dependentDestructuredVariables.ts, 254, 15)) + + cb(123) +>cb : Symbol(cb, Decl(dependentDestructuredVariables.ts, 254, 20)) + + } else { + cb("abc") +>cb : Symbol(cb, Decl(dependentDestructuredVariables.ts, 254, 20)) + } + } +}; + +type FooGenMethod = { +>FooGenMethod : Symbol(FooGenMethod, Decl(dependentDestructuredVariables.ts, 261, 2)) + + method(...args: +>method : Symbol(method, Decl(dependentDestructuredVariables.ts, 263, 21)) +>args : Symbol(args, Decl(dependentDestructuredVariables.ts, 264, 9)) + + [type: "str", cb: (e: string) => void] | +>e : Symbol(e, Decl(dependentDestructuredVariables.ts, 265, 23)) + + [type: "num", cb: (e: number) => void] +>e : Symbol(e, Decl(dependentDestructuredVariables.ts, 266, 23)) + + ): Generator; +>Generator : Symbol(Generator, Decl(lib.es2015.generator.d.ts, --, --)) +} + +let fooGenM: FooGenMethod = { +>fooGenM : Symbol(fooGenM, Decl(dependentDestructuredVariables.ts, 270, 3)) +>FooGenMethod : Symbol(FooGenMethod, Decl(dependentDestructuredVariables.ts, 261, 2)) + + *method(type, cb) { +>method : Symbol(method, Decl(dependentDestructuredVariables.ts, 270, 29)) +>type : Symbol(type, Decl(dependentDestructuredVariables.ts, 271, 10)) +>cb : Symbol(cb, Decl(dependentDestructuredVariables.ts, 271, 15)) + + if (type == 'num') { +>type : Symbol(type, Decl(dependentDestructuredVariables.ts, 271, 10)) + + cb(123) +>cb : Symbol(cb, Decl(dependentDestructuredVariables.ts, 271, 15)) + + } else { + cb("abc") +>cb : Symbol(cb, Decl(dependentDestructuredVariables.ts, 271, 15)) + } + } +}; + +type FooAsyncGenMethod = { +>FooAsyncGenMethod : Symbol(FooAsyncGenMethod, Decl(dependentDestructuredVariables.ts, 278, 2)) + + method(...args: +>method : Symbol(method, Decl(dependentDestructuredVariables.ts, 280, 26)) +>args : Symbol(args, Decl(dependentDestructuredVariables.ts, 281, 9)) + + [type: "str", cb: (e: string) => void] | +>e : Symbol(e, Decl(dependentDestructuredVariables.ts, 282, 23)) + + [type: "num", cb: (e: number) => void] +>e : Symbol(e, Decl(dependentDestructuredVariables.ts, 283, 23)) + + ): AsyncGenerator; +>AsyncGenerator : Symbol(AsyncGenerator, Decl(lib.es2018.asyncgenerator.d.ts, --, --)) +} + +let fooAsyncGenM: FooAsyncGenMethod = { +>fooAsyncGenM : Symbol(fooAsyncGenM, Decl(dependentDestructuredVariables.ts, 287, 3)) +>FooAsyncGenMethod : Symbol(FooAsyncGenMethod, Decl(dependentDestructuredVariables.ts, 278, 2)) + + async *method(type, cb) { +>method : Symbol(method, Decl(dependentDestructuredVariables.ts, 287, 39)) +>type : Symbol(type, Decl(dependentDestructuredVariables.ts, 288, 16)) +>cb : Symbol(cb, Decl(dependentDestructuredVariables.ts, 288, 21)) + + if (type == 'num') { +>type : Symbol(type, Decl(dependentDestructuredVariables.ts, 288, 16)) + + cb(123) +>cb : Symbol(cb, Decl(dependentDestructuredVariables.ts, 288, 21)) + + } else { + cb("abc") +>cb : Symbol(cb, Decl(dependentDestructuredVariables.ts, 288, 21)) + } + } +}; + +// Repro from #48345 + +type Func = (...args: T) => void; +>Func : Symbol(Func, Decl(dependentDestructuredVariables.ts, 295, 2)) +>T : Symbol(T, Decl(dependentDestructuredVariables.ts, 299, 13)) +>args : Symbol(args, Decl(dependentDestructuredVariables.ts, 299, 54)) +>T : Symbol(T, Decl(dependentDestructuredVariables.ts, 299, 13)) + +const f60: Func = (kind, payload) => { +>f60 : Symbol(f60, Decl(dependentDestructuredVariables.ts, 301, 5)) +>Func : Symbol(Func, Decl(dependentDestructuredVariables.ts, 295, 2)) +>kind : Symbol(kind, Decl(dependentDestructuredVariables.ts, 301, 19)) +>payload : Symbol(payload, Decl(dependentDestructuredVariables.ts, 301, 24)) + + if (kind === "a") { +>kind : Symbol(kind, Decl(dependentDestructuredVariables.ts, 301, 19)) + + payload.toFixed(); // error +>payload.toFixed : Symbol(Number.toFixed, Decl(lib.es5.d.ts, --, --)) +>payload : Symbol(payload, Decl(dependentDestructuredVariables.ts, 301, 24)) +>toFixed : Symbol(Number.toFixed, Decl(lib.es5.d.ts, --, --)) + } + if (kind === "b") { +>kind : Symbol(kind, Decl(dependentDestructuredVariables.ts, 301, 19)) + + payload.toUpperCase(); // error +>payload.toUpperCase : Symbol(String.toUpperCase, Decl(lib.es5.d.ts, --, --)) +>payload : Symbol(payload, Decl(dependentDestructuredVariables.ts, 301, 24)) +>toUpperCase : Symbol(String.toUpperCase, Decl(lib.es5.d.ts, --, --)) + } +}; + diff --git a/tests/baselines/reference/dependentDestructuredVariables.types b/tests/baselines/reference/dependentDestructuredVariables.types new file mode 100644 index 0000000000000..bfc8a5f2fb882 --- /dev/null +++ b/tests/baselines/reference/dependentDestructuredVariables.types @@ -0,0 +1,893 @@ +=== tests/cases/conformance/controlFlow/dependentDestructuredVariables.ts === +type Action = +>Action : Action + + | { kind: 'A', payload: number } +>kind : "A" +>payload : number + + | { kind: 'B', payload: string }; +>kind : "B" +>payload : string + +function f10({ kind, payload }: Action) { +>f10 : ({ kind, payload }: Action) => void +>kind : "A" | "B" +>payload : string | number + + if (kind === 'A') { +>kind === 'A' : boolean +>kind : "A" | "B" +>'A' : "A" + + payload.toFixed(); +>payload.toFixed() : string +>payload.toFixed : (fractionDigits?: number | undefined) => string +>payload : number +>toFixed : (fractionDigits?: number | undefined) => string + } + if (kind === 'B') { +>kind === 'B' : boolean +>kind : "A" | "B" +>'B' : "B" + + payload.toUpperCase(); +>payload.toUpperCase() : string +>payload.toUpperCase : () => string +>payload : string +>toUpperCase : () => string + } +} + +function f11(action: Action) { +>f11 : (action: Action) => void +>action : Action + + const { kind, payload } = action; +>kind : "A" | "B" +>payload : string | number +>action : Action + + if (kind === 'A') { +>kind === 'A' : boolean +>kind : "A" | "B" +>'A' : "A" + + payload.toFixed(); +>payload.toFixed() : string +>payload.toFixed : (fractionDigits?: number | undefined) => string +>payload : number +>toFixed : (fractionDigits?: number | undefined) => string + } + if (kind === 'B') { +>kind === 'B' : boolean +>kind : "A" | "B" +>'B' : "B" + + payload.toUpperCase(); +>payload.toUpperCase() : string +>payload.toUpperCase : () => string +>payload : string +>toUpperCase : () => string + } +} + +function f12({ kind, payload }: Action) { +>f12 : ({ kind, payload }: Action) => void +>kind : "A" | "B" +>payload : string | number + + switch (kind) { +>kind : "A" | "B" + + case 'A': +>'A' : "A" + + payload.toFixed(); +>payload.toFixed() : string +>payload.toFixed : (fractionDigits?: number | undefined) => string +>payload : number +>toFixed : (fractionDigits?: number | undefined) => string + + break; + case 'B': +>'B' : "B" + + payload.toUpperCase(); +>payload.toUpperCase() : string +>payload.toUpperCase : () => string +>payload : string +>toUpperCase : () => string + + break; + default: + payload; // never +>payload : never + } +} + +type Action2 = +>Action2 : Action2 + + | { kind: 'A', payload: number | undefined } +>kind : "A" +>payload : number | undefined + + | { kind: 'B', payload: string | undefined }; +>kind : "B" +>payload : string | undefined + +function f20({ kind, payload }: Action2) { +>f20 : ({ kind, payload }: Action2) => void +>kind : "A" | "B" +>payload : string | number | undefined + + if (payload) { +>payload : string | number | undefined + + if (kind === 'A') { +>kind === 'A' : boolean +>kind : "A" | "B" +>'A' : "A" + + payload.toFixed(); +>payload.toFixed() : string +>payload.toFixed : (fractionDigits?: number | undefined) => string +>payload : number +>toFixed : (fractionDigits?: number | undefined) => string + } + if (kind === 'B') { +>kind === 'B' : boolean +>kind : "A" | "B" +>'B' : "B" + + payload.toUpperCase(); +>payload.toUpperCase() : string +>payload.toUpperCase : () => string +>payload : string +>toUpperCase : () => string + } + } +} + +function f21(action: Action2) { +>f21 : (action: Action2) => void +>action : Action2 + + const { kind, payload } = action; +>kind : "A" | "B" +>payload : string | number | undefined +>action : Action2 + + if (payload) { +>payload : string | number | undefined + + if (kind === 'A') { +>kind === 'A' : boolean +>kind : "A" | "B" +>'A' : "A" + + payload.toFixed(); +>payload.toFixed() : string +>payload.toFixed : (fractionDigits?: number | undefined) => string +>payload : number +>toFixed : (fractionDigits?: number | undefined) => string + } + if (kind === 'B') { +>kind === 'B' : boolean +>kind : "A" | "B" +>'B' : "B" + + payload.toUpperCase(); +>payload.toUpperCase() : string +>payload.toUpperCase : () => string +>payload : string +>toUpperCase : () => string + } + } +} + +function f22(action: Action2) { +>f22 : (action: Action2) => void +>action : Action2 + + if (action.payload) { +>action.payload : string | number | undefined +>action : Action2 +>payload : string | number | undefined + + const { kind, payload } = action; +>kind : "A" | "B" +>payload : string | number +>action : Action2 + + if (kind === 'A') { +>kind === 'A' : boolean +>kind : "A" | "B" +>'A' : "A" + + payload.toFixed(); +>payload.toFixed() : string +>payload.toFixed : (fractionDigits?: number | undefined) => string +>payload : number +>toFixed : (fractionDigits?: number | undefined) => string + } + if (kind === 'B') { +>kind === 'B' : boolean +>kind : "A" | "B" +>'B' : "B" + + payload.toUpperCase(); +>payload.toUpperCase() : string +>payload.toUpperCase : () => string +>payload : string +>toUpperCase : () => string + } + } +} + +function f23({ kind, payload }: Action2) { +>f23 : ({ kind, payload }: Action2) => void +>kind : "A" | "B" +>payload : string | number | undefined + + if (payload) { +>payload : string | number | undefined + + switch (kind) { +>kind : "A" | "B" + + case 'A': +>'A' : "A" + + payload.toFixed(); +>payload.toFixed() : string +>payload.toFixed : (fractionDigits?: number | undefined) => string +>payload : number +>toFixed : (fractionDigits?: number | undefined) => string + + break; + case 'B': +>'B' : "B" + + payload.toUpperCase(); +>payload.toUpperCase() : string +>payload.toUpperCase : () => string +>payload : string +>toUpperCase : () => string + + break; + default: + payload; // never +>payload : never + } + } +} + +type Foo = +>Foo : Foo + + | { kind: 'A', isA: true } +>kind : "A" +>isA : true +>true : true + + | { kind: 'B', isA: false } +>kind : "B" +>isA : false +>false : false + + | { kind: 'C', isA: false }; +>kind : "C" +>isA : false +>false : false + +function f30({ kind, isA }: Foo) { +>f30 : ({ kind, isA }: Foo) => void +>kind : "A" | "B" | "C" +>isA : boolean + + if (kind === 'A') { +>kind === 'A' : boolean +>kind : "A" | "B" | "C" +>'A' : "A" + + isA; // true +>isA : true + } + if (kind === 'B') { +>kind === 'B' : boolean +>kind : "A" | "B" | "C" +>'B' : "B" + + isA; // false +>isA : false + } + if (kind === 'C') { +>kind === 'C' : boolean +>kind : "A" | "B" | "C" +>'C' : "C" + + isA; // false +>isA : false + } + if (isA) { +>isA : boolean + + kind; // 'A' +>kind : "A" + } + else { + kind; // 'B' | 'C' +>kind : "B" | "C" + } +} + +type Args = ['A', number] | ['B', string] +>Args : Args + +function f40(...[kind, data]: Args) { +>f40 : (...[kind, data]: Args) => void +>kind : "A" | "B" +>data : string | number + + if (kind === 'A') { +>kind === 'A' : boolean +>kind : "A" | "B" +>'A' : "A" + + data.toFixed(); +>data.toFixed() : string +>data.toFixed : (fractionDigits?: number | undefined) => string +>data : number +>toFixed : (fractionDigits?: number | undefined) => string + } + if (kind === 'B') { +>kind === 'B' : boolean +>kind : "A" | "B" +>'B' : "B" + + data.toUpperCase(); +>data.toUpperCase() : string +>data.toUpperCase : () => string +>data : string +>toUpperCase : () => string + } +} + +// Repro from #35283 + +interface A { variant: 'a', value: T } +>variant : "a" +>value : T + +interface B { variant: 'b', value: Array } +>variant : "b" +>value : T[] + +type AB = A | B; +>AB : AB + +declare function printValue(t: T): void; +>printValue : (t: T) => void +>t : T + +declare function printValueList(t: Array): void; +>printValueList : (t: Array) => void +>t : T[] + +function unrefined1(ab: AB): void { +>unrefined1 : (ab: AB) => void +>ab : AB + + const { variant, value } = ab; +>variant : "a" | "b" +>value : T | T[] +>ab : AB + + if (variant === 'a') { +>variant === 'a' : boolean +>variant : "a" | "b" +>'a' : "a" + + printValue(value); +>printValue(value) : void +>printValue : (t: T) => void +>value : T + } + else { + printValueList(value); +>printValueList(value) : void +>printValueList : (t: T[]) => void +>value : T[] + } +} + +// Repro from #38020 + +type Action3 = +>Action3 : Action3 + + | {type: 'add', payload: { toAdd: number } } +>type : "add" +>payload : { toAdd: number; } +>toAdd : number + + | {type: 'remove', payload: { toRemove: number } }; +>type : "remove" +>payload : { toRemove: number; } +>toRemove : number + +const reducerBroken = (state: number, { type, payload }: Action3) => { +>reducerBroken : (state: number, { type, payload }: Action3) => number +>(state: number, { type, payload }: Action3) => { switch (type) { case 'add': return state + payload.toAdd; case 'remove': return state - payload.toRemove; }} : (state: number, { type, payload }: Action3) => number +>state : number +>type : "add" | "remove" +>payload : { toAdd: number; } | { toRemove: number; } + + switch (type) { +>type : "add" | "remove" + + case 'add': +>'add' : "add" + + return state + payload.toAdd; +>state + payload.toAdd : number +>state : number +>payload.toAdd : number +>payload : { toAdd: number; } +>toAdd : number + + case 'remove': +>'remove' : "remove" + + return state - payload.toRemove; +>state - payload.toRemove : number +>state : number +>payload.toRemove : number +>payload : { toRemove: number; } +>toRemove : number + } +} + +// Repro from #46143 + +declare var it: Iterator; +>it : Iterator + +const { value, done } = it.next(); +>value : any +>done : boolean | undefined +>it.next() : IteratorResult +>it.next : (...args: [] | [undefined]) => IteratorResult +>it : Iterator +>next : (...args: [] | [undefined]) => IteratorResult + +if (!done) { +>!done : boolean +>done : boolean | undefined + + value; // number +>value : number +} + +// Repro from #46658 + +declare function f50(cb: (...args: Args) => void): void +>f50 : (cb: (...args: Args) => void) => void +>cb : (...args: Args) => void +>args : Args + +f50((kind, data) => { +>f50((kind, data) => { if (kind === 'A') { data.toFixed(); } if (kind === 'B') { data.toUpperCase(); }}) : void +>f50 : (cb: (...args: Args) => void) => void +>(kind, data) => { if (kind === 'A') { data.toFixed(); } if (kind === 'B') { data.toUpperCase(); }} : (kind: "A" | "B", data: string | number) => void +>kind : "A" | "B" +>data : string | number + + if (kind === 'A') { +>kind === 'A' : boolean +>kind : "A" | "B" +>'A' : "A" + + data.toFixed(); +>data.toFixed() : string +>data.toFixed : (fractionDigits?: number | undefined) => string +>data : number +>toFixed : (fractionDigits?: number | undefined) => string + } + if (kind === 'B') { +>kind === 'B' : boolean +>kind : "A" | "B" +>'B' : "B" + + data.toUpperCase(); +>data.toUpperCase() : string +>data.toUpperCase : () => string +>data : string +>toUpperCase : () => string + } +}); + +const f51: (...args: ['A', number] | ['B', string]) => void = (kind, payload) => { +>f51 : (...args: ['A', number] | ['B', string]) => void +>args : ["A", number] | ["B", string] +>(kind, payload) => { if (kind === 'A') { payload.toFixed(); } if (kind === 'B') { payload.toUpperCase(); }} : (kind: "A" | "B", payload: string | number) => void +>kind : "A" | "B" +>payload : string | number + + if (kind === 'A') { +>kind === 'A' : boolean +>kind : "A" | "B" +>'A' : "A" + + payload.toFixed(); +>payload.toFixed() : string +>payload.toFixed : (fractionDigits?: number | undefined) => string +>payload : number +>toFixed : (fractionDigits?: number | undefined) => string + } + if (kind === 'B') { +>kind === 'B' : boolean +>kind : "A" | "B" +>'B' : "B" + + payload.toUpperCase(); +>payload.toUpperCase() : string +>payload.toUpperCase : () => string +>payload : string +>toUpperCase : () => string + } +}; + +const f52: (...args: ['A', number] | ['B']) => void = (kind, payload?) => { +>f52 : (...args: ['A', number] | ['B']) => void +>args : ["A", number] | ["B"] +>(kind, payload?) => { if (kind === 'A') { payload.toFixed(); } else { payload; // undefined }} : (kind: "A" | "B", payload?: number | undefined) => void +>kind : "A" | "B" +>payload : number | undefined + + if (kind === 'A') { +>kind === 'A' : boolean +>kind : "A" | "B" +>'A' : "A" + + payload.toFixed(); +>payload.toFixed() : string +>payload.toFixed : (fractionDigits?: number | undefined) => string +>payload : number +>toFixed : (fractionDigits?: number | undefined) => string + } + else { + payload; // undefined +>payload : undefined + } +}; + +declare function readFile(path: string, callback: (...args: [err: null, data: unknown[]] | [err: Error, data: undefined]) => void): void; +>readFile : (path: string, callback: (...args: [err: null, data: unknown[]] | [err: Error, data: undefined]) => void) => void +>path : string +>callback : (...args: [err: null, data: unknown[]] | [err: Error, data: undefined]) => void +>args : [err: null, data: unknown[]] | [err: Error, data: undefined] +>null : null + +readFile('hello', (err, data) => { +>readFile('hello', (err, data) => { if (err === null) { data.length; } else { err.message; }}) : void +>readFile : (path: string, callback: (...args: [err: null, data: unknown[]] | [err: Error, data: undefined]) => void) => void +>'hello' : "hello" +>(err, data) => { if (err === null) { data.length; } else { err.message; }} : (err: Error | null, data: unknown[] | undefined) => void +>err : Error | null +>data : unknown[] | undefined + + if (err === null) { +>err === null : boolean +>err : Error | null +>null : null + + data.length; +>data.length : number +>data : unknown[] +>length : number + } + else { + err.message; +>err.message : string +>err : Error +>message : string + } +}); + +type ReducerArgs = ["add", { a: number, b: number }] | ["concat", { firstArr: any[], secondArr: any[] }]; +>ReducerArgs : ReducerArgs +>a : number +>b : number +>firstArr : any[] +>secondArr : any[] + +const reducer: (...args: ReducerArgs) => void = (op, args) => { +>reducer : (...args: ReducerArgs) => void +>args : ReducerArgs +>(op, args) => { switch (op) { case "add": console.log(args.a + args.b); break; case "concat": console.log(args.firstArr.concat(args.secondArr)); break; }} : (op: "add" | "concat", args: { a: number; b: number; } | { firstArr: any[]; secondArr: any[]; }) => void +>op : "add" | "concat" +>args : { a: number; b: number; } | { firstArr: any[]; secondArr: any[]; } + + switch (op) { +>op : "add" | "concat" + + case "add": +>"add" : "add" + + console.log(args.a + args.b); +>console.log(args.a + args.b) : void +>console.log : (...data: any[]) => void +>console : Console +>log : (...data: any[]) => void +>args.a + args.b : number +>args.a : number +>args : { a: number; b: number; } +>a : number +>args.b : number +>args : { a: number; b: number; } +>b : number + + break; + case "concat": +>"concat" : "concat" + + console.log(args.firstArr.concat(args.secondArr)); +>console.log(args.firstArr.concat(args.secondArr)) : void +>console.log : (...data: any[]) => void +>console : Console +>log : (...data: any[]) => void +>args.firstArr.concat(args.secondArr) : any[] +>args.firstArr.concat : { (...items: ConcatArray[]): any[]; (...items: any[]): any[]; } +>args.firstArr : any[] +>args : { firstArr: any[]; secondArr: any[]; } +>firstArr : any[] +>concat : { (...items: ConcatArray[]): any[]; (...items: any[]): any[]; } +>args.secondArr : any[] +>args : { firstArr: any[]; secondArr: any[]; } +>secondArr : any[] + + break; + } +} + +reducer("add", { a: 1, b: 3 }); +>reducer("add", { a: 1, b: 3 }) : void +>reducer : (...args: ReducerArgs) => void +>"add" : "add" +>{ a: 1, b: 3 } : { a: number; b: number; } +>a : number +>1 : 1 +>b : number +>3 : 3 + +reducer("concat", { firstArr: [1, 2], secondArr: [3, 4] }); +>reducer("concat", { firstArr: [1, 2], secondArr: [3, 4] }) : void +>reducer : (...args: ReducerArgs) => void +>"concat" : "concat" +>{ firstArr: [1, 2], secondArr: [3, 4] } : { firstArr: number[]; secondArr: number[]; } +>firstArr : number[] +>[1, 2] : number[] +>1 : 1 +>2 : 2 +>secondArr : number[] +>[3, 4] : number[] +>3 : 3 +>4 : 4 + +// repro from https://github.com/microsoft/TypeScript/pull/47190#issuecomment-1057603588 + +type FooMethod = { +>FooMethod : FooMethod + + method(...args: +>method : (...args: [type: "str", cb: (e: string) => void] | [type: "num", cb: (e: number) => void]) => void +>args : [type: "str", cb: (e: string) => void] | [type: "num", cb: (e: number) => void] + + [type: "str", cb: (e: string) => void] | +>e : string + + [type: "num", cb: (e: number) => void] +>e : number + + ): void; +} + +let fooM: FooMethod = { +>fooM : FooMethod +>{ method(type, cb) { if (type == 'num') { cb(123) } else { cb("abc") } }} : { method(type: "str" | "num", cb: ((e: string) => void) | ((e: number) => void)): void; } + + method(type, cb) { +>method : (type: "str" | "num", cb: ((e: string) => void) | ((e: number) => void)) => void +>type : "str" | "num" +>cb : ((e: string) => void) | ((e: number) => void) + + if (type == 'num') { +>type == 'num' : boolean +>type : "str" | "num" +>'num' : "num" + + cb(123) +>cb(123) : void +>cb : (e: number) => void +>123 : 123 + + } else { + cb("abc") +>cb("abc") : void +>cb : (e: string) => void +>"abc" : "abc" + } + } +}; + +type FooAsyncMethod = { +>FooAsyncMethod : FooAsyncMethod + + method(...args: +>method : (...args: [type: "str", cb: (e: string) => void] | [type: "num", cb: (e: number) => void]) => Promise +>args : [type: "str", cb: (e: string) => void] | [type: "num", cb: (e: number) => void] + + [type: "str", cb: (e: string) => void] | +>e : string + + [type: "num", cb: (e: number) => void] +>e : number + + ): Promise; +} + +let fooAsyncM: FooAsyncMethod = { +>fooAsyncM : FooAsyncMethod +>{ async method(type, cb) { if (type == 'num') { cb(123) } else { cb("abc") } }} : { method(type: "str" | "num", cb: ((e: string) => void) | ((e: number) => void)): Promise; } + + async method(type, cb) { +>method : (type: "str" | "num", cb: ((e: string) => void) | ((e: number) => void)) => Promise +>type : "str" | "num" +>cb : ((e: string) => void) | ((e: number) => void) + + if (type == 'num') { +>type == 'num' : boolean +>type : "str" | "num" +>'num' : "num" + + cb(123) +>cb(123) : void +>cb : (e: number) => void +>123 : 123 + + } else { + cb("abc") +>cb("abc") : void +>cb : (e: string) => void +>"abc" : "abc" + } + } +}; + +type FooGenMethod = { +>FooGenMethod : FooGenMethod + + method(...args: +>method : (...args: [type: "str", cb: (e: string) => void] | [type: "num", cb: (e: number) => void]) => Generator +>args : [type: "str", cb: (e: string) => void] | [type: "num", cb: (e: number) => void] + + [type: "str", cb: (e: string) => void] | +>e : string + + [type: "num", cb: (e: number) => void] +>e : number + + ): Generator; +} + +let fooGenM: FooGenMethod = { +>fooGenM : FooGenMethod +>{ *method(type, cb) { if (type == 'num') { cb(123) } else { cb("abc") } }} : { method(type: "str" | "num", cb: ((e: string) => void) | ((e: number) => void)): Generator; } + + *method(type, cb) { +>method : (type: "str" | "num", cb: ((e: string) => void) | ((e: number) => void)) => Generator +>type : "str" | "num" +>cb : ((e: string) => void) | ((e: number) => void) + + if (type == 'num') { +>type == 'num' : boolean +>type : "str" | "num" +>'num' : "num" + + cb(123) +>cb(123) : void +>cb : (e: number) => void +>123 : 123 + + } else { + cb("abc") +>cb("abc") : void +>cb : (e: string) => void +>"abc" : "abc" + } + } +}; + +type FooAsyncGenMethod = { +>FooAsyncGenMethod : FooAsyncGenMethod + + method(...args: +>method : (...args: [type: "str", cb: (e: string) => void] | [type: "num", cb: (e: number) => void]) => AsyncGenerator +>args : [type: "str", cb: (e: string) => void] | [type: "num", cb: (e: number) => void] + + [type: "str", cb: (e: string) => void] | +>e : string + + [type: "num", cb: (e: number) => void] +>e : number + + ): AsyncGenerator; +} + +let fooAsyncGenM: FooAsyncGenMethod = { +>fooAsyncGenM : FooAsyncGenMethod +>{ async *method(type, cb) { if (type == 'num') { cb(123) } else { cb("abc") } }} : { method(type: "str" | "num", cb: ((e: string) => void) | ((e: number) => void)): AsyncGenerator; } + + async *method(type, cb) { +>method : (type: "str" | "num", cb: ((e: string) => void) | ((e: number) => void)) => AsyncGenerator +>type : "str" | "num" +>cb : ((e: string) => void) | ((e: number) => void) + + if (type == 'num') { +>type == 'num' : boolean +>type : "str" | "num" +>'num' : "num" + + cb(123) +>cb(123) : void +>cb : (e: number) => void +>123 : 123 + + } else { + cb("abc") +>cb("abc") : void +>cb : (e: string) => void +>"abc" : "abc" + } + } +}; + +// Repro from #48345 + +type Func = (...args: T) => void; +>Func : Func +>args : T + +const f60: Func = (kind, payload) => { +>f60 : Func +>(kind, payload) => { if (kind === "a") { payload.toFixed(); // error } if (kind === "b") { payload.toUpperCase(); // error }} : (kind: T[0], payload: T[1]) => void +>kind : T[0] +>payload : T[1] + + if (kind === "a") { +>kind === "a" : boolean +>kind : "a" | "b" +>"a" : "a" + + payload.toFixed(); // error +>payload.toFixed() : string +>payload.toFixed : (fractionDigits?: number | undefined) => string +>payload : number +>toFixed : (fractionDigits?: number | undefined) => string + } + if (kind === "b") { +>kind === "b" : boolean +>kind : "a" | "b" +>"b" : "b" + + payload.toUpperCase(); // error +>payload.toUpperCase() : string +>payload.toUpperCase : () => string +>payload : string +>toUpperCase : () => string + } +}; + diff --git a/tests/baselines/reference/derivedClassParameterProperties.errors.txt b/tests/baselines/reference/derivedClassParameterProperties.errors.txt index a29632acafa90..02d90402fefe0 100644 --- a/tests/baselines/reference/derivedClassParameterProperties.errors.txt +++ b/tests/baselines/reference/derivedClassParameterProperties.errors.txt @@ -1,15 +1,13 @@ -tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassParameterProperties.ts(15,5): error TS2376: A 'super' call must be the first statement in the constructor when a class contains initialized properties, parameter properties, or private identifiers. -tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassParameterProperties.ts(30,5): error TS2376: A 'super' call must be the first statement in the constructor when a class contains initialized properties, parameter properties, or private identifiers. tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassParameterProperties.ts(47,9): error TS17009: 'super' must be called before accessing 'this' in the constructor of a derived class. -tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassParameterProperties.ts(56,5): error TS2376: A 'super' call must be the first statement in the constructor when a class contains initialized properties, parameter properties, or private identifiers. +tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassParameterProperties.ts(56,5): error TS2376: A 'super' call must be the first statement in the constructor to refer to 'super' or 'this' when a derived class contains initialized properties, parameter properties, or private identifiers. tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassParameterProperties.ts(57,9): error TS17009: 'super' must be called before accessing 'this' in the constructor of a derived class. tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassParameterProperties.ts(58,9): error TS17009: 'super' must be called before accessing 'this' in the constructor of a derived class. -tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassParameterProperties.ts(79,5): error TS2376: A 'super' call must be the first statement in the constructor when a class contains initialized properties, parameter properties, or private identifiers. +tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassParameterProperties.ts(79,5): error TS2376: A 'super' call must be the first statement in the constructor to refer to 'super' or 'this' when a derived class contains initialized properties, parameter properties, or private identifiers. tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassParameterProperties.ts(80,9): error TS17009: 'super' must be called before accessing 'this' in the constructor of a derived class. tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassParameterProperties.ts(81,9): error TS17009: 'super' must be called before accessing 'this' in the constructor of a derived class. -==== tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassParameterProperties.ts (9 errors) ==== +==== tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassParameterProperties.ts (7 errors) ==== // ordering of super calls in derived constructors matters depending on other class contents class Base { @@ -19,25 +17,20 @@ tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassP class Derived extends Base { constructor(y: string) { var a = 1; - super(); // ok + super(); } } class Derived2 extends Base { constructor(public y: string) { - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ var a = 1; - ~~~~~~~~~~~~~~~~~~ - super(); // error - ~~~~~~~~~~~~~~~~~~~~~~~~~ + super(); } - ~~~~~ -!!! error TS2376: A 'super' call must be the first statement in the constructor when a class contains initialized properties, parameter properties, or private identifiers. } class Derived3 extends Base { constructor(public y: string) { - super(); // ok + super(); var a = 1; } } @@ -45,20 +38,15 @@ tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassP class Derived4 extends Base { a = 1; constructor(y: string) { - ~~~~~~~~~~~~~~~~~~~~~~~~ var b = 2; - ~~~~~~~~~~~~~~~~~~ - super(); // error - ~~~~~~~~~~~~~~~~~~~~~~~~~ + super(); } - ~~~~~ -!!! error TS2376: A 'super' call must be the first statement in the constructor when a class contains initialized properties, parameter properties, or private identifiers. } class Derived5 extends Base { a = 1; constructor(y: string) { - super(); // ok + super(); var b = 2; } } @@ -70,7 +58,7 @@ tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassP ~~~~ !!! error TS17009: 'super' must be called before accessing 'this' in the constructor of a derived class. var b = 2; - super(); // error: "super" has to be called before "this" accessing + super(); } } @@ -87,18 +75,18 @@ tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassP ~~~~~~~~~~~~~~~~~~~ ~~~~ !!! error TS17009: 'super' must be called before accessing 'this' in the constructor of a derived class. - super(); // error - ~~~~~~~~~~~~~~~~~~~~~~~~~ + super(); + ~~~~~~~~~~~~~~~~ } ~~~~~ -!!! error TS2376: A 'super' call must be the first statement in the constructor when a class contains initialized properties, parameter properties, or private identifiers. +!!! error TS2376: A 'super' call must be the first statement in the constructor to refer to 'super' or 'this' when a derived class contains initialized properties, parameter properties, or private identifiers. } class Derived8 extends Base { a = 1; b: number; constructor(y: string) { - super(); // ok + super(); this.a = 3; this.b = 3; } @@ -120,18 +108,18 @@ tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassP ~~~~~~~~~~~~~~~~~~~ ~~~~ !!! error TS17009: 'super' must be called before accessing 'this' in the constructor of a derived class. - super(); // error - ~~~~~~~~~~~~~~~~~~~~~~~~~ + super(); + ~~~~~~~~~~~~~~~~ } ~~~~~ -!!! error TS2376: A 'super' call must be the first statement in the constructor when a class contains initialized properties, parameter properties, or private identifiers. +!!! error TS2376: A 'super' call must be the first statement in the constructor to refer to 'super' or 'this' when a derived class contains initialized properties, parameter properties, or private identifiers. } class Derived10 extends Base2 { a = 1; b: number; constructor(y: string) { - super(); // ok + super(); this.a = 3; this.b = 3; } diff --git a/tests/baselines/reference/derivedClassParameterProperties.js b/tests/baselines/reference/derivedClassParameterProperties.js index 9003b828f0923..6177865273809 100644 --- a/tests/baselines/reference/derivedClassParameterProperties.js +++ b/tests/baselines/reference/derivedClassParameterProperties.js @@ -8,20 +8,20 @@ class Base { class Derived extends Base { constructor(y: string) { var a = 1; - super(); // ok + super(); } } class Derived2 extends Base { constructor(public y: string) { var a = 1; - super(); // error + super(); } } class Derived3 extends Base { constructor(public y: string) { - super(); // ok + super(); var a = 1; } } @@ -30,14 +30,14 @@ class Derived4 extends Base { a = 1; constructor(y: string) { var b = 2; - super(); // error + super(); } } class Derived5 extends Base { a = 1; constructor(y: string) { - super(); // ok + super(); var b = 2; } } @@ -47,7 +47,7 @@ class Derived6 extends Base { constructor(y: string) { this.a = 1; var b = 2; - super(); // error: "super" has to be called before "this" accessing + super(); } } @@ -57,7 +57,7 @@ class Derived7 extends Base { constructor(y: string) { this.a = 3; this.b = 3; - super(); // error + super(); } } @@ -65,7 +65,7 @@ class Derived8 extends Base { a = 1; b: number; constructor(y: string) { - super(); // ok + super(); this.a = 3; this.b = 3; } @@ -80,7 +80,7 @@ class Derived9 extends Base2 { constructor(y: string) { this.a = 3; this.b = 3; - super(); // error + super(); } } @@ -88,7 +88,7 @@ class Derived10 extends Base2 { a = 1; b: number; constructor(y: string) { - super(); // ok + super(); this.a = 3; this.b = 3; } @@ -119,10 +119,8 @@ var Base = /** @class */ (function () { var Derived = /** @class */ (function (_super) { __extends(Derived, _super); function Derived(y) { - var _this = this; var a = 1; - _this = _super.call(this) || this; // ok - return _this; + return _super.call(this) || this; } return Derived; }(Base)); @@ -131,7 +129,7 @@ var Derived2 = /** @class */ (function (_super) { function Derived2(y) { var _this = this; var a = 1; - _this = _super.call(this) || this; // error + _this = _super.call(this) || this; _this.y = y; return _this; } @@ -152,7 +150,7 @@ var Derived4 = /** @class */ (function (_super) { function Derived4(y) { var _this = this; var b = 2; - _this = _super.call(this) || this; // error + _this = _super.call(this) || this; _this.a = 1; return _this; } @@ -174,7 +172,7 @@ var Derived6 = /** @class */ (function (_super) { var _this = this; _this.a = 1; var b = 2; - _this = _super.call(this) || this; // error: "super" has to be called before "this" accessing + _this = _super.call(this) || this; return _this; } return Derived6; @@ -185,7 +183,7 @@ var Derived7 = /** @class */ (function (_super) { var _this = this; _this.a = 3; _this.b = 3; - _this = _super.call(this) || this; // error + _this = _super.call(this) || this; _this.a = 1; return _this; } @@ -214,7 +212,7 @@ var Derived9 = /** @class */ (function (_super) { var _this = this; _this.a = 3; _this.b = 3; - _this = _super.call(this) || this; // error + _this = _super.call(this) || this; _this.a = 1; return _this; } diff --git a/tests/baselines/reference/derivedClassParameterProperties.symbols b/tests/baselines/reference/derivedClassParameterProperties.symbols index 691385d592b1b..5f34d8182abf1 100644 --- a/tests/baselines/reference/derivedClassParameterProperties.symbols +++ b/tests/baselines/reference/derivedClassParameterProperties.symbols @@ -18,7 +18,7 @@ class Derived extends Base { var a = 1; >a : Symbol(a, Decl(derivedClassParameterProperties.ts, 8, 11)) - super(); // ok + super(); >super : Symbol(Base, Decl(derivedClassParameterProperties.ts, 0, 0)) } } @@ -33,7 +33,7 @@ class Derived2 extends Base { var a = 1; >a : Symbol(a, Decl(derivedClassParameterProperties.ts, 15, 11)) - super(); // error + super(); >super : Symbol(Base, Decl(derivedClassParameterProperties.ts, 0, 0)) } } @@ -45,7 +45,7 @@ class Derived3 extends Base { constructor(public y: string) { >y : Symbol(Derived3.y, Decl(derivedClassParameterProperties.ts, 21, 16)) - super(); // ok + super(); >super : Symbol(Base, Decl(derivedClassParameterProperties.ts, 0, 0)) var a = 1; @@ -66,7 +66,7 @@ class Derived4 extends Base { var b = 2; >b : Symbol(b, Decl(derivedClassParameterProperties.ts, 30, 11)) - super(); // error + super(); >super : Symbol(Base, Decl(derivedClassParameterProperties.ts, 0, 0)) } } @@ -81,7 +81,7 @@ class Derived5 extends Base { constructor(y: string) { >y : Symbol(y, Decl(derivedClassParameterProperties.ts, 37, 16)) - super(); // ok + super(); >super : Symbol(Base, Decl(derivedClassParameterProperties.ts, 0, 0)) var b = 2; @@ -107,7 +107,7 @@ class Derived6 extends Base { var b = 2; >b : Symbol(b, Decl(derivedClassParameterProperties.ts, 47, 11)) - super(); // error: "super" has to be called before "this" accessing + super(); >super : Symbol(Base, Decl(derivedClassParameterProperties.ts, 0, 0)) } } @@ -135,7 +135,7 @@ class Derived7 extends Base { >this : Symbol(Derived7, Decl(derivedClassParameterProperties.ts, 50, 1)) >b : Symbol(Derived7.b, Decl(derivedClassParameterProperties.ts, 53, 10)) - super(); // error + super(); >super : Symbol(Base, Decl(derivedClassParameterProperties.ts, 0, 0)) } } @@ -153,7 +153,7 @@ class Derived8 extends Base { constructor(y: string) { >y : Symbol(y, Decl(derivedClassParameterProperties.ts, 65, 16)) - super(); // ok + super(); >super : Symbol(Base, Decl(derivedClassParameterProperties.ts, 0, 0)) this.a = 3; @@ -200,7 +200,7 @@ class Derived9 extends Base2 { >this : Symbol(Derived9, Decl(derivedClassParameterProperties.ts, 73, 24)) >b : Symbol(Derived9.b, Decl(derivedClassParameterProperties.ts, 76, 10)) - super(); // error + super(); >super : Symbol(Base2, Decl(derivedClassParameterProperties.ts, 70, 1)) } } @@ -220,7 +220,7 @@ class Derived10 extends Base2 { constructor(y: string) { >y : Symbol(y, Decl(derivedClassParameterProperties.ts, 88, 16)) - super(); // ok + super(); >super : Symbol(Base2, Decl(derivedClassParameterProperties.ts, 70, 1)) this.a = 3; diff --git a/tests/baselines/reference/derivedClassParameterProperties.types b/tests/baselines/reference/derivedClassParameterProperties.types index ea4f5b94fa502..1cb184bed34df 100644 --- a/tests/baselines/reference/derivedClassParameterProperties.types +++ b/tests/baselines/reference/derivedClassParameterProperties.types @@ -19,7 +19,7 @@ class Derived extends Base { >a : number >1 : 1 - super(); // ok + super(); >super() : void >super : typeof Base } @@ -36,7 +36,7 @@ class Derived2 extends Base { >a : number >1 : 1 - super(); // error + super(); >super() : void >super : typeof Base } @@ -49,7 +49,7 @@ class Derived3 extends Base { constructor(public y: string) { >y : string - super(); // ok + super(); >super() : void >super : typeof Base @@ -74,7 +74,7 @@ class Derived4 extends Base { >b : number >2 : 2 - super(); // error + super(); >super() : void >super : typeof Base } @@ -91,7 +91,7 @@ class Derived5 extends Base { constructor(y: string) { >y : string - super(); // ok + super(); >super() : void >super : typeof Base @@ -122,7 +122,7 @@ class Derived6 extends Base { >b : number >2 : 2 - super(); // error: "super" has to be called before "this" accessing + super(); >super() : void >super : typeof Base } @@ -156,7 +156,7 @@ class Derived7 extends Base { >b : number >3 : 3 - super(); // error + super(); >super() : void >super : typeof Base } @@ -176,7 +176,7 @@ class Derived8 extends Base { constructor(y: string) { >y : string - super(); // ok + super(); >super() : void >super : typeof Base @@ -229,7 +229,7 @@ class Derived9 extends Base2 { >b : number >3 : 3 - super(); // error + super(); >super() : void >super : typeof Base2 } @@ -249,7 +249,7 @@ class Derived10 extends Base2 { constructor(y: string) { >y : string - super(); // ok + super(); >super() : void >super : typeof Base2 diff --git a/tests/baselines/reference/derivedClassSuperProperties.errors.txt b/tests/baselines/reference/derivedClassSuperProperties.errors.txt new file mode 100644 index 0000000000000..9834157050ff8 --- /dev/null +++ b/tests/baselines/reference/derivedClassSuperProperties.errors.txt @@ -0,0 +1,606 @@ +tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassSuperProperties.ts(11,5): error TS2376: A 'super' call must be the first statement in the constructor to refer to 'super' or 'this' when a derived class contains initialized properties, parameter properties, or private identifiers. +tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassSuperProperties.ts(12,9): error TS17011: 'super' must be called before accessing a property of 'super' in the constructor of a derived class. +tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassSuperProperties.ts(19,5): error TS2376: A 'super' call must be the first statement in the constructor to refer to 'super' or 'this' when a derived class contains initialized properties, parameter properties, or private identifiers. +tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassSuperProperties.ts(20,9): error TS17011: 'super' must be called before accessing a property of 'super' in the constructor of a derived class. +tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassSuperProperties.ts(20,32): error TS17009: 'super' must be called before accessing 'this' in the constructor of a derived class. +tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassSuperProperties.ts(27,5): error TS2376: A 'super' call must be the first statement in the constructor to refer to 'super' or 'this' when a derived class contains initialized properties, parameter properties, or private identifiers. +tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassSuperProperties.ts(28,9): error TS17011: 'super' must be called before accessing a property of 'super' in the constructor of a derived class. +tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassSuperProperties.ts(29,15): error TS17009: 'super' must be called before accessing 'this' in the constructor of a derived class. +tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassSuperProperties.ts(35,5): error TS2376: A 'super' call must be the first statement in the constructor to refer to 'super' or 'this' when a derived class contains initialized properties, parameter properties, or private identifiers. +tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassSuperProperties.ts(36,9): error TS17011: 'super' must be called before accessing a property of 'super' in the constructor of a derived class. +tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassSuperProperties.ts(36,32): error TS17009: 'super' must be called before accessing 'this' in the constructor of a derived class. +tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassSuperProperties.ts(37,15): error TS17009: 'super' must be called before accessing 'this' in the constructor of a derived class. +tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassSuperProperties.ts(52,15): error TS17009: 'super' must be called before accessing 'this' in the constructor of a derived class. +tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassSuperProperties.ts(68,15): error TS17009: 'super' must be called before accessing 'this' in the constructor of a derived class. +tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassSuperProperties.ts(91,5): error TS2376: A 'super' call must be the first statement in the constructor to refer to 'super' or 'this' when a derived class contains initialized properties, parameter properties, or private identifiers. +tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassSuperProperties.ts(92,19): error TS17009: 'super' must be called before accessing 'this' in the constructor of a derived class. +tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassSuperProperties.ts(101,5): error TS2376: A 'super' call must be the first statement in the constructor to refer to 'super' or 'this' when a derived class contains initialized properties, parameter properties, or private identifiers. +tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassSuperProperties.ts(103,23): error TS17009: 'super' must be called before accessing 'this' in the constructor of a derived class. +tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassSuperProperties.ts(115,23): error TS17009: 'super' must be called before accessing 'this' in the constructor of a derived class. +tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassSuperProperties.ts(162,5): error TS2376: A 'super' call must be the first statement in the constructor to refer to 'super' or 'this' when a derived class contains initialized properties, parameter properties, or private identifiers. +tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassSuperProperties.ts(163,9): error TS17009: 'super' must be called before accessing 'this' in the constructor of a derived class. +tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassSuperProperties.ts(195,5): error TS2376: A 'super' call must be the first statement in the constructor to refer to 'super' or 'this' when a derived class contains initialized properties, parameter properties, or private identifiers. +tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassSuperProperties.ts(196,34): error TS17009: 'super' must be called before accessing 'this' in the constructor of a derived class. +tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassSuperProperties.ts(230,5): error TS2376: A 'super' call must be the first statement in the constructor to refer to 'super' or 'this' when a derived class contains initialized properties, parameter properties, or private identifiers. +tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassSuperProperties.ts(231,35): error TS17009: 'super' must be called before accessing 'this' in the constructor of a derived class. +tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassSuperProperties.ts(281,5): error TS2376: A 'super' call must be the first statement in the constructor to refer to 'super' or 'this' when a derived class contains initialized properties, parameter properties, or private identifiers. +tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassSuperProperties.ts(284,18): error TS17009: 'super' must be called before accessing 'this' in the constructor of a derived class. +tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassSuperProperties.ts(287,18): error TS17009: 'super' must be called before accessing 'this' in the constructor of a derived class. +tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassSuperProperties.ts(313,5): error TS2376: A 'super' call must be the first statement in the constructor to refer to 'super' or 'this' when a derived class contains initialized properties, parameter properties, or private identifiers. +tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassSuperProperties.ts(315,19): error TS17009: 'super' must be called before accessing 'this' in the constructor of a derived class. +tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassSuperProperties.ts(323,5): error TS2376: A 'super' call must be the first statement in the constructor to refer to 'super' or 'this' when a derived class contains initialized properties, parameter properties, or private identifiers. +tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassSuperProperties.ts(325,14): error TS17009: 'super' must be called before accessing 'this' in the constructor of a derived class. +tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassSuperProperties.ts(349,17): error TS2401: A 'super' call must be a root-level statement within a constructor of a derived class that contains initialized properties, parameter properties, or private identifiers. +tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassSuperProperties.ts(355,20): error TS1345: An expression of type 'void' cannot be tested for truthiness. +tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassSuperProperties.ts(355,20): error TS2401: A 'super' call must be a root-level statement within a constructor of a derived class that contains initialized properties, parameter properties, or private identifiers. +tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassSuperProperties.ts(361,23): error TS2401: A 'super' call must be a root-level statement within a constructor of a derived class that contains initialized properties, parameter properties, or private identifiers. +tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassSuperProperties.ts(367,21): error TS2401: A 'super' call must be a root-level statement within a constructor of a derived class that contains initialized properties, parameter properties, or private identifiers. +tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassSuperProperties.ts(373,29): error TS2401: A 'super' call must be a root-level statement within a constructor of a derived class that contains initialized properties, parameter properties, or private identifiers. +tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassSuperProperties.ts(373,29): error TS2495: Type 'void' is not an array type or a string type. +tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassSuperProperties.ts(379,20): error TS1345: An expression of type 'void' cannot be tested for truthiness. +tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassSuperProperties.ts(379,20): error TS2401: A 'super' call must be a root-level statement within a constructor of a derived class that contains initialized properties, parameter properties, or private identifiers. +tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassSuperProperties.ts(385,26): error TS1345: An expression of type 'void' cannot be tested for truthiness. +tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassSuperProperties.ts(385,26): error TS2401: A 'super' call must be a root-level statement within a constructor of a derived class that contains initialized properties, parameter properties, or private identifiers. +tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassSuperProperties.ts(391,17): error TS1345: An expression of type 'void' cannot be tested for truthiness. +tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassSuperProperties.ts(391,17): error TS2401: A 'super' call must be a root-level statement within a constructor of a derived class that contains initialized properties, parameter properties, or private identifiers. +tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassSuperProperties.ts(397,21): error TS2401: A 'super' call must be a root-level statement within a constructor of a derived class that contains initialized properties, parameter properties, or private identifiers. + + +==== tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassSuperProperties.ts (46 errors) ==== + declare const decorate: any; + + class Base { + constructor(a?) { } + + receivesAnything(param?) { } + } + + class Derived1 extends Base { + prop = true; + constructor() { + ~~~~~~~~~~~~~~~ + super.receivesAnything(); + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + ~~~~~ +!!! error TS17011: 'super' must be called before accessing a property of 'super' in the constructor of a derived class. + super(); + ~~~~~~~~~~~~~~~~ + } + ~~~~~ +!!! error TS2376: A 'super' call must be the first statement in the constructor to refer to 'super' or 'this' when a derived class contains initialized properties, parameter properties, or private identifiers. + } + + class Derived2 extends Base { + prop = true; + constructor() { + ~~~~~~~~~~~~~~~ + super.receivesAnything(this); + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + ~~~~~ +!!! error TS17011: 'super' must be called before accessing a property of 'super' in the constructor of a derived class. + ~~~~ +!!! error TS17009: 'super' must be called before accessing 'this' in the constructor of a derived class. + super(); + ~~~~~~~~~~~~~~~~ + } + ~~~~~ +!!! error TS2376: A 'super' call must be the first statement in the constructor to refer to 'super' or 'this' when a derived class contains initialized properties, parameter properties, or private identifiers. + } + + class Derived3 extends Base { + prop = true; + constructor() { + ~~~~~~~~~~~~~~~ + super.receivesAnything(); + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + ~~~~~ +!!! error TS17011: 'super' must be called before accessing a property of 'super' in the constructor of a derived class. + super(this); + ~~~~~~~~~~~~~~~~~~~~ + ~~~~ +!!! error TS17009: 'super' must be called before accessing 'this' in the constructor of a derived class. + } + ~~~~~ +!!! error TS2376: A 'super' call must be the first statement in the constructor to refer to 'super' or 'this' when a derived class contains initialized properties, parameter properties, or private identifiers. + } + + class Derived4 extends Base { + prop = true; + constructor() { + ~~~~~~~~~~~~~~~ + super.receivesAnything(this); + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + ~~~~~ +!!! error TS17011: 'super' must be called before accessing a property of 'super' in the constructor of a derived class. + ~~~~ +!!! error TS17009: 'super' must be called before accessing 'this' in the constructor of a derived class. + super(this); + ~~~~~~~~~~~~~~~~~~~~ + ~~~~ +!!! error TS17009: 'super' must be called before accessing 'this' in the constructor of a derived class. + } + ~~~~~ +!!! error TS2376: A 'super' call must be the first statement in the constructor to refer to 'super' or 'this' when a derived class contains initialized properties, parameter properties, or private identifiers. + } + + class Derived5 extends Base { + prop = true; + constructor() { + super(); + super.receivesAnything(); + } + } + + class Derived6 extends Base { + prop = true; + constructor() { + super(this); + ~~~~ +!!! error TS17009: 'super' must be called before accessing 'this' in the constructor of a derived class. + super.receivesAnything(); + } + } + + class Derived7 extends Base { + prop = true; + constructor() { + super(); + super.receivesAnything(this); + } + } + + class Derived8 extends Base { + prop = true; + constructor() { + super(this); + ~~~~ +!!! error TS17009: 'super' must be called before accessing 'this' in the constructor of a derived class. + super.receivesAnything(this); + } + } + + class DerivedWithArrowFunction extends Base { + prop = true; + constructor() { + (() => this)(); + super(); + } + } + + class DerivedWithArrowFunctionParameter extends Base { + prop = true; + constructor() { + const lambda = (param = this) => {}; + super(); + } + } + + class DerivedWithDecoratorOnClass extends Base { + prop = true; + constructor() { + ~~~~~~~~~~~~~~~ + @decorate(this) + ~~~~~~~~~~~~~~~~~~~~~~~ + ~~~~ +!!! error TS17009: 'super' must be called before accessing 'this' in the constructor of a derived class. + class InnerClass { } + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + + super(); + ~~~~~~~~~~~~~~~~ + } + ~~~~~ +!!! error TS2376: A 'super' call must be the first statement in the constructor to refer to 'super' or 'this' when a derived class contains initialized properties, parameter properties, or private identifiers. + } + + class DerivedWithDecoratorOnClassMethod extends Base { + prop = true; + constructor() { + ~~~~~~~~~~~~~~~ + class InnerClass { + ~~~~~~~~~~~~~~~~~~~~~~~~~~ + @decorate(this) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~ + ~~~~ +!!! error TS17009: 'super' must be called before accessing 'this' in the constructor of a derived class. + innerMethod() { } + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + } + ~~~~~~~~~ + + + super(); + ~~~~~~~~~~~~~~~~ + } + ~~~~~ +!!! error TS2376: A 'super' call must be the first statement in the constructor to refer to 'super' or 'this' when a derived class contains initialized properties, parameter properties, or private identifiers. + } + + class DerivedWithDecoratorOnClassProperty extends Base { + prop = true; + constructor() { + class InnerClass { + @decorate(this) + ~~~~ +!!! error TS17009: 'super' must be called before accessing 'this' in the constructor of a derived class. + innerProp = true; + } + + super(); + } + } + + class DerivedWithFunctionDeclaration extends Base { + prop = true; + constructor() { + function declaration() { + return this; + } + super(); + } + } + + class DerivedWithFunctionDeclarationAndThisParam extends Base { + prop = true; + constructor() { + function declaration(param = this) { + return param; + } + super(); + } + } + + class DerivedWithFunctionExpression extends Base { + prop = true; + constructor() { + (function () { + return this; + })(); + super(); + } + } + + class DerivedWithParenthesis extends Base { + prop = true; + constructor() { + (super()); + } + } + + class DerivedWithParenthesisAfterStatement extends Base { + prop = true; + constructor() { + ~~~~~~~~~~~~~~~ + this.prop; + ~~~~~~~~~~~~~~~~~~ + ~~~~ +!!! error TS17009: 'super' must be called before accessing 'this' in the constructor of a derived class. + (super()); + ~~~~~~~~~~~~~~~~~~ + } + ~~~~~ +!!! error TS2376: A 'super' call must be the first statement in the constructor to refer to 'super' or 'this' when a derived class contains initialized properties, parameter properties, or private identifiers. + } + + class DerivedWithParenthesisBeforeStatement extends Base { + prop = true; + constructor() { + (super()); + this.prop; + } + } + + class DerivedWithClassDeclaration extends Base { + prop = true; + constructor() { + class InnerClass { + private method() { + return this; + } + private property = 7; + constructor() { + this.property; + this.method(); + } + } + super(); + } + } + + class DerivedWithClassDeclarationExtendingMember extends Base { + memberClass = class { }; + constructor() { + ~~~~~~~~~~~~~~~ + class InnerClass extends this.memberClass { + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + ~~~~ +!!! error TS17009: 'super' must be called before accessing 'this' in the constructor of a derived class. + private method() { + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + return this; + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + } + ~~~~~~~~~~~~~ + private property = 7; + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + constructor() { + ~~~~~~~~~~~~~~~~~~~~~~~~~~~ + super(); + ~~~~~~~~~~~~~~~~~~~~~~~~ + this.property; + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + this.method(); + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + } + ~~~~~~~~~~~~~ + } + ~~~~~~~~~ + super(); + ~~~~~~~~~~~~~~~~ + } + ~~~~~ +!!! error TS2376: A 'super' call must be the first statement in the constructor to refer to 'super' or 'this' when a derived class contains initialized properties, parameter properties, or private identifiers. + } + + class DerivedWithClassExpression extends Base { + prop = true; + constructor() { + console.log(class { + private method() { + return this; + } + private property = 7; + constructor() { + this.property; + this.method(); + } + }); + super(); + } + } + + class DerivedWithClassExpressionExtendingMember extends Base { + memberClass = class { }; + constructor() { + ~~~~~~~~~~~~~~~ + console.log(class extends this.memberClass { }); + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + ~~~~ +!!! error TS17009: 'super' must be called before accessing 'this' in the constructor of a derived class. + super(); + ~~~~~~~~~~~~~~~~ + } + ~~~~~ +!!! error TS2376: A 'super' call must be the first statement in the constructor to refer to 'super' or 'this' when a derived class contains initialized properties, parameter properties, or private identifiers. + } + + class DerivedWithDerivedClassExpression extends Base { + prop = true; + constructor() { + console.log(class extends Base { + constructor() { + super(); + } + public foo() { + return this; + } + public bar = () => this; + }); + super(); + } + } + + class DerivedWithNewDerivedClassExpression extends Base { + prop = true; + constructor() { + console.log(new class extends Base { + constructor() { + super(); + } + }()); + super(); + } + } + + class DerivedWithObjectAccessors extends Base { + prop = true; + constructor() { + const obj = { + get prop() { + return true; + }, + set prop(param) { + this._prop = param; + } + }; + super(); + } + } + + class DerivedWithObjectAccessorsUsingThisInKeys extends Base { + propName = "prop"; + constructor() { + ~~~~~~~~~~~~~~~ + const obj = { + ~~~~~~~~~~~~~~~~~~~~~ + _prop: "prop", + ~~~~~~~~~~~~~~~~~~~~~~~~~~ + get [this.propName]() { + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + ~~~~ +!!! error TS17009: 'super' must be called before accessing 'this' in the constructor of a derived class. + return true; + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + }, + ~~~~~~~~~~~~~~ + set [this.propName](param) { + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + ~~~~ +!!! error TS17009: 'super' must be called before accessing 'this' in the constructor of a derived class. + this._prop = param; + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + } + ~~~~~~~~~~~~~ + }; + ~~~~~~~~~~ + super(); + ~~~~~~~~~~~~~~~~ + } + ~~~~~ +!!! error TS2376: A 'super' call must be the first statement in the constructor to refer to 'super' or 'this' when a derived class contains initialized properties, parameter properties, or private identifiers. + } + + class DerivedWithObjectAccessorsUsingThisInBodies extends Base { + propName = "prop"; + constructor() { + const obj = { + _prop: "prop", + get prop() { + return this._prop; + }, + set prop(param) { + this._prop = param; + } + }; + super(); + } + } + + class DerivedWithObjectComputedPropertyBody extends Base { + propName = "prop"; + constructor() { + ~~~~~~~~~~~~~~~ + const obj = { + ~~~~~~~~~~~~~~~~~~~~~ + prop: this.propName, + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + ~~~~ +!!! error TS17009: 'super' must be called before accessing 'this' in the constructor of a derived class. + }; + ~~~~~~~~~~ + super(); + ~~~~~~~~~~~~~~~~ + } + ~~~~~ +!!! error TS2376: A 'super' call must be the first statement in the constructor to refer to 'super' or 'this' when a derived class contains initialized properties, parameter properties, or private identifiers. + } + + class DerivedWithObjectComputedPropertyName extends Base { + propName = "prop"; + constructor() { + ~~~~~~~~~~~~~~~ + const obj = { + ~~~~~~~~~~~~~~~~~~~~~ + [this.propName]: true, + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + ~~~~ +!!! error TS17009: 'super' must be called before accessing 'this' in the constructor of a derived class. + }; + ~~~~~~~~~~ + super(); + ~~~~~~~~~~~~~~~~ + } + ~~~~~ +!!! error TS2376: A 'super' call must be the first statement in the constructor to refer to 'super' or 'this' when a derived class contains initialized properties, parameter properties, or private identifiers. + } + + class DerivedWithObjectMethod extends Base { + prop = true; + constructor() { + const obj = { + getProp() { + return this; + }, + }; + super(); + } + } + + let a, b; + + const DerivedWithLoops = [ + class extends Base { + prop = true; + constructor() { + for(super();;) {} + ~~~~~~~ +!!! error TS2401: A 'super' call must be a root-level statement within a constructor of a derived class that contains initialized properties, parameter properties, or private identifiers. + } + }, + class extends Base { + prop = true; + constructor() { + for(a; super();) {} + ~~~~~~~ +!!! error TS1345: An expression of type 'void' cannot be tested for truthiness. + ~~~~~~~ +!!! error TS2401: A 'super' call must be a root-level statement within a constructor of a derived class that contains initialized properties, parameter properties, or private identifiers. + } + }, + class extends Base { + prop = true; + constructor() { + for(a; b; super()) {} + ~~~~~~~ +!!! error TS2401: A 'super' call must be a root-level statement within a constructor of a derived class that contains initialized properties, parameter properties, or private identifiers. + } + }, + class extends Base { + prop = true; + constructor() { + for(; ; super()) { break; } + ~~~~~~~ +!!! error TS2401: A 'super' call must be a root-level statement within a constructor of a derived class that contains initialized properties, parameter properties, or private identifiers. + } + }, + class extends Base { + prop = true; + constructor() { + for (const x of super()) {} + ~~~~~~~ +!!! error TS2401: A 'super' call must be a root-level statement within a constructor of a derived class that contains initialized properties, parameter properties, or private identifiers. + ~~~~~~~ +!!! error TS2495: Type 'void' is not an array type or a string type. + } + }, + class extends Base { + prop = true; + constructor() { + while (super()) {} + ~~~~~~~ +!!! error TS1345: An expression of type 'void' cannot be tested for truthiness. + ~~~~~~~ +!!! error TS2401: A 'super' call must be a root-level statement within a constructor of a derived class that contains initialized properties, parameter properties, or private identifiers. + } + }, + class extends Base { + prop = true; + constructor() { + do {} while (super()); + ~~~~~~~ +!!! error TS1345: An expression of type 'void' cannot be tested for truthiness. + ~~~~~~~ +!!! error TS2401: A 'super' call must be a root-level statement within a constructor of a derived class that contains initialized properties, parameter properties, or private identifiers. + } + }, + class extends Base { + prop = true; + constructor() { + if (super()) {} + ~~~~~~~ +!!! error TS1345: An expression of type 'void' cannot be tested for truthiness. + ~~~~~~~ +!!! error TS2401: A 'super' call must be a root-level statement within a constructor of a derived class that contains initialized properties, parameter properties, or private identifiers. + } + }, + class extends Base { + prop = true; + constructor() { + switch (super()) {} + ~~~~~~~ +!!! error TS2401: A 'super' call must be a root-level statement within a constructor of a derived class that contains initialized properties, parameter properties, or private identifiers. + } + }, + ] + \ No newline at end of file diff --git a/tests/baselines/reference/derivedClassSuperProperties.js b/tests/baselines/reference/derivedClassSuperProperties.js new file mode 100644 index 0000000000000..9dfd73cd39f20 --- /dev/null +++ b/tests/baselines/reference/derivedClassSuperProperties.js @@ -0,0 +1,1001 @@ +//// [derivedClassSuperProperties.ts] +declare const decorate: any; + +class Base { + constructor(a?) { } + + receivesAnything(param?) { } +} + +class Derived1 extends Base { + prop = true; + constructor() { + super.receivesAnything(); + super(); + } +} + +class Derived2 extends Base { + prop = true; + constructor() { + super.receivesAnything(this); + super(); + } +} + +class Derived3 extends Base { + prop = true; + constructor() { + super.receivesAnything(); + super(this); + } +} + +class Derived4 extends Base { + prop = true; + constructor() { + super.receivesAnything(this); + super(this); + } +} + +class Derived5 extends Base { + prop = true; + constructor() { + super(); + super.receivesAnything(); + } +} + +class Derived6 extends Base { + prop = true; + constructor() { + super(this); + super.receivesAnything(); + } +} + +class Derived7 extends Base { + prop = true; + constructor() { + super(); + super.receivesAnything(this); + } +} + +class Derived8 extends Base { + prop = true; + constructor() { + super(this); + super.receivesAnything(this); + } +} + +class DerivedWithArrowFunction extends Base { + prop = true; + constructor() { + (() => this)(); + super(); + } +} + +class DerivedWithArrowFunctionParameter extends Base { + prop = true; + constructor() { + const lambda = (param = this) => {}; + super(); + } +} + +class DerivedWithDecoratorOnClass extends Base { + prop = true; + constructor() { + @decorate(this) + class InnerClass { } + + super(); + } +} + +class DerivedWithDecoratorOnClassMethod extends Base { + prop = true; + constructor() { + class InnerClass { + @decorate(this) + innerMethod() { } + } + + super(); + } +} + +class DerivedWithDecoratorOnClassProperty extends Base { + prop = true; + constructor() { + class InnerClass { + @decorate(this) + innerProp = true; + } + + super(); + } +} + +class DerivedWithFunctionDeclaration extends Base { + prop = true; + constructor() { + function declaration() { + return this; + } + super(); + } +} + +class DerivedWithFunctionDeclarationAndThisParam extends Base { + prop = true; + constructor() { + function declaration(param = this) { + return param; + } + super(); + } +} + +class DerivedWithFunctionExpression extends Base { + prop = true; + constructor() { + (function () { + return this; + })(); + super(); + } +} + +class DerivedWithParenthesis extends Base { + prop = true; + constructor() { + (super()); + } +} + +class DerivedWithParenthesisAfterStatement extends Base { + prop = true; + constructor() { + this.prop; + (super()); + } +} + +class DerivedWithParenthesisBeforeStatement extends Base { + prop = true; + constructor() { + (super()); + this.prop; + } +} + +class DerivedWithClassDeclaration extends Base { + prop = true; + constructor() { + class InnerClass { + private method() { + return this; + } + private property = 7; + constructor() { + this.property; + this.method(); + } + } + super(); + } +} + +class DerivedWithClassDeclarationExtendingMember extends Base { + memberClass = class { }; + constructor() { + class InnerClass extends this.memberClass { + private method() { + return this; + } + private property = 7; + constructor() { + super(); + this.property; + this.method(); + } + } + super(); + } +} + +class DerivedWithClassExpression extends Base { + prop = true; + constructor() { + console.log(class { + private method() { + return this; + } + private property = 7; + constructor() { + this.property; + this.method(); + } + }); + super(); + } +} + +class DerivedWithClassExpressionExtendingMember extends Base { + memberClass = class { }; + constructor() { + console.log(class extends this.memberClass { }); + super(); + } +} + +class DerivedWithDerivedClassExpression extends Base { + prop = true; + constructor() { + console.log(class extends Base { + constructor() { + super(); + } + public foo() { + return this; + } + public bar = () => this; + }); + super(); + } +} + +class DerivedWithNewDerivedClassExpression extends Base { + prop = true; + constructor() { + console.log(new class extends Base { + constructor() { + super(); + } + }()); + super(); + } +} + +class DerivedWithObjectAccessors extends Base { + prop = true; + constructor() { + const obj = { + get prop() { + return true; + }, + set prop(param) { + this._prop = param; + } + }; + super(); + } +} + +class DerivedWithObjectAccessorsUsingThisInKeys extends Base { + propName = "prop"; + constructor() { + const obj = { + _prop: "prop", + get [this.propName]() { + return true; + }, + set [this.propName](param) { + this._prop = param; + } + }; + super(); + } +} + +class DerivedWithObjectAccessorsUsingThisInBodies extends Base { + propName = "prop"; + constructor() { + const obj = { + _prop: "prop", + get prop() { + return this._prop; + }, + set prop(param) { + this._prop = param; + } + }; + super(); + } +} + +class DerivedWithObjectComputedPropertyBody extends Base { + propName = "prop"; + constructor() { + const obj = { + prop: this.propName, + }; + super(); + } +} + +class DerivedWithObjectComputedPropertyName extends Base { + propName = "prop"; + constructor() { + const obj = { + [this.propName]: true, + }; + super(); + } +} + +class DerivedWithObjectMethod extends Base { + prop = true; + constructor() { + const obj = { + getProp() { + return this; + }, + }; + super(); + } +} + +let a, b; + +const DerivedWithLoops = [ + class extends Base { + prop = true; + constructor() { + for(super();;) {} + } + }, + class extends Base { + prop = true; + constructor() { + for(a; super();) {} + } + }, + class extends Base { + prop = true; + constructor() { + for(a; b; super()) {} + } + }, + class extends Base { + prop = true; + constructor() { + for(; ; super()) { break; } + } + }, + class extends Base { + prop = true; + constructor() { + for (const x of super()) {} + } + }, + class extends Base { + prop = true; + constructor() { + while (super()) {} + } + }, + class extends Base { + prop = true; + constructor() { + do {} while (super()); + } + }, + class extends Base { + prop = true; + constructor() { + if (super()) {} + } + }, + class extends Base { + prop = true; + constructor() { + switch (super()) {} + } + }, +] + + +//// [derivedClassSuperProperties.js] +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var Base = /** @class */ (function () { + function Base(a) { + } + Base.prototype.receivesAnything = function (param) { }; + return Base; +}()); +var Derived1 = /** @class */ (function (_super) { + __extends(Derived1, _super); + function Derived1() { + var _this = this; + _super.prototype.receivesAnything.call(_this); + _this = _super.call(this) || this; + _this.prop = true; + return _this; + } + return Derived1; +}(Base)); +var Derived2 = /** @class */ (function (_super) { + __extends(Derived2, _super); + function Derived2() { + var _this = this; + _super.prototype.receivesAnything.call(_this, _this); + _this = _super.call(this) || this; + _this.prop = true; + return _this; + } + return Derived2; +}(Base)); +var Derived3 = /** @class */ (function (_super) { + __extends(Derived3, _super); + function Derived3() { + var _this = this; + _super.prototype.receivesAnything.call(_this); + _this = _super.call(this, _this) || this; + _this.prop = true; + return _this; + } + return Derived3; +}(Base)); +var Derived4 = /** @class */ (function (_super) { + __extends(Derived4, _super); + function Derived4() { + var _this = this; + _super.prototype.receivesAnything.call(_this, _this); + _this = _super.call(this, _this) || this; + _this.prop = true; + return _this; + } + return Derived4; +}(Base)); +var Derived5 = /** @class */ (function (_super) { + __extends(Derived5, _super); + function Derived5() { + var _this = _super.call(this) || this; + _this.prop = true; + _super.prototype.receivesAnything.call(_this); + return _this; + } + return Derived5; +}(Base)); +var Derived6 = /** @class */ (function (_super) { + __extends(Derived6, _super); + function Derived6() { + var _this = _super.call(this, _this) || this; + _this.prop = true; + _super.prototype.receivesAnything.call(_this); + return _this; + } + return Derived6; +}(Base)); +var Derived7 = /** @class */ (function (_super) { + __extends(Derived7, _super); + function Derived7() { + var _this = _super.call(this) || this; + _this.prop = true; + _super.prototype.receivesAnything.call(_this, _this); + return _this; + } + return Derived7; +}(Base)); +var Derived8 = /** @class */ (function (_super) { + __extends(Derived8, _super); + function Derived8() { + var _this = _super.call(this, _this) || this; + _this.prop = true; + _super.prototype.receivesAnything.call(_this, _this); + return _this; + } + return Derived8; +}(Base)); +var DerivedWithArrowFunction = /** @class */ (function (_super) { + __extends(DerivedWithArrowFunction, _super); + function DerivedWithArrowFunction() { + var _this = this; + (function () { return _this; })(); + _this = _super.call(this) || this; + _this.prop = true; + return _this; + } + return DerivedWithArrowFunction; +}(Base)); +var DerivedWithArrowFunctionParameter = /** @class */ (function (_super) { + __extends(DerivedWithArrowFunctionParameter, _super); + function DerivedWithArrowFunctionParameter() { + var _this = this; + var lambda = function (param) { + if (param === void 0) { param = _this; } + }; + _this = _super.call(this) || this; + _this.prop = true; + return _this; + } + return DerivedWithArrowFunctionParameter; +}(Base)); +var DerivedWithDecoratorOnClass = /** @class */ (function (_super) { + __extends(DerivedWithDecoratorOnClass, _super); + function DerivedWithDecoratorOnClass() { + var _this = this; + var InnerClass = /** @class */ (function () { + function InnerClass() { + } + InnerClass = __decorate([ + decorate(this) + ], InnerClass); + return InnerClass; + }()); + _this = _super.call(this) || this; + _this.prop = true; + return _this; + } + return DerivedWithDecoratorOnClass; +}(Base)); +var DerivedWithDecoratorOnClassMethod = /** @class */ (function (_super) { + __extends(DerivedWithDecoratorOnClassMethod, _super); + function DerivedWithDecoratorOnClassMethod() { + var _this = this; + var InnerClass = /** @class */ (function () { + function InnerClass() { + } + InnerClass.prototype.innerMethod = function () { }; + __decorate([ + decorate(this) + ], InnerClass.prototype, "innerMethod", null); + return InnerClass; + }()); + _this = _super.call(this) || this; + _this.prop = true; + return _this; + } + return DerivedWithDecoratorOnClassMethod; +}(Base)); +var DerivedWithDecoratorOnClassProperty = /** @class */ (function (_super) { + __extends(DerivedWithDecoratorOnClassProperty, _super); + function DerivedWithDecoratorOnClassProperty() { + var _this = this; + var InnerClass = /** @class */ (function () { + function InnerClass() { + this.innerProp = true; + } + __decorate([ + decorate(this) + ], InnerClass.prototype, "innerProp", void 0); + return InnerClass; + }()); + _this = _super.call(this) || this; + _this.prop = true; + return _this; + } + return DerivedWithDecoratorOnClassProperty; +}(Base)); +var DerivedWithFunctionDeclaration = /** @class */ (function (_super) { + __extends(DerivedWithFunctionDeclaration, _super); + function DerivedWithFunctionDeclaration() { + var _this = this; + function declaration() { + return this; + } + _this = _super.call(this) || this; + _this.prop = true; + return _this; + } + return DerivedWithFunctionDeclaration; +}(Base)); +var DerivedWithFunctionDeclarationAndThisParam = /** @class */ (function (_super) { + __extends(DerivedWithFunctionDeclarationAndThisParam, _super); + function DerivedWithFunctionDeclarationAndThisParam() { + var _this = this; + function declaration(param) { + if (param === void 0) { param = this; } + return param; + } + _this = _super.call(this) || this; + _this.prop = true; + return _this; + } + return DerivedWithFunctionDeclarationAndThisParam; +}(Base)); +var DerivedWithFunctionExpression = /** @class */ (function (_super) { + __extends(DerivedWithFunctionExpression, _super); + function DerivedWithFunctionExpression() { + var _this = this; + (function () { + return this; + })(); + _this = _super.call(this) || this; + _this.prop = true; + return _this; + } + return DerivedWithFunctionExpression; +}(Base)); +var DerivedWithParenthesis = /** @class */ (function (_super) { + __extends(DerivedWithParenthesis, _super); + function DerivedWithParenthesis() { + var _this = _super.call(this) || this; + _this.prop = true; + return _this; + } + return DerivedWithParenthesis; +}(Base)); +var DerivedWithParenthesisAfterStatement = /** @class */ (function (_super) { + __extends(DerivedWithParenthesisAfterStatement, _super); + function DerivedWithParenthesisAfterStatement() { + var _this = this; + _this.prop; + _this = _super.call(this) || this; + _this.prop = true; + return _this; + } + return DerivedWithParenthesisAfterStatement; +}(Base)); +var DerivedWithParenthesisBeforeStatement = /** @class */ (function (_super) { + __extends(DerivedWithParenthesisBeforeStatement, _super); + function DerivedWithParenthesisBeforeStatement() { + var _this = _super.call(this) || this; + _this.prop = true; + _this.prop; + return _this; + } + return DerivedWithParenthesisBeforeStatement; +}(Base)); +var DerivedWithClassDeclaration = /** @class */ (function (_super) { + __extends(DerivedWithClassDeclaration, _super); + function DerivedWithClassDeclaration() { + var _this = this; + var InnerClass = /** @class */ (function () { + function InnerClass() { + this.property = 7; + this.property; + this.method(); + } + InnerClass.prototype.method = function () { + return this; + }; + return InnerClass; + }()); + _this = _super.call(this) || this; + _this.prop = true; + return _this; + } + return DerivedWithClassDeclaration; +}(Base)); +var DerivedWithClassDeclarationExtendingMember = /** @class */ (function (_super) { + __extends(DerivedWithClassDeclarationExtendingMember, _super); + function DerivedWithClassDeclarationExtendingMember() { + var _this = this; + var InnerClass = /** @class */ (function (_super) { + __extends(InnerClass, _super); + function InnerClass() { + var _this = _super.call(this) || this; + _this.property = 7; + _this.property; + _this.method(); + return _this; + } + InnerClass.prototype.method = function () { + return this; + }; + return InnerClass; + }(_this.memberClass)); + _this = _super.call(this) || this; + _this.memberClass = /** @class */ (function () { + function class_1() { + } + return class_1; + }()); + return _this; + } + return DerivedWithClassDeclarationExtendingMember; +}(Base)); +var DerivedWithClassExpression = /** @class */ (function (_super) { + __extends(DerivedWithClassExpression, _super); + function DerivedWithClassExpression() { + var _this = this; + console.log(/** @class */ (function () { + function class_2() { + this.property = 7; + this.property; + this.method(); + } + class_2.prototype.method = function () { + return this; + }; + return class_2; + }())); + _this = _super.call(this) || this; + _this.prop = true; + return _this; + } + return DerivedWithClassExpression; +}(Base)); +var DerivedWithClassExpressionExtendingMember = /** @class */ (function (_super) { + __extends(DerivedWithClassExpressionExtendingMember, _super); + function DerivedWithClassExpressionExtendingMember() { + var _this = this; + console.log(/** @class */ (function (_super) { + __extends(class_3, _super); + function class_3() { + return _super !== null && _super.apply(this, arguments) || this; + } + return class_3; + }(_this.memberClass))); + _this = _super.call(this) || this; + _this.memberClass = /** @class */ (function () { + function class_4() { + } + return class_4; + }()); + return _this; + } + return DerivedWithClassExpressionExtendingMember; +}(Base)); +var DerivedWithDerivedClassExpression = /** @class */ (function (_super) { + __extends(DerivedWithDerivedClassExpression, _super); + function DerivedWithDerivedClassExpression() { + var _this = this; + console.log(/** @class */ (function (_super) { + __extends(class_5, _super); + function class_5() { + var _this = _super.call(this) || this; + _this.bar = function () { return _this; }; + return _this; + } + class_5.prototype.foo = function () { + return this; + }; + return class_5; + }(Base))); + _this = _super.call(this) || this; + _this.prop = true; + return _this; + } + return DerivedWithDerivedClassExpression; +}(Base)); +var DerivedWithNewDerivedClassExpression = /** @class */ (function (_super) { + __extends(DerivedWithNewDerivedClassExpression, _super); + function DerivedWithNewDerivedClassExpression() { + var _this = this; + console.log(new /** @class */ (function (_super) { + __extends(class_6, _super); + function class_6() { + return _super.call(this) || this; + } + return class_6; + }(Base))()); + _this = _super.call(this) || this; + _this.prop = true; + return _this; + } + return DerivedWithNewDerivedClassExpression; +}(Base)); +var DerivedWithObjectAccessors = /** @class */ (function (_super) { + __extends(DerivedWithObjectAccessors, _super); + function DerivedWithObjectAccessors() { + var _this = this; + var obj = { + get prop() { + return true; + }, + set prop(param) { + this._prop = param; + } + }; + _this = _super.call(this) || this; + _this.prop = true; + return _this; + } + return DerivedWithObjectAccessors; +}(Base)); +var DerivedWithObjectAccessorsUsingThisInKeys = /** @class */ (function (_super) { + var _a; + __extends(DerivedWithObjectAccessorsUsingThisInKeys, _super); + function DerivedWithObjectAccessorsUsingThisInKeys() { + var _this = this; + var obj = (_a = { + _prop: "prop" + }, + Object.defineProperty(_a, _this.propName, { + get: function () { + return true; + }, + enumerable: false, + configurable: true + }), + Object.defineProperty(_a, _this.propName, { + set: function (param) { + this._prop = param; + }, + enumerable: false, + configurable: true + }), + _a); + _this = _super.call(this) || this; + _this.propName = "prop"; + return _this; + } + return DerivedWithObjectAccessorsUsingThisInKeys; +}(Base)); +var DerivedWithObjectAccessorsUsingThisInBodies = /** @class */ (function (_super) { + __extends(DerivedWithObjectAccessorsUsingThisInBodies, _super); + function DerivedWithObjectAccessorsUsingThisInBodies() { + var _this = this; + var obj = { + _prop: "prop", + get prop() { + return this._prop; + }, + set prop(param) { + this._prop = param; + } + }; + _this = _super.call(this) || this; + _this.propName = "prop"; + return _this; + } + return DerivedWithObjectAccessorsUsingThisInBodies; +}(Base)); +var DerivedWithObjectComputedPropertyBody = /** @class */ (function (_super) { + __extends(DerivedWithObjectComputedPropertyBody, _super); + function DerivedWithObjectComputedPropertyBody() { + var _this = this; + var obj = { + prop: _this.propName, + }; + _this = _super.call(this) || this; + _this.propName = "prop"; + return _this; + } + return DerivedWithObjectComputedPropertyBody; +}(Base)); +var DerivedWithObjectComputedPropertyName = /** @class */ (function (_super) { + var _b; + __extends(DerivedWithObjectComputedPropertyName, _super); + function DerivedWithObjectComputedPropertyName() { + var _this = this; + var obj = (_b = {}, + _b[_this.propName] = true, + _b); + _this = _super.call(this) || this; + _this.propName = "prop"; + return _this; + } + return DerivedWithObjectComputedPropertyName; +}(Base)); +var DerivedWithObjectMethod = /** @class */ (function (_super) { + __extends(DerivedWithObjectMethod, _super); + function DerivedWithObjectMethod() { + var _this = this; + var obj = { + getProp: function () { + return this; + }, + }; + _this = _super.call(this) || this; + _this.prop = true; + return _this; + } + return DerivedWithObjectMethod; +}(Base)); +var a, b; +var DerivedWithLoops = [ + /** @class */ (function (_super) { + __extends(class_7, _super); + function class_7() { + var _this = this; + _this.prop = true; + for (_this = _super.call(this) || this;;) { } + return _this; + } + return class_7; + }(Base)), + /** @class */ (function (_super) { + __extends(class_8, _super); + function class_8() { + var _this = this; + _this.prop = true; + for (a; _this = _super.call(this) || this;) { } + return _this; + } + return class_8; + }(Base)), + /** @class */ (function (_super) { + __extends(class_9, _super); + function class_9() { + var _this = this; + _this.prop = true; + for (a; b; _this = _super.call(this) || this) { } + return _this; + } + return class_9; + }(Base)), + /** @class */ (function (_super) { + __extends(class_10, _super); + function class_10() { + var _this = this; + _this.prop = true; + for (;; _this = _super.call(this) || this) { + break; + } + return _this; + } + return class_10; + }(Base)), + /** @class */ (function (_super) { + __extends(class_11, _super); + function class_11() { + var _this = this; + _this.prop = true; + for (var _i = 0, _a = _this = _super.call(this) || this; _i < _a.length; _i++) { + var x = _a[_i]; + } + return _this; + } + return class_11; + }(Base)), + /** @class */ (function (_super) { + __extends(class_12, _super); + function class_12() { + var _this = this; + _this.prop = true; + while (_this = _super.call(this) || this) { } + return _this; + } + return class_12; + }(Base)), + /** @class */ (function (_super) { + __extends(class_13, _super); + function class_13() { + var _this = this; + _this.prop = true; + do { } while (_this = _super.call(this) || this); + return _this; + } + return class_13; + }(Base)), + /** @class */ (function (_super) { + __extends(class_14, _super); + function class_14() { + var _this = this; + _this.prop = true; + if (_this = _super.call(this) || this) { } + return _this; + } + return class_14; + }(Base)), + /** @class */ (function (_super) { + __extends(class_15, _super); + function class_15() { + var _this = this; + _this.prop = true; + switch (_this = _super.call(this) || this) { + } + return _this; + } + return class_15; + }(Base)), +]; diff --git a/tests/baselines/reference/derivedClassSuperProperties.symbols b/tests/baselines/reference/derivedClassSuperProperties.symbols new file mode 100644 index 0000000000000..67d18567ad90f --- /dev/null +++ b/tests/baselines/reference/derivedClassSuperProperties.symbols @@ -0,0 +1,849 @@ +=== tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassSuperProperties.ts === +declare const decorate: any; +>decorate : Symbol(decorate, Decl(derivedClassSuperProperties.ts, 0, 13)) + +class Base { +>Base : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) + + constructor(a?) { } +>a : Symbol(a, Decl(derivedClassSuperProperties.ts, 3, 16)) + + receivesAnything(param?) { } +>receivesAnything : Symbol(Base.receivesAnything, Decl(derivedClassSuperProperties.ts, 3, 23)) +>param : Symbol(param, Decl(derivedClassSuperProperties.ts, 5, 21)) +} + +class Derived1 extends Base { +>Derived1 : Symbol(Derived1, Decl(derivedClassSuperProperties.ts, 6, 1)) +>Base : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) + + prop = true; +>prop : Symbol(Derived1.prop, Decl(derivedClassSuperProperties.ts, 8, 29)) + + constructor() { + super.receivesAnything(); +>super.receivesAnything : Symbol(Base.receivesAnything, Decl(derivedClassSuperProperties.ts, 3, 23)) +>super : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) +>receivesAnything : Symbol(Base.receivesAnything, Decl(derivedClassSuperProperties.ts, 3, 23)) + + super(); +>super : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) + } +} + +class Derived2 extends Base { +>Derived2 : Symbol(Derived2, Decl(derivedClassSuperProperties.ts, 14, 1)) +>Base : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) + + prop = true; +>prop : Symbol(Derived2.prop, Decl(derivedClassSuperProperties.ts, 16, 29)) + + constructor() { + super.receivesAnything(this); +>super.receivesAnything : Symbol(Base.receivesAnything, Decl(derivedClassSuperProperties.ts, 3, 23)) +>super : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) +>receivesAnything : Symbol(Base.receivesAnything, Decl(derivedClassSuperProperties.ts, 3, 23)) +>this : Symbol(Derived2, Decl(derivedClassSuperProperties.ts, 14, 1)) + + super(); +>super : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) + } +} + +class Derived3 extends Base { +>Derived3 : Symbol(Derived3, Decl(derivedClassSuperProperties.ts, 22, 1)) +>Base : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) + + prop = true; +>prop : Symbol(Derived3.prop, Decl(derivedClassSuperProperties.ts, 24, 29)) + + constructor() { + super.receivesAnything(); +>super.receivesAnything : Symbol(Base.receivesAnything, Decl(derivedClassSuperProperties.ts, 3, 23)) +>super : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) +>receivesAnything : Symbol(Base.receivesAnything, Decl(derivedClassSuperProperties.ts, 3, 23)) + + super(this); +>super : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) +>this : Symbol(Derived3, Decl(derivedClassSuperProperties.ts, 22, 1)) + } +} + +class Derived4 extends Base { +>Derived4 : Symbol(Derived4, Decl(derivedClassSuperProperties.ts, 30, 1)) +>Base : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) + + prop = true; +>prop : Symbol(Derived4.prop, Decl(derivedClassSuperProperties.ts, 32, 29)) + + constructor() { + super.receivesAnything(this); +>super.receivesAnything : Symbol(Base.receivesAnything, Decl(derivedClassSuperProperties.ts, 3, 23)) +>super : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) +>receivesAnything : Symbol(Base.receivesAnything, Decl(derivedClassSuperProperties.ts, 3, 23)) +>this : Symbol(Derived4, Decl(derivedClassSuperProperties.ts, 30, 1)) + + super(this); +>super : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) +>this : Symbol(Derived4, Decl(derivedClassSuperProperties.ts, 30, 1)) + } +} + +class Derived5 extends Base { +>Derived5 : Symbol(Derived5, Decl(derivedClassSuperProperties.ts, 38, 1)) +>Base : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) + + prop = true; +>prop : Symbol(Derived5.prop, Decl(derivedClassSuperProperties.ts, 40, 29)) + + constructor() { + super(); +>super : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) + + super.receivesAnything(); +>super.receivesAnything : Symbol(Base.receivesAnything, Decl(derivedClassSuperProperties.ts, 3, 23)) +>super : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) +>receivesAnything : Symbol(Base.receivesAnything, Decl(derivedClassSuperProperties.ts, 3, 23)) + } +} + +class Derived6 extends Base { +>Derived6 : Symbol(Derived6, Decl(derivedClassSuperProperties.ts, 46, 1)) +>Base : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) + + prop = true; +>prop : Symbol(Derived6.prop, Decl(derivedClassSuperProperties.ts, 48, 29)) + + constructor() { + super(this); +>super : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) +>this : Symbol(Derived6, Decl(derivedClassSuperProperties.ts, 46, 1)) + + super.receivesAnything(); +>super.receivesAnything : Symbol(Base.receivesAnything, Decl(derivedClassSuperProperties.ts, 3, 23)) +>super : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) +>receivesAnything : Symbol(Base.receivesAnything, Decl(derivedClassSuperProperties.ts, 3, 23)) + } +} + +class Derived7 extends Base { +>Derived7 : Symbol(Derived7, Decl(derivedClassSuperProperties.ts, 54, 1)) +>Base : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) + + prop = true; +>prop : Symbol(Derived7.prop, Decl(derivedClassSuperProperties.ts, 56, 29)) + + constructor() { + super(); +>super : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) + + super.receivesAnything(this); +>super.receivesAnything : Symbol(Base.receivesAnything, Decl(derivedClassSuperProperties.ts, 3, 23)) +>super : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) +>receivesAnything : Symbol(Base.receivesAnything, Decl(derivedClassSuperProperties.ts, 3, 23)) +>this : Symbol(Derived7, Decl(derivedClassSuperProperties.ts, 54, 1)) + } +} + +class Derived8 extends Base { +>Derived8 : Symbol(Derived8, Decl(derivedClassSuperProperties.ts, 62, 1)) +>Base : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) + + prop = true; +>prop : Symbol(Derived8.prop, Decl(derivedClassSuperProperties.ts, 64, 29)) + + constructor() { + super(this); +>super : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) +>this : Symbol(Derived8, Decl(derivedClassSuperProperties.ts, 62, 1)) + + super.receivesAnything(this); +>super.receivesAnything : Symbol(Base.receivesAnything, Decl(derivedClassSuperProperties.ts, 3, 23)) +>super : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) +>receivesAnything : Symbol(Base.receivesAnything, Decl(derivedClassSuperProperties.ts, 3, 23)) +>this : Symbol(Derived8, Decl(derivedClassSuperProperties.ts, 62, 1)) + } +} + +class DerivedWithArrowFunction extends Base { +>DerivedWithArrowFunction : Symbol(DerivedWithArrowFunction, Decl(derivedClassSuperProperties.ts, 70, 1)) +>Base : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) + + prop = true; +>prop : Symbol(DerivedWithArrowFunction.prop, Decl(derivedClassSuperProperties.ts, 72, 45)) + + constructor() { + (() => this)(); +>this : Symbol(DerivedWithArrowFunction, Decl(derivedClassSuperProperties.ts, 70, 1)) + + super(); +>super : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) + } +} + +class DerivedWithArrowFunctionParameter extends Base { +>DerivedWithArrowFunctionParameter : Symbol(DerivedWithArrowFunctionParameter, Decl(derivedClassSuperProperties.ts, 78, 1)) +>Base : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) + + prop = true; +>prop : Symbol(DerivedWithArrowFunctionParameter.prop, Decl(derivedClassSuperProperties.ts, 80, 54)) + + constructor() { + const lambda = (param = this) => {}; +>lambda : Symbol(lambda, Decl(derivedClassSuperProperties.ts, 83, 13)) +>param : Symbol(param, Decl(derivedClassSuperProperties.ts, 83, 24)) +>this : Symbol(DerivedWithArrowFunctionParameter, Decl(derivedClassSuperProperties.ts, 78, 1)) + + super(); +>super : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) + } +} + +class DerivedWithDecoratorOnClass extends Base { +>DerivedWithDecoratorOnClass : Symbol(DerivedWithDecoratorOnClass, Decl(derivedClassSuperProperties.ts, 86, 1)) +>Base : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) + + prop = true; +>prop : Symbol(DerivedWithDecoratorOnClass.prop, Decl(derivedClassSuperProperties.ts, 88, 48)) + + constructor() { + @decorate(this) +>decorate : Symbol(decorate, Decl(derivedClassSuperProperties.ts, 0, 13)) +>this : Symbol(DerivedWithDecoratorOnClass, Decl(derivedClassSuperProperties.ts, 86, 1)) + + class InnerClass { } +>InnerClass : Symbol(InnerClass, Decl(derivedClassSuperProperties.ts, 90, 19)) + + super(); +>super : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) + } +} + +class DerivedWithDecoratorOnClassMethod extends Base { +>DerivedWithDecoratorOnClassMethod : Symbol(DerivedWithDecoratorOnClassMethod, Decl(derivedClassSuperProperties.ts, 96, 1)) +>Base : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) + + prop = true; +>prop : Symbol(DerivedWithDecoratorOnClassMethod.prop, Decl(derivedClassSuperProperties.ts, 98, 54)) + + constructor() { + class InnerClass { +>InnerClass : Symbol(InnerClass, Decl(derivedClassSuperProperties.ts, 100, 19)) + + @decorate(this) +>decorate : Symbol(decorate, Decl(derivedClassSuperProperties.ts, 0, 13)) +>this : Symbol(DerivedWithDecoratorOnClassMethod, Decl(derivedClassSuperProperties.ts, 96, 1)) + + innerMethod() { } +>innerMethod : Symbol(InnerClass.innerMethod, Decl(derivedClassSuperProperties.ts, 101, 26)) + } + + super(); +>super : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) + } +} + +class DerivedWithDecoratorOnClassProperty extends Base { +>DerivedWithDecoratorOnClassProperty : Symbol(DerivedWithDecoratorOnClassProperty, Decl(derivedClassSuperProperties.ts, 108, 1)) +>Base : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) + + prop = true; +>prop : Symbol(DerivedWithDecoratorOnClassProperty.prop, Decl(derivedClassSuperProperties.ts, 110, 56)) + + constructor() { + class InnerClass { +>InnerClass : Symbol(InnerClass, Decl(derivedClassSuperProperties.ts, 112, 19)) + + @decorate(this) +>decorate : Symbol(decorate, Decl(derivedClassSuperProperties.ts, 0, 13)) +>this : Symbol(DerivedWithDecoratorOnClassProperty, Decl(derivedClassSuperProperties.ts, 108, 1)) + + innerProp = true; +>innerProp : Symbol(InnerClass.innerProp, Decl(derivedClassSuperProperties.ts, 113, 26)) + } + + super(); +>super : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) + } +} + +class DerivedWithFunctionDeclaration extends Base { +>DerivedWithFunctionDeclaration : Symbol(DerivedWithFunctionDeclaration, Decl(derivedClassSuperProperties.ts, 120, 1)) +>Base : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) + + prop = true; +>prop : Symbol(DerivedWithFunctionDeclaration.prop, Decl(derivedClassSuperProperties.ts, 122, 51)) + + constructor() { + function declaration() { +>declaration : Symbol(declaration, Decl(derivedClassSuperProperties.ts, 124, 19)) + + return this; + } + super(); +>super : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) + } +} + +class DerivedWithFunctionDeclarationAndThisParam extends Base { +>DerivedWithFunctionDeclarationAndThisParam : Symbol(DerivedWithFunctionDeclarationAndThisParam, Decl(derivedClassSuperProperties.ts, 130, 1)) +>Base : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) + + prop = true; +>prop : Symbol(DerivedWithFunctionDeclarationAndThisParam.prop, Decl(derivedClassSuperProperties.ts, 132, 63)) + + constructor() { + function declaration(param = this) { +>declaration : Symbol(declaration, Decl(derivedClassSuperProperties.ts, 134, 19)) +>param : Symbol(param, Decl(derivedClassSuperProperties.ts, 135, 29)) + + return param; +>param : Symbol(param, Decl(derivedClassSuperProperties.ts, 135, 29)) + } + super(); +>super : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) + } +} + +class DerivedWithFunctionExpression extends Base { +>DerivedWithFunctionExpression : Symbol(DerivedWithFunctionExpression, Decl(derivedClassSuperProperties.ts, 140, 1)) +>Base : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) + + prop = true; +>prop : Symbol(DerivedWithFunctionExpression.prop, Decl(derivedClassSuperProperties.ts, 142, 50)) + + constructor() { + (function () { + return this; + })(); + super(); +>super : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) + } +} + +class DerivedWithParenthesis extends Base { +>DerivedWithParenthesis : Symbol(DerivedWithParenthesis, Decl(derivedClassSuperProperties.ts, 150, 1)) +>Base : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) + + prop = true; +>prop : Symbol(DerivedWithParenthesis.prop, Decl(derivedClassSuperProperties.ts, 152, 43)) + + constructor() { + (super()); +>super : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) + } +} + +class DerivedWithParenthesisAfterStatement extends Base { +>DerivedWithParenthesisAfterStatement : Symbol(DerivedWithParenthesisAfterStatement, Decl(derivedClassSuperProperties.ts, 157, 1)) +>Base : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) + + prop = true; +>prop : Symbol(DerivedWithParenthesisAfterStatement.prop, Decl(derivedClassSuperProperties.ts, 159, 57)) + + constructor() { + this.prop; +>this.prop : Symbol(DerivedWithParenthesisAfterStatement.prop, Decl(derivedClassSuperProperties.ts, 159, 57)) +>this : Symbol(DerivedWithParenthesisAfterStatement, Decl(derivedClassSuperProperties.ts, 157, 1)) +>prop : Symbol(DerivedWithParenthesisAfterStatement.prop, Decl(derivedClassSuperProperties.ts, 159, 57)) + + (super()); +>super : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) + } +} + +class DerivedWithParenthesisBeforeStatement extends Base { +>DerivedWithParenthesisBeforeStatement : Symbol(DerivedWithParenthesisBeforeStatement, Decl(derivedClassSuperProperties.ts, 165, 1)) +>Base : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) + + prop = true; +>prop : Symbol(DerivedWithParenthesisBeforeStatement.prop, Decl(derivedClassSuperProperties.ts, 167, 58)) + + constructor() { + (super()); +>super : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) + + this.prop; +>this.prop : Symbol(DerivedWithParenthesisBeforeStatement.prop, Decl(derivedClassSuperProperties.ts, 167, 58)) +>this : Symbol(DerivedWithParenthesisBeforeStatement, Decl(derivedClassSuperProperties.ts, 165, 1)) +>prop : Symbol(DerivedWithParenthesisBeforeStatement.prop, Decl(derivedClassSuperProperties.ts, 167, 58)) + } +} + +class DerivedWithClassDeclaration extends Base { +>DerivedWithClassDeclaration : Symbol(DerivedWithClassDeclaration, Decl(derivedClassSuperProperties.ts, 173, 1)) +>Base : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) + + prop = true; +>prop : Symbol(DerivedWithClassDeclaration.prop, Decl(derivedClassSuperProperties.ts, 175, 48)) + + constructor() { + class InnerClass { +>InnerClass : Symbol(InnerClass, Decl(derivedClassSuperProperties.ts, 177, 19)) + + private method() { +>method : Symbol(InnerClass.method, Decl(derivedClassSuperProperties.ts, 178, 26)) + + return this; +>this : Symbol(InnerClass, Decl(derivedClassSuperProperties.ts, 177, 19)) + } + private property = 7; +>property : Symbol(InnerClass.property, Decl(derivedClassSuperProperties.ts, 181, 13)) + + constructor() { + this.property; +>this.property : Symbol(InnerClass.property, Decl(derivedClassSuperProperties.ts, 181, 13)) +>this : Symbol(InnerClass, Decl(derivedClassSuperProperties.ts, 177, 19)) +>property : Symbol(InnerClass.property, Decl(derivedClassSuperProperties.ts, 181, 13)) + + this.method(); +>this.method : Symbol(InnerClass.method, Decl(derivedClassSuperProperties.ts, 178, 26)) +>this : Symbol(InnerClass, Decl(derivedClassSuperProperties.ts, 177, 19)) +>method : Symbol(InnerClass.method, Decl(derivedClassSuperProperties.ts, 178, 26)) + } + } + super(); +>super : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) + } +} + +class DerivedWithClassDeclarationExtendingMember extends Base { +>DerivedWithClassDeclarationExtendingMember : Symbol(DerivedWithClassDeclarationExtendingMember, Decl(derivedClassSuperProperties.ts, 190, 1)) +>Base : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) + + memberClass = class { }; +>memberClass : Symbol(DerivedWithClassDeclarationExtendingMember.memberClass, Decl(derivedClassSuperProperties.ts, 192, 63)) + + constructor() { + class InnerClass extends this.memberClass { +>InnerClass : Symbol(InnerClass, Decl(derivedClassSuperProperties.ts, 194, 19)) +>this.memberClass : Symbol(DerivedWithClassDeclarationExtendingMember.memberClass, Decl(derivedClassSuperProperties.ts, 192, 63)) +>this : Symbol(DerivedWithClassDeclarationExtendingMember, Decl(derivedClassSuperProperties.ts, 190, 1)) +>memberClass : Symbol(DerivedWithClassDeclarationExtendingMember.memberClass, Decl(derivedClassSuperProperties.ts, 192, 63)) + + private method() { +>method : Symbol(InnerClass.method, Decl(derivedClassSuperProperties.ts, 195, 51)) + + return this; +>this : Symbol(InnerClass, Decl(derivedClassSuperProperties.ts, 194, 19)) + } + private property = 7; +>property : Symbol(InnerClass.property, Decl(derivedClassSuperProperties.ts, 198, 13)) + + constructor() { + super(); +>super : Symbol((Anonymous class), Decl(derivedClassSuperProperties.ts, 193, 17)) + + this.property; +>this.property : Symbol(InnerClass.property, Decl(derivedClassSuperProperties.ts, 198, 13)) +>this : Symbol(InnerClass, Decl(derivedClassSuperProperties.ts, 194, 19)) +>property : Symbol(InnerClass.property, Decl(derivedClassSuperProperties.ts, 198, 13)) + + this.method(); +>this.method : Symbol(InnerClass.method, Decl(derivedClassSuperProperties.ts, 195, 51)) +>this : Symbol(InnerClass, Decl(derivedClassSuperProperties.ts, 194, 19)) +>method : Symbol(InnerClass.method, Decl(derivedClassSuperProperties.ts, 195, 51)) + } + } + super(); +>super : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) + } +} + +class DerivedWithClassExpression extends Base { +>DerivedWithClassExpression : Symbol(DerivedWithClassExpression, Decl(derivedClassSuperProperties.ts, 208, 1)) +>Base : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) + + prop = true; +>prop : Symbol(DerivedWithClassExpression.prop, Decl(derivedClassSuperProperties.ts, 210, 47)) + + constructor() { + console.log(class { +>console.log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>console : Symbol(console, Decl(lib.dom.d.ts, --, --)) +>log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) + + private method() { +>method : Symbol((Anonymous class).method, Decl(derivedClassSuperProperties.ts, 213, 27)) + + return this; +>this : Symbol((Anonymous class), Decl(derivedClassSuperProperties.ts, 213, 20)) + } + private property = 7; +>property : Symbol((Anonymous class).property, Decl(derivedClassSuperProperties.ts, 216, 13)) + + constructor() { + this.property; +>this.property : Symbol((Anonymous class).property, Decl(derivedClassSuperProperties.ts, 216, 13)) +>this : Symbol((Anonymous class), Decl(derivedClassSuperProperties.ts, 213, 20)) +>property : Symbol((Anonymous class).property, Decl(derivedClassSuperProperties.ts, 216, 13)) + + this.method(); +>this.method : Symbol((Anonymous class).method, Decl(derivedClassSuperProperties.ts, 213, 27)) +>this : Symbol((Anonymous class), Decl(derivedClassSuperProperties.ts, 213, 20)) +>method : Symbol((Anonymous class).method, Decl(derivedClassSuperProperties.ts, 213, 27)) + } + }); + super(); +>super : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) + } +} + +class DerivedWithClassExpressionExtendingMember extends Base { +>DerivedWithClassExpressionExtendingMember : Symbol(DerivedWithClassExpressionExtendingMember, Decl(derivedClassSuperProperties.ts, 225, 1)) +>Base : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) + + memberClass = class { }; +>memberClass : Symbol(DerivedWithClassExpressionExtendingMember.memberClass, Decl(derivedClassSuperProperties.ts, 227, 62)) + + constructor() { + console.log(class extends this.memberClass { }); +>console.log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>console : Symbol(console, Decl(lib.dom.d.ts, --, --)) +>log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>this.memberClass : Symbol(DerivedWithClassExpressionExtendingMember.memberClass, Decl(derivedClassSuperProperties.ts, 227, 62)) +>this : Symbol(DerivedWithClassExpressionExtendingMember, Decl(derivedClassSuperProperties.ts, 225, 1)) +>memberClass : Symbol(DerivedWithClassExpressionExtendingMember.memberClass, Decl(derivedClassSuperProperties.ts, 227, 62)) + + super(); +>super : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) + } +} + +class DerivedWithDerivedClassExpression extends Base { +>DerivedWithDerivedClassExpression : Symbol(DerivedWithDerivedClassExpression, Decl(derivedClassSuperProperties.ts, 233, 1)) +>Base : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) + + prop = true; +>prop : Symbol(DerivedWithDerivedClassExpression.prop, Decl(derivedClassSuperProperties.ts, 235, 54)) + + constructor() { + console.log(class extends Base { +>console.log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>console : Symbol(console, Decl(lib.dom.d.ts, --, --)) +>log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>Base : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) + + constructor() { + super(); +>super : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) + } + public foo() { +>foo : Symbol((Anonymous class).foo, Decl(derivedClassSuperProperties.ts, 241, 13)) + + return this; +>this : Symbol((Anonymous class), Decl(derivedClassSuperProperties.ts, 238, 20)) + } + public bar = () => this; +>bar : Symbol((Anonymous class).bar, Decl(derivedClassSuperProperties.ts, 244, 13)) +>this : Symbol((Anonymous class), Decl(derivedClassSuperProperties.ts, 238, 20)) + + }); + super(); +>super : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) + } +} + +class DerivedWithNewDerivedClassExpression extends Base { +>DerivedWithNewDerivedClassExpression : Symbol(DerivedWithNewDerivedClassExpression, Decl(derivedClassSuperProperties.ts, 249, 1)) +>Base : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) + + prop = true; +>prop : Symbol(DerivedWithNewDerivedClassExpression.prop, Decl(derivedClassSuperProperties.ts, 251, 57)) + + constructor() { + console.log(new class extends Base { +>console.log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>console : Symbol(console, Decl(lib.dom.d.ts, --, --)) +>log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>Base : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) + + constructor() { + super(); +>super : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) + } + }()); + super(); +>super : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) + } +} + +class DerivedWithObjectAccessors extends Base { +>DerivedWithObjectAccessors : Symbol(DerivedWithObjectAccessors, Decl(derivedClassSuperProperties.ts, 261, 1)) +>Base : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) + + prop = true; +>prop : Symbol(DerivedWithObjectAccessors.prop, Decl(derivedClassSuperProperties.ts, 263, 47)) + + constructor() { + const obj = { +>obj : Symbol(obj, Decl(derivedClassSuperProperties.ts, 266, 13)) + + get prop() { +>prop : Symbol(prop, Decl(derivedClassSuperProperties.ts, 266, 21), Decl(derivedClassSuperProperties.ts, 269, 14)) + + return true; + }, + set prop(param) { +>prop : Symbol(prop, Decl(derivedClassSuperProperties.ts, 266, 21), Decl(derivedClassSuperProperties.ts, 269, 14)) +>param : Symbol(param, Decl(derivedClassSuperProperties.ts, 270, 21)) + + this._prop = param; +>param : Symbol(param, Decl(derivedClassSuperProperties.ts, 270, 21)) + } + }; + super(); +>super : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) + } +} + +class DerivedWithObjectAccessorsUsingThisInKeys extends Base { +>DerivedWithObjectAccessorsUsingThisInKeys : Symbol(DerivedWithObjectAccessorsUsingThisInKeys, Decl(derivedClassSuperProperties.ts, 276, 1)) +>Base : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) + + propName = "prop"; +>propName : Symbol(DerivedWithObjectAccessorsUsingThisInKeys.propName, Decl(derivedClassSuperProperties.ts, 278, 62)) + + constructor() { + const obj = { +>obj : Symbol(obj, Decl(derivedClassSuperProperties.ts, 281, 13)) + + _prop: "prop", +>_prop : Symbol(_prop, Decl(derivedClassSuperProperties.ts, 281, 21)) + + get [this.propName]() { +>[this.propName] : Symbol([this.propName], Decl(derivedClassSuperProperties.ts, 282, 26)) +>this.propName : Symbol(DerivedWithObjectAccessorsUsingThisInKeys.propName, Decl(derivedClassSuperProperties.ts, 278, 62)) +>this : Symbol(DerivedWithObjectAccessorsUsingThisInKeys, Decl(derivedClassSuperProperties.ts, 276, 1)) +>propName : Symbol(DerivedWithObjectAccessorsUsingThisInKeys.propName, Decl(derivedClassSuperProperties.ts, 278, 62)) + + return true; + }, + set [this.propName](param) { +>[this.propName] : Symbol([this.propName], Decl(derivedClassSuperProperties.ts, 285, 14)) +>this.propName : Symbol(DerivedWithObjectAccessorsUsingThisInKeys.propName, Decl(derivedClassSuperProperties.ts, 278, 62)) +>this : Symbol(DerivedWithObjectAccessorsUsingThisInKeys, Decl(derivedClassSuperProperties.ts, 276, 1)) +>propName : Symbol(DerivedWithObjectAccessorsUsingThisInKeys.propName, Decl(derivedClassSuperProperties.ts, 278, 62)) +>param : Symbol(param, Decl(derivedClassSuperProperties.ts, 286, 32)) + + this._prop = param; +>param : Symbol(param, Decl(derivedClassSuperProperties.ts, 286, 32)) + } + }; + super(); +>super : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) + } +} + +class DerivedWithObjectAccessorsUsingThisInBodies extends Base { +>DerivedWithObjectAccessorsUsingThisInBodies : Symbol(DerivedWithObjectAccessorsUsingThisInBodies, Decl(derivedClassSuperProperties.ts, 292, 1)) +>Base : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) + + propName = "prop"; +>propName : Symbol(DerivedWithObjectAccessorsUsingThisInBodies.propName, Decl(derivedClassSuperProperties.ts, 294, 64)) + + constructor() { + const obj = { +>obj : Symbol(obj, Decl(derivedClassSuperProperties.ts, 297, 13)) + + _prop: "prop", +>_prop : Symbol(_prop, Decl(derivedClassSuperProperties.ts, 297, 21)) + + get prop() { +>prop : Symbol(prop, Decl(derivedClassSuperProperties.ts, 298, 26), Decl(derivedClassSuperProperties.ts, 301, 14)) + + return this._prop; + }, + set prop(param) { +>prop : Symbol(prop, Decl(derivedClassSuperProperties.ts, 298, 26), Decl(derivedClassSuperProperties.ts, 301, 14)) +>param : Symbol(param, Decl(derivedClassSuperProperties.ts, 302, 21)) + + this._prop = param; +>param : Symbol(param, Decl(derivedClassSuperProperties.ts, 302, 21)) + } + }; + super(); +>super : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) + } +} + +class DerivedWithObjectComputedPropertyBody extends Base { +>DerivedWithObjectComputedPropertyBody : Symbol(DerivedWithObjectComputedPropertyBody, Decl(derivedClassSuperProperties.ts, 308, 1)) +>Base : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) + + propName = "prop"; +>propName : Symbol(DerivedWithObjectComputedPropertyBody.propName, Decl(derivedClassSuperProperties.ts, 310, 58)) + + constructor() { + const obj = { +>obj : Symbol(obj, Decl(derivedClassSuperProperties.ts, 313, 13)) + + prop: this.propName, +>prop : Symbol(prop, Decl(derivedClassSuperProperties.ts, 313, 21)) +>this.propName : Symbol(DerivedWithObjectComputedPropertyBody.propName, Decl(derivedClassSuperProperties.ts, 310, 58)) +>this : Symbol(DerivedWithObjectComputedPropertyBody, Decl(derivedClassSuperProperties.ts, 308, 1)) +>propName : Symbol(DerivedWithObjectComputedPropertyBody.propName, Decl(derivedClassSuperProperties.ts, 310, 58)) + + }; + super(); +>super : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) + } +} + +class DerivedWithObjectComputedPropertyName extends Base { +>DerivedWithObjectComputedPropertyName : Symbol(DerivedWithObjectComputedPropertyName, Decl(derivedClassSuperProperties.ts, 318, 1)) +>Base : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) + + propName = "prop"; +>propName : Symbol(DerivedWithObjectComputedPropertyName.propName, Decl(derivedClassSuperProperties.ts, 320, 58)) + + constructor() { + const obj = { +>obj : Symbol(obj, Decl(derivedClassSuperProperties.ts, 323, 13)) + + [this.propName]: true, +>[this.propName] : Symbol([this.propName], Decl(derivedClassSuperProperties.ts, 323, 21)) +>this.propName : Symbol(DerivedWithObjectComputedPropertyName.propName, Decl(derivedClassSuperProperties.ts, 320, 58)) +>this : Symbol(DerivedWithObjectComputedPropertyName, Decl(derivedClassSuperProperties.ts, 318, 1)) +>propName : Symbol(DerivedWithObjectComputedPropertyName.propName, Decl(derivedClassSuperProperties.ts, 320, 58)) + + }; + super(); +>super : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) + } +} + +class DerivedWithObjectMethod extends Base { +>DerivedWithObjectMethod : Symbol(DerivedWithObjectMethod, Decl(derivedClassSuperProperties.ts, 328, 1)) +>Base : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) + + prop = true; +>prop : Symbol(DerivedWithObjectMethod.prop, Decl(derivedClassSuperProperties.ts, 330, 44)) + + constructor() { + const obj = { +>obj : Symbol(obj, Decl(derivedClassSuperProperties.ts, 333, 13)) + + getProp() { +>getProp : Symbol(getProp, Decl(derivedClassSuperProperties.ts, 333, 21)) + + return this; + }, + }; + super(); +>super : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) + } +} + +let a, b; +>a : Symbol(a, Decl(derivedClassSuperProperties.ts, 342, 3)) +>b : Symbol(b, Decl(derivedClassSuperProperties.ts, 342, 6)) + +const DerivedWithLoops = [ +>DerivedWithLoops : Symbol(DerivedWithLoops, Decl(derivedClassSuperProperties.ts, 344, 5)) + + class extends Base { +>Base : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) + + prop = true; +>prop : Symbol((Anonymous class).prop, Decl(derivedClassSuperProperties.ts, 345, 24)) + + constructor() { + for(super();;) {} +>super : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) + } + }, + class extends Base { +>Base : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) + + prop = true; +>prop : Symbol((Anonymous class).prop, Decl(derivedClassSuperProperties.ts, 351, 24)) + + constructor() { + for(a; super();) {} +>a : Symbol(a, Decl(derivedClassSuperProperties.ts, 342, 3)) +>super : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) + } + }, + class extends Base { +>Base : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) + + prop = true; +>prop : Symbol((Anonymous class).prop, Decl(derivedClassSuperProperties.ts, 357, 24)) + + constructor() { + for(a; b; super()) {} +>a : Symbol(a, Decl(derivedClassSuperProperties.ts, 342, 3)) +>b : Symbol(b, Decl(derivedClassSuperProperties.ts, 342, 6)) +>super : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) + } + }, + class extends Base { +>Base : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) + + prop = true; +>prop : Symbol((Anonymous class).prop, Decl(derivedClassSuperProperties.ts, 363, 24)) + + constructor() { + for(; ; super()) { break; } +>super : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) + } + }, + class extends Base { +>Base : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) + + prop = true; +>prop : Symbol((Anonymous class).prop, Decl(derivedClassSuperProperties.ts, 369, 24)) + + constructor() { + for (const x of super()) {} +>x : Symbol(x, Decl(derivedClassSuperProperties.ts, 372, 22)) +>super : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) + } + }, + class extends Base { +>Base : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) + + prop = true; +>prop : Symbol((Anonymous class).prop, Decl(derivedClassSuperProperties.ts, 375, 24)) + + constructor() { + while (super()) {} +>super : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) + } + }, + class extends Base { +>Base : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) + + prop = true; +>prop : Symbol((Anonymous class).prop, Decl(derivedClassSuperProperties.ts, 381, 24)) + + constructor() { + do {} while (super()); +>super : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) + } + }, + class extends Base { +>Base : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) + + prop = true; +>prop : Symbol((Anonymous class).prop, Decl(derivedClassSuperProperties.ts, 387, 24)) + + constructor() { + if (super()) {} +>super : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) + } + }, + class extends Base { +>Base : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) + + prop = true; +>prop : Symbol((Anonymous class).prop, Decl(derivedClassSuperProperties.ts, 393, 24)) + + constructor() { + switch (super()) {} +>super : Symbol(Base, Decl(derivedClassSuperProperties.ts, 0, 28)) + } + }, +] + diff --git a/tests/baselines/reference/derivedClassSuperProperties.types b/tests/baselines/reference/derivedClassSuperProperties.types new file mode 100644 index 0000000000000..c52f578ce7ecd --- /dev/null +++ b/tests/baselines/reference/derivedClassSuperProperties.types @@ -0,0 +1,1016 @@ +=== tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassSuperProperties.ts === +declare const decorate: any; +>decorate : any + +class Base { +>Base : Base + + constructor(a?) { } +>a : any + + receivesAnything(param?) { } +>receivesAnything : (param?: any) => void +>param : any +} + +class Derived1 extends Base { +>Derived1 : Derived1 +>Base : Base + + prop = true; +>prop : boolean +>true : true + + constructor() { + super.receivesAnything(); +>super.receivesAnything() : void +>super.receivesAnything : (param?: any) => void +>super : Base +>receivesAnything : (param?: any) => void + + super(); +>super() : void +>super : typeof Base + } +} + +class Derived2 extends Base { +>Derived2 : Derived2 +>Base : Base + + prop = true; +>prop : boolean +>true : true + + constructor() { + super.receivesAnything(this); +>super.receivesAnything(this) : void +>super.receivesAnything : (param?: any) => void +>super : Base +>receivesAnything : (param?: any) => void +>this : this + + super(); +>super() : void +>super : typeof Base + } +} + +class Derived3 extends Base { +>Derived3 : Derived3 +>Base : Base + + prop = true; +>prop : boolean +>true : true + + constructor() { + super.receivesAnything(); +>super.receivesAnything() : void +>super.receivesAnything : (param?: any) => void +>super : Base +>receivesAnything : (param?: any) => void + + super(this); +>super(this) : void +>super : typeof Base +>this : this + } +} + +class Derived4 extends Base { +>Derived4 : Derived4 +>Base : Base + + prop = true; +>prop : boolean +>true : true + + constructor() { + super.receivesAnything(this); +>super.receivesAnything(this) : void +>super.receivesAnything : (param?: any) => void +>super : Base +>receivesAnything : (param?: any) => void +>this : this + + super(this); +>super(this) : void +>super : typeof Base +>this : this + } +} + +class Derived5 extends Base { +>Derived5 : Derived5 +>Base : Base + + prop = true; +>prop : boolean +>true : true + + constructor() { + super(); +>super() : void +>super : typeof Base + + super.receivesAnything(); +>super.receivesAnything() : void +>super.receivesAnything : (param?: any) => void +>super : Base +>receivesAnything : (param?: any) => void + } +} + +class Derived6 extends Base { +>Derived6 : Derived6 +>Base : Base + + prop = true; +>prop : boolean +>true : true + + constructor() { + super(this); +>super(this) : void +>super : typeof Base +>this : this + + super.receivesAnything(); +>super.receivesAnything() : void +>super.receivesAnything : (param?: any) => void +>super : Base +>receivesAnything : (param?: any) => void + } +} + +class Derived7 extends Base { +>Derived7 : Derived7 +>Base : Base + + prop = true; +>prop : boolean +>true : true + + constructor() { + super(); +>super() : void +>super : typeof Base + + super.receivesAnything(this); +>super.receivesAnything(this) : void +>super.receivesAnything : (param?: any) => void +>super : Base +>receivesAnything : (param?: any) => void +>this : this + } +} + +class Derived8 extends Base { +>Derived8 : Derived8 +>Base : Base + + prop = true; +>prop : boolean +>true : true + + constructor() { + super(this); +>super(this) : void +>super : typeof Base +>this : this + + super.receivesAnything(this); +>super.receivesAnything(this) : void +>super.receivesAnything : (param?: any) => void +>super : Base +>receivesAnything : (param?: any) => void +>this : this + } +} + +class DerivedWithArrowFunction extends Base { +>DerivedWithArrowFunction : DerivedWithArrowFunction +>Base : Base + + prop = true; +>prop : boolean +>true : true + + constructor() { + (() => this)(); +>(() => this)() : this +>(() => this) : () => this +>() => this : () => this +>this : this + + super(); +>super() : void +>super : typeof Base + } +} + +class DerivedWithArrowFunctionParameter extends Base { +>DerivedWithArrowFunctionParameter : DerivedWithArrowFunctionParameter +>Base : Base + + prop = true; +>prop : boolean +>true : true + + constructor() { + const lambda = (param = this) => {}; +>lambda : (param?: this) => void +>(param = this) => {} : (param?: this) => void +>param : this +>this : this + + super(); +>super() : void +>super : typeof Base + } +} + +class DerivedWithDecoratorOnClass extends Base { +>DerivedWithDecoratorOnClass : DerivedWithDecoratorOnClass +>Base : Base + + prop = true; +>prop : boolean +>true : true + + constructor() { + @decorate(this) +>decorate(this) : any +>decorate : any +>this : this + + class InnerClass { } +>InnerClass : InnerClass + + super(); +>super() : void +>super : typeof Base + } +} + +class DerivedWithDecoratorOnClassMethod extends Base { +>DerivedWithDecoratorOnClassMethod : DerivedWithDecoratorOnClassMethod +>Base : Base + + prop = true; +>prop : boolean +>true : true + + constructor() { + class InnerClass { +>InnerClass : InnerClass + + @decorate(this) +>decorate(this) : any +>decorate : any +>this : this + + innerMethod() { } +>innerMethod : () => void + } + + super(); +>super() : void +>super : typeof Base + } +} + +class DerivedWithDecoratorOnClassProperty extends Base { +>DerivedWithDecoratorOnClassProperty : DerivedWithDecoratorOnClassProperty +>Base : Base + + prop = true; +>prop : boolean +>true : true + + constructor() { + class InnerClass { +>InnerClass : InnerClass + + @decorate(this) +>decorate(this) : any +>decorate : any +>this : this + + innerProp = true; +>innerProp : boolean +>true : true + } + + super(); +>super() : void +>super : typeof Base + } +} + +class DerivedWithFunctionDeclaration extends Base { +>DerivedWithFunctionDeclaration : DerivedWithFunctionDeclaration +>Base : Base + + prop = true; +>prop : boolean +>true : true + + constructor() { + function declaration() { +>declaration : () => any + + return this; +>this : any + } + super(); +>super() : void +>super : typeof Base + } +} + +class DerivedWithFunctionDeclarationAndThisParam extends Base { +>DerivedWithFunctionDeclarationAndThisParam : DerivedWithFunctionDeclarationAndThisParam +>Base : Base + + prop = true; +>prop : boolean +>true : true + + constructor() { + function declaration(param = this) { +>declaration : (param?: any) => any +>param : any +>this : any + + return param; +>param : any + } + super(); +>super() : void +>super : typeof Base + } +} + +class DerivedWithFunctionExpression extends Base { +>DerivedWithFunctionExpression : DerivedWithFunctionExpression +>Base : Base + + prop = true; +>prop : boolean +>true : true + + constructor() { + (function () { +>(function () { return this; })() : any +>(function () { return this; }) : () => any +>function () { return this; } : () => any + + return this; +>this : any + + })(); + super(); +>super() : void +>super : typeof Base + } +} + +class DerivedWithParenthesis extends Base { +>DerivedWithParenthesis : DerivedWithParenthesis +>Base : Base + + prop = true; +>prop : boolean +>true : true + + constructor() { + (super()); +>(super()) : void +>super() : void +>super : typeof Base + } +} + +class DerivedWithParenthesisAfterStatement extends Base { +>DerivedWithParenthesisAfterStatement : DerivedWithParenthesisAfterStatement +>Base : Base + + prop = true; +>prop : boolean +>true : true + + constructor() { + this.prop; +>this.prop : boolean +>this : this +>prop : boolean + + (super()); +>(super()) : void +>super() : void +>super : typeof Base + } +} + +class DerivedWithParenthesisBeforeStatement extends Base { +>DerivedWithParenthesisBeforeStatement : DerivedWithParenthesisBeforeStatement +>Base : Base + + prop = true; +>prop : boolean +>true : true + + constructor() { + (super()); +>(super()) : void +>super() : void +>super : typeof Base + + this.prop; +>this.prop : boolean +>this : this +>prop : boolean + } +} + +class DerivedWithClassDeclaration extends Base { +>DerivedWithClassDeclaration : DerivedWithClassDeclaration +>Base : Base + + prop = true; +>prop : boolean +>true : true + + constructor() { + class InnerClass { +>InnerClass : InnerClass + + private method() { +>method : () => this + + return this; +>this : this + } + private property = 7; +>property : number +>7 : 7 + + constructor() { + this.property; +>this.property : number +>this : this +>property : number + + this.method(); +>this.method() : this +>this.method : () => this +>this : this +>method : () => this + } + } + super(); +>super() : void +>super : typeof Base + } +} + +class DerivedWithClassDeclarationExtendingMember extends Base { +>DerivedWithClassDeclarationExtendingMember : DerivedWithClassDeclarationExtendingMember +>Base : Base + + memberClass = class { }; +>memberClass : typeof (Anonymous class) +>class { } : typeof (Anonymous class) + + constructor() { + class InnerClass extends this.memberClass { +>InnerClass : InnerClass +>this.memberClass : (Anonymous class) +>this : this +>memberClass : typeof (Anonymous class) + + private method() { +>method : () => this + + return this; +>this : this + } + private property = 7; +>property : number +>7 : 7 + + constructor() { + super(); +>super() : void +>super : typeof (Anonymous class) + + this.property; +>this.property : number +>this : this +>property : number + + this.method(); +>this.method() : this +>this.method : () => this +>this : this +>method : () => this + } + } + super(); +>super() : void +>super : typeof Base + } +} + +class DerivedWithClassExpression extends Base { +>DerivedWithClassExpression : DerivedWithClassExpression +>Base : Base + + prop = true; +>prop : boolean +>true : true + + constructor() { + console.log(class { +>console.log(class { private method() { return this; } private property = 7; constructor() { this.property; this.method(); } }) : void +>console.log : (...data: any[]) => void +>console : Console +>log : (...data: any[]) => void +>class { private method() { return this; } private property = 7; constructor() { this.property; this.method(); } } : typeof (Anonymous class) + + private method() { +>method : () => this + + return this; +>this : this + } + private property = 7; +>property : number +>7 : 7 + + constructor() { + this.property; +>this.property : number +>this : this +>property : number + + this.method(); +>this.method() : this +>this.method : () => this +>this : this +>method : () => this + } + }); + super(); +>super() : void +>super : typeof Base + } +} + +class DerivedWithClassExpressionExtendingMember extends Base { +>DerivedWithClassExpressionExtendingMember : DerivedWithClassExpressionExtendingMember +>Base : Base + + memberClass = class { }; +>memberClass : typeof (Anonymous class) +>class { } : typeof (Anonymous class) + + constructor() { + console.log(class extends this.memberClass { }); +>console.log(class extends this.memberClass { }) : void +>console.log : (...data: any[]) => void +>console : Console +>log : (...data: any[]) => void +>class extends this.memberClass { } : typeof (Anonymous class) +>this.memberClass : (Anonymous class) +>this : this +>memberClass : typeof (Anonymous class) + + super(); +>super() : void +>super : typeof Base + } +} + +class DerivedWithDerivedClassExpression extends Base { +>DerivedWithDerivedClassExpression : DerivedWithDerivedClassExpression +>Base : Base + + prop = true; +>prop : boolean +>true : true + + constructor() { + console.log(class extends Base { +>console.log(class extends Base { constructor() { super(); } public foo() { return this; } public bar = () => this; }) : void +>console.log : (...data: any[]) => void +>console : Console +>log : (...data: any[]) => void +>class extends Base { constructor() { super(); } public foo() { return this; } public bar = () => this; } : typeof (Anonymous class) +>Base : Base + + constructor() { + super(); +>super() : void +>super : typeof Base + } + public foo() { +>foo : () => this + + return this; +>this : this + } + public bar = () => this; +>bar : () => this +>() => this : () => this +>this : this + + }); + super(); +>super() : void +>super : typeof Base + } +} + +class DerivedWithNewDerivedClassExpression extends Base { +>DerivedWithNewDerivedClassExpression : DerivedWithNewDerivedClassExpression +>Base : Base + + prop = true; +>prop : boolean +>true : true + + constructor() { + console.log(new class extends Base { +>console.log(new class extends Base { constructor() { super(); } }()) : void +>console.log : (...data: any[]) => void +>console : Console +>log : (...data: any[]) => void +>new class extends Base { constructor() { super(); } }() : (Anonymous class) +>class extends Base { constructor() { super(); } } : typeof (Anonymous class) +>Base : Base + + constructor() { + super(); +>super() : void +>super : typeof Base + } + }()); + super(); +>super() : void +>super : typeof Base + } +} + +class DerivedWithObjectAccessors extends Base { +>DerivedWithObjectAccessors : DerivedWithObjectAccessors +>Base : Base + + prop = true; +>prop : boolean +>true : true + + constructor() { + const obj = { +>obj : { prop: boolean; } +>{ get prop() { return true; }, set prop(param) { this._prop = param; } } : { prop: boolean; } + + get prop() { +>prop : boolean + + return true; +>true : true + + }, + set prop(param) { +>prop : boolean +>param : boolean + + this._prop = param; +>this._prop = param : boolean +>this._prop : any +>this : any +>_prop : any +>param : boolean + } + }; + super(); +>super() : void +>super : typeof Base + } +} + +class DerivedWithObjectAccessorsUsingThisInKeys extends Base { +>DerivedWithObjectAccessorsUsingThisInKeys : DerivedWithObjectAccessorsUsingThisInKeys +>Base : Base + + propName = "prop"; +>propName : string +>"prop" : "prop" + + constructor() { + const obj = { +>obj : { [x: string]: any; _prop: string; } +>{ _prop: "prop", get [this.propName]() { return true; }, set [this.propName](param) { this._prop = param; } } : { [x: string]: any; _prop: string; } + + _prop: "prop", +>_prop : string +>"prop" : "prop" + + get [this.propName]() { +>[this.propName] : boolean +>this.propName : string +>this : this +>propName : string + + return true; +>true : true + + }, + set [this.propName](param) { +>[this.propName] : any +>this.propName : string +>this : this +>propName : string +>param : any + + this._prop = param; +>this._prop = param : any +>this._prop : any +>this : any +>_prop : any +>param : any + } + }; + super(); +>super() : void +>super : typeof Base + } +} + +class DerivedWithObjectAccessorsUsingThisInBodies extends Base { +>DerivedWithObjectAccessorsUsingThisInBodies : DerivedWithObjectAccessorsUsingThisInBodies +>Base : Base + + propName = "prop"; +>propName : string +>"prop" : "prop" + + constructor() { + const obj = { +>obj : { _prop: string; prop: any; } +>{ _prop: "prop", get prop() { return this._prop; }, set prop(param) { this._prop = param; } } : { _prop: string; prop: any; } + + _prop: "prop", +>_prop : string +>"prop" : "prop" + + get prop() { +>prop : any + + return this._prop; +>this._prop : any +>this : any +>_prop : any + + }, + set prop(param) { +>prop : any +>param : any + + this._prop = param; +>this._prop = param : any +>this._prop : any +>this : any +>_prop : any +>param : any + } + }; + super(); +>super() : void +>super : typeof Base + } +} + +class DerivedWithObjectComputedPropertyBody extends Base { +>DerivedWithObjectComputedPropertyBody : DerivedWithObjectComputedPropertyBody +>Base : Base + + propName = "prop"; +>propName : string +>"prop" : "prop" + + constructor() { + const obj = { +>obj : { prop: string; } +>{ prop: this.propName, } : { prop: string; } + + prop: this.propName, +>prop : string +>this.propName : string +>this : this +>propName : string + + }; + super(); +>super() : void +>super : typeof Base + } +} + +class DerivedWithObjectComputedPropertyName extends Base { +>DerivedWithObjectComputedPropertyName : DerivedWithObjectComputedPropertyName +>Base : Base + + propName = "prop"; +>propName : string +>"prop" : "prop" + + constructor() { + const obj = { +>obj : { [x: string]: boolean; } +>{ [this.propName]: true, } : { [x: string]: boolean; } + + [this.propName]: true, +>[this.propName] : boolean +>this.propName : string +>this : this +>propName : string +>true : true + + }; + super(); +>super() : void +>super : typeof Base + } +} + +class DerivedWithObjectMethod extends Base { +>DerivedWithObjectMethod : DerivedWithObjectMethod +>Base : Base + + prop = true; +>prop : boolean +>true : true + + constructor() { + const obj = { +>obj : { getProp(): any; } +>{ getProp() { return this; }, } : { getProp(): any; } + + getProp() { +>getProp : () => any + + return this; +>this : any + + }, + }; + super(); +>super() : void +>super : typeof Base + } +} + +let a, b; +>a : any +>b : any + +const DerivedWithLoops = [ +>DerivedWithLoops : (typeof (Anonymous class))[] +>[ class extends Base { prop = true; constructor() { for(super();;) {} } }, class extends Base { prop = true; constructor() { for(a; super();) {} } }, class extends Base { prop = true; constructor() { for(a; b; super()) {} } }, class extends Base { prop = true; constructor() { for(; ; super()) { break; } } }, class extends Base { prop = true; constructor() { for (const x of super()) {} } }, class extends Base { prop = true; constructor() { while (super()) {} } }, class extends Base { prop = true; constructor() { do {} while (super()); } }, class extends Base { prop = true; constructor() { if (super()) {} } }, class extends Base { prop = true; constructor() { switch (super()) {} } },] : (typeof (Anonymous class))[] + + class extends Base { +>class extends Base { prop = true; constructor() { for(super();;) {} } } : typeof (Anonymous class) +>Base : Base + + prop = true; +>prop : boolean +>true : true + + constructor() { + for(super();;) {} +>super() : void +>super : typeof Base + } + }, + class extends Base { +>class extends Base { prop = true; constructor() { for(a; super();) {} } } : typeof (Anonymous class) +>Base : Base + + prop = true; +>prop : boolean +>true : true + + constructor() { + for(a; super();) {} +>a : any +>super() : void +>super : typeof Base + } + }, + class extends Base { +>class extends Base { prop = true; constructor() { for(a; b; super()) {} } } : typeof (Anonymous class) +>Base : Base + + prop = true; +>prop : boolean +>true : true + + constructor() { + for(a; b; super()) {} +>a : any +>b : any +>super() : void +>super : typeof Base + } + }, + class extends Base { +>class extends Base { prop = true; constructor() { for(; ; super()) { break; } } } : typeof (Anonymous class) +>Base : Base + + prop = true; +>prop : boolean +>true : true + + constructor() { + for(; ; super()) { break; } +>super() : void +>super : typeof Base + } + }, + class extends Base { +>class extends Base { prop = true; constructor() { for (const x of super()) {} } } : typeof (Anonymous class) +>Base : Base + + prop = true; +>prop : boolean +>true : true + + constructor() { + for (const x of super()) {} +>x : any +>super() : void +>super : typeof Base + } + }, + class extends Base { +>class extends Base { prop = true; constructor() { while (super()) {} } } : typeof (Anonymous class) +>Base : Base + + prop = true; +>prop : boolean +>true : true + + constructor() { + while (super()) {} +>super() : void +>super : typeof Base + } + }, + class extends Base { +>class extends Base { prop = true; constructor() { do {} while (super()); } } : typeof (Anonymous class) +>Base : Base + + prop = true; +>prop : boolean +>true : true + + constructor() { + do {} while (super()); +>super() : void +>super : typeof Base + } + }, + class extends Base { +>class extends Base { prop = true; constructor() { if (super()) {} } } : typeof (Anonymous class) +>Base : Base + + prop = true; +>prop : boolean +>true : true + + constructor() { + if (super()) {} +>super() : void +>super : typeof Base + } + }, + class extends Base { +>class extends Base { prop = true; constructor() { switch (super()) {} } } : typeof (Anonymous class) +>Base : Base + + prop = true; +>prop : boolean +>true : true + + constructor() { + switch (super()) {} +>super() : void +>super : typeof Base + } + }, +] + diff --git a/tests/baselines/reference/derivedClassSuperStatementPosition.errors.txt b/tests/baselines/reference/derivedClassSuperStatementPosition.errors.txt new file mode 100644 index 0000000000000..4a9df073646fa --- /dev/null +++ b/tests/baselines/reference/derivedClassSuperStatementPosition.errors.txt @@ -0,0 +1,120 @@ +tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassSuperStatementPosition.ts(12,9): error TS17009: 'super' must be called before accessing 'this' in the constructor of a derived class. +tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassSuperStatementPosition.ts(22,9): error TS17009: 'super' must be called before accessing 'this' in the constructor of a derived class. +tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassSuperStatementPosition.ts(45,9): error TS17009: 'super' must be called before accessing 'this' in the constructor of a derived class. +tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassSuperStatementPosition.ts(60,15): error TS2401: A 'super' call must be a root-level statement within a constructor of a derived class that contains initialized properties, parameter properties, or private identifiers. +tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassSuperStatementPosition.ts(69,13): error TS2401: A 'super' call must be a root-level statement within a constructor of a derived class that contains initialized properties, parameter properties, or private identifiers. +tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassSuperStatementPosition.ts(81,13): error TS2401: A 'super' call must be a root-level statement within a constructor of a derived class that contains initialized properties, parameter properties, or private identifiers. +tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassSuperStatementPosition.ts(90,13): error TS2401: A 'super' call must be a root-level statement within a constructor of a derived class that contains initialized properties, parameter properties, or private identifiers. + + +==== tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassSuperStatementPosition.ts (7 errors) ==== + class DerivedBasic extends Object { + prop = 1; + constructor() { + super(); + } + } + + class DerivedAfterParameterDefault extends Object { + x1: boolean; + x2: boolean; + constructor(x = false) { + this.x1 = x; + ~~~~ +!!! error TS17009: 'super' must be called before accessing 'this' in the constructor of a derived class. + super(x); + this.x2 = x; + } + } + + class DerivedAfterRestParameter extends Object { + x1: boolean[]; + x2: boolean[]; + constructor(...x: boolean[]) { + this.x1 = x; + ~~~~ +!!! error TS17009: 'super' must be called before accessing 'this' in the constructor of a derived class. + super(x); + this.x2 = x; + } + } + + class DerivedComments extends Object { + x: any; + constructor() { + // c1 + console.log(); // c2 + // c3 + super(); // c4 + // c5 + this.x = null; // c6 + // c7 + } + } + + class DerivedCommentsInvalidThis extends Object { + x: any; + constructor() { + // c0 + this; + ~~~~ +!!! error TS17009: 'super' must be called before accessing 'this' in the constructor of a derived class. + // c1 + console.log(); // c2 + // c3 + super(); // c4 + // c5 + this.x = null; // c6 + // c7 + } + } + + class DerivedInConditional extends Object { + prop = 1; + constructor() { + Math.random() + ? super(1) + ~~~~~~~~ +!!! error TS2401: A 'super' call must be a root-level statement within a constructor of a derived class that contains initialized properties, parameter properties, or private identifiers. + : super(0); + } + } + + class DerivedInIf extends Object { + prop = 1; + constructor() { + if (Math.random()) { + super(1); + ~~~~~~~~ +!!! error TS2401: A 'super' call must be a root-level statement within a constructor of a derived class that contains initialized properties, parameter properties, or private identifiers. + } + else { + super(0); + } + } + } + + class DerivedInBlockWithProperties extends Object { + prop = 1; + constructor(private paramProp = 2) { + { + super(); + ~~~~~~~ +!!! error TS2401: A 'super' call must be a root-level statement within a constructor of a derived class that contains initialized properties, parameter properties, or private identifiers. + } + } + } + + class DerivedInConditionalWithProperties extends Object { + prop = 1; + constructor(private paramProp = 2) { + if (Math.random()) { + super(1); + ~~~~~~~~ +!!! error TS2401: A 'super' call must be a root-level statement within a constructor of a derived class that contains initialized properties, parameter properties, or private identifiers. + } else { + super(0); + } + } + } + \ No newline at end of file diff --git a/tests/baselines/reference/derivedClassSuperStatementPosition.js b/tests/baselines/reference/derivedClassSuperStatementPosition.js new file mode 100644 index 0000000000000..45209f9319564 --- /dev/null +++ b/tests/baselines/reference/derivedClassSuperStatementPosition.js @@ -0,0 +1,239 @@ +//// [derivedClassSuperStatementPosition.ts] +class DerivedBasic extends Object { + prop = 1; + constructor() { + super(); + } +} + +class DerivedAfterParameterDefault extends Object { + x1: boolean; + x2: boolean; + constructor(x = false) { + this.x1 = x; + super(x); + this.x2 = x; + } +} + +class DerivedAfterRestParameter extends Object { + x1: boolean[]; + x2: boolean[]; + constructor(...x: boolean[]) { + this.x1 = x; + super(x); + this.x2 = x; + } +} + +class DerivedComments extends Object { + x: any; + constructor() { + // c1 + console.log(); // c2 + // c3 + super(); // c4 + // c5 + this.x = null; // c6 + // c7 + } +} + +class DerivedCommentsInvalidThis extends Object { + x: any; + constructor() { + // c0 + this; + // c1 + console.log(); // c2 + // c3 + super(); // c4 + // c5 + this.x = null; // c6 + // c7 + } +} + +class DerivedInConditional extends Object { + prop = 1; + constructor() { + Math.random() + ? super(1) + : super(0); + } +} + +class DerivedInIf extends Object { + prop = 1; + constructor() { + if (Math.random()) { + super(1); + } + else { + super(0); + } + } +} + +class DerivedInBlockWithProperties extends Object { + prop = 1; + constructor(private paramProp = 2) { + { + super(); + } + } +} + +class DerivedInConditionalWithProperties extends Object { + prop = 1; + constructor(private paramProp = 2) { + if (Math.random()) { + super(1); + } else { + super(0); + } + } +} + + +//// [derivedClassSuperStatementPosition.js] +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var DerivedBasic = /** @class */ (function (_super) { + __extends(DerivedBasic, _super); + function DerivedBasic() { + var _this = _super.call(this) || this; + _this.prop = 1; + return _this; + } + return DerivedBasic; +}(Object)); +var DerivedAfterParameterDefault = /** @class */ (function (_super) { + __extends(DerivedAfterParameterDefault, _super); + function DerivedAfterParameterDefault(x) { + if (x === void 0) { x = false; } + var _this = this; + _this.x1 = x; + _this = _super.call(this, x) || this; + _this.x2 = x; + return _this; + } + return DerivedAfterParameterDefault; +}(Object)); +var DerivedAfterRestParameter = /** @class */ (function (_super) { + __extends(DerivedAfterRestParameter, _super); + function DerivedAfterRestParameter() { + var x = []; + for (var _i = 0; _i < arguments.length; _i++) { + x[_i] = arguments[_i]; + } + var _this = this; + _this.x1 = x; + _this = _super.call(this, x) || this; + _this.x2 = x; + return _this; + } + return DerivedAfterRestParameter; +}(Object)); +var DerivedComments = /** @class */ (function (_super) { + __extends(DerivedComments, _super); + function DerivedComments() { + var _this = this; + // c1 + console.log(); // c2 + // c3 + _this = _super.call(this) || this; // c4 + // c5 + _this.x = null; // c6 + return _this; + // c7 + } + return DerivedComments; +}(Object)); +var DerivedCommentsInvalidThis = /** @class */ (function (_super) { + __extends(DerivedCommentsInvalidThis, _super); + function DerivedCommentsInvalidThis() { + var _this = this; + // c0 + _this; + // c1 + console.log(); // c2 + // c3 + _this = _super.call(this) || this; // c4 + // c5 + _this.x = null; // c6 + return _this; + // c7 + } + return DerivedCommentsInvalidThis; +}(Object)); +var DerivedInConditional = /** @class */ (function (_super) { + __extends(DerivedInConditional, _super); + function DerivedInConditional() { + var _this = this; + _this.prop = 1; + Math.random() + ? _this = _super.call(this, 1) || this : _this = _super.call(this, 0) || this; + return _this; + } + return DerivedInConditional; +}(Object)); +var DerivedInIf = /** @class */ (function (_super) { + __extends(DerivedInIf, _super); + function DerivedInIf() { + var _this = this; + _this.prop = 1; + if (Math.random()) { + _this = _super.call(this, 1) || this; + } + else { + _this = _super.call(this, 0) || this; + } + return _this; + } + return DerivedInIf; +}(Object)); +var DerivedInBlockWithProperties = /** @class */ (function (_super) { + __extends(DerivedInBlockWithProperties, _super); + function DerivedInBlockWithProperties(paramProp) { + if (paramProp === void 0) { paramProp = 2; } + var _this = this; + _this.paramProp = paramProp; + _this.prop = 1; + { + _this = _super.call(this) || this; + } + return _this; + } + return DerivedInBlockWithProperties; +}(Object)); +var DerivedInConditionalWithProperties = /** @class */ (function (_super) { + __extends(DerivedInConditionalWithProperties, _super); + function DerivedInConditionalWithProperties(paramProp) { + if (paramProp === void 0) { paramProp = 2; } + var _this = this; + _this.paramProp = paramProp; + _this.prop = 1; + if (Math.random()) { + _this = _super.call(this, 1) || this; + } + else { + _this = _super.call(this, 0) || this; + } + return _this; + } + return DerivedInConditionalWithProperties; +}(Object)); diff --git a/tests/baselines/reference/derivedClassSuperStatementPosition.symbols b/tests/baselines/reference/derivedClassSuperStatementPosition.symbols new file mode 100644 index 0000000000000..025889caea633 --- /dev/null +++ b/tests/baselines/reference/derivedClassSuperStatementPosition.symbols @@ -0,0 +1,221 @@ +=== tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassSuperStatementPosition.ts === +class DerivedBasic extends Object { +>DerivedBasic : Symbol(DerivedBasic, Decl(derivedClassSuperStatementPosition.ts, 0, 0)) +>Object : Symbol(Object, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) + + prop = 1; +>prop : Symbol(DerivedBasic.prop, Decl(derivedClassSuperStatementPosition.ts, 0, 35)) + + constructor() { + super(); +>super : Symbol(ObjectConstructor, Decl(lib.es5.d.ts, --, --)) + } +} + +class DerivedAfterParameterDefault extends Object { +>DerivedAfterParameterDefault : Symbol(DerivedAfterParameterDefault, Decl(derivedClassSuperStatementPosition.ts, 5, 1)) +>Object : Symbol(Object, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) + + x1: boolean; +>x1 : Symbol(DerivedAfterParameterDefault.x1, Decl(derivedClassSuperStatementPosition.ts, 7, 51)) + + x2: boolean; +>x2 : Symbol(DerivedAfterParameterDefault.x2, Decl(derivedClassSuperStatementPosition.ts, 8, 16)) + + constructor(x = false) { +>x : Symbol(x, Decl(derivedClassSuperStatementPosition.ts, 10, 16)) + + this.x1 = x; +>this.x1 : Symbol(DerivedAfterParameterDefault.x1, Decl(derivedClassSuperStatementPosition.ts, 7, 51)) +>this : Symbol(DerivedAfterParameterDefault, Decl(derivedClassSuperStatementPosition.ts, 5, 1)) +>x1 : Symbol(DerivedAfterParameterDefault.x1, Decl(derivedClassSuperStatementPosition.ts, 7, 51)) +>x : Symbol(x, Decl(derivedClassSuperStatementPosition.ts, 10, 16)) + + super(x); +>super : Symbol(ObjectConstructor, Decl(lib.es5.d.ts, --, --)) +>x : Symbol(x, Decl(derivedClassSuperStatementPosition.ts, 10, 16)) + + this.x2 = x; +>this.x2 : Symbol(DerivedAfterParameterDefault.x2, Decl(derivedClassSuperStatementPosition.ts, 8, 16)) +>this : Symbol(DerivedAfterParameterDefault, Decl(derivedClassSuperStatementPosition.ts, 5, 1)) +>x2 : Symbol(DerivedAfterParameterDefault.x2, Decl(derivedClassSuperStatementPosition.ts, 8, 16)) +>x : Symbol(x, Decl(derivedClassSuperStatementPosition.ts, 10, 16)) + } +} + +class DerivedAfterRestParameter extends Object { +>DerivedAfterRestParameter : Symbol(DerivedAfterRestParameter, Decl(derivedClassSuperStatementPosition.ts, 15, 1)) +>Object : Symbol(Object, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) + + x1: boolean[]; +>x1 : Symbol(DerivedAfterRestParameter.x1, Decl(derivedClassSuperStatementPosition.ts, 17, 48)) + + x2: boolean[]; +>x2 : Symbol(DerivedAfterRestParameter.x2, Decl(derivedClassSuperStatementPosition.ts, 18, 18)) + + constructor(...x: boolean[]) { +>x : Symbol(x, Decl(derivedClassSuperStatementPosition.ts, 20, 16)) + + this.x1 = x; +>this.x1 : Symbol(DerivedAfterRestParameter.x1, Decl(derivedClassSuperStatementPosition.ts, 17, 48)) +>this : Symbol(DerivedAfterRestParameter, Decl(derivedClassSuperStatementPosition.ts, 15, 1)) +>x1 : Symbol(DerivedAfterRestParameter.x1, Decl(derivedClassSuperStatementPosition.ts, 17, 48)) +>x : Symbol(x, Decl(derivedClassSuperStatementPosition.ts, 20, 16)) + + super(x); +>super : Symbol(ObjectConstructor, Decl(lib.es5.d.ts, --, --)) +>x : Symbol(x, Decl(derivedClassSuperStatementPosition.ts, 20, 16)) + + this.x2 = x; +>this.x2 : Symbol(DerivedAfterRestParameter.x2, Decl(derivedClassSuperStatementPosition.ts, 18, 18)) +>this : Symbol(DerivedAfterRestParameter, Decl(derivedClassSuperStatementPosition.ts, 15, 1)) +>x2 : Symbol(DerivedAfterRestParameter.x2, Decl(derivedClassSuperStatementPosition.ts, 18, 18)) +>x : Symbol(x, Decl(derivedClassSuperStatementPosition.ts, 20, 16)) + } +} + +class DerivedComments extends Object { +>DerivedComments : Symbol(DerivedComments, Decl(derivedClassSuperStatementPosition.ts, 25, 1)) +>Object : Symbol(Object, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) + + x: any; +>x : Symbol(DerivedComments.x, Decl(derivedClassSuperStatementPosition.ts, 27, 38)) + + constructor() { + // c1 + console.log(); // c2 +>console.log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>console : Symbol(console, Decl(lib.dom.d.ts, --, --)) +>log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) + + // c3 + super(); // c4 +>super : Symbol(ObjectConstructor, Decl(lib.es5.d.ts, --, --)) + + // c5 + this.x = null; // c6 +>this.x : Symbol(DerivedComments.x, Decl(derivedClassSuperStatementPosition.ts, 27, 38)) +>this : Symbol(DerivedComments, Decl(derivedClassSuperStatementPosition.ts, 25, 1)) +>x : Symbol(DerivedComments.x, Decl(derivedClassSuperStatementPosition.ts, 27, 38)) + + // c7 + } +} + +class DerivedCommentsInvalidThis extends Object { +>DerivedCommentsInvalidThis : Symbol(DerivedCommentsInvalidThis, Decl(derivedClassSuperStatementPosition.ts, 38, 1)) +>Object : Symbol(Object, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) + + x: any; +>x : Symbol(DerivedCommentsInvalidThis.x, Decl(derivedClassSuperStatementPosition.ts, 40, 49)) + + constructor() { + // c0 + this; +>this : Symbol(DerivedCommentsInvalidThis, Decl(derivedClassSuperStatementPosition.ts, 38, 1)) + + // c1 + console.log(); // c2 +>console.log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>console : Symbol(console, Decl(lib.dom.d.ts, --, --)) +>log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) + + // c3 + super(); // c4 +>super : Symbol(ObjectConstructor, Decl(lib.es5.d.ts, --, --)) + + // c5 + this.x = null; // c6 +>this.x : Symbol(DerivedCommentsInvalidThis.x, Decl(derivedClassSuperStatementPosition.ts, 40, 49)) +>this : Symbol(DerivedCommentsInvalidThis, Decl(derivedClassSuperStatementPosition.ts, 38, 1)) +>x : Symbol(DerivedCommentsInvalidThis.x, Decl(derivedClassSuperStatementPosition.ts, 40, 49)) + + // c7 + } +} + +class DerivedInConditional extends Object { +>DerivedInConditional : Symbol(DerivedInConditional, Decl(derivedClassSuperStatementPosition.ts, 53, 1)) +>Object : Symbol(Object, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) + + prop = 1; +>prop : Symbol(DerivedInConditional.prop, Decl(derivedClassSuperStatementPosition.ts, 55, 43)) + + constructor() { + Math.random() +>Math.random : Symbol(Math.random, Decl(lib.es5.d.ts, --, --)) +>Math : Symbol(Math, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>random : Symbol(Math.random, Decl(lib.es5.d.ts, --, --)) + + ? super(1) +>super : Symbol(ObjectConstructor, Decl(lib.es5.d.ts, --, --)) + + : super(0); +>super : Symbol(ObjectConstructor, Decl(lib.es5.d.ts, --, --)) + } +} + +class DerivedInIf extends Object { +>DerivedInIf : Symbol(DerivedInIf, Decl(derivedClassSuperStatementPosition.ts, 62, 1)) +>Object : Symbol(Object, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) + + prop = 1; +>prop : Symbol(DerivedInIf.prop, Decl(derivedClassSuperStatementPosition.ts, 64, 34)) + + constructor() { + if (Math.random()) { +>Math.random : Symbol(Math.random, Decl(lib.es5.d.ts, --, --)) +>Math : Symbol(Math, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>random : Symbol(Math.random, Decl(lib.es5.d.ts, --, --)) + + super(1); +>super : Symbol(ObjectConstructor, Decl(lib.es5.d.ts, --, --)) + } + else { + super(0); +>super : Symbol(ObjectConstructor, Decl(lib.es5.d.ts, --, --)) + } + } +} + +class DerivedInBlockWithProperties extends Object { +>DerivedInBlockWithProperties : Symbol(DerivedInBlockWithProperties, Decl(derivedClassSuperStatementPosition.ts, 74, 1)) +>Object : Symbol(Object, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) + + prop = 1; +>prop : Symbol(DerivedInBlockWithProperties.prop, Decl(derivedClassSuperStatementPosition.ts, 76, 51)) + + constructor(private paramProp = 2) { +>paramProp : Symbol(DerivedInBlockWithProperties.paramProp, Decl(derivedClassSuperStatementPosition.ts, 78, 16)) + { + super(); +>super : Symbol(ObjectConstructor, Decl(lib.es5.d.ts, --, --)) + } + } +} + +class DerivedInConditionalWithProperties extends Object { +>DerivedInConditionalWithProperties : Symbol(DerivedInConditionalWithProperties, Decl(derivedClassSuperStatementPosition.ts, 83, 1)) +>Object : Symbol(Object, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) + + prop = 1; +>prop : Symbol(DerivedInConditionalWithProperties.prop, Decl(derivedClassSuperStatementPosition.ts, 85, 57)) + + constructor(private paramProp = 2) { +>paramProp : Symbol(DerivedInConditionalWithProperties.paramProp, Decl(derivedClassSuperStatementPosition.ts, 87, 16)) + + if (Math.random()) { +>Math.random : Symbol(Math.random, Decl(lib.es5.d.ts, --, --)) +>Math : Symbol(Math, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>random : Symbol(Math.random, Decl(lib.es5.d.ts, --, --)) + + super(1); +>super : Symbol(ObjectConstructor, Decl(lib.es5.d.ts, --, --)) + + } else { + super(0); +>super : Symbol(ObjectConstructor, Decl(lib.es5.d.ts, --, --)) + } + } +} + diff --git a/tests/baselines/reference/derivedClassSuperStatementPosition.types b/tests/baselines/reference/derivedClassSuperStatementPosition.types new file mode 100644 index 0000000000000..ce3afe895e826 --- /dev/null +++ b/tests/baselines/reference/derivedClassSuperStatementPosition.types @@ -0,0 +1,261 @@ +=== tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassSuperStatementPosition.ts === +class DerivedBasic extends Object { +>DerivedBasic : DerivedBasic +>Object : Object + + prop = 1; +>prop : number +>1 : 1 + + constructor() { + super(); +>super() : void +>super : ObjectConstructor + } +} + +class DerivedAfterParameterDefault extends Object { +>DerivedAfterParameterDefault : DerivedAfterParameterDefault +>Object : Object + + x1: boolean; +>x1 : boolean + + x2: boolean; +>x2 : boolean + + constructor(x = false) { +>x : boolean +>false : false + + this.x1 = x; +>this.x1 = x : boolean +>this.x1 : boolean +>this : this +>x1 : boolean +>x : boolean + + super(x); +>super(x) : void +>super : ObjectConstructor +>x : boolean + + this.x2 = x; +>this.x2 = x : boolean +>this.x2 : boolean +>this : this +>x2 : boolean +>x : boolean + } +} + +class DerivedAfterRestParameter extends Object { +>DerivedAfterRestParameter : DerivedAfterRestParameter +>Object : Object + + x1: boolean[]; +>x1 : boolean[] + + x2: boolean[]; +>x2 : boolean[] + + constructor(...x: boolean[]) { +>x : boolean[] + + this.x1 = x; +>this.x1 = x : boolean[] +>this.x1 : boolean[] +>this : this +>x1 : boolean[] +>x : boolean[] + + super(x); +>super(x) : void +>super : ObjectConstructor +>x : boolean[] + + this.x2 = x; +>this.x2 = x : boolean[] +>this.x2 : boolean[] +>this : this +>x2 : boolean[] +>x : boolean[] + } +} + +class DerivedComments extends Object { +>DerivedComments : DerivedComments +>Object : Object + + x: any; +>x : any + + constructor() { + // c1 + console.log(); // c2 +>console.log() : void +>console.log : (...data: any[]) => void +>console : Console +>log : (...data: any[]) => void + + // c3 + super(); // c4 +>super() : void +>super : ObjectConstructor + + // c5 + this.x = null; // c6 +>this.x = null : null +>this.x : any +>this : this +>x : any +>null : null + + // c7 + } +} + +class DerivedCommentsInvalidThis extends Object { +>DerivedCommentsInvalidThis : DerivedCommentsInvalidThis +>Object : Object + + x: any; +>x : any + + constructor() { + // c0 + this; +>this : this + + // c1 + console.log(); // c2 +>console.log() : void +>console.log : (...data: any[]) => void +>console : Console +>log : (...data: any[]) => void + + // c3 + super(); // c4 +>super() : void +>super : ObjectConstructor + + // c5 + this.x = null; // c6 +>this.x = null : null +>this.x : any +>this : this +>x : any +>null : null + + // c7 + } +} + +class DerivedInConditional extends Object { +>DerivedInConditional : DerivedInConditional +>Object : Object + + prop = 1; +>prop : number +>1 : 1 + + constructor() { + Math.random() +>Math.random() ? super(1) : super(0) : void +>Math.random() : number +>Math.random : () => number +>Math : Math +>random : () => number + + ? super(1) +>super(1) : void +>super : ObjectConstructor +>1 : 1 + + : super(0); +>super(0) : void +>super : ObjectConstructor +>0 : 0 + } +} + +class DerivedInIf extends Object { +>DerivedInIf : DerivedInIf +>Object : Object + + prop = 1; +>prop : number +>1 : 1 + + constructor() { + if (Math.random()) { +>Math.random() : number +>Math.random : () => number +>Math : Math +>random : () => number + + super(1); +>super(1) : void +>super : ObjectConstructor +>1 : 1 + } + else { + super(0); +>super(0) : void +>super : ObjectConstructor +>0 : 0 + } + } +} + +class DerivedInBlockWithProperties extends Object { +>DerivedInBlockWithProperties : DerivedInBlockWithProperties +>Object : Object + + prop = 1; +>prop : number +>1 : 1 + + constructor(private paramProp = 2) { +>paramProp : number +>2 : 2 + { + super(); +>super() : void +>super : ObjectConstructor + } + } +} + +class DerivedInConditionalWithProperties extends Object { +>DerivedInConditionalWithProperties : DerivedInConditionalWithProperties +>Object : Object + + prop = 1; +>prop : number +>1 : 1 + + constructor(private paramProp = 2) { +>paramProp : number +>2 : 2 + + if (Math.random()) { +>Math.random() : number +>Math.random : () => number +>Math : Math +>random : () => number + + super(1); +>super(1) : void +>super : ObjectConstructor +>1 : 1 + + } else { + super(0); +>super(0) : void +>super : ObjectConstructor +>0 : 0 + } + } +} + diff --git a/tests/baselines/reference/destructuringObjectBindingPatternAndAssignment3.errors.txt b/tests/baselines/reference/destructuringObjectBindingPatternAndAssignment3.errors.txt index 5a906d7d43e5e..eb3623653164b 100644 --- a/tests/baselines/reference/destructuringObjectBindingPatternAndAssignment3.errors.txt +++ b/tests/baselines/reference/destructuringObjectBindingPatternAndAssignment3.errors.txt @@ -1,6 +1,5 @@ tests/cases/conformance/es6/destructuring/destructuringObjectBindingPatternAndAssignment3.ts(2,7): error TS1005: ',' expected. tests/cases/conformance/es6/destructuring/destructuringObjectBindingPatternAndAssignment3.ts(3,5): error TS2322: Type '{ i: number; }' is not assignable to type 'string | number'. - Type '{ i: number; }' is not assignable to type 'number'. tests/cases/conformance/es6/destructuring/destructuringObjectBindingPatternAndAssignment3.ts(3,6): error TS2339: Property 'i' does not exist on type 'string | number'. tests/cases/conformance/es6/destructuring/destructuringObjectBindingPatternAndAssignment3.ts(4,6): error TS2339: Property 'i1' does not exist on type 'string | number | {}'. tests/cases/conformance/es6/destructuring/destructuringObjectBindingPatternAndAssignment3.ts(5,12): error TS2525: Initializer provides no value for this binding element and the binding element has no default value. @@ -18,7 +17,6 @@ tests/cases/conformance/es6/destructuring/destructuringObjectBindingPatternAndAs var {i}: string | number = { i: 2 }; ~~~ !!! error TS2322: Type '{ i: number; }' is not assignable to type 'string | number'. -!!! error TS2322: Type '{ i: number; }' is not assignable to type 'number'. ~ !!! error TS2339: Property 'i' does not exist on type 'string | number'. var {i1}: string | number| {} = { i1: 2 }; diff --git a/tests/baselines/reference/destructuringParameterDeclaration3ES5.js b/tests/baselines/reference/destructuringParameterDeclaration3ES5.js index 08dfa25a4d42e..6a7072d94f71b 100644 --- a/tests/baselines/reference/destructuringParameterDeclaration3ES5.js +++ b/tests/baselines/reference/destructuringParameterDeclaration3ES5.js @@ -76,4 +76,4 @@ var E; })(E || (E = {})); function foo1(...a) { } foo1(1, 2, 3, E.a); -foo1(1, 2, 3, 0 /* a */, E.b); +foo1(1, 2, 3, 0 /* E1.a */, E.b); diff --git a/tests/baselines/reference/destructuringParameterDeclaration3ES5iterable.js b/tests/baselines/reference/destructuringParameterDeclaration3ES5iterable.js index ae901e56cc7f3..a2afe9600ea80 100644 --- a/tests/baselines/reference/destructuringParameterDeclaration3ES5iterable.js +++ b/tests/baselines/reference/destructuringParameterDeclaration3ES5iterable.js @@ -142,4 +142,4 @@ function foo1() { } } foo1(1, 2, 3, E.a); -foo1(1, 2, 3, 0 /* a */, E.b); +foo1(1, 2, 3, 0 /* E1.a */, E.b); diff --git a/tests/baselines/reference/destructuringParameterDeclaration3ES6.js b/tests/baselines/reference/destructuringParameterDeclaration3ES6.js index 2857cb2276be9..a0c92a91c38d4 100644 --- a/tests/baselines/reference/destructuringParameterDeclaration3ES6.js +++ b/tests/baselines/reference/destructuringParameterDeclaration3ES6.js @@ -76,4 +76,4 @@ var E; })(E || (E = {})); function foo1(...a) { } foo1(1, 2, 3, E.a); -foo1(1, 2, 3, 0 /* a */, E.b); +foo1(1, 2, 3, 0 /* E1.a */, E.b); diff --git a/tests/baselines/reference/destructuringParameterDeclaration4.errors.txt b/tests/baselines/reference/destructuringParameterDeclaration4.errors.txt index 44baff6fd37b9..4f9b905252e09 100644 --- a/tests/baselines/reference/destructuringParameterDeclaration4.errors.txt +++ b/tests/baselines/reference/destructuringParameterDeclaration4.errors.txt @@ -41,7 +41,7 @@ tests/cases/conformance/es6/destructuring/destructuringParameterDeclaration4.ts( a1(...array2); // Error parameter type is (number|string)[] ~~~~~~ !!! error TS2552: Cannot find name 'array2'. Did you mean 'Array'? -!!! related TS2728 /.ts/lib.es5.d.ts:1464:13: 'Array' is declared here. +!!! related TS2728 /.ts/lib.es5.d.ts:1470:13: 'Array' is declared here. a5([1, 2, "string", false, true]); // Error, parameter type is [any, any, [[any]]] ~~~~~~~~ !!! error TS2322: Type 'string' is not assignable to type '[[any]]'. diff --git a/tests/baselines/reference/destructuringTuple.errors.txt b/tests/baselines/reference/destructuringTuple.errors.txt index 8e6ec9f05b65e..e343fa4fade70 100644 --- a/tests/baselines/reference/destructuringTuple.errors.txt +++ b/tests/baselines/reference/destructuringTuple.errors.txt @@ -33,8 +33,8 @@ tests/cases/compiler/destructuringTuple.ts(11,60): error TS2769: No overload mat !!! error TS2769: Overload 2 of 3, '(callbackfn: (previousValue: [], currentValue: number, currentIndex: number, array: number[]) => [], initialValue: []): []', gave the following error. !!! error TS2769: Type 'never[]' is not assignable to type '[]'. !!! error TS2769: Target allows only 0 element(s) but source may have more. -!!! related TS6502 /.ts/lib.es5.d.ts:1429:24: The expected type comes from the return type of this signature. -!!! related TS6502 /.ts/lib.es5.d.ts:1435:27: The expected type comes from the return type of this signature. +!!! related TS6502 /.ts/lib.es5.d.ts:1435:24: The expected type comes from the return type of this signature. +!!! related TS6502 /.ts/lib.es5.d.ts:1441:27: The expected type comes from the return type of this signature. ~~ !!! error TS2769: No overload matches this call. !!! error TS2769: Overload 1 of 2, '(...items: ConcatArray[]): never[]', gave the following error. diff --git a/tests/baselines/reference/destructuringUnspreadableIntoRest.errors.txt b/tests/baselines/reference/destructuringUnspreadableIntoRest.errors.txt new file mode 100644 index 0000000000000..20bcc06382504 --- /dev/null +++ b/tests/baselines/reference/destructuringUnspreadableIntoRest.errors.txt @@ -0,0 +1,223 @@ +tests/cases/compiler/destructuringUnspreadableIntoRest.ts(22,15): error TS2339: Property 'publicProp' does not exist on type 'Omit'. +tests/cases/compiler/destructuringUnspreadableIntoRest.ts(23,15): error TS2339: Property 'publicProp' does not exist on type '{}'. +tests/cases/compiler/destructuringUnspreadableIntoRest.ts(25,15): error TS2339: Property 'privateProp' does not exist on type 'Omit'. +tests/cases/compiler/destructuringUnspreadableIntoRest.ts(26,15): error TS2339: Property 'privateProp' does not exist on type '{ publicProp: string; }'. +tests/cases/compiler/destructuringUnspreadableIntoRest.ts(27,15): error TS2339: Property 'privateProp' does not exist on type 'Omit'. +tests/cases/compiler/destructuringUnspreadableIntoRest.ts(28,15): error TS2339: Property 'privateProp' does not exist on type '{}'. +tests/cases/compiler/destructuringUnspreadableIntoRest.ts(30,15): error TS2339: Property 'protectedProp' does not exist on type 'Omit'. +tests/cases/compiler/destructuringUnspreadableIntoRest.ts(31,15): error TS2339: Property 'protectedProp' does not exist on type '{ publicProp: string; }'. +tests/cases/compiler/destructuringUnspreadableIntoRest.ts(32,15): error TS2339: Property 'protectedProp' does not exist on type 'Omit'. +tests/cases/compiler/destructuringUnspreadableIntoRest.ts(33,15): error TS2339: Property 'protectedProp' does not exist on type '{}'. +tests/cases/compiler/destructuringUnspreadableIntoRest.ts(35,15): error TS2339: Property 'getter' does not exist on type 'Omit'. +tests/cases/compiler/destructuringUnspreadableIntoRest.ts(36,15): error TS2339: Property 'getter' does not exist on type '{ publicProp: string; }'. +tests/cases/compiler/destructuringUnspreadableIntoRest.ts(37,15): error TS2339: Property 'getter' does not exist on type 'Omit'. +tests/cases/compiler/destructuringUnspreadableIntoRest.ts(38,15): error TS2339: Property 'getter' does not exist on type '{}'. +tests/cases/compiler/destructuringUnspreadableIntoRest.ts(40,15): error TS2339: Property 'setter' does not exist on type 'Omit'. +tests/cases/compiler/destructuringUnspreadableIntoRest.ts(41,15): error TS2339: Property 'setter' does not exist on type '{ publicProp: string; }'. +tests/cases/compiler/destructuringUnspreadableIntoRest.ts(42,15): error TS2339: Property 'setter' does not exist on type 'Omit'. +tests/cases/compiler/destructuringUnspreadableIntoRest.ts(43,15): error TS2339: Property 'setter' does not exist on type '{}'. +tests/cases/compiler/destructuringUnspreadableIntoRest.ts(45,15): error TS2339: Property 'method' does not exist on type 'Omit'. +tests/cases/compiler/destructuringUnspreadableIntoRest.ts(46,15): error TS2339: Property 'method' does not exist on type '{ publicProp: string; }'. +tests/cases/compiler/destructuringUnspreadableIntoRest.ts(47,15): error TS2339: Property 'method' does not exist on type 'Omit'. +tests/cases/compiler/destructuringUnspreadableIntoRest.ts(48,15): error TS2339: Property 'method' does not exist on type '{}'. +tests/cases/compiler/destructuringUnspreadableIntoRest.ts(60,11): error TS2339: Property 'publicProp' does not exist on type 'Omit'. +tests/cases/compiler/destructuringUnspreadableIntoRest.ts(61,11): error TS2339: Property 'publicProp' does not exist on type '{}'. +tests/cases/compiler/destructuringUnspreadableIntoRest.ts(63,11): error TS2339: Property 'privateProp' does not exist on type 'Omit'. +tests/cases/compiler/destructuringUnspreadableIntoRest.ts(64,11): error TS2339: Property 'privateProp' does not exist on type '{ publicProp: string; }'. +tests/cases/compiler/destructuringUnspreadableIntoRest.ts(65,11): error TS2339: Property 'privateProp' does not exist on type 'Omit'. +tests/cases/compiler/destructuringUnspreadableIntoRest.ts(66,11): error TS2339: Property 'privateProp' does not exist on type '{}'. +tests/cases/compiler/destructuringUnspreadableIntoRest.ts(68,11): error TS2339: Property 'protectedProp' does not exist on type 'Omit'. +tests/cases/compiler/destructuringUnspreadableIntoRest.ts(69,11): error TS2339: Property 'protectedProp' does not exist on type '{ publicProp: string; }'. +tests/cases/compiler/destructuringUnspreadableIntoRest.ts(70,11): error TS2339: Property 'protectedProp' does not exist on type 'Omit'. +tests/cases/compiler/destructuringUnspreadableIntoRest.ts(71,11): error TS2339: Property 'protectedProp' does not exist on type '{}'. +tests/cases/compiler/destructuringUnspreadableIntoRest.ts(73,11): error TS2339: Property 'getter' does not exist on type 'Omit'. +tests/cases/compiler/destructuringUnspreadableIntoRest.ts(74,11): error TS2339: Property 'getter' does not exist on type '{ publicProp: string; }'. +tests/cases/compiler/destructuringUnspreadableIntoRest.ts(75,11): error TS2339: Property 'getter' does not exist on type 'Omit'. +tests/cases/compiler/destructuringUnspreadableIntoRest.ts(76,11): error TS2339: Property 'getter' does not exist on type '{}'. +tests/cases/compiler/destructuringUnspreadableIntoRest.ts(78,11): error TS2339: Property 'setter' does not exist on type 'Omit'. +tests/cases/compiler/destructuringUnspreadableIntoRest.ts(79,11): error TS2339: Property 'setter' does not exist on type '{ publicProp: string; }'. +tests/cases/compiler/destructuringUnspreadableIntoRest.ts(80,11): error TS2339: Property 'setter' does not exist on type 'Omit'. +tests/cases/compiler/destructuringUnspreadableIntoRest.ts(81,11): error TS2339: Property 'setter' does not exist on type '{}'. +tests/cases/compiler/destructuringUnspreadableIntoRest.ts(83,11): error TS2339: Property 'method' does not exist on type 'Omit'. +tests/cases/compiler/destructuringUnspreadableIntoRest.ts(84,11): error TS2339: Property 'method' does not exist on type '{ publicProp: string; }'. +tests/cases/compiler/destructuringUnspreadableIntoRest.ts(85,11): error TS2339: Property 'method' does not exist on type 'Omit'. +tests/cases/compiler/destructuringUnspreadableIntoRest.ts(86,11): error TS2339: Property 'method' does not exist on type '{}'. + + +==== tests/cases/compiler/destructuringUnspreadableIntoRest.ts (44 errors) ==== + class A { + constructor( + public publicProp: string, + private privateProp: string, + protected protectedProp: string, + ) {} + + get getter(): number { + return 1; + } + + set setter(_v: number) {} + + method() { + const { ...rest1 } = this; + const { ...rest2 } = this as A; + const { publicProp: _1, ...rest3 } = this; + const { publicProp: _2, ...rest4 } = this as A; + + rest1.publicProp; + rest2.publicProp; + rest3.publicProp; + ~~~~~~~~~~ +!!! error TS2339: Property 'publicProp' does not exist on type 'Omit'. + rest4.publicProp; + ~~~~~~~~~~ +!!! error TS2339: Property 'publicProp' does not exist on type '{}'. + + rest1.privateProp; + ~~~~~~~~~~~ +!!! error TS2339: Property 'privateProp' does not exist on type 'Omit'. + rest2.privateProp; + ~~~~~~~~~~~ +!!! error TS2339: Property 'privateProp' does not exist on type '{ publicProp: string; }'. + rest3.privateProp; + ~~~~~~~~~~~ +!!! error TS2339: Property 'privateProp' does not exist on type 'Omit'. + rest4.privateProp; + ~~~~~~~~~~~ +!!! error TS2339: Property 'privateProp' does not exist on type '{}'. + + rest1.protectedProp; + ~~~~~~~~~~~~~ +!!! error TS2339: Property 'protectedProp' does not exist on type 'Omit'. + rest2.protectedProp; + ~~~~~~~~~~~~~ +!!! error TS2339: Property 'protectedProp' does not exist on type '{ publicProp: string; }'. + rest3.protectedProp; + ~~~~~~~~~~~~~ +!!! error TS2339: Property 'protectedProp' does not exist on type 'Omit'. + rest4.protectedProp; + ~~~~~~~~~~~~~ +!!! error TS2339: Property 'protectedProp' does not exist on type '{}'. + + rest1.getter; + ~~~~~~ +!!! error TS2339: Property 'getter' does not exist on type 'Omit'. + rest2.getter; + ~~~~~~ +!!! error TS2339: Property 'getter' does not exist on type '{ publicProp: string; }'. + rest3.getter; + ~~~~~~ +!!! error TS2339: Property 'getter' does not exist on type 'Omit'. + rest4.getter; + ~~~~~~ +!!! error TS2339: Property 'getter' does not exist on type '{}'. + + rest1.setter; + ~~~~~~ +!!! error TS2339: Property 'setter' does not exist on type 'Omit'. + rest2.setter; + ~~~~~~ +!!! error TS2339: Property 'setter' does not exist on type '{ publicProp: string; }'. + rest3.setter; + ~~~~~~ +!!! error TS2339: Property 'setter' does not exist on type 'Omit'. + rest4.setter; + ~~~~~~ +!!! error TS2339: Property 'setter' does not exist on type '{}'. + + rest1.method; + ~~~~~~ +!!! error TS2339: Property 'method' does not exist on type 'Omit'. + rest2.method; + ~~~~~~ +!!! error TS2339: Property 'method' does not exist on type '{ publicProp: string; }'. + rest3.method; + ~~~~~~ +!!! error TS2339: Property 'method' does not exist on type 'Omit'. + rest4.method; + ~~~~~~ +!!! error TS2339: Property 'method' does not exist on type '{}'. + } + } + + function destructure(x: T) { + const { ...rest1 } = x; + const { ...rest2 } = x as A; + const { publicProp: _1, ...rest3 } = x; + const { publicProp: _2, ...rest4 } = x as A; + + rest1.publicProp; + rest2.publicProp; + rest3.publicProp; + ~~~~~~~~~~ +!!! error TS2339: Property 'publicProp' does not exist on type 'Omit'. + rest4.publicProp; + ~~~~~~~~~~ +!!! error TS2339: Property 'publicProp' does not exist on type '{}'. + + rest1.privateProp; + ~~~~~~~~~~~ +!!! error TS2339: Property 'privateProp' does not exist on type 'Omit'. + rest2.privateProp; + ~~~~~~~~~~~ +!!! error TS2339: Property 'privateProp' does not exist on type '{ publicProp: string; }'. + rest3.privateProp; + ~~~~~~~~~~~ +!!! error TS2339: Property 'privateProp' does not exist on type 'Omit'. + rest4.privateProp; + ~~~~~~~~~~~ +!!! error TS2339: Property 'privateProp' does not exist on type '{}'. + + rest1.protectedProp; + ~~~~~~~~~~~~~ +!!! error TS2339: Property 'protectedProp' does not exist on type 'Omit'. + rest2.protectedProp; + ~~~~~~~~~~~~~ +!!! error TS2339: Property 'protectedProp' does not exist on type '{ publicProp: string; }'. + rest3.protectedProp; + ~~~~~~~~~~~~~ +!!! error TS2339: Property 'protectedProp' does not exist on type 'Omit'. + rest4.protectedProp; + ~~~~~~~~~~~~~ +!!! error TS2339: Property 'protectedProp' does not exist on type '{}'. + + rest1.getter; + ~~~~~~ +!!! error TS2339: Property 'getter' does not exist on type 'Omit'. + rest2.getter; + ~~~~~~ +!!! error TS2339: Property 'getter' does not exist on type '{ publicProp: string; }'. + rest3.getter; + ~~~~~~ +!!! error TS2339: Property 'getter' does not exist on type 'Omit'. + rest4.getter; + ~~~~~~ +!!! error TS2339: Property 'getter' does not exist on type '{}'. + + rest1.setter; + ~~~~~~ +!!! error TS2339: Property 'setter' does not exist on type 'Omit'. + rest2.setter; + ~~~~~~ +!!! error TS2339: Property 'setter' does not exist on type '{ publicProp: string; }'. + rest3.setter; + ~~~~~~ +!!! error TS2339: Property 'setter' does not exist on type 'Omit'. + rest4.setter; + ~~~~~~ +!!! error TS2339: Property 'setter' does not exist on type '{}'. + + rest1.method; + ~~~~~~ +!!! error TS2339: Property 'method' does not exist on type 'Omit'. + rest2.method; + ~~~~~~ +!!! error TS2339: Property 'method' does not exist on type '{ publicProp: string; }'. + rest3.method; + ~~~~~~ +!!! error TS2339: Property 'method' does not exist on type 'Omit'. + rest4.method; + ~~~~~~ +!!! error TS2339: Property 'method' does not exist on type '{}'. + } + \ No newline at end of file diff --git a/tests/baselines/reference/destructuringUnspreadableIntoRest.js b/tests/baselines/reference/destructuringUnspreadableIntoRest.js new file mode 100644 index 0000000000000..e4ee1a835cec4 --- /dev/null +++ b/tests/baselines/reference/destructuringUnspreadableIntoRest.js @@ -0,0 +1,173 @@ +//// [destructuringUnspreadableIntoRest.ts] +class A { + constructor( + public publicProp: string, + private privateProp: string, + protected protectedProp: string, + ) {} + + get getter(): number { + return 1; + } + + set setter(_v: number) {} + + method() { + const { ...rest1 } = this; + const { ...rest2 } = this as A; + const { publicProp: _1, ...rest3 } = this; + const { publicProp: _2, ...rest4 } = this as A; + + rest1.publicProp; + rest2.publicProp; + rest3.publicProp; + rest4.publicProp; + + rest1.privateProp; + rest2.privateProp; + rest3.privateProp; + rest4.privateProp; + + rest1.protectedProp; + rest2.protectedProp; + rest3.protectedProp; + rest4.protectedProp; + + rest1.getter; + rest2.getter; + rest3.getter; + rest4.getter; + + rest1.setter; + rest2.setter; + rest3.setter; + rest4.setter; + + rest1.method; + rest2.method; + rest3.method; + rest4.method; + } +} + +function destructure(x: T) { + const { ...rest1 } = x; + const { ...rest2 } = x as A; + const { publicProp: _1, ...rest3 } = x; + const { publicProp: _2, ...rest4 } = x as A; + + rest1.publicProp; + rest2.publicProp; + rest3.publicProp; + rest4.publicProp; + + rest1.privateProp; + rest2.privateProp; + rest3.privateProp; + rest4.privateProp; + + rest1.protectedProp; + rest2.protectedProp; + rest3.protectedProp; + rest4.protectedProp; + + rest1.getter; + rest2.getter; + rest3.getter; + rest4.getter; + + rest1.setter; + rest2.setter; + rest3.setter; + rest4.setter; + + rest1.method; + rest2.method; + rest3.method; + rest4.method; +} + + +//// [destructuringUnspreadableIntoRest.js] +var __rest = (this && this.__rest) || function (s, e) { + var t = {}; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) + t[p] = s[p]; + if (s != null && typeof Object.getOwnPropertySymbols === "function") + for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { + if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) + t[p[i]] = s[p[i]]; + } + return t; +}; +class A { + constructor(publicProp, privateProp, protectedProp) { + this.publicProp = publicProp; + this.privateProp = privateProp; + this.protectedProp = protectedProp; + } + get getter() { + return 1; + } + set setter(_v) { } + method() { + const rest1 = __rest(this, []); + const rest2 = __rest(this, []); + const _a = this, { publicProp: _1 } = _a, rest3 = __rest(_a, ["publicProp"]); + const _b = this, { publicProp: _2 } = _b, rest4 = __rest(_b, ["publicProp"]); + rest1.publicProp; + rest2.publicProp; + rest3.publicProp; + rest4.publicProp; + rest1.privateProp; + rest2.privateProp; + rest3.privateProp; + rest4.privateProp; + rest1.protectedProp; + rest2.protectedProp; + rest3.protectedProp; + rest4.protectedProp; + rest1.getter; + rest2.getter; + rest3.getter; + rest4.getter; + rest1.setter; + rest2.setter; + rest3.setter; + rest4.setter; + rest1.method; + rest2.method; + rest3.method; + rest4.method; + } +} +function destructure(x) { + const rest1 = __rest(x, []); + const rest2 = __rest(x, []); + const { publicProp: _1 } = x, rest3 = __rest(x, ["publicProp"]); + const _a = x, { publicProp: _2 } = _a, rest4 = __rest(_a, ["publicProp"]); + rest1.publicProp; + rest2.publicProp; + rest3.publicProp; + rest4.publicProp; + rest1.privateProp; + rest2.privateProp; + rest3.privateProp; + rest4.privateProp; + rest1.protectedProp; + rest2.protectedProp; + rest3.protectedProp; + rest4.protectedProp; + rest1.getter; + rest2.getter; + rest3.getter; + rest4.getter; + rest1.setter; + rest2.setter; + rest3.setter; + rest4.setter; + rest1.method; + rest2.method; + rest3.method; + rest4.method; +} diff --git a/tests/baselines/reference/destructuringUnspreadableIntoRest.symbols b/tests/baselines/reference/destructuringUnspreadableIntoRest.symbols new file mode 100644 index 0000000000000..557afeeffa912 --- /dev/null +++ b/tests/baselines/reference/destructuringUnspreadableIntoRest.symbols @@ -0,0 +1,235 @@ +=== tests/cases/compiler/destructuringUnspreadableIntoRest.ts === +class A { +>A : Symbol(A, Decl(destructuringUnspreadableIntoRest.ts, 0, 0)) + + constructor( + public publicProp: string, +>publicProp : Symbol(A.publicProp, Decl(destructuringUnspreadableIntoRest.ts, 1, 16)) + + private privateProp: string, +>privateProp : Symbol(A.privateProp, Decl(destructuringUnspreadableIntoRest.ts, 2, 34)) + + protected protectedProp: string, +>protectedProp : Symbol(A.protectedProp, Decl(destructuringUnspreadableIntoRest.ts, 3, 36)) + + ) {} + + get getter(): number { +>getter : Symbol(A.getter, Decl(destructuringUnspreadableIntoRest.ts, 5, 8)) + + return 1; + } + + set setter(_v: number) {} +>setter : Symbol(A.setter, Decl(destructuringUnspreadableIntoRest.ts, 9, 5)) +>_v : Symbol(_v, Decl(destructuringUnspreadableIntoRest.ts, 11, 15)) + + method() { +>method : Symbol(A.method, Decl(destructuringUnspreadableIntoRest.ts, 11, 29)) + + const { ...rest1 } = this; +>rest1 : Symbol(rest1, Decl(destructuringUnspreadableIntoRest.ts, 14, 15)) +>this : Symbol(A, Decl(destructuringUnspreadableIntoRest.ts, 0, 0)) + + const { ...rest2 } = this as A; +>rest2 : Symbol(rest2, Decl(destructuringUnspreadableIntoRest.ts, 15, 15)) +>this : Symbol(A, Decl(destructuringUnspreadableIntoRest.ts, 0, 0)) +>A : Symbol(A, Decl(destructuringUnspreadableIntoRest.ts, 0, 0)) + + const { publicProp: _1, ...rest3 } = this; +>publicProp : Symbol(A.publicProp, Decl(destructuringUnspreadableIntoRest.ts, 1, 16)) +>_1 : Symbol(_1, Decl(destructuringUnspreadableIntoRest.ts, 16, 15)) +>rest3 : Symbol(rest3, Decl(destructuringUnspreadableIntoRest.ts, 16, 31)) +>this : Symbol(A, Decl(destructuringUnspreadableIntoRest.ts, 0, 0)) + + const { publicProp: _2, ...rest4 } = this as A; +>publicProp : Symbol(A.publicProp, Decl(destructuringUnspreadableIntoRest.ts, 1, 16)) +>_2 : Symbol(_2, Decl(destructuringUnspreadableIntoRest.ts, 17, 15)) +>rest4 : Symbol(rest4, Decl(destructuringUnspreadableIntoRest.ts, 17, 31)) +>this : Symbol(A, Decl(destructuringUnspreadableIntoRest.ts, 0, 0)) +>A : Symbol(A, Decl(destructuringUnspreadableIntoRest.ts, 0, 0)) + + rest1.publicProp; +>rest1.publicProp : Symbol(publicProp, Decl(destructuringUnspreadableIntoRest.ts, 1, 16)) +>rest1 : Symbol(rest1, Decl(destructuringUnspreadableIntoRest.ts, 14, 15)) +>publicProp : Symbol(publicProp, Decl(destructuringUnspreadableIntoRest.ts, 1, 16)) + + rest2.publicProp; +>rest2.publicProp : Symbol(A.publicProp, Decl(destructuringUnspreadableIntoRest.ts, 1, 16)) +>rest2 : Symbol(rest2, Decl(destructuringUnspreadableIntoRest.ts, 15, 15)) +>publicProp : Symbol(A.publicProp, Decl(destructuringUnspreadableIntoRest.ts, 1, 16)) + + rest3.publicProp; +>rest3 : Symbol(rest3, Decl(destructuringUnspreadableIntoRest.ts, 16, 31)) + + rest4.publicProp; +>rest4 : Symbol(rest4, Decl(destructuringUnspreadableIntoRest.ts, 17, 31)) + + rest1.privateProp; +>rest1 : Symbol(rest1, Decl(destructuringUnspreadableIntoRest.ts, 14, 15)) + + rest2.privateProp; +>rest2 : Symbol(rest2, Decl(destructuringUnspreadableIntoRest.ts, 15, 15)) + + rest3.privateProp; +>rest3 : Symbol(rest3, Decl(destructuringUnspreadableIntoRest.ts, 16, 31)) + + rest4.privateProp; +>rest4 : Symbol(rest4, Decl(destructuringUnspreadableIntoRest.ts, 17, 31)) + + rest1.protectedProp; +>rest1 : Symbol(rest1, Decl(destructuringUnspreadableIntoRest.ts, 14, 15)) + + rest2.protectedProp; +>rest2 : Symbol(rest2, Decl(destructuringUnspreadableIntoRest.ts, 15, 15)) + + rest3.protectedProp; +>rest3 : Symbol(rest3, Decl(destructuringUnspreadableIntoRest.ts, 16, 31)) + + rest4.protectedProp; +>rest4 : Symbol(rest4, Decl(destructuringUnspreadableIntoRest.ts, 17, 31)) + + rest1.getter; +>rest1 : Symbol(rest1, Decl(destructuringUnspreadableIntoRest.ts, 14, 15)) + + rest2.getter; +>rest2 : Symbol(rest2, Decl(destructuringUnspreadableIntoRest.ts, 15, 15)) + + rest3.getter; +>rest3 : Symbol(rest3, Decl(destructuringUnspreadableIntoRest.ts, 16, 31)) + + rest4.getter; +>rest4 : Symbol(rest4, Decl(destructuringUnspreadableIntoRest.ts, 17, 31)) + + rest1.setter; +>rest1 : Symbol(rest1, Decl(destructuringUnspreadableIntoRest.ts, 14, 15)) + + rest2.setter; +>rest2 : Symbol(rest2, Decl(destructuringUnspreadableIntoRest.ts, 15, 15)) + + rest3.setter; +>rest3 : Symbol(rest3, Decl(destructuringUnspreadableIntoRest.ts, 16, 31)) + + rest4.setter; +>rest4 : Symbol(rest4, Decl(destructuringUnspreadableIntoRest.ts, 17, 31)) + + rest1.method; +>rest1 : Symbol(rest1, Decl(destructuringUnspreadableIntoRest.ts, 14, 15)) + + rest2.method; +>rest2 : Symbol(rest2, Decl(destructuringUnspreadableIntoRest.ts, 15, 15)) + + rest3.method; +>rest3 : Symbol(rest3, Decl(destructuringUnspreadableIntoRest.ts, 16, 31)) + + rest4.method; +>rest4 : Symbol(rest4, Decl(destructuringUnspreadableIntoRest.ts, 17, 31)) + } +} + +function destructure(x: T) { +>destructure : Symbol(destructure, Decl(destructuringUnspreadableIntoRest.ts, 49, 1)) +>T : Symbol(T, Decl(destructuringUnspreadableIntoRest.ts, 51, 21)) +>A : Symbol(A, Decl(destructuringUnspreadableIntoRest.ts, 0, 0)) +>x : Symbol(x, Decl(destructuringUnspreadableIntoRest.ts, 51, 34)) +>T : Symbol(T, Decl(destructuringUnspreadableIntoRest.ts, 51, 21)) + + const { ...rest1 } = x; +>rest1 : Symbol(rest1, Decl(destructuringUnspreadableIntoRest.ts, 52, 11)) +>x : Symbol(x, Decl(destructuringUnspreadableIntoRest.ts, 51, 34)) + + const { ...rest2 } = x as A; +>rest2 : Symbol(rest2, Decl(destructuringUnspreadableIntoRest.ts, 53, 11)) +>x : Symbol(x, Decl(destructuringUnspreadableIntoRest.ts, 51, 34)) +>A : Symbol(A, Decl(destructuringUnspreadableIntoRest.ts, 0, 0)) + + const { publicProp: _1, ...rest3 } = x; +>publicProp : Symbol(A.publicProp, Decl(destructuringUnspreadableIntoRest.ts, 1, 16)) +>_1 : Symbol(_1, Decl(destructuringUnspreadableIntoRest.ts, 54, 11)) +>rest3 : Symbol(rest3, Decl(destructuringUnspreadableIntoRest.ts, 54, 27)) +>x : Symbol(x, Decl(destructuringUnspreadableIntoRest.ts, 51, 34)) + + const { publicProp: _2, ...rest4 } = x as A; +>publicProp : Symbol(A.publicProp, Decl(destructuringUnspreadableIntoRest.ts, 1, 16)) +>_2 : Symbol(_2, Decl(destructuringUnspreadableIntoRest.ts, 55, 11)) +>rest4 : Symbol(rest4, Decl(destructuringUnspreadableIntoRest.ts, 55, 27)) +>x : Symbol(x, Decl(destructuringUnspreadableIntoRest.ts, 51, 34)) +>A : Symbol(A, Decl(destructuringUnspreadableIntoRest.ts, 0, 0)) + + rest1.publicProp; +>rest1.publicProp : Symbol(publicProp, Decl(destructuringUnspreadableIntoRest.ts, 1, 16)) +>rest1 : Symbol(rest1, Decl(destructuringUnspreadableIntoRest.ts, 52, 11)) +>publicProp : Symbol(publicProp, Decl(destructuringUnspreadableIntoRest.ts, 1, 16)) + + rest2.publicProp; +>rest2.publicProp : Symbol(A.publicProp, Decl(destructuringUnspreadableIntoRest.ts, 1, 16)) +>rest2 : Symbol(rest2, Decl(destructuringUnspreadableIntoRest.ts, 53, 11)) +>publicProp : Symbol(A.publicProp, Decl(destructuringUnspreadableIntoRest.ts, 1, 16)) + + rest3.publicProp; +>rest3 : Symbol(rest3, Decl(destructuringUnspreadableIntoRest.ts, 54, 27)) + + rest4.publicProp; +>rest4 : Symbol(rest4, Decl(destructuringUnspreadableIntoRest.ts, 55, 27)) + + rest1.privateProp; +>rest1 : Symbol(rest1, Decl(destructuringUnspreadableIntoRest.ts, 52, 11)) + + rest2.privateProp; +>rest2 : Symbol(rest2, Decl(destructuringUnspreadableIntoRest.ts, 53, 11)) + + rest3.privateProp; +>rest3 : Symbol(rest3, Decl(destructuringUnspreadableIntoRest.ts, 54, 27)) + + rest4.privateProp; +>rest4 : Symbol(rest4, Decl(destructuringUnspreadableIntoRest.ts, 55, 27)) + + rest1.protectedProp; +>rest1 : Symbol(rest1, Decl(destructuringUnspreadableIntoRest.ts, 52, 11)) + + rest2.protectedProp; +>rest2 : Symbol(rest2, Decl(destructuringUnspreadableIntoRest.ts, 53, 11)) + + rest3.protectedProp; +>rest3 : Symbol(rest3, Decl(destructuringUnspreadableIntoRest.ts, 54, 27)) + + rest4.protectedProp; +>rest4 : Symbol(rest4, Decl(destructuringUnspreadableIntoRest.ts, 55, 27)) + + rest1.getter; +>rest1 : Symbol(rest1, Decl(destructuringUnspreadableIntoRest.ts, 52, 11)) + + rest2.getter; +>rest2 : Symbol(rest2, Decl(destructuringUnspreadableIntoRest.ts, 53, 11)) + + rest3.getter; +>rest3 : Symbol(rest3, Decl(destructuringUnspreadableIntoRest.ts, 54, 27)) + + rest4.getter; +>rest4 : Symbol(rest4, Decl(destructuringUnspreadableIntoRest.ts, 55, 27)) + + rest1.setter; +>rest1 : Symbol(rest1, Decl(destructuringUnspreadableIntoRest.ts, 52, 11)) + + rest2.setter; +>rest2 : Symbol(rest2, Decl(destructuringUnspreadableIntoRest.ts, 53, 11)) + + rest3.setter; +>rest3 : Symbol(rest3, Decl(destructuringUnspreadableIntoRest.ts, 54, 27)) + + rest4.setter; +>rest4 : Symbol(rest4, Decl(destructuringUnspreadableIntoRest.ts, 55, 27)) + + rest1.method; +>rest1 : Symbol(rest1, Decl(destructuringUnspreadableIntoRest.ts, 52, 11)) + + rest2.method; +>rest2 : Symbol(rest2, Decl(destructuringUnspreadableIntoRest.ts, 53, 11)) + + rest3.method; +>rest3 : Symbol(rest3, Decl(destructuringUnspreadableIntoRest.ts, 54, 27)) + + rest4.method; +>rest4 : Symbol(rest4, Decl(destructuringUnspreadableIntoRest.ts, 55, 27)) +} + diff --git a/tests/baselines/reference/destructuringUnspreadableIntoRest.types b/tests/baselines/reference/destructuringUnspreadableIntoRest.types new file mode 100644 index 0000000000000..5fefa899662b3 --- /dev/null +++ b/tests/baselines/reference/destructuringUnspreadableIntoRest.types @@ -0,0 +1,321 @@ +=== tests/cases/compiler/destructuringUnspreadableIntoRest.ts === +class A { +>A : A + + constructor( + public publicProp: string, +>publicProp : string + + private privateProp: string, +>privateProp : string + + protected protectedProp: string, +>protectedProp : string + + ) {} + + get getter(): number { +>getter : number + + return 1; +>1 : 1 + } + + set setter(_v: number) {} +>setter : number +>_v : number + + method() { +>method : () => void + + const { ...rest1 } = this; +>rest1 : Omit +>this : this + + const { ...rest2 } = this as A; +>rest2 : { publicProp: string; } +>this as A : A +>this : this + + const { publicProp: _1, ...rest3 } = this; +>publicProp : any +>_1 : string +>rest3 : Omit +>this : this + + const { publicProp: _2, ...rest4 } = this as A; +>publicProp : any +>_2 : string +>rest4 : {} +>this as A : A +>this : this + + rest1.publicProp; +>rest1.publicProp : this["publicProp"] +>rest1 : Omit +>publicProp : this["publicProp"] + + rest2.publicProp; +>rest2.publicProp : string +>rest2 : { publicProp: string; } +>publicProp : string + + rest3.publicProp; +>rest3.publicProp : any +>rest3 : Omit +>publicProp : any + + rest4.publicProp; +>rest4.publicProp : any +>rest4 : {} +>publicProp : any + + rest1.privateProp; +>rest1.privateProp : any +>rest1 : Omit +>privateProp : any + + rest2.privateProp; +>rest2.privateProp : any +>rest2 : { publicProp: string; } +>privateProp : any + + rest3.privateProp; +>rest3.privateProp : any +>rest3 : Omit +>privateProp : any + + rest4.privateProp; +>rest4.privateProp : any +>rest4 : {} +>privateProp : any + + rest1.protectedProp; +>rest1.protectedProp : any +>rest1 : Omit +>protectedProp : any + + rest2.protectedProp; +>rest2.protectedProp : any +>rest2 : { publicProp: string; } +>protectedProp : any + + rest3.protectedProp; +>rest3.protectedProp : any +>rest3 : Omit +>protectedProp : any + + rest4.protectedProp; +>rest4.protectedProp : any +>rest4 : {} +>protectedProp : any + + rest1.getter; +>rest1.getter : any +>rest1 : Omit +>getter : any + + rest2.getter; +>rest2.getter : any +>rest2 : { publicProp: string; } +>getter : any + + rest3.getter; +>rest3.getter : any +>rest3 : Omit +>getter : any + + rest4.getter; +>rest4.getter : any +>rest4 : {} +>getter : any + + rest1.setter; +>rest1.setter : any +>rest1 : Omit +>setter : any + + rest2.setter; +>rest2.setter : any +>rest2 : { publicProp: string; } +>setter : any + + rest3.setter; +>rest3.setter : any +>rest3 : Omit +>setter : any + + rest4.setter; +>rest4.setter : any +>rest4 : {} +>setter : any + + rest1.method; +>rest1.method : any +>rest1 : Omit +>method : any + + rest2.method; +>rest2.method : any +>rest2 : { publicProp: string; } +>method : any + + rest3.method; +>rest3.method : any +>rest3 : Omit +>method : any + + rest4.method; +>rest4.method : any +>rest4 : {} +>method : any + } +} + +function destructure(x: T) { +>destructure : (x: T) => void +>x : T + + const { ...rest1 } = x; +>rest1 : Omit +>x : T + + const { ...rest2 } = x as A; +>rest2 : { publicProp: string; } +>x as A : A +>x : T + + const { publicProp: _1, ...rest3 } = x; +>publicProp : any +>_1 : string +>rest3 : Omit +>x : T + + const { publicProp: _2, ...rest4 } = x as A; +>publicProp : any +>_2 : string +>rest4 : {} +>x as A : A +>x : T + + rest1.publicProp; +>rest1.publicProp : T["publicProp"] +>rest1 : Omit +>publicProp : T["publicProp"] + + rest2.publicProp; +>rest2.publicProp : string +>rest2 : { publicProp: string; } +>publicProp : string + + rest3.publicProp; +>rest3.publicProp : any +>rest3 : Omit +>publicProp : any + + rest4.publicProp; +>rest4.publicProp : any +>rest4 : {} +>publicProp : any + + rest1.privateProp; +>rest1.privateProp : any +>rest1 : Omit +>privateProp : any + + rest2.privateProp; +>rest2.privateProp : any +>rest2 : { publicProp: string; } +>privateProp : any + + rest3.privateProp; +>rest3.privateProp : any +>rest3 : Omit +>privateProp : any + + rest4.privateProp; +>rest4.privateProp : any +>rest4 : {} +>privateProp : any + + rest1.protectedProp; +>rest1.protectedProp : any +>rest1 : Omit +>protectedProp : any + + rest2.protectedProp; +>rest2.protectedProp : any +>rest2 : { publicProp: string; } +>protectedProp : any + + rest3.protectedProp; +>rest3.protectedProp : any +>rest3 : Omit +>protectedProp : any + + rest4.protectedProp; +>rest4.protectedProp : any +>rest4 : {} +>protectedProp : any + + rest1.getter; +>rest1.getter : any +>rest1 : Omit +>getter : any + + rest2.getter; +>rest2.getter : any +>rest2 : { publicProp: string; } +>getter : any + + rest3.getter; +>rest3.getter : any +>rest3 : Omit +>getter : any + + rest4.getter; +>rest4.getter : any +>rest4 : {} +>getter : any + + rest1.setter; +>rest1.setter : any +>rest1 : Omit +>setter : any + + rest2.setter; +>rest2.setter : any +>rest2 : { publicProp: string; } +>setter : any + + rest3.setter; +>rest3.setter : any +>rest3 : Omit +>setter : any + + rest4.setter; +>rest4.setter : any +>rest4 : {} +>setter : any + + rest1.method; +>rest1.method : any +>rest1 : Omit +>method : any + + rest2.method; +>rest2.method : any +>rest2 : { publicProp: string; } +>method : any + + rest3.method; +>rest3.method : any +>rest3 : Omit +>method : any + + rest4.method; +>rest4.method : any +>rest4 : {} +>method : any +} + diff --git a/tests/baselines/reference/discriminantPropertyCheck.js b/tests/baselines/reference/discriminantPropertyCheck.js index cbbaa80d2ca3f..43bb3aa180b8a 100644 --- a/tests/baselines/reference/discriminantPropertyCheck.js +++ b/tests/baselines/reference/discriminantPropertyCheck.js @@ -321,9 +321,9 @@ function onlyPlus(arg) { function func3(value) { if (value.type !== undefined) { switch (value.type) { - case 1 /* bar1 */: + case 1 /* BarEnum.bar1 */: break; - case 2 /* bar2 */: + case 2 /* BarEnum.bar2 */: break; default: never(value.type); diff --git a/tests/baselines/reference/divergentAccessorsTypes2.errors.txt b/tests/baselines/reference/divergentAccessorsTypes2.errors.txt index 277630c5f11c0..1944516798e79 100644 --- a/tests/baselines/reference/divergentAccessorsTypes2.errors.txt +++ b/tests/baselines/reference/divergentAccessorsTypes2.errors.txt @@ -1,4 +1,4 @@ -tests/cases/compiler/divergentAccessorsTypes2.ts(10,1): error TS2322: Type '42' is not assignable to type 'string | undefined'. +tests/cases/compiler/divergentAccessorsTypes2.ts(10,1): error TS2322: Type 'number' is not assignable to type 'string'. ==== tests/cases/compiler/divergentAccessorsTypes2.ts (1 errors) ==== @@ -13,5 +13,5 @@ tests/cases/compiler/divergentAccessorsTypes2.ts(10,1): error TS2322: Type '42' s.foo = "hello"; s.foo = 42; ~~~~~ -!!! error TS2322: Type '42' is not assignable to type 'string | undefined'. +!!! error TS2322: Type 'number' is not assignable to type 'string'. \ No newline at end of file diff --git a/tests/baselines/reference/divergentAccessorsTypes3.js b/tests/baselines/reference/divergentAccessorsTypes3.js new file mode 100644 index 0000000000000..775474f088f2e --- /dev/null +++ b/tests/baselines/reference/divergentAccessorsTypes3.js @@ -0,0 +1,108 @@ +//// [divergentAccessorsTypes3.ts] +class One { + get prop1(): string { return ""; } + set prop1(s: string | number) { } + + get prop2(): string { return ""; } + set prop2(s: string | number) { } + + prop3: number; + + get prop4(): string { return ""; } + set prop4(s: string | number) { } +} + +class Two { + get prop1(): string { return ""; } + set prop1(s: string | number) { } + + get prop2(): string { return ""; } + set prop2(s: string) { } + + get prop3(): string { return ""; } + set prop3(s: string | boolean) { } + + get prop4(): string { return ""; } + set prop4(s: string | boolean) { } +} + +declare const u1: One|Two; + +u1.prop1 = 42; +u1.prop1 = "hello"; + +u1.prop2 = 42; +u1.prop2 = "hello"; + +u1.prop3 = 42; +u1.prop3 = "hello"; +u1.prop3 = true; + +u1.prop4 = 42; +u1.prop4 = "hello"; +u1.prop4 = true; + + +//// [divergentAccessorsTypes3.js] +var One = /** @class */ (function () { + function One() { + } + Object.defineProperty(One.prototype, "prop1", { + get: function () { return ""; }, + set: function (s) { }, + enumerable: false, + configurable: true + }); + Object.defineProperty(One.prototype, "prop2", { + get: function () { return ""; }, + set: function (s) { }, + enumerable: false, + configurable: true + }); + Object.defineProperty(One.prototype, "prop4", { + get: function () { return ""; }, + set: function (s) { }, + enumerable: false, + configurable: true + }); + return One; +}()); +var Two = /** @class */ (function () { + function Two() { + } + Object.defineProperty(Two.prototype, "prop1", { + get: function () { return ""; }, + set: function (s) { }, + enumerable: false, + configurable: true + }); + Object.defineProperty(Two.prototype, "prop2", { + get: function () { return ""; }, + set: function (s) { }, + enumerable: false, + configurable: true + }); + Object.defineProperty(Two.prototype, "prop3", { + get: function () { return ""; }, + set: function (s) { }, + enumerable: false, + configurable: true + }); + Object.defineProperty(Two.prototype, "prop4", { + get: function () { return ""; }, + set: function (s) { }, + enumerable: false, + configurable: true + }); + return Two; +}()); +u1.prop1 = 42; +u1.prop1 = "hello"; +u1.prop2 = 42; +u1.prop2 = "hello"; +u1.prop3 = 42; +u1.prop3 = "hello"; +u1.prop3 = true; +u1.prop4 = 42; +u1.prop4 = "hello"; +u1.prop4 = true; diff --git a/tests/baselines/reference/divergentAccessorsTypes3.symbols b/tests/baselines/reference/divergentAccessorsTypes3.symbols new file mode 100644 index 0000000000000..6b754eada400d --- /dev/null +++ b/tests/baselines/reference/divergentAccessorsTypes3.symbols @@ -0,0 +1,116 @@ +=== tests/cases/compiler/divergentAccessorsTypes3.ts === +class One { +>One : Symbol(One, Decl(divergentAccessorsTypes3.ts, 0, 0)) + + get prop1(): string { return ""; } +>prop1 : Symbol(One.prop1, Decl(divergentAccessorsTypes3.ts, 0, 11), Decl(divergentAccessorsTypes3.ts, 1, 36)) + + set prop1(s: string | number) { } +>prop1 : Symbol(One.prop1, Decl(divergentAccessorsTypes3.ts, 0, 11), Decl(divergentAccessorsTypes3.ts, 1, 36)) +>s : Symbol(s, Decl(divergentAccessorsTypes3.ts, 2, 12)) + + get prop2(): string { return ""; } +>prop2 : Symbol(One.prop2, Decl(divergentAccessorsTypes3.ts, 2, 35), Decl(divergentAccessorsTypes3.ts, 4, 36)) + + set prop2(s: string | number) { } +>prop2 : Symbol(One.prop2, Decl(divergentAccessorsTypes3.ts, 2, 35), Decl(divergentAccessorsTypes3.ts, 4, 36)) +>s : Symbol(s, Decl(divergentAccessorsTypes3.ts, 5, 12)) + + prop3: number; +>prop3 : Symbol(One.prop3, Decl(divergentAccessorsTypes3.ts, 5, 35)) + + get prop4(): string { return ""; } +>prop4 : Symbol(One.prop4, Decl(divergentAccessorsTypes3.ts, 7, 16), Decl(divergentAccessorsTypes3.ts, 9, 36)) + + set prop4(s: string | number) { } +>prop4 : Symbol(One.prop4, Decl(divergentAccessorsTypes3.ts, 7, 16), Decl(divergentAccessorsTypes3.ts, 9, 36)) +>s : Symbol(s, Decl(divergentAccessorsTypes3.ts, 10, 12)) +} + +class Two { +>Two : Symbol(Two, Decl(divergentAccessorsTypes3.ts, 11, 1)) + + get prop1(): string { return ""; } +>prop1 : Symbol(Two.prop1, Decl(divergentAccessorsTypes3.ts, 13, 11), Decl(divergentAccessorsTypes3.ts, 14, 36)) + + set prop1(s: string | number) { } +>prop1 : Symbol(Two.prop1, Decl(divergentAccessorsTypes3.ts, 13, 11), Decl(divergentAccessorsTypes3.ts, 14, 36)) +>s : Symbol(s, Decl(divergentAccessorsTypes3.ts, 15, 12)) + + get prop2(): string { return ""; } +>prop2 : Symbol(Two.prop2, Decl(divergentAccessorsTypes3.ts, 15, 35), Decl(divergentAccessorsTypes3.ts, 17, 36)) + + set prop2(s: string) { } +>prop2 : Symbol(Two.prop2, Decl(divergentAccessorsTypes3.ts, 15, 35), Decl(divergentAccessorsTypes3.ts, 17, 36)) +>s : Symbol(s, Decl(divergentAccessorsTypes3.ts, 18, 12)) + + get prop3(): string { return ""; } +>prop3 : Symbol(Two.prop3, Decl(divergentAccessorsTypes3.ts, 18, 26), Decl(divergentAccessorsTypes3.ts, 20, 36)) + + set prop3(s: string | boolean) { } +>prop3 : Symbol(Two.prop3, Decl(divergentAccessorsTypes3.ts, 18, 26), Decl(divergentAccessorsTypes3.ts, 20, 36)) +>s : Symbol(s, Decl(divergentAccessorsTypes3.ts, 21, 12)) + + get prop4(): string { return ""; } +>prop4 : Symbol(Two.prop4, Decl(divergentAccessorsTypes3.ts, 21, 36), Decl(divergentAccessorsTypes3.ts, 23, 36)) + + set prop4(s: string | boolean) { } +>prop4 : Symbol(Two.prop4, Decl(divergentAccessorsTypes3.ts, 21, 36), Decl(divergentAccessorsTypes3.ts, 23, 36)) +>s : Symbol(s, Decl(divergentAccessorsTypes3.ts, 24, 12)) +} + +declare const u1: One|Two; +>u1 : Symbol(u1, Decl(divergentAccessorsTypes3.ts, 27, 13)) +>One : Symbol(One, Decl(divergentAccessorsTypes3.ts, 0, 0)) +>Two : Symbol(Two, Decl(divergentAccessorsTypes3.ts, 11, 1)) + +u1.prop1 = 42; +>u1.prop1 : Symbol(prop1, Decl(divergentAccessorsTypes3.ts, 0, 11), Decl(divergentAccessorsTypes3.ts, 1, 36), Decl(divergentAccessorsTypes3.ts, 13, 11), Decl(divergentAccessorsTypes3.ts, 14, 36)) +>u1 : Symbol(u1, Decl(divergentAccessorsTypes3.ts, 27, 13)) +>prop1 : Symbol(prop1, Decl(divergentAccessorsTypes3.ts, 0, 11), Decl(divergentAccessorsTypes3.ts, 1, 36), Decl(divergentAccessorsTypes3.ts, 13, 11), Decl(divergentAccessorsTypes3.ts, 14, 36)) + +u1.prop1 = "hello"; +>u1.prop1 : Symbol(prop1, Decl(divergentAccessorsTypes3.ts, 0, 11), Decl(divergentAccessorsTypes3.ts, 1, 36), Decl(divergentAccessorsTypes3.ts, 13, 11), Decl(divergentAccessorsTypes3.ts, 14, 36)) +>u1 : Symbol(u1, Decl(divergentAccessorsTypes3.ts, 27, 13)) +>prop1 : Symbol(prop1, Decl(divergentAccessorsTypes3.ts, 0, 11), Decl(divergentAccessorsTypes3.ts, 1, 36), Decl(divergentAccessorsTypes3.ts, 13, 11), Decl(divergentAccessorsTypes3.ts, 14, 36)) + +u1.prop2 = 42; +>u1.prop2 : Symbol(prop2, Decl(divergentAccessorsTypes3.ts, 2, 35), Decl(divergentAccessorsTypes3.ts, 4, 36), Decl(divergentAccessorsTypes3.ts, 15, 35), Decl(divergentAccessorsTypes3.ts, 17, 36)) +>u1 : Symbol(u1, Decl(divergentAccessorsTypes3.ts, 27, 13)) +>prop2 : Symbol(prop2, Decl(divergentAccessorsTypes3.ts, 2, 35), Decl(divergentAccessorsTypes3.ts, 4, 36), Decl(divergentAccessorsTypes3.ts, 15, 35), Decl(divergentAccessorsTypes3.ts, 17, 36)) + +u1.prop2 = "hello"; +>u1.prop2 : Symbol(prop2, Decl(divergentAccessorsTypes3.ts, 2, 35), Decl(divergentAccessorsTypes3.ts, 4, 36), Decl(divergentAccessorsTypes3.ts, 15, 35), Decl(divergentAccessorsTypes3.ts, 17, 36)) +>u1 : Symbol(u1, Decl(divergentAccessorsTypes3.ts, 27, 13)) +>prop2 : Symbol(prop2, Decl(divergentAccessorsTypes3.ts, 2, 35), Decl(divergentAccessorsTypes3.ts, 4, 36), Decl(divergentAccessorsTypes3.ts, 15, 35), Decl(divergentAccessorsTypes3.ts, 17, 36)) + +u1.prop3 = 42; +>u1.prop3 : Symbol(prop3, Decl(divergentAccessorsTypes3.ts, 5, 35), Decl(divergentAccessorsTypes3.ts, 18, 26), Decl(divergentAccessorsTypes3.ts, 20, 36)) +>u1 : Symbol(u1, Decl(divergentAccessorsTypes3.ts, 27, 13)) +>prop3 : Symbol(prop3, Decl(divergentAccessorsTypes3.ts, 5, 35), Decl(divergentAccessorsTypes3.ts, 18, 26), Decl(divergentAccessorsTypes3.ts, 20, 36)) + +u1.prop3 = "hello"; +>u1.prop3 : Symbol(prop3, Decl(divergentAccessorsTypes3.ts, 5, 35), Decl(divergentAccessorsTypes3.ts, 18, 26), Decl(divergentAccessorsTypes3.ts, 20, 36)) +>u1 : Symbol(u1, Decl(divergentAccessorsTypes3.ts, 27, 13)) +>prop3 : Symbol(prop3, Decl(divergentAccessorsTypes3.ts, 5, 35), Decl(divergentAccessorsTypes3.ts, 18, 26), Decl(divergentAccessorsTypes3.ts, 20, 36)) + +u1.prop3 = true; +>u1.prop3 : Symbol(prop3, Decl(divergentAccessorsTypes3.ts, 5, 35), Decl(divergentAccessorsTypes3.ts, 18, 26), Decl(divergentAccessorsTypes3.ts, 20, 36)) +>u1 : Symbol(u1, Decl(divergentAccessorsTypes3.ts, 27, 13)) +>prop3 : Symbol(prop3, Decl(divergentAccessorsTypes3.ts, 5, 35), Decl(divergentAccessorsTypes3.ts, 18, 26), Decl(divergentAccessorsTypes3.ts, 20, 36)) + +u1.prop4 = 42; +>u1.prop4 : Symbol(prop4, Decl(divergentAccessorsTypes3.ts, 7, 16), Decl(divergentAccessorsTypes3.ts, 9, 36), Decl(divergentAccessorsTypes3.ts, 21, 36), Decl(divergentAccessorsTypes3.ts, 23, 36)) +>u1 : Symbol(u1, Decl(divergentAccessorsTypes3.ts, 27, 13)) +>prop4 : Symbol(prop4, Decl(divergentAccessorsTypes3.ts, 7, 16), Decl(divergentAccessorsTypes3.ts, 9, 36), Decl(divergentAccessorsTypes3.ts, 21, 36), Decl(divergentAccessorsTypes3.ts, 23, 36)) + +u1.prop4 = "hello"; +>u1.prop4 : Symbol(prop4, Decl(divergentAccessorsTypes3.ts, 7, 16), Decl(divergentAccessorsTypes3.ts, 9, 36), Decl(divergentAccessorsTypes3.ts, 21, 36), Decl(divergentAccessorsTypes3.ts, 23, 36)) +>u1 : Symbol(u1, Decl(divergentAccessorsTypes3.ts, 27, 13)) +>prop4 : Symbol(prop4, Decl(divergentAccessorsTypes3.ts, 7, 16), Decl(divergentAccessorsTypes3.ts, 9, 36), Decl(divergentAccessorsTypes3.ts, 21, 36), Decl(divergentAccessorsTypes3.ts, 23, 36)) + +u1.prop4 = true; +>u1.prop4 : Symbol(prop4, Decl(divergentAccessorsTypes3.ts, 7, 16), Decl(divergentAccessorsTypes3.ts, 9, 36), Decl(divergentAccessorsTypes3.ts, 21, 36), Decl(divergentAccessorsTypes3.ts, 23, 36)) +>u1 : Symbol(u1, Decl(divergentAccessorsTypes3.ts, 27, 13)) +>prop4 : Symbol(prop4, Decl(divergentAccessorsTypes3.ts, 7, 16), Decl(divergentAccessorsTypes3.ts, 9, 36), Decl(divergentAccessorsTypes3.ts, 21, 36), Decl(divergentAccessorsTypes3.ts, 23, 36)) + diff --git a/tests/baselines/reference/divergentAccessorsTypes3.types b/tests/baselines/reference/divergentAccessorsTypes3.types new file mode 100644 index 0000000000000..3f59e2c146323 --- /dev/null +++ b/tests/baselines/reference/divergentAccessorsTypes3.types @@ -0,0 +1,141 @@ +=== tests/cases/compiler/divergentAccessorsTypes3.ts === +class One { +>One : One + + get prop1(): string { return ""; } +>prop1 : string +>"" : "" + + set prop1(s: string | number) { } +>prop1 : string +>s : string | number + + get prop2(): string { return ""; } +>prop2 : string +>"" : "" + + set prop2(s: string | number) { } +>prop2 : string +>s : string | number + + prop3: number; +>prop3 : number + + get prop4(): string { return ""; } +>prop4 : string +>"" : "" + + set prop4(s: string | number) { } +>prop4 : string +>s : string | number +} + +class Two { +>Two : Two + + get prop1(): string { return ""; } +>prop1 : string +>"" : "" + + set prop1(s: string | number) { } +>prop1 : string +>s : string | number + + get prop2(): string { return ""; } +>prop2 : string +>"" : "" + + set prop2(s: string) { } +>prop2 : string +>s : string + + get prop3(): string { return ""; } +>prop3 : string +>"" : "" + + set prop3(s: string | boolean) { } +>prop3 : string +>s : string | boolean + + get prop4(): string { return ""; } +>prop4 : string +>"" : "" + + set prop4(s: string | boolean) { } +>prop4 : string +>s : string | boolean +} + +declare const u1: One|Two; +>u1 : One | Two + +u1.prop1 = 42; +>u1.prop1 = 42 : 42 +>u1.prop1 : string | number +>u1 : One | Two +>prop1 : string | number +>42 : 42 + +u1.prop1 = "hello"; +>u1.prop1 = "hello" : "hello" +>u1.prop1 : string | number +>u1 : One | Two +>prop1 : string | number +>"hello" : "hello" + +u1.prop2 = 42; +>u1.prop2 = 42 : 42 +>u1.prop2 : string | number +>u1 : One | Two +>prop2 : string | number +>42 : 42 + +u1.prop2 = "hello"; +>u1.prop2 = "hello" : "hello" +>u1.prop2 : string | number +>u1 : One | Two +>prop2 : string | number +>"hello" : "hello" + +u1.prop3 = 42; +>u1.prop3 = 42 : 42 +>u1.prop3 : string | number | boolean +>u1 : One | Two +>prop3 : string | number | boolean +>42 : 42 + +u1.prop3 = "hello"; +>u1.prop3 = "hello" : "hello" +>u1.prop3 : string | number | boolean +>u1 : One | Two +>prop3 : string | number | boolean +>"hello" : "hello" + +u1.prop3 = true; +>u1.prop3 = true : true +>u1.prop3 : string | number | boolean +>u1 : One | Two +>prop3 : string | number | boolean +>true : true + +u1.prop4 = 42; +>u1.prop4 = 42 : 42 +>u1.prop4 : string | number | boolean +>u1 : One | Two +>prop4 : string | number | boolean +>42 : 42 + +u1.prop4 = "hello"; +>u1.prop4 = "hello" : "hello" +>u1.prop4 : string | number | boolean +>u1 : One | Two +>prop4 : string | number | boolean +>"hello" : "hello" + +u1.prop4 = true; +>u1.prop4 = true : true +>u1.prop4 : string | number | boolean +>u1 : One | Two +>prop4 : string | number | boolean +>true : true + diff --git a/tests/baselines/reference/divergentAccessorsTypes4.errors.txt b/tests/baselines/reference/divergentAccessorsTypes4.errors.txt new file mode 100644 index 0000000000000..496e9e2f397de --- /dev/null +++ b/tests/baselines/reference/divergentAccessorsTypes4.errors.txt @@ -0,0 +1,36 @@ +tests/cases/compiler/divergentAccessorsTypes4.ts(29,1): error TS2322: Type '"hello"' is not assignable to type '42'. + + +==== tests/cases/compiler/divergentAccessorsTypes4.ts (1 errors) ==== + class One { + get prop1(): string { return ""; } + set prop1(s: string | number) { } + + prop2: number; + } + + class Two { + get prop1(): "hello" { return "hello"; } + set prop1(s: "hello" | number) { } + + get prop2(): string { return ""; } + set prop2(s: string | 42) { } + + } + + declare const i: One & Two; + + // "hello" + i.prop1; + // number | "hello" + i.prop1 = 42; + i.prop1 = "hello"; + + // never + i.prop2; + // 42 + i.prop2 = 42; + i.prop2 = "hello"; // error + ~~~~~~~ +!!! error TS2322: Type '"hello"' is not assignable to type '42'. + \ No newline at end of file diff --git a/tests/baselines/reference/divergentAccessorsTypes4.js b/tests/baselines/reference/divergentAccessorsTypes4.js new file mode 100644 index 0000000000000..74df41f5ef235 --- /dev/null +++ b/tests/baselines/reference/divergentAccessorsTypes4.js @@ -0,0 +1,71 @@ +//// [divergentAccessorsTypes4.ts] +class One { + get prop1(): string { return ""; } + set prop1(s: string | number) { } + + prop2: number; +} + +class Two { + get prop1(): "hello" { return "hello"; } + set prop1(s: "hello" | number) { } + + get prop2(): string { return ""; } + set prop2(s: string | 42) { } + +} + +declare const i: One & Two; + +// "hello" +i.prop1; +// number | "hello" +i.prop1 = 42; +i.prop1 = "hello"; + +// never +i.prop2; +// 42 +i.prop2 = 42; +i.prop2 = "hello"; // error + + +//// [divergentAccessorsTypes4.js] +var One = /** @class */ (function () { + function One() { + } + Object.defineProperty(One.prototype, "prop1", { + get: function () { return ""; }, + set: function (s) { }, + enumerable: false, + configurable: true + }); + return One; +}()); +var Two = /** @class */ (function () { + function Two() { + } + Object.defineProperty(Two.prototype, "prop1", { + get: function () { return "hello"; }, + set: function (s) { }, + enumerable: false, + configurable: true + }); + Object.defineProperty(Two.prototype, "prop2", { + get: function () { return ""; }, + set: function (s) { }, + enumerable: false, + configurable: true + }); + return Two; +}()); +// "hello" +i.prop1; +// number | "hello" +i.prop1 = 42; +i.prop1 = "hello"; +// never +i.prop2; +// 42 +i.prop2 = 42; +i.prop2 = "hello"; // error diff --git a/tests/baselines/reference/divergentAccessorsTypes4.symbols b/tests/baselines/reference/divergentAccessorsTypes4.symbols new file mode 100644 index 0000000000000..263274063ed22 --- /dev/null +++ b/tests/baselines/reference/divergentAccessorsTypes4.symbols @@ -0,0 +1,73 @@ +=== tests/cases/compiler/divergentAccessorsTypes4.ts === +class One { +>One : Symbol(One, Decl(divergentAccessorsTypes4.ts, 0, 0)) + + get prop1(): string { return ""; } +>prop1 : Symbol(One.prop1, Decl(divergentAccessorsTypes4.ts, 0, 11), Decl(divergentAccessorsTypes4.ts, 1, 36)) + + set prop1(s: string | number) { } +>prop1 : Symbol(One.prop1, Decl(divergentAccessorsTypes4.ts, 0, 11), Decl(divergentAccessorsTypes4.ts, 1, 36)) +>s : Symbol(s, Decl(divergentAccessorsTypes4.ts, 2, 12)) + + prop2: number; +>prop2 : Symbol(One.prop2, Decl(divergentAccessorsTypes4.ts, 2, 35)) +} + +class Two { +>Two : Symbol(Two, Decl(divergentAccessorsTypes4.ts, 5, 1)) + + get prop1(): "hello" { return "hello"; } +>prop1 : Symbol(Two.prop1, Decl(divergentAccessorsTypes4.ts, 7, 11), Decl(divergentAccessorsTypes4.ts, 8, 42)) + + set prop1(s: "hello" | number) { } +>prop1 : Symbol(Two.prop1, Decl(divergentAccessorsTypes4.ts, 7, 11), Decl(divergentAccessorsTypes4.ts, 8, 42)) +>s : Symbol(s, Decl(divergentAccessorsTypes4.ts, 9, 12)) + + get prop2(): string { return ""; } +>prop2 : Symbol(Two.prop2, Decl(divergentAccessorsTypes4.ts, 9, 36), Decl(divergentAccessorsTypes4.ts, 11, 36)) + + set prop2(s: string | 42) { } +>prop2 : Symbol(Two.prop2, Decl(divergentAccessorsTypes4.ts, 9, 36), Decl(divergentAccessorsTypes4.ts, 11, 36)) +>s : Symbol(s, Decl(divergentAccessorsTypes4.ts, 12, 12)) + +} + +declare const i: One & Two; +>i : Symbol(i, Decl(divergentAccessorsTypes4.ts, 16, 13)) +>One : Symbol(One, Decl(divergentAccessorsTypes4.ts, 0, 0)) +>Two : Symbol(Two, Decl(divergentAccessorsTypes4.ts, 5, 1)) + +// "hello" +i.prop1; +>i.prop1 : Symbol(prop1, Decl(divergentAccessorsTypes4.ts, 0, 11), Decl(divergentAccessorsTypes4.ts, 1, 36), Decl(divergentAccessorsTypes4.ts, 7, 11), Decl(divergentAccessorsTypes4.ts, 8, 42)) +>i : Symbol(i, Decl(divergentAccessorsTypes4.ts, 16, 13)) +>prop1 : Symbol(prop1, Decl(divergentAccessorsTypes4.ts, 0, 11), Decl(divergentAccessorsTypes4.ts, 1, 36), Decl(divergentAccessorsTypes4.ts, 7, 11), Decl(divergentAccessorsTypes4.ts, 8, 42)) + +// number | "hello" +i.prop1 = 42; +>i.prop1 : Symbol(prop1, Decl(divergentAccessorsTypes4.ts, 0, 11), Decl(divergentAccessorsTypes4.ts, 1, 36), Decl(divergentAccessorsTypes4.ts, 7, 11), Decl(divergentAccessorsTypes4.ts, 8, 42)) +>i : Symbol(i, Decl(divergentAccessorsTypes4.ts, 16, 13)) +>prop1 : Symbol(prop1, Decl(divergentAccessorsTypes4.ts, 0, 11), Decl(divergentAccessorsTypes4.ts, 1, 36), Decl(divergentAccessorsTypes4.ts, 7, 11), Decl(divergentAccessorsTypes4.ts, 8, 42)) + +i.prop1 = "hello"; +>i.prop1 : Symbol(prop1, Decl(divergentAccessorsTypes4.ts, 0, 11), Decl(divergentAccessorsTypes4.ts, 1, 36), Decl(divergentAccessorsTypes4.ts, 7, 11), Decl(divergentAccessorsTypes4.ts, 8, 42)) +>i : Symbol(i, Decl(divergentAccessorsTypes4.ts, 16, 13)) +>prop1 : Symbol(prop1, Decl(divergentAccessorsTypes4.ts, 0, 11), Decl(divergentAccessorsTypes4.ts, 1, 36), Decl(divergentAccessorsTypes4.ts, 7, 11), Decl(divergentAccessorsTypes4.ts, 8, 42)) + +// never +i.prop2; +>i.prop2 : Symbol(prop2, Decl(divergentAccessorsTypes4.ts, 2, 35), Decl(divergentAccessorsTypes4.ts, 9, 36), Decl(divergentAccessorsTypes4.ts, 11, 36)) +>i : Symbol(i, Decl(divergentAccessorsTypes4.ts, 16, 13)) +>prop2 : Symbol(prop2, Decl(divergentAccessorsTypes4.ts, 2, 35), Decl(divergentAccessorsTypes4.ts, 9, 36), Decl(divergentAccessorsTypes4.ts, 11, 36)) + +// 42 +i.prop2 = 42; +>i.prop2 : Symbol(prop2, Decl(divergentAccessorsTypes4.ts, 2, 35), Decl(divergentAccessorsTypes4.ts, 9, 36), Decl(divergentAccessorsTypes4.ts, 11, 36)) +>i : Symbol(i, Decl(divergentAccessorsTypes4.ts, 16, 13)) +>prop2 : Symbol(prop2, Decl(divergentAccessorsTypes4.ts, 2, 35), Decl(divergentAccessorsTypes4.ts, 9, 36), Decl(divergentAccessorsTypes4.ts, 11, 36)) + +i.prop2 = "hello"; // error +>i.prop2 : Symbol(prop2, Decl(divergentAccessorsTypes4.ts, 2, 35), Decl(divergentAccessorsTypes4.ts, 9, 36), Decl(divergentAccessorsTypes4.ts, 11, 36)) +>i : Symbol(i, Decl(divergentAccessorsTypes4.ts, 16, 13)) +>prop2 : Symbol(prop2, Decl(divergentAccessorsTypes4.ts, 2, 35), Decl(divergentAccessorsTypes4.ts, 9, 36), Decl(divergentAccessorsTypes4.ts, 11, 36)) + diff --git a/tests/baselines/reference/divergentAccessorsTypes4.types b/tests/baselines/reference/divergentAccessorsTypes4.types new file mode 100644 index 0000000000000..eb3784b451dac --- /dev/null +++ b/tests/baselines/reference/divergentAccessorsTypes4.types @@ -0,0 +1,82 @@ +=== tests/cases/compiler/divergentAccessorsTypes4.ts === +class One { +>One : One + + get prop1(): string { return ""; } +>prop1 : string +>"" : "" + + set prop1(s: string | number) { } +>prop1 : string +>s : string | number + + prop2: number; +>prop2 : number +} + +class Two { +>Two : Two + + get prop1(): "hello" { return "hello"; } +>prop1 : "hello" +>"hello" : "hello" + + set prop1(s: "hello" | number) { } +>prop1 : "hello" +>s : number | "hello" + + get prop2(): string { return ""; } +>prop2 : string +>"" : "" + + set prop2(s: string | 42) { } +>prop2 : string +>s : string | 42 + +} + +declare const i: One & Two; +>i : One & Two + +// "hello" +i.prop1; +>i.prop1 : "hello" +>i : One & Two +>prop1 : "hello" + +// number | "hello" +i.prop1 = 42; +>i.prop1 = 42 : 42 +>i.prop1 : number | "hello" +>i : One & Two +>prop1 : number | "hello" +>42 : 42 + +i.prop1 = "hello"; +>i.prop1 = "hello" : "hello" +>i.prop1 : number | "hello" +>i : One & Two +>prop1 : number | "hello" +>"hello" : "hello" + +// never +i.prop2; +>i.prop2 : never +>i : One & Two +>prop2 : never + +// 42 +i.prop2 = 42; +>i.prop2 = 42 : 42 +>i.prop2 : 42 +>i : One & Two +>prop2 : 42 +>42 : 42 + +i.prop2 = "hello"; // error +>i.prop2 = "hello" : "hello" +>i.prop2 : 42 +>i : One & Two +>prop2 : 42 +>"hello" : "hello" + diff --git a/tests/baselines/reference/divergentAccessorsTypes5.errors.txt b/tests/baselines/reference/divergentAccessorsTypes5.errors.txt new file mode 100644 index 0000000000000..5f163a9b62ef1 --- /dev/null +++ b/tests/baselines/reference/divergentAccessorsTypes5.errors.txt @@ -0,0 +1,46 @@ +tests/cases/compiler/divergentAccessorsTypes5.ts(31,1): error TS2322: Type '42' is not assignable to type '"hello"'. +tests/cases/compiler/divergentAccessorsTypes5.ts(36,1): error TS2322: Type '"hello"' is not assignable to type '42'. + + +==== tests/cases/compiler/divergentAccessorsTypes5.ts (2 errors) ==== + // Not really different from divergentAccessorsTypes4.ts, + // but goes through the deferred type code + + class One { + get prop1(): string { return ""; } + set prop1(s: string | number) { } + + prop2: number; + } + + class Two { + get prop1(): "hello" { return "hello"; } + set prop1(s: "hello" | number) { } + + get prop2(): string { return ""; } + set prop2(s: string | 42) { } + + } + + class Three { + get prop1(): "hello" { return "hello"; } + set prop1(s: "hello" | boolean) { } + + get prop2(): string { return ""; } + set prop2(s: string | number | boolean) { } + } + + declare const i: One & Two & Three; + + // "hello" + i.prop1 = 42; // error + ~~~~~~~ +!!! error TS2322: Type '42' is not assignable to type '"hello"'. + i.prop1 = "hello"; + + // 42 + i.prop2 = 42; + i.prop2 = "hello"; // error + ~~~~~~~ +!!! error TS2322: Type '"hello"' is not assignable to type '42'. + \ No newline at end of file diff --git a/tests/baselines/reference/divergentAccessorsTypes5.js b/tests/baselines/reference/divergentAccessorsTypes5.js new file mode 100644 index 0000000000000..773289d1ddb06 --- /dev/null +++ b/tests/baselines/reference/divergentAccessorsTypes5.js @@ -0,0 +1,93 @@ +//// [divergentAccessorsTypes5.ts] +// Not really different from divergentAccessorsTypes4.ts, +// but goes through the deferred type code + +class One { + get prop1(): string { return ""; } + set prop1(s: string | number) { } + + prop2: number; +} + +class Two { + get prop1(): "hello" { return "hello"; } + set prop1(s: "hello" | number) { } + + get prop2(): string { return ""; } + set prop2(s: string | 42) { } + +} + +class Three { + get prop1(): "hello" { return "hello"; } + set prop1(s: "hello" | boolean) { } + + get prop2(): string { return ""; } + set prop2(s: string | number | boolean) { } +} + +declare const i: One & Two & Three; + +// "hello" +i.prop1 = 42; // error +i.prop1 = "hello"; + +// 42 +i.prop2 = 42; +i.prop2 = "hello"; // error + + +//// [divergentAccessorsTypes5.js] +// Not really different from divergentAccessorsTypes4.ts, +// but goes through the deferred type code +var One = /** @class */ (function () { + function One() { + } + Object.defineProperty(One.prototype, "prop1", { + get: function () { return ""; }, + set: function (s) { }, + enumerable: false, + configurable: true + }); + return One; +}()); +var Two = /** @class */ (function () { + function Two() { + } + Object.defineProperty(Two.prototype, "prop1", { + get: function () { return "hello"; }, + set: function (s) { }, + enumerable: false, + configurable: true + }); + Object.defineProperty(Two.prototype, "prop2", { + get: function () { return ""; }, + set: function (s) { }, + enumerable: false, + configurable: true + }); + return Two; +}()); +var Three = /** @class */ (function () { + function Three() { + } + Object.defineProperty(Three.prototype, "prop1", { + get: function () { return "hello"; }, + set: function (s) { }, + enumerable: false, + configurable: true + }); + Object.defineProperty(Three.prototype, "prop2", { + get: function () { return ""; }, + set: function (s) { }, + enumerable: false, + configurable: true + }); + return Three; +}()); +// "hello" +i.prop1 = 42; // error +i.prop1 = "hello"; +// 42 +i.prop2 = 42; +i.prop2 = "hello"; // error diff --git a/tests/baselines/reference/divergentAccessorsTypes5.symbols b/tests/baselines/reference/divergentAccessorsTypes5.symbols new file mode 100644 index 0000000000000..c698c9235bfe9 --- /dev/null +++ b/tests/baselines/reference/divergentAccessorsTypes5.symbols @@ -0,0 +1,83 @@ +=== tests/cases/compiler/divergentAccessorsTypes5.ts === +// Not really different from divergentAccessorsTypes4.ts, +// but goes through the deferred type code + +class One { +>One : Symbol(One, Decl(divergentAccessorsTypes5.ts, 0, 0)) + + get prop1(): string { return ""; } +>prop1 : Symbol(One.prop1, Decl(divergentAccessorsTypes5.ts, 3, 11), Decl(divergentAccessorsTypes5.ts, 4, 36)) + + set prop1(s: string | number) { } +>prop1 : Symbol(One.prop1, Decl(divergentAccessorsTypes5.ts, 3, 11), Decl(divergentAccessorsTypes5.ts, 4, 36)) +>s : Symbol(s, Decl(divergentAccessorsTypes5.ts, 5, 12)) + + prop2: number; +>prop2 : Symbol(One.prop2, Decl(divergentAccessorsTypes5.ts, 5, 35)) +} + +class Two { +>Two : Symbol(Two, Decl(divergentAccessorsTypes5.ts, 8, 1)) + + get prop1(): "hello" { return "hello"; } +>prop1 : Symbol(Two.prop1, Decl(divergentAccessorsTypes5.ts, 10, 11), Decl(divergentAccessorsTypes5.ts, 11, 42)) + + set prop1(s: "hello" | number) { } +>prop1 : Symbol(Two.prop1, Decl(divergentAccessorsTypes5.ts, 10, 11), Decl(divergentAccessorsTypes5.ts, 11, 42)) +>s : Symbol(s, Decl(divergentAccessorsTypes5.ts, 12, 12)) + + get prop2(): string { return ""; } +>prop2 : Symbol(Two.prop2, Decl(divergentAccessorsTypes5.ts, 12, 36), Decl(divergentAccessorsTypes5.ts, 14, 36)) + + set prop2(s: string | 42) { } +>prop2 : Symbol(Two.prop2, Decl(divergentAccessorsTypes5.ts, 12, 36), Decl(divergentAccessorsTypes5.ts, 14, 36)) +>s : Symbol(s, Decl(divergentAccessorsTypes5.ts, 15, 12)) + +} + +class Three { +>Three : Symbol(Three, Decl(divergentAccessorsTypes5.ts, 17, 1)) + + get prop1(): "hello" { return "hello"; } +>prop1 : Symbol(Three.prop1, Decl(divergentAccessorsTypes5.ts, 19, 13), Decl(divergentAccessorsTypes5.ts, 20, 42)) + + set prop1(s: "hello" | boolean) { } +>prop1 : Symbol(Three.prop1, Decl(divergentAccessorsTypes5.ts, 19, 13), Decl(divergentAccessorsTypes5.ts, 20, 42)) +>s : Symbol(s, Decl(divergentAccessorsTypes5.ts, 21, 12)) + + get prop2(): string { return ""; } +>prop2 : Symbol(Three.prop2, Decl(divergentAccessorsTypes5.ts, 21, 37), Decl(divergentAccessorsTypes5.ts, 23, 36)) + + set prop2(s: string | number | boolean) { } +>prop2 : Symbol(Three.prop2, Decl(divergentAccessorsTypes5.ts, 21, 37), Decl(divergentAccessorsTypes5.ts, 23, 36)) +>s : Symbol(s, Decl(divergentAccessorsTypes5.ts, 24, 12)) +} + +declare const i: One & Two & Three; +>i : Symbol(i, Decl(divergentAccessorsTypes5.ts, 27, 13)) +>One : Symbol(One, Decl(divergentAccessorsTypes5.ts, 0, 0)) +>Two : Symbol(Two, Decl(divergentAccessorsTypes5.ts, 8, 1)) +>Three : Symbol(Three, Decl(divergentAccessorsTypes5.ts, 17, 1)) + +// "hello" +i.prop1 = 42; // error +>i.prop1 : Symbol(prop1, Decl(divergentAccessorsTypes5.ts, 3, 11), Decl(divergentAccessorsTypes5.ts, 4, 36), Decl(divergentAccessorsTypes5.ts, 10, 11), Decl(divergentAccessorsTypes5.ts, 11, 42), Decl(divergentAccessorsTypes5.ts, 19, 13) ... and 1 more) +>i : Symbol(i, Decl(divergentAccessorsTypes5.ts, 27, 13)) +>prop1 : Symbol(prop1, Decl(divergentAccessorsTypes5.ts, 3, 11), Decl(divergentAccessorsTypes5.ts, 4, 36), Decl(divergentAccessorsTypes5.ts, 10, 11), Decl(divergentAccessorsTypes5.ts, 11, 42), Decl(divergentAccessorsTypes5.ts, 19, 13) ... and 1 more) + +i.prop1 = "hello"; +>i.prop1 : Symbol(prop1, Decl(divergentAccessorsTypes5.ts, 3, 11), Decl(divergentAccessorsTypes5.ts, 4, 36), Decl(divergentAccessorsTypes5.ts, 10, 11), Decl(divergentAccessorsTypes5.ts, 11, 42), Decl(divergentAccessorsTypes5.ts, 19, 13) ... and 1 more) +>i : Symbol(i, Decl(divergentAccessorsTypes5.ts, 27, 13)) +>prop1 : Symbol(prop1, Decl(divergentAccessorsTypes5.ts, 3, 11), Decl(divergentAccessorsTypes5.ts, 4, 36), Decl(divergentAccessorsTypes5.ts, 10, 11), Decl(divergentAccessorsTypes5.ts, 11, 42), Decl(divergentAccessorsTypes5.ts, 19, 13) ... and 1 more) + +// 42 +i.prop2 = 42; +>i.prop2 : Symbol(prop2, Decl(divergentAccessorsTypes5.ts, 5, 35), Decl(divergentAccessorsTypes5.ts, 12, 36), Decl(divergentAccessorsTypes5.ts, 14, 36), Decl(divergentAccessorsTypes5.ts, 21, 37), Decl(divergentAccessorsTypes5.ts, 23, 36)) +>i : Symbol(i, Decl(divergentAccessorsTypes5.ts, 27, 13)) +>prop2 : Symbol(prop2, Decl(divergentAccessorsTypes5.ts, 5, 35), Decl(divergentAccessorsTypes5.ts, 12, 36), Decl(divergentAccessorsTypes5.ts, 14, 36), Decl(divergentAccessorsTypes5.ts, 21, 37), Decl(divergentAccessorsTypes5.ts, 23, 36)) + +i.prop2 = "hello"; // error +>i.prop2 : Symbol(prop2, Decl(divergentAccessorsTypes5.ts, 5, 35), Decl(divergentAccessorsTypes5.ts, 12, 36), Decl(divergentAccessorsTypes5.ts, 14, 36), Decl(divergentAccessorsTypes5.ts, 21, 37), Decl(divergentAccessorsTypes5.ts, 23, 36)) +>i : Symbol(i, Decl(divergentAccessorsTypes5.ts, 27, 13)) +>prop2 : Symbol(prop2, Decl(divergentAccessorsTypes5.ts, 5, 35), Decl(divergentAccessorsTypes5.ts, 12, 36), Decl(divergentAccessorsTypes5.ts, 14, 36), Decl(divergentAccessorsTypes5.ts, 21, 37), Decl(divergentAccessorsTypes5.ts, 23, 36)) + diff --git a/tests/baselines/reference/divergentAccessorsTypes5.types b/tests/baselines/reference/divergentAccessorsTypes5.types new file mode 100644 index 0000000000000..5341163c3f808 --- /dev/null +++ b/tests/baselines/reference/divergentAccessorsTypes5.types @@ -0,0 +1,93 @@ +=== tests/cases/compiler/divergentAccessorsTypes5.ts === +// Not really different from divergentAccessorsTypes4.ts, +// but goes through the deferred type code + +class One { +>One : One + + get prop1(): string { return ""; } +>prop1 : string +>"" : "" + + set prop1(s: string | number) { } +>prop1 : string +>s : string | number + + prop2: number; +>prop2 : number +} + +class Two { +>Two : Two + + get prop1(): "hello" { return "hello"; } +>prop1 : "hello" +>"hello" : "hello" + + set prop1(s: "hello" | number) { } +>prop1 : "hello" +>s : number | "hello" + + get prop2(): string { return ""; } +>prop2 : string +>"" : "" + + set prop2(s: string | 42) { } +>prop2 : string +>s : string | 42 + +} + +class Three { +>Three : Three + + get prop1(): "hello" { return "hello"; } +>prop1 : "hello" +>"hello" : "hello" + + set prop1(s: "hello" | boolean) { } +>prop1 : "hello" +>s : boolean | "hello" + + get prop2(): string { return ""; } +>prop2 : string +>"" : "" + + set prop2(s: string | number | boolean) { } +>prop2 : string +>s : string | number | boolean +} + +declare const i: One & Two & Three; +>i : One & Two & Three + +// "hello" +i.prop1 = 42; // error +>i.prop1 = 42 : 42 +>i.prop1 : "hello" +>i : One & Two & Three +>prop1 : "hello" +>42 : 42 + +i.prop1 = "hello"; +>i.prop1 = "hello" : "hello" +>i.prop1 : "hello" +>i : One & Two & Three +>prop1 : "hello" +>"hello" : "hello" + +// 42 +i.prop2 = 42; +>i.prop2 = 42 : 42 +>i.prop2 : 42 +>i : One & Two & Three +>prop2 : 42 +>42 : 42 + +i.prop2 = "hello"; // error +>i.prop2 = "hello" : "hello" +>i.prop2 : 42 +>i : One & Two & Three +>prop2 : 42 +>"hello" : "hello" + diff --git a/tests/baselines/reference/doYouNeedToChangeYourTargetLibraryES2016Plus.errors.txt b/tests/baselines/reference/doYouNeedToChangeYourTargetLibraryES2016Plus.errors.txt index ee42a781a6366..3e7a58d4b942f 100644 --- a/tests/baselines/reference/doYouNeedToChangeYourTargetLibraryES2016Plus.errors.txt +++ b/tests/baselines/reference/doYouNeedToChangeYourTargetLibraryES2016Plus.errors.txt @@ -16,7 +16,7 @@ tests/cases/compiler/doYouNeedToChangeYourTargetLibraryES2016Plus.ts(20,27): err tests/cases/compiler/doYouNeedToChangeYourTargetLibraryES2016Plus.ts(21,35): error TS2583: Cannot find name 'AsyncGeneratorFunction'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2018' or later. tests/cases/compiler/doYouNeedToChangeYourTargetLibraryES2016Plus.ts(22,26): error TS2583: Cannot find name 'AsyncIterable'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2018' or later. tests/cases/compiler/doYouNeedToChangeYourTargetLibraryES2016Plus.ts(23,34): error TS2583: Cannot find name 'AsyncIterableIterator'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2018' or later. -tests/cases/compiler/doYouNeedToChangeYourTargetLibraryES2016Plus.ts(24,70): error TS2550: Property 'formatToParts' does not exist on type 'NumberFormat'. Do you need to change your target library? Try changing the 'lib' compiler option to 'esnext' or later. +tests/cases/compiler/doYouNeedToChangeYourTargetLibraryES2016Plus.ts(24,70): error TS2550: Property 'formatToParts' does not exist on type 'NumberFormat'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2018' or later. tests/cases/compiler/doYouNeedToChangeYourTargetLibraryES2016Plus.ts(27,26): error TS2550: Property 'flat' does not exist on type 'undefined[]'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2019' or later. tests/cases/compiler/doYouNeedToChangeYourTargetLibraryES2016Plus.ts(28,29): error TS2550: Property 'flatMap' does not exist on type 'undefined[]'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2019' or later. tests/cases/compiler/doYouNeedToChangeYourTargetLibraryES2016Plus.ts(29,49): error TS2550: Property 'fromEntries' does not exist on type 'ObjectConstructor'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2019' or later. @@ -95,7 +95,7 @@ tests/cases/compiler/doYouNeedToChangeYourTargetLibraryES2016Plus.ts(44,33): err !!! error TS2583: Cannot find name 'AsyncIterableIterator'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2018' or later. const testNumberFormatFormatToParts = new Intl.NumberFormat("en-US").formatToParts(); ~~~~~~~~~~~~~ -!!! error TS2550: Property 'formatToParts' does not exist on type 'NumberFormat'. Do you need to change your target library? Try changing the 'lib' compiler option to 'esnext' or later. +!!! error TS2550: Property 'formatToParts' does not exist on type 'NumberFormat'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2018' or later. // es2019 const testArrayFlat = [].flat(); diff --git a/tests/baselines/reference/doYouNeedToChangeYourTargetLibraryES2016Plus.types b/tests/baselines/reference/doYouNeedToChangeYourTargetLibraryES2016Plus.types index c8408cb3cece5..a085da824fb83 100644 --- a/tests/baselines/reference/doYouNeedToChangeYourTargetLibraryES2016Plus.types +++ b/tests/baselines/reference/doYouNeedToChangeYourTargetLibraryES2016Plus.types @@ -55,9 +55,9 @@ const testIntlFormatToParts = new Intl.DateTimeFormat("en-US").formatToParts(); >new Intl.DateTimeFormat("en-US").formatToParts() : any >new Intl.DateTimeFormat("en-US").formatToParts : any >new Intl.DateTimeFormat("en-US") : Intl.DateTimeFormat ->Intl.DateTimeFormat : { (locales?: string | string[], options?: Intl.DateTimeFormatOptions): Intl.DateTimeFormat; new (locales?: string | string[], options?: Intl.DateTimeFormatOptions): Intl.DateTimeFormat; supportedLocalesOf(locales: string | string[], options?: Intl.DateTimeFormatOptions): string[]; } +>Intl.DateTimeFormat : { (locales?: string | string[], options?: Intl.DateTimeFormatOptions): Intl.DateTimeFormat; new (locales?: string | string[], options?: Intl.DateTimeFormatOptions): Intl.DateTimeFormat; supportedLocalesOf(locales: string | string[], options?: Intl.DateTimeFormatOptions): string[]; readonly prototype: Intl.DateTimeFormat; } >Intl : typeof Intl ->DateTimeFormat : { (locales?: string | string[], options?: Intl.DateTimeFormatOptions): Intl.DateTimeFormat; new (locales?: string | string[], options?: Intl.DateTimeFormatOptions): Intl.DateTimeFormat; supportedLocalesOf(locales: string | string[], options?: Intl.DateTimeFormatOptions): string[]; } +>DateTimeFormat : { (locales?: string | string[], options?: Intl.DateTimeFormatOptions): Intl.DateTimeFormat; new (locales?: string | string[], options?: Intl.DateTimeFormatOptions): Intl.DateTimeFormat; supportedLocalesOf(locales: string | string[], options?: Intl.DateTimeFormatOptions): string[]; readonly prototype: Intl.DateTimeFormat; } >"en-US" : "en-US" >formatToParts : any @@ -152,9 +152,9 @@ const testNumberFormatFormatToParts = new Intl.NumberFormat("en-US").formatToPar >new Intl.NumberFormat("en-US").formatToParts() : any >new Intl.NumberFormat("en-US").formatToParts : any >new Intl.NumberFormat("en-US") : Intl.NumberFormat ->Intl.NumberFormat : { (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; new (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; supportedLocalesOf(locales: string | string[], options?: Intl.NumberFormatOptions): string[]; } +>Intl.NumberFormat : { (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; new (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; supportedLocalesOf(locales: string | string[], options?: Intl.NumberFormatOptions): string[]; readonly prototype: Intl.NumberFormat; } >Intl : typeof Intl ->NumberFormat : { (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; new (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; supportedLocalesOf(locales: string | string[], options?: Intl.NumberFormatOptions): string[]; } +>NumberFormat : { (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; new (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; supportedLocalesOf(locales: string | string[], options?: Intl.NumberFormatOptions): string[]; readonly prototype: Intl.NumberFormat; } >"en-US" : "en-US" >formatToParts : any diff --git a/tests/baselines/reference/doubleUnderscoreExportStarConflict.js b/tests/baselines/reference/doubleUnderscoreExportStarConflict.js index eee48374d1edf..2d19234d7f6ea 100644 --- a/tests/baselines/reference/doubleUnderscoreExportStarConflict.js +++ b/tests/baselines/reference/doubleUnderscoreExportStarConflict.js @@ -27,7 +27,11 @@ exports.__foo = __foo; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/duplicateIdentifierDifferentSpelling.errors.txt b/tests/baselines/reference/duplicateIdentifierDifferentSpelling.errors.txt index fda0f4a66d98a..9b69963bd05f4 100644 --- a/tests/baselines/reference/duplicateIdentifierDifferentSpelling.errors.txt +++ b/tests/baselines/reference/duplicateIdentifierDifferentSpelling.errors.txt @@ -1,5 +1,5 @@ tests/cases/compiler/duplicateIdentifierDifferentSpelling.ts(3,3): error TS2300: Duplicate identifier '3'. -tests/cases/compiler/duplicateIdentifierDifferentSpelling.ts(6,21): error TS2300: Duplicate identifier '3'. +tests/cases/compiler/duplicateIdentifierDifferentSpelling.ts(6,21): error TS1117: An object literal cannot have multiple properties with the same name. ==== tests/cases/compiler/duplicateIdentifierDifferentSpelling.ts (2 errors) ==== @@ -12,5 +12,5 @@ tests/cases/compiler/duplicateIdentifierDifferentSpelling.ts(6,21): error TS2300 var X = { 0b11: '', 3: '' }; ~ -!!! error TS2300: Duplicate identifier '3'. +!!! error TS1117: An object literal cannot have multiple properties with the same name. \ No newline at end of file diff --git a/tests/baselines/reference/duplicateIdentifierRelatedSpans1.errors.txt b/tests/baselines/reference/duplicateIdentifierRelatedSpans1.errors.txt index ed4a93ad1075a..7af192eaccefb 100644 --- a/tests/baselines/reference/duplicateIdentifierRelatedSpans1.errors.txt +++ b/tests/baselines/reference/duplicateIdentifierRelatedSpans1.errors.txt @@ -92,5 +92,9 @@ !!! error TS2451: Cannot redeclare block-scoped variable 'Bar'. !!! related TS6203 tests/cases/compiler/file1.ts:2:7: 'Bar' was also declared here. -Found 6 errors. +Found 6 errors in 3 files. +Errors Files + 2 tests/cases/compiler/file1.ts:1 + 2 tests/cases/compiler/file2.ts:1 + 2 tests/cases/compiler/file3.ts:1 diff --git a/tests/baselines/reference/duplicateIdentifierRelatedSpans2.errors.txt b/tests/baselines/reference/duplicateIdentifierRelatedSpans2.errors.txt index e149ce706f1a0..ad68805426222 100644 --- a/tests/baselines/reference/duplicateIdentifierRelatedSpans2.errors.txt +++ b/tests/baselines/reference/duplicateIdentifierRelatedSpans2.errors.txt @@ -45,5 +45,8 @@ class H { } class I { } -Found 2 errors. +Found 2 errors in 2 files. +Errors Files + 1 tests/cases/compiler/file1.ts:1 + 1 tests/cases/compiler/file2.ts:1 diff --git a/tests/baselines/reference/duplicateIdentifierRelatedSpans3.errors.txt b/tests/baselines/reference/duplicateIdentifierRelatedSpans3.errors.txt index 81c8f5c0c00c7..6011901e8eff7 100644 --- a/tests/baselines/reference/duplicateIdentifierRelatedSpans3.errors.txt +++ b/tests/baselines/reference/duplicateIdentifierRelatedSpans3.errors.txt @@ -85,5 +85,8 @@ !!! related TS6203 tests/cases/compiler/file1.ts:4:5: 'duplicate3' was also declared here. } -Found 6 errors. +Found 6 errors in 2 files. +Errors Files + 3 tests/cases/compiler/file1.ts:2 + 3 tests/cases/compiler/file2.ts:2 diff --git a/tests/baselines/reference/duplicateIdentifierRelatedSpans4.errors.txt b/tests/baselines/reference/duplicateIdentifierRelatedSpans4.errors.txt index b6cd9e2fe4e79..fa4ce928062f6 100644 --- a/tests/baselines/reference/duplicateIdentifierRelatedSpans4.errors.txt +++ b/tests/baselines/reference/duplicateIdentifierRelatedSpans4.errors.txt @@ -47,5 +47,8 @@ duplicate8(): number; } -Found 2 errors. +Found 2 errors in 2 files. +Errors Files + 1 tests/cases/compiler/file1.ts:1 + 1 tests/cases/compiler/file2.ts:1 diff --git a/tests/baselines/reference/duplicateIdentifierRelatedSpans5.errors.txt b/tests/baselines/reference/duplicateIdentifierRelatedSpans5.errors.txt index ae55bedd1383b..9fb968961542e 100644 --- a/tests/baselines/reference/duplicateIdentifierRelatedSpans5.errors.txt +++ b/tests/baselines/reference/duplicateIdentifierRelatedSpans5.errors.txt @@ -92,5 +92,8 @@ } export {} -Found 6 errors. +Found 6 errors in 2 files. +Errors Files + 3 tests/cases/compiler/file1.ts:3 + 3 tests/cases/compiler/file2.ts:4 diff --git a/tests/baselines/reference/duplicateIdentifierRelatedSpans6.errors.txt b/tests/baselines/reference/duplicateIdentifierRelatedSpans6.errors.txt index c380c59c48a5b..3cea39c831569 100644 --- a/tests/baselines/reference/duplicateIdentifierRelatedSpans6.errors.txt +++ b/tests/baselines/reference/duplicateIdentifierRelatedSpans6.errors.txt @@ -92,5 +92,8 @@ !!! related TS6203 tests/cases/compiler/file2.ts:7:9: 'duplicate3' was also declared here. } } -Found 6 errors. +Found 6 errors in 2 files. +Errors Files + 3 tests/cases/compiler/file1.ts:3 + 3 tests/cases/compiler/file2.ts:5 diff --git a/tests/baselines/reference/duplicateIdentifierRelatedSpans7.errors.txt b/tests/baselines/reference/duplicateIdentifierRelatedSpans7.errors.txt index 6e5c0ab902cc9..4b3c7ceef6fc1 100644 --- a/tests/baselines/reference/duplicateIdentifierRelatedSpans7.errors.txt +++ b/tests/baselines/reference/duplicateIdentifierRelatedSpans7.errors.txt @@ -56,5 +56,8 @@ duplicate9: () => string; } } -Found 2 errors. +Found 2 errors in 2 files. +Errors Files + 1 tests/cases/compiler/file1.ts:1 + 1 tests/cases/compiler/file2.ts:3 diff --git a/tests/baselines/reference/duplicateNumericIndexers.errors.txt b/tests/baselines/reference/duplicateNumericIndexers.errors.txt index 0d7c6f4eca64e..e0eb2d237056c 100644 --- a/tests/baselines/reference/duplicateNumericIndexers.errors.txt +++ b/tests/baselines/reference/duplicateNumericIndexers.errors.txt @@ -10,8 +10,8 @@ tests/cases/conformance/types/members/duplicateNumericIndexers.ts(24,5): error T tests/cases/conformance/types/members/duplicateNumericIndexers.ts(25,5): error TS2374: Duplicate index signature for type 'number'. tests/cases/conformance/types/members/duplicateNumericIndexers.ts(29,5): error TS2374: Duplicate index signature for type 'number'. tests/cases/conformance/types/members/duplicateNumericIndexers.ts(30,5): error TS2374: Duplicate index signature for type 'number'. -lib.es5.d.ts(517,5): error TS2374: Duplicate index signature for type 'number'. -lib.es5.d.ts(1450,5): error TS2374: Duplicate index signature for type 'number'. +lib.es5.d.ts(523,5): error TS2374: Duplicate index signature for type 'number'. +lib.es5.d.ts(1456,5): error TS2374: Duplicate index signature for type 'number'. ==== tests/cases/conformance/types/members/duplicateNumericIndexers.ts (12 errors) ==== diff --git a/tests/baselines/reference/duplicateObjectLiteralProperty.errors.txt b/tests/baselines/reference/duplicateObjectLiteralProperty.errors.txt index abc56a6f8fce7..1e577a7dedd6c 100644 --- a/tests/baselines/reference/duplicateObjectLiteralProperty.errors.txt +++ b/tests/baselines/reference/duplicateObjectLiteralProperty.errors.txt @@ -1,7 +1,7 @@ -tests/cases/compiler/duplicateObjectLiteralProperty.ts(4,5): error TS2300: Duplicate identifier 'a'. -tests/cases/compiler/duplicateObjectLiteralProperty.ts(5,5): error TS2300: Duplicate identifier '\u0061'. -tests/cases/compiler/duplicateObjectLiteralProperty.ts(6,5): error TS2300: Duplicate identifier 'a'. -tests/cases/compiler/duplicateObjectLiteralProperty.ts(8,9): error TS2300: Duplicate identifier '"c"'. +tests/cases/compiler/duplicateObjectLiteralProperty.ts(4,5): error TS1117: An object literal cannot have multiple properties with the same name. +tests/cases/compiler/duplicateObjectLiteralProperty.ts(5,5): error TS1117: An object literal cannot have multiple properties with the same name. +tests/cases/compiler/duplicateObjectLiteralProperty.ts(6,5): error TS1117: An object literal cannot have multiple properties with the same name. +tests/cases/compiler/duplicateObjectLiteralProperty.ts(8,9): error TS1117: An object literal cannot have multiple properties with the same name. tests/cases/compiler/duplicateObjectLiteralProperty.ts(14,9): error TS2300: Duplicate identifier 'a'. tests/cases/compiler/duplicateObjectLiteralProperty.ts(15,9): error TS2300: Duplicate identifier 'a'. tests/cases/compiler/duplicateObjectLiteralProperty.ts(16,9): error TS1118: An object literal cannot have multiple get/set accessors with the same name. @@ -14,17 +14,17 @@ tests/cases/compiler/duplicateObjectLiteralProperty.ts(16,9): error TS2300: Dupl b: true, // OK a: 56, // Duplicate ~ -!!! error TS2300: Duplicate identifier 'a'. +!!! error TS1117: An object literal cannot have multiple properties with the same name. \u0061: "ss", // Duplicate ~~~~~~ -!!! error TS2300: Duplicate identifier '\u0061'. +!!! error TS1117: An object literal cannot have multiple properties with the same name. a: { ~ -!!! error TS2300: Duplicate identifier 'a'. +!!! error TS1117: An object literal cannot have multiple properties with the same name. c: 1, "c": 56, // Duplicate ~~~ -!!! error TS2300: Duplicate identifier '"c"'. +!!! error TS1117: An object literal cannot have multiple properties with the same name. } }; diff --git a/tests/baselines/reference/duplicateObjectLiteralProperty_computedName.errors.txt b/tests/baselines/reference/duplicateObjectLiteralProperty_computedName.errors.txt index 84fae4c8fbe8a..af508272d8462 100644 --- a/tests/baselines/reference/duplicateObjectLiteralProperty_computedName.errors.txt +++ b/tests/baselines/reference/duplicateObjectLiteralProperty_computedName.errors.txt @@ -1,9 +1,9 @@ -tests/cases/compiler/duplicateObjectLiteralProperty_computedName.ts(3,5): error TS2300: Duplicate identifier '[1]'. -tests/cases/compiler/duplicateObjectLiteralProperty_computedName.ts(8,5): error TS2300: Duplicate identifier '[+1]'. -tests/cases/compiler/duplicateObjectLiteralProperty_computedName.ts(13,5): error TS2300: Duplicate identifier '[+1]'. -tests/cases/compiler/duplicateObjectLiteralProperty_computedName.ts(23,5): error TS2300: Duplicate identifier '["+1"]'. -tests/cases/compiler/duplicateObjectLiteralProperty_computedName.ts(28,5): error TS2300: Duplicate identifier '[-1]'. -tests/cases/compiler/duplicateObjectLiteralProperty_computedName.ts(33,5): error TS2300: Duplicate identifier '["-1"]'. +tests/cases/compiler/duplicateObjectLiteralProperty_computedName.ts(3,5): error TS1117: An object literal cannot have multiple properties with the same name. +tests/cases/compiler/duplicateObjectLiteralProperty_computedName.ts(8,5): error TS1117: An object literal cannot have multiple properties with the same name. +tests/cases/compiler/duplicateObjectLiteralProperty_computedName.ts(13,5): error TS1117: An object literal cannot have multiple properties with the same name. +tests/cases/compiler/duplicateObjectLiteralProperty_computedName.ts(23,5): error TS1117: An object literal cannot have multiple properties with the same name. +tests/cases/compiler/duplicateObjectLiteralProperty_computedName.ts(28,5): error TS1117: An object literal cannot have multiple properties with the same name. +tests/cases/compiler/duplicateObjectLiteralProperty_computedName.ts(33,5): error TS1117: An object literal cannot have multiple properties with the same name. ==== tests/cases/compiler/duplicateObjectLiteralProperty_computedName.ts (6 errors) ==== @@ -11,21 +11,21 @@ tests/cases/compiler/duplicateObjectLiteralProperty_computedName.ts(33,5): error 1: 1, [1]: 0 // duplicate ~~~ -!!! error TS2300: Duplicate identifier '[1]'. +!!! error TS1117: An object literal cannot have multiple properties with the same name. } const t2 = { 1: 1, [+1]: 0 // duplicate ~~~~ -!!! error TS2300: Duplicate identifier '[+1]'. +!!! error TS1117: An object literal cannot have multiple properties with the same name. } const t3 = { "1": 1, [+1]: 0 // duplicate ~~~~ -!!! error TS2300: Duplicate identifier '[+1]'. +!!! error TS1117: An object literal cannot have multiple properties with the same name. } const t4 = { @@ -37,20 +37,20 @@ tests/cases/compiler/duplicateObjectLiteralProperty_computedName.ts(33,5): error "+1": 1, ["+1"]: 0 // duplicate ~~~~~~ -!!! error TS2300: Duplicate identifier '["+1"]'. +!!! error TS1117: An object literal cannot have multiple properties with the same name. } const t6 = { "-1": 1, [-1]: 0 // duplicate ~~~~ -!!! error TS2300: Duplicate identifier '[-1]'. +!!! error TS1117: An object literal cannot have multiple properties with the same name. } const t7 = { "-1": 1, ["-1"]: 0 // duplicate ~~~~~~ -!!! error TS2300: Duplicate identifier '["-1"]'. +!!! error TS1117: An object literal cannot have multiple properties with the same name. } \ No newline at end of file diff --git a/tests/baselines/reference/duplicatePropertiesInStrictMode.errors.txt b/tests/baselines/reference/duplicatePropertiesInStrictMode.errors.txt index 17a55a7876b00..06adca996f8db 100644 --- a/tests/baselines/reference/duplicatePropertiesInStrictMode.errors.txt +++ b/tests/baselines/reference/duplicatePropertiesInStrictMode.errors.txt @@ -1,14 +1,11 @@ -tests/cases/compiler/duplicatePropertiesInStrictMode.ts(4,3): error TS1117: An object literal cannot have multiple properties with the same name in strict mode. -tests/cases/compiler/duplicatePropertiesInStrictMode.ts(4,3): error TS2300: Duplicate identifier 'x'. +tests/cases/compiler/duplicatePropertiesInStrictMode.ts(4,3): error TS1117: An object literal cannot have multiple properties with the same name. -==== tests/cases/compiler/duplicatePropertiesInStrictMode.ts (2 errors) ==== +==== tests/cases/compiler/duplicatePropertiesInStrictMode.ts (1 errors) ==== "use strict"; var x = { x: 1, x: 2 ~ -!!! error TS1117: An object literal cannot have multiple properties with the same name in strict mode. - ~ -!!! error TS2300: Duplicate identifier 'x'. +!!! error TS1117: An object literal cannot have multiple properties with the same name. } \ No newline at end of file diff --git a/tests/baselines/reference/duplicatePropertyNames.errors.txt b/tests/baselines/reference/duplicatePropertyNames.errors.txt index f8ed73c570740..8c163a99e9d26 100644 --- a/tests/baselines/reference/duplicatePropertyNames.errors.txt +++ b/tests/baselines/reference/duplicatePropertyNames.errors.txt @@ -12,8 +12,8 @@ tests/cases/conformance/types/members/duplicatePropertyNames.ts(35,5): error TS2 tests/cases/conformance/types/members/duplicatePropertyNames.ts(36,5): error TS2300: Duplicate identifier 'foo'. tests/cases/conformance/types/members/duplicatePropertyNames.ts(38,5): error TS2300: Duplicate identifier 'bar'. tests/cases/conformance/types/members/duplicatePropertyNames.ts(39,5): error TS2300: Duplicate identifier 'bar'. -tests/cases/conformance/types/members/duplicatePropertyNames.ts(44,5): error TS2300: Duplicate identifier 'foo'. -tests/cases/conformance/types/members/duplicatePropertyNames.ts(46,5): error TS2300: Duplicate identifier 'bar'. +tests/cases/conformance/types/members/duplicatePropertyNames.ts(44,5): error TS1117: An object literal cannot have multiple properties with the same name. +tests/cases/conformance/types/members/duplicatePropertyNames.ts(46,5): error TS1117: An object literal cannot have multiple properties with the same name. ==== tests/cases/conformance/types/members/duplicatePropertyNames.ts (16 errors) ==== @@ -90,10 +90,10 @@ tests/cases/conformance/types/members/duplicatePropertyNames.ts(46,5): error TS2 foo: '', foo: '', ~~~ -!!! error TS2300: Duplicate identifier 'foo'. +!!! error TS1117: An object literal cannot have multiple properties with the same name. bar: () => { }, bar: () => { } ~~~ -!!! error TS2300: Duplicate identifier 'bar'. +!!! error TS1117: An object literal cannot have multiple properties with the same name. } \ No newline at end of file diff --git a/tests/baselines/reference/duplicateVarsAcrossFileBoundaries.js b/tests/baselines/reference/duplicateVarsAcrossFileBoundaries.js index f26b866991aa8..4e60fa535b5c0 100644 --- a/tests/baselines/reference/duplicateVarsAcrossFileBoundaries.js +++ b/tests/baselines/reference/duplicateVarsAcrossFileBoundaries.js @@ -43,6 +43,7 @@ var x = 0; var y = ""; var z = 0; //// [duplicateVarsAcrossFileBoundaries_4.js] +var p = P; var q; //// [duplicateVarsAcrossFileBoundaries_5.js] var p; diff --git a/tests/baselines/reference/emitDecoratorMetadata_isolatedModules(module=commonjs).js b/tests/baselines/reference/emitDecoratorMetadata_isolatedModules(module=commonjs).js new file mode 100644 index 0000000000000..83510c982892d --- /dev/null +++ b/tests/baselines/reference/emitDecoratorMetadata_isolatedModules(module=commonjs).js @@ -0,0 +1,108 @@ +//// [tests/cases/compiler/emitDecoratorMetadata_isolatedModules.ts] //// + +//// [type1.ts] +interface T1 {} +export type { T1 } + +//// [type2.ts] +export interface T2 {} + +//// [class3.ts] +export class C3 {} + +//// [index.ts] +import { T1 } from "./type1"; +import * as t1 from "./type1"; +import type { T2 } from "./type2"; +import { C3 } from "./class3"; +declare var EventListener: any; + +class HelloWorld { + @EventListener('1') + handleEvent1(event: T1) {} // Error + + @EventListener('2') + handleEvent2(event: T2) {} // Ok + + @EventListener('1') + p1!: T1; // Error + + @EventListener('1') + p1_ns!: t1.T1; // Ok + + @EventListener('2') + p2!: T2; // Ok + + @EventListener('3') + handleEvent3(event: C3): T1 { return undefined! } // Ok, Error +} + + +//// [type1.js] +"use strict"; +exports.__esModule = true; +//// [type2.js] +"use strict"; +exports.__esModule = true; +//// [class3.js] +"use strict"; +exports.__esModule = true; +exports.C3 = void 0; +var C3 = /** @class */ (function () { + function C3() { + } + return C3; +}()); +exports.C3 = C3; +//// [index.js] +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +exports.__esModule = true; +var t1 = require("./type1"); +var class3_1 = require("./class3"); +var HelloWorld = /** @class */ (function () { + function HelloWorld() { + } + HelloWorld.prototype.handleEvent1 = function (event) { }; // Error + HelloWorld.prototype.handleEvent2 = function (event) { }; // Ok + HelloWorld.prototype.handleEvent3 = function (event) { return undefined; }; // Ok, Error + __decorate([ + EventListener('1'), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object]), + __metadata("design:returntype", void 0) + ], HelloWorld.prototype, "handleEvent1"); + __decorate([ + EventListener('2'), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object]), + __metadata("design:returntype", void 0) + ], HelloWorld.prototype, "handleEvent2"); + __decorate([ + EventListener('1'), + __metadata("design:type", Object) + ], HelloWorld.prototype, "p1"); + __decorate([ + EventListener('1'), + __metadata("design:type", Object) + ], HelloWorld.prototype, "p1_ns"); + __decorate([ + EventListener('2'), + __metadata("design:type", Object) + ], HelloWorld.prototype, "p2"); + __decorate([ + EventListener('3'), + __metadata("design:type", Function), + __metadata("design:paramtypes", [class3_1.C3]), + __metadata("design:returntype", Object) + ], HelloWorld.prototype, "handleEvent3"); + return HelloWorld; +}()); diff --git a/tests/baselines/reference/emitDecoratorMetadata_isolatedModules(module=commonjs).symbols b/tests/baselines/reference/emitDecoratorMetadata_isolatedModules(module=commonjs).symbols new file mode 100644 index 0000000000000..075bdc3ee7822 --- /dev/null +++ b/tests/baselines/reference/emitDecoratorMetadata_isolatedModules(module=commonjs).symbols @@ -0,0 +1,83 @@ +=== tests/cases/compiler/type1.ts === +interface T1 {} +>T1 : Symbol(T1, Decl(type1.ts, 0, 0)) + +export type { T1 } +>T1 : Symbol(T1, Decl(type1.ts, 1, 13)) + +=== tests/cases/compiler/type2.ts === +export interface T2 {} +>T2 : Symbol(T2, Decl(type2.ts, 0, 0)) + +=== tests/cases/compiler/class3.ts === +export class C3 {} +>C3 : Symbol(C3, Decl(class3.ts, 0, 0)) + +=== tests/cases/compiler/index.ts === +import { T1 } from "./type1"; +>T1 : Symbol(T1, Decl(index.ts, 0, 8)) + +import * as t1 from "./type1"; +>t1 : Symbol(t1, Decl(index.ts, 1, 6)) + +import type { T2 } from "./type2"; +>T2 : Symbol(T2, Decl(index.ts, 2, 13)) + +import { C3 } from "./class3"; +>C3 : Symbol(C3, Decl(index.ts, 3, 8)) + +declare var EventListener: any; +>EventListener : Symbol(EventListener, Decl(index.ts, 4, 11)) + +class HelloWorld { +>HelloWorld : Symbol(HelloWorld, Decl(index.ts, 4, 31)) + + @EventListener('1') +>EventListener : Symbol(EventListener, Decl(index.ts, 4, 11)) + + handleEvent1(event: T1) {} // Error +>handleEvent1 : Symbol(HelloWorld.handleEvent1, Decl(index.ts, 6, 18)) +>event : Symbol(event, Decl(index.ts, 8, 15)) +>T1 : Symbol(T1, Decl(index.ts, 0, 8)) + + @EventListener('2') +>EventListener : Symbol(EventListener, Decl(index.ts, 4, 11)) + + handleEvent2(event: T2) {} // Ok +>handleEvent2 : Symbol(HelloWorld.handleEvent2, Decl(index.ts, 8, 28)) +>event : Symbol(event, Decl(index.ts, 11, 15)) +>T2 : Symbol(T2, Decl(index.ts, 2, 13)) + + @EventListener('1') +>EventListener : Symbol(EventListener, Decl(index.ts, 4, 11)) + + p1!: T1; // Error +>p1 : Symbol(HelloWorld.p1, Decl(index.ts, 11, 28)) +>T1 : Symbol(T1, Decl(index.ts, 0, 8)) + + @EventListener('1') +>EventListener : Symbol(EventListener, Decl(index.ts, 4, 11)) + + p1_ns!: t1.T1; // Ok +>p1_ns : Symbol(HelloWorld.p1_ns, Decl(index.ts, 14, 10)) +>t1 : Symbol(t1, Decl(index.ts, 1, 6)) +>T1 : Symbol(t1.T1, Decl(type1.ts, 1, 13)) + + @EventListener('2') +>EventListener : Symbol(EventListener, Decl(index.ts, 4, 11)) + + p2!: T2; // Ok +>p2 : Symbol(HelloWorld.p2, Decl(index.ts, 17, 16)) +>T2 : Symbol(T2, Decl(index.ts, 2, 13)) + + @EventListener('3') +>EventListener : Symbol(EventListener, Decl(index.ts, 4, 11)) + + handleEvent3(event: C3): T1 { return undefined! } // Ok, Error +>handleEvent3 : Symbol(HelloWorld.handleEvent3, Decl(index.ts, 20, 10)) +>event : Symbol(event, Decl(index.ts, 23, 15)) +>C3 : Symbol(C3, Decl(index.ts, 3, 8)) +>T1 : Symbol(T1, Decl(index.ts, 0, 8)) +>undefined : Symbol(undefined) +} + diff --git a/tests/baselines/reference/emitDecoratorMetadata_isolatedModules(module=commonjs).types b/tests/baselines/reference/emitDecoratorMetadata_isolatedModules(module=commonjs).types new file mode 100644 index 0000000000000..b2615eac81b73 --- /dev/null +++ b/tests/baselines/reference/emitDecoratorMetadata_isolatedModules(module=commonjs).types @@ -0,0 +1,86 @@ +=== tests/cases/compiler/type1.ts === +interface T1 {} +export type { T1 } +>T1 : T1 + +=== tests/cases/compiler/type2.ts === +export interface T2 {} +No type information for this code. +No type information for this code.=== tests/cases/compiler/class3.ts === +export class C3 {} +>C3 : C3 + +=== tests/cases/compiler/index.ts === +import { T1 } from "./type1"; +>T1 : any + +import * as t1 from "./type1"; +>t1 : typeof t1 + +import type { T2 } from "./type2"; +>T2 : T2 + +import { C3 } from "./class3"; +>C3 : typeof C3 + +declare var EventListener: any; +>EventListener : any + +class HelloWorld { +>HelloWorld : HelloWorld + + @EventListener('1') +>EventListener('1') : any +>EventListener : any +>'1' : "1" + + handleEvent1(event: T1) {} // Error +>handleEvent1 : (event: T1) => void +>event : T1 + + @EventListener('2') +>EventListener('2') : any +>EventListener : any +>'2' : "2" + + handleEvent2(event: T2) {} // Ok +>handleEvent2 : (event: T2) => void +>event : T2 + + @EventListener('1') +>EventListener('1') : any +>EventListener : any +>'1' : "1" + + p1!: T1; // Error +>p1 : T1 + + @EventListener('1') +>EventListener('1') : any +>EventListener : any +>'1' : "1" + + p1_ns!: t1.T1; // Ok +>p1_ns : T1 +>t1 : any + + @EventListener('2') +>EventListener('2') : any +>EventListener : any +>'2' : "2" + + p2!: T2; // Ok +>p2 : T2 + + @EventListener('3') +>EventListener('3') : any +>EventListener : any +>'3' : "3" + + handleEvent3(event: C3): T1 { return undefined! } // Ok, Error +>handleEvent3 : (event: C3) => T1 +>event : C3 +>undefined! : undefined +>undefined : undefined +} + diff --git a/tests/baselines/reference/emitDecoratorMetadata_isolatedModules(module=esnext).errors.txt b/tests/baselines/reference/emitDecoratorMetadata_isolatedModules(module=esnext).errors.txt new file mode 100644 index 0000000000000..5e7f959a50696 --- /dev/null +++ b/tests/baselines/reference/emitDecoratorMetadata_isolatedModules(module=esnext).errors.txt @@ -0,0 +1,51 @@ +tests/cases/compiler/index.ts(9,23): error TS1272: A type referenced in a decorated signature must be imported with 'import type' or a namespace import when 'isolatedModules' and 'emitDecoratorMetadata' are enabled. +tests/cases/compiler/index.ts(15,8): error TS1272: A type referenced in a decorated signature must be imported with 'import type' or a namespace import when 'isolatedModules' and 'emitDecoratorMetadata' are enabled. +tests/cases/compiler/index.ts(24,28): error TS1272: A type referenced in a decorated signature must be imported with 'import type' or a namespace import when 'isolatedModules' and 'emitDecoratorMetadata' are enabled. + + +==== tests/cases/compiler/type1.ts (0 errors) ==== + interface T1 {} + export type { T1 } + +==== tests/cases/compiler/type2.ts (0 errors) ==== + export interface T2 {} + +==== tests/cases/compiler/class3.ts (0 errors) ==== + export class C3 {} + +==== tests/cases/compiler/index.ts (3 errors) ==== + import { T1 } from "./type1"; + import * as t1 from "./type1"; + import type { T2 } from "./type2"; + import { C3 } from "./class3"; + declare var EventListener: any; + + class HelloWorld { + @EventListener('1') + handleEvent1(event: T1) {} // Error + ~~ +!!! error TS1272: A type referenced in a decorated signature must be imported with 'import type' or a namespace import when 'isolatedModules' and 'emitDecoratorMetadata' are enabled. +!!! related TS1376 tests/cases/compiler/index.ts:1:10: 'T1' was imported here. + + @EventListener('2') + handleEvent2(event: T2) {} // Ok + + @EventListener('1') + p1!: T1; // Error + ~~ +!!! error TS1272: A type referenced in a decorated signature must be imported with 'import type' or a namespace import when 'isolatedModules' and 'emitDecoratorMetadata' are enabled. +!!! related TS1376 tests/cases/compiler/index.ts:1:10: 'T1' was imported here. + + @EventListener('1') + p1_ns!: t1.T1; // Ok + + @EventListener('2') + p2!: T2; // Ok + + @EventListener('3') + handleEvent3(event: C3): T1 { return undefined! } // Ok, Error + ~~ +!!! error TS1272: A type referenced in a decorated signature must be imported with 'import type' or a namespace import when 'isolatedModules' and 'emitDecoratorMetadata' are enabled. +!!! related TS1376 tests/cases/compiler/index.ts:1:10: 'T1' was imported here. + } + \ No newline at end of file diff --git a/tests/baselines/reference/emitDecoratorMetadata_isolatedModules(module=esnext).js b/tests/baselines/reference/emitDecoratorMetadata_isolatedModules(module=esnext).js new file mode 100644 index 0000000000000..121f3be7031c6 --- /dev/null +++ b/tests/baselines/reference/emitDecoratorMetadata_isolatedModules(module=esnext).js @@ -0,0 +1,101 @@ +//// [tests/cases/compiler/emitDecoratorMetadata_isolatedModules.ts] //// + +//// [type1.ts] +interface T1 {} +export type { T1 } + +//// [type2.ts] +export interface T2 {} + +//// [class3.ts] +export class C3 {} + +//// [index.ts] +import { T1 } from "./type1"; +import * as t1 from "./type1"; +import type { T2 } from "./type2"; +import { C3 } from "./class3"; +declare var EventListener: any; + +class HelloWorld { + @EventListener('1') + handleEvent1(event: T1) {} // Error + + @EventListener('2') + handleEvent2(event: T2) {} // Ok + + @EventListener('1') + p1!: T1; // Error + + @EventListener('1') + p1_ns!: t1.T1; // Ok + + @EventListener('2') + p2!: T2; // Ok + + @EventListener('3') + handleEvent3(event: C3): T1 { return undefined! } // Ok, Error +} + + +//// [type1.js] +export {}; +//// [type2.js] +export {}; +//// [class3.js] +var C3 = /** @class */ (function () { + function C3() { + } + return C3; +}()); +export { C3 }; +//// [index.js] +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +import * as t1 from "./type1"; +import { C3 } from "./class3"; +var HelloWorld = /** @class */ (function () { + function HelloWorld() { + } + HelloWorld.prototype.handleEvent1 = function (event) { }; // Error + HelloWorld.prototype.handleEvent2 = function (event) { }; // Ok + HelloWorld.prototype.handleEvent3 = function (event) { return undefined; }; // Ok, Error + __decorate([ + EventListener('1'), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object]), + __metadata("design:returntype", void 0) + ], HelloWorld.prototype, "handleEvent1"); + __decorate([ + EventListener('2'), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object]), + __metadata("design:returntype", void 0) + ], HelloWorld.prototype, "handleEvent2"); + __decorate([ + EventListener('1'), + __metadata("design:type", Object) + ], HelloWorld.prototype, "p1"); + __decorate([ + EventListener('1'), + __metadata("design:type", Object) + ], HelloWorld.prototype, "p1_ns"); + __decorate([ + EventListener('2'), + __metadata("design:type", Object) + ], HelloWorld.prototype, "p2"); + __decorate([ + EventListener('3'), + __metadata("design:type", Function), + __metadata("design:paramtypes", [C3]), + __metadata("design:returntype", Object) + ], HelloWorld.prototype, "handleEvent3"); + return HelloWorld; +}()); diff --git a/tests/baselines/reference/emitDecoratorMetadata_isolatedModules(module=esnext).symbols b/tests/baselines/reference/emitDecoratorMetadata_isolatedModules(module=esnext).symbols new file mode 100644 index 0000000000000..075bdc3ee7822 --- /dev/null +++ b/tests/baselines/reference/emitDecoratorMetadata_isolatedModules(module=esnext).symbols @@ -0,0 +1,83 @@ +=== tests/cases/compiler/type1.ts === +interface T1 {} +>T1 : Symbol(T1, Decl(type1.ts, 0, 0)) + +export type { T1 } +>T1 : Symbol(T1, Decl(type1.ts, 1, 13)) + +=== tests/cases/compiler/type2.ts === +export interface T2 {} +>T2 : Symbol(T2, Decl(type2.ts, 0, 0)) + +=== tests/cases/compiler/class3.ts === +export class C3 {} +>C3 : Symbol(C3, Decl(class3.ts, 0, 0)) + +=== tests/cases/compiler/index.ts === +import { T1 } from "./type1"; +>T1 : Symbol(T1, Decl(index.ts, 0, 8)) + +import * as t1 from "./type1"; +>t1 : Symbol(t1, Decl(index.ts, 1, 6)) + +import type { T2 } from "./type2"; +>T2 : Symbol(T2, Decl(index.ts, 2, 13)) + +import { C3 } from "./class3"; +>C3 : Symbol(C3, Decl(index.ts, 3, 8)) + +declare var EventListener: any; +>EventListener : Symbol(EventListener, Decl(index.ts, 4, 11)) + +class HelloWorld { +>HelloWorld : Symbol(HelloWorld, Decl(index.ts, 4, 31)) + + @EventListener('1') +>EventListener : Symbol(EventListener, Decl(index.ts, 4, 11)) + + handleEvent1(event: T1) {} // Error +>handleEvent1 : Symbol(HelloWorld.handleEvent1, Decl(index.ts, 6, 18)) +>event : Symbol(event, Decl(index.ts, 8, 15)) +>T1 : Symbol(T1, Decl(index.ts, 0, 8)) + + @EventListener('2') +>EventListener : Symbol(EventListener, Decl(index.ts, 4, 11)) + + handleEvent2(event: T2) {} // Ok +>handleEvent2 : Symbol(HelloWorld.handleEvent2, Decl(index.ts, 8, 28)) +>event : Symbol(event, Decl(index.ts, 11, 15)) +>T2 : Symbol(T2, Decl(index.ts, 2, 13)) + + @EventListener('1') +>EventListener : Symbol(EventListener, Decl(index.ts, 4, 11)) + + p1!: T1; // Error +>p1 : Symbol(HelloWorld.p1, Decl(index.ts, 11, 28)) +>T1 : Symbol(T1, Decl(index.ts, 0, 8)) + + @EventListener('1') +>EventListener : Symbol(EventListener, Decl(index.ts, 4, 11)) + + p1_ns!: t1.T1; // Ok +>p1_ns : Symbol(HelloWorld.p1_ns, Decl(index.ts, 14, 10)) +>t1 : Symbol(t1, Decl(index.ts, 1, 6)) +>T1 : Symbol(t1.T1, Decl(type1.ts, 1, 13)) + + @EventListener('2') +>EventListener : Symbol(EventListener, Decl(index.ts, 4, 11)) + + p2!: T2; // Ok +>p2 : Symbol(HelloWorld.p2, Decl(index.ts, 17, 16)) +>T2 : Symbol(T2, Decl(index.ts, 2, 13)) + + @EventListener('3') +>EventListener : Symbol(EventListener, Decl(index.ts, 4, 11)) + + handleEvent3(event: C3): T1 { return undefined! } // Ok, Error +>handleEvent3 : Symbol(HelloWorld.handleEvent3, Decl(index.ts, 20, 10)) +>event : Symbol(event, Decl(index.ts, 23, 15)) +>C3 : Symbol(C3, Decl(index.ts, 3, 8)) +>T1 : Symbol(T1, Decl(index.ts, 0, 8)) +>undefined : Symbol(undefined) +} + diff --git a/tests/baselines/reference/emitDecoratorMetadata_isolatedModules(module=esnext).types b/tests/baselines/reference/emitDecoratorMetadata_isolatedModules(module=esnext).types new file mode 100644 index 0000000000000..b2615eac81b73 --- /dev/null +++ b/tests/baselines/reference/emitDecoratorMetadata_isolatedModules(module=esnext).types @@ -0,0 +1,86 @@ +=== tests/cases/compiler/type1.ts === +interface T1 {} +export type { T1 } +>T1 : T1 + +=== tests/cases/compiler/type2.ts === +export interface T2 {} +No type information for this code. +No type information for this code.=== tests/cases/compiler/class3.ts === +export class C3 {} +>C3 : C3 + +=== tests/cases/compiler/index.ts === +import { T1 } from "./type1"; +>T1 : any + +import * as t1 from "./type1"; +>t1 : typeof t1 + +import type { T2 } from "./type2"; +>T2 : T2 + +import { C3 } from "./class3"; +>C3 : typeof C3 + +declare var EventListener: any; +>EventListener : any + +class HelloWorld { +>HelloWorld : HelloWorld + + @EventListener('1') +>EventListener('1') : any +>EventListener : any +>'1' : "1" + + handleEvent1(event: T1) {} // Error +>handleEvent1 : (event: T1) => void +>event : T1 + + @EventListener('2') +>EventListener('2') : any +>EventListener : any +>'2' : "2" + + handleEvent2(event: T2) {} // Ok +>handleEvent2 : (event: T2) => void +>event : T2 + + @EventListener('1') +>EventListener('1') : any +>EventListener : any +>'1' : "1" + + p1!: T1; // Error +>p1 : T1 + + @EventListener('1') +>EventListener('1') : any +>EventListener : any +>'1' : "1" + + p1_ns!: t1.T1; // Ok +>p1_ns : T1 +>t1 : any + + @EventListener('2') +>EventListener('2') : any +>EventListener : any +>'2' : "2" + + p2!: T2; // Ok +>p2 : T2 + + @EventListener('3') +>EventListener('3') : any +>EventListener : any +>'3' : "3" + + handleEvent3(event: C3): T1 { return undefined! } // Ok, Error +>handleEvent3 : (event: C3) => T1 +>event : C3 +>undefined! : undefined +>undefined : undefined +} + diff --git a/tests/baselines/reference/emitDecoratorMetadata_isolatedModules.errors.txt b/tests/baselines/reference/emitDecoratorMetadata_isolatedModules.errors.txt new file mode 100644 index 0000000000000..cabda9caa7e94 --- /dev/null +++ b/tests/baselines/reference/emitDecoratorMetadata_isolatedModules.errors.txt @@ -0,0 +1,47 @@ +tests/cases/compiler/index.ts(8,23): error TS1267: A type referenced in a decorated signature must be imported with 'import type' when 'isolatedModules' and 'emitDecoratorMetadata' are enabled. +tests/cases/compiler/index.ts(14,8): error TS1267: A type referenced in a decorated signature must be imported with 'import type' when 'isolatedModules' and 'emitDecoratorMetadata' are enabled. +tests/cases/compiler/index.ts(20,28): error TS1267: A type referenced in a decorated signature must be imported with 'import type' when 'isolatedModules' and 'emitDecoratorMetadata' are enabled. + + +==== tests/cases/compiler/type1.ts (0 errors) ==== + interface T1 {} + export type { T1 } + +==== tests/cases/compiler/type2.ts (0 errors) ==== + export interface T2 {} + +==== tests/cases/compiler/class3.ts (0 errors) ==== + export class C3 {} + +==== tests/cases/compiler/index.ts (3 errors) ==== + import { T1 } from "./type1"; + import type { T2 } from "./type2"; + import { C3 } from "./class3"; + declare var EventListener: any; + + class HelloWorld { + @EventListener('1') + handleEvent1(event: T1) {} // Error + ~~ +!!! error TS1267: A type referenced in a decorated signature must be imported with 'import type' when 'isolatedModules' and 'emitDecoratorMetadata' are enabled. +!!! related TS1376 tests/cases/compiler/index.ts:1:10: 'T1' was imported here. + + @EventListener('2') + handleEvent2(event: T2) {} // Ok + + @EventListener('1') + p1!: T1; // Error + ~~ +!!! error TS1267: A type referenced in a decorated signature must be imported with 'import type' when 'isolatedModules' and 'emitDecoratorMetadata' are enabled. +!!! related TS1376 tests/cases/compiler/index.ts:1:10: 'T1' was imported here. + + @EventListener('2') + p2!: T2; // Ok + + @EventListener('3') + handleEvent3(event: C3): T1 { return undefined! } // Ok, Error + ~~ +!!! error TS1267: A type referenced in a decorated signature must be imported with 'import type' when 'isolatedModules' and 'emitDecoratorMetadata' are enabled. +!!! related TS1376 tests/cases/compiler/index.ts:1:10: 'T1' was imported here. + } + \ No newline at end of file diff --git a/tests/baselines/reference/emitDecoratorMetadata_isolatedModules.js b/tests/baselines/reference/emitDecoratorMetadata_isolatedModules.js new file mode 100644 index 0000000000000..bb5e71383f494 --- /dev/null +++ b/tests/baselines/reference/emitDecoratorMetadata_isolatedModules.js @@ -0,0 +1,99 @@ +//// [tests/cases/compiler/emitDecoratorMetadata_isolatedModules.ts] //// + +//// [type1.ts] +interface T1 {} +export type { T1 } + +//// [type2.ts] +export interface T2 {} + +//// [class3.ts] +export class C3 {} + +//// [index.ts] +import { T1 } from "./type1"; +import type { T2 } from "./type2"; +import { C3 } from "./class3"; +declare var EventListener: any; + +class HelloWorld { + @EventListener('1') + handleEvent1(event: T1) {} // Error + + @EventListener('2') + handleEvent2(event: T2) {} // Ok + + @EventListener('1') + p1!: T1; // Error + + @EventListener('2') + p2!: T2; // Ok + + @EventListener('3') + handleEvent3(event: C3): T1 { return undefined! } // Ok, Error +} + + +//// [type1.js] +"use strict"; +exports.__esModule = true; +//// [type2.js] +"use strict"; +exports.__esModule = true; +//// [class3.js] +"use strict"; +exports.__esModule = true; +exports.C3 = void 0; +var C3 = /** @class */ (function () { + function C3() { + } + return C3; +}()); +exports.C3 = C3; +//// [index.js] +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __metadata = (this && this.__metadata) || function (k, v) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); +}; +exports.__esModule = true; +var class3_1 = require("./class3"); +var HelloWorld = /** @class */ (function () { + function HelloWorld() { + } + HelloWorld.prototype.handleEvent1 = function (event) { }; // Error + HelloWorld.prototype.handleEvent2 = function (event) { }; // Ok + HelloWorld.prototype.handleEvent3 = function (event) { return undefined; }; // Ok, Error + __decorate([ + EventListener('1'), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object]), + __metadata("design:returntype", void 0) + ], HelloWorld.prototype, "handleEvent1"); + __decorate([ + EventListener('2'), + __metadata("design:type", Function), + __metadata("design:paramtypes", [Object]), + __metadata("design:returntype", void 0) + ], HelloWorld.prototype, "handleEvent2"); + __decorate([ + EventListener('1'), + __metadata("design:type", Object) + ], HelloWorld.prototype, "p1"); + __decorate([ + EventListener('2'), + __metadata("design:type", Object) + ], HelloWorld.prototype, "p2"); + __decorate([ + EventListener('3'), + __metadata("design:type", Function), + __metadata("design:paramtypes", [class3_1.C3]), + __metadata("design:returntype", Object) + ], HelloWorld.prototype, "handleEvent3"); + return HelloWorld; +}()); diff --git a/tests/baselines/reference/emitDecoratorMetadata_isolatedModules.symbols b/tests/baselines/reference/emitDecoratorMetadata_isolatedModules.symbols new file mode 100644 index 0000000000000..c957b1781e3ea --- /dev/null +++ b/tests/baselines/reference/emitDecoratorMetadata_isolatedModules.symbols @@ -0,0 +1,72 @@ +=== tests/cases/compiler/type1.ts === +interface T1 {} +>T1 : Symbol(T1, Decl(type1.ts, 0, 0)) + +export type { T1 } +>T1 : Symbol(T1, Decl(type1.ts, 1, 13)) + +=== tests/cases/compiler/type2.ts === +export interface T2 {} +>T2 : Symbol(T2, Decl(type2.ts, 0, 0)) + +=== tests/cases/compiler/class3.ts === +export class C3 {} +>C3 : Symbol(C3, Decl(class3.ts, 0, 0)) + +=== tests/cases/compiler/index.ts === +import { T1 } from "./type1"; +>T1 : Symbol(T1, Decl(index.ts, 0, 8)) + +import type { T2 } from "./type2"; +>T2 : Symbol(T2, Decl(index.ts, 1, 13)) + +import { C3 } from "./class3"; +>C3 : Symbol(C3, Decl(index.ts, 2, 8)) + +declare var EventListener: any; +>EventListener : Symbol(EventListener, Decl(index.ts, 3, 11)) + +class HelloWorld { +>HelloWorld : Symbol(HelloWorld, Decl(index.ts, 3, 31)) + + @EventListener('1') +>EventListener : Symbol(EventListener, Decl(index.ts, 3, 11)) + + handleEvent1(event: T1) {} // Error +>handleEvent1 : Symbol(HelloWorld.handleEvent1, Decl(index.ts, 5, 18)) +>event : Symbol(event, Decl(index.ts, 7, 15)) +>T1 : Symbol(T1, Decl(index.ts, 0, 8)) + + @EventListener('2') +>EventListener : Symbol(EventListener, Decl(index.ts, 3, 11)) + + handleEvent2(event: T2) {} // Ok +>handleEvent2 : Symbol(HelloWorld.handleEvent2, Decl(index.ts, 7, 28)) +>event : Symbol(event, Decl(index.ts, 10, 15)) +>T2 : Symbol(T2, Decl(index.ts, 1, 13)) + + @EventListener('1') +>EventListener : Symbol(EventListener, Decl(index.ts, 3, 11)) + + p1!: T1; // Error +>p1 : Symbol(HelloWorld.p1, Decl(index.ts, 10, 28)) +>T1 : Symbol(T1, Decl(index.ts, 0, 8)) + + @EventListener('2') +>EventListener : Symbol(EventListener, Decl(index.ts, 3, 11)) + + p2!: T2; // Ok +>p2 : Symbol(HelloWorld.p2, Decl(index.ts, 13, 10)) +>T2 : Symbol(T2, Decl(index.ts, 1, 13)) + + @EventListener('3') +>EventListener : Symbol(EventListener, Decl(index.ts, 3, 11)) + + handleEvent3(event: C3): T1 { return undefined! } // Ok, Error +>handleEvent3 : Symbol(HelloWorld.handleEvent3, Decl(index.ts, 16, 10)) +>event : Symbol(event, Decl(index.ts, 19, 15)) +>C3 : Symbol(C3, Decl(index.ts, 2, 8)) +>T1 : Symbol(T1, Decl(index.ts, 0, 8)) +>undefined : Symbol(undefined) +} + diff --git a/tests/baselines/reference/emitDecoratorMetadata_isolatedModules.types b/tests/baselines/reference/emitDecoratorMetadata_isolatedModules.types new file mode 100644 index 0000000000000..0048771bb4eac --- /dev/null +++ b/tests/baselines/reference/emitDecoratorMetadata_isolatedModules.types @@ -0,0 +1,74 @@ +=== tests/cases/compiler/type1.ts === +interface T1 {} +export type { T1 } +>T1 : T1 + +=== tests/cases/compiler/type2.ts === +export interface T2 {} +No type information for this code. +No type information for this code.=== tests/cases/compiler/class3.ts === +export class C3 {} +>C3 : C3 + +=== tests/cases/compiler/index.ts === +import { T1 } from "./type1"; +>T1 : any + +import type { T2 } from "./type2"; +>T2 : T2 + +import { C3 } from "./class3"; +>C3 : typeof C3 + +declare var EventListener: any; +>EventListener : any + +class HelloWorld { +>HelloWorld : HelloWorld + + @EventListener('1') +>EventListener('1') : any +>EventListener : any +>'1' : "1" + + handleEvent1(event: T1) {} // Error +>handleEvent1 : (event: T1) => void +>event : T1 + + @EventListener('2') +>EventListener('2') : any +>EventListener : any +>'2' : "2" + + handleEvent2(event: T2) {} // Ok +>handleEvent2 : (event: T2) => void +>event : T2 + + @EventListener('1') +>EventListener('1') : any +>EventListener : any +>'1' : "1" + + p1!: T1; // Error +>p1 : T1 + + @EventListener('2') +>EventListener('2') : any +>EventListener : any +>'2' : "2" + + p2!: T2; // Ok +>p2 : T2 + + @EventListener('3') +>EventListener('3') : any +>EventListener : any +>'3' : "3" + + handleEvent3(event: C3): T1 { return undefined! } // Ok, Error +>handleEvent3 : (event: C3) => T1 +>event : C3 +>undefined! : undefined +>undefined : undefined +} + diff --git a/tests/baselines/reference/emitOneLineVariableDeclarationRemoveCommentsFalse.js b/tests/baselines/reference/emitOneLineVariableDeclarationRemoveCommentsFalse.js new file mode 100644 index 0000000000000..679b0c7fa58f8 --- /dev/null +++ b/tests/baselines/reference/emitOneLineVariableDeclarationRemoveCommentsFalse.js @@ -0,0 +1,18 @@ +//// [emitOneLineVariableDeclarationRemoveCommentsFalse.ts] +let a = /*[[${something}]]*/ {}; +let b: any = /*[[${something}]]*/ {}; +let c: { hoge: boolean } = /*[[${something}]]*/ { hoge: true }; +let d: any /*[[${something}]]*/ = {}; +let e/*[[${something}]]*/: any = {}; +let f = /* comment1 */ d(e); +let g: any = /* comment2 */ d(e); + + +//// [emitOneLineVariableDeclarationRemoveCommentsFalse.js] +var a = /*[[${something}]]*/ {}; +var b = /*[[${something}]]*/ {}; +var c = /*[[${something}]]*/ { hoge: true }; +var d /*[[${something}]]*/ = {}; +var e /*[[${something}]]*/ = {}; +var f = /* comment1 */ d(e); +var g = /* comment2 */ d(e); diff --git a/tests/baselines/reference/emitOneLineVariableDeclarationRemoveCommentsFalse.symbols b/tests/baselines/reference/emitOneLineVariableDeclarationRemoveCommentsFalse.symbols new file mode 100644 index 0000000000000..06295c69a8bea --- /dev/null +++ b/tests/baselines/reference/emitOneLineVariableDeclarationRemoveCommentsFalse.symbols @@ -0,0 +1,28 @@ +=== tests/cases/compiler/emitOneLineVariableDeclarationRemoveCommentsFalse.ts === +let a = /*[[${something}]]*/ {}; +>a : Symbol(a, Decl(emitOneLineVariableDeclarationRemoveCommentsFalse.ts, 0, 3)) + +let b: any = /*[[${something}]]*/ {}; +>b : Symbol(b, Decl(emitOneLineVariableDeclarationRemoveCommentsFalse.ts, 1, 3)) + +let c: { hoge: boolean } = /*[[${something}]]*/ { hoge: true }; +>c : Symbol(c, Decl(emitOneLineVariableDeclarationRemoveCommentsFalse.ts, 2, 3)) +>hoge : Symbol(hoge, Decl(emitOneLineVariableDeclarationRemoveCommentsFalse.ts, 2, 8)) +>hoge : Symbol(hoge, Decl(emitOneLineVariableDeclarationRemoveCommentsFalse.ts, 2, 49)) + +let d: any /*[[${something}]]*/ = {}; +>d : Symbol(d, Decl(emitOneLineVariableDeclarationRemoveCommentsFalse.ts, 3, 3)) + +let e/*[[${something}]]*/: any = {}; +>e : Symbol(e, Decl(emitOneLineVariableDeclarationRemoveCommentsFalse.ts, 4, 3)) + +let f = /* comment1 */ d(e); +>f : Symbol(f, Decl(emitOneLineVariableDeclarationRemoveCommentsFalse.ts, 5, 3)) +>d : Symbol(d, Decl(emitOneLineVariableDeclarationRemoveCommentsFalse.ts, 3, 3)) +>e : Symbol(e, Decl(emitOneLineVariableDeclarationRemoveCommentsFalse.ts, 4, 3)) + +let g: any = /* comment2 */ d(e); +>g : Symbol(g, Decl(emitOneLineVariableDeclarationRemoveCommentsFalse.ts, 6, 3)) +>d : Symbol(d, Decl(emitOneLineVariableDeclarationRemoveCommentsFalse.ts, 3, 3)) +>e : Symbol(e, Decl(emitOneLineVariableDeclarationRemoveCommentsFalse.ts, 4, 3)) + diff --git a/tests/baselines/reference/emitOneLineVariableDeclarationRemoveCommentsFalse.types b/tests/baselines/reference/emitOneLineVariableDeclarationRemoveCommentsFalse.types new file mode 100644 index 0000000000000..c266ee56c1279 --- /dev/null +++ b/tests/baselines/reference/emitOneLineVariableDeclarationRemoveCommentsFalse.types @@ -0,0 +1,36 @@ +=== tests/cases/compiler/emitOneLineVariableDeclarationRemoveCommentsFalse.ts === +let a = /*[[${something}]]*/ {}; +>a : {} +>{} : {} + +let b: any = /*[[${something}]]*/ {}; +>b : any +>{} : {} + +let c: { hoge: boolean } = /*[[${something}]]*/ { hoge: true }; +>c : { hoge: boolean; } +>hoge : boolean +>{ hoge: true } : { hoge: true; } +>hoge : true +>true : true + +let d: any /*[[${something}]]*/ = {}; +>d : any +>{} : {} + +let e/*[[${something}]]*/: any = {}; +>e : any +>{} : {} + +let f = /* comment1 */ d(e); +>f : any +>d(e) : any +>d : any +>e : any + +let g: any = /* comment2 */ d(e); +>g : any +>d(e) : any +>d : any +>e : any + diff --git a/tests/baselines/reference/enumBasics2.errors.txt b/tests/baselines/reference/enumBasics2.errors.txt new file mode 100644 index 0000000000000..d7a1a7fff3186 --- /dev/null +++ b/tests/baselines/reference/enumBasics2.errors.txt @@ -0,0 +1,33 @@ +tests/cases/compiler/enumBasics2.ts(4,9): error TS2339: Property 'b' does not exist on type 'Foo'. +tests/cases/compiler/enumBasics2.ts(5,9): error TS2339: Property 'a' does not exist on type 'Foo'. +tests/cases/compiler/enumBasics2.ts(6,9): error TS2339: Property 'x' does not exist on type 'Foo'. +tests/cases/compiler/enumBasics2.ts(6,15): error TS2339: Property 'x' does not exist on type 'Foo'. +tests/cases/compiler/enumBasics2.ts(13,13): error TS2339: Property 'a' does not exist on type 'Foo'. + + +==== tests/cases/compiler/enumBasics2.ts (5 errors) ==== + enum Foo { + a = 2, + b = 3, + x = a.b, // should error + ~ +!!! error TS2339: Property 'b' does not exist on type 'Foo'. + y = b.a, // should error + ~ +!!! error TS2339: Property 'a' does not exist on type 'Foo'. + z = y.x * a.x, // should error + ~ +!!! error TS2339: Property 'x' does not exist on type 'Foo'. + ~ +!!! error TS2339: Property 'x' does not exist on type 'Foo'. + } + + enum Bar { + a = (1).valueOf(), // ok + b = Foo.a, // ok + c = Foo.a.valueOf(), // ok + d = Foo.a.a, // should error + ~ +!!! error TS2339: Property 'a' does not exist on type 'Foo'. + } + \ No newline at end of file diff --git a/tests/baselines/reference/enumBasics2.js b/tests/baselines/reference/enumBasics2.js new file mode 100644 index 0000000000000..395ba229148c6 --- /dev/null +++ b/tests/baselines/reference/enumBasics2.js @@ -0,0 +1,33 @@ +//// [enumBasics2.ts] +enum Foo { + a = 2, + b = 3, + x = a.b, // should error + y = b.a, // should error + z = y.x * a.x, // should error +} + +enum Bar { + a = (1).valueOf(), // ok + b = Foo.a, // ok + c = Foo.a.valueOf(), // ok + d = Foo.a.a, // should error +} + + +//// [enumBasics2.js] +var Foo; +(function (Foo) { + Foo[Foo["a"] = 2] = "a"; + Foo[Foo["b"] = 3] = "b"; + Foo[Foo["x"] = Foo.a.b] = "x"; + Foo[Foo["y"] = Foo.b.a] = "y"; + Foo[Foo["z"] = Foo.y.x * Foo.a.x] = "z"; +})(Foo || (Foo = {})); +var Bar; +(function (Bar) { + Bar[Bar["a"] = (1).valueOf()] = "a"; + Bar[Bar["b"] = 2] = "b"; + Bar[Bar["c"] = Foo.a.valueOf()] = "c"; + Bar[Bar["d"] = Foo.a.a] = "d"; +})(Bar || (Bar = {})); diff --git a/tests/baselines/reference/enumBasics2.symbols b/tests/baselines/reference/enumBasics2.symbols new file mode 100644 index 0000000000000..4b59aa2a9f8fc --- /dev/null +++ b/tests/baselines/reference/enumBasics2.symbols @@ -0,0 +1,53 @@ +=== tests/cases/compiler/enumBasics2.ts === +enum Foo { +>Foo : Symbol(Foo, Decl(enumBasics2.ts, 0, 0)) + + a = 2, +>a : Symbol(Foo.a, Decl(enumBasics2.ts, 0, 10)) + + b = 3, +>b : Symbol(Foo.b, Decl(enumBasics2.ts, 1, 8)) + + x = a.b, // should error +>x : Symbol(Foo.x, Decl(enumBasics2.ts, 2, 8)) +>a : Symbol(Foo.a, Decl(enumBasics2.ts, 0, 10)) + + y = b.a, // should error +>y : Symbol(Foo.y, Decl(enumBasics2.ts, 3, 10)) +>b : Symbol(Foo.b, Decl(enumBasics2.ts, 1, 8)) + + z = y.x * a.x, // should error +>z : Symbol(Foo.z, Decl(enumBasics2.ts, 4, 10)) +>y : Symbol(Foo.y, Decl(enumBasics2.ts, 3, 10)) +>a : Symbol(Foo.a, Decl(enumBasics2.ts, 0, 10)) +} + +enum Bar { +>Bar : Symbol(Bar, Decl(enumBasics2.ts, 6, 1)) + + a = (1).valueOf(), // ok +>a : Symbol(Bar.a, Decl(enumBasics2.ts, 8, 10)) +>(1).valueOf : Symbol(Number.valueOf, Decl(lib.es5.d.ts, --, --)) +>valueOf : Symbol(Number.valueOf, Decl(lib.es5.d.ts, --, --)) + + b = Foo.a, // ok +>b : Symbol(Bar.b, Decl(enumBasics2.ts, 9, 20)) +>Foo.a : Symbol(Foo.a, Decl(enumBasics2.ts, 0, 10)) +>Foo : Symbol(Foo, Decl(enumBasics2.ts, 0, 0)) +>a : Symbol(Foo.a, Decl(enumBasics2.ts, 0, 10)) + + c = Foo.a.valueOf(), // ok +>c : Symbol(Bar.c, Decl(enumBasics2.ts, 10, 12)) +>Foo.a.valueOf : Symbol(Number.valueOf, Decl(lib.es5.d.ts, --, --)) +>Foo.a : Symbol(Foo.a, Decl(enumBasics2.ts, 0, 10)) +>Foo : Symbol(Foo, Decl(enumBasics2.ts, 0, 0)) +>a : Symbol(Foo.a, Decl(enumBasics2.ts, 0, 10)) +>valueOf : Symbol(Number.valueOf, Decl(lib.es5.d.ts, --, --)) + + d = Foo.a.a, // should error +>d : Symbol(Bar.d, Decl(enumBasics2.ts, 11, 22)) +>Foo.a : Symbol(Foo.a, Decl(enumBasics2.ts, 0, 10)) +>Foo : Symbol(Foo, Decl(enumBasics2.ts, 0, 0)) +>a : Symbol(Foo.a, Decl(enumBasics2.ts, 0, 10)) +} + diff --git a/tests/baselines/reference/enumBasics2.types b/tests/baselines/reference/enumBasics2.types new file mode 100644 index 0000000000000..f075cd2e5a67a --- /dev/null +++ b/tests/baselines/reference/enumBasics2.types @@ -0,0 +1,70 @@ +=== tests/cases/compiler/enumBasics2.ts === +enum Foo { +>Foo : Foo + + a = 2, +>a : Foo +>2 : 2 + + b = 3, +>b : Foo +>3 : 3 + + x = a.b, // should error +>x : Foo +>a.b : any +>a : Foo +>b : any + + y = b.a, // should error +>y : Foo +>b.a : any +>b : Foo +>a : any + + z = y.x * a.x, // should error +>z : Foo +>y.x * a.x : number +>y.x : any +>y : Foo +>x : any +>a.x : any +>a : Foo +>x : any +} + +enum Bar { +>Bar : Bar + + a = (1).valueOf(), // ok +>a : Bar +>(1).valueOf() : number +>(1).valueOf : () => number +>(1) : 1 +>1 : 1 +>valueOf : () => number + + b = Foo.a, // ok +>b : Bar +>Foo.a : Foo +>Foo : typeof Foo +>a : Foo + + c = Foo.a.valueOf(), // ok +>c : Bar +>Foo.a.valueOf() : number +>Foo.a.valueOf : () => number +>Foo.a : Foo +>Foo : typeof Foo +>a : Foo +>valueOf : () => number + + d = Foo.a.a, // should error +>d : Bar +>Foo.a.a : any +>Foo.a : Foo +>Foo : typeof Foo +>a : Foo +>a : any +} + diff --git a/tests/baselines/reference/enumBasics3.errors.txt b/tests/baselines/reference/enumBasics3.errors.txt new file mode 100644 index 0000000000000..2a9888fb1c693 --- /dev/null +++ b/tests/baselines/reference/enumBasics3.errors.txt @@ -0,0 +1,27 @@ +tests/cases/compiler/enumBasics3.ts(5,13): error TS2339: Property 'a' does not exist on type 'E1'. +tests/cases/compiler/enumBasics3.ts(14,20): error TS2339: Property 'a' does not exist on type 'E1'. + + +==== tests/cases/compiler/enumBasics3.ts (2 errors) ==== + module M { + export namespace N { + export enum E1 { + a = 1, + b = a.a, // should error + ~ +!!! error TS2339: Property 'a' does not exist on type 'E1'. + } + } + } + + module M { + export namespace N { + export enum E2 { + b = M.N.E1.a, + c = M.N.E1.a.a, // should error + ~ +!!! error TS2339: Property 'a' does not exist on type 'E1'. + } + } + } + \ No newline at end of file diff --git a/tests/baselines/reference/enumBasics3.js b/tests/baselines/reference/enumBasics3.js new file mode 100644 index 0000000000000..d1ef94981b1f6 --- /dev/null +++ b/tests/baselines/reference/enumBasics3.js @@ -0,0 +1,42 @@ +//// [enumBasics3.ts] +module M { + export namespace N { + export enum E1 { + a = 1, + b = a.a, // should error + } + } +} + +module M { + export namespace N { + export enum E2 { + b = M.N.E1.a, + c = M.N.E1.a.a, // should error + } + } +} + + +//// [enumBasics3.js] +var M; +(function (M) { + var N; + (function (N) { + var E1; + (function (E1) { + E1[E1["a"] = 1] = "a"; + E1[E1["b"] = E1.a.a] = "b"; + })(E1 = N.E1 || (N.E1 = {})); + })(N = M.N || (M.N = {})); +})(M || (M = {})); +(function (M) { + var N; + (function (N) { + var E2; + (function (E2) { + E2[E2["b"] = 1] = "b"; + E2[E2["c"] = M.N.E1.a.a] = "c"; + })(E2 = N.E2 || (N.E2 = {})); + })(N = M.N || (M.N = {})); +})(M || (M = {})); diff --git a/tests/baselines/reference/enumBasics3.symbols b/tests/baselines/reference/enumBasics3.symbols new file mode 100644 index 0000000000000..dca0d19c3fac1 --- /dev/null +++ b/tests/baselines/reference/enumBasics3.symbols @@ -0,0 +1,52 @@ +=== tests/cases/compiler/enumBasics3.ts === +module M { +>M : Symbol(M, Decl(enumBasics3.ts, 0, 0), Decl(enumBasics3.ts, 7, 1)) + + export namespace N { +>N : Symbol(N, Decl(enumBasics3.ts, 0, 10), Decl(enumBasics3.ts, 9, 10)) + + export enum E1 { +>E1 : Symbol(E1, Decl(enumBasics3.ts, 1, 22)) + + a = 1, +>a : Symbol(E1.a, Decl(enumBasics3.ts, 2, 20)) + + b = a.a, // should error +>b : Symbol(E1.b, Decl(enumBasics3.ts, 3, 12)) +>a : Symbol(E1.a, Decl(enumBasics3.ts, 2, 20)) + } + } +} + +module M { +>M : Symbol(M, Decl(enumBasics3.ts, 0, 0), Decl(enumBasics3.ts, 7, 1)) + + export namespace N { +>N : Symbol(N, Decl(enumBasics3.ts, 0, 10), Decl(enumBasics3.ts, 9, 10)) + + export enum E2 { +>E2 : Symbol(E2, Decl(enumBasics3.ts, 10, 22)) + + b = M.N.E1.a, +>b : Symbol(E2.b, Decl(enumBasics3.ts, 11, 20)) +>M.N.E1.a : Symbol(E1.a, Decl(enumBasics3.ts, 2, 20)) +>M.N.E1 : Symbol(E1, Decl(enumBasics3.ts, 1, 22)) +>M.N : Symbol(N, Decl(enumBasics3.ts, 0, 10), Decl(enumBasics3.ts, 9, 10)) +>M : Symbol(M, Decl(enumBasics3.ts, 0, 0), Decl(enumBasics3.ts, 7, 1)) +>N : Symbol(N, Decl(enumBasics3.ts, 0, 10), Decl(enumBasics3.ts, 9, 10)) +>E1 : Symbol(E1, Decl(enumBasics3.ts, 1, 22)) +>a : Symbol(E1.a, Decl(enumBasics3.ts, 2, 20)) + + c = M.N.E1.a.a, // should error +>c : Symbol(E2.c, Decl(enumBasics3.ts, 12, 19)) +>M.N.E1.a : Symbol(E1.a, Decl(enumBasics3.ts, 2, 20)) +>M.N.E1 : Symbol(E1, Decl(enumBasics3.ts, 1, 22)) +>M.N : Symbol(N, Decl(enumBasics3.ts, 0, 10), Decl(enumBasics3.ts, 9, 10)) +>M : Symbol(M, Decl(enumBasics3.ts, 0, 0), Decl(enumBasics3.ts, 7, 1)) +>N : Symbol(N, Decl(enumBasics3.ts, 0, 10), Decl(enumBasics3.ts, 9, 10)) +>E1 : Symbol(E1, Decl(enumBasics3.ts, 1, 22)) +>a : Symbol(E1.a, Decl(enumBasics3.ts, 2, 20)) + } + } +} + diff --git a/tests/baselines/reference/enumBasics3.types b/tests/baselines/reference/enumBasics3.types new file mode 100644 index 0000000000000..f27ee3c92918b --- /dev/null +++ b/tests/baselines/reference/enumBasics3.types @@ -0,0 +1,57 @@ +=== tests/cases/compiler/enumBasics3.ts === +module M { +>M : typeof M + + export namespace N { +>N : typeof N + + export enum E1 { +>E1 : E1 + + a = 1, +>a : E1 +>1 : 1 + + b = a.a, // should error +>b : E1 +>a.a : any +>a : E1 +>a : any + } + } +} + +module M { +>M : typeof M + + export namespace N { +>N : typeof N + + export enum E2 { +>E2 : E2 + + b = M.N.E1.a, +>b : E2 +>M.N.E1.a : E1 +>M.N.E1 : typeof E1 +>M.N : typeof N +>M : typeof M +>N : typeof N +>E1 : typeof E1 +>a : E1 + + c = M.N.E1.a.a, // should error +>c : E2 +>M.N.E1.a.a : any +>M.N.E1.a : E1 +>M.N.E1 : typeof E1 +>M.N : typeof N +>M : typeof M +>N : typeof N +>E1 : typeof E1 +>a : E1 +>a : any + } + } +} + diff --git a/tests/baselines/reference/enumLiteralTypes1.js b/tests/baselines/reference/enumLiteralTypes1.js index 714227f4d60a2..d25a3151aca4d 100644 --- a/tests/baselines/reference/enumLiteralTypes1.js +++ b/tests/baselines/reference/enumLiteralTypes1.js @@ -152,8 +152,8 @@ function f4(a, b) { b++; } function f5(a, b, c) { - var z1 = g(1 /* Yes */); - var z2 = g(2 /* No */); + var z1 = g(1 /* Choice.Yes */); + var z2 = g(2 /* Choice.No */); var z3 = g(a); var z4 = g(b); var z5 = g(c); @@ -163,14 +163,14 @@ function assertNever(x) { } function f10(x) { switch (x) { - case 1 /* Yes */: return "true"; - case 2 /* No */: return "false"; + case 1 /* Choice.Yes */: return "true"; + case 2 /* Choice.No */: return "false"; } } function f11(x) { switch (x) { - case 1 /* Yes */: return "true"; - case 2 /* No */: return "false"; + case 1 /* Choice.Yes */: return "true"; + case 2 /* Choice.No */: return "false"; } return assertNever(x); } @@ -183,7 +183,7 @@ function f12(x) { } } function f13(x) { - if (x === 1 /* Yes */) { + if (x === 1 /* Choice.Yes */) { x; } else { @@ -192,14 +192,14 @@ function f13(x) { } function f20(x) { switch (x.kind) { - case 1 /* Yes */: return x.a; - case 2 /* No */: return x.b; + case 1 /* Choice.Yes */: return x.a; + case 2 /* Choice.No */: return x.b; } } function f21(x) { switch (x.kind) { - case 1 /* Yes */: return x.a; - case 2 /* No */: return x.b; + case 1 /* Choice.Yes */: return x.a; + case 2 /* Choice.No */: return x.b; } return assertNever(x); } diff --git a/tests/baselines/reference/enumLiteralTypes2.js b/tests/baselines/reference/enumLiteralTypes2.js index a7d6f1128002b..7f4cf52816609 100644 --- a/tests/baselines/reference/enumLiteralTypes2.js +++ b/tests/baselines/reference/enumLiteralTypes2.js @@ -152,8 +152,8 @@ function f4(a, b) { b++; } function f5(a, b, c) { - var z1 = g(1 /* Yes */); - var z2 = g(2 /* No */); + var z1 = g(1 /* Choice.Yes */); + var z2 = g(2 /* Choice.No */); var z3 = g(a); var z4 = g(b); var z5 = g(c); @@ -163,14 +163,14 @@ function assertNever(x) { } function f10(x) { switch (x) { - case 1 /* Yes */: return "true"; - case 2 /* No */: return "false"; + case 1 /* Choice.Yes */: return "true"; + case 2 /* Choice.No */: return "false"; } } function f11(x) { switch (x) { - case 1 /* Yes */: return "true"; - case 2 /* No */: return "false"; + case 1 /* Choice.Yes */: return "true"; + case 2 /* Choice.No */: return "false"; } return assertNever(x); } @@ -183,7 +183,7 @@ function f12(x) { } } function f13(x) { - if (x === 1 /* Yes */) { + if (x === 1 /* Choice.Yes */) { x; } else { @@ -192,14 +192,14 @@ function f13(x) { } function f20(x) { switch (x.kind) { - case 1 /* Yes */: return x.a; - case 2 /* No */: return x.b; + case 1 /* Choice.Yes */: return x.a; + case 2 /* Choice.No */: return x.b; } } function f21(x) { switch (x.kind) { - case 1 /* Yes */: return x.a; - case 2 /* No */: return x.b; + case 1 /* Choice.Yes */: return x.a; + case 2 /* Choice.No */: return x.b; } return assertNever(x); } diff --git a/tests/baselines/reference/enumLiteralTypes3.js b/tests/baselines/reference/enumLiteralTypes3.js index 7eb3d0a1705d1..1ddcdd6663820 100644 --- a/tests/baselines/reference/enumLiteralTypes3.js +++ b/tests/baselines/reference/enumLiteralTypes3.js @@ -146,32 +146,32 @@ function f4(a, b, c, d) { d = d; } function f5(a, b, c, d) { - a = 0 /* Unknown */; - a = 1 /* Yes */; - a = 2 /* No */; - b = 0 /* Unknown */; - b = 1 /* Yes */; - b = 2 /* No */; - c = 0 /* Unknown */; - c = 1 /* Yes */; - c = 2 /* No */; - d = 0 /* Unknown */; - d = 1 /* Yes */; - d = 2 /* No */; + a = 0 /* Choice.Unknown */; + a = 1 /* Choice.Yes */; + a = 2 /* Choice.No */; + b = 0 /* Choice.Unknown */; + b = 1 /* Choice.Yes */; + b = 2 /* Choice.No */; + c = 0 /* Choice.Unknown */; + c = 1 /* Choice.Yes */; + c = 2 /* Choice.No */; + d = 0 /* Choice.Unknown */; + d = 1 /* Choice.Yes */; + d = 2 /* Choice.No */; } function f6(a, b, c, d) { - a === 0 /* Unknown */; - a === 1 /* Yes */; - a === 2 /* No */; - b === 0 /* Unknown */; - b === 1 /* Yes */; - b === 2 /* No */; - c === 0 /* Unknown */; - c === 1 /* Yes */; - c === 2 /* No */; - d === 0 /* Unknown */; - d === 1 /* Yes */; - d === 2 /* No */; + a === 0 /* Choice.Unknown */; + a === 1 /* Choice.Yes */; + a === 2 /* Choice.No */; + b === 0 /* Choice.Unknown */; + b === 1 /* Choice.Yes */; + b === 2 /* Choice.No */; + c === 0 /* Choice.Unknown */; + c === 1 /* Choice.Yes */; + c === 2 /* Choice.No */; + d === 0 /* Choice.Unknown */; + d === 1 /* Choice.Yes */; + d === 2 /* Choice.No */; } function f7(a, b, c, d) { a === a; @@ -193,33 +193,33 @@ function f7(a, b, c, d) { } function f10(x) { switch (x) { - case 0 /* Unknown */: return x; - case 1 /* Yes */: return x; - case 2 /* No */: return x; + case 0 /* Choice.Unknown */: return x; + case 1 /* Choice.Yes */: return x; + case 2 /* Choice.No */: return x; } return x; } function f11(x) { switch (x) { - case 0 /* Unknown */: return x; - case 1 /* Yes */: return x; - case 2 /* No */: return x; + case 0 /* Choice.Unknown */: return x; + case 1 /* Choice.Yes */: return x; + case 2 /* Choice.No */: return x; } return x; } function f12(x) { switch (x) { - case 0 /* Unknown */: return x; - case 1 /* Yes */: return x; - case 2 /* No */: return x; + case 0 /* Choice.Unknown */: return x; + case 1 /* Choice.Yes */: return x; + case 2 /* Choice.No */: return x; } return x; } function f13(x) { switch (x) { - case 0 /* Unknown */: return x; - case 1 /* Yes */: return x; - case 2 /* No */: return x; + case 0 /* Choice.Unknown */: return x; + case 1 /* Choice.Yes */: return x; + case 2 /* Choice.No */: return x; } return x; } diff --git a/tests/baselines/reference/enumUsedBeforeDeclaration.js b/tests/baselines/reference/enumUsedBeforeDeclaration.js index 63fc38471b27e..1db4368487da7 100644 --- a/tests/baselines/reference/enumUsedBeforeDeclaration.js +++ b/tests/baselines/reference/enumUsedBeforeDeclaration.js @@ -8,7 +8,7 @@ const enum ConstColor { Red, Green, Blue } //// [enumUsedBeforeDeclaration.js] var v = Color.Green; -var v2 = 1 /* Green */; +var v2 = 1 /* ConstColor.Green */; var Color; (function (Color) { Color[Color["Red"] = 0] = "Red"; diff --git a/tests/baselines/reference/enumWithExport.errors.txt b/tests/baselines/reference/enumWithExport.errors.txt new file mode 100644 index 0000000000000..486b7ed95e41f --- /dev/null +++ b/tests/baselines/reference/enumWithExport.errors.txt @@ -0,0 +1,12 @@ +tests/cases/compiler/enumWithExport.ts(5,7): error TS2651: A member initializer in a enum declaration cannot reference members declared after it, including members defined in other enums. + + +==== tests/cases/compiler/enumWithExport.ts (1 errors) ==== + namespace x { + export let y = 123 + } + enum x { + z = y + ~ +!!! error TS2651: A member initializer in a enum declaration cannot reference members declared after it, including members defined in other enums. + } \ No newline at end of file diff --git a/tests/baselines/reference/enumWithExport.js b/tests/baselines/reference/enumWithExport.js new file mode 100644 index 0000000000000..0660663b79704 --- /dev/null +++ b/tests/baselines/reference/enumWithExport.js @@ -0,0 +1,16 @@ +//// [enumWithExport.ts] +namespace x { + export let y = 123 +} +enum x { + z = y +} + +//// [enumWithExport.js] +var x; +(function (x) { + x.y = 123; +})(x || (x = {})); +(function (x) { + x[x["z"] = 0] = "z"; +})(x || (x = {})); diff --git a/tests/baselines/reference/enumWithExport.symbols b/tests/baselines/reference/enumWithExport.symbols new file mode 100644 index 0000000000000..4656d86d160f8 --- /dev/null +++ b/tests/baselines/reference/enumWithExport.symbols @@ -0,0 +1,13 @@ +=== tests/cases/compiler/enumWithExport.ts === +namespace x { +>x : Symbol(x, Decl(enumWithExport.ts, 0, 0), Decl(enumWithExport.ts, 2, 1)) + + export let y = 123 +>y : Symbol(y, Decl(enumWithExport.ts, 1, 12)) +} +enum x { +>x : Symbol(x, Decl(enumWithExport.ts, 0, 0), Decl(enumWithExport.ts, 2, 1)) + + z = y +>z : Symbol(x.z, Decl(enumWithExport.ts, 3, 8)) +} diff --git a/tests/baselines/reference/enumWithExport.types b/tests/baselines/reference/enumWithExport.types new file mode 100644 index 0000000000000..e616e9d4e1f86 --- /dev/null +++ b/tests/baselines/reference/enumWithExport.types @@ -0,0 +1,15 @@ +=== tests/cases/compiler/enumWithExport.ts === +namespace x { +>x : typeof x + + export let y = 123 +>y : number +>123 : 123 +} +enum x { +>x : x + + z = y +>z : x.z +>y : any +} diff --git a/tests/baselines/reference/enumWithUnicodeEscape1.symbols b/tests/baselines/reference/enumWithUnicodeEscape1.symbols index dd419df534501..de6390a875f2e 100644 --- a/tests/baselines/reference/enumWithUnicodeEscape1.symbols +++ b/tests/baselines/reference/enumWithUnicodeEscape1.symbols @@ -3,6 +3,6 @@ enum E { >E : Symbol(E, Decl(enumWithUnicodeEscape1.ts, 0, 0)) 'gold \u2730' ->'gold \u2730' : Symbol(E['gold u2730'], Decl(enumWithUnicodeEscape1.ts, 0, 8)) +>'gold \u2730' : Symbol(E['gold \u2730'], Decl(enumWithUnicodeEscape1.ts, 0, 8)) } diff --git a/tests/baselines/reference/enums.js b/tests/baselines/reference/enums.js index e71675f8c9c51..4a04f428ac9ad 100644 --- a/tests/baselines/reference/enums.js +++ b/tests/baselines/reference/enums.js @@ -43,10 +43,10 @@ var SyntaxKind; "use strict"; exports.__esModule = true; SyntaxKind.ImportClause; -"Type" /* Type */; +"Type" /* SymbolFlags.Type */; var kind; var flags; //// [c.js] "use strict"; exports.__esModule = true; -var flags = "Type" /* Type */; +var flags = "Type" /* SymbolFlags.Type */; diff --git a/tests/baselines/reference/errorCause(target=es2021).errors.txt b/tests/baselines/reference/errorCause(target=es2021).errors.txt new file mode 100644 index 0000000000000..74581b6c85191 --- /dev/null +++ b/tests/baselines/reference/errorCause(target=es2021).errors.txt @@ -0,0 +1,41 @@ +tests/cases/compiler/errorCause.ts(1,28): error TS2554: Expected 0-1 arguments, but got 2. +tests/cases/compiler/errorCause.ts(2,5): error TS2550: Property 'cause' does not exist on type 'Error'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2022' or later. +tests/cases/compiler/errorCause.ts(4,22): error TS2554: Expected 0-1 arguments, but got 2. +tests/cases/compiler/errorCause.ts(5,23): error TS2554: Expected 0-1 arguments, but got 2. +tests/cases/compiler/errorCause.ts(6,27): error TS2554: Expected 0-1 arguments, but got 2. +tests/cases/compiler/errorCause.ts(7,24): error TS2554: Expected 0-1 arguments, but got 2. +tests/cases/compiler/errorCause.ts(8,22): error TS2554: Expected 0-1 arguments, but got 2. +tests/cases/compiler/errorCause.ts(9,21): error TS2554: Expected 0-1 arguments, but got 2. +tests/cases/compiler/errorCause.ts(10,31): error TS2554: Expected 1-2 arguments, but got 3. + + +==== tests/cases/compiler/errorCause.ts (9 errors) ==== + let err = new Error("foo", { cause: new Error("bar") }); + ~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2554: Expected 0-1 arguments, but got 2. + err.cause; + ~~~~~ +!!! error TS2550: Property 'cause' does not exist on type 'Error'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2022' or later. + + new EvalError("foo", { cause: new Error("bar") }); + ~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2554: Expected 0-1 arguments, but got 2. + new RangeError("foo", { cause: new Error("bar") }); + ~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2554: Expected 0-1 arguments, but got 2. + new ReferenceError("foo", { cause: new Error("bar") }); + ~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2554: Expected 0-1 arguments, but got 2. + new SyntaxError("foo", { cause: new Error("bar") }); + ~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2554: Expected 0-1 arguments, but got 2. + new TypeError("foo", { cause: new Error("bar") }); + ~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2554: Expected 0-1 arguments, but got 2. + new URIError("foo", { cause: new Error("bar") }); + ~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2554: Expected 0-1 arguments, but got 2. + new AggregateError([], "foo", { cause: new Error("bar") }); + ~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2554: Expected 1-2 arguments, but got 3. + \ No newline at end of file diff --git a/tests/baselines/reference/errorCause(target=es2021).js b/tests/baselines/reference/errorCause(target=es2021).js new file mode 100644 index 0000000000000..01a76c8c9b2ef --- /dev/null +++ b/tests/baselines/reference/errorCause(target=es2021).js @@ -0,0 +1,23 @@ +//// [errorCause.ts] +let err = new Error("foo", { cause: new Error("bar") }); +err.cause; + +new EvalError("foo", { cause: new Error("bar") }); +new RangeError("foo", { cause: new Error("bar") }); +new ReferenceError("foo", { cause: new Error("bar") }); +new SyntaxError("foo", { cause: new Error("bar") }); +new TypeError("foo", { cause: new Error("bar") }); +new URIError("foo", { cause: new Error("bar") }); +new AggregateError([], "foo", { cause: new Error("bar") }); + + +//// [errorCause.js] +let err = new Error("foo", { cause: new Error("bar") }); +err.cause; +new EvalError("foo", { cause: new Error("bar") }); +new RangeError("foo", { cause: new Error("bar") }); +new ReferenceError("foo", { cause: new Error("bar") }); +new SyntaxError("foo", { cause: new Error("bar") }); +new TypeError("foo", { cause: new Error("bar") }); +new URIError("foo", { cause: new Error("bar") }); +new AggregateError([], "foo", { cause: new Error("bar") }); diff --git a/tests/baselines/reference/errorCause(target=es2021).symbols b/tests/baselines/reference/errorCause(target=es2021).symbols new file mode 100644 index 0000000000000..a4b8896b27bc4 --- /dev/null +++ b/tests/baselines/reference/errorCause(target=es2021).symbols @@ -0,0 +1,45 @@ +=== tests/cases/compiler/errorCause.ts === +let err = new Error("foo", { cause: new Error("bar") }); +>err : Symbol(err, Decl(errorCause.ts, 0, 3)) +>Error : Symbol(Error, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>cause : Symbol(cause, Decl(errorCause.ts, 0, 28)) +>Error : Symbol(Error, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) + +err.cause; +>err : Symbol(err, Decl(errorCause.ts, 0, 3)) + +new EvalError("foo", { cause: new Error("bar") }); +>EvalError : Symbol(EvalError, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>cause : Symbol(cause, Decl(errorCause.ts, 3, 22)) +>Error : Symbol(Error, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) + +new RangeError("foo", { cause: new Error("bar") }); +>RangeError : Symbol(RangeError, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>cause : Symbol(cause, Decl(errorCause.ts, 4, 23)) +>Error : Symbol(Error, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) + +new ReferenceError("foo", { cause: new Error("bar") }); +>ReferenceError : Symbol(ReferenceError, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>cause : Symbol(cause, Decl(errorCause.ts, 5, 27)) +>Error : Symbol(Error, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) + +new SyntaxError("foo", { cause: new Error("bar") }); +>SyntaxError : Symbol(SyntaxError, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>cause : Symbol(cause, Decl(errorCause.ts, 6, 24)) +>Error : Symbol(Error, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) + +new TypeError("foo", { cause: new Error("bar") }); +>TypeError : Symbol(TypeError, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>cause : Symbol(cause, Decl(errorCause.ts, 7, 22)) +>Error : Symbol(Error, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) + +new URIError("foo", { cause: new Error("bar") }); +>URIError : Symbol(URIError, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>cause : Symbol(cause, Decl(errorCause.ts, 8, 21)) +>Error : Symbol(Error, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) + +new AggregateError([], "foo", { cause: new Error("bar") }); +>AggregateError : Symbol(AggregateError, Decl(lib.es2021.promise.d.ts, --, --), Decl(lib.es2021.promise.d.ts, --, --)) +>cause : Symbol(cause, Decl(errorCause.ts, 9, 31)) +>Error : Symbol(Error, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) + diff --git a/tests/baselines/reference/errorCause(target=es2021).types b/tests/baselines/reference/errorCause(target=es2021).types new file mode 100644 index 0000000000000..c79d2c3db100b --- /dev/null +++ b/tests/baselines/reference/errorCause(target=es2021).types @@ -0,0 +1,88 @@ +=== tests/cases/compiler/errorCause.ts === +let err = new Error("foo", { cause: new Error("bar") }); +>err : Error +>new Error("foo", { cause: new Error("bar") }) : Error +>Error : ErrorConstructor +>"foo" : "foo" +>{ cause: new Error("bar") } : { cause: Error; } +>cause : Error +>new Error("bar") : Error +>Error : ErrorConstructor +>"bar" : "bar" + +err.cause; +>err.cause : any +>err : Error +>cause : any + +new EvalError("foo", { cause: new Error("bar") }); +>new EvalError("foo", { cause: new Error("bar") }) : EvalError & Error +>EvalError : EvalErrorConstructor +>"foo" : "foo" +>{ cause: new Error("bar") } : { cause: Error; } +>cause : Error +>new Error("bar") : Error +>Error : ErrorConstructor +>"bar" : "bar" + +new RangeError("foo", { cause: new Error("bar") }); +>new RangeError("foo", { cause: new Error("bar") }) : RangeError & Error +>RangeError : RangeErrorConstructor +>"foo" : "foo" +>{ cause: new Error("bar") } : { cause: Error; } +>cause : Error +>new Error("bar") : Error +>Error : ErrorConstructor +>"bar" : "bar" + +new ReferenceError("foo", { cause: new Error("bar") }); +>new ReferenceError("foo", { cause: new Error("bar") }) : ReferenceError & Error +>ReferenceError : ReferenceErrorConstructor +>"foo" : "foo" +>{ cause: new Error("bar") } : { cause: Error; } +>cause : Error +>new Error("bar") : Error +>Error : ErrorConstructor +>"bar" : "bar" + +new SyntaxError("foo", { cause: new Error("bar") }); +>new SyntaxError("foo", { cause: new Error("bar") }) : SyntaxError & Error +>SyntaxError : SyntaxErrorConstructor +>"foo" : "foo" +>{ cause: new Error("bar") } : { cause: Error; } +>cause : Error +>new Error("bar") : Error +>Error : ErrorConstructor +>"bar" : "bar" + +new TypeError("foo", { cause: new Error("bar") }); +>new TypeError("foo", { cause: new Error("bar") }) : TypeError & Error +>TypeError : TypeErrorConstructor +>"foo" : "foo" +>{ cause: new Error("bar") } : { cause: Error; } +>cause : Error +>new Error("bar") : Error +>Error : ErrorConstructor +>"bar" : "bar" + +new URIError("foo", { cause: new Error("bar") }); +>new URIError("foo", { cause: new Error("bar") }) : URIError & Error +>URIError : URIErrorConstructor +>"foo" : "foo" +>{ cause: new Error("bar") } : { cause: Error; } +>cause : Error +>new Error("bar") : Error +>Error : ErrorConstructor +>"bar" : "bar" + +new AggregateError([], "foo", { cause: new Error("bar") }); +>new AggregateError([], "foo", { cause: new Error("bar") }) : AggregateError +>AggregateError : AggregateErrorConstructor +>[] : undefined[] +>"foo" : "foo" +>{ cause: new Error("bar") } : { cause: Error; } +>cause : Error +>new Error("bar") : Error +>Error : ErrorConstructor +>"bar" : "bar" + diff --git a/tests/baselines/reference/errorCause(target=es2022).js b/tests/baselines/reference/errorCause(target=es2022).js new file mode 100644 index 0000000000000..01a76c8c9b2ef --- /dev/null +++ b/tests/baselines/reference/errorCause(target=es2022).js @@ -0,0 +1,23 @@ +//// [errorCause.ts] +let err = new Error("foo", { cause: new Error("bar") }); +err.cause; + +new EvalError("foo", { cause: new Error("bar") }); +new RangeError("foo", { cause: new Error("bar") }); +new ReferenceError("foo", { cause: new Error("bar") }); +new SyntaxError("foo", { cause: new Error("bar") }); +new TypeError("foo", { cause: new Error("bar") }); +new URIError("foo", { cause: new Error("bar") }); +new AggregateError([], "foo", { cause: new Error("bar") }); + + +//// [errorCause.js] +let err = new Error("foo", { cause: new Error("bar") }); +err.cause; +new EvalError("foo", { cause: new Error("bar") }); +new RangeError("foo", { cause: new Error("bar") }); +new ReferenceError("foo", { cause: new Error("bar") }); +new SyntaxError("foo", { cause: new Error("bar") }); +new TypeError("foo", { cause: new Error("bar") }); +new URIError("foo", { cause: new Error("bar") }); +new AggregateError([], "foo", { cause: new Error("bar") }); diff --git a/tests/baselines/reference/errorCause(target=es2022).symbols b/tests/baselines/reference/errorCause(target=es2022).symbols new file mode 100644 index 0000000000000..47dd07d408f0b --- /dev/null +++ b/tests/baselines/reference/errorCause(target=es2022).symbols @@ -0,0 +1,47 @@ +=== tests/cases/compiler/errorCause.ts === +let err = new Error("foo", { cause: new Error("bar") }); +>err : Symbol(err, Decl(errorCause.ts, 0, 3)) +>Error : Symbol(Error, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2022.error.d.ts, --, --)) +>cause : Symbol(cause, Decl(errorCause.ts, 0, 28)) +>Error : Symbol(Error, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2022.error.d.ts, --, --)) + +err.cause; +>err.cause : Symbol(Error.cause, Decl(lib.es2022.error.d.ts, --, --)) +>err : Symbol(err, Decl(errorCause.ts, 0, 3)) +>cause : Symbol(Error.cause, Decl(lib.es2022.error.d.ts, --, --)) + +new EvalError("foo", { cause: new Error("bar") }); +>EvalError : Symbol(EvalError, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>cause : Symbol(cause, Decl(errorCause.ts, 3, 22)) +>Error : Symbol(Error, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2022.error.d.ts, --, --)) + +new RangeError("foo", { cause: new Error("bar") }); +>RangeError : Symbol(RangeError, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>cause : Symbol(cause, Decl(errorCause.ts, 4, 23)) +>Error : Symbol(Error, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2022.error.d.ts, --, --)) + +new ReferenceError("foo", { cause: new Error("bar") }); +>ReferenceError : Symbol(ReferenceError, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>cause : Symbol(cause, Decl(errorCause.ts, 5, 27)) +>Error : Symbol(Error, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2022.error.d.ts, --, --)) + +new SyntaxError("foo", { cause: new Error("bar") }); +>SyntaxError : Symbol(SyntaxError, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>cause : Symbol(cause, Decl(errorCause.ts, 6, 24)) +>Error : Symbol(Error, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2022.error.d.ts, --, --)) + +new TypeError("foo", { cause: new Error("bar") }); +>TypeError : Symbol(TypeError, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>cause : Symbol(cause, Decl(errorCause.ts, 7, 22)) +>Error : Symbol(Error, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2022.error.d.ts, --, --)) + +new URIError("foo", { cause: new Error("bar") }); +>URIError : Symbol(URIError, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>cause : Symbol(cause, Decl(errorCause.ts, 8, 21)) +>Error : Symbol(Error, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2022.error.d.ts, --, --)) + +new AggregateError([], "foo", { cause: new Error("bar") }); +>AggregateError : Symbol(AggregateError, Decl(lib.es2021.promise.d.ts, --, --), Decl(lib.es2021.promise.d.ts, --, --)) +>cause : Symbol(cause, Decl(errorCause.ts, 9, 31)) +>Error : Symbol(Error, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2022.error.d.ts, --, --)) + diff --git a/tests/baselines/reference/errorCause(target=es2022).types b/tests/baselines/reference/errorCause(target=es2022).types new file mode 100644 index 0000000000000..44f753d6de4a6 --- /dev/null +++ b/tests/baselines/reference/errorCause(target=es2022).types @@ -0,0 +1,88 @@ +=== tests/cases/compiler/errorCause.ts === +let err = new Error("foo", { cause: new Error("bar") }); +>err : Error +>new Error("foo", { cause: new Error("bar") }) : Error +>Error : ErrorConstructor +>"foo" : "foo" +>{ cause: new Error("bar") } : { cause: Error; } +>cause : Error +>new Error("bar") : Error +>Error : ErrorConstructor +>"bar" : "bar" + +err.cause; +>err.cause : Error +>err : Error +>cause : Error + +new EvalError("foo", { cause: new Error("bar") }); +>new EvalError("foo", { cause: new Error("bar") }) : EvalError +>EvalError : EvalErrorConstructor +>"foo" : "foo" +>{ cause: new Error("bar") } : { cause: Error; } +>cause : Error +>new Error("bar") : Error +>Error : ErrorConstructor +>"bar" : "bar" + +new RangeError("foo", { cause: new Error("bar") }); +>new RangeError("foo", { cause: new Error("bar") }) : RangeError +>RangeError : RangeErrorConstructor +>"foo" : "foo" +>{ cause: new Error("bar") } : { cause: Error; } +>cause : Error +>new Error("bar") : Error +>Error : ErrorConstructor +>"bar" : "bar" + +new ReferenceError("foo", { cause: new Error("bar") }); +>new ReferenceError("foo", { cause: new Error("bar") }) : ReferenceError +>ReferenceError : ReferenceErrorConstructor +>"foo" : "foo" +>{ cause: new Error("bar") } : { cause: Error; } +>cause : Error +>new Error("bar") : Error +>Error : ErrorConstructor +>"bar" : "bar" + +new SyntaxError("foo", { cause: new Error("bar") }); +>new SyntaxError("foo", { cause: new Error("bar") }) : SyntaxError +>SyntaxError : SyntaxErrorConstructor +>"foo" : "foo" +>{ cause: new Error("bar") } : { cause: Error; } +>cause : Error +>new Error("bar") : Error +>Error : ErrorConstructor +>"bar" : "bar" + +new TypeError("foo", { cause: new Error("bar") }); +>new TypeError("foo", { cause: new Error("bar") }) : TypeError +>TypeError : TypeErrorConstructor +>"foo" : "foo" +>{ cause: new Error("bar") } : { cause: Error; } +>cause : Error +>new Error("bar") : Error +>Error : ErrorConstructor +>"bar" : "bar" + +new URIError("foo", { cause: new Error("bar") }); +>new URIError("foo", { cause: new Error("bar") }) : URIError +>URIError : URIErrorConstructor +>"foo" : "foo" +>{ cause: new Error("bar") } : { cause: Error; } +>cause : Error +>new Error("bar") : Error +>Error : ErrorConstructor +>"bar" : "bar" + +new AggregateError([], "foo", { cause: new Error("bar") }); +>new AggregateError([], "foo", { cause: new Error("bar") }) : AggregateError +>AggregateError : AggregateErrorConstructor +>[] : undefined[] +>"foo" : "foo" +>{ cause: new Error("bar") } : { cause: Error; } +>cause : Error +>new Error("bar") : Error +>Error : ErrorConstructor +>"bar" : "bar" + diff --git a/tests/baselines/reference/errorCause(target=esnext).js b/tests/baselines/reference/errorCause(target=esnext).js new file mode 100644 index 0000000000000..01a76c8c9b2ef --- /dev/null +++ b/tests/baselines/reference/errorCause(target=esnext).js @@ -0,0 +1,23 @@ +//// [errorCause.ts] +let err = new Error("foo", { cause: new Error("bar") }); +err.cause; + +new EvalError("foo", { cause: new Error("bar") }); +new RangeError("foo", { cause: new Error("bar") }); +new ReferenceError("foo", { cause: new Error("bar") }); +new SyntaxError("foo", { cause: new Error("bar") }); +new TypeError("foo", { cause: new Error("bar") }); +new URIError("foo", { cause: new Error("bar") }); +new AggregateError([], "foo", { cause: new Error("bar") }); + + +//// [errorCause.js] +let err = new Error("foo", { cause: new Error("bar") }); +err.cause; +new EvalError("foo", { cause: new Error("bar") }); +new RangeError("foo", { cause: new Error("bar") }); +new ReferenceError("foo", { cause: new Error("bar") }); +new SyntaxError("foo", { cause: new Error("bar") }); +new TypeError("foo", { cause: new Error("bar") }); +new URIError("foo", { cause: new Error("bar") }); +new AggregateError([], "foo", { cause: new Error("bar") }); diff --git a/tests/baselines/reference/errorCause(target=esnext).symbols b/tests/baselines/reference/errorCause(target=esnext).symbols new file mode 100644 index 0000000000000..47dd07d408f0b --- /dev/null +++ b/tests/baselines/reference/errorCause(target=esnext).symbols @@ -0,0 +1,47 @@ +=== tests/cases/compiler/errorCause.ts === +let err = new Error("foo", { cause: new Error("bar") }); +>err : Symbol(err, Decl(errorCause.ts, 0, 3)) +>Error : Symbol(Error, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2022.error.d.ts, --, --)) +>cause : Symbol(cause, Decl(errorCause.ts, 0, 28)) +>Error : Symbol(Error, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2022.error.d.ts, --, --)) + +err.cause; +>err.cause : Symbol(Error.cause, Decl(lib.es2022.error.d.ts, --, --)) +>err : Symbol(err, Decl(errorCause.ts, 0, 3)) +>cause : Symbol(Error.cause, Decl(lib.es2022.error.d.ts, --, --)) + +new EvalError("foo", { cause: new Error("bar") }); +>EvalError : Symbol(EvalError, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>cause : Symbol(cause, Decl(errorCause.ts, 3, 22)) +>Error : Symbol(Error, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2022.error.d.ts, --, --)) + +new RangeError("foo", { cause: new Error("bar") }); +>RangeError : Symbol(RangeError, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>cause : Symbol(cause, Decl(errorCause.ts, 4, 23)) +>Error : Symbol(Error, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2022.error.d.ts, --, --)) + +new ReferenceError("foo", { cause: new Error("bar") }); +>ReferenceError : Symbol(ReferenceError, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>cause : Symbol(cause, Decl(errorCause.ts, 5, 27)) +>Error : Symbol(Error, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2022.error.d.ts, --, --)) + +new SyntaxError("foo", { cause: new Error("bar") }); +>SyntaxError : Symbol(SyntaxError, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>cause : Symbol(cause, Decl(errorCause.ts, 6, 24)) +>Error : Symbol(Error, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2022.error.d.ts, --, --)) + +new TypeError("foo", { cause: new Error("bar") }); +>TypeError : Symbol(TypeError, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>cause : Symbol(cause, Decl(errorCause.ts, 7, 22)) +>Error : Symbol(Error, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2022.error.d.ts, --, --)) + +new URIError("foo", { cause: new Error("bar") }); +>URIError : Symbol(URIError, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>cause : Symbol(cause, Decl(errorCause.ts, 8, 21)) +>Error : Symbol(Error, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2022.error.d.ts, --, --)) + +new AggregateError([], "foo", { cause: new Error("bar") }); +>AggregateError : Symbol(AggregateError, Decl(lib.es2021.promise.d.ts, --, --), Decl(lib.es2021.promise.d.ts, --, --)) +>cause : Symbol(cause, Decl(errorCause.ts, 9, 31)) +>Error : Symbol(Error, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2022.error.d.ts, --, --)) + diff --git a/tests/baselines/reference/errorCause(target=esnext).types b/tests/baselines/reference/errorCause(target=esnext).types new file mode 100644 index 0000000000000..44f753d6de4a6 --- /dev/null +++ b/tests/baselines/reference/errorCause(target=esnext).types @@ -0,0 +1,88 @@ +=== tests/cases/compiler/errorCause.ts === +let err = new Error("foo", { cause: new Error("bar") }); +>err : Error +>new Error("foo", { cause: new Error("bar") }) : Error +>Error : ErrorConstructor +>"foo" : "foo" +>{ cause: new Error("bar") } : { cause: Error; } +>cause : Error +>new Error("bar") : Error +>Error : ErrorConstructor +>"bar" : "bar" + +err.cause; +>err.cause : Error +>err : Error +>cause : Error + +new EvalError("foo", { cause: new Error("bar") }); +>new EvalError("foo", { cause: new Error("bar") }) : EvalError +>EvalError : EvalErrorConstructor +>"foo" : "foo" +>{ cause: new Error("bar") } : { cause: Error; } +>cause : Error +>new Error("bar") : Error +>Error : ErrorConstructor +>"bar" : "bar" + +new RangeError("foo", { cause: new Error("bar") }); +>new RangeError("foo", { cause: new Error("bar") }) : RangeError +>RangeError : RangeErrorConstructor +>"foo" : "foo" +>{ cause: new Error("bar") } : { cause: Error; } +>cause : Error +>new Error("bar") : Error +>Error : ErrorConstructor +>"bar" : "bar" + +new ReferenceError("foo", { cause: new Error("bar") }); +>new ReferenceError("foo", { cause: new Error("bar") }) : ReferenceError +>ReferenceError : ReferenceErrorConstructor +>"foo" : "foo" +>{ cause: new Error("bar") } : { cause: Error; } +>cause : Error +>new Error("bar") : Error +>Error : ErrorConstructor +>"bar" : "bar" + +new SyntaxError("foo", { cause: new Error("bar") }); +>new SyntaxError("foo", { cause: new Error("bar") }) : SyntaxError +>SyntaxError : SyntaxErrorConstructor +>"foo" : "foo" +>{ cause: new Error("bar") } : { cause: Error; } +>cause : Error +>new Error("bar") : Error +>Error : ErrorConstructor +>"bar" : "bar" + +new TypeError("foo", { cause: new Error("bar") }); +>new TypeError("foo", { cause: new Error("bar") }) : TypeError +>TypeError : TypeErrorConstructor +>"foo" : "foo" +>{ cause: new Error("bar") } : { cause: Error; } +>cause : Error +>new Error("bar") : Error +>Error : ErrorConstructor +>"bar" : "bar" + +new URIError("foo", { cause: new Error("bar") }); +>new URIError("foo", { cause: new Error("bar") }) : URIError +>URIError : URIErrorConstructor +>"foo" : "foo" +>{ cause: new Error("bar") } : { cause: Error; } +>cause : Error +>new Error("bar") : Error +>Error : ErrorConstructor +>"bar" : "bar" + +new AggregateError([], "foo", { cause: new Error("bar") }); +>new AggregateError([], "foo", { cause: new Error("bar") }) : AggregateError +>AggregateError : AggregateErrorConstructor +>[] : undefined[] +>"foo" : "foo" +>{ cause: new Error("bar") } : { cause: Error; } +>cause : Error +>new Error("bar") : Error +>Error : ErrorConstructor +>"bar" : "bar" + diff --git a/tests/baselines/reference/errorRecoveryWithDotFollowedByNamespaceKeyword.errors.txt b/tests/baselines/reference/errorRecoveryWithDotFollowedByNamespaceKeyword.errors.txt index 3a7c89e2f4157..6bac67291472c 100644 --- a/tests/baselines/reference/errorRecoveryWithDotFollowedByNamespaceKeyword.errors.txt +++ b/tests/baselines/reference/errorRecoveryWithDotFollowedByNamespaceKeyword.errors.txt @@ -16,5 +16,4 @@ tests/cases/compiler/errorRecoveryWithDotFollowedByNamespaceKeyword.ts(9,2): err } !!! error TS1005: '}' expected. -!!! related TS1007 tests/cases/compiler/errorRecoveryWithDotFollowedByNamespaceKeyword.ts:3:19: The parser expected to find a '}' to match the '{' token here. -!!! related TS1007 tests/cases/compiler/errorRecoveryWithDotFollowedByNamespaceKeyword.ts:2:20: The parser expected to find a '}' to match the '{' token here. \ No newline at end of file +!!! related TS1007 tests/cases/compiler/errorRecoveryWithDotFollowedByNamespaceKeyword.ts:3:19: The parser expected to find a '}' to match the '{' token here. \ No newline at end of file diff --git a/tests/baselines/reference/errorSuperCalls.js b/tests/baselines/reference/errorSuperCalls.js index f479d4f5bbedd..53fd58d9e6656 100644 --- a/tests/baselines/reference/errorSuperCalls.js +++ b/tests/baselines/reference/errorSuperCalls.js @@ -93,9 +93,10 @@ var __extends = (this && this.__extends) || (function () { //super call in class constructor with no base type var NoBase = /** @class */ (function () { function NoBase() { - _this = _super.call(this) || this; + var _this = _super.call(this) || this; //super call in class member initializer with no base type this.p = _this = _super.call(this) || this; + return _this; } //super call in class member function with no base type NoBase.prototype.fn = function () { diff --git a/tests/baselines/reference/es2018ObjectAssign.types b/tests/baselines/reference/es2018ObjectAssign.types index f4cc265f67a97..e8cc1927c5caf 100644 --- a/tests/baselines/reference/es2018ObjectAssign.types +++ b/tests/baselines/reference/es2018ObjectAssign.types @@ -2,9 +2,9 @@ const test = Object.assign({}, { test: true }); >test : { test: boolean; } >Object.assign({}, { test: true }) : { test: boolean; } ->Object.assign : { (target: T, source: U): T & U; (target: T, source1: U, source2: V): T & U & V; (target: T, source1: U, source2: V, source3: W): T & U & V & W; (target: object, ...sources: any[]): any; } +>Object.assign : { (target: T, source: U): T & U; (target: T, source1: U, source2: V): T & U & V; (target: T, source1: U, source2: V, source3: W): T & U & V & W; (target: object, ...sources: any[]): any; } >Object : ObjectConstructor ->assign : { (target: T, source: U): T & U; (target: T, source1: U, source2: V): T & U & V; (target: T, source1: U, source2: V, source3: W): T & U & V & W; (target: object, ...sources: any[]): any; } +>assign : { (target: T, source: U): T & U; (target: T, source1: U, source2: V): T & U & V; (target: T, source1: U, source2: V, source3: W): T & U & V & W; (target: object, ...sources: any[]): any; } >{} : {} >{ test: true } : { test: true; } >test : true diff --git a/tests/baselines/reference/es2020IntlAPIs.errors.txt b/tests/baselines/reference/es2020IntlAPIs.errors.txt new file mode 100644 index 0000000000000..0c74f13974c62 --- /dev/null +++ b/tests/baselines/reference/es2020IntlAPIs.errors.txt @@ -0,0 +1,53 @@ +tests/cases/conformance/es2020/es2020IntlAPIs.ts(45,1): error TS2554: Expected 1-2 arguments, but got 0. + + +==== tests/cases/conformance/es2020/es2020IntlAPIs.ts (1 errors) ==== + // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#Locale_identification_and_negotiation + const count = 26254.39; + const date = new Date("2012-05-24"); + + function log(locale: string) { + console.log( + `${new Intl.DateTimeFormat(locale).format(date)} ${new Intl.NumberFormat(locale).format(count)}` + ); + } + + log("en-US"); + // expected output: 5/24/2012 26,254.39 + + log("de-DE"); + // expected output: 24.5.2012 26.254,39 + + // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat + const rtf1 = new Intl.RelativeTimeFormat('en', { style: 'narrow' }); + + console.log(rtf1.format(3, 'quarter')); + //expected output: "in 3 qtrs." + + console.log(rtf1.format(-1, 'day')); + //expected output: "1 day ago" + + const rtf2 = new Intl.RelativeTimeFormat('es', { numeric: 'auto' }); + + console.log(rtf2.format(2, 'day')); + //expected output: "pasado mañana" + + // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DisplayNames + const regionNamesInEnglish = new Intl.DisplayNames(['en'], { type: 'region' }); + const regionNamesInTraditionalChinese = new Intl.DisplayNames(['zh-Hant'], { type: 'region' }); + + console.log(regionNamesInEnglish.of('US')); + // expected output: "United States" + + console.log(regionNamesInTraditionalChinese.of('US')); + // expected output: "美國" + + const locales1 = ['ban', 'id-u-co-pinyin', 'de-ID']; + const options1 = { localeMatcher: 'lookup' } as const; + console.log(Intl.DisplayNames.supportedLocalesOf(locales1, options1).join(', ')); + + new Intl.Locale(); // should error + ~~~~~~~~~~~~~~~~~ +!!! error TS2554: Expected 1-2 arguments, but got 0. +!!! related TS6210 /.ts/lib.es2020.intl.d.ts:311:14: An argument for 'tag' was not provided. + new Intl.Locale(new Intl.Locale('en-US')); \ No newline at end of file diff --git a/tests/baselines/reference/es2020IntlAPIs.js b/tests/baselines/reference/es2020IntlAPIs.js index 8136ff27ee070..d08c2f427cdee 100644 --- a/tests/baselines/reference/es2020IntlAPIs.js +++ b/tests/baselines/reference/es2020IntlAPIs.js @@ -41,7 +41,10 @@ console.log(regionNamesInTraditionalChinese.of('US')); const locales1 = ['ban', 'id-u-co-pinyin', 'de-ID']; const options1 = { localeMatcher: 'lookup' } as const; -console.log(Intl.DisplayNames.supportedLocalesOf(locales1, options1).join(', ')); +console.log(Intl.DisplayNames.supportedLocalesOf(locales1, options1).join(', ')); + +new Intl.Locale(); // should error +new Intl.Locale(new Intl.Locale('en-US')); //// [es2020IntlAPIs.js] // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl#Locale_identification_and_negotiation @@ -73,3 +76,5 @@ console.log(regionNamesInTraditionalChinese.of('US')); const locales1 = ['ban', 'id-u-co-pinyin', 'de-ID']; const options1 = { localeMatcher: 'lookup' }; console.log(Intl.DisplayNames.supportedLocalesOf(locales1, options1).join(', ')); +new Intl.Locale(); // should error +new Intl.Locale(new Intl.Locale('en-US')); diff --git a/tests/baselines/reference/es2020IntlAPIs.symbols b/tests/baselines/reference/es2020IntlAPIs.symbols index 895257b61d289..08986c4bf7d44 100644 --- a/tests/baselines/reference/es2020IntlAPIs.symbols +++ b/tests/baselines/reference/es2020IntlAPIs.symbols @@ -5,7 +5,7 @@ const count = 26254.39; const date = new Date("2012-05-24"); >date : Symbol(date, Decl(es2020IntlAPIs.ts, 2, 5)) ->Date : Symbol(Date, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.scripthost.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) +>Date : Symbol(Date, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.scripthost.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --) ... and 1 more) function log(locale: string) { >log : Symbol(log, Decl(es2020IntlAPIs.ts, 2, 36)) @@ -147,3 +147,16 @@ console.log(Intl.DisplayNames.supportedLocalesOf(locales1, options1).join(', ')) >options1 : Symbol(options1, Decl(es2020IntlAPIs.ts, 41, 5)) >join : Symbol(Array.join, Decl(lib.es5.d.ts, --, --)) +new Intl.Locale(); // should error +>Intl.Locale : Symbol(Intl.Locale, Decl(lib.es2020.intl.d.ts, --, --), Decl(lib.es2020.intl.d.ts, --, --)) +>Intl : Symbol(Intl, Decl(lib.es5.d.ts, --, --), Decl(lib.es2017.intl.d.ts, --, --), Decl(lib.es2018.intl.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2020.intl.d.ts, --, --)) +>Locale : Symbol(Intl.Locale, Decl(lib.es2020.intl.d.ts, --, --), Decl(lib.es2020.intl.d.ts, --, --)) + +new Intl.Locale(new Intl.Locale('en-US')); +>Intl.Locale : Symbol(Intl.Locale, Decl(lib.es2020.intl.d.ts, --, --), Decl(lib.es2020.intl.d.ts, --, --)) +>Intl : Symbol(Intl, Decl(lib.es5.d.ts, --, --), Decl(lib.es2017.intl.d.ts, --, --), Decl(lib.es2018.intl.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2020.intl.d.ts, --, --)) +>Locale : Symbol(Intl.Locale, Decl(lib.es2020.intl.d.ts, --, --), Decl(lib.es2020.intl.d.ts, --, --)) +>Intl.Locale : Symbol(Intl.Locale, Decl(lib.es2020.intl.d.ts, --, --), Decl(lib.es2020.intl.d.ts, --, --)) +>Intl : Symbol(Intl, Decl(lib.es5.d.ts, --, --), Decl(lib.es2017.intl.d.ts, --, --), Decl(lib.es2018.intl.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2020.intl.d.ts, --, --)) +>Locale : Symbol(Intl.Locale, Decl(lib.es2020.intl.d.ts, --, --), Decl(lib.es2020.intl.d.ts, --, --)) + diff --git a/tests/baselines/reference/es2020IntlAPIs.types b/tests/baselines/reference/es2020IntlAPIs.types index f1315c55e9c9f..fa7ab907a19fc 100644 --- a/tests/baselines/reference/es2020IntlAPIs.types +++ b/tests/baselines/reference/es2020IntlAPIs.types @@ -25,18 +25,18 @@ function log(locale: string) { >new Intl.DateTimeFormat(locale).format(date) : string >new Intl.DateTimeFormat(locale).format : (date?: number | Date) => string >new Intl.DateTimeFormat(locale) : Intl.DateTimeFormat ->Intl.DateTimeFormat : { (locales?: string | string[], options?: Intl.DateTimeFormatOptions): Intl.DateTimeFormat; new (locales?: string | string[], options?: Intl.DateTimeFormatOptions): Intl.DateTimeFormat; supportedLocalesOf(locales: string | string[], options?: Intl.DateTimeFormatOptions): string[]; } +>Intl.DateTimeFormat : { (locales?: string | string[], options?: Intl.DateTimeFormatOptions): Intl.DateTimeFormat; new (locales?: string | string[], options?: Intl.DateTimeFormatOptions): Intl.DateTimeFormat; supportedLocalesOf(locales: string | string[], options?: Intl.DateTimeFormatOptions): string[]; readonly prototype: Intl.DateTimeFormat; } >Intl : typeof Intl ->DateTimeFormat : { (locales?: string | string[], options?: Intl.DateTimeFormatOptions): Intl.DateTimeFormat; new (locales?: string | string[], options?: Intl.DateTimeFormatOptions): Intl.DateTimeFormat; supportedLocalesOf(locales: string | string[], options?: Intl.DateTimeFormatOptions): string[]; } +>DateTimeFormat : { (locales?: string | string[], options?: Intl.DateTimeFormatOptions): Intl.DateTimeFormat; new (locales?: string | string[], options?: Intl.DateTimeFormatOptions): Intl.DateTimeFormat; supportedLocalesOf(locales: string | string[], options?: Intl.DateTimeFormatOptions): string[]; readonly prototype: Intl.DateTimeFormat; } >locale : string >format : (date?: number | Date) => string >date : Date >new Intl.NumberFormat(locale).format(count) : string >new Intl.NumberFormat(locale).format : { (value: number): string; (value: number | bigint): string; } >new Intl.NumberFormat(locale) : Intl.NumberFormat ->Intl.NumberFormat : { (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; new (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; supportedLocalesOf(locales: string | string[], options?: Intl.NumberFormatOptions): string[]; } +>Intl.NumberFormat : { (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; new (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; supportedLocalesOf(locales: string | string[], options?: Intl.NumberFormatOptions): string[]; readonly prototype: Intl.NumberFormat; } >Intl : typeof Intl ->NumberFormat : { (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; new (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; supportedLocalesOf(locales: string | string[], options?: Intl.NumberFormatOptions): string[]; } +>NumberFormat : { (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; new (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; supportedLocalesOf(locales: string | string[], options?: Intl.NumberFormatOptions): string[]; readonly prototype: Intl.NumberFormat; } >locale : string >format : { (value: number): string; (value: number | bigint): string; } >count : 26254.39 @@ -207,3 +207,20 @@ console.log(Intl.DisplayNames.supportedLocalesOf(locales1, options1).join(', ')) >join : (separator?: string) => string >', ' : ", " +new Intl.Locale(); // should error +>new Intl.Locale() : Intl.Locale +>Intl.Locale : new (tag: string | Intl.Locale, options?: Intl.LocaleOptions) => Intl.Locale +>Intl : typeof Intl +>Locale : new (tag: string | Intl.Locale, options?: Intl.LocaleOptions) => Intl.Locale + +new Intl.Locale(new Intl.Locale('en-US')); +>new Intl.Locale(new Intl.Locale('en-US')) : Intl.Locale +>Intl.Locale : new (tag: string | Intl.Locale, options?: Intl.LocaleOptions) => Intl.Locale +>Intl : typeof Intl +>Locale : new (tag: string | Intl.Locale, options?: Intl.LocaleOptions) => Intl.Locale +>new Intl.Locale('en-US') : Intl.Locale +>Intl.Locale : new (tag: string | Intl.Locale, options?: Intl.LocaleOptions) => Intl.Locale +>Intl : typeof Intl +>Locale : new (tag: string | Intl.Locale, options?: Intl.LocaleOptions) => Intl.Locale +>'en-US' : "en-US" + diff --git a/tests/baselines/reference/es5-importHelpersAsyncFunctions.js b/tests/baselines/reference/es5-importHelpersAsyncFunctions.js index de1c7ca322864..781027fc18ab4 100644 --- a/tests/baselines/reference/es5-importHelpersAsyncFunctions.js +++ b/tests/baselines/reference/es5-importHelpersAsyncFunctions.js @@ -23,8 +23,8 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.foo = void 0; var tslib_1 = require("tslib"); function foo() { - return (0, tslib_1.__awaiter)(this, void 0, void 0, function () { - return (0, tslib_1.__generator)(this, function (_a) { + return tslib_1.__awaiter(this, void 0, void 0, function () { + return tslib_1.__generator(this, function (_a) { return [2 /*return*/]; }); }); diff --git a/tests/baselines/reference/es6ExportAllInEs5.js b/tests/baselines/reference/es6ExportAllInEs5.js index 12bc63037a1eb..a9009baf7723e 100644 --- a/tests/baselines/reference/es6ExportAllInEs5.js +++ b/tests/baselines/reference/es6ExportAllInEs5.js @@ -34,7 +34,11 @@ exports.x = 10; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/es6ExportEqualsInterop.js b/tests/baselines/reference/es6ExportEqualsInterop.js index 7b0902786a11e..6f1d94451c968 100644 --- a/tests/baselines/reference/es6ExportEqualsInterop.js +++ b/tests/baselines/reference/es6ExportEqualsInterop.js @@ -211,7 +211,11 @@ export * from "class-module"; /// var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/es6ModuleConstEnumDeclaration.js b/tests/baselines/reference/es6ModuleConstEnumDeclaration.js index 1900db57b6037..ca000dd7e60d4 100644 --- a/tests/baselines/reference/es6ModuleConstEnumDeclaration.js +++ b/tests/baselines/reference/es6ModuleConstEnumDeclaration.js @@ -46,20 +46,20 @@ module m2 { } //// [es6ModuleConstEnumDeclaration.js] -var x = 0 /* a */; -var y = 0 /* x */; +var x = 0 /* e1.a */; +var y = 0 /* e2.x */; export var m1; (function (m1) { - var x1 = 0 /* a */; - var y1 = 0 /* x */; - var x2 = 0 /* a */; - var y2 = 0 /* x */; + var x1 = 0 /* e1.a */; + var y1 = 0 /* e2.x */; + var x2 = 0 /* e3.a */; + var y2 = 0 /* e4.x */; })(m1 || (m1 = {})); var m2; (function (m2) { - var x1 = 0 /* a */; - var y1 = 0 /* x */; - var x2 = 0 /* a */; - var y2 = 0 /* x */; - var x3 = 0 /* a */; + var x1 = 0 /* e1.a */; + var y1 = 0 /* e2.x */; + var x2 = 0 /* e5.a */; + var y2 = 0 /* e6.x */; + var x3 = 0 /* m1.e3.a */; })(m2 || (m2 = {})); diff --git a/tests/baselines/reference/es6ModuleConstEnumDeclaration2.js b/tests/baselines/reference/es6ModuleConstEnumDeclaration2.js index 5fb31067e338b..9556ba2c0e54d 100644 --- a/tests/baselines/reference/es6ModuleConstEnumDeclaration2.js +++ b/tests/baselines/reference/es6ModuleConstEnumDeclaration2.js @@ -58,8 +58,8 @@ var e2; e2[e2["y"] = 1] = "y"; e2[e2["z"] = 2] = "z"; })(e2 || (e2 = {})); -var x = 0 /* a */; -var y = 0 /* x */; +var x = 0 /* e1.a */; +var y = 0 /* e2.x */; export var m1; (function (m1) { let e3; @@ -74,10 +74,10 @@ export var m1; e4[e4["y"] = 1] = "y"; e4[e4["z"] = 2] = "z"; })(e4 || (e4 = {})); - var x1 = 0 /* a */; - var y1 = 0 /* x */; - var x2 = 0 /* a */; - var y2 = 0 /* x */; + var x1 = 0 /* e1.a */; + var y1 = 0 /* e2.x */; + var x2 = 0 /* e3.a */; + var y2 = 0 /* e4.x */; })(m1 || (m1 = {})); var m2; (function (m2) { @@ -93,9 +93,9 @@ var m2; e6[e6["y"] = 1] = "y"; e6[e6["z"] = 2] = "z"; })(e6 || (e6 = {})); - var x1 = 0 /* a */; - var y1 = 0 /* x */; - var x2 = 0 /* a */; - var y2 = 0 /* x */; - var x3 = 0 /* a */; + var x1 = 0 /* e1.a */; + var y1 = 0 /* e2.x */; + var x2 = 0 /* e5.a */; + var y2 = 0 /* e6.x */; + var x3 = 0 /* m1.e3.a */; })(m2 || (m2 = {})); diff --git a/tests/baselines/reference/esModuleInterop.js b/tests/baselines/reference/esModuleInterop.js index 26ae64863ba85..dd98c488aa3f9 100644 --- a/tests/baselines/reference/esModuleInterop.js +++ b/tests/baselines/reference/esModuleInterop.js @@ -22,7 +22,11 @@ fs; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/esModuleInteropImportCall.js b/tests/baselines/reference/esModuleInteropImportCall.js index c4e3b3b26acd5..1a1fa6c1a298c 100644 --- a/tests/baselines/reference/esModuleInteropImportCall.js +++ b/tests/baselines/reference/esModuleInteropImportCall.js @@ -13,7 +13,11 @@ import("./foo").then(f => { //// [index.js] var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/esModuleInteropImportNamespace.js b/tests/baselines/reference/esModuleInteropImportNamespace.js index b392c4d740000..132d5886d71a9 100644 --- a/tests/baselines/reference/esModuleInteropImportNamespace.js +++ b/tests/baselines/reference/esModuleInteropImportNamespace.js @@ -14,7 +14,11 @@ foo.default; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/esModuleInteropImportTSLibHasImport.js b/tests/baselines/reference/esModuleInteropImportTSLibHasImport.js index 079e0db685408..c9229672ab05a 100644 --- a/tests/baselines/reference/esModuleInteropImportTSLibHasImport.js +++ b/tests/baselines/reference/esModuleInteropImportTSLibHasImport.js @@ -26,7 +26,7 @@ exports.username = username; "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = require("tslib"); -(0, tslib_1.__exportStar)(require("./username"), exports); +tslib_1.__exportStar(require("./username"), exports); //// [hello.js] "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); @@ -36,6 +36,6 @@ exports.default = sayHello; "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = require("tslib"); -const hello_1 = (0, tslib_1.__importDefault)(require("./hello")); +const hello_1 = tslib_1.__importDefault(require("./hello")); const utils_1 = require("./utils"); (0, hello_1.default)((0, utils_1.username)()); diff --git a/tests/baselines/reference/esModuleInteropNamedDefaultImports.js b/tests/baselines/reference/esModuleInteropNamedDefaultImports.js index ab28bbfaae7b3..f7758925f7539 100644 --- a/tests/baselines/reference/esModuleInteropNamedDefaultImports.js +++ b/tests/baselines/reference/esModuleInteropNamedDefaultImports.js @@ -32,7 +32,11 @@ exports.Bar = Bar; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/esModuleInteropPrettyErrorRelatedInformation.errors.txt b/tests/baselines/reference/esModuleInteropPrettyErrorRelatedInformation.errors.txt index 8222133a9de00..0f17d68498077 100644 --- a/tests/baselines/reference/esModuleInteropPrettyErrorRelatedInformation.errors.txt +++ b/tests/baselines/reference/esModuleInteropPrettyErrorRelatedInformation.errors.txt @@ -23,5 +23,5 @@ !!! error TS2345: Type '{ default: () => void; }' provides no match for the signature '(): void'. !!! related TS7038 tests/cases/compiler/index.ts:1:1: Type originates at this import. A namespace-style import cannot be called or constructed, and will cause a failure at runtime. Consider using a default import or import require here instead. -Found 1 error. +Found 1 error in tests/cases/compiler/index.ts:3 diff --git a/tests/baselines/reference/esModuleInteropPrettyErrorRelatedInformation.js b/tests/baselines/reference/esModuleInteropPrettyErrorRelatedInformation.js index cba862db14575..1a0b0424aa0c8 100644 --- a/tests/baselines/reference/esModuleInteropPrettyErrorRelatedInformation.js +++ b/tests/baselines/reference/esModuleInteropPrettyErrorRelatedInformation.js @@ -14,7 +14,11 @@ invoke(foo); "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/esModuleInteropTslibHelpers.js b/tests/baselines/reference/esModuleInteropTslibHelpers.js index 0e44270a01257..2ff7cec863184 100644 --- a/tests/baselines/reference/esModuleInteropTslibHelpers.js +++ b/tests/baselines/reference/esModuleInteropTslibHelpers.js @@ -24,7 +24,7 @@ export { Bar } exports.__esModule = true; exports.Foo = void 0; var tslib_1 = require("tslib"); -var path_1 = (0, tslib_1.__importDefault)(require("path")); +var path_1 = tslib_1.__importDefault(require("path")); path_1["default"].resolve("", "../"); var Foo = /** @class */ (function () { function Foo() { @@ -37,7 +37,7 @@ exports.Foo = Foo; exports.__esModule = true; exports.Foo2 = void 0; var tslib_1 = require("tslib"); -var path = (0, tslib_1.__importStar)(require("path")); +var path = tslib_1.__importStar(require("path")); path.resolve("", "../"); var Foo2 = /** @class */ (function () { function Foo2() { @@ -50,7 +50,7 @@ exports.Foo2 = Foo2; exports.__esModule = true; exports.Foo3 = void 0; var tslib_1 = require("tslib"); -var path_1 = (0, tslib_1.__importDefault)(require("path")); +var path_1 = tslib_1.__importDefault(require("path")); (0, path_1["default"])("", "../"); var Foo3 = /** @class */ (function () { function Foo3() { @@ -63,6 +63,6 @@ exports.Foo3 = Foo3; exports.__esModule = true; exports.Bar = void 0; var tslib_1 = require("tslib"); -var path_1 = (0, tslib_1.__importStar)(require("path")); +var path_1 = tslib_1.__importStar(require("path")); exports.Bar = path_1.Bar; (0, path_1["default"])("", "../"); diff --git a/tests/baselines/reference/esModuleInteropUsesExportStarWhenDefaultPlusNames.js b/tests/baselines/reference/esModuleInteropUsesExportStarWhenDefaultPlusNames.js index 0586ebeeeca1d..9977eb932c875 100644 --- a/tests/baselines/reference/esModuleInteropUsesExportStarWhenDefaultPlusNames.js +++ b/tests/baselines/reference/esModuleInteropUsesExportStarWhenDefaultPlusNames.js @@ -7,7 +7,11 @@ void var2; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/esModuleInteropWithExportStar(target=es3).js b/tests/baselines/reference/esModuleInteropWithExportStar(target=es3).js index ef026250745f8..01f196c438281 100644 --- a/tests/baselines/reference/esModuleInteropWithExportStar(target=es3).js +++ b/tests/baselines/reference/esModuleInteropWithExportStar(target=es3).js @@ -16,7 +16,11 @@ export {x as y} from "./fs"; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/esModuleInteropWithExportStar(target=es5).js b/tests/baselines/reference/esModuleInteropWithExportStar(target=es5).js index d306d05644c19..b52b84ecbf484 100644 --- a/tests/baselines/reference/esModuleInteropWithExportStar(target=es5).js +++ b/tests/baselines/reference/esModuleInteropWithExportStar(target=es5).js @@ -16,7 +16,11 @@ export {x as y} from "./fs"; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/esModuleIntersectionCrash.js b/tests/baselines/reference/esModuleIntersectionCrash.js index ce60fc48e92a6..b5bf4b0580a35 100644 --- a/tests/baselines/reference/esModuleIntersectionCrash.js +++ b/tests/baselines/reference/esModuleIntersectionCrash.js @@ -16,7 +16,11 @@ mod.b; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/exportAsNamespace2(module=amd).js b/tests/baselines/reference/exportAsNamespace2(module=amd).js index a211d159abfe5..54285daee39cc 100644 --- a/tests/baselines/reference/exportAsNamespace2(module=amd).js +++ b/tests/baselines/reference/exportAsNamespace2(module=amd).js @@ -26,7 +26,11 @@ define(["require", "exports"], function (require, exports) { //// [1.js] var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -54,7 +58,11 @@ define(["require", "exports", "./0"], function (require, exports, ns) { //// [2.js] var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/exportAsNamespace2(module=commonjs).js b/tests/baselines/reference/exportAsNamespace2(module=commonjs).js index 9b0ba0dd3e1e7..33fd35fc73f1e 100644 --- a/tests/baselines/reference/exportAsNamespace2(module=commonjs).js +++ b/tests/baselines/reference/exportAsNamespace2(module=commonjs).js @@ -25,7 +25,11 @@ exports.b = 2; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -51,7 +55,11 @@ ns.b; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/exportAsNamespace2(module=umd).js b/tests/baselines/reference/exportAsNamespace2(module=umd).js index f8e2745939304..5eff6acbca4e4 100644 --- a/tests/baselines/reference/exportAsNamespace2(module=umd).js +++ b/tests/baselines/reference/exportAsNamespace2(module=umd).js @@ -34,7 +34,11 @@ foo.ns.b; //// [1.js] var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -70,7 +74,11 @@ var __importStar = (this && this.__importStar) || function (mod) { //// [2.js] var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/exportAsNamespace3(module=amd).js b/tests/baselines/reference/exportAsNamespace3(module=amd).js index 0d0f63426fa32..1c80c7684e15e 100644 --- a/tests/baselines/reference/exportAsNamespace3(module=amd).js +++ b/tests/baselines/reference/exportAsNamespace3(module=amd).js @@ -29,7 +29,11 @@ define(["require", "exports"], function (require, exports) { //// [1.js] var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -60,7 +64,11 @@ define(["require", "exports", "./0"], function (require, exports, ns) { //// [2.js] var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/exportAsNamespace3(module=commonjs).js b/tests/baselines/reference/exportAsNamespace3(module=commonjs).js index 5d2226039fb15..b5dc487aba738 100644 --- a/tests/baselines/reference/exportAsNamespace3(module=commonjs).js +++ b/tests/baselines/reference/exportAsNamespace3(module=commonjs).js @@ -28,7 +28,11 @@ exports.b = 2; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -57,7 +61,11 @@ ns.b; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/exportAsNamespace3(module=umd).js b/tests/baselines/reference/exportAsNamespace3(module=umd).js index da902de4e41f2..36ebe382ec796 100644 --- a/tests/baselines/reference/exportAsNamespace3(module=umd).js +++ b/tests/baselines/reference/exportAsNamespace3(module=umd).js @@ -37,7 +37,11 @@ foo.ns.b; //// [1.js] var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -76,7 +80,11 @@ var __importStar = (this && this.__importStar) || function (mod) { //// [2.js] var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/exportAsNamespace4(module=amd).js b/tests/baselines/reference/exportAsNamespace4(module=amd).js index e52a55df548f7..68d2c134879dc 100644 --- a/tests/baselines/reference/exportAsNamespace4(module=amd).js +++ b/tests/baselines/reference/exportAsNamespace4(module=amd).js @@ -32,7 +32,11 @@ define(["require", "exports"], function (require, exports) { //// [1.js] var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -58,7 +62,11 @@ define(["require", "exports", "./0"], function (require, exports, _0_1) { //// [11.js] var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/exportAsNamespace4(module=commonjs).js b/tests/baselines/reference/exportAsNamespace4(module=commonjs).js index 64d03766b0c81..d06c4262db6e9 100644 --- a/tests/baselines/reference/exportAsNamespace4(module=commonjs).js +++ b/tests/baselines/reference/exportAsNamespace4(module=commonjs).js @@ -31,7 +31,11 @@ exports.b = 2; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -55,7 +59,11 @@ exports["default"] = __importStar(require("./0")); "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/exportAsNamespace4(module=umd).js b/tests/baselines/reference/exportAsNamespace4(module=umd).js index e88f8063a5aba..f0aa112424102 100644 --- a/tests/baselines/reference/exportAsNamespace4(module=umd).js +++ b/tests/baselines/reference/exportAsNamespace4(module=umd).js @@ -40,7 +40,11 @@ foo1.b; //// [1.js] var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -74,7 +78,11 @@ var __importStar = (this && this.__importStar) || function (mod) { //// [11.js] var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/exportAsNamespace_exportAssignment.js b/tests/baselines/reference/exportAsNamespace_exportAssignment.js index dd7ac8623c896..3939e35f7c464 100644 --- a/tests/baselines/reference/exportAsNamespace_exportAssignment.js +++ b/tests/baselines/reference/exportAsNamespace_exportAssignment.js @@ -14,7 +14,11 @@ module.exports = {}; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/exportAsNamespace_missingEmitHelpers.js b/tests/baselines/reference/exportAsNamespace_missingEmitHelpers.js index 4b052d29dfb52..7afa249b2f3a1 100644 --- a/tests/baselines/reference/exportAsNamespace_missingEmitHelpers.js +++ b/tests/baselines/reference/exportAsNamespace_missingEmitHelpers.js @@ -15,4 +15,4 @@ exports.__esModule = true; exports.__esModule = true; exports.ns = void 0; var tslib_1 = require("tslib"); -exports.ns = (0, tslib_1.__importStar)(require("./a")); // Error +exports.ns = tslib_1.__importStar(require("./a")); // Error diff --git a/tests/baselines/reference/exportDeclarationWithModuleSpecifierNameOnNextLine1.js b/tests/baselines/reference/exportDeclarationWithModuleSpecifierNameOnNextLine1.js index eae506a0f9588..794822e3a4d74 100644 --- a/tests/baselines/reference/exportDeclarationWithModuleSpecifierNameOnNextLine1.js +++ b/tests/baselines/reference/exportDeclarationWithModuleSpecifierNameOnNextLine1.js @@ -28,7 +28,11 @@ exports.x = "x"; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -44,7 +48,11 @@ exports.__esModule = true; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -57,7 +65,11 @@ __createBinding(exports, t1_1, "x", "a"); "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/exportDefault.js b/tests/baselines/reference/exportDefault.js index ff7173e1c0eaa..bfeae5bcd5e46 100644 --- a/tests/baselines/reference/exportDefault.js +++ b/tests/baselines/reference/exportDefault.js @@ -46,7 +46,11 @@ exports["default"] = types; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -79,7 +83,11 @@ new types.A(); // Error "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/exportDefaultClassAndValue.errors.txt b/tests/baselines/reference/exportDefaultClassAndValue.errors.txt new file mode 100644 index 0000000000000..77beaef3d1949 --- /dev/null +++ b/tests/baselines/reference/exportDefaultClassAndValue.errors.txt @@ -0,0 +1,13 @@ +tests/cases/compiler/exportDefaultClassAndValue.ts(2,1): error TS2323: Cannot redeclare exported variable 'default'. +tests/cases/compiler/exportDefaultClassAndValue.ts(3,22): error TS2323: Cannot redeclare exported variable 'default'. + + +==== tests/cases/compiler/exportDefaultClassAndValue.ts (2 errors) ==== + const foo = 1 + export default foo + ~~~~~~~~~~~~~~~~~~ +!!! error TS2323: Cannot redeclare exported variable 'default'. + export default class Foo {} + ~~~ +!!! error TS2323: Cannot redeclare exported variable 'default'. + \ No newline at end of file diff --git a/tests/baselines/reference/exportDefaultClassAndValue.js b/tests/baselines/reference/exportDefaultClassAndValue.js new file mode 100644 index 0000000000000..84f23fa9ece18 --- /dev/null +++ b/tests/baselines/reference/exportDefaultClassAndValue.js @@ -0,0 +1,17 @@ +//// [exportDefaultClassAndValue.ts] +const foo = 1 +export default foo +export default class Foo {} + + +//// [exportDefaultClassAndValue.js] +"use strict"; +exports.__esModule = true; +var foo = 1; +exports["default"] = foo; +var Foo = /** @class */ (function () { + function Foo() { + } + return Foo; +}()); +exports["default"] = Foo; diff --git a/tests/baselines/reference/exportDefaultClassAndValue.symbols b/tests/baselines/reference/exportDefaultClassAndValue.symbols new file mode 100644 index 0000000000000..f4d006576a152 --- /dev/null +++ b/tests/baselines/reference/exportDefaultClassAndValue.symbols @@ -0,0 +1,10 @@ +=== tests/cases/compiler/exportDefaultClassAndValue.ts === +const foo = 1 +>foo : Symbol(foo, Decl(exportDefaultClassAndValue.ts, 0, 5)) + +export default foo +>foo : Symbol(foo, Decl(exportDefaultClassAndValue.ts, 0, 5)) + +export default class Foo {} +>Foo : Symbol(foo, Decl(exportDefaultClassAndValue.ts, 0, 13), Decl(exportDefaultClassAndValue.ts, 1, 18)) + diff --git a/tests/baselines/reference/exportDefaultClassAndValue.types b/tests/baselines/reference/exportDefaultClassAndValue.types new file mode 100644 index 0000000000000..036eb93bd0e05 --- /dev/null +++ b/tests/baselines/reference/exportDefaultClassAndValue.types @@ -0,0 +1,11 @@ +=== tests/cases/compiler/exportDefaultClassAndValue.ts === +const foo = 1 +>foo : 1 +>1 : 1 + +export default foo +>foo : 1 + +export default class Foo {} +>Foo : foo + diff --git a/tests/baselines/reference/exportDefaultDuplicateCrash.js b/tests/baselines/reference/exportDefaultDuplicateCrash.js index f61546f1854f8..9b7edb2a7ee30 100644 --- a/tests/baselines/reference/exportDefaultDuplicateCrash.js +++ b/tests/baselines/reference/exportDefaultDuplicateCrash.js @@ -11,7 +11,11 @@ export { aa as default } from './hi' // #38214 var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/exportDefaultInterfaceAndFunctionOverloads.js b/tests/baselines/reference/exportDefaultInterfaceAndFunctionOverloads.js new file mode 100644 index 0000000000000..18e9a05ca564b --- /dev/null +++ b/tests/baselines/reference/exportDefaultInterfaceAndFunctionOverloads.js @@ -0,0 +1,16 @@ +//// [exportDefaultInterfaceAndFunctionOverloads.ts] +export default function foo(value: number): number +export default function foo(value: string): string +export default function foo(value: string | number): string | number { + return 1 +} +export default interface Foo {} + + +//// [exportDefaultInterfaceAndFunctionOverloads.js] +"use strict"; +exports.__esModule = true; +function foo(value) { + return 1; +} +exports["default"] = foo; diff --git a/tests/baselines/reference/exportDefaultInterfaceAndFunctionOverloads.symbols b/tests/baselines/reference/exportDefaultInterfaceAndFunctionOverloads.symbols new file mode 100644 index 0000000000000..24698bd222049 --- /dev/null +++ b/tests/baselines/reference/exportDefaultInterfaceAndFunctionOverloads.symbols @@ -0,0 +1,18 @@ +=== tests/cases/compiler/exportDefaultInterfaceAndFunctionOverloads.ts === +export default function foo(value: number): number +>foo : Symbol(foo, Decl(exportDefaultInterfaceAndFunctionOverloads.ts, 0, 0), Decl(exportDefaultInterfaceAndFunctionOverloads.ts, 0, 50), Decl(exportDefaultInterfaceAndFunctionOverloads.ts, 1, 50), Decl(exportDefaultInterfaceAndFunctionOverloads.ts, 4, 1)) +>value : Symbol(value, Decl(exportDefaultInterfaceAndFunctionOverloads.ts, 0, 28)) + +export default function foo(value: string): string +>foo : Symbol(foo, Decl(exportDefaultInterfaceAndFunctionOverloads.ts, 0, 0), Decl(exportDefaultInterfaceAndFunctionOverloads.ts, 0, 50), Decl(exportDefaultInterfaceAndFunctionOverloads.ts, 1, 50), Decl(exportDefaultInterfaceAndFunctionOverloads.ts, 4, 1)) +>value : Symbol(value, Decl(exportDefaultInterfaceAndFunctionOverloads.ts, 1, 28)) + +export default function foo(value: string | number): string | number { +>foo : Symbol(foo, Decl(exportDefaultInterfaceAndFunctionOverloads.ts, 0, 0), Decl(exportDefaultInterfaceAndFunctionOverloads.ts, 0, 50), Decl(exportDefaultInterfaceAndFunctionOverloads.ts, 1, 50), Decl(exportDefaultInterfaceAndFunctionOverloads.ts, 4, 1)) +>value : Symbol(value, Decl(exportDefaultInterfaceAndFunctionOverloads.ts, 2, 28)) + + return 1 +} +export default interface Foo {} +>Foo : Symbol(foo, Decl(exportDefaultInterfaceAndFunctionOverloads.ts, 0, 0), Decl(exportDefaultInterfaceAndFunctionOverloads.ts, 0, 50), Decl(exportDefaultInterfaceAndFunctionOverloads.ts, 1, 50), Decl(exportDefaultInterfaceAndFunctionOverloads.ts, 4, 1)) + diff --git a/tests/baselines/reference/exportDefaultInterfaceAndFunctionOverloads.types b/tests/baselines/reference/exportDefaultInterfaceAndFunctionOverloads.types new file mode 100644 index 0000000000000..d92d7e083107f --- /dev/null +++ b/tests/baselines/reference/exportDefaultInterfaceAndFunctionOverloads.types @@ -0,0 +1,18 @@ +=== tests/cases/compiler/exportDefaultInterfaceAndFunctionOverloads.ts === +export default function foo(value: number): number +>foo : { (value: number): number; (value: string): string; } +>value : number + +export default function foo(value: string): string +>foo : { (value: number): number; (value: string): string; } +>value : string + +export default function foo(value: string | number): string | number { +>foo : { (value: number): number; (value: string): string; } +>value : string | number + + return 1 +>1 : 1 +} +export default interface Foo {} + diff --git a/tests/baselines/reference/exportDefaultInterfaceAndTwoFunctions.errors.txt b/tests/baselines/reference/exportDefaultInterfaceAndTwoFunctions.errors.txt index 9f1f731b6a76c..7b057d28ec9ff 100644 --- a/tests/baselines/reference/exportDefaultInterfaceAndTwoFunctions.errors.txt +++ b/tests/baselines/reference/exportDefaultInterfaceAndTwoFunctions.errors.txt @@ -1,13 +1,22 @@ +tests/cases/compiler/exportDefaultInterfaceAndTwoFunctions.ts(1,26): error TS2323: Cannot redeclare exported variable 'default'. +tests/cases/compiler/exportDefaultInterfaceAndTwoFunctions.ts(2,1): error TS2323: Cannot redeclare exported variable 'default'. tests/cases/compiler/exportDefaultInterfaceAndTwoFunctions.ts(2,1): error TS2393: Duplicate function implementation. +tests/cases/compiler/exportDefaultInterfaceAndTwoFunctions.ts(3,1): error TS2323: Cannot redeclare exported variable 'default'. tests/cases/compiler/exportDefaultInterfaceAndTwoFunctions.ts(3,1): error TS2393: Duplicate function implementation. -==== tests/cases/compiler/exportDefaultInterfaceAndTwoFunctions.ts (2 errors) ==== +==== tests/cases/compiler/exportDefaultInterfaceAndTwoFunctions.ts (5 errors) ==== export default interface A { a: string; } + ~ +!!! error TS2323: Cannot redeclare exported variable 'default'. export default function() { return 1; } ~~~~~~ +!!! error TS2323: Cannot redeclare exported variable 'default'. + ~~~~~~ !!! error TS2393: Duplicate function implementation. export default function() { return 2; } ~~~~~~ +!!! error TS2323: Cannot redeclare exported variable 'default'. + ~~~~~~ !!! error TS2393: Duplicate function implementation. \ No newline at end of file diff --git a/tests/baselines/reference/exportDefaultInterfaceClassAndFunctionOverloads.errors.txt b/tests/baselines/reference/exportDefaultInterfaceClassAndFunctionOverloads.errors.txt new file mode 100644 index 0000000000000..a59fa46a68756 --- /dev/null +++ b/tests/baselines/reference/exportDefaultInterfaceClassAndFunctionOverloads.errors.txt @@ -0,0 +1,30 @@ +tests/cases/compiler/exportDefaultInterfaceClassAndFunctionOverloads.ts(1,25): error TS2528: A module cannot have multiple default exports. +tests/cases/compiler/exportDefaultInterfaceClassAndFunctionOverloads.ts(2,25): error TS2528: A module cannot have multiple default exports. +tests/cases/compiler/exportDefaultInterfaceClassAndFunctionOverloads.ts(3,25): error TS2528: A module cannot have multiple default exports. +tests/cases/compiler/exportDefaultInterfaceClassAndFunctionOverloads.ts(7,16): error TS2528: A module cannot have multiple default exports. + + +==== tests/cases/compiler/exportDefaultInterfaceClassAndFunctionOverloads.ts (4 errors) ==== + export default function foo(value: number): number + ~~~ +!!! error TS2528: A module cannot have multiple default exports. +!!! related TS2753 tests/cases/compiler/exportDefaultInterfaceClassAndFunctionOverloads.ts:7:16: Another export default is here. + export default function foo(value: string): string + ~~~ +!!! error TS2528: A module cannot have multiple default exports. +!!! related TS6204 tests/cases/compiler/exportDefaultInterfaceClassAndFunctionOverloads.ts:7:16: and here. + export default function foo(value: string | number): string | number { + ~~~ +!!! error TS2528: A module cannot have multiple default exports. +!!! related TS6204 tests/cases/compiler/exportDefaultInterfaceClassAndFunctionOverloads.ts:7:16: and here. + return 1 + } + declare class Foo {} + export default Foo + ~~~ +!!! error TS2528: A module cannot have multiple default exports. +!!! related TS2752 tests/cases/compiler/exportDefaultInterfaceClassAndFunctionOverloads.ts:1:25: The first export default is here. +!!! related TS2752 tests/cases/compiler/exportDefaultInterfaceClassAndFunctionOverloads.ts:2:25: The first export default is here. +!!! related TS2752 tests/cases/compiler/exportDefaultInterfaceClassAndFunctionOverloads.ts:3:25: The first export default is here. + export default interface Bar {} + \ No newline at end of file diff --git a/tests/baselines/reference/exportDefaultInterfaceClassAndFunctionOverloads.js b/tests/baselines/reference/exportDefaultInterfaceClassAndFunctionOverloads.js new file mode 100644 index 0000000000000..74bfe8d2efdfc --- /dev/null +++ b/tests/baselines/reference/exportDefaultInterfaceClassAndFunctionOverloads.js @@ -0,0 +1,19 @@ +//// [exportDefaultInterfaceClassAndFunctionOverloads.ts] +export default function foo(value: number): number +export default function foo(value: string): string +export default function foo(value: string | number): string | number { + return 1 +} +declare class Foo {} +export default Foo +export default interface Bar {} + + +//// [exportDefaultInterfaceClassAndFunctionOverloads.js] +"use strict"; +exports.__esModule = true; +function foo(value) { + return 1; +} +exports["default"] = foo; +exports["default"] = Foo; diff --git a/tests/baselines/reference/exportDefaultInterfaceClassAndFunctionOverloads.symbols b/tests/baselines/reference/exportDefaultInterfaceClassAndFunctionOverloads.symbols new file mode 100644 index 0000000000000..df95cef283ed5 --- /dev/null +++ b/tests/baselines/reference/exportDefaultInterfaceClassAndFunctionOverloads.symbols @@ -0,0 +1,24 @@ +=== tests/cases/compiler/exportDefaultInterfaceClassAndFunctionOverloads.ts === +export default function foo(value: number): number +>foo : Symbol(foo, Decl(exportDefaultInterfaceClassAndFunctionOverloads.ts, 0, 0), Decl(exportDefaultInterfaceClassAndFunctionOverloads.ts, 0, 50), Decl(exportDefaultInterfaceClassAndFunctionOverloads.ts, 1, 50), Decl(exportDefaultInterfaceClassAndFunctionOverloads.ts, 6, 18)) +>value : Symbol(value, Decl(exportDefaultInterfaceClassAndFunctionOverloads.ts, 0, 28)) + +export default function foo(value: string): string +>foo : Symbol(foo, Decl(exportDefaultInterfaceClassAndFunctionOverloads.ts, 0, 0), Decl(exportDefaultInterfaceClassAndFunctionOverloads.ts, 0, 50), Decl(exportDefaultInterfaceClassAndFunctionOverloads.ts, 1, 50), Decl(exportDefaultInterfaceClassAndFunctionOverloads.ts, 6, 18)) +>value : Symbol(value, Decl(exportDefaultInterfaceClassAndFunctionOverloads.ts, 1, 28)) + +export default function foo(value: string | number): string | number { +>foo : Symbol(foo, Decl(exportDefaultInterfaceClassAndFunctionOverloads.ts, 0, 0), Decl(exportDefaultInterfaceClassAndFunctionOverloads.ts, 0, 50), Decl(exportDefaultInterfaceClassAndFunctionOverloads.ts, 1, 50), Decl(exportDefaultInterfaceClassAndFunctionOverloads.ts, 6, 18)) +>value : Symbol(value, Decl(exportDefaultInterfaceClassAndFunctionOverloads.ts, 2, 28)) + + return 1 +} +declare class Foo {} +>Foo : Symbol(Foo, Decl(exportDefaultInterfaceClassAndFunctionOverloads.ts, 4, 1)) + +export default Foo +>Foo : Symbol(Foo, Decl(exportDefaultInterfaceClassAndFunctionOverloads.ts, 4, 1)) + +export default interface Bar {} +>Bar : Symbol(foo, Decl(exportDefaultInterfaceClassAndFunctionOverloads.ts, 0, 0), Decl(exportDefaultInterfaceClassAndFunctionOverloads.ts, 0, 50), Decl(exportDefaultInterfaceClassAndFunctionOverloads.ts, 1, 50), Decl(exportDefaultInterfaceClassAndFunctionOverloads.ts, 6, 18)) + diff --git a/tests/baselines/reference/exportDefaultInterfaceClassAndFunctionOverloads.types b/tests/baselines/reference/exportDefaultInterfaceClassAndFunctionOverloads.types new file mode 100644 index 0000000000000..7d527120b2855 --- /dev/null +++ b/tests/baselines/reference/exportDefaultInterfaceClassAndFunctionOverloads.types @@ -0,0 +1,24 @@ +=== tests/cases/compiler/exportDefaultInterfaceClassAndFunctionOverloads.ts === +export default function foo(value: number): number +>foo : { (value: number): number; (value: string): string; } +>value : number + +export default function foo(value: string): string +>foo : { (value: number): number; (value: string): string; } +>value : string + +export default function foo(value: string | number): string | number { +>foo : { (value: number): number; (value: string): string; } +>value : string | number + + return 1 +>1 : 1 +} +declare class Foo {} +>Foo : Foo + +export default Foo +>Foo : Foo + +export default interface Bar {} + diff --git a/tests/baselines/reference/exportDefaultInterfaceClassAndValue.errors.txt b/tests/baselines/reference/exportDefaultInterfaceClassAndValue.errors.txt new file mode 100644 index 0000000000000..2630eca7c4dbe --- /dev/null +++ b/tests/baselines/reference/exportDefaultInterfaceClassAndValue.errors.txt @@ -0,0 +1,17 @@ +tests/cases/compiler/exportDefaultInterfaceClassAndValue.ts(2,1): error TS2323: Cannot redeclare exported variable 'default'. +tests/cases/compiler/exportDefaultInterfaceClassAndValue.ts(3,22): error TS2323: Cannot redeclare exported variable 'default'. +tests/cases/compiler/exportDefaultInterfaceClassAndValue.ts(4,26): error TS2323: Cannot redeclare exported variable 'default'. + + +==== tests/cases/compiler/exportDefaultInterfaceClassAndValue.ts (3 errors) ==== + const foo = 1 + export default foo + ~~~~~~~~~~~~~~~~~~ +!!! error TS2323: Cannot redeclare exported variable 'default'. + export default class Foo {} + ~~~ +!!! error TS2323: Cannot redeclare exported variable 'default'. + export default interface Foo {} + ~~~ +!!! error TS2323: Cannot redeclare exported variable 'default'. + \ No newline at end of file diff --git a/tests/baselines/reference/exportDefaultInterfaceClassAndValue.js b/tests/baselines/reference/exportDefaultInterfaceClassAndValue.js new file mode 100644 index 0000000000000..795b1a7688f46 --- /dev/null +++ b/tests/baselines/reference/exportDefaultInterfaceClassAndValue.js @@ -0,0 +1,18 @@ +//// [exportDefaultInterfaceClassAndValue.ts] +const foo = 1 +export default foo +export default class Foo {} +export default interface Foo {} + + +//// [exportDefaultInterfaceClassAndValue.js] +"use strict"; +exports.__esModule = true; +var foo = 1; +exports["default"] = foo; +var Foo = /** @class */ (function () { + function Foo() { + } + return Foo; +}()); +exports["default"] = Foo; diff --git a/tests/baselines/reference/exportDefaultInterfaceClassAndValue.symbols b/tests/baselines/reference/exportDefaultInterfaceClassAndValue.symbols new file mode 100644 index 0000000000000..6650f51f7b56b --- /dev/null +++ b/tests/baselines/reference/exportDefaultInterfaceClassAndValue.symbols @@ -0,0 +1,13 @@ +=== tests/cases/compiler/exportDefaultInterfaceClassAndValue.ts === +const foo = 1 +>foo : Symbol(foo, Decl(exportDefaultInterfaceClassAndValue.ts, 0, 5)) + +export default foo +>foo : Symbol(foo, Decl(exportDefaultInterfaceClassAndValue.ts, 0, 5)) + +export default class Foo {} +>Foo : Symbol(foo, Decl(exportDefaultInterfaceClassAndValue.ts, 0, 13), Decl(exportDefaultInterfaceClassAndValue.ts, 1, 18), Decl(exportDefaultInterfaceClassAndValue.ts, 2, 27)) + +export default interface Foo {} +>Foo : Symbol(foo, Decl(exportDefaultInterfaceClassAndValue.ts, 0, 13), Decl(exportDefaultInterfaceClassAndValue.ts, 1, 18), Decl(exportDefaultInterfaceClassAndValue.ts, 2, 27)) + diff --git a/tests/baselines/reference/exportDefaultInterfaceClassAndValue.types b/tests/baselines/reference/exportDefaultInterfaceClassAndValue.types new file mode 100644 index 0000000000000..9180e17e8f474 --- /dev/null +++ b/tests/baselines/reference/exportDefaultInterfaceClassAndValue.types @@ -0,0 +1,13 @@ +=== tests/cases/compiler/exportDefaultInterfaceClassAndValue.ts === +const foo = 1 +>foo : 1 +>1 : 1 + +export default foo +>foo : 1 + +export default class Foo {} +>Foo : foo + +export default interface Foo {} + diff --git a/tests/baselines/reference/exportDefaultTypeAndClass.errors.txt b/tests/baselines/reference/exportDefaultTypeAndClass.errors.txt new file mode 100644 index 0000000000000..6602907511445 --- /dev/null +++ b/tests/baselines/reference/exportDefaultTypeAndClass.errors.txt @@ -0,0 +1,15 @@ +tests/cases/compiler/exportDefaultTypeAndClass.ts(1,22): error TS2528: A module cannot have multiple default exports. +tests/cases/compiler/exportDefaultTypeAndClass.ts(3,16): error TS2528: A module cannot have multiple default exports. + + +==== tests/cases/compiler/exportDefaultTypeAndClass.ts (2 errors) ==== + export default class Foo {} + ~~~ +!!! error TS2528: A module cannot have multiple default exports. +!!! related TS2753 tests/cases/compiler/exportDefaultTypeAndClass.ts:3:16: Another export default is here. + type Bar = {} + export default Bar + ~~~ +!!! error TS2528: A module cannot have multiple default exports. +!!! related TS2752 tests/cases/compiler/exportDefaultTypeAndClass.ts:1:22: The first export default is here. + \ No newline at end of file diff --git a/tests/baselines/reference/exportDefaultTypeAndClass.js b/tests/baselines/reference/exportDefaultTypeAndClass.js new file mode 100644 index 0000000000000..90ef1136a5cc0 --- /dev/null +++ b/tests/baselines/reference/exportDefaultTypeAndClass.js @@ -0,0 +1,15 @@ +//// [exportDefaultTypeAndClass.ts] +export default class Foo {} +type Bar = {} +export default Bar + + +//// [exportDefaultTypeAndClass.js] +"use strict"; +exports.__esModule = true; +var Foo = /** @class */ (function () { + function Foo() { + } + return Foo; +}()); +exports["default"] = Foo; diff --git a/tests/baselines/reference/exportDefaultTypeAndClass.symbols b/tests/baselines/reference/exportDefaultTypeAndClass.symbols new file mode 100644 index 0000000000000..f461eb50ca03c --- /dev/null +++ b/tests/baselines/reference/exportDefaultTypeAndClass.symbols @@ -0,0 +1,10 @@ +=== tests/cases/compiler/exportDefaultTypeAndClass.ts === +export default class Foo {} +>Foo : Symbol(Foo, Decl(exportDefaultTypeAndClass.ts, 0, 0)) + +type Bar = {} +>Bar : Symbol(Bar, Decl(exportDefaultTypeAndClass.ts, 0, 27)) + +export default Bar +>Bar : Symbol(Bar, Decl(exportDefaultTypeAndClass.ts, 0, 27)) + diff --git a/tests/baselines/reference/exportDefaultTypeAndClass.types b/tests/baselines/reference/exportDefaultTypeAndClass.types new file mode 100644 index 0000000000000..273a650257c5e --- /dev/null +++ b/tests/baselines/reference/exportDefaultTypeAndClass.types @@ -0,0 +1,10 @@ +=== tests/cases/compiler/exportDefaultTypeAndClass.ts === +export default class Foo {} +>Foo : Foo + +type Bar = {} +>Bar : Bar + +export default Bar +>Bar : Bar + diff --git a/tests/baselines/reference/exportDefaultTypeAndFunctionOverloads.errors.txt b/tests/baselines/reference/exportDefaultTypeAndFunctionOverloads.errors.txt new file mode 100644 index 0000000000000..0e9d3b1b814d0 --- /dev/null +++ b/tests/baselines/reference/exportDefaultTypeAndFunctionOverloads.errors.txt @@ -0,0 +1,29 @@ +tests/cases/compiler/exportDefaultTypeAndFunctionOverloads.ts(1,25): error TS2528: A module cannot have multiple default exports. +tests/cases/compiler/exportDefaultTypeAndFunctionOverloads.ts(2,25): error TS2528: A module cannot have multiple default exports. +tests/cases/compiler/exportDefaultTypeAndFunctionOverloads.ts(3,25): error TS2528: A module cannot have multiple default exports. +tests/cases/compiler/exportDefaultTypeAndFunctionOverloads.ts(7,16): error TS2528: A module cannot have multiple default exports. + + +==== tests/cases/compiler/exportDefaultTypeAndFunctionOverloads.ts (4 errors) ==== + export default function foo(value: number): number + ~~~ +!!! error TS2528: A module cannot have multiple default exports. +!!! related TS2753 tests/cases/compiler/exportDefaultTypeAndFunctionOverloads.ts:7:16: Another export default is here. + export default function foo(value: string): string + ~~~ +!!! error TS2528: A module cannot have multiple default exports. +!!! related TS6204 tests/cases/compiler/exportDefaultTypeAndFunctionOverloads.ts:7:16: and here. + export default function foo(value: string | number): string | number { + ~~~ +!!! error TS2528: A module cannot have multiple default exports. +!!! related TS6204 tests/cases/compiler/exportDefaultTypeAndFunctionOverloads.ts:7:16: and here. + return 1 + } + type Foo = {} + export default Foo + ~~~ +!!! error TS2528: A module cannot have multiple default exports. +!!! related TS2752 tests/cases/compiler/exportDefaultTypeAndFunctionOverloads.ts:1:25: The first export default is here. +!!! related TS2752 tests/cases/compiler/exportDefaultTypeAndFunctionOverloads.ts:2:25: The first export default is here. +!!! related TS2752 tests/cases/compiler/exportDefaultTypeAndFunctionOverloads.ts:3:25: The first export default is here. + \ No newline at end of file diff --git a/tests/baselines/reference/exportDefaultTypeAndFunctionOverloads.js b/tests/baselines/reference/exportDefaultTypeAndFunctionOverloads.js new file mode 100644 index 0000000000000..8758374589089 --- /dev/null +++ b/tests/baselines/reference/exportDefaultTypeAndFunctionOverloads.js @@ -0,0 +1,17 @@ +//// [exportDefaultTypeAndFunctionOverloads.ts] +export default function foo(value: number): number +export default function foo(value: string): string +export default function foo(value: string | number): string | number { + return 1 +} +type Foo = {} +export default Foo + + +//// [exportDefaultTypeAndFunctionOverloads.js] +"use strict"; +exports.__esModule = true; +function foo(value) { + return 1; +} +exports["default"] = foo; diff --git a/tests/baselines/reference/exportDefaultTypeAndFunctionOverloads.symbols b/tests/baselines/reference/exportDefaultTypeAndFunctionOverloads.symbols new file mode 100644 index 0000000000000..5c09cc3718bf3 --- /dev/null +++ b/tests/baselines/reference/exportDefaultTypeAndFunctionOverloads.symbols @@ -0,0 +1,21 @@ +=== tests/cases/compiler/exportDefaultTypeAndFunctionOverloads.ts === +export default function foo(value: number): number +>foo : Symbol(foo, Decl(exportDefaultTypeAndFunctionOverloads.ts, 0, 0), Decl(exportDefaultTypeAndFunctionOverloads.ts, 0, 50), Decl(exportDefaultTypeAndFunctionOverloads.ts, 1, 50)) +>value : Symbol(value, Decl(exportDefaultTypeAndFunctionOverloads.ts, 0, 28)) + +export default function foo(value: string): string +>foo : Symbol(foo, Decl(exportDefaultTypeAndFunctionOverloads.ts, 0, 0), Decl(exportDefaultTypeAndFunctionOverloads.ts, 0, 50), Decl(exportDefaultTypeAndFunctionOverloads.ts, 1, 50)) +>value : Symbol(value, Decl(exportDefaultTypeAndFunctionOverloads.ts, 1, 28)) + +export default function foo(value: string | number): string | number { +>foo : Symbol(foo, Decl(exportDefaultTypeAndFunctionOverloads.ts, 0, 0), Decl(exportDefaultTypeAndFunctionOverloads.ts, 0, 50), Decl(exportDefaultTypeAndFunctionOverloads.ts, 1, 50)) +>value : Symbol(value, Decl(exportDefaultTypeAndFunctionOverloads.ts, 2, 28)) + + return 1 +} +type Foo = {} +>Foo : Symbol(Foo, Decl(exportDefaultTypeAndFunctionOverloads.ts, 4, 1)) + +export default Foo +>Foo : Symbol(Foo, Decl(exportDefaultTypeAndFunctionOverloads.ts, 4, 1)) + diff --git a/tests/baselines/reference/exportDefaultTypeAndFunctionOverloads.types b/tests/baselines/reference/exportDefaultTypeAndFunctionOverloads.types new file mode 100644 index 0000000000000..c014cddfa250e --- /dev/null +++ b/tests/baselines/reference/exportDefaultTypeAndFunctionOverloads.types @@ -0,0 +1,22 @@ +=== tests/cases/compiler/exportDefaultTypeAndFunctionOverloads.ts === +export default function foo(value: number): number +>foo : { (value: number): number; (value: string): string; } +>value : number + +export default function foo(value: string): string +>foo : { (value: number): number; (value: string): string; } +>value : string + +export default function foo(value: string | number): string | number { +>foo : { (value: number): number; (value: string): string; } +>value : string | number + + return 1 +>1 : 1 +} +type Foo = {} +>Foo : Foo + +export default Foo +>Foo : Foo + diff --git a/tests/baselines/reference/exportDefaultTypeClassAndValue.errors.txt b/tests/baselines/reference/exportDefaultTypeClassAndValue.errors.txt new file mode 100644 index 0000000000000..396271376f6e7 --- /dev/null +++ b/tests/baselines/reference/exportDefaultTypeClassAndValue.errors.txt @@ -0,0 +1,28 @@ +tests/cases/compiler/exportDefaultTypeClassAndValue.ts(2,1): error TS2323: Cannot redeclare exported variable 'default'. +tests/cases/compiler/exportDefaultTypeClassAndValue.ts(2,16): error TS2528: A module cannot have multiple default exports. +tests/cases/compiler/exportDefaultTypeClassAndValue.ts(3,22): error TS2323: Cannot redeclare exported variable 'default'. +tests/cases/compiler/exportDefaultTypeClassAndValue.ts(3,22): error TS2528: A module cannot have multiple default exports. +tests/cases/compiler/exportDefaultTypeClassAndValue.ts(5,16): error TS2528: A module cannot have multiple default exports. + + +==== tests/cases/compiler/exportDefaultTypeClassAndValue.ts (5 errors) ==== + const foo = 1 + export default foo + ~~~~~~~~~~~~~~~~~~ +!!! error TS2323: Cannot redeclare exported variable 'default'. + ~~~ +!!! error TS2528: A module cannot have multiple default exports. +!!! related TS2753 tests/cases/compiler/exportDefaultTypeClassAndValue.ts:5:16: Another export default is here. + export default class Foo {} + ~~~ +!!! error TS2323: Cannot redeclare exported variable 'default'. + ~~~ +!!! error TS2528: A module cannot have multiple default exports. +!!! related TS6204 tests/cases/compiler/exportDefaultTypeClassAndValue.ts:5:16: and here. + type Bar = {} + export default Bar + ~~~ +!!! error TS2528: A module cannot have multiple default exports. +!!! related TS2752 tests/cases/compiler/exportDefaultTypeClassAndValue.ts:2:16: The first export default is here. +!!! related TS2752 tests/cases/compiler/exportDefaultTypeClassAndValue.ts:3:22: The first export default is here. + \ No newline at end of file diff --git a/tests/baselines/reference/exportDefaultTypeClassAndValue.js b/tests/baselines/reference/exportDefaultTypeClassAndValue.js new file mode 100644 index 0000000000000..18a60bfb6f6b6 --- /dev/null +++ b/tests/baselines/reference/exportDefaultTypeClassAndValue.js @@ -0,0 +1,19 @@ +//// [exportDefaultTypeClassAndValue.ts] +const foo = 1 +export default foo +export default class Foo {} +type Bar = {} +export default Bar + + +//// [exportDefaultTypeClassAndValue.js] +"use strict"; +exports.__esModule = true; +var foo = 1; +exports["default"] = foo; +var Foo = /** @class */ (function () { + function Foo() { + } + return Foo; +}()); +exports["default"] = Foo; diff --git a/tests/baselines/reference/exportDefaultTypeClassAndValue.symbols b/tests/baselines/reference/exportDefaultTypeClassAndValue.symbols new file mode 100644 index 0000000000000..4852fd5ef9bd2 --- /dev/null +++ b/tests/baselines/reference/exportDefaultTypeClassAndValue.symbols @@ -0,0 +1,16 @@ +=== tests/cases/compiler/exportDefaultTypeClassAndValue.ts === +const foo = 1 +>foo : Symbol(foo, Decl(exportDefaultTypeClassAndValue.ts, 0, 5)) + +export default foo +>foo : Symbol(foo, Decl(exportDefaultTypeClassAndValue.ts, 0, 5)) + +export default class Foo {} +>Foo : Symbol(foo, Decl(exportDefaultTypeClassAndValue.ts, 0, 13), Decl(exportDefaultTypeClassAndValue.ts, 1, 18)) + +type Bar = {} +>Bar : Symbol(Bar, Decl(exportDefaultTypeClassAndValue.ts, 2, 27)) + +export default Bar +>Bar : Symbol(Bar, Decl(exportDefaultTypeClassAndValue.ts, 2, 27)) + diff --git a/tests/baselines/reference/exportDefaultTypeClassAndValue.types b/tests/baselines/reference/exportDefaultTypeClassAndValue.types new file mode 100644 index 0000000000000..2896db94a5ebb --- /dev/null +++ b/tests/baselines/reference/exportDefaultTypeClassAndValue.types @@ -0,0 +1,17 @@ +=== tests/cases/compiler/exportDefaultTypeClassAndValue.ts === +const foo = 1 +>foo : 1 +>1 : 1 + +export default foo +>foo : 1 + +export default class Foo {} +>Foo : foo + +type Bar = {} +>Bar : Bar + +export default Bar +>Bar : Bar + diff --git a/tests/baselines/reference/exportImportCanSubstituteConstEnumForValue.js b/tests/baselines/reference/exportImportCanSubstituteConstEnumForValue.js index 961d3ccd500b9..24984e90296ee 100644 --- a/tests/baselines/reference/exportImportCanSubstituteConstEnumForValue.js +++ b/tests/baselines/reference/exportImportCanSubstituteConstEnumForValue.js @@ -77,9 +77,9 @@ var MsPortalFx; var SomeUsagesOfTheseConsts = /** @class */ (function () { function SomeUsagesOfTheseConsts() { // these do get replaced by the const value - var value1 = 1 /* Cancel */; + var value1 = 1 /* ReExportedEnum.Cancel */; console.log(value1); - var value2 = 2 /* OKCancel */; + var value2 = 2 /* DialogButtons.OKCancel */; console.log(value2); } return SomeUsagesOfTheseConsts; diff --git a/tests/baselines/reference/exportInterfaceClassAndValue.errors.txt b/tests/baselines/reference/exportInterfaceClassAndValue.errors.txt new file mode 100644 index 0000000000000..cd971f7157bd8 --- /dev/null +++ b/tests/baselines/reference/exportInterfaceClassAndValue.errors.txt @@ -0,0 +1,13 @@ +tests/cases/compiler/exportInterfaceClassAndValue.ts(1,14): error TS2451: Cannot redeclare block-scoped variable 'foo'. +tests/cases/compiler/exportInterfaceClassAndValue.ts(2,22): error TS2451: Cannot redeclare block-scoped variable 'foo'. + + +==== tests/cases/compiler/exportInterfaceClassAndValue.ts (2 errors) ==== + export const foo = 1 + ~~~ +!!! error TS2451: Cannot redeclare block-scoped variable 'foo'. + export declare class foo {} + ~~~ +!!! error TS2451: Cannot redeclare block-scoped variable 'foo'. + export interface foo {} + \ No newline at end of file diff --git a/tests/baselines/reference/exportInterfaceClassAndValue.js b/tests/baselines/reference/exportInterfaceClassAndValue.js new file mode 100644 index 0000000000000..2ad0c983f16d5 --- /dev/null +++ b/tests/baselines/reference/exportInterfaceClassAndValue.js @@ -0,0 +1,11 @@ +//// [exportInterfaceClassAndValue.ts] +export const foo = 1 +export declare class foo {} +export interface foo {} + + +//// [exportInterfaceClassAndValue.js] +"use strict"; +exports.__esModule = true; +exports.foo = void 0; +exports.foo = 1; diff --git a/tests/baselines/reference/exportInterfaceClassAndValue.symbols b/tests/baselines/reference/exportInterfaceClassAndValue.symbols new file mode 100644 index 0000000000000..90580910a8df0 --- /dev/null +++ b/tests/baselines/reference/exportInterfaceClassAndValue.symbols @@ -0,0 +1,10 @@ +=== tests/cases/compiler/exportInterfaceClassAndValue.ts === +export const foo = 1 +>foo : Symbol(foo, Decl(exportInterfaceClassAndValue.ts, 0, 12), Decl(exportInterfaceClassAndValue.ts, 1, 27)) + +export declare class foo {} +>foo : Symbol(foo, Decl(exportInterfaceClassAndValue.ts, 0, 20)) + +export interface foo {} +>foo : Symbol(foo, Decl(exportInterfaceClassAndValue.ts, 0, 12), Decl(exportInterfaceClassAndValue.ts, 1, 27)) + diff --git a/tests/baselines/reference/exportInterfaceClassAndValue.types b/tests/baselines/reference/exportInterfaceClassAndValue.types new file mode 100644 index 0000000000000..b4a75da6c6e00 --- /dev/null +++ b/tests/baselines/reference/exportInterfaceClassAndValue.types @@ -0,0 +1,10 @@ +=== tests/cases/compiler/exportInterfaceClassAndValue.ts === +export const foo = 1 +>foo : 1 +>1 : 1 + +export declare class foo {} +>foo : import("tests/cases/compiler/exportInterfaceClassAndValue").foo + +export interface foo {} + diff --git a/tests/baselines/reference/exportInterfaceClassAndValueWithDuplicatesInImportList.errors.txt b/tests/baselines/reference/exportInterfaceClassAndValueWithDuplicatesInImportList.errors.txt new file mode 100644 index 0000000000000..6c145b09f9e69 --- /dev/null +++ b/tests/baselines/reference/exportInterfaceClassAndValueWithDuplicatesInImportList.errors.txt @@ -0,0 +1,15 @@ +tests/cases/compiler/exportInterfaceClassAndValueWithDuplicatesInImportList.ts(5,14): error TS2300: Duplicate identifier 'Foo'. +tests/cases/compiler/exportInterfaceClassAndValueWithDuplicatesInImportList.ts(5,19): error TS2300: Duplicate identifier 'Foo'. + + +==== tests/cases/compiler/exportInterfaceClassAndValueWithDuplicatesInImportList.ts (2 errors) ==== + const foo = 1 + class Foo {} + interface Foo {} + + export {foo, Foo, Foo} + ~~~ +!!! error TS2300: Duplicate identifier 'Foo'. + ~~~ +!!! error TS2300: Duplicate identifier 'Foo'. + \ No newline at end of file diff --git a/tests/baselines/reference/exportInterfaceClassAndValueWithDuplicatesInImportList.js b/tests/baselines/reference/exportInterfaceClassAndValueWithDuplicatesInImportList.js new file mode 100644 index 0000000000000..6aa35e13f3c1a --- /dev/null +++ b/tests/baselines/reference/exportInterfaceClassAndValueWithDuplicatesInImportList.js @@ -0,0 +1,20 @@ +//// [exportInterfaceClassAndValueWithDuplicatesInImportList.ts] +const foo = 1 +class Foo {} +interface Foo {} + +export {foo, Foo, Foo} + + +//// [exportInterfaceClassAndValueWithDuplicatesInImportList.js] +"use strict"; +exports.__esModule = true; +exports.Foo = exports.foo = void 0; +var foo = 1; +exports.foo = foo; +var Foo = /** @class */ (function () { + function Foo() { + } + return Foo; +}()); +exports.Foo = Foo; diff --git a/tests/baselines/reference/exportInterfaceClassAndValueWithDuplicatesInImportList.symbols b/tests/baselines/reference/exportInterfaceClassAndValueWithDuplicatesInImportList.symbols new file mode 100644 index 0000000000000..74f3434f0dd8b --- /dev/null +++ b/tests/baselines/reference/exportInterfaceClassAndValueWithDuplicatesInImportList.symbols @@ -0,0 +1,15 @@ +=== tests/cases/compiler/exportInterfaceClassAndValueWithDuplicatesInImportList.ts === +const foo = 1 +>foo : Symbol(foo, Decl(exportInterfaceClassAndValueWithDuplicatesInImportList.ts, 0, 5)) + +class Foo {} +>Foo : Symbol(Foo, Decl(exportInterfaceClassAndValueWithDuplicatesInImportList.ts, 0, 13), Decl(exportInterfaceClassAndValueWithDuplicatesInImportList.ts, 1, 12)) + +interface Foo {} +>Foo : Symbol(Foo, Decl(exportInterfaceClassAndValueWithDuplicatesInImportList.ts, 0, 13), Decl(exportInterfaceClassAndValueWithDuplicatesInImportList.ts, 1, 12)) + +export {foo, Foo, Foo} +>foo : Symbol(foo, Decl(exportInterfaceClassAndValueWithDuplicatesInImportList.ts, 4, 8)) +>Foo : Symbol(Foo, Decl(exportInterfaceClassAndValueWithDuplicatesInImportList.ts, 4, 12)) +>Foo : Symbol(Foo, Decl(exportInterfaceClassAndValueWithDuplicatesInImportList.ts, 4, 17)) + diff --git a/tests/baselines/reference/exportInterfaceClassAndValueWithDuplicatesInImportList.types b/tests/baselines/reference/exportInterfaceClassAndValueWithDuplicatesInImportList.types new file mode 100644 index 0000000000000..313eb1f1af4fd --- /dev/null +++ b/tests/baselines/reference/exportInterfaceClassAndValueWithDuplicatesInImportList.types @@ -0,0 +1,15 @@ +=== tests/cases/compiler/exportInterfaceClassAndValueWithDuplicatesInImportList.ts === +const foo = 1 +>foo : 1 +>1 : 1 + +class Foo {} +>Foo : Foo + +interface Foo {} + +export {foo, Foo, Foo} +>foo : 1 +>Foo : typeof Foo +>Foo : typeof Foo + diff --git a/tests/baselines/reference/exportNamespace1.js b/tests/baselines/reference/exportNamespace1.js index 0ff7ef64173cf..8b8132c95d749 100644 --- a/tests/baselines/reference/exportNamespace1.js +++ b/tests/baselines/reference/exportNamespace1.js @@ -31,7 +31,11 @@ exports.__esModule = true; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/exportSpecifiers_js.errors.txt b/tests/baselines/reference/exportSpecifiers_js.errors.txt new file mode 100644 index 0000000000000..7d8fdd6fe4a41 --- /dev/null +++ b/tests/baselines/reference/exportSpecifiers_js.errors.txt @@ -0,0 +1,9 @@ +tests/cases/conformance/externalModules/typeOnly/a.js(2,10): error TS8006: 'export...type' declarations can only be used in TypeScript files. + + +==== tests/cases/conformance/externalModules/typeOnly/a.js (1 errors) ==== + const foo = 0; + export { type foo }; + ~~~~~~~~ +!!! error TS8006: 'export...type' declarations can only be used in TypeScript files. + \ No newline at end of file diff --git a/tests/baselines/reference/exportSpecifiers_js.symbols b/tests/baselines/reference/exportSpecifiers_js.symbols new file mode 100644 index 0000000000000..0652aca8a1cd7 --- /dev/null +++ b/tests/baselines/reference/exportSpecifiers_js.symbols @@ -0,0 +1,7 @@ +=== tests/cases/conformance/externalModules/typeOnly/a.js === +const foo = 0; +>foo : Symbol(foo, Decl(a.js, 0, 5)) + +export { type foo }; +>foo : Symbol(foo, Decl(a.js, 1, 8)) + diff --git a/tests/baselines/reference/exportSpecifiers_js.types b/tests/baselines/reference/exportSpecifiers_js.types new file mode 100644 index 0000000000000..0637788c0599f --- /dev/null +++ b/tests/baselines/reference/exportSpecifiers_js.types @@ -0,0 +1,8 @@ +=== tests/cases/conformance/externalModules/typeOnly/a.js === +const foo = 0; +>foo : 0 +>0 : 0 + +export { type foo }; +>foo : 0 + diff --git a/tests/baselines/reference/exportStar-amd.js b/tests/baselines/reference/exportStar-amd.js index f209cc9974416..889b4bd6a8e12 100644 --- a/tests/baselines/reference/exportStar-amd.js +++ b/tests/baselines/reference/exportStar-amd.js @@ -60,7 +60,11 @@ define(["require", "exports"], function (require, exports) { //// [t4.js] var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/exportStar.js b/tests/baselines/reference/exportStar.js index 7b0feb3675e17..e92f6ff952e7f 100644 --- a/tests/baselines/reference/exportStar.js +++ b/tests/baselines/reference/exportStar.js @@ -55,7 +55,11 @@ exports.z = z; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/exportStarForValues.js b/tests/baselines/reference/exportStarForValues.js index d361304a7db27..ed79f9a04ff03 100644 --- a/tests/baselines/reference/exportStarForValues.js +++ b/tests/baselines/reference/exportStarForValues.js @@ -15,7 +15,11 @@ define(["require", "exports"], function (require, exports) { //// [file2.js] var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/exportStarForValues2.js b/tests/baselines/reference/exportStarForValues2.js index afa4f5a4481f6..a306b784bf779 100644 --- a/tests/baselines/reference/exportStarForValues2.js +++ b/tests/baselines/reference/exportStarForValues2.js @@ -19,7 +19,11 @@ define(["require", "exports"], function (require, exports) { //// [file2.js] var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -36,7 +40,11 @@ define(["require", "exports", "file1"], function (require, exports, file1_1) { //// [file3.js] var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/exportStarForValues3.js b/tests/baselines/reference/exportStarForValues3.js index 35e5b40ac167e..ece561e6c9b2e 100644 --- a/tests/baselines/reference/exportStarForValues3.js +++ b/tests/baselines/reference/exportStarForValues3.js @@ -31,7 +31,11 @@ define(["require", "exports"], function (require, exports) { //// [file2.js] var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -48,7 +52,11 @@ define(["require", "exports", "file1"], function (require, exports, file1_1) { //// [file3.js] var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -65,7 +73,11 @@ define(["require", "exports", "file1"], function (require, exports, file1_1) { //// [file4.js] var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -83,7 +95,11 @@ define(["require", "exports", "file2", "file3"], function (require, exports, fil //// [file5.js] var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/exportStarForValues4.js b/tests/baselines/reference/exportStarForValues4.js index 0b7f5aa3b969d..ea402a69a14d3 100644 --- a/tests/baselines/reference/exportStarForValues4.js +++ b/tests/baselines/reference/exportStarForValues4.js @@ -23,7 +23,11 @@ define(["require", "exports"], function (require, exports) { //// [file3.js] var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -40,7 +44,11 @@ define(["require", "exports", "file2"], function (require, exports, file2_1) { //// [file2.js] var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/exportStarForValues5.js b/tests/baselines/reference/exportStarForValues5.js index 200bb38188e1c..8c65af7a99484 100644 --- a/tests/baselines/reference/exportStarForValues5.js +++ b/tests/baselines/reference/exportStarForValues5.js @@ -15,7 +15,11 @@ define(["require", "exports"], function (require, exports) { //// [file2.js] var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/exportStarForValues7.js b/tests/baselines/reference/exportStarForValues7.js index db443acd80ee8..b6be36e5004f7 100644 --- a/tests/baselines/reference/exportStarForValues7.js +++ b/tests/baselines/reference/exportStarForValues7.js @@ -19,7 +19,11 @@ define(["require", "exports"], function (require, exports) { //// [file2.js] var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -37,7 +41,11 @@ define(["require", "exports", "file1"], function (require, exports, file1_1) { //// [file3.js] var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/exportStarForValues8.js b/tests/baselines/reference/exportStarForValues8.js index ad8e183a19ee5..e93aa8d2d733a 100644 --- a/tests/baselines/reference/exportStarForValues8.js +++ b/tests/baselines/reference/exportStarForValues8.js @@ -31,7 +31,11 @@ define(["require", "exports"], function (require, exports) { //// [file2.js] var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -49,7 +53,11 @@ define(["require", "exports", "file1"], function (require, exports, file1_1) { //// [file3.js] var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -67,7 +75,11 @@ define(["require", "exports", "file1"], function (require, exports, file1_1) { //// [file4.js] var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -86,7 +98,11 @@ define(["require", "exports", "file2", "file3"], function (require, exports, fil //// [file5.js] var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/exportStarForValues9.js b/tests/baselines/reference/exportStarForValues9.js index 8eb91c032fa0a..e9cff883be8fc 100644 --- a/tests/baselines/reference/exportStarForValues9.js +++ b/tests/baselines/reference/exportStarForValues9.js @@ -23,7 +23,11 @@ define(["require", "exports"], function (require, exports) { //// [file3.js] var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -41,7 +45,11 @@ define(["require", "exports", "file2"], function (require, exports, file2_1) { //// [file2.js] var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/exportStarFromEmptyModule.js b/tests/baselines/reference/exportStarFromEmptyModule.js index 1b5484fa76d9b..82af70c1283d8 100644 --- a/tests/baselines/reference/exportStarFromEmptyModule.js +++ b/tests/baselines/reference/exportStarFromEmptyModule.js @@ -38,7 +38,11 @@ exports.A = A; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/exportStarNotElided.js b/tests/baselines/reference/exportStarNotElided.js index 6bdbefe6a20a8..1cfcdf713516d 100644 --- a/tests/baselines/reference/exportStarNotElided.js +++ b/tests/baselines/reference/exportStarNotElided.js @@ -26,7 +26,11 @@ exports.register = register; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/exportTwoInterfacesWithSameName.js b/tests/baselines/reference/exportTwoInterfacesWithSameName.js new file mode 100644 index 0000000000000..06ae4b99a7e93 --- /dev/null +++ b/tests/baselines/reference/exportTwoInterfacesWithSameName.js @@ -0,0 +1,8 @@ +//// [exportTwoInterfacesWithSameName.ts] +export interface I {} +export interface I {} + + +//// [exportTwoInterfacesWithSameName.js] +"use strict"; +exports.__esModule = true; diff --git a/tests/baselines/reference/exportTwoInterfacesWithSameName.symbols b/tests/baselines/reference/exportTwoInterfacesWithSameName.symbols new file mode 100644 index 0000000000000..4555053e70ec5 --- /dev/null +++ b/tests/baselines/reference/exportTwoInterfacesWithSameName.symbols @@ -0,0 +1,7 @@ +=== tests/cases/compiler/exportTwoInterfacesWithSameName.ts === +export interface I {} +>I : Symbol(I, Decl(exportTwoInterfacesWithSameName.ts, 0, 0), Decl(exportTwoInterfacesWithSameName.ts, 0, 21)) + +export interface I {} +>I : Symbol(I, Decl(exportTwoInterfacesWithSameName.ts, 0, 0), Decl(exportTwoInterfacesWithSameName.ts, 0, 21)) + diff --git a/tests/baselines/reference/exportTwoInterfacesWithSameName.types b/tests/baselines/reference/exportTwoInterfacesWithSameName.types new file mode 100644 index 0000000000000..4865183ebc889 --- /dev/null +++ b/tests/baselines/reference/exportTwoInterfacesWithSameName.types @@ -0,0 +1,5 @@ +=== tests/cases/compiler/exportTwoInterfacesWithSameName.ts === +export interface I {} +No type information for this code.export interface I {} +No type information for this code. +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/exportsAndImports1.js b/tests/baselines/reference/exportsAndImports1.js index 5c4b529131f8f..7de4f23c5918a 100644 --- a/tests/baselines/reference/exportsAndImports1.js +++ b/tests/baselines/reference/exportsAndImports1.js @@ -64,7 +64,11 @@ exports.a = a; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/exportsAndImports2.js b/tests/baselines/reference/exportsAndImports2.js index aaaed576b6a53..74de8ba80d3fc 100644 --- a/tests/baselines/reference/exportsAndImports2.js +++ b/tests/baselines/reference/exportsAndImports2.js @@ -22,7 +22,11 @@ exports.y = "y"; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/exportsAndImports3.js b/tests/baselines/reference/exportsAndImports3.js index f0f53fc351de5..b94c815567da9 100644 --- a/tests/baselines/reference/exportsAndImports3.js +++ b/tests/baselines/reference/exportsAndImports3.js @@ -66,7 +66,11 @@ exports.a1 = exports.a; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/extendArray.errors.txt b/tests/baselines/reference/extendArray.errors.txt index 956d7a634b9d2..c9a03c2f64a08 100644 --- a/tests/baselines/reference/extendArray.errors.txt +++ b/tests/baselines/reference/extendArray.errors.txt @@ -12,10 +12,10 @@ tests/cases/compiler/extendArray.ts(7,32): error TS2552: Cannot find name '_elem collect(fn:(e:_element) => _element[]) : any[]; ~~~~~~~~ !!! error TS2552: Cannot find name '_element'. Did you mean 'Element'? -!!! related TS2728 /.ts/lib.dom.d.ts:4792:13: 'Element' is declared here. +!!! related TS2728 /.ts/lib.dom.d.ts:4877:13: 'Element' is declared here. ~~~~~~~~ !!! error TS2552: Cannot find name '_element'. Did you mean 'Element'? -!!! related TS2728 /.ts/lib.dom.d.ts:4792:13: 'Element' is declared here. +!!! related TS2728 /.ts/lib.dom.d.ts:4877:13: 'Element' is declared here. } } diff --git a/tests/baselines/reference/externModule.errors.txt b/tests/baselines/reference/externModule.errors.txt index 616371995b236..db7d505bba102 100644 --- a/tests/baselines/reference/externModule.errors.txt +++ b/tests/baselines/reference/externModule.errors.txt @@ -66,20 +66,20 @@ tests/cases/compiler/externModule.ts(37,3): error TS2552: Cannot find name 'XDat var d=new XDate(); ~~~~~ !!! error TS2552: Cannot find name 'XDate'. Did you mean 'Date'? -!!! related TS2728 /.ts/lib.es5.d.ts:927:13: 'Date' is declared here. +!!! related TS2728 /.ts/lib.es5.d.ts:933:13: 'Date' is declared here. d.getDay(); d=new XDate(1978,2); ~~~~~ !!! error TS2552: Cannot find name 'XDate'. Did you mean 'Date'? -!!! related TS2728 /.ts/lib.es5.d.ts:927:13: 'Date' is declared here. +!!! related TS2728 /.ts/lib.es5.d.ts:933:13: 'Date' is declared here. d.getXDate(); var n=XDate.parse("3/2/2004"); ~~~~~ !!! error TS2552: Cannot find name 'XDate'. Did you mean 'Date'? -!!! related TS2728 /.ts/lib.es5.d.ts:927:13: 'Date' is declared here. +!!! related TS2728 /.ts/lib.es5.d.ts:933:13: 'Date' is declared here. n=XDate.UTC(1964,2,1); ~~~~~ !!! error TS2552: Cannot find name 'XDate'. Did you mean 'Date'? -!!! related TS2728 /.ts/lib.es5.d.ts:927:13: 'Date' is declared here. +!!! related TS2728 /.ts/lib.es5.d.ts:933:13: 'Date' is declared here. \ No newline at end of file diff --git a/tests/baselines/reference/extractConstant/extractConstant_PropertyName.js b/tests/baselines/reference/extractConstant/extractConstant_PropertyName.js new file mode 100644 index 0000000000000..430a117c338e4 --- /dev/null +++ b/tests/baselines/reference/extractConstant/extractConstant_PropertyName.js @@ -0,0 +1,5 @@ +// ==ORIGINAL== +/*[#|*/x.y/*|]*/.z(); +// ==SCOPE::Extract to constant in enclosing scope== +const y = x.y; +/*RENAME*/y.z(); \ No newline at end of file diff --git a/tests/baselines/reference/extractConstant/extractConstant_PropertyName.ts b/tests/baselines/reference/extractConstant/extractConstant_PropertyName.ts new file mode 100644 index 0000000000000..430a117c338e4 --- /dev/null +++ b/tests/baselines/reference/extractConstant/extractConstant_PropertyName.ts @@ -0,0 +1,5 @@ +// ==ORIGINAL== +/*[#|*/x.y/*|]*/.z(); +// ==SCOPE::Extract to constant in enclosing scope== +const y = x.y; +/*RENAME*/y.z(); \ No newline at end of file diff --git a/tests/baselines/reference/extractConstant/extractConstant_PropertyName_ExistingName.js b/tests/baselines/reference/extractConstant/extractConstant_PropertyName_ExistingName.js new file mode 100644 index 0000000000000..b1e5fd385ba30 --- /dev/null +++ b/tests/baselines/reference/extractConstant/extractConstant_PropertyName_ExistingName.js @@ -0,0 +1,7 @@ +// ==ORIGINAL== +let y; +/*[#|*/x.y/*|]*/.z(); +// ==SCOPE::Extract to constant in enclosing scope== +let y; +const newLocal = x.y; +/*RENAME*/newLocal.z(); \ No newline at end of file diff --git a/tests/baselines/reference/extractConstant/extractConstant_PropertyName_ExistingName.ts b/tests/baselines/reference/extractConstant/extractConstant_PropertyName_ExistingName.ts new file mode 100644 index 0000000000000..b1e5fd385ba30 --- /dev/null +++ b/tests/baselines/reference/extractConstant/extractConstant_PropertyName_ExistingName.ts @@ -0,0 +1,7 @@ +// ==ORIGINAL== +let y; +/*[#|*/x.y/*|]*/.z(); +// ==SCOPE::Extract to constant in enclosing scope== +let y; +const newLocal = x.y; +/*RENAME*/newLocal.z(); \ No newline at end of file diff --git a/tests/baselines/reference/extractConstant/extractConstant_PropertyName_Keyword.js b/tests/baselines/reference/extractConstant/extractConstant_PropertyName_Keyword.js new file mode 100644 index 0000000000000..ae9029dd6df88 --- /dev/null +++ b/tests/baselines/reference/extractConstant/extractConstant_PropertyName_Keyword.js @@ -0,0 +1,5 @@ +// ==ORIGINAL== +/*[#|*/x.if/*|]*/.z(); +// ==SCOPE::Extract to constant in enclosing scope== +const newLocal = x.if; +/*RENAME*/newLocal.z(); \ No newline at end of file diff --git a/tests/baselines/reference/extractConstant/extractConstant_PropertyName_Keyword.ts b/tests/baselines/reference/extractConstant/extractConstant_PropertyName_Keyword.ts new file mode 100644 index 0000000000000..ae9029dd6df88 --- /dev/null +++ b/tests/baselines/reference/extractConstant/extractConstant_PropertyName_Keyword.ts @@ -0,0 +1,5 @@ +// ==ORIGINAL== +/*[#|*/x.if/*|]*/.z(); +// ==SCOPE::Extract to constant in enclosing scope== +const newLocal = x.if; +/*RENAME*/newLocal.z(); \ No newline at end of file diff --git a/tests/baselines/reference/extractConstant/extractConstant_PropertyName_PrivateIdentifierKeyword.js b/tests/baselines/reference/extractConstant/extractConstant_PropertyName_PrivateIdentifierKeyword.js new file mode 100644 index 0000000000000..171b47b6e88b4 --- /dev/null +++ b/tests/baselines/reference/extractConstant/extractConstant_PropertyName_PrivateIdentifierKeyword.js @@ -0,0 +1,5 @@ +// ==ORIGINAL== +/*[#|*/this.#if/*|]*/.z(); +// ==SCOPE::Extract to constant in enclosing scope== +const newLocal = this.#if; +/*RENAME*/newLocal.z(); \ No newline at end of file diff --git a/tests/baselines/reference/extractConstant/extractConstant_PropertyName_PrivateIdentifierKeyword.ts b/tests/baselines/reference/extractConstant/extractConstant_PropertyName_PrivateIdentifierKeyword.ts new file mode 100644 index 0000000000000..171b47b6e88b4 --- /dev/null +++ b/tests/baselines/reference/extractConstant/extractConstant_PropertyName_PrivateIdentifierKeyword.ts @@ -0,0 +1,5 @@ +// ==ORIGINAL== +/*[#|*/this.#if/*|]*/.z(); +// ==SCOPE::Extract to constant in enclosing scope== +const newLocal = this.#if; +/*RENAME*/newLocal.z(); \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefsExportEquals.baseline.jsonc b/tests/baselines/reference/findAllRefsExportEquals.baseline.jsonc index 14b72c702eee9..ef36f386301c6 100644 --- a/tests/baselines/reference/findAllRefsExportEquals.baseline.jsonc +++ b/tests/baselines/reference/findAllRefsExportEquals.baseline.jsonc @@ -271,7 +271,7 @@ "length": 16 }, "isWriteAccess": true, - "isDefinition": false + "isDefinition": true }, { "textSpan": { diff --git a/tests/baselines/reference/findAllRefsImportMeta.baseline.jsonc b/tests/baselines/reference/findAllRefsImportMeta.baseline.jsonc new file mode 100644 index 0000000000000..3d52240d3a867 --- /dev/null +++ b/tests/baselines/reference/findAllRefsImportMeta.baseline.jsonc @@ -0,0 +1,61 @@ +// === /tests/cases/fourslash/foo.ts === +// /// +// /// +// import./*FIND ALL REFS*/[|meta|]; +// import.[|meta|]; + +// === /tests/cases/fourslash/baz.ts === +// /// +// /// +// let x = import +// . // hai :) +// [|meta|]; + +[ + { + "definition": { + "containerKind": "", + "containerName": "", + "fileName": "/tests/cases/fourslash/foo.ts", + "kind": "keyword", + "textSpan": { + "start": 82, + "length": 4 + }, + "displayParts": [ + { + "kind": "keyword" + } + ] + }, + "references": [ + { + "textSpan": { + "start": 82, + "length": 4 + }, + "fileName": "/tests/cases/fourslash/foo.ts", + "isWriteAccess": false, + "isDefinition": false + }, + { + "textSpan": { + "start": 95, + "length": 4 + }, + "fileName": "/tests/cases/fourslash/foo.ts", + "isWriteAccess": false, + "isDefinition": false + }, + { + "textSpan": { + "start": 109, + "length": 4 + }, + "fileName": "/tests/cases/fourslash/baz.ts", + "isWriteAccess": false, + "isDefinition": false + } + ] + } +] \ No newline at end of file diff --git a/tests/baselines/reference/findAllRefs_importType_exportEquals.baseline.jsonc b/tests/baselines/reference/findAllRefs_importType_exportEquals.baseline.jsonc index b71b73a700f70..a895c84f39f18 100644 --- a/tests/baselines/reference/findAllRefs_importType_exportEquals.baseline.jsonc +++ b/tests/baselines/reference/findAllRefs_importType_exportEquals.baseline.jsonc @@ -774,7 +774,7 @@ "length": 16 }, "isWriteAccess": true, - "isDefinition": false + "isDefinition": true }, { "textSpan": { @@ -787,7 +787,7 @@ "length": 43 }, "isWriteAccess": true, - "isDefinition": false + "isDefinition": true }, { "textSpan": { diff --git a/tests/baselines/reference/findAllRefs_importType_js.1.baseline.jsonc b/tests/baselines/reference/findAllRefs_importType_js.1.baseline.jsonc index 072f0ac1ab936..194d24ed3ed52 100644 --- a/tests/baselines/reference/findAllRefs_importType_js.1.baseline.jsonc +++ b/tests/baselines/reference/findAllRefs_importType_js.1.baseline.jsonc @@ -15,7 +15,7 @@ "containerName": "", "fileName": "/a.js", "kind": "local class", - "name": "(local class) C", + "name": "(local class) C\nmodule C", "textSpan": { "start": 23, "length": 1 @@ -37,6 +37,22 @@ "text": " ", "kind": "space" }, + { + "text": "C", + "kind": "className" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "module", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, { "text": "C", "kind": "className" diff --git a/tests/baselines/reference/flatArrayNoExcessiveStackDepth.symbols b/tests/baselines/reference/flatArrayNoExcessiveStackDepth.symbols index 4b27f6006cbd7..e5052d4cdb3a5 100644 --- a/tests/baselines/reference/flatArrayNoExcessiveStackDepth.symbols +++ b/tests/baselines/reference/flatArrayNoExcessiveStackDepth.symbols @@ -15,7 +15,7 @@ const bar = foo.flatMap(bar => bar as Foo); interface Foo extends Array {} >Foo : Symbol(Foo, Decl(flatArrayNoExcessiveStackDepth.ts, 3, 43)) ->Array : Symbol(Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --) ... and 2 more) +>Array : Symbol(Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --) ... and 3 more) // Repros from comments in #43249 @@ -27,7 +27,7 @@ const repro_43249 = (value: unknown) => { >value : Symbol(value, Decl(flatArrayNoExcessiveStackDepth.ts, 9, 21)) throw new Error("No"); ->Error : Symbol(Error, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>Error : Symbol(Error, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2022.error.d.ts, --, --)) } const match = value.match(/anything/) || []; >match : Symbol(match, Decl(flatArrayNoExcessiveStackDepth.ts, 13, 9)) diff --git a/tests/baselines/reference/for-of39.errors.txt b/tests/baselines/reference/for-of39.errors.txt index c887c20ef4b10..fc45150a38ccb 100644 --- a/tests/baselines/reference/for-of39.errors.txt +++ b/tests/baselines/reference/for-of39.errors.txt @@ -1,5 +1,5 @@ tests/cases/conformance/es6/for-ofStatements/for-of39.ts(1,11): error TS2769: No overload matches this call. - Overload 1 of 3, '(iterable: Iterable): Map', gave the following error. + Overload 1 of 4, '(iterable?: Iterable): Map', gave the following error. Argument of type '([string, number] | [string, true])[]' is not assignable to parameter of type 'Iterable'. The types returned by '[Symbol.iterator]().next(...)' are incompatible between these types. Type 'IteratorResult<[string, number] | [string, true], any>' is not assignable to type 'IteratorResult'. @@ -9,7 +9,7 @@ tests/cases/conformance/es6/for-ofStatements/for-of39.ts(1,11): error TS2769: No Type '[string, number]' is not assignable to type 'readonly [string, boolean]'. Type at position 1 in source is not compatible with type at position 1 in target. Type 'number' is not assignable to type 'boolean'. - Overload 2 of 3, '(entries?: readonly (readonly [string, boolean])[]): Map', gave the following error. + Overload 2 of 4, '(entries?: readonly (readonly [string, boolean])[]): Map', gave the following error. Type 'number' is not assignable to type 'boolean'. @@ -17,7 +17,7 @@ tests/cases/conformance/es6/for-ofStatements/for-of39.ts(1,11): error TS2769: No var map = new Map([["", true], ["", 0]]); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ !!! error TS2769: No overload matches this call. -!!! error TS2769: Overload 1 of 3, '(iterable: Iterable): Map', gave the following error. +!!! error TS2769: Overload 1 of 4, '(iterable?: Iterable): Map', gave the following error. !!! error TS2769: Argument of type '([string, number] | [string, true])[]' is not assignable to parameter of type 'Iterable'. !!! error TS2769: The types returned by '[Symbol.iterator]().next(...)' are incompatible between these types. !!! error TS2769: Type 'IteratorResult<[string, number] | [string, true], any>' is not assignable to type 'IteratorResult'. @@ -27,7 +27,7 @@ tests/cases/conformance/es6/for-ofStatements/for-of39.ts(1,11): error TS2769: No !!! error TS2769: Type '[string, number]' is not assignable to type 'readonly [string, boolean]'. !!! error TS2769: Type at position 1 in source is not compatible with type at position 1 in target. !!! error TS2769: Type 'number' is not assignable to type 'boolean'. -!!! error TS2769: Overload 2 of 3, '(entries?: readonly (readonly [string, boolean])[]): Map', gave the following error. +!!! error TS2769: Overload 2 of 4, '(entries?: readonly (readonly [string, boolean])[]): Map', gave the following error. !!! error TS2769: Type 'number' is not assignable to type 'boolean'. for (var [k, v] of map) { k; diff --git a/tests/baselines/reference/forAwaitPerIterationBindingDownlevel.js b/tests/baselines/reference/forAwaitPerIterationBindingDownlevel.js new file mode 100644 index 0000000000000..e23c070584670 --- /dev/null +++ b/tests/baselines/reference/forAwaitPerIterationBindingDownlevel.js @@ -0,0 +1,165 @@ +//// [forAwaitPerIterationBindingDownlevel.ts] +const sleep = (tm: number) => new Promise(resolve => setTimeout(resolve, tm)); + +async function* gen() { + yield 1; + await sleep(1000); + yield 2; +} + +const log = console.log; + +(async () => { + for await (const outer of gen()) { + log(`I'm loop ${outer}`); + (async () => { + const inner = outer; + await sleep(2000); + if (inner === outer) { + log(`I'm loop ${inner} and I know I'm loop ${outer}`); + } else { + log(`I'm loop ${inner}, but I think I'm loop ${outer}`); + } + })(); + } +})(); + +//// [forAwaitPerIterationBindingDownlevel.js] +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __generator = (this && this.__generator) || function (thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (_) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + } +}; +var __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); } +var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) { + if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); + var g = generator.apply(thisArg, _arguments || []), i, q = []; + return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i; + function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; } + function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } } + function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); } + function fulfill(value) { resume("next", value); } + function reject(value) { resume("throw", value); } + function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); } +}; +var __asyncValues = (this && this.__asyncValues) || function (o) { + if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); + var m = o[Symbol.asyncIterator], i; + return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i); + function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; } + function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); } +}; +var _this = this; +var sleep = function (tm) { return new Promise(function (resolve) { return setTimeout(resolve, tm); }); }; +function gen() { + return __asyncGenerator(this, arguments, function gen_1() { + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, __await(1)]; + case 1: return [4 /*yield*/, _a.sent()]; + case 2: + _a.sent(); + return [4 /*yield*/, __await(sleep(1000))]; + case 3: + _a.sent(); + return [4 /*yield*/, __await(2)]; + case 4: return [4 /*yield*/, _a.sent()]; + case 5: + _a.sent(); + return [2 /*return*/]; + } + }); + }); +} +var log = console.log; +(function () { return __awaiter(_this, void 0, void 0, function () { + var _loop_1, _a, _b, e_1_1; + var _this = this; + var e_1, _c; + return __generator(this, function (_d) { + switch (_d.label) { + case 0: + _d.trys.push([0, 5, 6, 11]); + _loop_1 = function () { + var outer = _b.value; + log("I'm loop ".concat(outer)); + (function () { return __awaiter(_this, void 0, void 0, function () { + var inner; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + inner = outer; + return [4 /*yield*/, sleep(2000)]; + case 1: + _a.sent(); + if (inner === outer) { + log("I'm loop ".concat(inner, " and I know I'm loop ").concat(outer)); + } + else { + log("I'm loop ".concat(inner, ", but I think I'm loop ").concat(outer)); + } + return [2 /*return*/]; + } + }); + }); })(); + }; + _a = __asyncValues(gen()); + _d.label = 1; + case 1: return [4 /*yield*/, _a.next()]; + case 2: + if (!(_b = _d.sent(), !_b.done)) return [3 /*break*/, 4]; + _loop_1(); + _d.label = 3; + case 3: return [3 /*break*/, 1]; + case 4: return [3 /*break*/, 11]; + case 5: + e_1_1 = _d.sent(); + e_1 = { error: e_1_1 }; + return [3 /*break*/, 11]; + case 6: + _d.trys.push([6, , 9, 10]); + if (!(_b && !_b.done && (_c = _a.return))) return [3 /*break*/, 8]; + return [4 /*yield*/, _c.call(_a)]; + case 7: + _d.sent(); + _d.label = 8; + case 8: return [3 /*break*/, 10]; + case 9: + if (e_1) throw e_1.error; + return [7 /*endfinally*/]; + case 10: return [7 /*endfinally*/]; + case 11: return [2 /*return*/]; + } + }); +}); })(); diff --git a/tests/baselines/reference/formatToPartsBigInt.symbols b/tests/baselines/reference/formatToPartsBigInt.symbols index 1bdd0c8226002..41d4f83b1d989 100644 --- a/tests/baselines/reference/formatToPartsBigInt.symbols +++ b/tests/baselines/reference/formatToPartsBigInt.symbols @@ -4,16 +4,16 @@ // Test Intl methods with new parameter type new Intl.NumberFormat("fr").formatToParts(3000n); >new Intl.NumberFormat("fr").formatToParts : Symbol(Intl.NumberFormat.formatToParts, Decl(lib.es2018.intl.d.ts, --, --)) ->Intl.NumberFormat : Symbol(Intl.NumberFormat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2018.intl.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2021.intl.d.ts, --, --)) +>Intl.NumberFormat : Symbol(Intl.NumberFormat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2018.intl.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.esnext.intl.d.ts, --, --)) >Intl : Symbol(Intl, Decl(lib.es5.d.ts, --, --), Decl(lib.es2017.intl.d.ts, --, --), Decl(lib.es2018.intl.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2020.intl.d.ts, --, --) ... and 2 more) ->NumberFormat : Symbol(Intl.NumberFormat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2018.intl.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2021.intl.d.ts, --, --)) +>NumberFormat : Symbol(Intl.NumberFormat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2018.intl.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.esnext.intl.d.ts, --, --)) >formatToParts : Symbol(Intl.NumberFormat.formatToParts, Decl(lib.es2018.intl.d.ts, --, --)) new Intl.NumberFormat("fr").formatToParts(BigInt(123)); >new Intl.NumberFormat("fr").formatToParts : Symbol(Intl.NumberFormat.formatToParts, Decl(lib.es2018.intl.d.ts, --, --)) ->Intl.NumberFormat : Symbol(Intl.NumberFormat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2018.intl.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2021.intl.d.ts, --, --)) +>Intl.NumberFormat : Symbol(Intl.NumberFormat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2018.intl.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.esnext.intl.d.ts, --, --)) >Intl : Symbol(Intl, Decl(lib.es5.d.ts, --, --), Decl(lib.es2017.intl.d.ts, --, --), Decl(lib.es2018.intl.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2020.intl.d.ts, --, --) ... and 2 more) ->NumberFormat : Symbol(Intl.NumberFormat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2018.intl.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2021.intl.d.ts, --, --)) +>NumberFormat : Symbol(Intl.NumberFormat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2018.intl.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.esnext.intl.d.ts, --, --)) >formatToParts : Symbol(Intl.NumberFormat.formatToParts, Decl(lib.es2018.intl.d.ts, --, --)) >BigInt : Symbol(BigInt, Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --)) diff --git a/tests/baselines/reference/formatToPartsBigInt.types b/tests/baselines/reference/formatToPartsBigInt.types index fc911ed065711..d3eeb2247a7b4 100644 --- a/tests/baselines/reference/formatToPartsBigInt.types +++ b/tests/baselines/reference/formatToPartsBigInt.types @@ -6,9 +6,9 @@ new Intl.NumberFormat("fr").formatToParts(3000n); >new Intl.NumberFormat("fr").formatToParts(3000n) : Intl.NumberFormatPart[] >new Intl.NumberFormat("fr").formatToParts : (number?: number | bigint) => Intl.NumberFormatPart[] >new Intl.NumberFormat("fr") : Intl.NumberFormat ->Intl.NumberFormat : { (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; new (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; supportedLocalesOf(locales: string | string[], options?: Intl.NumberFormatOptions): string[]; } +>Intl.NumberFormat : { (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; new (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; supportedLocalesOf(locales: string | string[], options?: Intl.NumberFormatOptions): string[]; readonly prototype: Intl.NumberFormat; } >Intl : typeof Intl ->NumberFormat : { (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; new (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; supportedLocalesOf(locales: string | string[], options?: Intl.NumberFormatOptions): string[]; } +>NumberFormat : { (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; new (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; supportedLocalesOf(locales: string | string[], options?: Intl.NumberFormatOptions): string[]; readonly prototype: Intl.NumberFormat; } >"fr" : "fr" >formatToParts : (number?: number | bigint) => Intl.NumberFormatPart[] >3000n : 3000n @@ -17,9 +17,9 @@ new Intl.NumberFormat("fr").formatToParts(BigInt(123)); >new Intl.NumberFormat("fr").formatToParts(BigInt(123)) : Intl.NumberFormatPart[] >new Intl.NumberFormat("fr").formatToParts : (number?: number | bigint) => Intl.NumberFormatPart[] >new Intl.NumberFormat("fr") : Intl.NumberFormat ->Intl.NumberFormat : { (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; new (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; supportedLocalesOf(locales: string | string[], options?: Intl.NumberFormatOptions): string[]; } +>Intl.NumberFormat : { (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; new (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; supportedLocalesOf(locales: string | string[], options?: Intl.NumberFormatOptions): string[]; readonly prototype: Intl.NumberFormat; } >Intl : typeof Intl ->NumberFormat : { (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; new (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; supportedLocalesOf(locales: string | string[], options?: Intl.NumberFormatOptions): string[]; } +>NumberFormat : { (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; new (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; supportedLocalesOf(locales: string | string[], options?: Intl.NumberFormatOptions): string[]; readonly prototype: Intl.NumberFormat; } >"fr" : "fr" >formatToParts : (number?: number | bigint) => Intl.NumberFormatPart[] >BigInt(123) : bigint diff --git a/tests/baselines/reference/functionParameterObjectRestAndInitializers.js b/tests/baselines/reference/functionParameterObjectRestAndInitializers.js new file mode 100644 index 0000000000000..410aa3c64b789 --- /dev/null +++ b/tests/baselines/reference/functionParameterObjectRestAndInitializers.js @@ -0,0 +1,35 @@ +//// [functionParameterObjectRestAndInitializers.ts] +// https://github.com/microsoft/TypeScript/issues/47079 + +function f({a, ...x}, b = a) { + return b; +} + +function g({a, ...x}, b = ({a}, b = a) => {}) { + return b; +} + + +//// [functionParameterObjectRestAndInitializers.js] +// https://github.com/microsoft/TypeScript/issues/47079 +var __rest = (this && this.__rest) || function (s, e) { + var t = {}; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) + t[p] = s[p]; + if (s != null && typeof Object.getOwnPropertySymbols === "function") + for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { + if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) + t[p[i]] = s[p[i]]; + } + return t; +}; +function f(_a, b) { + var { a } = _a, x = __rest(_a, ["a"]); + if (b === void 0) { b = a; } + return b; +} +function g(_a, b) { + var { a } = _a, x = __rest(_a, ["a"]); + if (b === void 0) { b = ({ a }, b = a) => { }; } + return b; +} diff --git a/tests/baselines/reference/functionToFunctionWithPropError.errors.txt b/tests/baselines/reference/functionToFunctionWithPropError.errors.txt new file mode 100644 index 0000000000000..627616afe2c7b --- /dev/null +++ b/tests/baselines/reference/functionToFunctionWithPropError.errors.txt @@ -0,0 +1,12 @@ +tests/cases/compiler/functionToFunctionWithPropError.ts(4,1): error TS2741: Property 'prop' is missing in type '() => string' but required in type '{ (): string; prop: number; }'. + + +==== tests/cases/compiler/functionToFunctionWithPropError.ts (1 errors) ==== + declare let x: { (): string; prop: number }; + declare let y: { (): string; } + + x = y; + ~ +!!! error TS2741: Property 'prop' is missing in type '() => string' but required in type '{ (): string; prop: number; }'. +!!! related TS2728 tests/cases/compiler/functionToFunctionWithPropError.ts:1:30: 'prop' is declared here. + y = x; \ No newline at end of file diff --git a/tests/baselines/reference/functionToFunctionWithPropError.js b/tests/baselines/reference/functionToFunctionWithPropError.js new file mode 100644 index 0000000000000..e1727897b9bbf --- /dev/null +++ b/tests/baselines/reference/functionToFunctionWithPropError.js @@ -0,0 +1,10 @@ +//// [functionToFunctionWithPropError.ts] +declare let x: { (): string; prop: number }; +declare let y: { (): string; } + +x = y; +y = x; + +//// [functionToFunctionWithPropError.js] +x = y; +y = x; diff --git a/tests/baselines/reference/functionToFunctionWithPropError.symbols b/tests/baselines/reference/functionToFunctionWithPropError.symbols new file mode 100644 index 0000000000000..0c204a678797c --- /dev/null +++ b/tests/baselines/reference/functionToFunctionWithPropError.symbols @@ -0,0 +1,16 @@ +=== tests/cases/compiler/functionToFunctionWithPropError.ts === +declare let x: { (): string; prop: number }; +>x : Symbol(x, Decl(functionToFunctionWithPropError.ts, 0, 11)) +>prop : Symbol(prop, Decl(functionToFunctionWithPropError.ts, 0, 28)) + +declare let y: { (): string; } +>y : Symbol(y, Decl(functionToFunctionWithPropError.ts, 1, 11)) + +x = y; +>x : Symbol(x, Decl(functionToFunctionWithPropError.ts, 0, 11)) +>y : Symbol(y, Decl(functionToFunctionWithPropError.ts, 1, 11)) + +y = x; +>y : Symbol(y, Decl(functionToFunctionWithPropError.ts, 1, 11)) +>x : Symbol(x, Decl(functionToFunctionWithPropError.ts, 0, 11)) + diff --git a/tests/baselines/reference/functionToFunctionWithPropError.types b/tests/baselines/reference/functionToFunctionWithPropError.types new file mode 100644 index 0000000000000..7351d9f3dafab --- /dev/null +++ b/tests/baselines/reference/functionToFunctionWithPropError.types @@ -0,0 +1,18 @@ +=== tests/cases/compiler/functionToFunctionWithPropError.ts === +declare let x: { (): string; prop: number }; +>x : { (): string; prop: number; } +>prop : number + +declare let y: { (): string; } +>y : () => string + +x = y; +>x = y : () => string +>x : { (): string; prop: number; } +>y : () => string + +y = x; +>y = x : { (): string; prop: number; } +>y : () => string +>x : { (): string; prop: number; } + diff --git a/tests/baselines/reference/genericCallWithoutArgs.errors.txt b/tests/baselines/reference/genericCallWithoutArgs.errors.txt index 9d2ca3c1b8350..75a2d51a1da3e 100644 --- a/tests/baselines/reference/genericCallWithoutArgs.errors.txt +++ b/tests/baselines/reference/genericCallWithoutArgs.errors.txt @@ -1,13 +1,10 @@ -tests/cases/compiler/genericCallWithoutArgs.ts(4,17): error TS1005: '(' expected. -tests/cases/compiler/genericCallWithoutArgs.ts(4,18): error TS1005: ')' expected. +tests/cases/compiler/genericCallWithoutArgs.ts(4,18): error TS1003: Identifier expected. -==== tests/cases/compiler/genericCallWithoutArgs.ts (2 errors) ==== +==== tests/cases/compiler/genericCallWithoutArgs.ts (1 errors) ==== function f(x: X, y: Y) { } f. - ~ -!!! error TS1005: '(' expected. -!!! error TS1005: ')' expected. \ No newline at end of file +!!! error TS1003: Identifier expected. \ No newline at end of file diff --git a/tests/baselines/reference/genericCallWithoutArgs.js b/tests/baselines/reference/genericCallWithoutArgs.js index abf947a7d3b58..aab48f5e047c6 100644 --- a/tests/baselines/reference/genericCallWithoutArgs.js +++ b/tests/baselines/reference/genericCallWithoutArgs.js @@ -7,4 +7,4 @@ f. //// [genericCallWithoutArgs.js] function f(x, y) { } -f(); +f.; diff --git a/tests/baselines/reference/genericCallWithoutArgs.types b/tests/baselines/reference/genericCallWithoutArgs.types index 7f9565df8a68c..82c32a2ad0444 100644 --- a/tests/baselines/reference/genericCallWithoutArgs.types +++ b/tests/baselines/reference/genericCallWithoutArgs.types @@ -6,6 +6,7 @@ function f(x: X, y: Y) { } f. ->f. : void +>f. : any >f : (x: X, y: Y) => void +> : any diff --git a/tests/baselines/reference/genericCallsWithoutParens.errors.txt b/tests/baselines/reference/genericCallsWithoutParens.errors.txt deleted file mode 100644 index aa53a586d8867..0000000000000 --- a/tests/baselines/reference/genericCallsWithoutParens.errors.txt +++ /dev/null @@ -1,18 +0,0 @@ -tests/cases/compiler/genericCallsWithoutParens.ts(2,18): error TS1005: '(' expected. -tests/cases/compiler/genericCallsWithoutParens.ts(7,8): error TS1384: A 'new' expression with type arguments must always be followed by a parenthesized argument list. - - -==== tests/cases/compiler/genericCallsWithoutParens.ts (2 errors) ==== - function f() { } - var r = f; // parse error - ~ -!!! error TS1005: '(' expected. - - class C { - foo: T; - } - var c = new C; // parse error - ~~~~~~~~~~~~~~ -!!! error TS1384: A 'new' expression with type arguments must always be followed by a parenthesized argument list. - - \ No newline at end of file diff --git a/tests/baselines/reference/genericCallsWithoutParens.js b/tests/baselines/reference/genericCallsWithoutParens.js deleted file mode 100644 index 99e29292e6ada..0000000000000 --- a/tests/baselines/reference/genericCallsWithoutParens.js +++ /dev/null @@ -1,20 +0,0 @@ -//// [genericCallsWithoutParens.ts] -function f() { } -var r = f; // parse error - -class C { - foo: T; -} -var c = new C; // parse error - - - -//// [genericCallsWithoutParens.js] -function f() { } -var r = f(); // parse error -var C = /** @class */ (function () { - function C() { - } - return C; -}()); -var c = new C; // parse error diff --git a/tests/baselines/reference/genericCallsWithoutParens.symbols b/tests/baselines/reference/genericCallsWithoutParens.symbols deleted file mode 100644 index b8fb641a3845d..0000000000000 --- a/tests/baselines/reference/genericCallsWithoutParens.symbols +++ /dev/null @@ -1,22 +0,0 @@ -=== tests/cases/compiler/genericCallsWithoutParens.ts === -function f() { } ->f : Symbol(f, Decl(genericCallsWithoutParens.ts, 0, 0)) ->T : Symbol(T, Decl(genericCallsWithoutParens.ts, 0, 11)) - -var r = f; // parse error ->r : Symbol(r, Decl(genericCallsWithoutParens.ts, 1, 3)) ->f : Symbol(f, Decl(genericCallsWithoutParens.ts, 0, 0)) - -class C { ->C : Symbol(C, Decl(genericCallsWithoutParens.ts, 1, 18)) ->T : Symbol(T, Decl(genericCallsWithoutParens.ts, 3, 8)) - - foo: T; ->foo : Symbol(C.foo, Decl(genericCallsWithoutParens.ts, 3, 12)) ->T : Symbol(T, Decl(genericCallsWithoutParens.ts, 3, 8)) -} -var c = new C; // parse error ->c : Symbol(c, Decl(genericCallsWithoutParens.ts, 6, 3)) ->C : Symbol(C, Decl(genericCallsWithoutParens.ts, 1, 18)) - - diff --git a/tests/baselines/reference/genericCallsWithoutParens.types b/tests/baselines/reference/genericCallsWithoutParens.types deleted file mode 100644 index 1364fc6135a40..0000000000000 --- a/tests/baselines/reference/genericCallsWithoutParens.types +++ /dev/null @@ -1,21 +0,0 @@ -=== tests/cases/compiler/genericCallsWithoutParens.ts === -function f() { } ->f : () => void - -var r = f; // parse error ->r : void ->f : void ->f : () => void - -class C { ->C : C - - foo: T; ->foo : T -} -var c = new C; // parse error ->c : C ->new C : C ->C : typeof C - - diff --git a/tests/baselines/reference/genericConstructExpressionWithoutArgs.errors.txt b/tests/baselines/reference/genericConstructExpressionWithoutArgs.errors.txt deleted file mode 100644 index 9043b30139932..0000000000000 --- a/tests/baselines/reference/genericConstructExpressionWithoutArgs.errors.txt +++ /dev/null @@ -1,16 +0,0 @@ -tests/cases/compiler/genericConstructExpressionWithoutArgs.ts(9,9): error TS1384: A 'new' expression with type arguments must always be followed by a parenthesized argument list. - - -==== tests/cases/compiler/genericConstructExpressionWithoutArgs.ts (1 errors) ==== - class B { } - var b = new B; // no error - - class C { - x: T; - } - - var c = new C // C - var c2 = new C // error, type params are actually part of the arg list so you need both - ~~~~~~~~~~~~~~ -!!! error TS1384: A 'new' expression with type arguments must always be followed by a parenthesized argument list. - \ No newline at end of file diff --git a/tests/baselines/reference/genericConstructExpressionWithoutArgs.js b/tests/baselines/reference/genericConstructExpressionWithoutArgs.js deleted file mode 100644 index d83bc41ae5435..0000000000000 --- a/tests/baselines/reference/genericConstructExpressionWithoutArgs.js +++ /dev/null @@ -1,26 +0,0 @@ -//// [genericConstructExpressionWithoutArgs.ts] -class B { } -var b = new B; // no error - -class C { - x: T; -} - -var c = new C // C -var c2 = new C // error, type params are actually part of the arg list so you need both - - -//// [genericConstructExpressionWithoutArgs.js] -var B = /** @class */ (function () { - function B() { - } - return B; -}()); -var b = new B; // no error -var C = /** @class */ (function () { - function C() { - } - return C; -}()); -var c = new C; // C -var c2 = new C; // error, type params are actually part of the arg list so you need both diff --git a/tests/baselines/reference/genericConstructExpressionWithoutArgs.symbols b/tests/baselines/reference/genericConstructExpressionWithoutArgs.symbols deleted file mode 100644 index 911ce1768a0fb..0000000000000 --- a/tests/baselines/reference/genericConstructExpressionWithoutArgs.symbols +++ /dev/null @@ -1,25 +0,0 @@ -=== tests/cases/compiler/genericConstructExpressionWithoutArgs.ts === -class B { } ->B : Symbol(B, Decl(genericConstructExpressionWithoutArgs.ts, 0, 0)) - -var b = new B; // no error ->b : Symbol(b, Decl(genericConstructExpressionWithoutArgs.ts, 1, 3)) ->B : Symbol(B, Decl(genericConstructExpressionWithoutArgs.ts, 0, 0)) - -class C { ->C : Symbol(C, Decl(genericConstructExpressionWithoutArgs.ts, 1, 14)) ->T : Symbol(T, Decl(genericConstructExpressionWithoutArgs.ts, 3, 8)) - - x: T; ->x : Symbol(C.x, Decl(genericConstructExpressionWithoutArgs.ts, 3, 12)) ->T : Symbol(T, Decl(genericConstructExpressionWithoutArgs.ts, 3, 8)) -} - -var c = new C // C ->c : Symbol(c, Decl(genericConstructExpressionWithoutArgs.ts, 7, 3)) ->C : Symbol(C, Decl(genericConstructExpressionWithoutArgs.ts, 1, 14)) - -var c2 = new C // error, type params are actually part of the arg list so you need both ->c2 : Symbol(c2, Decl(genericConstructExpressionWithoutArgs.ts, 8, 3)) ->C : Symbol(C, Decl(genericConstructExpressionWithoutArgs.ts, 1, 14)) - diff --git a/tests/baselines/reference/genericConstructExpressionWithoutArgs.types b/tests/baselines/reference/genericConstructExpressionWithoutArgs.types deleted file mode 100644 index a3ee837c292de..0000000000000 --- a/tests/baselines/reference/genericConstructExpressionWithoutArgs.types +++ /dev/null @@ -1,26 +0,0 @@ -=== tests/cases/compiler/genericConstructExpressionWithoutArgs.ts === -class B { } ->B : B - -var b = new B; // no error ->b : B ->new B : B ->B : typeof B - -class C { ->C : C - - x: T; ->x : T -} - -var c = new C // C ->c : C ->new C : C ->C : typeof C - -var c2 = new C // error, type params are actually part of the arg list so you need both ->c2 : C ->new C : C ->C : typeof C - diff --git a/tests/baselines/reference/genericObjectCreationWithoutTypeArgs.errors.txt b/tests/baselines/reference/genericObjectCreationWithoutTypeArgs.errors.txt deleted file mode 100644 index f4ea0db74e4ce..0000000000000 --- a/tests/baselines/reference/genericObjectCreationWithoutTypeArgs.errors.txt +++ /dev/null @@ -1,15 +0,0 @@ -tests/cases/compiler/genericObjectCreationWithoutTypeArgs.ts(6,9): error TS1384: A 'new' expression with type arguments must always be followed by a parenthesized argument list. - - -==== tests/cases/compiler/genericObjectCreationWithoutTypeArgs.ts (1 errors) ==== - class SS{ - - } - - var x1 = new SS(); // OK - var x2 = new SS < number>; // Correctly give error - ~~~~~~~~~~~~~~~~~ -!!! error TS1384: A 'new' expression with type arguments must always be followed by a parenthesized argument list. - var x3 = new SS(); // OK - var x4 = new SS; // Should be allowed, but currently give error ('supplied parameters do not match any signature of the call target') - \ No newline at end of file diff --git a/tests/baselines/reference/genericObjectCreationWithoutTypeArgs.js b/tests/baselines/reference/genericObjectCreationWithoutTypeArgs.js index c0226ca9c410d..67be64ea8d533 100644 --- a/tests/baselines/reference/genericObjectCreationWithoutTypeArgs.js +++ b/tests/baselines/reference/genericObjectCreationWithoutTypeArgs.js @@ -4,9 +4,9 @@ class SS{ } var x1 = new SS(); // OK -var x2 = new SS < number>; // Correctly give error +var x2 = new SS; // OK var x3 = new SS(); // OK -var x4 = new SS; // Should be allowed, but currently give error ('supplied parameters do not match any signature of the call target') +var x4 = new SS; // OK //// [genericObjectCreationWithoutTypeArgs.js] @@ -16,6 +16,6 @@ var SS = /** @class */ (function () { return SS; }()); var x1 = new SS(); // OK -var x2 = new SS; // Correctly give error +var x2 = new SS; // OK var x3 = new SS(); // OK -var x4 = new SS; // Should be allowed, but currently give error ('supplied parameters do not match any signature of the call target') +var x4 = new SS; // OK diff --git a/tests/baselines/reference/genericObjectCreationWithoutTypeArgs.symbols b/tests/baselines/reference/genericObjectCreationWithoutTypeArgs.symbols index 3b3291ae79e24..34d6a510dc546 100644 --- a/tests/baselines/reference/genericObjectCreationWithoutTypeArgs.symbols +++ b/tests/baselines/reference/genericObjectCreationWithoutTypeArgs.symbols @@ -9,7 +9,7 @@ var x1 = new SS(); // OK >x1 : Symbol(x1, Decl(genericObjectCreationWithoutTypeArgs.ts, 4, 3)) >SS : Symbol(SS, Decl(genericObjectCreationWithoutTypeArgs.ts, 0, 0)) -var x2 = new SS < number>; // Correctly give error +var x2 = new SS; // OK >x2 : Symbol(x2, Decl(genericObjectCreationWithoutTypeArgs.ts, 5, 3)) >SS : Symbol(SS, Decl(genericObjectCreationWithoutTypeArgs.ts, 0, 0)) @@ -17,7 +17,7 @@ var x3 = new SS(); // OK >x3 : Symbol(x3, Decl(genericObjectCreationWithoutTypeArgs.ts, 6, 3)) >SS : Symbol(SS, Decl(genericObjectCreationWithoutTypeArgs.ts, 0, 0)) -var x4 = new SS; // Should be allowed, but currently give error ('supplied parameters do not match any signature of the call target') +var x4 = new SS; // OK >x4 : Symbol(x4, Decl(genericObjectCreationWithoutTypeArgs.ts, 7, 3)) >SS : Symbol(SS, Decl(genericObjectCreationWithoutTypeArgs.ts, 0, 0)) diff --git a/tests/baselines/reference/genericObjectCreationWithoutTypeArgs.types b/tests/baselines/reference/genericObjectCreationWithoutTypeArgs.types index dad4ebdc4dde1..8592a2d157765 100644 --- a/tests/baselines/reference/genericObjectCreationWithoutTypeArgs.types +++ b/tests/baselines/reference/genericObjectCreationWithoutTypeArgs.types @@ -9,9 +9,9 @@ var x1 = new SS(); // OK >new SS() : SS >SS : typeof SS -var x2 = new SS < number>; // Correctly give error +var x2 = new SS; // OK >x2 : SS ->new SS < number> : SS +>new SS : SS >SS : typeof SS var x3 = new SS(); // OK @@ -19,7 +19,7 @@ var x3 = new SS(); // OK >new SS() : SS >SS : typeof SS -var x4 = new SS; // Should be allowed, but currently give error ('supplied parameters do not match any signature of the call target') +var x4 = new SS; // OK >x4 : SS >new SS : SS >SS : typeof SS diff --git a/tests/baselines/reference/genericObjectSpreadResultInSwitch.types b/tests/baselines/reference/genericObjectSpreadResultInSwitch.types index 33f485c465bd3..4c9ca429daa37 100644 --- a/tests/baselines/reference/genericObjectSpreadResultInSwitch.types +++ b/tests/baselines/reference/genericObjectSpreadResultInSwitch.types @@ -25,7 +25,7 @@ const getType =
; ~~~ !!! error TS2552: Cannot find name 'createElement'. Did you mean 'frameElement'? -!!! related TS2728 /.ts/lib.dom.d.ts:17075:13: 'frameElement' is declared here. +!!! related TS2728 /.ts/lib.dom.d.ts:17318:13: 'frameElement' is declared here. } } \ No newline at end of file diff --git a/tests/baselines/reference/jsxFactoryQualifiedNameResolutionError.errors.txt b/tests/baselines/reference/jsxFactoryQualifiedNameResolutionError.errors.txt index 87aecd991dd8c..42e4344c8cf7a 100644 --- a/tests/baselines/reference/jsxFactoryQualifiedNameResolutionError.errors.txt +++ b/tests/baselines/reference/jsxFactoryQualifiedNameResolutionError.errors.txt @@ -13,6 +13,6 @@ tests/cases/compiler/test.tsx(9,17): error TS2552: Cannot find name 'MyElement'. return
; ~~~ !!! error TS2552: Cannot find name 'MyElement'. Did you mean 'Element'? -!!! related TS2728 /.ts/lib.dom.d.ts:4792:13: 'Element' is declared here. +!!! related TS2728 /.ts/lib.dom.d.ts:4877:13: 'Element' is declared here. } } \ No newline at end of file diff --git a/tests/baselines/reference/jsxIntrinsicElementsTypeArgumentErrors.errors.txt b/tests/baselines/reference/jsxIntrinsicElementsTypeArgumentErrors.errors.txt index 538dfcd50449a..23f586a3cf86e 100644 --- a/tests/baselines/reference/jsxIntrinsicElementsTypeArgumentErrors.errors.txt +++ b/tests/baselines/reference/jsxIntrinsicElementsTypeArgumentErrors.errors.txt @@ -8,7 +8,6 @@ tests/cases/compiler/jsxIntrinsicElementsTypeArgumentErrors.tsx(11,16): error TS tests/cases/compiler/jsxIntrinsicElementsTypeArgumentErrors.tsx(11,24): error TS2304: Cannot find name 'AlsoMissing'. tests/cases/compiler/jsxIntrinsicElementsTypeArgumentErrors.tsx(13,16): error TS2558: Expected 0 type arguments, but got 1. tests/cases/compiler/jsxIntrinsicElementsTypeArgumentErrors.tsx(13,23): error TS2344: Type 'object' does not satisfy the constraint 'string | number | symbol'. - Type 'object' is not assignable to type 'symbol'. tests/cases/compiler/jsxIntrinsicElementsTypeArgumentErrors.tsx(15,16): error TS2558: Expected 0 type arguments, but got 1. tests/cases/compiler/jsxIntrinsicElementsTypeArgumentErrors.tsx(18,15): error TS1099: Type argument list cannot be empty. tests/cases/compiler/jsxIntrinsicElementsTypeArgumentErrors.tsx(20,16): error TS2558: Expected 0 type arguments, but got 1. @@ -20,7 +19,6 @@ tests/cases/compiler/jsxIntrinsicElementsTypeArgumentErrors.tsx(24,16): error TS tests/cases/compiler/jsxIntrinsicElementsTypeArgumentErrors.tsx(24,24): error TS2304: Cannot find name 'AlsoMissing'. tests/cases/compiler/jsxIntrinsicElementsTypeArgumentErrors.tsx(26,16): error TS2558: Expected 0 type arguments, but got 1. tests/cases/compiler/jsxIntrinsicElementsTypeArgumentErrors.tsx(26,23): error TS2344: Type 'object' does not satisfy the constraint 'string | number | symbol'. - Type 'object' is not assignable to type 'symbol'. tests/cases/compiler/jsxIntrinsicElementsTypeArgumentErrors.tsx(28,16): error TS2558: Expected 0 type arguments, but got 1. @@ -58,7 +56,6 @@ tests/cases/compiler/jsxIntrinsicElementsTypeArgumentErrors.tsx(28,16): error TS !!! error TS2558: Expected 0 type arguments, but got 1. ~~~~~~ !!! error TS2344: Type 'object' does not satisfy the constraint 'string | number | symbol'. -!!! error TS2344: Type 'object' is not assignable to type 'symbol'. const f = >
; // existing type argument with no internal issues ~~~~~~ @@ -94,7 +91,6 @@ tests/cases/compiler/jsxIntrinsicElementsTypeArgumentErrors.tsx(28,16): error TS !!! error TS2558: Expected 0 type arguments, but got 1. ~~~~~~ !!! error TS2344: Type 'object' does not satisfy the constraint 'string | number | symbol'. -!!! error TS2344: Type 'object' is not assignable to type 'symbol'. const l = />; // existing type argument with no internal issues ~~~~~~ diff --git a/tests/baselines/reference/jsxJsxsCjsTransformChildren(jsx=react-jsx).js b/tests/baselines/reference/jsxJsxsCjsTransformChildren(jsx=react-jsx).js index 6bb4e171cf7fb..2bf6a140dea6f 100644 --- a/tests/baselines/reference/jsxJsxsCjsTransformChildren(jsx=react-jsx).js +++ b/tests/baselines/reference/jsxJsxsCjsTransformChildren(jsx=react-jsx).js @@ -10,4 +10,4 @@ export {}; exports.__esModule = true; var jsx_runtime_1 = require("react/jsx-runtime"); /// -var a = (0, jsx_runtime_1.jsx)("div", { children: "text" }, void 0); +var a = (0, jsx_runtime_1.jsx)("div", { children: "text" }); diff --git a/tests/baselines/reference/jsxJsxsCjsTransformCustomImport(jsx=react-jsx).js b/tests/baselines/reference/jsxJsxsCjsTransformCustomImport(jsx=react-jsx).js index 44c248f819084..5b98b87b31981 100644 --- a/tests/baselines/reference/jsxJsxsCjsTransformCustomImport(jsx=react-jsx).js +++ b/tests/baselines/reference/jsxJsxsCjsTransformCustomImport(jsx=react-jsx).js @@ -13,4 +13,4 @@ export {}; exports.__esModule = true; var jsx_runtime_1 = require("preact/jsx-runtime"); /// -var a = (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("p", {}, void 0), "text", (0, jsx_runtime_1.jsx)("div", { className: "foo" }, void 0)] }, void 0); +var a = (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("p", {}), "text", (0, jsx_runtime_1.jsx)("div", { className: "foo" })] }); diff --git a/tests/baselines/reference/jsxJsxsCjsTransformCustomImportPragma(jsx=react-jsx).js b/tests/baselines/reference/jsxJsxsCjsTransformCustomImportPragma(jsx=react-jsx).js index 04ecd0966b83f..70c683f242bbf 100644 --- a/tests/baselines/reference/jsxJsxsCjsTransformCustomImportPragma(jsx=react-jsx).js +++ b/tests/baselines/reference/jsxJsxsCjsTransformCustomImportPragma(jsx=react-jsx).js @@ -28,7 +28,7 @@ exports.__esModule = true; var jsx_runtime_1 = require("preact/jsx-runtime"); /// /* @jsxImportSource preact */ -var a = (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("p", {}, void 0), "text", (0, jsx_runtime_1.jsx)("div", { className: "foo" }, void 0)] }, void 0); +var a = (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("p", {}), "text", (0, jsx_runtime_1.jsx)("div", { className: "foo" })] }); //// [react.js] "use strict"; exports.__esModule = true; @@ -36,4 +36,4 @@ var jsx_runtime_1 = require("react/jsx-runtime"); /// /* @jsxImportSource react */ require("./preact"); -var a = (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("p", {}, void 0), "text", (0, jsx_runtime_1.jsx)("div", { className: "foo" }, void 0)] }, void 0); +var a = (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("p", {}), "text", (0, jsx_runtime_1.jsx)("div", { className: "foo" })] }); diff --git a/tests/baselines/reference/jsxJsxsCjsTransformNestedSelfClosingChild(jsx=react-jsx).js b/tests/baselines/reference/jsxJsxsCjsTransformNestedSelfClosingChild(jsx=react-jsx).js index 58aa36ae906f3..58a87dc9b86b8 100644 --- a/tests/baselines/reference/jsxJsxsCjsTransformNestedSelfClosingChild(jsx=react-jsx).js +++ b/tests/baselines/reference/jsxJsxsCjsTransformNestedSelfClosingChild(jsx=react-jsx).js @@ -25,6 +25,6 @@ console.log( "use strict"; exports.__esModule = true; var jsx_runtime_1 = require("react/jsx-runtime"); -console.log((0, jsx_runtime_1.jsx)("div", { children: (0, jsx_runtime_1.jsx)("div", {}, void 0) }, void 0)); -console.log((0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("div", {}, void 0), (0, jsx_runtime_1.jsx)("div", {}, void 0)] }, void 0)); -console.log((0, jsx_runtime_1.jsx)("div", { children: [1, 2].map(function (i) { return (0, jsx_runtime_1.jsx)("div", { children: i }, i); }) }, void 0)); +console.log((0, jsx_runtime_1.jsx)("div", { children: (0, jsx_runtime_1.jsx)("div", {}) })); +console.log((0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("div", {}), (0, jsx_runtime_1.jsx)("div", {})] })); +console.log((0, jsx_runtime_1.jsx)("div", { children: [1, 2].map(function (i) { return (0, jsx_runtime_1.jsx)("div", { children: i }, i); }) })); diff --git a/tests/baselines/reference/jsxJsxsCjsTransformSubstitutesNames(jsx=react-jsx).js b/tests/baselines/reference/jsxJsxsCjsTransformSubstitutesNames(jsx=react-jsx).js index 9e00c8d0152ca..912e958c96c49 100644 --- a/tests/baselines/reference/jsxJsxsCjsTransformSubstitutesNames(jsx=react-jsx).js +++ b/tests/baselines/reference/jsxJsxsCjsTransformSubstitutesNames(jsx=react-jsx).js @@ -9,4 +9,4 @@ export {}; exports.__esModule = true; var jsx_runtime_1 = require("react/jsx-runtime"); /// -var a = (0, jsx_runtime_1.jsx)("div", {}, void 0); +var a = (0, jsx_runtime_1.jsx)("div", {}); diff --git a/tests/baselines/reference/jsxJsxsCjsTransformSubstitutesNamesFragment(jsx=react-jsx).js b/tests/baselines/reference/jsxJsxsCjsTransformSubstitutesNamesFragment(jsx=react-jsx).js index 9e53d1df09c8f..15daa7806469f 100644 --- a/tests/baselines/reference/jsxJsxsCjsTransformSubstitutesNamesFragment(jsx=react-jsx).js +++ b/tests/baselines/reference/jsxJsxsCjsTransformSubstitutesNamesFragment(jsx=react-jsx).js @@ -13,4 +13,4 @@ export {}; exports.__esModule = true; var jsx_runtime_1 = require("react/jsx-runtime"); /// -var a = (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("p", {}, void 0), "text", (0, jsx_runtime_1.jsx)("div", {}, void 0)] }, void 0); +var a = (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("p", {}), "text", (0, jsx_runtime_1.jsx)("div", {})] }); diff --git a/tests/baselines/reference/jsxNamespaceGlobalReexport.js b/tests/baselines/reference/jsxNamespaceGlobalReexport.js index dab912ca0e59b..2e721ec56b9f1 100644 --- a/tests/baselines/reference/jsxNamespaceGlobalReexport.js +++ b/tests/baselines/reference/jsxNamespaceGlobalReexport.js @@ -110,5 +110,5 @@ export const Comp = () =>
; exports.__esModule = true; exports.Comp = void 0; var jsx_runtime_1 = require("preact/jsx-runtime"); -var Comp = function () { return (0, jsx_runtime_1.jsx)("div", {}, void 0); }; +var Comp = function () { return (0, jsx_runtime_1.jsx)("div", {}); }; exports.Comp = Comp; diff --git a/tests/baselines/reference/jsxNamespaceGlobalReexportMissingAliasTarget.js b/tests/baselines/reference/jsxNamespaceGlobalReexportMissingAliasTarget.js index ff1dfd19b1d21..bf3132f4e4da8 100644 --- a/tests/baselines/reference/jsxNamespaceGlobalReexportMissingAliasTarget.js +++ b/tests/baselines/reference/jsxNamespaceGlobalReexportMissingAliasTarget.js @@ -106,5 +106,5 @@ export const Comp = () =>
; exports.__esModule = true; exports.Comp = void 0; var jsx_runtime_1 = require("preact/jsx-runtime"); -var Comp = function () { return (0, jsx_runtime_1.jsx)("div", {}, void 0); }; +var Comp = function () { return (0, jsx_runtime_1.jsx)("div", {}); }; exports.Comp = Comp; diff --git a/tests/baselines/reference/jsxNamespaceImplicitImportJSXNamespace.js b/tests/baselines/reference/jsxNamespaceImplicitImportJSXNamespace.js index faf0631075199..f6aefee450f7a 100644 --- a/tests/baselines/reference/jsxNamespaceImplicitImportJSXNamespace.js +++ b/tests/baselines/reference/jsxNamespaceImplicitImportJSXNamespace.js @@ -106,5 +106,5 @@ export const Comp = () =>
; exports.__esModule = true; exports.Comp = void 0; var jsx_runtime_1 = require("preact/jsx-runtime"); -var Comp = function () { return (0, jsx_runtime_1.jsx)("div", {}, void 0); }; +var Comp = function () { return (0, jsx_runtime_1.jsx)("div", {}); }; exports.Comp = Comp; diff --git a/tests/baselines/reference/jsxNamespaceImplicitImportJSXNamespaceFromConfigPickedOverGlobalOne(jsx=react-jsx).js b/tests/baselines/reference/jsxNamespaceImplicitImportJSXNamespaceFromConfigPickedOverGlobalOne(jsx=react-jsx).js index 436bbc6930f72..9d09b3dfca13e 100644 --- a/tests/baselines/reference/jsxNamespaceImplicitImportJSXNamespaceFromConfigPickedOverGlobalOne(jsx=react-jsx).js +++ b/tests/baselines/reference/jsxNamespaceImplicitImportJSXNamespaceFromConfigPickedOverGlobalOne(jsx=react-jsx).js @@ -69,5 +69,5 @@ export const Comp = () =>
; exports.__esModule = true; exports.Comp = void 0; var jsx_runtime_1 = require("@emotion/react/jsx-runtime"); -var Comp = function () { return (0, jsx_runtime_1.jsx)("div", { css: "color: hotpink;" }, void 0); }; +var Comp = function () { return (0, jsx_runtime_1.jsx)("div", { css: "color: hotpink;" }); }; exports.Comp = Comp; diff --git a/tests/baselines/reference/jsxNamespaceImplicitImportJSXNamespaceFromPragmaPickedOverGlobalOne.js b/tests/baselines/reference/jsxNamespaceImplicitImportJSXNamespaceFromPragmaPickedOverGlobalOne.js index eb234fe58df7b..0161b0c2acf51 100644 --- a/tests/baselines/reference/jsxNamespaceImplicitImportJSXNamespaceFromPragmaPickedOverGlobalOne.js +++ b/tests/baselines/reference/jsxNamespaceImplicitImportJSXNamespaceFromPragmaPickedOverGlobalOne.js @@ -71,5 +71,5 @@ exports.__esModule = true; exports.Comp = void 0; var jsx_runtime_1 = require("@emotion/react/jsx-runtime"); /* @jsxImportSource @emotion/react */ -var Comp = function () { return (0, jsx_runtime_1.jsx)("div", { css: "color: hotpink;" }, void 0); }; +var Comp = function () { return (0, jsx_runtime_1.jsx)("div", { css: "color: hotpink;" }); }; exports.Comp = Comp; diff --git a/tests/baselines/reference/jsxParsingError4(strict=false).js b/tests/baselines/reference/jsxParsingError4(strict=false).js new file mode 100644 index 0000000000000..930ef5072a9a3 --- /dev/null +++ b/tests/baselines/reference/jsxParsingError4(strict=false).js @@ -0,0 +1,20 @@ +//// [a.tsx] +declare const React: any +declare namespace JSX { + interface IntrinsicElements { + [k: string]: any + } +} + +const a = ( + +); + +const b = ( + +); + + +//// [a.js] +var a = (React.createElement("public-foo", null)); +var b = (React.createElement("public", null)); diff --git a/tests/baselines/reference/jsxParsingError4(strict=false).symbols b/tests/baselines/reference/jsxParsingError4(strict=false).symbols new file mode 100644 index 0000000000000..b4f35e534fa8f --- /dev/null +++ b/tests/baselines/reference/jsxParsingError4(strict=false).symbols @@ -0,0 +1,33 @@ +=== tests/cases/conformance/jsx/a.tsx === +declare const React: any +>React : Symbol(React, Decl(a.tsx, 0, 13)) + +declare namespace JSX { +>JSX : Symbol(JSX, Decl(a.tsx, 0, 24)) + + interface IntrinsicElements { +>IntrinsicElements : Symbol(IntrinsicElements, Decl(a.tsx, 1, 23)) + + [k: string]: any +>k : Symbol(k, Decl(a.tsx, 3, 9)) + } +} + +const a = ( +>a : Symbol(a, Decl(a.tsx, 7, 5)) + + +>public-foo : Symbol(JSX.IntrinsicElements, Decl(a.tsx, 1, 23)) +>public-foo : Symbol(JSX.IntrinsicElements, Decl(a.tsx, 1, 23)) + +); + +const b = ( +>b : Symbol(b, Decl(a.tsx, 11, 5)) + + +>public : Symbol(JSX.IntrinsicElements, Decl(a.tsx, 1, 23)) +>public : Symbol(JSX.IntrinsicElements, Decl(a.tsx, 1, 23)) + +); + diff --git a/tests/baselines/reference/jsxParsingError4(strict=false).types b/tests/baselines/reference/jsxParsingError4(strict=false).types new file mode 100644 index 0000000000000..021360520c02f --- /dev/null +++ b/tests/baselines/reference/jsxParsingError4(strict=false).types @@ -0,0 +1,33 @@ +=== tests/cases/conformance/jsx/a.tsx === +declare const React: any +>React : any + +declare namespace JSX { + interface IntrinsicElements { + [k: string]: any +>k : string + } +} + +const a = ( +>a : error +>( ) : error + + +> : error +>public-foo : any +>public-foo : any + +); + +const b = ( +>b : error +>( ) : error + + +> : error +>public : any +>public : any + +); + diff --git a/tests/baselines/reference/jsxParsingError4(strict=true).errors.txt b/tests/baselines/reference/jsxParsingError4(strict=true).errors.txt new file mode 100644 index 0000000000000..aeac8698a0ae0 --- /dev/null +++ b/tests/baselines/reference/jsxParsingError4(strict=true).errors.txt @@ -0,0 +1,24 @@ +tests/cases/conformance/jsx/a.tsx(13,4): error TS1212: Identifier expected. 'public' is a reserved word in strict mode. +tests/cases/conformance/jsx/a.tsx(13,13): error TS1212: Identifier expected. 'public' is a reserved word in strict mode. + + +==== tests/cases/conformance/jsx/a.tsx (2 errors) ==== + declare const React: any + declare namespace JSX { + interface IntrinsicElements { + [k: string]: any + } + } + + const a = ( + + ); + + const b = ( + + ~~~~~~ +!!! error TS1212: Identifier expected. 'public' is a reserved word in strict mode. + ~~~~~~ +!!! error TS1212: Identifier expected. 'public' is a reserved word in strict mode. + ); + \ No newline at end of file diff --git a/tests/baselines/reference/jsxParsingError4(strict=true).js b/tests/baselines/reference/jsxParsingError4(strict=true).js new file mode 100644 index 0000000000000..efa0735dc7374 --- /dev/null +++ b/tests/baselines/reference/jsxParsingError4(strict=true).js @@ -0,0 +1,21 @@ +//// [a.tsx] +declare const React: any +declare namespace JSX { + interface IntrinsicElements { + [k: string]: any + } +} + +const a = ( + +); + +const b = ( + +); + + +//// [a.js] +"use strict"; +var a = (React.createElement("public-foo", null)); +var b = (React.createElement("public", null)); diff --git a/tests/baselines/reference/jsxParsingError4(strict=true).symbols b/tests/baselines/reference/jsxParsingError4(strict=true).symbols new file mode 100644 index 0000000000000..b4f35e534fa8f --- /dev/null +++ b/tests/baselines/reference/jsxParsingError4(strict=true).symbols @@ -0,0 +1,33 @@ +=== tests/cases/conformance/jsx/a.tsx === +declare const React: any +>React : Symbol(React, Decl(a.tsx, 0, 13)) + +declare namespace JSX { +>JSX : Symbol(JSX, Decl(a.tsx, 0, 24)) + + interface IntrinsicElements { +>IntrinsicElements : Symbol(IntrinsicElements, Decl(a.tsx, 1, 23)) + + [k: string]: any +>k : Symbol(k, Decl(a.tsx, 3, 9)) + } +} + +const a = ( +>a : Symbol(a, Decl(a.tsx, 7, 5)) + + +>public-foo : Symbol(JSX.IntrinsicElements, Decl(a.tsx, 1, 23)) +>public-foo : Symbol(JSX.IntrinsicElements, Decl(a.tsx, 1, 23)) + +); + +const b = ( +>b : Symbol(b, Decl(a.tsx, 11, 5)) + + +>public : Symbol(JSX.IntrinsicElements, Decl(a.tsx, 1, 23)) +>public : Symbol(JSX.IntrinsicElements, Decl(a.tsx, 1, 23)) + +); + diff --git a/tests/baselines/reference/jsxParsingError4(strict=true).types b/tests/baselines/reference/jsxParsingError4(strict=true).types new file mode 100644 index 0000000000000..f65d2d679b39c --- /dev/null +++ b/tests/baselines/reference/jsxParsingError4(strict=true).types @@ -0,0 +1,33 @@ +=== tests/cases/conformance/jsx/a.tsx === +declare const React: any +>React : any + +declare namespace JSX { + interface IntrinsicElements { + [k: string]: any +>k : string + } +} + +const a = ( +>a : any +>( ) : any + + +> : any +>public-foo : any +>public-foo : any + +); + +const b = ( +>b : any +>( ) : any + + +> : any +>public : any +>public : any + +); + diff --git a/tests/baselines/reference/keyofAndIndexedAccess.errors.txt b/tests/baselines/reference/keyofAndIndexedAccess.errors.txt new file mode 100644 index 0000000000000..f5c436bbf1dc2 --- /dev/null +++ b/tests/baselines/reference/keyofAndIndexedAccess.errors.txt @@ -0,0 +1,709 @@ +tests/cases/conformance/types/keyof/keyofAndIndexedAccess.ts(316,5): error TS2322: Type 'T' is not assignable to type '{}'. +tests/cases/conformance/types/keyof/keyofAndIndexedAccess.ts(317,5): error TS2322: Type 'T[keyof T]' is not assignable to type '{}'. + Type 'T[string] | T[number] | T[symbol]' is not assignable to type '{}'. + Type 'T[string]' is not assignable to type '{}'. +tests/cases/conformance/types/keyof/keyofAndIndexedAccess.ts(318,5): error TS2322: Type 'T[K]' is not assignable to type '{}'. + Type 'T[keyof T]' is not assignable to type '{}'. +tests/cases/conformance/types/keyof/keyofAndIndexedAccess.ts(323,5): error TS2322: Type 'T' is not assignable to type '{} | null | undefined'. +tests/cases/conformance/types/keyof/keyofAndIndexedAccess.ts(324,5): error TS2322: Type 'T[keyof T]' is not assignable to type '{} | null | undefined'. + Type 'T[string] | T[number] | T[symbol]' is not assignable to type '{} | null | undefined'. + Type 'T[string]' is not assignable to type '{} | null | undefined'. +tests/cases/conformance/types/keyof/keyofAndIndexedAccess.ts(325,5): error TS2322: Type 'T[K]' is not assignable to type '{} | null | undefined'. + Type 'T[keyof T]' is not assignable to type '{} | null | undefined'. +tests/cases/conformance/types/keyof/keyofAndIndexedAccess.ts(611,33): error TS2345: Argument of type 'T[K]' is not assignable to parameter of type '{} | null | undefined'. + Type 'T[keyof T]' is not assignable to type '{} | null | undefined'. + Type 'T[string] | T[number] | T[symbol]' is not assignable to type '{} | null | undefined'. + Type 'T[string]' is not assignable to type '{} | null | undefined'. +tests/cases/conformance/types/keyof/keyofAndIndexedAccess.ts(619,13): error TS2322: Type 'T[keyof T]' is not assignable to type '{} | null | undefined'. + Type 'T[string] | T[number] | T[symbol]' is not assignable to type '{} | null | undefined'. + Type 'T[string]' is not assignable to type '{} | null | undefined'. + + +==== tests/cases/conformance/types/keyof/keyofAndIndexedAccess.ts (8 errors) ==== + class Shape { + name: string; + width: number; + height: number; + visible: boolean; + } + + class TaggedShape extends Shape { + tag: string; + } + + class Item { + name: string; + price: number; + } + + class Options { + visible: "yes" | "no"; + } + + type Dictionary = { [x: string]: T }; + type NumericallyIndexed = { [x: number]: T }; + + const enum E { A, B, C } + + type K00 = keyof any; // string + type K01 = keyof string; // "toString" | "charAt" | ... + type K02 = keyof number; // "toString" | "toFixed" | "toExponential" | ... + type K03 = keyof boolean; // "valueOf" + type K04 = keyof void; // never + type K05 = keyof undefined; // never + type K06 = keyof null; // never + type K07 = keyof never; // string | number | symbol + type K08 = keyof unknown; // never + + type K10 = keyof Shape; // "name" | "width" | "height" | "visible" + type K11 = keyof Shape[]; // "length" | "toString" | ... + type K12 = keyof Dictionary; // string + type K13 = keyof {}; // never + type K14 = keyof Object; // "constructor" | "toString" | ... + type K15 = keyof E; // "toString" | "toFixed" | "toExponential" | ... + type K16 = keyof [string, number]; // "0" | "1" | "length" | "toString" | ... + type K17 = keyof (Shape | Item); // "name" + type K18 = keyof (Shape & Item); // "name" | "width" | "height" | "visible" | "price" + type K19 = keyof NumericallyIndexed // never + + type KeyOf = keyof T; + + type K20 = KeyOf; // "name" | "width" | "height" | "visible" + type K21 = KeyOf>; // string + + type NAME = "name"; + type WIDTH_OR_HEIGHT = "width" | "height"; + + type Q10 = Shape["name"]; // string + type Q11 = Shape["width" | "height"]; // number + type Q12 = Shape["name" | "visible"]; // string | boolean + + type Q20 = Shape[NAME]; // string + type Q21 = Shape[WIDTH_OR_HEIGHT]; // number + + type Q30 = [string, number][0]; // string + type Q31 = [string, number][1]; // number + type Q32 = [string, number][number]; // string | number + type Q33 = [string, number][E.A]; // string + type Q34 = [string, number][E.B]; // number + type Q35 = [string, number]["0"]; // string + type Q36 = [string, number]["1"]; // string + + type Q40 = (Shape | Options)["visible"]; // boolean | "yes" | "no" + type Q41 = (Shape & Options)["visible"]; // true & "yes" | true & "no" | false & "yes" | false & "no" + + type Q50 = Dictionary["howdy"]; // Shape + type Q51 = Dictionary[123]; // Shape + type Q52 = Dictionary[E.B]; // Shape + + declare let cond: boolean; + + function getProperty(obj: T, key: K) { + return obj[key]; + } + + function setProperty(obj: T, key: K, value: T[K]) { + obj[key] = value; + } + + function f10(shape: Shape) { + let name = getProperty(shape, "name"); // string + let widthOrHeight = getProperty(shape, cond ? "width" : "height"); // number + let nameOrVisible = getProperty(shape, cond ? "name" : "visible"); // string | boolean + setProperty(shape, "name", "rectangle"); + setProperty(shape, cond ? "width" : "height", 10); + setProperty(shape, cond ? "name" : "visible", true); // Technically not safe + } + + function f11(a: Shape[]) { + let len = getProperty(a, "length"); // number + setProperty(a, "length", len); + } + + function f12(t: [Shape, boolean]) { + let len = getProperty(t, "length"); + let s2 = getProperty(t, "0"); // Shape + let b2 = getProperty(t, "1"); // boolean + } + + function f13(foo: any, bar: any) { + let x = getProperty(foo, "x"); // any + let y = getProperty(foo, "100"); // any + let z = getProperty(foo, bar); // any + } + + class Component { + props: PropType; + getProperty(key: K) { + return this.props[key]; + } + setProperty(key: K, value: PropType[K]) { + this.props[key] = value; + } + } + + function f20(component: Component) { + let name = component.getProperty("name"); // string + let widthOrHeight = component.getProperty(cond ? "width" : "height"); // number + let nameOrVisible = component.getProperty(cond ? "name" : "visible"); // string | boolean + component.setProperty("name", "rectangle"); + component.setProperty(cond ? "width" : "height", 10) + component.setProperty(cond ? "name" : "visible", true); // Technically not safe + } + + function pluck(array: T[], key: K) { + return array.map(x => x[key]); + } + + function f30(shapes: Shape[]) { + let names = pluck(shapes, "name"); // string[] + let widths = pluck(shapes, "width"); // number[] + let nameOrVisibles = pluck(shapes, cond ? "name" : "visible"); // (string | boolean)[] + } + + function f31(key: K) { + const shape: Shape = { name: "foo", width: 5, height: 10, visible: true }; + return shape[key]; // Shape[K] + } + + function f32(key: K) { + const shape: Shape = { name: "foo", width: 5, height: 10, visible: true }; + return shape[key]; // Shape[K] + } + + function f33(shape: S, key: K) { + let name = getProperty(shape, "name"); + let prop = getProperty(shape, key); + return prop; + } + + function f34(ts: TaggedShape) { + let tag1 = f33(ts, "tag"); + let tag2 = getProperty(ts, "tag"); + } + + class C { + public x: string; + protected y: string; + private z: string; + } + + // Indexed access expressions have always permitted access to private and protected members. + // For consistency we also permit such access in indexed access types. + function f40(c: C) { + type X = C["x"]; + type Y = C["y"]; + type Z = C["z"]; + let x: X = c["x"]; + let y: Y = c["y"]; + let z: Z = c["z"]; + } + + function f50(k: keyof T, s: string) { + const x1 = s as keyof T; + const x2 = k as string; + } + + function f51(k: K, s: string) { + const x1 = s as keyof T; + const x2 = k as string; + } + + function f52(obj: { [x: string]: boolean }, k: Exclude, s: string, n: number) { + const x1 = obj[s]; + const x2 = obj[n]; + const x3 = obj[k]; + } + + function f53>(obj: { [x: string]: boolean }, k: K, s: string, n: number) { + const x1 = obj[s]; + const x2 = obj[n]; + const x3 = obj[k]; + } + + function f54(obj: T, key: keyof T) { + for (let s in obj[key]) { + } + const b = "foo" in obj[key]; + } + + function f55(obj: T, key: K) { + for (let s in obj[key]) { + } + const b = "foo" in obj[key]; + } + + function f60(source: T, target: T) { + for (let k in source) { + target[k] = source[k]; + } + } + + function f70(func: (k1: keyof (T | U), k2: keyof (T & U)) => void) { + func<{ a: any, b: any }, { a: any, c: any }>('a', 'a'); + func<{ a: any, b: any }, { a: any, c: any }>('a', 'b'); + func<{ a: any, b: any }, { a: any, c: any }>('a', 'c'); + } + + function f71(func: (x: T, y: U) => Partial) { + let x = func({ a: 1, b: "hello" }, { c: true }); + x.a; // number | undefined + x.b; // string | undefined + x.c; // boolean | undefined + } + + function f72(func: (x: T, y: U, k: K) => (T & U)[K]) { + let a = func({ a: 1, b: "hello" }, { c: true }, 'a'); // number + let b = func({ a: 1, b: "hello" }, { c: true }, 'b'); // string + let c = func({ a: 1, b: "hello" }, { c: true }, 'c'); // boolean + } + + function f73(func: (x: T, y: U, k: K) => (T & U)[K]) { + let a = func({ a: 1, b: "hello" }, { c: true }, 'a'); // number + let b = func({ a: 1, b: "hello" }, { c: true }, 'b'); // string + let c = func({ a: 1, b: "hello" }, { c: true }, 'c'); // boolean + } + + function f74(func: (x: T, y: U, k: K) => (T | U)[K]) { + let a = func({ a: 1, b: "hello" }, { a: 2, b: true }, 'a'); // number + let b = func({ a: 1, b: "hello" }, { a: 2, b: true }, 'b'); // string | boolean + } + + function f80(obj: T) { + let a1 = obj.a; // { x: any } + let a2 = obj['a']; // { x: any } + let a3 = obj['a'] as T['a']; // T["a"] + let x1 = obj.a.x; // any + let x2 = obj['a']['x']; // any + let x3 = obj['a']['x'] as T['a']['x']; // T["a"]["x"] + } + + function f81(obj: T) { + return obj['a']['x'] as T['a']['x']; + } + + function f82() { + let x1 = f81({ a: { x: "hello" } }); // string + let x2 = f81({ a: { x: 42 } }); // number + } + + function f83(obj: T, key: K) { + return obj[key]['x'] as T[K]['x']; + } + + function f84() { + let x1 = f83({ foo: { x: "hello" } }, "foo"); // string + let x2 = f83({ bar: { x: 42 } }, "bar"); // number + } + + class C1 { + x: number; + get(key: K) { + return this[key]; + } + set(key: K, value: this[K]) { + this[key] = value; + } + foo() { + let x1 = this.x; // number + let x2 = this["x"]; // number + let x3 = this.get("x"); // this["x"] + let x4 = getProperty(this, "x"); // this["x"] + this.x = 42; + this["x"] = 42; + this.set("x", 42); + setProperty(this, "x", 42); + } + } + + type S2 = { + a: string; + b: string; + }; + + function f90(x1: S2[keyof S2], x2: T[keyof S2], x3: S2[K]) { + x1 = x2; + x1 = x3; + x2 = x1; + x2 = x3; + x3 = x1; + x3 = x2; + x1.length; + x2.length; + x3.length; + } + + function f91(x: T, y: T[keyof T], z: T[K]) { + let a: {}; + a = x; + ~ +!!! error TS2322: Type 'T' is not assignable to type '{}'. +!!! related TS2208 tests/cases/conformance/types/keyof/keyofAndIndexedAccess.ts:314:14: This type parameter probably needs an `extends object` constraint. + a = y; + ~ +!!! error TS2322: Type 'T[keyof T]' is not assignable to type '{}'. +!!! error TS2322: Type 'T[string] | T[number] | T[symbol]' is not assignable to type '{}'. +!!! error TS2322: Type 'T[string]' is not assignable to type '{}'. + a = z; + ~ +!!! error TS2322: Type 'T[K]' is not assignable to type '{}'. +!!! error TS2322: Type 'T[keyof T]' is not assignable to type '{}'. + } + + function f92(x: T, y: T[keyof T], z: T[K]) { + let a: {} | null | undefined; + a = x; + ~ +!!! error TS2322: Type 'T' is not assignable to type '{} | null | undefined'. +!!! related TS2208 tests/cases/conformance/types/keyof/keyofAndIndexedAccess.ts:321:14: This type parameter probably needs an `extends object` constraint. + a = y; + ~ +!!! error TS2322: Type 'T[keyof T]' is not assignable to type '{} | null | undefined'. +!!! error TS2322: Type 'T[string] | T[number] | T[symbol]' is not assignable to type '{} | null | undefined'. +!!! error TS2322: Type 'T[string]' is not assignable to type '{} | null | undefined'. + a = z; + ~ +!!! error TS2322: Type 'T[K]' is not assignable to type '{} | null | undefined'. +!!! error TS2322: Type 'T[keyof T]' is not assignable to type '{} | null | undefined'. + } + + // Repros from #12011 + + class Base { + get(prop: K) { + return this[prop]; + } + set(prop: K, value: this[K]) { + this[prop] = value; + } + } + + class Person extends Base { + parts: number; + constructor(parts: number) { + super(); + this.set("parts", parts); + } + getParts() { + return this.get("parts") + } + } + + class OtherPerson { + parts: number; + constructor(parts: number) { + setProperty(this, "parts", parts); + } + getParts() { + return getProperty(this, "parts") + } + } + + // Modified repro from #12544 + + function path(obj: T, key1: K1): T[K1]; + function path(obj: T, key1: K1, key2: K2): T[K1][K2]; + function path(obj: T, key1: K1, key2: K2, key3: K3): T[K1][K2][K3]; + function path(obj: any, ...keys: (string | number)[]): any; + function path(obj: any, ...keys: (string | number)[]): any { + let result = obj; + for (let k of keys) { + result = result[k]; + } + return result; + } + + type Thing = { + a: { x: number, y: string }, + b: boolean + }; + + + function f1(thing: Thing) { + let x1 = path(thing, 'a'); // { x: number, y: string } + let x2 = path(thing, 'a', 'y'); // string + let x3 = path(thing, 'b'); // boolean + let x4 = path(thing, ...['a', 'x']); // any + } + + // Repro from comment in #12114 + + const assignTo2 = (object: T, key1: K1, key2: K2) => + (value: T[K1][K2]) => object[key1][key2] = value; + + // Modified repro from #12573 + + declare function one(handler: (t: T) => void): T + var empty = one(() => {}) // inferred as {}, expected + + type Handlers = { [K in keyof T]: (t: T[K]) => void } + declare function on(handlerHash: Handlers): T + var hashOfEmpty1 = on({ test: () => {} }); // {} + var hashOfEmpty2 = on({ test: (x: boolean) => {} }); // { test: boolean } + + // Repro from #12624 + + interface Options1 { + data?: Data + computed?: Computed; + } + + declare class Component1 { + constructor(options: Options1); + get(key: K): (Data & Computed)[K]; + } + + let c1 = new Component1({ + data: { + hello: "" + } + }); + + c1.get("hello"); + + // Repro from #12625 + + interface Options2 { + data?: Data + computed?: Computed; + } + + declare class Component2 { + constructor(options: Options2); + get(key: K): (Data & Computed)[K]; + } + + // Repro from #12641 + + interface R { + p: number; + } + + function f(p: K) { + let a: any; + a[p].add; // any + } + + // Repro from #12651 + + type MethodDescriptor = { + name: string; + args: any[]; + returnValue: any; + } + + declare function dispatchMethod(name: M['name'], args: M['args']): M['returnValue']; + + type SomeMethodDescriptor = { + name: "someMethod"; + args: [string, number]; + returnValue: string[]; + } + + let result = dispatchMethod("someMethod", ["hello", 35]); + + // Repro from #13073 + + type KeyTypes = "a" | "b" + let MyThingy: { [key in KeyTypes]: string[] }; + + function addToMyThingy(key: S) { + MyThingy[key].push("a"); + } + + // Repro from #13102 + + type Handler = { + onChange: (name: keyof T) => void; + }; + + function onChangeGenericFunction(handler: Handler) { + handler.onChange('preset') + } + + // Repro from #13285 + + function updateIds, K extends string>( + obj: T, + idFields: K[], + idMapping: Partial> + ): Record { + for (const idField of idFields) { + const newId: T[K] | undefined = idMapping[obj[idField]]; + if (newId) { + obj[idField] = newId; + } + } + return obj; + } + + // Repro from #13285 + + function updateIds2( + obj: T, + key: K, + stringMap: { [oldId: string]: string } + ) { + var x = obj[key]; + stringMap[x]; // Should be OK. + } + + // Repro from #13514 + + declare function head>(list: T): T[0]; + + // Repro from #13604 + + class A { + props: T & { foo: string }; + } + + class B extends A<{ x: number}> { + f(p: this["props"]) { + p.x; + } + } + + // Repro from #13749 + + class Form { + private childFormFactories: {[K in keyof T]: (v: T[K]) => Form} + + public set(prop: K, value: T[K]) { + this.childFormFactories[prop](value) + } + } + + // Repro from #13787 + + class SampleClass

{ + public props: Readonly

; + constructor(props: P) { + this.props = Object.freeze(props); + } + } + + interface Foo { + foo: string; + } + + declare function merge(obj1: T, obj2: U): T & U; + + class AnotherSampleClass extends SampleClass { + constructor(props: T) { + const foo: Foo = { foo: "bar" }; + super(merge(props, foo)); + } + + public brokenMethod() { + this.props.foo.concat; + } + } + new AnotherSampleClass({}); + + // Positive repro from #17166 + function f3>(t: T, k: K, tk: T[K]): void { + for (let key in t) { + key = k // ok, K ==> keyof T + t[key] = tk; // ok, T[K] ==> T[keyof T] + } + } + + // # 21185 + type Predicates = { + [T in keyof TaggedRecord]: (variant: TaggedRecord[keyof TaggedRecord]) => variant is TaggedRecord[T] + } + + // Repros from #23592 + + type Example = { [K in keyof T]: T[K]["prop"] }; + type Result = Example<{ a: { prop: string }; b: { prop: number } }>; + + type Helper2 = { [K in keyof T]: Extract }; + type Example2 = { [K in keyof Helper2]: Helper2[K]["prop"] }; + type Result2 = Example2<{ 1: { prop: string }; 2: { prop: number } }>; + + // Repro from #23618 + + type DBBoolTable = { [k in K]: 0 | 1 } + enum Flag { + FLAG_1 = "flag_1", + FLAG_2 = "flag_2" + } + + type SimpleDBRecord = { staticField: number } & DBBoolTable + function getFlagsFromSimpleRecord(record: SimpleDBRecord, flags: Flag[]) { + return record[flags[0]]; + } + + type DynamicDBRecord = ({ dynamicField: number } | { dynamicField: string }) & DBBoolTable + function getFlagsFromDynamicRecord(record: DynamicDBRecord, flags: Flag[]) { + return record[flags[0]]; + } + + // Repro from #21368 + + interface I { + foo: string; + } + + declare function take(p: T): void; + + function fn(o: T, k: K) { + take<{} | null | undefined>(o[k]); + ~~~~ +!!! error TS2345: Argument of type 'T[K]' is not assignable to parameter of type '{} | null | undefined'. +!!! error TS2345: Type 'T[keyof T]' is not assignable to type '{} | null | undefined'. +!!! error TS2345: Type 'T[string] | T[number] | T[symbol]' is not assignable to type '{} | null | undefined'. +!!! error TS2345: Type 'T[string]' is not assignable to type '{} | null | undefined'. + take(o[k]); + } + + // Repro from #23133 + + class Unbounded { + foo(x: T[keyof T]) { + let y: {} | undefined | null = x; + ~ +!!! error TS2322: Type 'T[keyof T]' is not assignable to type '{} | null | undefined'. +!!! error TS2322: Type 'T[string] | T[number] | T[symbol]' is not assignable to type '{} | null | undefined'. +!!! error TS2322: Type 'T[string]' is not assignable to type '{} | null | undefined'. + } + } + + // Repro from #23940 + + interface I7 { + x: any; + } + type Foo7 = T; + declare function f7(type: K): Foo7; + + // Repro from #21770 + + type Dict = { [key in T]: number }; + type DictDict = { [key in V]: Dict }; + + function ff1(dd: DictDict, k1: V, k2: T): number { + return dd[k1][k2]; + } + + function ff2(dd: DictDict, k1: V, k2: T): number { + const d: Dict = dd[k1]; + return d[k2]; + } + + // Repro from #26409 + + const cf1 = (t: T, k: K) => + { + const s: string = t[k]; + t.cool; + }; + + const cf2 = (t: T, k: K) => + { + const s: string = t[k]; + t.cool; + }; + \ No newline at end of file diff --git a/tests/baselines/reference/keyofAndIndexedAccess.js b/tests/baselines/reference/keyofAndIndexedAccess.js index d9445d47a2c6e..f7c34bdb3329f 100644 --- a/tests/baselines/reference/keyofAndIndexedAccess.js +++ b/tests/baselines/reference/keyofAndIndexedAccess.js @@ -1040,10 +1040,8 @@ var SampleClass = /** @class */ (function () { var AnotherSampleClass = /** @class */ (function (_super) { __extends(AnotherSampleClass, _super); function AnotherSampleClass(props) { - var _this = this; var foo = { foo: "bar" }; - _this = _super.call(this, merge(props, foo)) || this; - return _this; + return _super.call(this, merge(props, foo)) || this; } AnotherSampleClass.prototype.brokenMethod = function () { this.props.foo.concat; diff --git a/tests/baselines/reference/keyofAndIndexedAccess.symbols b/tests/baselines/reference/keyofAndIndexedAccess.symbols index c3bebb6c7d042..277a012517b16 100644 --- a/tests/baselines/reference/keyofAndIndexedAccess.symbols +++ b/tests/baselines/reference/keyofAndIndexedAccess.symbols @@ -1933,9 +1933,9 @@ class SampleClass

{ >this.props : Symbol(SampleClass.props, Decl(keyofAndIndexedAccess.ts, 536, 22)) >this : Symbol(SampleClass, Decl(keyofAndIndexedAccess.ts, 532, 1)) >props : Symbol(SampleClass.props, Decl(keyofAndIndexedAccess.ts, 536, 22)) ->Object.freeze : Symbol(ObjectConstructor.freeze, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>Object.freeze : Symbol(ObjectConstructor.freeze, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) >Object : Symbol(Object, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) ->freeze : Symbol(ObjectConstructor.freeze, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>freeze : Symbol(ObjectConstructor.freeze, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) >props : Symbol(props, Decl(keyofAndIndexedAccess.ts, 538, 16)) } } diff --git a/tests/baselines/reference/keyofAndIndexedAccess.types b/tests/baselines/reference/keyofAndIndexedAccess.types index 47a7cbfdbd635..0c8af36f1ac79 100644 --- a/tests/baselines/reference/keyofAndIndexedAccess.types +++ b/tests/baselines/reference/keyofAndIndexedAccess.types @@ -1876,9 +1876,9 @@ class SampleClass

{ >this : this >props : Readonly

>Object.freeze(props) : Readonly

->Object.freeze : { (a: T[]): readonly T[]; (f: T): T; (o: T): Readonly; } +>Object.freeze : { (a: T[]): readonly T[]; (f: T): T; (o: T): Readonly; (o: T): Readonly; } >Object : ObjectConstructor ->freeze : { (a: T[]): readonly T[]; (f: T): T; (o: T): Readonly; } +>freeze : { (a: T[]): readonly T[]; (f: T): T; (o: T): Readonly; (o: T): Readonly; } >props : P } } diff --git a/tests/baselines/reference/keyofAndIndexedAccess2.symbols b/tests/baselines/reference/keyofAndIndexedAccess2.symbols index 1c3758c137d3e..a17aafe571aa5 100644 --- a/tests/baselines/reference/keyofAndIndexedAccess2.symbols +++ b/tests/baselines/reference/keyofAndIndexedAccess2.symbols @@ -440,9 +440,9 @@ function fn} | {elements: Array}>(par >fn : Symbol(fn, Decl(keyofAndIndexedAccess2.ts, 115, 69)) >T : Symbol(T, Decl(keyofAndIndexedAccess2.ts, 119, 12)) >elements : Symbol(elements, Decl(keyofAndIndexedAccess2.ts, 119, 23)) ->Array : Symbol(Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --) ... and 2 more) +>Array : Symbol(Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --) ... and 3 more) >elements : Symbol(elements, Decl(keyofAndIndexedAccess2.ts, 119, 51)) ->Array : Symbol(Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --) ... and 2 more) +>Array : Symbol(Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --) ... and 3 more) >param : Symbol(param, Decl(keyofAndIndexedAccess2.ts, 119, 77)) >T : Symbol(T, Decl(keyofAndIndexedAccess2.ts, 119, 12)) >cb : Symbol(cb, Decl(keyofAndIndexedAccess2.ts, 119, 86)) @@ -459,7 +459,7 @@ function fn} | {elements: Array}>(par function fn2>(param: T, cb: (element: T[number]) => void) { >fn2 : Symbol(fn2, Decl(keyofAndIndexedAccess2.ts, 121, 1)) >T : Symbol(T, Decl(keyofAndIndexedAccess2.ts, 123, 13)) ->Array : Symbol(Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --) ... and 2 more) +>Array : Symbol(Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --) ... and 3 more) >param : Symbol(param, Decl(keyofAndIndexedAccess2.ts, 123, 38)) >T : Symbol(T, Decl(keyofAndIndexedAccess2.ts, 123, 13)) >cb : Symbol(cb, Decl(keyofAndIndexedAccess2.ts, 123, 47)) @@ -476,7 +476,7 @@ function fn2>(param: T, cb: (element: T[number]) => void function fn3>(param: T, cb: (element: T[number]) => void) { >fn3 : Symbol(fn3, Decl(keyofAndIndexedAccess2.ts, 125, 1)) >T : Symbol(T, Decl(keyofAndIndexedAccess2.ts, 129, 13)) ->ReadonlyArray : Symbol(ReadonlyArray, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --), Decl(lib.es2019.array.d.ts, --, --)) +>ReadonlyArray : Symbol(ReadonlyArray, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --), Decl(lib.es2019.array.d.ts, --, --) ... and 1 more) >param : Symbol(param, Decl(keyofAndIndexedAccess2.ts, 129, 46)) >T : Symbol(T, Decl(keyofAndIndexedAccess2.ts, 129, 13)) >cb : Symbol(cb, Decl(keyofAndIndexedAccess2.ts, 129, 55)) @@ -494,12 +494,12 @@ function fn4() { let x: Array[K] = 'abc'; >x : Symbol(x, Decl(keyofAndIndexedAccess2.ts, 134, 7)) ->Array : Symbol(Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --) ... and 2 more) +>Array : Symbol(Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --) ... and 3 more) >K : Symbol(K, Decl(keyofAndIndexedAccess2.ts, 133, 13)) let y: ReadonlyArray[K] = 'abc'; >y : Symbol(y, Decl(keyofAndIndexedAccess2.ts, 135, 7)) ->ReadonlyArray : Symbol(ReadonlyArray, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --), Decl(lib.es2019.array.d.ts, --, --)) +>ReadonlyArray : Symbol(ReadonlyArray, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --), Decl(lib.es2019.array.d.ts, --, --) ... and 1 more) >K : Symbol(K, Decl(keyofAndIndexedAccess2.ts, 133, 13)) } diff --git a/tests/baselines/reference/keyofAndIndexedAccessErrors.errors.txt b/tests/baselines/reference/keyofAndIndexedAccessErrors.errors.txt index ba319beca3236..b629598156274 100644 --- a/tests/baselines/reference/keyofAndIndexedAccessErrors.errors.txt +++ b/tests/baselines/reference/keyofAndIndexedAccessErrors.errors.txt @@ -33,8 +33,11 @@ tests/cases/conformance/types/keyof/keyofAndIndexedAccessErrors.ts(82,5): error Type 'string | number | symbol' is not assignable to type 'keyof U'. Type 'string' is not assignable to type 'keyof U'. tests/cases/conformance/types/keyof/keyofAndIndexedAccessErrors.ts(83,5): error TS2322: Type 'keyof T | keyof U' is not assignable to type 'keyof T & keyof U'. + Type 'keyof T' is not assignable to type 'keyof T & keyof U'. tests/cases/conformance/types/keyof/keyofAndIndexedAccessErrors.ts(86,5): error TS2322: Type 'keyof T | keyof U' is not assignable to type 'keyof T & keyof U'. + Type 'keyof T' is not assignable to type 'keyof T & keyof U'. tests/cases/conformance/types/keyof/keyofAndIndexedAccessErrors.ts(87,5): error TS2322: Type 'keyof T | keyof U' is not assignable to type 'keyof T & keyof U'. + Type 'keyof T' is not assignable to type 'keyof T & keyof U'. tests/cases/conformance/types/keyof/keyofAndIndexedAccessErrors.ts(103,9): error TS2322: Type 'Extract' is not assignable to type 'K'. 'Extract' is assignable to the constraint of type 'K', but 'K' could be instantiated with a different subtype of constraint 'string'. Type 'string & keyof T' is not assignable to type 'K'. @@ -209,14 +212,17 @@ tests/cases/conformance/types/keyof/keyofAndIndexedAccessErrors.ts(142,5): error k1 = k4; // Error ~~ !!! error TS2322: Type 'keyof T | keyof U' is not assignable to type 'keyof T & keyof U'. +!!! error TS2322: Type 'keyof T' is not assignable to type 'keyof T & keyof U'. k2 = k1; k2 = k3; // Error ~~ !!! error TS2322: Type 'keyof T | keyof U' is not assignable to type 'keyof T & keyof U'. +!!! error TS2322: Type 'keyof T' is not assignable to type 'keyof T & keyof U'. k2 = k4; // Error ~~ !!! error TS2322: Type 'keyof T | keyof U' is not assignable to type 'keyof T & keyof U'. +!!! error TS2322: Type 'keyof T' is not assignable to type 'keyof T & keyof U'. k3 = k1; k3 = k2; diff --git a/tests/baselines/reference/labeledStatementWithLabel.errors.txt b/tests/baselines/reference/labeledStatementWithLabel.errors.txt index c7259e484eaaa..64dd004249f81 100644 --- a/tests/baselines/reference/labeledStatementWithLabel.errors.txt +++ b/tests/baselines/reference/labeledStatementWithLabel.errors.txt @@ -1,5 +1,5 @@ -tests/cases/conformance/statements/labeledStatements/labeledStatementWithLabel.ts(11,8): error TS1235: A namespace declaration is only allowed in a namespace or module. -tests/cases/conformance/statements/labeledStatements/labeledStatementWithLabel.ts(12,8): error TS1235: A namespace declaration is only allowed in a namespace or module. +tests/cases/conformance/statements/labeledStatements/labeledStatementWithLabel.ts(11,8): error TS1235: A namespace declaration is only allowed at the top level of a namespace or module. +tests/cases/conformance/statements/labeledStatements/labeledStatementWithLabel.ts(12,8): error TS1235: A namespace declaration is only allowed at the top level of a namespace or module. ==== tests/cases/conformance/statements/labeledStatements/labeledStatementWithLabel.ts (2 errors) ==== @@ -15,9 +15,9 @@ tests/cases/conformance/statements/labeledStatements/labeledStatementWithLabel.t label: module M { } ~~~~~~ -!!! error TS1235: A namespace declaration is only allowed in a namespace or module. +!!! error TS1235: A namespace declaration is only allowed at the top level of a namespace or module. label: namespace N {} ~~~~~~~~~ -!!! error TS1235: A namespace declaration is only allowed in a namespace or module. +!!! error TS1235: A namespace declaration is only allowed at the top level of a namespace or module. label: type T = {} \ No newline at end of file diff --git a/tests/baselines/reference/labeledStatementWithLabel_es2015.errors.txt b/tests/baselines/reference/labeledStatementWithLabel_es2015.errors.txt index 95c136b953de6..c2945254121ed 100644 --- a/tests/baselines/reference/labeledStatementWithLabel_es2015.errors.txt +++ b/tests/baselines/reference/labeledStatementWithLabel_es2015.errors.txt @@ -1,5 +1,5 @@ -tests/cases/conformance/statements/labeledStatements/labeledStatementWithLabel_es2015.ts(11,8): error TS1235: A namespace declaration is only allowed in a namespace or module. -tests/cases/conformance/statements/labeledStatements/labeledStatementWithLabel_es2015.ts(12,8): error TS1235: A namespace declaration is only allowed in a namespace or module. +tests/cases/conformance/statements/labeledStatements/labeledStatementWithLabel_es2015.ts(11,8): error TS1235: A namespace declaration is only allowed at the top level of a namespace or module. +tests/cases/conformance/statements/labeledStatements/labeledStatementWithLabel_es2015.ts(12,8): error TS1235: A namespace declaration is only allowed at the top level of a namespace or module. ==== tests/cases/conformance/statements/labeledStatements/labeledStatementWithLabel_es2015.ts (2 errors) ==== @@ -15,9 +15,9 @@ tests/cases/conformance/statements/labeledStatements/labeledStatementWithLabel_e label: module M { } ~~~~~~ -!!! error TS1235: A namespace declaration is only allowed in a namespace or module. +!!! error TS1235: A namespace declaration is only allowed at the top level of a namespace or module. label: namespace N {} ~~~~~~~~~ -!!! error TS1235: A namespace declaration is only allowed in a namespace or module. +!!! error TS1235: A namespace declaration is only allowed at the top level of a namespace or module. label: type T = {} \ No newline at end of file diff --git a/tests/baselines/reference/labeledStatementWithLabel_strict.errors.txt b/tests/baselines/reference/labeledStatementWithLabel_strict.errors.txt index 863604a083680..01f09aeab4df1 100644 --- a/tests/baselines/reference/labeledStatementWithLabel_strict.errors.txt +++ b/tests/baselines/reference/labeledStatementWithLabel_strict.errors.txt @@ -8,9 +8,9 @@ tests/cases/conformance/statements/labeledStatements/labeledStatementWithLabel_s tests/cases/conformance/statements/labeledStatements/labeledStatementWithLabel_strict.ts(9,1): error TS1344: 'A label is not allowed here. tests/cases/conformance/statements/labeledStatements/labeledStatementWithLabel_strict.ts(10,1): error TS1344: 'A label is not allowed here. tests/cases/conformance/statements/labeledStatements/labeledStatementWithLabel_strict.ts(12,1): error TS1344: 'A label is not allowed here. -tests/cases/conformance/statements/labeledStatements/labeledStatementWithLabel_strict.ts(12,8): error TS1235: A namespace declaration is only allowed in a namespace or module. +tests/cases/conformance/statements/labeledStatements/labeledStatementWithLabel_strict.ts(12,8): error TS1235: A namespace declaration is only allowed at the top level of a namespace or module. tests/cases/conformance/statements/labeledStatements/labeledStatementWithLabel_strict.ts(13,1): error TS1344: 'A label is not allowed here. -tests/cases/conformance/statements/labeledStatements/labeledStatementWithLabel_strict.ts(13,8): error TS1235: A namespace declaration is only allowed in a namespace or module. +tests/cases/conformance/statements/labeledStatements/labeledStatementWithLabel_strict.ts(13,8): error TS1235: A namespace declaration is only allowed at the top level of a namespace or module. tests/cases/conformance/statements/labeledStatements/labeledStatementWithLabel_strict.ts(14,1): error TS1344: 'A label is not allowed here. @@ -48,12 +48,12 @@ tests/cases/conformance/statements/labeledStatements/labeledStatementWithLabel_s ~~~~~ !!! error TS1344: 'A label is not allowed here. ~~~~~~ -!!! error TS1235: A namespace declaration is only allowed in a namespace or module. +!!! error TS1235: A namespace declaration is only allowed at the top level of a namespace or module. label: namespace N {} ~~~~~ !!! error TS1344: 'A label is not allowed here. ~~~~~~~~~ -!!! error TS1235: A namespace declaration is only allowed in a namespace or module. +!!! error TS1235: A namespace declaration is only allowed at the top level of a namespace or module. label: type T = {} ~~~~~ !!! error TS1344: 'A label is not allowed here. diff --git a/tests/baselines/reference/lastPropertyInLiteralWins.errors.txt b/tests/baselines/reference/lastPropertyInLiteralWins.errors.txt index 5e12521ad6064..ad10095d2581a 100644 --- a/tests/baselines/reference/lastPropertyInLiteralWins.errors.txt +++ b/tests/baselines/reference/lastPropertyInLiteralWins.errors.txt @@ -1,9 +1,9 @@ tests/cases/compiler/lastPropertyInLiteralWins.ts(8,5): error TS2322: Type '(num: number) => void' is not assignable to type '(str: string) => void'. Types of parameters 'num' and 'str' are incompatible. Type 'string' is not assignable to type 'number'. -tests/cases/compiler/lastPropertyInLiteralWins.ts(9,5): error TS2300: Duplicate identifier 'thunk'. +tests/cases/compiler/lastPropertyInLiteralWins.ts(9,5): error TS1117: An object literal cannot have multiple properties with the same name. tests/cases/compiler/lastPropertyInLiteralWins.ts(9,5): error TS2322: Type '(num: number) => void' is not assignable to type '(str: string) => void'. -tests/cases/compiler/lastPropertyInLiteralWins.ts(14,5): error TS2300: Duplicate identifier 'thunk'. +tests/cases/compiler/lastPropertyInLiteralWins.ts(14,5): error TS1117: An object literal cannot have multiple properties with the same name. ==== tests/cases/compiler/lastPropertyInLiteralWins.ts (4 errors) ==== @@ -22,7 +22,7 @@ tests/cases/compiler/lastPropertyInLiteralWins.ts(14,5): error TS2300: Duplicate !!! related TS6500 tests/cases/compiler/lastPropertyInLiteralWins.ts:2:5: The expected type comes from property 'thunk' which is declared here on type 'Thing' thunk: (num: number) => {} ~~~~~ -!!! error TS2300: Duplicate identifier 'thunk'. +!!! error TS1117: An object literal cannot have multiple properties with the same name. ~~~~~ !!! error TS2322: Type '(num: number) => void' is not assignable to type '(str: string) => void'. !!! related TS6500 tests/cases/compiler/lastPropertyInLiteralWins.ts:2:5: The expected type comes from property 'thunk' which is declared here on type 'Thing' @@ -32,6 +32,6 @@ tests/cases/compiler/lastPropertyInLiteralWins.ts(14,5): error TS2300: Duplicate thunk: (num: number) => {}, thunk: (str: string) => {} ~~~~~ -!!! error TS2300: Duplicate identifier 'thunk'. +!!! error TS1117: An object literal cannot have multiple properties with the same name. }); \ No newline at end of file diff --git a/tests/baselines/reference/legacyNodeModulesExportsSpecifierGenerationConditions.js b/tests/baselines/reference/legacyNodeModulesExportsSpecifierGenerationConditions.js new file mode 100644 index 0000000000000..a4d9ac6d90b02 --- /dev/null +++ b/tests/baselines/reference/legacyNodeModulesExportsSpecifierGenerationConditions.js @@ -0,0 +1,84 @@ +//// [tests/cases/conformance/node/legacyNodeModulesExportsSpecifierGenerationConditions.ts] //// + +//// [index.ts] +export const a = async () => (await import("inner")).x(); +//// [index.d.ts] +export { x } from "./other.js"; +//// [other.d.ts] +import { Thing } from "./private.js" +export const x: () => Thing; +//// [private.d.ts] +export interface Thing {} // not exported in export map, inaccessible under new module modes +//// [package.json] +{ + "name": "package", + "private": true, + "type": "module", + "exports": "./index.js" +} +//// [package.json] +{ + "name": "inner", + "private": true, + "type": "module", + "exports": { + ".": { + "default": "./index.js" + }, + "./other": { + "default": "./other.js" + } + } +} + +//// [index.js] +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __generator = (this && this.__generator) || function (thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (_) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + } +}; +exports.__esModule = true; +exports.a = void 0; +var a = function () { return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, Promise.resolve().then(function () { return require("inner"); })]; + case 1: return [2 /*return*/, (_a.sent()).x()]; + } +}); }); }; +exports.a = a; + + +//// [index.d.ts] +export declare const a: () => Promise; diff --git a/tests/baselines/reference/legacyNodeModulesExportsSpecifierGenerationConditions.symbols b/tests/baselines/reference/legacyNodeModulesExportsSpecifierGenerationConditions.symbols new file mode 100644 index 0000000000000..ee12f2e974ae8 --- /dev/null +++ b/tests/baselines/reference/legacyNodeModulesExportsSpecifierGenerationConditions.symbols @@ -0,0 +1,23 @@ +=== tests/cases/conformance/node/index.ts === +export const a = async () => (await import("inner")).x(); +>a : Symbol(a, Decl(index.ts, 0, 12)) +>(await import("inner")).x : Symbol(x, Decl(index.d.ts, 0, 8)) +>"inner" : Symbol("tests/cases/conformance/node/node_modules/inner/index", Decl(index.d.ts, 0, 0)) +>x : Symbol(x, Decl(index.d.ts, 0, 8)) + +=== tests/cases/conformance/node/node_modules/inner/index.d.ts === +export { x } from "./other.js"; +>x : Symbol(x, Decl(index.d.ts, 0, 8)) + +=== tests/cases/conformance/node/node_modules/inner/other.d.ts === +import { Thing } from "./private.js" +>Thing : Symbol(Thing, Decl(other.d.ts, 0, 8)) + +export const x: () => Thing; +>x : Symbol(x, Decl(other.d.ts, 1, 12)) +>Thing : Symbol(Thing, Decl(other.d.ts, 0, 8)) + +=== tests/cases/conformance/node/node_modules/inner/private.d.ts === +export interface Thing {} // not exported in export map, inaccessible under new module modes +>Thing : Symbol(Thing, Decl(private.d.ts, 0, 0)) + diff --git a/tests/baselines/reference/legacyNodeModulesExportsSpecifierGenerationConditions.types b/tests/baselines/reference/legacyNodeModulesExportsSpecifierGenerationConditions.types new file mode 100644 index 0000000000000..b0aa85034178d --- /dev/null +++ b/tests/baselines/reference/legacyNodeModulesExportsSpecifierGenerationConditions.types @@ -0,0 +1,26 @@ +=== tests/cases/conformance/node/index.ts === +export const a = async () => (await import("inner")).x(); +>a : () => Promise +>async () => (await import("inner")).x() : () => Promise +>(await import("inner")).x() : import("tests/cases/conformance/node/node_modules/inner/private").Thing +>(await import("inner")).x : () => import("tests/cases/conformance/node/node_modules/inner/private").Thing +>(await import("inner")) : typeof import("tests/cases/conformance/node/node_modules/inner/index") +>await import("inner") : typeof import("tests/cases/conformance/node/node_modules/inner/index") +>import("inner") : Promise +>"inner" : "inner" +>x : () => import("tests/cases/conformance/node/node_modules/inner/private").Thing + +=== tests/cases/conformance/node/node_modules/inner/index.d.ts === +export { x } from "./other.js"; +>x : () => import("tests/cases/conformance/node/node_modules/inner/private").Thing + +=== tests/cases/conformance/node/node_modules/inner/other.d.ts === +import { Thing } from "./private.js" +>Thing : any + +export const x: () => Thing; +>x : () => Thing + +=== tests/cases/conformance/node/node_modules/inner/private.d.ts === +export interface Thing {} // not exported in export map, inaccessible under new module modes +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/limitDeepInstantiations.errors.txt b/tests/baselines/reference/limitDeepInstantiations.errors.txt index 2cf5aade7fd61..21b5f53b04e13 100644 --- a/tests/baselines/reference/limitDeepInstantiations.errors.txt +++ b/tests/baselines/reference/limitDeepInstantiations.errors.txt @@ -1,4 +1,4 @@ -tests/cases/compiler/limitDeepInstantiations.ts(3,35): error TS2502: '"true"' is referenced directly or indirectly in its own type annotation. +tests/cases/compiler/limitDeepInstantiations.ts(4,9): error TS2589: Type instantiation is excessively deep and possibly infinite. tests/cases/compiler/limitDeepInstantiations.ts(5,13): error TS2344: Type '"false"' does not satisfy the constraint '"true"'. @@ -6,9 +6,9 @@ tests/cases/compiler/limitDeepInstantiations.ts(5,13): error TS2344: Type '"fals // Repro from #14837 type Foo = { "true": Foo> }[T]; - ~~~~~~ -!!! error TS2502: '"true"' is referenced directly or indirectly in its own type annotation. let f1: Foo<"true", {}>; + ~~~~~~~~~~~~~~~ +!!! error TS2589: Type instantiation is excessively deep and possibly infinite. let f2: Foo<"false", {}>; ~~~~~~~ !!! error TS2344: Type '"false"' does not satisfy the constraint '"true"'. diff --git a/tests/baselines/reference/linkTagEmit1.js b/tests/baselines/reference/linkTagEmit1.js index 377fa211381c8..0fe024f665afa 100644 --- a/tests/baselines/reference/linkTagEmit1.js +++ b/tests/baselines/reference/linkTagEmit1.js @@ -20,6 +20,11 @@ declare namespace NS { function computeCommonSourceDirectoryOfFilenames(integer) { return integer + 1 // pls pls pls } + +/** {@link https://hvad} */ +var see3 = true + +/** @typedef {number} Attempt {@link https://wat} {@linkcode I think lingcod is better} {@linkplain or lutefisk}*/ //// [linkTagEmit1.js] @@ -36,6 +41,9 @@ function computeCommonSourceDirectoryOfFilenames(integer) { function computeCommonSourceDirectoryOfFilenames(integer) { return integer + 1; // pls pls pls } +/** {@link https://hvad} */ +var see3 = true; +/** @typedef {number} Attempt {@link https://wat} {@linkcode I think lingcod is better} {@linkplain or lutefisk}*/ //// [linkTagEmit1.d.ts] @@ -50,6 +58,8 @@ function computeCommonSourceDirectoryOfFilenames(integer) { * @param {number} integer {@link Z} */ declare function computeCommonSourceDirectoryOfFilenames(integer: number): number; +/** {@link https://hvad} */ +declare var see3: boolean; type N = number; type D1 = { /** @@ -62,3 +72,7 @@ type D1 = { m: 1; }; type Z = number; +/** + * {@link https://wat} {@linkcode I think lingcod is better} {@linkplain or lutefisk} + */ +type Attempt = number; diff --git a/tests/baselines/reference/linkTagEmit1.symbols b/tests/baselines/reference/linkTagEmit1.symbols index 30b7ab681f89b..047da5804156c 100644 --- a/tests/baselines/reference/linkTagEmit1.symbols +++ b/tests/baselines/reference/linkTagEmit1.symbols @@ -26,3 +26,9 @@ function computeCommonSourceDirectoryOfFilenames(integer) { >integer : Symbol(integer, Decl(linkTagEmit1.js, 12, 49)) } +/** {@link https://hvad} */ +var see3 = true +>see3 : Symbol(see3, Decl(linkTagEmit1.js, 17, 3)) + +/** @typedef {number} Attempt {@link https://wat} {@linkcode I think lingcod is better} {@linkplain or lutefisk}*/ + diff --git a/tests/baselines/reference/linkTagEmit1.types b/tests/baselines/reference/linkTagEmit1.types index a5456e3877f0b..17bdfb38f6268 100644 --- a/tests/baselines/reference/linkTagEmit1.types +++ b/tests/baselines/reference/linkTagEmit1.types @@ -26,3 +26,10 @@ function computeCommonSourceDirectoryOfFilenames(integer) { >1 : 1 } +/** {@link https://hvad} */ +var see3 = true +>see3 : boolean +>true : true + +/** @typedef {number} Attempt {@link https://wat} {@linkcode I think lingcod is better} {@linkplain or lutefisk}*/ + diff --git a/tests/baselines/reference/localesObjectArgument.js b/tests/baselines/reference/localesObjectArgument.js new file mode 100644 index 0000000000000..092a901e82ece --- /dev/null +++ b/tests/baselines/reference/localesObjectArgument.js @@ -0,0 +1,40 @@ +//// [localesObjectArgument.ts] +const enUS = new Intl.Locale("en-US"); +const deDE = new Intl.Locale("de-DE"); +const jaJP = new Intl.Locale("ja-JP"); + +const now = new Date(); +const num = 1000; +const bigint = 123456789123456789n; + +now.toLocaleString(enUS); +now.toLocaleDateString(enUS); +now.toLocaleTimeString(enUS); +now.toLocaleString([deDE, jaJP]); +now.toLocaleDateString([deDE, jaJP]); +now.toLocaleTimeString([deDE, jaJP]); + +num.toLocaleString(enUS); +num.toLocaleString([deDE, jaJP]); + +bigint.toLocaleString(enUS); +bigint.toLocaleString([deDE, jaJP]); + + +//// [localesObjectArgument.js] +const enUS = new Intl.Locale("en-US"); +const deDE = new Intl.Locale("de-DE"); +const jaJP = new Intl.Locale("ja-JP"); +const now = new Date(); +const num = 1000; +const bigint = 123456789123456789n; +now.toLocaleString(enUS); +now.toLocaleDateString(enUS); +now.toLocaleTimeString(enUS); +now.toLocaleString([deDE, jaJP]); +now.toLocaleDateString([deDE, jaJP]); +now.toLocaleTimeString([deDE, jaJP]); +num.toLocaleString(enUS); +num.toLocaleString([deDE, jaJP]); +bigint.toLocaleString(enUS); +bigint.toLocaleString([deDE, jaJP]); diff --git a/tests/baselines/reference/localesObjectArgument.symbols b/tests/baselines/reference/localesObjectArgument.symbols new file mode 100644 index 0000000000000..22b05ffd55f2e --- /dev/null +++ b/tests/baselines/reference/localesObjectArgument.symbols @@ -0,0 +1,94 @@ +=== tests/cases/conformance/es2020/localesObjectArgument.ts === +const enUS = new Intl.Locale("en-US"); +>enUS : Symbol(enUS, Decl(localesObjectArgument.ts, 0, 5)) +>Intl.Locale : Symbol(Intl.Locale, Decl(lib.es2020.intl.d.ts, --, --), Decl(lib.es2020.intl.d.ts, --, --)) +>Intl : Symbol(Intl, Decl(lib.es5.d.ts, --, --), Decl(lib.es2017.intl.d.ts, --, --), Decl(lib.es2018.intl.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2020.intl.d.ts, --, --)) +>Locale : Symbol(Intl.Locale, Decl(lib.es2020.intl.d.ts, --, --), Decl(lib.es2020.intl.d.ts, --, --)) + +const deDE = new Intl.Locale("de-DE"); +>deDE : Symbol(deDE, Decl(localesObjectArgument.ts, 1, 5)) +>Intl.Locale : Symbol(Intl.Locale, Decl(lib.es2020.intl.d.ts, --, --), Decl(lib.es2020.intl.d.ts, --, --)) +>Intl : Symbol(Intl, Decl(lib.es5.d.ts, --, --), Decl(lib.es2017.intl.d.ts, --, --), Decl(lib.es2018.intl.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2020.intl.d.ts, --, --)) +>Locale : Symbol(Intl.Locale, Decl(lib.es2020.intl.d.ts, --, --), Decl(lib.es2020.intl.d.ts, --, --)) + +const jaJP = new Intl.Locale("ja-JP"); +>jaJP : Symbol(jaJP, Decl(localesObjectArgument.ts, 2, 5)) +>Intl.Locale : Symbol(Intl.Locale, Decl(lib.es2020.intl.d.ts, --, --), Decl(lib.es2020.intl.d.ts, --, --)) +>Intl : Symbol(Intl, Decl(lib.es5.d.ts, --, --), Decl(lib.es2017.intl.d.ts, --, --), Decl(lib.es2018.intl.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2020.intl.d.ts, --, --)) +>Locale : Symbol(Intl.Locale, Decl(lib.es2020.intl.d.ts, --, --), Decl(lib.es2020.intl.d.ts, --, --)) + +const now = new Date(); +>now : Symbol(now, Decl(localesObjectArgument.ts, 4, 5)) +>Date : Symbol(Date, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.scripthost.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --) ... and 1 more) + +const num = 1000; +>num : Symbol(num, Decl(localesObjectArgument.ts, 5, 5)) + +const bigint = 123456789123456789n; +>bigint : Symbol(bigint, Decl(localesObjectArgument.ts, 6, 5)) + +now.toLocaleString(enUS); +>now.toLocaleString : Symbol(Date.toLocaleString, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2020.date.d.ts, --, --)) +>now : Symbol(now, Decl(localesObjectArgument.ts, 4, 5)) +>toLocaleString : Symbol(Date.toLocaleString, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2020.date.d.ts, --, --)) +>enUS : Symbol(enUS, Decl(localesObjectArgument.ts, 0, 5)) + +now.toLocaleDateString(enUS); +>now.toLocaleDateString : Symbol(Date.toLocaleDateString, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2020.date.d.ts, --, --)) +>now : Symbol(now, Decl(localesObjectArgument.ts, 4, 5)) +>toLocaleDateString : Symbol(Date.toLocaleDateString, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2020.date.d.ts, --, --)) +>enUS : Symbol(enUS, Decl(localesObjectArgument.ts, 0, 5)) + +now.toLocaleTimeString(enUS); +>now.toLocaleTimeString : Symbol(Date.toLocaleTimeString, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2020.date.d.ts, --, --)) +>now : Symbol(now, Decl(localesObjectArgument.ts, 4, 5)) +>toLocaleTimeString : Symbol(Date.toLocaleTimeString, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2020.date.d.ts, --, --)) +>enUS : Symbol(enUS, Decl(localesObjectArgument.ts, 0, 5)) + +now.toLocaleString([deDE, jaJP]); +>now.toLocaleString : Symbol(Date.toLocaleString, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2020.date.d.ts, --, --)) +>now : Symbol(now, Decl(localesObjectArgument.ts, 4, 5)) +>toLocaleString : Symbol(Date.toLocaleString, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2020.date.d.ts, --, --)) +>deDE : Symbol(deDE, Decl(localesObjectArgument.ts, 1, 5)) +>jaJP : Symbol(jaJP, Decl(localesObjectArgument.ts, 2, 5)) + +now.toLocaleDateString([deDE, jaJP]); +>now.toLocaleDateString : Symbol(Date.toLocaleDateString, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2020.date.d.ts, --, --)) +>now : Symbol(now, Decl(localesObjectArgument.ts, 4, 5)) +>toLocaleDateString : Symbol(Date.toLocaleDateString, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2020.date.d.ts, --, --)) +>deDE : Symbol(deDE, Decl(localesObjectArgument.ts, 1, 5)) +>jaJP : Symbol(jaJP, Decl(localesObjectArgument.ts, 2, 5)) + +now.toLocaleTimeString([deDE, jaJP]); +>now.toLocaleTimeString : Symbol(Date.toLocaleTimeString, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2020.date.d.ts, --, --)) +>now : Symbol(now, Decl(localesObjectArgument.ts, 4, 5)) +>toLocaleTimeString : Symbol(Date.toLocaleTimeString, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2020.date.d.ts, --, --)) +>deDE : Symbol(deDE, Decl(localesObjectArgument.ts, 1, 5)) +>jaJP : Symbol(jaJP, Decl(localesObjectArgument.ts, 2, 5)) + +num.toLocaleString(enUS); +>num.toLocaleString : Symbol(Number.toLocaleString, Decl(lib.es5.d.ts, --, --), Decl(lib.es2020.number.d.ts, --, --)) +>num : Symbol(num, Decl(localesObjectArgument.ts, 5, 5)) +>toLocaleString : Symbol(Number.toLocaleString, Decl(lib.es5.d.ts, --, --), Decl(lib.es2020.number.d.ts, --, --)) +>enUS : Symbol(enUS, Decl(localesObjectArgument.ts, 0, 5)) + +num.toLocaleString([deDE, jaJP]); +>num.toLocaleString : Symbol(Number.toLocaleString, Decl(lib.es5.d.ts, --, --), Decl(lib.es2020.number.d.ts, --, --)) +>num : Symbol(num, Decl(localesObjectArgument.ts, 5, 5)) +>toLocaleString : Symbol(Number.toLocaleString, Decl(lib.es5.d.ts, --, --), Decl(lib.es2020.number.d.ts, --, --)) +>deDE : Symbol(deDE, Decl(localesObjectArgument.ts, 1, 5)) +>jaJP : Symbol(jaJP, Decl(localesObjectArgument.ts, 2, 5)) + +bigint.toLocaleString(enUS); +>bigint.toLocaleString : Symbol(BigInt.toLocaleString, Decl(lib.es2020.bigint.d.ts, --, --)) +>bigint : Symbol(bigint, Decl(localesObjectArgument.ts, 6, 5)) +>toLocaleString : Symbol(BigInt.toLocaleString, Decl(lib.es2020.bigint.d.ts, --, --)) +>enUS : Symbol(enUS, Decl(localesObjectArgument.ts, 0, 5)) + +bigint.toLocaleString([deDE, jaJP]); +>bigint.toLocaleString : Symbol(BigInt.toLocaleString, Decl(lib.es2020.bigint.d.ts, --, --)) +>bigint : Symbol(bigint, Decl(localesObjectArgument.ts, 6, 5)) +>toLocaleString : Symbol(BigInt.toLocaleString, Decl(lib.es2020.bigint.d.ts, --, --)) +>deDE : Symbol(deDE, Decl(localesObjectArgument.ts, 1, 5)) +>jaJP : Symbol(jaJP, Decl(localesObjectArgument.ts, 2, 5)) + diff --git a/tests/baselines/reference/localesObjectArgument.types b/tests/baselines/reference/localesObjectArgument.types new file mode 100644 index 0000000000000..efaca6926db18 --- /dev/null +++ b/tests/baselines/reference/localesObjectArgument.types @@ -0,0 +1,118 @@ +=== tests/cases/conformance/es2020/localesObjectArgument.ts === +const enUS = new Intl.Locale("en-US"); +>enUS : Intl.Locale +>new Intl.Locale("en-US") : Intl.Locale +>Intl.Locale : new (tag: string | Intl.Locale, options?: Intl.LocaleOptions) => Intl.Locale +>Intl : typeof Intl +>Locale : new (tag: string | Intl.Locale, options?: Intl.LocaleOptions) => Intl.Locale +>"en-US" : "en-US" + +const deDE = new Intl.Locale("de-DE"); +>deDE : Intl.Locale +>new Intl.Locale("de-DE") : Intl.Locale +>Intl.Locale : new (tag: string | Intl.Locale, options?: Intl.LocaleOptions) => Intl.Locale +>Intl : typeof Intl +>Locale : new (tag: string | Intl.Locale, options?: Intl.LocaleOptions) => Intl.Locale +>"de-DE" : "de-DE" + +const jaJP = new Intl.Locale("ja-JP"); +>jaJP : Intl.Locale +>new Intl.Locale("ja-JP") : Intl.Locale +>Intl.Locale : new (tag: string | Intl.Locale, options?: Intl.LocaleOptions) => Intl.Locale +>Intl : typeof Intl +>Locale : new (tag: string | Intl.Locale, options?: Intl.LocaleOptions) => Intl.Locale +>"ja-JP" : "ja-JP" + +const now = new Date(); +>now : Date +>new Date() : Date +>Date : DateConstructor + +const num = 1000; +>num : 1000 +>1000 : 1000 + +const bigint = 123456789123456789n; +>bigint : 123456789123456789n +>123456789123456789n : 123456789123456789n + +now.toLocaleString(enUS); +>now.toLocaleString(enUS) : string +>now.toLocaleString : { (): string; (locales?: string | string[], options?: Intl.DateTimeFormatOptions): string; (locales?: Intl.LocalesArgument, options?: Intl.DateTimeFormatOptions): string; } +>now : Date +>toLocaleString : { (): string; (locales?: string | string[], options?: Intl.DateTimeFormatOptions): string; (locales?: Intl.LocalesArgument, options?: Intl.DateTimeFormatOptions): string; } +>enUS : Intl.Locale + +now.toLocaleDateString(enUS); +>now.toLocaleDateString(enUS) : string +>now.toLocaleDateString : { (): string; (locales?: string | string[], options?: Intl.DateTimeFormatOptions): string; (locales?: Intl.LocalesArgument, options?: Intl.DateTimeFormatOptions): string; } +>now : Date +>toLocaleDateString : { (): string; (locales?: string | string[], options?: Intl.DateTimeFormatOptions): string; (locales?: Intl.LocalesArgument, options?: Intl.DateTimeFormatOptions): string; } +>enUS : Intl.Locale + +now.toLocaleTimeString(enUS); +>now.toLocaleTimeString(enUS) : string +>now.toLocaleTimeString : { (): string; (locales?: string | string[], options?: Intl.DateTimeFormatOptions): string; (locales?: Intl.LocalesArgument, options?: Intl.DateTimeFormatOptions): string; } +>now : Date +>toLocaleTimeString : { (): string; (locales?: string | string[], options?: Intl.DateTimeFormatOptions): string; (locales?: Intl.LocalesArgument, options?: Intl.DateTimeFormatOptions): string; } +>enUS : Intl.Locale + +now.toLocaleString([deDE, jaJP]); +>now.toLocaleString([deDE, jaJP]) : string +>now.toLocaleString : { (): string; (locales?: string | string[], options?: Intl.DateTimeFormatOptions): string; (locales?: Intl.LocalesArgument, options?: Intl.DateTimeFormatOptions): string; } +>now : Date +>toLocaleString : { (): string; (locales?: string | string[], options?: Intl.DateTimeFormatOptions): string; (locales?: Intl.LocalesArgument, options?: Intl.DateTimeFormatOptions): string; } +>[deDE, jaJP] : Intl.Locale[] +>deDE : Intl.Locale +>jaJP : Intl.Locale + +now.toLocaleDateString([deDE, jaJP]); +>now.toLocaleDateString([deDE, jaJP]) : string +>now.toLocaleDateString : { (): string; (locales?: string | string[], options?: Intl.DateTimeFormatOptions): string; (locales?: Intl.LocalesArgument, options?: Intl.DateTimeFormatOptions): string; } +>now : Date +>toLocaleDateString : { (): string; (locales?: string | string[], options?: Intl.DateTimeFormatOptions): string; (locales?: Intl.LocalesArgument, options?: Intl.DateTimeFormatOptions): string; } +>[deDE, jaJP] : Intl.Locale[] +>deDE : Intl.Locale +>jaJP : Intl.Locale + +now.toLocaleTimeString([deDE, jaJP]); +>now.toLocaleTimeString([deDE, jaJP]) : string +>now.toLocaleTimeString : { (): string; (locales?: string | string[], options?: Intl.DateTimeFormatOptions): string; (locales?: Intl.LocalesArgument, options?: Intl.DateTimeFormatOptions): string; } +>now : Date +>toLocaleTimeString : { (): string; (locales?: string | string[], options?: Intl.DateTimeFormatOptions): string; (locales?: Intl.LocalesArgument, options?: Intl.DateTimeFormatOptions): string; } +>[deDE, jaJP] : Intl.Locale[] +>deDE : Intl.Locale +>jaJP : Intl.Locale + +num.toLocaleString(enUS); +>num.toLocaleString(enUS) : string +>num.toLocaleString : { (locales?: string | string[], options?: Intl.NumberFormatOptions): string; (locales?: Intl.LocalesArgument, options?: Intl.NumberFormatOptions): string; } +>num : 1000 +>toLocaleString : { (locales?: string | string[], options?: Intl.NumberFormatOptions): string; (locales?: Intl.LocalesArgument, options?: Intl.NumberFormatOptions): string; } +>enUS : Intl.Locale + +num.toLocaleString([deDE, jaJP]); +>num.toLocaleString([deDE, jaJP]) : string +>num.toLocaleString : { (locales?: string | string[], options?: Intl.NumberFormatOptions): string; (locales?: Intl.LocalesArgument, options?: Intl.NumberFormatOptions): string; } +>num : 1000 +>toLocaleString : { (locales?: string | string[], options?: Intl.NumberFormatOptions): string; (locales?: Intl.LocalesArgument, options?: Intl.NumberFormatOptions): string; } +>[deDE, jaJP] : Intl.Locale[] +>deDE : Intl.Locale +>jaJP : Intl.Locale + +bigint.toLocaleString(enUS); +>bigint.toLocaleString(enUS) : string +>bigint.toLocaleString : (locales?: Intl.LocalesArgument, options?: BigIntToLocaleStringOptions) => string +>bigint : 123456789123456789n +>toLocaleString : (locales?: Intl.LocalesArgument, options?: BigIntToLocaleStringOptions) => string +>enUS : Intl.Locale + +bigint.toLocaleString([deDE, jaJP]); +>bigint.toLocaleString([deDE, jaJP]) : string +>bigint.toLocaleString : (locales?: Intl.LocalesArgument, options?: BigIntToLocaleStringOptions) => string +>bigint : 123456789123456789n +>toLocaleString : (locales?: Intl.LocalesArgument, options?: BigIntToLocaleStringOptions) => string +>[deDE, jaJP] : Intl.Locale[] +>deDE : Intl.Locale +>jaJP : Intl.Locale + diff --git a/tests/baselines/reference/logicalAssignment11(target=es2015).js b/tests/baselines/reference/logicalAssignment11(target=es2015).js new file mode 100644 index 0000000000000..26c8118da53a5 --- /dev/null +++ b/tests/baselines/reference/logicalAssignment11(target=es2015).js @@ -0,0 +1,20 @@ +//// [logicalAssignment11.ts] +let x: string | undefined; + +let d: string | undefined; +d ?? (d = x ?? "x") +d.length; + +let e: string | undefined; +e ??= x ?? "x" +e.length + +//// [logicalAssignment11.js] +"use strict"; +let x; +let d; +d !== null && d !== void 0 ? d : (d = x !== null && x !== void 0 ? x : "x"); +d.length; +let e; +e !== null && e !== void 0 ? e : (e = x !== null && x !== void 0 ? x : "x"); +e.length; diff --git a/tests/baselines/reference/logicalAssignment11(target=es2015).symbols b/tests/baselines/reference/logicalAssignment11(target=es2015).symbols new file mode 100644 index 0000000000000..95c1b3b332327 --- /dev/null +++ b/tests/baselines/reference/logicalAssignment11(target=es2015).symbols @@ -0,0 +1,29 @@ +=== tests/cases/conformance/esnext/logicalAssignment/logicalAssignment11.ts === +let x: string | undefined; +>x : Symbol(x, Decl(logicalAssignment11.ts, 0, 3)) + +let d: string | undefined; +>d : Symbol(d, Decl(logicalAssignment11.ts, 2, 3)) + +d ?? (d = x ?? "x") +>d : Symbol(d, Decl(logicalAssignment11.ts, 2, 3)) +>d : Symbol(d, Decl(logicalAssignment11.ts, 2, 3)) +>x : Symbol(x, Decl(logicalAssignment11.ts, 0, 3)) + +d.length; +>d.length : Symbol(String.length, Decl(lib.es5.d.ts, --, --)) +>d : Symbol(d, Decl(logicalAssignment11.ts, 2, 3)) +>length : Symbol(String.length, Decl(lib.es5.d.ts, --, --)) + +let e: string | undefined; +>e : Symbol(e, Decl(logicalAssignment11.ts, 6, 3)) + +e ??= x ?? "x" +>e : Symbol(e, Decl(logicalAssignment11.ts, 6, 3)) +>x : Symbol(x, Decl(logicalAssignment11.ts, 0, 3)) + +e.length +>e.length : Symbol(String.length, Decl(lib.es5.d.ts, --, --)) +>e : Symbol(e, Decl(logicalAssignment11.ts, 6, 3)) +>length : Symbol(String.length, Decl(lib.es5.d.ts, --, --)) + diff --git a/tests/baselines/reference/logicalAssignment11(target=es2015).types b/tests/baselines/reference/logicalAssignment11(target=es2015).types new file mode 100644 index 0000000000000..5595ba8327737 --- /dev/null +++ b/tests/baselines/reference/logicalAssignment11(target=es2015).types @@ -0,0 +1,37 @@ +=== tests/cases/conformance/esnext/logicalAssignment/logicalAssignment11.ts === +let x: string | undefined; +>x : string | undefined + +let d: string | undefined; +>d : string | undefined + +d ?? (d = x ?? "x") +>d ?? (d = x ?? "x") : string +>d : string | undefined +>(d = x ?? "x") : string +>d = x ?? "x" : string +>d : string | undefined +>x ?? "x" : string +>x : string | undefined +>"x" : "x" + +d.length; +>d.length : number +>d : string +>length : number + +let e: string | undefined; +>e : string | undefined + +e ??= x ?? "x" +>e ??= x ?? "x" : string +>e : string | undefined +>x ?? "x" : string +>x : string | undefined +>"x" : "x" + +e.length +>e.length : number +>e : string +>length : number + diff --git a/tests/baselines/reference/logicalAssignment11(target=es2020).js b/tests/baselines/reference/logicalAssignment11(target=es2020).js new file mode 100644 index 0000000000000..96629d905e668 --- /dev/null +++ b/tests/baselines/reference/logicalAssignment11(target=es2020).js @@ -0,0 +1,20 @@ +//// [logicalAssignment11.ts] +let x: string | undefined; + +let d: string | undefined; +d ?? (d = x ?? "x") +d.length; + +let e: string | undefined; +e ??= x ?? "x" +e.length + +//// [logicalAssignment11.js] +"use strict"; +let x; +let d; +d ?? (d = x ?? "x"); +d.length; +let e; +e ?? (e = x ?? "x"); +e.length; diff --git a/tests/baselines/reference/logicalAssignment11(target=es2020).symbols b/tests/baselines/reference/logicalAssignment11(target=es2020).symbols new file mode 100644 index 0000000000000..95c1b3b332327 --- /dev/null +++ b/tests/baselines/reference/logicalAssignment11(target=es2020).symbols @@ -0,0 +1,29 @@ +=== tests/cases/conformance/esnext/logicalAssignment/logicalAssignment11.ts === +let x: string | undefined; +>x : Symbol(x, Decl(logicalAssignment11.ts, 0, 3)) + +let d: string | undefined; +>d : Symbol(d, Decl(logicalAssignment11.ts, 2, 3)) + +d ?? (d = x ?? "x") +>d : Symbol(d, Decl(logicalAssignment11.ts, 2, 3)) +>d : Symbol(d, Decl(logicalAssignment11.ts, 2, 3)) +>x : Symbol(x, Decl(logicalAssignment11.ts, 0, 3)) + +d.length; +>d.length : Symbol(String.length, Decl(lib.es5.d.ts, --, --)) +>d : Symbol(d, Decl(logicalAssignment11.ts, 2, 3)) +>length : Symbol(String.length, Decl(lib.es5.d.ts, --, --)) + +let e: string | undefined; +>e : Symbol(e, Decl(logicalAssignment11.ts, 6, 3)) + +e ??= x ?? "x" +>e : Symbol(e, Decl(logicalAssignment11.ts, 6, 3)) +>x : Symbol(x, Decl(logicalAssignment11.ts, 0, 3)) + +e.length +>e.length : Symbol(String.length, Decl(lib.es5.d.ts, --, --)) +>e : Symbol(e, Decl(logicalAssignment11.ts, 6, 3)) +>length : Symbol(String.length, Decl(lib.es5.d.ts, --, --)) + diff --git a/tests/baselines/reference/logicalAssignment11(target=es2020).types b/tests/baselines/reference/logicalAssignment11(target=es2020).types new file mode 100644 index 0000000000000..5595ba8327737 --- /dev/null +++ b/tests/baselines/reference/logicalAssignment11(target=es2020).types @@ -0,0 +1,37 @@ +=== tests/cases/conformance/esnext/logicalAssignment/logicalAssignment11.ts === +let x: string | undefined; +>x : string | undefined + +let d: string | undefined; +>d : string | undefined + +d ?? (d = x ?? "x") +>d ?? (d = x ?? "x") : string +>d : string | undefined +>(d = x ?? "x") : string +>d = x ?? "x" : string +>d : string | undefined +>x ?? "x" : string +>x : string | undefined +>"x" : "x" + +d.length; +>d.length : number +>d : string +>length : number + +let e: string | undefined; +>e : string | undefined + +e ??= x ?? "x" +>e ??= x ?? "x" : string +>e : string | undefined +>x ?? "x" : string +>x : string | undefined +>"x" : "x" + +e.length +>e.length : number +>e : string +>length : number + diff --git a/tests/baselines/reference/logicalAssignment11(target=esnext).js b/tests/baselines/reference/logicalAssignment11(target=esnext).js new file mode 100644 index 0000000000000..ffcc40516cc33 --- /dev/null +++ b/tests/baselines/reference/logicalAssignment11(target=esnext).js @@ -0,0 +1,20 @@ +//// [logicalAssignment11.ts] +let x: string | undefined; + +let d: string | undefined; +d ?? (d = x ?? "x") +d.length; + +let e: string | undefined; +e ??= x ?? "x" +e.length + +//// [logicalAssignment11.js] +"use strict"; +let x; +let d; +d ?? (d = x ?? "x"); +d.length; +let e; +e ??= x ?? "x"; +e.length; diff --git a/tests/baselines/reference/logicalAssignment11(target=esnext).symbols b/tests/baselines/reference/logicalAssignment11(target=esnext).symbols new file mode 100644 index 0000000000000..95c1b3b332327 --- /dev/null +++ b/tests/baselines/reference/logicalAssignment11(target=esnext).symbols @@ -0,0 +1,29 @@ +=== tests/cases/conformance/esnext/logicalAssignment/logicalAssignment11.ts === +let x: string | undefined; +>x : Symbol(x, Decl(logicalAssignment11.ts, 0, 3)) + +let d: string | undefined; +>d : Symbol(d, Decl(logicalAssignment11.ts, 2, 3)) + +d ?? (d = x ?? "x") +>d : Symbol(d, Decl(logicalAssignment11.ts, 2, 3)) +>d : Symbol(d, Decl(logicalAssignment11.ts, 2, 3)) +>x : Symbol(x, Decl(logicalAssignment11.ts, 0, 3)) + +d.length; +>d.length : Symbol(String.length, Decl(lib.es5.d.ts, --, --)) +>d : Symbol(d, Decl(logicalAssignment11.ts, 2, 3)) +>length : Symbol(String.length, Decl(lib.es5.d.ts, --, --)) + +let e: string | undefined; +>e : Symbol(e, Decl(logicalAssignment11.ts, 6, 3)) + +e ??= x ?? "x" +>e : Symbol(e, Decl(logicalAssignment11.ts, 6, 3)) +>x : Symbol(x, Decl(logicalAssignment11.ts, 0, 3)) + +e.length +>e.length : Symbol(String.length, Decl(lib.es5.d.ts, --, --)) +>e : Symbol(e, Decl(logicalAssignment11.ts, 6, 3)) +>length : Symbol(String.length, Decl(lib.es5.d.ts, --, --)) + diff --git a/tests/baselines/reference/logicalAssignment11(target=esnext).types b/tests/baselines/reference/logicalAssignment11(target=esnext).types new file mode 100644 index 0000000000000..5595ba8327737 --- /dev/null +++ b/tests/baselines/reference/logicalAssignment11(target=esnext).types @@ -0,0 +1,37 @@ +=== tests/cases/conformance/esnext/logicalAssignment/logicalAssignment11.ts === +let x: string | undefined; +>x : string | undefined + +let d: string | undefined; +>d : string | undefined + +d ?? (d = x ?? "x") +>d ?? (d = x ?? "x") : string +>d : string | undefined +>(d = x ?? "x") : string +>d = x ?? "x" : string +>d : string | undefined +>x ?? "x" : string +>x : string | undefined +>"x" : "x" + +d.length; +>d.length : number +>d : string +>length : number + +let e: string | undefined; +>e : string | undefined + +e ??= x ?? "x" +>e ??= x ?? "x" : string +>e : string | undefined +>x ?? "x" : string +>x : string | undefined +>"x" : "x" + +e.length +>e.length : number +>e : string +>length : number + diff --git a/tests/baselines/reference/manyCompilerErrorsInTheTwoFiles.errors.txt b/tests/baselines/reference/manyCompilerErrorsInTheTwoFiles.errors.txt new file mode 100644 index 0000000000000..265c339afc2f5 --- /dev/null +++ b/tests/baselines/reference/manyCompilerErrorsInTheTwoFiles.errors.txt @@ -0,0 +1,144 @@ +tests/cases/compiler/a.ts:1:11 - error TS1109: Expression expected. + +1 const a =!@#!@$ +   ~ +tests/cases/compiler/a.ts:1:12 - error TS18026: '#!' can only be used at the start of a file. + +1 const a =!@#!@$ +    +tests/cases/compiler/a.ts:1:14 - error TS1109: Expression expected. + +1 const a =!@#!@$ +   ~ +tests/cases/compiler/a.ts:2:12 - error TS1109: Expression expected. + +2 const b = !@#!@#!@#! +   ~ +tests/cases/compiler/a.ts:2:13 - error TS18026: '#!' can only be used at the start of a file. + +2 const b = !@#!@#!@#! +    +tests/cases/compiler/a.ts:2:15 - error TS1109: Expression expected. + +2 const b = !@#!@#!@#! +   ~ +tests/cases/compiler/a.ts:2:16 - error TS18026: '#!' can only be used at the start of a file. + +2 const b = !@#!@#!@#! +    +tests/cases/compiler/a.ts:2:18 - error TS1109: Expression expected. + +2 const b = !@#!@#!@#! +   ~ +tests/cases/compiler/a.ts:2:19 - error TS18026: '#!' can only be used at the start of a file. + +2 const b = !@#!@#!@#! +    +tests/cases/compiler/a.ts:3:1 - error TS2304: Cannot find name 'OK'. + +3 OK! +  ~~ +tests/cases/compiler/a.ts:4:1 - error TS1434: Unexpected keyword or identifier. + +4 HERE's A shouty thing +  ~~~~ +tests/cases/compiler/a.ts:4:1 - error TS2304: Cannot find name 'HERE'. + +4 HERE's A shouty thing +  ~~~~ +tests/cases/compiler/a.ts:4:22 - error TS1002: Unterminated string literal. + +4 HERE's A shouty thing +    +tests/cases/compiler/a.ts:5:1 - error TS1434: Unexpected keyword or identifier. + +5 GOTTA GO FAST +  ~~~~~ +tests/cases/compiler/a.ts:5:1 - error TS2304: Cannot find name 'GOTTA'. + +5 GOTTA GO FAST +  ~~~~~ +tests/cases/compiler/a.ts:5:7 - error TS1434: Unexpected keyword or identifier. + +5 GOTTA GO FAST +   ~~ +tests/cases/compiler/a.ts:5:7 - error TS2304: Cannot find name 'GO'. + +5 GOTTA GO FAST +   ~~ +tests/cases/compiler/a.ts:5:10 - error TS2304: Cannot find name 'FAST'. + +5 GOTTA GO FAST +   ~~~~ +tests/cases/compiler/b.ts:1:1 - error TS2304: Cannot find name 'fhqwhgads'. + +1 fhqwhgads +  ~~~~~~~~~ +tests/cases/compiler/b.ts:2:1 - error TS2304: Cannot find name 'to'. + +2 to +  ~~ +tests/cases/compiler/b.ts:3:1 - error TS2304: Cannot find name 'limit'. + +3 limit +  ~~~~~ + + +==== tests/cases/compiler/a.ts (18 errors) ==== + const a =!@#!@$ + ~ +!!! error TS1109: Expression expected. + +!!! error TS18026: '#!' can only be used at the start of a file. + ~ +!!! error TS1109: Expression expected. + const b = !@#!@#!@#! + ~ +!!! error TS1109: Expression expected. + +!!! error TS18026: '#!' can only be used at the start of a file. + ~ +!!! error TS1109: Expression expected. + +!!! error TS18026: '#!' can only be used at the start of a file. + ~ +!!! error TS1109: Expression expected. + +!!! error TS18026: '#!' can only be used at the start of a file. + OK! + ~~ +!!! error TS2304: Cannot find name 'OK'. + HERE's A shouty thing + ~~~~ +!!! error TS1434: Unexpected keyword or identifier. + ~~~~ +!!! error TS2304: Cannot find name 'HERE'. + +!!! error TS1002: Unterminated string literal. + GOTTA GO FAST + ~~~~~ +!!! error TS1434: Unexpected keyword or identifier. + ~~~~~ +!!! error TS2304: Cannot find name 'GOTTA'. + ~~ +!!! error TS1434: Unexpected keyword or identifier. + ~~ +!!! error TS2304: Cannot find name 'GO'. + ~~~~ +!!! error TS2304: Cannot find name 'FAST'. + +==== tests/cases/compiler/b.ts (3 errors) ==== + fhqwhgads + ~~~~~~~~~ +!!! error TS2304: Cannot find name 'fhqwhgads'. + to + ~~ +!!! error TS2304: Cannot find name 'to'. + limit + ~~~~~ +!!! error TS2304: Cannot find name 'limit'. +Found 21 errors in 2 files. + +Errors Files + 18 tests/cases/compiler/a.ts:1 + 3 tests/cases/compiler/b.ts:1 diff --git a/tests/baselines/reference/manyCompilerErrorsInTheTwoFiles.js b/tests/baselines/reference/manyCompilerErrorsInTheTwoFiles.js new file mode 100644 index 0000000000000..4953a653c3da7 --- /dev/null +++ b/tests/baselines/reference/manyCompilerErrorsInTheTwoFiles.js @@ -0,0 +1,30 @@ +//// [tests/cases/compiler/manyCompilerErrorsInTheTwoFiles.ts] //// + +//// [a.ts] +const a =!@#!@$ +const b = !@#!@#!@#! +OK! +HERE's A shouty thing +GOTTA GO FAST + +//// [b.ts] +fhqwhgads +to +limit + +//// [a.js] +var a = !; +!; +var b = !; +!; +!; +!OK; +HERE; +'s A shouty thing; +GOTTA; +GO; +FAST; +//// [b.js] +fhqwhgads; +to; +limit; diff --git a/tests/baselines/reference/manyCompilerErrorsInTheTwoFiles.symbols b/tests/baselines/reference/manyCompilerErrorsInTheTwoFiles.symbols new file mode 100644 index 0000000000000..921ab9843978a --- /dev/null +++ b/tests/baselines/reference/manyCompilerErrorsInTheTwoFiles.symbols @@ -0,0 +1,16 @@ +=== tests/cases/compiler/a.ts === +const a =!@#!@$ +>a : Symbol(a, Decl(a.ts, 0, 5)) + +const b = !@#!@#!@#! +>b : Symbol(b, Decl(a.ts, 1, 5)) + +OK! +HERE's A shouty thing +GOTTA GO FAST + +=== tests/cases/compiler/b.ts === +fhqwhgads +No type information for this code.to +No type information for this code.limit +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/manyCompilerErrorsInTheTwoFiles.types b/tests/baselines/reference/manyCompilerErrorsInTheTwoFiles.types new file mode 100644 index 0000000000000..fc6bf68b72f0c --- /dev/null +++ b/tests/baselines/reference/manyCompilerErrorsInTheTwoFiles.types @@ -0,0 +1,46 @@ +=== tests/cases/compiler/a.ts === +const a =!@#!@$ +>a : boolean +>! : boolean +> : any +> : any +>! : boolean +> : any +>$ : any + +const b = !@#!@#!@#! +>b : boolean +>! : boolean +> : any +> : any +>! : boolean +> : any +> : any +>! : boolean +> : any +> : any +>!OK! : boolean + +OK! +>OK! : any +>OK : any + +HERE's A shouty thing +>HERE : any +>'s A shouty thing : "s A shouty thing" + +GOTTA GO FAST +>GOTTA : any +>GO : any +>FAST : any + +=== tests/cases/compiler/b.ts === +fhqwhgads +>fhqwhgads : any + +to +>to : any + +limit +>limit : any + diff --git a/tests/baselines/reference/mapConstructor.js b/tests/baselines/reference/mapConstructor.js new file mode 100644 index 0000000000000..bb0b9e0697c37 --- /dev/null +++ b/tests/baselines/reference/mapConstructor.js @@ -0,0 +1,16 @@ +//// [mapConstructor.ts] +new Map(); + +const potentiallyUndefinedIterable = [['1', 1], ['2', 2]] as Iterable<[string, number]> | undefined; +new Map(potentiallyUndefinedIterable); + +const potentiallyNullIterable = [['1', 1], ['2', 2]] as Iterable<[string, number]> | null; +new Map(potentiallyNullIterable); + +//// [mapConstructor.js] +"use strict"; +new Map(); +const potentiallyUndefinedIterable = [['1', 1], ['2', 2]]; +new Map(potentiallyUndefinedIterable); +const potentiallyNullIterable = [['1', 1], ['2', 2]]; +new Map(potentiallyNullIterable); diff --git a/tests/baselines/reference/mapConstructor.symbols b/tests/baselines/reference/mapConstructor.symbols new file mode 100644 index 0000000000000..a37ecb3b56c71 --- /dev/null +++ b/tests/baselines/reference/mapConstructor.symbols @@ -0,0 +1,20 @@ +=== tests/cases/compiler/mapConstructor.ts === +new Map(); +>Map : Symbol(Map, Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) + +const potentiallyUndefinedIterable = [['1', 1], ['2', 2]] as Iterable<[string, number]> | undefined; +>potentiallyUndefinedIterable : Symbol(potentiallyUndefinedIterable, Decl(mapConstructor.ts, 2, 5)) +>Iterable : Symbol(Iterable, Decl(lib.es2015.iterable.d.ts, --, --)) + +new Map(potentiallyUndefinedIterable); +>Map : Symbol(Map, Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) +>potentiallyUndefinedIterable : Symbol(potentiallyUndefinedIterable, Decl(mapConstructor.ts, 2, 5)) + +const potentiallyNullIterable = [['1', 1], ['2', 2]] as Iterable<[string, number]> | null; +>potentiallyNullIterable : Symbol(potentiallyNullIterable, Decl(mapConstructor.ts, 5, 5)) +>Iterable : Symbol(Iterable, Decl(lib.es2015.iterable.d.ts, --, --)) + +new Map(potentiallyNullIterable); +>Map : Symbol(Map, Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) +>potentiallyNullIterable : Symbol(potentiallyNullIterable, Decl(mapConstructor.ts, 5, 5)) + diff --git a/tests/baselines/reference/mapConstructor.types b/tests/baselines/reference/mapConstructor.types new file mode 100644 index 0000000000000..6531580d8da3a --- /dev/null +++ b/tests/baselines/reference/mapConstructor.types @@ -0,0 +1,38 @@ +=== tests/cases/compiler/mapConstructor.ts === +new Map(); +>new Map() : Map +>Map : MapConstructor + +const potentiallyUndefinedIterable = [['1', 1], ['2', 2]] as Iterable<[string, number]> | undefined; +>potentiallyUndefinedIterable : Iterable<[string, number]> | undefined +>[['1', 1], ['2', 2]] as Iterable<[string, number]> | undefined : Iterable<[string, number]> | undefined +>[['1', 1], ['2', 2]] : [string, number][] +>['1', 1] : [string, number] +>'1' : "1" +>1 : 1 +>['2', 2] : [string, number] +>'2' : "2" +>2 : 2 + +new Map(potentiallyUndefinedIterable); +>new Map(potentiallyUndefinedIterable) : Map +>Map : MapConstructor +>potentiallyUndefinedIterable : Iterable<[string, number]> | undefined + +const potentiallyNullIterable = [['1', 1], ['2', 2]] as Iterable<[string, number]> | null; +>potentiallyNullIterable : Iterable<[string, number]> | null +>[['1', 1], ['2', 2]] as Iterable<[string, number]> | null : Iterable<[string, number]> | null +>[['1', 1], ['2', 2]] : [string, number][] +>['1', 1] : [string, number] +>'1' : "1" +>1 : 1 +>['2', 2] : [string, number] +>'2' : "2" +>2 : 2 +>null : null + +new Map(potentiallyNullIterable); +>new Map(potentiallyNullIterable) : Map +>Map : MapConstructor +>potentiallyNullIterable : Iterable<[string, number]> | null + diff --git a/tests/baselines/reference/mappedTypeCircularReferenceInAccessor.js b/tests/baselines/reference/mappedTypeCircularReferenceInAccessor.js new file mode 100644 index 0000000000000..f48a16541cdda --- /dev/null +++ b/tests/baselines/reference/mappedTypeCircularReferenceInAccessor.js @@ -0,0 +1,16 @@ +//// [mappedTypeCircularReferenceInAccessor.ts] +interface User { + firstName: string, + level: number, + get bestFriend(): User + set bestFriend(user: SerializablePartial) +} + +type FilteredKeys = { [K in keyof T]: T[K] extends number ? K : T[K] extends string ? K : T[K] extends boolean ? K : never }[keyof T]; + +type SerializablePartial = { + [K in FilteredKeys]: T[K] +}; + + +//// [mappedTypeCircularReferenceInAccessor.js] diff --git a/tests/baselines/reference/mappedTypeCircularReferenceInAccessor.symbols b/tests/baselines/reference/mappedTypeCircularReferenceInAccessor.symbols new file mode 100644 index 0000000000000..9b7be7485a1af --- /dev/null +++ b/tests/baselines/reference/mappedTypeCircularReferenceInAccessor.symbols @@ -0,0 +1,50 @@ +=== tests/cases/compiler/mappedTypeCircularReferenceInAccessor.ts === +interface User { +>User : Symbol(User, Decl(mappedTypeCircularReferenceInAccessor.ts, 0, 0)) + + firstName: string, +>firstName : Symbol(User.firstName, Decl(mappedTypeCircularReferenceInAccessor.ts, 0, 16)) + + level: number, +>level : Symbol(User.level, Decl(mappedTypeCircularReferenceInAccessor.ts, 1, 20)) + + get bestFriend(): User +>bestFriend : Symbol(User.bestFriend, Decl(mappedTypeCircularReferenceInAccessor.ts, 2, 16), Decl(mappedTypeCircularReferenceInAccessor.ts, 3, 24)) +>User : Symbol(User, Decl(mappedTypeCircularReferenceInAccessor.ts, 0, 0)) + + set bestFriend(user: SerializablePartial) +>bestFriend : Symbol(User.bestFriend, Decl(mappedTypeCircularReferenceInAccessor.ts, 2, 16), Decl(mappedTypeCircularReferenceInAccessor.ts, 3, 24)) +>user : Symbol(user, Decl(mappedTypeCircularReferenceInAccessor.ts, 4, 17)) +>SerializablePartial : Symbol(SerializablePartial, Decl(mappedTypeCircularReferenceInAccessor.ts, 7, 137)) +>User : Symbol(User, Decl(mappedTypeCircularReferenceInAccessor.ts, 0, 0)) +} + +type FilteredKeys = { [K in keyof T]: T[K] extends number ? K : T[K] extends string ? K : T[K] extends boolean ? K : never }[keyof T]; +>FilteredKeys : Symbol(FilteredKeys, Decl(mappedTypeCircularReferenceInAccessor.ts, 5, 1)) +>T : Symbol(T, Decl(mappedTypeCircularReferenceInAccessor.ts, 7, 18)) +>K : Symbol(K, Decl(mappedTypeCircularReferenceInAccessor.ts, 7, 26)) +>T : Symbol(T, Decl(mappedTypeCircularReferenceInAccessor.ts, 7, 18)) +>T : Symbol(T, Decl(mappedTypeCircularReferenceInAccessor.ts, 7, 18)) +>K : Symbol(K, Decl(mappedTypeCircularReferenceInAccessor.ts, 7, 26)) +>K : Symbol(K, Decl(mappedTypeCircularReferenceInAccessor.ts, 7, 26)) +>T : Symbol(T, Decl(mappedTypeCircularReferenceInAccessor.ts, 7, 18)) +>K : Symbol(K, Decl(mappedTypeCircularReferenceInAccessor.ts, 7, 26)) +>K : Symbol(K, Decl(mappedTypeCircularReferenceInAccessor.ts, 7, 26)) +>T : Symbol(T, Decl(mappedTypeCircularReferenceInAccessor.ts, 7, 18)) +>K : Symbol(K, Decl(mappedTypeCircularReferenceInAccessor.ts, 7, 26)) +>K : Symbol(K, Decl(mappedTypeCircularReferenceInAccessor.ts, 7, 26)) +>T : Symbol(T, Decl(mappedTypeCircularReferenceInAccessor.ts, 7, 18)) + +type SerializablePartial = { +>SerializablePartial : Symbol(SerializablePartial, Decl(mappedTypeCircularReferenceInAccessor.ts, 7, 137)) +>T : Symbol(T, Decl(mappedTypeCircularReferenceInAccessor.ts, 9, 25)) + + [K in FilteredKeys]: T[K] +>K : Symbol(K, Decl(mappedTypeCircularReferenceInAccessor.ts, 10, 3)) +>FilteredKeys : Symbol(FilteredKeys, Decl(mappedTypeCircularReferenceInAccessor.ts, 5, 1)) +>T : Symbol(T, Decl(mappedTypeCircularReferenceInAccessor.ts, 9, 25)) +>T : Symbol(T, Decl(mappedTypeCircularReferenceInAccessor.ts, 9, 25)) +>K : Symbol(K, Decl(mappedTypeCircularReferenceInAccessor.ts, 10, 3)) + +}; + diff --git a/tests/baselines/reference/mappedTypeCircularReferenceInAccessor.types b/tests/baselines/reference/mappedTypeCircularReferenceInAccessor.types new file mode 100644 index 0000000000000..0f713d6f1c08d --- /dev/null +++ b/tests/baselines/reference/mappedTypeCircularReferenceInAccessor.types @@ -0,0 +1,25 @@ +=== tests/cases/compiler/mappedTypeCircularReferenceInAccessor.ts === +interface User { + firstName: string, +>firstName : string + + level: number, +>level : number + + get bestFriend(): User +>bestFriend : User + + set bestFriend(user: SerializablePartial) +>bestFriend : User +>user : SerializablePartial +} + +type FilteredKeys = { [K in keyof T]: T[K] extends number ? K : T[K] extends string ? K : T[K] extends boolean ? K : never }[keyof T]; +>FilteredKeys : FilteredKeys + +type SerializablePartial = { +>SerializablePartial : SerializablePartial + + [K in FilteredKeys]: T[K] +}; + diff --git a/tests/baselines/reference/mappedTypeConstraints2.errors.txt b/tests/baselines/reference/mappedTypeConstraints2.errors.txt new file mode 100644 index 0000000000000..5dcfca6d63f5d --- /dev/null +++ b/tests/baselines/reference/mappedTypeConstraints2.errors.txt @@ -0,0 +1,44 @@ +tests/cases/conformance/types/mapped/mappedTypeConstraints2.ts(10,11): error TS2322: Type 'Mapped2[`get${K}`]' is not assignable to type '{ a: K; }'. + Type 'Mapped2[`get${string}`]' is not assignable to type '{ a: K; }'. +tests/cases/conformance/types/mapped/mappedTypeConstraints2.ts(16,11): error TS2322: Type 'Mapped3[Uppercase]' is not assignable to type '{ a: K; }'. + Type 'Mapped3[string]' is not assignable to type '{ a: K; }'. +tests/cases/conformance/types/mapped/mappedTypeConstraints2.ts(25,57): error TS2322: Type 'Foo[`get${T}`]' is not assignable to type 'T'. + 'T' could be instantiated with an arbitrary type which could be unrelated to 'Foo[`get${T}`]'. + + +==== tests/cases/conformance/types/mapped/mappedTypeConstraints2.ts (3 errors) ==== + type Mapped1 = { [P in K]: { a: P } }; + + function f1(obj: Mapped1, key: K) { + const x: { a: K } = obj[key]; + } + + type Mapped2 = { [P in K as `get${P}`]: { a: P } }; + + function f2(obj: Mapped2, key: `get${K}`) { + const x: { a: K } = obj[key]; // Error + ~ +!!! error TS2322: Type 'Mapped2[`get${K}`]' is not assignable to type '{ a: K; }'. +!!! error TS2322: Type 'Mapped2[`get${string}`]' is not assignable to type '{ a: K; }'. + } + + type Mapped3 = { [P in K as Uppercase

]: { a: P } }; + + function f3(obj: Mapped3, key: Uppercase) { + const x: { a: K } = obj[key]; // Error + ~ +!!! error TS2322: Type 'Mapped3[Uppercase]' is not assignable to type '{ a: K; }'. +!!! error TS2322: Type 'Mapped3[string]' is not assignable to type '{ a: K; }'. + } + + // Repro from #47794 + + type Foo = { + [RemappedT in T as `get${RemappedT}`]: RemappedT; + }; + + const get = (t: T, foo: Foo): T => foo[`get${t}`]; // Type 'Foo[`get${T}`]' is not assignable to type 'T' + ~~~~~~~~~~~~~~ +!!! error TS2322: Type 'Foo[`get${T}`]' is not assignable to type 'T'. +!!! error TS2322: 'T' could be instantiated with an arbitrary type which could be unrelated to 'Foo[`get${T}`]'. + \ No newline at end of file diff --git a/tests/baselines/reference/mappedTypeConstraints2.js b/tests/baselines/reference/mappedTypeConstraints2.js new file mode 100644 index 0000000000000..4c583b3249538 --- /dev/null +++ b/tests/baselines/reference/mappedTypeConstraints2.js @@ -0,0 +1,65 @@ +//// [mappedTypeConstraints2.ts] +type Mapped1 = { [P in K]: { a: P } }; + +function f1(obj: Mapped1, key: K) { + const x: { a: K } = obj[key]; +} + +type Mapped2 = { [P in K as `get${P}`]: { a: P } }; + +function f2(obj: Mapped2, key: `get${K}`) { + const x: { a: K } = obj[key]; // Error +} + +type Mapped3 = { [P in K as Uppercase

]: { a: P } }; + +function f3(obj: Mapped3, key: Uppercase) { + const x: { a: K } = obj[key]; // Error +} + +// Repro from #47794 + +type Foo = { + [RemappedT in T as `get${RemappedT}`]: RemappedT; +}; + +const get = (t: T, foo: Foo): T => foo[`get${t}`]; // Type 'Foo[`get${T}`]' is not assignable to type 'T' + + +//// [mappedTypeConstraints2.js] +"use strict"; +function f1(obj, key) { + var x = obj[key]; +} +function f2(obj, key) { + var x = obj[key]; // Error +} +function f3(obj, key) { + var x = obj[key]; // Error +} +var get = function (t, foo) { return foo["get".concat(t)]; }; // Type 'Foo[`get${T}`]' is not assignable to type 'T' + + +//// [mappedTypeConstraints2.d.ts] +declare type Mapped1 = { + [P in K]: { + a: P; + }; +}; +declare function f1(obj: Mapped1, key: K): void; +declare type Mapped2 = { + [P in K as `get${P}`]: { + a: P; + }; +}; +declare function f2(obj: Mapped2, key: `get${K}`): void; +declare type Mapped3 = { + [P in K as Uppercase

]: { + a: P; + }; +}; +declare function f3(obj: Mapped3, key: Uppercase): void; +declare type Foo = { + [RemappedT in T as `get${RemappedT}`]: RemappedT; +}; +declare const get: (t: T, foo: Foo) => T; diff --git a/tests/baselines/reference/mappedTypeConstraints2.symbols b/tests/baselines/reference/mappedTypeConstraints2.symbols new file mode 100644 index 0000000000000..9e1727cae64e0 --- /dev/null +++ b/tests/baselines/reference/mappedTypeConstraints2.symbols @@ -0,0 +1,106 @@ +=== tests/cases/conformance/types/mapped/mappedTypeConstraints2.ts === +type Mapped1 = { [P in K]: { a: P } }; +>Mapped1 : Symbol(Mapped1, Decl(mappedTypeConstraints2.ts, 0, 0)) +>K : Symbol(K, Decl(mappedTypeConstraints2.ts, 0, 13)) +>P : Symbol(P, Decl(mappedTypeConstraints2.ts, 0, 36)) +>K : Symbol(K, Decl(mappedTypeConstraints2.ts, 0, 13)) +>a : Symbol(a, Decl(mappedTypeConstraints2.ts, 0, 46)) +>P : Symbol(P, Decl(mappedTypeConstraints2.ts, 0, 36)) + +function f1(obj: Mapped1, key: K) { +>f1 : Symbol(f1, Decl(mappedTypeConstraints2.ts, 0, 56)) +>K : Symbol(K, Decl(mappedTypeConstraints2.ts, 2, 12)) +>obj : Symbol(obj, Decl(mappedTypeConstraints2.ts, 2, 30)) +>Mapped1 : Symbol(Mapped1, Decl(mappedTypeConstraints2.ts, 0, 0)) +>K : Symbol(K, Decl(mappedTypeConstraints2.ts, 2, 12)) +>key : Symbol(key, Decl(mappedTypeConstraints2.ts, 2, 46)) +>K : Symbol(K, Decl(mappedTypeConstraints2.ts, 2, 12)) + + const x: { a: K } = obj[key]; +>x : Symbol(x, Decl(mappedTypeConstraints2.ts, 3, 9)) +>a : Symbol(a, Decl(mappedTypeConstraints2.ts, 3, 14)) +>K : Symbol(K, Decl(mappedTypeConstraints2.ts, 2, 12)) +>obj : Symbol(obj, Decl(mappedTypeConstraints2.ts, 2, 30)) +>key : Symbol(key, Decl(mappedTypeConstraints2.ts, 2, 46)) +} + +type Mapped2 = { [P in K as `get${P}`]: { a: P } }; +>Mapped2 : Symbol(Mapped2, Decl(mappedTypeConstraints2.ts, 4, 1)) +>K : Symbol(K, Decl(mappedTypeConstraints2.ts, 6, 13)) +>P : Symbol(P, Decl(mappedTypeConstraints2.ts, 6, 36)) +>K : Symbol(K, Decl(mappedTypeConstraints2.ts, 6, 13)) +>P : Symbol(P, Decl(mappedTypeConstraints2.ts, 6, 36)) +>a : Symbol(a, Decl(mappedTypeConstraints2.ts, 6, 59)) +>P : Symbol(P, Decl(mappedTypeConstraints2.ts, 6, 36)) + +function f2(obj: Mapped2, key: `get${K}`) { +>f2 : Symbol(f2, Decl(mappedTypeConstraints2.ts, 6, 69)) +>K : Symbol(K, Decl(mappedTypeConstraints2.ts, 8, 12)) +>obj : Symbol(obj, Decl(mappedTypeConstraints2.ts, 8, 30)) +>Mapped2 : Symbol(Mapped2, Decl(mappedTypeConstraints2.ts, 4, 1)) +>K : Symbol(K, Decl(mappedTypeConstraints2.ts, 8, 12)) +>key : Symbol(key, Decl(mappedTypeConstraints2.ts, 8, 46)) +>K : Symbol(K, Decl(mappedTypeConstraints2.ts, 8, 12)) + + const x: { a: K } = obj[key]; // Error +>x : Symbol(x, Decl(mappedTypeConstraints2.ts, 9, 9)) +>a : Symbol(a, Decl(mappedTypeConstraints2.ts, 9, 14)) +>K : Symbol(K, Decl(mappedTypeConstraints2.ts, 8, 12)) +>obj : Symbol(obj, Decl(mappedTypeConstraints2.ts, 8, 30)) +>key : Symbol(key, Decl(mappedTypeConstraints2.ts, 8, 46)) +} + +type Mapped3 = { [P in K as Uppercase

]: { a: P } }; +>Mapped3 : Symbol(Mapped3, Decl(mappedTypeConstraints2.ts, 10, 1)) +>K : Symbol(K, Decl(mappedTypeConstraints2.ts, 12, 13)) +>P : Symbol(P, Decl(mappedTypeConstraints2.ts, 12, 36)) +>K : Symbol(K, Decl(mappedTypeConstraints2.ts, 12, 13)) +>Uppercase : Symbol(Uppercase, Decl(lib.es5.d.ts, --, --)) +>P : Symbol(P, Decl(mappedTypeConstraints2.ts, 12, 36)) +>a : Symbol(a, Decl(mappedTypeConstraints2.ts, 12, 62)) +>P : Symbol(P, Decl(mappedTypeConstraints2.ts, 12, 36)) + +function f3(obj: Mapped3, key: Uppercase) { +>f3 : Symbol(f3, Decl(mappedTypeConstraints2.ts, 12, 72)) +>K : Symbol(K, Decl(mappedTypeConstraints2.ts, 14, 12)) +>obj : Symbol(obj, Decl(mappedTypeConstraints2.ts, 14, 30)) +>Mapped3 : Symbol(Mapped3, Decl(mappedTypeConstraints2.ts, 10, 1)) +>K : Symbol(K, Decl(mappedTypeConstraints2.ts, 14, 12)) +>key : Symbol(key, Decl(mappedTypeConstraints2.ts, 14, 46)) +>Uppercase : Symbol(Uppercase, Decl(lib.es5.d.ts, --, --)) +>K : Symbol(K, Decl(mappedTypeConstraints2.ts, 14, 12)) + + const x: { a: K } = obj[key]; // Error +>x : Symbol(x, Decl(mappedTypeConstraints2.ts, 15, 9)) +>a : Symbol(a, Decl(mappedTypeConstraints2.ts, 15, 14)) +>K : Symbol(K, Decl(mappedTypeConstraints2.ts, 14, 12)) +>obj : Symbol(obj, Decl(mappedTypeConstraints2.ts, 14, 30)) +>key : Symbol(key, Decl(mappedTypeConstraints2.ts, 14, 46)) +} + +// Repro from #47794 + +type Foo = { +>Foo : Symbol(Foo, Decl(mappedTypeConstraints2.ts, 16, 1)) +>T : Symbol(T, Decl(mappedTypeConstraints2.ts, 20, 9)) + + [RemappedT in T as `get${RemappedT}`]: RemappedT; +>RemappedT : Symbol(RemappedT, Decl(mappedTypeConstraints2.ts, 21, 5)) +>T : Symbol(T, Decl(mappedTypeConstraints2.ts, 20, 9)) +>RemappedT : Symbol(RemappedT, Decl(mappedTypeConstraints2.ts, 21, 5)) +>RemappedT : Symbol(RemappedT, Decl(mappedTypeConstraints2.ts, 21, 5)) + +}; + +const get = (t: T, foo: Foo): T => foo[`get${t}`]; // Type 'Foo[`get${T}`]' is not assignable to type 'T' +>get : Symbol(get, Decl(mappedTypeConstraints2.ts, 24, 5)) +>T : Symbol(T, Decl(mappedTypeConstraints2.ts, 24, 13)) +>t : Symbol(t, Decl(mappedTypeConstraints2.ts, 24, 31)) +>T : Symbol(T, Decl(mappedTypeConstraints2.ts, 24, 13)) +>foo : Symbol(foo, Decl(mappedTypeConstraints2.ts, 24, 36)) +>Foo : Symbol(Foo, Decl(mappedTypeConstraints2.ts, 16, 1)) +>T : Symbol(T, Decl(mappedTypeConstraints2.ts, 24, 13)) +>T : Symbol(T, Decl(mappedTypeConstraints2.ts, 24, 13)) +>foo : Symbol(foo, Decl(mappedTypeConstraints2.ts, 24, 36)) +>t : Symbol(t, Decl(mappedTypeConstraints2.ts, 24, 31)) + diff --git a/tests/baselines/reference/mappedTypeConstraints2.types b/tests/baselines/reference/mappedTypeConstraints2.types new file mode 100644 index 0000000000000..e1967ee345308 --- /dev/null +++ b/tests/baselines/reference/mappedTypeConstraints2.types @@ -0,0 +1,70 @@ +=== tests/cases/conformance/types/mapped/mappedTypeConstraints2.ts === +type Mapped1 = { [P in K]: { a: P } }; +>Mapped1 : Mapped1 +>a : P + +function f1(obj: Mapped1, key: K) { +>f1 : (obj: Mapped1, key: K) => void +>obj : Mapped1 +>key : K + + const x: { a: K } = obj[key]; +>x : { a: K; } +>a : K +>obj[key] : Mapped1[K] +>obj : Mapped1 +>key : K +} + +type Mapped2 = { [P in K as `get${P}`]: { a: P } }; +>Mapped2 : Mapped2 +>a : P + +function f2(obj: Mapped2, key: `get${K}`) { +>f2 : (obj: Mapped2, key: `get${K}`) => void +>obj : Mapped2 +>key : `get${K}` + + const x: { a: K } = obj[key]; // Error +>x : { a: K; } +>a : K +>obj[key] : Mapped2[`get${K}`] +>obj : Mapped2 +>key : `get${K}` +} + +type Mapped3 = { [P in K as Uppercase

]: { a: P } }; +>Mapped3 : Mapped3 +>a : P + +function f3(obj: Mapped3, key: Uppercase) { +>f3 : (obj: Mapped3, key: Uppercase) => void +>obj : Mapped3 +>key : Uppercase + + const x: { a: K } = obj[key]; // Error +>x : { a: K; } +>a : K +>obj[key] : Mapped3[Uppercase] +>obj : Mapped3 +>key : Uppercase +} + +// Repro from #47794 + +type Foo = { +>Foo : Foo + + [RemappedT in T as `get${RemappedT}`]: RemappedT; +}; + +const get = (t: T, foo: Foo): T => foo[`get${t}`]; // Type 'Foo[`get${T}`]' is not assignable to type 'T' +>get : (t: T, foo: Foo) => T +>(t: T, foo: Foo): T => foo[`get${t}`] : (t: T, foo: Foo) => T +>t : T +>foo : Foo +>foo[`get${t}`] : Foo[`get${T}`] +>foo : Foo +>`get${t}` : `get${T}` +>t : T + diff --git a/tests/baselines/reference/mappedTypeErrors.errors.txt b/tests/baselines/reference/mappedTypeErrors.errors.txt index b2c59fce02c00..585287559bcc2 100644 --- a/tests/baselines/reference/mappedTypeErrors.errors.txt +++ b/tests/baselines/reference/mappedTypeErrors.errors.txt @@ -1,8 +1,6 @@ tests/cases/conformance/types/mapped/mappedTypeErrors.ts(19,20): error TS2313: Type parameter 'P' has a circular constraint. tests/cases/conformance/types/mapped/mappedTypeErrors.ts(21,20): error TS2322: Type 'Date' is not assignable to type 'string | number | symbol'. - Type 'Date' is not assignable to type 'number'. tests/cases/conformance/types/mapped/mappedTypeErrors.ts(22,19): error TS2344: Type 'Date' does not satisfy the constraint 'string | number | symbol'. - Type 'Date' is not assignable to type 'number'. tests/cases/conformance/types/mapped/mappedTypeErrors.ts(25,24): error TS2344: Type '"foo"' does not satisfy the constraint 'keyof Shape'. tests/cases/conformance/types/mapped/mappedTypeErrors.ts(26,24): error TS2344: Type '"name" | "foo"' does not satisfy the constraint 'keyof Shape'. Type '"foo"' is not assignable to type 'keyof Shape'. @@ -10,13 +8,9 @@ tests/cases/conformance/types/mapped/mappedTypeErrors.ts(28,24): error TS2344: T Type '"x"' is not assignable to type 'keyof Shape'. tests/cases/conformance/types/mapped/mappedTypeErrors.ts(30,24): error TS2344: Type 'undefined' does not satisfy the constraint 'keyof Shape'. tests/cases/conformance/types/mapped/mappedTypeErrors.ts(33,24): error TS2344: Type 'T' does not satisfy the constraint 'keyof Shape'. - Type 'T' is not assignable to type '"visible"'. tests/cases/conformance/types/mapped/mappedTypeErrors.ts(37,24): error TS2344: Type 'T' does not satisfy the constraint 'keyof Shape'. Type 'string | number' is not assignable to type 'keyof Shape'. Type 'string' is not assignable to type 'keyof Shape'. - Type 'T' is not assignable to type '"visible"'. - Type 'string | number' is not assignable to type '"visible"'. - Type 'string' is not assignable to type '"visible"'. tests/cases/conformance/types/mapped/mappedTypeErrors.ts(59,9): error TS2403: Subsequent variable declarations must have the same type. Variable 'x' must be of type '{ [P in keyof T]: T[P]; }', but here has type '{ [P in keyof T]?: T[P] | undefined; }'. tests/cases/conformance/types/mapped/mappedTypeErrors.ts(60,9): error TS2403: Subsequent variable declarations must have the same type. Variable 'x' must be of type '{ [P in keyof T]: T[P]; }', but here has type '{ readonly [P in keyof T]: T[P]; }'. tests/cases/conformance/types/mapped/mappedTypeErrors.ts(61,9): error TS2403: Subsequent variable declarations must have the same type. Variable 'x' must be of type '{ [P in keyof T]: T[P]; }', but here has type '{ readonly [P in keyof T]?: T[P] | undefined; }'. @@ -33,11 +27,10 @@ tests/cases/conformance/types/mapped/mappedTypeErrors.ts(106,17): error TS2345: tests/cases/conformance/types/mapped/mappedTypeErrors.ts(123,14): error TS2322: Type 'undefined' is not assignable to type 'string'. tests/cases/conformance/types/mapped/mappedTypeErrors.ts(124,14): error TS2345: Argument of type '{ c: boolean; }' is not assignable to parameter of type 'Pick'. Object literal may only specify known properties, and 'c' does not exist in type 'Pick'. -tests/cases/conformance/types/mapped/mappedTypeErrors.ts(128,16): error TS2322: Type 'string' is not assignable to type 'number | undefined'. -tests/cases/conformance/types/mapped/mappedTypeErrors.ts(129,25): error TS2322: Type 'string' is not assignable to type 'number | undefined'. -tests/cases/conformance/types/mapped/mappedTypeErrors.ts(130,39): error TS2322: Type 'string' is not assignable to type 'number | undefined'. +tests/cases/conformance/types/mapped/mappedTypeErrors.ts(128,16): error TS2322: Type 'string' is not assignable to type 'number'. +tests/cases/conformance/types/mapped/mappedTypeErrors.ts(129,25): error TS2322: Type 'string' is not assignable to type 'number'. +tests/cases/conformance/types/mapped/mappedTypeErrors.ts(130,39): error TS2322: Type 'string' is not assignable to type 'number'. tests/cases/conformance/types/mapped/mappedTypeErrors.ts(136,16): error TS2322: Type 'T' is not assignable to type 'string | number | symbol'. - Type 'T' is not assignable to type 'symbol'. tests/cases/conformance/types/mapped/mappedTypeErrors.ts(136,21): error TS2536: Type 'P' cannot be used to index type 'T'. tests/cases/conformance/types/mapped/mappedTypeErrors.ts(148,17): error TS2339: Property 'foo' does not exist on type 'Pick'. tests/cases/conformance/types/mapped/mappedTypeErrors.ts(152,17): error TS2339: Property 'foo' does not exist on type 'Record'. @@ -69,11 +62,9 @@ tests/cases/conformance/types/mapped/mappedTypeErrors.ts(152,17): error TS2339: type T02 = { [P in Date]: number }; // Error ~~~~ !!! error TS2322: Type 'Date' is not assignable to type 'string | number | symbol'. -!!! error TS2322: Type 'Date' is not assignable to type 'number'. type T03 = Record; // Error ~~~~ !!! error TS2344: Type 'Date' does not satisfy the constraint 'string | number | symbol'. -!!! error TS2344: Type 'Date' is not assignable to type 'number'. type T10 = Pick; type T11 = Pick; // Error @@ -97,7 +88,6 @@ tests/cases/conformance/types/mapped/mappedTypeErrors.ts(152,17): error TS2339: let y: Pick; // Error ~ !!! error TS2344: Type 'T' does not satisfy the constraint 'keyof Shape'. -!!! error TS2344: Type 'T' is not assignable to type '"visible"'. } function f2(x: T) { @@ -106,9 +96,6 @@ tests/cases/conformance/types/mapped/mappedTypeErrors.ts(152,17): error TS2339: !!! error TS2344: Type 'T' does not satisfy the constraint 'keyof Shape'. !!! error TS2344: Type 'string | number' is not assignable to type 'keyof Shape'. !!! error TS2344: Type 'string' is not assignable to type 'keyof Shape'. -!!! error TS2344: Type 'T' is not assignable to type '"visible"'. -!!! error TS2344: Type 'string | number' is not assignable to type '"visible"'. -!!! error TS2344: Type 'string' is not assignable to type '"visible"'. } function f3(x: T) { @@ -235,15 +222,15 @@ tests/cases/conformance/types/mapped/mappedTypeErrors.ts(152,17): error TS2339: let x1: T2 = { a: 'no' }; // Error ~ -!!! error TS2322: Type 'string' is not assignable to type 'number | undefined'. +!!! error TS2322: Type 'string' is not assignable to type 'number'. !!! related TS6500 tests/cases/conformance/types/mapped/mappedTypeErrors.ts:126:13: The expected type comes from property 'a' which is declared here on type 'T2' let x2: Partial = { a: 'no' }; // Error ~ -!!! error TS2322: Type 'string' is not assignable to type 'number | undefined'. +!!! error TS2322: Type 'string' is not assignable to type 'number'. !!! related TS6500 tests/cases/conformance/types/mapped/mappedTypeErrors.ts:126:13: The expected type comes from property 'a' which is declared here on type 'Partial' let x3: { [P in keyof T2]: T2[P]} = { a: 'no' }; // Error ~ -!!! error TS2322: Type 'string' is not assignable to type 'number | undefined'. +!!! error TS2322: Type 'string' is not assignable to type 'number'. !!! related TS6500 tests/cases/conformance/types/mapped/mappedTypeErrors.ts:126:13: The expected type comes from property 'a' which is declared here on type '{ [x: string]: any; a?: number | undefined; }' // Repro from #13044 @@ -253,7 +240,6 @@ tests/cases/conformance/types/mapped/mappedTypeErrors.ts(152,17): error TS2339: pt: {[P in T]?: T[P]}, // note: should be in keyof T ~ !!! error TS2322: Type 'T' is not assignable to type 'string | number | symbol'. -!!! error TS2322: Type 'T' is not assignable to type 'symbol'. ~~~~ !!! error TS2536: Type 'P' cannot be used to index type 'T'. }; diff --git a/tests/baselines/reference/mappedTypeErrors2.errors.txt b/tests/baselines/reference/mappedTypeErrors2.errors.txt index 9178731d1894d..5af4a605c5b3a 100644 --- a/tests/baselines/reference/mappedTypeErrors2.errors.txt +++ b/tests/baselines/reference/mappedTypeErrors2.errors.txt @@ -2,7 +2,6 @@ tests/cases/conformance/types/mapped/mappedTypeErrors2.ts(9,30): error TS2536: T tests/cases/conformance/types/mapped/mappedTypeErrors2.ts(13,30): error TS2536: Type 'K' cannot be used to index type 'T3'. tests/cases/conformance/types/mapped/mappedTypeErrors2.ts(15,38): error TS2536: Type 'S' cannot be used to index type '{ [key in AB[S]]: true; }'. tests/cases/conformance/types/mapped/mappedTypeErrors2.ts(15,47): error TS2322: Type 'AB[S]' is not assignable to type 'string | number | symbol'. - Type 'AB[S]' is not assignable to type 'symbol'. tests/cases/conformance/types/mapped/mappedTypeErrors2.ts(15,47): error TS2536: Type 'S' cannot be used to index type 'AB'. tests/cases/conformance/types/mapped/mappedTypeErrors2.ts(17,49): error TS2536: Type 'L' cannot be used to index type '{ [key in AB[S]]: true; }'. @@ -31,7 +30,6 @@ tests/cases/conformance/types/mapped/mappedTypeErrors2.ts(17,49): error TS2536: !!! error TS2536: Type 'S' cannot be used to index type '{ [key in AB[S]]: true; }'. ~~~~~ !!! error TS2322: Type 'AB[S]' is not assignable to type 'string | number | symbol'. -!!! error TS2322: Type 'AB[S]' is not assignable to type 'symbol'. ~~~~~ !!! error TS2536: Type 'S' cannot be used to index type 'AB'. diff --git a/tests/baselines/reference/mappedTypeGenericInstantiationPreservesHomomorphism.js b/tests/baselines/reference/mappedTypeGenericInstantiationPreservesHomomorphism.js new file mode 100644 index 0000000000000..2523efd3efe39 --- /dev/null +++ b/tests/baselines/reference/mappedTypeGenericInstantiationPreservesHomomorphism.js @@ -0,0 +1,38 @@ +//// [tests/cases/compiler/mappedTypeGenericInstantiationPreservesHomomorphism.ts] //// + +//// [internal.ts] +export declare function usePrivateType(...args: T): PrivateMapped; + +type PrivateMapped = {[K in keyof Obj]: Obj[K]}; + +//// [api.ts] +import {usePrivateType} from './internal'; +export const mappedUnionWithPrivateType = (...args: T) => usePrivateType(...args); + + +//// [internal.js] +"use strict"; +exports.__esModule = true; +//// [api.js] +"use strict"; +exports.__esModule = true; +exports.mappedUnionWithPrivateType = void 0; +var internal_1 = require("./internal"); +var mappedUnionWithPrivateType = function () { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + return internal_1.usePrivateType.apply(void 0, args); +}; +exports.mappedUnionWithPrivateType = mappedUnionWithPrivateType; + + +//// [internal.d.ts] +export declare function usePrivateType(...args: T): PrivateMapped; +declare type PrivateMapped = { + [K in keyof Obj]: Obj[K]; +}; +export {}; +//// [api.d.ts] +export declare const mappedUnionWithPrivateType: (...args: T) => T[any] extends infer T_1 ? { [K in keyof T_1]: T[any][K]; } : never; diff --git a/tests/baselines/reference/mappedTypeGenericInstantiationPreservesHomomorphism.symbols b/tests/baselines/reference/mappedTypeGenericInstantiationPreservesHomomorphism.symbols new file mode 100644 index 0000000000000..9e8f0afef20c5 --- /dev/null +++ b/tests/baselines/reference/mappedTypeGenericInstantiationPreservesHomomorphism.symbols @@ -0,0 +1,29 @@ +=== tests/cases/compiler/internal.ts === +export declare function usePrivateType(...args: T): PrivateMapped; +>usePrivateType : Symbol(usePrivateType, Decl(internal.ts, 0, 0)) +>T : Symbol(T, Decl(internal.ts, 0, 39)) +>args : Symbol(args, Decl(internal.ts, 0, 60)) +>T : Symbol(T, Decl(internal.ts, 0, 39)) +>PrivateMapped : Symbol(PrivateMapped, Decl(internal.ts, 0, 95)) +>T : Symbol(T, Decl(internal.ts, 0, 39)) + +type PrivateMapped = {[K in keyof Obj]: Obj[K]}; +>PrivateMapped : Symbol(PrivateMapped, Decl(internal.ts, 0, 95)) +>Obj : Symbol(Obj, Decl(internal.ts, 2, 19)) +>K : Symbol(K, Decl(internal.ts, 2, 28)) +>Obj : Symbol(Obj, Decl(internal.ts, 2, 19)) +>Obj : Symbol(Obj, Decl(internal.ts, 2, 19)) +>K : Symbol(K, Decl(internal.ts, 2, 28)) + +=== tests/cases/compiler/api.ts === +import {usePrivateType} from './internal'; +>usePrivateType : Symbol(usePrivateType, Decl(api.ts, 0, 8)) + +export const mappedUnionWithPrivateType = (...args: T) => usePrivateType(...args); +>mappedUnionWithPrivateType : Symbol(mappedUnionWithPrivateType, Decl(api.ts, 1, 12)) +>T : Symbol(T, Decl(api.ts, 1, 43)) +>args : Symbol(args, Decl(api.ts, 1, 64)) +>T : Symbol(T, Decl(api.ts, 1, 43)) +>usePrivateType : Symbol(usePrivateType, Decl(api.ts, 0, 8)) +>args : Symbol(args, Decl(api.ts, 1, 64)) + diff --git a/tests/baselines/reference/mappedTypeGenericInstantiationPreservesHomomorphism.types b/tests/baselines/reference/mappedTypeGenericInstantiationPreservesHomomorphism.types new file mode 100644 index 0000000000000..dd3a310afb4ee --- /dev/null +++ b/tests/baselines/reference/mappedTypeGenericInstantiationPreservesHomomorphism.types @@ -0,0 +1,21 @@ +=== tests/cases/compiler/internal.ts === +export declare function usePrivateType(...args: T): PrivateMapped; +>usePrivateType : (...args: T) => PrivateMapped +>args : T + +type PrivateMapped = {[K in keyof Obj]: Obj[K]}; +>PrivateMapped : PrivateMapped + +=== tests/cases/compiler/api.ts === +import {usePrivateType} from './internal'; +>usePrivateType : (...args: T) => { [K in keyof T[any]]: T[any][K]; } + +export const mappedUnionWithPrivateType = (...args: T) => usePrivateType(...args); +>mappedUnionWithPrivateType : (...args: T) => { [K in keyof T[any]]: T[any][K]; } +>(...args: T) => usePrivateType(...args) : (...args: T) => { [K in keyof T[any]]: T[any][K]; } +>args : T +>usePrivateType(...args) : { [K in keyof T[any]]: T[any][K]; } +>usePrivateType : (...args: T) => { [K in keyof T[any]]: T[any][K]; } +>...args : unknown +>args : T + diff --git a/tests/baselines/reference/mappedTypeNotMistakenlyHomomorphic.errors.txt b/tests/baselines/reference/mappedTypeNotMistakenlyHomomorphic.errors.txt new file mode 100644 index 0000000000000..4dce86a71a420 --- /dev/null +++ b/tests/baselines/reference/mappedTypeNotMistakenlyHomomorphic.errors.txt @@ -0,0 +1,46 @@ +tests/cases/compiler/mappedTypeNotMistakenlyHomomorphic.ts(33,1): error TS2741: Property 'a' is missing in type 'Gen2' but required in type 'Gen2'. +tests/cases/compiler/mappedTypeNotMistakenlyHomomorphic.ts(34,1): error TS2741: Property 'b' is missing in type 'Gen2' but required in type 'Gen2'. + + +==== tests/cases/compiler/mappedTypeNotMistakenlyHomomorphic.ts (2 errors) ==== + enum ABC { A, B } + + type Gen = { v: T; } & ( + { + v: ABC.A, + a: string, + } | { + v: ABC.B, + b: string, + } + ) + + // Quick info: ??? + // + // type Gen2 = { + // v: string; + // } + // + type Gen2 = { + [Property in keyof Gen]: string; + }; + + // 'a' and 'b' properties required !?!? + const gen2TypeA: Gen2 = { v: "I am A", a: "" }; + const gen2TypeB: Gen2 = { v: "I am B", b: "" }; + + // 'v' ??? + type K = keyof Gen2; + + // :( + declare let a: Gen2; + declare let b: Gen2; + a = b; + ~ +!!! error TS2741: Property 'a' is missing in type 'Gen2' but required in type 'Gen2'. +!!! related TS2728 tests/cases/compiler/mappedTypeNotMistakenlyHomomorphic.ts:6:5: 'a' is declared here. + b = a; + ~ +!!! error TS2741: Property 'b' is missing in type 'Gen2' but required in type 'Gen2'. +!!! related TS2728 tests/cases/compiler/mappedTypeNotMistakenlyHomomorphic.ts:9:5: 'b' is declared here. + \ No newline at end of file diff --git a/tests/baselines/reference/mappedTypeNotMistakenlyHomomorphic.js b/tests/baselines/reference/mappedTypeNotMistakenlyHomomorphic.js new file mode 100644 index 0000000000000..730eefc1839fb --- /dev/null +++ b/tests/baselines/reference/mappedTypeNotMistakenlyHomomorphic.js @@ -0,0 +1,48 @@ +//// [mappedTypeNotMistakenlyHomomorphic.ts] +enum ABC { A, B } + +type Gen = { v: T; } & ( + { + v: ABC.A, + a: string, + } | { + v: ABC.B, + b: string, + } +) + +// Quick info: ??? +// +// type Gen2 = { +// v: string; +// } +// +type Gen2 = { + [Property in keyof Gen]: string; +}; + +// 'a' and 'b' properties required !?!? +const gen2TypeA: Gen2 = { v: "I am A", a: "" }; +const gen2TypeB: Gen2 = { v: "I am B", b: "" }; + +// 'v' ??? +type K = keyof Gen2; + +// :( +declare let a: Gen2; +declare let b: Gen2; +a = b; +b = a; + + +//// [mappedTypeNotMistakenlyHomomorphic.js] +var ABC; +(function (ABC) { + ABC[ABC["A"] = 0] = "A"; + ABC[ABC["B"] = 1] = "B"; +})(ABC || (ABC = {})); +// 'a' and 'b' properties required !?!? +var gen2TypeA = { v: "I am A", a: "" }; +var gen2TypeB = { v: "I am B", b: "" }; +a = b; +b = a; diff --git a/tests/baselines/reference/mappedTypeNotMistakenlyHomomorphic.symbols b/tests/baselines/reference/mappedTypeNotMistakenlyHomomorphic.symbols new file mode 100644 index 0000000000000..7cfa949dbb431 --- /dev/null +++ b/tests/baselines/reference/mappedTypeNotMistakenlyHomomorphic.symbols @@ -0,0 +1,95 @@ +=== tests/cases/compiler/mappedTypeNotMistakenlyHomomorphic.ts === +enum ABC { A, B } +>ABC : Symbol(ABC, Decl(mappedTypeNotMistakenlyHomomorphic.ts, 0, 0)) +>A : Symbol(ABC.A, Decl(mappedTypeNotMistakenlyHomomorphic.ts, 0, 10)) +>B : Symbol(ABC.B, Decl(mappedTypeNotMistakenlyHomomorphic.ts, 0, 13)) + +type Gen = { v: T; } & ( +>Gen : Symbol(Gen, Decl(mappedTypeNotMistakenlyHomomorphic.ts, 0, 17)) +>T : Symbol(T, Decl(mappedTypeNotMistakenlyHomomorphic.ts, 2, 9)) +>ABC : Symbol(ABC, Decl(mappedTypeNotMistakenlyHomomorphic.ts, 0, 0)) +>v : Symbol(v, Decl(mappedTypeNotMistakenlyHomomorphic.ts, 2, 27)) +>T : Symbol(T, Decl(mappedTypeNotMistakenlyHomomorphic.ts, 2, 9)) + { + v: ABC.A, +>v : Symbol(v, Decl(mappedTypeNotMistakenlyHomomorphic.ts, 3, 3)) +>ABC : Symbol(ABC, Decl(mappedTypeNotMistakenlyHomomorphic.ts, 0, 0)) +>A : Symbol(ABC.A, Decl(mappedTypeNotMistakenlyHomomorphic.ts, 0, 10)) + + a: string, +>a : Symbol(a, Decl(mappedTypeNotMistakenlyHomomorphic.ts, 4, 13)) + + } | { + v: ABC.B, +>v : Symbol(v, Decl(mappedTypeNotMistakenlyHomomorphic.ts, 6, 7)) +>ABC : Symbol(ABC, Decl(mappedTypeNotMistakenlyHomomorphic.ts, 0, 0)) +>B : Symbol(ABC.B, Decl(mappedTypeNotMistakenlyHomomorphic.ts, 0, 13)) + + b: string, +>b : Symbol(b, Decl(mappedTypeNotMistakenlyHomomorphic.ts, 7, 13)) + } +) + +// Quick info: ??? +// +// type Gen2 = { +// v: string; +// } +// +type Gen2 = { +>Gen2 : Symbol(Gen2, Decl(mappedTypeNotMistakenlyHomomorphic.ts, 10, 1)) +>T : Symbol(T, Decl(mappedTypeNotMistakenlyHomomorphic.ts, 18, 10)) +>ABC : Symbol(ABC, Decl(mappedTypeNotMistakenlyHomomorphic.ts, 0, 0)) + + [Property in keyof Gen]: string; +>Property : Symbol(Property, Decl(mappedTypeNotMistakenlyHomomorphic.ts, 19, 3)) +>Gen : Symbol(Gen, Decl(mappedTypeNotMistakenlyHomomorphic.ts, 0, 17)) +>T : Symbol(T, Decl(mappedTypeNotMistakenlyHomomorphic.ts, 18, 10)) + +}; + +// 'a' and 'b' properties required !?!? +const gen2TypeA: Gen2 = { v: "I am A", a: "" }; +>gen2TypeA : Symbol(gen2TypeA, Decl(mappedTypeNotMistakenlyHomomorphic.ts, 23, 5)) +>Gen2 : Symbol(Gen2, Decl(mappedTypeNotMistakenlyHomomorphic.ts, 10, 1)) +>ABC : Symbol(ABC, Decl(mappedTypeNotMistakenlyHomomorphic.ts, 0, 0)) +>A : Symbol(ABC.A, Decl(mappedTypeNotMistakenlyHomomorphic.ts, 0, 10)) +>v : Symbol(v, Decl(mappedTypeNotMistakenlyHomomorphic.ts, 23, 32)) +>a : Symbol(a, Decl(mappedTypeNotMistakenlyHomomorphic.ts, 23, 46)) + +const gen2TypeB: Gen2 = { v: "I am B", b: "" }; +>gen2TypeB : Symbol(gen2TypeB, Decl(mappedTypeNotMistakenlyHomomorphic.ts, 24, 5)) +>Gen2 : Symbol(Gen2, Decl(mappedTypeNotMistakenlyHomomorphic.ts, 10, 1)) +>ABC : Symbol(ABC, Decl(mappedTypeNotMistakenlyHomomorphic.ts, 0, 0)) +>B : Symbol(ABC.B, Decl(mappedTypeNotMistakenlyHomomorphic.ts, 0, 13)) +>v : Symbol(v, Decl(mappedTypeNotMistakenlyHomomorphic.ts, 24, 32)) +>b : Symbol(b, Decl(mappedTypeNotMistakenlyHomomorphic.ts, 24, 46)) + +// 'v' ??? +type K = keyof Gen2; +>K : Symbol(K, Decl(mappedTypeNotMistakenlyHomomorphic.ts, 24, 55)) +>Gen2 : Symbol(Gen2, Decl(mappedTypeNotMistakenlyHomomorphic.ts, 10, 1)) +>ABC : Symbol(ABC, Decl(mappedTypeNotMistakenlyHomomorphic.ts, 0, 0)) +>A : Symbol(ABC.A, Decl(mappedTypeNotMistakenlyHomomorphic.ts, 0, 10)) + +// :( +declare let a: Gen2; +>a : Symbol(a, Decl(mappedTypeNotMistakenlyHomomorphic.ts, 30, 11)) +>Gen2 : Symbol(Gen2, Decl(mappedTypeNotMistakenlyHomomorphic.ts, 10, 1)) +>ABC : Symbol(ABC, Decl(mappedTypeNotMistakenlyHomomorphic.ts, 0, 0)) +>A : Symbol(ABC.A, Decl(mappedTypeNotMistakenlyHomomorphic.ts, 0, 10)) + +declare let b: Gen2; +>b : Symbol(b, Decl(mappedTypeNotMistakenlyHomomorphic.ts, 31, 11)) +>Gen2 : Symbol(Gen2, Decl(mappedTypeNotMistakenlyHomomorphic.ts, 10, 1)) +>ABC : Symbol(ABC, Decl(mappedTypeNotMistakenlyHomomorphic.ts, 0, 0)) +>B : Symbol(ABC.B, Decl(mappedTypeNotMistakenlyHomomorphic.ts, 0, 13)) + +a = b; +>a : Symbol(a, Decl(mappedTypeNotMistakenlyHomomorphic.ts, 30, 11)) +>b : Symbol(b, Decl(mappedTypeNotMistakenlyHomomorphic.ts, 31, 11)) + +b = a; +>b : Symbol(b, Decl(mappedTypeNotMistakenlyHomomorphic.ts, 31, 11)) +>a : Symbol(a, Decl(mappedTypeNotMistakenlyHomomorphic.ts, 30, 11)) + diff --git a/tests/baselines/reference/mappedTypeNotMistakenlyHomomorphic.types b/tests/baselines/reference/mappedTypeNotMistakenlyHomomorphic.types new file mode 100644 index 0000000000000..588a11df228ac --- /dev/null +++ b/tests/baselines/reference/mappedTypeNotMistakenlyHomomorphic.types @@ -0,0 +1,82 @@ +=== tests/cases/compiler/mappedTypeNotMistakenlyHomomorphic.ts === +enum ABC { A, B } +>ABC : ABC +>A : ABC.A +>B : ABC.B + +type Gen = { v: T; } & ( +>Gen : Gen +>v : T + { + v: ABC.A, +>v : ABC.A +>ABC : any + + a: string, +>a : string + + } | { + v: ABC.B, +>v : ABC.B +>ABC : any + + b: string, +>b : string + } +) + +// Quick info: ??? +// +// type Gen2 = { +// v: string; +// } +// +type Gen2 = { +>Gen2 : Gen2 + + [Property in keyof Gen]: string; +}; + +// 'a' and 'b' properties required !?!? +const gen2TypeA: Gen2 = { v: "I am A", a: "" }; +>gen2TypeA : Gen2 +>ABC : any +>{ v: "I am A", a: "" } : { v: string; a: string; } +>v : string +>"I am A" : "I am A" +>a : string +>"" : "" + +const gen2TypeB: Gen2 = { v: "I am B", b: "" }; +>gen2TypeB : Gen2 +>ABC : any +>{ v: "I am B", b: "" } : { v: string; b: string; } +>v : string +>"I am B" : "I am B" +>b : string +>"" : "" + +// 'v' ??? +type K = keyof Gen2; +>K : "v" | "a" +>ABC : any + +// :( +declare let a: Gen2; +>a : Gen2 +>ABC : any + +declare let b: Gen2; +>b : Gen2 +>ABC : any + +a = b; +>a = b : Gen2 +>a : Gen2 +>b : Gen2 + +b = a; +>b = a : Gen2 +>b : Gen2 +>a : Gen2 + diff --git a/tests/baselines/reference/mappedTypeRecursiveInference.errors.txt b/tests/baselines/reference/mappedTypeRecursiveInference.errors.txt index 311c8a32811d1..86a4ca659dfae 100644 --- a/tests/baselines/reference/mappedTypeRecursiveInference.errors.txt +++ b/tests/baselines/reference/mappedTypeRecursiveInference.errors.txt @@ -1,7 +1,7 @@ -tests/cases/compiler/mappedTypeRecursiveInference.ts(19,18): error TS2345: Argument of type 'XMLHttpRequest' is not assignable to parameter of type 'Deep<{ onreadystatechange: unknown; readonly readyState: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly response: unknown; readonly responseText: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; responseType: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly responseURL: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly responseXML: { readonly URL: any; alinkColor: any; readonly all: any; readonly anchors: any; readonly applets: any; bgColor: any; body: any; readonly characterSet: any; readonly charset: any; readonly compatMode: any; readonly contentType: any; cookie: any; readonly currentScript: any; readonly defaultView: any; designMode: any; dir: any; readonly doctype: any; readonly documentElement: any; readonly documentURI: any; domain: any; readonly embeds: any; fgColor: any; readonly forms: any; readonly fullscreen: any; readonly fullscreenEnabled: any; readonly head: any; readonly hidden: any; readonly images: any; readonly implementation: any; readonly inputEncoding: any; readonly lastModified: any; linkColor: any; readonly links: any; location: any; onfullscreenchange: any; onfullscreenerror: any; onpointerlockchange: any; onpointerlockerror: any; onreadystatechange: any; onvisibilitychange: any; readonly ownerDocument: any; readonly pictureInPictureEnabled: any; readonly plugins: any; readonly readyState: any; readonly referrer: any; readonly rootElement: any; readonly scripts: any; readonly scrollingElement: any; readonly timeline: any; title: any; readonly visibilityState: any; vlinkColor: any; adoptNode: any; captureEvents: any; caretRangeFromPoint: any; clear: any; close: any; createAttribute: any; createAttributeNS: any; createCDATASection: any; createComment: any; createDocumentFragment: any; createElement: any; createElementNS: any; createEvent: any; createNodeIterator: any; createProcessingInstruction: any; createRange: any; createTextNode: any; createTreeWalker: any; elementFromPoint: any; elementsFromPoint: any; execCommand: any; exitFullscreen: any; exitPictureInPicture: any; exitPointerLock: any; getElementById: any; getElementsByClassName: any; getElementsByName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getSelection: any; hasFocus: any; hasStorageAccess: any; importNode: any; open: any; queryCommandEnabled: any; queryCommandIndeterm: any; queryCommandState: any; queryCommandSupported: any; queryCommandValue: any; releaseEvents: any; requestStorageAccess: any; write: any; writeln: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; oncopy: any; oncut: any; onpaste: any; readonly activeElement: any; readonly fullscreenElement: any; readonly pictureInPictureElement: any; readonly pointerLockElement: any; readonly styleSheets: any; getAnimations: any; readonly fonts: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; createExpression: any; createNSResolver: any; evaluate: any; }; readonly status: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly statusText: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; timeout: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly upload: { addEventListener: any; removeEventListener: any; onabort: any; onerror: any; onload: any; onloadend: any; onloadstart: any; onprogress: any; ontimeout: any; dispatchEvent: any; }; withCredentials: { valueOf: any; }; abort: unknown; getAllResponseHeaders: unknown; getResponseHeader: unknown; open: unknown; overrideMimeType: unknown; send: unknown; setRequestHeader: unknown; readonly DONE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly HEADERS_RECEIVED: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly LOADING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly OPENED: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly UNSENT: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; addEventListener: unknown; removeEventListener: unknown; onabort: unknown; onerror: unknown; onload: unknown; onloadend: unknown; onloadstart: unknown; onprogress: unknown; ontimeout: unknown; dispatchEvent: unknown; }>'. +tests/cases/compiler/mappedTypeRecursiveInference.ts(19,18): error TS2345: Argument of type 'XMLHttpRequest' is not assignable to parameter of type 'Deep<{ onreadystatechange: unknown; readonly readyState: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly response: unknown; readonly responseText: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; responseType: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly responseURL: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly responseXML: { readonly URL: any; alinkColor: any; readonly all: any; readonly anchors: any; readonly applets: any; bgColor: any; body: any; readonly characterSet: any; readonly charset: any; readonly compatMode: any; readonly contentType: any; cookie: any; readonly currentScript: any; readonly defaultView: any; designMode: any; dir: any; readonly doctype: any; readonly documentElement: any; readonly documentURI: any; domain: any; readonly embeds: any; fgColor: any; readonly forms: any; readonly fullscreen: any; readonly fullscreenEnabled: any; readonly head: any; readonly hidden: any; readonly images: any; readonly implementation: any; readonly inputEncoding: any; readonly lastModified: any; linkColor: any; readonly links: any; location: any; onfullscreenchange: any; onfullscreenerror: any; onpointerlockchange: any; onpointerlockerror: any; onreadystatechange: any; onvisibilitychange: any; readonly ownerDocument: any; readonly pictureInPictureEnabled: any; readonly plugins: any; readonly readyState: any; readonly referrer: any; readonly rootElement: any; readonly scripts: any; readonly scrollingElement: any; readonly timeline: any; title: any; readonly visibilityState: any; vlinkColor: any; adoptNode: any; captureEvents: any; caretRangeFromPoint: any; clear: any; close: any; createAttribute: any; createAttributeNS: any; createCDATASection: any; createComment: any; createDocumentFragment: any; createElement: any; createElementNS: any; createEvent: any; createNodeIterator: any; createProcessingInstruction: any; createRange: any; createTextNode: any; createTreeWalker: any; execCommand: any; exitFullscreen: any; exitPictureInPicture: any; exitPointerLock: any; getElementById: any; getElementsByClassName: any; getElementsByName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getSelection: any; hasFocus: any; hasStorageAccess: any; importNode: any; open: any; queryCommandEnabled: any; queryCommandIndeterm: any; queryCommandState: any; queryCommandSupported: any; queryCommandValue: any; releaseEvents: any; requestStorageAccess: any; write: any; writeln: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; oncopy: any; oncut: any; onpaste: any; readonly activeElement: any; readonly fullscreenElement: any; readonly pictureInPictureElement: any; readonly pointerLockElement: any; readonly styleSheets: any; elementFromPoint: any; elementsFromPoint: any; getAnimations: any; readonly fonts: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; createExpression: any; createNSResolver: any; evaluate: any; }; readonly status: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly statusText: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; timeout: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly upload: { addEventListener: any; removeEventListener: any; onabort: any; onerror: any; onload: any; onloadend: any; onloadstart: any; onprogress: any; ontimeout: any; dispatchEvent: any; }; withCredentials: { valueOf: any; }; abort: unknown; getAllResponseHeaders: unknown; getResponseHeader: unknown; open: unknown; overrideMimeType: unknown; send: unknown; setRequestHeader: unknown; readonly DONE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly HEADERS_RECEIVED: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly LOADING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly OPENED: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly UNSENT: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; addEventListener: unknown; removeEventListener: unknown; onabort: unknown; onerror: unknown; onload: unknown; onloadend: unknown; onloadstart: unknown; onprogress: unknown; ontimeout: unknown; dispatchEvent: unknown; }>'. The types of 'responseXML.body.offsetParent.assignedSlot.style.parentRule.parentStyleSheet.ownerNode' are incompatible between these types. - Type 'Element | ProcessingInstruction' is not assignable to type 'Deep<{ readonly attributes: { readonly length: any; getNamedItem: any; getNamedItemNS: any; item: any; removeNamedItem: any; removeNamedItemNS: any; setNamedItem: any; setNamedItemNS: any; }; readonly classList: { readonly length: any; value: any; toString: any; add: any; contains: any; item: any; remove: any; replace: any; supports: any; toggle: any; forEach: any; }; className: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly clientHeight: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly clientLeft: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly clientTop: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly clientWidth: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; id: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly localName: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly namespaceURI: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; onfullscreenchange: unknown; onfullscreenerror: unknown; outerHTML: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly ownerDocument: { readonly URL: any; alinkColor: any; readonly all: any; readonly anchors: any; readonly applets: any; bgColor: any; body: any; readonly characterSet: any; readonly charset: any; readonly compatMode: any; readonly contentType: any; cookie: any; readonly currentScript: any; readonly defaultView: any; designMode: any; dir: any; readonly doctype: any; readonly documentElement: any; readonly documentURI: any; domain: any; readonly embeds: any; fgColor: any; readonly forms: any; readonly fullscreen: any; readonly fullscreenEnabled: any; readonly head: any; readonly hidden: any; readonly images: any; readonly implementation: any; readonly inputEncoding: any; readonly lastModified: any; linkColor: any; readonly links: any; location: any; onfullscreenchange: any; onfullscreenerror: any; onpointerlockchange: any; onpointerlockerror: any; onreadystatechange: any; onvisibilitychange: any; readonly ownerDocument: any; readonly pictureInPictureEnabled: any; readonly plugins: any; readonly readyState: any; readonly referrer: any; readonly rootElement: any; readonly scripts: any; readonly scrollingElement: any; readonly timeline: any; title: any; readonly visibilityState: any; vlinkColor: any; adoptNode: any; captureEvents: any; caretRangeFromPoint: any; clear: any; close: any; createAttribute: any; createAttributeNS: any; createCDATASection: any; createComment: any; createDocumentFragment: any; createElement: any; createElementNS: any; createEvent: any; createNodeIterator: any; createProcessingInstruction: any; createRange: any; createTextNode: any; createTreeWalker: any; elementFromPoint: any; elementsFromPoint: any; execCommand: any; exitFullscreen: any; exitPictureInPicture: any; exitPointerLock: any; getElementById: any; getElementsByClassName: any; getElementsByName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getSelection: any; hasFocus: any; hasStorageAccess: any; importNode: any; open: any; queryCommandEnabled: any; queryCommandIndeterm: any; queryCommandState: any; queryCommandSupported: any; queryCommandValue: any; releaseEvents: any; requestStorageAccess: any; write: any; writeln: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; oncopy: any; oncut: any; onpaste: any; readonly activeElement: any; readonly fullscreenElement: any; readonly pictureInPictureElement: any; readonly pointerLockElement: any; readonly styleSheets: any; getAnimations: any; readonly fonts: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; createExpression: any; createNSResolver: any; evaluate: any; }; readonly part: { readonly length: any; value: any; toString: any; add: any; contains: any; item: any; remove: any; replace: any; supports: any; toggle: any; forEach: any; }; readonly prefix: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly scrollHeight: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; scrollLeft: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; scrollTop: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly scrollWidth: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly shadowRoot: { readonly delegatesFocus: any; readonly host: any; readonly mode: any; readonly ownerDocument: any; getElementById: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly activeElement: any; readonly fullscreenElement: any; readonly pictureInPictureElement: any; readonly pointerLockElement: any; readonly styleSheets: any; getAnimations: any; innerHTML: any; }; slot: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly tagName: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; attachShadow: unknown; closest: unknown; getAttribute: unknown; getAttributeNS: unknown; getAttributeNames: unknown; getAttributeNode: unknown; getAttributeNodeNS: unknown; getBoundingClientRect: unknown; getClientRects: unknown; getElementsByClassName: unknown; getElementsByTagName: unknown; getElementsByTagNameNS: unknown; hasAttribute: unknown; hasAttributeNS: unknown; hasAttributes: unknown; hasPointerCapture: unknown; insertAdjacentElement: unknown; insertAdjacentHTML: unknown; insertAdjacentText: unknown; matches: unknown; releasePointerCapture: unknown; removeAttribute: unknown; removeAttributeNS: unknown; removeAttributeNode: unknown; requestFullscreen: unknown; requestPointerLock: unknown; scroll: unknown; scrollBy: unknown; scrollIntoView: unknown; scrollTo: unknown; setAttribute: unknown; setAttributeNS: unknown; setAttributeNode: unknown; setAttributeNodeNS: unknown; setPointerCapture: unknown; toggleAttribute: unknown; webkitMatchesSelector: unknown; addEventListener: unknown; removeEventListener: unknown; readonly baseURI: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly childNodes: { item: any; forEach: any; readonly length: any; }; readonly firstChild: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly isConnected: { valueOf: any; }; readonly lastChild: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly nextSibling: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly nodeName: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly nodeType: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; nodeValue: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly parentElement: { accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; spellcheck: any; title: any; translate: any; click: any; addEventListener: any; removeEventListener: any; readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; }; readonly parentNode: { readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly previousSibling: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; textContent: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; appendChild: unknown; cloneNode: unknown; compareDocumentPosition: unknown; contains: unknown; getRootNode: unknown; hasChildNodes: unknown; insertBefore: unknown; isDefaultNamespace: unknown; isEqualNode: unknown; isSameNode: unknown; lookupNamespaceURI: unknown; lookupPrefix: unknown; normalize: unknown; removeChild: unknown; replaceChild: unknown; readonly ATTRIBUTE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly CDATA_SECTION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly COMMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_FRAGMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_CONTAINED_BY: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_CONTAINS: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_DISCONNECTED: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_FOLLOWING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_PRECEDING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_TYPE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ELEMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ENTITY_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ENTITY_REFERENCE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly NOTATION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly PROCESSING_INSTRUCTION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly TEXT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; dispatchEvent: unknown; ariaAtomic: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaAutoComplete: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaBusy: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaChecked: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaColCount: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaColIndex: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaColSpan: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaCurrent: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaDisabled: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaExpanded: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaHasPopup: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaHidden: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaKeyShortcuts: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaLabel: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaLevel: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaLive: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaModal: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaMultiLine: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaMultiSelectable: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaOrientation: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaPlaceholder: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaPosInSet: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaPressed: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaReadOnly: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRequired: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRoleDescription: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRowCount: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRowIndex: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRowSpan: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaSelected: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaSetSize: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaSort: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaValueMax: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaValueMin: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaValueNow: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaValueText: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; animate: unknown; getAnimations: unknown; after: unknown; before: unknown; remove: unknown; replaceWith: unknown; innerHTML: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly nextElementSibling: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly previousElementSibling: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly childElementCount: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly children: { namedItem: any; readonly length: any; item: any; }; readonly firstElementChild: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly lastElementChild: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; append: unknown; prepend: unknown; querySelector: unknown; querySelectorAll: unknown; replaceChildren: unknown; readonly assignedSlot: { name: any; assignedElements: any; assignedNodes: any; addEventListener: any; removeEventListener: any; accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; spellcheck: any; title: any; translate: any; click: any; readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; }; } | { readonly ownerDocument: { readonly URL: any; alinkColor: any; readonly all: any; readonly anchors: any; readonly applets: any; bgColor: any; body: any; readonly characterSet: any; readonly charset: any; readonly compatMode: any; readonly contentType: any; cookie: any; readonly currentScript: any; readonly defaultView: any; designMode: any; dir: any; readonly doctype: any; readonly documentElement: any; readonly documentURI: any; domain: any; readonly embeds: any; fgColor: any; readonly forms: any; readonly fullscreen: any; readonly fullscreenEnabled: any; readonly head: any; readonly hidden: any; readonly images: any; readonly implementation: any; readonly inputEncoding: any; readonly lastModified: any; linkColor: any; readonly links: any; location: any; onfullscreenchange: any; onfullscreenerror: any; onpointerlockchange: any; onpointerlockerror: any; onreadystatechange: any; onvisibilitychange: any; readonly ownerDocument: any; readonly pictureInPictureEnabled: any; readonly plugins: any; readonly readyState: any; readonly referrer: any; readonly rootElement: any; readonly scripts: any; readonly scrollingElement: any; readonly timeline: any; title: any; readonly visibilityState: any; vlinkColor: any; adoptNode: any; captureEvents: any; caretRangeFromPoint: any; clear: any; close: any; createAttribute: any; createAttributeNS: any; createCDATASection: any; createComment: any; createDocumentFragment: any; createElement: any; createElementNS: any; createEvent: any; createNodeIterator: any; createProcessingInstruction: any; createRange: any; createTextNode: any; createTreeWalker: any; elementFromPoint: any; elementsFromPoint: any; execCommand: any; exitFullscreen: any; exitPictureInPicture: any; exitPointerLock: any; getElementById: any; getElementsByClassName: any; getElementsByName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getSelection: any; hasFocus: any; hasStorageAccess: any; importNode: any; open: any; queryCommandEnabled: any; queryCommandIndeterm: any; queryCommandState: any; queryCommandSupported: any; queryCommandValue: any; releaseEvents: any; requestStorageAccess: any; write: any; writeln: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; oncopy: any; oncut: any; onpaste: any; readonly activeElement: any; readonly fullscreenElement: any; readonly pictureInPictureElement: any; readonly pointerLockElement: any; readonly styleSheets: any; getAnimations: any; readonly fonts: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; createExpression: any; createNSResolver: any; evaluate: any; }; readonly target: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; data: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly length: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; appendData: unknown; deleteData: unknown; insertData: unknown; replaceData: unknown; substringData: unknown; readonly baseURI: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly childNodes: { item: any; forEach: any; readonly length: any; }; readonly firstChild: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly isConnected: { valueOf: any; }; readonly lastChild: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly nextSibling: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly nodeName: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly nodeType: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; nodeValue: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly parentElement: { accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; spellcheck: any; title: any; translate: any; click: any; addEventListener: any; removeEventListener: any; readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; }; readonly parentNode: { readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly previousSibling: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; textContent: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; appendChild: unknown; cloneNode: unknown; compareDocumentPosition: unknown; contains: unknown; getRootNode: unknown; hasChildNodes: unknown; insertBefore: unknown; isDefaultNamespace: unknown; isEqualNode: unknown; isSameNode: unknown; lookupNamespaceURI: unknown; lookupPrefix: unknown; normalize: unknown; removeChild: unknown; replaceChild: unknown; readonly ATTRIBUTE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly CDATA_SECTION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly COMMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_FRAGMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_CONTAINED_BY: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_CONTAINS: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_DISCONNECTED: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_FOLLOWING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_PRECEDING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_TYPE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ELEMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ENTITY_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ENTITY_REFERENCE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly NOTATION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly PROCESSING_INSTRUCTION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly TEXT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; addEventListener: unknown; dispatchEvent: unknown; removeEventListener: unknown; after: unknown; before: unknown; remove: unknown; replaceWith: unknown; readonly nextElementSibling: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly previousElementSibling: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly sheet: { readonly cssRules: any; readonly ownerRule: any; readonly rules: any; addRule: any; deleteRule: any; insertRule: any; removeRule: any; disabled: any; readonly href: any; readonly media: any; readonly ownerNode: any; readonly parentStyleSheet: any; readonly title: any; readonly type: any; }; }>'. - Type 'Element' is not assignable to type 'Deep<{ readonly attributes: { readonly length: any; getNamedItem: any; getNamedItemNS: any; item: any; removeNamedItem: any; removeNamedItemNS: any; setNamedItem: any; setNamedItemNS: any; }; readonly classList: { readonly length: any; value: any; toString: any; add: any; contains: any; item: any; remove: any; replace: any; supports: any; toggle: any; forEach: any; }; className: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly clientHeight: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly clientLeft: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly clientTop: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly clientWidth: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; id: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly localName: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly namespaceURI: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; onfullscreenchange: unknown; onfullscreenerror: unknown; outerHTML: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly ownerDocument: { readonly URL: any; alinkColor: any; readonly all: any; readonly anchors: any; readonly applets: any; bgColor: any; body: any; readonly characterSet: any; readonly charset: any; readonly compatMode: any; readonly contentType: any; cookie: any; readonly currentScript: any; readonly defaultView: any; designMode: any; dir: any; readonly doctype: any; readonly documentElement: any; readonly documentURI: any; domain: any; readonly embeds: any; fgColor: any; readonly forms: any; readonly fullscreen: any; readonly fullscreenEnabled: any; readonly head: any; readonly hidden: any; readonly images: any; readonly implementation: any; readonly inputEncoding: any; readonly lastModified: any; linkColor: any; readonly links: any; location: any; onfullscreenchange: any; onfullscreenerror: any; onpointerlockchange: any; onpointerlockerror: any; onreadystatechange: any; onvisibilitychange: any; readonly ownerDocument: any; readonly pictureInPictureEnabled: any; readonly plugins: any; readonly readyState: any; readonly referrer: any; readonly rootElement: any; readonly scripts: any; readonly scrollingElement: any; readonly timeline: any; title: any; readonly visibilityState: any; vlinkColor: any; adoptNode: any; captureEvents: any; caretRangeFromPoint: any; clear: any; close: any; createAttribute: any; createAttributeNS: any; createCDATASection: any; createComment: any; createDocumentFragment: any; createElement: any; createElementNS: any; createEvent: any; createNodeIterator: any; createProcessingInstruction: any; createRange: any; createTextNode: any; createTreeWalker: any; elementFromPoint: any; elementsFromPoint: any; execCommand: any; exitFullscreen: any; exitPictureInPicture: any; exitPointerLock: any; getElementById: any; getElementsByClassName: any; getElementsByName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getSelection: any; hasFocus: any; hasStorageAccess: any; importNode: any; open: any; queryCommandEnabled: any; queryCommandIndeterm: any; queryCommandState: any; queryCommandSupported: any; queryCommandValue: any; releaseEvents: any; requestStorageAccess: any; write: any; writeln: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; oncopy: any; oncut: any; onpaste: any; readonly activeElement: any; readonly fullscreenElement: any; readonly pictureInPictureElement: any; readonly pointerLockElement: any; readonly styleSheets: any; getAnimations: any; readonly fonts: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; createExpression: any; createNSResolver: any; evaluate: any; }; readonly part: { readonly length: any; value: any; toString: any; add: any; contains: any; item: any; remove: any; replace: any; supports: any; toggle: any; forEach: any; }; readonly prefix: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly scrollHeight: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; scrollLeft: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; scrollTop: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly scrollWidth: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly shadowRoot: { readonly delegatesFocus: any; readonly host: any; readonly mode: any; readonly ownerDocument: any; getElementById: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly activeElement: any; readonly fullscreenElement: any; readonly pictureInPictureElement: any; readonly pointerLockElement: any; readonly styleSheets: any; getAnimations: any; innerHTML: any; }; slot: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly tagName: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; attachShadow: unknown; closest: unknown; getAttribute: unknown; getAttributeNS: unknown; getAttributeNames: unknown; getAttributeNode: unknown; getAttributeNodeNS: unknown; getBoundingClientRect: unknown; getClientRects: unknown; getElementsByClassName: unknown; getElementsByTagName: unknown; getElementsByTagNameNS: unknown; hasAttribute: unknown; hasAttributeNS: unknown; hasAttributes: unknown; hasPointerCapture: unknown; insertAdjacentElement: unknown; insertAdjacentHTML: unknown; insertAdjacentText: unknown; matches: unknown; releasePointerCapture: unknown; removeAttribute: unknown; removeAttributeNS: unknown; removeAttributeNode: unknown; requestFullscreen: unknown; requestPointerLock: unknown; scroll: unknown; scrollBy: unknown; scrollIntoView: unknown; scrollTo: unknown; setAttribute: unknown; setAttributeNS: unknown; setAttributeNode: unknown; setAttributeNodeNS: unknown; setPointerCapture: unknown; toggleAttribute: unknown; webkitMatchesSelector: unknown; addEventListener: unknown; removeEventListener: unknown; readonly baseURI: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly childNodes: { item: any; forEach: any; readonly length: any; }; readonly firstChild: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly isConnected: { valueOf: any; }; readonly lastChild: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly nextSibling: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly nodeName: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly nodeType: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; nodeValue: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly parentElement: { accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; spellcheck: any; title: any; translate: any; click: any; addEventListener: any; removeEventListener: any; readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; }; readonly parentNode: { readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly previousSibling: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; textContent: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; appendChild: unknown; cloneNode: unknown; compareDocumentPosition: unknown; contains: unknown; getRootNode: unknown; hasChildNodes: unknown; insertBefore: unknown; isDefaultNamespace: unknown; isEqualNode: unknown; isSameNode: unknown; lookupNamespaceURI: unknown; lookupPrefix: unknown; normalize: unknown; removeChild: unknown; replaceChild: unknown; readonly ATTRIBUTE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly CDATA_SECTION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly COMMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_FRAGMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_CONTAINED_BY: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_CONTAINS: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_DISCONNECTED: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_FOLLOWING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_PRECEDING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_TYPE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ELEMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ENTITY_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ENTITY_REFERENCE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly NOTATION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly PROCESSING_INSTRUCTION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly TEXT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; dispatchEvent: unknown; ariaAtomic: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaAutoComplete: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaBusy: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaChecked: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaColCount: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaColIndex: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaColSpan: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaCurrent: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaDisabled: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaExpanded: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaHasPopup: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaHidden: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaKeyShortcuts: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaLabel: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaLevel: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaLive: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaModal: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaMultiLine: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaMultiSelectable: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaOrientation: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaPlaceholder: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaPosInSet: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaPressed: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaReadOnly: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRequired: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRoleDescription: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRowCount: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRowIndex: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRowSpan: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaSelected: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaSetSize: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaSort: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaValueMax: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaValueMin: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaValueNow: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaValueText: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; animate: unknown; getAnimations: unknown; after: unknown; before: unknown; remove: unknown; replaceWith: unknown; innerHTML: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly nextElementSibling: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly previousElementSibling: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly childElementCount: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly children: { namedItem: any; readonly length: any; item: any; }; readonly firstElementChild: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly lastElementChild: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; append: unknown; prepend: unknown; querySelector: unknown; querySelectorAll: unknown; replaceChildren: unknown; readonly assignedSlot: { name: any; assignedElements: any; assignedNodes: any; addEventListener: any; removeEventListener: any; accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; spellcheck: any; title: any; translate: any; click: any; readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; }; } | { readonly ownerDocument: { readonly URL: any; alinkColor: any; readonly all: any; readonly anchors: any; readonly applets: any; bgColor: any; body: any; readonly characterSet: any; readonly charset: any; readonly compatMode: any; readonly contentType: any; cookie: any; readonly currentScript: any; readonly defaultView: any; designMode: any; dir: any; readonly doctype: any; readonly documentElement: any; readonly documentURI: any; domain: any; readonly embeds: any; fgColor: any; readonly forms: any; readonly fullscreen: any; readonly fullscreenEnabled: any; readonly head: any; readonly hidden: any; readonly images: any; readonly implementation: any; readonly inputEncoding: any; readonly lastModified: any; linkColor: any; readonly links: any; location: any; onfullscreenchange: any; onfullscreenerror: any; onpointerlockchange: any; onpointerlockerror: any; onreadystatechange: any; onvisibilitychange: any; readonly ownerDocument: any; readonly pictureInPictureEnabled: any; readonly plugins: any; readonly readyState: any; readonly referrer: any; readonly rootElement: any; readonly scripts: any; readonly scrollingElement: any; readonly timeline: any; title: any; readonly visibilityState: any; vlinkColor: any; adoptNode: any; captureEvents: any; caretRangeFromPoint: any; clear: any; close: any; createAttribute: any; createAttributeNS: any; createCDATASection: any; createComment: any; createDocumentFragment: any; createElement: any; createElementNS: any; createEvent: any; createNodeIterator: any; createProcessingInstruction: any; createRange: any; createTextNode: any; createTreeWalker: any; elementFromPoint: any; elementsFromPoint: any; execCommand: any; exitFullscreen: any; exitPictureInPicture: any; exitPointerLock: any; getElementById: any; getElementsByClassName: any; getElementsByName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getSelection: any; hasFocus: any; hasStorageAccess: any; importNode: any; open: any; queryCommandEnabled: any; queryCommandIndeterm: any; queryCommandState: any; queryCommandSupported: any; queryCommandValue: any; releaseEvents: any; requestStorageAccess: any; write: any; writeln: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; oncopy: any; oncut: any; onpaste: any; readonly activeElement: any; readonly fullscreenElement: any; readonly pictureInPictureElement: any; readonly pointerLockElement: any; readonly styleSheets: any; getAnimations: any; readonly fonts: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; createExpression: any; createNSResolver: any; evaluate: any; }; readonly target: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; data: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly length: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; appendData: unknown; deleteData: unknown; insertData: unknown; replaceData: unknown; substringData: unknown; readonly baseURI: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly childNodes: { item: any; forEach: any; readonly length: any; }; readonly firstChild: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly isConnected: { valueOf: any; }; readonly lastChild: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly nextSibling: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly nodeName: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly nodeType: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; nodeValue: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly parentElement: { accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; spellcheck: any; title: any; translate: any; click: any; addEventListener: any; removeEventListener: any; readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; }; readonly parentNode: { readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly previousSibling: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; textContent: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; appendChild: unknown; cloneNode: unknown; compareDocumentPosition: unknown; contains: unknown; getRootNode: unknown; hasChildNodes: unknown; insertBefore: unknown; isDefaultNamespace: unknown; isEqualNode: unknown; isSameNode: unknown; lookupNamespaceURI: unknown; lookupPrefix: unknown; normalize: unknown; removeChild: unknown; replaceChild: unknown; readonly ATTRIBUTE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly CDATA_SECTION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly COMMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_FRAGMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_CONTAINED_BY: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_CONTAINS: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_DISCONNECTED: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_FOLLOWING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_PRECEDING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_TYPE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ELEMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ENTITY_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ENTITY_REFERENCE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly NOTATION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly PROCESSING_INSTRUCTION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly TEXT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; addEventListener: unknown; dispatchEvent: unknown; removeEventListener: unknown; after: unknown; before: unknown; remove: unknown; replaceWith: unknown; readonly nextElementSibling: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly previousElementSibling: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly sheet: { readonly cssRules: any; readonly ownerRule: any; readonly rules: any; addRule: any; deleteRule: any; insertRule: any; removeRule: any; disabled: any; readonly href: any; readonly media: any; readonly ownerNode: any; readonly parentStyleSheet: any; readonly title: any; readonly type: any; }; }>'. + Type 'Element | ProcessingInstruction' is not assignable to type 'Deep<{ readonly attributes: { readonly length: any; getNamedItem: any; getNamedItemNS: any; item: any; removeNamedItem: any; removeNamedItemNS: any; setNamedItem: any; setNamedItemNS: any; }; readonly classList: { readonly length: any; value: any; toString: any; add: any; contains: any; item: any; remove: any; replace: any; supports: any; toggle: any; forEach: any; }; className: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly clientHeight: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly clientLeft: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly clientTop: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly clientWidth: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; id: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly localName: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly namespaceURI: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; onfullscreenchange: unknown; onfullscreenerror: unknown; outerHTML: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly ownerDocument: { readonly URL: any; alinkColor: any; readonly all: any; readonly anchors: any; readonly applets: any; bgColor: any; body: any; readonly characterSet: any; readonly charset: any; readonly compatMode: any; readonly contentType: any; cookie: any; readonly currentScript: any; readonly defaultView: any; designMode: any; dir: any; readonly doctype: any; readonly documentElement: any; readonly documentURI: any; domain: any; readonly embeds: any; fgColor: any; readonly forms: any; readonly fullscreen: any; readonly fullscreenEnabled: any; readonly head: any; readonly hidden: any; readonly images: any; readonly implementation: any; readonly inputEncoding: any; readonly lastModified: any; linkColor: any; readonly links: any; location: any; onfullscreenchange: any; onfullscreenerror: any; onpointerlockchange: any; onpointerlockerror: any; onreadystatechange: any; onvisibilitychange: any; readonly ownerDocument: any; readonly pictureInPictureEnabled: any; readonly plugins: any; readonly readyState: any; readonly referrer: any; readonly rootElement: any; readonly scripts: any; readonly scrollingElement: any; readonly timeline: any; title: any; readonly visibilityState: any; vlinkColor: any; adoptNode: any; captureEvents: any; caretRangeFromPoint: any; clear: any; close: any; createAttribute: any; createAttributeNS: any; createCDATASection: any; createComment: any; createDocumentFragment: any; createElement: any; createElementNS: any; createEvent: any; createNodeIterator: any; createProcessingInstruction: any; createRange: any; createTextNode: any; createTreeWalker: any; execCommand: any; exitFullscreen: any; exitPictureInPicture: any; exitPointerLock: any; getElementById: any; getElementsByClassName: any; getElementsByName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getSelection: any; hasFocus: any; hasStorageAccess: any; importNode: any; open: any; queryCommandEnabled: any; queryCommandIndeterm: any; queryCommandState: any; queryCommandSupported: any; queryCommandValue: any; releaseEvents: any; requestStorageAccess: any; write: any; writeln: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; oncopy: any; oncut: any; onpaste: any; readonly activeElement: any; readonly fullscreenElement: any; readonly pictureInPictureElement: any; readonly pointerLockElement: any; readonly styleSheets: any; elementFromPoint: any; elementsFromPoint: any; getAnimations: any; readonly fonts: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; createExpression: any; createNSResolver: any; evaluate: any; }; readonly part: { readonly length: any; value: any; toString: any; add: any; contains: any; item: any; remove: any; replace: any; supports: any; toggle: any; forEach: any; }; readonly prefix: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly scrollHeight: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; scrollLeft: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; scrollTop: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly scrollWidth: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly shadowRoot: { readonly delegatesFocus: any; readonly host: any; readonly mode: any; onslotchange: any; readonly slotAssignment: any; addEventListener: any; removeEventListener: any; readonly ownerDocument: any; getElementById: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly activeElement: any; readonly fullscreenElement: any; readonly pictureInPictureElement: any; readonly pointerLockElement: any; readonly styleSheets: any; elementFromPoint: any; elementsFromPoint: any; getAnimations: any; innerHTML: any; }; slot: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly tagName: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; attachShadow: unknown; closest: unknown; getAttribute: unknown; getAttributeNS: unknown; getAttributeNames: unknown; getAttributeNode: unknown; getAttributeNodeNS: unknown; getBoundingClientRect: unknown; getClientRects: unknown; getElementsByClassName: unknown; getElementsByTagName: unknown; getElementsByTagNameNS: unknown; hasAttribute: unknown; hasAttributeNS: unknown; hasAttributes: unknown; hasPointerCapture: unknown; insertAdjacentElement: unknown; insertAdjacentHTML: unknown; insertAdjacentText: unknown; matches: unknown; releasePointerCapture: unknown; removeAttribute: unknown; removeAttributeNS: unknown; removeAttributeNode: unknown; requestFullscreen: unknown; requestPointerLock: unknown; scroll: unknown; scrollBy: unknown; scrollIntoView: unknown; scrollTo: unknown; setAttribute: unknown; setAttributeNS: unknown; setAttributeNode: unknown; setAttributeNodeNS: unknown; setPointerCapture: unknown; toggleAttribute: unknown; webkitMatchesSelector: unknown; addEventListener: unknown; removeEventListener: unknown; readonly baseURI: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly childNodes: { item: any; forEach: any; readonly length: any; }; readonly firstChild: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly isConnected: { valueOf: any; }; readonly lastChild: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly nextSibling: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly nodeName: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly nodeType: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; nodeValue: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly parentElement: { accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; spellcheck: any; title: any; translate: any; attachInternals: any; click: any; addEventListener: any; removeEventListener: any; readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; }; readonly parentNode: { readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly previousSibling: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; textContent: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; appendChild: unknown; cloneNode: unknown; compareDocumentPosition: unknown; contains: unknown; getRootNode: unknown; hasChildNodes: unknown; insertBefore: unknown; isDefaultNamespace: unknown; isEqualNode: unknown; isSameNode: unknown; lookupNamespaceURI: unknown; lookupPrefix: unknown; normalize: unknown; removeChild: unknown; replaceChild: unknown; readonly ATTRIBUTE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly CDATA_SECTION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly COMMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_FRAGMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_CONTAINED_BY: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_CONTAINS: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_DISCONNECTED: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_FOLLOWING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_PRECEDING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_TYPE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ELEMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ENTITY_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ENTITY_REFERENCE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly NOTATION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly PROCESSING_INSTRUCTION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly TEXT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; dispatchEvent: unknown; ariaAtomic: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaAutoComplete: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaBusy: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaChecked: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaColCount: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaColIndex: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaColSpan: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaCurrent: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaDisabled: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaExpanded: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaHasPopup: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaHidden: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaKeyShortcuts: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaLabel: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaLevel: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaLive: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaModal: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaMultiLine: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaMultiSelectable: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaOrientation: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaPlaceholder: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaPosInSet: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaPressed: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaReadOnly: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRequired: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRoleDescription: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRowCount: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRowIndex: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRowSpan: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaSelected: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaSetSize: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaSort: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaValueMax: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaValueMin: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaValueNow: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaValueText: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; animate: unknown; getAnimations: unknown; after: unknown; before: unknown; remove: unknown; replaceWith: unknown; innerHTML: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly nextElementSibling: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly previousElementSibling: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly childElementCount: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly children: { namedItem: any; readonly length: any; item: any; }; readonly firstElementChild: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly lastElementChild: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; append: unknown; prepend: unknown; querySelector: unknown; querySelectorAll: unknown; replaceChildren: unknown; readonly assignedSlot: { name: any; assign: any; assignedElements: any; assignedNodes: any; addEventListener: any; removeEventListener: any; accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; spellcheck: any; title: any; translate: any; attachInternals: any; click: any; readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; }; } | { readonly ownerDocument: { readonly URL: any; alinkColor: any; readonly all: any; readonly anchors: any; readonly applets: any; bgColor: any; body: any; readonly characterSet: any; readonly charset: any; readonly compatMode: any; readonly contentType: any; cookie: any; readonly currentScript: any; readonly defaultView: any; designMode: any; dir: any; readonly doctype: any; readonly documentElement: any; readonly documentURI: any; domain: any; readonly embeds: any; fgColor: any; readonly forms: any; readonly fullscreen: any; readonly fullscreenEnabled: any; readonly head: any; readonly hidden: any; readonly images: any; readonly implementation: any; readonly inputEncoding: any; readonly lastModified: any; linkColor: any; readonly links: any; location: any; onfullscreenchange: any; onfullscreenerror: any; onpointerlockchange: any; onpointerlockerror: any; onreadystatechange: any; onvisibilitychange: any; readonly ownerDocument: any; readonly pictureInPictureEnabled: any; readonly plugins: any; readonly readyState: any; readonly referrer: any; readonly rootElement: any; readonly scripts: any; readonly scrollingElement: any; readonly timeline: any; title: any; readonly visibilityState: any; vlinkColor: any; adoptNode: any; captureEvents: any; caretRangeFromPoint: any; clear: any; close: any; createAttribute: any; createAttributeNS: any; createCDATASection: any; createComment: any; createDocumentFragment: any; createElement: any; createElementNS: any; createEvent: any; createNodeIterator: any; createProcessingInstruction: any; createRange: any; createTextNode: any; createTreeWalker: any; execCommand: any; exitFullscreen: any; exitPictureInPicture: any; exitPointerLock: any; getElementById: any; getElementsByClassName: any; getElementsByName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getSelection: any; hasFocus: any; hasStorageAccess: any; importNode: any; open: any; queryCommandEnabled: any; queryCommandIndeterm: any; queryCommandState: any; queryCommandSupported: any; queryCommandValue: any; releaseEvents: any; requestStorageAccess: any; write: any; writeln: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; oncopy: any; oncut: any; onpaste: any; readonly activeElement: any; readonly fullscreenElement: any; readonly pictureInPictureElement: any; readonly pointerLockElement: any; readonly styleSheets: any; elementFromPoint: any; elementsFromPoint: any; getAnimations: any; readonly fonts: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; createExpression: any; createNSResolver: any; evaluate: any; }; readonly target: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; data: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly length: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; appendData: unknown; deleteData: unknown; insertData: unknown; replaceData: unknown; substringData: unknown; readonly baseURI: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly childNodes: { item: any; forEach: any; readonly length: any; }; readonly firstChild: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly isConnected: { valueOf: any; }; readonly lastChild: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly nextSibling: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly nodeName: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly nodeType: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; nodeValue: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly parentElement: { accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; spellcheck: any; title: any; translate: any; attachInternals: any; click: any; addEventListener: any; removeEventListener: any; readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; }; readonly parentNode: { readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly previousSibling: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; textContent: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; appendChild: unknown; cloneNode: unknown; compareDocumentPosition: unknown; contains: unknown; getRootNode: unknown; hasChildNodes: unknown; insertBefore: unknown; isDefaultNamespace: unknown; isEqualNode: unknown; isSameNode: unknown; lookupNamespaceURI: unknown; lookupPrefix: unknown; normalize: unknown; removeChild: unknown; replaceChild: unknown; readonly ATTRIBUTE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly CDATA_SECTION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly COMMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_FRAGMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_CONTAINED_BY: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_CONTAINS: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_DISCONNECTED: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_FOLLOWING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_PRECEDING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_TYPE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ELEMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ENTITY_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ENTITY_REFERENCE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly NOTATION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly PROCESSING_INSTRUCTION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly TEXT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; addEventListener: unknown; dispatchEvent: unknown; removeEventListener: unknown; after: unknown; before: unknown; remove: unknown; replaceWith: unknown; readonly nextElementSibling: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly previousElementSibling: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly sheet: { readonly cssRules: any; readonly ownerRule: any; readonly rules: any; addRule: any; deleteRule: any; insertRule: any; removeRule: any; disabled: any; readonly href: any; readonly media: any; readonly ownerNode: any; readonly parentStyleSheet: any; readonly title: any; readonly type: any; }; }>'. + Type 'Element' is not assignable to type 'Deep<{ readonly attributes: { readonly length: any; getNamedItem: any; getNamedItemNS: any; item: any; removeNamedItem: any; removeNamedItemNS: any; setNamedItem: any; setNamedItemNS: any; }; readonly classList: { readonly length: any; value: any; toString: any; add: any; contains: any; item: any; remove: any; replace: any; supports: any; toggle: any; forEach: any; }; className: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly clientHeight: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly clientLeft: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly clientTop: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly clientWidth: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; id: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly localName: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly namespaceURI: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; onfullscreenchange: unknown; onfullscreenerror: unknown; outerHTML: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly ownerDocument: { readonly URL: any; alinkColor: any; readonly all: any; readonly anchors: any; readonly applets: any; bgColor: any; body: any; readonly characterSet: any; readonly charset: any; readonly compatMode: any; readonly contentType: any; cookie: any; readonly currentScript: any; readonly defaultView: any; designMode: any; dir: any; readonly doctype: any; readonly documentElement: any; readonly documentURI: any; domain: any; readonly embeds: any; fgColor: any; readonly forms: any; readonly fullscreen: any; readonly fullscreenEnabled: any; readonly head: any; readonly hidden: any; readonly images: any; readonly implementation: any; readonly inputEncoding: any; readonly lastModified: any; linkColor: any; readonly links: any; location: any; onfullscreenchange: any; onfullscreenerror: any; onpointerlockchange: any; onpointerlockerror: any; onreadystatechange: any; onvisibilitychange: any; readonly ownerDocument: any; readonly pictureInPictureEnabled: any; readonly plugins: any; readonly readyState: any; readonly referrer: any; readonly rootElement: any; readonly scripts: any; readonly scrollingElement: any; readonly timeline: any; title: any; readonly visibilityState: any; vlinkColor: any; adoptNode: any; captureEvents: any; caretRangeFromPoint: any; clear: any; close: any; createAttribute: any; createAttributeNS: any; createCDATASection: any; createComment: any; createDocumentFragment: any; createElement: any; createElementNS: any; createEvent: any; createNodeIterator: any; createProcessingInstruction: any; createRange: any; createTextNode: any; createTreeWalker: any; execCommand: any; exitFullscreen: any; exitPictureInPicture: any; exitPointerLock: any; getElementById: any; getElementsByClassName: any; getElementsByName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getSelection: any; hasFocus: any; hasStorageAccess: any; importNode: any; open: any; queryCommandEnabled: any; queryCommandIndeterm: any; queryCommandState: any; queryCommandSupported: any; queryCommandValue: any; releaseEvents: any; requestStorageAccess: any; write: any; writeln: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; oncopy: any; oncut: any; onpaste: any; readonly activeElement: any; readonly fullscreenElement: any; readonly pictureInPictureElement: any; readonly pointerLockElement: any; readonly styleSheets: any; elementFromPoint: any; elementsFromPoint: any; getAnimations: any; readonly fonts: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; createExpression: any; createNSResolver: any; evaluate: any; }; readonly part: { readonly length: any; value: any; toString: any; add: any; contains: any; item: any; remove: any; replace: any; supports: any; toggle: any; forEach: any; }; readonly prefix: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly scrollHeight: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; scrollLeft: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; scrollTop: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly scrollWidth: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly shadowRoot: { readonly delegatesFocus: any; readonly host: any; readonly mode: any; onslotchange: any; readonly slotAssignment: any; addEventListener: any; removeEventListener: any; readonly ownerDocument: any; getElementById: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly activeElement: any; readonly fullscreenElement: any; readonly pictureInPictureElement: any; readonly pointerLockElement: any; readonly styleSheets: any; elementFromPoint: any; elementsFromPoint: any; getAnimations: any; innerHTML: any; }; slot: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly tagName: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; attachShadow: unknown; closest: unknown; getAttribute: unknown; getAttributeNS: unknown; getAttributeNames: unknown; getAttributeNode: unknown; getAttributeNodeNS: unknown; getBoundingClientRect: unknown; getClientRects: unknown; getElementsByClassName: unknown; getElementsByTagName: unknown; getElementsByTagNameNS: unknown; hasAttribute: unknown; hasAttributeNS: unknown; hasAttributes: unknown; hasPointerCapture: unknown; insertAdjacentElement: unknown; insertAdjacentHTML: unknown; insertAdjacentText: unknown; matches: unknown; releasePointerCapture: unknown; removeAttribute: unknown; removeAttributeNS: unknown; removeAttributeNode: unknown; requestFullscreen: unknown; requestPointerLock: unknown; scroll: unknown; scrollBy: unknown; scrollIntoView: unknown; scrollTo: unknown; setAttribute: unknown; setAttributeNS: unknown; setAttributeNode: unknown; setAttributeNodeNS: unknown; setPointerCapture: unknown; toggleAttribute: unknown; webkitMatchesSelector: unknown; addEventListener: unknown; removeEventListener: unknown; readonly baseURI: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly childNodes: { item: any; forEach: any; readonly length: any; }; readonly firstChild: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly isConnected: { valueOf: any; }; readonly lastChild: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly nextSibling: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly nodeName: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly nodeType: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; nodeValue: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly parentElement: { accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; spellcheck: any; title: any; translate: any; attachInternals: any; click: any; addEventListener: any; removeEventListener: any; readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; }; readonly parentNode: { readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly previousSibling: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; textContent: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; appendChild: unknown; cloneNode: unknown; compareDocumentPosition: unknown; contains: unknown; getRootNode: unknown; hasChildNodes: unknown; insertBefore: unknown; isDefaultNamespace: unknown; isEqualNode: unknown; isSameNode: unknown; lookupNamespaceURI: unknown; lookupPrefix: unknown; normalize: unknown; removeChild: unknown; replaceChild: unknown; readonly ATTRIBUTE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly CDATA_SECTION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly COMMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_FRAGMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_CONTAINED_BY: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_CONTAINS: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_DISCONNECTED: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_FOLLOWING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_PRECEDING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_TYPE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ELEMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ENTITY_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ENTITY_REFERENCE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly NOTATION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly PROCESSING_INSTRUCTION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly TEXT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; dispatchEvent: unknown; ariaAtomic: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaAutoComplete: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaBusy: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaChecked: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaColCount: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaColIndex: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaColSpan: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaCurrent: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaDisabled: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaExpanded: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaHasPopup: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaHidden: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaKeyShortcuts: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaLabel: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaLevel: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaLive: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaModal: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaMultiLine: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaMultiSelectable: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaOrientation: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaPlaceholder: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaPosInSet: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaPressed: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaReadOnly: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRequired: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRoleDescription: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRowCount: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRowIndex: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRowSpan: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaSelected: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaSetSize: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaSort: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaValueMax: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaValueMin: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaValueNow: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaValueText: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; animate: unknown; getAnimations: unknown; after: unknown; before: unknown; remove: unknown; replaceWith: unknown; innerHTML: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly nextElementSibling: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly previousElementSibling: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly childElementCount: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly children: { namedItem: any; readonly length: any; item: any; }; readonly firstElementChild: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly lastElementChild: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; append: unknown; prepend: unknown; querySelector: unknown; querySelectorAll: unknown; replaceChildren: unknown; readonly assignedSlot: { name: any; assign: any; assignedElements: any; assignedNodes: any; addEventListener: any; removeEventListener: any; accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; spellcheck: any; title: any; translate: any; attachInternals: any; click: any; readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; }; } | { readonly ownerDocument: { readonly URL: any; alinkColor: any; readonly all: any; readonly anchors: any; readonly applets: any; bgColor: any; body: any; readonly characterSet: any; readonly charset: any; readonly compatMode: any; readonly contentType: any; cookie: any; readonly currentScript: any; readonly defaultView: any; designMode: any; dir: any; readonly doctype: any; readonly documentElement: any; readonly documentURI: any; domain: any; readonly embeds: any; fgColor: any; readonly forms: any; readonly fullscreen: any; readonly fullscreenEnabled: any; readonly head: any; readonly hidden: any; readonly images: any; readonly implementation: any; readonly inputEncoding: any; readonly lastModified: any; linkColor: any; readonly links: any; location: any; onfullscreenchange: any; onfullscreenerror: any; onpointerlockchange: any; onpointerlockerror: any; onreadystatechange: any; onvisibilitychange: any; readonly ownerDocument: any; readonly pictureInPictureEnabled: any; readonly plugins: any; readonly readyState: any; readonly referrer: any; readonly rootElement: any; readonly scripts: any; readonly scrollingElement: any; readonly timeline: any; title: any; readonly visibilityState: any; vlinkColor: any; adoptNode: any; captureEvents: any; caretRangeFromPoint: any; clear: any; close: any; createAttribute: any; createAttributeNS: any; createCDATASection: any; createComment: any; createDocumentFragment: any; createElement: any; createElementNS: any; createEvent: any; createNodeIterator: any; createProcessingInstruction: any; createRange: any; createTextNode: any; createTreeWalker: any; execCommand: any; exitFullscreen: any; exitPictureInPicture: any; exitPointerLock: any; getElementById: any; getElementsByClassName: any; getElementsByName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getSelection: any; hasFocus: any; hasStorageAccess: any; importNode: any; open: any; queryCommandEnabled: any; queryCommandIndeterm: any; queryCommandState: any; queryCommandSupported: any; queryCommandValue: any; releaseEvents: any; requestStorageAccess: any; write: any; writeln: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; oncopy: any; oncut: any; onpaste: any; readonly activeElement: any; readonly fullscreenElement: any; readonly pictureInPictureElement: any; readonly pointerLockElement: any; readonly styleSheets: any; elementFromPoint: any; elementsFromPoint: any; getAnimations: any; readonly fonts: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; createExpression: any; createNSResolver: any; evaluate: any; }; readonly target: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; data: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly length: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; appendData: unknown; deleteData: unknown; insertData: unknown; replaceData: unknown; substringData: unknown; readonly baseURI: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly childNodes: { item: any; forEach: any; readonly length: any; }; readonly firstChild: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly isConnected: { valueOf: any; }; readonly lastChild: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly nextSibling: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly nodeName: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly nodeType: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; nodeValue: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly parentElement: { accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; spellcheck: any; title: any; translate: any; attachInternals: any; click: any; addEventListener: any; removeEventListener: any; readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; }; readonly parentNode: { readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly previousSibling: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; textContent: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; appendChild: unknown; cloneNode: unknown; compareDocumentPosition: unknown; contains: unknown; getRootNode: unknown; hasChildNodes: unknown; insertBefore: unknown; isDefaultNamespace: unknown; isEqualNode: unknown; isSameNode: unknown; lookupNamespaceURI: unknown; lookupPrefix: unknown; normalize: unknown; removeChild: unknown; replaceChild: unknown; readonly ATTRIBUTE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly CDATA_SECTION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly COMMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_FRAGMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_CONTAINED_BY: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_CONTAINS: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_DISCONNECTED: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_FOLLOWING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_PRECEDING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_TYPE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ELEMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ENTITY_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ENTITY_REFERENCE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly NOTATION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly PROCESSING_INSTRUCTION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly TEXT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; addEventListener: unknown; dispatchEvent: unknown; removeEventListener: unknown; after: unknown; before: unknown; remove: unknown; replaceWith: unknown; readonly nextElementSibling: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly previousElementSibling: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly sheet: { readonly cssRules: any; readonly ownerRule: any; readonly rules: any; addRule: any; deleteRule: any; insertRule: any; removeRule: any; disabled: any; readonly href: any; readonly media: any; readonly ownerNode: any; readonly parentStyleSheet: any; readonly title: any; readonly type: any; }; }>'. ==== tests/cases/compiler/mappedTypeRecursiveInference.ts (1 errors) ==== @@ -25,10 +25,10 @@ tests/cases/compiler/mappedTypeRecursiveInference.ts(19,18): error TS2345: Argum let xhr: XMLHttpRequest; const out2 = foo(xhr); ~~~ -!!! error TS2345: Argument of type 'XMLHttpRequest' is not assignable to parameter of type 'Deep<{ onreadystatechange: unknown; readonly readyState: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly response: unknown; readonly responseText: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; responseType: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly responseURL: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly responseXML: { readonly URL: any; alinkColor: any; readonly all: any; readonly anchors: any; readonly applets: any; bgColor: any; body: any; readonly characterSet: any; readonly charset: any; readonly compatMode: any; readonly contentType: any; cookie: any; readonly currentScript: any; readonly defaultView: any; designMode: any; dir: any; readonly doctype: any; readonly documentElement: any; readonly documentURI: any; domain: any; readonly embeds: any; fgColor: any; readonly forms: any; readonly fullscreen: any; readonly fullscreenEnabled: any; readonly head: any; readonly hidden: any; readonly images: any; readonly implementation: any; readonly inputEncoding: any; readonly lastModified: any; linkColor: any; readonly links: any; location: any; onfullscreenchange: any; onfullscreenerror: any; onpointerlockchange: any; onpointerlockerror: any; onreadystatechange: any; onvisibilitychange: any; readonly ownerDocument: any; readonly pictureInPictureEnabled: any; readonly plugins: any; readonly readyState: any; readonly referrer: any; readonly rootElement: any; readonly scripts: any; readonly scrollingElement: any; readonly timeline: any; title: any; readonly visibilityState: any; vlinkColor: any; adoptNode: any; captureEvents: any; caretRangeFromPoint: any; clear: any; close: any; createAttribute: any; createAttributeNS: any; createCDATASection: any; createComment: any; createDocumentFragment: any; createElement: any; createElementNS: any; createEvent: any; createNodeIterator: any; createProcessingInstruction: any; createRange: any; createTextNode: any; createTreeWalker: any; elementFromPoint: any; elementsFromPoint: any; execCommand: any; exitFullscreen: any; exitPictureInPicture: any; exitPointerLock: any; getElementById: any; getElementsByClassName: any; getElementsByName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getSelection: any; hasFocus: any; hasStorageAccess: any; importNode: any; open: any; queryCommandEnabled: any; queryCommandIndeterm: any; queryCommandState: any; queryCommandSupported: any; queryCommandValue: any; releaseEvents: any; requestStorageAccess: any; write: any; writeln: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; oncopy: any; oncut: any; onpaste: any; readonly activeElement: any; readonly fullscreenElement: any; readonly pictureInPictureElement: any; readonly pointerLockElement: any; readonly styleSheets: any; getAnimations: any; readonly fonts: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; createExpression: any; createNSResolver: any; evaluate: any; }; readonly status: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly statusText: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; timeout: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly upload: { addEventListener: any; removeEventListener: any; onabort: any; onerror: any; onload: any; onloadend: any; onloadstart: any; onprogress: any; ontimeout: any; dispatchEvent: any; }; withCredentials: { valueOf: any; }; abort: unknown; getAllResponseHeaders: unknown; getResponseHeader: unknown; open: unknown; overrideMimeType: unknown; send: unknown; setRequestHeader: unknown; readonly DONE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly HEADERS_RECEIVED: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly LOADING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly OPENED: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly UNSENT: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; addEventListener: unknown; removeEventListener: unknown; onabort: unknown; onerror: unknown; onload: unknown; onloadend: unknown; onloadstart: unknown; onprogress: unknown; ontimeout: unknown; dispatchEvent: unknown; }>'. +!!! error TS2345: Argument of type 'XMLHttpRequest' is not assignable to parameter of type 'Deep<{ onreadystatechange: unknown; readonly readyState: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly response: unknown; readonly responseText: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; responseType: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly responseURL: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly responseXML: { readonly URL: any; alinkColor: any; readonly all: any; readonly anchors: any; readonly applets: any; bgColor: any; body: any; readonly characterSet: any; readonly charset: any; readonly compatMode: any; readonly contentType: any; cookie: any; readonly currentScript: any; readonly defaultView: any; designMode: any; dir: any; readonly doctype: any; readonly documentElement: any; readonly documentURI: any; domain: any; readonly embeds: any; fgColor: any; readonly forms: any; readonly fullscreen: any; readonly fullscreenEnabled: any; readonly head: any; readonly hidden: any; readonly images: any; readonly implementation: any; readonly inputEncoding: any; readonly lastModified: any; linkColor: any; readonly links: any; location: any; onfullscreenchange: any; onfullscreenerror: any; onpointerlockchange: any; onpointerlockerror: any; onreadystatechange: any; onvisibilitychange: any; readonly ownerDocument: any; readonly pictureInPictureEnabled: any; readonly plugins: any; readonly readyState: any; readonly referrer: any; readonly rootElement: any; readonly scripts: any; readonly scrollingElement: any; readonly timeline: any; title: any; readonly visibilityState: any; vlinkColor: any; adoptNode: any; captureEvents: any; caretRangeFromPoint: any; clear: any; close: any; createAttribute: any; createAttributeNS: any; createCDATASection: any; createComment: any; createDocumentFragment: any; createElement: any; createElementNS: any; createEvent: any; createNodeIterator: any; createProcessingInstruction: any; createRange: any; createTextNode: any; createTreeWalker: any; execCommand: any; exitFullscreen: any; exitPictureInPicture: any; exitPointerLock: any; getElementById: any; getElementsByClassName: any; getElementsByName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getSelection: any; hasFocus: any; hasStorageAccess: any; importNode: any; open: any; queryCommandEnabled: any; queryCommandIndeterm: any; queryCommandState: any; queryCommandSupported: any; queryCommandValue: any; releaseEvents: any; requestStorageAccess: any; write: any; writeln: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; oncopy: any; oncut: any; onpaste: any; readonly activeElement: any; readonly fullscreenElement: any; readonly pictureInPictureElement: any; readonly pointerLockElement: any; readonly styleSheets: any; elementFromPoint: any; elementsFromPoint: any; getAnimations: any; readonly fonts: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; createExpression: any; createNSResolver: any; evaluate: any; }; readonly status: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly statusText: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; timeout: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly upload: { addEventListener: any; removeEventListener: any; onabort: any; onerror: any; onload: any; onloadend: any; onloadstart: any; onprogress: any; ontimeout: any; dispatchEvent: any; }; withCredentials: { valueOf: any; }; abort: unknown; getAllResponseHeaders: unknown; getResponseHeader: unknown; open: unknown; overrideMimeType: unknown; send: unknown; setRequestHeader: unknown; readonly DONE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly HEADERS_RECEIVED: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly LOADING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly OPENED: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly UNSENT: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; addEventListener: unknown; removeEventListener: unknown; onabort: unknown; onerror: unknown; onload: unknown; onloadend: unknown; onloadstart: unknown; onprogress: unknown; ontimeout: unknown; dispatchEvent: unknown; }>'. !!! error TS2345: The types of 'responseXML.body.offsetParent.assignedSlot.style.parentRule.parentStyleSheet.ownerNode' are incompatible between these types. -!!! error TS2345: Type 'Element | ProcessingInstruction' is not assignable to type 'Deep<{ readonly attributes: { readonly length: any; getNamedItem: any; getNamedItemNS: any; item: any; removeNamedItem: any; removeNamedItemNS: any; setNamedItem: any; setNamedItemNS: any; }; readonly classList: { readonly length: any; value: any; toString: any; add: any; contains: any; item: any; remove: any; replace: any; supports: any; toggle: any; forEach: any; }; className: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly clientHeight: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly clientLeft: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly clientTop: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly clientWidth: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; id: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly localName: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly namespaceURI: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; onfullscreenchange: unknown; onfullscreenerror: unknown; outerHTML: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly ownerDocument: { readonly URL: any; alinkColor: any; readonly all: any; readonly anchors: any; readonly applets: any; bgColor: any; body: any; readonly characterSet: any; readonly charset: any; readonly compatMode: any; readonly contentType: any; cookie: any; readonly currentScript: any; readonly defaultView: any; designMode: any; dir: any; readonly doctype: any; readonly documentElement: any; readonly documentURI: any; domain: any; readonly embeds: any; fgColor: any; readonly forms: any; readonly fullscreen: any; readonly fullscreenEnabled: any; readonly head: any; readonly hidden: any; readonly images: any; readonly implementation: any; readonly inputEncoding: any; readonly lastModified: any; linkColor: any; readonly links: any; location: any; onfullscreenchange: any; onfullscreenerror: any; onpointerlockchange: any; onpointerlockerror: any; onreadystatechange: any; onvisibilitychange: any; readonly ownerDocument: any; readonly pictureInPictureEnabled: any; readonly plugins: any; readonly readyState: any; readonly referrer: any; readonly rootElement: any; readonly scripts: any; readonly scrollingElement: any; readonly timeline: any; title: any; readonly visibilityState: any; vlinkColor: any; adoptNode: any; captureEvents: any; caretRangeFromPoint: any; clear: any; close: any; createAttribute: any; createAttributeNS: any; createCDATASection: any; createComment: any; createDocumentFragment: any; createElement: any; createElementNS: any; createEvent: any; createNodeIterator: any; createProcessingInstruction: any; createRange: any; createTextNode: any; createTreeWalker: any; elementFromPoint: any; elementsFromPoint: any; execCommand: any; exitFullscreen: any; exitPictureInPicture: any; exitPointerLock: any; getElementById: any; getElementsByClassName: any; getElementsByName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getSelection: any; hasFocus: any; hasStorageAccess: any; importNode: any; open: any; queryCommandEnabled: any; queryCommandIndeterm: any; queryCommandState: any; queryCommandSupported: any; queryCommandValue: any; releaseEvents: any; requestStorageAccess: any; write: any; writeln: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; oncopy: any; oncut: any; onpaste: any; readonly activeElement: any; readonly fullscreenElement: any; readonly pictureInPictureElement: any; readonly pointerLockElement: any; readonly styleSheets: any; getAnimations: any; readonly fonts: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; createExpression: any; createNSResolver: any; evaluate: any; }; readonly part: { readonly length: any; value: any; toString: any; add: any; contains: any; item: any; remove: any; replace: any; supports: any; toggle: any; forEach: any; }; readonly prefix: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly scrollHeight: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; scrollLeft: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; scrollTop: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly scrollWidth: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly shadowRoot: { readonly delegatesFocus: any; readonly host: any; readonly mode: any; readonly ownerDocument: any; getElementById: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly activeElement: any; readonly fullscreenElement: any; readonly pictureInPictureElement: any; readonly pointerLockElement: any; readonly styleSheets: any; getAnimations: any; innerHTML: any; }; slot: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly tagName: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; attachShadow: unknown; closest: unknown; getAttribute: unknown; getAttributeNS: unknown; getAttributeNames: unknown; getAttributeNode: unknown; getAttributeNodeNS: unknown; getBoundingClientRect: unknown; getClientRects: unknown; getElementsByClassName: unknown; getElementsByTagName: unknown; getElementsByTagNameNS: unknown; hasAttribute: unknown; hasAttributeNS: unknown; hasAttributes: unknown; hasPointerCapture: unknown; insertAdjacentElement: unknown; insertAdjacentHTML: unknown; insertAdjacentText: unknown; matches: unknown; releasePointerCapture: unknown; removeAttribute: unknown; removeAttributeNS: unknown; removeAttributeNode: unknown; requestFullscreen: unknown; requestPointerLock: unknown; scroll: unknown; scrollBy: unknown; scrollIntoView: unknown; scrollTo: unknown; setAttribute: unknown; setAttributeNS: unknown; setAttributeNode: unknown; setAttributeNodeNS: unknown; setPointerCapture: unknown; toggleAttribute: unknown; webkitMatchesSelector: unknown; addEventListener: unknown; removeEventListener: unknown; readonly baseURI: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly childNodes: { item: any; forEach: any; readonly length: any; }; readonly firstChild: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly isConnected: { valueOf: any; }; readonly lastChild: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly nextSibling: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly nodeName: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly nodeType: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; nodeValue: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly parentElement: { accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; spellcheck: any; title: any; translate: any; click: any; addEventListener: any; removeEventListener: any; readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; }; readonly parentNode: { readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly previousSibling: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; textContent: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; appendChild: unknown; cloneNode: unknown; compareDocumentPosition: unknown; contains: unknown; getRootNode: unknown; hasChildNodes: unknown; insertBefore: unknown; isDefaultNamespace: unknown; isEqualNode: unknown; isSameNode: unknown; lookupNamespaceURI: unknown; lookupPrefix: unknown; normalize: unknown; removeChild: unknown; replaceChild: unknown; readonly ATTRIBUTE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly CDATA_SECTION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly COMMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_FRAGMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_CONTAINED_BY: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_CONTAINS: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_DISCONNECTED: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_FOLLOWING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_PRECEDING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_TYPE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ELEMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ENTITY_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ENTITY_REFERENCE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly NOTATION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly PROCESSING_INSTRUCTION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly TEXT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; dispatchEvent: unknown; ariaAtomic: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaAutoComplete: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaBusy: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaChecked: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaColCount: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaColIndex: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaColSpan: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaCurrent: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaDisabled: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaExpanded: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaHasPopup: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaHidden: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaKeyShortcuts: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaLabel: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaLevel: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaLive: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaModal: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaMultiLine: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaMultiSelectable: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaOrientation: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaPlaceholder: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaPosInSet: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaPressed: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaReadOnly: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRequired: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRoleDescription: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRowCount: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRowIndex: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRowSpan: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaSelected: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaSetSize: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaSort: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaValueMax: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaValueMin: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaValueNow: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaValueText: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; animate: unknown; getAnimations: unknown; after: unknown; before: unknown; remove: unknown; replaceWith: unknown; innerHTML: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly nextElementSibling: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly previousElementSibling: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly childElementCount: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly children: { namedItem: any; readonly length: any; item: any; }; readonly firstElementChild: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly lastElementChild: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; append: unknown; prepend: unknown; querySelector: unknown; querySelectorAll: unknown; replaceChildren: unknown; readonly assignedSlot: { name: any; assignedElements: any; assignedNodes: any; addEventListener: any; removeEventListener: any; accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; spellcheck: any; title: any; translate: any; click: any; readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; }; } | { readonly ownerDocument: { readonly URL: any; alinkColor: any; readonly all: any; readonly anchors: any; readonly applets: any; bgColor: any; body: any; readonly characterSet: any; readonly charset: any; readonly compatMode: any; readonly contentType: any; cookie: any; readonly currentScript: any; readonly defaultView: any; designMode: any; dir: any; readonly doctype: any; readonly documentElement: any; readonly documentURI: any; domain: any; readonly embeds: any; fgColor: any; readonly forms: any; readonly fullscreen: any; readonly fullscreenEnabled: any; readonly head: any; readonly hidden: any; readonly images: any; readonly implementation: any; readonly inputEncoding: any; readonly lastModified: any; linkColor: any; readonly links: any; location: any; onfullscreenchange: any; onfullscreenerror: any; onpointerlockchange: any; onpointerlockerror: any; onreadystatechange: any; onvisibilitychange: any; readonly ownerDocument: any; readonly pictureInPictureEnabled: any; readonly plugins: any; readonly readyState: any; readonly referrer: any; readonly rootElement: any; readonly scripts: any; readonly scrollingElement: any; readonly timeline: any; title: any; readonly visibilityState: any; vlinkColor: any; adoptNode: any; captureEvents: any; caretRangeFromPoint: any; clear: any; close: any; createAttribute: any; createAttributeNS: any; createCDATASection: any; createComment: any; createDocumentFragment: any; createElement: any; createElementNS: any; createEvent: any; createNodeIterator: any; createProcessingInstruction: any; createRange: any; createTextNode: any; createTreeWalker: any; elementFromPoint: any; elementsFromPoint: any; execCommand: any; exitFullscreen: any; exitPictureInPicture: any; exitPointerLock: any; getElementById: any; getElementsByClassName: any; getElementsByName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getSelection: any; hasFocus: any; hasStorageAccess: any; importNode: any; open: any; queryCommandEnabled: any; queryCommandIndeterm: any; queryCommandState: any; queryCommandSupported: any; queryCommandValue: any; releaseEvents: any; requestStorageAccess: any; write: any; writeln: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; oncopy: any; oncut: any; onpaste: any; readonly activeElement: any; readonly fullscreenElement: any; readonly pictureInPictureElement: any; readonly pointerLockElement: any; readonly styleSheets: any; getAnimations: any; readonly fonts: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; createExpression: any; createNSResolver: any; evaluate: any; }; readonly target: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; data: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly length: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; appendData: unknown; deleteData: unknown; insertData: unknown; replaceData: unknown; substringData: unknown; readonly baseURI: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly childNodes: { item: any; forEach: any; readonly length: any; }; readonly firstChild: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly isConnected: { valueOf: any; }; readonly lastChild: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly nextSibling: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly nodeName: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly nodeType: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; nodeValue: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly parentElement: { accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; spellcheck: any; title: any; translate: any; click: any; addEventListener: any; removeEventListener: any; readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; }; readonly parentNode: { readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly previousSibling: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; textContent: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; appendChild: unknown; cloneNode: unknown; compareDocumentPosition: unknown; contains: unknown; getRootNode: unknown; hasChildNodes: unknown; insertBefore: unknown; isDefaultNamespace: unknown; isEqualNode: unknown; isSameNode: unknown; lookupNamespaceURI: unknown; lookupPrefix: unknown; normalize: unknown; removeChild: unknown; replaceChild: unknown; readonly ATTRIBUTE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly CDATA_SECTION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly COMMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_FRAGMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_CONTAINED_BY: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_CONTAINS: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_DISCONNECTED: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_FOLLOWING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_PRECEDING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_TYPE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ELEMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ENTITY_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ENTITY_REFERENCE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly NOTATION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly PROCESSING_INSTRUCTION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly TEXT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; addEventListener: unknown; dispatchEvent: unknown; removeEventListener: unknown; after: unknown; before: unknown; remove: unknown; replaceWith: unknown; readonly nextElementSibling: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly previousElementSibling: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly sheet: { readonly cssRules: any; readonly ownerRule: any; readonly rules: any; addRule: any; deleteRule: any; insertRule: any; removeRule: any; disabled: any; readonly href: any; readonly media: any; readonly ownerNode: any; readonly parentStyleSheet: any; readonly title: any; readonly type: any; }; }>'. -!!! error TS2345: Type 'Element' is not assignable to type 'Deep<{ readonly attributes: { readonly length: any; getNamedItem: any; getNamedItemNS: any; item: any; removeNamedItem: any; removeNamedItemNS: any; setNamedItem: any; setNamedItemNS: any; }; readonly classList: { readonly length: any; value: any; toString: any; add: any; contains: any; item: any; remove: any; replace: any; supports: any; toggle: any; forEach: any; }; className: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly clientHeight: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly clientLeft: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly clientTop: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly clientWidth: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; id: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly localName: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly namespaceURI: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; onfullscreenchange: unknown; onfullscreenerror: unknown; outerHTML: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly ownerDocument: { readonly URL: any; alinkColor: any; readonly all: any; readonly anchors: any; readonly applets: any; bgColor: any; body: any; readonly characterSet: any; readonly charset: any; readonly compatMode: any; readonly contentType: any; cookie: any; readonly currentScript: any; readonly defaultView: any; designMode: any; dir: any; readonly doctype: any; readonly documentElement: any; readonly documentURI: any; domain: any; readonly embeds: any; fgColor: any; readonly forms: any; readonly fullscreen: any; readonly fullscreenEnabled: any; readonly head: any; readonly hidden: any; readonly images: any; readonly implementation: any; readonly inputEncoding: any; readonly lastModified: any; linkColor: any; readonly links: any; location: any; onfullscreenchange: any; onfullscreenerror: any; onpointerlockchange: any; onpointerlockerror: any; onreadystatechange: any; onvisibilitychange: any; readonly ownerDocument: any; readonly pictureInPictureEnabled: any; readonly plugins: any; readonly readyState: any; readonly referrer: any; readonly rootElement: any; readonly scripts: any; readonly scrollingElement: any; readonly timeline: any; title: any; readonly visibilityState: any; vlinkColor: any; adoptNode: any; captureEvents: any; caretRangeFromPoint: any; clear: any; close: any; createAttribute: any; createAttributeNS: any; createCDATASection: any; createComment: any; createDocumentFragment: any; createElement: any; createElementNS: any; createEvent: any; createNodeIterator: any; createProcessingInstruction: any; createRange: any; createTextNode: any; createTreeWalker: any; elementFromPoint: any; elementsFromPoint: any; execCommand: any; exitFullscreen: any; exitPictureInPicture: any; exitPointerLock: any; getElementById: any; getElementsByClassName: any; getElementsByName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getSelection: any; hasFocus: any; hasStorageAccess: any; importNode: any; open: any; queryCommandEnabled: any; queryCommandIndeterm: any; queryCommandState: any; queryCommandSupported: any; queryCommandValue: any; releaseEvents: any; requestStorageAccess: any; write: any; writeln: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; oncopy: any; oncut: any; onpaste: any; readonly activeElement: any; readonly fullscreenElement: any; readonly pictureInPictureElement: any; readonly pointerLockElement: any; readonly styleSheets: any; getAnimations: any; readonly fonts: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; createExpression: any; createNSResolver: any; evaluate: any; }; readonly part: { readonly length: any; value: any; toString: any; add: any; contains: any; item: any; remove: any; replace: any; supports: any; toggle: any; forEach: any; }; readonly prefix: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly scrollHeight: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; scrollLeft: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; scrollTop: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly scrollWidth: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly shadowRoot: { readonly delegatesFocus: any; readonly host: any; readonly mode: any; readonly ownerDocument: any; getElementById: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly activeElement: any; readonly fullscreenElement: any; readonly pictureInPictureElement: any; readonly pointerLockElement: any; readonly styleSheets: any; getAnimations: any; innerHTML: any; }; slot: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly tagName: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; attachShadow: unknown; closest: unknown; getAttribute: unknown; getAttributeNS: unknown; getAttributeNames: unknown; getAttributeNode: unknown; getAttributeNodeNS: unknown; getBoundingClientRect: unknown; getClientRects: unknown; getElementsByClassName: unknown; getElementsByTagName: unknown; getElementsByTagNameNS: unknown; hasAttribute: unknown; hasAttributeNS: unknown; hasAttributes: unknown; hasPointerCapture: unknown; insertAdjacentElement: unknown; insertAdjacentHTML: unknown; insertAdjacentText: unknown; matches: unknown; releasePointerCapture: unknown; removeAttribute: unknown; removeAttributeNS: unknown; removeAttributeNode: unknown; requestFullscreen: unknown; requestPointerLock: unknown; scroll: unknown; scrollBy: unknown; scrollIntoView: unknown; scrollTo: unknown; setAttribute: unknown; setAttributeNS: unknown; setAttributeNode: unknown; setAttributeNodeNS: unknown; setPointerCapture: unknown; toggleAttribute: unknown; webkitMatchesSelector: unknown; addEventListener: unknown; removeEventListener: unknown; readonly baseURI: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly childNodes: { item: any; forEach: any; readonly length: any; }; readonly firstChild: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly isConnected: { valueOf: any; }; readonly lastChild: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly nextSibling: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly nodeName: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly nodeType: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; nodeValue: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly parentElement: { accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; spellcheck: any; title: any; translate: any; click: any; addEventListener: any; removeEventListener: any; readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; }; readonly parentNode: { readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly previousSibling: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; textContent: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; appendChild: unknown; cloneNode: unknown; compareDocumentPosition: unknown; contains: unknown; getRootNode: unknown; hasChildNodes: unknown; insertBefore: unknown; isDefaultNamespace: unknown; isEqualNode: unknown; isSameNode: unknown; lookupNamespaceURI: unknown; lookupPrefix: unknown; normalize: unknown; removeChild: unknown; replaceChild: unknown; readonly ATTRIBUTE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly CDATA_SECTION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly COMMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_FRAGMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_CONTAINED_BY: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_CONTAINS: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_DISCONNECTED: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_FOLLOWING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_PRECEDING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_TYPE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ELEMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ENTITY_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ENTITY_REFERENCE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly NOTATION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly PROCESSING_INSTRUCTION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly TEXT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; dispatchEvent: unknown; ariaAtomic: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaAutoComplete: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaBusy: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaChecked: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaColCount: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaColIndex: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaColSpan: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaCurrent: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaDisabled: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaExpanded: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaHasPopup: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaHidden: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaKeyShortcuts: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaLabel: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaLevel: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaLive: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaModal: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaMultiLine: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaMultiSelectable: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaOrientation: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaPlaceholder: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaPosInSet: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaPressed: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaReadOnly: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRequired: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRoleDescription: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRowCount: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRowIndex: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRowSpan: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaSelected: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaSetSize: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaSort: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaValueMax: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaValueMin: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaValueNow: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaValueText: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; animate: unknown; getAnimations: unknown; after: unknown; before: unknown; remove: unknown; replaceWith: unknown; innerHTML: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly nextElementSibling: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly previousElementSibling: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly childElementCount: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly children: { namedItem: any; readonly length: any; item: any; }; readonly firstElementChild: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly lastElementChild: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; append: unknown; prepend: unknown; querySelector: unknown; querySelectorAll: unknown; replaceChildren: unknown; readonly assignedSlot: { name: any; assignedElements: any; assignedNodes: any; addEventListener: any; removeEventListener: any; accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; spellcheck: any; title: any; translate: any; click: any; readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; }; } | { readonly ownerDocument: { readonly URL: any; alinkColor: any; readonly all: any; readonly anchors: any; readonly applets: any; bgColor: any; body: any; readonly characterSet: any; readonly charset: any; readonly compatMode: any; readonly contentType: any; cookie: any; readonly currentScript: any; readonly defaultView: any; designMode: any; dir: any; readonly doctype: any; readonly documentElement: any; readonly documentURI: any; domain: any; readonly embeds: any; fgColor: any; readonly forms: any; readonly fullscreen: any; readonly fullscreenEnabled: any; readonly head: any; readonly hidden: any; readonly images: any; readonly implementation: any; readonly inputEncoding: any; readonly lastModified: any; linkColor: any; readonly links: any; location: any; onfullscreenchange: any; onfullscreenerror: any; onpointerlockchange: any; onpointerlockerror: any; onreadystatechange: any; onvisibilitychange: any; readonly ownerDocument: any; readonly pictureInPictureEnabled: any; readonly plugins: any; readonly readyState: any; readonly referrer: any; readonly rootElement: any; readonly scripts: any; readonly scrollingElement: any; readonly timeline: any; title: any; readonly visibilityState: any; vlinkColor: any; adoptNode: any; captureEvents: any; caretRangeFromPoint: any; clear: any; close: any; createAttribute: any; createAttributeNS: any; createCDATASection: any; createComment: any; createDocumentFragment: any; createElement: any; createElementNS: any; createEvent: any; createNodeIterator: any; createProcessingInstruction: any; createRange: any; createTextNode: any; createTreeWalker: any; elementFromPoint: any; elementsFromPoint: any; execCommand: any; exitFullscreen: any; exitPictureInPicture: any; exitPointerLock: any; getElementById: any; getElementsByClassName: any; getElementsByName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getSelection: any; hasFocus: any; hasStorageAccess: any; importNode: any; open: any; queryCommandEnabled: any; queryCommandIndeterm: any; queryCommandState: any; queryCommandSupported: any; queryCommandValue: any; releaseEvents: any; requestStorageAccess: any; write: any; writeln: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; oncopy: any; oncut: any; onpaste: any; readonly activeElement: any; readonly fullscreenElement: any; readonly pictureInPictureElement: any; readonly pointerLockElement: any; readonly styleSheets: any; getAnimations: any; readonly fonts: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; createExpression: any; createNSResolver: any; evaluate: any; }; readonly target: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; data: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly length: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; appendData: unknown; deleteData: unknown; insertData: unknown; replaceData: unknown; substringData: unknown; readonly baseURI: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly childNodes: { item: any; forEach: any; readonly length: any; }; readonly firstChild: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly isConnected: { valueOf: any; }; readonly lastChild: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly nextSibling: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly nodeName: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly nodeType: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; nodeValue: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly parentElement: { accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; spellcheck: any; title: any; translate: any; click: any; addEventListener: any; removeEventListener: any; readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; }; readonly parentNode: { readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly previousSibling: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; textContent: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; appendChild: unknown; cloneNode: unknown; compareDocumentPosition: unknown; contains: unknown; getRootNode: unknown; hasChildNodes: unknown; insertBefore: unknown; isDefaultNamespace: unknown; isEqualNode: unknown; isSameNode: unknown; lookupNamespaceURI: unknown; lookupPrefix: unknown; normalize: unknown; removeChild: unknown; replaceChild: unknown; readonly ATTRIBUTE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly CDATA_SECTION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly COMMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_FRAGMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_CONTAINED_BY: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_CONTAINS: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_DISCONNECTED: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_FOLLOWING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_PRECEDING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_TYPE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ELEMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ENTITY_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ENTITY_REFERENCE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly NOTATION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly PROCESSING_INSTRUCTION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly TEXT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; addEventListener: unknown; dispatchEvent: unknown; removeEventListener: unknown; after: unknown; before: unknown; remove: unknown; replaceWith: unknown; readonly nextElementSibling: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly previousElementSibling: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly sheet: { readonly cssRules: any; readonly ownerRule: any; readonly rules: any; addRule: any; deleteRule: any; insertRule: any; removeRule: any; disabled: any; readonly href: any; readonly media: any; readonly ownerNode: any; readonly parentStyleSheet: any; readonly title: any; readonly type: any; }; }>'. +!!! error TS2345: Type 'Element | ProcessingInstruction' is not assignable to type 'Deep<{ readonly attributes: { readonly length: any; getNamedItem: any; getNamedItemNS: any; item: any; removeNamedItem: any; removeNamedItemNS: any; setNamedItem: any; setNamedItemNS: any; }; readonly classList: { readonly length: any; value: any; toString: any; add: any; contains: any; item: any; remove: any; replace: any; supports: any; toggle: any; forEach: any; }; className: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly clientHeight: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly clientLeft: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly clientTop: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly clientWidth: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; id: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly localName: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly namespaceURI: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; onfullscreenchange: unknown; onfullscreenerror: unknown; outerHTML: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly ownerDocument: { readonly URL: any; alinkColor: any; readonly all: any; readonly anchors: any; readonly applets: any; bgColor: any; body: any; readonly characterSet: any; readonly charset: any; readonly compatMode: any; readonly contentType: any; cookie: any; readonly currentScript: any; readonly defaultView: any; designMode: any; dir: any; readonly doctype: any; readonly documentElement: any; readonly documentURI: any; domain: any; readonly embeds: any; fgColor: any; readonly forms: any; readonly fullscreen: any; readonly fullscreenEnabled: any; readonly head: any; readonly hidden: any; readonly images: any; readonly implementation: any; readonly inputEncoding: any; readonly lastModified: any; linkColor: any; readonly links: any; location: any; onfullscreenchange: any; onfullscreenerror: any; onpointerlockchange: any; onpointerlockerror: any; onreadystatechange: any; onvisibilitychange: any; readonly ownerDocument: any; readonly pictureInPictureEnabled: any; readonly plugins: any; readonly readyState: any; readonly referrer: any; readonly rootElement: any; readonly scripts: any; readonly scrollingElement: any; readonly timeline: any; title: any; readonly visibilityState: any; vlinkColor: any; adoptNode: any; captureEvents: any; caretRangeFromPoint: any; clear: any; close: any; createAttribute: any; createAttributeNS: any; createCDATASection: any; createComment: any; createDocumentFragment: any; createElement: any; createElementNS: any; createEvent: any; createNodeIterator: any; createProcessingInstruction: any; createRange: any; createTextNode: any; createTreeWalker: any; execCommand: any; exitFullscreen: any; exitPictureInPicture: any; exitPointerLock: any; getElementById: any; getElementsByClassName: any; getElementsByName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getSelection: any; hasFocus: any; hasStorageAccess: any; importNode: any; open: any; queryCommandEnabled: any; queryCommandIndeterm: any; queryCommandState: any; queryCommandSupported: any; queryCommandValue: any; releaseEvents: any; requestStorageAccess: any; write: any; writeln: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; oncopy: any; oncut: any; onpaste: any; readonly activeElement: any; readonly fullscreenElement: any; readonly pictureInPictureElement: any; readonly pointerLockElement: any; readonly styleSheets: any; elementFromPoint: any; elementsFromPoint: any; getAnimations: any; readonly fonts: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; createExpression: any; createNSResolver: any; evaluate: any; }; readonly part: { readonly length: any; value: any; toString: any; add: any; contains: any; item: any; remove: any; replace: any; supports: any; toggle: any; forEach: any; }; readonly prefix: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly scrollHeight: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; scrollLeft: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; scrollTop: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly scrollWidth: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly shadowRoot: { readonly delegatesFocus: any; readonly host: any; readonly mode: any; onslotchange: any; readonly slotAssignment: any; addEventListener: any; removeEventListener: any; readonly ownerDocument: any; getElementById: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly activeElement: any; readonly fullscreenElement: any; readonly pictureInPictureElement: any; readonly pointerLockElement: any; readonly styleSheets: any; elementFromPoint: any; elementsFromPoint: any; getAnimations: any; innerHTML: any; }; slot: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly tagName: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; attachShadow: unknown; closest: unknown; getAttribute: unknown; getAttributeNS: unknown; getAttributeNames: unknown; getAttributeNode: unknown; getAttributeNodeNS: unknown; getBoundingClientRect: unknown; getClientRects: unknown; getElementsByClassName: unknown; getElementsByTagName: unknown; getElementsByTagNameNS: unknown; hasAttribute: unknown; hasAttributeNS: unknown; hasAttributes: unknown; hasPointerCapture: unknown; insertAdjacentElement: unknown; insertAdjacentHTML: unknown; insertAdjacentText: unknown; matches: unknown; releasePointerCapture: unknown; removeAttribute: unknown; removeAttributeNS: unknown; removeAttributeNode: unknown; requestFullscreen: unknown; requestPointerLock: unknown; scroll: unknown; scrollBy: unknown; scrollIntoView: unknown; scrollTo: unknown; setAttribute: unknown; setAttributeNS: unknown; setAttributeNode: unknown; setAttributeNodeNS: unknown; setPointerCapture: unknown; toggleAttribute: unknown; webkitMatchesSelector: unknown; addEventListener: unknown; removeEventListener: unknown; readonly baseURI: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly childNodes: { item: any; forEach: any; readonly length: any; }; readonly firstChild: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly isConnected: { valueOf: any; }; readonly lastChild: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly nextSibling: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly nodeName: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly nodeType: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; nodeValue: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly parentElement: { accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; spellcheck: any; title: any; translate: any; attachInternals: any; click: any; addEventListener: any; removeEventListener: any; readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; }; readonly parentNode: { readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly previousSibling: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; textContent: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; appendChild: unknown; cloneNode: unknown; compareDocumentPosition: unknown; contains: unknown; getRootNode: unknown; hasChildNodes: unknown; insertBefore: unknown; isDefaultNamespace: unknown; isEqualNode: unknown; isSameNode: unknown; lookupNamespaceURI: unknown; lookupPrefix: unknown; normalize: unknown; removeChild: unknown; replaceChild: unknown; readonly ATTRIBUTE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly CDATA_SECTION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly COMMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_FRAGMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_CONTAINED_BY: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_CONTAINS: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_DISCONNECTED: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_FOLLOWING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_PRECEDING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_TYPE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ELEMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ENTITY_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ENTITY_REFERENCE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly NOTATION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly PROCESSING_INSTRUCTION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly TEXT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; dispatchEvent: unknown; ariaAtomic: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaAutoComplete: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaBusy: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaChecked: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaColCount: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaColIndex: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaColSpan: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaCurrent: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaDisabled: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaExpanded: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaHasPopup: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaHidden: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaKeyShortcuts: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaLabel: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaLevel: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaLive: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaModal: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaMultiLine: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaMultiSelectable: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaOrientation: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaPlaceholder: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaPosInSet: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaPressed: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaReadOnly: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRequired: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRoleDescription: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRowCount: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRowIndex: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRowSpan: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaSelected: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaSetSize: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaSort: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaValueMax: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaValueMin: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaValueNow: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaValueText: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; animate: unknown; getAnimations: unknown; after: unknown; before: unknown; remove: unknown; replaceWith: unknown; innerHTML: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly nextElementSibling: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly previousElementSibling: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly childElementCount: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly children: { namedItem: any; readonly length: any; item: any; }; readonly firstElementChild: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly lastElementChild: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; append: unknown; prepend: unknown; querySelector: unknown; querySelectorAll: unknown; replaceChildren: unknown; readonly assignedSlot: { name: any; assign: any; assignedElements: any; assignedNodes: any; addEventListener: any; removeEventListener: any; accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; spellcheck: any; title: any; translate: any; attachInternals: any; click: any; readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; }; } | { readonly ownerDocument: { readonly URL: any; alinkColor: any; readonly all: any; readonly anchors: any; readonly applets: any; bgColor: any; body: any; readonly characterSet: any; readonly charset: any; readonly compatMode: any; readonly contentType: any; cookie: any; readonly currentScript: any; readonly defaultView: any; designMode: any; dir: any; readonly doctype: any; readonly documentElement: any; readonly documentURI: any; domain: any; readonly embeds: any; fgColor: any; readonly forms: any; readonly fullscreen: any; readonly fullscreenEnabled: any; readonly head: any; readonly hidden: any; readonly images: any; readonly implementation: any; readonly inputEncoding: any; readonly lastModified: any; linkColor: any; readonly links: any; location: any; onfullscreenchange: any; onfullscreenerror: any; onpointerlockchange: any; onpointerlockerror: any; onreadystatechange: any; onvisibilitychange: any; readonly ownerDocument: any; readonly pictureInPictureEnabled: any; readonly plugins: any; readonly readyState: any; readonly referrer: any; readonly rootElement: any; readonly scripts: any; readonly scrollingElement: any; readonly timeline: any; title: any; readonly visibilityState: any; vlinkColor: any; adoptNode: any; captureEvents: any; caretRangeFromPoint: any; clear: any; close: any; createAttribute: any; createAttributeNS: any; createCDATASection: any; createComment: any; createDocumentFragment: any; createElement: any; createElementNS: any; createEvent: any; createNodeIterator: any; createProcessingInstruction: any; createRange: any; createTextNode: any; createTreeWalker: any; execCommand: any; exitFullscreen: any; exitPictureInPicture: any; exitPointerLock: any; getElementById: any; getElementsByClassName: any; getElementsByName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getSelection: any; hasFocus: any; hasStorageAccess: any; importNode: any; open: any; queryCommandEnabled: any; queryCommandIndeterm: any; queryCommandState: any; queryCommandSupported: any; queryCommandValue: any; releaseEvents: any; requestStorageAccess: any; write: any; writeln: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; oncopy: any; oncut: any; onpaste: any; readonly activeElement: any; readonly fullscreenElement: any; readonly pictureInPictureElement: any; readonly pointerLockElement: any; readonly styleSheets: any; elementFromPoint: any; elementsFromPoint: any; getAnimations: any; readonly fonts: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; createExpression: any; createNSResolver: any; evaluate: any; }; readonly target: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; data: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly length: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; appendData: unknown; deleteData: unknown; insertData: unknown; replaceData: unknown; substringData: unknown; readonly baseURI: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly childNodes: { item: any; forEach: any; readonly length: any; }; readonly firstChild: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly isConnected: { valueOf: any; }; readonly lastChild: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly nextSibling: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly nodeName: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly nodeType: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; nodeValue: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly parentElement: { accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; spellcheck: any; title: any; translate: any; attachInternals: any; click: any; addEventListener: any; removeEventListener: any; readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; }; readonly parentNode: { readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly previousSibling: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; textContent: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; appendChild: unknown; cloneNode: unknown; compareDocumentPosition: unknown; contains: unknown; getRootNode: unknown; hasChildNodes: unknown; insertBefore: unknown; isDefaultNamespace: unknown; isEqualNode: unknown; isSameNode: unknown; lookupNamespaceURI: unknown; lookupPrefix: unknown; normalize: unknown; removeChild: unknown; replaceChild: unknown; readonly ATTRIBUTE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly CDATA_SECTION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly COMMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_FRAGMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_CONTAINED_BY: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_CONTAINS: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_DISCONNECTED: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_FOLLOWING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_PRECEDING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_TYPE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ELEMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ENTITY_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ENTITY_REFERENCE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly NOTATION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly PROCESSING_INSTRUCTION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly TEXT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; addEventListener: unknown; dispatchEvent: unknown; removeEventListener: unknown; after: unknown; before: unknown; remove: unknown; replaceWith: unknown; readonly nextElementSibling: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly previousElementSibling: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly sheet: { readonly cssRules: any; readonly ownerRule: any; readonly rules: any; addRule: any; deleteRule: any; insertRule: any; removeRule: any; disabled: any; readonly href: any; readonly media: any; readonly ownerNode: any; readonly parentStyleSheet: any; readonly title: any; readonly type: any; }; }>'. +!!! error TS2345: Type 'Element' is not assignable to type 'Deep<{ readonly attributes: { readonly length: any; getNamedItem: any; getNamedItemNS: any; item: any; removeNamedItem: any; removeNamedItemNS: any; setNamedItem: any; setNamedItemNS: any; }; readonly classList: { readonly length: any; value: any; toString: any; add: any; contains: any; item: any; remove: any; replace: any; supports: any; toggle: any; forEach: any; }; className: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly clientHeight: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly clientLeft: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly clientTop: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly clientWidth: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; id: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly localName: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly namespaceURI: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; onfullscreenchange: unknown; onfullscreenerror: unknown; outerHTML: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly ownerDocument: { readonly URL: any; alinkColor: any; readonly all: any; readonly anchors: any; readonly applets: any; bgColor: any; body: any; readonly characterSet: any; readonly charset: any; readonly compatMode: any; readonly contentType: any; cookie: any; readonly currentScript: any; readonly defaultView: any; designMode: any; dir: any; readonly doctype: any; readonly documentElement: any; readonly documentURI: any; domain: any; readonly embeds: any; fgColor: any; readonly forms: any; readonly fullscreen: any; readonly fullscreenEnabled: any; readonly head: any; readonly hidden: any; readonly images: any; readonly implementation: any; readonly inputEncoding: any; readonly lastModified: any; linkColor: any; readonly links: any; location: any; onfullscreenchange: any; onfullscreenerror: any; onpointerlockchange: any; onpointerlockerror: any; onreadystatechange: any; onvisibilitychange: any; readonly ownerDocument: any; readonly pictureInPictureEnabled: any; readonly plugins: any; readonly readyState: any; readonly referrer: any; readonly rootElement: any; readonly scripts: any; readonly scrollingElement: any; readonly timeline: any; title: any; readonly visibilityState: any; vlinkColor: any; adoptNode: any; captureEvents: any; caretRangeFromPoint: any; clear: any; close: any; createAttribute: any; createAttributeNS: any; createCDATASection: any; createComment: any; createDocumentFragment: any; createElement: any; createElementNS: any; createEvent: any; createNodeIterator: any; createProcessingInstruction: any; createRange: any; createTextNode: any; createTreeWalker: any; execCommand: any; exitFullscreen: any; exitPictureInPicture: any; exitPointerLock: any; getElementById: any; getElementsByClassName: any; getElementsByName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getSelection: any; hasFocus: any; hasStorageAccess: any; importNode: any; open: any; queryCommandEnabled: any; queryCommandIndeterm: any; queryCommandState: any; queryCommandSupported: any; queryCommandValue: any; releaseEvents: any; requestStorageAccess: any; write: any; writeln: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; oncopy: any; oncut: any; onpaste: any; readonly activeElement: any; readonly fullscreenElement: any; readonly pictureInPictureElement: any; readonly pointerLockElement: any; readonly styleSheets: any; elementFromPoint: any; elementsFromPoint: any; getAnimations: any; readonly fonts: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; createExpression: any; createNSResolver: any; evaluate: any; }; readonly part: { readonly length: any; value: any; toString: any; add: any; contains: any; item: any; remove: any; replace: any; supports: any; toggle: any; forEach: any; }; readonly prefix: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly scrollHeight: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; scrollLeft: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; scrollTop: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly scrollWidth: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly shadowRoot: { readonly delegatesFocus: any; readonly host: any; readonly mode: any; onslotchange: any; readonly slotAssignment: any; addEventListener: any; removeEventListener: any; readonly ownerDocument: any; getElementById: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly activeElement: any; readonly fullscreenElement: any; readonly pictureInPictureElement: any; readonly pointerLockElement: any; readonly styleSheets: any; elementFromPoint: any; elementsFromPoint: any; getAnimations: any; innerHTML: any; }; slot: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly tagName: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; attachShadow: unknown; closest: unknown; getAttribute: unknown; getAttributeNS: unknown; getAttributeNames: unknown; getAttributeNode: unknown; getAttributeNodeNS: unknown; getBoundingClientRect: unknown; getClientRects: unknown; getElementsByClassName: unknown; getElementsByTagName: unknown; getElementsByTagNameNS: unknown; hasAttribute: unknown; hasAttributeNS: unknown; hasAttributes: unknown; hasPointerCapture: unknown; insertAdjacentElement: unknown; insertAdjacentHTML: unknown; insertAdjacentText: unknown; matches: unknown; releasePointerCapture: unknown; removeAttribute: unknown; removeAttributeNS: unknown; removeAttributeNode: unknown; requestFullscreen: unknown; requestPointerLock: unknown; scroll: unknown; scrollBy: unknown; scrollIntoView: unknown; scrollTo: unknown; setAttribute: unknown; setAttributeNS: unknown; setAttributeNode: unknown; setAttributeNodeNS: unknown; setPointerCapture: unknown; toggleAttribute: unknown; webkitMatchesSelector: unknown; addEventListener: unknown; removeEventListener: unknown; readonly baseURI: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly childNodes: { item: any; forEach: any; readonly length: any; }; readonly firstChild: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly isConnected: { valueOf: any; }; readonly lastChild: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly nextSibling: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly nodeName: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly nodeType: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; nodeValue: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly parentElement: { accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; spellcheck: any; title: any; translate: any; attachInternals: any; click: any; addEventListener: any; removeEventListener: any; readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; }; readonly parentNode: { readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly previousSibling: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; textContent: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; appendChild: unknown; cloneNode: unknown; compareDocumentPosition: unknown; contains: unknown; getRootNode: unknown; hasChildNodes: unknown; insertBefore: unknown; isDefaultNamespace: unknown; isEqualNode: unknown; isSameNode: unknown; lookupNamespaceURI: unknown; lookupPrefix: unknown; normalize: unknown; removeChild: unknown; replaceChild: unknown; readonly ATTRIBUTE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly CDATA_SECTION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly COMMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_FRAGMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_CONTAINED_BY: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_CONTAINS: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_DISCONNECTED: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_FOLLOWING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_PRECEDING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_TYPE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ELEMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ENTITY_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ENTITY_REFERENCE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly NOTATION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly PROCESSING_INSTRUCTION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly TEXT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; dispatchEvent: unknown; ariaAtomic: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaAutoComplete: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaBusy: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaChecked: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaColCount: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaColIndex: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaColSpan: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaCurrent: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaDisabled: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaExpanded: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaHasPopup: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaHidden: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaKeyShortcuts: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaLabel: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaLevel: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaLive: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaModal: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaMultiLine: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaMultiSelectable: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaOrientation: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaPlaceholder: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaPosInSet: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaPressed: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaReadOnly: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRequired: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRoleDescription: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRowCount: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRowIndex: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRowSpan: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaSelected: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaSetSize: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaSort: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaValueMax: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaValueMin: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaValueNow: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaValueText: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; animate: unknown; getAnimations: unknown; after: unknown; before: unknown; remove: unknown; replaceWith: unknown; innerHTML: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly nextElementSibling: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly previousElementSibling: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly childElementCount: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly children: { namedItem: any; readonly length: any; item: any; }; readonly firstElementChild: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly lastElementChild: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; append: unknown; prepend: unknown; querySelector: unknown; querySelectorAll: unknown; replaceChildren: unknown; readonly assignedSlot: { name: any; assign: any; assignedElements: any; assignedNodes: any; addEventListener: any; removeEventListener: any; accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; spellcheck: any; title: any; translate: any; attachInternals: any; click: any; readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; }; } | { readonly ownerDocument: { readonly URL: any; alinkColor: any; readonly all: any; readonly anchors: any; readonly applets: any; bgColor: any; body: any; readonly characterSet: any; readonly charset: any; readonly compatMode: any; readonly contentType: any; cookie: any; readonly currentScript: any; readonly defaultView: any; designMode: any; dir: any; readonly doctype: any; readonly documentElement: any; readonly documentURI: any; domain: any; readonly embeds: any; fgColor: any; readonly forms: any; readonly fullscreen: any; readonly fullscreenEnabled: any; readonly head: any; readonly hidden: any; readonly images: any; readonly implementation: any; readonly inputEncoding: any; readonly lastModified: any; linkColor: any; readonly links: any; location: any; onfullscreenchange: any; onfullscreenerror: any; onpointerlockchange: any; onpointerlockerror: any; onreadystatechange: any; onvisibilitychange: any; readonly ownerDocument: any; readonly pictureInPictureEnabled: any; readonly plugins: any; readonly readyState: any; readonly referrer: any; readonly rootElement: any; readonly scripts: any; readonly scrollingElement: any; readonly timeline: any; title: any; readonly visibilityState: any; vlinkColor: any; adoptNode: any; captureEvents: any; caretRangeFromPoint: any; clear: any; close: any; createAttribute: any; createAttributeNS: any; createCDATASection: any; createComment: any; createDocumentFragment: any; createElement: any; createElementNS: any; createEvent: any; createNodeIterator: any; createProcessingInstruction: any; createRange: any; createTextNode: any; createTreeWalker: any; execCommand: any; exitFullscreen: any; exitPictureInPicture: any; exitPointerLock: any; getElementById: any; getElementsByClassName: any; getElementsByName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getSelection: any; hasFocus: any; hasStorageAccess: any; importNode: any; open: any; queryCommandEnabled: any; queryCommandIndeterm: any; queryCommandState: any; queryCommandSupported: any; queryCommandValue: any; releaseEvents: any; requestStorageAccess: any; write: any; writeln: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; oncopy: any; oncut: any; onpaste: any; readonly activeElement: any; readonly fullscreenElement: any; readonly pictureInPictureElement: any; readonly pointerLockElement: any; readonly styleSheets: any; elementFromPoint: any; elementsFromPoint: any; getAnimations: any; readonly fonts: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; createExpression: any; createNSResolver: any; evaluate: any; }; readonly target: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; data: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly length: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; appendData: unknown; deleteData: unknown; insertData: unknown; replaceData: unknown; substringData: unknown; readonly baseURI: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly childNodes: { item: any; forEach: any; readonly length: any; }; readonly firstChild: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly isConnected: { valueOf: any; }; readonly lastChild: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly nextSibling: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly nodeName: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly nodeType: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; nodeValue: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly parentElement: { accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; spellcheck: any; title: any; translate: any; attachInternals: any; click: any; addEventListener: any; removeEventListener: any; readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; }; readonly parentNode: { readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly previousSibling: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; textContent: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; appendChild: unknown; cloneNode: unknown; compareDocumentPosition: unknown; contains: unknown; getRootNode: unknown; hasChildNodes: unknown; insertBefore: unknown; isDefaultNamespace: unknown; isEqualNode: unknown; isSameNode: unknown; lookupNamespaceURI: unknown; lookupPrefix: unknown; normalize: unknown; removeChild: unknown; replaceChild: unknown; readonly ATTRIBUTE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly CDATA_SECTION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly COMMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_FRAGMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_CONTAINED_BY: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_CONTAINS: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_DISCONNECTED: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_FOLLOWING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_PRECEDING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_TYPE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ELEMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ENTITY_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ENTITY_REFERENCE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly NOTATION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly PROCESSING_INSTRUCTION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly TEXT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; addEventListener: unknown; dispatchEvent: unknown; removeEventListener: unknown; after: unknown; before: unknown; remove: unknown; replaceWith: unknown; readonly nextElementSibling: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly previousElementSibling: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly sheet: { readonly cssRules: any; readonly ownerRule: any; readonly rules: any; addRule: any; deleteRule: any; insertRule: any; removeRule: any; disabled: any; readonly href: any; readonly media: any; readonly ownerNode: any; readonly parentStyleSheet: any; readonly title: any; readonly type: any; }; }>'. out2.responseXML out2.responseXML.activeElement.className.length \ No newline at end of file diff --git a/tests/baselines/reference/mappedTypeRecursiveInference.types b/tests/baselines/reference/mappedTypeRecursiveInference.types index 8a2cd4f9fb220..7bd1bff7dfc06 100644 --- a/tests/baselines/reference/mappedTypeRecursiveInference.types +++ b/tests/baselines/reference/mappedTypeRecursiveInference.types @@ -91,24 +91,24 @@ let xhr: XMLHttpRequest; >xhr : XMLHttpRequest const out2 = foo(xhr); ->out2 : { onreadystatechange: unknown; readonly readyState: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly response: unknown; readonly responseText: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; responseType: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly responseURL: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly responseXML: { readonly URL: any; alinkColor: any; readonly all: any; readonly anchors: any; readonly applets: any; bgColor: any; body: any; readonly characterSet: any; readonly charset: any; readonly compatMode: any; readonly contentType: any; cookie: any; readonly currentScript: any; readonly defaultView: any; designMode: any; dir: any; readonly doctype: any; readonly documentElement: any; readonly documentURI: any; domain: any; readonly embeds: any; fgColor: any; readonly forms: any; readonly fullscreen: any; readonly fullscreenEnabled: any; readonly head: any; readonly hidden: any; readonly images: any; readonly implementation: any; readonly inputEncoding: any; readonly lastModified: any; linkColor: any; readonly links: any; location: any; onfullscreenchange: any; onfullscreenerror: any; onpointerlockchange: any; onpointerlockerror: any; onreadystatechange: any; onvisibilitychange: any; readonly ownerDocument: any; readonly pictureInPictureEnabled: any; readonly plugins: any; readonly readyState: any; readonly referrer: any; readonly rootElement: any; readonly scripts: any; readonly scrollingElement: any; readonly timeline: any; title: any; readonly visibilityState: any; vlinkColor: any; adoptNode: any; captureEvents: any; caretRangeFromPoint: any; clear: any; close: any; createAttribute: any; createAttributeNS: any; createCDATASection: any; createComment: any; createDocumentFragment: any; createElement: any; createElementNS: any; createEvent: any; createNodeIterator: any; createProcessingInstruction: any; createRange: any; createTextNode: any; createTreeWalker: any; elementFromPoint: any; elementsFromPoint: any; execCommand: any; exitFullscreen: any; exitPictureInPicture: any; exitPointerLock: any; getElementById: any; getElementsByClassName: any; getElementsByName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getSelection: any; hasFocus: any; hasStorageAccess: any; importNode: any; open: any; queryCommandEnabled: any; queryCommandIndeterm: any; queryCommandState: any; queryCommandSupported: any; queryCommandValue: any; releaseEvents: any; requestStorageAccess: any; write: any; writeln: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; oncopy: any; oncut: any; onpaste: any; readonly activeElement: any; readonly fullscreenElement: any; readonly pictureInPictureElement: any; readonly pointerLockElement: any; readonly styleSheets: any; getAnimations: any; readonly fonts: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; createExpression: any; createNSResolver: any; evaluate: any; }; readonly status: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly statusText: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; timeout: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly upload: { addEventListener: any; removeEventListener: any; onabort: any; onerror: any; onload: any; onloadend: any; onloadstart: any; onprogress: any; ontimeout: any; dispatchEvent: any; }; withCredentials: { valueOf: any; }; abort: unknown; getAllResponseHeaders: unknown; getResponseHeader: unknown; open: unknown; overrideMimeType: unknown; send: unknown; setRequestHeader: unknown; readonly DONE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly HEADERS_RECEIVED: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly LOADING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly OPENED: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly UNSENT: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; addEventListener: unknown; removeEventListener: unknown; onabort: unknown; onerror: unknown; onload: unknown; onloadend: unknown; onloadstart: unknown; onprogress: unknown; ontimeout: unknown; dispatchEvent: unknown; } ->foo(xhr) : { onreadystatechange: unknown; readonly readyState: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly response: unknown; readonly responseText: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; responseType: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly responseURL: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly responseXML: { readonly URL: any; alinkColor: any; readonly all: any; readonly anchors: any; readonly applets: any; bgColor: any; body: any; readonly characterSet: any; readonly charset: any; readonly compatMode: any; readonly contentType: any; cookie: any; readonly currentScript: any; readonly defaultView: any; designMode: any; dir: any; readonly doctype: any; readonly documentElement: any; readonly documentURI: any; domain: any; readonly embeds: any; fgColor: any; readonly forms: any; readonly fullscreen: any; readonly fullscreenEnabled: any; readonly head: any; readonly hidden: any; readonly images: any; readonly implementation: any; readonly inputEncoding: any; readonly lastModified: any; linkColor: any; readonly links: any; location: any; onfullscreenchange: any; onfullscreenerror: any; onpointerlockchange: any; onpointerlockerror: any; onreadystatechange: any; onvisibilitychange: any; readonly ownerDocument: any; readonly pictureInPictureEnabled: any; readonly plugins: any; readonly readyState: any; readonly referrer: any; readonly rootElement: any; readonly scripts: any; readonly scrollingElement: any; readonly timeline: any; title: any; readonly visibilityState: any; vlinkColor: any; adoptNode: any; captureEvents: any; caretRangeFromPoint: any; clear: any; close: any; createAttribute: any; createAttributeNS: any; createCDATASection: any; createComment: any; createDocumentFragment: any; createElement: any; createElementNS: any; createEvent: any; createNodeIterator: any; createProcessingInstruction: any; createRange: any; createTextNode: any; createTreeWalker: any; elementFromPoint: any; elementsFromPoint: any; execCommand: any; exitFullscreen: any; exitPictureInPicture: any; exitPointerLock: any; getElementById: any; getElementsByClassName: any; getElementsByName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getSelection: any; hasFocus: any; hasStorageAccess: any; importNode: any; open: any; queryCommandEnabled: any; queryCommandIndeterm: any; queryCommandState: any; queryCommandSupported: any; queryCommandValue: any; releaseEvents: any; requestStorageAccess: any; write: any; writeln: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; oncopy: any; oncut: any; onpaste: any; readonly activeElement: any; readonly fullscreenElement: any; readonly pictureInPictureElement: any; readonly pointerLockElement: any; readonly styleSheets: any; getAnimations: any; readonly fonts: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; createExpression: any; createNSResolver: any; evaluate: any; }; readonly status: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly statusText: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; timeout: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly upload: { addEventListener: any; removeEventListener: any; onabort: any; onerror: any; onload: any; onloadend: any; onloadstart: any; onprogress: any; ontimeout: any; dispatchEvent: any; }; withCredentials: { valueOf: any; }; abort: unknown; getAllResponseHeaders: unknown; getResponseHeader: unknown; open: unknown; overrideMimeType: unknown; send: unknown; setRequestHeader: unknown; readonly DONE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly HEADERS_RECEIVED: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly LOADING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly OPENED: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly UNSENT: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; addEventListener: unknown; removeEventListener: unknown; onabort: unknown; onerror: unknown; onload: unknown; onloadend: unknown; onloadstart: unknown; onprogress: unknown; ontimeout: unknown; dispatchEvent: unknown; } +>out2 : { onreadystatechange: unknown; readonly readyState: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly response: unknown; readonly responseText: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; responseType: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly responseURL: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly responseXML: { readonly URL: any; alinkColor: any; readonly all: any; readonly anchors: any; readonly applets: any; bgColor: any; body: any; readonly characterSet: any; readonly charset: any; readonly compatMode: any; readonly contentType: any; cookie: any; readonly currentScript: any; readonly defaultView: any; designMode: any; dir: any; readonly doctype: any; readonly documentElement: any; readonly documentURI: any; domain: any; readonly embeds: any; fgColor: any; readonly forms: any; readonly fullscreen: any; readonly fullscreenEnabled: any; readonly head: any; readonly hidden: any; readonly images: any; readonly implementation: any; readonly inputEncoding: any; readonly lastModified: any; linkColor: any; readonly links: any; location: any; onfullscreenchange: any; onfullscreenerror: any; onpointerlockchange: any; onpointerlockerror: any; onreadystatechange: any; onvisibilitychange: any; readonly ownerDocument: any; readonly pictureInPictureEnabled: any; readonly plugins: any; readonly readyState: any; readonly referrer: any; readonly rootElement: any; readonly scripts: any; readonly scrollingElement: any; readonly timeline: any; title: any; readonly visibilityState: any; vlinkColor: any; adoptNode: any; captureEvents: any; caretRangeFromPoint: any; clear: any; close: any; createAttribute: any; createAttributeNS: any; createCDATASection: any; createComment: any; createDocumentFragment: any; createElement: any; createElementNS: any; createEvent: any; createNodeIterator: any; createProcessingInstruction: any; createRange: any; createTextNode: any; createTreeWalker: any; execCommand: any; exitFullscreen: any; exitPictureInPicture: any; exitPointerLock: any; getElementById: any; getElementsByClassName: any; getElementsByName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getSelection: any; hasFocus: any; hasStorageAccess: any; importNode: any; open: any; queryCommandEnabled: any; queryCommandIndeterm: any; queryCommandState: any; queryCommandSupported: any; queryCommandValue: any; releaseEvents: any; requestStorageAccess: any; write: any; writeln: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; oncopy: any; oncut: any; onpaste: any; readonly activeElement: any; readonly fullscreenElement: any; readonly pictureInPictureElement: any; readonly pointerLockElement: any; readonly styleSheets: any; elementFromPoint: any; elementsFromPoint: any; getAnimations: any; readonly fonts: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; createExpression: any; createNSResolver: any; evaluate: any; }; readonly status: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly statusText: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; timeout: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly upload: { addEventListener: any; removeEventListener: any; onabort: any; onerror: any; onload: any; onloadend: any; onloadstart: any; onprogress: any; ontimeout: any; dispatchEvent: any; }; withCredentials: { valueOf: any; }; abort: unknown; getAllResponseHeaders: unknown; getResponseHeader: unknown; open: unknown; overrideMimeType: unknown; send: unknown; setRequestHeader: unknown; readonly DONE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly HEADERS_RECEIVED: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly LOADING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly OPENED: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly UNSENT: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; addEventListener: unknown; removeEventListener: unknown; onabort: unknown; onerror: unknown; onload: unknown; onloadend: unknown; onloadstart: unknown; onprogress: unknown; ontimeout: unknown; dispatchEvent: unknown; } +>foo(xhr) : { onreadystatechange: unknown; readonly readyState: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly response: unknown; readonly responseText: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; responseType: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly responseURL: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly responseXML: { readonly URL: any; alinkColor: any; readonly all: any; readonly anchors: any; readonly applets: any; bgColor: any; body: any; readonly characterSet: any; readonly charset: any; readonly compatMode: any; readonly contentType: any; cookie: any; readonly currentScript: any; readonly defaultView: any; designMode: any; dir: any; readonly doctype: any; readonly documentElement: any; readonly documentURI: any; domain: any; readonly embeds: any; fgColor: any; readonly forms: any; readonly fullscreen: any; readonly fullscreenEnabled: any; readonly head: any; readonly hidden: any; readonly images: any; readonly implementation: any; readonly inputEncoding: any; readonly lastModified: any; linkColor: any; readonly links: any; location: any; onfullscreenchange: any; onfullscreenerror: any; onpointerlockchange: any; onpointerlockerror: any; onreadystatechange: any; onvisibilitychange: any; readonly ownerDocument: any; readonly pictureInPictureEnabled: any; readonly plugins: any; readonly readyState: any; readonly referrer: any; readonly rootElement: any; readonly scripts: any; readonly scrollingElement: any; readonly timeline: any; title: any; readonly visibilityState: any; vlinkColor: any; adoptNode: any; captureEvents: any; caretRangeFromPoint: any; clear: any; close: any; createAttribute: any; createAttributeNS: any; createCDATASection: any; createComment: any; createDocumentFragment: any; createElement: any; createElementNS: any; createEvent: any; createNodeIterator: any; createProcessingInstruction: any; createRange: any; createTextNode: any; createTreeWalker: any; execCommand: any; exitFullscreen: any; exitPictureInPicture: any; exitPointerLock: any; getElementById: any; getElementsByClassName: any; getElementsByName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getSelection: any; hasFocus: any; hasStorageAccess: any; importNode: any; open: any; queryCommandEnabled: any; queryCommandIndeterm: any; queryCommandState: any; queryCommandSupported: any; queryCommandValue: any; releaseEvents: any; requestStorageAccess: any; write: any; writeln: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; oncopy: any; oncut: any; onpaste: any; readonly activeElement: any; readonly fullscreenElement: any; readonly pictureInPictureElement: any; readonly pointerLockElement: any; readonly styleSheets: any; elementFromPoint: any; elementsFromPoint: any; getAnimations: any; readonly fonts: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; createExpression: any; createNSResolver: any; evaluate: any; }; readonly status: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly statusText: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; timeout: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly upload: { addEventListener: any; removeEventListener: any; onabort: any; onerror: any; onload: any; onloadend: any; onloadstart: any; onprogress: any; ontimeout: any; dispatchEvent: any; }; withCredentials: { valueOf: any; }; abort: unknown; getAllResponseHeaders: unknown; getResponseHeader: unknown; open: unknown; overrideMimeType: unknown; send: unknown; setRequestHeader: unknown; readonly DONE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly HEADERS_RECEIVED: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly LOADING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly OPENED: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly UNSENT: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; addEventListener: unknown; removeEventListener: unknown; onabort: unknown; onerror: unknown; onload: unknown; onloadend: unknown; onloadstart: unknown; onprogress: unknown; ontimeout: unknown; dispatchEvent: unknown; } >foo : (deep: Deep) => T >xhr : XMLHttpRequest out2.responseXML ->out2.responseXML : { readonly URL: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; alinkColor: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly all: { readonly length: any; item: any; namedItem: any; }; readonly anchors: { item: any; namedItem: any; readonly length: any; }; readonly applets: { namedItem: any; readonly length: any; item: any; }; bgColor: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; body: { accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; spellcheck: any; title: any; translate: any; click: any; addEventListener: any; removeEventListener: any; readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; }; readonly characterSet: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly charset: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly compatMode: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly contentType: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; cookie: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly currentScript: { async: any; charset: any; crossOrigin: any; defer: any; event: any; htmlFor: any; integrity: any; noModule: any; referrerPolicy: any; src: any; text: any; type: any; addEventListener: any; removeEventListener: any; accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; spellcheck: any; title: any; translate: any; click: any; readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; } | { type: any; addEventListener: any; removeEventListener: any; readonly className: any; readonly ownerSVGElement: any; readonly viewportElement: any; readonly attributes: any; readonly classList: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; readonly href: any; }; readonly defaultView: { clientInformation: any; closed: any; customElements: any; devicePixelRatio: any; document: any; event: any; external: any; frameElement: any; frames: any; history: any; innerHeight: any; innerWidth: any; length: any; location: any; locationbar: any; menubar: any; name: any; navigator: any; ondevicemotion: any; ondeviceorientation: any; onorientationchange: any; opener: any; orientation: any; outerHeight: any; outerWidth: any; pageXOffset: any; pageYOffset: any; parent: any; personalbar: any; screen: any; screenLeft: any; screenTop: any; screenX: any; screenY: any; scrollX: any; scrollY: any; scrollbars: any; self: any; speechSynthesis: any; status: any; statusbar: any; toolbar: any; top: any; visualViewport: any; window: any; alert: any; blur: any; cancelIdleCallback: any; captureEvents: any; close: any; confirm: any; focus: any; getComputedStyle: any; getSelection: any; matchMedia: any; moveBy: any; moveTo: any; open: any; postMessage: any; print: any; prompt: any; releaseEvents: any; requestIdleCallback: any; resizeBy: any; resizeTo: any; scroll: any; scrollBy: any; scrollTo: any; stop: any; addEventListener: any; removeEventListener: any; dispatchEvent: any; cancelAnimationFrame: any; requestAnimationFrame: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel: any; ontouchend: any; ontouchmove: any; ontouchstart: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; onafterprint: any; onbeforeprint: any; onbeforeunload: any; ongamepadconnected: any; ongamepaddisconnected: any; onhashchange: any; onlanguagechange: any; onmessage: any; onmessageerror: any; onoffline: any; ononline: any; onpagehide: any; onpageshow: any; onpopstate: any; onrejectionhandled: any; onstorage: any; onunhandledrejection: any; onunload: any; localStorage: any; caches: any; crossOriginIsolated: any; crypto: any; indexedDB: any; isSecureContext: any; origin: any; performance: any; atob: any; btoa: any; clearInterval: any; clearTimeout: any; createImageBitmap: any; fetch: any; queueMicrotask: any; setInterval: any; setTimeout: any; sessionStorage: any; readonly globalThis: any; eval: any; parseInt: any; parseFloat: any; isNaN: any; isFinite: any; decodeURI: any; decodeURIComponent: any; encodeURI: any; encodeURIComponent: any; escape: any; unescape: any; NaN: any; Infinity: any; Symbol: any; Object: any; Function: any; String: any; Boolean: any; Number: any; Math: any; Date: any; RegExp: any; Error: any; EvalError: any; RangeError: any; ReferenceError: any; SyntaxError: any; TypeError: any; URIError: any; JSON: any; Array: any; Promise: any; ArrayBuffer: any; DataView: any; Int8Array: any; Uint8Array: any; Uint8ClampedArray: any; Int16Array: any; Uint16Array: any; Int32Array: any; Uint32Array: any; Float32Array: any; Float64Array: any; Intl: any; toString: any; NodeFilter: any; AbortController: any; AbortSignal: any; AbstractRange: any; AnalyserNode: any; Animation: any; AnimationEffect: any; AnimationEvent: any; AnimationPlaybackEvent: any; AnimationTimeline: any; Attr: any; AudioBuffer: any; AudioBufferSourceNode: any; AudioContext: any; AudioDestinationNode: any; AudioListener: any; AudioNode: any; AudioParam: any; AudioParamMap: any; AudioProcessingEvent: any; AudioScheduledSourceNode: any; AudioWorklet: any; AudioWorkletNode: any; AuthenticatorAssertionResponse: any; AuthenticatorAttestationResponse: any; AuthenticatorResponse: any; BarProp: any; BaseAudioContext: any; BeforeUnloadEvent: any; BiquadFilterNode: any; Blob: any; BlobEvent: any; BroadcastChannel: any; ByteLengthQueuingStrategy: any; CDATASection: any; CSSAnimation: any; CSSConditionRule: any; CSSCounterStyleRule: any; CSSFontFaceRule: any; CSSGroupingRule: any; CSSImportRule: any; CSSKeyframeRule: any; CSSKeyframesRule: any; CSSMediaRule: any; CSSNamespaceRule: any; CSSPageRule: any; CSSRule: any; CSSRuleList: any; CSSStyleDeclaration: any; CSSStyleRule: any; CSSStyleSheet: any; CSSSupportsRule: any; CSSTransition: any; Cache: any; CacheStorage: any; CanvasGradient: any; CanvasPattern: any; CanvasRenderingContext2D: any; ChannelMergerNode: any; ChannelSplitterNode: any; CharacterData: any; Clipboard: any; ClipboardEvent: any; ClipboardItem: any; CloseEvent: any; Comment: any; CompositionEvent: any; ConstantSourceNode: any; ConvolverNode: any; CountQueuingStrategy: any; Credential: any; CredentialsContainer: any; Crypto: any; CryptoKey: any; CustomElementRegistry: any; CustomEvent: any; DOMException: any; DOMImplementation: any; DOMMatrix: any; SVGMatrix: any; WebKitCSSMatrix: any; DOMMatrixReadOnly: any; DOMParser: any; DOMPoint: any; SVGPoint: any; DOMPointReadOnly: any; DOMQuad: any; DOMRect: any; SVGRect: any; DOMRectList: any; DOMRectReadOnly: any; DOMStringList: any; DOMStringMap: any; DOMTokenList: any; DataTransfer: any; DataTransferItem: any; DataTransferItemList: any; DelayNode: any; DeviceMotionEvent: any; DeviceOrientationEvent: any; Document: any; DocumentFragment: any; DocumentTimeline: any; DocumentType: any; DragEvent: any; DynamicsCompressorNode: any; Element: any; ErrorEvent: any; Event: any; EventSource: any; EventTarget: any; External: any; File: any; FileList: any; FileReader: any; FileSystem: any; FileSystemDirectoryEntry: any; FileSystemDirectoryReader: any; FileSystemEntry: any; FileSystemFileEntry: any; FocusEvent: any; FontFace: any; FontFaceSet: any; FontFaceSetLoadEvent: any; FormData: any; FormDataEvent: any; GainNode: any; Gamepad: any; GamepadButton: any; GamepadEvent: any; GamepadHapticActuator: any; Geolocation: any; GeolocationCoordinates: any; GeolocationPosition: any; GeolocationPositionError: any; HTMLAllCollection: any; HTMLAnchorElement: any; HTMLAreaElement: any; HTMLAudioElement: any; HTMLBRElement: any; HTMLBaseElement: any; HTMLBodyElement: any; HTMLButtonElement: any; HTMLCanvasElement: any; HTMLCollection: any; HTMLDListElement: any; HTMLDataElement: any; HTMLDataListElement: any; HTMLDetailsElement: any; HTMLDirectoryElement: any; HTMLDivElement: any; HTMLDocument: any; HTMLElement: any; HTMLEmbedElement: any; HTMLFieldSetElement: any; HTMLFontElement: any; HTMLFormControlsCollection: any; HTMLFormElement: any; HTMLFrameElement: any; HTMLFrameSetElement: any; HTMLHRElement: any; HTMLHeadElement: any; HTMLHeadingElement: any; HTMLHtmlElement: any; HTMLIFrameElement: any; HTMLImageElement: any; HTMLInputElement: any; HTMLLIElement: any; HTMLLabelElement: any; HTMLLegendElement: any; HTMLLinkElement: any; HTMLMapElement: any; HTMLMarqueeElement: any; HTMLMediaElement: any; HTMLMenuElement: any; HTMLMetaElement: any; HTMLMeterElement: any; HTMLModElement: any; HTMLOListElement: any; HTMLObjectElement: any; HTMLOptGroupElement: any; HTMLOptionElement: any; HTMLOptionsCollection: any; HTMLOutputElement: any; HTMLParagraphElement: any; HTMLParamElement: any; HTMLPictureElement: any; HTMLPreElement: any; HTMLProgressElement: any; HTMLQuoteElement: any; HTMLScriptElement: any; HTMLSelectElement: any; HTMLSlotElement: any; HTMLSourceElement: any; HTMLSpanElement: any; HTMLStyleElement: any; HTMLTableCaptionElement: any; HTMLTableCellElement: any; HTMLTableColElement: any; HTMLTableElement: any; HTMLTableRowElement: any; HTMLTableSectionElement: any; HTMLTemplateElement: any; HTMLTextAreaElement: any; HTMLTimeElement: any; HTMLTitleElement: any; HTMLTrackElement: any; HTMLUListElement: any; HTMLUnknownElement: any; HTMLVideoElement: any; HashChangeEvent: any; Headers: any; History: any; IDBCursor: any; IDBCursorWithValue: any; IDBDatabase: any; IDBFactory: any; IDBIndex: any; IDBKeyRange: any; IDBObjectStore: any; IDBOpenDBRequest: any; IDBRequest: any; IDBTransaction: any; IDBVersionChangeEvent: any; IIRFilterNode: any; IdleDeadline: any; ImageBitmap: any; ImageBitmapRenderingContext: any; ImageData: any; InputEvent: any; IntersectionObserver: any; IntersectionObserverEntry: any; KeyboardEvent: any; KeyframeEffect: any; Location: any; MathMLElement: any; MediaCapabilities: any; MediaDeviceInfo: any; MediaDevices: any; MediaElementAudioSourceNode: any; MediaEncryptedEvent: any; MediaError: any; MediaKeyMessageEvent: any; MediaKeySession: any; MediaKeyStatusMap: any; MediaKeySystemAccess: any; MediaKeys: any; MediaList: any; MediaMetadata: any; MediaQueryList: any; MediaQueryListEvent: any; MediaRecorder: any; MediaRecorderErrorEvent: any; MediaSession: any; MediaSource: any; MediaStream: any; MediaStreamAudioDestinationNode: any; MediaStreamAudioSourceNode: any; MediaStreamTrack: any; MediaStreamTrackEvent: any; MessageChannel: any; MessageEvent: any; MessagePort: any; MimeType: any; MimeTypeArray: any; MouseEvent: any; MutationEvent: any; MutationObserver: any; MutationRecord: any; NamedNodeMap: any; Navigator: any; NetworkInformation: any; Node: any; NodeIterator: any; NodeList: any; Notification: any; OfflineAudioCompletionEvent: any; OfflineAudioContext: any; OscillatorNode: any; OverconstrainedError: any; PageTransitionEvent: any; PannerNode: any; Path2D: any; PaymentAddress: any; PaymentMethodChangeEvent: any; PaymentRequest: any; PaymentRequestUpdateEvent: any; PaymentResponse: any; Performance: any; PerformanceEntry: any; PerformanceEventTiming: any; PerformanceMark: any; PerformanceMeasure: any; PerformanceNavigation: any; PerformanceNavigationTiming: any; PerformanceObserver: any; PerformanceObserverEntryList: any; PerformancePaintTiming: any; PerformanceResourceTiming: any; PerformanceServerTiming: any; PerformanceTiming: any; PeriodicWave: any; PermissionStatus: any; Permissions: any; PictureInPictureWindow: any; Plugin: any; PluginArray: any; PointerEvent: any; PopStateEvent: any; ProcessingInstruction: any; ProgressEvent: any; PromiseRejectionEvent: any; PublicKeyCredential: any; PushManager: any; PushSubscription: any; PushSubscriptionOptions: any; RTCCertificate: any; RTCDTMFSender: any; RTCDTMFToneChangeEvent: any; RTCDataChannel: any; RTCDataChannelEvent: any; RTCDtlsTransport: any; RTCIceCandidate: any; RTCIceTransport: any; RTCPeerConnection: any; RTCPeerConnectionIceErrorEvent: any; RTCPeerConnectionIceEvent: any; RTCRtpReceiver: any; RTCRtpSender: any; RTCRtpTransceiver: any; RTCSessionDescription: any; RTCStatsReport: any; RTCTrackEvent: any; RadioNodeList: any; Range: any; ReadableStream: any; ReadableStreamDefaultController: any; ReadableStreamDefaultReader: any; RemotePlayback: any; Request: any; ResizeObserver: any; ResizeObserverEntry: any; ResizeObserverSize: any; Response: any; SVGAElement: any; SVGAngle: any; SVGAnimateElement: any; SVGAnimateMotionElement: any; SVGAnimateTransformElement: any; SVGAnimatedAngle: any; SVGAnimatedBoolean: any; SVGAnimatedEnumeration: any; SVGAnimatedInteger: any; SVGAnimatedLength: any; SVGAnimatedLengthList: any; SVGAnimatedNumber: any; SVGAnimatedNumberList: any; SVGAnimatedPreserveAspectRatio: any; SVGAnimatedRect: any; SVGAnimatedString: any; SVGAnimatedTransformList: any; SVGAnimationElement: any; SVGCircleElement: any; SVGClipPathElement: any; SVGComponentTransferFunctionElement: any; SVGDefsElement: any; SVGDescElement: any; SVGElement: any; SVGEllipseElement: any; SVGFEBlendElement: any; SVGFEColorMatrixElement: any; SVGFEComponentTransferElement: any; SVGFECompositeElement: any; SVGFEConvolveMatrixElement: any; SVGFEDiffuseLightingElement: any; SVGFEDisplacementMapElement: any; SVGFEDistantLightElement: any; SVGFEDropShadowElement: any; SVGFEFloodElement: any; SVGFEFuncAElement: any; SVGFEFuncBElement: any; SVGFEFuncGElement: any; SVGFEFuncRElement: any; SVGFEGaussianBlurElement: any; SVGFEImageElement: any; SVGFEMergeElement: any; SVGFEMergeNodeElement: any; SVGFEMorphologyElement: any; SVGFEOffsetElement: any; SVGFEPointLightElement: any; SVGFESpecularLightingElement: any; SVGFESpotLightElement: any; SVGFETileElement: any; SVGFETurbulenceElement: any; SVGFilterElement: any; SVGForeignObjectElement: any; SVGGElement: any; SVGGeometryElement: any; SVGGradientElement: any; SVGGraphicsElement: any; SVGImageElement: any; SVGLength: any; SVGLengthList: any; SVGLineElement: any; SVGLinearGradientElement: any; SVGMPathElement: any; SVGMarkerElement: any; SVGMaskElement: any; SVGMetadataElement: any; SVGNumber: any; SVGNumberList: any; SVGPathElement: any; SVGPatternElement: any; SVGPointList: any; SVGPolygonElement: any; SVGPolylineElement: any; SVGPreserveAspectRatio: any; SVGRadialGradientElement: any; SVGRectElement: any; SVGSVGElement: any; SVGScriptElement: any; SVGSetElement: any; SVGStopElement: any; SVGStringList: any; SVGStyleElement: any; SVGSwitchElement: any; SVGSymbolElement: any; SVGTSpanElement: any; SVGTextContentElement: any; SVGTextElement: any; SVGTextPathElement: any; SVGTextPositioningElement: any; SVGTitleElement: any; SVGTransform: any; SVGTransformList: any; SVGUnitTypes: any; SVGUseElement: any; SVGViewElement: any; Screen: any; ScreenOrientation: any; ScriptProcessorNode: any; SecurityPolicyViolationEvent: any; Selection: any; ServiceWorker: any; ServiceWorkerContainer: any; ServiceWorkerRegistration: any; ShadowRoot: any; SharedWorker: any; SourceBuffer: any; SourceBufferList: any; SpeechRecognitionAlternative: any; SpeechRecognitionResult: any; SpeechRecognitionResultList: any; SpeechSynthesis: any; SpeechSynthesisErrorEvent: any; SpeechSynthesisEvent: any; SpeechSynthesisUtterance: any; SpeechSynthesisVoice: any; StaticRange: any; StereoPannerNode: any; Storage: any; StorageEvent: any; StorageManager: any; StyleSheet: any; StyleSheetList: any; SubmitEvent: any; SubtleCrypto: any; Text: any; TextDecoder: any; TextDecoderStream: any; TextEncoder: any; TextEncoderStream: any; TextMetrics: any; TextTrack: any; TextTrackCue: any; TextTrackCueList: any; TextTrackList: any; TimeRanges: any; Touch: any; TouchEvent: any; TouchList: any; TrackEvent: any; TransformStream: any; TransformStreamDefaultController: any; TransitionEvent: any; TreeWalker: any; UIEvent: any; URL: any; webkitURL: any; URLSearchParams: any; VTTCue: any; VTTRegion: any; ValidityState: any; VideoPlaybackQuality: any; VisualViewport: any; WaveShaperNode: any; WebGL2RenderingContext: any; WebGLActiveInfo: any; WebGLBuffer: any; WebGLContextEvent: any; WebGLFramebuffer: any; WebGLProgram: any; WebGLQuery: any; WebGLRenderbuffer: any; WebGLRenderingContext: any; WebGLSampler: any; WebGLShader: any; WebGLShaderPrecisionFormat: any; WebGLSync: any; WebGLTexture: any; WebGLTransformFeedback: any; WebGLUniformLocation: any; WebGLVertexArrayObject: any; WebSocket: any; WheelEvent: any; Window: any; Worker: any; Worklet: any; WritableStream: any; WritableStreamDefaultController: any; WritableStreamDefaultWriter: any; XMLDocument: any; XMLHttpRequest: any; XMLHttpRequestEventTarget: any; XMLHttpRequestUpload: any; XMLSerializer: any; XPathEvaluator: any; XPathExpression: any; XPathResult: any; XSLTProcessor: any; console: any; CSS: any; WebAssembly: any; Audio: any; Image: any; Option: any; Map: any; WeakMap: any; Set: any; WeakSet: any; Proxy: any; Reflect: any; foo: any; undefined: any; }; designMode: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; dir: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly doctype: { readonly name: any; readonly ownerDocument: any; readonly publicId: any; readonly systemId: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; after: any; before: any; remove: any; replaceWith: any; }; readonly documentElement: { accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; spellcheck: any; title: any; translate: any; click: any; addEventListener: any; removeEventListener: any; readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; }; readonly documentURI: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; domain: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly embeds: { item: any; namedItem: any; readonly length: any; }; fgColor: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly forms: { item: any; namedItem: any; readonly length: any; }; readonly fullscreen: { valueOf: any; }; readonly fullscreenEnabled: { valueOf: any; }; readonly head: { addEventListener: any; removeEventListener: any; accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; spellcheck: any; title: any; translate: any; click: any; readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; }; readonly hidden: { valueOf: any; }; readonly images: { item: any; namedItem: any; readonly length: any; }; readonly implementation: { createDocument: any; createDocumentType: any; createHTMLDocument: any; hasFeature: any; }; readonly inputEncoding: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly lastModified: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; linkColor: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly links: { item: any; namedItem: any; readonly length: any; }; location: { readonly ancestorOrigins: any; hash: any; host: any; hostname: any; href: any; toString: any; readonly origin: any; pathname: any; port: any; protocol: any; search: any; assign: any; reload: any; replace: any; }; onfullscreenchange: unknown; onfullscreenerror: unknown; onpointerlockchange: unknown; onpointerlockerror: unknown; onreadystatechange: unknown; onvisibilitychange: unknown; readonly ownerDocument: unknown; readonly pictureInPictureEnabled: { valueOf: any; }; readonly plugins: { item: any; namedItem: any; readonly length: any; }; readonly readyState: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly referrer: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly rootElement: { currentScale: any; readonly currentTranslate: any; readonly height: any; readonly width: any; readonly x: any; readonly y: any; animationsPaused: any; checkEnclosure: any; checkIntersection: any; createSVGAngle: any; createSVGLength: any; createSVGMatrix: any; createSVGNumber: any; createSVGPoint: any; createSVGRect: any; createSVGTransform: any; createSVGTransformFromMatrix: any; deselectAll: any; forceRedraw: any; getCurrentTime: any; getElementById: any; getEnclosureList: any; getIntersectionList: any; pauseAnimations: any; setCurrentTime: any; suspendRedraw: any; unpauseAnimations: any; unsuspendRedraw: any; unsuspendRedrawAll: any; addEventListener: any; removeEventListener: any; readonly transform: any; getBBox: any; getCTM: any; getScreenCTM: any; readonly className: any; readonly ownerSVGElement: any; readonly viewportElement: any; readonly attributes: any; readonly classList: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; readonly requiredExtensions: any; readonly systemLanguage: any; readonly preserveAspectRatio: any; readonly viewBox: any; onafterprint: any; onbeforeprint: any; onbeforeunload: any; ongamepadconnected: any; ongamepaddisconnected: any; onhashchange: any; onlanguagechange: any; onmessage: any; onmessageerror: any; onoffline: any; ononline: any; onpagehide: any; onpageshow: any; onpopstate: any; onrejectionhandled: any; onstorage: any; onunhandledrejection: any; onunload: any; }; readonly scripts: { item: any; namedItem: any; readonly length: any; }; readonly scrollingElement: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly timeline: { readonly currentTime: any; }; title: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly visibilityState: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; vlinkColor: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; adoptNode: unknown; captureEvents: unknown; caretRangeFromPoint: unknown; clear: unknown; close: unknown; createAttribute: unknown; createAttributeNS: unknown; createCDATASection: unknown; createComment: unknown; createDocumentFragment: unknown; createElement: unknown; createElementNS: unknown; createEvent: unknown; createNodeIterator: unknown; createProcessingInstruction: unknown; createRange: unknown; createTextNode: unknown; createTreeWalker: unknown; elementFromPoint: unknown; elementsFromPoint: unknown; execCommand: unknown; exitFullscreen: unknown; exitPictureInPicture: unknown; exitPointerLock: unknown; getElementById: unknown; getElementsByClassName: unknown; getElementsByName: unknown; getElementsByTagName: unknown; getElementsByTagNameNS: unknown; getSelection: unknown; hasFocus: unknown; hasStorageAccess: unknown; importNode: unknown; open: unknown; queryCommandEnabled: unknown; queryCommandIndeterm: unknown; queryCommandState: unknown; queryCommandSupported: unknown; queryCommandValue: unknown; releaseEvents: unknown; requestStorageAccess: unknown; write: unknown; writeln: unknown; addEventListener: unknown; removeEventListener: unknown; readonly baseURI: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly childNodes: { item: any; forEach: any; readonly length: any; }; readonly firstChild: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly isConnected: { valueOf: any; }; readonly lastChild: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly nextSibling: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly nodeName: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly nodeType: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; nodeValue: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly parentElement: { accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; spellcheck: any; title: any; translate: any; click: any; addEventListener: any; removeEventListener: any; readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; }; readonly parentNode: { readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly previousSibling: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; textContent: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; appendChild: unknown; cloneNode: unknown; compareDocumentPosition: unknown; contains: unknown; getRootNode: unknown; hasChildNodes: unknown; insertBefore: unknown; isDefaultNamespace: unknown; isEqualNode: unknown; isSameNode: unknown; lookupNamespaceURI: unknown; lookupPrefix: unknown; normalize: unknown; removeChild: unknown; replaceChild: unknown; readonly ATTRIBUTE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly CDATA_SECTION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly COMMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_FRAGMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_CONTAINED_BY: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_CONTAINS: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_DISCONNECTED: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_FOLLOWING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_PRECEDING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_TYPE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ELEMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ENTITY_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ENTITY_REFERENCE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly NOTATION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly PROCESSING_INSTRUCTION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly TEXT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; dispatchEvent: unknown; oncopy: unknown; oncut: unknown; onpaste: unknown; readonly activeElement: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly fullscreenElement: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly pictureInPictureElement: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly pointerLockElement: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly styleSheets: { readonly length: any; item: any; }; getAnimations: unknown; readonly fonts: { onloading: any; onloadingdone: any; onloadingerror: any; readonly ready: any; readonly status: any; check: any; load: any; forEach: any; addEventListener: any; removeEventListener: any; dispatchEvent: any; }; onabort: unknown; onanimationcancel: unknown; onanimationend: unknown; onanimationiteration: unknown; onanimationstart: unknown; onauxclick: unknown; onblur: unknown; oncanplay: unknown; oncanplaythrough: unknown; onchange: unknown; onclick: unknown; onclose: unknown; oncontextmenu: unknown; oncuechange: unknown; ondblclick: unknown; ondrag: unknown; ondragend: unknown; ondragenter: unknown; ondragleave: unknown; ondragover: unknown; ondragstart: unknown; ondrop: unknown; ondurationchange: unknown; onemptied: unknown; onended: unknown; onerror: unknown; onfocus: unknown; onformdata: unknown; ongotpointercapture: unknown; oninput: unknown; oninvalid: unknown; onkeydown: unknown; onkeypress: unknown; onkeyup: unknown; onload: unknown; onloadeddata: unknown; onloadedmetadata: unknown; onloadstart: unknown; onlostpointercapture: unknown; onmousedown: unknown; onmouseenter: unknown; onmouseleave: unknown; onmousemove: unknown; onmouseout: unknown; onmouseover: unknown; onmouseup: unknown; onpause: unknown; onplay: unknown; onplaying: unknown; onpointercancel: unknown; onpointerdown: unknown; onpointerenter: unknown; onpointerleave: unknown; onpointermove: unknown; onpointerout: unknown; onpointerover: unknown; onpointerup: unknown; onprogress: unknown; onratechange: unknown; onreset: unknown; onresize: unknown; onscroll: unknown; onseeked: unknown; onseeking: unknown; onselect: unknown; onselectionchange: unknown; onselectstart: unknown; onstalled: unknown; onsubmit: unknown; onsuspend: unknown; ontimeupdate: unknown; ontoggle: unknown; ontouchcancel?: unknown; ontouchend?: unknown; ontouchmove?: unknown; ontouchstart?: unknown; ontransitioncancel: unknown; ontransitionend: unknown; ontransitionrun: unknown; ontransitionstart: unknown; onvolumechange: unknown; onwaiting: unknown; onwebkitanimationend: unknown; onwebkitanimationiteration: unknown; onwebkitanimationstart: unknown; onwebkittransitionend: unknown; onwheel: unknown; readonly childElementCount: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly children: { namedItem: any; readonly length: any; item: any; }; readonly firstElementChild: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly lastElementChild: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; append: unknown; prepend: unknown; querySelector: unknown; querySelectorAll: unknown; replaceChildren: unknown; createExpression: unknown; createNSResolver: unknown; evaluate: unknown; } ->out2 : { onreadystatechange: unknown; readonly readyState: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly response: unknown; readonly responseText: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; responseType: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly responseURL: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly responseXML: { readonly URL: any; alinkColor: any; readonly all: any; readonly anchors: any; readonly applets: any; bgColor: any; body: any; readonly characterSet: any; readonly charset: any; readonly compatMode: any; readonly contentType: any; cookie: any; readonly currentScript: any; readonly defaultView: any; designMode: any; dir: any; readonly doctype: any; readonly documentElement: any; readonly documentURI: any; domain: any; readonly embeds: any; fgColor: any; readonly forms: any; readonly fullscreen: any; readonly fullscreenEnabled: any; readonly head: any; readonly hidden: any; readonly images: any; readonly implementation: any; readonly inputEncoding: any; readonly lastModified: any; linkColor: any; readonly links: any; location: any; onfullscreenchange: any; onfullscreenerror: any; onpointerlockchange: any; onpointerlockerror: any; onreadystatechange: any; onvisibilitychange: any; readonly ownerDocument: any; readonly pictureInPictureEnabled: any; readonly plugins: any; readonly readyState: any; readonly referrer: any; readonly rootElement: any; readonly scripts: any; readonly scrollingElement: any; readonly timeline: any; title: any; readonly visibilityState: any; vlinkColor: any; adoptNode: any; captureEvents: any; caretRangeFromPoint: any; clear: any; close: any; createAttribute: any; createAttributeNS: any; createCDATASection: any; createComment: any; createDocumentFragment: any; createElement: any; createElementNS: any; createEvent: any; createNodeIterator: any; createProcessingInstruction: any; createRange: any; createTextNode: any; createTreeWalker: any; elementFromPoint: any; elementsFromPoint: any; execCommand: any; exitFullscreen: any; exitPictureInPicture: any; exitPointerLock: any; getElementById: any; getElementsByClassName: any; getElementsByName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getSelection: any; hasFocus: any; hasStorageAccess: any; importNode: any; open: any; queryCommandEnabled: any; queryCommandIndeterm: any; queryCommandState: any; queryCommandSupported: any; queryCommandValue: any; releaseEvents: any; requestStorageAccess: any; write: any; writeln: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; oncopy: any; oncut: any; onpaste: any; readonly activeElement: any; readonly fullscreenElement: any; readonly pictureInPictureElement: any; readonly pointerLockElement: any; readonly styleSheets: any; getAnimations: any; readonly fonts: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; createExpression: any; createNSResolver: any; evaluate: any; }; readonly status: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly statusText: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; timeout: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly upload: { addEventListener: any; removeEventListener: any; onabort: any; onerror: any; onload: any; onloadend: any; onloadstart: any; onprogress: any; ontimeout: any; dispatchEvent: any; }; withCredentials: { valueOf: any; }; abort: unknown; getAllResponseHeaders: unknown; getResponseHeader: unknown; open: unknown; overrideMimeType: unknown; send: unknown; setRequestHeader: unknown; readonly DONE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly HEADERS_RECEIVED: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly LOADING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly OPENED: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly UNSENT: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; addEventListener: unknown; removeEventListener: unknown; onabort: unknown; onerror: unknown; onload: unknown; onloadend: unknown; onloadstart: unknown; onprogress: unknown; ontimeout: unknown; dispatchEvent: unknown; } ->responseXML : { readonly URL: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; alinkColor: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly all: { readonly length: any; item: any; namedItem: any; }; readonly anchors: { item: any; namedItem: any; readonly length: any; }; readonly applets: { namedItem: any; readonly length: any; item: any; }; bgColor: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; body: { accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; spellcheck: any; title: any; translate: any; click: any; addEventListener: any; removeEventListener: any; readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; }; readonly characterSet: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly charset: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly compatMode: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly contentType: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; cookie: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly currentScript: { async: any; charset: any; crossOrigin: any; defer: any; event: any; htmlFor: any; integrity: any; noModule: any; referrerPolicy: any; src: any; text: any; type: any; addEventListener: any; removeEventListener: any; accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; spellcheck: any; title: any; translate: any; click: any; readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; } | { type: any; addEventListener: any; removeEventListener: any; readonly className: any; readonly ownerSVGElement: any; readonly viewportElement: any; readonly attributes: any; readonly classList: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; readonly href: any; }; readonly defaultView: { clientInformation: any; closed: any; customElements: any; devicePixelRatio: any; document: any; event: any; external: any; frameElement: any; frames: any; history: any; innerHeight: any; innerWidth: any; length: any; location: any; locationbar: any; menubar: any; name: any; navigator: any; ondevicemotion: any; ondeviceorientation: any; onorientationchange: any; opener: any; orientation: any; outerHeight: any; outerWidth: any; pageXOffset: any; pageYOffset: any; parent: any; personalbar: any; screen: any; screenLeft: any; screenTop: any; screenX: any; screenY: any; scrollX: any; scrollY: any; scrollbars: any; self: any; speechSynthesis: any; status: any; statusbar: any; toolbar: any; top: any; visualViewport: any; window: any; alert: any; blur: any; cancelIdleCallback: any; captureEvents: any; close: any; confirm: any; focus: any; getComputedStyle: any; getSelection: any; matchMedia: any; moveBy: any; moveTo: any; open: any; postMessage: any; print: any; prompt: any; releaseEvents: any; requestIdleCallback: any; resizeBy: any; resizeTo: any; scroll: any; scrollBy: any; scrollTo: any; stop: any; addEventListener: any; removeEventListener: any; dispatchEvent: any; cancelAnimationFrame: any; requestAnimationFrame: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel: any; ontouchend: any; ontouchmove: any; ontouchstart: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; onafterprint: any; onbeforeprint: any; onbeforeunload: any; ongamepadconnected: any; ongamepaddisconnected: any; onhashchange: any; onlanguagechange: any; onmessage: any; onmessageerror: any; onoffline: any; ononline: any; onpagehide: any; onpageshow: any; onpopstate: any; onrejectionhandled: any; onstorage: any; onunhandledrejection: any; onunload: any; localStorage: any; caches: any; crossOriginIsolated: any; crypto: any; indexedDB: any; isSecureContext: any; origin: any; performance: any; atob: any; btoa: any; clearInterval: any; clearTimeout: any; createImageBitmap: any; fetch: any; queueMicrotask: any; setInterval: any; setTimeout: any; sessionStorage: any; readonly globalThis: any; eval: any; parseInt: any; parseFloat: any; isNaN: any; isFinite: any; decodeURI: any; decodeURIComponent: any; encodeURI: any; encodeURIComponent: any; escape: any; unescape: any; NaN: any; Infinity: any; Symbol: any; Object: any; Function: any; String: any; Boolean: any; Number: any; Math: any; Date: any; RegExp: any; Error: any; EvalError: any; RangeError: any; ReferenceError: any; SyntaxError: any; TypeError: any; URIError: any; JSON: any; Array: any; Promise: any; ArrayBuffer: any; DataView: any; Int8Array: any; Uint8Array: any; Uint8ClampedArray: any; Int16Array: any; Uint16Array: any; Int32Array: any; Uint32Array: any; Float32Array: any; Float64Array: any; Intl: any; toString: any; NodeFilter: any; AbortController: any; AbortSignal: any; AbstractRange: any; AnalyserNode: any; Animation: any; AnimationEffect: any; AnimationEvent: any; AnimationPlaybackEvent: any; AnimationTimeline: any; Attr: any; AudioBuffer: any; AudioBufferSourceNode: any; AudioContext: any; AudioDestinationNode: any; AudioListener: any; AudioNode: any; AudioParam: any; AudioParamMap: any; AudioProcessingEvent: any; AudioScheduledSourceNode: any; AudioWorklet: any; AudioWorkletNode: any; AuthenticatorAssertionResponse: any; AuthenticatorAttestationResponse: any; AuthenticatorResponse: any; BarProp: any; BaseAudioContext: any; BeforeUnloadEvent: any; BiquadFilterNode: any; Blob: any; BlobEvent: any; BroadcastChannel: any; ByteLengthQueuingStrategy: any; CDATASection: any; CSSAnimation: any; CSSConditionRule: any; CSSCounterStyleRule: any; CSSFontFaceRule: any; CSSGroupingRule: any; CSSImportRule: any; CSSKeyframeRule: any; CSSKeyframesRule: any; CSSMediaRule: any; CSSNamespaceRule: any; CSSPageRule: any; CSSRule: any; CSSRuleList: any; CSSStyleDeclaration: any; CSSStyleRule: any; CSSStyleSheet: any; CSSSupportsRule: any; CSSTransition: any; Cache: any; CacheStorage: any; CanvasGradient: any; CanvasPattern: any; CanvasRenderingContext2D: any; ChannelMergerNode: any; ChannelSplitterNode: any; CharacterData: any; Clipboard: any; ClipboardEvent: any; ClipboardItem: any; CloseEvent: any; Comment: any; CompositionEvent: any; ConstantSourceNode: any; ConvolverNode: any; CountQueuingStrategy: any; Credential: any; CredentialsContainer: any; Crypto: any; CryptoKey: any; CustomElementRegistry: any; CustomEvent: any; DOMException: any; DOMImplementation: any; DOMMatrix: any; SVGMatrix: any; WebKitCSSMatrix: any; DOMMatrixReadOnly: any; DOMParser: any; DOMPoint: any; SVGPoint: any; DOMPointReadOnly: any; DOMQuad: any; DOMRect: any; SVGRect: any; DOMRectList: any; DOMRectReadOnly: any; DOMStringList: any; DOMStringMap: any; DOMTokenList: any; DataTransfer: any; DataTransferItem: any; DataTransferItemList: any; DelayNode: any; DeviceMotionEvent: any; DeviceOrientationEvent: any; Document: any; DocumentFragment: any; DocumentTimeline: any; DocumentType: any; DragEvent: any; DynamicsCompressorNode: any; Element: any; ErrorEvent: any; Event: any; EventSource: any; EventTarget: any; External: any; File: any; FileList: any; FileReader: any; FileSystem: any; FileSystemDirectoryEntry: any; FileSystemDirectoryReader: any; FileSystemEntry: any; FileSystemFileEntry: any; FocusEvent: any; FontFace: any; FontFaceSet: any; FontFaceSetLoadEvent: any; FormData: any; FormDataEvent: any; GainNode: any; Gamepad: any; GamepadButton: any; GamepadEvent: any; GamepadHapticActuator: any; Geolocation: any; GeolocationCoordinates: any; GeolocationPosition: any; GeolocationPositionError: any; HTMLAllCollection: any; HTMLAnchorElement: any; HTMLAreaElement: any; HTMLAudioElement: any; HTMLBRElement: any; HTMLBaseElement: any; HTMLBodyElement: any; HTMLButtonElement: any; HTMLCanvasElement: any; HTMLCollection: any; HTMLDListElement: any; HTMLDataElement: any; HTMLDataListElement: any; HTMLDetailsElement: any; HTMLDirectoryElement: any; HTMLDivElement: any; HTMLDocument: any; HTMLElement: any; HTMLEmbedElement: any; HTMLFieldSetElement: any; HTMLFontElement: any; HTMLFormControlsCollection: any; HTMLFormElement: any; HTMLFrameElement: any; HTMLFrameSetElement: any; HTMLHRElement: any; HTMLHeadElement: any; HTMLHeadingElement: any; HTMLHtmlElement: any; HTMLIFrameElement: any; HTMLImageElement: any; HTMLInputElement: any; HTMLLIElement: any; HTMLLabelElement: any; HTMLLegendElement: any; HTMLLinkElement: any; HTMLMapElement: any; HTMLMarqueeElement: any; HTMLMediaElement: any; HTMLMenuElement: any; HTMLMetaElement: any; HTMLMeterElement: any; HTMLModElement: any; HTMLOListElement: any; HTMLObjectElement: any; HTMLOptGroupElement: any; HTMLOptionElement: any; HTMLOptionsCollection: any; HTMLOutputElement: any; HTMLParagraphElement: any; HTMLParamElement: any; HTMLPictureElement: any; HTMLPreElement: any; HTMLProgressElement: any; HTMLQuoteElement: any; HTMLScriptElement: any; HTMLSelectElement: any; HTMLSlotElement: any; HTMLSourceElement: any; HTMLSpanElement: any; HTMLStyleElement: any; HTMLTableCaptionElement: any; HTMLTableCellElement: any; HTMLTableColElement: any; HTMLTableElement: any; HTMLTableRowElement: any; HTMLTableSectionElement: any; HTMLTemplateElement: any; HTMLTextAreaElement: any; HTMLTimeElement: any; HTMLTitleElement: any; HTMLTrackElement: any; HTMLUListElement: any; HTMLUnknownElement: any; HTMLVideoElement: any; HashChangeEvent: any; Headers: any; History: any; IDBCursor: any; IDBCursorWithValue: any; IDBDatabase: any; IDBFactory: any; IDBIndex: any; IDBKeyRange: any; IDBObjectStore: any; IDBOpenDBRequest: any; IDBRequest: any; IDBTransaction: any; IDBVersionChangeEvent: any; IIRFilterNode: any; IdleDeadline: any; ImageBitmap: any; ImageBitmapRenderingContext: any; ImageData: any; InputEvent: any; IntersectionObserver: any; IntersectionObserverEntry: any; KeyboardEvent: any; KeyframeEffect: any; Location: any; MathMLElement: any; MediaCapabilities: any; MediaDeviceInfo: any; MediaDevices: any; MediaElementAudioSourceNode: any; MediaEncryptedEvent: any; MediaError: any; MediaKeyMessageEvent: any; MediaKeySession: any; MediaKeyStatusMap: any; MediaKeySystemAccess: any; MediaKeys: any; MediaList: any; MediaMetadata: any; MediaQueryList: any; MediaQueryListEvent: any; MediaRecorder: any; MediaRecorderErrorEvent: any; MediaSession: any; MediaSource: any; MediaStream: any; MediaStreamAudioDestinationNode: any; MediaStreamAudioSourceNode: any; MediaStreamTrack: any; MediaStreamTrackEvent: any; MessageChannel: any; MessageEvent: any; MessagePort: any; MimeType: any; MimeTypeArray: any; MouseEvent: any; MutationEvent: any; MutationObserver: any; MutationRecord: any; NamedNodeMap: any; Navigator: any; NetworkInformation: any; Node: any; NodeIterator: any; NodeList: any; Notification: any; OfflineAudioCompletionEvent: any; OfflineAudioContext: any; OscillatorNode: any; OverconstrainedError: any; PageTransitionEvent: any; PannerNode: any; Path2D: any; PaymentAddress: any; PaymentMethodChangeEvent: any; PaymentRequest: any; PaymentRequestUpdateEvent: any; PaymentResponse: any; Performance: any; PerformanceEntry: any; PerformanceEventTiming: any; PerformanceMark: any; PerformanceMeasure: any; PerformanceNavigation: any; PerformanceNavigationTiming: any; PerformanceObserver: any; PerformanceObserverEntryList: any; PerformancePaintTiming: any; PerformanceResourceTiming: any; PerformanceServerTiming: any; PerformanceTiming: any; PeriodicWave: any; PermissionStatus: any; Permissions: any; PictureInPictureWindow: any; Plugin: any; PluginArray: any; PointerEvent: any; PopStateEvent: any; ProcessingInstruction: any; ProgressEvent: any; PromiseRejectionEvent: any; PublicKeyCredential: any; PushManager: any; PushSubscription: any; PushSubscriptionOptions: any; RTCCertificate: any; RTCDTMFSender: any; RTCDTMFToneChangeEvent: any; RTCDataChannel: any; RTCDataChannelEvent: any; RTCDtlsTransport: any; RTCIceCandidate: any; RTCIceTransport: any; RTCPeerConnection: any; RTCPeerConnectionIceErrorEvent: any; RTCPeerConnectionIceEvent: any; RTCRtpReceiver: any; RTCRtpSender: any; RTCRtpTransceiver: any; RTCSessionDescription: any; RTCStatsReport: any; RTCTrackEvent: any; RadioNodeList: any; Range: any; ReadableStream: any; ReadableStreamDefaultController: any; ReadableStreamDefaultReader: any; RemotePlayback: any; Request: any; ResizeObserver: any; ResizeObserverEntry: any; ResizeObserverSize: any; Response: any; SVGAElement: any; SVGAngle: any; SVGAnimateElement: any; SVGAnimateMotionElement: any; SVGAnimateTransformElement: any; SVGAnimatedAngle: any; SVGAnimatedBoolean: any; SVGAnimatedEnumeration: any; SVGAnimatedInteger: any; SVGAnimatedLength: any; SVGAnimatedLengthList: any; SVGAnimatedNumber: any; SVGAnimatedNumberList: any; SVGAnimatedPreserveAspectRatio: any; SVGAnimatedRect: any; SVGAnimatedString: any; SVGAnimatedTransformList: any; SVGAnimationElement: any; SVGCircleElement: any; SVGClipPathElement: any; SVGComponentTransferFunctionElement: any; SVGDefsElement: any; SVGDescElement: any; SVGElement: any; SVGEllipseElement: any; SVGFEBlendElement: any; SVGFEColorMatrixElement: any; SVGFEComponentTransferElement: any; SVGFECompositeElement: any; SVGFEConvolveMatrixElement: any; SVGFEDiffuseLightingElement: any; SVGFEDisplacementMapElement: any; SVGFEDistantLightElement: any; SVGFEDropShadowElement: any; SVGFEFloodElement: any; SVGFEFuncAElement: any; SVGFEFuncBElement: any; SVGFEFuncGElement: any; SVGFEFuncRElement: any; SVGFEGaussianBlurElement: any; SVGFEImageElement: any; SVGFEMergeElement: any; SVGFEMergeNodeElement: any; SVGFEMorphologyElement: any; SVGFEOffsetElement: any; SVGFEPointLightElement: any; SVGFESpecularLightingElement: any; SVGFESpotLightElement: any; SVGFETileElement: any; SVGFETurbulenceElement: any; SVGFilterElement: any; SVGForeignObjectElement: any; SVGGElement: any; SVGGeometryElement: any; SVGGradientElement: any; SVGGraphicsElement: any; SVGImageElement: any; SVGLength: any; SVGLengthList: any; SVGLineElement: any; SVGLinearGradientElement: any; SVGMPathElement: any; SVGMarkerElement: any; SVGMaskElement: any; SVGMetadataElement: any; SVGNumber: any; SVGNumberList: any; SVGPathElement: any; SVGPatternElement: any; SVGPointList: any; SVGPolygonElement: any; SVGPolylineElement: any; SVGPreserveAspectRatio: any; SVGRadialGradientElement: any; SVGRectElement: any; SVGSVGElement: any; SVGScriptElement: any; SVGSetElement: any; SVGStopElement: any; SVGStringList: any; SVGStyleElement: any; SVGSwitchElement: any; SVGSymbolElement: any; SVGTSpanElement: any; SVGTextContentElement: any; SVGTextElement: any; SVGTextPathElement: any; SVGTextPositioningElement: any; SVGTitleElement: any; SVGTransform: any; SVGTransformList: any; SVGUnitTypes: any; SVGUseElement: any; SVGViewElement: any; Screen: any; ScreenOrientation: any; ScriptProcessorNode: any; SecurityPolicyViolationEvent: any; Selection: any; ServiceWorker: any; ServiceWorkerContainer: any; ServiceWorkerRegistration: any; ShadowRoot: any; SharedWorker: any; SourceBuffer: any; SourceBufferList: any; SpeechRecognitionAlternative: any; SpeechRecognitionResult: any; SpeechRecognitionResultList: any; SpeechSynthesis: any; SpeechSynthesisErrorEvent: any; SpeechSynthesisEvent: any; SpeechSynthesisUtterance: any; SpeechSynthesisVoice: any; StaticRange: any; StereoPannerNode: any; Storage: any; StorageEvent: any; StorageManager: any; StyleSheet: any; StyleSheetList: any; SubmitEvent: any; SubtleCrypto: any; Text: any; TextDecoder: any; TextDecoderStream: any; TextEncoder: any; TextEncoderStream: any; TextMetrics: any; TextTrack: any; TextTrackCue: any; TextTrackCueList: any; TextTrackList: any; TimeRanges: any; Touch: any; TouchEvent: any; TouchList: any; TrackEvent: any; TransformStream: any; TransformStreamDefaultController: any; TransitionEvent: any; TreeWalker: any; UIEvent: any; URL: any; webkitURL: any; URLSearchParams: any; VTTCue: any; VTTRegion: any; ValidityState: any; VideoPlaybackQuality: any; VisualViewport: any; WaveShaperNode: any; WebGL2RenderingContext: any; WebGLActiveInfo: any; WebGLBuffer: any; WebGLContextEvent: any; WebGLFramebuffer: any; WebGLProgram: any; WebGLQuery: any; WebGLRenderbuffer: any; WebGLRenderingContext: any; WebGLSampler: any; WebGLShader: any; WebGLShaderPrecisionFormat: any; WebGLSync: any; WebGLTexture: any; WebGLTransformFeedback: any; WebGLUniformLocation: any; WebGLVertexArrayObject: any; WebSocket: any; WheelEvent: any; Window: any; Worker: any; Worklet: any; WritableStream: any; WritableStreamDefaultController: any; WritableStreamDefaultWriter: any; XMLDocument: any; XMLHttpRequest: any; XMLHttpRequestEventTarget: any; XMLHttpRequestUpload: any; XMLSerializer: any; XPathEvaluator: any; XPathExpression: any; XPathResult: any; XSLTProcessor: any; console: any; CSS: any; WebAssembly: any; Audio: any; Image: any; Option: any; Map: any; WeakMap: any; Set: any; WeakSet: any; Proxy: any; Reflect: any; foo: any; undefined: any; }; designMode: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; dir: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly doctype: { readonly name: any; readonly ownerDocument: any; readonly publicId: any; readonly systemId: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; after: any; before: any; remove: any; replaceWith: any; }; readonly documentElement: { accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; spellcheck: any; title: any; translate: any; click: any; addEventListener: any; removeEventListener: any; readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; }; readonly documentURI: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; domain: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly embeds: { item: any; namedItem: any; readonly length: any; }; fgColor: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly forms: { item: any; namedItem: any; readonly length: any; }; readonly fullscreen: { valueOf: any; }; readonly fullscreenEnabled: { valueOf: any; }; readonly head: { addEventListener: any; removeEventListener: any; accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; spellcheck: any; title: any; translate: any; click: any; readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; }; readonly hidden: { valueOf: any; }; readonly images: { item: any; namedItem: any; readonly length: any; }; readonly implementation: { createDocument: any; createDocumentType: any; createHTMLDocument: any; hasFeature: any; }; readonly inputEncoding: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly lastModified: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; linkColor: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly links: { item: any; namedItem: any; readonly length: any; }; location: { readonly ancestorOrigins: any; hash: any; host: any; hostname: any; href: any; toString: any; readonly origin: any; pathname: any; port: any; protocol: any; search: any; assign: any; reload: any; replace: any; }; onfullscreenchange: unknown; onfullscreenerror: unknown; onpointerlockchange: unknown; onpointerlockerror: unknown; onreadystatechange: unknown; onvisibilitychange: unknown; readonly ownerDocument: unknown; readonly pictureInPictureEnabled: { valueOf: any; }; readonly plugins: { item: any; namedItem: any; readonly length: any; }; readonly readyState: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly referrer: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly rootElement: { currentScale: any; readonly currentTranslate: any; readonly height: any; readonly width: any; readonly x: any; readonly y: any; animationsPaused: any; checkEnclosure: any; checkIntersection: any; createSVGAngle: any; createSVGLength: any; createSVGMatrix: any; createSVGNumber: any; createSVGPoint: any; createSVGRect: any; createSVGTransform: any; createSVGTransformFromMatrix: any; deselectAll: any; forceRedraw: any; getCurrentTime: any; getElementById: any; getEnclosureList: any; getIntersectionList: any; pauseAnimations: any; setCurrentTime: any; suspendRedraw: any; unpauseAnimations: any; unsuspendRedraw: any; unsuspendRedrawAll: any; addEventListener: any; removeEventListener: any; readonly transform: any; getBBox: any; getCTM: any; getScreenCTM: any; readonly className: any; readonly ownerSVGElement: any; readonly viewportElement: any; readonly attributes: any; readonly classList: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; readonly requiredExtensions: any; readonly systemLanguage: any; readonly preserveAspectRatio: any; readonly viewBox: any; onafterprint: any; onbeforeprint: any; onbeforeunload: any; ongamepadconnected: any; ongamepaddisconnected: any; onhashchange: any; onlanguagechange: any; onmessage: any; onmessageerror: any; onoffline: any; ononline: any; onpagehide: any; onpageshow: any; onpopstate: any; onrejectionhandled: any; onstorage: any; onunhandledrejection: any; onunload: any; }; readonly scripts: { item: any; namedItem: any; readonly length: any; }; readonly scrollingElement: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly timeline: { readonly currentTime: any; }; title: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly visibilityState: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; vlinkColor: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; adoptNode: unknown; captureEvents: unknown; caretRangeFromPoint: unknown; clear: unknown; close: unknown; createAttribute: unknown; createAttributeNS: unknown; createCDATASection: unknown; createComment: unknown; createDocumentFragment: unknown; createElement: unknown; createElementNS: unknown; createEvent: unknown; createNodeIterator: unknown; createProcessingInstruction: unknown; createRange: unknown; createTextNode: unknown; createTreeWalker: unknown; elementFromPoint: unknown; elementsFromPoint: unknown; execCommand: unknown; exitFullscreen: unknown; exitPictureInPicture: unknown; exitPointerLock: unknown; getElementById: unknown; getElementsByClassName: unknown; getElementsByName: unknown; getElementsByTagName: unknown; getElementsByTagNameNS: unknown; getSelection: unknown; hasFocus: unknown; hasStorageAccess: unknown; importNode: unknown; open: unknown; queryCommandEnabled: unknown; queryCommandIndeterm: unknown; queryCommandState: unknown; queryCommandSupported: unknown; queryCommandValue: unknown; releaseEvents: unknown; requestStorageAccess: unknown; write: unknown; writeln: unknown; addEventListener: unknown; removeEventListener: unknown; readonly baseURI: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly childNodes: { item: any; forEach: any; readonly length: any; }; readonly firstChild: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly isConnected: { valueOf: any; }; readonly lastChild: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly nextSibling: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly nodeName: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly nodeType: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; nodeValue: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly parentElement: { accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; spellcheck: any; title: any; translate: any; click: any; addEventListener: any; removeEventListener: any; readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; }; readonly parentNode: { readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly previousSibling: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; textContent: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; appendChild: unknown; cloneNode: unknown; compareDocumentPosition: unknown; contains: unknown; getRootNode: unknown; hasChildNodes: unknown; insertBefore: unknown; isDefaultNamespace: unknown; isEqualNode: unknown; isSameNode: unknown; lookupNamespaceURI: unknown; lookupPrefix: unknown; normalize: unknown; removeChild: unknown; replaceChild: unknown; readonly ATTRIBUTE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly CDATA_SECTION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly COMMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_FRAGMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_CONTAINED_BY: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_CONTAINS: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_DISCONNECTED: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_FOLLOWING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_PRECEDING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_TYPE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ELEMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ENTITY_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ENTITY_REFERENCE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly NOTATION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly PROCESSING_INSTRUCTION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly TEXT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; dispatchEvent: unknown; oncopy: unknown; oncut: unknown; onpaste: unknown; readonly activeElement: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly fullscreenElement: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly pictureInPictureElement: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly pointerLockElement: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly styleSheets: { readonly length: any; item: any; }; getAnimations: unknown; readonly fonts: { onloading: any; onloadingdone: any; onloadingerror: any; readonly ready: any; readonly status: any; check: any; load: any; forEach: any; addEventListener: any; removeEventListener: any; dispatchEvent: any; }; onabort: unknown; onanimationcancel: unknown; onanimationend: unknown; onanimationiteration: unknown; onanimationstart: unknown; onauxclick: unknown; onblur: unknown; oncanplay: unknown; oncanplaythrough: unknown; onchange: unknown; onclick: unknown; onclose: unknown; oncontextmenu: unknown; oncuechange: unknown; ondblclick: unknown; ondrag: unknown; ondragend: unknown; ondragenter: unknown; ondragleave: unknown; ondragover: unknown; ondragstart: unknown; ondrop: unknown; ondurationchange: unknown; onemptied: unknown; onended: unknown; onerror: unknown; onfocus: unknown; onformdata: unknown; ongotpointercapture: unknown; oninput: unknown; oninvalid: unknown; onkeydown: unknown; onkeypress: unknown; onkeyup: unknown; onload: unknown; onloadeddata: unknown; onloadedmetadata: unknown; onloadstart: unknown; onlostpointercapture: unknown; onmousedown: unknown; onmouseenter: unknown; onmouseleave: unknown; onmousemove: unknown; onmouseout: unknown; onmouseover: unknown; onmouseup: unknown; onpause: unknown; onplay: unknown; onplaying: unknown; onpointercancel: unknown; onpointerdown: unknown; onpointerenter: unknown; onpointerleave: unknown; onpointermove: unknown; onpointerout: unknown; onpointerover: unknown; onpointerup: unknown; onprogress: unknown; onratechange: unknown; onreset: unknown; onresize: unknown; onscroll: unknown; onseeked: unknown; onseeking: unknown; onselect: unknown; onselectionchange: unknown; onselectstart: unknown; onstalled: unknown; onsubmit: unknown; onsuspend: unknown; ontimeupdate: unknown; ontoggle: unknown; ontouchcancel?: unknown; ontouchend?: unknown; ontouchmove?: unknown; ontouchstart?: unknown; ontransitioncancel: unknown; ontransitionend: unknown; ontransitionrun: unknown; ontransitionstart: unknown; onvolumechange: unknown; onwaiting: unknown; onwebkitanimationend: unknown; onwebkitanimationiteration: unknown; onwebkitanimationstart: unknown; onwebkittransitionend: unknown; onwheel: unknown; readonly childElementCount: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly children: { namedItem: any; readonly length: any; item: any; }; readonly firstElementChild: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly lastElementChild: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; append: unknown; prepend: unknown; querySelector: unknown; querySelectorAll: unknown; replaceChildren: unknown; createExpression: unknown; createNSResolver: unknown; evaluate: unknown; } +>out2.responseXML : { readonly URL: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; alinkColor: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly all: { readonly length: any; item: any; namedItem: any; }; readonly anchors: { item: any; namedItem: any; readonly length: any; }; readonly applets: { namedItem: any; readonly length: any; item: any; }; bgColor: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; body: { accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; spellcheck: any; title: any; translate: any; attachInternals: any; click: any; addEventListener: any; removeEventListener: any; readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; }; readonly characterSet: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly charset: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly compatMode: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly contentType: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; cookie: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly currentScript: { async: any; charset: any; crossOrigin: any; defer: any; event: any; htmlFor: any; integrity: any; noModule: any; referrerPolicy: any; src: any; text: any; type: any; addEventListener: any; removeEventListener: any; accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; spellcheck: any; title: any; translate: any; attachInternals: any; click: any; readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; } | { type: any; addEventListener: any; removeEventListener: any; readonly className: any; readonly ownerSVGElement: any; readonly viewportElement: any; readonly attributes: any; readonly classList: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; readonly href: any; }; readonly defaultView: { clientInformation: any; closed: any; customElements: any; devicePixelRatio: any; document: any; event: any; external: any; frameElement: any; frames: any; history: any; innerHeight: any; innerWidth: any; length: any; location: any; locationbar: any; menubar: any; name: any; navigator: any; ondevicemotion: any; ondeviceorientation: any; onorientationchange: any; opener: any; orientation: any; outerHeight: any; outerWidth: any; pageXOffset: any; pageYOffset: any; parent: any; personalbar: any; screen: any; screenLeft: any; screenTop: any; screenX: any; screenY: any; scrollX: any; scrollY: any; scrollbars: any; self: any; speechSynthesis: any; status: any; statusbar: any; toolbar: any; top: any; visualViewport: any; window: any; alert: any; blur: any; cancelIdleCallback: any; captureEvents: any; close: any; confirm: any; focus: any; getComputedStyle: any; getSelection: any; matchMedia: any; moveBy: any; moveTo: any; open: any; postMessage: any; print: any; prompt: any; releaseEvents: any; requestIdleCallback: any; resizeBy: any; resizeTo: any; scroll: any; scrollBy: any; scrollTo: any; stop: any; addEventListener: any; removeEventListener: any; dispatchEvent: any; cancelAnimationFrame: any; requestAnimationFrame: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel: any; ontouchend: any; ontouchmove: any; ontouchstart: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; onafterprint: any; onbeforeprint: any; onbeforeunload: any; ongamepadconnected: any; ongamepaddisconnected: any; onhashchange: any; onlanguagechange: any; onmessage: any; onmessageerror: any; onoffline: any; ononline: any; onpagehide: any; onpageshow: any; onpopstate: any; onrejectionhandled: any; onstorage: any; onunhandledrejection: any; onunload: any; localStorage: any; caches: any; crossOriginIsolated: any; crypto: any; indexedDB: any; isSecureContext: any; origin: any; performance: any; atob: any; btoa: any; clearInterval: any; clearTimeout: any; createImageBitmap: any; fetch: any; queueMicrotask: any; reportError: any; setInterval: any; setTimeout: any; sessionStorage: any; readonly globalThis: any; eval: any; parseInt: any; parseFloat: any; isNaN: any; isFinite: any; decodeURI: any; decodeURIComponent: any; encodeURI: any; encodeURIComponent: any; escape: any; unescape: any; NaN: any; Infinity: any; Symbol: any; Object: any; Function: any; String: any; Boolean: any; Number: any; Math: any; Date: any; RegExp: any; Error: any; EvalError: any; RangeError: any; ReferenceError: any; SyntaxError: any; TypeError: any; URIError: any; JSON: any; Array: any; Promise: any; ArrayBuffer: any; DataView: any; Int8Array: any; Uint8Array: any; Uint8ClampedArray: any; Int16Array: any; Uint16Array: any; Int32Array: any; Uint32Array: any; Float32Array: any; Float64Array: any; Intl: any; toString: any; NodeFilter: any; AbortController: any; AbortSignal: any; AbstractRange: any; AnalyserNode: any; Animation: any; AnimationEffect: any; AnimationEvent: any; AnimationPlaybackEvent: any; AnimationTimeline: any; Attr: any; AudioBuffer: any; AudioBufferSourceNode: any; AudioContext: any; AudioDestinationNode: any; AudioListener: any; AudioNode: any; AudioParam: any; AudioParamMap: any; AudioProcessingEvent: any; AudioScheduledSourceNode: any; AudioWorklet: any; AudioWorkletNode: any; AuthenticatorAssertionResponse: any; AuthenticatorAttestationResponse: any; AuthenticatorResponse: any; BarProp: any; BaseAudioContext: any; BeforeUnloadEvent: any; BiquadFilterNode: any; Blob: any; BlobEvent: any; BroadcastChannel: any; ByteLengthQueuingStrategy: any; CDATASection: any; CSSAnimation: any; CSSConditionRule: any; CSSCounterStyleRule: any; CSSFontFaceRule: any; CSSGroupingRule: any; CSSImportRule: any; CSSKeyframeRule: any; CSSKeyframesRule: any; CSSMediaRule: any; CSSNamespaceRule: any; CSSPageRule: any; CSSRule: any; CSSRuleList: any; CSSStyleDeclaration: any; CSSStyleRule: any; CSSStyleSheet: any; CSSSupportsRule: any; CSSTransition: any; Cache: any; CacheStorage: any; CanvasCaptureMediaStreamTrack: any; CanvasGradient: any; CanvasPattern: any; CanvasRenderingContext2D: any; ChannelMergerNode: any; ChannelSplitterNode: any; CharacterData: any; Clipboard: any; ClipboardEvent: any; ClipboardItem: any; CloseEvent: any; Comment: any; CompositionEvent: any; ConstantSourceNode: any; ConvolverNode: any; CountQueuingStrategy: any; Credential: any; CredentialsContainer: any; Crypto: any; CryptoKey: any; CustomElementRegistry: any; CustomEvent: any; DOMException: any; DOMImplementation: any; DOMMatrix: any; SVGMatrix: any; WebKitCSSMatrix: any; DOMMatrixReadOnly: any; DOMParser: any; DOMPoint: any; SVGPoint: any; DOMPointReadOnly: any; DOMQuad: any; DOMRect: any; SVGRect: any; DOMRectList: any; DOMRectReadOnly: any; DOMStringList: any; DOMStringMap: any; DOMTokenList: any; DataTransfer: any; DataTransferItem: any; DataTransferItemList: any; DelayNode: any; DeviceMotionEvent: any; DeviceOrientationEvent: any; Document: any; DocumentFragment: any; DocumentTimeline: any; DocumentType: any; DragEvent: any; DynamicsCompressorNode: any; Element: any; ElementInternals: any; ErrorEvent: any; Event: any; EventSource: any; EventTarget: any; External: any; File: any; FileList: any; FileReader: any; FileSystem: any; FileSystemDirectoryEntry: any; FileSystemDirectoryHandle: any; FileSystemDirectoryReader: any; FileSystemEntry: any; FileSystemFileEntry: any; FileSystemFileHandle: any; FileSystemHandle: any; FocusEvent: any; FontFace: any; FontFaceSet: any; FontFaceSetLoadEvent: any; FormData: any; FormDataEvent: any; GainNode: any; Gamepad: any; GamepadButton: any; GamepadEvent: any; GamepadHapticActuator: any; Geolocation: any; GeolocationCoordinates: any; GeolocationPosition: any; GeolocationPositionError: any; HTMLAllCollection: any; HTMLAnchorElement: any; HTMLAreaElement: any; HTMLAudioElement: any; HTMLBRElement: any; HTMLBaseElement: any; HTMLBodyElement: any; HTMLButtonElement: any; HTMLCanvasElement: any; HTMLCollection: any; HTMLDListElement: any; HTMLDataElement: any; HTMLDataListElement: any; HTMLDetailsElement: any; HTMLDirectoryElement: any; HTMLDivElement: any; HTMLDocument: any; HTMLElement: any; HTMLEmbedElement: any; HTMLFieldSetElement: any; HTMLFontElement: any; HTMLFormControlsCollection: any; HTMLFormElement: any; HTMLFrameElement: any; HTMLFrameSetElement: any; HTMLHRElement: any; HTMLHeadElement: any; HTMLHeadingElement: any; HTMLHtmlElement: any; HTMLIFrameElement: any; HTMLImageElement: any; HTMLInputElement: any; HTMLLIElement: any; HTMLLabelElement: any; HTMLLegendElement: any; HTMLLinkElement: any; HTMLMapElement: any; HTMLMarqueeElement: any; HTMLMediaElement: any; HTMLMenuElement: any; HTMLMetaElement: any; HTMLMeterElement: any; HTMLModElement: any; HTMLOListElement: any; HTMLObjectElement: any; HTMLOptGroupElement: any; HTMLOptionElement: any; HTMLOptionsCollection: any; HTMLOutputElement: any; HTMLParagraphElement: any; HTMLParamElement: any; HTMLPictureElement: any; HTMLPreElement: any; HTMLProgressElement: any; HTMLQuoteElement: any; HTMLScriptElement: any; HTMLSelectElement: any; HTMLSlotElement: any; HTMLSourceElement: any; HTMLSpanElement: any; HTMLStyleElement: any; HTMLTableCaptionElement: any; HTMLTableCellElement: any; HTMLTableColElement: any; HTMLTableElement: any; HTMLTableRowElement: any; HTMLTableSectionElement: any; HTMLTemplateElement: any; HTMLTextAreaElement: any; HTMLTimeElement: any; HTMLTitleElement: any; HTMLTrackElement: any; HTMLUListElement: any; HTMLUnknownElement: any; HTMLVideoElement: any; HashChangeEvent: any; Headers: any; History: any; IDBCursor: any; IDBCursorWithValue: any; IDBDatabase: any; IDBFactory: any; IDBIndex: any; IDBKeyRange: any; IDBObjectStore: any; IDBOpenDBRequest: any; IDBRequest: any; IDBTransaction: any; IDBVersionChangeEvent: any; IIRFilterNode: any; IdleDeadline: any; ImageBitmap: any; ImageBitmapRenderingContext: any; ImageData: any; InputDeviceInfo: any; InputEvent: any; IntersectionObserver: any; IntersectionObserverEntry: any; KeyboardEvent: any; KeyframeEffect: any; Location: any; Lock: any; LockManager: any; MathMLElement: any; MediaCapabilities: any; MediaDeviceInfo: any; MediaDevices: any; MediaElementAudioSourceNode: any; MediaEncryptedEvent: any; MediaError: any; MediaKeyMessageEvent: any; MediaKeySession: any; MediaKeyStatusMap: any; MediaKeySystemAccess: any; MediaKeys: any; MediaList: any; MediaMetadata: any; MediaQueryList: any; MediaQueryListEvent: any; MediaRecorder: any; MediaRecorderErrorEvent: any; MediaSession: any; MediaSource: any; MediaStream: any; MediaStreamAudioDestinationNode: any; MediaStreamAudioSourceNode: any; MediaStreamTrack: any; MediaStreamTrackEvent: any; MessageChannel: any; MessageEvent: any; MessagePort: any; MimeType: any; MimeTypeArray: any; MouseEvent: any; MutationEvent: any; MutationObserver: any; MutationRecord: any; NamedNodeMap: any; Navigator: any; NetworkInformation: any; Node: any; NodeIterator: any; NodeList: any; Notification: any; OfflineAudioCompletionEvent: any; OfflineAudioContext: any; OscillatorNode: any; OverconstrainedError: any; PageTransitionEvent: any; PannerNode: any; Path2D: any; PaymentMethodChangeEvent: any; PaymentRequest: any; PaymentRequestUpdateEvent: any; PaymentResponse: any; Performance: any; PerformanceEntry: any; PerformanceEventTiming: any; PerformanceMark: any; PerformanceMeasure: any; PerformanceNavigation: any; PerformanceNavigationTiming: any; PerformanceObserver: any; PerformanceObserverEntryList: any; PerformancePaintTiming: any; PerformanceResourceTiming: any; PerformanceServerTiming: any; PerformanceTiming: any; PeriodicWave: any; PermissionStatus: any; Permissions: any; PictureInPictureWindow: any; Plugin: any; PluginArray: any; PointerEvent: any; PopStateEvent: any; ProcessingInstruction: any; ProgressEvent: any; PromiseRejectionEvent: any; PublicKeyCredential: any; PushManager: any; PushSubscription: any; PushSubscriptionOptions: any; RTCCertificate: any; RTCDTMFSender: any; RTCDTMFToneChangeEvent: any; RTCDataChannel: any; RTCDataChannelEvent: any; RTCDtlsTransport: any; RTCIceCandidate: any; RTCIceTransport: any; RTCPeerConnection: any; RTCPeerConnectionIceErrorEvent: any; RTCPeerConnectionIceEvent: any; RTCRtpReceiver: any; RTCRtpSender: any; RTCRtpTransceiver: any; RTCSessionDescription: any; RTCStatsReport: any; RTCTrackEvent: any; RadioNodeList: any; Range: any; ReadableStream: any; ReadableStreamDefaultController: any; ReadableStreamDefaultReader: any; RemotePlayback: any; Request: any; ResizeObserver: any; ResizeObserverEntry: any; ResizeObserverSize: any; Response: any; SVGAElement: any; SVGAngle: any; SVGAnimateElement: any; SVGAnimateMotionElement: any; SVGAnimateTransformElement: any; SVGAnimatedAngle: any; SVGAnimatedBoolean: any; SVGAnimatedEnumeration: any; SVGAnimatedInteger: any; SVGAnimatedLength: any; SVGAnimatedLengthList: any; SVGAnimatedNumber: any; SVGAnimatedNumberList: any; SVGAnimatedPreserveAspectRatio: any; SVGAnimatedRect: any; SVGAnimatedString: any; SVGAnimatedTransformList: any; SVGAnimationElement: any; SVGCircleElement: any; SVGClipPathElement: any; SVGComponentTransferFunctionElement: any; SVGDefsElement: any; SVGDescElement: any; SVGElement: any; SVGEllipseElement: any; SVGFEBlendElement: any; SVGFEColorMatrixElement: any; SVGFEComponentTransferElement: any; SVGFECompositeElement: any; SVGFEConvolveMatrixElement: any; SVGFEDiffuseLightingElement: any; SVGFEDisplacementMapElement: any; SVGFEDistantLightElement: any; SVGFEDropShadowElement: any; SVGFEFloodElement: any; SVGFEFuncAElement: any; SVGFEFuncBElement: any; SVGFEFuncGElement: any; SVGFEFuncRElement: any; SVGFEGaussianBlurElement: any; SVGFEImageElement: any; SVGFEMergeElement: any; SVGFEMergeNodeElement: any; SVGFEMorphologyElement: any; SVGFEOffsetElement: any; SVGFEPointLightElement: any; SVGFESpecularLightingElement: any; SVGFESpotLightElement: any; SVGFETileElement: any; SVGFETurbulenceElement: any; SVGFilterElement: any; SVGForeignObjectElement: any; SVGGElement: any; SVGGeometryElement: any; SVGGradientElement: any; SVGGraphicsElement: any; SVGImageElement: any; SVGLength: any; SVGLengthList: any; SVGLineElement: any; SVGLinearGradientElement: any; SVGMPathElement: any; SVGMarkerElement: any; SVGMaskElement: any; SVGMetadataElement: any; SVGNumber: any; SVGNumberList: any; SVGPathElement: any; SVGPatternElement: any; SVGPointList: any; SVGPolygonElement: any; SVGPolylineElement: any; SVGPreserveAspectRatio: any; SVGRadialGradientElement: any; SVGRectElement: any; SVGSVGElement: any; SVGScriptElement: any; SVGSetElement: any; SVGStopElement: any; SVGStringList: any; SVGStyleElement: any; SVGSwitchElement: any; SVGSymbolElement: any; SVGTSpanElement: any; SVGTextContentElement: any; SVGTextElement: any; SVGTextPathElement: any; SVGTextPositioningElement: any; SVGTitleElement: any; SVGTransform: any; SVGTransformList: any; SVGUnitTypes: any; SVGUseElement: any; SVGViewElement: any; Screen: any; ScreenOrientation: any; ScriptProcessorNode: any; SecurityPolicyViolationEvent: any; Selection: any; ServiceWorker: any; ServiceWorkerContainer: any; ServiceWorkerRegistration: any; ShadowRoot: any; SharedWorker: any; SourceBuffer: any; SourceBufferList: any; SpeechRecognitionAlternative: any; SpeechRecognitionResult: any; SpeechRecognitionResultList: any; SpeechSynthesis: any; SpeechSynthesisErrorEvent: any; SpeechSynthesisEvent: any; SpeechSynthesisUtterance: any; SpeechSynthesisVoice: any; StaticRange: any; StereoPannerNode: any; Storage: any; StorageEvent: any; StorageManager: any; StyleSheet: any; StyleSheetList: any; SubmitEvent: any; SubtleCrypto: any; Text: any; TextDecoder: any; TextDecoderStream: any; TextEncoder: any; TextEncoderStream: any; TextMetrics: any; TextTrack: any; TextTrackCue: any; TextTrackCueList: any; TextTrackList: any; TimeRanges: any; Touch: any; TouchEvent: any; TouchList: any; TrackEvent: any; TransformStream: any; TransformStreamDefaultController: any; TransitionEvent: any; TreeWalker: any; UIEvent: any; URL: any; webkitURL: any; URLSearchParams: any; VTTCue: any; VTTRegion: any; ValidityState: any; VideoPlaybackQuality: any; VisualViewport: any; WaveShaperNode: any; WebGL2RenderingContext: any; WebGLActiveInfo: any; WebGLBuffer: any; WebGLContextEvent: any; WebGLFramebuffer: any; WebGLProgram: any; WebGLQuery: any; WebGLRenderbuffer: any; WebGLRenderingContext: any; WebGLSampler: any; WebGLShader: any; WebGLShaderPrecisionFormat: any; WebGLSync: any; WebGLTexture: any; WebGLTransformFeedback: any; WebGLUniformLocation: any; WebGLVertexArrayObject: any; WebSocket: any; WheelEvent: any; Window: any; Worker: any; Worklet: any; WritableStream: any; WritableStreamDefaultController: any; WritableStreamDefaultWriter: any; XMLDocument: any; XMLHttpRequest: any; XMLHttpRequestEventTarget: any; XMLHttpRequestUpload: any; XMLSerializer: any; XPathEvaluator: any; XPathExpression: any; XPathResult: any; XSLTProcessor: any; console: any; CSS: any; WebAssembly: any; Audio: any; Image: any; Option: any; Map: any; WeakMap: any; Set: any; WeakSet: any; Proxy: any; Reflect: any; foo: any; undefined: any; }; designMode: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; dir: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly doctype: { readonly name: any; readonly ownerDocument: any; readonly publicId: any; readonly systemId: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; after: any; before: any; remove: any; replaceWith: any; }; readonly documentElement: { accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; spellcheck: any; title: any; translate: any; attachInternals: any; click: any; addEventListener: any; removeEventListener: any; readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; }; readonly documentURI: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; domain: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly embeds: { item: any; namedItem: any; readonly length: any; }; fgColor: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly forms: { item: any; namedItem: any; readonly length: any; }; readonly fullscreen: { valueOf: any; }; readonly fullscreenEnabled: { valueOf: any; }; readonly head: { addEventListener: any; removeEventListener: any; accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; spellcheck: any; title: any; translate: any; attachInternals: any; click: any; readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; }; readonly hidden: { valueOf: any; }; readonly images: { item: any; namedItem: any; readonly length: any; }; readonly implementation: { createDocument: any; createDocumentType: any; createHTMLDocument: any; hasFeature: any; }; readonly inputEncoding: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly lastModified: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; linkColor: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly links: { item: any; namedItem: any; readonly length: any; }; location: { readonly ancestorOrigins: any; hash: any; host: any; hostname: any; href: any; toString: any; readonly origin: any; pathname: any; port: any; protocol: any; search: any; assign: any; reload: any; replace: any; }; onfullscreenchange: unknown; onfullscreenerror: unknown; onpointerlockchange: unknown; onpointerlockerror: unknown; onreadystatechange: unknown; onvisibilitychange: unknown; readonly ownerDocument: unknown; readonly pictureInPictureEnabled: { valueOf: any; }; readonly plugins: { item: any; namedItem: any; readonly length: any; }; readonly readyState: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly referrer: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly rootElement: { currentScale: any; readonly currentTranslate: any; readonly height: any; readonly width: any; readonly x: any; readonly y: any; animationsPaused: any; checkEnclosure: any; checkIntersection: any; createSVGAngle: any; createSVGLength: any; createSVGMatrix: any; createSVGNumber: any; createSVGPoint: any; createSVGRect: any; createSVGTransform: any; createSVGTransformFromMatrix: any; deselectAll: any; forceRedraw: any; getCurrentTime: any; getElementById: any; getEnclosureList: any; getIntersectionList: any; pauseAnimations: any; setCurrentTime: any; suspendRedraw: any; unpauseAnimations: any; unsuspendRedraw: any; unsuspendRedrawAll: any; addEventListener: any; removeEventListener: any; readonly transform: any; getBBox: any; getCTM: any; getScreenCTM: any; readonly className: any; readonly ownerSVGElement: any; readonly viewportElement: any; readonly attributes: any; readonly classList: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; readonly requiredExtensions: any; readonly systemLanguage: any; readonly preserveAspectRatio: any; readonly viewBox: any; onafterprint: any; onbeforeprint: any; onbeforeunload: any; ongamepadconnected: any; ongamepaddisconnected: any; onhashchange: any; onlanguagechange: any; onmessage: any; onmessageerror: any; onoffline: any; ononline: any; onpagehide: any; onpageshow: any; onpopstate: any; onrejectionhandled: any; onstorage: any; onunhandledrejection: any; onunload: any; }; readonly scripts: { item: any; namedItem: any; readonly length: any; }; readonly scrollingElement: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly timeline: { readonly currentTime: any; }; title: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly visibilityState: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; vlinkColor: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; adoptNode: unknown; captureEvents: unknown; caretRangeFromPoint: unknown; clear: unknown; close: unknown; createAttribute: unknown; createAttributeNS: unknown; createCDATASection: unknown; createComment: unknown; createDocumentFragment: unknown; createElement: unknown; createElementNS: unknown; createEvent: unknown; createNodeIterator: unknown; createProcessingInstruction: unknown; createRange: unknown; createTextNode: unknown; createTreeWalker: unknown; execCommand: unknown; exitFullscreen: unknown; exitPictureInPicture: unknown; exitPointerLock: unknown; getElementById: unknown; getElementsByClassName: unknown; getElementsByName: unknown; getElementsByTagName: unknown; getElementsByTagNameNS: unknown; getSelection: unknown; hasFocus: unknown; hasStorageAccess: unknown; importNode: unknown; open: unknown; queryCommandEnabled: unknown; queryCommandIndeterm: unknown; queryCommandState: unknown; queryCommandSupported: unknown; queryCommandValue: unknown; releaseEvents: unknown; requestStorageAccess: unknown; write: unknown; writeln: unknown; addEventListener: unknown; removeEventListener: unknown; readonly baseURI: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly childNodes: { item: any; forEach: any; readonly length: any; }; readonly firstChild: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly isConnected: { valueOf: any; }; readonly lastChild: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly nextSibling: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly nodeName: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly nodeType: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; nodeValue: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly parentElement: { accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; spellcheck: any; title: any; translate: any; attachInternals: any; click: any; addEventListener: any; removeEventListener: any; readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; }; readonly parentNode: { readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly previousSibling: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; textContent: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; appendChild: unknown; cloneNode: unknown; compareDocumentPosition: unknown; contains: unknown; getRootNode: unknown; hasChildNodes: unknown; insertBefore: unknown; isDefaultNamespace: unknown; isEqualNode: unknown; isSameNode: unknown; lookupNamespaceURI: unknown; lookupPrefix: unknown; normalize: unknown; removeChild: unknown; replaceChild: unknown; readonly ATTRIBUTE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly CDATA_SECTION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly COMMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_FRAGMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_CONTAINED_BY: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_CONTAINS: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_DISCONNECTED: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_FOLLOWING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_PRECEDING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_TYPE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ELEMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ENTITY_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ENTITY_REFERENCE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly NOTATION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly PROCESSING_INSTRUCTION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly TEXT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; dispatchEvent: unknown; oncopy: unknown; oncut: unknown; onpaste: unknown; readonly activeElement: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly fullscreenElement: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly pictureInPictureElement: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly pointerLockElement: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly styleSheets: { readonly length: any; item: any; }; elementFromPoint: unknown; elementsFromPoint: unknown; getAnimations: unknown; readonly fonts: { onloading: any; onloadingdone: any; onloadingerror: any; readonly ready: any; readonly status: any; check: any; load: any; forEach: any; addEventListener: any; removeEventListener: any; dispatchEvent: any; }; onabort: unknown; onanimationcancel: unknown; onanimationend: unknown; onanimationiteration: unknown; onanimationstart: unknown; onauxclick: unknown; onblur: unknown; oncanplay: unknown; oncanplaythrough: unknown; onchange: unknown; onclick: unknown; onclose: unknown; oncontextmenu: unknown; oncuechange: unknown; ondblclick: unknown; ondrag: unknown; ondragend: unknown; ondragenter: unknown; ondragleave: unknown; ondragover: unknown; ondragstart: unknown; ondrop: unknown; ondurationchange: unknown; onemptied: unknown; onended: unknown; onerror: unknown; onfocus: unknown; onformdata: unknown; ongotpointercapture: unknown; oninput: unknown; oninvalid: unknown; onkeydown: unknown; onkeypress: unknown; onkeyup: unknown; onload: unknown; onloadeddata: unknown; onloadedmetadata: unknown; onloadstart: unknown; onlostpointercapture: unknown; onmousedown: unknown; onmouseenter: unknown; onmouseleave: unknown; onmousemove: unknown; onmouseout: unknown; onmouseover: unknown; onmouseup: unknown; onpause: unknown; onplay: unknown; onplaying: unknown; onpointercancel: unknown; onpointerdown: unknown; onpointerenter: unknown; onpointerleave: unknown; onpointermove: unknown; onpointerout: unknown; onpointerover: unknown; onpointerup: unknown; onprogress: unknown; onratechange: unknown; onreset: unknown; onresize: unknown; onscroll: unknown; onsecuritypolicyviolation: unknown; onseeked: unknown; onseeking: unknown; onselect: unknown; onselectionchange: unknown; onselectstart: unknown; onslotchange: unknown; onstalled: unknown; onsubmit: unknown; onsuspend: unknown; ontimeupdate: unknown; ontoggle: unknown; ontouchcancel?: unknown; ontouchend?: unknown; ontouchmove?: unknown; ontouchstart?: unknown; ontransitioncancel: unknown; ontransitionend: unknown; ontransitionrun: unknown; ontransitionstart: unknown; onvolumechange: unknown; onwaiting: unknown; onwebkitanimationend: unknown; onwebkitanimationiteration: unknown; onwebkitanimationstart: unknown; onwebkittransitionend: unknown; onwheel: unknown; readonly childElementCount: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly children: { namedItem: any; readonly length: any; item: any; }; readonly firstElementChild: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly lastElementChild: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; append: unknown; prepend: unknown; querySelector: unknown; querySelectorAll: unknown; replaceChildren: unknown; createExpression: unknown; createNSResolver: unknown; evaluate: unknown; } +>out2 : { onreadystatechange: unknown; readonly readyState: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly response: unknown; readonly responseText: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; responseType: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly responseURL: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly responseXML: { readonly URL: any; alinkColor: any; readonly all: any; readonly anchors: any; readonly applets: any; bgColor: any; body: any; readonly characterSet: any; readonly charset: any; readonly compatMode: any; readonly contentType: any; cookie: any; readonly currentScript: any; readonly defaultView: any; designMode: any; dir: any; readonly doctype: any; readonly documentElement: any; readonly documentURI: any; domain: any; readonly embeds: any; fgColor: any; readonly forms: any; readonly fullscreen: any; readonly fullscreenEnabled: any; readonly head: any; readonly hidden: any; readonly images: any; readonly implementation: any; readonly inputEncoding: any; readonly lastModified: any; linkColor: any; readonly links: any; location: any; onfullscreenchange: any; onfullscreenerror: any; onpointerlockchange: any; onpointerlockerror: any; onreadystatechange: any; onvisibilitychange: any; readonly ownerDocument: any; readonly pictureInPictureEnabled: any; readonly plugins: any; readonly readyState: any; readonly referrer: any; readonly rootElement: any; readonly scripts: any; readonly scrollingElement: any; readonly timeline: any; title: any; readonly visibilityState: any; vlinkColor: any; adoptNode: any; captureEvents: any; caretRangeFromPoint: any; clear: any; close: any; createAttribute: any; createAttributeNS: any; createCDATASection: any; createComment: any; createDocumentFragment: any; createElement: any; createElementNS: any; createEvent: any; createNodeIterator: any; createProcessingInstruction: any; createRange: any; createTextNode: any; createTreeWalker: any; execCommand: any; exitFullscreen: any; exitPictureInPicture: any; exitPointerLock: any; getElementById: any; getElementsByClassName: any; getElementsByName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getSelection: any; hasFocus: any; hasStorageAccess: any; importNode: any; open: any; queryCommandEnabled: any; queryCommandIndeterm: any; queryCommandState: any; queryCommandSupported: any; queryCommandValue: any; releaseEvents: any; requestStorageAccess: any; write: any; writeln: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; oncopy: any; oncut: any; onpaste: any; readonly activeElement: any; readonly fullscreenElement: any; readonly pictureInPictureElement: any; readonly pointerLockElement: any; readonly styleSheets: any; elementFromPoint: any; elementsFromPoint: any; getAnimations: any; readonly fonts: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; createExpression: any; createNSResolver: any; evaluate: any; }; readonly status: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly statusText: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; timeout: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly upload: { addEventListener: any; removeEventListener: any; onabort: any; onerror: any; onload: any; onloadend: any; onloadstart: any; onprogress: any; ontimeout: any; dispatchEvent: any; }; withCredentials: { valueOf: any; }; abort: unknown; getAllResponseHeaders: unknown; getResponseHeader: unknown; open: unknown; overrideMimeType: unknown; send: unknown; setRequestHeader: unknown; readonly DONE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly HEADERS_RECEIVED: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly LOADING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly OPENED: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly UNSENT: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; addEventListener: unknown; removeEventListener: unknown; onabort: unknown; onerror: unknown; onload: unknown; onloadend: unknown; onloadstart: unknown; onprogress: unknown; ontimeout: unknown; dispatchEvent: unknown; } +>responseXML : { readonly URL: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; alinkColor: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly all: { readonly length: any; item: any; namedItem: any; }; readonly anchors: { item: any; namedItem: any; readonly length: any; }; readonly applets: { namedItem: any; readonly length: any; item: any; }; bgColor: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; body: { accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; spellcheck: any; title: any; translate: any; attachInternals: any; click: any; addEventListener: any; removeEventListener: any; readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; }; readonly characterSet: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly charset: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly compatMode: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly contentType: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; cookie: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly currentScript: { async: any; charset: any; crossOrigin: any; defer: any; event: any; htmlFor: any; integrity: any; noModule: any; referrerPolicy: any; src: any; text: any; type: any; addEventListener: any; removeEventListener: any; accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; spellcheck: any; title: any; translate: any; attachInternals: any; click: any; readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; } | { type: any; addEventListener: any; removeEventListener: any; readonly className: any; readonly ownerSVGElement: any; readonly viewportElement: any; readonly attributes: any; readonly classList: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; readonly href: any; }; readonly defaultView: { clientInformation: any; closed: any; customElements: any; devicePixelRatio: any; document: any; event: any; external: any; frameElement: any; frames: any; history: any; innerHeight: any; innerWidth: any; length: any; location: any; locationbar: any; menubar: any; name: any; navigator: any; ondevicemotion: any; ondeviceorientation: any; onorientationchange: any; opener: any; orientation: any; outerHeight: any; outerWidth: any; pageXOffset: any; pageYOffset: any; parent: any; personalbar: any; screen: any; screenLeft: any; screenTop: any; screenX: any; screenY: any; scrollX: any; scrollY: any; scrollbars: any; self: any; speechSynthesis: any; status: any; statusbar: any; toolbar: any; top: any; visualViewport: any; window: any; alert: any; blur: any; cancelIdleCallback: any; captureEvents: any; close: any; confirm: any; focus: any; getComputedStyle: any; getSelection: any; matchMedia: any; moveBy: any; moveTo: any; open: any; postMessage: any; print: any; prompt: any; releaseEvents: any; requestIdleCallback: any; resizeBy: any; resizeTo: any; scroll: any; scrollBy: any; scrollTo: any; stop: any; addEventListener: any; removeEventListener: any; dispatchEvent: any; cancelAnimationFrame: any; requestAnimationFrame: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel: any; ontouchend: any; ontouchmove: any; ontouchstart: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; onafterprint: any; onbeforeprint: any; onbeforeunload: any; ongamepadconnected: any; ongamepaddisconnected: any; onhashchange: any; onlanguagechange: any; onmessage: any; onmessageerror: any; onoffline: any; ononline: any; onpagehide: any; onpageshow: any; onpopstate: any; onrejectionhandled: any; onstorage: any; onunhandledrejection: any; onunload: any; localStorage: any; caches: any; crossOriginIsolated: any; crypto: any; indexedDB: any; isSecureContext: any; origin: any; performance: any; atob: any; btoa: any; clearInterval: any; clearTimeout: any; createImageBitmap: any; fetch: any; queueMicrotask: any; reportError: any; setInterval: any; setTimeout: any; sessionStorage: any; readonly globalThis: any; eval: any; parseInt: any; parseFloat: any; isNaN: any; isFinite: any; decodeURI: any; decodeURIComponent: any; encodeURI: any; encodeURIComponent: any; escape: any; unescape: any; NaN: any; Infinity: any; Symbol: any; Object: any; Function: any; String: any; Boolean: any; Number: any; Math: any; Date: any; RegExp: any; Error: any; EvalError: any; RangeError: any; ReferenceError: any; SyntaxError: any; TypeError: any; URIError: any; JSON: any; Array: any; Promise: any; ArrayBuffer: any; DataView: any; Int8Array: any; Uint8Array: any; Uint8ClampedArray: any; Int16Array: any; Uint16Array: any; Int32Array: any; Uint32Array: any; Float32Array: any; Float64Array: any; Intl: any; toString: any; NodeFilter: any; AbortController: any; AbortSignal: any; AbstractRange: any; AnalyserNode: any; Animation: any; AnimationEffect: any; AnimationEvent: any; AnimationPlaybackEvent: any; AnimationTimeline: any; Attr: any; AudioBuffer: any; AudioBufferSourceNode: any; AudioContext: any; AudioDestinationNode: any; AudioListener: any; AudioNode: any; AudioParam: any; AudioParamMap: any; AudioProcessingEvent: any; AudioScheduledSourceNode: any; AudioWorklet: any; AudioWorkletNode: any; AuthenticatorAssertionResponse: any; AuthenticatorAttestationResponse: any; AuthenticatorResponse: any; BarProp: any; BaseAudioContext: any; BeforeUnloadEvent: any; BiquadFilterNode: any; Blob: any; BlobEvent: any; BroadcastChannel: any; ByteLengthQueuingStrategy: any; CDATASection: any; CSSAnimation: any; CSSConditionRule: any; CSSCounterStyleRule: any; CSSFontFaceRule: any; CSSGroupingRule: any; CSSImportRule: any; CSSKeyframeRule: any; CSSKeyframesRule: any; CSSMediaRule: any; CSSNamespaceRule: any; CSSPageRule: any; CSSRule: any; CSSRuleList: any; CSSStyleDeclaration: any; CSSStyleRule: any; CSSStyleSheet: any; CSSSupportsRule: any; CSSTransition: any; Cache: any; CacheStorage: any; CanvasCaptureMediaStreamTrack: any; CanvasGradient: any; CanvasPattern: any; CanvasRenderingContext2D: any; ChannelMergerNode: any; ChannelSplitterNode: any; CharacterData: any; Clipboard: any; ClipboardEvent: any; ClipboardItem: any; CloseEvent: any; Comment: any; CompositionEvent: any; ConstantSourceNode: any; ConvolverNode: any; CountQueuingStrategy: any; Credential: any; CredentialsContainer: any; Crypto: any; CryptoKey: any; CustomElementRegistry: any; CustomEvent: any; DOMException: any; DOMImplementation: any; DOMMatrix: any; SVGMatrix: any; WebKitCSSMatrix: any; DOMMatrixReadOnly: any; DOMParser: any; DOMPoint: any; SVGPoint: any; DOMPointReadOnly: any; DOMQuad: any; DOMRect: any; SVGRect: any; DOMRectList: any; DOMRectReadOnly: any; DOMStringList: any; DOMStringMap: any; DOMTokenList: any; DataTransfer: any; DataTransferItem: any; DataTransferItemList: any; DelayNode: any; DeviceMotionEvent: any; DeviceOrientationEvent: any; Document: any; DocumentFragment: any; DocumentTimeline: any; DocumentType: any; DragEvent: any; DynamicsCompressorNode: any; Element: any; ElementInternals: any; ErrorEvent: any; Event: any; EventSource: any; EventTarget: any; External: any; File: any; FileList: any; FileReader: any; FileSystem: any; FileSystemDirectoryEntry: any; FileSystemDirectoryHandle: any; FileSystemDirectoryReader: any; FileSystemEntry: any; FileSystemFileEntry: any; FileSystemFileHandle: any; FileSystemHandle: any; FocusEvent: any; FontFace: any; FontFaceSet: any; FontFaceSetLoadEvent: any; FormData: any; FormDataEvent: any; GainNode: any; Gamepad: any; GamepadButton: any; GamepadEvent: any; GamepadHapticActuator: any; Geolocation: any; GeolocationCoordinates: any; GeolocationPosition: any; GeolocationPositionError: any; HTMLAllCollection: any; HTMLAnchorElement: any; HTMLAreaElement: any; HTMLAudioElement: any; HTMLBRElement: any; HTMLBaseElement: any; HTMLBodyElement: any; HTMLButtonElement: any; HTMLCanvasElement: any; HTMLCollection: any; HTMLDListElement: any; HTMLDataElement: any; HTMLDataListElement: any; HTMLDetailsElement: any; HTMLDirectoryElement: any; HTMLDivElement: any; HTMLDocument: any; HTMLElement: any; HTMLEmbedElement: any; HTMLFieldSetElement: any; HTMLFontElement: any; HTMLFormControlsCollection: any; HTMLFormElement: any; HTMLFrameElement: any; HTMLFrameSetElement: any; HTMLHRElement: any; HTMLHeadElement: any; HTMLHeadingElement: any; HTMLHtmlElement: any; HTMLIFrameElement: any; HTMLImageElement: any; HTMLInputElement: any; HTMLLIElement: any; HTMLLabelElement: any; HTMLLegendElement: any; HTMLLinkElement: any; HTMLMapElement: any; HTMLMarqueeElement: any; HTMLMediaElement: any; HTMLMenuElement: any; HTMLMetaElement: any; HTMLMeterElement: any; HTMLModElement: any; HTMLOListElement: any; HTMLObjectElement: any; HTMLOptGroupElement: any; HTMLOptionElement: any; HTMLOptionsCollection: any; HTMLOutputElement: any; HTMLParagraphElement: any; HTMLParamElement: any; HTMLPictureElement: any; HTMLPreElement: any; HTMLProgressElement: any; HTMLQuoteElement: any; HTMLScriptElement: any; HTMLSelectElement: any; HTMLSlotElement: any; HTMLSourceElement: any; HTMLSpanElement: any; HTMLStyleElement: any; HTMLTableCaptionElement: any; HTMLTableCellElement: any; HTMLTableColElement: any; HTMLTableElement: any; HTMLTableRowElement: any; HTMLTableSectionElement: any; HTMLTemplateElement: any; HTMLTextAreaElement: any; HTMLTimeElement: any; HTMLTitleElement: any; HTMLTrackElement: any; HTMLUListElement: any; HTMLUnknownElement: any; HTMLVideoElement: any; HashChangeEvent: any; Headers: any; History: any; IDBCursor: any; IDBCursorWithValue: any; IDBDatabase: any; IDBFactory: any; IDBIndex: any; IDBKeyRange: any; IDBObjectStore: any; IDBOpenDBRequest: any; IDBRequest: any; IDBTransaction: any; IDBVersionChangeEvent: any; IIRFilterNode: any; IdleDeadline: any; ImageBitmap: any; ImageBitmapRenderingContext: any; ImageData: any; InputDeviceInfo: any; InputEvent: any; IntersectionObserver: any; IntersectionObserverEntry: any; KeyboardEvent: any; KeyframeEffect: any; Location: any; Lock: any; LockManager: any; MathMLElement: any; MediaCapabilities: any; MediaDeviceInfo: any; MediaDevices: any; MediaElementAudioSourceNode: any; MediaEncryptedEvent: any; MediaError: any; MediaKeyMessageEvent: any; MediaKeySession: any; MediaKeyStatusMap: any; MediaKeySystemAccess: any; MediaKeys: any; MediaList: any; MediaMetadata: any; MediaQueryList: any; MediaQueryListEvent: any; MediaRecorder: any; MediaRecorderErrorEvent: any; MediaSession: any; MediaSource: any; MediaStream: any; MediaStreamAudioDestinationNode: any; MediaStreamAudioSourceNode: any; MediaStreamTrack: any; MediaStreamTrackEvent: any; MessageChannel: any; MessageEvent: any; MessagePort: any; MimeType: any; MimeTypeArray: any; MouseEvent: any; MutationEvent: any; MutationObserver: any; MutationRecord: any; NamedNodeMap: any; Navigator: any; NetworkInformation: any; Node: any; NodeIterator: any; NodeList: any; Notification: any; OfflineAudioCompletionEvent: any; OfflineAudioContext: any; OscillatorNode: any; OverconstrainedError: any; PageTransitionEvent: any; PannerNode: any; Path2D: any; PaymentMethodChangeEvent: any; PaymentRequest: any; PaymentRequestUpdateEvent: any; PaymentResponse: any; Performance: any; PerformanceEntry: any; PerformanceEventTiming: any; PerformanceMark: any; PerformanceMeasure: any; PerformanceNavigation: any; PerformanceNavigationTiming: any; PerformanceObserver: any; PerformanceObserverEntryList: any; PerformancePaintTiming: any; PerformanceResourceTiming: any; PerformanceServerTiming: any; PerformanceTiming: any; PeriodicWave: any; PermissionStatus: any; Permissions: any; PictureInPictureWindow: any; Plugin: any; PluginArray: any; PointerEvent: any; PopStateEvent: any; ProcessingInstruction: any; ProgressEvent: any; PromiseRejectionEvent: any; PublicKeyCredential: any; PushManager: any; PushSubscription: any; PushSubscriptionOptions: any; RTCCertificate: any; RTCDTMFSender: any; RTCDTMFToneChangeEvent: any; RTCDataChannel: any; RTCDataChannelEvent: any; RTCDtlsTransport: any; RTCIceCandidate: any; RTCIceTransport: any; RTCPeerConnection: any; RTCPeerConnectionIceErrorEvent: any; RTCPeerConnectionIceEvent: any; RTCRtpReceiver: any; RTCRtpSender: any; RTCRtpTransceiver: any; RTCSessionDescription: any; RTCStatsReport: any; RTCTrackEvent: any; RadioNodeList: any; Range: any; ReadableStream: any; ReadableStreamDefaultController: any; ReadableStreamDefaultReader: any; RemotePlayback: any; Request: any; ResizeObserver: any; ResizeObserverEntry: any; ResizeObserverSize: any; Response: any; SVGAElement: any; SVGAngle: any; SVGAnimateElement: any; SVGAnimateMotionElement: any; SVGAnimateTransformElement: any; SVGAnimatedAngle: any; SVGAnimatedBoolean: any; SVGAnimatedEnumeration: any; SVGAnimatedInteger: any; SVGAnimatedLength: any; SVGAnimatedLengthList: any; SVGAnimatedNumber: any; SVGAnimatedNumberList: any; SVGAnimatedPreserveAspectRatio: any; SVGAnimatedRect: any; SVGAnimatedString: any; SVGAnimatedTransformList: any; SVGAnimationElement: any; SVGCircleElement: any; SVGClipPathElement: any; SVGComponentTransferFunctionElement: any; SVGDefsElement: any; SVGDescElement: any; SVGElement: any; SVGEllipseElement: any; SVGFEBlendElement: any; SVGFEColorMatrixElement: any; SVGFEComponentTransferElement: any; SVGFECompositeElement: any; SVGFEConvolveMatrixElement: any; SVGFEDiffuseLightingElement: any; SVGFEDisplacementMapElement: any; SVGFEDistantLightElement: any; SVGFEDropShadowElement: any; SVGFEFloodElement: any; SVGFEFuncAElement: any; SVGFEFuncBElement: any; SVGFEFuncGElement: any; SVGFEFuncRElement: any; SVGFEGaussianBlurElement: any; SVGFEImageElement: any; SVGFEMergeElement: any; SVGFEMergeNodeElement: any; SVGFEMorphologyElement: any; SVGFEOffsetElement: any; SVGFEPointLightElement: any; SVGFESpecularLightingElement: any; SVGFESpotLightElement: any; SVGFETileElement: any; SVGFETurbulenceElement: any; SVGFilterElement: any; SVGForeignObjectElement: any; SVGGElement: any; SVGGeometryElement: any; SVGGradientElement: any; SVGGraphicsElement: any; SVGImageElement: any; SVGLength: any; SVGLengthList: any; SVGLineElement: any; SVGLinearGradientElement: any; SVGMPathElement: any; SVGMarkerElement: any; SVGMaskElement: any; SVGMetadataElement: any; SVGNumber: any; SVGNumberList: any; SVGPathElement: any; SVGPatternElement: any; SVGPointList: any; SVGPolygonElement: any; SVGPolylineElement: any; SVGPreserveAspectRatio: any; SVGRadialGradientElement: any; SVGRectElement: any; SVGSVGElement: any; SVGScriptElement: any; SVGSetElement: any; SVGStopElement: any; SVGStringList: any; SVGStyleElement: any; SVGSwitchElement: any; SVGSymbolElement: any; SVGTSpanElement: any; SVGTextContentElement: any; SVGTextElement: any; SVGTextPathElement: any; SVGTextPositioningElement: any; SVGTitleElement: any; SVGTransform: any; SVGTransformList: any; SVGUnitTypes: any; SVGUseElement: any; SVGViewElement: any; Screen: any; ScreenOrientation: any; ScriptProcessorNode: any; SecurityPolicyViolationEvent: any; Selection: any; ServiceWorker: any; ServiceWorkerContainer: any; ServiceWorkerRegistration: any; ShadowRoot: any; SharedWorker: any; SourceBuffer: any; SourceBufferList: any; SpeechRecognitionAlternative: any; SpeechRecognitionResult: any; SpeechRecognitionResultList: any; SpeechSynthesis: any; SpeechSynthesisErrorEvent: any; SpeechSynthesisEvent: any; SpeechSynthesisUtterance: any; SpeechSynthesisVoice: any; StaticRange: any; StereoPannerNode: any; Storage: any; StorageEvent: any; StorageManager: any; StyleSheet: any; StyleSheetList: any; SubmitEvent: any; SubtleCrypto: any; Text: any; TextDecoder: any; TextDecoderStream: any; TextEncoder: any; TextEncoderStream: any; TextMetrics: any; TextTrack: any; TextTrackCue: any; TextTrackCueList: any; TextTrackList: any; TimeRanges: any; Touch: any; TouchEvent: any; TouchList: any; TrackEvent: any; TransformStream: any; TransformStreamDefaultController: any; TransitionEvent: any; TreeWalker: any; UIEvent: any; URL: any; webkitURL: any; URLSearchParams: any; VTTCue: any; VTTRegion: any; ValidityState: any; VideoPlaybackQuality: any; VisualViewport: any; WaveShaperNode: any; WebGL2RenderingContext: any; WebGLActiveInfo: any; WebGLBuffer: any; WebGLContextEvent: any; WebGLFramebuffer: any; WebGLProgram: any; WebGLQuery: any; WebGLRenderbuffer: any; WebGLRenderingContext: any; WebGLSampler: any; WebGLShader: any; WebGLShaderPrecisionFormat: any; WebGLSync: any; WebGLTexture: any; WebGLTransformFeedback: any; WebGLUniformLocation: any; WebGLVertexArrayObject: any; WebSocket: any; WheelEvent: any; Window: any; Worker: any; Worklet: any; WritableStream: any; WritableStreamDefaultController: any; WritableStreamDefaultWriter: any; XMLDocument: any; XMLHttpRequest: any; XMLHttpRequestEventTarget: any; XMLHttpRequestUpload: any; XMLSerializer: any; XPathEvaluator: any; XPathExpression: any; XPathResult: any; XSLTProcessor: any; console: any; CSS: any; WebAssembly: any; Audio: any; Image: any; Option: any; Map: any; WeakMap: any; Set: any; WeakSet: any; Proxy: any; Reflect: any; foo: any; undefined: any; }; designMode: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; dir: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly doctype: { readonly name: any; readonly ownerDocument: any; readonly publicId: any; readonly systemId: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; after: any; before: any; remove: any; replaceWith: any; }; readonly documentElement: { accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; spellcheck: any; title: any; translate: any; attachInternals: any; click: any; addEventListener: any; removeEventListener: any; readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; }; readonly documentURI: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; domain: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly embeds: { item: any; namedItem: any; readonly length: any; }; fgColor: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly forms: { item: any; namedItem: any; readonly length: any; }; readonly fullscreen: { valueOf: any; }; readonly fullscreenEnabled: { valueOf: any; }; readonly head: { addEventListener: any; removeEventListener: any; accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; spellcheck: any; title: any; translate: any; attachInternals: any; click: any; readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; }; readonly hidden: { valueOf: any; }; readonly images: { item: any; namedItem: any; readonly length: any; }; readonly implementation: { createDocument: any; createDocumentType: any; createHTMLDocument: any; hasFeature: any; }; readonly inputEncoding: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly lastModified: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; linkColor: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly links: { item: any; namedItem: any; readonly length: any; }; location: { readonly ancestorOrigins: any; hash: any; host: any; hostname: any; href: any; toString: any; readonly origin: any; pathname: any; port: any; protocol: any; search: any; assign: any; reload: any; replace: any; }; onfullscreenchange: unknown; onfullscreenerror: unknown; onpointerlockchange: unknown; onpointerlockerror: unknown; onreadystatechange: unknown; onvisibilitychange: unknown; readonly ownerDocument: unknown; readonly pictureInPictureEnabled: { valueOf: any; }; readonly plugins: { item: any; namedItem: any; readonly length: any; }; readonly readyState: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly referrer: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly rootElement: { currentScale: any; readonly currentTranslate: any; readonly height: any; readonly width: any; readonly x: any; readonly y: any; animationsPaused: any; checkEnclosure: any; checkIntersection: any; createSVGAngle: any; createSVGLength: any; createSVGMatrix: any; createSVGNumber: any; createSVGPoint: any; createSVGRect: any; createSVGTransform: any; createSVGTransformFromMatrix: any; deselectAll: any; forceRedraw: any; getCurrentTime: any; getElementById: any; getEnclosureList: any; getIntersectionList: any; pauseAnimations: any; setCurrentTime: any; suspendRedraw: any; unpauseAnimations: any; unsuspendRedraw: any; unsuspendRedrawAll: any; addEventListener: any; removeEventListener: any; readonly transform: any; getBBox: any; getCTM: any; getScreenCTM: any; readonly className: any; readonly ownerSVGElement: any; readonly viewportElement: any; readonly attributes: any; readonly classList: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; readonly requiredExtensions: any; readonly systemLanguage: any; readonly preserveAspectRatio: any; readonly viewBox: any; onafterprint: any; onbeforeprint: any; onbeforeunload: any; ongamepadconnected: any; ongamepaddisconnected: any; onhashchange: any; onlanguagechange: any; onmessage: any; onmessageerror: any; onoffline: any; ononline: any; onpagehide: any; onpageshow: any; onpopstate: any; onrejectionhandled: any; onstorage: any; onunhandledrejection: any; onunload: any; }; readonly scripts: { item: any; namedItem: any; readonly length: any; }; readonly scrollingElement: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly timeline: { readonly currentTime: any; }; title: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly visibilityState: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; vlinkColor: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; adoptNode: unknown; captureEvents: unknown; caretRangeFromPoint: unknown; clear: unknown; close: unknown; createAttribute: unknown; createAttributeNS: unknown; createCDATASection: unknown; createComment: unknown; createDocumentFragment: unknown; createElement: unknown; createElementNS: unknown; createEvent: unknown; createNodeIterator: unknown; createProcessingInstruction: unknown; createRange: unknown; createTextNode: unknown; createTreeWalker: unknown; execCommand: unknown; exitFullscreen: unknown; exitPictureInPicture: unknown; exitPointerLock: unknown; getElementById: unknown; getElementsByClassName: unknown; getElementsByName: unknown; getElementsByTagName: unknown; getElementsByTagNameNS: unknown; getSelection: unknown; hasFocus: unknown; hasStorageAccess: unknown; importNode: unknown; open: unknown; queryCommandEnabled: unknown; queryCommandIndeterm: unknown; queryCommandState: unknown; queryCommandSupported: unknown; queryCommandValue: unknown; releaseEvents: unknown; requestStorageAccess: unknown; write: unknown; writeln: unknown; addEventListener: unknown; removeEventListener: unknown; readonly baseURI: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly childNodes: { item: any; forEach: any; readonly length: any; }; readonly firstChild: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly isConnected: { valueOf: any; }; readonly lastChild: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly nextSibling: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly nodeName: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly nodeType: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; nodeValue: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly parentElement: { accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; spellcheck: any; title: any; translate: any; attachInternals: any; click: any; addEventListener: any; removeEventListener: any; readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; }; readonly parentNode: { readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly previousSibling: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; textContent: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; appendChild: unknown; cloneNode: unknown; compareDocumentPosition: unknown; contains: unknown; getRootNode: unknown; hasChildNodes: unknown; insertBefore: unknown; isDefaultNamespace: unknown; isEqualNode: unknown; isSameNode: unknown; lookupNamespaceURI: unknown; lookupPrefix: unknown; normalize: unknown; removeChild: unknown; replaceChild: unknown; readonly ATTRIBUTE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly CDATA_SECTION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly COMMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_FRAGMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_CONTAINED_BY: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_CONTAINS: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_DISCONNECTED: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_FOLLOWING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_PRECEDING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_TYPE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ELEMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ENTITY_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ENTITY_REFERENCE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly NOTATION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly PROCESSING_INSTRUCTION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly TEXT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; dispatchEvent: unknown; oncopy: unknown; oncut: unknown; onpaste: unknown; readonly activeElement: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly fullscreenElement: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly pictureInPictureElement: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly pointerLockElement: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly styleSheets: { readonly length: any; item: any; }; elementFromPoint: unknown; elementsFromPoint: unknown; getAnimations: unknown; readonly fonts: { onloading: any; onloadingdone: any; onloadingerror: any; readonly ready: any; readonly status: any; check: any; load: any; forEach: any; addEventListener: any; removeEventListener: any; dispatchEvent: any; }; onabort: unknown; onanimationcancel: unknown; onanimationend: unknown; onanimationiteration: unknown; onanimationstart: unknown; onauxclick: unknown; onblur: unknown; oncanplay: unknown; oncanplaythrough: unknown; onchange: unknown; onclick: unknown; onclose: unknown; oncontextmenu: unknown; oncuechange: unknown; ondblclick: unknown; ondrag: unknown; ondragend: unknown; ondragenter: unknown; ondragleave: unknown; ondragover: unknown; ondragstart: unknown; ondrop: unknown; ondurationchange: unknown; onemptied: unknown; onended: unknown; onerror: unknown; onfocus: unknown; onformdata: unknown; ongotpointercapture: unknown; oninput: unknown; oninvalid: unknown; onkeydown: unknown; onkeypress: unknown; onkeyup: unknown; onload: unknown; onloadeddata: unknown; onloadedmetadata: unknown; onloadstart: unknown; onlostpointercapture: unknown; onmousedown: unknown; onmouseenter: unknown; onmouseleave: unknown; onmousemove: unknown; onmouseout: unknown; onmouseover: unknown; onmouseup: unknown; onpause: unknown; onplay: unknown; onplaying: unknown; onpointercancel: unknown; onpointerdown: unknown; onpointerenter: unknown; onpointerleave: unknown; onpointermove: unknown; onpointerout: unknown; onpointerover: unknown; onpointerup: unknown; onprogress: unknown; onratechange: unknown; onreset: unknown; onresize: unknown; onscroll: unknown; onsecuritypolicyviolation: unknown; onseeked: unknown; onseeking: unknown; onselect: unknown; onselectionchange: unknown; onselectstart: unknown; onslotchange: unknown; onstalled: unknown; onsubmit: unknown; onsuspend: unknown; ontimeupdate: unknown; ontoggle: unknown; ontouchcancel?: unknown; ontouchend?: unknown; ontouchmove?: unknown; ontouchstart?: unknown; ontransitioncancel: unknown; ontransitionend: unknown; ontransitionrun: unknown; ontransitionstart: unknown; onvolumechange: unknown; onwaiting: unknown; onwebkitanimationend: unknown; onwebkitanimationiteration: unknown; onwebkitanimationstart: unknown; onwebkittransitionend: unknown; onwheel: unknown; readonly childElementCount: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly children: { namedItem: any; readonly length: any; item: any; }; readonly firstElementChild: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly lastElementChild: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; append: unknown; prepend: unknown; querySelector: unknown; querySelectorAll: unknown; replaceChildren: unknown; createExpression: unknown; createNSResolver: unknown; evaluate: unknown; } out2.responseXML.activeElement.className.length >out2.responseXML.activeElement.className.length : { toString: unknown; toFixed: unknown; toExponential: unknown; toPrecision: unknown; valueOf: unknown; toLocaleString: unknown; } >out2.responseXML.activeElement.className : { toString: unknown; charAt: unknown; charCodeAt: unknown; concat: unknown; indexOf: unknown; lastIndexOf: unknown; localeCompare: unknown; match: unknown; replace: unknown; search: unknown; slice: unknown; split: unknown; substring: unknown; toLowerCase: unknown; toLocaleLowerCase: unknown; toUpperCase: unknown; toLocaleUpperCase: unknown; trim: unknown; readonly length: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; substr: unknown; valueOf: unknown; codePointAt: unknown; includes: unknown; endsWith: unknown; normalize: unknown; repeat: unknown; startsWith: unknown; anchor: unknown; big: unknown; blink: unknown; bold: unknown; fixed: unknown; fontcolor: unknown; fontsize: unknown; italics: unknown; link: unknown; small: unknown; strike: unknown; sub: unknown; sup: unknown; [Symbol.iterator]: unknown; } ->out2.responseXML.activeElement : { readonly attributes: { readonly length: any; getNamedItem: any; getNamedItemNS: any; item: any; removeNamedItem: any; removeNamedItemNS: any; setNamedItem: any; setNamedItemNS: any; }; readonly classList: { readonly length: any; value: any; toString: any; add: any; contains: any; item: any; remove: any; replace: any; supports: any; toggle: any; forEach: any; }; className: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly clientHeight: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly clientLeft: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly clientTop: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly clientWidth: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; id: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly localName: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly namespaceURI: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; onfullscreenchange: unknown; onfullscreenerror: unknown; outerHTML: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly ownerDocument: { readonly URL: any; alinkColor: any; readonly all: any; readonly anchors: any; readonly applets: any; bgColor: any; body: any; readonly characterSet: any; readonly charset: any; readonly compatMode: any; readonly contentType: any; cookie: any; readonly currentScript: any; readonly defaultView: any; designMode: any; dir: any; readonly doctype: any; readonly documentElement: any; readonly documentURI: any; domain: any; readonly embeds: any; fgColor: any; readonly forms: any; readonly fullscreen: any; readonly fullscreenEnabled: any; readonly head: any; readonly hidden: any; readonly images: any; readonly implementation: any; readonly inputEncoding: any; readonly lastModified: any; linkColor: any; readonly links: any; location: any; onfullscreenchange: any; onfullscreenerror: any; onpointerlockchange: any; onpointerlockerror: any; onreadystatechange: any; onvisibilitychange: any; readonly ownerDocument: any; readonly pictureInPictureEnabled: any; readonly plugins: any; readonly readyState: any; readonly referrer: any; readonly rootElement: any; readonly scripts: any; readonly scrollingElement: any; readonly timeline: any; title: any; readonly visibilityState: any; vlinkColor: any; adoptNode: any; captureEvents: any; caretRangeFromPoint: any; clear: any; close: any; createAttribute: any; createAttributeNS: any; createCDATASection: any; createComment: any; createDocumentFragment: any; createElement: any; createElementNS: any; createEvent: any; createNodeIterator: any; createProcessingInstruction: any; createRange: any; createTextNode: any; createTreeWalker: any; elementFromPoint: any; elementsFromPoint: any; execCommand: any; exitFullscreen: any; exitPictureInPicture: any; exitPointerLock: any; getElementById: any; getElementsByClassName: any; getElementsByName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getSelection: any; hasFocus: any; hasStorageAccess: any; importNode: any; open: any; queryCommandEnabled: any; queryCommandIndeterm: any; queryCommandState: any; queryCommandSupported: any; queryCommandValue: any; releaseEvents: any; requestStorageAccess: any; write: any; writeln: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; oncopy: any; oncut: any; onpaste: any; readonly activeElement: any; readonly fullscreenElement: any; readonly pictureInPictureElement: any; readonly pointerLockElement: any; readonly styleSheets: any; getAnimations: any; readonly fonts: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; createExpression: any; createNSResolver: any; evaluate: any; }; readonly part: { readonly length: any; value: any; toString: any; add: any; contains: any; item: any; remove: any; replace: any; supports: any; toggle: any; forEach: any; }; readonly prefix: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly scrollHeight: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; scrollLeft: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; scrollTop: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly scrollWidth: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly shadowRoot: { readonly delegatesFocus: any; readonly host: any; readonly mode: any; readonly ownerDocument: any; getElementById: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly activeElement: any; readonly fullscreenElement: any; readonly pictureInPictureElement: any; readonly pointerLockElement: any; readonly styleSheets: any; getAnimations: any; innerHTML: any; }; slot: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly tagName: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; attachShadow: unknown; closest: unknown; getAttribute: unknown; getAttributeNS: unknown; getAttributeNames: unknown; getAttributeNode: unknown; getAttributeNodeNS: unknown; getBoundingClientRect: unknown; getClientRects: unknown; getElementsByClassName: unknown; getElementsByTagName: unknown; getElementsByTagNameNS: unknown; hasAttribute: unknown; hasAttributeNS: unknown; hasAttributes: unknown; hasPointerCapture: unknown; insertAdjacentElement: unknown; insertAdjacentHTML: unknown; insertAdjacentText: unknown; matches: unknown; releasePointerCapture: unknown; removeAttribute: unknown; removeAttributeNS: unknown; removeAttributeNode: unknown; requestFullscreen: unknown; requestPointerLock: unknown; scroll: unknown; scrollBy: unknown; scrollIntoView: unknown; scrollTo: unknown; setAttribute: unknown; setAttributeNS: unknown; setAttributeNode: unknown; setAttributeNodeNS: unknown; setPointerCapture: unknown; toggleAttribute: unknown; webkitMatchesSelector: unknown; addEventListener: unknown; removeEventListener: unknown; readonly baseURI: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly childNodes: { item: any; forEach: any; readonly length: any; }; readonly firstChild: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly isConnected: { valueOf: any; }; readonly lastChild: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly nextSibling: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly nodeName: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly nodeType: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; nodeValue: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly parentElement: { accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; spellcheck: any; title: any; translate: any; click: any; addEventListener: any; removeEventListener: any; readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; }; readonly parentNode: { readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly previousSibling: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; textContent: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; appendChild: unknown; cloneNode: unknown; compareDocumentPosition: unknown; contains: unknown; getRootNode: unknown; hasChildNodes: unknown; insertBefore: unknown; isDefaultNamespace: unknown; isEqualNode: unknown; isSameNode: unknown; lookupNamespaceURI: unknown; lookupPrefix: unknown; normalize: unknown; removeChild: unknown; replaceChild: unknown; readonly ATTRIBUTE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly CDATA_SECTION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly COMMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_FRAGMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_CONTAINED_BY: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_CONTAINS: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_DISCONNECTED: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_FOLLOWING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_PRECEDING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_TYPE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ELEMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ENTITY_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ENTITY_REFERENCE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly NOTATION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly PROCESSING_INSTRUCTION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly TEXT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; dispatchEvent: unknown; ariaAtomic: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaAutoComplete: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaBusy: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaChecked: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaColCount: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaColIndex: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaColSpan: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaCurrent: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaDisabled: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaExpanded: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaHasPopup: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaHidden: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaKeyShortcuts: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaLabel: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaLevel: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaLive: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaModal: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaMultiLine: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaMultiSelectable: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaOrientation: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaPlaceholder: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaPosInSet: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaPressed: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaReadOnly: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRequired: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRoleDescription: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRowCount: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRowIndex: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRowSpan: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaSelected: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaSetSize: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaSort: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaValueMax: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaValueMin: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaValueNow: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaValueText: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; animate: unknown; getAnimations: unknown; after: unknown; before: unknown; remove: unknown; replaceWith: unknown; innerHTML: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly nextElementSibling: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly previousElementSibling: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly childElementCount: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly children: { namedItem: any; readonly length: any; item: any; }; readonly firstElementChild: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly lastElementChild: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; append: unknown; prepend: unknown; querySelector: unknown; querySelectorAll: unknown; replaceChildren: unknown; readonly assignedSlot: { name: any; assignedElements: any; assignedNodes: any; addEventListener: any; removeEventListener: any; accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; spellcheck: any; title: any; translate: any; click: any; readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; }; } ->out2.responseXML : { readonly URL: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; alinkColor: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly all: { readonly length: any; item: any; namedItem: any; }; readonly anchors: { item: any; namedItem: any; readonly length: any; }; readonly applets: { namedItem: any; readonly length: any; item: any; }; bgColor: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; body: { accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; spellcheck: any; title: any; translate: any; click: any; addEventListener: any; removeEventListener: any; readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; }; readonly characterSet: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly charset: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly compatMode: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly contentType: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; cookie: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly currentScript: { async: any; charset: any; crossOrigin: any; defer: any; event: any; htmlFor: any; integrity: any; noModule: any; referrerPolicy: any; src: any; text: any; type: any; addEventListener: any; removeEventListener: any; accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; spellcheck: any; title: any; translate: any; click: any; readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; } | { type: any; addEventListener: any; removeEventListener: any; readonly className: any; readonly ownerSVGElement: any; readonly viewportElement: any; readonly attributes: any; readonly classList: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; readonly href: any; }; readonly defaultView: { clientInformation: any; closed: any; customElements: any; devicePixelRatio: any; document: any; event: any; external: any; frameElement: any; frames: any; history: any; innerHeight: any; innerWidth: any; length: any; location: any; locationbar: any; menubar: any; name: any; navigator: any; ondevicemotion: any; ondeviceorientation: any; onorientationchange: any; opener: any; orientation: any; outerHeight: any; outerWidth: any; pageXOffset: any; pageYOffset: any; parent: any; personalbar: any; screen: any; screenLeft: any; screenTop: any; screenX: any; screenY: any; scrollX: any; scrollY: any; scrollbars: any; self: any; speechSynthesis: any; status: any; statusbar: any; toolbar: any; top: any; visualViewport: any; window: any; alert: any; blur: any; cancelIdleCallback: any; captureEvents: any; close: any; confirm: any; focus: any; getComputedStyle: any; getSelection: any; matchMedia: any; moveBy: any; moveTo: any; open: any; postMessage: any; print: any; prompt: any; releaseEvents: any; requestIdleCallback: any; resizeBy: any; resizeTo: any; scroll: any; scrollBy: any; scrollTo: any; stop: any; addEventListener: any; removeEventListener: any; dispatchEvent: any; cancelAnimationFrame: any; requestAnimationFrame: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel: any; ontouchend: any; ontouchmove: any; ontouchstart: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; onafterprint: any; onbeforeprint: any; onbeforeunload: any; ongamepadconnected: any; ongamepaddisconnected: any; onhashchange: any; onlanguagechange: any; onmessage: any; onmessageerror: any; onoffline: any; ononline: any; onpagehide: any; onpageshow: any; onpopstate: any; onrejectionhandled: any; onstorage: any; onunhandledrejection: any; onunload: any; localStorage: any; caches: any; crossOriginIsolated: any; crypto: any; indexedDB: any; isSecureContext: any; origin: any; performance: any; atob: any; btoa: any; clearInterval: any; clearTimeout: any; createImageBitmap: any; fetch: any; queueMicrotask: any; setInterval: any; setTimeout: any; sessionStorage: any; readonly globalThis: any; eval: any; parseInt: any; parseFloat: any; isNaN: any; isFinite: any; decodeURI: any; decodeURIComponent: any; encodeURI: any; encodeURIComponent: any; escape: any; unescape: any; NaN: any; Infinity: any; Symbol: any; Object: any; Function: any; String: any; Boolean: any; Number: any; Math: any; Date: any; RegExp: any; Error: any; EvalError: any; RangeError: any; ReferenceError: any; SyntaxError: any; TypeError: any; URIError: any; JSON: any; Array: any; Promise: any; ArrayBuffer: any; DataView: any; Int8Array: any; Uint8Array: any; Uint8ClampedArray: any; Int16Array: any; Uint16Array: any; Int32Array: any; Uint32Array: any; Float32Array: any; Float64Array: any; Intl: any; toString: any; NodeFilter: any; AbortController: any; AbortSignal: any; AbstractRange: any; AnalyserNode: any; Animation: any; AnimationEffect: any; AnimationEvent: any; AnimationPlaybackEvent: any; AnimationTimeline: any; Attr: any; AudioBuffer: any; AudioBufferSourceNode: any; AudioContext: any; AudioDestinationNode: any; AudioListener: any; AudioNode: any; AudioParam: any; AudioParamMap: any; AudioProcessingEvent: any; AudioScheduledSourceNode: any; AudioWorklet: any; AudioWorkletNode: any; AuthenticatorAssertionResponse: any; AuthenticatorAttestationResponse: any; AuthenticatorResponse: any; BarProp: any; BaseAudioContext: any; BeforeUnloadEvent: any; BiquadFilterNode: any; Blob: any; BlobEvent: any; BroadcastChannel: any; ByteLengthQueuingStrategy: any; CDATASection: any; CSSAnimation: any; CSSConditionRule: any; CSSCounterStyleRule: any; CSSFontFaceRule: any; CSSGroupingRule: any; CSSImportRule: any; CSSKeyframeRule: any; CSSKeyframesRule: any; CSSMediaRule: any; CSSNamespaceRule: any; CSSPageRule: any; CSSRule: any; CSSRuleList: any; CSSStyleDeclaration: any; CSSStyleRule: any; CSSStyleSheet: any; CSSSupportsRule: any; CSSTransition: any; Cache: any; CacheStorage: any; CanvasGradient: any; CanvasPattern: any; CanvasRenderingContext2D: any; ChannelMergerNode: any; ChannelSplitterNode: any; CharacterData: any; Clipboard: any; ClipboardEvent: any; ClipboardItem: any; CloseEvent: any; Comment: any; CompositionEvent: any; ConstantSourceNode: any; ConvolverNode: any; CountQueuingStrategy: any; Credential: any; CredentialsContainer: any; Crypto: any; CryptoKey: any; CustomElementRegistry: any; CustomEvent: any; DOMException: any; DOMImplementation: any; DOMMatrix: any; SVGMatrix: any; WebKitCSSMatrix: any; DOMMatrixReadOnly: any; DOMParser: any; DOMPoint: any; SVGPoint: any; DOMPointReadOnly: any; DOMQuad: any; DOMRect: any; SVGRect: any; DOMRectList: any; DOMRectReadOnly: any; DOMStringList: any; DOMStringMap: any; DOMTokenList: any; DataTransfer: any; DataTransferItem: any; DataTransferItemList: any; DelayNode: any; DeviceMotionEvent: any; DeviceOrientationEvent: any; Document: any; DocumentFragment: any; DocumentTimeline: any; DocumentType: any; DragEvent: any; DynamicsCompressorNode: any; Element: any; ErrorEvent: any; Event: any; EventSource: any; EventTarget: any; External: any; File: any; FileList: any; FileReader: any; FileSystem: any; FileSystemDirectoryEntry: any; FileSystemDirectoryReader: any; FileSystemEntry: any; FileSystemFileEntry: any; FocusEvent: any; FontFace: any; FontFaceSet: any; FontFaceSetLoadEvent: any; FormData: any; FormDataEvent: any; GainNode: any; Gamepad: any; GamepadButton: any; GamepadEvent: any; GamepadHapticActuator: any; Geolocation: any; GeolocationCoordinates: any; GeolocationPosition: any; GeolocationPositionError: any; HTMLAllCollection: any; HTMLAnchorElement: any; HTMLAreaElement: any; HTMLAudioElement: any; HTMLBRElement: any; HTMLBaseElement: any; HTMLBodyElement: any; HTMLButtonElement: any; HTMLCanvasElement: any; HTMLCollection: any; HTMLDListElement: any; HTMLDataElement: any; HTMLDataListElement: any; HTMLDetailsElement: any; HTMLDirectoryElement: any; HTMLDivElement: any; HTMLDocument: any; HTMLElement: any; HTMLEmbedElement: any; HTMLFieldSetElement: any; HTMLFontElement: any; HTMLFormControlsCollection: any; HTMLFormElement: any; HTMLFrameElement: any; HTMLFrameSetElement: any; HTMLHRElement: any; HTMLHeadElement: any; HTMLHeadingElement: any; HTMLHtmlElement: any; HTMLIFrameElement: any; HTMLImageElement: any; HTMLInputElement: any; HTMLLIElement: any; HTMLLabelElement: any; HTMLLegendElement: any; HTMLLinkElement: any; HTMLMapElement: any; HTMLMarqueeElement: any; HTMLMediaElement: any; HTMLMenuElement: any; HTMLMetaElement: any; HTMLMeterElement: any; HTMLModElement: any; HTMLOListElement: any; HTMLObjectElement: any; HTMLOptGroupElement: any; HTMLOptionElement: any; HTMLOptionsCollection: any; HTMLOutputElement: any; HTMLParagraphElement: any; HTMLParamElement: any; HTMLPictureElement: any; HTMLPreElement: any; HTMLProgressElement: any; HTMLQuoteElement: any; HTMLScriptElement: any; HTMLSelectElement: any; HTMLSlotElement: any; HTMLSourceElement: any; HTMLSpanElement: any; HTMLStyleElement: any; HTMLTableCaptionElement: any; HTMLTableCellElement: any; HTMLTableColElement: any; HTMLTableElement: any; HTMLTableRowElement: any; HTMLTableSectionElement: any; HTMLTemplateElement: any; HTMLTextAreaElement: any; HTMLTimeElement: any; HTMLTitleElement: any; HTMLTrackElement: any; HTMLUListElement: any; HTMLUnknownElement: any; HTMLVideoElement: any; HashChangeEvent: any; Headers: any; History: any; IDBCursor: any; IDBCursorWithValue: any; IDBDatabase: any; IDBFactory: any; IDBIndex: any; IDBKeyRange: any; IDBObjectStore: any; IDBOpenDBRequest: any; IDBRequest: any; IDBTransaction: any; IDBVersionChangeEvent: any; IIRFilterNode: any; IdleDeadline: any; ImageBitmap: any; ImageBitmapRenderingContext: any; ImageData: any; InputEvent: any; IntersectionObserver: any; IntersectionObserverEntry: any; KeyboardEvent: any; KeyframeEffect: any; Location: any; MathMLElement: any; MediaCapabilities: any; MediaDeviceInfo: any; MediaDevices: any; MediaElementAudioSourceNode: any; MediaEncryptedEvent: any; MediaError: any; MediaKeyMessageEvent: any; MediaKeySession: any; MediaKeyStatusMap: any; MediaKeySystemAccess: any; MediaKeys: any; MediaList: any; MediaMetadata: any; MediaQueryList: any; MediaQueryListEvent: any; MediaRecorder: any; MediaRecorderErrorEvent: any; MediaSession: any; MediaSource: any; MediaStream: any; MediaStreamAudioDestinationNode: any; MediaStreamAudioSourceNode: any; MediaStreamTrack: any; MediaStreamTrackEvent: any; MessageChannel: any; MessageEvent: any; MessagePort: any; MimeType: any; MimeTypeArray: any; MouseEvent: any; MutationEvent: any; MutationObserver: any; MutationRecord: any; NamedNodeMap: any; Navigator: any; NetworkInformation: any; Node: any; NodeIterator: any; NodeList: any; Notification: any; OfflineAudioCompletionEvent: any; OfflineAudioContext: any; OscillatorNode: any; OverconstrainedError: any; PageTransitionEvent: any; PannerNode: any; Path2D: any; PaymentAddress: any; PaymentMethodChangeEvent: any; PaymentRequest: any; PaymentRequestUpdateEvent: any; PaymentResponse: any; Performance: any; PerformanceEntry: any; PerformanceEventTiming: any; PerformanceMark: any; PerformanceMeasure: any; PerformanceNavigation: any; PerformanceNavigationTiming: any; PerformanceObserver: any; PerformanceObserverEntryList: any; PerformancePaintTiming: any; PerformanceResourceTiming: any; PerformanceServerTiming: any; PerformanceTiming: any; PeriodicWave: any; PermissionStatus: any; Permissions: any; PictureInPictureWindow: any; Plugin: any; PluginArray: any; PointerEvent: any; PopStateEvent: any; ProcessingInstruction: any; ProgressEvent: any; PromiseRejectionEvent: any; PublicKeyCredential: any; PushManager: any; PushSubscription: any; PushSubscriptionOptions: any; RTCCertificate: any; RTCDTMFSender: any; RTCDTMFToneChangeEvent: any; RTCDataChannel: any; RTCDataChannelEvent: any; RTCDtlsTransport: any; RTCIceCandidate: any; RTCIceTransport: any; RTCPeerConnection: any; RTCPeerConnectionIceErrorEvent: any; RTCPeerConnectionIceEvent: any; RTCRtpReceiver: any; RTCRtpSender: any; RTCRtpTransceiver: any; RTCSessionDescription: any; RTCStatsReport: any; RTCTrackEvent: any; RadioNodeList: any; Range: any; ReadableStream: any; ReadableStreamDefaultController: any; ReadableStreamDefaultReader: any; RemotePlayback: any; Request: any; ResizeObserver: any; ResizeObserverEntry: any; ResizeObserverSize: any; Response: any; SVGAElement: any; SVGAngle: any; SVGAnimateElement: any; SVGAnimateMotionElement: any; SVGAnimateTransformElement: any; SVGAnimatedAngle: any; SVGAnimatedBoolean: any; SVGAnimatedEnumeration: any; SVGAnimatedInteger: any; SVGAnimatedLength: any; SVGAnimatedLengthList: any; SVGAnimatedNumber: any; SVGAnimatedNumberList: any; SVGAnimatedPreserveAspectRatio: any; SVGAnimatedRect: any; SVGAnimatedString: any; SVGAnimatedTransformList: any; SVGAnimationElement: any; SVGCircleElement: any; SVGClipPathElement: any; SVGComponentTransferFunctionElement: any; SVGDefsElement: any; SVGDescElement: any; SVGElement: any; SVGEllipseElement: any; SVGFEBlendElement: any; SVGFEColorMatrixElement: any; SVGFEComponentTransferElement: any; SVGFECompositeElement: any; SVGFEConvolveMatrixElement: any; SVGFEDiffuseLightingElement: any; SVGFEDisplacementMapElement: any; SVGFEDistantLightElement: any; SVGFEDropShadowElement: any; SVGFEFloodElement: any; SVGFEFuncAElement: any; SVGFEFuncBElement: any; SVGFEFuncGElement: any; SVGFEFuncRElement: any; SVGFEGaussianBlurElement: any; SVGFEImageElement: any; SVGFEMergeElement: any; SVGFEMergeNodeElement: any; SVGFEMorphologyElement: any; SVGFEOffsetElement: any; SVGFEPointLightElement: any; SVGFESpecularLightingElement: any; SVGFESpotLightElement: any; SVGFETileElement: any; SVGFETurbulenceElement: any; SVGFilterElement: any; SVGForeignObjectElement: any; SVGGElement: any; SVGGeometryElement: any; SVGGradientElement: any; SVGGraphicsElement: any; SVGImageElement: any; SVGLength: any; SVGLengthList: any; SVGLineElement: any; SVGLinearGradientElement: any; SVGMPathElement: any; SVGMarkerElement: any; SVGMaskElement: any; SVGMetadataElement: any; SVGNumber: any; SVGNumberList: any; SVGPathElement: any; SVGPatternElement: any; SVGPointList: any; SVGPolygonElement: any; SVGPolylineElement: any; SVGPreserveAspectRatio: any; SVGRadialGradientElement: any; SVGRectElement: any; SVGSVGElement: any; SVGScriptElement: any; SVGSetElement: any; SVGStopElement: any; SVGStringList: any; SVGStyleElement: any; SVGSwitchElement: any; SVGSymbolElement: any; SVGTSpanElement: any; SVGTextContentElement: any; SVGTextElement: any; SVGTextPathElement: any; SVGTextPositioningElement: any; SVGTitleElement: any; SVGTransform: any; SVGTransformList: any; SVGUnitTypes: any; SVGUseElement: any; SVGViewElement: any; Screen: any; ScreenOrientation: any; ScriptProcessorNode: any; SecurityPolicyViolationEvent: any; Selection: any; ServiceWorker: any; ServiceWorkerContainer: any; ServiceWorkerRegistration: any; ShadowRoot: any; SharedWorker: any; SourceBuffer: any; SourceBufferList: any; SpeechRecognitionAlternative: any; SpeechRecognitionResult: any; SpeechRecognitionResultList: any; SpeechSynthesis: any; SpeechSynthesisErrorEvent: any; SpeechSynthesisEvent: any; SpeechSynthesisUtterance: any; SpeechSynthesisVoice: any; StaticRange: any; StereoPannerNode: any; Storage: any; StorageEvent: any; StorageManager: any; StyleSheet: any; StyleSheetList: any; SubmitEvent: any; SubtleCrypto: any; Text: any; TextDecoder: any; TextDecoderStream: any; TextEncoder: any; TextEncoderStream: any; TextMetrics: any; TextTrack: any; TextTrackCue: any; TextTrackCueList: any; TextTrackList: any; TimeRanges: any; Touch: any; TouchEvent: any; TouchList: any; TrackEvent: any; TransformStream: any; TransformStreamDefaultController: any; TransitionEvent: any; TreeWalker: any; UIEvent: any; URL: any; webkitURL: any; URLSearchParams: any; VTTCue: any; VTTRegion: any; ValidityState: any; VideoPlaybackQuality: any; VisualViewport: any; WaveShaperNode: any; WebGL2RenderingContext: any; WebGLActiveInfo: any; WebGLBuffer: any; WebGLContextEvent: any; WebGLFramebuffer: any; WebGLProgram: any; WebGLQuery: any; WebGLRenderbuffer: any; WebGLRenderingContext: any; WebGLSampler: any; WebGLShader: any; WebGLShaderPrecisionFormat: any; WebGLSync: any; WebGLTexture: any; WebGLTransformFeedback: any; WebGLUniformLocation: any; WebGLVertexArrayObject: any; WebSocket: any; WheelEvent: any; Window: any; Worker: any; Worklet: any; WritableStream: any; WritableStreamDefaultController: any; WritableStreamDefaultWriter: any; XMLDocument: any; XMLHttpRequest: any; XMLHttpRequestEventTarget: any; XMLHttpRequestUpload: any; XMLSerializer: any; XPathEvaluator: any; XPathExpression: any; XPathResult: any; XSLTProcessor: any; console: any; CSS: any; WebAssembly: any; Audio: any; Image: any; Option: any; Map: any; WeakMap: any; Set: any; WeakSet: any; Proxy: any; Reflect: any; foo: any; undefined: any; }; designMode: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; dir: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly doctype: { readonly name: any; readonly ownerDocument: any; readonly publicId: any; readonly systemId: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; after: any; before: any; remove: any; replaceWith: any; }; readonly documentElement: { accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; spellcheck: any; title: any; translate: any; click: any; addEventListener: any; removeEventListener: any; readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; }; readonly documentURI: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; domain: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly embeds: { item: any; namedItem: any; readonly length: any; }; fgColor: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly forms: { item: any; namedItem: any; readonly length: any; }; readonly fullscreen: { valueOf: any; }; readonly fullscreenEnabled: { valueOf: any; }; readonly head: { addEventListener: any; removeEventListener: any; accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; spellcheck: any; title: any; translate: any; click: any; readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; }; readonly hidden: { valueOf: any; }; readonly images: { item: any; namedItem: any; readonly length: any; }; readonly implementation: { createDocument: any; createDocumentType: any; createHTMLDocument: any; hasFeature: any; }; readonly inputEncoding: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly lastModified: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; linkColor: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly links: { item: any; namedItem: any; readonly length: any; }; location: { readonly ancestorOrigins: any; hash: any; host: any; hostname: any; href: any; toString: any; readonly origin: any; pathname: any; port: any; protocol: any; search: any; assign: any; reload: any; replace: any; }; onfullscreenchange: unknown; onfullscreenerror: unknown; onpointerlockchange: unknown; onpointerlockerror: unknown; onreadystatechange: unknown; onvisibilitychange: unknown; readonly ownerDocument: unknown; readonly pictureInPictureEnabled: { valueOf: any; }; readonly plugins: { item: any; namedItem: any; readonly length: any; }; readonly readyState: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly referrer: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly rootElement: { currentScale: any; readonly currentTranslate: any; readonly height: any; readonly width: any; readonly x: any; readonly y: any; animationsPaused: any; checkEnclosure: any; checkIntersection: any; createSVGAngle: any; createSVGLength: any; createSVGMatrix: any; createSVGNumber: any; createSVGPoint: any; createSVGRect: any; createSVGTransform: any; createSVGTransformFromMatrix: any; deselectAll: any; forceRedraw: any; getCurrentTime: any; getElementById: any; getEnclosureList: any; getIntersectionList: any; pauseAnimations: any; setCurrentTime: any; suspendRedraw: any; unpauseAnimations: any; unsuspendRedraw: any; unsuspendRedrawAll: any; addEventListener: any; removeEventListener: any; readonly transform: any; getBBox: any; getCTM: any; getScreenCTM: any; readonly className: any; readonly ownerSVGElement: any; readonly viewportElement: any; readonly attributes: any; readonly classList: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; readonly requiredExtensions: any; readonly systemLanguage: any; readonly preserveAspectRatio: any; readonly viewBox: any; onafterprint: any; onbeforeprint: any; onbeforeunload: any; ongamepadconnected: any; ongamepaddisconnected: any; onhashchange: any; onlanguagechange: any; onmessage: any; onmessageerror: any; onoffline: any; ononline: any; onpagehide: any; onpageshow: any; onpopstate: any; onrejectionhandled: any; onstorage: any; onunhandledrejection: any; onunload: any; }; readonly scripts: { item: any; namedItem: any; readonly length: any; }; readonly scrollingElement: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly timeline: { readonly currentTime: any; }; title: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly visibilityState: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; vlinkColor: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; adoptNode: unknown; captureEvents: unknown; caretRangeFromPoint: unknown; clear: unknown; close: unknown; createAttribute: unknown; createAttributeNS: unknown; createCDATASection: unknown; createComment: unknown; createDocumentFragment: unknown; createElement: unknown; createElementNS: unknown; createEvent: unknown; createNodeIterator: unknown; createProcessingInstruction: unknown; createRange: unknown; createTextNode: unknown; createTreeWalker: unknown; elementFromPoint: unknown; elementsFromPoint: unknown; execCommand: unknown; exitFullscreen: unknown; exitPictureInPicture: unknown; exitPointerLock: unknown; getElementById: unknown; getElementsByClassName: unknown; getElementsByName: unknown; getElementsByTagName: unknown; getElementsByTagNameNS: unknown; getSelection: unknown; hasFocus: unknown; hasStorageAccess: unknown; importNode: unknown; open: unknown; queryCommandEnabled: unknown; queryCommandIndeterm: unknown; queryCommandState: unknown; queryCommandSupported: unknown; queryCommandValue: unknown; releaseEvents: unknown; requestStorageAccess: unknown; write: unknown; writeln: unknown; addEventListener: unknown; removeEventListener: unknown; readonly baseURI: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly childNodes: { item: any; forEach: any; readonly length: any; }; readonly firstChild: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly isConnected: { valueOf: any; }; readonly lastChild: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly nextSibling: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly nodeName: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly nodeType: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; nodeValue: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly parentElement: { accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; spellcheck: any; title: any; translate: any; click: any; addEventListener: any; removeEventListener: any; readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; }; readonly parentNode: { readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly previousSibling: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; textContent: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; appendChild: unknown; cloneNode: unknown; compareDocumentPosition: unknown; contains: unknown; getRootNode: unknown; hasChildNodes: unknown; insertBefore: unknown; isDefaultNamespace: unknown; isEqualNode: unknown; isSameNode: unknown; lookupNamespaceURI: unknown; lookupPrefix: unknown; normalize: unknown; removeChild: unknown; replaceChild: unknown; readonly ATTRIBUTE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly CDATA_SECTION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly COMMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_FRAGMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_CONTAINED_BY: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_CONTAINS: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_DISCONNECTED: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_FOLLOWING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_PRECEDING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_TYPE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ELEMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ENTITY_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ENTITY_REFERENCE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly NOTATION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly PROCESSING_INSTRUCTION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly TEXT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; dispatchEvent: unknown; oncopy: unknown; oncut: unknown; onpaste: unknown; readonly activeElement: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly fullscreenElement: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly pictureInPictureElement: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly pointerLockElement: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly styleSheets: { readonly length: any; item: any; }; getAnimations: unknown; readonly fonts: { onloading: any; onloadingdone: any; onloadingerror: any; readonly ready: any; readonly status: any; check: any; load: any; forEach: any; addEventListener: any; removeEventListener: any; dispatchEvent: any; }; onabort: unknown; onanimationcancel: unknown; onanimationend: unknown; onanimationiteration: unknown; onanimationstart: unknown; onauxclick: unknown; onblur: unknown; oncanplay: unknown; oncanplaythrough: unknown; onchange: unknown; onclick: unknown; onclose: unknown; oncontextmenu: unknown; oncuechange: unknown; ondblclick: unknown; ondrag: unknown; ondragend: unknown; ondragenter: unknown; ondragleave: unknown; ondragover: unknown; ondragstart: unknown; ondrop: unknown; ondurationchange: unknown; onemptied: unknown; onended: unknown; onerror: unknown; onfocus: unknown; onformdata: unknown; ongotpointercapture: unknown; oninput: unknown; oninvalid: unknown; onkeydown: unknown; onkeypress: unknown; onkeyup: unknown; onload: unknown; onloadeddata: unknown; onloadedmetadata: unknown; onloadstart: unknown; onlostpointercapture: unknown; onmousedown: unknown; onmouseenter: unknown; onmouseleave: unknown; onmousemove: unknown; onmouseout: unknown; onmouseover: unknown; onmouseup: unknown; onpause: unknown; onplay: unknown; onplaying: unknown; onpointercancel: unknown; onpointerdown: unknown; onpointerenter: unknown; onpointerleave: unknown; onpointermove: unknown; onpointerout: unknown; onpointerover: unknown; onpointerup: unknown; onprogress: unknown; onratechange: unknown; onreset: unknown; onresize: unknown; onscroll: unknown; onseeked: unknown; onseeking: unknown; onselect: unknown; onselectionchange: unknown; onselectstart: unknown; onstalled: unknown; onsubmit: unknown; onsuspend: unknown; ontimeupdate: unknown; ontoggle: unknown; ontouchcancel?: unknown; ontouchend?: unknown; ontouchmove?: unknown; ontouchstart?: unknown; ontransitioncancel: unknown; ontransitionend: unknown; ontransitionrun: unknown; ontransitionstart: unknown; onvolumechange: unknown; onwaiting: unknown; onwebkitanimationend: unknown; onwebkitanimationiteration: unknown; onwebkitanimationstart: unknown; onwebkittransitionend: unknown; onwheel: unknown; readonly childElementCount: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly children: { namedItem: any; readonly length: any; item: any; }; readonly firstElementChild: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly lastElementChild: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; append: unknown; prepend: unknown; querySelector: unknown; querySelectorAll: unknown; replaceChildren: unknown; createExpression: unknown; createNSResolver: unknown; evaluate: unknown; } ->out2 : { onreadystatechange: unknown; readonly readyState: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly response: unknown; readonly responseText: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; responseType: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly responseURL: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly responseXML: { readonly URL: any; alinkColor: any; readonly all: any; readonly anchors: any; readonly applets: any; bgColor: any; body: any; readonly characterSet: any; readonly charset: any; readonly compatMode: any; readonly contentType: any; cookie: any; readonly currentScript: any; readonly defaultView: any; designMode: any; dir: any; readonly doctype: any; readonly documentElement: any; readonly documentURI: any; domain: any; readonly embeds: any; fgColor: any; readonly forms: any; readonly fullscreen: any; readonly fullscreenEnabled: any; readonly head: any; readonly hidden: any; readonly images: any; readonly implementation: any; readonly inputEncoding: any; readonly lastModified: any; linkColor: any; readonly links: any; location: any; onfullscreenchange: any; onfullscreenerror: any; onpointerlockchange: any; onpointerlockerror: any; onreadystatechange: any; onvisibilitychange: any; readonly ownerDocument: any; readonly pictureInPictureEnabled: any; readonly plugins: any; readonly readyState: any; readonly referrer: any; readonly rootElement: any; readonly scripts: any; readonly scrollingElement: any; readonly timeline: any; title: any; readonly visibilityState: any; vlinkColor: any; adoptNode: any; captureEvents: any; caretRangeFromPoint: any; clear: any; close: any; createAttribute: any; createAttributeNS: any; createCDATASection: any; createComment: any; createDocumentFragment: any; createElement: any; createElementNS: any; createEvent: any; createNodeIterator: any; createProcessingInstruction: any; createRange: any; createTextNode: any; createTreeWalker: any; elementFromPoint: any; elementsFromPoint: any; execCommand: any; exitFullscreen: any; exitPictureInPicture: any; exitPointerLock: any; getElementById: any; getElementsByClassName: any; getElementsByName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getSelection: any; hasFocus: any; hasStorageAccess: any; importNode: any; open: any; queryCommandEnabled: any; queryCommandIndeterm: any; queryCommandState: any; queryCommandSupported: any; queryCommandValue: any; releaseEvents: any; requestStorageAccess: any; write: any; writeln: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; oncopy: any; oncut: any; onpaste: any; readonly activeElement: any; readonly fullscreenElement: any; readonly pictureInPictureElement: any; readonly pointerLockElement: any; readonly styleSheets: any; getAnimations: any; readonly fonts: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; createExpression: any; createNSResolver: any; evaluate: any; }; readonly status: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly statusText: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; timeout: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly upload: { addEventListener: any; removeEventListener: any; onabort: any; onerror: any; onload: any; onloadend: any; onloadstart: any; onprogress: any; ontimeout: any; dispatchEvent: any; }; withCredentials: { valueOf: any; }; abort: unknown; getAllResponseHeaders: unknown; getResponseHeader: unknown; open: unknown; overrideMimeType: unknown; send: unknown; setRequestHeader: unknown; readonly DONE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly HEADERS_RECEIVED: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly LOADING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly OPENED: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly UNSENT: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; addEventListener: unknown; removeEventListener: unknown; onabort: unknown; onerror: unknown; onload: unknown; onloadend: unknown; onloadstart: unknown; onprogress: unknown; ontimeout: unknown; dispatchEvent: unknown; } ->responseXML : { readonly URL: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; alinkColor: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly all: { readonly length: any; item: any; namedItem: any; }; readonly anchors: { item: any; namedItem: any; readonly length: any; }; readonly applets: { namedItem: any; readonly length: any; item: any; }; bgColor: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; body: { accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; spellcheck: any; title: any; translate: any; click: any; addEventListener: any; removeEventListener: any; readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; }; readonly characterSet: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly charset: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly compatMode: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly contentType: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; cookie: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly currentScript: { async: any; charset: any; crossOrigin: any; defer: any; event: any; htmlFor: any; integrity: any; noModule: any; referrerPolicy: any; src: any; text: any; type: any; addEventListener: any; removeEventListener: any; accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; spellcheck: any; title: any; translate: any; click: any; readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; } | { type: any; addEventListener: any; removeEventListener: any; readonly className: any; readonly ownerSVGElement: any; readonly viewportElement: any; readonly attributes: any; readonly classList: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; readonly href: any; }; readonly defaultView: { clientInformation: any; closed: any; customElements: any; devicePixelRatio: any; document: any; event: any; external: any; frameElement: any; frames: any; history: any; innerHeight: any; innerWidth: any; length: any; location: any; locationbar: any; menubar: any; name: any; navigator: any; ondevicemotion: any; ondeviceorientation: any; onorientationchange: any; opener: any; orientation: any; outerHeight: any; outerWidth: any; pageXOffset: any; pageYOffset: any; parent: any; personalbar: any; screen: any; screenLeft: any; screenTop: any; screenX: any; screenY: any; scrollX: any; scrollY: any; scrollbars: any; self: any; speechSynthesis: any; status: any; statusbar: any; toolbar: any; top: any; visualViewport: any; window: any; alert: any; blur: any; cancelIdleCallback: any; captureEvents: any; close: any; confirm: any; focus: any; getComputedStyle: any; getSelection: any; matchMedia: any; moveBy: any; moveTo: any; open: any; postMessage: any; print: any; prompt: any; releaseEvents: any; requestIdleCallback: any; resizeBy: any; resizeTo: any; scroll: any; scrollBy: any; scrollTo: any; stop: any; addEventListener: any; removeEventListener: any; dispatchEvent: any; cancelAnimationFrame: any; requestAnimationFrame: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel: any; ontouchend: any; ontouchmove: any; ontouchstart: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; onafterprint: any; onbeforeprint: any; onbeforeunload: any; ongamepadconnected: any; ongamepaddisconnected: any; onhashchange: any; onlanguagechange: any; onmessage: any; onmessageerror: any; onoffline: any; ononline: any; onpagehide: any; onpageshow: any; onpopstate: any; onrejectionhandled: any; onstorage: any; onunhandledrejection: any; onunload: any; localStorage: any; caches: any; crossOriginIsolated: any; crypto: any; indexedDB: any; isSecureContext: any; origin: any; performance: any; atob: any; btoa: any; clearInterval: any; clearTimeout: any; createImageBitmap: any; fetch: any; queueMicrotask: any; setInterval: any; setTimeout: any; sessionStorage: any; readonly globalThis: any; eval: any; parseInt: any; parseFloat: any; isNaN: any; isFinite: any; decodeURI: any; decodeURIComponent: any; encodeURI: any; encodeURIComponent: any; escape: any; unescape: any; NaN: any; Infinity: any; Symbol: any; Object: any; Function: any; String: any; Boolean: any; Number: any; Math: any; Date: any; RegExp: any; Error: any; EvalError: any; RangeError: any; ReferenceError: any; SyntaxError: any; TypeError: any; URIError: any; JSON: any; Array: any; Promise: any; ArrayBuffer: any; DataView: any; Int8Array: any; Uint8Array: any; Uint8ClampedArray: any; Int16Array: any; Uint16Array: any; Int32Array: any; Uint32Array: any; Float32Array: any; Float64Array: any; Intl: any; toString: any; NodeFilter: any; AbortController: any; AbortSignal: any; AbstractRange: any; AnalyserNode: any; Animation: any; AnimationEffect: any; AnimationEvent: any; AnimationPlaybackEvent: any; AnimationTimeline: any; Attr: any; AudioBuffer: any; AudioBufferSourceNode: any; AudioContext: any; AudioDestinationNode: any; AudioListener: any; AudioNode: any; AudioParam: any; AudioParamMap: any; AudioProcessingEvent: any; AudioScheduledSourceNode: any; AudioWorklet: any; AudioWorkletNode: any; AuthenticatorAssertionResponse: any; AuthenticatorAttestationResponse: any; AuthenticatorResponse: any; BarProp: any; BaseAudioContext: any; BeforeUnloadEvent: any; BiquadFilterNode: any; Blob: any; BlobEvent: any; BroadcastChannel: any; ByteLengthQueuingStrategy: any; CDATASection: any; CSSAnimation: any; CSSConditionRule: any; CSSCounterStyleRule: any; CSSFontFaceRule: any; CSSGroupingRule: any; CSSImportRule: any; CSSKeyframeRule: any; CSSKeyframesRule: any; CSSMediaRule: any; CSSNamespaceRule: any; CSSPageRule: any; CSSRule: any; CSSRuleList: any; CSSStyleDeclaration: any; CSSStyleRule: any; CSSStyleSheet: any; CSSSupportsRule: any; CSSTransition: any; Cache: any; CacheStorage: any; CanvasGradient: any; CanvasPattern: any; CanvasRenderingContext2D: any; ChannelMergerNode: any; ChannelSplitterNode: any; CharacterData: any; Clipboard: any; ClipboardEvent: any; ClipboardItem: any; CloseEvent: any; Comment: any; CompositionEvent: any; ConstantSourceNode: any; ConvolverNode: any; CountQueuingStrategy: any; Credential: any; CredentialsContainer: any; Crypto: any; CryptoKey: any; CustomElementRegistry: any; CustomEvent: any; DOMException: any; DOMImplementation: any; DOMMatrix: any; SVGMatrix: any; WebKitCSSMatrix: any; DOMMatrixReadOnly: any; DOMParser: any; DOMPoint: any; SVGPoint: any; DOMPointReadOnly: any; DOMQuad: any; DOMRect: any; SVGRect: any; DOMRectList: any; DOMRectReadOnly: any; DOMStringList: any; DOMStringMap: any; DOMTokenList: any; DataTransfer: any; DataTransferItem: any; DataTransferItemList: any; DelayNode: any; DeviceMotionEvent: any; DeviceOrientationEvent: any; Document: any; DocumentFragment: any; DocumentTimeline: any; DocumentType: any; DragEvent: any; DynamicsCompressorNode: any; Element: any; ErrorEvent: any; Event: any; EventSource: any; EventTarget: any; External: any; File: any; FileList: any; FileReader: any; FileSystem: any; FileSystemDirectoryEntry: any; FileSystemDirectoryReader: any; FileSystemEntry: any; FileSystemFileEntry: any; FocusEvent: any; FontFace: any; FontFaceSet: any; FontFaceSetLoadEvent: any; FormData: any; FormDataEvent: any; GainNode: any; Gamepad: any; GamepadButton: any; GamepadEvent: any; GamepadHapticActuator: any; Geolocation: any; GeolocationCoordinates: any; GeolocationPosition: any; GeolocationPositionError: any; HTMLAllCollection: any; HTMLAnchorElement: any; HTMLAreaElement: any; HTMLAudioElement: any; HTMLBRElement: any; HTMLBaseElement: any; HTMLBodyElement: any; HTMLButtonElement: any; HTMLCanvasElement: any; HTMLCollection: any; HTMLDListElement: any; HTMLDataElement: any; HTMLDataListElement: any; HTMLDetailsElement: any; HTMLDirectoryElement: any; HTMLDivElement: any; HTMLDocument: any; HTMLElement: any; HTMLEmbedElement: any; HTMLFieldSetElement: any; HTMLFontElement: any; HTMLFormControlsCollection: any; HTMLFormElement: any; HTMLFrameElement: any; HTMLFrameSetElement: any; HTMLHRElement: any; HTMLHeadElement: any; HTMLHeadingElement: any; HTMLHtmlElement: any; HTMLIFrameElement: any; HTMLImageElement: any; HTMLInputElement: any; HTMLLIElement: any; HTMLLabelElement: any; HTMLLegendElement: any; HTMLLinkElement: any; HTMLMapElement: any; HTMLMarqueeElement: any; HTMLMediaElement: any; HTMLMenuElement: any; HTMLMetaElement: any; HTMLMeterElement: any; HTMLModElement: any; HTMLOListElement: any; HTMLObjectElement: any; HTMLOptGroupElement: any; HTMLOptionElement: any; HTMLOptionsCollection: any; HTMLOutputElement: any; HTMLParagraphElement: any; HTMLParamElement: any; HTMLPictureElement: any; HTMLPreElement: any; HTMLProgressElement: any; HTMLQuoteElement: any; HTMLScriptElement: any; HTMLSelectElement: any; HTMLSlotElement: any; HTMLSourceElement: any; HTMLSpanElement: any; HTMLStyleElement: any; HTMLTableCaptionElement: any; HTMLTableCellElement: any; HTMLTableColElement: any; HTMLTableElement: any; HTMLTableRowElement: any; HTMLTableSectionElement: any; HTMLTemplateElement: any; HTMLTextAreaElement: any; HTMLTimeElement: any; HTMLTitleElement: any; HTMLTrackElement: any; HTMLUListElement: any; HTMLUnknownElement: any; HTMLVideoElement: any; HashChangeEvent: any; Headers: any; History: any; IDBCursor: any; IDBCursorWithValue: any; IDBDatabase: any; IDBFactory: any; IDBIndex: any; IDBKeyRange: any; IDBObjectStore: any; IDBOpenDBRequest: any; IDBRequest: any; IDBTransaction: any; IDBVersionChangeEvent: any; IIRFilterNode: any; IdleDeadline: any; ImageBitmap: any; ImageBitmapRenderingContext: any; ImageData: any; InputEvent: any; IntersectionObserver: any; IntersectionObserverEntry: any; KeyboardEvent: any; KeyframeEffect: any; Location: any; MathMLElement: any; MediaCapabilities: any; MediaDeviceInfo: any; MediaDevices: any; MediaElementAudioSourceNode: any; MediaEncryptedEvent: any; MediaError: any; MediaKeyMessageEvent: any; MediaKeySession: any; MediaKeyStatusMap: any; MediaKeySystemAccess: any; MediaKeys: any; MediaList: any; MediaMetadata: any; MediaQueryList: any; MediaQueryListEvent: any; MediaRecorder: any; MediaRecorderErrorEvent: any; MediaSession: any; MediaSource: any; MediaStream: any; MediaStreamAudioDestinationNode: any; MediaStreamAudioSourceNode: any; MediaStreamTrack: any; MediaStreamTrackEvent: any; MessageChannel: any; MessageEvent: any; MessagePort: any; MimeType: any; MimeTypeArray: any; MouseEvent: any; MutationEvent: any; MutationObserver: any; MutationRecord: any; NamedNodeMap: any; Navigator: any; NetworkInformation: any; Node: any; NodeIterator: any; NodeList: any; Notification: any; OfflineAudioCompletionEvent: any; OfflineAudioContext: any; OscillatorNode: any; OverconstrainedError: any; PageTransitionEvent: any; PannerNode: any; Path2D: any; PaymentAddress: any; PaymentMethodChangeEvent: any; PaymentRequest: any; PaymentRequestUpdateEvent: any; PaymentResponse: any; Performance: any; PerformanceEntry: any; PerformanceEventTiming: any; PerformanceMark: any; PerformanceMeasure: any; PerformanceNavigation: any; PerformanceNavigationTiming: any; PerformanceObserver: any; PerformanceObserverEntryList: any; PerformancePaintTiming: any; PerformanceResourceTiming: any; PerformanceServerTiming: any; PerformanceTiming: any; PeriodicWave: any; PermissionStatus: any; Permissions: any; PictureInPictureWindow: any; Plugin: any; PluginArray: any; PointerEvent: any; PopStateEvent: any; ProcessingInstruction: any; ProgressEvent: any; PromiseRejectionEvent: any; PublicKeyCredential: any; PushManager: any; PushSubscription: any; PushSubscriptionOptions: any; RTCCertificate: any; RTCDTMFSender: any; RTCDTMFToneChangeEvent: any; RTCDataChannel: any; RTCDataChannelEvent: any; RTCDtlsTransport: any; RTCIceCandidate: any; RTCIceTransport: any; RTCPeerConnection: any; RTCPeerConnectionIceErrorEvent: any; RTCPeerConnectionIceEvent: any; RTCRtpReceiver: any; RTCRtpSender: any; RTCRtpTransceiver: any; RTCSessionDescription: any; RTCStatsReport: any; RTCTrackEvent: any; RadioNodeList: any; Range: any; ReadableStream: any; ReadableStreamDefaultController: any; ReadableStreamDefaultReader: any; RemotePlayback: any; Request: any; ResizeObserver: any; ResizeObserverEntry: any; ResizeObserverSize: any; Response: any; SVGAElement: any; SVGAngle: any; SVGAnimateElement: any; SVGAnimateMotionElement: any; SVGAnimateTransformElement: any; SVGAnimatedAngle: any; SVGAnimatedBoolean: any; SVGAnimatedEnumeration: any; SVGAnimatedInteger: any; SVGAnimatedLength: any; SVGAnimatedLengthList: any; SVGAnimatedNumber: any; SVGAnimatedNumberList: any; SVGAnimatedPreserveAspectRatio: any; SVGAnimatedRect: any; SVGAnimatedString: any; SVGAnimatedTransformList: any; SVGAnimationElement: any; SVGCircleElement: any; SVGClipPathElement: any; SVGComponentTransferFunctionElement: any; SVGDefsElement: any; SVGDescElement: any; SVGElement: any; SVGEllipseElement: any; SVGFEBlendElement: any; SVGFEColorMatrixElement: any; SVGFEComponentTransferElement: any; SVGFECompositeElement: any; SVGFEConvolveMatrixElement: any; SVGFEDiffuseLightingElement: any; SVGFEDisplacementMapElement: any; SVGFEDistantLightElement: any; SVGFEDropShadowElement: any; SVGFEFloodElement: any; SVGFEFuncAElement: any; SVGFEFuncBElement: any; SVGFEFuncGElement: any; SVGFEFuncRElement: any; SVGFEGaussianBlurElement: any; SVGFEImageElement: any; SVGFEMergeElement: any; SVGFEMergeNodeElement: any; SVGFEMorphologyElement: any; SVGFEOffsetElement: any; SVGFEPointLightElement: any; SVGFESpecularLightingElement: any; SVGFESpotLightElement: any; SVGFETileElement: any; SVGFETurbulenceElement: any; SVGFilterElement: any; SVGForeignObjectElement: any; SVGGElement: any; SVGGeometryElement: any; SVGGradientElement: any; SVGGraphicsElement: any; SVGImageElement: any; SVGLength: any; SVGLengthList: any; SVGLineElement: any; SVGLinearGradientElement: any; SVGMPathElement: any; SVGMarkerElement: any; SVGMaskElement: any; SVGMetadataElement: any; SVGNumber: any; SVGNumberList: any; SVGPathElement: any; SVGPatternElement: any; SVGPointList: any; SVGPolygonElement: any; SVGPolylineElement: any; SVGPreserveAspectRatio: any; SVGRadialGradientElement: any; SVGRectElement: any; SVGSVGElement: any; SVGScriptElement: any; SVGSetElement: any; SVGStopElement: any; SVGStringList: any; SVGStyleElement: any; SVGSwitchElement: any; SVGSymbolElement: any; SVGTSpanElement: any; SVGTextContentElement: any; SVGTextElement: any; SVGTextPathElement: any; SVGTextPositioningElement: any; SVGTitleElement: any; SVGTransform: any; SVGTransformList: any; SVGUnitTypes: any; SVGUseElement: any; SVGViewElement: any; Screen: any; ScreenOrientation: any; ScriptProcessorNode: any; SecurityPolicyViolationEvent: any; Selection: any; ServiceWorker: any; ServiceWorkerContainer: any; ServiceWorkerRegistration: any; ShadowRoot: any; SharedWorker: any; SourceBuffer: any; SourceBufferList: any; SpeechRecognitionAlternative: any; SpeechRecognitionResult: any; SpeechRecognitionResultList: any; SpeechSynthesis: any; SpeechSynthesisErrorEvent: any; SpeechSynthesisEvent: any; SpeechSynthesisUtterance: any; SpeechSynthesisVoice: any; StaticRange: any; StereoPannerNode: any; Storage: any; StorageEvent: any; StorageManager: any; StyleSheet: any; StyleSheetList: any; SubmitEvent: any; SubtleCrypto: any; Text: any; TextDecoder: any; TextDecoderStream: any; TextEncoder: any; TextEncoderStream: any; TextMetrics: any; TextTrack: any; TextTrackCue: any; TextTrackCueList: any; TextTrackList: any; TimeRanges: any; Touch: any; TouchEvent: any; TouchList: any; TrackEvent: any; TransformStream: any; TransformStreamDefaultController: any; TransitionEvent: any; TreeWalker: any; UIEvent: any; URL: any; webkitURL: any; URLSearchParams: any; VTTCue: any; VTTRegion: any; ValidityState: any; VideoPlaybackQuality: any; VisualViewport: any; WaveShaperNode: any; WebGL2RenderingContext: any; WebGLActiveInfo: any; WebGLBuffer: any; WebGLContextEvent: any; WebGLFramebuffer: any; WebGLProgram: any; WebGLQuery: any; WebGLRenderbuffer: any; WebGLRenderingContext: any; WebGLSampler: any; WebGLShader: any; WebGLShaderPrecisionFormat: any; WebGLSync: any; WebGLTexture: any; WebGLTransformFeedback: any; WebGLUniformLocation: any; WebGLVertexArrayObject: any; WebSocket: any; WheelEvent: any; Window: any; Worker: any; Worklet: any; WritableStream: any; WritableStreamDefaultController: any; WritableStreamDefaultWriter: any; XMLDocument: any; XMLHttpRequest: any; XMLHttpRequestEventTarget: any; XMLHttpRequestUpload: any; XMLSerializer: any; XPathEvaluator: any; XPathExpression: any; XPathResult: any; XSLTProcessor: any; console: any; CSS: any; WebAssembly: any; Audio: any; Image: any; Option: any; Map: any; WeakMap: any; Set: any; WeakSet: any; Proxy: any; Reflect: any; foo: any; undefined: any; }; designMode: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; dir: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly doctype: { readonly name: any; readonly ownerDocument: any; readonly publicId: any; readonly systemId: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; after: any; before: any; remove: any; replaceWith: any; }; readonly documentElement: { accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; spellcheck: any; title: any; translate: any; click: any; addEventListener: any; removeEventListener: any; readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; }; readonly documentURI: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; domain: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly embeds: { item: any; namedItem: any; readonly length: any; }; fgColor: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly forms: { item: any; namedItem: any; readonly length: any; }; readonly fullscreen: { valueOf: any; }; readonly fullscreenEnabled: { valueOf: any; }; readonly head: { addEventListener: any; removeEventListener: any; accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; spellcheck: any; title: any; translate: any; click: any; readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; }; readonly hidden: { valueOf: any; }; readonly images: { item: any; namedItem: any; readonly length: any; }; readonly implementation: { createDocument: any; createDocumentType: any; createHTMLDocument: any; hasFeature: any; }; readonly inputEncoding: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly lastModified: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; linkColor: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly links: { item: any; namedItem: any; readonly length: any; }; location: { readonly ancestorOrigins: any; hash: any; host: any; hostname: any; href: any; toString: any; readonly origin: any; pathname: any; port: any; protocol: any; search: any; assign: any; reload: any; replace: any; }; onfullscreenchange: unknown; onfullscreenerror: unknown; onpointerlockchange: unknown; onpointerlockerror: unknown; onreadystatechange: unknown; onvisibilitychange: unknown; readonly ownerDocument: unknown; readonly pictureInPictureEnabled: { valueOf: any; }; readonly plugins: { item: any; namedItem: any; readonly length: any; }; readonly readyState: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly referrer: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly rootElement: { currentScale: any; readonly currentTranslate: any; readonly height: any; readonly width: any; readonly x: any; readonly y: any; animationsPaused: any; checkEnclosure: any; checkIntersection: any; createSVGAngle: any; createSVGLength: any; createSVGMatrix: any; createSVGNumber: any; createSVGPoint: any; createSVGRect: any; createSVGTransform: any; createSVGTransformFromMatrix: any; deselectAll: any; forceRedraw: any; getCurrentTime: any; getElementById: any; getEnclosureList: any; getIntersectionList: any; pauseAnimations: any; setCurrentTime: any; suspendRedraw: any; unpauseAnimations: any; unsuspendRedraw: any; unsuspendRedrawAll: any; addEventListener: any; removeEventListener: any; readonly transform: any; getBBox: any; getCTM: any; getScreenCTM: any; readonly className: any; readonly ownerSVGElement: any; readonly viewportElement: any; readonly attributes: any; readonly classList: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; readonly requiredExtensions: any; readonly systemLanguage: any; readonly preserveAspectRatio: any; readonly viewBox: any; onafterprint: any; onbeforeprint: any; onbeforeunload: any; ongamepadconnected: any; ongamepaddisconnected: any; onhashchange: any; onlanguagechange: any; onmessage: any; onmessageerror: any; onoffline: any; ononline: any; onpagehide: any; onpageshow: any; onpopstate: any; onrejectionhandled: any; onstorage: any; onunhandledrejection: any; onunload: any; }; readonly scripts: { item: any; namedItem: any; readonly length: any; }; readonly scrollingElement: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly timeline: { readonly currentTime: any; }; title: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly visibilityState: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; vlinkColor: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; adoptNode: unknown; captureEvents: unknown; caretRangeFromPoint: unknown; clear: unknown; close: unknown; createAttribute: unknown; createAttributeNS: unknown; createCDATASection: unknown; createComment: unknown; createDocumentFragment: unknown; createElement: unknown; createElementNS: unknown; createEvent: unknown; createNodeIterator: unknown; createProcessingInstruction: unknown; createRange: unknown; createTextNode: unknown; createTreeWalker: unknown; elementFromPoint: unknown; elementsFromPoint: unknown; execCommand: unknown; exitFullscreen: unknown; exitPictureInPicture: unknown; exitPointerLock: unknown; getElementById: unknown; getElementsByClassName: unknown; getElementsByName: unknown; getElementsByTagName: unknown; getElementsByTagNameNS: unknown; getSelection: unknown; hasFocus: unknown; hasStorageAccess: unknown; importNode: unknown; open: unknown; queryCommandEnabled: unknown; queryCommandIndeterm: unknown; queryCommandState: unknown; queryCommandSupported: unknown; queryCommandValue: unknown; releaseEvents: unknown; requestStorageAccess: unknown; write: unknown; writeln: unknown; addEventListener: unknown; removeEventListener: unknown; readonly baseURI: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly childNodes: { item: any; forEach: any; readonly length: any; }; readonly firstChild: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly isConnected: { valueOf: any; }; readonly lastChild: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly nextSibling: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly nodeName: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly nodeType: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; nodeValue: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly parentElement: { accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; spellcheck: any; title: any; translate: any; click: any; addEventListener: any; removeEventListener: any; readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; }; readonly parentNode: { readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly previousSibling: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; textContent: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; appendChild: unknown; cloneNode: unknown; compareDocumentPosition: unknown; contains: unknown; getRootNode: unknown; hasChildNodes: unknown; insertBefore: unknown; isDefaultNamespace: unknown; isEqualNode: unknown; isSameNode: unknown; lookupNamespaceURI: unknown; lookupPrefix: unknown; normalize: unknown; removeChild: unknown; replaceChild: unknown; readonly ATTRIBUTE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly CDATA_SECTION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly COMMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_FRAGMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_CONTAINED_BY: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_CONTAINS: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_DISCONNECTED: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_FOLLOWING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_PRECEDING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_TYPE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ELEMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ENTITY_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ENTITY_REFERENCE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly NOTATION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly PROCESSING_INSTRUCTION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly TEXT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; dispatchEvent: unknown; oncopy: unknown; oncut: unknown; onpaste: unknown; readonly activeElement: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly fullscreenElement: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly pictureInPictureElement: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly pointerLockElement: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly styleSheets: { readonly length: any; item: any; }; getAnimations: unknown; readonly fonts: { onloading: any; onloadingdone: any; onloadingerror: any; readonly ready: any; readonly status: any; check: any; load: any; forEach: any; addEventListener: any; removeEventListener: any; dispatchEvent: any; }; onabort: unknown; onanimationcancel: unknown; onanimationend: unknown; onanimationiteration: unknown; onanimationstart: unknown; onauxclick: unknown; onblur: unknown; oncanplay: unknown; oncanplaythrough: unknown; onchange: unknown; onclick: unknown; onclose: unknown; oncontextmenu: unknown; oncuechange: unknown; ondblclick: unknown; ondrag: unknown; ondragend: unknown; ondragenter: unknown; ondragleave: unknown; ondragover: unknown; ondragstart: unknown; ondrop: unknown; ondurationchange: unknown; onemptied: unknown; onended: unknown; onerror: unknown; onfocus: unknown; onformdata: unknown; ongotpointercapture: unknown; oninput: unknown; oninvalid: unknown; onkeydown: unknown; onkeypress: unknown; onkeyup: unknown; onload: unknown; onloadeddata: unknown; onloadedmetadata: unknown; onloadstart: unknown; onlostpointercapture: unknown; onmousedown: unknown; onmouseenter: unknown; onmouseleave: unknown; onmousemove: unknown; onmouseout: unknown; onmouseover: unknown; onmouseup: unknown; onpause: unknown; onplay: unknown; onplaying: unknown; onpointercancel: unknown; onpointerdown: unknown; onpointerenter: unknown; onpointerleave: unknown; onpointermove: unknown; onpointerout: unknown; onpointerover: unknown; onpointerup: unknown; onprogress: unknown; onratechange: unknown; onreset: unknown; onresize: unknown; onscroll: unknown; onseeked: unknown; onseeking: unknown; onselect: unknown; onselectionchange: unknown; onselectstart: unknown; onstalled: unknown; onsubmit: unknown; onsuspend: unknown; ontimeupdate: unknown; ontoggle: unknown; ontouchcancel?: unknown; ontouchend?: unknown; ontouchmove?: unknown; ontouchstart?: unknown; ontransitioncancel: unknown; ontransitionend: unknown; ontransitionrun: unknown; ontransitionstart: unknown; onvolumechange: unknown; onwaiting: unknown; onwebkitanimationend: unknown; onwebkitanimationiteration: unknown; onwebkitanimationstart: unknown; onwebkittransitionend: unknown; onwheel: unknown; readonly childElementCount: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly children: { namedItem: any; readonly length: any; item: any; }; readonly firstElementChild: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly lastElementChild: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; append: unknown; prepend: unknown; querySelector: unknown; querySelectorAll: unknown; replaceChildren: unknown; createExpression: unknown; createNSResolver: unknown; evaluate: unknown; } ->activeElement : { readonly attributes: { readonly length: any; getNamedItem: any; getNamedItemNS: any; item: any; removeNamedItem: any; removeNamedItemNS: any; setNamedItem: any; setNamedItemNS: any; }; readonly classList: { readonly length: any; value: any; toString: any; add: any; contains: any; item: any; remove: any; replace: any; supports: any; toggle: any; forEach: any; }; className: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly clientHeight: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly clientLeft: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly clientTop: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly clientWidth: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; id: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly localName: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly namespaceURI: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; onfullscreenchange: unknown; onfullscreenerror: unknown; outerHTML: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly ownerDocument: { readonly URL: any; alinkColor: any; readonly all: any; readonly anchors: any; readonly applets: any; bgColor: any; body: any; readonly characterSet: any; readonly charset: any; readonly compatMode: any; readonly contentType: any; cookie: any; readonly currentScript: any; readonly defaultView: any; designMode: any; dir: any; readonly doctype: any; readonly documentElement: any; readonly documentURI: any; domain: any; readonly embeds: any; fgColor: any; readonly forms: any; readonly fullscreen: any; readonly fullscreenEnabled: any; readonly head: any; readonly hidden: any; readonly images: any; readonly implementation: any; readonly inputEncoding: any; readonly lastModified: any; linkColor: any; readonly links: any; location: any; onfullscreenchange: any; onfullscreenerror: any; onpointerlockchange: any; onpointerlockerror: any; onreadystatechange: any; onvisibilitychange: any; readonly ownerDocument: any; readonly pictureInPictureEnabled: any; readonly plugins: any; readonly readyState: any; readonly referrer: any; readonly rootElement: any; readonly scripts: any; readonly scrollingElement: any; readonly timeline: any; title: any; readonly visibilityState: any; vlinkColor: any; adoptNode: any; captureEvents: any; caretRangeFromPoint: any; clear: any; close: any; createAttribute: any; createAttributeNS: any; createCDATASection: any; createComment: any; createDocumentFragment: any; createElement: any; createElementNS: any; createEvent: any; createNodeIterator: any; createProcessingInstruction: any; createRange: any; createTextNode: any; createTreeWalker: any; elementFromPoint: any; elementsFromPoint: any; execCommand: any; exitFullscreen: any; exitPictureInPicture: any; exitPointerLock: any; getElementById: any; getElementsByClassName: any; getElementsByName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getSelection: any; hasFocus: any; hasStorageAccess: any; importNode: any; open: any; queryCommandEnabled: any; queryCommandIndeterm: any; queryCommandState: any; queryCommandSupported: any; queryCommandValue: any; releaseEvents: any; requestStorageAccess: any; write: any; writeln: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; oncopy: any; oncut: any; onpaste: any; readonly activeElement: any; readonly fullscreenElement: any; readonly pictureInPictureElement: any; readonly pointerLockElement: any; readonly styleSheets: any; getAnimations: any; readonly fonts: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; createExpression: any; createNSResolver: any; evaluate: any; }; readonly part: { readonly length: any; value: any; toString: any; add: any; contains: any; item: any; remove: any; replace: any; supports: any; toggle: any; forEach: any; }; readonly prefix: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly scrollHeight: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; scrollLeft: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; scrollTop: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly scrollWidth: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly shadowRoot: { readonly delegatesFocus: any; readonly host: any; readonly mode: any; readonly ownerDocument: any; getElementById: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly activeElement: any; readonly fullscreenElement: any; readonly pictureInPictureElement: any; readonly pointerLockElement: any; readonly styleSheets: any; getAnimations: any; innerHTML: any; }; slot: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly tagName: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; attachShadow: unknown; closest: unknown; getAttribute: unknown; getAttributeNS: unknown; getAttributeNames: unknown; getAttributeNode: unknown; getAttributeNodeNS: unknown; getBoundingClientRect: unknown; getClientRects: unknown; getElementsByClassName: unknown; getElementsByTagName: unknown; getElementsByTagNameNS: unknown; hasAttribute: unknown; hasAttributeNS: unknown; hasAttributes: unknown; hasPointerCapture: unknown; insertAdjacentElement: unknown; insertAdjacentHTML: unknown; insertAdjacentText: unknown; matches: unknown; releasePointerCapture: unknown; removeAttribute: unknown; removeAttributeNS: unknown; removeAttributeNode: unknown; requestFullscreen: unknown; requestPointerLock: unknown; scroll: unknown; scrollBy: unknown; scrollIntoView: unknown; scrollTo: unknown; setAttribute: unknown; setAttributeNS: unknown; setAttributeNode: unknown; setAttributeNodeNS: unknown; setPointerCapture: unknown; toggleAttribute: unknown; webkitMatchesSelector: unknown; addEventListener: unknown; removeEventListener: unknown; readonly baseURI: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly childNodes: { item: any; forEach: any; readonly length: any; }; readonly firstChild: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly isConnected: { valueOf: any; }; readonly lastChild: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly nextSibling: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly nodeName: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly nodeType: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; nodeValue: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly parentElement: { accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; spellcheck: any; title: any; translate: any; click: any; addEventListener: any; removeEventListener: any; readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; }; readonly parentNode: { readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly previousSibling: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; textContent: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; appendChild: unknown; cloneNode: unknown; compareDocumentPosition: unknown; contains: unknown; getRootNode: unknown; hasChildNodes: unknown; insertBefore: unknown; isDefaultNamespace: unknown; isEqualNode: unknown; isSameNode: unknown; lookupNamespaceURI: unknown; lookupPrefix: unknown; normalize: unknown; removeChild: unknown; replaceChild: unknown; readonly ATTRIBUTE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly CDATA_SECTION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly COMMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_FRAGMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_CONTAINED_BY: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_CONTAINS: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_DISCONNECTED: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_FOLLOWING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_PRECEDING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_TYPE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ELEMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ENTITY_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ENTITY_REFERENCE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly NOTATION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly PROCESSING_INSTRUCTION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly TEXT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; dispatchEvent: unknown; ariaAtomic: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaAutoComplete: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaBusy: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaChecked: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaColCount: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaColIndex: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaColSpan: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaCurrent: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaDisabled: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaExpanded: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaHasPopup: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaHidden: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaKeyShortcuts: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaLabel: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaLevel: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaLive: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaModal: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaMultiLine: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaMultiSelectable: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaOrientation: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaPlaceholder: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaPosInSet: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaPressed: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaReadOnly: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRequired: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRoleDescription: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRowCount: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRowIndex: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRowSpan: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaSelected: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaSetSize: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaSort: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaValueMax: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaValueMin: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaValueNow: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaValueText: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; animate: unknown; getAnimations: unknown; after: unknown; before: unknown; remove: unknown; replaceWith: unknown; innerHTML: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly nextElementSibling: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly previousElementSibling: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly childElementCount: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly children: { namedItem: any; readonly length: any; item: any; }; readonly firstElementChild: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly lastElementChild: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; append: unknown; prepend: unknown; querySelector: unknown; querySelectorAll: unknown; replaceChildren: unknown; readonly assignedSlot: { name: any; assignedElements: any; assignedNodes: any; addEventListener: any; removeEventListener: any; accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; spellcheck: any; title: any; translate: any; click: any; readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; }; } +>out2.responseXML.activeElement : { readonly attributes: { readonly length: any; getNamedItem: any; getNamedItemNS: any; item: any; removeNamedItem: any; removeNamedItemNS: any; setNamedItem: any; setNamedItemNS: any; }; readonly classList: { readonly length: any; value: any; toString: any; add: any; contains: any; item: any; remove: any; replace: any; supports: any; toggle: any; forEach: any; }; className: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly clientHeight: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly clientLeft: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly clientTop: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly clientWidth: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; id: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly localName: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly namespaceURI: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; onfullscreenchange: unknown; onfullscreenerror: unknown; outerHTML: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly ownerDocument: { readonly URL: any; alinkColor: any; readonly all: any; readonly anchors: any; readonly applets: any; bgColor: any; body: any; readonly characterSet: any; readonly charset: any; readonly compatMode: any; readonly contentType: any; cookie: any; readonly currentScript: any; readonly defaultView: any; designMode: any; dir: any; readonly doctype: any; readonly documentElement: any; readonly documentURI: any; domain: any; readonly embeds: any; fgColor: any; readonly forms: any; readonly fullscreen: any; readonly fullscreenEnabled: any; readonly head: any; readonly hidden: any; readonly images: any; readonly implementation: any; readonly inputEncoding: any; readonly lastModified: any; linkColor: any; readonly links: any; location: any; onfullscreenchange: any; onfullscreenerror: any; onpointerlockchange: any; onpointerlockerror: any; onreadystatechange: any; onvisibilitychange: any; readonly ownerDocument: any; readonly pictureInPictureEnabled: any; readonly plugins: any; readonly readyState: any; readonly referrer: any; readonly rootElement: any; readonly scripts: any; readonly scrollingElement: any; readonly timeline: any; title: any; readonly visibilityState: any; vlinkColor: any; adoptNode: any; captureEvents: any; caretRangeFromPoint: any; clear: any; close: any; createAttribute: any; createAttributeNS: any; createCDATASection: any; createComment: any; createDocumentFragment: any; createElement: any; createElementNS: any; createEvent: any; createNodeIterator: any; createProcessingInstruction: any; createRange: any; createTextNode: any; createTreeWalker: any; execCommand: any; exitFullscreen: any; exitPictureInPicture: any; exitPointerLock: any; getElementById: any; getElementsByClassName: any; getElementsByName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getSelection: any; hasFocus: any; hasStorageAccess: any; importNode: any; open: any; queryCommandEnabled: any; queryCommandIndeterm: any; queryCommandState: any; queryCommandSupported: any; queryCommandValue: any; releaseEvents: any; requestStorageAccess: any; write: any; writeln: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; oncopy: any; oncut: any; onpaste: any; readonly activeElement: any; readonly fullscreenElement: any; readonly pictureInPictureElement: any; readonly pointerLockElement: any; readonly styleSheets: any; elementFromPoint: any; elementsFromPoint: any; getAnimations: any; readonly fonts: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; createExpression: any; createNSResolver: any; evaluate: any; }; readonly part: { readonly length: any; value: any; toString: any; add: any; contains: any; item: any; remove: any; replace: any; supports: any; toggle: any; forEach: any; }; readonly prefix: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly scrollHeight: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; scrollLeft: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; scrollTop: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly scrollWidth: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly shadowRoot: { readonly delegatesFocus: any; readonly host: any; readonly mode: any; onslotchange: any; readonly slotAssignment: any; addEventListener: any; removeEventListener: any; readonly ownerDocument: any; getElementById: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly activeElement: any; readonly fullscreenElement: any; readonly pictureInPictureElement: any; readonly pointerLockElement: any; readonly styleSheets: any; elementFromPoint: any; elementsFromPoint: any; getAnimations: any; innerHTML: any; }; slot: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly tagName: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; attachShadow: unknown; closest: unknown; getAttribute: unknown; getAttributeNS: unknown; getAttributeNames: unknown; getAttributeNode: unknown; getAttributeNodeNS: unknown; getBoundingClientRect: unknown; getClientRects: unknown; getElementsByClassName: unknown; getElementsByTagName: unknown; getElementsByTagNameNS: unknown; hasAttribute: unknown; hasAttributeNS: unknown; hasAttributes: unknown; hasPointerCapture: unknown; insertAdjacentElement: unknown; insertAdjacentHTML: unknown; insertAdjacentText: unknown; matches: unknown; releasePointerCapture: unknown; removeAttribute: unknown; removeAttributeNS: unknown; removeAttributeNode: unknown; requestFullscreen: unknown; requestPointerLock: unknown; scroll: unknown; scrollBy: unknown; scrollIntoView: unknown; scrollTo: unknown; setAttribute: unknown; setAttributeNS: unknown; setAttributeNode: unknown; setAttributeNodeNS: unknown; setPointerCapture: unknown; toggleAttribute: unknown; webkitMatchesSelector: unknown; addEventListener: unknown; removeEventListener: unknown; readonly baseURI: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly childNodes: { item: any; forEach: any; readonly length: any; }; readonly firstChild: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly isConnected: { valueOf: any; }; readonly lastChild: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly nextSibling: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly nodeName: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly nodeType: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; nodeValue: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly parentElement: { accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; spellcheck: any; title: any; translate: any; attachInternals: any; click: any; addEventListener: any; removeEventListener: any; readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; }; readonly parentNode: { readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly previousSibling: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; textContent: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; appendChild: unknown; cloneNode: unknown; compareDocumentPosition: unknown; contains: unknown; getRootNode: unknown; hasChildNodes: unknown; insertBefore: unknown; isDefaultNamespace: unknown; isEqualNode: unknown; isSameNode: unknown; lookupNamespaceURI: unknown; lookupPrefix: unknown; normalize: unknown; removeChild: unknown; replaceChild: unknown; readonly ATTRIBUTE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly CDATA_SECTION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly COMMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_FRAGMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_CONTAINED_BY: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_CONTAINS: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_DISCONNECTED: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_FOLLOWING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_PRECEDING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_TYPE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ELEMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ENTITY_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ENTITY_REFERENCE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly NOTATION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly PROCESSING_INSTRUCTION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly TEXT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; dispatchEvent: unknown; ariaAtomic: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaAutoComplete: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaBusy: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaChecked: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaColCount: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaColIndex: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaColSpan: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaCurrent: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaDisabled: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaExpanded: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaHasPopup: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaHidden: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaKeyShortcuts: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaLabel: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaLevel: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaLive: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaModal: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaMultiLine: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaMultiSelectable: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaOrientation: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaPlaceholder: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaPosInSet: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaPressed: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaReadOnly: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRequired: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRoleDescription: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRowCount: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRowIndex: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRowSpan: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaSelected: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaSetSize: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaSort: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaValueMax: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaValueMin: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaValueNow: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaValueText: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; animate: unknown; getAnimations: unknown; after: unknown; before: unknown; remove: unknown; replaceWith: unknown; innerHTML: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly nextElementSibling: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly previousElementSibling: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly childElementCount: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly children: { namedItem: any; readonly length: any; item: any; }; readonly firstElementChild: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly lastElementChild: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; append: unknown; prepend: unknown; querySelector: unknown; querySelectorAll: unknown; replaceChildren: unknown; readonly assignedSlot: { name: any; assign: any; assignedElements: any; assignedNodes: any; addEventListener: any; removeEventListener: any; accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; spellcheck: any; title: any; translate: any; attachInternals: any; click: any; readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; }; } +>out2.responseXML : { readonly URL: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; alinkColor: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly all: { readonly length: any; item: any; namedItem: any; }; readonly anchors: { item: any; namedItem: any; readonly length: any; }; readonly applets: { namedItem: any; readonly length: any; item: any; }; bgColor: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; body: { accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; spellcheck: any; title: any; translate: any; attachInternals: any; click: any; addEventListener: any; removeEventListener: any; readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; }; readonly characterSet: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly charset: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly compatMode: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly contentType: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; cookie: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly currentScript: { async: any; charset: any; crossOrigin: any; defer: any; event: any; htmlFor: any; integrity: any; noModule: any; referrerPolicy: any; src: any; text: any; type: any; addEventListener: any; removeEventListener: any; accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; spellcheck: any; title: any; translate: any; attachInternals: any; click: any; readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; } | { type: any; addEventListener: any; removeEventListener: any; readonly className: any; readonly ownerSVGElement: any; readonly viewportElement: any; readonly attributes: any; readonly classList: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; readonly href: any; }; readonly defaultView: { clientInformation: any; closed: any; customElements: any; devicePixelRatio: any; document: any; event: any; external: any; frameElement: any; frames: any; history: any; innerHeight: any; innerWidth: any; length: any; location: any; locationbar: any; menubar: any; name: any; navigator: any; ondevicemotion: any; ondeviceorientation: any; onorientationchange: any; opener: any; orientation: any; outerHeight: any; outerWidth: any; pageXOffset: any; pageYOffset: any; parent: any; personalbar: any; screen: any; screenLeft: any; screenTop: any; screenX: any; screenY: any; scrollX: any; scrollY: any; scrollbars: any; self: any; speechSynthesis: any; status: any; statusbar: any; toolbar: any; top: any; visualViewport: any; window: any; alert: any; blur: any; cancelIdleCallback: any; captureEvents: any; close: any; confirm: any; focus: any; getComputedStyle: any; getSelection: any; matchMedia: any; moveBy: any; moveTo: any; open: any; postMessage: any; print: any; prompt: any; releaseEvents: any; requestIdleCallback: any; resizeBy: any; resizeTo: any; scroll: any; scrollBy: any; scrollTo: any; stop: any; addEventListener: any; removeEventListener: any; dispatchEvent: any; cancelAnimationFrame: any; requestAnimationFrame: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel: any; ontouchend: any; ontouchmove: any; ontouchstart: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; onafterprint: any; onbeforeprint: any; onbeforeunload: any; ongamepadconnected: any; ongamepaddisconnected: any; onhashchange: any; onlanguagechange: any; onmessage: any; onmessageerror: any; onoffline: any; ononline: any; onpagehide: any; onpageshow: any; onpopstate: any; onrejectionhandled: any; onstorage: any; onunhandledrejection: any; onunload: any; localStorage: any; caches: any; crossOriginIsolated: any; crypto: any; indexedDB: any; isSecureContext: any; origin: any; performance: any; atob: any; btoa: any; clearInterval: any; clearTimeout: any; createImageBitmap: any; fetch: any; queueMicrotask: any; reportError: any; setInterval: any; setTimeout: any; sessionStorage: any; readonly globalThis: any; eval: any; parseInt: any; parseFloat: any; isNaN: any; isFinite: any; decodeURI: any; decodeURIComponent: any; encodeURI: any; encodeURIComponent: any; escape: any; unescape: any; NaN: any; Infinity: any; Symbol: any; Object: any; Function: any; String: any; Boolean: any; Number: any; Math: any; Date: any; RegExp: any; Error: any; EvalError: any; RangeError: any; ReferenceError: any; SyntaxError: any; TypeError: any; URIError: any; JSON: any; Array: any; Promise: any; ArrayBuffer: any; DataView: any; Int8Array: any; Uint8Array: any; Uint8ClampedArray: any; Int16Array: any; Uint16Array: any; Int32Array: any; Uint32Array: any; Float32Array: any; Float64Array: any; Intl: any; toString: any; NodeFilter: any; AbortController: any; AbortSignal: any; AbstractRange: any; AnalyserNode: any; Animation: any; AnimationEffect: any; AnimationEvent: any; AnimationPlaybackEvent: any; AnimationTimeline: any; Attr: any; AudioBuffer: any; AudioBufferSourceNode: any; AudioContext: any; AudioDestinationNode: any; AudioListener: any; AudioNode: any; AudioParam: any; AudioParamMap: any; AudioProcessingEvent: any; AudioScheduledSourceNode: any; AudioWorklet: any; AudioWorkletNode: any; AuthenticatorAssertionResponse: any; AuthenticatorAttestationResponse: any; AuthenticatorResponse: any; BarProp: any; BaseAudioContext: any; BeforeUnloadEvent: any; BiquadFilterNode: any; Blob: any; BlobEvent: any; BroadcastChannel: any; ByteLengthQueuingStrategy: any; CDATASection: any; CSSAnimation: any; CSSConditionRule: any; CSSCounterStyleRule: any; CSSFontFaceRule: any; CSSGroupingRule: any; CSSImportRule: any; CSSKeyframeRule: any; CSSKeyframesRule: any; CSSMediaRule: any; CSSNamespaceRule: any; CSSPageRule: any; CSSRule: any; CSSRuleList: any; CSSStyleDeclaration: any; CSSStyleRule: any; CSSStyleSheet: any; CSSSupportsRule: any; CSSTransition: any; Cache: any; CacheStorage: any; CanvasCaptureMediaStreamTrack: any; CanvasGradient: any; CanvasPattern: any; CanvasRenderingContext2D: any; ChannelMergerNode: any; ChannelSplitterNode: any; CharacterData: any; Clipboard: any; ClipboardEvent: any; ClipboardItem: any; CloseEvent: any; Comment: any; CompositionEvent: any; ConstantSourceNode: any; ConvolverNode: any; CountQueuingStrategy: any; Credential: any; CredentialsContainer: any; Crypto: any; CryptoKey: any; CustomElementRegistry: any; CustomEvent: any; DOMException: any; DOMImplementation: any; DOMMatrix: any; SVGMatrix: any; WebKitCSSMatrix: any; DOMMatrixReadOnly: any; DOMParser: any; DOMPoint: any; SVGPoint: any; DOMPointReadOnly: any; DOMQuad: any; DOMRect: any; SVGRect: any; DOMRectList: any; DOMRectReadOnly: any; DOMStringList: any; DOMStringMap: any; DOMTokenList: any; DataTransfer: any; DataTransferItem: any; DataTransferItemList: any; DelayNode: any; DeviceMotionEvent: any; DeviceOrientationEvent: any; Document: any; DocumentFragment: any; DocumentTimeline: any; DocumentType: any; DragEvent: any; DynamicsCompressorNode: any; Element: any; ElementInternals: any; ErrorEvent: any; Event: any; EventSource: any; EventTarget: any; External: any; File: any; FileList: any; FileReader: any; FileSystem: any; FileSystemDirectoryEntry: any; FileSystemDirectoryHandle: any; FileSystemDirectoryReader: any; FileSystemEntry: any; FileSystemFileEntry: any; FileSystemFileHandle: any; FileSystemHandle: any; FocusEvent: any; FontFace: any; FontFaceSet: any; FontFaceSetLoadEvent: any; FormData: any; FormDataEvent: any; GainNode: any; Gamepad: any; GamepadButton: any; GamepadEvent: any; GamepadHapticActuator: any; Geolocation: any; GeolocationCoordinates: any; GeolocationPosition: any; GeolocationPositionError: any; HTMLAllCollection: any; HTMLAnchorElement: any; HTMLAreaElement: any; HTMLAudioElement: any; HTMLBRElement: any; HTMLBaseElement: any; HTMLBodyElement: any; HTMLButtonElement: any; HTMLCanvasElement: any; HTMLCollection: any; HTMLDListElement: any; HTMLDataElement: any; HTMLDataListElement: any; HTMLDetailsElement: any; HTMLDirectoryElement: any; HTMLDivElement: any; HTMLDocument: any; HTMLElement: any; HTMLEmbedElement: any; HTMLFieldSetElement: any; HTMLFontElement: any; HTMLFormControlsCollection: any; HTMLFormElement: any; HTMLFrameElement: any; HTMLFrameSetElement: any; HTMLHRElement: any; HTMLHeadElement: any; HTMLHeadingElement: any; HTMLHtmlElement: any; HTMLIFrameElement: any; HTMLImageElement: any; HTMLInputElement: any; HTMLLIElement: any; HTMLLabelElement: any; HTMLLegendElement: any; HTMLLinkElement: any; HTMLMapElement: any; HTMLMarqueeElement: any; HTMLMediaElement: any; HTMLMenuElement: any; HTMLMetaElement: any; HTMLMeterElement: any; HTMLModElement: any; HTMLOListElement: any; HTMLObjectElement: any; HTMLOptGroupElement: any; HTMLOptionElement: any; HTMLOptionsCollection: any; HTMLOutputElement: any; HTMLParagraphElement: any; HTMLParamElement: any; HTMLPictureElement: any; HTMLPreElement: any; HTMLProgressElement: any; HTMLQuoteElement: any; HTMLScriptElement: any; HTMLSelectElement: any; HTMLSlotElement: any; HTMLSourceElement: any; HTMLSpanElement: any; HTMLStyleElement: any; HTMLTableCaptionElement: any; HTMLTableCellElement: any; HTMLTableColElement: any; HTMLTableElement: any; HTMLTableRowElement: any; HTMLTableSectionElement: any; HTMLTemplateElement: any; HTMLTextAreaElement: any; HTMLTimeElement: any; HTMLTitleElement: any; HTMLTrackElement: any; HTMLUListElement: any; HTMLUnknownElement: any; HTMLVideoElement: any; HashChangeEvent: any; Headers: any; History: any; IDBCursor: any; IDBCursorWithValue: any; IDBDatabase: any; IDBFactory: any; IDBIndex: any; IDBKeyRange: any; IDBObjectStore: any; IDBOpenDBRequest: any; IDBRequest: any; IDBTransaction: any; IDBVersionChangeEvent: any; IIRFilterNode: any; IdleDeadline: any; ImageBitmap: any; ImageBitmapRenderingContext: any; ImageData: any; InputDeviceInfo: any; InputEvent: any; IntersectionObserver: any; IntersectionObserverEntry: any; KeyboardEvent: any; KeyframeEffect: any; Location: any; Lock: any; LockManager: any; MathMLElement: any; MediaCapabilities: any; MediaDeviceInfo: any; MediaDevices: any; MediaElementAudioSourceNode: any; MediaEncryptedEvent: any; MediaError: any; MediaKeyMessageEvent: any; MediaKeySession: any; MediaKeyStatusMap: any; MediaKeySystemAccess: any; MediaKeys: any; MediaList: any; MediaMetadata: any; MediaQueryList: any; MediaQueryListEvent: any; MediaRecorder: any; MediaRecorderErrorEvent: any; MediaSession: any; MediaSource: any; MediaStream: any; MediaStreamAudioDestinationNode: any; MediaStreamAudioSourceNode: any; MediaStreamTrack: any; MediaStreamTrackEvent: any; MessageChannel: any; MessageEvent: any; MessagePort: any; MimeType: any; MimeTypeArray: any; MouseEvent: any; MutationEvent: any; MutationObserver: any; MutationRecord: any; NamedNodeMap: any; Navigator: any; NetworkInformation: any; Node: any; NodeIterator: any; NodeList: any; Notification: any; OfflineAudioCompletionEvent: any; OfflineAudioContext: any; OscillatorNode: any; OverconstrainedError: any; PageTransitionEvent: any; PannerNode: any; Path2D: any; PaymentMethodChangeEvent: any; PaymentRequest: any; PaymentRequestUpdateEvent: any; PaymentResponse: any; Performance: any; PerformanceEntry: any; PerformanceEventTiming: any; PerformanceMark: any; PerformanceMeasure: any; PerformanceNavigation: any; PerformanceNavigationTiming: any; PerformanceObserver: any; PerformanceObserverEntryList: any; PerformancePaintTiming: any; PerformanceResourceTiming: any; PerformanceServerTiming: any; PerformanceTiming: any; PeriodicWave: any; PermissionStatus: any; Permissions: any; PictureInPictureWindow: any; Plugin: any; PluginArray: any; PointerEvent: any; PopStateEvent: any; ProcessingInstruction: any; ProgressEvent: any; PromiseRejectionEvent: any; PublicKeyCredential: any; PushManager: any; PushSubscription: any; PushSubscriptionOptions: any; RTCCertificate: any; RTCDTMFSender: any; RTCDTMFToneChangeEvent: any; RTCDataChannel: any; RTCDataChannelEvent: any; RTCDtlsTransport: any; RTCIceCandidate: any; RTCIceTransport: any; RTCPeerConnection: any; RTCPeerConnectionIceErrorEvent: any; RTCPeerConnectionIceEvent: any; RTCRtpReceiver: any; RTCRtpSender: any; RTCRtpTransceiver: any; RTCSessionDescription: any; RTCStatsReport: any; RTCTrackEvent: any; RadioNodeList: any; Range: any; ReadableStream: any; ReadableStreamDefaultController: any; ReadableStreamDefaultReader: any; RemotePlayback: any; Request: any; ResizeObserver: any; ResizeObserverEntry: any; ResizeObserverSize: any; Response: any; SVGAElement: any; SVGAngle: any; SVGAnimateElement: any; SVGAnimateMotionElement: any; SVGAnimateTransformElement: any; SVGAnimatedAngle: any; SVGAnimatedBoolean: any; SVGAnimatedEnumeration: any; SVGAnimatedInteger: any; SVGAnimatedLength: any; SVGAnimatedLengthList: any; SVGAnimatedNumber: any; SVGAnimatedNumberList: any; SVGAnimatedPreserveAspectRatio: any; SVGAnimatedRect: any; SVGAnimatedString: any; SVGAnimatedTransformList: any; SVGAnimationElement: any; SVGCircleElement: any; SVGClipPathElement: any; SVGComponentTransferFunctionElement: any; SVGDefsElement: any; SVGDescElement: any; SVGElement: any; SVGEllipseElement: any; SVGFEBlendElement: any; SVGFEColorMatrixElement: any; SVGFEComponentTransferElement: any; SVGFECompositeElement: any; SVGFEConvolveMatrixElement: any; SVGFEDiffuseLightingElement: any; SVGFEDisplacementMapElement: any; SVGFEDistantLightElement: any; SVGFEDropShadowElement: any; SVGFEFloodElement: any; SVGFEFuncAElement: any; SVGFEFuncBElement: any; SVGFEFuncGElement: any; SVGFEFuncRElement: any; SVGFEGaussianBlurElement: any; SVGFEImageElement: any; SVGFEMergeElement: any; SVGFEMergeNodeElement: any; SVGFEMorphologyElement: any; SVGFEOffsetElement: any; SVGFEPointLightElement: any; SVGFESpecularLightingElement: any; SVGFESpotLightElement: any; SVGFETileElement: any; SVGFETurbulenceElement: any; SVGFilterElement: any; SVGForeignObjectElement: any; SVGGElement: any; SVGGeometryElement: any; SVGGradientElement: any; SVGGraphicsElement: any; SVGImageElement: any; SVGLength: any; SVGLengthList: any; SVGLineElement: any; SVGLinearGradientElement: any; SVGMPathElement: any; SVGMarkerElement: any; SVGMaskElement: any; SVGMetadataElement: any; SVGNumber: any; SVGNumberList: any; SVGPathElement: any; SVGPatternElement: any; SVGPointList: any; SVGPolygonElement: any; SVGPolylineElement: any; SVGPreserveAspectRatio: any; SVGRadialGradientElement: any; SVGRectElement: any; SVGSVGElement: any; SVGScriptElement: any; SVGSetElement: any; SVGStopElement: any; SVGStringList: any; SVGStyleElement: any; SVGSwitchElement: any; SVGSymbolElement: any; SVGTSpanElement: any; SVGTextContentElement: any; SVGTextElement: any; SVGTextPathElement: any; SVGTextPositioningElement: any; SVGTitleElement: any; SVGTransform: any; SVGTransformList: any; SVGUnitTypes: any; SVGUseElement: any; SVGViewElement: any; Screen: any; ScreenOrientation: any; ScriptProcessorNode: any; SecurityPolicyViolationEvent: any; Selection: any; ServiceWorker: any; ServiceWorkerContainer: any; ServiceWorkerRegistration: any; ShadowRoot: any; SharedWorker: any; SourceBuffer: any; SourceBufferList: any; SpeechRecognitionAlternative: any; SpeechRecognitionResult: any; SpeechRecognitionResultList: any; SpeechSynthesis: any; SpeechSynthesisErrorEvent: any; SpeechSynthesisEvent: any; SpeechSynthesisUtterance: any; SpeechSynthesisVoice: any; StaticRange: any; StereoPannerNode: any; Storage: any; StorageEvent: any; StorageManager: any; StyleSheet: any; StyleSheetList: any; SubmitEvent: any; SubtleCrypto: any; Text: any; TextDecoder: any; TextDecoderStream: any; TextEncoder: any; TextEncoderStream: any; TextMetrics: any; TextTrack: any; TextTrackCue: any; TextTrackCueList: any; TextTrackList: any; TimeRanges: any; Touch: any; TouchEvent: any; TouchList: any; TrackEvent: any; TransformStream: any; TransformStreamDefaultController: any; TransitionEvent: any; TreeWalker: any; UIEvent: any; URL: any; webkitURL: any; URLSearchParams: any; VTTCue: any; VTTRegion: any; ValidityState: any; VideoPlaybackQuality: any; VisualViewport: any; WaveShaperNode: any; WebGL2RenderingContext: any; WebGLActiveInfo: any; WebGLBuffer: any; WebGLContextEvent: any; WebGLFramebuffer: any; WebGLProgram: any; WebGLQuery: any; WebGLRenderbuffer: any; WebGLRenderingContext: any; WebGLSampler: any; WebGLShader: any; WebGLShaderPrecisionFormat: any; WebGLSync: any; WebGLTexture: any; WebGLTransformFeedback: any; WebGLUniformLocation: any; WebGLVertexArrayObject: any; WebSocket: any; WheelEvent: any; Window: any; Worker: any; Worklet: any; WritableStream: any; WritableStreamDefaultController: any; WritableStreamDefaultWriter: any; XMLDocument: any; XMLHttpRequest: any; XMLHttpRequestEventTarget: any; XMLHttpRequestUpload: any; XMLSerializer: any; XPathEvaluator: any; XPathExpression: any; XPathResult: any; XSLTProcessor: any; console: any; CSS: any; WebAssembly: any; Audio: any; Image: any; Option: any; Map: any; WeakMap: any; Set: any; WeakSet: any; Proxy: any; Reflect: any; foo: any; undefined: any; }; designMode: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; dir: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly doctype: { readonly name: any; readonly ownerDocument: any; readonly publicId: any; readonly systemId: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; after: any; before: any; remove: any; replaceWith: any; }; readonly documentElement: { accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; spellcheck: any; title: any; translate: any; attachInternals: any; click: any; addEventListener: any; removeEventListener: any; readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; }; readonly documentURI: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; domain: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly embeds: { item: any; namedItem: any; readonly length: any; }; fgColor: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly forms: { item: any; namedItem: any; readonly length: any; }; readonly fullscreen: { valueOf: any; }; readonly fullscreenEnabled: { valueOf: any; }; readonly head: { addEventListener: any; removeEventListener: any; accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; spellcheck: any; title: any; translate: any; attachInternals: any; click: any; readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; }; readonly hidden: { valueOf: any; }; readonly images: { item: any; namedItem: any; readonly length: any; }; readonly implementation: { createDocument: any; createDocumentType: any; createHTMLDocument: any; hasFeature: any; }; readonly inputEncoding: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly lastModified: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; linkColor: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly links: { item: any; namedItem: any; readonly length: any; }; location: { readonly ancestorOrigins: any; hash: any; host: any; hostname: any; href: any; toString: any; readonly origin: any; pathname: any; port: any; protocol: any; search: any; assign: any; reload: any; replace: any; }; onfullscreenchange: unknown; onfullscreenerror: unknown; onpointerlockchange: unknown; onpointerlockerror: unknown; onreadystatechange: unknown; onvisibilitychange: unknown; readonly ownerDocument: unknown; readonly pictureInPictureEnabled: { valueOf: any; }; readonly plugins: { item: any; namedItem: any; readonly length: any; }; readonly readyState: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly referrer: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly rootElement: { currentScale: any; readonly currentTranslate: any; readonly height: any; readonly width: any; readonly x: any; readonly y: any; animationsPaused: any; checkEnclosure: any; checkIntersection: any; createSVGAngle: any; createSVGLength: any; createSVGMatrix: any; createSVGNumber: any; createSVGPoint: any; createSVGRect: any; createSVGTransform: any; createSVGTransformFromMatrix: any; deselectAll: any; forceRedraw: any; getCurrentTime: any; getElementById: any; getEnclosureList: any; getIntersectionList: any; pauseAnimations: any; setCurrentTime: any; suspendRedraw: any; unpauseAnimations: any; unsuspendRedraw: any; unsuspendRedrawAll: any; addEventListener: any; removeEventListener: any; readonly transform: any; getBBox: any; getCTM: any; getScreenCTM: any; readonly className: any; readonly ownerSVGElement: any; readonly viewportElement: any; readonly attributes: any; readonly classList: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; readonly requiredExtensions: any; readonly systemLanguage: any; readonly preserveAspectRatio: any; readonly viewBox: any; onafterprint: any; onbeforeprint: any; onbeforeunload: any; ongamepadconnected: any; ongamepaddisconnected: any; onhashchange: any; onlanguagechange: any; onmessage: any; onmessageerror: any; onoffline: any; ononline: any; onpagehide: any; onpageshow: any; onpopstate: any; onrejectionhandled: any; onstorage: any; onunhandledrejection: any; onunload: any; }; readonly scripts: { item: any; namedItem: any; readonly length: any; }; readonly scrollingElement: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly timeline: { readonly currentTime: any; }; title: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly visibilityState: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; vlinkColor: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; adoptNode: unknown; captureEvents: unknown; caretRangeFromPoint: unknown; clear: unknown; close: unknown; createAttribute: unknown; createAttributeNS: unknown; createCDATASection: unknown; createComment: unknown; createDocumentFragment: unknown; createElement: unknown; createElementNS: unknown; createEvent: unknown; createNodeIterator: unknown; createProcessingInstruction: unknown; createRange: unknown; createTextNode: unknown; createTreeWalker: unknown; execCommand: unknown; exitFullscreen: unknown; exitPictureInPicture: unknown; exitPointerLock: unknown; getElementById: unknown; getElementsByClassName: unknown; getElementsByName: unknown; getElementsByTagName: unknown; getElementsByTagNameNS: unknown; getSelection: unknown; hasFocus: unknown; hasStorageAccess: unknown; importNode: unknown; open: unknown; queryCommandEnabled: unknown; queryCommandIndeterm: unknown; queryCommandState: unknown; queryCommandSupported: unknown; queryCommandValue: unknown; releaseEvents: unknown; requestStorageAccess: unknown; write: unknown; writeln: unknown; addEventListener: unknown; removeEventListener: unknown; readonly baseURI: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly childNodes: { item: any; forEach: any; readonly length: any; }; readonly firstChild: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly isConnected: { valueOf: any; }; readonly lastChild: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly nextSibling: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly nodeName: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly nodeType: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; nodeValue: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly parentElement: { accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; spellcheck: any; title: any; translate: any; attachInternals: any; click: any; addEventListener: any; removeEventListener: any; readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; }; readonly parentNode: { readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly previousSibling: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; textContent: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; appendChild: unknown; cloneNode: unknown; compareDocumentPosition: unknown; contains: unknown; getRootNode: unknown; hasChildNodes: unknown; insertBefore: unknown; isDefaultNamespace: unknown; isEqualNode: unknown; isSameNode: unknown; lookupNamespaceURI: unknown; lookupPrefix: unknown; normalize: unknown; removeChild: unknown; replaceChild: unknown; readonly ATTRIBUTE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly CDATA_SECTION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly COMMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_FRAGMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_CONTAINED_BY: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_CONTAINS: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_DISCONNECTED: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_FOLLOWING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_PRECEDING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_TYPE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ELEMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ENTITY_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ENTITY_REFERENCE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly NOTATION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly PROCESSING_INSTRUCTION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly TEXT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; dispatchEvent: unknown; oncopy: unknown; oncut: unknown; onpaste: unknown; readonly activeElement: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly fullscreenElement: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly pictureInPictureElement: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly pointerLockElement: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly styleSheets: { readonly length: any; item: any; }; elementFromPoint: unknown; elementsFromPoint: unknown; getAnimations: unknown; readonly fonts: { onloading: any; onloadingdone: any; onloadingerror: any; readonly ready: any; readonly status: any; check: any; load: any; forEach: any; addEventListener: any; removeEventListener: any; dispatchEvent: any; }; onabort: unknown; onanimationcancel: unknown; onanimationend: unknown; onanimationiteration: unknown; onanimationstart: unknown; onauxclick: unknown; onblur: unknown; oncanplay: unknown; oncanplaythrough: unknown; onchange: unknown; onclick: unknown; onclose: unknown; oncontextmenu: unknown; oncuechange: unknown; ondblclick: unknown; ondrag: unknown; ondragend: unknown; ondragenter: unknown; ondragleave: unknown; ondragover: unknown; ondragstart: unknown; ondrop: unknown; ondurationchange: unknown; onemptied: unknown; onended: unknown; onerror: unknown; onfocus: unknown; onformdata: unknown; ongotpointercapture: unknown; oninput: unknown; oninvalid: unknown; onkeydown: unknown; onkeypress: unknown; onkeyup: unknown; onload: unknown; onloadeddata: unknown; onloadedmetadata: unknown; onloadstart: unknown; onlostpointercapture: unknown; onmousedown: unknown; onmouseenter: unknown; onmouseleave: unknown; onmousemove: unknown; onmouseout: unknown; onmouseover: unknown; onmouseup: unknown; onpause: unknown; onplay: unknown; onplaying: unknown; onpointercancel: unknown; onpointerdown: unknown; onpointerenter: unknown; onpointerleave: unknown; onpointermove: unknown; onpointerout: unknown; onpointerover: unknown; onpointerup: unknown; onprogress: unknown; onratechange: unknown; onreset: unknown; onresize: unknown; onscroll: unknown; onsecuritypolicyviolation: unknown; onseeked: unknown; onseeking: unknown; onselect: unknown; onselectionchange: unknown; onselectstart: unknown; onslotchange: unknown; onstalled: unknown; onsubmit: unknown; onsuspend: unknown; ontimeupdate: unknown; ontoggle: unknown; ontouchcancel?: unknown; ontouchend?: unknown; ontouchmove?: unknown; ontouchstart?: unknown; ontransitioncancel: unknown; ontransitionend: unknown; ontransitionrun: unknown; ontransitionstart: unknown; onvolumechange: unknown; onwaiting: unknown; onwebkitanimationend: unknown; onwebkitanimationiteration: unknown; onwebkitanimationstart: unknown; onwebkittransitionend: unknown; onwheel: unknown; readonly childElementCount: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly children: { namedItem: any; readonly length: any; item: any; }; readonly firstElementChild: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly lastElementChild: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; append: unknown; prepend: unknown; querySelector: unknown; querySelectorAll: unknown; replaceChildren: unknown; createExpression: unknown; createNSResolver: unknown; evaluate: unknown; } +>out2 : { onreadystatechange: unknown; readonly readyState: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly response: unknown; readonly responseText: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; responseType: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly responseURL: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly responseXML: { readonly URL: any; alinkColor: any; readonly all: any; readonly anchors: any; readonly applets: any; bgColor: any; body: any; readonly characterSet: any; readonly charset: any; readonly compatMode: any; readonly contentType: any; cookie: any; readonly currentScript: any; readonly defaultView: any; designMode: any; dir: any; readonly doctype: any; readonly documentElement: any; readonly documentURI: any; domain: any; readonly embeds: any; fgColor: any; readonly forms: any; readonly fullscreen: any; readonly fullscreenEnabled: any; readonly head: any; readonly hidden: any; readonly images: any; readonly implementation: any; readonly inputEncoding: any; readonly lastModified: any; linkColor: any; readonly links: any; location: any; onfullscreenchange: any; onfullscreenerror: any; onpointerlockchange: any; onpointerlockerror: any; onreadystatechange: any; onvisibilitychange: any; readonly ownerDocument: any; readonly pictureInPictureEnabled: any; readonly plugins: any; readonly readyState: any; readonly referrer: any; readonly rootElement: any; readonly scripts: any; readonly scrollingElement: any; readonly timeline: any; title: any; readonly visibilityState: any; vlinkColor: any; adoptNode: any; captureEvents: any; caretRangeFromPoint: any; clear: any; close: any; createAttribute: any; createAttributeNS: any; createCDATASection: any; createComment: any; createDocumentFragment: any; createElement: any; createElementNS: any; createEvent: any; createNodeIterator: any; createProcessingInstruction: any; createRange: any; createTextNode: any; createTreeWalker: any; execCommand: any; exitFullscreen: any; exitPictureInPicture: any; exitPointerLock: any; getElementById: any; getElementsByClassName: any; getElementsByName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getSelection: any; hasFocus: any; hasStorageAccess: any; importNode: any; open: any; queryCommandEnabled: any; queryCommandIndeterm: any; queryCommandState: any; queryCommandSupported: any; queryCommandValue: any; releaseEvents: any; requestStorageAccess: any; write: any; writeln: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; oncopy: any; oncut: any; onpaste: any; readonly activeElement: any; readonly fullscreenElement: any; readonly pictureInPictureElement: any; readonly pointerLockElement: any; readonly styleSheets: any; elementFromPoint: any; elementsFromPoint: any; getAnimations: any; readonly fonts: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; createExpression: any; createNSResolver: any; evaluate: any; }; readonly status: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly statusText: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; timeout: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly upload: { addEventListener: any; removeEventListener: any; onabort: any; onerror: any; onload: any; onloadend: any; onloadstart: any; onprogress: any; ontimeout: any; dispatchEvent: any; }; withCredentials: { valueOf: any; }; abort: unknown; getAllResponseHeaders: unknown; getResponseHeader: unknown; open: unknown; overrideMimeType: unknown; send: unknown; setRequestHeader: unknown; readonly DONE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly HEADERS_RECEIVED: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly LOADING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly OPENED: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly UNSENT: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; addEventListener: unknown; removeEventListener: unknown; onabort: unknown; onerror: unknown; onload: unknown; onloadend: unknown; onloadstart: unknown; onprogress: unknown; ontimeout: unknown; dispatchEvent: unknown; } +>responseXML : { readonly URL: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; alinkColor: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly all: { readonly length: any; item: any; namedItem: any; }; readonly anchors: { item: any; namedItem: any; readonly length: any; }; readonly applets: { namedItem: any; readonly length: any; item: any; }; bgColor: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; body: { accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; spellcheck: any; title: any; translate: any; attachInternals: any; click: any; addEventListener: any; removeEventListener: any; readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; }; readonly characterSet: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly charset: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly compatMode: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly contentType: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; cookie: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly currentScript: { async: any; charset: any; crossOrigin: any; defer: any; event: any; htmlFor: any; integrity: any; noModule: any; referrerPolicy: any; src: any; text: any; type: any; addEventListener: any; removeEventListener: any; accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; spellcheck: any; title: any; translate: any; attachInternals: any; click: any; readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; } | { type: any; addEventListener: any; removeEventListener: any; readonly className: any; readonly ownerSVGElement: any; readonly viewportElement: any; readonly attributes: any; readonly classList: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; readonly href: any; }; readonly defaultView: { clientInformation: any; closed: any; customElements: any; devicePixelRatio: any; document: any; event: any; external: any; frameElement: any; frames: any; history: any; innerHeight: any; innerWidth: any; length: any; location: any; locationbar: any; menubar: any; name: any; navigator: any; ondevicemotion: any; ondeviceorientation: any; onorientationchange: any; opener: any; orientation: any; outerHeight: any; outerWidth: any; pageXOffset: any; pageYOffset: any; parent: any; personalbar: any; screen: any; screenLeft: any; screenTop: any; screenX: any; screenY: any; scrollX: any; scrollY: any; scrollbars: any; self: any; speechSynthesis: any; status: any; statusbar: any; toolbar: any; top: any; visualViewport: any; window: any; alert: any; blur: any; cancelIdleCallback: any; captureEvents: any; close: any; confirm: any; focus: any; getComputedStyle: any; getSelection: any; matchMedia: any; moveBy: any; moveTo: any; open: any; postMessage: any; print: any; prompt: any; releaseEvents: any; requestIdleCallback: any; resizeBy: any; resizeTo: any; scroll: any; scrollBy: any; scrollTo: any; stop: any; addEventListener: any; removeEventListener: any; dispatchEvent: any; cancelAnimationFrame: any; requestAnimationFrame: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel: any; ontouchend: any; ontouchmove: any; ontouchstart: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; onafterprint: any; onbeforeprint: any; onbeforeunload: any; ongamepadconnected: any; ongamepaddisconnected: any; onhashchange: any; onlanguagechange: any; onmessage: any; onmessageerror: any; onoffline: any; ononline: any; onpagehide: any; onpageshow: any; onpopstate: any; onrejectionhandled: any; onstorage: any; onunhandledrejection: any; onunload: any; localStorage: any; caches: any; crossOriginIsolated: any; crypto: any; indexedDB: any; isSecureContext: any; origin: any; performance: any; atob: any; btoa: any; clearInterval: any; clearTimeout: any; createImageBitmap: any; fetch: any; queueMicrotask: any; reportError: any; setInterval: any; setTimeout: any; sessionStorage: any; readonly globalThis: any; eval: any; parseInt: any; parseFloat: any; isNaN: any; isFinite: any; decodeURI: any; decodeURIComponent: any; encodeURI: any; encodeURIComponent: any; escape: any; unescape: any; NaN: any; Infinity: any; Symbol: any; Object: any; Function: any; String: any; Boolean: any; Number: any; Math: any; Date: any; RegExp: any; Error: any; EvalError: any; RangeError: any; ReferenceError: any; SyntaxError: any; TypeError: any; URIError: any; JSON: any; Array: any; Promise: any; ArrayBuffer: any; DataView: any; Int8Array: any; Uint8Array: any; Uint8ClampedArray: any; Int16Array: any; Uint16Array: any; Int32Array: any; Uint32Array: any; Float32Array: any; Float64Array: any; Intl: any; toString: any; NodeFilter: any; AbortController: any; AbortSignal: any; AbstractRange: any; AnalyserNode: any; Animation: any; AnimationEffect: any; AnimationEvent: any; AnimationPlaybackEvent: any; AnimationTimeline: any; Attr: any; AudioBuffer: any; AudioBufferSourceNode: any; AudioContext: any; AudioDestinationNode: any; AudioListener: any; AudioNode: any; AudioParam: any; AudioParamMap: any; AudioProcessingEvent: any; AudioScheduledSourceNode: any; AudioWorklet: any; AudioWorkletNode: any; AuthenticatorAssertionResponse: any; AuthenticatorAttestationResponse: any; AuthenticatorResponse: any; BarProp: any; BaseAudioContext: any; BeforeUnloadEvent: any; BiquadFilterNode: any; Blob: any; BlobEvent: any; BroadcastChannel: any; ByteLengthQueuingStrategy: any; CDATASection: any; CSSAnimation: any; CSSConditionRule: any; CSSCounterStyleRule: any; CSSFontFaceRule: any; CSSGroupingRule: any; CSSImportRule: any; CSSKeyframeRule: any; CSSKeyframesRule: any; CSSMediaRule: any; CSSNamespaceRule: any; CSSPageRule: any; CSSRule: any; CSSRuleList: any; CSSStyleDeclaration: any; CSSStyleRule: any; CSSStyleSheet: any; CSSSupportsRule: any; CSSTransition: any; Cache: any; CacheStorage: any; CanvasCaptureMediaStreamTrack: any; CanvasGradient: any; CanvasPattern: any; CanvasRenderingContext2D: any; ChannelMergerNode: any; ChannelSplitterNode: any; CharacterData: any; Clipboard: any; ClipboardEvent: any; ClipboardItem: any; CloseEvent: any; Comment: any; CompositionEvent: any; ConstantSourceNode: any; ConvolverNode: any; CountQueuingStrategy: any; Credential: any; CredentialsContainer: any; Crypto: any; CryptoKey: any; CustomElementRegistry: any; CustomEvent: any; DOMException: any; DOMImplementation: any; DOMMatrix: any; SVGMatrix: any; WebKitCSSMatrix: any; DOMMatrixReadOnly: any; DOMParser: any; DOMPoint: any; SVGPoint: any; DOMPointReadOnly: any; DOMQuad: any; DOMRect: any; SVGRect: any; DOMRectList: any; DOMRectReadOnly: any; DOMStringList: any; DOMStringMap: any; DOMTokenList: any; DataTransfer: any; DataTransferItem: any; DataTransferItemList: any; DelayNode: any; DeviceMotionEvent: any; DeviceOrientationEvent: any; Document: any; DocumentFragment: any; DocumentTimeline: any; DocumentType: any; DragEvent: any; DynamicsCompressorNode: any; Element: any; ElementInternals: any; ErrorEvent: any; Event: any; EventSource: any; EventTarget: any; External: any; File: any; FileList: any; FileReader: any; FileSystem: any; FileSystemDirectoryEntry: any; FileSystemDirectoryHandle: any; FileSystemDirectoryReader: any; FileSystemEntry: any; FileSystemFileEntry: any; FileSystemFileHandle: any; FileSystemHandle: any; FocusEvent: any; FontFace: any; FontFaceSet: any; FontFaceSetLoadEvent: any; FormData: any; FormDataEvent: any; GainNode: any; Gamepad: any; GamepadButton: any; GamepadEvent: any; GamepadHapticActuator: any; Geolocation: any; GeolocationCoordinates: any; GeolocationPosition: any; GeolocationPositionError: any; HTMLAllCollection: any; HTMLAnchorElement: any; HTMLAreaElement: any; HTMLAudioElement: any; HTMLBRElement: any; HTMLBaseElement: any; HTMLBodyElement: any; HTMLButtonElement: any; HTMLCanvasElement: any; HTMLCollection: any; HTMLDListElement: any; HTMLDataElement: any; HTMLDataListElement: any; HTMLDetailsElement: any; HTMLDirectoryElement: any; HTMLDivElement: any; HTMLDocument: any; HTMLElement: any; HTMLEmbedElement: any; HTMLFieldSetElement: any; HTMLFontElement: any; HTMLFormControlsCollection: any; HTMLFormElement: any; HTMLFrameElement: any; HTMLFrameSetElement: any; HTMLHRElement: any; HTMLHeadElement: any; HTMLHeadingElement: any; HTMLHtmlElement: any; HTMLIFrameElement: any; HTMLImageElement: any; HTMLInputElement: any; HTMLLIElement: any; HTMLLabelElement: any; HTMLLegendElement: any; HTMLLinkElement: any; HTMLMapElement: any; HTMLMarqueeElement: any; HTMLMediaElement: any; HTMLMenuElement: any; HTMLMetaElement: any; HTMLMeterElement: any; HTMLModElement: any; HTMLOListElement: any; HTMLObjectElement: any; HTMLOptGroupElement: any; HTMLOptionElement: any; HTMLOptionsCollection: any; HTMLOutputElement: any; HTMLParagraphElement: any; HTMLParamElement: any; HTMLPictureElement: any; HTMLPreElement: any; HTMLProgressElement: any; HTMLQuoteElement: any; HTMLScriptElement: any; HTMLSelectElement: any; HTMLSlotElement: any; HTMLSourceElement: any; HTMLSpanElement: any; HTMLStyleElement: any; HTMLTableCaptionElement: any; HTMLTableCellElement: any; HTMLTableColElement: any; HTMLTableElement: any; HTMLTableRowElement: any; HTMLTableSectionElement: any; HTMLTemplateElement: any; HTMLTextAreaElement: any; HTMLTimeElement: any; HTMLTitleElement: any; HTMLTrackElement: any; HTMLUListElement: any; HTMLUnknownElement: any; HTMLVideoElement: any; HashChangeEvent: any; Headers: any; History: any; IDBCursor: any; IDBCursorWithValue: any; IDBDatabase: any; IDBFactory: any; IDBIndex: any; IDBKeyRange: any; IDBObjectStore: any; IDBOpenDBRequest: any; IDBRequest: any; IDBTransaction: any; IDBVersionChangeEvent: any; IIRFilterNode: any; IdleDeadline: any; ImageBitmap: any; ImageBitmapRenderingContext: any; ImageData: any; InputDeviceInfo: any; InputEvent: any; IntersectionObserver: any; IntersectionObserverEntry: any; KeyboardEvent: any; KeyframeEffect: any; Location: any; Lock: any; LockManager: any; MathMLElement: any; MediaCapabilities: any; MediaDeviceInfo: any; MediaDevices: any; MediaElementAudioSourceNode: any; MediaEncryptedEvent: any; MediaError: any; MediaKeyMessageEvent: any; MediaKeySession: any; MediaKeyStatusMap: any; MediaKeySystemAccess: any; MediaKeys: any; MediaList: any; MediaMetadata: any; MediaQueryList: any; MediaQueryListEvent: any; MediaRecorder: any; MediaRecorderErrorEvent: any; MediaSession: any; MediaSource: any; MediaStream: any; MediaStreamAudioDestinationNode: any; MediaStreamAudioSourceNode: any; MediaStreamTrack: any; MediaStreamTrackEvent: any; MessageChannel: any; MessageEvent: any; MessagePort: any; MimeType: any; MimeTypeArray: any; MouseEvent: any; MutationEvent: any; MutationObserver: any; MutationRecord: any; NamedNodeMap: any; Navigator: any; NetworkInformation: any; Node: any; NodeIterator: any; NodeList: any; Notification: any; OfflineAudioCompletionEvent: any; OfflineAudioContext: any; OscillatorNode: any; OverconstrainedError: any; PageTransitionEvent: any; PannerNode: any; Path2D: any; PaymentMethodChangeEvent: any; PaymentRequest: any; PaymentRequestUpdateEvent: any; PaymentResponse: any; Performance: any; PerformanceEntry: any; PerformanceEventTiming: any; PerformanceMark: any; PerformanceMeasure: any; PerformanceNavigation: any; PerformanceNavigationTiming: any; PerformanceObserver: any; PerformanceObserverEntryList: any; PerformancePaintTiming: any; PerformanceResourceTiming: any; PerformanceServerTiming: any; PerformanceTiming: any; PeriodicWave: any; PermissionStatus: any; Permissions: any; PictureInPictureWindow: any; Plugin: any; PluginArray: any; PointerEvent: any; PopStateEvent: any; ProcessingInstruction: any; ProgressEvent: any; PromiseRejectionEvent: any; PublicKeyCredential: any; PushManager: any; PushSubscription: any; PushSubscriptionOptions: any; RTCCertificate: any; RTCDTMFSender: any; RTCDTMFToneChangeEvent: any; RTCDataChannel: any; RTCDataChannelEvent: any; RTCDtlsTransport: any; RTCIceCandidate: any; RTCIceTransport: any; RTCPeerConnection: any; RTCPeerConnectionIceErrorEvent: any; RTCPeerConnectionIceEvent: any; RTCRtpReceiver: any; RTCRtpSender: any; RTCRtpTransceiver: any; RTCSessionDescription: any; RTCStatsReport: any; RTCTrackEvent: any; RadioNodeList: any; Range: any; ReadableStream: any; ReadableStreamDefaultController: any; ReadableStreamDefaultReader: any; RemotePlayback: any; Request: any; ResizeObserver: any; ResizeObserverEntry: any; ResizeObserverSize: any; Response: any; SVGAElement: any; SVGAngle: any; SVGAnimateElement: any; SVGAnimateMotionElement: any; SVGAnimateTransformElement: any; SVGAnimatedAngle: any; SVGAnimatedBoolean: any; SVGAnimatedEnumeration: any; SVGAnimatedInteger: any; SVGAnimatedLength: any; SVGAnimatedLengthList: any; SVGAnimatedNumber: any; SVGAnimatedNumberList: any; SVGAnimatedPreserveAspectRatio: any; SVGAnimatedRect: any; SVGAnimatedString: any; SVGAnimatedTransformList: any; SVGAnimationElement: any; SVGCircleElement: any; SVGClipPathElement: any; SVGComponentTransferFunctionElement: any; SVGDefsElement: any; SVGDescElement: any; SVGElement: any; SVGEllipseElement: any; SVGFEBlendElement: any; SVGFEColorMatrixElement: any; SVGFEComponentTransferElement: any; SVGFECompositeElement: any; SVGFEConvolveMatrixElement: any; SVGFEDiffuseLightingElement: any; SVGFEDisplacementMapElement: any; SVGFEDistantLightElement: any; SVGFEDropShadowElement: any; SVGFEFloodElement: any; SVGFEFuncAElement: any; SVGFEFuncBElement: any; SVGFEFuncGElement: any; SVGFEFuncRElement: any; SVGFEGaussianBlurElement: any; SVGFEImageElement: any; SVGFEMergeElement: any; SVGFEMergeNodeElement: any; SVGFEMorphologyElement: any; SVGFEOffsetElement: any; SVGFEPointLightElement: any; SVGFESpecularLightingElement: any; SVGFESpotLightElement: any; SVGFETileElement: any; SVGFETurbulenceElement: any; SVGFilterElement: any; SVGForeignObjectElement: any; SVGGElement: any; SVGGeometryElement: any; SVGGradientElement: any; SVGGraphicsElement: any; SVGImageElement: any; SVGLength: any; SVGLengthList: any; SVGLineElement: any; SVGLinearGradientElement: any; SVGMPathElement: any; SVGMarkerElement: any; SVGMaskElement: any; SVGMetadataElement: any; SVGNumber: any; SVGNumberList: any; SVGPathElement: any; SVGPatternElement: any; SVGPointList: any; SVGPolygonElement: any; SVGPolylineElement: any; SVGPreserveAspectRatio: any; SVGRadialGradientElement: any; SVGRectElement: any; SVGSVGElement: any; SVGScriptElement: any; SVGSetElement: any; SVGStopElement: any; SVGStringList: any; SVGStyleElement: any; SVGSwitchElement: any; SVGSymbolElement: any; SVGTSpanElement: any; SVGTextContentElement: any; SVGTextElement: any; SVGTextPathElement: any; SVGTextPositioningElement: any; SVGTitleElement: any; SVGTransform: any; SVGTransformList: any; SVGUnitTypes: any; SVGUseElement: any; SVGViewElement: any; Screen: any; ScreenOrientation: any; ScriptProcessorNode: any; SecurityPolicyViolationEvent: any; Selection: any; ServiceWorker: any; ServiceWorkerContainer: any; ServiceWorkerRegistration: any; ShadowRoot: any; SharedWorker: any; SourceBuffer: any; SourceBufferList: any; SpeechRecognitionAlternative: any; SpeechRecognitionResult: any; SpeechRecognitionResultList: any; SpeechSynthesis: any; SpeechSynthesisErrorEvent: any; SpeechSynthesisEvent: any; SpeechSynthesisUtterance: any; SpeechSynthesisVoice: any; StaticRange: any; StereoPannerNode: any; Storage: any; StorageEvent: any; StorageManager: any; StyleSheet: any; StyleSheetList: any; SubmitEvent: any; SubtleCrypto: any; Text: any; TextDecoder: any; TextDecoderStream: any; TextEncoder: any; TextEncoderStream: any; TextMetrics: any; TextTrack: any; TextTrackCue: any; TextTrackCueList: any; TextTrackList: any; TimeRanges: any; Touch: any; TouchEvent: any; TouchList: any; TrackEvent: any; TransformStream: any; TransformStreamDefaultController: any; TransitionEvent: any; TreeWalker: any; UIEvent: any; URL: any; webkitURL: any; URLSearchParams: any; VTTCue: any; VTTRegion: any; ValidityState: any; VideoPlaybackQuality: any; VisualViewport: any; WaveShaperNode: any; WebGL2RenderingContext: any; WebGLActiveInfo: any; WebGLBuffer: any; WebGLContextEvent: any; WebGLFramebuffer: any; WebGLProgram: any; WebGLQuery: any; WebGLRenderbuffer: any; WebGLRenderingContext: any; WebGLSampler: any; WebGLShader: any; WebGLShaderPrecisionFormat: any; WebGLSync: any; WebGLTexture: any; WebGLTransformFeedback: any; WebGLUniformLocation: any; WebGLVertexArrayObject: any; WebSocket: any; WheelEvent: any; Window: any; Worker: any; Worklet: any; WritableStream: any; WritableStreamDefaultController: any; WritableStreamDefaultWriter: any; XMLDocument: any; XMLHttpRequest: any; XMLHttpRequestEventTarget: any; XMLHttpRequestUpload: any; XMLSerializer: any; XPathEvaluator: any; XPathExpression: any; XPathResult: any; XSLTProcessor: any; console: any; CSS: any; WebAssembly: any; Audio: any; Image: any; Option: any; Map: any; WeakMap: any; Set: any; WeakSet: any; Proxy: any; Reflect: any; foo: any; undefined: any; }; designMode: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; dir: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly doctype: { readonly name: any; readonly ownerDocument: any; readonly publicId: any; readonly systemId: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; after: any; before: any; remove: any; replaceWith: any; }; readonly documentElement: { accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; spellcheck: any; title: any; translate: any; attachInternals: any; click: any; addEventListener: any; removeEventListener: any; readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; }; readonly documentURI: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; domain: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly embeds: { item: any; namedItem: any; readonly length: any; }; fgColor: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly forms: { item: any; namedItem: any; readonly length: any; }; readonly fullscreen: { valueOf: any; }; readonly fullscreenEnabled: { valueOf: any; }; readonly head: { addEventListener: any; removeEventListener: any; accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; spellcheck: any; title: any; translate: any; attachInternals: any; click: any; readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; }; readonly hidden: { valueOf: any; }; readonly images: { item: any; namedItem: any; readonly length: any; }; readonly implementation: { createDocument: any; createDocumentType: any; createHTMLDocument: any; hasFeature: any; }; readonly inputEncoding: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly lastModified: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; linkColor: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly links: { item: any; namedItem: any; readonly length: any; }; location: { readonly ancestorOrigins: any; hash: any; host: any; hostname: any; href: any; toString: any; readonly origin: any; pathname: any; port: any; protocol: any; search: any; assign: any; reload: any; replace: any; }; onfullscreenchange: unknown; onfullscreenerror: unknown; onpointerlockchange: unknown; onpointerlockerror: unknown; onreadystatechange: unknown; onvisibilitychange: unknown; readonly ownerDocument: unknown; readonly pictureInPictureEnabled: { valueOf: any; }; readonly plugins: { item: any; namedItem: any; readonly length: any; }; readonly readyState: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly referrer: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly rootElement: { currentScale: any; readonly currentTranslate: any; readonly height: any; readonly width: any; readonly x: any; readonly y: any; animationsPaused: any; checkEnclosure: any; checkIntersection: any; createSVGAngle: any; createSVGLength: any; createSVGMatrix: any; createSVGNumber: any; createSVGPoint: any; createSVGRect: any; createSVGTransform: any; createSVGTransformFromMatrix: any; deselectAll: any; forceRedraw: any; getCurrentTime: any; getElementById: any; getEnclosureList: any; getIntersectionList: any; pauseAnimations: any; setCurrentTime: any; suspendRedraw: any; unpauseAnimations: any; unsuspendRedraw: any; unsuspendRedrawAll: any; addEventListener: any; removeEventListener: any; readonly transform: any; getBBox: any; getCTM: any; getScreenCTM: any; readonly className: any; readonly ownerSVGElement: any; readonly viewportElement: any; readonly attributes: any; readonly classList: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; readonly requiredExtensions: any; readonly systemLanguage: any; readonly preserveAspectRatio: any; readonly viewBox: any; onafterprint: any; onbeforeprint: any; onbeforeunload: any; ongamepadconnected: any; ongamepaddisconnected: any; onhashchange: any; onlanguagechange: any; onmessage: any; onmessageerror: any; onoffline: any; ononline: any; onpagehide: any; onpageshow: any; onpopstate: any; onrejectionhandled: any; onstorage: any; onunhandledrejection: any; onunload: any; }; readonly scripts: { item: any; namedItem: any; readonly length: any; }; readonly scrollingElement: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly timeline: { readonly currentTime: any; }; title: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly visibilityState: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; vlinkColor: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; adoptNode: unknown; captureEvents: unknown; caretRangeFromPoint: unknown; clear: unknown; close: unknown; createAttribute: unknown; createAttributeNS: unknown; createCDATASection: unknown; createComment: unknown; createDocumentFragment: unknown; createElement: unknown; createElementNS: unknown; createEvent: unknown; createNodeIterator: unknown; createProcessingInstruction: unknown; createRange: unknown; createTextNode: unknown; createTreeWalker: unknown; execCommand: unknown; exitFullscreen: unknown; exitPictureInPicture: unknown; exitPointerLock: unknown; getElementById: unknown; getElementsByClassName: unknown; getElementsByName: unknown; getElementsByTagName: unknown; getElementsByTagNameNS: unknown; getSelection: unknown; hasFocus: unknown; hasStorageAccess: unknown; importNode: unknown; open: unknown; queryCommandEnabled: unknown; queryCommandIndeterm: unknown; queryCommandState: unknown; queryCommandSupported: unknown; queryCommandValue: unknown; releaseEvents: unknown; requestStorageAccess: unknown; write: unknown; writeln: unknown; addEventListener: unknown; removeEventListener: unknown; readonly baseURI: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly childNodes: { item: any; forEach: any; readonly length: any; }; readonly firstChild: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly isConnected: { valueOf: any; }; readonly lastChild: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly nextSibling: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly nodeName: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly nodeType: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; nodeValue: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly parentElement: { accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; spellcheck: any; title: any; translate: any; attachInternals: any; click: any; addEventListener: any; removeEventListener: any; readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; }; readonly parentNode: { readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly previousSibling: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; textContent: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; appendChild: unknown; cloneNode: unknown; compareDocumentPosition: unknown; contains: unknown; getRootNode: unknown; hasChildNodes: unknown; insertBefore: unknown; isDefaultNamespace: unknown; isEqualNode: unknown; isSameNode: unknown; lookupNamespaceURI: unknown; lookupPrefix: unknown; normalize: unknown; removeChild: unknown; replaceChild: unknown; readonly ATTRIBUTE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly CDATA_SECTION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly COMMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_FRAGMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_CONTAINED_BY: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_CONTAINS: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_DISCONNECTED: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_FOLLOWING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_PRECEDING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_TYPE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ELEMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ENTITY_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ENTITY_REFERENCE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly NOTATION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly PROCESSING_INSTRUCTION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly TEXT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; dispatchEvent: unknown; oncopy: unknown; oncut: unknown; onpaste: unknown; readonly activeElement: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly fullscreenElement: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly pictureInPictureElement: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly pointerLockElement: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly styleSheets: { readonly length: any; item: any; }; elementFromPoint: unknown; elementsFromPoint: unknown; getAnimations: unknown; readonly fonts: { onloading: any; onloadingdone: any; onloadingerror: any; readonly ready: any; readonly status: any; check: any; load: any; forEach: any; addEventListener: any; removeEventListener: any; dispatchEvent: any; }; onabort: unknown; onanimationcancel: unknown; onanimationend: unknown; onanimationiteration: unknown; onanimationstart: unknown; onauxclick: unknown; onblur: unknown; oncanplay: unknown; oncanplaythrough: unknown; onchange: unknown; onclick: unknown; onclose: unknown; oncontextmenu: unknown; oncuechange: unknown; ondblclick: unknown; ondrag: unknown; ondragend: unknown; ondragenter: unknown; ondragleave: unknown; ondragover: unknown; ondragstart: unknown; ondrop: unknown; ondurationchange: unknown; onemptied: unknown; onended: unknown; onerror: unknown; onfocus: unknown; onformdata: unknown; ongotpointercapture: unknown; oninput: unknown; oninvalid: unknown; onkeydown: unknown; onkeypress: unknown; onkeyup: unknown; onload: unknown; onloadeddata: unknown; onloadedmetadata: unknown; onloadstart: unknown; onlostpointercapture: unknown; onmousedown: unknown; onmouseenter: unknown; onmouseleave: unknown; onmousemove: unknown; onmouseout: unknown; onmouseover: unknown; onmouseup: unknown; onpause: unknown; onplay: unknown; onplaying: unknown; onpointercancel: unknown; onpointerdown: unknown; onpointerenter: unknown; onpointerleave: unknown; onpointermove: unknown; onpointerout: unknown; onpointerover: unknown; onpointerup: unknown; onprogress: unknown; onratechange: unknown; onreset: unknown; onresize: unknown; onscroll: unknown; onsecuritypolicyviolation: unknown; onseeked: unknown; onseeking: unknown; onselect: unknown; onselectionchange: unknown; onselectstart: unknown; onslotchange: unknown; onstalled: unknown; onsubmit: unknown; onsuspend: unknown; ontimeupdate: unknown; ontoggle: unknown; ontouchcancel?: unknown; ontouchend?: unknown; ontouchmove?: unknown; ontouchstart?: unknown; ontransitioncancel: unknown; ontransitionend: unknown; ontransitionrun: unknown; ontransitionstart: unknown; onvolumechange: unknown; onwaiting: unknown; onwebkitanimationend: unknown; onwebkitanimationiteration: unknown; onwebkitanimationstart: unknown; onwebkittransitionend: unknown; onwheel: unknown; readonly childElementCount: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly children: { namedItem: any; readonly length: any; item: any; }; readonly firstElementChild: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly lastElementChild: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; append: unknown; prepend: unknown; querySelector: unknown; querySelectorAll: unknown; replaceChildren: unknown; createExpression: unknown; createNSResolver: unknown; evaluate: unknown; } +>activeElement : { readonly attributes: { readonly length: any; getNamedItem: any; getNamedItemNS: any; item: any; removeNamedItem: any; removeNamedItemNS: any; setNamedItem: any; setNamedItemNS: any; }; readonly classList: { readonly length: any; value: any; toString: any; add: any; contains: any; item: any; remove: any; replace: any; supports: any; toggle: any; forEach: any; }; className: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly clientHeight: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly clientLeft: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly clientTop: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly clientWidth: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; id: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly localName: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly namespaceURI: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; onfullscreenchange: unknown; onfullscreenerror: unknown; outerHTML: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly ownerDocument: { readonly URL: any; alinkColor: any; readonly all: any; readonly anchors: any; readonly applets: any; bgColor: any; body: any; readonly characterSet: any; readonly charset: any; readonly compatMode: any; readonly contentType: any; cookie: any; readonly currentScript: any; readonly defaultView: any; designMode: any; dir: any; readonly doctype: any; readonly documentElement: any; readonly documentURI: any; domain: any; readonly embeds: any; fgColor: any; readonly forms: any; readonly fullscreen: any; readonly fullscreenEnabled: any; readonly head: any; readonly hidden: any; readonly images: any; readonly implementation: any; readonly inputEncoding: any; readonly lastModified: any; linkColor: any; readonly links: any; location: any; onfullscreenchange: any; onfullscreenerror: any; onpointerlockchange: any; onpointerlockerror: any; onreadystatechange: any; onvisibilitychange: any; readonly ownerDocument: any; readonly pictureInPictureEnabled: any; readonly plugins: any; readonly readyState: any; readonly referrer: any; readonly rootElement: any; readonly scripts: any; readonly scrollingElement: any; readonly timeline: any; title: any; readonly visibilityState: any; vlinkColor: any; adoptNode: any; captureEvents: any; caretRangeFromPoint: any; clear: any; close: any; createAttribute: any; createAttributeNS: any; createCDATASection: any; createComment: any; createDocumentFragment: any; createElement: any; createElementNS: any; createEvent: any; createNodeIterator: any; createProcessingInstruction: any; createRange: any; createTextNode: any; createTreeWalker: any; execCommand: any; exitFullscreen: any; exitPictureInPicture: any; exitPointerLock: any; getElementById: any; getElementsByClassName: any; getElementsByName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getSelection: any; hasFocus: any; hasStorageAccess: any; importNode: any; open: any; queryCommandEnabled: any; queryCommandIndeterm: any; queryCommandState: any; queryCommandSupported: any; queryCommandValue: any; releaseEvents: any; requestStorageAccess: any; write: any; writeln: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; oncopy: any; oncut: any; onpaste: any; readonly activeElement: any; readonly fullscreenElement: any; readonly pictureInPictureElement: any; readonly pointerLockElement: any; readonly styleSheets: any; elementFromPoint: any; elementsFromPoint: any; getAnimations: any; readonly fonts: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; createExpression: any; createNSResolver: any; evaluate: any; }; readonly part: { readonly length: any; value: any; toString: any; add: any; contains: any; item: any; remove: any; replace: any; supports: any; toggle: any; forEach: any; }; readonly prefix: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly scrollHeight: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; scrollLeft: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; scrollTop: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly scrollWidth: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly shadowRoot: { readonly delegatesFocus: any; readonly host: any; readonly mode: any; onslotchange: any; readonly slotAssignment: any; addEventListener: any; removeEventListener: any; readonly ownerDocument: any; getElementById: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly activeElement: any; readonly fullscreenElement: any; readonly pictureInPictureElement: any; readonly pointerLockElement: any; readonly styleSheets: any; elementFromPoint: any; elementsFromPoint: any; getAnimations: any; innerHTML: any; }; slot: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly tagName: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; attachShadow: unknown; closest: unknown; getAttribute: unknown; getAttributeNS: unknown; getAttributeNames: unknown; getAttributeNode: unknown; getAttributeNodeNS: unknown; getBoundingClientRect: unknown; getClientRects: unknown; getElementsByClassName: unknown; getElementsByTagName: unknown; getElementsByTagNameNS: unknown; hasAttribute: unknown; hasAttributeNS: unknown; hasAttributes: unknown; hasPointerCapture: unknown; insertAdjacentElement: unknown; insertAdjacentHTML: unknown; insertAdjacentText: unknown; matches: unknown; releasePointerCapture: unknown; removeAttribute: unknown; removeAttributeNS: unknown; removeAttributeNode: unknown; requestFullscreen: unknown; requestPointerLock: unknown; scroll: unknown; scrollBy: unknown; scrollIntoView: unknown; scrollTo: unknown; setAttribute: unknown; setAttributeNS: unknown; setAttributeNode: unknown; setAttributeNodeNS: unknown; setPointerCapture: unknown; toggleAttribute: unknown; webkitMatchesSelector: unknown; addEventListener: unknown; removeEventListener: unknown; readonly baseURI: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly childNodes: { item: any; forEach: any; readonly length: any; }; readonly firstChild: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly isConnected: { valueOf: any; }; readonly lastChild: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly nextSibling: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly nodeName: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly nodeType: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; nodeValue: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly parentElement: { accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; spellcheck: any; title: any; translate: any; attachInternals: any; click: any; addEventListener: any; removeEventListener: any; readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; }; readonly parentNode: { readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; readonly previousSibling: { after: any; before: any; remove: any; replaceWith: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly ownerDocument: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; addEventListener: any; dispatchEvent: any; removeEventListener: any; }; textContent: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; appendChild: unknown; cloneNode: unknown; compareDocumentPosition: unknown; contains: unknown; getRootNode: unknown; hasChildNodes: unknown; insertBefore: unknown; isDefaultNamespace: unknown; isEqualNode: unknown; isSameNode: unknown; lookupNamespaceURI: unknown; lookupPrefix: unknown; normalize: unknown; removeChild: unknown; replaceChild: unknown; readonly ATTRIBUTE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly CDATA_SECTION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly COMMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_FRAGMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_CONTAINED_BY: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_CONTAINS: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_DISCONNECTED: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_FOLLOWING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_POSITION_PRECEDING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DOCUMENT_TYPE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ELEMENT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ENTITY_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly ENTITY_REFERENCE_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly NOTATION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly PROCESSING_INSTRUCTION_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly TEXT_NODE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; dispatchEvent: unknown; ariaAtomic: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaAutoComplete: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaBusy: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaChecked: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaColCount: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaColIndex: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaColSpan: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaCurrent: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaDisabled: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaExpanded: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaHasPopup: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaHidden: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaKeyShortcuts: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaLabel: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaLevel: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaLive: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaModal: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaMultiLine: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaMultiSelectable: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaOrientation: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaPlaceholder: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaPosInSet: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaPressed: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaReadOnly: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRequired: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRoleDescription: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRowCount: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRowIndex: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaRowSpan: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaSelected: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaSetSize: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaSort: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaValueMax: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaValueMin: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaValueNow: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; ariaValueText: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; animate: unknown; getAnimations: unknown; after: unknown; before: unknown; remove: unknown; replaceWith: unknown; innerHTML: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly nextElementSibling: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly previousElementSibling: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly childElementCount: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly children: { namedItem: any; readonly length: any; item: any; }; readonly firstElementChild: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; readonly lastElementChild: { readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; }; append: unknown; prepend: unknown; querySelector: unknown; querySelectorAll: unknown; replaceChildren: unknown; readonly assignedSlot: { name: any; assign: any; assignedElements: any; assignedNodes: any; addEventListener: any; removeEventListener: any; accessKey: any; readonly accessKeyLabel: any; autocapitalize: any; dir: any; draggable: any; hidden: any; innerText: any; lang: any; readonly offsetHeight: any; readonly offsetLeft: any; readonly offsetParent: any; readonly offsetTop: any; readonly offsetWidth: any; outerText: any; spellcheck: any; title: any; translate: any; attachInternals: any; click: any; readonly attributes: any; readonly classList: any; className: any; readonly clientHeight: any; readonly clientLeft: any; readonly clientTop: any; readonly clientWidth: any; id: any; readonly localName: any; readonly namespaceURI: any; onfullscreenchange: any; onfullscreenerror: any; outerHTML: any; readonly ownerDocument: any; readonly part: any; readonly prefix: any; readonly scrollHeight: any; scrollLeft: any; scrollTop: any; readonly scrollWidth: any; readonly shadowRoot: any; slot: any; readonly tagName: any; attachShadow: any; closest: any; getAttribute: any; getAttributeNS: any; getAttributeNames: any; getAttributeNode: any; getAttributeNodeNS: any; getBoundingClientRect: any; getClientRects: any; getElementsByClassName: any; getElementsByTagName: any; getElementsByTagNameNS: any; hasAttribute: any; hasAttributeNS: any; hasAttributes: any; hasPointerCapture: any; insertAdjacentElement: any; insertAdjacentHTML: any; insertAdjacentText: any; matches: any; releasePointerCapture: any; removeAttribute: any; removeAttributeNS: any; removeAttributeNode: any; requestFullscreen: any; requestPointerLock: any; scroll: any; scrollBy: any; scrollIntoView: any; scrollTo: any; setAttribute: any; setAttributeNS: any; setAttributeNode: any; setAttributeNodeNS: any; setPointerCapture: any; toggleAttribute: any; webkitMatchesSelector: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ATTRIBUTE_NODE: any; readonly CDATA_SECTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_TYPE_NODE: any; readonly ELEMENT_NODE: any; readonly ENTITY_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly NOTATION_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly TEXT_NODE: any; dispatchEvent: any; ariaAtomic: any; ariaAutoComplete: any; ariaBusy: any; ariaChecked: any; ariaColCount: any; ariaColIndex: any; ariaColSpan: any; ariaCurrent: any; ariaDisabled: any; ariaExpanded: any; ariaHasPopup: any; ariaHidden: any; ariaKeyShortcuts: any; ariaLabel: any; ariaLevel: any; ariaLive: any; ariaModal: any; ariaMultiLine: any; ariaMultiSelectable: any; ariaOrientation: any; ariaPlaceholder: any; ariaPosInSet: any; ariaPressed: any; ariaReadOnly: any; ariaRequired: any; ariaRoleDescription: any; ariaRowCount: any; ariaRowIndex: any; ariaRowSpan: any; ariaSelected: any; ariaSetSize: any; ariaSort: any; ariaValueMax: any; ariaValueMin: any; ariaValueNow: any; ariaValueText: any; animate: any; getAnimations: any; after: any; before: any; remove: any; replaceWith: any; innerHTML: any; readonly nextElementSibling: any; readonly previousElementSibling: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; readonly assignedSlot: any; oncopy: any; oncut: any; onpaste: any; readonly style: any; contentEditable: any; enterKeyHint: any; inputMode: any; readonly isContentEditable: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onblur: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncuechange: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; autofocus: any; readonly dataset: any; nonce?: any; tabIndex: any; blur: any; focus: any; }; } >className : { toString: unknown; charAt: unknown; charCodeAt: unknown; concat: unknown; indexOf: unknown; lastIndexOf: unknown; localeCompare: unknown; match: unknown; replace: unknown; search: unknown; slice: unknown; split: unknown; substring: unknown; toLowerCase: unknown; toLocaleLowerCase: unknown; toUpperCase: unknown; toLocaleUpperCase: unknown; trim: unknown; readonly length: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; substr: unknown; valueOf: unknown; codePointAt: unknown; includes: unknown; endsWith: unknown; normalize: unknown; repeat: unknown; startsWith: unknown; anchor: unknown; big: unknown; blink: unknown; bold: unknown; fixed: unknown; fontcolor: unknown; fontsize: unknown; italics: unknown; link: unknown; small: unknown; strike: unknown; sub: unknown; sup: unknown; [Symbol.iterator]: unknown; } >length : { toString: unknown; toFixed: unknown; toExponential: unknown; toPrecision: unknown; valueOf: unknown; toLocaleString: unknown; } diff --git a/tests/baselines/reference/mappedTypeRelationships.errors.txt b/tests/baselines/reference/mappedTypeRelationships.errors.txt index b37c9b83cfc15..556fca80ccee4 100644 --- a/tests/baselines/reference/mappedTypeRelationships.errors.txt +++ b/tests/baselines/reference/mappedTypeRelationships.errors.txt @@ -17,18 +17,12 @@ tests/cases/conformance/types/mapped/mappedTypeRelationships.ts(40,5): error TS2 tests/cases/conformance/types/mapped/mappedTypeRelationships.ts(41,5): error TS2322: Type 'T[keyof T]' is not assignable to type 'U[keyof T] | undefined'. Type 'T[string] | T[number] | T[symbol]' is not assignable to type 'U[keyof T] | undefined'. Type 'T[string]' is not assignable to type 'U[keyof T] | undefined'. - Type 'T[string]' is not assignable to type 'U[keyof T]'. - Type 'T' is not assignable to type 'U'. - 'U' could be instantiated with an arbitrary type which could be unrelated to 'T'. tests/cases/conformance/types/mapped/mappedTypeRelationships.ts(45,5): error TS2322: Type 'U[K] | undefined' is not assignable to type 'T[K]'. Type 'undefined' is not assignable to type 'T[K]'. tests/cases/conformance/types/mapped/mappedTypeRelationships.ts(46,5): error TS2322: Type 'T[K]' is not assignable to type 'U[K] | undefined'. Type 'T[keyof T]' is not assignable to type 'U[K] | undefined'. Type 'T[string] | T[number] | T[symbol]' is not assignable to type 'U[K] | undefined'. Type 'T[string]' is not assignable to type 'U[K] | undefined'. - Type 'T[string]' is not assignable to type 'U[K]'. - Type 'T' is not assignable to type 'U'. - 'U' could be instantiated with an arbitrary type which could be unrelated to 'T'. tests/cases/conformance/types/mapped/mappedTypeRelationships.ts(51,5): error TS2542: Index signature in type 'Readonly' only permits reading. tests/cases/conformance/types/mapped/mappedTypeRelationships.ts(56,5): error TS2542: Index signature in type 'Readonly' only permits reading. tests/cases/conformance/types/mapped/mappedTypeRelationships.ts(61,5): error TS2322: Type 'T[keyof T]' is not assignable to type 'U[keyof T]'. @@ -150,9 +144,6 @@ tests/cases/conformance/types/mapped/mappedTypeRelationships.ts(168,5): error TS !!! error TS2322: Type 'T[keyof T]' is not assignable to type 'U[keyof T] | undefined'. !!! error TS2322: Type 'T[string] | T[number] | T[symbol]' is not assignable to type 'U[keyof T] | undefined'. !!! error TS2322: Type 'T[string]' is not assignable to type 'U[keyof T] | undefined'. -!!! error TS2322: Type 'T[string]' is not assignable to type 'U[keyof T]'. -!!! error TS2322: Type 'T' is not assignable to type 'U'. -!!! error TS2322: 'U' could be instantiated with an arbitrary type which could be unrelated to 'T'. } function f13(x: T, y: Partial, k: K) { @@ -166,9 +157,6 @@ tests/cases/conformance/types/mapped/mappedTypeRelationships.ts(168,5): error TS !!! error TS2322: Type 'T[keyof T]' is not assignable to type 'U[K] | undefined'. !!! error TS2322: Type 'T[string] | T[number] | T[symbol]' is not assignable to type 'U[K] | undefined'. !!! error TS2322: Type 'T[string]' is not assignable to type 'U[K] | undefined'. -!!! error TS2322: Type 'T[string]' is not assignable to type 'U[K]'. -!!! error TS2322: Type 'T' is not assignable to type 'U'. -!!! error TS2322: 'U' could be instantiated with an arbitrary type which could be unrelated to 'T'. } function f20(x: T, y: Readonly, k: keyof T) { diff --git a/tests/baselines/reference/mappedTypeUnionConstraintInferences.js b/tests/baselines/reference/mappedTypeUnionConstraintInferences.js index 2e8cfe11ab057..3abfdf0cc0e54 100644 --- a/tests/baselines/reference/mappedTypeUnionConstraintInferences.js +++ b/tests/baselines/reference/mappedTypeUnionConstraintInferences.js @@ -38,7 +38,7 @@ export declare type Omit = Pick>; export declare type PartialProperties = Partial> & Omit; export declare function doSomething_Actual(a: T): { [P in keyof PartialProperties]: PartialProperties[P]; }; +}>(a: T): PartialProperties extends infer T_1 ? { [P in keyof T_1]: PartialProperties[P]; } : never; export declare function doSomething_Expected(a: T): { diff --git a/tests/baselines/reference/mappedTypeWithAny.errors.txt b/tests/baselines/reference/mappedTypeWithAny.errors.txt index 0ce53e5044d56..f049f7e3ed0cf 100644 --- a/tests/baselines/reference/mappedTypeWithAny.errors.txt +++ b/tests/baselines/reference/mappedTypeWithAny.errors.txt @@ -1,7 +1,11 @@ tests/cases/conformance/types/mapped/mappedTypeWithAny.ts(23,16): error TS2339: Property 'notAValue' does not exist on type 'Data'. +tests/cases/conformance/types/mapped/mappedTypeWithAny.ts(45,5): error TS2740: Type 'Objectish' is missing the following properties from type 'any[]': length, pop, push, concat, and 16 more. +tests/cases/conformance/types/mapped/mappedTypeWithAny.ts(46,5): error TS2322: Type 'Objectish' is not assignable to type 'any[]'. +tests/cases/conformance/types/mapped/mappedTypeWithAny.ts(53,5): error TS2322: Type 'string[]' is not assignable to type '[any, any]'. + Target requires 2 element(s) but source may have fewer. -==== tests/cases/conformance/types/mapped/mappedTypeWithAny.ts (1 errors) ==== +==== tests/cases/conformance/types/mapped/mappedTypeWithAny.ts (4 errors) ==== type Item = { value: string }; type ItemMap = { [P in keyof T]: Item }; @@ -28,4 +32,49 @@ tests/cases/conformance/types/mapped/mappedTypeWithAny.ts(23,16): error TS2339: ~~~~~~~~~ !!! error TS2339: Property 'notAValue' does not exist on type 'Data'. } + + // Issue #46169. + // We want mapped types whose constraint is `keyof T` to + // map over `any` differently, depending on whether `T` + // is constrained to array and tuple types. + type Arrayish = { [K in keyof T]: T[K] }; + type Objectish = { [K in keyof T]: T[K] }; + + // When a mapped type whose constraint is `keyof T` is instantiated, + // `T` may be instantiated with a `U` which is constrained to + // array and tuple types. *Ideally*, when `U` is later instantiated with `any`, + // the result should also be some sort of array; however, at the moment we don't seem + // to have an easy way to preserve that information. More than just that, it would be + // inconsistent for two instantiations of `Objectish` to produce different outputs + // depending on the usage-site. As a result, `IndirectArrayish` does not act like `Arrayish`. + type IndirectArrayish = Objectish; + + function bar(arrayish: Arrayish, objectish: Objectish, indirectArrayish: IndirectArrayish) { + let arr: any[]; + arr = arrayish; + arr = objectish; + ~~~ +!!! error TS2740: Type 'Objectish' is missing the following properties from type 'any[]': length, pop, push, concat, and 16 more. + arr = indirectArrayish; + ~~~ +!!! error TS2322: Type 'Objectish' is not assignable to type 'any[]'. + } + + declare function stringifyArray(arr: T): { -readonly [K in keyof T]: string }; + let abc: any[] = stringifyArray(void 0 as any); + + declare function stringifyPair(arr: T): { -readonly [K in keyof T]: string }; + let def: [any, any] = stringifyPair(void 0 as any); + ~~~ +!!! error TS2322: Type 'string[]' is not assignable to type '[any, any]'. +!!! error TS2322: Target requires 2 element(s) but source may have fewer. + + // Repro from #46582 + + type Evolvable = { + [P in keyof E]: never; + }; + type Evolver = any> = { + [key in keyof Partial]: never; + }; \ No newline at end of file diff --git a/tests/baselines/reference/mappedTypeWithAny.js b/tests/baselines/reference/mappedTypeWithAny.js index 1e5c662310ca8..9c402e5094493 100644 --- a/tests/baselines/reference/mappedTypeWithAny.js +++ b/tests/baselines/reference/mappedTypeWithAny.js @@ -23,6 +23,44 @@ for (let id in z) { let data = z[id]; let x = data.notAValue; // Error } + +// Issue #46169. +// We want mapped types whose constraint is `keyof T` to +// map over `any` differently, depending on whether `T` +// is constrained to array and tuple types. +type Arrayish = { [K in keyof T]: T[K] }; +type Objectish = { [K in keyof T]: T[K] }; + +// When a mapped type whose constraint is `keyof T` is instantiated, +// `T` may be instantiated with a `U` which is constrained to +// array and tuple types. *Ideally*, when `U` is later instantiated with `any`, +// the result should also be some sort of array; however, at the moment we don't seem +// to have an easy way to preserve that information. More than just that, it would be +// inconsistent for two instantiations of `Objectish` to produce different outputs +// depending on the usage-site. As a result, `IndirectArrayish` does not act like `Arrayish`. +type IndirectArrayish = Objectish; + +function bar(arrayish: Arrayish, objectish: Objectish, indirectArrayish: IndirectArrayish) { + let arr: any[]; + arr = arrayish; + arr = objectish; + arr = indirectArrayish; +} + +declare function stringifyArray(arr: T): { -readonly [K in keyof T]: string }; +let abc: any[] = stringifyArray(void 0 as any); + +declare function stringifyPair(arr: T): { -readonly [K in keyof T]: string }; +let def: [any, any] = stringifyPair(void 0 as any); + +// Repro from #46582 + +type Evolvable = { + [P in keyof E]: never; +}; +type Evolver = any> = { + [key in keyof Partial]: never; +}; //// [mappedTypeWithAny.js] @@ -31,6 +69,14 @@ for (var id in z) { var data = z[id]; var x = data.notAValue; // Error } +function bar(arrayish, objectish, indirectArrayish) { + var arr; + arr = arrayish; + arr = objectish; + arr = indirectArrayish; +} +var abc = stringifyArray(void 0); +var def = stringifyPair(void 0); //// [mappedTypeWithAny.d.ts] @@ -58,3 +104,25 @@ declare type StrictDataMap = { [P in keyof T]: Data; }; declare let z: StrictDataMap; +declare type Arrayish = { + [K in keyof T]: T[K]; +}; +declare type Objectish = { + [K in keyof T]: T[K]; +}; +declare type IndirectArrayish = Objectish; +declare function bar(arrayish: Arrayish, objectish: Objectish, indirectArrayish: IndirectArrayish): void; +declare function stringifyArray(arr: T): { + -readonly [K in keyof T]: string; +}; +declare let abc: any[]; +declare function stringifyPair(arr: T): { + -readonly [K in keyof T]: string; +}; +declare let def: [any, any]; +declare type Evolvable = { + [P in keyof E]: never; +}; +declare type Evolver = any> = { + [key in keyof Partial]: never; +}; diff --git a/tests/baselines/reference/mappedTypeWithAny.symbols b/tests/baselines/reference/mappedTypeWithAny.symbols index 2c204d4b1ef27..b3a5fe6b0e1ed 100644 --- a/tests/baselines/reference/mappedTypeWithAny.symbols +++ b/tests/baselines/reference/mappedTypeWithAny.symbols @@ -69,3 +69,109 @@ for (let id in z) { >data : Symbol(data, Decl(mappedTypeWithAny.ts, 21, 5)) } +// Issue #46169. +// We want mapped types whose constraint is `keyof T` to +// map over `any` differently, depending on whether `T` +// is constrained to array and tuple types. +type Arrayish = { [K in keyof T]: T[K] }; +>Arrayish : Symbol(Arrayish, Decl(mappedTypeWithAny.ts, 23, 1)) +>T : Symbol(T, Decl(mappedTypeWithAny.ts, 29, 14)) +>K : Symbol(K, Decl(mappedTypeWithAny.ts, 29, 40)) +>T : Symbol(T, Decl(mappedTypeWithAny.ts, 29, 14)) +>T : Symbol(T, Decl(mappedTypeWithAny.ts, 29, 14)) +>K : Symbol(K, Decl(mappedTypeWithAny.ts, 29, 40)) + +type Objectish = { [K in keyof T]: T[K] }; +>Objectish : Symbol(Objectish, Decl(mappedTypeWithAny.ts, 29, 62)) +>T : Symbol(T, Decl(mappedTypeWithAny.ts, 30, 15)) +>K : Symbol(K, Decl(mappedTypeWithAny.ts, 30, 39)) +>T : Symbol(T, Decl(mappedTypeWithAny.ts, 30, 15)) +>T : Symbol(T, Decl(mappedTypeWithAny.ts, 30, 15)) +>K : Symbol(K, Decl(mappedTypeWithAny.ts, 30, 39)) + +// When a mapped type whose constraint is `keyof T` is instantiated, +// `T` may be instantiated with a `U` which is constrained to +// array and tuple types. *Ideally*, when `U` is later instantiated with `any`, +// the result should also be some sort of array; however, at the moment we don't seem +// to have an easy way to preserve that information. More than just that, it would be +// inconsistent for two instantiations of `Objectish` to produce different outputs +// depending on the usage-site. As a result, `IndirectArrayish` does not act like `Arrayish`. +type IndirectArrayish = Objectish; +>IndirectArrayish : Symbol(IndirectArrayish, Decl(mappedTypeWithAny.ts, 30, 61)) +>U : Symbol(U, Decl(mappedTypeWithAny.ts, 39, 22)) +>Objectish : Symbol(Objectish, Decl(mappedTypeWithAny.ts, 29, 62)) +>U : Symbol(U, Decl(mappedTypeWithAny.ts, 39, 22)) + +function bar(arrayish: Arrayish, objectish: Objectish, indirectArrayish: IndirectArrayish) { +>bar : Symbol(bar, Decl(mappedTypeWithAny.ts, 39, 58)) +>arrayish : Symbol(arrayish, Decl(mappedTypeWithAny.ts, 41, 13)) +>Arrayish : Symbol(Arrayish, Decl(mappedTypeWithAny.ts, 23, 1)) +>objectish : Symbol(objectish, Decl(mappedTypeWithAny.ts, 41, 37)) +>Objectish : Symbol(Objectish, Decl(mappedTypeWithAny.ts, 29, 62)) +>indirectArrayish : Symbol(indirectArrayish, Decl(mappedTypeWithAny.ts, 41, 64)) +>IndirectArrayish : Symbol(IndirectArrayish, Decl(mappedTypeWithAny.ts, 30, 61)) + + let arr: any[]; +>arr : Symbol(arr, Decl(mappedTypeWithAny.ts, 42, 7)) + + arr = arrayish; +>arr : Symbol(arr, Decl(mappedTypeWithAny.ts, 42, 7)) +>arrayish : Symbol(arrayish, Decl(mappedTypeWithAny.ts, 41, 13)) + + arr = objectish; +>arr : Symbol(arr, Decl(mappedTypeWithAny.ts, 42, 7)) +>objectish : Symbol(objectish, Decl(mappedTypeWithAny.ts, 41, 37)) + + arr = indirectArrayish; +>arr : Symbol(arr, Decl(mappedTypeWithAny.ts, 42, 7)) +>indirectArrayish : Symbol(indirectArrayish, Decl(mappedTypeWithAny.ts, 41, 64)) +} + +declare function stringifyArray(arr: T): { -readonly [K in keyof T]: string }; +>stringifyArray : Symbol(stringifyArray, Decl(mappedTypeWithAny.ts, 46, 1)) +>T : Symbol(T, Decl(mappedTypeWithAny.ts, 48, 32)) +>arr : Symbol(arr, Decl(mappedTypeWithAny.ts, 48, 58)) +>T : Symbol(T, Decl(mappedTypeWithAny.ts, 48, 32)) +>K : Symbol(K, Decl(mappedTypeWithAny.ts, 48, 80)) +>T : Symbol(T, Decl(mappedTypeWithAny.ts, 48, 32)) + +let abc: any[] = stringifyArray(void 0 as any); +>abc : Symbol(abc, Decl(mappedTypeWithAny.ts, 49, 3)) +>stringifyArray : Symbol(stringifyArray, Decl(mappedTypeWithAny.ts, 46, 1)) + +declare function stringifyPair(arr: T): { -readonly [K in keyof T]: string }; +>stringifyPair : Symbol(stringifyPair, Decl(mappedTypeWithAny.ts, 49, 47)) +>T : Symbol(T, Decl(mappedTypeWithAny.ts, 51, 31)) +>arr : Symbol(arr, Decl(mappedTypeWithAny.ts, 51, 62)) +>T : Symbol(T, Decl(mappedTypeWithAny.ts, 51, 31)) +>K : Symbol(K, Decl(mappedTypeWithAny.ts, 51, 84)) +>T : Symbol(T, Decl(mappedTypeWithAny.ts, 51, 31)) + +let def: [any, any] = stringifyPair(void 0 as any); +>def : Symbol(def, Decl(mappedTypeWithAny.ts, 52, 3)) +>stringifyPair : Symbol(stringifyPair, Decl(mappedTypeWithAny.ts, 49, 47)) + +// Repro from #46582 + +type Evolvable = { +>Evolvable : Symbol(Evolvable, Decl(mappedTypeWithAny.ts, 52, 51)) +>E : Symbol(E, Decl(mappedTypeWithAny.ts, 56, 15)) +>Evolver : Symbol(Evolver, Decl(mappedTypeWithAny.ts, 58, 2)) + + [P in keyof E]: never; +>P : Symbol(P, Decl(mappedTypeWithAny.ts, 57, 3)) +>E : Symbol(E, Decl(mappedTypeWithAny.ts, 56, 15)) + +}; +type Evolver = any> = { +>Evolver : Symbol(Evolver, Decl(mappedTypeWithAny.ts, 58, 2)) +>T : Symbol(T, Decl(mappedTypeWithAny.ts, 59, 13)) +>Evolvable : Symbol(Evolvable, Decl(mappedTypeWithAny.ts, 52, 51)) + + [key in keyof Partial]: never; +>key : Symbol(key, Decl(mappedTypeWithAny.ts, 60, 3)) +>Partial : Symbol(Partial, Decl(lib.es5.d.ts, --, --)) +>T : Symbol(T, Decl(mappedTypeWithAny.ts, 59, 13)) + +}; + diff --git a/tests/baselines/reference/mappedTypeWithAny.types b/tests/baselines/reference/mappedTypeWithAny.types index c95a17ab43b51..773984fa576d6 100644 --- a/tests/baselines/reference/mappedTypeWithAny.types +++ b/tests/baselines/reference/mappedTypeWithAny.types @@ -56,3 +56,85 @@ for (let id in z) { >notAValue : any } +// Issue #46169. +// We want mapped types whose constraint is `keyof T` to +// map over `any` differently, depending on whether `T` +// is constrained to array and tuple types. +type Arrayish = { [K in keyof T]: T[K] }; +>Arrayish : Arrayish + +type Objectish = { [K in keyof T]: T[K] }; +>Objectish : Objectish + +// When a mapped type whose constraint is `keyof T` is instantiated, +// `T` may be instantiated with a `U` which is constrained to +// array and tuple types. *Ideally*, when `U` is later instantiated with `any`, +// the result should also be some sort of array; however, at the moment we don't seem +// to have an easy way to preserve that information. More than just that, it would be +// inconsistent for two instantiations of `Objectish` to produce different outputs +// depending on the usage-site. As a result, `IndirectArrayish` does not act like `Arrayish`. +type IndirectArrayish = Objectish; +>IndirectArrayish : Objectish + +function bar(arrayish: Arrayish, objectish: Objectish, indirectArrayish: IndirectArrayish) { +>bar : (arrayish: Arrayish, objectish: Objectish, indirectArrayish: IndirectArrayish) => void +>arrayish : any[] +>objectish : Objectish +>indirectArrayish : Objectish + + let arr: any[]; +>arr : any[] + + arr = arrayish; +>arr = arrayish : any[] +>arr : any[] +>arrayish : any[] + + arr = objectish; +>arr = objectish : Objectish +>arr : any[] +>objectish : Objectish + + arr = indirectArrayish; +>arr = indirectArrayish : Objectish +>arr : any[] +>indirectArrayish : Objectish +} + +declare function stringifyArray(arr: T): { -readonly [K in keyof T]: string }; +>stringifyArray : (arr: T) => { -readonly [K in keyof T]: string; } +>arr : T + +let abc: any[] = stringifyArray(void 0 as any); +>abc : any[] +>stringifyArray(void 0 as any) : string[] +>stringifyArray : (arr: T) => { -readonly [K in keyof T]: string; } +>void 0 as any : any +>void 0 : undefined +>0 : 0 + +declare function stringifyPair(arr: T): { -readonly [K in keyof T]: string }; +>stringifyPair : (arr: T) => { -readonly [K in keyof T]: string; } +>arr : T + +let def: [any, any] = stringifyPair(void 0 as any); +>def : [any, any] +>stringifyPair(void 0 as any) : string[] +>stringifyPair : (arr: T) => { -readonly [K in keyof T]: string; } +>void 0 as any : any +>void 0 : undefined +>0 : 0 + +// Repro from #46582 + +type Evolvable = { +>Evolvable : Evolvable + + [P in keyof E]: never; +}; +type Evolver = any> = { +>Evolver : Evolver + + [key in keyof Partial]: never; +}; + diff --git a/tests/baselines/reference/mappedTypeWithAsClauseAndLateBoundProperty.errors.txt b/tests/baselines/reference/mappedTypeWithAsClauseAndLateBoundProperty.errors.txt index 011b1b3c190b7..1f06530c7be2d 100644 --- a/tests/baselines/reference/mappedTypeWithAsClauseAndLateBoundProperty.errors.txt +++ b/tests/baselines/reference/mappedTypeWithAsClauseAndLateBoundProperty.errors.txt @@ -7,5 +7,5 @@ tests/cases/compiler/mappedTypeWithAsClauseAndLateBoundProperty.ts(3,1): error T tgt2 = src2; // Should error ~~~~ !!! error TS2741: Property 'length' is missing in type '{ [x: number]: number; toString: () => string; toLocaleString: () => string; pop: () => number; push: (...items: number[]) => number; concat: { (...items: ConcatArray[]): number[]; (...items: (number | ConcatArray)[]): number[]; }; join: (separator?: string) => string; reverse: () => number[]; shift: () => number; slice: (start?: number, end?: number) => number[]; sort: (compareFn?: (a: number, b: number) => number) => number[]; splice: { (start: number, deleteCount?: number): number[]; (start: number, deleteCount: number, ...items: number[]): number[]; }; unshift: (...items: number[]) => number; indexOf: (searchElement: number, fromIndex?: number) => number; lastIndexOf: (searchElement: number, fromIndex?: number) => number; every: { (predicate: (value: number, index: number, array: number[]) => value is S, thisArg?: any): this is S[]; (predicate: (value: number, index: number, array: number[]) => unknown, thisArg?: any): boolean; }; some: (predicate: (value: number, index: number, array: number[]) => unknown, thisArg?: any) => boolean; forEach: (callbackfn: (value: number, index: number, array: number[]) => void, thisArg?: any) => void; map: (callbackfn: (value: number, index: number, array: number[]) => U, thisArg?: any) => U[]; filter: { (predicate: (value: number, index: number, array: number[]) => value is S, thisArg?: any): S[]; (predicate: (value: number, index: number, array: number[]) => unknown, thisArg?: any): number[]; }; reduce: { (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number): number; (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number, initialValue: number): number; (callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: number[]) => U, initialValue: U): U; }; reduceRight: { (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number): number; (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number, initialValue: number): number; (callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: number[]) => U, initialValue: U): U; }; find: { (predicate: (this: void, value: number, index: number, obj: number[]) => value is S, thisArg?: any): S; (predicate: (value: number, index: number, obj: number[]) => unknown, thisArg?: any): number; }; findIndex: (predicate: (value: number, index: number, obj: number[]) => unknown, thisArg?: any) => number; fill: (value: number, start?: number, end?: number) => number[]; copyWithin: (target: number, start: number, end?: number) => number[]; entries: () => IterableIterator<[number, number]>; keys: () => IterableIterator; values: () => IterableIterator; includes: (searchElement: number, fromIndex?: number) => boolean; flatMap: (callback: (this: This, value: number, index: number, array: number[]) => U | readonly U[], thisArg?: This) => U[]; flat: (this: A, depth?: D) => FlatArray[]; [iterator]: () => IterableIterator; [unscopables]: () => { copyWithin: boolean; entries: boolean; fill: boolean; find: boolean; findIndex: boolean; keys: boolean; values: boolean; }; }' but required in type 'number[]'. -!!! related TS2728 /.ts/lib.es5.d.ts:1273:5: 'length' is declared here. +!!! related TS2728 /.ts/lib.es5.d.ts:1279:5: 'length' is declared here. \ No newline at end of file diff --git a/tests/baselines/reference/mappedTypesAndObjects.errors.txt b/tests/baselines/reference/mappedTypesAndObjects.errors.txt new file mode 100644 index 0000000000000..c32fc58b370e7 --- /dev/null +++ b/tests/baselines/reference/mappedTypesAndObjects.errors.txt @@ -0,0 +1,54 @@ +tests/cases/conformance/types/mapped/mappedTypesAndObjects.ts(25,11): error TS2430: Interface 'E1' incorrectly extends interface 'Base'. + Types of property 'foo' are incompatible. + Type 'T' is not assignable to type '{ [key: string]: any; }'. + + +==== tests/cases/conformance/types/mapped/mappedTypesAndObjects.ts (1 errors) ==== + function f1(x: Partial, y: Readonly) { + let obj: {}; + obj = x; + obj = y; + } + + function f2(x: Partial, y: Readonly) { + let obj: { [x: string]: any }; + obj = x; + obj = y; + } + + function f3(x: Partial) { + x = {}; + } + + // Repro from #12900 + + interface Base { + foo: { [key: string]: any }; + bar: any; + baz: any; + } + + interface E1 extends Base { + ~~ +!!! error TS2430: Interface 'E1' incorrectly extends interface 'Base'. +!!! error TS2430: Types of property 'foo' are incompatible. +!!! error TS2430: Type 'T' is not assignable to type '{ [key: string]: any; }'. +!!! related TS2208 tests/cases/conformance/types/mapped/mappedTypesAndObjects.ts:25:14: This type parameter probably needs an `extends object` constraint. + foo: T; + } + + interface Something { name: string, value: string }; + interface E2 extends Base { + foo: Partial; // or other mapped type + } + + interface E3 extends Base { + foo: Partial; // or other mapped type + } + + // Repro from #13747 + + class Form { + private values: {[P in keyof T]?: T[P]} = {} + } + \ No newline at end of file diff --git a/tests/baselines/reference/memberOverride.errors.txt b/tests/baselines/reference/memberOverride.errors.txt index 15c4b2ad37bb8..63d28ba75c2f1 100644 --- a/tests/baselines/reference/memberOverride.errors.txt +++ b/tests/baselines/reference/memberOverride.errors.txt @@ -1,4 +1,4 @@ -tests/cases/compiler/memberOverride.ts(5,5): error TS2300: Duplicate identifier 'a'. +tests/cases/compiler/memberOverride.ts(5,5): error TS1117: An object literal cannot have multiple properties with the same name. ==== tests/cases/compiler/memberOverride.ts (1 errors) ==== @@ -8,7 +8,7 @@ tests/cases/compiler/memberOverride.ts(5,5): error TS2300: Duplicate identifier a: "", a: 5 ~ -!!! error TS2300: Duplicate identifier 'a'. +!!! error TS1117: An object literal cannot have multiple properties with the same name. } var n: number = x.a; \ No newline at end of file diff --git a/tests/baselines/reference/mergedClassNamespaceRecordCast.errors.txt b/tests/baselines/reference/mergedClassNamespaceRecordCast.errors.txt new file mode 100644 index 0000000000000..7c170f7e7cc33 --- /dev/null +++ b/tests/baselines/reference/mergedClassNamespaceRecordCast.errors.txt @@ -0,0 +1,34 @@ +tests/cases/compiler/mergedClassNamespaceRecordCast.ts(3,1): error TS2352: Conversion of type 'C1' to type 'Record' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first. + Index signature for type 'string' is missing in type 'C1'. +tests/cases/compiler/mergedClassNamespaceRecordCast.ts(9,1): error TS2352: Conversion of type 'C2' to type 'Record' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first. + Index signature for type 'string' is missing in type 'C2'. +tests/cases/compiler/mergedClassNamespaceRecordCast.ts(12,10): error TS2339: Property 'unrelated' does not exist on type 'C2'. + + +==== tests/cases/compiler/mergedClassNamespaceRecordCast.ts (3 errors) ==== + class C1 { foo() {} } + + new C1() as Record; + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2352: Conversion of type 'C1' to type 'Record' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first. +!!! error TS2352: Index signature for type 'string' is missing in type 'C1'. + + + class C2 { foo() {} } + namespace C2 { export const unrelated = 3; } + + new C2() as Record; + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2352: Conversion of type 'C2' to type 'Record' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first. +!!! error TS2352: Index signature for type 'string' is missing in type 'C2'. + + C2.unrelated + new C2().unrelated + ~~~~~~~~~ +!!! error TS2339: Property 'unrelated' does not exist on type 'C2'. + + + namespace C3 { export const unrelated = 3; } + + C3 as Record; + \ No newline at end of file diff --git a/tests/baselines/reference/mergedClassNamespaceRecordCast.js b/tests/baselines/reference/mergedClassNamespaceRecordCast.js new file mode 100644 index 0000000000000..848f01d70cfbb --- /dev/null +++ b/tests/baselines/reference/mergedClassNamespaceRecordCast.js @@ -0,0 +1,45 @@ +//// [mergedClassNamespaceRecordCast.ts] +class C1 { foo() {} } + +new C1() as Record; + + +class C2 { foo() {} } +namespace C2 { export const unrelated = 3; } + +new C2() as Record; + +C2.unrelated +new C2().unrelated + + +namespace C3 { export const unrelated = 3; } + +C3 as Record; + + +//// [mergedClassNamespaceRecordCast.js] +var C1 = /** @class */ (function () { + function C1() { + } + C1.prototype.foo = function () { }; + return C1; +}()); +new C1(); +var C2 = /** @class */ (function () { + function C2() { + } + C2.prototype.foo = function () { }; + return C2; +}()); +(function (C2) { + C2.unrelated = 3; +})(C2 || (C2 = {})); +new C2(); +C2.unrelated; +new C2().unrelated; +var C3; +(function (C3) { + C3.unrelated = 3; +})(C3 || (C3 = {})); +C3; diff --git a/tests/baselines/reference/mergedClassNamespaceRecordCast.symbols b/tests/baselines/reference/mergedClassNamespaceRecordCast.symbols new file mode 100644 index 0000000000000..71f6d7c79a54e --- /dev/null +++ b/tests/baselines/reference/mergedClassNamespaceRecordCast.symbols @@ -0,0 +1,39 @@ +=== tests/cases/compiler/mergedClassNamespaceRecordCast.ts === +class C1 { foo() {} } +>C1 : Symbol(C1, Decl(mergedClassNamespaceRecordCast.ts, 0, 0)) +>foo : Symbol(C1.foo, Decl(mergedClassNamespaceRecordCast.ts, 0, 10)) + +new C1() as Record; +>C1 : Symbol(C1, Decl(mergedClassNamespaceRecordCast.ts, 0, 0)) +>Record : Symbol(Record, Decl(lib.es5.d.ts, --, --)) + + +class C2 { foo() {} } +>C2 : Symbol(C2, Decl(mergedClassNamespaceRecordCast.ts, 2, 36), Decl(mergedClassNamespaceRecordCast.ts, 5, 21)) +>foo : Symbol(C2.foo, Decl(mergedClassNamespaceRecordCast.ts, 5, 10)) + +namespace C2 { export const unrelated = 3; } +>C2 : Symbol(C2, Decl(mergedClassNamespaceRecordCast.ts, 2, 36), Decl(mergedClassNamespaceRecordCast.ts, 5, 21)) +>unrelated : Symbol(unrelated, Decl(mergedClassNamespaceRecordCast.ts, 6, 27)) + +new C2() as Record; +>C2 : Symbol(C2, Decl(mergedClassNamespaceRecordCast.ts, 2, 36), Decl(mergedClassNamespaceRecordCast.ts, 5, 21)) +>Record : Symbol(Record, Decl(lib.es5.d.ts, --, --)) + +C2.unrelated +>C2.unrelated : Symbol(C2.unrelated, Decl(mergedClassNamespaceRecordCast.ts, 6, 27)) +>C2 : Symbol(C2, Decl(mergedClassNamespaceRecordCast.ts, 2, 36), Decl(mergedClassNamespaceRecordCast.ts, 5, 21)) +>unrelated : Symbol(C2.unrelated, Decl(mergedClassNamespaceRecordCast.ts, 6, 27)) + +new C2().unrelated +>C2 : Symbol(C2, Decl(mergedClassNamespaceRecordCast.ts, 2, 36), Decl(mergedClassNamespaceRecordCast.ts, 5, 21)) + + +namespace C3 { export const unrelated = 3; } +>C3 : Symbol(C3, Decl(mergedClassNamespaceRecordCast.ts, 11, 18)) +>unrelated : Symbol(unrelated, Decl(mergedClassNamespaceRecordCast.ts, 14, 27)) + +C3 as Record; +>C3 : Symbol(C3, Decl(mergedClassNamespaceRecordCast.ts, 11, 18)) +>Record : Symbol(Record, Decl(lib.es5.d.ts, --, --)) + diff --git a/tests/baselines/reference/mergedClassNamespaceRecordCast.types b/tests/baselines/reference/mergedClassNamespaceRecordCast.types new file mode 100644 index 0000000000000..8d15fe5151291 --- /dev/null +++ b/tests/baselines/reference/mergedClassNamespaceRecordCast.types @@ -0,0 +1,46 @@ +=== tests/cases/compiler/mergedClassNamespaceRecordCast.ts === +class C1 { foo() {} } +>C1 : C1 +>foo : () => void + +new C1() as Record; +>new C1() as Record : Record +>new C1() : C1 +>C1 : typeof C1 + + +class C2 { foo() {} } +>C2 : C2 +>foo : () => void + +namespace C2 { export const unrelated = 3; } +>C2 : typeof C2 +>unrelated : 3 +>3 : 3 + +new C2() as Record; +>new C2() as Record : Record +>new C2() : C2 +>C2 : typeof C2 + +C2.unrelated +>C2.unrelated : 3 +>C2 : typeof C2 +>unrelated : 3 + +new C2().unrelated +>new C2().unrelated : any +>new C2() : C2 +>C2 : typeof C2 +>unrelated : any + + +namespace C3 { export const unrelated = 3; } +>C3 : typeof C3 +>unrelated : 3 +>3 : 3 + +C3 as Record; +>C3 as Record : Record +>C3 : typeof C3 + diff --git a/tests/baselines/reference/mergedWithLocalValue.js b/tests/baselines/reference/mergedWithLocalValue.js new file mode 100644 index 0000000000000..a25a4909f5a83 --- /dev/null +++ b/tests/baselines/reference/mergedWithLocalValue.js @@ -0,0 +1,19 @@ +//// [tests/cases/conformance/externalModules/typeOnly/mergedWithLocalValue.ts] //// + +//// [a.ts] +export type A = "a"; + +//// [b.ts] +import type { A } from "./a"; +const A: A = "a"; +A.toUpperCase(); + + +//// [a.js] +"use strict"; +exports.__esModule = true; +//// [b.js] +"use strict"; +exports.__esModule = true; +var A = "a"; +A.toUpperCase(); diff --git a/tests/baselines/reference/mergedWithLocalValue.symbols b/tests/baselines/reference/mergedWithLocalValue.symbols new file mode 100644 index 0000000000000..141cb71694e45 --- /dev/null +++ b/tests/baselines/reference/mergedWithLocalValue.symbols @@ -0,0 +1,17 @@ +=== tests/cases/conformance/externalModules/typeOnly/a.ts === +export type A = "a"; +>A : Symbol(A, Decl(a.ts, 0, 0)) + +=== tests/cases/conformance/externalModules/typeOnly/b.ts === +import type { A } from "./a"; +>A : Symbol(A, Decl(b.ts, 0, 13), Decl(b.ts, 1, 5)) + +const A: A = "a"; +>A : Symbol(A, Decl(b.ts, 0, 13), Decl(b.ts, 1, 5)) +>A : Symbol(A, Decl(b.ts, 0, 13), Decl(b.ts, 1, 5)) + +A.toUpperCase(); +>A.toUpperCase : Symbol(String.toUpperCase, Decl(lib.es5.d.ts, --, --)) +>A : Symbol(A, Decl(b.ts, 0, 13), Decl(b.ts, 1, 5)) +>toUpperCase : Symbol(String.toUpperCase, Decl(lib.es5.d.ts, --, --)) + diff --git a/tests/baselines/reference/mergedWithLocalValue.types b/tests/baselines/reference/mergedWithLocalValue.types new file mode 100644 index 0000000000000..05666f8c5b62d --- /dev/null +++ b/tests/baselines/reference/mergedWithLocalValue.types @@ -0,0 +1,18 @@ +=== tests/cases/conformance/externalModules/typeOnly/a.ts === +export type A = "a"; +>A : "a" + +=== tests/cases/conformance/externalModules/typeOnly/b.ts === +import type { A } from "./a"; +>A : "a" + +const A: A = "a"; +>A : "a" +>"a" : "a" + +A.toUpperCase(); +>A.toUpperCase() : string +>A.toUpperCase : () => string +>A : "a" +>toUpperCase : () => string + diff --git a/tests/baselines/reference/missingCloseBracketInArray.errors.txt b/tests/baselines/reference/missingCloseBracketInArray.errors.txt new file mode 100644 index 0000000000000..26801c02812b4 --- /dev/null +++ b/tests/baselines/reference/missingCloseBracketInArray.errors.txt @@ -0,0 +1,8 @@ +tests/cases/compiler/missingCloseBracketInArray.ts(1,48): error TS1005: ']' expected. + + +==== tests/cases/compiler/missingCloseBracketInArray.ts (1 errors) ==== + var alphas:string[] = alphas = ["1","2","3","4" + +!!! error TS1005: ']' expected. +!!! related TS1007 tests/cases/compiler/missingCloseBracketInArray.ts:1:32: The parser expected to find a ']' to match the '[' token here. \ No newline at end of file diff --git a/tests/baselines/reference/missingCloseBracketInArray.js b/tests/baselines/reference/missingCloseBracketInArray.js new file mode 100644 index 0000000000000..cb842d1cc7413 --- /dev/null +++ b/tests/baselines/reference/missingCloseBracketInArray.js @@ -0,0 +1,5 @@ +//// [missingCloseBracketInArray.ts] +var alphas:string[] = alphas = ["1","2","3","4" + +//// [missingCloseBracketInArray.js] +var alphas = alphas = ["1", "2", "3", "4"]; diff --git a/tests/baselines/reference/missingCloseBracketInArray.symbols b/tests/baselines/reference/missingCloseBracketInArray.symbols new file mode 100644 index 0000000000000..4d28f8945fd13 --- /dev/null +++ b/tests/baselines/reference/missingCloseBracketInArray.symbols @@ -0,0 +1,5 @@ +=== tests/cases/compiler/missingCloseBracketInArray.ts === +var alphas:string[] = alphas = ["1","2","3","4" +>alphas : Symbol(alphas, Decl(missingCloseBracketInArray.ts, 0, 3)) +>alphas : Symbol(alphas, Decl(missingCloseBracketInArray.ts, 0, 3)) + diff --git a/tests/baselines/reference/missingCloseBracketInArray.types b/tests/baselines/reference/missingCloseBracketInArray.types new file mode 100644 index 0000000000000..557a865827c2b --- /dev/null +++ b/tests/baselines/reference/missingCloseBracketInArray.types @@ -0,0 +1,11 @@ +=== tests/cases/compiler/missingCloseBracketInArray.ts === +var alphas:string[] = alphas = ["1","2","3","4" +>alphas : string[] +>alphas = ["1","2","3","4" : string[] +>alphas : string[] +>["1","2","3","4" : string[] +>"1" : "1" +>"2" : "2" +>"3" : "3" +>"4" : "4" + diff --git a/tests/baselines/reference/missingCloseParenStatements.errors.txt b/tests/baselines/reference/missingCloseParenStatements.errors.txt new file mode 100644 index 0000000000000..3f49d5a036653 --- /dev/null +++ b/tests/baselines/reference/missingCloseParenStatements.errors.txt @@ -0,0 +1,32 @@ +tests/cases/compiler/missingCloseParenStatements.ts(2,26): error TS1005: ')' expected. +tests/cases/compiler/missingCloseParenStatements.ts(4,5): error TS1005: ')' expected. +tests/cases/compiler/missingCloseParenStatements.ts(8,39): error TS1005: ')' expected. +tests/cases/compiler/missingCloseParenStatements.ts(11,35): error TS1005: ')' expected. + + +==== tests/cases/compiler/missingCloseParenStatements.ts (4 errors) ==== + var a1, a2, a3 = 0; + if ( a1 && (a2 + a3 > 0) { + ~ +!!! error TS1005: ')' expected. +!!! related TS1007 tests/cases/compiler/missingCloseParenStatements.ts:2:4: The parser expected to find a ')' to match the '(' token here. + while( (a2 > 0) && a1 + { + ~ +!!! error TS1005: ')' expected. +!!! related TS1007 tests/cases/compiler/missingCloseParenStatements.ts:3:10: The parser expected to find a ')' to match the '(' token here. + do { + var i = i + 1; + a1 = a1 + i; + with ((a2 + a3 > 0) && a1 { + ~ +!!! error TS1005: ')' expected. +!!! related TS1007 tests/cases/compiler/missingCloseParenStatements.ts:8:18: The parser expected to find a ')' to match the '(' token here. + console.log(x); + } + } while (i < 5 && (a1 > 5); + ~ +!!! error TS1005: ')' expected. +!!! related TS1007 tests/cases/compiler/missingCloseParenStatements.ts:11:17: The parser expected to find a ')' to match the '(' token here. + } + } \ No newline at end of file diff --git a/tests/baselines/reference/missingCloseParenStatements.js b/tests/baselines/reference/missingCloseParenStatements.js new file mode 100644 index 0000000000000..8ba56b6b88183 --- /dev/null +++ b/tests/baselines/reference/missingCloseParenStatements.js @@ -0,0 +1,28 @@ +//// [missingCloseParenStatements.ts] +var a1, a2, a3 = 0; +if ( a1 && (a2 + a3 > 0) { + while( (a2 > 0) && a1 + { + do { + var i = i + 1; + a1 = a1 + i; + with ((a2 + a3 > 0) && a1 { + console.log(x); + } + } while (i < 5 && (a1 > 5); + } +} + +//// [missingCloseParenStatements.js] +var a1, a2, a3 = 0; +if (a1 && (a2 + a3 > 0)) { + while ((a2 > 0) && a1) { + do { + var i = i + 1; + a1 = a1 + i; + with ((a2 + a3 > 0) && a1) { + console.log(x); + } + } while (i < 5 && (a1 > 5)); + } +} diff --git a/tests/baselines/reference/missingCloseParenStatements.symbols b/tests/baselines/reference/missingCloseParenStatements.symbols new file mode 100644 index 0000000000000..e403570f8e832 --- /dev/null +++ b/tests/baselines/reference/missingCloseParenStatements.symbols @@ -0,0 +1,37 @@ +=== tests/cases/compiler/missingCloseParenStatements.ts === +var a1, a2, a3 = 0; +>a1 : Symbol(a1, Decl(missingCloseParenStatements.ts, 0, 3)) +>a2 : Symbol(a2, Decl(missingCloseParenStatements.ts, 0, 7)) +>a3 : Symbol(a3, Decl(missingCloseParenStatements.ts, 0, 11)) + +if ( a1 && (a2 + a3 > 0) { +>a1 : Symbol(a1, Decl(missingCloseParenStatements.ts, 0, 3)) +>a2 : Symbol(a2, Decl(missingCloseParenStatements.ts, 0, 7)) +>a3 : Symbol(a3, Decl(missingCloseParenStatements.ts, 0, 11)) + + while( (a2 > 0) && a1 +>a2 : Symbol(a2, Decl(missingCloseParenStatements.ts, 0, 7)) +>a1 : Symbol(a1, Decl(missingCloseParenStatements.ts, 0, 3)) + { + do { + var i = i + 1; +>i : Symbol(i, Decl(missingCloseParenStatements.ts, 5, 15)) +>i : Symbol(i, Decl(missingCloseParenStatements.ts, 5, 15)) + + a1 = a1 + i; +>a1 : Symbol(a1, Decl(missingCloseParenStatements.ts, 0, 3)) +>a1 : Symbol(a1, Decl(missingCloseParenStatements.ts, 0, 3)) +>i : Symbol(i, Decl(missingCloseParenStatements.ts, 5, 15)) + + with ((a2 + a3 > 0) && a1 { +>a2 : Symbol(a2, Decl(missingCloseParenStatements.ts, 0, 7)) +>a3 : Symbol(a3, Decl(missingCloseParenStatements.ts, 0, 11)) +>a1 : Symbol(a1, Decl(missingCloseParenStatements.ts, 0, 3)) + + console.log(x); + } + } while (i < 5 && (a1 > 5); +>i : Symbol(i, Decl(missingCloseParenStatements.ts, 5, 15)) +>a1 : Symbol(a1, Decl(missingCloseParenStatements.ts, 0, 3)) + } +} diff --git a/tests/baselines/reference/missingCloseParenStatements.types b/tests/baselines/reference/missingCloseParenStatements.types new file mode 100644 index 0000000000000..0d1b7469f6073 --- /dev/null +++ b/tests/baselines/reference/missingCloseParenStatements.types @@ -0,0 +1,67 @@ +=== tests/cases/compiler/missingCloseParenStatements.ts === +var a1, a2, a3 = 0; +>a1 : any +>a2 : any +>a3 : number +>0 : 0 + +if ( a1 && (a2 + a3 > 0) { +>a1 && (a2 + a3 > 0) : boolean +>a1 : any +>(a2 + a3 > 0) : boolean +>a2 + a3 > 0 : boolean +>a2 + a3 : any +>a2 : any +>a3 : number +>0 : 0 + + while( (a2 > 0) && a1 +>(a2 > 0) && a1 : any +>(a2 > 0) : boolean +>a2 > 0 : boolean +>a2 : any +>0 : 0 +>a1 : any + { + do { + var i = i + 1; +>i : any +>i + 1 : any +>i : any +>1 : 1 + + a1 = a1 + i; +>a1 = a1 + i : any +>a1 : any +>a1 + i : any +>a1 : any +>i : any + + with ((a2 + a3 > 0) && a1 { +>(a2 + a3 > 0) && a1 : any +>(a2 + a3 > 0) : boolean +>a2 + a3 > 0 : boolean +>a2 + a3 : any +>a2 : any +>a3 : number +>0 : 0 +>a1 : any + + console.log(x); +>console.log(x) : any +>console.log : any +>console : any +>log : any +>x : any + } + } while (i < 5 && (a1 > 5); +>i < 5 && (a1 > 5) : boolean +>i < 5 : boolean +>i : any +>5 : 5 +>(a1 > 5) : boolean +>a1 > 5 : boolean +>a1 : any +>5 : 5 + } +} diff --git a/tests/baselines/reference/moduleAugmentationDoesInterfaceMergeOfReexport.js b/tests/baselines/reference/moduleAugmentationDoesInterfaceMergeOfReexport.js index 45b1fe736c9a7..17f40b05399a7 100644 --- a/tests/baselines/reference/moduleAugmentationDoesInterfaceMergeOfReexport.js +++ b/tests/baselines/reference/moduleAugmentationDoesInterfaceMergeOfReexport.js @@ -29,7 +29,11 @@ exports.__esModule = true; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/moduleAugmentationDoesNamespaceEnumMergeOfReexport.js b/tests/baselines/reference/moduleAugmentationDoesNamespaceEnumMergeOfReexport.js index 33f63201f6523..5ebab510855c4 100644 --- a/tests/baselines/reference/moduleAugmentationDoesNamespaceEnumMergeOfReexport.js +++ b/tests/baselines/reference/moduleAugmentationDoesNamespaceEnumMergeOfReexport.js @@ -34,7 +34,11 @@ exports.__esModule = true; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/moduleAugmentationDoesNamespaceMergeOfReexport.js b/tests/baselines/reference/moduleAugmentationDoesNamespaceMergeOfReexport.js index 16a902446fada..cfc4edeedf005 100644 --- a/tests/baselines/reference/moduleAugmentationDoesNamespaceMergeOfReexport.js +++ b/tests/baselines/reference/moduleAugmentationDoesNamespaceMergeOfReexport.js @@ -33,7 +33,11 @@ exports.__esModule = true; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/moduleAugmentationEnumClassMergeOfReexportIsError.js b/tests/baselines/reference/moduleAugmentationEnumClassMergeOfReexportIsError.js index e86b27b453829..50efa54246af2 100644 --- a/tests/baselines/reference/moduleAugmentationEnumClassMergeOfReexportIsError.js +++ b/tests/baselines/reference/moduleAugmentationEnumClassMergeOfReexportIsError.js @@ -32,7 +32,11 @@ exports.Foo = Foo; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/moduleDeclarationExportStarShadowingGlobalIsNameable.js b/tests/baselines/reference/moduleDeclarationExportStarShadowingGlobalIsNameable.js index aa2db1ec14065..87024fccebd6e 100644 --- a/tests/baselines/reference/moduleDeclarationExportStarShadowingGlobalIsNameable.js +++ b/tests/baselines/reference/moduleDeclarationExportStarShadowingGlobalIsNameable.js @@ -32,7 +32,11 @@ exports.__esModule = true; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/moduleElementsInWrongContext.errors.txt b/tests/baselines/reference/moduleElementsInWrongContext.errors.txt index 146a6dcd951df..4226266e82992 100644 --- a/tests/baselines/reference/moduleElementsInWrongContext.errors.txt +++ b/tests/baselines/reference/moduleElementsInWrongContext.errors.txt @@ -1,36 +1,36 @@ -tests/cases/compiler/moduleElementsInWrongContext.ts(2,5): error TS1235: A namespace declaration is only allowed in a namespace or module. -tests/cases/compiler/moduleElementsInWrongContext.ts(3,5): error TS1235: A namespace declaration is only allowed in a namespace or module. -tests/cases/compiler/moduleElementsInWrongContext.ts(7,5): error TS1235: A namespace declaration is only allowed in a namespace or module. +tests/cases/compiler/moduleElementsInWrongContext.ts(2,5): error TS1235: A namespace declaration is only allowed at the top level of a namespace or module. +tests/cases/compiler/moduleElementsInWrongContext.ts(3,5): error TS1235: A namespace declaration is only allowed at the top level of a namespace or module. +tests/cases/compiler/moduleElementsInWrongContext.ts(7,5): error TS1235: A namespace declaration is only allowed at the top level of a namespace or module. tests/cases/compiler/moduleElementsInWrongContext.ts(9,5): error TS1234: An ambient module declaration is only allowed at the top level in a file. tests/cases/compiler/moduleElementsInWrongContext.ts(13,5): error TS1231: An export assignment must be at the top level of a file or module declaration. -tests/cases/compiler/moduleElementsInWrongContext.ts(17,5): error TS1233: An export declaration can only be used in a module. -tests/cases/compiler/moduleElementsInWrongContext.ts(18,5): error TS1233: An export declaration can only be used in a module. -tests/cases/compiler/moduleElementsInWrongContext.ts(19,5): error TS1233: An export declaration can only be used in a module. +tests/cases/compiler/moduleElementsInWrongContext.ts(17,5): error TS1233: An export declaration can only be used at the top level of a namespace or module. +tests/cases/compiler/moduleElementsInWrongContext.ts(18,5): error TS1233: An export declaration can only be used at the top level of a namespace or module. +tests/cases/compiler/moduleElementsInWrongContext.ts(19,5): error TS1233: An export declaration can only be used at the top level of a namespace or module. tests/cases/compiler/moduleElementsInWrongContext.ts(20,5): error TS1258: A default export must be at the top level of a file or module declaration. tests/cases/compiler/moduleElementsInWrongContext.ts(21,5): error TS1184: Modifiers cannot appear here. tests/cases/compiler/moduleElementsInWrongContext.ts(22,5): error TS1184: Modifiers cannot appear here. -tests/cases/compiler/moduleElementsInWrongContext.ts(23,5): error TS1232: An import declaration can only be used in a namespace or module. -tests/cases/compiler/moduleElementsInWrongContext.ts(24,5): error TS1232: An import declaration can only be used in a namespace or module. -tests/cases/compiler/moduleElementsInWrongContext.ts(25,5): error TS1232: An import declaration can only be used in a namespace or module. -tests/cases/compiler/moduleElementsInWrongContext.ts(26,5): error TS1232: An import declaration can only be used in a namespace or module. -tests/cases/compiler/moduleElementsInWrongContext.ts(27,5): error TS1232: An import declaration can only be used in a namespace or module. -tests/cases/compiler/moduleElementsInWrongContext.ts(28,5): error TS1232: An import declaration can only be used in a namespace or module. +tests/cases/compiler/moduleElementsInWrongContext.ts(23,5): error TS1232: An import declaration can only be used at the top level of a namespace or module. +tests/cases/compiler/moduleElementsInWrongContext.ts(24,5): error TS1232: An import declaration can only be used at the top level of a namespace or module. +tests/cases/compiler/moduleElementsInWrongContext.ts(25,5): error TS1232: An import declaration can only be used at the top level of a namespace or module. +tests/cases/compiler/moduleElementsInWrongContext.ts(26,5): error TS1232: An import declaration can only be used at the top level of a namespace or module. +tests/cases/compiler/moduleElementsInWrongContext.ts(27,5): error TS1232: An import declaration can only be used at the top level of a namespace or module. +tests/cases/compiler/moduleElementsInWrongContext.ts(28,5): error TS1232: An import declaration can only be used at the top level of a namespace or module. ==== tests/cases/compiler/moduleElementsInWrongContext.ts (17 errors) ==== { module M { } ~~~~~~ -!!! error TS1235: A namespace declaration is only allowed in a namespace or module. +!!! error TS1235: A namespace declaration is only allowed at the top level of a namespace or module. export namespace N { ~~~~~~ -!!! error TS1235: A namespace declaration is only allowed in a namespace or module. +!!! error TS1235: A namespace declaration is only allowed at the top level of a namespace or module. export interface I { } } namespace Q.K { } ~~~~~~~~~ -!!! error TS1235: A namespace declaration is only allowed in a namespace or module. +!!! error TS1235: A namespace declaration is only allowed at the top level of a namespace or module. declare module "ambient" { ~~~~~~~ @@ -46,13 +46,13 @@ tests/cases/compiler/moduleElementsInWrongContext.ts(28,5): error TS1232: An imp function foo() { } export * from "ambient"; ~~~~~~ -!!! error TS1233: An export declaration can only be used in a module. +!!! error TS1233: An export declaration can only be used at the top level of a namespace or module. export { foo }; ~~~~~~ -!!! error TS1233: An export declaration can only be used in a module. +!!! error TS1233: An export declaration can only be used at the top level of a namespace or module. export { baz as b } from "ambient"; ~~~~~~ -!!! error TS1233: An export declaration can only be used in a module. +!!! error TS1233: An export declaration can only be used at the top level of a namespace or module. export default v; ~~~~~~ !!! error TS1258: A default export must be at the top level of a file or module declaration. @@ -64,21 +64,21 @@ tests/cases/compiler/moduleElementsInWrongContext.ts(28,5): error TS1232: An imp !!! error TS1184: Modifiers cannot appear here. import I = M; ~~~~~~ -!!! error TS1232: An import declaration can only be used in a namespace or module. +!!! error TS1232: An import declaration can only be used at the top level of a namespace or module. import I2 = require("foo"); ~~~~~~ -!!! error TS1232: An import declaration can only be used in a namespace or module. +!!! error TS1232: An import declaration can only be used at the top level of a namespace or module. import * as Foo from "ambient"; ~~~~~~ -!!! error TS1232: An import declaration can only be used in a namespace or module. +!!! error TS1232: An import declaration can only be used at the top level of a namespace or module. import bar from "ambient"; ~~~~~~ -!!! error TS1232: An import declaration can only be used in a namespace or module. +!!! error TS1232: An import declaration can only be used at the top level of a namespace or module. import { baz } from "ambient"; ~~~~~~ -!!! error TS1232: An import declaration can only be used in a namespace or module. +!!! error TS1232: An import declaration can only be used at the top level of a namespace or module. import "ambient"; ~~~~~~ -!!! error TS1232: An import declaration can only be used in a namespace or module. +!!! error TS1232: An import declaration can only be used at the top level of a namespace or module. } \ No newline at end of file diff --git a/tests/baselines/reference/moduleElementsInWrongContext2.errors.txt b/tests/baselines/reference/moduleElementsInWrongContext2.errors.txt index f858bf9923e2b..22fa234747db1 100644 --- a/tests/baselines/reference/moduleElementsInWrongContext2.errors.txt +++ b/tests/baselines/reference/moduleElementsInWrongContext2.errors.txt @@ -1,36 +1,36 @@ -tests/cases/compiler/moduleElementsInWrongContext2.ts(2,5): error TS1235: A namespace declaration is only allowed in a namespace or module. -tests/cases/compiler/moduleElementsInWrongContext2.ts(3,5): error TS1235: A namespace declaration is only allowed in a namespace or module. -tests/cases/compiler/moduleElementsInWrongContext2.ts(7,5): error TS1235: A namespace declaration is only allowed in a namespace or module. +tests/cases/compiler/moduleElementsInWrongContext2.ts(2,5): error TS1235: A namespace declaration is only allowed at the top level of a namespace or module. +tests/cases/compiler/moduleElementsInWrongContext2.ts(3,5): error TS1235: A namespace declaration is only allowed at the top level of a namespace or module. +tests/cases/compiler/moduleElementsInWrongContext2.ts(7,5): error TS1235: A namespace declaration is only allowed at the top level of a namespace or module. tests/cases/compiler/moduleElementsInWrongContext2.ts(9,5): error TS1234: An ambient module declaration is only allowed at the top level in a file. tests/cases/compiler/moduleElementsInWrongContext2.ts(13,5): error TS1231: An export assignment must be at the top level of a file or module declaration. -tests/cases/compiler/moduleElementsInWrongContext2.ts(17,5): error TS1233: An export declaration can only be used in a module. -tests/cases/compiler/moduleElementsInWrongContext2.ts(18,5): error TS1233: An export declaration can only be used in a module. -tests/cases/compiler/moduleElementsInWrongContext2.ts(19,5): error TS1233: An export declaration can only be used in a module. +tests/cases/compiler/moduleElementsInWrongContext2.ts(17,5): error TS1233: An export declaration can only be used at the top level of a namespace or module. +tests/cases/compiler/moduleElementsInWrongContext2.ts(18,5): error TS1233: An export declaration can only be used at the top level of a namespace or module. +tests/cases/compiler/moduleElementsInWrongContext2.ts(19,5): error TS1233: An export declaration can only be used at the top level of a namespace or module. tests/cases/compiler/moduleElementsInWrongContext2.ts(20,5): error TS1258: A default export must be at the top level of a file or module declaration. tests/cases/compiler/moduleElementsInWrongContext2.ts(21,5): error TS1184: Modifiers cannot appear here. tests/cases/compiler/moduleElementsInWrongContext2.ts(22,5): error TS1184: Modifiers cannot appear here. -tests/cases/compiler/moduleElementsInWrongContext2.ts(23,5): error TS1232: An import declaration can only be used in a namespace or module. -tests/cases/compiler/moduleElementsInWrongContext2.ts(24,5): error TS1232: An import declaration can only be used in a namespace or module. -tests/cases/compiler/moduleElementsInWrongContext2.ts(25,5): error TS1232: An import declaration can only be used in a namespace or module. -tests/cases/compiler/moduleElementsInWrongContext2.ts(26,5): error TS1232: An import declaration can only be used in a namespace or module. -tests/cases/compiler/moduleElementsInWrongContext2.ts(27,5): error TS1232: An import declaration can only be used in a namespace or module. -tests/cases/compiler/moduleElementsInWrongContext2.ts(28,5): error TS1232: An import declaration can only be used in a namespace or module. +tests/cases/compiler/moduleElementsInWrongContext2.ts(23,5): error TS1232: An import declaration can only be used at the top level of a namespace or module. +tests/cases/compiler/moduleElementsInWrongContext2.ts(24,5): error TS1232: An import declaration can only be used at the top level of a namespace or module. +tests/cases/compiler/moduleElementsInWrongContext2.ts(25,5): error TS1232: An import declaration can only be used at the top level of a namespace or module. +tests/cases/compiler/moduleElementsInWrongContext2.ts(26,5): error TS1232: An import declaration can only be used at the top level of a namespace or module. +tests/cases/compiler/moduleElementsInWrongContext2.ts(27,5): error TS1232: An import declaration can only be used at the top level of a namespace or module. +tests/cases/compiler/moduleElementsInWrongContext2.ts(28,5): error TS1232: An import declaration can only be used at the top level of a namespace or module. ==== tests/cases/compiler/moduleElementsInWrongContext2.ts (17 errors) ==== function blah () { module M { } ~~~~~~ -!!! error TS1235: A namespace declaration is only allowed in a namespace or module. +!!! error TS1235: A namespace declaration is only allowed at the top level of a namespace or module. export namespace N { ~~~~~~ -!!! error TS1235: A namespace declaration is only allowed in a namespace or module. +!!! error TS1235: A namespace declaration is only allowed at the top level of a namespace or module. export interface I { } } namespace Q.K { } ~~~~~~~~~ -!!! error TS1235: A namespace declaration is only allowed in a namespace or module. +!!! error TS1235: A namespace declaration is only allowed at the top level of a namespace or module. declare module "ambient" { ~~~~~~~ @@ -46,13 +46,13 @@ tests/cases/compiler/moduleElementsInWrongContext2.ts(28,5): error TS1232: An im function foo() { } export * from "ambient"; ~~~~~~ -!!! error TS1233: An export declaration can only be used in a module. +!!! error TS1233: An export declaration can only be used at the top level of a namespace or module. export { foo }; ~~~~~~ -!!! error TS1233: An export declaration can only be used in a module. +!!! error TS1233: An export declaration can only be used at the top level of a namespace or module. export { baz as b } from "ambient"; ~~~~~~ -!!! error TS1233: An export declaration can only be used in a module. +!!! error TS1233: An export declaration can only be used at the top level of a namespace or module. export default v; ~~~~~~ !!! error TS1258: A default export must be at the top level of a file or module declaration. @@ -64,21 +64,21 @@ tests/cases/compiler/moduleElementsInWrongContext2.ts(28,5): error TS1232: An im !!! error TS1184: Modifiers cannot appear here. import I = M; ~~~~~~ -!!! error TS1232: An import declaration can only be used in a namespace or module. +!!! error TS1232: An import declaration can only be used at the top level of a namespace or module. import I2 = require("foo"); ~~~~~~ -!!! error TS1232: An import declaration can only be used in a namespace or module. +!!! error TS1232: An import declaration can only be used at the top level of a namespace or module. import * as Foo from "ambient"; ~~~~~~ -!!! error TS1232: An import declaration can only be used in a namespace or module. +!!! error TS1232: An import declaration can only be used at the top level of a namespace or module. import bar from "ambient"; ~~~~~~ -!!! error TS1232: An import declaration can only be used in a namespace or module. +!!! error TS1232: An import declaration can only be used at the top level of a namespace or module. import { baz } from "ambient"; ~~~~~~ -!!! error TS1232: An import declaration can only be used in a namespace or module. +!!! error TS1232: An import declaration can only be used at the top level of a namespace or module. import "ambient"; ~~~~~~ -!!! error TS1232: An import declaration can only be used in a namespace or module. +!!! error TS1232: An import declaration can only be used at the top level of a namespace or module. } \ No newline at end of file diff --git a/tests/baselines/reference/moduleElementsInWrongContext3.errors.txt b/tests/baselines/reference/moduleElementsInWrongContext3.errors.txt index df78fa08741f1..55d9ec47c03bf 100644 --- a/tests/baselines/reference/moduleElementsInWrongContext3.errors.txt +++ b/tests/baselines/reference/moduleElementsInWrongContext3.errors.txt @@ -1,20 +1,20 @@ -tests/cases/compiler/moduleElementsInWrongContext3.ts(3,9): error TS1235: A namespace declaration is only allowed in a namespace or module. -tests/cases/compiler/moduleElementsInWrongContext3.ts(4,9): error TS1235: A namespace declaration is only allowed in a namespace or module. -tests/cases/compiler/moduleElementsInWrongContext3.ts(8,9): error TS1235: A namespace declaration is only allowed in a namespace or module. +tests/cases/compiler/moduleElementsInWrongContext3.ts(3,9): error TS1235: A namespace declaration is only allowed at the top level of a namespace or module. +tests/cases/compiler/moduleElementsInWrongContext3.ts(4,9): error TS1235: A namespace declaration is only allowed at the top level of a namespace or module. +tests/cases/compiler/moduleElementsInWrongContext3.ts(8,9): error TS1235: A namespace declaration is only allowed at the top level of a namespace or module. tests/cases/compiler/moduleElementsInWrongContext3.ts(10,9): error TS1234: An ambient module declaration is only allowed at the top level in a file. tests/cases/compiler/moduleElementsInWrongContext3.ts(14,9): error TS1231: An export assignment must be at the top level of a file or module declaration. -tests/cases/compiler/moduleElementsInWrongContext3.ts(18,9): error TS1233: An export declaration can only be used in a module. -tests/cases/compiler/moduleElementsInWrongContext3.ts(19,9): error TS1233: An export declaration can only be used in a module. -tests/cases/compiler/moduleElementsInWrongContext3.ts(20,9): error TS1233: An export declaration can only be used in a module. +tests/cases/compiler/moduleElementsInWrongContext3.ts(18,9): error TS1233: An export declaration can only be used at the top level of a namespace or module. +tests/cases/compiler/moduleElementsInWrongContext3.ts(19,9): error TS1233: An export declaration can only be used at the top level of a namespace or module. +tests/cases/compiler/moduleElementsInWrongContext3.ts(20,9): error TS1233: An export declaration can only be used at the top level of a namespace or module. tests/cases/compiler/moduleElementsInWrongContext3.ts(21,9): error TS1258: A default export must be at the top level of a file or module declaration. tests/cases/compiler/moduleElementsInWrongContext3.ts(22,9): error TS1184: Modifiers cannot appear here. tests/cases/compiler/moduleElementsInWrongContext3.ts(23,9): error TS1184: Modifiers cannot appear here. -tests/cases/compiler/moduleElementsInWrongContext3.ts(24,9): error TS1232: An import declaration can only be used in a namespace or module. -tests/cases/compiler/moduleElementsInWrongContext3.ts(25,9): error TS1232: An import declaration can only be used in a namespace or module. -tests/cases/compiler/moduleElementsInWrongContext3.ts(26,9): error TS1232: An import declaration can only be used in a namespace or module. -tests/cases/compiler/moduleElementsInWrongContext3.ts(27,9): error TS1232: An import declaration can only be used in a namespace or module. -tests/cases/compiler/moduleElementsInWrongContext3.ts(28,9): error TS1232: An import declaration can only be used in a namespace or module. -tests/cases/compiler/moduleElementsInWrongContext3.ts(29,9): error TS1232: An import declaration can only be used in a namespace or module. +tests/cases/compiler/moduleElementsInWrongContext3.ts(24,9): error TS1232: An import declaration can only be used at the top level of a namespace or module. +tests/cases/compiler/moduleElementsInWrongContext3.ts(25,9): error TS1232: An import declaration can only be used at the top level of a namespace or module. +tests/cases/compiler/moduleElementsInWrongContext3.ts(26,9): error TS1232: An import declaration can only be used at the top level of a namespace or module. +tests/cases/compiler/moduleElementsInWrongContext3.ts(27,9): error TS1232: An import declaration can only be used at the top level of a namespace or module. +tests/cases/compiler/moduleElementsInWrongContext3.ts(28,9): error TS1232: An import declaration can only be used at the top level of a namespace or module. +tests/cases/compiler/moduleElementsInWrongContext3.ts(29,9): error TS1232: An import declaration can only be used at the top level of a namespace or module. ==== tests/cases/compiler/moduleElementsInWrongContext3.ts (17 errors) ==== @@ -22,16 +22,16 @@ tests/cases/compiler/moduleElementsInWrongContext3.ts(29,9): error TS1232: An im { module M { } ~~~~~~ -!!! error TS1235: A namespace declaration is only allowed in a namespace or module. +!!! error TS1235: A namespace declaration is only allowed at the top level of a namespace or module. export namespace N { ~~~~~~ -!!! error TS1235: A namespace declaration is only allowed in a namespace or module. +!!! error TS1235: A namespace declaration is only allowed at the top level of a namespace or module. export interface I { } } namespace Q.K { } ~~~~~~~~~ -!!! error TS1235: A namespace declaration is only allowed in a namespace or module. +!!! error TS1235: A namespace declaration is only allowed at the top level of a namespace or module. declare module "ambient" { ~~~~~~~ @@ -47,13 +47,13 @@ tests/cases/compiler/moduleElementsInWrongContext3.ts(29,9): error TS1232: An im function foo() { } export * from "ambient"; ~~~~~~ -!!! error TS1233: An export declaration can only be used in a module. +!!! error TS1233: An export declaration can only be used at the top level of a namespace or module. export { foo }; ~~~~~~ -!!! error TS1233: An export declaration can only be used in a module. +!!! error TS1233: An export declaration can only be used at the top level of a namespace or module. export { baz as b } from "ambient"; ~~~~~~ -!!! error TS1233: An export declaration can only be used in a module. +!!! error TS1233: An export declaration can only be used at the top level of a namespace or module. export default v; ~~~~~~ !!! error TS1258: A default export must be at the top level of a file or module declaration. @@ -65,21 +65,21 @@ tests/cases/compiler/moduleElementsInWrongContext3.ts(29,9): error TS1232: An im !!! error TS1184: Modifiers cannot appear here. import I = M; ~~~~~~ -!!! error TS1232: An import declaration can only be used in a namespace or module. +!!! error TS1232: An import declaration can only be used at the top level of a namespace or module. import I2 = require("foo"); ~~~~~~ -!!! error TS1232: An import declaration can only be used in a namespace or module. +!!! error TS1232: An import declaration can only be used at the top level of a namespace or module. import * as Foo from "ambient"; ~~~~~~ -!!! error TS1232: An import declaration can only be used in a namespace or module. +!!! error TS1232: An import declaration can only be used at the top level of a namespace or module. import bar from "ambient"; ~~~~~~ -!!! error TS1232: An import declaration can only be used in a namespace or module. +!!! error TS1232: An import declaration can only be used at the top level of a namespace or module. import { baz } from "ambient"; ~~~~~~ -!!! error TS1232: An import declaration can only be used in a namespace or module. +!!! error TS1232: An import declaration can only be used at the top level of a namespace or module. import "ambient"; ~~~~~~ -!!! error TS1232: An import declaration can only be used in a namespace or module. +!!! error TS1232: An import declaration can only be used at the top level of a namespace or module. } } \ No newline at end of file diff --git a/tests/baselines/reference/moduleExportAlias5.types b/tests/baselines/reference/moduleExportAlias5.types index 3a1c1a6839b21..9be8ca19ea8ec 100644 --- a/tests/baselines/reference/moduleExportAlias5.types +++ b/tests/baselines/reference/moduleExportAlias5.types @@ -5,19 +5,19 @@ const webpack = function (){ >function (){} : { (): void; WebpackOptionsDefaulter: number; } } exports = module.exports = webpack; ->exports = module.exports = webpack : { (): void; WebpackOptionsDefaulter: number; version: number; } ->exports : { (): void; WebpackOptionsDefaulter: number; version: number; } ->module.exports = webpack : { (): void; WebpackOptionsDefaulter: number; version: number; } ->module.exports : { (): void; WebpackOptionsDefaulter: number; version: number; } ->module : { exports: { (): void; WebpackOptionsDefaulter: number; version: number; }; } ->exports : { (): void; WebpackOptionsDefaulter: number; version: number; } +>exports = module.exports = webpack : { (): void; WebpackOptionsDefaulter: number; version: 1001; } +>exports : { (): void; WebpackOptionsDefaulter: number; version: 1001; } +>module.exports = webpack : { (): void; WebpackOptionsDefaulter: number; version: 1001; } +>module.exports : { (): void; WebpackOptionsDefaulter: number; version: 1001; } +>module : { exports: { (): void; WebpackOptionsDefaulter: number; version: 1001; }; } +>exports : { (): void; WebpackOptionsDefaulter: number; version: 1001; } >webpack : { (): void; WebpackOptionsDefaulter: number; } exports.version = 1001; >exports.version = 1001 : 1001 ->exports.version : number ->exports : { (): void; WebpackOptionsDefaulter: number; version: number; } ->version : number +>exports.version : 1001 +>exports : { (): void; WebpackOptionsDefaulter: number; version: 1001; } +>version : 1001 >1001 : 1001 webpack.WebpackOptionsDefaulter = 1111; diff --git a/tests/baselines/reference/moduleExportAliasExports.types b/tests/baselines/reference/moduleExportAliasExports.types index f9d38bfdc2859..eb3c9bccc442d 100644 --- a/tests/baselines/reference/moduleExportAliasExports.types +++ b/tests/baselines/reference/moduleExportAliasExports.types @@ -7,16 +7,16 @@ exports.bigOak = 1 >exports.bigOak = 1 : 1 ->exports.bigOak : number +>exports.bigOak : 1 >exports : typeof import("tests/cases/conformance/salsa/Eloquent") ->bigOak : number +>bigOak : 1 >1 : 1 exports.everywhere = 2 >exports.everywhere = 2 : 2 ->exports.everywhere : number +>exports.everywhere : 2 >exports : typeof import("tests/cases/conformance/salsa/Eloquent") ->everywhere : number +>everywhere : 2 >2 : 2 module.exports = exports diff --git a/tests/baselines/reference/moduleExportAliasImported.types b/tests/baselines/reference/moduleExportAliasImported.types index f1de74c531ff3..13df55790f25e 100644 --- a/tests/baselines/reference/moduleExportAliasImported.types +++ b/tests/baselines/reference/moduleExportAliasImported.types @@ -1,9 +1,9 @@ === tests/cases/conformance/salsa/bug28014.js === exports.version = 1 >exports.version = 1 : 1 ->exports.version : number +>exports.version : 1 >exports : typeof alias ->version : number +>version : 1 >1 : 1 function alias() { } @@ -18,6 +18,6 @@ module.exports = alias === tests/cases/conformance/salsa/importer.js === import('./bug28014') ->import('./bug28014') : Promise<{ (): void; version: number; }> +>import('./bug28014') : Promise<{ (): void; version: 1; }> >'./bug28014' : "./bug28014" diff --git a/tests/baselines/reference/moduleExportAssignment.types b/tests/baselines/reference/moduleExportAssignment.types index 86d7fc553b41b..6ce50063d43b5 100644 --- a/tests/baselines/reference/moduleExportAssignment.types +++ b/tests/baselines/reference/moduleExportAssignment.types @@ -1,18 +1,18 @@ === tests/cases/conformance/salsa/use.js === var npmlog = require('./npmlog') ->npmlog : { on(s: string): void; x: number; y: number; } ->require('./npmlog') : { on(s: string): void; x: number; y: number; } +>npmlog : { on(s: string): void; x: number; y: 2; } +>require('./npmlog') : { on(s: string): void; x: number; y: 2; } >require : any >'./npmlog' : "./npmlog" npmlog.x >npmlog.x : number ->npmlog : { on(s: string): void; x: number; y: number; } +>npmlog : { on(s: string): void; x: number; y: 2; } >x : number npmlog.on >npmlog.on : (s: string) => void ->npmlog : { on(s: string): void; x: number; y: number; } +>npmlog : { on(s: string): void; x: number; y: 2; } >on : (s: string) => void === tests/cases/conformance/salsa/npmlog.js === @@ -25,55 +25,55 @@ class EE { >s : string } var npmlog = module.exports = new EE() ->npmlog : { on(s: string): void; x: number; y: number; } ->module.exports = new EE() : { on(s: string): void; x: number; y: number; } ->module.exports : { on(s: string): void; x: number; y: number; } ->module : { exports: { on(s: string): void; x: number; y: number; }; } ->exports : { on(s: string): void; x: number; y: number; } +>npmlog : { on(s: string): void; x: number; y: 2; } +>module.exports = new EE() : { on(s: string): void; x: number; y: 2; } +>module.exports : { on(s: string): void; x: number; y: 2; } +>module : { exports: { on(s: string): void; x: number; y: 2; }; } +>exports : { on(s: string): void; x: number; y: 2; } >new EE() : EE >EE : typeof EE npmlog.on('hi') // both references should see EE.on >npmlog.on('hi') : void >npmlog.on : (s: string) => void ->npmlog : { on(s: string): void; x: number; y: number; } +>npmlog : { on(s: string): void; x: number; y: 2; } >on : (s: string) => void >'hi' : "hi" module.exports.on('hi') // here too >module.exports.on('hi') : void >module.exports.on : (s: string) => void ->module.exports : { on(s: string): void; x: number; y: number; } ->module : { exports: { on(s: string): void; x: number; y: number; }; } ->exports : { on(s: string): void; x: number; y: number; } +>module.exports : { on(s: string): void; x: number; y: 2; } +>module : { exports: { on(s: string): void; x: number; y: 2; }; } +>exports : { on(s: string): void; x: number; y: 2; } >on : (s: string) => void >'hi' : "hi" npmlog.x = 1 >npmlog.x = 1 : 1 >npmlog.x : number ->npmlog : { on(s: string): void; x: number; y: number; } +>npmlog : { on(s: string): void; x: number; y: 2; } >x : number >1 : 1 module.exports.y = 2 >module.exports.y = 2 : 2 ->module.exports.y : number ->module.exports : { on(s: string): void; x: number; y: number; } ->module : { exports: { on(s: string): void; x: number; y: number; }; } ->exports : { on(s: string): void; x: number; y: number; } ->y : number +>module.exports.y : 2 +>module.exports : { on(s: string): void; x: number; y: 2; } +>module : { exports: { on(s: string): void; x: number; y: 2; }; } +>exports : { on(s: string): void; x: number; y: 2; } +>y : 2 >2 : 2 npmlog.y ->npmlog.y : number ->npmlog : { on(s: string): void; x: number; y: number; } ->y : number +>npmlog.y : 2 +>npmlog : { on(s: string): void; x: number; y: 2; } +>y : 2 module.exports.x >module.exports.x : number ->module.exports : { on(s: string): void; x: number; y: number; } ->module : { exports: { on(s: string): void; x: number; y: number; }; } ->exports : { on(s: string): void; x: number; y: number; } +>module.exports : { on(s: string): void; x: number; y: 2; } +>module : { exports: { on(s: string): void; x: number; y: 2; }; } +>exports : { on(s: string): void; x: number; y: 2; } >x : number diff --git a/tests/baselines/reference/moduleExportDuplicateAlias3.js b/tests/baselines/reference/moduleExportDuplicateAlias3.js index 666744dc4cd41..bca22c473e6c8 100644 --- a/tests/baselines/reference/moduleExportDuplicateAlias3.js +++ b/tests/baselines/reference/moduleExportDuplicateAlias3.js @@ -32,7 +32,7 @@ var result = apply.toFixed(); //// [moduleExportAliasDuplicateAlias.d.ts] -export var apply: string | number | typeof a | undefined; +export const apply: typeof a | "ok" | 1 | undefined; export { a as apply }; declare function a(): void; //// [test.d.ts] diff --git a/tests/baselines/reference/moduleExportDuplicateAlias3.types b/tests/baselines/reference/moduleExportDuplicateAlias3.types index e0c71bdfd4613..e4306d1b24afe 100644 --- a/tests/baselines/reference/moduleExportDuplicateAlias3.types +++ b/tests/baselines/reference/moduleExportDuplicateAlias3.types @@ -15,16 +15,16 @@ const result = apply.toFixed() === tests/cases/conformance/salsa/moduleExportAliasDuplicateAlias.js === exports.apply = undefined; >exports.apply = undefined : undefined ->exports.apply : string | number | (() => void) | undefined +>exports.apply : (() => void) | "ok" | 1 | undefined >exports : typeof import("tests/cases/conformance/salsa/moduleExportAliasDuplicateAlias") ->apply : string | number | (() => void) | undefined +>apply : (() => void) | "ok" | 1 | undefined >undefined : undefined exports.apply = undefined; >exports.apply = undefined : undefined ->exports.apply : string | number | (() => void) | undefined +>exports.apply : (() => void) | "ok" | 1 | undefined >exports : typeof import("tests/cases/conformance/salsa/moduleExportAliasDuplicateAlias") ->apply : string | number | (() => void) | undefined +>apply : (() => void) | "ok" | 1 | undefined >undefined : undefined function a() { } @@ -32,9 +32,9 @@ function a() { } exports.apply = a; >exports.apply = a : () => void ->exports.apply : string | number | (() => void) | undefined +>exports.apply : (() => void) | "ok" | 1 | undefined >exports : typeof import("tests/cases/conformance/salsa/moduleExportAliasDuplicateAlias") ->apply : string | number | (() => void) | undefined +>apply : (() => void) | "ok" | 1 | undefined >a : () => void exports.apply() @@ -45,24 +45,24 @@ exports.apply() exports.apply = 'ok' >exports.apply = 'ok' : "ok" ->exports.apply : string | number | (() => void) | undefined +>exports.apply : (() => void) | "ok" | 1 | undefined >exports : typeof import("tests/cases/conformance/salsa/moduleExportAliasDuplicateAlias") ->apply : string | number | (() => void) | undefined +>apply : (() => void) | "ok" | 1 | undefined >'ok' : "ok" var OK = exports.apply.toUpperCase() >OK : string >exports.apply.toUpperCase() : string >exports.apply.toUpperCase : () => string ->exports.apply : string +>exports.apply : "ok" >exports : typeof import("tests/cases/conformance/salsa/moduleExportAliasDuplicateAlias") ->apply : string +>apply : "ok" >toUpperCase : () => string exports.apply = 1 >exports.apply = 1 : 1 ->exports.apply : string | number | (() => void) | undefined +>exports.apply : (() => void) | "ok" | 1 | undefined >exports : typeof import("tests/cases/conformance/salsa/moduleExportAliasDuplicateAlias") ->apply : string | number | (() => void) | undefined +>apply : (() => void) | "ok" | 1 | undefined >1 : 1 diff --git a/tests/baselines/reference/moduleExportWithExportPropertyAssignment3.errors.txt b/tests/baselines/reference/moduleExportWithExportPropertyAssignment3.errors.txt index bbaed77a0f90c..667446fbf6f6c 100644 --- a/tests/baselines/reference/moduleExportWithExportPropertyAssignment3.errors.txt +++ b/tests/baselines/reference/moduleExportWithExportPropertyAssignment3.errors.txt @@ -1,7 +1,7 @@ -tests/cases/conformance/salsa/a.js(4,17): error TS2339: Property 'toFixed' does not exist on type 'string | number'. - Property 'toFixed' does not exist on type 'string'. -tests/cases/conformance/salsa/a.js(5,16): error TS2339: Property 'toFixed' does not exist on type 'string | number'. - Property 'toFixed' does not exist on type 'string'. +tests/cases/conformance/salsa/a.js(4,17): error TS2339: Property 'toFixed' does not exist on type 'number | "string"'. + Property 'toFixed' does not exist on type '"string"'. +tests/cases/conformance/salsa/a.js(5,16): error TS2339: Property 'toFixed' does not exist on type 'number | "string"'. + Property 'toFixed' does not exist on type '"string"'. ==== tests/cases/conformance/salsa/a.js (2 errors) ==== @@ -10,12 +10,12 @@ tests/cases/conformance/salsa/a.js(5,16): error TS2339: Property 'toFixed' does mod1.justExport.toFixed() mod1.bothBefore.toFixed() // error, 'toFixed' not on 'string | number' ~~~~~~~ -!!! error TS2339: Property 'toFixed' does not exist on type 'string | number'. -!!! error TS2339: Property 'toFixed' does not exist on type 'string'. +!!! error TS2339: Property 'toFixed' does not exist on type 'number | "string"'. +!!! error TS2339: Property 'toFixed' does not exist on type '"string"'. mod1.bothAfter.toFixed() // error, 'toFixed' not on 'string | number' ~~~~~~~ -!!! error TS2339: Property 'toFixed' does not exist on type 'string | number'. -!!! error TS2339: Property 'toFixed' does not exist on type 'string'. +!!! error TS2339: Property 'toFixed' does not exist on type 'number | "string"'. +!!! error TS2339: Property 'toFixed' does not exist on type '"string"'. mod1.justProperty.length ==== tests/cases/conformance/salsa/requires.d.ts (0 errors) ==== diff --git a/tests/baselines/reference/moduleExportWithExportPropertyAssignment3.types b/tests/baselines/reference/moduleExportWithExportPropertyAssignment3.types index ff2457f3ef68f..2b79cf8eff0de 100644 --- a/tests/baselines/reference/moduleExportWithExportPropertyAssignment3.types +++ b/tests/baselines/reference/moduleExportWithExportPropertyAssignment3.types @@ -1,8 +1,8 @@ === tests/cases/conformance/salsa/a.js === /// var mod1 = require('./mod1') ->mod1 : { justExport: number; bothBefore: string | number; bothAfter: string | number; justProperty: string; } ->require('./mod1') : { justExport: number; bothBefore: string | number; bothAfter: string | number; justProperty: string; } +>mod1 : { justExport: number; bothBefore: number | "string"; bothAfter: number | "string"; justProperty: "string"; } +>require('./mod1') : { justExport: number; bothBefore: number | "string"; bothAfter: number | "string"; justProperty: "string"; } >require : (name: string) => any >'./mod1' : "./mod1" @@ -10,31 +10,31 @@ mod1.justExport.toFixed() >mod1.justExport.toFixed() : string >mod1.justExport.toFixed : (fractionDigits?: number) => string >mod1.justExport : number ->mod1 : { justExport: number; bothBefore: string | number; bothAfter: string | number; justProperty: string; } +>mod1 : { justExport: number; bothBefore: number | "string"; bothAfter: number | "string"; justProperty: "string"; } >justExport : number >toFixed : (fractionDigits?: number) => string mod1.bothBefore.toFixed() // error, 'toFixed' not on 'string | number' >mod1.bothBefore.toFixed() : any >mod1.bothBefore.toFixed : any ->mod1.bothBefore : string | number ->mod1 : { justExport: number; bothBefore: string | number; bothAfter: string | number; justProperty: string; } ->bothBefore : string | number +>mod1.bothBefore : number | "string" +>mod1 : { justExport: number; bothBefore: number | "string"; bothAfter: number | "string"; justProperty: "string"; } +>bothBefore : number | "string" >toFixed : any mod1.bothAfter.toFixed() // error, 'toFixed' not on 'string | number' >mod1.bothAfter.toFixed() : any >mod1.bothAfter.toFixed : any ->mod1.bothAfter : string | number ->mod1 : { justExport: number; bothBefore: string | number; bothAfter: string | number; justProperty: string; } ->bothAfter : string | number +>mod1.bothAfter : number | "string" +>mod1 : { justExport: number; bothBefore: number | "string"; bothAfter: number | "string"; justProperty: "string"; } +>bothAfter : number | "string" >toFixed : any mod1.justProperty.length >mod1.justProperty.length : number ->mod1.justProperty : string ->mod1 : { justExport: number; bothBefore: string | number; bothAfter: string | number; justProperty: string; } ->justProperty : string +>mod1.justProperty : "string" +>mod1 : { justExport: number; bothBefore: number | "string"; bothAfter: number | "string"; justProperty: "string"; } +>justProperty : "string" >length : number === tests/cases/conformance/salsa/requires.d.ts === @@ -50,18 +50,18 @@ declare function require(name: string): any; /// module.exports.bothBefore = 'string' >module.exports.bothBefore = 'string' : "string" ->module.exports.bothBefore : string | number ->module.exports : { justExport: number; bothBefore: string | number; bothAfter: string | number; justProperty: string; } ->module : { exports: { justExport: number; bothBefore: string | number; bothAfter: string | number; justProperty: string; }; } ->exports : { justExport: number; bothBefore: string | number; bothAfter: string | number; justProperty: string; } ->bothBefore : string | number +>module.exports.bothBefore : number | "string" +>module.exports : { justExport: number; bothBefore: number | "string"; bothAfter: number | "string"; justProperty: "string"; } +>module : { exports: { justExport: number; bothBefore: number | "string"; bothAfter: number | "string"; justProperty: "string"; }; } +>exports : { justExport: number; bothBefore: number | "string"; bothAfter: number | "string"; justProperty: "string"; } +>bothBefore : number | "string" >'string' : "string" module.exports = { ->module.exports = { justExport: 1, bothBefore: 2, bothAfter: 3,} : { justExport: number; bothBefore: string | number; bothAfter: string | number; justProperty: string; } ->module.exports : { justExport: number; bothBefore: string | number; bothAfter: string | number; justProperty: string; } ->module : { exports: { justExport: number; bothBefore: string | number; bothAfter: string | number; justProperty: string; }; } ->exports : { justExport: number; bothBefore: string | number; bothAfter: string | number; justProperty: string; } +>module.exports = { justExport: 1, bothBefore: 2, bothAfter: 3,} : { justExport: number; bothBefore: number | "string"; bothAfter: number | "string"; justProperty: "string"; } +>module.exports : { justExport: number; bothBefore: number | "string"; bothAfter: number | "string"; justProperty: "string"; } +>module : { exports: { justExport: number; bothBefore: number | "string"; bothAfter: number | "string"; justProperty: "string"; }; } +>exports : { justExport: number; bothBefore: number | "string"; bothAfter: number | "string"; justProperty: "string"; } >{ justExport: 1, bothBefore: 2, bothAfter: 3,} : { justExport: number; bothBefore: number; bothAfter: number; } justExport: 1, @@ -78,19 +78,19 @@ module.exports = { } module.exports.bothAfter = 'string' >module.exports.bothAfter = 'string' : "string" ->module.exports.bothAfter : string | number ->module.exports : { justExport: number; bothBefore: string | number; bothAfter: string | number; justProperty: string; } ->module : { exports: { justExport: number; bothBefore: string | number; bothAfter: string | number; justProperty: string; }; } ->exports : { justExport: number; bothBefore: string | number; bothAfter: string | number; justProperty: string; } ->bothAfter : string | number +>module.exports.bothAfter : number | "string" +>module.exports : { justExport: number; bothBefore: number | "string"; bothAfter: number | "string"; justProperty: "string"; } +>module : { exports: { justExport: number; bothBefore: number | "string"; bothAfter: number | "string"; justProperty: "string"; }; } +>exports : { justExport: number; bothBefore: number | "string"; bothAfter: number | "string"; justProperty: "string"; } +>bothAfter : number | "string" >'string' : "string" module.exports.justProperty = 'string' >module.exports.justProperty = 'string' : "string" ->module.exports.justProperty : string ->module.exports : { justExport: number; bothBefore: string | number; bothAfter: string | number; justProperty: string; } ->module : { exports: { justExport: number; bothBefore: string | number; bothAfter: string | number; justProperty: string; }; } ->exports : { justExport: number; bothBefore: string | number; bothAfter: string | number; justProperty: string; } ->justProperty : string +>module.exports.justProperty : "string" +>module.exports : { justExport: number; bothBefore: number | "string"; bothAfter: number | "string"; justProperty: "string"; } +>module : { exports: { justExport: number; bothBefore: number | "string"; bothAfter: number | "string"; justProperty: "string"; }; } +>exports : { justExport: number; bothBefore: number | "string"; bothAfter: number | "string"; justProperty: "string"; } +>justProperty : "string" >'string' : "string" diff --git a/tests/baselines/reference/moduleExportWithExportPropertyAssignment4.errors.txt b/tests/baselines/reference/moduleExportWithExportPropertyAssignment4.errors.txt index f44a5c2b47e86..8ff40a89e57aa 100644 --- a/tests/baselines/reference/moduleExportWithExportPropertyAssignment4.errors.txt +++ b/tests/baselines/reference/moduleExportWithExportPropertyAssignment4.errors.txt @@ -1,7 +1,7 @@ -tests/cases/conformance/salsa/a.js(4,17): error TS2339: Property 'toFixed' does not exist on type 'string | number'. - Property 'toFixed' does not exist on type 'string'. -tests/cases/conformance/salsa/a.js(5,16): error TS2339: Property 'toFixed' does not exist on type 'string | number'. - Property 'toFixed' does not exist on type 'string'. +tests/cases/conformance/salsa/a.js(4,17): error TS2339: Property 'toFixed' does not exist on type 'number | "string"'. + Property 'toFixed' does not exist on type '"string"'. +tests/cases/conformance/salsa/a.js(5,16): error TS2339: Property 'toFixed' does not exist on type 'number | "string"'. + Property 'toFixed' does not exist on type '"string"'. tests/cases/conformance/salsa/mod1.js(2,1): error TS2323: Cannot redeclare exported variable 'bothBefore'. tests/cases/conformance/salsa/mod1.js(4,1): error TS2323: Cannot redeclare exported variable 'bothBefore'. tests/cases/conformance/salsa/mod1.js(5,1): error TS2323: Cannot redeclare exported variable 'bothAfter'. @@ -14,12 +14,12 @@ tests/cases/conformance/salsa/mod1.js(10,1): error TS2323: Cannot redeclare expo mod1.justExport.toFixed() mod1.bothBefore.toFixed() // error ~~~~~~~ -!!! error TS2339: Property 'toFixed' does not exist on type 'string | number'. -!!! error TS2339: Property 'toFixed' does not exist on type 'string'. +!!! error TS2339: Property 'toFixed' does not exist on type 'number | "string"'. +!!! error TS2339: Property 'toFixed' does not exist on type '"string"'. mod1.bothAfter.toFixed() ~~~~~~~ -!!! error TS2339: Property 'toFixed' does not exist on type 'string | number'. -!!! error TS2339: Property 'toFixed' does not exist on type 'string'. +!!! error TS2339: Property 'toFixed' does not exist on type 'number | "string"'. +!!! error TS2339: Property 'toFixed' does not exist on type '"string"'. mod1.justProperty.length ==== tests/cases/conformance/salsa/requires.d.ts (0 errors) ==== diff --git a/tests/baselines/reference/moduleExportWithExportPropertyAssignment4.types b/tests/baselines/reference/moduleExportWithExportPropertyAssignment4.types index de971c31243cc..bccc38713f72b 100644 --- a/tests/baselines/reference/moduleExportWithExportPropertyAssignment4.types +++ b/tests/baselines/reference/moduleExportWithExportPropertyAssignment4.types @@ -17,24 +17,24 @@ mod1.justExport.toFixed() mod1.bothBefore.toFixed() // error >mod1.bothBefore.toFixed() : any >mod1.bothBefore.toFixed : any ->mod1.bothBefore : string | number +>mod1.bothBefore : number | "string" >mod1 : typeof mod1 ->bothBefore : string | number +>bothBefore : number | "string" >toFixed : any mod1.bothAfter.toFixed() >mod1.bothAfter.toFixed() : any >mod1.bothAfter.toFixed : any ->mod1.bothAfter : string | number +>mod1.bothAfter : number | "string" >mod1 : typeof mod1 ->bothAfter : string | number +>bothAfter : number | "string" >toFixed : any mod1.justProperty.length >mod1.justProperty.length : number ->mod1.justProperty : string +>mod1.justProperty : "string" >mod1 : typeof mod1 ->justProperty : string +>justProperty : "string" >length : number === tests/cases/conformance/salsa/requires.d.ts === @@ -50,11 +50,11 @@ declare function require(name: string): any; /// module.exports.bothBefore = 'string' >module.exports.bothBefore = 'string' : "string" ->module.exports.bothBefore : string | number +>module.exports.bothBefore : number | "string" >module.exports : typeof A >module : { exports: typeof A; } >exports : typeof A ->bothBefore : string | number +>bothBefore : number | "string" >'string' : "string" A.justExport = 4 @@ -66,16 +66,16 @@ A.justExport = 4 A.bothBefore = 2 >A.bothBefore = 2 : 2 ->A.bothBefore : string | number +>A.bothBefore : number | "string" >A : typeof A ->bothBefore : string | number +>bothBefore : number | "string" >2 : 2 A.bothAfter = 3 >A.bothAfter = 3 : 3 ->A.bothAfter : string | number +>A.bothAfter : number | "string" >A : typeof A ->bothAfter : string | number +>bothAfter : number | "string" >3 : 3 module.exports = A @@ -97,19 +97,19 @@ function A() { } module.exports.bothAfter = 'string' >module.exports.bothAfter = 'string' : "string" ->module.exports.bothAfter : string | number +>module.exports.bothAfter : number | "string" >module.exports : typeof A >module : { exports: typeof A; } >exports : typeof A ->bothAfter : string | number +>bothAfter : number | "string" >'string' : "string" module.exports.justProperty = 'string' >module.exports.justProperty = 'string' : "string" ->module.exports.justProperty : string +>module.exports.justProperty : "string" >module.exports : typeof A >module : { exports: typeof A; } >exports : typeof A ->justProperty : string +>justProperty : "string" >'string' : "string" diff --git a/tests/baselines/reference/moduleResolutionWithModule(module=node12,moduleresolution=node).js b/tests/baselines/reference/moduleResolutionWithModule(module=node12,moduleresolution=node).js index 1e4231d994c56..23844cf6bab19 100644 --- a/tests/baselines/reference/moduleResolutionWithModule(module=node12,moduleresolution=node).js +++ b/tests/baselines/reference/moduleResolutionWithModule(module=node12,moduleresolution=node).js @@ -16,7 +16,11 @@ p.thing(); "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/moduleResolutionWithModule(module=node12,moduleresolution=node12).js b/tests/baselines/reference/moduleResolutionWithModule(module=node12,moduleresolution=node12).js index 1e4231d994c56..23844cf6bab19 100644 --- a/tests/baselines/reference/moduleResolutionWithModule(module=node12,moduleresolution=node12).js +++ b/tests/baselines/reference/moduleResolutionWithModule(module=node12,moduleresolution=node12).js @@ -16,7 +16,11 @@ p.thing(); "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/moduleResolutionWithModule(module=node12,moduleresolution=nodenext).js b/tests/baselines/reference/moduleResolutionWithModule(module=node12,moduleresolution=nodenext).js index 1e4231d994c56..23844cf6bab19 100644 --- a/tests/baselines/reference/moduleResolutionWithModule(module=node12,moduleresolution=nodenext).js +++ b/tests/baselines/reference/moduleResolutionWithModule(module=node12,moduleresolution=nodenext).js @@ -16,7 +16,11 @@ p.thing(); "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/moduleResolutionWithModule(module=nodenext,moduleresolution=node).js b/tests/baselines/reference/moduleResolutionWithModule(module=nodenext,moduleresolution=node).js index 1e4231d994c56..23844cf6bab19 100644 --- a/tests/baselines/reference/moduleResolutionWithModule(module=nodenext,moduleresolution=node).js +++ b/tests/baselines/reference/moduleResolutionWithModule(module=nodenext,moduleresolution=node).js @@ -16,7 +16,11 @@ p.thing(); "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/moduleResolutionWithModule(module=nodenext,moduleresolution=node12).js b/tests/baselines/reference/moduleResolutionWithModule(module=nodenext,moduleresolution=node12).js index 1e4231d994c56..23844cf6bab19 100644 --- a/tests/baselines/reference/moduleResolutionWithModule(module=nodenext,moduleresolution=node12).js +++ b/tests/baselines/reference/moduleResolutionWithModule(module=nodenext,moduleresolution=node12).js @@ -16,7 +16,11 @@ p.thing(); "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/moduleResolutionWithModule(module=nodenext,moduleresolution=nodenext).js b/tests/baselines/reference/moduleResolutionWithModule(module=nodenext,moduleresolution=nodenext).js index 1e4231d994c56..23844cf6bab19 100644 --- a/tests/baselines/reference/moduleResolutionWithModule(module=nodenext,moduleresolution=nodenext).js +++ b/tests/baselines/reference/moduleResolutionWithModule(module=nodenext,moduleresolution=nodenext).js @@ -16,7 +16,11 @@ p.thing(); "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/moduleResolutionWithSuffixes_empty.js b/tests/baselines/reference/moduleResolutionWithSuffixes_empty.js new file mode 100644 index 0000000000000..3cbbfd72b8a51 --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithSuffixes_empty.js @@ -0,0 +1,17 @@ +//// [tests/cases/compiler/moduleResolutionWithSuffixes_empty.ts] //// + +//// [index.ts] +import { base } from "./foo"; +//// [foo.ts] +export function base() {} + + +//// [foo.js] +"use strict"; +exports.__esModule = true; +exports.base = void 0; +function base() { } +exports.base = base; +//// [index.js] +"use strict"; +exports.__esModule = true; diff --git a/tests/baselines/reference/moduleResolutionWithSuffixes_empty.symbols b/tests/baselines/reference/moduleResolutionWithSuffixes_empty.symbols new file mode 100644 index 0000000000000..d4bcb87477b14 --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithSuffixes_empty.symbols @@ -0,0 +1,8 @@ +=== /index.ts === +import { base } from "./foo"; +>base : Symbol(base, Decl(index.ts, 0, 8)) + +=== /foo.ts === +export function base() {} +>base : Symbol(base, Decl(foo.ts, 0, 0)) + diff --git a/tests/baselines/reference/moduleResolutionWithSuffixes_empty.trace.json b/tests/baselines/reference/moduleResolutionWithSuffixes_empty.trace.json new file mode 100644 index 0000000000000..c1e5657623ecc --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithSuffixes_empty.trace.json @@ -0,0 +1,7 @@ +[ + "======== Resolving module './foo' from '/index.ts'. ========", + "Explicitly specified module resolution kind: 'NodeJs'.", + "Loading module as file / folder, candidate module location '/foo', target file type 'TypeScript'.", + "File '/foo.ts' exist - use it as a name resolution result.", + "======== Module name './foo' was successfully resolved to '/foo.ts'. ========" +] \ No newline at end of file diff --git a/tests/baselines/reference/moduleResolutionWithSuffixes_empty.types b/tests/baselines/reference/moduleResolutionWithSuffixes_empty.types new file mode 100644 index 0000000000000..90f587bf346ed --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithSuffixes_empty.types @@ -0,0 +1,8 @@ +=== /index.ts === +import { base } from "./foo"; +>base : () => void + +=== /foo.ts === +export function base() {} +>base : () => void + diff --git a/tests/baselines/reference/moduleResolutionWithSuffixes_notSpecified.js b/tests/baselines/reference/moduleResolutionWithSuffixes_notSpecified.js new file mode 100644 index 0000000000000..13faeda2fe5a4 --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithSuffixes_notSpecified.js @@ -0,0 +1,17 @@ +//// [tests/cases/compiler/moduleResolutionWithSuffixes_notSpecified.ts] //// + +//// [index.ts] +import { base } from "./foo"; +//// [foo.ts] +export function base() {} + + +//// [foo.js] +"use strict"; +exports.__esModule = true; +exports.base = void 0; +function base() { } +exports.base = base; +//// [index.js] +"use strict"; +exports.__esModule = true; diff --git a/tests/baselines/reference/moduleResolutionWithSuffixes_notSpecified.symbols b/tests/baselines/reference/moduleResolutionWithSuffixes_notSpecified.symbols new file mode 100644 index 0000000000000..d4bcb87477b14 --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithSuffixes_notSpecified.symbols @@ -0,0 +1,8 @@ +=== /index.ts === +import { base } from "./foo"; +>base : Symbol(base, Decl(index.ts, 0, 8)) + +=== /foo.ts === +export function base() {} +>base : Symbol(base, Decl(foo.ts, 0, 0)) + diff --git a/tests/baselines/reference/moduleResolutionWithSuffixes_notSpecified.trace.json b/tests/baselines/reference/moduleResolutionWithSuffixes_notSpecified.trace.json new file mode 100644 index 0000000000000..c1e5657623ecc --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithSuffixes_notSpecified.trace.json @@ -0,0 +1,7 @@ +[ + "======== Resolving module './foo' from '/index.ts'. ========", + "Explicitly specified module resolution kind: 'NodeJs'.", + "Loading module as file / folder, candidate module location '/foo', target file type 'TypeScript'.", + "File '/foo.ts' exist - use it as a name resolution result.", + "======== Module name './foo' was successfully resolved to '/foo.ts'. ========" +] \ No newline at end of file diff --git a/tests/baselines/reference/moduleResolutionWithSuffixes_notSpecified.types b/tests/baselines/reference/moduleResolutionWithSuffixes_notSpecified.types new file mode 100644 index 0000000000000..90f587bf346ed --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithSuffixes_notSpecified.types @@ -0,0 +1,8 @@ +=== /index.ts === +import { base } from "./foo"; +>base : () => void + +=== /foo.ts === +export function base() {} +>base : () => void + diff --git a/tests/baselines/reference/moduleResolutionWithSuffixes_one.js b/tests/baselines/reference/moduleResolutionWithSuffixes_one.js new file mode 100644 index 0000000000000..d925ba38f0c5f --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithSuffixes_one.js @@ -0,0 +1,25 @@ +//// [tests/cases/compiler/moduleResolutionWithSuffixes_one.ts] //// + +//// [index.ts] +import { ios } from "./foo"; +//// [foo.ios.ts] +export function ios() {} +//// [foo.ts] +export function base() {} + + +//// [foo.ios.js] +"use strict"; +exports.__esModule = true; +exports.ios = void 0; +function ios() { } +exports.ios = ios; +//// [index.js] +"use strict"; +exports.__esModule = true; +//// [foo.js] +"use strict"; +exports.__esModule = true; +exports.base = void 0; +function base() { } +exports.base = base; diff --git a/tests/baselines/reference/moduleResolutionWithSuffixes_one.symbols b/tests/baselines/reference/moduleResolutionWithSuffixes_one.symbols new file mode 100644 index 0000000000000..a029c1194aa72 --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithSuffixes_one.symbols @@ -0,0 +1,12 @@ +=== /index.ts === +import { ios } from "./foo"; +>ios : Symbol(ios, Decl(index.ts, 0, 8)) + +=== /foo.ios.ts === +export function ios() {} +>ios : Symbol(ios, Decl(foo.ios.ts, 0, 0)) + +=== /foo.ts === +export function base() {} +>base : Symbol(base, Decl(foo.ts, 0, 0)) + diff --git a/tests/baselines/reference/moduleResolutionWithSuffixes_one.trace.json b/tests/baselines/reference/moduleResolutionWithSuffixes_one.trace.json new file mode 100644 index 0000000000000..92259211af165 --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithSuffixes_one.trace.json @@ -0,0 +1,7 @@ +[ + "======== Resolving module './foo' from '/index.ts'. ========", + "Explicitly specified module resolution kind: 'NodeJs'.", + "Loading module as file / folder, candidate module location '/foo', target file type 'TypeScript'.", + "File '/foo.ios.ts' exist - use it as a name resolution result.", + "======== Module name './foo' was successfully resolved to '/foo.ios.ts'. ========" +] \ No newline at end of file diff --git a/tests/baselines/reference/moduleResolutionWithSuffixes_one.types b/tests/baselines/reference/moduleResolutionWithSuffixes_one.types new file mode 100644 index 0000000000000..3fd45bed21c0a --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithSuffixes_one.types @@ -0,0 +1,12 @@ +=== /index.ts === +import { ios } from "./foo"; +>ios : () => void + +=== /foo.ios.ts === +export function ios() {} +>ios : () => void + +=== /foo.ts === +export function base() {} +>base : () => void + diff --git a/tests/baselines/reference/moduleResolutionWithSuffixes_oneBlank.js b/tests/baselines/reference/moduleResolutionWithSuffixes_oneBlank.js new file mode 100644 index 0000000000000..5844ef8e448b4 --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithSuffixes_oneBlank.js @@ -0,0 +1,17 @@ +//// [tests/cases/compiler/moduleResolutionWithSuffixes_oneBlank.ts] //// + +//// [index.ts] +import { base } from "./foo"; +//// [foo.ts] +export function base() {} + + +//// [foo.js] +"use strict"; +exports.__esModule = true; +exports.base = void 0; +function base() { } +exports.base = base; +//// [index.js] +"use strict"; +exports.__esModule = true; diff --git a/tests/baselines/reference/moduleResolutionWithSuffixes_oneBlank.symbols b/tests/baselines/reference/moduleResolutionWithSuffixes_oneBlank.symbols new file mode 100644 index 0000000000000..d4bcb87477b14 --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithSuffixes_oneBlank.symbols @@ -0,0 +1,8 @@ +=== /index.ts === +import { base } from "./foo"; +>base : Symbol(base, Decl(index.ts, 0, 8)) + +=== /foo.ts === +export function base() {} +>base : Symbol(base, Decl(foo.ts, 0, 0)) + diff --git a/tests/baselines/reference/moduleResolutionWithSuffixes_oneBlank.trace.json b/tests/baselines/reference/moduleResolutionWithSuffixes_oneBlank.trace.json new file mode 100644 index 0000000000000..c1e5657623ecc --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithSuffixes_oneBlank.trace.json @@ -0,0 +1,7 @@ +[ + "======== Resolving module './foo' from '/index.ts'. ========", + "Explicitly specified module resolution kind: 'NodeJs'.", + "Loading module as file / folder, candidate module location '/foo', target file type 'TypeScript'.", + "File '/foo.ts' exist - use it as a name resolution result.", + "======== Module name './foo' was successfully resolved to '/foo.ts'. ========" +] \ No newline at end of file diff --git a/tests/baselines/reference/moduleResolutionWithSuffixes_oneBlank.types b/tests/baselines/reference/moduleResolutionWithSuffixes_oneBlank.types new file mode 100644 index 0000000000000..90f587bf346ed --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithSuffixes_oneBlank.types @@ -0,0 +1,8 @@ +=== /index.ts === +import { base } from "./foo"; +>base : () => void + +=== /foo.ts === +export function base() {} +>base : () => void + diff --git a/tests/baselines/reference/moduleResolutionWithSuffixes_oneNotFound.errors.txt b/tests/baselines/reference/moduleResolutionWithSuffixes_oneNotFound.errors.txt new file mode 100644 index 0000000000000..c1d547209ae49 --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithSuffixes_oneNotFound.errors.txt @@ -0,0 +1,21 @@ +/index.ts(1,21): error TS2307: Cannot find module './foo' or its corresponding type declarations. + + +==== /tsconfig.json (0 errors) ==== + // moduleSuffixes has one entry but there isn't a matching file. Module resolution should fail. + + { + "compilerOptions": { + "moduleResolution": "node", + "traceResolution": true, + "moduleSuffixes": [".ios"] + } + } + +==== /index.ts (1 errors) ==== + import { ios } from "./foo"; + ~~~~~~~ +!!! error TS2307: Cannot find module './foo' or its corresponding type declarations. +==== /foo.ts (0 errors) ==== + export function base() {} + \ No newline at end of file diff --git a/tests/baselines/reference/moduleResolutionWithSuffixes_oneNotFound.js b/tests/baselines/reference/moduleResolutionWithSuffixes_oneNotFound.js new file mode 100644 index 0000000000000..39dc2d0737fc2 --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithSuffixes_oneNotFound.js @@ -0,0 +1,17 @@ +//// [tests/cases/compiler/moduleResolutionWithSuffixes_oneNotFound.ts] //// + +//// [index.ts] +import { ios } from "./foo"; +//// [foo.ts] +export function base() {} + + +//// [index.js] +"use strict"; +exports.__esModule = true; +//// [foo.js] +"use strict"; +exports.__esModule = true; +exports.base = void 0; +function base() { } +exports.base = base; diff --git a/tests/baselines/reference/moduleResolutionWithSuffixes_oneNotFound.symbols b/tests/baselines/reference/moduleResolutionWithSuffixes_oneNotFound.symbols new file mode 100644 index 0000000000000..538ebe6e5637a --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithSuffixes_oneNotFound.symbols @@ -0,0 +1,8 @@ +=== /index.ts === +import { ios } from "./foo"; +>ios : Symbol(ios, Decl(index.ts, 0, 8)) + +=== /foo.ts === +export function base() {} +>base : Symbol(base, Decl(foo.ts, 0, 0)) + diff --git a/tests/baselines/reference/moduleResolutionWithSuffixes_oneNotFound.trace.json b/tests/baselines/reference/moduleResolutionWithSuffixes_oneNotFound.trace.json new file mode 100644 index 0000000000000..c0bf8c1d4367e --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithSuffixes_oneNotFound.trace.json @@ -0,0 +1,14 @@ +[ + "======== Resolving module './foo' from '/index.ts'. ========", + "Explicitly specified module resolution kind: 'NodeJs'.", + "Loading module as file / folder, candidate module location '/foo', target file type 'TypeScript'.", + "File '/foo.ios.ts' does not exist.", + "File '/foo.ios.tsx' does not exist.", + "File '/foo.ios.d.ts' does not exist.", + "Directory '/foo' does not exist, skipping all lookups in it.", + "Loading module as file / folder, candidate module location '/foo', target file type 'JavaScript'.", + "File '/foo.ios.js' does not exist.", + "File '/foo.ios.jsx' does not exist.", + "Directory '/foo' does not exist, skipping all lookups in it.", + "======== Module name './foo' was not resolved. ========" +] \ No newline at end of file diff --git a/tests/baselines/reference/moduleResolutionWithSuffixes_oneNotFound.types b/tests/baselines/reference/moduleResolutionWithSuffixes_oneNotFound.types new file mode 100644 index 0000000000000..78c180ec11557 --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithSuffixes_oneNotFound.types @@ -0,0 +1,8 @@ +=== /index.ts === +import { ios } from "./foo"; +>ios : any + +=== /foo.ts === +export function base() {} +>base : () => void + diff --git a/tests/baselines/reference/moduleResolutionWithSuffixes_one_dirModuleWithIndex.js b/tests/baselines/reference/moduleResolutionWithSuffixes_one_dirModuleWithIndex.js new file mode 100644 index 0000000000000..7c5504416056a --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithSuffixes_one_dirModuleWithIndex.js @@ -0,0 +1,24 @@ +//// [tests/cases/compiler/moduleResolutionWithSuffixes_one_dirModuleWithIndex.ts] //// + +//// [index.ts] +import { ios } from "./foo"; +//// [index.ios.ts] +export function ios() {} +//// [index.ts] +export function base() {} + +//// [index.ios.js] +"use strict"; +exports.__esModule = true; +exports.ios = void 0; +function ios() { } +exports.ios = ios; +//// [index.js] +"use strict"; +exports.__esModule = true; +//// [index.js] +"use strict"; +exports.__esModule = true; +exports.base = void 0; +function base() { } +exports.base = base; diff --git a/tests/baselines/reference/moduleResolutionWithSuffixes_one_dirModuleWithIndex.symbols b/tests/baselines/reference/moduleResolutionWithSuffixes_one_dirModuleWithIndex.symbols new file mode 100644 index 0000000000000..c83274be2e88c --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithSuffixes_one_dirModuleWithIndex.symbols @@ -0,0 +1,12 @@ +=== /index.ts === +import { ios } from "./foo"; +>ios : Symbol(ios, Decl(index.ts, 0, 8)) + +=== /foo/index.ios.ts === +export function ios() {} +>ios : Symbol(ios, Decl(index.ios.ts, 0, 0)) + +=== /foo/index.ts === +export function base() {} +>base : Symbol(base, Decl(index.ts, 0, 0)) + diff --git a/tests/baselines/reference/moduleResolutionWithSuffixes_one_dirModuleWithIndex.trace.json b/tests/baselines/reference/moduleResolutionWithSuffixes_one_dirModuleWithIndex.trace.json new file mode 100644 index 0000000000000..ec663458f8e72 --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithSuffixes_one_dirModuleWithIndex.trace.json @@ -0,0 +1,11 @@ +[ + "======== Resolving module './foo' from '/index.ts'. ========", + "Explicitly specified module resolution kind: 'NodeJs'.", + "Loading module as file / folder, candidate module location '/foo', target file type 'TypeScript'.", + "File '/foo.ios.ts' does not exist.", + "File '/foo.ios.tsx' does not exist.", + "File '/foo.ios.d.ts' does not exist.", + "File '/foo/package.json' does not exist.", + "File '/foo/index.ios.ts' exist - use it as a name resolution result.", + "======== Module name './foo' was successfully resolved to '/foo/index.ios.ts'. ========" +] \ No newline at end of file diff --git a/tests/baselines/reference/moduleResolutionWithSuffixes_one_dirModuleWithIndex.types b/tests/baselines/reference/moduleResolutionWithSuffixes_one_dirModuleWithIndex.types new file mode 100644 index 0000000000000..2fac3e926519c --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithSuffixes_one_dirModuleWithIndex.types @@ -0,0 +1,12 @@ +=== /index.ts === +import { ios } from "./foo"; +>ios : () => void + +=== /foo/index.ios.ts === +export function ios() {} +>ios : () => void + +=== /foo/index.ts === +export function base() {} +>base : () => void + diff --git a/tests/baselines/reference/moduleResolutionWithSuffixes_one_externalModule.js b/tests/baselines/reference/moduleResolutionWithSuffixes_one_externalModule.js new file mode 100644 index 0000000000000..f8505073a5d3c --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithSuffixes_one_externalModule.js @@ -0,0 +1,34 @@ +//// [tests/cases/compiler/moduleResolutionWithSuffixes_one_externalModule.ts] //// + +//// [index.ios.js] +"use strict"; +exports.__esModule = true; +function ios() {} +exports.ios = ios; +//// [index.ios.d.ts] +export declare function ios(): void; +//// [index.js] +"use strict"; +exports.__esModule = true; +function base() {} +exports.base = base; +//// [index.d.ts] +export declare function base(): void; + +//// [index.ts] +import { ios } from "some-library"; + + +//// [/bin/node_modules/some-library/index.ios.js] +"use strict"; +exports.__esModule = true; +function ios() { } +exports.ios = ios; +//// [/bin/node_modules/some-library/index.js] +"use strict"; +exports.__esModule = true; +function base() { } +exports.base = base; +//// [/bin/index.js] +"use strict"; +exports.__esModule = true; diff --git a/tests/baselines/reference/moduleResolutionWithSuffixes_one_externalModule.symbols b/tests/baselines/reference/moduleResolutionWithSuffixes_one_externalModule.symbols new file mode 100644 index 0000000000000..e838c8d7ee177 --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithSuffixes_one_externalModule.symbols @@ -0,0 +1,44 @@ +=== /node_modules/some-library/index.ios.js === +"use strict"; +exports.__esModule = true; +>exports.__esModule : Symbol(__esModule, Decl(index.ios.js, 0, 13)) +>exports : Symbol(__esModule, Decl(index.ios.js, 0, 13)) +>__esModule : Symbol(__esModule, Decl(index.ios.js, 0, 13)) + +function ios() {} +>ios : Symbol(ios, Decl(index.ios.js, 1, 26)) + +exports.ios = ios; +>exports.ios : Symbol(ios, Decl(index.ios.js, 2, 17)) +>exports : Symbol(ios, Decl(index.ios.js, 2, 17)) +>ios : Symbol(ios, Decl(index.ios.js, 2, 17)) +>ios : Symbol(ios, Decl(index.ios.js, 1, 26)) + +=== /node_modules/some-library/index.ios.d.ts === +export declare function ios(): void; +>ios : Symbol(ios, Decl(index.ios.d.ts, 0, 0)) + +=== /node_modules/some-library/index.js === +"use strict"; +exports.__esModule = true; +>exports.__esModule : Symbol(__esModule, Decl(index.js, 0, 13)) +>exports : Symbol(__esModule, Decl(index.js, 0, 13)) +>__esModule : Symbol(__esModule, Decl(index.js, 0, 13)) + +function base() {} +>base : Symbol(base, Decl(index.js, 1, 26)) + +exports.base = base; +>exports.base : Symbol(base, Decl(index.js, 2, 18)) +>exports : Symbol(base, Decl(index.js, 2, 18)) +>base : Symbol(base, Decl(index.js, 2, 18)) +>base : Symbol(base, Decl(index.js, 1, 26)) + +=== /node_modules/some-library/index.d.ts === +export declare function base(): void; +>base : Symbol(base, Decl(index.d.ts, 0, 0)) + +=== /index.ts === +import { ios } from "some-library"; +>ios : Symbol(ios, Decl(index.ts, 0, 8)) + diff --git a/tests/baselines/reference/moduleResolutionWithSuffixes_one_externalModule.trace.json b/tests/baselines/reference/moduleResolutionWithSuffixes_one_externalModule.trace.json new file mode 100644 index 0000000000000..d79615de72961 --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithSuffixes_one_externalModule.trace.json @@ -0,0 +1,14 @@ +[ + "======== Resolving module 'some-library' from '/index.ts'. ========", + "Explicitly specified module resolution kind: 'NodeJs'.", + "Loading module 'some-library' from 'node_modules' folder, target file type 'TypeScript'.", + "File '/node_modules/some-library/package.json' does not exist.", + "File '/node_modules/some-library.ios.ts' does not exist.", + "File '/node_modules/some-library.ios.tsx' does not exist.", + "File '/node_modules/some-library.ios.d.ts' does not exist.", + "File '/node_modules/some-library/index.ios.ts' does not exist.", + "File '/node_modules/some-library/index.ios.tsx' does not exist.", + "File '/node_modules/some-library/index.ios.d.ts' exist - use it as a name resolution result.", + "Resolving real path for '/node_modules/some-library/index.ios.d.ts', result '/node_modules/some-library/index.ios.d.ts'.", + "======== Module name 'some-library' was successfully resolved to '/node_modules/some-library/index.ios.d.ts'. ========" +] \ No newline at end of file diff --git a/tests/baselines/reference/moduleResolutionWithSuffixes_one_externalModule.types b/tests/baselines/reference/moduleResolutionWithSuffixes_one_externalModule.types new file mode 100644 index 0000000000000..dd19f789448b5 --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithSuffixes_one_externalModule.types @@ -0,0 +1,54 @@ +=== /node_modules/some-library/index.ios.js === +"use strict"; +>"use strict" : "use strict" + +exports.__esModule = true; +>exports.__esModule = true : true +>exports.__esModule : true +>exports : typeof import("/node_modules/some-library/index.ios") +>__esModule : true +>true : true + +function ios() {} +>ios : () => void + +exports.ios = ios; +>exports.ios = ios : () => void +>exports.ios : () => void +>exports : typeof import("/node_modules/some-library/index.ios") +>ios : () => void +>ios : () => void + +=== /node_modules/some-library/index.ios.d.ts === +export declare function ios(): void; +>ios : () => void + +=== /node_modules/some-library/index.js === +"use strict"; +>"use strict" : "use strict" + +exports.__esModule = true; +>exports.__esModule = true : true +>exports.__esModule : true +>exports : typeof import("/node_modules/some-library/index") +>__esModule : true +>true : true + +function base() {} +>base : () => void + +exports.base = base; +>exports.base = base : () => void +>exports.base : () => void +>exports : typeof import("/node_modules/some-library/index") +>base : () => void +>base : () => void + +=== /node_modules/some-library/index.d.ts === +export declare function base(): void; +>base : () => void + +=== /index.ts === +import { ios } from "some-library"; +>ios : () => void + diff --git a/tests/baselines/reference/moduleResolutionWithSuffixes_one_externalModulePath.js b/tests/baselines/reference/moduleResolutionWithSuffixes_one_externalModulePath.js new file mode 100644 index 0000000000000..55d8b3681a5cb --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithSuffixes_one_externalModulePath.js @@ -0,0 +1,34 @@ +//// [tests/cases/compiler/moduleResolutionWithSuffixes_one_externalModulePath.ts] //// + +//// [foo.ios.js] +"use strict"; +exports.__esModule = true; +function iosfoo() {} +exports.iosfoo = iosfoo; +//// [foo.ios.d.ts] +export declare function iosfoo(): void; +//// [foo.js] +"use strict"; +exports.__esModule = true; +function basefoo() {} +exports.basefoo = basefoo; +//// [foo.d.ts] +export declare function basefoo(): void; + +//// [index.ts] +import { iosfoo } from "some-library/foo"; + + +//// [/bin/node_modules/some-library/foo.ios.js] +"use strict"; +exports.__esModule = true; +function iosfoo() { } +exports.iosfoo = iosfoo; +//// [/bin/node_modules/some-library/foo.js] +"use strict"; +exports.__esModule = true; +function basefoo() { } +exports.basefoo = basefoo; +//// [/bin/index.js] +"use strict"; +exports.__esModule = true; diff --git a/tests/baselines/reference/moduleResolutionWithSuffixes_one_externalModulePath.symbols b/tests/baselines/reference/moduleResolutionWithSuffixes_one_externalModulePath.symbols new file mode 100644 index 0000000000000..8048c1df6689a --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithSuffixes_one_externalModulePath.symbols @@ -0,0 +1,44 @@ +=== /node_modules/some-library/foo.ios.js === +"use strict"; +exports.__esModule = true; +>exports.__esModule : Symbol(__esModule, Decl(foo.ios.js, 0, 13)) +>exports : Symbol(__esModule, Decl(foo.ios.js, 0, 13)) +>__esModule : Symbol(__esModule, Decl(foo.ios.js, 0, 13)) + +function iosfoo() {} +>iosfoo : Symbol(iosfoo, Decl(foo.ios.js, 1, 26)) + +exports.iosfoo = iosfoo; +>exports.iosfoo : Symbol(iosfoo, Decl(foo.ios.js, 2, 20)) +>exports : Symbol(iosfoo, Decl(foo.ios.js, 2, 20)) +>iosfoo : Symbol(iosfoo, Decl(foo.ios.js, 2, 20)) +>iosfoo : Symbol(iosfoo, Decl(foo.ios.js, 1, 26)) + +=== /node_modules/some-library/foo.ios.d.ts === +export declare function iosfoo(): void; +>iosfoo : Symbol(iosfoo, Decl(foo.ios.d.ts, 0, 0)) + +=== /node_modules/some-library/foo.js === +"use strict"; +exports.__esModule = true; +>exports.__esModule : Symbol(__esModule, Decl(foo.js, 0, 13)) +>exports : Symbol(__esModule, Decl(foo.js, 0, 13)) +>__esModule : Symbol(__esModule, Decl(foo.js, 0, 13)) + +function basefoo() {} +>basefoo : Symbol(basefoo, Decl(foo.js, 1, 26)) + +exports.basefoo = basefoo; +>exports.basefoo : Symbol(basefoo, Decl(foo.js, 2, 21)) +>exports : Symbol(basefoo, Decl(foo.js, 2, 21)) +>basefoo : Symbol(basefoo, Decl(foo.js, 2, 21)) +>basefoo : Symbol(basefoo, Decl(foo.js, 1, 26)) + +=== /node_modules/some-library/foo.d.ts === +export declare function basefoo(): void; +>basefoo : Symbol(basefoo, Decl(foo.d.ts, 0, 0)) + +=== /index.ts === +import { iosfoo } from "some-library/foo"; +>iosfoo : Symbol(iosfoo, Decl(index.ts, 0, 8)) + diff --git a/tests/baselines/reference/moduleResolutionWithSuffixes_one_externalModulePath.trace.json b/tests/baselines/reference/moduleResolutionWithSuffixes_one_externalModulePath.trace.json new file mode 100644 index 0000000000000..3a7c320e60a15 --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithSuffixes_one_externalModulePath.trace.json @@ -0,0 +1,11 @@ +[ + "======== Resolving module 'some-library/foo' from '/index.ts'. ========", + "Explicitly specified module resolution kind: 'NodeJs'.", + "Loading module 'some-library/foo' from 'node_modules' folder, target file type 'TypeScript'.", + "File '/node_modules/some-library/package.json' does not exist.", + "File '/node_modules/some-library/foo.ios.ts' does not exist.", + "File '/node_modules/some-library/foo.ios.tsx' does not exist.", + "File '/node_modules/some-library/foo.ios.d.ts' exist - use it as a name resolution result.", + "Resolving real path for '/node_modules/some-library/foo.ios.d.ts', result '/node_modules/some-library/foo.ios.d.ts'.", + "======== Module name 'some-library/foo' was successfully resolved to '/node_modules/some-library/foo.ios.d.ts'. ========" +] \ No newline at end of file diff --git a/tests/baselines/reference/moduleResolutionWithSuffixes_one_externalModulePath.types b/tests/baselines/reference/moduleResolutionWithSuffixes_one_externalModulePath.types new file mode 100644 index 0000000000000..686966864eb5b --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithSuffixes_one_externalModulePath.types @@ -0,0 +1,54 @@ +=== /node_modules/some-library/foo.ios.js === +"use strict"; +>"use strict" : "use strict" + +exports.__esModule = true; +>exports.__esModule = true : true +>exports.__esModule : true +>exports : typeof import("/node_modules/some-library/foo.ios") +>__esModule : true +>true : true + +function iosfoo() {} +>iosfoo : () => void + +exports.iosfoo = iosfoo; +>exports.iosfoo = iosfoo : () => void +>exports.iosfoo : () => void +>exports : typeof import("/node_modules/some-library/foo.ios") +>iosfoo : () => void +>iosfoo : () => void + +=== /node_modules/some-library/foo.ios.d.ts === +export declare function iosfoo(): void; +>iosfoo : () => void + +=== /node_modules/some-library/foo.js === +"use strict"; +>"use strict" : "use strict" + +exports.__esModule = true; +>exports.__esModule = true : true +>exports.__esModule : true +>exports : typeof import("/node_modules/some-library/foo") +>__esModule : true +>true : true + +function basefoo() {} +>basefoo : () => void + +exports.basefoo = basefoo; +>exports.basefoo = basefoo : () => void +>exports.basefoo : () => void +>exports : typeof import("/node_modules/some-library/foo") +>basefoo : () => void +>basefoo : () => void + +=== /node_modules/some-library/foo.d.ts === +export declare function basefoo(): void; +>basefoo : () => void + +=== /index.ts === +import { iosfoo } from "some-library/foo"; +>iosfoo : () => void + diff --git a/tests/baselines/reference/moduleResolutionWithSuffixes_one_externalModule_withPaths.js b/tests/baselines/reference/moduleResolutionWithSuffixes_one_externalModule_withPaths.js new file mode 100644 index 0000000000000..4672bf88ee66b --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithSuffixes_one_externalModule_withPaths.js @@ -0,0 +1,36 @@ +//// [tests/cases/compiler/moduleResolutionWithSuffixes_one_externalModule_withPaths.ts] //// + +//// [index.ios.js] +"use strict"; +exports.__esModule = true; +function ios() {} +exports.ios = ios; +//// [index.ios.d.ts] +export declare function ios(): void; +//// [index.js] +"use strict"; +exports.__esModule = true; +function base() {} +exports.base = base; +//// [index.d.ts] +export declare function base(): void; + +//// [test.ts] +import { ios } from "some-library"; +import { ios as ios2 } from "some-library/index"; +import { ios as ios3 } from "some-library/index.js"; + + +//// [/bin/node_modules/some-library/lib/index.ios.js] +"use strict"; +exports.__esModule = true; +function ios() { } +exports.ios = ios; +//// [/bin/node_modules/some-library/lib/index.js] +"use strict"; +exports.__esModule = true; +function base() { } +exports.base = base; +//// [/bin/test.js] +"use strict"; +exports.__esModule = true; diff --git a/tests/baselines/reference/moduleResolutionWithSuffixes_one_externalModule_withPaths.symbols b/tests/baselines/reference/moduleResolutionWithSuffixes_one_externalModule_withPaths.symbols new file mode 100644 index 0000000000000..131cc1ee66611 --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithSuffixes_one_externalModule_withPaths.symbols @@ -0,0 +1,52 @@ +=== /node_modules/some-library/lib/index.ios.js === +"use strict"; +exports.__esModule = true; +>exports.__esModule : Symbol(__esModule, Decl(index.ios.js, 0, 13)) +>exports : Symbol(__esModule, Decl(index.ios.js, 0, 13)) +>__esModule : Symbol(__esModule, Decl(index.ios.js, 0, 13)) + +function ios() {} +>ios : Symbol(ios, Decl(index.ios.js, 1, 26)) + +exports.ios = ios; +>exports.ios : Symbol(ios, Decl(index.ios.js, 2, 17)) +>exports : Symbol(ios, Decl(index.ios.js, 2, 17)) +>ios : Symbol(ios, Decl(index.ios.js, 2, 17)) +>ios : Symbol(ios, Decl(index.ios.js, 1, 26)) + +=== /node_modules/some-library/lib/index.ios.d.ts === +export declare function ios(): void; +>ios : Symbol(ios, Decl(index.ios.d.ts, 0, 0)) + +=== /node_modules/some-library/lib/index.js === +"use strict"; +exports.__esModule = true; +>exports.__esModule : Symbol(__esModule, Decl(index.js, 0, 13)) +>exports : Symbol(__esModule, Decl(index.js, 0, 13)) +>__esModule : Symbol(__esModule, Decl(index.js, 0, 13)) + +function base() {} +>base : Symbol(base, Decl(index.js, 1, 26)) + +exports.base = base; +>exports.base : Symbol(base, Decl(index.js, 2, 18)) +>exports : Symbol(base, Decl(index.js, 2, 18)) +>base : Symbol(base, Decl(index.js, 2, 18)) +>base : Symbol(base, Decl(index.js, 1, 26)) + +=== /node_modules/some-library/lib/index.d.ts === +export declare function base(): void; +>base : Symbol(base, Decl(index.d.ts, 0, 0)) + +=== /test.ts === +import { ios } from "some-library"; +>ios : Symbol(ios, Decl(test.ts, 0, 8)) + +import { ios as ios2 } from "some-library/index"; +>ios : Symbol(ios, Decl(index.ios.d.ts, 0, 0)) +>ios2 : Symbol(ios2, Decl(test.ts, 1, 8)) + +import { ios as ios3 } from "some-library/index.js"; +>ios : Symbol(ios, Decl(index.ios.d.ts, 0, 0)) +>ios3 : Symbol(ios3, Decl(test.ts, 2, 8)) + diff --git a/tests/baselines/reference/moduleResolutionWithSuffixes_one_externalModule_withPaths.trace.json b/tests/baselines/reference/moduleResolutionWithSuffixes_one_externalModule_withPaths.trace.json new file mode 100644 index 0000000000000..bb8df8b026651 --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithSuffixes_one_externalModule_withPaths.trace.json @@ -0,0 +1,45 @@ +[ + "======== Resolving module 'some-library' from '/test.ts'. ========", + "Explicitly specified module resolution kind: 'NodeJs'.", + "'baseUrl' option is set to '/', using this value to resolve non-relative module name 'some-library'.", + "'paths' option is specified, looking for a pattern to match module name 'some-library'.", + "Module name 'some-library', matched pattern 'some-library'.", + "Trying substitution 'node_modules/some-library/lib', candidate module location: 'node_modules/some-library/lib'.", + "Loading module as file / folder, candidate module location '/node_modules/some-library/lib', target file type 'TypeScript'.", + "File '/node_modules/some-library/lib.ios.ts' does not exist.", + "File '/node_modules/some-library/lib.ios.tsx' does not exist.", + "File '/node_modules/some-library/lib.ios.d.ts' does not exist.", + "File '/node_modules/some-library/lib/package.json' does not exist.", + "File '/node_modules/some-library/lib/index.ios.ts' does not exist.", + "File '/node_modules/some-library/lib/index.ios.tsx' does not exist.", + "File '/node_modules/some-library/lib/index.ios.d.ts' exist - use it as a name resolution result.", + "======== Module name 'some-library' was successfully resolved to '/node_modules/some-library/lib/index.ios.d.ts'. ========", + "======== Resolving module 'some-library/index' from '/test.ts'. ========", + "Explicitly specified module resolution kind: 'NodeJs'.", + "'baseUrl' option is set to '/', using this value to resolve non-relative module name 'some-library/index'.", + "'paths' option is specified, looking for a pattern to match module name 'some-library/index'.", + "Module name 'some-library/index', matched pattern 'some-library/*'.", + "Trying substitution 'node_modules/some-library/lib/*', candidate module location: 'node_modules/some-library/lib/index'.", + "Loading module as file / folder, candidate module location '/node_modules/some-library/lib/index', target file type 'TypeScript'.", + "File '/node_modules/some-library/lib/index.ios.ts' does not exist.", + "File '/node_modules/some-library/lib/index.ios.tsx' does not exist.", + "File '/node_modules/some-library/lib/index.ios.d.ts' exist - use it as a name resolution result.", + "File '/node_modules/some-library/package.json' does not exist.", + "======== Module name 'some-library/index' was successfully resolved to '/node_modules/some-library/lib/index.ios.d.ts'. ========", + "======== Resolving module 'some-library/index.js' from '/test.ts'. ========", + "Explicitly specified module resolution kind: 'NodeJs'.", + "'baseUrl' option is set to '/', using this value to resolve non-relative module name 'some-library/index.js'.", + "'paths' option is specified, looking for a pattern to match module name 'some-library/index.js'.", + "Module name 'some-library/index.js', matched pattern 'some-library/*'.", + "Trying substitution 'node_modules/some-library/lib/*', candidate module location: 'node_modules/some-library/lib/index.js'.", + "Loading module as file / folder, candidate module location '/node_modules/some-library/lib/index.js', target file type 'TypeScript'.", + "File '/node_modules/some-library/lib/index.js.ios.ts' does not exist.", + "File '/node_modules/some-library/lib/index.js.ios.tsx' does not exist.", + "File '/node_modules/some-library/lib/index.js.ios.d.ts' does not exist.", + "File name '/node_modules/some-library/lib/index.js' has a '.js' extension - stripping it.", + "File '/node_modules/some-library/lib/index.ios.ts' does not exist.", + "File '/node_modules/some-library/lib/index.ios.tsx' does not exist.", + "File '/node_modules/some-library/lib/index.ios.d.ts' exist - use it as a name resolution result.", + "File '/node_modules/some-library/package.json' does not exist according to earlier cached lookups.", + "======== Module name 'some-library/index.js' was successfully resolved to '/node_modules/some-library/lib/index.ios.d.ts'. ========" +] \ No newline at end of file diff --git a/tests/baselines/reference/moduleResolutionWithSuffixes_one_externalModule_withPaths.types b/tests/baselines/reference/moduleResolutionWithSuffixes_one_externalModule_withPaths.types new file mode 100644 index 0000000000000..0084ba275629f --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithSuffixes_one_externalModule_withPaths.types @@ -0,0 +1,62 @@ +=== /node_modules/some-library/lib/index.ios.js === +"use strict"; +>"use strict" : "use strict" + +exports.__esModule = true; +>exports.__esModule = true : true +>exports.__esModule : true +>exports : typeof import("/node_modules/some-library/lib/index.ios") +>__esModule : true +>true : true + +function ios() {} +>ios : () => void + +exports.ios = ios; +>exports.ios = ios : () => void +>exports.ios : () => void +>exports : typeof import("/node_modules/some-library/lib/index.ios") +>ios : () => void +>ios : () => void + +=== /node_modules/some-library/lib/index.ios.d.ts === +export declare function ios(): void; +>ios : () => void + +=== /node_modules/some-library/lib/index.js === +"use strict"; +>"use strict" : "use strict" + +exports.__esModule = true; +>exports.__esModule = true : true +>exports.__esModule : true +>exports : typeof import("/node_modules/some-library/lib/index") +>__esModule : true +>true : true + +function base() {} +>base : () => void + +exports.base = base; +>exports.base = base : () => void +>exports.base : () => void +>exports : typeof import("/node_modules/some-library/lib/index") +>base : () => void +>base : () => void + +=== /node_modules/some-library/lib/index.d.ts === +export declare function base(): void; +>base : () => void + +=== /test.ts === +import { ios } from "some-library"; +>ios : () => void + +import { ios as ios2 } from "some-library/index"; +>ios : () => void +>ios2 : () => void + +import { ios as ios3 } from "some-library/index.js"; +>ios : () => void +>ios3 : () => void + diff --git a/tests/baselines/reference/moduleResolutionWithSuffixes_one_externalTSModule.js b/tests/baselines/reference/moduleResolutionWithSuffixes_one_externalTSModule.js new file mode 100644 index 0000000000000..a64c88b037b7b --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithSuffixes_one_externalTSModule.js @@ -0,0 +1,25 @@ +//// [tests/cases/compiler/moduleResolutionWithSuffixes_one_externalTSModule.ts] //// + +//// [index.ios.ts] +export function ios() {} +//// [index.ts] +export function base() {} +//// [test.ts] +import { ios } from "some-library"; + + +//// [/bin/node_modules/some-library/index.ios.js] +"use strict"; +exports.__esModule = true; +exports.ios = void 0; +function ios() { } +exports.ios = ios; +//// [/bin/node_modules/some-library/index.js] +"use strict"; +exports.__esModule = true; +exports.base = void 0; +function base() { } +exports.base = base; +//// [/bin/test.js] +"use strict"; +exports.__esModule = true; diff --git a/tests/baselines/reference/moduleResolutionWithSuffixes_one_externalTSModule.symbols b/tests/baselines/reference/moduleResolutionWithSuffixes_one_externalTSModule.symbols new file mode 100644 index 0000000000000..b101667d604e3 --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithSuffixes_one_externalTSModule.symbols @@ -0,0 +1,12 @@ +=== /node_modules/some-library/index.ios.ts === +export function ios() {} +>ios : Symbol(ios, Decl(index.ios.ts, 0, 0)) + +=== /node_modules/some-library/index.ts === +export function base() {} +>base : Symbol(base, Decl(index.ts, 0, 0)) + +=== /test.ts === +import { ios } from "some-library"; +>ios : Symbol(ios, Decl(test.ts, 0, 8)) + diff --git a/tests/baselines/reference/moduleResolutionWithSuffixes_one_externalTSModule.trace.json b/tests/baselines/reference/moduleResolutionWithSuffixes_one_externalTSModule.trace.json new file mode 100644 index 0000000000000..7224d4d6498d8 --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithSuffixes_one_externalTSModule.trace.json @@ -0,0 +1,12 @@ +[ + "======== Resolving module 'some-library' from '/test.ts'. ========", + "Explicitly specified module resolution kind: 'NodeJs'.", + "Loading module 'some-library' from 'node_modules' folder, target file type 'TypeScript'.", + "File '/node_modules/some-library/package.json' does not exist.", + "File '/node_modules/some-library.ios.ts' does not exist.", + "File '/node_modules/some-library.ios.tsx' does not exist.", + "File '/node_modules/some-library.ios.d.ts' does not exist.", + "File '/node_modules/some-library/index.ios.ts' exist - use it as a name resolution result.", + "Resolving real path for '/node_modules/some-library/index.ios.ts', result '/node_modules/some-library/index.ios.ts'.", + "======== Module name 'some-library' was successfully resolved to '/node_modules/some-library/index.ios.ts'. ========" +] \ No newline at end of file diff --git a/tests/baselines/reference/moduleResolutionWithSuffixes_one_externalTSModule.types b/tests/baselines/reference/moduleResolutionWithSuffixes_one_externalTSModule.types new file mode 100644 index 0000000000000..bfddc35b501d9 --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithSuffixes_one_externalTSModule.types @@ -0,0 +1,12 @@ +=== /node_modules/some-library/index.ios.ts === +export function ios() {} +>ios : () => void + +=== /node_modules/some-library/index.ts === +export function base() {} +>base : () => void + +=== /test.ts === +import { ios } from "some-library"; +>ios : () => void + diff --git a/tests/baselines/reference/moduleResolutionWithSuffixes_one_jsModule.js b/tests/baselines/reference/moduleResolutionWithSuffixes_one_jsModule.js new file mode 100644 index 0000000000000..7f41d42befa5d --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithSuffixes_one_jsModule.js @@ -0,0 +1,29 @@ +//// [tests/cases/compiler/moduleResolutionWithSuffixes_one_jsModule.ts] //// + +//// [index.ts] +import { ios } from "./foo.js"; +//// [foo.ios.js] +"use strict"; +exports.__esModule = true; +function ios() {} +exports.ios = ios; +//// [foo.js] +"use strict"; +exports.__esModule = true; +function base() {} +exports.base = base; + + +//// [/bin/foo.ios.js] +"use strict"; +exports.__esModule = true; +function ios() { } +exports.ios = ios; +//// [/bin/index.js] +"use strict"; +exports.__esModule = true; +//// [/bin/foo.js] +"use strict"; +exports.__esModule = true; +function base() { } +exports.base = base; diff --git a/tests/baselines/reference/moduleResolutionWithSuffixes_one_jsModule.symbols b/tests/baselines/reference/moduleResolutionWithSuffixes_one_jsModule.symbols new file mode 100644 index 0000000000000..1666dae12a808 --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithSuffixes_one_jsModule.symbols @@ -0,0 +1,36 @@ +=== /index.ts === +import { ios } from "./foo.js"; +>ios : Symbol(ios, Decl(index.ts, 0, 8)) + +=== /foo.ios.js === +"use strict"; +exports.__esModule = true; +>exports.__esModule : Symbol(__esModule, Decl(foo.ios.js, 0, 13)) +>exports : Symbol(__esModule, Decl(foo.ios.js, 0, 13)) +>__esModule : Symbol(__esModule, Decl(foo.ios.js, 0, 13)) + +function ios() {} +>ios : Symbol(ios, Decl(foo.ios.js, 1, 26)) + +exports.ios = ios; +>exports.ios : Symbol(ios, Decl(foo.ios.js, 2, 17)) +>exports : Symbol(ios, Decl(foo.ios.js, 2, 17)) +>ios : Symbol(ios, Decl(foo.ios.js, 2, 17)) +>ios : Symbol(ios, Decl(foo.ios.js, 1, 26)) + +=== /foo.js === +"use strict"; +exports.__esModule = true; +>exports.__esModule : Symbol(__esModule, Decl(foo.js, 0, 13)) +>exports : Symbol(__esModule, Decl(foo.js, 0, 13)) +>__esModule : Symbol(__esModule, Decl(foo.js, 0, 13)) + +function base() {} +>base : Symbol(base, Decl(foo.js, 1, 26)) + +exports.base = base; +>exports.base : Symbol(base, Decl(foo.js, 2, 18)) +>exports : Symbol(base, Decl(foo.js, 2, 18)) +>base : Symbol(base, Decl(foo.js, 2, 18)) +>base : Symbol(base, Decl(foo.js, 1, 26)) + diff --git a/tests/baselines/reference/moduleResolutionWithSuffixes_one_jsModule.trace.json b/tests/baselines/reference/moduleResolutionWithSuffixes_one_jsModule.trace.json new file mode 100644 index 0000000000000..473007233e556 --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithSuffixes_one_jsModule.trace.json @@ -0,0 +1,19 @@ +[ + "======== Resolving module './foo.js' from '/index.ts'. ========", + "Explicitly specified module resolution kind: 'NodeJs'.", + "Loading module as file / folder, candidate module location '/foo.js', target file type 'TypeScript'.", + "File '/foo.js.ios.ts' does not exist.", + "File '/foo.js.ios.tsx' does not exist.", + "File '/foo.js.ios.d.ts' does not exist.", + "File name '/foo.js' has a '.js' extension - stripping it.", + "File '/foo.ios.ts' does not exist.", + "File '/foo.ios.tsx' does not exist.", + "File '/foo.ios.d.ts' does not exist.", + "Directory '/foo.js' does not exist, skipping all lookups in it.", + "Loading module as file / folder, candidate module location '/foo.js', target file type 'JavaScript'.", + "File '/foo.js.ios.js' does not exist.", + "File '/foo.js.ios.jsx' does not exist.", + "File name '/foo.js' has a '.js' extension - stripping it.", + "File '/foo.ios.js' exist - use it as a name resolution result.", + "======== Module name './foo.js' was successfully resolved to '/foo.ios.js'. ========" +] \ No newline at end of file diff --git a/tests/baselines/reference/moduleResolutionWithSuffixes_one_jsModule.types b/tests/baselines/reference/moduleResolutionWithSuffixes_one_jsModule.types new file mode 100644 index 0000000000000..ca54a7053dbee --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithSuffixes_one_jsModule.types @@ -0,0 +1,46 @@ +=== /index.ts === +import { ios } from "./foo.js"; +>ios : () => void + +=== /foo.ios.js === +"use strict"; +>"use strict" : "use strict" + +exports.__esModule = true; +>exports.__esModule = true : true +>exports.__esModule : true +>exports : typeof import("/foo.ios") +>__esModule : true +>true : true + +function ios() {} +>ios : () => void + +exports.ios = ios; +>exports.ios = ios : () => void +>exports.ios : () => void +>exports : typeof import("/foo.ios") +>ios : () => void +>ios : () => void + +=== /foo.js === +"use strict"; +>"use strict" : "use strict" + +exports.__esModule = true; +>exports.__esModule = true : true +>exports.__esModule : true +>exports : typeof import("/foo") +>__esModule : true +>true : true + +function base() {} +>base : () => void + +exports.base = base; +>exports.base = base : () => void +>exports.base : () => void +>exports : typeof import("/foo") +>base : () => void +>base : () => void + diff --git a/tests/baselines/reference/moduleResolutionWithSuffixes_one_jsonModule.js b/tests/baselines/reference/moduleResolutionWithSuffixes_one_jsonModule.js new file mode 100644 index 0000000000000..b46635b3373af --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithSuffixes_one_jsonModule.js @@ -0,0 +1,27 @@ +//// [tests/cases/compiler/moduleResolutionWithSuffixes_one_jsonModule.ts] //// + +//// [index.ts] +import foo from "./foo.json"; +console.log(foo.ios); +//// [foo.ios.json] +{ + "ios": "platform ios" +} +//// [foo.json] +{ + "base": "platform base" +} + + +//// [/bin/foo.ios.json] +{ + "ios": "platform ios" +} +//// [/bin/index.js] +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +exports.__esModule = true; +var foo_json_1 = __importDefault(require("./foo.json")); +console.log(foo_json_1["default"].ios); diff --git a/tests/baselines/reference/moduleResolutionWithSuffixes_one_jsonModule.symbols b/tests/baselines/reference/moduleResolutionWithSuffixes_one_jsonModule.symbols new file mode 100644 index 0000000000000..de2c6e6b24de0 --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithSuffixes_one_jsonModule.symbols @@ -0,0 +1,17 @@ +=== /index.ts === +import foo from "./foo.json"; +>foo : Symbol(foo, Decl(index.ts, 0, 6)) + +console.log(foo.ios); +>console.log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>console : Symbol(console, Decl(lib.dom.d.ts, --, --)) +>log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>foo.ios : Symbol("ios", Decl(foo.ios.json, 0, 1)) +>foo : Symbol(foo, Decl(index.ts, 0, 6)) +>ios : Symbol("ios", Decl(foo.ios.json, 0, 1)) + +=== /foo.ios.json === +{ + "ios": "platform ios" +>"ios" : Symbol("ios", Decl(foo.ios.json, 0, 1)) +} diff --git a/tests/baselines/reference/moduleResolutionWithSuffixes_one_jsonModule.trace.json b/tests/baselines/reference/moduleResolutionWithSuffixes_one_jsonModule.trace.json new file mode 100644 index 0000000000000..ed1b58abf25e5 --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithSuffixes_one_jsonModule.trace.json @@ -0,0 +1,17 @@ +[ + "======== Resolving module './foo.json' from '/index.ts'. ========", + "Explicitly specified module resolution kind: 'NodeJs'.", + "Loading module as file / folder, candidate module location '/foo.json', target file type 'TypeScript'.", + "File '/foo.json.ios.ts' does not exist.", + "File '/foo.json.ios.tsx' does not exist.", + "File '/foo.json.ios.d.ts' does not exist.", + "File name '/foo.json' has a '.json' extension - stripping it.", + "File '/foo.json.ios.d.ts' does not exist.", + "Directory '/foo.json' does not exist, skipping all lookups in it.", + "Loading module as file / folder, candidate module location '/foo.json', target file type 'JavaScript'.", + "File '/foo.json.ios.js' does not exist.", + "File '/foo.json.ios.jsx' does not exist.", + "File name '/foo.json' has a '.json' extension - stripping it.", + "File '/foo.ios.json' exist - use it as a name resolution result.", + "======== Module name './foo.json' was successfully resolved to '/foo.ios.json'. ========" +] \ No newline at end of file diff --git a/tests/baselines/reference/moduleResolutionWithSuffixes_one_jsonModule.types b/tests/baselines/reference/moduleResolutionWithSuffixes_one_jsonModule.types new file mode 100644 index 0000000000000..e9bca0c3100bd --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithSuffixes_one_jsonModule.types @@ -0,0 +1,21 @@ +=== /index.ts === +import foo from "./foo.json"; +>foo : { ios: string; } + +console.log(foo.ios); +>console.log(foo.ios) : void +>console.log : (...data: any[]) => void +>console : Console +>log : (...data: any[]) => void +>foo.ios : string +>foo : { ios: string; } +>ios : string + +=== /foo.ios.json === +{ +>{ "ios": "platform ios"} : { ios: string; } + + "ios": "platform ios" +>"ios" : string +>"platform ios" : "platform ios" +} diff --git a/tests/baselines/reference/moduleResolutionWithSuffixes_threeLastIsBlank1.js b/tests/baselines/reference/moduleResolutionWithSuffixes_threeLastIsBlank1.js new file mode 100644 index 0000000000000..ccea9f45d575a --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithSuffixes_threeLastIsBlank1.js @@ -0,0 +1,33 @@ +//// [tests/cases/compiler/moduleResolutionWithSuffixes_threeLastIsBlank1.ts] //// + +//// [index.ts] +import { ios } from "./foo"; +//// [foo-ios.ts] +export function ios() {} +//// [foo__native.ts] +export function native() {} +//// [foo.ts] +export function base() {} + + +//// [foo-ios.js] +"use strict"; +exports.__esModule = true; +exports.ios = void 0; +function ios() { } +exports.ios = ios; +//// [index.js] +"use strict"; +exports.__esModule = true; +//// [foo__native.js] +"use strict"; +exports.__esModule = true; +exports.native = void 0; +function native() { } +exports.native = native; +//// [foo.js] +"use strict"; +exports.__esModule = true; +exports.base = void 0; +function base() { } +exports.base = base; diff --git a/tests/baselines/reference/moduleResolutionWithSuffixes_threeLastIsBlank1.symbols b/tests/baselines/reference/moduleResolutionWithSuffixes_threeLastIsBlank1.symbols new file mode 100644 index 0000000000000..1c84042747439 --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithSuffixes_threeLastIsBlank1.symbols @@ -0,0 +1,16 @@ +=== /index.ts === +import { ios } from "./foo"; +>ios : Symbol(ios, Decl(index.ts, 0, 8)) + +=== /foo-ios.ts === +export function ios() {} +>ios : Symbol(ios, Decl(foo-ios.ts, 0, 0)) + +=== /foo__native.ts === +export function native() {} +>native : Symbol(native, Decl(foo__native.ts, 0, 0)) + +=== /foo.ts === +export function base() {} +>base : Symbol(base, Decl(foo.ts, 0, 0)) + diff --git a/tests/baselines/reference/moduleResolutionWithSuffixes_threeLastIsBlank1.trace.json b/tests/baselines/reference/moduleResolutionWithSuffixes_threeLastIsBlank1.trace.json new file mode 100644 index 0000000000000..4a68f95ae8332 --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithSuffixes_threeLastIsBlank1.trace.json @@ -0,0 +1,7 @@ +[ + "======== Resolving module './foo' from '/index.ts'. ========", + "Explicitly specified module resolution kind: 'NodeJs'.", + "Loading module as file / folder, candidate module location '/foo', target file type 'TypeScript'.", + "File '/foo-ios.ts' exist - use it as a name resolution result.", + "======== Module name './foo' was successfully resolved to '/foo-ios.ts'. ========" +] \ No newline at end of file diff --git a/tests/baselines/reference/moduleResolutionWithSuffixes_threeLastIsBlank1.types b/tests/baselines/reference/moduleResolutionWithSuffixes_threeLastIsBlank1.types new file mode 100644 index 0000000000000..e269db29bc6f5 --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithSuffixes_threeLastIsBlank1.types @@ -0,0 +1,16 @@ +=== /index.ts === +import { ios } from "./foo"; +>ios : () => void + +=== /foo-ios.ts === +export function ios() {} +>ios : () => void + +=== /foo__native.ts === +export function native() {} +>native : () => void + +=== /foo.ts === +export function base() {} +>base : () => void + diff --git a/tests/baselines/reference/moduleResolutionWithSuffixes_threeLastIsBlank2.js b/tests/baselines/reference/moduleResolutionWithSuffixes_threeLastIsBlank2.js new file mode 100644 index 0000000000000..22fdb6d93bd56 --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithSuffixes_threeLastIsBlank2.js @@ -0,0 +1,25 @@ +//// [tests/cases/compiler/moduleResolutionWithSuffixes_threeLastIsBlank2.ts] //// + +//// [index.ts] +import { native } from "./foo"; +//// [foo__native.ts] +export function native() {} +//// [foo.ts] +export function base() {} + + +//// [foo__native.js] +"use strict"; +exports.__esModule = true; +exports.native = void 0; +function native() { } +exports.native = native; +//// [index.js] +"use strict"; +exports.__esModule = true; +//// [foo.js] +"use strict"; +exports.__esModule = true; +exports.base = void 0; +function base() { } +exports.base = base; diff --git a/tests/baselines/reference/moduleResolutionWithSuffixes_threeLastIsBlank2.symbols b/tests/baselines/reference/moduleResolutionWithSuffixes_threeLastIsBlank2.symbols new file mode 100644 index 0000000000000..fc4a6ba0c118c --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithSuffixes_threeLastIsBlank2.symbols @@ -0,0 +1,12 @@ +=== /index.ts === +import { native } from "./foo"; +>native : Symbol(native, Decl(index.ts, 0, 8)) + +=== /foo__native.ts === +export function native() {} +>native : Symbol(native, Decl(foo__native.ts, 0, 0)) + +=== /foo.ts === +export function base() {} +>base : Symbol(base, Decl(foo.ts, 0, 0)) + diff --git a/tests/baselines/reference/moduleResolutionWithSuffixes_threeLastIsBlank2.trace.json b/tests/baselines/reference/moduleResolutionWithSuffixes_threeLastIsBlank2.trace.json new file mode 100644 index 0000000000000..57c28e81bfa10 --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithSuffixes_threeLastIsBlank2.trace.json @@ -0,0 +1,8 @@ +[ + "======== Resolving module './foo' from '/index.ts'. ========", + "Explicitly specified module resolution kind: 'NodeJs'.", + "Loading module as file / folder, candidate module location '/foo', target file type 'TypeScript'.", + "File '/foo-ios.ts' does not exist.", + "File '/foo__native.ts' exist - use it as a name resolution result.", + "======== Module name './foo' was successfully resolved to '/foo__native.ts'. ========" +] \ No newline at end of file diff --git a/tests/baselines/reference/moduleResolutionWithSuffixes_threeLastIsBlank2.types b/tests/baselines/reference/moduleResolutionWithSuffixes_threeLastIsBlank2.types new file mode 100644 index 0000000000000..f85579cd0c18a --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithSuffixes_threeLastIsBlank2.types @@ -0,0 +1,12 @@ +=== /index.ts === +import { native } from "./foo"; +>native : () => void + +=== /foo__native.ts === +export function native() {} +>native : () => void + +=== /foo.ts === +export function base() {} +>base : () => void + diff --git a/tests/baselines/reference/moduleResolutionWithSuffixes_threeLastIsBlank3.js b/tests/baselines/reference/moduleResolutionWithSuffixes_threeLastIsBlank3.js new file mode 100644 index 0000000000000..b064747a2805f --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithSuffixes_threeLastIsBlank3.js @@ -0,0 +1,17 @@ +//// [tests/cases/compiler/moduleResolutionWithSuffixes_threeLastIsBlank3.ts] //// + +//// [index.ts] +import { base } from "./foo"; +//// [foo.ts] +export function base() {} + + +//// [foo.js] +"use strict"; +exports.__esModule = true; +exports.base = void 0; +function base() { } +exports.base = base; +//// [index.js] +"use strict"; +exports.__esModule = true; diff --git a/tests/baselines/reference/moduleResolutionWithSuffixes_threeLastIsBlank3.symbols b/tests/baselines/reference/moduleResolutionWithSuffixes_threeLastIsBlank3.symbols new file mode 100644 index 0000000000000..d4bcb87477b14 --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithSuffixes_threeLastIsBlank3.symbols @@ -0,0 +1,8 @@ +=== /index.ts === +import { base } from "./foo"; +>base : Symbol(base, Decl(index.ts, 0, 8)) + +=== /foo.ts === +export function base() {} +>base : Symbol(base, Decl(foo.ts, 0, 0)) + diff --git a/tests/baselines/reference/moduleResolutionWithSuffixes_threeLastIsBlank3.trace.json b/tests/baselines/reference/moduleResolutionWithSuffixes_threeLastIsBlank3.trace.json new file mode 100644 index 0000000000000..693d55759f0a7 --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithSuffixes_threeLastIsBlank3.trace.json @@ -0,0 +1,9 @@ +[ + "======== Resolving module './foo' from '/index.ts'. ========", + "Explicitly specified module resolution kind: 'NodeJs'.", + "Loading module as file / folder, candidate module location '/foo', target file type 'TypeScript'.", + "File '/foo-ios.ts' does not exist.", + "File '/foo__native.ts' does not exist.", + "File '/foo.ts' exist - use it as a name resolution result.", + "======== Module name './foo' was successfully resolved to '/foo.ts'. ========" +] \ No newline at end of file diff --git a/tests/baselines/reference/moduleResolutionWithSuffixes_threeLastIsBlank3.types b/tests/baselines/reference/moduleResolutionWithSuffixes_threeLastIsBlank3.types new file mode 100644 index 0000000000000..90f587bf346ed --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithSuffixes_threeLastIsBlank3.types @@ -0,0 +1,8 @@ +=== /index.ts === +import { base } from "./foo"; +>base : () => void + +=== /foo.ts === +export function base() {} +>base : () => void + diff --git a/tests/baselines/reference/moduleResolutionWithSuffixes_threeLastIsBlank4.errors.txt b/tests/baselines/reference/moduleResolutionWithSuffixes_threeLastIsBlank4.errors.txt new file mode 100644 index 0000000000000..2b049530aa427 --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithSuffixes_threeLastIsBlank4.errors.txt @@ -0,0 +1,19 @@ +/index.ts(1,22): error TS2307: Cannot find module './foo' or its corresponding type declarations. + + +==== /tsconfig.json (0 errors) ==== + // moduleSuffixes has three entries, and the last one is blank. Module resolution should fail. + + { + "compilerOptions": { + "moduleResolution": "node", + "traceResolution": true, + "moduleSuffixes": ["-ios", "__native", ""] + } + } + +==== /index.ts (1 errors) ==== + import { base } from "./foo"; + ~~~~~~~ +!!! error TS2307: Cannot find module './foo' or its corresponding type declarations. + \ No newline at end of file diff --git a/tests/baselines/reference/moduleResolutionWithSuffixes_threeLastIsBlank4.js b/tests/baselines/reference/moduleResolutionWithSuffixes_threeLastIsBlank4.js new file mode 100644 index 0000000000000..3d98d656097b7 --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithSuffixes_threeLastIsBlank4.js @@ -0,0 +1,7 @@ +//// [index.ts] +import { base } from "./foo"; + + +//// [index.js] +"use strict"; +exports.__esModule = true; diff --git a/tests/baselines/reference/moduleResolutionWithSuffixes_threeLastIsBlank4.symbols b/tests/baselines/reference/moduleResolutionWithSuffixes_threeLastIsBlank4.symbols new file mode 100644 index 0000000000000..ce0d230ada3b8 --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithSuffixes_threeLastIsBlank4.symbols @@ -0,0 +1,4 @@ +=== /index.ts === +import { base } from "./foo"; +>base : Symbol(base, Decl(index.ts, 0, 8)) + diff --git a/tests/baselines/reference/moduleResolutionWithSuffixes_threeLastIsBlank4.trace.json b/tests/baselines/reference/moduleResolutionWithSuffixes_threeLastIsBlank4.trace.json new file mode 100644 index 0000000000000..1a4b097e7fdd3 --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithSuffixes_threeLastIsBlank4.trace.json @@ -0,0 +1,24 @@ +[ + "======== Resolving module './foo' from '/index.ts'. ========", + "Explicitly specified module resolution kind: 'NodeJs'.", + "Loading module as file / folder, candidate module location '/foo', target file type 'TypeScript'.", + "File '/foo-ios.ts' does not exist.", + "File '/foo__native.ts' does not exist.", + "File '/foo.ts' does not exist.", + "File '/foo-ios.tsx' does not exist.", + "File '/foo__native.tsx' does not exist.", + "File '/foo.tsx' does not exist.", + "File '/foo-ios.d.ts' does not exist.", + "File '/foo__native.d.ts' does not exist.", + "File '/foo.d.ts' does not exist.", + "Directory '/foo' does not exist, skipping all lookups in it.", + "Loading module as file / folder, candidate module location '/foo', target file type 'JavaScript'.", + "File '/foo-ios.js' does not exist.", + "File '/foo__native.js' does not exist.", + "File '/foo.js' does not exist.", + "File '/foo-ios.jsx' does not exist.", + "File '/foo__native.jsx' does not exist.", + "File '/foo.jsx' does not exist.", + "Directory '/foo' does not exist, skipping all lookups in it.", + "======== Module name './foo' was not resolved. ========" +] \ No newline at end of file diff --git a/tests/baselines/reference/moduleResolutionWithSuffixes_threeLastIsBlank4.types b/tests/baselines/reference/moduleResolutionWithSuffixes_threeLastIsBlank4.types new file mode 100644 index 0000000000000..0744260812a20 --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithSuffixes_threeLastIsBlank4.types @@ -0,0 +1,4 @@ +=== /index.ts === +import { base } from "./foo"; +>base : any + diff --git a/tests/baselines/reference/moduleResolutionWithoutExtension1.errors.txt b/tests/baselines/reference/moduleResolutionWithoutExtension1.errors.txt new file mode 100644 index 0000000000000..5f3cbbc121cfb --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithoutExtension1.errors.txt @@ -0,0 +1,18 @@ +/src/bar.mts(2,21): error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './foo.mjs'? +/src/bar.mts(3,21): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. + + +==== /src/foo.mts (0 errors) ==== + export function foo() { + return ""; + } + +==== /src/bar.mts (2 errors) ==== + // Extensionless relative path ES import in an ES module + import { foo } from "./foo"; // should error, suggest adding ".mjs" + ~~~~~~~ +!!! error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './foo.mjs'? + import { baz } from "./baz"; // should error, ask for extension, no extension suggestion + ~~~~~~~ +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. + \ No newline at end of file diff --git a/tests/baselines/reference/moduleResolutionWithoutExtension1.js b/tests/baselines/reference/moduleResolutionWithoutExtension1.js new file mode 100644 index 0000000000000..39f3af1bcb538 --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithoutExtension1.js @@ -0,0 +1,19 @@ +//// [tests/cases/conformance/externalModules/moduleResolutionWithoutExtension1.ts] //// + +//// [foo.mts] +export function foo() { + return ""; +} + +//// [bar.mts] +// Extensionless relative path ES import in an ES module +import { foo } from "./foo"; // should error, suggest adding ".mjs" +import { baz } from "./baz"; // should error, ask for extension, no extension suggestion + + +//// [foo.mjs] +export function foo() { + return ""; +} +//// [bar.mjs] +export {}; diff --git a/tests/baselines/reference/moduleResolutionWithoutExtension1.symbols b/tests/baselines/reference/moduleResolutionWithoutExtension1.symbols new file mode 100644 index 0000000000000..5b3588c39019d --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithoutExtension1.symbols @@ -0,0 +1,15 @@ +=== /src/foo.mts === +export function foo() { +>foo : Symbol(foo, Decl(foo.mts, 0, 0)) + + return ""; +} + +=== /src/bar.mts === +// Extensionless relative path ES import in an ES module +import { foo } from "./foo"; // should error, suggest adding ".mjs" +>foo : Symbol(foo, Decl(bar.mts, 1, 8)) + +import { baz } from "./baz"; // should error, ask for extension, no extension suggestion +>baz : Symbol(baz, Decl(bar.mts, 2, 8)) + diff --git a/tests/baselines/reference/moduleResolutionWithoutExtension1.types b/tests/baselines/reference/moduleResolutionWithoutExtension1.types new file mode 100644 index 0000000000000..79b5c11773d59 --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithoutExtension1.types @@ -0,0 +1,16 @@ +=== /src/foo.mts === +export function foo() { +>foo : () => string + + return ""; +>"" : "" +} + +=== /src/bar.mts === +// Extensionless relative path ES import in an ES module +import { foo } from "./foo"; // should error, suggest adding ".mjs" +>foo : any + +import { baz } from "./baz"; // should error, ask for extension, no extension suggestion +>baz : any + diff --git a/tests/baselines/reference/moduleResolutionWithoutExtension2.errors.txt b/tests/baselines/reference/moduleResolutionWithoutExtension2.errors.txt new file mode 100644 index 0000000000000..e541ad83a67cd --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithoutExtension2.errors.txt @@ -0,0 +1,8 @@ +/src/buzz.mts(2,22): error TS2307: Cannot find module './foo' or its corresponding type declarations. + + +==== /src/buzz.mts (1 errors) ==== + // Extensionless relative path cjs import in an ES module + import foo = require("./foo"); // should error, should not ask for extension + ~~~~~~~ +!!! error TS2307: Cannot find module './foo' or its corresponding type declarations. \ No newline at end of file diff --git a/tests/baselines/reference/moduleResolutionWithoutExtension2.js b/tests/baselines/reference/moduleResolutionWithoutExtension2.js new file mode 100644 index 0000000000000..f5d7cf95c75ee --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithoutExtension2.js @@ -0,0 +1,6 @@ +//// [buzz.mts] +// Extensionless relative path cjs import in an ES module +import foo = require("./foo"); // should error, should not ask for extension + +//// [buzz.mjs] +export {}; diff --git a/tests/baselines/reference/moduleResolutionWithoutExtension2.symbols b/tests/baselines/reference/moduleResolutionWithoutExtension2.symbols new file mode 100644 index 0000000000000..c10eaa8a5b21b --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithoutExtension2.symbols @@ -0,0 +1,5 @@ +=== /src/buzz.mts === +// Extensionless relative path cjs import in an ES module +import foo = require("./foo"); // should error, should not ask for extension +>foo : Symbol(foo, Decl(buzz.mts, 0, 0)) + diff --git a/tests/baselines/reference/moduleResolutionWithoutExtension2.types b/tests/baselines/reference/moduleResolutionWithoutExtension2.types new file mode 100644 index 0000000000000..89d7b057c8fae --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithoutExtension2.types @@ -0,0 +1,5 @@ +=== /src/buzz.mts === +// Extensionless relative path cjs import in an ES module +import foo = require("./foo"); // should error, should not ask for extension +>foo : any + diff --git a/tests/baselines/reference/moduleResolutionWithoutExtension3.errors.txt b/tests/baselines/reference/moduleResolutionWithoutExtension3.errors.txt new file mode 100644 index 0000000000000..0c753a1029900 --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithoutExtension3.errors.txt @@ -0,0 +1,14 @@ +/src/bar.mts(2,21): error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './foo.jsx'? + + +==== /src/foo.tsx (0 errors) ==== + export function foo() { + return ""; + } + +==== /src/bar.mts (1 errors) ==== + // Extensionless relative path ES import in an ES module + import { foo } from "./foo"; // should error, suggest adding ".jsx" + ~~~~~~~ +!!! error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './foo.jsx'? + \ No newline at end of file diff --git a/tests/baselines/reference/moduleResolutionWithoutExtension3.js b/tests/baselines/reference/moduleResolutionWithoutExtension3.js new file mode 100644 index 0000000000000..964402755a434 --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithoutExtension3.js @@ -0,0 +1,22 @@ +//// [tests/cases/conformance/externalModules/moduleResolutionWithoutExtension3.ts] //// + +//// [foo.tsx] +export function foo() { + return ""; +} + +//// [bar.mts] +// Extensionless relative path ES import in an ES module +import { foo } from "./foo"; // should error, suggest adding ".jsx" + + +//// [foo.jsx] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.foo = void 0; +function foo() { + return ""; +} +exports.foo = foo; +//// [bar.mjs] +export {}; diff --git a/tests/baselines/reference/moduleResolutionWithoutExtension3.symbols b/tests/baselines/reference/moduleResolutionWithoutExtension3.symbols new file mode 100644 index 0000000000000..707433d072a60 --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithoutExtension3.symbols @@ -0,0 +1,12 @@ +=== /src/foo.tsx === +export function foo() { +>foo : Symbol(foo, Decl(foo.tsx, 0, 0)) + + return ""; +} + +=== /src/bar.mts === +// Extensionless relative path ES import in an ES module +import { foo } from "./foo"; // should error, suggest adding ".jsx" +>foo : Symbol(foo, Decl(bar.mts, 1, 8)) + diff --git a/tests/baselines/reference/moduleResolutionWithoutExtension3.types b/tests/baselines/reference/moduleResolutionWithoutExtension3.types new file mode 100644 index 0000000000000..a94a6890b6898 --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithoutExtension3.types @@ -0,0 +1,13 @@ +=== /src/foo.tsx === +export function foo() { +>foo : () => string + + return ""; +>"" : "" +} + +=== /src/bar.mts === +// Extensionless relative path ES import in an ES module +import { foo } from "./foo"; // should error, suggest adding ".jsx" +>foo : any + diff --git a/tests/baselines/reference/moduleResolutionWithoutExtension4.errors.txt b/tests/baselines/reference/moduleResolutionWithoutExtension4.errors.txt new file mode 100644 index 0000000000000..afd24269d69bc --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithoutExtension4.errors.txt @@ -0,0 +1,14 @@ +/src/bar.mts(2,21): error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './foo.js'? + + +==== /src/foo.tsx (0 errors) ==== + export function foo() { + return ""; + } + +==== /src/bar.mts (1 errors) ==== + // Extensionless relative path ES import in an ES module + import { foo } from "./foo"; // should error, suggest adding ".js" + ~~~~~~~ +!!! error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './foo.js'? + \ No newline at end of file diff --git a/tests/baselines/reference/moduleResolutionWithoutExtension4.js b/tests/baselines/reference/moduleResolutionWithoutExtension4.js new file mode 100644 index 0000000000000..b67ea6284a3ff --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithoutExtension4.js @@ -0,0 +1,22 @@ +//// [tests/cases/conformance/externalModules/moduleResolutionWithoutExtension4.ts] //// + +//// [foo.tsx] +export function foo() { + return ""; +} + +//// [bar.mts] +// Extensionless relative path ES import in an ES module +import { foo } from "./foo"; // should error, suggest adding ".js" + + +//// [foo.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.foo = void 0; +function foo() { + return ""; +} +exports.foo = foo; +//// [bar.mjs] +export {}; diff --git a/tests/baselines/reference/moduleResolutionWithoutExtension4.symbols b/tests/baselines/reference/moduleResolutionWithoutExtension4.symbols new file mode 100644 index 0000000000000..ba19300835274 --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithoutExtension4.symbols @@ -0,0 +1,12 @@ +=== /src/foo.tsx === +export function foo() { +>foo : Symbol(foo, Decl(foo.tsx, 0, 0)) + + return ""; +} + +=== /src/bar.mts === +// Extensionless relative path ES import in an ES module +import { foo } from "./foo"; // should error, suggest adding ".js" +>foo : Symbol(foo, Decl(bar.mts, 1, 8)) + diff --git a/tests/baselines/reference/moduleResolutionWithoutExtension4.types b/tests/baselines/reference/moduleResolutionWithoutExtension4.types new file mode 100644 index 0000000000000..e72345bda427d --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithoutExtension4.types @@ -0,0 +1,13 @@ +=== /src/foo.tsx === +export function foo() { +>foo : () => string + + return ""; +>"" : "" +} + +=== /src/bar.mts === +// Extensionless relative path ES import in an ES module +import { foo } from "./foo"; // should error, suggest adding ".js" +>foo : any + diff --git a/tests/baselines/reference/moduleResolutionWithoutExtension5.errors.txt b/tests/baselines/reference/moduleResolutionWithoutExtension5.errors.txt new file mode 100644 index 0000000000000..b4b0a89ae974f --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithoutExtension5.errors.txt @@ -0,0 +1,8 @@ +/src/buzz.mts(2,8): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. + + +==== /src/buzz.mts (1 errors) ==== + // Extensionless relative path dynamic import in an ES module + import("./foo").then(x => x); // should error, ask for extension + ~~~~~~~ +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. \ No newline at end of file diff --git a/tests/baselines/reference/moduleResolutionWithoutExtension5.js b/tests/baselines/reference/moduleResolutionWithoutExtension5.js new file mode 100644 index 0000000000000..8c2854da5f948 --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithoutExtension5.js @@ -0,0 +1,8 @@ +//// [buzz.mts] +// Extensionless relative path dynamic import in an ES module +import("./foo").then(x => x); // should error, ask for extension + +//// [buzz.mjs] +// Extensionless relative path dynamic import in an ES module +import("./foo").then(x => x); // should error, ask for extension +export {}; diff --git a/tests/baselines/reference/moduleResolutionWithoutExtension5.symbols b/tests/baselines/reference/moduleResolutionWithoutExtension5.symbols new file mode 100644 index 0000000000000..d66bb3d0fff5b --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithoutExtension5.symbols @@ -0,0 +1,8 @@ +=== /src/buzz.mts === +// Extensionless relative path dynamic import in an ES module +import("./foo").then(x => x); // should error, ask for extension +>import("./foo").then : Symbol(Promise.then, Decl(lib.es5.d.ts, --, --)) +>then : Symbol(Promise.then, Decl(lib.es5.d.ts, --, --)) +>x : Symbol(x, Decl(buzz.mts, 1, 21)) +>x : Symbol(x, Decl(buzz.mts, 1, 21)) + diff --git a/tests/baselines/reference/moduleResolutionWithoutExtension5.types b/tests/baselines/reference/moduleResolutionWithoutExtension5.types new file mode 100644 index 0000000000000..d18f5276dba1c --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithoutExtension5.types @@ -0,0 +1,12 @@ +=== /src/buzz.mts === +// Extensionless relative path dynamic import in an ES module +import("./foo").then(x => x); // should error, ask for extension +>import("./foo").then(x => x) : Promise +>import("./foo").then : (onfulfilled?: (value: any) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike) => Promise +>import("./foo") : Promise +>"./foo" : "./foo" +>then : (onfulfilled?: (value: any) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike) => Promise +>x => x : (x: any) => any +>x : any +>x : any + diff --git a/tests/baselines/reference/moduleResolutionWithoutExtension6.errors.txt b/tests/baselines/reference/moduleResolutionWithoutExtension6.errors.txt new file mode 100644 index 0000000000000..267a4cd5a0a53 --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithoutExtension6.errors.txt @@ -0,0 +1,10 @@ +/src/bar.cts(4,21): error TS2307: Cannot find module './foo' or its corresponding type declarations. + + +==== /src/bar.cts (1 errors) ==== + // Extensionless relative path import statement in a cjs module + // Import statements are not allowed in cjs files, + // but other errors should not assume that they are allowed + import { foo } from "./foo"; // should error, should not ask for extension + ~~~~~~~ +!!! error TS2307: Cannot find module './foo' or its corresponding type declarations. \ No newline at end of file diff --git a/tests/baselines/reference/moduleResolutionWithoutExtension6.js b/tests/baselines/reference/moduleResolutionWithoutExtension6.js new file mode 100644 index 0000000000000..0df0659f2d516 --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithoutExtension6.js @@ -0,0 +1,9 @@ +//// [bar.cts] +// Extensionless relative path import statement in a cjs module +// Import statements are not allowed in cjs files, +// but other errors should not assume that they are allowed +import { foo } from "./foo"; // should error, should not ask for extension + +//// [bar.cjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/tests/baselines/reference/moduleResolutionWithoutExtension6.symbols b/tests/baselines/reference/moduleResolutionWithoutExtension6.symbols new file mode 100644 index 0000000000000..0e0f1e7963667 --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithoutExtension6.symbols @@ -0,0 +1,7 @@ +=== /src/bar.cts === +// Extensionless relative path import statement in a cjs module +// Import statements are not allowed in cjs files, +// but other errors should not assume that they are allowed +import { foo } from "./foo"; // should error, should not ask for extension +>foo : Symbol(foo, Decl(bar.cts, 3, 8)) + diff --git a/tests/baselines/reference/moduleResolutionWithoutExtension6.types b/tests/baselines/reference/moduleResolutionWithoutExtension6.types new file mode 100644 index 0000000000000..7b87af3ccf3b3 --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithoutExtension6.types @@ -0,0 +1,7 @@ +=== /src/bar.cts === +// Extensionless relative path import statement in a cjs module +// Import statements are not allowed in cjs files, +// but other errors should not assume that they are allowed +import { foo } from "./foo"; // should error, should not ask for extension +>foo : any + diff --git a/tests/baselines/reference/moduleResolutionWithoutExtension7.errors.txt b/tests/baselines/reference/moduleResolutionWithoutExtension7.errors.txt new file mode 100644 index 0000000000000..0ff660b3418e3 --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithoutExtension7.errors.txt @@ -0,0 +1,8 @@ +/src/bar.cts(2,22): error TS2307: Cannot find module './foo' or its corresponding type declarations. + + +==== /src/bar.cts (1 errors) ==== + // Extensionless relative path cjs import in a cjs module + import foo = require("./foo"); // should error, should not ask for extension + ~~~~~~~ +!!! error TS2307: Cannot find module './foo' or its corresponding type declarations. \ No newline at end of file diff --git a/tests/baselines/reference/moduleResolutionWithoutExtension7.js b/tests/baselines/reference/moduleResolutionWithoutExtension7.js new file mode 100644 index 0000000000000..949b36a9d1da8 --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithoutExtension7.js @@ -0,0 +1,7 @@ +//// [bar.cts] +// Extensionless relative path cjs import in a cjs module +import foo = require("./foo"); // should error, should not ask for extension + +//// [bar.cjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/tests/baselines/reference/moduleResolutionWithoutExtension7.symbols b/tests/baselines/reference/moduleResolutionWithoutExtension7.symbols new file mode 100644 index 0000000000000..4397e9a2e294f --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithoutExtension7.symbols @@ -0,0 +1,5 @@ +=== /src/bar.cts === +// Extensionless relative path cjs import in a cjs module +import foo = require("./foo"); // should error, should not ask for extension +>foo : Symbol(foo, Decl(bar.cts, 0, 0)) + diff --git a/tests/baselines/reference/moduleResolutionWithoutExtension7.types b/tests/baselines/reference/moduleResolutionWithoutExtension7.types new file mode 100644 index 0000000000000..1ebf99baf94cb --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithoutExtension7.types @@ -0,0 +1,5 @@ +=== /src/bar.cts === +// Extensionless relative path cjs import in a cjs module +import foo = require("./foo"); // should error, should not ask for extension +>foo : any + diff --git a/tests/baselines/reference/moduleResolutionWithoutExtension8.errors.txt b/tests/baselines/reference/moduleResolutionWithoutExtension8.errors.txt new file mode 100644 index 0000000000000..c990522c6c707 --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithoutExtension8.errors.txt @@ -0,0 +1,8 @@ +/src/bar.cts(2,8): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. + + +==== /src/bar.cts (1 errors) ==== + // Extensionless relative path dynamic import in a cjs module + import("./foo").then(x => x); // should error, ask for extension + ~~~~~~~ +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. \ No newline at end of file diff --git a/tests/baselines/reference/moduleResolutionWithoutExtension8.js b/tests/baselines/reference/moduleResolutionWithoutExtension8.js new file mode 100644 index 0000000000000..593f3668b3c73 --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithoutExtension8.js @@ -0,0 +1,7 @@ +//// [bar.cts] +// Extensionless relative path dynamic import in a cjs module +import("./foo").then(x => x); // should error, ask for extension + +//// [bar.cjs] +// Extensionless relative path dynamic import in a cjs module +import("./foo").then(x => x); // should error, ask for extension diff --git a/tests/baselines/reference/moduleResolutionWithoutExtension8.symbols b/tests/baselines/reference/moduleResolutionWithoutExtension8.symbols new file mode 100644 index 0000000000000..deded53a4ec65 --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithoutExtension8.symbols @@ -0,0 +1,8 @@ +=== /src/bar.cts === +// Extensionless relative path dynamic import in a cjs module +import("./foo").then(x => x); // should error, ask for extension +>import("./foo").then : Symbol(Promise.then, Decl(lib.es5.d.ts, --, --)) +>then : Symbol(Promise.then, Decl(lib.es5.d.ts, --, --)) +>x : Symbol(x, Decl(bar.cts, 1, 21)) +>x : Symbol(x, Decl(bar.cts, 1, 21)) + diff --git a/tests/baselines/reference/moduleResolutionWithoutExtension8.types b/tests/baselines/reference/moduleResolutionWithoutExtension8.types new file mode 100644 index 0000000000000..fdde64edc490c --- /dev/null +++ b/tests/baselines/reference/moduleResolutionWithoutExtension8.types @@ -0,0 +1,12 @@ +=== /src/bar.cts === +// Extensionless relative path dynamic import in a cjs module +import("./foo").then(x => x); // should error, ask for extension +>import("./foo").then(x => x) : Promise +>import("./foo").then : (onfulfilled?: (value: any) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike) => Promise +>import("./foo") : Promise +>"./foo" : "./foo" +>then : (onfulfilled?: (value: any) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike) => Promise +>x => x : (x: any) => any +>x : any +>x : any + diff --git a/tests/baselines/reference/moduleResolution_explicitNodeModulesImport.types b/tests/baselines/reference/moduleResolution_explicitNodeModulesImport.types index fabd2b69a4c82..f048ba25d7b79 100644 --- a/tests/baselines/reference/moduleResolution_explicitNodeModulesImport.types +++ b/tests/baselines/reference/moduleResolution_explicitNodeModulesImport.types @@ -1,12 +1,12 @@ === /src/index.ts === import { x } from "../node_modules/foo"; ->x : number +>x : 0 === /node_modules/foo/index.js === exports.x = 0; >exports.x = 0 : 0 ->exports.x : number +>exports.x : 0 >exports : typeof import("/node_modules/foo/index") ->x : number +>x : 0 >0 : 0 diff --git a/tests/baselines/reference/moduleSameValueDuplicateExportedBindings1.js b/tests/baselines/reference/moduleSameValueDuplicateExportedBindings1.js index f0d186d22d49e..b6dc6fc8cea53 100644 --- a/tests/baselines/reference/moduleSameValueDuplicateExportedBindings1.js +++ b/tests/baselines/reference/moduleSameValueDuplicateExportedBindings1.js @@ -19,7 +19,11 @@ exports.foo = 42; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -33,7 +37,11 @@ __exportStar(require("./c"), exports); "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/moduleSameValueDuplicateExportedBindings2.js b/tests/baselines/reference/moduleSameValueDuplicateExportedBindings2.js index 5fef7d152dfb0..45f519ca482d6 100644 --- a/tests/baselines/reference/moduleSameValueDuplicateExportedBindings2.js +++ b/tests/baselines/reference/moduleSameValueDuplicateExportedBindings2.js @@ -27,7 +27,11 @@ var Animals; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -40,7 +44,11 @@ __createBinding(exports, c_1, "Animals"); "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/multiLineContextDiagnosticWithPretty.errors.txt b/tests/baselines/reference/multiLineContextDiagnosticWithPretty.errors.txt index 44b13d7ea8e99..85c9ed2159184 100644 --- a/tests/baselines/reference/multiLineContextDiagnosticWithPretty.errors.txt +++ b/tests/baselines/reference/multiLineContextDiagnosticWithPretty.errors.txt @@ -21,5 +21,5 @@ !!! error TS2322: Object literal may only specify known properties, and 'a' does not exist in type '{ c: string; }'. }; -Found 1 error. +Found 1 error in tests/cases/compiler/multiLineContextDiagnosticWithPretty.ts:2 diff --git a/tests/baselines/reference/narrowExceptionVariableInCatchClause.errors.txt b/tests/baselines/reference/narrowExceptionVariableInCatchClause.errors.txt index a5d4692930533..2d961d4fa0a08 100644 --- a/tests/baselines/reference/narrowExceptionVariableInCatchClause.errors.txt +++ b/tests/baselines/reference/narrowExceptionVariableInCatchClause.errors.txt @@ -24,7 +24,7 @@ tests/cases/conformance/types/any/narrowExceptionVariableInCatchClause.ts(16,17) err.massage; // ERROR: Property 'massage' does not exist on type 'Error' ~~~~~~~ !!! error TS2551: Property 'massage' does not exist on type 'Error'. Did you mean 'message'? -!!! related TS2728 /.ts/lib.es5.d.ts:1023:5: 'message' is declared here. +!!! related TS2728 /.ts/lib.es5.d.ts:1029:5: 'message' is declared here. } else { diff --git a/tests/baselines/reference/narrowFromAnyWithInstanceof.errors.txt b/tests/baselines/reference/narrowFromAnyWithInstanceof.errors.txt index daf8ca72c39a4..c32d742cad519 100644 --- a/tests/baselines/reference/narrowFromAnyWithInstanceof.errors.txt +++ b/tests/baselines/reference/narrowFromAnyWithInstanceof.errors.txt @@ -22,7 +22,7 @@ tests/cases/conformance/types/any/narrowFromAnyWithInstanceof.ts(22,7): error TS x.mesage; ~~~~~~ !!! error TS2551: Property 'mesage' does not exist on type 'Error'. Did you mean 'message'? -!!! related TS2728 /.ts/lib.es5.d.ts:1023:5: 'message' is declared here. +!!! related TS2728 /.ts/lib.es5.d.ts:1029:5: 'message' is declared here. } if (x instanceof Date) { @@ -30,6 +30,6 @@ tests/cases/conformance/types/any/narrowFromAnyWithInstanceof.ts(22,7): error TS x.getHuors(); ~~~~~~~~ !!! error TS2551: Property 'getHuors' does not exist on type 'Date'. Did you mean 'getHours'? -!!! related TS2728 /.ts/lib.es5.d.ts:783:5: 'getHours' is declared here. +!!! related TS2728 /.ts/lib.es5.d.ts:789:5: 'getHours' is declared here. } \ No newline at end of file diff --git a/tests/baselines/reference/narrowFromAnyWithTypePredicate.errors.txt b/tests/baselines/reference/narrowFromAnyWithTypePredicate.errors.txt index 795bc68b93275..232a03f038c17 100644 --- a/tests/baselines/reference/narrowFromAnyWithTypePredicate.errors.txt +++ b/tests/baselines/reference/narrowFromAnyWithTypePredicate.errors.txt @@ -41,7 +41,7 @@ tests/cases/conformance/types/any/narrowFromAnyWithTypePredicate.ts(33,7): error x.mesage; ~~~~~~ !!! error TS2551: Property 'mesage' does not exist on type 'Error'. Did you mean 'message'? -!!! related TS2728 /.ts/lib.es5.d.ts:1023:5: 'message' is declared here. +!!! related TS2728 /.ts/lib.es5.d.ts:1029:5: 'message' is declared here. } if (isDate(x)) { @@ -49,6 +49,6 @@ tests/cases/conformance/types/any/narrowFromAnyWithTypePredicate.ts(33,7): error x.getHuors(); ~~~~~~~~ !!! error TS2551: Property 'getHuors' does not exist on type 'Date'. Did you mean 'getHours'? -!!! related TS2728 /.ts/lib.es5.d.ts:783:5: 'getHours' is declared here. +!!! related TS2728 /.ts/lib.es5.d.ts:789:5: 'getHours' is declared here. } \ No newline at end of file diff --git a/tests/baselines/reference/narrowingDestructuring.js b/tests/baselines/reference/narrowingDestructuring.js new file mode 100644 index 0000000000000..4bc052b7fa0f4 --- /dev/null +++ b/tests/baselines/reference/narrowingDestructuring.js @@ -0,0 +1,89 @@ +//// [narrowingDestructuring.ts] +type X = { kind: "a", a: string } | { kind: "b", b: string } + +function func(value: T) { + if (value.kind === "a") { + value.a; + const { a } = value; + } else { + value.b; + const { b } = value; + } +} + +type Z = { kind: "f", f: { a: number, b: string, c: number } } + | { kind: "g", g: { a: string, b: number, c: string }}; + +function func2(value: T) { + if (value.kind === "f") { + const { f: f1 } = value; + const { f: { a, ...spread } } = value; + value.f; + } else { + const { g: { c, ...spread } } = value; + value.g; + } +} + +function func3(t: T) { + if (t.kind === "a") { + const { kind, ...r1 } = t; + const r2 = (({ kind, ...rest }) => rest)(t); + } +} + +function farr(x: T) { + const [head, ...tail] = x; + if (x[0] === 'number') { + const [head, ...tail] = x; + } +} + +//// [narrowingDestructuring.js] +var __rest = (this && this.__rest) || function (s, e) { + var t = {}; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) + t[p] = s[p]; + if (s != null && typeof Object.getOwnPropertySymbols === "function") + for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { + if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) + t[p[i]] = s[p[i]]; + } + return t; +}; +function func(value) { + if (value.kind === "a") { + value.a; + var a = value.a; + } + else { + value.b; + var b = value.b; + } +} +function func2(value) { + if (value.kind === "f") { + var f1 = value.f; + var _a = value.f, a = _a.a, spread = __rest(_a, ["a"]); + value.f; + } + else { + var _b = value.g, c = _b.c, spread = __rest(_b, ["c"]); + value.g; + } +} +function func3(t) { + if (t.kind === "a") { + var kind = t.kind, r1 = __rest(t, ["kind"]); + var r2 = (function (_a) { + var kind = _a.kind, rest = __rest(_a, ["kind"]); + return rest; + })(t); + } +} +function farr(x) { + var head = x[0], tail = x.slice(1); + if (x[0] === 'number') { + var head_1 = x[0], tail_1 = x.slice(1); + } +} diff --git a/tests/baselines/reference/narrowingDestructuring.symbols b/tests/baselines/reference/narrowingDestructuring.symbols new file mode 100644 index 0000000000000..9e7b65997d6a2 --- /dev/null +++ b/tests/baselines/reference/narrowingDestructuring.symbols @@ -0,0 +1,148 @@ +=== tests/cases/compiler/narrowingDestructuring.ts === +type X = { kind: "a", a: string } | { kind: "b", b: string } +>X : Symbol(X, Decl(narrowingDestructuring.ts, 0, 0)) +>kind : Symbol(kind, Decl(narrowingDestructuring.ts, 0, 10)) +>a : Symbol(a, Decl(narrowingDestructuring.ts, 0, 21)) +>kind : Symbol(kind, Decl(narrowingDestructuring.ts, 0, 37)) +>b : Symbol(b, Decl(narrowingDestructuring.ts, 0, 48)) + +function func(value: T) { +>func : Symbol(func, Decl(narrowingDestructuring.ts, 0, 60)) +>T : Symbol(T, Decl(narrowingDestructuring.ts, 2, 14)) +>X : Symbol(X, Decl(narrowingDestructuring.ts, 0, 0)) +>value : Symbol(value, Decl(narrowingDestructuring.ts, 2, 27)) +>T : Symbol(T, Decl(narrowingDestructuring.ts, 2, 14)) + + if (value.kind === "a") { +>value.kind : Symbol(kind, Decl(narrowingDestructuring.ts, 0, 10), Decl(narrowingDestructuring.ts, 0, 37)) +>value : Symbol(value, Decl(narrowingDestructuring.ts, 2, 27)) +>kind : Symbol(kind, Decl(narrowingDestructuring.ts, 0, 10), Decl(narrowingDestructuring.ts, 0, 37)) + + value.a; +>value.a : Symbol(a, Decl(narrowingDestructuring.ts, 0, 21)) +>value : Symbol(value, Decl(narrowingDestructuring.ts, 2, 27)) +>a : Symbol(a, Decl(narrowingDestructuring.ts, 0, 21)) + + const { a } = value; +>a : Symbol(a, Decl(narrowingDestructuring.ts, 5, 15)) +>value : Symbol(value, Decl(narrowingDestructuring.ts, 2, 27)) + + } else { + value.b; +>value.b : Symbol(b, Decl(narrowingDestructuring.ts, 0, 48)) +>value : Symbol(value, Decl(narrowingDestructuring.ts, 2, 27)) +>b : Symbol(b, Decl(narrowingDestructuring.ts, 0, 48)) + + const { b } = value; +>b : Symbol(b, Decl(narrowingDestructuring.ts, 8, 15)) +>value : Symbol(value, Decl(narrowingDestructuring.ts, 2, 27)) + } +} + +type Z = { kind: "f", f: { a: number, b: string, c: number } } +>Z : Symbol(Z, Decl(narrowingDestructuring.ts, 10, 1)) +>kind : Symbol(kind, Decl(narrowingDestructuring.ts, 12, 10)) +>f : Symbol(f, Decl(narrowingDestructuring.ts, 12, 21)) +>a : Symbol(a, Decl(narrowingDestructuring.ts, 12, 26)) +>b : Symbol(b, Decl(narrowingDestructuring.ts, 12, 37)) +>c : Symbol(c, Decl(narrowingDestructuring.ts, 12, 48)) + + | { kind: "g", g: { a: string, b: number, c: string }}; +>kind : Symbol(kind, Decl(narrowingDestructuring.ts, 13, 7)) +>g : Symbol(g, Decl(narrowingDestructuring.ts, 13, 18)) +>a : Symbol(a, Decl(narrowingDestructuring.ts, 13, 23)) +>b : Symbol(b, Decl(narrowingDestructuring.ts, 13, 34)) +>c : Symbol(c, Decl(narrowingDestructuring.ts, 13, 45)) + +function func2(value: T) { +>func2 : Symbol(func2, Decl(narrowingDestructuring.ts, 13, 59)) +>T : Symbol(T, Decl(narrowingDestructuring.ts, 15, 15)) +>Z : Symbol(Z, Decl(narrowingDestructuring.ts, 10, 1)) +>value : Symbol(value, Decl(narrowingDestructuring.ts, 15, 28)) +>T : Symbol(T, Decl(narrowingDestructuring.ts, 15, 15)) + + if (value.kind === "f") { +>value.kind : Symbol(kind, Decl(narrowingDestructuring.ts, 12, 10), Decl(narrowingDestructuring.ts, 13, 7)) +>value : Symbol(value, Decl(narrowingDestructuring.ts, 15, 28)) +>kind : Symbol(kind, Decl(narrowingDestructuring.ts, 12, 10), Decl(narrowingDestructuring.ts, 13, 7)) + + const { f: f1 } = value; +>f : Symbol(f, Decl(narrowingDestructuring.ts, 12, 21)) +>f1 : Symbol(f1, Decl(narrowingDestructuring.ts, 17, 15)) +>value : Symbol(value, Decl(narrowingDestructuring.ts, 15, 28)) + + const { f: { a, ...spread } } = value; +>f : Symbol(f, Decl(narrowingDestructuring.ts, 12, 21)) +>a : Symbol(a, Decl(narrowingDestructuring.ts, 18, 20)) +>spread : Symbol(spread, Decl(narrowingDestructuring.ts, 18, 23)) +>value : Symbol(value, Decl(narrowingDestructuring.ts, 15, 28)) + + value.f; +>value.f : Symbol(f, Decl(narrowingDestructuring.ts, 12, 21)) +>value : Symbol(value, Decl(narrowingDestructuring.ts, 15, 28)) +>f : Symbol(f, Decl(narrowingDestructuring.ts, 12, 21)) + + } else { + const { g: { c, ...spread } } = value; +>g : Symbol(g, Decl(narrowingDestructuring.ts, 13, 18)) +>c : Symbol(c, Decl(narrowingDestructuring.ts, 21, 20)) +>spread : Symbol(spread, Decl(narrowingDestructuring.ts, 21, 23)) +>value : Symbol(value, Decl(narrowingDestructuring.ts, 15, 28)) + + value.g; +>value.g : Symbol(g, Decl(narrowingDestructuring.ts, 13, 18)) +>value : Symbol(value, Decl(narrowingDestructuring.ts, 15, 28)) +>g : Symbol(g, Decl(narrowingDestructuring.ts, 13, 18)) + } +} + +function func3(t: T) { +>func3 : Symbol(func3, Decl(narrowingDestructuring.ts, 24, 1)) +>T : Symbol(T, Decl(narrowingDestructuring.ts, 26, 15)) +>kind : Symbol(kind, Decl(narrowingDestructuring.ts, 26, 26)) +>a : Symbol(a, Decl(narrowingDestructuring.ts, 26, 37)) +>kind : Symbol(kind, Decl(narrowingDestructuring.ts, 26, 53)) +>b : Symbol(b, Decl(narrowingDestructuring.ts, 26, 64)) +>t : Symbol(t, Decl(narrowingDestructuring.ts, 26, 78)) +>T : Symbol(T, Decl(narrowingDestructuring.ts, 26, 15)) + + if (t.kind === "a") { +>t.kind : Symbol(kind, Decl(narrowingDestructuring.ts, 26, 26), Decl(narrowingDestructuring.ts, 26, 53)) +>t : Symbol(t, Decl(narrowingDestructuring.ts, 26, 78)) +>kind : Symbol(kind, Decl(narrowingDestructuring.ts, 26, 26), Decl(narrowingDestructuring.ts, 26, 53)) + + const { kind, ...r1 } = t; +>kind : Symbol(kind, Decl(narrowingDestructuring.ts, 28, 15)) +>r1 : Symbol(r1, Decl(narrowingDestructuring.ts, 28, 21)) +>t : Symbol(t, Decl(narrowingDestructuring.ts, 26, 78)) + + const r2 = (({ kind, ...rest }) => rest)(t); +>r2 : Symbol(r2, Decl(narrowingDestructuring.ts, 29, 13)) +>kind : Symbol(kind, Decl(narrowingDestructuring.ts, 29, 22)) +>rest : Symbol(rest, Decl(narrowingDestructuring.ts, 29, 28)) +>rest : Symbol(rest, Decl(narrowingDestructuring.ts, 29, 28)) +>t : Symbol(t, Decl(narrowingDestructuring.ts, 26, 78)) + } +} + +function farr(x: T) { +>farr : Symbol(farr, Decl(narrowingDestructuring.ts, 31, 1)) +>T : Symbol(T, Decl(narrowingDestructuring.ts, 33, 14)) +>x : Symbol(x, Decl(narrowingDestructuring.ts, 33, 77)) +>T : Symbol(T, Decl(narrowingDestructuring.ts, 33, 14)) + + const [head, ...tail] = x; +>head : Symbol(head, Decl(narrowingDestructuring.ts, 34, 11)) +>tail : Symbol(tail, Decl(narrowingDestructuring.ts, 34, 16)) +>x : Symbol(x, Decl(narrowingDestructuring.ts, 33, 77)) + + if (x[0] === 'number') { +>x : Symbol(x, Decl(narrowingDestructuring.ts, 33, 77)) +>0 : Symbol(0) + + const [head, ...tail] = x; +>head : Symbol(head, Decl(narrowingDestructuring.ts, 36, 15)) +>tail : Symbol(tail, Decl(narrowingDestructuring.ts, 36, 20)) +>x : Symbol(x, Decl(narrowingDestructuring.ts, 33, 77)) + } +} diff --git a/tests/baselines/reference/narrowingDestructuring.types b/tests/baselines/reference/narrowingDestructuring.types new file mode 100644 index 0000000000000..a942e163da860 --- /dev/null +++ b/tests/baselines/reference/narrowingDestructuring.types @@ -0,0 +1,150 @@ +=== tests/cases/compiler/narrowingDestructuring.ts === +type X = { kind: "a", a: string } | { kind: "b", b: string } +>X : X +>kind : "a" +>a : string +>kind : "b" +>b : string + +function func(value: T) { +>func : (value: T) => void +>value : T + + if (value.kind === "a") { +>value.kind === "a" : boolean +>value.kind : "a" | "b" +>value : X +>kind : "a" | "b" +>"a" : "a" + + value.a; +>value.a : string +>value : { kind: "a"; a: string; } +>a : string + + const { a } = value; +>a : string +>value : { kind: "a"; a: string; } + + } else { + value.b; +>value.b : string +>value : { kind: "b"; b: string; } +>b : string + + const { b } = value; +>b : string +>value : { kind: "b"; b: string; } + } +} + +type Z = { kind: "f", f: { a: number, b: string, c: number } } +>Z : Z +>kind : "f" +>f : { a: number; b: string; c: number; } +>a : number +>b : string +>c : number + + | { kind: "g", g: { a: string, b: number, c: string }}; +>kind : "g" +>g : { a: string; b: number; c: string; } +>a : string +>b : number +>c : string + +function func2(value: T) { +>func2 : (value: T) => void +>value : T + + if (value.kind === "f") { +>value.kind === "f" : boolean +>value.kind : "f" | "g" +>value : Z +>kind : "f" | "g" +>"f" : "f" + + const { f: f1 } = value; +>f : any +>f1 : { a: number; b: string; c: number; } +>value : { kind: "f"; f: { a: number; b: string; c: number; }; } + + const { f: { a, ...spread } } = value; +>f : any +>a : number +>spread : { b: string; c: number; } +>value : { kind: "f"; f: { a: number; b: string; c: number; }; } + + value.f; +>value.f : { a: number; b: string; c: number; } +>value : { kind: "f"; f: { a: number; b: string; c: number; }; } +>f : { a: number; b: string; c: number; } + + } else { + const { g: { c, ...spread } } = value; +>g : any +>c : string +>spread : { a: string; b: number; } +>value : { kind: "g"; g: { a: string; b: number; c: string; }; } + + value.g; +>value.g : { a: string; b: number; c: string; } +>value : { kind: "g"; g: { a: string; b: number; c: string; }; } +>g : { a: string; b: number; c: string; } + } +} + +function func3(t: T) { +>func3 : (t: T) => void +>kind : "a" +>a : string +>kind : "b" +>b : number +>t : T + + if (t.kind === "a") { +>t.kind === "a" : boolean +>t.kind : "a" | "b" +>t : { kind: "a"; a: string; } | { kind: "b"; b: number; } +>kind : "a" | "b" +>"a" : "a" + + const { kind, ...r1 } = t; +>kind : "a" +>r1 : Omit +>t : { kind: "a"; a: string; } + + const r2 = (({ kind, ...rest }) => rest)(t); +>r2 : { a: string; } +>(({ kind, ...rest }) => rest)(t) : { a: string; } +>(({ kind, ...rest }) => rest) : ({ kind, ...rest }: { kind: "a"; a: string; }) => { a: string; } +>({ kind, ...rest }) => rest : ({ kind, ...rest }: { kind: "a"; a: string; }) => { a: string; } +>kind : "a" +>rest : { a: string; } +>rest : { a: string; } +>t : { kind: "a"; a: string; } + } +} + +function farr(x: T) { +>farr : (x: T) => void +>x : T + + const [head, ...tail] = x; +>head : string | number +>tail : (string | number)[] +>x : [number, string, string] | [string, number, number] + + if (x[0] === 'number') { +>x[0] === 'number' : boolean +>x[0] : string | number +>x : [number, string, string] | [string, number, number] +>0 : 0 +>'number' : "number" + + const [head, ...tail] = x; +>head : "number" +>tail : (string | number)[] +>x : [number, string, string] | [string, number, number] + } +} diff --git a/tests/baselines/reference/narrowingRestGenericCall.js b/tests/baselines/reference/narrowingRestGenericCall.js new file mode 100644 index 0000000000000..a180bcb364f1a --- /dev/null +++ b/tests/baselines/reference/narrowingRestGenericCall.js @@ -0,0 +1,34 @@ +//// [narrowingRestGenericCall.ts] +interface Slugs { + foo: string; + bar: string; +} + +function call(obj: T, cb: (val: T) => void) { + cb(obj); +} + +declare let obj: Slugs; +call(obj, ({foo, ...rest}) => { + console.log(rest.bar); +}); + +//// [narrowingRestGenericCall.js] +var __rest = (this && this.__rest) || function (s, e) { + var t = {}; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) + t[p] = s[p]; + if (s != null && typeof Object.getOwnPropertySymbols === "function") + for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { + if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) + t[p[i]] = s[p[i]]; + } + return t; +}; +function call(obj, cb) { + cb(obj); +} +call(obj, function (_a) { + var foo = _a.foo, rest = __rest(_a, ["foo"]); + console.log(rest.bar); +}); diff --git a/tests/baselines/reference/narrowingRestGenericCall.symbols b/tests/baselines/reference/narrowingRestGenericCall.symbols new file mode 100644 index 0000000000000..a128942700bc8 --- /dev/null +++ b/tests/baselines/reference/narrowingRestGenericCall.symbols @@ -0,0 +1,44 @@ +=== tests/cases/compiler/narrowingRestGenericCall.ts === +interface Slugs { +>Slugs : Symbol(Slugs, Decl(narrowingRestGenericCall.ts, 0, 0)) + + foo: string; +>foo : Symbol(Slugs.foo, Decl(narrowingRestGenericCall.ts, 0, 17)) + + bar: string; +>bar : Symbol(Slugs.bar, Decl(narrowingRestGenericCall.ts, 1, 14)) +} + +function call(obj: T, cb: (val: T) => void) { +>call : Symbol(call, Decl(narrowingRestGenericCall.ts, 3, 1)) +>T : Symbol(T, Decl(narrowingRestGenericCall.ts, 5, 14)) +>obj : Symbol(obj, Decl(narrowingRestGenericCall.ts, 5, 32)) +>T : Symbol(T, Decl(narrowingRestGenericCall.ts, 5, 14)) +>cb : Symbol(cb, Decl(narrowingRestGenericCall.ts, 5, 39)) +>val : Symbol(val, Decl(narrowingRestGenericCall.ts, 5, 45)) +>T : Symbol(T, Decl(narrowingRestGenericCall.ts, 5, 14)) + + cb(obj); +>cb : Symbol(cb, Decl(narrowingRestGenericCall.ts, 5, 39)) +>obj : Symbol(obj, Decl(narrowingRestGenericCall.ts, 5, 32)) +} + +declare let obj: Slugs; +>obj : Symbol(obj, Decl(narrowingRestGenericCall.ts, 9, 11)) +>Slugs : Symbol(Slugs, Decl(narrowingRestGenericCall.ts, 0, 0)) + +call(obj, ({foo, ...rest}) => { +>call : Symbol(call, Decl(narrowingRestGenericCall.ts, 3, 1)) +>obj : Symbol(obj, Decl(narrowingRestGenericCall.ts, 9, 11)) +>foo : Symbol(foo, Decl(narrowingRestGenericCall.ts, 10, 12)) +>rest : Symbol(rest, Decl(narrowingRestGenericCall.ts, 10, 16)) + + console.log(rest.bar); +>console.log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>console : Symbol(console, Decl(lib.dom.d.ts, --, --)) +>log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>rest.bar : Symbol(Slugs.bar, Decl(narrowingRestGenericCall.ts, 1, 14)) +>rest : Symbol(rest, Decl(narrowingRestGenericCall.ts, 10, 16)) +>bar : Symbol(Slugs.bar, Decl(narrowingRestGenericCall.ts, 1, 14)) + +}); diff --git a/tests/baselines/reference/narrowingRestGenericCall.types b/tests/baselines/reference/narrowingRestGenericCall.types new file mode 100644 index 0000000000000..a04e883ad9c7d --- /dev/null +++ b/tests/baselines/reference/narrowingRestGenericCall.types @@ -0,0 +1,42 @@ +=== tests/cases/compiler/narrowingRestGenericCall.ts === +interface Slugs { + foo: string; +>foo : string + + bar: string; +>bar : string +} + +function call(obj: T, cb: (val: T) => void) { +>call : (obj: T, cb: (val: T) => void) => void +>obj : T +>cb : (val: T) => void +>val : T + + cb(obj); +>cb(obj) : void +>cb : (val: T) => void +>obj : T +} + +declare let obj: Slugs; +>obj : Slugs + +call(obj, ({foo, ...rest}) => { +>call(obj, ({foo, ...rest}) => { console.log(rest.bar);}) : void +>call : (obj: T, cb: (val: T) => void) => void +>obj : Slugs +>({foo, ...rest}) => { console.log(rest.bar);} : ({ foo, ...rest }: Slugs) => void +>foo : string +>rest : { bar: string; } + + console.log(rest.bar); +>console.log(rest.bar) : void +>console.log : (...data: any[]) => void +>console : Console +>log : (...data: any[]) => void +>rest.bar : string +>rest : { bar: string; } +>bar : string + +}); diff --git a/tests/baselines/reference/narrowingTypeofFunction.js b/tests/baselines/reference/narrowingTypeofFunction.js new file mode 100644 index 0000000000000..4eda1caefd3d7 --- /dev/null +++ b/tests/baselines/reference/narrowingTypeofFunction.js @@ -0,0 +1,51 @@ +//// [narrowingTypeofFunction.ts] +type Meta = { foo: string } +interface F { (): string } + +function f1(a: (F & Meta) | string) { + if (typeof a === "function") { + a; + } + else { + a; + } +} + +function f2(x: (T & F) | T & string) { + if (typeof x === "function") { + x; + } + else { + x; + } +} + +function f3(x: { _foo: number } & number) { + if (typeof x === "function") { + x; + } +} + +//// [narrowingTypeofFunction.js] +"use strict"; +function f1(a) { + if (typeof a === "function") { + a; + } + else { + a; + } +} +function f2(x) { + if (typeof x === "function") { + x; + } + else { + x; + } +} +function f3(x) { + if (typeof x === "function") { + x; + } +} diff --git a/tests/baselines/reference/narrowingTypeofFunction.symbols b/tests/baselines/reference/narrowingTypeofFunction.symbols new file mode 100644 index 0000000000000..21ce3c4435995 --- /dev/null +++ b/tests/baselines/reference/narrowingTypeofFunction.symbols @@ -0,0 +1,58 @@ +=== tests/cases/compiler/narrowingTypeofFunction.ts === +type Meta = { foo: string } +>Meta : Symbol(Meta, Decl(narrowingTypeofFunction.ts, 0, 0)) +>foo : Symbol(foo, Decl(narrowingTypeofFunction.ts, 0, 13)) + +interface F { (): string } +>F : Symbol(F, Decl(narrowingTypeofFunction.ts, 0, 27)) + +function f1(a: (F & Meta) | string) { +>f1 : Symbol(f1, Decl(narrowingTypeofFunction.ts, 1, 26)) +>a : Symbol(a, Decl(narrowingTypeofFunction.ts, 3, 12)) +>F : Symbol(F, Decl(narrowingTypeofFunction.ts, 0, 27)) +>Meta : Symbol(Meta, Decl(narrowingTypeofFunction.ts, 0, 0)) + + if (typeof a === "function") { +>a : Symbol(a, Decl(narrowingTypeofFunction.ts, 3, 12)) + + a; +>a : Symbol(a, Decl(narrowingTypeofFunction.ts, 3, 12)) + } + else { + a; +>a : Symbol(a, Decl(narrowingTypeofFunction.ts, 3, 12)) + } +} + +function f2(x: (T & F) | T & string) { +>f2 : Symbol(f2, Decl(narrowingTypeofFunction.ts, 10, 1)) +>T : Symbol(T, Decl(narrowingTypeofFunction.ts, 12, 12)) +>x : Symbol(x, Decl(narrowingTypeofFunction.ts, 12, 15)) +>T : Symbol(T, Decl(narrowingTypeofFunction.ts, 12, 12)) +>F : Symbol(F, Decl(narrowingTypeofFunction.ts, 0, 27)) +>T : Symbol(T, Decl(narrowingTypeofFunction.ts, 12, 12)) + + if (typeof x === "function") { +>x : Symbol(x, Decl(narrowingTypeofFunction.ts, 12, 15)) + + x; +>x : Symbol(x, Decl(narrowingTypeofFunction.ts, 12, 15)) + } + else { + x; +>x : Symbol(x, Decl(narrowingTypeofFunction.ts, 12, 15)) + } +} + +function f3(x: { _foo: number } & number) { +>f3 : Symbol(f3, Decl(narrowingTypeofFunction.ts, 19, 1)) +>x : Symbol(x, Decl(narrowingTypeofFunction.ts, 21, 12)) +>_foo : Symbol(_foo, Decl(narrowingTypeofFunction.ts, 21, 16)) + + if (typeof x === "function") { +>x : Symbol(x, Decl(narrowingTypeofFunction.ts, 21, 12)) + + x; +>x : Symbol(x, Decl(narrowingTypeofFunction.ts, 21, 12)) + } +} diff --git a/tests/baselines/reference/narrowingTypeofFunction.types b/tests/baselines/reference/narrowingTypeofFunction.types new file mode 100644 index 0000000000000..9342585ddd54e --- /dev/null +++ b/tests/baselines/reference/narrowingTypeofFunction.types @@ -0,0 +1,60 @@ +=== tests/cases/compiler/narrowingTypeofFunction.ts === +type Meta = { foo: string } +>Meta : Meta +>foo : string + +interface F { (): string } + +function f1(a: (F & Meta) | string) { +>f1 : (a: (F & Meta) | string) => void +>a : string | (F & Meta) + + if (typeof a === "function") { +>typeof a === "function" : boolean +>typeof a : "string" | "number" | "bigint" | "boolean" | "symbol" | "undefined" | "object" | "function" +>a : string | (F & Meta) +>"function" : "function" + + a; +>a : F & Meta + } + else { + a; +>a : string + } +} + +function f2(x: (T & F) | T & string) { +>f2 : (x: (T & F) | (T & string)) => void +>x : (T & F) | (T & string) + + if (typeof x === "function") { +>typeof x === "function" : boolean +>typeof x : "string" | "number" | "bigint" | "boolean" | "symbol" | "undefined" | "object" | "function" +>x : (T & F) | (T & string) +>"function" : "function" + + x; +>x : (T & F) | (T & string) + } + else { + x; +>x : T & string + } +} + +function f3(x: { _foo: number } & number) { +>f3 : (x: { _foo: number;} & number) => void +>x : { _foo: number; } & number +>_foo : number + + if (typeof x === "function") { +>typeof x === "function" : boolean +>typeof x : "string" | "number" | "bigint" | "boolean" | "symbol" | "undefined" | "object" | "function" +>x : { _foo: number; } & number +>"function" : "function" + + x; +>x : never + } +} diff --git a/tests/baselines/reference/narrowingTypeofObject.js b/tests/baselines/reference/narrowingTypeofObject.js new file mode 100644 index 0000000000000..e6c4df22a5d99 --- /dev/null +++ b/tests/baselines/reference/narrowingTypeofObject.js @@ -0,0 +1,27 @@ +//// [narrowingTypeofObject.ts] +interface F { (): string } + +function test(x: number & { _foo: string }) { + if (typeof x === 'object') { + x; + } +} + +function f1(x: F & { foo: number }) { + if (typeof x !== "object") { + x; + } +} + +//// [narrowingTypeofObject.js] +"use strict"; +function test(x) { + if (typeof x === 'object') { + x; + } +} +function f1(x) { + if (typeof x !== "object") { + x; + } +} diff --git a/tests/baselines/reference/narrowingTypeofObject.symbols b/tests/baselines/reference/narrowingTypeofObject.symbols new file mode 100644 index 0000000000000..84682e68277e6 --- /dev/null +++ b/tests/baselines/reference/narrowingTypeofObject.symbols @@ -0,0 +1,30 @@ +=== tests/cases/compiler/narrowingTypeofObject.ts === +interface F { (): string } +>F : Symbol(F, Decl(narrowingTypeofObject.ts, 0, 0)) + +function test(x: number & { _foo: string }) { +>test : Symbol(test, Decl(narrowingTypeofObject.ts, 0, 26)) +>x : Symbol(x, Decl(narrowingTypeofObject.ts, 2, 14)) +>_foo : Symbol(_foo, Decl(narrowingTypeofObject.ts, 2, 27)) + + if (typeof x === 'object') { +>x : Symbol(x, Decl(narrowingTypeofObject.ts, 2, 14)) + + x; +>x : Symbol(x, Decl(narrowingTypeofObject.ts, 2, 14)) + } +} + +function f1(x: F & { foo: number }) { +>f1 : Symbol(f1, Decl(narrowingTypeofObject.ts, 6, 1)) +>x : Symbol(x, Decl(narrowingTypeofObject.ts, 8, 12)) +>F : Symbol(F, Decl(narrowingTypeofObject.ts, 0, 0)) +>foo : Symbol(foo, Decl(narrowingTypeofObject.ts, 8, 20)) + + if (typeof x !== "object") { +>x : Symbol(x, Decl(narrowingTypeofObject.ts, 8, 12)) + + x; +>x : Symbol(x, Decl(narrowingTypeofObject.ts, 8, 12)) + } +} diff --git a/tests/baselines/reference/narrowingTypeofObject.types b/tests/baselines/reference/narrowingTypeofObject.types new file mode 100644 index 0000000000000..16284302c3bd5 --- /dev/null +++ b/tests/baselines/reference/narrowingTypeofObject.types @@ -0,0 +1,34 @@ +=== tests/cases/compiler/narrowingTypeofObject.ts === +interface F { (): string } + +function test(x: number & { _foo: string }) { +>test : (x: number & { _foo: string;}) => void +>x : number & { _foo: string; } +>_foo : string + + if (typeof x === 'object') { +>typeof x === 'object' : boolean +>typeof x : "string" | "number" | "bigint" | "boolean" | "symbol" | "undefined" | "object" | "function" +>x : number & { _foo: string; } +>'object' : "object" + + x; +>x : never + } +} + +function f1(x: F & { foo: number }) { +>f1 : (x: F & { foo: number;}) => void +>x : F & { foo: number; } +>foo : number + + if (typeof x !== "object") { +>typeof x !== "object" : boolean +>typeof x : "string" | "number" | "bigint" | "boolean" | "symbol" | "undefined" | "object" | "function" +>x : F & { foo: number; } +>"object" : "object" + + x; +>x : F & { foo: number; } + } +} diff --git a/tests/baselines/reference/nestedClassDeclaration.errors.txt b/tests/baselines/reference/nestedClassDeclaration.errors.txt index 5540ee024378d..f897c38d68191 100644 --- a/tests/baselines/reference/nestedClassDeclaration.errors.txt +++ b/tests/baselines/reference/nestedClassDeclaration.errors.txt @@ -32,7 +32,6 @@ tests/cases/conformance/classes/nestedClassDeclaration.ts(17,1): error TS1128: D !!! error TS2304: Cannot find name 'C4'. ~ !!! error TS1005: ',' expected. -!!! related TS1007 tests/cases/conformance/classes/nestedClassDeclaration.ts:14:9: The parser expected to find a '}' to match the '{' token here. } } ~ diff --git a/tests/baselines/reference/neverTypeErrors1.errors.txt b/tests/baselines/reference/neverTypeErrors1.errors.txt index d5299d0b30080..040ddfbf2ec67 100644 --- a/tests/baselines/reference/neverTypeErrors1.errors.txt +++ b/tests/baselines/reference/neverTypeErrors1.errors.txt @@ -63,4 +63,26 @@ tests/cases/conformance/types/never/neverTypeErrors1.ts(24,17): error TS2407: Th for (const n in f4()) {} ~~~~ !!! error TS2407: The right-hand side of a 'for...in' statement must be of type 'any', an object type or a type parameter, but here has type 'never'. + + function f5() { + let x: never[] = []; // Ok + } + + // Repro from #46032 + + interface A { + foo: "a"; + } + + interface B { + foo: "b"; + } + + type Union = A & B; + + function func(): { value: Union[] } { + return { + value: [], + }; + } \ No newline at end of file diff --git a/tests/baselines/reference/neverTypeErrors1.js b/tests/baselines/reference/neverTypeErrors1.js index 751975019ba81..e28300bae887c 100644 --- a/tests/baselines/reference/neverTypeErrors1.js +++ b/tests/baselines/reference/neverTypeErrors1.js @@ -23,6 +23,28 @@ function f4(): never { for (const n of f4()) {} for (const n in f4()) {} + +function f5() { + let x: never[] = []; // Ok +} + +// Repro from #46032 + +interface A { + foo: "a"; +} + +interface B { + foo: "b"; +} + +type Union = A & B; + +function func(): { value: Union[] } { + return { + value: [], + }; +} //// [neverTypeErrors1.js] @@ -48,3 +70,11 @@ for (var _i = 0, _a = f4(); _i < _a.length; _i++) { var n = _a[_i]; } for (var n in f4()) { } +function f5() { + var x = []; // Ok +} +function func() { + return { + value: [] + }; +} diff --git a/tests/baselines/reference/neverTypeErrors1.symbols b/tests/baselines/reference/neverTypeErrors1.symbols index 6c545be1d61b6..1aa397be79faa 100644 --- a/tests/baselines/reference/neverTypeErrors1.symbols +++ b/tests/baselines/reference/neverTypeErrors1.symbols @@ -52,3 +52,43 @@ for (const n in f4()) {} >n : Symbol(n, Decl(neverTypeErrors1.ts, 23, 10)) >f4 : Symbol(f4, Decl(neverTypeErrors1.ts, 17, 1)) +function f5() { +>f5 : Symbol(f5, Decl(neverTypeErrors1.ts, 23, 24)) + + let x: never[] = []; // Ok +>x : Symbol(x, Decl(neverTypeErrors1.ts, 26, 7)) +} + +// Repro from #46032 + +interface A { +>A : Symbol(A, Decl(neverTypeErrors1.ts, 27, 1)) + + foo: "a"; +>foo : Symbol(A.foo, Decl(neverTypeErrors1.ts, 31, 13)) +} + +interface B { +>B : Symbol(B, Decl(neverTypeErrors1.ts, 33, 1)) + + foo: "b"; +>foo : Symbol(B.foo, Decl(neverTypeErrors1.ts, 35, 13)) +} + +type Union = A & B; +>Union : Symbol(Union, Decl(neverTypeErrors1.ts, 37, 1)) +>A : Symbol(A, Decl(neverTypeErrors1.ts, 27, 1)) +>B : Symbol(B, Decl(neverTypeErrors1.ts, 33, 1)) + +function func(): { value: Union[] } { +>func : Symbol(func, Decl(neverTypeErrors1.ts, 39, 19)) +>value : Symbol(value, Decl(neverTypeErrors1.ts, 41, 18)) +>Union : Symbol(Union, Decl(neverTypeErrors1.ts, 37, 1)) + + return { + value: [], +>value : Symbol(value, Decl(neverTypeErrors1.ts, 42, 12)) + + }; +} + diff --git a/tests/baselines/reference/neverTypeErrors1.types b/tests/baselines/reference/neverTypeErrors1.types index 8fab8212f667b..f577b4457e1f0 100644 --- a/tests/baselines/reference/neverTypeErrors1.types +++ b/tests/baselines/reference/neverTypeErrors1.types @@ -67,3 +67,40 @@ for (const n in f4()) {} >f4() : never >f4 : () => never +function f5() { +>f5 : () => void + + let x: never[] = []; // Ok +>x : never[] +>[] : undefined[] +} + +// Repro from #46032 + +interface A { + foo: "a"; +>foo : "a" +} + +interface B { + foo: "b"; +>foo : "b" +} + +type Union = A & B; +>Union : never + +function func(): { value: Union[] } { +>func : () => { value: Union[];} +>value : never[] + + return { +>{ value: [], } : { value: undefined[]; } + + value: [], +>value : undefined[] +>[] : undefined[] + + }; +} + diff --git a/tests/baselines/reference/neverTypeErrors2.errors.txt b/tests/baselines/reference/neverTypeErrors2.errors.txt index 0cf3b6fbf0033..ad1dcc18d806a 100644 --- a/tests/baselines/reference/neverTypeErrors2.errors.txt +++ b/tests/baselines/reference/neverTypeErrors2.errors.txt @@ -63,4 +63,26 @@ tests/cases/conformance/types/never/neverTypeErrors2.ts(24,17): error TS2407: Th for (const n in f4()) {} ~~~~ !!! error TS2407: The right-hand side of a 'for...in' statement must be of type 'any', an object type or a type parameter, but here has type 'never'. + + function f5() { + let x: never[] = []; // Ok + } + + // Repro from #46032 + + interface A { + foo: "a"; + } + + interface B { + foo: "b"; + } + + type Union = A & B; + + function func(): { value: Union[] } { + return { + value: [], + }; + } \ No newline at end of file diff --git a/tests/baselines/reference/neverTypeErrors2.js b/tests/baselines/reference/neverTypeErrors2.js index 17a8a9eba9837..60f4e6f122afe 100644 --- a/tests/baselines/reference/neverTypeErrors2.js +++ b/tests/baselines/reference/neverTypeErrors2.js @@ -23,6 +23,28 @@ function f4(): never { for (const n of f4()) {} for (const n in f4()) {} + +function f5() { + let x: never[] = []; // Ok +} + +// Repro from #46032 + +interface A { + foo: "a"; +} + +interface B { + foo: "b"; +} + +type Union = A & B; + +function func(): { value: Union[] } { + return { + value: [], + }; +} //// [neverTypeErrors2.js] @@ -48,3 +70,11 @@ for (var _i = 0, _a = f4(); _i < _a.length; _i++) { var n = _a[_i]; } for (var n in f4()) { } +function f5() { + var x = []; // Ok +} +function func() { + return { + value: [] + }; +} diff --git a/tests/baselines/reference/neverTypeErrors2.symbols b/tests/baselines/reference/neverTypeErrors2.symbols index 3a450b60efd0f..5636d8b8dfc72 100644 --- a/tests/baselines/reference/neverTypeErrors2.symbols +++ b/tests/baselines/reference/neverTypeErrors2.symbols @@ -52,3 +52,43 @@ for (const n in f4()) {} >n : Symbol(n, Decl(neverTypeErrors2.ts, 23, 10)) >f4 : Symbol(f4, Decl(neverTypeErrors2.ts, 17, 1)) +function f5() { +>f5 : Symbol(f5, Decl(neverTypeErrors2.ts, 23, 24)) + + let x: never[] = []; // Ok +>x : Symbol(x, Decl(neverTypeErrors2.ts, 26, 7)) +} + +// Repro from #46032 + +interface A { +>A : Symbol(A, Decl(neverTypeErrors2.ts, 27, 1)) + + foo: "a"; +>foo : Symbol(A.foo, Decl(neverTypeErrors2.ts, 31, 13)) +} + +interface B { +>B : Symbol(B, Decl(neverTypeErrors2.ts, 33, 1)) + + foo: "b"; +>foo : Symbol(B.foo, Decl(neverTypeErrors2.ts, 35, 13)) +} + +type Union = A & B; +>Union : Symbol(Union, Decl(neverTypeErrors2.ts, 37, 1)) +>A : Symbol(A, Decl(neverTypeErrors2.ts, 27, 1)) +>B : Symbol(B, Decl(neverTypeErrors2.ts, 33, 1)) + +function func(): { value: Union[] } { +>func : Symbol(func, Decl(neverTypeErrors2.ts, 39, 19)) +>value : Symbol(value, Decl(neverTypeErrors2.ts, 41, 18)) +>Union : Symbol(Union, Decl(neverTypeErrors2.ts, 37, 1)) + + return { + value: [], +>value : Symbol(value, Decl(neverTypeErrors2.ts, 42, 12)) + + }; +} + diff --git a/tests/baselines/reference/neverTypeErrors2.types b/tests/baselines/reference/neverTypeErrors2.types index 5bfae1f5201dc..685638f03a41c 100644 --- a/tests/baselines/reference/neverTypeErrors2.types +++ b/tests/baselines/reference/neverTypeErrors2.types @@ -67,3 +67,40 @@ for (const n in f4()) {} >f4() : never >f4 : () => never +function f5() { +>f5 : () => void + + let x: never[] = []; // Ok +>x : never[] +>[] : never[] +} + +// Repro from #46032 + +interface A { + foo: "a"; +>foo : "a" +} + +interface B { + foo: "b"; +>foo : "b" +} + +type Union = A & B; +>Union : never + +function func(): { value: Union[] } { +>func : () => { value: Union[];} +>value : never[] + + return { +>{ value: [], } : { value: never[]; } + + value: [], +>value : never[] +>[] : never[] + + }; +} + diff --git a/tests/baselines/reference/newMap.types b/tests/baselines/reference/newMap.types index c00ff104407c9..ee684b26e002b 100644 --- a/tests/baselines/reference/newMap.types +++ b/tests/baselines/reference/newMap.types @@ -1,5 +1,5 @@ === tests/cases/compiler/newMap.ts === new Map(); ->new Map() : Map +>new Map() : Map >Map : MapConstructor diff --git a/tests/baselines/reference/newOperatorErrorCases.errors.txt b/tests/baselines/reference/newOperatorErrorCases.errors.txt index 168fb886f61bf..faa840f4ee012 100644 --- a/tests/baselines/reference/newOperatorErrorCases.errors.txt +++ b/tests/baselines/reference/newOperatorErrorCases.errors.txt @@ -1,10 +1,9 @@ tests/cases/conformance/expressions/newOperator/newOperatorErrorCases.ts(26,16): error TS1005: ',' expected. tests/cases/conformance/expressions/newOperator/newOperatorErrorCases.ts(26,16): error TS2695: Left side of comma operator is unused and has no side effects. -tests/cases/conformance/expressions/newOperator/newOperatorErrorCases.ts(31,9): error TS1384: A 'new' expression with type arguments must always be followed by a parenthesized argument list. tests/cases/conformance/expressions/newOperator/newOperatorErrorCases.ts(36,9): error TS2350: Only a void function can be called with the 'new' keyword. -==== tests/cases/conformance/expressions/newOperator/newOperatorErrorCases.ts (4 errors) ==== +==== tests/cases/conformance/expressions/newOperator/newOperatorErrorCases.ts (3 errors) ==== class C0 { } @@ -39,9 +38,7 @@ tests/cases/conformance/expressions/newOperator/newOperatorErrorCases.ts(36,9): // Generic construct expression with no parentheses var c1 = new T; var c1: T<{}>; - var c2 = new T; // Parse error - ~~~~~~~~~~~~~~ -!!! error TS1384: A 'new' expression with type arguments must always be followed by a parenthesized argument list. + var c2 = new T; // Ok // Construct expression of non-void returning function diff --git a/tests/baselines/reference/newOperatorErrorCases.js b/tests/baselines/reference/newOperatorErrorCases.js index e9292cd20adfa..810503f9f3d16 100644 --- a/tests/baselines/reference/newOperatorErrorCases.js +++ b/tests/baselines/reference/newOperatorErrorCases.js @@ -29,7 +29,7 @@ var b = new C0 32, ''; // Parse error // Generic construct expression with no parentheses var c1 = new T; var c1: T<{}>; -var c2 = new T; // Parse error +var c2 = new T; // Ok // Construct expression of non-void returning function @@ -62,7 +62,7 @@ var b = new C0; // Generic construct expression with no parentheses var c1 = new T; var c1; -var c2 = new T; // Parse error +var c2 = new T; // Ok // Construct expression of non-void returning function function fnNumber() { return 32; } var s = new fnNumber(); // Error diff --git a/tests/baselines/reference/newOperatorErrorCases.symbols b/tests/baselines/reference/newOperatorErrorCases.symbols index 2efbc98fe031c..584b62f0c8567 100644 --- a/tests/baselines/reference/newOperatorErrorCases.symbols +++ b/tests/baselines/reference/newOperatorErrorCases.symbols @@ -58,7 +58,7 @@ var c1: T<{}>; >c1 : Symbol(c1, Decl(newOperatorErrorCases.ts, 28, 3), Decl(newOperatorErrorCases.ts, 29, 3)) >T : Symbol(T, Decl(newOperatorErrorCases.ts, 5, 1)) -var c2 = new T; // Parse error +var c2 = new T; // Ok >c2 : Symbol(c2, Decl(newOperatorErrorCases.ts, 30, 3)) >T : Symbol(T, Decl(newOperatorErrorCases.ts, 5, 1)) diff --git a/tests/baselines/reference/newOperatorErrorCases.types b/tests/baselines/reference/newOperatorErrorCases.types index 0f5cb3622abcb..655baaffd2efd 100644 --- a/tests/baselines/reference/newOperatorErrorCases.types +++ b/tests/baselines/reference/newOperatorErrorCases.types @@ -56,7 +56,7 @@ var c1 = new T; var c1: T<{}>; >c1 : T -var c2 = new T; // Parse error +var c2 = new T; // Ok >c2 : T >new T : T >T : typeof T diff --git a/tests/baselines/reference/noExcessiveStackDepthError.errors.txt b/tests/baselines/reference/noExcessiveStackDepthError.errors.txt new file mode 100644 index 0000000000000..ae5f77e60dc91 --- /dev/null +++ b/tests/baselines/reference/noExcessiveStackDepthError.errors.txt @@ -0,0 +1,22 @@ +tests/cases/compiler/noExcessiveStackDepthError.ts(13,9): error TS2403: Subsequent variable declarations must have the same type. Variable 'x' must be of type 'FindConditions', but here has type 'FindConditions'. + + +==== tests/cases/compiler/noExcessiveStackDepthError.ts (1 errors) ==== + // Repro from #46631 + + interface FindOperator { + foo: T; + } + + type FindConditions = { + [P in keyof T]?: FindConditions | FindOperator>; + }; + + function foo() { + var x: FindConditions; + var x: FindConditions; // Excessive stack depth error not expected here + ~ +!!! error TS2403: Subsequent variable declarations must have the same type. Variable 'x' must be of type 'FindConditions', but here has type 'FindConditions'. +!!! related TS6203 tests/cases/compiler/noExcessiveStackDepthError.ts:12:9: 'x' was also declared here. + } + \ No newline at end of file diff --git a/tests/baselines/reference/noExcessiveStackDepthError.js b/tests/baselines/reference/noExcessiveStackDepthError.js new file mode 100644 index 0000000000000..97e9cb944648b --- /dev/null +++ b/tests/baselines/reference/noExcessiveStackDepthError.js @@ -0,0 +1,34 @@ +//// [noExcessiveStackDepthError.ts] +// Repro from #46631 + +interface FindOperator { + foo: T; +} + +type FindConditions = { + [P in keyof T]?: FindConditions | FindOperator>; +}; + +function foo() { + var x: FindConditions; + var x: FindConditions; // Excessive stack depth error not expected here +} + + +//// [noExcessiveStackDepthError.js] +"use strict"; +// Repro from #46631 +function foo() { + var x; + var x; // Excessive stack depth error not expected here +} + + +//// [noExcessiveStackDepthError.d.ts] +interface FindOperator { + foo: T; +} +declare type FindConditions = { + [P in keyof T]?: FindConditions | FindOperator>; +}; +declare function foo(): void; diff --git a/tests/baselines/reference/noExcessiveStackDepthError.symbols b/tests/baselines/reference/noExcessiveStackDepthError.symbols new file mode 100644 index 0000000000000..441d59cac7998 --- /dev/null +++ b/tests/baselines/reference/noExcessiveStackDepthError.symbols @@ -0,0 +1,43 @@ +=== tests/cases/compiler/noExcessiveStackDepthError.ts === +// Repro from #46631 + +interface FindOperator { +>FindOperator : Symbol(FindOperator, Decl(noExcessiveStackDepthError.ts, 0, 0)) +>T : Symbol(T, Decl(noExcessiveStackDepthError.ts, 2, 23)) + + foo: T; +>foo : Symbol(FindOperator.foo, Decl(noExcessiveStackDepthError.ts, 2, 27)) +>T : Symbol(T, Decl(noExcessiveStackDepthError.ts, 2, 23)) +} + +type FindConditions = { +>FindConditions : Symbol(FindConditions, Decl(noExcessiveStackDepthError.ts, 4, 1)) +>T : Symbol(T, Decl(noExcessiveStackDepthError.ts, 6, 20)) + + [P in keyof T]?: FindConditions | FindOperator>; +>P : Symbol(P, Decl(noExcessiveStackDepthError.ts, 7, 5)) +>T : Symbol(T, Decl(noExcessiveStackDepthError.ts, 6, 20)) +>FindConditions : Symbol(FindConditions, Decl(noExcessiveStackDepthError.ts, 4, 1)) +>T : Symbol(T, Decl(noExcessiveStackDepthError.ts, 6, 20)) +>P : Symbol(P, Decl(noExcessiveStackDepthError.ts, 7, 5)) +>FindOperator : Symbol(FindOperator, Decl(noExcessiveStackDepthError.ts, 0, 0)) +>FindConditions : Symbol(FindConditions, Decl(noExcessiveStackDepthError.ts, 4, 1)) +>T : Symbol(T, Decl(noExcessiveStackDepthError.ts, 6, 20)) +>P : Symbol(P, Decl(noExcessiveStackDepthError.ts, 7, 5)) + +}; + +function foo() { +>foo : Symbol(foo, Decl(noExcessiveStackDepthError.ts, 8, 2)) +>Entity : Symbol(Entity, Decl(noExcessiveStackDepthError.ts, 10, 13)) + + var x: FindConditions; +>x : Symbol(x, Decl(noExcessiveStackDepthError.ts, 11, 7), Decl(noExcessiveStackDepthError.ts, 12, 7)) +>FindConditions : Symbol(FindConditions, Decl(noExcessiveStackDepthError.ts, 4, 1)) + + var x: FindConditions; // Excessive stack depth error not expected here +>x : Symbol(x, Decl(noExcessiveStackDepthError.ts, 11, 7), Decl(noExcessiveStackDepthError.ts, 12, 7)) +>FindConditions : Symbol(FindConditions, Decl(noExcessiveStackDepthError.ts, 4, 1)) +>Entity : Symbol(Entity, Decl(noExcessiveStackDepthError.ts, 10, 13)) +} + diff --git a/tests/baselines/reference/noExcessiveStackDepthError.types b/tests/baselines/reference/noExcessiveStackDepthError.types new file mode 100644 index 0000000000000..b468f6dad17e1 --- /dev/null +++ b/tests/baselines/reference/noExcessiveStackDepthError.types @@ -0,0 +1,24 @@ +=== tests/cases/compiler/noExcessiveStackDepthError.ts === +// Repro from #46631 + +interface FindOperator { + foo: T; +>foo : T +} + +type FindConditions = { +>FindConditions : FindConditions + + [P in keyof T]?: FindConditions | FindOperator>; +}; + +function foo() { +>foo : () => void + + var x: FindConditions; +>x : FindConditions + + var x: FindConditions; // Excessive stack depth error not expected here +>x : FindConditions +} + diff --git a/tests/baselines/reference/noImplicitAnyNamelessParameter.errors.txt b/tests/baselines/reference/noImplicitAnyNamelessParameter.errors.txt index 9dc95461d63c1..c93dd533a1ef5 100644 --- a/tests/baselines/reference/noImplicitAnyNamelessParameter.errors.txt +++ b/tests/baselines/reference/noImplicitAnyNamelessParameter.errors.txt @@ -1,26 +1,30 @@ -tests/cases/compiler/noImplicitAnyNamelessParameter.ts(2,17): error TS7051: Parameter has a name but no type. Did you mean 'arg0: string'? -tests/cases/compiler/noImplicitAnyNamelessParameter.ts(2,25): error TS7051: Parameter has a name but no type. Did you mean 'arg1: C'? -tests/cases/compiler/noImplicitAnyNamelessParameter.ts(3,19): error TS7051: Parameter has a name but no type. Did you mean 'arg0: C'? -tests/cases/compiler/noImplicitAnyNamelessParameter.ts(3,22): error TS7051: Parameter has a name but no type. Did you mean 'arg1: number'? -tests/cases/compiler/noImplicitAnyNamelessParameter.ts(4,20): error TS7051: Parameter has a name but no type. Did you mean 'arg0: boolean'? -tests/cases/compiler/noImplicitAnyNamelessParameter.ts(4,29): error TS7051: Parameter has a name but no type. Did you mean 'arg1: C'? -tests/cases/compiler/noImplicitAnyNamelessParameter.ts(4,32): error TS7051: Parameter has a name but no type. Did you mean 'arg2: object'? -tests/cases/compiler/noImplicitAnyNamelessParameter.ts(4,40): error TS7051: Parameter has a name but no type. Did you mean 'arg3: undefined'? +tests/cases/compiler/noImplicitAnyNamelessParameter.ts(2,20): error TS7051: Parameter has a name but no type. Did you mean 'arg0: string[]'? +tests/cases/compiler/noImplicitAnyNamelessParameter.ts(3,17): error TS7051: Parameter has a name but no type. Did you mean 'arg0: string'? +tests/cases/compiler/noImplicitAnyNamelessParameter.ts(3,25): error TS7051: Parameter has a name but no type. Did you mean 'arg1: C'? +tests/cases/compiler/noImplicitAnyNamelessParameter.ts(4,19): error TS7051: Parameter has a name but no type. Did you mean 'arg0: C'? +tests/cases/compiler/noImplicitAnyNamelessParameter.ts(4,22): error TS7051: Parameter has a name but no type. Did you mean 'arg1: number'? +tests/cases/compiler/noImplicitAnyNamelessParameter.ts(5,20): error TS7051: Parameter has a name but no type. Did you mean 'arg0: boolean'? +tests/cases/compiler/noImplicitAnyNamelessParameter.ts(5,29): error TS7051: Parameter has a name but no type. Did you mean 'arg1: C'? +tests/cases/compiler/noImplicitAnyNamelessParameter.ts(5,32): error TS7051: Parameter has a name but no type. Did you mean 'arg2: object'? +tests/cases/compiler/noImplicitAnyNamelessParameter.ts(5,40): error TS7051: Parameter has a name but no type. Did you mean 'arg3: undefined'? -==== tests/cases/compiler/noImplicitAnyNamelessParameter.ts (8 errors) ==== +==== tests/cases/compiler/noImplicitAnyNamelessParameter.ts (9 errors) ==== class C { } - declare var x: (string, C) => void; + declare var a: { m(...string): void } + ~~~~~~~~~ +!!! error TS7051: Parameter has a name but no type. Did you mean 'arg0: string[]'? + declare var b: (string, C) => void; ~~~~~~ !!! error TS7051: Parameter has a name but no type. Did you mean 'arg0: string'? ~ !!! error TS7051: Parameter has a name but no type. Did you mean 'arg1: C'? - declare var y: { (C, number): void }; + declare var c: { (C, number): void }; ~ !!! error TS7051: Parameter has a name but no type. Did you mean 'arg0: C'? ~~~~~~ !!! error TS7051: Parameter has a name but no type. Did you mean 'arg1: number'? - declare var z: { m(boolean, C, object, undefined): void } + declare var d: { m(boolean, C, object, undefined): void } ~~~~~~~ !!! error TS7051: Parameter has a name but no type. Did you mean 'arg0: boolean'? ~ diff --git a/tests/baselines/reference/noImplicitAnyNamelessParameter.js b/tests/baselines/reference/noImplicitAnyNamelessParameter.js index 39d7e644578b3..5fabc25b94043 100644 --- a/tests/baselines/reference/noImplicitAnyNamelessParameter.js +++ b/tests/baselines/reference/noImplicitAnyNamelessParameter.js @@ -1,8 +1,9 @@ //// [noImplicitAnyNamelessParameter.ts] class C { } -declare var x: (string, C) => void; -declare var y: { (C, number): void }; -declare var z: { m(boolean, C, object, undefined): void } +declare var a: { m(...string): void } +declare var b: (string, C) => void; +declare var c: { (C, number): void }; +declare var d: { m(boolean, C, object, undefined): void } // note: null and void do not parse correctly without a preceding parameter name diff --git a/tests/baselines/reference/noImplicitAnyNamelessParameter.symbols b/tests/baselines/reference/noImplicitAnyNamelessParameter.symbols index 2a22f5389d6bb..1662ce08e4693 100644 --- a/tests/baselines/reference/noImplicitAnyNamelessParameter.symbols +++ b/tests/baselines/reference/noImplicitAnyNamelessParameter.symbols @@ -2,23 +2,28 @@ class C { } >C : Symbol(C, Decl(noImplicitAnyNamelessParameter.ts, 0, 0)) -declare var x: (string, C) => void; ->x : Symbol(x, Decl(noImplicitAnyNamelessParameter.ts, 1, 11)) ->string : Symbol(string, Decl(noImplicitAnyNamelessParameter.ts, 1, 16)) ->C : Symbol(C, Decl(noImplicitAnyNamelessParameter.ts, 1, 23)) +declare var a: { m(...string): void } +>a : Symbol(a, Decl(noImplicitAnyNamelessParameter.ts, 1, 11)) +>m : Symbol(m, Decl(noImplicitAnyNamelessParameter.ts, 1, 16)) +>string : Symbol(string, Decl(noImplicitAnyNamelessParameter.ts, 1, 19)) -declare var y: { (C, number): void }; ->y : Symbol(y, Decl(noImplicitAnyNamelessParameter.ts, 2, 11)) ->C : Symbol(C, Decl(noImplicitAnyNamelessParameter.ts, 2, 18)) ->number : Symbol(number, Decl(noImplicitAnyNamelessParameter.ts, 2, 20)) +declare var b: (string, C) => void; +>b : Symbol(b, Decl(noImplicitAnyNamelessParameter.ts, 2, 11)) +>string : Symbol(string, Decl(noImplicitAnyNamelessParameter.ts, 2, 16)) +>C : Symbol(C, Decl(noImplicitAnyNamelessParameter.ts, 2, 23)) -declare var z: { m(boolean, C, object, undefined): void } ->z : Symbol(z, Decl(noImplicitAnyNamelessParameter.ts, 3, 11)) ->m : Symbol(m, Decl(noImplicitAnyNamelessParameter.ts, 3, 16)) ->boolean : Symbol(boolean, Decl(noImplicitAnyNamelessParameter.ts, 3, 19)) ->C : Symbol(C, Decl(noImplicitAnyNamelessParameter.ts, 3, 27)) ->object : Symbol(object, Decl(noImplicitAnyNamelessParameter.ts, 3, 30)) ->undefined : Symbol(undefined, Decl(noImplicitAnyNamelessParameter.ts, 3, 38)) +declare var c: { (C, number): void }; +>c : Symbol(c, Decl(noImplicitAnyNamelessParameter.ts, 3, 11)) +>C : Symbol(C, Decl(noImplicitAnyNamelessParameter.ts, 3, 18)) +>number : Symbol(number, Decl(noImplicitAnyNamelessParameter.ts, 3, 20)) + +declare var d: { m(boolean, C, object, undefined): void } +>d : Symbol(d, Decl(noImplicitAnyNamelessParameter.ts, 4, 11)) +>m : Symbol(m, Decl(noImplicitAnyNamelessParameter.ts, 4, 16)) +>boolean : Symbol(boolean, Decl(noImplicitAnyNamelessParameter.ts, 4, 19)) +>C : Symbol(C, Decl(noImplicitAnyNamelessParameter.ts, 4, 27)) +>object : Symbol(object, Decl(noImplicitAnyNamelessParameter.ts, 4, 30)) +>undefined : Symbol(undefined, Decl(noImplicitAnyNamelessParameter.ts, 4, 38)) // note: null and void do not parse correctly without a preceding parameter name diff --git a/tests/baselines/reference/noImplicitAnyNamelessParameter.types b/tests/baselines/reference/noImplicitAnyNamelessParameter.types index 7ab5cdcc4bdb7..bd274700b7e60 100644 --- a/tests/baselines/reference/noImplicitAnyNamelessParameter.types +++ b/tests/baselines/reference/noImplicitAnyNamelessParameter.types @@ -2,18 +2,23 @@ class C { } >C : C -declare var x: (string, C) => void; ->x : (string: any, C: any) => void +declare var a: { m(...string): void } +>a : { m(...string: any[]): void; } +>m : (...string: any[]) => void +>string : any[] + +declare var b: (string, C) => void; +>b : (string: any, C: any) => void >string : any >C : any -declare var y: { (C, number): void }; ->y : (C: any, number: any) => void +declare var c: { (C, number): void }; +>c : (C: any, number: any) => void >C : any >number : any -declare var z: { m(boolean, C, object, undefined): void } ->z : { m(boolean: any, C: any, object: any, undefined: any): void; } +declare var d: { m(boolean, C, object, undefined): void } +>d : { m(boolean: any, C: any, object: any, undefined: any): void; } >m : (boolean: any, C: any, object: any, undefined: any) => void >boolean : any >C : any diff --git a/tests/baselines/reference/noImplicitSymbolToString.errors.txt b/tests/baselines/reference/noImplicitSymbolToString.errors.txt index cb664d9a8b93e..b90cf982dd398 100644 --- a/tests/baselines/reference/noImplicitSymbolToString.errors.txt +++ b/tests/baselines/reference/noImplicitSymbolToString.errors.txt @@ -3,9 +3,19 @@ tests/cases/compiler/noImplicitSymbolToString.ts(7,30): error TS2469: The '+' op tests/cases/compiler/noImplicitSymbolToString.ts(8,8): error TS2469: The '+=' operator cannot be applied to type 'symbol'. tests/cases/compiler/noImplicitSymbolToString.ts(13,47): error TS2731: Implicit conversion of a 'symbol' to a 'string' will fail at runtime. Consider wrapping this expression in 'String(...)'. tests/cases/compiler/noImplicitSymbolToString.ts(13,90): error TS2731: Implicit conversion of a 'symbol' to a 'string' will fail at runtime. Consider wrapping this expression in 'String(...)'. +tests/cases/compiler/noImplicitSymbolToString.ts(21,15): error TS2731: Implicit conversion of a 'symbol' to a 'string' will fail at runtime. Consider wrapping this expression in 'String(...)'. +tests/cases/compiler/noImplicitSymbolToString.ts(26,8): error TS2731: Implicit conversion of a 'symbol' to a 'string' will fail at runtime. Consider wrapping this expression in 'String(...)'. +tests/cases/compiler/noImplicitSymbolToString.ts(27,5): error TS2469: The '+' operator cannot be applied to type 'symbol'. +tests/cases/compiler/noImplicitSymbolToString.ts(28,6): error TS2469: The '+' operator cannot be applied to type 'symbol'. +tests/cases/compiler/noImplicitSymbolToString.ts(31,8): error TS2731: Implicit conversion of a 'symbol' to a 'string' will fail at runtime. Consider wrapping this expression in 'String(...)'. +tests/cases/compiler/noImplicitSymbolToString.ts(32,5): error TS2469: The '+' operator cannot be applied to type 'symbol'. +tests/cases/compiler/noImplicitSymbolToString.ts(33,6): error TS2469: The '+' operator cannot be applied to type 'symbol'. +tests/cases/compiler/noImplicitSymbolToString.ts(43,8): error TS2731: Implicit conversion of a 'symbol' to a 'string' will fail at runtime. Consider wrapping this expression in 'String(...)'. +tests/cases/compiler/noImplicitSymbolToString.ts(44,5): error TS2469: The '+' operator cannot be applied to type 'symbol'. +tests/cases/compiler/noImplicitSymbolToString.ts(45,6): error TS2469: The '+' operator cannot be applied to type 'symbol'. -==== tests/cases/compiler/noImplicitSymbolToString.ts (5 errors) ==== +==== tests/cases/compiler/noImplicitSymbolToString.ts (15 errors) ==== // Fix #19666 let symbol!: symbol; @@ -29,4 +39,57 @@ tests/cases/compiler/noImplicitSymbolToString.ts(13,90): error TS2731: Implicit !!! error TS2731: Implicit conversion of a 'symbol' to a 'string' will fail at runtime. Consider wrapping this expression in 'String(...)'. ~~~~~~~~~~~~~~~~~ !!! error TS2731: Implicit conversion of a 'symbol' to a 'string' will fail at runtime. Consider wrapping this expression in 'String(...)'. + + + // Fix #44462 + + type StringOrSymbol = string | symbol; + + function getKey(key: S) { + return `${key} is the key`; + ~~~ +!!! error TS2731: Implicit conversion of a 'symbol' to a 'string' will fail at runtime. Consider wrapping this expression in 'String(...)'. + } + + function getKey1(key: S) { + let s1!: S; + `${s1}`; + ~~ +!!! error TS2731: Implicit conversion of a 'symbol' to a 'string' will fail at runtime. Consider wrapping this expression in 'String(...)'. + s1 + ''; + ~~ +!!! error TS2469: The '+' operator cannot be applied to type 'symbol'. + +s1; + ~~ +!!! error TS2469: The '+' operator cannot be applied to type 'symbol'. + + let s2!: S | string; + `${s2}`; + ~~ +!!! error TS2731: Implicit conversion of a 'symbol' to a 'string' will fail at runtime. Consider wrapping this expression in 'String(...)'. + s2 + ''; + ~~ +!!! error TS2469: The '+' operator cannot be applied to type 'symbol'. + +s2; + ~~ +!!! error TS2469: The '+' operator cannot be applied to type 'symbol'. + } + + function getKey2(key: S) { + let s1!: S; + `${s1}`; + s1 + ''; + +s1; + + let s2!: S | symbol; + `${s2}`; + ~~ +!!! error TS2731: Implicit conversion of a 'symbol' to a 'string' will fail at runtime. Consider wrapping this expression in 'String(...)'. + s2 + ''; + ~~ +!!! error TS2469: The '+' operator cannot be applied to type 'symbol'. + +s2; + ~~ +!!! error TS2469: The '+' operator cannot be applied to type 'symbol'. + } \ No newline at end of file diff --git a/tests/baselines/reference/noImplicitSymbolToString.js b/tests/baselines/reference/noImplicitSymbolToString.js index fed276b8a731e..68f581faa3924 100644 --- a/tests/baselines/reference/noImplicitSymbolToString.js +++ b/tests/baselines/reference/noImplicitSymbolToString.js @@ -12,6 +12,39 @@ let symbolUnionNumber!: symbol | number; let symbolUnionString!: symbol | string; const templateStrUnion = `union with number ${symbolUnionNumber} and union with string ${symbolUnionString}`; + + +// Fix #44462 + +type StringOrSymbol = string | symbol; + +function getKey(key: S) { + return `${key} is the key`; +} + +function getKey1(key: S) { + let s1!: S; + `${s1}`; + s1 + ''; + +s1; + + let s2!: S | string; + `${s2}`; + s2 + ''; + +s2; +} + +function getKey2(key: S) { + let s1!: S; + `${s1}`; + s1 + ''; + +s1; + + let s2!: S | symbol; + `${s2}`; + s2 + ''; + +s2; +} //// [noImplicitSymbolToString.js] @@ -24,3 +57,26 @@ str += symbol; var symbolUnionNumber; var symbolUnionString; var templateStrUnion = "union with number ".concat(symbolUnionNumber, " and union with string ").concat(symbolUnionString); +function getKey(key) { + return "".concat(key, " is the key"); +} +function getKey1(key) { + var s1; + "".concat(s1); + s1 + ''; + +s1; + var s2; + "".concat(s2); + s2 + ''; + +s2; +} +function getKey2(key) { + var s1; + "".concat(s1); + s1 + ''; + +s1; + var s2; + "".concat(s2); + s2 + ''; + +s2; +} diff --git a/tests/baselines/reference/noImplicitSymbolToString.symbols b/tests/baselines/reference/noImplicitSymbolToString.symbols index b2a08e151ab64..4922e1a112c99 100644 --- a/tests/baselines/reference/noImplicitSymbolToString.symbols +++ b/tests/baselines/reference/noImplicitSymbolToString.symbols @@ -30,3 +30,86 @@ const templateStrUnion = `union with number ${symbolUnionNumber} and union with >symbolUnionNumber : Symbol(symbolUnionNumber, Decl(noImplicitSymbolToString.ts, 9, 3)) >symbolUnionString : Symbol(symbolUnionString, Decl(noImplicitSymbolToString.ts, 10, 3)) + +// Fix #44462 + +type StringOrSymbol = string | symbol; +>StringOrSymbol : Symbol(StringOrSymbol, Decl(noImplicitSymbolToString.ts, 12, 109)) + +function getKey(key: S) { +>getKey : Symbol(getKey, Decl(noImplicitSymbolToString.ts, 17, 38)) +>S : Symbol(S, Decl(noImplicitSymbolToString.ts, 19, 16)) +>StringOrSymbol : Symbol(StringOrSymbol, Decl(noImplicitSymbolToString.ts, 12, 109)) +>key : Symbol(key, Decl(noImplicitSymbolToString.ts, 19, 42)) +>S : Symbol(S, Decl(noImplicitSymbolToString.ts, 19, 16)) + + return `${key} is the key`; +>key : Symbol(key, Decl(noImplicitSymbolToString.ts, 19, 42)) +} + +function getKey1(key: S) { +>getKey1 : Symbol(getKey1, Decl(noImplicitSymbolToString.ts, 21, 1)) +>S : Symbol(S, Decl(noImplicitSymbolToString.ts, 23, 17)) +>key : Symbol(key, Decl(noImplicitSymbolToString.ts, 23, 35)) +>S : Symbol(S, Decl(noImplicitSymbolToString.ts, 23, 17)) + + let s1!: S; +>s1 : Symbol(s1, Decl(noImplicitSymbolToString.ts, 24, 7)) +>S : Symbol(S, Decl(noImplicitSymbolToString.ts, 23, 17)) + + `${s1}`; +>s1 : Symbol(s1, Decl(noImplicitSymbolToString.ts, 24, 7)) + + s1 + ''; +>s1 : Symbol(s1, Decl(noImplicitSymbolToString.ts, 24, 7)) + + +s1; +>s1 : Symbol(s1, Decl(noImplicitSymbolToString.ts, 24, 7)) + + let s2!: S | string; +>s2 : Symbol(s2, Decl(noImplicitSymbolToString.ts, 29, 7)) +>S : Symbol(S, Decl(noImplicitSymbolToString.ts, 23, 17)) + + `${s2}`; +>s2 : Symbol(s2, Decl(noImplicitSymbolToString.ts, 29, 7)) + + s2 + ''; +>s2 : Symbol(s2, Decl(noImplicitSymbolToString.ts, 29, 7)) + + +s2; +>s2 : Symbol(s2, Decl(noImplicitSymbolToString.ts, 29, 7)) +} + +function getKey2(key: S) { +>getKey2 : Symbol(getKey2, Decl(noImplicitSymbolToString.ts, 33, 1)) +>S : Symbol(S, Decl(noImplicitSymbolToString.ts, 35, 17)) +>key : Symbol(key, Decl(noImplicitSymbolToString.ts, 35, 35)) +>S : Symbol(S, Decl(noImplicitSymbolToString.ts, 35, 17)) + + let s1!: S; +>s1 : Symbol(s1, Decl(noImplicitSymbolToString.ts, 36, 7)) +>S : Symbol(S, Decl(noImplicitSymbolToString.ts, 35, 17)) + + `${s1}`; +>s1 : Symbol(s1, Decl(noImplicitSymbolToString.ts, 36, 7)) + + s1 + ''; +>s1 : Symbol(s1, Decl(noImplicitSymbolToString.ts, 36, 7)) + + +s1; +>s1 : Symbol(s1, Decl(noImplicitSymbolToString.ts, 36, 7)) + + let s2!: S | symbol; +>s2 : Symbol(s2, Decl(noImplicitSymbolToString.ts, 41, 7)) +>S : Symbol(S, Decl(noImplicitSymbolToString.ts, 35, 17)) + + `${s2}`; +>s2 : Symbol(s2, Decl(noImplicitSymbolToString.ts, 41, 7)) + + s2 + ''; +>s2 : Symbol(s2, Decl(noImplicitSymbolToString.ts, 41, 7)) + + +s2; +>s2 : Symbol(s2, Decl(noImplicitSymbolToString.ts, 41, 7)) +} + diff --git a/tests/baselines/reference/noImplicitSymbolToString.types b/tests/baselines/reference/noImplicitSymbolToString.types index c21c0e07bfded..7111542c4a318 100644 --- a/tests/baselines/reference/noImplicitSymbolToString.types +++ b/tests/baselines/reference/noImplicitSymbolToString.types @@ -36,3 +36,92 @@ const templateStrUnion = `union with number ${symbolUnionNumber} and union with >symbolUnionNumber : number | symbol >symbolUnionString : string | symbol + +// Fix #44462 + +type StringOrSymbol = string | symbol; +>StringOrSymbol : StringOrSymbol + +function getKey(key: S) { +>getKey : (key: S) => string +>key : S + + return `${key} is the key`; +>`${key} is the key` : string +>key : S +} + +function getKey1(key: S) { +>getKey1 : (key: S) => void +>key : S + + let s1!: S; +>s1 : S + + `${s1}`; +>`${s1}` : string +>s1 : S + + s1 + ''; +>s1 + '' : string +>s1 : S +>'' : "" + + +s1; +>+s1 : number +>s1 : S + + let s2!: S | string; +>s2 : string | S + + `${s2}`; +>`${s2}` : string +>s2 : string | S + + s2 + ''; +>s2 + '' : string +>s2 : string | S +>'' : "" + + +s2; +>+s2 : number +>s2 : string | S +} + +function getKey2(key: S) { +>getKey2 : (key: S) => void +>key : S + + let s1!: S; +>s1 : S + + `${s1}`; +>`${s1}` : string +>s1 : S + + s1 + ''; +>s1 + '' : string +>s1 : S +>'' : "" + + +s1; +>+s1 : number +>s1 : S + + let s2!: S | symbol; +>s2 : symbol | S + + `${s2}`; +>`${s2}` : string +>s2 : symbol | S + + s2 + ''; +>s2 + '' : string +>s2 : symbol | S +>'' : "" + + +s2; +>+s2 : number +>s2 : symbol | S +} + diff --git a/tests/baselines/reference/noIterationTypeErrorsInCFA.symbols b/tests/baselines/reference/noIterationTypeErrorsInCFA.symbols index 3498f52d456f3..60040c3ed17c4 100644 --- a/tests/baselines/reference/noIterationTypeErrorsInCFA.symbols +++ b/tests/baselines/reference/noIterationTypeErrorsInCFA.symbols @@ -13,7 +13,7 @@ export function doRemove(dds: F | F[]) { if (!Array.isArray(dds)) { >Array.isArray : Symbol(ArrayConstructor.isArray, Decl(lib.es5.d.ts, --, --)) ->Array : Symbol(Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --) ... and 2 more) +>Array : Symbol(Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --) ... and 3 more) >isArray : Symbol(ArrayConstructor.isArray, Decl(lib.es5.d.ts, --, --)) >dds : Symbol(dds, Decl(noIterationTypeErrorsInCFA.ts, 3, 25)) diff --git a/tests/baselines/reference/noMappedGetSet.errors.txt b/tests/baselines/reference/noMappedGetSet.errors.txt new file mode 100644 index 0000000000000..55f3b3243584a --- /dev/null +++ b/tests/baselines/reference/noMappedGetSet.errors.txt @@ -0,0 +1,16 @@ +tests/cases/compiler/noMappedGetSet.ts(2,9): error TS2464: A computed property name must be of type 'string', 'number', 'symbol', or 'any'. +tests/cases/compiler/noMappedGetSet.ts(2,10): error TS2304: Cannot find name 'K'. +tests/cases/compiler/noMappedGetSet.ts(2,15): error TS2304: Cannot find name 'WAT'. + + +==== tests/cases/compiler/noMappedGetSet.ts (3 errors) ==== + type OH_NO = { + get [K in WAT](): string + ~~~~~~~~~~ +!!! error TS2464: A computed property name must be of type 'string', 'number', 'symbol', or 'any'. + ~ +!!! error TS2304: Cannot find name 'K'. + ~~~ +!!! error TS2304: Cannot find name 'WAT'. + }; + \ No newline at end of file diff --git a/tests/baselines/reference/noMappedGetSet.js b/tests/baselines/reference/noMappedGetSet.js new file mode 100644 index 0000000000000..16fdaf924b96f --- /dev/null +++ b/tests/baselines/reference/noMappedGetSet.js @@ -0,0 +1,7 @@ +//// [noMappedGetSet.ts] +type OH_NO = { + get [K in WAT](): string +}; + + +//// [noMappedGetSet.js] diff --git a/tests/baselines/reference/noMappedGetSet.symbols b/tests/baselines/reference/noMappedGetSet.symbols new file mode 100644 index 0000000000000..520eb2f8b4b5a --- /dev/null +++ b/tests/baselines/reference/noMappedGetSet.symbols @@ -0,0 +1,9 @@ +=== tests/cases/compiler/noMappedGetSet.ts === +type OH_NO = { +>OH_NO : Symbol(OH_NO, Decl(noMappedGetSet.ts, 0, 0)) + + get [K in WAT](): string +>[K in WAT] : Symbol([K in WAT], Decl(noMappedGetSet.ts, 0, 14)) + +}; + diff --git a/tests/baselines/reference/noMappedGetSet.types b/tests/baselines/reference/noMappedGetSet.types new file mode 100644 index 0000000000000..1f46980e4b1eb --- /dev/null +++ b/tests/baselines/reference/noMappedGetSet.types @@ -0,0 +1,12 @@ +=== tests/cases/compiler/noMappedGetSet.ts === +type OH_NO = { +>OH_NO : OH_NO + + get [K in WAT](): string +>[K in WAT] : string +>K in WAT : boolean +>K : any +>WAT : any + +}; + diff --git a/tests/baselines/reference/noParameterReassignmentIIFEAnnotated.errors.txt b/tests/baselines/reference/noParameterReassignmentIIFEAnnotated.errors.txt new file mode 100644 index 0000000000000..a3d7905a7740b --- /dev/null +++ b/tests/baselines/reference/noParameterReassignmentIIFEAnnotated.errors.txt @@ -0,0 +1,15 @@ +tests/cases/compiler/index.js(3,28): error TS8029: JSDoc '@param' tag has name 'rest', but there is no parameter with that name. It would match 'arguments' if it had an array type. + + +==== tests/cases/compiler/index.js (1 errors) ==== + self.importScripts = (function (importScripts) { + /** + * @param {...unknown} rest + ~~~~ +!!! error TS8029: JSDoc '@param' tag has name 'rest', but there is no parameter with that name. It would match 'arguments' if it had an array type. + */ + return function () { + return importScripts.apply(this, arguments); + }; + })(importScripts); + \ No newline at end of file diff --git a/tests/baselines/reference/noParameterReassignmentIIFEAnnotated.symbols b/tests/baselines/reference/noParameterReassignmentIIFEAnnotated.symbols new file mode 100644 index 0000000000000..f12c4e640aa49 --- /dev/null +++ b/tests/baselines/reference/noParameterReassignmentIIFEAnnotated.symbols @@ -0,0 +1,21 @@ +=== tests/cases/compiler/index.js === +self.importScripts = (function (importScripts) { +>self.importScripts : Symbol(importScripts, Decl(lib.webworker.importscripts.d.ts, --, --)) +>self : Symbol(self, Decl(lib.dom.d.ts, --, --), Decl(index.js, 0, 0)) +>importScripts : Symbol(importScripts, Decl(lib.webworker.importscripts.d.ts, --, --)) +>importScripts : Symbol(importScripts, Decl(index.js, 0, 32)) + + /** + * @param {...unknown} rest + */ + return function () { + return importScripts.apply(this, arguments); +>importScripts.apply : Symbol(Function.apply, Decl(lib.es5.d.ts, --, --)) +>importScripts : Symbol(importScripts, Decl(index.js, 0, 32)) +>apply : Symbol(Function.apply, Decl(lib.es5.d.ts, --, --)) +>arguments : Symbol(arguments) + + }; +})(importScripts); +>importScripts : Symbol(importScripts, Decl(lib.webworker.importscripts.d.ts, --, --)) + diff --git a/tests/baselines/reference/noParameterReassignmentIIFEAnnotated.types b/tests/baselines/reference/noParameterReassignmentIIFEAnnotated.types new file mode 100644 index 0000000000000..ce2101e1c1c9f --- /dev/null +++ b/tests/baselines/reference/noParameterReassignmentIIFEAnnotated.types @@ -0,0 +1,29 @@ +=== tests/cases/compiler/index.js === +self.importScripts = (function (importScripts) { +>self.importScripts = (function (importScripts) { /** * @param {...unknown} rest */ return function () { return importScripts.apply(this, arguments); };})(importScripts) : (...args: unknown[]) => any +>self.importScripts : (...urls: string[]) => void +>self : Window & typeof globalThis +>importScripts : (...urls: string[]) => void +>(function (importScripts) { /** * @param {...unknown} rest */ return function () { return importScripts.apply(this, arguments); };})(importScripts) : (...args: unknown[]) => any +>(function (importScripts) { /** * @param {...unknown} rest */ return function () { return importScripts.apply(this, arguments); };}) : (importScripts: (...urls: string[]) => void) => (...args: unknown[]) => any +>function (importScripts) { /** * @param {...unknown} rest */ return function () { return importScripts.apply(this, arguments); };} : (importScripts: (...urls: string[]) => void) => (...args: unknown[]) => any +>importScripts : (...urls: string[]) => void + + /** + * @param {...unknown} rest + */ + return function () { +>function () { return importScripts.apply(this, arguments); } : (...args: unknown[]) => any + + return importScripts.apply(this, arguments); +>importScripts.apply(this, arguments) : any +>importScripts.apply : (this: Function, thisArg: any, argArray?: any) => any +>importScripts : (...urls: string[]) => void +>apply : (this: Function, thisArg: any, argArray?: any) => any +>this : any +>arguments : IArguments + + }; +})(importScripts); +>importScripts : (...urls: string[]) => void + diff --git a/tests/baselines/reference/noParameterReassignmentJSIIFE.symbols b/tests/baselines/reference/noParameterReassignmentJSIIFE.symbols new file mode 100644 index 0000000000000..339cdfda0e59a --- /dev/null +++ b/tests/baselines/reference/noParameterReassignmentJSIIFE.symbols @@ -0,0 +1,18 @@ +=== tests/cases/compiler/index.js === +self.importScripts = (function (importScripts) { +>self.importScripts : Symbol(importScripts, Decl(lib.webworker.importscripts.d.ts, --, --)) +>self : Symbol(self, Decl(lib.dom.d.ts, --, --), Decl(index.js, 0, 0)) +>importScripts : Symbol(importScripts, Decl(lib.webworker.importscripts.d.ts, --, --)) +>importScripts : Symbol(importScripts, Decl(index.js, 0, 32)) + + return function () { + return importScripts.apply(this, arguments); +>importScripts.apply : Symbol(Function.apply, Decl(lib.es5.d.ts, --, --)) +>importScripts : Symbol(importScripts, Decl(index.js, 0, 32)) +>apply : Symbol(Function.apply, Decl(lib.es5.d.ts, --, --)) +>arguments : Symbol(arguments) + + }; +})(importScripts); +>importScripts : Symbol(importScripts, Decl(lib.webworker.importscripts.d.ts, --, --)) + diff --git a/tests/baselines/reference/noParameterReassignmentJSIIFE.types b/tests/baselines/reference/noParameterReassignmentJSIIFE.types new file mode 100644 index 0000000000000..bb447e31f330f --- /dev/null +++ b/tests/baselines/reference/noParameterReassignmentJSIIFE.types @@ -0,0 +1,26 @@ +=== tests/cases/compiler/index.js === +self.importScripts = (function (importScripts) { +>self.importScripts = (function (importScripts) { return function () { return importScripts.apply(this, arguments); };})(importScripts) : (...args: string[]) => any +>self.importScripts : (...urls: string[]) => void +>self : Window & typeof globalThis +>importScripts : (...urls: string[]) => void +>(function (importScripts) { return function () { return importScripts.apply(this, arguments); };})(importScripts) : (...args: string[]) => any +>(function (importScripts) { return function () { return importScripts.apply(this, arguments); };}) : (importScripts: (...urls: string[]) => void) => (...args: string[]) => any +>function (importScripts) { return function () { return importScripts.apply(this, arguments); };} : (importScripts: (...urls: string[]) => void) => (...args: string[]) => any +>importScripts : (...urls: string[]) => void + + return function () { +>function () { return importScripts.apply(this, arguments); } : (...args: string[]) => any + + return importScripts.apply(this, arguments); +>importScripts.apply(this, arguments) : any +>importScripts.apply : (this: Function, thisArg: any, argArray?: any) => any +>importScripts : (...urls: string[]) => void +>apply : (this: Function, thisArg: any, argArray?: any) => any +>this : any +>arguments : IArguments + + }; +})(importScripts); +>importScripts : (...urls: string[]) => void + diff --git a/tests/baselines/reference/noRepeatedPropertyNames.errors.txt b/tests/baselines/reference/noRepeatedPropertyNames.errors.txt new file mode 100644 index 0000000000000..991cfa56dfb69 --- /dev/null +++ b/tests/baselines/reference/noRepeatedPropertyNames.errors.txt @@ -0,0 +1,18 @@ +tests/cases/compiler/noRepeatedPropertyNames.ts(2,23): error TS1117: An object literal cannot have multiple properties with the same name. +tests/cases/compiler/noRepeatedPropertyNames.ts(5,32): error TS1117: An object literal cannot have multiple properties with the same name. + + +==== tests/cases/compiler/noRepeatedPropertyNames.ts (2 errors) ==== + // https://github.com/microsoft/TypeScript/issues/46815 + const first = { a: 1, a: 2 }; + ~ +!!! error TS1117: An object literal cannot have multiple properties with the same name. + class C { + m() { + const second = { a: 1, a: 2 }; + ~ +!!! error TS1117: An object literal cannot have multiple properties with the same name. + return second.a; + } + } + \ No newline at end of file diff --git a/tests/baselines/reference/noRepeatedPropertyNames.js b/tests/baselines/reference/noRepeatedPropertyNames.js new file mode 100644 index 0000000000000..895e8c67240d6 --- /dev/null +++ b/tests/baselines/reference/noRepeatedPropertyNames.js @@ -0,0 +1,23 @@ +//// [noRepeatedPropertyNames.ts] +// https://github.com/microsoft/TypeScript/issues/46815 +const first = { a: 1, a: 2 }; +class C { + m() { + const second = { a: 1, a: 2 }; + return second.a; + } +} + + +//// [noRepeatedPropertyNames.js] +// https://github.com/microsoft/TypeScript/issues/46815 +var first = { a: 1, a: 2 }; +var C = /** @class */ (function () { + function C() { + } + C.prototype.m = function () { + var second = { a: 1, a: 2 }; + return second.a; + }; + return C; +}()); diff --git a/tests/baselines/reference/noRepeatedPropertyNames.symbols b/tests/baselines/reference/noRepeatedPropertyNames.symbols new file mode 100644 index 0000000000000..78d0fe4a4e3aa --- /dev/null +++ b/tests/baselines/reference/noRepeatedPropertyNames.symbols @@ -0,0 +1,25 @@ +=== tests/cases/compiler/noRepeatedPropertyNames.ts === +// https://github.com/microsoft/TypeScript/issues/46815 +const first = { a: 1, a: 2 }; +>first : Symbol(first, Decl(noRepeatedPropertyNames.ts, 1, 5)) +>a : Symbol(a, Decl(noRepeatedPropertyNames.ts, 1, 15), Decl(noRepeatedPropertyNames.ts, 1, 21)) +>a : Symbol(a, Decl(noRepeatedPropertyNames.ts, 1, 15), Decl(noRepeatedPropertyNames.ts, 1, 21)) + +class C { +>C : Symbol(C, Decl(noRepeatedPropertyNames.ts, 1, 29)) + + m() { +>m : Symbol(C.m, Decl(noRepeatedPropertyNames.ts, 2, 9)) + + const second = { a: 1, a: 2 }; +>second : Symbol(second, Decl(noRepeatedPropertyNames.ts, 4, 13)) +>a : Symbol(a, Decl(noRepeatedPropertyNames.ts, 4, 24), Decl(noRepeatedPropertyNames.ts, 4, 30)) +>a : Symbol(a, Decl(noRepeatedPropertyNames.ts, 4, 24), Decl(noRepeatedPropertyNames.ts, 4, 30)) + + return second.a; +>second.a : Symbol(a, Decl(noRepeatedPropertyNames.ts, 4, 24), Decl(noRepeatedPropertyNames.ts, 4, 30)) +>second : Symbol(second, Decl(noRepeatedPropertyNames.ts, 4, 13)) +>a : Symbol(a, Decl(noRepeatedPropertyNames.ts, 4, 24), Decl(noRepeatedPropertyNames.ts, 4, 30)) + } +} + diff --git a/tests/baselines/reference/noRepeatedPropertyNames.types b/tests/baselines/reference/noRepeatedPropertyNames.types new file mode 100644 index 0000000000000..a32d0005a9409 --- /dev/null +++ b/tests/baselines/reference/noRepeatedPropertyNames.types @@ -0,0 +1,31 @@ +=== tests/cases/compiler/noRepeatedPropertyNames.ts === +// https://github.com/microsoft/TypeScript/issues/46815 +const first = { a: 1, a: 2 }; +>first : { a: number; } +>{ a: 1, a: 2 } : { a: number; } +>a : number +>1 : 1 +>a : number +>2 : 2 + +class C { +>C : C + + m() { +>m : () => number + + const second = { a: 1, a: 2 }; +>second : { a: number; } +>{ a: 1, a: 2 } : { a: number; } +>a : number +>1 : 1 +>a : number +>2 : 2 + + return second.a; +>second.a : number +>second : { a: number; } +>a : number + } +} + diff --git a/tests/baselines/reference/nodeAllowJsPackageSelfName(module=node12).js b/tests/baselines/reference/nodeAllowJsPackageSelfName(module=node12).js index 07532294ff7d3..aeafa06e28154 100644 --- a/tests/baselines/reference/nodeAllowJsPackageSelfName(module=node12).js +++ b/tests/baselines/reference/nodeAllowJsPackageSelfName(module=node12).js @@ -32,7 +32,11 @@ self; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/nodeAllowJsPackageSelfName(module=nodenext).js b/tests/baselines/reference/nodeAllowJsPackageSelfName(module=nodenext).js index 07532294ff7d3..aeafa06e28154 100644 --- a/tests/baselines/reference/nodeAllowJsPackageSelfName(module=nodenext).js +++ b/tests/baselines/reference/nodeAllowJsPackageSelfName(module=nodenext).js @@ -32,7 +32,11 @@ self; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/nodeModules1(module=node12).errors.txt b/tests/baselines/reference/nodeModules1(module=node12).errors.txt index 6398640a86946..724e3b73ed7b2 100644 --- a/tests/baselines/reference/nodeModules1(module=node12).errors.txt +++ b/tests/baselines/reference/nodeModules1(module=node12).errors.txt @@ -15,70 +15,70 @@ tests/cases/conformance/node/index.cts(59,22): error TS1471: Module './subfolder tests/cases/conformance/node/index.cts(60,22): error TS1471: Module './subfolder2/another/' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported synchronously. Use dynamic import instead. tests/cases/conformance/node/index.cts(61,22): error TS1471: Module './subfolder2/another/index' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported synchronously. Use dynamic import instead. tests/cases/conformance/node/index.cts(75,21): error TS2307: Cannot find module './' or its corresponding type declarations. -tests/cases/conformance/node/index.cts(76,21): error TS2307: Cannot find module './index' or its corresponding type declarations. -tests/cases/conformance/node/index.cts(77,21): error TS2307: Cannot find module './subfolder' or its corresponding type declarations. -tests/cases/conformance/node/index.cts(78,21): error TS2307: Cannot find module './subfolder/' or its corresponding type declarations. -tests/cases/conformance/node/index.cts(79,21): error TS2307: Cannot find module './subfolder/index' or its corresponding type declarations. -tests/cases/conformance/node/index.cts(80,21): error TS2307: Cannot find module './subfolder2' or its corresponding type declarations. -tests/cases/conformance/node/index.cts(81,21): error TS2307: Cannot find module './subfolder2/' or its corresponding type declarations. -tests/cases/conformance/node/index.cts(82,21): error TS2307: Cannot find module './subfolder2/index' or its corresponding type declarations. -tests/cases/conformance/node/index.cts(83,21): error TS2307: Cannot find module './subfolder2/another' or its corresponding type declarations. -tests/cases/conformance/node/index.cts(84,21): error TS2307: Cannot find module './subfolder2/another/' or its corresponding type declarations. -tests/cases/conformance/node/index.cts(85,21): error TS2307: Cannot find module './subfolder2/another/index' or its corresponding type declarations. +tests/cases/conformance/node/index.cts(76,21): error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './index.mjs'? +tests/cases/conformance/node/index.cts(77,21): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/index.cts(78,21): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/index.cts(79,21): error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder/index.mjs'? +tests/cases/conformance/node/index.cts(80,21): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/index.cts(81,21): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/index.cts(82,21): error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder2/index.mjs'? +tests/cases/conformance/node/index.cts(83,21): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/index.cts(84,21): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/index.cts(85,21): error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder2/another/index.mjs'? tests/cases/conformance/node/index.mts(14,22): error TS2307: Cannot find module './' or its corresponding type declarations. -tests/cases/conformance/node/index.mts(15,22): error TS2307: Cannot find module './index' or its corresponding type declarations. -tests/cases/conformance/node/index.mts(16,22): error TS2307: Cannot find module './subfolder' or its corresponding type declarations. -tests/cases/conformance/node/index.mts(17,22): error TS2307: Cannot find module './subfolder/' or its corresponding type declarations. -tests/cases/conformance/node/index.mts(18,22): error TS2307: Cannot find module './subfolder/index' or its corresponding type declarations. -tests/cases/conformance/node/index.mts(19,22): error TS2307: Cannot find module './subfolder2' or its corresponding type declarations. -tests/cases/conformance/node/index.mts(20,22): error TS2307: Cannot find module './subfolder2/' or its corresponding type declarations. -tests/cases/conformance/node/index.mts(21,22): error TS2307: Cannot find module './subfolder2/index' or its corresponding type declarations. -tests/cases/conformance/node/index.mts(22,22): error TS2307: Cannot find module './subfolder2/another' or its corresponding type declarations. -tests/cases/conformance/node/index.mts(23,22): error TS2307: Cannot find module './subfolder2/another/' or its corresponding type declarations. -tests/cases/conformance/node/index.mts(24,22): error TS2307: Cannot find module './subfolder2/another/index' or its corresponding type declarations. +tests/cases/conformance/node/index.mts(15,22): error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './index.mjs'? +tests/cases/conformance/node/index.mts(16,22): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/index.mts(17,22): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/index.mts(18,22): error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder/index.mjs'? +tests/cases/conformance/node/index.mts(19,22): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/index.mts(20,22): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/index.mts(21,22): error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder2/index.mjs'? +tests/cases/conformance/node/index.mts(22,22): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/index.mts(23,22): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/index.mts(24,22): error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder2/another/index.mjs'? tests/cases/conformance/node/index.mts(50,22): error TS1471: Module './' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported synchronously. Use dynamic import instead. tests/cases/conformance/node/index.mts(51,22): error TS1471: Module './index' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported synchronously. Use dynamic import instead. tests/cases/conformance/node/index.mts(58,22): error TS1471: Module './subfolder2/another' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported synchronously. Use dynamic import instead. tests/cases/conformance/node/index.mts(59,22): error TS1471: Module './subfolder2/another/' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported synchronously. Use dynamic import instead. tests/cases/conformance/node/index.mts(60,22): error TS1471: Module './subfolder2/another/index' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported synchronously. Use dynamic import instead. tests/cases/conformance/node/index.mts(74,21): error TS2307: Cannot find module './' or its corresponding type declarations. -tests/cases/conformance/node/index.mts(75,21): error TS2307: Cannot find module './index' or its corresponding type declarations. -tests/cases/conformance/node/index.mts(76,21): error TS2307: Cannot find module './subfolder' or its corresponding type declarations. -tests/cases/conformance/node/index.mts(77,21): error TS2307: Cannot find module './subfolder/' or its corresponding type declarations. -tests/cases/conformance/node/index.mts(78,21): error TS2307: Cannot find module './subfolder/index' or its corresponding type declarations. -tests/cases/conformance/node/index.mts(79,21): error TS2307: Cannot find module './subfolder2' or its corresponding type declarations. -tests/cases/conformance/node/index.mts(80,21): error TS2307: Cannot find module './subfolder2/' or its corresponding type declarations. -tests/cases/conformance/node/index.mts(81,21): error TS2307: Cannot find module './subfolder2/index' or its corresponding type declarations. -tests/cases/conformance/node/index.mts(82,21): error TS2307: Cannot find module './subfolder2/another' or its corresponding type declarations. -tests/cases/conformance/node/index.mts(83,21): error TS2307: Cannot find module './subfolder2/another/' or its corresponding type declarations. -tests/cases/conformance/node/index.mts(84,21): error TS2307: Cannot find module './subfolder2/another/index' or its corresponding type declarations. +tests/cases/conformance/node/index.mts(75,21): error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './index.mjs'? +tests/cases/conformance/node/index.mts(76,21): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/index.mts(77,21): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/index.mts(78,21): error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder/index.mjs'? +tests/cases/conformance/node/index.mts(79,21): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/index.mts(80,21): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/index.mts(81,21): error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder2/index.mjs'? +tests/cases/conformance/node/index.mts(82,21): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/index.mts(83,21): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/index.mts(84,21): error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder2/another/index.mjs'? tests/cases/conformance/node/index.ts(14,22): error TS2307: Cannot find module './' or its corresponding type declarations. -tests/cases/conformance/node/index.ts(15,22): error TS2307: Cannot find module './index' or its corresponding type declarations. -tests/cases/conformance/node/index.ts(16,22): error TS2307: Cannot find module './subfolder' or its corresponding type declarations. -tests/cases/conformance/node/index.ts(17,22): error TS2307: Cannot find module './subfolder/' or its corresponding type declarations. -tests/cases/conformance/node/index.ts(18,22): error TS2307: Cannot find module './subfolder/index' or its corresponding type declarations. -tests/cases/conformance/node/index.ts(19,22): error TS2307: Cannot find module './subfolder2' or its corresponding type declarations. -tests/cases/conformance/node/index.ts(20,22): error TS2307: Cannot find module './subfolder2/' or its corresponding type declarations. -tests/cases/conformance/node/index.ts(21,22): error TS2307: Cannot find module './subfolder2/index' or its corresponding type declarations. -tests/cases/conformance/node/index.ts(22,22): error TS2307: Cannot find module './subfolder2/another' or its corresponding type declarations. -tests/cases/conformance/node/index.ts(23,22): error TS2307: Cannot find module './subfolder2/another/' or its corresponding type declarations. -tests/cases/conformance/node/index.ts(24,22): error TS2307: Cannot find module './subfolder2/another/index' or its corresponding type declarations. +tests/cases/conformance/node/index.ts(15,22): error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './index.mjs'? +tests/cases/conformance/node/index.ts(16,22): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/index.ts(17,22): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/index.ts(18,22): error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder/index.mjs'? +tests/cases/conformance/node/index.ts(19,22): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/index.ts(20,22): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/index.ts(21,22): error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder2/index.mjs'? +tests/cases/conformance/node/index.ts(22,22): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/index.ts(23,22): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/index.ts(24,22): error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder2/another/index.mjs'? tests/cases/conformance/node/index.ts(50,22): error TS1471: Module './' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported synchronously. Use dynamic import instead. tests/cases/conformance/node/index.ts(51,22): error TS1471: Module './index' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported synchronously. Use dynamic import instead. tests/cases/conformance/node/index.ts(58,22): error TS1471: Module './subfolder2/another' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported synchronously. Use dynamic import instead. tests/cases/conformance/node/index.ts(59,22): error TS1471: Module './subfolder2/another/' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported synchronously. Use dynamic import instead. tests/cases/conformance/node/index.ts(60,22): error TS1471: Module './subfolder2/another/index' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported synchronously. Use dynamic import instead. tests/cases/conformance/node/index.ts(74,21): error TS2307: Cannot find module './' or its corresponding type declarations. -tests/cases/conformance/node/index.ts(75,21): error TS2307: Cannot find module './index' or its corresponding type declarations. -tests/cases/conformance/node/index.ts(76,21): error TS2307: Cannot find module './subfolder' or its corresponding type declarations. -tests/cases/conformance/node/index.ts(77,21): error TS2307: Cannot find module './subfolder/' or its corresponding type declarations. -tests/cases/conformance/node/index.ts(78,21): error TS2307: Cannot find module './subfolder/index' or its corresponding type declarations. -tests/cases/conformance/node/index.ts(79,21): error TS2307: Cannot find module './subfolder2' or its corresponding type declarations. -tests/cases/conformance/node/index.ts(80,21): error TS2307: Cannot find module './subfolder2/' or its corresponding type declarations. -tests/cases/conformance/node/index.ts(81,21): error TS2307: Cannot find module './subfolder2/index' or its corresponding type declarations. -tests/cases/conformance/node/index.ts(82,21): error TS2307: Cannot find module './subfolder2/another' or its corresponding type declarations. -tests/cases/conformance/node/index.ts(83,21): error TS2307: Cannot find module './subfolder2/another/' or its corresponding type declarations. -tests/cases/conformance/node/index.ts(84,21): error TS2307: Cannot find module './subfolder2/another/index' or its corresponding type declarations. +tests/cases/conformance/node/index.ts(75,21): error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './index.mjs'? +tests/cases/conformance/node/index.ts(76,21): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/index.ts(77,21): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/index.ts(78,21): error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder/index.mjs'? +tests/cases/conformance/node/index.ts(79,21): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/index.ts(80,21): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/index.ts(81,21): error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder2/index.mjs'? +tests/cases/conformance/node/index.ts(82,21): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/index.ts(83,21): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/index.ts(84,21): error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder2/another/index.mjs'? ==== tests/cases/conformance/node/subfolder/index.ts (0 errors) ==== @@ -136,34 +136,34 @@ tests/cases/conformance/node/index.ts(84,21): error TS2307: Cannot find module ' !!! error TS2307: Cannot find module './' or its corresponding type declarations. import * as m14 from "./index"; ~~~~~~~~~ -!!! error TS2307: Cannot find module './index' or its corresponding type declarations. +!!! error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './index.mjs'? import * as m15 from "./subfolder"; ~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. import * as m16 from "./subfolder/"; ~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder/' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. import * as m17 from "./subfolder/index"; ~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder/index' or its corresponding type declarations. +!!! error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder/index.mjs'? import * as m18 from "./subfolder2"; ~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. import * as m19 from "./subfolder2/"; ~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. import * as m20 from "./subfolder2/index"; ~~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/index' or its corresponding type declarations. +!!! error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder2/index.mjs'? import * as m21 from "./subfolder2/another"; ~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/another' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. import * as m22 from "./subfolder2/another/"; ~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/another/' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. import * as m23 from "./subfolder2/another/index"; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/another/index' or its corresponding type declarations. +!!! error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder2/another/index.mjs'? void m1; void m2; void m3; @@ -228,34 +228,34 @@ tests/cases/conformance/node/index.ts(84,21): error TS2307: Cannot find module ' !!! error TS2307: Cannot find module './' or its corresponding type declarations. const _m36 = import("./index"); ~~~~~~~~~ -!!! error TS2307: Cannot find module './index' or its corresponding type declarations. +!!! error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './index.mjs'? const _m37 = import("./subfolder"); ~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. const _m38 = import("./subfolder/"); ~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder/' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. const _m39 = import("./subfolder/index"); ~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder/index' or its corresponding type declarations. +!!! error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder/index.mjs'? const _m40 = import("./subfolder2"); ~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. const _m41 = import("./subfolder2/"); ~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. const _m42 = import("./subfolder2/index"); ~~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/index' or its corresponding type declarations. +!!! error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder2/index.mjs'? const _m43 = import("./subfolder2/another"); ~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/another' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. const _m44 = import("./subfolder2/another/"); ~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/another/' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. const _m45 = import("./subfolder2/another/index"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/another/index' or its corresponding type declarations. +!!! error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder2/another/index.mjs'? // esm format file const x = 1; @@ -372,34 +372,34 @@ tests/cases/conformance/node/index.ts(84,21): error TS2307: Cannot find module ' !!! error TS2307: Cannot find module './' or its corresponding type declarations. const _m36 = import("./index"); ~~~~~~~~~ -!!! error TS2307: Cannot find module './index' or its corresponding type declarations. +!!! error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './index.mjs'? const _m37 = import("./subfolder"); ~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. const _m38 = import("./subfolder/"); ~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder/' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. const _m39 = import("./subfolder/index"); ~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder/index' or its corresponding type declarations. +!!! error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder/index.mjs'? const _m40 = import("./subfolder2"); ~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. const _m41 = import("./subfolder2/"); ~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. const _m42 = import("./subfolder2/index"); ~~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/index' or its corresponding type declarations. +!!! error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder2/index.mjs'? const _m43 = import("./subfolder2/another"); ~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/another' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. const _m44 = import("./subfolder2/another/"); ~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/another/' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. const _m45 = import("./subfolder2/another/index"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/another/index' or its corresponding type declarations. +!!! error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder2/another/index.mjs'? // cjs format file const x = 1; export {x}; @@ -422,34 +422,34 @@ tests/cases/conformance/node/index.ts(84,21): error TS2307: Cannot find module ' !!! error TS2307: Cannot find module './' or its corresponding type declarations. import * as m14 from "./index"; ~~~~~~~~~ -!!! error TS2307: Cannot find module './index' or its corresponding type declarations. +!!! error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './index.mjs'? import * as m15 from "./subfolder"; ~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. import * as m16 from "./subfolder/"; ~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder/' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. import * as m17 from "./subfolder/index"; ~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder/index' or its corresponding type declarations. +!!! error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder/index.mjs'? import * as m18 from "./subfolder2"; ~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. import * as m19 from "./subfolder2/"; ~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. import * as m20 from "./subfolder2/index"; ~~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/index' or its corresponding type declarations. +!!! error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder2/index.mjs'? import * as m21 from "./subfolder2/another"; ~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/another' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. import * as m22 from "./subfolder2/another/"; ~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/another/' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. import * as m23 from "./subfolder2/another/index"; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/another/index' or its corresponding type declarations. +!!! error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder2/another/index.mjs'? void m1; void m2; void m3; @@ -514,34 +514,34 @@ tests/cases/conformance/node/index.ts(84,21): error TS2307: Cannot find module ' !!! error TS2307: Cannot find module './' or its corresponding type declarations. const _m36 = import("./index"); ~~~~~~~~~ -!!! error TS2307: Cannot find module './index' or its corresponding type declarations. +!!! error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './index.mjs'? const _m37 = import("./subfolder"); ~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. const _m38 = import("./subfolder/"); ~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder/' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. const _m39 = import("./subfolder/index"); ~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder/index' or its corresponding type declarations. +!!! error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder/index.mjs'? const _m40 = import("./subfolder2"); ~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. const _m41 = import("./subfolder2/"); ~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. const _m42 = import("./subfolder2/index"); ~~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/index' or its corresponding type declarations. +!!! error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder2/index.mjs'? const _m43 = import("./subfolder2/another"); ~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/another' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. const _m44 = import("./subfolder2/another/"); ~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/another/' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. const _m45 = import("./subfolder2/another/index"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/another/index' or its corresponding type declarations. +!!! error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder2/another/index.mjs'? // esm format file const x = 1; export {x}; diff --git a/tests/baselines/reference/nodeModules1(module=node12).js b/tests/baselines/reference/nodeModules1(module=node12).js index 46163abc085d0..5b6840498ef10 100644 --- a/tests/baselines/reference/nodeModules1(module=node12).js +++ b/tests/baselines/reference/nodeModules1(module=node12).js @@ -375,7 +375,11 @@ exports.x = x; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/nodeModules1(module=node12).types b/tests/baselines/reference/nodeModules1(module=node12).types index 3a7a0c0b9b6a3..9f52683c7d748 100644 --- a/tests/baselines/reference/nodeModules1(module=node12).types +++ b/tests/baselines/reference/nodeModules1(module=node12).types @@ -250,22 +250,22 @@ import m25 = require("./index"); >m25 : typeof m1 import m26 = require("./subfolder"); ->m26 : typeof m4 +>m26 : typeof m26 import m27 = require("./subfolder/"); ->m27 : typeof m4 +>m27 : typeof m26 import m28 = require("./subfolder/index"); ->m28 : typeof m4 +>m28 : typeof m26 import m29 = require("./subfolder2"); ->m29 : typeof m7 +>m29 : typeof m29 import m30 = require("./subfolder2/"); ->m30 : typeof m7 +>m30 : typeof m29 import m31 = require("./subfolder2/index"); ->m31 : typeof m7 +>m31 : typeof m29 import m32 = require("./subfolder2/another"); >m32 : typeof m10 @@ -286,27 +286,27 @@ void m25; void m26; >void m26 : undefined ->m26 : typeof m4 +>m26 : typeof m26 void m27; >void m27 : undefined ->m27 : typeof m4 +>m27 : typeof m26 void m28; >void m28 : undefined ->m28 : typeof m4 +>m28 : typeof m26 void m29; >void m29 : undefined ->m29 : typeof m7 +>m29 : typeof m29 void m30; >void m30 : undefined ->m30 : typeof m7 +>m30 : typeof m29 void m31; >void m31 : undefined ->m31 : typeof m7 +>m31 : typeof m29 void m32; >void m32 : undefined @@ -861,22 +861,22 @@ import m25 = require("./index"); >m25 : typeof m1 import m26 = require("./subfolder"); ->m26 : typeof m4 +>m26 : typeof m26 import m27 = require("./subfolder/"); ->m27 : typeof m4 +>m27 : typeof m26 import m28 = require("./subfolder/index"); ->m28 : typeof m4 +>m28 : typeof m26 import m29 = require("./subfolder2"); ->m29 : typeof m7 +>m29 : typeof m29 import m30 = require("./subfolder2/"); ->m30 : typeof m7 +>m30 : typeof m29 import m31 = require("./subfolder2/index"); ->m31 : typeof m7 +>m31 : typeof m29 import m32 = require("./subfolder2/another"); >m32 : typeof m10 @@ -897,27 +897,27 @@ void m25; void m26; >void m26 : undefined ->m26 : typeof m4 +>m26 : typeof m26 void m27; >void m27 : undefined ->m27 : typeof m4 +>m27 : typeof m26 void m28; >void m28 : undefined ->m28 : typeof m4 +>m28 : typeof m26 void m29; >void m29 : undefined ->m29 : typeof m7 +>m29 : typeof m29 void m30; >void m30 : undefined ->m30 : typeof m7 +>m30 : typeof m29 void m31; >void m31 : undefined ->m31 : typeof m7 +>m31 : typeof m29 void m32; >void m32 : undefined diff --git a/tests/baselines/reference/nodeModules1(module=nodenext).errors.txt b/tests/baselines/reference/nodeModules1(module=nodenext).errors.txt index 6398640a86946..724e3b73ed7b2 100644 --- a/tests/baselines/reference/nodeModules1(module=nodenext).errors.txt +++ b/tests/baselines/reference/nodeModules1(module=nodenext).errors.txt @@ -15,70 +15,70 @@ tests/cases/conformance/node/index.cts(59,22): error TS1471: Module './subfolder tests/cases/conformance/node/index.cts(60,22): error TS1471: Module './subfolder2/another/' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported synchronously. Use dynamic import instead. tests/cases/conformance/node/index.cts(61,22): error TS1471: Module './subfolder2/another/index' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported synchronously. Use dynamic import instead. tests/cases/conformance/node/index.cts(75,21): error TS2307: Cannot find module './' or its corresponding type declarations. -tests/cases/conformance/node/index.cts(76,21): error TS2307: Cannot find module './index' or its corresponding type declarations. -tests/cases/conformance/node/index.cts(77,21): error TS2307: Cannot find module './subfolder' or its corresponding type declarations. -tests/cases/conformance/node/index.cts(78,21): error TS2307: Cannot find module './subfolder/' or its corresponding type declarations. -tests/cases/conformance/node/index.cts(79,21): error TS2307: Cannot find module './subfolder/index' or its corresponding type declarations. -tests/cases/conformance/node/index.cts(80,21): error TS2307: Cannot find module './subfolder2' or its corresponding type declarations. -tests/cases/conformance/node/index.cts(81,21): error TS2307: Cannot find module './subfolder2/' or its corresponding type declarations. -tests/cases/conformance/node/index.cts(82,21): error TS2307: Cannot find module './subfolder2/index' or its corresponding type declarations. -tests/cases/conformance/node/index.cts(83,21): error TS2307: Cannot find module './subfolder2/another' or its corresponding type declarations. -tests/cases/conformance/node/index.cts(84,21): error TS2307: Cannot find module './subfolder2/another/' or its corresponding type declarations. -tests/cases/conformance/node/index.cts(85,21): error TS2307: Cannot find module './subfolder2/another/index' or its corresponding type declarations. +tests/cases/conformance/node/index.cts(76,21): error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './index.mjs'? +tests/cases/conformance/node/index.cts(77,21): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/index.cts(78,21): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/index.cts(79,21): error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder/index.mjs'? +tests/cases/conformance/node/index.cts(80,21): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/index.cts(81,21): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/index.cts(82,21): error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder2/index.mjs'? +tests/cases/conformance/node/index.cts(83,21): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/index.cts(84,21): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/index.cts(85,21): error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder2/another/index.mjs'? tests/cases/conformance/node/index.mts(14,22): error TS2307: Cannot find module './' or its corresponding type declarations. -tests/cases/conformance/node/index.mts(15,22): error TS2307: Cannot find module './index' or its corresponding type declarations. -tests/cases/conformance/node/index.mts(16,22): error TS2307: Cannot find module './subfolder' or its corresponding type declarations. -tests/cases/conformance/node/index.mts(17,22): error TS2307: Cannot find module './subfolder/' or its corresponding type declarations. -tests/cases/conformance/node/index.mts(18,22): error TS2307: Cannot find module './subfolder/index' or its corresponding type declarations. -tests/cases/conformance/node/index.mts(19,22): error TS2307: Cannot find module './subfolder2' or its corresponding type declarations. -tests/cases/conformance/node/index.mts(20,22): error TS2307: Cannot find module './subfolder2/' or its corresponding type declarations. -tests/cases/conformance/node/index.mts(21,22): error TS2307: Cannot find module './subfolder2/index' or its corresponding type declarations. -tests/cases/conformance/node/index.mts(22,22): error TS2307: Cannot find module './subfolder2/another' or its corresponding type declarations. -tests/cases/conformance/node/index.mts(23,22): error TS2307: Cannot find module './subfolder2/another/' or its corresponding type declarations. -tests/cases/conformance/node/index.mts(24,22): error TS2307: Cannot find module './subfolder2/another/index' or its corresponding type declarations. +tests/cases/conformance/node/index.mts(15,22): error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './index.mjs'? +tests/cases/conformance/node/index.mts(16,22): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/index.mts(17,22): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/index.mts(18,22): error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder/index.mjs'? +tests/cases/conformance/node/index.mts(19,22): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/index.mts(20,22): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/index.mts(21,22): error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder2/index.mjs'? +tests/cases/conformance/node/index.mts(22,22): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/index.mts(23,22): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/index.mts(24,22): error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder2/another/index.mjs'? tests/cases/conformance/node/index.mts(50,22): error TS1471: Module './' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported synchronously. Use dynamic import instead. tests/cases/conformance/node/index.mts(51,22): error TS1471: Module './index' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported synchronously. Use dynamic import instead. tests/cases/conformance/node/index.mts(58,22): error TS1471: Module './subfolder2/another' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported synchronously. Use dynamic import instead. tests/cases/conformance/node/index.mts(59,22): error TS1471: Module './subfolder2/another/' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported synchronously. Use dynamic import instead. tests/cases/conformance/node/index.mts(60,22): error TS1471: Module './subfolder2/another/index' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported synchronously. Use dynamic import instead. tests/cases/conformance/node/index.mts(74,21): error TS2307: Cannot find module './' or its corresponding type declarations. -tests/cases/conformance/node/index.mts(75,21): error TS2307: Cannot find module './index' or its corresponding type declarations. -tests/cases/conformance/node/index.mts(76,21): error TS2307: Cannot find module './subfolder' or its corresponding type declarations. -tests/cases/conformance/node/index.mts(77,21): error TS2307: Cannot find module './subfolder/' or its corresponding type declarations. -tests/cases/conformance/node/index.mts(78,21): error TS2307: Cannot find module './subfolder/index' or its corresponding type declarations. -tests/cases/conformance/node/index.mts(79,21): error TS2307: Cannot find module './subfolder2' or its corresponding type declarations. -tests/cases/conformance/node/index.mts(80,21): error TS2307: Cannot find module './subfolder2/' or its corresponding type declarations. -tests/cases/conformance/node/index.mts(81,21): error TS2307: Cannot find module './subfolder2/index' or its corresponding type declarations. -tests/cases/conformance/node/index.mts(82,21): error TS2307: Cannot find module './subfolder2/another' or its corresponding type declarations. -tests/cases/conformance/node/index.mts(83,21): error TS2307: Cannot find module './subfolder2/another/' or its corresponding type declarations. -tests/cases/conformance/node/index.mts(84,21): error TS2307: Cannot find module './subfolder2/another/index' or its corresponding type declarations. +tests/cases/conformance/node/index.mts(75,21): error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './index.mjs'? +tests/cases/conformance/node/index.mts(76,21): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/index.mts(77,21): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/index.mts(78,21): error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder/index.mjs'? +tests/cases/conformance/node/index.mts(79,21): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/index.mts(80,21): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/index.mts(81,21): error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder2/index.mjs'? +tests/cases/conformance/node/index.mts(82,21): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/index.mts(83,21): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/index.mts(84,21): error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder2/another/index.mjs'? tests/cases/conformance/node/index.ts(14,22): error TS2307: Cannot find module './' or its corresponding type declarations. -tests/cases/conformance/node/index.ts(15,22): error TS2307: Cannot find module './index' or its corresponding type declarations. -tests/cases/conformance/node/index.ts(16,22): error TS2307: Cannot find module './subfolder' or its corresponding type declarations. -tests/cases/conformance/node/index.ts(17,22): error TS2307: Cannot find module './subfolder/' or its corresponding type declarations. -tests/cases/conformance/node/index.ts(18,22): error TS2307: Cannot find module './subfolder/index' or its corresponding type declarations. -tests/cases/conformance/node/index.ts(19,22): error TS2307: Cannot find module './subfolder2' or its corresponding type declarations. -tests/cases/conformance/node/index.ts(20,22): error TS2307: Cannot find module './subfolder2/' or its corresponding type declarations. -tests/cases/conformance/node/index.ts(21,22): error TS2307: Cannot find module './subfolder2/index' or its corresponding type declarations. -tests/cases/conformance/node/index.ts(22,22): error TS2307: Cannot find module './subfolder2/another' or its corresponding type declarations. -tests/cases/conformance/node/index.ts(23,22): error TS2307: Cannot find module './subfolder2/another/' or its corresponding type declarations. -tests/cases/conformance/node/index.ts(24,22): error TS2307: Cannot find module './subfolder2/another/index' or its corresponding type declarations. +tests/cases/conformance/node/index.ts(15,22): error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './index.mjs'? +tests/cases/conformance/node/index.ts(16,22): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/index.ts(17,22): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/index.ts(18,22): error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder/index.mjs'? +tests/cases/conformance/node/index.ts(19,22): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/index.ts(20,22): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/index.ts(21,22): error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder2/index.mjs'? +tests/cases/conformance/node/index.ts(22,22): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/index.ts(23,22): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/index.ts(24,22): error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder2/another/index.mjs'? tests/cases/conformance/node/index.ts(50,22): error TS1471: Module './' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported synchronously. Use dynamic import instead. tests/cases/conformance/node/index.ts(51,22): error TS1471: Module './index' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported synchronously. Use dynamic import instead. tests/cases/conformance/node/index.ts(58,22): error TS1471: Module './subfolder2/another' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported synchronously. Use dynamic import instead. tests/cases/conformance/node/index.ts(59,22): error TS1471: Module './subfolder2/another/' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported synchronously. Use dynamic import instead. tests/cases/conformance/node/index.ts(60,22): error TS1471: Module './subfolder2/another/index' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported synchronously. Use dynamic import instead. tests/cases/conformance/node/index.ts(74,21): error TS2307: Cannot find module './' or its corresponding type declarations. -tests/cases/conformance/node/index.ts(75,21): error TS2307: Cannot find module './index' or its corresponding type declarations. -tests/cases/conformance/node/index.ts(76,21): error TS2307: Cannot find module './subfolder' or its corresponding type declarations. -tests/cases/conformance/node/index.ts(77,21): error TS2307: Cannot find module './subfolder/' or its corresponding type declarations. -tests/cases/conformance/node/index.ts(78,21): error TS2307: Cannot find module './subfolder/index' or its corresponding type declarations. -tests/cases/conformance/node/index.ts(79,21): error TS2307: Cannot find module './subfolder2' or its corresponding type declarations. -tests/cases/conformance/node/index.ts(80,21): error TS2307: Cannot find module './subfolder2/' or its corresponding type declarations. -tests/cases/conformance/node/index.ts(81,21): error TS2307: Cannot find module './subfolder2/index' or its corresponding type declarations. -tests/cases/conformance/node/index.ts(82,21): error TS2307: Cannot find module './subfolder2/another' or its corresponding type declarations. -tests/cases/conformance/node/index.ts(83,21): error TS2307: Cannot find module './subfolder2/another/' or its corresponding type declarations. -tests/cases/conformance/node/index.ts(84,21): error TS2307: Cannot find module './subfolder2/another/index' or its corresponding type declarations. +tests/cases/conformance/node/index.ts(75,21): error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './index.mjs'? +tests/cases/conformance/node/index.ts(76,21): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/index.ts(77,21): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/index.ts(78,21): error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder/index.mjs'? +tests/cases/conformance/node/index.ts(79,21): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/index.ts(80,21): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/index.ts(81,21): error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder2/index.mjs'? +tests/cases/conformance/node/index.ts(82,21): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/index.ts(83,21): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/index.ts(84,21): error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder2/another/index.mjs'? ==== tests/cases/conformance/node/subfolder/index.ts (0 errors) ==== @@ -136,34 +136,34 @@ tests/cases/conformance/node/index.ts(84,21): error TS2307: Cannot find module ' !!! error TS2307: Cannot find module './' or its corresponding type declarations. import * as m14 from "./index"; ~~~~~~~~~ -!!! error TS2307: Cannot find module './index' or its corresponding type declarations. +!!! error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './index.mjs'? import * as m15 from "./subfolder"; ~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. import * as m16 from "./subfolder/"; ~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder/' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. import * as m17 from "./subfolder/index"; ~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder/index' or its corresponding type declarations. +!!! error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder/index.mjs'? import * as m18 from "./subfolder2"; ~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. import * as m19 from "./subfolder2/"; ~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. import * as m20 from "./subfolder2/index"; ~~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/index' or its corresponding type declarations. +!!! error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder2/index.mjs'? import * as m21 from "./subfolder2/another"; ~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/another' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. import * as m22 from "./subfolder2/another/"; ~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/another/' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. import * as m23 from "./subfolder2/another/index"; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/another/index' or its corresponding type declarations. +!!! error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder2/another/index.mjs'? void m1; void m2; void m3; @@ -228,34 +228,34 @@ tests/cases/conformance/node/index.ts(84,21): error TS2307: Cannot find module ' !!! error TS2307: Cannot find module './' or its corresponding type declarations. const _m36 = import("./index"); ~~~~~~~~~ -!!! error TS2307: Cannot find module './index' or its corresponding type declarations. +!!! error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './index.mjs'? const _m37 = import("./subfolder"); ~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. const _m38 = import("./subfolder/"); ~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder/' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. const _m39 = import("./subfolder/index"); ~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder/index' or its corresponding type declarations. +!!! error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder/index.mjs'? const _m40 = import("./subfolder2"); ~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. const _m41 = import("./subfolder2/"); ~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. const _m42 = import("./subfolder2/index"); ~~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/index' or its corresponding type declarations. +!!! error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder2/index.mjs'? const _m43 = import("./subfolder2/another"); ~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/another' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. const _m44 = import("./subfolder2/another/"); ~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/another/' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. const _m45 = import("./subfolder2/another/index"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/another/index' or its corresponding type declarations. +!!! error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder2/another/index.mjs'? // esm format file const x = 1; @@ -372,34 +372,34 @@ tests/cases/conformance/node/index.ts(84,21): error TS2307: Cannot find module ' !!! error TS2307: Cannot find module './' or its corresponding type declarations. const _m36 = import("./index"); ~~~~~~~~~ -!!! error TS2307: Cannot find module './index' or its corresponding type declarations. +!!! error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './index.mjs'? const _m37 = import("./subfolder"); ~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. const _m38 = import("./subfolder/"); ~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder/' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. const _m39 = import("./subfolder/index"); ~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder/index' or its corresponding type declarations. +!!! error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder/index.mjs'? const _m40 = import("./subfolder2"); ~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. const _m41 = import("./subfolder2/"); ~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. const _m42 = import("./subfolder2/index"); ~~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/index' or its corresponding type declarations. +!!! error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder2/index.mjs'? const _m43 = import("./subfolder2/another"); ~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/another' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. const _m44 = import("./subfolder2/another/"); ~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/another/' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. const _m45 = import("./subfolder2/another/index"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/another/index' or its corresponding type declarations. +!!! error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder2/another/index.mjs'? // cjs format file const x = 1; export {x}; @@ -422,34 +422,34 @@ tests/cases/conformance/node/index.ts(84,21): error TS2307: Cannot find module ' !!! error TS2307: Cannot find module './' or its corresponding type declarations. import * as m14 from "./index"; ~~~~~~~~~ -!!! error TS2307: Cannot find module './index' or its corresponding type declarations. +!!! error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './index.mjs'? import * as m15 from "./subfolder"; ~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. import * as m16 from "./subfolder/"; ~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder/' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. import * as m17 from "./subfolder/index"; ~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder/index' or its corresponding type declarations. +!!! error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder/index.mjs'? import * as m18 from "./subfolder2"; ~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. import * as m19 from "./subfolder2/"; ~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. import * as m20 from "./subfolder2/index"; ~~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/index' or its corresponding type declarations. +!!! error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder2/index.mjs'? import * as m21 from "./subfolder2/another"; ~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/another' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. import * as m22 from "./subfolder2/another/"; ~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/another/' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. import * as m23 from "./subfolder2/another/index"; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/another/index' or its corresponding type declarations. +!!! error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder2/another/index.mjs'? void m1; void m2; void m3; @@ -514,34 +514,34 @@ tests/cases/conformance/node/index.ts(84,21): error TS2307: Cannot find module ' !!! error TS2307: Cannot find module './' or its corresponding type declarations. const _m36 = import("./index"); ~~~~~~~~~ -!!! error TS2307: Cannot find module './index' or its corresponding type declarations. +!!! error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './index.mjs'? const _m37 = import("./subfolder"); ~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. const _m38 = import("./subfolder/"); ~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder/' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. const _m39 = import("./subfolder/index"); ~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder/index' or its corresponding type declarations. +!!! error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder/index.mjs'? const _m40 = import("./subfolder2"); ~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. const _m41 = import("./subfolder2/"); ~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. const _m42 = import("./subfolder2/index"); ~~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/index' or its corresponding type declarations. +!!! error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder2/index.mjs'? const _m43 = import("./subfolder2/another"); ~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/another' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. const _m44 = import("./subfolder2/another/"); ~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/another/' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. const _m45 = import("./subfolder2/another/index"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/another/index' or its corresponding type declarations. +!!! error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder2/another/index.mjs'? // esm format file const x = 1; export {x}; diff --git a/tests/baselines/reference/nodeModules1(module=nodenext).js b/tests/baselines/reference/nodeModules1(module=nodenext).js index 46163abc085d0..5b6840498ef10 100644 --- a/tests/baselines/reference/nodeModules1(module=nodenext).js +++ b/tests/baselines/reference/nodeModules1(module=nodenext).js @@ -375,7 +375,11 @@ exports.x = x; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/nodeModules1(module=nodenext).types b/tests/baselines/reference/nodeModules1(module=nodenext).types index 3a7a0c0b9b6a3..9f52683c7d748 100644 --- a/tests/baselines/reference/nodeModules1(module=nodenext).types +++ b/tests/baselines/reference/nodeModules1(module=nodenext).types @@ -250,22 +250,22 @@ import m25 = require("./index"); >m25 : typeof m1 import m26 = require("./subfolder"); ->m26 : typeof m4 +>m26 : typeof m26 import m27 = require("./subfolder/"); ->m27 : typeof m4 +>m27 : typeof m26 import m28 = require("./subfolder/index"); ->m28 : typeof m4 +>m28 : typeof m26 import m29 = require("./subfolder2"); ->m29 : typeof m7 +>m29 : typeof m29 import m30 = require("./subfolder2/"); ->m30 : typeof m7 +>m30 : typeof m29 import m31 = require("./subfolder2/index"); ->m31 : typeof m7 +>m31 : typeof m29 import m32 = require("./subfolder2/another"); >m32 : typeof m10 @@ -286,27 +286,27 @@ void m25; void m26; >void m26 : undefined ->m26 : typeof m4 +>m26 : typeof m26 void m27; >void m27 : undefined ->m27 : typeof m4 +>m27 : typeof m26 void m28; >void m28 : undefined ->m28 : typeof m4 +>m28 : typeof m26 void m29; >void m29 : undefined ->m29 : typeof m7 +>m29 : typeof m29 void m30; >void m30 : undefined ->m30 : typeof m7 +>m30 : typeof m29 void m31; >void m31 : undefined ->m31 : typeof m7 +>m31 : typeof m29 void m32; >void m32 : undefined @@ -861,22 +861,22 @@ import m25 = require("./index"); >m25 : typeof m1 import m26 = require("./subfolder"); ->m26 : typeof m4 +>m26 : typeof m26 import m27 = require("./subfolder/"); ->m27 : typeof m4 +>m27 : typeof m26 import m28 = require("./subfolder/index"); ->m28 : typeof m4 +>m28 : typeof m26 import m29 = require("./subfolder2"); ->m29 : typeof m7 +>m29 : typeof m29 import m30 = require("./subfolder2/"); ->m30 : typeof m7 +>m30 : typeof m29 import m31 = require("./subfolder2/index"); ->m31 : typeof m7 +>m31 : typeof m29 import m32 = require("./subfolder2/another"); >m32 : typeof m10 @@ -897,27 +897,27 @@ void m25; void m26; >void m26 : undefined ->m26 : typeof m4 +>m26 : typeof m26 void m27; >void m27 : undefined ->m27 : typeof m4 +>m27 : typeof m26 void m28; >void m28 : undefined ->m28 : typeof m4 +>m28 : typeof m26 void m29; >void m29 : undefined ->m29 : typeof m7 +>m29 : typeof m29 void m30; >void m30 : undefined ->m30 : typeof m7 +>m30 : typeof m29 void m31; >void m31 : undefined ->m31 : typeof m7 +>m31 : typeof m29 void m32; >void m32 : undefined diff --git a/tests/baselines/reference/nodeModulesAllowJs1(module=node12).errors.txt b/tests/baselines/reference/nodeModulesAllowJs1(module=node12).errors.txt index 099485a317c49..178c28ed46004 100644 --- a/tests/baselines/reference/nodeModulesAllowJs1(module=node12).errors.txt +++ b/tests/baselines/reference/nodeModulesAllowJs1(module=node12).errors.txt @@ -26,27 +26,27 @@ tests/cases/conformance/node/allowJs/index.cjs(60,22): error TS1471: Module './s tests/cases/conformance/node/allowJs/index.cjs(61,1): error TS8002: 'import ... =' can only be used in TypeScript files. tests/cases/conformance/node/allowJs/index.cjs(61,22): error TS1471: Module './subfolder2/another/index' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported synchronously. Use dynamic import instead. tests/cases/conformance/node/allowJs/index.cjs(75,21): error TS2307: Cannot find module './' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.cjs(76,21): error TS2307: Cannot find module './index' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.cjs(77,21): error TS2307: Cannot find module './subfolder' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.cjs(78,21): error TS2307: Cannot find module './subfolder/' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.cjs(79,21): error TS2307: Cannot find module './subfolder/index' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.cjs(80,21): error TS2307: Cannot find module './subfolder2' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.cjs(81,21): error TS2307: Cannot find module './subfolder2/' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.cjs(82,21): error TS2307: Cannot find module './subfolder2/index' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.cjs(83,21): error TS2307: Cannot find module './subfolder2/another' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.cjs(84,21): error TS2307: Cannot find module './subfolder2/another/' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.cjs(85,21): error TS2307: Cannot find module './subfolder2/another/index' or its corresponding type declarations. +tests/cases/conformance/node/allowJs/index.cjs(76,21): error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './index.mjs'? +tests/cases/conformance/node/allowJs/index.cjs(77,21): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/allowJs/index.cjs(78,21): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/allowJs/index.cjs(79,21): error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder/index.mjs'? +tests/cases/conformance/node/allowJs/index.cjs(80,21): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/allowJs/index.cjs(81,21): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/allowJs/index.cjs(82,21): error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder2/index.mjs'? +tests/cases/conformance/node/allowJs/index.cjs(83,21): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/allowJs/index.cjs(84,21): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/allowJs/index.cjs(85,21): error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder2/another/index.mjs'? tests/cases/conformance/node/allowJs/index.js(14,22): error TS2307: Cannot find module './' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.js(15,22): error TS2307: Cannot find module './index' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.js(16,22): error TS2307: Cannot find module './subfolder' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.js(17,22): error TS2307: Cannot find module './subfolder/' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.js(18,22): error TS2307: Cannot find module './subfolder/index' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.js(19,22): error TS2307: Cannot find module './subfolder2' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.js(20,22): error TS2307: Cannot find module './subfolder2/' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.js(21,22): error TS2307: Cannot find module './subfolder2/index' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.js(22,22): error TS2307: Cannot find module './subfolder2/another' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.js(23,22): error TS2307: Cannot find module './subfolder2/another/' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.js(24,22): error TS2307: Cannot find module './subfolder2/another/index' or its corresponding type declarations. +tests/cases/conformance/node/allowJs/index.js(15,22): error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './index.mjs'? +tests/cases/conformance/node/allowJs/index.js(16,22): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/allowJs/index.js(17,22): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/allowJs/index.js(18,22): error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder/index.mjs'? +tests/cases/conformance/node/allowJs/index.js(19,22): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/allowJs/index.js(20,22): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/allowJs/index.js(21,22): error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder2/index.mjs'? +tests/cases/conformance/node/allowJs/index.js(22,22): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/allowJs/index.js(23,22): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/allowJs/index.js(24,22): error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder2/another/index.mjs'? tests/cases/conformance/node/allowJs/index.js(50,1): error TS8002: 'import ... =' can only be used in TypeScript files. tests/cases/conformance/node/allowJs/index.js(50,22): error TS1471: Module './' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported synchronously. Use dynamic import instead. tests/cases/conformance/node/allowJs/index.js(51,1): error TS8002: 'import ... =' can only be used in TypeScript files. @@ -64,27 +64,27 @@ tests/cases/conformance/node/allowJs/index.js(59,22): error TS1471: Module './su tests/cases/conformance/node/allowJs/index.js(60,1): error TS8002: 'import ... =' can only be used in TypeScript files. tests/cases/conformance/node/allowJs/index.js(60,22): error TS1471: Module './subfolder2/another/index' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported synchronously. Use dynamic import instead. tests/cases/conformance/node/allowJs/index.js(74,21): error TS2307: Cannot find module './' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.js(75,21): error TS2307: Cannot find module './index' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.js(76,21): error TS2307: Cannot find module './subfolder' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.js(77,21): error TS2307: Cannot find module './subfolder/' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.js(78,21): error TS2307: Cannot find module './subfolder/index' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.js(79,21): error TS2307: Cannot find module './subfolder2' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.js(80,21): error TS2307: Cannot find module './subfolder2/' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.js(81,21): error TS2307: Cannot find module './subfolder2/index' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.js(82,21): error TS2307: Cannot find module './subfolder2/another' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.js(83,21): error TS2307: Cannot find module './subfolder2/another/' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.js(84,21): error TS2307: Cannot find module './subfolder2/another/index' or its corresponding type declarations. +tests/cases/conformance/node/allowJs/index.js(75,21): error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './index.mjs'? +tests/cases/conformance/node/allowJs/index.js(76,21): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/allowJs/index.js(77,21): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/allowJs/index.js(78,21): error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder/index.mjs'? +tests/cases/conformance/node/allowJs/index.js(79,21): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/allowJs/index.js(80,21): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/allowJs/index.js(81,21): error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder2/index.mjs'? +tests/cases/conformance/node/allowJs/index.js(82,21): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/allowJs/index.js(83,21): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/allowJs/index.js(84,21): error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder2/another/index.mjs'? tests/cases/conformance/node/allowJs/index.mjs(14,22): error TS2307: Cannot find module './' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.mjs(15,22): error TS2307: Cannot find module './index' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.mjs(16,22): error TS2307: Cannot find module './subfolder' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.mjs(17,22): error TS2307: Cannot find module './subfolder/' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.mjs(18,22): error TS2307: Cannot find module './subfolder/index' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.mjs(19,22): error TS2307: Cannot find module './subfolder2' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.mjs(20,22): error TS2307: Cannot find module './subfolder2/' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.mjs(21,22): error TS2307: Cannot find module './subfolder2/index' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.mjs(22,22): error TS2307: Cannot find module './subfolder2/another' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.mjs(23,22): error TS2307: Cannot find module './subfolder2/another/' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.mjs(24,22): error TS2307: Cannot find module './subfolder2/another/index' or its corresponding type declarations. +tests/cases/conformance/node/allowJs/index.mjs(15,22): error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './index.mjs'? +tests/cases/conformance/node/allowJs/index.mjs(16,22): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/allowJs/index.mjs(17,22): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/allowJs/index.mjs(18,22): error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder/index.mjs'? +tests/cases/conformance/node/allowJs/index.mjs(19,22): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/allowJs/index.mjs(20,22): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/allowJs/index.mjs(21,22): error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder2/index.mjs'? +tests/cases/conformance/node/allowJs/index.mjs(22,22): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/allowJs/index.mjs(23,22): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/allowJs/index.mjs(24,22): error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder2/another/index.mjs'? tests/cases/conformance/node/allowJs/index.mjs(50,1): error TS8002: 'import ... =' can only be used in TypeScript files. tests/cases/conformance/node/allowJs/index.mjs(50,22): error TS1471: Module './' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported synchronously. Use dynamic import instead. tests/cases/conformance/node/allowJs/index.mjs(51,1): error TS8002: 'import ... =' can only be used in TypeScript files. @@ -102,16 +102,16 @@ tests/cases/conformance/node/allowJs/index.mjs(59,22): error TS1471: Module './s tests/cases/conformance/node/allowJs/index.mjs(60,1): error TS8002: 'import ... =' can only be used in TypeScript files. tests/cases/conformance/node/allowJs/index.mjs(60,22): error TS1471: Module './subfolder2/another/index' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported synchronously. Use dynamic import instead. tests/cases/conformance/node/allowJs/index.mjs(74,21): error TS2307: Cannot find module './' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.mjs(75,21): error TS2307: Cannot find module './index' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.mjs(76,21): error TS2307: Cannot find module './subfolder' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.mjs(77,21): error TS2307: Cannot find module './subfolder/' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.mjs(78,21): error TS2307: Cannot find module './subfolder/index' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.mjs(79,21): error TS2307: Cannot find module './subfolder2' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.mjs(80,21): error TS2307: Cannot find module './subfolder2/' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.mjs(81,21): error TS2307: Cannot find module './subfolder2/index' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.mjs(82,21): error TS2307: Cannot find module './subfolder2/another' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.mjs(83,21): error TS2307: Cannot find module './subfolder2/another/' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.mjs(84,21): error TS2307: Cannot find module './subfolder2/another/index' or its corresponding type declarations. +tests/cases/conformance/node/allowJs/index.mjs(75,21): error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './index.mjs'? +tests/cases/conformance/node/allowJs/index.mjs(76,21): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/allowJs/index.mjs(77,21): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/allowJs/index.mjs(78,21): error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder/index.mjs'? +tests/cases/conformance/node/allowJs/index.mjs(79,21): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/allowJs/index.mjs(80,21): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/allowJs/index.mjs(81,21): error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder2/index.mjs'? +tests/cases/conformance/node/allowJs/index.mjs(82,21): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/allowJs/index.mjs(83,21): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/allowJs/index.mjs(84,21): error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder2/another/index.mjs'? ==== tests/cases/conformance/node/allowJs/subfolder/index.js (0 errors) ==== @@ -169,34 +169,34 @@ tests/cases/conformance/node/allowJs/index.mjs(84,21): error TS2307: Cannot find !!! error TS2307: Cannot find module './' or its corresponding type declarations. import * as m14 from "./index"; ~~~~~~~~~ -!!! error TS2307: Cannot find module './index' or its corresponding type declarations. +!!! error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './index.mjs'? import * as m15 from "./subfolder"; ~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. import * as m16 from "./subfolder/"; ~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder/' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. import * as m17 from "./subfolder/index"; ~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder/index' or its corresponding type declarations. +!!! error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder/index.mjs'? import * as m18 from "./subfolder2"; ~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. import * as m19 from "./subfolder2/"; ~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. import * as m20 from "./subfolder2/index"; ~~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/index' or its corresponding type declarations. +!!! error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder2/index.mjs'? import * as m21 from "./subfolder2/another"; ~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/another' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. import * as m22 from "./subfolder2/another/"; ~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/another/' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. import * as m23 from "./subfolder2/another/index"; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/another/index' or its corresponding type declarations. +!!! error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder2/another/index.mjs'? void m1; void m2; void m3; @@ -283,34 +283,34 @@ tests/cases/conformance/node/allowJs/index.mjs(84,21): error TS2307: Cannot find !!! error TS2307: Cannot find module './' or its corresponding type declarations. const _m36 = import("./index"); ~~~~~~~~~ -!!! error TS2307: Cannot find module './index' or its corresponding type declarations. +!!! error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './index.mjs'? const _m37 = import("./subfolder"); ~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. const _m38 = import("./subfolder/"); ~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder/' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. const _m39 = import("./subfolder/index"); ~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder/index' or its corresponding type declarations. +!!! error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder/index.mjs'? const _m40 = import("./subfolder2"); ~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. const _m41 = import("./subfolder2/"); ~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. const _m42 = import("./subfolder2/index"); ~~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/index' or its corresponding type declarations. +!!! error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder2/index.mjs'? const _m43 = import("./subfolder2/another"); ~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/another' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. const _m44 = import("./subfolder2/another/"); ~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/another/' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. const _m45 = import("./subfolder2/another/index"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/another/index' or its corresponding type declarations. +!!! error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder2/another/index.mjs'? // esm format file const x = 1; export {x}; @@ -448,34 +448,34 @@ tests/cases/conformance/node/allowJs/index.mjs(84,21): error TS2307: Cannot find !!! error TS2307: Cannot find module './' or its corresponding type declarations. const _m36 = import("./index"); ~~~~~~~~~ -!!! error TS2307: Cannot find module './index' or its corresponding type declarations. +!!! error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './index.mjs'? const _m37 = import("./subfolder"); ~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. const _m38 = import("./subfolder/"); ~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder/' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. const _m39 = import("./subfolder/index"); ~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder/index' or its corresponding type declarations. +!!! error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder/index.mjs'? const _m40 = import("./subfolder2"); ~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. const _m41 = import("./subfolder2/"); ~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. const _m42 = import("./subfolder2/index"); ~~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/index' or its corresponding type declarations. +!!! error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder2/index.mjs'? const _m43 = import("./subfolder2/another"); ~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/another' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. const _m44 = import("./subfolder2/another/"); ~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/another/' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. const _m45 = import("./subfolder2/another/index"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/another/index' or its corresponding type declarations. +!!! error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder2/another/index.mjs'? // cjs format file const x = 1; export {x}; @@ -498,34 +498,34 @@ tests/cases/conformance/node/allowJs/index.mjs(84,21): error TS2307: Cannot find !!! error TS2307: Cannot find module './' or its corresponding type declarations. import * as m14 from "./index"; ~~~~~~~~~ -!!! error TS2307: Cannot find module './index' or its corresponding type declarations. +!!! error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './index.mjs'? import * as m15 from "./subfolder"; ~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. import * as m16 from "./subfolder/"; ~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder/' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. import * as m17 from "./subfolder/index"; ~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder/index' or its corresponding type declarations. +!!! error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder/index.mjs'? import * as m18 from "./subfolder2"; ~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. import * as m19 from "./subfolder2/"; ~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. import * as m20 from "./subfolder2/index"; ~~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/index' or its corresponding type declarations. +!!! error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder2/index.mjs'? import * as m21 from "./subfolder2/another"; ~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/another' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. import * as m22 from "./subfolder2/another/"; ~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/another/' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. import * as m23 from "./subfolder2/another/index"; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/another/index' or its corresponding type declarations. +!!! error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder2/another/index.mjs'? void m1; void m2; void m3; @@ -612,34 +612,34 @@ tests/cases/conformance/node/allowJs/index.mjs(84,21): error TS2307: Cannot find !!! error TS2307: Cannot find module './' or its corresponding type declarations. const _m36 = import("./index"); ~~~~~~~~~ -!!! error TS2307: Cannot find module './index' or its corresponding type declarations. +!!! error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './index.mjs'? const _m37 = import("./subfolder"); ~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. const _m38 = import("./subfolder/"); ~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder/' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. const _m39 = import("./subfolder/index"); ~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder/index' or its corresponding type declarations. +!!! error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder/index.mjs'? const _m40 = import("./subfolder2"); ~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. const _m41 = import("./subfolder2/"); ~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. const _m42 = import("./subfolder2/index"); ~~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/index' or its corresponding type declarations. +!!! error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder2/index.mjs'? const _m43 = import("./subfolder2/another"); ~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/another' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. const _m44 = import("./subfolder2/another/"); ~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/another/' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. const _m45 = import("./subfolder2/another/index"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/another/index' or its corresponding type declarations. +!!! error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder2/another/index.mjs'? // esm format file const x = 1; diff --git a/tests/baselines/reference/nodeModulesAllowJs1(module=node12).js b/tests/baselines/reference/nodeModulesAllowJs1(module=node12).js index b9c1d7efe5fbe..1376e7c5aea80 100644 --- a/tests/baselines/reference/nodeModulesAllowJs1(module=node12).js +++ b/tests/baselines/reference/nodeModulesAllowJs1(module=node12).js @@ -375,7 +375,11 @@ export { x }; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/nodeModulesAllowJs1(module=node12).types b/tests/baselines/reference/nodeModulesAllowJs1(module=node12).types index 148c55c036dde..bc08d749cf893 100644 --- a/tests/baselines/reference/nodeModulesAllowJs1(module=node12).types +++ b/tests/baselines/reference/nodeModulesAllowJs1(module=node12).types @@ -250,22 +250,22 @@ import m25 = require("./index"); >m25 : typeof m1 import m26 = require("./subfolder"); ->m26 : typeof m4 +>m26 : typeof m26 import m27 = require("./subfolder/"); ->m27 : typeof m4 +>m27 : typeof m26 import m28 = require("./subfolder/index"); ->m28 : typeof m4 +>m28 : typeof m26 import m29 = require("./subfolder2"); ->m29 : typeof m7 +>m29 : typeof m29 import m30 = require("./subfolder2/"); ->m30 : typeof m7 +>m30 : typeof m29 import m31 = require("./subfolder2/index"); ->m31 : typeof m7 +>m31 : typeof m29 import m32 = require("./subfolder2/another"); >m32 : typeof m10 @@ -286,27 +286,27 @@ void m25; void m26; >void m26 : undefined ->m26 : typeof m4 +>m26 : typeof m26 void m27; >void m27 : undefined ->m27 : typeof m4 +>m27 : typeof m26 void m28; >void m28 : undefined ->m28 : typeof m4 +>m28 : typeof m26 void m29; >void m29 : undefined ->m29 : typeof m7 +>m29 : typeof m29 void m30; >void m30 : undefined ->m30 : typeof m7 +>m30 : typeof m29 void m31; >void m31 : undefined ->m31 : typeof m7 +>m31 : typeof m29 void m32; >void m32 : undefined @@ -861,22 +861,22 @@ import m25 = require("./index"); >m25 : typeof m1 import m26 = require("./subfolder"); ->m26 : typeof m4 +>m26 : typeof m26 import m27 = require("./subfolder/"); ->m27 : typeof m4 +>m27 : typeof m26 import m28 = require("./subfolder/index"); ->m28 : typeof m4 +>m28 : typeof m26 import m29 = require("./subfolder2"); ->m29 : typeof m7 +>m29 : typeof m29 import m30 = require("./subfolder2/"); ->m30 : typeof m7 +>m30 : typeof m29 import m31 = require("./subfolder2/index"); ->m31 : typeof m7 +>m31 : typeof m29 import m32 = require("./subfolder2/another"); >m32 : typeof m10 @@ -897,27 +897,27 @@ void m25; void m26; >void m26 : undefined ->m26 : typeof m4 +>m26 : typeof m26 void m27; >void m27 : undefined ->m27 : typeof m4 +>m27 : typeof m26 void m28; >void m28 : undefined ->m28 : typeof m4 +>m28 : typeof m26 void m29; >void m29 : undefined ->m29 : typeof m7 +>m29 : typeof m29 void m30; >void m30 : undefined ->m30 : typeof m7 +>m30 : typeof m29 void m31; >void m31 : undefined ->m31 : typeof m7 +>m31 : typeof m29 void m32; >void m32 : undefined diff --git a/tests/baselines/reference/nodeModulesAllowJs1(module=nodenext).errors.txt b/tests/baselines/reference/nodeModulesAllowJs1(module=nodenext).errors.txt index 099485a317c49..178c28ed46004 100644 --- a/tests/baselines/reference/nodeModulesAllowJs1(module=nodenext).errors.txt +++ b/tests/baselines/reference/nodeModulesAllowJs1(module=nodenext).errors.txt @@ -26,27 +26,27 @@ tests/cases/conformance/node/allowJs/index.cjs(60,22): error TS1471: Module './s tests/cases/conformance/node/allowJs/index.cjs(61,1): error TS8002: 'import ... =' can only be used in TypeScript files. tests/cases/conformance/node/allowJs/index.cjs(61,22): error TS1471: Module './subfolder2/another/index' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported synchronously. Use dynamic import instead. tests/cases/conformance/node/allowJs/index.cjs(75,21): error TS2307: Cannot find module './' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.cjs(76,21): error TS2307: Cannot find module './index' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.cjs(77,21): error TS2307: Cannot find module './subfolder' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.cjs(78,21): error TS2307: Cannot find module './subfolder/' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.cjs(79,21): error TS2307: Cannot find module './subfolder/index' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.cjs(80,21): error TS2307: Cannot find module './subfolder2' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.cjs(81,21): error TS2307: Cannot find module './subfolder2/' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.cjs(82,21): error TS2307: Cannot find module './subfolder2/index' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.cjs(83,21): error TS2307: Cannot find module './subfolder2/another' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.cjs(84,21): error TS2307: Cannot find module './subfolder2/another/' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.cjs(85,21): error TS2307: Cannot find module './subfolder2/another/index' or its corresponding type declarations. +tests/cases/conformance/node/allowJs/index.cjs(76,21): error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './index.mjs'? +tests/cases/conformance/node/allowJs/index.cjs(77,21): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/allowJs/index.cjs(78,21): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/allowJs/index.cjs(79,21): error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder/index.mjs'? +tests/cases/conformance/node/allowJs/index.cjs(80,21): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/allowJs/index.cjs(81,21): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/allowJs/index.cjs(82,21): error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder2/index.mjs'? +tests/cases/conformance/node/allowJs/index.cjs(83,21): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/allowJs/index.cjs(84,21): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/allowJs/index.cjs(85,21): error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder2/another/index.mjs'? tests/cases/conformance/node/allowJs/index.js(14,22): error TS2307: Cannot find module './' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.js(15,22): error TS2307: Cannot find module './index' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.js(16,22): error TS2307: Cannot find module './subfolder' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.js(17,22): error TS2307: Cannot find module './subfolder/' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.js(18,22): error TS2307: Cannot find module './subfolder/index' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.js(19,22): error TS2307: Cannot find module './subfolder2' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.js(20,22): error TS2307: Cannot find module './subfolder2/' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.js(21,22): error TS2307: Cannot find module './subfolder2/index' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.js(22,22): error TS2307: Cannot find module './subfolder2/another' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.js(23,22): error TS2307: Cannot find module './subfolder2/another/' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.js(24,22): error TS2307: Cannot find module './subfolder2/another/index' or its corresponding type declarations. +tests/cases/conformance/node/allowJs/index.js(15,22): error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './index.mjs'? +tests/cases/conformance/node/allowJs/index.js(16,22): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/allowJs/index.js(17,22): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/allowJs/index.js(18,22): error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder/index.mjs'? +tests/cases/conformance/node/allowJs/index.js(19,22): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/allowJs/index.js(20,22): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/allowJs/index.js(21,22): error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder2/index.mjs'? +tests/cases/conformance/node/allowJs/index.js(22,22): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/allowJs/index.js(23,22): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/allowJs/index.js(24,22): error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder2/another/index.mjs'? tests/cases/conformance/node/allowJs/index.js(50,1): error TS8002: 'import ... =' can only be used in TypeScript files. tests/cases/conformance/node/allowJs/index.js(50,22): error TS1471: Module './' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported synchronously. Use dynamic import instead. tests/cases/conformance/node/allowJs/index.js(51,1): error TS8002: 'import ... =' can only be used in TypeScript files. @@ -64,27 +64,27 @@ tests/cases/conformance/node/allowJs/index.js(59,22): error TS1471: Module './su tests/cases/conformance/node/allowJs/index.js(60,1): error TS8002: 'import ... =' can only be used in TypeScript files. tests/cases/conformance/node/allowJs/index.js(60,22): error TS1471: Module './subfolder2/another/index' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported synchronously. Use dynamic import instead. tests/cases/conformance/node/allowJs/index.js(74,21): error TS2307: Cannot find module './' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.js(75,21): error TS2307: Cannot find module './index' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.js(76,21): error TS2307: Cannot find module './subfolder' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.js(77,21): error TS2307: Cannot find module './subfolder/' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.js(78,21): error TS2307: Cannot find module './subfolder/index' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.js(79,21): error TS2307: Cannot find module './subfolder2' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.js(80,21): error TS2307: Cannot find module './subfolder2/' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.js(81,21): error TS2307: Cannot find module './subfolder2/index' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.js(82,21): error TS2307: Cannot find module './subfolder2/another' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.js(83,21): error TS2307: Cannot find module './subfolder2/another/' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.js(84,21): error TS2307: Cannot find module './subfolder2/another/index' or its corresponding type declarations. +tests/cases/conformance/node/allowJs/index.js(75,21): error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './index.mjs'? +tests/cases/conformance/node/allowJs/index.js(76,21): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/allowJs/index.js(77,21): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/allowJs/index.js(78,21): error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder/index.mjs'? +tests/cases/conformance/node/allowJs/index.js(79,21): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/allowJs/index.js(80,21): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/allowJs/index.js(81,21): error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder2/index.mjs'? +tests/cases/conformance/node/allowJs/index.js(82,21): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/allowJs/index.js(83,21): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/allowJs/index.js(84,21): error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder2/another/index.mjs'? tests/cases/conformance/node/allowJs/index.mjs(14,22): error TS2307: Cannot find module './' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.mjs(15,22): error TS2307: Cannot find module './index' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.mjs(16,22): error TS2307: Cannot find module './subfolder' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.mjs(17,22): error TS2307: Cannot find module './subfolder/' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.mjs(18,22): error TS2307: Cannot find module './subfolder/index' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.mjs(19,22): error TS2307: Cannot find module './subfolder2' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.mjs(20,22): error TS2307: Cannot find module './subfolder2/' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.mjs(21,22): error TS2307: Cannot find module './subfolder2/index' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.mjs(22,22): error TS2307: Cannot find module './subfolder2/another' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.mjs(23,22): error TS2307: Cannot find module './subfolder2/another/' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.mjs(24,22): error TS2307: Cannot find module './subfolder2/another/index' or its corresponding type declarations. +tests/cases/conformance/node/allowJs/index.mjs(15,22): error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './index.mjs'? +tests/cases/conformance/node/allowJs/index.mjs(16,22): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/allowJs/index.mjs(17,22): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/allowJs/index.mjs(18,22): error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder/index.mjs'? +tests/cases/conformance/node/allowJs/index.mjs(19,22): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/allowJs/index.mjs(20,22): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/allowJs/index.mjs(21,22): error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder2/index.mjs'? +tests/cases/conformance/node/allowJs/index.mjs(22,22): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/allowJs/index.mjs(23,22): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/allowJs/index.mjs(24,22): error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder2/another/index.mjs'? tests/cases/conformance/node/allowJs/index.mjs(50,1): error TS8002: 'import ... =' can only be used in TypeScript files. tests/cases/conformance/node/allowJs/index.mjs(50,22): error TS1471: Module './' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported synchronously. Use dynamic import instead. tests/cases/conformance/node/allowJs/index.mjs(51,1): error TS8002: 'import ... =' can only be used in TypeScript files. @@ -102,16 +102,16 @@ tests/cases/conformance/node/allowJs/index.mjs(59,22): error TS1471: Module './s tests/cases/conformance/node/allowJs/index.mjs(60,1): error TS8002: 'import ... =' can only be used in TypeScript files. tests/cases/conformance/node/allowJs/index.mjs(60,22): error TS1471: Module './subfolder2/another/index' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported synchronously. Use dynamic import instead. tests/cases/conformance/node/allowJs/index.mjs(74,21): error TS2307: Cannot find module './' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.mjs(75,21): error TS2307: Cannot find module './index' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.mjs(76,21): error TS2307: Cannot find module './subfolder' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.mjs(77,21): error TS2307: Cannot find module './subfolder/' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.mjs(78,21): error TS2307: Cannot find module './subfolder/index' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.mjs(79,21): error TS2307: Cannot find module './subfolder2' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.mjs(80,21): error TS2307: Cannot find module './subfolder2/' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.mjs(81,21): error TS2307: Cannot find module './subfolder2/index' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.mjs(82,21): error TS2307: Cannot find module './subfolder2/another' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.mjs(83,21): error TS2307: Cannot find module './subfolder2/another/' or its corresponding type declarations. -tests/cases/conformance/node/allowJs/index.mjs(84,21): error TS2307: Cannot find module './subfolder2/another/index' or its corresponding type declarations. +tests/cases/conformance/node/allowJs/index.mjs(75,21): error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './index.mjs'? +tests/cases/conformance/node/allowJs/index.mjs(76,21): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/allowJs/index.mjs(77,21): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/allowJs/index.mjs(78,21): error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder/index.mjs'? +tests/cases/conformance/node/allowJs/index.mjs(79,21): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/allowJs/index.mjs(80,21): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/allowJs/index.mjs(81,21): error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder2/index.mjs'? +tests/cases/conformance/node/allowJs/index.mjs(82,21): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/allowJs/index.mjs(83,21): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/conformance/node/allowJs/index.mjs(84,21): error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder2/another/index.mjs'? ==== tests/cases/conformance/node/allowJs/subfolder/index.js (0 errors) ==== @@ -169,34 +169,34 @@ tests/cases/conformance/node/allowJs/index.mjs(84,21): error TS2307: Cannot find !!! error TS2307: Cannot find module './' or its corresponding type declarations. import * as m14 from "./index"; ~~~~~~~~~ -!!! error TS2307: Cannot find module './index' or its corresponding type declarations. +!!! error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './index.mjs'? import * as m15 from "./subfolder"; ~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. import * as m16 from "./subfolder/"; ~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder/' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. import * as m17 from "./subfolder/index"; ~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder/index' or its corresponding type declarations. +!!! error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder/index.mjs'? import * as m18 from "./subfolder2"; ~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. import * as m19 from "./subfolder2/"; ~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. import * as m20 from "./subfolder2/index"; ~~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/index' or its corresponding type declarations. +!!! error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder2/index.mjs'? import * as m21 from "./subfolder2/another"; ~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/another' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. import * as m22 from "./subfolder2/another/"; ~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/another/' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. import * as m23 from "./subfolder2/another/index"; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/another/index' or its corresponding type declarations. +!!! error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder2/another/index.mjs'? void m1; void m2; void m3; @@ -283,34 +283,34 @@ tests/cases/conformance/node/allowJs/index.mjs(84,21): error TS2307: Cannot find !!! error TS2307: Cannot find module './' or its corresponding type declarations. const _m36 = import("./index"); ~~~~~~~~~ -!!! error TS2307: Cannot find module './index' or its corresponding type declarations. +!!! error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './index.mjs'? const _m37 = import("./subfolder"); ~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. const _m38 = import("./subfolder/"); ~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder/' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. const _m39 = import("./subfolder/index"); ~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder/index' or its corresponding type declarations. +!!! error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder/index.mjs'? const _m40 = import("./subfolder2"); ~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. const _m41 = import("./subfolder2/"); ~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. const _m42 = import("./subfolder2/index"); ~~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/index' or its corresponding type declarations. +!!! error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder2/index.mjs'? const _m43 = import("./subfolder2/another"); ~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/another' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. const _m44 = import("./subfolder2/another/"); ~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/another/' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. const _m45 = import("./subfolder2/another/index"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/another/index' or its corresponding type declarations. +!!! error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder2/another/index.mjs'? // esm format file const x = 1; export {x}; @@ -448,34 +448,34 @@ tests/cases/conformance/node/allowJs/index.mjs(84,21): error TS2307: Cannot find !!! error TS2307: Cannot find module './' or its corresponding type declarations. const _m36 = import("./index"); ~~~~~~~~~ -!!! error TS2307: Cannot find module './index' or its corresponding type declarations. +!!! error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './index.mjs'? const _m37 = import("./subfolder"); ~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. const _m38 = import("./subfolder/"); ~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder/' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. const _m39 = import("./subfolder/index"); ~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder/index' or its corresponding type declarations. +!!! error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder/index.mjs'? const _m40 = import("./subfolder2"); ~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. const _m41 = import("./subfolder2/"); ~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. const _m42 = import("./subfolder2/index"); ~~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/index' or its corresponding type declarations. +!!! error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder2/index.mjs'? const _m43 = import("./subfolder2/another"); ~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/another' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. const _m44 = import("./subfolder2/another/"); ~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/another/' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. const _m45 = import("./subfolder2/another/index"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/another/index' or its corresponding type declarations. +!!! error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder2/another/index.mjs'? // cjs format file const x = 1; export {x}; @@ -498,34 +498,34 @@ tests/cases/conformance/node/allowJs/index.mjs(84,21): error TS2307: Cannot find !!! error TS2307: Cannot find module './' or its corresponding type declarations. import * as m14 from "./index"; ~~~~~~~~~ -!!! error TS2307: Cannot find module './index' or its corresponding type declarations. +!!! error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './index.mjs'? import * as m15 from "./subfolder"; ~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. import * as m16 from "./subfolder/"; ~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder/' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. import * as m17 from "./subfolder/index"; ~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder/index' or its corresponding type declarations. +!!! error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder/index.mjs'? import * as m18 from "./subfolder2"; ~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. import * as m19 from "./subfolder2/"; ~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. import * as m20 from "./subfolder2/index"; ~~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/index' or its corresponding type declarations. +!!! error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder2/index.mjs'? import * as m21 from "./subfolder2/another"; ~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/another' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. import * as m22 from "./subfolder2/another/"; ~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/another/' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. import * as m23 from "./subfolder2/another/index"; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/another/index' or its corresponding type declarations. +!!! error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder2/another/index.mjs'? void m1; void m2; void m3; @@ -612,34 +612,34 @@ tests/cases/conformance/node/allowJs/index.mjs(84,21): error TS2307: Cannot find !!! error TS2307: Cannot find module './' or its corresponding type declarations. const _m36 = import("./index"); ~~~~~~~~~ -!!! error TS2307: Cannot find module './index' or its corresponding type declarations. +!!! error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './index.mjs'? const _m37 = import("./subfolder"); ~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. const _m38 = import("./subfolder/"); ~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder/' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. const _m39 = import("./subfolder/index"); ~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder/index' or its corresponding type declarations. +!!! error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder/index.mjs'? const _m40 = import("./subfolder2"); ~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. const _m41 = import("./subfolder2/"); ~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. const _m42 = import("./subfolder2/index"); ~~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/index' or its corresponding type declarations. +!!! error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder2/index.mjs'? const _m43 = import("./subfolder2/another"); ~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/another' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. const _m44 = import("./subfolder2/another/"); ~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/another/' or its corresponding type declarations. +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. const _m45 = import("./subfolder2/another/index"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2307: Cannot find module './subfolder2/another/index' or its corresponding type declarations. +!!! error TS2835: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Did you mean './subfolder2/another/index.mjs'? // esm format file const x = 1; diff --git a/tests/baselines/reference/nodeModulesAllowJs1(module=nodenext).js b/tests/baselines/reference/nodeModulesAllowJs1(module=nodenext).js index b9c1d7efe5fbe..1376e7c5aea80 100644 --- a/tests/baselines/reference/nodeModulesAllowJs1(module=nodenext).js +++ b/tests/baselines/reference/nodeModulesAllowJs1(module=nodenext).js @@ -375,7 +375,11 @@ export { x }; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/nodeModulesAllowJs1(module=nodenext).types b/tests/baselines/reference/nodeModulesAllowJs1(module=nodenext).types index 148c55c036dde..bc08d749cf893 100644 --- a/tests/baselines/reference/nodeModulesAllowJs1(module=nodenext).types +++ b/tests/baselines/reference/nodeModulesAllowJs1(module=nodenext).types @@ -250,22 +250,22 @@ import m25 = require("./index"); >m25 : typeof m1 import m26 = require("./subfolder"); ->m26 : typeof m4 +>m26 : typeof m26 import m27 = require("./subfolder/"); ->m27 : typeof m4 +>m27 : typeof m26 import m28 = require("./subfolder/index"); ->m28 : typeof m4 +>m28 : typeof m26 import m29 = require("./subfolder2"); ->m29 : typeof m7 +>m29 : typeof m29 import m30 = require("./subfolder2/"); ->m30 : typeof m7 +>m30 : typeof m29 import m31 = require("./subfolder2/index"); ->m31 : typeof m7 +>m31 : typeof m29 import m32 = require("./subfolder2/another"); >m32 : typeof m10 @@ -286,27 +286,27 @@ void m25; void m26; >void m26 : undefined ->m26 : typeof m4 +>m26 : typeof m26 void m27; >void m27 : undefined ->m27 : typeof m4 +>m27 : typeof m26 void m28; >void m28 : undefined ->m28 : typeof m4 +>m28 : typeof m26 void m29; >void m29 : undefined ->m29 : typeof m7 +>m29 : typeof m29 void m30; >void m30 : undefined ->m30 : typeof m7 +>m30 : typeof m29 void m31; >void m31 : undefined ->m31 : typeof m7 +>m31 : typeof m29 void m32; >void m32 : undefined @@ -861,22 +861,22 @@ import m25 = require("./index"); >m25 : typeof m1 import m26 = require("./subfolder"); ->m26 : typeof m4 +>m26 : typeof m26 import m27 = require("./subfolder/"); ->m27 : typeof m4 +>m27 : typeof m26 import m28 = require("./subfolder/index"); ->m28 : typeof m4 +>m28 : typeof m26 import m29 = require("./subfolder2"); ->m29 : typeof m7 +>m29 : typeof m29 import m30 = require("./subfolder2/"); ->m30 : typeof m7 +>m30 : typeof m29 import m31 = require("./subfolder2/index"); ->m31 : typeof m7 +>m31 : typeof m29 import m32 = require("./subfolder2/another"); >m32 : typeof m10 @@ -897,27 +897,27 @@ void m25; void m26; >void m26 : undefined ->m26 : typeof m4 +>m26 : typeof m26 void m27; >void m27 : undefined ->m27 : typeof m4 +>m27 : typeof m26 void m28; >void m28 : undefined ->m28 : typeof m4 +>m28 : typeof m26 void m29; >void m29 : undefined ->m29 : typeof m7 +>m29 : typeof m29 void m30; >void m30 : undefined ->m30 : typeof m7 +>m30 : typeof m29 void m31; >void m31 : undefined ->m31 : typeof m7 +>m31 : typeof m29 void m32; >void m32 : undefined diff --git a/tests/baselines/reference/nodeModulesAllowJsCjsFromJs(module=node12).types b/tests/baselines/reference/nodeModulesAllowJsCjsFromJs(module=node12).types index f8cc5f35bbb92..7559910259cdc 100644 --- a/tests/baselines/reference/nodeModulesAllowJsCjsFromJs(module=node12).types +++ b/tests/baselines/reference/nodeModulesAllowJsCjsFromJs(module=node12).types @@ -1,9 +1,9 @@ === tests/cases/conformance/node/allowJs/foo.cjs === exports.foo = "foo" >exports.foo = "foo" : "foo" ->exports.foo : string +>exports.foo : "foo" >exports : typeof import("tests/cases/conformance/node/allowJs/foo") ->foo : string +>foo : "foo" >"foo" : "foo" === tests/cases/conformance/node/allowJs/bar.ts === @@ -11,7 +11,7 @@ import foo from "./foo.cjs" >foo : typeof foo foo.foo; ->foo.foo : string +>foo.foo : "foo" >foo : typeof foo ->foo : string +>foo : "foo" diff --git a/tests/baselines/reference/nodeModulesAllowJsCjsFromJs(module=nodenext).types b/tests/baselines/reference/nodeModulesAllowJsCjsFromJs(module=nodenext).types index f8cc5f35bbb92..7559910259cdc 100644 --- a/tests/baselines/reference/nodeModulesAllowJsCjsFromJs(module=nodenext).types +++ b/tests/baselines/reference/nodeModulesAllowJsCjsFromJs(module=nodenext).types @@ -1,9 +1,9 @@ === tests/cases/conformance/node/allowJs/foo.cjs === exports.foo = "foo" >exports.foo = "foo" : "foo" ->exports.foo : string +>exports.foo : "foo" >exports : typeof import("tests/cases/conformance/node/allowJs/foo") ->foo : string +>foo : "foo" >"foo" : "foo" === tests/cases/conformance/node/allowJs/bar.ts === @@ -11,7 +11,7 @@ import foo from "./foo.cjs" >foo : typeof foo foo.foo; ->foo.foo : string +>foo.foo : "foo" >foo : typeof foo ->foo : string +>foo : "foo" diff --git a/tests/baselines/reference/nodeModulesAllowJsConditionalPackageExports(module=node12).js b/tests/baselines/reference/nodeModulesAllowJsConditionalPackageExports(module=node12).js index 77df1469fbf62..bd0f2a7780760 100644 --- a/tests/baselines/reference/nodeModulesAllowJsConditionalPackageExports(module=node12).js +++ b/tests/baselines/reference/nodeModulesAllowJsConditionalPackageExports(module=node12).js @@ -158,7 +158,11 @@ ts.mjsSource; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/nodeModulesAllowJsConditionalPackageExports(module=nodenext).js b/tests/baselines/reference/nodeModulesAllowJsConditionalPackageExports(module=nodenext).js index 77df1469fbf62..bd0f2a7780760 100644 --- a/tests/baselines/reference/nodeModulesAllowJsConditionalPackageExports(module=nodenext).js +++ b/tests/baselines/reference/nodeModulesAllowJsConditionalPackageExports(module=nodenext).js @@ -158,7 +158,11 @@ ts.mjsSource; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/nodeModulesAllowJsImportHelpersCollisions1(module=node12).js b/tests/baselines/reference/nodeModulesAllowJsImportHelpersCollisions1(module=node12).js index 4001d6f471cf5..a30d220227f20 100644 --- a/tests/baselines/reference/nodeModulesAllowJsImportHelpersCollisions1(module=node12).js +++ b/tests/baselines/reference/nodeModulesAllowJsImportHelpersCollisions1(module=node12).js @@ -34,9 +34,9 @@ declare module "tslib" { Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = require("tslib"); // cjs format file -const fs_1 = (0, tslib_1.__importDefault)(require("fs")); +const fs_1 = tslib_1.__importDefault(require("fs")); fs_1.default.readFile; -const fs = (0, tslib_1.__importStar)(require("fs")); +const fs = tslib_1.__importStar(require("fs")); fs.readFile; //// [index.js] // esm format file diff --git a/tests/baselines/reference/nodeModulesAllowJsImportHelpersCollisions1(module=nodenext).js b/tests/baselines/reference/nodeModulesAllowJsImportHelpersCollisions1(module=nodenext).js index 4001d6f471cf5..a30d220227f20 100644 --- a/tests/baselines/reference/nodeModulesAllowJsImportHelpersCollisions1(module=nodenext).js +++ b/tests/baselines/reference/nodeModulesAllowJsImportHelpersCollisions1(module=nodenext).js @@ -34,9 +34,9 @@ declare module "tslib" { Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = require("tslib"); // cjs format file -const fs_1 = (0, tslib_1.__importDefault)(require("fs")); +const fs_1 = tslib_1.__importDefault(require("fs")); fs_1.default.readFile; -const fs = (0, tslib_1.__importStar)(require("fs")); +const fs = tslib_1.__importStar(require("fs")); fs.readFile; //// [index.js] // esm format file diff --git a/tests/baselines/reference/nodeModulesAllowJsImportHelpersCollisions2(module=node12).js b/tests/baselines/reference/nodeModulesAllowJsImportHelpersCollisions2(module=node12).js index e23bc86265999..f689312eb37ee 100644 --- a/tests/baselines/reference/nodeModulesAllowJsImportHelpersCollisions2(module=node12).js +++ b/tests/baselines/reference/nodeModulesAllowJsImportHelpersCollisions2(module=node12).js @@ -31,8 +31,8 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.fs = void 0; const tslib_1 = require("tslib"); // cjs format file -(0, tslib_1.__exportStar)(require("fs"), exports); -exports.fs = (0, tslib_1.__importStar)(require("fs")); +tslib_1.__exportStar(require("fs"), exports); +exports.fs = tslib_1.__importStar(require("fs")); //// [index.js] // esm format file export * from "fs"; diff --git a/tests/baselines/reference/nodeModulesAllowJsImportHelpersCollisions2(module=nodenext).js b/tests/baselines/reference/nodeModulesAllowJsImportHelpersCollisions2(module=nodenext).js index e23bc86265999..f689312eb37ee 100644 --- a/tests/baselines/reference/nodeModulesAllowJsImportHelpersCollisions2(module=nodenext).js +++ b/tests/baselines/reference/nodeModulesAllowJsImportHelpersCollisions2(module=nodenext).js @@ -31,8 +31,8 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.fs = void 0; const tslib_1 = require("tslib"); // cjs format file -(0, tslib_1.__exportStar)(require("fs"), exports); -exports.fs = (0, tslib_1.__importStar)(require("fs")); +tslib_1.__exportStar(require("fs"), exports); +exports.fs = tslib_1.__importStar(require("fs")); //// [index.js] // esm format file export * from "fs"; diff --git a/tests/baselines/reference/nodeModulesAllowJsPackageExports(module=node12).js b/tests/baselines/reference/nodeModulesAllowJsPackageExports(module=node12).js index dfb76ab777867..cce457e2d41c5 100644 --- a/tests/baselines/reference/nodeModulesAllowJsPackageExports(module=node12).js +++ b/tests/baselines/reference/nodeModulesAllowJsPackageExports(module=node12).js @@ -120,7 +120,11 @@ typei; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/nodeModulesAllowJsPackageExports(module=node12).symbols b/tests/baselines/reference/nodeModulesAllowJsPackageExports(module=node12).symbols index 67cf88b744a92..44c1af0264852 100644 --- a/tests/baselines/reference/nodeModulesAllowJsPackageExports(module=node12).symbols +++ b/tests/baselines/reference/nodeModulesAllowJsPackageExports(module=node12).symbols @@ -124,13 +124,13 @@ import * as type from "inner"; >type : Symbol(type, Decl(index.d.ts, 3, 6)) export { cjs }; ->cjs : Symbol(mjs.cjs.type.cjs, Decl(index.d.ts, 4, 8)) +>cjs : Symbol(mjs.cjs.cjs.type.cjs, Decl(index.d.ts, 4, 8)) export { mjs }; ->mjs : Symbol(mjs.cjs.type.mjs, Decl(index.d.ts, 5, 8)) +>mjs : Symbol(mjs.cjs.cjs.type.mjs, Decl(index.d.ts, 5, 8)) export { type }; ->type : Symbol(mjs.cjs.type.type, Decl(index.d.ts, 6, 8)) +>type : Symbol(mjs.cjs.cjs.type.type, Decl(index.d.ts, 6, 8)) === tests/cases/conformance/node/allowJs/node_modules/inner/index.d.mts === // esm format file @@ -144,13 +144,13 @@ import * as type from "inner"; >type : Symbol(type, Decl(index.d.mts, 3, 6)) export { cjs }; ->cjs : Symbol(cjs.mjs.cjs, Decl(index.d.mts, 4, 8)) +>cjs : Symbol(cjs.cjs.mjs.cjs, Decl(index.d.mts, 4, 8)) export { mjs }; ->mjs : Symbol(cjs.mjs.mjs, Decl(index.d.mts, 5, 8)) +>mjs : Symbol(cjs.cjs.mjs.mjs, Decl(index.d.mts, 5, 8)) export { type }; ->type : Symbol(cjs.mjs.type, Decl(index.d.mts, 6, 8)) +>type : Symbol(cjs.cjs.mjs.type, Decl(index.d.mts, 6, 8)) === tests/cases/conformance/node/allowJs/node_modules/inner/index.d.cts === // cjs format file diff --git a/tests/baselines/reference/nodeModulesAllowJsPackageExports(module=node12).types b/tests/baselines/reference/nodeModulesAllowJsPackageExports(module=node12).types index a4138d3738e89..f610f5095dde4 100644 --- a/tests/baselines/reference/nodeModulesAllowJsPackageExports(module=node12).types +++ b/tests/baselines/reference/nodeModulesAllowJsPackageExports(module=node12).types @@ -22,19 +22,19 @@ import * as cjsi from "inner/cjs"; >cjsi : typeof cjsi import * as mjsi from "inner/mjs"; ->mjsi : typeof cjsi.mjs +>mjsi : typeof cjsi.cjs.mjs import * as typei from "inner"; ->typei : typeof cjsi.mjs.type +>typei : typeof typei cjsi; >cjsi : typeof cjsi mjsi; ->mjsi : typeof cjsi.mjs +>mjsi : typeof cjsi.cjs.mjs typei; ->typei : typeof cjsi.mjs.type +>typei : typeof typei === tests/cases/conformance/node/allowJs/index.mjs === // esm format file @@ -60,19 +60,19 @@ import * as cjsi from "inner/cjs"; >cjsi : typeof cjsi import * as mjsi from "inner/mjs"; ->mjsi : typeof cjsi.mjs +>mjsi : typeof cjsi.cjs.mjs import * as typei from "inner"; ->typei : typeof cjsi.mjs.type +>typei : typeof typei cjsi; >cjsi : typeof cjsi mjsi; ->mjsi : typeof cjsi.mjs +>mjsi : typeof cjsi.cjs.mjs typei; ->typei : typeof cjsi.mjs.type +>typei : typeof typei === tests/cases/conformance/node/allowJs/index.cjs === // cjs format file @@ -101,7 +101,7 @@ import * as mjsi from "inner/mjs"; >mjsi : typeof cjsi.mjs import * as typei from "inner"; ->typei : typeof cjsi.mjs.type +>typei : typeof cjsi.mjs.cjs.type cjsi; >cjsi : typeof cjsi @@ -110,7 +110,7 @@ mjsi; >mjsi : typeof cjsi.mjs typei; ->typei : typeof cjsi.mjs.type +>typei : typeof cjsi.mjs.cjs.type === tests/cases/conformance/node/allowJs/node_modules/inner/index.d.ts === // cjs format file @@ -121,7 +121,7 @@ import * as mjs from "inner/mjs"; >mjs : typeof mjs import * as type from "inner"; ->type : typeof mjs.cjs.type +>type : typeof mjs.cjs.cjs.type export { cjs }; >cjs : any @@ -130,7 +130,7 @@ export { mjs }; >mjs : typeof mjs export { type }; ->type : typeof mjs.cjs.type +>type : typeof mjs.cjs.cjs.type === tests/cases/conformance/node/allowJs/node_modules/inner/index.d.mts === // esm format file @@ -138,19 +138,19 @@ import * as cjs from "inner/cjs"; >cjs : typeof cjs import * as mjs from "inner/mjs"; ->mjs : typeof cjs.mjs +>mjs : typeof cjs.cjs.mjs import * as type from "inner"; ->type : typeof cjs.mjs.type +>type : typeof cjs.cjs.mjs.type export { cjs }; >cjs : typeof cjs export { mjs }; ->mjs : typeof cjs.mjs +>mjs : typeof cjs.cjs.mjs export { type }; ->type : typeof cjs.mjs.type +>type : typeof cjs.cjs.mjs.type === tests/cases/conformance/node/allowJs/node_modules/inner/index.d.cts === // cjs format file @@ -161,7 +161,7 @@ import * as mjs from "inner/mjs"; >mjs : typeof cjs.mjs import * as type from "inner"; ->type : typeof cjs.mjs.type +>type : typeof cjs.mjs.cjs.type export { cjs }; >cjs : typeof cjs @@ -170,5 +170,5 @@ export { mjs }; >mjs : typeof cjs.mjs export { type }; ->type : typeof cjs.mjs.type +>type : typeof cjs.mjs.cjs.type diff --git a/tests/baselines/reference/nodeModulesAllowJsPackageExports(module=nodenext).js b/tests/baselines/reference/nodeModulesAllowJsPackageExports(module=nodenext).js index dfb76ab777867..cce457e2d41c5 100644 --- a/tests/baselines/reference/nodeModulesAllowJsPackageExports(module=nodenext).js +++ b/tests/baselines/reference/nodeModulesAllowJsPackageExports(module=nodenext).js @@ -120,7 +120,11 @@ typei; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/nodeModulesAllowJsPackageExports(module=nodenext).symbols b/tests/baselines/reference/nodeModulesAllowJsPackageExports(module=nodenext).symbols index 67cf88b744a92..44c1af0264852 100644 --- a/tests/baselines/reference/nodeModulesAllowJsPackageExports(module=nodenext).symbols +++ b/tests/baselines/reference/nodeModulesAllowJsPackageExports(module=nodenext).symbols @@ -124,13 +124,13 @@ import * as type from "inner"; >type : Symbol(type, Decl(index.d.ts, 3, 6)) export { cjs }; ->cjs : Symbol(mjs.cjs.type.cjs, Decl(index.d.ts, 4, 8)) +>cjs : Symbol(mjs.cjs.cjs.type.cjs, Decl(index.d.ts, 4, 8)) export { mjs }; ->mjs : Symbol(mjs.cjs.type.mjs, Decl(index.d.ts, 5, 8)) +>mjs : Symbol(mjs.cjs.cjs.type.mjs, Decl(index.d.ts, 5, 8)) export { type }; ->type : Symbol(mjs.cjs.type.type, Decl(index.d.ts, 6, 8)) +>type : Symbol(mjs.cjs.cjs.type.type, Decl(index.d.ts, 6, 8)) === tests/cases/conformance/node/allowJs/node_modules/inner/index.d.mts === // esm format file @@ -144,13 +144,13 @@ import * as type from "inner"; >type : Symbol(type, Decl(index.d.mts, 3, 6)) export { cjs }; ->cjs : Symbol(cjs.mjs.cjs, Decl(index.d.mts, 4, 8)) +>cjs : Symbol(cjs.cjs.mjs.cjs, Decl(index.d.mts, 4, 8)) export { mjs }; ->mjs : Symbol(cjs.mjs.mjs, Decl(index.d.mts, 5, 8)) +>mjs : Symbol(cjs.cjs.mjs.mjs, Decl(index.d.mts, 5, 8)) export { type }; ->type : Symbol(cjs.mjs.type, Decl(index.d.mts, 6, 8)) +>type : Symbol(cjs.cjs.mjs.type, Decl(index.d.mts, 6, 8)) === tests/cases/conformance/node/allowJs/node_modules/inner/index.d.cts === // cjs format file diff --git a/tests/baselines/reference/nodeModulesAllowJsPackageExports(module=nodenext).types b/tests/baselines/reference/nodeModulesAllowJsPackageExports(module=nodenext).types index a4138d3738e89..f610f5095dde4 100644 --- a/tests/baselines/reference/nodeModulesAllowJsPackageExports(module=nodenext).types +++ b/tests/baselines/reference/nodeModulesAllowJsPackageExports(module=nodenext).types @@ -22,19 +22,19 @@ import * as cjsi from "inner/cjs"; >cjsi : typeof cjsi import * as mjsi from "inner/mjs"; ->mjsi : typeof cjsi.mjs +>mjsi : typeof cjsi.cjs.mjs import * as typei from "inner"; ->typei : typeof cjsi.mjs.type +>typei : typeof typei cjsi; >cjsi : typeof cjsi mjsi; ->mjsi : typeof cjsi.mjs +>mjsi : typeof cjsi.cjs.mjs typei; ->typei : typeof cjsi.mjs.type +>typei : typeof typei === tests/cases/conformance/node/allowJs/index.mjs === // esm format file @@ -60,19 +60,19 @@ import * as cjsi from "inner/cjs"; >cjsi : typeof cjsi import * as mjsi from "inner/mjs"; ->mjsi : typeof cjsi.mjs +>mjsi : typeof cjsi.cjs.mjs import * as typei from "inner"; ->typei : typeof cjsi.mjs.type +>typei : typeof typei cjsi; >cjsi : typeof cjsi mjsi; ->mjsi : typeof cjsi.mjs +>mjsi : typeof cjsi.cjs.mjs typei; ->typei : typeof cjsi.mjs.type +>typei : typeof typei === tests/cases/conformance/node/allowJs/index.cjs === // cjs format file @@ -101,7 +101,7 @@ import * as mjsi from "inner/mjs"; >mjsi : typeof cjsi.mjs import * as typei from "inner"; ->typei : typeof cjsi.mjs.type +>typei : typeof cjsi.mjs.cjs.type cjsi; >cjsi : typeof cjsi @@ -110,7 +110,7 @@ mjsi; >mjsi : typeof cjsi.mjs typei; ->typei : typeof cjsi.mjs.type +>typei : typeof cjsi.mjs.cjs.type === tests/cases/conformance/node/allowJs/node_modules/inner/index.d.ts === // cjs format file @@ -121,7 +121,7 @@ import * as mjs from "inner/mjs"; >mjs : typeof mjs import * as type from "inner"; ->type : typeof mjs.cjs.type +>type : typeof mjs.cjs.cjs.type export { cjs }; >cjs : any @@ -130,7 +130,7 @@ export { mjs }; >mjs : typeof mjs export { type }; ->type : typeof mjs.cjs.type +>type : typeof mjs.cjs.cjs.type === tests/cases/conformance/node/allowJs/node_modules/inner/index.d.mts === // esm format file @@ -138,19 +138,19 @@ import * as cjs from "inner/cjs"; >cjs : typeof cjs import * as mjs from "inner/mjs"; ->mjs : typeof cjs.mjs +>mjs : typeof cjs.cjs.mjs import * as type from "inner"; ->type : typeof cjs.mjs.type +>type : typeof cjs.cjs.mjs.type export { cjs }; >cjs : typeof cjs export { mjs }; ->mjs : typeof cjs.mjs +>mjs : typeof cjs.cjs.mjs export { type }; ->type : typeof cjs.mjs.type +>type : typeof cjs.cjs.mjs.type === tests/cases/conformance/node/allowJs/node_modules/inner/index.d.cts === // cjs format file @@ -161,7 +161,7 @@ import * as mjs from "inner/mjs"; >mjs : typeof cjs.mjs import * as type from "inner"; ->type : typeof cjs.mjs.type +>type : typeof cjs.mjs.cjs.type export { cjs }; >cjs : typeof cjs @@ -170,5 +170,5 @@ export { mjs }; >mjs : typeof cjs.mjs export { type }; ->type : typeof cjs.mjs.type +>type : typeof cjs.mjs.cjs.type diff --git a/tests/baselines/reference/nodeModulesAllowJsPackageImports(module=node12).js b/tests/baselines/reference/nodeModulesAllowJsPackageImports(module=node12).js index c6fa45d5bb7a3..634e532de497a 100644 --- a/tests/baselines/reference/nodeModulesAllowJsPackageImports(module=node12).js +++ b/tests/baselines/reference/nodeModulesAllowJsPackageImports(module=node12).js @@ -57,7 +57,11 @@ type; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/nodeModulesAllowJsPackageImports(module=nodenext).js b/tests/baselines/reference/nodeModulesAllowJsPackageImports(module=nodenext).js index c6fa45d5bb7a3..634e532de497a 100644 --- a/tests/baselines/reference/nodeModulesAllowJsPackageImports(module=nodenext).js +++ b/tests/baselines/reference/nodeModulesAllowJsPackageImports(module=nodenext).js @@ -57,7 +57,11 @@ type; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/nodeModulesAllowJsPackagePatternExports(module=node12).js b/tests/baselines/reference/nodeModulesAllowJsPackagePatternExports(module=node12).js index b2ef85d6e5f97..db1bb37d36aac 100644 --- a/tests/baselines/reference/nodeModulesAllowJsPackagePatternExports(module=node12).js +++ b/tests/baselines/reference/nodeModulesAllowJsPackagePatternExports(module=node12).js @@ -85,7 +85,11 @@ typei; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/nodeModulesAllowJsPackagePatternExports(module=node12).symbols b/tests/baselines/reference/nodeModulesAllowJsPackagePatternExports(module=node12).symbols index 3b5ca0ad0c6c7..714bff6bd6b42 100644 --- a/tests/baselines/reference/nodeModulesAllowJsPackagePatternExports(module=node12).symbols +++ b/tests/baselines/reference/nodeModulesAllowJsPackagePatternExports(module=node12).symbols @@ -70,13 +70,13 @@ import * as type from "inner/js/index"; >type : Symbol(type, Decl(index.d.ts, 3, 6)) export { cjs }; ->cjs : Symbol(mjs.cjs.type.cjs, Decl(index.d.ts, 4, 8)) +>cjs : Symbol(mjs.cjs.cjs.type.cjs, Decl(index.d.ts, 4, 8)) export { mjs }; ->mjs : Symbol(mjs.cjs.type.mjs, Decl(index.d.ts, 5, 8)) +>mjs : Symbol(mjs.cjs.cjs.type.mjs, Decl(index.d.ts, 5, 8)) export { type }; ->type : Symbol(mjs.cjs.type.type, Decl(index.d.ts, 6, 8)) +>type : Symbol(mjs.cjs.cjs.type.type, Decl(index.d.ts, 6, 8)) === tests/cases/conformance/node/allowJs/node_modules/inner/index.d.mts === // esm format file @@ -90,13 +90,13 @@ import * as type from "inner/js/index"; >type : Symbol(type, Decl(index.d.mts, 3, 6)) export { cjs }; ->cjs : Symbol(cjs.mjs.cjs, Decl(index.d.mts, 4, 8)) +>cjs : Symbol(cjs.cjs.mjs.cjs, Decl(index.d.mts, 4, 8)) export { mjs }; ->mjs : Symbol(cjs.mjs.mjs, Decl(index.d.mts, 5, 8)) +>mjs : Symbol(cjs.cjs.mjs.mjs, Decl(index.d.mts, 5, 8)) export { type }; ->type : Symbol(cjs.mjs.type, Decl(index.d.mts, 6, 8)) +>type : Symbol(cjs.cjs.mjs.type, Decl(index.d.mts, 6, 8)) === tests/cases/conformance/node/allowJs/node_modules/inner/index.d.cts === // cjs format file diff --git a/tests/baselines/reference/nodeModulesAllowJsPackagePatternExports(module=node12).types b/tests/baselines/reference/nodeModulesAllowJsPackagePatternExports(module=node12).types index 65f2fc46d87f6..2103a12734ab3 100644 --- a/tests/baselines/reference/nodeModulesAllowJsPackagePatternExports(module=node12).types +++ b/tests/baselines/reference/nodeModulesAllowJsPackagePatternExports(module=node12).types @@ -4,19 +4,19 @@ import * as cjsi from "inner/cjs/index"; >cjsi : typeof cjsi import * as mjsi from "inner/mjs/index"; ->mjsi : typeof cjsi.mjs +>mjsi : typeof cjsi.cjs.mjs import * as typei from "inner/js/index"; ->typei : typeof cjsi.mjs.type +>typei : typeof typei cjsi; >cjsi : typeof cjsi mjsi; ->mjsi : typeof cjsi.mjs +>mjsi : typeof cjsi.cjs.mjs typei; ->typei : typeof cjsi.mjs.type +>typei : typeof typei === tests/cases/conformance/node/allowJs/index.mjs === // esm format file @@ -24,19 +24,19 @@ import * as cjsi from "inner/cjs/index"; >cjsi : typeof cjsi import * as mjsi from "inner/mjs/index"; ->mjsi : typeof cjsi.mjs +>mjsi : typeof cjsi.cjs.mjs import * as typei from "inner/js/index"; ->typei : typeof cjsi.mjs.type +>typei : typeof typei cjsi; >cjsi : typeof cjsi mjsi; ->mjsi : typeof cjsi.mjs +>mjsi : typeof cjsi.cjs.mjs typei; ->typei : typeof cjsi.mjs.type +>typei : typeof typei === tests/cases/conformance/node/allowJs/index.cjs === // cjs format file @@ -47,7 +47,7 @@ import * as mjsi from "inner/mjs/index"; >mjsi : typeof cjsi.mjs import * as typei from "inner/js/index"; ->typei : typeof cjsi.mjs.type +>typei : typeof cjsi.mjs.cjs.type cjsi; >cjsi : typeof cjsi @@ -56,7 +56,7 @@ mjsi; >mjsi : typeof cjsi.mjs typei; ->typei : typeof cjsi.mjs.type +>typei : typeof cjsi.mjs.cjs.type === tests/cases/conformance/node/allowJs/node_modules/inner/index.d.ts === // cjs format file @@ -67,7 +67,7 @@ import * as mjs from "inner/mjs/index"; >mjs : typeof mjs import * as type from "inner/js/index"; ->type : typeof mjs.cjs.type +>type : typeof mjs.cjs.cjs.type export { cjs }; >cjs : any @@ -76,7 +76,7 @@ export { mjs }; >mjs : typeof mjs export { type }; ->type : typeof mjs.cjs.type +>type : typeof mjs.cjs.cjs.type === tests/cases/conformance/node/allowJs/node_modules/inner/index.d.mts === // esm format file @@ -84,19 +84,19 @@ import * as cjs from "inner/cjs/index"; >cjs : typeof cjs import * as mjs from "inner/mjs/index"; ->mjs : typeof cjs.mjs +>mjs : typeof cjs.cjs.mjs import * as type from "inner/js/index"; ->type : typeof cjs.mjs.type +>type : typeof cjs.cjs.mjs.type export { cjs }; >cjs : typeof cjs export { mjs }; ->mjs : typeof cjs.mjs +>mjs : typeof cjs.cjs.mjs export { type }; ->type : typeof cjs.mjs.type +>type : typeof cjs.cjs.mjs.type === tests/cases/conformance/node/allowJs/node_modules/inner/index.d.cts === // cjs format file @@ -107,7 +107,7 @@ import * as mjs from "inner/mjs/index"; >mjs : typeof cjs.mjs import * as type from "inner/js/index"; ->type : typeof cjs.mjs.type +>type : typeof cjs.mjs.cjs.type export { cjs }; >cjs : typeof cjs @@ -116,5 +116,5 @@ export { mjs }; >mjs : typeof cjs.mjs export { type }; ->type : typeof cjs.mjs.type +>type : typeof cjs.mjs.cjs.type diff --git a/tests/baselines/reference/nodeModulesAllowJsPackagePatternExports(module=nodenext).js b/tests/baselines/reference/nodeModulesAllowJsPackagePatternExports(module=nodenext).js index b2ef85d6e5f97..db1bb37d36aac 100644 --- a/tests/baselines/reference/nodeModulesAllowJsPackagePatternExports(module=nodenext).js +++ b/tests/baselines/reference/nodeModulesAllowJsPackagePatternExports(module=nodenext).js @@ -85,7 +85,11 @@ typei; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/nodeModulesAllowJsPackagePatternExports(module=nodenext).symbols b/tests/baselines/reference/nodeModulesAllowJsPackagePatternExports(module=nodenext).symbols index 3b5ca0ad0c6c7..714bff6bd6b42 100644 --- a/tests/baselines/reference/nodeModulesAllowJsPackagePatternExports(module=nodenext).symbols +++ b/tests/baselines/reference/nodeModulesAllowJsPackagePatternExports(module=nodenext).symbols @@ -70,13 +70,13 @@ import * as type from "inner/js/index"; >type : Symbol(type, Decl(index.d.ts, 3, 6)) export { cjs }; ->cjs : Symbol(mjs.cjs.type.cjs, Decl(index.d.ts, 4, 8)) +>cjs : Symbol(mjs.cjs.cjs.type.cjs, Decl(index.d.ts, 4, 8)) export { mjs }; ->mjs : Symbol(mjs.cjs.type.mjs, Decl(index.d.ts, 5, 8)) +>mjs : Symbol(mjs.cjs.cjs.type.mjs, Decl(index.d.ts, 5, 8)) export { type }; ->type : Symbol(mjs.cjs.type.type, Decl(index.d.ts, 6, 8)) +>type : Symbol(mjs.cjs.cjs.type.type, Decl(index.d.ts, 6, 8)) === tests/cases/conformance/node/allowJs/node_modules/inner/index.d.mts === // esm format file @@ -90,13 +90,13 @@ import * as type from "inner/js/index"; >type : Symbol(type, Decl(index.d.mts, 3, 6)) export { cjs }; ->cjs : Symbol(cjs.mjs.cjs, Decl(index.d.mts, 4, 8)) +>cjs : Symbol(cjs.cjs.mjs.cjs, Decl(index.d.mts, 4, 8)) export { mjs }; ->mjs : Symbol(cjs.mjs.mjs, Decl(index.d.mts, 5, 8)) +>mjs : Symbol(cjs.cjs.mjs.mjs, Decl(index.d.mts, 5, 8)) export { type }; ->type : Symbol(cjs.mjs.type, Decl(index.d.mts, 6, 8)) +>type : Symbol(cjs.cjs.mjs.type, Decl(index.d.mts, 6, 8)) === tests/cases/conformance/node/allowJs/node_modules/inner/index.d.cts === // cjs format file diff --git a/tests/baselines/reference/nodeModulesAllowJsPackagePatternExports(module=nodenext).types b/tests/baselines/reference/nodeModulesAllowJsPackagePatternExports(module=nodenext).types index 65f2fc46d87f6..2103a12734ab3 100644 --- a/tests/baselines/reference/nodeModulesAllowJsPackagePatternExports(module=nodenext).types +++ b/tests/baselines/reference/nodeModulesAllowJsPackagePatternExports(module=nodenext).types @@ -4,19 +4,19 @@ import * as cjsi from "inner/cjs/index"; >cjsi : typeof cjsi import * as mjsi from "inner/mjs/index"; ->mjsi : typeof cjsi.mjs +>mjsi : typeof cjsi.cjs.mjs import * as typei from "inner/js/index"; ->typei : typeof cjsi.mjs.type +>typei : typeof typei cjsi; >cjsi : typeof cjsi mjsi; ->mjsi : typeof cjsi.mjs +>mjsi : typeof cjsi.cjs.mjs typei; ->typei : typeof cjsi.mjs.type +>typei : typeof typei === tests/cases/conformance/node/allowJs/index.mjs === // esm format file @@ -24,19 +24,19 @@ import * as cjsi from "inner/cjs/index"; >cjsi : typeof cjsi import * as mjsi from "inner/mjs/index"; ->mjsi : typeof cjsi.mjs +>mjsi : typeof cjsi.cjs.mjs import * as typei from "inner/js/index"; ->typei : typeof cjsi.mjs.type +>typei : typeof typei cjsi; >cjsi : typeof cjsi mjsi; ->mjsi : typeof cjsi.mjs +>mjsi : typeof cjsi.cjs.mjs typei; ->typei : typeof cjsi.mjs.type +>typei : typeof typei === tests/cases/conformance/node/allowJs/index.cjs === // cjs format file @@ -47,7 +47,7 @@ import * as mjsi from "inner/mjs/index"; >mjsi : typeof cjsi.mjs import * as typei from "inner/js/index"; ->typei : typeof cjsi.mjs.type +>typei : typeof cjsi.mjs.cjs.type cjsi; >cjsi : typeof cjsi @@ -56,7 +56,7 @@ mjsi; >mjsi : typeof cjsi.mjs typei; ->typei : typeof cjsi.mjs.type +>typei : typeof cjsi.mjs.cjs.type === tests/cases/conformance/node/allowJs/node_modules/inner/index.d.ts === // cjs format file @@ -67,7 +67,7 @@ import * as mjs from "inner/mjs/index"; >mjs : typeof mjs import * as type from "inner/js/index"; ->type : typeof mjs.cjs.type +>type : typeof mjs.cjs.cjs.type export { cjs }; >cjs : any @@ -76,7 +76,7 @@ export { mjs }; >mjs : typeof mjs export { type }; ->type : typeof mjs.cjs.type +>type : typeof mjs.cjs.cjs.type === tests/cases/conformance/node/allowJs/node_modules/inner/index.d.mts === // esm format file @@ -84,19 +84,19 @@ import * as cjs from "inner/cjs/index"; >cjs : typeof cjs import * as mjs from "inner/mjs/index"; ->mjs : typeof cjs.mjs +>mjs : typeof cjs.cjs.mjs import * as type from "inner/js/index"; ->type : typeof cjs.mjs.type +>type : typeof cjs.cjs.mjs.type export { cjs }; >cjs : typeof cjs export { mjs }; ->mjs : typeof cjs.mjs +>mjs : typeof cjs.cjs.mjs export { type }; ->type : typeof cjs.mjs.type +>type : typeof cjs.cjs.mjs.type === tests/cases/conformance/node/allowJs/node_modules/inner/index.d.cts === // cjs format file @@ -107,7 +107,7 @@ import * as mjs from "inner/mjs/index"; >mjs : typeof cjs.mjs import * as type from "inner/js/index"; ->type : typeof cjs.mjs.type +>type : typeof cjs.mjs.cjs.type export { cjs }; >cjs : typeof cjs @@ -116,5 +116,5 @@ export { mjs }; >mjs : typeof cjs.mjs export { type }; ->type : typeof cjs.mjs.type +>type : typeof cjs.mjs.cjs.type diff --git a/tests/baselines/reference/nodeModulesAllowJsPackagePatternExportsTrailers(module=node12).js b/tests/baselines/reference/nodeModulesAllowJsPackagePatternExportsTrailers(module=node12).js index 9627f89af2bb1..e10a987a39924 100644 --- a/tests/baselines/reference/nodeModulesAllowJsPackagePatternExportsTrailers(module=node12).js +++ b/tests/baselines/reference/nodeModulesAllowJsPackagePatternExportsTrailers(module=node12).js @@ -85,7 +85,11 @@ typei; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/nodeModulesAllowJsPackagePatternExportsTrailers(module=nodenext).js b/tests/baselines/reference/nodeModulesAllowJsPackagePatternExportsTrailers(module=nodenext).js index 9627f89af2bb1..e10a987a39924 100644 --- a/tests/baselines/reference/nodeModulesAllowJsPackagePatternExportsTrailers(module=nodenext).js +++ b/tests/baselines/reference/nodeModulesAllowJsPackagePatternExportsTrailers(module=nodenext).js @@ -85,7 +85,11 @@ typei; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/nodeModulesAllowJsPackagePatternExportsTrailers(module=nodenext).symbols b/tests/baselines/reference/nodeModulesAllowJsPackagePatternExportsTrailers(module=nodenext).symbols index 572b5ddd1100e..2e24aeb1a8303 100644 --- a/tests/baselines/reference/nodeModulesAllowJsPackagePatternExportsTrailers(module=nodenext).symbols +++ b/tests/baselines/reference/nodeModulesAllowJsPackagePatternExportsTrailers(module=nodenext).symbols @@ -70,13 +70,13 @@ import * as type from "inner/js/index.js"; >type : Symbol(type, Decl(index.d.ts, 3, 6)) export { cjs }; ->cjs : Symbol(mjs.cjs.type.cjs, Decl(index.d.ts, 4, 8)) +>cjs : Symbol(mjs.cjs.cjs.type.cjs, Decl(index.d.ts, 4, 8)) export { mjs }; ->mjs : Symbol(mjs.cjs.type.mjs, Decl(index.d.ts, 5, 8)) +>mjs : Symbol(mjs.cjs.cjs.type.mjs, Decl(index.d.ts, 5, 8)) export { type }; ->type : Symbol(mjs.cjs.type.type, Decl(index.d.ts, 6, 8)) +>type : Symbol(mjs.cjs.cjs.type.type, Decl(index.d.ts, 6, 8)) === tests/cases/conformance/node/allowJs/node_modules/inner/index.d.mts === // esm format file @@ -90,13 +90,13 @@ import * as type from "inner/js/index.js"; >type : Symbol(type, Decl(index.d.mts, 3, 6)) export { cjs }; ->cjs : Symbol(cjs.mjs.cjs, Decl(index.d.mts, 4, 8)) +>cjs : Symbol(cjs.cjs.mjs.cjs, Decl(index.d.mts, 4, 8)) export { mjs }; ->mjs : Symbol(cjs.mjs.mjs, Decl(index.d.mts, 5, 8)) +>mjs : Symbol(cjs.cjs.mjs.mjs, Decl(index.d.mts, 5, 8)) export { type }; ->type : Symbol(cjs.mjs.type, Decl(index.d.mts, 6, 8)) +>type : Symbol(cjs.cjs.mjs.type, Decl(index.d.mts, 6, 8)) === tests/cases/conformance/node/allowJs/node_modules/inner/index.d.cts === // cjs format file diff --git a/tests/baselines/reference/nodeModulesAllowJsPackagePatternExportsTrailers(module=nodenext).types b/tests/baselines/reference/nodeModulesAllowJsPackagePatternExportsTrailers(module=nodenext).types index d36dd358d8bb3..556b7c15a3d2a 100644 --- a/tests/baselines/reference/nodeModulesAllowJsPackagePatternExportsTrailers(module=nodenext).types +++ b/tests/baselines/reference/nodeModulesAllowJsPackagePatternExportsTrailers(module=nodenext).types @@ -4,19 +4,19 @@ import * as cjsi from "inner/cjs/index.cjs"; >cjsi : typeof cjsi import * as mjsi from "inner/mjs/index.mjs"; ->mjsi : typeof cjsi.mjs +>mjsi : typeof cjsi.cjs.mjs import * as typei from "inner/js/index.js"; ->typei : typeof cjsi.mjs.type +>typei : typeof typei cjsi; >cjsi : typeof cjsi mjsi; ->mjsi : typeof cjsi.mjs +>mjsi : typeof cjsi.cjs.mjs typei; ->typei : typeof cjsi.mjs.type +>typei : typeof typei === tests/cases/conformance/node/allowJs/index.mjs === // esm format file @@ -24,19 +24,19 @@ import * as cjsi from "inner/cjs/index.cjs"; >cjsi : typeof cjsi import * as mjsi from "inner/mjs/index.mjs"; ->mjsi : typeof cjsi.mjs +>mjsi : typeof cjsi.cjs.mjs import * as typei from "inner/js/index.js"; ->typei : typeof cjsi.mjs.type +>typei : typeof typei cjsi; >cjsi : typeof cjsi mjsi; ->mjsi : typeof cjsi.mjs +>mjsi : typeof cjsi.cjs.mjs typei; ->typei : typeof cjsi.mjs.type +>typei : typeof typei === tests/cases/conformance/node/allowJs/index.cjs === // cjs format file @@ -47,7 +47,7 @@ import * as mjsi from "inner/mjs/index.mjs"; >mjsi : typeof cjsi.mjs import * as typei from "inner/js/index.js"; ->typei : typeof cjsi.mjs.type +>typei : typeof cjsi.mjs.cjs.type cjsi; >cjsi : typeof cjsi @@ -56,7 +56,7 @@ mjsi; >mjsi : typeof cjsi.mjs typei; ->typei : typeof cjsi.mjs.type +>typei : typeof cjsi.mjs.cjs.type === tests/cases/conformance/node/allowJs/node_modules/inner/index.d.ts === // cjs format file @@ -67,7 +67,7 @@ import * as mjs from "inner/mjs/index.mjs"; >mjs : typeof mjs import * as type from "inner/js/index.js"; ->type : typeof mjs.cjs.type +>type : typeof mjs.cjs.cjs.type export { cjs }; >cjs : any @@ -76,7 +76,7 @@ export { mjs }; >mjs : typeof mjs export { type }; ->type : typeof mjs.cjs.type +>type : typeof mjs.cjs.cjs.type === tests/cases/conformance/node/allowJs/node_modules/inner/index.d.mts === // esm format file @@ -84,19 +84,19 @@ import * as cjs from "inner/cjs/index.cjs"; >cjs : typeof cjs import * as mjs from "inner/mjs/index.mjs"; ->mjs : typeof cjs.mjs +>mjs : typeof cjs.cjs.mjs import * as type from "inner/js/index.js"; ->type : typeof cjs.mjs.type +>type : typeof cjs.cjs.mjs.type export { cjs }; >cjs : typeof cjs export { mjs }; ->mjs : typeof cjs.mjs +>mjs : typeof cjs.cjs.mjs export { type }; ->type : typeof cjs.mjs.type +>type : typeof cjs.cjs.mjs.type === tests/cases/conformance/node/allowJs/node_modules/inner/index.d.cts === // cjs format file @@ -107,7 +107,7 @@ import * as mjs from "inner/mjs/index.mjs"; >mjs : typeof cjs.mjs import * as type from "inner/js/index.js"; ->type : typeof cjs.mjs.type +>type : typeof cjs.mjs.cjs.type export { cjs }; >cjs : typeof cjs @@ -116,5 +116,5 @@ export { mjs }; >mjs : typeof cjs.mjs export { type }; ->type : typeof cjs.mjs.type +>type : typeof cjs.mjs.cjs.type diff --git a/tests/baselines/reference/nodeModulesConditionalPackageExports(module=node12).js b/tests/baselines/reference/nodeModulesConditionalPackageExports(module=node12).js index cd984941c2c9b..a67f7fdfdd48d 100644 --- a/tests/baselines/reference/nodeModulesConditionalPackageExports(module=node12).js +++ b/tests/baselines/reference/nodeModulesConditionalPackageExports(module=node12).js @@ -142,7 +142,11 @@ ts.mjsSource; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/nodeModulesConditionalPackageExports(module=nodenext).js b/tests/baselines/reference/nodeModulesConditionalPackageExports(module=nodenext).js index cd984941c2c9b..a67f7fdfdd48d 100644 --- a/tests/baselines/reference/nodeModulesConditionalPackageExports(module=nodenext).js +++ b/tests/baselines/reference/nodeModulesConditionalPackageExports(module=nodenext).js @@ -142,7 +142,11 @@ ts.mjsSource; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/nodeModulesDeclarationEmitDynamicImportWithPackageExports.js b/tests/baselines/reference/nodeModulesDeclarationEmitDynamicImportWithPackageExports.js index f8d6161af5772..9bc4bb789c561 100644 --- a/tests/baselines/reference/nodeModulesDeclarationEmitDynamicImportWithPackageExports.js +++ b/tests/baselines/reference/nodeModulesDeclarationEmitDynamicImportWithPackageExports.js @@ -155,10 +155,10 @@ export declare const d: { export declare const e: typeof import("inner/mjs"); //// [other.d.cts] export declare const a: Promise<{ - default: typeof import("package/cjs"); + default: typeof import("./index.cjs"); }>; -export declare const b: Promise; -export declare const c: Promise; +export declare const b: Promise; +export declare const c: Promise; export declare const f: Promise<{ default: typeof import("inner"); cjsMain: true; @@ -168,113 +168,4 @@ export declare const d: Promise<{ default: typeof import("inner/cjs"); cjsNonmain: true; }>; -export declare const e: Promise; - - -//// [DtsFileErrors] - - -tests/cases/conformance/node/other.d.cts(4,47): error TS1471: Module 'package/mjs' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported synchronously. Use dynamic import instead. -tests/cases/conformance/node/other.d.cts(5,47): error TS1471: Module 'package' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported synchronously. Use dynamic import instead. -tests/cases/conformance/node/other2.d.cts(5,47): error TS1471: Module 'inner/mjs' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported synchronously. Use dynamic import instead. - - -==== tests/cases/conformance/node/index.d.ts (0 errors) ==== - export {}; - -==== tests/cases/conformance/node/index.d.mts (0 errors) ==== - export {}; - -==== tests/cases/conformance/node/index.d.cts (0 errors) ==== - export {}; - -==== tests/cases/conformance/node/other.d.ts (0 errors) ==== - export declare const a: { - default: typeof import("package/cjs"); - }; - export declare const b: typeof import("package/mjs"); - export declare const c: typeof import("package"); - export declare const f: { - default: typeof import("inner"); - cjsMain: true; - }; - -==== tests/cases/conformance/node/other2.d.ts (0 errors) ==== - export declare const d: { - default: typeof import("inner/cjs"); - cjsNonmain: true; - }; - export declare const e: typeof import("inner/mjs"); - -==== tests/cases/conformance/node/other.d.mts (0 errors) ==== - export declare const a: { - default: typeof import("package/cjs"); - }; - export declare const b: typeof import("package/mjs"); - export declare const c: typeof import("package"); - export declare const f: { - default: typeof import("inner"); - cjsMain: true; - }; - -==== tests/cases/conformance/node/other2.d.mts (0 errors) ==== - export declare const d: { - default: typeof import("inner/cjs"); - cjsNonmain: true; - }; - export declare const e: typeof import("inner/mjs"); - -==== tests/cases/conformance/node/other.d.cts (2 errors) ==== - export declare const a: Promise<{ - default: typeof import("package/cjs"); - }>; - export declare const b: Promise; - ~~~~~~~~~~~~~ -!!! error TS1471: Module 'package/mjs' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported synchronously. Use dynamic import instead. - export declare const c: Promise; - ~~~~~~~~~ -!!! error TS1471: Module 'package' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported synchronously. Use dynamic import instead. - export declare const f: Promise<{ - default: typeof import("inner"); - cjsMain: true; - }>; - -==== tests/cases/conformance/node/other2.d.cts (1 errors) ==== - export declare const d: Promise<{ - default: typeof import("inner/cjs"); - cjsNonmain: true; - }>; - export declare const e: Promise; - ~~~~~~~~~~~ -!!! error TS1471: Module 'inner/mjs' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported synchronously. Use dynamic import instead. - -==== tests/cases/conformance/node/node_modules/inner/index.d.ts (0 errors) ==== - // cjs format file - export const cjsMain = true; -==== tests/cases/conformance/node/node_modules/inner/index.d.mts (0 errors) ==== - // esm format file - export const esm = true; -==== tests/cases/conformance/node/node_modules/inner/index.d.cts (0 errors) ==== - // cjs format file - export const cjsNonmain = true; -==== tests/cases/conformance/node/package.json (0 errors) ==== - { - "name": "package", - "private": true, - "type": "module", - "exports": { - "./cjs": "./index.cjs", - "./mjs": "./index.mjs", - ".": "./index.js" - } - } -==== tests/cases/conformance/node/node_modules/inner/package.json (0 errors) ==== - { - "name": "inner", - "private": true, - "exports": { - "./cjs": "./index.cjs", - "./mjs": "./index.mjs", - ".": "./index.js" - } - } \ No newline at end of file +export declare const e: Promise; diff --git a/tests/baselines/reference/nodeModulesDeclarationEmitDynamicImportWithPackageExports.types b/tests/baselines/reference/nodeModulesDeclarationEmitDynamicImportWithPackageExports.types index 54a78d6a9fc2e..38a4e474dc632 100644 --- a/tests/baselines/reference/nodeModulesDeclarationEmitDynamicImportWithPackageExports.types +++ b/tests/baselines/reference/nodeModulesDeclarationEmitDynamicImportWithPackageExports.types @@ -95,13 +95,13 @@ export const a = import("package/cjs"); >"package/cjs" : "package/cjs" export const b = import("package/mjs"); ->b : Promise ->import("package/mjs") : Promise +>b : Promise +>import("package/mjs") : Promise >"package/mjs" : "package/mjs" export const c = import("package"); ->c : Promise ->import("package") : Promise +>c : Promise +>import("package") : Promise >"package" : "package" export const f = import("inner"); @@ -117,8 +117,8 @@ export const d = import("inner/cjs"); >"inner/cjs" : "inner/cjs" export const e = import("inner/mjs"); ->e : Promise ->import("inner/mjs") : Promise +>e : Promise +>import("inner/mjs") : Promise >"inner/mjs" : "inner/mjs" === tests/cases/conformance/node/node_modules/inner/index.d.ts === diff --git a/tests/baselines/reference/nodeModulesDeclarationEmitWithPackageExports(module=node12).js b/tests/baselines/reference/nodeModulesDeclarationEmitWithPackageExports(module=node12).js index 7fdb02cf02112..7500542fd8d1b 100644 --- a/tests/baselines/reference/nodeModulesDeclarationEmitWithPackageExports(module=node12).js +++ b/tests/baselines/reference/nodeModulesDeclarationEmitWithPackageExports(module=node12).js @@ -109,7 +109,11 @@ export const f = typei; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/nodeModulesDeclarationEmitWithPackageExports(module=nodenext).js b/tests/baselines/reference/nodeModulesDeclarationEmitWithPackageExports(module=nodenext).js index 7fdb02cf02112..7500542fd8d1b 100644 --- a/tests/baselines/reference/nodeModulesDeclarationEmitWithPackageExports(module=nodenext).js +++ b/tests/baselines/reference/nodeModulesDeclarationEmitWithPackageExports(module=nodenext).js @@ -109,7 +109,11 @@ export const f = typei; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/nodeModulesImportAssertions(module=node12).errors.txt b/tests/baselines/reference/nodeModulesImportAssertions(module=node12).errors.txt new file mode 100644 index 0000000000000..e1c723d1dec84 --- /dev/null +++ b/tests/baselines/reference/nodeModulesImportAssertions(module=node12).errors.txt @@ -0,0 +1,28 @@ +tests/cases/conformance/node/index.ts(1,18): error TS7062: JSON imports are experimental in ES module mode imports. +tests/cases/conformance/node/index.ts(1,35): error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext' or 'nodenext'. +tests/cases/conformance/node/otherc.cts(1,35): error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext' or 'nodenext'. +tests/cases/conformance/node/otherc.cts(2,22): error TS7062: JSON imports are experimental in ES module mode imports. +tests/cases/conformance/node/otherc.cts(2,40): error TS1324: Dynamic imports only support a second argument when the '--module' option is set to 'esnext' or 'nodenext'. + + +==== tests/cases/conformance/node/index.ts (2 errors) ==== + import json from "./package.json" assert { type: "json" }; + ~~~~~~~~~~~~~~~~ +!!! error TS7062: JSON imports are experimental in ES module mode imports. + ~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext' or 'nodenext'. +==== tests/cases/conformance/node/otherc.cts (3 errors) ==== + import json from "./package.json" assert { type: "json" }; // should error, cjs mode imports don't support assertions + ~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext' or 'nodenext'. + const json2 = import("./package.json", { assert: { type: "json" } }); // should be fine + ~~~~~~~~~~~~~~~~ +!!! error TS7062: JSON imports are experimental in ES module mode imports. + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS1324: Dynamic imports only support a second argument when the '--module' option is set to 'esnext' or 'nodenext'. +==== tests/cases/conformance/node/package.json (0 errors) ==== + { + "name": "pkg", + "private": true, + "type": "module" + } \ No newline at end of file diff --git a/tests/baselines/reference/nodeModulesImportAssertions(module=node12).js b/tests/baselines/reference/nodeModulesImportAssertions(module=node12).js new file mode 100644 index 0000000000000..091166d523cd1 --- /dev/null +++ b/tests/baselines/reference/nodeModulesImportAssertions(module=node12).js @@ -0,0 +1,20 @@ +//// [tests/cases/conformance/node/nodeModulesImportAssertions.ts] //// + +//// [index.ts] +import json from "./package.json" assert { type: "json" }; +//// [otherc.cts] +import json from "./package.json" assert { type: "json" }; // should error, cjs mode imports don't support assertions +const json2 = import("./package.json", { assert: { type: "json" } }); // should be fine +//// [package.json] +{ + "name": "pkg", + "private": true, + "type": "module" +} + +//// [index.js] +export {}; +//// [otherc.cjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const json2 = import("./package.json", { assert: { type: "json" } }); // should be fine diff --git a/tests/baselines/reference/nodeModulesImportAssertions(module=node12).symbols b/tests/baselines/reference/nodeModulesImportAssertions(module=node12).symbols new file mode 100644 index 0000000000000..3bacb3cfabe76 --- /dev/null +++ b/tests/baselines/reference/nodeModulesImportAssertions(module=node12).symbols @@ -0,0 +1,25 @@ +=== tests/cases/conformance/node/index.ts === +import json from "./package.json" assert { type: "json" }; +>json : Symbol(json, Decl(index.ts, 0, 6)) + +=== tests/cases/conformance/node/otherc.cts === +import json from "./package.json" assert { type: "json" }; // should error, cjs mode imports don't support assertions +>json : Symbol(json, Decl(otherc.cts, 0, 6)) + +const json2 = import("./package.json", { assert: { type: "json" } }); // should be fine +>json2 : Symbol(json2, Decl(otherc.cts, 1, 5)) +>"./package.json" : Symbol("tests/cases/conformance/node/package", Decl(package.json, 0, 0)) +>assert : Symbol(assert, Decl(otherc.cts, 1, 40)) +>type : Symbol(type, Decl(otherc.cts, 1, 50)) + +=== tests/cases/conformance/node/package.json === +{ + "name": "pkg", +>"name" : Symbol("name", Decl(package.json, 0, 1)) + + "private": true, +>"private" : Symbol("private", Decl(package.json, 1, 18)) + + "type": "module" +>"type" : Symbol("type", Decl(package.json, 2, 20)) +} diff --git a/tests/baselines/reference/nodeModulesImportAssertions(module=node12).types b/tests/baselines/reference/nodeModulesImportAssertions(module=node12).types new file mode 100644 index 0000000000000..36c03c4d92697 --- /dev/null +++ b/tests/baselines/reference/nodeModulesImportAssertions(module=node12).types @@ -0,0 +1,36 @@ +=== tests/cases/conformance/node/index.ts === +import json from "./package.json" assert { type: "json" }; +>json : { name: string; private: boolean; type: string; } +>type : any + +=== tests/cases/conformance/node/otherc.cts === +import json from "./package.json" assert { type: "json" }; // should error, cjs mode imports don't support assertions +>json : { name: string; private: boolean; type: string; } +>type : any + +const json2 = import("./package.json", { assert: { type: "json" } }); // should be fine +>json2 : Promise<{ default: { name: string; private: boolean; type: string; }; }> +>import("./package.json", { assert: { type: "json" } }) : Promise<{ default: { name: string; private: boolean; type: string; }; }> +>"./package.json" : "./package.json" +>{ assert: { type: "json" } } : { assert: { type: string; }; } +>assert : { type: string; } +>{ type: "json" } : { type: string; } +>type : string +>"json" : "json" + +=== tests/cases/conformance/node/package.json === +{ +>{ "name": "pkg", "private": true, "type": "module"} : { name: string; private: boolean; type: string; } + + "name": "pkg", +>"name" : string +>"pkg" : "pkg" + + "private": true, +>"private" : boolean +>true : true + + "type": "module" +>"type" : string +>"module" : "module" +} diff --git a/tests/baselines/reference/nodeModulesImportAssertions(module=nodenext).errors.txt b/tests/baselines/reference/nodeModulesImportAssertions(module=nodenext).errors.txt new file mode 100644 index 0000000000000..29dbcb839f52b --- /dev/null +++ b/tests/baselines/reference/nodeModulesImportAssertions(module=nodenext).errors.txt @@ -0,0 +1,22 @@ +tests/cases/conformance/node/index.ts(1,18): error TS7062: JSON imports are experimental in ES module mode imports. +tests/cases/conformance/node/otherc.cts(1,35): error TS2836: Import assertions are not allowed on statements that transpile to commonjs 'require' calls. +tests/cases/conformance/node/otherc.cts(2,22): error TS7062: JSON imports are experimental in ES module mode imports. + + +==== tests/cases/conformance/node/index.ts (1 errors) ==== + import json from "./package.json" assert { type: "json" }; + ~~~~~~~~~~~~~~~~ +!!! error TS7062: JSON imports are experimental in ES module mode imports. +==== tests/cases/conformance/node/otherc.cts (2 errors) ==== + import json from "./package.json" assert { type: "json" }; // should error, cjs mode imports don't support assertions + ~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2836: Import assertions are not allowed on statements that transpile to commonjs 'require' calls. + const json2 = import("./package.json", { assert: { type: "json" } }); // should be fine + ~~~~~~~~~~~~~~~~ +!!! error TS7062: JSON imports are experimental in ES module mode imports. +==== tests/cases/conformance/node/package.json (0 errors) ==== + { + "name": "pkg", + "private": true, + "type": "module" + } \ No newline at end of file diff --git a/tests/baselines/reference/nodeModulesImportAssertions(module=nodenext).js b/tests/baselines/reference/nodeModulesImportAssertions(module=nodenext).js new file mode 100644 index 0000000000000..091166d523cd1 --- /dev/null +++ b/tests/baselines/reference/nodeModulesImportAssertions(module=nodenext).js @@ -0,0 +1,20 @@ +//// [tests/cases/conformance/node/nodeModulesImportAssertions.ts] //// + +//// [index.ts] +import json from "./package.json" assert { type: "json" }; +//// [otherc.cts] +import json from "./package.json" assert { type: "json" }; // should error, cjs mode imports don't support assertions +const json2 = import("./package.json", { assert: { type: "json" } }); // should be fine +//// [package.json] +{ + "name": "pkg", + "private": true, + "type": "module" +} + +//// [index.js] +export {}; +//// [otherc.cjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const json2 = import("./package.json", { assert: { type: "json" } }); // should be fine diff --git a/tests/baselines/reference/nodeModulesImportAssertions(module=nodenext).symbols b/tests/baselines/reference/nodeModulesImportAssertions(module=nodenext).symbols new file mode 100644 index 0000000000000..3bacb3cfabe76 --- /dev/null +++ b/tests/baselines/reference/nodeModulesImportAssertions(module=nodenext).symbols @@ -0,0 +1,25 @@ +=== tests/cases/conformance/node/index.ts === +import json from "./package.json" assert { type: "json" }; +>json : Symbol(json, Decl(index.ts, 0, 6)) + +=== tests/cases/conformance/node/otherc.cts === +import json from "./package.json" assert { type: "json" }; // should error, cjs mode imports don't support assertions +>json : Symbol(json, Decl(otherc.cts, 0, 6)) + +const json2 = import("./package.json", { assert: { type: "json" } }); // should be fine +>json2 : Symbol(json2, Decl(otherc.cts, 1, 5)) +>"./package.json" : Symbol("tests/cases/conformance/node/package", Decl(package.json, 0, 0)) +>assert : Symbol(assert, Decl(otherc.cts, 1, 40)) +>type : Symbol(type, Decl(otherc.cts, 1, 50)) + +=== tests/cases/conformance/node/package.json === +{ + "name": "pkg", +>"name" : Symbol("name", Decl(package.json, 0, 1)) + + "private": true, +>"private" : Symbol("private", Decl(package.json, 1, 18)) + + "type": "module" +>"type" : Symbol("type", Decl(package.json, 2, 20)) +} diff --git a/tests/baselines/reference/nodeModulesImportAssertions(module=nodenext).types b/tests/baselines/reference/nodeModulesImportAssertions(module=nodenext).types new file mode 100644 index 0000000000000..36c03c4d92697 --- /dev/null +++ b/tests/baselines/reference/nodeModulesImportAssertions(module=nodenext).types @@ -0,0 +1,36 @@ +=== tests/cases/conformance/node/index.ts === +import json from "./package.json" assert { type: "json" }; +>json : { name: string; private: boolean; type: string; } +>type : any + +=== tests/cases/conformance/node/otherc.cts === +import json from "./package.json" assert { type: "json" }; // should error, cjs mode imports don't support assertions +>json : { name: string; private: boolean; type: string; } +>type : any + +const json2 = import("./package.json", { assert: { type: "json" } }); // should be fine +>json2 : Promise<{ default: { name: string; private: boolean; type: string; }; }> +>import("./package.json", { assert: { type: "json" } }) : Promise<{ default: { name: string; private: boolean; type: string; }; }> +>"./package.json" : "./package.json" +>{ assert: { type: "json" } } : { assert: { type: string; }; } +>assert : { type: string; } +>{ type: "json" } : { type: string; } +>type : string +>"json" : "json" + +=== tests/cases/conformance/node/package.json === +{ +>{ "name": "pkg", "private": true, "type": "module"} : { name: string; private: boolean; type: string; } + + "name": "pkg", +>"name" : string +>"pkg" : "pkg" + + "private": true, +>"private" : boolean +>true : true + + "type": "module" +>"type" : string +>"module" : "module" +} diff --git a/tests/baselines/reference/nodeModulesImportHelpersCollisions(module=node12).js b/tests/baselines/reference/nodeModulesImportHelpersCollisions(module=node12).js index 87467d9fd7e6b..4712d65a0999e 100644 --- a/tests/baselines/reference/nodeModulesImportHelpersCollisions(module=node12).js +++ b/tests/baselines/reference/nodeModulesImportHelpersCollisions(module=node12).js @@ -34,9 +34,9 @@ declare module "tslib" { Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = require("tslib"); // cjs format file -const fs_1 = (0, tslib_1.__importDefault)(require("fs")); +const fs_1 = tslib_1.__importDefault(require("fs")); fs_1.default.readFile; -const fs = (0, tslib_1.__importStar)(require("fs")); +const fs = tslib_1.__importStar(require("fs")); fs.readFile; //// [index.js] // esm format file diff --git a/tests/baselines/reference/nodeModulesImportHelpersCollisions(module=nodenext).js b/tests/baselines/reference/nodeModulesImportHelpersCollisions(module=nodenext).js index 87467d9fd7e6b..4712d65a0999e 100644 --- a/tests/baselines/reference/nodeModulesImportHelpersCollisions(module=nodenext).js +++ b/tests/baselines/reference/nodeModulesImportHelpersCollisions(module=nodenext).js @@ -34,9 +34,9 @@ declare module "tslib" { Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = require("tslib"); // cjs format file -const fs_1 = (0, tslib_1.__importDefault)(require("fs")); +const fs_1 = tslib_1.__importDefault(require("fs")); fs_1.default.readFile; -const fs = (0, tslib_1.__importStar)(require("fs")); +const fs = tslib_1.__importStar(require("fs")); fs.readFile; //// [index.js] // esm format file diff --git a/tests/baselines/reference/nodeModulesImportHelpersCollisions2(module=node12).js b/tests/baselines/reference/nodeModulesImportHelpersCollisions2(module=node12).js index 1cc268a7fa066..c058d00e216e0 100644 --- a/tests/baselines/reference/nodeModulesImportHelpersCollisions2(module=node12).js +++ b/tests/baselines/reference/nodeModulesImportHelpersCollisions2(module=node12).js @@ -31,8 +31,8 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.fs = void 0; const tslib_1 = require("tslib"); // cjs format file -(0, tslib_1.__exportStar)(require("fs"), exports); -exports.fs = (0, tslib_1.__importStar)(require("fs")); +tslib_1.__exportStar(require("fs"), exports); +exports.fs = tslib_1.__importStar(require("fs")); //// [index.js] // esm format file export * from "fs"; diff --git a/tests/baselines/reference/nodeModulesImportHelpersCollisions2(module=nodenext).js b/tests/baselines/reference/nodeModulesImportHelpersCollisions2(module=nodenext).js index 1cc268a7fa066..c058d00e216e0 100644 --- a/tests/baselines/reference/nodeModulesImportHelpersCollisions2(module=nodenext).js +++ b/tests/baselines/reference/nodeModulesImportHelpersCollisions2(module=nodenext).js @@ -31,8 +31,8 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.fs = void 0; const tslib_1 = require("tslib"); // cjs format file -(0, tslib_1.__exportStar)(require("fs"), exports); -exports.fs = (0, tslib_1.__importStar)(require("fs")); +tslib_1.__exportStar(require("fs"), exports); +exports.fs = tslib_1.__importStar(require("fs")); //// [index.js] // esm format file export * from "fs"; diff --git a/tests/baselines/reference/nodeModulesImportModeDeclarationEmit1(module=node12).errors.txt b/tests/baselines/reference/nodeModulesImportModeDeclarationEmit1(module=node12).errors.txt new file mode 100644 index 0000000000000..a8a76a05152b7 --- /dev/null +++ b/tests/baselines/reference/nodeModulesImportModeDeclarationEmit1(module=node12).errors.txt @@ -0,0 +1,37 @@ +/index.ts(6,50): error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext' or 'nodenext'. +/index.ts(7,14): error TS2305: Module '"pkg"' has no exported member 'ImportInterface'. +/index.ts(7,49): error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext' or 'nodenext'. + + +==== /index.ts (3 errors) ==== + import type { RequireInterface } from "pkg" assert { "resolution-mode": "require" }; + import type { ImportInterface } from "pkg" assert { "resolution-mode": "import" }; + + export interface LocalInterface extends RequireInterface, ImportInterface {} + + import {type RequireInterface as Req} from "pkg" assert { "resolution-mode": "require" }; + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext' or 'nodenext'. + import {type ImportInterface as Imp} from "pkg" assert { "resolution-mode": "import" }; + ~~~~~~~~~~~~~~~ +!!! error TS2305: Module '"pkg"' has no exported member 'ImportInterface'. + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext' or 'nodenext'. + export interface Loc extends Req, Imp {} + + export type { RequireInterface } from "pkg" assert { "resolution-mode": "require" }; + export type { ImportInterface } from "pkg" assert { "resolution-mode": "import" }; + +==== /node_modules/pkg/package.json (0 errors) ==== + { + "name": "pkg", + "version": "0.0.1", + "exports": { + "import": "./import.js", + "require": "./require.js" + } + } +==== /node_modules/pkg/import.d.ts (0 errors) ==== + export interface ImportInterface {} +==== /node_modules/pkg/require.d.ts (0 errors) ==== + export interface RequireInterface {} \ No newline at end of file diff --git a/tests/baselines/reference/nodeModulesImportModeDeclarationEmit1(module=node12).js b/tests/baselines/reference/nodeModulesImportModeDeclarationEmit1(module=node12).js new file mode 100644 index 0000000000000..1b8bc65976edc --- /dev/null +++ b/tests/baselines/reference/nodeModulesImportModeDeclarationEmit1(module=node12).js @@ -0,0 +1,45 @@ +//// [tests/cases/conformance/node/nodeModulesImportModeDeclarationEmit1.ts] //// + +//// [package.json] +{ + "name": "pkg", + "version": "0.0.1", + "exports": { + "import": "./import.js", + "require": "./require.js" + } +} +//// [import.d.ts] +export interface ImportInterface {} +//// [require.d.ts] +export interface RequireInterface {} +//// [index.ts] +import type { RequireInterface } from "pkg" assert { "resolution-mode": "require" }; +import type { ImportInterface } from "pkg" assert { "resolution-mode": "import" }; + +export interface LocalInterface extends RequireInterface, ImportInterface {} + +import {type RequireInterface as Req} from "pkg" assert { "resolution-mode": "require" }; +import {type ImportInterface as Imp} from "pkg" assert { "resolution-mode": "import" }; +export interface Loc extends Req, Imp {} + +export type { RequireInterface } from "pkg" assert { "resolution-mode": "require" }; +export type { ImportInterface } from "pkg" assert { "resolution-mode": "import" }; + + +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); + + +//// [index.d.ts] +import type { RequireInterface } from "pkg" assert { "resolution-mode": "require" }; +import type { ImportInterface } from "pkg" assert { "resolution-mode": "import" }; +export interface LocalInterface extends RequireInterface, ImportInterface { +} +import { type RequireInterface as Req } from "pkg" assert { "resolution-mode": "require" }; +import { type ImportInterface as Imp } from "pkg" assert { "resolution-mode": "import" }; +export interface Loc extends Req, Imp { +} +export type { RequireInterface } from "pkg" assert { "resolution-mode": "require" }; +export type { ImportInterface } from "pkg" assert { "resolution-mode": "import" }; diff --git a/tests/baselines/reference/nodeModulesImportModeDeclarationEmit1(module=node12).symbols b/tests/baselines/reference/nodeModulesImportModeDeclarationEmit1(module=node12).symbols new file mode 100644 index 0000000000000..e9a80972b95ec --- /dev/null +++ b/tests/baselines/reference/nodeModulesImportModeDeclarationEmit1(module=node12).symbols @@ -0,0 +1,38 @@ +=== /index.ts === +import type { RequireInterface } from "pkg" assert { "resolution-mode": "require" }; +>RequireInterface : Symbol(RequireInterface, Decl(index.ts, 0, 13)) + +import type { ImportInterface } from "pkg" assert { "resolution-mode": "import" }; +>ImportInterface : Symbol(ImportInterface, Decl(index.ts, 1, 13)) + +export interface LocalInterface extends RequireInterface, ImportInterface {} +>LocalInterface : Symbol(LocalInterface, Decl(index.ts, 1, 82)) +>RequireInterface : Symbol(RequireInterface, Decl(index.ts, 0, 13)) +>ImportInterface : Symbol(ImportInterface, Decl(index.ts, 1, 13)) + +import {type RequireInterface as Req} from "pkg" assert { "resolution-mode": "require" }; +>RequireInterface : Symbol(RequireInterface, Decl(require.d.ts, 0, 0)) +>Req : Symbol(Req, Decl(index.ts, 5, 8)) + +import {type ImportInterface as Imp} from "pkg" assert { "resolution-mode": "import" }; +>Imp : Symbol(Imp, Decl(index.ts, 6, 8)) + +export interface Loc extends Req, Imp {} +>Loc : Symbol(Loc, Decl(index.ts, 6, 87)) +>Req : Symbol(Req, Decl(index.ts, 5, 8)) +>Imp : Symbol(Imp, Decl(index.ts, 6, 8)) + +export type { RequireInterface } from "pkg" assert { "resolution-mode": "require" }; +>RequireInterface : Symbol(RequireInterface, Decl(index.ts, 9, 13)) + +export type { ImportInterface } from "pkg" assert { "resolution-mode": "import" }; +>ImportInterface : Symbol(ImportInterface, Decl(index.ts, 10, 13)) + +=== /node_modules/pkg/import.d.ts === +export interface ImportInterface {} +>ImportInterface : Symbol(ImportInterface, Decl(import.d.ts, 0, 0)) + +=== /node_modules/pkg/require.d.ts === +export interface RequireInterface {} +>RequireInterface : Symbol(RequireInterface, Decl(require.d.ts, 0, 0)) + diff --git a/tests/baselines/reference/nodeModulesImportModeDeclarationEmit1(module=node12).types b/tests/baselines/reference/nodeModulesImportModeDeclarationEmit1(module=node12).types new file mode 100644 index 0000000000000..61190a772be06 --- /dev/null +++ b/tests/baselines/reference/nodeModulesImportModeDeclarationEmit1(module=node12).types @@ -0,0 +1,30 @@ +=== /index.ts === +import type { RequireInterface } from "pkg" assert { "resolution-mode": "require" }; +>RequireInterface : RequireInterface + +import type { ImportInterface } from "pkg" assert { "resolution-mode": "import" }; +>ImportInterface : ImportInterface + +export interface LocalInterface extends RequireInterface, ImportInterface {} + +import {type RequireInterface as Req} from "pkg" assert { "resolution-mode": "require" }; +>RequireInterface : any +>Req : any + +import {type ImportInterface as Imp} from "pkg" assert { "resolution-mode": "import" }; +>ImportInterface : any +>Imp : any + +export interface Loc extends Req, Imp {} + +export type { RequireInterface } from "pkg" assert { "resolution-mode": "require" }; +>RequireInterface : RequireInterface + +export type { ImportInterface } from "pkg" assert { "resolution-mode": "import" }; +>ImportInterface : ImportInterface + +=== /node_modules/pkg/import.d.ts === +export interface ImportInterface {} +No type information for this code.=== /node_modules/pkg/require.d.ts === +export interface RequireInterface {} +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/nodeModulesImportModeDeclarationEmit1(module=nodenext).errors.txt b/tests/baselines/reference/nodeModulesImportModeDeclarationEmit1(module=nodenext).errors.txt new file mode 100644 index 0000000000000..5aaee4a285e8e --- /dev/null +++ b/tests/baselines/reference/nodeModulesImportModeDeclarationEmit1(module=nodenext).errors.txt @@ -0,0 +1,37 @@ +/index.ts(6,50): error TS2836: Import assertions are not allowed on statements that transpile to commonjs 'require' calls. +/index.ts(7,14): error TS2305: Module '"pkg"' has no exported member 'ImportInterface'. +/index.ts(7,49): error TS2836: Import assertions are not allowed on statements that transpile to commonjs 'require' calls. + + +==== /index.ts (3 errors) ==== + import type { RequireInterface } from "pkg" assert { "resolution-mode": "require" }; + import type { ImportInterface } from "pkg" assert { "resolution-mode": "import" }; + + export interface LocalInterface extends RequireInterface, ImportInterface {} + + import {type RequireInterface as Req} from "pkg" assert { "resolution-mode": "require" }; + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2836: Import assertions are not allowed on statements that transpile to commonjs 'require' calls. + import {type ImportInterface as Imp} from "pkg" assert { "resolution-mode": "import" }; + ~~~~~~~~~~~~~~~ +!!! error TS2305: Module '"pkg"' has no exported member 'ImportInterface'. + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2836: Import assertions are not allowed on statements that transpile to commonjs 'require' calls. + export interface Loc extends Req, Imp {} + + export type { RequireInterface } from "pkg" assert { "resolution-mode": "require" }; + export type { ImportInterface } from "pkg" assert { "resolution-mode": "import" }; + +==== /node_modules/pkg/package.json (0 errors) ==== + { + "name": "pkg", + "version": "0.0.1", + "exports": { + "import": "./import.js", + "require": "./require.js" + } + } +==== /node_modules/pkg/import.d.ts (0 errors) ==== + export interface ImportInterface {} +==== /node_modules/pkg/require.d.ts (0 errors) ==== + export interface RequireInterface {} \ No newline at end of file diff --git a/tests/baselines/reference/nodeModulesImportModeDeclarationEmit1(module=nodenext).js b/tests/baselines/reference/nodeModulesImportModeDeclarationEmit1(module=nodenext).js new file mode 100644 index 0000000000000..1b8bc65976edc --- /dev/null +++ b/tests/baselines/reference/nodeModulesImportModeDeclarationEmit1(module=nodenext).js @@ -0,0 +1,45 @@ +//// [tests/cases/conformance/node/nodeModulesImportModeDeclarationEmit1.ts] //// + +//// [package.json] +{ + "name": "pkg", + "version": "0.0.1", + "exports": { + "import": "./import.js", + "require": "./require.js" + } +} +//// [import.d.ts] +export interface ImportInterface {} +//// [require.d.ts] +export interface RequireInterface {} +//// [index.ts] +import type { RequireInterface } from "pkg" assert { "resolution-mode": "require" }; +import type { ImportInterface } from "pkg" assert { "resolution-mode": "import" }; + +export interface LocalInterface extends RequireInterface, ImportInterface {} + +import {type RequireInterface as Req} from "pkg" assert { "resolution-mode": "require" }; +import {type ImportInterface as Imp} from "pkg" assert { "resolution-mode": "import" }; +export interface Loc extends Req, Imp {} + +export type { RequireInterface } from "pkg" assert { "resolution-mode": "require" }; +export type { ImportInterface } from "pkg" assert { "resolution-mode": "import" }; + + +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); + + +//// [index.d.ts] +import type { RequireInterface } from "pkg" assert { "resolution-mode": "require" }; +import type { ImportInterface } from "pkg" assert { "resolution-mode": "import" }; +export interface LocalInterface extends RequireInterface, ImportInterface { +} +import { type RequireInterface as Req } from "pkg" assert { "resolution-mode": "require" }; +import { type ImportInterface as Imp } from "pkg" assert { "resolution-mode": "import" }; +export interface Loc extends Req, Imp { +} +export type { RequireInterface } from "pkg" assert { "resolution-mode": "require" }; +export type { ImportInterface } from "pkg" assert { "resolution-mode": "import" }; diff --git a/tests/baselines/reference/nodeModulesImportModeDeclarationEmit1(module=nodenext).symbols b/tests/baselines/reference/nodeModulesImportModeDeclarationEmit1(module=nodenext).symbols new file mode 100644 index 0000000000000..e9a80972b95ec --- /dev/null +++ b/tests/baselines/reference/nodeModulesImportModeDeclarationEmit1(module=nodenext).symbols @@ -0,0 +1,38 @@ +=== /index.ts === +import type { RequireInterface } from "pkg" assert { "resolution-mode": "require" }; +>RequireInterface : Symbol(RequireInterface, Decl(index.ts, 0, 13)) + +import type { ImportInterface } from "pkg" assert { "resolution-mode": "import" }; +>ImportInterface : Symbol(ImportInterface, Decl(index.ts, 1, 13)) + +export interface LocalInterface extends RequireInterface, ImportInterface {} +>LocalInterface : Symbol(LocalInterface, Decl(index.ts, 1, 82)) +>RequireInterface : Symbol(RequireInterface, Decl(index.ts, 0, 13)) +>ImportInterface : Symbol(ImportInterface, Decl(index.ts, 1, 13)) + +import {type RequireInterface as Req} from "pkg" assert { "resolution-mode": "require" }; +>RequireInterface : Symbol(RequireInterface, Decl(require.d.ts, 0, 0)) +>Req : Symbol(Req, Decl(index.ts, 5, 8)) + +import {type ImportInterface as Imp} from "pkg" assert { "resolution-mode": "import" }; +>Imp : Symbol(Imp, Decl(index.ts, 6, 8)) + +export interface Loc extends Req, Imp {} +>Loc : Symbol(Loc, Decl(index.ts, 6, 87)) +>Req : Symbol(Req, Decl(index.ts, 5, 8)) +>Imp : Symbol(Imp, Decl(index.ts, 6, 8)) + +export type { RequireInterface } from "pkg" assert { "resolution-mode": "require" }; +>RequireInterface : Symbol(RequireInterface, Decl(index.ts, 9, 13)) + +export type { ImportInterface } from "pkg" assert { "resolution-mode": "import" }; +>ImportInterface : Symbol(ImportInterface, Decl(index.ts, 10, 13)) + +=== /node_modules/pkg/import.d.ts === +export interface ImportInterface {} +>ImportInterface : Symbol(ImportInterface, Decl(import.d.ts, 0, 0)) + +=== /node_modules/pkg/require.d.ts === +export interface RequireInterface {} +>RequireInterface : Symbol(RequireInterface, Decl(require.d.ts, 0, 0)) + diff --git a/tests/baselines/reference/nodeModulesImportModeDeclarationEmit1(module=nodenext).types b/tests/baselines/reference/nodeModulesImportModeDeclarationEmit1(module=nodenext).types new file mode 100644 index 0000000000000..61190a772be06 --- /dev/null +++ b/tests/baselines/reference/nodeModulesImportModeDeclarationEmit1(module=nodenext).types @@ -0,0 +1,30 @@ +=== /index.ts === +import type { RequireInterface } from "pkg" assert { "resolution-mode": "require" }; +>RequireInterface : RequireInterface + +import type { ImportInterface } from "pkg" assert { "resolution-mode": "import" }; +>ImportInterface : ImportInterface + +export interface LocalInterface extends RequireInterface, ImportInterface {} + +import {type RequireInterface as Req} from "pkg" assert { "resolution-mode": "require" }; +>RequireInterface : any +>Req : any + +import {type ImportInterface as Imp} from "pkg" assert { "resolution-mode": "import" }; +>ImportInterface : any +>Imp : any + +export interface Loc extends Req, Imp {} + +export type { RequireInterface } from "pkg" assert { "resolution-mode": "require" }; +>RequireInterface : RequireInterface + +export type { ImportInterface } from "pkg" assert { "resolution-mode": "import" }; +>ImportInterface : ImportInterface + +=== /node_modules/pkg/import.d.ts === +export interface ImportInterface {} +No type information for this code.=== /node_modules/pkg/require.d.ts === +export interface RequireInterface {} +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/nodeModulesImportModeDeclarationEmit2(module=node12).errors.txt b/tests/baselines/reference/nodeModulesImportModeDeclarationEmit2(module=node12).errors.txt new file mode 100644 index 0000000000000..0403a6e026ffe --- /dev/null +++ b/tests/baselines/reference/nodeModulesImportModeDeclarationEmit2(module=node12).errors.txt @@ -0,0 +1,42 @@ +/index.ts(6,14): error TS2305: Module '"pkg"' has no exported member 'RequireInterface'. +/index.ts(6,50): error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext' or 'nodenext'. +/index.ts(7,49): error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext' or 'nodenext'. + + +==== /index.ts (3 errors) ==== + import type { RequireInterface } from "pkg" assert { "resolution-mode": "require" }; + import type { ImportInterface } from "pkg" assert { "resolution-mode": "import" }; + + export interface LocalInterface extends RequireInterface, ImportInterface {} + + import {type RequireInterface as Req} from "pkg" assert { "resolution-mode": "require" }; + ~~~~~~~~~~~~~~~~ +!!! error TS2305: Module '"pkg"' has no exported member 'RequireInterface'. + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext' or 'nodenext'. + import {type ImportInterface as Imp} from "pkg" assert { "resolution-mode": "import" }; + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext' or 'nodenext'. + export interface Loc extends Req, Imp {} + + export type { RequireInterface } from "pkg" assert { "resolution-mode": "require" }; + export type { ImportInterface } from "pkg" assert { "resolution-mode": "import" }; + +==== /node_modules/pkg/package.json (0 errors) ==== + { + "name": "pkg", + "version": "0.0.1", + "exports": { + "import": "./import.js", + "require": "./require.js" + } + } +==== /node_modules/pkg/import.d.ts (0 errors) ==== + export interface ImportInterface {} +==== /node_modules/pkg/require.d.ts (0 errors) ==== + export interface RequireInterface {} +==== /package.json (0 errors) ==== + { + "private": true, + "type": "module" + } \ No newline at end of file diff --git a/tests/baselines/reference/nodeModulesImportModeDeclarationEmit2(module=node12).js b/tests/baselines/reference/nodeModulesImportModeDeclarationEmit2(module=node12).js new file mode 100644 index 0000000000000..fad19d466a6ac --- /dev/null +++ b/tests/baselines/reference/nodeModulesImportModeDeclarationEmit2(module=node12).js @@ -0,0 +1,49 @@ +//// [tests/cases/conformance/node/nodeModulesImportModeDeclarationEmit2.ts] //// + +//// [package.json] +{ + "name": "pkg", + "version": "0.0.1", + "exports": { + "import": "./import.js", + "require": "./require.js" + } +} +//// [import.d.ts] +export interface ImportInterface {} +//// [require.d.ts] +export interface RequireInterface {} +//// [package.json] +{ + "private": true, + "type": "module" +} +//// [index.ts] +import type { RequireInterface } from "pkg" assert { "resolution-mode": "require" }; +import type { ImportInterface } from "pkg" assert { "resolution-mode": "import" }; + +export interface LocalInterface extends RequireInterface, ImportInterface {} + +import {type RequireInterface as Req} from "pkg" assert { "resolution-mode": "require" }; +import {type ImportInterface as Imp} from "pkg" assert { "resolution-mode": "import" }; +export interface Loc extends Req, Imp {} + +export type { RequireInterface } from "pkg" assert { "resolution-mode": "require" }; +export type { ImportInterface } from "pkg" assert { "resolution-mode": "import" }; + + +//// [index.js] +export {}; + + +//// [index.d.ts] +import type { RequireInterface } from "pkg" assert { "resolution-mode": "require" }; +import type { ImportInterface } from "pkg" assert { "resolution-mode": "import" }; +export interface LocalInterface extends RequireInterface, ImportInterface { +} +import { type RequireInterface as Req } from "pkg" assert { "resolution-mode": "require" }; +import { type ImportInterface as Imp } from "pkg" assert { "resolution-mode": "import" }; +export interface Loc extends Req, Imp { +} +export type { RequireInterface } from "pkg" assert { "resolution-mode": "require" }; +export type { ImportInterface } from "pkg" assert { "resolution-mode": "import" }; diff --git a/tests/baselines/reference/nodeModulesImportModeDeclarationEmit2(module=node12).symbols b/tests/baselines/reference/nodeModulesImportModeDeclarationEmit2(module=node12).symbols new file mode 100644 index 0000000000000..fe172a1586e3c --- /dev/null +++ b/tests/baselines/reference/nodeModulesImportModeDeclarationEmit2(module=node12).symbols @@ -0,0 +1,38 @@ +=== /index.ts === +import type { RequireInterface } from "pkg" assert { "resolution-mode": "require" }; +>RequireInterface : Symbol(RequireInterface, Decl(index.ts, 0, 13)) + +import type { ImportInterface } from "pkg" assert { "resolution-mode": "import" }; +>ImportInterface : Symbol(ImportInterface, Decl(index.ts, 1, 13)) + +export interface LocalInterface extends RequireInterface, ImportInterface {} +>LocalInterface : Symbol(LocalInterface, Decl(index.ts, 1, 82)) +>RequireInterface : Symbol(RequireInterface, Decl(index.ts, 0, 13)) +>ImportInterface : Symbol(ImportInterface, Decl(index.ts, 1, 13)) + +import {type RequireInterface as Req} from "pkg" assert { "resolution-mode": "require" }; +>Req : Symbol(Req, Decl(index.ts, 5, 8)) + +import {type ImportInterface as Imp} from "pkg" assert { "resolution-mode": "import" }; +>ImportInterface : Symbol(ImportInterface, Decl(import.d.ts, 0, 0)) +>Imp : Symbol(Imp, Decl(index.ts, 6, 8)) + +export interface Loc extends Req, Imp {} +>Loc : Symbol(Loc, Decl(index.ts, 6, 87)) +>Req : Symbol(Req, Decl(index.ts, 5, 8)) +>Imp : Symbol(Imp, Decl(index.ts, 6, 8)) + +export type { RequireInterface } from "pkg" assert { "resolution-mode": "require" }; +>RequireInterface : Symbol(RequireInterface, Decl(index.ts, 9, 13)) + +export type { ImportInterface } from "pkg" assert { "resolution-mode": "import" }; +>ImportInterface : Symbol(ImportInterface, Decl(index.ts, 10, 13)) + +=== /node_modules/pkg/import.d.ts === +export interface ImportInterface {} +>ImportInterface : Symbol(ImportInterface, Decl(import.d.ts, 0, 0)) + +=== /node_modules/pkg/require.d.ts === +export interface RequireInterface {} +>RequireInterface : Symbol(RequireInterface, Decl(require.d.ts, 0, 0)) + diff --git a/tests/baselines/reference/nodeModulesImportModeDeclarationEmit2(module=node12).types b/tests/baselines/reference/nodeModulesImportModeDeclarationEmit2(module=node12).types new file mode 100644 index 0000000000000..61190a772be06 --- /dev/null +++ b/tests/baselines/reference/nodeModulesImportModeDeclarationEmit2(module=node12).types @@ -0,0 +1,30 @@ +=== /index.ts === +import type { RequireInterface } from "pkg" assert { "resolution-mode": "require" }; +>RequireInterface : RequireInterface + +import type { ImportInterface } from "pkg" assert { "resolution-mode": "import" }; +>ImportInterface : ImportInterface + +export interface LocalInterface extends RequireInterface, ImportInterface {} + +import {type RequireInterface as Req} from "pkg" assert { "resolution-mode": "require" }; +>RequireInterface : any +>Req : any + +import {type ImportInterface as Imp} from "pkg" assert { "resolution-mode": "import" }; +>ImportInterface : any +>Imp : any + +export interface Loc extends Req, Imp {} + +export type { RequireInterface } from "pkg" assert { "resolution-mode": "require" }; +>RequireInterface : RequireInterface + +export type { ImportInterface } from "pkg" assert { "resolution-mode": "import" }; +>ImportInterface : ImportInterface + +=== /node_modules/pkg/import.d.ts === +export interface ImportInterface {} +No type information for this code.=== /node_modules/pkg/require.d.ts === +export interface RequireInterface {} +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/nodeModulesImportModeDeclarationEmit2(module=nodenext).errors.txt b/tests/baselines/reference/nodeModulesImportModeDeclarationEmit2(module=nodenext).errors.txt new file mode 100644 index 0000000000000..47c2ad040c0db --- /dev/null +++ b/tests/baselines/reference/nodeModulesImportModeDeclarationEmit2(module=nodenext).errors.txt @@ -0,0 +1,42 @@ +/index.ts(6,14): error TS2305: Module '"pkg"' has no exported member 'RequireInterface'. +/index.ts(6,50): error TS1454: `resolution-mode` can only be set for type-only imports. +/index.ts(7,49): error TS1454: `resolution-mode` can only be set for type-only imports. + + +==== /index.ts (3 errors) ==== + import type { RequireInterface } from "pkg" assert { "resolution-mode": "require" }; + import type { ImportInterface } from "pkg" assert { "resolution-mode": "import" }; + + export interface LocalInterface extends RequireInterface, ImportInterface {} + + import {type RequireInterface as Req} from "pkg" assert { "resolution-mode": "require" }; + ~~~~~~~~~~~~~~~~ +!!! error TS2305: Module '"pkg"' has no exported member 'RequireInterface'. + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS1454: `resolution-mode` can only be set for type-only imports. + import {type ImportInterface as Imp} from "pkg" assert { "resolution-mode": "import" }; + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS1454: `resolution-mode` can only be set for type-only imports. + export interface Loc extends Req, Imp {} + + export type { RequireInterface } from "pkg" assert { "resolution-mode": "require" }; + export type { ImportInterface } from "pkg" assert { "resolution-mode": "import" }; + +==== /node_modules/pkg/package.json (0 errors) ==== + { + "name": "pkg", + "version": "0.0.1", + "exports": { + "import": "./import.js", + "require": "./require.js" + } + } +==== /node_modules/pkg/import.d.ts (0 errors) ==== + export interface ImportInterface {} +==== /node_modules/pkg/require.d.ts (0 errors) ==== + export interface RequireInterface {} +==== /package.json (0 errors) ==== + { + "private": true, + "type": "module" + } \ No newline at end of file diff --git a/tests/baselines/reference/nodeModulesImportModeDeclarationEmit2(module=nodenext).js b/tests/baselines/reference/nodeModulesImportModeDeclarationEmit2(module=nodenext).js new file mode 100644 index 0000000000000..fad19d466a6ac --- /dev/null +++ b/tests/baselines/reference/nodeModulesImportModeDeclarationEmit2(module=nodenext).js @@ -0,0 +1,49 @@ +//// [tests/cases/conformance/node/nodeModulesImportModeDeclarationEmit2.ts] //// + +//// [package.json] +{ + "name": "pkg", + "version": "0.0.1", + "exports": { + "import": "./import.js", + "require": "./require.js" + } +} +//// [import.d.ts] +export interface ImportInterface {} +//// [require.d.ts] +export interface RequireInterface {} +//// [package.json] +{ + "private": true, + "type": "module" +} +//// [index.ts] +import type { RequireInterface } from "pkg" assert { "resolution-mode": "require" }; +import type { ImportInterface } from "pkg" assert { "resolution-mode": "import" }; + +export interface LocalInterface extends RequireInterface, ImportInterface {} + +import {type RequireInterface as Req} from "pkg" assert { "resolution-mode": "require" }; +import {type ImportInterface as Imp} from "pkg" assert { "resolution-mode": "import" }; +export interface Loc extends Req, Imp {} + +export type { RequireInterface } from "pkg" assert { "resolution-mode": "require" }; +export type { ImportInterface } from "pkg" assert { "resolution-mode": "import" }; + + +//// [index.js] +export {}; + + +//// [index.d.ts] +import type { RequireInterface } from "pkg" assert { "resolution-mode": "require" }; +import type { ImportInterface } from "pkg" assert { "resolution-mode": "import" }; +export interface LocalInterface extends RequireInterface, ImportInterface { +} +import { type RequireInterface as Req } from "pkg" assert { "resolution-mode": "require" }; +import { type ImportInterface as Imp } from "pkg" assert { "resolution-mode": "import" }; +export interface Loc extends Req, Imp { +} +export type { RequireInterface } from "pkg" assert { "resolution-mode": "require" }; +export type { ImportInterface } from "pkg" assert { "resolution-mode": "import" }; diff --git a/tests/baselines/reference/nodeModulesImportModeDeclarationEmit2(module=nodenext).symbols b/tests/baselines/reference/nodeModulesImportModeDeclarationEmit2(module=nodenext).symbols new file mode 100644 index 0000000000000..fe172a1586e3c --- /dev/null +++ b/tests/baselines/reference/nodeModulesImportModeDeclarationEmit2(module=nodenext).symbols @@ -0,0 +1,38 @@ +=== /index.ts === +import type { RequireInterface } from "pkg" assert { "resolution-mode": "require" }; +>RequireInterface : Symbol(RequireInterface, Decl(index.ts, 0, 13)) + +import type { ImportInterface } from "pkg" assert { "resolution-mode": "import" }; +>ImportInterface : Symbol(ImportInterface, Decl(index.ts, 1, 13)) + +export interface LocalInterface extends RequireInterface, ImportInterface {} +>LocalInterface : Symbol(LocalInterface, Decl(index.ts, 1, 82)) +>RequireInterface : Symbol(RequireInterface, Decl(index.ts, 0, 13)) +>ImportInterface : Symbol(ImportInterface, Decl(index.ts, 1, 13)) + +import {type RequireInterface as Req} from "pkg" assert { "resolution-mode": "require" }; +>Req : Symbol(Req, Decl(index.ts, 5, 8)) + +import {type ImportInterface as Imp} from "pkg" assert { "resolution-mode": "import" }; +>ImportInterface : Symbol(ImportInterface, Decl(import.d.ts, 0, 0)) +>Imp : Symbol(Imp, Decl(index.ts, 6, 8)) + +export interface Loc extends Req, Imp {} +>Loc : Symbol(Loc, Decl(index.ts, 6, 87)) +>Req : Symbol(Req, Decl(index.ts, 5, 8)) +>Imp : Symbol(Imp, Decl(index.ts, 6, 8)) + +export type { RequireInterface } from "pkg" assert { "resolution-mode": "require" }; +>RequireInterface : Symbol(RequireInterface, Decl(index.ts, 9, 13)) + +export type { ImportInterface } from "pkg" assert { "resolution-mode": "import" }; +>ImportInterface : Symbol(ImportInterface, Decl(index.ts, 10, 13)) + +=== /node_modules/pkg/import.d.ts === +export interface ImportInterface {} +>ImportInterface : Symbol(ImportInterface, Decl(import.d.ts, 0, 0)) + +=== /node_modules/pkg/require.d.ts === +export interface RequireInterface {} +>RequireInterface : Symbol(RequireInterface, Decl(require.d.ts, 0, 0)) + diff --git a/tests/baselines/reference/nodeModulesImportModeDeclarationEmit2(module=nodenext).types b/tests/baselines/reference/nodeModulesImportModeDeclarationEmit2(module=nodenext).types new file mode 100644 index 0000000000000..61190a772be06 --- /dev/null +++ b/tests/baselines/reference/nodeModulesImportModeDeclarationEmit2(module=nodenext).types @@ -0,0 +1,30 @@ +=== /index.ts === +import type { RequireInterface } from "pkg" assert { "resolution-mode": "require" }; +>RequireInterface : RequireInterface + +import type { ImportInterface } from "pkg" assert { "resolution-mode": "import" }; +>ImportInterface : ImportInterface + +export interface LocalInterface extends RequireInterface, ImportInterface {} + +import {type RequireInterface as Req} from "pkg" assert { "resolution-mode": "require" }; +>RequireInterface : any +>Req : any + +import {type ImportInterface as Imp} from "pkg" assert { "resolution-mode": "import" }; +>ImportInterface : any +>Imp : any + +export interface Loc extends Req, Imp {} + +export type { RequireInterface } from "pkg" assert { "resolution-mode": "require" }; +>RequireInterface : RequireInterface + +export type { ImportInterface } from "pkg" assert { "resolution-mode": "import" }; +>ImportInterface : ImportInterface + +=== /node_modules/pkg/import.d.ts === +export interface ImportInterface {} +No type information for this code.=== /node_modules/pkg/require.d.ts === +export interface RequireInterface {} +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/nodeModulesImportModeDeclarationEmitErrors1(module=node12).errors.txt b/tests/baselines/reference/nodeModulesImportModeDeclarationEmitErrors1(module=node12).errors.txt new file mode 100644 index 0000000000000..bc3eb30565c6f --- /dev/null +++ b/tests/baselines/reference/nodeModulesImportModeDeclarationEmitErrors1(module=node12).errors.txt @@ -0,0 +1,43 @@ +/index.ts(2,45): error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext' or 'nodenext'. +/index.ts(2,73): error TS1453: `resolution-mode` should be either `require` or `import`. +/index.ts(4,10): error TS2305: Module '"pkg"' has no exported member 'ImportInterface'. +/index.ts(4,39): error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext' or 'nodenext'. +/index.ts(6,76): error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext' or 'nodenext'. + + +==== /index.ts (5 errors) ==== + // incorrect mode + import type { RequireInterface } from "pkg" assert { "resolution-mode": "foobar" }; + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext' or 'nodenext'. + ~~~~~~~~ +!!! error TS1453: `resolution-mode` should be either `require` or `import`. + // not type-only + import { ImportInterface } from "pkg" assert { "resolution-mode": "import" }; + ~~~~~~~~~~~~~~~ +!!! error TS2305: Module '"pkg"' has no exported member 'ImportInterface'. + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext' or 'nodenext'. + // not exclusively type-only + import {type RequireInterface as Req, RequireInterface as Req2} from "pkg" assert { "resolution-mode": "require" }; + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext' or 'nodenext'. + + export interface LocalInterface extends RequireInterface, ImportInterface {} + + + + +==== /node_modules/pkg/package.json (0 errors) ==== + { + "name": "pkg", + "version": "0.0.1", + "exports": { + "import": "./import.js", + "require": "./require.js" + } + } +==== /node_modules/pkg/import.d.ts (0 errors) ==== + export interface ImportInterface {} +==== /node_modules/pkg/require.d.ts (0 errors) ==== + export interface RequireInterface {} \ No newline at end of file diff --git a/tests/baselines/reference/nodeModulesImportModeDeclarationEmitErrors1(module=node12).js b/tests/baselines/reference/nodeModulesImportModeDeclarationEmitErrors1(module=node12).js new file mode 100644 index 0000000000000..3b2af2656d08b --- /dev/null +++ b/tests/baselines/reference/nodeModulesImportModeDeclarationEmitErrors1(module=node12).js @@ -0,0 +1,39 @@ +//// [tests/cases/conformance/node/nodeModulesImportModeDeclarationEmitErrors1.ts] //// + +//// [package.json] +{ + "name": "pkg", + "version": "0.0.1", + "exports": { + "import": "./import.js", + "require": "./require.js" + } +} +//// [import.d.ts] +export interface ImportInterface {} +//// [require.d.ts] +export interface RequireInterface {} +//// [index.ts] +// incorrect mode +import type { RequireInterface } from "pkg" assert { "resolution-mode": "foobar" }; +// not type-only +import { ImportInterface } from "pkg" assert { "resolution-mode": "import" }; +// not exclusively type-only +import {type RequireInterface as Req, RequireInterface as Req2} from "pkg" assert { "resolution-mode": "require" }; + +export interface LocalInterface extends RequireInterface, ImportInterface {} + + + + + +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); + + +//// [index.d.ts] +import type { RequireInterface } from "pkg"; +import { ImportInterface } from "pkg" assert { "resolution-mode": "import" }; +export interface LocalInterface extends RequireInterface, ImportInterface { +} diff --git a/tests/baselines/reference/nodeModulesImportModeDeclarationEmitErrors1(module=node12).symbols b/tests/baselines/reference/nodeModulesImportModeDeclarationEmitErrors1(module=node12).symbols new file mode 100644 index 0000000000000..fd1457831835d --- /dev/null +++ b/tests/baselines/reference/nodeModulesImportModeDeclarationEmitErrors1(module=node12).symbols @@ -0,0 +1,28 @@ +=== /index.ts === +// incorrect mode +import type { RequireInterface } from "pkg" assert { "resolution-mode": "foobar" }; +>RequireInterface : Symbol(RequireInterface, Decl(index.ts, 1, 13)) + +// not type-only +import { ImportInterface } from "pkg" assert { "resolution-mode": "import" }; +>ImportInterface : Symbol(ImportInterface, Decl(index.ts, 3, 8)) + +// not exclusively type-only +import {type RequireInterface as Req, RequireInterface as Req2} from "pkg" assert { "resolution-mode": "require" }; +>RequireInterface : Symbol(RequireInterface, Decl(require.d.ts, 0, 0)) +>Req : Symbol(Req, Decl(index.ts, 5, 8)) +>RequireInterface : Symbol(RequireInterface, Decl(require.d.ts, 0, 0)) +>Req2 : Symbol(Req2, Decl(index.ts, 5, 37)) + +export interface LocalInterface extends RequireInterface, ImportInterface {} +>LocalInterface : Symbol(LocalInterface, Decl(index.ts, 5, 115)) +>RequireInterface : Symbol(RequireInterface, Decl(index.ts, 1, 13)) +>ImportInterface : Symbol(ImportInterface, Decl(index.ts, 3, 8)) + + + + +=== /node_modules/pkg/require.d.ts === +export interface RequireInterface {} +>RequireInterface : Symbol(RequireInterface, Decl(require.d.ts, 0, 0)) + diff --git a/tests/baselines/reference/nodeModulesImportModeDeclarationEmitErrors1(module=node12).types b/tests/baselines/reference/nodeModulesImportModeDeclarationEmitErrors1(module=node12).types new file mode 100644 index 0000000000000..07bda5323dbc8 --- /dev/null +++ b/tests/baselines/reference/nodeModulesImportModeDeclarationEmitErrors1(module=node12).types @@ -0,0 +1,24 @@ +=== /index.ts === +// incorrect mode +import type { RequireInterface } from "pkg" assert { "resolution-mode": "foobar" }; +>RequireInterface : RequireInterface + +// not type-only +import { ImportInterface } from "pkg" assert { "resolution-mode": "import" }; +>ImportInterface : any + +// not exclusively type-only +import {type RequireInterface as Req, RequireInterface as Req2} from "pkg" assert { "resolution-mode": "require" }; +>RequireInterface : any +>Req : any +>RequireInterface : any +>Req2 : any + +export interface LocalInterface extends RequireInterface, ImportInterface {} + + + + +=== /node_modules/pkg/require.d.ts === +export interface RequireInterface {} +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/nodeModulesImportModeDeclarationEmitErrors1(module=nodenext).errors.txt b/tests/baselines/reference/nodeModulesImportModeDeclarationEmitErrors1(module=nodenext).errors.txt new file mode 100644 index 0000000000000..49a86cf598055 --- /dev/null +++ b/tests/baselines/reference/nodeModulesImportModeDeclarationEmitErrors1(module=nodenext).errors.txt @@ -0,0 +1,43 @@ +/index.ts(2,45): error TS2836: Import assertions are not allowed on statements that transpile to commonjs 'require' calls. +/index.ts(2,73): error TS1453: `resolution-mode` should be either `require` or `import`. +/index.ts(4,10): error TS2305: Module '"pkg"' has no exported member 'ImportInterface'. +/index.ts(4,39): error TS2836: Import assertions are not allowed on statements that transpile to commonjs 'require' calls. +/index.ts(6,76): error TS2836: Import assertions are not allowed on statements that transpile to commonjs 'require' calls. + + +==== /index.ts (5 errors) ==== + // incorrect mode + import type { RequireInterface } from "pkg" assert { "resolution-mode": "foobar" }; + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2836: Import assertions are not allowed on statements that transpile to commonjs 'require' calls. + ~~~~~~~~ +!!! error TS1453: `resolution-mode` should be either `require` or `import`. + // not type-only + import { ImportInterface } from "pkg" assert { "resolution-mode": "import" }; + ~~~~~~~~~~~~~~~ +!!! error TS2305: Module '"pkg"' has no exported member 'ImportInterface'. + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2836: Import assertions are not allowed on statements that transpile to commonjs 'require' calls. + // not exclusively type-only + import {type RequireInterface as Req, RequireInterface as Req2} from "pkg" assert { "resolution-mode": "require" }; + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2836: Import assertions are not allowed on statements that transpile to commonjs 'require' calls. + + export interface LocalInterface extends RequireInterface, ImportInterface {} + + + + +==== /node_modules/pkg/package.json (0 errors) ==== + { + "name": "pkg", + "version": "0.0.1", + "exports": { + "import": "./import.js", + "require": "./require.js" + } + } +==== /node_modules/pkg/import.d.ts (0 errors) ==== + export interface ImportInterface {} +==== /node_modules/pkg/require.d.ts (0 errors) ==== + export interface RequireInterface {} \ No newline at end of file diff --git a/tests/baselines/reference/nodeModulesImportModeDeclarationEmitErrors1(module=nodenext).js b/tests/baselines/reference/nodeModulesImportModeDeclarationEmitErrors1(module=nodenext).js new file mode 100644 index 0000000000000..3b2af2656d08b --- /dev/null +++ b/tests/baselines/reference/nodeModulesImportModeDeclarationEmitErrors1(module=nodenext).js @@ -0,0 +1,39 @@ +//// [tests/cases/conformance/node/nodeModulesImportModeDeclarationEmitErrors1.ts] //// + +//// [package.json] +{ + "name": "pkg", + "version": "0.0.1", + "exports": { + "import": "./import.js", + "require": "./require.js" + } +} +//// [import.d.ts] +export interface ImportInterface {} +//// [require.d.ts] +export interface RequireInterface {} +//// [index.ts] +// incorrect mode +import type { RequireInterface } from "pkg" assert { "resolution-mode": "foobar" }; +// not type-only +import { ImportInterface } from "pkg" assert { "resolution-mode": "import" }; +// not exclusively type-only +import {type RequireInterface as Req, RequireInterface as Req2} from "pkg" assert { "resolution-mode": "require" }; + +export interface LocalInterface extends RequireInterface, ImportInterface {} + + + + + +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); + + +//// [index.d.ts] +import type { RequireInterface } from "pkg"; +import { ImportInterface } from "pkg" assert { "resolution-mode": "import" }; +export interface LocalInterface extends RequireInterface, ImportInterface { +} diff --git a/tests/baselines/reference/nodeModulesImportModeDeclarationEmitErrors1(module=nodenext).symbols b/tests/baselines/reference/nodeModulesImportModeDeclarationEmitErrors1(module=nodenext).symbols new file mode 100644 index 0000000000000..fd1457831835d --- /dev/null +++ b/tests/baselines/reference/nodeModulesImportModeDeclarationEmitErrors1(module=nodenext).symbols @@ -0,0 +1,28 @@ +=== /index.ts === +// incorrect mode +import type { RequireInterface } from "pkg" assert { "resolution-mode": "foobar" }; +>RequireInterface : Symbol(RequireInterface, Decl(index.ts, 1, 13)) + +// not type-only +import { ImportInterface } from "pkg" assert { "resolution-mode": "import" }; +>ImportInterface : Symbol(ImportInterface, Decl(index.ts, 3, 8)) + +// not exclusively type-only +import {type RequireInterface as Req, RequireInterface as Req2} from "pkg" assert { "resolution-mode": "require" }; +>RequireInterface : Symbol(RequireInterface, Decl(require.d.ts, 0, 0)) +>Req : Symbol(Req, Decl(index.ts, 5, 8)) +>RequireInterface : Symbol(RequireInterface, Decl(require.d.ts, 0, 0)) +>Req2 : Symbol(Req2, Decl(index.ts, 5, 37)) + +export interface LocalInterface extends RequireInterface, ImportInterface {} +>LocalInterface : Symbol(LocalInterface, Decl(index.ts, 5, 115)) +>RequireInterface : Symbol(RequireInterface, Decl(index.ts, 1, 13)) +>ImportInterface : Symbol(ImportInterface, Decl(index.ts, 3, 8)) + + + + +=== /node_modules/pkg/require.d.ts === +export interface RequireInterface {} +>RequireInterface : Symbol(RequireInterface, Decl(require.d.ts, 0, 0)) + diff --git a/tests/baselines/reference/nodeModulesImportModeDeclarationEmitErrors1(module=nodenext).types b/tests/baselines/reference/nodeModulesImportModeDeclarationEmitErrors1(module=nodenext).types new file mode 100644 index 0000000000000..07bda5323dbc8 --- /dev/null +++ b/tests/baselines/reference/nodeModulesImportModeDeclarationEmitErrors1(module=nodenext).types @@ -0,0 +1,24 @@ +=== /index.ts === +// incorrect mode +import type { RequireInterface } from "pkg" assert { "resolution-mode": "foobar" }; +>RequireInterface : RequireInterface + +// not type-only +import { ImportInterface } from "pkg" assert { "resolution-mode": "import" }; +>ImportInterface : any + +// not exclusively type-only +import {type RequireInterface as Req, RequireInterface as Req2} from "pkg" assert { "resolution-mode": "require" }; +>RequireInterface : any +>Req : any +>RequireInterface : any +>Req2 : any + +export interface LocalInterface extends RequireInterface, ImportInterface {} + + + + +=== /node_modules/pkg/require.d.ts === +export interface RequireInterface {} +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/nodeModulesImportResolutionIntoExport(module=node12).js b/tests/baselines/reference/nodeModulesImportResolutionIntoExport(module=node12).js index 813d5046ccfbc..d9c0ba1a429a3 100644 --- a/tests/baselines/reference/nodeModulesImportResolutionIntoExport(module=node12).js +++ b/tests/baselines/reference/nodeModulesImportResolutionIntoExport(module=node12).js @@ -27,7 +27,11 @@ type; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/nodeModulesImportResolutionIntoExport(module=nodenext).js b/tests/baselines/reference/nodeModulesImportResolutionIntoExport(module=nodenext).js index 813d5046ccfbc..d9c0ba1a429a3 100644 --- a/tests/baselines/reference/nodeModulesImportResolutionIntoExport(module=nodenext).js +++ b/tests/baselines/reference/nodeModulesImportResolutionIntoExport(module=nodenext).js @@ -27,7 +27,11 @@ type; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/nodeModulesImportResolutionNoCycle(module=node12).js b/tests/baselines/reference/nodeModulesImportResolutionNoCycle(module=node12).js index ccdc459ab1a08..a5ed511f6f5f7 100644 --- a/tests/baselines/reference/nodeModulesImportResolutionNoCycle(module=node12).js +++ b/tests/baselines/reference/nodeModulesImportResolutionNoCycle(module=node12).js @@ -35,7 +35,11 @@ type; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/nodeModulesImportResolutionNoCycle(module=nodenext).js b/tests/baselines/reference/nodeModulesImportResolutionNoCycle(module=nodenext).js index ccdc459ab1a08..a5ed511f6f5f7 100644 --- a/tests/baselines/reference/nodeModulesImportResolutionNoCycle(module=nodenext).js +++ b/tests/baselines/reference/nodeModulesImportResolutionNoCycle(module=nodenext).js @@ -35,7 +35,11 @@ type; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/nodeModulesImportTypeModeDeclarationEmit1(module=node12).js b/tests/baselines/reference/nodeModulesImportTypeModeDeclarationEmit1(module=node12).js new file mode 100644 index 0000000000000..4a65e05cdd90e --- /dev/null +++ b/tests/baselines/reference/nodeModulesImportTypeModeDeclarationEmit1(module=node12).js @@ -0,0 +1,36 @@ +//// [tests/cases/conformance/node/nodeModulesImportTypeModeDeclarationEmit1.ts] //// + +//// [package.json] +{ + "name": "pkg", + "version": "0.0.1", + "exports": { + "import": "./import.js", + "require": "./require.js" + } +} +//// [import.d.ts] +export interface ImportInterface {} +//// [require.d.ts] +export interface RequireInterface {} +//// [index.ts] +export type LocalInterface = + & import("pkg", { assert: {"resolution-mode": "require"} }).RequireInterface + & import("pkg", { assert: {"resolution-mode": "import"} }).ImportInterface; + +export const a = (null as any as import("pkg", { assert: {"resolution-mode": "require"} }).RequireInterface); +export const b = (null as any as import("pkg", { assert: {"resolution-mode": "import"} }).ImportInterface); + + +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.b = exports.a = void 0; +exports.a = null; +exports.b = null; + + +//// [index.d.ts] +export declare type LocalInterface = import("pkg", { assert: { "resolution-mode": "require" } }).RequireInterface & import("pkg", { assert: { "resolution-mode": "import" } }).ImportInterface; +export declare const a: import("pkg").RequireInterface; +export declare const b: import("pkg", { assert: { "resolution-mode": "import" } }).ImportInterface; diff --git a/tests/baselines/reference/nodeModulesImportTypeModeDeclarationEmit1(module=node12).symbols b/tests/baselines/reference/nodeModulesImportTypeModeDeclarationEmit1(module=node12).symbols new file mode 100644 index 0000000000000..dd5d452777292 --- /dev/null +++ b/tests/baselines/reference/nodeModulesImportTypeModeDeclarationEmit1(module=node12).symbols @@ -0,0 +1,26 @@ +=== /index.ts === +export type LocalInterface = +>LocalInterface : Symbol(LocalInterface, Decl(index.ts, 0, 0)) + + & import("pkg", { assert: {"resolution-mode": "require"} }).RequireInterface +>RequireInterface : Symbol(RequireInterface, Decl(require.d.ts, 0, 0)) + + & import("pkg", { assert: {"resolution-mode": "import"} }).ImportInterface; +>ImportInterface : Symbol(ImportInterface, Decl(import.d.ts, 0, 0)) + +export const a = (null as any as import("pkg", { assert: {"resolution-mode": "require"} }).RequireInterface); +>a : Symbol(a, Decl(index.ts, 4, 12)) +>RequireInterface : Symbol(RequireInterface, Decl(require.d.ts, 0, 0)) + +export const b = (null as any as import("pkg", { assert: {"resolution-mode": "import"} }).ImportInterface); +>b : Symbol(b, Decl(index.ts, 5, 12)) +>ImportInterface : Symbol(ImportInterface, Decl(import.d.ts, 0, 0)) + +=== /node_modules/pkg/import.d.ts === +export interface ImportInterface {} +>ImportInterface : Symbol(ImportInterface, Decl(import.d.ts, 0, 0)) + +=== /node_modules/pkg/require.d.ts === +export interface RequireInterface {} +>RequireInterface : Symbol(RequireInterface, Decl(require.d.ts, 0, 0)) + diff --git a/tests/baselines/reference/nodeModulesImportTypeModeDeclarationEmit1(module=node12).types b/tests/baselines/reference/nodeModulesImportTypeModeDeclarationEmit1(module=node12).types new file mode 100644 index 0000000000000..82a46bf9b274c --- /dev/null +++ b/tests/baselines/reference/nodeModulesImportTypeModeDeclarationEmit1(module=node12).types @@ -0,0 +1,26 @@ +=== /index.ts === +export type LocalInterface = +>LocalInterface : LocalInterface + + & import("pkg", { assert: {"resolution-mode": "require"} }).RequireInterface + & import("pkg", { assert: {"resolution-mode": "import"} }).ImportInterface; + +export const a = (null as any as import("pkg", { assert: {"resolution-mode": "require"} }).RequireInterface); +>a : import("/node_modules/pkg/require").RequireInterface +>(null as any as import("pkg", { assert: {"resolution-mode": "require"} }).RequireInterface) : import("/node_modules/pkg/require").RequireInterface +>null as any as import("pkg", { assert: {"resolution-mode": "require"} }).RequireInterface : import("/node_modules/pkg/require").RequireInterface +>null as any : any +>null : null + +export const b = (null as any as import("pkg", { assert: {"resolution-mode": "import"} }).ImportInterface); +>b : import("/node_modules/pkg/import").ImportInterface +>(null as any as import("pkg", { assert: {"resolution-mode": "import"} }).ImportInterface) : import("/node_modules/pkg/import").ImportInterface +>null as any as import("pkg", { assert: {"resolution-mode": "import"} }).ImportInterface : import("/node_modules/pkg/import").ImportInterface +>null as any : any +>null : null + +=== /node_modules/pkg/import.d.ts === +export interface ImportInterface {} +No type information for this code.=== /node_modules/pkg/require.d.ts === +export interface RequireInterface {} +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/nodeModulesImportTypeModeDeclarationEmit1(module=nodenext).js b/tests/baselines/reference/nodeModulesImportTypeModeDeclarationEmit1(module=nodenext).js new file mode 100644 index 0000000000000..4a65e05cdd90e --- /dev/null +++ b/tests/baselines/reference/nodeModulesImportTypeModeDeclarationEmit1(module=nodenext).js @@ -0,0 +1,36 @@ +//// [tests/cases/conformance/node/nodeModulesImportTypeModeDeclarationEmit1.ts] //// + +//// [package.json] +{ + "name": "pkg", + "version": "0.0.1", + "exports": { + "import": "./import.js", + "require": "./require.js" + } +} +//// [import.d.ts] +export interface ImportInterface {} +//// [require.d.ts] +export interface RequireInterface {} +//// [index.ts] +export type LocalInterface = + & import("pkg", { assert: {"resolution-mode": "require"} }).RequireInterface + & import("pkg", { assert: {"resolution-mode": "import"} }).ImportInterface; + +export const a = (null as any as import("pkg", { assert: {"resolution-mode": "require"} }).RequireInterface); +export const b = (null as any as import("pkg", { assert: {"resolution-mode": "import"} }).ImportInterface); + + +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.b = exports.a = void 0; +exports.a = null; +exports.b = null; + + +//// [index.d.ts] +export declare type LocalInterface = import("pkg", { assert: { "resolution-mode": "require" } }).RequireInterface & import("pkg", { assert: { "resolution-mode": "import" } }).ImportInterface; +export declare const a: import("pkg").RequireInterface; +export declare const b: import("pkg", { assert: { "resolution-mode": "import" } }).ImportInterface; diff --git a/tests/baselines/reference/nodeModulesImportTypeModeDeclarationEmit1(module=nodenext).symbols b/tests/baselines/reference/nodeModulesImportTypeModeDeclarationEmit1(module=nodenext).symbols new file mode 100644 index 0000000000000..dd5d452777292 --- /dev/null +++ b/tests/baselines/reference/nodeModulesImportTypeModeDeclarationEmit1(module=nodenext).symbols @@ -0,0 +1,26 @@ +=== /index.ts === +export type LocalInterface = +>LocalInterface : Symbol(LocalInterface, Decl(index.ts, 0, 0)) + + & import("pkg", { assert: {"resolution-mode": "require"} }).RequireInterface +>RequireInterface : Symbol(RequireInterface, Decl(require.d.ts, 0, 0)) + + & import("pkg", { assert: {"resolution-mode": "import"} }).ImportInterface; +>ImportInterface : Symbol(ImportInterface, Decl(import.d.ts, 0, 0)) + +export const a = (null as any as import("pkg", { assert: {"resolution-mode": "require"} }).RequireInterface); +>a : Symbol(a, Decl(index.ts, 4, 12)) +>RequireInterface : Symbol(RequireInterface, Decl(require.d.ts, 0, 0)) + +export const b = (null as any as import("pkg", { assert: {"resolution-mode": "import"} }).ImportInterface); +>b : Symbol(b, Decl(index.ts, 5, 12)) +>ImportInterface : Symbol(ImportInterface, Decl(import.d.ts, 0, 0)) + +=== /node_modules/pkg/import.d.ts === +export interface ImportInterface {} +>ImportInterface : Symbol(ImportInterface, Decl(import.d.ts, 0, 0)) + +=== /node_modules/pkg/require.d.ts === +export interface RequireInterface {} +>RequireInterface : Symbol(RequireInterface, Decl(require.d.ts, 0, 0)) + diff --git a/tests/baselines/reference/nodeModulesImportTypeModeDeclarationEmit1(module=nodenext).types b/tests/baselines/reference/nodeModulesImportTypeModeDeclarationEmit1(module=nodenext).types new file mode 100644 index 0000000000000..82a46bf9b274c --- /dev/null +++ b/tests/baselines/reference/nodeModulesImportTypeModeDeclarationEmit1(module=nodenext).types @@ -0,0 +1,26 @@ +=== /index.ts === +export type LocalInterface = +>LocalInterface : LocalInterface + + & import("pkg", { assert: {"resolution-mode": "require"} }).RequireInterface + & import("pkg", { assert: {"resolution-mode": "import"} }).ImportInterface; + +export const a = (null as any as import("pkg", { assert: {"resolution-mode": "require"} }).RequireInterface); +>a : import("/node_modules/pkg/require").RequireInterface +>(null as any as import("pkg", { assert: {"resolution-mode": "require"} }).RequireInterface) : import("/node_modules/pkg/require").RequireInterface +>null as any as import("pkg", { assert: {"resolution-mode": "require"} }).RequireInterface : import("/node_modules/pkg/require").RequireInterface +>null as any : any +>null : null + +export const b = (null as any as import("pkg", { assert: {"resolution-mode": "import"} }).ImportInterface); +>b : import("/node_modules/pkg/import").ImportInterface +>(null as any as import("pkg", { assert: {"resolution-mode": "import"} }).ImportInterface) : import("/node_modules/pkg/import").ImportInterface +>null as any as import("pkg", { assert: {"resolution-mode": "import"} }).ImportInterface : import("/node_modules/pkg/import").ImportInterface +>null as any : any +>null : null + +=== /node_modules/pkg/import.d.ts === +export interface ImportInterface {} +No type information for this code.=== /node_modules/pkg/require.d.ts === +export interface RequireInterface {} +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/nodeModulesImportTypeModeDeclarationEmitErrors1(module=node12).errors.txt b/tests/baselines/reference/nodeModulesImportTypeModeDeclarationEmitErrors1(module=node12).errors.txt new file mode 100644 index 0000000000000..b8b88af5ded82 --- /dev/null +++ b/tests/baselines/reference/nodeModulesImportTypeModeDeclarationEmitErrors1(module=node12).errors.txt @@ -0,0 +1,304 @@ +/index.ts(2,51): error TS1453: `resolution-mode` should be either `require` or `import`. +/index.ts(5,78): error TS1453: `resolution-mode` should be either `require` or `import`. +/other.ts(3,7): error TS1340: Module 'pkg' does not refer to a type, but is used as a type here. Did you mean 'typeof import('pkg')'? +/other.ts(3,22): error TS1005: 'assert' expected. +/other.ts(3,39): error TS1005: ';' expected. +/other.ts(3,50): error TS1128: Declaration or statement expected. +/other.ts(3,51): error TS1128: Declaration or statement expected. +/other.ts(3,52): error TS1128: Declaration or statement expected. +/other.ts(3,53): error TS2304: Cannot find name 'RequireInterface'. +/other.ts(4,22): error TS2322: Type '{ "resolution-mode": string; }' is not assignable to type 'ImportCallOptions'. + Object literal may only specify known properties, and '"resolution-mode"' does not exist in type 'ImportCallOptions'. +/other.ts(4,52): error TS2339: Property 'ImportInterface' does not exist on type 'Promise<{ default: typeof import("/node_modules/pkg/import"); }>'. +/other.ts(6,34): error TS1340: Module 'pkg' does not refer to a type, but is used as a type here. Did you mean 'typeof import('pkg')'? +/other.ts(6,49): error TS1005: 'assert' expected. +/other.ts(6,66): error TS1005: ';' expected. +/other.ts(6,77): error TS1128: Declaration or statement expected. +/other.ts(6,78): error TS1128: Declaration or statement expected. +/other.ts(6,79): error TS1128: Declaration or statement expected. +/other.ts(6,80): error TS1434: Unexpected keyword or identifier. +/other.ts(6,80): error TS2304: Cannot find name 'RequireInterface'. +/other.ts(6,96): error TS1128: Declaration or statement expected. +/other.ts(7,34): error TS1340: Module 'pkg' does not refer to a type, but is used as a type here. Did you mean 'typeof import('pkg')'? +/other.ts(7,49): error TS1005: 'assert' expected. +/other.ts(7,66): error TS1005: ';' expected. +/other.ts(7,76): error TS1128: Declaration or statement expected. +/other.ts(7,77): error TS1128: Declaration or statement expected. +/other.ts(7,78): error TS1128: Declaration or statement expected. +/other.ts(7,79): error TS1434: Unexpected keyword or identifier. +/other.ts(7,79): error TS2304: Cannot find name 'ImportInterface'. +/other.ts(7,94): error TS1128: Declaration or statement expected. +/other2.ts(3,32): error TS1455: `resolution-mode` is the only valid key for type import assertions. +/other2.ts(4,32): error TS1455: `resolution-mode` is the only valid key for type import assertions. +/other2.ts(4,52): error TS2694: Namespace '"/node_modules/pkg/require"' has no exported member 'ImportInterface'. +/other2.ts(6,59): error TS1455: `resolution-mode` is the only valid key for type import assertions. +/other2.ts(7,59): error TS1455: `resolution-mode` is the only valid key for type import assertions. +/other2.ts(7,79): error TS2694: Namespace '"/node_modules/pkg/require"' has no exported member 'ImportInterface'. +/other3.ts(3,7): error TS1340: Module 'pkg' does not refer to a type, but is used as a type here. Did you mean 'typeof import('pkg')'? +/other3.ts(3,21): error TS1005: '{' expected. +/other3.ts(3,23): error TS2538: Type '{ "resolution-mode": "require"; }' cannot be used as an index type. +/other3.ts(3,55): error TS1005: ';' expected. +/other3.ts(3,56): error TS1128: Declaration or statement expected. +/other3.ts(3,57): error TS2304: Cannot find name 'RequireInterface'. +/other3.ts(4,21): error TS2559: Type '{ "resolution-mode": string; }[]' has no properties in common with type 'ImportCallOptions'. +/other3.ts(4,56): error TS2339: Property 'ImportInterface' does not exist on type 'Promise<{ default: typeof import("/node_modules/pkg/import"); }>'. +/other3.ts(6,34): error TS1340: Module 'pkg' does not refer to a type, but is used as a type here. Did you mean 'typeof import('pkg')'? +/other3.ts(6,48): error TS1005: '{' expected. +/other3.ts(6,50): error TS2538: Type '{ "resolution-mode": "require"; }' cannot be used as an index type. +/other3.ts(6,100): error TS1005: ',' expected. +/other3.ts(7,34): error TS1340: Module 'pkg' does not refer to a type, but is used as a type here. Did you mean 'typeof import('pkg')'? +/other3.ts(7,48): error TS1005: '{' expected. +/other3.ts(7,50): error TS2538: Type '{ "resolution-mode": "import"; }' cannot be used as an index type. +/other3.ts(7,98): error TS1005: ',' expected. +/other4.ts(6,7): error TS1340: Module 'pkg' does not refer to a type, but is used as a type here. Did you mean 'typeof import('pkg')'? +/other4.ts(6,21): error TS1005: '{' expected. +/other4.ts(6,21): error TS2448: Block-scoped variable 'Asserts1' used before its declaration. +/other4.ts(6,29): error TS1128: Declaration or statement expected. +/other4.ts(6,30): error TS1128: Declaration or statement expected. +/other4.ts(6,31): error TS2448: Block-scoped variable 'RequireInterface' used before its declaration. +/other4.ts(7,21): error TS2448: Block-scoped variable 'Asserts2' used before its declaration. +/other4.ts(7,31): error TS2339: Property 'ImportInterface' does not exist on type 'Promise<{ default: typeof import("/node_modules/pkg/import"); }>'. +/other4.ts(9,34): error TS1340: Module 'pkg' does not refer to a type, but is used as a type here. Did you mean 'typeof import('pkg')'? +/other4.ts(9,48): error TS1005: '{' expected. +/other4.ts(9,56): error TS1005: ',' expected. +/other4.ts(9,57): error TS1134: Variable declaration expected. +/other4.ts(9,74): error TS1005: ',' expected. +/other4.ts(10,34): error TS1340: Module 'pkg' does not refer to a type, but is used as a type here. Did you mean 'typeof import('pkg')'? +/other4.ts(10,48): error TS1005: '{' expected. +/other4.ts(10,56): error TS1005: ',' expected. +/other4.ts(10,57): error TS1134: Variable declaration expected. +/other4.ts(10,73): error TS1005: ',' expected. +/other5.ts(2,31): error TS1456: Type import assertions should have exactly one key - `resolution-mode` - with value `import` or `require`. +/other5.ts(3,31): error TS1456: Type import assertions should have exactly one key - `resolution-mode` - with value `import` or `require`. +/other5.ts(3,37): error TS2694: Namespace '"/node_modules/pkg/require"' has no exported member 'ImportInterface'. +/other5.ts(5,58): error TS1456: Type import assertions should have exactly one key - `resolution-mode` - with value `import` or `require`. +/other5.ts(6,58): error TS1456: Type import assertions should have exactly one key - `resolution-mode` - with value `import` or `require`. +/other5.ts(6,64): error TS2694: Namespace '"/node_modules/pkg/require"' has no exported member 'ImportInterface'. + + +==== /node_modules/pkg/package.json (0 errors) ==== + { + "name": "pkg", + "version": "0.0.1", + "exports": { + "import": "./import.js", + "require": "./require.js" + } + } +==== /node_modules/pkg/import.d.ts (0 errors) ==== + export interface ImportInterface {} +==== /node_modules/pkg/require.d.ts (0 errors) ==== + export interface RequireInterface {} +==== /index.ts (2 errors) ==== + export type LocalInterface = + & import("pkg", { assert: {"resolution-mode": "foobar"} }).RequireInterface + ~~~~~~~~ +!!! error TS1453: `resolution-mode` should be either `require` or `import`. + & import("pkg", { assert: {"resolution-mode": "import"} }).ImportInterface; + + export const a = (null as any as import("pkg", { assert: {"resolution-mode": "foobar"} }).RequireInterface); + ~~~~~~~~ +!!! error TS1453: `resolution-mode` should be either `require` or `import`. + export const b = (null as any as import("pkg", { assert: {"resolution-mode": "import"} }).ImportInterface); +==== /other.ts (27 errors) ==== + // missing assert: + export type LocalInterface = + & import("pkg", {"resolution-mode": "require"}).RequireInterface + ~~~~~~~~~~~~~~~ +!!! error TS1340: Module 'pkg' does not refer to a type, but is used as a type here. Did you mean 'typeof import('pkg')'? + ~~~~~~~~~~~~~~~~~ +!!! error TS1005: 'assert' expected. +!!! related TS1007 /other.ts:3:21: The parser expected to find a '}' to match the '{' token here. + ~ +!!! error TS1005: ';' expected. + ~ +!!! error TS1128: Declaration or statement expected. + ~ +!!! error TS1128: Declaration or statement expected. + ~ +!!! error TS1128: Declaration or statement expected. + ~~~~~~~~~~~~~~~~ +!!! error TS2304: Cannot find name 'RequireInterface'. + & import("pkg", {"resolution-mode": "import"}).ImportInterface; + ~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2322: Type '{ "resolution-mode": string; }' is not assignable to type 'ImportCallOptions'. +!!! error TS2322: Object literal may only specify known properties, and '"resolution-mode"' does not exist in type 'ImportCallOptions'. + ~~~~~~~~~~~~~~~ +!!! error TS2339: Property 'ImportInterface' does not exist on type 'Promise<{ default: typeof import("/node_modules/pkg/import"); }>'. + + export const a = (null as any as import("pkg", {"resolution-mode": "require"}).RequireInterface); + ~~~~~~~~~~~~~~~ +!!! error TS1340: Module 'pkg' does not refer to a type, but is used as a type here. Did you mean 'typeof import('pkg')'? + ~~~~~~~~~~~~~~~~~ +!!! error TS1005: 'assert' expected. +!!! related TS1007 /other.ts:6:48: The parser expected to find a '}' to match the '{' token here. + ~ +!!! error TS1005: ';' expected. + ~ +!!! error TS1128: Declaration or statement expected. + ~ +!!! error TS1128: Declaration or statement expected. + ~ +!!! error TS1128: Declaration or statement expected. + ~~~~~~~~~~~~~~~~ +!!! error TS1434: Unexpected keyword or identifier. + ~~~~~~~~~~~~~~~~ +!!! error TS2304: Cannot find name 'RequireInterface'. + ~ +!!! error TS1128: Declaration or statement expected. + export const b = (null as any as import("pkg", {"resolution-mode": "import"}).ImportInterface); + ~~~~~~~~~~~~~~~ +!!! error TS1340: Module 'pkg' does not refer to a type, but is used as a type here. Did you mean 'typeof import('pkg')'? + ~~~~~~~~~~~~~~~~~ +!!! error TS1005: 'assert' expected. +!!! related TS1007 /other.ts:7:48: The parser expected to find a '}' to match the '{' token here. + ~ +!!! error TS1005: ';' expected. + ~ +!!! error TS1128: Declaration or statement expected. + ~ +!!! error TS1128: Declaration or statement expected. + ~ +!!! error TS1128: Declaration or statement expected. + ~~~~~~~~~~~~~~~ +!!! error TS1434: Unexpected keyword or identifier. + ~~~~~~~~~~~~~~~ +!!! error TS2304: Cannot find name 'ImportInterface'. + ~ +!!! error TS1128: Declaration or statement expected. +==== /other2.ts (6 errors) ==== + // wrong assertion key + export type LocalInterface = + & import("pkg", { assert: {"bad": "require"} }).RequireInterface + ~~~~~ +!!! error TS1455: `resolution-mode` is the only valid key for type import assertions. + & import("pkg", { assert: {"bad": "import"} }).ImportInterface; + ~~~~~ +!!! error TS1455: `resolution-mode` is the only valid key for type import assertions. + ~~~~~~~~~~~~~~~ +!!! error TS2694: Namespace '"/node_modules/pkg/require"' has no exported member 'ImportInterface'. + + export const a = (null as any as import("pkg", { assert: {"bad": "require"} }).RequireInterface); + ~~~~~ +!!! error TS1455: `resolution-mode` is the only valid key for type import assertions. + export const b = (null as any as import("pkg", { assert: {"bad": "import"} }).ImportInterface); + ~~~~~ +!!! error TS1455: `resolution-mode` is the only valid key for type import assertions. + ~~~~~~~~~~~~~~~ +!!! error TS2694: Namespace '"/node_modules/pkg/require"' has no exported member 'ImportInterface'. +==== /other3.ts (16 errors) ==== + // Array instead of object-y thing + export type LocalInterface = + & import("pkg", [ {"resolution-mode": "require"} ]).RequireInterface + ~~~~~~~~~~~~~ +!!! error TS1340: Module 'pkg' does not refer to a type, but is used as a type here. Did you mean 'typeof import('pkg')'? + ~ +!!! error TS1005: '{' expected. +!!! related TS1007 /other3.ts:3:21: The parser expected to find a '}' to match the '{' token here. + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2538: Type '{ "resolution-mode": "require"; }' cannot be used as an index type. + ~ +!!! error TS1005: ';' expected. + ~ +!!! error TS1128: Declaration or statement expected. + ~~~~~~~~~~~~~~~~ +!!! error TS2304: Cannot find name 'RequireInterface'. + & import("pkg", [ {"resolution-mode": "import"} ]).ImportInterface; + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2559: Type '{ "resolution-mode": string; }[]' has no properties in common with type 'ImportCallOptions'. + ~~~~~~~~~~~~~~~ +!!! error TS2339: Property 'ImportInterface' does not exist on type 'Promise<{ default: typeof import("/node_modules/pkg/import"); }>'. + + export const a = (null as any as import("pkg", [ {"resolution-mode": "require"} ]).RequireInterface); + ~~~~~~~~~~~~~ +!!! error TS1340: Module 'pkg' does not refer to a type, but is used as a type here. Did you mean 'typeof import('pkg')'? + ~ +!!! error TS1005: '{' expected. +!!! related TS1007 /other3.ts:6:48: The parser expected to find a '}' to match the '{' token here. + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2538: Type '{ "resolution-mode": "require"; }' cannot be used as an index type. + ~ +!!! error TS1005: ',' expected. + export const b = (null as any as import("pkg", [ {"resolution-mode": "import"} ]).ImportInterface); + ~~~~~~~~~~~~~ +!!! error TS1340: Module 'pkg' does not refer to a type, but is used as a type here. Did you mean 'typeof import('pkg')'? + ~ +!!! error TS1005: '{' expected. +!!! related TS1007 /other3.ts:7:48: The parser expected to find a '}' to match the '{' token here. + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2538: Type '{ "resolution-mode": "import"; }' cannot be used as an index type. + ~ +!!! error TS1005: ',' expected. +==== /other4.ts (18 errors) ==== + // Indirected assertion objecty-thing - not allowed + type Asserts1 = { assert: {"resolution-mode": "require"} }; + type Asserts2 = { assert: {"resolution-mode": "import"} }; + + export type LocalInterface = + & import("pkg", Asserts1).RequireInterface + ~~~~~~~~~~~~~ +!!! error TS1340: Module 'pkg' does not refer to a type, but is used as a type here. Did you mean 'typeof import('pkg')'? + ~~~~~~~~ +!!! error TS1005: '{' expected. +!!! related TS1007 /other4.ts:6:21: The parser expected to find a '}' to match the '{' token here. + ~~~~~~~~ +!!! error TS2448: Block-scoped variable 'Asserts1' used before its declaration. +!!! related TS2728 /other4.ts:9:48: 'Asserts1' is declared here. + ~ +!!! error TS1128: Declaration or statement expected. + ~ +!!! error TS1128: Declaration or statement expected. + ~~~~~~~~~~~~~~~~ +!!! error TS2448: Block-scoped variable 'RequireInterface' used before its declaration. +!!! related TS2728 /other4.ts:9:58: 'RequireInterface' is declared here. + & import("pkg", Asserts2).ImportInterface; + ~~~~~~~~ +!!! error TS2448: Block-scoped variable 'Asserts2' used before its declaration. +!!! related TS2728 /other4.ts:10:48: 'Asserts2' is declared here. + ~~~~~~~~~~~~~~~ +!!! error TS2339: Property 'ImportInterface' does not exist on type 'Promise<{ default: typeof import("/node_modules/pkg/import"); }>'. + + export const a = (null as any as import("pkg", Asserts1).RequireInterface); + ~~~~~~~~~~~~~ +!!! error TS1340: Module 'pkg' does not refer to a type, but is used as a type here. Did you mean 'typeof import('pkg')'? + ~~~~~~~~ +!!! error TS1005: '{' expected. +!!! related TS1007 /other4.ts:9:48: The parser expected to find a '}' to match the '{' token here. + ~ +!!! error TS1005: ',' expected. + ~ +!!! error TS1134: Variable declaration expected. + ~ +!!! error TS1005: ',' expected. + export const b = (null as any as import("pkg", Asserts2).ImportInterface); + ~~~~~~~~~~~~~ +!!! error TS1340: Module 'pkg' does not refer to a type, but is used as a type here. Did you mean 'typeof import('pkg')'? + ~~~~~~~~ +!!! error TS1005: '{' expected. +!!! related TS1007 /other4.ts:10:48: The parser expected to find a '}' to match the '{' token here. + ~ +!!! error TS1005: ',' expected. + ~ +!!! error TS1134: Variable declaration expected. + ~ +!!! error TS1005: ',' expected. +==== /other5.ts (6 errors) ==== + export type LocalInterface = + & import("pkg", { assert: {} }).RequireInterface + ~~ +!!! error TS1456: Type import assertions should have exactly one key - `resolution-mode` - with value `import` or `require`. + & import("pkg", { assert: {} }).ImportInterface; + ~~ +!!! error TS1456: Type import assertions should have exactly one key - `resolution-mode` - with value `import` or `require`. + ~~~~~~~~~~~~~~~ +!!! error TS2694: Namespace '"/node_modules/pkg/require"' has no exported member 'ImportInterface'. + + export const a = (null as any as import("pkg", { assert: {} }).RequireInterface); + ~~ +!!! error TS1456: Type import assertions should have exactly one key - `resolution-mode` - with value `import` or `require`. + export const b = (null as any as import("pkg", { assert: {} }).ImportInterface); + ~~ +!!! error TS1456: Type import assertions should have exactly one key - `resolution-mode` - with value `import` or `require`. + ~~~~~~~~~~~~~~~ +!!! error TS2694: Namespace '"/node_modules/pkg/require"' has no exported member 'ImportInterface'. + \ No newline at end of file diff --git a/tests/baselines/reference/nodeModulesImportTypeModeDeclarationEmitErrors1(module=node12).js b/tests/baselines/reference/nodeModulesImportTypeModeDeclarationEmitErrors1(module=node12).js new file mode 100644 index 0000000000000..7fd0aff8e8f6e --- /dev/null +++ b/tests/baselines/reference/nodeModulesImportTypeModeDeclarationEmitErrors1(module=node12).js @@ -0,0 +1,147 @@ +//// [tests/cases/conformance/node/nodeModulesImportTypeModeDeclarationEmitErrors1.ts] //// + +//// [package.json] +{ + "name": "pkg", + "version": "0.0.1", + "exports": { + "import": "./import.js", + "require": "./require.js" + } +} +//// [import.d.ts] +export interface ImportInterface {} +//// [require.d.ts] +export interface RequireInterface {} +//// [index.ts] +export type LocalInterface = + & import("pkg", { assert: {"resolution-mode": "foobar"} }).RequireInterface + & import("pkg", { assert: {"resolution-mode": "import"} }).ImportInterface; + +export const a = (null as any as import("pkg", { assert: {"resolution-mode": "foobar"} }).RequireInterface); +export const b = (null as any as import("pkg", { assert: {"resolution-mode": "import"} }).ImportInterface); +//// [other.ts] +// missing assert: +export type LocalInterface = + & import("pkg", {"resolution-mode": "require"}).RequireInterface + & import("pkg", {"resolution-mode": "import"}).ImportInterface; + +export const a = (null as any as import("pkg", {"resolution-mode": "require"}).RequireInterface); +export const b = (null as any as import("pkg", {"resolution-mode": "import"}).ImportInterface); +//// [other2.ts] +// wrong assertion key +export type LocalInterface = + & import("pkg", { assert: {"bad": "require"} }).RequireInterface + & import("pkg", { assert: {"bad": "import"} }).ImportInterface; + +export const a = (null as any as import("pkg", { assert: {"bad": "require"} }).RequireInterface); +export const b = (null as any as import("pkg", { assert: {"bad": "import"} }).ImportInterface); +//// [other3.ts] +// Array instead of object-y thing +export type LocalInterface = + & import("pkg", [ {"resolution-mode": "require"} ]).RequireInterface + & import("pkg", [ {"resolution-mode": "import"} ]).ImportInterface; + +export const a = (null as any as import("pkg", [ {"resolution-mode": "require"} ]).RequireInterface); +export const b = (null as any as import("pkg", [ {"resolution-mode": "import"} ]).ImportInterface); +//// [other4.ts] +// Indirected assertion objecty-thing - not allowed +type Asserts1 = { assert: {"resolution-mode": "require"} }; +type Asserts2 = { assert: {"resolution-mode": "import"} }; + +export type LocalInterface = + & import("pkg", Asserts1).RequireInterface + & import("pkg", Asserts2).ImportInterface; + +export const a = (null as any as import("pkg", Asserts1).RequireInterface); +export const b = (null as any as import("pkg", Asserts2).ImportInterface); +//// [other5.ts] +export type LocalInterface = + & import("pkg", { assert: {} }).RequireInterface + & import("pkg", { assert: {} }).ImportInterface; + +export const a = (null as any as import("pkg", { assert: {} }).RequireInterface); +export const b = (null as any as import("pkg", { assert: {} }).ImportInterface); + + +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.b = exports.a = void 0; +exports.a = null; +exports.b = null; +//// [other.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.b = exports.a = void 0; +"resolution-mode"; +"require"; +RequireInterface + & import("pkg", { "resolution-mode": "import" }).ImportInterface; +exports.a = null; +"resolution-mode"; +"require"; +RequireInterface; +; +exports.b = null; +"resolution-mode"; +"import"; +ImportInterface; +; +//// [other2.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.b = exports.a = void 0; +exports.a = null; +exports.b = null; +//// [other3.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.b = exports.a = void 0; +RequireInterface + & import("pkg", [{ "resolution-mode": "import" }]).ImportInterface; +exports.a = null.RequireInterface; +exports.b = null.ImportInterface; +//// [other4.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ImportInterface = exports.Asserts2 = exports.b = exports.RequireInterface = exports.Asserts1 = exports.a = void 0; +exports.Asserts1; +exports.RequireInterface + & import("pkg", exports.Asserts2).ImportInterface; +exports.a = null; +exports.b = null; +//// [other5.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.b = exports.a = void 0; +exports.a = null; +exports.b = null; + + +//// [index.d.ts] +export declare type LocalInterface = import("pkg", { assert: { "resolution-mode": "foobar" } }).RequireInterface & import("pkg", { assert: { "resolution-mode": "import" } }).ImportInterface; +export declare const a: import("pkg").RequireInterface; +export declare const b: import("pkg", { assert: { "resolution-mode": "import" } }).ImportInterface; +//// [other.d.ts] +export declare type LocalInterface = import("pkg", { assert: {} }); +export declare const a: any; +export declare const b: any; +//// [other2.d.ts] +export declare type LocalInterface = import("pkg", { assert: { "bad": "require" } }).RequireInterface & import("pkg", { assert: { "bad": "import" } }).ImportInterface; +export declare const a: import("pkg").RequireInterface; +export declare const b: any; +//// [other3.d.ts] +export declare type LocalInterface = import("pkg", { assert: {} })[{ + "resolution-mode": "require"; +}]; +export declare const a: any; +export declare const b: any; +//// [other4.d.ts] +export declare type LocalInterface = import("pkg", { assert: {} }); +export declare const a: any, Asserts1: any, RequireInterface: any; +export declare const b: any, Asserts2: any, ImportInterface: any; +//// [other5.d.ts] +export declare type LocalInterface = import("pkg", { assert: {} }).RequireInterface & import("pkg", { assert: {} }).ImportInterface; +export declare const a: import("pkg").RequireInterface; +export declare const b: any; diff --git a/tests/baselines/reference/nodeModulesImportTypeModeDeclarationEmitErrors1(module=node12).symbols b/tests/baselines/reference/nodeModulesImportTypeModeDeclarationEmitErrors1(module=node12).symbols new file mode 100644 index 0000000000000..71b67ec81d607 --- /dev/null +++ b/tests/baselines/reference/nodeModulesImportTypeModeDeclarationEmitErrors1(module=node12).symbols @@ -0,0 +1,128 @@ +=== /node_modules/pkg/import.d.ts === +export interface ImportInterface {} +>ImportInterface : Symbol(ImportInterface, Decl(import.d.ts, 0, 0)) + +=== /node_modules/pkg/require.d.ts === +export interface RequireInterface {} +>RequireInterface : Symbol(RequireInterface, Decl(require.d.ts, 0, 0)) + +=== /index.ts === +export type LocalInterface = +>LocalInterface : Symbol(LocalInterface, Decl(index.ts, 0, 0)) + + & import("pkg", { assert: {"resolution-mode": "foobar"} }).RequireInterface +>RequireInterface : Symbol(RequireInterface, Decl(require.d.ts, 0, 0)) + + & import("pkg", { assert: {"resolution-mode": "import"} }).ImportInterface; +>ImportInterface : Symbol(ImportInterface, Decl(import.d.ts, 0, 0)) + +export const a = (null as any as import("pkg", { assert: {"resolution-mode": "foobar"} }).RequireInterface); +>a : Symbol(a, Decl(index.ts, 4, 12)) +>RequireInterface : Symbol(RequireInterface, Decl(require.d.ts, 0, 0)) + +export const b = (null as any as import("pkg", { assert: {"resolution-mode": "import"} }).ImportInterface); +>b : Symbol(b, Decl(index.ts, 5, 12)) +>ImportInterface : Symbol(ImportInterface, Decl(import.d.ts, 0, 0)) + +=== /other.ts === +// missing assert: +export type LocalInterface = +>LocalInterface : Symbol(LocalInterface, Decl(other.ts, 0, 0)) + + & import("pkg", {"resolution-mode": "require"}).RequireInterface + & import("pkg", {"resolution-mode": "import"}).ImportInterface; +>"pkg" : Symbol("/node_modules/pkg/import", Decl(import.d.ts, 0, 0)) +>"resolution-mode" : Symbol("resolution-mode", Decl(other.ts, 3, 21)) + +export const a = (null as any as import("pkg", {"resolution-mode": "require"}).RequireInterface); +>a : Symbol(a, Decl(other.ts, 5, 12)) + +export const b = (null as any as import("pkg", {"resolution-mode": "import"}).ImportInterface); +>b : Symbol(b, Decl(other.ts, 6, 12)) + +=== /other2.ts === +// wrong assertion key +export type LocalInterface = +>LocalInterface : Symbol(LocalInterface, Decl(other2.ts, 0, 0)) + + & import("pkg", { assert: {"bad": "require"} }).RequireInterface +>RequireInterface : Symbol(RequireInterface, Decl(require.d.ts, 0, 0)) + + & import("pkg", { assert: {"bad": "import"} }).ImportInterface; + +export const a = (null as any as import("pkg", { assert: {"bad": "require"} }).RequireInterface); +>a : Symbol(a, Decl(other2.ts, 5, 12)) +>RequireInterface : Symbol(RequireInterface, Decl(require.d.ts, 0, 0)) + +export const b = (null as any as import("pkg", { assert: {"bad": "import"} }).ImportInterface); +>b : Symbol(b, Decl(other2.ts, 6, 12)) + +=== /other3.ts === +// Array instead of object-y thing +export type LocalInterface = +>LocalInterface : Symbol(LocalInterface, Decl(other3.ts, 0, 0)) + + & import("pkg", [ {"resolution-mode": "require"} ]).RequireInterface +>"resolution-mode" : Symbol("resolution-mode", Decl(other3.ts, 2, 23)) + + & import("pkg", [ {"resolution-mode": "import"} ]).ImportInterface; +>"pkg" : Symbol("/node_modules/pkg/import", Decl(import.d.ts, 0, 0)) +>"resolution-mode" : Symbol("resolution-mode", Decl(other3.ts, 3, 23)) + +export const a = (null as any as import("pkg", [ {"resolution-mode": "require"} ]).RequireInterface); +>a : Symbol(a, Decl(other3.ts, 5, 12)) +>"resolution-mode" : Symbol("resolution-mode", Decl(other3.ts, 5, 50)) + +export const b = (null as any as import("pkg", [ {"resolution-mode": "import"} ]).ImportInterface); +>b : Symbol(b, Decl(other3.ts, 6, 12)) +>"resolution-mode" : Symbol("resolution-mode", Decl(other3.ts, 6, 50)) + +=== /other4.ts === +// Indirected assertion objecty-thing - not allowed +type Asserts1 = { assert: {"resolution-mode": "require"} }; +>Asserts1 : Symbol(Asserts1, Decl(other4.ts, 0, 0), Decl(other4.ts, 8, 46)) +>assert : Symbol(assert, Decl(other4.ts, 1, 17)) +>"resolution-mode" : Symbol("resolution-mode", Decl(other4.ts, 1, 27)) + +type Asserts2 = { assert: {"resolution-mode": "import"} }; +>Asserts2 : Symbol(Asserts2, Decl(other4.ts, 1, 59), Decl(other4.ts, 9, 46)) +>assert : Symbol(assert, Decl(other4.ts, 2, 17)) +>"resolution-mode" : Symbol("resolution-mode", Decl(other4.ts, 2, 27)) + +export type LocalInterface = +>LocalInterface : Symbol(LocalInterface, Decl(other4.ts, 2, 58)) + + & import("pkg", Asserts1).RequireInterface +>Asserts1 : Symbol(Asserts1, Decl(other4.ts, 8, 46)) +>RequireInterface : Symbol(RequireInterface, Decl(other4.ts, 8, 57)) + + & import("pkg", Asserts2).ImportInterface; +>"pkg" : Symbol("/node_modules/pkg/import", Decl(import.d.ts, 0, 0)) +>Asserts2 : Symbol(Asserts2, Decl(other4.ts, 9, 46)) + +export const a = (null as any as import("pkg", Asserts1).RequireInterface); +>a : Symbol(a, Decl(other4.ts, 8, 12)) +>Asserts1 : Symbol(Asserts1, Decl(other4.ts, 8, 46)) +>RequireInterface : Symbol(RequireInterface, Decl(other4.ts, 8, 57)) + +export const b = (null as any as import("pkg", Asserts2).ImportInterface); +>b : Symbol(b, Decl(other4.ts, 9, 12)) +>Asserts2 : Symbol(Asserts2, Decl(other4.ts, 9, 46)) +>ImportInterface : Symbol(ImportInterface, Decl(other4.ts, 9, 57)) + +=== /other5.ts === +export type LocalInterface = +>LocalInterface : Symbol(LocalInterface, Decl(other5.ts, 0, 0)) + + & import("pkg", { assert: {} }).RequireInterface +>RequireInterface : Symbol(RequireInterface, Decl(require.d.ts, 0, 0)) + + & import("pkg", { assert: {} }).ImportInterface; + +export const a = (null as any as import("pkg", { assert: {} }).RequireInterface); +>a : Symbol(a, Decl(other5.ts, 4, 12)) +>RequireInterface : Symbol(RequireInterface, Decl(require.d.ts, 0, 0)) + +export const b = (null as any as import("pkg", { assert: {} }).ImportInterface); +>b : Symbol(b, Decl(other5.ts, 5, 12)) + diff --git a/tests/baselines/reference/nodeModulesImportTypeModeDeclarationEmitErrors1(module=node12).types b/tests/baselines/reference/nodeModulesImportTypeModeDeclarationEmitErrors1(module=node12).types new file mode 100644 index 0000000000000..096b9fe9ee3c5 --- /dev/null +++ b/tests/baselines/reference/nodeModulesImportTypeModeDeclarationEmitErrors1(module=node12).types @@ -0,0 +1,193 @@ +=== /node_modules/pkg/import.d.ts === +export interface ImportInterface {} +No type information for this code.=== /node_modules/pkg/require.d.ts === +export interface RequireInterface {} +No type information for this code.=== /index.ts === +export type LocalInterface = +>LocalInterface : LocalInterface + + & import("pkg", { assert: {"resolution-mode": "foobar"} }).RequireInterface + & import("pkg", { assert: {"resolution-mode": "import"} }).ImportInterface; + +export const a = (null as any as import("pkg", { assert: {"resolution-mode": "foobar"} }).RequireInterface); +>a : import("/node_modules/pkg/require").RequireInterface +>(null as any as import("pkg", { assert: {"resolution-mode": "foobar"} }).RequireInterface) : import("/node_modules/pkg/require").RequireInterface +>null as any as import("pkg", { assert: {"resolution-mode": "foobar"} }).RequireInterface : import("/node_modules/pkg/require").RequireInterface +>null as any : any +>null : null + +export const b = (null as any as import("pkg", { assert: {"resolution-mode": "import"} }).ImportInterface); +>b : import("/node_modules/pkg/import").ImportInterface +>(null as any as import("pkg", { assert: {"resolution-mode": "import"} }).ImportInterface) : import("/node_modules/pkg/import").ImportInterface +>null as any as import("pkg", { assert: {"resolution-mode": "import"} }).ImportInterface : import("/node_modules/pkg/import").ImportInterface +>null as any : any +>null : null + +=== /other.ts === +// missing assert: +export type LocalInterface = +>LocalInterface : any + + & import("pkg", {"resolution-mode": "require"}).RequireInterface +>"resolution-mode" : "resolution-mode" +>"require" : "require" +>RequireInterface & import("pkg", {"resolution-mode": "import"}).ImportInterface : number +>RequireInterface : any + + & import("pkg", {"resolution-mode": "import"}).ImportInterface; +>import("pkg", {"resolution-mode": "import"}).ImportInterface : any +>import("pkg", {"resolution-mode": "import"}) : Promise<{ default: typeof import("/node_modules/pkg/import"); }> +>"pkg" : "pkg" +>{"resolution-mode": "import"} : { "resolution-mode": string; } +>"resolution-mode" : string +>"import" : "import" +>ImportInterface : any + +export const a = (null as any as import("pkg", {"resolution-mode": "require"}).RequireInterface); +>a : any +>(null as any as import("pkg", { : any +>null as any as import("pkg", { : any +>null as any : any +>null : null +>"resolution-mode" : "resolution-mode" +>"require" : "require" +>RequireInterface : any + +export const b = (null as any as import("pkg", {"resolution-mode": "import"}).ImportInterface); +>b : any +>(null as any as import("pkg", { : any +>null as any as import("pkg", { : any +>null as any : any +>null : null +>"resolution-mode" : "resolution-mode" +>"import" : "import" +>ImportInterface : any + +=== /other2.ts === +// wrong assertion key +export type LocalInterface = +>LocalInterface : any + + & import("pkg", { assert: {"bad": "require"} }).RequireInterface + & import("pkg", { assert: {"bad": "import"} }).ImportInterface; + +export const a = (null as any as import("pkg", { assert: {"bad": "require"} }).RequireInterface); +>a : import("/node_modules/pkg/require").RequireInterface +>(null as any as import("pkg", { assert: {"bad": "require"} }).RequireInterface) : import("/node_modules/pkg/require").RequireInterface +>null as any as import("pkg", { assert: {"bad": "require"} }).RequireInterface : import("/node_modules/pkg/require").RequireInterface +>null as any : any +>null : null + +export const b = (null as any as import("pkg", { assert: {"bad": "import"} }).ImportInterface); +>b : any +>(null as any as import("pkg", { assert: {"bad": "import"} }).ImportInterface) : any +>null as any as import("pkg", { assert: {"bad": "import"} }).ImportInterface : any +>null as any : any +>null : null + +=== /other3.ts === +// Array instead of object-y thing +export type LocalInterface = +>LocalInterface : any + + & import("pkg", [ {"resolution-mode": "require"} ]).RequireInterface +>"resolution-mode" : "require" +>RequireInterface & import("pkg", [ {"resolution-mode": "import"} ]).ImportInterface : number +>RequireInterface : any + + & import("pkg", [ {"resolution-mode": "import"} ]).ImportInterface; +>import("pkg", [ {"resolution-mode": "import"} ]).ImportInterface : any +>import("pkg", [ {"resolution-mode": "import"} ]) : Promise<{ default: typeof import("/node_modules/pkg/import"); }> +>"pkg" : "pkg" +>[ {"resolution-mode": "import"} ] : { "resolution-mode": string; }[] +>{"resolution-mode": "import"} : { "resolution-mode": string; } +>"resolution-mode" : string +>"import" : "import" +>ImportInterface : any + +export const a = (null as any as import("pkg", [ {"resolution-mode": "require"} ]).RequireInterface); +>a : any +>(null as any as import("pkg", [ {"resolution-mode": "require"} ]).RequireInterface : any +>(null as any as import("pkg", [ {"resolution-mode": "require"} ]) : any +>null as any as import("pkg", [ {"resolution-mode": "require"} ] : any +>null as any : any +>null : null +>"resolution-mode" : "require" +>RequireInterface : any + +export const b = (null as any as import("pkg", [ {"resolution-mode": "import"} ]).ImportInterface); +>b : any +>(null as any as import("pkg", [ {"resolution-mode": "import"} ]).ImportInterface : any +>(null as any as import("pkg", [ {"resolution-mode": "import"} ]) : any +>null as any as import("pkg", [ {"resolution-mode": "import"} ] : any +>null as any : any +>null : null +>"resolution-mode" : "import" +>ImportInterface : any + +=== /other4.ts === +// Indirected assertion objecty-thing - not allowed +type Asserts1 = { assert: {"resolution-mode": "require"} }; +>Asserts1 : Asserts1 +>assert : { "resolution-mode": "require"; } +>"resolution-mode" : "require" + +type Asserts2 = { assert: {"resolution-mode": "import"} }; +>Asserts2 : Asserts2 +>assert : { "resolution-mode": "import"; } +>"resolution-mode" : "import" + +export type LocalInterface = +>LocalInterface : any + + & import("pkg", Asserts1).RequireInterface +>Asserts1 : any +>RequireInterface & import("pkg", Asserts2).ImportInterface : number +>RequireInterface : any + + & import("pkg", Asserts2).ImportInterface; +>import("pkg", Asserts2).ImportInterface : any +>import("pkg", Asserts2) : Promise<{ default: typeof import("/node_modules/pkg/import"); }> +>"pkg" : "pkg" +>Asserts2 : any +>ImportInterface : any + +export const a = (null as any as import("pkg", Asserts1).RequireInterface); +>a : any +>(null as any as import("pkg", : any +>null as any as import("pkg", : any +>null as any : any +>null : null +>Asserts1 : any +>RequireInterface : any + +export const b = (null as any as import("pkg", Asserts2).ImportInterface); +>b : any +>(null as any as import("pkg", : any +>null as any as import("pkg", : any +>null as any : any +>null : null +>Asserts2 : any +>ImportInterface : any + +=== /other5.ts === +export type LocalInterface = +>LocalInterface : any + + & import("pkg", { assert: {} }).RequireInterface + & import("pkg", { assert: {} }).ImportInterface; + +export const a = (null as any as import("pkg", { assert: {} }).RequireInterface); +>a : import("/node_modules/pkg/require").RequireInterface +>(null as any as import("pkg", { assert: {} }).RequireInterface) : import("/node_modules/pkg/require").RequireInterface +>null as any as import("pkg", { assert: {} }).RequireInterface : import("/node_modules/pkg/require").RequireInterface +>null as any : any +>null : null + +export const b = (null as any as import("pkg", { assert: {} }).ImportInterface); +>b : any +>(null as any as import("pkg", { assert: {} }).ImportInterface) : any +>null as any as import("pkg", { assert: {} }).ImportInterface : any +>null as any : any +>null : null + diff --git a/tests/baselines/reference/nodeModulesImportTypeModeDeclarationEmitErrors1(module=nodenext).errors.txt b/tests/baselines/reference/nodeModulesImportTypeModeDeclarationEmitErrors1(module=nodenext).errors.txt new file mode 100644 index 0000000000000..b8b88af5ded82 --- /dev/null +++ b/tests/baselines/reference/nodeModulesImportTypeModeDeclarationEmitErrors1(module=nodenext).errors.txt @@ -0,0 +1,304 @@ +/index.ts(2,51): error TS1453: `resolution-mode` should be either `require` or `import`. +/index.ts(5,78): error TS1453: `resolution-mode` should be either `require` or `import`. +/other.ts(3,7): error TS1340: Module 'pkg' does not refer to a type, but is used as a type here. Did you mean 'typeof import('pkg')'? +/other.ts(3,22): error TS1005: 'assert' expected. +/other.ts(3,39): error TS1005: ';' expected. +/other.ts(3,50): error TS1128: Declaration or statement expected. +/other.ts(3,51): error TS1128: Declaration or statement expected. +/other.ts(3,52): error TS1128: Declaration or statement expected. +/other.ts(3,53): error TS2304: Cannot find name 'RequireInterface'. +/other.ts(4,22): error TS2322: Type '{ "resolution-mode": string; }' is not assignable to type 'ImportCallOptions'. + Object literal may only specify known properties, and '"resolution-mode"' does not exist in type 'ImportCallOptions'. +/other.ts(4,52): error TS2339: Property 'ImportInterface' does not exist on type 'Promise<{ default: typeof import("/node_modules/pkg/import"); }>'. +/other.ts(6,34): error TS1340: Module 'pkg' does not refer to a type, but is used as a type here. Did you mean 'typeof import('pkg')'? +/other.ts(6,49): error TS1005: 'assert' expected. +/other.ts(6,66): error TS1005: ';' expected. +/other.ts(6,77): error TS1128: Declaration or statement expected. +/other.ts(6,78): error TS1128: Declaration or statement expected. +/other.ts(6,79): error TS1128: Declaration or statement expected. +/other.ts(6,80): error TS1434: Unexpected keyword or identifier. +/other.ts(6,80): error TS2304: Cannot find name 'RequireInterface'. +/other.ts(6,96): error TS1128: Declaration or statement expected. +/other.ts(7,34): error TS1340: Module 'pkg' does not refer to a type, but is used as a type here. Did you mean 'typeof import('pkg')'? +/other.ts(7,49): error TS1005: 'assert' expected. +/other.ts(7,66): error TS1005: ';' expected. +/other.ts(7,76): error TS1128: Declaration or statement expected. +/other.ts(7,77): error TS1128: Declaration or statement expected. +/other.ts(7,78): error TS1128: Declaration or statement expected. +/other.ts(7,79): error TS1434: Unexpected keyword or identifier. +/other.ts(7,79): error TS2304: Cannot find name 'ImportInterface'. +/other.ts(7,94): error TS1128: Declaration or statement expected. +/other2.ts(3,32): error TS1455: `resolution-mode` is the only valid key for type import assertions. +/other2.ts(4,32): error TS1455: `resolution-mode` is the only valid key for type import assertions. +/other2.ts(4,52): error TS2694: Namespace '"/node_modules/pkg/require"' has no exported member 'ImportInterface'. +/other2.ts(6,59): error TS1455: `resolution-mode` is the only valid key for type import assertions. +/other2.ts(7,59): error TS1455: `resolution-mode` is the only valid key for type import assertions. +/other2.ts(7,79): error TS2694: Namespace '"/node_modules/pkg/require"' has no exported member 'ImportInterface'. +/other3.ts(3,7): error TS1340: Module 'pkg' does not refer to a type, but is used as a type here. Did you mean 'typeof import('pkg')'? +/other3.ts(3,21): error TS1005: '{' expected. +/other3.ts(3,23): error TS2538: Type '{ "resolution-mode": "require"; }' cannot be used as an index type. +/other3.ts(3,55): error TS1005: ';' expected. +/other3.ts(3,56): error TS1128: Declaration or statement expected. +/other3.ts(3,57): error TS2304: Cannot find name 'RequireInterface'. +/other3.ts(4,21): error TS2559: Type '{ "resolution-mode": string; }[]' has no properties in common with type 'ImportCallOptions'. +/other3.ts(4,56): error TS2339: Property 'ImportInterface' does not exist on type 'Promise<{ default: typeof import("/node_modules/pkg/import"); }>'. +/other3.ts(6,34): error TS1340: Module 'pkg' does not refer to a type, but is used as a type here. Did you mean 'typeof import('pkg')'? +/other3.ts(6,48): error TS1005: '{' expected. +/other3.ts(6,50): error TS2538: Type '{ "resolution-mode": "require"; }' cannot be used as an index type. +/other3.ts(6,100): error TS1005: ',' expected. +/other3.ts(7,34): error TS1340: Module 'pkg' does not refer to a type, but is used as a type here. Did you mean 'typeof import('pkg')'? +/other3.ts(7,48): error TS1005: '{' expected. +/other3.ts(7,50): error TS2538: Type '{ "resolution-mode": "import"; }' cannot be used as an index type. +/other3.ts(7,98): error TS1005: ',' expected. +/other4.ts(6,7): error TS1340: Module 'pkg' does not refer to a type, but is used as a type here. Did you mean 'typeof import('pkg')'? +/other4.ts(6,21): error TS1005: '{' expected. +/other4.ts(6,21): error TS2448: Block-scoped variable 'Asserts1' used before its declaration. +/other4.ts(6,29): error TS1128: Declaration or statement expected. +/other4.ts(6,30): error TS1128: Declaration or statement expected. +/other4.ts(6,31): error TS2448: Block-scoped variable 'RequireInterface' used before its declaration. +/other4.ts(7,21): error TS2448: Block-scoped variable 'Asserts2' used before its declaration. +/other4.ts(7,31): error TS2339: Property 'ImportInterface' does not exist on type 'Promise<{ default: typeof import("/node_modules/pkg/import"); }>'. +/other4.ts(9,34): error TS1340: Module 'pkg' does not refer to a type, but is used as a type here. Did you mean 'typeof import('pkg')'? +/other4.ts(9,48): error TS1005: '{' expected. +/other4.ts(9,56): error TS1005: ',' expected. +/other4.ts(9,57): error TS1134: Variable declaration expected. +/other4.ts(9,74): error TS1005: ',' expected. +/other4.ts(10,34): error TS1340: Module 'pkg' does not refer to a type, but is used as a type here. Did you mean 'typeof import('pkg')'? +/other4.ts(10,48): error TS1005: '{' expected. +/other4.ts(10,56): error TS1005: ',' expected. +/other4.ts(10,57): error TS1134: Variable declaration expected. +/other4.ts(10,73): error TS1005: ',' expected. +/other5.ts(2,31): error TS1456: Type import assertions should have exactly one key - `resolution-mode` - with value `import` or `require`. +/other5.ts(3,31): error TS1456: Type import assertions should have exactly one key - `resolution-mode` - with value `import` or `require`. +/other5.ts(3,37): error TS2694: Namespace '"/node_modules/pkg/require"' has no exported member 'ImportInterface'. +/other5.ts(5,58): error TS1456: Type import assertions should have exactly one key - `resolution-mode` - with value `import` or `require`. +/other5.ts(6,58): error TS1456: Type import assertions should have exactly one key - `resolution-mode` - with value `import` or `require`. +/other5.ts(6,64): error TS2694: Namespace '"/node_modules/pkg/require"' has no exported member 'ImportInterface'. + + +==== /node_modules/pkg/package.json (0 errors) ==== + { + "name": "pkg", + "version": "0.0.1", + "exports": { + "import": "./import.js", + "require": "./require.js" + } + } +==== /node_modules/pkg/import.d.ts (0 errors) ==== + export interface ImportInterface {} +==== /node_modules/pkg/require.d.ts (0 errors) ==== + export interface RequireInterface {} +==== /index.ts (2 errors) ==== + export type LocalInterface = + & import("pkg", { assert: {"resolution-mode": "foobar"} }).RequireInterface + ~~~~~~~~ +!!! error TS1453: `resolution-mode` should be either `require` or `import`. + & import("pkg", { assert: {"resolution-mode": "import"} }).ImportInterface; + + export const a = (null as any as import("pkg", { assert: {"resolution-mode": "foobar"} }).RequireInterface); + ~~~~~~~~ +!!! error TS1453: `resolution-mode` should be either `require` or `import`. + export const b = (null as any as import("pkg", { assert: {"resolution-mode": "import"} }).ImportInterface); +==== /other.ts (27 errors) ==== + // missing assert: + export type LocalInterface = + & import("pkg", {"resolution-mode": "require"}).RequireInterface + ~~~~~~~~~~~~~~~ +!!! error TS1340: Module 'pkg' does not refer to a type, but is used as a type here. Did you mean 'typeof import('pkg')'? + ~~~~~~~~~~~~~~~~~ +!!! error TS1005: 'assert' expected. +!!! related TS1007 /other.ts:3:21: The parser expected to find a '}' to match the '{' token here. + ~ +!!! error TS1005: ';' expected. + ~ +!!! error TS1128: Declaration or statement expected. + ~ +!!! error TS1128: Declaration or statement expected. + ~ +!!! error TS1128: Declaration or statement expected. + ~~~~~~~~~~~~~~~~ +!!! error TS2304: Cannot find name 'RequireInterface'. + & import("pkg", {"resolution-mode": "import"}).ImportInterface; + ~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2322: Type '{ "resolution-mode": string; }' is not assignable to type 'ImportCallOptions'. +!!! error TS2322: Object literal may only specify known properties, and '"resolution-mode"' does not exist in type 'ImportCallOptions'. + ~~~~~~~~~~~~~~~ +!!! error TS2339: Property 'ImportInterface' does not exist on type 'Promise<{ default: typeof import("/node_modules/pkg/import"); }>'. + + export const a = (null as any as import("pkg", {"resolution-mode": "require"}).RequireInterface); + ~~~~~~~~~~~~~~~ +!!! error TS1340: Module 'pkg' does not refer to a type, but is used as a type here. Did you mean 'typeof import('pkg')'? + ~~~~~~~~~~~~~~~~~ +!!! error TS1005: 'assert' expected. +!!! related TS1007 /other.ts:6:48: The parser expected to find a '}' to match the '{' token here. + ~ +!!! error TS1005: ';' expected. + ~ +!!! error TS1128: Declaration or statement expected. + ~ +!!! error TS1128: Declaration or statement expected. + ~ +!!! error TS1128: Declaration or statement expected. + ~~~~~~~~~~~~~~~~ +!!! error TS1434: Unexpected keyword or identifier. + ~~~~~~~~~~~~~~~~ +!!! error TS2304: Cannot find name 'RequireInterface'. + ~ +!!! error TS1128: Declaration or statement expected. + export const b = (null as any as import("pkg", {"resolution-mode": "import"}).ImportInterface); + ~~~~~~~~~~~~~~~ +!!! error TS1340: Module 'pkg' does not refer to a type, but is used as a type here. Did you mean 'typeof import('pkg')'? + ~~~~~~~~~~~~~~~~~ +!!! error TS1005: 'assert' expected. +!!! related TS1007 /other.ts:7:48: The parser expected to find a '}' to match the '{' token here. + ~ +!!! error TS1005: ';' expected. + ~ +!!! error TS1128: Declaration or statement expected. + ~ +!!! error TS1128: Declaration or statement expected. + ~ +!!! error TS1128: Declaration or statement expected. + ~~~~~~~~~~~~~~~ +!!! error TS1434: Unexpected keyword or identifier. + ~~~~~~~~~~~~~~~ +!!! error TS2304: Cannot find name 'ImportInterface'. + ~ +!!! error TS1128: Declaration or statement expected. +==== /other2.ts (6 errors) ==== + // wrong assertion key + export type LocalInterface = + & import("pkg", { assert: {"bad": "require"} }).RequireInterface + ~~~~~ +!!! error TS1455: `resolution-mode` is the only valid key for type import assertions. + & import("pkg", { assert: {"bad": "import"} }).ImportInterface; + ~~~~~ +!!! error TS1455: `resolution-mode` is the only valid key for type import assertions. + ~~~~~~~~~~~~~~~ +!!! error TS2694: Namespace '"/node_modules/pkg/require"' has no exported member 'ImportInterface'. + + export const a = (null as any as import("pkg", { assert: {"bad": "require"} }).RequireInterface); + ~~~~~ +!!! error TS1455: `resolution-mode` is the only valid key for type import assertions. + export const b = (null as any as import("pkg", { assert: {"bad": "import"} }).ImportInterface); + ~~~~~ +!!! error TS1455: `resolution-mode` is the only valid key for type import assertions. + ~~~~~~~~~~~~~~~ +!!! error TS2694: Namespace '"/node_modules/pkg/require"' has no exported member 'ImportInterface'. +==== /other3.ts (16 errors) ==== + // Array instead of object-y thing + export type LocalInterface = + & import("pkg", [ {"resolution-mode": "require"} ]).RequireInterface + ~~~~~~~~~~~~~ +!!! error TS1340: Module 'pkg' does not refer to a type, but is used as a type here. Did you mean 'typeof import('pkg')'? + ~ +!!! error TS1005: '{' expected. +!!! related TS1007 /other3.ts:3:21: The parser expected to find a '}' to match the '{' token here. + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2538: Type '{ "resolution-mode": "require"; }' cannot be used as an index type. + ~ +!!! error TS1005: ';' expected. + ~ +!!! error TS1128: Declaration or statement expected. + ~~~~~~~~~~~~~~~~ +!!! error TS2304: Cannot find name 'RequireInterface'. + & import("pkg", [ {"resolution-mode": "import"} ]).ImportInterface; + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2559: Type '{ "resolution-mode": string; }[]' has no properties in common with type 'ImportCallOptions'. + ~~~~~~~~~~~~~~~ +!!! error TS2339: Property 'ImportInterface' does not exist on type 'Promise<{ default: typeof import("/node_modules/pkg/import"); }>'. + + export const a = (null as any as import("pkg", [ {"resolution-mode": "require"} ]).RequireInterface); + ~~~~~~~~~~~~~ +!!! error TS1340: Module 'pkg' does not refer to a type, but is used as a type here. Did you mean 'typeof import('pkg')'? + ~ +!!! error TS1005: '{' expected. +!!! related TS1007 /other3.ts:6:48: The parser expected to find a '}' to match the '{' token here. + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2538: Type '{ "resolution-mode": "require"; }' cannot be used as an index type. + ~ +!!! error TS1005: ',' expected. + export const b = (null as any as import("pkg", [ {"resolution-mode": "import"} ]).ImportInterface); + ~~~~~~~~~~~~~ +!!! error TS1340: Module 'pkg' does not refer to a type, but is used as a type here. Did you mean 'typeof import('pkg')'? + ~ +!!! error TS1005: '{' expected. +!!! related TS1007 /other3.ts:7:48: The parser expected to find a '}' to match the '{' token here. + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2538: Type '{ "resolution-mode": "import"; }' cannot be used as an index type. + ~ +!!! error TS1005: ',' expected. +==== /other4.ts (18 errors) ==== + // Indirected assertion objecty-thing - not allowed + type Asserts1 = { assert: {"resolution-mode": "require"} }; + type Asserts2 = { assert: {"resolution-mode": "import"} }; + + export type LocalInterface = + & import("pkg", Asserts1).RequireInterface + ~~~~~~~~~~~~~ +!!! error TS1340: Module 'pkg' does not refer to a type, but is used as a type here. Did you mean 'typeof import('pkg')'? + ~~~~~~~~ +!!! error TS1005: '{' expected. +!!! related TS1007 /other4.ts:6:21: The parser expected to find a '}' to match the '{' token here. + ~~~~~~~~ +!!! error TS2448: Block-scoped variable 'Asserts1' used before its declaration. +!!! related TS2728 /other4.ts:9:48: 'Asserts1' is declared here. + ~ +!!! error TS1128: Declaration or statement expected. + ~ +!!! error TS1128: Declaration or statement expected. + ~~~~~~~~~~~~~~~~ +!!! error TS2448: Block-scoped variable 'RequireInterface' used before its declaration. +!!! related TS2728 /other4.ts:9:58: 'RequireInterface' is declared here. + & import("pkg", Asserts2).ImportInterface; + ~~~~~~~~ +!!! error TS2448: Block-scoped variable 'Asserts2' used before its declaration. +!!! related TS2728 /other4.ts:10:48: 'Asserts2' is declared here. + ~~~~~~~~~~~~~~~ +!!! error TS2339: Property 'ImportInterface' does not exist on type 'Promise<{ default: typeof import("/node_modules/pkg/import"); }>'. + + export const a = (null as any as import("pkg", Asserts1).RequireInterface); + ~~~~~~~~~~~~~ +!!! error TS1340: Module 'pkg' does not refer to a type, but is used as a type here. Did you mean 'typeof import('pkg')'? + ~~~~~~~~ +!!! error TS1005: '{' expected. +!!! related TS1007 /other4.ts:9:48: The parser expected to find a '}' to match the '{' token here. + ~ +!!! error TS1005: ',' expected. + ~ +!!! error TS1134: Variable declaration expected. + ~ +!!! error TS1005: ',' expected. + export const b = (null as any as import("pkg", Asserts2).ImportInterface); + ~~~~~~~~~~~~~ +!!! error TS1340: Module 'pkg' does not refer to a type, but is used as a type here. Did you mean 'typeof import('pkg')'? + ~~~~~~~~ +!!! error TS1005: '{' expected. +!!! related TS1007 /other4.ts:10:48: The parser expected to find a '}' to match the '{' token here. + ~ +!!! error TS1005: ',' expected. + ~ +!!! error TS1134: Variable declaration expected. + ~ +!!! error TS1005: ',' expected. +==== /other5.ts (6 errors) ==== + export type LocalInterface = + & import("pkg", { assert: {} }).RequireInterface + ~~ +!!! error TS1456: Type import assertions should have exactly one key - `resolution-mode` - with value `import` or `require`. + & import("pkg", { assert: {} }).ImportInterface; + ~~ +!!! error TS1456: Type import assertions should have exactly one key - `resolution-mode` - with value `import` or `require`. + ~~~~~~~~~~~~~~~ +!!! error TS2694: Namespace '"/node_modules/pkg/require"' has no exported member 'ImportInterface'. + + export const a = (null as any as import("pkg", { assert: {} }).RequireInterface); + ~~ +!!! error TS1456: Type import assertions should have exactly one key - `resolution-mode` - with value `import` or `require`. + export const b = (null as any as import("pkg", { assert: {} }).ImportInterface); + ~~ +!!! error TS1456: Type import assertions should have exactly one key - `resolution-mode` - with value `import` or `require`. + ~~~~~~~~~~~~~~~ +!!! error TS2694: Namespace '"/node_modules/pkg/require"' has no exported member 'ImportInterface'. + \ No newline at end of file diff --git a/tests/baselines/reference/nodeModulesImportTypeModeDeclarationEmitErrors1(module=nodenext).js b/tests/baselines/reference/nodeModulesImportTypeModeDeclarationEmitErrors1(module=nodenext).js new file mode 100644 index 0000000000000..7fd0aff8e8f6e --- /dev/null +++ b/tests/baselines/reference/nodeModulesImportTypeModeDeclarationEmitErrors1(module=nodenext).js @@ -0,0 +1,147 @@ +//// [tests/cases/conformance/node/nodeModulesImportTypeModeDeclarationEmitErrors1.ts] //// + +//// [package.json] +{ + "name": "pkg", + "version": "0.0.1", + "exports": { + "import": "./import.js", + "require": "./require.js" + } +} +//// [import.d.ts] +export interface ImportInterface {} +//// [require.d.ts] +export interface RequireInterface {} +//// [index.ts] +export type LocalInterface = + & import("pkg", { assert: {"resolution-mode": "foobar"} }).RequireInterface + & import("pkg", { assert: {"resolution-mode": "import"} }).ImportInterface; + +export const a = (null as any as import("pkg", { assert: {"resolution-mode": "foobar"} }).RequireInterface); +export const b = (null as any as import("pkg", { assert: {"resolution-mode": "import"} }).ImportInterface); +//// [other.ts] +// missing assert: +export type LocalInterface = + & import("pkg", {"resolution-mode": "require"}).RequireInterface + & import("pkg", {"resolution-mode": "import"}).ImportInterface; + +export const a = (null as any as import("pkg", {"resolution-mode": "require"}).RequireInterface); +export const b = (null as any as import("pkg", {"resolution-mode": "import"}).ImportInterface); +//// [other2.ts] +// wrong assertion key +export type LocalInterface = + & import("pkg", { assert: {"bad": "require"} }).RequireInterface + & import("pkg", { assert: {"bad": "import"} }).ImportInterface; + +export const a = (null as any as import("pkg", { assert: {"bad": "require"} }).RequireInterface); +export const b = (null as any as import("pkg", { assert: {"bad": "import"} }).ImportInterface); +//// [other3.ts] +// Array instead of object-y thing +export type LocalInterface = + & import("pkg", [ {"resolution-mode": "require"} ]).RequireInterface + & import("pkg", [ {"resolution-mode": "import"} ]).ImportInterface; + +export const a = (null as any as import("pkg", [ {"resolution-mode": "require"} ]).RequireInterface); +export const b = (null as any as import("pkg", [ {"resolution-mode": "import"} ]).ImportInterface); +//// [other4.ts] +// Indirected assertion objecty-thing - not allowed +type Asserts1 = { assert: {"resolution-mode": "require"} }; +type Asserts2 = { assert: {"resolution-mode": "import"} }; + +export type LocalInterface = + & import("pkg", Asserts1).RequireInterface + & import("pkg", Asserts2).ImportInterface; + +export const a = (null as any as import("pkg", Asserts1).RequireInterface); +export const b = (null as any as import("pkg", Asserts2).ImportInterface); +//// [other5.ts] +export type LocalInterface = + & import("pkg", { assert: {} }).RequireInterface + & import("pkg", { assert: {} }).ImportInterface; + +export const a = (null as any as import("pkg", { assert: {} }).RequireInterface); +export const b = (null as any as import("pkg", { assert: {} }).ImportInterface); + + +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.b = exports.a = void 0; +exports.a = null; +exports.b = null; +//// [other.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.b = exports.a = void 0; +"resolution-mode"; +"require"; +RequireInterface + & import("pkg", { "resolution-mode": "import" }).ImportInterface; +exports.a = null; +"resolution-mode"; +"require"; +RequireInterface; +; +exports.b = null; +"resolution-mode"; +"import"; +ImportInterface; +; +//// [other2.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.b = exports.a = void 0; +exports.a = null; +exports.b = null; +//// [other3.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.b = exports.a = void 0; +RequireInterface + & import("pkg", [{ "resolution-mode": "import" }]).ImportInterface; +exports.a = null.RequireInterface; +exports.b = null.ImportInterface; +//// [other4.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ImportInterface = exports.Asserts2 = exports.b = exports.RequireInterface = exports.Asserts1 = exports.a = void 0; +exports.Asserts1; +exports.RequireInterface + & import("pkg", exports.Asserts2).ImportInterface; +exports.a = null; +exports.b = null; +//// [other5.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.b = exports.a = void 0; +exports.a = null; +exports.b = null; + + +//// [index.d.ts] +export declare type LocalInterface = import("pkg", { assert: { "resolution-mode": "foobar" } }).RequireInterface & import("pkg", { assert: { "resolution-mode": "import" } }).ImportInterface; +export declare const a: import("pkg").RequireInterface; +export declare const b: import("pkg", { assert: { "resolution-mode": "import" } }).ImportInterface; +//// [other.d.ts] +export declare type LocalInterface = import("pkg", { assert: {} }); +export declare const a: any; +export declare const b: any; +//// [other2.d.ts] +export declare type LocalInterface = import("pkg", { assert: { "bad": "require" } }).RequireInterface & import("pkg", { assert: { "bad": "import" } }).ImportInterface; +export declare const a: import("pkg").RequireInterface; +export declare const b: any; +//// [other3.d.ts] +export declare type LocalInterface = import("pkg", { assert: {} })[{ + "resolution-mode": "require"; +}]; +export declare const a: any; +export declare const b: any; +//// [other4.d.ts] +export declare type LocalInterface = import("pkg", { assert: {} }); +export declare const a: any, Asserts1: any, RequireInterface: any; +export declare const b: any, Asserts2: any, ImportInterface: any; +//// [other5.d.ts] +export declare type LocalInterface = import("pkg", { assert: {} }).RequireInterface & import("pkg", { assert: {} }).ImportInterface; +export declare const a: import("pkg").RequireInterface; +export declare const b: any; diff --git a/tests/baselines/reference/nodeModulesImportTypeModeDeclarationEmitErrors1(module=nodenext).symbols b/tests/baselines/reference/nodeModulesImportTypeModeDeclarationEmitErrors1(module=nodenext).symbols new file mode 100644 index 0000000000000..71b67ec81d607 --- /dev/null +++ b/tests/baselines/reference/nodeModulesImportTypeModeDeclarationEmitErrors1(module=nodenext).symbols @@ -0,0 +1,128 @@ +=== /node_modules/pkg/import.d.ts === +export interface ImportInterface {} +>ImportInterface : Symbol(ImportInterface, Decl(import.d.ts, 0, 0)) + +=== /node_modules/pkg/require.d.ts === +export interface RequireInterface {} +>RequireInterface : Symbol(RequireInterface, Decl(require.d.ts, 0, 0)) + +=== /index.ts === +export type LocalInterface = +>LocalInterface : Symbol(LocalInterface, Decl(index.ts, 0, 0)) + + & import("pkg", { assert: {"resolution-mode": "foobar"} }).RequireInterface +>RequireInterface : Symbol(RequireInterface, Decl(require.d.ts, 0, 0)) + + & import("pkg", { assert: {"resolution-mode": "import"} }).ImportInterface; +>ImportInterface : Symbol(ImportInterface, Decl(import.d.ts, 0, 0)) + +export const a = (null as any as import("pkg", { assert: {"resolution-mode": "foobar"} }).RequireInterface); +>a : Symbol(a, Decl(index.ts, 4, 12)) +>RequireInterface : Symbol(RequireInterface, Decl(require.d.ts, 0, 0)) + +export const b = (null as any as import("pkg", { assert: {"resolution-mode": "import"} }).ImportInterface); +>b : Symbol(b, Decl(index.ts, 5, 12)) +>ImportInterface : Symbol(ImportInterface, Decl(import.d.ts, 0, 0)) + +=== /other.ts === +// missing assert: +export type LocalInterface = +>LocalInterface : Symbol(LocalInterface, Decl(other.ts, 0, 0)) + + & import("pkg", {"resolution-mode": "require"}).RequireInterface + & import("pkg", {"resolution-mode": "import"}).ImportInterface; +>"pkg" : Symbol("/node_modules/pkg/import", Decl(import.d.ts, 0, 0)) +>"resolution-mode" : Symbol("resolution-mode", Decl(other.ts, 3, 21)) + +export const a = (null as any as import("pkg", {"resolution-mode": "require"}).RequireInterface); +>a : Symbol(a, Decl(other.ts, 5, 12)) + +export const b = (null as any as import("pkg", {"resolution-mode": "import"}).ImportInterface); +>b : Symbol(b, Decl(other.ts, 6, 12)) + +=== /other2.ts === +// wrong assertion key +export type LocalInterface = +>LocalInterface : Symbol(LocalInterface, Decl(other2.ts, 0, 0)) + + & import("pkg", { assert: {"bad": "require"} }).RequireInterface +>RequireInterface : Symbol(RequireInterface, Decl(require.d.ts, 0, 0)) + + & import("pkg", { assert: {"bad": "import"} }).ImportInterface; + +export const a = (null as any as import("pkg", { assert: {"bad": "require"} }).RequireInterface); +>a : Symbol(a, Decl(other2.ts, 5, 12)) +>RequireInterface : Symbol(RequireInterface, Decl(require.d.ts, 0, 0)) + +export const b = (null as any as import("pkg", { assert: {"bad": "import"} }).ImportInterface); +>b : Symbol(b, Decl(other2.ts, 6, 12)) + +=== /other3.ts === +// Array instead of object-y thing +export type LocalInterface = +>LocalInterface : Symbol(LocalInterface, Decl(other3.ts, 0, 0)) + + & import("pkg", [ {"resolution-mode": "require"} ]).RequireInterface +>"resolution-mode" : Symbol("resolution-mode", Decl(other3.ts, 2, 23)) + + & import("pkg", [ {"resolution-mode": "import"} ]).ImportInterface; +>"pkg" : Symbol("/node_modules/pkg/import", Decl(import.d.ts, 0, 0)) +>"resolution-mode" : Symbol("resolution-mode", Decl(other3.ts, 3, 23)) + +export const a = (null as any as import("pkg", [ {"resolution-mode": "require"} ]).RequireInterface); +>a : Symbol(a, Decl(other3.ts, 5, 12)) +>"resolution-mode" : Symbol("resolution-mode", Decl(other3.ts, 5, 50)) + +export const b = (null as any as import("pkg", [ {"resolution-mode": "import"} ]).ImportInterface); +>b : Symbol(b, Decl(other3.ts, 6, 12)) +>"resolution-mode" : Symbol("resolution-mode", Decl(other3.ts, 6, 50)) + +=== /other4.ts === +// Indirected assertion objecty-thing - not allowed +type Asserts1 = { assert: {"resolution-mode": "require"} }; +>Asserts1 : Symbol(Asserts1, Decl(other4.ts, 0, 0), Decl(other4.ts, 8, 46)) +>assert : Symbol(assert, Decl(other4.ts, 1, 17)) +>"resolution-mode" : Symbol("resolution-mode", Decl(other4.ts, 1, 27)) + +type Asserts2 = { assert: {"resolution-mode": "import"} }; +>Asserts2 : Symbol(Asserts2, Decl(other4.ts, 1, 59), Decl(other4.ts, 9, 46)) +>assert : Symbol(assert, Decl(other4.ts, 2, 17)) +>"resolution-mode" : Symbol("resolution-mode", Decl(other4.ts, 2, 27)) + +export type LocalInterface = +>LocalInterface : Symbol(LocalInterface, Decl(other4.ts, 2, 58)) + + & import("pkg", Asserts1).RequireInterface +>Asserts1 : Symbol(Asserts1, Decl(other4.ts, 8, 46)) +>RequireInterface : Symbol(RequireInterface, Decl(other4.ts, 8, 57)) + + & import("pkg", Asserts2).ImportInterface; +>"pkg" : Symbol("/node_modules/pkg/import", Decl(import.d.ts, 0, 0)) +>Asserts2 : Symbol(Asserts2, Decl(other4.ts, 9, 46)) + +export const a = (null as any as import("pkg", Asserts1).RequireInterface); +>a : Symbol(a, Decl(other4.ts, 8, 12)) +>Asserts1 : Symbol(Asserts1, Decl(other4.ts, 8, 46)) +>RequireInterface : Symbol(RequireInterface, Decl(other4.ts, 8, 57)) + +export const b = (null as any as import("pkg", Asserts2).ImportInterface); +>b : Symbol(b, Decl(other4.ts, 9, 12)) +>Asserts2 : Symbol(Asserts2, Decl(other4.ts, 9, 46)) +>ImportInterface : Symbol(ImportInterface, Decl(other4.ts, 9, 57)) + +=== /other5.ts === +export type LocalInterface = +>LocalInterface : Symbol(LocalInterface, Decl(other5.ts, 0, 0)) + + & import("pkg", { assert: {} }).RequireInterface +>RequireInterface : Symbol(RequireInterface, Decl(require.d.ts, 0, 0)) + + & import("pkg", { assert: {} }).ImportInterface; + +export const a = (null as any as import("pkg", { assert: {} }).RequireInterface); +>a : Symbol(a, Decl(other5.ts, 4, 12)) +>RequireInterface : Symbol(RequireInterface, Decl(require.d.ts, 0, 0)) + +export const b = (null as any as import("pkg", { assert: {} }).ImportInterface); +>b : Symbol(b, Decl(other5.ts, 5, 12)) + diff --git a/tests/baselines/reference/nodeModulesImportTypeModeDeclarationEmitErrors1(module=nodenext).types b/tests/baselines/reference/nodeModulesImportTypeModeDeclarationEmitErrors1(module=nodenext).types new file mode 100644 index 0000000000000..096b9fe9ee3c5 --- /dev/null +++ b/tests/baselines/reference/nodeModulesImportTypeModeDeclarationEmitErrors1(module=nodenext).types @@ -0,0 +1,193 @@ +=== /node_modules/pkg/import.d.ts === +export interface ImportInterface {} +No type information for this code.=== /node_modules/pkg/require.d.ts === +export interface RequireInterface {} +No type information for this code.=== /index.ts === +export type LocalInterface = +>LocalInterface : LocalInterface + + & import("pkg", { assert: {"resolution-mode": "foobar"} }).RequireInterface + & import("pkg", { assert: {"resolution-mode": "import"} }).ImportInterface; + +export const a = (null as any as import("pkg", { assert: {"resolution-mode": "foobar"} }).RequireInterface); +>a : import("/node_modules/pkg/require").RequireInterface +>(null as any as import("pkg", { assert: {"resolution-mode": "foobar"} }).RequireInterface) : import("/node_modules/pkg/require").RequireInterface +>null as any as import("pkg", { assert: {"resolution-mode": "foobar"} }).RequireInterface : import("/node_modules/pkg/require").RequireInterface +>null as any : any +>null : null + +export const b = (null as any as import("pkg", { assert: {"resolution-mode": "import"} }).ImportInterface); +>b : import("/node_modules/pkg/import").ImportInterface +>(null as any as import("pkg", { assert: {"resolution-mode": "import"} }).ImportInterface) : import("/node_modules/pkg/import").ImportInterface +>null as any as import("pkg", { assert: {"resolution-mode": "import"} }).ImportInterface : import("/node_modules/pkg/import").ImportInterface +>null as any : any +>null : null + +=== /other.ts === +// missing assert: +export type LocalInterface = +>LocalInterface : any + + & import("pkg", {"resolution-mode": "require"}).RequireInterface +>"resolution-mode" : "resolution-mode" +>"require" : "require" +>RequireInterface & import("pkg", {"resolution-mode": "import"}).ImportInterface : number +>RequireInterface : any + + & import("pkg", {"resolution-mode": "import"}).ImportInterface; +>import("pkg", {"resolution-mode": "import"}).ImportInterface : any +>import("pkg", {"resolution-mode": "import"}) : Promise<{ default: typeof import("/node_modules/pkg/import"); }> +>"pkg" : "pkg" +>{"resolution-mode": "import"} : { "resolution-mode": string; } +>"resolution-mode" : string +>"import" : "import" +>ImportInterface : any + +export const a = (null as any as import("pkg", {"resolution-mode": "require"}).RequireInterface); +>a : any +>(null as any as import("pkg", { : any +>null as any as import("pkg", { : any +>null as any : any +>null : null +>"resolution-mode" : "resolution-mode" +>"require" : "require" +>RequireInterface : any + +export const b = (null as any as import("pkg", {"resolution-mode": "import"}).ImportInterface); +>b : any +>(null as any as import("pkg", { : any +>null as any as import("pkg", { : any +>null as any : any +>null : null +>"resolution-mode" : "resolution-mode" +>"import" : "import" +>ImportInterface : any + +=== /other2.ts === +// wrong assertion key +export type LocalInterface = +>LocalInterface : any + + & import("pkg", { assert: {"bad": "require"} }).RequireInterface + & import("pkg", { assert: {"bad": "import"} }).ImportInterface; + +export const a = (null as any as import("pkg", { assert: {"bad": "require"} }).RequireInterface); +>a : import("/node_modules/pkg/require").RequireInterface +>(null as any as import("pkg", { assert: {"bad": "require"} }).RequireInterface) : import("/node_modules/pkg/require").RequireInterface +>null as any as import("pkg", { assert: {"bad": "require"} }).RequireInterface : import("/node_modules/pkg/require").RequireInterface +>null as any : any +>null : null + +export const b = (null as any as import("pkg", { assert: {"bad": "import"} }).ImportInterface); +>b : any +>(null as any as import("pkg", { assert: {"bad": "import"} }).ImportInterface) : any +>null as any as import("pkg", { assert: {"bad": "import"} }).ImportInterface : any +>null as any : any +>null : null + +=== /other3.ts === +// Array instead of object-y thing +export type LocalInterface = +>LocalInterface : any + + & import("pkg", [ {"resolution-mode": "require"} ]).RequireInterface +>"resolution-mode" : "require" +>RequireInterface & import("pkg", [ {"resolution-mode": "import"} ]).ImportInterface : number +>RequireInterface : any + + & import("pkg", [ {"resolution-mode": "import"} ]).ImportInterface; +>import("pkg", [ {"resolution-mode": "import"} ]).ImportInterface : any +>import("pkg", [ {"resolution-mode": "import"} ]) : Promise<{ default: typeof import("/node_modules/pkg/import"); }> +>"pkg" : "pkg" +>[ {"resolution-mode": "import"} ] : { "resolution-mode": string; }[] +>{"resolution-mode": "import"} : { "resolution-mode": string; } +>"resolution-mode" : string +>"import" : "import" +>ImportInterface : any + +export const a = (null as any as import("pkg", [ {"resolution-mode": "require"} ]).RequireInterface); +>a : any +>(null as any as import("pkg", [ {"resolution-mode": "require"} ]).RequireInterface : any +>(null as any as import("pkg", [ {"resolution-mode": "require"} ]) : any +>null as any as import("pkg", [ {"resolution-mode": "require"} ] : any +>null as any : any +>null : null +>"resolution-mode" : "require" +>RequireInterface : any + +export const b = (null as any as import("pkg", [ {"resolution-mode": "import"} ]).ImportInterface); +>b : any +>(null as any as import("pkg", [ {"resolution-mode": "import"} ]).ImportInterface : any +>(null as any as import("pkg", [ {"resolution-mode": "import"} ]) : any +>null as any as import("pkg", [ {"resolution-mode": "import"} ] : any +>null as any : any +>null : null +>"resolution-mode" : "import" +>ImportInterface : any + +=== /other4.ts === +// Indirected assertion objecty-thing - not allowed +type Asserts1 = { assert: {"resolution-mode": "require"} }; +>Asserts1 : Asserts1 +>assert : { "resolution-mode": "require"; } +>"resolution-mode" : "require" + +type Asserts2 = { assert: {"resolution-mode": "import"} }; +>Asserts2 : Asserts2 +>assert : { "resolution-mode": "import"; } +>"resolution-mode" : "import" + +export type LocalInterface = +>LocalInterface : any + + & import("pkg", Asserts1).RequireInterface +>Asserts1 : any +>RequireInterface & import("pkg", Asserts2).ImportInterface : number +>RequireInterface : any + + & import("pkg", Asserts2).ImportInterface; +>import("pkg", Asserts2).ImportInterface : any +>import("pkg", Asserts2) : Promise<{ default: typeof import("/node_modules/pkg/import"); }> +>"pkg" : "pkg" +>Asserts2 : any +>ImportInterface : any + +export const a = (null as any as import("pkg", Asserts1).RequireInterface); +>a : any +>(null as any as import("pkg", : any +>null as any as import("pkg", : any +>null as any : any +>null : null +>Asserts1 : any +>RequireInterface : any + +export const b = (null as any as import("pkg", Asserts2).ImportInterface); +>b : any +>(null as any as import("pkg", : any +>null as any as import("pkg", : any +>null as any : any +>null : null +>Asserts2 : any +>ImportInterface : any + +=== /other5.ts === +export type LocalInterface = +>LocalInterface : any + + & import("pkg", { assert: {} }).RequireInterface + & import("pkg", { assert: {} }).ImportInterface; + +export const a = (null as any as import("pkg", { assert: {} }).RequireInterface); +>a : import("/node_modules/pkg/require").RequireInterface +>(null as any as import("pkg", { assert: {} }).RequireInterface) : import("/node_modules/pkg/require").RequireInterface +>null as any as import("pkg", { assert: {} }).RequireInterface : import("/node_modules/pkg/require").RequireInterface +>null as any : any +>null : null + +export const b = (null as any as import("pkg", { assert: {} }).ImportInterface); +>b : any +>(null as any as import("pkg", { assert: {} }).ImportInterface) : any +>null as any as import("pkg", { assert: {} }).ImportInterface : any +>null as any : any +>null : null + diff --git a/tests/baselines/reference/nodeModulesPackageExports(module=node12).js b/tests/baselines/reference/nodeModulesPackageExports(module=node12).js index 28c25e10f9ef1..d974207d7b4ee 100644 --- a/tests/baselines/reference/nodeModulesPackageExports(module=node12).js +++ b/tests/baselines/reference/nodeModulesPackageExports(module=node12).js @@ -106,7 +106,11 @@ typei; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/nodeModulesPackageExports(module=node12).symbols b/tests/baselines/reference/nodeModulesPackageExports(module=node12).symbols index 8093c39582ddc..0a2a74496f400 100644 --- a/tests/baselines/reference/nodeModulesPackageExports(module=node12).symbols +++ b/tests/baselines/reference/nodeModulesPackageExports(module=node12).symbols @@ -124,13 +124,13 @@ import * as type from "inner"; >type : Symbol(type, Decl(index.d.ts, 3, 6)) export { cjs }; ->cjs : Symbol(mjs.cjs.type.cjs, Decl(index.d.ts, 4, 8)) +>cjs : Symbol(mjs.cjs.cjs.type.cjs, Decl(index.d.ts, 4, 8)) export { mjs }; ->mjs : Symbol(mjs.cjs.type.mjs, Decl(index.d.ts, 5, 8)) +>mjs : Symbol(mjs.cjs.cjs.type.mjs, Decl(index.d.ts, 5, 8)) export { type }; ->type : Symbol(mjs.cjs.type.type, Decl(index.d.ts, 6, 8)) +>type : Symbol(mjs.cjs.cjs.type.type, Decl(index.d.ts, 6, 8)) === tests/cases/conformance/node/node_modules/inner/index.d.mts === // esm format file @@ -144,13 +144,13 @@ import * as type from "inner"; >type : Symbol(type, Decl(index.d.mts, 3, 6)) export { cjs }; ->cjs : Symbol(cjs.mjs.cjs, Decl(index.d.mts, 4, 8)) +>cjs : Symbol(cjs.cjs.mjs.cjs, Decl(index.d.mts, 4, 8)) export { mjs }; ->mjs : Symbol(cjs.mjs.mjs, Decl(index.d.mts, 5, 8)) +>mjs : Symbol(cjs.cjs.mjs.mjs, Decl(index.d.mts, 5, 8)) export { type }; ->type : Symbol(cjs.mjs.type, Decl(index.d.mts, 6, 8)) +>type : Symbol(cjs.cjs.mjs.type, Decl(index.d.mts, 6, 8)) === tests/cases/conformance/node/node_modules/inner/index.d.cts === // cjs format file diff --git a/tests/baselines/reference/nodeModulesPackageExports(module=node12).types b/tests/baselines/reference/nodeModulesPackageExports(module=node12).types index 85dad3ea25f98..8d3dcec7235fd 100644 --- a/tests/baselines/reference/nodeModulesPackageExports(module=node12).types +++ b/tests/baselines/reference/nodeModulesPackageExports(module=node12).types @@ -22,19 +22,19 @@ import * as cjsi from "inner/cjs"; >cjsi : typeof cjsi import * as mjsi from "inner/mjs"; ->mjsi : typeof cjsi.mjs +>mjsi : typeof cjsi.cjs.mjs import * as typei from "inner"; ->typei : typeof cjsi.mjs.type +>typei : typeof typei cjsi; >cjsi : typeof cjsi mjsi; ->mjsi : typeof cjsi.mjs +>mjsi : typeof cjsi.cjs.mjs typei; ->typei : typeof cjsi.mjs.type +>typei : typeof typei === tests/cases/conformance/node/index.mts === // esm format file @@ -60,19 +60,19 @@ import * as cjsi from "inner/cjs"; >cjsi : typeof cjsi import * as mjsi from "inner/mjs"; ->mjsi : typeof cjsi.mjs +>mjsi : typeof cjsi.cjs.mjs import * as typei from "inner"; ->typei : typeof cjsi.mjs.type +>typei : typeof typei cjsi; >cjsi : typeof cjsi mjsi; ->mjsi : typeof cjsi.mjs +>mjsi : typeof cjsi.cjs.mjs typei; ->typei : typeof cjsi.mjs.type +>typei : typeof typei === tests/cases/conformance/node/index.cts === // cjs format file @@ -101,7 +101,7 @@ import * as mjsi from "inner/mjs"; >mjsi : typeof cjsi.mjs import * as typei from "inner"; ->typei : typeof cjsi.mjs.type +>typei : typeof cjsi.mjs.cjs.type cjsi; >cjsi : typeof cjsi @@ -110,7 +110,7 @@ mjsi; >mjsi : typeof cjsi.mjs typei; ->typei : typeof cjsi.mjs.type +>typei : typeof cjsi.mjs.cjs.type === tests/cases/conformance/node/node_modules/inner/index.d.ts === // cjs format file @@ -121,7 +121,7 @@ import * as mjs from "inner/mjs"; >mjs : typeof mjs import * as type from "inner"; ->type : typeof mjs.cjs.type +>type : typeof mjs.cjs.cjs.type export { cjs }; >cjs : any @@ -130,7 +130,7 @@ export { mjs }; >mjs : typeof mjs export { type }; ->type : typeof mjs.cjs.type +>type : typeof mjs.cjs.cjs.type === tests/cases/conformance/node/node_modules/inner/index.d.mts === // esm format file @@ -138,19 +138,19 @@ import * as cjs from "inner/cjs"; >cjs : typeof cjs import * as mjs from "inner/mjs"; ->mjs : typeof cjs.mjs +>mjs : typeof cjs.cjs.mjs import * as type from "inner"; ->type : typeof cjs.mjs.type +>type : typeof cjs.cjs.mjs.type export { cjs }; >cjs : typeof cjs export { mjs }; ->mjs : typeof cjs.mjs +>mjs : typeof cjs.cjs.mjs export { type }; ->type : typeof cjs.mjs.type +>type : typeof cjs.cjs.mjs.type === tests/cases/conformance/node/node_modules/inner/index.d.cts === // cjs format file @@ -161,7 +161,7 @@ import * as mjs from "inner/mjs"; >mjs : typeof cjs.mjs import * as type from "inner"; ->type : typeof cjs.mjs.type +>type : typeof cjs.mjs.cjs.type export { cjs }; >cjs : typeof cjs @@ -170,5 +170,5 @@ export { mjs }; >mjs : typeof cjs.mjs export { type }; ->type : typeof cjs.mjs.type +>type : typeof cjs.mjs.cjs.type diff --git a/tests/baselines/reference/nodeModulesPackageExports(module=nodenext).js b/tests/baselines/reference/nodeModulesPackageExports(module=nodenext).js index 28c25e10f9ef1..d974207d7b4ee 100644 --- a/tests/baselines/reference/nodeModulesPackageExports(module=nodenext).js +++ b/tests/baselines/reference/nodeModulesPackageExports(module=nodenext).js @@ -106,7 +106,11 @@ typei; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/nodeModulesPackageExports(module=nodenext).symbols b/tests/baselines/reference/nodeModulesPackageExports(module=nodenext).symbols index 8093c39582ddc..0a2a74496f400 100644 --- a/tests/baselines/reference/nodeModulesPackageExports(module=nodenext).symbols +++ b/tests/baselines/reference/nodeModulesPackageExports(module=nodenext).symbols @@ -124,13 +124,13 @@ import * as type from "inner"; >type : Symbol(type, Decl(index.d.ts, 3, 6)) export { cjs }; ->cjs : Symbol(mjs.cjs.type.cjs, Decl(index.d.ts, 4, 8)) +>cjs : Symbol(mjs.cjs.cjs.type.cjs, Decl(index.d.ts, 4, 8)) export { mjs }; ->mjs : Symbol(mjs.cjs.type.mjs, Decl(index.d.ts, 5, 8)) +>mjs : Symbol(mjs.cjs.cjs.type.mjs, Decl(index.d.ts, 5, 8)) export { type }; ->type : Symbol(mjs.cjs.type.type, Decl(index.d.ts, 6, 8)) +>type : Symbol(mjs.cjs.cjs.type.type, Decl(index.d.ts, 6, 8)) === tests/cases/conformance/node/node_modules/inner/index.d.mts === // esm format file @@ -144,13 +144,13 @@ import * as type from "inner"; >type : Symbol(type, Decl(index.d.mts, 3, 6)) export { cjs }; ->cjs : Symbol(cjs.mjs.cjs, Decl(index.d.mts, 4, 8)) +>cjs : Symbol(cjs.cjs.mjs.cjs, Decl(index.d.mts, 4, 8)) export { mjs }; ->mjs : Symbol(cjs.mjs.mjs, Decl(index.d.mts, 5, 8)) +>mjs : Symbol(cjs.cjs.mjs.mjs, Decl(index.d.mts, 5, 8)) export { type }; ->type : Symbol(cjs.mjs.type, Decl(index.d.mts, 6, 8)) +>type : Symbol(cjs.cjs.mjs.type, Decl(index.d.mts, 6, 8)) === tests/cases/conformance/node/node_modules/inner/index.d.cts === // cjs format file diff --git a/tests/baselines/reference/nodeModulesPackageExports(module=nodenext).types b/tests/baselines/reference/nodeModulesPackageExports(module=nodenext).types index 85dad3ea25f98..8d3dcec7235fd 100644 --- a/tests/baselines/reference/nodeModulesPackageExports(module=nodenext).types +++ b/tests/baselines/reference/nodeModulesPackageExports(module=nodenext).types @@ -22,19 +22,19 @@ import * as cjsi from "inner/cjs"; >cjsi : typeof cjsi import * as mjsi from "inner/mjs"; ->mjsi : typeof cjsi.mjs +>mjsi : typeof cjsi.cjs.mjs import * as typei from "inner"; ->typei : typeof cjsi.mjs.type +>typei : typeof typei cjsi; >cjsi : typeof cjsi mjsi; ->mjsi : typeof cjsi.mjs +>mjsi : typeof cjsi.cjs.mjs typei; ->typei : typeof cjsi.mjs.type +>typei : typeof typei === tests/cases/conformance/node/index.mts === // esm format file @@ -60,19 +60,19 @@ import * as cjsi from "inner/cjs"; >cjsi : typeof cjsi import * as mjsi from "inner/mjs"; ->mjsi : typeof cjsi.mjs +>mjsi : typeof cjsi.cjs.mjs import * as typei from "inner"; ->typei : typeof cjsi.mjs.type +>typei : typeof typei cjsi; >cjsi : typeof cjsi mjsi; ->mjsi : typeof cjsi.mjs +>mjsi : typeof cjsi.cjs.mjs typei; ->typei : typeof cjsi.mjs.type +>typei : typeof typei === tests/cases/conformance/node/index.cts === // cjs format file @@ -101,7 +101,7 @@ import * as mjsi from "inner/mjs"; >mjsi : typeof cjsi.mjs import * as typei from "inner"; ->typei : typeof cjsi.mjs.type +>typei : typeof cjsi.mjs.cjs.type cjsi; >cjsi : typeof cjsi @@ -110,7 +110,7 @@ mjsi; >mjsi : typeof cjsi.mjs typei; ->typei : typeof cjsi.mjs.type +>typei : typeof cjsi.mjs.cjs.type === tests/cases/conformance/node/node_modules/inner/index.d.ts === // cjs format file @@ -121,7 +121,7 @@ import * as mjs from "inner/mjs"; >mjs : typeof mjs import * as type from "inner"; ->type : typeof mjs.cjs.type +>type : typeof mjs.cjs.cjs.type export { cjs }; >cjs : any @@ -130,7 +130,7 @@ export { mjs }; >mjs : typeof mjs export { type }; ->type : typeof mjs.cjs.type +>type : typeof mjs.cjs.cjs.type === tests/cases/conformance/node/node_modules/inner/index.d.mts === // esm format file @@ -138,19 +138,19 @@ import * as cjs from "inner/cjs"; >cjs : typeof cjs import * as mjs from "inner/mjs"; ->mjs : typeof cjs.mjs +>mjs : typeof cjs.cjs.mjs import * as type from "inner"; ->type : typeof cjs.mjs.type +>type : typeof cjs.cjs.mjs.type export { cjs }; >cjs : typeof cjs export { mjs }; ->mjs : typeof cjs.mjs +>mjs : typeof cjs.cjs.mjs export { type }; ->type : typeof cjs.mjs.type +>type : typeof cjs.cjs.mjs.type === tests/cases/conformance/node/node_modules/inner/index.d.cts === // cjs format file @@ -161,7 +161,7 @@ import * as mjs from "inner/mjs"; >mjs : typeof cjs.mjs import * as type from "inner"; ->type : typeof cjs.mjs.type +>type : typeof cjs.mjs.cjs.type export { cjs }; >cjs : typeof cjs @@ -170,5 +170,5 @@ export { mjs }; >mjs : typeof cjs.mjs export { type }; ->type : typeof cjs.mjs.type +>type : typeof cjs.mjs.cjs.type diff --git a/tests/baselines/reference/nodeModulesPackageImports(module=node12).js b/tests/baselines/reference/nodeModulesPackageImports(module=node12).js index 7fb8361dd0ac8..fb612b6c2fd66 100644 --- a/tests/baselines/reference/nodeModulesPackageImports(module=node12).js +++ b/tests/baselines/reference/nodeModulesPackageImports(module=node12).js @@ -49,7 +49,11 @@ type; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/nodeModulesPackageImports(module=nodenext).js b/tests/baselines/reference/nodeModulesPackageImports(module=nodenext).js index 7fb8361dd0ac8..fb612b6c2fd66 100644 --- a/tests/baselines/reference/nodeModulesPackageImports(module=nodenext).js +++ b/tests/baselines/reference/nodeModulesPackageImports(module=nodenext).js @@ -49,7 +49,11 @@ type; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/nodeModulesPackagePatternExports(module=node12).js b/tests/baselines/reference/nodeModulesPackagePatternExports(module=node12).js index 982cd292396a5..cef593a42469a 100644 --- a/tests/baselines/reference/nodeModulesPackagePatternExports(module=node12).js +++ b/tests/baselines/reference/nodeModulesPackagePatternExports(module=node12).js @@ -85,7 +85,11 @@ typei; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/nodeModulesPackagePatternExports(module=node12).symbols b/tests/baselines/reference/nodeModulesPackagePatternExports(module=node12).symbols index adbb566941d1a..c9823ad5c6c98 100644 --- a/tests/baselines/reference/nodeModulesPackagePatternExports(module=node12).symbols +++ b/tests/baselines/reference/nodeModulesPackagePatternExports(module=node12).symbols @@ -70,13 +70,13 @@ import * as type from "inner/js/index"; >type : Symbol(type, Decl(index.d.ts, 3, 6)) export { cjs }; ->cjs : Symbol(mjs.cjs.type.cjs, Decl(index.d.ts, 4, 8)) +>cjs : Symbol(mjs.cjs.cjs.type.cjs, Decl(index.d.ts, 4, 8)) export { mjs }; ->mjs : Symbol(mjs.cjs.type.mjs, Decl(index.d.ts, 5, 8)) +>mjs : Symbol(mjs.cjs.cjs.type.mjs, Decl(index.d.ts, 5, 8)) export { type }; ->type : Symbol(mjs.cjs.type.type, Decl(index.d.ts, 6, 8)) +>type : Symbol(mjs.cjs.cjs.type.type, Decl(index.d.ts, 6, 8)) === tests/cases/conformance/node/node_modules/inner/index.d.mts === // esm format file @@ -90,13 +90,13 @@ import * as type from "inner/js/index"; >type : Symbol(type, Decl(index.d.mts, 3, 6)) export { cjs }; ->cjs : Symbol(cjs.mjs.cjs, Decl(index.d.mts, 4, 8)) +>cjs : Symbol(cjs.cjs.mjs.cjs, Decl(index.d.mts, 4, 8)) export { mjs }; ->mjs : Symbol(cjs.mjs.mjs, Decl(index.d.mts, 5, 8)) +>mjs : Symbol(cjs.cjs.mjs.mjs, Decl(index.d.mts, 5, 8)) export { type }; ->type : Symbol(cjs.mjs.type, Decl(index.d.mts, 6, 8)) +>type : Symbol(cjs.cjs.mjs.type, Decl(index.d.mts, 6, 8)) === tests/cases/conformance/node/node_modules/inner/index.d.cts === // cjs format file diff --git a/tests/baselines/reference/nodeModulesPackagePatternExports(module=node12).types b/tests/baselines/reference/nodeModulesPackagePatternExports(module=node12).types index 28015ecbd24c3..3ebdb118fd95f 100644 --- a/tests/baselines/reference/nodeModulesPackagePatternExports(module=node12).types +++ b/tests/baselines/reference/nodeModulesPackagePatternExports(module=node12).types @@ -4,19 +4,19 @@ import * as cjsi from "inner/cjs/index"; >cjsi : typeof cjsi import * as mjsi from "inner/mjs/index"; ->mjsi : typeof cjsi.mjs +>mjsi : typeof cjsi.cjs.mjs import * as typei from "inner/js/index"; ->typei : typeof cjsi.mjs.type +>typei : typeof typei cjsi; >cjsi : typeof cjsi mjsi; ->mjsi : typeof cjsi.mjs +>mjsi : typeof cjsi.cjs.mjs typei; ->typei : typeof cjsi.mjs.type +>typei : typeof typei === tests/cases/conformance/node/index.mts === // esm format file @@ -24,19 +24,19 @@ import * as cjsi from "inner/cjs/index"; >cjsi : typeof cjsi import * as mjsi from "inner/mjs/index"; ->mjsi : typeof cjsi.mjs +>mjsi : typeof cjsi.cjs.mjs import * as typei from "inner/js/index"; ->typei : typeof cjsi.mjs.type +>typei : typeof typei cjsi; >cjsi : typeof cjsi mjsi; ->mjsi : typeof cjsi.mjs +>mjsi : typeof cjsi.cjs.mjs typei; ->typei : typeof cjsi.mjs.type +>typei : typeof typei === tests/cases/conformance/node/index.cts === // cjs format file @@ -47,7 +47,7 @@ import * as mjsi from "inner/mjs/index"; >mjsi : typeof cjsi.mjs import * as typei from "inner/js/index"; ->typei : typeof cjsi.mjs.type +>typei : typeof cjsi.mjs.cjs.type cjsi; >cjsi : typeof cjsi @@ -56,7 +56,7 @@ mjsi; >mjsi : typeof cjsi.mjs typei; ->typei : typeof cjsi.mjs.type +>typei : typeof cjsi.mjs.cjs.type === tests/cases/conformance/node/node_modules/inner/index.d.ts === // cjs format file @@ -67,7 +67,7 @@ import * as mjs from "inner/mjs/index"; >mjs : typeof mjs import * as type from "inner/js/index"; ->type : typeof mjs.cjs.type +>type : typeof mjs.cjs.cjs.type export { cjs }; >cjs : any @@ -76,7 +76,7 @@ export { mjs }; >mjs : typeof mjs export { type }; ->type : typeof mjs.cjs.type +>type : typeof mjs.cjs.cjs.type === tests/cases/conformance/node/node_modules/inner/index.d.mts === // esm format file @@ -84,19 +84,19 @@ import * as cjs from "inner/cjs/index"; >cjs : typeof cjs import * as mjs from "inner/mjs/index"; ->mjs : typeof cjs.mjs +>mjs : typeof cjs.cjs.mjs import * as type from "inner/js/index"; ->type : typeof cjs.mjs.type +>type : typeof cjs.cjs.mjs.type export { cjs }; >cjs : typeof cjs export { mjs }; ->mjs : typeof cjs.mjs +>mjs : typeof cjs.cjs.mjs export { type }; ->type : typeof cjs.mjs.type +>type : typeof cjs.cjs.mjs.type === tests/cases/conformance/node/node_modules/inner/index.d.cts === // cjs format file @@ -107,7 +107,7 @@ import * as mjs from "inner/mjs/index"; >mjs : typeof cjs.mjs import * as type from "inner/js/index"; ->type : typeof cjs.mjs.type +>type : typeof cjs.mjs.cjs.type export { cjs }; >cjs : typeof cjs @@ -116,5 +116,5 @@ export { mjs }; >mjs : typeof cjs.mjs export { type }; ->type : typeof cjs.mjs.type +>type : typeof cjs.mjs.cjs.type diff --git a/tests/baselines/reference/nodeModulesPackagePatternExports(module=nodenext).js b/tests/baselines/reference/nodeModulesPackagePatternExports(module=nodenext).js index 982cd292396a5..cef593a42469a 100644 --- a/tests/baselines/reference/nodeModulesPackagePatternExports(module=nodenext).js +++ b/tests/baselines/reference/nodeModulesPackagePatternExports(module=nodenext).js @@ -85,7 +85,11 @@ typei; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/nodeModulesPackagePatternExports(module=nodenext).symbols b/tests/baselines/reference/nodeModulesPackagePatternExports(module=nodenext).symbols index adbb566941d1a..c9823ad5c6c98 100644 --- a/tests/baselines/reference/nodeModulesPackagePatternExports(module=nodenext).symbols +++ b/tests/baselines/reference/nodeModulesPackagePatternExports(module=nodenext).symbols @@ -70,13 +70,13 @@ import * as type from "inner/js/index"; >type : Symbol(type, Decl(index.d.ts, 3, 6)) export { cjs }; ->cjs : Symbol(mjs.cjs.type.cjs, Decl(index.d.ts, 4, 8)) +>cjs : Symbol(mjs.cjs.cjs.type.cjs, Decl(index.d.ts, 4, 8)) export { mjs }; ->mjs : Symbol(mjs.cjs.type.mjs, Decl(index.d.ts, 5, 8)) +>mjs : Symbol(mjs.cjs.cjs.type.mjs, Decl(index.d.ts, 5, 8)) export { type }; ->type : Symbol(mjs.cjs.type.type, Decl(index.d.ts, 6, 8)) +>type : Symbol(mjs.cjs.cjs.type.type, Decl(index.d.ts, 6, 8)) === tests/cases/conformance/node/node_modules/inner/index.d.mts === // esm format file @@ -90,13 +90,13 @@ import * as type from "inner/js/index"; >type : Symbol(type, Decl(index.d.mts, 3, 6)) export { cjs }; ->cjs : Symbol(cjs.mjs.cjs, Decl(index.d.mts, 4, 8)) +>cjs : Symbol(cjs.cjs.mjs.cjs, Decl(index.d.mts, 4, 8)) export { mjs }; ->mjs : Symbol(cjs.mjs.mjs, Decl(index.d.mts, 5, 8)) +>mjs : Symbol(cjs.cjs.mjs.mjs, Decl(index.d.mts, 5, 8)) export { type }; ->type : Symbol(cjs.mjs.type, Decl(index.d.mts, 6, 8)) +>type : Symbol(cjs.cjs.mjs.type, Decl(index.d.mts, 6, 8)) === tests/cases/conformance/node/node_modules/inner/index.d.cts === // cjs format file diff --git a/tests/baselines/reference/nodeModulesPackagePatternExports(module=nodenext).types b/tests/baselines/reference/nodeModulesPackagePatternExports(module=nodenext).types index 28015ecbd24c3..3ebdb118fd95f 100644 --- a/tests/baselines/reference/nodeModulesPackagePatternExports(module=nodenext).types +++ b/tests/baselines/reference/nodeModulesPackagePatternExports(module=nodenext).types @@ -4,19 +4,19 @@ import * as cjsi from "inner/cjs/index"; >cjsi : typeof cjsi import * as mjsi from "inner/mjs/index"; ->mjsi : typeof cjsi.mjs +>mjsi : typeof cjsi.cjs.mjs import * as typei from "inner/js/index"; ->typei : typeof cjsi.mjs.type +>typei : typeof typei cjsi; >cjsi : typeof cjsi mjsi; ->mjsi : typeof cjsi.mjs +>mjsi : typeof cjsi.cjs.mjs typei; ->typei : typeof cjsi.mjs.type +>typei : typeof typei === tests/cases/conformance/node/index.mts === // esm format file @@ -24,19 +24,19 @@ import * as cjsi from "inner/cjs/index"; >cjsi : typeof cjsi import * as mjsi from "inner/mjs/index"; ->mjsi : typeof cjsi.mjs +>mjsi : typeof cjsi.cjs.mjs import * as typei from "inner/js/index"; ->typei : typeof cjsi.mjs.type +>typei : typeof typei cjsi; >cjsi : typeof cjsi mjsi; ->mjsi : typeof cjsi.mjs +>mjsi : typeof cjsi.cjs.mjs typei; ->typei : typeof cjsi.mjs.type +>typei : typeof typei === tests/cases/conformance/node/index.cts === // cjs format file @@ -47,7 +47,7 @@ import * as mjsi from "inner/mjs/index"; >mjsi : typeof cjsi.mjs import * as typei from "inner/js/index"; ->typei : typeof cjsi.mjs.type +>typei : typeof cjsi.mjs.cjs.type cjsi; >cjsi : typeof cjsi @@ -56,7 +56,7 @@ mjsi; >mjsi : typeof cjsi.mjs typei; ->typei : typeof cjsi.mjs.type +>typei : typeof cjsi.mjs.cjs.type === tests/cases/conformance/node/node_modules/inner/index.d.ts === // cjs format file @@ -67,7 +67,7 @@ import * as mjs from "inner/mjs/index"; >mjs : typeof mjs import * as type from "inner/js/index"; ->type : typeof mjs.cjs.type +>type : typeof mjs.cjs.cjs.type export { cjs }; >cjs : any @@ -76,7 +76,7 @@ export { mjs }; >mjs : typeof mjs export { type }; ->type : typeof mjs.cjs.type +>type : typeof mjs.cjs.cjs.type === tests/cases/conformance/node/node_modules/inner/index.d.mts === // esm format file @@ -84,19 +84,19 @@ import * as cjs from "inner/cjs/index"; >cjs : typeof cjs import * as mjs from "inner/mjs/index"; ->mjs : typeof cjs.mjs +>mjs : typeof cjs.cjs.mjs import * as type from "inner/js/index"; ->type : typeof cjs.mjs.type +>type : typeof cjs.cjs.mjs.type export { cjs }; >cjs : typeof cjs export { mjs }; ->mjs : typeof cjs.mjs +>mjs : typeof cjs.cjs.mjs export { type }; ->type : typeof cjs.mjs.type +>type : typeof cjs.cjs.mjs.type === tests/cases/conformance/node/node_modules/inner/index.d.cts === // cjs format file @@ -107,7 +107,7 @@ import * as mjs from "inner/mjs/index"; >mjs : typeof cjs.mjs import * as type from "inner/js/index"; ->type : typeof cjs.mjs.type +>type : typeof cjs.mjs.cjs.type export { cjs }; >cjs : typeof cjs @@ -116,5 +116,5 @@ export { mjs }; >mjs : typeof cjs.mjs export { type }; ->type : typeof cjs.mjs.type +>type : typeof cjs.mjs.cjs.type diff --git a/tests/baselines/reference/nodeModulesPackagePatternExportsTrailers(module=node12).js b/tests/baselines/reference/nodeModulesPackagePatternExportsTrailers(module=node12).js index 0e0b80d540422..62c5b11569855 100644 --- a/tests/baselines/reference/nodeModulesPackagePatternExportsTrailers(module=node12).js +++ b/tests/baselines/reference/nodeModulesPackagePatternExportsTrailers(module=node12).js @@ -85,7 +85,11 @@ typei; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/nodeModulesPackagePatternExportsTrailers(module=nodenext).js b/tests/baselines/reference/nodeModulesPackagePatternExportsTrailers(module=nodenext).js index 0e0b80d540422..62c5b11569855 100644 --- a/tests/baselines/reference/nodeModulesPackagePatternExportsTrailers(module=nodenext).js +++ b/tests/baselines/reference/nodeModulesPackagePatternExportsTrailers(module=nodenext).js @@ -85,7 +85,11 @@ typei; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/nodeModulesPackagePatternExportsTrailers(module=nodenext).symbols b/tests/baselines/reference/nodeModulesPackagePatternExportsTrailers(module=nodenext).symbols index c8c8c3a38f8ab..59394e7d56dec 100644 --- a/tests/baselines/reference/nodeModulesPackagePatternExportsTrailers(module=nodenext).symbols +++ b/tests/baselines/reference/nodeModulesPackagePatternExportsTrailers(module=nodenext).symbols @@ -70,13 +70,13 @@ import * as type from "inner/js/index.js"; >type : Symbol(type, Decl(index.d.ts, 3, 6)) export { cjs }; ->cjs : Symbol(mjs.cjs.type.cjs, Decl(index.d.ts, 4, 8)) +>cjs : Symbol(mjs.cjs.cjs.type.cjs, Decl(index.d.ts, 4, 8)) export { mjs }; ->mjs : Symbol(mjs.cjs.type.mjs, Decl(index.d.ts, 5, 8)) +>mjs : Symbol(mjs.cjs.cjs.type.mjs, Decl(index.d.ts, 5, 8)) export { type }; ->type : Symbol(mjs.cjs.type.type, Decl(index.d.ts, 6, 8)) +>type : Symbol(mjs.cjs.cjs.type.type, Decl(index.d.ts, 6, 8)) === tests/cases/conformance/node/node_modules/inner/index.d.mts === // esm format file @@ -90,13 +90,13 @@ import * as type from "inner/js/index.js"; >type : Symbol(type, Decl(index.d.mts, 3, 6)) export { cjs }; ->cjs : Symbol(cjs.mjs.cjs, Decl(index.d.mts, 4, 8)) +>cjs : Symbol(cjs.cjs.mjs.cjs, Decl(index.d.mts, 4, 8)) export { mjs }; ->mjs : Symbol(cjs.mjs.mjs, Decl(index.d.mts, 5, 8)) +>mjs : Symbol(cjs.cjs.mjs.mjs, Decl(index.d.mts, 5, 8)) export { type }; ->type : Symbol(cjs.mjs.type, Decl(index.d.mts, 6, 8)) +>type : Symbol(cjs.cjs.mjs.type, Decl(index.d.mts, 6, 8)) === tests/cases/conformance/node/node_modules/inner/index.d.cts === // cjs format file diff --git a/tests/baselines/reference/nodeModulesPackagePatternExportsTrailers(module=nodenext).types b/tests/baselines/reference/nodeModulesPackagePatternExportsTrailers(module=nodenext).types index efc768d50a237..f72f124769959 100644 --- a/tests/baselines/reference/nodeModulesPackagePatternExportsTrailers(module=nodenext).types +++ b/tests/baselines/reference/nodeModulesPackagePatternExportsTrailers(module=nodenext).types @@ -4,19 +4,19 @@ import * as cjsi from "inner/cjs/index.cjs"; >cjsi : typeof cjsi import * as mjsi from "inner/mjs/index.mjs"; ->mjsi : typeof cjsi.mjs +>mjsi : typeof cjsi.cjs.mjs import * as typei from "inner/js/index.js"; ->typei : typeof cjsi.mjs.type +>typei : typeof typei cjsi; >cjsi : typeof cjsi mjsi; ->mjsi : typeof cjsi.mjs +>mjsi : typeof cjsi.cjs.mjs typei; ->typei : typeof cjsi.mjs.type +>typei : typeof typei === tests/cases/conformance/node/index.mts === // esm format file @@ -24,19 +24,19 @@ import * as cjsi from "inner/cjs/index.cjs"; >cjsi : typeof cjsi import * as mjsi from "inner/mjs/index.mjs"; ->mjsi : typeof cjsi.mjs +>mjsi : typeof cjsi.cjs.mjs import * as typei from "inner/js/index.js"; ->typei : typeof cjsi.mjs.type +>typei : typeof typei cjsi; >cjsi : typeof cjsi mjsi; ->mjsi : typeof cjsi.mjs +>mjsi : typeof cjsi.cjs.mjs typei; ->typei : typeof cjsi.mjs.type +>typei : typeof typei === tests/cases/conformance/node/index.cts === // cjs format file @@ -47,7 +47,7 @@ import * as mjsi from "inner/mjs/index.mjs"; >mjsi : typeof cjsi.mjs import * as typei from "inner/js/index.js"; ->typei : typeof cjsi.mjs.type +>typei : typeof cjsi.mjs.cjs.type cjsi; >cjsi : typeof cjsi @@ -56,7 +56,7 @@ mjsi; >mjsi : typeof cjsi.mjs typei; ->typei : typeof cjsi.mjs.type +>typei : typeof cjsi.mjs.cjs.type === tests/cases/conformance/node/node_modules/inner/index.d.ts === // cjs format file @@ -67,7 +67,7 @@ import * as mjs from "inner/mjs/index.mjs"; >mjs : typeof mjs import * as type from "inner/js/index.js"; ->type : typeof mjs.cjs.type +>type : typeof mjs.cjs.cjs.type export { cjs }; >cjs : any @@ -76,7 +76,7 @@ export { mjs }; >mjs : typeof mjs export { type }; ->type : typeof mjs.cjs.type +>type : typeof mjs.cjs.cjs.type === tests/cases/conformance/node/node_modules/inner/index.d.mts === // esm format file @@ -84,19 +84,19 @@ import * as cjs from "inner/cjs/index.cjs"; >cjs : typeof cjs import * as mjs from "inner/mjs/index.mjs"; ->mjs : typeof cjs.mjs +>mjs : typeof cjs.cjs.mjs import * as type from "inner/js/index.js"; ->type : typeof cjs.mjs.type +>type : typeof cjs.cjs.mjs.type export { cjs }; >cjs : typeof cjs export { mjs }; ->mjs : typeof cjs.mjs +>mjs : typeof cjs.cjs.mjs export { type }; ->type : typeof cjs.mjs.type +>type : typeof cjs.cjs.mjs.type === tests/cases/conformance/node/node_modules/inner/index.d.cts === // cjs format file @@ -107,7 +107,7 @@ import * as mjs from "inner/mjs/index.mjs"; >mjs : typeof cjs.mjs import * as type from "inner/js/index.js"; ->type : typeof cjs.mjs.type +>type : typeof cjs.mjs.cjs.type export { cjs }; >cjs : typeof cjs @@ -116,5 +116,5 @@ export { mjs }; >mjs : typeof cjs.mjs export { type }; ->type : typeof cjs.mjs.type +>type : typeof cjs.mjs.cjs.type diff --git a/tests/baselines/reference/nodeModulesResolveJsonModule(module=node12).errors.txt b/tests/baselines/reference/nodeModulesResolveJsonModule(module=node12).errors.txt new file mode 100644 index 0000000000000..4200a11e7baf9 --- /dev/null +++ b/tests/baselines/reference/nodeModulesResolveJsonModule(module=node12).errors.txt @@ -0,0 +1,39 @@ +tests/cases/conformance/node/index.mts(1,17): error TS7062: JSON imports are experimental in ES module mode imports. +tests/cases/conformance/node/index.mts(3,21): error TS7062: JSON imports are experimental in ES module mode imports. +tests/cases/conformance/node/index.ts(1,17): error TS7062: JSON imports are experimental in ES module mode imports. +tests/cases/conformance/node/index.ts(3,21): error TS7062: JSON imports are experimental in ES module mode imports. + + +==== tests/cases/conformance/node/index.ts (2 errors) ==== + import pkg from "./package.json" + ~~~~~~~~~~~~~~~~ +!!! error TS7062: JSON imports are experimental in ES module mode imports. + export const name = pkg.name; + import * as ns from "./package.json"; + ~~~~~~~~~~~~~~~~ +!!! error TS7062: JSON imports are experimental in ES module mode imports. + export const thing = ns; + export const name2 = ns.default.name; +==== tests/cases/conformance/node/index.cts (0 errors) ==== + import pkg from "./package.json" + export const name = pkg.name; + import * as ns from "./package.json"; + export const thing = ns; + export const name2 = ns.default.name; +==== tests/cases/conformance/node/index.mts (2 errors) ==== + import pkg from "./package.json" + ~~~~~~~~~~~~~~~~ +!!! error TS7062: JSON imports are experimental in ES module mode imports. + export const name = pkg.name; + import * as ns from "./package.json"; + ~~~~~~~~~~~~~~~~ +!!! error TS7062: JSON imports are experimental in ES module mode imports. + export const thing = ns; + export const name2 = ns.default.name; +==== tests/cases/conformance/node/package.json (0 errors) ==== + { + "name": "pkg", + "version": "0.0.1", + "type": "module", + "default": "misedirection" + } \ No newline at end of file diff --git a/tests/baselines/reference/nodeModulesResolveJsonModule(module=node12).js b/tests/baselines/reference/nodeModulesResolveJsonModule(module=node12).js new file mode 100644 index 0000000000000..c349cb78a0ffb --- /dev/null +++ b/tests/baselines/reference/nodeModulesResolveJsonModule(module=node12).js @@ -0,0 +1,120 @@ +//// [tests/cases/conformance/node/nodeModulesResolveJsonModule.ts] //// + +//// [index.ts] +import pkg from "./package.json" +export const name = pkg.name; +import * as ns from "./package.json"; +export const thing = ns; +export const name2 = ns.default.name; +//// [index.cts] +import pkg from "./package.json" +export const name = pkg.name; +import * as ns from "./package.json"; +export const thing = ns; +export const name2 = ns.default.name; +//// [index.mts] +import pkg from "./package.json" +export const name = pkg.name; +import * as ns from "./package.json"; +export const thing = ns; +export const name2 = ns.default.name; +//// [package.json] +{ + "name": "pkg", + "version": "0.0.1", + "type": "module", + "default": "misedirection" +} + +//// [package.json] +{ + "name": "pkg", + "version": "0.0.1", + "type": "module", + "default": "misedirection" +} +//// [index.js] +import pkg from "./package.json"; +export const name = pkg.name; +import * as ns from "./package.json"; +export const thing = ns; +export const name2 = ns.default.name; +//// [index.cjs] +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.name2 = exports.thing = exports.name = void 0; +const package_json_1 = __importDefault(require("./package.json")); +exports.name = package_json_1.default.name; +const ns = __importStar(require("./package.json")); +exports.thing = ns; +exports.name2 = ns.default.name; +//// [index.mjs] +import pkg from "./package.json"; +export const name = pkg.name; +import * as ns from "./package.json"; +export const thing = ns; +export const name2 = ns.default.name; + + +//// [index.d.ts] +export declare const name: string; +export declare const thing: { + default: { + name: string; + version: string; + type: string; + default: string; + }; +}; +export declare const name2: string; +//// [index.d.cts] +export declare const name: string; +export declare const thing: { + default: { + name: string; + version: string; + type: string; + default: string; + }; + name: string; + version: string; + type: string; +}; +export declare const name2: string; +//// [index.d.mts] +export declare const name: string; +export declare const thing: { + default: { + name: string; + version: string; + type: string; + default: string; + }; +}; +export declare const name2: string; diff --git a/tests/baselines/reference/nodeModulesResolveJsonModule(module=node12).symbols b/tests/baselines/reference/nodeModulesResolveJsonModule(module=node12).symbols new file mode 100644 index 0000000000000..f1927c6899605 --- /dev/null +++ b/tests/baselines/reference/nodeModulesResolveJsonModule(module=node12).symbols @@ -0,0 +1,89 @@ +=== tests/cases/conformance/node/index.ts === +import pkg from "./package.json" +>pkg : Symbol(pkg, Decl(index.ts, 0, 6)) + +export const name = pkg.name; +>name : Symbol(name, Decl(index.ts, 1, 12)) +>pkg.name : Symbol("name", Decl(package.json, 0, 1)) +>pkg : Symbol(pkg, Decl(index.ts, 0, 6)) +>name : Symbol("name", Decl(package.json, 0, 1)) + +import * as ns from "./package.json"; +>ns : Symbol(ns, Decl(index.ts, 2, 6)) + +export const thing = ns; +>thing : Symbol(thing, Decl(index.ts, 3, 12)) +>ns : Symbol(ns, Decl(index.ts, 2, 6)) + +export const name2 = ns.default.name; +>name2 : Symbol(name2, Decl(index.ts, 4, 12)) +>ns.default.name : Symbol("name", Decl(package.json, 0, 1)) +>ns.default : Symbol("tests/cases/conformance/node/package") +>ns : Symbol(ns, Decl(index.ts, 2, 6)) +>default : Symbol("tests/cases/conformance/node/package") +>name : Symbol("name", Decl(package.json, 0, 1)) + +=== tests/cases/conformance/node/index.cts === +import pkg from "./package.json" +>pkg : Symbol(pkg, Decl(index.cts, 0, 6)) + +export const name = pkg.name; +>name : Symbol(name, Decl(index.cts, 1, 12)) +>pkg.name : Symbol("name", Decl(package.json, 0, 1)) +>pkg : Symbol(pkg, Decl(index.cts, 0, 6)) +>name : Symbol("name", Decl(package.json, 0, 1)) + +import * as ns from "./package.json"; +>ns : Symbol(ns, Decl(index.cts, 2, 6)) + +export const thing = ns; +>thing : Symbol(thing, Decl(index.cts, 3, 12)) +>ns : Symbol(ns, Decl(index.cts, 2, 6)) + +export const name2 = ns.default.name; +>name2 : Symbol(name2, Decl(index.cts, 4, 12)) +>ns.default.name : Symbol("name", Decl(package.json, 0, 1)) +>ns.default : Symbol("tests/cases/conformance/node/package") +>ns : Symbol(ns, Decl(index.cts, 2, 6)) +>default : Symbol("tests/cases/conformance/node/package") +>name : Symbol("name", Decl(package.json, 0, 1)) + +=== tests/cases/conformance/node/index.mts === +import pkg from "./package.json" +>pkg : Symbol(pkg, Decl(index.mts, 0, 6)) + +export const name = pkg.name; +>name : Symbol(name, Decl(index.mts, 1, 12)) +>pkg.name : Symbol("name", Decl(package.json, 0, 1)) +>pkg : Symbol(pkg, Decl(index.mts, 0, 6)) +>name : Symbol("name", Decl(package.json, 0, 1)) + +import * as ns from "./package.json"; +>ns : Symbol(ns, Decl(index.mts, 2, 6)) + +export const thing = ns; +>thing : Symbol(thing, Decl(index.mts, 3, 12)) +>ns : Symbol(ns, Decl(index.mts, 2, 6)) + +export const name2 = ns.default.name; +>name2 : Symbol(name2, Decl(index.mts, 4, 12)) +>ns.default.name : Symbol("name", Decl(package.json, 0, 1)) +>ns.default : Symbol("tests/cases/conformance/node/package") +>ns : Symbol(ns, Decl(index.mts, 2, 6)) +>default : Symbol("tests/cases/conformance/node/package") +>name : Symbol("name", Decl(package.json, 0, 1)) + +=== tests/cases/conformance/node/package.json === +{ + "name": "pkg", +>"name" : Symbol("name", Decl(package.json, 0, 1)) + + "version": "0.0.1", +>"version" : Symbol("version", Decl(package.json, 1, 18)) + + "type": "module", +>"type" : Symbol("type", Decl(package.json, 2, 23)) + + "default": "misedirection" +>"default" : Symbol("default", Decl(package.json, 3, 21)) +} diff --git a/tests/baselines/reference/nodeModulesResolveJsonModule(module=node12).types b/tests/baselines/reference/nodeModulesResolveJsonModule(module=node12).types new file mode 100644 index 0000000000000..f6ad83e175444 --- /dev/null +++ b/tests/baselines/reference/nodeModulesResolveJsonModule(module=node12).types @@ -0,0 +1,95 @@ +=== tests/cases/conformance/node/index.ts === +import pkg from "./package.json" +>pkg : { name: string; version: string; type: string; default: string; } + +export const name = pkg.name; +>name : string +>pkg.name : string +>pkg : { name: string; version: string; type: string; default: string; } +>name : string + +import * as ns from "./package.json"; +>ns : { default: { name: string; version: string; type: string; default: string; }; } + +export const thing = ns; +>thing : { default: { name: string; version: string; type: string; default: string; }; } +>ns : { default: { name: string; version: string; type: string; default: string; }; } + +export const name2 = ns.default.name; +>name2 : string +>ns.default.name : string +>ns.default : { name: string; version: string; type: string; default: string; } +>ns : { default: { name: string; version: string; type: string; default: string; }; } +>default : { name: string; version: string; type: string; default: string; } +>name : string + +=== tests/cases/conformance/node/index.cts === +import pkg from "./package.json" +>pkg : { name: string; version: string; type: string; default: string; } + +export const name = pkg.name; +>name : string +>pkg.name : string +>pkg : { name: string; version: string; type: string; default: string; } +>name : string + +import * as ns from "./package.json"; +>ns : { default: { name: string; version: string; type: string; default: string; }; name: string; version: string; type: string; } + +export const thing = ns; +>thing : { default: { name: string; version: string; type: string; default: string; }; name: string; version: string; type: string; } +>ns : { default: { name: string; version: string; type: string; default: string; }; name: string; version: string; type: string; } + +export const name2 = ns.default.name; +>name2 : string +>ns.default.name : string +>ns.default : { name: string; version: string; type: string; default: string; } +>ns : { default: { name: string; version: string; type: string; default: string; }; name: string; version: string; type: string; } +>default : { name: string; version: string; type: string; default: string; } +>name : string + +=== tests/cases/conformance/node/index.mts === +import pkg from "./package.json" +>pkg : { name: string; version: string; type: string; default: string; } + +export const name = pkg.name; +>name : string +>pkg.name : string +>pkg : { name: string; version: string; type: string; default: string; } +>name : string + +import * as ns from "./package.json"; +>ns : { default: { name: string; version: string; type: string; default: string; }; } + +export const thing = ns; +>thing : { default: { name: string; version: string; type: string; default: string; }; } +>ns : { default: { name: string; version: string; type: string; default: string; }; } + +export const name2 = ns.default.name; +>name2 : string +>ns.default.name : string +>ns.default : { name: string; version: string; type: string; default: string; } +>ns : { default: { name: string; version: string; type: string; default: string; }; } +>default : { name: string; version: string; type: string; default: string; } +>name : string + +=== tests/cases/conformance/node/package.json === +{ +>{ "name": "pkg", "version": "0.0.1", "type": "module", "default": "misedirection"} : { name: string; version: string; type: string; default: string; } + + "name": "pkg", +>"name" : string +>"pkg" : "pkg" + + "version": "0.0.1", +>"version" : string +>"0.0.1" : "0.0.1" + + "type": "module", +>"type" : string +>"module" : "module" + + "default": "misedirection" +>"default" : string +>"misedirection" : "misedirection" +} diff --git a/tests/baselines/reference/nodeModulesResolveJsonModule(module=nodenext).errors.txt b/tests/baselines/reference/nodeModulesResolveJsonModule(module=nodenext).errors.txt new file mode 100644 index 0000000000000..4200a11e7baf9 --- /dev/null +++ b/tests/baselines/reference/nodeModulesResolveJsonModule(module=nodenext).errors.txt @@ -0,0 +1,39 @@ +tests/cases/conformance/node/index.mts(1,17): error TS7062: JSON imports are experimental in ES module mode imports. +tests/cases/conformance/node/index.mts(3,21): error TS7062: JSON imports are experimental in ES module mode imports. +tests/cases/conformance/node/index.ts(1,17): error TS7062: JSON imports are experimental in ES module mode imports. +tests/cases/conformance/node/index.ts(3,21): error TS7062: JSON imports are experimental in ES module mode imports. + + +==== tests/cases/conformance/node/index.ts (2 errors) ==== + import pkg from "./package.json" + ~~~~~~~~~~~~~~~~ +!!! error TS7062: JSON imports are experimental in ES module mode imports. + export const name = pkg.name; + import * as ns from "./package.json"; + ~~~~~~~~~~~~~~~~ +!!! error TS7062: JSON imports are experimental in ES module mode imports. + export const thing = ns; + export const name2 = ns.default.name; +==== tests/cases/conformance/node/index.cts (0 errors) ==== + import pkg from "./package.json" + export const name = pkg.name; + import * as ns from "./package.json"; + export const thing = ns; + export const name2 = ns.default.name; +==== tests/cases/conformance/node/index.mts (2 errors) ==== + import pkg from "./package.json" + ~~~~~~~~~~~~~~~~ +!!! error TS7062: JSON imports are experimental in ES module mode imports. + export const name = pkg.name; + import * as ns from "./package.json"; + ~~~~~~~~~~~~~~~~ +!!! error TS7062: JSON imports are experimental in ES module mode imports. + export const thing = ns; + export const name2 = ns.default.name; +==== tests/cases/conformance/node/package.json (0 errors) ==== + { + "name": "pkg", + "version": "0.0.1", + "type": "module", + "default": "misedirection" + } \ No newline at end of file diff --git a/tests/baselines/reference/nodeModulesResolveJsonModule(module=nodenext).js b/tests/baselines/reference/nodeModulesResolveJsonModule(module=nodenext).js new file mode 100644 index 0000000000000..c349cb78a0ffb --- /dev/null +++ b/tests/baselines/reference/nodeModulesResolveJsonModule(module=nodenext).js @@ -0,0 +1,120 @@ +//// [tests/cases/conformance/node/nodeModulesResolveJsonModule.ts] //// + +//// [index.ts] +import pkg from "./package.json" +export const name = pkg.name; +import * as ns from "./package.json"; +export const thing = ns; +export const name2 = ns.default.name; +//// [index.cts] +import pkg from "./package.json" +export const name = pkg.name; +import * as ns from "./package.json"; +export const thing = ns; +export const name2 = ns.default.name; +//// [index.mts] +import pkg from "./package.json" +export const name = pkg.name; +import * as ns from "./package.json"; +export const thing = ns; +export const name2 = ns.default.name; +//// [package.json] +{ + "name": "pkg", + "version": "0.0.1", + "type": "module", + "default": "misedirection" +} + +//// [package.json] +{ + "name": "pkg", + "version": "0.0.1", + "type": "module", + "default": "misedirection" +} +//// [index.js] +import pkg from "./package.json"; +export const name = pkg.name; +import * as ns from "./package.json"; +export const thing = ns; +export const name2 = ns.default.name; +//// [index.cjs] +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.name2 = exports.thing = exports.name = void 0; +const package_json_1 = __importDefault(require("./package.json")); +exports.name = package_json_1.default.name; +const ns = __importStar(require("./package.json")); +exports.thing = ns; +exports.name2 = ns.default.name; +//// [index.mjs] +import pkg from "./package.json"; +export const name = pkg.name; +import * as ns from "./package.json"; +export const thing = ns; +export const name2 = ns.default.name; + + +//// [index.d.ts] +export declare const name: string; +export declare const thing: { + default: { + name: string; + version: string; + type: string; + default: string; + }; +}; +export declare const name2: string; +//// [index.d.cts] +export declare const name: string; +export declare const thing: { + default: { + name: string; + version: string; + type: string; + default: string; + }; + name: string; + version: string; + type: string; +}; +export declare const name2: string; +//// [index.d.mts] +export declare const name: string; +export declare const thing: { + default: { + name: string; + version: string; + type: string; + default: string; + }; +}; +export declare const name2: string; diff --git a/tests/baselines/reference/nodeModulesResolveJsonModule(module=nodenext).symbols b/tests/baselines/reference/nodeModulesResolveJsonModule(module=nodenext).symbols new file mode 100644 index 0000000000000..f1927c6899605 --- /dev/null +++ b/tests/baselines/reference/nodeModulesResolveJsonModule(module=nodenext).symbols @@ -0,0 +1,89 @@ +=== tests/cases/conformance/node/index.ts === +import pkg from "./package.json" +>pkg : Symbol(pkg, Decl(index.ts, 0, 6)) + +export const name = pkg.name; +>name : Symbol(name, Decl(index.ts, 1, 12)) +>pkg.name : Symbol("name", Decl(package.json, 0, 1)) +>pkg : Symbol(pkg, Decl(index.ts, 0, 6)) +>name : Symbol("name", Decl(package.json, 0, 1)) + +import * as ns from "./package.json"; +>ns : Symbol(ns, Decl(index.ts, 2, 6)) + +export const thing = ns; +>thing : Symbol(thing, Decl(index.ts, 3, 12)) +>ns : Symbol(ns, Decl(index.ts, 2, 6)) + +export const name2 = ns.default.name; +>name2 : Symbol(name2, Decl(index.ts, 4, 12)) +>ns.default.name : Symbol("name", Decl(package.json, 0, 1)) +>ns.default : Symbol("tests/cases/conformance/node/package") +>ns : Symbol(ns, Decl(index.ts, 2, 6)) +>default : Symbol("tests/cases/conformance/node/package") +>name : Symbol("name", Decl(package.json, 0, 1)) + +=== tests/cases/conformance/node/index.cts === +import pkg from "./package.json" +>pkg : Symbol(pkg, Decl(index.cts, 0, 6)) + +export const name = pkg.name; +>name : Symbol(name, Decl(index.cts, 1, 12)) +>pkg.name : Symbol("name", Decl(package.json, 0, 1)) +>pkg : Symbol(pkg, Decl(index.cts, 0, 6)) +>name : Symbol("name", Decl(package.json, 0, 1)) + +import * as ns from "./package.json"; +>ns : Symbol(ns, Decl(index.cts, 2, 6)) + +export const thing = ns; +>thing : Symbol(thing, Decl(index.cts, 3, 12)) +>ns : Symbol(ns, Decl(index.cts, 2, 6)) + +export const name2 = ns.default.name; +>name2 : Symbol(name2, Decl(index.cts, 4, 12)) +>ns.default.name : Symbol("name", Decl(package.json, 0, 1)) +>ns.default : Symbol("tests/cases/conformance/node/package") +>ns : Symbol(ns, Decl(index.cts, 2, 6)) +>default : Symbol("tests/cases/conformance/node/package") +>name : Symbol("name", Decl(package.json, 0, 1)) + +=== tests/cases/conformance/node/index.mts === +import pkg from "./package.json" +>pkg : Symbol(pkg, Decl(index.mts, 0, 6)) + +export const name = pkg.name; +>name : Symbol(name, Decl(index.mts, 1, 12)) +>pkg.name : Symbol("name", Decl(package.json, 0, 1)) +>pkg : Symbol(pkg, Decl(index.mts, 0, 6)) +>name : Symbol("name", Decl(package.json, 0, 1)) + +import * as ns from "./package.json"; +>ns : Symbol(ns, Decl(index.mts, 2, 6)) + +export const thing = ns; +>thing : Symbol(thing, Decl(index.mts, 3, 12)) +>ns : Symbol(ns, Decl(index.mts, 2, 6)) + +export const name2 = ns.default.name; +>name2 : Symbol(name2, Decl(index.mts, 4, 12)) +>ns.default.name : Symbol("name", Decl(package.json, 0, 1)) +>ns.default : Symbol("tests/cases/conformance/node/package") +>ns : Symbol(ns, Decl(index.mts, 2, 6)) +>default : Symbol("tests/cases/conformance/node/package") +>name : Symbol("name", Decl(package.json, 0, 1)) + +=== tests/cases/conformance/node/package.json === +{ + "name": "pkg", +>"name" : Symbol("name", Decl(package.json, 0, 1)) + + "version": "0.0.1", +>"version" : Symbol("version", Decl(package.json, 1, 18)) + + "type": "module", +>"type" : Symbol("type", Decl(package.json, 2, 23)) + + "default": "misedirection" +>"default" : Symbol("default", Decl(package.json, 3, 21)) +} diff --git a/tests/baselines/reference/nodeModulesResolveJsonModule(module=nodenext).types b/tests/baselines/reference/nodeModulesResolveJsonModule(module=nodenext).types new file mode 100644 index 0000000000000..f6ad83e175444 --- /dev/null +++ b/tests/baselines/reference/nodeModulesResolveJsonModule(module=nodenext).types @@ -0,0 +1,95 @@ +=== tests/cases/conformance/node/index.ts === +import pkg from "./package.json" +>pkg : { name: string; version: string; type: string; default: string; } + +export const name = pkg.name; +>name : string +>pkg.name : string +>pkg : { name: string; version: string; type: string; default: string; } +>name : string + +import * as ns from "./package.json"; +>ns : { default: { name: string; version: string; type: string; default: string; }; } + +export const thing = ns; +>thing : { default: { name: string; version: string; type: string; default: string; }; } +>ns : { default: { name: string; version: string; type: string; default: string; }; } + +export const name2 = ns.default.name; +>name2 : string +>ns.default.name : string +>ns.default : { name: string; version: string; type: string; default: string; } +>ns : { default: { name: string; version: string; type: string; default: string; }; } +>default : { name: string; version: string; type: string; default: string; } +>name : string + +=== tests/cases/conformance/node/index.cts === +import pkg from "./package.json" +>pkg : { name: string; version: string; type: string; default: string; } + +export const name = pkg.name; +>name : string +>pkg.name : string +>pkg : { name: string; version: string; type: string; default: string; } +>name : string + +import * as ns from "./package.json"; +>ns : { default: { name: string; version: string; type: string; default: string; }; name: string; version: string; type: string; } + +export const thing = ns; +>thing : { default: { name: string; version: string; type: string; default: string; }; name: string; version: string; type: string; } +>ns : { default: { name: string; version: string; type: string; default: string; }; name: string; version: string; type: string; } + +export const name2 = ns.default.name; +>name2 : string +>ns.default.name : string +>ns.default : { name: string; version: string; type: string; default: string; } +>ns : { default: { name: string; version: string; type: string; default: string; }; name: string; version: string; type: string; } +>default : { name: string; version: string; type: string; default: string; } +>name : string + +=== tests/cases/conformance/node/index.mts === +import pkg from "./package.json" +>pkg : { name: string; version: string; type: string; default: string; } + +export const name = pkg.name; +>name : string +>pkg.name : string +>pkg : { name: string; version: string; type: string; default: string; } +>name : string + +import * as ns from "./package.json"; +>ns : { default: { name: string; version: string; type: string; default: string; }; } + +export const thing = ns; +>thing : { default: { name: string; version: string; type: string; default: string; }; } +>ns : { default: { name: string; version: string; type: string; default: string; }; } + +export const name2 = ns.default.name; +>name2 : string +>ns.default.name : string +>ns.default : { name: string; version: string; type: string; default: string; } +>ns : { default: { name: string; version: string; type: string; default: string; }; } +>default : { name: string; version: string; type: string; default: string; } +>name : string + +=== tests/cases/conformance/node/package.json === +{ +>{ "name": "pkg", "version": "0.0.1", "type": "module", "default": "misedirection"} : { name: string; version: string; type: string; default: string; } + + "name": "pkg", +>"name" : string +>"pkg" : "pkg" + + "version": "0.0.1", +>"version" : string +>"0.0.1" : "0.0.1" + + "type": "module", +>"type" : string +>"module" : "module" + + "default": "misedirection" +>"default" : string +>"misedirection" : "misedirection" +} diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit1(module=node12).js b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit1(module=node12).js new file mode 100644 index 0000000000000..422ed137b0f21 --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit1(module=node12).js @@ -0,0 +1,35 @@ +//// [tests/cases/conformance/node/nodeModulesTripleSlashReferenceModeDeclarationEmit1.ts] //// + +//// [package.json] +{ + "name": "pkg", + "version": "0.0.1", + "exports": { + "import": "./import.js", + "require": "./require.js" + } +} +//// [import.d.ts] +export {}; +declare global { + interface ImportInterface {} +} +//// [require.d.ts] +export {}; +declare global { + interface RequireInterface {} +} +//// [index.ts] +/// +export interface LocalInterface extends RequireInterface {} + +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +/// + + +//// [index.d.ts] +/// +export interface LocalInterface extends RequireInterface { +} diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit1(module=node12).symbols b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit1(module=node12).symbols new file mode 100644 index 0000000000000..b3bd9d822f318 --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit1(module=node12).symbols @@ -0,0 +1,14 @@ +=== /index.ts === +/// +export interface LocalInterface extends RequireInterface {} +>LocalInterface : Symbol(LocalInterface, Decl(index.ts, 0, 0)) +>RequireInterface : Symbol(RequireInterface, Decl(require.d.ts, 1, 16)) + +=== /node_modules/pkg/require.d.ts === +export {}; +declare global { +>global : Symbol(global, Decl(require.d.ts, 0, 10)) + + interface RequireInterface {} +>RequireInterface : Symbol(RequireInterface, Decl(require.d.ts, 1, 16)) +} diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit1(module=node12).types b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit1(module=node12).types new file mode 100644 index 0000000000000..5309ca6f8bc1b --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit1(module=node12).types @@ -0,0 +1,10 @@ +=== /index.ts === +/// +No type information for this code.export interface LocalInterface extends RequireInterface {} +No type information for this code.=== /node_modules/pkg/require.d.ts === +export {}; +declare global { +>global : any + + interface RequireInterface {} +} diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit1(module=nodenext).js b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit1(module=nodenext).js new file mode 100644 index 0000000000000..422ed137b0f21 --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit1(module=nodenext).js @@ -0,0 +1,35 @@ +//// [tests/cases/conformance/node/nodeModulesTripleSlashReferenceModeDeclarationEmit1.ts] //// + +//// [package.json] +{ + "name": "pkg", + "version": "0.0.1", + "exports": { + "import": "./import.js", + "require": "./require.js" + } +} +//// [import.d.ts] +export {}; +declare global { + interface ImportInterface {} +} +//// [require.d.ts] +export {}; +declare global { + interface RequireInterface {} +} +//// [index.ts] +/// +export interface LocalInterface extends RequireInterface {} + +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +/// + + +//// [index.d.ts] +/// +export interface LocalInterface extends RequireInterface { +} diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit1(module=nodenext).symbols b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit1(module=nodenext).symbols new file mode 100644 index 0000000000000..b3bd9d822f318 --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit1(module=nodenext).symbols @@ -0,0 +1,14 @@ +=== /index.ts === +/// +export interface LocalInterface extends RequireInterface {} +>LocalInterface : Symbol(LocalInterface, Decl(index.ts, 0, 0)) +>RequireInterface : Symbol(RequireInterface, Decl(require.d.ts, 1, 16)) + +=== /node_modules/pkg/require.d.ts === +export {}; +declare global { +>global : Symbol(global, Decl(require.d.ts, 0, 10)) + + interface RequireInterface {} +>RequireInterface : Symbol(RequireInterface, Decl(require.d.ts, 1, 16)) +} diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit1(module=nodenext).types b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit1(module=nodenext).types new file mode 100644 index 0000000000000..5309ca6f8bc1b --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit1(module=nodenext).types @@ -0,0 +1,10 @@ +=== /index.ts === +/// +No type information for this code.export interface LocalInterface extends RequireInterface {} +No type information for this code.=== /node_modules/pkg/require.d.ts === +export {}; +declare global { +>global : any + + interface RequireInterface {} +} diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit2(module=node12).js b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit2(module=node12).js new file mode 100644 index 0000000000000..19f87244dba60 --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit2(module=node12).js @@ -0,0 +1,39 @@ +//// [tests/cases/conformance/node/nodeModulesTripleSlashReferenceModeDeclarationEmit2.ts] //// + +//// [package.json] +{ + "name": "pkg", + "version": "0.0.1", + "exports": { + "import": "./import.js", + "require": "./require.js" + } +} +//// [import.d.ts] +export {}; +declare global { + interface ImportInterface {} +} +//// [require.d.ts] +export {}; +declare global { + interface RequireInterface {} +} +//// [package.json] +{ + "private": true, + "type": "module" +} +//// [index.ts] +/// +export interface LocalInterface extends ImportInterface {} + +//// [index.js] +/// +export {}; + + +//// [index.d.ts] +/// +export interface LocalInterface extends ImportInterface { +} diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit2(module=node12).symbols b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit2(module=node12).symbols new file mode 100644 index 0000000000000..e21bf15306650 --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit2(module=node12).symbols @@ -0,0 +1,14 @@ +=== /index.ts === +/// +export interface LocalInterface extends ImportInterface {} +>LocalInterface : Symbol(LocalInterface, Decl(index.ts, 0, 0)) +>ImportInterface : Symbol(ImportInterface, Decl(import.d.ts, 1, 16)) + +=== /node_modules/pkg/import.d.ts === +export {}; +declare global { +>global : Symbol(global, Decl(import.d.ts, 0, 10)) + + interface ImportInterface {} +>ImportInterface : Symbol(ImportInterface, Decl(import.d.ts, 1, 16)) +} diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit2(module=node12).types b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit2(module=node12).types new file mode 100644 index 0000000000000..e6e97a84b46c7 --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit2(module=node12).types @@ -0,0 +1,10 @@ +=== /index.ts === +/// +No type information for this code.export interface LocalInterface extends ImportInterface {} +No type information for this code.=== /node_modules/pkg/import.d.ts === +export {}; +declare global { +>global : any + + interface ImportInterface {} +} diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit2(module=nodenext).js b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit2(module=nodenext).js new file mode 100644 index 0000000000000..19f87244dba60 --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit2(module=nodenext).js @@ -0,0 +1,39 @@ +//// [tests/cases/conformance/node/nodeModulesTripleSlashReferenceModeDeclarationEmit2.ts] //// + +//// [package.json] +{ + "name": "pkg", + "version": "0.0.1", + "exports": { + "import": "./import.js", + "require": "./require.js" + } +} +//// [import.d.ts] +export {}; +declare global { + interface ImportInterface {} +} +//// [require.d.ts] +export {}; +declare global { + interface RequireInterface {} +} +//// [package.json] +{ + "private": true, + "type": "module" +} +//// [index.ts] +/// +export interface LocalInterface extends ImportInterface {} + +//// [index.js] +/// +export {}; + + +//// [index.d.ts] +/// +export interface LocalInterface extends ImportInterface { +} diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit2(module=nodenext).symbols b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit2(module=nodenext).symbols new file mode 100644 index 0000000000000..e21bf15306650 --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit2(module=nodenext).symbols @@ -0,0 +1,14 @@ +=== /index.ts === +/// +export interface LocalInterface extends ImportInterface {} +>LocalInterface : Symbol(LocalInterface, Decl(index.ts, 0, 0)) +>ImportInterface : Symbol(ImportInterface, Decl(import.d.ts, 1, 16)) + +=== /node_modules/pkg/import.d.ts === +export {}; +declare global { +>global : Symbol(global, Decl(import.d.ts, 0, 10)) + + interface ImportInterface {} +>ImportInterface : Symbol(ImportInterface, Decl(import.d.ts, 1, 16)) +} diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit2(module=nodenext).types b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit2(module=nodenext).types new file mode 100644 index 0000000000000..e6e97a84b46c7 --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit2(module=nodenext).types @@ -0,0 +1,10 @@ +=== /index.ts === +/// +No type information for this code.export interface LocalInterface extends ImportInterface {} +No type information for this code.=== /node_modules/pkg/import.d.ts === +export {}; +declare global { +>global : any + + interface ImportInterface {} +} diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit3(module=node12).js b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit3(module=node12).js new file mode 100644 index 0000000000000..78d1f72c4b1dc --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit3(module=node12).js @@ -0,0 +1,39 @@ +//// [tests/cases/conformance/node/nodeModulesTripleSlashReferenceModeDeclarationEmit3.ts] //// + +//// [package.json] +{ + "name": "pkg", + "version": "0.0.1", + "exports": { + "import": "./import.js", + "require": "./require.js" + } +} +//// [import.d.ts] +export {}; +declare global { + interface ImportInterface {} +} +//// [require.d.ts] +export {}; +declare global { + interface RequireInterface {} +} +//// [package.json] +{ + "private": true, + "type": "module" +} +//// [index.ts] +/// +export interface LocalInterface extends RequireInterface {} + +//// [index.js] +/// +export {}; + + +//// [index.d.ts] +/// +export interface LocalInterface extends RequireInterface { +} diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit3(module=node12).symbols b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit3(module=node12).symbols new file mode 100644 index 0000000000000..da1b6a81fbbf7 --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit3(module=node12).symbols @@ -0,0 +1,14 @@ +=== /index.ts === +/// +export interface LocalInterface extends RequireInterface {} +>LocalInterface : Symbol(LocalInterface, Decl(index.ts, 0, 0)) +>RequireInterface : Symbol(RequireInterface, Decl(require.d.ts, 1, 16)) + +=== /node_modules/pkg/require.d.ts === +export {}; +declare global { +>global : Symbol(global, Decl(require.d.ts, 0, 10)) + + interface RequireInterface {} +>RequireInterface : Symbol(RequireInterface, Decl(require.d.ts, 1, 16)) +} diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit3(module=node12).types b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit3(module=node12).types new file mode 100644 index 0000000000000..abc205f874244 --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit3(module=node12).types @@ -0,0 +1,10 @@ +=== /index.ts === +/// +No type information for this code.export interface LocalInterface extends RequireInterface {} +No type information for this code.=== /node_modules/pkg/require.d.ts === +export {}; +declare global { +>global : any + + interface RequireInterface {} +} diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit3(module=nodenext).js b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit3(module=nodenext).js new file mode 100644 index 0000000000000..78d1f72c4b1dc --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit3(module=nodenext).js @@ -0,0 +1,39 @@ +//// [tests/cases/conformance/node/nodeModulesTripleSlashReferenceModeDeclarationEmit3.ts] //// + +//// [package.json] +{ + "name": "pkg", + "version": "0.0.1", + "exports": { + "import": "./import.js", + "require": "./require.js" + } +} +//// [import.d.ts] +export {}; +declare global { + interface ImportInterface {} +} +//// [require.d.ts] +export {}; +declare global { + interface RequireInterface {} +} +//// [package.json] +{ + "private": true, + "type": "module" +} +//// [index.ts] +/// +export interface LocalInterface extends RequireInterface {} + +//// [index.js] +/// +export {}; + + +//// [index.d.ts] +/// +export interface LocalInterface extends RequireInterface { +} diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit3(module=nodenext).symbols b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit3(module=nodenext).symbols new file mode 100644 index 0000000000000..da1b6a81fbbf7 --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit3(module=nodenext).symbols @@ -0,0 +1,14 @@ +=== /index.ts === +/// +export interface LocalInterface extends RequireInterface {} +>LocalInterface : Symbol(LocalInterface, Decl(index.ts, 0, 0)) +>RequireInterface : Symbol(RequireInterface, Decl(require.d.ts, 1, 16)) + +=== /node_modules/pkg/require.d.ts === +export {}; +declare global { +>global : Symbol(global, Decl(require.d.ts, 0, 10)) + + interface RequireInterface {} +>RequireInterface : Symbol(RequireInterface, Decl(require.d.ts, 1, 16)) +} diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit3(module=nodenext).types b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit3(module=nodenext).types new file mode 100644 index 0000000000000..abc205f874244 --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit3(module=nodenext).types @@ -0,0 +1,10 @@ +=== /index.ts === +/// +No type information for this code.export interface LocalInterface extends RequireInterface {} +No type information for this code.=== /node_modules/pkg/require.d.ts === +export {}; +declare global { +>global : any + + interface RequireInterface {} +} diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit4(module=node12).js b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit4(module=node12).js new file mode 100644 index 0000000000000..9f2493f030a52 --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit4(module=node12).js @@ -0,0 +1,35 @@ +//// [tests/cases/conformance/node/nodeModulesTripleSlashReferenceModeDeclarationEmit4.ts] //// + +//// [package.json] +{ + "name": "pkg", + "version": "0.0.1", + "exports": { + "import": "./import.js", + "require": "./require.js" + } +} +//// [import.d.ts] +export {}; +declare global { + interface ImportInterface {} +} +//// [require.d.ts] +export {}; +declare global { + interface RequireInterface {} +} +//// [index.ts] +/// +export interface LocalInterface extends ImportInterface {} + +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +/// + + +//// [index.d.ts] +/// +export interface LocalInterface extends ImportInterface { +} diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit4(module=node12).symbols b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit4(module=node12).symbols new file mode 100644 index 0000000000000..dcaf8d70169c9 --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit4(module=node12).symbols @@ -0,0 +1,14 @@ +=== /index.ts === +/// +export interface LocalInterface extends ImportInterface {} +>LocalInterface : Symbol(LocalInterface, Decl(index.ts, 0, 0)) +>ImportInterface : Symbol(ImportInterface, Decl(import.d.ts, 1, 16)) + +=== /node_modules/pkg/import.d.ts === +export {}; +declare global { +>global : Symbol(global, Decl(import.d.ts, 0, 10)) + + interface ImportInterface {} +>ImportInterface : Symbol(ImportInterface, Decl(import.d.ts, 1, 16)) +} diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit4(module=node12).types b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit4(module=node12).types new file mode 100644 index 0000000000000..62e354e99b15a --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit4(module=node12).types @@ -0,0 +1,10 @@ +=== /index.ts === +/// +No type information for this code.export interface LocalInterface extends ImportInterface {} +No type information for this code.=== /node_modules/pkg/import.d.ts === +export {}; +declare global { +>global : any + + interface ImportInterface {} +} diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit4(module=nodenext).js b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit4(module=nodenext).js new file mode 100644 index 0000000000000..9f2493f030a52 --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit4(module=nodenext).js @@ -0,0 +1,35 @@ +//// [tests/cases/conformance/node/nodeModulesTripleSlashReferenceModeDeclarationEmit4.ts] //// + +//// [package.json] +{ + "name": "pkg", + "version": "0.0.1", + "exports": { + "import": "./import.js", + "require": "./require.js" + } +} +//// [import.d.ts] +export {}; +declare global { + interface ImportInterface {} +} +//// [require.d.ts] +export {}; +declare global { + interface RequireInterface {} +} +//// [index.ts] +/// +export interface LocalInterface extends ImportInterface {} + +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +/// + + +//// [index.d.ts] +/// +export interface LocalInterface extends ImportInterface { +} diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit4(module=nodenext).symbols b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit4(module=nodenext).symbols new file mode 100644 index 0000000000000..dcaf8d70169c9 --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit4(module=nodenext).symbols @@ -0,0 +1,14 @@ +=== /index.ts === +/// +export interface LocalInterface extends ImportInterface {} +>LocalInterface : Symbol(LocalInterface, Decl(index.ts, 0, 0)) +>ImportInterface : Symbol(ImportInterface, Decl(import.d.ts, 1, 16)) + +=== /node_modules/pkg/import.d.ts === +export {}; +declare global { +>global : Symbol(global, Decl(import.d.ts, 0, 10)) + + interface ImportInterface {} +>ImportInterface : Symbol(ImportInterface, Decl(import.d.ts, 1, 16)) +} diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit4(module=nodenext).types b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit4(module=nodenext).types new file mode 100644 index 0000000000000..62e354e99b15a --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit4(module=nodenext).types @@ -0,0 +1,10 @@ +=== /index.ts === +/// +No type information for this code.export interface LocalInterface extends ImportInterface {} +No type information for this code.=== /node_modules/pkg/import.d.ts === +export {}; +declare global { +>global : any + + interface ImportInterface {} +} diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit5(module=node12).js b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit5(module=node12).js new file mode 100644 index 0000000000000..63ad10a1141c4 --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit5(module=node12).js @@ -0,0 +1,38 @@ +//// [tests/cases/conformance/node/nodeModulesTripleSlashReferenceModeDeclarationEmit5.ts] //// + +//// [package.json] +{ + "name": "pkg", + "version": "0.0.1", + "exports": { + "import": "./import.js", + "require": "./require.js" + } +} +//// [import.d.ts] +export {}; +declare global { + interface ImportInterface {} +} +//// [require.d.ts] +export {}; +declare global { + interface RequireInterface {} +} +//// [index.ts] +/// +/// +export interface LocalInterface extends ImportInterface, RequireInterface {} + +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +/// +/// + + +//// [index.d.ts] +/// +/// +export interface LocalInterface extends ImportInterface, RequireInterface { +} diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit5(module=node12).symbols b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit5(module=node12).symbols new file mode 100644 index 0000000000000..6602737d542b2 --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit5(module=node12).symbols @@ -0,0 +1,24 @@ +=== /index.ts === +/// +/// +export interface LocalInterface extends ImportInterface, RequireInterface {} +>LocalInterface : Symbol(LocalInterface, Decl(index.ts, 0, 0)) +>ImportInterface : Symbol(ImportInterface, Decl(import.d.ts, 1, 16)) +>RequireInterface : Symbol(RequireInterface, Decl(require.d.ts, 1, 16)) + +=== /node_modules/pkg/import.d.ts === +export {}; +declare global { +>global : Symbol(global, Decl(import.d.ts, 0, 10)) + + interface ImportInterface {} +>ImportInterface : Symbol(ImportInterface, Decl(import.d.ts, 1, 16)) +} +=== /node_modules/pkg/require.d.ts === +export {}; +declare global { +>global : Symbol(global, Decl(require.d.ts, 0, 10)) + + interface RequireInterface {} +>RequireInterface : Symbol(RequireInterface, Decl(require.d.ts, 1, 16)) +} diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit5(module=node12).types b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit5(module=node12).types new file mode 100644 index 0000000000000..1e3690c89f053 --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit5(module=node12).types @@ -0,0 +1,18 @@ +=== /index.ts === +/// +No type information for this code./// +No type information for this code.export interface LocalInterface extends ImportInterface, RequireInterface {} +No type information for this code.=== /node_modules/pkg/import.d.ts === +export {}; +declare global { +>global : any + + interface ImportInterface {} +} +=== /node_modules/pkg/require.d.ts === +export {}; +declare global { +>global : any + + interface RequireInterface {} +} diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit5(module=nodenext).js b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit5(module=nodenext).js new file mode 100644 index 0000000000000..63ad10a1141c4 --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit5(module=nodenext).js @@ -0,0 +1,38 @@ +//// [tests/cases/conformance/node/nodeModulesTripleSlashReferenceModeDeclarationEmit5.ts] //// + +//// [package.json] +{ + "name": "pkg", + "version": "0.0.1", + "exports": { + "import": "./import.js", + "require": "./require.js" + } +} +//// [import.d.ts] +export {}; +declare global { + interface ImportInterface {} +} +//// [require.d.ts] +export {}; +declare global { + interface RequireInterface {} +} +//// [index.ts] +/// +/// +export interface LocalInterface extends ImportInterface, RequireInterface {} + +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +/// +/// + + +//// [index.d.ts] +/// +/// +export interface LocalInterface extends ImportInterface, RequireInterface { +} diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit5(module=nodenext).symbols b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit5(module=nodenext).symbols new file mode 100644 index 0000000000000..6602737d542b2 --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit5(module=nodenext).symbols @@ -0,0 +1,24 @@ +=== /index.ts === +/// +/// +export interface LocalInterface extends ImportInterface, RequireInterface {} +>LocalInterface : Symbol(LocalInterface, Decl(index.ts, 0, 0)) +>ImportInterface : Symbol(ImportInterface, Decl(import.d.ts, 1, 16)) +>RequireInterface : Symbol(RequireInterface, Decl(require.d.ts, 1, 16)) + +=== /node_modules/pkg/import.d.ts === +export {}; +declare global { +>global : Symbol(global, Decl(import.d.ts, 0, 10)) + + interface ImportInterface {} +>ImportInterface : Symbol(ImportInterface, Decl(import.d.ts, 1, 16)) +} +=== /node_modules/pkg/require.d.ts === +export {}; +declare global { +>global : Symbol(global, Decl(require.d.ts, 0, 10)) + + interface RequireInterface {} +>RequireInterface : Symbol(RequireInterface, Decl(require.d.ts, 1, 16)) +} diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit5(module=nodenext).types b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit5(module=nodenext).types new file mode 100644 index 0000000000000..1e3690c89f053 --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit5(module=nodenext).types @@ -0,0 +1,18 @@ +=== /index.ts === +/// +No type information for this code./// +No type information for this code.export interface LocalInterface extends ImportInterface, RequireInterface {} +No type information for this code.=== /node_modules/pkg/import.d.ts === +export {}; +declare global { +>global : any + + interface ImportInterface {} +} +=== /node_modules/pkg/require.d.ts === +export {}; +declare global { +>global : any + + interface RequireInterface {} +} diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit6(module=node12).js b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit6(module=node12).js new file mode 100644 index 0000000000000..34117c328c5e1 --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit6(module=node12).js @@ -0,0 +1,53 @@ +//// [tests/cases/conformance/node/nodeModulesTripleSlashReferenceModeDeclarationEmit6.ts] //// + +//// [package.json] +{ + "name": "pkg", + "version": "0.0.1", + "exports": { + "import": "./import.js", + "require": "./require.js" + } +} +//// [import.d.ts] +export {}; +declare global { + interface ImportInterface {} + function getInterI(): ImportInterface; +} +//// [require.d.ts] +export {}; +declare global { + interface RequireInterface {} + function getInterR(): RequireInterface; +} +//// [uses.ts] +/// +export default getInterR(); +//// [index.ts] +import obj from "./uses.js" +export default (obj as typeof obj); + +//// [uses.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +/// +exports.default = getInterR(); +//// [index.js] +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const uses_js_1 = __importDefault(require("./uses.js")); +exports.default = uses_js_1.default; + + +//// [uses.d.ts] +/// +declare const _default: RequireInterface; +export default _default; +//// [index.d.ts] +/// +declare const _default: RequireInterface; +export default _default; diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit6(module=node12).symbols b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit6(module=node12).symbols new file mode 100644 index 0000000000000..5aa8fccc15d55 --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit6(module=node12).symbols @@ -0,0 +1,25 @@ +=== /index.ts === +import obj from "./uses.js" +>obj : Symbol(obj, Decl(index.ts, 0, 6)) + +export default (obj as typeof obj); +>obj : Symbol(obj, Decl(index.ts, 0, 6)) +>obj : Symbol(obj, Decl(index.ts, 0, 6)) + +=== /node_modules/pkg/require.d.ts === +export {}; +declare global { +>global : Symbol(global, Decl(require.d.ts, 0, 10)) + + interface RequireInterface {} +>RequireInterface : Symbol(RequireInterface, Decl(require.d.ts, 1, 16)) + + function getInterR(): RequireInterface; +>getInterR : Symbol(getInterR, Decl(require.d.ts, 2, 33)) +>RequireInterface : Symbol(RequireInterface, Decl(require.d.ts, 1, 16)) +} +=== /uses.ts === +/// +export default getInterR(); +>getInterR : Symbol(getInterR, Decl(require.d.ts, 2, 33)) + diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit6(module=node12).types b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit6(module=node12).types new file mode 100644 index 0000000000000..8b46fbb9f54da --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit6(module=node12).types @@ -0,0 +1,25 @@ +=== /index.ts === +import obj from "./uses.js" +>obj : RequireInterface + +export default (obj as typeof obj); +>(obj as typeof obj) : RequireInterface +>obj as typeof obj : RequireInterface +>obj : RequireInterface +>obj : RequireInterface + +=== /node_modules/pkg/require.d.ts === +export {}; +declare global { +>global : typeof global + + interface RequireInterface {} + function getInterR(): RequireInterface; +>getInterR : () => RequireInterface +} +=== /uses.ts === +/// +export default getInterR(); +>getInterR() : RequireInterface +>getInterR : () => RequireInterface + diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit6(module=nodenext).js b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit6(module=nodenext).js new file mode 100644 index 0000000000000..34117c328c5e1 --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit6(module=nodenext).js @@ -0,0 +1,53 @@ +//// [tests/cases/conformance/node/nodeModulesTripleSlashReferenceModeDeclarationEmit6.ts] //// + +//// [package.json] +{ + "name": "pkg", + "version": "0.0.1", + "exports": { + "import": "./import.js", + "require": "./require.js" + } +} +//// [import.d.ts] +export {}; +declare global { + interface ImportInterface {} + function getInterI(): ImportInterface; +} +//// [require.d.ts] +export {}; +declare global { + interface RequireInterface {} + function getInterR(): RequireInterface; +} +//// [uses.ts] +/// +export default getInterR(); +//// [index.ts] +import obj from "./uses.js" +export default (obj as typeof obj); + +//// [uses.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +/// +exports.default = getInterR(); +//// [index.js] +"use strict"; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +const uses_js_1 = __importDefault(require("./uses.js")); +exports.default = uses_js_1.default; + + +//// [uses.d.ts] +/// +declare const _default: RequireInterface; +export default _default; +//// [index.d.ts] +/// +declare const _default: RequireInterface; +export default _default; diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit6(module=nodenext).symbols b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit6(module=nodenext).symbols new file mode 100644 index 0000000000000..5aa8fccc15d55 --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit6(module=nodenext).symbols @@ -0,0 +1,25 @@ +=== /index.ts === +import obj from "./uses.js" +>obj : Symbol(obj, Decl(index.ts, 0, 6)) + +export default (obj as typeof obj); +>obj : Symbol(obj, Decl(index.ts, 0, 6)) +>obj : Symbol(obj, Decl(index.ts, 0, 6)) + +=== /node_modules/pkg/require.d.ts === +export {}; +declare global { +>global : Symbol(global, Decl(require.d.ts, 0, 10)) + + interface RequireInterface {} +>RequireInterface : Symbol(RequireInterface, Decl(require.d.ts, 1, 16)) + + function getInterR(): RequireInterface; +>getInterR : Symbol(getInterR, Decl(require.d.ts, 2, 33)) +>RequireInterface : Symbol(RequireInterface, Decl(require.d.ts, 1, 16)) +} +=== /uses.ts === +/// +export default getInterR(); +>getInterR : Symbol(getInterR, Decl(require.d.ts, 2, 33)) + diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit6(module=nodenext).types b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit6(module=nodenext).types new file mode 100644 index 0000000000000..8b46fbb9f54da --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit6(module=nodenext).types @@ -0,0 +1,25 @@ +=== /index.ts === +import obj from "./uses.js" +>obj : RequireInterface + +export default (obj as typeof obj); +>(obj as typeof obj) : RequireInterface +>obj as typeof obj : RequireInterface +>obj : RequireInterface +>obj : RequireInterface + +=== /node_modules/pkg/require.d.ts === +export {}; +declare global { +>global : typeof global + + interface RequireInterface {} + function getInterR(): RequireInterface; +>getInterR : () => RequireInterface +} +=== /uses.ts === +/// +export default getInterR(); +>getInterR() : RequireInterface +>getInterR : () => RequireInterface + diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit7(module=node12).js b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit7(module=node12).js new file mode 100644 index 0000000000000..2426cb28b2597 --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit7(module=node12).js @@ -0,0 +1,78 @@ +//// [tests/cases/conformance/node/nodeModulesTripleSlashReferenceModeDeclarationEmit7.ts] //// + +//// [package.json] +{ + "name": "pkg", + "version": "0.0.1", + "exports": { + "import": "./import.js", + "require": "./require.js" + } +} +//// [import.d.ts] +export {}; +declare global { + interface ImportInterface { _i: any; } + function getInterI(): ImportInterface; +} +//// [require.d.ts] +export {}; +declare global { + interface RequireInterface { _r: any; } + function getInterR(): RequireInterface; +} +//// [uses.ts] +/// +export default getInterI(); +//// [package.json] +{ + "private": true, + "type": "module" +} +//// [uses.ts] +/// +export default getInterR(); +//// [package.json] +{ + "private": true, + "type": "commonjs" +} +//// [package.json] +{ + "private": true, + "type": "module" +} +//// [index.ts] +// only an esm file can `import` both kinds of files +import obj1 from "./sub1/uses.js" +import obj2 from "./sub2/uses.js" +export default [obj1, obj2.default] as const; + +//// [uses.js] +/// +export default getInterI(); +//// [uses.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +/// +exports.default = getInterR(); +//// [index.js] +// only an esm file can `import` both kinds of files +import obj1 from "./sub1/uses.js"; +import obj2 from "./sub2/uses.js"; +export default [obj1, obj2.default]; + + +//// [uses.d.ts] +/// +declare const _default: ImportInterface; +export default _default; +//// [uses.d.ts] +/// +declare const _default: RequireInterface; +export default _default; +//// [index.d.ts] +/// +/// +declare const _default: readonly [ImportInterface, RequireInterface]; +export default _default; diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit7(module=node12).symbols b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit7(module=node12).symbols new file mode 100644 index 0000000000000..8f29793a36251 --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit7(module=node12).symbols @@ -0,0 +1,51 @@ +=== /index.ts === +// only an esm file can `import` both kinds of files +import obj1 from "./sub1/uses.js" +>obj1 : Symbol(obj1, Decl(index.ts, 1, 6)) + +import obj2 from "./sub2/uses.js" +>obj2 : Symbol(obj2, Decl(index.ts, 2, 6)) + +export default [obj1, obj2.default] as const; +>obj1 : Symbol(obj1, Decl(index.ts, 1, 6)) +>obj2.default : Symbol(obj2.default, Decl(uses.ts, 0, 0)) +>obj2 : Symbol(obj2, Decl(index.ts, 2, 6)) +>default : Symbol(obj2.default, Decl(uses.ts, 0, 0)) +>const : Symbol(const) + +=== /node_modules/pkg/import.d.ts === +export {}; +declare global { +>global : Symbol(global, Decl(import.d.ts, 0, 10)) + + interface ImportInterface { _i: any; } +>ImportInterface : Symbol(ImportInterface, Decl(import.d.ts, 1, 16)) +>_i : Symbol(ImportInterface._i, Decl(import.d.ts, 2, 31)) + + function getInterI(): ImportInterface; +>getInterI : Symbol(getInterI, Decl(import.d.ts, 2, 42)) +>ImportInterface : Symbol(ImportInterface, Decl(import.d.ts, 1, 16)) +} +=== /node_modules/pkg/require.d.ts === +export {}; +declare global { +>global : Symbol(global, Decl(require.d.ts, 0, 10)) + + interface RequireInterface { _r: any; } +>RequireInterface : Symbol(RequireInterface, Decl(require.d.ts, 1, 16)) +>_r : Symbol(RequireInterface._r, Decl(require.d.ts, 2, 32)) + + function getInterR(): RequireInterface; +>getInterR : Symbol(getInterR, Decl(require.d.ts, 2, 43)) +>RequireInterface : Symbol(RequireInterface, Decl(require.d.ts, 1, 16)) +} +=== /sub1/uses.ts === +/// +export default getInterI(); +>getInterI : Symbol(getInterI, Decl(import.d.ts, 2, 42)) + +=== /sub2/uses.ts === +/// +export default getInterR(); +>getInterR : Symbol(getInterR, Decl(require.d.ts, 2, 43)) + diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit7(module=node12).types b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit7(module=node12).types new file mode 100644 index 0000000000000..20edd715aea82 --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit7(module=node12).types @@ -0,0 +1,50 @@ +=== /index.ts === +// only an esm file can `import` both kinds of files +import obj1 from "./sub1/uses.js" +>obj1 : ImportInterface + +import obj2 from "./sub2/uses.js" +>obj2 : typeof obj2 + +export default [obj1, obj2.default] as const; +>[obj1, obj2.default] as const : readonly [ImportInterface, RequireInterface] +>[obj1, obj2.default] : readonly [ImportInterface, RequireInterface] +>obj1 : ImportInterface +>obj2.default : RequireInterface +>obj2 : typeof obj2 +>default : RequireInterface + +=== /node_modules/pkg/import.d.ts === +export {}; +declare global { +>global : typeof global + + interface ImportInterface { _i: any; } +>_i : any + + function getInterI(): ImportInterface; +>getInterI : () => ImportInterface +} +=== /node_modules/pkg/require.d.ts === +export {}; +declare global { +>global : typeof global + + interface RequireInterface { _r: any; } +>_r : any + + function getInterR(): RequireInterface; +>getInterR : () => RequireInterface +} +=== /sub1/uses.ts === +/// +export default getInterI(); +>getInterI() : ImportInterface +>getInterI : () => ImportInterface + +=== /sub2/uses.ts === +/// +export default getInterR(); +>getInterR() : RequireInterface +>getInterR : () => RequireInterface + diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit7(module=nodenext).js b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit7(module=nodenext).js new file mode 100644 index 0000000000000..2426cb28b2597 --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit7(module=nodenext).js @@ -0,0 +1,78 @@ +//// [tests/cases/conformance/node/nodeModulesTripleSlashReferenceModeDeclarationEmit7.ts] //// + +//// [package.json] +{ + "name": "pkg", + "version": "0.0.1", + "exports": { + "import": "./import.js", + "require": "./require.js" + } +} +//// [import.d.ts] +export {}; +declare global { + interface ImportInterface { _i: any; } + function getInterI(): ImportInterface; +} +//// [require.d.ts] +export {}; +declare global { + interface RequireInterface { _r: any; } + function getInterR(): RequireInterface; +} +//// [uses.ts] +/// +export default getInterI(); +//// [package.json] +{ + "private": true, + "type": "module" +} +//// [uses.ts] +/// +export default getInterR(); +//// [package.json] +{ + "private": true, + "type": "commonjs" +} +//// [package.json] +{ + "private": true, + "type": "module" +} +//// [index.ts] +// only an esm file can `import` both kinds of files +import obj1 from "./sub1/uses.js" +import obj2 from "./sub2/uses.js" +export default [obj1, obj2.default] as const; + +//// [uses.js] +/// +export default getInterI(); +//// [uses.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +/// +exports.default = getInterR(); +//// [index.js] +// only an esm file can `import` both kinds of files +import obj1 from "./sub1/uses.js"; +import obj2 from "./sub2/uses.js"; +export default [obj1, obj2.default]; + + +//// [uses.d.ts] +/// +declare const _default: ImportInterface; +export default _default; +//// [uses.d.ts] +/// +declare const _default: RequireInterface; +export default _default; +//// [index.d.ts] +/// +/// +declare const _default: readonly [ImportInterface, RequireInterface]; +export default _default; diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit7(module=nodenext).symbols b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit7(module=nodenext).symbols new file mode 100644 index 0000000000000..8f29793a36251 --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit7(module=nodenext).symbols @@ -0,0 +1,51 @@ +=== /index.ts === +// only an esm file can `import` both kinds of files +import obj1 from "./sub1/uses.js" +>obj1 : Symbol(obj1, Decl(index.ts, 1, 6)) + +import obj2 from "./sub2/uses.js" +>obj2 : Symbol(obj2, Decl(index.ts, 2, 6)) + +export default [obj1, obj2.default] as const; +>obj1 : Symbol(obj1, Decl(index.ts, 1, 6)) +>obj2.default : Symbol(obj2.default, Decl(uses.ts, 0, 0)) +>obj2 : Symbol(obj2, Decl(index.ts, 2, 6)) +>default : Symbol(obj2.default, Decl(uses.ts, 0, 0)) +>const : Symbol(const) + +=== /node_modules/pkg/import.d.ts === +export {}; +declare global { +>global : Symbol(global, Decl(import.d.ts, 0, 10)) + + interface ImportInterface { _i: any; } +>ImportInterface : Symbol(ImportInterface, Decl(import.d.ts, 1, 16)) +>_i : Symbol(ImportInterface._i, Decl(import.d.ts, 2, 31)) + + function getInterI(): ImportInterface; +>getInterI : Symbol(getInterI, Decl(import.d.ts, 2, 42)) +>ImportInterface : Symbol(ImportInterface, Decl(import.d.ts, 1, 16)) +} +=== /node_modules/pkg/require.d.ts === +export {}; +declare global { +>global : Symbol(global, Decl(require.d.ts, 0, 10)) + + interface RequireInterface { _r: any; } +>RequireInterface : Symbol(RequireInterface, Decl(require.d.ts, 1, 16)) +>_r : Symbol(RequireInterface._r, Decl(require.d.ts, 2, 32)) + + function getInterR(): RequireInterface; +>getInterR : Symbol(getInterR, Decl(require.d.ts, 2, 43)) +>RequireInterface : Symbol(RequireInterface, Decl(require.d.ts, 1, 16)) +} +=== /sub1/uses.ts === +/// +export default getInterI(); +>getInterI : Symbol(getInterI, Decl(import.d.ts, 2, 42)) + +=== /sub2/uses.ts === +/// +export default getInterR(); +>getInterR : Symbol(getInterR, Decl(require.d.ts, 2, 43)) + diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit7(module=nodenext).types b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit7(module=nodenext).types new file mode 100644 index 0000000000000..20edd715aea82 --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeDeclarationEmit7(module=nodenext).types @@ -0,0 +1,50 @@ +=== /index.ts === +// only an esm file can `import` both kinds of files +import obj1 from "./sub1/uses.js" +>obj1 : ImportInterface + +import obj2 from "./sub2/uses.js" +>obj2 : typeof obj2 + +export default [obj1, obj2.default] as const; +>[obj1, obj2.default] as const : readonly [ImportInterface, RequireInterface] +>[obj1, obj2.default] : readonly [ImportInterface, RequireInterface] +>obj1 : ImportInterface +>obj2.default : RequireInterface +>obj2 : typeof obj2 +>default : RequireInterface + +=== /node_modules/pkg/import.d.ts === +export {}; +declare global { +>global : typeof global + + interface ImportInterface { _i: any; } +>_i : any + + function getInterI(): ImportInterface; +>getInterI : () => ImportInterface +} +=== /node_modules/pkg/require.d.ts === +export {}; +declare global { +>global : typeof global + + interface RequireInterface { _r: any; } +>_r : any + + function getInterR(): RequireInterface; +>getInterR : () => RequireInterface +} +=== /sub1/uses.ts === +/// +export default getInterI(); +>getInterI() : ImportInterface +>getInterI : () => ImportInterface + +=== /sub2/uses.ts === +/// +export default getInterR(); +>getInterR() : RequireInterface +>getInterR : () => RequireInterface + diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride1(module=node12).errors.txt b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride1(module=node12).errors.txt new file mode 100644 index 0000000000000..c9a6ac79317f9 --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride1(module=node12).errors.txt @@ -0,0 +1,29 @@ +/index.ts(2,1): error TS2304: Cannot find name 'foo'. + + +==== /index.ts (1 errors) ==== + /// + foo; + ~~~ +!!! error TS2304: Cannot find name 'foo'. + bar; // bar should resolve while foo should not, since index.js is cjs + export {}; +==== /node_modules/pkg/package.json (0 errors) ==== + { + "name": "pkg", + "version": "0.0.1", + "exports": { + "import": "./import.js", + "require": "./require.js" + } + } +==== /node_modules/pkg/import.d.ts (0 errors) ==== + export {}; + declare global { + var foo: number; + } +==== /node_modules/pkg/require.d.ts (0 errors) ==== + export {}; + declare global { + var bar: number; + } \ No newline at end of file diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride1(module=node12).js b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride1(module=node12).js new file mode 100644 index 0000000000000..df6436da900a7 --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride1(module=node12).js @@ -0,0 +1,33 @@ +//// [tests/cases/conformance/node/nodeModulesTripleSlashReferenceModeOverride1.ts] //// + +//// [package.json] +{ + "name": "pkg", + "version": "0.0.1", + "exports": { + "import": "./import.js", + "require": "./require.js" + } +} +//// [import.d.ts] +export {}; +declare global { + var foo: number; +} +//// [require.d.ts] +export {}; +declare global { + var bar: number; +} +//// [index.ts] +/// +foo; +bar; // bar should resolve while foo should not, since index.js is cjs +export {}; + +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +/// +foo; +bar; // bar should resolve while foo should not, since index.js is cjs diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride1(module=node12).symbols b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride1(module=node12).symbols new file mode 100644 index 0000000000000..734168a97f36c --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride1(module=node12).symbols @@ -0,0 +1,15 @@ +=== /index.ts === +/// +foo; +bar; // bar should resolve while foo should not, since index.js is cjs +>bar : Symbol(bar, Decl(require.d.ts, 2, 7)) + +export {}; +=== /node_modules/pkg/require.d.ts === +export {}; +declare global { +>global : Symbol(global, Decl(require.d.ts, 0, 10)) + + var bar: number; +>bar : Symbol(bar, Decl(require.d.ts, 2, 7)) +} diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride1(module=node12).types b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride1(module=node12).types new file mode 100644 index 0000000000000..992f05b18056e --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride1(module=node12).types @@ -0,0 +1,17 @@ +=== /index.ts === +/// +foo; +>foo : any + +bar; // bar should resolve while foo should not, since index.js is cjs +>bar : number + +export {}; +=== /node_modules/pkg/require.d.ts === +export {}; +declare global { +>global : typeof global + + var bar: number; +>bar : number +} diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride1(module=nodenext).errors.txt b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride1(module=nodenext).errors.txt new file mode 100644 index 0000000000000..c9a6ac79317f9 --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride1(module=nodenext).errors.txt @@ -0,0 +1,29 @@ +/index.ts(2,1): error TS2304: Cannot find name 'foo'. + + +==== /index.ts (1 errors) ==== + /// + foo; + ~~~ +!!! error TS2304: Cannot find name 'foo'. + bar; // bar should resolve while foo should not, since index.js is cjs + export {}; +==== /node_modules/pkg/package.json (0 errors) ==== + { + "name": "pkg", + "version": "0.0.1", + "exports": { + "import": "./import.js", + "require": "./require.js" + } + } +==== /node_modules/pkg/import.d.ts (0 errors) ==== + export {}; + declare global { + var foo: number; + } +==== /node_modules/pkg/require.d.ts (0 errors) ==== + export {}; + declare global { + var bar: number; + } \ No newline at end of file diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride1(module=nodenext).js b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride1(module=nodenext).js new file mode 100644 index 0000000000000..df6436da900a7 --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride1(module=nodenext).js @@ -0,0 +1,33 @@ +//// [tests/cases/conformance/node/nodeModulesTripleSlashReferenceModeOverride1.ts] //// + +//// [package.json] +{ + "name": "pkg", + "version": "0.0.1", + "exports": { + "import": "./import.js", + "require": "./require.js" + } +} +//// [import.d.ts] +export {}; +declare global { + var foo: number; +} +//// [require.d.ts] +export {}; +declare global { + var bar: number; +} +//// [index.ts] +/// +foo; +bar; // bar should resolve while foo should not, since index.js is cjs +export {}; + +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +/// +foo; +bar; // bar should resolve while foo should not, since index.js is cjs diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride1(module=nodenext).symbols b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride1(module=nodenext).symbols new file mode 100644 index 0000000000000..734168a97f36c --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride1(module=nodenext).symbols @@ -0,0 +1,15 @@ +=== /index.ts === +/// +foo; +bar; // bar should resolve while foo should not, since index.js is cjs +>bar : Symbol(bar, Decl(require.d.ts, 2, 7)) + +export {}; +=== /node_modules/pkg/require.d.ts === +export {}; +declare global { +>global : Symbol(global, Decl(require.d.ts, 0, 10)) + + var bar: number; +>bar : Symbol(bar, Decl(require.d.ts, 2, 7)) +} diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride1(module=nodenext).types b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride1(module=nodenext).types new file mode 100644 index 0000000000000..992f05b18056e --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride1(module=nodenext).types @@ -0,0 +1,17 @@ +=== /index.ts === +/// +foo; +>foo : any + +bar; // bar should resolve while foo should not, since index.js is cjs +>bar : number + +export {}; +=== /node_modules/pkg/require.d.ts === +export {}; +declare global { +>global : typeof global + + var bar: number; +>bar : number +} diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride2(module=node12).errors.txt b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride2(module=node12).errors.txt new file mode 100644 index 0000000000000..13991aa13538a --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride2(module=node12).errors.txt @@ -0,0 +1,34 @@ +/index.ts(3,1): error TS2304: Cannot find name 'bar'. + + +==== /index.ts (1 errors) ==== + /// + foo; // foo should resolve while bar should not, since index.js is esm + bar; + ~~~ +!!! error TS2304: Cannot find name 'bar'. + export {}; +==== /node_modules/pkg/package.json (0 errors) ==== + { + "name": "pkg", + "version": "0.0.1", + "exports": { + "import": "./import.js", + "require": "./require.js" + } + } +==== /node_modules/pkg/import.d.ts (0 errors) ==== + export {}; + declare global { + var foo: number; + } +==== /node_modules/pkg/require.d.ts (0 errors) ==== + export {}; + declare global { + var bar: number; + } +==== /package.json (0 errors) ==== + { + "private": true, + "type": "module" + } \ No newline at end of file diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride2(module=node12).js b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride2(module=node12).js new file mode 100644 index 0000000000000..aee176689b2d9 --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride2(module=node12).js @@ -0,0 +1,37 @@ +//// [tests/cases/conformance/node/nodeModulesTripleSlashReferenceModeOverride2.ts] //// + +//// [package.json] +{ + "name": "pkg", + "version": "0.0.1", + "exports": { + "import": "./import.js", + "require": "./require.js" + } +} +//// [import.d.ts] +export {}; +declare global { + var foo: number; +} +//// [require.d.ts] +export {}; +declare global { + var bar: number; +} +//// [package.json] +{ + "private": true, + "type": "module" +} +//// [index.ts] +/// +foo; // foo should resolve while bar should not, since index.js is esm +bar; +export {}; + +//// [index.js] +/// +foo; // foo should resolve while bar should not, since index.js is esm +bar; +export {}; diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride2(module=node12).symbols b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride2(module=node12).symbols new file mode 100644 index 0000000000000..babba09bdf8ee --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride2(module=node12).symbols @@ -0,0 +1,15 @@ +=== /index.ts === +/// +foo; // foo should resolve while bar should not, since index.js is esm +>foo : Symbol(foo, Decl(import.d.ts, 2, 7)) + +bar; +export {}; +=== /node_modules/pkg/import.d.ts === +export {}; +declare global { +>global : Symbol(global, Decl(import.d.ts, 0, 10)) + + var foo: number; +>foo : Symbol(foo, Decl(import.d.ts, 2, 7)) +} diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride2(module=node12).types b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride2(module=node12).types new file mode 100644 index 0000000000000..baabb0362784c --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride2(module=node12).types @@ -0,0 +1,17 @@ +=== /index.ts === +/// +foo; // foo should resolve while bar should not, since index.js is esm +>foo : number + +bar; +>bar : any + +export {}; +=== /node_modules/pkg/import.d.ts === +export {}; +declare global { +>global : typeof global + + var foo: number; +>foo : number +} diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride2(module=nodenext).errors.txt b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride2(module=nodenext).errors.txt new file mode 100644 index 0000000000000..13991aa13538a --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride2(module=nodenext).errors.txt @@ -0,0 +1,34 @@ +/index.ts(3,1): error TS2304: Cannot find name 'bar'. + + +==== /index.ts (1 errors) ==== + /// + foo; // foo should resolve while bar should not, since index.js is esm + bar; + ~~~ +!!! error TS2304: Cannot find name 'bar'. + export {}; +==== /node_modules/pkg/package.json (0 errors) ==== + { + "name": "pkg", + "version": "0.0.1", + "exports": { + "import": "./import.js", + "require": "./require.js" + } + } +==== /node_modules/pkg/import.d.ts (0 errors) ==== + export {}; + declare global { + var foo: number; + } +==== /node_modules/pkg/require.d.ts (0 errors) ==== + export {}; + declare global { + var bar: number; + } +==== /package.json (0 errors) ==== + { + "private": true, + "type": "module" + } \ No newline at end of file diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride2(module=nodenext).js b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride2(module=nodenext).js new file mode 100644 index 0000000000000..aee176689b2d9 --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride2(module=nodenext).js @@ -0,0 +1,37 @@ +//// [tests/cases/conformance/node/nodeModulesTripleSlashReferenceModeOverride2.ts] //// + +//// [package.json] +{ + "name": "pkg", + "version": "0.0.1", + "exports": { + "import": "./import.js", + "require": "./require.js" + } +} +//// [import.d.ts] +export {}; +declare global { + var foo: number; +} +//// [require.d.ts] +export {}; +declare global { + var bar: number; +} +//// [package.json] +{ + "private": true, + "type": "module" +} +//// [index.ts] +/// +foo; // foo should resolve while bar should not, since index.js is esm +bar; +export {}; + +//// [index.js] +/// +foo; // foo should resolve while bar should not, since index.js is esm +bar; +export {}; diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride2(module=nodenext).symbols b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride2(module=nodenext).symbols new file mode 100644 index 0000000000000..babba09bdf8ee --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride2(module=nodenext).symbols @@ -0,0 +1,15 @@ +=== /index.ts === +/// +foo; // foo should resolve while bar should not, since index.js is esm +>foo : Symbol(foo, Decl(import.d.ts, 2, 7)) + +bar; +export {}; +=== /node_modules/pkg/import.d.ts === +export {}; +declare global { +>global : Symbol(global, Decl(import.d.ts, 0, 10)) + + var foo: number; +>foo : Symbol(foo, Decl(import.d.ts, 2, 7)) +} diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride2(module=nodenext).types b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride2(module=nodenext).types new file mode 100644 index 0000000000000..baabb0362784c --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride2(module=nodenext).types @@ -0,0 +1,17 @@ +=== /index.ts === +/// +foo; // foo should resolve while bar should not, since index.js is esm +>foo : number + +bar; +>bar : any + +export {}; +=== /node_modules/pkg/import.d.ts === +export {}; +declare global { +>global : typeof global + + var foo: number; +>foo : number +} diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride3(module=node12).errors.txt b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride3(module=node12).errors.txt new file mode 100644 index 0000000000000..477d247984d39 --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride3(module=node12).errors.txt @@ -0,0 +1,34 @@ +/index.ts(2,1): error TS2304: Cannot find name 'foo'. + + +==== /index.ts (1 errors) ==== + /// + foo; + ~~~ +!!! error TS2304: Cannot find name 'foo'. + bar; // bar should resolve while foo should not, since even though index.js is esm, the reference is cjs + export {}; +==== /node_modules/pkg/package.json (0 errors) ==== + { + "name": "pkg", + "version": "0.0.1", + "exports": { + "import": "./import.js", + "require": "./require.js" + } + } +==== /node_modules/pkg/import.d.ts (0 errors) ==== + export {}; + declare global { + var foo: number; + } +==== /node_modules/pkg/require.d.ts (0 errors) ==== + export {}; + declare global { + var bar: number; + } +==== /package.json (0 errors) ==== + { + "private": true, + "type": "module" + } \ No newline at end of file diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride3(module=node12).js b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride3(module=node12).js new file mode 100644 index 0000000000000..c6806f897de91 --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride3(module=node12).js @@ -0,0 +1,37 @@ +//// [tests/cases/conformance/node/nodeModulesTripleSlashReferenceModeOverride3.ts] //// + +//// [package.json] +{ + "name": "pkg", + "version": "0.0.1", + "exports": { + "import": "./import.js", + "require": "./require.js" + } +} +//// [import.d.ts] +export {}; +declare global { + var foo: number; +} +//// [require.d.ts] +export {}; +declare global { + var bar: number; +} +//// [package.json] +{ + "private": true, + "type": "module" +} +//// [index.ts] +/// +foo; +bar; // bar should resolve while foo should not, since even though index.js is esm, the reference is cjs +export {}; + +//// [index.js] +/// +foo; +bar; // bar should resolve while foo should not, since even though index.js is esm, the reference is cjs +export {}; diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride3(module=node12).symbols b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride3(module=node12).symbols new file mode 100644 index 0000000000000..dd4f1ee4370b1 --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride3(module=node12).symbols @@ -0,0 +1,15 @@ +=== /index.ts === +/// +foo; +bar; // bar should resolve while foo should not, since even though index.js is esm, the reference is cjs +>bar : Symbol(bar, Decl(require.d.ts, 2, 7)) + +export {}; +=== /node_modules/pkg/require.d.ts === +export {}; +declare global { +>global : Symbol(global, Decl(require.d.ts, 0, 10)) + + var bar: number; +>bar : Symbol(bar, Decl(require.d.ts, 2, 7)) +} diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride3(module=node12).types b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride3(module=node12).types new file mode 100644 index 0000000000000..296d29ee050ee --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride3(module=node12).types @@ -0,0 +1,17 @@ +=== /index.ts === +/// +foo; +>foo : any + +bar; // bar should resolve while foo should not, since even though index.js is esm, the reference is cjs +>bar : number + +export {}; +=== /node_modules/pkg/require.d.ts === +export {}; +declare global { +>global : typeof global + + var bar: number; +>bar : number +} diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride3(module=nodenext).errors.txt b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride3(module=nodenext).errors.txt new file mode 100644 index 0000000000000..477d247984d39 --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride3(module=nodenext).errors.txt @@ -0,0 +1,34 @@ +/index.ts(2,1): error TS2304: Cannot find name 'foo'. + + +==== /index.ts (1 errors) ==== + /// + foo; + ~~~ +!!! error TS2304: Cannot find name 'foo'. + bar; // bar should resolve while foo should not, since even though index.js is esm, the reference is cjs + export {}; +==== /node_modules/pkg/package.json (0 errors) ==== + { + "name": "pkg", + "version": "0.0.1", + "exports": { + "import": "./import.js", + "require": "./require.js" + } + } +==== /node_modules/pkg/import.d.ts (0 errors) ==== + export {}; + declare global { + var foo: number; + } +==== /node_modules/pkg/require.d.ts (0 errors) ==== + export {}; + declare global { + var bar: number; + } +==== /package.json (0 errors) ==== + { + "private": true, + "type": "module" + } \ No newline at end of file diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride3(module=nodenext).js b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride3(module=nodenext).js new file mode 100644 index 0000000000000..c6806f897de91 --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride3(module=nodenext).js @@ -0,0 +1,37 @@ +//// [tests/cases/conformance/node/nodeModulesTripleSlashReferenceModeOverride3.ts] //// + +//// [package.json] +{ + "name": "pkg", + "version": "0.0.1", + "exports": { + "import": "./import.js", + "require": "./require.js" + } +} +//// [import.d.ts] +export {}; +declare global { + var foo: number; +} +//// [require.d.ts] +export {}; +declare global { + var bar: number; +} +//// [package.json] +{ + "private": true, + "type": "module" +} +//// [index.ts] +/// +foo; +bar; // bar should resolve while foo should not, since even though index.js is esm, the reference is cjs +export {}; + +//// [index.js] +/// +foo; +bar; // bar should resolve while foo should not, since even though index.js is esm, the reference is cjs +export {}; diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride3(module=nodenext).symbols b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride3(module=nodenext).symbols new file mode 100644 index 0000000000000..dd4f1ee4370b1 --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride3(module=nodenext).symbols @@ -0,0 +1,15 @@ +=== /index.ts === +/// +foo; +bar; // bar should resolve while foo should not, since even though index.js is esm, the reference is cjs +>bar : Symbol(bar, Decl(require.d.ts, 2, 7)) + +export {}; +=== /node_modules/pkg/require.d.ts === +export {}; +declare global { +>global : Symbol(global, Decl(require.d.ts, 0, 10)) + + var bar: number; +>bar : Symbol(bar, Decl(require.d.ts, 2, 7)) +} diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride3(module=nodenext).types b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride3(module=nodenext).types new file mode 100644 index 0000000000000..296d29ee050ee --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride3(module=nodenext).types @@ -0,0 +1,17 @@ +=== /index.ts === +/// +foo; +>foo : any + +bar; // bar should resolve while foo should not, since even though index.js is esm, the reference is cjs +>bar : number + +export {}; +=== /node_modules/pkg/require.d.ts === +export {}; +declare global { +>global : typeof global + + var bar: number; +>bar : number +} diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride4(module=node12).errors.txt b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride4(module=node12).errors.txt new file mode 100644 index 0000000000000..3d7f07f2775e1 --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride4(module=node12).errors.txt @@ -0,0 +1,29 @@ +/index.ts(3,1): error TS2304: Cannot find name 'bar'. + + +==== /index.ts (1 errors) ==== + /// + foo; // foo should resolve while bar should not, since even though index.js is cjs, the refernce is esm + bar; + ~~~ +!!! error TS2304: Cannot find name 'bar'. + export {}; +==== /node_modules/pkg/package.json (0 errors) ==== + { + "name": "pkg", + "version": "0.0.1", + "exports": { + "import": "./import.js", + "require": "./require.js" + } + } +==== /node_modules/pkg/import.d.ts (0 errors) ==== + export {}; + declare global { + var foo: number; + } +==== /node_modules/pkg/require.d.ts (0 errors) ==== + export {}; + declare global { + var bar: number; + } \ No newline at end of file diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride4(module=node12).js b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride4(module=node12).js new file mode 100644 index 0000000000000..74346916b2641 --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride4(module=node12).js @@ -0,0 +1,33 @@ +//// [tests/cases/conformance/node/nodeModulesTripleSlashReferenceModeOverride4.ts] //// + +//// [package.json] +{ + "name": "pkg", + "version": "0.0.1", + "exports": { + "import": "./import.js", + "require": "./require.js" + } +} +//// [import.d.ts] +export {}; +declare global { + var foo: number; +} +//// [require.d.ts] +export {}; +declare global { + var bar: number; +} +//// [index.ts] +/// +foo; // foo should resolve while bar should not, since even though index.js is cjs, the refernce is esm +bar; +export {}; + +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +/// +foo; // foo should resolve while bar should not, since even though index.js is cjs, the refernce is esm +bar; diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride4(module=node12).symbols b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride4(module=node12).symbols new file mode 100644 index 0000000000000..c6420dbbea76d --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride4(module=node12).symbols @@ -0,0 +1,15 @@ +=== /index.ts === +/// +foo; // foo should resolve while bar should not, since even though index.js is cjs, the refernce is esm +>foo : Symbol(foo, Decl(import.d.ts, 2, 7)) + +bar; +export {}; +=== /node_modules/pkg/import.d.ts === +export {}; +declare global { +>global : Symbol(global, Decl(import.d.ts, 0, 10)) + + var foo: number; +>foo : Symbol(foo, Decl(import.d.ts, 2, 7)) +} diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride4(module=node12).types b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride4(module=node12).types new file mode 100644 index 0000000000000..eb9b906744a00 --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride4(module=node12).types @@ -0,0 +1,17 @@ +=== /index.ts === +/// +foo; // foo should resolve while bar should not, since even though index.js is cjs, the refernce is esm +>foo : number + +bar; +>bar : any + +export {}; +=== /node_modules/pkg/import.d.ts === +export {}; +declare global { +>global : typeof global + + var foo: number; +>foo : number +} diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride4(module=nodenext).errors.txt b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride4(module=nodenext).errors.txt new file mode 100644 index 0000000000000..3d7f07f2775e1 --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride4(module=nodenext).errors.txt @@ -0,0 +1,29 @@ +/index.ts(3,1): error TS2304: Cannot find name 'bar'. + + +==== /index.ts (1 errors) ==== + /// + foo; // foo should resolve while bar should not, since even though index.js is cjs, the refernce is esm + bar; + ~~~ +!!! error TS2304: Cannot find name 'bar'. + export {}; +==== /node_modules/pkg/package.json (0 errors) ==== + { + "name": "pkg", + "version": "0.0.1", + "exports": { + "import": "./import.js", + "require": "./require.js" + } + } +==== /node_modules/pkg/import.d.ts (0 errors) ==== + export {}; + declare global { + var foo: number; + } +==== /node_modules/pkg/require.d.ts (0 errors) ==== + export {}; + declare global { + var bar: number; + } \ No newline at end of file diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride4(module=nodenext).js b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride4(module=nodenext).js new file mode 100644 index 0000000000000..74346916b2641 --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride4(module=nodenext).js @@ -0,0 +1,33 @@ +//// [tests/cases/conformance/node/nodeModulesTripleSlashReferenceModeOverride4.ts] //// + +//// [package.json] +{ + "name": "pkg", + "version": "0.0.1", + "exports": { + "import": "./import.js", + "require": "./require.js" + } +} +//// [import.d.ts] +export {}; +declare global { + var foo: number; +} +//// [require.d.ts] +export {}; +declare global { + var bar: number; +} +//// [index.ts] +/// +foo; // foo should resolve while bar should not, since even though index.js is cjs, the refernce is esm +bar; +export {}; + +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +/// +foo; // foo should resolve while bar should not, since even though index.js is cjs, the refernce is esm +bar; diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride4(module=nodenext).symbols b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride4(module=nodenext).symbols new file mode 100644 index 0000000000000..c6420dbbea76d --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride4(module=nodenext).symbols @@ -0,0 +1,15 @@ +=== /index.ts === +/// +foo; // foo should resolve while bar should not, since even though index.js is cjs, the refernce is esm +>foo : Symbol(foo, Decl(import.d.ts, 2, 7)) + +bar; +export {}; +=== /node_modules/pkg/import.d.ts === +export {}; +declare global { +>global : Symbol(global, Decl(import.d.ts, 0, 10)) + + var foo: number; +>foo : Symbol(foo, Decl(import.d.ts, 2, 7)) +} diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride4(module=nodenext).types b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride4(module=nodenext).types new file mode 100644 index 0000000000000..eb9b906744a00 --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride4(module=nodenext).types @@ -0,0 +1,17 @@ +=== /index.ts === +/// +foo; // foo should resolve while bar should not, since even though index.js is cjs, the refernce is esm +>foo : number + +bar; +>bar : any + +export {}; +=== /node_modules/pkg/import.d.ts === +export {}; +declare global { +>global : typeof global + + var foo: number; +>foo : number +} diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride5(module=node12).js b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride5(module=node12).js new file mode 100644 index 0000000000000..0c37dc00e4deb --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride5(module=node12).js @@ -0,0 +1,39 @@ +//// [tests/cases/conformance/node/nodeModulesTripleSlashReferenceModeOverride5.ts] //// + +//// [package.json] +{ + "name": "pkg", + "version": "0.0.1", + "exports": { + "import": "./import.js", + "require": "./require.js" + } +} +//// [import.d.ts] +export {}; +declare global { + var foo: number; +} +//// [require.d.ts] +export {}; +declare global { + var bar: number; +} +//// [index.ts] +/// +/// +// Both `foo` and `bar` should resolve, as _both_ entrypoints are included by the two +// references above. +foo; +bar; +export {}; + +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +/// +/// +// Both `foo` and `bar` should resolve, as _both_ entrypoints are included by the two +// references above. +foo; +bar; diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride5(module=node12).symbols b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride5(module=node12).symbols new file mode 100644 index 0000000000000..0dc4119ca9793 --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride5(module=node12).symbols @@ -0,0 +1,28 @@ +=== /index.ts === +/// +/// +// Both `foo` and `bar` should resolve, as _both_ entrypoints are included by the two +// references above. +foo; +>foo : Symbol(foo, Decl(import.d.ts, 2, 7)) + +bar; +>bar : Symbol(bar, Decl(require.d.ts, 2, 7)) + +export {}; +=== /node_modules/pkg/import.d.ts === +export {}; +declare global { +>global : Symbol(global, Decl(import.d.ts, 0, 10)) + + var foo: number; +>foo : Symbol(foo, Decl(import.d.ts, 2, 7)) +} +=== /node_modules/pkg/require.d.ts === +export {}; +declare global { +>global : Symbol(global, Decl(require.d.ts, 0, 10)) + + var bar: number; +>bar : Symbol(bar, Decl(require.d.ts, 2, 7)) +} diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride5(module=node12).types b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride5(module=node12).types new file mode 100644 index 0000000000000..047cef77a4906 --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride5(module=node12).types @@ -0,0 +1,28 @@ +=== /index.ts === +/// +/// +// Both `foo` and `bar` should resolve, as _both_ entrypoints are included by the two +// references above. +foo; +>foo : number + +bar; +>bar : number + +export {}; +=== /node_modules/pkg/import.d.ts === +export {}; +declare global { +>global : typeof global + + var foo: number; +>foo : number +} +=== /node_modules/pkg/require.d.ts === +export {}; +declare global { +>global : typeof global + + var bar: number; +>bar : number +} diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride5(module=nodenext).js b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride5(module=nodenext).js new file mode 100644 index 0000000000000..0c37dc00e4deb --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride5(module=nodenext).js @@ -0,0 +1,39 @@ +//// [tests/cases/conformance/node/nodeModulesTripleSlashReferenceModeOverride5.ts] //// + +//// [package.json] +{ + "name": "pkg", + "version": "0.0.1", + "exports": { + "import": "./import.js", + "require": "./require.js" + } +} +//// [import.d.ts] +export {}; +declare global { + var foo: number; +} +//// [require.d.ts] +export {}; +declare global { + var bar: number; +} +//// [index.ts] +/// +/// +// Both `foo` and `bar` should resolve, as _both_ entrypoints are included by the two +// references above. +foo; +bar; +export {}; + +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +/// +/// +// Both `foo` and `bar` should resolve, as _both_ entrypoints are included by the two +// references above. +foo; +bar; diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride5(module=nodenext).symbols b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride5(module=nodenext).symbols new file mode 100644 index 0000000000000..0dc4119ca9793 --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride5(module=nodenext).symbols @@ -0,0 +1,28 @@ +=== /index.ts === +/// +/// +// Both `foo` and `bar` should resolve, as _both_ entrypoints are included by the two +// references above. +foo; +>foo : Symbol(foo, Decl(import.d.ts, 2, 7)) + +bar; +>bar : Symbol(bar, Decl(require.d.ts, 2, 7)) + +export {}; +=== /node_modules/pkg/import.d.ts === +export {}; +declare global { +>global : Symbol(global, Decl(import.d.ts, 0, 10)) + + var foo: number; +>foo : Symbol(foo, Decl(import.d.ts, 2, 7)) +} +=== /node_modules/pkg/require.d.ts === +export {}; +declare global { +>global : Symbol(global, Decl(require.d.ts, 0, 10)) + + var bar: number; +>bar : Symbol(bar, Decl(require.d.ts, 2, 7)) +} diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride5(module=nodenext).types b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride5(module=nodenext).types new file mode 100644 index 0000000000000..047cef77a4906 --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverride5(module=nodenext).types @@ -0,0 +1,28 @@ +=== /index.ts === +/// +/// +// Both `foo` and `bar` should resolve, as _both_ entrypoints are included by the two +// references above. +foo; +>foo : number + +bar; +>bar : number + +export {}; +=== /node_modules/pkg/import.d.ts === +export {}; +declare global { +>global : typeof global + + var foo: number; +>foo : number +} +=== /node_modules/pkg/require.d.ts === +export {}; +declare global { +>global : typeof global + + var bar: number; +>bar : number +} diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverrideModeError(module=node12).errors.txt b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverrideModeError(module=node12).errors.txt new file mode 100644 index 0000000000000..68be0baf51514 --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverrideModeError(module=node12).errors.txt @@ -0,0 +1,32 @@ +/index.ts(1,23): error TS1453: `resolution-mode` should be either `require` or `import`. +/index.ts(2,1): error TS2304: Cannot find name 'foo'. + + +==== /index.ts (2 errors) ==== + /// + ~~~ +!!! error TS1453: `resolution-mode` should be either `require` or `import`. + foo; // bad resolution mode, which resolves is arbitrary + ~~~ +!!! error TS2304: Cannot find name 'foo'. + bar; + export {}; +==== /node_modules/pkg/package.json (0 errors) ==== + { + "name": "pkg", + "version": "0.0.1", + "exports": { + "import": "./import.js", + "require": "./require.js" + } + } +==== /node_modules/pkg/import.d.ts (0 errors) ==== + export {}; + declare global { + var foo: number; + } +==== /node_modules/pkg/require.d.ts (0 errors) ==== + export {}; + declare global { + var bar: number; + } \ No newline at end of file diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverrideModeError(module=node12).js b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverrideModeError(module=node12).js new file mode 100644 index 0000000000000..09540ae8aba4a --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverrideModeError(module=node12).js @@ -0,0 +1,33 @@ +//// [tests/cases/conformance/node/nodeModulesTripleSlashReferenceModeOverrideModeError.ts] //// + +//// [package.json] +{ + "name": "pkg", + "version": "0.0.1", + "exports": { + "import": "./import.js", + "require": "./require.js" + } +} +//// [import.d.ts] +export {}; +declare global { + var foo: number; +} +//// [require.d.ts] +export {}; +declare global { + var bar: number; +} +//// [index.ts] +/// +foo; // bad resolution mode, which resolves is arbitrary +bar; +export {}; + +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +/// +foo; // bad resolution mode, which resolves is arbitrary +bar; diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverrideModeError(module=node12).symbols b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverrideModeError(module=node12).symbols new file mode 100644 index 0000000000000..0b19a6c5440f2 --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverrideModeError(module=node12).symbols @@ -0,0 +1,15 @@ +=== /index.ts === +/// +foo; // bad resolution mode, which resolves is arbitrary +bar; +>bar : Symbol(bar, Decl(require.d.ts, 2, 7)) + +export {}; +=== /node_modules/pkg/require.d.ts === +export {}; +declare global { +>global : Symbol(global, Decl(require.d.ts, 0, 10)) + + var bar: number; +>bar : Symbol(bar, Decl(require.d.ts, 2, 7)) +} diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverrideModeError(module=node12).types b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverrideModeError(module=node12).types new file mode 100644 index 0000000000000..4f97b44ffc8f9 --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverrideModeError(module=node12).types @@ -0,0 +1,17 @@ +=== /index.ts === +/// +foo; // bad resolution mode, which resolves is arbitrary +>foo : any + +bar; +>bar : number + +export {}; +=== /node_modules/pkg/require.d.ts === +export {}; +declare global { +>global : typeof global + + var bar: number; +>bar : number +} diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverrideModeError(module=nodenext).errors.txt b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverrideModeError(module=nodenext).errors.txt new file mode 100644 index 0000000000000..68be0baf51514 --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverrideModeError(module=nodenext).errors.txt @@ -0,0 +1,32 @@ +/index.ts(1,23): error TS1453: `resolution-mode` should be either `require` or `import`. +/index.ts(2,1): error TS2304: Cannot find name 'foo'. + + +==== /index.ts (2 errors) ==== + /// + ~~~ +!!! error TS1453: `resolution-mode` should be either `require` or `import`. + foo; // bad resolution mode, which resolves is arbitrary + ~~~ +!!! error TS2304: Cannot find name 'foo'. + bar; + export {}; +==== /node_modules/pkg/package.json (0 errors) ==== + { + "name": "pkg", + "version": "0.0.1", + "exports": { + "import": "./import.js", + "require": "./require.js" + } + } +==== /node_modules/pkg/import.d.ts (0 errors) ==== + export {}; + declare global { + var foo: number; + } +==== /node_modules/pkg/require.d.ts (0 errors) ==== + export {}; + declare global { + var bar: number; + } \ No newline at end of file diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverrideModeError(module=nodenext).js b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverrideModeError(module=nodenext).js new file mode 100644 index 0000000000000..09540ae8aba4a --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverrideModeError(module=nodenext).js @@ -0,0 +1,33 @@ +//// [tests/cases/conformance/node/nodeModulesTripleSlashReferenceModeOverrideModeError.ts] //// + +//// [package.json] +{ + "name": "pkg", + "version": "0.0.1", + "exports": { + "import": "./import.js", + "require": "./require.js" + } +} +//// [import.d.ts] +export {}; +declare global { + var foo: number; +} +//// [require.d.ts] +export {}; +declare global { + var bar: number; +} +//// [index.ts] +/// +foo; // bad resolution mode, which resolves is arbitrary +bar; +export {}; + +//// [index.js] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +/// +foo; // bad resolution mode, which resolves is arbitrary +bar; diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverrideModeError(module=nodenext).symbols b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverrideModeError(module=nodenext).symbols new file mode 100644 index 0000000000000..0b19a6c5440f2 --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverrideModeError(module=nodenext).symbols @@ -0,0 +1,15 @@ +=== /index.ts === +/// +foo; // bad resolution mode, which resolves is arbitrary +bar; +>bar : Symbol(bar, Decl(require.d.ts, 2, 7)) + +export {}; +=== /node_modules/pkg/require.d.ts === +export {}; +declare global { +>global : Symbol(global, Decl(require.d.ts, 0, 10)) + + var bar: number; +>bar : Symbol(bar, Decl(require.d.ts, 2, 7)) +} diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverrideModeError(module=nodenext).types b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverrideModeError(module=nodenext).types new file mode 100644 index 0000000000000..4f97b44ffc8f9 --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverrideModeError(module=nodenext).types @@ -0,0 +1,17 @@ +=== /index.ts === +/// +foo; // bad resolution mode, which resolves is arbitrary +>foo : any + +bar; +>bar : number + +export {}; +=== /node_modules/pkg/require.d.ts === +export {}; +declare global { +>global : typeof global + + var bar: number; +>bar : number +} diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverrideOldResolutionError.errors.txt b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverrideOldResolutionError.errors.txt new file mode 100644 index 0000000000000..ee262510ffd60 --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverrideOldResolutionError.errors.txt @@ -0,0 +1,45 @@ +/index.ts(1,23): error TS1452: Resolution modes are only supported when `moduleResolution` is `node12` or `nodenext`. +/index.ts(1,23): error TS2688: Cannot find type definition file for 'pkg'. +/index.ts(2,23): error TS1452: Resolution modes are only supported when `moduleResolution` is `node12` or `nodenext`. +/index.ts(2,23): error TS2688: Cannot find type definition file for 'pkg'. +/index.ts(3,1): error TS2304: Cannot find name 'foo'. +/index.ts(4,1): error TS2304: Cannot find name 'bar'. + + +==== /index.ts (6 errors) ==== + /// + ~~~ +!!! error TS1452: Resolution modes are only supported when `moduleResolution` is `node12` or `nodenext`. + ~~~ +!!! error TS2688: Cannot find type definition file for 'pkg'. + /// + ~~~ +!!! error TS1452: Resolution modes are only supported when `moduleResolution` is `node12` or `nodenext`. + ~~~ +!!! error TS2688: Cannot find type definition file for 'pkg'. + foo; // `resolution-mode` is an error in old resolution settings, which resolves is arbitrary + ~~~ +!!! error TS2304: Cannot find name 'foo'. + bar; + ~~~ +!!! error TS2304: Cannot find name 'bar'. + export {}; +==== /node_modules/pkg/package.json (0 errors) ==== + { + "name": "pkg", + "version": "0.0.1", + "exports": { + "import": "./import.js", + "require": "./require.js" + } + } +==== /node_modules/pkg/import.d.ts (0 errors) ==== + export {}; + declare global { + var foo: number; + } +==== /node_modules/pkg/require.d.ts (0 errors) ==== + export {}; + declare global { + var bar: number; + } \ No newline at end of file diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverrideOldResolutionError.js b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverrideOldResolutionError.js new file mode 100644 index 0000000000000..45b793ad7817a --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverrideOldResolutionError.js @@ -0,0 +1,35 @@ +//// [tests/cases/conformance/node/nodeModulesTripleSlashReferenceModeOverrideOldResolutionError.ts] //// + +//// [package.json] +{ + "name": "pkg", + "version": "0.0.1", + "exports": { + "import": "./import.js", + "require": "./require.js" + } +} +//// [import.d.ts] +export {}; +declare global { + var foo: number; +} +//// [require.d.ts] +export {}; +declare global { + var bar: number; +} +//// [index.ts] +/// +/// +foo; // `resolution-mode` is an error in old resolution settings, which resolves is arbitrary +bar; +export {}; + +//// [index.js] +"use strict"; +exports.__esModule = true; +/// +/// +foo; // `resolution-mode` is an error in old resolution settings, which resolves is arbitrary +bar; diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverrideOldResolutionError.symbols b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverrideOldResolutionError.symbols new file mode 100644 index 0000000000000..3546346b3477b --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverrideOldResolutionError.symbols @@ -0,0 +1,7 @@ +=== /index.ts === +/// +No type information for this code./// +No type information for this code.foo; // `resolution-mode` is an error in old resolution settings, which resolves is arbitrary +No type information for this code.bar; +No type information for this code.export {}; +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverrideOldResolutionError.types b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverrideOldResolutionError.types new file mode 100644 index 0000000000000..9e8f1c3fbf503 --- /dev/null +++ b/tests/baselines/reference/nodeModulesTripleSlashReferenceModeOverrideOldResolutionError.types @@ -0,0 +1,10 @@ +=== /index.ts === +/// +/// +foo; // `resolution-mode` is an error in old resolution settings, which resolves is arbitrary +>foo : any + +bar; +>bar : any + +export {}; diff --git a/tests/baselines/reference/nodeModulesTypesVersionPackageExports(module=node12).js b/tests/baselines/reference/nodeModulesTypesVersionPackageExports(module=node12).js index 8cb62238370ee..1553828a6ae5e 100644 --- a/tests/baselines/reference/nodeModulesTypesVersionPackageExports(module=node12).js +++ b/tests/baselines/reference/nodeModulesTypesVersionPackageExports(module=node12).js @@ -63,7 +63,11 @@ mod.correctVersionApplied; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/nodeModulesTypesVersionPackageExports(module=node12).symbols b/tests/baselines/reference/nodeModulesTypesVersionPackageExports(module=node12).symbols index a9d7f0b89eedb..19b9d0e40d993 100644 --- a/tests/baselines/reference/nodeModulesTypesVersionPackageExports(module=node12).symbols +++ b/tests/baselines/reference/nodeModulesTypesVersionPackageExports(module=node12).symbols @@ -4,9 +4,9 @@ import * as mod from "inner"; >mod : Symbol(mod, Decl(index.ts, 1, 6)) mod.correctVersionApplied; ->mod.correctVersionApplied : Symbol(mod.correctVersionApplied, Decl(new-types.d.ts, 0, 12)) +>mod.correctVersionApplied : Symbol(correctVersionApplied, Decl(new-types.d.ts, 0, 12)) >mod : Symbol(mod, Decl(index.ts, 1, 6)) ->correctVersionApplied : Symbol(mod.correctVersionApplied, Decl(new-types.d.ts, 0, 12)) +>correctVersionApplied : Symbol(correctVersionApplied, Decl(new-types.d.ts, 0, 12)) === tests/cases/conformance/node/index.mts === // esm format file @@ -14,9 +14,9 @@ import * as mod from "inner"; >mod : Symbol(mod, Decl(index.mts, 1, 6)) mod.correctVersionApplied; ->mod.correctVersionApplied : Symbol(mod.correctVersionApplied, Decl(new-types.d.ts, 0, 12)) +>mod.correctVersionApplied : Symbol(correctVersionApplied, Decl(new-types.d.ts, 0, 12)) >mod : Symbol(mod, Decl(index.mts, 1, 6)) ->correctVersionApplied : Symbol(mod.correctVersionApplied, Decl(new-types.d.ts, 0, 12)) +>correctVersionApplied : Symbol(correctVersionApplied, Decl(new-types.d.ts, 0, 12)) === tests/cases/conformance/node/index.cts === // cjs format file diff --git a/tests/baselines/reference/nodeModulesTypesVersionPackageExports(module=nodenext).js b/tests/baselines/reference/nodeModulesTypesVersionPackageExports(module=nodenext).js index 8cb62238370ee..1553828a6ae5e 100644 --- a/tests/baselines/reference/nodeModulesTypesVersionPackageExports(module=nodenext).js +++ b/tests/baselines/reference/nodeModulesTypesVersionPackageExports(module=nodenext).js @@ -63,7 +63,11 @@ mod.correctVersionApplied; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/nodeModulesTypesVersionPackageExports(module=nodenext).symbols b/tests/baselines/reference/nodeModulesTypesVersionPackageExports(module=nodenext).symbols index a9d7f0b89eedb..19b9d0e40d993 100644 --- a/tests/baselines/reference/nodeModulesTypesVersionPackageExports(module=nodenext).symbols +++ b/tests/baselines/reference/nodeModulesTypesVersionPackageExports(module=nodenext).symbols @@ -4,9 +4,9 @@ import * as mod from "inner"; >mod : Symbol(mod, Decl(index.ts, 1, 6)) mod.correctVersionApplied; ->mod.correctVersionApplied : Symbol(mod.correctVersionApplied, Decl(new-types.d.ts, 0, 12)) +>mod.correctVersionApplied : Symbol(correctVersionApplied, Decl(new-types.d.ts, 0, 12)) >mod : Symbol(mod, Decl(index.ts, 1, 6)) ->correctVersionApplied : Symbol(mod.correctVersionApplied, Decl(new-types.d.ts, 0, 12)) +>correctVersionApplied : Symbol(correctVersionApplied, Decl(new-types.d.ts, 0, 12)) === tests/cases/conformance/node/index.mts === // esm format file @@ -14,9 +14,9 @@ import * as mod from "inner"; >mod : Symbol(mod, Decl(index.mts, 1, 6)) mod.correctVersionApplied; ->mod.correctVersionApplied : Symbol(mod.correctVersionApplied, Decl(new-types.d.ts, 0, 12)) +>mod.correctVersionApplied : Symbol(correctVersionApplied, Decl(new-types.d.ts, 0, 12)) >mod : Symbol(mod, Decl(index.mts, 1, 6)) ->correctVersionApplied : Symbol(mod.correctVersionApplied, Decl(new-types.d.ts, 0, 12)) +>correctVersionApplied : Symbol(correctVersionApplied, Decl(new-types.d.ts, 0, 12)) === tests/cases/conformance/node/index.cts === // cjs format file diff --git a/tests/baselines/reference/nodeNextCjsNamespaceImportDefault1.js b/tests/baselines/reference/nodeNextCjsNamespaceImportDefault1.js new file mode 100644 index 0000000000000..21fb7dd0ff9d5 --- /dev/null +++ b/tests/baselines/reference/nodeNextCjsNamespaceImportDefault1.js @@ -0,0 +1,31 @@ +//// [tests/cases/compiler/nodeNextCjsNamespaceImportDefault1.ts] //// + +//// [a.cts] +export const a: number = 1; +//// [foo.mts] +import d, {a} from './a.cjs'; +import * as ns from './a.cjs'; +export {d, a, ns}; + +d.a; +ns.default.a; + +//// [a.cjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.a = void 0; +exports.a = 1; +//// [foo.mjs] +import d, { a } from './a.cjs'; +import * as ns from './a.cjs'; +export { d, a, ns }; +d.a; +ns.default.a; + + +//// [a.d.cts] +export declare const a: number; +//// [foo.d.mts] +import d, { a } from './a.cjs'; +import * as ns from './a.cjs'; +export { d, a, ns }; diff --git a/tests/baselines/reference/nodeNextCjsNamespaceImportDefault1.symbols b/tests/baselines/reference/nodeNextCjsNamespaceImportDefault1.symbols new file mode 100644 index 0000000000000..40b938713d8ee --- /dev/null +++ b/tests/baselines/reference/nodeNextCjsNamespaceImportDefault1.symbols @@ -0,0 +1,29 @@ +=== tests/cases/compiler/src/a.cts === +export const a: number = 1; +>a : Symbol(a, Decl(a.cts, 0, 12)) + +=== tests/cases/compiler/src/foo.mts === +import d, {a} from './a.cjs'; +>d : Symbol(d, Decl(foo.mts, 0, 6)) +>a : Symbol(a, Decl(foo.mts, 0, 11)) + +import * as ns from './a.cjs'; +>ns : Symbol(ns, Decl(foo.mts, 1, 6)) + +export {d, a, ns}; +>d : Symbol(d, Decl(foo.mts, 2, 8)) +>a : Symbol(a, Decl(foo.mts, 2, 10)) +>ns : Symbol(ns, Decl(foo.mts, 2, 13)) + +d.a; +>d.a : Symbol(d.a, Decl(a.cts, 0, 12)) +>d : Symbol(d, Decl(foo.mts, 0, 6)) +>a : Symbol(d.a, Decl(a.cts, 0, 12)) + +ns.default.a; +>ns.default.a : Symbol(d.a, Decl(a.cts, 0, 12)) +>ns.default : Symbol(d.default) +>ns : Symbol(ns, Decl(foo.mts, 1, 6)) +>default : Symbol(d.default) +>a : Symbol(d.a, Decl(a.cts, 0, 12)) + diff --git a/tests/baselines/reference/nodeNextCjsNamespaceImportDefault1.types b/tests/baselines/reference/nodeNextCjsNamespaceImportDefault1.types new file mode 100644 index 0000000000000..ecf6e18068b79 --- /dev/null +++ b/tests/baselines/reference/nodeNextCjsNamespaceImportDefault1.types @@ -0,0 +1,30 @@ +=== tests/cases/compiler/src/a.cts === +export const a: number = 1; +>a : number +>1 : 1 + +=== tests/cases/compiler/src/foo.mts === +import d, {a} from './a.cjs'; +>d : typeof d +>a : number + +import * as ns from './a.cjs'; +>ns : typeof ns + +export {d, a, ns}; +>d : typeof d +>a : number +>ns : typeof ns + +d.a; +>d.a : number +>d : typeof d +>a : number + +ns.default.a; +>ns.default.a : number +>ns.default : typeof d +>ns : typeof ns +>default : typeof d +>a : number + diff --git a/tests/baselines/reference/nodeNextCjsNamespaceImportDefault2.js b/tests/baselines/reference/nodeNextCjsNamespaceImportDefault2.js new file mode 100644 index 0000000000000..d80587fc6a809 --- /dev/null +++ b/tests/baselines/reference/nodeNextCjsNamespaceImportDefault2.js @@ -0,0 +1,35 @@ +//// [tests/cases/compiler/nodeNextCjsNamespaceImportDefault2.ts] //// + +//// [a.cts] +export const a: number = 1; +export default 'string'; +//// [foo.mts] +import d, {a} from './a.cjs'; +import * as ns from './a.cjs'; +export {d, a, ns}; + +d.a; +ns.default.a; + +//// [a.cjs] +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.a = void 0; +exports.a = 1; +exports.default = 'string'; +//// [foo.mjs] +import d, { a } from './a.cjs'; +import * as ns from './a.cjs'; +export { d, a, ns }; +d.a; +ns.default.a; + + +//// [a.d.cts] +export declare const a: number; +declare const _default: "string"; +export default _default; +//// [foo.d.mts] +import d, { a } from './a.cjs'; +import * as ns from './a.cjs'; +export { d, a, ns }; diff --git a/tests/baselines/reference/nodeNextCjsNamespaceImportDefault2.symbols b/tests/baselines/reference/nodeNextCjsNamespaceImportDefault2.symbols new file mode 100644 index 0000000000000..078fb88aa5d63 --- /dev/null +++ b/tests/baselines/reference/nodeNextCjsNamespaceImportDefault2.symbols @@ -0,0 +1,30 @@ +=== tests/cases/compiler/src/a.cts === +export const a: number = 1; +>a : Symbol(a, Decl(a.cts, 0, 12)) + +export default 'string'; +=== tests/cases/compiler/src/foo.mts === +import d, {a} from './a.cjs'; +>d : Symbol(d, Decl(foo.mts, 0, 6)) +>a : Symbol(a, Decl(foo.mts, 0, 11)) + +import * as ns from './a.cjs'; +>ns : Symbol(ns, Decl(foo.mts, 1, 6)) + +export {d, a, ns}; +>d : Symbol(d, Decl(foo.mts, 2, 8)) +>a : Symbol(a, Decl(foo.mts, 2, 10)) +>ns : Symbol(ns, Decl(foo.mts, 2, 13)) + +d.a; +>d.a : Symbol(d.a, Decl(a.cts, 0, 12)) +>d : Symbol(d, Decl(foo.mts, 0, 6)) +>a : Symbol(d.a, Decl(a.cts, 0, 12)) + +ns.default.a; +>ns.default.a : Symbol(d.a, Decl(a.cts, 0, 12)) +>ns.default : Symbol(d.default) +>ns : Symbol(ns, Decl(foo.mts, 1, 6)) +>default : Symbol(d.default) +>a : Symbol(d.a, Decl(a.cts, 0, 12)) + diff --git a/tests/baselines/reference/nodeNextCjsNamespaceImportDefault2.types b/tests/baselines/reference/nodeNextCjsNamespaceImportDefault2.types new file mode 100644 index 0000000000000..17894e3aaf918 --- /dev/null +++ b/tests/baselines/reference/nodeNextCjsNamespaceImportDefault2.types @@ -0,0 +1,31 @@ +=== tests/cases/compiler/src/a.cts === +export const a: number = 1; +>a : number +>1 : 1 + +export default 'string'; +=== tests/cases/compiler/src/foo.mts === +import d, {a} from './a.cjs'; +>d : typeof d +>a : number + +import * as ns from './a.cjs'; +>ns : typeof ns + +export {d, a, ns}; +>d : typeof d +>a : number +>ns : typeof ns + +d.a; +>d.a : number +>d : typeof d +>a : number + +ns.default.a; +>ns.default.a : number +>ns.default : typeof d +>ns : typeof ns +>default : typeof d +>a : number + diff --git a/tests/baselines/reference/nodeNextEsmImportsOfPackagesWithExtensionlessMains.js b/tests/baselines/reference/nodeNextEsmImportsOfPackagesWithExtensionlessMains.js new file mode 100644 index 0000000000000..9eb7e3dd4bf52 --- /dev/null +++ b/tests/baselines/reference/nodeNextEsmImportsOfPackagesWithExtensionlessMains.js @@ -0,0 +1,42 @@ +//// [tests/cases/compiler/nodeNextEsmImportsOfPackagesWithExtensionlessMains.ts] //// + +//// [package.json] +{ + "name": "@types/ip", + "version": "1.1.0", + "main": "", + "types": "index" +} +//// [index.d.ts] +export function address(): string; +//// [package.json] +{ + "name": "nullthrows", + "version": "1.1.1", + "main": "nullthrows.js", + "types": "nullthrows.d.ts" +} +//// [nullthrows.d.ts] +declare function nullthrows(x: any): any; +declare namespace nullthrows { + export {nullthrows as default}; +} +export = nullthrows; +//// [package.json] +{ + "type": "module" +} +//// [index.ts] +import * as ip from 'ip'; +import nullthrows from 'nullthrows'; // shouldn't be callable, `nullthrows` is a cjs package, so the `default` is the module itself + +export function getAddress(): string { + return nullthrows(ip.address()); +} + +//// [index.js] +import * as ip from 'ip'; +import nullthrows from 'nullthrows'; // shouldn't be callable, `nullthrows` is a cjs package, so the `default` is the module itself +export function getAddress() { + return nullthrows(ip.address()); +} diff --git a/tests/baselines/reference/nodeNextEsmImportsOfPackagesWithExtensionlessMains.symbols b/tests/baselines/reference/nodeNextEsmImportsOfPackagesWithExtensionlessMains.symbols new file mode 100644 index 0000000000000..01fae1acf1a92 --- /dev/null +++ b/tests/baselines/reference/nodeNextEsmImportsOfPackagesWithExtensionlessMains.symbols @@ -0,0 +1,35 @@ +=== tests/cases/compiler/index.ts === +import * as ip from 'ip'; +>ip : Symbol(ip, Decl(index.ts, 0, 6)) + +import nullthrows from 'nullthrows'; // shouldn't be callable, `nullthrows` is a cjs package, so the `default` is the module itself +>nullthrows : Symbol(nullthrows, Decl(index.ts, 1, 6)) + +export function getAddress(): string { +>getAddress : Symbol(getAddress, Decl(index.ts, 1, 36)) + + return nullthrows(ip.address()); +>nullthrows : Symbol(nullthrows, Decl(index.ts, 1, 6)) +>ip.address : Symbol(ip.address, Decl(index.d.ts, 0, 0)) +>ip : Symbol(ip, Decl(index.ts, 0, 6)) +>address : Symbol(ip.address, Decl(index.d.ts, 0, 0)) +} +=== tests/cases/compiler/node_modules/@types/ip/index.d.ts === +export function address(): string; +>address : Symbol(address, Decl(index.d.ts, 0, 0)) + +=== tests/cases/compiler/node_modules/nullthrows/nullthrows.d.ts === +declare function nullthrows(x: any): any; +>nullthrows : Symbol(nullthrows, Decl(nullthrows.d.ts, 0, 0), Decl(nullthrows.d.ts, 0, 41)) +>x : Symbol(x, Decl(nullthrows.d.ts, 0, 28)) + +declare namespace nullthrows { +>nullthrows : Symbol(nullthrows, Decl(nullthrows.d.ts, 0, 0), Decl(nullthrows.d.ts, 0, 41)) + + export {nullthrows as default}; +>nullthrows : Symbol(nullthrows, Decl(nullthrows.d.ts, 0, 0), Decl(nullthrows.d.ts, 0, 41)) +>default : Symbol(default, Decl(nullthrows.d.ts, 2, 12)) +} +export = nullthrows; +>nullthrows : Symbol(nullthrows, Decl(nullthrows.d.ts, 0, 0), Decl(nullthrows.d.ts, 0, 41)) + diff --git a/tests/baselines/reference/nodeNextEsmImportsOfPackagesWithExtensionlessMains.types b/tests/baselines/reference/nodeNextEsmImportsOfPackagesWithExtensionlessMains.types new file mode 100644 index 0000000000000..5fbeeb4fa24ae --- /dev/null +++ b/tests/baselines/reference/nodeNextEsmImportsOfPackagesWithExtensionlessMains.types @@ -0,0 +1,37 @@ +=== tests/cases/compiler/index.ts === +import * as ip from 'ip'; +>ip : typeof ip + +import nullthrows from 'nullthrows'; // shouldn't be callable, `nullthrows` is a cjs package, so the `default` is the module itself +>nullthrows : typeof nullthrows + +export function getAddress(): string { +>getAddress : () => string + + return nullthrows(ip.address()); +>nullthrows(ip.address()) : any +>nullthrows : typeof nullthrows +>ip.address() : string +>ip.address : () => string +>ip : typeof ip +>address : () => string +} +=== tests/cases/compiler/node_modules/@types/ip/index.d.ts === +export function address(): string; +>address : () => string + +=== tests/cases/compiler/node_modules/nullthrows/nullthrows.d.ts === +declare function nullthrows(x: any): any; +>nullthrows : typeof nullthrows +>x : any + +declare namespace nullthrows { +>nullthrows : typeof nullthrows + + export {nullthrows as default}; +>nullthrows : typeof nullthrows +>default : typeof nullthrows +} +export = nullthrows; +>nullthrows : typeof nullthrows + diff --git a/tests/baselines/reference/nodeNextImportModeImplicitIndexResolution.errors.txt b/tests/baselines/reference/nodeNextImportModeImplicitIndexResolution.errors.txt new file mode 100644 index 0000000000000..cf759f6040d06 --- /dev/null +++ b/tests/baselines/reference/nodeNextImportModeImplicitIndexResolution.errors.txt @@ -0,0 +1,31 @@ +tests/cases/compiler/index.ts(2,31): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. +tests/cases/compiler/index.ts(3,31): error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. + + +==== tests/cases/compiler/node_modules/pkg/package.json (0 errors) ==== + { + "name": "pkg", + "version": "0.0.1" + } +==== tests/cases/compiler/node_modules/pkg/index.d.ts (0 errors) ==== + export const item = 4; +==== tests/cases/compiler/pkg/package.json (0 errors) ==== + { + "private": true + } +==== tests/cases/compiler/pkg/index.d.ts (0 errors) ==== + export const item = 4; +==== tests/cases/compiler/package.json (0 errors) ==== + { + "type": "module", + "private": true + } +==== tests/cases/compiler/index.ts (2 errors) ==== + import { item } from "pkg"; // should work (`index.js` is assumed to be the entrypoint for packages found via nonrelative import) + import { item as item2 } from "./pkg"; // shouldn't work (`index.js` is _not_ assumed to be the entrypoint for packages found via relative import) + ~~~~~~~ +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. + import { item as item3 } from "./node_modules/pkg" // _even if they're in a node_modules folder_ + ~~~~~~~~~~~~~~~~~~~~ +!!! error TS2834: Relative import paths need explicit file extensions in EcmaScript imports when '--moduleResolution' is 'node12' or 'nodenext'. Consider adding an extension to the import path. + \ No newline at end of file diff --git a/tests/baselines/reference/nodeNextImportModeImplicitIndexResolution.js b/tests/baselines/reference/nodeNextImportModeImplicitIndexResolution.js new file mode 100644 index 0000000000000..9ae72ef450a5e --- /dev/null +++ b/tests/baselines/reference/nodeNextImportModeImplicitIndexResolution.js @@ -0,0 +1,28 @@ +//// [tests/cases/compiler/nodeNextImportModeImplicitIndexResolution.ts] //// + +//// [package.json] +{ + "name": "pkg", + "version": "0.0.1" +} +//// [index.d.ts] +export const item = 4; +//// [package.json] +{ + "private": true +} +//// [index.d.ts] +export const item = 4; +//// [package.json] +{ + "type": "module", + "private": true +} +//// [index.ts] +import { item } from "pkg"; // should work (`index.js` is assumed to be the entrypoint for packages found via nonrelative import) +import { item as item2 } from "./pkg"; // shouldn't work (`index.js` is _not_ assumed to be the entrypoint for packages found via relative import) +import { item as item3 } from "./node_modules/pkg" // _even if they're in a node_modules folder_ + + +//// [index.js] +export {}; diff --git a/tests/baselines/reference/nodeNextImportModeImplicitIndexResolution.symbols b/tests/baselines/reference/nodeNextImportModeImplicitIndexResolution.symbols new file mode 100644 index 0000000000000..c58b28d74ee89 --- /dev/null +++ b/tests/baselines/reference/nodeNextImportModeImplicitIndexResolution.symbols @@ -0,0 +1,18 @@ +=== tests/cases/compiler/node_modules/pkg/index.d.ts === +export const item = 4; +>item : Symbol(item, Decl(index.d.ts, 0, 12)) + +=== tests/cases/compiler/pkg/index.d.ts === +export const item = 4; +>item : Symbol(item, Decl(index.d.ts, 0, 12)) + +=== tests/cases/compiler/index.ts === +import { item } from "pkg"; // should work (`index.js` is assumed to be the entrypoint for packages found via nonrelative import) +>item : Symbol(item, Decl(index.ts, 0, 8)) + +import { item as item2 } from "./pkg"; // shouldn't work (`index.js` is _not_ assumed to be the entrypoint for packages found via relative import) +>item2 : Symbol(item2, Decl(index.ts, 1, 8)) + +import { item as item3 } from "./node_modules/pkg" // _even if they're in a node_modules folder_ +>item3 : Symbol(item3, Decl(index.ts, 2, 8)) + diff --git a/tests/baselines/reference/nodeNextImportModeImplicitIndexResolution.types b/tests/baselines/reference/nodeNextImportModeImplicitIndexResolution.types new file mode 100644 index 0000000000000..c90e8c11e83cc --- /dev/null +++ b/tests/baselines/reference/nodeNextImportModeImplicitIndexResolution.types @@ -0,0 +1,22 @@ +=== tests/cases/compiler/node_modules/pkg/index.d.ts === +export const item = 4; +>item : 4 +>4 : 4 + +=== tests/cases/compiler/pkg/index.d.ts === +export const item = 4; +>item : 4 +>4 : 4 + +=== tests/cases/compiler/index.ts === +import { item } from "pkg"; // should work (`index.js` is assumed to be the entrypoint for packages found via nonrelative import) +>item : 4 + +import { item as item2 } from "./pkg"; // shouldn't work (`index.js` is _not_ assumed to be the entrypoint for packages found via relative import) +>item : any +>item2 : any + +import { item as item3 } from "./node_modules/pkg" // _even if they're in a node_modules folder_ +>item : any +>item3 : any + diff --git a/tests/baselines/reference/nodeNextPathCompletions.baseline b/tests/baselines/reference/nodeNextPathCompletions.baseline new file mode 100644 index 0000000000000..3e493c991d426 --- /dev/null +++ b/tests/baselines/reference/nodeNextPathCompletions.baseline @@ -0,0 +1,29 @@ +[ + { + "marker": { + "fileName": "/src/foo.ts", + "position": 30, + "name": "" + }, + "completionList": { + "isGlobalCompletion": false, + "isMemberCompletion": false, + "isNewIdentifierLocation": true, + "entries": [ + { + "name": "dependency", + "kind": "external module name", + "kindModifiers": "", + "sortText": "11", + "displayParts": [ + { + "text": "dependency", + "kind": "text" + } + ], + "tags": [] + } + ] + } + } +] \ No newline at end of file diff --git a/tests/baselines/reference/nodePackageSelfName(module=node12).js b/tests/baselines/reference/nodePackageSelfName(module=node12).js index 23c9f6f1fa067..7061f58c6bb04 100644 --- a/tests/baselines/reference/nodePackageSelfName(module=node12).js +++ b/tests/baselines/reference/nodePackageSelfName(module=node12).js @@ -32,7 +32,11 @@ self; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/nodePackageSelfName(module=nodenext).js b/tests/baselines/reference/nodePackageSelfName(module=nodenext).js index 23c9f6f1fa067..7061f58c6bb04 100644 --- a/tests/baselines/reference/nodePackageSelfName(module=nodenext).js +++ b/tests/baselines/reference/nodePackageSelfName(module=nodenext).js @@ -32,7 +32,11 @@ self; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/nodePackageSelfNameScoped(module=node12).js b/tests/baselines/reference/nodePackageSelfNameScoped(module=node12).js index c812b758e9bba..8738c8041a9b6 100644 --- a/tests/baselines/reference/nodePackageSelfNameScoped(module=node12).js +++ b/tests/baselines/reference/nodePackageSelfNameScoped(module=node12).js @@ -32,7 +32,11 @@ self; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/nodePackageSelfNameScoped(module=nodenext).js b/tests/baselines/reference/nodePackageSelfNameScoped(module=nodenext).js index c812b758e9bba..8738c8041a9b6 100644 --- a/tests/baselines/reference/nodePackageSelfNameScoped(module=nodenext).js +++ b/tests/baselines/reference/nodePackageSelfNameScoped(module=nodenext).js @@ -32,7 +32,11 @@ self; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/nonPrimitiveAndTypeVariables.errors.txt b/tests/baselines/reference/nonPrimitiveAndTypeVariables.errors.txt index c939cd392ac3c..c3e8acb3923ab 100644 --- a/tests/baselines/reference/nonPrimitiveAndTypeVariables.errors.txt +++ b/tests/baselines/reference/nonPrimitiveAndTypeVariables.errors.txt @@ -1,7 +1,5 @@ tests/cases/conformance/types/nonPrimitive/nonPrimitiveAndTypeVariables.ts(10,9): error TS2322: Type 'T' is not assignable to type 'object'. tests/cases/conformance/types/nonPrimitive/nonPrimitiveAndTypeVariables.ts(11,9): error TS2322: Type 'T' is not assignable to type 'object | U'. - Type 'T' is not assignable to type 'U'. - 'U' could be instantiated with an arbitrary type which could be unrelated to 'T'. ==== tests/cases/conformance/types/nonPrimitive/nonPrimitiveAndTypeVariables.ts (2 errors) ==== @@ -20,7 +18,5 @@ tests/cases/conformance/types/nonPrimitive/nonPrimitiveAndTypeVariables.ts(11,9) let b: U | object = x; // Error ~ !!! error TS2322: Type 'T' is not assignable to type 'object | U'. -!!! error TS2322: Type 'T' is not assignable to type 'U'. -!!! error TS2322: 'U' could be instantiated with an arbitrary type which could be unrelated to 'T'. } \ No newline at end of file diff --git a/tests/baselines/reference/numberFormatCurrencySign.js b/tests/baselines/reference/numberFormatCurrencySign.js index 9f2482e2bffdc..d4d844d6b7f9b 100644 --- a/tests/baselines/reference/numberFormatCurrencySign.js +++ b/tests/baselines/reference/numberFormatCurrencySign.js @@ -3,4 +3,5 @@ const str = new Intl.NumberFormat('en-NZ', { style: 'currency', currency: 'NZD', //// [numberFormatCurrencySign.js] -var str = new Intl.NumberFormat('en-NZ', { style: 'currency', currency: 'NZD', currencySign: 'accounting' }).format(999999); +"use strict"; +const str = new Intl.NumberFormat('en-NZ', { style: 'currency', currency: 'NZD', currencySign: 'accounting' }).format(999999); diff --git a/tests/baselines/reference/numberFormatCurrencySign.symbols b/tests/baselines/reference/numberFormatCurrencySign.symbols index 3252448682c91..0a22340bcc554 100644 --- a/tests/baselines/reference/numberFormatCurrencySign.symbols +++ b/tests/baselines/reference/numberFormatCurrencySign.symbols @@ -1,12 +1,12 @@ -=== tests/cases/compiler/numberFormatCurrencySign.ts === +=== tests/cases/conformance/es2020/numberFormatCurrencySign.ts === const str = new Intl.NumberFormat('en-NZ', { style: 'currency', currency: 'NZD', currencySign: 'accounting' }).format(999999); >str : Symbol(str, Decl(numberFormatCurrencySign.ts, 0, 5)) ->new Intl.NumberFormat('en-NZ', { style: 'currency', currency: 'NZD', currencySign: 'accounting' }).format : Symbol(Intl.NumberFormat.format, Decl(lib.es5.d.ts, --, --)) ->Intl.NumberFormat : Symbol(Intl.NumberFormat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) ->Intl : Symbol(Intl, Decl(lib.es5.d.ts, --, --)) ->NumberFormat : Symbol(Intl.NumberFormat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>new Intl.NumberFormat('en-NZ', { style: 'currency', currency: 'NZD', currencySign: 'accounting' }).format : Symbol(Intl.NumberFormat.format, Decl(lib.es5.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --)) +>Intl.NumberFormat : Symbol(Intl.NumberFormat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2018.intl.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.esnext.intl.d.ts, --, --)) +>Intl : Symbol(Intl, Decl(lib.es5.d.ts, --, --), Decl(lib.es2017.intl.d.ts, --, --), Decl(lib.es2018.intl.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2020.intl.d.ts, --, --) ... and 2 more) +>NumberFormat : Symbol(Intl.NumberFormat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2018.intl.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.esnext.intl.d.ts, --, --)) >style : Symbol(style, Decl(numberFormatCurrencySign.ts, 0, 44)) >currency : Symbol(currency, Decl(numberFormatCurrencySign.ts, 0, 63)) >currencySign : Symbol(currencySign, Decl(numberFormatCurrencySign.ts, 0, 80)) ->format : Symbol(Intl.NumberFormat.format, Decl(lib.es5.d.ts, --, --)) +>format : Symbol(Intl.NumberFormat.format, Decl(lib.es5.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --)) diff --git a/tests/baselines/reference/numberFormatCurrencySign.types b/tests/baselines/reference/numberFormatCurrencySign.types index 343951cb8e943..02ccb864c8537 100644 --- a/tests/baselines/reference/numberFormatCurrencySign.types +++ b/tests/baselines/reference/numberFormatCurrencySign.types @@ -1,12 +1,12 @@ -=== tests/cases/compiler/numberFormatCurrencySign.ts === +=== tests/cases/conformance/es2020/numberFormatCurrencySign.ts === const str = new Intl.NumberFormat('en-NZ', { style: 'currency', currency: 'NZD', currencySign: 'accounting' }).format(999999); >str : string >new Intl.NumberFormat('en-NZ', { style: 'currency', currency: 'NZD', currencySign: 'accounting' }).format(999999) : string ->new Intl.NumberFormat('en-NZ', { style: 'currency', currency: 'NZD', currencySign: 'accounting' }).format : (value: number) => string +>new Intl.NumberFormat('en-NZ', { style: 'currency', currency: 'NZD', currencySign: 'accounting' }).format : { (value: number): string; (value: number | bigint): string; } >new Intl.NumberFormat('en-NZ', { style: 'currency', currency: 'NZD', currencySign: 'accounting' }) : Intl.NumberFormat ->Intl.NumberFormat : { (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; new (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; supportedLocalesOf(locales: string | string[], options?: Intl.NumberFormatOptions): string[]; } +>Intl.NumberFormat : { (locales?: string | string[] | undefined, options?: Intl.NumberFormatOptions | undefined): Intl.NumberFormat; new (locales?: string | string[] | undefined, options?: Intl.NumberFormatOptions | undefined): Intl.NumberFormat; supportedLocalesOf(locales: string | string[], options?: Intl.NumberFormatOptions | undefined): string[]; readonly prototype: Intl.NumberFormat; } >Intl : typeof Intl ->NumberFormat : { (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; new (locales?: string | string[], options?: Intl.NumberFormatOptions): Intl.NumberFormat; supportedLocalesOf(locales: string | string[], options?: Intl.NumberFormatOptions): string[]; } +>NumberFormat : { (locales?: string | string[] | undefined, options?: Intl.NumberFormatOptions | undefined): Intl.NumberFormat; new (locales?: string | string[] | undefined, options?: Intl.NumberFormatOptions | undefined): Intl.NumberFormat; supportedLocalesOf(locales: string | string[], options?: Intl.NumberFormatOptions | undefined): string[]; readonly prototype: Intl.NumberFormat; } >'en-NZ' : "en-NZ" >{ style: 'currency', currency: 'NZD', currencySign: 'accounting' } : { style: string; currency: string; currencySign: string; } >style : string @@ -15,6 +15,6 @@ const str = new Intl.NumberFormat('en-NZ', { style: 'currency', currency: 'NZD', >'NZD' : "NZD" >currencySign : string >'accounting' : "accounting" ->format : (value: number) => string +>format : { (value: number): string; (value: number | bigint): string; } >999999 : 999999 diff --git a/tests/baselines/reference/numberFormatCurrencySignResolved.js b/tests/baselines/reference/numberFormatCurrencySignResolved.js new file mode 100644 index 0000000000000..1a225275a3c02 --- /dev/null +++ b/tests/baselines/reference/numberFormatCurrencySignResolved.js @@ -0,0 +1,9 @@ +//// [numberFormatCurrencySignResolved.ts] +const options = new Intl.NumberFormat('en-NZ', { style: 'currency', currency: 'NZD', currencySign: 'accounting' }).resolvedOptions(); +const currencySign = options.currencySign; + + +//// [numberFormatCurrencySignResolved.js] +"use strict"; +const options = new Intl.NumberFormat('en-NZ', { style: 'currency', currency: 'NZD', currencySign: 'accounting' }).resolvedOptions(); +const currencySign = options.currencySign; diff --git a/tests/baselines/reference/numberFormatCurrencySignResolved.symbols b/tests/baselines/reference/numberFormatCurrencySignResolved.symbols new file mode 100644 index 0000000000000..4c1b52928b0ab --- /dev/null +++ b/tests/baselines/reference/numberFormatCurrencySignResolved.symbols @@ -0,0 +1,18 @@ +=== tests/cases/conformance/es2020/numberFormatCurrencySignResolved.ts === +const options = new Intl.NumberFormat('en-NZ', { style: 'currency', currency: 'NZD', currencySign: 'accounting' }).resolvedOptions(); +>options : Symbol(options, Decl(numberFormatCurrencySignResolved.ts, 0, 5)) +>new Intl.NumberFormat('en-NZ', { style: 'currency', currency: 'NZD', currencySign: 'accounting' }).resolvedOptions : Symbol(Intl.NumberFormat.resolvedOptions, Decl(lib.es5.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --)) +>Intl.NumberFormat : Symbol(Intl.NumberFormat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2018.intl.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.esnext.intl.d.ts, --, --)) +>Intl : Symbol(Intl, Decl(lib.es5.d.ts, --, --), Decl(lib.es2017.intl.d.ts, --, --), Decl(lib.es2018.intl.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2020.intl.d.ts, --, --) ... and 2 more) +>NumberFormat : Symbol(Intl.NumberFormat, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2018.intl.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.esnext.intl.d.ts, --, --)) +>style : Symbol(style, Decl(numberFormatCurrencySignResolved.ts, 0, 48)) +>currency : Symbol(currency, Decl(numberFormatCurrencySignResolved.ts, 0, 67)) +>currencySign : Symbol(currencySign, Decl(numberFormatCurrencySignResolved.ts, 0, 84)) +>resolvedOptions : Symbol(Intl.NumberFormat.resolvedOptions, Decl(lib.es5.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --)) + +const currencySign = options.currencySign; +>currencySign : Symbol(currencySign, Decl(numberFormatCurrencySignResolved.ts, 1, 5)) +>options.currencySign : Symbol(Intl.ResolvedNumberFormatOptions.currencySign, Decl(lib.es2020.intl.d.ts, --, --)) +>options : Symbol(options, Decl(numberFormatCurrencySignResolved.ts, 0, 5)) +>currencySign : Symbol(Intl.ResolvedNumberFormatOptions.currencySign, Decl(lib.es2020.intl.d.ts, --, --)) + diff --git a/tests/baselines/reference/numberFormatCurrencySignResolved.types b/tests/baselines/reference/numberFormatCurrencySignResolved.types new file mode 100644 index 0000000000000..ac27d12ca9854 --- /dev/null +++ b/tests/baselines/reference/numberFormatCurrencySignResolved.types @@ -0,0 +1,25 @@ +=== tests/cases/conformance/es2020/numberFormatCurrencySignResolved.ts === +const options = new Intl.NumberFormat('en-NZ', { style: 'currency', currency: 'NZD', currencySign: 'accounting' }).resolvedOptions(); +>options : Intl.ResolvedNumberFormatOptions +>new Intl.NumberFormat('en-NZ', { style: 'currency', currency: 'NZD', currencySign: 'accounting' }).resolvedOptions() : Intl.ResolvedNumberFormatOptions +>new Intl.NumberFormat('en-NZ', { style: 'currency', currency: 'NZD', currencySign: 'accounting' }).resolvedOptions : { (): Intl.ResolvedNumberFormatOptions; (): Intl.ResolvedNumberFormatOptions; } +>new Intl.NumberFormat('en-NZ', { style: 'currency', currency: 'NZD', currencySign: 'accounting' }) : Intl.NumberFormat +>Intl.NumberFormat : { (locales?: string | string[] | undefined, options?: Intl.NumberFormatOptions | undefined): Intl.NumberFormat; new (locales?: string | string[] | undefined, options?: Intl.NumberFormatOptions | undefined): Intl.NumberFormat; supportedLocalesOf(locales: string | string[], options?: Intl.NumberFormatOptions | undefined): string[]; readonly prototype: Intl.NumberFormat; } +>Intl : typeof Intl +>NumberFormat : { (locales?: string | string[] | undefined, options?: Intl.NumberFormatOptions | undefined): Intl.NumberFormat; new (locales?: string | string[] | undefined, options?: Intl.NumberFormatOptions | undefined): Intl.NumberFormat; supportedLocalesOf(locales: string | string[], options?: Intl.NumberFormatOptions | undefined): string[]; readonly prototype: Intl.NumberFormat; } +>'en-NZ' : "en-NZ" +>{ style: 'currency', currency: 'NZD', currencySign: 'accounting' } : { style: string; currency: string; currencySign: string; } +>style : string +>'currency' : "currency" +>currency : string +>'NZD' : "NZD" +>currencySign : string +>'accounting' : "accounting" +>resolvedOptions : { (): Intl.ResolvedNumberFormatOptions; (): Intl.ResolvedNumberFormatOptions; } + +const currencySign = options.currencySign; +>currencySign : string | undefined +>options.currencySign : string | undefined +>options : Intl.ResolvedNumberFormatOptions +>currencySign : string | undefined + diff --git a/tests/baselines/reference/numericStringNamedPropertyEquivalence.errors.txt b/tests/baselines/reference/numericStringNamedPropertyEquivalence.errors.txt index 7d3ff163300d5..4d2ad7178632a 100644 --- a/tests/baselines/reference/numericStringNamedPropertyEquivalence.errors.txt +++ b/tests/baselines/reference/numericStringNamedPropertyEquivalence.errors.txt @@ -4,7 +4,7 @@ tests/cases/conformance/types/objectTypeLiteral/propertySignatures/numericString tests/cases/conformance/types/objectTypeLiteral/propertySignatures/numericStringNamedPropertyEquivalence.ts(16,5): error TS2300: Duplicate identifier '1'. tests/cases/conformance/types/objectTypeLiteral/propertySignatures/numericStringNamedPropertyEquivalence.ts(17,5): error TS2300: Duplicate identifier '1'. tests/cases/conformance/types/objectTypeLiteral/propertySignatures/numericStringNamedPropertyEquivalence.ts(17,5): error TS2717: Subsequent property declarations must have the same type. Property '1.0' must be of type 'number', but here has type 'string'. -tests/cases/conformance/types/objectTypeLiteral/propertySignatures/numericStringNamedPropertyEquivalence.ts(22,5): error TS2300: Duplicate identifier '0'. +tests/cases/conformance/types/objectTypeLiteral/propertySignatures/numericStringNamedPropertyEquivalence.ts(22,5): error TS1117: An object literal cannot have multiple properties with the same name. ==== tests/cases/conformance/types/objectTypeLiteral/propertySignatures/numericStringNamedPropertyEquivalence.ts (7 errors) ==== @@ -44,5 +44,5 @@ tests/cases/conformance/types/objectTypeLiteral/propertySignatures/numericString "0": '', 0: '' ~ -!!! error TS2300: Duplicate identifier '0'. +!!! error TS1117: An object literal cannot have multiple properties with the same name. } \ No newline at end of file diff --git a/tests/baselines/reference/objectAssignLikeNonUnionResult.js b/tests/baselines/reference/objectAssignLikeNonUnionResult.js new file mode 100644 index 0000000000000..f39d6fc68c742 --- /dev/null +++ b/tests/baselines/reference/objectAssignLikeNonUnionResult.js @@ -0,0 +1,25 @@ +//// [objectAssignLikeNonUnionResult.ts] +interface Interface { + field: number; +} +const defaultValue: Interface = { field: 1 }; + +declare function assign(target: T, source: U): T & U; + +// Displayed type: Interface & { field: number } +// Underlying type: Something else... +const data1 = assign(defaultValue, Date.now() > 3 ? { field: 2 } : {}); + +type ExtractRawComponent = T extends { __raw: infer C } ? [L1: T, L2: C] : [R1: T]; +type t1 = ExtractRawComponent; + +// ??? +type Explode = T extends { x: infer A } ? [A] : 'X'; +// 'X' | [unknown] -- why? +type e1 = Explode; + +//// [objectAssignLikeNonUnionResult.js] +var defaultValue = { field: 1 }; +// Displayed type: Interface & { field: number } +// Underlying type: Something else... +var data1 = assign(defaultValue, Date.now() > 3 ? { field: 2 } : {}); diff --git a/tests/baselines/reference/objectAssignLikeNonUnionResult.symbols b/tests/baselines/reference/objectAssignLikeNonUnionResult.symbols new file mode 100644 index 0000000000000..4b7231fd1c386 --- /dev/null +++ b/tests/baselines/reference/objectAssignLikeNonUnionResult.symbols @@ -0,0 +1,64 @@ +=== tests/cases/compiler/objectAssignLikeNonUnionResult.ts === +interface Interface { +>Interface : Symbol(Interface, Decl(objectAssignLikeNonUnionResult.ts, 0, 0)) + + field: number; +>field : Symbol(Interface.field, Decl(objectAssignLikeNonUnionResult.ts, 0, 21)) +} +const defaultValue: Interface = { field: 1 }; +>defaultValue : Symbol(defaultValue, Decl(objectAssignLikeNonUnionResult.ts, 3, 5)) +>Interface : Symbol(Interface, Decl(objectAssignLikeNonUnionResult.ts, 0, 0)) +>field : Symbol(field, Decl(objectAssignLikeNonUnionResult.ts, 3, 33)) + +declare function assign(target: T, source: U): T & U; +>assign : Symbol(assign, Decl(objectAssignLikeNonUnionResult.ts, 3, 45)) +>T : Symbol(T, Decl(objectAssignLikeNonUnionResult.ts, 5, 24)) +>U : Symbol(U, Decl(objectAssignLikeNonUnionResult.ts, 5, 26)) +>target : Symbol(target, Decl(objectAssignLikeNonUnionResult.ts, 5, 30)) +>T : Symbol(T, Decl(objectAssignLikeNonUnionResult.ts, 5, 24)) +>source : Symbol(source, Decl(objectAssignLikeNonUnionResult.ts, 5, 40)) +>U : Symbol(U, Decl(objectAssignLikeNonUnionResult.ts, 5, 26)) +>T : Symbol(T, Decl(objectAssignLikeNonUnionResult.ts, 5, 24)) +>U : Symbol(U, Decl(objectAssignLikeNonUnionResult.ts, 5, 26)) + +// Displayed type: Interface & { field: number } +// Underlying type: Something else... +const data1 = assign(defaultValue, Date.now() > 3 ? { field: 2 } : {}); +>data1 : Symbol(data1, Decl(objectAssignLikeNonUnionResult.ts, 9, 5)) +>assign : Symbol(assign, Decl(objectAssignLikeNonUnionResult.ts, 3, 45)) +>defaultValue : Symbol(defaultValue, Decl(objectAssignLikeNonUnionResult.ts, 3, 5)) +>Date.now : Symbol(DateConstructor.now, Decl(lib.es5.d.ts, --, --)) +>Date : Symbol(Date, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.scripthost.d.ts, --, --)) +>now : Symbol(DateConstructor.now, Decl(lib.es5.d.ts, --, --)) +>field : Symbol(field, Decl(objectAssignLikeNonUnionResult.ts, 9, 53)) + +type ExtractRawComponent = T extends { __raw: infer C } ? [L1: T, L2: C] : [R1: T]; +>ExtractRawComponent : Symbol(ExtractRawComponent, Decl(objectAssignLikeNonUnionResult.ts, 9, 71)) +>T : Symbol(T, Decl(objectAssignLikeNonUnionResult.ts, 11, 25)) +>T : Symbol(T, Decl(objectAssignLikeNonUnionResult.ts, 11, 25)) +>__raw : Symbol(__raw, Decl(objectAssignLikeNonUnionResult.ts, 11, 41)) +>C : Symbol(C, Decl(objectAssignLikeNonUnionResult.ts, 11, 54)) +>T : Symbol(T, Decl(objectAssignLikeNonUnionResult.ts, 11, 25)) +>C : Symbol(C, Decl(objectAssignLikeNonUnionResult.ts, 11, 54)) +>T : Symbol(T, Decl(objectAssignLikeNonUnionResult.ts, 11, 25)) + +type t1 = ExtractRawComponent; +>t1 : Symbol(t1, Decl(objectAssignLikeNonUnionResult.ts, 11, 86)) +>ExtractRawComponent : Symbol(ExtractRawComponent, Decl(objectAssignLikeNonUnionResult.ts, 9, 71)) +>data1 : Symbol(data1, Decl(objectAssignLikeNonUnionResult.ts, 9, 5)) + +// ??? +type Explode = T extends { x: infer A } ? [A] : 'X'; +>Explode : Symbol(Explode, Decl(objectAssignLikeNonUnionResult.ts, 12, 44)) +>T : Symbol(T, Decl(objectAssignLikeNonUnionResult.ts, 15, 13)) +>T : Symbol(T, Decl(objectAssignLikeNonUnionResult.ts, 15, 13)) +>x : Symbol(x, Decl(objectAssignLikeNonUnionResult.ts, 15, 29)) +>A : Symbol(A, Decl(objectAssignLikeNonUnionResult.ts, 15, 38)) +>A : Symbol(A, Decl(objectAssignLikeNonUnionResult.ts, 15, 38)) + +// 'X' | [unknown] -- why? +type e1 = Explode; +>e1 : Symbol(e1, Decl(objectAssignLikeNonUnionResult.ts, 15, 55)) +>Explode : Symbol(Explode, Decl(objectAssignLikeNonUnionResult.ts, 12, 44)) +>data1 : Symbol(data1, Decl(objectAssignLikeNonUnionResult.ts, 9, 5)) + diff --git a/tests/baselines/reference/objectAssignLikeNonUnionResult.types b/tests/baselines/reference/objectAssignLikeNonUnionResult.types new file mode 100644 index 0000000000000..7553d3e589c1c --- /dev/null +++ b/tests/baselines/reference/objectAssignLikeNonUnionResult.types @@ -0,0 +1,53 @@ +=== tests/cases/compiler/objectAssignLikeNonUnionResult.ts === +interface Interface { + field: number; +>field : number +} +const defaultValue: Interface = { field: 1 }; +>defaultValue : Interface +>{ field: 1 } : { field: number; } +>field : number +>1 : 1 + +declare function assign(target: T, source: U): T & U; +>assign : (target: T, source: U) => T & U +>target : T +>source : U + +// Displayed type: Interface & { field: number } +// Underlying type: Something else... +const data1 = assign(defaultValue, Date.now() > 3 ? { field: 2 } : {}); +>data1 : Interface & { field: number; } +>assign(defaultValue, Date.now() > 3 ? { field: 2 } : {}) : Interface & { field: number; } +>assign : (target: T, source: U) => T & U +>defaultValue : Interface +>Date.now() > 3 ? { field: 2 } : {} : { field: number; } | {} +>Date.now() > 3 : boolean +>Date.now() : number +>Date.now : () => number +>Date : DateConstructor +>now : () => number +>3 : 3 +>{ field: 2 } : { field: number; } +>field : number +>2 : 2 +>{} : {} + +type ExtractRawComponent = T extends { __raw: infer C } ? [L1: T, L2: C] : [R1: T]; +>ExtractRawComponent : ExtractRawComponent +>__raw : C + +type t1 = ExtractRawComponent; +>t1 : [R1: Interface & { field: number; }] +>data1 : Interface & { field: number; } + +// ??? +type Explode = T extends { x: infer A } ? [A] : 'X'; +>Explode : Explode +>x : A + +// 'X' | [unknown] -- why? +type e1 = Explode; +>e1 : "X" +>data1 : Interface & { field: number; } + diff --git a/tests/baselines/reference/objectCreate-errors.errors.txt b/tests/baselines/reference/objectCreate-errors.errors.txt index 12f62cc4d2cb3..01ba95215504c 100644 --- a/tests/baselines/reference/objectCreate-errors.errors.txt +++ b/tests/baselines/reference/objectCreate-errors.errors.txt @@ -1,23 +1,23 @@ -tests/cases/compiler/objectCreate-errors.ts(1,24): error TS2345: Argument of type '1' is not assignable to parameter of type 'object | null'. -tests/cases/compiler/objectCreate-errors.ts(2,24): error TS2345: Argument of type '"string"' is not assignable to parameter of type 'object | null'. -tests/cases/compiler/objectCreate-errors.ts(3,24): error TS2345: Argument of type 'false' is not assignable to parameter of type 'object | null'. +tests/cases/compiler/objectCreate-errors.ts(1,24): error TS2345: Argument of type 'number' is not assignable to parameter of type 'object'. +tests/cases/compiler/objectCreate-errors.ts(2,24): error TS2345: Argument of type 'string' is not assignable to parameter of type 'object'. +tests/cases/compiler/objectCreate-errors.ts(3,24): error TS2345: Argument of type 'boolean' is not assignable to parameter of type 'object'. tests/cases/compiler/objectCreate-errors.ts(4,24): error TS2345: Argument of type 'undefined' is not assignable to parameter of type 'object | null'. -tests/cases/compiler/objectCreate-errors.ts(7,24): error TS2345: Argument of type '1' is not assignable to parameter of type 'object | null'. -tests/cases/compiler/objectCreate-errors.ts(8,24): error TS2345: Argument of type '"string"' is not assignable to parameter of type 'object | null'. -tests/cases/compiler/objectCreate-errors.ts(9,24): error TS2345: Argument of type 'false' is not assignable to parameter of type 'object | null'. +tests/cases/compiler/objectCreate-errors.ts(7,24): error TS2345: Argument of type 'number' is not assignable to parameter of type 'object'. +tests/cases/compiler/objectCreate-errors.ts(8,24): error TS2345: Argument of type 'string' is not assignable to parameter of type 'object'. +tests/cases/compiler/objectCreate-errors.ts(9,24): error TS2345: Argument of type 'boolean' is not assignable to parameter of type 'object'. tests/cases/compiler/objectCreate-errors.ts(10,24): error TS2345: Argument of type 'undefined' is not assignable to parameter of type 'object | null'. ==== tests/cases/compiler/objectCreate-errors.ts (8 errors) ==== var e1 = Object.create(1); // Error ~ -!!! error TS2345: Argument of type '1' is not assignable to parameter of type 'object | null'. +!!! error TS2345: Argument of type 'number' is not assignable to parameter of type 'object'. var e2 = Object.create("string"); // Error ~~~~~~~~ -!!! error TS2345: Argument of type '"string"' is not assignable to parameter of type 'object | null'. +!!! error TS2345: Argument of type 'string' is not assignable to parameter of type 'object'. var e3 = Object.create(false); // Error ~~~~~ -!!! error TS2345: Argument of type 'false' is not assignable to parameter of type 'object | null'. +!!! error TS2345: Argument of type 'boolean' is not assignable to parameter of type 'object'. var e4 = Object.create(undefined); // Error ~~~~~~~~~ !!! error TS2345: Argument of type 'undefined' is not assignable to parameter of type 'object | null'. @@ -25,13 +25,13 @@ tests/cases/compiler/objectCreate-errors.ts(10,24): error TS2345: Argument of ty var e5 = Object.create(1, {}); // Error ~ -!!! error TS2345: Argument of type '1' is not assignable to parameter of type 'object | null'. +!!! error TS2345: Argument of type 'number' is not assignable to parameter of type 'object'. var e6 = Object.create("string", {}); // Error ~~~~~~~~ -!!! error TS2345: Argument of type '"string"' is not assignable to parameter of type 'object | null'. +!!! error TS2345: Argument of type 'string' is not assignable to parameter of type 'object'. var e7 = Object.create(false, {}); // Error ~~~~~ -!!! error TS2345: Argument of type 'false' is not assignable to parameter of type 'object | null'. +!!! error TS2345: Argument of type 'boolean' is not assignable to parameter of type 'object'. var e8 = Object.create(undefined, {}); // Error ~~~~~~~~~ !!! error TS2345: Argument of type 'undefined' is not assignable to parameter of type 'object | null'. \ No newline at end of file diff --git a/tests/baselines/reference/objectFreeze.errors.txt b/tests/baselines/reference/objectFreeze.errors.txt index 5a399c0498493..4a78f28365f5d 100644 --- a/tests/baselines/reference/objectFreeze.errors.txt +++ b/tests/baselines/reference/objectFreeze.errors.txt @@ -18,7 +18,7 @@ tests/cases/compiler/objectFreeze.ts(12,3): error TS2540: Cannot assign to 'b' b ~~~~ !!! error TS2542: Index signature in type 'readonly number[]' only permits reading. - const o = Object.freeze({ a: 1, b: "string" }); + const o = Object.freeze({ a: 1, b: "string", c: true }); o.b = o.a.toString(); ~ !!! error TS2540: Cannot assign to 'b' because it is a read-only property. diff --git a/tests/baselines/reference/objectFreeze.js b/tests/baselines/reference/objectFreeze.js index f75bcf67db781..f4a69c5865582 100644 --- a/tests/baselines/reference/objectFreeze.js +++ b/tests/baselines/reference/objectFreeze.js @@ -9,7 +9,7 @@ new c(1); const a = Object.freeze([1, 2, 3]); a[0] = a[2].toString(); -const o = Object.freeze({ a: 1, b: "string" }); +const o = Object.freeze({ a: 1, b: "string", c: true }); o.b = o.a.toString(); @@ -25,5 +25,5 @@ var c = Object.freeze(C); new c(1); var a = Object.freeze([1, 2, 3]); a[0] = a[2].toString(); -var o = Object.freeze({ a: 1, b: "string" }); +var o = Object.freeze({ a: 1, b: "string", c: true }); o.b = o.a.toString(); diff --git a/tests/baselines/reference/objectFreeze.symbols b/tests/baselines/reference/objectFreeze.symbols index 929ab44ddb453..0a3a7f66be0f3 100644 --- a/tests/baselines/reference/objectFreeze.symbols +++ b/tests/baselines/reference/objectFreeze.symbols @@ -1,9 +1,9 @@ === tests/cases/compiler/objectFreeze.ts === const f = Object.freeze(function foo(a: number, b: string) { return false; }); >f : Symbol(f, Decl(objectFreeze.ts, 0, 5)) ->Object.freeze : Symbol(ObjectConstructor.freeze, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>Object.freeze : Symbol(ObjectConstructor.freeze, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) >Object : Symbol(Object, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) ->freeze : Symbol(ObjectConstructor.freeze, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>freeze : Symbol(ObjectConstructor.freeze, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) >foo : Symbol(foo, Decl(objectFreeze.ts, 0, 24)) >a : Symbol(a, Decl(objectFreeze.ts, 0, 37)) >b : Symbol(b, Decl(objectFreeze.ts, 0, 47)) @@ -17,9 +17,9 @@ class C { constructor(a: number) { } } const c = Object.freeze(C); >c : Symbol(c, Decl(objectFreeze.ts, 4, 5)) ->Object.freeze : Symbol(ObjectConstructor.freeze, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>Object.freeze : Symbol(ObjectConstructor.freeze, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) >Object : Symbol(Object, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) ->freeze : Symbol(ObjectConstructor.freeze, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>freeze : Symbol(ObjectConstructor.freeze, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) >C : Symbol(C, Decl(objectFreeze.ts, 1, 19)) new c(1); @@ -27,9 +27,9 @@ new c(1); const a = Object.freeze([1, 2, 3]); >a : Symbol(a, Decl(objectFreeze.ts, 7, 5)) ->Object.freeze : Symbol(ObjectConstructor.freeze, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>Object.freeze : Symbol(ObjectConstructor.freeze, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) >Object : Symbol(Object, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) ->freeze : Symbol(ObjectConstructor.freeze, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>freeze : Symbol(ObjectConstructor.freeze, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) a[0] = a[2].toString(); >a : Symbol(a, Decl(objectFreeze.ts, 7, 5)) @@ -37,13 +37,14 @@ a[0] = a[2].toString(); >a : Symbol(a, Decl(objectFreeze.ts, 7, 5)) >toString : Symbol(Number.toString, Decl(lib.es5.d.ts, --, --)) -const o = Object.freeze({ a: 1, b: "string" }); +const o = Object.freeze({ a: 1, b: "string", c: true }); >o : Symbol(o, Decl(objectFreeze.ts, 10, 5)) ->Object.freeze : Symbol(ObjectConstructor.freeze, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>Object.freeze : Symbol(ObjectConstructor.freeze, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) >Object : Symbol(Object, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) ->freeze : Symbol(ObjectConstructor.freeze, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>freeze : Symbol(ObjectConstructor.freeze, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) >a : Symbol(a, Decl(objectFreeze.ts, 10, 25)) >b : Symbol(b, Decl(objectFreeze.ts, 10, 31)) +>c : Symbol(c, Decl(objectFreeze.ts, 10, 44)) o.b = o.a.toString(); >o.b : Symbol(b, Decl(objectFreeze.ts, 10, 31)) diff --git a/tests/baselines/reference/objectFreeze.types b/tests/baselines/reference/objectFreeze.types index df70ab4e4de22..b39293e109230 100644 --- a/tests/baselines/reference/objectFreeze.types +++ b/tests/baselines/reference/objectFreeze.types @@ -2,9 +2,9 @@ const f = Object.freeze(function foo(a: number, b: string) { return false; }); >f : (a: number, b: string) => false >Object.freeze(function foo(a: number, b: string) { return false; }) : (a: number, b: string) => false ->Object.freeze : { (a: T[]): readonly T[]; (f: T): T; (o: T): Readonly; } +>Object.freeze : { (a: T[]): readonly T[]; (f: T): T; (o: T): Readonly; (o: T): Readonly; } >Object : ObjectConstructor ->freeze : { (a: T[]): readonly T[]; (f: T): T; (o: T): Readonly; } +>freeze : { (a: T[]): readonly T[]; (f: T): T; (o: T): Readonly; (o: T): Readonly; } >function foo(a: number, b: string) { return false; } : (a: number, b: string) => false >foo : (a: number, b: string) => false >a : number @@ -26,9 +26,9 @@ class C { constructor(a: number) { } } const c = Object.freeze(C); >c : typeof C >Object.freeze(C) : typeof C ->Object.freeze : { (a: T[]): readonly T[]; (f: T): T; (o: T): Readonly; } +>Object.freeze : { (a: T[]): readonly T[]; (f: T): T; (o: T): Readonly; (o: T): Readonly; } >Object : ObjectConstructor ->freeze : { (a: T[]): readonly T[]; (f: T): T; (o: T): Readonly; } +>freeze : { (a: T[]): readonly T[]; (f: T): T; (o: T): Readonly; (o: T): Readonly; } >C : typeof C new c(1); @@ -39,9 +39,9 @@ new c(1); const a = Object.freeze([1, 2, 3]); >a : readonly number[] >Object.freeze([1, 2, 3]) : readonly number[] ->Object.freeze : { (a: T[]): readonly T[]; (f: T): T; (o: T): Readonly; } +>Object.freeze : { (a: T[]): readonly T[]; (f: T): T; (o: T): Readonly; (o: T): Readonly; } >Object : ObjectConstructor ->freeze : { (a: T[]): readonly T[]; (f: T): T; (o: T): Readonly; } +>freeze : { (a: T[]): readonly T[]; (f: T): T; (o: T): Readonly; (o: T): Readonly; } >[1, 2, 3] : number[] >1 : 1 >2 : 2 @@ -59,27 +59,29 @@ a[0] = a[2].toString(); >2 : 2 >toString : (radix?: number) => string -const o = Object.freeze({ a: 1, b: "string" }); ->o : Readonly<{ a: number; b: string; }> ->Object.freeze({ a: 1, b: "string" }) : Readonly<{ a: number; b: string; }> ->Object.freeze : { (a: T[]): readonly T[]; (f: T): T; (o: T): Readonly; } +const o = Object.freeze({ a: 1, b: "string", c: true }); +>o : Readonly<{ a: 1; b: "string"; c: true; }> +>Object.freeze({ a: 1, b: "string", c: true }) : Readonly<{ a: 1; b: "string"; c: true; }> +>Object.freeze : { (a: T[]): readonly T[]; (f: T): T; (o: T): Readonly; (o: T): Readonly; } >Object : ObjectConstructor ->freeze : { (a: T[]): readonly T[]; (f: T): T; (o: T): Readonly; } ->{ a: 1, b: "string" } : { a: number; b: string; } ->a : number +>freeze : { (a: T[]): readonly T[]; (f: T): T; (o: T): Readonly; (o: T): Readonly; } +>{ a: 1, b: "string", c: true } : { a: 1; b: "string"; c: true; } +>a : 1 >1 : 1 ->b : string +>b : "string" >"string" : "string" +>c : true +>true : true o.b = o.a.toString(); >o.b = o.a.toString() : string >o.b : any ->o : Readonly<{ a: number; b: string; }> +>o : Readonly<{ a: 1; b: "string"; c: true; }> >b : any >o.a.toString() : string >o.a.toString : (radix?: number) => string ->o.a : number ->o : Readonly<{ a: number; b: string; }> ->a : number +>o.a : 1 +>o : Readonly<{ a: 1; b: "string"; c: true; }> +>a : 1 >toString : (radix?: number) => string diff --git a/tests/baselines/reference/objectFromEntries.symbols b/tests/baselines/reference/objectFromEntries.symbols index ffb38b0d92ca8..6848200acd700 100644 --- a/tests/baselines/reference/objectFromEntries.symbols +++ b/tests/baselines/reference/objectFromEntries.symbols @@ -22,9 +22,9 @@ const o3 = Object.fromEntries(new Map([[Symbol("key"), "value"]])); const frozenArray = Object.freeze([['a', 1], ['b', 2], ['c', 3]]); >frozenArray : Symbol(frozenArray, Decl(objectFromEntries.ts, 4, 5)) ->Object.freeze : Symbol(ObjectConstructor.freeze, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>Object.freeze : Symbol(ObjectConstructor.freeze, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) >Object : Symbol(Object, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) ->freeze : Symbol(ObjectConstructor.freeze, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>freeze : Symbol(ObjectConstructor.freeze, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) const o4 = Object.fromEntries(frozenArray); >o4 : Symbol(o4, Decl(objectFromEntries.ts, 5, 5)) @@ -35,9 +35,9 @@ const o4 = Object.fromEntries(frozenArray); const frozenArray2: readonly [string, number][] = Object.freeze([['a', 1], ['b', 2], ['c', 3]]); >frozenArray2 : Symbol(frozenArray2, Decl(objectFromEntries.ts, 7, 5)) ->Object.freeze : Symbol(ObjectConstructor.freeze, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>Object.freeze : Symbol(ObjectConstructor.freeze, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) >Object : Symbol(Object, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) ->freeze : Symbol(ObjectConstructor.freeze, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>freeze : Symbol(ObjectConstructor.freeze, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) const o5 = Object.fromEntries(frozenArray2); >o5 : Symbol(o5, Decl(objectFromEntries.ts, 8, 5)) diff --git a/tests/baselines/reference/objectFromEntries.types b/tests/baselines/reference/objectFromEntries.types index 9cfee4f310dd5..0701b9ed5258d 100644 --- a/tests/baselines/reference/objectFromEntries.types +++ b/tests/baselines/reference/objectFromEntries.types @@ -43,9 +43,9 @@ const o3 = Object.fromEntries(new Map([[Symbol("key"), "value"]])); const frozenArray = Object.freeze([['a', 1], ['b', 2], ['c', 3]]); >frozenArray : readonly (string | number)[][] >Object.freeze([['a', 1], ['b', 2], ['c', 3]]) : readonly (string | number)[][] ->Object.freeze : { (a: T[]): readonly T[]; (f: T): T; (o: T): Readonly; } +>Object.freeze : { (a: T[]): readonly T[]; (f: T): T; (o: T): Readonly; (o: T): Readonly; } >Object : ObjectConstructor ->freeze : { (a: T[]): readonly T[]; (f: T): T; (o: T): Readonly; } +>freeze : { (a: T[]): readonly T[]; (f: T): T; (o: T): Readonly; (o: T): Readonly; } >[['a', 1], ['b', 2], ['c', 3]] : (string | number)[][] >['a', 1] : (string | number)[] >'a' : "a" @@ -68,9 +68,9 @@ const o4 = Object.fromEntries(frozenArray); const frozenArray2: readonly [string, number][] = Object.freeze([['a', 1], ['b', 2], ['c', 3]]); >frozenArray2 : readonly [string, number][] >Object.freeze([['a', 1], ['b', 2], ['c', 3]]) : readonly [string, number][] ->Object.freeze : { (a: T[]): readonly T[]; (f: T): T; (o: T): Readonly; } +>Object.freeze : { (a: T[]): readonly T[]; (f: T): T; (o: T): Readonly; (o: T): Readonly; } >Object : ObjectConstructor ->freeze : { (a: T[]): readonly T[]; (f: T): T; (o: T): Readonly; } +>freeze : { (a: T[]): readonly T[]; (f: T): T; (o: T): Readonly; (o: T): Readonly; } >[['a', 1], ['b', 2], ['c', 3]] : [string, number][] >['a', 1] : [string, number] >'a' : "a" diff --git a/tests/baselines/reference/objectLiteralErrors.errors.txt b/tests/baselines/reference/objectLiteralErrors.errors.txt index 2a6114ed0957e..972e2a5524150 100644 --- a/tests/baselines/reference/objectLiteralErrors.errors.txt +++ b/tests/baselines/reference/objectLiteralErrors.errors.txt @@ -1,22 +1,22 @@ -tests/cases/conformance/expressions/objectLiterals/objectLiteralErrors.ts(2,18): error TS2300: Duplicate identifier 'a'. -tests/cases/conformance/expressions/objectLiterals/objectLiteralErrors.ts(3,19): error TS2300: Duplicate identifier 'a'. -tests/cases/conformance/expressions/objectLiterals/objectLiteralErrors.ts(4,18): error TS2300: Duplicate identifier 'a'. -tests/cases/conformance/expressions/objectLiterals/objectLiteralErrors.ts(5,21): error TS2300: Duplicate identifier 'a'. -tests/cases/conformance/expressions/objectLiterals/objectLiteralErrors.ts(6,19): error TS2300: Duplicate identifier 'a'. -tests/cases/conformance/expressions/objectLiterals/objectLiteralErrors.ts(7,18): error TS2300: Duplicate identifier ''a''. -tests/cases/conformance/expressions/objectLiterals/objectLiteralErrors.ts(8,20): error TS2300: Duplicate identifier 'a'. -tests/cases/conformance/expressions/objectLiterals/objectLiteralErrors.ts(9,20): error TS2300: Duplicate identifier '"a"'. -tests/cases/conformance/expressions/objectLiterals/objectLiteralErrors.ts(10,20): error TS2300: Duplicate identifier ''a''. -tests/cases/conformance/expressions/objectLiterals/objectLiteralErrors.ts(11,21): error TS2300: Duplicate identifier ''a''. -tests/cases/conformance/expressions/objectLiterals/objectLiteralErrors.ts(12,21): error TS2300: Duplicate identifier ''1''. -tests/cases/conformance/expressions/objectLiterals/objectLiteralErrors.ts(13,19): error TS2300: Duplicate identifier '0'. -tests/cases/conformance/expressions/objectLiterals/objectLiteralErrors.ts(14,19): error TS2300: Duplicate identifier '0'. -tests/cases/conformance/expressions/objectLiterals/objectLiteralErrors.ts(15,19): error TS2300: Duplicate identifier '0x0'. +tests/cases/conformance/expressions/objectLiterals/objectLiteralErrors.ts(2,18): error TS1117: An object literal cannot have multiple properties with the same name. +tests/cases/conformance/expressions/objectLiterals/objectLiteralErrors.ts(3,19): error TS1117: An object literal cannot have multiple properties with the same name. +tests/cases/conformance/expressions/objectLiterals/objectLiteralErrors.ts(4,18): error TS1117: An object literal cannot have multiple properties with the same name. +tests/cases/conformance/expressions/objectLiterals/objectLiteralErrors.ts(5,21): error TS1117: An object literal cannot have multiple properties with the same name. +tests/cases/conformance/expressions/objectLiterals/objectLiteralErrors.ts(6,19): error TS1117: An object literal cannot have multiple properties with the same name. +tests/cases/conformance/expressions/objectLiterals/objectLiteralErrors.ts(7,18): error TS1117: An object literal cannot have multiple properties with the same name. +tests/cases/conformance/expressions/objectLiterals/objectLiteralErrors.ts(8,20): error TS1117: An object literal cannot have multiple properties with the same name. +tests/cases/conformance/expressions/objectLiterals/objectLiteralErrors.ts(9,20): error TS1117: An object literal cannot have multiple properties with the same name. +tests/cases/conformance/expressions/objectLiterals/objectLiteralErrors.ts(10,20): error TS1117: An object literal cannot have multiple properties with the same name. +tests/cases/conformance/expressions/objectLiterals/objectLiteralErrors.ts(11,21): error TS1117: An object literal cannot have multiple properties with the same name. +tests/cases/conformance/expressions/objectLiterals/objectLiteralErrors.ts(12,21): error TS1117: An object literal cannot have multiple properties with the same name. +tests/cases/conformance/expressions/objectLiterals/objectLiteralErrors.ts(13,19): error TS1117: An object literal cannot have multiple properties with the same name. +tests/cases/conformance/expressions/objectLiterals/objectLiteralErrors.ts(14,19): error TS1117: An object literal cannot have multiple properties with the same name. +tests/cases/conformance/expressions/objectLiterals/objectLiteralErrors.ts(15,19): error TS1117: An object literal cannot have multiple properties with the same name. tests/cases/conformance/expressions/objectLiterals/objectLiteralErrors.ts(16,19): error TS1085: Octal literals are not available when targeting ECMAScript 5 and higher. Use the syntax '0o0'. -tests/cases/conformance/expressions/objectLiterals/objectLiteralErrors.ts(16,19): error TS2300: Duplicate identifier '000'. -tests/cases/conformance/expressions/objectLiterals/objectLiteralErrors.ts(17,23): error TS2300: Duplicate identifier '1e2'. -tests/cases/conformance/expressions/objectLiterals/objectLiteralErrors.ts(18,22): error TS2300: Duplicate identifier '3.2e1'. -tests/cases/conformance/expressions/objectLiterals/objectLiteralErrors.ts(19,25): error TS2300: Duplicate identifier 'a'. +tests/cases/conformance/expressions/objectLiterals/objectLiteralErrors.ts(16,19): error TS1117: An object literal cannot have multiple properties with the same name. +tests/cases/conformance/expressions/objectLiterals/objectLiteralErrors.ts(17,23): error TS1117: An object literal cannot have multiple properties with the same name. +tests/cases/conformance/expressions/objectLiterals/objectLiteralErrors.ts(18,22): error TS1117: An object literal cannot have multiple properties with the same name. +tests/cases/conformance/expressions/objectLiterals/objectLiteralErrors.ts(19,25): error TS1117: An object literal cannot have multiple properties with the same name. tests/cases/conformance/expressions/objectLiterals/objectLiteralErrors.ts(22,12): error TS2300: Duplicate identifier 'a'. tests/cases/conformance/expressions/objectLiterals/objectLiteralErrors.ts(22,22): error TS1119: An object literal cannot have property and accessor with the same name. tests/cases/conformance/expressions/objectLiterals/objectLiteralErrors.ts(22,22): error TS2300: Duplicate identifier 'a'. @@ -74,66 +74,69 @@ tests/cases/conformance/expressions/objectLiterals/objectLiteralErrors.ts(39,46) tests/cases/conformance/expressions/objectLiterals/objectLiteralErrors.ts(42,16): error TS2380: The return type of a 'get' accessor must be assignable to its 'set' accessor type tests/cases/conformance/expressions/objectLiterals/objectLiteralErrors.ts(43,22): error TS2322: Type 'number' is not assignable to type 'string'. tests/cases/conformance/expressions/objectLiterals/objectLiteralErrors.ts(44,16): error TS2380: The return type of a 'get' accessor must be assignable to its 'set' accessor type +tests/cases/conformance/expressions/objectLiterals/objectLiteralErrors.ts(48,7): error TS1312: Did you mean to use a ':'? An '=' can only follow a property name when the containing object literal is part of a destructuring pattern. +tests/cases/conformance/expressions/objectLiterals/objectLiteralErrors.ts(49,7): error TS1312: Did you mean to use a ':'? An '=' can only follow a property name when the containing object literal is part of a destructuring pattern. +tests/cases/conformance/expressions/objectLiterals/objectLiteralErrors.ts(50,5): error TS18016: Private identifiers are not allowed outside class bodies. -==== tests/cases/conformance/expressions/objectLiterals/objectLiteralErrors.ts (76 errors) ==== +==== tests/cases/conformance/expressions/objectLiterals/objectLiteralErrors.ts (79 errors) ==== // Multiple properties with the same name var e1 = { a: 0, a: 0 }; ~ -!!! error TS2300: Duplicate identifier 'a'. +!!! error TS1117: An object literal cannot have multiple properties with the same name. var e2 = { a: '', a: '' }; ~ -!!! error TS2300: Duplicate identifier 'a'. +!!! error TS1117: An object literal cannot have multiple properties with the same name. var e3 = { a: 0, a: '' }; ~ -!!! error TS2300: Duplicate identifier 'a'. +!!! error TS1117: An object literal cannot have multiple properties with the same name. var e4 = { a: true, a: false }; ~ -!!! error TS2300: Duplicate identifier 'a'. +!!! error TS1117: An object literal cannot have multiple properties with the same name. var e5 = { a: {}, a: {} }; ~ -!!! error TS2300: Duplicate identifier 'a'. +!!! error TS1117: An object literal cannot have multiple properties with the same name. var e6 = { a: 0, 'a': 0 }; ~~~ -!!! error TS2300: Duplicate identifier ''a''. +!!! error TS1117: An object literal cannot have multiple properties with the same name. var e7 = { 'a': 0, a: 0 }; ~ -!!! error TS2300: Duplicate identifier 'a'. +!!! error TS1117: An object literal cannot have multiple properties with the same name. var e8 = { 'a': 0, "a": 0 }; ~~~ -!!! error TS2300: Duplicate identifier '"a"'. +!!! error TS1117: An object literal cannot have multiple properties with the same name. var e9 = { 'a': 0, 'a': 0 }; ~~~ -!!! error TS2300: Duplicate identifier ''a''. +!!! error TS1117: An object literal cannot have multiple properties with the same name. var e10 = { "a": 0, 'a': 0 }; ~~~ -!!! error TS2300: Duplicate identifier ''a''. +!!! error TS1117: An object literal cannot have multiple properties with the same name. var e11 = { 1.0: 0, '1': 0 }; ~~~ -!!! error TS2300: Duplicate identifier ''1''. +!!! error TS1117: An object literal cannot have multiple properties with the same name. var e12 = { 0: 0, 0: 0 }; ~ -!!! error TS2300: Duplicate identifier '0'. +!!! error TS1117: An object literal cannot have multiple properties with the same name. var e13 = { 0: 0, 0: 0 }; ~ -!!! error TS2300: Duplicate identifier '0'. +!!! error TS1117: An object literal cannot have multiple properties with the same name. var e14 = { 0: 0, 0x0: 0 }; ~~~ -!!! error TS2300: Duplicate identifier '0x0'. +!!! error TS1117: An object literal cannot have multiple properties with the same name. var e14 = { 0: 0, 000: 0 }; ~~~ !!! error TS1085: Octal literals are not available when targeting ECMAScript 5 and higher. Use the syntax '0o0'. ~~~ -!!! error TS2300: Duplicate identifier '000'. +!!! error TS1117: An object literal cannot have multiple properties with the same name. var e15 = { "100": 0, 1e2: 0 }; ~~~ -!!! error TS2300: Duplicate identifier '1e2'. +!!! error TS1117: An object literal cannot have multiple properties with the same name. var e16 = { 0x20: 0, 3.2e1: 0 }; ~~~~~ -!!! error TS2300: Duplicate identifier '3.2e1'. +!!! error TS1117: An object literal cannot have multiple properties with the same name. var e17 = { a: 0, b: 1, a: 0 }; ~ -!!! error TS2300: Duplicate identifier 'a'. +!!! error TS1117: An object literal cannot have multiple properties with the same name. // Accessor and property with the same name var f1 = { a: 0, get a() { return 0; } }; @@ -273,4 +276,17 @@ tests/cases/conformance/expressions/objectLiterals/objectLiteralErrors.ts(44,16) var g3 = { get a(): number { return undefined; }, set a(n: string) { } }; ~ !!! error TS2380: The return type of a 'get' accessor must be assignable to its 'set' accessor type + + // did you mean colon errors + var h1 = { + x = 1, + ~ +!!! error TS1312: Did you mean to use a ':'? An '=' can only follow a property name when the containing object literal is part of a destructuring pattern. + y = 2, + ~ +!!! error TS1312: Did you mean to use a ':'? An '=' can only follow a property name when the containing object literal is part of a destructuring pattern. + #z: 3 + ~~ +!!! error TS18016: Private identifiers are not allowed outside class bodies. + } \ No newline at end of file diff --git a/tests/baselines/reference/objectLiteralErrors.js b/tests/baselines/reference/objectLiteralErrors.js index 1f721d3e71ce1..576e23b0b78d0 100644 --- a/tests/baselines/reference/objectLiteralErrors.js +++ b/tests/baselines/reference/objectLiteralErrors.js @@ -43,6 +43,13 @@ var f17 = { a: 0, get b() { return 1; }, get a() { return 0; } }; var g1 = { get a(): number { return 4; }, set a(n: string) { } }; var g2 = { get a() { return 4; }, set a(n: string) { } }; var g3 = { get a(): number { return undefined; }, set a(n: string) { } }; + +// did you mean colon errors +var h1 = { + x = 1, + y = 2, + #z: 3 +} //// [objectLiteralErrors.js] @@ -88,3 +95,9 @@ var f17 = { a: 0, get b() { return 1; }, get a() { return 0; } }; var g1 = { get a() { return 4; }, set a(n) { } }; var g2 = { get a() { return 4; }, set a(n) { } }; var g3 = { get a() { return undefined; }, set a(n) { } }; +// did you mean colon errors +var h1 = { + x: x, + y: y, + : 3 +}; diff --git a/tests/baselines/reference/objectLiteralErrors.symbols b/tests/baselines/reference/objectLiteralErrors.symbols index 94600906a2a15..f2d19b661ebbb 100644 --- a/tests/baselines/reference/objectLiteralErrors.symbols +++ b/tests/baselines/reference/objectLiteralErrors.symbols @@ -203,3 +203,17 @@ var g3 = { get a(): number { return undefined; }, set a(n: string) { } }; >a : Symbol(a, Decl(objectLiteralErrors.ts, 43, 10), Decl(objectLiteralErrors.ts, 43, 49)) >n : Symbol(n, Decl(objectLiteralErrors.ts, 43, 56)) +// did you mean colon errors +var h1 = { +>h1 : Symbol(h1, Decl(objectLiteralErrors.ts, 46, 3)) + + x = 1, +>x : Symbol(x, Decl(objectLiteralErrors.ts, 46, 10)) + + y = 2, +>y : Symbol(y, Decl(objectLiteralErrors.ts, 47, 10)) + + #z: 3 +>#z : Symbol(#z, Decl(objectLiteralErrors.ts, 48, 10)) +} + diff --git a/tests/baselines/reference/objectLiteralErrors.types b/tests/baselines/reference/objectLiteralErrors.types index 271b657fd630e..47631d9b1aed3 100644 --- a/tests/baselines/reference/objectLiteralErrors.types +++ b/tests/baselines/reference/objectLiteralErrors.types @@ -318,3 +318,21 @@ var g3 = { get a(): number { return undefined; }, set a(n: string) { } }; >a : number >n : string +// did you mean colon errors +var h1 = { +>h1 : { x: number; y: number; } +>{ x = 1, y = 2, #z: 3} : { x: number; y: number; } + + x = 1, +>x : any +>1 : 1 + + y = 2, +>y : any +>2 : 2 + + #z: 3 +>#z : number +>3 : 3 +} + diff --git a/tests/baselines/reference/objectLiteralNormalization.errors.txt b/tests/baselines/reference/objectLiteralNormalization.errors.txt index bd14787178ba9..e057800725e21 100644 --- a/tests/baselines/reference/objectLiteralNormalization.errors.txt +++ b/tests/baselines/reference/objectLiteralNormalization.errors.txt @@ -1,4 +1,4 @@ -tests/cases/conformance/expressions/objectLiterals/objectLiteralNormalization.ts(7,14): error TS2322: Type 'number' is not assignable to type 'string | undefined'. +tests/cases/conformance/expressions/objectLiterals/objectLiteralNormalization.ts(7,14): error TS2322: Type 'number' is not assignable to type 'string'. tests/cases/conformance/expressions/objectLiterals/objectLiteralNormalization.ts(8,1): error TS2322: Type '{ b: string; }' is not assignable to type '{ a: number; b?: undefined; c?: undefined; } | { a: number; b: string; c?: undefined; } | { a: number; b: string; c: boolean; }'. Type '{ b: string; }' is missing the following properties from type '{ a: number; b: string; c: boolean; }': a, c tests/cases/conformance/expressions/objectLiterals/objectLiteralNormalization.ts(9,1): error TS2322: Type '{ c: true; }' is not assignable to type '{ a: number; b?: undefined; c?: undefined; } | { a: number; b: string; c?: undefined; } | { a: number; b: string; c: boolean; }'. @@ -22,7 +22,7 @@ tests/cases/conformance/expressions/objectLiterals/objectLiteralNormalization.ts a1 = { a: 1 }; a1 = { a: 0, b: 0 }; // Error ~ -!!! error TS2322: Type 'number' is not assignable to type 'string | undefined'. +!!! error TS2322: Type 'number' is not assignable to type 'string'. !!! related TS6500 tests/cases/conformance/expressions/objectLiterals/objectLiteralNormalization.ts:2:47: The expected type comes from property 'b' which is declared here on type '{ a: number; b?: undefined; c?: undefined; } | { a: number; b: string; c?: undefined; } | { a: number; b: string; c: boolean; }' a1 = { b: "y" }; // Error ~~ diff --git a/tests/baselines/reference/objectLiteralWithSemicolons4.errors.txt b/tests/baselines/reference/objectLiteralWithSemicolons4.errors.txt index 651c0b66df75c..544bddafff278 100644 --- a/tests/baselines/reference/objectLiteralWithSemicolons4.errors.txt +++ b/tests/baselines/reference/objectLiteralWithSemicolons4.errors.txt @@ -9,5 +9,4 @@ tests/cases/compiler/objectLiteralWithSemicolons4.ts(3,1): error TS1005: ',' exp !!! error TS18004: No value exists in scope for the shorthand property 'a'. Either declare one or provide an initializer. ; ~ -!!! error TS1005: ',' expected. -!!! related TS1007 tests/cases/compiler/objectLiteralWithSemicolons4.ts:1:9: The parser expected to find a '}' to match the '{' token here. \ No newline at end of file +!!! error TS1005: ',' expected. \ No newline at end of file diff --git a/tests/baselines/reference/objectSpreadNegative.errors.txt b/tests/baselines/reference/objectSpreadNegative.errors.txt index 397e7e134e00b..eeacad3ef0c98 100644 --- a/tests/baselines/reference/objectSpreadNegative.errors.txt +++ b/tests/baselines/reference/objectSpreadNegative.errors.txt @@ -6,8 +6,8 @@ tests/cases/conformance/types/spread/objectSpreadNegative.ts(16,5): error TS2322 tests/cases/conformance/types/spread/objectSpreadNegative.ts(23,1): error TS2741: Property 'b' is missing in type '{ s: string; }' but required in type '{ s: string; b: boolean; }'. tests/cases/conformance/types/spread/objectSpreadNegative.ts(25,1): error TS2741: Property 's' is missing in type '{ b: boolean; }' but required in type '{ s: string; b: boolean; }'. tests/cases/conformance/types/spread/objectSpreadNegative.ts(28,20): error TS2783: 'b' is specified more than once, so this usage will be overwritten. -tests/cases/conformance/types/spread/objectSpreadNegative.ts(28,36): error TS2300: Duplicate identifier 'b'. -tests/cases/conformance/types/spread/objectSpreadNegative.ts(28,53): error TS2300: Duplicate identifier 'b'. +tests/cases/conformance/types/spread/objectSpreadNegative.ts(28,36): error TS1117: An object literal cannot have multiple properties with the same name. +tests/cases/conformance/types/spread/objectSpreadNegative.ts(28,53): error TS1117: An object literal cannot have multiple properties with the same name. tests/cases/conformance/types/spread/objectSpreadNegative.ts(32,7): error TS2783: 'b' is specified more than once, so this usage will be overwritten. tests/cases/conformance/types/spread/objectSpreadNegative.ts(37,7): error TS2783: 'b' is specified more than once, so this usage will be overwritten. tests/cases/conformance/types/spread/objectSpreadNegative.ts(37,7): error TS2783: 'b' is specified more than once, so this usage will be overwritten. @@ -73,9 +73,9 @@ tests/cases/conformance/types/spread/objectSpreadNegative.ts(74,11): error TS233 !!! error TS2783: 'b' is specified more than once, so this usage will be overwritten. !!! related TS2785 tests/cases/conformance/types/spread/objectSpreadNegative.ts:28:30: This spread always overwrites this property. ~ -!!! error TS2300: Duplicate identifier 'b'. +!!! error TS1117: An object literal cannot have multiple properties with the same name. ~ -!!! error TS2300: Duplicate identifier 'b'. +!!! error TS1117: An object literal cannot have multiple properties with the same name. let duplicatedSpread = { ...o, ...o } // Note: ignore changes the order that properties are printed let ignore: { a: number, b: string } = diff --git a/tests/baselines/reference/objectSpreadNegativeParse.errors.txt b/tests/baselines/reference/objectSpreadNegativeParse.errors.txt index 692fb7617da63..b37200c4f0293 100644 --- a/tests/baselines/reference/objectSpreadNegativeParse.errors.txt +++ b/tests/baselines/reference/objectSpreadNegativeParse.errors.txt @@ -28,7 +28,6 @@ tests/cases/conformance/types/spread/objectSpreadNegativeParse.ts(4,20): error T !!! error TS2304: Cannot find name 'matchMedia'. ~ !!! error TS1005: ',' expected. -!!! related TS1007 tests/cases/conformance/types/spread/objectSpreadNegativeParse.ts:3:10: The parser expected to find a '}' to match the '{' token here. ~ !!! error TS1128: Declaration or statement expected. let o10 = { ...get x() { return 12; }}; diff --git a/tests/baselines/reference/objectTypeWithDuplicateNumericProperty.errors.txt b/tests/baselines/reference/objectTypeWithDuplicateNumericProperty.errors.txt index 80931650d0a87..8eba84f03ba2a 100644 --- a/tests/baselines/reference/objectTypeWithDuplicateNumericProperty.errors.txt +++ b/tests/baselines/reference/objectTypeWithDuplicateNumericProperty.errors.txt @@ -9,9 +9,9 @@ tests/cases/conformance/types/members/objectTypeWithDuplicateNumericProperty.ts( tests/cases/conformance/types/members/objectTypeWithDuplicateNumericProperty.ts(20,5): error TS2300: Duplicate identifier '1'. tests/cases/conformance/types/members/objectTypeWithDuplicateNumericProperty.ts(21,5): error TS2300: Duplicate identifier '1'. tests/cases/conformance/types/members/objectTypeWithDuplicateNumericProperty.ts(22,5): error TS2300: Duplicate identifier '1'. -tests/cases/conformance/types/members/objectTypeWithDuplicateNumericProperty.ts(27,5): error TS2300: Duplicate identifier '1.0'. -tests/cases/conformance/types/members/objectTypeWithDuplicateNumericProperty.ts(28,5): error TS2300: Duplicate identifier '1.'. -tests/cases/conformance/types/members/objectTypeWithDuplicateNumericProperty.ts(29,5): error TS2300: Duplicate identifier '1.00'. +tests/cases/conformance/types/members/objectTypeWithDuplicateNumericProperty.ts(27,5): error TS1117: An object literal cannot have multiple properties with the same name. +tests/cases/conformance/types/members/objectTypeWithDuplicateNumericProperty.ts(28,5): error TS1117: An object literal cannot have multiple properties with the same name. +tests/cases/conformance/types/members/objectTypeWithDuplicateNumericProperty.ts(29,5): error TS1117: An object literal cannot have multiple properties with the same name. ==== tests/cases/conformance/types/members/objectTypeWithDuplicateNumericProperty.ts (14 errors) ==== @@ -65,13 +65,13 @@ tests/cases/conformance/types/members/objectTypeWithDuplicateNumericProperty.ts( 1: 1, 1.0: 1, ~~~ -!!! error TS2300: Duplicate identifier '1.0'. +!!! error TS1117: An object literal cannot have multiple properties with the same name. 1.: 1, ~~ -!!! error TS2300: Duplicate identifier '1.'. +!!! error TS1117: An object literal cannot have multiple properties with the same name. 1.00: 1 ~~~~ -!!! error TS2300: Duplicate identifier '1.00'. +!!! error TS1117: An object literal cannot have multiple properties with the same name. } \ No newline at end of file diff --git a/tests/baselines/reference/optionalChainingInTypeAssertions(target=es2015).js b/tests/baselines/reference/optionalChainingInTypeAssertions(target=es2015).js new file mode 100644 index 0000000000000..1c3ccbc1d611c --- /dev/null +++ b/tests/baselines/reference/optionalChainingInTypeAssertions(target=es2015).js @@ -0,0 +1,24 @@ +//// [optionalChainingInTypeAssertions.ts] +class Foo { + m() {} +} + +const foo = new Foo(); + +(foo.m as any)?.(); +(foo.m)?.(); + +/*a1*/(/*a2*/foo.m as any/*a3*/)/*a4*/?.(); +/*b1*/(/*b2*/foo.m/*b3*/)/*b4*/?.(); + + +//// [optionalChainingInTypeAssertions.js] +var _a, _b, _c, _d; +class Foo { + m() { } +} +const foo = new Foo(); +(_a = foo.m) === null || _a === void 0 ? void 0 : _a.call(foo); +(_b = foo.m) === null || _b === void 0 ? void 0 : _b.call(foo); +/*a1*/ (_c = /*a2*/ foo.m /*a3*/ /*a4*/) === null || _c === void 0 ? void 0 : _c.call(foo); +/*b1*/ (_d = /*b2*/ foo.m /*b3*/ /*b4*/) === null || _d === void 0 ? void 0 : _d.call(foo); diff --git a/tests/baselines/reference/optionalChainingInTypeAssertions(target=es2015).symbols b/tests/baselines/reference/optionalChainingInTypeAssertions(target=es2015).symbols new file mode 100644 index 0000000000000..3c84c092176de --- /dev/null +++ b/tests/baselines/reference/optionalChainingInTypeAssertions(target=es2015).symbols @@ -0,0 +1,32 @@ +=== tests/cases/conformance/expressions/optionalChaining/optionalChainingInTypeAssertions.ts === +class Foo { +>Foo : Symbol(Foo, Decl(optionalChainingInTypeAssertions.ts, 0, 0)) + + m() {} +>m : Symbol(Foo.m, Decl(optionalChainingInTypeAssertions.ts, 0, 11)) +} + +const foo = new Foo(); +>foo : Symbol(foo, Decl(optionalChainingInTypeAssertions.ts, 4, 5)) +>Foo : Symbol(Foo, Decl(optionalChainingInTypeAssertions.ts, 0, 0)) + +(foo.m as any)?.(); +>foo.m : Symbol(Foo.m, Decl(optionalChainingInTypeAssertions.ts, 0, 11)) +>foo : Symbol(foo, Decl(optionalChainingInTypeAssertions.ts, 4, 5)) +>m : Symbol(Foo.m, Decl(optionalChainingInTypeAssertions.ts, 0, 11)) + +(foo.m)?.(); +>foo.m : Symbol(Foo.m, Decl(optionalChainingInTypeAssertions.ts, 0, 11)) +>foo : Symbol(foo, Decl(optionalChainingInTypeAssertions.ts, 4, 5)) +>m : Symbol(Foo.m, Decl(optionalChainingInTypeAssertions.ts, 0, 11)) + +/*a1*/(/*a2*/foo.m as any/*a3*/)/*a4*/?.(); +>foo.m : Symbol(Foo.m, Decl(optionalChainingInTypeAssertions.ts, 0, 11)) +>foo : Symbol(foo, Decl(optionalChainingInTypeAssertions.ts, 4, 5)) +>m : Symbol(Foo.m, Decl(optionalChainingInTypeAssertions.ts, 0, 11)) + +/*b1*/(/*b2*/foo.m/*b3*/)/*b4*/?.(); +>foo.m : Symbol(Foo.m, Decl(optionalChainingInTypeAssertions.ts, 0, 11)) +>foo : Symbol(foo, Decl(optionalChainingInTypeAssertions.ts, 4, 5)) +>m : Symbol(Foo.m, Decl(optionalChainingInTypeAssertions.ts, 0, 11)) + diff --git a/tests/baselines/reference/optionalChainingInTypeAssertions(target=es2015).types b/tests/baselines/reference/optionalChainingInTypeAssertions(target=es2015).types new file mode 100644 index 0000000000000..2df0f69dbc56f --- /dev/null +++ b/tests/baselines/reference/optionalChainingInTypeAssertions(target=es2015).types @@ -0,0 +1,45 @@ +=== tests/cases/conformance/expressions/optionalChaining/optionalChainingInTypeAssertions.ts === +class Foo { +>Foo : Foo + + m() {} +>m : () => void +} + +const foo = new Foo(); +>foo : Foo +>new Foo() : Foo +>Foo : typeof Foo + +(foo.m as any)?.(); +>(foo.m as any)?.() : any +>(foo.m as any) : any +>foo.m as any : any +>foo.m : () => void +>foo : Foo +>m : () => void + +(foo.m)?.(); +>(foo.m)?.() : any +>(foo.m) : any +>foo.m : any +>foo.m : () => void +>foo : Foo +>m : () => void + +/*a1*/(/*a2*/foo.m as any/*a3*/)/*a4*/?.(); +>(/*a2*/foo.m as any/*a3*/)/*a4*/?.() : any +>(/*a2*/foo.m as any/*a3*/) : any +>foo.m as any : any +>foo.m : () => void +>foo : Foo +>m : () => void + +/*b1*/(/*b2*/foo.m/*b3*/)/*b4*/?.(); +>(/*b2*/foo.m/*b3*/)/*b4*/?.() : any +>(/*b2*/foo.m/*b3*/) : any +>foo.m : any +>foo.m : () => void +>foo : Foo +>m : () => void + diff --git a/tests/baselines/reference/optionalChainingInTypeAssertions(target=esnext).js b/tests/baselines/reference/optionalChainingInTypeAssertions(target=esnext).js new file mode 100644 index 0000000000000..454b3962c5714 --- /dev/null +++ b/tests/baselines/reference/optionalChainingInTypeAssertions(target=esnext).js @@ -0,0 +1,23 @@ +//// [optionalChainingInTypeAssertions.ts] +class Foo { + m() {} +} + +const foo = new Foo(); + +(foo.m as any)?.(); +(foo.m)?.(); + +/*a1*/(/*a2*/foo.m as any/*a3*/)/*a4*/?.(); +/*b1*/(/*b2*/foo.m/*b3*/)/*b4*/?.(); + + +//// [optionalChainingInTypeAssertions.js] +class Foo { + m() { } +} +const foo = new Foo(); +foo.m?.(); +foo.m?.(); +/*a1*/ /*a2*/ foo.m /*a3*/ /*a4*/?.(); +/*b1*/ /*b2*/ foo.m /*b3*/ /*b4*/?.(); diff --git a/tests/baselines/reference/optionalChainingInTypeAssertions(target=esnext).symbols b/tests/baselines/reference/optionalChainingInTypeAssertions(target=esnext).symbols new file mode 100644 index 0000000000000..3c84c092176de --- /dev/null +++ b/tests/baselines/reference/optionalChainingInTypeAssertions(target=esnext).symbols @@ -0,0 +1,32 @@ +=== tests/cases/conformance/expressions/optionalChaining/optionalChainingInTypeAssertions.ts === +class Foo { +>Foo : Symbol(Foo, Decl(optionalChainingInTypeAssertions.ts, 0, 0)) + + m() {} +>m : Symbol(Foo.m, Decl(optionalChainingInTypeAssertions.ts, 0, 11)) +} + +const foo = new Foo(); +>foo : Symbol(foo, Decl(optionalChainingInTypeAssertions.ts, 4, 5)) +>Foo : Symbol(Foo, Decl(optionalChainingInTypeAssertions.ts, 0, 0)) + +(foo.m as any)?.(); +>foo.m : Symbol(Foo.m, Decl(optionalChainingInTypeAssertions.ts, 0, 11)) +>foo : Symbol(foo, Decl(optionalChainingInTypeAssertions.ts, 4, 5)) +>m : Symbol(Foo.m, Decl(optionalChainingInTypeAssertions.ts, 0, 11)) + +(foo.m)?.(); +>foo.m : Symbol(Foo.m, Decl(optionalChainingInTypeAssertions.ts, 0, 11)) +>foo : Symbol(foo, Decl(optionalChainingInTypeAssertions.ts, 4, 5)) +>m : Symbol(Foo.m, Decl(optionalChainingInTypeAssertions.ts, 0, 11)) + +/*a1*/(/*a2*/foo.m as any/*a3*/)/*a4*/?.(); +>foo.m : Symbol(Foo.m, Decl(optionalChainingInTypeAssertions.ts, 0, 11)) +>foo : Symbol(foo, Decl(optionalChainingInTypeAssertions.ts, 4, 5)) +>m : Symbol(Foo.m, Decl(optionalChainingInTypeAssertions.ts, 0, 11)) + +/*b1*/(/*b2*/foo.m/*b3*/)/*b4*/?.(); +>foo.m : Symbol(Foo.m, Decl(optionalChainingInTypeAssertions.ts, 0, 11)) +>foo : Symbol(foo, Decl(optionalChainingInTypeAssertions.ts, 4, 5)) +>m : Symbol(Foo.m, Decl(optionalChainingInTypeAssertions.ts, 0, 11)) + diff --git a/tests/baselines/reference/optionalChainingInTypeAssertions(target=esnext).types b/tests/baselines/reference/optionalChainingInTypeAssertions(target=esnext).types new file mode 100644 index 0000000000000..2df0f69dbc56f --- /dev/null +++ b/tests/baselines/reference/optionalChainingInTypeAssertions(target=esnext).types @@ -0,0 +1,45 @@ +=== tests/cases/conformance/expressions/optionalChaining/optionalChainingInTypeAssertions.ts === +class Foo { +>Foo : Foo + + m() {} +>m : () => void +} + +const foo = new Foo(); +>foo : Foo +>new Foo() : Foo +>Foo : typeof Foo + +(foo.m as any)?.(); +>(foo.m as any)?.() : any +>(foo.m as any) : any +>foo.m as any : any +>foo.m : () => void +>foo : Foo +>m : () => void + +(foo.m)?.(); +>(foo.m)?.() : any +>(foo.m) : any +>foo.m : any +>foo.m : () => void +>foo : Foo +>m : () => void + +/*a1*/(/*a2*/foo.m as any/*a3*/)/*a4*/?.(); +>(/*a2*/foo.m as any/*a3*/)/*a4*/?.() : any +>(/*a2*/foo.m as any/*a3*/) : any +>foo.m as any : any +>foo.m : () => void +>foo : Foo +>m : () => void + +/*b1*/(/*b2*/foo.m/*b3*/)/*b4*/?.(); +>(/*b2*/foo.m/*b3*/)/*b4*/?.() : any +>(/*b2*/foo.m/*b3*/) : any +>foo.m : any +>foo.m : () => void +>foo : Foo +>m : () => void + diff --git a/tests/baselines/reference/organizeImports/JsxFactoryUsedJs.ts b/tests/baselines/reference/organizeImports/JsxFactoryUsedJs.ts index 430a5b12cd4d4..74da2f99139e0 100644 --- a/tests/baselines/reference/organizeImports/JsxFactoryUsedJs.ts +++ b/tests/baselines/reference/organizeImports/JsxFactoryUsedJs.ts @@ -6,6 +6,5 @@ import { React, Other } from "react"; // ==ORGANIZED== -import { React } from "react";

; diff --git a/tests/baselines/reference/parseErrorIncorrectReturnToken.errors.txt b/tests/baselines/reference/parseErrorIncorrectReturnToken.errors.txt index a5533c3c12af2..c98dfa1cf7f22 100644 --- a/tests/baselines/reference/parseErrorIncorrectReturnToken.errors.txt +++ b/tests/baselines/reference/parseErrorIncorrectReturnToken.errors.txt @@ -25,7 +25,6 @@ tests/cases/compiler/parseErrorIncorrectReturnToken.ts(12,1): error TS1128: Decl m(n: number) => string { ~~ !!! error TS1005: '{' expected. -!!! related TS1007 tests/cases/compiler/parseErrorIncorrectReturnToken.ts:8:9: The parser expected to find a '}' to match the '{' token here. ~~~~~~ !!! error TS1434: Unexpected keyword or identifier. ~~~~~~ diff --git a/tests/baselines/reference/parser0_004152.errors.txt b/tests/baselines/reference/parser0_004152.errors.txt index a1790a5f7305c..e0fc3f48e0843 100644 --- a/tests/baselines/reference/parser0_004152.errors.txt +++ b/tests/baselines/reference/parser0_004152.errors.txt @@ -1,6 +1,6 @@ tests/cases/conformance/parser/ecmascript5/Fuzz/parser0_004152.ts(2,28): error TS2304: Cannot find name 'DisplayPosition'. tests/cases/conformance/parser/ecmascript5/Fuzz/parser0_004152.ts(2,45): error TS1137: Expression or comma expected. -tests/cases/conformance/parser/ecmascript5/Fuzz/parser0_004152.ts(2,46): error TS1068: Unexpected token. A constructor, method, accessor, or property was expected. +tests/cases/conformance/parser/ecmascript5/Fuzz/parser0_004152.ts(2,46): error TS1005: ';' expected. tests/cases/conformance/parser/ecmascript5/Fuzz/parser0_004152.ts(2,49): error TS1005: ';' expected. tests/cases/conformance/parser/ecmascript5/Fuzz/parser0_004152.ts(2,51): error TS2300: Duplicate identifier '3'. tests/cases/conformance/parser/ecmascript5/Fuzz/parser0_004152.ts(2,52): error TS1005: ';' expected. @@ -41,7 +41,7 @@ tests/cases/conformance/parser/ecmascript5/Fuzz/parser0_004152.ts(3,25): error T ~ !!! error TS1137: Expression or comma expected. ~ -!!! error TS1068: Unexpected token. A constructor, method, accessor, or property was expected. +!!! error TS1005: ';' expected. ~ !!! error TS1005: ';' expected. ~ diff --git a/tests/baselines/reference/parserArrowFunctionExpression10.errors.txt b/tests/baselines/reference/parserArrowFunctionExpression10.errors.txt new file mode 100644 index 0000000000000..43cf9de267b85 --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression10.errors.txt @@ -0,0 +1,20 @@ +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression10.ts(1,1): error TS2304: Cannot find name 'a'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression10.ts(1,6): error TS2304: Cannot find name 'b'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression10.ts(1,17): error TS2304: Cannot find name 'd'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression10.ts(1,20): error TS1005: ';' expected. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression10.ts(1,27): error TS2304: Cannot find name 'f'. + + +==== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression10.ts (5 errors) ==== + a ? (b) : c => (d) : e => f + ~ +!!! error TS2304: Cannot find name 'a'. + ~ +!!! error TS2304: Cannot find name 'b'. + ~ +!!! error TS2304: Cannot find name 'd'. + ~ +!!! error TS1005: ';' expected. + ~ +!!! error TS2304: Cannot find name 'f'. + \ No newline at end of file diff --git a/tests/baselines/reference/parserArrowFunctionExpression10.js b/tests/baselines/reference/parserArrowFunctionExpression10.js new file mode 100644 index 0000000000000..86e1e61bb0716 --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression10.js @@ -0,0 +1,7 @@ +//// [parserArrowFunctionExpression10.ts] +a ? (b) : c => (d) : e => f + + +//// [parserArrowFunctionExpression10.js] +a ? (b) : function (c) { return (d); }; +(function (e) { return f; }); diff --git a/tests/baselines/reference/parserArrowFunctionExpression10.symbols b/tests/baselines/reference/parserArrowFunctionExpression10.symbols new file mode 100644 index 0000000000000..f30f0b3e3ca49 --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression10.symbols @@ -0,0 +1,5 @@ +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression10.ts === +a ? (b) : c => (d) : e => f +>c : Symbol(c, Decl(parserArrowFunctionExpression10.ts, 0, 9)) +>e : Symbol(e, Decl(parserArrowFunctionExpression10.ts, 0, 20)) + diff --git a/tests/baselines/reference/parserArrowFunctionExpression10.types b/tests/baselines/reference/parserArrowFunctionExpression10.types new file mode 100644 index 0000000000000..8ec7d69c29559 --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression10.types @@ -0,0 +1,14 @@ +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression10.ts === +a ? (b) : c => (d) : e => f +>a ? (b) : c => (d) : any +>a : any +>(b) : any +>b : any +>c => (d) : (c: any) => any +>c : any +>(d) : any +>d : any +>e => f : (e: any) => any +>e : any +>f : any + diff --git a/tests/baselines/reference/parserArrowFunctionExpression11.errors.txt b/tests/baselines/reference/parserArrowFunctionExpression11.errors.txt new file mode 100644 index 0000000000000..452c9fc6e6433 --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression11.errors.txt @@ -0,0 +1,20 @@ +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression11.ts(1,1): error TS2304: Cannot find name 'a'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression11.ts(1,5): error TS2304: Cannot find name 'b'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression11.ts(1,9): error TS2304: Cannot find name 'c'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression11.ts(1,14): error TS2304: Cannot find name 'd'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression11.ts(1,24): error TS2304: Cannot find name 'f'. + + +==== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression11.ts (5 errors) ==== + a ? b ? c : (d) : e => f + ~ +!!! error TS2304: Cannot find name 'a'. + ~ +!!! error TS2304: Cannot find name 'b'. + ~ +!!! error TS2304: Cannot find name 'c'. + ~ +!!! error TS2304: Cannot find name 'd'. + ~ +!!! error TS2304: Cannot find name 'f'. + \ No newline at end of file diff --git a/tests/baselines/reference/parserArrowFunctionExpression11.js b/tests/baselines/reference/parserArrowFunctionExpression11.js new file mode 100644 index 0000000000000..8562a6b57f90c --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression11.js @@ -0,0 +1,6 @@ +//// [parserArrowFunctionExpression11.ts] +a ? b ? c : (d) : e => f + + +//// [parserArrowFunctionExpression11.js] +a ? b ? c : (d) : function (e) { return f; }; diff --git a/tests/baselines/reference/parserArrowFunctionExpression11.symbols b/tests/baselines/reference/parserArrowFunctionExpression11.symbols new file mode 100644 index 0000000000000..361c2e7fd11a7 --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression11.symbols @@ -0,0 +1,4 @@ +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression11.ts === +a ? b ? c : (d) : e => f +>e : Symbol(e, Decl(parserArrowFunctionExpression11.ts, 0, 17)) + diff --git a/tests/baselines/reference/parserArrowFunctionExpression11.types b/tests/baselines/reference/parserArrowFunctionExpression11.types new file mode 100644 index 0000000000000..e4e9be428ad0e --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression11.types @@ -0,0 +1,13 @@ +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression11.ts === +a ? b ? c : (d) : e => f +>a ? b ? c : (d) : e => f : any +>a : any +>b ? c : (d) : any +>b : any +>c : any +>(d) : any +>d : any +>e => f : (e: any) => any +>e : any +>f : any + diff --git a/tests/baselines/reference/parserArrowFunctionExpression12.errors.txt b/tests/baselines/reference/parserArrowFunctionExpression12.errors.txt new file mode 100644 index 0000000000000..c6cfd8f9ce855 --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression12.errors.txt @@ -0,0 +1,14 @@ +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression12.ts(1,1): error TS2304: Cannot find name 'a'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression12.ts(1,13): error TS2304: Cannot find name 'c'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression12.ts(1,22): error TS2304: Cannot find name 'e'. + + +==== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression12.ts (3 errors) ==== + a ? (b) => (c): d => e + ~ +!!! error TS2304: Cannot find name 'a'. + ~ +!!! error TS2304: Cannot find name 'c'. + ~ +!!! error TS2304: Cannot find name 'e'. + \ No newline at end of file diff --git a/tests/baselines/reference/parserArrowFunctionExpression12.js b/tests/baselines/reference/parserArrowFunctionExpression12.js new file mode 100644 index 0000000000000..dbee37a2660cb --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression12.js @@ -0,0 +1,6 @@ +//// [parserArrowFunctionExpression12.ts] +a ? (b) => (c): d => e + + +//// [parserArrowFunctionExpression12.js] +a ? function (b) { return (c); } : function (d) { return e; }; diff --git a/tests/baselines/reference/parserArrowFunctionExpression12.symbols b/tests/baselines/reference/parserArrowFunctionExpression12.symbols new file mode 100644 index 0000000000000..3a67717232041 --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression12.symbols @@ -0,0 +1,5 @@ +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression12.ts === +a ? (b) => (c): d => e +>b : Symbol(b, Decl(parserArrowFunctionExpression12.ts, 0, 5)) +>d : Symbol(d, Decl(parserArrowFunctionExpression12.ts, 0, 15)) + diff --git a/tests/baselines/reference/parserArrowFunctionExpression12.types b/tests/baselines/reference/parserArrowFunctionExpression12.types new file mode 100644 index 0000000000000..b833ae305a8b1 --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression12.types @@ -0,0 +1,12 @@ +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression12.ts === +a ? (b) => (c): d => e +>a ? (b) => (c): d => e : (b: any) => any +>a : any +>(b) => (c) : (b: any) => any +>b : any +>(c) : any +>c : any +>d => e : (d: any) => any +>d : any +>e : any + diff --git a/tests/baselines/reference/parserArrowFunctionExpression13.errors.txt b/tests/baselines/reference/parserArrowFunctionExpression13.errors.txt new file mode 100644 index 0000000000000..d0ea1c7d179ab --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression13.errors.txt @@ -0,0 +1,11 @@ +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression13.ts(1,1): error TS2304: Cannot find name 'a'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression13.ts(1,11): error TS2304: Cannot find name 'a'. + + +==== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression13.ts (2 errors) ==== + a ? () => a() : (): any => null; + ~ +!!! error TS2304: Cannot find name 'a'. + ~ +!!! error TS2304: Cannot find name 'a'. + \ No newline at end of file diff --git a/tests/baselines/reference/parserArrowFunctionExpression13.js b/tests/baselines/reference/parserArrowFunctionExpression13.js new file mode 100644 index 0000000000000..d208d9ba90a1f --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression13.js @@ -0,0 +1,6 @@ +//// [parserArrowFunctionExpression13.ts] +a ? () => a() : (): any => null; + + +//// [parserArrowFunctionExpression13.js] +a ? function () { return a(); } : function () { return null; }; diff --git a/tests/baselines/reference/parserArrowFunctionExpression13.symbols b/tests/baselines/reference/parserArrowFunctionExpression13.symbols new file mode 100644 index 0000000000000..643cfcf1a2b78 --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression13.symbols @@ -0,0 +1,4 @@ +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression13.ts === +a ? () => a() : (): any => null; +No type information for this code. +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/parserArrowFunctionExpression13.types b/tests/baselines/reference/parserArrowFunctionExpression13.types new file mode 100644 index 0000000000000..9341e27b0c30d --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression13.types @@ -0,0 +1,10 @@ +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression13.ts === +a ? () => a() : (): any => null; +>a ? () => a() : (): any => null : () => any +>a : any +>() => a() : () => any +>a() : any +>a : any +>(): any => null : () => any +>null : null + diff --git a/tests/baselines/reference/parserArrowFunctionExpression14.errors.txt b/tests/baselines/reference/parserArrowFunctionExpression14.errors.txt new file mode 100644 index 0000000000000..b37e09d92ff3a --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression14.errors.txt @@ -0,0 +1,14 @@ +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression14.ts(1,1): error TS2304: Cannot find name 'a'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression14.ts(1,40): error TS2304: Cannot find name 'd'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression14.ts(1,46): error TS2304: Cannot find name 'e'. + + +==== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression14.ts (3 errors) ==== + a() ? (b: number, c?: string): void => d() : e; + ~ +!!! error TS2304: Cannot find name 'a'. + ~ +!!! error TS2304: Cannot find name 'd'. + ~ +!!! error TS2304: Cannot find name 'e'. + \ No newline at end of file diff --git a/tests/baselines/reference/parserArrowFunctionExpression14.js b/tests/baselines/reference/parserArrowFunctionExpression14.js new file mode 100644 index 0000000000000..2dcaae91f3506 --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression14.js @@ -0,0 +1,6 @@ +//// [parserArrowFunctionExpression14.ts] +a() ? (b: number, c?: string): void => d() : e; + + +//// [parserArrowFunctionExpression14.js] +a() ? function (b, c) { return d(); } : e; diff --git a/tests/baselines/reference/parserArrowFunctionExpression14.symbols b/tests/baselines/reference/parserArrowFunctionExpression14.symbols new file mode 100644 index 0000000000000..95584e9f223be --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression14.symbols @@ -0,0 +1,5 @@ +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression14.ts === +a() ? (b: number, c?: string): void => d() : e; +>b : Symbol(b, Decl(parserArrowFunctionExpression14.ts, 0, 7)) +>c : Symbol(c, Decl(parserArrowFunctionExpression14.ts, 0, 17)) + diff --git a/tests/baselines/reference/parserArrowFunctionExpression14.types b/tests/baselines/reference/parserArrowFunctionExpression14.types new file mode 100644 index 0000000000000..1c6d22bb83dc0 --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression14.types @@ -0,0 +1,12 @@ +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression14.ts === +a() ? (b: number, c?: string): void => d() : e; +>a() ? (b: number, c?: string): void => d() : e : any +>a() : any +>a : any +>(b: number, c?: string): void => d() : (b: number, c?: string) => void +>b : number +>c : string +>d() : any +>d : any +>e : any + diff --git a/tests/baselines/reference/parserArrowFunctionExpression8.errors.txt b/tests/baselines/reference/parserArrowFunctionExpression8.errors.txt new file mode 100644 index 0000000000000..1678471ae83db --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression8.errors.txt @@ -0,0 +1,8 @@ +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression8.ts(1,1): error TS2304: Cannot find name 'x'. + + +==== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression8.ts (1 errors) ==== + x ? y => ({ y }) : z => ({ z }) + ~ +!!! error TS2304: Cannot find name 'x'. + \ No newline at end of file diff --git a/tests/baselines/reference/parserArrowFunctionExpression8.js b/tests/baselines/reference/parserArrowFunctionExpression8.js new file mode 100644 index 0000000000000..d34457823bdd7 --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression8.js @@ -0,0 +1,6 @@ +//// [parserArrowFunctionExpression8.ts] +x ? y => ({ y }) : z => ({ z }) + + +//// [parserArrowFunctionExpression8.js] +x ? function (y) { return ({ y: y }); } : function (z) { return ({ z: z }); }; diff --git a/tests/baselines/reference/parserArrowFunctionExpression8.symbols b/tests/baselines/reference/parserArrowFunctionExpression8.symbols new file mode 100644 index 0000000000000..728cf2a31b762 --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression8.symbols @@ -0,0 +1,7 @@ +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression8.ts === +x ? y => ({ y }) : z => ({ z }) +>y : Symbol(y, Decl(parserArrowFunctionExpression8.ts, 0, 3)) +>y : Symbol(y, Decl(parserArrowFunctionExpression8.ts, 0, 11)) +>z : Symbol(z, Decl(parserArrowFunctionExpression8.ts, 0, 18)) +>z : Symbol(z, Decl(parserArrowFunctionExpression8.ts, 0, 26)) + diff --git a/tests/baselines/reference/parserArrowFunctionExpression8.types b/tests/baselines/reference/parserArrowFunctionExpression8.types new file mode 100644 index 0000000000000..29bdcaa25c93e --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression8.types @@ -0,0 +1,15 @@ +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression8.ts === +x ? y => ({ y }) : z => ({ z }) +>x ? y => ({ y }) : z => ({ z }) : ((y: any) => { y: any; }) | ((z: any) => { z: any; }) +>x : any +>y => ({ y }) : (y: any) => { y: any; } +>y : any +>({ y }) : { y: any; } +>{ y } : { y: any; } +>y : any +>z => ({ z }) : (z: any) => { z: any; } +>z : any +>({ z }) : { z: any; } +>{ z } : { z: any; } +>z : any + diff --git a/tests/baselines/reference/parserArrowFunctionExpression8Js.errors.txt b/tests/baselines/reference/parserArrowFunctionExpression8Js.errors.txt new file mode 100644 index 0000000000000..d364171f84949 --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression8Js.errors.txt @@ -0,0 +1,8 @@ +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/file.js(1,1): error TS2304: Cannot find name 'x'. + + +==== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/file.js (1 errors) ==== + x ? y => ({ y }) : z => ({ z }) + ~ +!!! error TS2304: Cannot find name 'x'. + \ No newline at end of file diff --git a/tests/baselines/reference/parserArrowFunctionExpression8Js.js b/tests/baselines/reference/parserArrowFunctionExpression8Js.js new file mode 100644 index 0000000000000..50ba0a4f95000 --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression8Js.js @@ -0,0 +1,6 @@ +//// [file.js] +x ? y => ({ y }) : z => ({ z }) + + +//// [file.js] +x ? function (y) { return ({ y: y }); } : function (z) { return ({ z: z }); }; diff --git a/tests/baselines/reference/parserArrowFunctionExpression8Js.symbols b/tests/baselines/reference/parserArrowFunctionExpression8Js.symbols new file mode 100644 index 0000000000000..c1480e6a57985 --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression8Js.symbols @@ -0,0 +1,7 @@ +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/file.js === +x ? y => ({ y }) : z => ({ z }) +>y : Symbol(y, Decl(file.js, 0, 3)) +>y : Symbol(y, Decl(file.js, 0, 11)) +>z : Symbol(z, Decl(file.js, 0, 18)) +>z : Symbol(z, Decl(file.js, 0, 26)) + diff --git a/tests/baselines/reference/parserArrowFunctionExpression8Js.types b/tests/baselines/reference/parserArrowFunctionExpression8Js.types new file mode 100644 index 0000000000000..7ebfe1aa74a7b --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression8Js.types @@ -0,0 +1,15 @@ +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/file.js === +x ? y => ({ y }) : z => ({ z }) +>x ? y => ({ y }) : z => ({ z }) : ((y: any) => { y: any; }) | ((z: any) => { z: any; }) +>x : any +>y => ({ y }) : (y: any) => { y: any; } +>y : any +>({ y }) : { y: any; } +>{ y } : { y: any; } +>y : any +>z => ({ z }) : (z: any) => { z: any; } +>z : any +>({ z }) : { z: any; } +>{ z } : { z: any; } +>z : any + diff --git a/tests/baselines/reference/parserArrowFunctionExpression9.errors.txt b/tests/baselines/reference/parserArrowFunctionExpression9.errors.txt new file mode 100644 index 0000000000000..f779f2105a284 --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression9.errors.txt @@ -0,0 +1,14 @@ +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression9.ts(1,1): error TS2304: Cannot find name 'b'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression9.ts(1,6): error TS2304: Cannot find name 'c'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression9.ts(1,16): error TS2304: Cannot find name 'e'. + + +==== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression9.ts (3 errors) ==== + b ? (c) : d => e + ~ +!!! error TS2304: Cannot find name 'b'. + ~ +!!! error TS2304: Cannot find name 'c'. + ~ +!!! error TS2304: Cannot find name 'e'. + \ No newline at end of file diff --git a/tests/baselines/reference/parserArrowFunctionExpression9.js b/tests/baselines/reference/parserArrowFunctionExpression9.js new file mode 100644 index 0000000000000..ee3bab86c5854 --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression9.js @@ -0,0 +1,6 @@ +//// [parserArrowFunctionExpression9.ts] +b ? (c) : d => e + + +//// [parserArrowFunctionExpression9.js] +b ? (c) : function (d) { return e; }; diff --git a/tests/baselines/reference/parserArrowFunctionExpression9.symbols b/tests/baselines/reference/parserArrowFunctionExpression9.symbols new file mode 100644 index 0000000000000..dedb9c1e3a19d --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression9.symbols @@ -0,0 +1,4 @@ +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression9.ts === +b ? (c) : d => e +>d : Symbol(d, Decl(parserArrowFunctionExpression9.ts, 0, 9)) + diff --git a/tests/baselines/reference/parserArrowFunctionExpression9.types b/tests/baselines/reference/parserArrowFunctionExpression9.types new file mode 100644 index 0000000000000..e97b04eb48aed --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression9.types @@ -0,0 +1,10 @@ +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression9.ts === +b ? (c) : d => e +>b ? (c) : d => e : any +>b : any +>(c) : any +>c : any +>d => e : (d: any) => any +>d : any +>e : any + diff --git a/tests/baselines/reference/parserConstructorAmbiguity3.errors.txt b/tests/baselines/reference/parserConstructorAmbiguity3.errors.txt index 09677fcbb7af1..6725a9db48955 100644 --- a/tests/baselines/reference/parserConstructorAmbiguity3.errors.txt +++ b/tests/baselines/reference/parserConstructorAmbiguity3.errors.txt @@ -1,12 +1,9 @@ -tests/cases/conformance/parser/ecmascript5/Generics/parserConstructorAmbiguity3.ts(1,1): error TS1384: A 'new' expression with type arguments must always be followed by a parenthesized argument list. tests/cases/conformance/parser/ecmascript5/Generics/parserConstructorAmbiguity3.ts(1,10): error TS2304: Cannot find name 'A'. tests/cases/conformance/parser/ecmascript5/Generics/parserConstructorAmbiguity3.ts(1,10): error TS2558: Expected 0 type arguments, but got 1. -==== tests/cases/conformance/parser/ecmascript5/Generics/parserConstructorAmbiguity3.ts (3 errors) ==== +==== tests/cases/conformance/parser/ecmascript5/Generics/parserConstructorAmbiguity3.ts (2 errors) ==== new Date - ~~~~~~~~~~~ -!!! error TS1384: A 'new' expression with type arguments must always be followed by a parenthesized argument list. ~ !!! error TS2304: Cannot find name 'A'. ~ diff --git a/tests/baselines/reference/parserErrorRecoveryIfStatement2.errors.txt b/tests/baselines/reference/parserErrorRecoveryIfStatement2.errors.txt index 45dd9935a6229..b88c48182a27b 100644 --- a/tests/baselines/reference/parserErrorRecoveryIfStatement2.errors.txt +++ b/tests/baselines/reference/parserErrorRecoveryIfStatement2.errors.txt @@ -11,6 +11,7 @@ tests/cases/conformance/parser/ecmascript5/ErrorRecovery/IfStatements/parserErro } ~ !!! error TS1005: ')' expected. +!!! related TS1007 tests/cases/conformance/parser/ecmascript5/ErrorRecovery/IfStatements/parserErrorRecoveryIfStatement2.ts:3:8: The parser expected to find a ')' to match the '(' token here. f2() { } f3() { diff --git a/tests/baselines/reference/parserErrorRecoveryIfStatement3.errors.txt b/tests/baselines/reference/parserErrorRecoveryIfStatement3.errors.txt index 631cdb08a90e4..cfd645e592542 100644 --- a/tests/baselines/reference/parserErrorRecoveryIfStatement3.errors.txt +++ b/tests/baselines/reference/parserErrorRecoveryIfStatement3.errors.txt @@ -11,6 +11,7 @@ tests/cases/conformance/parser/ecmascript5/ErrorRecovery/IfStatements/parserErro } ~ !!! error TS1005: ')' expected. +!!! related TS1007 tests/cases/conformance/parser/ecmascript5/ErrorRecovery/IfStatements/parserErrorRecoveryIfStatement3.ts:3:8: The parser expected to find a ')' to match the '(' token here. f2() { } f3() { diff --git a/tests/baselines/reference/parserFuzz1.errors.txt b/tests/baselines/reference/parserFuzz1.errors.txt index 88934111f142d..6ab8b1489e2e7 100644 --- a/tests/baselines/reference/parserFuzz1.errors.txt +++ b/tests/baselines/reference/parserFuzz1.errors.txt @@ -23,5 +23,4 @@ tests/cases/conformance/parser/ecmascript5/ErrorRecovery/parserFuzz1.ts(2,15): e ~~~~~~ !!! error TS1128: Declaration or statement expected. -!!! error TS1005: '{' expected. -!!! related TS1007 tests/cases/conformance/parser/ecmascript5/ErrorRecovery/parserFuzz1.ts:1:9: The parser expected to find a '}' to match the '{' token here. \ No newline at end of file +!!! error TS1005: '{' expected. \ No newline at end of file diff --git a/tests/baselines/reference/parserMemberAccessAfterPostfixExpression1.errors.txt b/tests/baselines/reference/parserMemberAccessAfterPostfixExpression1.errors.txt index daab2dd65ec82..6694afaf78c48 100644 --- a/tests/baselines/reference/parserMemberAccessAfterPostfixExpression1.errors.txt +++ b/tests/baselines/reference/parserMemberAccessAfterPostfixExpression1.errors.txt @@ -11,4 +11,4 @@ tests/cases/conformance/parser/ecmascript5/Expressions/parserMemberAccessAfterPo !!! error TS1005: ';' expected. ~~~~~~~~ !!! error TS2552: Cannot find name 'toString'. Did you mean 'String'? -!!! related TS2728 /.ts/lib.es5.d.ts:530:13: 'String' is declared here. \ No newline at end of file +!!! related TS2728 /.ts/lib.es5.d.ts:536:13: 'String' is declared here. \ No newline at end of file diff --git a/tests/baselines/reference/parserMemberAccessExpression1.errors.txt b/tests/baselines/reference/parserMemberAccessExpression1.errors.txt index 4e3e41770fe12..f791d4dc1caec 100644 --- a/tests/baselines/reference/parserMemberAccessExpression1.errors.txt +++ b/tests/baselines/reference/parserMemberAccessExpression1.errors.txt @@ -3,19 +3,11 @@ tests/cases/conformance/parser/ecmascript5/Generics/parserMemberAccessExpression tests/cases/conformance/parser/ecmascript5/Generics/parserMemberAccessExpression1.ts(2,1): error TS2304: Cannot find name 'Foo'. tests/cases/conformance/parser/ecmascript5/Generics/parserMemberAccessExpression1.ts(2,9): error TS2304: Cannot find name 'T'. tests/cases/conformance/parser/ecmascript5/Generics/parserMemberAccessExpression1.ts(3,1): error TS2304: Cannot find name 'Foo'. -tests/cases/conformance/parser/ecmascript5/Generics/parserMemberAccessExpression1.ts(3,5): error TS2304: Cannot find name 'T'. -tests/cases/conformance/parser/ecmascript5/Generics/parserMemberAccessExpression1.ts(3,7): error TS1005: '(' expected. -tests/cases/conformance/parser/ecmascript5/Generics/parserMemberAccessExpression1.ts(3,8): error TS2304: Cannot find name 'Bar'. -tests/cases/conformance/parser/ecmascript5/Generics/parserMemberAccessExpression1.ts(3,13): error TS1005: ')' expected. tests/cases/conformance/parser/ecmascript5/Generics/parserMemberAccessExpression1.ts(4,1): error TS2304: Cannot find name 'Foo'. -tests/cases/conformance/parser/ecmascript5/Generics/parserMemberAccessExpression1.ts(4,5): error TS2304: Cannot find name 'T'. -tests/cases/conformance/parser/ecmascript5/Generics/parserMemberAccessExpression1.ts(4,7): error TS1005: '(' expected. -tests/cases/conformance/parser/ecmascript5/Generics/parserMemberAccessExpression1.ts(4,8): error TS2304: Cannot find name 'Bar'. tests/cases/conformance/parser/ecmascript5/Generics/parserMemberAccessExpression1.ts(4,12): error TS2304: Cannot find name 'T'. -tests/cases/conformance/parser/ecmascript5/Generics/parserMemberAccessExpression1.ts(4,16): error TS1005: ')' expected. -==== tests/cases/conformance/parser/ecmascript5/Generics/parserMemberAccessExpression1.ts (15 errors) ==== +==== tests/cases/conformance/parser/ecmascript5/Generics/parserMemberAccessExpression1.ts (7 errors) ==== Foo(); ~~~ !!! error TS2304: Cannot find name 'Foo'. @@ -29,25 +21,9 @@ tests/cases/conformance/parser/ecmascript5/Generics/parserMemberAccessExpression Foo.Bar(); ~~~ !!! error TS2304: Cannot find name 'Foo'. - ~ -!!! error TS2304: Cannot find name 'T'. - ~ -!!! error TS1005: '(' expected. - ~~~ -!!! error TS2304: Cannot find name 'Bar'. - ~ -!!! error TS1005: ')' expected. Foo.Bar(); ~~~ !!! error TS2304: Cannot find name 'Foo'. - ~ -!!! error TS2304: Cannot find name 'T'. - ~ -!!! error TS1005: '(' expected. - ~~~ -!!! error TS2304: Cannot find name 'Bar'. ~ !!! error TS2304: Cannot find name 'T'. - ~ -!!! error TS1005: ')' expected. \ No newline at end of file diff --git a/tests/baselines/reference/parserMemberAccessExpression1.js b/tests/baselines/reference/parserMemberAccessExpression1.js index 83897e27097f4..1b3df778063b2 100644 --- a/tests/baselines/reference/parserMemberAccessExpression1.js +++ b/tests/baselines/reference/parserMemberAccessExpression1.js @@ -8,5 +8,5 @@ Foo.Bar(); //// [parserMemberAccessExpression1.js] Foo(); Foo.Bar(); -Foo(Bar()); -Foo(Bar()); +Foo.Bar(); +Foo.Bar(); diff --git a/tests/baselines/reference/parserMemberAccessExpression1.types b/tests/baselines/reference/parserMemberAccessExpression1.types index 28ccd11641bab..08299f7dfd75f 100644 --- a/tests/baselines/reference/parserMemberAccessExpression1.types +++ b/tests/baselines/reference/parserMemberAccessExpression1.types @@ -11,13 +11,13 @@ Foo.Bar(); Foo.Bar(); >Foo.Bar() : any +>Foo.Bar : any >Foo : any ->Bar() : any >Bar : any Foo.Bar(); >Foo.Bar() : any +>Foo.Bar : any >Foo : any ->Bar() : any >Bar : any diff --git a/tests/baselines/reference/parserMemberAccessOffOfGenericType1.errors.txt b/tests/baselines/reference/parserMemberAccessOffOfGenericType1.errors.txt index e65adecee3a7b..d0ffa095c3ee7 100644 --- a/tests/baselines/reference/parserMemberAccessOffOfGenericType1.errors.txt +++ b/tests/baselines/reference/parserMemberAccessOffOfGenericType1.errors.txt @@ -1,16 +1,7 @@ tests/cases/conformance/parser/ecmascript5/Generics/parserMemberAccessOffOfGenericType1.ts(1,9): error TS2304: Cannot find name 'List'. -tests/cases/conformance/parser/ecmascript5/Generics/parserMemberAccessOffOfGenericType1.ts(1,21): error TS1005: '(' expected. -tests/cases/conformance/parser/ecmascript5/Generics/parserMemberAccessOffOfGenericType1.ts(1,22): error TS2304: Cannot find name 'makeChild'. -tests/cases/conformance/parser/ecmascript5/Generics/parserMemberAccessOffOfGenericType1.ts(1,33): error TS1005: ')' expected. -==== tests/cases/conformance/parser/ecmascript5/Generics/parserMemberAccessOffOfGenericType1.ts (4 errors) ==== +==== tests/cases/conformance/parser/ecmascript5/Generics/parserMemberAccessOffOfGenericType1.ts (1 errors) ==== var v = List.makeChild(); ~~~~ -!!! error TS2304: Cannot find name 'List'. - ~ -!!! error TS1005: '(' expected. - ~~~~~~~~~ -!!! error TS2304: Cannot find name 'makeChild'. - ~ -!!! error TS1005: ')' expected. \ No newline at end of file +!!! error TS2304: Cannot find name 'List'. \ No newline at end of file diff --git a/tests/baselines/reference/parserMemberAccessOffOfGenericType1.js b/tests/baselines/reference/parserMemberAccessOffOfGenericType1.js index 4529fafba0257..d73594d4a6d3e 100644 --- a/tests/baselines/reference/parserMemberAccessOffOfGenericType1.js +++ b/tests/baselines/reference/parserMemberAccessOffOfGenericType1.js @@ -2,4 +2,4 @@ var v = List.makeChild(); //// [parserMemberAccessOffOfGenericType1.js] -var v = List(makeChild()); +var v = List.makeChild(); diff --git a/tests/baselines/reference/parserMemberAccessOffOfGenericType1.types b/tests/baselines/reference/parserMemberAccessOffOfGenericType1.types index 2df0af23e9550..2bd59381f8765 100644 --- a/tests/baselines/reference/parserMemberAccessOffOfGenericType1.types +++ b/tests/baselines/reference/parserMemberAccessOffOfGenericType1.types @@ -2,7 +2,7 @@ var v = List.makeChild(); >v : any >List.makeChild() : any +>List.makeChild : any >List : any ->makeChild() : any >makeChild : any diff --git a/tests/baselines/reference/parserParenthesizedVariableAndParenthesizedFunctionInTernary.js b/tests/baselines/reference/parserParenthesizedVariableAndParenthesizedFunctionInTernary.js new file mode 100644 index 0000000000000..2dd2b52f85f80 --- /dev/null +++ b/tests/baselines/reference/parserParenthesizedVariableAndParenthesizedFunctionInTernary.js @@ -0,0 +1,10 @@ +//// [parserParenthesizedVariableAndParenthesizedFunctionInTernary.ts] +let a: any; +const c = true ? (a) : (function() {}); +const d = true ? (a) : ((function() {})); + + +//// [parserParenthesizedVariableAndParenthesizedFunctionInTernary.js] +var a; +var c = true ? (a) : (function () { }); +var d = true ? (a) : ((function () { })); diff --git a/tests/baselines/reference/parserParenthesizedVariableAndParenthesizedFunctionInTernary.symbols b/tests/baselines/reference/parserParenthesizedVariableAndParenthesizedFunctionInTernary.symbols new file mode 100644 index 0000000000000..c133ddc1157df --- /dev/null +++ b/tests/baselines/reference/parserParenthesizedVariableAndParenthesizedFunctionInTernary.symbols @@ -0,0 +1,12 @@ +=== tests/cases/conformance/parser/ecmascript5/parserParenthesizedVariableAndParenthesizedFunctionInTernary.ts === +let a: any; +>a : Symbol(a, Decl(parserParenthesizedVariableAndParenthesizedFunctionInTernary.ts, 0, 3)) + +const c = true ? (a) : (function() {}); +>c : Symbol(c, Decl(parserParenthesizedVariableAndParenthesizedFunctionInTernary.ts, 1, 5)) +>a : Symbol(a, Decl(parserParenthesizedVariableAndParenthesizedFunctionInTernary.ts, 0, 3)) + +const d = true ? (a) : ((function() {})); +>d : Symbol(d, Decl(parserParenthesizedVariableAndParenthesizedFunctionInTernary.ts, 2, 5)) +>a : Symbol(a, Decl(parserParenthesizedVariableAndParenthesizedFunctionInTernary.ts, 0, 3)) + diff --git a/tests/baselines/reference/parserParenthesizedVariableAndParenthesizedFunctionInTernary.types b/tests/baselines/reference/parserParenthesizedVariableAndParenthesizedFunctionInTernary.types new file mode 100644 index 0000000000000..dd705f6858ecd --- /dev/null +++ b/tests/baselines/reference/parserParenthesizedVariableAndParenthesizedFunctionInTernary.types @@ -0,0 +1,23 @@ +=== tests/cases/conformance/parser/ecmascript5/parserParenthesizedVariableAndParenthesizedFunctionInTernary.ts === +let a: any; +>a : any + +const c = true ? (a) : (function() {}); +>c : any +>true ? (a) : (function() {}) : any +>true : true +>(a) : any +>a : any +>(function() {}) : () => void +>function() {} : () => void + +const d = true ? (a) : ((function() {})); +>d : any +>true ? (a) : ((function() {})) : any +>true : true +>(a) : any +>a : any +>((function() {})) : () => void +>(function() {}) : () => void +>function() {} : () => void + diff --git a/tests/baselines/reference/parserS7.2_A1.5_T2.errors.txt b/tests/baselines/reference/parserS7.2_A1.5_T2.errors.txt index 606a01be28e2c..cfa2d3c17c5df 100644 --- a/tests/baselines/reference/parserS7.2_A1.5_T2.errors.txt +++ b/tests/baselines/reference/parserS7.2_A1.5_T2.errors.txt @@ -19,7 +19,7 @@ tests/cases/conformance/parser/ecmascript5/parserS7.2_A1.5_T2.ts(20,3): error TS $ERROR('#1: eval("\\u00A0var x\\u00A0= 1\\u00A0"); x === 1. Actual: ' + (x)); ~~~~~~ !!! error TS2552: Cannot find name '$ERROR'. Did you mean 'Error'? -!!! related TS2728 /.ts/lib.es5.d.ts:1033:13: 'Error' is declared here. +!!! related TS2728 /.ts/lib.es5.d.ts:1039:13: 'Error' is declared here. } //CHECK#2 @@ -28,7 +28,7 @@ tests/cases/conformance/parser/ecmascript5/parserS7.2_A1.5_T2.ts(20,3): error TS $ERROR('#2:  var x = 1 ; x === 1. Actual: ' + (x)); ~~~~~~ !!! error TS2552: Cannot find name '$ERROR'. Did you mean 'Error'? -!!! related TS2728 /.ts/lib.es5.d.ts:1033:13: 'Error' is declared here. +!!! related TS2728 /.ts/lib.es5.d.ts:1039:13: 'Error' is declared here. } diff --git a/tests/baselines/reference/parserS7.3_A1.1_T2.errors.txt b/tests/baselines/reference/parserS7.3_A1.1_T2.errors.txt index ced7ccf72105b..93c14e1d5f186 100644 --- a/tests/baselines/reference/parserS7.3_A1.1_T2.errors.txt +++ b/tests/baselines/reference/parserS7.3_A1.1_T2.errors.txt @@ -21,7 +21,7 @@ tests/cases/conformance/parser/ecmascript5/parserS7.3_A1.1_T2.ts(17,3): error TS $ERROR('#1: var\\nx\\n=\\n1\\n; x === 1. Actual: ' + (x)); ~~~~~~ !!! error TS2552: Cannot find name '$ERROR'. Did you mean 'Error'? -!!! related TS2728 /.ts/lib.es5.d.ts:1033:13: 'Error' is declared here. +!!! related TS2728 /.ts/lib.es5.d.ts:1039:13: 'Error' is declared here. } \ No newline at end of file diff --git a/tests/baselines/reference/parserS7.6_A4.2_T1.errors.txt b/tests/baselines/reference/parserS7.6_A4.2_T1.errors.txt index 3ef7caa748676..44e509226b600 100644 --- a/tests/baselines/reference/parserS7.6_A4.2_T1.errors.txt +++ b/tests/baselines/reference/parserS7.6_A4.2_T1.errors.txt @@ -50,70 +50,70 @@ tests/cases/conformance/parser/ecmascript5/parserS7.6_A4.2_T1.ts(142,3): error T $ERROR('#А'); ~~~~~~ !!! error TS2552: Cannot find name '$ERROR'. Did you mean 'Error'? -!!! related TS2728 /.ts/lib.es5.d.ts:1033:13: 'Error' is declared here. +!!! related TS2728 /.ts/lib.es5.d.ts:1039:13: 'Error' is declared here. } var \u0411 = 1; if (Б !== 1) { $ERROR('#Б'); ~~~~~~ !!! error TS2552: Cannot find name '$ERROR'. Did you mean 'Error'? -!!! related TS2728 /.ts/lib.es5.d.ts:1033:13: 'Error' is declared here. +!!! related TS2728 /.ts/lib.es5.d.ts:1039:13: 'Error' is declared here. } var \u0412 = 1; if (В !== 1) { $ERROR('#В'); ~~~~~~ !!! error TS2552: Cannot find name '$ERROR'. Did you mean 'Error'? -!!! related TS2728 /.ts/lib.es5.d.ts:1033:13: 'Error' is declared here. +!!! related TS2728 /.ts/lib.es5.d.ts:1039:13: 'Error' is declared here. } var \u0413 = 1; if (Г !== 1) { $ERROR('#Г'); ~~~~~~ !!! error TS2552: Cannot find name '$ERROR'. Did you mean 'Error'? -!!! related TS2728 /.ts/lib.es5.d.ts:1033:13: 'Error' is declared here. +!!! related TS2728 /.ts/lib.es5.d.ts:1039:13: 'Error' is declared here. } var \u0414 = 1; if (Д !== 1) { $ERROR('#Д'); ~~~~~~ !!! error TS2552: Cannot find name '$ERROR'. Did you mean 'Error'? -!!! related TS2728 /.ts/lib.es5.d.ts:1033:13: 'Error' is declared here. +!!! related TS2728 /.ts/lib.es5.d.ts:1039:13: 'Error' is declared here. } var \u0415 = 1; if (Е !== 1) { $ERROR('#Е'); ~~~~~~ !!! error TS2552: Cannot find name '$ERROR'. Did you mean 'Error'? -!!! related TS2728 /.ts/lib.es5.d.ts:1033:13: 'Error' is declared here. +!!! related TS2728 /.ts/lib.es5.d.ts:1039:13: 'Error' is declared here. } var \u0416 = 1; if (Ж !== 1) { $ERROR('#Ж'); ~~~~~~ !!! error TS2552: Cannot find name '$ERROR'. Did you mean 'Error'? -!!! related TS2728 /.ts/lib.es5.d.ts:1033:13: 'Error' is declared here. +!!! related TS2728 /.ts/lib.es5.d.ts:1039:13: 'Error' is declared here. } var \u0417 = 1; if (З !== 1) { $ERROR('#З'); ~~~~~~ !!! error TS2552: Cannot find name '$ERROR'. Did you mean 'Error'? -!!! related TS2728 /.ts/lib.es5.d.ts:1033:13: 'Error' is declared here. +!!! related TS2728 /.ts/lib.es5.d.ts:1039:13: 'Error' is declared here. } var \u0418 = 1; if (И !== 1) { $ERROR('#И'); ~~~~~~ !!! error TS2552: Cannot find name '$ERROR'. Did you mean 'Error'? -!!! related TS2728 /.ts/lib.es5.d.ts:1033:13: 'Error' is declared here. +!!! related TS2728 /.ts/lib.es5.d.ts:1039:13: 'Error' is declared here. } var \u0419 = 1; if (Й !== 1) { $ERROR('#Й'); ~~~~~~ !!! error TS2552: Cannot find name '$ERROR'. Did you mean 'Error'? -!!! related TS2728 /.ts/lib.es5.d.ts:1033:13: 'Error' is declared here. +!!! related TS2728 /.ts/lib.es5.d.ts:1039:13: 'Error' is declared here. } var \u041A = 1; if (К !== 1) { diff --git a/tests/baselines/reference/parserTypeQuery8.errors.txt b/tests/baselines/reference/parserTypeQuery8.errors.txt index 49582f8d1dd9f..ab24604ba90fa 100644 --- a/tests/baselines/reference/parserTypeQuery8.errors.txt +++ b/tests/baselines/reference/parserTypeQuery8.errors.txt @@ -1,16 +1,7 @@ tests/cases/conformance/parser/ecmascript5/Types/parserTypeQuery8.ts(1,15): error TS2304: Cannot find name 'A'. -tests/cases/conformance/parser/ecmascript5/Types/parserTypeQuery8.ts(1,16): error TS1005: ',' expected. -tests/cases/conformance/parser/ecmascript5/Types/parserTypeQuery8.ts(1,17): error TS2304: Cannot find name 'B'. -tests/cases/conformance/parser/ecmascript5/Types/parserTypeQuery8.ts(1,19): error TS1109: Expression expected. -==== tests/cases/conformance/parser/ecmascript5/Types/parserTypeQuery8.ts (4 errors) ==== +==== tests/cases/conformance/parser/ecmascript5/Types/parserTypeQuery8.ts (1 errors) ==== var v: typeof A ~ -!!! error TS2304: Cannot find name 'A'. - ~ -!!! error TS1005: ',' expected. - ~ -!!! error TS2304: Cannot find name 'B'. - -!!! error TS1109: Expression expected. \ No newline at end of file +!!! error TS2304: Cannot find name 'A'. \ No newline at end of file diff --git a/tests/baselines/reference/parserTypeQuery8.js b/tests/baselines/reference/parserTypeQuery8.js index 0600a038db09a..f0fd7d6212e76 100644 --- a/tests/baselines/reference/parserTypeQuery8.js +++ b/tests/baselines/reference/parserTypeQuery8.js @@ -3,4 +3,3 @@ var v: typeof A //// [parserTypeQuery8.js] var v; -; diff --git a/tests/baselines/reference/parserTypeQuery8.types b/tests/baselines/reference/parserTypeQuery8.types index a2822af8fc6bd..4d92a64d85137 100644 --- a/tests/baselines/reference/parserTypeQuery8.types +++ b/tests/baselines/reference/parserTypeQuery8.types @@ -2,6 +2,4 @@ var v: typeof A >v : any >A : any -> : B -> : any diff --git a/tests/baselines/reference/parserUnicode1.errors.txt b/tests/baselines/reference/parserUnicode1.errors.txt index 1ce7dee0ff21f..381f7757a97dc 100644 --- a/tests/baselines/reference/parserUnicode1.errors.txt +++ b/tests/baselines/reference/parserUnicode1.errors.txt @@ -11,13 +11,13 @@ tests/cases/conformance/parser/ecmascript5/parserUnicode1.ts(10,5): error TS2552 $ERROR('#6.1: var \\u0078x = 1; xx === 6. Actual: ' + (xx)); ~~~~~~ !!! error TS2552: Cannot find name '$ERROR'. Did you mean 'Error'? -!!! related TS2728 /.ts/lib.es5.d.ts:1033:13: 'Error' is declared here. +!!! related TS2728 /.ts/lib.es5.d.ts:1039:13: 'Error' is declared here. } } catch (e) { $ERROR('#6.2: var \\u0078x = 1; xx === 6. Actual: ' + (xx)); ~~~~~~ !!! error TS2552: Cannot find name '$ERROR'. Did you mean 'Error'? -!!! related TS2728 /.ts/lib.es5.d.ts:1033:13: 'Error' is declared here. +!!! related TS2728 /.ts/lib.es5.d.ts:1039:13: 'Error' is declared here. } \ No newline at end of file diff --git a/tests/baselines/reference/pathMappingBasedModuleResolution6_classic.js b/tests/baselines/reference/pathMappingBasedModuleResolution6_classic.js index 94efed6f41d21..87400a5151d1d 100644 --- a/tests/baselines/reference/pathMappingBasedModuleResolution6_classic.js +++ b/tests/baselines/reference/pathMappingBasedModuleResolution6_classic.js @@ -14,7 +14,11 @@ export {x} from "../file2"; //// [file3.js] var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/pathMappingBasedModuleResolution6_node.js b/tests/baselines/reference/pathMappingBasedModuleResolution6_node.js index 3facab66265ac..3ea1983be994f 100644 --- a/tests/baselines/reference/pathMappingBasedModuleResolution6_node.js +++ b/tests/baselines/reference/pathMappingBasedModuleResolution6_node.js @@ -15,7 +15,11 @@ export {x} from "../file2"; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/plainJSBinderErrors.errors.txt b/tests/baselines/reference/plainJSBinderErrors.errors.txt new file mode 100644 index 0000000000000..44084cc1c14b5 --- /dev/null +++ b/tests/baselines/reference/plainJSBinderErrors.errors.txt @@ -0,0 +1,97 @@ +tests/cases/conformance/salsa/plainJSBinderErrors.js(1,1): error TS2528: A module cannot have multiple default exports. +tests/cases/conformance/salsa/plainJSBinderErrors.js(2,1): error TS2528: A module cannot have multiple default exports. +tests/cases/conformance/salsa/plainJSBinderErrors.js(3,7): error TS1262: Identifier expected. 'await' is a reserved word at the top-level of a module. +tests/cases/conformance/salsa/plainJSBinderErrors.js(4,7): error TS1214: Identifier expected. 'yield' is a reserved word in strict mode. Modules are automatically in strict mode. +tests/cases/conformance/salsa/plainJSBinderErrors.js(6,11): error TS1359: Identifier expected. 'await' is a reserved word that cannot be used here. +tests/cases/conformance/salsa/plainJSBinderErrors.js(9,11): error TS1214: Identifier expected. 'yield' is a reserved word in strict mode. Modules are automatically in strict mode. +tests/cases/conformance/salsa/plainJSBinderErrors.js(12,5): error TS18012: '#constructor' is a reserved word. +tests/cases/conformance/salsa/plainJSBinderErrors.js(15,20): error TS1102: 'delete' cannot be called on an identifier in strict mode. +tests/cases/conformance/salsa/plainJSBinderErrors.js(18,16): error TS1102: 'delete' cannot be called on an identifier in strict mode. +tests/cases/conformance/salsa/plainJSBinderErrors.js(19,16): error TS1102: 'delete' cannot be called on an identifier in strict mode. +tests/cases/conformance/salsa/plainJSBinderErrors.js(22,15): error TS1210: Code contained in a class is evaluated in JavaScript's strict mode which does not allow this use of 'eval'. For more information, see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Strict_mode. +tests/cases/conformance/salsa/plainJSBinderErrors.js(23,15): error TS1210: Code contained in a class is evaluated in JavaScript's strict mode which does not allow this use of 'arguments'. For more information, see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Strict_mode. +tests/cases/conformance/salsa/plainJSBinderErrors.js(27,9): error TS1101: 'with' statements are not allowed in strict mode. +tests/cases/conformance/salsa/plainJSBinderErrors.js(33,13): error TS1344: 'A label is not allowed here. +tests/cases/conformance/salsa/plainJSBinderErrors.js(34,13): error TS1107: Jump target cannot cross function boundary. +tests/cases/conformance/salsa/plainJSBinderErrors.js(39,7): error TS1215: Invalid use of 'eval'. Modules are automatically in strict mode. +tests/cases/conformance/salsa/plainJSBinderErrors.js(40,7): error TS1215: Invalid use of 'arguments'. Modules are automatically in strict mode. + + +==== tests/cases/conformance/salsa/plainJSBinderErrors.js (17 errors) ==== + export default 12 + ~~~~~~~~~~~~~~~~~ +!!! error TS2528: A module cannot have multiple default exports. +!!! related TS2753 tests/cases/conformance/salsa/plainJSBinderErrors.js:2:1: Another export default is here. + export default 13 + ~~~~~~~~~~~~~~~~~ +!!! error TS2528: A module cannot have multiple default exports. +!!! related TS2752 tests/cases/conformance/salsa/plainJSBinderErrors.js:1:1: The first export default is here. + const await = 1 + ~~~~~ +!!! error TS1262: Identifier expected. 'await' is a reserved word at the top-level of a module. + const yield = 2 + ~~~~~ +!!! error TS1214: Identifier expected. 'yield' is a reserved word in strict mode. Modules are automatically in strict mode. + async function f() { + const await = 3 + ~~~~~ +!!! error TS1359: Identifier expected. 'await' is a reserved word that cannot be used here. + } + function* g() { + const yield = 4 + ~~~~~ +!!! error TS1214: Identifier expected. 'yield' is a reserved word in strict mode. Modules are automatically in strict mode. + } + class C { + #constructor = 5 + ~~~~~~~~~~~~ +!!! error TS18012: '#constructor' is a reserved word. + deleted() { + function container(f) { + delete f + ~ +!!! error TS1102: 'delete' cannot be called on an identifier in strict mode. + } + var g = 6 + delete g + ~ +!!! error TS1102: 'delete' cannot be called on an identifier in strict mode. + delete container + ~~~~~~~~~ +!!! error TS1102: 'delete' cannot be called on an identifier in strict mode. + } + evalArguments() { + const eval = 7 + ~~~~ +!!! error TS1210: Code contained in a class is evaluated in JavaScript's strict mode which does not allow this use of 'eval'. For more information, see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Strict_mode. + const arguments = 8 + ~~~~~~~~~ +!!! error TS1210: Code contained in a class is evaluated in JavaScript's strict mode which does not allow this use of 'arguments'. For more information, see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Strict_mode. + } + withOctal() { + const redundant = 010 + with (redundant) { + ~~~~ +!!! error TS1101: 'with' statements are not allowed in strict mode. + return toFixed() + } + } + label() { + for(;;) { + label: var x = 1 + ~~~~~ +!!! error TS1344: 'A label is not allowed here. + break label + ~~~~~~~~~~~ +!!! error TS1107: Jump target cannot cross function boundary. + } + return x + } + } + const eval = 9 + ~~~~ +!!! error TS1215: Invalid use of 'eval'. Modules are automatically in strict mode. + const arguments = 10 + ~~~~~~~~~ +!!! error TS1215: Invalid use of 'arguments'. Modules are automatically in strict mode. + \ No newline at end of file diff --git a/tests/baselines/reference/plainJSBinderErrors.js b/tests/baselines/reference/plainJSBinderErrors.js new file mode 100644 index 0000000000000..5f8f3138a64c5 --- /dev/null +++ b/tests/baselines/reference/plainJSBinderErrors.js @@ -0,0 +1,84 @@ +//// [plainJSBinderErrors.js] +export default 12 +export default 13 +const await = 1 +const yield = 2 +async function f() { + const await = 3 +} +function* g() { + const yield = 4 +} +class C { + #constructor = 5 + deleted() { + function container(f) { + delete f + } + var g = 6 + delete g + delete container + } + evalArguments() { + const eval = 7 + const arguments = 8 + } + withOctal() { + const redundant = 010 + with (redundant) { + return toFixed() + } + } + label() { + for(;;) { + label: var x = 1 + break label + } + return x + } +} +const eval = 9 +const arguments = 10 + + +//// [plainJSBinderErrors.js] +export default 12; +export default 13; +const await = 1; +const yield = 2; +async function f() { + const await = 3; +} +function* g() { + const yield = 4; +} +class C { + #constructor = 5; + deleted() { + function container(f) { + delete f; + } + var g = 6; + delete g; + delete container; + } + evalArguments() { + const eval = 7; + const arguments = 8; + } + withOctal() { + const redundant = 010; + with (redundant) { + return toFixed(); + } + } + label() { + for (;;) { + label: var x = 1; + break label; + } + return x; + } +} +const eval = 9; +const arguments = 10; diff --git a/tests/baselines/reference/plainJSBinderErrors.symbols b/tests/baselines/reference/plainJSBinderErrors.symbols new file mode 100644 index 0000000000000..55b2866141718 --- /dev/null +++ b/tests/baselines/reference/plainJSBinderErrors.symbols @@ -0,0 +1,86 @@ +=== tests/cases/conformance/salsa/plainJSBinderErrors.js === +export default 12 +export default 13 +const await = 1 +>await : Symbol(await, Decl(plainJSBinderErrors.js, 2, 5)) + +const yield = 2 +>yield : Symbol(yield, Decl(plainJSBinderErrors.js, 3, 5)) + +async function f() { +>f : Symbol(f, Decl(plainJSBinderErrors.js, 3, 15)) + + const await = 3 +>await : Symbol(await, Decl(plainJSBinderErrors.js, 5, 9)) +} +function* g() { +>g : Symbol(g, Decl(plainJSBinderErrors.js, 6, 1)) + + const yield = 4 +>yield : Symbol(yield, Decl(plainJSBinderErrors.js, 8, 9)) +} +class C { +>C : Symbol(C, Decl(plainJSBinderErrors.js, 9, 1)) + + #constructor = 5 +>#constructor : Symbol(C.#constructor, Decl(plainJSBinderErrors.js, 10, 9)) + + deleted() { +>deleted : Symbol(C.deleted, Decl(plainJSBinderErrors.js, 11, 20)) + + function container(f) { +>container : Symbol(container, Decl(plainJSBinderErrors.js, 12, 15)) +>f : Symbol(f, Decl(plainJSBinderErrors.js, 13, 27)) + + delete f +>f : Symbol(f, Decl(plainJSBinderErrors.js, 13, 27)) + } + var g = 6 +>g : Symbol(g, Decl(plainJSBinderErrors.js, 16, 11)) + + delete g +>g : Symbol(g, Decl(plainJSBinderErrors.js, 16, 11)) + + delete container +>container : Symbol(container, Decl(plainJSBinderErrors.js, 12, 15)) + } + evalArguments() { +>evalArguments : Symbol(C.evalArguments, Decl(plainJSBinderErrors.js, 19, 5)) + + const eval = 7 +>eval : Symbol(eval, Decl(plainJSBinderErrors.js, 21, 13)) + + const arguments = 8 +>arguments : Symbol(arguments, Decl(plainJSBinderErrors.js, 22, 13)) + } + withOctal() { +>withOctal : Symbol(C.withOctal, Decl(plainJSBinderErrors.js, 23, 5)) + + const redundant = 010 +>redundant : Symbol(redundant, Decl(plainJSBinderErrors.js, 25, 13)) + + with (redundant) { +>redundant : Symbol(redundant, Decl(plainJSBinderErrors.js, 25, 13)) + + return toFixed() + } + } + label() { +>label : Symbol(C.label, Decl(plainJSBinderErrors.js, 29, 5)) + + for(;;) { + label: var x = 1 +>x : Symbol(x, Decl(plainJSBinderErrors.js, 32, 22)) + + break label + } + return x +>x : Symbol(x, Decl(plainJSBinderErrors.js, 32, 22)) + } +} +const eval = 9 +>eval : Symbol(eval, Decl(plainJSBinderErrors.js, 38, 5)) + +const arguments = 10 +>arguments : Symbol(arguments, Decl(plainJSBinderErrors.js, 39, 5)) + diff --git a/tests/baselines/reference/plainJSBinderErrors.types b/tests/baselines/reference/plainJSBinderErrors.types new file mode 100644 index 0000000000000..29c4be2c11a20 --- /dev/null +++ b/tests/baselines/reference/plainJSBinderErrors.types @@ -0,0 +1,105 @@ +=== tests/cases/conformance/salsa/plainJSBinderErrors.js === +export default 12 +export default 13 +const await = 1 +>await : 1 +>1 : 1 + +const yield = 2 +>yield : 2 +>2 : 2 + +async function f() { +>f : () => Promise + + const await = 3 +>await : 3 +>3 : 3 +} +function* g() { +>g : () => Generator + + const yield = 4 +>yield : 4 +>4 : 4 +} +class C { +>C : C + + #constructor = 5 +>#constructor : number +>5 : 5 + + deleted() { +>deleted : () => void + + function container(f) { +>container : (f: any) => void +>f : any + + delete f +>delete f : boolean +>f : any + } + var g = 6 +>g : number +>6 : 6 + + delete g +>delete g : boolean +>g : number + + delete container +>delete container : boolean +>container : (f: any) => void + } + evalArguments() { +>evalArguments : () => void + + const eval = 7 +>eval : 7 +>7 : 7 + + const arguments = 8 +>arguments : 8 +>8 : 8 + } + withOctal() { +>withOctal : () => any + + const redundant = 010 +>redundant : 10 +>010 : 10 + + with (redundant) { +>redundant : 10 + + return toFixed() +>toFixed() : any +>toFixed : any + } + } + label() { +>label : () => number + + for(;;) { + label: var x = 1 +>label : any +>x : number +>1 : 1 + + break label +>label : any + } + return x +>x : number + } +} +const eval = 9 +>eval : 9 +>9 : 9 + +const arguments = 10 +>arguments : 10 +>10 : 10 + diff --git a/tests/baselines/reference/plainJSGrammarErrors.errors.txt b/tests/baselines/reference/plainJSGrammarErrors.errors.txt new file mode 100644 index 0000000000000..c49f7618bf424 --- /dev/null +++ b/tests/baselines/reference/plainJSGrammarErrors.errors.txt @@ -0,0 +1,520 @@ +tests/cases/conformance/salsa/plainJSGrammarErrors.js(3,9): error TS1451: Private identifiers are only allowed in class bodies and may only be used as part of a class member declaration, property access, or on the left-hand-side of an 'in' expression +tests/cases/conformance/salsa/plainJSGrammarErrors.js(5,9): error TS1451: Private identifiers are only allowed in class bodies and may only be used as part of a class member declaration, property access, or on the left-hand-side of an 'in' expression +tests/cases/conformance/salsa/plainJSGrammarErrors.js(10,15): error TS2803: Cannot assign to private method '#m'. Private methods are not writable. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(14,13): error TS18038: 'For await' loops cannot be used inside a class static block. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(17,9): error TS18041: A 'return' statement cannot be used inside a class static block. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(20,5): error TS1089: 'static' modifier cannot appear on a constructor declaration. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(21,5): error TS1089: 'async' modifier cannot appear on a constructor declaration. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(22,5): error TS8009: The 'const' modifier can only be used in TypeScript files. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(22,11): error TS1248: A class member cannot have the 'const' keyword. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(23,5): error TS8009: The 'const' modifier can only be used in TypeScript files. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(23,11): error TS1248: A class member cannot have the 'const' keyword. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(26,11): error TS1030: 'async' modifier already seen. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(28,11): error TS1029: 'static' modifier must precede 'async' modifier. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(29,5): error TS1031: 'export' modifier cannot appear on class elements of this kind. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(29,5): error TS8009: The 'export' modifier can only be used in TypeScript files. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(30,5): error TS1031: 'export' modifier cannot appear on class elements of this kind. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(34,22): error TS1005: '{' expected. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(35,9): error TS1054: A 'get' accessor cannot have parameters. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(36,9): error TS1049: A 'set' accessor must have exactly one parameter. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(37,9): error TS1049: A 'set' accessor must have exactly one parameter. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(38,18): error TS1053: A 'set' accessor cannot have rest parameter. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(41,5): error TS18006: Classes may not have a field named 'constructor'. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(43,1): error TS1211: A class declaration without the 'default' modifier must have a name. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(46,25): error TS1172: 'extends' clause already seen. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(47,25): error TS1174: Classes can only extend a single class. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(49,1): error TS18016: Private identifiers are not allowed outside class bodies. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(50,6): error TS18016: Private identifiers are not allowed outside class bodies. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(51,9): error TS18013: Property '#m' is not accessible outside class 'C' because it has a private identifier. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(54,8): error TS1030: 'export' modifier already seen. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(55,8): error TS1044: 'static' modifier cannot appear on a module or namespace element. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(56,22): error TS1090: 'static' modifier cannot appear on a parameter. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(56,22): error TS8012: Parameter modifiers can only be used in TypeScript files. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(57,7): error TS1029: 'export' modifier must precede 'async' modifier. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(58,26): error TS1090: 'export' modifier cannot appear on a parameter. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(58,26): error TS8012: Parameter modifiers can only be used in TypeScript files. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(59,25): error TS1090: 'async' modifier cannot appear on a parameter. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(59,25): error TS8012: Parameter modifiers can only be used in TypeScript files. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(60,7): error TS1030: 'async' modifier already seen. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(61,1): error TS1042: 'async' modifier cannot be used here. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(62,5): error TS1042: 'async' modifier cannot be used here. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(62,5): error TS8009: The 'async' modifier can only be used in TypeScript files. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(64,1): error TS1042: 'async' modifier cannot be used here. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(65,1): error TS1042: 'async' modifier cannot be used here. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(66,1): error TS1042: 'async' modifier cannot be used here. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(67,1): error TS1191: An import declaration cannot have modifiers. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(68,1): error TS1193: An export declaration cannot have modifiers. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(70,5): error TS1474: An export declaration can only be used at the top level of a module. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(71,5): error TS1473: An import declaration can only be used at the top level of a module. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(72,5): error TS1258: A default export must be at the top level of a file or module declaration. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(75,5): error TS1184: Modifiers cannot appear here. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(78,5): error TS1042: 'static' modifier cannot be used here. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(78,5): error TS1184: Modifiers cannot appear here. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(83,25): error TS1014: A rest parameter must be last in a parameter list. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(85,37): error TS1048: A rest parameter cannot have an initializer. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(87,41): error TS1013: A rest parameter or binding pattern may not have a trailing comma. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(89,8): error TS2501: A rest element cannot contain a binding pattern. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(91,12): error TS2462: A rest element must be last in a destructuring pattern. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(92,33): error TS2566: A rest element cannot have a property name. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(93,42): error TS1186: A rest element cannot have an initializer. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(96,4): error TS1123: Variable declaration list cannot be empty. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(97,9): error TS5076: '||' and '??' operations cannot be mixed without parentheses. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(98,14): error TS5076: '||' and '??' operations cannot be mixed without parentheses. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(100,3): error TS1200: Line terminator not permitted before arrow. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(102,4): error TS1358: Tagged template expressions are not permitted in an optional chain. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(104,6): error TS1171: A comma expression is not allowed in a computed property name. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(105,5): error TS18016: Private identifiers are not allowed outside class bodies. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(106,5): error TS1042: 'export' modifier cannot be used here. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(108,25): error TS1162: An object member cannot be declared optional. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(109,6): error TS1162: An object member cannot be declared optional. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(109,6): error TS8009: The '?' modifier can only be used in TypeScript files. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(110,15): error TS1255: A definite assignment assertion '!' is not permitted in this context. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(111,19): error TS1255: A definite assignment assertion '!' is not permitted in this context. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(114,16): error TS1312: Did you mean to use a ':'? An '=' can only follow a property name when the containing object literal is part of a destructuring pattern. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(116,24): error TS1009: Trailing comma not allowed. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(117,29): error TS1097: 'extends' list cannot be empty. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(120,7): error TS1182: A destructuring declaration must have an initializer. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(121,7): error TS1155: 'const' declarations must be initialized. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(122,5): error TS1214: Identifier expected. 'let' is a reserved word in strict mode. Modules are automatically in strict mode. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(122,5): error TS2480: 'let' is not allowed to be used as a name in 'let' or 'const' declarations. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(124,5): error TS1157: 'let' declarations can only be declared inside a block. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(126,5): error TS1156: 'const' declarations can only be declared inside a block. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(131,6): error TS1106: The left-hand side of a 'for...of' statement may not be 'async'. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(134,12): error TS1190: The variable declaration of a 'for...of' statement cannot have an initializer. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(137,12): error TS1189: The variable declaration of a 'for...in' statement cannot have an initializer. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(140,13): error TS1188: Only a single variable declaration is allowed in a 'for...of' statement. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(143,13): error TS1091: Only a single variable declaration is allowed in a 'for...in' statement. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(154,5): error TS1113: A 'default' clause cannot appear more than once in a 'switch' statement. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(161,11): error TS2492: Cannot redeclare identifier 'e' in catch clause. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(167,12): error TS1197: Catch clause variable cannot have an initializer. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(170,5): error TS1114: Duplicate label 'label'. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(179,13): error TS1107: Jump target cannot cross function boundary. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(187,13): error TS1115: A 'continue' statement can only jump to a label of an enclosing iteration statement. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(191,5): error TS1107: Jump target cannot cross function boundary. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(194,5): error TS1116: A 'break' statement can only jump to a label of an enclosing statement. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(195,5): error TS1115: A 'continue' statement can only jump to a label of an enclosing iteration statement. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(197,1): error TS1105: A 'break' statement can only be used within an enclosing iteration or switch statement. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(198,1): error TS1104: A 'continue' statement can only be used within an enclosing iteration statement. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(201,28): error TS17012: 'metal' is not a valid meta-property for keyword 'import'. Did you mean 'meta'? +tests/cases/conformance/salsa/plainJSGrammarErrors.js(202,22): error TS17012: 'targe' is not a valid meta-property for keyword 'new'. Did you mean 'target'? +tests/cases/conformance/salsa/plainJSGrammarErrors.js(203,30): message TS1450: Dynamic imports can only accept a module specifier and an optional assertion as arguments +tests/cases/conformance/salsa/plainJSGrammarErrors.js(204,30): message TS1450: Dynamic imports can only accept a module specifier and an optional assertion as arguments +tests/cases/conformance/salsa/plainJSGrammarErrors.js(205,36): error TS1325: Argument of dynamic import cannot be spread element. +tests/cases/conformance/salsa/plainJSGrammarErrors.js(207,1): error TS1108: A 'return' statement can only be used within a function body. + + +==== tests/cases/conformance/salsa/plainJSGrammarErrors.js (103 errors) ==== + class C { + // #private mistakes + q = #unbound + ~~~~~~~~ +!!! error TS1451: Private identifiers are only allowed in class bodies and may only be used as part of a class member declaration, property access, or on the left-hand-side of an 'in' expression + m() { + #p + ~~ +!!! error TS1451: Private identifiers are only allowed in class bodies and may only be used as part of a class member declaration, property access, or on the left-hand-side of an 'in' expression + if (#po in this) { + } + } + #m() { + this.#m = () => {} + ~~ +!!! error TS2803: Cannot assign to private method '#m'. Private methods are not writable. + } + // await in static block + static { + for await (const x of [1,2,3]) { + ~~~~~ +!!! error TS18038: 'For await' loops cannot be used inside a class static block. + console.log(x) + } + return null + ~~~~~~ +!!! error TS18041: A 'return' statement cannot be used inside a class static block. + } + // modifier mistakes + static constructor() { } + ~~~~~~ +!!! error TS1089: 'static' modifier cannot appear on a constructor declaration. + async constructor() { } + ~~~~~ +!!! error TS1089: 'async' modifier cannot appear on a constructor declaration. + const x = 1 + ~~~~~ +!!! error TS8009: The 'const' modifier can only be used in TypeScript files. + ~ +!!! error TS1248: A class member cannot have the 'const' keyword. + const y() { + ~~~~~ +!!! error TS8009: The 'const' modifier can only be used in TypeScript files. + ~ +!!! error TS1248: A class member cannot have the 'const' keyword. + return 12 + } + async async extremelyAsync() { + ~~~~~ +!!! error TS1030: 'async' modifier already seen. + } + async static oorder(){ } + ~~~~~~ +!!! error TS1029: 'static' modifier must precede 'async' modifier. + export cantExportProperty = 1 + ~~~~~~ +!!! error TS1031: 'export' modifier cannot appear on class elements of this kind. + ~~~~~~ +!!! error TS8009: The 'export' modifier can only be used in TypeScript files. + export cantExportMethod() { + ~~~~~~ +!!! error TS1031: 'export' modifier cannot appear on class elements of this kind. + } + + // accessor mistakes + get incorporeal(); + ~ +!!! error TS1005: '{' expected. + get parametric(n) { return 1 } + ~~~~~~~~~~ +!!! error TS1054: A 'get' accessor cannot have parameters. + set invariant() { } + ~~~~~~~~~ +!!! error TS1049: A 'set' accessor must have exactly one parameter. + set binary(fst, snd) { } + ~~~~~~ +!!! error TS1049: A 'set' accessor must have exactly one parameter. + set variable(...n) { } + ~~~ +!!! error TS1053: A 'set' accessor cannot have rest parameter. + + // other + "constructor" = 16 + ~~~~~~~~~~~~~ +!!! error TS18006: Classes may not have a field named 'constructor'. + } + class { + ~~~~~ +!!! error TS1211: A class declaration without the 'default' modifier must have a name. + missingName = true + } + class Doubler extends C extends C { } + ~~~~~~~ +!!! error TS1172: 'extends' clause already seen. + class Trebler extends C,C,C { } + ~ +!!! error TS1174: Classes can only extend a single class. + // #private mistakes + #unrelated + ~~~~~~~~~~ +!!! error TS18016: Private identifiers are not allowed outside class bodies. + junk.#m + ~~ +!!! error TS18016: Private identifiers are not allowed outside class bodies. + new C().#m + ~~ +!!! error TS18013: Property '#m' is not accessible outside class 'C' because it has a private identifier. + + // modifier mistakes + export export var extremelyExported = 10 + ~~~~~~ +!!! error TS1030: 'export' modifier already seen. + export static var staticExport = 1 + ~~~~~~ +!!! error TS1044: 'static' modifier cannot appear on a module or namespace element. + function staticParam(static x = 1) { return x } + ~~~~~~ +!!! error TS1090: 'static' modifier cannot appear on a parameter. + ~~~~~~ +!!! error TS8012: Parameter modifiers can only be used in TypeScript files. + async export function oorder(x = 1) { return x } + ~~~~~~ +!!! error TS1029: 'export' modifier must precede 'async' modifier. + function cantExportParam(export x = 1) { return x } + ~~~~~~ +!!! error TS1090: 'export' modifier cannot appear on a parameter. + ~~~~~~ +!!! error TS8012: Parameter modifiers can only be used in TypeScript files. + function cantAsyncParam(async x = 1) { return x } + ~~~~~ +!!! error TS1090: 'async' modifier cannot appear on a parameter. + ~~~~~ +!!! error TS8012: Parameter modifiers can only be used in TypeScript files. + async async function extremelyAsync() {} + ~~~~~ +!!! error TS1030: 'async' modifier already seen. + async class CantAsyncClass { + ~~~~~ +!!! error TS1042: 'async' modifier cannot be used here. + async cantAsyncPropert = 1 + ~~~~~ +!!! error TS1042: 'async' modifier cannot be used here. + ~~~~~ +!!! error TS8009: The 'async' modifier can only be used in TypeScript files. + } + async const cantAsyncConst = 2 + ~~~~~ +!!! error TS1042: 'async' modifier cannot be used here. + async import 'assert' + ~~~~~ +!!! error TS1042: 'async' modifier cannot be used here. + async export { CantAsyncClass } + ~~~~~ +!!! error TS1042: 'async' modifier cannot be used here. + export import 'fs' + ~~~~~~ +!!! error TS1191: An import declaration cannot have modifiers. + export export { C } + ~~~~~~ +!!! error TS1193: An export declaration cannot have modifiers. + function nestedExports() { + export { staticParam } + ~~~~~~ +!!! error TS1474: An export declaration can only be used at the top level of a module. + import 'fs' + ~~~~~~ +!!! error TS1473: An import declaration can only be used at the top level of a module. + export default 12 + ~~~~~~ +!!! error TS1258: A default export must be at the top level of a file or module declaration. + } + function outerStaticFunction() { + static function staticFunction() { } + ~~~~~~ +!!! error TS1184: Modifiers cannot appear here. + } + const noStaticLiteralMethods = { + static m() { + ~~~~~~ +!!! error TS1042: 'static' modifier cannot be used here. + ~~~~~~ +!!! error TS1184: Modifiers cannot appear here. + } + } + + // rest parameters + function restMustBeLast(...x, y) { + ~~~ +!!! error TS1014: A rest parameter must be last in a parameter list. + } + function restCantHaveInitialiser(...x = [1,2,3]) { + ~ +!!! error TS1048: A rest parameter cannot have an initializer. + } + function restCantHaveTrailingComma (...x,) { + ~ +!!! error TS1013: A rest parameter or binding pattern may not have a trailing comma. + } + ;({ ...{} } = {}) + ~~ +!!! error TS2501: A rest element cannot contain a binding pattern. + const doom = { e: 1, m: 1, name: "knee-deep" } + const { ...rest, e: episode, m: mission } = doom + ~~~~ +!!! error TS2462: A rest element must be last in a destructuring pattern. + const { e: eep, m: em, ...rest: noRestAllowed } = doom + ~~~~~~~~~~~~~ +!!! error TS2566: A rest element cannot have a property name. + const { e: erp, m: erm, ...noInitialiser = true } = doom + ~ +!!! error TS1186: A rest element cannot have an initializer. + + // left-over parsing + var; + +!!! error TS1123: Variable declaration list cannot be empty. + var x = 1 || 2 ?? 3 + ~~~~~~ +!!! error TS5076: '||' and '??' operations cannot be mixed without parentheses. + var x = 2 ?? 3 || 4 + ~~~~~~ +!!! error TS5076: '||' and '??' operations cannot be mixed without parentheses. + const arr = x + => x + 1 + ~~ +!!! error TS1200: Line terminator not permitted before arrow. + var a = [1,2] + a?.`length`; + ~~~~~~~~ +!!! error TS1358: Tagged template expressions are not permitted in an optional chain. + const o = { + [console.log('oh no'),2]: 'hi', + ~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS1171: A comma expression is not allowed in a computed property name. + #noPrivate: 3, + ~~~~~~~~~~ +!!! error TS18016: Private identifiers are not allowed outside class bodies. + export cantExportProperties: 4, + ~~~~~~ +!!! error TS1042: 'export' modifier cannot be used here. + // TODO: See what the existing JS error is like for these + cantHaveQuestionMark?: 1, + ~ +!!! error TS1162: An object member cannot be declared optional. + m?() { return 12 }, + ~ +!!! error TS1162: An object member cannot be declared optional. + ~ +!!! error TS8009: The '?' modifier can only be used in TypeScript files. + definitely!, + ~ +!!! error TS1255: A definite assignment assertion '!' is not permitted in this context. + definiteMethod!() { return 13 }, + ~ +!!! error TS1255: A definite assignment assertion '!' is not permitted in this context. + } + const noAssignment = { + assignment = 1, + ~ +!!! error TS1312: Did you mean to use a ':'? An '=' can only follow a property name when the containing object literal is part of a destructuring pattern. + } + var noTrailingComma = 1,; + ~ +!!! error TS1009: Trailing comma not allowed. + class MissingExtends extends { } + +!!! error TS1097: 'extends' list cannot be empty. + + // let/const mistakes + const { e: ee }; + ~~~~~~~~~ +!!! error TS1182: A destructuring declaration must have an initializer. + const noInit; + ~~~~~~ +!!! error TS1155: 'const' declarations must be initialized. + let let = 15; + ~~~ +!!! error TS1214: Identifier expected. 'let' is a reserved word in strict mode. Modules are automatically in strict mode. + ~~~ +!!! error TS2480: 'let' is not allowed to be used as a name in 'let' or 'const' declarations. + if (true) + let onlyBlockLet = 17; + ~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS1157: 'let' declarations can only be declared inside a block. + if (true) + const onlyBlockConst = 18; + ~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS1156: 'const' declarations can only be declared inside a block. + + // loop mistakes + let async + export const l = [1,2,3] + for (async of l) { + ~~~~~ +!!! error TS1106: The left-hand side of a 'for...of' statement may not be 'async'. + console.log(x) + } + for (const cantHaveInit = 1 of [1,2,3]) { + ~~~~~~~~~~~~ +!!! error TS1190: The variable declaration of a 'for...of' statement cannot have an initializer. + console.log(cantHaveInit) + } + for (const cantHaveInit = 1 in [1,2,3]) { + ~~~~~~~~~~~~ +!!! error TS1189: The variable declaration of a 'for...in' statement cannot have an initializer. + console.log(cantHaveInit) + } + for (let y, x of [1,2,3]) { + ~ +!!! error TS1188: Only a single variable declaration is allowed in a 'for...of' statement. + console.log(x) + } + for (let y, x in [1,2,3]) { + ~ +!!! error TS1091: Only a single variable declaration is allowed in a 'for...in' statement. + console.log(x) + } + + // duplication mistakes + var b + switch (b) { + case false: + console.log('no') + default: + console.log('yes') + default: + ~~~~~~~~ +!!! error TS1113: A 'default' clause cannot appear more than once in a 'switch' statement. + console.log('wat') + } + try { + throw 2 + } + catch (e) { + const e = 1 + ~ +!!! error TS2492: Cannot redeclare identifier 'e' in catch clause. + console.log(e) + } + try { + throw 20 + } + catch (e = 0) { + ~ +!!! error TS1197: Catch clause variable cannot have an initializer. + } + label: for (const x in [1,2,3]) { + label: for (const y in [1,2,3]) { + ~~~~~ +!!! error TS1114: Duplicate label 'label'. + break label; + } + } + + // labels + function crossFunctionBoundary() { + outer: for(;;) { + function test() { + break outer + ~~~~~~~~~~~ +!!! error TS1107: Jump target cannot cross function boundary. + } + test() + } + } + function continueIterationOnly(x) { + outer: switch (x) { + case 1: + continue outer + ~~~~~~~~~~~~~~ +!!! error TS1115: A 'continue' statement can only jump to a label of an enclosing iteration statement. + } + } + function jumpToLabelOnly(x) { + break jumpToLabelOnly + ~~~~~~~~~~~~~~~~~~~~~ +!!! error TS1107: Jump target cannot cross function boundary. + } + for (;;) { + break toplevel + ~~~~~~~~~~~~~~ +!!! error TS1116: A 'break' statement can only jump to a label of an enclosing statement. + continue toplevel + ~~~~~~~~~~~~~~~~~ +!!! error TS1115: A 'continue' statement can only jump to a label of an enclosing iteration statement. + } + break + ~~~~~ +!!! error TS1105: A 'break' statement can only be used within an enclosing iteration or switch statement. + continue + ~~~~~~~~ +!!! error TS1104: A 'continue' statement can only be used within an enclosing iteration statement. + + // other weirdness + export let noMeta = import.metal + ~~~~~ +!!! error TS17012: 'metal' is not a valid meta-property for keyword 'import'. Did you mean 'meta'? + function foo() { new.targe } + ~~~~~ +!!! error TS17012: 'targe' is not a valid meta-property for keyword 'new'. Did you mean 'target'? + const nullaryDynamicImport = import() + ~~~~~~~~ +!!! message TS1450: Dynamic imports can only accept a module specifier and an optional assertion as arguments + const trinaryDynamicImport = import('1', '2', '3') + ~~~~~~~~~~~~~~~~~~~~~ +!!! message TS1450: Dynamic imports can only accept a module specifier and an optional assertion as arguments + const spreadDynamicImport = import(...[]) + ~~~~~ +!!! error TS1325: Argument of dynamic import cannot be spread element. + + return + ~~~~~~ +!!! error TS1108: A 'return' statement can only be used within a function body. + \ No newline at end of file diff --git a/tests/baselines/reference/plainJSGrammarErrors.js b/tests/baselines/reference/plainJSGrammarErrors.js new file mode 100644 index 0000000000000..4dcf2472ac61d --- /dev/null +++ b/tests/baselines/reference/plainJSGrammarErrors.js @@ -0,0 +1,410 @@ +//// [plainJSGrammarErrors.js] +class C { + // #private mistakes + q = #unbound + m() { + #p + if (#po in this) { + } + } + #m() { + this.#m = () => {} + } + // await in static block + static { + for await (const x of [1,2,3]) { + console.log(x) + } + return null + } + // modifier mistakes + static constructor() { } + async constructor() { } + const x = 1 + const y() { + return 12 + } + async async extremelyAsync() { + } + async static oorder(){ } + export cantExportProperty = 1 + export cantExportMethod() { + } + + // accessor mistakes + get incorporeal(); + get parametric(n) { return 1 } + set invariant() { } + set binary(fst, snd) { } + set variable(...n) { } + + // other + "constructor" = 16 +} +class { + missingName = true +} +class Doubler extends C extends C { } +class Trebler extends C,C,C { } +// #private mistakes +#unrelated +junk.#m +new C().#m + +// modifier mistakes +export export var extremelyExported = 10 +export static var staticExport = 1 +function staticParam(static x = 1) { return x } +async export function oorder(x = 1) { return x } +function cantExportParam(export x = 1) { return x } +function cantAsyncParam(async x = 1) { return x } +async async function extremelyAsync() {} +async class CantAsyncClass { + async cantAsyncPropert = 1 +} +async const cantAsyncConst = 2 +async import 'assert' +async export { CantAsyncClass } +export import 'fs' +export export { C } +function nestedExports() { + export { staticParam } + import 'fs' + export default 12 +} +function outerStaticFunction() { + static function staticFunction() { } +} +const noStaticLiteralMethods = { + static m() { + } +} + +// rest parameters +function restMustBeLast(...x, y) { +} +function restCantHaveInitialiser(...x = [1,2,3]) { +} +function restCantHaveTrailingComma (...x,) { +} +;({ ...{} } = {}) +const doom = { e: 1, m: 1, name: "knee-deep" } +const { ...rest, e: episode, m: mission } = doom +const { e: eep, m: em, ...rest: noRestAllowed } = doom +const { e: erp, m: erm, ...noInitialiser = true } = doom + +// left-over parsing +var; +var x = 1 || 2 ?? 3 +var x = 2 ?? 3 || 4 +const arr = x + => x + 1 +var a = [1,2] +a?.`length`; +const o = { + [console.log('oh no'),2]: 'hi', + #noPrivate: 3, + export cantExportProperties: 4, + // TODO: See what the existing JS error is like for these + cantHaveQuestionMark?: 1, + m?() { return 12 }, + definitely!, + definiteMethod!() { return 13 }, +} +const noAssignment = { + assignment = 1, +} +var noTrailingComma = 1,; +class MissingExtends extends { } + +// let/const mistakes +const { e: ee }; +const noInit; +let let = 15; +if (true) + let onlyBlockLet = 17; +if (true) + const onlyBlockConst = 18; + +// loop mistakes +let async +export const l = [1,2,3] +for (async of l) { + console.log(x) +} +for (const cantHaveInit = 1 of [1,2,3]) { + console.log(cantHaveInit) +} +for (const cantHaveInit = 1 in [1,2,3]) { + console.log(cantHaveInit) +} +for (let y, x of [1,2,3]) { + console.log(x) +} +for (let y, x in [1,2,3]) { + console.log(x) +} + +// duplication mistakes +var b +switch (b) { + case false: + console.log('no') + default: + console.log('yes') + default: + console.log('wat') +} +try { + throw 2 +} +catch (e) { + const e = 1 + console.log(e) +} +try { + throw 20 +} +catch (e = 0) { +} +label: for (const x in [1,2,3]) { + label: for (const y in [1,2,3]) { + break label; + } +} + +// labels +function crossFunctionBoundary() { + outer: for(;;) { + function test() { + break outer + } + test() + } +} +function continueIterationOnly(x) { + outer: switch (x) { + case 1: + continue outer + } +} +function jumpToLabelOnly(x) { + break jumpToLabelOnly +} +for (;;) { + break toplevel + continue toplevel +} +break +continue + +// other weirdness +export let noMeta = import.metal +function foo() { new.targe } +const nullaryDynamicImport = import() +const trinaryDynamicImport = import('1', '2', '3') +const spreadDynamicImport = import(...[]) + +return + + +//// [plainJSGrammarErrors.js] +class C { + // #private mistakes + q = #unbound; + m() { + #p; + if (#po in this) { + } + } + #m() { + this.#m = () => { }; + } + // await in static block + static { + for await (const x of [1, 2, 3]) { + console.log(x); + } + return null; + } + // modifier mistakes + static constructor() { } + async constructor() { } + x = 1; + y() { + return 12; + } + async async extremelyAsync() { + } + async static oorder() { } + export cantExportProperty = 1; + export cantExportMethod() { + } + // accessor mistakes + get incorporeal() { } + get parametric(n) { return 1; } + set invariant() { } + set binary(fst, snd) { } + set variable(...n) { } + // other + "constructor" = 16; +} +class { + missingName = true; +} +class Doubler extends C extends C { +} +class Trebler extends C, C, C { +} +// #private mistakes +#unrelated; +junk.#m; +new C().#m; +// modifier mistakes +export export var extremelyExported = 10; +export static var staticExport = 1; +function staticParam(static x = 1) { return x; } +async export function oorder(x = 1) { return x; } +function cantExportParam(export x = 1) { return x; } +function cantAsyncParam(async x = 1) { return x; } +async async function extremelyAsync() { } +async class CantAsyncClass { + async cantAsyncPropert = 1; +} +async const cantAsyncConst = 2; +async import 'assert'; +export { CantAsyncClass }; +export import 'fs'; +export { C }; +function nestedExports() { + export { staticParam }; + import 'fs'; + export default 12; +} +function outerStaticFunction() { + static function staticFunction() { } +} +const noStaticLiteralMethods = { + static m() { + } +}; +// rest parameters +function restMustBeLast(...x, y) { +} +function restCantHaveInitialiser(...x = [1, 2, 3]) { +} +function restCantHaveTrailingComma(...x) { +} +; +({ ...{} } = {}); +const doom = { e: 1, m: 1, name: "knee-deep" }; +const { ...rest, e: episode, m: mission } = doom; +const { e: eep, m: em, ...rest: noRestAllowed } = doom; +const { e: erp, m: erm, ...noInitialiser = true } = doom; +// left-over parsing +var ; +var x = 1 || 2 ?? 3; +var x = 2 ?? 3 || 4; +const arr = x => x + 1; +var a = [1, 2]; +a `length`; +const o = { + [console.log('oh no'), 2]: 'hi', + #noPrivate: 3, + cantExportProperties: 4, + // TODO: See what the existing JS error is like for these + cantHaveQuestionMark: 1, + m() { return 12; }, + definitely, + definiteMethod() { return 13; }, +}; +const noAssignment = { + assignment = 1, +}; +var noTrailingComma = 1; +class MissingExtends extends { +} +// let/const mistakes +const { e: ee }; +const noInit; +let let = 15; +if (true) + let onlyBlockLet = 17; +if (true) + const onlyBlockConst = 18; +// loop mistakes +let async; +export const l = [1, 2, 3]; +for (async of l) { + console.log(x); +} +for (const cantHaveInit = 1 of [1, 2, 3]) { + console.log(cantHaveInit); +} +for (const cantHaveInit = 1 in [1, 2, 3]) { + console.log(cantHaveInit); +} +for (let y, x of [1, 2, 3]) { + console.log(x); +} +for (let y, x in [1, 2, 3]) { + console.log(x); +} +// duplication mistakes +var b; +switch (b) { + case false: + console.log('no'); + default: + console.log('yes'); + default: + console.log('wat'); +} +try { + throw 2; +} +catch (e) { + const e = 1; + console.log(e); +} +try { + throw 20; +} +catch (e = 0) { +} +label: for (const x in [1, 2, 3]) { + label: for (const y in [1, 2, 3]) { + break label; + } +} +// labels +function crossFunctionBoundary() { + outer: for (;;) { + function test() { + break outer; + } + test(); + } +} +function continueIterationOnly(x) { + outer: switch (x) { + case 1: + continue outer; + } +} +function jumpToLabelOnly(x) { + break jumpToLabelOnly; +} +for (;;) { + break toplevel; + continue toplevel; +} +break; +continue; +// other weirdness +export let noMeta = import.metal; +function foo() { new.targe; } +const nullaryDynamicImport = import(); +const trinaryDynamicImport = import('1', '2', '3'); +const spreadDynamicImport = import(...[]); +return; diff --git a/tests/baselines/reference/plainJSGrammarErrors.symbols b/tests/baselines/reference/plainJSGrammarErrors.symbols new file mode 100644 index 0000000000000..cc3420d34f985 --- /dev/null +++ b/tests/baselines/reference/plainJSGrammarErrors.symbols @@ -0,0 +1,470 @@ +=== tests/cases/conformance/salsa/plainJSGrammarErrors.js === +class C { +>C : Symbol(C, Decl(plainJSGrammarErrors.js, 0, 0)) + + // #private mistakes + q = #unbound +>q : Symbol(C.q, Decl(plainJSGrammarErrors.js, 0, 9)) + + m() { +>m : Symbol(C.m, Decl(plainJSGrammarErrors.js, 2, 16)) + + #p + if (#po in this) { +>this : Symbol(C, Decl(plainJSGrammarErrors.js, 0, 0)) + } + } + #m() { +>#m : Symbol(C.#m, Decl(plainJSGrammarErrors.js, 7, 5)) + + this.#m = () => {} +>this.#m : Symbol(C.#m, Decl(plainJSGrammarErrors.js, 7, 5)) +>this : Symbol(C, Decl(plainJSGrammarErrors.js, 0, 0)) + } + // await in static block + static { + for await (const x of [1,2,3]) { +>x : Symbol(x, Decl(plainJSGrammarErrors.js, 13, 24)) + + console.log(x) +>console.log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>console : Symbol(console, Decl(lib.dom.d.ts, --, --)) +>log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>x : Symbol(x, Decl(plainJSGrammarErrors.js, 13, 24)) + } + return null + } + // modifier mistakes + static constructor() { } + async constructor() { } + const x = 1 +>x : Symbol(C.x, Decl(plainJSGrammarErrors.js, 20, 27)) + + const y() { +>y : Symbol(C.y, Decl(plainJSGrammarErrors.js, 21, 15)) + + return 12 + } + async async extremelyAsync() { +>extremelyAsync : Symbol(C.extremelyAsync, Decl(plainJSGrammarErrors.js, 24, 5)) + } + async static oorder(){ } +>oorder : Symbol(C.oorder, Decl(plainJSGrammarErrors.js, 26, 5)) + + export cantExportProperty = 1 +>cantExportProperty : Symbol(C.cantExportProperty, Decl(plainJSGrammarErrors.js, 27, 28)) + + export cantExportMethod() { +>cantExportMethod : Symbol(C.cantExportMethod, Decl(plainJSGrammarErrors.js, 28, 33)) + } + + // accessor mistakes + get incorporeal(); +>incorporeal : Symbol(C.incorporeal, Decl(plainJSGrammarErrors.js, 30, 5)) + + get parametric(n) { return 1 } +>parametric : Symbol(C.parametric, Decl(plainJSGrammarErrors.js, 33, 22)) +>n : Symbol(n, Decl(plainJSGrammarErrors.js, 34, 19)) + + set invariant() { } +>invariant : Symbol(C.invariant, Decl(plainJSGrammarErrors.js, 34, 34)) + + set binary(fst, snd) { } +>binary : Symbol(C.binary, Decl(plainJSGrammarErrors.js, 35, 23)) +>fst : Symbol(fst, Decl(plainJSGrammarErrors.js, 36, 15)) +>snd : Symbol(snd, Decl(plainJSGrammarErrors.js, 36, 19)) + + set variable(...n) { } +>variable : Symbol(C.variable, Decl(plainJSGrammarErrors.js, 36, 28)) +>n : Symbol(n, Decl(plainJSGrammarErrors.js, 37, 17)) + + // other + "constructor" = 16 +>"constructor" : Symbol(C["constructor"], Decl(plainJSGrammarErrors.js, 37, 26)) +} +class { + missingName = true +>missingName : Symbol(__missing.missingName, Decl(plainJSGrammarErrors.js, 42, 7)) +} +class Doubler extends C extends C { } +>Doubler : Symbol(Doubler, Decl(plainJSGrammarErrors.js, 44, 1)) +>C : Symbol(C, Decl(plainJSGrammarErrors.js, 0, 0)) +>C : Symbol(C, Decl(plainJSGrammarErrors.js, 0, 0)) + +class Trebler extends C,C,C { } +>Trebler : Symbol(Trebler, Decl(plainJSGrammarErrors.js, 45, 37)) +>C : Symbol(C, Decl(plainJSGrammarErrors.js, 0, 0)) +>C : Symbol(C, Decl(plainJSGrammarErrors.js, 0, 0)) +>C : Symbol(C, Decl(plainJSGrammarErrors.js, 0, 0)) + +// #private mistakes +#unrelated +junk.#m +new C().#m +>C : Symbol(C, Decl(plainJSGrammarErrors.js, 0, 0)) + +// modifier mistakes +export export var extremelyExported = 10 +>extremelyExported : Symbol(extremelyExported, Decl(plainJSGrammarErrors.js, 53, 17)) + +export static var staticExport = 1 +>staticExport : Symbol(staticExport, Decl(plainJSGrammarErrors.js, 54, 17)) + +function staticParam(static x = 1) { return x } +>staticParam : Symbol(staticParam, Decl(plainJSGrammarErrors.js, 54, 34)) +>x : Symbol(x, Decl(plainJSGrammarErrors.js, 55, 21)) +>x : Symbol(x, Decl(plainJSGrammarErrors.js, 55, 21)) + +async export function oorder(x = 1) { return x } +>oorder : Symbol(oorder, Decl(plainJSGrammarErrors.js, 55, 47)) +>x : Symbol(x, Decl(plainJSGrammarErrors.js, 56, 29)) +>x : Symbol(x, Decl(plainJSGrammarErrors.js, 56, 29)) + +function cantExportParam(export x = 1) { return x } +>cantExportParam : Symbol(cantExportParam, Decl(plainJSGrammarErrors.js, 56, 48)) +>x : Symbol(x, Decl(plainJSGrammarErrors.js, 57, 25)) +>x : Symbol(x, Decl(plainJSGrammarErrors.js, 57, 25)) + +function cantAsyncParam(async x = 1) { return x } +>cantAsyncParam : Symbol(cantAsyncParam, Decl(plainJSGrammarErrors.js, 57, 51)) +>x : Symbol(x, Decl(plainJSGrammarErrors.js, 58, 24)) +>x : Symbol(x, Decl(plainJSGrammarErrors.js, 58, 24)) + +async async function extremelyAsync() {} +>extremelyAsync : Symbol(extremelyAsync, Decl(plainJSGrammarErrors.js, 58, 49)) + +async class CantAsyncClass { +>CantAsyncClass : Symbol(CantAsyncClass, Decl(plainJSGrammarErrors.js, 59, 40)) + + async cantAsyncPropert = 1 +>cantAsyncPropert : Symbol(CantAsyncClass.cantAsyncPropert, Decl(plainJSGrammarErrors.js, 60, 28)) +} +async const cantAsyncConst = 2 +>cantAsyncConst : Symbol(cantAsyncConst, Decl(plainJSGrammarErrors.js, 63, 11)) + +async import 'assert' +async export { CantAsyncClass } +>CantAsyncClass : Symbol(CantAsyncClass, Decl(plainJSGrammarErrors.js, 65, 14)) + +export import 'fs' +export export { C } +>C : Symbol(C, Decl(plainJSGrammarErrors.js, 67, 15)) + +function nestedExports() { +>nestedExports : Symbol(nestedExports, Decl(plainJSGrammarErrors.js, 67, 19)) + + export { staticParam } +>staticParam : Symbol(staticParam, Decl(plainJSGrammarErrors.js, 69, 12)) + + import 'fs' + export default 12 +} +function outerStaticFunction() { +>outerStaticFunction : Symbol(outerStaticFunction, Decl(plainJSGrammarErrors.js, 72, 1)) + + static function staticFunction() { } +>staticFunction : Symbol(staticFunction, Decl(plainJSGrammarErrors.js, 73, 32)) +} +const noStaticLiteralMethods = { +>noStaticLiteralMethods : Symbol(noStaticLiteralMethods, Decl(plainJSGrammarErrors.js, 76, 5)) + + static m() { +>m : Symbol(m, Decl(plainJSGrammarErrors.js, 76, 32)) + } +} + +// rest parameters +function restMustBeLast(...x, y) { +>restMustBeLast : Symbol(restMustBeLast, Decl(plainJSGrammarErrors.js, 79, 1)) +>x : Symbol(x, Decl(plainJSGrammarErrors.js, 82, 24)) +>y : Symbol(y, Decl(plainJSGrammarErrors.js, 82, 29)) +} +function restCantHaveInitialiser(...x = [1,2,3]) { +>restCantHaveInitialiser : Symbol(restCantHaveInitialiser, Decl(plainJSGrammarErrors.js, 83, 1)) +>x : Symbol(x, Decl(plainJSGrammarErrors.js, 84, 33)) +} +function restCantHaveTrailingComma (...x,) { +>restCantHaveTrailingComma : Symbol(restCantHaveTrailingComma, Decl(plainJSGrammarErrors.js, 85, 1)) +>x : Symbol(x, Decl(plainJSGrammarErrors.js, 86, 36)) +} +;({ ...{} } = {}) +const doom = { e: 1, m: 1, name: "knee-deep" } +>doom : Symbol(doom, Decl(plainJSGrammarErrors.js, 89, 5)) +>e : Symbol(e, Decl(plainJSGrammarErrors.js, 89, 14)) +>m : Symbol(m, Decl(plainJSGrammarErrors.js, 89, 20)) +>name : Symbol(name, Decl(plainJSGrammarErrors.js, 89, 26)) + +const { ...rest, e: episode, m: mission } = doom +>rest : Symbol(rest, Decl(plainJSGrammarErrors.js, 90, 7)) +>e : Symbol(e, Decl(plainJSGrammarErrors.js, 89, 14)) +>episode : Symbol(episode, Decl(plainJSGrammarErrors.js, 90, 16)) +>m : Symbol(m, Decl(plainJSGrammarErrors.js, 89, 20)) +>mission : Symbol(mission, Decl(plainJSGrammarErrors.js, 90, 28)) +>doom : Symbol(doom, Decl(plainJSGrammarErrors.js, 89, 5)) + +const { e: eep, m: em, ...rest: noRestAllowed } = doom +>e : Symbol(e, Decl(plainJSGrammarErrors.js, 89, 14)) +>eep : Symbol(eep, Decl(plainJSGrammarErrors.js, 91, 7)) +>m : Symbol(m, Decl(plainJSGrammarErrors.js, 89, 20)) +>em : Symbol(em, Decl(plainJSGrammarErrors.js, 91, 15)) +>noRestAllowed : Symbol(noRestAllowed, Decl(plainJSGrammarErrors.js, 91, 22)) +>doom : Symbol(doom, Decl(plainJSGrammarErrors.js, 89, 5)) + +const { e: erp, m: erm, ...noInitialiser = true } = doom +>e : Symbol(e, Decl(plainJSGrammarErrors.js, 89, 14)) +>erp : Symbol(erp, Decl(plainJSGrammarErrors.js, 92, 7)) +>m : Symbol(m, Decl(plainJSGrammarErrors.js, 89, 20)) +>erm : Symbol(erm, Decl(plainJSGrammarErrors.js, 92, 15)) +>noInitialiser : Symbol(noInitialiser, Decl(plainJSGrammarErrors.js, 92, 23)) +>doom : Symbol(doom, Decl(plainJSGrammarErrors.js, 89, 5)) + +// left-over parsing +var; +var x = 1 || 2 ?? 3 +>x : Symbol(x, Decl(plainJSGrammarErrors.js, 96, 3), Decl(plainJSGrammarErrors.js, 97, 3)) + +var x = 2 ?? 3 || 4 +>x : Symbol(x, Decl(plainJSGrammarErrors.js, 96, 3), Decl(plainJSGrammarErrors.js, 97, 3)) + +const arr = x +>arr : Symbol(arr, Decl(plainJSGrammarErrors.js, 98, 5)) +>x : Symbol(x, Decl(plainJSGrammarErrors.js, 98, 11)) + + => x + 1 +>x : Symbol(x, Decl(plainJSGrammarErrors.js, 98, 11)) + +var a = [1,2] +>a : Symbol(a, Decl(plainJSGrammarErrors.js, 100, 3)) + +a?.`length`; +>a : Symbol(a, Decl(plainJSGrammarErrors.js, 100, 3)) + +const o = { +>o : Symbol(o, Decl(plainJSGrammarErrors.js, 102, 5)) + + [console.log('oh no'),2]: 'hi', +>[console.log('oh no'),2] : Symbol([console.log('oh no'),2], Decl(plainJSGrammarErrors.js, 102, 11)) +>console.log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>console : Symbol(console, Decl(lib.dom.d.ts, --, --)) +>log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) + + #noPrivate: 3, +>#noPrivate : Symbol(#noPrivate, Decl(plainJSGrammarErrors.js, 103, 35)) + + export cantExportProperties: 4, +>cantExportProperties : Symbol(cantExportProperties, Decl(plainJSGrammarErrors.js, 104, 18)) + + // TODO: See what the existing JS error is like for these + cantHaveQuestionMark?: 1, +>cantHaveQuestionMark : Symbol(cantHaveQuestionMark, Decl(plainJSGrammarErrors.js, 105, 35)) + + m?() { return 12 }, +>m : Symbol(m, Decl(plainJSGrammarErrors.js, 107, 29)) + + definitely!, +>definitely : Symbol(definitely, Decl(plainJSGrammarErrors.js, 108, 23)) + + definiteMethod!() { return 13 }, +>definiteMethod : Symbol(definiteMethod, Decl(plainJSGrammarErrors.js, 109, 16)) +} +const noAssignment = { +>noAssignment : Symbol(noAssignment, Decl(plainJSGrammarErrors.js, 112, 5)) + + assignment = 1, +>assignment : Symbol(assignment, Decl(plainJSGrammarErrors.js, 112, 22)) +} +var noTrailingComma = 1,; +>noTrailingComma : Symbol(noTrailingComma, Decl(plainJSGrammarErrors.js, 115, 3)) + +class MissingExtends extends { } +>MissingExtends : Symbol(MissingExtends, Decl(plainJSGrammarErrors.js, 115, 25)) + +// let/const mistakes +const { e: ee }; +>e : Symbol(e) +>ee : Symbol(ee, Decl(plainJSGrammarErrors.js, 119, 7)) + +const noInit; +>noInit : Symbol(noInit, Decl(plainJSGrammarErrors.js, 120, 5)) + +let let = 15; +>let : Symbol(let, Decl(plainJSGrammarErrors.js, 121, 3)) + +if (true) + let onlyBlockLet = 17; +>onlyBlockLet : Symbol(onlyBlockLet, Decl(plainJSGrammarErrors.js, 123, 7)) + +if (true) + const onlyBlockConst = 18; +>onlyBlockConst : Symbol(onlyBlockConst, Decl(plainJSGrammarErrors.js, 125, 9)) + +// loop mistakes +let async +>async : Symbol(async, Decl(plainJSGrammarErrors.js, 128, 3)) + +export const l = [1,2,3] +>l : Symbol(l, Decl(plainJSGrammarErrors.js, 129, 12)) + +for (async of l) { +>async : Symbol(async, Decl(plainJSGrammarErrors.js, 128, 3)) +>l : Symbol(l, Decl(plainJSGrammarErrors.js, 129, 12)) + + console.log(x) +>console.log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>console : Symbol(console, Decl(lib.dom.d.ts, --, --)) +>log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>x : Symbol(x, Decl(plainJSGrammarErrors.js, 96, 3), Decl(plainJSGrammarErrors.js, 97, 3)) +} +for (const cantHaveInit = 1 of [1,2,3]) { +>cantHaveInit : Symbol(cantHaveInit, Decl(plainJSGrammarErrors.js, 133, 10)) + + console.log(cantHaveInit) +>console.log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>console : Symbol(console, Decl(lib.dom.d.ts, --, --)) +>log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>cantHaveInit : Symbol(cantHaveInit, Decl(plainJSGrammarErrors.js, 133, 10)) +} +for (const cantHaveInit = 1 in [1,2,3]) { +>cantHaveInit : Symbol(cantHaveInit, Decl(plainJSGrammarErrors.js, 136, 10)) + + console.log(cantHaveInit) +>console.log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>console : Symbol(console, Decl(lib.dom.d.ts, --, --)) +>log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>cantHaveInit : Symbol(cantHaveInit, Decl(plainJSGrammarErrors.js, 136, 10)) +} +for (let y, x of [1,2,3]) { +>y : Symbol(y, Decl(plainJSGrammarErrors.js, 139, 8)) +>x : Symbol(x, Decl(plainJSGrammarErrors.js, 139, 11)) + + console.log(x) +>console.log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>console : Symbol(console, Decl(lib.dom.d.ts, --, --)) +>log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>x : Symbol(x, Decl(plainJSGrammarErrors.js, 139, 11)) +} +for (let y, x in [1,2,3]) { +>y : Symbol(y, Decl(plainJSGrammarErrors.js, 142, 8)) +>x : Symbol(x, Decl(plainJSGrammarErrors.js, 142, 11)) + + console.log(x) +>console.log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>console : Symbol(console, Decl(lib.dom.d.ts, --, --)) +>log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>x : Symbol(x, Decl(plainJSGrammarErrors.js, 142, 11)) +} + +// duplication mistakes +var b +>b : Symbol(b, Decl(plainJSGrammarErrors.js, 147, 3)) + +switch (b) { +>b : Symbol(b, Decl(plainJSGrammarErrors.js, 147, 3)) + + case false: + console.log('no') +>console.log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>console : Symbol(console, Decl(lib.dom.d.ts, --, --)) +>log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) + + default: + console.log('yes') +>console.log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>console : Symbol(console, Decl(lib.dom.d.ts, --, --)) +>log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) + + default: + console.log('wat') +>console.log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>console : Symbol(console, Decl(lib.dom.d.ts, --, --)) +>log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +} +try { + throw 2 +} +catch (e) { +>e : Symbol(e, Decl(plainJSGrammarErrors.js, 159, 7)) + + const e = 1 +>e : Symbol(e, Decl(plainJSGrammarErrors.js, 160, 9)) + + console.log(e) +>console.log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>console : Symbol(console, Decl(lib.dom.d.ts, --, --)) +>log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>e : Symbol(e, Decl(plainJSGrammarErrors.js, 160, 9)) +} +try { + throw 20 +} +catch (e = 0) { +>e : Symbol(e, Decl(plainJSGrammarErrors.js, 166, 7)) +} +label: for (const x in [1,2,3]) { +>x : Symbol(x, Decl(plainJSGrammarErrors.js, 168, 17)) + + label: for (const y in [1,2,3]) { +>y : Symbol(y, Decl(plainJSGrammarErrors.js, 169, 21)) + + break label; + } +} + +// labels +function crossFunctionBoundary() { +>crossFunctionBoundary : Symbol(crossFunctionBoundary, Decl(plainJSGrammarErrors.js, 172, 1)) + + outer: for(;;) { + function test() { +>test : Symbol(test, Decl(plainJSGrammarErrors.js, 176, 20)) + + break outer + } + test() +>test : Symbol(test, Decl(plainJSGrammarErrors.js, 176, 20)) + } +} +function continueIterationOnly(x) { +>continueIterationOnly : Symbol(continueIterationOnly, Decl(plainJSGrammarErrors.js, 182, 1)) +>x : Symbol(x, Decl(plainJSGrammarErrors.js, 183, 31)) + + outer: switch (x) { +>x : Symbol(x, Decl(plainJSGrammarErrors.js, 183, 31)) + + case 1: + continue outer + } +} +function jumpToLabelOnly(x) { +>jumpToLabelOnly : Symbol(jumpToLabelOnly, Decl(plainJSGrammarErrors.js, 188, 1)) +>x : Symbol(x, Decl(plainJSGrammarErrors.js, 189, 25)) + + break jumpToLabelOnly +} +for (;;) { + break toplevel + continue toplevel +} +break +continue + +// other weirdness +export let noMeta = import.metal +>noMeta : Symbol(noMeta, Decl(plainJSGrammarErrors.js, 200, 10)) + +function foo() { new.targe } +>foo : Symbol(foo, Decl(plainJSGrammarErrors.js, 200, 32)) +>new.targe : Symbol(foo, Decl(plainJSGrammarErrors.js, 200, 32)) +>targe : Symbol(foo, Decl(plainJSGrammarErrors.js, 200, 32)) + +const nullaryDynamicImport = import() +>nullaryDynamicImport : Symbol(nullaryDynamicImport, Decl(plainJSGrammarErrors.js, 202, 5)) + +const trinaryDynamicImport = import('1', '2', '3') +>trinaryDynamicImport : Symbol(trinaryDynamicImport, Decl(plainJSGrammarErrors.js, 203, 5)) + +const spreadDynamicImport = import(...[]) +>spreadDynamicImport : Symbol(spreadDynamicImport, Decl(plainJSGrammarErrors.js, 204, 5)) + +return + diff --git a/tests/baselines/reference/plainJSGrammarErrors.types b/tests/baselines/reference/plainJSGrammarErrors.types new file mode 100644 index 0000000000000..0d9a941af369b --- /dev/null +++ b/tests/baselines/reference/plainJSGrammarErrors.types @@ -0,0 +1,628 @@ +=== tests/cases/conformance/salsa/plainJSGrammarErrors.js === +class C { +>C : C + + // #private mistakes + q = #unbound +>q : any + + m() { +>m : () => void + + #p + if (#po in this) { +>#po in this : boolean +>#po : any +>this : this + } + } + #m() { +>#m : () => void + + this.#m = () => {} +>this.#m = () => {} : () => void +>this.#m : () => void +>this : this +>() => {} : () => void + } + // await in static block + static { + for await (const x of [1,2,3]) { +>x : number +>[1,2,3] : number[] +>1 : 1 +>2 : 2 +>3 : 3 + + console.log(x) +>console.log(x) : void +>console.log : (...data: any[]) => void +>console : Console +>log : (...data: any[]) => void +>x : number + } + return null +>null : null + } + // modifier mistakes + static constructor() { } + async constructor() { } + const x = 1 +>x : number +>1 : 1 + + const y() { +>y : () => number + + return 12 +>12 : 12 + } + async async extremelyAsync() { +>extremelyAsync : () => Promise + } + async static oorder(){ } +>oorder : () => Promise + + export cantExportProperty = 1 +>cantExportProperty : number +>1 : 1 + + export cantExportMethod() { +>cantExportMethod : () => void + } + + // accessor mistakes + get incorporeal(); +>incorporeal : any + + get parametric(n) { return 1 } +>parametric : number +>n : any +>1 : 1 + + set invariant() { } +>invariant : any + + set binary(fst, snd) { } +>binary : any +>fst : any +>snd : any + + set variable(...n) { } +>variable : any +>n : any[] + + // other + "constructor" = 16 +>"constructor" : number +>16 : 16 +} +class { + missingName = true +>missingName : boolean +>true : true +} +class Doubler extends C extends C { } +>Doubler : Doubler +>C : C +>C : C + +class Trebler extends C,C,C { } +>Trebler : Trebler +>C : C +>C : C +>C : C + +// #private mistakes +#unrelated +junk.#m +>junk.#m : any +>junk : any + +new C().#m +>new C().#m : any +>new C() : C +>C : typeof C + +// modifier mistakes +export export var extremelyExported = 10 +>extremelyExported : number +>10 : 10 + +export static var staticExport = 1 +>staticExport : number +>1 : 1 + +function staticParam(static x = 1) { return x } +>staticParam : (x?: number) => number +>x : number +>1 : 1 +>x : number + +async export function oorder(x = 1) { return x } +>oorder : (x?: number) => Promise +>x : number +>1 : 1 +>x : number + +function cantExportParam(export x = 1) { return x } +>cantExportParam : (x?: number) => number +>x : number +>1 : 1 +>x : number + +function cantAsyncParam(async x = 1) { return x } +>cantAsyncParam : (x?: number) => number +>x : number +>1 : 1 +>x : number + +async async function extremelyAsync() {} +>extremelyAsync : () => Promise + +async class CantAsyncClass { +>CantAsyncClass : CantAsyncClass + + async cantAsyncPropert = 1 +>cantAsyncPropert : number +>1 : 1 +} +async const cantAsyncConst = 2 +>cantAsyncConst : 2 +>2 : 2 + +async import 'assert' +async export { CantAsyncClass } +>CantAsyncClass : typeof CantAsyncClass + +export import 'fs' +export export { C } +>C : typeof C + +function nestedExports() { +>nestedExports : () => void + + export { staticParam } +>staticParam : any + + import 'fs' + export default 12 +} +function outerStaticFunction() { +>outerStaticFunction : () => void + + static function staticFunction() { } +>staticFunction : () => void +} +const noStaticLiteralMethods = { +>noStaticLiteralMethods : { m(): void; } +>{ static m() { }} : { m(): void; } + + static m() { +>m : () => void + } +} + +// rest parameters +function restMustBeLast(...x, y) { +>restMustBeLast : (...x: any[], y: any) => void +>x : any[] +>y : any +} +function restCantHaveInitialiser(...x = [1,2,3]) { +>restCantHaveInitialiser : (...x?: number[]) => void +>x : number[] +>[1,2,3] : number[] +>1 : 1 +>2 : 2 +>3 : 3 +} +function restCantHaveTrailingComma (...x,) { +>restCantHaveTrailingComma : (...x: any[]) => void +>x : any[] +} +;({ ...{} } = {}) +>({ ...{} } = {}) : {} +>{ ...{} } = {} : {} +>{ ...{} } : {} +>{} : {} +>{} : {} + +const doom = { e: 1, m: 1, name: "knee-deep" } +>doom : { e: number; m: number; name: string; } +>{ e: 1, m: 1, name: "knee-deep" } : { e: number; m: number; name: string; } +>e : number +>1 : 1 +>m : number +>1 : 1 +>name : string +>"knee-deep" : "knee-deep" + +const { ...rest, e: episode, m: mission } = doom +>rest : { name: string; } +>e : any +>episode : number +>m : any +>mission : number +>doom : { e: number; m: number; name: string; } + +const { e: eep, m: em, ...rest: noRestAllowed } = doom +>e : any +>eep : number +>m : any +>em : number +>rest : any +>noRestAllowed : { name: string; } +>doom : { e: number; m: number; name: string; } + +const { e: erp, m: erm, ...noInitialiser = true } = doom +>e : any +>erp : number +>m : any +>erm : number +>noInitialiser : true | { name: string; } +>true : true +>doom : { e: number; m: number; name: string; } + +// left-over parsing +var; +var x = 1 || 2 ?? 3 +>x : number +>1 || 2 ?? 3 : 1 | 2 | 3 +>1 || 2 : 1 | 2 +>1 : 1 +>2 : 2 +>3 : 3 + +var x = 2 ?? 3 || 4 +>x : number +>2 ?? 3 || 4 : 2 | 3 | 4 +>2 : 2 +>3 || 4 : 3 | 4 +>3 : 3 +>4 : 4 + +const arr = x +>arr : (x: any) => any +>x => x + 1 : (x: any) => any +>x : any + + => x + 1 +>x + 1 : any +>x : any +>1 : 1 + +var a = [1,2] +>a : number[] +>[1,2] : number[] +>1 : 1 +>2 : 2 + +a?.`length`; +>a?.`length` : any +>a : number[] +>`length` : "length" + +const o = { +>o : { 2: string; cantExportProperties: number; cantHaveQuestionMark: number; m?(): number; definitely: any; definiteMethod(): number; } +>{ [console.log('oh no'),2]: 'hi', #noPrivate: 3, export cantExportProperties: 4, // TODO: See what the existing JS error is like for these cantHaveQuestionMark?: 1, m?() { return 12 }, definitely!, definiteMethod!() { return 13 },} : { 2: string; cantExportProperties: number; cantHaveQuestionMark: number; m?(): number; definitely: any; definiteMethod(): number; } + + [console.log('oh no'),2]: 'hi', +>[console.log('oh no'),2] : string +>console.log('oh no'),2 : 2 +>console.log('oh no') : void +>console.log : (...data: any[]) => void +>console : Console +>log : (...data: any[]) => void +>'oh no' : "oh no" +>2 : 2 +>'hi' : "hi" + + #noPrivate: 3, +>#noPrivate : number +>3 : 3 + + export cantExportProperties: 4, +>cantExportProperties : number +>4 : 4 + + // TODO: See what the existing JS error is like for these + cantHaveQuestionMark?: 1, +>cantHaveQuestionMark : number +>1 : 1 + + m?() { return 12 }, +>m : () => number +>12 : 12 + + definitely!, +>definitely : any + + definiteMethod!() { return 13 }, +>definiteMethod : () => number +>13 : 13 +} +const noAssignment = { +>noAssignment : { assignment: number; } +>{ assignment = 1,} : { assignment: number; } + + assignment = 1, +>assignment : any +>1 : 1 +} +var noTrailingComma = 1,; +>noTrailingComma : number +>1 : 1 + +class MissingExtends extends { } +>MissingExtends : MissingExtends + +// let/const mistakes +const { e: ee }; +>e : any +>ee : any + +const noInit; +>noInit : any + +let let = 15; +>let : number +>15 : 15 + +if (true) +>true : true + + let onlyBlockLet = 17; +>onlyBlockLet : number +>17 : 17 + +if (true) +>true : true + + const onlyBlockConst = 18; +>onlyBlockConst : 18 +>18 : 18 + +// loop mistakes +let async +>async : any + +export const l = [1,2,3] +>l : number[] +>[1,2,3] : number[] +>1 : 1 +>2 : 2 +>3 : 3 + +for (async of l) { +>async : any +>l : number[] + + console.log(x) +>console.log(x) : void +>console.log : (...data: any[]) => void +>console : Console +>log : (...data: any[]) => void +>x : number +} +for (const cantHaveInit = 1 of [1,2,3]) { +>cantHaveInit : number +>1 : 1 +>[1,2,3] : number[] +>1 : 1 +>2 : 2 +>3 : 3 + + console.log(cantHaveInit) +>console.log(cantHaveInit) : void +>console.log : (...data: any[]) => void +>console : Console +>log : (...data: any[]) => void +>cantHaveInit : number +} +for (const cantHaveInit = 1 in [1,2,3]) { +>cantHaveInit : string +>1 : 1 +>[1,2,3] : number[] +>1 : 1 +>2 : 2 +>3 : 3 + + console.log(cantHaveInit) +>console.log(cantHaveInit) : void +>console.log : (...data: any[]) => void +>console : Console +>log : (...data: any[]) => void +>cantHaveInit : string +} +for (let y, x of [1,2,3]) { +>y : number +>x : number +>[1,2,3] : number[] +>1 : 1 +>2 : 2 +>3 : 3 + + console.log(x) +>console.log(x) : void +>console.log : (...data: any[]) => void +>console : Console +>log : (...data: any[]) => void +>x : number +} +for (let y, x in [1,2,3]) { +>y : string +>x : string +>[1,2,3] : number[] +>1 : 1 +>2 : 2 +>3 : 3 + + console.log(x) +>console.log(x) : void +>console.log : (...data: any[]) => void +>console : Console +>log : (...data: any[]) => void +>x : string +} + +// duplication mistakes +var b +>b : any + +switch (b) { +>b : undefined + + case false: +>false : false + + console.log('no') +>console.log('no') : void +>console.log : (...data: any[]) => void +>console : Console +>log : (...data: any[]) => void +>'no' : "no" + + default: + console.log('yes') +>console.log('yes') : void +>console.log : (...data: any[]) => void +>console : Console +>log : (...data: any[]) => void +>'yes' : "yes" + + default: + console.log('wat') +>console.log('wat') : void +>console.log : (...data: any[]) => void +>console : Console +>log : (...data: any[]) => void +>'wat' : "wat" +} +try { + throw 2 +>2 : 2 +} +catch (e) { +>e : any + + const e = 1 +>e : 1 +>1 : 1 + + console.log(e) +>console.log(e) : void +>console.log : (...data: any[]) => void +>console : Console +>log : (...data: any[]) => void +>e : 1 +} +try { + throw 20 +>20 : 20 +} +catch (e = 0) { +>e : any +>0 : 0 +} +label: for (const x in [1,2,3]) { +>label : any +>x : string +>[1,2,3] : number[] +>1 : 1 +>2 : 2 +>3 : 3 + + label: for (const y in [1,2,3]) { +>label : any +>y : string +>[1,2,3] : number[] +>1 : 1 +>2 : 2 +>3 : 3 + + break label; +>label : any + } +} + +// labels +function crossFunctionBoundary() { +>crossFunctionBoundary : () => void + + outer: for(;;) { +>outer : any + + function test() { +>test : () => void + + break outer +>outer : any + } + test() +>test() : void +>test : () => void + } +} +function continueIterationOnly(x) { +>continueIterationOnly : (x: any) => void +>x : any + + outer: switch (x) { +>outer : any +>x : any + + case 1: +>1 : 1 + + continue outer +>outer : any + } +} +function jumpToLabelOnly(x) { +>jumpToLabelOnly : (x: any) => void +>x : any + + break jumpToLabelOnly +>jumpToLabelOnly : any +} +for (;;) { + break toplevel +>toplevel : any + + continue toplevel +>toplevel : any +} +break +continue + +// other weirdness +export let noMeta = import.metal +>noMeta : any +>import.metal : any +>metal : any + +function foo() { new.targe } +>foo : () => void +>new.targe : () => void +>targe : any + +const nullaryDynamicImport = import() +>nullaryDynamicImport : Promise +>import() : Promise + +const trinaryDynamicImport = import('1', '2', '3') +>trinaryDynamicImport : Promise +>import('1', '2', '3') : Promise +>'1' : "1" +>'2' : "2" +>'3' : "3" + +const spreadDynamicImport = import(...[]) +>spreadDynamicImport : Promise +>import(...[]) : Promise +>...[] : undefined +>[] : undefined[] + +return + diff --git a/tests/baselines/reference/plainJSGrammarErrors2.js b/tests/baselines/reference/plainJSGrammarErrors2.js new file mode 100644 index 0000000000000..501dd231c198c --- /dev/null +++ b/tests/baselines/reference/plainJSGrammarErrors2.js @@ -0,0 +1,22 @@ +//// [tests/cases/conformance/salsa/plainJSGrammarErrors2.ts] //// + +//// [plainJSGrammarErrors2.js] + +//// [a.js] +export default 1; + +//// [b.js] +/** + * @deprecated + */ +export { default as A } from "./a"; + + +//// [plainJSGrammarErrors2.js] +//// [a.js] +export default 1; +//// [b.js] +/** + * @deprecated + */ +export { default as A } from "./a"; diff --git a/tests/baselines/reference/plainJSGrammarErrors2.symbols b/tests/baselines/reference/plainJSGrammarErrors2.symbols new file mode 100644 index 0000000000000..d4186554ad088 --- /dev/null +++ b/tests/baselines/reference/plainJSGrammarErrors2.symbols @@ -0,0 +1,13 @@ +=== tests/cases/conformance/salsa/plainJSGrammarErrors2.js === + +No type information for this code.=== /a.js === +export default 1; +No type information for this code. +No type information for this code.=== /b.js === +/** + * @deprecated + */ +export { default as A } from "./a"; +>default : Symbol(default, Decl(a.js, 0, 0)) +>A : Symbol(A, Decl(b.js, 3, 8)) + diff --git a/tests/baselines/reference/plainJSGrammarErrors2.types b/tests/baselines/reference/plainJSGrammarErrors2.types new file mode 100644 index 0000000000000..d2c6ae93364a2 --- /dev/null +++ b/tests/baselines/reference/plainJSGrammarErrors2.types @@ -0,0 +1,13 @@ +=== tests/cases/conformance/salsa/plainJSGrammarErrors2.js === + +No type information for this code.=== /a.js === +export default 1; +No type information for this code. +No type information for this code.=== /b.js === +/** + * @deprecated + */ +export { default as A } from "./a"; +>default : 1 +>A : 1 + diff --git a/tests/baselines/reference/plainJSRedeclare.errors.txt b/tests/baselines/reference/plainJSRedeclare.errors.txt new file mode 100644 index 0000000000000..c47a3f90d0b29 --- /dev/null +++ b/tests/baselines/reference/plainJSRedeclare.errors.txt @@ -0,0 +1,13 @@ +tests/cases/conformance/salsa/plainJSRedeclare.js(1,7): error TS2451: Cannot redeclare block-scoped variable 'orbitol'. +tests/cases/conformance/salsa/plainJSRedeclare.js(2,5): error TS2451: Cannot redeclare block-scoped variable 'orbitol'. + + +==== tests/cases/conformance/salsa/plainJSRedeclare.js (2 errors) ==== + const orbitol = 1 + ~~~~~~~ +!!! error TS2451: Cannot redeclare block-scoped variable 'orbitol'. + var orbitol = 1 + false + ~~~~~~~ +!!! error TS2451: Cannot redeclare block-scoped variable 'orbitol'. + orbitol.toExponential() + \ No newline at end of file diff --git a/tests/baselines/reference/plainJSRedeclare.js b/tests/baselines/reference/plainJSRedeclare.js new file mode 100644 index 0000000000000..32b3249fe6773 --- /dev/null +++ b/tests/baselines/reference/plainJSRedeclare.js @@ -0,0 +1,10 @@ +//// [plainJSRedeclare.js] +const orbitol = 1 +var orbitol = 1 + false +orbitol.toExponential() + + +//// [plainJSRedeclare.js] +var orbitol = 1; +var orbitol = 1 + false; +orbitol.toExponential(); diff --git a/tests/baselines/reference/plainJSRedeclare.symbols b/tests/baselines/reference/plainJSRedeclare.symbols new file mode 100644 index 0000000000000..5214b68b4fefd --- /dev/null +++ b/tests/baselines/reference/plainJSRedeclare.symbols @@ -0,0 +1,12 @@ +=== tests/cases/conformance/salsa/plainJSRedeclare.js === +const orbitol = 1 +>orbitol : Symbol(orbitol, Decl(plainJSRedeclare.js, 0, 5)) + +var orbitol = 1 + false +>orbitol : Symbol(orbitol, Decl(plainJSRedeclare.js, 1, 3)) + +orbitol.toExponential() +>orbitol.toExponential : Symbol(Number.toExponential, Decl(lib.es5.d.ts, --, --)) +>orbitol : Symbol(orbitol, Decl(plainJSRedeclare.js, 0, 5)) +>toExponential : Symbol(Number.toExponential, Decl(lib.es5.d.ts, --, --)) + diff --git a/tests/baselines/reference/plainJSRedeclare.types b/tests/baselines/reference/plainJSRedeclare.types new file mode 100644 index 0000000000000..0962bb3221fd7 --- /dev/null +++ b/tests/baselines/reference/plainJSRedeclare.types @@ -0,0 +1,17 @@ +=== tests/cases/conformance/salsa/plainJSRedeclare.js === +const orbitol = 1 +>orbitol : 1 +>1 : 1 + +var orbitol = 1 + false +>orbitol : any +>1 + false : any +>1 : 1 +>false : false + +orbitol.toExponential() +>orbitol.toExponential() : string +>orbitol.toExponential : (fractionDigits?: number) => string +>orbitol : 1 +>toExponential : (fractionDigits?: number) => string + diff --git a/tests/baselines/reference/plainJSRedeclare2.errors.txt b/tests/baselines/reference/plainJSRedeclare2.errors.txt new file mode 100644 index 0000000000000..ca4ef82bbc756 --- /dev/null +++ b/tests/baselines/reference/plainJSRedeclare2.errors.txt @@ -0,0 +1,16 @@ +tests/cases/conformance/salsa/plainJSRedeclare.js(1,7): error TS2451: Cannot redeclare block-scoped variable 'orbitol'. +tests/cases/conformance/salsa/plainJSRedeclare.js(2,5): error TS2451: Cannot redeclare block-scoped variable 'orbitol'. +tests/cases/conformance/salsa/plainJSRedeclare.js(2,15): error TS2365: Operator '+' cannot be applied to types 'number' and 'boolean'. + + +==== tests/cases/conformance/salsa/plainJSRedeclare.js (3 errors) ==== + const orbitol = 1 + ~~~~~~~ +!!! error TS2451: Cannot redeclare block-scoped variable 'orbitol'. + var orbitol = 1 + false + ~~~~~~~ +!!! error TS2451: Cannot redeclare block-scoped variable 'orbitol'. + ~~~~~~~~~ +!!! error TS2365: Operator '+' cannot be applied to types 'number' and 'boolean'. + orbitol.toExponential() + \ No newline at end of file diff --git a/tests/baselines/reference/plainJSRedeclare2.js b/tests/baselines/reference/plainJSRedeclare2.js new file mode 100644 index 0000000000000..32b3249fe6773 --- /dev/null +++ b/tests/baselines/reference/plainJSRedeclare2.js @@ -0,0 +1,10 @@ +//// [plainJSRedeclare.js] +const orbitol = 1 +var orbitol = 1 + false +orbitol.toExponential() + + +//// [plainJSRedeclare.js] +var orbitol = 1; +var orbitol = 1 + false; +orbitol.toExponential(); diff --git a/tests/baselines/reference/plainJSRedeclare2.symbols b/tests/baselines/reference/plainJSRedeclare2.symbols new file mode 100644 index 0000000000000..5214b68b4fefd --- /dev/null +++ b/tests/baselines/reference/plainJSRedeclare2.symbols @@ -0,0 +1,12 @@ +=== tests/cases/conformance/salsa/plainJSRedeclare.js === +const orbitol = 1 +>orbitol : Symbol(orbitol, Decl(plainJSRedeclare.js, 0, 5)) + +var orbitol = 1 + false +>orbitol : Symbol(orbitol, Decl(plainJSRedeclare.js, 1, 3)) + +orbitol.toExponential() +>orbitol.toExponential : Symbol(Number.toExponential, Decl(lib.es5.d.ts, --, --)) +>orbitol : Symbol(orbitol, Decl(plainJSRedeclare.js, 0, 5)) +>toExponential : Symbol(Number.toExponential, Decl(lib.es5.d.ts, --, --)) + diff --git a/tests/baselines/reference/plainJSRedeclare2.types b/tests/baselines/reference/plainJSRedeclare2.types new file mode 100644 index 0000000000000..0962bb3221fd7 --- /dev/null +++ b/tests/baselines/reference/plainJSRedeclare2.types @@ -0,0 +1,17 @@ +=== tests/cases/conformance/salsa/plainJSRedeclare.js === +const orbitol = 1 +>orbitol : 1 +>1 : 1 + +var orbitol = 1 + false +>orbitol : any +>1 + false : any +>1 : 1 +>false : false + +orbitol.toExponential() +>orbitol.toExponential() : string +>orbitol.toExponential : (fractionDigits?: number) => string +>orbitol : 1 +>toExponential : (fractionDigits?: number) => string + diff --git a/tests/baselines/reference/plainJSRedeclare3.js b/tests/baselines/reference/plainJSRedeclare3.js new file mode 100644 index 0000000000000..32b3249fe6773 --- /dev/null +++ b/tests/baselines/reference/plainJSRedeclare3.js @@ -0,0 +1,10 @@ +//// [plainJSRedeclare.js] +const orbitol = 1 +var orbitol = 1 + false +orbitol.toExponential() + + +//// [plainJSRedeclare.js] +var orbitol = 1; +var orbitol = 1 + false; +orbitol.toExponential(); diff --git a/tests/baselines/reference/plainJSRedeclare3.symbols b/tests/baselines/reference/plainJSRedeclare3.symbols new file mode 100644 index 0000000000000..5214b68b4fefd --- /dev/null +++ b/tests/baselines/reference/plainJSRedeclare3.symbols @@ -0,0 +1,12 @@ +=== tests/cases/conformance/salsa/plainJSRedeclare.js === +const orbitol = 1 +>orbitol : Symbol(orbitol, Decl(plainJSRedeclare.js, 0, 5)) + +var orbitol = 1 + false +>orbitol : Symbol(orbitol, Decl(plainJSRedeclare.js, 1, 3)) + +orbitol.toExponential() +>orbitol.toExponential : Symbol(Number.toExponential, Decl(lib.es5.d.ts, --, --)) +>orbitol : Symbol(orbitol, Decl(plainJSRedeclare.js, 0, 5)) +>toExponential : Symbol(Number.toExponential, Decl(lib.es5.d.ts, --, --)) + diff --git a/tests/baselines/reference/plainJSRedeclare3.types b/tests/baselines/reference/plainJSRedeclare3.types new file mode 100644 index 0000000000000..0962bb3221fd7 --- /dev/null +++ b/tests/baselines/reference/plainJSRedeclare3.types @@ -0,0 +1,17 @@ +=== tests/cases/conformance/salsa/plainJSRedeclare.js === +const orbitol = 1 +>orbitol : 1 +>1 : 1 + +var orbitol = 1 + false +>orbitol : any +>1 + false : any +>1 : 1 +>false : false + +orbitol.toExponential() +>orbitol.toExponential() : string +>orbitol.toExponential : (fractionDigits?: number) => string +>orbitol : 1 +>toExponential : (fractionDigits?: number) => string + diff --git a/tests/baselines/reference/plainJSReservedStrict.errors.txt b/tests/baselines/reference/plainJSReservedStrict.errors.txt new file mode 100644 index 0000000000000..db4714a10c194 --- /dev/null +++ b/tests/baselines/reference/plainJSReservedStrict.errors.txt @@ -0,0 +1,13 @@ +tests/cases/conformance/salsa/plainJSReservedStrict.js(2,7): error TS1100: Invalid use of 'eval' in strict mode. +tests/cases/conformance/salsa/plainJSReservedStrict.js(3,7): error TS1100: Invalid use of 'arguments' in strict mode. + + +==== tests/cases/conformance/salsa/plainJSReservedStrict.js (2 errors) ==== + "use strict" + const eval = 1 + ~~~~ +!!! error TS1100: Invalid use of 'eval' in strict mode. + const arguments = 2 + ~~~~~~~~~ +!!! error TS1100: Invalid use of 'arguments' in strict mode. + \ No newline at end of file diff --git a/tests/baselines/reference/plainJSReservedStrict.js b/tests/baselines/reference/plainJSReservedStrict.js new file mode 100644 index 0000000000000..9f35d353afc6a --- /dev/null +++ b/tests/baselines/reference/plainJSReservedStrict.js @@ -0,0 +1,10 @@ +//// [plainJSReservedStrict.js] +"use strict" +const eval = 1 +const arguments = 2 + + +//// [plainJSReservedStrict.js] +"use strict"; +const eval = 1; +const arguments = 2; diff --git a/tests/baselines/reference/plainJSReservedStrict.symbols b/tests/baselines/reference/plainJSReservedStrict.symbols new file mode 100644 index 0000000000000..e89d121657979 --- /dev/null +++ b/tests/baselines/reference/plainJSReservedStrict.symbols @@ -0,0 +1,8 @@ +=== tests/cases/conformance/salsa/plainJSReservedStrict.js === +"use strict" +const eval = 1 +>eval : Symbol(eval, Decl(plainJSReservedStrict.js, 1, 5)) + +const arguments = 2 +>arguments : Symbol(arguments, Decl(plainJSReservedStrict.js, 2, 5)) + diff --git a/tests/baselines/reference/plainJSReservedStrict.types b/tests/baselines/reference/plainJSReservedStrict.types new file mode 100644 index 0000000000000..f4462e1cdab91 --- /dev/null +++ b/tests/baselines/reference/plainJSReservedStrict.types @@ -0,0 +1,12 @@ +=== tests/cases/conformance/salsa/plainJSReservedStrict.js === +"use strict" +>"use strict" : "use strict" + +const eval = 1 +>eval : 1 +>1 : 1 + +const arguments = 2 +>arguments : 2 +>2 : 2 + diff --git a/tests/baselines/reference/potentiallyUncalledDecorators.errors.txt b/tests/baselines/reference/potentiallyUncalledDecorators.errors.txt index 9028ebe0377eb..4fd7d52c64c1a 100644 --- a/tests/baselines/reference/potentiallyUncalledDecorators.errors.txt +++ b/tests/baselines/reference/potentiallyUncalledDecorators.errors.txt @@ -2,39 +2,21 @@ tests/cases/compiler/potentiallyUncalledDecorators.ts(4,5): error TS1329: 'Input tests/cases/compiler/potentiallyUncalledDecorators.ts(35,1): error TS1329: 'noArgs' accepts too few arguments to be used as a decorator here. Did you mean to call it first and write '@noArgs()'? tests/cases/compiler/potentiallyUncalledDecorators.ts(37,5): error TS1329: 'noArgs' accepts too few arguments to be used as a decorator here. Did you mean to call it first and write '@noArgs()'? tests/cases/compiler/potentiallyUncalledDecorators.ts(38,5): error TS1329: 'noArgs' accepts too few arguments to be used as a decorator here. Did you mean to call it first and write '@noArgs()'? -tests/cases/compiler/potentiallyUncalledDecorators.ts(41,1): error TS1238: Unable to resolve signature of class decorator when called as an expression. - Type 'OmniDecorator' is not assignable to type 'typeof B'. - Type 'OmniDecorator' provides no match for the signature 'new (): B'. -tests/cases/compiler/potentiallyUncalledDecorators.ts(43,5): error TS1236: The return type of a property decorator function must be either 'void' or 'any'. - Unable to resolve signature of property decorator when called as an expression. -tests/cases/compiler/potentiallyUncalledDecorators.ts(44,5): error TS1241: Unable to resolve signature of method decorator when called as an expression. - Type 'OmniDecorator' has no properties in common with type 'TypedPropertyDescriptor<() => void>'. -tests/cases/compiler/potentiallyUncalledDecorators.ts(47,1): error TS1238: Unable to resolve signature of class decorator when called as an expression. - Type 'OmniDecorator' is not assignable to type 'typeof C'. - Type 'OmniDecorator' provides no match for the signature 'new (): C'. +tests/cases/compiler/potentiallyUncalledDecorators.ts(41,1): error TS1270: Decorator function return type 'OmniDecorator' is not assignable to type 'void | typeof B'. +tests/cases/compiler/potentiallyUncalledDecorators.ts(43,5): error TS1271: Decorator function return type is 'OmniDecorator' but is expected to be 'void' or 'any'. +tests/cases/compiler/potentiallyUncalledDecorators.ts(44,5): error TS1270: Decorator function return type 'OmniDecorator' is not assignable to type 'void | TypedPropertyDescriptor<() => void>'. +tests/cases/compiler/potentiallyUncalledDecorators.ts(47,1): error TS1270: Decorator function return type 'OmniDecorator' is not assignable to type 'void | typeof C'. tests/cases/compiler/potentiallyUncalledDecorators.ts(49,5): error TS1329: 'oneOptional' accepts too few arguments to be used as a decorator here. Did you mean to call it first and write '@oneOptional()'? tests/cases/compiler/potentiallyUncalledDecorators.ts(50,5): error TS1329: 'oneOptional' accepts too few arguments to be used as a decorator here. Did you mean to call it first and write '@oneOptional()'? -tests/cases/compiler/potentiallyUncalledDecorators.ts(53,1): error TS1238: Unable to resolve signature of class decorator when called as an expression. - Type 'OmniDecorator' is not assignable to type 'typeof D'. - Type 'OmniDecorator' provides no match for the signature 'new (): D'. -tests/cases/compiler/potentiallyUncalledDecorators.ts(55,5): error TS1236: The return type of a property decorator function must be either 'void' or 'any'. - Unable to resolve signature of property decorator when called as an expression. -tests/cases/compiler/potentiallyUncalledDecorators.ts(56,5): error TS1241: Unable to resolve signature of method decorator when called as an expression. - Type 'OmniDecorator' has no properties in common with type 'TypedPropertyDescriptor<() => void>'. -tests/cases/compiler/potentiallyUncalledDecorators.ts(59,1): error TS1238: Unable to resolve signature of class decorator when called as an expression. - Type 'OmniDecorator' is not assignable to type 'typeof E'. - Type 'OmniDecorator' provides no match for the signature 'new (): E'. -tests/cases/compiler/potentiallyUncalledDecorators.ts(61,5): error TS1236: The return type of a property decorator function must be either 'void' or 'any'. - Unable to resolve signature of property decorator when called as an expression. -tests/cases/compiler/potentiallyUncalledDecorators.ts(62,5): error TS1241: Unable to resolve signature of method decorator when called as an expression. - Type 'OmniDecorator' has no properties in common with type 'TypedPropertyDescriptor<() => void>'. -tests/cases/compiler/potentiallyUncalledDecorators.ts(65,1): error TS1238: Unable to resolve signature of class decorator when called as an expression. - Type 'OmniDecorator' is not assignable to type 'typeof F'. - Type 'OmniDecorator' provides no match for the signature 'new (): F'. -tests/cases/compiler/potentiallyUncalledDecorators.ts(67,5): error TS1236: The return type of a property decorator function must be either 'void' or 'any'. - Unable to resolve signature of property decorator when called as an expression. -tests/cases/compiler/potentiallyUncalledDecorators.ts(68,5): error TS1241: Unable to resolve signature of method decorator when called as an expression. - Type 'OmniDecorator' has no properties in common with type 'TypedPropertyDescriptor<() => void>'. +tests/cases/compiler/potentiallyUncalledDecorators.ts(53,1): error TS1270: Decorator function return type 'OmniDecorator' is not assignable to type 'void | typeof D'. +tests/cases/compiler/potentiallyUncalledDecorators.ts(55,5): error TS1271: Decorator function return type is 'OmniDecorator' but is expected to be 'void' or 'any'. +tests/cases/compiler/potentiallyUncalledDecorators.ts(56,5): error TS1270: Decorator function return type 'OmniDecorator' is not assignable to type 'void | TypedPropertyDescriptor<() => void>'. +tests/cases/compiler/potentiallyUncalledDecorators.ts(59,1): error TS1270: Decorator function return type 'OmniDecorator' is not assignable to type 'void | typeof E'. +tests/cases/compiler/potentiallyUncalledDecorators.ts(61,5): error TS1271: Decorator function return type is 'OmniDecorator' but is expected to be 'void' or 'any'. +tests/cases/compiler/potentiallyUncalledDecorators.ts(62,5): error TS1270: Decorator function return type 'OmniDecorator' is not assignable to type 'void | TypedPropertyDescriptor<() => void>'. +tests/cases/compiler/potentiallyUncalledDecorators.ts(65,1): error TS1270: Decorator function return type 'OmniDecorator' is not assignable to type 'void | typeof F'. +tests/cases/compiler/potentiallyUncalledDecorators.ts(67,5): error TS1271: Decorator function return type is 'OmniDecorator' but is expected to be 'void' or 'any'. +tests/cases/compiler/potentiallyUncalledDecorators.ts(68,5): error TS1270: Decorator function return type 'OmniDecorator' is not assignable to type 'void | TypedPropertyDescriptor<() => void>'. ==== tests/cases/compiler/potentiallyUncalledDecorators.ts (19 errors) ==== @@ -88,25 +70,19 @@ tests/cases/compiler/potentiallyUncalledDecorators.ts(68,5): error TS1241: Unabl @allRest ~~~~~~~~ -!!! error TS1238: Unable to resolve signature of class decorator when called as an expression. -!!! error TS1238: Type 'OmniDecorator' is not assignable to type 'typeof B'. -!!! error TS1238: Type 'OmniDecorator' provides no match for the signature 'new (): B'. +!!! error TS1270: Decorator function return type 'OmniDecorator' is not assignable to type 'void | typeof B'. class B { @allRest foo: any; ~~~~~~~~ -!!! error TS1236: The return type of a property decorator function must be either 'void' or 'any'. -!!! error TS1236: Unable to resolve signature of property decorator when called as an expression. +!!! error TS1271: Decorator function return type is 'OmniDecorator' but is expected to be 'void' or 'any'. @allRest bar() { } ~~~~~~~~ -!!! error TS1241: Unable to resolve signature of method decorator when called as an expression. -!!! error TS1241: Type 'OmniDecorator' has no properties in common with type 'TypedPropertyDescriptor<() => void>'. +!!! error TS1270: Decorator function return type 'OmniDecorator' is not assignable to type 'void | TypedPropertyDescriptor<() => void>'. } @oneOptional ~~~~~~~~~~~~ -!!! error TS1238: Unable to resolve signature of class decorator when called as an expression. -!!! error TS1238: Type 'OmniDecorator' is not assignable to type 'typeof C'. -!!! error TS1238: Type 'OmniDecorator' provides no match for the signature 'new (): C'. +!!! error TS1270: Decorator function return type 'OmniDecorator' is not assignable to type 'void | typeof C'. class C { @oneOptional foo: any; ~~~~~~~~~~~~ @@ -118,50 +94,38 @@ tests/cases/compiler/potentiallyUncalledDecorators.ts(68,5): error TS1241: Unabl @twoOptional ~~~~~~~~~~~~ -!!! error TS1238: Unable to resolve signature of class decorator when called as an expression. -!!! error TS1238: Type 'OmniDecorator' is not assignable to type 'typeof D'. -!!! error TS1238: Type 'OmniDecorator' provides no match for the signature 'new (): D'. +!!! error TS1270: Decorator function return type 'OmniDecorator' is not assignable to type 'void | typeof D'. class D { @twoOptional foo: any; ~~~~~~~~~~~~ -!!! error TS1236: The return type of a property decorator function must be either 'void' or 'any'. -!!! error TS1236: Unable to resolve signature of property decorator when called as an expression. +!!! error TS1271: Decorator function return type is 'OmniDecorator' but is expected to be 'void' or 'any'. @twoOptional bar() { } ~~~~~~~~~~~~ -!!! error TS1241: Unable to resolve signature of method decorator when called as an expression. -!!! error TS1241: Type 'OmniDecorator' has no properties in common with type 'TypedPropertyDescriptor<() => void>'. +!!! error TS1270: Decorator function return type 'OmniDecorator' is not assignable to type 'void | TypedPropertyDescriptor<() => void>'. } @threeOptional ~~~~~~~~~~~~~~ -!!! error TS1238: Unable to resolve signature of class decorator when called as an expression. -!!! error TS1238: Type 'OmniDecorator' is not assignable to type 'typeof E'. -!!! error TS1238: Type 'OmniDecorator' provides no match for the signature 'new (): E'. +!!! error TS1270: Decorator function return type 'OmniDecorator' is not assignable to type 'void | typeof E'. class E { @threeOptional foo: any; ~~~~~~~~~~~~~~ -!!! error TS1236: The return type of a property decorator function must be either 'void' or 'any'. -!!! error TS1236: Unable to resolve signature of property decorator when called as an expression. +!!! error TS1271: Decorator function return type is 'OmniDecorator' but is expected to be 'void' or 'any'. @threeOptional bar() { } ~~~~~~~~~~~~~~ -!!! error TS1241: Unable to resolve signature of method decorator when called as an expression. -!!! error TS1241: Type 'OmniDecorator' has no properties in common with type 'TypedPropertyDescriptor<() => void>'. +!!! error TS1270: Decorator function return type 'OmniDecorator' is not assignable to type 'void | TypedPropertyDescriptor<() => void>'. } @oneOptionalWithRest ~~~~~~~~~~~~~~~~~~~~ -!!! error TS1238: Unable to resolve signature of class decorator when called as an expression. -!!! error TS1238: Type 'OmniDecorator' is not assignable to type 'typeof F'. -!!! error TS1238: Type 'OmniDecorator' provides no match for the signature 'new (): F'. +!!! error TS1270: Decorator function return type 'OmniDecorator' is not assignable to type 'void | typeof F'. class F { @oneOptionalWithRest foo: any; ~~~~~~~~~~~~~~~~~~~~ -!!! error TS1236: The return type of a property decorator function must be either 'void' or 'any'. -!!! error TS1236: Unable to resolve signature of property decorator when called as an expression. +!!! error TS1271: Decorator function return type is 'OmniDecorator' but is expected to be 'void' or 'any'. @oneOptionalWithRest bar() { } ~~~~~~~~~~~~~~~~~~~~ -!!! error TS1241: Unable to resolve signature of method decorator when called as an expression. -!!! error TS1241: Type 'OmniDecorator' has no properties in common with type 'TypedPropertyDescriptor<() => void>'. +!!! error TS1270: Decorator function return type 'OmniDecorator' is not assignable to type 'void | TypedPropertyDescriptor<() => void>'. } @anyDec diff --git a/tests/baselines/reference/prettyContextNotDebugAssertion.errors.txt b/tests/baselines/reference/prettyContextNotDebugAssertion.errors.txt index 2bb96b27a9d32..1718e1d04e867 100644 --- a/tests/baselines/reference/prettyContextNotDebugAssertion.errors.txt +++ b/tests/baselines/reference/prettyContextNotDebugAssertion.errors.txt @@ -15,5 +15,5 @@ !!! error TS1005: '}' expected. !!! related TS1007 tests/cases/compiler/index.ts:1:11: The parser expected to find a '}' to match the '{' token here. -Found 1 error. +Found 1 error in tests/cases/compiler/index.ts:2 diff --git a/tests/baselines/reference/prettyFileWithErrorsAndTabs.errors.txt b/tests/baselines/reference/prettyFileWithErrorsAndTabs.errors.txt index e0727c9429b88..02b48803dc69e 100644 --- a/tests/baselines/reference/prettyFileWithErrorsAndTabs.errors.txt +++ b/tests/baselines/reference/prettyFileWithErrorsAndTabs.errors.txt @@ -26,5 +26,5 @@ !!! error TS2322: Type 'number' is not assignable to type 'string'. } } -Found 3 errors. +Found 3 errors in the same file, starting at: tests/cases/compiler/prettyFileWithErrorsAndTabs.ts:3 diff --git a/tests/baselines/reference/primitiveUnionDetection.js b/tests/baselines/reference/primitiveUnionDetection.js new file mode 100644 index 0000000000000..7d12cd85f9201 --- /dev/null +++ b/tests/baselines/reference/primitiveUnionDetection.js @@ -0,0 +1,24 @@ +//// [primitiveUnionDetection.ts] +// Repro from #46624 + +type Kind = "one" | "two" | "three"; + +declare function getInterfaceFromString(options?: { type?: T } & { type?: Kind }): T; + +const result = getInterfaceFromString({ type: 'two' }); + + +//// [primitiveUnionDetection.js] +"use strict"; +// Repro from #46624 +var result = getInterfaceFromString({ type: 'two' }); + + +//// [primitiveUnionDetection.d.ts] +declare type Kind = "one" | "two" | "three"; +declare function getInterfaceFromString(options?: { + type?: T; +} & { + type?: Kind; +}): T; +declare const result: "two"; diff --git a/tests/baselines/reference/primitiveUnionDetection.symbols b/tests/baselines/reference/primitiveUnionDetection.symbols new file mode 100644 index 0000000000000..d5fa7d4447193 --- /dev/null +++ b/tests/baselines/reference/primitiveUnionDetection.symbols @@ -0,0 +1,22 @@ +=== tests/cases/compiler/primitiveUnionDetection.ts === +// Repro from #46624 + +type Kind = "one" | "two" | "three"; +>Kind : Symbol(Kind, Decl(primitiveUnionDetection.ts, 0, 0)) + +declare function getInterfaceFromString(options?: { type?: T } & { type?: Kind }): T; +>getInterfaceFromString : Symbol(getInterfaceFromString, Decl(primitiveUnionDetection.ts, 2, 36)) +>T : Symbol(T, Decl(primitiveUnionDetection.ts, 4, 40)) +>Kind : Symbol(Kind, Decl(primitiveUnionDetection.ts, 0, 0)) +>options : Symbol(options, Decl(primitiveUnionDetection.ts, 4, 56)) +>type : Symbol(type, Decl(primitiveUnionDetection.ts, 4, 67)) +>T : Symbol(T, Decl(primitiveUnionDetection.ts, 4, 40)) +>type : Symbol(type, Decl(primitiveUnionDetection.ts, 4, 82)) +>Kind : Symbol(Kind, Decl(primitiveUnionDetection.ts, 0, 0)) +>T : Symbol(T, Decl(primitiveUnionDetection.ts, 4, 40)) + +const result = getInterfaceFromString({ type: 'two' }); +>result : Symbol(result, Decl(primitiveUnionDetection.ts, 6, 5)) +>getInterfaceFromString : Symbol(getInterfaceFromString, Decl(primitiveUnionDetection.ts, 2, 36)) +>type : Symbol(type, Decl(primitiveUnionDetection.ts, 6, 39)) + diff --git a/tests/baselines/reference/primitiveUnionDetection.types b/tests/baselines/reference/primitiveUnionDetection.types new file mode 100644 index 0000000000000..ac2243d80d4aa --- /dev/null +++ b/tests/baselines/reference/primitiveUnionDetection.types @@ -0,0 +1,20 @@ +=== tests/cases/compiler/primitiveUnionDetection.ts === +// Repro from #46624 + +type Kind = "one" | "two" | "three"; +>Kind : Kind + +declare function getInterfaceFromString(options?: { type?: T } & { type?: Kind }): T; +>getInterfaceFromString : (options?: ({ type?: T | undefined; } & { type?: Kind | undefined; }) | undefined) => T +>options : ({ type?: T | undefined; } & { type?: Kind | undefined; }) | undefined +>type : T | undefined +>type : Kind | undefined + +const result = getInterfaceFromString({ type: 'two' }); +>result : "two" +>getInterfaceFromString({ type: 'two' }) : "two" +>getInterfaceFromString : (options?: ({ type?: T | undefined; } & { type?: Kind | undefined; }) | undefined) => T +>{ type: 'two' } : { type: "two"; } +>type : "two" +>'two' : "two" + diff --git a/tests/baselines/reference/privateNameAndStaticInitializer(target=es2022).js b/tests/baselines/reference/privateNameAndStaticInitializer(target=es2022).js new file mode 100644 index 0000000000000..12690344bab46 --- /dev/null +++ b/tests/baselines/reference/privateNameAndStaticInitializer(target=es2022).js @@ -0,0 +1,15 @@ +//// [privateNameAndStaticInitializer.ts] +class A { + #foo = 1; + static inst = new A(); + #prop = 2; +} + + + +//// [privateNameAndStaticInitializer.js] +class A { + #foo = 1; + static inst = new A(); + #prop = 2; +} diff --git a/tests/baselines/reference/privateNameAndStaticInitializer(target=es2022).symbols b/tests/baselines/reference/privateNameAndStaticInitializer(target=es2022).symbols new file mode 100644 index 0000000000000..2c6f3a53aeae5 --- /dev/null +++ b/tests/baselines/reference/privateNameAndStaticInitializer(target=es2022).symbols @@ -0,0 +1,16 @@ +=== tests/cases/conformance/classes/members/privateNames/privateNameAndStaticInitializer.ts === +class A { +>A : Symbol(A, Decl(privateNameAndStaticInitializer.ts, 0, 0)) + + #foo = 1; +>#foo : Symbol(A.#foo, Decl(privateNameAndStaticInitializer.ts, 0, 9)) + + static inst = new A(); +>inst : Symbol(A.inst, Decl(privateNameAndStaticInitializer.ts, 1, 11)) +>A : Symbol(A, Decl(privateNameAndStaticInitializer.ts, 0, 0)) + + #prop = 2; +>#prop : Symbol(A.#prop, Decl(privateNameAndStaticInitializer.ts, 2, 24)) +} + + diff --git a/tests/baselines/reference/privateNameAndStaticInitializer(target=es2022).types b/tests/baselines/reference/privateNameAndStaticInitializer(target=es2022).types new file mode 100644 index 0000000000000..1c6267617ac9d --- /dev/null +++ b/tests/baselines/reference/privateNameAndStaticInitializer(target=es2022).types @@ -0,0 +1,19 @@ +=== tests/cases/conformance/classes/members/privateNames/privateNameAndStaticInitializer.ts === +class A { +>A : A + + #foo = 1; +>#foo : number +>1 : 1 + + static inst = new A(); +>inst : A +>new A() : A +>A : typeof A + + #prop = 2; +>#prop : number +>2 : 2 +} + + diff --git a/tests/baselines/reference/privateNameBadSuper.errors.txt b/tests/baselines/reference/privateNameBadSuper.errors.txt index ece66a5e95cd2..cf635191e285b 100644 --- a/tests/baselines/reference/privateNameBadSuper.errors.txt +++ b/tests/baselines/reference/privateNameBadSuper.errors.txt @@ -1,17 +1,20 @@ -tests/cases/conformance/classes/members/privateNames/privateNameBadSuper.ts(4,5): error TS2376: A 'super' call must be the first statement in the constructor when a class contains initialized properties, parameter properties, or private identifiers. +tests/cases/conformance/classes/members/privateNames/privateNameBadSuper.ts(4,3): error TS2376: A 'super' call must be the first statement in the constructor to refer to 'super' or 'this' when a derived class contains initialized properties, parameter properties, or private identifiers. +tests/cases/conformance/classes/members/privateNames/privateNameBadSuper.ts(5,5): error TS17009: 'super' must be called before accessing 'this' in the constructor of a derived class. -==== tests/cases/conformance/classes/members/privateNames/privateNameBadSuper.ts (1 errors) ==== +==== tests/cases/conformance/classes/members/privateNames/privateNameBadSuper.ts (2 errors) ==== class B {}; class A extends B { - #x; - constructor() { - ~~~~~~~~~~~~~~~ - void 0; // Error: 'super' call must come first - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - super(); - ~~~~~~~~~~~~~~~~ - } - ~~~~~ -!!! error TS2376: A 'super' call must be the first statement in the constructor when a class contains initialized properties, parameter properties, or private identifiers. + #x; + constructor() { + ~~~~~~~~~~~~~~~ + this; + ~~~~~~~~~ + ~~~~ +!!! error TS17009: 'super' must be called before accessing 'this' in the constructor of a derived class. + super(); + ~~~~~~~~~~~~ + } + ~~~ +!!! error TS2376: A 'super' call must be the first statement in the constructor to refer to 'super' or 'this' when a derived class contains initialized properties, parameter properties, or private identifiers. } \ No newline at end of file diff --git a/tests/baselines/reference/privateNameBadSuper.js b/tests/baselines/reference/privateNameBadSuper.js index ac4a4a80695f1..839f95527cef8 100644 --- a/tests/baselines/reference/privateNameBadSuper.js +++ b/tests/baselines/reference/privateNameBadSuper.js @@ -1,11 +1,11 @@ //// [privateNameBadSuper.ts] class B {}; class A extends B { - #x; - constructor() { - void 0; // Error: 'super' call must come first - super(); - } + #x; + constructor() { + this; + super(); + } } //// [privateNameBadSuper.js] @@ -15,7 +15,7 @@ class B { ; class A extends B { constructor() { - void 0; // Error: 'super' call must come first + this; super(); _A_x.set(this, void 0); } diff --git a/tests/baselines/reference/privateNameBadSuper.symbols b/tests/baselines/reference/privateNameBadSuper.symbols index 4af1f8feb9c29..ad724d9fc5389 100644 --- a/tests/baselines/reference/privateNameBadSuper.symbols +++ b/tests/baselines/reference/privateNameBadSuper.symbols @@ -6,12 +6,14 @@ class A extends B { >A : Symbol(A, Decl(privateNameBadSuper.ts, 0, 11)) >B : Symbol(B, Decl(privateNameBadSuper.ts, 0, 0)) - #x; + #x; >#x : Symbol(A.#x, Decl(privateNameBadSuper.ts, 1, 19)) - constructor() { - void 0; // Error: 'super' call must come first - super(); + constructor() { + this; +>this : Symbol(A, Decl(privateNameBadSuper.ts, 0, 11)) + + super(); >super : Symbol(B, Decl(privateNameBadSuper.ts, 0, 0)) - } + } } diff --git a/tests/baselines/reference/privateNameBadSuper.types b/tests/baselines/reference/privateNameBadSuper.types index 5029155262fab..30dd9e43c7bfc 100644 --- a/tests/baselines/reference/privateNameBadSuper.types +++ b/tests/baselines/reference/privateNameBadSuper.types @@ -6,16 +6,15 @@ class A extends B { >A : A >B : B - #x; + #x; >#x : any - constructor() { - void 0; // Error: 'super' call must come first ->void 0 : undefined ->0 : 0 + constructor() { + this; +>this : this - super(); + super(); >super() : void >super : typeof B - } + } } diff --git a/tests/baselines/reference/privateNameBadSuperUseDefineForClassFields(target=es2022).errors.txt b/tests/baselines/reference/privateNameBadSuperUseDefineForClassFields(target=es2022).errors.txt new file mode 100644 index 0000000000000..ab2f65cb53d7f --- /dev/null +++ b/tests/baselines/reference/privateNameBadSuperUseDefineForClassFields(target=es2022).errors.txt @@ -0,0 +1,21 @@ +tests/cases/conformance/classes/members/privateNames/privateNameBadSuperUseDefineForClassFields.ts(4,3): error TS2376: A 'super' call must be the first statement in the constructor to refer to 'super' or 'this' when a derived class contains initialized properties, parameter properties, or private identifiers. +tests/cases/conformance/classes/members/privateNames/privateNameBadSuperUseDefineForClassFields.ts(5,5): error TS17009: 'super' must be called before accessing 'this' in the constructor of a derived class. + + +==== tests/cases/conformance/classes/members/privateNames/privateNameBadSuperUseDefineForClassFields.ts (2 errors) ==== + class B {}; + class A extends B { + #x; + constructor() { + ~~~~~~~~~~~~~~~ + this; + ~~~~~~~~~ + ~~~~ +!!! error TS17009: 'super' must be called before accessing 'this' in the constructor of a derived class. + super(); + ~~~~~~~~~~~~ + } + ~~~ +!!! error TS2376: A 'super' call must be the first statement in the constructor to refer to 'super' or 'this' when a derived class contains initialized properties, parameter properties, or private identifiers. + } + \ No newline at end of file diff --git a/tests/baselines/reference/privateNameBadSuperUseDefineForClassFields.js b/tests/baselines/reference/privateNameBadSuperUseDefineForClassFields(target=es2022).js similarity index 56% rename from tests/baselines/reference/privateNameBadSuperUseDefineForClassFields.js rename to tests/baselines/reference/privateNameBadSuperUseDefineForClassFields(target=es2022).js index 018c1eaaecedb..cae8d9c65c8a6 100644 --- a/tests/baselines/reference/privateNameBadSuperUseDefineForClassFields.js +++ b/tests/baselines/reference/privateNameBadSuperUseDefineForClassFields(target=es2022).js @@ -1,11 +1,11 @@ //// [privateNameBadSuperUseDefineForClassFields.ts] class B {}; class A extends B { - #x; - constructor() { - void 0; // Error: 'super' call must come first - super(); - } + #x; + constructor() { + this; + super(); + } } @@ -16,7 +16,7 @@ class B { class A extends B { #x; constructor() { - void 0; // Error: 'super' call must come first + this; super(); } } diff --git a/tests/baselines/reference/privateNameBadSuperUseDefineForClassFields.symbols b/tests/baselines/reference/privateNameBadSuperUseDefineForClassFields(target=es2022).symbols similarity index 77% rename from tests/baselines/reference/privateNameBadSuperUseDefineForClassFields.symbols rename to tests/baselines/reference/privateNameBadSuperUseDefineForClassFields(target=es2022).symbols index 5e5115d741790..1faec18f829cf 100644 --- a/tests/baselines/reference/privateNameBadSuperUseDefineForClassFields.symbols +++ b/tests/baselines/reference/privateNameBadSuperUseDefineForClassFields(target=es2022).symbols @@ -6,13 +6,15 @@ class A extends B { >A : Symbol(A, Decl(privateNameBadSuperUseDefineForClassFields.ts, 0, 11)) >B : Symbol(B, Decl(privateNameBadSuperUseDefineForClassFields.ts, 0, 0)) - #x; + #x; >#x : Symbol(A.#x, Decl(privateNameBadSuperUseDefineForClassFields.ts, 1, 19)) - constructor() { - void 0; // Error: 'super' call must come first - super(); + constructor() { + this; +>this : Symbol(A, Decl(privateNameBadSuperUseDefineForClassFields.ts, 0, 11)) + + super(); >super : Symbol(B, Decl(privateNameBadSuperUseDefineForClassFields.ts, 0, 0)) - } + } } diff --git a/tests/baselines/reference/privateNameBadSuperUseDefineForClassFields(target=es2022).types b/tests/baselines/reference/privateNameBadSuperUseDefineForClassFields(target=es2022).types new file mode 100644 index 0000000000000..410e752c22c1d --- /dev/null +++ b/tests/baselines/reference/privateNameBadSuperUseDefineForClassFields(target=es2022).types @@ -0,0 +1,21 @@ +=== tests/cases/conformance/classes/members/privateNames/privateNameBadSuperUseDefineForClassFields.ts === +class B {}; +>B : B + +class A extends B { +>A : A +>B : B + + #x; +>#x : any + + constructor() { + this; +>this : this + + super(); +>super() : void +>super : typeof B + } +} + diff --git a/tests/baselines/reference/privateNameBadSuperUseDefineForClassFields(target=esnext).errors.txt b/tests/baselines/reference/privateNameBadSuperUseDefineForClassFields(target=esnext).errors.txt new file mode 100644 index 0000000000000..8ff7da1b4b9d9 --- /dev/null +++ b/tests/baselines/reference/privateNameBadSuperUseDefineForClassFields(target=esnext).errors.txt @@ -0,0 +1,15 @@ +tests/cases/conformance/classes/members/privateNames/privateNameBadSuperUseDefineForClassFields.ts(5,5): error TS17009: 'super' must be called before accessing 'this' in the constructor of a derived class. + + +==== tests/cases/conformance/classes/members/privateNames/privateNameBadSuperUseDefineForClassFields.ts (1 errors) ==== + class B {}; + class A extends B { + #x; + constructor() { + this; + ~~~~ +!!! error TS17009: 'super' must be called before accessing 'this' in the constructor of a derived class. + super(); + } + } + \ No newline at end of file diff --git a/tests/baselines/reference/privateNameBadSuperUseDefineForClassFields(target=esnext).js b/tests/baselines/reference/privateNameBadSuperUseDefineForClassFields(target=esnext).js new file mode 100644 index 0000000000000..cae8d9c65c8a6 --- /dev/null +++ b/tests/baselines/reference/privateNameBadSuperUseDefineForClassFields(target=esnext).js @@ -0,0 +1,22 @@ +//// [privateNameBadSuperUseDefineForClassFields.ts] +class B {}; +class A extends B { + #x; + constructor() { + this; + super(); + } +} + + +//// [privateNameBadSuperUseDefineForClassFields.js] +class B { +} +; +class A extends B { + #x; + constructor() { + this; + super(); + } +} diff --git a/tests/baselines/reference/privateNameBadSuperUseDefineForClassFields(target=esnext).symbols b/tests/baselines/reference/privateNameBadSuperUseDefineForClassFields(target=esnext).symbols new file mode 100644 index 0000000000000..1faec18f829cf --- /dev/null +++ b/tests/baselines/reference/privateNameBadSuperUseDefineForClassFields(target=esnext).symbols @@ -0,0 +1,20 @@ +=== tests/cases/conformance/classes/members/privateNames/privateNameBadSuperUseDefineForClassFields.ts === +class B {}; +>B : Symbol(B, Decl(privateNameBadSuperUseDefineForClassFields.ts, 0, 0)) + +class A extends B { +>A : Symbol(A, Decl(privateNameBadSuperUseDefineForClassFields.ts, 0, 11)) +>B : Symbol(B, Decl(privateNameBadSuperUseDefineForClassFields.ts, 0, 0)) + + #x; +>#x : Symbol(A.#x, Decl(privateNameBadSuperUseDefineForClassFields.ts, 1, 19)) + + constructor() { + this; +>this : Symbol(A, Decl(privateNameBadSuperUseDefineForClassFields.ts, 0, 11)) + + super(); +>super : Symbol(B, Decl(privateNameBadSuperUseDefineForClassFields.ts, 0, 0)) + } +} + diff --git a/tests/baselines/reference/privateNameBadSuperUseDefineForClassFields(target=esnext).types b/tests/baselines/reference/privateNameBadSuperUseDefineForClassFields(target=esnext).types new file mode 100644 index 0000000000000..410e752c22c1d --- /dev/null +++ b/tests/baselines/reference/privateNameBadSuperUseDefineForClassFields(target=esnext).types @@ -0,0 +1,21 @@ +=== tests/cases/conformance/classes/members/privateNames/privateNameBadSuperUseDefineForClassFields.ts === +class B {}; +>B : B + +class A extends B { +>A : A +>B : B + + #x; +>#x : any + + constructor() { + this; +>this : this + + super(); +>super() : void +>super : typeof B + } +} + diff --git a/tests/baselines/reference/privateNameComputedPropertyName1(target=es2022).js b/tests/baselines/reference/privateNameComputedPropertyName1(target=es2022).js new file mode 100644 index 0000000000000..971dd46b00aa3 --- /dev/null +++ b/tests/baselines/reference/privateNameComputedPropertyName1(target=es2022).js @@ -0,0 +1,63 @@ +//// [privateNameComputedPropertyName1.ts] +class A { + #a = 'a'; + #b: string; + + readonly #c = 'c'; + readonly #d: string; + + #e = ''; + + constructor() { + this.#b = 'b'; + this.#d = 'd'; + } + + test() { + const data: Record = { a: 'a', b: 'b', c: 'c', d: 'd', e: 'e' }; + const { + [this.#a]: a, + [this.#b]: b, + [this.#c]: c, + [this.#d]: d, + [this.#e = 'e']: e, + } = data; + console.log(a, b, c, d, e); + + const a1 = data[this.#a]; + const b1 = data[this.#b]; + const c1 = data[this.#c]; + const d1 = data[this.#d]; + const e1 = data[this.#e]; + console.log(a1, b1, c1, d1); + } +} + +new A().test(); + + + +//// [privateNameComputedPropertyName1.js] +class A { + #a = 'a'; + #b; + #c = 'c'; + #d; + #e = ''; + constructor() { + this.#b = 'b'; + this.#d = 'd'; + } + test() { + const data = { a: 'a', b: 'b', c: 'c', d: 'd', e: 'e' }; + const { [this.#a]: a, [this.#b]: b, [this.#c]: c, [this.#d]: d, [this.#e = 'e']: e, } = data; + console.log(a, b, c, d, e); + const a1 = data[this.#a]; + const b1 = data[this.#b]; + const c1 = data[this.#c]; + const d1 = data[this.#d]; + const e1 = data[this.#e]; + console.log(a1, b1, c1, d1); + } +} +new A().test(); diff --git a/tests/baselines/reference/privateNameComputedPropertyName1(target=es2022).symbols b/tests/baselines/reference/privateNameComputedPropertyName1(target=es2022).symbols new file mode 100644 index 0000000000000..b7aa24012d799 --- /dev/null +++ b/tests/baselines/reference/privateNameComputedPropertyName1(target=es2022).symbols @@ -0,0 +1,127 @@ +=== tests/cases/conformance/classes/members/privateNames/privateNameComputedPropertyName1.ts === +class A { +>A : Symbol(A, Decl(privateNameComputedPropertyName1.ts, 0, 0)) + + #a = 'a'; +>#a : Symbol(A.#a, Decl(privateNameComputedPropertyName1.ts, 0, 9)) + + #b: string; +>#b : Symbol(A.#b, Decl(privateNameComputedPropertyName1.ts, 1, 13)) + + readonly #c = 'c'; +>#c : Symbol(A.#c, Decl(privateNameComputedPropertyName1.ts, 2, 15)) + + readonly #d: string; +>#d : Symbol(A.#d, Decl(privateNameComputedPropertyName1.ts, 4, 22)) + + #e = ''; +>#e : Symbol(A.#e, Decl(privateNameComputedPropertyName1.ts, 5, 24)) + + constructor() { + this.#b = 'b'; +>this.#b : Symbol(A.#b, Decl(privateNameComputedPropertyName1.ts, 1, 13)) +>this : Symbol(A, Decl(privateNameComputedPropertyName1.ts, 0, 0)) + + this.#d = 'd'; +>this.#d : Symbol(A.#d, Decl(privateNameComputedPropertyName1.ts, 4, 22)) +>this : Symbol(A, Decl(privateNameComputedPropertyName1.ts, 0, 0)) + } + + test() { +>test : Symbol(A.test, Decl(privateNameComputedPropertyName1.ts, 12, 5)) + + const data: Record = { a: 'a', b: 'b', c: 'c', d: 'd', e: 'e' }; +>data : Symbol(data, Decl(privateNameComputedPropertyName1.ts, 15, 13)) +>Record : Symbol(Record, Decl(lib.es5.d.ts, --, --)) +>a : Symbol(a, Decl(privateNameComputedPropertyName1.ts, 15, 46)) +>b : Symbol(b, Decl(privateNameComputedPropertyName1.ts, 15, 54)) +>c : Symbol(c, Decl(privateNameComputedPropertyName1.ts, 15, 62)) +>d : Symbol(d, Decl(privateNameComputedPropertyName1.ts, 15, 70)) +>e : Symbol(e, Decl(privateNameComputedPropertyName1.ts, 15, 78)) + + const { + [this.#a]: a, +>this.#a : Symbol(A.#a, Decl(privateNameComputedPropertyName1.ts, 0, 9)) +>this : Symbol(A, Decl(privateNameComputedPropertyName1.ts, 0, 0)) +>a : Symbol(a, Decl(privateNameComputedPropertyName1.ts, 16, 15)) + + [this.#b]: b, +>this.#b : Symbol(A.#b, Decl(privateNameComputedPropertyName1.ts, 1, 13)) +>this : Symbol(A, Decl(privateNameComputedPropertyName1.ts, 0, 0)) +>b : Symbol(b, Decl(privateNameComputedPropertyName1.ts, 17, 25)) + + [this.#c]: c, +>this.#c : Symbol(A.#c, Decl(privateNameComputedPropertyName1.ts, 2, 15)) +>this : Symbol(A, Decl(privateNameComputedPropertyName1.ts, 0, 0)) +>c : Symbol(c, Decl(privateNameComputedPropertyName1.ts, 18, 25)) + + [this.#d]: d, +>this.#d : Symbol(A.#d, Decl(privateNameComputedPropertyName1.ts, 4, 22)) +>this : Symbol(A, Decl(privateNameComputedPropertyName1.ts, 0, 0)) +>d : Symbol(d, Decl(privateNameComputedPropertyName1.ts, 19, 25)) + + [this.#e = 'e']: e, +>this.#e : Symbol(A.#e, Decl(privateNameComputedPropertyName1.ts, 5, 24)) +>this : Symbol(A, Decl(privateNameComputedPropertyName1.ts, 0, 0)) +>e : Symbol(e, Decl(privateNameComputedPropertyName1.ts, 20, 25)) + + } = data; +>data : Symbol(data, Decl(privateNameComputedPropertyName1.ts, 15, 13)) + + console.log(a, b, c, d, e); +>console.log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>console : Symbol(console, Decl(lib.dom.d.ts, --, --)) +>log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>a : Symbol(a, Decl(privateNameComputedPropertyName1.ts, 16, 15)) +>b : Symbol(b, Decl(privateNameComputedPropertyName1.ts, 17, 25)) +>c : Symbol(c, Decl(privateNameComputedPropertyName1.ts, 18, 25)) +>d : Symbol(d, Decl(privateNameComputedPropertyName1.ts, 19, 25)) +>e : Symbol(e, Decl(privateNameComputedPropertyName1.ts, 20, 25)) + + const a1 = data[this.#a]; +>a1 : Symbol(a1, Decl(privateNameComputedPropertyName1.ts, 25, 13)) +>data : Symbol(data, Decl(privateNameComputedPropertyName1.ts, 15, 13)) +>this.#a : Symbol(A.#a, Decl(privateNameComputedPropertyName1.ts, 0, 9)) +>this : Symbol(A, Decl(privateNameComputedPropertyName1.ts, 0, 0)) + + const b1 = data[this.#b]; +>b1 : Symbol(b1, Decl(privateNameComputedPropertyName1.ts, 26, 13)) +>data : Symbol(data, Decl(privateNameComputedPropertyName1.ts, 15, 13)) +>this.#b : Symbol(A.#b, Decl(privateNameComputedPropertyName1.ts, 1, 13)) +>this : Symbol(A, Decl(privateNameComputedPropertyName1.ts, 0, 0)) + + const c1 = data[this.#c]; +>c1 : Symbol(c1, Decl(privateNameComputedPropertyName1.ts, 27, 13)) +>data : Symbol(data, Decl(privateNameComputedPropertyName1.ts, 15, 13)) +>this.#c : Symbol(A.#c, Decl(privateNameComputedPropertyName1.ts, 2, 15)) +>this : Symbol(A, Decl(privateNameComputedPropertyName1.ts, 0, 0)) + + const d1 = data[this.#d]; +>d1 : Symbol(d1, Decl(privateNameComputedPropertyName1.ts, 28, 13)) +>data : Symbol(data, Decl(privateNameComputedPropertyName1.ts, 15, 13)) +>this.#d : Symbol(A.#d, Decl(privateNameComputedPropertyName1.ts, 4, 22)) +>this : Symbol(A, Decl(privateNameComputedPropertyName1.ts, 0, 0)) + + const e1 = data[this.#e]; +>e1 : Symbol(e1, Decl(privateNameComputedPropertyName1.ts, 29, 13)) +>data : Symbol(data, Decl(privateNameComputedPropertyName1.ts, 15, 13)) +>this.#e : Symbol(A.#e, Decl(privateNameComputedPropertyName1.ts, 5, 24)) +>this : Symbol(A, Decl(privateNameComputedPropertyName1.ts, 0, 0)) + + console.log(a1, b1, c1, d1); +>console.log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>console : Symbol(console, Decl(lib.dom.d.ts, --, --)) +>log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>a1 : Symbol(a1, Decl(privateNameComputedPropertyName1.ts, 25, 13)) +>b1 : Symbol(b1, Decl(privateNameComputedPropertyName1.ts, 26, 13)) +>c1 : Symbol(c1, Decl(privateNameComputedPropertyName1.ts, 27, 13)) +>d1 : Symbol(d1, Decl(privateNameComputedPropertyName1.ts, 28, 13)) + } +} + +new A().test(); +>new A().test : Symbol(A.test, Decl(privateNameComputedPropertyName1.ts, 12, 5)) +>A : Symbol(A, Decl(privateNameComputedPropertyName1.ts, 0, 0)) +>test : Symbol(A.test, Decl(privateNameComputedPropertyName1.ts, 12, 5)) + + diff --git a/tests/baselines/reference/privateNameComputedPropertyName1(target=es2022).types b/tests/baselines/reference/privateNameComputedPropertyName1(target=es2022).types new file mode 100644 index 0000000000000..f8b24c7ecd898 --- /dev/null +++ b/tests/baselines/reference/privateNameComputedPropertyName1(target=es2022).types @@ -0,0 +1,150 @@ +=== tests/cases/conformance/classes/members/privateNames/privateNameComputedPropertyName1.ts === +class A { +>A : A + + #a = 'a'; +>#a : string +>'a' : "a" + + #b: string; +>#b : string + + readonly #c = 'c'; +>#c : "c" +>'c' : "c" + + readonly #d: string; +>#d : string + + #e = ''; +>#e : string +>'' : "" + + constructor() { + this.#b = 'b'; +>this.#b = 'b' : "b" +>this.#b : string +>this : this +>'b' : "b" + + this.#d = 'd'; +>this.#d = 'd' : "d" +>this.#d : string +>this : this +>'d' : "d" + } + + test() { +>test : () => void + + const data: Record = { a: 'a', b: 'b', c: 'c', d: 'd', e: 'e' }; +>data : Record +>{ a: 'a', b: 'b', c: 'c', d: 'd', e: 'e' } : { a: string; b: string; c: string; d: string; e: string; } +>a : string +>'a' : "a" +>b : string +>'b' : "b" +>c : string +>'c' : "c" +>d : string +>'d' : "d" +>e : string +>'e' : "e" + + const { + [this.#a]: a, +>this.#a : string +>this : this +>a : string + + [this.#b]: b, +>this.#b : string +>this : this +>b : string + + [this.#c]: c, +>this.#c : "c" +>this : this +>c : string + + [this.#d]: d, +>this.#d : string +>this : this +>d : string + + [this.#e = 'e']: e, +>this.#e = 'e' : "e" +>this.#e : string +>this : this +>'e' : "e" +>e : string + + } = data; +>data : Record + + console.log(a, b, c, d, e); +>console.log(a, b, c, d, e) : void +>console.log : (...data: any[]) => void +>console : Console +>log : (...data: any[]) => void +>a : string +>b : string +>c : string +>d : string +>e : string + + const a1 = data[this.#a]; +>a1 : string +>data[this.#a] : string +>data : Record +>this.#a : string +>this : this + + const b1 = data[this.#b]; +>b1 : string +>data[this.#b] : string +>data : Record +>this.#b : string +>this : this + + const c1 = data[this.#c]; +>c1 : string +>data[this.#c] : string +>data : Record +>this.#c : "c" +>this : this + + const d1 = data[this.#d]; +>d1 : string +>data[this.#d] : string +>data : Record +>this.#d : string +>this : this + + const e1 = data[this.#e]; +>e1 : string +>data[this.#e] : string +>data : Record +>this.#e : string +>this : this + + console.log(a1, b1, c1, d1); +>console.log(a1, b1, c1, d1) : void +>console.log : (...data: any[]) => void +>console : Console +>log : (...data: any[]) => void +>a1 : string +>b1 : string +>c1 : string +>d1 : string + } +} + +new A().test(); +>new A().test() : void +>new A().test : () => void +>new A() : A +>A : typeof A +>test : () => void + + diff --git a/tests/baselines/reference/privateNameComputedPropertyName2(target=es2022).js b/tests/baselines/reference/privateNameComputedPropertyName2(target=es2022).js new file mode 100644 index 0000000000000..e2c4addd45e60 --- /dev/null +++ b/tests/baselines/reference/privateNameComputedPropertyName2(target=es2022).js @@ -0,0 +1,18 @@ +//// [privateNameComputedPropertyName2.ts] +let getX: (a: A) => number; + +class A { + #x = 100; + [(getX = (a: A) => a.#x, "_")]() {} +} + +console.log(getX(new A)); + + +//// [privateNameComputedPropertyName2.js] +let getX; +class A { + #x = 100; + [(getX = (a) => a.#x, "_")]() { } +} +console.log(getX(new A)); diff --git a/tests/baselines/reference/privateNameComputedPropertyName2(target=es2022).symbols b/tests/baselines/reference/privateNameComputedPropertyName2(target=es2022).symbols new file mode 100644 index 0000000000000..8c4bcf6d8916e --- /dev/null +++ b/tests/baselines/reference/privateNameComputedPropertyName2(target=es2022).symbols @@ -0,0 +1,28 @@ +=== tests/cases/conformance/classes/members/privateNames/privateNameComputedPropertyName2.ts === +let getX: (a: A) => number; +>getX : Symbol(getX, Decl(privateNameComputedPropertyName2.ts, 0, 3)) +>a : Symbol(a, Decl(privateNameComputedPropertyName2.ts, 0, 11)) +>A : Symbol(A, Decl(privateNameComputedPropertyName2.ts, 0, 27)) + +class A { +>A : Symbol(A, Decl(privateNameComputedPropertyName2.ts, 0, 27)) + + #x = 100; +>#x : Symbol(A.#x, Decl(privateNameComputedPropertyName2.ts, 2, 9)) + + [(getX = (a: A) => a.#x, "_")]() {} +>[(getX = (a: A) => a.#x, "_")] : Symbol(A[(getX = (a: A) => a.#x, "_")], Decl(privateNameComputedPropertyName2.ts, 3, 13)) +>getX : Symbol(getX, Decl(privateNameComputedPropertyName2.ts, 0, 3)) +>a : Symbol(a, Decl(privateNameComputedPropertyName2.ts, 4, 14)) +>A : Symbol(A, Decl(privateNameComputedPropertyName2.ts, 0, 27)) +>a.#x : Symbol(A.#x, Decl(privateNameComputedPropertyName2.ts, 2, 9)) +>a : Symbol(a, Decl(privateNameComputedPropertyName2.ts, 4, 14)) +} + +console.log(getX(new A)); +>console.log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>console : Symbol(console, Decl(lib.dom.d.ts, --, --)) +>log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>getX : Symbol(getX, Decl(privateNameComputedPropertyName2.ts, 0, 3)) +>A : Symbol(A, Decl(privateNameComputedPropertyName2.ts, 0, 27)) + diff --git a/tests/baselines/reference/privateNameComputedPropertyName2(target=es2022).types b/tests/baselines/reference/privateNameComputedPropertyName2(target=es2022).types new file mode 100644 index 0000000000000..8d9cd2378bb0f --- /dev/null +++ b/tests/baselines/reference/privateNameComputedPropertyName2(target=es2022).types @@ -0,0 +1,35 @@ +=== tests/cases/conformance/classes/members/privateNames/privateNameComputedPropertyName2.ts === +let getX: (a: A) => number; +>getX : (a: A) => number +>a : A + +class A { +>A : A + + #x = 100; +>#x : number +>100 : 100 + + [(getX = (a: A) => a.#x, "_")]() {} +>[(getX = (a: A) => a.#x, "_")] : () => void +>(getX = (a: A) => a.#x, "_") : "_" +>getX = (a: A) => a.#x, "_" : "_" +>getX = (a: A) => a.#x : (a: A) => number +>getX : (a: A) => number +>(a: A) => a.#x : (a: A) => number +>a : A +>a.#x : number +>a : A +>"_" : "_" +} + +console.log(getX(new A)); +>console.log(getX(new A)) : void +>console.log : (...data: any[]) => void +>console : Console +>log : (...data: any[]) => void +>getX(new A) : number +>getX : (a: A) => number +>new A : A +>A : typeof A + diff --git a/tests/baselines/reference/privateNameComputedPropertyName3(target=es2022).js b/tests/baselines/reference/privateNameComputedPropertyName3(target=es2022).js new file mode 100644 index 0000000000000..56fbda76b4922 --- /dev/null +++ b/tests/baselines/reference/privateNameComputedPropertyName3(target=es2022).js @@ -0,0 +1,44 @@ +//// [privateNameComputedPropertyName3.ts] +class Foo { + #name; + + constructor(name) { + this.#name = name; + } + + getValue(x) { + const obj = this; + + class Bar { + #y = 100; + + [obj.#name]() { + return x + this.#y; + } + } + + return new Bar()[obj.#name](); + } +} + +console.log(new Foo("NAME").getValue(100)); + + +//// [privateNameComputedPropertyName3.js] +class Foo { + #name; + constructor(name) { + this.#name = name; + } + getValue(x) { + const obj = this; + class Bar { + #y = 100; + [obj.#name]() { + return x + this.#y; + } + } + return new Bar()[obj.#name](); + } +} +console.log(new Foo("NAME").getValue(100)); diff --git a/tests/baselines/reference/privateNameComputedPropertyName3(target=es2022).symbols b/tests/baselines/reference/privateNameComputedPropertyName3(target=es2022).symbols new file mode 100644 index 0000000000000..59403f53b88f2 --- /dev/null +++ b/tests/baselines/reference/privateNameComputedPropertyName3(target=es2022).symbols @@ -0,0 +1,57 @@ +=== tests/cases/conformance/classes/members/privateNames/privateNameComputedPropertyName3.ts === +class Foo { +>Foo : Symbol(Foo, Decl(privateNameComputedPropertyName3.ts, 0, 0)) + + #name; +>#name : Symbol(Foo.#name, Decl(privateNameComputedPropertyName3.ts, 0, 11)) + + constructor(name) { +>name : Symbol(name, Decl(privateNameComputedPropertyName3.ts, 3, 16)) + + this.#name = name; +>this.#name : Symbol(Foo.#name, Decl(privateNameComputedPropertyName3.ts, 0, 11)) +>this : Symbol(Foo, Decl(privateNameComputedPropertyName3.ts, 0, 0)) +>name : Symbol(name, Decl(privateNameComputedPropertyName3.ts, 3, 16)) + } + + getValue(x) { +>getValue : Symbol(Foo.getValue, Decl(privateNameComputedPropertyName3.ts, 5, 5)) +>x : Symbol(x, Decl(privateNameComputedPropertyName3.ts, 7, 13)) + + const obj = this; +>obj : Symbol(obj, Decl(privateNameComputedPropertyName3.ts, 8, 13)) +>this : Symbol(Foo, Decl(privateNameComputedPropertyName3.ts, 0, 0)) + + class Bar { +>Bar : Symbol(Bar, Decl(privateNameComputedPropertyName3.ts, 8, 25)) + + #y = 100; +>#y : Symbol(Bar.#y, Decl(privateNameComputedPropertyName3.ts, 10, 19)) + + [obj.#name]() { +>[obj.#name] : Symbol(Bar[obj.#name], Decl(privateNameComputedPropertyName3.ts, 11, 21)) +>obj.#name : Symbol(Foo.#name, Decl(privateNameComputedPropertyName3.ts, 0, 11)) +>obj : Symbol(obj, Decl(privateNameComputedPropertyName3.ts, 8, 13)) + + return x + this.#y; +>x : Symbol(x, Decl(privateNameComputedPropertyName3.ts, 7, 13)) +>this.#y : Symbol(Bar.#y, Decl(privateNameComputedPropertyName3.ts, 10, 19)) +>this : Symbol(Bar, Decl(privateNameComputedPropertyName3.ts, 8, 25)) + } + } + + return new Bar()[obj.#name](); +>Bar : Symbol(Bar, Decl(privateNameComputedPropertyName3.ts, 8, 25)) +>obj.#name : Symbol(Foo.#name, Decl(privateNameComputedPropertyName3.ts, 0, 11)) +>obj : Symbol(obj, Decl(privateNameComputedPropertyName3.ts, 8, 13)) + } +} + +console.log(new Foo("NAME").getValue(100)); +>console.log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>console : Symbol(console, Decl(lib.dom.d.ts, --, --)) +>log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>new Foo("NAME").getValue : Symbol(Foo.getValue, Decl(privateNameComputedPropertyName3.ts, 5, 5)) +>Foo : Symbol(Foo, Decl(privateNameComputedPropertyName3.ts, 0, 0)) +>getValue : Symbol(Foo.getValue, Decl(privateNameComputedPropertyName3.ts, 5, 5)) + diff --git a/tests/baselines/reference/privateNameComputedPropertyName3(target=es2022).types b/tests/baselines/reference/privateNameComputedPropertyName3(target=es2022).types new file mode 100644 index 0000000000000..6bffb1abbae5a --- /dev/null +++ b/tests/baselines/reference/privateNameComputedPropertyName3(target=es2022).types @@ -0,0 +1,68 @@ +=== tests/cases/conformance/classes/members/privateNames/privateNameComputedPropertyName3.ts === +class Foo { +>Foo : Foo + + #name; +>#name : any + + constructor(name) { +>name : any + + this.#name = name; +>this.#name = name : any +>this.#name : any +>this : this +>name : any + } + + getValue(x) { +>getValue : (x: any) => any +>x : any + + const obj = this; +>obj : this +>this : this + + class Bar { +>Bar : Bar + + #y = 100; +>#y : number +>100 : 100 + + [obj.#name]() { +>[obj.#name] : () => any +>obj.#name : any +>obj : this + + return x + this.#y; +>x + this.#y : any +>x : any +>this.#y : number +>this : this + } + } + + return new Bar()[obj.#name](); +>new Bar()[obj.#name]() : error +>new Bar()[obj.#name] : error +>new Bar() : Bar +>Bar : typeof Bar +>obj.#name : any +>obj : this + } +} + +console.log(new Foo("NAME").getValue(100)); +>console.log(new Foo("NAME").getValue(100)) : void +>console.log : (...data: any[]) => void +>console : Console +>log : (...data: any[]) => void +>new Foo("NAME").getValue(100) : error +>new Foo("NAME").getValue : (x: any) => any +>new Foo("NAME") : Foo +>Foo : typeof Foo +>"NAME" : "NAME" +>getValue : (x: any) => any +>100 : 100 + diff --git a/tests/baselines/reference/privateNameComputedPropertyName4(target=es2022).js b/tests/baselines/reference/privateNameComputedPropertyName4(target=es2022).js new file mode 100644 index 0000000000000..26190d3042c21 --- /dev/null +++ b/tests/baselines/reference/privateNameComputedPropertyName4(target=es2022).js @@ -0,0 +1,30 @@ +//// [privateNameComputedPropertyName4.ts] +// https://github.com/microsoft/TypeScript/issues/44113 +class C1 { + static #qux = 42; + ["bar"] () {} +} +class C2 { + static #qux = 42; + static ["bar"] () {} +} +class C3 { + static #qux = 42; + static ["bar"] = "test"; +} + + +//// [privateNameComputedPropertyName4.js] +// https://github.com/microsoft/TypeScript/issues/44113 +class C1 { + static #qux = 42; + ["bar"]() { } +} +class C2 { + static #qux = 42; + static ["bar"]() { } +} +class C3 { + static #qux = 42; + static ["bar"] = "test"; +} diff --git a/tests/baselines/reference/privateNameErrorsOnNotUseDefineForClassFieldsInEsNext(target=es2020).symbols b/tests/baselines/reference/privateNameErrorsOnNotUseDefineForClassFieldsInEsNext(target=es2020).symbols deleted file mode 100644 index 58c405de0ac8a..0000000000000 --- a/tests/baselines/reference/privateNameErrorsOnNotUseDefineForClassFieldsInEsNext(target=es2020).symbols +++ /dev/null @@ -1,126 +0,0 @@ -=== tests/cases/conformance/classes/members/privateNames/privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts === -class TestWithErrors { ->TestWithErrors : Symbol(TestWithErrors, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 0, 0)) - - #prop = 0 ->#prop : Symbol(TestWithErrors.#prop, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 0, 22)) - - static dd = new TestWithErrors().#prop; // Err ->dd : Symbol(TestWithErrors.dd, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 1, 13)) ->new TestWithErrors().#prop : Symbol(TestWithErrors.#prop, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 0, 22)) ->TestWithErrors : Symbol(TestWithErrors, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 0, 0)) - - static ["X_ z_ zz"] = class Inner { ->["X_ z_ zz"] : Symbol(TestWithErrors["X_ z_ zz"], Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 2, 43)) ->"X_ z_ zz" : Symbol(TestWithErrors["X_ z_ zz"], Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 2, 43)) ->Inner : Symbol(Inner, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 3, 25)) - - #foo = 10 ->#foo : Symbol(Inner.#foo, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 3, 39)) - - m() { ->m : Symbol(Inner.m, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 4, 18)) - - new TestWithErrors().#prop // Err ->new TestWithErrors().#prop : Symbol(TestWithErrors.#prop, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 0, 22)) ->TestWithErrors : Symbol(TestWithErrors, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 0, 0)) - } - static C = class InnerInner { ->C : Symbol(Inner.C, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 7, 9)) ->InnerInner : Symbol(InnerInner, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 8, 18)) - - m() { ->m : Symbol(InnerInner.m, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 8, 37)) - - new TestWithErrors().#prop // Err ->new TestWithErrors().#prop : Symbol(TestWithErrors.#prop, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 0, 22)) ->TestWithErrors : Symbol(TestWithErrors, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 0, 0)) - - new Inner().#foo; // Err ->new Inner().#foo : Symbol(Inner.#foo, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 3, 39)) ->Inner : Symbol(Inner, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 3, 25)) - } - } - - static M(){ ->M : Symbol(Inner.M, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 13, 9)) - - return class { - m() { ->m : Symbol((Anonymous class).m, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 16, 26)) - - new TestWithErrors().#prop // Err ->new TestWithErrors().#prop : Symbol(TestWithErrors.#prop, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 0, 22)) ->TestWithErrors : Symbol(TestWithErrors, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 0, 0)) - - new Inner().#foo; // OK ->new Inner().#foo : Symbol(Inner.#foo, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 3, 39)) ->Inner : Symbol(Inner, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 3, 25)) - } - } - } - } -} - -class TestNoErrors { ->TestNoErrors : Symbol(TestNoErrors, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 24, 1)) - - #prop = 0 ->#prop : Symbol(TestNoErrors.#prop, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 26, 20)) - - dd = new TestNoErrors().#prop; // OK ->dd : Symbol(TestNoErrors.dd, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 27, 13)) ->new TestNoErrors().#prop : Symbol(TestNoErrors.#prop, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 26, 20)) ->TestNoErrors : Symbol(TestNoErrors, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 24, 1)) - - ["X_ z_ zz"] = class Inner { ->["X_ z_ zz"] : Symbol(TestNoErrors["X_ z_ zz"], Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 28, 34)) ->"X_ z_ zz" : Symbol(TestNoErrors["X_ z_ zz"], Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 28, 34)) ->Inner : Symbol(Inner, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 29, 18)) - - #foo = 10 ->#foo : Symbol(Inner.#foo, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 29, 32)) - - m() { ->m : Symbol(Inner.m, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 30, 18)) - - new TestNoErrors().#prop // Ok ->new TestNoErrors().#prop : Symbol(TestNoErrors.#prop, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 26, 20)) ->TestNoErrors : Symbol(TestNoErrors, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 24, 1)) - } - C = class InnerInner { ->C : Symbol(Inner.C, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 33, 9)) ->InnerInner : Symbol(InnerInner, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 34, 11)) - - m() { ->m : Symbol(InnerInner.m, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 34, 30)) - - new TestNoErrors().#prop // Ok ->new TestNoErrors().#prop : Symbol(TestNoErrors.#prop, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 26, 20)) ->TestNoErrors : Symbol(TestNoErrors, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 24, 1)) - - new Inner().#foo; // Ok ->new Inner().#foo : Symbol(Inner.#foo, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 29, 32)) ->Inner : Symbol(Inner, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 29, 18)) - } - } - - static M(){ ->M : Symbol(Inner.M, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 39, 9)) - - return class { - m() { ->m : Symbol((Anonymous class).m, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 42, 26)) - - new TestNoErrors().#prop // OK ->new TestNoErrors().#prop : Symbol(TestNoErrors.#prop, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 26, 20)) ->TestNoErrors : Symbol(TestNoErrors, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 24, 1)) - - new Inner().#foo; // OK ->new Inner().#foo : Symbol(Inner.#foo, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 29, 32)) ->Inner : Symbol(Inner, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 29, 18)) - } - } - } - } - } diff --git a/tests/baselines/reference/privateNameErrorsOnNotUseDefineForClassFieldsInEsNext(target=es2020).types b/tests/baselines/reference/privateNameErrorsOnNotUseDefineForClassFieldsInEsNext(target=es2020).types deleted file mode 100644 index 274a774c65e80..0000000000000 --- a/tests/baselines/reference/privateNameErrorsOnNotUseDefineForClassFieldsInEsNext(target=es2020).types +++ /dev/null @@ -1,150 +0,0 @@ -=== tests/cases/conformance/classes/members/privateNames/privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts === -class TestWithErrors { ->TestWithErrors : TestWithErrors - - #prop = 0 ->#prop : number ->0 : 0 - - static dd = new TestWithErrors().#prop; // Err ->dd : number ->new TestWithErrors().#prop : number ->new TestWithErrors() : TestWithErrors ->TestWithErrors : typeof TestWithErrors - - static ["X_ z_ zz"] = class Inner { ->["X_ z_ zz"] : typeof Inner ->"X_ z_ zz" : "X_ z_ zz" ->class Inner { #foo = 10 m() { new TestWithErrors().#prop // Err } static C = class InnerInner { m() { new TestWithErrors().#prop // Err new Inner().#foo; // Err } } static M(){ return class { m() { new TestWithErrors().#prop // Err new Inner().#foo; // OK } } } } : typeof Inner ->Inner : typeof Inner - - #foo = 10 ->#foo : number ->10 : 10 - - m() { ->m : () => void - - new TestWithErrors().#prop // Err ->new TestWithErrors().#prop : number ->new TestWithErrors() : TestWithErrors ->TestWithErrors : typeof TestWithErrors - } - static C = class InnerInner { ->C : typeof InnerInner ->class InnerInner { m() { new TestWithErrors().#prop // Err new Inner().#foo; // Err } } : typeof InnerInner ->InnerInner : typeof InnerInner - - m() { ->m : () => void - - new TestWithErrors().#prop // Err ->new TestWithErrors().#prop : number ->new TestWithErrors() : TestWithErrors ->TestWithErrors : typeof TestWithErrors - - new Inner().#foo; // Err ->new Inner().#foo : number ->new Inner() : Inner ->Inner : typeof Inner - } - } - - static M(){ ->M : () => typeof (Anonymous class) - - return class { ->class { m() { new TestWithErrors().#prop // Err new Inner().#foo; // OK } } : typeof (Anonymous class) - - m() { ->m : () => void - - new TestWithErrors().#prop // Err ->new TestWithErrors().#prop : number ->new TestWithErrors() : TestWithErrors ->TestWithErrors : typeof TestWithErrors - - new Inner().#foo; // OK ->new Inner().#foo : number ->new Inner() : Inner ->Inner : typeof Inner - } - } - } - } -} - -class TestNoErrors { ->TestNoErrors : TestNoErrors - - #prop = 0 ->#prop : number ->0 : 0 - - dd = new TestNoErrors().#prop; // OK ->dd : number ->new TestNoErrors().#prop : number ->new TestNoErrors() : TestNoErrors ->TestNoErrors : typeof TestNoErrors - - ["X_ z_ zz"] = class Inner { ->["X_ z_ zz"] : typeof Inner ->"X_ z_ zz" : "X_ z_ zz" ->class Inner { #foo = 10 m() { new TestNoErrors().#prop // Ok } C = class InnerInner { m() { new TestNoErrors().#prop // Ok new Inner().#foo; // Ok } } static M(){ return class { m() { new TestNoErrors().#prop // OK new Inner().#foo; // OK } } } } : typeof Inner ->Inner : typeof Inner - - #foo = 10 ->#foo : number ->10 : 10 - - m() { ->m : () => void - - new TestNoErrors().#prop // Ok ->new TestNoErrors().#prop : number ->new TestNoErrors() : TestNoErrors ->TestNoErrors : typeof TestNoErrors - } - C = class InnerInner { ->C : typeof InnerInner ->class InnerInner { m() { new TestNoErrors().#prop // Ok new Inner().#foo; // Ok } } : typeof InnerInner ->InnerInner : typeof InnerInner - - m() { ->m : () => void - - new TestNoErrors().#prop // Ok ->new TestNoErrors().#prop : number ->new TestNoErrors() : TestNoErrors ->TestNoErrors : typeof TestNoErrors - - new Inner().#foo; // Ok ->new Inner().#foo : number ->new Inner() : Inner ->Inner : typeof Inner - } - } - - static M(){ ->M : () => typeof (Anonymous class) - - return class { ->class { m() { new TestNoErrors().#prop // OK new Inner().#foo; // OK } } : typeof (Anonymous class) - - m() { ->m : () => void - - new TestNoErrors().#prop // OK ->new TestNoErrors().#prop : number ->new TestNoErrors() : TestNoErrors ->TestNoErrors : typeof TestNoErrors - - new Inner().#foo; // OK ->new Inner().#foo : number ->new Inner() : Inner ->Inner : typeof Inner - } - } - } - } - } diff --git a/tests/baselines/reference/privateNameErrorsOnNotUseDefineForClassFieldsInEsNext(target=esnext).errors.txt b/tests/baselines/reference/privateNameErrorsOnNotUseDefineForClassFieldsInEsNext(target=esnext).errors.txt deleted file mode 100644 index 030a6c5883b44..0000000000000 --- a/tests/baselines/reference/privateNameErrorsOnNotUseDefineForClassFieldsInEsNext(target=esnext).errors.txt +++ /dev/null @@ -1,74 +0,0 @@ -tests/cases/conformance/classes/members/privateNames/privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts(3,17): error TS2810: Property '#prop' may not be used in a static property's initializer in the same class when 'target' is 'esnext' and 'useDefineForClassFields' is 'false'. -tests/cases/conformance/classes/members/privateNames/privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts(7,13): error TS2810: Property '#prop' may not be used in a static property's initializer in the same class when 'target' is 'esnext' and 'useDefineForClassFields' is 'false'. -tests/cases/conformance/classes/members/privateNames/privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts(11,17): error TS2810: Property '#prop' may not be used in a static property's initializer in the same class when 'target' is 'esnext' and 'useDefineForClassFields' is 'false'. -tests/cases/conformance/classes/members/privateNames/privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts(12,17): error TS2810: Property '#foo' may not be used in a static property's initializer in the same class when 'target' is 'esnext' and 'useDefineForClassFields' is 'false'. -tests/cases/conformance/classes/members/privateNames/privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts(19,21): error TS2810: Property '#prop' may not be used in a static property's initializer in the same class when 'target' is 'esnext' and 'useDefineForClassFields' is 'false'. - - -==== tests/cases/conformance/classes/members/privateNames/privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts (5 errors) ==== - class TestWithErrors { - #prop = 0 - static dd = new TestWithErrors().#prop; // Err - ~~~~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2810: Property '#prop' may not be used in a static property's initializer in the same class when 'target' is 'esnext' and 'useDefineForClassFields' is 'false'. -!!! related TS2811 tests/cases/conformance/classes/members/privateNames/privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts:3:12: Initializer for property 'dd' - static ["X_ z_ zz"] = class Inner { - #foo = 10 - m() { - new TestWithErrors().#prop // Err - ~~~~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2810: Property '#prop' may not be used in a static property's initializer in the same class when 'target' is 'esnext' and 'useDefineForClassFields' is 'false'. -!!! related TS2811 tests/cases/conformance/classes/members/privateNames/privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts:4:12: Initializer for property 'X_ z_ zz' - } - static C = class InnerInner { - m() { - new TestWithErrors().#prop // Err - ~~~~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2810: Property '#prop' may not be used in a static property's initializer in the same class when 'target' is 'esnext' and 'useDefineForClassFields' is 'false'. -!!! related TS2811 tests/cases/conformance/classes/members/privateNames/privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts:4:12: Initializer for property 'X_ z_ zz' - new Inner().#foo; // Err - ~~~~~~~~~~~~~~~~ -!!! error TS2810: Property '#foo' may not be used in a static property's initializer in the same class when 'target' is 'esnext' and 'useDefineForClassFields' is 'false'. -!!! related TS2811 tests/cases/conformance/classes/members/privateNames/privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts:9:16: Initializer for property 'C' - } - } - - static M(){ - return class { - m() { - new TestWithErrors().#prop // Err - ~~~~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2810: Property '#prop' may not be used in a static property's initializer in the same class when 'target' is 'esnext' and 'useDefineForClassFields' is 'false'. -!!! related TS2811 tests/cases/conformance/classes/members/privateNames/privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts:4:12: Initializer for property 'X_ z_ zz' - new Inner().#foo; // OK - } - } - } - } - } - - class TestNoErrors { - #prop = 0 - dd = new TestNoErrors().#prop; // OK - ["X_ z_ zz"] = class Inner { - #foo = 10 - m() { - new TestNoErrors().#prop // Ok - } - C = class InnerInner { - m() { - new TestNoErrors().#prop // Ok - new Inner().#foo; // Ok - } - } - - static M(){ - return class { - m() { - new TestNoErrors().#prop // OK - new Inner().#foo; // OK - } - } - } - } - } \ No newline at end of file diff --git a/tests/baselines/reference/privateNameErrorsOnNotUseDefineForClassFieldsInEsNext(target=esnext).symbols b/tests/baselines/reference/privateNameErrorsOnNotUseDefineForClassFieldsInEsNext(target=esnext).symbols deleted file mode 100644 index 58c405de0ac8a..0000000000000 --- a/tests/baselines/reference/privateNameErrorsOnNotUseDefineForClassFieldsInEsNext(target=esnext).symbols +++ /dev/null @@ -1,126 +0,0 @@ -=== tests/cases/conformance/classes/members/privateNames/privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts === -class TestWithErrors { ->TestWithErrors : Symbol(TestWithErrors, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 0, 0)) - - #prop = 0 ->#prop : Symbol(TestWithErrors.#prop, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 0, 22)) - - static dd = new TestWithErrors().#prop; // Err ->dd : Symbol(TestWithErrors.dd, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 1, 13)) ->new TestWithErrors().#prop : Symbol(TestWithErrors.#prop, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 0, 22)) ->TestWithErrors : Symbol(TestWithErrors, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 0, 0)) - - static ["X_ z_ zz"] = class Inner { ->["X_ z_ zz"] : Symbol(TestWithErrors["X_ z_ zz"], Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 2, 43)) ->"X_ z_ zz" : Symbol(TestWithErrors["X_ z_ zz"], Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 2, 43)) ->Inner : Symbol(Inner, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 3, 25)) - - #foo = 10 ->#foo : Symbol(Inner.#foo, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 3, 39)) - - m() { ->m : Symbol(Inner.m, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 4, 18)) - - new TestWithErrors().#prop // Err ->new TestWithErrors().#prop : Symbol(TestWithErrors.#prop, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 0, 22)) ->TestWithErrors : Symbol(TestWithErrors, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 0, 0)) - } - static C = class InnerInner { ->C : Symbol(Inner.C, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 7, 9)) ->InnerInner : Symbol(InnerInner, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 8, 18)) - - m() { ->m : Symbol(InnerInner.m, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 8, 37)) - - new TestWithErrors().#prop // Err ->new TestWithErrors().#prop : Symbol(TestWithErrors.#prop, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 0, 22)) ->TestWithErrors : Symbol(TestWithErrors, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 0, 0)) - - new Inner().#foo; // Err ->new Inner().#foo : Symbol(Inner.#foo, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 3, 39)) ->Inner : Symbol(Inner, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 3, 25)) - } - } - - static M(){ ->M : Symbol(Inner.M, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 13, 9)) - - return class { - m() { ->m : Symbol((Anonymous class).m, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 16, 26)) - - new TestWithErrors().#prop // Err ->new TestWithErrors().#prop : Symbol(TestWithErrors.#prop, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 0, 22)) ->TestWithErrors : Symbol(TestWithErrors, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 0, 0)) - - new Inner().#foo; // OK ->new Inner().#foo : Symbol(Inner.#foo, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 3, 39)) ->Inner : Symbol(Inner, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 3, 25)) - } - } - } - } -} - -class TestNoErrors { ->TestNoErrors : Symbol(TestNoErrors, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 24, 1)) - - #prop = 0 ->#prop : Symbol(TestNoErrors.#prop, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 26, 20)) - - dd = new TestNoErrors().#prop; // OK ->dd : Symbol(TestNoErrors.dd, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 27, 13)) ->new TestNoErrors().#prop : Symbol(TestNoErrors.#prop, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 26, 20)) ->TestNoErrors : Symbol(TestNoErrors, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 24, 1)) - - ["X_ z_ zz"] = class Inner { ->["X_ z_ zz"] : Symbol(TestNoErrors["X_ z_ zz"], Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 28, 34)) ->"X_ z_ zz" : Symbol(TestNoErrors["X_ z_ zz"], Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 28, 34)) ->Inner : Symbol(Inner, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 29, 18)) - - #foo = 10 ->#foo : Symbol(Inner.#foo, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 29, 32)) - - m() { ->m : Symbol(Inner.m, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 30, 18)) - - new TestNoErrors().#prop // Ok ->new TestNoErrors().#prop : Symbol(TestNoErrors.#prop, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 26, 20)) ->TestNoErrors : Symbol(TestNoErrors, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 24, 1)) - } - C = class InnerInner { ->C : Symbol(Inner.C, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 33, 9)) ->InnerInner : Symbol(InnerInner, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 34, 11)) - - m() { ->m : Symbol(InnerInner.m, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 34, 30)) - - new TestNoErrors().#prop // Ok ->new TestNoErrors().#prop : Symbol(TestNoErrors.#prop, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 26, 20)) ->TestNoErrors : Symbol(TestNoErrors, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 24, 1)) - - new Inner().#foo; // Ok ->new Inner().#foo : Symbol(Inner.#foo, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 29, 32)) ->Inner : Symbol(Inner, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 29, 18)) - } - } - - static M(){ ->M : Symbol(Inner.M, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 39, 9)) - - return class { - m() { ->m : Symbol((Anonymous class).m, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 42, 26)) - - new TestNoErrors().#prop // OK ->new TestNoErrors().#prop : Symbol(TestNoErrors.#prop, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 26, 20)) ->TestNoErrors : Symbol(TestNoErrors, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 24, 1)) - - new Inner().#foo; // OK ->new Inner().#foo : Symbol(Inner.#foo, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 29, 32)) ->Inner : Symbol(Inner, Decl(privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts, 29, 18)) - } - } - } - } - } diff --git a/tests/baselines/reference/privateNameErrorsOnNotUseDefineForClassFieldsInEsNext(target=esnext).types b/tests/baselines/reference/privateNameErrorsOnNotUseDefineForClassFieldsInEsNext(target=esnext).types deleted file mode 100644 index 274a774c65e80..0000000000000 --- a/tests/baselines/reference/privateNameErrorsOnNotUseDefineForClassFieldsInEsNext(target=esnext).types +++ /dev/null @@ -1,150 +0,0 @@ -=== tests/cases/conformance/classes/members/privateNames/privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts === -class TestWithErrors { ->TestWithErrors : TestWithErrors - - #prop = 0 ->#prop : number ->0 : 0 - - static dd = new TestWithErrors().#prop; // Err ->dd : number ->new TestWithErrors().#prop : number ->new TestWithErrors() : TestWithErrors ->TestWithErrors : typeof TestWithErrors - - static ["X_ z_ zz"] = class Inner { ->["X_ z_ zz"] : typeof Inner ->"X_ z_ zz" : "X_ z_ zz" ->class Inner { #foo = 10 m() { new TestWithErrors().#prop // Err } static C = class InnerInner { m() { new TestWithErrors().#prop // Err new Inner().#foo; // Err } } static M(){ return class { m() { new TestWithErrors().#prop // Err new Inner().#foo; // OK } } } } : typeof Inner ->Inner : typeof Inner - - #foo = 10 ->#foo : number ->10 : 10 - - m() { ->m : () => void - - new TestWithErrors().#prop // Err ->new TestWithErrors().#prop : number ->new TestWithErrors() : TestWithErrors ->TestWithErrors : typeof TestWithErrors - } - static C = class InnerInner { ->C : typeof InnerInner ->class InnerInner { m() { new TestWithErrors().#prop // Err new Inner().#foo; // Err } } : typeof InnerInner ->InnerInner : typeof InnerInner - - m() { ->m : () => void - - new TestWithErrors().#prop // Err ->new TestWithErrors().#prop : number ->new TestWithErrors() : TestWithErrors ->TestWithErrors : typeof TestWithErrors - - new Inner().#foo; // Err ->new Inner().#foo : number ->new Inner() : Inner ->Inner : typeof Inner - } - } - - static M(){ ->M : () => typeof (Anonymous class) - - return class { ->class { m() { new TestWithErrors().#prop // Err new Inner().#foo; // OK } } : typeof (Anonymous class) - - m() { ->m : () => void - - new TestWithErrors().#prop // Err ->new TestWithErrors().#prop : number ->new TestWithErrors() : TestWithErrors ->TestWithErrors : typeof TestWithErrors - - new Inner().#foo; // OK ->new Inner().#foo : number ->new Inner() : Inner ->Inner : typeof Inner - } - } - } - } -} - -class TestNoErrors { ->TestNoErrors : TestNoErrors - - #prop = 0 ->#prop : number ->0 : 0 - - dd = new TestNoErrors().#prop; // OK ->dd : number ->new TestNoErrors().#prop : number ->new TestNoErrors() : TestNoErrors ->TestNoErrors : typeof TestNoErrors - - ["X_ z_ zz"] = class Inner { ->["X_ z_ zz"] : typeof Inner ->"X_ z_ zz" : "X_ z_ zz" ->class Inner { #foo = 10 m() { new TestNoErrors().#prop // Ok } C = class InnerInner { m() { new TestNoErrors().#prop // Ok new Inner().#foo; // Ok } } static M(){ return class { m() { new TestNoErrors().#prop // OK new Inner().#foo; // OK } } } } : typeof Inner ->Inner : typeof Inner - - #foo = 10 ->#foo : number ->10 : 10 - - m() { ->m : () => void - - new TestNoErrors().#prop // Ok ->new TestNoErrors().#prop : number ->new TestNoErrors() : TestNoErrors ->TestNoErrors : typeof TestNoErrors - } - C = class InnerInner { ->C : typeof InnerInner ->class InnerInner { m() { new TestNoErrors().#prop // Ok new Inner().#foo; // Ok } } : typeof InnerInner ->InnerInner : typeof InnerInner - - m() { ->m : () => void - - new TestNoErrors().#prop // Ok ->new TestNoErrors().#prop : number ->new TestNoErrors() : TestNoErrors ->TestNoErrors : typeof TestNoErrors - - new Inner().#foo; // Ok ->new Inner().#foo : number ->new Inner() : Inner ->Inner : typeof Inner - } - } - - static M(){ ->M : () => typeof (Anonymous class) - - return class { ->class { m() { new TestNoErrors().#prop // OK new Inner().#foo; // OK } } : typeof (Anonymous class) - - m() { ->m : () => void - - new TestNoErrors().#prop // OK ->new TestNoErrors().#prop : number ->new TestNoErrors() : TestNoErrors ->TestNoErrors : typeof TestNoErrors - - new Inner().#foo; // OK ->new Inner().#foo : number ->new Inner() : Inner ->Inner : typeof Inner - } - } - } - } - } diff --git a/tests/baselines/reference/privateNameFieldDestructuredBinding(target=es2022).js b/tests/baselines/reference/privateNameFieldDestructuredBinding(target=es2022).js new file mode 100644 index 0000000000000..1ce8eb6433ea7 --- /dev/null +++ b/tests/baselines/reference/privateNameFieldDestructuredBinding(target=es2022).js @@ -0,0 +1,50 @@ +//// [privateNameFieldDestructuredBinding.ts] +class A { + #field = 1; + otherObject = new A(); + testObject() { + return { x: 10, y: 6 }; + } + testArray() { + return [10, 11]; + } + constructor() { + let y: number; + ({ x: this.#field, y } = this.testObject()); + ([this.#field, y] = this.testArray()); + ({ a: this.#field, b: [this.#field] } = { a: 1, b: [2] }); + [this.#field, [this.#field]] = [1, [2]]; + ({ a: this.#field = 1, b: [this.#field = 1] } = { b: [] }); + [this.#field = 2] = []; + [this.otherObject.#field = 2] = []; + } + static test(_a: A) { + [_a.#field] = [2]; + } +} + + +//// [privateNameFieldDestructuredBinding.js] +class A { + #field = 1; + otherObject = new A(); + testObject() { + return { x: 10, y: 6 }; + } + testArray() { + return [10, 11]; + } + constructor() { + let y; + ({ x: this.#field, y } = this.testObject()); + ([this.#field, y] = this.testArray()); + ({ a: this.#field, b: [this.#field] } = { a: 1, b: [2] }); + [this.#field, [this.#field]] = [1, [2]]; + ({ a: this.#field = 1, b: [this.#field = 1] } = { b: [] }); + [this.#field = 2] = []; + [this.otherObject.#field = 2] = []; + } + static test(_a) { + [_a.#field] = [2]; + } +} diff --git a/tests/baselines/reference/privateNameFieldDestructuredBinding(target=es2022).symbols b/tests/baselines/reference/privateNameFieldDestructuredBinding(target=es2022).symbols new file mode 100644 index 0000000000000..670e8b8c7d018 --- /dev/null +++ b/tests/baselines/reference/privateNameFieldDestructuredBinding(target=es2022).symbols @@ -0,0 +1,90 @@ +=== tests/cases/conformance/classes/members/privateNames/privateNameFieldDestructuredBinding.ts === +class A { +>A : Symbol(A, Decl(privateNameFieldDestructuredBinding.ts, 0, 0)) + + #field = 1; +>#field : Symbol(A.#field, Decl(privateNameFieldDestructuredBinding.ts, 0, 9)) + + otherObject = new A(); +>otherObject : Symbol(A.otherObject, Decl(privateNameFieldDestructuredBinding.ts, 1, 15)) +>A : Symbol(A, Decl(privateNameFieldDestructuredBinding.ts, 0, 0)) + + testObject() { +>testObject : Symbol(A.testObject, Decl(privateNameFieldDestructuredBinding.ts, 2, 26)) + + return { x: 10, y: 6 }; +>x : Symbol(x, Decl(privateNameFieldDestructuredBinding.ts, 4, 16)) +>y : Symbol(y, Decl(privateNameFieldDestructuredBinding.ts, 4, 23)) + } + testArray() { +>testArray : Symbol(A.testArray, Decl(privateNameFieldDestructuredBinding.ts, 5, 5)) + + return [10, 11]; + } + constructor() { + let y: number; +>y : Symbol(y, Decl(privateNameFieldDestructuredBinding.ts, 10, 11)) + + ({ x: this.#field, y } = this.testObject()); +>x : Symbol(x, Decl(privateNameFieldDestructuredBinding.ts, 11, 10)) +>this.#field : Symbol(A.#field, Decl(privateNameFieldDestructuredBinding.ts, 0, 9)) +>this : Symbol(A, Decl(privateNameFieldDestructuredBinding.ts, 0, 0)) +>y : Symbol(y, Decl(privateNameFieldDestructuredBinding.ts, 11, 26)) +>this.testObject : Symbol(A.testObject, Decl(privateNameFieldDestructuredBinding.ts, 2, 26)) +>this : Symbol(A, Decl(privateNameFieldDestructuredBinding.ts, 0, 0)) +>testObject : Symbol(A.testObject, Decl(privateNameFieldDestructuredBinding.ts, 2, 26)) + + ([this.#field, y] = this.testArray()); +>this.#field : Symbol(A.#field, Decl(privateNameFieldDestructuredBinding.ts, 0, 9)) +>this : Symbol(A, Decl(privateNameFieldDestructuredBinding.ts, 0, 0)) +>y : Symbol(y, Decl(privateNameFieldDestructuredBinding.ts, 10, 11)) +>this.testArray : Symbol(A.testArray, Decl(privateNameFieldDestructuredBinding.ts, 5, 5)) +>this : Symbol(A, Decl(privateNameFieldDestructuredBinding.ts, 0, 0)) +>testArray : Symbol(A.testArray, Decl(privateNameFieldDestructuredBinding.ts, 5, 5)) + + ({ a: this.#field, b: [this.#field] } = { a: 1, b: [2] }); +>a : Symbol(a, Decl(privateNameFieldDestructuredBinding.ts, 13, 10)) +>this.#field : Symbol(A.#field, Decl(privateNameFieldDestructuredBinding.ts, 0, 9)) +>this : Symbol(A, Decl(privateNameFieldDestructuredBinding.ts, 0, 0)) +>b : Symbol(b, Decl(privateNameFieldDestructuredBinding.ts, 13, 26)) +>this.#field : Symbol(A.#field, Decl(privateNameFieldDestructuredBinding.ts, 0, 9)) +>this : Symbol(A, Decl(privateNameFieldDestructuredBinding.ts, 0, 0)) +>a : Symbol(a, Decl(privateNameFieldDestructuredBinding.ts, 13, 49)) +>b : Symbol(b, Decl(privateNameFieldDestructuredBinding.ts, 13, 55)) + + [this.#field, [this.#field]] = [1, [2]]; +>this.#field : Symbol(A.#field, Decl(privateNameFieldDestructuredBinding.ts, 0, 9)) +>this : Symbol(A, Decl(privateNameFieldDestructuredBinding.ts, 0, 0)) +>this.#field : Symbol(A.#field, Decl(privateNameFieldDestructuredBinding.ts, 0, 9)) +>this : Symbol(A, Decl(privateNameFieldDestructuredBinding.ts, 0, 0)) + + ({ a: this.#field = 1, b: [this.#field = 1] } = { b: [] }); +>a : Symbol(a, Decl(privateNameFieldDestructuredBinding.ts, 15, 10)) +>this.#field : Symbol(A.#field, Decl(privateNameFieldDestructuredBinding.ts, 0, 9)) +>this : Symbol(A, Decl(privateNameFieldDestructuredBinding.ts, 0, 0)) +>b : Symbol(b, Decl(privateNameFieldDestructuredBinding.ts, 15, 30)) +>this.#field : Symbol(A.#field, Decl(privateNameFieldDestructuredBinding.ts, 0, 9)) +>this : Symbol(A, Decl(privateNameFieldDestructuredBinding.ts, 0, 0)) +>b : Symbol(b, Decl(privateNameFieldDestructuredBinding.ts, 15, 57)) + + [this.#field = 2] = []; +>this.#field : Symbol(A.#field, Decl(privateNameFieldDestructuredBinding.ts, 0, 9)) +>this : Symbol(A, Decl(privateNameFieldDestructuredBinding.ts, 0, 0)) + + [this.otherObject.#field = 2] = []; +>this.otherObject.#field : Symbol(A.#field, Decl(privateNameFieldDestructuredBinding.ts, 0, 9)) +>this.otherObject : Symbol(A.otherObject, Decl(privateNameFieldDestructuredBinding.ts, 1, 15)) +>this : Symbol(A, Decl(privateNameFieldDestructuredBinding.ts, 0, 0)) +>otherObject : Symbol(A.otherObject, Decl(privateNameFieldDestructuredBinding.ts, 1, 15)) + } + static test(_a: A) { +>test : Symbol(A.test, Decl(privateNameFieldDestructuredBinding.ts, 18, 5)) +>_a : Symbol(_a, Decl(privateNameFieldDestructuredBinding.ts, 19, 16)) +>A : Symbol(A, Decl(privateNameFieldDestructuredBinding.ts, 0, 0)) + + [_a.#field] = [2]; +>_a.#field : Symbol(A.#field, Decl(privateNameFieldDestructuredBinding.ts, 0, 9)) +>_a : Symbol(_a, Decl(privateNameFieldDestructuredBinding.ts, 19, 16)) + } +} + diff --git a/tests/baselines/reference/privateNameFieldDestructuredBinding(target=es2022).types b/tests/baselines/reference/privateNameFieldDestructuredBinding(target=es2022).types new file mode 100644 index 0000000000000..d361e73d3829d --- /dev/null +++ b/tests/baselines/reference/privateNameFieldDestructuredBinding(target=es2022).types @@ -0,0 +1,144 @@ +=== tests/cases/conformance/classes/members/privateNames/privateNameFieldDestructuredBinding.ts === +class A { +>A : A + + #field = 1; +>#field : number +>1 : 1 + + otherObject = new A(); +>otherObject : A +>new A() : A +>A : typeof A + + testObject() { +>testObject : () => { x: number; y: number; } + + return { x: 10, y: 6 }; +>{ x: 10, y: 6 } : { x: number; y: number; } +>x : number +>10 : 10 +>y : number +>6 : 6 + } + testArray() { +>testArray : () => number[] + + return [10, 11]; +>[10, 11] : number[] +>10 : 10 +>11 : 11 + } + constructor() { + let y: number; +>y : number + + ({ x: this.#field, y } = this.testObject()); +>({ x: this.#field, y } = this.testObject()) : { x: number; y: number; } +>{ x: this.#field, y } = this.testObject() : { x: number; y: number; } +>{ x: this.#field, y } : { x: number; y: number; } +>x : number +>this.#field : number +>this : this +>y : number +>this.testObject() : { x: number; y: number; } +>this.testObject : () => { x: number; y: number; } +>this : this +>testObject : () => { x: number; y: number; } + + ([this.#field, y] = this.testArray()); +>([this.#field, y] = this.testArray()) : number[] +>[this.#field, y] = this.testArray() : number[] +>[this.#field, y] : [number, number] +>this.#field : number +>this : this +>y : number +>this.testArray() : number[] +>this.testArray : () => number[] +>this : this +>testArray : () => number[] + + ({ a: this.#field, b: [this.#field] } = { a: 1, b: [2] }); +>({ a: this.#field, b: [this.#field] } = { a: 1, b: [2] }) : { a: number; b: [number]; } +>{ a: this.#field, b: [this.#field] } = { a: 1, b: [2] } : { a: number; b: [number]; } +>{ a: this.#field, b: [this.#field] } : { a: number; b: [number]; } +>a : number +>this.#field : number +>this : this +>b : [number] +>[this.#field] : [number] +>this.#field : number +>this : this +>{ a: 1, b: [2] } : { a: number; b: [number]; } +>a : number +>1 : 1 +>b : [number] +>[2] : [number] +>2 : 2 + + [this.#field, [this.#field]] = [1, [2]]; +>[this.#field, [this.#field]] = [1, [2]] : [number, [number]] +>[this.#field, [this.#field]] : [number, [number]] +>this.#field : number +>this : this +>[this.#field] : [number] +>this.#field : number +>this : this +>[1, [2]] : [number, [number]] +>1 : 1 +>[2] : [number] +>2 : 2 + + ({ a: this.#field = 1, b: [this.#field = 1] } = { b: [] }); +>({ a: this.#field = 1, b: [this.#field = 1] } = { b: [] }) : { b: []; a?: number; } +>{ a: this.#field = 1, b: [this.#field = 1] } = { b: [] } : { b: []; a?: number; } +>{ a: this.#field = 1, b: [this.#field = 1] } : { a?: number; b: [number]; } +>a : number +>this.#field = 1 : 1 +>this.#field : number +>this : this +>1 : 1 +>b : [number] +>[this.#field = 1] : [number] +>this.#field = 1 : 1 +>this.#field : number +>this : this +>1 : 1 +>{ b: [] } : { b: []; a?: number; } +>b : [] +>[] : [] + + [this.#field = 2] = []; +>[this.#field = 2] = [] : [] +>[this.#field = 2] : [number] +>this.#field = 2 : 2 +>this.#field : number +>this : this +>2 : 2 +>[] : [] + + [this.otherObject.#field = 2] = []; +>[this.otherObject.#field = 2] = [] : [] +>[this.otherObject.#field = 2] : [number] +>this.otherObject.#field = 2 : 2 +>this.otherObject.#field : number +>this.otherObject : A +>this : this +>otherObject : A +>2 : 2 +>[] : [] + } + static test(_a: A) { +>test : (_a: A) => void +>_a : A + + [_a.#field] = [2]; +>[_a.#field] = [2] : [number] +>[_a.#field] : [number] +>_a.#field : number +>_a : A +>[2] : [number] +>2 : 2 + } +} + diff --git a/tests/baselines/reference/privateNameFieldsESNext.errors.txt b/tests/baselines/reference/privateNameFieldsESNext(target=es2022).errors.txt similarity index 53% rename from tests/baselines/reference/privateNameFieldsESNext.errors.txt rename to tests/baselines/reference/privateNameFieldsESNext(target=es2022).errors.txt index 10288bc30085d..28f283e66a817 100644 --- a/tests/baselines/reference/privateNameFieldsESNext.errors.txt +++ b/tests/baselines/reference/privateNameFieldsESNext(target=es2022).errors.txt @@ -1,8 +1,7 @@ tests/cases/conformance/classes/members/privateNames/privateNameFieldsESNext.ts(8,9): error TS2322: Type 'string' is not assignable to type 'number'. -tests/cases/conformance/classes/members/privateNames/privateNameFieldsESNext.ts(11,17): error TS2805: Static fields with private names can't have initializers when the '--useDefineForClassFields' flag is not specified with a '--target' of 'esnext'. Consider adding the '--useDefineForClassFields' flag. -==== tests/cases/conformance/classes/members/privateNames/privateNameFieldsESNext.ts (2 errors) ==== +==== tests/cases/conformance/classes/members/privateNames/privateNameFieldsESNext.ts (1 errors) ==== class C { a = 123; #a = 10; @@ -16,8 +15,6 @@ tests/cases/conformance/classes/members/privateNames/privateNameFieldsESNext.ts( console.log(this.#b); } static #m = "test"; - ~~~~~~ -!!! error TS2805: Static fields with private names can't have initializers when the '--useDefineForClassFields' flag is not specified with a '--target' of 'esnext'. Consider adding the '--useDefineForClassFields' flag. static #x; static test() { console.log(this.#m); diff --git a/tests/baselines/reference/privateNameFieldsESNext.js b/tests/baselines/reference/privateNameFieldsESNext(target=es2022).js similarity index 93% rename from tests/baselines/reference/privateNameFieldsESNext.js rename to tests/baselines/reference/privateNameFieldsESNext(target=es2022).js index acc37caa3cc8f..99abdeb482a20 100644 --- a/tests/baselines/reference/privateNameFieldsESNext.js +++ b/tests/baselines/reference/privateNameFieldsESNext(target=es2022).js @@ -35,7 +35,7 @@ class C { this.#a = "hello"; console.log(this.#b); } - static #m; + static #m = "test"; static #x; static test() { console.log(this.#m); @@ -43,4 +43,3 @@ class C { } #something; } -C.#m = "test"; diff --git a/tests/baselines/reference/privateNameFieldsESNext.symbols b/tests/baselines/reference/privateNameFieldsESNext(target=es2022).symbols similarity index 100% rename from tests/baselines/reference/privateNameFieldsESNext.symbols rename to tests/baselines/reference/privateNameFieldsESNext(target=es2022).symbols diff --git a/tests/baselines/reference/privateNameFieldsESNext.types b/tests/baselines/reference/privateNameFieldsESNext(target=es2022).types similarity index 100% rename from tests/baselines/reference/privateNameFieldsESNext.types rename to tests/baselines/reference/privateNameFieldsESNext(target=es2022).types diff --git a/tests/baselines/reference/privateNameFieldsESNext(target=esnext).errors.txt b/tests/baselines/reference/privateNameFieldsESNext(target=esnext).errors.txt new file mode 100644 index 0000000000000..28f283e66a817 --- /dev/null +++ b/tests/baselines/reference/privateNameFieldsESNext(target=esnext).errors.txt @@ -0,0 +1,26 @@ +tests/cases/conformance/classes/members/privateNames/privateNameFieldsESNext.ts(8,9): error TS2322: Type 'string' is not assignable to type 'number'. + + +==== tests/cases/conformance/classes/members/privateNames/privateNameFieldsESNext.ts (1 errors) ==== + class C { + a = 123; + #a = 10; + c = "hello"; + #b; + method() { + console.log(this.#a); + this.#a = "hello"; + ~~~~~~~ +!!! error TS2322: Type 'string' is not assignable to type 'number'. + console.log(this.#b); + } + static #m = "test"; + static #x; + static test() { + console.log(this.#m); + console.log(this.#x = "test"); + } + #something = () => 1234; + } + + \ No newline at end of file diff --git a/tests/baselines/reference/privateNameFieldsESNext(target=esnext).js b/tests/baselines/reference/privateNameFieldsESNext(target=esnext).js new file mode 100644 index 0000000000000..99abdeb482a20 --- /dev/null +++ b/tests/baselines/reference/privateNameFieldsESNext(target=esnext).js @@ -0,0 +1,45 @@ +//// [privateNameFieldsESNext.ts] +class C { + a = 123; + #a = 10; + c = "hello"; + #b; + method() { + console.log(this.#a); + this.#a = "hello"; + console.log(this.#b); + } + static #m = "test"; + static #x; + static test() { + console.log(this.#m); + console.log(this.#x = "test"); + } + #something = () => 1234; +} + + + +//// [privateNameFieldsESNext.js] +class C { + constructor() { + this.a = 123; + this.#a = 10; + this.c = "hello"; + this.#something = () => 1234; + } + #a; + #b; + method() { + console.log(this.#a); + this.#a = "hello"; + console.log(this.#b); + } + static #m = "test"; + static #x; + static test() { + console.log(this.#m); + console.log(this.#x = "test"); + } + #something; +} diff --git a/tests/baselines/reference/privateNameFieldsESNext(target=esnext).symbols b/tests/baselines/reference/privateNameFieldsESNext(target=esnext).symbols new file mode 100644 index 0000000000000..5ed63d12d2fef --- /dev/null +++ b/tests/baselines/reference/privateNameFieldsESNext(target=esnext).symbols @@ -0,0 +1,65 @@ +=== tests/cases/conformance/classes/members/privateNames/privateNameFieldsESNext.ts === +class C { +>C : Symbol(C, Decl(privateNameFieldsESNext.ts, 0, 0)) + + a = 123; +>a : Symbol(C.a, Decl(privateNameFieldsESNext.ts, 0, 9)) + + #a = 10; +>#a : Symbol(C.#a, Decl(privateNameFieldsESNext.ts, 1, 12)) + + c = "hello"; +>c : Symbol(C.c, Decl(privateNameFieldsESNext.ts, 2, 12)) + + #b; +>#b : Symbol(C.#b, Decl(privateNameFieldsESNext.ts, 3, 16)) + + method() { +>method : Symbol(C.method, Decl(privateNameFieldsESNext.ts, 4, 7)) + + console.log(this.#a); +>console.log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>console : Symbol(console, Decl(lib.dom.d.ts, --, --)) +>log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>this.#a : Symbol(C.#a, Decl(privateNameFieldsESNext.ts, 1, 12)) +>this : Symbol(C, Decl(privateNameFieldsESNext.ts, 0, 0)) + + this.#a = "hello"; +>this.#a : Symbol(C.#a, Decl(privateNameFieldsESNext.ts, 1, 12)) +>this : Symbol(C, Decl(privateNameFieldsESNext.ts, 0, 0)) + + console.log(this.#b); +>console.log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>console : Symbol(console, Decl(lib.dom.d.ts, --, --)) +>log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>this.#b : Symbol(C.#b, Decl(privateNameFieldsESNext.ts, 3, 16)) +>this : Symbol(C, Decl(privateNameFieldsESNext.ts, 0, 0)) + } + static #m = "test"; +>#m : Symbol(C.#m, Decl(privateNameFieldsESNext.ts, 9, 5)) + + static #x; +>#x : Symbol(C.#x, Decl(privateNameFieldsESNext.ts, 10, 23)) + + static test() { +>test : Symbol(C.test, Decl(privateNameFieldsESNext.ts, 11, 14)) + + console.log(this.#m); +>console.log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>console : Symbol(console, Decl(lib.dom.d.ts, --, --)) +>log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>this.#m : Symbol(C.#m, Decl(privateNameFieldsESNext.ts, 9, 5)) +>this : Symbol(C, Decl(privateNameFieldsESNext.ts, 0, 0)) + + console.log(this.#x = "test"); +>console.log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>console : Symbol(console, Decl(lib.dom.d.ts, --, --)) +>log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>this.#x : Symbol(C.#x, Decl(privateNameFieldsESNext.ts, 10, 23)) +>this : Symbol(C, Decl(privateNameFieldsESNext.ts, 0, 0)) + } + #something = () => 1234; +>#something : Symbol(C.#something, Decl(privateNameFieldsESNext.ts, 15, 5)) +} + + diff --git a/tests/baselines/reference/privateNameFieldsESNext(target=esnext).types b/tests/baselines/reference/privateNameFieldsESNext(target=esnext).types new file mode 100644 index 0000000000000..8496622cbe357 --- /dev/null +++ b/tests/baselines/reference/privateNameFieldsESNext(target=esnext).types @@ -0,0 +1,79 @@ +=== tests/cases/conformance/classes/members/privateNames/privateNameFieldsESNext.ts === +class C { +>C : C + + a = 123; +>a : number +>123 : 123 + + #a = 10; +>#a : number +>10 : 10 + + c = "hello"; +>c : string +>"hello" : "hello" + + #b; +>#b : any + + method() { +>method : () => void + + console.log(this.#a); +>console.log(this.#a) : void +>console.log : (...data: any[]) => void +>console : Console +>log : (...data: any[]) => void +>this.#a : number +>this : this + + this.#a = "hello"; +>this.#a = "hello" : "hello" +>this.#a : number +>this : this +>"hello" : "hello" + + console.log(this.#b); +>console.log(this.#b) : void +>console.log : (...data: any[]) => void +>console : Console +>log : (...data: any[]) => void +>this.#b : any +>this : this + } + static #m = "test"; +>#m : string +>"test" : "test" + + static #x; +>#x : any + + static test() { +>test : () => void + + console.log(this.#m); +>console.log(this.#m) : void +>console.log : (...data: any[]) => void +>console : Console +>log : (...data: any[]) => void +>this.#m : string +>this : typeof C + + console.log(this.#x = "test"); +>console.log(this.#x = "test") : void +>console.log : (...data: any[]) => void +>console : Console +>log : (...data: any[]) => void +>this.#x = "test" : "test" +>this.#x : any +>this : typeof C +>"test" : "test" + } + #something = () => 1234; +>#something : () => number +>() => 1234 : () => number +>1234 : 1234 +} + + diff --git a/tests/baselines/reference/privateNameInInExpression.errors.txt b/tests/baselines/reference/privateNameInInExpression(target=es2022).errors.txt similarity index 86% rename from tests/baselines/reference/privateNameInInExpression.errors.txt rename to tests/baselines/reference/privateNameInInExpression(target=es2022).errors.txt index d4ba5f81e9fdc..514d2a85e84a6 100644 --- a/tests/baselines/reference/privateNameInInExpression.errors.txt +++ b/tests/baselines/reference/privateNameInInExpression(target=es2022).errors.txt @@ -1,15 +1,13 @@ tests/cases/conformance/classes/members/privateNames/privateNameInInExpression.ts(21,29): error TS2571: Object is of type 'unknown'. -tests/cases/conformance/classes/members/privateNames/privateNameInInExpression.ts(23,19): error TS2304: Cannot find name '#fiel'. tests/cases/conformance/classes/members/privateNames/privateNameInInExpression.ts(23,19): error TS2339: Property '#fiel' does not exist on type 'any'. tests/cases/conformance/classes/members/privateNames/privateNameInInExpression.ts(25,20): error TS1451: Private identifiers are only allowed in class bodies and may only be used as part of a class member declaration, property access, or on the left-hand-side of an 'in' expression -tests/cases/conformance/classes/members/privateNames/privateNameInInExpression.ts(27,14): error TS1451: Private identifiers are only allowed in class bodies and may only be used as part of a class member declaration, property access, or on the left-hand-side of an 'in' expression tests/cases/conformance/classes/members/privateNames/privateNameInInExpression.ts(27,14): error TS2406: The left-hand side of a 'for...in' statement must be a variable or a property access. tests/cases/conformance/classes/members/privateNames/privateNameInInExpression.ts(29,23): error TS2407: The right-hand side of a 'for...in' statement must be of type 'any', an object type or a type parameter, but here has type 'boolean'. tests/cases/conformance/classes/members/privateNames/privateNameInInExpression.ts(43,27): error TS2531: Object is possibly 'null'. tests/cases/conformance/classes/members/privateNames/privateNameInInExpression.ts(114,12): error TS18016: Private identifiers are not allowed outside class bodies. -==== tests/cases/conformance/classes/members/privateNames/privateNameInInExpression.ts (9 errors) ==== +==== tests/cases/conformance/classes/members/privateNames/privateNameInInExpression.ts (7 errors) ==== class Foo { #field = 1; static #staticField = 2; @@ -36,8 +34,6 @@ tests/cases/conformance/classes/members/privateNames/privateNameInInExpression.t const b = #fiel in v; // Bad - typo in privateID ~~~~~ -!!! error TS2304: Cannot find name '#fiel'. - ~~~~~ !!! error TS2339: Property '#fiel' does not exist on type 'any'. const c = (#field) in v; // Bad - privateID is not an expression on its own @@ -46,8 +42,6 @@ tests/cases/conformance/classes/members/privateNames/privateNameInInExpression.t for (#field in v) { /**/ } // Bad - 'in' not allowed ~~~~~~ -!!! error TS1451: Private identifiers are only allowed in class bodies and may only be used as part of a class member declaration, property access, or on the left-hand-side of an 'in' expression - ~~~~~~ !!! error TS2406: The left-hand side of a 'for...in' statement must be a variable or a property access. for (let d in #field in v) { /**/ } // Bad - rhs of in should be a object/any diff --git a/tests/baselines/reference/privateNameInInExpression.js b/tests/baselines/reference/privateNameInInExpression(target=es2022).js similarity index 100% rename from tests/baselines/reference/privateNameInInExpression.js rename to tests/baselines/reference/privateNameInInExpression(target=es2022).js diff --git a/tests/baselines/reference/privateNameInInExpression.symbols b/tests/baselines/reference/privateNameInInExpression(target=es2022).symbols similarity index 100% rename from tests/baselines/reference/privateNameInInExpression.symbols rename to tests/baselines/reference/privateNameInInExpression(target=es2022).symbols diff --git a/tests/baselines/reference/privateNameInInExpression.types b/tests/baselines/reference/privateNameInInExpression(target=es2022).types similarity index 100% rename from tests/baselines/reference/privateNameInInExpression.types rename to tests/baselines/reference/privateNameInInExpression(target=es2022).types diff --git a/tests/baselines/reference/privateNameInInExpression(target=esnext).errors.txt b/tests/baselines/reference/privateNameInInExpression(target=esnext).errors.txt new file mode 100644 index 0000000000000..514d2a85e84a6 --- /dev/null +++ b/tests/baselines/reference/privateNameInInExpression(target=esnext).errors.txt @@ -0,0 +1,140 @@ +tests/cases/conformance/classes/members/privateNames/privateNameInInExpression.ts(21,29): error TS2571: Object is of type 'unknown'. +tests/cases/conformance/classes/members/privateNames/privateNameInInExpression.ts(23,19): error TS2339: Property '#fiel' does not exist on type 'any'. +tests/cases/conformance/classes/members/privateNames/privateNameInInExpression.ts(25,20): error TS1451: Private identifiers are only allowed in class bodies and may only be used as part of a class member declaration, property access, or on the left-hand-side of an 'in' expression +tests/cases/conformance/classes/members/privateNames/privateNameInInExpression.ts(27,14): error TS2406: The left-hand side of a 'for...in' statement must be a variable or a property access. +tests/cases/conformance/classes/members/privateNames/privateNameInInExpression.ts(29,23): error TS2407: The right-hand side of a 'for...in' statement must be of type 'any', an object type or a type parameter, but here has type 'boolean'. +tests/cases/conformance/classes/members/privateNames/privateNameInInExpression.ts(43,27): error TS2531: Object is possibly 'null'. +tests/cases/conformance/classes/members/privateNames/privateNameInInExpression.ts(114,12): error TS18016: Private identifiers are not allowed outside class bodies. + + +==== tests/cases/conformance/classes/members/privateNames/privateNameInInExpression.ts (7 errors) ==== + class Foo { + #field = 1; + static #staticField = 2; + #method() {} + static #staticMethod() {} + + goodRhs(v: any) { + const a = #field in v; + + const b = #field in v.p1.p2; + + const c = #field in (v as {}); + + const d = #field in (v as Foo); + + const e = #field in (v as never); + + for (let f in #field in v as any) { /**/ } // unlikely but valid + } + badRhs(v: any) { + const a = #field in (v as unknown); // Bad - RHS of in must be object type or any + ~~~~~~~~~~~~~~ +!!! error TS2571: Object is of type 'unknown'. + + const b = #fiel in v; // Bad - typo in privateID + ~~~~~ +!!! error TS2339: Property '#fiel' does not exist on type 'any'. + + const c = (#field) in v; // Bad - privateID is not an expression on its own + ~~~~~~ +!!! error TS1451: Private identifiers are only allowed in class bodies and may only be used as part of a class member declaration, property access, or on the left-hand-side of an 'in' expression + + for (#field in v) { /**/ } // Bad - 'in' not allowed + ~~~~~~ +!!! error TS2406: The left-hand side of a 'for...in' statement must be a variable or a property access. + + for (let d in #field in v) { /**/ } // Bad - rhs of in should be a object/any + ~~~~~~~~~~~ +!!! error TS2407: The right-hand side of a 'for...in' statement must be of type 'any', an object type or a type parameter, but here has type 'boolean'. + } + whitespace(v: any) { + const a = v && /*0*/#field/*1*/ + /*2*/in/*3*/ + /*4*/v/*5*/ + } + flow(u: unknown, n: never, fb: Foo | Bar, fs: FooSub, b: Bar, fsb: FooSub | Bar, fsfb: Foo | FooSub | Bar) { + + if (typeof u === 'object') { + if (#field in n) { + n; // good n is never + } + + if (#field in u) { + ~ +!!! error TS2531: Object is possibly 'null'. + u; // good u is Foo + } else { + u; // good u is object | null + } + + if (u !== null) { + if (#field in u) { + u; // good u is Foo + } else { + u; // good u is object + } + + if (#method in u) { + u; // good u is Foo + } + + if (#staticField in u) { + u; // good u is typeof Foo + } + + if (#staticMethod in u) { + u; // good u is typeof Foo + } + } + } + + if (#field in fb) { + fb; // good fb is Foo + } else { + fb; // good fb is Bar + } + + if (#field in fs) { + fs; // good fs is FooSub + } else { + fs; // good fs is never + } + + if (#field in b) { + b; // good b is 'Bar & Foo' + } else { + b; // good b is Bar + } + + if (#field in fsb) { + fsb; // good fsb is FooSub + } else { + fsb; // good fsb is Bar + } + + if (#field in fsfb) { + fsfb; // good fsfb is 'Foo | FooSub' + } else { + fsfb; // good fsfb is Bar + } + + class Nested { + m(v: any) { + if (#field in v) { + v; // good v is Foo + } + } + } + } + } + + class FooSub extends Foo { subTypeOfFoo = true } + class Bar { notFoo = true } + + function badSyntax(v: Foo) { + return #field in v; // Bad - outside of class + ~~~~~~ +!!! error TS18016: Private identifiers are not allowed outside class bodies. + } + \ No newline at end of file diff --git a/tests/baselines/reference/privateNameInInExpression(target=esnext).js b/tests/baselines/reference/privateNameInInExpression(target=esnext).js new file mode 100644 index 0000000000000..a57d640c8d664 --- /dev/null +++ b/tests/baselines/reference/privateNameInInExpression(target=esnext).js @@ -0,0 +1,222 @@ +//// [privateNameInInExpression.ts] +class Foo { + #field = 1; + static #staticField = 2; + #method() {} + static #staticMethod() {} + + goodRhs(v: any) { + const a = #field in v; + + const b = #field in v.p1.p2; + + const c = #field in (v as {}); + + const d = #field in (v as Foo); + + const e = #field in (v as never); + + for (let f in #field in v as any) { /**/ } // unlikely but valid + } + badRhs(v: any) { + const a = #field in (v as unknown); // Bad - RHS of in must be object type or any + + const b = #fiel in v; // Bad - typo in privateID + + const c = (#field) in v; // Bad - privateID is not an expression on its own + + for (#field in v) { /**/ } // Bad - 'in' not allowed + + for (let d in #field in v) { /**/ } // Bad - rhs of in should be a object/any + } + whitespace(v: any) { + const a = v && /*0*/#field/*1*/ + /*2*/in/*3*/ + /*4*/v/*5*/ + } + flow(u: unknown, n: never, fb: Foo | Bar, fs: FooSub, b: Bar, fsb: FooSub | Bar, fsfb: Foo | FooSub | Bar) { + + if (typeof u === 'object') { + if (#field in n) { + n; // good n is never + } + + if (#field in u) { + u; // good u is Foo + } else { + u; // good u is object | null + } + + if (u !== null) { + if (#field in u) { + u; // good u is Foo + } else { + u; // good u is object + } + + if (#method in u) { + u; // good u is Foo + } + + if (#staticField in u) { + u; // good u is typeof Foo + } + + if (#staticMethod in u) { + u; // good u is typeof Foo + } + } + } + + if (#field in fb) { + fb; // good fb is Foo + } else { + fb; // good fb is Bar + } + + if (#field in fs) { + fs; // good fs is FooSub + } else { + fs; // good fs is never + } + + if (#field in b) { + b; // good b is 'Bar & Foo' + } else { + b; // good b is Bar + } + + if (#field in fsb) { + fsb; // good fsb is FooSub + } else { + fsb; // good fsb is Bar + } + + if (#field in fsfb) { + fsfb; // good fsfb is 'Foo | FooSub' + } else { + fsfb; // good fsfb is Bar + } + + class Nested { + m(v: any) { + if (#field in v) { + v; // good v is Foo + } + } + } + } +} + +class FooSub extends Foo { subTypeOfFoo = true } +class Bar { notFoo = true } + +function badSyntax(v: Foo) { + return #field in v; // Bad - outside of class +} + + +//// [privateNameInInExpression.js] +"use strict"; +class Foo { + #field = 1; + static #staticField = 2; + #method() { } + static #staticMethod() { } + goodRhs(v) { + const a = #field in v; + const b = #field in v.p1.p2; + const c = #field in v; + const d = #field in v; + const e = #field in v; + for (let f in #field in v) { /**/ } // unlikely but valid + } + badRhs(v) { + const a = #field in v; // Bad - RHS of in must be object type or any + const b = #fiel in v; // Bad - typo in privateID + const c = (#field) in v; // Bad - privateID is not an expression on its own + for (#field in v) { /**/ } // Bad - 'in' not allowed + for (let d in #field in v) { /**/ } // Bad - rhs of in should be a object/any + } + whitespace(v) { + const a = v && /*0*/ #field /*1*/ + /*2*/ in /*3*/ + /*4*/ v; /*5*/ + } + flow(u, n, fb, fs, b, fsb, fsfb) { + if (typeof u === 'object') { + if (#field in n) { + n; // good n is never + } + if (#field in u) { + u; // good u is Foo + } + else { + u; // good u is object | null + } + if (u !== null) { + if (#field in u) { + u; // good u is Foo + } + else { + u; // good u is object + } + if (#method in u) { + u; // good u is Foo + } + if (#staticField in u) { + u; // good u is typeof Foo + } + if (#staticMethod in u) { + u; // good u is typeof Foo + } + } + } + if (#field in fb) { + fb; // good fb is Foo + } + else { + fb; // good fb is Bar + } + if (#field in fs) { + fs; // good fs is FooSub + } + else { + fs; // good fs is never + } + if (#field in b) { + b; // good b is 'Bar & Foo' + } + else { + b; // good b is Bar + } + if (#field in fsb) { + fsb; // good fsb is FooSub + } + else { + fsb; // good fsb is Bar + } + if (#field in fsfb) { + fsfb; // good fsfb is 'Foo | FooSub' + } + else { + fsfb; // good fsfb is Bar + } + class Nested { + m(v) { + if (#field in v) { + v; // good v is Foo + } + } + } + } +} +class FooSub extends Foo { + subTypeOfFoo = true; +} +class Bar { + notFoo = true; +} +function badSyntax(v) { + return #field in v; // Bad - outside of class +} diff --git a/tests/baselines/reference/privateNameInInExpression(target=esnext).symbols b/tests/baselines/reference/privateNameInInExpression(target=esnext).symbols new file mode 100644 index 0000000000000..2827e42d11150 --- /dev/null +++ b/tests/baselines/reference/privateNameInInExpression(target=esnext).symbols @@ -0,0 +1,269 @@ +=== tests/cases/conformance/classes/members/privateNames/privateNameInInExpression.ts === +class Foo { +>Foo : Symbol(Foo, Decl(privateNameInInExpression.ts, 0, 0)) + + #field = 1; +>#field : Symbol(Foo.#field, Decl(privateNameInInExpression.ts, 0, 11)) + + static #staticField = 2; +>#staticField : Symbol(Foo.#staticField, Decl(privateNameInInExpression.ts, 1, 15)) + + #method() {} +>#method : Symbol(Foo.#method, Decl(privateNameInInExpression.ts, 2, 28)) + + static #staticMethod() {} +>#staticMethod : Symbol(Foo.#staticMethod, Decl(privateNameInInExpression.ts, 3, 16)) + + goodRhs(v: any) { +>goodRhs : Symbol(Foo.goodRhs, Decl(privateNameInInExpression.ts, 4, 29)) +>v : Symbol(v, Decl(privateNameInInExpression.ts, 6, 12)) + + const a = #field in v; +>a : Symbol(a, Decl(privateNameInInExpression.ts, 7, 13)) +>#field : Symbol(Foo.#field, Decl(privateNameInInExpression.ts, 0, 11)) +>v : Symbol(v, Decl(privateNameInInExpression.ts, 6, 12)) + + const b = #field in v.p1.p2; +>b : Symbol(b, Decl(privateNameInInExpression.ts, 9, 13)) +>#field : Symbol(Foo.#field, Decl(privateNameInInExpression.ts, 0, 11)) +>v : Symbol(v, Decl(privateNameInInExpression.ts, 6, 12)) + + const c = #field in (v as {}); +>c : Symbol(c, Decl(privateNameInInExpression.ts, 11, 13)) +>#field : Symbol(Foo.#field, Decl(privateNameInInExpression.ts, 0, 11)) +>v : Symbol(v, Decl(privateNameInInExpression.ts, 6, 12)) + + const d = #field in (v as Foo); +>d : Symbol(d, Decl(privateNameInInExpression.ts, 13, 13)) +>#field : Symbol(Foo.#field, Decl(privateNameInInExpression.ts, 0, 11)) +>v : Symbol(v, Decl(privateNameInInExpression.ts, 6, 12)) +>Foo : Symbol(Foo, Decl(privateNameInInExpression.ts, 0, 0)) + + const e = #field in (v as never); +>e : Symbol(e, Decl(privateNameInInExpression.ts, 15, 13)) +>#field : Symbol(Foo.#field, Decl(privateNameInInExpression.ts, 0, 11)) +>v : Symbol(v, Decl(privateNameInInExpression.ts, 6, 12)) + + for (let f in #field in v as any) { /**/ } // unlikely but valid +>f : Symbol(f, Decl(privateNameInInExpression.ts, 17, 16)) +>#field : Symbol(Foo.#field, Decl(privateNameInInExpression.ts, 0, 11)) +>v : Symbol(v, Decl(privateNameInInExpression.ts, 6, 12)) + } + badRhs(v: any) { +>badRhs : Symbol(Foo.badRhs, Decl(privateNameInInExpression.ts, 18, 5)) +>v : Symbol(v, Decl(privateNameInInExpression.ts, 19, 11)) + + const a = #field in (v as unknown); // Bad - RHS of in must be object type or any +>a : Symbol(a, Decl(privateNameInInExpression.ts, 20, 13)) +>#field : Symbol(Foo.#field, Decl(privateNameInInExpression.ts, 0, 11)) +>v : Symbol(v, Decl(privateNameInInExpression.ts, 19, 11)) + + const b = #fiel in v; // Bad - typo in privateID +>b : Symbol(b, Decl(privateNameInInExpression.ts, 22, 13)) +>v : Symbol(v, Decl(privateNameInInExpression.ts, 19, 11)) + + const c = (#field) in v; // Bad - privateID is not an expression on its own +>c : Symbol(c, Decl(privateNameInInExpression.ts, 24, 13)) +>v : Symbol(v, Decl(privateNameInInExpression.ts, 19, 11)) + + for (#field in v) { /**/ } // Bad - 'in' not allowed +>v : Symbol(v, Decl(privateNameInInExpression.ts, 19, 11)) + + for (let d in #field in v) { /**/ } // Bad - rhs of in should be a object/any +>d : Symbol(d, Decl(privateNameInInExpression.ts, 28, 16)) +>#field : Symbol(Foo.#field, Decl(privateNameInInExpression.ts, 0, 11)) +>v : Symbol(v, Decl(privateNameInInExpression.ts, 19, 11)) + } + whitespace(v: any) { +>whitespace : Symbol(Foo.whitespace, Decl(privateNameInInExpression.ts, 29, 5)) +>v : Symbol(v, Decl(privateNameInInExpression.ts, 30, 15)) + + const a = v && /*0*/#field/*1*/ +>a : Symbol(a, Decl(privateNameInInExpression.ts, 31, 13)) +>v : Symbol(v, Decl(privateNameInInExpression.ts, 30, 15)) +>#field : Symbol(Foo.#field, Decl(privateNameInInExpression.ts, 0, 11)) + + /*2*/in/*3*/ + /*4*/v/*5*/ +>v : Symbol(v, Decl(privateNameInInExpression.ts, 30, 15)) + } + flow(u: unknown, n: never, fb: Foo | Bar, fs: FooSub, b: Bar, fsb: FooSub | Bar, fsfb: Foo | FooSub | Bar) { +>flow : Symbol(Foo.flow, Decl(privateNameInInExpression.ts, 34, 5)) +>u : Symbol(u, Decl(privateNameInInExpression.ts, 35, 9)) +>n : Symbol(n, Decl(privateNameInInExpression.ts, 35, 20)) +>fb : Symbol(fb, Decl(privateNameInInExpression.ts, 35, 30)) +>Foo : Symbol(Foo, Decl(privateNameInInExpression.ts, 0, 0)) +>Bar : Symbol(Bar, Decl(privateNameInInExpression.ts, 109, 48)) +>fs : Symbol(fs, Decl(privateNameInInExpression.ts, 35, 45)) +>FooSub : Symbol(FooSub, Decl(privateNameInInExpression.ts, 107, 1)) +>b : Symbol(b, Decl(privateNameInInExpression.ts, 35, 57)) +>Bar : Symbol(Bar, Decl(privateNameInInExpression.ts, 109, 48)) +>fsb : Symbol(fsb, Decl(privateNameInInExpression.ts, 35, 65)) +>FooSub : Symbol(FooSub, Decl(privateNameInInExpression.ts, 107, 1)) +>Bar : Symbol(Bar, Decl(privateNameInInExpression.ts, 109, 48)) +>fsfb : Symbol(fsfb, Decl(privateNameInInExpression.ts, 35, 84)) +>Foo : Symbol(Foo, Decl(privateNameInInExpression.ts, 0, 0)) +>FooSub : Symbol(FooSub, Decl(privateNameInInExpression.ts, 107, 1)) +>Bar : Symbol(Bar, Decl(privateNameInInExpression.ts, 109, 48)) + + if (typeof u === 'object') { +>u : Symbol(u, Decl(privateNameInInExpression.ts, 35, 9)) + + if (#field in n) { +>#field : Symbol(Foo.#field, Decl(privateNameInInExpression.ts, 0, 11)) +>n : Symbol(n, Decl(privateNameInInExpression.ts, 35, 20)) + + n; // good n is never +>n : Symbol(n, Decl(privateNameInInExpression.ts, 35, 20)) + } + + if (#field in u) { +>#field : Symbol(Foo.#field, Decl(privateNameInInExpression.ts, 0, 11)) +>u : Symbol(u, Decl(privateNameInInExpression.ts, 35, 9)) + + u; // good u is Foo +>u : Symbol(u, Decl(privateNameInInExpression.ts, 35, 9)) + + } else { + u; // good u is object | null +>u : Symbol(u, Decl(privateNameInInExpression.ts, 35, 9)) + } + + if (u !== null) { +>u : Symbol(u, Decl(privateNameInInExpression.ts, 35, 9)) + + if (#field in u) { +>#field : Symbol(Foo.#field, Decl(privateNameInInExpression.ts, 0, 11)) +>u : Symbol(u, Decl(privateNameInInExpression.ts, 35, 9)) + + u; // good u is Foo +>u : Symbol(u, Decl(privateNameInInExpression.ts, 35, 9)) + + } else { + u; // good u is object +>u : Symbol(u, Decl(privateNameInInExpression.ts, 35, 9)) + } + + if (#method in u) { +>#method : Symbol(Foo.#method, Decl(privateNameInInExpression.ts, 2, 28)) +>u : Symbol(u, Decl(privateNameInInExpression.ts, 35, 9)) + + u; // good u is Foo +>u : Symbol(u, Decl(privateNameInInExpression.ts, 35, 9)) + } + + if (#staticField in u) { +>#staticField : Symbol(Foo.#staticField, Decl(privateNameInInExpression.ts, 1, 15)) +>u : Symbol(u, Decl(privateNameInInExpression.ts, 35, 9)) + + u; // good u is typeof Foo +>u : Symbol(u, Decl(privateNameInInExpression.ts, 35, 9)) + } + + if (#staticMethod in u) { +>#staticMethod : Symbol(Foo.#staticMethod, Decl(privateNameInInExpression.ts, 3, 16)) +>u : Symbol(u, Decl(privateNameInInExpression.ts, 35, 9)) + + u; // good u is typeof Foo +>u : Symbol(u, Decl(privateNameInInExpression.ts, 35, 9)) + } + } + } + + if (#field in fb) { +>#field : Symbol(Foo.#field, Decl(privateNameInInExpression.ts, 0, 11)) +>fb : Symbol(fb, Decl(privateNameInInExpression.ts, 35, 30)) + + fb; // good fb is Foo +>fb : Symbol(fb, Decl(privateNameInInExpression.ts, 35, 30)) + + } else { + fb; // good fb is Bar +>fb : Symbol(fb, Decl(privateNameInInExpression.ts, 35, 30)) + } + + if (#field in fs) { +>#field : Symbol(Foo.#field, Decl(privateNameInInExpression.ts, 0, 11)) +>fs : Symbol(fs, Decl(privateNameInInExpression.ts, 35, 45)) + + fs; // good fs is FooSub +>fs : Symbol(fs, Decl(privateNameInInExpression.ts, 35, 45)) + + } else { + fs; // good fs is never +>fs : Symbol(fs, Decl(privateNameInInExpression.ts, 35, 45)) + } + + if (#field in b) { +>#field : Symbol(Foo.#field, Decl(privateNameInInExpression.ts, 0, 11)) +>b : Symbol(b, Decl(privateNameInInExpression.ts, 35, 57)) + + b; // good b is 'Bar & Foo' +>b : Symbol(b, Decl(privateNameInInExpression.ts, 35, 57)) + + } else { + b; // good b is Bar +>b : Symbol(b, Decl(privateNameInInExpression.ts, 35, 57)) + } + + if (#field in fsb) { +>#field : Symbol(Foo.#field, Decl(privateNameInInExpression.ts, 0, 11)) +>fsb : Symbol(fsb, Decl(privateNameInInExpression.ts, 35, 65)) + + fsb; // good fsb is FooSub +>fsb : Symbol(fsb, Decl(privateNameInInExpression.ts, 35, 65)) + + } else { + fsb; // good fsb is Bar +>fsb : Symbol(fsb, Decl(privateNameInInExpression.ts, 35, 65)) + } + + if (#field in fsfb) { +>#field : Symbol(Foo.#field, Decl(privateNameInInExpression.ts, 0, 11)) +>fsfb : Symbol(fsfb, Decl(privateNameInInExpression.ts, 35, 84)) + + fsfb; // good fsfb is 'Foo | FooSub' +>fsfb : Symbol(fsfb, Decl(privateNameInInExpression.ts, 35, 84)) + + } else { + fsfb; // good fsfb is Bar +>fsfb : Symbol(fsfb, Decl(privateNameInInExpression.ts, 35, 84)) + } + + class Nested { +>Nested : Symbol(Nested, Decl(privateNameInInExpression.ts, 97, 9)) + + m(v: any) { +>m : Symbol(Nested.m, Decl(privateNameInInExpression.ts, 99, 22)) +>v : Symbol(v, Decl(privateNameInInExpression.ts, 100, 14)) + + if (#field in v) { +>#field : Symbol(Foo.#field, Decl(privateNameInInExpression.ts, 0, 11)) +>v : Symbol(v, Decl(privateNameInInExpression.ts, 100, 14)) + + v; // good v is Foo +>v : Symbol(v, Decl(privateNameInInExpression.ts, 100, 14)) + } + } + } + } +} + +class FooSub extends Foo { subTypeOfFoo = true } +>FooSub : Symbol(FooSub, Decl(privateNameInInExpression.ts, 107, 1)) +>Foo : Symbol(Foo, Decl(privateNameInInExpression.ts, 0, 0)) +>subTypeOfFoo : Symbol(FooSub.subTypeOfFoo, Decl(privateNameInInExpression.ts, 109, 26)) + +class Bar { notFoo = true } +>Bar : Symbol(Bar, Decl(privateNameInInExpression.ts, 109, 48)) +>notFoo : Symbol(Bar.notFoo, Decl(privateNameInInExpression.ts, 110, 11)) + +function badSyntax(v: Foo) { +>badSyntax : Symbol(badSyntax, Decl(privateNameInInExpression.ts, 110, 27)) +>v : Symbol(v, Decl(privateNameInInExpression.ts, 112, 19)) +>Foo : Symbol(Foo, Decl(privateNameInInExpression.ts, 0, 0)) + + return #field in v; // Bad - outside of class +>v : Symbol(v, Decl(privateNameInInExpression.ts, 112, 19)) +} + diff --git a/tests/baselines/reference/privateNameInInExpression(target=esnext).types b/tests/baselines/reference/privateNameInInExpression(target=esnext).types new file mode 100644 index 0000000000000..af1ce8a754f1c --- /dev/null +++ b/tests/baselines/reference/privateNameInInExpression(target=esnext).types @@ -0,0 +1,308 @@ +=== tests/cases/conformance/classes/members/privateNames/privateNameInInExpression.ts === +class Foo { +>Foo : Foo + + #field = 1; +>#field : number +>1 : 1 + + static #staticField = 2; +>#staticField : number +>2 : 2 + + #method() {} +>#method : () => void + + static #staticMethod() {} +>#staticMethod : () => void + + goodRhs(v: any) { +>goodRhs : (v: any) => void +>v : any + + const a = #field in v; +>a : boolean +>#field in v : boolean +>#field : any +>v : any + + const b = #field in v.p1.p2; +>b : boolean +>#field in v.p1.p2 : boolean +>#field : any +>v.p1.p2 : any +>v.p1 : any +>v : any +>p1 : any +>p2 : any + + const c = #field in (v as {}); +>c : boolean +>#field in (v as {}) : boolean +>#field : any +>(v as {}) : {} +>v as {} : {} +>v : any + + const d = #field in (v as Foo); +>d : boolean +>#field in (v as Foo) : boolean +>#field : any +>(v as Foo) : Foo +>v as Foo : Foo +>v : any + + const e = #field in (v as never); +>e : boolean +>#field in (v as never) : boolean +>#field : any +>(v as never) : never +>v as never : never +>v : any + + for (let f in #field in v as any) { /**/ } // unlikely but valid +>f : string +>#field in v as any : any +>#field in v : boolean +>#field : any +>v : any + } + badRhs(v: any) { +>badRhs : (v: any) => void +>v : any + + const a = #field in (v as unknown); // Bad - RHS of in must be object type or any +>a : boolean +>#field in (v as unknown) : boolean +>#field : any +>(v as unknown) : unknown +>v as unknown : unknown +>v : any + + const b = #fiel in v; // Bad - typo in privateID +>b : boolean +>#fiel in v : boolean +>#fiel : any +>v : any + + const c = (#field) in v; // Bad - privateID is not an expression on its own +>c : boolean +>(#field) in v : boolean +>(#field) : any +>v : any + + for (#field in v) { /**/ } // Bad - 'in' not allowed +>v : any + + for (let d in #field in v) { /**/ } // Bad - rhs of in should be a object/any +>d : string +>#field in v : boolean +>#field : any +>v : any + } + whitespace(v: any) { +>whitespace : (v: any) => void +>v : any + + const a = v && /*0*/#field/*1*/ +>a : any +>v && /*0*/#field/*1*/ /*2*/in/*3*/ /*4*/v : any +>v : any +>#field/*1*/ /*2*/in/*3*/ /*4*/v : boolean +>#field : any + + /*2*/in/*3*/ + /*4*/v/*5*/ +>v : any + } + flow(u: unknown, n: never, fb: Foo | Bar, fs: FooSub, b: Bar, fsb: FooSub | Bar, fsfb: Foo | FooSub | Bar) { +>flow : (u: unknown, n: never, fb: Foo | Bar, fs: FooSub, b: Bar, fsb: FooSub | Bar, fsfb: Foo | FooSub | Bar) => void +>u : unknown +>n : never +>fb : Foo | Bar +>fs : FooSub +>b : Bar +>fsb : Bar | FooSub +>fsfb : Foo | Bar | FooSub + + if (typeof u === 'object') { +>typeof u === 'object' : boolean +>typeof u : "string" | "number" | "bigint" | "boolean" | "symbol" | "undefined" | "object" | "function" +>u : unknown +>'object' : "object" + + if (#field in n) { +>#field in n : boolean +>#field : any +>n : never + + n; // good n is never +>n : never + } + + if (#field in u) { +>#field in u : boolean +>#field : any +>u : object | null + + u; // good u is Foo +>u : Foo + + } else { + u; // good u is object | null +>u : object | null + } + + if (u !== null) { +>u !== null : boolean +>u : object | null +>null : null + + if (#field in u) { +>#field in u : boolean +>#field : any +>u : object + + u; // good u is Foo +>u : Foo + + } else { + u; // good u is object +>u : object + } + + if (#method in u) { +>#method in u : boolean +>#method : any +>u : object + + u; // good u is Foo +>u : Foo + } + + if (#staticField in u) { +>#staticField in u : boolean +>#staticField : any +>u : object + + u; // good u is typeof Foo +>u : typeof Foo + } + + if (#staticMethod in u) { +>#staticMethod in u : boolean +>#staticMethod : any +>u : object + + u; // good u is typeof Foo +>u : typeof Foo + } + } + } + + if (#field in fb) { +>#field in fb : boolean +>#field : any +>fb : Foo | Bar + + fb; // good fb is Foo +>fb : Foo + + } else { + fb; // good fb is Bar +>fb : Bar + } + + if (#field in fs) { +>#field in fs : boolean +>#field : any +>fs : FooSub + + fs; // good fs is FooSub +>fs : FooSub + + } else { + fs; // good fs is never +>fs : never + } + + if (#field in b) { +>#field in b : boolean +>#field : any +>b : Bar + + b; // good b is 'Bar & Foo' +>b : Bar & Foo + + } else { + b; // good b is Bar +>b : Bar + } + + if (#field in fsb) { +>#field in fsb : boolean +>#field : any +>fsb : Bar | FooSub + + fsb; // good fsb is FooSub +>fsb : FooSub + + } else { + fsb; // good fsb is Bar +>fsb : Bar + } + + if (#field in fsfb) { +>#field in fsfb : boolean +>#field : any +>fsfb : Foo | Bar | FooSub + + fsfb; // good fsfb is 'Foo | FooSub' +>fsfb : Foo | FooSub + + } else { + fsfb; // good fsfb is Bar +>fsfb : Bar + } + + class Nested { +>Nested : Nested + + m(v: any) { +>m : (v: any) => void +>v : any + + if (#field in v) { +>#field in v : boolean +>#field : any +>v : any + + v; // good v is Foo +>v : Foo + } + } + } + } +} + +class FooSub extends Foo { subTypeOfFoo = true } +>FooSub : FooSub +>Foo : Foo +>subTypeOfFoo : boolean +>true : true + +class Bar { notFoo = true } +>Bar : Bar +>notFoo : boolean +>true : true + +function badSyntax(v: Foo) { +>badSyntax : (v: Foo) => boolean +>v : Foo + + return #field in v; // Bad - outside of class +>#field in v : boolean +>#field : any +>v : Foo +} + diff --git a/tests/baselines/reference/privateNameInInExpressionTransform(target=es2022).errors.txt b/tests/baselines/reference/privateNameInInExpressionTransform(target=es2022).errors.txt new file mode 100644 index 0000000000000..1d00c96fac064 --- /dev/null +++ b/tests/baselines/reference/privateNameInInExpressionTransform(target=es2022).errors.txt @@ -0,0 +1,61 @@ +tests/cases/conformance/classes/members/privateNames/privateNameInInExpressionTransform.ts(20,24): error TS2361: The right-hand side of an 'in' expression must not be a primitive. +tests/cases/conformance/classes/members/privateNames/privateNameInInExpressionTransform.ts(24,14): error TS2360: The left-hand side of an 'in' expression must be a private identifier or of type 'any', 'string', 'number', or 'symbol'. +tests/cases/conformance/classes/members/privateNames/privateNameInInExpressionTransform.ts(29,21): error TS1005: ';' expected. +tests/cases/conformance/classes/members/privateNames/privateNameInInExpressionTransform.ts(30,21): error TS1005: ';' expected. + + +==== tests/cases/conformance/classes/members/privateNames/privateNameInInExpressionTransform.ts (4 errors) ==== + class Foo { + #field = 1; + #method() {} + static #staticField= 2; + static #staticMethod() {} + + check(v: any) { + #field in v; // expect Foo's 'field' WeakMap + #method in v; // expect Foo's 'instances' WeakSet + #staticField in v; // expect Foo's constructor + #staticMethod in v; // expect Foo's constructor + } + precedence(v: any) { + // '==' and '||' have lower precedence than 'in' + // 'in' naturally has same precedence as 'in' + // '<<' has higher precedence than 'in' + + v == #field in v || v; // Good precedence: (v == (#field in v)) || v + + v << #field in v << v; // Good precedence (SyntaxError): (v << #field) in (v << v) + ~~~~~~ +!!! error TS2361: The right-hand side of an 'in' expression must not be a primitive. + + v << #field in v == v; // Good precedence (SyntaxError): ((v << #field) in v) == v + + v == #field in v in v; // Good precedence: v == ((#field in v) in v) + ~~~~~~~~~~~ +!!! error TS2360: The left-hand side of an 'in' expression must be a private identifier or of type 'any', 'string', 'number', or 'symbol'. + + #field in v && #field in v; // Good precedence: (#field in v) && (#field in v) + } + invalidLHS(v: any) { + 'prop' in v = 10; + ~ +!!! error TS1005: ';' expected. + #field in v = 10; + ~ +!!! error TS1005: ';' expected. + } + } + + class Bar { + #field = 1; + check(v: any) { + #field in v; // expect Bar's 'field' WeakMap + } + } + + function syntaxError(v: Foo) { + return #field in v; // expect `return in v` so runtime will have a syntax error + } + + export { } + \ No newline at end of file diff --git a/tests/baselines/reference/privateNameInInExpressionTransform(target=es2022).js b/tests/baselines/reference/privateNameInInExpressionTransform(target=es2022).js new file mode 100644 index 0000000000000..50a91a840e5b2 --- /dev/null +++ b/tests/baselines/reference/privateNameInInExpressionTransform(target=es2022).js @@ -0,0 +1,87 @@ +//// [privateNameInInExpressionTransform.ts] +class Foo { + #field = 1; + #method() {} + static #staticField= 2; + static #staticMethod() {} + + check(v: any) { + #field in v; // expect Foo's 'field' WeakMap + #method in v; // expect Foo's 'instances' WeakSet + #staticField in v; // expect Foo's constructor + #staticMethod in v; // expect Foo's constructor + } + precedence(v: any) { + // '==' and '||' have lower precedence than 'in' + // 'in' naturally has same precedence as 'in' + // '<<' has higher precedence than 'in' + + v == #field in v || v; // Good precedence: (v == (#field in v)) || v + + v << #field in v << v; // Good precedence (SyntaxError): (v << #field) in (v << v) + + v << #field in v == v; // Good precedence (SyntaxError): ((v << #field) in v) == v + + v == #field in v in v; // Good precedence: v == ((#field in v) in v) + + #field in v && #field in v; // Good precedence: (#field in v) && (#field in v) + } + invalidLHS(v: any) { + 'prop' in v = 10; + #field in v = 10; + } +} + +class Bar { + #field = 1; + check(v: any) { + #field in v; // expect Bar's 'field' WeakMap + } +} + +function syntaxError(v: Foo) { + return #field in v; // expect `return in v` so runtime will have a syntax error +} + +export { } + + +//// [privateNameInInExpressionTransform.js] +class Foo { + #field = 1; + #method() { } + static #staticField = 2; + static #staticMethod() { } + check(v) { + #field in v; // expect Foo's 'field' WeakMap + #method in v; // expect Foo's 'instances' WeakSet + #staticField in v; // expect Foo's constructor + #staticMethod in v; // expect Foo's constructor + } + precedence(v) { + // '==' and '||' have lower precedence than 'in' + // 'in' naturally has same precedence as 'in' + // '<<' has higher precedence than 'in' + v == #field in v || v; // Good precedence: (v == (#field in v)) || v + v << #field in v << v; // Good precedence (SyntaxError): (v << #field) in (v << v) + v << #field in v == v; // Good precedence (SyntaxError): ((v << #field) in v) == v + v == #field in v in v; // Good precedence: v == ((#field in v) in v) + #field in v && #field in v; // Good precedence: (#field in v) && (#field in v) + } + invalidLHS(v) { + 'prop' in v; + 10; + #field in v; + 10; + } +} +class Bar { + #field = 1; + check(v) { + #field in v; // expect Bar's 'field' WeakMap + } +} +function syntaxError(v) { + return #field in v; // expect `return in v` so runtime will have a syntax error +} +export {}; diff --git a/tests/baselines/reference/privateNameInInExpressionTransform(target=es2022).symbols b/tests/baselines/reference/privateNameInInExpressionTransform(target=es2022).symbols new file mode 100644 index 0000000000000..572beaf65eee3 --- /dev/null +++ b/tests/baselines/reference/privateNameInInExpressionTransform(target=es2022).symbols @@ -0,0 +1,112 @@ +=== tests/cases/conformance/classes/members/privateNames/privateNameInInExpressionTransform.ts === +class Foo { +>Foo : Symbol(Foo, Decl(privateNameInInExpressionTransform.ts, 0, 0)) + + #field = 1; +>#field : Symbol(Foo.#field, Decl(privateNameInInExpressionTransform.ts, 0, 11)) + + #method() {} +>#method : Symbol(Foo.#method, Decl(privateNameInInExpressionTransform.ts, 1, 15)) + + static #staticField= 2; +>#staticField : Symbol(Foo.#staticField, Decl(privateNameInInExpressionTransform.ts, 2, 16)) + + static #staticMethod() {} +>#staticMethod : Symbol(Foo.#staticMethod, Decl(privateNameInInExpressionTransform.ts, 3, 27)) + + check(v: any) { +>check : Symbol(Foo.check, Decl(privateNameInInExpressionTransform.ts, 4, 29)) +>v : Symbol(v, Decl(privateNameInInExpressionTransform.ts, 6, 10)) + + #field in v; // expect Foo's 'field' WeakMap +>#field : Symbol(Foo.#field, Decl(privateNameInInExpressionTransform.ts, 0, 11)) +>v : Symbol(v, Decl(privateNameInInExpressionTransform.ts, 6, 10)) + + #method in v; // expect Foo's 'instances' WeakSet +>#method : Symbol(Foo.#method, Decl(privateNameInInExpressionTransform.ts, 1, 15)) +>v : Symbol(v, Decl(privateNameInInExpressionTransform.ts, 6, 10)) + + #staticField in v; // expect Foo's constructor +>#staticField : Symbol(Foo.#staticField, Decl(privateNameInInExpressionTransform.ts, 2, 16)) +>v : Symbol(v, Decl(privateNameInInExpressionTransform.ts, 6, 10)) + + #staticMethod in v; // expect Foo's constructor +>#staticMethod : Symbol(Foo.#staticMethod, Decl(privateNameInInExpressionTransform.ts, 3, 27)) +>v : Symbol(v, Decl(privateNameInInExpressionTransform.ts, 6, 10)) + } + precedence(v: any) { +>precedence : Symbol(Foo.precedence, Decl(privateNameInInExpressionTransform.ts, 11, 5)) +>v : Symbol(v, Decl(privateNameInInExpressionTransform.ts, 12, 15)) + + // '==' and '||' have lower precedence than 'in' + // 'in' naturally has same precedence as 'in' + // '<<' has higher precedence than 'in' + + v == #field in v || v; // Good precedence: (v == (#field in v)) || v +>v : Symbol(v, Decl(privateNameInInExpressionTransform.ts, 12, 15)) +>#field : Symbol(Foo.#field, Decl(privateNameInInExpressionTransform.ts, 0, 11)) +>v : Symbol(v, Decl(privateNameInInExpressionTransform.ts, 12, 15)) +>v : Symbol(v, Decl(privateNameInInExpressionTransform.ts, 12, 15)) + + v << #field in v << v; // Good precedence (SyntaxError): (v << #field) in (v << v) +>v : Symbol(v, Decl(privateNameInInExpressionTransform.ts, 12, 15)) +>v : Symbol(v, Decl(privateNameInInExpressionTransform.ts, 12, 15)) +>v : Symbol(v, Decl(privateNameInInExpressionTransform.ts, 12, 15)) + + v << #field in v == v; // Good precedence (SyntaxError): ((v << #field) in v) == v +>v : Symbol(v, Decl(privateNameInInExpressionTransform.ts, 12, 15)) +>v : Symbol(v, Decl(privateNameInInExpressionTransform.ts, 12, 15)) +>v : Symbol(v, Decl(privateNameInInExpressionTransform.ts, 12, 15)) + + v == #field in v in v; // Good precedence: v == ((#field in v) in v) +>v : Symbol(v, Decl(privateNameInInExpressionTransform.ts, 12, 15)) +>#field : Symbol(Foo.#field, Decl(privateNameInInExpressionTransform.ts, 0, 11)) +>v : Symbol(v, Decl(privateNameInInExpressionTransform.ts, 12, 15)) +>v : Symbol(v, Decl(privateNameInInExpressionTransform.ts, 12, 15)) + + #field in v && #field in v; // Good precedence: (#field in v) && (#field in v) +>#field : Symbol(Foo.#field, Decl(privateNameInInExpressionTransform.ts, 0, 11)) +>v : Symbol(v, Decl(privateNameInInExpressionTransform.ts, 12, 15)) +>#field : Symbol(Foo.#field, Decl(privateNameInInExpressionTransform.ts, 0, 11)) +>v : Symbol(v, Decl(privateNameInInExpressionTransform.ts, 12, 15)) + } + invalidLHS(v: any) { +>invalidLHS : Symbol(Foo.invalidLHS, Decl(privateNameInInExpressionTransform.ts, 26, 5)) +>v : Symbol(v, Decl(privateNameInInExpressionTransform.ts, 27, 15)) + + 'prop' in v = 10; +>v : Symbol(v, Decl(privateNameInInExpressionTransform.ts, 27, 15)) + + #field in v = 10; +>#field : Symbol(Foo.#field, Decl(privateNameInInExpressionTransform.ts, 0, 11)) +>v : Symbol(v, Decl(privateNameInInExpressionTransform.ts, 27, 15)) + } +} + +class Bar { +>Bar : Symbol(Bar, Decl(privateNameInInExpressionTransform.ts, 31, 1)) + + #field = 1; +>#field : Symbol(Bar.#field, Decl(privateNameInInExpressionTransform.ts, 33, 11)) + + check(v: any) { +>check : Symbol(Bar.check, Decl(privateNameInInExpressionTransform.ts, 34, 15)) +>v : Symbol(v, Decl(privateNameInInExpressionTransform.ts, 35, 10)) + + #field in v; // expect Bar's 'field' WeakMap +>#field : Symbol(Bar.#field, Decl(privateNameInInExpressionTransform.ts, 33, 11)) +>v : Symbol(v, Decl(privateNameInInExpressionTransform.ts, 35, 10)) + } +} + +function syntaxError(v: Foo) { +>syntaxError : Symbol(syntaxError, Decl(privateNameInInExpressionTransform.ts, 38, 1)) +>v : Symbol(v, Decl(privateNameInInExpressionTransform.ts, 40, 21)) +>Foo : Symbol(Foo, Decl(privateNameInInExpressionTransform.ts, 0, 0)) + + return #field in v; // expect `return in v` so runtime will have a syntax error +>v : Symbol(v, Decl(privateNameInInExpressionTransform.ts, 40, 21)) +} + +export { } + diff --git a/tests/baselines/reference/privateNameInInExpressionTransform(target=es2022).types b/tests/baselines/reference/privateNameInInExpressionTransform(target=es2022).types new file mode 100644 index 0000000000000..135b6495e4eeb --- /dev/null +++ b/tests/baselines/reference/privateNameInInExpressionTransform(target=es2022).types @@ -0,0 +1,141 @@ +=== tests/cases/conformance/classes/members/privateNames/privateNameInInExpressionTransform.ts === +class Foo { +>Foo : Foo + + #field = 1; +>#field : number +>1 : 1 + + #method() {} +>#method : () => void + + static #staticField= 2; +>#staticField : number +>2 : 2 + + static #staticMethod() {} +>#staticMethod : () => void + + check(v: any) { +>check : (v: any) => void +>v : any + + #field in v; // expect Foo's 'field' WeakMap +>#field in v : boolean +>#field : any +>v : any + + #method in v; // expect Foo's 'instances' WeakSet +>#method in v : boolean +>#method : any +>v : any + + #staticField in v; // expect Foo's constructor +>#staticField in v : boolean +>#staticField : any +>v : any + + #staticMethod in v; // expect Foo's constructor +>#staticMethod in v : boolean +>#staticMethod : any +>v : any + } + precedence(v: any) { +>precedence : (v: any) => void +>v : any + + // '==' and '||' have lower precedence than 'in' + // 'in' naturally has same precedence as 'in' + // '<<' has higher precedence than 'in' + + v == #field in v || v; // Good precedence: (v == (#field in v)) || v +>v == #field in v || v : any +>v == #field in v : boolean +>v : any +>#field in v : boolean +>#field : any +>v : any +>v : any + + v << #field in v << v; // Good precedence (SyntaxError): (v << #field) in (v << v) +>v << #field in v << v : boolean +>v << #field : number +>v : any +>v << v : number +>v : any +>v : any + + v << #field in v == v; // Good precedence (SyntaxError): ((v << #field) in v) == v +>v << #field in v == v : boolean +>v << #field in v : boolean +>v << #field : number +>v : any +>v : any +>v : any + + v == #field in v in v; // Good precedence: v == ((#field in v) in v) +>v == #field in v in v : boolean +>v : any +>#field in v in v : boolean +>#field in v : boolean +>#field : any +>v : any +>v : any + + #field in v && #field in v; // Good precedence: (#field in v) && (#field in v) +>#field in v && #field in v : boolean +>#field in v : boolean +>#field : any +>v : any +>#field in v : boolean +>#field : any +>v : Foo + } + invalidLHS(v: any) { +>invalidLHS : (v: any) => void +>v : any + + 'prop' in v = 10; +>'prop' in v : boolean +>'prop' : "prop" +>v : any +>10 : 10 + + #field in v = 10; +>#field in v : boolean +>#field : any +>v : any +>10 : 10 + } +} + +class Bar { +>Bar : Bar + + #field = 1; +>#field : number +>1 : 1 + + check(v: any) { +>check : (v: any) => void +>v : any + + #field in v; // expect Bar's 'field' WeakMap +>#field in v : boolean +>#field : any +>v : any + } +} + +function syntaxError(v: Foo) { +>syntaxError : (v: Foo) => boolean +>v : Foo + + return #field in v; // expect `return in v` so runtime will have a syntax error +>#field in v : boolean +>#field : any +>v : Foo +} + +export { } + diff --git a/tests/baselines/reference/privateNameInInExpressionTransform(target=esnext).errors.txt b/tests/baselines/reference/privateNameInInExpressionTransform(target=esnext).errors.txt index b48e2ac7889ef..1d00c96fac064 100644 --- a/tests/baselines/reference/privateNameInInExpressionTransform(target=esnext).errors.txt +++ b/tests/baselines/reference/privateNameInInExpressionTransform(target=esnext).errors.txt @@ -1,17 +1,14 @@ -tests/cases/conformance/classes/members/privateNames/privateNameInInExpressionTransform.ts(4,26): error TS2805: Static fields with private names can't have initializers when the '--useDefineForClassFields' flag is not specified with a '--target' of 'esnext'. Consider adding the '--useDefineForClassFields' flag. tests/cases/conformance/classes/members/privateNames/privateNameInInExpressionTransform.ts(20,24): error TS2361: The right-hand side of an 'in' expression must not be a primitive. tests/cases/conformance/classes/members/privateNames/privateNameInInExpressionTransform.ts(24,14): error TS2360: The left-hand side of an 'in' expression must be a private identifier or of type 'any', 'string', 'number', or 'symbol'. tests/cases/conformance/classes/members/privateNames/privateNameInInExpressionTransform.ts(29,21): error TS1005: ';' expected. tests/cases/conformance/classes/members/privateNames/privateNameInInExpressionTransform.ts(30,21): error TS1005: ';' expected. -==== tests/cases/conformance/classes/members/privateNames/privateNameInInExpressionTransform.ts (5 errors) ==== +==== tests/cases/conformance/classes/members/privateNames/privateNameInInExpressionTransform.ts (4 errors) ==== class Foo { #field = 1; #method() {} static #staticField= 2; - ~ -!!! error TS2805: Static fields with private names can't have initializers when the '--useDefineForClassFields' flag is not specified with a '--target' of 'esnext'. Consider adding the '--useDefineForClassFields' flag. static #staticMethod() {} check(v: any) { diff --git a/tests/baselines/reference/privateNameInInExpressionUnused.errors.txt b/tests/baselines/reference/privateNameInInExpressionUnused(target=es2022).errors.txt similarity index 100% rename from tests/baselines/reference/privateNameInInExpressionUnused.errors.txt rename to tests/baselines/reference/privateNameInInExpressionUnused(target=es2022).errors.txt diff --git a/tests/baselines/reference/privateNameInInExpressionUnused.js b/tests/baselines/reference/privateNameInInExpressionUnused(target=es2022).js similarity index 100% rename from tests/baselines/reference/privateNameInInExpressionUnused.js rename to tests/baselines/reference/privateNameInInExpressionUnused(target=es2022).js diff --git a/tests/baselines/reference/privateNameInInExpressionUnused.symbols b/tests/baselines/reference/privateNameInInExpressionUnused(target=es2022).symbols similarity index 100% rename from tests/baselines/reference/privateNameInInExpressionUnused.symbols rename to tests/baselines/reference/privateNameInInExpressionUnused(target=es2022).symbols diff --git a/tests/baselines/reference/privateNameInInExpressionUnused.types b/tests/baselines/reference/privateNameInInExpressionUnused(target=es2022).types similarity index 100% rename from tests/baselines/reference/privateNameInInExpressionUnused.types rename to tests/baselines/reference/privateNameInInExpressionUnused(target=es2022).types diff --git a/tests/baselines/reference/privateNameInInExpressionUnused(target=esnext).errors.txt b/tests/baselines/reference/privateNameInInExpressionUnused(target=esnext).errors.txt new file mode 100644 index 0000000000000..94d56876d297b --- /dev/null +++ b/tests/baselines/reference/privateNameInInExpressionUnused(target=esnext).errors.txt @@ -0,0 +1,16 @@ +tests/cases/conformance/classes/members/privateNames/privateNameInInExpressionUnused.ts(2,5): error TS6133: '#unused' is declared but its value is never read. + + +==== tests/cases/conformance/classes/members/privateNames/privateNameInInExpressionUnused.ts (1 errors) ==== + class Foo { + #unused: undefined; // expect unused error + ~~~~~~~ +!!! error TS6133: '#unused' is declared but its value is never read. + #brand: undefined; // expect no error + + isFoo(v: any): v is Foo { + // This should count as using/reading '#brand' + return #brand in v; + } + } + \ No newline at end of file diff --git a/tests/baselines/reference/privateNameInInExpressionUnused(target=esnext).js b/tests/baselines/reference/privateNameInInExpressionUnused(target=esnext).js new file mode 100644 index 0000000000000..651f2932d1669 --- /dev/null +++ b/tests/baselines/reference/privateNameInInExpressionUnused(target=esnext).js @@ -0,0 +1,22 @@ +//// [privateNameInInExpressionUnused.ts] +class Foo { + #unused: undefined; // expect unused error + #brand: undefined; // expect no error + + isFoo(v: any): v is Foo { + // This should count as using/reading '#brand' + return #brand in v; + } +} + + +//// [privateNameInInExpressionUnused.js] +"use strict"; +class Foo { + #unused; // expect unused error + #brand; // expect no error + isFoo(v) { + // This should count as using/reading '#brand' + return #brand in v; + } +} diff --git a/tests/baselines/reference/privateNameInInExpressionUnused(target=esnext).symbols b/tests/baselines/reference/privateNameInInExpressionUnused(target=esnext).symbols new file mode 100644 index 0000000000000..027c62bc16385 --- /dev/null +++ b/tests/baselines/reference/privateNameInInExpressionUnused(target=esnext).symbols @@ -0,0 +1,23 @@ +=== tests/cases/conformance/classes/members/privateNames/privateNameInInExpressionUnused.ts === +class Foo { +>Foo : Symbol(Foo, Decl(privateNameInInExpressionUnused.ts, 0, 0)) + + #unused: undefined; // expect unused error +>#unused : Symbol(Foo.#unused, Decl(privateNameInInExpressionUnused.ts, 0, 11)) + + #brand: undefined; // expect no error +>#brand : Symbol(Foo.#brand, Decl(privateNameInInExpressionUnused.ts, 1, 23)) + + isFoo(v: any): v is Foo { +>isFoo : Symbol(Foo.isFoo, Decl(privateNameInInExpressionUnused.ts, 2, 22)) +>v : Symbol(v, Decl(privateNameInInExpressionUnused.ts, 4, 10)) +>v : Symbol(v, Decl(privateNameInInExpressionUnused.ts, 4, 10)) +>Foo : Symbol(Foo, Decl(privateNameInInExpressionUnused.ts, 0, 0)) + + // This should count as using/reading '#brand' + return #brand in v; +>#brand : Symbol(Foo.#brand, Decl(privateNameInInExpressionUnused.ts, 1, 23)) +>v : Symbol(v, Decl(privateNameInInExpressionUnused.ts, 4, 10)) + } +} + diff --git a/tests/baselines/reference/privateNameInInExpressionUnused(target=esnext).types b/tests/baselines/reference/privateNameInInExpressionUnused(target=esnext).types new file mode 100644 index 0000000000000..95d8c12e0530d --- /dev/null +++ b/tests/baselines/reference/privateNameInInExpressionUnused(target=esnext).types @@ -0,0 +1,22 @@ +=== tests/cases/conformance/classes/members/privateNames/privateNameInInExpressionUnused.ts === +class Foo { +>Foo : Foo + + #unused: undefined; // expect unused error +>#unused : undefined + + #brand: undefined; // expect no error +>#brand : undefined + + isFoo(v: any): v is Foo { +>isFoo : (v: any) => v is Foo +>v : any + + // This should count as using/reading '#brand' + return #brand in v; +>#brand in v : boolean +>#brand : any +>v : any + } +} + diff --git a/tests/baselines/reference/privateNameInTypeQuery.errors.txt b/tests/baselines/reference/privateNameInTypeQuery.errors.txt new file mode 100644 index 0000000000000..c11a9db934a55 --- /dev/null +++ b/tests/baselines/reference/privateNameInTypeQuery.errors.txt @@ -0,0 +1,21 @@ +tests/cases/conformance/classes/members/privateNames/privateNameInTypeQuery.ts(6,15): error TS2322: Type 'number' is not assignable to type 'string'. +tests/cases/conformance/classes/members/privateNames/privateNameInTypeQuery.ts(11,19): error TS18013: Property '#a' is not accessible outside class 'C' because it has a private identifier. + + +==== tests/cases/conformance/classes/members/privateNames/privateNameInTypeQuery.ts (2 errors) ==== + class C { + #a = 'a'; + + constructor() { + const a: typeof this.#a = ''; // Ok + const b: typeof this.#a = 1; // Error + ~ +!!! error TS2322: Type 'number' is not assignable to type 'string'. + } + } + + const c = new C(); + const a: typeof c.#a = ''; + ~~ +!!! error TS18013: Property '#a' is not accessible outside class 'C' because it has a private identifier. + \ No newline at end of file diff --git a/tests/baselines/reference/privateNameInTypeQuery.js b/tests/baselines/reference/privateNameInTypeQuery.js new file mode 100644 index 0000000000000..4f8e7cb38e195 --- /dev/null +++ b/tests/baselines/reference/privateNameInTypeQuery.js @@ -0,0 +1,25 @@ +//// [privateNameInTypeQuery.ts] +class C { + #a = 'a'; + + constructor() { + const a: typeof this.#a = ''; // Ok + const b: typeof this.#a = 1; // Error + } +} + +const c = new C(); +const a: typeof c.#a = ''; + + +//// [privateNameInTypeQuery.js] +"use strict"; +class C { + #a = 'a'; + constructor() { + const a = ''; // Ok + const b = 1; // Error + } +} +const c = new C(); +const a = ''; diff --git a/tests/baselines/reference/privateNameInTypeQuery.symbols b/tests/baselines/reference/privateNameInTypeQuery.symbols new file mode 100644 index 0000000000000..1d32e5aab733a --- /dev/null +++ b/tests/baselines/reference/privateNameInTypeQuery.symbols @@ -0,0 +1,28 @@ +=== tests/cases/conformance/classes/members/privateNames/privateNameInTypeQuery.ts === +class C { +>C : Symbol(C, Decl(privateNameInTypeQuery.ts, 0, 0)) + + #a = 'a'; +>#a : Symbol(C.#a, Decl(privateNameInTypeQuery.ts, 0, 9)) + + constructor() { + const a: typeof this.#a = ''; // Ok +>a : Symbol(a, Decl(privateNameInTypeQuery.ts, 4, 13)) +>this.#a : Symbol(C.#a, Decl(privateNameInTypeQuery.ts, 0, 9)) +>this : Symbol(C, Decl(privateNameInTypeQuery.ts, 0, 0)) + + const b: typeof this.#a = 1; // Error +>b : Symbol(b, Decl(privateNameInTypeQuery.ts, 5, 13)) +>this.#a : Symbol(C.#a, Decl(privateNameInTypeQuery.ts, 0, 9)) +>this : Symbol(C, Decl(privateNameInTypeQuery.ts, 0, 0)) + } +} + +const c = new C(); +>c : Symbol(c, Decl(privateNameInTypeQuery.ts, 9, 5)) +>C : Symbol(C, Decl(privateNameInTypeQuery.ts, 0, 0)) + +const a: typeof c.#a = ''; +>a : Symbol(a, Decl(privateNameInTypeQuery.ts, 10, 5)) +>c : Symbol(c, Decl(privateNameInTypeQuery.ts, 9, 5)) + diff --git a/tests/baselines/reference/privateNameInTypeQuery.types b/tests/baselines/reference/privateNameInTypeQuery.types new file mode 100644 index 0000000000000..22e34ba59b07b --- /dev/null +++ b/tests/baselines/reference/privateNameInTypeQuery.types @@ -0,0 +1,34 @@ +=== tests/cases/conformance/classes/members/privateNames/privateNameInTypeQuery.ts === +class C { +>C : C + + #a = 'a'; +>#a : string +>'a' : "a" + + constructor() { + const a: typeof this.#a = ''; // Ok +>a : string +>this.#a : string +>this : this +>'' : "" + + const b: typeof this.#a = 1; // Error +>b : string +>this.#a : string +>this : this +>1 : 1 + } +} + +const c = new C(); +>c : C +>new C() : C +>C : typeof C + +const a: typeof c.#a = ''; +>a : any +>c.#a : any +>c : C +>'' : "" + diff --git a/tests/baselines/reference/privateNameLateSuper.js b/tests/baselines/reference/privateNameLateSuper.js new file mode 100644 index 0000000000000..ff8e33745552e --- /dev/null +++ b/tests/baselines/reference/privateNameLateSuper.js @@ -0,0 +1,23 @@ +//// [privateNameLateSuper.ts] +class B {} +class A extends B { + #x; + constructor() { + void 0; + super(); + } +} + + +//// [privateNameLateSuper.js] +var _A_x; +class B { +} +class A extends B { + constructor() { + void 0; + super(); + _A_x.set(this, void 0); + } +} +_A_x = new WeakMap(); diff --git a/tests/baselines/reference/privateNameLateSuper.symbols b/tests/baselines/reference/privateNameLateSuper.symbols new file mode 100644 index 0000000000000..918f853647452 --- /dev/null +++ b/tests/baselines/reference/privateNameLateSuper.symbols @@ -0,0 +1,18 @@ +=== tests/cases/conformance/classes/members/privateNames/privateNameLateSuper.ts === +class B {} +>B : Symbol(B, Decl(privateNameLateSuper.ts, 0, 0)) + +class A extends B { +>A : Symbol(A, Decl(privateNameLateSuper.ts, 0, 10)) +>B : Symbol(B, Decl(privateNameLateSuper.ts, 0, 0)) + + #x; +>#x : Symbol(A.#x, Decl(privateNameLateSuper.ts, 1, 19)) + + constructor() { + void 0; + super(); +>super : Symbol(B, Decl(privateNameLateSuper.ts, 0, 0)) + } +} + diff --git a/tests/baselines/reference/privateNameBadSuperUseDefineForClassFields.types b/tests/baselines/reference/privateNameLateSuper.types similarity index 63% rename from tests/baselines/reference/privateNameBadSuperUseDefineForClassFields.types rename to tests/baselines/reference/privateNameLateSuper.types index 55432691aece8..1a1dcbb026145 100644 --- a/tests/baselines/reference/privateNameBadSuperUseDefineForClassFields.types +++ b/tests/baselines/reference/privateNameLateSuper.types @@ -1,5 +1,5 @@ -=== tests/cases/conformance/classes/members/privateNames/privateNameBadSuperUseDefineForClassFields.ts === -class B {}; +=== tests/cases/conformance/classes/members/privateNames/privateNameLateSuper.ts === +class B {} >B : B class A extends B { @@ -10,7 +10,7 @@ class A extends B { >#x : any constructor() { - void 0; // Error: 'super' call must come first + void 0; >void 0 : undefined >0 : 0 diff --git a/tests/baselines/reference/privateNameLateSuperUseDefineForClassFields(target=es2022).js b/tests/baselines/reference/privateNameLateSuperUseDefineForClassFields(target=es2022).js new file mode 100644 index 0000000000000..1e298b5e52627 --- /dev/null +++ b/tests/baselines/reference/privateNameLateSuperUseDefineForClassFields(target=es2022).js @@ -0,0 +1,21 @@ +//// [privateNameLateSuperUseDefineForClassFields.ts] +class B {} +class A extends B { + #x; + constructor() { + void 0; + super(); + } +} + + +//// [privateNameLateSuperUseDefineForClassFields.js] +class B { +} +class A extends B { + #x; + constructor() { + void 0; + super(); + } +} diff --git a/tests/baselines/reference/privateNameLateSuperUseDefineForClassFields(target=es2022).symbols b/tests/baselines/reference/privateNameLateSuperUseDefineForClassFields(target=es2022).symbols new file mode 100644 index 0000000000000..d366575804423 --- /dev/null +++ b/tests/baselines/reference/privateNameLateSuperUseDefineForClassFields(target=es2022).symbols @@ -0,0 +1,18 @@ +=== tests/cases/conformance/classes/members/privateNames/privateNameLateSuperUseDefineForClassFields.ts === +class B {} +>B : Symbol(B, Decl(privateNameLateSuperUseDefineForClassFields.ts, 0, 0)) + +class A extends B { +>A : Symbol(A, Decl(privateNameLateSuperUseDefineForClassFields.ts, 0, 10)) +>B : Symbol(B, Decl(privateNameLateSuperUseDefineForClassFields.ts, 0, 0)) + + #x; +>#x : Symbol(A.#x, Decl(privateNameLateSuperUseDefineForClassFields.ts, 1, 19)) + + constructor() { + void 0; + super(); +>super : Symbol(B, Decl(privateNameLateSuperUseDefineForClassFields.ts, 0, 0)) + } +} + diff --git a/tests/baselines/reference/privateNameLateSuperUseDefineForClassFields(target=es2022).types b/tests/baselines/reference/privateNameLateSuperUseDefineForClassFields(target=es2022).types new file mode 100644 index 0000000000000..3616c3327854b --- /dev/null +++ b/tests/baselines/reference/privateNameLateSuperUseDefineForClassFields(target=es2022).types @@ -0,0 +1,22 @@ +=== tests/cases/conformance/classes/members/privateNames/privateNameLateSuperUseDefineForClassFields.ts === +class B {} +>B : B + +class A extends B { +>A : A +>B : B + + #x; +>#x : any + + constructor() { + void 0; +>void 0 : undefined +>0 : 0 + + super(); +>super() : void +>super : typeof B + } +} + diff --git a/tests/baselines/reference/privateNameLateSuperUseDefineForClassFields(target=esnext).js b/tests/baselines/reference/privateNameLateSuperUseDefineForClassFields(target=esnext).js new file mode 100644 index 0000000000000..1e298b5e52627 --- /dev/null +++ b/tests/baselines/reference/privateNameLateSuperUseDefineForClassFields(target=esnext).js @@ -0,0 +1,21 @@ +//// [privateNameLateSuperUseDefineForClassFields.ts] +class B {} +class A extends B { + #x; + constructor() { + void 0; + super(); + } +} + + +//// [privateNameLateSuperUseDefineForClassFields.js] +class B { +} +class A extends B { + #x; + constructor() { + void 0; + super(); + } +} diff --git a/tests/baselines/reference/privateNameLateSuperUseDefineForClassFields(target=esnext).symbols b/tests/baselines/reference/privateNameLateSuperUseDefineForClassFields(target=esnext).symbols new file mode 100644 index 0000000000000..d366575804423 --- /dev/null +++ b/tests/baselines/reference/privateNameLateSuperUseDefineForClassFields(target=esnext).symbols @@ -0,0 +1,18 @@ +=== tests/cases/conformance/classes/members/privateNames/privateNameLateSuperUseDefineForClassFields.ts === +class B {} +>B : Symbol(B, Decl(privateNameLateSuperUseDefineForClassFields.ts, 0, 0)) + +class A extends B { +>A : Symbol(A, Decl(privateNameLateSuperUseDefineForClassFields.ts, 0, 10)) +>B : Symbol(B, Decl(privateNameLateSuperUseDefineForClassFields.ts, 0, 0)) + + #x; +>#x : Symbol(A.#x, Decl(privateNameLateSuperUseDefineForClassFields.ts, 1, 19)) + + constructor() { + void 0; + super(); +>super : Symbol(B, Decl(privateNameLateSuperUseDefineForClassFields.ts, 0, 0)) + } +} + diff --git a/tests/baselines/reference/privateNameLateSuperUseDefineForClassFields(target=esnext).types b/tests/baselines/reference/privateNameLateSuperUseDefineForClassFields(target=esnext).types new file mode 100644 index 0000000000000..3616c3327854b --- /dev/null +++ b/tests/baselines/reference/privateNameLateSuperUseDefineForClassFields(target=esnext).types @@ -0,0 +1,22 @@ +=== tests/cases/conformance/classes/members/privateNames/privateNameLateSuperUseDefineForClassFields.ts === +class B {} +>B : B + +class A extends B { +>A : A +>B : B + + #x; +>#x : any + + constructor() { + void 0; +>void 0 : undefined +>0 : 0 + + super(); +>super() : void +>super : typeof B + } +} + diff --git a/tests/baselines/reference/privateNameStaticAndStaticInitializer(target=es2022).js b/tests/baselines/reference/privateNameStaticAndStaticInitializer(target=es2022).js new file mode 100644 index 0000000000000..ccd7fec0c66bc --- /dev/null +++ b/tests/baselines/reference/privateNameStaticAndStaticInitializer(target=es2022).js @@ -0,0 +1,13 @@ +//// [privateNameStaticAndStaticInitializer.ts] +class A { + static #foo = 1; + static #prop = 2; +} + + + +//// [privateNameStaticAndStaticInitializer.js] +class A { + static #foo = 1; + static #prop = 2; +} diff --git a/tests/baselines/reference/privateNameStaticAndStaticInitializer(target=es2022).symbols b/tests/baselines/reference/privateNameStaticAndStaticInitializer(target=es2022).symbols new file mode 100644 index 0000000000000..c0085bdc9b9c0 --- /dev/null +++ b/tests/baselines/reference/privateNameStaticAndStaticInitializer(target=es2022).symbols @@ -0,0 +1,12 @@ +=== tests/cases/conformance/classes/members/privateNames/privateNameStaticAndStaticInitializer.ts === +class A { +>A : Symbol(A, Decl(privateNameStaticAndStaticInitializer.ts, 0, 0)) + + static #foo = 1; +>#foo : Symbol(A.#foo, Decl(privateNameStaticAndStaticInitializer.ts, 0, 9)) + + static #prop = 2; +>#prop : Symbol(A.#prop, Decl(privateNameStaticAndStaticInitializer.ts, 1, 18)) +} + + diff --git a/tests/baselines/reference/privateNameStaticAndStaticInitializer(target=es2022).types b/tests/baselines/reference/privateNameStaticAndStaticInitializer(target=es2022).types new file mode 100644 index 0000000000000..956a0474bfb07 --- /dev/null +++ b/tests/baselines/reference/privateNameStaticAndStaticInitializer(target=es2022).types @@ -0,0 +1,14 @@ +=== tests/cases/conformance/classes/members/privateNames/privateNameStaticAndStaticInitializer.ts === +class A { +>A : A + + static #foo = 1; +>#foo : number +>1 : 1 + + static #prop = 2; +>#prop : number +>2 : 2 +} + + diff --git a/tests/baselines/reference/privateNameStaticAndStaticInitializer(target=esnext).errors.txt b/tests/baselines/reference/privateNameStaticAndStaticInitializer(target=esnext).errors.txt deleted file mode 100644 index ae43b5335e8f9..0000000000000 --- a/tests/baselines/reference/privateNameStaticAndStaticInitializer(target=esnext).errors.txt +++ /dev/null @@ -1,15 +0,0 @@ -tests/cases/conformance/classes/members/privateNames/privateNameStaticAndStaticInitializer.ts(2,17): error TS2805: Static fields with private names can't have initializers when the '--useDefineForClassFields' flag is not specified with a '--target' of 'esnext'. Consider adding the '--useDefineForClassFields' flag. -tests/cases/conformance/classes/members/privateNames/privateNameStaticAndStaticInitializer.ts(3,18): error TS2805: Static fields with private names can't have initializers when the '--useDefineForClassFields' flag is not specified with a '--target' of 'esnext'. Consider adding the '--useDefineForClassFields' flag. - - -==== tests/cases/conformance/classes/members/privateNames/privateNameStaticAndStaticInitializer.ts (2 errors) ==== - class A { - static #foo = 1; - ~ -!!! error TS2805: Static fields with private names can't have initializers when the '--useDefineForClassFields' flag is not specified with a '--target' of 'esnext'. Consider adding the '--useDefineForClassFields' flag. - static #prop = 2; - ~ -!!! error TS2805: Static fields with private names can't have initializers when the '--useDefineForClassFields' flag is not specified with a '--target' of 'esnext'. Consider adding the '--useDefineForClassFields' flag. - } - - \ No newline at end of file diff --git a/tests/baselines/reference/privateNameStaticAndStaticInitializer(target=esnext).js b/tests/baselines/reference/privateNameStaticAndStaticInitializer(target=esnext).js index 2e3d168e42004..ccd7fec0c66bc 100644 --- a/tests/baselines/reference/privateNameStaticAndStaticInitializer(target=esnext).js +++ b/tests/baselines/reference/privateNameStaticAndStaticInitializer(target=esnext).js @@ -8,8 +8,6 @@ class A { //// [privateNameStaticAndStaticInitializer.js] class A { - static #foo; - static #prop; + static #foo = 1; + static #prop = 2; } -A.#foo = 1; -A.#prop = 2; diff --git a/tests/baselines/reference/privateNameStaticFieldDestructuredBinding(target=es2022).js b/tests/baselines/reference/privateNameStaticFieldDestructuredBinding(target=es2022).js new file mode 100644 index 0000000000000..69b4fff34e2bf --- /dev/null +++ b/tests/baselines/reference/privateNameStaticFieldDestructuredBinding(target=es2022).js @@ -0,0 +1,50 @@ +//// [privateNameStaticFieldDestructuredBinding.ts] +class A { + static #field = 1; + otherClass = A; + testObject() { + return { x: 10, y: 6 }; + } + testArray() { + return [10, 11]; + } + constructor() { + let y: number; + ({ x: A.#field, y } = this.testObject()); + ([A.#field, y] = this.testArray()); + ({ a: A.#field, b: [A.#field] } = { a: 1, b: [2] }); + [A.#field, [A.#field]] = [1, [2]]; + ({ a: A.#field = 1, b: [A.#field = 1] } = { b: [] }); + [A.#field = 2] = []; + [this.otherClass.#field = 2] = []; + } + static test(_a: typeof A) { + [_a.#field] = [2]; + } +} + + +//// [privateNameStaticFieldDestructuredBinding.js] +class A { + constructor() { + this.otherClass = A; + let y; + ({ x: A.#field, y } = this.testObject()); + ([A.#field, y] = this.testArray()); + ({ a: A.#field, b: [A.#field] } = { a: 1, b: [2] }); + [A.#field, [A.#field]] = [1, [2]]; + ({ a: A.#field = 1, b: [A.#field = 1] } = { b: [] }); + [A.#field = 2] = []; + [this.otherClass.#field = 2] = []; + } + static #field = 1; + testObject() { + return { x: 10, y: 6 }; + } + testArray() { + return [10, 11]; + } + static test(_a) { + [_a.#field] = [2]; + } +} diff --git a/tests/baselines/reference/privateNameStaticFieldDestructuredBinding(target=es2022).symbols b/tests/baselines/reference/privateNameStaticFieldDestructuredBinding(target=es2022).symbols new file mode 100644 index 0000000000000..a539e6833531e --- /dev/null +++ b/tests/baselines/reference/privateNameStaticFieldDestructuredBinding(target=es2022).symbols @@ -0,0 +1,90 @@ +=== tests/cases/conformance/classes/members/privateNames/privateNameStaticFieldDestructuredBinding.ts === +class A { +>A : Symbol(A, Decl(privateNameStaticFieldDestructuredBinding.ts, 0, 0)) + + static #field = 1; +>#field : Symbol(A.#field, Decl(privateNameStaticFieldDestructuredBinding.ts, 0, 9)) + + otherClass = A; +>otherClass : Symbol(A.otherClass, Decl(privateNameStaticFieldDestructuredBinding.ts, 1, 22)) +>A : Symbol(A, Decl(privateNameStaticFieldDestructuredBinding.ts, 0, 0)) + + testObject() { +>testObject : Symbol(A.testObject, Decl(privateNameStaticFieldDestructuredBinding.ts, 2, 19)) + + return { x: 10, y: 6 }; +>x : Symbol(x, Decl(privateNameStaticFieldDestructuredBinding.ts, 4, 16)) +>y : Symbol(y, Decl(privateNameStaticFieldDestructuredBinding.ts, 4, 23)) + } + testArray() { +>testArray : Symbol(A.testArray, Decl(privateNameStaticFieldDestructuredBinding.ts, 5, 5)) + + return [10, 11]; + } + constructor() { + let y: number; +>y : Symbol(y, Decl(privateNameStaticFieldDestructuredBinding.ts, 10, 11)) + + ({ x: A.#field, y } = this.testObject()); +>x : Symbol(x, Decl(privateNameStaticFieldDestructuredBinding.ts, 11, 10)) +>A.#field : Symbol(A.#field, Decl(privateNameStaticFieldDestructuredBinding.ts, 0, 9)) +>A : Symbol(A, Decl(privateNameStaticFieldDestructuredBinding.ts, 0, 0)) +>y : Symbol(y, Decl(privateNameStaticFieldDestructuredBinding.ts, 11, 23)) +>this.testObject : Symbol(A.testObject, Decl(privateNameStaticFieldDestructuredBinding.ts, 2, 19)) +>this : Symbol(A, Decl(privateNameStaticFieldDestructuredBinding.ts, 0, 0)) +>testObject : Symbol(A.testObject, Decl(privateNameStaticFieldDestructuredBinding.ts, 2, 19)) + + ([A.#field, y] = this.testArray()); +>A.#field : Symbol(A.#field, Decl(privateNameStaticFieldDestructuredBinding.ts, 0, 9)) +>A : Symbol(A, Decl(privateNameStaticFieldDestructuredBinding.ts, 0, 0)) +>y : Symbol(y, Decl(privateNameStaticFieldDestructuredBinding.ts, 10, 11)) +>this.testArray : Symbol(A.testArray, Decl(privateNameStaticFieldDestructuredBinding.ts, 5, 5)) +>this : Symbol(A, Decl(privateNameStaticFieldDestructuredBinding.ts, 0, 0)) +>testArray : Symbol(A.testArray, Decl(privateNameStaticFieldDestructuredBinding.ts, 5, 5)) + + ({ a: A.#field, b: [A.#field] } = { a: 1, b: [2] }); +>a : Symbol(a, Decl(privateNameStaticFieldDestructuredBinding.ts, 13, 10)) +>A.#field : Symbol(A.#field, Decl(privateNameStaticFieldDestructuredBinding.ts, 0, 9)) +>A : Symbol(A, Decl(privateNameStaticFieldDestructuredBinding.ts, 0, 0)) +>b : Symbol(b, Decl(privateNameStaticFieldDestructuredBinding.ts, 13, 23)) +>A.#field : Symbol(A.#field, Decl(privateNameStaticFieldDestructuredBinding.ts, 0, 9)) +>A : Symbol(A, Decl(privateNameStaticFieldDestructuredBinding.ts, 0, 0)) +>a : Symbol(a, Decl(privateNameStaticFieldDestructuredBinding.ts, 13, 43)) +>b : Symbol(b, Decl(privateNameStaticFieldDestructuredBinding.ts, 13, 49)) + + [A.#field, [A.#field]] = [1, [2]]; +>A.#field : Symbol(A.#field, Decl(privateNameStaticFieldDestructuredBinding.ts, 0, 9)) +>A : Symbol(A, Decl(privateNameStaticFieldDestructuredBinding.ts, 0, 0)) +>A.#field : Symbol(A.#field, Decl(privateNameStaticFieldDestructuredBinding.ts, 0, 9)) +>A : Symbol(A, Decl(privateNameStaticFieldDestructuredBinding.ts, 0, 0)) + + ({ a: A.#field = 1, b: [A.#field = 1] } = { b: [] }); +>a : Symbol(a, Decl(privateNameStaticFieldDestructuredBinding.ts, 15, 10)) +>A.#field : Symbol(A.#field, Decl(privateNameStaticFieldDestructuredBinding.ts, 0, 9)) +>A : Symbol(A, Decl(privateNameStaticFieldDestructuredBinding.ts, 0, 0)) +>b : Symbol(b, Decl(privateNameStaticFieldDestructuredBinding.ts, 15, 27)) +>A.#field : Symbol(A.#field, Decl(privateNameStaticFieldDestructuredBinding.ts, 0, 9)) +>A : Symbol(A, Decl(privateNameStaticFieldDestructuredBinding.ts, 0, 0)) +>b : Symbol(b, Decl(privateNameStaticFieldDestructuredBinding.ts, 15, 51)) + + [A.#field = 2] = []; +>A.#field : Symbol(A.#field, Decl(privateNameStaticFieldDestructuredBinding.ts, 0, 9)) +>A : Symbol(A, Decl(privateNameStaticFieldDestructuredBinding.ts, 0, 0)) + + [this.otherClass.#field = 2] = []; +>this.otherClass.#field : Symbol(A.#field, Decl(privateNameStaticFieldDestructuredBinding.ts, 0, 9)) +>this.otherClass : Symbol(A.otherClass, Decl(privateNameStaticFieldDestructuredBinding.ts, 1, 22)) +>this : Symbol(A, Decl(privateNameStaticFieldDestructuredBinding.ts, 0, 0)) +>otherClass : Symbol(A.otherClass, Decl(privateNameStaticFieldDestructuredBinding.ts, 1, 22)) + } + static test(_a: typeof A) { +>test : Symbol(A.test, Decl(privateNameStaticFieldDestructuredBinding.ts, 18, 5)) +>_a : Symbol(_a, Decl(privateNameStaticFieldDestructuredBinding.ts, 19, 16)) +>A : Symbol(A, Decl(privateNameStaticFieldDestructuredBinding.ts, 0, 0)) + + [_a.#field] = [2]; +>_a.#field : Symbol(A.#field, Decl(privateNameStaticFieldDestructuredBinding.ts, 0, 9)) +>_a : Symbol(_a, Decl(privateNameStaticFieldDestructuredBinding.ts, 19, 16)) + } +} + diff --git a/tests/baselines/reference/privateNameStaticFieldDestructuredBinding(target=es2022).types b/tests/baselines/reference/privateNameStaticFieldDestructuredBinding(target=es2022).types new file mode 100644 index 0000000000000..ef8a216bdb295 --- /dev/null +++ b/tests/baselines/reference/privateNameStaticFieldDestructuredBinding(target=es2022).types @@ -0,0 +1,144 @@ +=== tests/cases/conformance/classes/members/privateNames/privateNameStaticFieldDestructuredBinding.ts === +class A { +>A : A + + static #field = 1; +>#field : number +>1 : 1 + + otherClass = A; +>otherClass : typeof A +>A : typeof A + + testObject() { +>testObject : () => { x: number; y: number; } + + return { x: 10, y: 6 }; +>{ x: 10, y: 6 } : { x: number; y: number; } +>x : number +>10 : 10 +>y : number +>6 : 6 + } + testArray() { +>testArray : () => number[] + + return [10, 11]; +>[10, 11] : number[] +>10 : 10 +>11 : 11 + } + constructor() { + let y: number; +>y : number + + ({ x: A.#field, y } = this.testObject()); +>({ x: A.#field, y } = this.testObject()) : { x: number; y: number; } +>{ x: A.#field, y } = this.testObject() : { x: number; y: number; } +>{ x: A.#field, y } : { x: number; y: number; } +>x : number +>A.#field : number +>A : typeof A +>y : number +>this.testObject() : { x: number; y: number; } +>this.testObject : () => { x: number; y: number; } +>this : this +>testObject : () => { x: number; y: number; } + + ([A.#field, y] = this.testArray()); +>([A.#field, y] = this.testArray()) : number[] +>[A.#field, y] = this.testArray() : number[] +>[A.#field, y] : [number, number] +>A.#field : number +>A : typeof A +>y : number +>this.testArray() : number[] +>this.testArray : () => number[] +>this : this +>testArray : () => number[] + + ({ a: A.#field, b: [A.#field] } = { a: 1, b: [2] }); +>({ a: A.#field, b: [A.#field] } = { a: 1, b: [2] }) : { a: number; b: [number]; } +>{ a: A.#field, b: [A.#field] } = { a: 1, b: [2] } : { a: number; b: [number]; } +>{ a: A.#field, b: [A.#field] } : { a: number; b: [number]; } +>a : number +>A.#field : number +>A : typeof A +>b : [number] +>[A.#field] : [number] +>A.#field : number +>A : typeof A +>{ a: 1, b: [2] } : { a: number; b: [number]; } +>a : number +>1 : 1 +>b : [number] +>[2] : [number] +>2 : 2 + + [A.#field, [A.#field]] = [1, [2]]; +>[A.#field, [A.#field]] = [1, [2]] : [number, [number]] +>[A.#field, [A.#field]] : [number, [number]] +>A.#field : number +>A : typeof A +>[A.#field] : [number] +>A.#field : number +>A : typeof A +>[1, [2]] : [number, [number]] +>1 : 1 +>[2] : [number] +>2 : 2 + + ({ a: A.#field = 1, b: [A.#field = 1] } = { b: [] }); +>({ a: A.#field = 1, b: [A.#field = 1] } = { b: [] }) : { b: []; a?: number; } +>{ a: A.#field = 1, b: [A.#field = 1] } = { b: [] } : { b: []; a?: number; } +>{ a: A.#field = 1, b: [A.#field = 1] } : { a?: number; b: [number]; } +>a : number +>A.#field = 1 : 1 +>A.#field : number +>A : typeof A +>1 : 1 +>b : [number] +>[A.#field = 1] : [number] +>A.#field = 1 : 1 +>A.#field : number +>A : typeof A +>1 : 1 +>{ b: [] } : { b: []; a?: number; } +>b : [] +>[] : [] + + [A.#field = 2] = []; +>[A.#field = 2] = [] : [] +>[A.#field = 2] : [number] +>A.#field = 2 : 2 +>A.#field : number +>A : typeof A +>2 : 2 +>[] : [] + + [this.otherClass.#field = 2] = []; +>[this.otherClass.#field = 2] = [] : [] +>[this.otherClass.#field = 2] : [number] +>this.otherClass.#field = 2 : 2 +>this.otherClass.#field : number +>this.otherClass : typeof A +>this : this +>otherClass : typeof A +>2 : 2 +>[] : [] + } + static test(_a: typeof A) { +>test : (_a: typeof A) => void +>_a : typeof A +>A : typeof A + + [_a.#field] = [2]; +>[_a.#field] = [2] : [number] +>[_a.#field] : [number] +>_a.#field : number +>_a : typeof A +>[2] : [number] +>2 : 2 + } +} + diff --git a/tests/baselines/reference/privateNameStaticFieldDestructuredBinding(target=esnext).errors.txt b/tests/baselines/reference/privateNameStaticFieldDestructuredBinding(target=esnext).errors.txt deleted file mode 100644 index f0932d7ba51aa..0000000000000 --- a/tests/baselines/reference/privateNameStaticFieldDestructuredBinding(target=esnext).errors.txt +++ /dev/null @@ -1,30 +0,0 @@ -tests/cases/conformance/classes/members/privateNames/privateNameStaticFieldDestructuredBinding.ts(2,21): error TS2805: Static fields with private names can't have initializers when the '--useDefineForClassFields' flag is not specified with a '--target' of 'esnext'. Consider adding the '--useDefineForClassFields' flag. - - -==== tests/cases/conformance/classes/members/privateNames/privateNameStaticFieldDestructuredBinding.ts (1 errors) ==== - class A { - static #field = 1; - ~ -!!! error TS2805: Static fields with private names can't have initializers when the '--useDefineForClassFields' flag is not specified with a '--target' of 'esnext'. Consider adding the '--useDefineForClassFields' flag. - otherClass = A; - testObject() { - return { x: 10, y: 6 }; - } - testArray() { - return [10, 11]; - } - constructor() { - let y: number; - ({ x: A.#field, y } = this.testObject()); - ([A.#field, y] = this.testArray()); - ({ a: A.#field, b: [A.#field] } = { a: 1, b: [2] }); - [A.#field, [A.#field]] = [1, [2]]; - ({ a: A.#field = 1, b: [A.#field = 1] } = { b: [] }); - [A.#field = 2] = []; - [this.otherClass.#field = 2] = []; - } - static test(_a: typeof A) { - [_a.#field] = [2]; - } - } - \ No newline at end of file diff --git a/tests/baselines/reference/privateNameStaticFieldDestructuredBinding(target=esnext).js b/tests/baselines/reference/privateNameStaticFieldDestructuredBinding(target=esnext).js index bbaf5cd7601ab..69b4fff34e2bf 100644 --- a/tests/baselines/reference/privateNameStaticFieldDestructuredBinding(target=esnext).js +++ b/tests/baselines/reference/privateNameStaticFieldDestructuredBinding(target=esnext).js @@ -37,7 +37,7 @@ class A { [A.#field = 2] = []; [this.otherClass.#field = 2] = []; } - static #field; + static #field = 1; testObject() { return { x: 10, y: 6 }; } @@ -48,4 +48,3 @@ class A { [_a.#field] = [2]; } } -A.#field = 1; diff --git a/tests/baselines/reference/privateNameStaticFieldInitializer(target=es2022).js b/tests/baselines/reference/privateNameStaticFieldInitializer(target=es2022).js new file mode 100644 index 0000000000000..f52e29bf027e5 --- /dev/null +++ b/tests/baselines/reference/privateNameStaticFieldInitializer(target=es2022).js @@ -0,0 +1,12 @@ +//// [privateNameStaticFieldInitializer.ts] +class A { + static #field = 10; + static #uninitialized; +} + + +//// [privateNameStaticFieldInitializer.js] +class A { + static #field = 10; + static #uninitialized; +} diff --git a/tests/baselines/reference/privateNameStaticFieldInitializer(target=es2022).symbols b/tests/baselines/reference/privateNameStaticFieldInitializer(target=es2022).symbols new file mode 100644 index 0000000000000..d503ebe5086a4 --- /dev/null +++ b/tests/baselines/reference/privateNameStaticFieldInitializer(target=es2022).symbols @@ -0,0 +1,11 @@ +=== tests/cases/conformance/classes/members/privateNames/privateNameStaticFieldInitializer.ts === +class A { +>A : Symbol(A, Decl(privateNameStaticFieldInitializer.ts, 0, 0)) + + static #field = 10; +>#field : Symbol(A.#field, Decl(privateNameStaticFieldInitializer.ts, 0, 9)) + + static #uninitialized; +>#uninitialized : Symbol(A.#uninitialized, Decl(privateNameStaticFieldInitializer.ts, 1, 23)) +} + diff --git a/tests/baselines/reference/privateNameStaticFieldInitializer(target=es2022).types b/tests/baselines/reference/privateNameStaticFieldInitializer(target=es2022).types new file mode 100644 index 0000000000000..d50c9a2533f0c --- /dev/null +++ b/tests/baselines/reference/privateNameStaticFieldInitializer(target=es2022).types @@ -0,0 +1,12 @@ +=== tests/cases/conformance/classes/members/privateNames/privateNameStaticFieldInitializer.ts === +class A { +>A : A + + static #field = 10; +>#field : number +>10 : 10 + + static #uninitialized; +>#uninitialized : any +} + diff --git a/tests/baselines/reference/privateNameStaticFieldInitializer(target=esnext).errors.txt b/tests/baselines/reference/privateNameStaticFieldInitializer(target=esnext).errors.txt deleted file mode 100644 index 13dc546e2dd96..0000000000000 --- a/tests/baselines/reference/privateNameStaticFieldInitializer(target=esnext).errors.txt +++ /dev/null @@ -1,11 +0,0 @@ -tests/cases/conformance/classes/members/privateNames/privateNameStaticFieldInitializer.ts(2,21): error TS2805: Static fields with private names can't have initializers when the '--useDefineForClassFields' flag is not specified with a '--target' of 'esnext'. Consider adding the '--useDefineForClassFields' flag. - - -==== tests/cases/conformance/classes/members/privateNames/privateNameStaticFieldInitializer.ts (1 errors) ==== - class A { - static #field = 10; - ~~ -!!! error TS2805: Static fields with private names can't have initializers when the '--useDefineForClassFields' flag is not specified with a '--target' of 'esnext'. Consider adding the '--useDefineForClassFields' flag. - static #uninitialized; - } - \ No newline at end of file diff --git a/tests/baselines/reference/privateNameStaticFieldInitializer(target=esnext).js b/tests/baselines/reference/privateNameStaticFieldInitializer(target=esnext).js index fddf56e1754c5..f52e29bf027e5 100644 --- a/tests/baselines/reference/privateNameStaticFieldInitializer(target=esnext).js +++ b/tests/baselines/reference/privateNameStaticFieldInitializer(target=esnext).js @@ -7,7 +7,6 @@ class A { //// [privateNameStaticFieldInitializer.js] class A { - static #field; + static #field = 10; static #uninitialized; } -A.#field = 10; diff --git a/tests/baselines/reference/privateNameStaticFieldNoInitializer(target=es2015).js b/tests/baselines/reference/privateNameStaticFieldNoInitializer(target=es2015).js index a2caf1c9fd25f..a53922b5e74a4 100644 --- a/tests/baselines/reference/privateNameStaticFieldNoInitializer(target=es2015).js +++ b/tests/baselines/reference/privateNameStaticFieldNoInitializer(target=es2015).js @@ -5,7 +5,8 @@ const C = class { class C2 { static #x; -} +} + //// [privateNameStaticFieldNoInitializer.js] var _a, _C_x, _b, _C2_x; diff --git a/tests/baselines/reference/privateNameStaticFieldNoInitializer(target=es2015).symbols b/tests/baselines/reference/privateNameStaticFieldNoInitializer(target=es2015).symbols index 282fbce172a80..eaca354548f9c 100644 --- a/tests/baselines/reference/privateNameStaticFieldNoInitializer(target=es2015).symbols +++ b/tests/baselines/reference/privateNameStaticFieldNoInitializer(target=es2015).symbols @@ -12,3 +12,4 @@ class C2 { static #x; >#x : Symbol(C2.#x, Decl(privateNameStaticFieldNoInitializer.ts, 4, 10)) } + diff --git a/tests/baselines/reference/privateNameStaticFieldNoInitializer(target=es2015).types b/tests/baselines/reference/privateNameStaticFieldNoInitializer(target=es2015).types index a9ecdc42725e9..0d3ae06d7076a 100644 --- a/tests/baselines/reference/privateNameStaticFieldNoInitializer(target=es2015).types +++ b/tests/baselines/reference/privateNameStaticFieldNoInitializer(target=es2015).types @@ -13,3 +13,4 @@ class C2 { static #x; >#x : any } + diff --git a/tests/baselines/reference/privateNameStaticFieldNoInitializer(target=es2022).js b/tests/baselines/reference/privateNameStaticFieldNoInitializer(target=es2022).js new file mode 100644 index 0000000000000..f9318e8ae349e --- /dev/null +++ b/tests/baselines/reference/privateNameStaticFieldNoInitializer(target=es2022).js @@ -0,0 +1,17 @@ +//// [privateNameStaticFieldNoInitializer.ts] +const C = class { + static #x; +} + +class C2 { + static #x; +} + + +//// [privateNameStaticFieldNoInitializer.js] +const C = class { + static #x; +}; +class C2 { + static #x; +} diff --git a/tests/baselines/reference/privateNameStaticFieldNoInitializer(target=es2022).symbols b/tests/baselines/reference/privateNameStaticFieldNoInitializer(target=es2022).symbols new file mode 100644 index 0000000000000..eaca354548f9c --- /dev/null +++ b/tests/baselines/reference/privateNameStaticFieldNoInitializer(target=es2022).symbols @@ -0,0 +1,15 @@ +=== tests/cases/conformance/classes/members/privateNames/privateNameStaticFieldNoInitializer.ts === +const C = class { +>C : Symbol(C, Decl(privateNameStaticFieldNoInitializer.ts, 0, 5)) + + static #x; +>#x : Symbol(C.#x, Decl(privateNameStaticFieldNoInitializer.ts, 0, 17)) +} + +class C2 { +>C2 : Symbol(C2, Decl(privateNameStaticFieldNoInitializer.ts, 2, 1)) + + static #x; +>#x : Symbol(C2.#x, Decl(privateNameStaticFieldNoInitializer.ts, 4, 10)) +} + diff --git a/tests/baselines/reference/privateNameStaticFieldNoInitializer(target=es2022).types b/tests/baselines/reference/privateNameStaticFieldNoInitializer(target=es2022).types new file mode 100644 index 0000000000000..0d3ae06d7076a --- /dev/null +++ b/tests/baselines/reference/privateNameStaticFieldNoInitializer(target=es2022).types @@ -0,0 +1,16 @@ +=== tests/cases/conformance/classes/members/privateNames/privateNameStaticFieldNoInitializer.ts === +const C = class { +>C : typeof C +>class { static #x;} : typeof C + + static #x; +>#x : any +} + +class C2 { +>C2 : C2 + + static #x; +>#x : any +} + diff --git a/tests/baselines/reference/privateNameStaticFieldNoInitializer(target=esnext).js b/tests/baselines/reference/privateNameStaticFieldNoInitializer(target=esnext).js index df9759b3ea594..f9318e8ae349e 100644 --- a/tests/baselines/reference/privateNameStaticFieldNoInitializer(target=esnext).js +++ b/tests/baselines/reference/privateNameStaticFieldNoInitializer(target=esnext).js @@ -5,7 +5,8 @@ const C = class { class C2 { static #x; -} +} + //// [privateNameStaticFieldNoInitializer.js] const C = class { diff --git a/tests/baselines/reference/privateNameStaticFieldNoInitializer(target=esnext).symbols b/tests/baselines/reference/privateNameStaticFieldNoInitializer(target=esnext).symbols index 282fbce172a80..eaca354548f9c 100644 --- a/tests/baselines/reference/privateNameStaticFieldNoInitializer(target=esnext).symbols +++ b/tests/baselines/reference/privateNameStaticFieldNoInitializer(target=esnext).symbols @@ -12,3 +12,4 @@ class C2 { static #x; >#x : Symbol(C2.#x, Decl(privateNameStaticFieldNoInitializer.ts, 4, 10)) } + diff --git a/tests/baselines/reference/privateNameStaticFieldNoInitializer(target=esnext).types b/tests/baselines/reference/privateNameStaticFieldNoInitializer(target=esnext).types index a9ecdc42725e9..0d3ae06d7076a 100644 --- a/tests/baselines/reference/privateNameStaticFieldNoInitializer(target=esnext).types +++ b/tests/baselines/reference/privateNameStaticFieldNoInitializer(target=esnext).types @@ -13,3 +13,4 @@ class C2 { static #x; >#x : any } + diff --git a/tests/baselines/reference/privateNameStaticsAndStaticMethods.js b/tests/baselines/reference/privateNameStaticsAndStaticMethods(target=es2022).js similarity index 94% rename from tests/baselines/reference/privateNameStaticsAndStaticMethods.js rename to tests/baselines/reference/privateNameStaticsAndStaticMethods(target=es2022).js index a2f814b593467..971fb06aeb4e0 100644 --- a/tests/baselines/reference/privateNameStaticsAndStaticMethods.js +++ b/tests/baselines/reference/privateNameStaticsAndStaticMethods(target=es2022).js @@ -10,7 +10,7 @@ class A { return this.#_quux; } static set #quux (val: number) { - this.#_quux = val; + this.#_quux = val; } constructor () { A.#foo(30); diff --git a/tests/baselines/reference/privateNameStaticsAndStaticMethods.symbols b/tests/baselines/reference/privateNameStaticsAndStaticMethods(target=es2022).symbols similarity index 96% rename from tests/baselines/reference/privateNameStaticsAndStaticMethods.symbols rename to tests/baselines/reference/privateNameStaticsAndStaticMethods(target=es2022).symbols index b12f3fa4c464d..7ec73424ea701 100644 --- a/tests/baselines/reference/privateNameStaticsAndStaticMethods.symbols +++ b/tests/baselines/reference/privateNameStaticsAndStaticMethods(target=es2022).symbols @@ -30,7 +30,7 @@ class A { >#quux : Symbol(A.#quux, Decl(privateNameStaticsAndStaticMethods.ts, 6, 26), Decl(privateNameStaticsAndStaticMethods.ts, 9, 5)) >val : Symbol(val, Decl(privateNameStaticsAndStaticMethods.ts, 10, 22)) - this.#_quux = val; + this.#_quux = val; >this.#_quux : Symbol(A.#_quux, Decl(privateNameStaticsAndStaticMethods.ts, 5, 5)) >this : Symbol(A, Decl(privateNameStaticsAndStaticMethods.ts, 0, 0)) >val : Symbol(val, Decl(privateNameStaticsAndStaticMethods.ts, 10, 22)) diff --git a/tests/baselines/reference/privateNameStaticsAndStaticMethods.types b/tests/baselines/reference/privateNameStaticsAndStaticMethods(target=es2022).types similarity index 92% rename from tests/baselines/reference/privateNameStaticsAndStaticMethods.types rename to tests/baselines/reference/privateNameStaticsAndStaticMethods(target=es2022).types index c9e37e68f5134..3ed79a37e11fc 100644 --- a/tests/baselines/reference/privateNameStaticsAndStaticMethods.types +++ b/tests/baselines/reference/privateNameStaticsAndStaticMethods(target=es2022).types @@ -31,7 +31,7 @@ class A { >#quux : number >val : number - this.#_quux = val; + this.#_quux = val; >this.#_quux = val : number >this.#_quux : number >this : typeof A diff --git a/tests/baselines/reference/privateNameStaticsAndStaticMethods(target=esnext).js b/tests/baselines/reference/privateNameStaticsAndStaticMethods(target=esnext).js new file mode 100644 index 0000000000000..971fb06aeb4e0 --- /dev/null +++ b/tests/baselines/reference/privateNameStaticsAndStaticMethods(target=esnext).js @@ -0,0 +1,62 @@ +//// [privateNameStaticsAndStaticMethods.ts] +class A { + static #foo(a: number) {} + static async #bar(a: number) {} + static async *#baz(a: number) { + return 3; + } + static #_quux: number; + static get #quux (): number { + return this.#_quux; + } + static set #quux (val: number) { + this.#_quux = val; + } + constructor () { + A.#foo(30); + A.#bar(30); + A.#bar(30); + A.#quux = A.#quux + 1; + A.#quux++; + } +} + +class B extends A { + static #foo(a: string) {} + constructor () { + super(); + B.#foo("str"); + } +} + + +//// [privateNameStaticsAndStaticMethods.js] +"use strict"; +class A { + constructor() { + A.#foo(30); + A.#bar(30); + A.#bar(30); + A.#quux = A.#quux + 1; + A.#quux++; + } + static #foo(a) { } + static async #bar(a) { } + static async *#baz(a) { + return 3; + } + static #_quux; + static get #quux() { + return this.#_quux; + } + static set #quux(val) { + this.#_quux = val; + } +} +class B extends A { + static #foo(a) { } + constructor() { + super(); + B.#foo("str"); + } +} diff --git a/tests/baselines/reference/privateNameStaticsAndStaticMethods(target=esnext).symbols b/tests/baselines/reference/privateNameStaticsAndStaticMethods(target=esnext).symbols new file mode 100644 index 0000000000000..7ec73424ea701 --- /dev/null +++ b/tests/baselines/reference/privateNameStaticsAndStaticMethods(target=esnext).symbols @@ -0,0 +1,80 @@ +=== tests/cases/conformance/classes/members/privateNames/privateNameStaticsAndStaticMethods.ts === +class A { +>A : Symbol(A, Decl(privateNameStaticsAndStaticMethods.ts, 0, 0)) + + static #foo(a: number) {} +>#foo : Symbol(A.#foo, Decl(privateNameStaticsAndStaticMethods.ts, 0, 9)) +>a : Symbol(a, Decl(privateNameStaticsAndStaticMethods.ts, 1, 16)) + + static async #bar(a: number) {} +>#bar : Symbol(A.#bar, Decl(privateNameStaticsAndStaticMethods.ts, 1, 29)) +>a : Symbol(a, Decl(privateNameStaticsAndStaticMethods.ts, 2, 22)) + + static async *#baz(a: number) { +>#baz : Symbol(A.#baz, Decl(privateNameStaticsAndStaticMethods.ts, 2, 35)) +>a : Symbol(a, Decl(privateNameStaticsAndStaticMethods.ts, 3, 23)) + + return 3; + } + static #_quux: number; +>#_quux : Symbol(A.#_quux, Decl(privateNameStaticsAndStaticMethods.ts, 5, 5)) + + static get #quux (): number { +>#quux : Symbol(A.#quux, Decl(privateNameStaticsAndStaticMethods.ts, 6, 26), Decl(privateNameStaticsAndStaticMethods.ts, 9, 5)) + + return this.#_quux; +>this.#_quux : Symbol(A.#_quux, Decl(privateNameStaticsAndStaticMethods.ts, 5, 5)) +>this : Symbol(A, Decl(privateNameStaticsAndStaticMethods.ts, 0, 0)) + } + static set #quux (val: number) { +>#quux : Symbol(A.#quux, Decl(privateNameStaticsAndStaticMethods.ts, 6, 26), Decl(privateNameStaticsAndStaticMethods.ts, 9, 5)) +>val : Symbol(val, Decl(privateNameStaticsAndStaticMethods.ts, 10, 22)) + + this.#_quux = val; +>this.#_quux : Symbol(A.#_quux, Decl(privateNameStaticsAndStaticMethods.ts, 5, 5)) +>this : Symbol(A, Decl(privateNameStaticsAndStaticMethods.ts, 0, 0)) +>val : Symbol(val, Decl(privateNameStaticsAndStaticMethods.ts, 10, 22)) + } + constructor () { + A.#foo(30); +>A.#foo : Symbol(A.#foo, Decl(privateNameStaticsAndStaticMethods.ts, 0, 9)) +>A : Symbol(A, Decl(privateNameStaticsAndStaticMethods.ts, 0, 0)) + + A.#bar(30); +>A.#bar : Symbol(A.#bar, Decl(privateNameStaticsAndStaticMethods.ts, 1, 29)) +>A : Symbol(A, Decl(privateNameStaticsAndStaticMethods.ts, 0, 0)) + + A.#bar(30); +>A.#bar : Symbol(A.#bar, Decl(privateNameStaticsAndStaticMethods.ts, 1, 29)) +>A : Symbol(A, Decl(privateNameStaticsAndStaticMethods.ts, 0, 0)) + + A.#quux = A.#quux + 1; +>A.#quux : Symbol(A.#quux, Decl(privateNameStaticsAndStaticMethods.ts, 6, 26), Decl(privateNameStaticsAndStaticMethods.ts, 9, 5)) +>A : Symbol(A, Decl(privateNameStaticsAndStaticMethods.ts, 0, 0)) +>A.#quux : Symbol(A.#quux, Decl(privateNameStaticsAndStaticMethods.ts, 6, 26), Decl(privateNameStaticsAndStaticMethods.ts, 9, 5)) +>A : Symbol(A, Decl(privateNameStaticsAndStaticMethods.ts, 0, 0)) + + A.#quux++; +>A.#quux : Symbol(A.#quux, Decl(privateNameStaticsAndStaticMethods.ts, 6, 26), Decl(privateNameStaticsAndStaticMethods.ts, 9, 5)) +>A : Symbol(A, Decl(privateNameStaticsAndStaticMethods.ts, 0, 0)) + } +} + +class B extends A { +>B : Symbol(B, Decl(privateNameStaticsAndStaticMethods.ts, 20, 1)) +>A : Symbol(A, Decl(privateNameStaticsAndStaticMethods.ts, 0, 0)) + + static #foo(a: string) {} +>#foo : Symbol(B.#foo, Decl(privateNameStaticsAndStaticMethods.ts, 22, 19)) +>a : Symbol(a, Decl(privateNameStaticsAndStaticMethods.ts, 23, 16)) + + constructor () { + super(); +>super : Symbol(A, Decl(privateNameStaticsAndStaticMethods.ts, 0, 0)) + + B.#foo("str"); +>B.#foo : Symbol(B.#foo, Decl(privateNameStaticsAndStaticMethods.ts, 22, 19)) +>B : Symbol(B, Decl(privateNameStaticsAndStaticMethods.ts, 20, 1)) + } +} + diff --git a/tests/baselines/reference/privateNameStaticsAndStaticMethods(target=esnext).types b/tests/baselines/reference/privateNameStaticsAndStaticMethods(target=esnext).types new file mode 100644 index 0000000000000..3ed79a37e11fc --- /dev/null +++ b/tests/baselines/reference/privateNameStaticsAndStaticMethods(target=esnext).types @@ -0,0 +1,95 @@ +=== tests/cases/conformance/classes/members/privateNames/privateNameStaticsAndStaticMethods.ts === +class A { +>A : A + + static #foo(a: number) {} +>#foo : (a: number) => void +>a : number + + static async #bar(a: number) {} +>#bar : (a: number) => Promise +>a : number + + static async *#baz(a: number) { +>#baz : (a: number) => AsyncGenerator +>a : number + + return 3; +>3 : 3 + } + static #_quux: number; +>#_quux : number + + static get #quux (): number { +>#quux : number + + return this.#_quux; +>this.#_quux : number +>this : typeof A + } + static set #quux (val: number) { +>#quux : number +>val : number + + this.#_quux = val; +>this.#_quux = val : number +>this.#_quux : number +>this : typeof A +>val : number + } + constructor () { + A.#foo(30); +>A.#foo(30) : void +>A.#foo : (a: number) => void +>A : typeof A +>30 : 30 + + A.#bar(30); +>A.#bar(30) : Promise +>A.#bar : (a: number) => Promise +>A : typeof A +>30 : 30 + + A.#bar(30); +>A.#bar(30) : Promise +>A.#bar : (a: number) => Promise +>A : typeof A +>30 : 30 + + A.#quux = A.#quux + 1; +>A.#quux = A.#quux + 1 : number +>A.#quux : number +>A : typeof A +>A.#quux + 1 : number +>A.#quux : number +>A : typeof A +>1 : 1 + + A.#quux++; +>A.#quux++ : number +>A.#quux : number +>A : typeof A + } +} + +class B extends A { +>B : B +>A : A + + static #foo(a: string) {} +>#foo : (a: string) => void +>a : string + + constructor () { + super(); +>super() : void +>super : typeof A + + B.#foo("str"); +>B.#foo("str") : void +>B.#foo : (a: string) => void +>B : typeof B +>"str" : "str" + } +} + diff --git a/tests/baselines/reference/privateNameErrorsOnNotUseDefineForClassFieldsInEsNext(target=es2020).js b/tests/baselines/reference/privateNameWhenNotUseDefineForClassFieldsInEsNext(target=es2020).js similarity index 55% rename from tests/baselines/reference/privateNameErrorsOnNotUseDefineForClassFieldsInEsNext(target=es2020).js rename to tests/baselines/reference/privateNameWhenNotUseDefineForClassFieldsInEsNext(target=es2020).js index 6b91145aa061e..656f556ed4859 100644 --- a/tests/baselines/reference/privateNameErrorsOnNotUseDefineForClassFieldsInEsNext(target=es2020).js +++ b/tests/baselines/reference/privateNameWhenNotUseDefineForClassFieldsInEsNext(target=es2020).js @@ -1,82 +1,82 @@ -//// [privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts] -class TestWithErrors { - #prop = 0 - static dd = new TestWithErrors().#prop; // Err +//// [privateNameWhenNotUseDefineForClassFieldsInEsNext.ts] +class TestWithStatics { + #prop = 0 + static dd = new TestWithStatics().#prop; // OK static ["X_ z_ zz"] = class Inner { - #foo = 10 + #foo = 10 m() { - new TestWithErrors().#prop // Err + new TestWithStatics().#prop // OK } static C = class InnerInner { m() { - new TestWithErrors().#prop // Err - new Inner().#foo; // Err + new TestWithStatics().#prop // OK + new Inner().#foo; // OK } } static M(){ return class { m() { - new TestWithErrors().#prop // Err + new TestWithStatics().#prop // OK new Inner().#foo; // OK } } - } + } } } -class TestNoErrors { - #prop = 0 - dd = new TestNoErrors().#prop; // OK +class TestNonStatics { + #prop = 0 + dd = new TestNonStatics().#prop; // OK ["X_ z_ zz"] = class Inner { - #foo = 10 + #foo = 10 m() { - new TestNoErrors().#prop // Ok + new TestNonStatics().#prop // Ok } C = class InnerInner { m() { - new TestNoErrors().#prop // Ok + new TestNonStatics().#prop // Ok new Inner().#foo; // Ok } } - + static M(){ return class { m() { - new TestNoErrors().#prop // OK + new TestNonStatics().#prop // OK new Inner().#foo; // OK } } - } + } } - } +} -//// [privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.js] +//// [privateNameWhenNotUseDefineForClassFieldsInEsNext.js] "use strict"; var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) { if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); }; -var _TestWithErrors_prop, _Inner_foo, _a, _TestNoErrors_prop; -class TestWithErrors { +var _TestWithStatics_prop, _Inner_foo, _a, _TestNonStatics_prop; +class TestWithStatics { constructor() { - _TestWithErrors_prop.set(this, 0); + _TestWithStatics_prop.set(this, 0); } } -_TestWithErrors_prop = new WeakMap(); -TestWithErrors.dd = __classPrivateFieldGet(new TestWithErrors(), _TestWithErrors_prop, "f"); // Err -TestWithErrors["X_ z_ zz"] = (_a = class Inner { +_TestWithStatics_prop = new WeakMap(); +TestWithStatics.dd = __classPrivateFieldGet(new TestWithStatics(), _TestWithStatics_prop, "f"); // OK +TestWithStatics["X_ z_ zz"] = (_a = class Inner { constructor() { _Inner_foo.set(this, 10); } m() { - __classPrivateFieldGet(new TestWithErrors(), _TestWithErrors_prop, "f"); // Err + __classPrivateFieldGet(new TestWithStatics(), _TestWithStatics_prop, "f"); // OK } static M() { return class { m() { - __classPrivateFieldGet(new TestWithErrors(), _TestWithErrors_prop, "f"); // Err + __classPrivateFieldGet(new TestWithStatics(), _TestWithStatics_prop, "f"); // OK __classPrivateFieldGet(new Inner(), _Inner_foo, "f"); // OK } }; @@ -85,33 +85,33 @@ TestWithErrors["X_ z_ zz"] = (_a = class Inner { _Inner_foo = new WeakMap(), _a.C = class InnerInner { m() { - __classPrivateFieldGet(new TestWithErrors(), _TestWithErrors_prop, "f"); // Err - __classPrivateFieldGet(new _a(), _Inner_foo, "f"); // Err + __classPrivateFieldGet(new TestWithStatics(), _TestWithStatics_prop, "f"); // OK + __classPrivateFieldGet(new _a(), _Inner_foo, "f"); // OK } }, _a); -class TestNoErrors { +class TestNonStatics { constructor() { var _Inner_foo_1, _b; - _TestNoErrors_prop.set(this, 0); - this.dd = __classPrivateFieldGet(new TestNoErrors(), _TestNoErrors_prop, "f"); // OK + _TestNonStatics_prop.set(this, 0); + this.dd = __classPrivateFieldGet(new TestNonStatics(), _TestNonStatics_prop, "f"); // OK this["X_ z_ zz"] = (_b = class Inner { constructor() { _Inner_foo_1.set(this, 10); this.C = class InnerInner { m() { - __classPrivateFieldGet(new TestNoErrors(), _TestNoErrors_prop, "f"); // Ok + __classPrivateFieldGet(new TestNonStatics(), _TestNonStatics_prop, "f"); // Ok __classPrivateFieldGet(new Inner(), _Inner_foo_1, "f"); // Ok } }; } m() { - __classPrivateFieldGet(new TestNoErrors(), _TestNoErrors_prop, "f"); // Ok + __classPrivateFieldGet(new TestNonStatics(), _TestNonStatics_prop, "f"); // Ok } static M() { return class { m() { - __classPrivateFieldGet(new TestNoErrors(), _TestNoErrors_prop, "f"); // OK + __classPrivateFieldGet(new TestNonStatics(), _TestNonStatics_prop, "f"); // OK __classPrivateFieldGet(new Inner(), _Inner_foo_1, "f"); // OK } }; @@ -121,4 +121,4 @@ class TestNoErrors { _b); } } -_TestNoErrors_prop = new WeakMap(); +_TestNonStatics_prop = new WeakMap(); diff --git a/tests/baselines/reference/privateNameWhenNotUseDefineForClassFieldsInEsNext(target=es2020).symbols b/tests/baselines/reference/privateNameWhenNotUseDefineForClassFieldsInEsNext(target=es2020).symbols new file mode 100644 index 0000000000000..ff4ef05554888 --- /dev/null +++ b/tests/baselines/reference/privateNameWhenNotUseDefineForClassFieldsInEsNext(target=es2020).symbols @@ -0,0 +1,126 @@ +=== tests/cases/conformance/classes/members/privateNames/privateNameWhenNotUseDefineForClassFieldsInEsNext.ts === +class TestWithStatics { +>TestWithStatics : Symbol(TestWithStatics, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 0, 0)) + + #prop = 0 +>#prop : Symbol(TestWithStatics.#prop, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 0, 23)) + + static dd = new TestWithStatics().#prop; // OK +>dd : Symbol(TestWithStatics.dd, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 1, 13)) +>new TestWithStatics().#prop : Symbol(TestWithStatics.#prop, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 0, 23)) +>TestWithStatics : Symbol(TestWithStatics, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 0, 0)) + + static ["X_ z_ zz"] = class Inner { +>["X_ z_ zz"] : Symbol(TestWithStatics["X_ z_ zz"], Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 2, 44)) +>"X_ z_ zz" : Symbol(TestWithStatics["X_ z_ zz"], Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 2, 44)) +>Inner : Symbol(Inner, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 3, 25)) + + #foo = 10 +>#foo : Symbol(Inner.#foo, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 3, 39)) + + m() { +>m : Symbol(Inner.m, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 4, 18)) + + new TestWithStatics().#prop // OK +>new TestWithStatics().#prop : Symbol(TestWithStatics.#prop, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 0, 23)) +>TestWithStatics : Symbol(TestWithStatics, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 0, 0)) + } + static C = class InnerInner { +>C : Symbol(Inner.C, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 7, 9)) +>InnerInner : Symbol(InnerInner, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 8, 18)) + + m() { +>m : Symbol(InnerInner.m, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 8, 37)) + + new TestWithStatics().#prop // OK +>new TestWithStatics().#prop : Symbol(TestWithStatics.#prop, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 0, 23)) +>TestWithStatics : Symbol(TestWithStatics, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 0, 0)) + + new Inner().#foo; // OK +>new Inner().#foo : Symbol(Inner.#foo, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 3, 39)) +>Inner : Symbol(Inner, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 3, 25)) + } + } + + static M(){ +>M : Symbol(Inner.M, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 13, 9)) + + return class { + m() { +>m : Symbol((Anonymous class).m, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 16, 26)) + + new TestWithStatics().#prop // OK +>new TestWithStatics().#prop : Symbol(TestWithStatics.#prop, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 0, 23)) +>TestWithStatics : Symbol(TestWithStatics, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 0, 0)) + + new Inner().#foo; // OK +>new Inner().#foo : Symbol(Inner.#foo, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 3, 39)) +>Inner : Symbol(Inner, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 3, 25)) + } + } + } + } +} + +class TestNonStatics { +>TestNonStatics : Symbol(TestNonStatics, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 24, 1)) + + #prop = 0 +>#prop : Symbol(TestNonStatics.#prop, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 26, 22)) + + dd = new TestNonStatics().#prop; // OK +>dd : Symbol(TestNonStatics.dd, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 27, 13)) +>new TestNonStatics().#prop : Symbol(TestNonStatics.#prop, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 26, 22)) +>TestNonStatics : Symbol(TestNonStatics, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 24, 1)) + + ["X_ z_ zz"] = class Inner { +>["X_ z_ zz"] : Symbol(TestNonStatics["X_ z_ zz"], Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 28, 36)) +>"X_ z_ zz" : Symbol(TestNonStatics["X_ z_ zz"], Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 28, 36)) +>Inner : Symbol(Inner, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 29, 18)) + + #foo = 10 +>#foo : Symbol(Inner.#foo, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 29, 32)) + + m() { +>m : Symbol(Inner.m, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 30, 18)) + + new TestNonStatics().#prop // Ok +>new TestNonStatics().#prop : Symbol(TestNonStatics.#prop, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 26, 22)) +>TestNonStatics : Symbol(TestNonStatics, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 24, 1)) + } + C = class InnerInner { +>C : Symbol(Inner.C, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 33, 9)) +>InnerInner : Symbol(InnerInner, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 34, 11)) + + m() { +>m : Symbol(InnerInner.m, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 34, 30)) + + new TestNonStatics().#prop // Ok +>new TestNonStatics().#prop : Symbol(TestNonStatics.#prop, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 26, 22)) +>TestNonStatics : Symbol(TestNonStatics, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 24, 1)) + + new Inner().#foo; // Ok +>new Inner().#foo : Symbol(Inner.#foo, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 29, 32)) +>Inner : Symbol(Inner, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 29, 18)) + } + } + + static M(){ +>M : Symbol(Inner.M, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 39, 9)) + + return class { + m() { +>m : Symbol((Anonymous class).m, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 42, 26)) + + new TestNonStatics().#prop // OK +>new TestNonStatics().#prop : Symbol(TestNonStatics.#prop, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 26, 22)) +>TestNonStatics : Symbol(TestNonStatics, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 24, 1)) + + new Inner().#foo; // OK +>new Inner().#foo : Symbol(Inner.#foo, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 29, 32)) +>Inner : Symbol(Inner, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 29, 18)) + } + } + } + } +} diff --git a/tests/baselines/reference/privateNameWhenNotUseDefineForClassFieldsInEsNext(target=es2020).types b/tests/baselines/reference/privateNameWhenNotUseDefineForClassFieldsInEsNext(target=es2020).types new file mode 100644 index 0000000000000..198a1f8f2c070 --- /dev/null +++ b/tests/baselines/reference/privateNameWhenNotUseDefineForClassFieldsInEsNext(target=es2020).types @@ -0,0 +1,150 @@ +=== tests/cases/conformance/classes/members/privateNames/privateNameWhenNotUseDefineForClassFieldsInEsNext.ts === +class TestWithStatics { +>TestWithStatics : TestWithStatics + + #prop = 0 +>#prop : number +>0 : 0 + + static dd = new TestWithStatics().#prop; // OK +>dd : number +>new TestWithStatics().#prop : number +>new TestWithStatics() : TestWithStatics +>TestWithStatics : typeof TestWithStatics + + static ["X_ z_ zz"] = class Inner { +>["X_ z_ zz"] : typeof Inner +>"X_ z_ zz" : "X_ z_ zz" +>class Inner { #foo = 10 m() { new TestWithStatics().#prop // OK } static C = class InnerInner { m() { new TestWithStatics().#prop // OK new Inner().#foo; // OK } } static M(){ return class { m() { new TestWithStatics().#prop // OK new Inner().#foo; // OK } } } } : typeof Inner +>Inner : typeof Inner + + #foo = 10 +>#foo : number +>10 : 10 + + m() { +>m : () => void + + new TestWithStatics().#prop // OK +>new TestWithStatics().#prop : number +>new TestWithStatics() : TestWithStatics +>TestWithStatics : typeof TestWithStatics + } + static C = class InnerInner { +>C : typeof InnerInner +>class InnerInner { m() { new TestWithStatics().#prop // OK new Inner().#foo; // OK } } : typeof InnerInner +>InnerInner : typeof InnerInner + + m() { +>m : () => void + + new TestWithStatics().#prop // OK +>new TestWithStatics().#prop : number +>new TestWithStatics() : TestWithStatics +>TestWithStatics : typeof TestWithStatics + + new Inner().#foo; // OK +>new Inner().#foo : number +>new Inner() : Inner +>Inner : typeof Inner + } + } + + static M(){ +>M : () => typeof (Anonymous class) + + return class { +>class { m() { new TestWithStatics().#prop // OK new Inner().#foo; // OK } } : typeof (Anonymous class) + + m() { +>m : () => void + + new TestWithStatics().#prop // OK +>new TestWithStatics().#prop : number +>new TestWithStatics() : TestWithStatics +>TestWithStatics : typeof TestWithStatics + + new Inner().#foo; // OK +>new Inner().#foo : number +>new Inner() : Inner +>Inner : typeof Inner + } + } + } + } +} + +class TestNonStatics { +>TestNonStatics : TestNonStatics + + #prop = 0 +>#prop : number +>0 : 0 + + dd = new TestNonStatics().#prop; // OK +>dd : number +>new TestNonStatics().#prop : number +>new TestNonStatics() : TestNonStatics +>TestNonStatics : typeof TestNonStatics + + ["X_ z_ zz"] = class Inner { +>["X_ z_ zz"] : typeof Inner +>"X_ z_ zz" : "X_ z_ zz" +>class Inner { #foo = 10 m() { new TestNonStatics().#prop // Ok } C = class InnerInner { m() { new TestNonStatics().#prop // Ok new Inner().#foo; // Ok } } static M(){ return class { m() { new TestNonStatics().#prop // OK new Inner().#foo; // OK } } } } : typeof Inner +>Inner : typeof Inner + + #foo = 10 +>#foo : number +>10 : 10 + + m() { +>m : () => void + + new TestNonStatics().#prop // Ok +>new TestNonStatics().#prop : number +>new TestNonStatics() : TestNonStatics +>TestNonStatics : typeof TestNonStatics + } + C = class InnerInner { +>C : typeof InnerInner +>class InnerInner { m() { new TestNonStatics().#prop // Ok new Inner().#foo; // Ok } } : typeof InnerInner +>InnerInner : typeof InnerInner + + m() { +>m : () => void + + new TestNonStatics().#prop // Ok +>new TestNonStatics().#prop : number +>new TestNonStatics() : TestNonStatics +>TestNonStatics : typeof TestNonStatics + + new Inner().#foo; // Ok +>new Inner().#foo : number +>new Inner() : Inner +>Inner : typeof Inner + } + } + + static M(){ +>M : () => typeof (Anonymous class) + + return class { +>class { m() { new TestNonStatics().#prop // OK new Inner().#foo; // OK } } : typeof (Anonymous class) + + m() { +>m : () => void + + new TestNonStatics().#prop // OK +>new TestNonStatics().#prop : number +>new TestNonStatics() : TestNonStatics +>TestNonStatics : typeof TestNonStatics + + new Inner().#foo; // OK +>new Inner().#foo : number +>new Inner() : Inner +>Inner : typeof Inner + } + } + } + } +} diff --git a/tests/baselines/reference/privateNameErrorsOnNotUseDefineForClassFieldsInEsNext(target=esnext).js b/tests/baselines/reference/privateNameWhenNotUseDefineForClassFieldsInEsNext(target=esnext).js similarity index 52% rename from tests/baselines/reference/privateNameErrorsOnNotUseDefineForClassFieldsInEsNext(target=esnext).js rename to tests/baselines/reference/privateNameWhenNotUseDefineForClassFieldsInEsNext(target=esnext).js index 8c3b1cff1f3fe..e0ce069f349ec 100644 --- a/tests/baselines/reference/privateNameErrorsOnNotUseDefineForClassFieldsInEsNext(target=esnext).js +++ b/tests/baselines/reference/privateNameWhenNotUseDefineForClassFieldsInEsNext(target=esnext).js @@ -1,112 +1,110 @@ -//// [privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts] -class TestWithErrors { - #prop = 0 - static dd = new TestWithErrors().#prop; // Err +//// [privateNameWhenNotUseDefineForClassFieldsInEsNext.ts] +class TestWithStatics { + #prop = 0 + static dd = new TestWithStatics().#prop; // OK static ["X_ z_ zz"] = class Inner { - #foo = 10 + #foo = 10 m() { - new TestWithErrors().#prop // Err + new TestWithStatics().#prop // OK } static C = class InnerInner { m() { - new TestWithErrors().#prop // Err - new Inner().#foo; // Err + new TestWithStatics().#prop // OK + new Inner().#foo; // OK } } static M(){ return class { m() { - new TestWithErrors().#prop // Err + new TestWithStatics().#prop // OK new Inner().#foo; // OK } } - } + } } } -class TestNoErrors { - #prop = 0 - dd = new TestNoErrors().#prop; // OK +class TestNonStatics { + #prop = 0 + dd = new TestNonStatics().#prop; // OK ["X_ z_ zz"] = class Inner { - #foo = 10 + #foo = 10 m() { - new TestNoErrors().#prop // Ok + new TestNonStatics().#prop // Ok } C = class InnerInner { m() { - new TestNoErrors().#prop // Ok + new TestNonStatics().#prop // Ok new Inner().#foo; // Ok } } - + static M(){ return class { m() { - new TestNoErrors().#prop // OK + new TestNonStatics().#prop // OK new Inner().#foo; // OK } } - } + } } - } +} -//// [privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.js] +//// [privateNameWhenNotUseDefineForClassFieldsInEsNext.js] "use strict"; -var _a; -class TestWithErrors { +class TestWithStatics { constructor() { this.#prop = 0; } #prop; -} -TestWithErrors.dd = new TestWithErrors().#prop; // Err -TestWithErrors["X_ z_ zz"] = (_a = class Inner { + static { this.dd = new TestWithStatics().#prop; } // OK + static { this["X_ z_ zz"] = class Inner { constructor() { this.#foo = 10; } #foo; m() { - new TestWithErrors().#prop; // Err + new TestWithStatics().#prop; // OK } + static { this.C = class InnerInner { + m() { + new TestWithStatics().#prop; // OK + new Inner().#foo; // OK + } + }; } static M() { return class { m() { - new TestWithErrors().#prop; // Err + new TestWithStatics().#prop; // OK new Inner().#foo; // OK } }; } - }, - _a.C = class InnerInner { - m() { - new TestWithErrors().#prop; // Err - new _a().#foo; // Err - } - }, - _a); -class TestNoErrors { + }; } +} +class TestNonStatics { constructor() { this.#prop = 0; - this.dd = new TestNoErrors().#prop; // OK + this.dd = new TestNonStatics().#prop; // OK this["X_ z_ zz"] = class Inner { constructor() { this.#foo = 10; this.C = class InnerInner { m() { - new TestNoErrors().#prop; // Ok + new TestNonStatics().#prop; // Ok new Inner().#foo; // Ok } }; } #foo; m() { - new TestNoErrors().#prop; // Ok + new TestNonStatics().#prop; // Ok } static M() { return class { m() { - new TestNoErrors().#prop; // OK + new TestNonStatics().#prop; // OK new Inner().#foo; // OK } }; diff --git a/tests/baselines/reference/privateNameWhenNotUseDefineForClassFieldsInEsNext(target=esnext).symbols b/tests/baselines/reference/privateNameWhenNotUseDefineForClassFieldsInEsNext(target=esnext).symbols new file mode 100644 index 0000000000000..ff4ef05554888 --- /dev/null +++ b/tests/baselines/reference/privateNameWhenNotUseDefineForClassFieldsInEsNext(target=esnext).symbols @@ -0,0 +1,126 @@ +=== tests/cases/conformance/classes/members/privateNames/privateNameWhenNotUseDefineForClassFieldsInEsNext.ts === +class TestWithStatics { +>TestWithStatics : Symbol(TestWithStatics, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 0, 0)) + + #prop = 0 +>#prop : Symbol(TestWithStatics.#prop, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 0, 23)) + + static dd = new TestWithStatics().#prop; // OK +>dd : Symbol(TestWithStatics.dd, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 1, 13)) +>new TestWithStatics().#prop : Symbol(TestWithStatics.#prop, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 0, 23)) +>TestWithStatics : Symbol(TestWithStatics, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 0, 0)) + + static ["X_ z_ zz"] = class Inner { +>["X_ z_ zz"] : Symbol(TestWithStatics["X_ z_ zz"], Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 2, 44)) +>"X_ z_ zz" : Symbol(TestWithStatics["X_ z_ zz"], Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 2, 44)) +>Inner : Symbol(Inner, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 3, 25)) + + #foo = 10 +>#foo : Symbol(Inner.#foo, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 3, 39)) + + m() { +>m : Symbol(Inner.m, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 4, 18)) + + new TestWithStatics().#prop // OK +>new TestWithStatics().#prop : Symbol(TestWithStatics.#prop, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 0, 23)) +>TestWithStatics : Symbol(TestWithStatics, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 0, 0)) + } + static C = class InnerInner { +>C : Symbol(Inner.C, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 7, 9)) +>InnerInner : Symbol(InnerInner, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 8, 18)) + + m() { +>m : Symbol(InnerInner.m, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 8, 37)) + + new TestWithStatics().#prop // OK +>new TestWithStatics().#prop : Symbol(TestWithStatics.#prop, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 0, 23)) +>TestWithStatics : Symbol(TestWithStatics, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 0, 0)) + + new Inner().#foo; // OK +>new Inner().#foo : Symbol(Inner.#foo, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 3, 39)) +>Inner : Symbol(Inner, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 3, 25)) + } + } + + static M(){ +>M : Symbol(Inner.M, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 13, 9)) + + return class { + m() { +>m : Symbol((Anonymous class).m, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 16, 26)) + + new TestWithStatics().#prop // OK +>new TestWithStatics().#prop : Symbol(TestWithStatics.#prop, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 0, 23)) +>TestWithStatics : Symbol(TestWithStatics, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 0, 0)) + + new Inner().#foo; // OK +>new Inner().#foo : Symbol(Inner.#foo, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 3, 39)) +>Inner : Symbol(Inner, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 3, 25)) + } + } + } + } +} + +class TestNonStatics { +>TestNonStatics : Symbol(TestNonStatics, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 24, 1)) + + #prop = 0 +>#prop : Symbol(TestNonStatics.#prop, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 26, 22)) + + dd = new TestNonStatics().#prop; // OK +>dd : Symbol(TestNonStatics.dd, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 27, 13)) +>new TestNonStatics().#prop : Symbol(TestNonStatics.#prop, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 26, 22)) +>TestNonStatics : Symbol(TestNonStatics, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 24, 1)) + + ["X_ z_ zz"] = class Inner { +>["X_ z_ zz"] : Symbol(TestNonStatics["X_ z_ zz"], Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 28, 36)) +>"X_ z_ zz" : Symbol(TestNonStatics["X_ z_ zz"], Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 28, 36)) +>Inner : Symbol(Inner, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 29, 18)) + + #foo = 10 +>#foo : Symbol(Inner.#foo, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 29, 32)) + + m() { +>m : Symbol(Inner.m, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 30, 18)) + + new TestNonStatics().#prop // Ok +>new TestNonStatics().#prop : Symbol(TestNonStatics.#prop, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 26, 22)) +>TestNonStatics : Symbol(TestNonStatics, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 24, 1)) + } + C = class InnerInner { +>C : Symbol(Inner.C, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 33, 9)) +>InnerInner : Symbol(InnerInner, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 34, 11)) + + m() { +>m : Symbol(InnerInner.m, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 34, 30)) + + new TestNonStatics().#prop // Ok +>new TestNonStatics().#prop : Symbol(TestNonStatics.#prop, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 26, 22)) +>TestNonStatics : Symbol(TestNonStatics, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 24, 1)) + + new Inner().#foo; // Ok +>new Inner().#foo : Symbol(Inner.#foo, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 29, 32)) +>Inner : Symbol(Inner, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 29, 18)) + } + } + + static M(){ +>M : Symbol(Inner.M, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 39, 9)) + + return class { + m() { +>m : Symbol((Anonymous class).m, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 42, 26)) + + new TestNonStatics().#prop // OK +>new TestNonStatics().#prop : Symbol(TestNonStatics.#prop, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 26, 22)) +>TestNonStatics : Symbol(TestNonStatics, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 24, 1)) + + new Inner().#foo; // OK +>new Inner().#foo : Symbol(Inner.#foo, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 29, 32)) +>Inner : Symbol(Inner, Decl(privateNameWhenNotUseDefineForClassFieldsInEsNext.ts, 29, 18)) + } + } + } + } +} diff --git a/tests/baselines/reference/privateNameWhenNotUseDefineForClassFieldsInEsNext(target=esnext).types b/tests/baselines/reference/privateNameWhenNotUseDefineForClassFieldsInEsNext(target=esnext).types new file mode 100644 index 0000000000000..198a1f8f2c070 --- /dev/null +++ b/tests/baselines/reference/privateNameWhenNotUseDefineForClassFieldsInEsNext(target=esnext).types @@ -0,0 +1,150 @@ +=== tests/cases/conformance/classes/members/privateNames/privateNameWhenNotUseDefineForClassFieldsInEsNext.ts === +class TestWithStatics { +>TestWithStatics : TestWithStatics + + #prop = 0 +>#prop : number +>0 : 0 + + static dd = new TestWithStatics().#prop; // OK +>dd : number +>new TestWithStatics().#prop : number +>new TestWithStatics() : TestWithStatics +>TestWithStatics : typeof TestWithStatics + + static ["X_ z_ zz"] = class Inner { +>["X_ z_ zz"] : typeof Inner +>"X_ z_ zz" : "X_ z_ zz" +>class Inner { #foo = 10 m() { new TestWithStatics().#prop // OK } static C = class InnerInner { m() { new TestWithStatics().#prop // OK new Inner().#foo; // OK } } static M(){ return class { m() { new TestWithStatics().#prop // OK new Inner().#foo; // OK } } } } : typeof Inner +>Inner : typeof Inner + + #foo = 10 +>#foo : number +>10 : 10 + + m() { +>m : () => void + + new TestWithStatics().#prop // OK +>new TestWithStatics().#prop : number +>new TestWithStatics() : TestWithStatics +>TestWithStatics : typeof TestWithStatics + } + static C = class InnerInner { +>C : typeof InnerInner +>class InnerInner { m() { new TestWithStatics().#prop // OK new Inner().#foo; // OK } } : typeof InnerInner +>InnerInner : typeof InnerInner + + m() { +>m : () => void + + new TestWithStatics().#prop // OK +>new TestWithStatics().#prop : number +>new TestWithStatics() : TestWithStatics +>TestWithStatics : typeof TestWithStatics + + new Inner().#foo; // OK +>new Inner().#foo : number +>new Inner() : Inner +>Inner : typeof Inner + } + } + + static M(){ +>M : () => typeof (Anonymous class) + + return class { +>class { m() { new TestWithStatics().#prop // OK new Inner().#foo; // OK } } : typeof (Anonymous class) + + m() { +>m : () => void + + new TestWithStatics().#prop // OK +>new TestWithStatics().#prop : number +>new TestWithStatics() : TestWithStatics +>TestWithStatics : typeof TestWithStatics + + new Inner().#foo; // OK +>new Inner().#foo : number +>new Inner() : Inner +>Inner : typeof Inner + } + } + } + } +} + +class TestNonStatics { +>TestNonStatics : TestNonStatics + + #prop = 0 +>#prop : number +>0 : 0 + + dd = new TestNonStatics().#prop; // OK +>dd : number +>new TestNonStatics().#prop : number +>new TestNonStatics() : TestNonStatics +>TestNonStatics : typeof TestNonStatics + + ["X_ z_ zz"] = class Inner { +>["X_ z_ zz"] : typeof Inner +>"X_ z_ zz" : "X_ z_ zz" +>class Inner { #foo = 10 m() { new TestNonStatics().#prop // Ok } C = class InnerInner { m() { new TestNonStatics().#prop // Ok new Inner().#foo; // Ok } } static M(){ return class { m() { new TestNonStatics().#prop // OK new Inner().#foo; // OK } } } } : typeof Inner +>Inner : typeof Inner + + #foo = 10 +>#foo : number +>10 : 10 + + m() { +>m : () => void + + new TestNonStatics().#prop // Ok +>new TestNonStatics().#prop : number +>new TestNonStatics() : TestNonStatics +>TestNonStatics : typeof TestNonStatics + } + C = class InnerInner { +>C : typeof InnerInner +>class InnerInner { m() { new TestNonStatics().#prop // Ok new Inner().#foo; // Ok } } : typeof InnerInner +>InnerInner : typeof InnerInner + + m() { +>m : () => void + + new TestNonStatics().#prop // Ok +>new TestNonStatics().#prop : number +>new TestNonStatics() : TestNonStatics +>TestNonStatics : typeof TestNonStatics + + new Inner().#foo; // Ok +>new Inner().#foo : number +>new Inner() : Inner +>Inner : typeof Inner + } + } + + static M(){ +>M : () => typeof (Anonymous class) + + return class { +>class { m() { new TestNonStatics().#prop // OK new Inner().#foo; // OK } } : typeof (Anonymous class) + + m() { +>m : () => void + + new TestNonStatics().#prop // OK +>new TestNonStatics().#prop : number +>new TestNonStatics() : TestNonStatics +>TestNonStatics : typeof TestNonStatics + + new Inner().#foo; // OK +>new Inner().#foo : number +>new Inner() : Inner +>Inner : typeof Inner + } + } + } + } +} diff --git a/tests/baselines/reference/privateNamesAndMethods.js b/tests/baselines/reference/privateNamesAndMethods(target=es2022).js similarity index 94% rename from tests/baselines/reference/privateNamesAndMethods.js rename to tests/baselines/reference/privateNamesAndMethods(target=es2022).js index c216ce98e5cb3..5041d2a69d232 100644 --- a/tests/baselines/reference/privateNamesAndMethods.js +++ b/tests/baselines/reference/privateNamesAndMethods(target=es2022).js @@ -10,7 +10,7 @@ class A { return this.#_quux; } set #quux (val: number) { - this.#_quux = val; + this.#_quux = val; } constructor () { this.#foo(30); diff --git a/tests/baselines/reference/privateNamesAndMethods.symbols b/tests/baselines/reference/privateNamesAndMethods(target=es2022).symbols similarity index 96% rename from tests/baselines/reference/privateNamesAndMethods.symbols rename to tests/baselines/reference/privateNamesAndMethods(target=es2022).symbols index 868a08790c591..b4077b65413f4 100644 --- a/tests/baselines/reference/privateNamesAndMethods.symbols +++ b/tests/baselines/reference/privateNamesAndMethods(target=es2022).symbols @@ -30,7 +30,7 @@ class A { >#quux : Symbol(A.#quux, Decl(privateNamesAndMethods.ts, 6, 19), Decl(privateNamesAndMethods.ts, 9, 5)) >val : Symbol(val, Decl(privateNamesAndMethods.ts, 10, 15)) - this.#_quux = val; + this.#_quux = val; >this.#_quux : Symbol(A.#_quux, Decl(privateNamesAndMethods.ts, 5, 5)) >this : Symbol(A, Decl(privateNamesAndMethods.ts, 0, 0)) >val : Symbol(val, Decl(privateNamesAndMethods.ts, 10, 15)) diff --git a/tests/baselines/reference/privateNamesAndMethods.types b/tests/baselines/reference/privateNamesAndMethods(target=es2022).types similarity index 93% rename from tests/baselines/reference/privateNamesAndMethods.types rename to tests/baselines/reference/privateNamesAndMethods(target=es2022).types index 2d9a1d9363422..8412fa0a79b30 100644 --- a/tests/baselines/reference/privateNamesAndMethods.types +++ b/tests/baselines/reference/privateNamesAndMethods(target=es2022).types @@ -31,7 +31,7 @@ class A { >#quux : number >val : number - this.#_quux = val; + this.#_quux = val; >this.#_quux = val : number >this.#_quux : number >this : this diff --git a/tests/baselines/reference/privateNamesAndMethods(target=esnext).js b/tests/baselines/reference/privateNamesAndMethods(target=esnext).js new file mode 100644 index 0000000000000..5041d2a69d232 --- /dev/null +++ b/tests/baselines/reference/privateNamesAndMethods(target=esnext).js @@ -0,0 +1,61 @@ +//// [privateNamesAndMethods.ts] +class A { + #foo(a: number) {} + async #bar(a: number) {} + async *#baz(a: number) { + return 3; + } + #_quux: number; + get #quux (): number { + return this.#_quux; + } + set #quux (val: number) { + this.#_quux = val; + } + constructor () { + this.#foo(30); + this.#bar(30); + this.#baz(30); + this.#quux = this.#quux + 1; + this.#quux++; + } +} + +class B extends A { + #foo(a: string) {} + constructor () { + super(); + this.#foo("str"); + } +} + + +//// [privateNamesAndMethods.js] +class A { + constructor() { + this.#foo(30); + this.#bar(30); + this.#baz(30); + this.#quux = this.#quux + 1; + this.#quux++; + } + #foo(a) { } + async #bar(a) { } + async *#baz(a) { + return 3; + } + #_quux; + get #quux() { + return this.#_quux; + } + set #quux(val) { + this.#_quux = val; + } +} +class B extends A { + #foo(a) { } + constructor() { + super(); + this.#foo("str"); + } +} diff --git a/tests/baselines/reference/privateNamesAndMethods(target=esnext).symbols b/tests/baselines/reference/privateNamesAndMethods(target=esnext).symbols new file mode 100644 index 0000000000000..b4077b65413f4 --- /dev/null +++ b/tests/baselines/reference/privateNamesAndMethods(target=esnext).symbols @@ -0,0 +1,80 @@ +=== tests/cases/conformance/classes/members/privateNames/privateNamesAndMethods.ts === +class A { +>A : Symbol(A, Decl(privateNamesAndMethods.ts, 0, 0)) + + #foo(a: number) {} +>#foo : Symbol(A.#foo, Decl(privateNamesAndMethods.ts, 0, 9)) +>a : Symbol(a, Decl(privateNamesAndMethods.ts, 1, 9)) + + async #bar(a: number) {} +>#bar : Symbol(A.#bar, Decl(privateNamesAndMethods.ts, 1, 22)) +>a : Symbol(a, Decl(privateNamesAndMethods.ts, 2, 15)) + + async *#baz(a: number) { +>#baz : Symbol(A.#baz, Decl(privateNamesAndMethods.ts, 2, 28)) +>a : Symbol(a, Decl(privateNamesAndMethods.ts, 3, 16)) + + return 3; + } + #_quux: number; +>#_quux : Symbol(A.#_quux, Decl(privateNamesAndMethods.ts, 5, 5)) + + get #quux (): number { +>#quux : Symbol(A.#quux, Decl(privateNamesAndMethods.ts, 6, 19), Decl(privateNamesAndMethods.ts, 9, 5)) + + return this.#_quux; +>this.#_quux : Symbol(A.#_quux, Decl(privateNamesAndMethods.ts, 5, 5)) +>this : Symbol(A, Decl(privateNamesAndMethods.ts, 0, 0)) + } + set #quux (val: number) { +>#quux : Symbol(A.#quux, Decl(privateNamesAndMethods.ts, 6, 19), Decl(privateNamesAndMethods.ts, 9, 5)) +>val : Symbol(val, Decl(privateNamesAndMethods.ts, 10, 15)) + + this.#_quux = val; +>this.#_quux : Symbol(A.#_quux, Decl(privateNamesAndMethods.ts, 5, 5)) +>this : Symbol(A, Decl(privateNamesAndMethods.ts, 0, 0)) +>val : Symbol(val, Decl(privateNamesAndMethods.ts, 10, 15)) + } + constructor () { + this.#foo(30); +>this.#foo : Symbol(A.#foo, Decl(privateNamesAndMethods.ts, 0, 9)) +>this : Symbol(A, Decl(privateNamesAndMethods.ts, 0, 0)) + + this.#bar(30); +>this.#bar : Symbol(A.#bar, Decl(privateNamesAndMethods.ts, 1, 22)) +>this : Symbol(A, Decl(privateNamesAndMethods.ts, 0, 0)) + + this.#baz(30); +>this.#baz : Symbol(A.#baz, Decl(privateNamesAndMethods.ts, 2, 28)) +>this : Symbol(A, Decl(privateNamesAndMethods.ts, 0, 0)) + + this.#quux = this.#quux + 1; +>this.#quux : Symbol(A.#quux, Decl(privateNamesAndMethods.ts, 6, 19), Decl(privateNamesAndMethods.ts, 9, 5)) +>this : Symbol(A, Decl(privateNamesAndMethods.ts, 0, 0)) +>this.#quux : Symbol(A.#quux, Decl(privateNamesAndMethods.ts, 6, 19), Decl(privateNamesAndMethods.ts, 9, 5)) +>this : Symbol(A, Decl(privateNamesAndMethods.ts, 0, 0)) + + this.#quux++; +>this.#quux : Symbol(A.#quux, Decl(privateNamesAndMethods.ts, 6, 19), Decl(privateNamesAndMethods.ts, 9, 5)) +>this : Symbol(A, Decl(privateNamesAndMethods.ts, 0, 0)) + } +} + +class B extends A { +>B : Symbol(B, Decl(privateNamesAndMethods.ts, 20, 1)) +>A : Symbol(A, Decl(privateNamesAndMethods.ts, 0, 0)) + + #foo(a: string) {} +>#foo : Symbol(B.#foo, Decl(privateNamesAndMethods.ts, 22, 19)) +>a : Symbol(a, Decl(privateNamesAndMethods.ts, 23, 9)) + + constructor () { + super(); +>super : Symbol(A, Decl(privateNamesAndMethods.ts, 0, 0)) + + this.#foo("str"); +>this.#foo : Symbol(B.#foo, Decl(privateNamesAndMethods.ts, 22, 19)) +>this : Symbol(B, Decl(privateNamesAndMethods.ts, 20, 1)) + } +} + diff --git a/tests/baselines/reference/privateNamesAndMethods(target=esnext).types b/tests/baselines/reference/privateNamesAndMethods(target=esnext).types new file mode 100644 index 0000000000000..8412fa0a79b30 --- /dev/null +++ b/tests/baselines/reference/privateNamesAndMethods(target=esnext).types @@ -0,0 +1,95 @@ +=== tests/cases/conformance/classes/members/privateNames/privateNamesAndMethods.ts === +class A { +>A : A + + #foo(a: number) {} +>#foo : (a: number) => void +>a : number + + async #bar(a: number) {} +>#bar : (a: number) => Promise +>a : number + + async *#baz(a: number) { +>#baz : (a: number) => AsyncGenerator +>a : number + + return 3; +>3 : 3 + } + #_quux: number; +>#_quux : number + + get #quux (): number { +>#quux : number + + return this.#_quux; +>this.#_quux : number +>this : this + } + set #quux (val: number) { +>#quux : number +>val : number + + this.#_quux = val; +>this.#_quux = val : number +>this.#_quux : number +>this : this +>val : number + } + constructor () { + this.#foo(30); +>this.#foo(30) : void +>this.#foo : (a: number) => void +>this : this +>30 : 30 + + this.#bar(30); +>this.#bar(30) : Promise +>this.#bar : (a: number) => Promise +>this : this +>30 : 30 + + this.#baz(30); +>this.#baz(30) : AsyncGenerator +>this.#baz : (a: number) => AsyncGenerator +>this : this +>30 : 30 + + this.#quux = this.#quux + 1; +>this.#quux = this.#quux + 1 : number +>this.#quux : number +>this : this +>this.#quux + 1 : number +>this.#quux : number +>this : this +>1 : 1 + + this.#quux++; +>this.#quux++ : number +>this.#quux : number +>this : this + } +} + +class B extends A { +>B : B +>A : A + + #foo(a: string) {} +>#foo : (a: string) => void +>a : string + + constructor () { + super(); +>super() : void +>super : typeof A + + this.#foo("str"); +>this.#foo("str") : void +>this.#foo : (a: string) => void +>this : this +>"str" : "str" + } +} + diff --git a/tests/baselines/reference/privateNamesAndStaticMethods.js b/tests/baselines/reference/privateNamesAndStaticMethods(target=es2022).js similarity index 94% rename from tests/baselines/reference/privateNamesAndStaticMethods.js rename to tests/baselines/reference/privateNamesAndStaticMethods(target=es2022).js index f21d0ccd5273d..7ec1ea5b8cc6f 100644 --- a/tests/baselines/reference/privateNamesAndStaticMethods.js +++ b/tests/baselines/reference/privateNamesAndStaticMethods(target=es2022).js @@ -10,7 +10,7 @@ class A { return this.#_quux; } static set #quux (val: number) { - this.#_quux = val; + this.#_quux = val; } constructor () { A.#foo(30); diff --git a/tests/baselines/reference/privateNamesAndStaticMethods.symbols b/tests/baselines/reference/privateNamesAndStaticMethods(target=es2022).symbols similarity index 96% rename from tests/baselines/reference/privateNamesAndStaticMethods.symbols rename to tests/baselines/reference/privateNamesAndStaticMethods(target=es2022).symbols index 57d684a70696d..6657f76abd602 100644 --- a/tests/baselines/reference/privateNamesAndStaticMethods.symbols +++ b/tests/baselines/reference/privateNamesAndStaticMethods(target=es2022).symbols @@ -30,7 +30,7 @@ class A { >#quux : Symbol(A.#quux, Decl(privateNamesAndStaticMethods.ts, 6, 26), Decl(privateNamesAndStaticMethods.ts, 9, 5)) >val : Symbol(val, Decl(privateNamesAndStaticMethods.ts, 10, 22)) - this.#_quux = val; + this.#_quux = val; >this.#_quux : Symbol(A.#_quux, Decl(privateNamesAndStaticMethods.ts, 5, 5)) >this : Symbol(A, Decl(privateNamesAndStaticMethods.ts, 0, 0)) >val : Symbol(val, Decl(privateNamesAndStaticMethods.ts, 10, 22)) diff --git a/tests/baselines/reference/privateNamesAndStaticMethods.types b/tests/baselines/reference/privateNamesAndStaticMethods(target=es2022).types similarity index 92% rename from tests/baselines/reference/privateNamesAndStaticMethods.types rename to tests/baselines/reference/privateNamesAndStaticMethods(target=es2022).types index 706d630f5f9fb..a7bb6418ae256 100644 --- a/tests/baselines/reference/privateNamesAndStaticMethods.types +++ b/tests/baselines/reference/privateNamesAndStaticMethods(target=es2022).types @@ -31,7 +31,7 @@ class A { >#quux : number >val : number - this.#_quux = val; + this.#_quux = val; >this.#_quux = val : number >this.#_quux : number >this : typeof A diff --git a/tests/baselines/reference/privateNamesAndStaticMethods(target=esnext).js b/tests/baselines/reference/privateNamesAndStaticMethods(target=esnext).js new file mode 100644 index 0000000000000..7ec1ea5b8cc6f --- /dev/null +++ b/tests/baselines/reference/privateNamesAndStaticMethods(target=esnext).js @@ -0,0 +1,62 @@ +//// [privateNamesAndStaticMethods.ts] +class A { + static #foo(a: number) {} + static async #bar(a: number) {} + static async *#baz(a: number) { + return 3; + } + static #_quux: number; + static get #quux (): number { + return this.#_quux; + } + static set #quux (val: number) { + this.#_quux = val; + } + constructor () { + A.#foo(30); + A.#bar(30); + A.#bar(30); + A.#quux = A.#quux + 1; + A.#quux++; + } +} + +class B extends A { + static #foo(a: string) {} + constructor () { + super(); + B.#foo("str"); + } +} + + +//// [privateNamesAndStaticMethods.js] +"use strict"; +class A { + constructor() { + A.#foo(30); + A.#bar(30); + A.#bar(30); + A.#quux = A.#quux + 1; + A.#quux++; + } + static #foo(a) { } + static async #bar(a) { } + static async *#baz(a) { + return 3; + } + static #_quux; + static get #quux() { + return this.#_quux; + } + static set #quux(val) { + this.#_quux = val; + } +} +class B extends A { + static #foo(a) { } + constructor() { + super(); + B.#foo("str"); + } +} diff --git a/tests/baselines/reference/privateNamesAndStaticMethods(target=esnext).symbols b/tests/baselines/reference/privateNamesAndStaticMethods(target=esnext).symbols new file mode 100644 index 0000000000000..6657f76abd602 --- /dev/null +++ b/tests/baselines/reference/privateNamesAndStaticMethods(target=esnext).symbols @@ -0,0 +1,80 @@ +=== tests/cases/conformance/classes/members/privateNames/privateNamesAndStaticMethods.ts === +class A { +>A : Symbol(A, Decl(privateNamesAndStaticMethods.ts, 0, 0)) + + static #foo(a: number) {} +>#foo : Symbol(A.#foo, Decl(privateNamesAndStaticMethods.ts, 0, 9)) +>a : Symbol(a, Decl(privateNamesAndStaticMethods.ts, 1, 16)) + + static async #bar(a: number) {} +>#bar : Symbol(A.#bar, Decl(privateNamesAndStaticMethods.ts, 1, 29)) +>a : Symbol(a, Decl(privateNamesAndStaticMethods.ts, 2, 22)) + + static async *#baz(a: number) { +>#baz : Symbol(A.#baz, Decl(privateNamesAndStaticMethods.ts, 2, 35)) +>a : Symbol(a, Decl(privateNamesAndStaticMethods.ts, 3, 23)) + + return 3; + } + static #_quux: number; +>#_quux : Symbol(A.#_quux, Decl(privateNamesAndStaticMethods.ts, 5, 5)) + + static get #quux (): number { +>#quux : Symbol(A.#quux, Decl(privateNamesAndStaticMethods.ts, 6, 26), Decl(privateNamesAndStaticMethods.ts, 9, 5)) + + return this.#_quux; +>this.#_quux : Symbol(A.#_quux, Decl(privateNamesAndStaticMethods.ts, 5, 5)) +>this : Symbol(A, Decl(privateNamesAndStaticMethods.ts, 0, 0)) + } + static set #quux (val: number) { +>#quux : Symbol(A.#quux, Decl(privateNamesAndStaticMethods.ts, 6, 26), Decl(privateNamesAndStaticMethods.ts, 9, 5)) +>val : Symbol(val, Decl(privateNamesAndStaticMethods.ts, 10, 22)) + + this.#_quux = val; +>this.#_quux : Symbol(A.#_quux, Decl(privateNamesAndStaticMethods.ts, 5, 5)) +>this : Symbol(A, Decl(privateNamesAndStaticMethods.ts, 0, 0)) +>val : Symbol(val, Decl(privateNamesAndStaticMethods.ts, 10, 22)) + } + constructor () { + A.#foo(30); +>A.#foo : Symbol(A.#foo, Decl(privateNamesAndStaticMethods.ts, 0, 9)) +>A : Symbol(A, Decl(privateNamesAndStaticMethods.ts, 0, 0)) + + A.#bar(30); +>A.#bar : Symbol(A.#bar, Decl(privateNamesAndStaticMethods.ts, 1, 29)) +>A : Symbol(A, Decl(privateNamesAndStaticMethods.ts, 0, 0)) + + A.#bar(30); +>A.#bar : Symbol(A.#bar, Decl(privateNamesAndStaticMethods.ts, 1, 29)) +>A : Symbol(A, Decl(privateNamesAndStaticMethods.ts, 0, 0)) + + A.#quux = A.#quux + 1; +>A.#quux : Symbol(A.#quux, Decl(privateNamesAndStaticMethods.ts, 6, 26), Decl(privateNamesAndStaticMethods.ts, 9, 5)) +>A : Symbol(A, Decl(privateNamesAndStaticMethods.ts, 0, 0)) +>A.#quux : Symbol(A.#quux, Decl(privateNamesAndStaticMethods.ts, 6, 26), Decl(privateNamesAndStaticMethods.ts, 9, 5)) +>A : Symbol(A, Decl(privateNamesAndStaticMethods.ts, 0, 0)) + + A.#quux++; +>A.#quux : Symbol(A.#quux, Decl(privateNamesAndStaticMethods.ts, 6, 26), Decl(privateNamesAndStaticMethods.ts, 9, 5)) +>A : Symbol(A, Decl(privateNamesAndStaticMethods.ts, 0, 0)) + } +} + +class B extends A { +>B : Symbol(B, Decl(privateNamesAndStaticMethods.ts, 20, 1)) +>A : Symbol(A, Decl(privateNamesAndStaticMethods.ts, 0, 0)) + + static #foo(a: string) {} +>#foo : Symbol(B.#foo, Decl(privateNamesAndStaticMethods.ts, 22, 19)) +>a : Symbol(a, Decl(privateNamesAndStaticMethods.ts, 23, 16)) + + constructor () { + super(); +>super : Symbol(A, Decl(privateNamesAndStaticMethods.ts, 0, 0)) + + B.#foo("str"); +>B.#foo : Symbol(B.#foo, Decl(privateNamesAndStaticMethods.ts, 22, 19)) +>B : Symbol(B, Decl(privateNamesAndStaticMethods.ts, 20, 1)) + } +} + diff --git a/tests/baselines/reference/privateNamesAndStaticMethods(target=esnext).types b/tests/baselines/reference/privateNamesAndStaticMethods(target=esnext).types new file mode 100644 index 0000000000000..a7bb6418ae256 --- /dev/null +++ b/tests/baselines/reference/privateNamesAndStaticMethods(target=esnext).types @@ -0,0 +1,95 @@ +=== tests/cases/conformance/classes/members/privateNames/privateNamesAndStaticMethods.ts === +class A { +>A : A + + static #foo(a: number) {} +>#foo : (a: number) => void +>a : number + + static async #bar(a: number) {} +>#bar : (a: number) => Promise +>a : number + + static async *#baz(a: number) { +>#baz : (a: number) => AsyncGenerator +>a : number + + return 3; +>3 : 3 + } + static #_quux: number; +>#_quux : number + + static get #quux (): number { +>#quux : number + + return this.#_quux; +>this.#_quux : number +>this : typeof A + } + static set #quux (val: number) { +>#quux : number +>val : number + + this.#_quux = val; +>this.#_quux = val : number +>this.#_quux : number +>this : typeof A +>val : number + } + constructor () { + A.#foo(30); +>A.#foo(30) : void +>A.#foo : (a: number) => void +>A : typeof A +>30 : 30 + + A.#bar(30); +>A.#bar(30) : Promise +>A.#bar : (a: number) => Promise +>A : typeof A +>30 : 30 + + A.#bar(30); +>A.#bar(30) : Promise +>A.#bar : (a: number) => Promise +>A : typeof A +>30 : 30 + + A.#quux = A.#quux + 1; +>A.#quux = A.#quux + 1 : number +>A.#quux : number +>A : typeof A +>A.#quux + 1 : number +>A.#quux : number +>A : typeof A +>1 : 1 + + A.#quux++; +>A.#quux++ : number +>A.#quux : number +>A : typeof A + } +} + +class B extends A { +>B : B +>A : A + + static #foo(a: string) {} +>#foo : (a: string) => void +>a : string + + constructor () { + super(); +>super() : void +>super : typeof A + + B.#foo("str"); +>B.#foo("str") : void +>B.#foo : (a: string) => void +>B : typeof B +>"str" : "str" + } +} + diff --git a/tests/baselines/reference/privateNamesAssertion.js b/tests/baselines/reference/privateNamesAssertion(target=es2022).js similarity index 100% rename from tests/baselines/reference/privateNamesAssertion.js rename to tests/baselines/reference/privateNamesAssertion(target=es2022).js diff --git a/tests/baselines/reference/privateNamesAssertion.symbols b/tests/baselines/reference/privateNamesAssertion(target=es2022).symbols similarity index 92% rename from tests/baselines/reference/privateNamesAssertion.symbols rename to tests/baselines/reference/privateNamesAssertion(target=es2022).symbols index 2e0c423f2dd4d..db548487a7875 100644 --- a/tests/baselines/reference/privateNamesAssertion.symbols +++ b/tests/baselines/reference/privateNamesAssertion(target=es2022).symbols @@ -12,7 +12,7 @@ class Foo { >v : Symbol(v, Decl(privateNamesAssertion.ts, 1, 44)) throw new Error(); ->Error : Symbol(Error, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>Error : Symbol(Error, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2022.error.d.ts, --, --)) } } m1(v: unknown) { @@ -41,7 +41,7 @@ class Foo2 { >v : Symbol(v, Decl(privateNamesAssertion.ts, 13, 8)) throw new Error(); ->Error : Symbol(Error, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>Error : Symbol(Error, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2022.error.d.ts, --, --)) } } m1(v: unknown) { diff --git a/tests/baselines/reference/privateNamesAssertion.types b/tests/baselines/reference/privateNamesAssertion(target=es2022).types similarity index 100% rename from tests/baselines/reference/privateNamesAssertion.types rename to tests/baselines/reference/privateNamesAssertion(target=es2022).types diff --git a/tests/baselines/reference/privateNamesAssertion(target=esnext).js b/tests/baselines/reference/privateNamesAssertion(target=esnext).js new file mode 100644 index 0000000000000..b6be4d5d4adf2 --- /dev/null +++ b/tests/baselines/reference/privateNamesAssertion(target=esnext).js @@ -0,0 +1,53 @@ +//// [privateNamesAssertion.ts] +class Foo { + #p1: (v: any) => asserts v is string = (v) => { + if (typeof v !== "string") { + throw new Error(); + } + } + m1(v: unknown) { + this.#p1(v); + v; + } +} + +class Foo2 { + #p1(v: any): asserts v is string { + if (typeof v !== "string") { + throw new Error(); + } + } + m1(v: unknown) { + this.#p1(v); + v; + } +} + + +//// [privateNamesAssertion.js] +"use strict"; +class Foo { + constructor() { + this.#p1 = (v) => { + if (typeof v !== "string") { + throw new Error(); + } + }; + } + #p1; + m1(v) { + this.#p1(v); + v; + } +} +class Foo2 { + #p1(v) { + if (typeof v !== "string") { + throw new Error(); + } + } + m1(v) { + this.#p1(v); + v; + } +} diff --git a/tests/baselines/reference/privateNamesAssertion(target=esnext).symbols b/tests/baselines/reference/privateNamesAssertion(target=esnext).symbols new file mode 100644 index 0000000000000..db548487a7875 --- /dev/null +++ b/tests/baselines/reference/privateNamesAssertion(target=esnext).symbols @@ -0,0 +1,60 @@ +=== tests/cases/conformance/classes/members/privateNames/privateNamesAssertion.ts === +class Foo { +>Foo : Symbol(Foo, Decl(privateNamesAssertion.ts, 0, 0)) + + #p1: (v: any) => asserts v is string = (v) => { +>#p1 : Symbol(Foo.#p1, Decl(privateNamesAssertion.ts, 0, 11)) +>v : Symbol(v, Decl(privateNamesAssertion.ts, 1, 10)) +>v : Symbol(v, Decl(privateNamesAssertion.ts, 1, 10)) +>v : Symbol(v, Decl(privateNamesAssertion.ts, 1, 44)) + + if (typeof v !== "string") { +>v : Symbol(v, Decl(privateNamesAssertion.ts, 1, 44)) + + throw new Error(); +>Error : Symbol(Error, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2022.error.d.ts, --, --)) + } + } + m1(v: unknown) { +>m1 : Symbol(Foo.m1, Decl(privateNamesAssertion.ts, 5, 5)) +>v : Symbol(v, Decl(privateNamesAssertion.ts, 6, 7)) + + this.#p1(v); +>this.#p1 : Symbol(Foo.#p1, Decl(privateNamesAssertion.ts, 0, 11)) +>this : Symbol(Foo, Decl(privateNamesAssertion.ts, 0, 0)) +>v : Symbol(v, Decl(privateNamesAssertion.ts, 6, 7)) + + v; +>v : Symbol(v, Decl(privateNamesAssertion.ts, 6, 7)) + } +} + +class Foo2 { +>Foo2 : Symbol(Foo2, Decl(privateNamesAssertion.ts, 10, 1)) + + #p1(v: any): asserts v is string { +>#p1 : Symbol(Foo2.#p1, Decl(privateNamesAssertion.ts, 12, 12)) +>v : Symbol(v, Decl(privateNamesAssertion.ts, 13, 8)) +>v : Symbol(v, Decl(privateNamesAssertion.ts, 13, 8)) + + if (typeof v !== "string") { +>v : Symbol(v, Decl(privateNamesAssertion.ts, 13, 8)) + + throw new Error(); +>Error : Symbol(Error, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2022.error.d.ts, --, --)) + } + } + m1(v: unknown) { +>m1 : Symbol(Foo2.m1, Decl(privateNamesAssertion.ts, 17, 5)) +>v : Symbol(v, Decl(privateNamesAssertion.ts, 18, 7)) + + this.#p1(v); +>this.#p1 : Symbol(Foo2.#p1, Decl(privateNamesAssertion.ts, 12, 12)) +>this : Symbol(Foo2, Decl(privateNamesAssertion.ts, 10, 1)) +>v : Symbol(v, Decl(privateNamesAssertion.ts, 18, 7)) + + v; +>v : Symbol(v, Decl(privateNamesAssertion.ts, 18, 7)) + } +} + diff --git a/tests/baselines/reference/privateNamesAssertion(target=esnext).types b/tests/baselines/reference/privateNamesAssertion(target=esnext).types new file mode 100644 index 0000000000000..44a052728e9eb --- /dev/null +++ b/tests/baselines/reference/privateNamesAssertion(target=esnext).types @@ -0,0 +1,69 @@ +=== tests/cases/conformance/classes/members/privateNames/privateNamesAssertion.ts === +class Foo { +>Foo : Foo + + #p1: (v: any) => asserts v is string = (v) => { +>#p1 : (v: any) => asserts v is string +>v : any +>(v) => { if (typeof v !== "string") { throw new Error(); } } : (v: any) => void +>v : any + + if (typeof v !== "string") { +>typeof v !== "string" : boolean +>typeof v : "string" | "number" | "bigint" | "boolean" | "symbol" | "undefined" | "object" | "function" +>v : any +>"string" : "string" + + throw new Error(); +>new Error() : Error +>Error : ErrorConstructor + } + } + m1(v: unknown) { +>m1 : (v: unknown) => void +>v : unknown + + this.#p1(v); +>this.#p1(v) : void +>this.#p1 : (v: any) => asserts v is string +>this : this +>v : unknown + + v; +>v : string + } +} + +class Foo2 { +>Foo2 : Foo2 + + #p1(v: any): asserts v is string { +>#p1 : (v: any) => asserts v is string +>v : any + + if (typeof v !== "string") { +>typeof v !== "string" : boolean +>typeof v : "string" | "number" | "bigint" | "boolean" | "symbol" | "undefined" | "object" | "function" +>v : any +>"string" : "string" + + throw new Error(); +>new Error() : Error +>Error : ErrorConstructor + } + } + m1(v: unknown) { +>m1 : (v: unknown) => void +>v : unknown + + this.#p1(v); +>this.#p1(v) : void +>this.#p1 : (v: any) => asserts v is string +>this : this +>v : unknown + + v; +>v : string + } +} + diff --git a/tests/baselines/reference/promiseAllOnAny01.symbols b/tests/baselines/reference/promiseAllOnAny01.symbols new file mode 100644 index 0000000000000..3a31306889f2b --- /dev/null +++ b/tests/baselines/reference/promiseAllOnAny01.symbols @@ -0,0 +1,19 @@ +=== tests/cases/compiler/promiseAllOnAny01.ts === +async function foo(x: any) { +>foo : Symbol(foo, Decl(promiseAllOnAny01.ts, 0, 0)) +>x : Symbol(x, Decl(promiseAllOnAny01.ts, 0, 19)) + + let abc = await Promise.all(x); +>abc : Symbol(abc, Decl(promiseAllOnAny01.ts, 1, 7)) +>Promise.all : Symbol(PromiseConstructor.all, Decl(lib.es2015.promise.d.ts, --, --)) +>Promise : Symbol(Promise, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --)) +>all : Symbol(PromiseConstructor.all, Decl(lib.es2015.promise.d.ts, --, --)) +>x : Symbol(x, Decl(promiseAllOnAny01.ts, 0, 19)) + + let result: any[] = abc; +>result : Symbol(result, Decl(promiseAllOnAny01.ts, 2, 7)) +>abc : Symbol(abc, Decl(promiseAllOnAny01.ts, 1, 7)) + + return result; +>result : Symbol(result, Decl(promiseAllOnAny01.ts, 2, 7)) +} diff --git a/tests/baselines/reference/promiseAllOnAny01.types b/tests/baselines/reference/promiseAllOnAny01.types new file mode 100644 index 0000000000000..c0431773e66d5 --- /dev/null +++ b/tests/baselines/reference/promiseAllOnAny01.types @@ -0,0 +1,21 @@ +=== tests/cases/compiler/promiseAllOnAny01.ts === +async function foo(x: any) { +>foo : (x: any) => Promise +>x : any + + let abc = await Promise.all(x); +>abc : any[] +>await Promise.all(x) : any[] +>Promise.all(x) : Promise +>Promise.all : (values: T) => Promise<{ -readonly [P in keyof T]: Awaited; }> +>Promise : PromiseConstructor +>all : (values: T) => Promise<{ -readonly [P in keyof T]: Awaited; }> +>x : any + + let result: any[] = abc; +>result : any[] +>abc : any[] + + return result; +>result : any[] +} diff --git a/tests/baselines/reference/promisePermutations.errors.txt b/tests/baselines/reference/promisePermutations.errors.txt index b5e02539b4805..e031002905c3d 100644 --- a/tests/baselines/reference/promisePermutations.errors.txt +++ b/tests/baselines/reference/promisePermutations.errors.txt @@ -447,7 +447,7 @@ tests/cases/compiler/promisePermutations.ts(160,21): error TS2769: No overload m !!! error TS2769: The last overload gave the following error. !!! error TS2769: Argument of type '(x: any) => IPromise' is not assignable to parameter of type '(error: any) => Promise'. !!! error TS2769: Property 'catch' is missing in type 'IPromise' but required in type 'Promise'. -!!! related TS2728 /.ts/lib.es5.d.ts:1509:5: 'catch' is declared here. +!!! related TS2728 /.ts/lib.es5.d.ts:1515:5: 'catch' is declared here. !!! related TS2771 tests/cases/compiler/promisePermutations.ts:5:5: The last overload is declared here. var s10g = s10.then(testFunctionP, nIPromise, sIPromise).then(sPromise, sIPromise, sIPromise); // ok diff --git a/tests/baselines/reference/promisePermutations2.errors.txt b/tests/baselines/reference/promisePermutations2.errors.txt index 8de6ad217d058..c6b8f3d344504 100644 --- a/tests/baselines/reference/promisePermutations2.errors.txt +++ b/tests/baselines/reference/promisePermutations2.errors.txt @@ -351,7 +351,7 @@ tests/cases/compiler/promisePermutations2.ts(159,21): error TS2345: Argument of ~~~~~~~~~ !!! error TS2345: Argument of type '(x: any) => IPromise' is not assignable to parameter of type '(error: any) => Promise'. !!! error TS2345: Property 'catch' is missing in type 'IPromise' but required in type 'Promise'. -!!! related TS2728 /.ts/lib.es5.d.ts:1509:5: 'catch' is declared here. +!!! related TS2728 /.ts/lib.es5.d.ts:1515:5: 'catch' is declared here. var s10g = s10.then(testFunctionP, nIPromise, sIPromise).then(sPromise, sIPromise, sIPromise); // ok var r11: IPromise; diff --git a/tests/baselines/reference/promisePermutations3.errors.txt b/tests/baselines/reference/promisePermutations3.errors.txt index 23690f42545f2..7cbd6bafe458c 100644 --- a/tests/baselines/reference/promisePermutations3.errors.txt +++ b/tests/baselines/reference/promisePermutations3.errors.txt @@ -398,7 +398,7 @@ tests/cases/compiler/promisePermutations3.ts(165,21): error TS2345: Argument of !!! error TS2769: The last overload gave the following error. !!! error TS2769: Argument of type '(x: any) => IPromise' is not assignable to parameter of type '(error: any) => Promise'. !!! error TS2769: Property 'catch' is missing in type 'IPromise' but required in type 'Promise'. -!!! related TS2728 /.ts/lib.es5.d.ts:1509:5: 'catch' is declared here. +!!! related TS2728 /.ts/lib.es5.d.ts:1515:5: 'catch' is declared here. !!! related TS2771 tests/cases/compiler/promisePermutations3.ts:7:5: The last overload is declared here. var s10g = s10.then(testFunctionP, nIPromise, sIPromise).then(sPromise, sIPromise, sIPromise); // ok @@ -445,5 +445,5 @@ tests/cases/compiler/promisePermutations3.ts(165,21): error TS2345: Argument of ~~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '{ (x: T): IPromise; (x: T, y: T): Promise; }' is not assignable to parameter of type '(value: (x: any) => any) => Promise'. !!! error TS2345: Property 'catch' is missing in type 'IPromise' but required in type 'Promise'. -!!! related TS2728 /.ts/lib.es5.d.ts:1509:5: 'catch' is declared here. +!!! related TS2728 /.ts/lib.es5.d.ts:1515:5: 'catch' is declared here. var s12c = s12.then(testFunction12P, testFunction12, testFunction12); // ok \ No newline at end of file diff --git a/tests/baselines/reference/protectedMembersThisParameter.errors.txt b/tests/baselines/reference/protectedMembersThisParameter.errors.txt new file mode 100644 index 0000000000000..526b8a487cd4f --- /dev/null +++ b/tests/baselines/reference/protectedMembersThisParameter.errors.txt @@ -0,0 +1,147 @@ +tests/cases/compiler/protectedMembersThisParameter.ts(9,9): error TS2445: Property 'secret' is protected and only accessible within class 'Message' and its subclasses. +tests/cases/compiler/protectedMembersThisParameter.ts(30,7): error TS2445: Property 'b' is protected and only accessible within class 'B' and its subclasses. +tests/cases/compiler/protectedMembersThisParameter.ts(41,7): error TS2446: Property 'a' is protected and only accessible through an instance of class 'C'. This is an instance of class 'B'. +tests/cases/compiler/protectedMembersThisParameter.ts(42,7): error TS2445: Property 'b' is protected and only accessible within class 'B' and its subclasses. +tests/cases/compiler/protectedMembersThisParameter.ts(46,7): error TS2445: Property 'a' is protected and only accessible within class 'A' and its subclasses. +tests/cases/compiler/protectedMembersThisParameter.ts(47,7): error TS2445: Property 'b' is protected and only accessible within class 'B' and its subclasses. +tests/cases/compiler/protectedMembersThisParameter.ts(51,7): error TS2445: Property 'a' is protected and only accessible within class 'A' and its subclasses. +tests/cases/compiler/protectedMembersThisParameter.ts(52,7): error TS2445: Property 'b' is protected and only accessible within class 'B' and its subclasses. +tests/cases/compiler/protectedMembersThisParameter.ts(55,7): error TS2445: Property 'a' is protected and only accessible within class 'A' and its subclasses. +tests/cases/compiler/protectedMembersThisParameter.ts(56,7): error TS2445: Property 'b' is protected and only accessible within class 'B' and its subclasses. +tests/cases/compiler/protectedMembersThisParameter.ts(64,9): error TS2445: Property 'd1' is protected and only accessible within class 'D1' and its subclasses. +tests/cases/compiler/protectedMembersThisParameter.ts(68,9): error TS2445: Property 'd1' is protected and only accessible within class 'D1' and its subclasses. +tests/cases/compiler/protectedMembersThisParameter.ts(76,9): error TS2445: Property 'd' is protected and only accessible within class 'D2' and its subclasses. +tests/cases/compiler/protectedMembersThisParameter.ts(77,9): error TS2445: Property 'd2' is protected and only accessible within class 'D2' and its subclasses. +tests/cases/compiler/protectedMembersThisParameter.ts(80,9): error TS2445: Property 'd' is protected and only accessible within class 'D2' and its subclasses. +tests/cases/compiler/protectedMembersThisParameter.ts(81,9): error TS2445: Property 'd2' is protected and only accessible within class 'D2' and its subclasses. + + +==== tests/cases/compiler/protectedMembersThisParameter.ts (16 errors) ==== + class Message { + protected secret(): void {} + } + class MessageWrapper { + message: Message = new Message(); + wrap() { + let m = this.message; + let f = function(this: T) { + m.secret(); // should error + ~~~~~~ +!!! error TS2445: Property 'secret' is protected and only accessible within class 'Message' and its subclasses. + } + } + } + + class A { + protected a() {} + } + class B extends A { + protected b() {} + } + class C extends A { + protected c() {} + } + class Z { + protected z() {} + } + + function bA(this: T, arg: B) { + this.a(); + arg.a(); + arg.b(); // should error to avoid cross-hierarchy protected access https://www.typescriptlang.org/docs/handbook/2/classes.html#cross-hierarchy-protected-access + ~ +!!! error TS2445: Property 'b' is protected and only accessible within class 'B' and its subclasses. + } + function bB(this: T, arg: B) { + this.a(); + this.b(); + arg.a(); + arg.b(); + } + function bC(this: T, arg: B) { + this.a(); + this.c(); + arg.a(); // should error + ~ +!!! error TS2446: Property 'a' is protected and only accessible through an instance of class 'C'. This is an instance of class 'B'. + arg.b(); // should error + ~ +!!! error TS2445: Property 'b' is protected and only accessible within class 'B' and its subclasses. + } + function bZ(this: T, arg: B) { + this.z(); + arg.a(); // should error + ~ +!!! error TS2445: Property 'a' is protected and only accessible within class 'A' and its subclasses. + arg.b(); // should error + ~ +!!! error TS2445: Property 'b' is protected and only accessible within class 'B' and its subclasses. + } + function bString(this: T, arg: B) { + this.toLowerCase(); + arg.a(); // should error + ~ +!!! error TS2445: Property 'a' is protected and only accessible within class 'A' and its subclasses. + arg.b(); // should error + ~ +!!! error TS2445: Property 'b' is protected and only accessible within class 'B' and its subclasses. + } + function bAny(this: T, arg: B) { + arg.a(); // should error + ~ +!!! error TS2445: Property 'a' is protected and only accessible within class 'A' and its subclasses. + arg.b(); // should error + ~ +!!! error TS2445: Property 'b' is protected and only accessible within class 'B' and its subclasses. + } + + class D { + protected d() {} + + derived1(arg: D1) { + arg.d(); + arg.d1(); // should error + ~~ +!!! error TS2445: Property 'd1' is protected and only accessible within class 'D1' and its subclasses. + } + derived1ThisD(this: D, arg: D1) { + arg.d(); + arg.d1(); // should error + ~~ +!!! error TS2445: Property 'd1' is protected and only accessible within class 'D1' and its subclasses. + } + derived1ThisD1(this: D1, arg: D1) { + arg.d(); + arg.d1(); + } + + derived2(arg: D2) { + arg.d(); // should error because of overridden method in D2 + ~ +!!! error TS2445: Property 'd' is protected and only accessible within class 'D2' and its subclasses. + arg.d2(); // should error + ~~ +!!! error TS2445: Property 'd2' is protected and only accessible within class 'D2' and its subclasses. + } + derived2ThisD(this: D, arg: D2) { + arg.d(); // should error because of overridden method in D2 + ~ +!!! error TS2445: Property 'd' is protected and only accessible within class 'D2' and its subclasses. + arg.d2(); // should error + ~~ +!!! error TS2445: Property 'd2' is protected and only accessible within class 'D2' and its subclasses. + } + derived2ThisD2(this: D2, arg: D2) { + arg.d(); + arg.d2(); + } + } + class D1 extends D { + protected d1() {} + } + class D2 extends D { + protected d() {} + protected d2() {} + } + + \ No newline at end of file diff --git a/tests/baselines/reference/protectedMembersThisParameter.js b/tests/baselines/reference/protectedMembersThisParameter.js new file mode 100644 index 0000000000000..96b331a453f92 --- /dev/null +++ b/tests/baselines/reference/protectedMembersThisParameter.js @@ -0,0 +1,238 @@ +//// [protectedMembersThisParameter.ts] +class Message { + protected secret(): void {} +} +class MessageWrapper { + message: Message = new Message(); + wrap() { + let m = this.message; + let f = function(this: T) { + m.secret(); // should error + } + } +} + +class A { + protected a() {} +} +class B extends A { + protected b() {} +} +class C extends A { + protected c() {} +} +class Z { + protected z() {} +} + +function bA(this: T, arg: B) { + this.a(); + arg.a(); + arg.b(); // should error to avoid cross-hierarchy protected access https://www.typescriptlang.org/docs/handbook/2/classes.html#cross-hierarchy-protected-access +} +function bB(this: T, arg: B) { + this.a(); + this.b(); + arg.a(); + arg.b(); +} +function bC(this: T, arg: B) { + this.a(); + this.c(); + arg.a(); // should error + arg.b(); // should error +} +function bZ(this: T, arg: B) { + this.z(); + arg.a(); // should error + arg.b(); // should error +} +function bString(this: T, arg: B) { + this.toLowerCase(); + arg.a(); // should error + arg.b(); // should error +} +function bAny(this: T, arg: B) { + arg.a(); // should error + arg.b(); // should error +} + +class D { + protected d() {} + + derived1(arg: D1) { + arg.d(); + arg.d1(); // should error + } + derived1ThisD(this: D, arg: D1) { + arg.d(); + arg.d1(); // should error + } + derived1ThisD1(this: D1, arg: D1) { + arg.d(); + arg.d1(); + } + + derived2(arg: D2) { + arg.d(); // should error because of overridden method in D2 + arg.d2(); // should error + } + derived2ThisD(this: D, arg: D2) { + arg.d(); // should error because of overridden method in D2 + arg.d2(); // should error + } + derived2ThisD2(this: D2, arg: D2) { + arg.d(); + arg.d2(); + } +} +class D1 extends D { + protected d1() {} +} +class D2 extends D { + protected d() {} + protected d2() {} +} + + + +//// [protectedMembersThisParameter.js] +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var Message = /** @class */ (function () { + function Message() { + } + Message.prototype.secret = function () { }; + return Message; +}()); +var MessageWrapper = /** @class */ (function () { + function MessageWrapper() { + this.message = new Message(); + } + MessageWrapper.prototype.wrap = function () { + var m = this.message; + var f = function () { + m.secret(); // should error + }; + }; + return MessageWrapper; +}()); +var A = /** @class */ (function () { + function A() { + } + A.prototype.a = function () { }; + return A; +}()); +var B = /** @class */ (function (_super) { + __extends(B, _super); + function B() { + return _super !== null && _super.apply(this, arguments) || this; + } + B.prototype.b = function () { }; + return B; +}(A)); +var C = /** @class */ (function (_super) { + __extends(C, _super); + function C() { + return _super !== null && _super.apply(this, arguments) || this; + } + C.prototype.c = function () { }; + return C; +}(A)); +var Z = /** @class */ (function () { + function Z() { + } + Z.prototype.z = function () { }; + return Z; +}()); +function bA(arg) { + this.a(); + arg.a(); + arg.b(); // should error to avoid cross-hierarchy protected access https://www.typescriptlang.org/docs/handbook/2/classes.html#cross-hierarchy-protected-access +} +function bB(arg) { + this.a(); + this.b(); + arg.a(); + arg.b(); +} +function bC(arg) { + this.a(); + this.c(); + arg.a(); // should error + arg.b(); // should error +} +function bZ(arg) { + this.z(); + arg.a(); // should error + arg.b(); // should error +} +function bString(arg) { + this.toLowerCase(); + arg.a(); // should error + arg.b(); // should error +} +function bAny(arg) { + arg.a(); // should error + arg.b(); // should error +} +var D = /** @class */ (function () { + function D() { + } + D.prototype.d = function () { }; + D.prototype.derived1 = function (arg) { + arg.d(); + arg.d1(); // should error + }; + D.prototype.derived1ThisD = function (arg) { + arg.d(); + arg.d1(); // should error + }; + D.prototype.derived1ThisD1 = function (arg) { + arg.d(); + arg.d1(); + }; + D.prototype.derived2 = function (arg) { + arg.d(); // should error because of overridden method in D2 + arg.d2(); // should error + }; + D.prototype.derived2ThisD = function (arg) { + arg.d(); // should error because of overridden method in D2 + arg.d2(); // should error + }; + D.prototype.derived2ThisD2 = function (arg) { + arg.d(); + arg.d2(); + }; + return D; +}()); +var D1 = /** @class */ (function (_super) { + __extends(D1, _super); + function D1() { + return _super !== null && _super.apply(this, arguments) || this; + } + D1.prototype.d1 = function () { }; + return D1; +}(D)); +var D2 = /** @class */ (function (_super) { + __extends(D2, _super); + function D2() { + return _super !== null && _super.apply(this, arguments) || this; + } + D2.prototype.d = function () { }; + D2.prototype.d2 = function () { }; + return D2; +}(D)); diff --git a/tests/baselines/reference/protectedMembersThisParameter.symbols b/tests/baselines/reference/protectedMembersThisParameter.symbols new file mode 100644 index 0000000000000..77090ac764e69 --- /dev/null +++ b/tests/baselines/reference/protectedMembersThisParameter.symbols @@ -0,0 +1,338 @@ +=== tests/cases/compiler/protectedMembersThisParameter.ts === +class Message { +>Message : Symbol(Message, Decl(protectedMembersThisParameter.ts, 0, 0)) + + protected secret(): void {} +>secret : Symbol(Message.secret, Decl(protectedMembersThisParameter.ts, 0, 15)) +} +class MessageWrapper { +>MessageWrapper : Symbol(MessageWrapper, Decl(protectedMembersThisParameter.ts, 2, 1)) + + message: Message = new Message(); +>message : Symbol(MessageWrapper.message, Decl(protectedMembersThisParameter.ts, 3, 22)) +>Message : Symbol(Message, Decl(protectedMembersThisParameter.ts, 0, 0)) +>Message : Symbol(Message, Decl(protectedMembersThisParameter.ts, 0, 0)) + + wrap() { +>wrap : Symbol(MessageWrapper.wrap, Decl(protectedMembersThisParameter.ts, 4, 35)) +>T : Symbol(T, Decl(protectedMembersThisParameter.ts, 5, 7)) + + let m = this.message; +>m : Symbol(m, Decl(protectedMembersThisParameter.ts, 6, 7)) +>this.message : Symbol(MessageWrapper.message, Decl(protectedMembersThisParameter.ts, 3, 22)) +>this : Symbol(MessageWrapper, Decl(protectedMembersThisParameter.ts, 2, 1)) +>message : Symbol(MessageWrapper.message, Decl(protectedMembersThisParameter.ts, 3, 22)) + + let f = function(this: T) { +>f : Symbol(f, Decl(protectedMembersThisParameter.ts, 7, 7)) +>this : Symbol(this, Decl(protectedMembersThisParameter.ts, 7, 21)) +>T : Symbol(T, Decl(protectedMembersThisParameter.ts, 5, 7)) + + m.secret(); // should error +>m.secret : Symbol(Message.secret, Decl(protectedMembersThisParameter.ts, 0, 15)) +>m : Symbol(m, Decl(protectedMembersThisParameter.ts, 6, 7)) +>secret : Symbol(Message.secret, Decl(protectedMembersThisParameter.ts, 0, 15)) + } + } +} + +class A { +>A : Symbol(A, Decl(protectedMembersThisParameter.ts, 11, 1)) + + protected a() {} +>a : Symbol(A.a, Decl(protectedMembersThisParameter.ts, 13, 9)) +} +class B extends A { +>B : Symbol(B, Decl(protectedMembersThisParameter.ts, 15, 1)) +>A : Symbol(A, Decl(protectedMembersThisParameter.ts, 11, 1)) + + protected b() {} +>b : Symbol(B.b, Decl(protectedMembersThisParameter.ts, 16, 19)) +} +class C extends A { +>C : Symbol(C, Decl(protectedMembersThisParameter.ts, 18, 1)) +>A : Symbol(A, Decl(protectedMembersThisParameter.ts, 11, 1)) + + protected c() {} +>c : Symbol(C.c, Decl(protectedMembersThisParameter.ts, 19, 19)) +} +class Z { +>Z : Symbol(Z, Decl(protectedMembersThisParameter.ts, 21, 1)) + + protected z() {} +>z : Symbol(Z.z, Decl(protectedMembersThisParameter.ts, 22, 9)) +} + +function bA(this: T, arg: B) { +>bA : Symbol(bA, Decl(protectedMembersThisParameter.ts, 24, 1)) +>T : Symbol(T, Decl(protectedMembersThisParameter.ts, 26, 12)) +>A : Symbol(A, Decl(protectedMembersThisParameter.ts, 11, 1)) +>this : Symbol(this, Decl(protectedMembersThisParameter.ts, 26, 25)) +>T : Symbol(T, Decl(protectedMembersThisParameter.ts, 26, 12)) +>arg : Symbol(arg, Decl(protectedMembersThisParameter.ts, 26, 33)) +>B : Symbol(B, Decl(protectedMembersThisParameter.ts, 15, 1)) + + this.a(); +>this.a : Symbol(A.a, Decl(protectedMembersThisParameter.ts, 13, 9)) +>this : Symbol(this, Decl(protectedMembersThisParameter.ts, 26, 25)) +>a : Symbol(A.a, Decl(protectedMembersThisParameter.ts, 13, 9)) + + arg.a(); +>arg.a : Symbol(A.a, Decl(protectedMembersThisParameter.ts, 13, 9)) +>arg : Symbol(arg, Decl(protectedMembersThisParameter.ts, 26, 33)) +>a : Symbol(A.a, Decl(protectedMembersThisParameter.ts, 13, 9)) + + arg.b(); // should error to avoid cross-hierarchy protected access https://www.typescriptlang.org/docs/handbook/2/classes.html#cross-hierarchy-protected-access +>arg.b : Symbol(B.b, Decl(protectedMembersThisParameter.ts, 16, 19)) +>arg : Symbol(arg, Decl(protectedMembersThisParameter.ts, 26, 33)) +>b : Symbol(B.b, Decl(protectedMembersThisParameter.ts, 16, 19)) +} +function bB(this: T, arg: B) { +>bB : Symbol(bB, Decl(protectedMembersThisParameter.ts, 30, 1)) +>T : Symbol(T, Decl(protectedMembersThisParameter.ts, 31, 12)) +>B : Symbol(B, Decl(protectedMembersThisParameter.ts, 15, 1)) +>this : Symbol(this, Decl(protectedMembersThisParameter.ts, 31, 25)) +>T : Symbol(T, Decl(protectedMembersThisParameter.ts, 31, 12)) +>arg : Symbol(arg, Decl(protectedMembersThisParameter.ts, 31, 33)) +>B : Symbol(B, Decl(protectedMembersThisParameter.ts, 15, 1)) + + this.a(); +>this.a : Symbol(A.a, Decl(protectedMembersThisParameter.ts, 13, 9)) +>this : Symbol(this, Decl(protectedMembersThisParameter.ts, 31, 25)) +>a : Symbol(A.a, Decl(protectedMembersThisParameter.ts, 13, 9)) + + this.b(); +>this.b : Symbol(B.b, Decl(protectedMembersThisParameter.ts, 16, 19)) +>this : Symbol(this, Decl(protectedMembersThisParameter.ts, 31, 25)) +>b : Symbol(B.b, Decl(protectedMembersThisParameter.ts, 16, 19)) + + arg.a(); +>arg.a : Symbol(A.a, Decl(protectedMembersThisParameter.ts, 13, 9)) +>arg : Symbol(arg, Decl(protectedMembersThisParameter.ts, 31, 33)) +>a : Symbol(A.a, Decl(protectedMembersThisParameter.ts, 13, 9)) + + arg.b(); +>arg.b : Symbol(B.b, Decl(protectedMembersThisParameter.ts, 16, 19)) +>arg : Symbol(arg, Decl(protectedMembersThisParameter.ts, 31, 33)) +>b : Symbol(B.b, Decl(protectedMembersThisParameter.ts, 16, 19)) +} +function bC(this: T, arg: B) { +>bC : Symbol(bC, Decl(protectedMembersThisParameter.ts, 36, 1)) +>T : Symbol(T, Decl(protectedMembersThisParameter.ts, 37, 12)) +>C : Symbol(C, Decl(protectedMembersThisParameter.ts, 18, 1)) +>this : Symbol(this, Decl(protectedMembersThisParameter.ts, 37, 25)) +>T : Symbol(T, Decl(protectedMembersThisParameter.ts, 37, 12)) +>arg : Symbol(arg, Decl(protectedMembersThisParameter.ts, 37, 33)) +>B : Symbol(B, Decl(protectedMembersThisParameter.ts, 15, 1)) + + this.a(); +>this.a : Symbol(A.a, Decl(protectedMembersThisParameter.ts, 13, 9)) +>this : Symbol(this, Decl(protectedMembersThisParameter.ts, 37, 25)) +>a : Symbol(A.a, Decl(protectedMembersThisParameter.ts, 13, 9)) + + this.c(); +>this.c : Symbol(C.c, Decl(protectedMembersThisParameter.ts, 19, 19)) +>this : Symbol(this, Decl(protectedMembersThisParameter.ts, 37, 25)) +>c : Symbol(C.c, Decl(protectedMembersThisParameter.ts, 19, 19)) + + arg.a(); // should error +>arg.a : Symbol(A.a, Decl(protectedMembersThisParameter.ts, 13, 9)) +>arg : Symbol(arg, Decl(protectedMembersThisParameter.ts, 37, 33)) +>a : Symbol(A.a, Decl(protectedMembersThisParameter.ts, 13, 9)) + + arg.b(); // should error +>arg.b : Symbol(B.b, Decl(protectedMembersThisParameter.ts, 16, 19)) +>arg : Symbol(arg, Decl(protectedMembersThisParameter.ts, 37, 33)) +>b : Symbol(B.b, Decl(protectedMembersThisParameter.ts, 16, 19)) +} +function bZ(this: T, arg: B) { +>bZ : Symbol(bZ, Decl(protectedMembersThisParameter.ts, 42, 1)) +>T : Symbol(T, Decl(protectedMembersThisParameter.ts, 43, 12)) +>Z : Symbol(Z, Decl(protectedMembersThisParameter.ts, 21, 1)) +>this : Symbol(this, Decl(protectedMembersThisParameter.ts, 43, 25)) +>T : Symbol(T, Decl(protectedMembersThisParameter.ts, 43, 12)) +>arg : Symbol(arg, Decl(protectedMembersThisParameter.ts, 43, 33)) +>B : Symbol(B, Decl(protectedMembersThisParameter.ts, 15, 1)) + + this.z(); +>this.z : Symbol(Z.z, Decl(protectedMembersThisParameter.ts, 22, 9)) +>this : Symbol(this, Decl(protectedMembersThisParameter.ts, 43, 25)) +>z : Symbol(Z.z, Decl(protectedMembersThisParameter.ts, 22, 9)) + + arg.a(); // should error +>arg.a : Symbol(A.a, Decl(protectedMembersThisParameter.ts, 13, 9)) +>arg : Symbol(arg, Decl(protectedMembersThisParameter.ts, 43, 33)) +>a : Symbol(A.a, Decl(protectedMembersThisParameter.ts, 13, 9)) + + arg.b(); // should error +>arg.b : Symbol(B.b, Decl(protectedMembersThisParameter.ts, 16, 19)) +>arg : Symbol(arg, Decl(protectedMembersThisParameter.ts, 43, 33)) +>b : Symbol(B.b, Decl(protectedMembersThisParameter.ts, 16, 19)) +} +function bString(this: T, arg: B) { +>bString : Symbol(bString, Decl(protectedMembersThisParameter.ts, 47, 1)) +>T : Symbol(T, Decl(protectedMembersThisParameter.ts, 48, 17)) +>this : Symbol(this, Decl(protectedMembersThisParameter.ts, 48, 35)) +>T : Symbol(T, Decl(protectedMembersThisParameter.ts, 48, 17)) +>arg : Symbol(arg, Decl(protectedMembersThisParameter.ts, 48, 43)) +>B : Symbol(B, Decl(protectedMembersThisParameter.ts, 15, 1)) + + this.toLowerCase(); +>this.toLowerCase : Symbol(String.toLowerCase, Decl(lib.es5.d.ts, --, --)) +>this : Symbol(this, Decl(protectedMembersThisParameter.ts, 48, 35)) +>toLowerCase : Symbol(String.toLowerCase, Decl(lib.es5.d.ts, --, --)) + + arg.a(); // should error +>arg.a : Symbol(A.a, Decl(protectedMembersThisParameter.ts, 13, 9)) +>arg : Symbol(arg, Decl(protectedMembersThisParameter.ts, 48, 43)) +>a : Symbol(A.a, Decl(protectedMembersThisParameter.ts, 13, 9)) + + arg.b(); // should error +>arg.b : Symbol(B.b, Decl(protectedMembersThisParameter.ts, 16, 19)) +>arg : Symbol(arg, Decl(protectedMembersThisParameter.ts, 48, 43)) +>b : Symbol(B.b, Decl(protectedMembersThisParameter.ts, 16, 19)) +} +function bAny(this: T, arg: B) { +>bAny : Symbol(bAny, Decl(protectedMembersThisParameter.ts, 52, 1)) +>T : Symbol(T, Decl(protectedMembersThisParameter.ts, 53, 14)) +>this : Symbol(this, Decl(protectedMembersThisParameter.ts, 53, 17)) +>T : Symbol(T, Decl(protectedMembersThisParameter.ts, 53, 14)) +>arg : Symbol(arg, Decl(protectedMembersThisParameter.ts, 53, 25)) +>B : Symbol(B, Decl(protectedMembersThisParameter.ts, 15, 1)) + + arg.a(); // should error +>arg.a : Symbol(A.a, Decl(protectedMembersThisParameter.ts, 13, 9)) +>arg : Symbol(arg, Decl(protectedMembersThisParameter.ts, 53, 25)) +>a : Symbol(A.a, Decl(protectedMembersThisParameter.ts, 13, 9)) + + arg.b(); // should error +>arg.b : Symbol(B.b, Decl(protectedMembersThisParameter.ts, 16, 19)) +>arg : Symbol(arg, Decl(protectedMembersThisParameter.ts, 53, 25)) +>b : Symbol(B.b, Decl(protectedMembersThisParameter.ts, 16, 19)) +} + +class D { +>D : Symbol(D, Decl(protectedMembersThisParameter.ts, 56, 1)) + + protected d() {} +>d : Symbol(D.d, Decl(protectedMembersThisParameter.ts, 58, 9)) + + derived1(arg: D1) { +>derived1 : Symbol(D.derived1, Decl(protectedMembersThisParameter.ts, 59, 18)) +>arg : Symbol(arg, Decl(protectedMembersThisParameter.ts, 61, 11)) +>D1 : Symbol(D1, Decl(protectedMembersThisParameter.ts, 86, 1)) + + arg.d(); +>arg.d : Symbol(D.d, Decl(protectedMembersThisParameter.ts, 58, 9)) +>arg : Symbol(arg, Decl(protectedMembersThisParameter.ts, 61, 11)) +>d : Symbol(D.d, Decl(protectedMembersThisParameter.ts, 58, 9)) + + arg.d1(); // should error +>arg.d1 : Symbol(D1.d1, Decl(protectedMembersThisParameter.ts, 87, 20)) +>arg : Symbol(arg, Decl(protectedMembersThisParameter.ts, 61, 11)) +>d1 : Symbol(D1.d1, Decl(protectedMembersThisParameter.ts, 87, 20)) + } + derived1ThisD(this: D, arg: D1) { +>derived1ThisD : Symbol(D.derived1ThisD, Decl(protectedMembersThisParameter.ts, 64, 3)) +>this : Symbol(this, Decl(protectedMembersThisParameter.ts, 65, 16)) +>D : Symbol(D, Decl(protectedMembersThisParameter.ts, 56, 1)) +>arg : Symbol(arg, Decl(protectedMembersThisParameter.ts, 65, 24)) +>D1 : Symbol(D1, Decl(protectedMembersThisParameter.ts, 86, 1)) + + arg.d(); +>arg.d : Symbol(D.d, Decl(protectedMembersThisParameter.ts, 58, 9)) +>arg : Symbol(arg, Decl(protectedMembersThisParameter.ts, 65, 24)) +>d : Symbol(D.d, Decl(protectedMembersThisParameter.ts, 58, 9)) + + arg.d1(); // should error +>arg.d1 : Symbol(D1.d1, Decl(protectedMembersThisParameter.ts, 87, 20)) +>arg : Symbol(arg, Decl(protectedMembersThisParameter.ts, 65, 24)) +>d1 : Symbol(D1.d1, Decl(protectedMembersThisParameter.ts, 87, 20)) + } + derived1ThisD1(this: D1, arg: D1) { +>derived1ThisD1 : Symbol(D.derived1ThisD1, Decl(protectedMembersThisParameter.ts, 68, 3)) +>this : Symbol(this, Decl(protectedMembersThisParameter.ts, 69, 17)) +>D1 : Symbol(D1, Decl(protectedMembersThisParameter.ts, 86, 1)) +>arg : Symbol(arg, Decl(protectedMembersThisParameter.ts, 69, 26)) +>D1 : Symbol(D1, Decl(protectedMembersThisParameter.ts, 86, 1)) + + arg.d(); +>arg.d : Symbol(D.d, Decl(protectedMembersThisParameter.ts, 58, 9)) +>arg : Symbol(arg, Decl(protectedMembersThisParameter.ts, 69, 26)) +>d : Symbol(D.d, Decl(protectedMembersThisParameter.ts, 58, 9)) + + arg.d1(); +>arg.d1 : Symbol(D1.d1, Decl(protectedMembersThisParameter.ts, 87, 20)) +>arg : Symbol(arg, Decl(protectedMembersThisParameter.ts, 69, 26)) +>d1 : Symbol(D1.d1, Decl(protectedMembersThisParameter.ts, 87, 20)) + } + + derived2(arg: D2) { +>derived2 : Symbol(D.derived2, Decl(protectedMembersThisParameter.ts, 72, 3)) +>arg : Symbol(arg, Decl(protectedMembersThisParameter.ts, 74, 11)) +>D2 : Symbol(D2, Decl(protectedMembersThisParameter.ts, 89, 1)) + + arg.d(); // should error because of overridden method in D2 +>arg.d : Symbol(D2.d, Decl(protectedMembersThisParameter.ts, 90, 20)) +>arg : Symbol(arg, Decl(protectedMembersThisParameter.ts, 74, 11)) +>d : Symbol(D2.d, Decl(protectedMembersThisParameter.ts, 90, 20)) + + arg.d2(); // should error +>arg.d2 : Symbol(D2.d2, Decl(protectedMembersThisParameter.ts, 91, 18)) +>arg : Symbol(arg, Decl(protectedMembersThisParameter.ts, 74, 11)) +>d2 : Symbol(D2.d2, Decl(protectedMembersThisParameter.ts, 91, 18)) + } + derived2ThisD(this: D, arg: D2) { +>derived2ThisD : Symbol(D.derived2ThisD, Decl(protectedMembersThisParameter.ts, 77, 3)) +>this : Symbol(this, Decl(protectedMembersThisParameter.ts, 78, 16)) +>D : Symbol(D, Decl(protectedMembersThisParameter.ts, 56, 1)) +>arg : Symbol(arg, Decl(protectedMembersThisParameter.ts, 78, 24)) +>D2 : Symbol(D2, Decl(protectedMembersThisParameter.ts, 89, 1)) + + arg.d(); // should error because of overridden method in D2 +>arg.d : Symbol(D2.d, Decl(protectedMembersThisParameter.ts, 90, 20)) +>arg : Symbol(arg, Decl(protectedMembersThisParameter.ts, 78, 24)) +>d : Symbol(D2.d, Decl(protectedMembersThisParameter.ts, 90, 20)) + + arg.d2(); // should error +>arg.d2 : Symbol(D2.d2, Decl(protectedMembersThisParameter.ts, 91, 18)) +>arg : Symbol(arg, Decl(protectedMembersThisParameter.ts, 78, 24)) +>d2 : Symbol(D2.d2, Decl(protectedMembersThisParameter.ts, 91, 18)) + } + derived2ThisD2(this: D2, arg: D2) { +>derived2ThisD2 : Symbol(D.derived2ThisD2, Decl(protectedMembersThisParameter.ts, 81, 3)) +>this : Symbol(this, Decl(protectedMembersThisParameter.ts, 82, 17)) +>D2 : Symbol(D2, Decl(protectedMembersThisParameter.ts, 89, 1)) +>arg : Symbol(arg, Decl(protectedMembersThisParameter.ts, 82, 26)) +>D2 : Symbol(D2, Decl(protectedMembersThisParameter.ts, 89, 1)) + + arg.d(); +>arg.d : Symbol(D2.d, Decl(protectedMembersThisParameter.ts, 90, 20)) +>arg : Symbol(arg, Decl(protectedMembersThisParameter.ts, 82, 26)) +>d : Symbol(D2.d, Decl(protectedMembersThisParameter.ts, 90, 20)) + + arg.d2(); +>arg.d2 : Symbol(D2.d2, Decl(protectedMembersThisParameter.ts, 91, 18)) +>arg : Symbol(arg, Decl(protectedMembersThisParameter.ts, 82, 26)) +>d2 : Symbol(D2.d2, Decl(protectedMembersThisParameter.ts, 91, 18)) + } +} +class D1 extends D { +>D1 : Symbol(D1, Decl(protectedMembersThisParameter.ts, 86, 1)) +>D : Symbol(D, Decl(protectedMembersThisParameter.ts, 56, 1)) + + protected d1() {} +>d1 : Symbol(D1.d1, Decl(protectedMembersThisParameter.ts, 87, 20)) +} +class D2 extends D { +>D2 : Symbol(D2, Decl(protectedMembersThisParameter.ts, 89, 1)) +>D : Symbol(D, Decl(protectedMembersThisParameter.ts, 56, 1)) + + protected d() {} +>d : Symbol(D2.d, Decl(protectedMembersThisParameter.ts, 90, 20)) + + protected d2() {} +>d2 : Symbol(D2.d2, Decl(protectedMembersThisParameter.ts, 91, 18)) +} + + diff --git a/tests/baselines/reference/protectedMembersThisParameter.types b/tests/baselines/reference/protectedMembersThisParameter.types new file mode 100644 index 0000000000000..5ecbd9bf1011e --- /dev/null +++ b/tests/baselines/reference/protectedMembersThisParameter.types @@ -0,0 +1,337 @@ +=== tests/cases/compiler/protectedMembersThisParameter.ts === +class Message { +>Message : Message + + protected secret(): void {} +>secret : () => void +} +class MessageWrapper { +>MessageWrapper : MessageWrapper + + message: Message = new Message(); +>message : Message +>new Message() : Message +>Message : typeof Message + + wrap() { +>wrap : () => void + + let m = this.message; +>m : Message +>this.message : Message +>this : this +>message : Message + + let f = function(this: T) { +>f : (this: T) => void +>function(this: T) { m.secret(); // should error } : (this: T) => void +>this : T + + m.secret(); // should error +>m.secret() : void +>m.secret : () => void +>m : Message +>secret : () => void + } + } +} + +class A { +>A : A + + protected a() {} +>a : () => void +} +class B extends A { +>B : B +>A : A + + protected b() {} +>b : () => void +} +class C extends A { +>C : C +>A : A + + protected c() {} +>c : () => void +} +class Z { +>Z : Z + + protected z() {} +>z : () => void +} + +function bA(this: T, arg: B) { +>bA : (this: T, arg: B) => void +>this : T +>arg : B + + this.a(); +>this.a() : void +>this.a : () => void +>this : T +>a : () => void + + arg.a(); +>arg.a() : void +>arg.a : () => void +>arg : B +>a : () => void + + arg.b(); // should error to avoid cross-hierarchy protected access https://www.typescriptlang.org/docs/handbook/2/classes.html#cross-hierarchy-protected-access +>arg.b() : void +>arg.b : () => void +>arg : B +>b : () => void +} +function bB(this: T, arg: B) { +>bB : (this: T, arg: B) => void +>this : T +>arg : B + + this.a(); +>this.a() : void +>this.a : () => void +>this : T +>a : () => void + + this.b(); +>this.b() : void +>this.b : () => void +>this : T +>b : () => void + + arg.a(); +>arg.a() : void +>arg.a : () => void +>arg : B +>a : () => void + + arg.b(); +>arg.b() : void +>arg.b : () => void +>arg : B +>b : () => void +} +function bC(this: T, arg: B) { +>bC : (this: T, arg: B) => void +>this : T +>arg : B + + this.a(); +>this.a() : void +>this.a : () => void +>this : T +>a : () => void + + this.c(); +>this.c() : void +>this.c : () => void +>this : T +>c : () => void + + arg.a(); // should error +>arg.a() : void +>arg.a : () => void +>arg : B +>a : () => void + + arg.b(); // should error +>arg.b() : void +>arg.b : () => void +>arg : B +>b : () => void +} +function bZ(this: T, arg: B) { +>bZ : (this: T, arg: B) => void +>this : T +>arg : B + + this.z(); +>this.z() : void +>this.z : () => void +>this : T +>z : () => void + + arg.a(); // should error +>arg.a() : void +>arg.a : () => void +>arg : B +>a : () => void + + arg.b(); // should error +>arg.b() : void +>arg.b : () => void +>arg : B +>b : () => void +} +function bString(this: T, arg: B) { +>bString : (this: T, arg: B) => void +>this : T +>arg : B + + this.toLowerCase(); +>this.toLowerCase() : string +>this.toLowerCase : () => string +>this : T +>toLowerCase : () => string + + arg.a(); // should error +>arg.a() : void +>arg.a : () => void +>arg : B +>a : () => void + + arg.b(); // should error +>arg.b() : void +>arg.b : () => void +>arg : B +>b : () => void +} +function bAny(this: T, arg: B) { +>bAny : (this: T, arg: B) => void +>this : T +>arg : B + + arg.a(); // should error +>arg.a() : void +>arg.a : () => void +>arg : B +>a : () => void + + arg.b(); // should error +>arg.b() : void +>arg.b : () => void +>arg : B +>b : () => void +} + +class D { +>D : D + + protected d() {} +>d : () => void + + derived1(arg: D1) { +>derived1 : (arg: D1) => void +>arg : D1 + + arg.d(); +>arg.d() : void +>arg.d : () => void +>arg : D1 +>d : () => void + + arg.d1(); // should error +>arg.d1() : void +>arg.d1 : () => void +>arg : D1 +>d1 : () => void + } + derived1ThisD(this: D, arg: D1) { +>derived1ThisD : (this: D, arg: D1) => void +>this : D +>arg : D1 + + arg.d(); +>arg.d() : void +>arg.d : () => void +>arg : D1 +>d : () => void + + arg.d1(); // should error +>arg.d1() : void +>arg.d1 : () => void +>arg : D1 +>d1 : () => void + } + derived1ThisD1(this: D1, arg: D1) { +>derived1ThisD1 : (this: D1, arg: D1) => void +>this : D1 +>arg : D1 + + arg.d(); +>arg.d() : void +>arg.d : () => void +>arg : D1 +>d : () => void + + arg.d1(); +>arg.d1() : void +>arg.d1 : () => void +>arg : D1 +>d1 : () => void + } + + derived2(arg: D2) { +>derived2 : (arg: D2) => void +>arg : D2 + + arg.d(); // should error because of overridden method in D2 +>arg.d() : void +>arg.d : () => void +>arg : D2 +>d : () => void + + arg.d2(); // should error +>arg.d2() : void +>arg.d2 : () => void +>arg : D2 +>d2 : () => void + } + derived2ThisD(this: D, arg: D2) { +>derived2ThisD : (this: D, arg: D2) => void +>this : D +>arg : D2 + + arg.d(); // should error because of overridden method in D2 +>arg.d() : void +>arg.d : () => void +>arg : D2 +>d : () => void + + arg.d2(); // should error +>arg.d2() : void +>arg.d2 : () => void +>arg : D2 +>d2 : () => void + } + derived2ThisD2(this: D2, arg: D2) { +>derived2ThisD2 : (this: D2, arg: D2) => void +>this : D2 +>arg : D2 + + arg.d(); +>arg.d() : void +>arg.d : () => void +>arg : D2 +>d : () => void + + arg.d2(); +>arg.d2() : void +>arg.d2 : () => void +>arg : D2 +>d2 : () => void + } +} +class D1 extends D { +>D1 : D1 +>D : D + + protected d1() {} +>d1 : () => void +} +class D2 extends D { +>D2 : D2 +>D : D + + protected d() {} +>d : () => void + + protected d2() {} +>d2 : () => void +} + + diff --git a/tests/baselines/reference/publicGetterProtectedSetterFromThisParameter.errors.txt b/tests/baselines/reference/publicGetterProtectedSetterFromThisParameter.errors.txt index afe32e1150c5d..c97ccc3b07401 100644 --- a/tests/baselines/reference/publicGetterProtectedSetterFromThisParameter.errors.txt +++ b/tests/baselines/reference/publicGetterProtectedSetterFromThisParameter.errors.txt @@ -1,5 +1,5 @@ -tests/cases/compiler/publicGetterProtectedSetterFromThisParameter.ts(33,7): error TS2446: Property 'q' is protected and only accessible through an instance of class 'A'. This is an instance of class 'B'. -tests/cases/compiler/publicGetterProtectedSetterFromThisParameter.ts(34,7): error TS2446: Property 'u' is protected and only accessible through an instance of class 'A'. This is an instance of class 'B'. +tests/cases/compiler/publicGetterProtectedSetterFromThisParameter.ts(33,7): error TS2445: Property 'q' is protected and only accessible within class 'B' and its subclasses. +tests/cases/compiler/publicGetterProtectedSetterFromThisParameter.ts(34,7): error TS2445: Property 'u' is protected and only accessible within class 'B' and its subclasses. ==== tests/cases/compiler/publicGetterProtectedSetterFromThisParameter.ts (2 errors) ==== @@ -37,9 +37,9 @@ tests/cases/compiler/publicGetterProtectedSetterFromThisParameter.ts(34,7): erro // These should error b.q = 0; ~ -!!! error TS2446: Property 'q' is protected and only accessible through an instance of class 'A'. This is an instance of class 'B'. +!!! error TS2445: Property 'q' is protected and only accessible within class 'B' and its subclasses. b.u = 0; ~ -!!! error TS2446: Property 'u' is protected and only accessible through an instance of class 'A'. This is an instance of class 'B'. +!!! error TS2445: Property 'u' is protected and only accessible within class 'B' and its subclasses. } \ No newline at end of file diff --git a/tests/baselines/reference/quickInfoCommentsClassMembers.baseline b/tests/baselines/reference/quickInfoCommentsClassMembers.baseline index 4fbd66f7bf2f1..3bc54a7828c8d 100644 --- a/tests/baselines/reference/quickInfoCommentsClassMembers.baseline +++ b/tests/baselines/reference/quickInfoCommentsClassMembers.baseline @@ -191,7 +191,7 @@ "name": "6" }, "quickInfo": { - "kind": "property", + "kind": "getter", "kindModifiers": "public", "textSpan": { "start": 245, @@ -203,7 +203,7 @@ "kind": "punctuation" }, { - "text": "property", + "text": "getter", "kind": "text" }, { @@ -341,7 +341,7 @@ "name": "10" }, "quickInfo": { - "kind": "property", + "kind": "setter", "kindModifiers": "public", "textSpan": { "start": 334, @@ -353,7 +353,7 @@ "kind": "punctuation" }, { - "text": "property", + "text": "setter", "kind": "text" }, { @@ -641,7 +641,7 @@ "name": "18" }, "quickInfo": { - "kind": "property", + "kind": "getter", "kindModifiers": "private", "textSpan": { "start": 624, @@ -653,7 +653,7 @@ "kind": "punctuation" }, { - "text": "property", + "text": "getter", "kind": "text" }, { @@ -791,7 +791,7 @@ "name": "22" }, "quickInfo": { - "kind": "property", + "kind": "setter", "kindModifiers": "private", "textSpan": { "start": 717, @@ -803,7 +803,7 @@ "kind": "punctuation" }, { - "text": "property", + "text": "setter", "kind": "text" }, { @@ -1146,7 +1146,7 @@ "name": "32" }, "quickInfo": { - "kind": "property", + "kind": "getter", "kindModifiers": "static", "textSpan": { "start": 1077, @@ -1158,7 +1158,7 @@ "kind": "punctuation" }, { - "text": "property", + "text": "getter", "kind": "text" }, { @@ -1296,7 +1296,7 @@ "name": "37" }, "quickInfo": { - "kind": "property", + "kind": "setter", "kindModifiers": "static", "textSpan": { "start": 1162, @@ -1308,7 +1308,7 @@ "kind": "punctuation" }, { - "text": "property", + "text": "setter", "kind": "text" }, { @@ -1586,7 +1586,7 @@ "name": "46" }, "quickInfo": { - "kind": "property", + "kind": "getter", "kindModifiers": "public", "textSpan": { "start": 1346, @@ -1598,7 +1598,7 @@ "kind": "punctuation" }, { - "text": "property", + "text": "getter", "kind": "text" }, { @@ -1726,7 +1726,7 @@ "name": "48" }, "quickInfo": { - "kind": "property", + "kind": "setter", "kindModifiers": "public", "textSpan": { "start": 1416, @@ -1738,7 +1738,7 @@ "kind": "punctuation" }, { - "text": "property", + "text": "setter", "kind": "text" }, { @@ -2006,7 +2006,7 @@ "name": "53" }, "quickInfo": { - "kind": "property", + "kind": "getter", "kindModifiers": "private", "textSpan": { "start": 1599, @@ -2018,7 +2018,7 @@ "kind": "punctuation" }, { - "text": "property", + "text": "getter", "kind": "text" }, { @@ -2146,7 +2146,7 @@ "name": "55" }, "quickInfo": { - "kind": "property", + "kind": "setter", "kindModifiers": "private", "textSpan": { "start": 1673, @@ -2158,7 +2158,7 @@ "kind": "punctuation" }, { - "text": "property", + "text": "setter", "kind": "text" }, { @@ -2426,7 +2426,7 @@ "name": "60" }, "quickInfo": { - "kind": "property", + "kind": "getter", "kindModifiers": "static", "textSpan": { "start": 1851, @@ -2438,7 +2438,7 @@ "kind": "punctuation" }, { - "text": "property", + "text": "getter", "kind": "text" }, { @@ -2566,7 +2566,7 @@ "name": "62" }, "quickInfo": { - "kind": "property", + "kind": "setter", "kindModifiers": "static", "textSpan": { "start": 1917, @@ -2578,7 +2578,7 @@ "kind": "punctuation" }, { - "text": "property", + "text": "setter", "kind": "text" }, { diff --git a/tests/baselines/reference/quickInfoDisplayPartsClassAccessors.baseline b/tests/baselines/reference/quickInfoDisplayPartsClassAccessors.baseline index ba036af60046a..30b4654f96262 100644 --- a/tests/baselines/reference/quickInfoDisplayPartsClassAccessors.baseline +++ b/tests/baselines/reference/quickInfoDisplayPartsClassAccessors.baseline @@ -6,7 +6,7 @@ "name": "1" }, "quickInfo": { - "kind": "property", + "kind": "getter", "kindModifiers": "public", "textSpan": { "start": 25, @@ -18,7 +18,7 @@ "kind": "punctuation" }, { - "text": "property", + "text": "getter", "kind": "text" }, { @@ -64,7 +64,7 @@ "name": "1s" }, "quickInfo": { - "kind": "property", + "kind": "setter", "kindModifiers": "public", "textSpan": { "start": 72, @@ -76,7 +76,7 @@ "kind": "punctuation" }, { - "text": "property", + "text": "setter", "kind": "text" }, { @@ -122,7 +122,7 @@ "name": "2" }, "quickInfo": { - "kind": "property", + "kind": "getter", "kindModifiers": "private", "textSpan": { "start": 118, @@ -134,7 +134,7 @@ "kind": "punctuation" }, { - "text": "property", + "text": "getter", "kind": "text" }, { @@ -180,7 +180,7 @@ "name": "2s" }, "quickInfo": { - "kind": "property", + "kind": "setter", "kindModifiers": "private", "textSpan": { "start": 167, @@ -192,7 +192,7 @@ "kind": "punctuation" }, { - "text": "property", + "text": "setter", "kind": "text" }, { @@ -238,7 +238,7 @@ "name": "21" }, "quickInfo": { - "kind": "property", + "kind": "getter", "kindModifiers": "protected", "textSpan": { "start": 216, @@ -250,7 +250,7 @@ "kind": "punctuation" }, { - "text": "property", + "text": "getter", "kind": "text" }, { @@ -296,7 +296,7 @@ "name": "21s" }, "quickInfo": { - "kind": "property", + "kind": "setter", "kindModifiers": "protected", "textSpan": { "start": 269, @@ -308,7 +308,7 @@ "kind": "punctuation" }, { - "text": "property", + "text": "setter", "kind": "text" }, { @@ -354,7 +354,7 @@ "name": "3" }, "quickInfo": { - "kind": "property", + "kind": "getter", "kindModifiers": "static", "textSpan": { "start": 317, @@ -366,7 +366,7 @@ "kind": "punctuation" }, { - "text": "property", + "text": "getter", "kind": "text" }, { @@ -412,7 +412,7 @@ "name": "3s" }, "quickInfo": { - "kind": "property", + "kind": "setter", "kindModifiers": "static", "textSpan": { "start": 364, @@ -424,7 +424,7 @@ "kind": "punctuation" }, { - "text": "property", + "text": "setter", "kind": "text" }, { @@ -470,7 +470,7 @@ "name": "4" }, "quickInfo": { - "kind": "property", + "kind": "getter", "kindModifiers": "private,static", "textSpan": { "start": 418, @@ -482,7 +482,7 @@ "kind": "punctuation" }, { - "text": "property", + "text": "getter", "kind": "text" }, { @@ -528,7 +528,7 @@ "name": "4s" }, "quickInfo": { - "kind": "property", + "kind": "setter", "kindModifiers": "private,static", "textSpan": { "start": 480, @@ -540,7 +540,7 @@ "kind": "punctuation" }, { - "text": "property", + "text": "setter", "kind": "text" }, { @@ -586,7 +586,7 @@ "name": "41" }, "quickInfo": { - "kind": "property", + "kind": "getter", "kindModifiers": "protected,static", "textSpan": { "start": 542, @@ -598,7 +598,7 @@ "kind": "punctuation" }, { - "text": "property", + "text": "getter", "kind": "text" }, { @@ -644,7 +644,7 @@ "name": "41s" }, "quickInfo": { - "kind": "property", + "kind": "setter", "kindModifiers": "protected,static", "textSpan": { "start": 608, @@ -656,7 +656,7 @@ "kind": "punctuation" }, { - "text": "property", + "text": "setter", "kind": "text" }, { diff --git a/tests/baselines/reference/quickInfoDisplayPartsEnum2.baseline b/tests/baselines/reference/quickInfoDisplayPartsEnum2.baseline index bbdcf1bed79ec..fb962557fe736 100644 --- a/tests/baselines/reference/quickInfoDisplayPartsEnum2.baseline +++ b/tests/baselines/reference/quickInfoDisplayPartsEnum2.baseline @@ -69,7 +69,7 @@ }, { "text": "\"e1\"", - "kind": "stringLiteral" + "kind": "enumMemberName" }, { "text": "]", @@ -135,7 +135,7 @@ }, { "text": "'e2'", - "kind": "stringLiteral" + "kind": "enumMemberName" }, { "text": "]", @@ -201,7 +201,7 @@ }, { "text": "\"e3\"", - "kind": "stringLiteral" + "kind": "enumMemberName" }, { "text": "]", @@ -411,7 +411,7 @@ }, { "text": "\"e1\"", - "kind": "stringLiteral" + "kind": "enumMemberName" }, { "text": "]", @@ -549,7 +549,7 @@ }, { "text": "'e2'", - "kind": "stringLiteral" + "kind": "enumMemberName" }, { "text": "]", @@ -687,7 +687,7 @@ }, { "text": "\"e3\"", - "kind": "stringLiteral" + "kind": "enumMemberName" }, { "text": "]", @@ -791,7 +791,7 @@ }, { "text": "\"e1\"", - "kind": "stringLiteral" + "kind": "enumMemberName" }, { "text": "]", @@ -857,7 +857,7 @@ }, { "text": "'e2'", - "kind": "stringLiteral" + "kind": "enumMemberName" }, { "text": "]", @@ -923,7 +923,7 @@ }, { "text": "\"e3\"", - "kind": "stringLiteral" + "kind": "enumMemberName" }, { "text": "]", @@ -1149,7 +1149,7 @@ }, { "text": "\"e1\"", - "kind": "stringLiteral" + "kind": "enumMemberName" }, { "text": "]", @@ -1295,7 +1295,7 @@ }, { "text": "'e2'", - "kind": "stringLiteral" + "kind": "enumMemberName" }, { "text": "]", @@ -1441,7 +1441,7 @@ }, { "text": "\"e3\"", - "kind": "stringLiteral" + "kind": "enumMemberName" }, { "text": "]", diff --git a/tests/baselines/reference/quickInfoDisplayPartsEnum3.baseline b/tests/baselines/reference/quickInfoDisplayPartsEnum3.baseline index f12d5d5144924..b949e837d88d5 100644 --- a/tests/baselines/reference/quickInfoDisplayPartsEnum3.baseline +++ b/tests/baselines/reference/quickInfoDisplayPartsEnum3.baseline @@ -69,7 +69,7 @@ }, { "text": "\"e1\"", - "kind": "stringLiteral" + "kind": "enumMemberName" }, { "text": "]", @@ -135,7 +135,7 @@ }, { "text": "'e2'", - "kind": "stringLiteral" + "kind": "enumMemberName" }, { "text": "]", @@ -201,7 +201,7 @@ }, { "text": "\"e3\"", - "kind": "stringLiteral" + "kind": "enumMemberName" }, { "text": "]", @@ -411,7 +411,7 @@ }, { "text": "\"e1\"", - "kind": "stringLiteral" + "kind": "enumMemberName" }, { "text": "]", @@ -549,7 +549,7 @@ }, { "text": "'e2'", - "kind": "stringLiteral" + "kind": "enumMemberName" }, { "text": "]", @@ -687,7 +687,7 @@ }, { "text": "\"e3\"", - "kind": "stringLiteral" + "kind": "enumMemberName" }, { "text": "]", @@ -791,7 +791,7 @@ }, { "text": "\"e1\"", - "kind": "stringLiteral" + "kind": "enumMemberName" }, { "text": "]", @@ -857,7 +857,7 @@ }, { "text": "'e2'", - "kind": "stringLiteral" + "kind": "enumMemberName" }, { "text": "]", @@ -923,7 +923,7 @@ }, { "text": "\"e3\"", - "kind": "stringLiteral" + "kind": "enumMemberName" }, { "text": "]", @@ -1149,7 +1149,7 @@ }, { "text": "\"e1\"", - "kind": "stringLiteral" + "kind": "enumMemberName" }, { "text": "]", @@ -1295,7 +1295,7 @@ }, { "text": "'e2'", - "kind": "stringLiteral" + "kind": "enumMemberName" }, { "text": "]", @@ -1441,7 +1441,7 @@ }, { "text": "\"e3\"", - "kind": "stringLiteral" + "kind": "enumMemberName" }, { "text": "]", diff --git a/tests/baselines/reference/quickInfoDisplayPartsEnum4.baseline b/tests/baselines/reference/quickInfoDisplayPartsEnum4.baseline new file mode 100644 index 0000000000000..448050703f809 --- /dev/null +++ b/tests/baselines/reference/quickInfoDisplayPartsEnum4.baseline @@ -0,0 +1,134 @@ +[ + { + "marker": { + "fileName": "/tests/cases/fourslash/quickInfoDisplayPartsEnum4.ts", + "position": 51, + "name": "1" + }, + "quickInfo": { + "kind": "enum member", + "kindModifiers": "", + "textSpan": { + "start": 51, + "length": 4 + }, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "enum member", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "enumName" + }, + { + "text": "[", + "kind": "punctuation" + }, + { + "text": "\"\\t\"", + "kind": "enumMemberName" + }, + { + "text": "]", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "9", + "kind": "numericLiteral" + } + ], + "documentation": [] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/quickInfoDisplayPartsEnum4.ts", + "position": 61, + "name": "2" + }, + "quickInfo": { + "kind": "enum member", + "kindModifiers": "", + "textSpan": { + "start": 61, + "length": 8 + }, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "enum member", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Foo", + "kind": "enumName" + }, + { + "text": "[", + "kind": "punctuation" + }, + { + "text": "\"\\u007f\"", + "kind": "enumMemberName" + }, + { + "text": "]", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "127", + "kind": "numericLiteral" + } + ], + "documentation": [] + } + } +] \ No newline at end of file diff --git a/tests/baselines/reference/quickInfoForArgumentsPropertyNameInJsMode1.baseline b/tests/baselines/reference/quickInfoForArgumentsPropertyNameInJsMode1.baseline new file mode 100644 index 0000000000000..fb6a5bc9a997d --- /dev/null +++ b/tests/baselines/reference/quickInfoForArgumentsPropertyNameInJsMode1.baseline @@ -0,0 +1,134 @@ +[ + { + "marker": { + "fileName": "/tests/cases/fourslash/a.js", + "position": 50, + "name": "1" + }, + "quickInfo": { + "kind": "function", + "kindModifiers": "", + "textSpan": { + "start": 50, + "length": 2 + }, + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "f2", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "x", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } + ], + "documentation": [] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/a.js", + "position": 94, + "name": "2" + }, + "quickInfo": { + "kind": "function", + "kindModifiers": "", + "textSpan": { + "start": 94, + "length": 2 + }, + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "f2", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "x", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } + ], + "documentation": [] + } + } +] \ No newline at end of file diff --git a/tests/baselines/reference/quickInfoForArgumentsPropertyNameInJsMode2.baseline b/tests/baselines/reference/quickInfoForArgumentsPropertyNameInJsMode2.baseline new file mode 100644 index 0000000000000..a6c457b8ae787 --- /dev/null +++ b/tests/baselines/reference/quickInfoForArgumentsPropertyNameInJsMode2.baseline @@ -0,0 +1,206 @@ +[ + { + "marker": { + "fileName": "/tests/cases/fourslash/a.js", + "position": 9, + "name": "1" + }, + "quickInfo": { + "kind": "function", + "kindModifiers": "", + "textSpan": { + "start": 9, + "length": 1 + }, + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "f", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "x", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + }, + { + "text": ",", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "...", + "kind": "punctuation" + }, + { + "text": "args", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + }, + { + "text": "[", + "kind": "punctuation" + }, + { + "text": "]", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } + ], + "documentation": [] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/a.js", + "position": 33, + "name": "2" + }, + "quickInfo": { + "kind": "function", + "kindModifiers": "", + "textSpan": { + "start": 33, + "length": 1 + }, + "displayParts": [ + { + "text": "function", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "f", + "kind": "functionName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "x", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + }, + { + "text": ",", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "...", + "kind": "punctuation" + }, + { + "text": "args", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + }, + { + "text": "[", + "kind": "punctuation" + }, + { + "text": "]", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } + ], + "documentation": [] + } + } +] \ No newline at end of file diff --git a/tests/baselines/reference/quickInfoForConstAssertions.baseline b/tests/baselines/reference/quickInfoForConstAssertions.baseline new file mode 100644 index 0000000000000..9fccd0dbe448b --- /dev/null +++ b/tests/baselines/reference/quickInfoForConstAssertions.baseline @@ -0,0 +1,258 @@ +[ + { + "marker": { + "fileName": "/tests/cases/fourslash/quickInfoForConstAssertions.ts", + "position": 22, + "name": "1" + }, + "quickInfo": { + "kind": "type", + "kindModifiers": "", + "textSpan": { + "start": 22, + "length": 5 + }, + "displayParts": [ + { + "text": "type", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "const", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "{", + "kind": "punctuation" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "readonly", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "a", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "1", + "kind": "stringLiteral" + }, + { + "text": ";", + "kind": "punctuation" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "}", + "kind": "punctuation" + } + ], + "documentation": [] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/quickInfoForConstAssertions.ts", + "position": 44, + "name": "2" + }, + "quickInfo": { + "kind": "type", + "kindModifiers": "", + "textSpan": { + "start": 44, + "length": 5 + }, + "displayParts": [ + { + "text": "type", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "const", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "1", + "kind": "stringLiteral" + } + ], + "documentation": [] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/quickInfoForConstAssertions.ts", + "position": 68, + "name": "3" + }, + "quickInfo": { + "kind": "type", + "kindModifiers": "", + "textSpan": { + "start": 68, + "length": 5 + }, + "displayParts": [ + { + "text": "type", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "const", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "\"c\"", + "kind": "stringLiteral" + } + ], + "documentation": [] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/quickInfoForConstAssertions.ts", + "position": 95, + "name": "4" + }, + "quickInfo": { + "kind": "type", + "kindModifiers": "", + "textSpan": { + "start": 95, + "length": 5 + }, + "displayParts": [ + { + "text": "type", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "const", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "readonly", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "[", + "kind": "punctuation" + }, + { + "text": "1", + "kind": "stringLiteral" + }, + { + "text": ",", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "2", + "kind": "stringLiteral" + }, + { + "text": "]", + "kind": "punctuation" + } + ], + "documentation": [] + } + } +] \ No newline at end of file diff --git a/tests/baselines/reference/quickInfoForJSDocWithUnresolvedHttpLinks.baseline b/tests/baselines/reference/quickInfoForJSDocWithUnresolvedHttpLinks.baseline new file mode 100644 index 0000000000000..7700b2b908f78 --- /dev/null +++ b/tests/baselines/reference/quickInfoForJSDocWithUnresolvedHttpLinks.baseline @@ -0,0 +1,126 @@ +[ + { + "marker": { + "fileName": "/tests/cases/fourslash/quickInfoForJSDocWithHttpLinks.js", + "position": 36, + "name": "5" + }, + "quickInfo": { + "kind": "var", + "kindModifiers": "", + "textSpan": { + "start": 36, + "length": 4 + }, + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "see2", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "boolean", + "kind": "keyword" + } + ], + "documentation": [], + "tags": [ + { + "name": "see", + "text": [ + { + "text": "", + "kind": "text" + }, + { + "text": "{@link ", + "kind": "link" + }, + { + "text": "https://hva", + "kind": "linkText" + }, + { + "text": "}", + "kind": "link" + } + ] + } + ] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/quickInfoForJSDocWithHttpLinks.js", + "position": 81, + "name": "6" + }, + "quickInfo": { + "kind": "var", + "kindModifiers": "", + "textSpan": { + "start": 81, + "length": 4 + }, + "displayParts": [ + { + "text": "var", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "see3", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "boolean", + "kind": "keyword" + } + ], + "documentation": [ + { + "text": "", + "kind": "text" + }, + { + "text": "{@link ", + "kind": "link" + }, + { + "text": "https://hvaD", + "kind": "linkText" + }, + { + "text": "}", + "kind": "link" + } + ] + } + } +] \ No newline at end of file diff --git a/tests/baselines/reference/quickInfoForObjectBindingElementName03.baseline b/tests/baselines/reference/quickInfoForObjectBindingElementName03.baseline new file mode 100644 index 0000000000000..4e311ef906f73 --- /dev/null +++ b/tests/baselines/reference/quickInfoForObjectBindingElementName03.baseline @@ -0,0 +1,57 @@ +[ + { + "marker": { + "fileName": "/tests/cases/fourslash/quickInfoForObjectBindingElementName03.ts", + "position": 122, + "name": "1" + }, + "quickInfo": { + "kind": "parameter", + "kindModifiers": "", + "textSpan": { + "start": 119, + "length": 3 + }, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "parameter", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } + ], + "documentation": [ + { + "text": "A description of foo", + "kind": "text" + } + ] + } + } +] \ No newline at end of file diff --git a/tests/baselines/reference/quickInfoForObjectBindingElementName04.baseline b/tests/baselines/reference/quickInfoForObjectBindingElementName04.baseline new file mode 100644 index 0000000000000..0370d38cdb46b --- /dev/null +++ b/tests/baselines/reference/quickInfoForObjectBindingElementName04.baseline @@ -0,0 +1,148 @@ +[ + { + "marker": { + "fileName": "/tests/cases/fourslash/quickInfoForObjectBindingElementName04.ts", + "position": 193, + "name": "1" + }, + "quickInfo": { + "kind": "parameter", + "kindModifiers": "", + "textSpan": { + "start": 192, + "length": 1 + }, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "parameter", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "a", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "{", + "kind": "punctuation" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "b", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": ";", + "kind": "punctuation" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "}", + "kind": "punctuation" + } + ], + "documentation": [ + { + "text": "A description of 'a'", + "kind": "text" + } + ] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/quickInfoForObjectBindingElementName04.ts", + "position": 200, + "name": "2" + }, + "quickInfo": { + "kind": "parameter", + "kindModifiers": "", + "textSpan": { + "start": 199, + "length": 1 + }, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "parameter", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "b", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } + ], + "documentation": [ + { + "text": "A description of 'b'", + "kind": "text" + } + ] + } + } +] \ No newline at end of file diff --git a/tests/baselines/reference/quickInfoForObjectBindingElementName05.baseline b/tests/baselines/reference/quickInfoForObjectBindingElementName05.baseline new file mode 100644 index 0000000000000..9790245d186ee --- /dev/null +++ b/tests/baselines/reference/quickInfoForObjectBindingElementName05.baseline @@ -0,0 +1,73 @@ +[ + { + "marker": { + "fileName": "/tests/cases/fourslash/quickInfoForObjectBindingElementName05.ts", + "position": 137, + "name": "" + }, + "quickInfo": { + "kind": "parameter", + "kindModifiers": "", + "textSpan": { + "start": 136, + "length": 1 + }, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "parameter", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "a", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "|", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } + ], + "documentation": [ + { + "text": "A description of a", + "kind": "text" + } + ] + } + } +] \ No newline at end of file diff --git a/tests/baselines/reference/quickInfoImportMeta.baseline b/tests/baselines/reference/quickInfoImportMeta.baseline new file mode 100644 index 0000000000000..e576927262fb2 --- /dev/null +++ b/tests/baselines/reference/quickInfoImportMeta.baseline @@ -0,0 +1,41 @@ +[ + { + "marker": { + "fileName": "/tests/cases/fourslash/foo.ts", + "position": 77, + "name": "1" + }, + "quickInfo": { + "kind": "", + "kindModifiers": "", + "textSpan": { + "start": 75, + "length": 6 + }, + "displayParts": [], + "documentation": [] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/foo.ts", + "position": 84, + "name": "2" + }, + "quickInfo": { + "kind": "interface", + "kindModifiers": "declare", + "textSpan": { + "start": 75, + "length": 11 + }, + "displayParts": [], + "documentation": [ + { + "text": "The type of `import.meta`.\n\nIf you need to declare that a given property exists on `import.meta`,\nthis type may be augmented via interface merging.", + "kind": "text" + } + ] + } + } +] \ No newline at end of file diff --git a/tests/baselines/reference/quickInfoJsDocGetterSetter.baseline b/tests/baselines/reference/quickInfoJsDocGetterSetter.baseline new file mode 100644 index 0000000000000..830e0beeaf7d1 --- /dev/null +++ b/tests/baselines/reference/quickInfoJsDocGetterSetter.baseline @@ -0,0 +1,802 @@ +[ + { + "marker": { + "fileName": "/tests/cases/fourslash/quickInfoJsDocGetterSetter.ts", + "position": 75, + "name": "1" + }, + "quickInfo": { + "kind": "getter", + "kindModifiers": "", + "textSpan": { + "start": 75, + "length": 1 + }, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "getter", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "x", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } + ], + "documentation": [ + { + "text": "getter A", + "kind": "text" + } + ], + "tags": [ + { + "name": "returns", + "text": [ + { + "text": "return A", + "kind": "text" + } + ] + } + ] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/quickInfoJsDocGetterSetter.ts", + "position": 205, + "name": "2" + }, + "quickInfo": { + "kind": "setter", + "kindModifiers": "", + "textSpan": { + "start": 205, + "length": 1 + }, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "setter", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "x", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } + ], + "documentation": [ + { + "text": "setter A", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "value", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo A", + "kind": "text" + } + ] + }, + { + "name": "todo", + "text": [ + { + "text": "empty jsdoc", + "kind": "text" + } + ] + } + ] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/quickInfoJsDocGetterSetter.ts", + "position": 340, + "name": "3" + }, + "quickInfo": { + "kind": "getter", + "kindModifiers": "", + "textSpan": { + "start": 340, + "length": 1 + }, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "getter", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "B", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "x", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } + ], + "documentation": [ + { + "text": "getter B", + "kind": "text" + } + ], + "tags": [ + { + "name": "returns", + "text": [ + { + "text": "return B", + "kind": "text" + } + ] + } + ] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/quickInfoJsDocGetterSetter.ts", + "position": 445, + "name": "4" + }, + "quickInfo": { + "kind": "setter", + "kindModifiers": "", + "textSpan": { + "start": 445, + "length": 1 + }, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "setter", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "B", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "x", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } + ], + "documentation": [ + { + "text": "setter B", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "value", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo B", + "kind": "text" + } + ] + } + ] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/quickInfoJsDocGetterSetter.ts", + "position": 607, + "name": "5" + }, + "quickInfo": { + "kind": "setter", + "kindModifiers": "", + "textSpan": { + "start": 607, + "length": 1 + }, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "setter", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "D", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "x", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } + ], + "documentation": [ + { + "text": "setter D", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "value", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo D", + "kind": "text" + } + ] + } + ] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/quickInfoJsDocGetterSetter.ts", + "position": 636, + "name": "6" + }, + "quickInfo": { + "kind": "property", + "kindModifiers": "", + "textSpan": { + "start": 636, + "length": 1 + }, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "x", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } + ], + "documentation": [ + { + "text": "getter A", + "kind": "text" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "setter A", + "kind": "text" + } + ], + "tags": [ + { + "name": "returns", + "text": [ + { + "text": "return A", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "value", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo A", + "kind": "text" + } + ] + }, + { + "name": "todo", + "text": [ + { + "text": "empty jsdoc", + "kind": "text" + } + ] + } + ] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/quickInfoJsDocGetterSetter.ts", + "position": 653, + "name": "7" + }, + "quickInfo": { + "kind": "property", + "kindModifiers": "", + "textSpan": { + "start": 653, + "length": 1 + }, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "B", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "x", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } + ], + "documentation": [ + { + "text": "getter B", + "kind": "text" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "setter B", + "kind": "text" + } + ], + "tags": [ + { + "name": "returns", + "text": [ + { + "text": "return B", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "value", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo B", + "kind": "text" + } + ] + } + ] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/quickInfoJsDocGetterSetter.ts", + "position": 670, + "name": "8" + }, + "quickInfo": { + "kind": "property", + "kindModifiers": "", + "textSpan": { + "start": 670, + "length": 1 + }, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "x", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } + ], + "documentation": [ + { + "text": "getter A", + "kind": "text" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "setter A", + "kind": "text" + } + ], + "tags": [ + { + "name": "returns", + "text": [ + { + "text": "return A", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "value", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo A", + "kind": "text" + } + ] + }, + { + "name": "todo", + "text": [ + { + "text": "empty jsdoc", + "kind": "text" + } + ] + } + ] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/quickInfoJsDocGetterSetter.ts", + "position": 687, + "name": "9" + }, + "quickInfo": { + "kind": "property", + "kindModifiers": "", + "textSpan": { + "start": 687, + "length": 1 + }, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "D", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "x", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + } + ], + "documentation": [ + { + "text": "setter D", + "kind": "text" + } + ], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "value", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo D", + "kind": "text" + } + ] + } + ] + } + } +] \ No newline at end of file diff --git a/tests/baselines/reference/quickInfoJsDocInheritage.baseline b/tests/baselines/reference/quickInfoJsDocInheritage.baseline new file mode 100644 index 0000000000000..997e5674656c6 --- /dev/null +++ b/tests/baselines/reference/quickInfoJsDocInheritage.baseline @@ -0,0 +1,2154 @@ +[ + { + "marker": { + "fileName": "/tests/cases/fourslash/quickInfoJsDocInheritage.ts", + "position": 429, + "name": "1" + }, + "quickInfo": { + "kind": "property", + "kindModifiers": "", + "textSpan": { + "start": 429, + "length": 4 + }, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "foo1", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } + ], + "documentation": [], + "tags": [ + { + "name": "description", + "text": [ + { + "text": "A.foo1", + "kind": "text" + } + ] + } + ] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/quickInfoJsDocInheritage.ts", + "position": 451, + "name": "2" + }, + "quickInfo": { + "kind": "method", + "kindModifiers": "", + "textSpan": { + "start": 451, + "length": 4 + }, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "foo2", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "q", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } + ], + "documentation": [], + "tags": [ + { + "name": "description", + "text": [ + { + "text": "A.foo2", + "kind": "text" + } + ] + } + ] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/quickInfoJsDocInheritage.ts", + "position": 598, + "name": "3" + }, + "quickInfo": { + "kind": "property", + "kindModifiers": "", + "textSpan": { + "start": 598, + "length": 4 + }, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "D", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "foo1", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } + ], + "documentation": [], + "tags": [ + { + "name": "description", + "text": [ + { + "text": "A.foo1", + "kind": "text" + } + ] + } + ] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/quickInfoJsDocInheritage.ts", + "position": 620, + "name": "4" + }, + "quickInfo": { + "kind": "property", + "kindModifiers": "", + "textSpan": { + "start": 620, + "length": 4 + }, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "D", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "foo2", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "q", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } + ], + "documentation": [], + "tags": [ + { + "name": "description", + "text": [ + { + "text": "A.foo2", + "kind": "text" + } + ] + } + ] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/quickInfoJsDocInheritage.ts", + "position": 666, + "name": "5" + }, + "quickInfo": { + "kind": "property", + "kindModifiers": "", + "textSpan": { + "start": 666, + "length": 4 + }, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "foo1", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } + ], + "documentation": [], + "tags": [ + { + "name": "description", + "text": [ + { + "text": "A.foo1", + "kind": "text" + } + ] + } + ] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/quickInfoJsDocInheritage.ts", + "position": 680, + "name": "6" + }, + "quickInfo": { + "kind": "method", + "kindModifiers": "", + "textSpan": { + "start": 680, + "length": 4 + }, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "C", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "foo2", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "q", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } + ], + "documentation": [], + "tags": [ + { + "name": "description", + "text": [ + { + "text": "A.foo2", + "kind": "text" + } + ] + } + ] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/quickInfoJsDocInheritage.ts", + "position": 694, + "name": "7" + }, + "quickInfo": { + "kind": "property", + "kindModifiers": "", + "textSpan": { + "start": 694, + "length": 4 + }, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "D", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "foo1", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } + ], + "documentation": [], + "tags": [ + { + "name": "description", + "text": [ + { + "text": "A.foo1", + "kind": "text" + } + ] + } + ] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/quickInfoJsDocInheritage.ts", + "position": 708, + "name": "8" + }, + "quickInfo": { + "kind": "property", + "kindModifiers": "", + "textSpan": { + "start": 708, + "length": 4 + }, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "D", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "foo2", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "q", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } + ], + "documentation": [], + "tags": [ + { + "name": "description", + "text": [ + { + "text": "A.foo2", + "kind": "text" + } + ] + } + ] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/quickInfoJsDocInheritage.ts", + "position": 1069, + "name": "9" + }, + "quickInfo": { + "kind": "property", + "kindModifiers": "", + "textSpan": { + "start": 1069, + "length": 4 + }, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Drived1", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "foo1", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } + ], + "documentation": [], + "tags": [ + { + "name": "description", + "text": [ + { + "text": "Base1.foo1", + "kind": "text" + } + ] + } + ] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/quickInfoJsDocInheritage.ts", + "position": 1091, + "name": "10" + }, + "quickInfo": { + "kind": "method", + "kindModifiers": "", + "textSpan": { + "start": 1091, + "length": 4 + }, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Drived1", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "foo2", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "para1", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } + ], + "documentation": [], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "q", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Base1.foo2 parameter", + "kind": "text" + } + ] + }, + { + "name": "returns", + "text": [ + { + "text": "Base1.foo2 return", + "kind": "text" + } + ] + } + ] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/quickInfoJsDocInheritage.ts", + "position": 1263, + "name": "11" + }, + "quickInfo": { + "kind": "property", + "kindModifiers": "", + "textSpan": { + "start": 1263, + "length": 4 + }, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Drived2", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "foo1", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } + ], + "documentation": [], + "tags": [ + { + "name": "description", + "text": [ + { + "text": "Base1.foo1", + "kind": "text" + } + ] + } + ] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/quickInfoJsDocInheritage.ts", + "position": 1285, + "name": "12" + }, + "quickInfo": { + "kind": "property", + "kindModifiers": "", + "textSpan": { + "start": 1285, + "length": 4 + }, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Drived2", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "foo2", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "para1", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } + ], + "documentation": [], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "q", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Base1.foo2 parameter", + "kind": "text" + } + ] + }, + { + "name": "returns", + "text": [ + { + "text": "Base1.foo2 return", + "kind": "text" + } + ] + } + ] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/quickInfoJsDocInheritage.ts", + "position": 1681, + "name": "13" + }, + "quickInfo": { + "kind": "property", + "kindModifiers": "", + "textSpan": { + "start": 1681, + "length": 4 + }, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Drived3", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "foo1", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } + ], + "documentation": [], + "tags": [ + { + "name": "description", + "text": [ + { + "text": "Base2.foo1", + "kind": "text" + } + ] + } + ] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/quickInfoJsDocInheritage.ts", + "position": 1703, + "name": "14" + }, + "quickInfo": { + "kind": "method", + "kindModifiers": "", + "textSpan": { + "start": 1703, + "length": 4 + }, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Drived3", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "foo2", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "para1", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } + ], + "documentation": [], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "q", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Base2.foo2 parameter", + "kind": "text" + } + ] + }, + { + "name": "returns", + "text": [ + { + "text": "Base2.foo2 return", + "kind": "text" + } + ] + } + ] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/quickInfoJsDocInheritage.ts", + "position": 1875, + "name": "15" + }, + "quickInfo": { + "kind": "property", + "kindModifiers": "", + "textSpan": { + "start": 1875, + "length": 4 + }, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Drived4", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "foo1", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } + ], + "documentation": [], + "tags": [ + { + "name": "description", + "text": [ + { + "text": "Base2.foo1", + "kind": "text" + } + ] + } + ] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/quickInfoJsDocInheritage.ts", + "position": 1897, + "name": "16" + }, + "quickInfo": { + "kind": "property", + "kindModifiers": "", + "textSpan": { + "start": 1897, + "length": 4 + }, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Drived4", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "foo2", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "para1", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } + ], + "documentation": [], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "q", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Base2.foo2 parameter", + "kind": "text" + } + ] + }, + { + "name": "returns", + "text": [ + { + "text": "Base2.foo2 return", + "kind": "text" + } + ] + } + ] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/quickInfoJsDocInheritage.ts", + "position": 1955, + "name": "17" + }, + "quickInfo": { + "kind": "property", + "kindModifiers": "", + "textSpan": { + "start": 1955, + "length": 4 + }, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Drived1", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "foo1", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } + ], + "documentation": [], + "tags": [ + { + "name": "description", + "text": [ + { + "text": "Base1.foo1", + "kind": "text" + } + ] + } + ] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/quickInfoJsDocInheritage.ts", + "position": 1975, + "name": "18" + }, + "quickInfo": { + "kind": "method", + "kindModifiers": "", + "textSpan": { + "start": 1975, + "length": 4 + }, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Drived1", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "foo2", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "para1", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } + ], + "documentation": [], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "q", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Base1.foo2 parameter", + "kind": "text" + } + ] + }, + { + "name": "returns", + "text": [ + { + "text": "Base1.foo2 return", + "kind": "text" + } + ] + } + ] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/quickInfoJsDocInheritage.ts", + "position": 1995, + "name": "19" + }, + "quickInfo": { + "kind": "property", + "kindModifiers": "", + "textSpan": { + "start": 1995, + "length": 4 + }, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Drived2", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "foo1", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } + ], + "documentation": [], + "tags": [ + { + "name": "description", + "text": [ + { + "text": "Base1.foo1", + "kind": "text" + } + ] + } + ] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/quickInfoJsDocInheritage.ts", + "position": 2015, + "name": "20" + }, + "quickInfo": { + "kind": "property", + "kindModifiers": "", + "textSpan": { + "start": 2015, + "length": 4 + }, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Drived2", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "foo2", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "para1", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } + ], + "documentation": [], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "q", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Base1.foo2 parameter", + "kind": "text" + } + ] + }, + { + "name": "returns", + "text": [ + { + "text": "Base1.foo2 return", + "kind": "text" + } + ] + } + ] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/quickInfoJsDocInheritage.ts", + "position": 2035, + "name": "21" + }, + "quickInfo": { + "kind": "property", + "kindModifiers": "", + "textSpan": { + "start": 2035, + "length": 4 + }, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Drived3", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "foo1", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } + ], + "documentation": [], + "tags": [ + { + "name": "description", + "text": [ + { + "text": "Base2.foo1", + "kind": "text" + } + ] + } + ] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/quickInfoJsDocInheritage.ts", + "position": 2055, + "name": "22" + }, + "quickInfo": { + "kind": "method", + "kindModifiers": "", + "textSpan": { + "start": 2055, + "length": 4 + }, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "method", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Drived3", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "foo2", + "kind": "methodName" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "para1", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } + ], + "documentation": [], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "q", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Base2.foo2 parameter", + "kind": "text" + } + ] + }, + { + "name": "returns", + "text": [ + { + "text": "Base2.foo2 return", + "kind": "text" + } + ] + } + ] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/quickInfoJsDocInheritage.ts", + "position": 2075, + "name": "23" + }, + "quickInfo": { + "kind": "property", + "kindModifiers": "", + "textSpan": { + "start": 2075, + "length": 4 + }, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Drived4", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "foo1", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } + ], + "documentation": [], + "tags": [ + { + "name": "description", + "text": [ + { + "text": "Base2.foo1", + "kind": "text" + } + ] + } + ] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/quickInfoJsDocInheritage.ts", + "position": 2095, + "name": "24" + }, + "quickInfo": { + "kind": "property", + "kindModifiers": "", + "textSpan": { + "start": 2095, + "length": 4 + }, + "displayParts": [ + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "property", + "kind": "text" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Drived4", + "kind": "className" + }, + { + "text": ".", + "kind": "punctuation" + }, + { + "text": "foo2", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "para1", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "string", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } + ], + "documentation": [], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "q", + "kind": "parameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Base2.foo2 parameter", + "kind": "text" + } + ] + }, + { + "name": "returns", + "text": [ + { + "text": "Base2.foo2 return", + "kind": "text" + } + ] + } + ] + } + } +] \ No newline at end of file diff --git a/tests/baselines/reference/quickInfoJsDocTags10.baseline b/tests/baselines/reference/quickInfoJsDocTags10.baseline new file mode 100644 index 0000000000000..e4e616652aaf2 --- /dev/null +++ b/tests/baselines/reference/quickInfoJsDocTags10.baseline @@ -0,0 +1,177 @@ +[ + { + "marker": { + "fileName": "/tests/cases/fourslash/quickInfoJsDocTags10.js", + "position": 80, + "name": "" + }, + "quickInfo": { + "kind": "const", + "kindModifiers": "", + "textSpan": { + "start": 80, + "length": 3 + }, + "displayParts": [ + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "<", + "kind": "punctuation" + }, + { + "text": "T1", + "kind": "typeParameterName" + }, + { + "text": ",", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T2", + "kind": "typeParameterName" + }, + { + "text": ">", + "kind": "punctuation" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "a", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T1", + "kind": "typeParameterName" + }, + { + "text": ",", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "b", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "any", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } + ], + "documentation": [], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "a", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "a", + "kind": "text" + } + ] + }, + { + "name": "template", + "text": [ + { + "text": "T1", + "kind": "typeParameterName" + }, + { + "text": ",", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T2", + "kind": "typeParameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Comment Text", + "kind": "text" + } + ] + } + ] + } + } +] \ No newline at end of file diff --git a/tests/baselines/reference/quickInfoJsDocTags11.baseline b/tests/baselines/reference/quickInfoJsDocTags11.baseline new file mode 100644 index 0000000000000..86d49f8089e0f --- /dev/null +++ b/tests/baselines/reference/quickInfoJsDocTags11.baseline @@ -0,0 +1,230 @@ +[ + { + "marker": { + "fileName": "/tests/cases/fourslash/quickInfoJsDocTags11.js", + "position": 120, + "name": "" + }, + "quickInfo": { + "kind": "const", + "kindModifiers": "", + "textSpan": { + "start": 120, + "length": 3 + }, + "displayParts": [ + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "<", + "kind": "punctuation" + }, + { + "text": "T1", + "kind": "typeParameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "extends", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": ",", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T2", + "kind": "typeParameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "extends", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": ">", + "kind": "punctuation" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "a", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T1", + "kind": "typeParameterName" + }, + { + "text": ",", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "b", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T2", + "kind": "typeParameterName" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + } + ], + "documentation": [], + "tags": [ + { + "name": "param", + "text": [ + { + "text": "a", + "kind": "text" + } + ] + }, + { + "name": "param", + "text": [ + { + "text": "b", + "kind": "text" + } + ] + }, + { + "name": "template", + "text": [ + { + "text": "{number}", + "kind": "text" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T1", + "kind": "typeParameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Comment T1", + "kind": "text" + } + ] + }, + { + "name": "template", + "text": [ + { + "text": "{number}", + "kind": "text" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T2", + "kind": "typeParameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Comment T2", + "kind": "text" + } + ] + } + ] + } + } +] \ No newline at end of file diff --git a/tests/baselines/reference/quickInfoJsDocTags7.baseline b/tests/baselines/reference/quickInfoJsDocTags7.baseline new file mode 100644 index 0000000000000..4b5d48a290117 --- /dev/null +++ b/tests/baselines/reference/quickInfoJsDocTags7.baseline @@ -0,0 +1,100 @@ +[ + { + "marker": { + "fileName": "/tests/cases/fourslash/quickInfoJsDocTags7.js", + "position": 116, + "name": "" + }, + "quickInfo": { + "kind": "const", + "kindModifiers": "", + "textSpan": { + "start": 116, + "length": 3 + }, + "displayParts": [ + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "t", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "typeParameterName" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } + ], + "documentation": [], + "tags": [ + { + "name": "type", + "text": [ + { + "text": "{(t: T) => number}", + "kind": "text" + } + ] + }, + { + "name": "template", + "text": [ + { + "text": "T", + "kind": "typeParameterName" + } + ] + } + ] + } + } +] \ No newline at end of file diff --git a/tests/baselines/reference/quickInfoJsDocTags8.baseline b/tests/baselines/reference/quickInfoJsDocTags8.baseline new file mode 100644 index 0000000000000..def6b90bcf85d --- /dev/null +++ b/tests/baselines/reference/quickInfoJsDocTags8.baseline @@ -0,0 +1,108 @@ +[ + { + "marker": { + "fileName": "/tests/cases/fourslash/quickInfoJsDocTags8.js", + "position": 122, + "name": "" + }, + "quickInfo": { + "kind": "const", + "kindModifiers": "", + "textSpan": { + "start": 122, + "length": 3 + }, + "displayParts": [ + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "t", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "typeParameterName" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } + ], + "documentation": [], + "tags": [ + { + "name": "type", + "text": [ + { + "text": "{(t: T) => number}", + "kind": "text" + } + ] + }, + { + "name": "template", + "text": [ + { + "text": "{Foo}", + "kind": "text" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "typeParameterName" + } + ] + } + ] + } + } +] \ No newline at end of file diff --git a/tests/baselines/reference/quickInfoJsDocTags9.baseline b/tests/baselines/reference/quickInfoJsDocTags9.baseline new file mode 100644 index 0000000000000..248a657146b6b --- /dev/null +++ b/tests/baselines/reference/quickInfoJsDocTags9.baseline @@ -0,0 +1,116 @@ +[ + { + "marker": { + "fileName": "/tests/cases/fourslash/quickInfoJsDocTags9.js", + "position": 135, + "name": "" + }, + "quickInfo": { + "kind": "const", + "kindModifiers": "", + "textSpan": { + "start": 135, + "length": 3 + }, + "displayParts": [ + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "foo", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "t", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "typeParameterName" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=>", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } + ], + "documentation": [], + "tags": [ + { + "name": "type", + "text": [ + { + "text": "{(t: T) => number}", + "kind": "text" + } + ] + }, + { + "name": "template", + "text": [ + { + "text": "{Foo}", + "kind": "text" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "T", + "kind": "typeParameterName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "Comment Text", + "kind": "text" + } + ] + } + ] + } + } +] \ No newline at end of file diff --git a/tests/baselines/reference/quickInfoLink4.baseline b/tests/baselines/reference/quickInfoLink4.baseline new file mode 100644 index 0000000000000..94faf3f24dd26 --- /dev/null +++ b/tests/baselines/reference/quickInfoLink4.baseline @@ -0,0 +1,64 @@ +[ + { + "marker": { + "fileName": "/tests/cases/fourslash/quickInfoLink4.ts", + "position": 47, + "name": "" + }, + "quickInfo": { + "kind": "type", + "kindModifiers": "", + "textSpan": { + "start": 47, + "length": 1 + }, + "displayParts": [ + { + "text": "type", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "A", + "kind": "aliasName" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "=", + "kind": "operator" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "1", + "kind": "stringLiteral" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "|", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "2", + "kind": "stringLiteral" + } + ], + "documentation": [] + } + } +] \ No newline at end of file diff --git a/tests/baselines/reference/quickInfoLink5.baseline b/tests/baselines/reference/quickInfoLink5.baseline new file mode 100644 index 0000000000000..12f858bfd00e6 --- /dev/null +++ b/tests/baselines/reference/quickInfoLink5.baseline @@ -0,0 +1,76 @@ +[ + { + "marker": { + "fileName": "/tests/cases/fourslash/quickInfoLink5.ts", + "position": 67, + "name": "" + }, + "quickInfo": { + "kind": "const", + "kindModifiers": "", + "textSpan": { + "start": 67, + "length": 1 + }, + "displayParts": [ + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "B", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "456", + "kind": "stringLiteral" + } + ], + "documentation": [ + { + "text": "See ", + "kind": "text" + }, + { + "text": "{@link ", + "kind": "link" + }, + { + "text": "A", + "kind": "linkName", + "target": { + "fileName": "/tests/cases/fourslash/quickInfoLink5.ts", + "textSpan": { + "start": 6, + "length": 7 + } + } + }, + { + "text": "constant A", + "kind": "linkText" + }, + { + "text": "}", + "kind": "link" + }, + { + "text": " instead", + "kind": "text" + } + ] + } + } +] \ No newline at end of file diff --git a/tests/baselines/reference/quickInfoLink6.baseline b/tests/baselines/reference/quickInfoLink6.baseline new file mode 100644 index 0000000000000..d7e3c60f02afb --- /dev/null +++ b/tests/baselines/reference/quickInfoLink6.baseline @@ -0,0 +1,76 @@ +[ + { + "marker": { + "fileName": "/tests/cases/fourslash/quickInfoLink6.ts", + "position": 67, + "name": "" + }, + "quickInfo": { + "kind": "const", + "kindModifiers": "", + "textSpan": { + "start": 67, + "length": 1 + }, + "displayParts": [ + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "B", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "456", + "kind": "stringLiteral" + } + ], + "documentation": [ + { + "text": "See ", + "kind": "text" + }, + { + "text": "{@link ", + "kind": "link" + }, + { + "text": "A", + "kind": "linkName", + "target": { + "fileName": "/tests/cases/fourslash/quickInfoLink6.ts", + "textSpan": { + "start": 6, + "length": 7 + } + } + }, + { + "text": "constant A", + "kind": "linkText" + }, + { + "text": "}", + "kind": "link" + }, + { + "text": " instead", + "kind": "text" + } + ] + } + } +] \ No newline at end of file diff --git a/tests/baselines/reference/quickInfoLink7.baseline b/tests/baselines/reference/quickInfoLink7.baseline new file mode 100644 index 0000000000000..cf223e9b7bfa5 --- /dev/null +++ b/tests/baselines/reference/quickInfoLink7.baseline @@ -0,0 +1,65 @@ +[ + { + "marker": { + "fileName": "/tests/cases/fourslash/quickInfoLink7.ts", + "position": 46, + "name": "" + }, + "quickInfo": { + "kind": "const", + "kindModifiers": "", + "textSpan": { + "start": 46, + "length": 1 + }, + "displayParts": [ + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "B", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "456", + "kind": "stringLiteral" + } + ], + "documentation": [ + { + "text": "See ", + "kind": "text" + }, + { + "text": "{@link ", + "kind": "link" + }, + { + "text": "| ", + "kind": "linkText" + }, + { + "text": "}", + "kind": "link" + }, + { + "text": " instead", + "kind": "text" + } + ] + } + } +] \ No newline at end of file diff --git a/tests/baselines/reference/quickInfoLink8.baseline b/tests/baselines/reference/quickInfoLink8.baseline new file mode 100644 index 0000000000000..5156e14413a84 --- /dev/null +++ b/tests/baselines/reference/quickInfoLink8.baseline @@ -0,0 +1,76 @@ +[ + { + "marker": { + "fileName": "/tests/cases/fourslash/quickInfoLink8.ts", + "position": 67, + "name": "" + }, + "quickInfo": { + "kind": "const", + "kindModifiers": "", + "textSpan": { + "start": 67, + "length": 1 + }, + "displayParts": [ + { + "text": "const", + "kind": "keyword" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "B", + "kind": "localName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "456", + "kind": "stringLiteral" + } + ], + "documentation": [ + { + "text": "See ", + "kind": "text" + }, + { + "text": "{@link ", + "kind": "link" + }, + { + "text": "A", + "kind": "linkName", + "target": { + "fileName": "/tests/cases/fourslash/quickInfoLink8.ts", + "textSpan": { + "start": 6, + "length": 7 + } + } + }, + { + "text": "constant A", + "kind": "linkText" + }, + { + "text": "}", + "kind": "link" + }, + { + "text": " instead", + "kind": "text" + } + ] + } + } +] \ No newline at end of file diff --git a/tests/baselines/reference/quickInfoOnParameterProperties.baseline b/tests/baselines/reference/quickInfoOnParameterProperties.baseline index ab4f05c5f472e..adc88fb568e46 100644 --- a/tests/baselines/reference/quickInfoOnParameterProperties.baseline +++ b/tests/baselines/reference/quickInfoOnParameterProperties.baseline @@ -59,6 +59,17 @@ "text": "this is the name of blabla \n- use blabla", "kind": "text" } + ], + "tags": [ + { + "name": "example", + "text": [ + { + "text": "blabla", + "kind": "text" + } + ] + } ] } }, @@ -122,6 +133,17 @@ "text": "this is the name of blabla \n- use blabla", "kind": "text" } + ], + "tags": [ + { + "name": "example", + "text": [ + { + "text": "blabla", + "kind": "text" + } + ] + } ] } } diff --git a/tests/baselines/reference/quickInfoOnThis5.baseline b/tests/baselines/reference/quickInfoOnThis5.baseline new file mode 100644 index 0000000000000..76047b05ef163 --- /dev/null +++ b/tests/baselines/reference/quickInfoOnThis5.baseline @@ -0,0 +1,443 @@ +[ + { + "marker": { + "fileName": "/tests/cases/fourslash/quickInfoOnThis5.ts", + "position": 62, + "name": "1" + }, + "quickInfo": { + "kind": "", + "kindModifiers": "", + "textSpan": { + "start": 60, + "length": 4 + }, + "displayParts": [ + { + "text": "{", + "kind": "punctuation" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "num", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": ";", + "kind": "punctuation" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "f", + "kind": "text" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": ";", + "kind": "punctuation" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "g", + "kind": "text" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "this", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": ";", + "kind": "punctuation" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "}", + "kind": "punctuation" + } + ], + "documentation": [], + "tags": [] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/quickInfoOnThis5.ts", + "position": 92, + "name": "2" + }, + "quickInfo": { + "kind": "parameter", + "kindModifiers": "", + "textSpan": { + "start": 90, + "length": 4 + }, + "displayParts": [ + { + "text": "this", + "kind": "keyword" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "{", + "kind": "punctuation" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "num", + "kind": "propertyName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": ";", + "kind": "punctuation" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "f", + "kind": "text" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": ";", + "kind": "punctuation" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "g", + "kind": "text" + }, + { + "text": "(", + "kind": "punctuation" + }, + { + "text": "this", + "kind": "parameterName" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + }, + { + "text": ")", + "kind": "punctuation" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "void", + "kind": "keyword" + }, + { + "text": ";", + "kind": "punctuation" + }, + { + "text": "\n", + "kind": "lineBreak" + }, + { + "text": "}", + "kind": "punctuation" + } + ], + "documentation": [] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/quickInfoOnThis5.ts", + "position": 155, + "name": "3" + }, + "quickInfo": { + "kind": "parameter", + "kindModifiers": "", + "textSpan": { + "start": 153, + "length": 4 + }, + "displayParts": [ + { + "text": "this", + "kind": "keyword" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/quickInfoOnThis5.ts", + "position": 228, + "name": "4" + }, + "quickInfo": { + "kind": "parameter", + "kindModifiers": "", + "textSpan": { + "start": 226, + "length": 4 + }, + "displayParts": [ + { + "text": "this", + "kind": "keyword" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "this", + "kind": "keyword" + } + ], + "documentation": [] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/quickInfoOnThis5.ts", + "position": 258, + "name": "5" + }, + "quickInfo": { + "kind": "parameter", + "kindModifiers": "", + "textSpan": { + "start": 256, + "length": 4 + }, + "displayParts": [ + { + "text": "this", + "kind": "keyword" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "this", + "kind": "keyword" + } + ], + "documentation": [] + } + }, + { + "marker": { + "fileName": "/tests/cases/fourslash/quickInfoOnThis5.ts", + "position": 320, + "name": "6" + }, + "quickInfo": { + "kind": "parameter", + "kindModifiers": "", + "textSpan": { + "start": 318, + "length": 4 + }, + "displayParts": [ + { + "text": "this", + "kind": "keyword" + }, + { + "text": ":", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "number", + "kind": "keyword" + } + ], + "documentation": [] + } + } +] \ No newline at end of file diff --git a/tests/baselines/reference/reactImportUnusedInNewJSXEmit(jsx=react-jsx).js b/tests/baselines/reference/reactImportUnusedInNewJSXEmit(jsx=react-jsx).js index 3f7b46c6bd77b..27f6c4d309260 100644 --- a/tests/baselines/reference/reactImportUnusedInNewJSXEmit(jsx=react-jsx).js +++ b/tests/baselines/reference/reactImportUnusedInNewJSXEmit(jsx=react-jsx).js @@ -17,9 +17,9 @@ exports.__esModule = true; exports.Foo = void 0; var jsx_runtime_1 = require("react/jsx-runtime"); function Bar() { - return (0, jsx_runtime_1.jsx)("div", {}, void 0); + return (0, jsx_runtime_1.jsx)("div", {}); } function Foo() { - return (0, jsx_runtime_1.jsx)(Bar, {}, void 0); + return (0, jsx_runtime_1.jsx)(Bar, {}); } exports.Foo = Foo; diff --git a/tests/baselines/reference/reactJsxReactResolvedNodeNext.js b/tests/baselines/reference/reactJsxReactResolvedNodeNext.js index 600bc4b92da82..f36fdc66c2a5b 100644 --- a/tests/baselines/reference/reactJsxReactResolvedNodeNext.js +++ b/tests/baselines/reference/reactJsxReactResolvedNodeNext.js @@ -24,4 +24,4 @@ import './'; Object.defineProperty(exports, "__esModule", { value: true }); exports.a = void 0; const jsx_runtime_1 = require("react/jsx-runtime"); -exports.a = (0, jsx_runtime_1.jsx)("div", {}, void 0); +exports.a = (0, jsx_runtime_1.jsx)("div", {}); diff --git a/tests/baselines/reference/reactJsxReactResolvedNodeNext.trace.json b/tests/baselines/reference/reactJsxReactResolvedNodeNext.trace.json index 00597f669b34b..aff11ff7b3419 100644 --- a/tests/baselines/reference/reactJsxReactResolvedNodeNext.trace.json +++ b/tests/baselines/reference/reactJsxReactResolvedNodeNext.trace.json @@ -131,5 +131,19 @@ "File 'package.json' does not exist according to earlier cached lookups.", "File '/package.json' does not exist according to earlier cached lookups.", "File 'package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File 'package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File 'package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File 'package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File 'package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File 'package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File 'package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File 'package.json' does not exist according to earlier cached lookups.", "File '/package.json' does not exist according to earlier cached lookups." ] \ No newline at end of file diff --git a/tests/baselines/reference/reactJsxReactResolvedNodeNextEsm.js b/tests/baselines/reference/reactJsxReactResolvedNodeNextEsm.js index bb4cddaf74e62..834a8fa145c4e 100644 --- a/tests/baselines/reference/reactJsxReactResolvedNodeNextEsm.js +++ b/tests/baselines/reference/reactJsxReactResolvedNodeNextEsm.js @@ -29,4 +29,4 @@ import './'; //// [file.js] import { jsx as _jsx } from "react/jsx-runtime"; -export const a = _jsx("div", {}, void 0); +export const a = _jsx("div", {}); diff --git a/tests/baselines/reference/reactJsxReactResolvedNodeNextEsm.trace.json b/tests/baselines/reference/reactJsxReactResolvedNodeNextEsm.trace.json index 02a5d6a429932..783a70f3a4170 100644 --- a/tests/baselines/reference/reactJsxReactResolvedNodeNextEsm.trace.json +++ b/tests/baselines/reference/reactJsxReactResolvedNodeNextEsm.trace.json @@ -125,5 +125,19 @@ "File 'package.json' does not exist according to earlier cached lookups.", "File '/package.json' does not exist according to earlier cached lookups.", "File 'package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File 'package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File 'package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File 'package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File 'package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File 'package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File 'package.json' does not exist according to earlier cached lookups.", + "File '/package.json' does not exist according to earlier cached lookups.", + "File 'package.json' does not exist according to earlier cached lookups.", "File '/package.json' does not exist according to earlier cached lookups." ] \ No newline at end of file diff --git a/tests/baselines/reference/reactReduxLikeDeferredInferenceAllowsAssignment.errors.txt b/tests/baselines/reference/reactReduxLikeDeferredInferenceAllowsAssignment.errors.txt index ec97973b68731..9b6e0228efeaa 100644 --- a/tests/baselines/reference/reactReduxLikeDeferredInferenceAllowsAssignment.errors.txt +++ b/tests/baselines/reference/reactReduxLikeDeferredInferenceAllowsAssignment.errors.txt @@ -5,63 +5,27 @@ tests/cases/compiler/reactReduxLikeDeferredInferenceAllowsAssignment.ts(76,50): Type 'GetProps[P] | (TInjectedProps[P] extends GetProps[P] ? GetProps[P] : TInjectedProps[P])' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. Type 'GetProps[P]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. Type 'GetProps[Extract>]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. - Type 'GetProps[Extract>]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. - Type 'GetProps[P]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. - Type 'Extract> extends keyof TInjectedProps ? TInjectedProps[Extract>] extends GetProps[Extract>] ? GetProps[Extract>] : TInjectedProps[Extract>] : GetProps[Extract>]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. - Type 'GetProps[Extract>] | (TInjectedProps[Extract>] extends GetProps[Extract>] ? GetProps[Extract>] : TInjectedProps[Extract>])' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. - Type 'GetProps[Extract>]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. - Type 'GetProps[Extract>] | GetProps[Extract>] | GetProps[Extract>]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. - Type 'GetProps[Extract>]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. - Type 'GetProps[keyof GetProps & string]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. - Type 'GetProps[string]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. - Type 'GetProps[string]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. - Type 'GetProps[keyof GetProps & string]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. - Type 'GetProps[Extract>]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. - Type 'GetProps[Extract>]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. - Type '(Extract> extends keyof TInjectedProps ? TInjectedProps[keyof TInjectedProps & Extract>] extends GetProps[keyof TInjectedProps & Extract>] ? GetProps[keyof TInjectedProps & Extract>] : TInjectedProps[keyof TInjectedProps & Extract>] : GetProps[Extract>]) | (Extract> extends keyof TInjectedProps ? TInjectedProps[keyof TInjectedProps & Extract>] extends GetProps[keyof TInjectedProps & Extract>] ? GetProps[keyof TInjectedProps & Extract>] : TInjectedProps[keyof TInjectedProps & Extract>] : GetProps[Extract>]) | (Extract> extends keyof TInjectedProps ? TInjectedProps[keyof TInjectedProps & Extract>] extends GetProps[keyof TInjectedProps & Extract>] ? GetProps[keyof TInjectedProps & Extract>] : TInjectedProps[keyof TInjectedProps & Extract>] : GetProps[Extract>])' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. - Type 'Extract> extends keyof TInjectedProps ? TInjectedProps[keyof TInjectedProps & Extract>] extends GetProps[keyof TInjectedProps & Extract>] ? GetProps[keyof TInjectedProps & Extract>] : TInjectedProps[keyof TInjectedProps & Extract>] : GetProps[Extract>]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. - Type '(TInjectedProps[keyof TInjectedProps & Extract>] extends GetProps[keyof TInjectedProps & Extract>] ? GetProps[keyof TInjectedProps & Extract>] : TInjectedProps[keyof TInjectedProps & Extract>]) | GetProps[Extract>]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. - Type 'TInjectedProps[keyof TInjectedProps & Extract>] extends GetProps[keyof TInjectedProps & Extract>] ? GetProps[keyof TInjectedProps & Extract>] : TInjectedProps[keyof TInjectedProps & Extract>]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. - Type 'GetProps[keyof TInjectedProps & Extract>] | TInjectedProps[keyof TInjectedProps & Extract>]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. - Type 'GetProps[keyof TInjectedProps & Extract>]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. + Type 'Extract> extends keyof TInjectedProps ? TInjectedProps[Extract>] extends GetProps[Extract>] ? GetProps[Extract>] : TInjectedProps[Extract>] : GetProps[Extract>]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. + Type 'GetProps[Extract>] | (TInjectedProps[Extract>] extends GetProps[Extract>] ? GetProps[Extract>] : TInjectedProps[Extract>])' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. + Type 'GetProps[Extract>]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. + Type 'GetProps[Extract>] | GetProps[Extract>] | GetProps[Extract>]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. + Type 'GetProps[Extract>]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. + Type 'GetProps[keyof GetProps & string]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. + Type 'GetProps[string]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. + Type '(Extract> extends keyof TInjectedProps ? TInjectedProps[keyof TInjectedProps & Extract>] extends GetProps[keyof TInjectedProps & Extract>] ? GetProps[keyof TInjectedProps & Extract>] : TInjectedProps[keyof TInjectedProps & Extract>] : GetProps[Extract>]) | (Extract> extends keyof TInjectedProps ? TInjectedProps[keyof TInjectedProps & Extract>] extends GetProps[keyof TInjectedProps & Extract>] ? GetProps[keyof TInjectedProps & Extract>] : TInjectedProps[keyof TInjectedProps & Extract>] : GetProps[Extract>]) | (Extract> extends keyof TInjectedProps ? TInjectedProps[keyof TInjectedProps & Extract>] extends GetProps[keyof TInjectedProps & Extract>] ? GetProps[keyof TInjectedProps & Extract>] : TInjectedProps[keyof TInjectedProps & Extract>] : GetProps[Extract>])' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. + Type 'Extract> extends keyof TInjectedProps ? TInjectedProps[keyof TInjectedProps & Extract>] extends GetProps[keyof TInjectedProps & Extract>] ? GetProps[keyof TInjectedProps & Extract>] : TInjectedProps[keyof TInjectedProps & Extract>] : GetProps[Extract>]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. + Type '(TInjectedProps[keyof TInjectedProps & Extract>] extends GetProps[keyof TInjectedProps & Extract>] ? GetProps[keyof TInjectedProps & Extract>] : TInjectedProps[keyof TInjectedProps & Extract>]) | GetProps[Extract>]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. + Type 'TInjectedProps[keyof TInjectedProps & Extract>] extends GetProps[keyof TInjectedProps & Extract>] ? GetProps[keyof TInjectedProps & Extract>] : TInjectedProps[keyof TInjectedProps & Extract>]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. + Type 'GetProps[keyof TInjectedProps & Extract>] | TInjectedProps[keyof TInjectedProps & Extract>]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. + Type 'GetProps[keyof TInjectedProps & Extract>]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. + Type 'GetProps[string]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. + Type 'keyof GetProps & string extends keyof TInjectedProps ? TInjectedProps[keyof TInjectedProps & keyof GetProps & string] extends GetProps[keyof TInjectedProps & keyof GetProps & string] ? GetProps[keyof TInjectedProps & keyof GetProps & string] : TInjectedProps[keyof TInjectedProps & keyof GetProps & string] : GetProps[keyof GetProps & string]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. + Type '(TInjectedProps[keyof TInjectedProps & keyof GetProps & string] extends GetProps[keyof TInjectedProps & keyof GetProps & string] ? GetProps[keyof TInjectedProps & keyof GetProps & string] : TInjectedProps[keyof TInjectedProps & keyof GetProps & string]) | GetProps[keyof GetProps & string]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. + Type 'TInjectedProps[keyof TInjectedProps & keyof GetProps & string] extends GetProps[keyof TInjectedProps & keyof GetProps & string] ? GetProps[keyof TInjectedProps & keyof GetProps & string] : TInjectedProps[keyof TInjectedProps & keyof GetProps & string]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. + Type 'GetProps[keyof TInjectedProps & keyof GetProps & string] | TInjectedProps[keyof TInjectedProps & keyof GetProps & string]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. + Type 'GetProps[keyof TInjectedProps & keyof GetProps & string]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. Type 'GetProps[string]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. - Type 'GetProps[string]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. - Type 'GetProps[keyof TInjectedProps & Extract>]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. - Type 'TInjectedProps[keyof TInjectedProps & Extract>] extends GetProps[keyof TInjectedProps & Extract>] ? GetProps[keyof TInjectedProps & Extract>] : TInjectedProps[keyof TInjectedProps & Extract>]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. - Type 'keyof GetProps & string extends keyof TInjectedProps ? TInjectedProps[keyof TInjectedProps & keyof GetProps & string] extends GetProps[keyof TInjectedProps & keyof GetProps & string] ? GetProps[keyof TInjectedProps & keyof GetProps & string] : TInjectedProps[keyof TInjectedProps & keyof GetProps & string] : GetProps[keyof GetProps & string]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. - Type '(TInjectedProps[keyof TInjectedProps & keyof GetProps & string] extends GetProps[keyof TInjectedProps & keyof GetProps & string] ? GetProps[keyof TInjectedProps & keyof GetProps & string] : TInjectedProps[keyof TInjectedProps & keyof GetProps & string]) | GetProps[keyof GetProps & string]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. - Type 'TInjectedProps[keyof TInjectedProps & keyof GetProps & string] extends GetProps[keyof TInjectedProps & keyof GetProps & string] ? GetProps[keyof TInjectedProps & keyof GetProps & string] : TInjectedProps[keyof TInjectedProps & keyof GetProps & string]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. - Type 'GetProps[keyof TInjectedProps & keyof GetProps & string] | TInjectedProps[keyof TInjectedProps & keyof GetProps & string]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. - Type 'GetProps[keyof TInjectedProps & keyof GetProps & string]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. - Type 'GetProps[string]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. - Type 'GetProps[string]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. - Type 'GetProps[keyof TInjectedProps & keyof GetProps & string]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. - Type 'TInjectedProps[keyof TInjectedProps & keyof GetProps & string] extends GetProps[keyof TInjectedProps & keyof GetProps & string] ? GetProps[keyof TInjectedProps & keyof GetProps & string] : TInjectedProps[keyof TInjectedProps & keyof GetProps & string]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. - Type 'string extends keyof TInjectedProps ? TInjectedProps[keyof TInjectedProps & string] extends GetProps[keyof TInjectedProps & string] ? GetProps[keyof TInjectedProps & string] : TInjectedProps[keyof TInjectedProps & string] : GetProps[string]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. - Type 'string extends keyof TInjectedProps ? TInjectedProps[keyof TInjectedProps & string] extends GetProps[keyof TInjectedProps & string] ? GetProps[keyof TInjectedProps & string] : TInjectedProps[keyof TInjectedProps & string] : GetProps[string]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. - Type 'keyof GetProps & string extends keyof TInjectedProps ? TInjectedProps[keyof TInjectedProps & keyof GetProps & string] extends GetProps[keyof TInjectedProps & keyof GetProps & string] ? GetProps[keyof TInjectedProps & keyof GetProps & string] : TInjectedProps[keyof TInjectedProps & keyof GetProps & string] : GetProps[keyof GetProps & string]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. - Type '(TInjectedProps[keyof TInjectedProps & keyof GetProps & string] extends GetProps[keyof TInjectedProps & keyof GetProps & string] ? GetProps[keyof TInjectedProps & keyof GetProps & string] : TInjectedProps[keyof TInjectedProps & keyof GetProps & string]) | GetProps[keyof GetProps & string]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. - Type 'TInjectedProps[keyof TInjectedProps & keyof GetProps & string] extends GetProps[keyof TInjectedProps & keyof GetProps & string] ? GetProps[keyof TInjectedProps & keyof GetProps & string] : TInjectedProps[keyof TInjectedProps & keyof GetProps & string]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. - Type 'GetProps[keyof TInjectedProps & keyof GetProps & string] | TInjectedProps[keyof TInjectedProps & keyof GetProps & string]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. - Type 'GetProps[keyof TInjectedProps & keyof GetProps & string]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. - Type 'GetProps[string]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. - Type 'Extract> extends keyof TInjectedProps ? TInjectedProps[keyof TInjectedProps & Extract>] extends GetProps[keyof TInjectedProps & Extract>] ? GetProps[keyof TInjectedProps & Extract>] : TInjectedProps[keyof TInjectedProps & Extract>] : GetProps[Extract>]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. - Type '(TInjectedProps[keyof TInjectedProps & Extract>] extends GetProps[keyof TInjectedProps & Extract>] ? GetProps[keyof TInjectedProps & Extract>] : TInjectedProps[keyof TInjectedProps & Extract>]) | GetProps[Extract>]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. - Type 'TInjectedProps[keyof TInjectedProps & Extract>] extends GetProps[keyof TInjectedProps & Extract>] ? GetProps[keyof TInjectedProps & Extract>] : TInjectedProps[keyof TInjectedProps & Extract>]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. - Type 'GetProps[keyof TInjectedProps & Extract>] | TInjectedProps[keyof TInjectedProps & Extract>]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. - Type 'GetProps[keyof TInjectedProps & Extract>]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. - Type 'GetProps[string]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. - Type 'Extract> extends keyof TInjectedProps ? TInjectedProps[Extract>] extends GetProps[Extract>] ? GetProps[Extract>] : TInjectedProps[Extract>] : GetProps[Extract>]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. - Type 'GetProps[Extract>] | (TInjectedProps[Extract>] extends GetProps[Extract>] ? GetProps[Extract>] : TInjectedProps[Extract>])' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. - Type 'GetProps[Extract>]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. - Type 'P extends keyof TInjectedProps ? TInjectedProps[P] extends GetProps[P] ? GetProps[P] : TInjectedProps[P] : GetProps[P]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. - Type 'GetProps[P] | (TInjectedProps[P] extends GetProps[P] ? GetProps[P] : TInjectedProps[P])' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. - Type 'GetProps[P]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. - Type 'GetProps[Extract>]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. - Type 'GetProps[Extract>] | GetProps[Extract>] | GetProps[Extract>]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. - Type 'GetProps[Extract>]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. - Type 'GetProps[keyof GetProps & string]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. - Type 'GetProps[string]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. + Type 'string extends keyof TInjectedProps ? TInjectedProps[keyof TInjectedProps & string] extends GetProps[keyof TInjectedProps & string] ? GetProps[keyof TInjectedProps & string] : TInjectedProps[keyof TInjectedProps & string] : GetProps[string]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. ==== tests/cases/compiler/reactReduxLikeDeferredInferenceAllowsAssignment.ts (1 errors) ==== @@ -149,63 +113,27 @@ tests/cases/compiler/reactReduxLikeDeferredInferenceAllowsAssignment.ts(76,50): !!! error TS2344: Type 'GetProps[P] | (TInjectedProps[P] extends GetProps[P] ? GetProps[P] : TInjectedProps[P])' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. !!! error TS2344: Type 'GetProps[P]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. !!! error TS2344: Type 'GetProps[Extract>]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. -!!! error TS2344: Type 'GetProps[Extract>]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. -!!! error TS2344: Type 'GetProps[P]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. -!!! error TS2344: Type 'Extract> extends keyof TInjectedProps ? TInjectedProps[Extract>] extends GetProps[Extract>] ? GetProps[Extract>] : TInjectedProps[Extract>] : GetProps[Extract>]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. -!!! error TS2344: Type 'GetProps[Extract>] | (TInjectedProps[Extract>] extends GetProps[Extract>] ? GetProps[Extract>] : TInjectedProps[Extract>])' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. -!!! error TS2344: Type 'GetProps[Extract>]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. -!!! error TS2344: Type 'GetProps[Extract>] | GetProps[Extract>] | GetProps[Extract>]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. -!!! error TS2344: Type 'GetProps[Extract>]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. -!!! error TS2344: Type 'GetProps[keyof GetProps & string]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. -!!! error TS2344: Type 'GetProps[string]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. -!!! error TS2344: Type 'GetProps[string]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. -!!! error TS2344: Type 'GetProps[keyof GetProps & string]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. -!!! error TS2344: Type 'GetProps[Extract>]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. -!!! error TS2344: Type 'GetProps[Extract>]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. -!!! error TS2344: Type '(Extract> extends keyof TInjectedProps ? TInjectedProps[keyof TInjectedProps & Extract>] extends GetProps[keyof TInjectedProps & Extract>] ? GetProps[keyof TInjectedProps & Extract>] : TInjectedProps[keyof TInjectedProps & Extract>] : GetProps[Extract>]) | (Extract> extends keyof TInjectedProps ? TInjectedProps[keyof TInjectedProps & Extract>] extends GetProps[keyof TInjectedProps & Extract>] ? GetProps[keyof TInjectedProps & Extract>] : TInjectedProps[keyof TInjectedProps & Extract>] : GetProps[Extract>]) | (Extract> extends keyof TInjectedProps ? TInjectedProps[keyof TInjectedProps & Extract>] extends GetProps[keyof TInjectedProps & Extract>] ? GetProps[keyof TInjectedProps & Extract>] : TInjectedProps[keyof TInjectedProps & Extract>] : GetProps[Extract>])' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. -!!! error TS2344: Type 'Extract> extends keyof TInjectedProps ? TInjectedProps[keyof TInjectedProps & Extract>] extends GetProps[keyof TInjectedProps & Extract>] ? GetProps[keyof TInjectedProps & Extract>] : TInjectedProps[keyof TInjectedProps & Extract>] : GetProps[Extract>]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. -!!! error TS2344: Type '(TInjectedProps[keyof TInjectedProps & Extract>] extends GetProps[keyof TInjectedProps & Extract>] ? GetProps[keyof TInjectedProps & Extract>] : TInjectedProps[keyof TInjectedProps & Extract>]) | GetProps[Extract>]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. -!!! error TS2344: Type 'TInjectedProps[keyof TInjectedProps & Extract>] extends GetProps[keyof TInjectedProps & Extract>] ? GetProps[keyof TInjectedProps & Extract>] : TInjectedProps[keyof TInjectedProps & Extract>]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. -!!! error TS2344: Type 'GetProps[keyof TInjectedProps & Extract>] | TInjectedProps[keyof TInjectedProps & Extract>]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. -!!! error TS2344: Type 'GetProps[keyof TInjectedProps & Extract>]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. +!!! error TS2344: Type 'Extract> extends keyof TInjectedProps ? TInjectedProps[Extract>] extends GetProps[Extract>] ? GetProps[Extract>] : TInjectedProps[Extract>] : GetProps[Extract>]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. +!!! error TS2344: Type 'GetProps[Extract>] | (TInjectedProps[Extract>] extends GetProps[Extract>] ? GetProps[Extract>] : TInjectedProps[Extract>])' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. +!!! error TS2344: Type 'GetProps[Extract>]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. +!!! error TS2344: Type 'GetProps[Extract>] | GetProps[Extract>] | GetProps[Extract>]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. +!!! error TS2344: Type 'GetProps[Extract>]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. +!!! error TS2344: Type 'GetProps[keyof GetProps & string]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. +!!! error TS2344: Type 'GetProps[string]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. +!!! error TS2344: Type '(Extract> extends keyof TInjectedProps ? TInjectedProps[keyof TInjectedProps & Extract>] extends GetProps[keyof TInjectedProps & Extract>] ? GetProps[keyof TInjectedProps & Extract>] : TInjectedProps[keyof TInjectedProps & Extract>] : GetProps[Extract>]) | (Extract> extends keyof TInjectedProps ? TInjectedProps[keyof TInjectedProps & Extract>] extends GetProps[keyof TInjectedProps & Extract>] ? GetProps[keyof TInjectedProps & Extract>] : TInjectedProps[keyof TInjectedProps & Extract>] : GetProps[Extract>]) | (Extract> extends keyof TInjectedProps ? TInjectedProps[keyof TInjectedProps & Extract>] extends GetProps[keyof TInjectedProps & Extract>] ? GetProps[keyof TInjectedProps & Extract>] : TInjectedProps[keyof TInjectedProps & Extract>] : GetProps[Extract>])' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. +!!! error TS2344: Type 'Extract> extends keyof TInjectedProps ? TInjectedProps[keyof TInjectedProps & Extract>] extends GetProps[keyof TInjectedProps & Extract>] ? GetProps[keyof TInjectedProps & Extract>] : TInjectedProps[keyof TInjectedProps & Extract>] : GetProps[Extract>]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. +!!! error TS2344: Type '(TInjectedProps[keyof TInjectedProps & Extract>] extends GetProps[keyof TInjectedProps & Extract>] ? GetProps[keyof TInjectedProps & Extract>] : TInjectedProps[keyof TInjectedProps & Extract>]) | GetProps[Extract>]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. +!!! error TS2344: Type 'TInjectedProps[keyof TInjectedProps & Extract>] extends GetProps[keyof TInjectedProps & Extract>] ? GetProps[keyof TInjectedProps & Extract>] : TInjectedProps[keyof TInjectedProps & Extract>]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. +!!! error TS2344: Type 'GetProps[keyof TInjectedProps & Extract>] | TInjectedProps[keyof TInjectedProps & Extract>]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. +!!! error TS2344: Type 'GetProps[keyof TInjectedProps & Extract>]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. +!!! error TS2344: Type 'GetProps[string]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. +!!! error TS2344: Type 'keyof GetProps & string extends keyof TInjectedProps ? TInjectedProps[keyof TInjectedProps & keyof GetProps & string] extends GetProps[keyof TInjectedProps & keyof GetProps & string] ? GetProps[keyof TInjectedProps & keyof GetProps & string] : TInjectedProps[keyof TInjectedProps & keyof GetProps & string] : GetProps[keyof GetProps & string]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. +!!! error TS2344: Type '(TInjectedProps[keyof TInjectedProps & keyof GetProps & string] extends GetProps[keyof TInjectedProps & keyof GetProps & string] ? GetProps[keyof TInjectedProps & keyof GetProps & string] : TInjectedProps[keyof TInjectedProps & keyof GetProps & string]) | GetProps[keyof GetProps & string]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. +!!! error TS2344: Type 'TInjectedProps[keyof TInjectedProps & keyof GetProps & string] extends GetProps[keyof TInjectedProps & keyof GetProps & string] ? GetProps[keyof TInjectedProps & keyof GetProps & string] : TInjectedProps[keyof TInjectedProps & keyof GetProps & string]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. +!!! error TS2344: Type 'GetProps[keyof TInjectedProps & keyof GetProps & string] | TInjectedProps[keyof TInjectedProps & keyof GetProps & string]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. +!!! error TS2344: Type 'GetProps[keyof TInjectedProps & keyof GetProps & string]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. !!! error TS2344: Type 'GetProps[string]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. -!!! error TS2344: Type 'GetProps[string]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. -!!! error TS2344: Type 'GetProps[keyof TInjectedProps & Extract>]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. -!!! error TS2344: Type 'TInjectedProps[keyof TInjectedProps & Extract>] extends GetProps[keyof TInjectedProps & Extract>] ? GetProps[keyof TInjectedProps & Extract>] : TInjectedProps[keyof TInjectedProps & Extract>]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. -!!! error TS2344: Type 'keyof GetProps & string extends keyof TInjectedProps ? TInjectedProps[keyof TInjectedProps & keyof GetProps & string] extends GetProps[keyof TInjectedProps & keyof GetProps & string] ? GetProps[keyof TInjectedProps & keyof GetProps & string] : TInjectedProps[keyof TInjectedProps & keyof GetProps & string] : GetProps[keyof GetProps & string]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. -!!! error TS2344: Type '(TInjectedProps[keyof TInjectedProps & keyof GetProps & string] extends GetProps[keyof TInjectedProps & keyof GetProps & string] ? GetProps[keyof TInjectedProps & keyof GetProps & string] : TInjectedProps[keyof TInjectedProps & keyof GetProps & string]) | GetProps[keyof GetProps & string]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. -!!! error TS2344: Type 'TInjectedProps[keyof TInjectedProps & keyof GetProps & string] extends GetProps[keyof TInjectedProps & keyof GetProps & string] ? GetProps[keyof TInjectedProps & keyof GetProps & string] : TInjectedProps[keyof TInjectedProps & keyof GetProps & string]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. -!!! error TS2344: Type 'GetProps[keyof TInjectedProps & keyof GetProps & string] | TInjectedProps[keyof TInjectedProps & keyof GetProps & string]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. -!!! error TS2344: Type 'GetProps[keyof TInjectedProps & keyof GetProps & string]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. -!!! error TS2344: Type 'GetProps[string]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. -!!! error TS2344: Type 'GetProps[string]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. -!!! error TS2344: Type 'GetProps[keyof TInjectedProps & keyof GetProps & string]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. -!!! error TS2344: Type 'TInjectedProps[keyof TInjectedProps & keyof GetProps & string] extends GetProps[keyof TInjectedProps & keyof GetProps & string] ? GetProps[keyof TInjectedProps & keyof GetProps & string] : TInjectedProps[keyof TInjectedProps & keyof GetProps & string]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. -!!! error TS2344: Type 'string extends keyof TInjectedProps ? TInjectedProps[keyof TInjectedProps & string] extends GetProps[keyof TInjectedProps & string] ? GetProps[keyof TInjectedProps & string] : TInjectedProps[keyof TInjectedProps & string] : GetProps[string]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. -!!! error TS2344: Type 'string extends keyof TInjectedProps ? TInjectedProps[keyof TInjectedProps & string] extends GetProps[keyof TInjectedProps & string] ? GetProps[keyof TInjectedProps & string] : TInjectedProps[keyof TInjectedProps & string] : GetProps[string]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. -!!! error TS2344: Type 'keyof GetProps & string extends keyof TInjectedProps ? TInjectedProps[keyof TInjectedProps & keyof GetProps & string] extends GetProps[keyof TInjectedProps & keyof GetProps & string] ? GetProps[keyof TInjectedProps & keyof GetProps & string] : TInjectedProps[keyof TInjectedProps & keyof GetProps & string] : GetProps[keyof GetProps & string]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. -!!! error TS2344: Type '(TInjectedProps[keyof TInjectedProps & keyof GetProps & string] extends GetProps[keyof TInjectedProps & keyof GetProps & string] ? GetProps[keyof TInjectedProps & keyof GetProps & string] : TInjectedProps[keyof TInjectedProps & keyof GetProps & string]) | GetProps[keyof GetProps & string]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. -!!! error TS2344: Type 'TInjectedProps[keyof TInjectedProps & keyof GetProps & string] extends GetProps[keyof TInjectedProps & keyof GetProps & string] ? GetProps[keyof TInjectedProps & keyof GetProps & string] : TInjectedProps[keyof TInjectedProps & keyof GetProps & string]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. -!!! error TS2344: Type 'GetProps[keyof TInjectedProps & keyof GetProps & string] | TInjectedProps[keyof TInjectedProps & keyof GetProps & string]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. -!!! error TS2344: Type 'GetProps[keyof TInjectedProps & keyof GetProps & string]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. -!!! error TS2344: Type 'GetProps[string]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. -!!! error TS2344: Type 'Extract> extends keyof TInjectedProps ? TInjectedProps[keyof TInjectedProps & Extract>] extends GetProps[keyof TInjectedProps & Extract>] ? GetProps[keyof TInjectedProps & Extract>] : TInjectedProps[keyof TInjectedProps & Extract>] : GetProps[Extract>]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. -!!! error TS2344: Type '(TInjectedProps[keyof TInjectedProps & Extract>] extends GetProps[keyof TInjectedProps & Extract>] ? GetProps[keyof TInjectedProps & Extract>] : TInjectedProps[keyof TInjectedProps & Extract>]) | GetProps[Extract>]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. -!!! error TS2344: Type 'TInjectedProps[keyof TInjectedProps & Extract>] extends GetProps[keyof TInjectedProps & Extract>] ? GetProps[keyof TInjectedProps & Extract>] : TInjectedProps[keyof TInjectedProps & Extract>]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. -!!! error TS2344: Type 'GetProps[keyof TInjectedProps & Extract>] | TInjectedProps[keyof TInjectedProps & Extract>]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. -!!! error TS2344: Type 'GetProps[keyof TInjectedProps & Extract>]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. -!!! error TS2344: Type 'GetProps[string]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. -!!! error TS2344: Type 'Extract> extends keyof TInjectedProps ? TInjectedProps[Extract>] extends GetProps[Extract>] ? GetProps[Extract>] : TInjectedProps[Extract>] : GetProps[Extract>]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. -!!! error TS2344: Type 'GetProps[Extract>] | (TInjectedProps[Extract>] extends GetProps[Extract>] ? GetProps[Extract>] : TInjectedProps[Extract>])' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. -!!! error TS2344: Type 'GetProps[Extract>]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. -!!! error TS2344: Type 'P extends keyof TInjectedProps ? TInjectedProps[P] extends GetProps[P] ? GetProps[P] : TInjectedProps[P] : GetProps[P]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. -!!! error TS2344: Type 'GetProps[P] | (TInjectedProps[P] extends GetProps[P] ? GetProps[P] : TInjectedProps[P])' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. -!!! error TS2344: Type 'GetProps[P]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. -!!! error TS2344: Type 'GetProps[Extract>]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. -!!! error TS2344: Type 'GetProps[Extract>] | GetProps[Extract>] | GetProps[Extract>]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. -!!! error TS2344: Type 'GetProps[Extract>]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. -!!! error TS2344: Type 'GetProps[keyof GetProps & string]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. -!!! error TS2344: Type 'GetProps[string]' is not assignable to type 'TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never'. +!!! error TS2344: Type 'string extends keyof TInjectedProps ? TInjectedProps[keyof TInjectedProps & string] extends GetProps[keyof TInjectedProps & string] ? GetProps[keyof TInjectedProps & string] : TInjectedProps[keyof TInjectedProps & string] : GetProps[string]' is not assignable to type '(TInjectedProps[P] extends GetProps[P] ? GetProps[P] : never) | undefined'. >; declare const connect: { diff --git a/tests/baselines/reference/readonlyPropertySubtypeRelationDirected.errors.txt b/tests/baselines/reference/readonlyPropertySubtypeRelationDirected.errors.txt new file mode 100644 index 0000000000000..dab2892c5fdb5 --- /dev/null +++ b/tests/baselines/reference/readonlyPropertySubtypeRelationDirected.errors.txt @@ -0,0 +1,104 @@ +tests/cases/compiler/four.ts(11,11): error TS2540: Cannot assign to 'a' because it is a read-only property. +tests/cases/compiler/four.ts(15,11): error TS2540: Cannot assign to 'a' because it is a read-only property. +tests/cases/compiler/one.ts(11,11): error TS2540: Cannot assign to 'a' because it is a read-only property. +tests/cases/compiler/one.ts(15,11): error TS2540: Cannot assign to 'a' because it is a read-only property. +tests/cases/compiler/three.ts(11,11): error TS2540: Cannot assign to 'a' because it is a read-only property. +tests/cases/compiler/three.ts(15,11): error TS2540: Cannot assign to 'a' because it is a read-only property. +tests/cases/compiler/two.ts(11,11): error TS2540: Cannot assign to 'a' because it is a read-only property. +tests/cases/compiler/two.ts(15,11): error TS2540: Cannot assign to 'a' because it is a read-only property. + + +==== tests/cases/compiler/one.ts (2 errors) ==== + export {}; + // When the non-readonly type is declared first, the unioned type of `three` in `doSomething` is never treated as readonly + const two: { a: string } = { a: 'two' }; + const one: { readonly a: string } = { a: 'one' }; + + function doSomething(condition: boolean) { + // when `one` comes first in the conditional check, the return type of `doSomething` is inferred as `a` is readonly, but `a` is + // only treated as readonly (i.e. it will produce a diagnostic if you try to assign to it) based on the order of declarations of `one` and `two` above + const three = (condition) ? one : two; + + three.a = 'foo'; + ~ +!!! error TS2540: Cannot assign to 'a' because it is a read-only property. + + // the inferred (displayed?) type of `a` also depends on the order of the condition above. When `one` comes first, the displayed type is `any` + // when `two` comes first, the displayed type is `string`, but the diagnostic will always correctly find that it's string + three.a = 'foo2'; + ~ +!!! error TS2540: Cannot assign to 'a' because it is a read-only property. + + return three; + } +==== tests/cases/compiler/two.ts (2 errors) ==== + export {}; + // When the non-readonly type is declared first, the unioned type of `three` in `doSomething` is never treated as readonly + const two: { a: string } = { a: 'two' }; + const one: { readonly a: string } = { a: 'one' }; + + function doSomething(condition: boolean) { + // when `two` comes first in the conditional check, the return type of `doSomething` is inferred as not readonly but produces the same diagnostics as above + // based on the declaration order of `one` and `two` + const three = (condition) ? two : one; + + three.a = 'foo'; + ~ +!!! error TS2540: Cannot assign to 'a' because it is a read-only property. + + // the inferred (displayed?) type of `a` also depends on the order of the condition above. When `one` comes first, the displayed type is `any` + // when `two` comes first, the displayed type is `string`, but the diagnostic will always correctly find that it's string + three.a = 'foo2'; + ~ +!!! error TS2540: Cannot assign to 'a' because it is a read-only property. + + return three; + } + +==== tests/cases/compiler/three.ts (2 errors) ==== + export {}; + // When the readonly type is declared first, the unioned type of `three` in `doSomething` is always treated as readonly by the compiler + const one: { readonly a: string } = { a: 'one' }; + const two: { a: string } = { a: 'two' }; + + function doSomething(condition: boolean) { + // when `one` comes first in the conditional check, the return type of `doSomething` is inferred as `a` is readonly, but `a` is + // only treated as readonly (i.e. it will produce a diagnostic if you try to assign to it) based on the order of declarations of `one` and `two` above + const three = (condition) ? one : two; + + three.a = 'foo'; + ~ +!!! error TS2540: Cannot assign to 'a' because it is a read-only property. + + // the inferred (displayed?) type of `a` also depends on the order of the condition above. When `one` comes first, the displayed type is `any` + // when `two` comes first, the displayed type is `string`, but the diagnostic will always correctly find that it's string + three.a = 'foo2'; + ~ +!!! error TS2540: Cannot assign to 'a' because it is a read-only property. + + return three; + } + +==== tests/cases/compiler/four.ts (2 errors) ==== + export {}; + // When the readonly type is declared first, the unioned type of `three` in `doSomething` is always treated as readonly by the compiler + const one: { readonly a: string } = { a: 'one' }; + const two: { a: string } = { a: 'two' }; + + function doSomething(condition: boolean) { + // when `two` comes first in the conditional check, the return type of `doSomething` is inferred as not readonly but produces the same diagnostics as above + // based on the declaration order of `one` and `two` + const three = (condition) ? two : one; + + three.a = 'foo'; + ~ +!!! error TS2540: Cannot assign to 'a' because it is a read-only property. + + // the inferred (displayed?) type of `a` also depends on the order of the condition above. When `one` comes first, the displayed type is `any` + // when `two` comes first, the displayed type is `string`, but the diagnostic will always correctly find that it's string + three.a = 'foo2'; + ~ +!!! error TS2540: Cannot assign to 'a' because it is a read-only property. + + return three; + } \ No newline at end of file diff --git a/tests/baselines/reference/readonlyPropertySubtypeRelationDirected.js b/tests/baselines/reference/readonlyPropertySubtypeRelationDirected.js new file mode 100644 index 0000000000000..2ef516de0caff --- /dev/null +++ b/tests/baselines/reference/readonlyPropertySubtypeRelationDirected.js @@ -0,0 +1,145 @@ +//// [tests/cases/compiler/readonlyPropertySubtypeRelationDirected.ts] //// + +//// [one.ts] +export {}; +// When the non-readonly type is declared first, the unioned type of `three` in `doSomething` is never treated as readonly +const two: { a: string } = { a: 'two' }; +const one: { readonly a: string } = { a: 'one' }; + +function doSomething(condition: boolean) { + // when `one` comes first in the conditional check, the return type of `doSomething` is inferred as `a` is readonly, but `a` is + // only treated as readonly (i.e. it will produce a diagnostic if you try to assign to it) based on the order of declarations of `one` and `two` above + const three = (condition) ? one : two; + + three.a = 'foo'; + + // the inferred (displayed?) type of `a` also depends on the order of the condition above. When `one` comes first, the displayed type is `any` + // when `two` comes first, the displayed type is `string`, but the diagnostic will always correctly find that it's string + three.a = 'foo2'; + + return three; +} +//// [two.ts] +export {}; +// When the non-readonly type is declared first, the unioned type of `three` in `doSomething` is never treated as readonly +const two: { a: string } = { a: 'two' }; +const one: { readonly a: string } = { a: 'one' }; + +function doSomething(condition: boolean) { + // when `two` comes first in the conditional check, the return type of `doSomething` is inferred as not readonly but produces the same diagnostics as above + // based on the declaration order of `one` and `two` + const three = (condition) ? two : one; + + three.a = 'foo'; + + // the inferred (displayed?) type of `a` also depends on the order of the condition above. When `one` comes first, the displayed type is `any` + // when `two` comes first, the displayed type is `string`, but the diagnostic will always correctly find that it's string + three.a = 'foo2'; + + return three; +} + +//// [three.ts] +export {}; +// When the readonly type is declared first, the unioned type of `three` in `doSomething` is always treated as readonly by the compiler +const one: { readonly a: string } = { a: 'one' }; +const two: { a: string } = { a: 'two' }; + +function doSomething(condition: boolean) { + // when `one` comes first in the conditional check, the return type of `doSomething` is inferred as `a` is readonly, but `a` is + // only treated as readonly (i.e. it will produce a diagnostic if you try to assign to it) based on the order of declarations of `one` and `two` above + const three = (condition) ? one : two; + + three.a = 'foo'; + + // the inferred (displayed?) type of `a` also depends on the order of the condition above. When `one` comes first, the displayed type is `any` + // when `two` comes first, the displayed type is `string`, but the diagnostic will always correctly find that it's string + three.a = 'foo2'; + + return three; +} + +//// [four.ts] +export {}; +// When the readonly type is declared first, the unioned type of `three` in `doSomething` is always treated as readonly by the compiler +const one: { readonly a: string } = { a: 'one' }; +const two: { a: string } = { a: 'two' }; + +function doSomething(condition: boolean) { + // when `two` comes first in the conditional check, the return type of `doSomething` is inferred as not readonly but produces the same diagnostics as above + // based on the declaration order of `one` and `two` + const three = (condition) ? two : one; + + three.a = 'foo'; + + // the inferred (displayed?) type of `a` also depends on the order of the condition above. When `one` comes first, the displayed type is `any` + // when `two` comes first, the displayed type is `string`, but the diagnostic will always correctly find that it's string + three.a = 'foo2'; + + return three; +} + +//// [one.js] +"use strict"; +exports.__esModule = true; +// When the non-readonly type is declared first, the unioned type of `three` in `doSomething` is never treated as readonly +var two = { a: 'two' }; +var one = { a: 'one' }; +function doSomething(condition) { + // when `one` comes first in the conditional check, the return type of `doSomething` is inferred as `a` is readonly, but `a` is + // only treated as readonly (i.e. it will produce a diagnostic if you try to assign to it) based on the order of declarations of `one` and `two` above + var three = (condition) ? one : two; + three.a = 'foo'; + // the inferred (displayed?) type of `a` also depends on the order of the condition above. When `one` comes first, the displayed type is `any` + // when `two` comes first, the displayed type is `string`, but the diagnostic will always correctly find that it's string + three.a = 'foo2'; + return three; +} +//// [two.js] +"use strict"; +exports.__esModule = true; +// When the non-readonly type is declared first, the unioned type of `three` in `doSomething` is never treated as readonly +var two = { a: 'two' }; +var one = { a: 'one' }; +function doSomething(condition) { + // when `two` comes first in the conditional check, the return type of `doSomething` is inferred as not readonly but produces the same diagnostics as above + // based on the declaration order of `one` and `two` + var three = (condition) ? two : one; + three.a = 'foo'; + // the inferred (displayed?) type of `a` also depends on the order of the condition above. When `one` comes first, the displayed type is `any` + // when `two` comes first, the displayed type is `string`, but the diagnostic will always correctly find that it's string + three.a = 'foo2'; + return three; +} +//// [three.js] +"use strict"; +exports.__esModule = true; +// When the readonly type is declared first, the unioned type of `three` in `doSomething` is always treated as readonly by the compiler +var one = { a: 'one' }; +var two = { a: 'two' }; +function doSomething(condition) { + // when `one` comes first in the conditional check, the return type of `doSomething` is inferred as `a` is readonly, but `a` is + // only treated as readonly (i.e. it will produce a diagnostic if you try to assign to it) based on the order of declarations of `one` and `two` above + var three = (condition) ? one : two; + three.a = 'foo'; + // the inferred (displayed?) type of `a` also depends on the order of the condition above. When `one` comes first, the displayed type is `any` + // when `two` comes first, the displayed type is `string`, but the diagnostic will always correctly find that it's string + three.a = 'foo2'; + return three; +} +//// [four.js] +"use strict"; +exports.__esModule = true; +// When the readonly type is declared first, the unioned type of `three` in `doSomething` is always treated as readonly by the compiler +var one = { a: 'one' }; +var two = { a: 'two' }; +function doSomething(condition) { + // when `two` comes first in the conditional check, the return type of `doSomething` is inferred as not readonly but produces the same diagnostics as above + // based on the declaration order of `one` and `two` + var three = (condition) ? two : one; + three.a = 'foo'; + // the inferred (displayed?) type of `a` also depends on the order of the condition above. When `one` comes first, the displayed type is `any` + // when `two` comes first, the displayed type is `string`, but the diagnostic will always correctly find that it's string + three.a = 'foo2'; + return three; +} diff --git a/tests/baselines/reference/readonlyPropertySubtypeRelationDirected.symbols b/tests/baselines/reference/readonlyPropertySubtypeRelationDirected.symbols new file mode 100644 index 0000000000000..9a19925057ed8 --- /dev/null +++ b/tests/baselines/reference/readonlyPropertySubtypeRelationDirected.symbols @@ -0,0 +1,162 @@ +=== tests/cases/compiler/one.ts === +export {}; +// When the non-readonly type is declared first, the unioned type of `three` in `doSomething` is never treated as readonly +const two: { a: string } = { a: 'two' }; +>two : Symbol(two, Decl(one.ts, 2, 5)) +>a : Symbol(a, Decl(one.ts, 2, 12)) +>a : Symbol(a, Decl(one.ts, 2, 28)) + +const one: { readonly a: string } = { a: 'one' }; +>one : Symbol(one, Decl(one.ts, 3, 5)) +>a : Symbol(a, Decl(one.ts, 3, 12)) +>a : Symbol(a, Decl(one.ts, 3, 37)) + +function doSomething(condition: boolean) { +>doSomething : Symbol(doSomething, Decl(one.ts, 3, 49)) +>condition : Symbol(condition, Decl(one.ts, 5, 21)) + + // when `one` comes first in the conditional check, the return type of `doSomething` is inferred as `a` is readonly, but `a` is + // only treated as readonly (i.e. it will produce a diagnostic if you try to assign to it) based on the order of declarations of `one` and `two` above + const three = (condition) ? one : two; +>three : Symbol(three, Decl(one.ts, 8, 9)) +>condition : Symbol(condition, Decl(one.ts, 5, 21)) +>one : Symbol(one, Decl(one.ts, 3, 5)) +>two : Symbol(two, Decl(one.ts, 2, 5)) + + three.a = 'foo'; +>three.a : Symbol(a, Decl(one.ts, 3, 12)) +>three : Symbol(three, Decl(one.ts, 8, 9)) +>a : Symbol(a, Decl(one.ts, 3, 12)) + + // the inferred (displayed?) type of `a` also depends on the order of the condition above. When `one` comes first, the displayed type is `any` + // when `two` comes first, the displayed type is `string`, but the diagnostic will always correctly find that it's string + three.a = 'foo2'; +>three.a : Symbol(a, Decl(one.ts, 3, 12)) +>three : Symbol(three, Decl(one.ts, 8, 9)) +>a : Symbol(a, Decl(one.ts, 3, 12)) + + return three; +>three : Symbol(three, Decl(one.ts, 8, 9)) +} +=== tests/cases/compiler/two.ts === +export {}; +// When the non-readonly type is declared first, the unioned type of `three` in `doSomething` is never treated as readonly +const two: { a: string } = { a: 'two' }; +>two : Symbol(two, Decl(two.ts, 2, 5)) +>a : Symbol(a, Decl(two.ts, 2, 12)) +>a : Symbol(a, Decl(two.ts, 2, 28)) + +const one: { readonly a: string } = { a: 'one' }; +>one : Symbol(one, Decl(two.ts, 3, 5)) +>a : Symbol(a, Decl(two.ts, 3, 12)) +>a : Symbol(a, Decl(two.ts, 3, 37)) + +function doSomething(condition: boolean) { +>doSomething : Symbol(doSomething, Decl(two.ts, 3, 49)) +>condition : Symbol(condition, Decl(two.ts, 5, 21)) + + // when `two` comes first in the conditional check, the return type of `doSomething` is inferred as not readonly but produces the same diagnostics as above + // based on the declaration order of `one` and `two` + const three = (condition) ? two : one; +>three : Symbol(three, Decl(two.ts, 8, 9)) +>condition : Symbol(condition, Decl(two.ts, 5, 21)) +>two : Symbol(two, Decl(two.ts, 2, 5)) +>one : Symbol(one, Decl(two.ts, 3, 5)) + + three.a = 'foo'; +>three.a : Symbol(a, Decl(two.ts, 3, 12)) +>three : Symbol(three, Decl(two.ts, 8, 9)) +>a : Symbol(a, Decl(two.ts, 3, 12)) + + // the inferred (displayed?) type of `a` also depends on the order of the condition above. When `one` comes first, the displayed type is `any` + // when `two` comes first, the displayed type is `string`, but the diagnostic will always correctly find that it's string + three.a = 'foo2'; +>three.a : Symbol(a, Decl(two.ts, 3, 12)) +>three : Symbol(three, Decl(two.ts, 8, 9)) +>a : Symbol(a, Decl(two.ts, 3, 12)) + + return three; +>three : Symbol(three, Decl(two.ts, 8, 9)) +} + +=== tests/cases/compiler/three.ts === +export {}; +// When the readonly type is declared first, the unioned type of `three` in `doSomething` is always treated as readonly by the compiler +const one: { readonly a: string } = { a: 'one' }; +>one : Symbol(one, Decl(three.ts, 2, 5)) +>a : Symbol(a, Decl(three.ts, 2, 12)) +>a : Symbol(a, Decl(three.ts, 2, 37)) + +const two: { a: string } = { a: 'two' }; +>two : Symbol(two, Decl(three.ts, 3, 5)) +>a : Symbol(a, Decl(three.ts, 3, 12)) +>a : Symbol(a, Decl(three.ts, 3, 28)) + +function doSomething(condition: boolean) { +>doSomething : Symbol(doSomething, Decl(three.ts, 3, 40)) +>condition : Symbol(condition, Decl(three.ts, 5, 21)) + + // when `one` comes first in the conditional check, the return type of `doSomething` is inferred as `a` is readonly, but `a` is + // only treated as readonly (i.e. it will produce a diagnostic if you try to assign to it) based on the order of declarations of `one` and `two` above + const three = (condition) ? one : two; +>three : Symbol(three, Decl(three.ts, 8, 9)) +>condition : Symbol(condition, Decl(three.ts, 5, 21)) +>one : Symbol(one, Decl(three.ts, 2, 5)) +>two : Symbol(two, Decl(three.ts, 3, 5)) + + three.a = 'foo'; +>three.a : Symbol(a, Decl(three.ts, 2, 12)) +>three : Symbol(three, Decl(three.ts, 8, 9)) +>a : Symbol(a, Decl(three.ts, 2, 12)) + + // the inferred (displayed?) type of `a` also depends on the order of the condition above. When `one` comes first, the displayed type is `any` + // when `two` comes first, the displayed type is `string`, but the diagnostic will always correctly find that it's string + three.a = 'foo2'; +>three.a : Symbol(a, Decl(three.ts, 2, 12)) +>three : Symbol(three, Decl(three.ts, 8, 9)) +>a : Symbol(a, Decl(three.ts, 2, 12)) + + return three; +>three : Symbol(three, Decl(three.ts, 8, 9)) +} + +=== tests/cases/compiler/four.ts === +export {}; +// When the readonly type is declared first, the unioned type of `three` in `doSomething` is always treated as readonly by the compiler +const one: { readonly a: string } = { a: 'one' }; +>one : Symbol(one, Decl(four.ts, 2, 5)) +>a : Symbol(a, Decl(four.ts, 2, 12)) +>a : Symbol(a, Decl(four.ts, 2, 37)) + +const two: { a: string } = { a: 'two' }; +>two : Symbol(two, Decl(four.ts, 3, 5)) +>a : Symbol(a, Decl(four.ts, 3, 12)) +>a : Symbol(a, Decl(four.ts, 3, 28)) + +function doSomething(condition: boolean) { +>doSomething : Symbol(doSomething, Decl(four.ts, 3, 40)) +>condition : Symbol(condition, Decl(four.ts, 5, 21)) + + // when `two` comes first in the conditional check, the return type of `doSomething` is inferred as not readonly but produces the same diagnostics as above + // based on the declaration order of `one` and `two` + const three = (condition) ? two : one; +>three : Symbol(three, Decl(four.ts, 8, 9)) +>condition : Symbol(condition, Decl(four.ts, 5, 21)) +>two : Symbol(two, Decl(four.ts, 3, 5)) +>one : Symbol(one, Decl(four.ts, 2, 5)) + + three.a = 'foo'; +>three.a : Symbol(a, Decl(four.ts, 2, 12)) +>three : Symbol(three, Decl(four.ts, 8, 9)) +>a : Symbol(a, Decl(four.ts, 2, 12)) + + // the inferred (displayed?) type of `a` also depends on the order of the condition above. When `one` comes first, the displayed type is `any` + // when `two` comes first, the displayed type is `string`, but the diagnostic will always correctly find that it's string + three.a = 'foo2'; +>three.a : Symbol(a, Decl(four.ts, 2, 12)) +>three : Symbol(three, Decl(four.ts, 8, 9)) +>a : Symbol(a, Decl(four.ts, 2, 12)) + + return three; +>three : Symbol(three, Decl(four.ts, 8, 9)) +} diff --git a/tests/baselines/reference/readonlyPropertySubtypeRelationDirected.types b/tests/baselines/reference/readonlyPropertySubtypeRelationDirected.types new file mode 100644 index 0000000000000..30e4b0d32c7db --- /dev/null +++ b/tests/baselines/reference/readonlyPropertySubtypeRelationDirected.types @@ -0,0 +1,202 @@ +=== tests/cases/compiler/one.ts === +export {}; +// When the non-readonly type is declared first, the unioned type of `three` in `doSomething` is never treated as readonly +const two: { a: string } = { a: 'two' }; +>two : { a: string; } +>a : string +>{ a: 'two' } : { a: string; } +>a : string +>'two' : "two" + +const one: { readonly a: string } = { a: 'one' }; +>one : { readonly a: string; } +>a : string +>{ a: 'one' } : { a: string; } +>a : string +>'one' : "one" + +function doSomething(condition: boolean) { +>doSomething : (condition: boolean) => { readonly a: string; } +>condition : boolean + + // when `one` comes first in the conditional check, the return type of `doSomething` is inferred as `a` is readonly, but `a` is + // only treated as readonly (i.e. it will produce a diagnostic if you try to assign to it) based on the order of declarations of `one` and `two` above + const three = (condition) ? one : two; +>three : { readonly a: string; } +>(condition) ? one : two : { readonly a: string; } +>(condition) : boolean +>condition : boolean +>one : { readonly a: string; } +>two : { a: string; } + + three.a = 'foo'; +>three.a = 'foo' : "foo" +>three.a : any +>three : { readonly a: string; } +>a : any +>'foo' : "foo" + + // the inferred (displayed?) type of `a` also depends on the order of the condition above. When `one` comes first, the displayed type is `any` + // when `two` comes first, the displayed type is `string`, but the diagnostic will always correctly find that it's string + three.a = 'foo2'; +>three.a = 'foo2' : "foo2" +>three.a : any +>three : { readonly a: string; } +>a : any +>'foo2' : "foo2" + + return three; +>three : { readonly a: string; } +} +=== tests/cases/compiler/two.ts === +export {}; +// When the non-readonly type is declared first, the unioned type of `three` in `doSomething` is never treated as readonly +const two: { a: string } = { a: 'two' }; +>two : { a: string; } +>a : string +>{ a: 'two' } : { a: string; } +>a : string +>'two' : "two" + +const one: { readonly a: string } = { a: 'one' }; +>one : { readonly a: string; } +>a : string +>{ a: 'one' } : { a: string; } +>a : string +>'one' : "one" + +function doSomething(condition: boolean) { +>doSomething : (condition: boolean) => { readonly a: string; } +>condition : boolean + + // when `two` comes first in the conditional check, the return type of `doSomething` is inferred as not readonly but produces the same diagnostics as above + // based on the declaration order of `one` and `two` + const three = (condition) ? two : one; +>three : { readonly a: string; } +>(condition) ? two : one : { readonly a: string; } +>(condition) : boolean +>condition : boolean +>two : { a: string; } +>one : { readonly a: string; } + + three.a = 'foo'; +>three.a = 'foo' : "foo" +>three.a : any +>three : { readonly a: string; } +>a : any +>'foo' : "foo" + + // the inferred (displayed?) type of `a` also depends on the order of the condition above. When `one` comes first, the displayed type is `any` + // when `two` comes first, the displayed type is `string`, but the diagnostic will always correctly find that it's string + three.a = 'foo2'; +>three.a = 'foo2' : "foo2" +>three.a : any +>three : { readonly a: string; } +>a : any +>'foo2' : "foo2" + + return three; +>three : { readonly a: string; } +} + +=== tests/cases/compiler/three.ts === +export {}; +// When the readonly type is declared first, the unioned type of `three` in `doSomething` is always treated as readonly by the compiler +const one: { readonly a: string } = { a: 'one' }; +>one : { readonly a: string; } +>a : string +>{ a: 'one' } : { a: string; } +>a : string +>'one' : "one" + +const two: { a: string } = { a: 'two' }; +>two : { a: string; } +>a : string +>{ a: 'two' } : { a: string; } +>a : string +>'two' : "two" + +function doSomething(condition: boolean) { +>doSomething : (condition: boolean) => { readonly a: string; } +>condition : boolean + + // when `one` comes first in the conditional check, the return type of `doSomething` is inferred as `a` is readonly, but `a` is + // only treated as readonly (i.e. it will produce a diagnostic if you try to assign to it) based on the order of declarations of `one` and `two` above + const three = (condition) ? one : two; +>three : { readonly a: string; } +>(condition) ? one : two : { readonly a: string; } +>(condition) : boolean +>condition : boolean +>one : { readonly a: string; } +>two : { a: string; } + + three.a = 'foo'; +>three.a = 'foo' : "foo" +>three.a : any +>three : { readonly a: string; } +>a : any +>'foo' : "foo" + + // the inferred (displayed?) type of `a` also depends on the order of the condition above. When `one` comes first, the displayed type is `any` + // when `two` comes first, the displayed type is `string`, but the diagnostic will always correctly find that it's string + three.a = 'foo2'; +>three.a = 'foo2' : "foo2" +>three.a : any +>three : { readonly a: string; } +>a : any +>'foo2' : "foo2" + + return three; +>three : { readonly a: string; } +} + +=== tests/cases/compiler/four.ts === +export {}; +// When the readonly type is declared first, the unioned type of `three` in `doSomething` is always treated as readonly by the compiler +const one: { readonly a: string } = { a: 'one' }; +>one : { readonly a: string; } +>a : string +>{ a: 'one' } : { a: string; } +>a : string +>'one' : "one" + +const two: { a: string } = { a: 'two' }; +>two : { a: string; } +>a : string +>{ a: 'two' } : { a: string; } +>a : string +>'two' : "two" + +function doSomething(condition: boolean) { +>doSomething : (condition: boolean) => { readonly a: string; } +>condition : boolean + + // when `two` comes first in the conditional check, the return type of `doSomething` is inferred as not readonly but produces the same diagnostics as above + // based on the declaration order of `one` and `two` + const three = (condition) ? two : one; +>three : { readonly a: string; } +>(condition) ? two : one : { readonly a: string; } +>(condition) : boolean +>condition : boolean +>two : { a: string; } +>one : { readonly a: string; } + + three.a = 'foo'; +>three.a = 'foo' : "foo" +>three.a : any +>three : { readonly a: string; } +>a : any +>'foo' : "foo" + + // the inferred (displayed?) type of `a` also depends on the order of the condition above. When `one` comes first, the displayed type is `any` + // when `two` comes first, the displayed type is `string`, but the diagnostic will always correctly find that it's string + three.a = 'foo2'; +>three.a = 'foo2' : "foo2" +>three.a : any +>three : { readonly a: string; } +>a : any +>'foo2' : "foo2" + + return three; +>three : { readonly a: string; } +} diff --git a/tests/baselines/reference/recursiveConditionalTypes.symbols b/tests/baselines/reference/recursiveConditionalTypes.symbols index 3c77d93e71f13..e9b58df3c28a3 100644 --- a/tests/baselines/reference/recursiveConditionalTypes.symbols +++ b/tests/baselines/reference/recursiveConditionalTypes.symbols @@ -566,7 +566,7 @@ let five: Add<2, 3>; type _PrependNextNum> = A['length'] extends infer T >_PrependNextNum : Symbol(_PrependNextNum, Decl(recursiveConditionalTypes.ts, 147, 20)) >A : Symbol(A, Decl(recursiveConditionalTypes.ts, 151, 21)) ->Array : Symbol(Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --) ... and 2 more) +>Array : Symbol(Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --) ... and 3 more) >A : Symbol(A, Decl(recursiveConditionalTypes.ts, 151, 21)) >T : Symbol(T, Decl(recursiveConditionalTypes.ts, 151, 74)) @@ -584,7 +584,7 @@ type _PrependNextNum> = A['length'] extends infer T type _Enumerate, N extends number> = N extends A['length'] >_Enumerate : Symbol(_Enumerate, Decl(recursiveConditionalTypes.ts, 155, 12)) >A : Symbol(A, Decl(recursiveConditionalTypes.ts, 157, 16)) ->Array : Symbol(Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --) ... and 2 more) +>Array : Symbol(Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --) ... and 3 more) >N : Symbol(N, Decl(recursiveConditionalTypes.ts, 157, 41)) >N : Symbol(N, Decl(recursiveConditionalTypes.ts, 157, 41)) >A : Symbol(A, Decl(recursiveConditionalTypes.ts, 157, 16)) diff --git a/tests/baselines/reference/redefineArray.errors.txt b/tests/baselines/reference/redefineArray.errors.txt index af387e7d09b97..a03a0ba769a9a 100644 --- a/tests/baselines/reference/redefineArray.errors.txt +++ b/tests/baselines/reference/redefineArray.errors.txt @@ -5,4 +5,4 @@ tests/cases/compiler/redefineArray.ts(1,1): error TS2741: Property 'isArray' is Array = function (n:number, s:string) {return n;}; ~~~~~ !!! error TS2741: Property 'isArray' is missing in type '(n: number, s: string) => number' but required in type 'ArrayConstructor'. -!!! related TS2728 /.ts/lib.es5.d.ts:1460:5: 'isArray' is declared here. \ No newline at end of file +!!! related TS2728 /.ts/lib.es5.d.ts:1466:5: 'isArray' is declared here. \ No newline at end of file diff --git a/tests/baselines/reference/reexportMissingDefault.js b/tests/baselines/reference/reexportMissingDefault.js index 9af5fe9b6f197..f204553f96443 100644 --- a/tests/baselines/reference/reexportMissingDefault.js +++ b/tests/baselines/reference/reexportMissingDefault.js @@ -16,7 +16,11 @@ exports.b = null; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/reexportMissingDefault1.js b/tests/baselines/reference/reexportMissingDefault1.js index fe5a3799287f0..bcd3d26174b84 100644 --- a/tests/baselines/reference/reexportMissingDefault1.js +++ b/tests/baselines/reference/reexportMissingDefault1.js @@ -17,7 +17,11 @@ exports.b = null; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/reexportMissingDefault2.js b/tests/baselines/reference/reexportMissingDefault2.js index ca164d40aac37..30b7bbcf154b7 100644 --- a/tests/baselines/reference/reexportMissingDefault2.js +++ b/tests/baselines/reference/reexportMissingDefault2.js @@ -16,7 +16,11 @@ exports.b = null; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/reexportMissingDefault3.js b/tests/baselines/reference/reexportMissingDefault3.js index fb170146c9784..0af0f95471443 100644 --- a/tests/baselines/reference/reexportMissingDefault3.js +++ b/tests/baselines/reference/reexportMissingDefault3.js @@ -16,7 +16,11 @@ exports.b = null; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/reexportMissingDefault4.js b/tests/baselines/reference/reexportMissingDefault4.js index 89491b838e16e..884e42ce31138 100644 --- a/tests/baselines/reference/reexportMissingDefault4.js +++ b/tests/baselines/reference/reexportMissingDefault4.js @@ -12,7 +12,11 @@ export { default } from "./b"; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/reexportMissingDefault6.js b/tests/baselines/reference/reexportMissingDefault6.js index d34d707852d21..e6b201c8d0000 100644 --- a/tests/baselines/reference/reexportMissingDefault6.js +++ b/tests/baselines/reference/reexportMissingDefault6.js @@ -16,7 +16,11 @@ exports.b = null; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/reexportMissingDefault8.js b/tests/baselines/reference/reexportMissingDefault8.js index 64d559be6f01a..b301b0c728744 100644 --- a/tests/baselines/reference/reexportMissingDefault8.js +++ b/tests/baselines/reference/reexportMissingDefault8.js @@ -15,7 +15,11 @@ module.exports = b; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/reexportNameAliasedAndHoisted.js b/tests/baselines/reference/reexportNameAliasedAndHoisted.js index 4dabd47388e7a..ad7140bdd0dd1 100644 --- a/tests/baselines/reference/reexportNameAliasedAndHoisted.js +++ b/tests/baselines/reference/reexportNameAliasedAndHoisted.js @@ -19,7 +19,11 @@ exports.Sizing = null; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/reexportWrittenCorrectlyInDeclaration.js b/tests/baselines/reference/reexportWrittenCorrectlyInDeclaration.js index 607b15571d85d..64c8365ea1c0d 100644 --- a/tests/baselines/reference/reexportWrittenCorrectlyInDeclaration.js +++ b/tests/baselines/reference/reexportWrittenCorrectlyInDeclaration.js @@ -43,7 +43,11 @@ exports.ThingB = ThingB; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/referencesForDeclarationKeywords.baseline.jsonc b/tests/baselines/reference/referencesForDeclarationKeywords.baseline.jsonc index fe37f52b5423e..75b22accc0122 100644 --- a/tests/baselines/reference/referencesForDeclarationKeywords.baseline.jsonc +++ b/tests/baselines/reference/referencesForDeclarationKeywords.baseline.jsonc @@ -132,7 +132,7 @@ "length": 13 }, "isWriteAccess": true, - "isDefinition": false + "isDefinition": true }, { "textSpan": { @@ -220,7 +220,7 @@ "length": 25 }, "isWriteAccess": true, - "isDefinition": false + "isDefinition": true }, { "textSpan": { @@ -329,7 +329,7 @@ undefined "length": 21 }, "isWriteAccess": true, - "isDefinition": false + "isDefinition": true }, { "textSpan": { @@ -342,7 +342,7 @@ undefined "length": 11 }, "isWriteAccess": true, - "isDefinition": false + "isDefinition": true } ] } @@ -440,7 +440,7 @@ undefined "length": 21 }, "isWriteAccess": true, - "isDefinition": false + "isDefinition": true }, { "textSpan": { @@ -453,7 +453,7 @@ undefined "length": 11 }, "isWriteAccess": true, - "isDefinition": false + "isDefinition": true } ] } @@ -523,7 +523,7 @@ undefined "length": 29 }, "isWriteAccess": true, - "isDefinition": false + "isDefinition": true } ] } @@ -593,7 +593,7 @@ undefined "length": 13 }, "isWriteAccess": true, - "isDefinition": false + "isDefinition": true }, { "textSpan": { @@ -703,7 +703,7 @@ undefined "length": 12 }, "isWriteAccess": true, - "isDefinition": false + "isDefinition": true } ] } @@ -773,7 +773,7 @@ undefined "length": 10 }, "isWriteAccess": true, - "isDefinition": false + "isDefinition": true } ] } @@ -843,7 +843,7 @@ undefined "length": 15 }, "isWriteAccess": true, - "isDefinition": false + "isDefinition": true } ] } @@ -913,7 +913,7 @@ undefined "length": 12 }, "isWriteAccess": true, - "isDefinition": false + "isDefinition": true } ] } @@ -1085,7 +1085,7 @@ undefined "length": 6 }, "isWriteAccess": false, - "isDefinition": false + "isDefinition": true } ] } @@ -1167,7 +1167,7 @@ undefined "length": 6 }, "isWriteAccess": false, - "isDefinition": false + "isDefinition": true } ] } @@ -1249,7 +1249,7 @@ undefined "length": 12 }, "isWriteAccess": true, - "isDefinition": false + "isDefinition": true } ] } diff --git a/tests/baselines/reference/referencesForExpressionKeywords.baseline.jsonc b/tests/baselines/reference/referencesForExpressionKeywords.baseline.jsonc index 24bcc1f1fe6bc..111f5f2e3be3b 100644 --- a/tests/baselines/reference/referencesForExpressionKeywords.baseline.jsonc +++ b/tests/baselines/reference/referencesForExpressionKeywords.baseline.jsonc @@ -57,7 +57,7 @@ "length": 29 }, "isWriteAccess": true, - "isDefinition": false + "isDefinition": true }, { "textSpan": { @@ -203,7 +203,7 @@ "length": 29 }, "isWriteAccess": true, - "isDefinition": false + "isDefinition": true }, { "textSpan": { @@ -349,7 +349,7 @@ "length": 29 }, "isWriteAccess": true, - "isDefinition": false + "isDefinition": true }, { "textSpan": { @@ -495,7 +495,7 @@ "length": 29 }, "isWriteAccess": true, - "isDefinition": false + "isDefinition": true }, { "textSpan": { @@ -641,7 +641,7 @@ "length": 29 }, "isWriteAccess": true, - "isDefinition": false + "isDefinition": true }, { "textSpan": { @@ -787,7 +787,7 @@ "length": 29 }, "isWriteAccess": true, - "isDefinition": false + "isDefinition": true }, { "textSpan": { @@ -933,7 +933,7 @@ "length": 29 }, "isWriteAccess": true, - "isDefinition": false + "isDefinition": true }, { "textSpan": { @@ -1079,7 +1079,7 @@ "length": 29 }, "isWriteAccess": true, - "isDefinition": false + "isDefinition": true }, { "textSpan": { @@ -1253,7 +1253,7 @@ "length": 13 }, "isWriteAccess": true, - "isDefinition": false + "isDefinition": true }, { "textSpan": { diff --git a/tests/baselines/reference/referencesForModifiers.baseline.jsonc b/tests/baselines/reference/referencesForModifiers.baseline.jsonc index 6838b5a141d02..786b3832fc3d9 100644 --- a/tests/baselines/reference/referencesForModifiers.baseline.jsonc +++ b/tests/baselines/reference/referencesForModifiers.baseline.jsonc @@ -54,7 +54,7 @@ "length": 105 }, "isWriteAccess": true, - "isDefinition": false + "isDefinition": true } ] } @@ -116,7 +116,7 @@ "length": 105 }, "isWriteAccess": true, - "isDefinition": false + "isDefinition": true } ] } @@ -206,7 +206,7 @@ "length": 9 }, "isWriteAccess": true, - "isDefinition": false + "isDefinition": true } ] } @@ -296,7 +296,7 @@ "length": 11 }, "isWriteAccess": true, - "isDefinition": false + "isDefinition": true } ] } @@ -386,7 +386,7 @@ "length": 9 }, "isWriteAccess": true, - "isDefinition": false + "isDefinition": true } ] } @@ -476,7 +476,7 @@ "length": 12 }, "isWriteAccess": true, - "isDefinition": false + "isDefinition": true } ] } @@ -566,7 +566,7 @@ "length": 10 }, "isWriteAccess": true, - "isDefinition": false + "isDefinition": true } ] } @@ -636,7 +636,7 @@ "length": 16 }, "isWriteAccess": true, - "isDefinition": false + "isDefinition": true } ] } @@ -730,7 +730,7 @@ "length": 22 }, "isWriteAccess": true, - "isDefinition": false + "isDefinition": true } ] } @@ -792,7 +792,7 @@ "length": 26 }, "isWriteAccess": true, - "isDefinition": false + "isDefinition": true } ] } diff --git a/tests/baselines/reference/referencesForStatementKeywords.baseline.jsonc b/tests/baselines/reference/referencesForStatementKeywords.baseline.jsonc index 7f8ebfbc94680..649b75192549a 100644 --- a/tests/baselines/reference/referencesForStatementKeywords.baseline.jsonc +++ b/tests/baselines/reference/referencesForStatementKeywords.baseline.jsonc @@ -95,7 +95,7 @@ "length": 26 }, "isWriteAccess": true, - "isDefinition": false + "isDefinition": true } ] } @@ -289,7 +289,7 @@ "length": 14 }, "isWriteAccess": true, - "isDefinition": false + "isDefinition": true } ] } @@ -399,7 +399,7 @@ "length": 25 }, "isWriteAccess": true, - "isDefinition": false + "isDefinition": true } ] }, @@ -555,7 +555,7 @@ "length": 25 }, "isWriteAccess": true, - "isDefinition": false + "isDefinition": true } ] }, @@ -747,7 +747,7 @@ "length": 30 }, "isWriteAccess": true, - "isDefinition": false + "isDefinition": true } ] } @@ -822,7 +822,7 @@ "length": 30 }, "isWriteAccess": true, - "isDefinition": false + "isDefinition": true } ] } @@ -897,7 +897,7 @@ "length": 30 }, "isWriteAccess": true, - "isDefinition": false + "isDefinition": true } ] } @@ -1078,7 +1078,7 @@ "length": 29 }, "isWriteAccess": true, - "isDefinition": false + "isDefinition": true } ] }, @@ -1234,7 +1234,7 @@ "length": 29 }, "isWriteAccess": true, - "isDefinition": false + "isDefinition": true } ] }, @@ -1545,7 +1545,7 @@ undefined "length": 40 }, "isWriteAccess": true, - "isDefinition": false + "isDefinition": true } ] } @@ -1904,7 +1904,7 @@ undefined "length": 30 }, "isWriteAccess": true, - "isDefinition": false + "isDefinition": true } ] } @@ -1979,7 +1979,7 @@ undefined "length": 30 }, "isWriteAccess": true, - "isDefinition": false + "isDefinition": true } ] } @@ -2054,7 +2054,7 @@ undefined "length": 30 }, "isWriteAccess": true, - "isDefinition": false + "isDefinition": true } ] } @@ -2235,7 +2235,7 @@ undefined "length": 29 }, "isWriteAccess": true, - "isDefinition": false + "isDefinition": true } ] }, @@ -2391,7 +2391,7 @@ undefined "length": 29 }, "isWriteAccess": true, - "isDefinition": false + "isDefinition": true } ] }, @@ -2702,7 +2702,7 @@ undefined "length": 40 }, "isWriteAccess": true, - "isDefinition": false + "isDefinition": true } ] } @@ -2806,7 +2806,7 @@ undefined "length": 19 }, "isWriteAccess": true, - "isDefinition": false + "isDefinition": true } ] } @@ -2910,7 +2910,7 @@ undefined "length": 19 }, "isWriteAccess": true, - "isDefinition": false + "isDefinition": true } ] } @@ -2989,7 +2989,7 @@ undefined "length": 29 }, "isWriteAccess": true, - "isDefinition": false + "isDefinition": true } ] } @@ -3058,7 +3058,7 @@ undefined "length": 13 }, "isWriteAccess": true, - "isDefinition": false + "isDefinition": true }, { "textSpan": { @@ -3140,7 +3140,7 @@ undefined "length": 13 }, "isWriteAccess": true, - "isDefinition": false + "isDefinition": true }, { "textSpan": { diff --git a/tests/baselines/reference/referencesForTypeKeywords.baseline.jsonc b/tests/baselines/reference/referencesForTypeKeywords.baseline.jsonc index 993430a6c1d55..57a6ac4774fd2 100644 --- a/tests/baselines/reference/referencesForTypeKeywords.baseline.jsonc +++ b/tests/baselines/reference/referencesForTypeKeywords.baseline.jsonc @@ -50,7 +50,7 @@ "length": 14 }, "isWriteAccess": true, - "isDefinition": false + "isDefinition": true }, { "textSpan": { @@ -165,7 +165,7 @@ }, "fileName": "/tests/cases/fourslash/referencesForTypeKeywords.ts", "isWriteAccess": true, - "isDefinition": false + "isDefinition": true }, { "textSpan": { @@ -232,7 +232,7 @@ }, "fileName": "/tests/cases/fourslash/referencesForTypeKeywords.ts", "isWriteAccess": true, - "isDefinition": false + "isDefinition": true } ] } @@ -298,7 +298,7 @@ "length": 12 }, "isWriteAccess": true, - "isDefinition": false + "isDefinition": true } ] } @@ -392,7 +392,7 @@ }, "fileName": "/tests/cases/fourslash/referencesForTypeKeywords.ts", "isWriteAccess": true, - "isDefinition": false + "isDefinition": true }, { "textSpan": { @@ -495,7 +495,7 @@ }, "fileName": "/tests/cases/fourslash/referencesForTypeKeywords.ts", "isWriteAccess": true, - "isDefinition": false + "isDefinition": true }, { "textSpan": { diff --git a/tests/baselines/reference/reservedWords2.errors.txt b/tests/baselines/reference/reservedWords2.errors.txt index 18f594005c4e2..7e38ea1f851fe 100644 --- a/tests/baselines/reference/reservedWords2.errors.txt +++ b/tests/baselines/reference/reservedWords2.errors.txt @@ -118,5 +118,4 @@ tests/cases/compiler/reservedWords2.ts(12,17): error TS1138: Parameter declarati !!! error TS1359: Identifier expected. 'null' is a reserved word that cannot be used here. ~ !!! error TS1138: Parameter declaration expected. - \ No newline at end of file diff --git a/tests/baselines/reference/reservedWords2.js b/tests/baselines/reference/reservedWords2.js index 49a680085ee25..329ca94a532bc 100644 --- a/tests/baselines/reference/reservedWords2.js +++ b/tests/baselines/reference/reservedWords2.js @@ -11,7 +11,6 @@ var [debugger, if] = [1, 2]; enum void {} function f(default: number) {} class C { m(null: string) {} } - //// [reservedWords2.js] diff --git a/tests/baselines/reference/reservedWords2.symbols b/tests/baselines/reference/reservedWords2.symbols index 865ee314ba738..7091d453dc327 100644 --- a/tests/baselines/reference/reservedWords2.symbols +++ b/tests/baselines/reference/reservedWords2.symbols @@ -40,4 +40,3 @@ class C { m(null: string) {} } > : Symbol((Missing), Decl(reservedWords2.ts, 11, 12)) >string : Symbol(string, Decl(reservedWords2.ts, 11, 17)) - diff --git a/tests/baselines/reference/reservedWords2.types b/tests/baselines/reference/reservedWords2.types index abb5717cad324..498bd518a7c47 100644 --- a/tests/baselines/reference/reservedWords2.types +++ b/tests/baselines/reference/reservedWords2.types @@ -74,4 +74,3 @@ class C { m(null: string) {} } > : any >string : any - diff --git a/tests/baselines/reference/reservedWords3.errors.txt b/tests/baselines/reference/reservedWords3.errors.txt new file mode 100644 index 0000000000000..e1bd27f418513 --- /dev/null +++ b/tests/baselines/reference/reservedWords3.errors.txt @@ -0,0 +1,45 @@ +tests/cases/compiler/reservedWords3.ts(1,13): error TS1390: 'enum' is not allowed as a parameter name. +tests/cases/compiler/reservedWords3.ts(1,17): error TS2567: Enum declarations can only merge with namespace or other enum declarations. +tests/cases/compiler/reservedWords3.ts(1,17): error TS1003: Identifier expected. +tests/cases/compiler/reservedWords3.ts(2,13): error TS1390: 'class' is not allowed as a parameter name. +tests/cases/compiler/reservedWords3.ts(2,18): error TS1005: '{' expected. +tests/cases/compiler/reservedWords3.ts(3,13): error TS1390: 'function' is not allowed as a parameter name. +tests/cases/compiler/reservedWords3.ts(3,21): error TS2567: Enum declarations can only merge with namespace or other enum declarations. +tests/cases/compiler/reservedWords3.ts(3,21): error TS1003: Identifier expected. +tests/cases/compiler/reservedWords3.ts(4,13): error TS1390: 'while' is not allowed as a parameter name. +tests/cases/compiler/reservedWords3.ts(4,18): error TS1005: '(' expected. +tests/cases/compiler/reservedWords3.ts(5,13): error TS1390: 'for' is not allowed as a parameter name. +tests/cases/compiler/reservedWords3.ts(5,16): error TS1005: '(' expected. + + +==== tests/cases/compiler/reservedWords3.ts (12 errors) ==== + function f1(enum) {} + ~~~~ +!!! error TS1390: 'enum' is not allowed as a parameter name. + +!!! error TS2567: Enum declarations can only merge with namespace or other enum declarations. + ~ +!!! error TS1003: Identifier expected. + function f2(class) {} + ~~~~~ +!!! error TS1390: 'class' is not allowed as a parameter name. + ~ +!!! error TS1005: '{' expected. + function f3(function) {} + ~~~~~~~~ +!!! error TS1390: 'function' is not allowed as a parameter name. + +!!! error TS2567: Enum declarations can only merge with namespace or other enum declarations. + ~ +!!! error TS1003: Identifier expected. + function f4(while) {} + ~~~~~ +!!! error TS1390: 'while' is not allowed as a parameter name. + ~ +!!! error TS1005: '(' expected. + function f5(for) {} + ~~~ +!!! error TS1390: 'for' is not allowed as a parameter name. + ~ +!!! error TS1005: '(' expected. + \ No newline at end of file diff --git a/tests/baselines/reference/reservedWords3.js b/tests/baselines/reference/reservedWords3.js new file mode 100644 index 0000000000000..8957622d7abef --- /dev/null +++ b/tests/baselines/reference/reservedWords3.js @@ -0,0 +1,28 @@ +//// [reservedWords3.ts] +function f1(enum) {} +function f2(class) {} +function f3(function) {} +function f4(while) {} +function f5(for) {} + + +//// [reservedWords3.js] +function f1() { } +var ; +(function () { +})( || ( = {})); +{ } +function f2() { } +var default_1 = /** @class */ (function () { + function default_1() { + } + return default_1; +}()); +{ } +function f3() { } +function () { } +{ } +function f4() { } +while () { } +function f5() { } +for (;;) { } diff --git a/tests/baselines/reference/reservedWords3.symbols b/tests/baselines/reference/reservedWords3.symbols new file mode 100644 index 0000000000000..68d36d3641c59 --- /dev/null +++ b/tests/baselines/reference/reservedWords3.symbols @@ -0,0 +1,18 @@ +=== tests/cases/compiler/reservedWords3.ts === +function f1(enum) {} +>f1 : Symbol(f1, Decl(reservedWords3.ts, 0, 0)) +> : Symbol((Missing), Decl(reservedWords3.ts, 0, 12)) + +function f2(class) {} +>f2 : Symbol(f2, Decl(reservedWords3.ts, 0, 20)) + +function f3(function) {} +>f3 : Symbol(f3, Decl(reservedWords3.ts, 1, 21)) +> : Symbol((Missing), Decl(reservedWords3.ts, 2, 12)) + +function f4(while) {} +>f4 : Symbol(f4, Decl(reservedWords3.ts, 2, 24)) + +function f5(for) {} +>f5 : Symbol(f5, Decl(reservedWords3.ts, 3, 21)) + diff --git a/tests/baselines/reference/reservedWords3.types b/tests/baselines/reference/reservedWords3.types new file mode 100644 index 0000000000000..fd9ec4ce234fa --- /dev/null +++ b/tests/baselines/reference/reservedWords3.types @@ -0,0 +1,20 @@ +=== tests/cases/compiler/reservedWords3.ts === +function f1(enum) {} +>f1 : () => any +> : (Missing) + +function f2(class) {} +>f2 : () => any + +function f3(function) {} +>f3 : () => any +> : () => any + +function f4(while) {} +>f4 : () => any +> : any + +function f5(for) {} +>f5 : () => any +> : any + diff --git a/tests/baselines/reference/restInvalidArgumentType.types b/tests/baselines/reference/restInvalidArgumentType.types index 0e44cdfe95ccb..119b0394726da 100644 --- a/tests/baselines/reference/restInvalidArgumentType.types +++ b/tests/baselines/reference/restInvalidArgumentType.types @@ -84,7 +84,7 @@ function f(p1: T, p2: T[]) { var {...r5} = k; // Error, index >r5 : any ->k : keyof T +>k : string | number | symbol var {...r6} = mapped_generic; // Error, generic mapped object type >r6 : { [P in keyof T]: T[P]; } diff --git a/tests/baselines/reference/scannerS7.2_A1.5_T2.errors.txt b/tests/baselines/reference/scannerS7.2_A1.5_T2.errors.txt index 244af99699e6b..ba3fd00347cb5 100644 --- a/tests/baselines/reference/scannerS7.2_A1.5_T2.errors.txt +++ b/tests/baselines/reference/scannerS7.2_A1.5_T2.errors.txt @@ -19,7 +19,7 @@ tests/cases/conformance/scanner/ecmascript5/scannerS7.2_A1.5_T2.ts(20,3): error $ERROR('#1: eval("\\u00A0var x\\u00A0= 1\\u00A0"); x === 1. Actual: ' + (x)); ~~~~~~ !!! error TS2552: Cannot find name '$ERROR'. Did you mean 'Error'? -!!! related TS2728 /.ts/lib.es5.d.ts:1033:13: 'Error' is declared here. +!!! related TS2728 /.ts/lib.es5.d.ts:1039:13: 'Error' is declared here. } //CHECK#2 @@ -28,7 +28,7 @@ tests/cases/conformance/scanner/ecmascript5/scannerS7.2_A1.5_T2.ts(20,3): error $ERROR('#2:  var x = 1 ; x === 1. Actual: ' + (x)); ~~~~~~ !!! error TS2552: Cannot find name '$ERROR'. Did you mean 'Error'? -!!! related TS2728 /.ts/lib.es5.d.ts:1033:13: 'Error' is declared here. +!!! related TS2728 /.ts/lib.es5.d.ts:1039:13: 'Error' is declared here. } diff --git a/tests/baselines/reference/scannerS7.3_A1.1_T2.errors.txt b/tests/baselines/reference/scannerS7.3_A1.1_T2.errors.txt index 0ed5806a67b8c..5bcb335797a16 100644 --- a/tests/baselines/reference/scannerS7.3_A1.1_T2.errors.txt +++ b/tests/baselines/reference/scannerS7.3_A1.1_T2.errors.txt @@ -21,7 +21,7 @@ tests/cases/conformance/scanner/ecmascript5/scannerS7.3_A1.1_T2.ts(17,3): error $ERROR('#1: var\\nx\\n=\\n1\\n; x === 1. Actual: ' + (x)); ~~~~~~ !!! error TS2552: Cannot find name '$ERROR'. Did you mean 'Error'? -!!! related TS2728 /.ts/lib.es5.d.ts:1033:13: 'Error' is declared here. +!!! related TS2728 /.ts/lib.es5.d.ts:1039:13: 'Error' is declared here. } \ No newline at end of file diff --git a/tests/baselines/reference/scannerS7.6_A4.2_T1.errors.txt b/tests/baselines/reference/scannerS7.6_A4.2_T1.errors.txt index b527106b5b91d..b67a90487044d 100644 --- a/tests/baselines/reference/scannerS7.6_A4.2_T1.errors.txt +++ b/tests/baselines/reference/scannerS7.6_A4.2_T1.errors.txt @@ -50,70 +50,70 @@ tests/cases/conformance/scanner/ecmascript5/scannerS7.6_A4.2_T1.ts(142,3): error $ERROR('#А'); ~~~~~~ !!! error TS2552: Cannot find name '$ERROR'. Did you mean 'Error'? -!!! related TS2728 /.ts/lib.es5.d.ts:1033:13: 'Error' is declared here. +!!! related TS2728 /.ts/lib.es5.d.ts:1039:13: 'Error' is declared here. } var \u0411 = 1; if (Б !== 1) { $ERROR('#Б'); ~~~~~~ !!! error TS2552: Cannot find name '$ERROR'. Did you mean 'Error'? -!!! related TS2728 /.ts/lib.es5.d.ts:1033:13: 'Error' is declared here. +!!! related TS2728 /.ts/lib.es5.d.ts:1039:13: 'Error' is declared here. } var \u0412 = 1; if (В !== 1) { $ERROR('#В'); ~~~~~~ !!! error TS2552: Cannot find name '$ERROR'. Did you mean 'Error'? -!!! related TS2728 /.ts/lib.es5.d.ts:1033:13: 'Error' is declared here. +!!! related TS2728 /.ts/lib.es5.d.ts:1039:13: 'Error' is declared here. } var \u0413 = 1; if (Г !== 1) { $ERROR('#Г'); ~~~~~~ !!! error TS2552: Cannot find name '$ERROR'. Did you mean 'Error'? -!!! related TS2728 /.ts/lib.es5.d.ts:1033:13: 'Error' is declared here. +!!! related TS2728 /.ts/lib.es5.d.ts:1039:13: 'Error' is declared here. } var \u0414 = 1; if (Д !== 1) { $ERROR('#Д'); ~~~~~~ !!! error TS2552: Cannot find name '$ERROR'. Did you mean 'Error'? -!!! related TS2728 /.ts/lib.es5.d.ts:1033:13: 'Error' is declared here. +!!! related TS2728 /.ts/lib.es5.d.ts:1039:13: 'Error' is declared here. } var \u0415 = 1; if (Е !== 1) { $ERROR('#Е'); ~~~~~~ !!! error TS2552: Cannot find name '$ERROR'. Did you mean 'Error'? -!!! related TS2728 /.ts/lib.es5.d.ts:1033:13: 'Error' is declared here. +!!! related TS2728 /.ts/lib.es5.d.ts:1039:13: 'Error' is declared here. } var \u0416 = 1; if (Ж !== 1) { $ERROR('#Ж'); ~~~~~~ !!! error TS2552: Cannot find name '$ERROR'. Did you mean 'Error'? -!!! related TS2728 /.ts/lib.es5.d.ts:1033:13: 'Error' is declared here. +!!! related TS2728 /.ts/lib.es5.d.ts:1039:13: 'Error' is declared here. } var \u0417 = 1; if (З !== 1) { $ERROR('#З'); ~~~~~~ !!! error TS2552: Cannot find name '$ERROR'. Did you mean 'Error'? -!!! related TS2728 /.ts/lib.es5.d.ts:1033:13: 'Error' is declared here. +!!! related TS2728 /.ts/lib.es5.d.ts:1039:13: 'Error' is declared here. } var \u0418 = 1; if (И !== 1) { $ERROR('#И'); ~~~~~~ !!! error TS2552: Cannot find name '$ERROR'. Did you mean 'Error'? -!!! related TS2728 /.ts/lib.es5.d.ts:1033:13: 'Error' is declared here. +!!! related TS2728 /.ts/lib.es5.d.ts:1039:13: 'Error' is declared here. } var \u0419 = 1; if (Й !== 1) { $ERROR('#Й'); ~~~~~~ !!! error TS2552: Cannot find name '$ERROR'. Did you mean 'Error'? -!!! related TS2728 /.ts/lib.es5.d.ts:1033:13: 'Error' is declared here. +!!! related TS2728 /.ts/lib.es5.d.ts:1039:13: 'Error' is declared here. } var \u041A = 1; if (К !== 1) { diff --git a/tests/baselines/reference/seeTag4.js b/tests/baselines/reference/seeTag4.js new file mode 100644 index 0000000000000..54cc11f858752 --- /dev/null +++ b/tests/baselines/reference/seeTag4.js @@ -0,0 +1,23 @@ +//// [seeTag4.js] +/** + * @typedef {any} A + */ + +/** + * @see {@link A} + * @see {@linkcode A} + * @see {@linkplain A} + */ +let foo; + + +//// [seeTag4.js] +/** + * @typedef {any} A + */ +/** + * @see {@link A} + * @see {@linkcode A} + * @see {@linkplain A} + */ +var foo; diff --git a/tests/baselines/reference/seeTag4.symbols b/tests/baselines/reference/seeTag4.symbols new file mode 100644 index 0000000000000..a3b72307a1f53 --- /dev/null +++ b/tests/baselines/reference/seeTag4.symbols @@ -0,0 +1,13 @@ +=== tests/cases/conformance/jsdoc/seeTag4.js === +/** + * @typedef {any} A + */ + +/** + * @see {@link A} + * @see {@linkcode A} + * @see {@linkplain A} + */ +let foo; +>foo : Symbol(foo, Decl(seeTag4.js, 9, 3)) + diff --git a/tests/baselines/reference/seeTag4.types b/tests/baselines/reference/seeTag4.types new file mode 100644 index 0000000000000..89fb40eafd0e3 --- /dev/null +++ b/tests/baselines/reference/seeTag4.types @@ -0,0 +1,13 @@ +=== tests/cases/conformance/jsdoc/seeTag4.js === +/** + * @typedef {any} A + */ + +/** + * @see {@link A} + * @see {@linkcode A} + * @see {@linkplain A} + */ +let foo; +>foo : any + diff --git a/tests/baselines/reference/showConfig/Shows tsconfig for single option/moduleDetection/tsconfig.json b/tests/baselines/reference/showConfig/Shows tsconfig for single option/moduleDetection/tsconfig.json new file mode 100644 index 0000000000000..1dfb65063cee2 --- /dev/null +++ b/tests/baselines/reference/showConfig/Shows tsconfig for single option/moduleDetection/tsconfig.json @@ -0,0 +1,5 @@ +{ + "compilerOptions": { + "moduleDetection": "auto" + } +} diff --git a/tests/baselines/reference/showConfig/Shows tsconfig for single option/moduleSuffixes/tsconfig.json b/tests/baselines/reference/showConfig/Shows tsconfig for single option/moduleSuffixes/tsconfig.json new file mode 100644 index 0000000000000..0c0a76c253ece --- /dev/null +++ b/tests/baselines/reference/showConfig/Shows tsconfig for single option/moduleSuffixes/tsconfig.json @@ -0,0 +1,5 @@ +{ + "compilerOptions": { + "moduleSuffixes": [] + } +} diff --git a/tests/baselines/reference/signatureHelpTypeArguments2.baseline b/tests/baselines/reference/signatureHelpTypeArguments2.baseline index 75971fa59ce64..7e70e96ada6a5 100644 --- a/tests/baselines/reference/signatureHelpTypeArguments2.baseline +++ b/tests/baselines/reference/signatureHelpTypeArguments2.baseline @@ -213,7 +213,7 @@ "text": [ { "text": "W", - "kind": "text" + "kind": "typeParameterName" } ] }, @@ -221,7 +221,19 @@ "name": "template", "text": [ { - "text": "U, V", + "text": "U", + "kind": "typeParameterName" + }, + { + "text": ",", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "V", "kind": "typeParameterName" }, { @@ -494,7 +506,7 @@ "text": [ { "text": "W", - "kind": "text" + "kind": "typeParameterName" } ] }, @@ -502,7 +514,19 @@ "name": "template", "text": [ { - "text": "U, V", + "text": "U", + "kind": "typeParameterName" + }, + { + "text": ",", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "V", "kind": "typeParameterName" }, { @@ -775,7 +799,7 @@ "text": [ { "text": "W", - "kind": "text" + "kind": "typeParameterName" } ] }, @@ -783,7 +807,19 @@ "name": "template", "text": [ { - "text": "U, V", + "text": "U", + "kind": "typeParameterName" + }, + { + "text": ",", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "V", "kind": "typeParameterName" }, { @@ -1056,7 +1092,7 @@ "text": [ { "text": "W", - "kind": "text" + "kind": "typeParameterName" } ] }, @@ -1064,7 +1100,19 @@ "name": "template", "text": [ { - "text": "U, V", + "text": "U", + "kind": "typeParameterName" + }, + { + "text": ",", + "kind": "punctuation" + }, + { + "text": " ", + "kind": "space" + }, + { + "text": "V", "kind": "typeParameterName" }, { diff --git a/tests/baselines/reference/spreadObjectOrFalsy.errors.txt b/tests/baselines/reference/spreadObjectOrFalsy.errors.txt new file mode 100644 index 0000000000000..87f8fa1d7e741 --- /dev/null +++ b/tests/baselines/reference/spreadObjectOrFalsy.errors.txt @@ -0,0 +1,60 @@ +tests/cases/conformance/types/spread/spreadObjectOrFalsy.ts(2,14): error TS2698: Spread types may only be created from object types. +tests/cases/conformance/types/spread/spreadObjectOrFalsy.ts(10,14): error TS2698: Spread types may only be created from object types. + + +==== tests/cases/conformance/types/spread/spreadObjectOrFalsy.ts (2 errors) ==== + function f1(a: T & undefined) { + return { ...a }; // Error + ~~~~ +!!! error TS2698: Spread types may only be created from object types. + } + + function f2(a: T | T & undefined) { + return { ...a }; + } + + function f3(a: T) { + return { ...a }; // Error + ~~~~ +!!! error TS2698: Spread types may only be created from object types. + } + + function f4(a: object | T) { + return { ...a }; + } + + function f5(a: S | T) { + return { ...a }; + } + + function f6(a: T) { + return { ...a }; + } + + // Repro from #46976 + + function g1(a: A) { + const { z } = a; + return { + ...z + }; + } + + // Repro from #47028 + + interface DatafulFoo { + data: T; + } + + class Foo { + data: T | undefined; + bar() { + if (this.hasData()) { + this.data.toLocaleLowerCase(); + } + } + hasData(): this is DatafulFoo { + return true; + } + } + \ No newline at end of file diff --git a/tests/baselines/reference/spreadObjectOrFalsy.js b/tests/baselines/reference/spreadObjectOrFalsy.js new file mode 100644 index 0000000000000..9aae56dc08562 --- /dev/null +++ b/tests/baselines/reference/spreadObjectOrFalsy.js @@ -0,0 +1,122 @@ +//// [spreadObjectOrFalsy.ts] +function f1(a: T & undefined) { + return { ...a }; // Error +} + +function f2(a: T | T & undefined) { + return { ...a }; +} + +function f3(a: T) { + return { ...a }; // Error +} + +function f4(a: object | T) { + return { ...a }; +} + +function f5(a: S | T) { + return { ...a }; +} + +function f6(a: T) { + return { ...a }; +} + +// Repro from #46976 + +function g1(a: A) { + const { z } = a; + return { + ...z + }; +} + +// Repro from #47028 + +interface DatafulFoo { + data: T; +} + +class Foo { + data: T | undefined; + bar() { + if (this.hasData()) { + this.data.toLocaleLowerCase(); + } + } + hasData(): this is DatafulFoo { + return true; + } +} + + +//// [spreadObjectOrFalsy.js] +"use strict"; +var __assign = (this && this.__assign) || function () { + __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; + }; + return __assign.apply(this, arguments); +}; +function f1(a) { + return __assign({}, a); // Error +} +function f2(a) { + return __assign({}, a); +} +function f3(a) { + return __assign({}, a); // Error +} +function f4(a) { + return __assign({}, a); +} +function f5(a) { + return __assign({}, a); +} +function f6(a) { + return __assign({}, a); +} +// Repro from #46976 +function g1(a) { + var z = a.z; + return __assign({}, z); +} +var Foo = /** @class */ (function () { + function Foo() { + } + Foo.prototype.bar = function () { + if (this.hasData()) { + this.data.toLocaleLowerCase(); + } + }; + Foo.prototype.hasData = function () { + return true; + }; + return Foo; +}()); + + +//// [spreadObjectOrFalsy.d.ts] +declare function f1(a: T & undefined): any; +declare function f2(a: T | T & undefined): T | (T & undefined); +declare function f3(a: T): any; +declare function f4(a: object | T): {}; +declare function f5(a: S | T): S | T; +declare function f6(a: T): T; +declare function g1(a: A): (T | undefined) & T; +interface DatafulFoo { + data: T; +} +declare class Foo { + data: T | undefined; + bar(): void; + hasData(): this is DatafulFoo; +} diff --git a/tests/baselines/reference/spreadObjectOrFalsy.symbols b/tests/baselines/reference/spreadObjectOrFalsy.symbols new file mode 100644 index 0000000000000..59c4b2aadf1b4 --- /dev/null +++ b/tests/baselines/reference/spreadObjectOrFalsy.symbols @@ -0,0 +1,130 @@ +=== tests/cases/conformance/types/spread/spreadObjectOrFalsy.ts === +function f1(a: T & undefined) { +>f1 : Symbol(f1, Decl(spreadObjectOrFalsy.ts, 0, 0)) +>T : Symbol(T, Decl(spreadObjectOrFalsy.ts, 0, 12)) +>a : Symbol(a, Decl(spreadObjectOrFalsy.ts, 0, 15)) +>T : Symbol(T, Decl(spreadObjectOrFalsy.ts, 0, 12)) + + return { ...a }; // Error +>a : Symbol(a, Decl(spreadObjectOrFalsy.ts, 0, 15)) +} + +function f2(a: T | T & undefined) { +>f2 : Symbol(f2, Decl(spreadObjectOrFalsy.ts, 2, 1)) +>T : Symbol(T, Decl(spreadObjectOrFalsy.ts, 4, 12)) +>a : Symbol(a, Decl(spreadObjectOrFalsy.ts, 4, 15)) +>T : Symbol(T, Decl(spreadObjectOrFalsy.ts, 4, 12)) +>T : Symbol(T, Decl(spreadObjectOrFalsy.ts, 4, 12)) + + return { ...a }; +>a : Symbol(a, Decl(spreadObjectOrFalsy.ts, 4, 15)) +} + +function f3(a: T) { +>f3 : Symbol(f3, Decl(spreadObjectOrFalsy.ts, 6, 1)) +>T : Symbol(T, Decl(spreadObjectOrFalsy.ts, 8, 12)) +>a : Symbol(a, Decl(spreadObjectOrFalsy.ts, 8, 33)) +>T : Symbol(T, Decl(spreadObjectOrFalsy.ts, 8, 12)) + + return { ...a }; // Error +>a : Symbol(a, Decl(spreadObjectOrFalsy.ts, 8, 33)) +} + +function f4(a: object | T) { +>f4 : Symbol(f4, Decl(spreadObjectOrFalsy.ts, 10, 1)) +>T : Symbol(T, Decl(spreadObjectOrFalsy.ts, 12, 12)) +>a : Symbol(a, Decl(spreadObjectOrFalsy.ts, 12, 33)) +>T : Symbol(T, Decl(spreadObjectOrFalsy.ts, 12, 12)) + + return { ...a }; +>a : Symbol(a, Decl(spreadObjectOrFalsy.ts, 12, 33)) +} + +function f5(a: S | T) { +>f5 : Symbol(f5, Decl(spreadObjectOrFalsy.ts, 14, 1)) +>S : Symbol(S, Decl(spreadObjectOrFalsy.ts, 16, 12)) +>T : Symbol(T, Decl(spreadObjectOrFalsy.ts, 16, 14)) +>a : Symbol(a, Decl(spreadObjectOrFalsy.ts, 16, 36)) +>S : Symbol(S, Decl(spreadObjectOrFalsy.ts, 16, 12)) +>T : Symbol(T, Decl(spreadObjectOrFalsy.ts, 16, 14)) + + return { ...a }; +>a : Symbol(a, Decl(spreadObjectOrFalsy.ts, 16, 36)) +} + +function f6(a: T) { +>f6 : Symbol(f6, Decl(spreadObjectOrFalsy.ts, 18, 1)) +>T : Symbol(T, Decl(spreadObjectOrFalsy.ts, 20, 12)) +>a : Symbol(a, Decl(spreadObjectOrFalsy.ts, 20, 42)) +>T : Symbol(T, Decl(spreadObjectOrFalsy.ts, 20, 12)) + + return { ...a }; +>a : Symbol(a, Decl(spreadObjectOrFalsy.ts, 20, 42)) +} + +// Repro from #46976 + +function g1(a: A) { +>g1 : Symbol(g1, Decl(spreadObjectOrFalsy.ts, 22, 1)) +>T : Symbol(T, Decl(spreadObjectOrFalsy.ts, 26, 12)) +>A : Symbol(A, Decl(spreadObjectOrFalsy.ts, 26, 25)) +>z : Symbol(z, Decl(spreadObjectOrFalsy.ts, 26, 37)) +>T : Symbol(T, Decl(spreadObjectOrFalsy.ts, 26, 12)) +>T : Symbol(T, Decl(spreadObjectOrFalsy.ts, 26, 12)) +>a : Symbol(a, Decl(spreadObjectOrFalsy.ts, 26, 64)) +>A : Symbol(A, Decl(spreadObjectOrFalsy.ts, 26, 25)) + + const { z } = a; +>z : Symbol(z, Decl(spreadObjectOrFalsy.ts, 27, 11)) +>a : Symbol(a, Decl(spreadObjectOrFalsy.ts, 26, 64)) + + return { + ...z +>z : Symbol(z, Decl(spreadObjectOrFalsy.ts, 27, 11)) + + }; +} + +// Repro from #47028 + +interface DatafulFoo { +>DatafulFoo : Symbol(DatafulFoo, Decl(spreadObjectOrFalsy.ts, 31, 1)) +>T : Symbol(T, Decl(spreadObjectOrFalsy.ts, 35, 21)) + + data: T; +>data : Symbol(DatafulFoo.data, Decl(spreadObjectOrFalsy.ts, 35, 25)) +>T : Symbol(T, Decl(spreadObjectOrFalsy.ts, 35, 21)) +} + +class Foo { +>Foo : Symbol(Foo, Decl(spreadObjectOrFalsy.ts, 37, 1)) +>T : Symbol(T, Decl(spreadObjectOrFalsy.ts, 39, 10)) + + data: T | undefined; +>data : Symbol(Foo.data, Decl(spreadObjectOrFalsy.ts, 39, 29)) +>T : Symbol(T, Decl(spreadObjectOrFalsy.ts, 39, 10)) + + bar() { +>bar : Symbol(Foo.bar, Decl(spreadObjectOrFalsy.ts, 40, 24)) + + if (this.hasData()) { +>this.hasData : Symbol(Foo.hasData, Decl(spreadObjectOrFalsy.ts, 45, 5)) +>this : Symbol(Foo, Decl(spreadObjectOrFalsy.ts, 37, 1)) +>hasData : Symbol(Foo.hasData, Decl(spreadObjectOrFalsy.ts, 45, 5)) + + this.data.toLocaleLowerCase(); +>this.data.toLocaleLowerCase : Symbol(String.toLocaleLowerCase, Decl(lib.es5.d.ts, --, --)) +>this.data : Symbol(data, Decl(spreadObjectOrFalsy.ts, 39, 29), Decl(spreadObjectOrFalsy.ts, 35, 25)) +>data : Symbol(data, Decl(spreadObjectOrFalsy.ts, 39, 29), Decl(spreadObjectOrFalsy.ts, 35, 25)) +>toLocaleLowerCase : Symbol(String.toLocaleLowerCase, Decl(lib.es5.d.ts, --, --)) + } + } + hasData(): this is DatafulFoo { +>hasData : Symbol(Foo.hasData, Decl(spreadObjectOrFalsy.ts, 45, 5)) +>DatafulFoo : Symbol(DatafulFoo, Decl(spreadObjectOrFalsy.ts, 31, 1)) +>T : Symbol(T, Decl(spreadObjectOrFalsy.ts, 39, 10)) + + return true; + } +} + diff --git a/tests/baselines/reference/spreadObjectOrFalsy.types b/tests/baselines/reference/spreadObjectOrFalsy.types new file mode 100644 index 0000000000000..1b9d54512e9f7 --- /dev/null +++ b/tests/baselines/reference/spreadObjectOrFalsy.types @@ -0,0 +1,114 @@ +=== tests/cases/conformance/types/spread/spreadObjectOrFalsy.ts === +function f1(a: T & undefined) { +>f1 : (a: T & undefined) => any +>a : T & undefined + + return { ...a }; // Error +>{ ...a } : any +>a : T & undefined +} + +function f2(a: T | T & undefined) { +>f2 : (a: T | (T & undefined)) => T | (T & undefined) +>a : T | (T & undefined) + + return { ...a }; +>{ ...a } : T | (T & undefined) +>a : T | (T & undefined) +} + +function f3(a: T) { +>f3 : (a: T) => any +>a : T + + return { ...a }; // Error +>{ ...a } : any +>a : T +} + +function f4(a: object | T) { +>f4 : (a: object | T) => {} +>a : object | T + + return { ...a }; +>{ ...a } : {} +>a : object | T +} + +function f5(a: S | T) { +>f5 : (a: S | T) => S | T +>a : S | T + + return { ...a }; +>{ ...a } : S | T +>a : S | T +} + +function f6(a: T) { +>f6 : (a: T) => T +>a : T + + return { ...a }; +>{ ...a } : T +>a : T +} + +// Repro from #46976 + +function g1(a: A) { +>g1 : (a: A) => (T | undefined) & T +>z : (T | undefined) & T +>a : A + + const { z } = a; +>z : (T | undefined) & T +>a : A + + return { +>{ ...z } : (T | undefined) & T + + ...z +>z : (T | undefined) & T + + }; +} + +// Repro from #47028 + +interface DatafulFoo { + data: T; +>data : T +} + +class Foo { +>Foo : Foo + + data: T | undefined; +>data : T | undefined + + bar() { +>bar : () => void + + if (this.hasData()) { +>this.hasData() : boolean +>this.hasData : () => this is DatafulFoo +>this : this +>hasData : () => this is DatafulFoo + + this.data.toLocaleLowerCase(); +>this.data.toLocaleLowerCase() : string +>this.data.toLocaleLowerCase : (locales?: string | string[] | undefined) => string +>this.data : (T | undefined) & T +>this : this & DatafulFoo +>data : (T | undefined) & T +>toLocaleLowerCase : (locales?: string | string[] | undefined) => string + } + } + hasData(): this is DatafulFoo { +>hasData : () => this is DatafulFoo + + return true; +>true : true + } +} + diff --git a/tests/baselines/reference/spreadUnion4.js b/tests/baselines/reference/spreadUnion4.js new file mode 100644 index 0000000000000..9887c8e6f1794 --- /dev/null +++ b/tests/baselines/reference/spreadUnion4.js @@ -0,0 +1,20 @@ +//// [spreadUnion4.ts] +declare const a: { x: () => void } +declare const b: { x?: () => void } + +const c = { ...a, ...b }; + + +//// [spreadUnion4.js] +var __assign = (this && this.__assign) || function () { + __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; + }; + return __assign.apply(this, arguments); +}; +var c = __assign(__assign({}, a), b); diff --git a/tests/baselines/reference/spreadUnion4.symbols b/tests/baselines/reference/spreadUnion4.symbols new file mode 100644 index 0000000000000..85f9071e31d9b --- /dev/null +++ b/tests/baselines/reference/spreadUnion4.symbols @@ -0,0 +1,14 @@ +=== tests/cases/conformance/types/spread/spreadUnion4.ts === +declare const a: { x: () => void } +>a : Symbol(a, Decl(spreadUnion4.ts, 0, 13)) +>x : Symbol(x, Decl(spreadUnion4.ts, 0, 18)) + +declare const b: { x?: () => void } +>b : Symbol(b, Decl(spreadUnion4.ts, 1, 13)) +>x : Symbol(x, Decl(spreadUnion4.ts, 1, 18)) + +const c = { ...a, ...b }; +>c : Symbol(c, Decl(spreadUnion4.ts, 3, 5)) +>a : Symbol(a, Decl(spreadUnion4.ts, 0, 13)) +>b : Symbol(b, Decl(spreadUnion4.ts, 1, 13)) + diff --git a/tests/baselines/reference/spreadUnion4.types b/tests/baselines/reference/spreadUnion4.types new file mode 100644 index 0000000000000..d3be34c89c70f --- /dev/null +++ b/tests/baselines/reference/spreadUnion4.types @@ -0,0 +1,15 @@ +=== tests/cases/conformance/types/spread/spreadUnion4.ts === +declare const a: { x: () => void } +>a : { x: () => void; } +>x : () => void + +declare const b: { x?: () => void } +>b : { x?: () => void; } +>x : () => void + +const c = { ...a, ...b }; +>c : { x: () => void; } +>{ ...a, ...b } : { x: () => void; } +>a : { x: () => void; } +>b : { x?: () => void; } + diff --git a/tests/baselines/reference/staticPropSuper.js b/tests/baselines/reference/staticPropSuper.js index 170879d4b647e..bba69c878b530 100644 --- a/tests/baselines/reference/staticPropSuper.js +++ b/tests/baselines/reference/staticPropSuper.js @@ -59,10 +59,8 @@ var A = /** @class */ (function () { var B = /** @class */ (function (_super) { __extends(B, _super); function B() { - var _this = this; var x = 1; // should not error - _this = _super.call(this) || this; - return _this; + return _super.call(this) || this; } B.s = 9; return B; diff --git a/tests/baselines/reference/strictBindCallApply1.errors.txt b/tests/baselines/reference/strictBindCallApply1.errors.txt index 83576247bc096..b0137d9300be9 100644 --- a/tests/baselines/reference/strictBindCallApply1.errors.txt +++ b/tests/baselines/reference/strictBindCallApply1.errors.txt @@ -58,9 +58,24 @@ tests/cases/conformance/functions/strictBindCallApply1.ts(70,12): error TS2345: tests/cases/conformance/functions/strictBindCallApply1.ts(71,17): error TS2322: Type 'number' is not assignable to type 'string'. tests/cases/conformance/functions/strictBindCallApply1.ts(72,12): error TS2345: Argument of type '[number, string, number]' is not assignable to parameter of type '[a: number, b: string]'. Source has 3 element(s) but target allows only 2. +tests/cases/conformance/functions/strictBindCallApply1.ts(76,5): error TS2769: No overload matches this call. + Overload 1 of 6, '(this: (this: 1, ...args: T) => void, thisArg: 1): (...args: T) => void', gave the following error. + Argument of type '2' is not assignable to parameter of type '1'. + Overload 2 of 6, '(this: (this: 1, ...args: unknown[]) => void, thisArg: 1, ...args: unknown[]): (...args: unknown[]) => void', gave the following error. + The 'this' context of type '(this: 1, ...args: T) => void' is not assignable to method's 'this' of type '(this: 1, ...args: unknown[]) => void'. + Types of parameters 'args' and 'args' are incompatible. + Type 'unknown[]' is not assignable to type 'T'. + 'unknown[]' is assignable to the constraint of type 'T', but 'T' could be instantiated with a different subtype of constraint 'unknown[]'. +tests/cases/conformance/functions/strictBindCallApply1.ts(81,5): error TS2769: No overload matches this call. + Overload 1 of 6, '(this: (this: 1, ...args: T extends 1 ? [unknown] : [unknown, unknown]) => void, thisArg: 1): (...args: T extends 1 ? [unknown] : [unknown, unknown]) => void', gave the following error. + Argument of type '2' is not assignable to parameter of type '1'. + Overload 2 of 6, '(this: (this: 1, ...args: unknown[]) => void, thisArg: 1, ...args: unknown[]): (...args: unknown[]) => void', gave the following error. + The 'this' context of type '(this: 1, ...args: T extends 1 ? [unknown] : [unknown, unknown]) => void' is not assignable to method's 'this' of type '(this: 1, ...args: unknown[]) => void'. + Types of parameters 'args' and 'args' are incompatible. + Type 'unknown[]' is not assignable to type 'T extends 1 ? [unknown] : [unknown, unknown]'. -==== tests/cases/conformance/functions/strictBindCallApply1.ts (24 errors) ==== +==== tests/cases/conformance/functions/strictBindCallApply1.ts (26 errors) ==== declare function foo(a: number, b: string): string; declare function overloaded(s: string): number; @@ -217,4 +232,48 @@ tests/cases/conformance/functions/strictBindCallApply1.ts(72,12): error TS2345: ~~~~~~~~~~~~~~~~~ !!! error TS2345: Argument of type '[number, string, number]' is not assignable to parameter of type '[a: number, b: string]'. !!! error TS2345: Source has 3 element(s) but target allows only 2. + + function bar(callback: (this: 1, ...args: T) => void) { + callback.bind(1); + callback.bind(2); // Error + ~~~~~~~~~~~~~~~~ +!!! error TS2769: No overload matches this call. +!!! error TS2769: Overload 1 of 6, '(this: (this: 1, ...args: T) => void, thisArg: 1): (...args: T) => void', gave the following error. +!!! error TS2769: Argument of type '2' is not assignable to parameter of type '1'. +!!! error TS2769: Overload 2 of 6, '(this: (this: 1, ...args: unknown[]) => void, thisArg: 1, ...args: unknown[]): (...args: unknown[]) => void', gave the following error. +!!! error TS2769: The 'this' context of type '(this: 1, ...args: T) => void' is not assignable to method's 'this' of type '(this: 1, ...args: unknown[]) => void'. +!!! error TS2769: Types of parameters 'args' and 'args' are incompatible. +!!! error TS2769: Type 'unknown[]' is not assignable to type 'T'. +!!! error TS2769: 'unknown[]' is assignable to the constraint of type 'T', but 'T' could be instantiated with a different subtype of constraint 'unknown[]'. + } + + function baz(callback: (this: 1, ...args: T extends 1 ? [unknown] : [unknown, unknown]) => void) { + callback.bind(1); + callback.bind(2); // Error + ~~~~~~~~~~~~~~~~ +!!! error TS2769: No overload matches this call. +!!! error TS2769: Overload 1 of 6, '(this: (this: 1, ...args: T extends 1 ? [unknown] : [unknown, unknown]) => void, thisArg: 1): (...args: T extends 1 ? [unknown] : [unknown, unknown]) => void', gave the following error. +!!! error TS2769: Argument of type '2' is not assignable to parameter of type '1'. +!!! error TS2769: Overload 2 of 6, '(this: (this: 1, ...args: unknown[]) => void, thisArg: 1, ...args: unknown[]): (...args: unknown[]) => void', gave the following error. +!!! error TS2769: The 'this' context of type '(this: 1, ...args: T extends 1 ? [unknown] : [unknown, unknown]) => void' is not assignable to method's 'this' of type '(this: 1, ...args: unknown[]) => void'. +!!! error TS2769: Types of parameters 'args' and 'args' are incompatible. +!!! error TS2769: Type 'unknown[]' is not assignable to type 'T extends 1 ? [unknown] : [unknown, unknown]'. + } + + // Repro from #32964 + class Foo { + constructor() { + this.fn.bind(this); + } + + fn(...args: T): void {} + } + + class Bar { + constructor() { + this.fn.bind(this); + } + + fn(...args: T extends 1 ? [unknown] : [unknown, unknown]) {} + } \ No newline at end of file diff --git a/tests/baselines/reference/strictBindCallApply1.js b/tests/baselines/reference/strictBindCallApply1.js index fc90729a8d6a1..6f13ea9f6a6fe 100644 --- a/tests/baselines/reference/strictBindCallApply1.js +++ b/tests/baselines/reference/strictBindCallApply1.js @@ -71,6 +71,33 @@ C.apply(c, [10, "hello"]); C.apply(c, [10]); // Error C.apply(c, [10, 20]); // Error C.apply(c, [10, "hello", 30]); // Error + +function bar(callback: (this: 1, ...args: T) => void) { + callback.bind(1); + callback.bind(2); // Error +} + +function baz(callback: (this: 1, ...args: T extends 1 ? [unknown] : [unknown, unknown]) => void) { + callback.bind(1); + callback.bind(2); // Error +} + +// Repro from #32964 +class Foo { + constructor() { + this.fn.bind(this); + } + + fn(...args: T): void {} +} + +class Bar { + constructor() { + this.fn.bind(this); + } + + fn(...args: T extends 1 ? [unknown] : [unknown, unknown]) {} +} //// [strictBindCallApply1.js] @@ -126,3 +153,36 @@ C.apply(c, [10, "hello"]); C.apply(c, [10]); // Error C.apply(c, [10, 20]); // Error C.apply(c, [10, "hello", 30]); // Error +function bar(callback) { + callback.bind(1); + callback.bind(2); // Error +} +function baz(callback) { + callback.bind(1); + callback.bind(2); // Error +} +// Repro from #32964 +var Foo = /** @class */ (function () { + function Foo() { + this.fn.bind(this); + } + Foo.prototype.fn = function () { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + }; + return Foo; +}()); +var Bar = /** @class */ (function () { + function Bar() { + this.fn.bind(this); + } + Bar.prototype.fn = function () { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + }; + return Bar; +}()); diff --git a/tests/baselines/reference/strictBindCallApply1.symbols b/tests/baselines/reference/strictBindCallApply1.symbols index 705df6da69925..b35c0e19a082d 100644 --- a/tests/baselines/reference/strictBindCallApply1.symbols +++ b/tests/baselines/reference/strictBindCallApply1.symbols @@ -388,3 +388,82 @@ C.apply(c, [10, "hello", 30]); // Error >apply : Symbol(NewableFunction.apply, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) >c : Symbol(c, Decl(strictBindCallApply1.ts, 34, 11)) +function bar(callback: (this: 1, ...args: T) => void) { +>bar : Symbol(bar, Decl(strictBindCallApply1.ts, 71, 30)) +>T : Symbol(T, Decl(strictBindCallApply1.ts, 73, 13)) +>callback : Symbol(callback, Decl(strictBindCallApply1.ts, 73, 34)) +>this : Symbol(this, Decl(strictBindCallApply1.ts, 73, 45)) +>args : Symbol(args, Decl(strictBindCallApply1.ts, 73, 53)) +>T : Symbol(T, Decl(strictBindCallApply1.ts, 73, 13)) + + callback.bind(1); +>callback.bind : Symbol(CallableFunction.bind, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --) ... and 1 more) +>callback : Symbol(callback, Decl(strictBindCallApply1.ts, 73, 34)) +>bind : Symbol(CallableFunction.bind, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --) ... and 1 more) + + callback.bind(2); // Error +>callback.bind : Symbol(CallableFunction.bind, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --) ... and 1 more) +>callback : Symbol(callback, Decl(strictBindCallApply1.ts, 73, 34)) +>bind : Symbol(CallableFunction.bind, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --) ... and 1 more) +} + +function baz(callback: (this: 1, ...args: T extends 1 ? [unknown] : [unknown, unknown]) => void) { +>baz : Symbol(baz, Decl(strictBindCallApply1.ts, 76, 1)) +>T : Symbol(T, Decl(strictBindCallApply1.ts, 78, 13)) +>callback : Symbol(callback, Decl(strictBindCallApply1.ts, 78, 30)) +>this : Symbol(this, Decl(strictBindCallApply1.ts, 78, 41)) +>args : Symbol(args, Decl(strictBindCallApply1.ts, 78, 49)) +>T : Symbol(T, Decl(strictBindCallApply1.ts, 78, 13)) + + callback.bind(1); +>callback.bind : Symbol(CallableFunction.bind, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --) ... and 1 more) +>callback : Symbol(callback, Decl(strictBindCallApply1.ts, 78, 30)) +>bind : Symbol(CallableFunction.bind, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --) ... and 1 more) + + callback.bind(2); // Error +>callback.bind : Symbol(CallableFunction.bind, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --) ... and 1 more) +>callback : Symbol(callback, Decl(strictBindCallApply1.ts, 78, 30)) +>bind : Symbol(CallableFunction.bind, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --) ... and 1 more) +} + +// Repro from #32964 +class Foo { +>Foo : Symbol(Foo, Decl(strictBindCallApply1.ts, 81, 1)) +>T : Symbol(T, Decl(strictBindCallApply1.ts, 84, 10)) + + constructor() { + this.fn.bind(this); +>this.fn.bind : Symbol(CallableFunction.bind, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --) ... and 1 more) +>this.fn : Symbol(Foo.fn, Decl(strictBindCallApply1.ts, 87, 5)) +>this : Symbol(Foo, Decl(strictBindCallApply1.ts, 81, 1)) +>fn : Symbol(Foo.fn, Decl(strictBindCallApply1.ts, 87, 5)) +>bind : Symbol(CallableFunction.bind, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --) ... and 1 more) +>this : Symbol(Foo, Decl(strictBindCallApply1.ts, 81, 1)) + } + + fn(...args: T): void {} +>fn : Symbol(Foo.fn, Decl(strictBindCallApply1.ts, 87, 5)) +>args : Symbol(args, Decl(strictBindCallApply1.ts, 89, 7)) +>T : Symbol(T, Decl(strictBindCallApply1.ts, 84, 10)) +} + +class Bar { +>Bar : Symbol(Bar, Decl(strictBindCallApply1.ts, 90, 1)) +>T : Symbol(T, Decl(strictBindCallApply1.ts, 92, 10)) + + constructor() { + this.fn.bind(this); +>this.fn.bind : Symbol(CallableFunction.bind, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --) ... and 1 more) +>this.fn : Symbol(Bar.fn, Decl(strictBindCallApply1.ts, 95, 5)) +>this : Symbol(Bar, Decl(strictBindCallApply1.ts, 90, 1)) +>fn : Symbol(Bar.fn, Decl(strictBindCallApply1.ts, 95, 5)) +>bind : Symbol(CallableFunction.bind, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --) ... and 1 more) +>this : Symbol(Bar, Decl(strictBindCallApply1.ts, 90, 1)) + } + + fn(...args: T extends 1 ? [unknown] : [unknown, unknown]) {} +>fn : Symbol(Bar.fn, Decl(strictBindCallApply1.ts, 95, 5)) +>args : Symbol(args, Decl(strictBindCallApply1.ts, 97, 7)) +>T : Symbol(T, Decl(strictBindCallApply1.ts, 92, 10)) +} + diff --git a/tests/baselines/reference/strictBindCallApply1.types b/tests/baselines/reference/strictBindCallApply1.types index 80db68c3af4da..e401d684492e2 100644 --- a/tests/baselines/reference/strictBindCallApply1.types +++ b/tests/baselines/reference/strictBindCallApply1.types @@ -506,3 +506,84 @@ C.apply(c, [10, "hello", 30]); // Error >"hello" : "hello" >30 : 30 +function bar(callback: (this: 1, ...args: T) => void) { +>bar : (callback: (this: 1, ...args: T) => void) => void +>callback : (this: 1, ...args: T) => void +>this : 1 +>args : T + + callback.bind(1); +>callback.bind(1) : (...args: T) => void +>callback.bind : { (this: T, thisArg: ThisParameterType): OmitThisParameter; (this: (this: T, arg0: A0, ...args: A) => R, thisArg: T, arg0: A0): (...args: A) => R; (this: (this: T, arg0: A0, arg1: A1, ...args: A) => R, thisArg: T, arg0: A0, arg1: A1): (...args: A) => R; (this: (this: T, arg0: A0, arg1: A1, arg2: A2, ...args: A) => R, thisArg: T, arg0: A0, arg1: A1, arg2: A2): (...args: A) => R; (this: (this: T, arg0: A0, arg1: A1, arg2: A2, arg3: A3, ...args: A) => R, thisArg: T, arg0: A0, arg1: A1, arg2: A2, arg3: A3): (...args: A) => R; (this: (this: T, ...args: AX[]) => R, thisArg: T, ...args: AX[]): (...args: AX[]) => R; } +>callback : (this: 1, ...args: T) => void +>bind : { (this: T, thisArg: ThisParameterType): OmitThisParameter; (this: (this: T, arg0: A0, ...args: A) => R, thisArg: T, arg0: A0): (...args: A) => R; (this: (this: T, arg0: A0, arg1: A1, ...args: A) => R, thisArg: T, arg0: A0, arg1: A1): (...args: A) => R; (this: (this: T, arg0: A0, arg1: A1, arg2: A2, ...args: A) => R, thisArg: T, arg0: A0, arg1: A1, arg2: A2): (...args: A) => R; (this: (this: T, arg0: A0, arg1: A1, arg2: A2, arg3: A3, ...args: A) => R, thisArg: T, arg0: A0, arg1: A1, arg2: A2, arg3: A3): (...args: A) => R; (this: (this: T, ...args: AX[]) => R, thisArg: T, ...args: AX[]): (...args: AX[]) => R; } +>1 : 1 + + callback.bind(2); // Error +>callback.bind(2) : (...args: T) => void +>callback.bind : { (this: T, thisArg: ThisParameterType): OmitThisParameter; (this: (this: T, arg0: A0, ...args: A) => R, thisArg: T, arg0: A0): (...args: A) => R; (this: (this: T, arg0: A0, arg1: A1, ...args: A) => R, thisArg: T, arg0: A0, arg1: A1): (...args: A) => R; (this: (this: T, arg0: A0, arg1: A1, arg2: A2, ...args: A) => R, thisArg: T, arg0: A0, arg1: A1, arg2: A2): (...args: A) => R; (this: (this: T, arg0: A0, arg1: A1, arg2: A2, arg3: A3, ...args: A) => R, thisArg: T, arg0: A0, arg1: A1, arg2: A2, arg3: A3): (...args: A) => R; (this: (this: T, ...args: AX[]) => R, thisArg: T, ...args: AX[]): (...args: AX[]) => R; } +>callback : (this: 1, ...args: T) => void +>bind : { (this: T, thisArg: ThisParameterType): OmitThisParameter; (this: (this: T, arg0: A0, ...args: A) => R, thisArg: T, arg0: A0): (...args: A) => R; (this: (this: T, arg0: A0, arg1: A1, ...args: A) => R, thisArg: T, arg0: A0, arg1: A1): (...args: A) => R; (this: (this: T, arg0: A0, arg1: A1, arg2: A2, ...args: A) => R, thisArg: T, arg0: A0, arg1: A1, arg2: A2): (...args: A) => R; (this: (this: T, arg0: A0, arg1: A1, arg2: A2, arg3: A3, ...args: A) => R, thisArg: T, arg0: A0, arg1: A1, arg2: A2, arg3: A3): (...args: A) => R; (this: (this: T, ...args: AX[]) => R, thisArg: T, ...args: AX[]): (...args: AX[]) => R; } +>2 : 2 +} + +function baz(callback: (this: 1, ...args: T extends 1 ? [unknown] : [unknown, unknown]) => void) { +>baz : (callback: (this: 1, ...args: T extends 1 ? [unknown] : [unknown, unknown]) => void) => void +>callback : (this: 1, ...args: T extends 1 ? [unknown] : [unknown, unknown]) => void +>this : 1 +>args : T extends 1 ? [unknown] : [unknown, unknown] + + callback.bind(1); +>callback.bind(1) : (...args: T extends 1 ? [unknown] : [unknown, unknown]) => void +>callback.bind : { (this: T, thisArg: ThisParameterType): OmitThisParameter; (this: (this: T, arg0: A0, ...args: A) => R, thisArg: T, arg0: A0): (...args: A) => R; (this: (this: T, arg0: A0, arg1: A1, ...args: A) => R, thisArg: T, arg0: A0, arg1: A1): (...args: A) => R; (this: (this: T, arg0: A0, arg1: A1, arg2: A2, ...args: A) => R, thisArg: T, arg0: A0, arg1: A1, arg2: A2): (...args: A) => R; (this: (this: T, arg0: A0, arg1: A1, arg2: A2, arg3: A3, ...args: A) => R, thisArg: T, arg0: A0, arg1: A1, arg2: A2, arg3: A3): (...args: A) => R; (this: (this: T, ...args: AX[]) => R, thisArg: T, ...args: AX[]): (...args: AX[]) => R; } +>callback : (this: 1, ...args: T extends 1 ? [unknown] : [unknown, unknown]) => void +>bind : { (this: T, thisArg: ThisParameterType): OmitThisParameter; (this: (this: T, arg0: A0, ...args: A) => R, thisArg: T, arg0: A0): (...args: A) => R; (this: (this: T, arg0: A0, arg1: A1, ...args: A) => R, thisArg: T, arg0: A0, arg1: A1): (...args: A) => R; (this: (this: T, arg0: A0, arg1: A1, arg2: A2, ...args: A) => R, thisArg: T, arg0: A0, arg1: A1, arg2: A2): (...args: A) => R; (this: (this: T, arg0: A0, arg1: A1, arg2: A2, arg3: A3, ...args: A) => R, thisArg: T, arg0: A0, arg1: A1, arg2: A2, arg3: A3): (...args: A) => R; (this: (this: T, ...args: AX[]) => R, thisArg: T, ...args: AX[]): (...args: AX[]) => R; } +>1 : 1 + + callback.bind(2); // Error +>callback.bind(2) : (...args: T extends 1 ? [unknown] : [unknown, unknown]) => void +>callback.bind : { (this: T, thisArg: ThisParameterType): OmitThisParameter; (this: (this: T, arg0: A0, ...args: A) => R, thisArg: T, arg0: A0): (...args: A) => R; (this: (this: T, arg0: A0, arg1: A1, ...args: A) => R, thisArg: T, arg0: A0, arg1: A1): (...args: A) => R; (this: (this: T, arg0: A0, arg1: A1, arg2: A2, ...args: A) => R, thisArg: T, arg0: A0, arg1: A1, arg2: A2): (...args: A) => R; (this: (this: T, arg0: A0, arg1: A1, arg2: A2, arg3: A3, ...args: A) => R, thisArg: T, arg0: A0, arg1: A1, arg2: A2, arg3: A3): (...args: A) => R; (this: (this: T, ...args: AX[]) => R, thisArg: T, ...args: AX[]): (...args: AX[]) => R; } +>callback : (this: 1, ...args: T extends 1 ? [unknown] : [unknown, unknown]) => void +>bind : { (this: T, thisArg: ThisParameterType): OmitThisParameter; (this: (this: T, arg0: A0, ...args: A) => R, thisArg: T, arg0: A0): (...args: A) => R; (this: (this: T, arg0: A0, arg1: A1, ...args: A) => R, thisArg: T, arg0: A0, arg1: A1): (...args: A) => R; (this: (this: T, arg0: A0, arg1: A1, arg2: A2, ...args: A) => R, thisArg: T, arg0: A0, arg1: A1, arg2: A2): (...args: A) => R; (this: (this: T, arg0: A0, arg1: A1, arg2: A2, arg3: A3, ...args: A) => R, thisArg: T, arg0: A0, arg1: A1, arg2: A2, arg3: A3): (...args: A) => R; (this: (this: T, ...args: AX[]) => R, thisArg: T, ...args: AX[]): (...args: AX[]) => R; } +>2 : 2 +} + +// Repro from #32964 +class Foo { +>Foo : Foo + + constructor() { + this.fn.bind(this); +>this.fn.bind(this) : (...args: T) => void +>this.fn.bind : { (this: T, thisArg: ThisParameterType): OmitThisParameter; (this: (this: T, arg0: A0, ...args: A) => R, thisArg: T, arg0: A0): (...args: A) => R; (this: (this: T, arg0: A0, arg1: A1, ...args: A) => R, thisArg: T, arg0: A0, arg1: A1): (...args: A) => R; (this: (this: T, arg0: A0, arg1: A1, arg2: A2, ...args: A) => R, thisArg: T, arg0: A0, arg1: A1, arg2: A2): (...args: A) => R; (this: (this: T, arg0: A0, arg1: A1, arg2: A2, arg3: A3, ...args: A) => R, thisArg: T, arg0: A0, arg1: A1, arg2: A2, arg3: A3): (...args: A) => R; (this: (this: T, ...args: AX[]) => R, thisArg: T, ...args: AX[]): (...args: AX[]) => R; } +>this.fn : (...args: T) => void +>this : this +>fn : (...args: T) => void +>bind : { (this: T, thisArg: ThisParameterType): OmitThisParameter; (this: (this: T, arg0: A0, ...args: A) => R, thisArg: T, arg0: A0): (...args: A) => R; (this: (this: T, arg0: A0, arg1: A1, ...args: A) => R, thisArg: T, arg0: A0, arg1: A1): (...args: A) => R; (this: (this: T, arg0: A0, arg1: A1, arg2: A2, ...args: A) => R, thisArg: T, arg0: A0, arg1: A1, arg2: A2): (...args: A) => R; (this: (this: T, arg0: A0, arg1: A1, arg2: A2, arg3: A3, ...args: A) => R, thisArg: T, arg0: A0, arg1: A1, arg2: A2, arg3: A3): (...args: A) => R; (this: (this: T, ...args: AX[]) => R, thisArg: T, ...args: AX[]): (...args: AX[]) => R; } +>this : this + } + + fn(...args: T): void {} +>fn : (...args: T) => void +>args : T +} + +class Bar { +>Bar : Bar + + constructor() { + this.fn.bind(this); +>this.fn.bind(this) : (...args: T extends 1 ? [unknown] : [unknown, unknown]) => void +>this.fn.bind : { (this: T, thisArg: ThisParameterType): OmitThisParameter; (this: (this: T, arg0: A0, ...args: A) => R, thisArg: T, arg0: A0): (...args: A) => R; (this: (this: T, arg0: A0, arg1: A1, ...args: A) => R, thisArg: T, arg0: A0, arg1: A1): (...args: A) => R; (this: (this: T, arg0: A0, arg1: A1, arg2: A2, ...args: A) => R, thisArg: T, arg0: A0, arg1: A1, arg2: A2): (...args: A) => R; (this: (this: T, arg0: A0, arg1: A1, arg2: A2, arg3: A3, ...args: A) => R, thisArg: T, arg0: A0, arg1: A1, arg2: A2, arg3: A3): (...args: A) => R; (this: (this: T, ...args: AX[]) => R, thisArg: T, ...args: AX[]): (...args: AX[]) => R; } +>this.fn : (...args: T extends 1 ? [unknown] : [unknown, unknown]) => void +>this : this +>fn : (...args: T extends 1 ? [unknown] : [unknown, unknown]) => void +>bind : { (this: T, thisArg: ThisParameterType): OmitThisParameter; (this: (this: T, arg0: A0, ...args: A) => R, thisArg: T, arg0: A0): (...args: A) => R; (this: (this: T, arg0: A0, arg1: A1, ...args: A) => R, thisArg: T, arg0: A0, arg1: A1): (...args: A) => R; (this: (this: T, arg0: A0, arg1: A1, arg2: A2, ...args: A) => R, thisArg: T, arg0: A0, arg1: A1, arg2: A2): (...args: A) => R; (this: (this: T, arg0: A0, arg1: A1, arg2: A2, arg3: A3, ...args: A) => R, thisArg: T, arg0: A0, arg1: A1, arg2: A2, arg3: A3): (...args: A) => R; (this: (this: T, ...args: AX[]) => R, thisArg: T, ...args: AX[]): (...args: AX[]) => R; } +>this : this + } + + fn(...args: T extends 1 ? [unknown] : [unknown, unknown]) {} +>fn : (...args: T extends 1 ? [unknown] : [unknown, unknown]) => void +>args : T extends 1 ? [unknown] : [unknown, unknown] +} + diff --git a/tests/baselines/reference/strictModeInConstructor.errors.txt b/tests/baselines/reference/strictModeInConstructor.errors.txt index bce4fb1d7b747..f9ed26bf33c42 100644 --- a/tests/baselines/reference/strictModeInConstructor.errors.txt +++ b/tests/baselines/reference/strictModeInConstructor.errors.txt @@ -1,7 +1,8 @@ -tests/cases/compiler/strictModeInConstructor.ts(27,5): error TS2376: A 'super' call must be the first statement in the constructor when a class contains initialized properties, parameter properties, or private identifiers. +tests/cases/compiler/strictModeInConstructor.ts(27,5): error TS2376: A 'super' call must be the first statement in the constructor to refer to 'super' or 'this' when a derived class contains initialized properties, parameter properties, or private identifiers. +tests/cases/compiler/strictModeInConstructor.ts(29,17): error TS17009: 'super' must be called before accessing 'this' in the constructor of a derived class. -==== tests/cases/compiler/strictModeInConstructor.ts (1 errors) ==== +==== tests/cases/compiler/strictModeInConstructor.ts (2 errors) ==== class A { } @@ -30,15 +31,19 @@ tests/cases/compiler/strictModeInConstructor.ts(27,5): error TS2376: A 'super' c constructor () { ~~~~~~~~~~~~~~~~ - var x = 1; // Error - ~~~~~~~~~~~~~~~~~~~~~~~~~~~ + var x = 1; // No error + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + var y = this.s; // Error + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + ~~~~ +!!! error TS17009: 'super' must be called before accessing 'this' in the constructor of a derived class. super(); ~~~~~~~~~~~~~~~~ "use strict"; ~~~~~~~~~~~~~~~~~~~~~ } ~~~~~ -!!! error TS2376: A 'super' call must be the first statement in the constructor when a class contains initialized properties, parameter properties, or private identifiers. +!!! error TS2376: A 'super' call must be the first statement in the constructor to refer to 'super' or 'this' when a derived class contains initialized properties, parameter properties, or private identifiers. } class Bs extends A { diff --git a/tests/baselines/reference/strictModeInConstructor.js b/tests/baselines/reference/strictModeInConstructor.js index 85d5d3eecbfd5..680c065b41b8b 100644 --- a/tests/baselines/reference/strictModeInConstructor.js +++ b/tests/baselines/reference/strictModeInConstructor.js @@ -26,7 +26,8 @@ class D extends A { public s: number = 9; constructor () { - var x = 1; // Error + var x = 1; // No error + var y = this.s; // Error super(); "use strict"; } @@ -105,7 +106,8 @@ var D = /** @class */ (function (_super) { __extends(D, _super); function D() { var _this = this; - var x = 1; // Error + var x = 1; // No error + var y = _this.s; // Error _this = _super.call(this) || this; _this.s = 9; "use strict"; @@ -135,10 +137,10 @@ var Cs = /** @class */ (function (_super) { var Ds = /** @class */ (function (_super) { __extends(Ds, _super); function Ds() { + "use strict"; var _this = this; var x = 1; // no Error _this = _super.call(this) || this; - "use strict"; return _this; } Ds.s = 9; diff --git a/tests/baselines/reference/strictModeInConstructor.symbols b/tests/baselines/reference/strictModeInConstructor.symbols index 622dbb500e043..7c628a351ba44 100644 --- a/tests/baselines/reference/strictModeInConstructor.symbols +++ b/tests/baselines/reference/strictModeInConstructor.symbols @@ -42,9 +42,15 @@ class D extends A { >s : Symbol(D.s, Decl(strictModeInConstructor.ts, 23, 19)) constructor () { - var x = 1; // Error + var x = 1; // No error >x : Symbol(x, Decl(strictModeInConstructor.ts, 27, 11)) + var y = this.s; // Error +>y : Symbol(y, Decl(strictModeInConstructor.ts, 28, 11)) +>this.s : Symbol(D.s, Decl(strictModeInConstructor.ts, 23, 19)) +>this : Symbol(D, Decl(strictModeInConstructor.ts, 21, 1)) +>s : Symbol(D.s, Decl(strictModeInConstructor.ts, 23, 19)) + super(); >super : Symbol(A, Decl(strictModeInConstructor.ts, 0, 0)) @@ -53,11 +59,11 @@ class D extends A { } class Bs extends A { ->Bs : Symbol(Bs, Decl(strictModeInConstructor.ts, 31, 1)) +>Bs : Symbol(Bs, Decl(strictModeInConstructor.ts, 32, 1)) >A : Symbol(A, Decl(strictModeInConstructor.ts, 0, 0)) public static s: number = 9; ->s : Symbol(Bs.s, Decl(strictModeInConstructor.ts, 33, 20)) +>s : Symbol(Bs.s, Decl(strictModeInConstructor.ts, 34, 20)) constructor () { "use strict"; // No error @@ -67,11 +73,11 @@ class Bs extends A { } class Cs extends A { ->Cs : Symbol(Cs, Decl(strictModeInConstructor.ts, 40, 1)) +>Cs : Symbol(Cs, Decl(strictModeInConstructor.ts, 41, 1)) >A : Symbol(A, Decl(strictModeInConstructor.ts, 0, 0)) public static s: number = 9; ->s : Symbol(Cs.s, Decl(strictModeInConstructor.ts, 42, 20)) +>s : Symbol(Cs.s, Decl(strictModeInConstructor.ts, 43, 20)) constructor () { super(); // No error @@ -82,15 +88,15 @@ class Cs extends A { } class Ds extends A { ->Ds : Symbol(Ds, Decl(strictModeInConstructor.ts, 49, 1)) +>Ds : Symbol(Ds, Decl(strictModeInConstructor.ts, 50, 1)) >A : Symbol(A, Decl(strictModeInConstructor.ts, 0, 0)) public static s: number = 9; ->s : Symbol(Ds.s, Decl(strictModeInConstructor.ts, 51, 20)) +>s : Symbol(Ds.s, Decl(strictModeInConstructor.ts, 52, 20)) constructor () { var x = 1; // no Error ->x : Symbol(x, Decl(strictModeInConstructor.ts, 55, 11)) +>x : Symbol(x, Decl(strictModeInConstructor.ts, 56, 11)) super(); >super : Symbol(A, Decl(strictModeInConstructor.ts, 0, 0)) diff --git a/tests/baselines/reference/strictModeInConstructor.types b/tests/baselines/reference/strictModeInConstructor.types index 4a07696fc881a..e06ef20c9a912 100644 --- a/tests/baselines/reference/strictModeInConstructor.types +++ b/tests/baselines/reference/strictModeInConstructor.types @@ -50,10 +50,16 @@ class D extends A { >9 : 9 constructor () { - var x = 1; // Error + var x = 1; // No error >x : number >1 : 1 + var y = this.s; // Error +>y : number +>this.s : number +>this : this +>s : number + super(); >super() : void >super : typeof A diff --git a/tests/baselines/reference/strictModeOctalLiterals.errors.txt b/tests/baselines/reference/strictModeOctalLiterals.errors.txt new file mode 100644 index 0000000000000..3d52e5323f2c8 --- /dev/null +++ b/tests/baselines/reference/strictModeOctalLiterals.errors.txt @@ -0,0 +1,17 @@ +tests/cases/conformance/expressions/literals/strictModeOctalLiterals.ts(2,14): error TS1085: Octal literals are not available when targeting ECMAScript 5 and higher. Use the syntax '0o1'. +tests/cases/conformance/expressions/literals/strictModeOctalLiterals.ts(4,16): error TS1085: Octal literals are not available when targeting ECMAScript 5 and higher. Use the syntax '0o1'. +tests/cases/conformance/expressions/literals/strictModeOctalLiterals.ts(4,21): error TS1085: Octal literals are not available when targeting ECMAScript 5 and higher. Use the syntax '0o1'. + + +==== tests/cases/conformance/expressions/literals/strictModeOctalLiterals.ts (3 errors) ==== + export enum E { + A = 12 + 01 + ~~ +!!! error TS1085: Octal literals are not available when targeting ECMAScript 5 and higher. Use the syntax '0o1'. + } + const orbitol: 01 = 01 + ~~ +!!! error TS1085: Octal literals are not available when targeting ECMAScript 5 and higher. Use the syntax '0o1'. + ~~ +!!! error TS1085: Octal literals are not available when targeting ECMAScript 5 and higher. Use the syntax '0o1'. + \ No newline at end of file diff --git a/tests/baselines/reference/strictModeOctalLiterals.js b/tests/baselines/reference/strictModeOctalLiterals.js new file mode 100644 index 0000000000000..df3f9acfe5496 --- /dev/null +++ b/tests/baselines/reference/strictModeOctalLiterals.js @@ -0,0 +1,13 @@ +//// [strictModeOctalLiterals.ts] +export enum E { + A = 12 + 01 +} +const orbitol: 01 = 01 + + +//// [strictModeOctalLiterals.js] +export var E; +(function (E) { + E[E["A"] = 13] = "A"; +})(E || (E = {})); +const orbitol = 01; diff --git a/tests/baselines/reference/strictModeOctalLiterals.symbols b/tests/baselines/reference/strictModeOctalLiterals.symbols new file mode 100644 index 0000000000000..286a1eda1cc3b --- /dev/null +++ b/tests/baselines/reference/strictModeOctalLiterals.symbols @@ -0,0 +1,10 @@ +=== tests/cases/conformance/expressions/literals/strictModeOctalLiterals.ts === +export enum E { +>E : Symbol(E, Decl(strictModeOctalLiterals.ts, 0, 0)) + + A = 12 + 01 +>A : Symbol(E.A, Decl(strictModeOctalLiterals.ts, 0, 15)) +} +const orbitol: 01 = 01 +>orbitol : Symbol(orbitol, Decl(strictModeOctalLiterals.ts, 3, 5)) + diff --git a/tests/baselines/reference/strictModeOctalLiterals.types b/tests/baselines/reference/strictModeOctalLiterals.types new file mode 100644 index 0000000000000..ffbb20d8f4e33 --- /dev/null +++ b/tests/baselines/reference/strictModeOctalLiterals.types @@ -0,0 +1,14 @@ +=== tests/cases/conformance/expressions/literals/strictModeOctalLiterals.ts === +export enum E { +>E : E + + A = 12 + 01 +>A : E +>12 + 01 : number +>12 : 12 +>01 : 1 +} +const orbitol: 01 = 01 +>orbitol : 1 +>01 : 1 + diff --git a/tests/baselines/reference/strictPropertyInitialization.errors.txt b/tests/baselines/reference/strictPropertyInitialization.errors.txt index aca8b44e0737c..208c0a32e4d1d 100644 --- a/tests/baselines/reference/strictPropertyInitialization.errors.txt +++ b/tests/baselines/reference/strictPropertyInitialization.errors.txt @@ -164,4 +164,19 @@ tests/cases/conformance/classes/propertyMemberDeclarations/strictPropertyInitial this.#b = someValue(); } } + + const a = 'a'; + const b = Symbol(); + + class C12 { + [a]: number; + [b]: number; + ['c']: number; + + constructor() { + this[a] = 1; + this[b] = 1; + this['c'] = 1; + } + } \ No newline at end of file diff --git a/tests/baselines/reference/strictPropertyInitialization.js b/tests/baselines/reference/strictPropertyInitialization.js index 30867a3773de1..41760958edd1f 100644 --- a/tests/baselines/reference/strictPropertyInitialization.js +++ b/tests/baselines/reference/strictPropertyInitialization.js @@ -132,6 +132,21 @@ class C11 { this.#b = someValue(); } } + +const a = 'a'; +const b = Symbol(); + +class C12 { + [a]: number; + [b]: number; + ['c']: number; + + constructor() { + this[a] = 1; + this[b] = 1; + this['c'] = 1; + } +} //// [strictPropertyInitialization.js] @@ -235,6 +250,15 @@ class C11 { } } _C11_b = new WeakMap(); +const a = 'a'; +const b = Symbol(); +class C12 { + constructor() { + this[a] = 1; + this[b] = 1; + this['c'] = 1; + } +} //// [strictPropertyInitialization.d.ts] @@ -303,3 +327,11 @@ declare class C11 { a: number; constructor(); } +declare const a = "a"; +declare const b: unique symbol; +declare class C12 { + [a]: number; + [b]: number; + ['c']: number; + constructor(); +} diff --git a/tests/baselines/reference/strictPropertyInitialization.symbols b/tests/baselines/reference/strictPropertyInitialization.symbols index 2f1e4b9fbeceb..45e15f21403e5 100644 --- a/tests/baselines/reference/strictPropertyInitialization.symbols +++ b/tests/baselines/reference/strictPropertyInitialization.symbols @@ -311,3 +311,40 @@ class C11 { } } +const a = 'a'; +>a : Symbol(a, Decl(strictPropertyInitialization.ts, 134, 5)) + +const b = Symbol(); +>b : Symbol(b, Decl(strictPropertyInitialization.ts, 135, 5)) +>Symbol : Symbol(Symbol, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.symbol.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) + +class C12 { +>C12 : Symbol(C12, Decl(strictPropertyInitialization.ts, 135, 19)) + + [a]: number; +>[a] : Symbol(C12[a], Decl(strictPropertyInitialization.ts, 137, 11)) +>a : Symbol(a, Decl(strictPropertyInitialization.ts, 134, 5)) + + [b]: number; +>[b] : Symbol(C12[b], Decl(strictPropertyInitialization.ts, 138, 16)) +>b : Symbol(b, Decl(strictPropertyInitialization.ts, 135, 5)) + + ['c']: number; +>['c'] : Symbol(C12['c'], Decl(strictPropertyInitialization.ts, 139, 16)) +>'c' : Symbol(C12['c'], Decl(strictPropertyInitialization.ts, 139, 16)) + + constructor() { + this[a] = 1; +>this : Symbol(C12, Decl(strictPropertyInitialization.ts, 135, 19)) +>a : Symbol(a, Decl(strictPropertyInitialization.ts, 134, 5)) + + this[b] = 1; +>this : Symbol(C12, Decl(strictPropertyInitialization.ts, 135, 19)) +>b : Symbol(b, Decl(strictPropertyInitialization.ts, 135, 5)) + + this['c'] = 1; +>this : Symbol(C12, Decl(strictPropertyInitialization.ts, 135, 19)) +>'c' : Symbol(C12['c'], Decl(strictPropertyInitialization.ts, 139, 16)) + } +} + diff --git a/tests/baselines/reference/strictPropertyInitialization.types b/tests/baselines/reference/strictPropertyInitialization.types index 8c7c20e613064..84d375c85157a 100644 --- a/tests/baselines/reference/strictPropertyInitialization.types +++ b/tests/baselines/reference/strictPropertyInitialization.types @@ -347,3 +347,51 @@ class C11 { } } +const a = 'a'; +>a : "a" +>'a' : "a" + +const b = Symbol(); +>b : unique symbol +>Symbol() : unique symbol +>Symbol : SymbolConstructor + +class C12 { +>C12 : C12 + + [a]: number; +>[a] : number +>a : "a" + + [b]: number; +>[b] : number +>b : unique symbol + + ['c']: number; +>['c'] : number +>'c' : "c" + + constructor() { + this[a] = 1; +>this[a] = 1 : 1 +>this[a] : number +>this : this +>a : "a" +>1 : 1 + + this[b] = 1; +>this[b] = 1 : 1 +>this[b] : number +>this : this +>b : unique symbol +>1 : 1 + + this['c'] = 1; +>this['c'] = 1 : 1 +>this['c'] : number +>this : this +>'c' : "c" +>1 : 1 + } +} + diff --git a/tests/baselines/reference/stringEnumLiteralTypes1.js b/tests/baselines/reference/stringEnumLiteralTypes1.js index 4acf2ada1a8a4..4b0b477ed54c3 100644 --- a/tests/baselines/reference/stringEnumLiteralTypes1.js +++ b/tests/baselines/reference/stringEnumLiteralTypes1.js @@ -125,8 +125,8 @@ function f3(a, b) { var y = !b; } function f5(a, b, c) { - var z1 = g("yes" /* Yes */); - var z2 = g("no" /* No */); + var z1 = g("yes" /* Choice.Yes */); + var z2 = g("no" /* Choice.No */); var z3 = g(a); var z4 = g(b); var z5 = g(c); @@ -136,14 +136,14 @@ function assertNever(x) { } function f10(x) { switch (x) { - case "yes" /* Yes */: return "true"; - case "no" /* No */: return "false"; + case "yes" /* Choice.Yes */: return "true"; + case "no" /* Choice.No */: return "false"; } } function f11(x) { switch (x) { - case "yes" /* Yes */: return "true"; - case "no" /* No */: return "false"; + case "yes" /* Choice.Yes */: return "true"; + case "no" /* Choice.No */: return "false"; } return assertNever(x); } @@ -156,7 +156,7 @@ function f12(x) { } } function f13(x) { - if (x === "yes" /* Yes */) { + if (x === "yes" /* Choice.Yes */) { x; } else { @@ -165,14 +165,14 @@ function f13(x) { } function f20(x) { switch (x.kind) { - case "yes" /* Yes */: return x.a; - case "no" /* No */: return x.b; + case "yes" /* Choice.Yes */: return x.a; + case "no" /* Choice.No */: return x.b; } } function f21(x) { switch (x.kind) { - case "yes" /* Yes */: return x.a; - case "no" /* No */: return x.b; + case "yes" /* Choice.Yes */: return x.a; + case "no" /* Choice.No */: return x.b; } return assertNever(x); } diff --git a/tests/baselines/reference/stringEnumLiteralTypes2.js b/tests/baselines/reference/stringEnumLiteralTypes2.js index 07a5de7a85dd5..8c6a6465e8c11 100644 --- a/tests/baselines/reference/stringEnumLiteralTypes2.js +++ b/tests/baselines/reference/stringEnumLiteralTypes2.js @@ -125,8 +125,8 @@ function f3(a, b) { var y = !b; } function f5(a, b, c) { - var z1 = g("yes" /* Yes */); - var z2 = g("no" /* No */); + var z1 = g("yes" /* Choice.Yes */); + var z2 = g("no" /* Choice.No */); var z3 = g(a); var z4 = g(b); var z5 = g(c); @@ -136,14 +136,14 @@ function assertNever(x) { } function f10(x) { switch (x) { - case "yes" /* Yes */: return "true"; - case "no" /* No */: return "false"; + case "yes" /* Choice.Yes */: return "true"; + case "no" /* Choice.No */: return "false"; } } function f11(x) { switch (x) { - case "yes" /* Yes */: return "true"; - case "no" /* No */: return "false"; + case "yes" /* Choice.Yes */: return "true"; + case "no" /* Choice.No */: return "false"; } return assertNever(x); } @@ -156,7 +156,7 @@ function f12(x) { } } function f13(x) { - if (x === "yes" /* Yes */) { + if (x === "yes" /* Choice.Yes */) { x; } else { @@ -165,14 +165,14 @@ function f13(x) { } function f20(x) { switch (x.kind) { - case "yes" /* Yes */: return x.a; - case "no" /* No */: return x.b; + case "yes" /* Choice.Yes */: return x.a; + case "no" /* Choice.No */: return x.b; } } function f21(x) { switch (x.kind) { - case "yes" /* Yes */: return x.a; - case "no" /* No */: return x.b; + case "yes" /* Choice.Yes */: return x.a; + case "no" /* Choice.No */: return x.b; } return assertNever(x); } diff --git a/tests/baselines/reference/stringEnumLiteralTypes3.js b/tests/baselines/reference/stringEnumLiteralTypes3.js index 7e2699460b2e2..e0b029d71c0f6 100644 --- a/tests/baselines/reference/stringEnumLiteralTypes3.js +++ b/tests/baselines/reference/stringEnumLiteralTypes3.js @@ -146,32 +146,32 @@ function f4(a, b, c, d) { d = d; } function f5(a, b, c, d) { - a = "" /* Unknown */; - a = "yes" /* Yes */; - a = "no" /* No */; - b = "" /* Unknown */; - b = "yes" /* Yes */; - b = "no" /* No */; - c = "" /* Unknown */; - c = "yes" /* Yes */; - c = "no" /* No */; - d = "" /* Unknown */; - d = "yes" /* Yes */; - d = "no" /* No */; + a = "" /* Choice.Unknown */; + a = "yes" /* Choice.Yes */; + a = "no" /* Choice.No */; + b = "" /* Choice.Unknown */; + b = "yes" /* Choice.Yes */; + b = "no" /* Choice.No */; + c = "" /* Choice.Unknown */; + c = "yes" /* Choice.Yes */; + c = "no" /* Choice.No */; + d = "" /* Choice.Unknown */; + d = "yes" /* Choice.Yes */; + d = "no" /* Choice.No */; } function f6(a, b, c, d) { - a === "" /* Unknown */; - a === "yes" /* Yes */; - a === "no" /* No */; - b === "" /* Unknown */; - b === "yes" /* Yes */; - b === "no" /* No */; - c === "" /* Unknown */; - c === "yes" /* Yes */; - c === "no" /* No */; - d === "" /* Unknown */; - d === "yes" /* Yes */; - d === "no" /* No */; + a === "" /* Choice.Unknown */; + a === "yes" /* Choice.Yes */; + a === "no" /* Choice.No */; + b === "" /* Choice.Unknown */; + b === "yes" /* Choice.Yes */; + b === "no" /* Choice.No */; + c === "" /* Choice.Unknown */; + c === "yes" /* Choice.Yes */; + c === "no" /* Choice.No */; + d === "" /* Choice.Unknown */; + d === "yes" /* Choice.Yes */; + d === "no" /* Choice.No */; } function f7(a, b, c, d) { a === a; @@ -193,33 +193,33 @@ function f7(a, b, c, d) { } function f10(x) { switch (x) { - case "" /* Unknown */: return x; - case "yes" /* Yes */: return x; - case "no" /* No */: return x; + case "" /* Choice.Unknown */: return x; + case "yes" /* Choice.Yes */: return x; + case "no" /* Choice.No */: return x; } return x; } function f11(x) { switch (x) { - case "" /* Unknown */: return x; - case "yes" /* Yes */: return x; - case "no" /* No */: return x; + case "" /* Choice.Unknown */: return x; + case "yes" /* Choice.Yes */: return x; + case "no" /* Choice.No */: return x; } return x; } function f12(x) { switch (x) { - case "" /* Unknown */: return x; - case "yes" /* Yes */: return x; - case "no" /* No */: return x; + case "" /* Choice.Unknown */: return x; + case "yes" /* Choice.Yes */: return x; + case "no" /* Choice.No */: return x; } return x; } function f13(x) { switch (x) { - case "" /* Unknown */: return x; - case "yes" /* Yes */: return x; - case "no" /* No */: return x; + case "" /* Choice.Unknown */: return x; + case "yes" /* Choice.Yes */: return x; + case "no" /* Choice.No */: return x; } return x; } diff --git a/tests/baselines/reference/substitutionTypeForIndexedAccessType1.js b/tests/baselines/reference/substitutionTypeForIndexedAccessType1.js new file mode 100644 index 0000000000000..21e18fc1e079d --- /dev/null +++ b/tests/baselines/reference/substitutionTypeForIndexedAccessType1.js @@ -0,0 +1,8 @@ +//// [substitutionTypeForIndexedAccessType1.ts] +type AddPropToObject = Prop extends keyof Obj + ? Obj[Prop] extends unknown[] + ? [...Obj[Prop]] + : never + : never + +//// [substitutionTypeForIndexedAccessType1.js] diff --git a/tests/baselines/reference/substitutionTypeForIndexedAccessType1.symbols b/tests/baselines/reference/substitutionTypeForIndexedAccessType1.symbols new file mode 100644 index 0000000000000..6b46ff33c16c1 --- /dev/null +++ b/tests/baselines/reference/substitutionTypeForIndexedAccessType1.symbols @@ -0,0 +1,18 @@ +=== tests/cases/compiler/substitutionTypeForIndexedAccessType1.ts === +type AddPropToObject = Prop extends keyof Obj +>AddPropToObject : Symbol(AddPropToObject, Decl(substitutionTypeForIndexedAccessType1.ts, 0, 0)) +>Obj : Symbol(Obj, Decl(substitutionTypeForIndexedAccessType1.ts, 0, 21)) +>Prop : Symbol(Prop, Decl(substitutionTypeForIndexedAccessType1.ts, 0, 40)) +>Prop : Symbol(Prop, Decl(substitutionTypeForIndexedAccessType1.ts, 0, 40)) +>Obj : Symbol(Obj, Decl(substitutionTypeForIndexedAccessType1.ts, 0, 21)) + + ? Obj[Prop] extends unknown[] +>Obj : Symbol(Obj, Decl(substitutionTypeForIndexedAccessType1.ts, 0, 21)) +>Prop : Symbol(Prop, Decl(substitutionTypeForIndexedAccessType1.ts, 0, 40)) + + ? [...Obj[Prop]] +>Obj : Symbol(Obj, Decl(substitutionTypeForIndexedAccessType1.ts, 0, 21)) +>Prop : Symbol(Prop, Decl(substitutionTypeForIndexedAccessType1.ts, 0, 40)) + + : never + : never diff --git a/tests/baselines/reference/substitutionTypeForIndexedAccessType1.types b/tests/baselines/reference/substitutionTypeForIndexedAccessType1.types new file mode 100644 index 0000000000000..8b9a2ef6ba3db --- /dev/null +++ b/tests/baselines/reference/substitutionTypeForIndexedAccessType1.types @@ -0,0 +1,8 @@ +=== tests/cases/compiler/substitutionTypeForIndexedAccessType1.ts === +type AddPropToObject = Prop extends keyof Obj +>AddPropToObject : AddPropToObject + + ? Obj[Prop] extends unknown[] + ? [...Obj[Prop]] + : never + : never diff --git a/tests/baselines/reference/substitutionTypeForIndexedAccessType2.js b/tests/baselines/reference/substitutionTypeForIndexedAccessType2.js new file mode 100644 index 0000000000000..9cad42066541b --- /dev/null +++ b/tests/baselines/reference/substitutionTypeForIndexedAccessType2.js @@ -0,0 +1,18 @@ +//// [substitutionTypeForIndexedAccessType2.ts] +interface Foo { + foo: string|undefined +} + +type Str = T + +type Bar = + T extends Foo + ? T['foo'] extends string + // Type 'T["foo"]' does not satisfy the constraint 'string'. + // Type 'string | undefined' is not assignable to type 'string'. + // Type 'undefined' is not assignable to type 'string'.(2344) + ? Str + : never + : never + +//// [substitutionTypeForIndexedAccessType2.js] diff --git a/tests/baselines/reference/substitutionTypeForIndexedAccessType2.symbols b/tests/baselines/reference/substitutionTypeForIndexedAccessType2.symbols new file mode 100644 index 0000000000000..db31bbe9c55c4 --- /dev/null +++ b/tests/baselines/reference/substitutionTypeForIndexedAccessType2.symbols @@ -0,0 +1,33 @@ +=== tests/cases/compiler/substitutionTypeForIndexedAccessType2.ts === +interface Foo { +>Foo : Symbol(Foo, Decl(substitutionTypeForIndexedAccessType2.ts, 0, 0)) + + foo: string|undefined +>foo : Symbol(Foo.foo, Decl(substitutionTypeForIndexedAccessType2.ts, 0, 15)) +} + +type Str = T +>Str : Symbol(Str, Decl(substitutionTypeForIndexedAccessType2.ts, 2, 1)) +>T : Symbol(T, Decl(substitutionTypeForIndexedAccessType2.ts, 4, 9)) +>T : Symbol(T, Decl(substitutionTypeForIndexedAccessType2.ts, 4, 9)) + +type Bar = +>Bar : Symbol(Bar, Decl(substitutionTypeForIndexedAccessType2.ts, 4, 30)) +>T : Symbol(T, Decl(substitutionTypeForIndexedAccessType2.ts, 6, 9)) + + T extends Foo +>T : Symbol(T, Decl(substitutionTypeForIndexedAccessType2.ts, 6, 9)) +>Foo : Symbol(Foo, Decl(substitutionTypeForIndexedAccessType2.ts, 0, 0)) + + ? T['foo'] extends string +>T : Symbol(T, Decl(substitutionTypeForIndexedAccessType2.ts, 6, 9)) + + // Type 'T["foo"]' does not satisfy the constraint 'string'. + // Type 'string | undefined' is not assignable to type 'string'. + // Type 'undefined' is not assignable to type 'string'.(2344) + ? Str +>Str : Symbol(Str, Decl(substitutionTypeForIndexedAccessType2.ts, 2, 1)) +>T : Symbol(T, Decl(substitutionTypeForIndexedAccessType2.ts, 6, 9)) + + : never + : never diff --git a/tests/baselines/reference/substitutionTypeForIndexedAccessType2.types b/tests/baselines/reference/substitutionTypeForIndexedAccessType2.types new file mode 100644 index 0000000000000..2ded8fe41a4ef --- /dev/null +++ b/tests/baselines/reference/substitutionTypeForIndexedAccessType2.types @@ -0,0 +1,20 @@ +=== tests/cases/compiler/substitutionTypeForIndexedAccessType2.ts === +interface Foo { + foo: string|undefined +>foo : string +} + +type Str = T +>Str : T + +type Bar = +>Bar : Bar + + T extends Foo + ? T['foo'] extends string + // Type 'T["foo"]' does not satisfy the constraint 'string'. + // Type 'string | undefined' is not assignable to type 'string'. + // Type 'undefined' is not assignable to type 'string'.(2344) + ? Str + : never + : never diff --git a/tests/baselines/reference/superCallBeforeThisAccessing4.js b/tests/baselines/reference/superCallBeforeThisAccessing4.js index 4315fddc99393..d8ec242d89c37 100644 --- a/tests/baselines/reference/superCallBeforeThisAccessing4.js +++ b/tests/baselines/reference/superCallBeforeThisAccessing4.js @@ -34,16 +34,19 @@ var __extends = (this && this.__extends) || (function () { var D = /** @class */ (function (_super) { __extends(D, _super); function D() { - this._t; + var _this = this; + _this._t; _this = _super.call(this) || this; + return _this; } return D; }(null)); var E = /** @class */ (function (_super) { __extends(E, _super); function E() { - _this = _super.call(this) || this; - this._t; + var _this = _super.call(this) || this; + _this._t; + return _this; } return E; }(null)); diff --git a/tests/baselines/reference/superCallFromClassThatHasNoBaseType1.js b/tests/baselines/reference/superCallFromClassThatHasNoBaseType1.js index 1e01e4ad5ea5b..ddccaf9546f6c 100644 --- a/tests/baselines/reference/superCallFromClassThatHasNoBaseType1.js +++ b/tests/baselines/reference/superCallFromClassThatHasNoBaseType1.js @@ -18,7 +18,7 @@ var A = /** @class */ (function () { }()); var B = /** @class */ (function () { function B() { - _this = _super.call(this, function (value) { return String(value); }) || this; + return _super.call(this, function (value) { return String(value); }) || this; } return B; }()); diff --git a/tests/baselines/reference/superCallFromClassThatHasNoBaseTypeButWithSameSymbolInterface.js b/tests/baselines/reference/superCallFromClassThatHasNoBaseTypeButWithSameSymbolInterface.js index e933ec9daa2c9..eab3b78bebdb1 100644 --- a/tests/baselines/reference/superCallFromClassThatHasNoBaseTypeButWithSameSymbolInterface.js +++ b/tests/baselines/reference/superCallFromClassThatHasNoBaseTypeButWithSameSymbolInterface.js @@ -11,7 +11,7 @@ class Foo { //// [superCallFromClassThatHasNoBaseTypeButWithSameSymbolInterface.js] var Foo = /** @class */ (function () { function Foo() { - _this = _super.call(this) || this; // error + return _super.call(this) || this; } return Foo; }()); diff --git a/tests/baselines/reference/superCallInConstructorWithNoBaseType.js b/tests/baselines/reference/superCallInConstructorWithNoBaseType.js index 1550a0c6ad9f5..9983d1f5f1aff 100644 --- a/tests/baselines/reference/superCallInConstructorWithNoBaseType.js +++ b/tests/baselines/reference/superCallInConstructorWithNoBaseType.js @@ -14,14 +14,15 @@ class D { //// [superCallInConstructorWithNoBaseType.js] var C = /** @class */ (function () { function C() { - _this = _super.call(this) || this; // error + return _super.call(this) || this; } return C; }()); var D = /** @class */ (function () { function D(x) { - _this = _super.call(this) || this; // error + var _this = _super.call(this) || this; this.x = x; + return _this; } return D; }()); diff --git a/tests/baselines/reference/superCalls.js b/tests/baselines/reference/superCalls.js index 489cc54d2ee87..0517598aa2026 100644 --- a/tests/baselines/reference/superCalls.js +++ b/tests/baselines/reference/superCalls.js @@ -74,10 +74,8 @@ var OtherBase = /** @class */ (function () { var OtherDerived = /** @class */ (function (_super) { __extends(OtherDerived, _super); function OtherDerived() { - var _this = this; var p = ''; - _this = _super.call(this) || this; - return _this; + return _super.call(this) || this; } return OtherDerived; }(OtherBase)); diff --git a/tests/baselines/reference/superInStaticMembers1(target=es2022).js b/tests/baselines/reference/superInStaticMembers1(target=es2022).js new file mode 100644 index 0000000000000..d4217f65bb9da --- /dev/null +++ b/tests/baselines/reference/superInStaticMembers1(target=es2022).js @@ -0,0 +1,866 @@ +//// [tests/cases/conformance/classes/members/instanceAndStaticMembers/superInStaticMembers1.ts] //// + +//// [external.ts] +export class Reflect {} +export interface Foo {} +export declare namespace Bar { type _ = unknown; } +export const enum Baz {} +export default class {}; + +//// [locals.ts] +export {}; +declare class B { static w(): number; } +class C extends B { + static _ = [ + (() => { + var Reflect; // collision (es2015-es2021 only) + super.w(); + })(), + (() => { + var { Reflect } = { Reflect: null }; // collision (es2015-es2021 only) + super.w(); + })(), + (() => { + var [Reflect] = [null]; // collision (es2015-es2021 only) + super.w(); + })(), + (() => { + class Reflect {} // collision (es2015-es2021 only) + super.w(); + })(), + (() => { + function Reflect() {} // collision (es2015-es2021 only) + super.w(); + })(), + (() => { + enum Reflect {} // collision (es2015-es2021 only) + super.w(); + })(), + (() => { + const enum Reflect {} // collision (es2015-es2021 only) + super.w(); + })(), + (() => { + type Reflect = unknown; // no collision + super.w(); + })(), + (() => { + interface Reflect {}; // no collision + super.w(); + })(), + (() => { + (class Reflect {}); // no collision + super.w(); + })(), + (() => { + (function Reflect() {}); // no collision + super.w(); + })(), + ]; + + static { + var { Reflect } = { Reflect: null }; // collision (es2015-es2021 only) + super.w(); + } + + static { + var [Reflect] = [null]; // collision (es2015-es2021 only) + super.w(); + } + + static { + var Reflect; // collision (es2015-es2021 only) + super.w(); + } + + static { + class Reflect {} // collision (es2015-es2021 only) + super.w(); + } + + static { + function Reflect() {} // collision (es2015-es2021 only) + super.w(); + } + + static { + enum Reflect {} // collision (es2015-es2021 only) + super.w(); + } + + static { + const enum Reflect {} // collision (es2015-es2021 only) + super.w(); + } + + static { + type Reflect = unknown; // no collision + super.w(); + } + + static { + interface Reflect {} // no collision + super.w(); + } + + static { + (class Reflect {}) // no collision + super.w(); + } + + static { + (function Reflect() {}) // no collision + super.w(); + } +} + +//// [varInContainingScopeStaticField1.ts] +export {}; +declare class B { static w(): number; } +var Reflect = null; // collision (es2015-es2021 only) +class C extends B { + static _ = super.w(); +} + +//// [varInContainingScopeStaticField2.ts] +export {}; +declare class B { static w(): number; } +var { Reflect } = { Reflect: null }; // collision (es2015-es2021 only) +class C extends B { + static _ = super.w(); +} + +//// [varInContainingScopeStaticField3.ts] +export {}; +declare class B { static w(): number; } +var [Reflect] = [null]; // collision (es2015-es2021 only) +class C extends B { + static _ = super.w(); +} + +//// [varInContainingScopeStaticBlock1.ts] +export {}; +declare class B { static w(): number; } +var Reflect = null; // collision (es2015-es2021 only) +class C extends B { + static { super.w(); } +} + +//// [varInContainingScopeStaticBlock2.ts] +export {}; +declare class B { static w(): number; } +var { Reflect } = { Reflect: null }; // collision (es2015-es2021 only) +class C extends B { + static { super.w(); } +} + +//// [varInContainingScopeStaticBlock3.ts] +export {}; +declare class B { static w(): number; } +var [Reflect] = [null]; // collision (es2015-es2021 only) +class C extends B { + static { super.w(); } +} + +//// [classDeclInContainingScopeStaticField.ts] +export {}; +declare class B { static w(): number; } +class Reflect {} // collision (es2015-es2021 only) +class C extends B { + static _ = super.w(); +} + +//// [classDeclInContainingScopeStaticBlock.ts] +export {}; +declare class B { static w(): number; } +class Reflect {} // collision (es2015-es2021 only) +class C extends B { + static { super.w(); } +} + +//// [funcDeclInContainingScopeStaticField.ts] +export {}; +declare class B { static w(): number; } +function Reflect() {} // collision (es2015-es2021 only) +class C extends B { + static _ = super.w(); +} + +//// [funcDeclInContainingScopeStaticBlock.ts] +export {}; +declare class B { static w(): number; } +function Reflect() {} // collision (es2015-es2021 only) +class C extends B { + static { super.w(); } +} + +//// [valueNamespaceInContainingScopeStaticField.ts] +export {}; +declare class B { static w(): number; } +namespace Reflect {} // collision (es2015-es2021 only) +class C extends B { + static _ = super.w(); +} + +//// [valueNamespaceInContainingScopeStaticBlock.ts] +export {}; +declare class B { static w(): number; } +namespace Reflect {} // collision (es2015-es2021 only) +class C extends B { + static { super.w(); } +} + +//// [enumInContainingScopeStaticField.ts] +export {}; +declare class B { static w(): number; } +enum Reflect {} // collision (es2015-es2021 only) +class C extends B { + static _ = super.w(); +} + +//// [enumInContainingScopeStaticBlock.ts] +export {}; +declare class B { static w(): number; } +enum Reflect {} // collision (es2015-es2021 only) +class C extends B { + static { super.w(); } +} + +//// [constEnumInContainingScopeStaticField.ts] +export {}; +declare class B { static w(): number; } +const enum Reflect {} // collision (es2015-es2021 only) +class C extends B { + static _ = super.w(); +} + +//// [constEnumInContainingScopeStaticBlock.ts] +export {}; +declare class B { static w(): number; } +const enum Reflect {} // collision (es2015-es2021 only) +class C extends B { + static { super.w(); } +} + +//// [namespaceImportInContainingScopeStaticField.ts] +export {}; +declare class B { static w(): number; } +import * as Reflect from "./external"; // collision (es2015-es2021 only) +class C extends B { + static _ = super.w(); +} + +//// [namespaceImportInContainingScopeStaticBlock.ts] +export {}; +declare class B { static w(): number; } +import * as Reflect from "./external"; // collision (es2015-es2021 only) +class C extends B { + static { super.w(); } +} + +//// [namedImportInContainingScopeStaticField.ts] +export {}; +declare class B { static w(): number; } +import { Reflect } from "./external"; // collision (es2015-es2021 only) +class C extends B { + static _ = super.w(); +} + +//// [namedImportInContainingScopeStaticBlock.ts] +export {}; +declare class B { static w(): number; } +import { Reflect } from "./external"; // collision (es2015-es2021 only) +class C extends B { + static { super.w(); } +} + +//// [namedImportOfInterfaceInContainingScopeStaticField.ts] +export {}; +declare class B { static w(): number; } +import { Foo as Reflect } from "./external"; // collision (es2015-es2021 only, not a type-only import) +class C extends B { + static _ = super.w(); +} + +//// [namedImportOfInterfaceInContainingScopeStaticBlock.ts] +export {}; +declare class B { static w(): number; } +import { Foo as Reflect } from "./external"; // collision (es2015-es2021 only, not a type-only import) +class C extends B { + static { super.w(); } +} + +//// [namedImportOfUninstantiatedNamespaceInContainingScopeStaticField.ts] +export {}; +declare class B { static w(): number; } +import { Bar as Reflect } from "./external"; // collision (es2015-es2021 only, not a type-only import) +class C extends B { + static _ = super.w(); +} + +//// [namedImportOfUninstantiatedNamespaceInContainingScopeStaticBlock.ts] +export {}; +declare class B { static w(): number; } +import { Bar as Reflect } from "./external"; // collision (es2015-es2021 only, not a type-only import) +class C extends B { + static { super.w(); } +} + +//// [namedImportOfConstEnumInContainingScopeStaticField.ts] +export {}; +declare class B { static w(): number; } +import { Baz as Reflect } from "./external"; // collision (es2015-es2021 only) +class C extends B { + static _ = super.w(); +} + +//// [namedImportOfConstEnumInContainingScopeStaticBlock.ts] +export {}; +declare class B { static w(): number; } +import { Baz as Reflect } from "./external"; // collision (es2015-es2021 only) +class C extends B { + static { super.w(); } +} + +//// [typeOnlyNamedImportInContainingScopeStaticField.ts] +export {}; +declare class B { static w(): number; } +import type { Reflect } from "./external"; // no collision +class C extends B { + static _ = super.w(); +} + +//// [typeOnlyNamedImportInContainingScopeStaticBlock.ts] +export {}; +declare class B { static w(): number; } +import type { Reflect } from "./external"; // no collision +class C extends B { + static { super.w(); } +} + +//// [defaultImportInContainingScopeStaticField.ts] +export {}; +declare class B { static w(): number; } +import Reflect from "./external"; // collision (es2015-es2021 only) +class C extends B { + static _ = super.w(); +} + +//// [defaultImportInContainingScopeStaticBlock.ts] +export {}; +declare class B { static w(): number; } +import Reflect from "./external"; // collision (es2015-es2021 only) +class C extends B { + static { super.w(); } +} + +//// [typeOnlyDefaultImportInContainingScopeStaticField.ts] +export {}; +declare class B { static w(): number; } +import type Reflect from "./external"; // no collision +class C extends B { + static _ = super.w(); +} + +//// [typeOnlyDefaultImportInContainingScopeStaticBlock.ts] +export {}; +declare class B { static w(): number; } +import type Reflect from "./external"; // no collision +class C extends B { + static { super.w(); } +} + +//// [typeInContainingScopeStaticField.ts] +export {}; +declare class B { static w(): number; } +type Reflect = unknown; // no collision +class C extends B { + static _ = super.w(); +} + +//// [typeInContainingScopeStaticBlock.ts] +export {}; +declare class B { static w(): number; } +type Reflect = unknown; // no collision +class C extends B { + static { super.w(); } +} + +//// [interfaceInContainingScopeStaticField.ts] +export {}; +declare class B { static w(): number; } +interface Reflect {}; // no collision +class C extends B { + static _ = super.w(); +} + +//// [interfaceInContainingScopeStaticBlock.ts] +export {}; +declare class B { static w(): number; } +interface Reflect {}; // no collision +class C extends B { + static { super.w(); } +} + +//// [uninstantiatedNamespaceInContainingScopeStaticField.ts] +export {}; +declare class B { static w(): number; } +declare namespace Reflect { type _ = unknown; }; // no collision +class C extends B { + static _ = super.w(); +} + +//// [uninstantiatedNamespaceInContainingScopeStaticBlock.ts] +export {}; +declare class B { static w(): number; } +declare namespace Reflect { type _ = unknown; }; // no collision +class C extends B { + static { super.w(); } +} + +//// [classExprInContainingScopeStaticField.ts] +export {}; +declare class B { static w(): number; } +(class Reflect {}); // no collision +class C extends B { + static _ = super.w(); +} + +//// [classExprInContainingScopeStaticBlock.ts] +export {}; +declare class B { static w(): number; } +(class Reflect {}); // no collision +class C extends B { + static { super.w(); } +} + +//// [inContainingClassExprStaticField.ts] +export {}; +declare class B { static w(): number; } +(class Reflect { // collision (es2015-es2021 only) + static { + class C extends B { + static _ = super.w(); + } + } +}); + +//// [inContainingClassExprStaticBlock.ts] +export {}; +declare class B { static w(): number; } +(class Reflect { // collision (es2015-es2021 only) + static { + class C extends B { + static { super.w(); } + } + } +}); + +//// [funcExprInContainingScopeStaticField.ts] +export {}; +declare class B { static w(): number; } +(function Reflect() {}); // no collision +class C extends B { + static _ = super.w(); +} + +//// [funcExprInContainingScopeStaticBlock.ts] +export {}; +declare class B { static w(): number; } +(function Reflect() {}); // no collision +class C extends B { + static { super.w(); } +} + +//// [inContainingFuncExprStaticField.ts] +export {}; +declare class B { static w(): number; } +(function Reflect() { // collision (es2015-es2021 only) + class C extends B { + static _ = super.w(); + } +}); + +//// [inContainingFuncExprStaticBlock.ts] +export {}; +declare class B { static w(): number; } +(function Reflect() { // collision (es2015-es2021 only) + class C extends B { + static { super.w(); } + } +}); + + +//// [external.js] +export class Reflect { +} +export default class { +} +; +//// [locals.js] +class C extends B { + static _ = [ + (() => { + var Reflect; // collision (es2015-es2021 only) + super.w(); + })(), + (() => { + var { Reflect } = { Reflect: null }; // collision (es2015-es2021 only) + super.w(); + })(), + (() => { + var [Reflect] = [null]; // collision (es2015-es2021 only) + super.w(); + })(), + (() => { + class Reflect { + } // collision (es2015-es2021 only) + super.w(); + })(), + (() => { + function Reflect() { } // collision (es2015-es2021 only) + super.w(); + })(), + (() => { + let Reflect; + (function (Reflect) { + })(Reflect || (Reflect = {})); // collision (es2015-es2021 only) + super.w(); + })(), + (() => { + super.w(); + })(), + (() => { + super.w(); + })(), + (() => { + ; // no collision + super.w(); + })(), + (() => { + (class Reflect { + }); // no collision + super.w(); + })(), + (() => { + (function Reflect() { }); // no collision + super.w(); + })(), + ]; + static { + var { Reflect } = { Reflect: null }; // collision (es2015-es2021 only) + super.w(); + } + static { + var [Reflect] = [null]; // collision (es2015-es2021 only) + super.w(); + } + static { + var Reflect; // collision (es2015-es2021 only) + super.w(); + } + static { + class Reflect { + } // collision (es2015-es2021 only) + super.w(); + } + static { + function Reflect() { } // collision (es2015-es2021 only) + super.w(); + } + static { + let Reflect; + (function (Reflect) { + })(Reflect || (Reflect = {})); // collision (es2015-es2021 only) + super.w(); + } + static { + super.w(); + } + static { + super.w(); + } + static { + super.w(); + } + static { + (class Reflect { + }); // no collision + super.w(); + } + static { + (function Reflect() { }); // no collision + super.w(); + } +} +export {}; +//// [varInContainingScopeStaticField1.js] +var Reflect = null; // collision (es2015-es2021 only) +class C extends B { + static _ = super.w(); +} +export {}; +//// [varInContainingScopeStaticField2.js] +var { Reflect } = { Reflect: null }; // collision (es2015-es2021 only) +class C extends B { + static _ = super.w(); +} +export {}; +//// [varInContainingScopeStaticField3.js] +var [Reflect] = [null]; // collision (es2015-es2021 only) +class C extends B { + static _ = super.w(); +} +export {}; +//// [varInContainingScopeStaticBlock1.js] +var Reflect = null; // collision (es2015-es2021 only) +class C extends B { + static { super.w(); } +} +export {}; +//// [varInContainingScopeStaticBlock2.js] +var { Reflect } = { Reflect: null }; // collision (es2015-es2021 only) +class C extends B { + static { super.w(); } +} +export {}; +//// [varInContainingScopeStaticBlock3.js] +var [Reflect] = [null]; // collision (es2015-es2021 only) +class C extends B { + static { super.w(); } +} +export {}; +//// [classDeclInContainingScopeStaticField.js] +class Reflect { +} // collision (es2015-es2021 only) +class C extends B { + static _ = super.w(); +} +export {}; +//// [classDeclInContainingScopeStaticBlock.js] +class Reflect { +} // collision (es2015-es2021 only) +class C extends B { + static { super.w(); } +} +export {}; +//// [funcDeclInContainingScopeStaticField.js] +function Reflect() { } // collision (es2015-es2021 only) +class C extends B { + static _ = super.w(); +} +export {}; +//// [funcDeclInContainingScopeStaticBlock.js] +function Reflect() { } // collision (es2015-es2021 only) +class C extends B { + static { super.w(); } +} +export {}; +//// [valueNamespaceInContainingScopeStaticField.js] +class C extends B { + static _ = super.w(); +} +export {}; +//// [valueNamespaceInContainingScopeStaticBlock.js] +class C extends B { + static { super.w(); } +} +export {}; +//// [enumInContainingScopeStaticField.js] +var Reflect; +(function (Reflect) { +})(Reflect || (Reflect = {})); // collision (es2015-es2021 only) +class C extends B { + static _ = super.w(); +} +export {}; +//// [enumInContainingScopeStaticBlock.js] +var Reflect; +(function (Reflect) { +})(Reflect || (Reflect = {})); // collision (es2015-es2021 only) +class C extends B { + static { super.w(); } +} +export {}; +//// [constEnumInContainingScopeStaticField.js] +class C extends B { + static _ = super.w(); +} +export {}; +//// [constEnumInContainingScopeStaticBlock.js] +class C extends B { + static { super.w(); } +} +export {}; +//// [namespaceImportInContainingScopeStaticField.js] +class C extends B { + static _ = super.w(); +} +export {}; +//// [namespaceImportInContainingScopeStaticBlock.js] +class C extends B { + static { super.w(); } +} +export {}; +//// [namedImportInContainingScopeStaticField.js] +class C extends B { + static _ = super.w(); +} +export {}; +//// [namedImportInContainingScopeStaticBlock.js] +class C extends B { + static { super.w(); } +} +export {}; +//// [namedImportOfInterfaceInContainingScopeStaticField.js] +class C extends B { + static _ = super.w(); +} +export {}; +//// [namedImportOfInterfaceInContainingScopeStaticBlock.js] +class C extends B { + static { super.w(); } +} +export {}; +//// [namedImportOfUninstantiatedNamespaceInContainingScopeStaticField.js] +class C extends B { + static _ = super.w(); +} +export {}; +//// [namedImportOfUninstantiatedNamespaceInContainingScopeStaticBlock.js] +class C extends B { + static { super.w(); } +} +export {}; +//// [namedImportOfConstEnumInContainingScopeStaticField.js] +class C extends B { + static _ = super.w(); +} +export {}; +//// [namedImportOfConstEnumInContainingScopeStaticBlock.js] +class C extends B { + static { super.w(); } +} +export {}; +//// [typeOnlyNamedImportInContainingScopeStaticField.js] +class C extends B { + static _ = super.w(); +} +export {}; +//// [typeOnlyNamedImportInContainingScopeStaticBlock.js] +class C extends B { + static { super.w(); } +} +export {}; +//// [defaultImportInContainingScopeStaticField.js] +class C extends B { + static _ = super.w(); +} +export {}; +//// [defaultImportInContainingScopeStaticBlock.js] +class C extends B { + static { super.w(); } +} +export {}; +//// [typeOnlyDefaultImportInContainingScopeStaticField.js] +class C extends B { + static _ = super.w(); +} +export {}; +//// [typeOnlyDefaultImportInContainingScopeStaticBlock.js] +class C extends B { + static { super.w(); } +} +export {}; +//// [typeInContainingScopeStaticField.js] +class C extends B { + static _ = super.w(); +} +export {}; +//// [typeInContainingScopeStaticBlock.js] +class C extends B { + static { super.w(); } +} +export {}; +//// [interfaceInContainingScopeStaticField.js] +; // no collision +class C extends B { + static _ = super.w(); +} +export {}; +//// [interfaceInContainingScopeStaticBlock.js] +; // no collision +class C extends B { + static { super.w(); } +} +export {}; +//// [uninstantiatedNamespaceInContainingScopeStaticField.js] +; // no collision +class C extends B { + static _ = super.w(); +} +export {}; +//// [uninstantiatedNamespaceInContainingScopeStaticBlock.js] +; // no collision +class C extends B { + static { super.w(); } +} +export {}; +//// [classExprInContainingScopeStaticField.js] +(class Reflect { +}); // no collision +class C extends B { + static _ = super.w(); +} +export {}; +//// [classExprInContainingScopeStaticBlock.js] +(class Reflect { +}); // no collision +class C extends B { + static { super.w(); } +} +export {}; +//// [inContainingClassExprStaticField.js] +(class Reflect { + static { + class C extends B { + static _ = super.w(); + } + } +}); +export {}; +//// [inContainingClassExprStaticBlock.js] +(class Reflect { + static { + class C extends B { + static { super.w(); } + } + } +}); +export {}; +//// [funcExprInContainingScopeStaticField.js] +(function Reflect() { }); // no collision +class C extends B { + static _ = super.w(); +} +export {}; +//// [funcExprInContainingScopeStaticBlock.js] +(function Reflect() { }); // no collision +class C extends B { + static { super.w(); } +} +export {}; +//// [inContainingFuncExprStaticField.js] +(function Reflect() { + class C extends B { + static _ = super.w(); + } +}); +export {}; +//// [inContainingFuncExprStaticBlock.js] +(function Reflect() { + class C extends B { + static { super.w(); } + } +}); +export {}; diff --git a/tests/baselines/reference/symbolLinkDeclarationEmitModuleNames.js b/tests/baselines/reference/symbolLinkDeclarationEmitModuleNames.js index b26402042fc0c..be495125ee6e3 100644 --- a/tests/baselines/reference/symbolLinkDeclarationEmitModuleNames.js +++ b/tests/baselines/reference/symbolLinkDeclarationEmitModuleNames.js @@ -44,7 +44,11 @@ exports.BindingKey = BindingKey; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/symbolProperty61.js b/tests/baselines/reference/symbolProperty61.js new file mode 100644 index 0000000000000..e571eb4649293 --- /dev/null +++ b/tests/baselines/reference/symbolProperty61.js @@ -0,0 +1,65 @@ +//// [symbolProperty61.ts] +declare global { + interface SymbolConstructor { + readonly obs: symbol + } +} + +const observable: typeof Symbol.obs = Symbol.obs + +export class MyObservable { + constructor(private _val: T) {} + + subscribe(next: (val: T) => void) { + next(this._val) + } + + [observable]() { + return this + } +} + +type InteropObservable = { + [Symbol.obs]: () => { subscribe(next: (val: T) => void): void } +} + +function from(obs: InteropObservable) { + return obs[Symbol.obs]() +} + +from(new MyObservable(42)) + + +//// [symbolProperty61.js] +const observable = Symbol.obs; +export class MyObservable { + constructor(_val) { + this._val = _val; + } + subscribe(next) { + next(this._val); + } + [observable]() { + return this; + } +} +function from(obs) { + return obs[Symbol.obs](); +} +from(new MyObservable(42)); + + +//// [symbolProperty61.d.ts] +declare global { + interface SymbolConstructor { + readonly obs: symbol; + } +} +declare const observable: typeof Symbol.obs; +export declare class MyObservable { + private _val; + constructor(_val: T); + subscribe(next: (val: T) => void): void; + [observable](): this; +} +export {}; diff --git a/tests/baselines/reference/symbolProperty61.symbols b/tests/baselines/reference/symbolProperty61.symbols new file mode 100644 index 0000000000000..a4d45d7c1b9ee --- /dev/null +++ b/tests/baselines/reference/symbolProperty61.symbols @@ -0,0 +1,84 @@ +=== tests/cases/conformance/es6/Symbols/symbolProperty61.ts === +declare global { +>global : Symbol(global, Decl(symbolProperty61.ts, 0, 0)) + + interface SymbolConstructor { +>SymbolConstructor : Symbol(SymbolConstructor, Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(symbolProperty61.ts, 0, 16)) + + readonly obs: symbol +>obs : Symbol(SymbolConstructor.obs, Decl(symbolProperty61.ts, 1, 31)) + } +} + +const observable: typeof Symbol.obs = Symbol.obs +>observable : Symbol(observable, Decl(symbolProperty61.ts, 6, 5)) +>Symbol.obs : Symbol(SymbolConstructor.obs, Decl(symbolProperty61.ts, 1, 31)) +>Symbol : Symbol(Symbol, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.symbol.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) +>obs : Symbol(SymbolConstructor.obs, Decl(symbolProperty61.ts, 1, 31)) +>Symbol.obs : Symbol(SymbolConstructor.obs, Decl(symbolProperty61.ts, 1, 31)) +>Symbol : Symbol(Symbol, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.symbol.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) +>obs : Symbol(SymbolConstructor.obs, Decl(symbolProperty61.ts, 1, 31)) + +export class MyObservable { +>MyObservable : Symbol(MyObservable, Decl(symbolProperty61.ts, 6, 48)) +>T : Symbol(T, Decl(symbolProperty61.ts, 8, 26)) + + constructor(private _val: T) {} +>_val : Symbol(MyObservable._val, Decl(symbolProperty61.ts, 9, 16)) +>T : Symbol(T, Decl(symbolProperty61.ts, 8, 26)) + + subscribe(next: (val: T) => void) { +>subscribe : Symbol(MyObservable.subscribe, Decl(symbolProperty61.ts, 9, 35)) +>next : Symbol(next, Decl(symbolProperty61.ts, 11, 14)) +>val : Symbol(val, Decl(symbolProperty61.ts, 11, 21)) +>T : Symbol(T, Decl(symbolProperty61.ts, 8, 26)) + + next(this._val) +>next : Symbol(next, Decl(symbolProperty61.ts, 11, 14)) +>this._val : Symbol(MyObservable._val, Decl(symbolProperty61.ts, 9, 16)) +>this : Symbol(MyObservable, Decl(symbolProperty61.ts, 6, 48)) +>_val : Symbol(MyObservable._val, Decl(symbolProperty61.ts, 9, 16)) + } + + [observable]() { +>[observable] : Symbol(MyObservable[observable], Decl(symbolProperty61.ts, 13, 5)) +>observable : Symbol(observable, Decl(symbolProperty61.ts, 6, 5)) + + return this +>this : Symbol(MyObservable, Decl(symbolProperty61.ts, 6, 48)) + } +} + +type InteropObservable = { +>InteropObservable : Symbol(InteropObservable, Decl(symbolProperty61.ts, 18, 1)) +>T : Symbol(T, Decl(symbolProperty61.ts, 20, 23)) + + [Symbol.obs]: () => { subscribe(next: (val: T) => void): void } +>[Symbol.obs] : Symbol([Symbol.obs], Decl(symbolProperty61.ts, 20, 29)) +>Symbol.obs : Symbol(SymbolConstructor.obs, Decl(symbolProperty61.ts, 1, 31)) +>Symbol : Symbol(Symbol, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.symbol.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) +>obs : Symbol(SymbolConstructor.obs, Decl(symbolProperty61.ts, 1, 31)) +>subscribe : Symbol(subscribe, Decl(symbolProperty61.ts, 21, 25)) +>next : Symbol(next, Decl(symbolProperty61.ts, 21, 36)) +>val : Symbol(val, Decl(symbolProperty61.ts, 21, 43)) +>T : Symbol(T, Decl(symbolProperty61.ts, 20, 23)) +} + +function from(obs: InteropObservable) { +>from : Symbol(from, Decl(symbolProperty61.ts, 22, 1)) +>T : Symbol(T, Decl(symbolProperty61.ts, 24, 14)) +>obs : Symbol(obs, Decl(symbolProperty61.ts, 24, 17)) +>InteropObservable : Symbol(InteropObservable, Decl(symbolProperty61.ts, 18, 1)) +>T : Symbol(T, Decl(symbolProperty61.ts, 24, 14)) + + return obs[Symbol.obs]() +>obs : Symbol(obs, Decl(symbolProperty61.ts, 24, 17)) +>Symbol.obs : Symbol(SymbolConstructor.obs, Decl(symbolProperty61.ts, 1, 31)) +>Symbol : Symbol(Symbol, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.symbol.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) +>obs : Symbol(SymbolConstructor.obs, Decl(symbolProperty61.ts, 1, 31)) +} + +from(new MyObservable(42)) +>from : Symbol(from, Decl(symbolProperty61.ts, 22, 1)) +>MyObservable : Symbol(MyObservable, Decl(symbolProperty61.ts, 6, 48)) + diff --git a/tests/baselines/reference/symbolProperty61.types b/tests/baselines/reference/symbolProperty61.types new file mode 100644 index 0000000000000..f1b2f8c9c07a6 --- /dev/null +++ b/tests/baselines/reference/symbolProperty61.types @@ -0,0 +1,80 @@ +=== tests/cases/conformance/es6/Symbols/symbolProperty61.ts === +declare global { +>global : any + + interface SymbolConstructor { + readonly obs: symbol +>obs : unique symbol + } +} + +const observable: typeof Symbol.obs = Symbol.obs +>observable : unique symbol +>Symbol.obs : unique symbol +>Symbol : SymbolConstructor +>obs : unique symbol +>Symbol.obs : unique symbol +>Symbol : SymbolConstructor +>obs : unique symbol + +export class MyObservable { +>MyObservable : MyObservable + + constructor(private _val: T) {} +>_val : T + + subscribe(next: (val: T) => void) { +>subscribe : (next: (val: T) => void) => void +>next : (val: T) => void +>val : T + + next(this._val) +>next(this._val) : void +>next : (val: T) => void +>this._val : T +>this : this +>_val : T + } + + [observable]() { +>[observable] : () => this +>observable : unique symbol + + return this +>this : this + } +} + +type InteropObservable = { +>InteropObservable : InteropObservable + + [Symbol.obs]: () => { subscribe(next: (val: T) => void): void } +>[Symbol.obs] : () => { subscribe(next: (val: T) => void): void; } +>Symbol.obs : unique symbol +>Symbol : SymbolConstructor +>obs : unique symbol +>subscribe : (next: (val: T) => void) => void +>next : (val: T) => void +>val : T +} + +function from(obs: InteropObservable) { +>from : (obs: InteropObservable) => { subscribe(next: (val: T) => void): void; } +>obs : InteropObservable + + return obs[Symbol.obs]() +>obs[Symbol.obs]() : { subscribe(next: (val: T) => void): void; } +>obs[Symbol.obs] : () => { subscribe(next: (val: T) => void): void; } +>obs : InteropObservable +>Symbol.obs : unique symbol +>Symbol : SymbolConstructor +>obs : unique symbol +} + +from(new MyObservable(42)) +>from(new MyObservable(42)) : { subscribe(next: (val: number) => void): void; } +>from : (obs: InteropObservable) => { subscribe(next: (val: T) => void): void; } +>new MyObservable(42) : MyObservable +>MyObservable : typeof MyObservable +>42 : 42 + diff --git a/tests/baselines/reference/systemModuleConstEnums.js b/tests/baselines/reference/systemModuleConstEnums.js index d99d3b22d4481..5a84476d9e3b2 100644 --- a/tests/baselines/reference/systemModuleConstEnums.js +++ b/tests/baselines/reference/systemModuleConstEnums.js @@ -16,8 +16,8 @@ System.register([], function (exports_1, context_1) { "use strict"; var __moduleName = context_1 && context_1.id; function foo() { - use(0 /* X */); - use(0 /* X */); + use(0 /* TopLevelConstEnum.X */); + use(0 /* M.NonTopLevelConstEnum.X */); } exports_1("foo", foo); return { diff --git a/tests/baselines/reference/taggedTemplateStringsWithOverloadResolution1.errors.txt b/tests/baselines/reference/taggedTemplateStringsWithOverloadResolution1.errors.txt index a9e6e98b25080..e275dae6dfd5f 100644 --- a/tests/baselines/reference/taggedTemplateStringsWithOverloadResolution1.errors.txt +++ b/tests/baselines/reference/taggedTemplateStringsWithOverloadResolution1.errors.txt @@ -38,7 +38,7 @@ tests/cases/conformance/es6/templates/taggedTemplateStringsWithOverloadResolutio ~~ !!! error TS2345: Argument of type 'undefined[]' is not assignable to parameter of type 'TemplateStringsArray'. !!! error TS2345: Property 'raw' is missing in type 'undefined[]' but required in type 'TemplateStringsArray'. -!!! related TS2728 /.ts/lib.es5.d.ts:608:14: 'raw' is declared here. +!!! related TS2728 /.ts/lib.es5.d.ts:614:14: 'raw' is declared here. !!! related TS2793 tests/cases/conformance/es6/templates/taggedTemplateStringsWithOverloadResolution1.ts:5:10: The call would have succeeded against this implementation, but implementation signatures of overloads are not externally visible. var b = foo([], 1); // string ~~ diff --git a/tests/baselines/reference/taggedTemplateStringsWithOverloadResolution1_ES6.errors.txt b/tests/baselines/reference/taggedTemplateStringsWithOverloadResolution1_ES6.errors.txt index 6997efce9afd2..5e9498cede1eb 100644 --- a/tests/baselines/reference/taggedTemplateStringsWithOverloadResolution1_ES6.errors.txt +++ b/tests/baselines/reference/taggedTemplateStringsWithOverloadResolution1_ES6.errors.txt @@ -38,7 +38,7 @@ tests/cases/conformance/es6/templates/taggedTemplateStringsWithOverloadResolutio ~~ !!! error TS2345: Argument of type 'undefined[]' is not assignable to parameter of type 'TemplateStringsArray'. !!! error TS2345: Property 'raw' is missing in type 'undefined[]' but required in type 'TemplateStringsArray'. -!!! related TS2728 /.ts/lib.es5.d.ts:608:14: 'raw' is declared here. +!!! related TS2728 /.ts/lib.es5.d.ts:614:14: 'raw' is declared here. !!! related TS2793 tests/cases/conformance/es6/templates/taggedTemplateStringsWithOverloadResolution1_ES6.ts:5:10: The call would have succeeded against this implementation, but implementation signatures of overloads are not externally visible. var b = foo([], 1); // string ~~ diff --git a/tests/baselines/reference/taggedTemplateWithoutDeclaredHelper.js b/tests/baselines/reference/taggedTemplateWithoutDeclaredHelper.js index 049e88373248c..94bb79802e5be 100644 --- a/tests/baselines/reference/taggedTemplateWithoutDeclaredHelper.js +++ b/tests/baselines/reference/taggedTemplateWithoutDeclaredHelper.js @@ -19,5 +19,5 @@ var tslib_1 = require("tslib"); function id(x) { return x; } -exports.result = id(templateObject_1 || (templateObject_1 = (0, tslib_1.__makeTemplateObject)(["hello world"], ["hello world"]))); +exports.result = id(templateObject_1 || (templateObject_1 = tslib_1.__makeTemplateObject(["hello world"], ["hello world"]))); var templateObject_1; diff --git a/tests/baselines/reference/taggedTemplatesWithTypeArguments1.symbols b/tests/baselines/reference/taggedTemplatesWithTypeArguments1.symbols index 4cd6dce23e368..f37166423f17c 100644 --- a/tests/baselines/reference/taggedTemplatesWithTypeArguments1.symbols +++ b/tests/baselines/reference/taggedTemplatesWithTypeArguments1.symbols @@ -5,7 +5,7 @@ declare function f(strs: TemplateStringsArray, ...callbacks: Array<(x: T) => >strs : Symbol(strs, Decl(taggedTemplatesWithTypeArguments1.ts, 0, 22)) >TemplateStringsArray : Symbol(TemplateStringsArray, Decl(lib.es5.d.ts, --, --)) >callbacks : Symbol(callbacks, Decl(taggedTemplatesWithTypeArguments1.ts, 0, 49)) ->Array : Symbol(Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --) ... and 2 more) +>Array : Symbol(Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --) ... and 3 more) >x : Symbol(x, Decl(taggedTemplatesWithTypeArguments1.ts, 0, 71)) >T : Symbol(T, Decl(taggedTemplatesWithTypeArguments1.ts, 0, 19)) diff --git a/tests/baselines/reference/taggedTemplatesWithTypeArguments2.errors.txt b/tests/baselines/reference/taggedTemplatesWithTypeArguments2.errors.txt index 1ee7243beaa47..d71231547302d 100644 --- a/tests/baselines/reference/taggedTemplatesWithTypeArguments2.errors.txt +++ b/tests/baselines/reference/taggedTemplatesWithTypeArguments2.errors.txt @@ -1,14 +1,13 @@ tests/cases/conformance/es6/templates/taggedTemplatesWithTypeArguments2.ts(13,30): error TS2345: Argument of type 'string' is not assignable to parameter of type 'number'. -tests/cases/conformance/es6/templates/taggedTemplatesWithTypeArguments2.ts(15,11): error TS2347: Untyped function calls may not accept type arguments. -tests/cases/conformance/es6/templates/taggedTemplatesWithTypeArguments2.ts(17,11): error TS2347: Untyped function calls may not accept type arguments. tests/cases/conformance/es6/templates/taggedTemplatesWithTypeArguments2.ts(17,30): error TS2345: Argument of type 'string' is not assignable to parameter of type 'number'. +tests/cases/conformance/es6/templates/taggedTemplatesWithTypeArguments2.ts(17,59): error TS2345: Argument of type 'number' is not assignable to parameter of type 'string'. tests/cases/conformance/es6/templates/taggedTemplatesWithTypeArguments2.ts(35,5): error TS2377: Constructors for derived classes must contain a 'super' call. tests/cases/conformance/es6/templates/taggedTemplatesWithTypeArguments2.ts(36,9): error TS17011: 'super' must be called before accessing a property of 'super' in the constructor of a derived class. tests/cases/conformance/es6/templates/taggedTemplatesWithTypeArguments2.ts(36,14): error TS2754: 'super' may not use type arguments. tests/cases/conformance/es6/templates/taggedTemplatesWithTypeArguments2.ts(36,34): error TS1034: 'super' must be followed by an argument list or member access. -==== tests/cases/conformance/es6/templates/taggedTemplatesWithTypeArguments2.ts (8 errors) ==== +==== tests/cases/conformance/es6/templates/taggedTemplatesWithTypeArguments2.ts (7 errors) ==== export interface SomethingTaggable { (t: TemplateStringsArray, ...args: T[]): SomethingNewable; } @@ -26,14 +25,12 @@ tests/cases/conformance/es6/templates/taggedTemplatesWithTypeArguments2.ts(36,34 !!! error TS2345: Argument of type 'string' is not assignable to parameter of type 'number'. const c = new tag `${100} ${200}`("hello", "world"); - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2347: Untyped function calls may not accept type arguments. const d = new tag `${"hello"} ${"world"}`(100, 200); - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2347: Untyped function calls may not accept type arguments. ~~~~~~~ !!! error TS2345: Argument of type 'string' is not assignable to parameter of type 'number'. + ~~~ +!!! error TS2345: Argument of type 'number' is not assignable to parameter of type 'string'. /** * Testing ASI. This should never parse as diff --git a/tests/baselines/reference/taggedTemplatesWithTypeArguments2.js b/tests/baselines/reference/taggedTemplatesWithTypeArguments2.js index 6ab9b7afa1d9f..7e055f817b2ba 100644 --- a/tests/baselines/reference/taggedTemplatesWithTypeArguments2.js +++ b/tests/baselines/reference/taggedTemplatesWithTypeArguments2.js @@ -41,8 +41,8 @@ class SomeDerived extends SomeBase { //// [taggedTemplatesWithTypeArguments2.js] const a = new tag `${100} ${200}`("hello", "world"); const b = new tag `${"hello"} ${"world"}`(100, 200); -const c = (new tag `${100} ${200}`)("hello", "world"); -const d = (new tag `${"hello"} ${"world"}`)(100, 200); +const c = new tag `${100} ${200}`("hello", "world"); +const d = new tag `${"hello"} ${"world"}`(100, 200); /** * Testing ASI. This should never parse as * diff --git a/tests/baselines/reference/taggedTemplatesWithTypeArguments2.types b/tests/baselines/reference/taggedTemplatesWithTypeArguments2.types index c78719846cf72..036dc7e6de167 100644 --- a/tests/baselines/reference/taggedTemplatesWithTypeArguments2.types +++ b/tests/baselines/reference/taggedTemplatesWithTypeArguments2.types @@ -38,7 +38,6 @@ const b = new tag `${"hello"} ${"world"}`(100, 200); const c = new tag `${100} ${200}`("hello", "world"); >c : any >new tag `${100} ${200}`("hello", "world") : any ->new tag `${100} ${200}` : any >tag `${100} ${200}` : SomethingNewable >tag : SomethingTaggable >`${100} ${200}` : string @@ -50,7 +49,6 @@ const c = new tag `${100} ${200}`("hello", "world"); const d = new tag `${"hello"} ${"world"}`(100, 200); >d : any >new tag `${"hello"} ${"world"}`(100, 200) : any ->new tag `${"hello"} ${"world"}` : any >tag `${"hello"} ${"world"}` : SomethingNewable >tag : SomethingTaggable >`${"hello"} ${"world"}` : string diff --git a/tests/baselines/reference/templateLiteralIntersection.js b/tests/baselines/reference/templateLiteralIntersection.js new file mode 100644 index 0000000000000..24a5a684a2e0f --- /dev/null +++ b/tests/baselines/reference/templateLiteralIntersection.js @@ -0,0 +1,33 @@ +//// [templateLiteralIntersection.ts] +// https://github.com/microsoft/TypeScript/issues/48034 +const a = 'a' + +type A = typeof a +type MixA = A & {foo: string} + +type OriginA1 = `${A}` +type OriginA2 = `${MixA}` + +type B = `${typeof a}` +type MixB = B & { foo: string } + +type OriginB1 = `${B}` +type OriginB2 = `${MixB}` + +type MixC = { foo: string } & A + +type OriginC = `${MixC}` + +type MixD = + `${T & { foo: string }}` +type OriginD = `${MixD & { foo: string }}`; + +type E = `${A & {}}`; +type MixE = E & {} +type OriginE = `${MixE}` + +type OriginF = `${A}foo${A}`; + +//// [templateLiteralIntersection.js] +// https://github.com/microsoft/TypeScript/issues/48034 +var a = 'a'; diff --git a/tests/baselines/reference/templateLiteralIntersection.symbols b/tests/baselines/reference/templateLiteralIntersection.symbols new file mode 100644 index 0000000000000..031b081d203db --- /dev/null +++ b/tests/baselines/reference/templateLiteralIntersection.symbols @@ -0,0 +1,80 @@ +=== tests/cases/compiler/templateLiteralIntersection.ts === +// https://github.com/microsoft/TypeScript/issues/48034 +const a = 'a' +>a : Symbol(a, Decl(templateLiteralIntersection.ts, 1, 5)) + +type A = typeof a +>A : Symbol(A, Decl(templateLiteralIntersection.ts, 1, 13)) +>a : Symbol(a, Decl(templateLiteralIntersection.ts, 1, 5)) + +type MixA = A & {foo: string} +>MixA : Symbol(MixA, Decl(templateLiteralIntersection.ts, 3, 17)) +>A : Symbol(A, Decl(templateLiteralIntersection.ts, 1, 13)) +>foo : Symbol(foo, Decl(templateLiteralIntersection.ts, 4, 17)) + +type OriginA1 = `${A}` +>OriginA1 : Symbol(OriginA1, Decl(templateLiteralIntersection.ts, 4, 29)) +>A : Symbol(A, Decl(templateLiteralIntersection.ts, 1, 13)) + +type OriginA2 = `${MixA}` +>OriginA2 : Symbol(OriginA2, Decl(templateLiteralIntersection.ts, 6, 22)) +>MixA : Symbol(MixA, Decl(templateLiteralIntersection.ts, 3, 17)) + +type B = `${typeof a}` +>B : Symbol(B, Decl(templateLiteralIntersection.ts, 7, 25)) +>a : Symbol(a, Decl(templateLiteralIntersection.ts, 1, 5)) + +type MixB = B & { foo: string } +>MixB : Symbol(MixB, Decl(templateLiteralIntersection.ts, 9, 22)) +>B : Symbol(B, Decl(templateLiteralIntersection.ts, 7, 25)) +>foo : Symbol(foo, Decl(templateLiteralIntersection.ts, 10, 17)) + +type OriginB1 = `${B}` +>OriginB1 : Symbol(OriginB1, Decl(templateLiteralIntersection.ts, 10, 31)) +>B : Symbol(B, Decl(templateLiteralIntersection.ts, 7, 25)) + +type OriginB2 = `${MixB}` +>OriginB2 : Symbol(OriginB2, Decl(templateLiteralIntersection.ts, 12, 22)) +>MixB : Symbol(MixB, Decl(templateLiteralIntersection.ts, 9, 22)) + +type MixC = { foo: string } & A +>MixC : Symbol(MixC, Decl(templateLiteralIntersection.ts, 13, 25)) +>foo : Symbol(foo, Decl(templateLiteralIntersection.ts, 15, 13)) +>A : Symbol(A, Decl(templateLiteralIntersection.ts, 1, 13)) + +type OriginC = `${MixC}` +>OriginC : Symbol(OriginC, Decl(templateLiteralIntersection.ts, 15, 31)) +>MixC : Symbol(MixC, Decl(templateLiteralIntersection.ts, 13, 25)) + +type MixD = +>MixD : Symbol(MixD, Decl(templateLiteralIntersection.ts, 17, 24)) +>T : Symbol(T, Decl(templateLiteralIntersection.ts, 19, 10)) + + `${T & { foo: string }}` +>T : Symbol(T, Decl(templateLiteralIntersection.ts, 19, 10)) +>foo : Symbol(foo, Decl(templateLiteralIntersection.ts, 20, 12)) + +type OriginD = `${MixD & { foo: string }}`; +>OriginD : Symbol(OriginD, Decl(templateLiteralIntersection.ts, 20, 28)) +>MixD : Symbol(MixD, Decl(templateLiteralIntersection.ts, 17, 24)) +>A : Symbol(A, Decl(templateLiteralIntersection.ts, 1, 13)) +>foo : Symbol(foo, Decl(templateLiteralIntersection.ts, 21, 28)) +>foo : Symbol(foo, Decl(templateLiteralIntersection.ts, 21, 47)) + +type E = `${A & {}}`; +>E : Symbol(E, Decl(templateLiteralIntersection.ts, 21, 64)) +>A : Symbol(A, Decl(templateLiteralIntersection.ts, 1, 13)) + +type MixE = E & {} +>MixE : Symbol(MixE, Decl(templateLiteralIntersection.ts, 23, 21)) +>E : Symbol(E, Decl(templateLiteralIntersection.ts, 21, 64)) + +type OriginE = `${MixE}` +>OriginE : Symbol(OriginE, Decl(templateLiteralIntersection.ts, 24, 18)) +>MixE : Symbol(MixE, Decl(templateLiteralIntersection.ts, 23, 21)) + +type OriginF = `${A}foo${A}`; +>OriginF : Symbol(OriginF, Decl(templateLiteralIntersection.ts, 25, 24)) +>A : Symbol(A, Decl(templateLiteralIntersection.ts, 1, 13)) +>A : Symbol(A, Decl(templateLiteralIntersection.ts, 1, 13)) + diff --git a/tests/baselines/reference/templateLiteralIntersection.types b/tests/baselines/reference/templateLiteralIntersection.types new file mode 100644 index 0000000000000..d675ad0e0eb74 --- /dev/null +++ b/tests/baselines/reference/templateLiteralIntersection.types @@ -0,0 +1,64 @@ +=== tests/cases/compiler/templateLiteralIntersection.ts === +// https://github.com/microsoft/TypeScript/issues/48034 +const a = 'a' +>a : "a" +>'a' : "a" + +type A = typeof a +>A : "a" +>a : "a" + +type MixA = A & {foo: string} +>MixA : MixA +>foo : string + +type OriginA1 = `${A}` +>OriginA1 : "a" + +type OriginA2 = `${MixA}` +>OriginA2 : "a" + +type B = `${typeof a}` +>B : "a" +>a : "a" + +type MixB = B & { foo: string } +>MixB : MixB +>foo : string + +type OriginB1 = `${B}` +>OriginB1 : "a" + +type OriginB2 = `${MixB}` +>OriginB2 : "a" + +type MixC = { foo: string } & A +>MixC : MixC +>foo : string + +type OriginC = `${MixC}` +>OriginC : "a" + +type MixD = +>MixD : `${T & { foo: string; }}` + + `${T & { foo: string }}` +>foo : string + +type OriginD = `${MixD & { foo: string }}`; +>OriginD : "a" +>foo : string +>foo : string + +type E = `${A & {}}`; +>E : "a" + +type MixE = E & {} +>MixE : MixE + +type OriginE = `${MixE}` +>OriginE : "a" + +type OriginF = `${A}foo${A}`; +>OriginF : "afooa" + diff --git a/tests/baselines/reference/templateLiteralTypes1.errors.txt b/tests/baselines/reference/templateLiteralTypes1.errors.txt index dae7b7009fd2c..e586a1678eb65 100644 --- a/tests/baselines/reference/templateLiteralTypes1.errors.txt +++ b/tests/baselines/reference/templateLiteralTypes1.errors.txt @@ -6,9 +6,10 @@ tests/cases/conformance/types/literal/templateLiteralTypes1.ts(165,15): error TS tests/cases/conformance/types/literal/templateLiteralTypes1.ts(197,16): error TS2590: Expression produces a union type that is too complex to represent. tests/cases/conformance/types/literal/templateLiteralTypes1.ts(201,16): error TS2590: Expression produces a union type that is too complex to represent. tests/cases/conformance/types/literal/templateLiteralTypes1.ts(205,16): error TS2590: Expression produces a union type that is too complex to represent. +tests/cases/conformance/types/literal/templateLiteralTypes1.ts(251,7): error TS2590: Expression produces a union type that is too complex to represent. -==== tests/cases/conformance/types/literal/templateLiteralTypes1.ts (6 errors) ==== +==== tests/cases/conformance/types/literal/templateLiteralTypes1.ts (7 errors) ==== // Template types example from #12754 const createScopedActionType = (scope: S) => (type: T) => `${scope}/${type}` as `${S}/${T}`; @@ -259,4 +260,23 @@ tests/cases/conformance/types/literal/templateLiteralTypes1.ts(205,16): error TS } as const; let make = getProp2(obj2, 'cars.1.make'); // 'Trabant' + + // Repro from #46480 + + export type Spacing = + | `0` + | `${number}px` + | `${number}rem` + | `s${1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20}`; + + const spacing: Spacing = "s12" + + export type SpacingShorthand = + | `${Spacing} ${Spacing}` + | `${Spacing} ${Spacing} ${Spacing}` + | `${Spacing} ${Spacing} ${Spacing} ${Spacing}`; + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2590: Expression produces a union type that is too complex to represent. + + const test1: SpacingShorthand = "0 0 0"; \ No newline at end of file diff --git a/tests/baselines/reference/templateLiteralTypes1.js b/tests/baselines/reference/templateLiteralTypes1.js index b8f7d0f406667..d212909fd7d2b 100644 --- a/tests/baselines/reference/templateLiteralTypes1.js +++ b/tests/baselines/reference/templateLiteralTypes1.js @@ -235,11 +235,29 @@ const obj2 = { } as const; let make = getProp2(obj2, 'cars.1.make'); // 'Trabant' + +// Repro from #46480 + +export type Spacing = + | `0` + | `${number}px` + | `${number}rem` + | `s${1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20}`; + +const spacing: Spacing = "s12" + +export type SpacingShorthand = + | `${Spacing} ${Spacing}` + | `${Spacing} ${Spacing} ${Spacing}` + | `${Spacing} ${Spacing} ${Spacing} ${Spacing}`; + +const test1: SpacingShorthand = "0 0 0"; //// [templateLiteralTypes1.js] "use strict"; // Template types example from #12754 +exports.__esModule = true; var createScopedActionType = function (scope) { return function (type) { return "".concat(scope, "/").concat(type); }; }; var createActionInMyScope = createScopedActionType("MyScope"); // (type: T) => `MyScope/${T}` var MY_ACTION = createActionInMyScope("MY_ACTION"); // 'MyScope/MY_ACTION' @@ -274,243 +292,10 @@ var obj2 = { ] }; var make = getProp2(obj2, 'cars.1.make'); // 'Trabant' +var spacing = "s12"; +var test1 = "0 0 0"; //// [templateLiteralTypes1.d.ts] -declare const createScopedActionType: (scope: S) => (type: T) => `${S}/${T}`; -declare const createActionInMyScope: (type: T) => `MyScope/${T}`; -declare const MY_ACTION: "MyScope/MY_ACTION"; -declare type EventName = `${S}Changed`; -declare type EN1 = EventName<'Foo' | 'Bar' | 'Baz'>; -declare type Loc = `${'top' | 'middle' | 'bottom'}-${'left' | 'center' | 'right'}`; -declare type ToString = `${T}`; -declare type TS1 = ToString<'abc' | 42 | true | -1234n>; -declare type TL1 = `a${T}b${T}c`; -declare type TL2 = TL1<`x${U}y`>; -declare type TL3 = TL2<'o'>; -declare type Cases = `${Uppercase} ${Lowercase} ${Capitalize} ${Uncapitalize}`; -declare type TCA1 = Cases<'bar'>; -declare type TCA2 = Cases<'BAR'>; -declare function test(name: `get${Capitalize}`): void; -declare function fa1(x: T, y: { - [P in keyof T]: T[P]; -}, z: { - [P in keyof T & string as `p_${P}`]: T[P]; -}): void; -declare function fa2(x: { - [P in B as `p_${P}`]: T; -}, y: { - [Q in A as `p_${Q}`]: U; -}): void; -declare type Join = T extends [] ? '' : T extends [string | number | boolean | bigint] ? `${T[0]}` : T extends [string | number | boolean | bigint, ...infer U] ? `${T[0]}${D}${Join}` : string; -declare type TJ1 = Join<[1, 2, 3, 4], '.'>; -declare type TJ2 = Join<['foo', 'bar', 'baz'], '-'>; -declare type TJ3 = Join<[], '.'>; -declare type MatchPair = S extends `[${infer A},${infer B}]` ? [A, B] : unknown; -declare type T20 = MatchPair<'[1,2]'>; -declare type T21 = MatchPair<'[foo,bar]'>; -declare type T22 = MatchPair<' [1,2]'>; -declare type T23 = MatchPair<'[123]'>; -declare type T24 = MatchPair<'[1,2,3,4]'>; -declare type SnakeToCamelCase = S extends `${infer T}_${infer U}` ? `${Lowercase}${SnakeToPascalCase}` : S extends `${infer T}` ? `${Lowercase}` : SnakeToPascalCase; -declare type SnakeToPascalCase = string extends S ? string : S extends `${infer T}_${infer U}` ? `${Capitalize>}${SnakeToPascalCase}` : S extends `${infer T}` ? `${Capitalize>}` : never; -declare type RR0 = SnakeToPascalCase<'hello_world_foo'>; -declare type RR1 = SnakeToPascalCase<'FOO_BAR_BAZ'>; -declare type RR2 = SnakeToCamelCase<'hello_world_foo'>; -declare type RR3 = SnakeToCamelCase<'FOO_BAR_BAZ'>; -declare type FirstTwoAndRest = S extends `${infer A}${infer B}${infer R}` ? [`${A}${B}`, R] : unknown; -declare type T25 = FirstTwoAndRest<'abcde'>; -declare type T26 = FirstTwoAndRest<'ab'>; -declare type T27 = FirstTwoAndRest<'a'>; -declare type HexDigit = '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | 'A' | 'B' | 'C' | 'D' | 'E' | 'F' | 'a' | 'b' | 'c' | 'd' | 'e' | 'f'; -declare type HexColor = S extends `#${infer R1}${infer R2}${infer G1}${infer G2}${infer B1}${infer B2}` ? [ - R1, - R2, - G1, - G2, - B1, - B2 -] extends [HexDigit, HexDigit, HexDigit, HexDigit, HexDigit, HexDigit] ? S : never : never; -declare type TH1 = HexColor<'#8080FF'>; -declare type TH2 = HexColor<'#80c0ff'>; -declare type TH3 = HexColor<'#8080F'>; -declare type TH4 = HexColor<'#8080FFF'>; -declare type Trim = S extends ` ${infer T}` ? Trim : S extends `${infer T} ` ? Trim : S; -declare type TR1 = Trim<'xx '>; -declare type TR2 = Trim<' xx'>; -declare type TR3 = Trim<' xx '>; -declare type Split = string extends S ? string[] : S extends '' ? [] : S extends `${infer T}${D}${infer U}` ? [T, ...Split] : [ - S -]; -declare type T40 = Split<'foo', '.'>; -declare type T41 = Split<'foo.bar.baz', '.'>; -declare type T42 = Split<'foo.bar', ''>; -declare type T43 = Split; -declare function getProp(obj: T, path: `${P0}.${P1}.${P2}`): T[P0][P1][P2]; -declare function getProp(obj: T, path: `${P0}.${P1}`): T[P0][P1]; -declare function getProp(obj: T, path: P0): T[P0]; -declare function getProp(obj: object, path: string): unknown; -declare let p1: { - readonly b: { - readonly c: 42; - readonly d: "hello"; - }; -}; -declare let p2: { - readonly c: 42; - readonly d: "hello"; -}; -declare let p3: "hello"; -declare type PropType = string extends Path ? unknown : Path extends keyof T ? T[Path] : Path extends `${infer K}.${infer R}` ? K extends keyof T ? PropType : unknown : unknown; -declare function getPropValue(obj: T, path: P): PropType; -declare const s: string; -declare const obj: { - a: { - b: { - c: number; - d: string; - }; - }; -}; -declare type S1 = T extends `foo${infer U}bar` ? S2 : never; -declare type S2 = S; -declare type TV1 = `${infer X}`; -declare type Chars = string extends S ? string[] : S extends `${infer C0}${infer C1}${infer C2}${infer C3}${infer C4}${infer C5}${infer C6}${infer C7}${infer C8}${infer C9}${infer R}` ? [C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, ...Chars] : S extends `${infer C}${infer R}` ? [C, ...Chars] : S extends '' ? [] : never; -declare type L1 = Chars<'FooBarBazThisIsALongerString'>; -declare type Foo = T extends `*${infer S}*` ? S : never; -declare type TF1 = Foo; -declare type TF2 = Foo; -declare type TF3 = Foo<'abc'>; -declare type TF4 = Foo<'*abc*'>; -declare type A = any; -declare type U1 = { - a1: A; -} | { - b1: A; -} | { - c1: A; -} | { - d1: A; -} | { - e1: A; -} | { - f1: A; -} | { - g1: A; -} | { - h1: A; -} | { - i1: A; -} | { - j1: A; -}; -declare type U2 = { - a2: A; -} | { - b2: A; -} | { - c2: A; -} | { - d2: A; -} | { - e2: A; -} | { - f2: A; -} | { - g2: A; -} | { - h2: A; -} | { - i2: A; -} | { - j2: A; -}; -declare type U3 = { - a3: A; -} | { - b3: A; -} | { - c3: A; -} | { - d3: A; -} | { - e3: A; -} | { - f3: A; -} | { - g3: A; -} | { - h3: A; -} | { - i3: A; -} | { - j3: A; -}; -declare type U4 = { - a4: A; -} | { - b4: A; -} | { - c4: A; -} | { - d4: A; -} | { - e4: A; -} | { - f4: A; -} | { - g4: A; -} | { - h4: A; -} | { - i4: A; -} | { - j4: A; -}; -declare type U5 = { - a5: A; -} | { - b5: A; -} | { - c5: A; -} | { - d5: A; -} | { - e5: A; -} | { - f5: A; -} | { - g5: A; -} | { - h5: A; -} | { - i5: A; -} | { - j5: A; -}; -declare type U100000 = U1 & U2 & U3 & U4 & U5; -declare type Digits = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9; -declare type D100000 = `${Digits}${Digits}${Digits}${Digits}${Digits}`; -declare type TDigits = [0] | [1] | [2] | [3] | [4] | [5] | [6] | [7] | [8] | [9]; -declare type T100000 = [...TDigits, ...TDigits, ...TDigits, ...TDigits, ...TDigits]; -declare type IsNegative = `${T}` extends `-${string}` ? true : false; -declare type AA = [ - true, - true -] extends [IsNegative, IsNegative] ? 'Every thing is ok!' : ['strange', IsNegative, IsNegative]; -declare type BB = AA<-2, -2>; -declare type PathKeys = T extends readonly any[] ? Extract | SubKeys> : T extends object ? Extract | SubKeys> : never; -declare type SubKeys = K extends keyof T ? `${K}.${PathKeys}` : never; -declare function getProp2>(obj: T, path: P): PropType; -declare const obj2: { - readonly name: "John"; - readonly age: 42; - readonly cars: readonly [{ - readonly make: "Ford"; - readonly age: 10; - }, { - readonly make: "Trabant"; - readonly age: 35; - }]; -}; -declare let make: "Trabant"; +export declare type Spacing = `0` | `${number}px` | `${number}rem` | `s${1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20}`; +export declare type SpacingShorthand = `${Spacing} ${Spacing}` | `${Spacing} ${Spacing} ${Spacing}` | `${Spacing} ${Spacing} ${Spacing} ${Spacing}`; diff --git a/tests/baselines/reference/templateLiteralTypes1.symbols b/tests/baselines/reference/templateLiteralTypes1.symbols index bc2f7990a243d..8f539fe347e15 100644 --- a/tests/baselines/reference/templateLiteralTypes1.symbols +++ b/tests/baselines/reference/templateLiteralTypes1.symbols @@ -952,3 +952,39 @@ let make = getProp2(obj2, 'cars.1.make'); // 'Trabant' >getProp2 : Symbol(getProp2, Decl(templateLiteralTypes1.ts, 222, 89)) >obj2 : Symbol(obj2, Decl(templateLiteralTypes1.ts, 226, 5)) +// Repro from #46480 + +export type Spacing = +>Spacing : Symbol(Spacing, Decl(templateLiteralTypes1.ts, 235, 41)) + + | `0` + | `${number}px` + | `${number}rem` + | `s${1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20}`; + +const spacing: Spacing = "s12" +>spacing : Symbol(spacing, Decl(templateLiteralTypes1.ts, 245, 5)) +>Spacing : Symbol(Spacing, Decl(templateLiteralTypes1.ts, 235, 41)) + +export type SpacingShorthand = +>SpacingShorthand : Symbol(SpacingShorthand, Decl(templateLiteralTypes1.ts, 245, 30)) + + | `${Spacing} ${Spacing}` +>Spacing : Symbol(Spacing, Decl(templateLiteralTypes1.ts, 235, 41)) +>Spacing : Symbol(Spacing, Decl(templateLiteralTypes1.ts, 235, 41)) + + | `${Spacing} ${Spacing} ${Spacing}` +>Spacing : Symbol(Spacing, Decl(templateLiteralTypes1.ts, 235, 41)) +>Spacing : Symbol(Spacing, Decl(templateLiteralTypes1.ts, 235, 41)) +>Spacing : Symbol(Spacing, Decl(templateLiteralTypes1.ts, 235, 41)) + + | `${Spacing} ${Spacing} ${Spacing} ${Spacing}`; +>Spacing : Symbol(Spacing, Decl(templateLiteralTypes1.ts, 235, 41)) +>Spacing : Symbol(Spacing, Decl(templateLiteralTypes1.ts, 235, 41)) +>Spacing : Symbol(Spacing, Decl(templateLiteralTypes1.ts, 235, 41)) +>Spacing : Symbol(Spacing, Decl(templateLiteralTypes1.ts, 235, 41)) + +const test1: SpacingShorthand = "0 0 0"; +>test1 : Symbol(test1, Decl(templateLiteralTypes1.ts, 252, 5)) +>SpacingShorthand : Symbol(SpacingShorthand, Decl(templateLiteralTypes1.ts, 245, 30)) + diff --git a/tests/baselines/reference/templateLiteralTypes1.types b/tests/baselines/reference/templateLiteralTypes1.types index 102e9a91930c7..d143dc764ca09 100644 --- a/tests/baselines/reference/templateLiteralTypes1.types +++ b/tests/baselines/reference/templateLiteralTypes1.types @@ -594,3 +594,28 @@ let make = getProp2(obj2, 'cars.1.make'); // 'Trabant' >obj2 : { readonly name: "John"; readonly age: 42; readonly cars: readonly [{ readonly make: "Ford"; readonly age: 10; }, { readonly make: "Trabant"; readonly age: 35; }]; } >'cars.1.make' : "cars.1.make" +// Repro from #46480 + +export type Spacing = +>Spacing : Spacing + + | `0` + | `${number}px` + | `${number}rem` + | `s${1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20}`; + +const spacing: Spacing = "s12" +>spacing : Spacing +>"s12" : "s12" + +export type SpacingShorthand = +>SpacingShorthand : any + + | `${Spacing} ${Spacing}` + | `${Spacing} ${Spacing} ${Spacing}` + | `${Spacing} ${Spacing} ${Spacing} ${Spacing}`; + +const test1: SpacingShorthand = "0 0 0"; +>test1 : any +>"0 0 0" : "0 0 0" + diff --git a/tests/baselines/reference/templateLiteralTypes3.errors.txt b/tests/baselines/reference/templateLiteralTypes3.errors.txt index 4c6e98d93653a..d9e2608ac88b6 100644 --- a/tests/baselines/reference/templateLiteralTypes3.errors.txt +++ b/tests/baselines/reference/templateLiteralTypes3.errors.txt @@ -198,4 +198,23 @@ tests/cases/conformance/types/literal/templateLiteralTypes3.ts(141,9): error TS2 action.response; } } + + // Repro from #46768 + + type DotString = `${string}.${string}.${string}`; + + declare function noSpread

(args: P[]): P; + declare function spread

(...args: P[]): P; + + noSpread([`1.${'2'}.3`, `1.${'2'}.4`]); + noSpread([`1.${'2' as string}.3`, `1.${'2' as string}.4`]); + + spread(`1.${'2'}.3`, `1.${'2'}.4`); + spread(`1.${'2' as string}.3`, `1.${'2' as string}.4`); + + function ft1(t: T, u: Uppercase, u1: Uppercase<`1.${T}.3`>, u2: Uppercase<`1.${T}.4`>) { + spread(`1.${t}.3`, `1.${t}.4`); + spread(`1.${u}.3`, `1.${u}.4`); + spread(u1, u2); + } \ No newline at end of file diff --git a/tests/baselines/reference/templateLiteralTypes3.js b/tests/baselines/reference/templateLiteralTypes3.js index fc2df68a400f2..2a6056a2b3faa 100644 --- a/tests/baselines/reference/templateLiteralTypes3.js +++ b/tests/baselines/reference/templateLiteralTypes3.js @@ -170,6 +170,25 @@ function reducer(action: Action) { action.response; } } + +// Repro from #46768 + +type DotString = `${string}.${string}.${string}`; + +declare function noSpread

(args: P[]): P; +declare function spread

(...args: P[]): P; + +noSpread([`1.${'2'}.3`, `1.${'2'}.4`]); +noSpread([`1.${'2' as string}.3`, `1.${'2' as string}.4`]); + +spread(`1.${'2'}.3`, `1.${'2'}.4`); +spread(`1.${'2' as string}.3`, `1.${'2' as string}.4`); + +function ft1(t: T, u: Uppercase, u1: Uppercase<`1.${T}.3`>, u2: Uppercase<`1.${T}.4`>) { + spread(`1.${t}.3`, `1.${t}.4`); + spread(`1.${u}.3`, `1.${u}.4`); + spread(u1, u2); +} //// [templateLiteralTypes3.js] @@ -257,6 +276,15 @@ function reducer(action) { action.response; } } +noSpread(["1.".concat('2', ".3"), "1.".concat('2', ".4")]); +noSpread(["1.".concat('2', ".3"), "1.".concat('2', ".4")]); +spread("1.".concat('2', ".3"), "1.".concat('2', ".4")); +spread("1.".concat('2', ".3"), "1.".concat('2', ".4")); +function ft1(t, u, u1, u2) { + spread("1.".concat(t, ".3"), "1.".concat(t, ".4")); + spread("1.".concat(u, ".3"), "1.".concat(u, ".4")); + spread(u1, u2); +} //// [templateLiteralTypes3.d.ts] @@ -324,3 +352,7 @@ declare type Action = { response: string; }; declare function reducer(action: Action): void; +declare type DotString = `${string}.${string}.${string}`; +declare function noSpread

(args: P[]): P; +declare function spread

(...args: P[]): P; +declare function ft1(t: T, u: Uppercase, u1: Uppercase<`1.${T}.3`>, u2: Uppercase<`1.${T}.4`>): void; diff --git a/tests/baselines/reference/templateLiteralTypes3.symbols b/tests/baselines/reference/templateLiteralTypes3.symbols index 570a85a809dd8..47f4ee7fe6e53 100644 --- a/tests/baselines/reference/templateLiteralTypes3.symbols +++ b/tests/baselines/reference/templateLiteralTypes3.symbols @@ -516,3 +516,67 @@ function reducer(action: Action) { } } +// Repro from #46768 + +type DotString = `${string}.${string}.${string}`; +>DotString : Symbol(DotString, Decl(templateLiteralTypes3.ts, 170, 1)) + +declare function noSpread

(args: P[]): P; +>noSpread : Symbol(noSpread, Decl(templateLiteralTypes3.ts, 174, 49)) +>P : Symbol(P, Decl(templateLiteralTypes3.ts, 176, 26)) +>DotString : Symbol(DotString, Decl(templateLiteralTypes3.ts, 170, 1)) +>args : Symbol(args, Decl(templateLiteralTypes3.ts, 176, 47)) +>P : Symbol(P, Decl(templateLiteralTypes3.ts, 176, 26)) +>P : Symbol(P, Decl(templateLiteralTypes3.ts, 176, 26)) + +declare function spread

(...args: P[]): P; +>spread : Symbol(spread, Decl(templateLiteralTypes3.ts, 176, 61)) +>P : Symbol(P, Decl(templateLiteralTypes3.ts, 177, 24)) +>DotString : Symbol(DotString, Decl(templateLiteralTypes3.ts, 170, 1)) +>args : Symbol(args, Decl(templateLiteralTypes3.ts, 177, 45)) +>P : Symbol(P, Decl(templateLiteralTypes3.ts, 177, 24)) +>P : Symbol(P, Decl(templateLiteralTypes3.ts, 177, 24)) + +noSpread([`1.${'2'}.3`, `1.${'2'}.4`]); +>noSpread : Symbol(noSpread, Decl(templateLiteralTypes3.ts, 174, 49)) + +noSpread([`1.${'2' as string}.3`, `1.${'2' as string}.4`]); +>noSpread : Symbol(noSpread, Decl(templateLiteralTypes3.ts, 174, 49)) + +spread(`1.${'2'}.3`, `1.${'2'}.4`); +>spread : Symbol(spread, Decl(templateLiteralTypes3.ts, 176, 61)) + +spread(`1.${'2' as string}.3`, `1.${'2' as string}.4`); +>spread : Symbol(spread, Decl(templateLiteralTypes3.ts, 176, 61)) + +function ft1(t: T, u: Uppercase, u1: Uppercase<`1.${T}.3`>, u2: Uppercase<`1.${T}.4`>) { +>ft1 : Symbol(ft1, Decl(templateLiteralTypes3.ts, 183, 55)) +>T : Symbol(T, Decl(templateLiteralTypes3.ts, 185, 13)) +>t : Symbol(t, Decl(templateLiteralTypes3.ts, 185, 31)) +>T : Symbol(T, Decl(templateLiteralTypes3.ts, 185, 13)) +>u : Symbol(u, Decl(templateLiteralTypes3.ts, 185, 36)) +>Uppercase : Symbol(Uppercase, Decl(lib.es5.d.ts, --, --)) +>T : Symbol(T, Decl(templateLiteralTypes3.ts, 185, 13)) +>u1 : Symbol(u1, Decl(templateLiteralTypes3.ts, 185, 53)) +>Uppercase : Symbol(Uppercase, Decl(lib.es5.d.ts, --, --)) +>T : Symbol(T, Decl(templateLiteralTypes3.ts, 185, 13)) +>u2 : Symbol(u2, Decl(templateLiteralTypes3.ts, 185, 80)) +>Uppercase : Symbol(Uppercase, Decl(lib.es5.d.ts, --, --)) +>T : Symbol(T, Decl(templateLiteralTypes3.ts, 185, 13)) + + spread(`1.${t}.3`, `1.${t}.4`); +>spread : Symbol(spread, Decl(templateLiteralTypes3.ts, 176, 61)) +>t : Symbol(t, Decl(templateLiteralTypes3.ts, 185, 31)) +>t : Symbol(t, Decl(templateLiteralTypes3.ts, 185, 31)) + + spread(`1.${u}.3`, `1.${u}.4`); +>spread : Symbol(spread, Decl(templateLiteralTypes3.ts, 176, 61)) +>u : Symbol(u, Decl(templateLiteralTypes3.ts, 185, 36)) +>u : Symbol(u, Decl(templateLiteralTypes3.ts, 185, 36)) + + spread(u1, u2); +>spread : Symbol(spread, Decl(templateLiteralTypes3.ts, 176, 61)) +>u1 : Symbol(u1, Decl(templateLiteralTypes3.ts, 185, 53)) +>u2 : Symbol(u2, Decl(templateLiteralTypes3.ts, 185, 80)) +} + diff --git a/tests/baselines/reference/templateLiteralTypes3.types b/tests/baselines/reference/templateLiteralTypes3.types index 5a8f15f27fbab..27d780c7e22ac 100644 --- a/tests/baselines/reference/templateLiteralTypes3.types +++ b/tests/baselines/reference/templateLiteralTypes3.types @@ -513,3 +513,84 @@ function reducer(action: Action) { } } +// Repro from #46768 + +type DotString = `${string}.${string}.${string}`; +>DotString : `${string}.${string}.${string}` + +declare function noSpread

(args: P[]): P; +>noSpread :

(args: P[]) => P +>args : P[] + +declare function spread

(...args: P[]): P; +>spread :

(...args: P[]) => P +>args : P[] + +noSpread([`1.${'2'}.3`, `1.${'2'}.4`]); +>noSpread([`1.${'2'}.3`, `1.${'2'}.4`]) : "1.2.3" | "1.2.4" +>noSpread :

(args: P[]) => P +>[`1.${'2'}.3`, `1.${'2'}.4`] : ("1.2.3" | "1.2.4")[] +>`1.${'2'}.3` : "1.2.3" +>'2' : "2" +>`1.${'2'}.4` : "1.2.4" +>'2' : "2" + +noSpread([`1.${'2' as string}.3`, `1.${'2' as string}.4`]); +>noSpread([`1.${'2' as string}.3`, `1.${'2' as string}.4`]) : `1.${string}.3` | `1.${string}.4` +>noSpread :

(args: P[]) => P +>[`1.${'2' as string}.3`, `1.${'2' as string}.4`] : (`1.${string}.3` | `1.${string}.4`)[] +>`1.${'2' as string}.3` : `1.${string}.3` +>'2' as string : string +>'2' : "2" +>`1.${'2' as string}.4` : `1.${string}.4` +>'2' as string : string +>'2' : "2" + +spread(`1.${'2'}.3`, `1.${'2'}.4`); +>spread(`1.${'2'}.3`, `1.${'2'}.4`) : "1.2.3" | "1.2.4" +>spread :

(...args: P[]) => P +>`1.${'2'}.3` : "1.2.3" +>'2' : "2" +>`1.${'2'}.4` : "1.2.4" +>'2' : "2" + +spread(`1.${'2' as string}.3`, `1.${'2' as string}.4`); +>spread(`1.${'2' as string}.3`, `1.${'2' as string}.4`) : `1.${string}.3` | `1.${string}.4` +>spread :

(...args: P[]) => P +>`1.${'2' as string}.3` : `1.${string}.3` +>'2' as string : string +>'2' : "2" +>`1.${'2' as string}.4` : `1.${string}.4` +>'2' as string : string +>'2' : "2" + +function ft1(t: T, u: Uppercase, u1: Uppercase<`1.${T}.3`>, u2: Uppercase<`1.${T}.4`>) { +>ft1 : (t: T, u: Uppercase, u1: Uppercase<`1.${T}.3`>, u2: Uppercase<`1.${T}.4`>) => void +>t : T +>u : Uppercase +>u1 : Uppercase<`1.${T}.3`> +>u2 : Uppercase<`1.${T}.4`> + + spread(`1.${t}.3`, `1.${t}.4`); +>spread(`1.${t}.3`, `1.${t}.4`) : `1.${T}.3` | `1.${T}.4` +>spread :

(...args: P[]) => P +>`1.${t}.3` : `1.${T}.3` +>t : T +>`1.${t}.4` : `1.${T}.4` +>t : T + + spread(`1.${u}.3`, `1.${u}.4`); +>spread(`1.${u}.3`, `1.${u}.4`) : `1.${Uppercase}.3` | `1.${Uppercase}.4` +>spread :

(...args: P[]) => P +>`1.${u}.3` : `1.${Uppercase}.3` +>u : Uppercase +>`1.${u}.4` : `1.${Uppercase}.4` +>u : Uppercase + + spread(u1, u2); +>spread(u1, u2) : Uppercase<`1.${T}.3`> | Uppercase<`1.${T}.4`> +>spread :

(...args: P[]) => P +>u1 : Uppercase<`1.${T}.3`> +>u2 : Uppercase<`1.${T}.4`> +} + diff --git a/tests/baselines/reference/thisAndSuperInStaticMembers1(target=es2015).js b/tests/baselines/reference/thisAndSuperInStaticMembers1(target=es2015).js index 6c766ee87a600..ac2117eac8042 100644 --- a/tests/baselines/reference/thisAndSuperInStaticMembers1(target=es2015).js +++ b/tests/baselines/reference/thisAndSuperInStaticMembers1(target=es2015).js @@ -36,7 +36,8 @@ class C extends B { x = 1; y = this.x; z = super.f(); -} +} + //// [thisAndSuperInStaticMembers1.js] var __rest = (this && this.__rest) || function (s, e) { diff --git a/tests/baselines/reference/thisAndSuperInStaticMembers1(target=es2022).js b/tests/baselines/reference/thisAndSuperInStaticMembers1(target=es2022).js new file mode 100644 index 0000000000000..f100627421134 --- /dev/null +++ b/tests/baselines/reference/thisAndSuperInStaticMembers1(target=es2022).js @@ -0,0 +1,72 @@ +//// [thisAndSuperInStaticMembers1.ts] +declare class B { + static a: any; + static f(): number; + a: number; + f(): number; +} + +class C extends B { + static x: any = undefined!; + static y1 = this.x; + static y2 = this.x(); + static y3 = this?.x(); + static y4 = this[("x")](); + static y5 = this?.[("x")](); + static z1 = super.a; + static z2 = super["a"]; + static z3 = super.f(); + static z4 = super["f"](); + static z5 = super.a = 0; + static z6 = super.a += 1; + static z7 = (() => { super.a = 0; })(); + static z8 = [super.a] = [0]; + static z9 = [super.a = 0] = [0]; + static z10 = [...super.a] = [0]; + static z11 = { x: super.a } = { x: 0 }; + static z12 = { x: super.a = 0 } = { x: 0 }; + static z13 = { ...super.a } = { x: 0 }; + static z14 = ++super.a; + static z15 = --super.a; + static z16 = ++super[("a")]; + static z17 = super.a++; + static z18 = super.a``; + + // these should be unaffected + x = 1; + y = this.x; + z = super.f(); +} + + +//// [thisAndSuperInStaticMembers1.js] +class C extends B { + static x = undefined; + static y1 = this.x; + static y2 = this.x(); + static y3 = this?.x(); + static y4 = this[("x")](); + static y5 = this?.[("x")](); + static z1 = super.a; + static z2 = super["a"]; + static z3 = super.f(); + static z4 = super["f"](); + static z5 = super.a = 0; + static z6 = super.a += 1; + static z7 = (() => { super.a = 0; })(); + static z8 = [super.a] = [0]; + static z9 = [super.a = 0] = [0]; + static z10 = [...super.a] = [0]; + static z11 = { x: super.a } = { x: 0 }; + static z12 = { x: super.a = 0 } = { x: 0 }; + static z13 = { ...super.a } = { x: 0 }; + static z14 = ++super.a; + static z15 = --super.a; + static z16 = ++super[("a")]; + static z17 = super.a++; + static z18 = super.a ``; + // these should be unaffected + x = 1; + y = this.x; + z = super.f(); +} diff --git a/tests/baselines/reference/thisAndSuperInStaticMembers1(target=esnext).js b/tests/baselines/reference/thisAndSuperInStaticMembers1(target=esnext).js index 8bf57ccac5ae9..f100627421134 100644 --- a/tests/baselines/reference/thisAndSuperInStaticMembers1(target=esnext).js +++ b/tests/baselines/reference/thisAndSuperInStaticMembers1(target=esnext).js @@ -36,7 +36,8 @@ class C extends B { x = 1; y = this.x; z = super.f(); -} +} + //// [thisAndSuperInStaticMembers1.js] class C extends B { diff --git a/tests/baselines/reference/thisAndSuperInStaticMembers2(target=es2015).js b/tests/baselines/reference/thisAndSuperInStaticMembers2(target=es2015).js index 62f9e180aecb6..93c7ec5d7e46c 100644 --- a/tests/baselines/reference/thisAndSuperInStaticMembers2(target=es2015).js +++ b/tests/baselines/reference/thisAndSuperInStaticMembers2(target=es2015).js @@ -36,7 +36,8 @@ class C extends B { x = 1; y = this.x; z = super.f(); -} +} + //// [thisAndSuperInStaticMembers2.js] var __rest = (this && this.__rest) || function (s, e) { diff --git a/tests/baselines/reference/thisAndSuperInStaticMembers2(target=es2022).js b/tests/baselines/reference/thisAndSuperInStaticMembers2(target=es2022).js new file mode 100644 index 0000000000000..852c1b8a4b1ac --- /dev/null +++ b/tests/baselines/reference/thisAndSuperInStaticMembers2(target=es2022).js @@ -0,0 +1,75 @@ +//// [thisAndSuperInStaticMembers2.ts] +declare class B { + static a: any; + static f(): number; + a: number; + f(): number; +} + +class C extends B { + static x: any = undefined!; + static y1 = this.x; + static y2 = this.x(); + static y3 = this?.x(); + static y4 = this[("x")](); + static y5 = this?.[("x")](); + static z1 = super.a; + static z2 = super["a"]; + static z3 = super.f(); + static z4 = super["f"](); + static z5 = super.a = 0; + static z6 = super.a += 1; + static z7 = (() => { super.a = 0; })(); + static z8 = [super.a] = [0]; + static z9 = [super.a = 0] = [0]; + static z10 = [...super.a] = [0]; + static z11 = { x: super.a } = { x: 0 }; + static z12 = { x: super.a = 0 } = { x: 0 }; + static z13 = { ...super.a } = { x: 0 }; + static z14 = ++super.a; + static z15 = --super.a; + static z16 = ++super[("a")]; + static z17 = super.a++; + static z18 = super.a``; + + // these should be unaffected + x = 1; + y = this.x; + z = super.f(); +} + + +//// [thisAndSuperInStaticMembers2.js] +class C extends B { + constructor() { + super(...arguments); + // these should be unaffected + this.x = 1; + this.y = this.x; + this.z = super.f(); + } + static { this.x = undefined; } + static { this.y1 = this.x; } + static { this.y2 = this.x(); } + static { this.y3 = this?.x(); } + static { this.y4 = this[("x")](); } + static { this.y5 = this?.[("x")](); } + static { this.z1 = super.a; } + static { this.z2 = super["a"]; } + static { this.z3 = super.f(); } + static { this.z4 = super["f"](); } + static { this.z5 = super.a = 0; } + static { this.z6 = super.a += 1; } + static { this.z7 = (() => { super.a = 0; })(); } + static { this.z8 = [super.a] = [0]; } + static { this.z9 = [super.a = 0] = [0]; } + static { this.z10 = [...super.a] = [0]; } + static { this.z11 = { x: super.a } = { x: 0 }; } + static { this.z12 = { x: super.a = 0 } = { x: 0 }; } + static { this.z13 = { ...super.a } = { x: 0 }; } + static { this.z14 = ++super.a; } + static { this.z15 = --super.a; } + static { this.z16 = ++super[("a")]; } + static { this.z17 = super.a++; } + static { this.z18 = super.a ``; } +} diff --git a/tests/baselines/reference/thisAndSuperInStaticMembers2(target=esnext).js b/tests/baselines/reference/thisAndSuperInStaticMembers2(target=esnext).js index d29dc7a000638..852c1b8a4b1ac 100644 --- a/tests/baselines/reference/thisAndSuperInStaticMembers2(target=esnext).js +++ b/tests/baselines/reference/thisAndSuperInStaticMembers2(target=esnext).js @@ -36,11 +36,11 @@ class C extends B { x = 1; y = this.x; z = super.f(); -} +} + //// [thisAndSuperInStaticMembers2.js] -var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o; -class C extends (_b = B) { +class C extends B { constructor() { super(...arguments); // these should be unaffected @@ -48,29 +48,28 @@ class C extends (_b = B) { this.y = this.x; this.z = super.f(); } + static { this.x = undefined; } + static { this.y1 = this.x; } + static { this.y2 = this.x(); } + static { this.y3 = this?.x(); } + static { this.y4 = this[("x")](); } + static { this.y5 = this?.[("x")](); } + static { this.z1 = super.a; } + static { this.z2 = super["a"]; } + static { this.z3 = super.f(); } + static { this.z4 = super["f"](); } + static { this.z5 = super.a = 0; } + static { this.z6 = super.a += 1; } + static { this.z7 = (() => { super.a = 0; })(); } + static { this.z8 = [super.a] = [0]; } + static { this.z9 = [super.a = 0] = [0]; } + static { this.z10 = [...super.a] = [0]; } + static { this.z11 = { x: super.a } = { x: 0 }; } + static { this.z12 = { x: super.a = 0 } = { x: 0 }; } + static { this.z13 = { ...super.a } = { x: 0 }; } + static { this.z14 = ++super.a; } + static { this.z15 = --super.a; } + static { this.z16 = ++super[("a")]; } + static { this.z17 = super.a++; } + static { this.z18 = super.a ``; } } -_a = C; -C.x = undefined; -C.y1 = _a.x; -C.y2 = _a.x(); -C.y3 = _a?.x(); -C.y4 = _a[("x")](); -C.y5 = _a?.[("x")](); -C.z1 = Reflect.get(_b, "a", _a); -C.z2 = Reflect.get(_b, "a", _a); -C.z3 = Reflect.get(_b, "f", _a).call(_a); -C.z4 = Reflect.get(_b, "f", _a).call(_a); -C.z5 = (Reflect.set(_b, "a", _c = 0, _a), _c); -C.z6 = (Reflect.set(_b, "a", _d = Reflect.get(_b, "a", _a) + 1, _a), _d); -C.z7 = (() => { Reflect.set(_b, "a", 0, _a); })(); -C.z8 = [({ set value(_c) { Reflect.set(_b, "a", _c, _a); } }).value] = [0]; -C.z9 = [({ set value(_c) { Reflect.set(_b, "a", _c, _a); } }).value = 0] = [0]; -C.z10 = [...({ set value(_c) { Reflect.set(_b, "a", _c, _a); } }).value] = [0]; -C.z11 = { x: ({ set value(_c) { Reflect.set(_b, "a", _c, _a); } }).value } = { x: 0 }; -C.z12 = { x: ({ set value(_c) { Reflect.set(_b, "a", _c, _a); } }).value = 0 } = { x: 0 }; -C.z13 = { ...({ set value(_c) { Reflect.set(_b, "a", _c, _a); } }).value } = { x: 0 }; -C.z14 = (Reflect.set(_b, "a", (_f = Reflect.get(_b, "a", _a), _e = ++_f), _a), _e); -C.z15 = (Reflect.set(_b, "a", (_h = Reflect.get(_b, "a", _a), _g = --_h), _a), _g); -C.z16 = (Reflect.set(_b, _j = ("a"), (_l = Reflect.get(_b, _j, _a), _k = ++_l), _a), _k); -C.z17 = (Reflect.set(_b, "a", (_o = Reflect.get(_b, "a", _a), _m = _o++, _o), _a), _m); -C.z18 = Reflect.get(_b, "a", _a).bind(_a) ``; diff --git a/tests/baselines/reference/thisInConstructorParameter2.js b/tests/baselines/reference/thisInConstructorParameter2.js index 3af8ee1d8d884..57a19d8338613 100644 --- a/tests/baselines/reference/thisInConstructorParameter2.js +++ b/tests/baselines/reference/thisInConstructorParameter2.js @@ -14,13 +14,13 @@ class P { //// [thisInConstructorParameter2.js] var P = /** @class */ (function () { function P(z, zz, zzz) { - var _this = this; if (z === void 0) { z = this; } if (zz === void 0) { zz = this; } if (zzz === void 0) { zzz = function (p) { if (p === void 0) { p = _this; } return _this; }; } + var _this = this; this.z = z; this.x = this; zzz = function (p) { diff --git a/tests/baselines/reference/thisTag1.types b/tests/baselines/reference/thisTag1.types index 1a20b8dc53757..96f2f73881e5f 100644 --- a/tests/baselines/reference/thisTag1.types +++ b/tests/baselines/reference/thisTag1.types @@ -4,7 +4,7 @@ * @return {number} */ function f(s) { ->f : (s: string) => number +>f : (this: { n: number; }, s: string) => number >s : string return this.n + s.length @@ -18,11 +18,11 @@ function f(s) { } const o = { ->o : { f: (s: string) => number; n: number; } ->{ f, n: 1} : { f: (s: string) => number; n: number; } +>o : { f: (this: { n: number; }, s: string) => number; n: number; } +>{ f, n: 1} : { f: (this: { n: number; }, s: string) => number; n: number; } f, ->f : (s: string) => number +>f : (this: { n: number; }, s: string) => number n: 1 >n : number @@ -30,8 +30,8 @@ const o = { } o.f('hi') >o.f('hi') : number ->o.f : (s: string) => number ->o : { f: (s: string) => number; n: number; } ->f : (s: string) => number +>o.f : (this: { n: number; }, s: string) => number +>o : { f: (this: { n: number; }, s: string) => number; n: number; } +>f : (this: { n: number; }, s: string) => number >'hi' : "hi" diff --git a/tests/baselines/reference/thisTag2.js b/tests/baselines/reference/thisTag2.js new file mode 100644 index 0000000000000..fbd252c4949b3 --- /dev/null +++ b/tests/baselines/reference/thisTag2.js @@ -0,0 +1,15 @@ +//// [a.js] +/** @this {string} */ +export function f1() {} + +/** @this */ +export function f2() {} + + + + +//// [a.d.ts] +/** @this {string} */ +export function f1(this: string): void; +/** @this */ +export function f2(this: any): void; diff --git a/tests/baselines/reference/thisTag2.symbols b/tests/baselines/reference/thisTag2.symbols new file mode 100644 index 0000000000000..2b1584df99613 --- /dev/null +++ b/tests/baselines/reference/thisTag2.symbols @@ -0,0 +1,9 @@ +=== tests/cases/conformance/jsdoc/a.js === +/** @this {string} */ +export function f1() {} +>f1 : Symbol(f1, Decl(a.js, 0, 0)) + +/** @this */ +export function f2() {} +>f2 : Symbol(f2, Decl(a.js, 1, 23)) + diff --git a/tests/baselines/reference/thisTag2.types b/tests/baselines/reference/thisTag2.types new file mode 100644 index 0000000000000..f8cc6f9d93f89 --- /dev/null +++ b/tests/baselines/reference/thisTag2.types @@ -0,0 +1,9 @@ +=== tests/cases/conformance/jsdoc/a.js === +/** @this {string} */ +export function f1() {} +>f1 : (this: string) => void + +/** @this */ +export function f2() {} +>f2 : (this: any) => void + diff --git a/tests/baselines/reference/transformApi/transformsCorrectly.rewrittenNamespaceFollowingClass.js b/tests/baselines/reference/transformApi/transformsCorrectly.rewrittenNamespaceFollowingClass.js index 3f2dd6cdb56fb..7aa448bfa0b38 100644 --- a/tests/baselines/reference/transformApi/transformsCorrectly.rewrittenNamespaceFollowingClass.js +++ b/tests/baselines/reference/transformApi/transformsCorrectly.rewrittenNamespaceFollowingClass.js @@ -2,8 +2,8 @@ class C { constructor() { this.foo = 10; } + static { this.bar = 20; } } -C.bar = 20; (function (C) { C.x = 10; })(C || (C = {})); diff --git a/tests/baselines/reference/transformApi/transformsCorrectly.transformAddCommentToImport.js b/tests/baselines/reference/transformApi/transformsCorrectly.transformAddCommentToImport.js index 8eff7bf85741b..68cc954dcce86 100644 --- a/tests/baselines/reference/transformApi/transformsCorrectly.transformAddCommentToImport.js +++ b/tests/baselines/reference/transformApi/transformsCorrectly.transformAddCommentToImport.js @@ -1,7 +1,11 @@ "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/transformApi/transformsCorrectly.transformSyntheticCommentOnStaticFieldInClassDeclaration.js b/tests/baselines/reference/transformApi/transformsCorrectly.transformSyntheticCommentOnStaticFieldInClassDeclaration.js new file mode 100644 index 0000000000000..df471270ae2d5 --- /dev/null +++ b/tests/baselines/reference/transformApi/transformsCorrectly.transformSyntheticCommentOnStaticFieldInClassDeclaration.js @@ -0,0 +1,13 @@ +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +let MyClass = class MyClass { +}; +/*comment*/ +MyClass.newField = "x"; +MyClass = __decorate([ + Decorator +], MyClass); diff --git a/tests/baselines/reference/transformApi/transformsCorrectly.transformSyntheticCommentOnStaticFieldInClassExpression.js b/tests/baselines/reference/transformApi/transformsCorrectly.transformSyntheticCommentOnStaticFieldInClassExpression.js new file mode 100644 index 0000000000000..e6ca9fc6ac387 --- /dev/null +++ b/tests/baselines/reference/transformApi/transformsCorrectly.transformSyntheticCommentOnStaticFieldInClassExpression.js @@ -0,0 +1,6 @@ +var _a; +const MyClass = (_a = class { + }, + /*comment*/ + _a.newField = "x", + _a); diff --git a/tests/baselines/reference/tripleSlashTypesReferenceWithMissingExports(module=commonjs).js b/tests/baselines/reference/tripleSlashTypesReferenceWithMissingExports(module=commonjs).js new file mode 100644 index 0000000000000..9843fbbf1ee00 --- /dev/null +++ b/tests/baselines/reference/tripleSlashTypesReferenceWithMissingExports(module=commonjs).js @@ -0,0 +1,18 @@ +//// [tests/cases/compiler/tripleSlashTypesReferenceWithMissingExports.ts] //// + +//// [index.d.ts] +interface GlobalThing { a: number } +//// [package.json] +{ + "name": "pkg", + "types": "index.d.ts", + "exports": "some-other-thing.js" +} +//// [usage.ts] +/// + +const a: GlobalThing = { a: 0 }; + +//// [usage.js] +/// +var a = { a: 0 }; diff --git a/tests/baselines/reference/tripleSlashTypesReferenceWithMissingExports(module=commonjs).symbols b/tests/baselines/reference/tripleSlashTypesReferenceWithMissingExports(module=commonjs).symbols new file mode 100644 index 0000000000000..b97c41025fe42 --- /dev/null +++ b/tests/baselines/reference/tripleSlashTypesReferenceWithMissingExports(module=commonjs).symbols @@ -0,0 +1,13 @@ +=== tests/cases/compiler/node_modules/pkg/index.d.ts === +interface GlobalThing { a: number } +>GlobalThing : Symbol(GlobalThing, Decl(index.d.ts, 0, 0)) +>a : Symbol(GlobalThing.a, Decl(index.d.ts, 0, 23)) + +=== tests/cases/compiler/usage.ts === +/// + +const a: GlobalThing = { a: 0 }; +>a : Symbol(a, Decl(usage.ts, 2, 5)) +>GlobalThing : Symbol(GlobalThing, Decl(index.d.ts, 0, 0)) +>a : Symbol(a, Decl(usage.ts, 2, 24)) + diff --git a/tests/baselines/reference/tripleSlashTypesReferenceWithMissingExports(module=commonjs).types b/tests/baselines/reference/tripleSlashTypesReferenceWithMissingExports(module=commonjs).types new file mode 100644 index 0000000000000..b107f91dcb264 --- /dev/null +++ b/tests/baselines/reference/tripleSlashTypesReferenceWithMissingExports(module=commonjs).types @@ -0,0 +1,13 @@ +=== tests/cases/compiler/node_modules/pkg/index.d.ts === +interface GlobalThing { a: number } +>a : number + +=== tests/cases/compiler/usage.ts === +/// + +const a: GlobalThing = { a: 0 }; +>a : GlobalThing +>{ a: 0 } : { a: number; } +>a : number +>0 : 0 + diff --git a/tests/baselines/reference/tripleSlashTypesReferenceWithMissingExports(module=node12).errors.txt b/tests/baselines/reference/tripleSlashTypesReferenceWithMissingExports(module=node12).errors.txt new file mode 100644 index 0000000000000..179a40218dc53 --- /dev/null +++ b/tests/baselines/reference/tripleSlashTypesReferenceWithMissingExports(module=node12).errors.txt @@ -0,0 +1,17 @@ +tests/cases/compiler/usage.ts(1,23): error TS2688: Cannot find type definition file for 'pkg'. + + +==== tests/cases/compiler/node_modules/pkg/index.d.ts (0 errors) ==== + interface GlobalThing { a: number } +==== tests/cases/compiler/node_modules/pkg/package.json (0 errors) ==== + { + "name": "pkg", + "types": "index.d.ts", + "exports": "some-other-thing.js" + } +==== tests/cases/compiler/usage.ts (1 errors) ==== + /// + ~~~ +!!! error TS2688: Cannot find type definition file for 'pkg'. + + const a: GlobalThing = { a: 0 }; \ No newline at end of file diff --git a/tests/baselines/reference/tripleSlashTypesReferenceWithMissingExports(module=node12).js b/tests/baselines/reference/tripleSlashTypesReferenceWithMissingExports(module=node12).js new file mode 100644 index 0000000000000..89dd2c7541a29 --- /dev/null +++ b/tests/baselines/reference/tripleSlashTypesReferenceWithMissingExports(module=node12).js @@ -0,0 +1,18 @@ +//// [tests/cases/compiler/tripleSlashTypesReferenceWithMissingExports.ts] //// + +//// [index.d.ts] +interface GlobalThing { a: number } +//// [package.json] +{ + "name": "pkg", + "types": "index.d.ts", + "exports": "some-other-thing.js" +} +//// [usage.ts] +/// + +const a: GlobalThing = { a: 0 }; + +//// [usage.js] +/// +const a = { a: 0 }; diff --git a/tests/baselines/reference/tripleSlashTypesReferenceWithMissingExports(module=node12).symbols b/tests/baselines/reference/tripleSlashTypesReferenceWithMissingExports(module=node12).symbols new file mode 100644 index 0000000000000..b97c41025fe42 --- /dev/null +++ b/tests/baselines/reference/tripleSlashTypesReferenceWithMissingExports(module=node12).symbols @@ -0,0 +1,13 @@ +=== tests/cases/compiler/node_modules/pkg/index.d.ts === +interface GlobalThing { a: number } +>GlobalThing : Symbol(GlobalThing, Decl(index.d.ts, 0, 0)) +>a : Symbol(GlobalThing.a, Decl(index.d.ts, 0, 23)) + +=== tests/cases/compiler/usage.ts === +/// + +const a: GlobalThing = { a: 0 }; +>a : Symbol(a, Decl(usage.ts, 2, 5)) +>GlobalThing : Symbol(GlobalThing, Decl(index.d.ts, 0, 0)) +>a : Symbol(a, Decl(usage.ts, 2, 24)) + diff --git a/tests/baselines/reference/tripleSlashTypesReferenceWithMissingExports(module=node12).types b/tests/baselines/reference/tripleSlashTypesReferenceWithMissingExports(module=node12).types new file mode 100644 index 0000000000000..b107f91dcb264 --- /dev/null +++ b/tests/baselines/reference/tripleSlashTypesReferenceWithMissingExports(module=node12).types @@ -0,0 +1,13 @@ +=== tests/cases/compiler/node_modules/pkg/index.d.ts === +interface GlobalThing { a: number } +>a : number + +=== tests/cases/compiler/usage.ts === +/// + +const a: GlobalThing = { a: 0 }; +>a : GlobalThing +>{ a: 0 } : { a: number; } +>a : number +>0 : 0 + diff --git a/tests/baselines/reference/tripleSlashTypesReferenceWithMissingExports(module=nodenext).errors.txt b/tests/baselines/reference/tripleSlashTypesReferenceWithMissingExports(module=nodenext).errors.txt new file mode 100644 index 0000000000000..179a40218dc53 --- /dev/null +++ b/tests/baselines/reference/tripleSlashTypesReferenceWithMissingExports(module=nodenext).errors.txt @@ -0,0 +1,17 @@ +tests/cases/compiler/usage.ts(1,23): error TS2688: Cannot find type definition file for 'pkg'. + + +==== tests/cases/compiler/node_modules/pkg/index.d.ts (0 errors) ==== + interface GlobalThing { a: number } +==== tests/cases/compiler/node_modules/pkg/package.json (0 errors) ==== + { + "name": "pkg", + "types": "index.d.ts", + "exports": "some-other-thing.js" + } +==== tests/cases/compiler/usage.ts (1 errors) ==== + /// + ~~~ +!!! error TS2688: Cannot find type definition file for 'pkg'. + + const a: GlobalThing = { a: 0 }; \ No newline at end of file diff --git a/tests/baselines/reference/tripleSlashTypesReferenceWithMissingExports(module=nodenext).js b/tests/baselines/reference/tripleSlashTypesReferenceWithMissingExports(module=nodenext).js new file mode 100644 index 0000000000000..89dd2c7541a29 --- /dev/null +++ b/tests/baselines/reference/tripleSlashTypesReferenceWithMissingExports(module=nodenext).js @@ -0,0 +1,18 @@ +//// [tests/cases/compiler/tripleSlashTypesReferenceWithMissingExports.ts] //// + +//// [index.d.ts] +interface GlobalThing { a: number } +//// [package.json] +{ + "name": "pkg", + "types": "index.d.ts", + "exports": "some-other-thing.js" +} +//// [usage.ts] +/// + +const a: GlobalThing = { a: 0 }; + +//// [usage.js] +/// +const a = { a: 0 }; diff --git a/tests/baselines/reference/tripleSlashTypesReferenceWithMissingExports(module=nodenext).symbols b/tests/baselines/reference/tripleSlashTypesReferenceWithMissingExports(module=nodenext).symbols new file mode 100644 index 0000000000000..b97c41025fe42 --- /dev/null +++ b/tests/baselines/reference/tripleSlashTypesReferenceWithMissingExports(module=nodenext).symbols @@ -0,0 +1,13 @@ +=== tests/cases/compiler/node_modules/pkg/index.d.ts === +interface GlobalThing { a: number } +>GlobalThing : Symbol(GlobalThing, Decl(index.d.ts, 0, 0)) +>a : Symbol(GlobalThing.a, Decl(index.d.ts, 0, 23)) + +=== tests/cases/compiler/usage.ts === +/// + +const a: GlobalThing = { a: 0 }; +>a : Symbol(a, Decl(usage.ts, 2, 5)) +>GlobalThing : Symbol(GlobalThing, Decl(index.d.ts, 0, 0)) +>a : Symbol(a, Decl(usage.ts, 2, 24)) + diff --git a/tests/baselines/reference/tripleSlashTypesReferenceWithMissingExports(module=nodenext).types b/tests/baselines/reference/tripleSlashTypesReferenceWithMissingExports(module=nodenext).types new file mode 100644 index 0000000000000..b107f91dcb264 --- /dev/null +++ b/tests/baselines/reference/tripleSlashTypesReferenceWithMissingExports(module=nodenext).types @@ -0,0 +1,13 @@ +=== tests/cases/compiler/node_modules/pkg/index.d.ts === +interface GlobalThing { a: number } +>a : number + +=== tests/cases/compiler/usage.ts === +/// + +const a: GlobalThing = { a: 0 }; +>a : GlobalThing +>{ a: 0 } : { a: number; } +>a : number +>0 : 0 + diff --git a/tests/baselines/reference/trivialSubtypeReductionNoStructuralCheck.errors.txt b/tests/baselines/reference/trivialSubtypeReductionNoStructuralCheck.errors.txt new file mode 100644 index 0000000000000..279e221ad70c3 --- /dev/null +++ b/tests/baselines/reference/trivialSubtypeReductionNoStructuralCheck.errors.txt @@ -0,0 +1,19 @@ +tests/cases/compiler/trivialSubtypeReductionNoStructuralCheck.ts(3,7): error TS7023: 'steps' implicitly has return type 'any' because it does not have a return type annotation and is referenced directly or indirectly in one of its return expressions. + + +==== tests/cases/compiler/trivialSubtypeReductionNoStructuralCheck.ts (1 errors) ==== + declare const props: WizardStepProps; + export class Wizard { + get steps() { + ~~~~~ +!!! error TS7023: 'steps' implicitly has return type 'any' because it does not have a return type annotation and is referenced directly or indirectly in one of its return expressions. + return { + wizard: this, + ...props, + } as WizardStepProps; + } + } + + export interface WizardStepProps { + wizard?: Wizard; + } \ No newline at end of file diff --git a/tests/baselines/reference/trivialSubtypeReductionNoStructuralCheck.js b/tests/baselines/reference/trivialSubtypeReductionNoStructuralCheck.js new file mode 100644 index 0000000000000..e1318004aadbf --- /dev/null +++ b/tests/baselines/reference/trivialSubtypeReductionNoStructuralCheck.js @@ -0,0 +1,43 @@ +//// [trivialSubtypeReductionNoStructuralCheck.ts] +declare const props: WizardStepProps; +export class Wizard { + get steps() { + return { + wizard: this, + ...props, + } as WizardStepProps; + } +} + +export interface WizardStepProps { + wizard?: Wizard; +} + +//// [trivialSubtypeReductionNoStructuralCheck.js] +"use strict"; +var __assign = (this && this.__assign) || function () { + __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; + }; + return __assign.apply(this, arguments); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Wizard = void 0; +var Wizard = /** @class */ (function () { + function Wizard() { + } + Object.defineProperty(Wizard.prototype, "steps", { + get: function () { + return __assign({ wizard: this }, props); + }, + enumerable: false, + configurable: true + }); + return Wizard; +}()); +exports.Wizard = Wizard; diff --git a/tests/baselines/reference/trivialSubtypeReductionNoStructuralCheck.symbols b/tests/baselines/reference/trivialSubtypeReductionNoStructuralCheck.symbols new file mode 100644 index 0000000000000..7e48b7383b8d7 --- /dev/null +++ b/tests/baselines/reference/trivialSubtypeReductionNoStructuralCheck.symbols @@ -0,0 +1,31 @@ +=== tests/cases/compiler/trivialSubtypeReductionNoStructuralCheck.ts === +declare const props: WizardStepProps; +>props : Symbol(props, Decl(trivialSubtypeReductionNoStructuralCheck.ts, 0, 13)) +>WizardStepProps : Symbol(WizardStepProps, Decl(trivialSubtypeReductionNoStructuralCheck.ts, 8, 1)) + +export class Wizard { +>Wizard : Symbol(Wizard, Decl(trivialSubtypeReductionNoStructuralCheck.ts, 0, 37)) + + get steps() { +>steps : Symbol(Wizard.steps, Decl(trivialSubtypeReductionNoStructuralCheck.ts, 1, 21)) + + return { + wizard: this, +>wizard : Symbol(wizard, Decl(trivialSubtypeReductionNoStructuralCheck.ts, 3, 12)) +>this : Symbol(Wizard, Decl(trivialSubtypeReductionNoStructuralCheck.ts, 0, 37)) + + ...props, +>props : Symbol(props, Decl(trivialSubtypeReductionNoStructuralCheck.ts, 0, 13)) + + } as WizardStepProps; +>WizardStepProps : Symbol(WizardStepProps, Decl(trivialSubtypeReductionNoStructuralCheck.ts, 8, 1)) + } +} + +export interface WizardStepProps { +>WizardStepProps : Symbol(WizardStepProps, Decl(trivialSubtypeReductionNoStructuralCheck.ts, 8, 1)) + + wizard?: Wizard; +>wizard : Symbol(WizardStepProps.wizard, Decl(trivialSubtypeReductionNoStructuralCheck.ts, 10, 34)) +>Wizard : Symbol(Wizard, Decl(trivialSubtypeReductionNoStructuralCheck.ts, 0, 37)) +} diff --git a/tests/baselines/reference/trivialSubtypeReductionNoStructuralCheck.types b/tests/baselines/reference/trivialSubtypeReductionNoStructuralCheck.types new file mode 100644 index 0000000000000..41d7b304624d2 --- /dev/null +++ b/tests/baselines/reference/trivialSubtypeReductionNoStructuralCheck.types @@ -0,0 +1,29 @@ +=== tests/cases/compiler/trivialSubtypeReductionNoStructuralCheck.ts === +declare const props: WizardStepProps; +>props : WizardStepProps + +export class Wizard { +>Wizard : Wizard + + get steps() { +>steps : any + + return { +>{ wizard: this, ...props, } as WizardStepProps : WizardStepProps +>{ wizard: this, ...props, } : { wizard: Wizard; } + + wizard: this, +>wizard : this +>this : this + + ...props, +>props : WizardStepProps + + } as WizardStepProps; + } +} + +export interface WizardStepProps { + wizard?: Wizard; +>wizard : Wizard | undefined +} diff --git a/tests/baselines/reference/trivialSubtypeReductionNoStructuralCheck2.js b/tests/baselines/reference/trivialSubtypeReductionNoStructuralCheck2.js new file mode 100644 index 0000000000000..022844b4c2223 --- /dev/null +++ b/tests/baselines/reference/trivialSubtypeReductionNoStructuralCheck2.js @@ -0,0 +1,43 @@ +//// [trivialSubtypeReductionNoStructuralCheck2.ts] +declare const props: WizardStepProps; +export class Wizard { + get steps() { + return { + wizard: this as Wizard, + ...props, + } as WizardStepProps; + } +} + +export interface WizardStepProps { + wizard?: Wizard; +} + +//// [trivialSubtypeReductionNoStructuralCheck2.js] +"use strict"; +var __assign = (this && this.__assign) || function () { + __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; + }; + return __assign.apply(this, arguments); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Wizard = void 0; +var Wizard = /** @class */ (function () { + function Wizard() { + } + Object.defineProperty(Wizard.prototype, "steps", { + get: function () { + return __assign({ wizard: this }, props); + }, + enumerable: false, + configurable: true + }); + return Wizard; +}()); +exports.Wizard = Wizard; diff --git a/tests/baselines/reference/trivialSubtypeReductionNoStructuralCheck2.symbols b/tests/baselines/reference/trivialSubtypeReductionNoStructuralCheck2.symbols new file mode 100644 index 0000000000000..f52572a937a6f --- /dev/null +++ b/tests/baselines/reference/trivialSubtypeReductionNoStructuralCheck2.symbols @@ -0,0 +1,32 @@ +=== tests/cases/compiler/trivialSubtypeReductionNoStructuralCheck2.ts === +declare const props: WizardStepProps; +>props : Symbol(props, Decl(trivialSubtypeReductionNoStructuralCheck2.ts, 0, 13)) +>WizardStepProps : Symbol(WizardStepProps, Decl(trivialSubtypeReductionNoStructuralCheck2.ts, 8, 1)) + +export class Wizard { +>Wizard : Symbol(Wizard, Decl(trivialSubtypeReductionNoStructuralCheck2.ts, 0, 37)) + + get steps() { +>steps : Symbol(Wizard.steps, Decl(trivialSubtypeReductionNoStructuralCheck2.ts, 1, 21)) + + return { + wizard: this as Wizard, +>wizard : Symbol(wizard, Decl(trivialSubtypeReductionNoStructuralCheck2.ts, 3, 12)) +>this : Symbol(Wizard, Decl(trivialSubtypeReductionNoStructuralCheck2.ts, 0, 37)) +>Wizard : Symbol(Wizard, Decl(trivialSubtypeReductionNoStructuralCheck2.ts, 0, 37)) + + ...props, +>props : Symbol(props, Decl(trivialSubtypeReductionNoStructuralCheck2.ts, 0, 13)) + + } as WizardStepProps; +>WizardStepProps : Symbol(WizardStepProps, Decl(trivialSubtypeReductionNoStructuralCheck2.ts, 8, 1)) + } +} + +export interface WizardStepProps { +>WizardStepProps : Symbol(WizardStepProps, Decl(trivialSubtypeReductionNoStructuralCheck2.ts, 8, 1)) + + wizard?: Wizard; +>wizard : Symbol(WizardStepProps.wizard, Decl(trivialSubtypeReductionNoStructuralCheck2.ts, 10, 34)) +>Wizard : Symbol(Wizard, Decl(trivialSubtypeReductionNoStructuralCheck2.ts, 0, 37)) +} diff --git a/tests/baselines/reference/trivialSubtypeReductionNoStructuralCheck2.types b/tests/baselines/reference/trivialSubtypeReductionNoStructuralCheck2.types new file mode 100644 index 0000000000000..2ea6acdd0b99f --- /dev/null +++ b/tests/baselines/reference/trivialSubtypeReductionNoStructuralCheck2.types @@ -0,0 +1,30 @@ +=== tests/cases/compiler/trivialSubtypeReductionNoStructuralCheck2.ts === +declare const props: WizardStepProps; +>props : WizardStepProps + +export class Wizard { +>Wizard : Wizard + + get steps() { +>steps : WizardStepProps + + return { +>{ wizard: this as Wizard, ...props, } as WizardStepProps : WizardStepProps +>{ wizard: this as Wizard, ...props, } : { wizard: Wizard; } + + wizard: this as Wizard, +>wizard : Wizard +>this as Wizard : Wizard +>this : this + + ...props, +>props : WizardStepProps + + } as WizardStepProps; + } +} + +export interface WizardStepProps { + wizard?: Wizard; +>wizard : Wizard | undefined +} diff --git a/tests/baselines/reference/truthinessCallExpressionCoercion4.symbols b/tests/baselines/reference/truthinessCallExpressionCoercion4.symbols new file mode 100644 index 0000000000000..da41aefd1a344 --- /dev/null +++ b/tests/baselines/reference/truthinessCallExpressionCoercion4.symbols @@ -0,0 +1,17 @@ +=== tests/cases/compiler/a.js === +function fn() {} +>fn : Symbol(fn, Decl(a.js, 0, 0)) + +if (typeof module === 'object' && module.exports) { +>module : Symbol(module, Decl(a.js, 2, 51)) +>module.exports : Symbol(module.exports, Decl(a.js, 0, 0)) +>module : Symbol(module, Decl(a.js, 2, 51)) +>exports : Symbol(module.exports, Decl(a.js, 0, 0)) + + module.exports = fn; +>module.exports : Symbol(module.exports, Decl(a.js, 0, 0)) +>module : Symbol(export=, Decl(a.js, 2, 51)) +>exports : Symbol(export=, Decl(a.js, 2, 51)) +>fn : Symbol(fn, Decl(a.js, 0, 0)) +} + diff --git a/tests/baselines/reference/truthinessCallExpressionCoercion4.types b/tests/baselines/reference/truthinessCallExpressionCoercion4.types new file mode 100644 index 0000000000000..d9a0f16b91238 --- /dev/null +++ b/tests/baselines/reference/truthinessCallExpressionCoercion4.types @@ -0,0 +1,22 @@ +=== tests/cases/compiler/a.js === +function fn() {} +>fn : () => void + +if (typeof module === 'object' && module.exports) { +>typeof module === 'object' && module.exports : false | (() => void) +>typeof module === 'object' : boolean +>typeof module : "string" | "number" | "bigint" | "boolean" | "symbol" | "undefined" | "object" | "function" +>module : { exports: () => void; } +>'object' : "object" +>module.exports : () => void +>module : { exports: () => void; } +>exports : () => void + + module.exports = fn; +>module.exports = fn : () => void +>module.exports : () => void +>module : { exports: () => void; } +>exports : () => void +>fn : () => void +} + diff --git a/tests/baselines/reference/tryCatchFinallyControlFlow.errors.txt b/tests/baselines/reference/tryCatchFinallyControlFlow.errors.txt index a6972d05d8ec5..79578f9144de1 100644 --- a/tests/baselines/reference/tryCatchFinallyControlFlow.errors.txt +++ b/tests/baselines/reference/tryCatchFinallyControlFlow.errors.txt @@ -2,10 +2,11 @@ tests/cases/compiler/tryCatchFinallyControlFlow.ts(105,5): error TS7027: Unreach tests/cases/compiler/tryCatchFinallyControlFlow.ts(118,9): error TS7027: Unreachable code detected. tests/cases/compiler/tryCatchFinallyControlFlow.ts(218,13): error TS7027: Unreachable code detected. tests/cases/compiler/tryCatchFinallyControlFlow.ts(220,9): error TS7027: Unreachable code detected. +tests/cases/compiler/tryCatchFinallyControlFlow.ts(255,9): error TS2448: Block-scoped variable 'x' used before its declaration. tests/cases/compiler/tryCatchFinallyControlFlow.ts(255,9): error TS7027: Unreachable code detected. -==== tests/cases/compiler/tryCatchFinallyControlFlow.ts (5 errors) ==== +==== tests/cases/compiler/tryCatchFinallyControlFlow.ts (6 errors) ==== // Repro from #34797 function f1() { @@ -270,6 +271,9 @@ tests/cases/compiler/tryCatchFinallyControlFlow.ts(255,9): error TS7027: Unreach return null; } x; // Unreachable + ~ +!!! error TS2448: Block-scoped variable 'x' used before its declaration. +!!! related TS2728 tests/cases/compiler/tryCatchFinallyControlFlow.ts:248:11: 'x' is declared here. ~~ !!! error TS7027: Unreachable code detected. })(); diff --git a/tests/baselines/reference/tsConfig/Default initialized TSConfig/tsconfig.json b/tests/baselines/reference/tsConfig/Default initialized TSConfig/tsconfig.json index 56794816baf82..75dcaeac2e2b9 100644 --- a/tests/baselines/reference/tsConfig/Default initialized TSConfig/tsconfig.json +++ b/tests/baselines/reference/tsConfig/Default initialized TSConfig/tsconfig.json @@ -1,12 +1,12 @@ { "compilerOptions": { - /* Visit https://aka.ms/tsconfig.json to read more about this file */ + /* Visit https://aka.ms/tsconfig to read more about this file */ /* Projects */ - // "incremental": true, /* Enable incremental compilation */ + // "incremental": true, /* Save .tsbuildinfo files to allow for incremental compilation of projects. */ // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ - // "tsBuildInfoFile": "./", /* Specify the folder for .tsbuildinfo incremental compilation files. */ - // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects */ + // "tsBuildInfoFile": "./.tsbuildinfo", /* Specify the path to .tsbuildinfo incremental compilation file. */ + // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects. */ // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ @@ -16,12 +16,13 @@ // "jsx": "preserve", /* Specify what JSX code is generated. */ // "experimentalDecorators": true, /* Enable experimental support for TC39 stage 2 draft decorators. */ // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */ - // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h' */ + // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'. */ // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */ - // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using `jsx: react-jsx*`.` */ - // "reactNamespace": "", /* Specify the object invoked for `createElement`. This only applies when targeting `react` JSX emit. */ + // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'. */ + // "reactNamespace": "", /* Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit. */ // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ + // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */ /* Modules */ "module": "commonjs", /* Specify what module code is generated. */ @@ -30,28 +31,29 @@ // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ - // "typeRoots": [], /* Specify multiple folders that act like `./node_modules/@types`. */ + // "typeRoots": [], /* Specify multiple folders that act like './node_modules/@types'. */ // "types": [], /* Specify type package names to be included without being referenced in a source file. */ // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ - // "resolveJsonModule": true, /* Enable importing .json files */ - // "noResolve": true, /* Disallow `import`s, `require`s or ``s from expanding the number of files TypeScript should add to a project. */ + // "moduleSuffixes": [], /* List of file name suffixes to search when resolving a module. */ + // "resolveJsonModule": true, /* Enable importing .json files. */ + // "noResolve": true, /* Disallow 'import's, 'require's or ''s from expanding the number of files TypeScript should add to a project. */ /* JavaScript Support */ - // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the `checkJS` option to get errors from these files. */ + // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */ // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ - // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from `node_modules`. Only applicable with `allowJs`. */ + // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */ /* Emit */ // "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ // "declarationMap": true, /* Create sourcemaps for d.ts files. */ // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ // "sourceMap": true, /* Create source map files for emitted JavaScript files. */ - // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If `declaration` is true, also designates a file that bundles all .d.ts output. */ + // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */ // "outDir": "./", /* Specify an output folder for all emitted files. */ // "removeComments": true, /* Disable emitting comments. */ // "noEmit": true, /* Disable emitting files from a compilation. */ // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */ - // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types */ + // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types. */ // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */ // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */ // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ @@ -59,38 +61,38 @@ // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */ // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */ // "newLine": "crlf", /* Set the newline character for emitting files. */ - // "stripInternal": true, /* Disable emitting declarations that have `@internal` in their JSDoc comments. */ - // "noEmitHelpers": true, /* Disable generating custom helper functions like `__extends` in compiled output. */ + // "stripInternal": true, /* Disable emitting declarations that have '@internal' in their JSDoc comments. */ + // "noEmitHelpers": true, /* Disable generating custom helper functions like '__extends' in compiled output. */ // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */ - // "preserveConstEnums": true, /* Disable erasing `const enum` declarations in generated code. */ + // "preserveConstEnums": true, /* Disable erasing 'const enum' declarations in generated code. */ // "declarationDir": "./", /* Specify the output directory for generated declaration files. */ // "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */ /* Interop Constraints */ // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */ // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ - "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables `allowSyntheticDefaultImports` for type compatibility. */ + "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */ // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ "forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */ /* Type Checking */ "strict": true, /* Enable all strict type-checking options. */ - // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied `any` type.. */ - // "strictNullChecks": true, /* When type checking, take into account `null` and `undefined`. */ + // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */ + // "strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */ // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ - // "strictBindCallApply": true, /* Check that the arguments for `bind`, `call`, and `apply` methods match the original function. */ + // "strictBindCallApply": true, /* Check that the arguments for 'bind', 'call', and 'apply' methods match the original function. */ // "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */ - // "noImplicitThis": true, /* Enable error reporting when `this` is given the type `any`. */ - // "useUnknownInCatchVariables": true, /* Type catch clause variables as 'unknown' instead of 'any'. */ + // "noImplicitThis": true, /* Enable error reporting when 'this' is given the type 'any'. */ + // "useUnknownInCatchVariables": true, /* Default catch clause variables as 'unknown' instead of 'any'. */ // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */ - // "noUnusedLocals": true, /* Enable error reporting when a local variables aren't read. */ - // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read */ + // "noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */ + // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read. */ // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */ // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */ // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */ - // "noUncheckedIndexedAccess": true, /* Include 'undefined' in index signature results */ + // "noUncheckedIndexedAccess": true, /* Add 'undefined' to a type when accessed using an index. */ // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */ - // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type */ + // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type. */ // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */ // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */ diff --git a/tests/baselines/reference/tsConfig/Initialized TSConfig with advanced options/tsconfig.json b/tests/baselines/reference/tsConfig/Initialized TSConfig with advanced options/tsconfig.json index 72a3d537f7adc..ce36f2a0fcfd7 100644 --- a/tests/baselines/reference/tsConfig/Initialized TSConfig with advanced options/tsconfig.json +++ b/tests/baselines/reference/tsConfig/Initialized TSConfig with advanced options/tsconfig.json @@ -1,12 +1,12 @@ { "compilerOptions": { - /* Visit https://aka.ms/tsconfig.json to read more about this file */ + /* Visit https://aka.ms/tsconfig to read more about this file */ /* Projects */ - // "incremental": true, /* Enable incremental compilation */ + // "incremental": true, /* Save .tsbuildinfo files to allow for incremental compilation of projects. */ // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ - // "tsBuildInfoFile": "./", /* Specify the folder for .tsbuildinfo incremental compilation files. */ - // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects */ + // "tsBuildInfoFile": "./.tsbuildinfo", /* Specify the path to .tsbuildinfo incremental compilation file. */ + // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects. */ // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ @@ -16,12 +16,13 @@ // "jsx": "preserve", /* Specify what JSX code is generated. */ // "experimentalDecorators": true, /* Enable experimental support for TC39 stage 2 draft decorators. */ // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */ - // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h' */ + // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'. */ // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */ - // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using `jsx: react-jsx*`.` */ - // "reactNamespace": "", /* Specify the object invoked for `createElement`. This only applies when targeting `react` JSX emit. */ + // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'. */ + // "reactNamespace": "", /* Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit. */ // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ + // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */ /* Modules */ "module": "commonjs", /* Specify what module code is generated. */ @@ -30,28 +31,29 @@ // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ - // "typeRoots": [], /* Specify multiple folders that act like `./node_modules/@types`. */ + // "typeRoots": [], /* Specify multiple folders that act like './node_modules/@types'. */ // "types": [], /* Specify type package names to be included without being referenced in a source file. */ // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ - // "resolveJsonModule": true, /* Enable importing .json files */ - // "noResolve": true, /* Disallow `import`s, `require`s or ``s from expanding the number of files TypeScript should add to a project. */ + // "moduleSuffixes": [], /* List of file name suffixes to search when resolving a module. */ + // "resolveJsonModule": true, /* Enable importing .json files. */ + // "noResolve": true, /* Disallow 'import's, 'require's or ''s from expanding the number of files TypeScript should add to a project. */ /* JavaScript Support */ - // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the `checkJS` option to get errors from these files. */ + // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */ // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ - // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from `node_modules`. Only applicable with `allowJs`. */ + // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */ /* Emit */ "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ // "declarationMap": true, /* Create sourcemaps for d.ts files. */ // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ // "sourceMap": true, /* Create source map files for emitted JavaScript files. */ - // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If `declaration` is true, also designates a file that bundles all .d.ts output. */ + // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */ // "outDir": "./", /* Specify an output folder for all emitted files. */ // "removeComments": true, /* Disable emitting comments. */ // "noEmit": true, /* Disable emitting files from a compilation. */ // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */ - // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types */ + // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types. */ // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */ // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */ // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ @@ -59,38 +61,38 @@ // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */ // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */ // "newLine": "crlf", /* Set the newline character for emitting files. */ - // "stripInternal": true, /* Disable emitting declarations that have `@internal` in their JSDoc comments. */ - // "noEmitHelpers": true, /* Disable generating custom helper functions like `__extends` in compiled output. */ + // "stripInternal": true, /* Disable emitting declarations that have '@internal' in their JSDoc comments. */ + // "noEmitHelpers": true, /* Disable generating custom helper functions like '__extends' in compiled output. */ // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */ - // "preserveConstEnums": true, /* Disable erasing `const enum` declarations in generated code. */ + // "preserveConstEnums": true, /* Disable erasing 'const enum' declarations in generated code. */ "declarationDir": "lib", /* Specify the output directory for generated declaration files. */ // "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */ /* Interop Constraints */ // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */ // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ - "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables `allowSyntheticDefaultImports` for type compatibility. */ + "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */ // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ "forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */ /* Type Checking */ "strict": true, /* Enable all strict type-checking options. */ - // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied `any` type.. */ - // "strictNullChecks": true, /* When type checking, take into account `null` and `undefined`. */ + // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */ + // "strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */ // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ - // "strictBindCallApply": true, /* Check that the arguments for `bind`, `call`, and `apply` methods match the original function. */ + // "strictBindCallApply": true, /* Check that the arguments for 'bind', 'call', and 'apply' methods match the original function. */ // "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */ - // "noImplicitThis": true, /* Enable error reporting when `this` is given the type `any`. */ - // "useUnknownInCatchVariables": true, /* Type catch clause variables as 'unknown' instead of 'any'. */ + // "noImplicitThis": true, /* Enable error reporting when 'this' is given the type 'any'. */ + // "useUnknownInCatchVariables": true, /* Default catch clause variables as 'unknown' instead of 'any'. */ // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */ - // "noUnusedLocals": true, /* Enable error reporting when a local variables aren't read. */ - // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read */ + // "noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */ + // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read. */ // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */ // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */ // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */ - // "noUncheckedIndexedAccess": true, /* Include 'undefined' in index signature results */ + // "noUncheckedIndexedAccess": true, /* Add 'undefined' to a type when accessed using an index. */ // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */ - // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type */ + // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type. */ // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */ // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */ diff --git a/tests/baselines/reference/tsConfig/Initialized TSConfig with boolean value compiler options/tsconfig.json b/tests/baselines/reference/tsConfig/Initialized TSConfig with boolean value compiler options/tsconfig.json index df5bf12f3e9d9..a4be57dd3410e 100644 --- a/tests/baselines/reference/tsConfig/Initialized TSConfig with boolean value compiler options/tsconfig.json +++ b/tests/baselines/reference/tsConfig/Initialized TSConfig with boolean value compiler options/tsconfig.json @@ -1,12 +1,12 @@ { "compilerOptions": { - /* Visit https://aka.ms/tsconfig.json to read more about this file */ + /* Visit https://aka.ms/tsconfig to read more about this file */ /* Projects */ - // "incremental": true, /* Enable incremental compilation */ + // "incremental": true, /* Save .tsbuildinfo files to allow for incremental compilation of projects. */ // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ - // "tsBuildInfoFile": "./", /* Specify the folder for .tsbuildinfo incremental compilation files. */ - // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects */ + // "tsBuildInfoFile": "./.tsbuildinfo", /* Specify the path to .tsbuildinfo incremental compilation file. */ + // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects. */ // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ @@ -16,12 +16,13 @@ // "jsx": "preserve", /* Specify what JSX code is generated. */ // "experimentalDecorators": true, /* Enable experimental support for TC39 stage 2 draft decorators. */ // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */ - // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h' */ + // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'. */ // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */ - // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using `jsx: react-jsx*`.` */ - // "reactNamespace": "", /* Specify the object invoked for `createElement`. This only applies when targeting `react` JSX emit. */ + // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'. */ + // "reactNamespace": "", /* Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit. */ // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ + // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */ /* Modules */ "module": "commonjs", /* Specify what module code is generated. */ @@ -30,28 +31,29 @@ // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ - // "typeRoots": [], /* Specify multiple folders that act like `./node_modules/@types`. */ + // "typeRoots": [], /* Specify multiple folders that act like './node_modules/@types'. */ // "types": [], /* Specify type package names to be included without being referenced in a source file. */ // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ - // "resolveJsonModule": true, /* Enable importing .json files */ - // "noResolve": true, /* Disallow `import`s, `require`s or ``s from expanding the number of files TypeScript should add to a project. */ + // "moduleSuffixes": [], /* List of file name suffixes to search when resolving a module. */ + // "resolveJsonModule": true, /* Enable importing .json files. */ + // "noResolve": true, /* Disallow 'import's, 'require's or ''s from expanding the number of files TypeScript should add to a project. */ /* JavaScript Support */ - // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the `checkJS` option to get errors from these files. */ + // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */ // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ - // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from `node_modules`. Only applicable with `allowJs`. */ + // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */ /* Emit */ // "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ // "declarationMap": true, /* Create sourcemaps for d.ts files. */ // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ // "sourceMap": true, /* Create source map files for emitted JavaScript files. */ - // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If `declaration` is true, also designates a file that bundles all .d.ts output. */ + // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */ // "outDir": "./", /* Specify an output folder for all emitted files. */ // "removeComments": true, /* Disable emitting comments. */ // "noEmit": true, /* Disable emitting files from a compilation. */ // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */ - // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types */ + // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types. */ // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */ // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */ // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ @@ -59,38 +61,38 @@ // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */ // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */ // "newLine": "crlf", /* Set the newline character for emitting files. */ - // "stripInternal": true, /* Disable emitting declarations that have `@internal` in their JSDoc comments. */ - // "noEmitHelpers": true, /* Disable generating custom helper functions like `__extends` in compiled output. */ + // "stripInternal": true, /* Disable emitting declarations that have '@internal' in their JSDoc comments. */ + // "noEmitHelpers": true, /* Disable generating custom helper functions like '__extends' in compiled output. */ // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */ - // "preserveConstEnums": true, /* Disable erasing `const enum` declarations in generated code. */ + // "preserveConstEnums": true, /* Disable erasing 'const enum' declarations in generated code. */ // "declarationDir": "./", /* Specify the output directory for generated declaration files. */ // "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */ /* Interop Constraints */ // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */ // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ - "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables `allowSyntheticDefaultImports` for type compatibility. */ + "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */ // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ "forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */ /* Type Checking */ "strict": true, /* Enable all strict type-checking options. */ - // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied `any` type.. */ - // "strictNullChecks": true, /* When type checking, take into account `null` and `undefined`. */ + // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */ + // "strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */ // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ - // "strictBindCallApply": true, /* Check that the arguments for `bind`, `call`, and `apply` methods match the original function. */ + // "strictBindCallApply": true, /* Check that the arguments for 'bind', 'call', and 'apply' methods match the original function. */ // "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */ - // "noImplicitThis": true, /* Enable error reporting when `this` is given the type `any`. */ - // "useUnknownInCatchVariables": true, /* Type catch clause variables as 'unknown' instead of 'any'. */ + // "noImplicitThis": true, /* Enable error reporting when 'this' is given the type 'any'. */ + // "useUnknownInCatchVariables": true, /* Default catch clause variables as 'unknown' instead of 'any'. */ // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */ - "noUnusedLocals": true, /* Enable error reporting when a local variables aren't read. */ - // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read */ + "noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */ + // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read. */ // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */ // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */ // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */ - // "noUncheckedIndexedAccess": true, /* Include 'undefined' in index signature results */ + // "noUncheckedIndexedAccess": true, /* Add 'undefined' to a type when accessed using an index. */ // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */ - // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type */ + // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type. */ // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */ // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */ diff --git a/tests/baselines/reference/tsConfig/Initialized TSConfig with enum value compiler options/tsconfig.json b/tests/baselines/reference/tsConfig/Initialized TSConfig with enum value compiler options/tsconfig.json index 9f8f66fa059c2..faa350ae98575 100644 --- a/tests/baselines/reference/tsConfig/Initialized TSConfig with enum value compiler options/tsconfig.json +++ b/tests/baselines/reference/tsConfig/Initialized TSConfig with enum value compiler options/tsconfig.json @@ -1,12 +1,12 @@ { "compilerOptions": { - /* Visit https://aka.ms/tsconfig.json to read more about this file */ + /* Visit https://aka.ms/tsconfig to read more about this file */ /* Projects */ - // "incremental": true, /* Enable incremental compilation */ + // "incremental": true, /* Save .tsbuildinfo files to allow for incremental compilation of projects. */ // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ - // "tsBuildInfoFile": "./", /* Specify the folder for .tsbuildinfo incremental compilation files. */ - // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects */ + // "tsBuildInfoFile": "./.tsbuildinfo", /* Specify the path to .tsbuildinfo incremental compilation file. */ + // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects. */ // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ @@ -16,12 +16,13 @@ "jsx": "react", /* Specify what JSX code is generated. */ // "experimentalDecorators": true, /* Enable experimental support for TC39 stage 2 draft decorators. */ // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */ - // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h' */ + // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'. */ // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */ - // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using `jsx: react-jsx*`.` */ - // "reactNamespace": "", /* Specify the object invoked for `createElement`. This only applies when targeting `react` JSX emit. */ + // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'. */ + // "reactNamespace": "", /* Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit. */ // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ + // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */ /* Modules */ "module": "commonjs", /* Specify what module code is generated. */ @@ -30,28 +31,29 @@ // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ - // "typeRoots": [], /* Specify multiple folders that act like `./node_modules/@types`. */ + // "typeRoots": [], /* Specify multiple folders that act like './node_modules/@types'. */ // "types": [], /* Specify type package names to be included without being referenced in a source file. */ // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ - // "resolveJsonModule": true, /* Enable importing .json files */ - // "noResolve": true, /* Disallow `import`s, `require`s or ``s from expanding the number of files TypeScript should add to a project. */ + // "moduleSuffixes": [], /* List of file name suffixes to search when resolving a module. */ + // "resolveJsonModule": true, /* Enable importing .json files. */ + // "noResolve": true, /* Disallow 'import's, 'require's or ''s from expanding the number of files TypeScript should add to a project. */ /* JavaScript Support */ - // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the `checkJS` option to get errors from these files. */ + // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */ // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ - // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from `node_modules`. Only applicable with `allowJs`. */ + // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */ /* Emit */ // "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ // "declarationMap": true, /* Create sourcemaps for d.ts files. */ // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ // "sourceMap": true, /* Create source map files for emitted JavaScript files. */ - // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If `declaration` is true, also designates a file that bundles all .d.ts output. */ + // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */ // "outDir": "./", /* Specify an output folder for all emitted files. */ // "removeComments": true, /* Disable emitting comments. */ // "noEmit": true, /* Disable emitting files from a compilation. */ // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */ - // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types */ + // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types. */ // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */ // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */ // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ @@ -59,38 +61,38 @@ // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */ // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */ // "newLine": "crlf", /* Set the newline character for emitting files. */ - // "stripInternal": true, /* Disable emitting declarations that have `@internal` in their JSDoc comments. */ - // "noEmitHelpers": true, /* Disable generating custom helper functions like `__extends` in compiled output. */ + // "stripInternal": true, /* Disable emitting declarations that have '@internal' in their JSDoc comments. */ + // "noEmitHelpers": true, /* Disable generating custom helper functions like '__extends' in compiled output. */ // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */ - // "preserveConstEnums": true, /* Disable erasing `const enum` declarations in generated code. */ + // "preserveConstEnums": true, /* Disable erasing 'const enum' declarations in generated code. */ // "declarationDir": "./", /* Specify the output directory for generated declaration files. */ // "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */ /* Interop Constraints */ // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */ // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ - "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables `allowSyntheticDefaultImports` for type compatibility. */ + "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */ // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ "forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */ /* Type Checking */ "strict": true, /* Enable all strict type-checking options. */ - // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied `any` type.. */ - // "strictNullChecks": true, /* When type checking, take into account `null` and `undefined`. */ + // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */ + // "strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */ // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ - // "strictBindCallApply": true, /* Check that the arguments for `bind`, `call`, and `apply` methods match the original function. */ + // "strictBindCallApply": true, /* Check that the arguments for 'bind', 'call', and 'apply' methods match the original function. */ // "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */ - // "noImplicitThis": true, /* Enable error reporting when `this` is given the type `any`. */ - // "useUnknownInCatchVariables": true, /* Type catch clause variables as 'unknown' instead of 'any'. */ + // "noImplicitThis": true, /* Enable error reporting when 'this' is given the type 'any'. */ + // "useUnknownInCatchVariables": true, /* Default catch clause variables as 'unknown' instead of 'any'. */ // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */ - // "noUnusedLocals": true, /* Enable error reporting when a local variables aren't read. */ - // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read */ + // "noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */ + // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read. */ // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */ // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */ // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */ - // "noUncheckedIndexedAccess": true, /* Include 'undefined' in index signature results */ + // "noUncheckedIndexedAccess": true, /* Add 'undefined' to a type when accessed using an index. */ // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */ - // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type */ + // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type. */ // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */ // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */ diff --git a/tests/baselines/reference/tsConfig/Initialized TSConfig with files options/tsconfig.json b/tests/baselines/reference/tsConfig/Initialized TSConfig with files options/tsconfig.json index 9fb8f59be48cc..09587994ffbcd 100644 --- a/tests/baselines/reference/tsConfig/Initialized TSConfig with files options/tsconfig.json +++ b/tests/baselines/reference/tsConfig/Initialized TSConfig with files options/tsconfig.json @@ -1,12 +1,12 @@ { "compilerOptions": { - /* Visit https://aka.ms/tsconfig.json to read more about this file */ + /* Visit https://aka.ms/tsconfig to read more about this file */ /* Projects */ - // "incremental": true, /* Enable incremental compilation */ + // "incremental": true, /* Save .tsbuildinfo files to allow for incremental compilation of projects. */ // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ - // "tsBuildInfoFile": "./", /* Specify the folder for .tsbuildinfo incremental compilation files. */ - // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects */ + // "tsBuildInfoFile": "./.tsbuildinfo", /* Specify the path to .tsbuildinfo incremental compilation file. */ + // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects. */ // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ @@ -16,12 +16,13 @@ // "jsx": "preserve", /* Specify what JSX code is generated. */ // "experimentalDecorators": true, /* Enable experimental support for TC39 stage 2 draft decorators. */ // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */ - // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h' */ + // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'. */ // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */ - // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using `jsx: react-jsx*`.` */ - // "reactNamespace": "", /* Specify the object invoked for `createElement`. This only applies when targeting `react` JSX emit. */ + // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'. */ + // "reactNamespace": "", /* Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit. */ // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ + // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */ /* Modules */ "module": "commonjs", /* Specify what module code is generated. */ @@ -30,28 +31,29 @@ // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ - // "typeRoots": [], /* Specify multiple folders that act like `./node_modules/@types`. */ + // "typeRoots": [], /* Specify multiple folders that act like './node_modules/@types'. */ // "types": [], /* Specify type package names to be included without being referenced in a source file. */ // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ - // "resolveJsonModule": true, /* Enable importing .json files */ - // "noResolve": true, /* Disallow `import`s, `require`s or ``s from expanding the number of files TypeScript should add to a project. */ + // "moduleSuffixes": [], /* List of file name suffixes to search when resolving a module. */ + // "resolveJsonModule": true, /* Enable importing .json files. */ + // "noResolve": true, /* Disallow 'import's, 'require's or ''s from expanding the number of files TypeScript should add to a project. */ /* JavaScript Support */ - // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the `checkJS` option to get errors from these files. */ + // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */ // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ - // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from `node_modules`. Only applicable with `allowJs`. */ + // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */ /* Emit */ // "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ // "declarationMap": true, /* Create sourcemaps for d.ts files. */ // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ // "sourceMap": true, /* Create source map files for emitted JavaScript files. */ - // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If `declaration` is true, also designates a file that bundles all .d.ts output. */ + // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */ // "outDir": "./", /* Specify an output folder for all emitted files. */ // "removeComments": true, /* Disable emitting comments. */ // "noEmit": true, /* Disable emitting files from a compilation. */ // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */ - // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types */ + // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types. */ // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */ // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */ // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ @@ -59,38 +61,38 @@ // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */ // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */ // "newLine": "crlf", /* Set the newline character for emitting files. */ - // "stripInternal": true, /* Disable emitting declarations that have `@internal` in their JSDoc comments. */ - // "noEmitHelpers": true, /* Disable generating custom helper functions like `__extends` in compiled output. */ + // "stripInternal": true, /* Disable emitting declarations that have '@internal' in their JSDoc comments. */ + // "noEmitHelpers": true, /* Disable generating custom helper functions like '__extends' in compiled output. */ // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */ - // "preserveConstEnums": true, /* Disable erasing `const enum` declarations in generated code. */ + // "preserveConstEnums": true, /* Disable erasing 'const enum' declarations in generated code. */ // "declarationDir": "./", /* Specify the output directory for generated declaration files. */ // "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */ /* Interop Constraints */ // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */ // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ - "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables `allowSyntheticDefaultImports` for type compatibility. */ + "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */ // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ "forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */ /* Type Checking */ "strict": true, /* Enable all strict type-checking options. */ - // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied `any` type.. */ - // "strictNullChecks": true, /* When type checking, take into account `null` and `undefined`. */ + // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */ + // "strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */ // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ - // "strictBindCallApply": true, /* Check that the arguments for `bind`, `call`, and `apply` methods match the original function. */ + // "strictBindCallApply": true, /* Check that the arguments for 'bind', 'call', and 'apply' methods match the original function. */ // "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */ - // "noImplicitThis": true, /* Enable error reporting when `this` is given the type `any`. */ - // "useUnknownInCatchVariables": true, /* Type catch clause variables as 'unknown' instead of 'any'. */ + // "noImplicitThis": true, /* Enable error reporting when 'this' is given the type 'any'. */ + // "useUnknownInCatchVariables": true, /* Default catch clause variables as 'unknown' instead of 'any'. */ // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */ - // "noUnusedLocals": true, /* Enable error reporting when a local variables aren't read. */ - // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read */ + // "noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */ + // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read. */ // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */ // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */ // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */ - // "noUncheckedIndexedAccess": true, /* Include 'undefined' in index signature results */ + // "noUncheckedIndexedAccess": true, /* Add 'undefined' to a type when accessed using an index. */ // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */ - // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type */ + // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type. */ // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */ // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */ diff --git a/tests/baselines/reference/tsConfig/Initialized TSConfig with incorrect compiler option value/tsconfig.json b/tests/baselines/reference/tsConfig/Initialized TSConfig with incorrect compiler option value/tsconfig.json index 5bb5a17baa7f3..abb2dfd47088b 100644 --- a/tests/baselines/reference/tsConfig/Initialized TSConfig with incorrect compiler option value/tsconfig.json +++ b/tests/baselines/reference/tsConfig/Initialized TSConfig with incorrect compiler option value/tsconfig.json @@ -1,12 +1,12 @@ { "compilerOptions": { - /* Visit https://aka.ms/tsconfig.json to read more about this file */ + /* Visit https://aka.ms/tsconfig to read more about this file */ /* Projects */ - // "incremental": true, /* Enable incremental compilation */ + // "incremental": true, /* Save .tsbuildinfo files to allow for incremental compilation of projects. */ // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ - // "tsBuildInfoFile": "./", /* Specify the folder for .tsbuildinfo incremental compilation files. */ - // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects */ + // "tsBuildInfoFile": "./.tsbuildinfo", /* Specify the path to .tsbuildinfo incremental compilation file. */ + // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects. */ // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ @@ -16,12 +16,13 @@ // "jsx": "preserve", /* Specify what JSX code is generated. */ // "experimentalDecorators": true, /* Enable experimental support for TC39 stage 2 draft decorators. */ // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */ - // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h' */ + // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'. */ // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */ - // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using `jsx: react-jsx*`.` */ - // "reactNamespace": "", /* Specify the object invoked for `createElement`. This only applies when targeting `react` JSX emit. */ + // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'. */ + // "reactNamespace": "", /* Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit. */ // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ + // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */ /* Modules */ "module": "commonjs", /* Specify what module code is generated. */ @@ -30,28 +31,29 @@ // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ - // "typeRoots": [], /* Specify multiple folders that act like `./node_modules/@types`. */ + // "typeRoots": [], /* Specify multiple folders that act like './node_modules/@types'. */ // "types": [], /* Specify type package names to be included without being referenced in a source file. */ // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ - // "resolveJsonModule": true, /* Enable importing .json files */ - // "noResolve": true, /* Disallow `import`s, `require`s or ``s from expanding the number of files TypeScript should add to a project. */ + // "moduleSuffixes": [], /* List of file name suffixes to search when resolving a module. */ + // "resolveJsonModule": true, /* Enable importing .json files. */ + // "noResolve": true, /* Disallow 'import's, 'require's or ''s from expanding the number of files TypeScript should add to a project. */ /* JavaScript Support */ - // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the `checkJS` option to get errors from these files. */ + // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */ // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ - // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from `node_modules`. Only applicable with `allowJs`. */ + // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */ /* Emit */ // "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ // "declarationMap": true, /* Create sourcemaps for d.ts files. */ // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ // "sourceMap": true, /* Create source map files for emitted JavaScript files. */ - // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If `declaration` is true, also designates a file that bundles all .d.ts output. */ + // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */ // "outDir": "./", /* Specify an output folder for all emitted files. */ // "removeComments": true, /* Disable emitting comments. */ // "noEmit": true, /* Disable emitting files from a compilation. */ // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */ - // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types */ + // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types. */ // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */ // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */ // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ @@ -59,38 +61,38 @@ // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */ // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */ // "newLine": "crlf", /* Set the newline character for emitting files. */ - // "stripInternal": true, /* Disable emitting declarations that have `@internal` in their JSDoc comments. */ - // "noEmitHelpers": true, /* Disable generating custom helper functions like `__extends` in compiled output. */ + // "stripInternal": true, /* Disable emitting declarations that have '@internal' in their JSDoc comments. */ + // "noEmitHelpers": true, /* Disable generating custom helper functions like '__extends' in compiled output. */ // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */ - // "preserveConstEnums": true, /* Disable erasing `const enum` declarations in generated code. */ + // "preserveConstEnums": true, /* Disable erasing 'const enum' declarations in generated code. */ // "declarationDir": "./", /* Specify the output directory for generated declaration files. */ // "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */ /* Interop Constraints */ // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */ // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ - "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables `allowSyntheticDefaultImports` for type compatibility. */ + "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */ // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ "forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */ /* Type Checking */ "strict": true, /* Enable all strict type-checking options. */ - // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied `any` type.. */ - // "strictNullChecks": true, /* When type checking, take into account `null` and `undefined`. */ + // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */ + // "strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */ // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ - // "strictBindCallApply": true, /* Check that the arguments for `bind`, `call`, and `apply` methods match the original function. */ + // "strictBindCallApply": true, /* Check that the arguments for 'bind', 'call', and 'apply' methods match the original function. */ // "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */ - // "noImplicitThis": true, /* Enable error reporting when `this` is given the type `any`. */ - // "useUnknownInCatchVariables": true, /* Type catch clause variables as 'unknown' instead of 'any'. */ + // "noImplicitThis": true, /* Enable error reporting when 'this' is given the type 'any'. */ + // "useUnknownInCatchVariables": true, /* Default catch clause variables as 'unknown' instead of 'any'. */ // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */ - // "noUnusedLocals": true, /* Enable error reporting when a local variables aren't read. */ - // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read */ + // "noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */ + // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read. */ // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */ // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */ // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */ - // "noUncheckedIndexedAccess": true, /* Include 'undefined' in index signature results */ + // "noUncheckedIndexedAccess": true, /* Add 'undefined' to a type when accessed using an index. */ // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */ - // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type */ + // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type. */ // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */ // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */ diff --git a/tests/baselines/reference/tsConfig/Initialized TSConfig with incorrect compiler option/tsconfig.json b/tests/baselines/reference/tsConfig/Initialized TSConfig with incorrect compiler option/tsconfig.json index 56794816baf82..75dcaeac2e2b9 100644 --- a/tests/baselines/reference/tsConfig/Initialized TSConfig with incorrect compiler option/tsconfig.json +++ b/tests/baselines/reference/tsConfig/Initialized TSConfig with incorrect compiler option/tsconfig.json @@ -1,12 +1,12 @@ { "compilerOptions": { - /* Visit https://aka.ms/tsconfig.json to read more about this file */ + /* Visit https://aka.ms/tsconfig to read more about this file */ /* Projects */ - // "incremental": true, /* Enable incremental compilation */ + // "incremental": true, /* Save .tsbuildinfo files to allow for incremental compilation of projects. */ // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ - // "tsBuildInfoFile": "./", /* Specify the folder for .tsbuildinfo incremental compilation files. */ - // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects */ + // "tsBuildInfoFile": "./.tsbuildinfo", /* Specify the path to .tsbuildinfo incremental compilation file. */ + // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects. */ // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ @@ -16,12 +16,13 @@ // "jsx": "preserve", /* Specify what JSX code is generated. */ // "experimentalDecorators": true, /* Enable experimental support for TC39 stage 2 draft decorators. */ // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */ - // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h' */ + // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'. */ // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */ - // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using `jsx: react-jsx*`.` */ - // "reactNamespace": "", /* Specify the object invoked for `createElement`. This only applies when targeting `react` JSX emit. */ + // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'. */ + // "reactNamespace": "", /* Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit. */ // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ + // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */ /* Modules */ "module": "commonjs", /* Specify what module code is generated. */ @@ -30,28 +31,29 @@ // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ - // "typeRoots": [], /* Specify multiple folders that act like `./node_modules/@types`. */ + // "typeRoots": [], /* Specify multiple folders that act like './node_modules/@types'. */ // "types": [], /* Specify type package names to be included without being referenced in a source file. */ // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ - // "resolveJsonModule": true, /* Enable importing .json files */ - // "noResolve": true, /* Disallow `import`s, `require`s or ``s from expanding the number of files TypeScript should add to a project. */ + // "moduleSuffixes": [], /* List of file name suffixes to search when resolving a module. */ + // "resolveJsonModule": true, /* Enable importing .json files. */ + // "noResolve": true, /* Disallow 'import's, 'require's or ''s from expanding the number of files TypeScript should add to a project. */ /* JavaScript Support */ - // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the `checkJS` option to get errors from these files. */ + // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */ // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ - // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from `node_modules`. Only applicable with `allowJs`. */ + // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */ /* Emit */ // "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ // "declarationMap": true, /* Create sourcemaps for d.ts files. */ // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ // "sourceMap": true, /* Create source map files for emitted JavaScript files. */ - // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If `declaration` is true, also designates a file that bundles all .d.ts output. */ + // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */ // "outDir": "./", /* Specify an output folder for all emitted files. */ // "removeComments": true, /* Disable emitting comments. */ // "noEmit": true, /* Disable emitting files from a compilation. */ // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */ - // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types */ + // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types. */ // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */ // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */ // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ @@ -59,38 +61,38 @@ // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */ // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */ // "newLine": "crlf", /* Set the newline character for emitting files. */ - // "stripInternal": true, /* Disable emitting declarations that have `@internal` in their JSDoc comments. */ - // "noEmitHelpers": true, /* Disable generating custom helper functions like `__extends` in compiled output. */ + // "stripInternal": true, /* Disable emitting declarations that have '@internal' in their JSDoc comments. */ + // "noEmitHelpers": true, /* Disable generating custom helper functions like '__extends' in compiled output. */ // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */ - // "preserveConstEnums": true, /* Disable erasing `const enum` declarations in generated code. */ + // "preserveConstEnums": true, /* Disable erasing 'const enum' declarations in generated code. */ // "declarationDir": "./", /* Specify the output directory for generated declaration files. */ // "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */ /* Interop Constraints */ // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */ // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ - "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables `allowSyntheticDefaultImports` for type compatibility. */ + "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */ // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ "forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */ /* Type Checking */ "strict": true, /* Enable all strict type-checking options. */ - // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied `any` type.. */ - // "strictNullChecks": true, /* When type checking, take into account `null` and `undefined`. */ + // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */ + // "strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */ // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ - // "strictBindCallApply": true, /* Check that the arguments for `bind`, `call`, and `apply` methods match the original function. */ + // "strictBindCallApply": true, /* Check that the arguments for 'bind', 'call', and 'apply' methods match the original function. */ // "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */ - // "noImplicitThis": true, /* Enable error reporting when `this` is given the type `any`. */ - // "useUnknownInCatchVariables": true, /* Type catch clause variables as 'unknown' instead of 'any'. */ + // "noImplicitThis": true, /* Enable error reporting when 'this' is given the type 'any'. */ + // "useUnknownInCatchVariables": true, /* Default catch clause variables as 'unknown' instead of 'any'. */ // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */ - // "noUnusedLocals": true, /* Enable error reporting when a local variables aren't read. */ - // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read */ + // "noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */ + // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read. */ // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */ // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */ // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */ - // "noUncheckedIndexedAccess": true, /* Include 'undefined' in index signature results */ + // "noUncheckedIndexedAccess": true, /* Add 'undefined' to a type when accessed using an index. */ // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */ - // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type */ + // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type. */ // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */ // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */ diff --git a/tests/baselines/reference/tsConfig/Initialized TSConfig with list compiler options with enum value/tsconfig.json b/tests/baselines/reference/tsConfig/Initialized TSConfig with list compiler options with enum value/tsconfig.json index 9cc8746737d98..04aa9196bfc65 100644 --- a/tests/baselines/reference/tsConfig/Initialized TSConfig with list compiler options with enum value/tsconfig.json +++ b/tests/baselines/reference/tsConfig/Initialized TSConfig with list compiler options with enum value/tsconfig.json @@ -1,12 +1,12 @@ { "compilerOptions": { - /* Visit https://aka.ms/tsconfig.json to read more about this file */ + /* Visit https://aka.ms/tsconfig to read more about this file */ /* Projects */ - // "incremental": true, /* Enable incremental compilation */ + // "incremental": true, /* Save .tsbuildinfo files to allow for incremental compilation of projects. */ // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ - // "tsBuildInfoFile": "./", /* Specify the folder for .tsbuildinfo incremental compilation files. */ - // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects */ + // "tsBuildInfoFile": "./.tsbuildinfo", /* Specify the path to .tsbuildinfo incremental compilation file. */ + // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects. */ // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ @@ -16,12 +16,13 @@ // "jsx": "preserve", /* Specify what JSX code is generated. */ // "experimentalDecorators": true, /* Enable experimental support for TC39 stage 2 draft decorators. */ // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */ - // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h' */ + // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'. */ // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */ - // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using `jsx: react-jsx*`.` */ - // "reactNamespace": "", /* Specify the object invoked for `createElement`. This only applies when targeting `react` JSX emit. */ + // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'. */ + // "reactNamespace": "", /* Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit. */ // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ + // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */ /* Modules */ "module": "commonjs", /* Specify what module code is generated. */ @@ -30,28 +31,29 @@ // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ - // "typeRoots": [], /* Specify multiple folders that act like `./node_modules/@types`. */ + // "typeRoots": [], /* Specify multiple folders that act like './node_modules/@types'. */ // "types": [], /* Specify type package names to be included without being referenced in a source file. */ // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ - // "resolveJsonModule": true, /* Enable importing .json files */ - // "noResolve": true, /* Disallow `import`s, `require`s or ``s from expanding the number of files TypeScript should add to a project. */ + // "moduleSuffixes": [], /* List of file name suffixes to search when resolving a module. */ + // "resolveJsonModule": true, /* Enable importing .json files. */ + // "noResolve": true, /* Disallow 'import's, 'require's or ''s from expanding the number of files TypeScript should add to a project. */ /* JavaScript Support */ - // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the `checkJS` option to get errors from these files. */ + // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */ // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ - // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from `node_modules`. Only applicable with `allowJs`. */ + // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */ /* Emit */ // "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ // "declarationMap": true, /* Create sourcemaps for d.ts files. */ // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ // "sourceMap": true, /* Create source map files for emitted JavaScript files. */ - // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If `declaration` is true, also designates a file that bundles all .d.ts output. */ + // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */ // "outDir": "./", /* Specify an output folder for all emitted files. */ // "removeComments": true, /* Disable emitting comments. */ // "noEmit": true, /* Disable emitting files from a compilation. */ // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */ - // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types */ + // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types. */ // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */ // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */ // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ @@ -59,38 +61,38 @@ // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */ // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */ // "newLine": "crlf", /* Set the newline character for emitting files. */ - // "stripInternal": true, /* Disable emitting declarations that have `@internal` in their JSDoc comments. */ - // "noEmitHelpers": true, /* Disable generating custom helper functions like `__extends` in compiled output. */ + // "stripInternal": true, /* Disable emitting declarations that have '@internal' in their JSDoc comments. */ + // "noEmitHelpers": true, /* Disable generating custom helper functions like '__extends' in compiled output. */ // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */ - // "preserveConstEnums": true, /* Disable erasing `const enum` declarations in generated code. */ + // "preserveConstEnums": true, /* Disable erasing 'const enum' declarations in generated code. */ // "declarationDir": "./", /* Specify the output directory for generated declaration files. */ // "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */ /* Interop Constraints */ // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */ // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ - "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables `allowSyntheticDefaultImports` for type compatibility. */ + "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */ // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ "forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */ /* Type Checking */ "strict": true, /* Enable all strict type-checking options. */ - // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied `any` type.. */ - // "strictNullChecks": true, /* When type checking, take into account `null` and `undefined`. */ + // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */ + // "strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */ // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ - // "strictBindCallApply": true, /* Check that the arguments for `bind`, `call`, and `apply` methods match the original function. */ + // "strictBindCallApply": true, /* Check that the arguments for 'bind', 'call', and 'apply' methods match the original function. */ // "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */ - // "noImplicitThis": true, /* Enable error reporting when `this` is given the type `any`. */ - // "useUnknownInCatchVariables": true, /* Type catch clause variables as 'unknown' instead of 'any'. */ + // "noImplicitThis": true, /* Enable error reporting when 'this' is given the type 'any'. */ + // "useUnknownInCatchVariables": true, /* Default catch clause variables as 'unknown' instead of 'any'. */ // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */ - // "noUnusedLocals": true, /* Enable error reporting when a local variables aren't read. */ - // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read */ + // "noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */ + // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read. */ // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */ // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */ // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */ - // "noUncheckedIndexedAccess": true, /* Include 'undefined' in index signature results */ + // "noUncheckedIndexedAccess": true, /* Add 'undefined' to a type when accessed using an index. */ // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */ - // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type */ + // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type. */ // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */ // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */ diff --git a/tests/baselines/reference/tsConfig/Initialized TSConfig with list compiler options/tsconfig.json b/tests/baselines/reference/tsConfig/Initialized TSConfig with list compiler options/tsconfig.json index 865e5f44b27f5..4eb9bb8aa4b84 100644 --- a/tests/baselines/reference/tsConfig/Initialized TSConfig with list compiler options/tsconfig.json +++ b/tests/baselines/reference/tsConfig/Initialized TSConfig with list compiler options/tsconfig.json @@ -1,12 +1,12 @@ { "compilerOptions": { - /* Visit https://aka.ms/tsconfig.json to read more about this file */ + /* Visit https://aka.ms/tsconfig to read more about this file */ /* Projects */ - // "incremental": true, /* Enable incremental compilation */ + // "incremental": true, /* Save .tsbuildinfo files to allow for incremental compilation of projects. */ // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ - // "tsBuildInfoFile": "./", /* Specify the folder for .tsbuildinfo incremental compilation files. */ - // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects */ + // "tsBuildInfoFile": "./.tsbuildinfo", /* Specify the path to .tsbuildinfo incremental compilation file. */ + // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects. */ // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ @@ -16,12 +16,13 @@ // "jsx": "preserve", /* Specify what JSX code is generated. */ // "experimentalDecorators": true, /* Enable experimental support for TC39 stage 2 draft decorators. */ // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */ - // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h' */ + // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'. */ // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */ - // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using `jsx: react-jsx*`.` */ - // "reactNamespace": "", /* Specify the object invoked for `createElement`. This only applies when targeting `react` JSX emit. */ + // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'. */ + // "reactNamespace": "", /* Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit. */ // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ + // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */ /* Modules */ "module": "commonjs", /* Specify what module code is generated. */ @@ -30,28 +31,29 @@ // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ - // "typeRoots": [], /* Specify multiple folders that act like `./node_modules/@types`. */ + // "typeRoots": [], /* Specify multiple folders that act like './node_modules/@types'. */ "types": ["jquery","mocha"], /* Specify type package names to be included without being referenced in a source file. */ // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ - // "resolveJsonModule": true, /* Enable importing .json files */ - // "noResolve": true, /* Disallow `import`s, `require`s or ``s from expanding the number of files TypeScript should add to a project. */ + // "moduleSuffixes": [], /* List of file name suffixes to search when resolving a module. */ + // "resolveJsonModule": true, /* Enable importing .json files. */ + // "noResolve": true, /* Disallow 'import's, 'require's or ''s from expanding the number of files TypeScript should add to a project. */ /* JavaScript Support */ - // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the `checkJS` option to get errors from these files. */ + // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */ // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ - // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from `node_modules`. Only applicable with `allowJs`. */ + // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */ /* Emit */ // "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ // "declarationMap": true, /* Create sourcemaps for d.ts files. */ // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ // "sourceMap": true, /* Create source map files for emitted JavaScript files. */ - // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If `declaration` is true, also designates a file that bundles all .d.ts output. */ + // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */ // "outDir": "./", /* Specify an output folder for all emitted files. */ // "removeComments": true, /* Disable emitting comments. */ // "noEmit": true, /* Disable emitting files from a compilation. */ // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */ - // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types */ + // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types. */ // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */ // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */ // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ @@ -59,38 +61,38 @@ // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */ // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */ // "newLine": "crlf", /* Set the newline character for emitting files. */ - // "stripInternal": true, /* Disable emitting declarations that have `@internal` in their JSDoc comments. */ - // "noEmitHelpers": true, /* Disable generating custom helper functions like `__extends` in compiled output. */ + // "stripInternal": true, /* Disable emitting declarations that have '@internal' in their JSDoc comments. */ + // "noEmitHelpers": true, /* Disable generating custom helper functions like '__extends' in compiled output. */ // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */ - // "preserveConstEnums": true, /* Disable erasing `const enum` declarations in generated code. */ + // "preserveConstEnums": true, /* Disable erasing 'const enum' declarations in generated code. */ // "declarationDir": "./", /* Specify the output directory for generated declaration files. */ // "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */ /* Interop Constraints */ // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */ // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ - "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables `allowSyntheticDefaultImports` for type compatibility. */ + "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */ // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ "forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */ /* Type Checking */ "strict": true, /* Enable all strict type-checking options. */ - // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied `any` type.. */ - // "strictNullChecks": true, /* When type checking, take into account `null` and `undefined`. */ + // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */ + // "strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */ // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ - // "strictBindCallApply": true, /* Check that the arguments for `bind`, `call`, and `apply` methods match the original function. */ + // "strictBindCallApply": true, /* Check that the arguments for 'bind', 'call', and 'apply' methods match the original function. */ // "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */ - // "noImplicitThis": true, /* Enable error reporting when `this` is given the type `any`. */ - // "useUnknownInCatchVariables": true, /* Type catch clause variables as 'unknown' instead of 'any'. */ + // "noImplicitThis": true, /* Enable error reporting when 'this' is given the type 'any'. */ + // "useUnknownInCatchVariables": true, /* Default catch clause variables as 'unknown' instead of 'any'. */ // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */ - // "noUnusedLocals": true, /* Enable error reporting when a local variables aren't read. */ - // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read */ + // "noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */ + // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read. */ // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */ // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */ // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */ - // "noUncheckedIndexedAccess": true, /* Include 'undefined' in index signature results */ + // "noUncheckedIndexedAccess": true, /* Add 'undefined' to a type when accessed using an index. */ // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */ - // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type */ + // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type. */ // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */ // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */ diff --git a/tests/baselines/reference/tsbuild/noEmitOnError/initial-build/syntax-errors-with-incremental.js b/tests/baselines/reference/tsbuild/noEmitOnError/initial-build/syntax-errors-with-incremental.js index 082c0357e23ad..1136e600ff010 100644 --- a/tests/baselines/reference/tsbuild/noEmitOnError/initial-build/syntax-errors-with-incremental.js +++ b/tests/baselines/reference/tsbuild/noEmitOnError/initial-build/syntax-errors-with-incremental.js @@ -47,11 +47,6 @@ Output:: 4 ;   ~ - src/src/main.ts:2:11 - 2 const a = { -    ~ - The parser expected to find a '}' to match the '{' token here. - Found 1 error. @@ -83,11 +78,6 @@ Output:: 4 ;   ~ - src/src/main.ts:2:11 - 2 const a = { -    ~ - The parser expected to find a '}' to match the '{' token here. - Found 1 error. diff --git a/tests/baselines/reference/tsbuild/noEmitOnError/initial-build/syntax-errors.js b/tests/baselines/reference/tsbuild/noEmitOnError/initial-build/syntax-errors.js index f7d8b3ce70772..2c6df079b51ff 100644 --- a/tests/baselines/reference/tsbuild/noEmitOnError/initial-build/syntax-errors.js +++ b/tests/baselines/reference/tsbuild/noEmitOnError/initial-build/syntax-errors.js @@ -47,11 +47,6 @@ Output:: 4 ;   ~ - src/src/main.ts:2:11 - 2 const a = { -    ~ - The parser expected to find a '}' to match the '{' token here. - Found 1 error. @@ -83,11 +78,6 @@ Output:: 4 ;   ~ - src/src/main.ts:2:11 - 2 const a = { -    ~ - The parser expected to find a '}' to match the '{' token here. - Found 1 error. diff --git a/tests/baselines/reference/tsbuild/sample1/initial-build/when-esModuleInterop-option-changes.js b/tests/baselines/reference/tsbuild/sample1/initial-build/when-esModuleInterop-option-changes.js index 1391bb0e38795..1db9a0891c2cb 100644 --- a/tests/baselines/reference/tsbuild/sample1/initial-build/when-esModuleInterop-option-changes.js +++ b/tests/baselines/reference/tsbuild/sample1/initial-build/when-esModuleInterop-option-changes.js @@ -438,7 +438,11 @@ exitCode:: ExitStatus.Success "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/tsbuild/watchMode/noEmitOnError/does-not-emit-any-files-on-error-with-incremental.js b/tests/baselines/reference/tsbuild/watchMode/noEmitOnError/does-not-emit-any-files-on-error-with-incremental.js index dbe3f9406cc0b..8c147b7dba4b9 100644 --- a/tests/baselines/reference/tsbuild/watchMode/noEmitOnError/does-not-emit-any-files-on-error-with-incremental.js +++ b/tests/baselines/reference/tsbuild/watchMode/noEmitOnError/does-not-emit-any-files-on-error-with-incremental.js @@ -56,11 +56,6 @@ Output:: 4 ;   ~ - src/main.ts:2:11 - 2 const a = { -    ~ - The parser expected to find a '}' to match the '{' token here. - [12:00:35 AM] Found 1 error. Watching for file changes. @@ -115,11 +110,6 @@ Output:: 4 ;   ~ - src/main.ts:2:11 - 2 const a = { -    ~ - The parser expected to find a '}' to match the '{' token here. - [12:00:42 AM] Found 1 error. Watching for file changes. diff --git a/tests/baselines/reference/tsbuild/watchMode/noEmitOnError/does-not-emit-any-files-on-error.js b/tests/baselines/reference/tsbuild/watchMode/noEmitOnError/does-not-emit-any-files-on-error.js index a5650427a1eec..dd26029f8f51e 100644 --- a/tests/baselines/reference/tsbuild/watchMode/noEmitOnError/does-not-emit-any-files-on-error.js +++ b/tests/baselines/reference/tsbuild/watchMode/noEmitOnError/does-not-emit-any-files-on-error.js @@ -56,11 +56,6 @@ Output:: 4 ;   ~ - src/main.ts:2:11 - 2 const a = { -    ~ - The parser expected to find a '}' to match the '{' token here. - [12:00:35 AM] Found 1 error. Watching for file changes. @@ -115,11 +110,6 @@ Output:: 4 ;   ~ - src/main.ts:2:11 - 2 const a = { -    ~ - The parser expected to find a '}' to match the '{' token here. - [12:00:42 AM] Found 1 error. Watching for file changes. diff --git a/tests/baselines/reference/tsbuild/watchMode/reexport/Reports-errors-correctly.js b/tests/baselines/reference/tsbuild/watchMode/reexport/Reports-errors-correctly.js index 29f9718c4d5ec..09cf4605ade15 100644 --- a/tests/baselines/reference/tsbuild/watchMode/reexport/Reports-errors-correctly.js +++ b/tests/baselines/reference/tsbuild/watchMode/reexport/Reports-errors-correctly.js @@ -166,7 +166,11 @@ export interface Session { "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/tsc/composite/initial-build/when-setting-composite-false-on-command-line-but-has-tsbuild-info-in-config.js b/tests/baselines/reference/tsc/composite/initial-build/when-setting-composite-false-on-command-line-but-has-tsbuild-info-in-config.js index 5b9300a30db29..aba5e2214654e 100644 --- a/tests/baselines/reference/tsc/composite/initial-build/when-setting-composite-false-on-command-line-but-has-tsbuild-info-in-config.js +++ b/tests/baselines/reference/tsc/composite/initial-build/when-setting-composite-false-on-command-line-but-has-tsbuild-info-in-config.js @@ -40,7 +40,7 @@ Output::    ~~~~~~~~~~~~~~~~~ -Found 1 error. +Found 1 error in src/project/tsconfig.json:6 exitCode:: ExitStatus.DiagnosticsPresent_OutputsGenerated diff --git a/tests/baselines/reference/tsc/declarationEmit/when-pkg-references-sibling-package-through-indirect-symlink-moduleCaseChange.js b/tests/baselines/reference/tsc/declarationEmit/when-pkg-references-sibling-package-through-indirect-symlink-moduleCaseChange.js index c190744661c2d..7aa8c10c67d86 100644 --- a/tests/baselines/reference/tsc/declarationEmit/when-pkg-references-sibling-package-through-indirect-symlink-moduleCaseChange.js +++ b/tests/baselines/reference/tsc/declarationEmit/when-pkg-references-sibling-package-through-indirect-symlink-moduleCaseChange.js @@ -78,7 +78,7 @@ pkg3/src/keys.ts pkg3/src/index.ts Matched by include pattern '**/*' in 'pkg3/tsconfig.json' -Found 1 error. +Found 1 error in pkg3/src/keys.ts:2 @@ -114,7 +114,11 @@ exports.ADMIN = pkg2_1.MetadataAccessor.create('1'); "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/tsc/declarationEmit/when-pkg-references-sibling-package-through-indirect-symlink.js b/tests/baselines/reference/tsc/declarationEmit/when-pkg-references-sibling-package-through-indirect-symlink.js index 14407ff2b68e4..043b54bdbb0bb 100644 --- a/tests/baselines/reference/tsc/declarationEmit/when-pkg-references-sibling-package-through-indirect-symlink.js +++ b/tests/baselines/reference/tsc/declarationEmit/when-pkg-references-sibling-package-through-indirect-symlink.js @@ -78,7 +78,7 @@ pkg3/src/keys.ts pkg3/src/index.ts Matched by include pattern '**/*' in 'pkg3/tsconfig.json' -Found 1 error. +Found 1 error in pkg3/src/keys.ts:2 @@ -114,7 +114,11 @@ exports.ADMIN = pkg2_1.MetadataAccessor.create('1'); "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/tsc/incremental/initial-build/noEmit-changes-composite.js b/tests/baselines/reference/tsc/incremental/initial-build/noEmit-changes-composite.js index 00e87a60889b2..6e44cb64d2998 100644 --- a/tests/baselines/reference/tsc/incremental/initial-build/noEmit-changes-composite.js +++ b/tests/baselines/reference/tsc/incremental/initial-build/noEmit-changes-composite.js @@ -54,7 +54,7 @@ Output::    ~~~~~~~~~~~~~~~~~~ -Found 1 error. +Found 1 error in src/project/src/noChangeFileWithEmitSpecificError.ts:1 exitCode:: ExitStatus.DiagnosticsPresent_OutputsGenerated @@ -310,8 +310,11 @@ Output:: 'prop1' is declared here. -Found 2 errors. +Found 2 errors in 2 files. +Errors Files + 1 src/project/src/directUse.ts:2 + 1 src/project/src/indirectUse.ts:2 exitCode:: ExitStatus.DiagnosticsPresent_OutputsGenerated @@ -497,7 +500,7 @@ Output::    ~~~~~~~~~~~~~~~~~~ -Found 1 error. +Found 1 error in src/project/src/noChangeFileWithEmitSpecificError.ts:1 exitCode:: ExitStatus.DiagnosticsPresent_OutputsGenerated @@ -631,7 +634,7 @@ Output::    ~~~~~~~~~~~~~~~~~~ -Found 1 error. +Found 1 error in src/project/src/noChangeFileWithEmitSpecificError.ts:1 exitCode:: ExitStatus.DiagnosticsPresent_OutputsGenerated @@ -672,7 +675,7 @@ Output::    ~~~~~~~~~~~~~~~~~~ -Found 1 error. +Found 1 error in src/project/src/noChangeFileWithEmitSpecificError.ts:1 exitCode:: ExitStatus.DiagnosticsPresent_OutputsGenerated @@ -716,8 +719,12 @@ Output::    ~~~~~~~~~~~~~~~~~~ -Found 3 errors. +Found 3 errors in 3 files. +Errors Files + 1 src/project/src/directUse.ts:2 + 1 src/project/src/indirectUse.ts:2 + 1 src/project/src/noChangeFileWithEmitSpecificError.ts:1 exitCode:: ExitStatus.DiagnosticsPresent_OutputsGenerated @@ -929,8 +936,12 @@ Output::    ~~~~~~~~~~~~~~~~~~ -Found 3 errors. +Found 3 errors in 3 files. +Errors Files + 1 src/project/src/directUse.ts:2 + 1 src/project/src/indirectUse.ts:2 + 1 src/project/src/noChangeFileWithEmitSpecificError.ts:1 exitCode:: ExitStatus.DiagnosticsPresent_OutputsGenerated @@ -963,8 +974,11 @@ Output:: 'prop1' is declared here. -Found 2 errors. +Found 2 errors in 2 files. +Errors Files + 1 src/project/src/directUse.ts:2 + 1 src/project/src/indirectUse.ts:2 exitCode:: ExitStatus.DiagnosticsPresent_OutputsSkipped @@ -997,8 +1011,11 @@ Output:: 'prop1' is declared here. -Found 2 errors. +Found 2 errors in 2 files. +Errors Files + 1 src/project/src/directUse.ts:2 + 1 src/project/src/indirectUse.ts:2 exitCode:: ExitStatus.DiagnosticsPresent_OutputsSkipped @@ -1036,8 +1053,12 @@ Output::    ~~~~~~~~~~~~~~~~~~ -Found 3 errors. +Found 3 errors in 3 files. +Errors Files + 1 src/project/src/directUse.ts:2 + 1 src/project/src/indirectUse.ts:2 + 1 src/project/src/noChangeFileWithEmitSpecificError.ts:1 exitCode:: ExitStatus.DiagnosticsPresent_OutputsGenerated @@ -1196,7 +1217,7 @@ Output::    ~~~~~~~~~~~~~~~~~~ -Found 1 error. +Found 1 error in src/project/src/noChangeFileWithEmitSpecificError.ts:1 exitCode:: ExitStatus.DiagnosticsPresent_OutputsGenerated @@ -1367,7 +1388,7 @@ Output::    ~~~~~~~~~~~~~~~~~~ -Found 1 error. +Found 1 error in src/project/src/noChangeFileWithEmitSpecificError.ts:1 exitCode:: ExitStatus.DiagnosticsPresent_OutputsGenerated diff --git a/tests/baselines/reference/tsc/incremental/initial-build/noEmit-changes-incremental-declaration.js b/tests/baselines/reference/tsc/incremental/initial-build/noEmit-changes-incremental-declaration.js index 9d7312752fb8d..2e2f7e9a2dc6b 100644 --- a/tests/baselines/reference/tsc/incremental/initial-build/noEmit-changes-incremental-declaration.js +++ b/tests/baselines/reference/tsc/incremental/initial-build/noEmit-changes-incremental-declaration.js @@ -54,7 +54,7 @@ Output::    ~~~~~~~~~~~~~~~~~~ -Found 1 error. +Found 1 error in src/project/src/noChangeFileWithEmitSpecificError.ts:1 exitCode:: ExitStatus.DiagnosticsPresent_OutputsGenerated @@ -310,8 +310,11 @@ Output:: 'prop1' is declared here. -Found 2 errors. +Found 2 errors in 2 files. +Errors Files + 1 src/project/src/directUse.ts:2 + 1 src/project/src/indirectUse.ts:2 exitCode:: ExitStatus.DiagnosticsPresent_OutputsGenerated @@ -497,7 +500,7 @@ Output::    ~~~~~~~~~~~~~~~~~~ -Found 1 error. +Found 1 error in src/project/src/noChangeFileWithEmitSpecificError.ts:1 exitCode:: ExitStatus.DiagnosticsPresent_OutputsGenerated @@ -631,7 +634,7 @@ Output::    ~~~~~~~~~~~~~~~~~~ -Found 1 error. +Found 1 error in src/project/src/noChangeFileWithEmitSpecificError.ts:1 exitCode:: ExitStatus.DiagnosticsPresent_OutputsGenerated @@ -672,7 +675,7 @@ Output::    ~~~~~~~~~~~~~~~~~~ -Found 1 error. +Found 1 error in src/project/src/noChangeFileWithEmitSpecificError.ts:1 exitCode:: ExitStatus.DiagnosticsPresent_OutputsGenerated @@ -716,8 +719,12 @@ Output::    ~~~~~~~~~~~~~~~~~~ -Found 3 errors. +Found 3 errors in 3 files. +Errors Files + 1 src/project/src/directUse.ts:2 + 1 src/project/src/indirectUse.ts:2 + 1 src/project/src/noChangeFileWithEmitSpecificError.ts:1 exitCode:: ExitStatus.DiagnosticsPresent_OutputsGenerated @@ -929,8 +936,12 @@ Output::    ~~~~~~~~~~~~~~~~~~ -Found 3 errors. +Found 3 errors in 3 files. +Errors Files + 1 src/project/src/directUse.ts:2 + 1 src/project/src/indirectUse.ts:2 + 1 src/project/src/noChangeFileWithEmitSpecificError.ts:1 exitCode:: ExitStatus.DiagnosticsPresent_OutputsGenerated @@ -963,8 +974,11 @@ Output:: 'prop1' is declared here. -Found 2 errors. +Found 2 errors in 2 files. +Errors Files + 1 src/project/src/directUse.ts:2 + 1 src/project/src/indirectUse.ts:2 exitCode:: ExitStatus.DiagnosticsPresent_OutputsSkipped @@ -997,8 +1011,11 @@ Output:: 'prop1' is declared here. -Found 2 errors. +Found 2 errors in 2 files. +Errors Files + 1 src/project/src/directUse.ts:2 + 1 src/project/src/indirectUse.ts:2 exitCode:: ExitStatus.DiagnosticsPresent_OutputsSkipped @@ -1036,8 +1053,12 @@ Output::    ~~~~~~~~~~~~~~~~~~ -Found 3 errors. +Found 3 errors in 3 files. +Errors Files + 1 src/project/src/directUse.ts:2 + 1 src/project/src/indirectUse.ts:2 + 1 src/project/src/noChangeFileWithEmitSpecificError.ts:1 exitCode:: ExitStatus.DiagnosticsPresent_OutputsGenerated @@ -1196,7 +1217,7 @@ Output::    ~~~~~~~~~~~~~~~~~~ -Found 1 error. +Found 1 error in src/project/src/noChangeFileWithEmitSpecificError.ts:1 exitCode:: ExitStatus.DiagnosticsPresent_OutputsGenerated @@ -1367,7 +1388,7 @@ Output::    ~~~~~~~~~~~~~~~~~~ -Found 1 error. +Found 1 error in src/project/src/noChangeFileWithEmitSpecificError.ts:1 exitCode:: ExitStatus.DiagnosticsPresent_OutputsGenerated diff --git a/tests/baselines/reference/tsc/incremental/initial-build/noEmit-changes-incremental.js b/tests/baselines/reference/tsc/incremental/initial-build/noEmit-changes-incremental.js index 1a14e535f5118..f445f8df17de2 100644 --- a/tests/baselines/reference/tsc/incremental/initial-build/noEmit-changes-incremental.js +++ b/tests/baselines/reference/tsc/incremental/initial-build/noEmit-changes-incremental.js @@ -54,7 +54,7 @@ Output::    ~~~~~~~~~~~~~~~~~~ -Found 1 error. +Found 1 error in src/project/src/noChangeFileWithEmitSpecificError.ts:1 exitCode:: ExitStatus.DiagnosticsPresent_OutputsGenerated @@ -278,8 +278,11 @@ Output:: 'prop1' is declared here. -Found 2 errors. +Found 2 errors in 2 files. +Errors Files + 1 src/project/src/directUse.ts:2 + 1 src/project/src/indirectUse.ts:2 exitCode:: ExitStatus.DiagnosticsPresent_OutputsGenerated @@ -462,7 +465,7 @@ Output::    ~~~~~~~~~~~~~~~~~~ -Found 1 error. +Found 1 error in src/project/src/noChangeFileWithEmitSpecificError.ts:1 exitCode:: ExitStatus.DiagnosticsPresent_OutputsGenerated @@ -589,7 +592,7 @@ Output::    ~~~~~~~~~~~~~~~~~~ -Found 1 error. +Found 1 error in src/project/src/noChangeFileWithEmitSpecificError.ts:1 exitCode:: ExitStatus.DiagnosticsPresent_OutputsGenerated @@ -630,7 +633,7 @@ Output::    ~~~~~~~~~~~~~~~~~~ -Found 1 error. +Found 1 error in src/project/src/noChangeFileWithEmitSpecificError.ts:1 exitCode:: ExitStatus.DiagnosticsPresent_OutputsGenerated @@ -674,8 +677,12 @@ Output::    ~~~~~~~~~~~~~~~~~~ -Found 3 errors. +Found 3 errors in 3 files. +Errors Files + 1 src/project/src/directUse.ts:2 + 1 src/project/src/indirectUse.ts:2 + 1 src/project/src/noChangeFileWithEmitSpecificError.ts:1 exitCode:: ExitStatus.DiagnosticsPresent_OutputsGenerated @@ -875,8 +882,12 @@ Output::    ~~~~~~~~~~~~~~~~~~ -Found 3 errors. +Found 3 errors in 3 files. +Errors Files + 1 src/project/src/directUse.ts:2 + 1 src/project/src/indirectUse.ts:2 + 1 src/project/src/noChangeFileWithEmitSpecificError.ts:1 exitCode:: ExitStatus.DiagnosticsPresent_OutputsGenerated @@ -909,8 +920,11 @@ Output:: 'prop1' is declared here. -Found 2 errors. +Found 2 errors in 2 files. +Errors Files + 1 src/project/src/directUse.ts:2 + 1 src/project/src/indirectUse.ts:2 exitCode:: ExitStatus.DiagnosticsPresent_OutputsSkipped @@ -943,8 +957,11 @@ Output:: 'prop1' is declared here. -Found 2 errors. +Found 2 errors in 2 files. +Errors Files + 1 src/project/src/directUse.ts:2 + 1 src/project/src/indirectUse.ts:2 exitCode:: ExitStatus.DiagnosticsPresent_OutputsSkipped @@ -982,8 +999,12 @@ Output::    ~~~~~~~~~~~~~~~~~~ -Found 3 errors. +Found 3 errors in 3 files. +Errors Files + 1 src/project/src/directUse.ts:2 + 1 src/project/src/indirectUse.ts:2 + 1 src/project/src/noChangeFileWithEmitSpecificError.ts:1 exitCode:: ExitStatus.DiagnosticsPresent_OutputsGenerated @@ -1131,7 +1152,7 @@ Output::    ~~~~~~~~~~~~~~~~~~ -Found 1 error. +Found 1 error in src/project/src/noChangeFileWithEmitSpecificError.ts:1 exitCode:: ExitStatus.DiagnosticsPresent_OutputsGenerated @@ -1290,7 +1311,7 @@ Output::    ~~~~~~~~~~~~~~~~~~ -Found 1 error. +Found 1 error in src/project/src/noChangeFileWithEmitSpecificError.ts:1 exitCode:: ExitStatus.DiagnosticsPresent_OutputsGenerated diff --git a/tests/baselines/reference/tsc/incremental/initial-build/noEmit-changes-with-initial-noEmit-composite.js b/tests/baselines/reference/tsc/incremental/initial-build/noEmit-changes-with-initial-noEmit-composite.js index 5213d4ed75ab8..ff0eb3c71d80d 100644 --- a/tests/baselines/reference/tsc/incremental/initial-build/noEmit-changes-with-initial-noEmit-composite.js +++ b/tests/baselines/reference/tsc/incremental/initial-build/noEmit-changes-with-initial-noEmit-composite.js @@ -198,7 +198,7 @@ Output::    ~~~~~~~~~~~~~~~~~~ -Found 1 error. +Found 1 error in src/project/src/noChangeFileWithEmitSpecificError.ts:1 exitCode:: ExitStatus.DiagnosticsPresent_OutputsGenerated @@ -437,8 +437,12 @@ Output::    ~~~~~~~~~~~~~~~~~~ -Found 3 errors. +Found 3 errors in 3 files. +Errors Files + 1 src/project/src/directUse.ts:2 + 1 src/project/src/indirectUse.ts:2 + 1 src/project/src/noChangeFileWithEmitSpecificError.ts:1 exitCode:: ExitStatus.DiagnosticsPresent_OutputsGenerated @@ -767,7 +771,7 @@ Output::    ~~~~~~~~~~~~~~~~~~ -Found 1 error. +Found 1 error in src/project/src/noChangeFileWithEmitSpecificError.ts:1 exitCode:: ExitStatus.DiagnosticsPresent_OutputsGenerated diff --git a/tests/baselines/reference/tsc/incremental/initial-build/noEmit-changes-with-initial-noEmit-incremental-declaration.js b/tests/baselines/reference/tsc/incremental/initial-build/noEmit-changes-with-initial-noEmit-incremental-declaration.js index 5eb4220816300..4fc2bd2751e26 100644 --- a/tests/baselines/reference/tsc/incremental/initial-build/noEmit-changes-with-initial-noEmit-incremental-declaration.js +++ b/tests/baselines/reference/tsc/incremental/initial-build/noEmit-changes-with-initial-noEmit-incremental-declaration.js @@ -198,7 +198,7 @@ Output::    ~~~~~~~~~~~~~~~~~~ -Found 1 error. +Found 1 error in src/project/src/noChangeFileWithEmitSpecificError.ts:1 exitCode:: ExitStatus.DiagnosticsPresent_OutputsGenerated @@ -437,8 +437,12 @@ Output::    ~~~~~~~~~~~~~~~~~~ -Found 3 errors. +Found 3 errors in 3 files. +Errors Files + 1 src/project/src/directUse.ts:2 + 1 src/project/src/indirectUse.ts:2 + 1 src/project/src/noChangeFileWithEmitSpecificError.ts:1 exitCode:: ExitStatus.DiagnosticsPresent_OutputsGenerated @@ -767,7 +771,7 @@ Output::    ~~~~~~~~~~~~~~~~~~ -Found 1 error. +Found 1 error in src/project/src/noChangeFileWithEmitSpecificError.ts:1 exitCode:: ExitStatus.DiagnosticsPresent_OutputsGenerated diff --git a/tests/baselines/reference/tsc/incremental/initial-build/noEmit-changes-with-initial-noEmit-incremental.js b/tests/baselines/reference/tsc/incremental/initial-build/noEmit-changes-with-initial-noEmit-incremental.js index 187a07d39e44a..56fbff173434b 100644 --- a/tests/baselines/reference/tsc/incremental/initial-build/noEmit-changes-with-initial-noEmit-incremental.js +++ b/tests/baselines/reference/tsc/incremental/initial-build/noEmit-changes-with-initial-noEmit-incremental.js @@ -195,7 +195,7 @@ Output::    ~~~~~~~~~~~~~~~~~~ -Found 1 error. +Found 1 error in src/project/src/noChangeFileWithEmitSpecificError.ts:1 exitCode:: ExitStatus.DiagnosticsPresent_OutputsGenerated @@ -402,8 +402,12 @@ Output::    ~~~~~~~~~~~~~~~~~~ -Found 3 errors. +Found 3 errors in 3 files. +Errors Files + 1 src/project/src/directUse.ts:2 + 1 src/project/src/indirectUse.ts:2 + 1 src/project/src/noChangeFileWithEmitSpecificError.ts:1 exitCode:: ExitStatus.DiagnosticsPresent_OutputsGenerated @@ -709,7 +713,7 @@ Output::    ~~~~~~~~~~~~~~~~~~ -Found 1 error. +Found 1 error in src/project/src/noChangeFileWithEmitSpecificError.ts:1 exitCode:: ExitStatus.DiagnosticsPresent_OutputsGenerated diff --git a/tests/baselines/reference/tsc/incremental/initial-build/serializing-error-chains.js b/tests/baselines/reference/tsc/incremental/initial-build/serializing-error-chains.js new file mode 100644 index 0000000000000..6cf4aaf5a3c1f --- /dev/null +++ b/tests/baselines/reference/tsc/incremental/initial-build/serializing-error-chains.js @@ -0,0 +1,185 @@ +Input:: +//// [/lib/lib.d.ts] +/// +interface Boolean {} +interface Function {} +interface CallableFunction {} +interface NewableFunction {} +interface IArguments {} +interface Number { toExponential: any; } +interface Object {} +interface RegExp {} +interface String { charAt: any; } +interface Array { length: number; [n: number]: T; } +interface ReadonlyArray {} +declare const console: { log(msg: any): void; }; +interface ReadonlyArray { readonly length: number } + +//// [/src/project/index.tsx] +declare namespace JSX { + interface ElementChildrenAttribute { children: {}; } + interface IntrinsicElements { div: {} } +} + +declare var React: any; + +declare function Component(props: never): any; +declare function Component(props: { children?: number }): any; +( +

+
+) + +//// [/src/project/tsconfig.json] +{"compilerOptions":{"incremental":true,"strict":true,"jsx":"react","module":"esnext"}} + + + +Output:: +/lib/tsc -p src/project +src/project/index.tsx:10:3 - error TS2746: This JSX tag's 'children' prop expects a single child of type 'never', but multiple children were provided. + +10 ( +   ~~~~~~~~~ + +src/project/index.tsx:10:3 - error TS2746: This JSX tag's 'children' prop expects a single child of type 'number | undefined', but multiple children were provided. + +10 ( +   ~~~~~~~~~ + +src/project/index.tsx:10:3 - error TS2769: No overload matches this call. + This JSX tag's 'children' prop expects a single child of type 'never', but multiple children were provided. + This JSX tag's 'children' prop expects a single child of type 'number | undefined', but multiple children were provided. + +10 ( +   ~~~~~~~~~ + + + +Found 3 errors in the same file, starting at: src/project/index.tsx:10 + +exitCode:: ExitStatus.DiagnosticsPresent_OutputsGenerated + + +//// [/src/project/index.js] +"use strict"; +(React.createElement(Component, null, + React.createElement("div", null), + React.createElement("div", null))); + + +//// [/src/project/tsconfig.tsbuildinfo] +{"program":{"fileNames":["../../lib/lib.d.ts","./index.tsx"],"fileInfos":[{"version":"7198220534-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };\ninterface ReadonlyArray { readonly length: number }","affectsGlobalScope":true},{"version":"42569361247-declare namespace JSX {\n interface ElementChildrenAttribute { children: {}; }\n interface IntrinsicElements { div: {} }\n}\n\ndeclare var React: any;\n\ndeclare function Component(props: never): any;\ndeclare function Component(props: { children?: number }): any;\n(\n
\n
\n)","affectsGlobalScope":true}],"options":{"jsx":2,"module":99,"strict":true},"referencedMap":[],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,[2,[{"file":"./index.tsx","start":265,"length":9,"messageText":"This JSX tag's 'children' prop expects a single child of type 'never', but multiple children were provided.","category":1,"code":2746},{"file":"./index.tsx","start":265,"length":9,"messageText":"This JSX tag's 'children' prop expects a single child of type 'number | undefined', but multiple children were provided.","category":1,"code":2746},{"file":"./index.tsx","start":265,"length":9,"code":2769,"category":1,"messageText":{"messageText":"No overload matches this call.","category":1,"code":2769,"next":[{"code":2746,"category":1,"messageText":"This JSX tag's 'children' prop expects a single child of type 'never', but multiple children were provided."},{"code":2746,"category":1,"messageText":"This JSX tag's 'children' prop expects a single child of type 'number | undefined', but multiple children were provided."}]},"relatedInformation":[]}]]]},"version":"FakeTSVersion"} + +//// [/src/project/tsconfig.tsbuildinfo.readable.baseline.txt] +{ + "program": { + "fileNames": [ + "../../lib/lib.d.ts", + "./index.tsx" + ], + "fileInfos": { + "../../lib/lib.d.ts": { + "version": "7198220534-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };\ninterface ReadonlyArray { readonly length: number }", + "signature": "7198220534-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };\ninterface ReadonlyArray { readonly length: number }", + "affectsGlobalScope": true + }, + "./index.tsx": { + "version": "42569361247-declare namespace JSX {\n interface ElementChildrenAttribute { children: {}; }\n interface IntrinsicElements { div: {} }\n}\n\ndeclare var React: any;\n\ndeclare function Component(props: never): any;\ndeclare function Component(props: { children?: number }): any;\n(\n
\n
\n)", + "signature": "42569361247-declare namespace JSX {\n interface ElementChildrenAttribute { children: {}; }\n interface IntrinsicElements { div: {} }\n}\n\ndeclare var React: any;\n\ndeclare function Component(props: never): any;\ndeclare function Component(props: { children?: number }): any;\n(\n
\n
\n)", + "affectsGlobalScope": true + } + }, + "options": { + "jsx": 2, + "module": 99, + "strict": true + }, + "referencedMap": {}, + "exportedModulesMap": {}, + "semanticDiagnosticsPerFile": [ + "../../lib/lib.d.ts", + [ + "./index.tsx", + [ + { + "file": "./index.tsx", + "start": 265, + "length": 9, + "messageText": "This JSX tag's 'children' prop expects a single child of type 'never', but multiple children were provided.", + "category": 1, + "code": 2746 + }, + { + "file": "./index.tsx", + "start": 265, + "length": 9, + "messageText": "This JSX tag's 'children' prop expects a single child of type 'number | undefined', but multiple children were provided.", + "category": 1, + "code": 2746 + }, + { + "file": "./index.tsx", + "start": 265, + "length": 9, + "code": 2769, + "category": 1, + "messageText": { + "messageText": "No overload matches this call.", + "category": 1, + "code": 2769, + "next": [ + { + "code": 2746, + "category": 1, + "messageText": "This JSX tag's 'children' prop expects a single child of type 'never', but multiple children were provided." + }, + { + "code": 2746, + "category": 1, + "messageText": "This JSX tag's 'children' prop expects a single child of type 'number | undefined', but multiple children were provided." + } + ] + }, + "relatedInformation": [] + } + ] + ] + ] + }, + "version": "FakeTSVersion", + "size": 2053 +} + + + +Change:: no-change-run +Input:: + + +Output:: +/lib/tsc -p src/project +src/project/index.tsx:10:3 - error TS2746: This JSX tag's 'children' prop expects a single child of type 'never', but multiple children were provided. + +10 ( +   ~~~~~~~~~ + +src/project/index.tsx:10:3 - error TS2746: This JSX tag's 'children' prop expects a single child of type 'number | undefined', but multiple children were provided. + +10 ( +   ~~~~~~~~~ + +src/project/index.tsx:10:3 - error TS2769: No overload matches this call. + This JSX tag's 'children' prop expects a single child of type 'never', but multiple children were provided. + This JSX tag's 'children' prop expects a single child of type 'number | undefined', but multiple children were provided. + +10 ( +   ~~~~~~~~~ + + + +Found 3 errors in the same file, starting at: src/project/index.tsx:10 + +exitCode:: ExitStatus.DiagnosticsPresent_OutputsGenerated + + diff --git a/tests/baselines/reference/tsc/incremental/initial-build/when-global-file-is-added,-the-signatures-are-updated.js b/tests/baselines/reference/tsc/incremental/initial-build/when-global-file-is-added,-the-signatures-are-updated.js index bbf6f23b6aad7..996ed74a21088 100644 --- a/tests/baselines/reference/tsc/incremental/initial-build/when-global-file-is-added,-the-signatures-are-updated.js +++ b/tests/baselines/reference/tsc/incremental/initial-build/when-global-file-is-added,-the-signatures-are-updated.js @@ -47,8 +47,11 @@ Output::    ~~~~~~~~~~~~~~~~~ -Found 2 errors. +Found 2 errors in 2 files. +Errors Files + 1 src/project/src/anotherFileWithSameReferenes.ts:2 + 1 src/project/src/main.ts:2 exitCode:: ExitStatus.DiagnosticsPresent_OutputsGenerated Program root files: ["/src/project/src/anotherFileWithSameReferenes.ts","/src/project/src/filePresent.ts","/src/project/src/main.ts"] Program options: {"composite":true,"project":"/src/project","configFilePath":"/src/project/tsconfig.json"} @@ -196,8 +199,11 @@ Output::    ~~~~~~~~~~~~~~~~~ -Found 2 errors. +Found 2 errors in 2 files. +Errors Files + 1 src/project/src/anotherFileWithSameReferenes.ts:2 + 1 src/project/src/main.ts:2 exitCode:: ExitStatus.DiagnosticsPresent_OutputsGenerated Program root files: ["/src/project/src/anotherFileWithSameReferenes.ts","/src/project/src/filePresent.ts","/src/project/src/main.ts"] Program options: {"composite":true,"project":"/src/project","configFilePath":"/src/project/tsconfig.json"} @@ -238,8 +244,11 @@ Output::    ~~~~~~~~~~~~~~~~~ -Found 2 errors. +Found 2 errors in 2 files. +Errors Files + 1 src/project/src/anotherFileWithSameReferenes.ts:2 + 1 src/project/src/main.ts:2 exitCode:: ExitStatus.DiagnosticsPresent_OutputsGenerated Program root files: ["/src/project/src/anotherFileWithSameReferenes.ts","/src/project/src/filePresent.ts","/src/project/src/main.ts"] Program options: {"composite":true,"project":"/src/project","configFilePath":"/src/project/tsconfig.json"} @@ -365,8 +374,11 @@ Output::    ~~~~~~~~~~~~~~~~~ -Found 2 errors. +Found 2 errors in 2 files. +Errors Files + 1 src/project/src/anotherFileWithSameReferenes.ts:2 + 1 src/project/src/main.ts:2 exitCode:: ExitStatus.DiagnosticsPresent_OutputsGenerated Program root files: ["/src/project/src/anotherFileWithSameReferenes.ts","/src/project/src/filePresent.ts","/src/project/src/main.ts"] Program options: {"composite":true,"project":"/src/project","configFilePath":"/src/project/tsconfig.json"} @@ -488,8 +500,11 @@ Output::    ~~~~~~~~~~~~~~~~~ -Found 2 errors. +Found 2 errors in 2 files. +Errors Files + 1 src/project/src/anotherFileWithSameReferenes.ts:2 + 1 src/project/src/main.ts:3 exitCode:: ExitStatus.DiagnosticsPresent_OutputsGenerated Program root files: ["/src/project/src/anotherFileWithSameReferenes.ts","/src/project/src/filePresent.ts","/src/project/src/main.ts","/src/project/src/newFile.ts"] Program options: {"composite":true,"project":"/src/project","configFilePath":"/src/project/tsconfig.json"} diff --git a/tests/baselines/reference/tsc/incremental/initial-build/with-noEmitOnError-semantic-errors.js b/tests/baselines/reference/tsc/incremental/initial-build/with-noEmitOnError-semantic-errors.js index ed383ba64c188..43a4d74796d47 100644 --- a/tests/baselines/reference/tsc/incremental/initial-build/with-noEmitOnError-semantic-errors.js +++ b/tests/baselines/reference/tsc/incremental/initial-build/with-noEmitOnError-semantic-errors.js @@ -46,7 +46,7 @@ Output::    ~ -Found 1 error. +Found 1 error in src/src/main.ts:2 exitCode:: ExitStatus.DiagnosticsPresent_OutputsSkipped Program root files: ["/src/shared/types/db.ts","/src/src/main.ts","/src/src/other.ts"] @@ -172,7 +172,7 @@ Output::    ~ -Found 1 error. +Found 1 error in src/src/main.ts:2 exitCode:: ExitStatus.DiagnosticsPresent_OutputsSkipped Program root files: ["/src/shared/types/db.ts","/src/src/main.ts","/src/src/other.ts"] diff --git a/tests/baselines/reference/tsc/incremental/initial-build/with-noEmitOnError-syntax-errors.js b/tests/baselines/reference/tsc/incremental/initial-build/with-noEmitOnError-syntax-errors.js index ef2593bfa760b..9e9ee7f46c9d7 100644 --- a/tests/baselines/reference/tsc/incremental/initial-build/with-noEmitOnError-syntax-errors.js +++ b/tests/baselines/reference/tsc/incremental/initial-build/with-noEmitOnError-syntax-errors.js @@ -47,13 +47,8 @@ Output:: 4 ;   ~ - src/src/main.ts:2:11 - 2 const a = { -    ~ - The parser expected to find a '}' to match the '{' token here. - -Found 1 error. +Found 1 error in src/src/main.ts:4 exitCode:: ExitStatus.DiagnosticsPresent_OutputsSkipped Program root files: ["/src/shared/types/db.ts","/src/src/main.ts","/src/src/other.ts"] @@ -166,13 +161,8 @@ Output:: 4 ;   ~ - src/src/main.ts:2:11 - 2 const a = { -    ~ - The parser expected to find a '}' to match the '{' token here. - -Found 1 error. +Found 1 error in src/src/main.ts:4 exitCode:: ExitStatus.DiagnosticsPresent_OutputsSkipped Program root files: ["/src/shared/types/db.ts","/src/src/main.ts","/src/src/other.ts"] diff --git a/tests/baselines/reference/tsc/projectReferences/initial-build/when-project-contains-invalid-project-reference.js b/tests/baselines/reference/tsc/projectReferences/initial-build/when-project-contains-invalid-project-reference.js index ab55d2a9e860d..2349f7c8d11bd 100644 --- a/tests/baselines/reference/tsc/projectReferences/initial-build/when-project-contains-invalid-project-reference.js +++ b/tests/baselines/reference/tsc/projectReferences/initial-build/when-project-contains-invalid-project-reference.js @@ -30,7 +30,7 @@ Output::    ~~~~~~~~~~~~~~~~~~~~~~~~ -Found 1 error. +Found 1 error in src/project/tsconfig.json:1 exitCode:: ExitStatus.DiagnosticsPresent_OutputsGenerated diff --git a/tests/baselines/reference/tsc/projectReferences/initial-build/when-project-references-composite-project-with-noEmit.js b/tests/baselines/reference/tsc/projectReferences/initial-build/when-project-references-composite-project-with-noEmit.js index fbdfa2fa4d2d0..567d039c7dfa2 100644 --- a/tests/baselines/reference/tsc/projectReferences/initial-build/when-project-references-composite-project-with-noEmit.js +++ b/tests/baselines/reference/tsc/projectReferences/initial-build/when-project-references-composite-project-with-noEmit.js @@ -36,7 +36,7 @@ Output::    ~~~~~~~~~~~~~~~~~~~ -Found 1 error. +Found 1 error in src/project/tsconfig.json:1 exitCode:: ExitStatus.DiagnosticsPresent_OutputsGenerated diff --git a/tests/baselines/reference/tsc/react-jsx-emit-mode/initial-build/with-no-backing-types-found-doesn't-crash-under---strict.js b/tests/baselines/reference/tsc/react-jsx-emit-mode/initial-build/with-no-backing-types-found-doesn't-crash-under---strict.js index 79c5719f321f4..5c280d6f8f16f 100644 --- a/tests/baselines/reference/tsc/react-jsx-emit-mode/initial-build/with-no-backing-types-found-doesn't-crash-under---strict.js +++ b/tests/baselines/reference/tsc/react-jsx-emit-mode/initial-build/with-no-backing-types-found-doesn't-crash-under---strict.js @@ -47,7 +47,7 @@ Output::    ~~~~~~~~~~~~~~~~~~~~~~~~ -Found 1 error. +Found 1 error in src/project/src/index.tsx:1 exitCode:: ExitStatus.DiagnosticsPresent_OutputsGenerated @@ -57,7 +57,7 @@ exitCode:: ExitStatus.DiagnosticsPresent_OutputsGenerated exports.__esModule = true; exports.App = void 0; var jsx_runtime_1 = require("react/jsx-runtime"); -var App = function () { return (0, jsx_runtime_1.jsx)("div", { propA: true }, void 0); }; +var App = function () { return (0, jsx_runtime_1.jsx)("div", { propA: true }); }; exports.App = App; diff --git a/tests/baselines/reference/tsc/react-jsx-emit-mode/initial-build/with-no-backing-types-found-doesn't-crash.js b/tests/baselines/reference/tsc/react-jsx-emit-mode/initial-build/with-no-backing-types-found-doesn't-crash.js index c024df2326931..d1d33bd22eb58 100644 --- a/tests/baselines/reference/tsc/react-jsx-emit-mode/initial-build/with-no-backing-types-found-doesn't-crash.js +++ b/tests/baselines/reference/tsc/react-jsx-emit-mode/initial-build/with-no-backing-types-found-doesn't-crash.js @@ -49,7 +49,7 @@ exitCode:: ExitStatus.Success exports.__esModule = true; exports.App = void 0; var jsx_runtime_1 = require("react/jsx-runtime"); -var App = function () { return (0, jsx_runtime_1.jsx)("div", { propA: true }, void 0); }; +var App = function () { return (0, jsx_runtime_1.jsx)("div", { propA: true }); }; exports.App = App; diff --git a/tests/baselines/reference/tsc/runWithoutArgs/initial-build/does-not-add-color-when-NO_COLOR-is-set.js b/tests/baselines/reference/tsc/runWithoutArgs/initial-build/does-not-add-color-when-NO_COLOR-is-set.js index 100d910dfbaba..0787913fab7b7 100644 --- a/tests/baselines/reference/tsc/runWithoutArgs/initial-build/does-not-add-color-when-NO_COLOR-is-set.js +++ b/tests/baselines/reference/tsc/runWithoutArgs/initial-build/does-not-add-color-when-NO_COLOR-is-set.js @@ -62,25 +62,27 @@ Print the final configuration instead of building. COMMON COMPILER OPTIONS --pretty -Enable color and formatting in TypeScript's output to make compiler errors easier to read +Enable color and formatting in TypeScript's output to make compiler errors easier to read. type: boolean default: true --target, -t Set the JavaScript language version for emitted JavaScript and include compatible library declarations. -one of: es3, es5, es6, es2015, es2016, es2017, es2018, es2019, es2020, es2021, esnext -default: ES3 +one of: es3, es5, es6/es2015, es2016, es2017, es2018, es2019, es2020, es2021, es2022, esnext +default: es3 --module, -m Specify what module code is generated. -one of: none, commonjs, amd, system, umd, es6, es2015, es2020, es2022, esnext, node12, nodenext +one of: none, commonjs, amd, umd, system, es6/es2015, es2020, es2022, esnext, node12, nodenext +default: undefined --lib Specify a set of bundled library declaration files that describe the target runtime environment. -one or more: es5, es6, es2015, es7, es2016, es2017, es2018, es2019, es2020, es2021, esnext, dom, dom.iterable, webworker, webworker.importscripts, webworker.iterable, scripthost, es2015.core, es2015.collection, es2015.generator, es2015.iterable, es2015.promise, es2015.proxy, es2015.reflect, es2015.symbol, es2015.symbol.wellknown, es2016.array.include, es2017.object, es2017.sharedmemory, es2017.string, es2017.intl, es2017.typedarrays, es2018.asyncgenerator, es2018.asynciterable, es2018.intl, es2018.promise, es2018.regexp, es2019.array, es2019.object, es2019.string, es2019.symbol, es2020.bigint, es2020.promise, es2020.sharedmemory, es2020.string, es2020.symbol.wellknown, es2020.intl, es2021.promise, es2021.string, es2021.weakref, es2021.intl, esnext.array, esnext.symbol, esnext.asynciterable, esnext.intl, esnext.bigint, esnext.string, esnext.promise, esnext.weakref +one or more: es5, es6/es2015, es7/es2016, es2017, es2018, es2019, es2020, es2021, es2022, esnext, dom, dom.iterable, webworker, webworker.importscripts, webworker.iterable, scripthost, es2015.core, es2015.collection, es2015.generator, es2015.iterable, es2015.promise, es2015.proxy, es2015.reflect, es2015.symbol, es2015.symbol.wellknown, es2016.array.include, es2017.object, es2017.sharedmemory, es2017.string, es2017.intl, es2017.typedarrays, es2018.asyncgenerator, es2018.asynciterable/esnext.asynciterable, es2018.intl, es2018.promise, es2018.regexp, es2019.array, es2019.object, es2019.string, es2019.symbol/esnext.symbol, es2020.bigint/esnext.bigint, es2020.date, es2020.promise, es2020.sharedmemory, es2020.string, es2020.symbol.wellknown, es2020.intl, es2020.number, es2021.promise/esnext.promise, es2021.string, es2021.weakref/esnext.weakref, es2021.intl, es2022.array/esnext.array, es2022.error, es2022.object, es2022.string/esnext.string, esnext.intl +default: undefined --allowJs -Allow JavaScript files to be a part of your program. Use the `checkJS` option to get errors from these files. +Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. type: boolean default: false @@ -91,7 +93,7 @@ default: false --jsx Specify what JSX code is generated. -one of: preserve, react-native, react, react-jsx, react-jsxdev +one of: preserve, react, react-native, react-jsx, react-jsxdev default: undefined --declaration, -d @@ -115,7 +117,7 @@ type: boolean default: false --outFile -Specify a file that bundles all outputs into one JavaScript file. If `declaration` is true, also designates a file that bundles all .d.ts output. +Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. --outDir Specify an output folder for all emitted files. @@ -139,11 +141,11 @@ default: false Specify type package names to be included without being referenced in a source file. --esModuleInterop -Emit additional JavaScript to ease support for importing CommonJS modules. This enables `allowSyntheticDefaultImports` for type compatibility. +Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. type: boolean default: false -You can learn about all of the compiler options at https://aka.ms/tsconfig-reference +You can learn about all of the compiler options at https://aka.ms/tsc exitCode:: ExitStatus.DiagnosticsPresent_OutputsSkipped diff --git a/tests/baselines/reference/tsc/runWithoutArgs/initial-build/show-help-with-ExitStatus.DiagnosticsPresent_OutputsSkipped-when-host-can't-provide-terminal-width.js b/tests/baselines/reference/tsc/runWithoutArgs/initial-build/show-help-with-ExitStatus.DiagnosticsPresent_OutputsSkipped-when-host-can't-provide-terminal-width.js index 3b4922b2fe603..1cedf13936666 100644 --- a/tests/baselines/reference/tsc/runWithoutArgs/initial-build/show-help-with-ExitStatus.DiagnosticsPresent_OutputsSkipped-when-host-can't-provide-terminal-width.js +++ b/tests/baselines/reference/tsc/runWithoutArgs/initial-build/show-help-with-ExitStatus.DiagnosticsPresent_OutputsSkipped-when-host-can't-provide-terminal-width.js @@ -62,25 +62,27 @@ Print the final configuration instead of building. COMMON COMPILER OPTIONS --pretty -Enable color and formatting in TypeScript's output to make compiler errors easier to read +Enable color and formatting in TypeScript's output to make compiler errors easier to read. type: boolean default: true --target, -t Set the JavaScript language version for emitted JavaScript and include compatible library declarations. -one of: es3, es5, es6, es2015, es2016, es2017, es2018, es2019, es2020, es2021, esnext -default: ES3 +one of: es3, es5, es6/es2015, es2016, es2017, es2018, es2019, es2020, es2021, es2022, esnext +default: es3 --module, -m Specify what module code is generated. -one of: none, commonjs, amd, system, umd, es6, es2015, es2020, es2022, esnext, node12, nodenext +one of: none, commonjs, amd, umd, system, es6/es2015, es2020, es2022, esnext, node12, nodenext +default: undefined --lib Specify a set of bundled library declaration files that describe the target runtime environment. -one or more: es5, es6, es2015, es7, es2016, es2017, es2018, es2019, es2020, es2021, esnext, dom, dom.iterable, webworker, webworker.importscripts, webworker.iterable, scripthost, es2015.core, es2015.collection, es2015.generator, es2015.iterable, es2015.promise, es2015.proxy, es2015.reflect, es2015.symbol, es2015.symbol.wellknown, es2016.array.include, es2017.object, es2017.sharedmemory, es2017.string, es2017.intl, es2017.typedarrays, es2018.asyncgenerator, es2018.asynciterable, es2018.intl, es2018.promise, es2018.regexp, es2019.array, es2019.object, es2019.string, es2019.symbol, es2020.bigint, es2020.promise, es2020.sharedmemory, es2020.string, es2020.symbol.wellknown, es2020.intl, es2021.promise, es2021.string, es2021.weakref, es2021.intl, esnext.array, esnext.symbol, esnext.asynciterable, esnext.intl, esnext.bigint, esnext.string, esnext.promise, esnext.weakref +one or more: es5, es6/es2015, es7/es2016, es2017, es2018, es2019, es2020, es2021, es2022, esnext, dom, dom.iterable, webworker, webworker.importscripts, webworker.iterable, scripthost, es2015.core, es2015.collection, es2015.generator, es2015.iterable, es2015.promise, es2015.proxy, es2015.reflect, es2015.symbol, es2015.symbol.wellknown, es2016.array.include, es2017.object, es2017.sharedmemory, es2017.string, es2017.intl, es2017.typedarrays, es2018.asyncgenerator, es2018.asynciterable/esnext.asynciterable, es2018.intl, es2018.promise, es2018.regexp, es2019.array, es2019.object, es2019.string, es2019.symbol/esnext.symbol, es2020.bigint/esnext.bigint, es2020.date, es2020.promise, es2020.sharedmemory, es2020.string, es2020.symbol.wellknown, es2020.intl, es2020.number, es2021.promise/esnext.promise, es2021.string, es2021.weakref/esnext.weakref, es2021.intl, es2022.array/esnext.array, es2022.error, es2022.object, es2022.string/esnext.string, esnext.intl +default: undefined --allowJs -Allow JavaScript files to be a part of your program. Use the `checkJS` option to get errors from these files. +Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. type: boolean default: false @@ -91,7 +93,7 @@ default: false --jsx Specify what JSX code is generated. -one of: preserve, react-native, react, react-jsx, react-jsxdev +one of: preserve, react, react-native, react-jsx, react-jsxdev default: undefined --declaration, -d @@ -115,7 +117,7 @@ type: boolean default: false --outFile -Specify a file that bundles all outputs into one JavaScript file. If `declaration` is true, also designates a file that bundles all .d.ts output. +Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. --outDir Specify an output folder for all emitted files. @@ -139,11 +141,11 @@ default: false Specify type package names to be included without being referenced in a source file. --esModuleInterop -Emit additional JavaScript to ease support for importing CommonJS modules. This enables `allowSyntheticDefaultImports` for type compatibility. +Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. type: boolean default: false -You can learn about all of the compiler options at https://aka.ms/tsconfig-reference +You can learn about all of the compiler options at https://aka.ms/tsc exitCode:: ExitStatus.DiagnosticsPresent_OutputsSkipped diff --git a/tests/baselines/reference/tsc/runWithoutArgs/initial-build/show-help-with-ExitStatus.DiagnosticsPresent_OutputsSkipped.js b/tests/baselines/reference/tsc/runWithoutArgs/initial-build/show-help-with-ExitStatus.DiagnosticsPresent_OutputsSkipped.js index 3b4922b2fe603..1cedf13936666 100644 --- a/tests/baselines/reference/tsc/runWithoutArgs/initial-build/show-help-with-ExitStatus.DiagnosticsPresent_OutputsSkipped.js +++ b/tests/baselines/reference/tsc/runWithoutArgs/initial-build/show-help-with-ExitStatus.DiagnosticsPresent_OutputsSkipped.js @@ -62,25 +62,27 @@ Print the final configuration instead of building. COMMON COMPILER OPTIONS --pretty -Enable color and formatting in TypeScript's output to make compiler errors easier to read +Enable color and formatting in TypeScript's output to make compiler errors easier to read. type: boolean default: true --target, -t Set the JavaScript language version for emitted JavaScript and include compatible library declarations. -one of: es3, es5, es6, es2015, es2016, es2017, es2018, es2019, es2020, es2021, esnext -default: ES3 +one of: es3, es5, es6/es2015, es2016, es2017, es2018, es2019, es2020, es2021, es2022, esnext +default: es3 --module, -m Specify what module code is generated. -one of: none, commonjs, amd, system, umd, es6, es2015, es2020, es2022, esnext, node12, nodenext +one of: none, commonjs, amd, umd, system, es6/es2015, es2020, es2022, esnext, node12, nodenext +default: undefined --lib Specify a set of bundled library declaration files that describe the target runtime environment. -one or more: es5, es6, es2015, es7, es2016, es2017, es2018, es2019, es2020, es2021, esnext, dom, dom.iterable, webworker, webworker.importscripts, webworker.iterable, scripthost, es2015.core, es2015.collection, es2015.generator, es2015.iterable, es2015.promise, es2015.proxy, es2015.reflect, es2015.symbol, es2015.symbol.wellknown, es2016.array.include, es2017.object, es2017.sharedmemory, es2017.string, es2017.intl, es2017.typedarrays, es2018.asyncgenerator, es2018.asynciterable, es2018.intl, es2018.promise, es2018.regexp, es2019.array, es2019.object, es2019.string, es2019.symbol, es2020.bigint, es2020.promise, es2020.sharedmemory, es2020.string, es2020.symbol.wellknown, es2020.intl, es2021.promise, es2021.string, es2021.weakref, es2021.intl, esnext.array, esnext.symbol, esnext.asynciterable, esnext.intl, esnext.bigint, esnext.string, esnext.promise, esnext.weakref +one or more: es5, es6/es2015, es7/es2016, es2017, es2018, es2019, es2020, es2021, es2022, esnext, dom, dom.iterable, webworker, webworker.importscripts, webworker.iterable, scripthost, es2015.core, es2015.collection, es2015.generator, es2015.iterable, es2015.promise, es2015.proxy, es2015.reflect, es2015.symbol, es2015.symbol.wellknown, es2016.array.include, es2017.object, es2017.sharedmemory, es2017.string, es2017.intl, es2017.typedarrays, es2018.asyncgenerator, es2018.asynciterable/esnext.asynciterable, es2018.intl, es2018.promise, es2018.regexp, es2019.array, es2019.object, es2019.string, es2019.symbol/esnext.symbol, es2020.bigint/esnext.bigint, es2020.date, es2020.promise, es2020.sharedmemory, es2020.string, es2020.symbol.wellknown, es2020.intl, es2020.number, es2021.promise/esnext.promise, es2021.string, es2021.weakref/esnext.weakref, es2021.intl, es2022.array/esnext.array, es2022.error, es2022.object, es2022.string/esnext.string, esnext.intl +default: undefined --allowJs -Allow JavaScript files to be a part of your program. Use the `checkJS` option to get errors from these files. +Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. type: boolean default: false @@ -91,7 +93,7 @@ default: false --jsx Specify what JSX code is generated. -one of: preserve, react-native, react, react-jsx, react-jsxdev +one of: preserve, react, react-native, react-jsx, react-jsxdev default: undefined --declaration, -d @@ -115,7 +117,7 @@ type: boolean default: false --outFile -Specify a file that bundles all outputs into one JavaScript file. If `declaration` is true, also designates a file that bundles all .d.ts output. +Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. --outDir Specify an output folder for all emitted files. @@ -139,11 +141,11 @@ default: false Specify type package names to be included without being referenced in a source file. --esModuleInterop -Emit additional JavaScript to ease support for importing CommonJS modules. This enables `allowSyntheticDefaultImports` for type compatibility. +Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. type: boolean default: false -You can learn about all of the compiler options at https://aka.ms/tsconfig-reference +You can learn about all of the compiler options at https://aka.ms/tsc exitCode:: ExitStatus.DiagnosticsPresent_OutputsSkipped diff --git a/tests/baselines/reference/tscWatch/consoleClearing/with---diagnostics.js b/tests/baselines/reference/tscWatch/consoleClearing/with---diagnostics.js index 0416d37ad8b5b..d032563a545d9 100644 --- a/tests/baselines/reference/tscWatch/consoleClearing/with---diagnostics.js +++ b/tests/baselines/reference/tscWatch/consoleClearing/with---diagnostics.js @@ -71,9 +71,9 @@ Output:: FileWatcher:: Triggered with /f.ts 1:: WatchInfo: /f.ts 250 undefined Source file Scheduling update Elapsed:: *ms FileWatcher:: Triggered with /f.ts 1:: WatchInfo: /f.ts 250 undefined Source file +Synchronizing program [12:00:17 AM] File change detected. Starting incremental compilation... -Synchronizing program CreatingProgramWith:: roots: ["/f.ts"] options: {"watch":true,"diagnostics":true} diff --git a/tests/baselines/reference/tscWatch/consoleClearing/with---extendedDiagnostics.js b/tests/baselines/reference/tscWatch/consoleClearing/with---extendedDiagnostics.js index 8889c3fd19377..e021f79145ef0 100644 --- a/tests/baselines/reference/tscWatch/consoleClearing/with---extendedDiagnostics.js +++ b/tests/baselines/reference/tscWatch/consoleClearing/with---extendedDiagnostics.js @@ -73,9 +73,9 @@ Output:: FileWatcher:: Triggered with /f.ts 1:: WatchInfo: /f.ts 250 undefined Source file Scheduling update Elapsed:: *ms FileWatcher:: Triggered with /f.ts 1:: WatchInfo: /f.ts 250 undefined Source file +Synchronizing program [12:00:17 AM] File change detected. Starting incremental compilation... -Synchronizing program CreatingProgramWith:: roots: ["/f.ts"] options: {"watch":true,"extendedDiagnostics":true} diff --git a/tests/baselines/reference/tscWatch/emit/emit-file-content/elides-const-enums-correctly-in-incremental-compilation.js b/tests/baselines/reference/tscWatch/emit/emit-file-content/elides-const-enums-correctly-in-incremental-compilation.js index 226d5f0d00cd5..956eca5b5d3f0 100644 --- a/tests/baselines/reference/tscWatch/emit/emit-file-content/elides-const-enums-correctly-in-incremental-compilation.js +++ b/tests/baselines/reference/tscWatch/emit/emit-file-content/elides-const-enums-correctly-in-incremental-compilation.js @@ -81,7 +81,7 @@ exports.__esModule = true; //// [/user/someone/projects/myproject/file3.js] "use strict"; exports.__esModule = true; -var v = 1 /* V */; +var v = 1 /* E2.V */; @@ -134,7 +134,7 @@ exitCode:: ExitStatus.undefined //// [/user/someone/projects/myproject/file3.js] "use strict"; exports.__esModule = true; -var v = 1 /* V */; +var v = 1 /* E2.V */; function foo2() { return 2; } diff --git a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/assumeChangesOnlyAffectDirectDependencies/transitive-exports/no-circular-import/export.js b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/assumeChangesOnlyAffectDirectDependencies/transitive-exports/no-circular-import/export.js index 0237630666c12..668de3197073d 100644 --- a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/assumeChangesOnlyAffectDirectDependencies/transitive-exports/no-circular-import/export.js +++ b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/assumeChangesOnlyAffectDirectDependencies/transitive-exports/no-circular-import/export.js @@ -123,7 +123,11 @@ exports.__esModule = true; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -139,7 +143,11 @@ __exportStar(require("./tools.interface"), exports); "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -173,7 +181,11 @@ exports.Data = Data; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/assumeChangesOnlyAffectDirectDependencies/transitive-exports/yes-circular-import/exports.js b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/assumeChangesOnlyAffectDirectDependencies/transitive-exports/yes-circular-import/exports.js index 8e2a2098f5771..c6e0b42637201 100644 --- a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/assumeChangesOnlyAffectDirectDependencies/transitive-exports/yes-circular-import/exports.js +++ b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/assumeChangesOnlyAffectDirectDependencies/transitive-exports/yes-circular-import/exports.js @@ -134,7 +134,11 @@ exports.__esModule = true; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -150,7 +154,11 @@ __exportStar(require("./tools.interface"), exports); "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -196,7 +204,11 @@ exports.Data = Data; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/assumeChangesOnlyAffectDirectDependencies/with-noEmitOnError-with-incremental.js b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/assumeChangesOnlyAffectDirectDependencies/with-noEmitOnError-with-incremental.js index 1b6ac4047e971..10cfb6a2a9db9 100644 --- a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/assumeChangesOnlyAffectDirectDependencies/with-noEmitOnError-with-incremental.js +++ b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/assumeChangesOnlyAffectDirectDependencies/with-noEmitOnError-with-incremental.js @@ -43,11 +43,6 @@ Output:: 4 ;   ~ - src/main.ts:2:11 - 2 const a = { -    ~ - The parser expected to find a '}' to match the '{' token here. - [12:00:37 AM] Found 1 error. Watching for file changes. @@ -186,11 +181,6 @@ Output:: 4 ;   ~ - src/main.ts:2:11 - 2 const a = { -    ~ - The parser expected to find a '}' to match the '{' token here. - [12:00:44 AM] Found 1 error. Watching for file changes. diff --git a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/assumeChangesOnlyAffectDirectDependencies/with-noEmitOnError.js b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/assumeChangesOnlyAffectDirectDependencies/with-noEmitOnError.js index aa7e92cea40b6..4aff6d522fa99 100644 --- a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/assumeChangesOnlyAffectDirectDependencies/with-noEmitOnError.js +++ b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/assumeChangesOnlyAffectDirectDependencies/with-noEmitOnError.js @@ -43,11 +43,6 @@ Output:: 4 ;   ~ - src/main.ts:2:11 - 2 const a = { -    ~ - The parser expected to find a '}' to match the '{' token here. - [12:00:32 AM] Found 1 error. Watching for file changes. @@ -110,11 +105,6 @@ Output:: 4 ;   ~ - src/main.ts:2:11 - 2 const a = { -    ~ - The parser expected to find a '}' to match the '{' token here. - [12:00:37 AM] Found 1 error. Watching for file changes. diff --git a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/assumeChangesOnlyAffectDirectDependenciesAndD/transitive-exports/no-circular-import/export.js b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/assumeChangesOnlyAffectDirectDependenciesAndD/transitive-exports/no-circular-import/export.js index 953b7fbf8013b..28f3a658982f5 100644 --- a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/assumeChangesOnlyAffectDirectDependenciesAndD/transitive-exports/no-circular-import/export.js +++ b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/assumeChangesOnlyAffectDirectDependenciesAndD/transitive-exports/no-circular-import/export.js @@ -129,7 +129,11 @@ export interface ITest { "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -149,7 +153,11 @@ export * from "./tools.interface"; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -194,7 +202,11 @@ export declare class Data { "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/assumeChangesOnlyAffectDirectDependenciesAndD/transitive-exports/yes-circular-import/exports.js b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/assumeChangesOnlyAffectDirectDependenciesAndD/transitive-exports/yes-circular-import/exports.js index 713dde9eb1d67..78a60956f6cda 100644 --- a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/assumeChangesOnlyAffectDirectDependenciesAndD/transitive-exports/yes-circular-import/exports.js +++ b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/assumeChangesOnlyAffectDirectDependenciesAndD/transitive-exports/yes-circular-import/exports.js @@ -140,7 +140,11 @@ export interface ITest { "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -160,7 +164,11 @@ export * from "./tools.interface"; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -226,7 +234,11 @@ export declare class Data { "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/assumeChangesOnlyAffectDirectDependenciesAndD/with-noEmitOnError-with-incremental.js b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/assumeChangesOnlyAffectDirectDependenciesAndD/with-noEmitOnError-with-incremental.js index b10c0f6511528..2390754cc1538 100644 --- a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/assumeChangesOnlyAffectDirectDependenciesAndD/with-noEmitOnError-with-incremental.js +++ b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/assumeChangesOnlyAffectDirectDependenciesAndD/with-noEmitOnError-with-incremental.js @@ -43,11 +43,6 @@ Output:: 4 ;   ~ - src/main.ts:2:11 - 2 const a = { -    ~ - The parser expected to find a '}' to match the '{' token here. - [12:00:37 AM] Found 1 error. Watching for file changes. @@ -187,11 +182,6 @@ Output:: 4 ;   ~ - src/main.ts:2:11 - 2 const a = { -    ~ - The parser expected to find a '}' to match the '{' token here. - [12:00:44 AM] Found 1 error. Watching for file changes. diff --git a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/assumeChangesOnlyAffectDirectDependenciesAndD/with-noEmitOnError.js b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/assumeChangesOnlyAffectDirectDependenciesAndD/with-noEmitOnError.js index ddaecdf84612d..a858fd1aff63c 100644 --- a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/assumeChangesOnlyAffectDirectDependenciesAndD/with-noEmitOnError.js +++ b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/assumeChangesOnlyAffectDirectDependenciesAndD/with-noEmitOnError.js @@ -43,11 +43,6 @@ Output:: 4 ;   ~ - src/main.ts:2:11 - 2 const a = { -    ~ - The parser expected to find a '}' to match the '{' token here. - [12:00:32 AM] Found 1 error. Watching for file changes. @@ -110,11 +105,6 @@ Output:: 4 ;   ~ - src/main.ts:2:11 - 2 const a = { -    ~ - The parser expected to find a '}' to match the '{' token here. - [12:00:37 AM] Found 1 error. Watching for file changes. diff --git a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/default/transitive-exports/no-circular-import/export.js b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/default/transitive-exports/no-circular-import/export.js index 3a5be53f86022..12f34fb44e190 100644 --- a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/default/transitive-exports/no-circular-import/export.js +++ b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/default/transitive-exports/no-circular-import/export.js @@ -123,7 +123,11 @@ exports.__esModule = true; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -139,7 +143,11 @@ __exportStar(require("./tools.interface"), exports); "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -173,7 +181,11 @@ exports.Data = Data; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/default/transitive-exports/yes-circular-import/exports.js b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/default/transitive-exports/yes-circular-import/exports.js index b43ae5e8cc78c..f635f3ae38bf0 100644 --- a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/default/transitive-exports/yes-circular-import/exports.js +++ b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/default/transitive-exports/yes-circular-import/exports.js @@ -134,7 +134,11 @@ exports.__esModule = true; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -150,7 +154,11 @@ __exportStar(require("./tools.interface"), exports); "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -196,7 +204,11 @@ exports.Data = Data; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/default/with-noEmitOnError-with-incremental.js b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/default/with-noEmitOnError-with-incremental.js index 680ca0162399a..d01d060fe1319 100644 --- a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/default/with-noEmitOnError-with-incremental.js +++ b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/default/with-noEmitOnError-with-incremental.js @@ -49,11 +49,6 @@ Output:: 4 ;   ~ - src/main.ts:2:11 - 2 const a = { -    ~ - The parser expected to find a '}' to match the '{' token here. - [12:00:37 AM] Found 1 error. Watching for file changes. @@ -191,11 +186,6 @@ Output:: 4 ;   ~ - src/main.ts:2:11 - 2 const a = { -    ~ - The parser expected to find a '}' to match the '{' token here. - [12:00:44 AM] Found 1 error. Watching for file changes. diff --git a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/default/with-noEmitOnError.js b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/default/with-noEmitOnError.js index 49c10238bde54..bd644b773bad1 100644 --- a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/default/with-noEmitOnError.js +++ b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/default/with-noEmitOnError.js @@ -49,11 +49,6 @@ Output:: 4 ;   ~ - src/main.ts:2:11 - 2 const a = { -    ~ - The parser expected to find a '}' to match the '{' token here. - [12:00:32 AM] Found 1 error. Watching for file changes. @@ -116,11 +111,6 @@ Output:: 4 ;   ~ - src/main.ts:2:11 - 2 const a = { -    ~ - The parser expected to find a '}' to match the '{' token here. - [12:00:37 AM] Found 1 error. Watching for file changes. diff --git a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/defaultAndD/transitive-exports/no-circular-import/export.js b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/defaultAndD/transitive-exports/no-circular-import/export.js index 04d185f609247..8d05ca1c19fc6 100644 --- a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/defaultAndD/transitive-exports/no-circular-import/export.js +++ b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/defaultAndD/transitive-exports/no-circular-import/export.js @@ -129,7 +129,11 @@ export interface ITest { "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -149,7 +153,11 @@ export * from "./tools.interface"; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -194,7 +202,11 @@ export declare class Data { "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/defaultAndD/transitive-exports/yes-circular-import/exports.js b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/defaultAndD/transitive-exports/yes-circular-import/exports.js index 47f6264bd13a9..d50dd2518dd79 100644 --- a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/defaultAndD/transitive-exports/yes-circular-import/exports.js +++ b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/defaultAndD/transitive-exports/yes-circular-import/exports.js @@ -140,7 +140,11 @@ export interface ITest { "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -160,7 +164,11 @@ export * from "./tools.interface"; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -226,7 +234,11 @@ export declare class Data { "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/defaultAndD/with-noEmitOnError-with-incremental.js b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/defaultAndD/with-noEmitOnError-with-incremental.js index 5504e79d6c0a4..3e5507d61da81 100644 --- a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/defaultAndD/with-noEmitOnError-with-incremental.js +++ b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/defaultAndD/with-noEmitOnError-with-incremental.js @@ -43,11 +43,6 @@ Output:: 4 ;   ~ - src/main.ts:2:11 - 2 const a = { -    ~ - The parser expected to find a '}' to match the '{' token here. - [12:00:37 AM] Found 1 error. Watching for file changes. @@ -186,11 +181,6 @@ Output:: 4 ;   ~ - src/main.ts:2:11 - 2 const a = { -    ~ - The parser expected to find a '}' to match the '{' token here. - [12:00:44 AM] Found 1 error. Watching for file changes. diff --git a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/defaultAndD/with-noEmitOnError.js b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/defaultAndD/with-noEmitOnError.js index b9b04241577ec..efbd1eccf804c 100644 --- a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/defaultAndD/with-noEmitOnError.js +++ b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/defaultAndD/with-noEmitOnError.js @@ -43,11 +43,6 @@ Output:: 4 ;   ~ - src/main.ts:2:11 - 2 const a = { -    ~ - The parser expected to find a '}' to match the '{' token here. - [12:00:32 AM] Found 1 error. Watching for file changes. @@ -110,11 +105,6 @@ Output:: 4 ;   ~ - src/main.ts:2:11 - 2 const a = { -    ~ - The parser expected to find a '}' to match the '{' token here. - [12:00:37 AM] Found 1 error. Watching for file changes. diff --git a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/assumeChangesOnlyAffectDirectDependencies/transitive-exports/no-circular-import/export.js b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/assumeChangesOnlyAffectDirectDependencies/transitive-exports/no-circular-import/export.js index ccc1f7f6425fc..079a29e8103f8 100644 --- a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/assumeChangesOnlyAffectDirectDependencies/transitive-exports/no-circular-import/export.js +++ b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/assumeChangesOnlyAffectDirectDependencies/transitive-exports/no-circular-import/export.js @@ -123,7 +123,11 @@ exports.__esModule = true; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -139,7 +143,11 @@ __exportStar(require("./tools.interface"), exports); "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -173,7 +181,11 @@ exports.Data = Data; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/assumeChangesOnlyAffectDirectDependencies/transitive-exports/yes-circular-import/exports.js b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/assumeChangesOnlyAffectDirectDependencies/transitive-exports/yes-circular-import/exports.js index 8588caf937d36..b6640524b36d7 100644 --- a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/assumeChangesOnlyAffectDirectDependencies/transitive-exports/yes-circular-import/exports.js +++ b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/assumeChangesOnlyAffectDirectDependencies/transitive-exports/yes-circular-import/exports.js @@ -134,7 +134,11 @@ exports.__esModule = true; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -150,7 +154,11 @@ __exportStar(require("./tools.interface"), exports); "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -196,7 +204,11 @@ exports.Data = Data; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/assumeChangesOnlyAffectDirectDependencies/with-noEmitOnError-with-incremental.js b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/assumeChangesOnlyAffectDirectDependencies/with-noEmitOnError-with-incremental.js index 7291c98e72737..e42e43bd8b646 100644 --- a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/assumeChangesOnlyAffectDirectDependencies/with-noEmitOnError-with-incremental.js +++ b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/assumeChangesOnlyAffectDirectDependencies/with-noEmitOnError-with-incremental.js @@ -43,11 +43,6 @@ Output:: 4 ;   ~ - src/main.ts:2:11 - 2 const a = { -    ~ - The parser expected to find a '}' to match the '{' token here. - [12:00:37 AM] Found 1 error. Watching for file changes. @@ -186,11 +181,6 @@ Output:: 4 ;   ~ - src/main.ts:2:11 - 2 const a = { -    ~ - The parser expected to find a '}' to match the '{' token here. - [12:00:44 AM] Found 1 error. Watching for file changes. diff --git a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/assumeChangesOnlyAffectDirectDependencies/with-noEmitOnError.js b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/assumeChangesOnlyAffectDirectDependencies/with-noEmitOnError.js index 4bc5c19afa412..9dde0054674ce 100644 --- a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/assumeChangesOnlyAffectDirectDependencies/with-noEmitOnError.js +++ b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/assumeChangesOnlyAffectDirectDependencies/with-noEmitOnError.js @@ -43,11 +43,6 @@ Output:: 4 ;   ~ - src/main.ts:2:11 - 2 const a = { -    ~ - The parser expected to find a '}' to match the '{' token here. - [12:00:37 AM] Found 1 error. Watching for file changes. @@ -186,11 +181,6 @@ Output:: 4 ;   ~ - src/main.ts:2:11 - 2 const a = { -    ~ - The parser expected to find a '}' to match the '{' token here. - [12:00:44 AM] Found 1 error. Watching for file changes. diff --git a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/assumeChangesOnlyAffectDirectDependenciesAndD/transitive-exports/no-circular-import/export.js b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/assumeChangesOnlyAffectDirectDependenciesAndD/transitive-exports/no-circular-import/export.js index 439a01e9fe23b..e9705bfdad79a 100644 --- a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/assumeChangesOnlyAffectDirectDependenciesAndD/transitive-exports/no-circular-import/export.js +++ b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/assumeChangesOnlyAffectDirectDependenciesAndD/transitive-exports/no-circular-import/export.js @@ -129,7 +129,11 @@ export interface ITest { "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -149,7 +153,11 @@ export * from "./tools.interface"; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -194,7 +202,11 @@ export declare class Data { "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/assumeChangesOnlyAffectDirectDependenciesAndD/transitive-exports/yes-circular-import/exports.js b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/assumeChangesOnlyAffectDirectDependenciesAndD/transitive-exports/yes-circular-import/exports.js index 4958929c7817b..b3d83d79b0afa 100644 --- a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/assumeChangesOnlyAffectDirectDependenciesAndD/transitive-exports/yes-circular-import/exports.js +++ b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/assumeChangesOnlyAffectDirectDependenciesAndD/transitive-exports/yes-circular-import/exports.js @@ -140,7 +140,11 @@ export interface ITest { "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -160,7 +164,11 @@ export * from "./tools.interface"; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -226,7 +234,11 @@ export declare class Data { "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/assumeChangesOnlyAffectDirectDependenciesAndD/with-noEmitOnError-with-incremental.js b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/assumeChangesOnlyAffectDirectDependenciesAndD/with-noEmitOnError-with-incremental.js index d9742fb8dc2f8..a4f88ae81e0a5 100644 --- a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/assumeChangesOnlyAffectDirectDependenciesAndD/with-noEmitOnError-with-incremental.js +++ b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/assumeChangesOnlyAffectDirectDependenciesAndD/with-noEmitOnError-with-incremental.js @@ -43,11 +43,6 @@ Output:: 4 ;   ~ - src/main.ts:2:11 - 2 const a = { -    ~ - The parser expected to find a '}' to match the '{' token here. - [12:00:37 AM] Found 1 error. Watching for file changes. @@ -187,11 +182,6 @@ Output:: 4 ;   ~ - src/main.ts:2:11 - 2 const a = { -    ~ - The parser expected to find a '}' to match the '{' token here. - [12:00:44 AM] Found 1 error. Watching for file changes. diff --git a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/assumeChangesOnlyAffectDirectDependenciesAndD/with-noEmitOnError.js b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/assumeChangesOnlyAffectDirectDependenciesAndD/with-noEmitOnError.js index 63451347e9da4..869ce1a85e67a 100644 --- a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/assumeChangesOnlyAffectDirectDependenciesAndD/with-noEmitOnError.js +++ b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/assumeChangesOnlyAffectDirectDependenciesAndD/with-noEmitOnError.js @@ -43,11 +43,6 @@ Output:: 4 ;   ~ - src/main.ts:2:11 - 2 const a = { -    ~ - The parser expected to find a '}' to match the '{' token here. - [12:00:37 AM] Found 1 error. Watching for file changes. @@ -187,11 +182,6 @@ Output:: 4 ;   ~ - src/main.ts:2:11 - 2 const a = { -    ~ - The parser expected to find a '}' to match the '{' token here. - [12:00:44 AM] Found 1 error. Watching for file changes. diff --git a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/default/transitive-exports/no-circular-import/export.js b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/default/transitive-exports/no-circular-import/export.js index d40edf8b192b7..33455df772015 100644 --- a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/default/transitive-exports/no-circular-import/export.js +++ b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/default/transitive-exports/no-circular-import/export.js @@ -123,7 +123,11 @@ exports.__esModule = true; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -139,7 +143,11 @@ __exportStar(require("./tools.interface"), exports); "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -173,7 +181,11 @@ exports.Data = Data; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/default/transitive-exports/yes-circular-import/exports.js b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/default/transitive-exports/yes-circular-import/exports.js index 7278d90e9d5c3..f72cf752238d1 100644 --- a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/default/transitive-exports/yes-circular-import/exports.js +++ b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/default/transitive-exports/yes-circular-import/exports.js @@ -134,7 +134,11 @@ exports.__esModule = true; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -150,7 +154,11 @@ __exportStar(require("./tools.interface"), exports); "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -196,7 +204,11 @@ exports.Data = Data; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/default/with-noEmitOnError-with-incremental.js b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/default/with-noEmitOnError-with-incremental.js index bfe304fb1016b..050317bc3b808 100644 --- a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/default/with-noEmitOnError-with-incremental.js +++ b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/default/with-noEmitOnError-with-incremental.js @@ -49,11 +49,6 @@ Output:: 4 ;   ~ - src/main.ts:2:11 - 2 const a = { -    ~ - The parser expected to find a '}' to match the '{' token here. - [12:00:37 AM] Found 1 error. Watching for file changes. @@ -191,11 +186,6 @@ Output:: 4 ;   ~ - src/main.ts:2:11 - 2 const a = { -    ~ - The parser expected to find a '}' to match the '{' token here. - [12:00:44 AM] Found 1 error. Watching for file changes. diff --git a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/default/with-noEmitOnError.js b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/default/with-noEmitOnError.js index 8b2a1ce440c96..ab3c4d7927f42 100644 --- a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/default/with-noEmitOnError.js +++ b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/default/with-noEmitOnError.js @@ -49,11 +49,6 @@ Output:: 4 ;   ~ - src/main.ts:2:11 - 2 const a = { -    ~ - The parser expected to find a '}' to match the '{' token here. - [12:00:37 AM] Found 1 error. Watching for file changes. @@ -191,11 +186,6 @@ Output:: 4 ;   ~ - src/main.ts:2:11 - 2 const a = { -    ~ - The parser expected to find a '}' to match the '{' token here. - [12:00:44 AM] Found 1 error. Watching for file changes. diff --git a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/defaultAndD/transitive-exports/no-circular-import/export.js b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/defaultAndD/transitive-exports/no-circular-import/export.js index 2c31fcb210358..8037a31e3aa56 100644 --- a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/defaultAndD/transitive-exports/no-circular-import/export.js +++ b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/defaultAndD/transitive-exports/no-circular-import/export.js @@ -129,7 +129,11 @@ export interface ITest { "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -149,7 +153,11 @@ export * from "./tools.interface"; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -194,7 +202,11 @@ export declare class Data { "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/defaultAndD/transitive-exports/yes-circular-import/exports.js b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/defaultAndD/transitive-exports/yes-circular-import/exports.js index f5ed82b6ff13f..d858978aba489 100644 --- a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/defaultAndD/transitive-exports/yes-circular-import/exports.js +++ b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/defaultAndD/transitive-exports/yes-circular-import/exports.js @@ -140,7 +140,11 @@ export interface ITest { "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -160,7 +164,11 @@ export * from "./tools.interface"; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -226,7 +234,11 @@ export declare class Data { "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/defaultAndD/with-noEmitOnError-with-incremental.js b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/defaultAndD/with-noEmitOnError-with-incremental.js index 0dc3563c45f10..a7fb75106e936 100644 --- a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/defaultAndD/with-noEmitOnError-with-incremental.js +++ b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/defaultAndD/with-noEmitOnError-with-incremental.js @@ -43,11 +43,6 @@ Output:: 4 ;   ~ - src/main.ts:2:11 - 2 const a = { -    ~ - The parser expected to find a '}' to match the '{' token here. - [12:00:37 AM] Found 1 error. Watching for file changes. @@ -186,11 +181,6 @@ Output:: 4 ;   ~ - src/main.ts:2:11 - 2 const a = { -    ~ - The parser expected to find a '}' to match the '{' token here. - [12:00:44 AM] Found 1 error. Watching for file changes. diff --git a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/defaultAndD/with-noEmitOnError.js b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/defaultAndD/with-noEmitOnError.js index 43f3dac67f63b..bc663a126affe 100644 --- a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/defaultAndD/with-noEmitOnError.js +++ b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/defaultAndD/with-noEmitOnError.js @@ -43,11 +43,6 @@ Output:: 4 ;   ~ - src/main.ts:2:11 - 2 const a = { -    ~ - The parser expected to find a '}' to match the '{' token here. - [12:00:37 AM] Found 1 error. Watching for file changes. @@ -186,11 +181,6 @@ Output:: 4 ;   ~ - src/main.ts:2:11 - 2 const a = { -    ~ - The parser expected to find a '}' to match the '{' token here. - [12:00:44 AM] Found 1 error. Watching for file changes. diff --git a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/isolatedModules/transitive-exports/no-circular-import/export.js b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/isolatedModules/transitive-exports/no-circular-import/export.js index 18e3c362441eb..9f576d8cb82f3 100644 --- a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/isolatedModules/transitive-exports/no-circular-import/export.js +++ b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/isolatedModules/transitive-exports/no-circular-import/export.js @@ -123,7 +123,11 @@ exports.__esModule = true; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -139,7 +143,11 @@ __exportStar(require("./tools.interface"), exports); "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -173,7 +181,11 @@ exports.Data = Data; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/isolatedModules/transitive-exports/yes-circular-import/exports.js b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/isolatedModules/transitive-exports/yes-circular-import/exports.js index 90fdbe7b3374c..3cc11bccabbb9 100644 --- a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/isolatedModules/transitive-exports/yes-circular-import/exports.js +++ b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/isolatedModules/transitive-exports/yes-circular-import/exports.js @@ -134,7 +134,11 @@ exports.__esModule = true; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -150,7 +154,11 @@ __exportStar(require("./tools.interface"), exports); "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -196,7 +204,11 @@ exports.Data = Data; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/isolatedModules/with-noEmitOnError-with-incremental.js b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/isolatedModules/with-noEmitOnError-with-incremental.js index 4d7a3186387f2..7df8484e45904 100644 --- a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/isolatedModules/with-noEmitOnError-with-incremental.js +++ b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/isolatedModules/with-noEmitOnError-with-incremental.js @@ -43,11 +43,6 @@ Output:: 4 ;   ~ - src/main.ts:2:11 - 2 const a = { -    ~ - The parser expected to find a '}' to match the '{' token here. - [12:00:37 AM] Found 1 error. Watching for file changes. @@ -185,11 +180,6 @@ Output:: 4 ;   ~ - src/main.ts:2:11 - 2 const a = { -    ~ - The parser expected to find a '}' to match the '{' token here. - [12:00:44 AM] Found 1 error. Watching for file changes. diff --git a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/isolatedModules/with-noEmitOnError.js b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/isolatedModules/with-noEmitOnError.js index fca72b9245541..ecd40437efddc 100644 --- a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/isolatedModules/with-noEmitOnError.js +++ b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/isolatedModules/with-noEmitOnError.js @@ -43,11 +43,6 @@ Output:: 4 ;   ~ - src/main.ts:2:11 - 2 const a = { -    ~ - The parser expected to find a '}' to match the '{' token here. - [12:00:37 AM] Found 1 error. Watching for file changes. @@ -185,11 +180,6 @@ Output:: 4 ;   ~ - src/main.ts:2:11 - 2 const a = { -    ~ - The parser expected to find a '}' to match the '{' token here. - [12:00:44 AM] Found 1 error. Watching for file changes. diff --git a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/isolatedModulesAndD/transitive-exports/no-circular-import/export.js b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/isolatedModulesAndD/transitive-exports/no-circular-import/export.js index b33400d973abd..ffa7cb905e45f 100644 --- a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/isolatedModulesAndD/transitive-exports/no-circular-import/export.js +++ b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/isolatedModulesAndD/transitive-exports/no-circular-import/export.js @@ -129,7 +129,11 @@ export interface ITest { "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -149,7 +153,11 @@ export * from "./tools.interface"; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -194,7 +202,11 @@ export declare class Data { "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/isolatedModulesAndD/transitive-exports/yes-circular-import/exports.js b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/isolatedModulesAndD/transitive-exports/yes-circular-import/exports.js index 4db5a0b92cf71..66f43221dcbe2 100644 --- a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/isolatedModulesAndD/transitive-exports/yes-circular-import/exports.js +++ b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/isolatedModulesAndD/transitive-exports/yes-circular-import/exports.js @@ -140,7 +140,11 @@ export interface ITest { "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -160,7 +164,11 @@ export * from "./tools.interface"; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -226,7 +234,11 @@ export declare class Data { "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/isolatedModulesAndD/with-noEmitOnError-with-incremental.js b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/isolatedModulesAndD/with-noEmitOnError-with-incremental.js index e0dbb9ef2cc5c..7b7d97027af24 100644 --- a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/isolatedModulesAndD/with-noEmitOnError-with-incremental.js +++ b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/isolatedModulesAndD/with-noEmitOnError-with-incremental.js @@ -43,11 +43,6 @@ Output:: 4 ;   ~ - src/main.ts:2:11 - 2 const a = { -    ~ - The parser expected to find a '}' to match the '{' token here. - [12:00:37 AM] Found 1 error. Watching for file changes. @@ -186,11 +181,6 @@ Output:: 4 ;   ~ - src/main.ts:2:11 - 2 const a = { -    ~ - The parser expected to find a '}' to match the '{' token here. - [12:00:44 AM] Found 1 error. Watching for file changes. diff --git a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/isolatedModulesAndD/with-noEmitOnError.js b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/isolatedModulesAndD/with-noEmitOnError.js index 24b383020ebe6..0944f16a31671 100644 --- a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/isolatedModulesAndD/with-noEmitOnError.js +++ b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/incremental/isolatedModulesAndD/with-noEmitOnError.js @@ -43,11 +43,6 @@ Output:: 4 ;   ~ - src/main.ts:2:11 - 2 const a = { -    ~ - The parser expected to find a '}' to match the '{' token here. - [12:00:37 AM] Found 1 error. Watching for file changes. @@ -186,11 +181,6 @@ Output:: 4 ;   ~ - src/main.ts:2:11 - 2 const a = { -    ~ - The parser expected to find a '}' to match the '{' token here. - [12:00:44 AM] Found 1 error. Watching for file changes. diff --git a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/isolatedModules/transitive-exports/no-circular-import/export.js b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/isolatedModules/transitive-exports/no-circular-import/export.js index 256d89ce0ff7d..666c696b59ce8 100644 --- a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/isolatedModules/transitive-exports/no-circular-import/export.js +++ b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/isolatedModules/transitive-exports/no-circular-import/export.js @@ -123,7 +123,11 @@ exports.__esModule = true; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -139,7 +143,11 @@ __exportStar(require("./tools.interface"), exports); "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -173,7 +181,11 @@ exports.Data = Data; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/isolatedModules/transitive-exports/yes-circular-import/exports.js b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/isolatedModules/transitive-exports/yes-circular-import/exports.js index 581159631429a..64a6121a827be 100644 --- a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/isolatedModules/transitive-exports/yes-circular-import/exports.js +++ b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/isolatedModules/transitive-exports/yes-circular-import/exports.js @@ -134,7 +134,11 @@ exports.__esModule = true; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -150,7 +154,11 @@ __exportStar(require("./tools.interface"), exports); "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -196,7 +204,11 @@ exports.Data = Data; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/isolatedModules/with-noEmitOnError-with-incremental.js b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/isolatedModules/with-noEmitOnError-with-incremental.js index e87e69f5f1f24..b6855669b1717 100644 --- a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/isolatedModules/with-noEmitOnError-with-incremental.js +++ b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/isolatedModules/with-noEmitOnError-with-incremental.js @@ -43,11 +43,6 @@ Output:: 4 ;   ~ - src/main.ts:2:11 - 2 const a = { -    ~ - The parser expected to find a '}' to match the '{' token here. - [12:00:37 AM] Found 1 error. Watching for file changes. @@ -185,11 +180,6 @@ Output:: 4 ;   ~ - src/main.ts:2:11 - 2 const a = { -    ~ - The parser expected to find a '}' to match the '{' token here. - [12:00:44 AM] Found 1 error. Watching for file changes. diff --git a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/isolatedModules/with-noEmitOnError.js b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/isolatedModules/with-noEmitOnError.js index 0408218258aa4..eeeb35625e47a 100644 --- a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/isolatedModules/with-noEmitOnError.js +++ b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/isolatedModules/with-noEmitOnError.js @@ -43,11 +43,6 @@ Output:: 4 ;   ~ - src/main.ts:2:11 - 2 const a = { -    ~ - The parser expected to find a '}' to match the '{' token here. - [12:00:32 AM] Found 1 error. Watching for file changes. @@ -110,11 +105,6 @@ Output:: 4 ;   ~ - src/main.ts:2:11 - 2 const a = { -    ~ - The parser expected to find a '}' to match the '{' token here. - [12:00:37 AM] Found 1 error. Watching for file changes. diff --git a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/isolatedModulesAndD/transitive-exports/no-circular-import/export.js b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/isolatedModulesAndD/transitive-exports/no-circular-import/export.js index 64626f407d0da..41fd01aac5d99 100644 --- a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/isolatedModulesAndD/transitive-exports/no-circular-import/export.js +++ b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/isolatedModulesAndD/transitive-exports/no-circular-import/export.js @@ -129,7 +129,11 @@ export interface ITest { "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -149,7 +153,11 @@ export * from "./tools.interface"; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -194,7 +202,11 @@ export declare class Data { "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/isolatedModulesAndD/transitive-exports/yes-circular-import/exports.js b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/isolatedModulesAndD/transitive-exports/yes-circular-import/exports.js index 99e1720b958e4..2ceed7c682fd6 100644 --- a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/isolatedModulesAndD/transitive-exports/yes-circular-import/exports.js +++ b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/isolatedModulesAndD/transitive-exports/yes-circular-import/exports.js @@ -140,7 +140,11 @@ export interface ITest { "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -160,7 +164,11 @@ export * from "./tools.interface"; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -226,7 +234,11 @@ export declare class Data { "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/isolatedModulesAndD/with-noEmitOnError-with-incremental.js b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/isolatedModulesAndD/with-noEmitOnError-with-incremental.js index 8e870b9adab40..b1af51bc769ed 100644 --- a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/isolatedModulesAndD/with-noEmitOnError-with-incremental.js +++ b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/isolatedModulesAndD/with-noEmitOnError-with-incremental.js @@ -43,11 +43,6 @@ Output:: 4 ;   ~ - src/main.ts:2:11 - 2 const a = { -    ~ - The parser expected to find a '}' to match the '{' token here. - [12:00:37 AM] Found 1 error. Watching for file changes. @@ -186,11 +181,6 @@ Output:: 4 ;   ~ - src/main.ts:2:11 - 2 const a = { -    ~ - The parser expected to find a '}' to match the '{' token here. - [12:00:44 AM] Found 1 error. Watching for file changes. diff --git a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/isolatedModulesAndD/with-noEmitOnError.js b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/isolatedModulesAndD/with-noEmitOnError.js index 183aa9d1b4e97..e95bfc9ace12c 100644 --- a/tests/baselines/reference/tscWatch/emitAndErrorUpdates/isolatedModulesAndD/with-noEmitOnError.js +++ b/tests/baselines/reference/tscWatch/emitAndErrorUpdates/isolatedModulesAndD/with-noEmitOnError.js @@ -43,11 +43,6 @@ Output:: 4 ;   ~ - src/main.ts:2:11 - 2 const a = { -    ~ - The parser expected to find a '}' to match the '{' token here. - [12:00:32 AM] Found 1 error. Watching for file changes. @@ -110,11 +105,6 @@ Output:: 4 ;   ~ - src/main.ts:2:11 - 2 const a = { -    ~ - The parser expected to find a '}' to match the '{' token here. - [12:00:37 AM] Found 1 error. Watching for file changes. diff --git a/tests/baselines/reference/tscWatch/forceConsistentCasingInFileNames/jsxImportSource-option-changed.js b/tests/baselines/reference/tscWatch/forceConsistentCasingInFileNames/jsxImportSource-option-changed.js index 417fb08c4abc8..b1d511faa2c44 100644 --- a/tests/baselines/reference/tscWatch/forceConsistentCasingInFileNames/jsxImportSource-option-changed.js +++ b/tests/baselines/reference/tscWatch/forceConsistentCasingInFileNames/jsxImportSource-option-changed.js @@ -106,7 +106,7 @@ exitCode:: ExitStatus.undefined exports.__esModule = true; exports.App = void 0; var jsx_runtime_1 = require("react/jsx-runtime"); -var App = function () { return (0, jsx_runtime_1.jsx)("div", { propA: true }, void 0); }; +var App = function () { return (0, jsx_runtime_1.jsx)("div", { propA: true }); }; exports.App = App; diff --git a/tests/baselines/reference/tscWatch/incremental/editing-module-augmentation-incremental.js b/tests/baselines/reference/tscWatch/incremental/editing-module-augmentation-incremental.js index 6ef212caad514..c2346e39d96e6 100644 --- a/tests/baselines/reference/tscWatch/incremental/editing-module-augmentation-incremental.js +++ b/tests/baselines/reference/tscWatch/incremental/editing-module-augmentation-incremental.js @@ -154,7 +154,7 @@ Output::    ~~~ -Found 1 error. +Found 1 error in src/index.ts:1 diff --git a/tests/baselines/reference/tscWatch/incremental/importHelpers-backing-types-removed-incremental.js b/tests/baselines/reference/tscWatch/incremental/importHelpers-backing-types-removed-incremental.js index aa213a823a5c7..ebc849b3d4904 100644 --- a/tests/baselines/reference/tscWatch/incremental/importHelpers-backing-types-removed-incremental.js +++ b/tests/baselines/reference/tscWatch/incremental/importHelpers-backing-types-removed-incremental.js @@ -62,7 +62,7 @@ exitCode:: ExitStatus.Success exports.__esModule = true; exports.x = void 0; var tslib_1 = require("tslib"); -exports.x = (0, tslib_1.__assign)({}); +exports.x = tslib_1.__assign({}); //// [/users/username/projects/project/tsconfig.tsbuildinfo] @@ -133,7 +133,7 @@ Output::    ~~~~~ -Found 1 error. +Found 1 error in index.tsx:1 diff --git a/tests/baselines/reference/tscWatch/incremental/importHelpers-backing-types-removed-watch.js b/tests/baselines/reference/tscWatch/incremental/importHelpers-backing-types-removed-watch.js index 54acbbd1a410d..013f8e9db8614 100644 --- a/tests/baselines/reference/tscWatch/incremental/importHelpers-backing-types-removed-watch.js +++ b/tests/baselines/reference/tscWatch/incremental/importHelpers-backing-types-removed-watch.js @@ -83,7 +83,7 @@ exitCode:: ExitStatus.undefined exports.__esModule = true; exports.x = void 0; var tslib_1 = require("tslib"); -exports.x = (0, tslib_1.__assign)({}); +exports.x = tslib_1.__assign({}); diff --git a/tests/baselines/reference/tscWatch/incremental/jsxImportSource-backing-types-added-incremental.js b/tests/baselines/reference/tscWatch/incremental/jsxImportSource-backing-types-added-incremental.js index 5f6738131cf8c..8f677cebaf87d 100644 --- a/tests/baselines/reference/tscWatch/incremental/jsxImportSource-backing-types-added-incremental.js +++ b/tests/baselines/reference/tscWatch/incremental/jsxImportSource-backing-types-added-incremental.js @@ -29,7 +29,7 @@ Output::    ~~~~~~~~~~~~~~~~~~~~~~~~ -Found 1 error. +Found 1 error in index.tsx:1 @@ -61,7 +61,7 @@ exitCode:: ExitStatus.DiagnosticsPresent_OutputsGenerated exports.__esModule = true; exports.App = void 0; var jsx_runtime_1 = require("react/jsx-runtime"); -var App = function () { return (0, jsx_runtime_1.jsx)("div", { propA: true }, void 0); }; +var App = function () { return (0, jsx_runtime_1.jsx)("div", { propA: true }); }; exports.App = App; diff --git a/tests/baselines/reference/tscWatch/incremental/jsxImportSource-backing-types-added-watch.js b/tests/baselines/reference/tscWatch/incremental/jsxImportSource-backing-types-added-watch.js index 5bf0dc49ee0e0..e45b207c97124 100644 --- a/tests/baselines/reference/tscWatch/incremental/jsxImportSource-backing-types-added-watch.js +++ b/tests/baselines/reference/tscWatch/incremental/jsxImportSource-backing-types-added-watch.js @@ -75,7 +75,7 @@ exitCode:: ExitStatus.undefined exports.__esModule = true; exports.App = void 0; var jsx_runtime_1 = require("react/jsx-runtime"); -var App = function () { return (0, jsx_runtime_1.jsx)("div", { propA: true }, void 0); }; +var App = function () { return (0, jsx_runtime_1.jsx)("div", { propA: true }); }; exports.App = App; diff --git a/tests/baselines/reference/tscWatch/incremental/jsxImportSource-backing-types-removed-incremental.js b/tests/baselines/reference/tscWatch/incremental/jsxImportSource-backing-types-removed-incremental.js index 8bb9352a713e5..a083115e1a363 100644 --- a/tests/baselines/reference/tscWatch/incremental/jsxImportSource-backing-types-removed-incremental.js +++ b/tests/baselines/reference/tscWatch/incremental/jsxImportSource-backing-types-removed-incremental.js @@ -73,7 +73,7 @@ exitCode:: ExitStatus.Success exports.__esModule = true; exports.App = void 0; var jsx_runtime_1 = require("react/jsx-runtime"); -var App = function () { return (0, jsx_runtime_1.jsx)("div", { propA: true }, void 0); }; +var App = function () { return (0, jsx_runtime_1.jsx)("div", { propA: true }); }; exports.App = App; @@ -147,7 +147,7 @@ Output::    ~~~~~~~~~~~~~~~~~~~~~~~~ -Found 1 error. +Found 1 error in index.tsx:1 diff --git a/tests/baselines/reference/tscWatch/incremental/jsxImportSource-backing-types-removed-watch.js b/tests/baselines/reference/tscWatch/incremental/jsxImportSource-backing-types-removed-watch.js index 641134714d966..cd0d1e7b8b18d 100644 --- a/tests/baselines/reference/tscWatch/incremental/jsxImportSource-backing-types-removed-watch.js +++ b/tests/baselines/reference/tscWatch/incremental/jsxImportSource-backing-types-removed-watch.js @@ -96,7 +96,7 @@ exitCode:: ExitStatus.undefined exports.__esModule = true; exports.App = void 0; var jsx_runtime_1 = require("react/jsx-runtime"); -var App = function () { return (0, jsx_runtime_1.jsx)("div", { propA: true }, void 0); }; +var App = function () { return (0, jsx_runtime_1.jsx)("div", { propA: true }); }; exports.App = App; diff --git a/tests/baselines/reference/tscWatch/incremental/jsxImportSource-option-changed-incremental.js b/tests/baselines/reference/tscWatch/incremental/jsxImportSource-option-changed-incremental.js index ad6442b726541..7b5c667c63a9c 100644 --- a/tests/baselines/reference/tscWatch/incremental/jsxImportSource-option-changed-incremental.js +++ b/tests/baselines/reference/tscWatch/incremental/jsxImportSource-option-changed-incremental.js @@ -96,7 +96,7 @@ exitCode:: ExitStatus.Success exports.__esModule = true; exports.App = void 0; var jsx_runtime_1 = require("react/jsx-runtime"); -var App = function () { return (0, jsx_runtime_1.jsx)("div", { propA: true }, void 0); }; +var App = function () { return (0, jsx_runtime_1.jsx)("div", { propA: true }); }; exports.App = App; @@ -178,7 +178,7 @@ node_modules/preact/jsx-runtime/index.d.ts index.tsx Matched by include pattern '**/*' in 'tsconfig.json' -Found 1 error. +Found 1 error in index.tsx:1 @@ -212,7 +212,7 @@ exitCode:: ExitStatus.DiagnosticsPresent_OutputsGenerated exports.__esModule = true; exports.App = void 0; var jsx_runtime_1 = require("preact/jsx-runtime"); -var App = function () { return (0, jsx_runtime_1.jsx)("div", { propA: true }, void 0); }; +var App = function () { return (0, jsx_runtime_1.jsx)("div", { propA: true }); }; exports.App = App; diff --git a/tests/baselines/reference/tscWatch/incremental/jsxImportSource-option-changed-watch.js b/tests/baselines/reference/tscWatch/incremental/jsxImportSource-option-changed-watch.js index 87dc1d5f4ca04..7725b4acdace9 100644 --- a/tests/baselines/reference/tscWatch/incremental/jsxImportSource-option-changed-watch.js +++ b/tests/baselines/reference/tscWatch/incremental/jsxImportSource-option-changed-watch.js @@ -119,7 +119,7 @@ exitCode:: ExitStatus.undefined exports.__esModule = true; exports.App = void 0; var jsx_runtime_1 = require("react/jsx-runtime"); -var App = function () { return (0, jsx_runtime_1.jsx)("div", { propA: true }, void 0); }; +var App = function () { return (0, jsx_runtime_1.jsx)("div", { propA: true }); }; exports.App = App; @@ -255,7 +255,7 @@ exitCode:: ExitStatus.undefined exports.__esModule = true; exports.App = void 0; var jsx_runtime_1 = require("preact/jsx-runtime"); -var App = function () { return (0, jsx_runtime_1.jsx)("div", { propA: true }, void 0); }; +var App = function () { return (0, jsx_runtime_1.jsx)("div", { propA: true }); }; exports.App = App; diff --git a/tests/baselines/reference/tscWatch/incremental/module-compilation/own-file-emit-with-errors-incremental.js b/tests/baselines/reference/tscWatch/incremental/module-compilation/own-file-emit-with-errors-incremental.js index 47e7393ee6165..fcadad4ec2672 100644 --- a/tests/baselines/reference/tscWatch/incremental/module-compilation/own-file-emit-with-errors-incremental.js +++ b/tests/baselines/reference/tscWatch/incremental/module-compilation/own-file-emit-with-errors-incremental.js @@ -30,7 +30,7 @@ Output::    ~ -Found 1 error. +Found 1 error in file2.ts:1 @@ -146,7 +146,7 @@ Output::    ~ -Found 1 error. +Found 1 error in file2.ts:1 diff --git a/tests/baselines/reference/tscWatch/incremental/own-file-emit-with-errors-incremental.js b/tests/baselines/reference/tscWatch/incremental/own-file-emit-with-errors-incremental.js index f9b612dfb22b7..7246a7f1db2ba 100644 --- a/tests/baselines/reference/tscWatch/incremental/own-file-emit-with-errors-incremental.js +++ b/tests/baselines/reference/tscWatch/incremental/own-file-emit-with-errors-incremental.js @@ -30,7 +30,7 @@ Output::    ~ -Found 1 error. +Found 1 error in file2.ts:1 @@ -135,7 +135,7 @@ Output::    ~ -Found 1 error. +Found 1 error in file2.ts:1 diff --git a/tests/baselines/reference/tscWatch/incremental/when-file-with-ambient-global-declaration-file-is-deleted-incremental.js b/tests/baselines/reference/tscWatch/incremental/when-file-with-ambient-global-declaration-file-is-deleted-incremental.js index d6496c809d2e9..fa9ddd25d6b9a 100644 --- a/tests/baselines/reference/tscWatch/incremental/when-file-with-ambient-global-declaration-file-is-deleted-incremental.js +++ b/tests/baselines/reference/tscWatch/incremental/when-file-with-ambient-global-declaration-file-is-deleted-incremental.js @@ -111,7 +111,7 @@ Output::    ~~~~~~ -Found 1 error. +Found 1 error in index.ts:1 diff --git a/tests/baselines/reference/tscWatch/programUpdates/changes-in-files-are-reflected-in-project-structure.js b/tests/baselines/reference/tscWatch/programUpdates/changes-in-files-are-reflected-in-project-structure.js index 304bbecca58b1..6f83238be91a8 100644 --- a/tests/baselines/reference/tscWatch/programUpdates/changes-in-files-are-reflected-in-project-structure.js +++ b/tests/baselines/reference/tscWatch/programUpdates/changes-in-files-are-reflected-in-project-structure.js @@ -80,7 +80,11 @@ exports.x = 1; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -155,7 +159,11 @@ exitCode:: ExitStatus.undefined "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/tscWatch/programUpdates/config-file-is-deleted.js b/tests/baselines/reference/tscWatch/programUpdates/config-file-is-deleted.js index f58c7de595092..1a995e90899aa 100644 --- a/tests/baselines/reference/tscWatch/programUpdates/config-file-is-deleted.js +++ b/tests/baselines/reference/tscWatch/programUpdates/config-file-is-deleted.js @@ -84,9 +84,6 @@ Input:: //// [/a/b/tsconfig.json] deleted Output:: ->> Screen clear -[12:00:24 AM] File change detected. Starting incremental compilation... - error TS5083: Cannot read file '/a/b/tsconfig.json'. diff --git a/tests/baselines/reference/tscWatch/programUpdates/deleted-files-affect-project-structure-2.js b/tests/baselines/reference/tscWatch/programUpdates/deleted-files-affect-project-structure-2.js index d8d61be4d03e8..5e5a7b6f05dff 100644 --- a/tests/baselines/reference/tscWatch/programUpdates/deleted-files-affect-project-structure-2.js +++ b/tests/baselines/reference/tscWatch/programUpdates/deleted-files-affect-project-structure-2.js @@ -79,7 +79,11 @@ exports.y = 1; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -95,7 +99,11 @@ __exportStar(require("../c/f3"), exports); "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/tscWatch/programUpdates/deleted-files-affect-project-structure.js b/tests/baselines/reference/tscWatch/programUpdates/deleted-files-affect-project-structure.js index b6b7d5716a387..1252177b6b9b9 100644 --- a/tests/baselines/reference/tscWatch/programUpdates/deleted-files-affect-project-structure.js +++ b/tests/baselines/reference/tscWatch/programUpdates/deleted-files-affect-project-structure.js @@ -79,7 +79,11 @@ exports.y = 1; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -95,7 +99,11 @@ __exportStar(require("../c/f3"), exports); "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/tscWatch/programUpdates/file-in-files-is-deleted.js b/tests/baselines/reference/tscWatch/programUpdates/file-in-files-is-deleted.js new file mode 100644 index 0000000000000..67b8d85e3d235 --- /dev/null +++ b/tests/baselines/reference/tscWatch/programUpdates/file-in-files-is-deleted.js @@ -0,0 +1,131 @@ +Input:: +//// [/a/b/f1.ts] +let x = 1 + +//// [/a/b/f2.ts] +let y = 1 + +//// [/a/lib/lib.d.ts] +/// +interface Boolean {} +interface Function {} +interface CallableFunction {} +interface NewableFunction {} +interface IArguments {} +interface Number { toExponential: any; } +interface Object {} +interface RegExp {} +interface String { charAt: any; } +interface Array { length: number; [n: number]: T; } + +//// [/a/b/tsconfig.json] +{"compilerOptions":{},"files":["f1.ts","f2.ts"]} + + +/a/lib/tsc.js -w -p /a/b/tsconfig.json +Output:: +>> Screen clear +[12:00:17 AM] Starting compilation in watch mode... + +[12:00:22 AM] Found 0 errors. Watching for file changes. + + + +Program root files: ["/a/b/f1.ts","/a/b/f2.ts"] +Program options: {"watch":true,"project":"/a/b/tsconfig.json","configFilePath":"/a/b/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/a/b/f1.ts +/a/b/f2.ts + +Semantic diagnostics in builder refreshed for:: +/a/lib/lib.d.ts +/a/b/f1.ts +/a/b/f2.ts + +Shape signatures in builder refreshed for:: +/a/lib/lib.d.ts (used version) +/a/b/f1.ts (used version) +/a/b/f2.ts (used version) + +WatchedFiles:: +/a/b/tsconfig.json: + {"fileName":"/a/b/tsconfig.json","pollingInterval":250} +/a/b/f1.ts: + {"fileName":"/a/b/f1.ts","pollingInterval":250} +/a/b/f2.ts: + {"fileName":"/a/b/f2.ts","pollingInterval":250} +/a/lib/lib.d.ts: + {"fileName":"/a/lib/lib.d.ts","pollingInterval":250} + +FsWatches:: + +FsWatchesRecursive:: +/a/b/node_modules/@types: + {"directoryName":"/a/b/node_modules/@types","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} + +exitCode:: ExitStatus.undefined + +//// [/a/b/f1.js] +var x = 1; + + +//// [/a/b/f2.js] +var y = 1; + + + +Change:: Delete f2 + +Input:: +//// [/a/b/f2.ts] deleted + +Output:: +>> Screen clear +[12:00:24 AM] File change detected. Starting incremental compilation... + +error TS6053: File '/a/b/f2.ts' not found. + The file is in the program because: + Part of 'files' list in tsconfig.json + + a/b/tsconfig.json:1:40 + 1 {"compilerOptions":{},"files":["f1.ts","f2.ts"]} +    ~~~~~~~ + File is matched by 'files' list specified here. + +[12:00:28 AM] Found 1 error. Watching for file changes. + + + +Program root files: ["/a/b/f1.ts","/a/b/f2.ts"] +Program options: {"watch":true,"project":"/a/b/tsconfig.json","configFilePath":"/a/b/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/a/b/f1.ts + +No cached semantic diagnostics in the builder:: + +Shape signatures in builder refreshed for:: +/a/b/f1.ts (computed .d.ts) + +WatchedFiles:: +/a/b/tsconfig.json: + {"fileName":"/a/b/tsconfig.json","pollingInterval":250} +/a/b/f1.ts: + {"fileName":"/a/b/f1.ts","pollingInterval":250} +/a/lib/lib.d.ts: + {"fileName":"/a/lib/lib.d.ts","pollingInterval":250} +/a/b/f2.ts: + {"fileName":"/a/b/f2.ts","pollingInterval":250} + +FsWatches:: + +FsWatchesRecursive:: +/a/b/node_modules/@types: + {"directoryName":"/a/b/node_modules/@types","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} + +exitCode:: ExitStatus.undefined + +//// [/a/b/f1.js] file written with same contents diff --git a/tests/baselines/reference/tscWatch/programUpdates/should-not-trigger-recompilation-because-of-program-emit/declarationDir-is-specified.js b/tests/baselines/reference/tscWatch/programUpdates/should-not-trigger-recompilation-because-of-program-emit/declarationDir-is-specified.js index 620e1d32717b5..841002b440019 100644 --- a/tests/baselines/reference/tscWatch/programUpdates/should-not-trigger-recompilation-because-of-program-emit/declarationDir-is-specified.js +++ b/tests/baselines/reference/tscWatch/programUpdates/should-not-trigger-recompilation-because-of-program-emit/declarationDir-is-specified.js @@ -21,13 +21,13 @@ interface Array { length: number; [n: number]: T; } //// [/user/username/projects/myproject/tsconfig.json] { "compilerOptions": { - /* Visit https://aka.ms/tsconfig.json to read more about this file */ + /* Visit https://aka.ms/tsconfig to read more about this file */ /* Projects */ - // "incremental": true, /* Enable incremental compilation */ + // "incremental": true, /* Save .tsbuildinfo files to allow for incremental compilation of projects. */ // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ - // "tsBuildInfoFile": "./", /* Specify the folder for .tsbuildinfo incremental compilation files. */ - // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects */ + // "tsBuildInfoFile": "./.tsbuildinfo", /* Specify the path to .tsbuildinfo incremental compilation file. */ + // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects. */ // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ @@ -37,12 +37,13 @@ interface Array { length: number; [n: number]: T; } // "jsx": "preserve", /* Specify what JSX code is generated. */ // "experimentalDecorators": true, /* Enable experimental support for TC39 stage 2 draft decorators. */ // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */ - // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h' */ + // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'. */ // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */ - // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using `jsx: react-jsx*`.` */ - // "reactNamespace": "", /* Specify the object invoked for `createElement`. This only applies when targeting `react` JSX emit. */ + // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'. */ + // "reactNamespace": "", /* Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit. */ // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ + // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */ /* Modules */ "module": "amd", /* Specify what module code is generated. */ @@ -51,28 +52,29 @@ interface Array { length: number; [n: number]: T; } // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ - // "typeRoots": [], /* Specify multiple folders that act like `./node_modules/@types`. */ + // "typeRoots": [], /* Specify multiple folders that act like './node_modules/@types'. */ // "types": [], /* Specify type package names to be included without being referenced in a source file. */ // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ - // "resolveJsonModule": true, /* Enable importing .json files */ - // "noResolve": true, /* Disallow `import`s, `require`s or ``s from expanding the number of files TypeScript should add to a project. */ + // "moduleSuffixes": [], /* List of file name suffixes to search when resolving a module. */ + // "resolveJsonModule": true, /* Enable importing .json files. */ + // "noResolve": true, /* Disallow 'import's, 'require's or ''s from expanding the number of files TypeScript should add to a project. */ /* JavaScript Support */ - // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the `checkJS` option to get errors from these files. */ + // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */ // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ - // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from `node_modules`. Only applicable with `allowJs`. */ + // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */ /* Emit */ "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ // "declarationMap": true, /* Create sourcemaps for d.ts files. */ // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ // "sourceMap": true, /* Create source map files for emitted JavaScript files. */ - // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If `declaration` is true, also designates a file that bundles all .d.ts output. */ + // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */ // "outDir": "./", /* Specify an output folder for all emitted files. */ // "removeComments": true, /* Disable emitting comments. */ // "noEmit": true, /* Disable emitting files from a compilation. */ // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */ - // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types */ + // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types. */ // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */ // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */ // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ @@ -80,38 +82,38 @@ interface Array { length: number; [n: number]: T; } // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */ // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */ // "newLine": "crlf", /* Set the newline character for emitting files. */ - // "stripInternal": true, /* Disable emitting declarations that have `@internal` in their JSDoc comments. */ - // "noEmitHelpers": true, /* Disable generating custom helper functions like `__extends` in compiled output. */ + // "stripInternal": true, /* Disable emitting declarations that have '@internal' in their JSDoc comments. */ + // "noEmitHelpers": true, /* Disable generating custom helper functions like '__extends' in compiled output. */ // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */ - // "preserveConstEnums": true, /* Disable erasing `const enum` declarations in generated code. */ + // "preserveConstEnums": true, /* Disable erasing 'const enum' declarations in generated code. */ "declarationDir": "decls", /* Specify the output directory for generated declaration files. */ // "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */ /* Interop Constraints */ // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */ // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ - "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables `allowSyntheticDefaultImports` for type compatibility. */ + "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */ // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ "forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */ /* Type Checking */ "strict": true, /* Enable all strict type-checking options. */ - // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied `any` type.. */ - // "strictNullChecks": true, /* When type checking, take into account `null` and `undefined`. */ + // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */ + // "strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */ // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ - // "strictBindCallApply": true, /* Check that the arguments for `bind`, `call`, and `apply` methods match the original function. */ + // "strictBindCallApply": true, /* Check that the arguments for 'bind', 'call', and 'apply' methods match the original function. */ // "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */ - // "noImplicitThis": true, /* Enable error reporting when `this` is given the type `any`. */ - // "useUnknownInCatchVariables": true, /* Type catch clause variables as 'unknown' instead of 'any'. */ + // "noImplicitThis": true, /* Enable error reporting when 'this' is given the type 'any'. */ + // "useUnknownInCatchVariables": true, /* Default catch clause variables as 'unknown' instead of 'any'. */ // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */ - // "noUnusedLocals": true, /* Enable error reporting when a local variables aren't read. */ - // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read */ + // "noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */ + // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read. */ // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */ // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */ // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */ - // "noUncheckedIndexedAccess": true, /* Include 'undefined' in index signature results */ + // "noUncheckedIndexedAccess": true, /* Add 'undefined' to a type when accessed using an index. */ // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */ - // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type */ + // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type. */ // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */ // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */ diff --git a/tests/baselines/reference/tscWatch/programUpdates/should-not-trigger-recompilation-because-of-program-emit/when-outDir-and-declarationDir-is-specified.js b/tests/baselines/reference/tscWatch/programUpdates/should-not-trigger-recompilation-because-of-program-emit/when-outDir-and-declarationDir-is-specified.js index 729c53bff01ef..7e2380200d728 100644 --- a/tests/baselines/reference/tscWatch/programUpdates/should-not-trigger-recompilation-because-of-program-emit/when-outDir-and-declarationDir-is-specified.js +++ b/tests/baselines/reference/tscWatch/programUpdates/should-not-trigger-recompilation-because-of-program-emit/when-outDir-and-declarationDir-is-specified.js @@ -21,13 +21,13 @@ interface Array { length: number; [n: number]: T; } //// [/user/username/projects/myproject/tsconfig.json] { "compilerOptions": { - /* Visit https://aka.ms/tsconfig.json to read more about this file */ + /* Visit https://aka.ms/tsconfig to read more about this file */ /* Projects */ - // "incremental": true, /* Enable incremental compilation */ + // "incremental": true, /* Save .tsbuildinfo files to allow for incremental compilation of projects. */ // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ - // "tsBuildInfoFile": "./", /* Specify the folder for .tsbuildinfo incremental compilation files. */ - // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects */ + // "tsBuildInfoFile": "./.tsbuildinfo", /* Specify the path to .tsbuildinfo incremental compilation file. */ + // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects. */ // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ @@ -37,12 +37,13 @@ interface Array { length: number; [n: number]: T; } // "jsx": "preserve", /* Specify what JSX code is generated. */ // "experimentalDecorators": true, /* Enable experimental support for TC39 stage 2 draft decorators. */ // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */ - // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h' */ + // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'. */ // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */ - // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using `jsx: react-jsx*`.` */ - // "reactNamespace": "", /* Specify the object invoked for `createElement`. This only applies when targeting `react` JSX emit. */ + // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'. */ + // "reactNamespace": "", /* Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit. */ // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ + // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */ /* Modules */ "module": "amd", /* Specify what module code is generated. */ @@ -51,28 +52,29 @@ interface Array { length: number; [n: number]: T; } // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ - // "typeRoots": [], /* Specify multiple folders that act like `./node_modules/@types`. */ + // "typeRoots": [], /* Specify multiple folders that act like './node_modules/@types'. */ // "types": [], /* Specify type package names to be included without being referenced in a source file. */ // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ - // "resolveJsonModule": true, /* Enable importing .json files */ - // "noResolve": true, /* Disallow `import`s, `require`s or ``s from expanding the number of files TypeScript should add to a project. */ + // "moduleSuffixes": [], /* List of file name suffixes to search when resolving a module. */ + // "resolveJsonModule": true, /* Enable importing .json files. */ + // "noResolve": true, /* Disallow 'import's, 'require's or ''s from expanding the number of files TypeScript should add to a project. */ /* JavaScript Support */ - // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the `checkJS` option to get errors from these files. */ + // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */ // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ - // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from `node_modules`. Only applicable with `allowJs`. */ + // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */ /* Emit */ "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ // "declarationMap": true, /* Create sourcemaps for d.ts files. */ // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ // "sourceMap": true, /* Create source map files for emitted JavaScript files. */ - // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If `declaration` is true, also designates a file that bundles all .d.ts output. */ + // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */ "outDir": "build", /* Specify an output folder for all emitted files. */ // "removeComments": true, /* Disable emitting comments. */ // "noEmit": true, /* Disable emitting files from a compilation. */ // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */ - // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types */ + // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types. */ // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */ // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */ // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ @@ -80,38 +82,38 @@ interface Array { length: number; [n: number]: T; } // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */ // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */ // "newLine": "crlf", /* Set the newline character for emitting files. */ - // "stripInternal": true, /* Disable emitting declarations that have `@internal` in their JSDoc comments. */ - // "noEmitHelpers": true, /* Disable generating custom helper functions like `__extends` in compiled output. */ + // "stripInternal": true, /* Disable emitting declarations that have '@internal' in their JSDoc comments. */ + // "noEmitHelpers": true, /* Disable generating custom helper functions like '__extends' in compiled output. */ // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */ - // "preserveConstEnums": true, /* Disable erasing `const enum` declarations in generated code. */ + // "preserveConstEnums": true, /* Disable erasing 'const enum' declarations in generated code. */ "declarationDir": "decls", /* Specify the output directory for generated declaration files. */ // "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */ /* Interop Constraints */ // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */ // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ - "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables `allowSyntheticDefaultImports` for type compatibility. */ + "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */ // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ "forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */ /* Type Checking */ "strict": true, /* Enable all strict type-checking options. */ - // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied `any` type.. */ - // "strictNullChecks": true, /* When type checking, take into account `null` and `undefined`. */ + // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */ + // "strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */ // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ - // "strictBindCallApply": true, /* Check that the arguments for `bind`, `call`, and `apply` methods match the original function. */ + // "strictBindCallApply": true, /* Check that the arguments for 'bind', 'call', and 'apply' methods match the original function. */ // "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */ - // "noImplicitThis": true, /* Enable error reporting when `this` is given the type `any`. */ - // "useUnknownInCatchVariables": true, /* Type catch clause variables as 'unknown' instead of 'any'. */ + // "noImplicitThis": true, /* Enable error reporting when 'this' is given the type 'any'. */ + // "useUnknownInCatchVariables": true, /* Default catch clause variables as 'unknown' instead of 'any'. */ // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */ - // "noUnusedLocals": true, /* Enable error reporting when a local variables aren't read. */ - // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read */ + // "noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */ + // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read. */ // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */ // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */ // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */ - // "noUncheckedIndexedAccess": true, /* Include 'undefined' in index signature results */ + // "noUncheckedIndexedAccess": true, /* Add 'undefined' to a type when accessed using an index. */ // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */ - // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type */ + // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type. */ // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */ // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */ diff --git a/tests/baselines/reference/tscWatch/programUpdates/should-not-trigger-recompilation-because-of-program-emit/when-outDir-is-specified.js b/tests/baselines/reference/tscWatch/programUpdates/should-not-trigger-recompilation-because-of-program-emit/when-outDir-is-specified.js index 818170668e7bf..18b7c7536b52b 100644 --- a/tests/baselines/reference/tscWatch/programUpdates/should-not-trigger-recompilation-because-of-program-emit/when-outDir-is-specified.js +++ b/tests/baselines/reference/tscWatch/programUpdates/should-not-trigger-recompilation-because-of-program-emit/when-outDir-is-specified.js @@ -21,13 +21,13 @@ interface Array { length: number; [n: number]: T; } //// [/user/username/projects/myproject/tsconfig.json] { "compilerOptions": { - /* Visit https://aka.ms/tsconfig.json to read more about this file */ + /* Visit https://aka.ms/tsconfig to read more about this file */ /* Projects */ - // "incremental": true, /* Enable incremental compilation */ + // "incremental": true, /* Save .tsbuildinfo files to allow for incremental compilation of projects. */ // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ - // "tsBuildInfoFile": "./", /* Specify the folder for .tsbuildinfo incremental compilation files. */ - // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects */ + // "tsBuildInfoFile": "./.tsbuildinfo", /* Specify the path to .tsbuildinfo incremental compilation file. */ + // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects. */ // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ @@ -37,12 +37,13 @@ interface Array { length: number; [n: number]: T; } // "jsx": "preserve", /* Specify what JSX code is generated. */ // "experimentalDecorators": true, /* Enable experimental support for TC39 stage 2 draft decorators. */ // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */ - // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h' */ + // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'. */ // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */ - // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using `jsx: react-jsx*`.` */ - // "reactNamespace": "", /* Specify the object invoked for `createElement`. This only applies when targeting `react` JSX emit. */ + // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'. */ + // "reactNamespace": "", /* Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit. */ // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ + // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */ /* Modules */ "module": "amd", /* Specify what module code is generated. */ @@ -51,28 +52,29 @@ interface Array { length: number; [n: number]: T; } // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ - // "typeRoots": [], /* Specify multiple folders that act like `./node_modules/@types`. */ + // "typeRoots": [], /* Specify multiple folders that act like './node_modules/@types'. */ // "types": [], /* Specify type package names to be included without being referenced in a source file. */ // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ - // "resolveJsonModule": true, /* Enable importing .json files */ - // "noResolve": true, /* Disallow `import`s, `require`s or ``s from expanding the number of files TypeScript should add to a project. */ + // "moduleSuffixes": [], /* List of file name suffixes to search when resolving a module. */ + // "resolveJsonModule": true, /* Enable importing .json files. */ + // "noResolve": true, /* Disallow 'import's, 'require's or ''s from expanding the number of files TypeScript should add to a project. */ /* JavaScript Support */ - // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the `checkJS` option to get errors from these files. */ + // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */ // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ - // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from `node_modules`. Only applicable with `allowJs`. */ + // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */ /* Emit */ // "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ // "declarationMap": true, /* Create sourcemaps for d.ts files. */ // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ // "sourceMap": true, /* Create source map files for emitted JavaScript files. */ - // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If `declaration` is true, also designates a file that bundles all .d.ts output. */ + // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */ "outDir": "build", /* Specify an output folder for all emitted files. */ // "removeComments": true, /* Disable emitting comments. */ // "noEmit": true, /* Disable emitting files from a compilation. */ // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */ - // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types */ + // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types. */ // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */ // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */ // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ @@ -80,38 +82,38 @@ interface Array { length: number; [n: number]: T; } // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */ // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */ // "newLine": "crlf", /* Set the newline character for emitting files. */ - // "stripInternal": true, /* Disable emitting declarations that have `@internal` in their JSDoc comments. */ - // "noEmitHelpers": true, /* Disable generating custom helper functions like `__extends` in compiled output. */ + // "stripInternal": true, /* Disable emitting declarations that have '@internal' in their JSDoc comments. */ + // "noEmitHelpers": true, /* Disable generating custom helper functions like '__extends' in compiled output. */ // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */ - // "preserveConstEnums": true, /* Disable erasing `const enum` declarations in generated code. */ + // "preserveConstEnums": true, /* Disable erasing 'const enum' declarations in generated code. */ // "declarationDir": "./", /* Specify the output directory for generated declaration files. */ // "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */ /* Interop Constraints */ // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */ // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ - "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables `allowSyntheticDefaultImports` for type compatibility. */ + "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */ // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ "forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */ /* Type Checking */ "strict": true, /* Enable all strict type-checking options. */ - // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied `any` type.. */ - // "strictNullChecks": true, /* When type checking, take into account `null` and `undefined`. */ + // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */ + // "strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */ // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ - // "strictBindCallApply": true, /* Check that the arguments for `bind`, `call`, and `apply` methods match the original function. */ + // "strictBindCallApply": true, /* Check that the arguments for 'bind', 'call', and 'apply' methods match the original function. */ // "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */ - // "noImplicitThis": true, /* Enable error reporting when `this` is given the type `any`. */ - // "useUnknownInCatchVariables": true, /* Type catch clause variables as 'unknown' instead of 'any'. */ + // "noImplicitThis": true, /* Enable error reporting when 'this' is given the type 'any'. */ + // "useUnknownInCatchVariables": true, /* Default catch clause variables as 'unknown' instead of 'any'. */ // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */ - // "noUnusedLocals": true, /* Enable error reporting when a local variables aren't read. */ - // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read */ + // "noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */ + // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read. */ // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */ // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */ // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */ - // "noUncheckedIndexedAccess": true, /* Include 'undefined' in index signature results */ + // "noUncheckedIndexedAccess": true, /* Add 'undefined' to a type when accessed using an index. */ // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */ - // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type */ + // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type. */ // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */ // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */ diff --git a/tests/baselines/reference/tscWatch/programUpdates/should-not-trigger-recompilation-because-of-program-emit/with-outFile.js b/tests/baselines/reference/tscWatch/programUpdates/should-not-trigger-recompilation-because-of-program-emit/with-outFile.js index 8ffe44ddab395..a665616e7e52a 100644 --- a/tests/baselines/reference/tscWatch/programUpdates/should-not-trigger-recompilation-because-of-program-emit/with-outFile.js +++ b/tests/baselines/reference/tscWatch/programUpdates/should-not-trigger-recompilation-because-of-program-emit/with-outFile.js @@ -21,13 +21,13 @@ interface Array { length: number; [n: number]: T; } //// [/user/username/projects/myproject/tsconfig.json] { "compilerOptions": { - /* Visit https://aka.ms/tsconfig.json to read more about this file */ + /* Visit https://aka.ms/tsconfig to read more about this file */ /* Projects */ - // "incremental": true, /* Enable incremental compilation */ + // "incremental": true, /* Save .tsbuildinfo files to allow for incremental compilation of projects. */ // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ - // "tsBuildInfoFile": "./", /* Specify the folder for .tsbuildinfo incremental compilation files. */ - // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects */ + // "tsBuildInfoFile": "./.tsbuildinfo", /* Specify the path to .tsbuildinfo incremental compilation file. */ + // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects. */ // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ @@ -37,12 +37,13 @@ interface Array { length: number; [n: number]: T; } // "jsx": "preserve", /* Specify what JSX code is generated. */ // "experimentalDecorators": true, /* Enable experimental support for TC39 stage 2 draft decorators. */ // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */ - // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h' */ + // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'. */ // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */ - // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using `jsx: react-jsx*`.` */ - // "reactNamespace": "", /* Specify the object invoked for `createElement`. This only applies when targeting `react` JSX emit. */ + // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'. */ + // "reactNamespace": "", /* Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit. */ // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ + // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */ /* Modules */ "module": "amd", /* Specify what module code is generated. */ @@ -51,28 +52,29 @@ interface Array { length: number; [n: number]: T; } // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ - // "typeRoots": [], /* Specify multiple folders that act like `./node_modules/@types`. */ + // "typeRoots": [], /* Specify multiple folders that act like './node_modules/@types'. */ // "types": [], /* Specify type package names to be included without being referenced in a source file. */ // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ - // "resolveJsonModule": true, /* Enable importing .json files */ - // "noResolve": true, /* Disallow `import`s, `require`s or ``s from expanding the number of files TypeScript should add to a project. */ + // "moduleSuffixes": [], /* List of file name suffixes to search when resolving a module. */ + // "resolveJsonModule": true, /* Enable importing .json files. */ + // "noResolve": true, /* Disallow 'import's, 'require's or ''s from expanding the number of files TypeScript should add to a project. */ /* JavaScript Support */ - // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the `checkJS` option to get errors from these files. */ + // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */ // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ - // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from `node_modules`. Only applicable with `allowJs`. */ + // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */ /* Emit */ // "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ // "declarationMap": true, /* Create sourcemaps for d.ts files. */ // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ // "sourceMap": true, /* Create source map files for emitted JavaScript files. */ - "outFile": "build/outFile.js", /* Specify a file that bundles all outputs into one JavaScript file. If `declaration` is true, also designates a file that bundles all .d.ts output. */ + "outFile": "build/outFile.js", /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */ // "outDir": "./", /* Specify an output folder for all emitted files. */ // "removeComments": true, /* Disable emitting comments. */ // "noEmit": true, /* Disable emitting files from a compilation. */ // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */ - // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types */ + // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types. */ // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */ // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */ // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ @@ -80,38 +82,38 @@ interface Array { length: number; [n: number]: T; } // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */ // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */ // "newLine": "crlf", /* Set the newline character for emitting files. */ - // "stripInternal": true, /* Disable emitting declarations that have `@internal` in their JSDoc comments. */ - // "noEmitHelpers": true, /* Disable generating custom helper functions like `__extends` in compiled output. */ + // "stripInternal": true, /* Disable emitting declarations that have '@internal' in their JSDoc comments. */ + // "noEmitHelpers": true, /* Disable generating custom helper functions like '__extends' in compiled output. */ // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */ - // "preserveConstEnums": true, /* Disable erasing `const enum` declarations in generated code. */ + // "preserveConstEnums": true, /* Disable erasing 'const enum' declarations in generated code. */ // "declarationDir": "./", /* Specify the output directory for generated declaration files. */ // "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */ /* Interop Constraints */ // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */ // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ - "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables `allowSyntheticDefaultImports` for type compatibility. */ + "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */ // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ "forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */ /* Type Checking */ "strict": true, /* Enable all strict type-checking options. */ - // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied `any` type.. */ - // "strictNullChecks": true, /* When type checking, take into account `null` and `undefined`. */ + // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */ + // "strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */ // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ - // "strictBindCallApply": true, /* Check that the arguments for `bind`, `call`, and `apply` methods match the original function. */ + // "strictBindCallApply": true, /* Check that the arguments for 'bind', 'call', and 'apply' methods match the original function. */ // "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */ - // "noImplicitThis": true, /* Enable error reporting when `this` is given the type `any`. */ - // "useUnknownInCatchVariables": true, /* Type catch clause variables as 'unknown' instead of 'any'. */ + // "noImplicitThis": true, /* Enable error reporting when 'this' is given the type 'any'. */ + // "useUnknownInCatchVariables": true, /* Default catch clause variables as 'unknown' instead of 'any'. */ // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */ - // "noUnusedLocals": true, /* Enable error reporting when a local variables aren't read. */ - // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read */ + // "noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */ + // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read. */ // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */ // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */ // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */ - // "noUncheckedIndexedAccess": true, /* Include 'undefined' in index signature results */ + // "noUncheckedIndexedAccess": true, /* Add 'undefined' to a type when accessed using an index. */ // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */ - // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type */ + // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type. */ // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */ // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */ diff --git a/tests/baselines/reference/tscWatch/programUpdates/should-not-trigger-recompilation-because-of-program-emit/without-outDir-or-outFile-is-specified-with-declaration-enabled.js b/tests/baselines/reference/tscWatch/programUpdates/should-not-trigger-recompilation-because-of-program-emit/without-outDir-or-outFile-is-specified-with-declaration-enabled.js index 9850737466e93..d17968fa60d58 100644 --- a/tests/baselines/reference/tscWatch/programUpdates/should-not-trigger-recompilation-because-of-program-emit/without-outDir-or-outFile-is-specified-with-declaration-enabled.js +++ b/tests/baselines/reference/tscWatch/programUpdates/should-not-trigger-recompilation-because-of-program-emit/without-outDir-or-outFile-is-specified-with-declaration-enabled.js @@ -21,13 +21,13 @@ interface Array { length: number; [n: number]: T; } //// [/user/username/projects/myproject/tsconfig.json] { "compilerOptions": { - /* Visit https://aka.ms/tsconfig.json to read more about this file */ + /* Visit https://aka.ms/tsconfig to read more about this file */ /* Projects */ - // "incremental": true, /* Enable incremental compilation */ + // "incremental": true, /* Save .tsbuildinfo files to allow for incremental compilation of projects. */ // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ - // "tsBuildInfoFile": "./", /* Specify the folder for .tsbuildinfo incremental compilation files. */ - // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects */ + // "tsBuildInfoFile": "./.tsbuildinfo", /* Specify the path to .tsbuildinfo incremental compilation file. */ + // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects. */ // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ @@ -37,12 +37,13 @@ interface Array { length: number; [n: number]: T; } // "jsx": "preserve", /* Specify what JSX code is generated. */ // "experimentalDecorators": true, /* Enable experimental support for TC39 stage 2 draft decorators. */ // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */ - // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h' */ + // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'. */ // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */ - // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using `jsx: react-jsx*`.` */ - // "reactNamespace": "", /* Specify the object invoked for `createElement`. This only applies when targeting `react` JSX emit. */ + // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'. */ + // "reactNamespace": "", /* Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit. */ // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ + // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */ /* Modules */ "module": "amd", /* Specify what module code is generated. */ @@ -51,28 +52,29 @@ interface Array { length: number; [n: number]: T; } // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ - // "typeRoots": [], /* Specify multiple folders that act like `./node_modules/@types`. */ + // "typeRoots": [], /* Specify multiple folders that act like './node_modules/@types'. */ // "types": [], /* Specify type package names to be included without being referenced in a source file. */ // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ - // "resolveJsonModule": true, /* Enable importing .json files */ - // "noResolve": true, /* Disallow `import`s, `require`s or ``s from expanding the number of files TypeScript should add to a project. */ + // "moduleSuffixes": [], /* List of file name suffixes to search when resolving a module. */ + // "resolveJsonModule": true, /* Enable importing .json files. */ + // "noResolve": true, /* Disallow 'import's, 'require's or ''s from expanding the number of files TypeScript should add to a project. */ /* JavaScript Support */ - // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the `checkJS` option to get errors from these files. */ + // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */ // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ - // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from `node_modules`. Only applicable with `allowJs`. */ + // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */ /* Emit */ "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ // "declarationMap": true, /* Create sourcemaps for d.ts files. */ // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ // "sourceMap": true, /* Create source map files for emitted JavaScript files. */ - // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If `declaration` is true, also designates a file that bundles all .d.ts output. */ + // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */ // "outDir": "./", /* Specify an output folder for all emitted files. */ // "removeComments": true, /* Disable emitting comments. */ // "noEmit": true, /* Disable emitting files from a compilation. */ // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */ - // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types */ + // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types. */ // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */ // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */ // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ @@ -80,38 +82,38 @@ interface Array { length: number; [n: number]: T; } // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */ // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */ // "newLine": "crlf", /* Set the newline character for emitting files. */ - // "stripInternal": true, /* Disable emitting declarations that have `@internal` in their JSDoc comments. */ - // "noEmitHelpers": true, /* Disable generating custom helper functions like `__extends` in compiled output. */ + // "stripInternal": true, /* Disable emitting declarations that have '@internal' in their JSDoc comments. */ + // "noEmitHelpers": true, /* Disable generating custom helper functions like '__extends' in compiled output. */ // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */ - // "preserveConstEnums": true, /* Disable erasing `const enum` declarations in generated code. */ + // "preserveConstEnums": true, /* Disable erasing 'const enum' declarations in generated code. */ // "declarationDir": "./", /* Specify the output directory for generated declaration files. */ // "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */ /* Interop Constraints */ // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */ // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ - "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables `allowSyntheticDefaultImports` for type compatibility. */ + "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */ // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ "forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */ /* Type Checking */ "strict": true, /* Enable all strict type-checking options. */ - // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied `any` type.. */ - // "strictNullChecks": true, /* When type checking, take into account `null` and `undefined`. */ + // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */ + // "strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */ // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ - // "strictBindCallApply": true, /* Check that the arguments for `bind`, `call`, and `apply` methods match the original function. */ + // "strictBindCallApply": true, /* Check that the arguments for 'bind', 'call', and 'apply' methods match the original function. */ // "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */ - // "noImplicitThis": true, /* Enable error reporting when `this` is given the type `any`. */ - // "useUnknownInCatchVariables": true, /* Type catch clause variables as 'unknown' instead of 'any'. */ + // "noImplicitThis": true, /* Enable error reporting when 'this' is given the type 'any'. */ + // "useUnknownInCatchVariables": true, /* Default catch clause variables as 'unknown' instead of 'any'. */ // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */ - // "noUnusedLocals": true, /* Enable error reporting when a local variables aren't read. */ - // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read */ + // "noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */ + // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read. */ // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */ // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */ // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */ - // "noUncheckedIndexedAccess": true, /* Include 'undefined' in index signature results */ + // "noUncheckedIndexedAccess": true, /* Add 'undefined' to a type when accessed using an index. */ // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */ - // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type */ + // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type. */ // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */ // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */ diff --git a/tests/baselines/reference/tscWatch/programUpdates/should-not-trigger-recompilation-because-of-program-emit/without-outDir-or-outFile-is-specified.js b/tests/baselines/reference/tscWatch/programUpdates/should-not-trigger-recompilation-because-of-program-emit/without-outDir-or-outFile-is-specified.js index 3e23fb6d13961..641d0e341de4b 100644 --- a/tests/baselines/reference/tscWatch/programUpdates/should-not-trigger-recompilation-because-of-program-emit/without-outDir-or-outFile-is-specified.js +++ b/tests/baselines/reference/tscWatch/programUpdates/should-not-trigger-recompilation-because-of-program-emit/without-outDir-or-outFile-is-specified.js @@ -21,13 +21,13 @@ interface Array { length: number; [n: number]: T; } //// [/user/username/projects/myproject/tsconfig.json] { "compilerOptions": { - /* Visit https://aka.ms/tsconfig.json to read more about this file */ + /* Visit https://aka.ms/tsconfig to read more about this file */ /* Projects */ - // "incremental": true, /* Enable incremental compilation */ + // "incremental": true, /* Save .tsbuildinfo files to allow for incremental compilation of projects. */ // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ - // "tsBuildInfoFile": "./", /* Specify the folder for .tsbuildinfo incremental compilation files. */ - // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects */ + // "tsBuildInfoFile": "./.tsbuildinfo", /* Specify the path to .tsbuildinfo incremental compilation file. */ + // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects. */ // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ @@ -37,12 +37,13 @@ interface Array { length: number; [n: number]: T; } // "jsx": "preserve", /* Specify what JSX code is generated. */ // "experimentalDecorators": true, /* Enable experimental support for TC39 stage 2 draft decorators. */ // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */ - // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h' */ + // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'. */ // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */ - // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using `jsx: react-jsx*`.` */ - // "reactNamespace": "", /* Specify the object invoked for `createElement`. This only applies when targeting `react` JSX emit. */ + // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'. */ + // "reactNamespace": "", /* Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit. */ // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ + // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */ /* Modules */ "module": "amd", /* Specify what module code is generated. */ @@ -51,28 +52,29 @@ interface Array { length: number; [n: number]: T; } // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ - // "typeRoots": [], /* Specify multiple folders that act like `./node_modules/@types`. */ + // "typeRoots": [], /* Specify multiple folders that act like './node_modules/@types'. */ // "types": [], /* Specify type package names to be included without being referenced in a source file. */ // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ - // "resolveJsonModule": true, /* Enable importing .json files */ - // "noResolve": true, /* Disallow `import`s, `require`s or ``s from expanding the number of files TypeScript should add to a project. */ + // "moduleSuffixes": [], /* List of file name suffixes to search when resolving a module. */ + // "resolveJsonModule": true, /* Enable importing .json files. */ + // "noResolve": true, /* Disallow 'import's, 'require's or ''s from expanding the number of files TypeScript should add to a project. */ /* JavaScript Support */ - // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the `checkJS` option to get errors from these files. */ + // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */ // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ - // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from `node_modules`. Only applicable with `allowJs`. */ + // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */ /* Emit */ // "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ // "declarationMap": true, /* Create sourcemaps for d.ts files. */ // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ // "sourceMap": true, /* Create source map files for emitted JavaScript files. */ - // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If `declaration` is true, also designates a file that bundles all .d.ts output. */ + // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */ // "outDir": "./", /* Specify an output folder for all emitted files. */ // "removeComments": true, /* Disable emitting comments. */ // "noEmit": true, /* Disable emitting files from a compilation. */ // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */ - // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types */ + // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types. */ // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */ // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */ // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ @@ -80,38 +82,38 @@ interface Array { length: number; [n: number]: T; } // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */ // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */ // "newLine": "crlf", /* Set the newline character for emitting files. */ - // "stripInternal": true, /* Disable emitting declarations that have `@internal` in their JSDoc comments. */ - // "noEmitHelpers": true, /* Disable generating custom helper functions like `__extends` in compiled output. */ + // "stripInternal": true, /* Disable emitting declarations that have '@internal' in their JSDoc comments. */ + // "noEmitHelpers": true, /* Disable generating custom helper functions like '__extends' in compiled output. */ // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */ - // "preserveConstEnums": true, /* Disable erasing `const enum` declarations in generated code. */ + // "preserveConstEnums": true, /* Disable erasing 'const enum' declarations in generated code. */ // "declarationDir": "./", /* Specify the output directory for generated declaration files. */ // "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */ /* Interop Constraints */ // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */ // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ - "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables `allowSyntheticDefaultImports` for type compatibility. */ + "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */ // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ "forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */ /* Type Checking */ "strict": true, /* Enable all strict type-checking options. */ - // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied `any` type.. */ - // "strictNullChecks": true, /* When type checking, take into account `null` and `undefined`. */ + // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */ + // "strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */ // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ - // "strictBindCallApply": true, /* Check that the arguments for `bind`, `call`, and `apply` methods match the original function. */ + // "strictBindCallApply": true, /* Check that the arguments for 'bind', 'call', and 'apply' methods match the original function. */ // "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */ - // "noImplicitThis": true, /* Enable error reporting when `this` is given the type `any`. */ - // "useUnknownInCatchVariables": true, /* Type catch clause variables as 'unknown' instead of 'any'. */ + // "noImplicitThis": true, /* Enable error reporting when 'this' is given the type 'any'. */ + // "useUnknownInCatchVariables": true, /* Default catch clause variables as 'unknown' instead of 'any'. */ // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */ - // "noUnusedLocals": true, /* Enable error reporting when a local variables aren't read. */ - // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read */ + // "noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */ + // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read. */ // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */ // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */ // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */ - // "noUncheckedIndexedAccess": true, /* Include 'undefined' in index signature results */ + // "noUncheckedIndexedAccess": true, /* Add 'undefined' to a type when accessed using an index. */ // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */ - // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type */ + // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type. */ // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */ // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */ diff --git a/tests/baselines/reference/tscWatch/programUpdates/when-creating-extensionless-file.js b/tests/baselines/reference/tscWatch/programUpdates/when-creating-extensionless-file.js new file mode 100644 index 0000000000000..fe976b5d9346a --- /dev/null +++ b/tests/baselines/reference/tscWatch/programUpdates/when-creating-extensionless-file.js @@ -0,0 +1,111 @@ +Input:: +//// [/user/username/projects/myproject/index.ts] + + +//// [/user/username/projects/myproject/tsconfig.json] +{} + +//// [/a/lib/lib.d.ts] +/// +interface Boolean {} +interface Function {} +interface CallableFunction {} +interface NewableFunction {} +interface IArguments {} +interface Number { toExponential: any; } +interface Object {} +interface RegExp {} +interface String { charAt: any; } +interface Array { length: number; [n: number]: T; } + + +/a/lib/tsc.js -w -p . --extendedDiagnostics +Output:: +[12:00:21 AM] Starting compilation in watch mode... + +Current directory: /user/username/projects/myproject CaseSensitiveFileNames: false +FileWatcher:: Added:: WatchInfo: /user/username/projects/myproject/tsconfig.json 2000 undefined Config file +Synchronizing program +CreatingProgramWith:: + roots: ["/user/username/projects/myproject/index.ts"] + options: {"watch":true,"project":"/user/username/projects/myproject","extendedDiagnostics":true,"configFilePath":"/user/username/projects/myproject/tsconfig.json"} +FileWatcher:: Added:: WatchInfo: /user/username/projects/myproject/index.ts 250 undefined Source file +FileWatcher:: Added:: WatchInfo: /a/lib/lib.d.ts 250 undefined Source file +DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject/node_modules/@types 1 undefined Type roots +Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject/node_modules/@types 1 undefined Type roots +[12:00:24 AM] Found 0 errors. Watching for file changes. + +DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject 1 undefined Wild card directory +Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject 1 undefined Wild card directory + + +Program root files: ["/user/username/projects/myproject/index.ts"] +Program options: {"watch":true,"project":"/user/username/projects/myproject","extendedDiagnostics":true,"configFilePath":"/user/username/projects/myproject/tsconfig.json"} +Program structureReused: Not +Program files:: +/a/lib/lib.d.ts +/user/username/projects/myproject/index.ts + +Semantic diagnostics in builder refreshed for:: +/a/lib/lib.d.ts +/user/username/projects/myproject/index.ts + +Shape signatures in builder refreshed for:: +/a/lib/lib.d.ts (used version) +/user/username/projects/myproject/index.ts (used version) + +WatchedFiles:: +/user/username/projects/myproject/tsconfig.json: + {"fileName":"/user/username/projects/myproject/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/index.ts: + {"fileName":"/user/username/projects/myproject/index.ts","pollingInterval":250} +/a/lib/lib.d.ts: + {"fileName":"/a/lib/lib.d.ts","pollingInterval":250} + +FsWatches:: + +FsWatchesRecursive:: +/user/username/projects/myproject/node_modules/@types: + {"directoryName":"/user/username/projects/myproject/node_modules/@types","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject: + {"directoryName":"/user/username/projects/myproject","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} + +exitCode:: ExitStatus.undefined + +//// [/user/username/projects/myproject/index.js] + + + +Change:: Create foo in project root + +Input:: +//// [/user/username/projects/myproject/foo] + + + +Output:: +DirectoryWatcher:: Triggered with /user/username/projects/myproject/foo :: WatchInfo: /user/username/projects/myproject 1 undefined Wild card directory +Scheduling update +Elapsed:: *ms DirectoryWatcher:: Triggered with /user/username/projects/myproject/foo :: WatchInfo: /user/username/projects/myproject 1 undefined Wild card directory +Reloading new file names and options +Synchronizing program + + +WatchedFiles:: +/user/username/projects/myproject/tsconfig.json: + {"fileName":"/user/username/projects/myproject/tsconfig.json","pollingInterval":250} +/user/username/projects/myproject/index.ts: + {"fileName":"/user/username/projects/myproject/index.ts","pollingInterval":250} +/a/lib/lib.d.ts: + {"fileName":"/a/lib/lib.d.ts","pollingInterval":250} + +FsWatches:: + +FsWatchesRecursive:: +/user/username/projects/myproject/node_modules/@types: + {"directoryName":"/user/username/projects/myproject/node_modules/@types","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} +/user/username/projects/myproject: + {"directoryName":"/user/username/projects/myproject","fallbackPollingInterval":500,"fallbackOptions":{"watchFile":"PriorityPollingInterval"}} + +exitCode:: ExitStatus.undefined + diff --git a/tests/baselines/reference/tscWatch/programUpdates/when-creating-new-file-in-symlinked-folder.js b/tests/baselines/reference/tscWatch/programUpdates/when-creating-new-file-in-symlinked-folder.js index ee6c33aa4a43a..af10639931622 100644 --- a/tests/baselines/reference/tscWatch/programUpdates/when-creating-new-file-in-symlinked-folder.js +++ b/tests/baselines/reference/tscWatch/programUpdates/when-creating-new-file-in-symlinked-folder.js @@ -115,10 +115,10 @@ Output:: DirectoryWatcher:: Triggered with /user/username/projects/myproject/folder2/module3.ts :: WatchInfo: /user/username/projects/myproject/folder2 1 undefined Wild card directory Scheduling update Elapsed:: *ms DirectoryWatcher:: Triggered with /user/username/projects/myproject/folder2/module3.ts :: WatchInfo: /user/username/projects/myproject/folder2 1 undefined Wild card directory -[12:00:41 AM] File change detected. Starting incremental compilation... - Reloading new file names and options Synchronizing program +[12:00:41 AM] File change detected. Starting incremental compilation... + CreatingProgramWith:: roots: ["/user/username/projects/myproject/client/folder1/module1.ts","/user/username/projects/myproject/client/linktofolder2/module2.ts","/user/username/projects/myproject/client/linktofolder2/module3.ts"] options: {"baseUrl":"/user/username/projects/myproject/client","paths":{"*":["*"]},"pathsBasePath":"/user/username/projects/myproject","watch":true,"project":"/user/username/projects/myproject","extendedDiagnostics":true,"configFilePath":"/user/username/projects/myproject/tsconfig.json"} diff --git a/tests/baselines/reference/tscWatch/programUpdates/when-new-file-is-added-to-the-referenced-project.js b/tests/baselines/reference/tscWatch/programUpdates/when-new-file-is-added-to-the-referenced-project.js index 7adf3b20ec88f..e24e1ba0986f1 100644 --- a/tests/baselines/reference/tscWatch/programUpdates/when-new-file-is-added-to-the-referenced-project.js +++ b/tests/baselines/reference/tscWatch/programUpdates/when-new-file-is-added-to-the-referenced-project.js @@ -171,10 +171,10 @@ Output:: DirectoryWatcher:: Triggered with /user/username/projects/myproject/projects/project1/class3.ts :: WatchInfo: /user/username/projects/myproject/projects/project1 1 undefined Wild card directory of referenced project Scheduling update Elapsed:: *ms DirectoryWatcher:: Triggered with /user/username/projects/myproject/projects/project1/class3.ts :: WatchInfo: /user/username/projects/myproject/projects/project1 1 undefined Wild card directory of referenced project -[12:00:45 AM] File change detected. Starting incremental compilation... - Synchronizing program Reloading new file names and options +[12:00:45 AM] File change detected. Starting incremental compilation... + CreatingProgramWith:: roots: ["/user/username/projects/myproject/projects/project2/class2.ts"] options: {"module":0,"composite":true,"watch":true,"project":"/user/username/projects/myproject/projects/project2/tsconfig.json","extendedDiagnostics":true,"configFilePath":"/user/username/projects/myproject/projects/project2/tsconfig.json"} @@ -251,9 +251,9 @@ Elapsed:: *ms FileWatcher:: Triggered with /user/username/projects/myproject/pro DirectoryWatcher:: Triggered with /user/username/projects/myproject/projects/project1/class3.d.ts :: WatchInfo: /user/username/projects/myproject/projects/project1 1 undefined Wild card directory of referenced project Project: /user/username/projects/myproject/projects/project1/tsconfig.json Detected output file: /user/username/projects/myproject/projects/project1/class3.d.ts Elapsed:: *ms DirectoryWatcher:: Triggered with /user/username/projects/myproject/projects/project1/class3.d.ts :: WatchInfo: /user/username/projects/myproject/projects/project1 1 undefined Wild card directory of referenced project +Synchronizing program [12:00:49 AM] File change detected. Starting incremental compilation... -Synchronizing program CreatingProgramWith:: roots: ["/user/username/projects/myproject/projects/project2/class2.ts"] options: {"module":0,"composite":true,"watch":true,"project":"/user/username/projects/myproject/projects/project2/tsconfig.json","extendedDiagnostics":true,"configFilePath":"/user/username/projects/myproject/projects/project2/tsconfig.json"} @@ -424,9 +424,9 @@ Elapsed:: *ms FileWatcher:: Triggered with /user/username/projects/myproject/pro DirectoryWatcher:: Triggered with /user/username/projects/myproject/projects/project1/class3.d.ts :: WatchInfo: /user/username/projects/myproject/projects/project1 1 undefined Wild card directory of referenced project Project: /user/username/projects/myproject/projects/project1/tsconfig.json Detected output file: /user/username/projects/myproject/projects/project1/class3.d.ts Elapsed:: *ms DirectoryWatcher:: Triggered with /user/username/projects/myproject/projects/project1/class3.d.ts :: WatchInfo: /user/username/projects/myproject/projects/project1 1 undefined Wild card directory of referenced project +Synchronizing program [12:01:08 AM] File change detected. Starting incremental compilation... -Synchronizing program CreatingProgramWith:: roots: ["/user/username/projects/myproject/projects/project2/class2.ts"] options: {"module":0,"composite":true,"watch":true,"project":"/user/username/projects/myproject/projects/project2/tsconfig.json","extendedDiagnostics":true,"configFilePath":"/user/username/projects/myproject/projects/project2/tsconfig.json"} @@ -550,9 +550,9 @@ Elapsed:: *ms FileWatcher:: Triggered with /user/username/projects/myproject/pro DirectoryWatcher:: Triggered with /user/username/projects/myproject/projects/project1/class3.d.ts :: WatchInfo: /user/username/projects/myproject/projects/project1 1 undefined Wild card directory of referenced project Project: /user/username/projects/myproject/projects/project1/tsconfig.json Detected output file: /user/username/projects/myproject/projects/project1/class3.d.ts Elapsed:: *ms DirectoryWatcher:: Triggered with /user/username/projects/myproject/projects/project1/class3.d.ts :: WatchInfo: /user/username/projects/myproject/projects/project1 1 undefined Wild card directory of referenced project +Synchronizing program [12:01:24 AM] File change detected. Starting incremental compilation... -Synchronizing program CreatingProgramWith:: roots: ["/user/username/projects/myproject/projects/project2/class2.ts"] options: {"module":0,"composite":true,"watch":true,"project":"/user/username/projects/myproject/projects/project2/tsconfig.json","extendedDiagnostics":true,"configFilePath":"/user/username/projects/myproject/projects/project2/tsconfig.json"} diff --git a/tests/baselines/reference/tscWatch/resolutionCache/works-when-installing-something-in-node_modules-or-@types-when-there-is-no-notification-from-fs-for-index-file.js b/tests/baselines/reference/tscWatch/resolutionCache/works-when-installing-something-in-node_modules-or-@types-when-there-is-no-notification-from-fs-for-index-file.js index 8541f38217fc1..0f536d2d6faf1 100644 --- a/tests/baselines/reference/tscWatch/resolutionCache/works-when-installing-something-in-node_modules-or-@types-when-there-is-no-notification-from-fs-for-index-file.js +++ b/tests/baselines/reference/tscWatch/resolutionCache/works-when-installing-something-in-node_modules-or-@types-when-there-is-no-notification-from-fs-for-index-file.js @@ -215,10 +215,10 @@ Elapsed:: *ms DirectoryWatcher:: Triggered with /user/username/projects/myprojec DirectoryWatcher:: Triggered with /user/username/projects/myproject/node_modules/@types :: WatchInfo: /user/username/projects/myproject 1 undefined Wild card directory Scheduling update Elapsed:: *ms DirectoryWatcher:: Triggered with /user/username/projects/myproject/node_modules/@types :: WatchInfo: /user/username/projects/myproject 1 undefined Wild card directory -[12:00:48 AM] File change detected. Starting incremental compilation... - Reloading new file names and options Synchronizing program +[12:00:48 AM] File change detected. Starting incremental compilation... + CreatingProgramWith:: roots: ["/user/username/projects/myproject/worker.ts"] options: {"watch":true,"extendedDiagnostics":true,"configFilePath":"/user/username/projects/myproject/tsconfig.json"} @@ -310,10 +310,10 @@ Elapsed:: *ms DirectoryWatcher:: Triggered with /user/username/projects/myprojec DirectoryWatcher:: Triggered with /user/username/projects/myproject/node_modules/@types/mocha/index.d.ts :: WatchInfo: /user/username/projects/myproject 1 undefined Wild card directory Scheduling update Elapsed:: *ms DirectoryWatcher:: Triggered with /user/username/projects/myproject/node_modules/@types/mocha/index.d.ts :: WatchInfo: /user/username/projects/myproject 1 undefined Wild card directory -[12:00:59 AM] File change detected. Starting incremental compilation... - Reloading new file names and options Synchronizing program +[12:00:59 AM] File change detected. Starting incremental compilation... + CreatingProgramWith:: roots: ["/user/username/projects/myproject/worker.ts"] options: {"watch":true,"extendedDiagnostics":true,"configFilePath":"/user/username/projects/myproject/tsconfig.json"} @@ -382,10 +382,10 @@ Elapsed:: *ms DirectoryWatcher:: Triggered with /user/username/projects/myprojec DirectoryWatcher:: Triggered with /user/username/projects/myproject/node_modules/@types/node :: WatchInfo: /user/username/projects/myproject 1 undefined Wild card directory Scheduling update Elapsed:: *ms DirectoryWatcher:: Triggered with /user/username/projects/myproject/node_modules/@types/node :: WatchInfo: /user/username/projects/myproject 1 undefined Wild card directory -[12:01:03 AM] File change detected. Starting incremental compilation... - Reloading new file names and options Synchronizing program +[12:01:03 AM] File change detected. Starting incremental compilation... + CreatingProgramWith:: roots: ["/user/username/projects/myproject/worker.ts"] options: {"watch":true,"extendedDiagnostics":true,"configFilePath":"/user/username/projects/myproject/tsconfig.json"} @@ -481,10 +481,10 @@ DirectoryWatcher:: Triggered with /user/username/projects/myproject/node_modules Project: /user/username/projects/myproject/tsconfig.json Detected file add/remove of non supported extension: /user/username/projects/myproject/node_modules/@types/node/ts3.6 Elapsed:: *ms DirectoryWatcher:: Triggered with /user/username/projects/myproject/node_modules/@types/node/ts3.6 :: WatchInfo: /user/username/projects/myproject 1 undefined Wild card directory Scheduling update -[12:01:15 AM] File change detected. Starting incremental compilation... - Reloading new file names and options Synchronizing program +[12:01:15 AM] File change detected. Starting incremental compilation... + CreatingProgramWith:: roots: ["/user/username/projects/myproject/worker.ts"] options: {"watch":true,"extendedDiagnostics":true,"configFilePath":"/user/username/projects/myproject/tsconfig.json"} diff --git a/tests/baselines/reference/tscWatch/watchApi/when-new-file-is-added-to-the-referenced-project-with-host-implementing-getParsedCommandLine-without-implementing-useSourceOfProjectReferenceRedirect.js b/tests/baselines/reference/tscWatch/watchApi/when-new-file-is-added-to-the-referenced-project-with-host-implementing-getParsedCommandLine-without-implementing-useSourceOfProjectReferenceRedirect.js index 7be9d571284e8..9a42287a007e2 100644 --- a/tests/baselines/reference/tscWatch/watchApi/when-new-file-is-added-to-the-referenced-project-with-host-implementing-getParsedCommandLine-without-implementing-useSourceOfProjectReferenceRedirect.js +++ b/tests/baselines/reference/tscWatch/watchApi/when-new-file-is-added-to-the-referenced-project-with-host-implementing-getParsedCommandLine-without-implementing-useSourceOfProjectReferenceRedirect.js @@ -133,11 +133,11 @@ Output:: DirectoryWatcher:: Triggered with /user/username/projects/myproject/projects/project1/class3.ts :: WatchInfo: /user/username/projects/myproject/projects/project1 1 undefined Wild card directory of referenced project Scheduling update Elapsed:: *ms DirectoryWatcher:: Triggered with /user/username/projects/myproject/projects/project1/class3.ts :: WatchInfo: /user/username/projects/myproject/projects/project1 1 undefined Wild card directory of referenced project +Synchronizing program +Loading config file: /user/username/projects/myproject/projects/project1/tsconfig.json 12:00:43 AM - File change detected. Starting incremental compilation... -Synchronizing program -Loading config file: /user/username/projects/myproject/projects/project1/tsconfig.json CreatingProgramWith:: roots: ["/user/username/projects/myproject/projects/project2/class2.ts"] options: {"module":0,"composite":true,"extendedDiagnostics":true,"configFilePath":"/user/username/projects/myproject/projects/project2/tsconfig.json"} @@ -208,10 +208,10 @@ Elapsed:: *ms FileWatcher:: Triggered with /user/username/projects/myproject/pro DirectoryWatcher:: Triggered with /user/username/projects/myproject/projects/project1/class3.d.ts :: WatchInfo: /user/username/projects/myproject/projects/project1 1 undefined Wild card directory of referenced project Project: /user/username/projects/myproject/projects/project1/tsconfig.json Detected output file: /user/username/projects/myproject/projects/project1/class3.d.ts Elapsed:: *ms DirectoryWatcher:: Triggered with /user/username/projects/myproject/projects/project1/class3.d.ts :: WatchInfo: /user/username/projects/myproject/projects/project1 1 undefined Wild card directory of referenced project +Synchronizing program 12:00:47 AM - File change detected. Starting incremental compilation... -Synchronizing program CreatingProgramWith:: roots: ["/user/username/projects/myproject/projects/project2/class2.ts"] options: {"module":0,"composite":true,"extendedDiagnostics":true,"configFilePath":"/user/username/projects/myproject/projects/project2/tsconfig.json"} @@ -340,10 +340,10 @@ Elapsed:: *ms FileWatcher:: Triggered with /user/username/projects/myproject/pro DirectoryWatcher:: Triggered with /user/username/projects/myproject/projects/project1/class3.d.ts :: WatchInfo: /user/username/projects/myproject/projects/project1 1 undefined Wild card directory of referenced project Project: /user/username/projects/myproject/projects/project1/tsconfig.json Detected output file: /user/username/projects/myproject/projects/project1/class3.d.ts Elapsed:: *ms DirectoryWatcher:: Triggered with /user/username/projects/myproject/projects/project1/class3.d.ts :: WatchInfo: /user/username/projects/myproject/projects/project1 1 undefined Wild card directory of referenced project +Synchronizing program 12:01:03 AM - File change detected. Starting incremental compilation... -Synchronizing program CreatingProgramWith:: roots: ["/user/username/projects/myproject/projects/project2/class2.ts"] options: {"module":0,"composite":true,"extendedDiagnostics":true,"configFilePath":"/user/username/projects/myproject/projects/project2/tsconfig.json"} @@ -424,10 +424,10 @@ Elapsed:: *ms FileWatcher:: Triggered with /user/username/projects/myproject/pro DirectoryWatcher:: Triggered with /user/username/projects/myproject/projects/project1/class3.d.ts :: WatchInfo: /user/username/projects/myproject/projects/project1 1 undefined Wild card directory of referenced project Project: /user/username/projects/myproject/projects/project1/tsconfig.json Detected output file: /user/username/projects/myproject/projects/project1/class3.d.ts Elapsed:: *ms DirectoryWatcher:: Triggered with /user/username/projects/myproject/projects/project1/class3.d.ts :: WatchInfo: /user/username/projects/myproject/projects/project1 1 undefined Wild card directory of referenced project +Synchronizing program 12:01:16 AM - File change detected. Starting incremental compilation... -Synchronizing program CreatingProgramWith:: roots: ["/user/username/projects/myproject/projects/project2/class2.ts"] options: {"module":0,"composite":true,"extendedDiagnostics":true,"configFilePath":"/user/username/projects/myproject/projects/project2/tsconfig.json"} diff --git a/tests/baselines/reference/tscWatch/watchApi/when-new-file-is-added-to-the-referenced-project-with-host-implementing-getParsedCommandLine.js b/tests/baselines/reference/tscWatch/watchApi/when-new-file-is-added-to-the-referenced-project-with-host-implementing-getParsedCommandLine.js index 1480894fbe6f6..ae46872cf8043 100644 --- a/tests/baselines/reference/tscWatch/watchApi/when-new-file-is-added-to-the-referenced-project-with-host-implementing-getParsedCommandLine.js +++ b/tests/baselines/reference/tscWatch/watchApi/when-new-file-is-added-to-the-referenced-project-with-host-implementing-getParsedCommandLine.js @@ -133,11 +133,11 @@ Output:: DirectoryWatcher:: Triggered with /user/username/projects/myproject/projects/project1/class3.ts :: WatchInfo: /user/username/projects/myproject/projects/project1 1 undefined Wild card directory of referenced project Scheduling update Elapsed:: *ms DirectoryWatcher:: Triggered with /user/username/projects/myproject/projects/project1/class3.ts :: WatchInfo: /user/username/projects/myproject/projects/project1 1 undefined Wild card directory of referenced project +Synchronizing program +Loading config file: /user/username/projects/myproject/projects/project1/tsconfig.json 12:00:43 AM - File change detected. Starting incremental compilation... -Synchronizing program -Loading config file: /user/username/projects/myproject/projects/project1/tsconfig.json CreatingProgramWith:: roots: ["/user/username/projects/myproject/projects/project2/class2.ts"] options: {"module":0,"composite":true,"extendedDiagnostics":true,"configFilePath":"/user/username/projects/myproject/projects/project2/tsconfig.json"} diff --git a/tests/baselines/reference/tsserver/partialSemanticServer/syntactic-diagnostics-are-returned-with-no-error.js b/tests/baselines/reference/tsserver/partialSemanticServer/syntactic-diagnostics-are-returned-with-no-error.js index 86350b8eca27d..f7903c275312e 100644 --- a/tests/baselines/reference/tsserver/partialSemanticServer/syntactic-diagnostics-are-returned-with-no-error.js +++ b/tests/baselines/reference/tsserver/partialSemanticServer/syntactic-diagnostics-are-returned-with-no-error.js @@ -24,8 +24,8 @@ Open files: Projects: /dev/null/inferredProject1* response:{"responseRequired":false} request:{"type":"request","seq":1,"command":"syntacticDiagnosticsSync","arguments":{"file":"/user/username/projects/myproject/a.ts"}} -response:{"response":[{"start":{"line":1,"offset":17},"end":{"line":1,"offset":18},"text":"')' expected.","code":1005,"category":"error"}],"responseRequired":true} +response:{"response":[{"start":{"line":1,"offset":17},"end":{"line":1,"offset":18},"text":"')' expected.","code":1005,"category":"error","relatedInformation":[{"span":{"start":{"line":1,"offset":4},"end":{"line":1,"offset":5},"file":"/user/username/projects/myproject/a.ts"},"message":"The parser expected to find a ')' to match the '(' token here.","category":"error","code":1007}]}],"responseRequired":true} request:{"command":"geterr","arguments":{"delay":0,"files":["/user/username/projects/myproject/a.ts"]},"seq":2,"type":"request"} response:{"responseRequired":false} -Session does not support events: ignored event: {"seq":0,"type":"event","event":"syntaxDiag","body":{"file":"/user/username/projects/myproject/a.ts","diagnostics":[{"start":{"line":1,"offset":17},"end":{"line":1,"offset":18},"text":"')' expected.","code":1005,"category":"error"}]}} +Session does not support events: ignored event: {"seq":0,"type":"event","event":"syntaxDiag","body":{"file":"/user/username/projects/myproject/a.ts","diagnostics":[{"start":{"line":1,"offset":17},"end":{"line":1,"offset":18},"text":"')' expected.","code":1005,"category":"error","relatedInformation":[{"span":{"start":{"line":1,"offset":4},"end":{"line":1,"offset":5},"file":"/user/username/projects/myproject/a.ts"},"message":"The parser expected to find a ')' to match the '(' token here.","category":"error","code":1007}]}]}} Session does not support events: ignored event: {"seq":0,"type":"event","event":"requestCompleted","body":{"request_seq":2}} \ No newline at end of file diff --git a/tests/baselines/reference/tsserver/projectReferences/auto-import-with-referenced-project-when-built-with-disableSourceOfProjectReferenceRedirect.js b/tests/baselines/reference/tsserver/projectReferences/auto-import-with-referenced-project-when-built-with-disableSourceOfProjectReferenceRedirect.js index d7b7c45b64f85..241b70977b52b 100644 --- a/tests/baselines/reference/tsserver/projectReferences/auto-import-with-referenced-project-when-built-with-disableSourceOfProjectReferenceRedirect.js +++ b/tests/baselines/reference/tsserver/projectReferences/auto-import-with-referenced-project-when-built-with-disableSourceOfProjectReferenceRedirect.js @@ -98,4 +98,4 @@ response:{"responseRequired":false} request:{"command":"getCodeFixes","arguments":{"file":"/user/username/projects/myproject/app/src/program/index.ts","startLine":1,"startOffset":1,"endLine":1,"endOffset":4,"errorCodes":[2304]},"seq":1,"type":"request"} DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject/node_modules 1 undefined WatchType: node_modules for closed script infos and package.jsons affecting module specifier cache Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject/node_modules 1 undefined WatchType: node_modules for closed script infos and package.jsons affecting module specifier cache -response:{"response":[{"fixName":"import","description":"Import 'foo' from module \"shared\"","changes":[{"fileName":"/user/username/projects/myproject/app/src/program/index.ts","textChanges":[{"start":{"line":1,"offset":1},"end":{"line":1,"offset":1},"newText":"import { foo } from \"shared\";\n\n"}]}]}],"responseRequired":true} \ No newline at end of file +response:{"response":[{"fixName":"import","description":"Add import from \"shared\"","changes":[{"fileName":"/user/username/projects/myproject/app/src/program/index.ts","textChanges":[{"start":{"line":1,"offset":1},"end":{"line":1,"offset":1},"newText":"import { foo } from \"shared\";\n\n"}]}]}],"responseRequired":true} \ No newline at end of file diff --git a/tests/baselines/reference/tsserver/projectReferences/auto-import-with-referenced-project-when-built.js b/tests/baselines/reference/tsserver/projectReferences/auto-import-with-referenced-project-when-built.js index 6d2e6ff6b9038..76af89b5a9b50 100644 --- a/tests/baselines/reference/tsserver/projectReferences/auto-import-with-referenced-project-when-built.js +++ b/tests/baselines/reference/tsserver/projectReferences/auto-import-with-referenced-project-when-built.js @@ -97,4 +97,4 @@ response:{"responseRequired":false} request:{"command":"getCodeFixes","arguments":{"file":"/user/username/projects/myproject/app/src/program/index.ts","startLine":1,"startOffset":1,"endLine":1,"endOffset":4,"errorCodes":[2304]},"seq":1,"type":"request"} DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject/node_modules 1 undefined WatchType: node_modules for closed script infos and package.jsons affecting module specifier cache Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject/node_modules 1 undefined WatchType: node_modules for closed script infos and package.jsons affecting module specifier cache -response:{"response":[{"fixName":"import","description":"Import 'foo' from module \"shared\"","changes":[{"fileName":"/user/username/projects/myproject/app/src/program/index.ts","textChanges":[{"start":{"line":1,"offset":1},"end":{"line":1,"offset":1},"newText":"import { foo } from \"shared\";\n\n"}]}]}],"responseRequired":true} \ No newline at end of file +response:{"response":[{"fixName":"import","description":"Add import from \"shared\"","changes":[{"fileName":"/user/username/projects/myproject/app/src/program/index.ts","textChanges":[{"start":{"line":1,"offset":1},"end":{"line":1,"offset":1},"newText":"import { foo } from \"shared\";\n\n"}]}]}],"responseRequired":true} \ No newline at end of file diff --git a/tests/baselines/reference/tsserver/projectReferences/auto-import-with-referenced-project.js b/tests/baselines/reference/tsserver/projectReferences/auto-import-with-referenced-project.js index 6d2e6ff6b9038..76af89b5a9b50 100644 --- a/tests/baselines/reference/tsserver/projectReferences/auto-import-with-referenced-project.js +++ b/tests/baselines/reference/tsserver/projectReferences/auto-import-with-referenced-project.js @@ -97,4 +97,4 @@ response:{"responseRequired":false} request:{"command":"getCodeFixes","arguments":{"file":"/user/username/projects/myproject/app/src/program/index.ts","startLine":1,"startOffset":1,"endLine":1,"endOffset":4,"errorCodes":[2304]},"seq":1,"type":"request"} DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject/node_modules 1 undefined WatchType: node_modules for closed script infos and package.jsons affecting module specifier cache Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject/node_modules 1 undefined WatchType: node_modules for closed script infos and package.jsons affecting module specifier cache -response:{"response":[{"fixName":"import","description":"Import 'foo' from module \"shared\"","changes":[{"fileName":"/user/username/projects/myproject/app/src/program/index.ts","textChanges":[{"start":{"line":1,"offset":1},"end":{"line":1,"offset":1},"newText":"import { foo } from \"shared\";\n\n"}]}]}],"responseRequired":true} \ No newline at end of file +response:{"response":[{"fixName":"import","description":"Add import from \"shared\"","changes":[{"fileName":"/user/username/projects/myproject/app/src/program/index.ts","textChanges":[{"start":{"line":1,"offset":1},"end":{"line":1,"offset":1},"newText":"import { foo } from \"shared\";\n\n"}]}]}],"responseRequired":true} \ No newline at end of file diff --git a/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-disabled-and-proj-ref-redirects-are-disabled-and-a-decl-map-is-missing.js b/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-disabled-and-proj-ref-redirects-are-disabled-and-a-decl-map-is-missing.js index 97452f09da4bd..ce3688b728598 100644 --- a/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-disabled-and-proj-ref-redirects-are-disabled-and-a-decl-map-is-missing.js +++ b/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-disabled-and-proj-ref-redirects-are-disabled-and-a-decl-map-is-missing.js @@ -78,8 +78,6 @@ Creating configuration project /user/username/projects/myproject/b/tsconfig.json Plugins were requested but not running in environment that supports 'require'. Nothing will be loaded FileWatcher:: Added:: WatchInfo: /user/username/projects/myproject/b/index.ts 500 undefined WatchType: Closed Script info Starting updateGraphWorker: Project: /user/username/projects/myproject/b/tsconfig.json -DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject 0 undefined Project: /user/username/projects/myproject/b/tsconfig.json WatchType: Failed Lookup Locations -Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject 0 undefined Project: /user/username/projects/myproject/b/tsconfig.json WatchType: Failed Lookup Locations DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject/b 0 undefined Project: /user/username/projects/myproject/b/tsconfig.json WatchType: Failed Lookup Locations Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject/b 0 undefined Project: /user/username/projects/myproject/b/tsconfig.json WatchType: Failed Lookup Locations FileWatcher:: Added:: WatchInfo: /a/lib/lib.d.ts 500 undefined Project: /user/username/projects/myproject/b/tsconfig.json WatchType: Missing file @@ -118,5 +116,6 @@ Open files: Projects: /user/username/projects/myproject/b/tsconfig.json response:{"responseRequired":false} request:{"command":"references","arguments":{"file":"/user/username/projects/myproject/a/index.ts","line":3,"offset":10},"seq":1,"type":"request"} +Finding references to /user/username/projects/myproject/a/index.ts position 40 in project /user/username/projects/myproject/a/tsconfig.json FileWatcher:: Added:: WatchInfo: /user/username/projects/myproject/b/lib/index.d.ts.map 2000 undefined WatchType: Missing source map file response:{"response":{"refs":[{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":11},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":30},"lineText":"import { B } from \"../b/lib\";","isWriteAccess":true,"isDefinition":true},{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":3,"offset":10},"end":{"line":3,"offset":11},"lineText":"const b: B = new B();","isWriteAccess":false,"isDefinition":false},{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":3,"offset":18},"end":{"line":3,"offset":19},"lineText":"const b: B = new B();","isWriteAccess":false,"isDefinition":false},{"file":"/user/username/projects/myproject/b/lib/index.d.ts","start":{"line":1,"offset":22},"end":{"line":1,"offset":23},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":3,"offset":2},"lineText":"export declare class B {","isWriteAccess":true,"isDefinition":false}],"symbolName":"B","symbolStartOffset":10,"symbolDisplayString":"(alias) class B\nimport B"},"responseRequired":true} \ No newline at end of file diff --git a/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-disabled-and-proj-ref-redirects-are-disabled-and-a-decl-map-is-present.js b/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-disabled-and-proj-ref-redirects-are-disabled-and-a-decl-map-is-present.js index 14506aa873cf1..1bc9dd129483d 100644 --- a/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-disabled-and-proj-ref-redirects-are-disabled-and-a-decl-map-is-present.js +++ b/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-disabled-and-proj-ref-redirects-are-disabled-and-a-decl-map-is-present.js @@ -78,8 +78,6 @@ Creating configuration project /user/username/projects/myproject/b/tsconfig.json Plugins were requested but not running in environment that supports 'require'. Nothing will be loaded FileWatcher:: Added:: WatchInfo: /user/username/projects/myproject/b/index.ts 500 undefined WatchType: Closed Script info Starting updateGraphWorker: Project: /user/username/projects/myproject/b/tsconfig.json -DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject 0 undefined Project: /user/username/projects/myproject/b/tsconfig.json WatchType: Failed Lookup Locations -Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject 0 undefined Project: /user/username/projects/myproject/b/tsconfig.json WatchType: Failed Lookup Locations DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject/b 0 undefined Project: /user/username/projects/myproject/b/tsconfig.json WatchType: Failed Lookup Locations Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject/b 0 undefined Project: /user/username/projects/myproject/b/tsconfig.json WatchType: Failed Lookup Locations FileWatcher:: Added:: WatchInfo: /a/lib/lib.d.ts 500 undefined Project: /user/username/projects/myproject/b/tsconfig.json WatchType: Missing file @@ -118,9 +116,11 @@ Open files: Projects: /user/username/projects/myproject/b/tsconfig.json response:{"responseRequired":false} request:{"command":"references","arguments":{"file":"/user/username/projects/myproject/a/index.ts","line":3,"offset":10},"seq":1,"type":"request"} +Finding references to /user/username/projects/myproject/a/index.ts position 40 in project /user/username/projects/myproject/a/tsconfig.json FileWatcher:: Added:: WatchInfo: /user/username/projects/myproject/b/lib/index.d.ts.map 500 undefined WatchType: Closed Script info Search path: /user/username/projects/myproject/b For info: /user/username/projects/myproject/b/index.ts :: Config file name: /user/username/projects/myproject/b/tsconfig.json Search path: /user/username/projects/myproject/b For info: /user/username/projects/myproject/b/index.ts :: Config file name: /user/username/projects/myproject/b/tsconfig.json +Finding references to /user/username/projects/myproject/b/index.ts position 13 in project /user/username/projects/myproject/b/tsconfig.json response:{"response":{"refs":[{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":11},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":30},"lineText":"import { B } from \"../b/lib\";","isWriteAccess":true,"isDefinition":true},{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":3,"offset":10},"end":{"line":3,"offset":11},"lineText":"const b: B = new B();","isWriteAccess":false,"isDefinition":false},{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":3,"offset":18},"end":{"line":3,"offset":19},"lineText":"const b: B = new B();","isWriteAccess":false,"isDefinition":false},{"file":"/user/username/projects/myproject/b/index.ts","start":{"line":1,"offset":14},"end":{"line":1,"offset":15},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":3,"offset":2},"lineText":"export class B {","isWriteAccess":true,"isDefinition":true},{"file":"/user/username/projects/myproject/b/helper.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":11},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":23},"lineText":"import { B } from \".\";","isWriteAccess":true,"isDefinition":false},{"file":"/user/username/projects/myproject/b/helper.ts","start":{"line":3,"offset":10},"end":{"line":3,"offset":11},"lineText":"const b: B = new B();","isWriteAccess":false,"isDefinition":false},{"file":"/user/username/projects/myproject/b/helper.ts","start":{"line":3,"offset":18},"end":{"line":3,"offset":19},"lineText":"const b: B = new B();","isWriteAccess":false,"isDefinition":false}],"symbolName":"B","symbolStartOffset":10,"symbolDisplayString":"(alias) class B\nimport B"},"responseRequired":true} \ No newline at end of file diff --git a/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-disabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-missing.js b/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-disabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-missing.js index 9675f9aceb516..4711ea0e97bb8 100644 --- a/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-disabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-missing.js +++ b/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-disabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-missing.js @@ -77,8 +77,6 @@ For info: /user/username/projects/myproject/b/helper.ts :: Config file name: /us Creating configuration project /user/username/projects/myproject/b/tsconfig.json Plugins were requested but not running in environment that supports 'require'. Nothing will be loaded Starting updateGraphWorker: Project: /user/username/projects/myproject/b/tsconfig.json -DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject 0 undefined Project: /user/username/projects/myproject/b/tsconfig.json WatchType: Failed Lookup Locations -Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject 0 undefined Project: /user/username/projects/myproject/b/tsconfig.json WatchType: Failed Lookup Locations DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject/b 0 undefined Project: /user/username/projects/myproject/b/tsconfig.json WatchType: Failed Lookup Locations Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject/b 0 undefined Project: /user/username/projects/myproject/b/tsconfig.json WatchType: Failed Lookup Locations FileWatcher:: Added:: WatchInfo: /a/lib/lib.d.ts 500 undefined Project: /user/username/projects/myproject/b/tsconfig.json WatchType: Missing file @@ -117,8 +115,10 @@ Open files: Projects: /user/username/projects/myproject/b/tsconfig.json response:{"responseRequired":false} request:{"command":"references","arguments":{"file":"/user/username/projects/myproject/a/index.ts","line":3,"offset":10},"seq":1,"type":"request"} +Finding references to /user/username/projects/myproject/a/index.ts position 40 in project /user/username/projects/myproject/a/tsconfig.json Search path: /user/username/projects/myproject/b For info: /user/username/projects/myproject/b/index.ts :: Config file name: /user/username/projects/myproject/b/tsconfig.json Search path: /user/username/projects/myproject/b For info: /user/username/projects/myproject/b/index.ts :: Config file name: /user/username/projects/myproject/b/tsconfig.json +Finding references to /user/username/projects/myproject/b/index.ts position 13 in project /user/username/projects/myproject/b/tsconfig.json response:{"response":{"refs":[{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":11},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":30},"lineText":"import { B } from \"../b/lib\";","isWriteAccess":true,"isDefinition":true},{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":3,"offset":10},"end":{"line":3,"offset":11},"lineText":"const b: B = new B();","isWriteAccess":false,"isDefinition":false},{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":3,"offset":18},"end":{"line":3,"offset":19},"lineText":"const b: B = new B();","isWriteAccess":false,"isDefinition":false},{"file":"/user/username/projects/myproject/b/index.ts","start":{"line":1,"offset":14},"end":{"line":1,"offset":15},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":3,"offset":2},"lineText":"export class B {","isWriteAccess":true,"isDefinition":false},{"file":"/user/username/projects/myproject/b/helper.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":11},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":23},"lineText":"import { B } from \".\";","isWriteAccess":true,"isDefinition":false},{"file":"/user/username/projects/myproject/b/helper.ts","start":{"line":3,"offset":10},"end":{"line":3,"offset":11},"lineText":"const b: B = new B();","isWriteAccess":false,"isDefinition":false},{"file":"/user/username/projects/myproject/b/helper.ts","start":{"line":3,"offset":18},"end":{"line":3,"offset":19},"lineText":"const b: B = new B();","isWriteAccess":false,"isDefinition":false}],"symbolName":"B","symbolStartOffset":10,"symbolDisplayString":"(alias) class B\nimport B"},"responseRequired":true} \ No newline at end of file diff --git a/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-disabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-present.js b/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-disabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-present.js index 9675f9aceb516..4711ea0e97bb8 100644 --- a/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-disabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-present.js +++ b/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-disabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-present.js @@ -77,8 +77,6 @@ For info: /user/username/projects/myproject/b/helper.ts :: Config file name: /us Creating configuration project /user/username/projects/myproject/b/tsconfig.json Plugins were requested but not running in environment that supports 'require'. Nothing will be loaded Starting updateGraphWorker: Project: /user/username/projects/myproject/b/tsconfig.json -DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject 0 undefined Project: /user/username/projects/myproject/b/tsconfig.json WatchType: Failed Lookup Locations -Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject 0 undefined Project: /user/username/projects/myproject/b/tsconfig.json WatchType: Failed Lookup Locations DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject/b 0 undefined Project: /user/username/projects/myproject/b/tsconfig.json WatchType: Failed Lookup Locations Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject/b 0 undefined Project: /user/username/projects/myproject/b/tsconfig.json WatchType: Failed Lookup Locations FileWatcher:: Added:: WatchInfo: /a/lib/lib.d.ts 500 undefined Project: /user/username/projects/myproject/b/tsconfig.json WatchType: Missing file @@ -117,8 +115,10 @@ Open files: Projects: /user/username/projects/myproject/b/tsconfig.json response:{"responseRequired":false} request:{"command":"references","arguments":{"file":"/user/username/projects/myproject/a/index.ts","line":3,"offset":10},"seq":1,"type":"request"} +Finding references to /user/username/projects/myproject/a/index.ts position 40 in project /user/username/projects/myproject/a/tsconfig.json Search path: /user/username/projects/myproject/b For info: /user/username/projects/myproject/b/index.ts :: Config file name: /user/username/projects/myproject/b/tsconfig.json Search path: /user/username/projects/myproject/b For info: /user/username/projects/myproject/b/index.ts :: Config file name: /user/username/projects/myproject/b/tsconfig.json +Finding references to /user/username/projects/myproject/b/index.ts position 13 in project /user/username/projects/myproject/b/tsconfig.json response:{"response":{"refs":[{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":11},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":30},"lineText":"import { B } from \"../b/lib\";","isWriteAccess":true,"isDefinition":true},{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":3,"offset":10},"end":{"line":3,"offset":11},"lineText":"const b: B = new B();","isWriteAccess":false,"isDefinition":false},{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":3,"offset":18},"end":{"line":3,"offset":19},"lineText":"const b: B = new B();","isWriteAccess":false,"isDefinition":false},{"file":"/user/username/projects/myproject/b/index.ts","start":{"line":1,"offset":14},"end":{"line":1,"offset":15},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":3,"offset":2},"lineText":"export class B {","isWriteAccess":true,"isDefinition":false},{"file":"/user/username/projects/myproject/b/helper.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":11},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":23},"lineText":"import { B } from \".\";","isWriteAccess":true,"isDefinition":false},{"file":"/user/username/projects/myproject/b/helper.ts","start":{"line":3,"offset":10},"end":{"line":3,"offset":11},"lineText":"const b: B = new B();","isWriteAccess":false,"isDefinition":false},{"file":"/user/username/projects/myproject/b/helper.ts","start":{"line":3,"offset":18},"end":{"line":3,"offset":19},"lineText":"const b: B = new B();","isWriteAccess":false,"isDefinition":false}],"symbolName":"B","symbolStartOffset":10,"symbolDisplayString":"(alias) class B\nimport B"},"responseRequired":true} \ No newline at end of file diff --git a/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-disabled-and-a-decl-map-is-missing.js b/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-disabled-and-a-decl-map-is-missing.js index d240cf5f50f5b..8f623cafddeb2 100644 --- a/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-disabled-and-a-decl-map-is-missing.js +++ b/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-disabled-and-a-decl-map-is-missing.js @@ -78,8 +78,6 @@ Creating configuration project /user/username/projects/myproject/b/tsconfig.json Plugins were requested but not running in environment that supports 'require'. Nothing will be loaded FileWatcher:: Added:: WatchInfo: /user/username/projects/myproject/b/index.ts 500 undefined WatchType: Closed Script info Starting updateGraphWorker: Project: /user/username/projects/myproject/b/tsconfig.json -DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject 0 undefined Project: /user/username/projects/myproject/b/tsconfig.json WatchType: Failed Lookup Locations -Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject 0 undefined Project: /user/username/projects/myproject/b/tsconfig.json WatchType: Failed Lookup Locations DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject/b 0 undefined Project: /user/username/projects/myproject/b/tsconfig.json WatchType: Failed Lookup Locations Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject/b 0 undefined Project: /user/username/projects/myproject/b/tsconfig.json WatchType: Failed Lookup Locations FileWatcher:: Added:: WatchInfo: /a/lib/lib.d.ts 500 undefined Project: /user/username/projects/myproject/b/tsconfig.json WatchType: Missing file @@ -118,5 +116,6 @@ Open files: Projects: /user/username/projects/myproject/b/tsconfig.json response:{"responseRequired":false} request:{"command":"references","arguments":{"file":"/user/username/projects/myproject/a/index.ts","line":3,"offset":10},"seq":1,"type":"request"} +Finding references to /user/username/projects/myproject/a/index.ts position 40 in project /user/username/projects/myproject/a/tsconfig.json FileWatcher:: Added:: WatchInfo: /user/username/projects/myproject/b/lib/index.d.ts.map 2000 undefined WatchType: Missing source map file response:{"response":{"refs":[{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":11},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":30},"lineText":"import { B } from \"../b/lib\";","isWriteAccess":true,"isDefinition":true},{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":3,"offset":10},"end":{"line":3,"offset":11},"lineText":"const b: B = new B();","isWriteAccess":false,"isDefinition":false},{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":3,"offset":18},"end":{"line":3,"offset":19},"lineText":"const b: B = new B();","isWriteAccess":false,"isDefinition":false},{"file":"/user/username/projects/myproject/b/lib/index.d.ts","start":{"line":1,"offset":22},"end":{"line":1,"offset":23},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":3,"offset":2},"lineText":"export declare class B {","isWriteAccess":true,"isDefinition":false}],"symbolName":"B","symbolStartOffset":10,"symbolDisplayString":"(alias) class B\nimport B"},"responseRequired":true} \ No newline at end of file diff --git a/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-disabled-and-a-decl-map-is-present.js b/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-disabled-and-a-decl-map-is-present.js index 86197a4a62841..42e5e3e6e5109 100644 --- a/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-disabled-and-a-decl-map-is-present.js +++ b/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-disabled-and-a-decl-map-is-present.js @@ -78,8 +78,6 @@ Creating configuration project /user/username/projects/myproject/b/tsconfig.json Plugins were requested but not running in environment that supports 'require'. Nothing will be loaded FileWatcher:: Added:: WatchInfo: /user/username/projects/myproject/b/index.ts 500 undefined WatchType: Closed Script info Starting updateGraphWorker: Project: /user/username/projects/myproject/b/tsconfig.json -DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject 0 undefined Project: /user/username/projects/myproject/b/tsconfig.json WatchType: Failed Lookup Locations -Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject 0 undefined Project: /user/username/projects/myproject/b/tsconfig.json WatchType: Failed Lookup Locations DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject/b 0 undefined Project: /user/username/projects/myproject/b/tsconfig.json WatchType: Failed Lookup Locations Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject/b 0 undefined Project: /user/username/projects/myproject/b/tsconfig.json WatchType: Failed Lookup Locations FileWatcher:: Added:: WatchInfo: /a/lib/lib.d.ts 500 undefined Project: /user/username/projects/myproject/b/tsconfig.json WatchType: Missing file @@ -118,9 +116,11 @@ Open files: Projects: /user/username/projects/myproject/b/tsconfig.json response:{"responseRequired":false} request:{"command":"references","arguments":{"file":"/user/username/projects/myproject/a/index.ts","line":3,"offset":10},"seq":1,"type":"request"} +Finding references to /user/username/projects/myproject/a/index.ts position 40 in project /user/username/projects/myproject/a/tsconfig.json FileWatcher:: Added:: WatchInfo: /user/username/projects/myproject/b/lib/index.d.ts.map 500 undefined WatchType: Closed Script info Search path: /user/username/projects/myproject/b For info: /user/username/projects/myproject/b/index.ts :: Config file name: /user/username/projects/myproject/b/tsconfig.json Search path: /user/username/projects/myproject/b For info: /user/username/projects/myproject/b/index.ts :: Config file name: /user/username/projects/myproject/b/tsconfig.json +Finding references to /user/username/projects/myproject/b/index.ts position 13 in project /user/username/projects/myproject/b/tsconfig.json response:{"response":{"refs":[{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":11},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":30},"lineText":"import { B } from \"../b/lib\";","isWriteAccess":true,"isDefinition":true},{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":3,"offset":10},"end":{"line":3,"offset":11},"lineText":"const b: B = new B();","isWriteAccess":false,"isDefinition":false},{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":3,"offset":18},"end":{"line":3,"offset":19},"lineText":"const b: B = new B();","isWriteAccess":false,"isDefinition":false},{"file":"/user/username/projects/myproject/b/index.ts","start":{"line":1,"offset":14},"end":{"line":1,"offset":15},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":3,"offset":2},"lineText":"export class B {","isWriteAccess":true,"isDefinition":true},{"file":"/user/username/projects/myproject/b/helper.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":11},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":23},"lineText":"import { B } from \".\";","isWriteAccess":true,"isDefinition":false},{"file":"/user/username/projects/myproject/b/helper.ts","start":{"line":3,"offset":10},"end":{"line":3,"offset":11},"lineText":"const b: B = new B();","isWriteAccess":false,"isDefinition":false},{"file":"/user/username/projects/myproject/b/helper.ts","start":{"line":3,"offset":18},"end":{"line":3,"offset":19},"lineText":"const b: B = new B();","isWriteAccess":false,"isDefinition":false}],"symbolName":"B","symbolStartOffset":10,"symbolDisplayString":"(alias) class B\nimport B"},"responseRequired":true} \ No newline at end of file diff --git a/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-missing.js b/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-missing.js index 7dfe811088ca2..dc8a96898a8c6 100644 --- a/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-missing.js +++ b/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-missing.js @@ -77,8 +77,6 @@ For info: /user/username/projects/myproject/b/helper.ts :: Config file name: /us Creating configuration project /user/username/projects/myproject/b/tsconfig.json Plugins were requested but not running in environment that supports 'require'. Nothing will be loaded Starting updateGraphWorker: Project: /user/username/projects/myproject/b/tsconfig.json -DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject 0 undefined Project: /user/username/projects/myproject/b/tsconfig.json WatchType: Failed Lookup Locations -Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject 0 undefined Project: /user/username/projects/myproject/b/tsconfig.json WatchType: Failed Lookup Locations DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject/b 0 undefined Project: /user/username/projects/myproject/b/tsconfig.json WatchType: Failed Lookup Locations Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject/b 0 undefined Project: /user/username/projects/myproject/b/tsconfig.json WatchType: Failed Lookup Locations FileWatcher:: Added:: WatchInfo: /a/lib/lib.d.ts 500 undefined Project: /user/username/projects/myproject/b/tsconfig.json WatchType: Missing file @@ -117,8 +115,10 @@ Open files: Projects: /user/username/projects/myproject/b/tsconfig.json response:{"responseRequired":false} request:{"command":"references","arguments":{"file":"/user/username/projects/myproject/a/index.ts","line":3,"offset":10},"seq":1,"type":"request"} +Finding references to /user/username/projects/myproject/a/index.ts position 40 in project /user/username/projects/myproject/a/tsconfig.json Search path: /user/username/projects/myproject/b For info: /user/username/projects/myproject/b/index.ts :: Config file name: /user/username/projects/myproject/b/tsconfig.json Search path: /user/username/projects/myproject/b For info: /user/username/projects/myproject/b/index.ts :: Config file name: /user/username/projects/myproject/b/tsconfig.json +Finding references to /user/username/projects/myproject/b/index.ts position 13 in project /user/username/projects/myproject/b/tsconfig.json response:{"response":{"refs":[{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":11},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":30},"lineText":"import { B } from \"../b/lib\";","isWriteAccess":true,"isDefinition":true},{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":3,"offset":10},"end":{"line":3,"offset":11},"lineText":"const b: B = new B();","isWriteAccess":false,"isDefinition":false},{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":3,"offset":18},"end":{"line":3,"offset":19},"lineText":"const b: B = new B();","isWriteAccess":false,"isDefinition":false},{"file":"/user/username/projects/myproject/b/index.ts","start":{"line":1,"offset":14},"end":{"line":1,"offset":15},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":3,"offset":2},"lineText":"export class B {","isWriteAccess":true,"isDefinition":false},{"file":"/user/username/projects/myproject/b/helper.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":11},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":23},"lineText":"import { B } from \".\";","isWriteAccess":true,"isDefinition":false},{"file":"/user/username/projects/myproject/b/helper.ts","start":{"line":3,"offset":10},"end":{"line":3,"offset":11},"lineText":"const b: B = new B();","isWriteAccess":false,"isDefinition":false},{"file":"/user/username/projects/myproject/b/helper.ts","start":{"line":3,"offset":18},"end":{"line":3,"offset":19},"lineText":"const b: B = new B();","isWriteAccess":false,"isDefinition":false}],"symbolName":"B","symbolStartOffset":10,"symbolDisplayString":"(alias) class B\nimport B"},"responseRequired":true} \ No newline at end of file diff --git a/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-present.js b/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-present.js index 7dfe811088ca2..dc8a96898a8c6 100644 --- a/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-present.js +++ b/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-present.js @@ -77,8 +77,6 @@ For info: /user/username/projects/myproject/b/helper.ts :: Config file name: /us Creating configuration project /user/username/projects/myproject/b/tsconfig.json Plugins were requested but not running in environment that supports 'require'. Nothing will be loaded Starting updateGraphWorker: Project: /user/username/projects/myproject/b/tsconfig.json -DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject 0 undefined Project: /user/username/projects/myproject/b/tsconfig.json WatchType: Failed Lookup Locations -Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject 0 undefined Project: /user/username/projects/myproject/b/tsconfig.json WatchType: Failed Lookup Locations DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject/b 0 undefined Project: /user/username/projects/myproject/b/tsconfig.json WatchType: Failed Lookup Locations Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject/b 0 undefined Project: /user/username/projects/myproject/b/tsconfig.json WatchType: Failed Lookup Locations FileWatcher:: Added:: WatchInfo: /a/lib/lib.d.ts 500 undefined Project: /user/username/projects/myproject/b/tsconfig.json WatchType: Missing file @@ -117,8 +115,10 @@ Open files: Projects: /user/username/projects/myproject/b/tsconfig.json response:{"responseRequired":false} request:{"command":"references","arguments":{"file":"/user/username/projects/myproject/a/index.ts","line":3,"offset":10},"seq":1,"type":"request"} +Finding references to /user/username/projects/myproject/a/index.ts position 40 in project /user/username/projects/myproject/a/tsconfig.json Search path: /user/username/projects/myproject/b For info: /user/username/projects/myproject/b/index.ts :: Config file name: /user/username/projects/myproject/b/tsconfig.json Search path: /user/username/projects/myproject/b For info: /user/username/projects/myproject/b/index.ts :: Config file name: /user/username/projects/myproject/b/tsconfig.json +Finding references to /user/username/projects/myproject/b/index.ts position 13 in project /user/username/projects/myproject/b/tsconfig.json response:{"response":{"refs":[{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":11},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":30},"lineText":"import { B } from \"../b/lib\";","isWriteAccess":true,"isDefinition":true},{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":3,"offset":10},"end":{"line":3,"offset":11},"lineText":"const b: B = new B();","isWriteAccess":false,"isDefinition":false},{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":3,"offset":18},"end":{"line":3,"offset":19},"lineText":"const b: B = new B();","isWriteAccess":false,"isDefinition":false},{"file":"/user/username/projects/myproject/b/index.ts","start":{"line":1,"offset":14},"end":{"line":1,"offset":15},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":3,"offset":2},"lineText":"export class B {","isWriteAccess":true,"isDefinition":false},{"file":"/user/username/projects/myproject/b/helper.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":11},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":23},"lineText":"import { B } from \".\";","isWriteAccess":true,"isDefinition":false},{"file":"/user/username/projects/myproject/b/helper.ts","start":{"line":3,"offset":10},"end":{"line":3,"offset":11},"lineText":"const b: B = new B();","isWriteAccess":false,"isDefinition":false},{"file":"/user/username/projects/myproject/b/helper.ts","start":{"line":3,"offset":18},"end":{"line":3,"offset":19},"lineText":"const b: B = new B();","isWriteAccess":false,"isDefinition":false}],"symbolName":"B","symbolStartOffset":10,"symbolDisplayString":"(alias) class B\nimport B"},"responseRequired":true} \ No newline at end of file diff --git a/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-not-loaded-and-refd-proj-loading-is-disabled-and-proj-ref-redirects-are-disabled-and-a-decl-map-is-missing.js b/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-not-loaded-and-refd-proj-loading-is-disabled-and-proj-ref-redirects-are-disabled-and-a-decl-map-is-missing.js index 9802936b4f05e..632f7b1324eaf 100644 --- a/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-not-loaded-and-refd-proj-loading-is-disabled-and-proj-ref-redirects-are-disabled-and-a-decl-map-is-missing.js +++ b/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-not-loaded-and-refd-proj-loading-is-disabled-and-proj-ref-redirects-are-disabled-and-a-decl-map-is-missing.js @@ -72,5 +72,6 @@ Open files: Projects: /user/username/projects/myproject/a/tsconfig.json response:{"responseRequired":false} request:{"command":"references","arguments":{"file":"/user/username/projects/myproject/a/index.ts","line":3,"offset":10},"seq":1,"type":"request"} +Finding references to /user/username/projects/myproject/a/index.ts position 40 in project /user/username/projects/myproject/a/tsconfig.json FileWatcher:: Added:: WatchInfo: /user/username/projects/myproject/b/lib/index.d.ts.map 2000 undefined WatchType: Missing source map file response:{"response":{"refs":[{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":11},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":30},"lineText":"import { B } from \"../b/lib\";","isWriteAccess":true,"isDefinition":true},{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":3,"offset":10},"end":{"line":3,"offset":11},"lineText":"const b: B = new B();","isWriteAccess":false,"isDefinition":false},{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":3,"offset":18},"end":{"line":3,"offset":19},"lineText":"const b: B = new B();","isWriteAccess":false,"isDefinition":false},{"file":"/user/username/projects/myproject/b/lib/index.d.ts","start":{"line":1,"offset":22},"end":{"line":1,"offset":23},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":3,"offset":2},"lineText":"export declare class B {","isWriteAccess":true,"isDefinition":false}],"symbolName":"B","symbolStartOffset":10,"symbolDisplayString":"(alias) class B\nimport B"},"responseRequired":true} \ No newline at end of file diff --git a/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-not-loaded-and-refd-proj-loading-is-disabled-and-proj-ref-redirects-are-disabled-and-a-decl-map-is-present.js b/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-not-loaded-and-refd-proj-loading-is-disabled-and-proj-ref-redirects-are-disabled-and-a-decl-map-is-present.js index 0a3f5852f993a..1903f0af5e95c 100644 --- a/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-not-loaded-and-refd-proj-loading-is-disabled-and-proj-ref-redirects-are-disabled-and-a-decl-map-is-present.js +++ b/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-not-loaded-and-refd-proj-loading-is-disabled-and-proj-ref-redirects-are-disabled-and-a-decl-map-is-present.js @@ -72,6 +72,7 @@ Open files: Projects: /user/username/projects/myproject/a/tsconfig.json response:{"responseRequired":false} request:{"command":"references","arguments":{"file":"/user/username/projects/myproject/a/index.ts","line":3,"offset":10},"seq":1,"type":"request"} +Finding references to /user/username/projects/myproject/a/index.ts position 40 in project /user/username/projects/myproject/a/tsconfig.json FileWatcher:: Added:: WatchInfo: /user/username/projects/myproject/b/lib/index.d.ts.map 500 undefined WatchType: Closed Script info FileWatcher:: Added:: WatchInfo: /user/username/projects/myproject/b/index.ts 500 undefined WatchType: Closed Script info Search path: /user/username/projects/myproject/b diff --git a/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-not-loaded-and-refd-proj-loading-is-disabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-missing.js b/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-not-loaded-and-refd-proj-loading-is-disabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-missing.js index 9ded214384a27..472fa5d8a5b48 100644 --- a/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-not-loaded-and-refd-proj-loading-is-disabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-missing.js +++ b/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-not-loaded-and-refd-proj-loading-is-disabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-missing.js @@ -72,6 +72,7 @@ Open files: Projects: /user/username/projects/myproject/a/tsconfig.json response:{"responseRequired":false} request:{"command":"references","arguments":{"file":"/user/username/projects/myproject/a/index.ts","line":3,"offset":10},"seq":1,"type":"request"} +Finding references to /user/username/projects/myproject/a/index.ts position 40 in project /user/username/projects/myproject/a/tsconfig.json Search path: /user/username/projects/myproject/b For info: /user/username/projects/myproject/b/index.ts :: Config file name: /user/username/projects/myproject/b/tsconfig.json Search path: /user/username/projects/myproject/b diff --git a/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-not-loaded-and-refd-proj-loading-is-disabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-present.js b/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-not-loaded-and-refd-proj-loading-is-disabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-present.js index 9ded214384a27..472fa5d8a5b48 100644 --- a/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-not-loaded-and-refd-proj-loading-is-disabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-present.js +++ b/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-not-loaded-and-refd-proj-loading-is-disabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-present.js @@ -72,6 +72,7 @@ Open files: Projects: /user/username/projects/myproject/a/tsconfig.json response:{"responseRequired":false} request:{"command":"references","arguments":{"file":"/user/username/projects/myproject/a/index.ts","line":3,"offset":10},"seq":1,"type":"request"} +Finding references to /user/username/projects/myproject/a/index.ts position 40 in project /user/username/projects/myproject/a/tsconfig.json Search path: /user/username/projects/myproject/b For info: /user/username/projects/myproject/b/index.ts :: Config file name: /user/username/projects/myproject/b/tsconfig.json Search path: /user/username/projects/myproject/b diff --git a/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-not-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-disabled-and-a-decl-map-is-missing.js b/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-not-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-disabled-and-a-decl-map-is-missing.js index e0558ac23e961..6fb984c8aca64 100644 --- a/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-not-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-disabled-and-a-decl-map-is-missing.js +++ b/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-not-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-disabled-and-a-decl-map-is-missing.js @@ -72,5 +72,6 @@ Open files: Projects: /user/username/projects/myproject/a/tsconfig.json response:{"responseRequired":false} request:{"command":"references","arguments":{"file":"/user/username/projects/myproject/a/index.ts","line":3,"offset":10},"seq":1,"type":"request"} +Finding references to /user/username/projects/myproject/a/index.ts position 40 in project /user/username/projects/myproject/a/tsconfig.json FileWatcher:: Added:: WatchInfo: /user/username/projects/myproject/b/lib/index.d.ts.map 2000 undefined WatchType: Missing source map file response:{"response":{"refs":[{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":11},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":30},"lineText":"import { B } from \"../b/lib\";","isWriteAccess":true,"isDefinition":true},{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":3,"offset":10},"end":{"line":3,"offset":11},"lineText":"const b: B = new B();","isWriteAccess":false,"isDefinition":false},{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":3,"offset":18},"end":{"line":3,"offset":19},"lineText":"const b: B = new B();","isWriteAccess":false,"isDefinition":false},{"file":"/user/username/projects/myproject/b/lib/index.d.ts","start":{"line":1,"offset":22},"end":{"line":1,"offset":23},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":3,"offset":2},"lineText":"export declare class B {","isWriteAccess":true,"isDefinition":false}],"symbolName":"B","symbolStartOffset":10,"symbolDisplayString":"(alias) class B\nimport B"},"responseRequired":true} \ No newline at end of file diff --git a/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-not-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-disabled-and-a-decl-map-is-present.js b/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-not-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-disabled-and-a-decl-map-is-present.js index 518b4d0347f4f..b702f7ee33a75 100644 --- a/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-not-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-disabled-and-a-decl-map-is-present.js +++ b/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-not-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-disabled-and-a-decl-map-is-present.js @@ -72,6 +72,7 @@ Open files: Projects: /user/username/projects/myproject/a/tsconfig.json response:{"responseRequired":false} request:{"command":"references","arguments":{"file":"/user/username/projects/myproject/a/index.ts","line":3,"offset":10},"seq":1,"type":"request"} +Finding references to /user/username/projects/myproject/a/index.ts position 40 in project /user/username/projects/myproject/a/tsconfig.json FileWatcher:: Added:: WatchInfo: /user/username/projects/myproject/b/lib/index.d.ts.map 500 undefined WatchType: Closed Script info FileWatcher:: Added:: WatchInfo: /user/username/projects/myproject/b/index.ts 500 undefined WatchType: Closed Script info Search path: /user/username/projects/myproject/b @@ -80,8 +81,6 @@ Creating configuration project /user/username/projects/myproject/b/tsconfig.json Plugins were requested but not running in environment that supports 'require'. Nothing will be loaded FileWatcher:: Added:: WatchInfo: /user/username/projects/myproject/b/helper.ts 500 undefined WatchType: Closed Script info Starting updateGraphWorker: Project: /user/username/projects/myproject/b/tsconfig.json -DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject 0 undefined Project: /user/username/projects/myproject/b/tsconfig.json WatchType: Failed Lookup Locations -Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject 0 undefined Project: /user/username/projects/myproject/b/tsconfig.json WatchType: Failed Lookup Locations DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject/b 0 undefined Project: /user/username/projects/myproject/b/tsconfig.json WatchType: Failed Lookup Locations Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject/b 0 undefined Project: /user/username/projects/myproject/b/tsconfig.json WatchType: Failed Lookup Locations FileWatcher:: Added:: WatchInfo: /a/lib/lib.d.ts 500 undefined Project: /user/username/projects/myproject/b/tsconfig.json WatchType: Missing file @@ -105,4 +104,5 @@ Project '/user/username/projects/myproject/b/tsconfig.json' (Configured) ----------------------------------------------- Search path: /user/username/projects/myproject/b For info: /user/username/projects/myproject/b/index.ts :: Config file name: /user/username/projects/myproject/b/tsconfig.json +Finding references to /user/username/projects/myproject/b/index.ts position 13 in project /user/username/projects/myproject/b/tsconfig.json response:{"response":{"refs":[{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":11},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":30},"lineText":"import { B } from \"../b/lib\";","isWriteAccess":true,"isDefinition":true},{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":3,"offset":10},"end":{"line":3,"offset":11},"lineText":"const b: B = new B();","isWriteAccess":false,"isDefinition":false},{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":3,"offset":18},"end":{"line":3,"offset":19},"lineText":"const b: B = new B();","isWriteAccess":false,"isDefinition":false},{"file":"/user/username/projects/myproject/b/index.ts","start":{"line":1,"offset":14},"end":{"line":1,"offset":15},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":3,"offset":2},"lineText":"export class B {","isWriteAccess":true,"isDefinition":true},{"file":"/user/username/projects/myproject/b/helper.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":11},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":23},"lineText":"import { B } from \".\";","isWriteAccess":true,"isDefinition":false},{"file":"/user/username/projects/myproject/b/helper.ts","start":{"line":3,"offset":10},"end":{"line":3,"offset":11},"lineText":"const b: B = new B();","isWriteAccess":false,"isDefinition":false},{"file":"/user/username/projects/myproject/b/helper.ts","start":{"line":3,"offset":18},"end":{"line":3,"offset":19},"lineText":"const b: B = new B();","isWriteAccess":false,"isDefinition":false}],"symbolName":"B","symbolStartOffset":10,"symbolDisplayString":"(alias) class B\nimport B"},"responseRequired":true} \ No newline at end of file diff --git a/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-not-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-missing.js b/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-not-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-missing.js index 36260b89369b9..55d79cb9042d0 100644 --- a/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-not-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-missing.js +++ b/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-not-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-missing.js @@ -72,14 +72,13 @@ Open files: Projects: /user/username/projects/myproject/a/tsconfig.json response:{"responseRequired":false} request:{"command":"references","arguments":{"file":"/user/username/projects/myproject/a/index.ts","line":3,"offset":10},"seq":1,"type":"request"} +Finding references to /user/username/projects/myproject/a/index.ts position 40 in project /user/username/projects/myproject/a/tsconfig.json Search path: /user/username/projects/myproject/b For info: /user/username/projects/myproject/b/index.ts :: Config file name: /user/username/projects/myproject/b/tsconfig.json Creating configuration project /user/username/projects/myproject/b/tsconfig.json Plugins were requested but not running in environment that supports 'require'. Nothing will be loaded FileWatcher:: Added:: WatchInfo: /user/username/projects/myproject/b/helper.ts 500 undefined WatchType: Closed Script info Starting updateGraphWorker: Project: /user/username/projects/myproject/b/tsconfig.json -DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject 0 undefined Project: /user/username/projects/myproject/b/tsconfig.json WatchType: Failed Lookup Locations -Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject 0 undefined Project: /user/username/projects/myproject/b/tsconfig.json WatchType: Failed Lookup Locations DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject/b 0 undefined Project: /user/username/projects/myproject/b/tsconfig.json WatchType: Failed Lookup Locations Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject/b 0 undefined Project: /user/username/projects/myproject/b/tsconfig.json WatchType: Failed Lookup Locations FileWatcher:: Added:: WatchInfo: /a/lib/lib.d.ts 500 undefined Project: /user/username/projects/myproject/b/tsconfig.json WatchType: Missing file @@ -103,4 +102,5 @@ Project '/user/username/projects/myproject/b/tsconfig.json' (Configured) ----------------------------------------------- Search path: /user/username/projects/myproject/b For info: /user/username/projects/myproject/b/index.ts :: Config file name: /user/username/projects/myproject/b/tsconfig.json +Finding references to /user/username/projects/myproject/b/index.ts position 13 in project /user/username/projects/myproject/b/tsconfig.json response:{"response":{"refs":[{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":11},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":30},"lineText":"import { B } from \"../b/lib\";","isWriteAccess":true,"isDefinition":true},{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":3,"offset":10},"end":{"line":3,"offset":11},"lineText":"const b: B = new B();","isWriteAccess":false,"isDefinition":false},{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":3,"offset":18},"end":{"line":3,"offset":19},"lineText":"const b: B = new B();","isWriteAccess":false,"isDefinition":false},{"file":"/user/username/projects/myproject/b/index.ts","start":{"line":1,"offset":14},"end":{"line":1,"offset":15},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":3,"offset":2},"lineText":"export class B {","isWriteAccess":true,"isDefinition":false},{"file":"/user/username/projects/myproject/b/helper.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":11},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":23},"lineText":"import { B } from \".\";","isWriteAccess":true,"isDefinition":false},{"file":"/user/username/projects/myproject/b/helper.ts","start":{"line":3,"offset":10},"end":{"line":3,"offset":11},"lineText":"const b: B = new B();","isWriteAccess":false,"isDefinition":false},{"file":"/user/username/projects/myproject/b/helper.ts","start":{"line":3,"offset":18},"end":{"line":3,"offset":19},"lineText":"const b: B = new B();","isWriteAccess":false,"isDefinition":false}],"symbolName":"B","symbolStartOffset":10,"symbolDisplayString":"(alias) class B\nimport B"},"responseRequired":true} \ No newline at end of file diff --git a/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-not-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-present.js b/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-not-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-present.js index 36260b89369b9..55d79cb9042d0 100644 --- a/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-not-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-present.js +++ b/tests/baselines/reference/tsserver/projectReferences/find-refs-to-decl-in-other-proj-when-proj-is-not-loaded-and-refd-proj-loading-is-enabled-and-proj-ref-redirects-are-enabled-and-a-decl-map-is-present.js @@ -72,14 +72,13 @@ Open files: Projects: /user/username/projects/myproject/a/tsconfig.json response:{"responseRequired":false} request:{"command":"references","arguments":{"file":"/user/username/projects/myproject/a/index.ts","line":3,"offset":10},"seq":1,"type":"request"} +Finding references to /user/username/projects/myproject/a/index.ts position 40 in project /user/username/projects/myproject/a/tsconfig.json Search path: /user/username/projects/myproject/b For info: /user/username/projects/myproject/b/index.ts :: Config file name: /user/username/projects/myproject/b/tsconfig.json Creating configuration project /user/username/projects/myproject/b/tsconfig.json Plugins were requested but not running in environment that supports 'require'. Nothing will be loaded FileWatcher:: Added:: WatchInfo: /user/username/projects/myproject/b/helper.ts 500 undefined WatchType: Closed Script info Starting updateGraphWorker: Project: /user/username/projects/myproject/b/tsconfig.json -DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject 0 undefined Project: /user/username/projects/myproject/b/tsconfig.json WatchType: Failed Lookup Locations -Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject 0 undefined Project: /user/username/projects/myproject/b/tsconfig.json WatchType: Failed Lookup Locations DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject/b 0 undefined Project: /user/username/projects/myproject/b/tsconfig.json WatchType: Failed Lookup Locations Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject/b 0 undefined Project: /user/username/projects/myproject/b/tsconfig.json WatchType: Failed Lookup Locations FileWatcher:: Added:: WatchInfo: /a/lib/lib.d.ts 500 undefined Project: /user/username/projects/myproject/b/tsconfig.json WatchType: Missing file @@ -103,4 +102,5 @@ Project '/user/username/projects/myproject/b/tsconfig.json' (Configured) ----------------------------------------------- Search path: /user/username/projects/myproject/b For info: /user/username/projects/myproject/b/index.ts :: Config file name: /user/username/projects/myproject/b/tsconfig.json +Finding references to /user/username/projects/myproject/b/index.ts position 13 in project /user/username/projects/myproject/b/tsconfig.json response:{"response":{"refs":[{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":11},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":30},"lineText":"import { B } from \"../b/lib\";","isWriteAccess":true,"isDefinition":true},{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":3,"offset":10},"end":{"line":3,"offset":11},"lineText":"const b: B = new B();","isWriteAccess":false,"isDefinition":false},{"file":"/user/username/projects/myproject/a/index.ts","start":{"line":3,"offset":18},"end":{"line":3,"offset":19},"lineText":"const b: B = new B();","isWriteAccess":false,"isDefinition":false},{"file":"/user/username/projects/myproject/b/index.ts","start":{"line":1,"offset":14},"end":{"line":1,"offset":15},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":3,"offset":2},"lineText":"export class B {","isWriteAccess":true,"isDefinition":false},{"file":"/user/username/projects/myproject/b/helper.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":11},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":23},"lineText":"import { B } from \".\";","isWriteAccess":true,"isDefinition":false},{"file":"/user/username/projects/myproject/b/helper.ts","start":{"line":3,"offset":10},"end":{"line":3,"offset":11},"lineText":"const b: B = new B();","isWriteAccess":false,"isDefinition":false},{"file":"/user/username/projects/myproject/b/helper.ts","start":{"line":3,"offset":18},"end":{"line":3,"offset":19},"lineText":"const b: B = new B();","isWriteAccess":false,"isDefinition":false}],"symbolName":"B","symbolStartOffset":10,"symbolDisplayString":"(alias) class B\nimport B"},"responseRequired":true} \ No newline at end of file diff --git a/tests/baselines/reference/tsserver/projectReferences/finding-local-reference-doesnt-load-ancestor/sibling-projects.js b/tests/baselines/reference/tsserver/projectReferences/finding-local-reference-doesnt-load-ancestor/sibling-projects.js index 6c4e2142061c3..1e30c27ec76f2 100644 --- a/tests/baselines/reference/tsserver/projectReferences/finding-local-reference-doesnt-load-ancestor/sibling-projects.js +++ b/tests/baselines/reference/tsserver/projectReferences/finding-local-reference-doesnt-load-ancestor/sibling-projects.js @@ -58,8 +58,10 @@ Open files: Projects: /user/username/projects/solution/compiler/tsconfig.json response:{"responseRequired":false} request:{"command":"references","arguments":{"file":"/user/username/projects/solution/compiler/program.ts","line":4,"offset":48},"seq":1,"type":"request"} +Finding references to /user/username/projects/solution/compiler/program.ts position 133 in project /user/username/projects/solution/compiler/tsconfig.json response:{"response":{"refs":[{"file":"/user/username/projects/solution/compiler/program.ts","start":{"line":4,"offset":48},"end":{"line":4,"offset":61},"lineText":" getSourceFiles: () => [getSourceFile()]","isWriteAccess":false,"isDefinition":false},{"file":"/user/username/projects/solution/compiler/program.ts","start":{"line":6,"offset":30},"end":{"line":6,"offset":43},"contextStart":{"line":6,"offset":21},"contextEnd":{"line":6,"offset":69},"lineText":" function getSourceFile() { return \"something\"; }","isWriteAccess":true,"isDefinition":true}],"symbolName":"getSourceFile","symbolStartOffset":48,"symbolDisplayString":"function getSourceFile(): string"},"responseRequired":true} request:{"command":"references","arguments":{"file":"/user/username/projects/solution/compiler/program.ts","line":4,"offset":25},"seq":2,"type":"request"} +Finding references to /user/username/projects/solution/compiler/program.ts position 110 in project /user/username/projects/solution/compiler/tsconfig.json Loading configured project /user/username/projects/solution/tsconfig.json Config: /user/username/projects/solution/tsconfig.json : { "rootNames": [], @@ -127,6 +129,7 @@ Project '/user/username/projects/solution/services/tsconfig.json' (Configured) ----------------------------------------------- FileWatcher:: Added:: WatchInfo: /user/username/projects/solution/compiler/types.d.ts 2000 undefined Project: /user/username/projects/solution/compiler/tsconfig.json WatchType: Missing generated file +Finding references to /user/username/projects/solution/compiler/types.ts position 103 in project /user/username/projects/solution/services/tsconfig.json Search path: /user/username/projects/solution/compiler For info: /user/username/projects/solution/compiler/types.ts :: Config file name: /user/username/projects/solution/compiler/tsconfig.json response:{"response":{"refs":[{"file":"/user/username/projects/solution/compiler/types.ts","start":{"line":4,"offset":25},"end":{"line":4,"offset":39},"contextStart":{"line":4,"offset":25},"contextEnd":{"line":4,"offset":52},"lineText":" getSourceFiles(): string[];","isWriteAccess":false,"isDefinition":false},{"file":"/user/username/projects/solution/compiler/program.ts","start":{"line":4,"offset":25},"end":{"line":4,"offset":39},"contextStart":{"line":4,"offset":25},"contextEnd":{"line":4,"offset":64},"lineText":" getSourceFiles: () => [getSourceFile()]","isWriteAccess":true,"isDefinition":true},{"file":"/user/username/projects/solution/services/services.ts","start":{"line":3,"offset":44},"end":{"line":3,"offset":58},"lineText":" const result = program.getSourceFiles();","isWriteAccess":false,"isDefinition":false}],"symbolName":"getSourceFiles","symbolStartOffset":25,"symbolDisplayString":"(method) ts.Program.getSourceFiles(): string[]"},"responseRequired":true} \ No newline at end of file diff --git a/tests/baselines/reference/tsserver/projectReferences/project-is-directly-referenced-by-solution.js b/tests/baselines/reference/tsserver/projectReferences/project-is-directly-referenced-by-solution.js index ecc9eff43094d..c4e3dc48914b3 100644 --- a/tests/baselines/reference/tsserver/projectReferences/project-is-directly-referenced-by-solution.js +++ b/tests/baselines/reference/tsserver/projectReferences/project-is-directly-referenced-by-solution.js @@ -468,6 +468,7 @@ Open files: FileName: /dummy/dummy.ts ProjectRootPath: undefined Projects: /dev/null/inferredProject1* request:{"command":"references","arguments":{"file":"/user/username/projects/myproject/src/main.ts","line":2,"offset":10},"seq":2,"type":"request"} +Finding references to /user/username/projects/myproject/src/main.ts position 50 in project /user/username/projects/myproject/tsconfig-src.json FileWatcher:: Added:: WatchInfo: /user/username/projects/myproject/target/src/helpers/functions.d.ts 500 undefined WatchType: Closed Script info FileWatcher:: Added:: WatchInfo: /user/username/projects/myproject/target/src/helpers/functions.d.ts.map 500 undefined WatchType: Closed Script info response:{"response":{"refs":[{"file":"/user/username/projects/myproject/src/main.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":13},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":41},"lineText":"import { foo } from 'helpers/functions';","isWriteAccess":true,"isDefinition":false},{"file":"/user/username/projects/myproject/src/main.ts","start":{"line":2,"offset":10},"end":{"line":2,"offset":13},"contextStart":{"line":2,"offset":1},"contextEnd":{"line":2,"offset":16},"lineText":"export { foo };","isWriteAccess":true,"isDefinition":true},{"file":"/user/username/projects/myproject/src/helpers/functions.ts","start":{"line":1,"offset":14},"end":{"line":1,"offset":17},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":22},"lineText":"export const foo = 1;","isWriteAccess":true,"isDefinition":false}],"symbolName":"foo","symbolStartOffset":10,"symbolDisplayString":"(alias) const foo: 1\nexport foo"},"responseRequired":true} @@ -609,6 +610,7 @@ Open files: FileName: /user/username/projects/myproject/indirect3/main.ts ProjectRootPath: undefined Projects: /user/username/projects/myproject/indirect3/tsconfig.json request:{"command":"references","arguments":{"file":"/user/username/projects/myproject/indirect3/main.ts","line":1,"offset":10},"seq":3,"type":"request"} +Finding references to /user/username/projects/myproject/indirect3/main.ts position 9 in project /user/username/projects/myproject/indirect3/tsconfig.json FileWatcher:: Added:: WatchInfo: /user/username/projects/myproject/target/src/main.d.ts.map 500 undefined WatchType: Closed Script info FileWatcher:: Added:: WatchInfo: /user/username/projects/myproject/src/main.ts 500 undefined WatchType: Closed Script info Search path: /user/username/projects/myproject/src @@ -686,4 +688,5 @@ Search path: /user/username/projects/myproject/src/helpers For info: /user/username/projects/myproject/src/helpers/functions.ts :: Config file name: /user/username/projects/myproject/tsconfig.json Search path: /user/username/projects/myproject/src/helpers For info: /user/username/projects/myproject/src/helpers/functions.ts :: Config file name: /user/username/projects/myproject/tsconfig.json +Finding references to /user/username/projects/myproject/src/main.ts position 9 in project /user/username/projects/myproject/tsconfig-src.json response:{"response":{"refs":[{"file":"/user/username/projects/myproject/indirect3/main.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":13},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":28},"lineText":"import { foo } from 'main';","isWriteAccess":true,"isDefinition":true},{"file":"/user/username/projects/myproject/indirect3/main.ts","start":{"line":2,"offset":1},"end":{"line":2,"offset":4},"lineText":"foo;","isWriteAccess":false,"isDefinition":false},{"file":"/user/username/projects/myproject/src/main.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":13},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":41},"lineText":"import { foo } from 'helpers/functions';","isWriteAccess":true,"isDefinition":true},{"file":"/user/username/projects/myproject/src/main.ts","start":{"line":2,"offset":10},"end":{"line":2,"offset":13},"contextStart":{"line":2,"offset":1},"contextEnd":{"line":2,"offset":16},"lineText":"export { foo };","isWriteAccess":true,"isDefinition":false},{"file":"/user/username/projects/myproject/src/helpers/functions.ts","start":{"line":1,"offset":14},"end":{"line":1,"offset":17},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":22},"lineText":"export const foo = 1;","isWriteAccess":true,"isDefinition":false}],"symbolName":"foo","symbolStartOffset":10,"symbolDisplayString":"(alias) const foo: 1\nimport foo"},"responseRequired":true} \ No newline at end of file diff --git a/tests/baselines/reference/tsserver/projectReferences/project-is-indirectly-referenced-by-solution.js b/tests/baselines/reference/tsserver/projectReferences/project-is-indirectly-referenced-by-solution.js index 782a1e2f164b0..adae146583b71 100644 --- a/tests/baselines/reference/tsserver/projectReferences/project-is-indirectly-referenced-by-solution.js +++ b/tests/baselines/reference/tsserver/projectReferences/project-is-indirectly-referenced-by-solution.js @@ -588,6 +588,7 @@ Open files: FileName: /dummy/dummy.ts ProjectRootPath: undefined Projects: /dev/null/inferredProject1* request:{"command":"references","arguments":{"file":"/user/username/projects/myproject/src/main.ts","line":2,"offset":10},"seq":2,"type":"request"} +Finding references to /user/username/projects/myproject/src/main.ts position 50 in project /user/username/projects/myproject/tsconfig-src.json Creating configuration project /user/username/projects/myproject/tsconfig-indirect1.json event: {"seq":0,"type":"event","event":"projectLoadingStart","body":{"projectName":"/user/username/projects/myproject/tsconfig-indirect1.json","reason":"Creating project referenced by : /user/username/projects/myproject/tsconfig.json as it references project /user/username/projects/myproject/tsconfig-src.json"}} @@ -652,10 +653,12 @@ event: {"seq":0,"type":"event","event":"telemetry","body":{"telemetryEventName":"projectInfo","payload":{"projectId":"d9a040bddd6b85b85abd507a988a4b809b1515b5e61257ea3f8263da59589565","fileStats":{"js":0,"jsSize":0,"jsx":0,"jsxSize":0,"ts":3,"tsSize":134,"tsx":0,"tsxSize":0,"dts":1,"dtsSize":334,"deferred":0,"deferredSize":0},"compilerOptions":{"composite":true,"outDir":"","baseUrl":""},"typeAcquisition":{"enable":false,"include":false,"exclude":false},"extends":false,"files":true,"include":false,"exclude":false,"compileOnSave":false,"configFileName":"other","projectType":"configured","languageServiceEnabled":true,"version":"FakeVersion"}}} FileWatcher:: Added:: WatchInfo: /user/username/projects/myproject/target/src/helpers/functions.d.ts 500 undefined WatchType: Closed Script info FileWatcher:: Added:: WatchInfo: /user/username/projects/myproject/target/src/helpers/functions.d.ts.map 500 undefined WatchType: Closed Script info +Finding references to /user/username/projects/myproject/src/helpers/functions.ts position 13 in project /user/username/projects/myproject/tsconfig-indirect1.json Search path: /user/username/projects/myproject/src/helpers For info: /user/username/projects/myproject/src/helpers/functions.ts :: Config file name: /user/username/projects/myproject/tsconfig.json Search path: /user/username/projects/myproject/src For info: /user/username/projects/myproject/src/main.ts :: Config file name: /user/username/projects/myproject/tsconfig.json +Finding references to /user/username/projects/myproject/src/helpers/functions.ts position 13 in project /user/username/projects/myproject/tsconfig-indirect2.json Search path: /user/username/projects/myproject/src/helpers For info: /user/username/projects/myproject/src/helpers/functions.ts :: Config file name: /user/username/projects/myproject/tsconfig.json Search path: /user/username/projects/myproject/src @@ -861,6 +864,7 @@ Open files: FileName: /user/username/projects/myproject/indirect3/main.ts ProjectRootPath: undefined Projects: /user/username/projects/myproject/indirect3/tsconfig.json request:{"command":"references","arguments":{"file":"/user/username/projects/myproject/indirect3/main.ts","line":1,"offset":10},"seq":3,"type":"request"} +Finding references to /user/username/projects/myproject/indirect3/main.ts position 9 in project /user/username/projects/myproject/indirect3/tsconfig.json FileWatcher:: Added:: WatchInfo: /user/username/projects/myproject/target/src/main.d.ts.map 500 undefined WatchType: Closed Script info FileWatcher:: Added:: WatchInfo: /user/username/projects/myproject/src/main.ts 500 undefined WatchType: Closed Script info Search path: /user/username/projects/myproject/src @@ -1036,6 +1040,7 @@ Project '/user/username/projects/myproject/tsconfig-indirect2.json' (Configured) ----------------------------------------------- event: {"seq":0,"type":"event","event":"projectLoadingFinish","body":{"projectName":"/user/username/projects/myproject/tsconfig-indirect2.json"}} +Finding references to /user/username/projects/myproject/src/helpers/functions.ts position 13 in project /user/username/projects/myproject/tsconfig-indirect1.json Search path: /user/username/projects/myproject/src/helpers For info: /user/username/projects/myproject/src/helpers/functions.ts :: Config file name: /user/username/projects/myproject/tsconfig.json Search path: /user/username/projects/myproject/src/helpers @@ -1046,8 +1051,10 @@ Search path: /user/username/projects/myproject/src For info: /user/username/projects/myproject/src/main.ts :: Config file name: /user/username/projects/myproject/tsconfig.json Search path: /user/username/projects/myproject/src For info: /user/username/projects/myproject/src/main.ts :: Config file name: /user/username/projects/myproject/tsconfig.json +Finding references to /user/username/projects/myproject/src/helpers/functions.ts position 13 in project /user/username/projects/myproject/tsconfig-indirect2.json Search path: /user/username/projects/myproject/src/helpers For info: /user/username/projects/myproject/src/helpers/functions.ts :: Config file name: /user/username/projects/myproject/tsconfig.json Search path: /user/username/projects/myproject/src For info: /user/username/projects/myproject/src/main.ts :: Config file name: /user/username/projects/myproject/tsconfig.json +Finding references to /user/username/projects/myproject/src/main.ts position 9 in project /user/username/projects/myproject/tsconfig-src.json response:{"response":{"refs":[{"file":"/user/username/projects/myproject/indirect3/main.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":13},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":28},"lineText":"import { foo } from 'main';","isWriteAccess":true,"isDefinition":true},{"file":"/user/username/projects/myproject/indirect3/main.ts","start":{"line":2,"offset":1},"end":{"line":2,"offset":4},"lineText":"foo;","isWriteAccess":false,"isDefinition":false},{"file":"/user/username/projects/myproject/src/main.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":13},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":41},"lineText":"import { foo } from 'helpers/functions';","isWriteAccess":true,"isDefinition":false},{"file":"/user/username/projects/myproject/src/main.ts","start":{"line":2,"offset":10},"end":{"line":2,"offset":13},"contextStart":{"line":2,"offset":1},"contextEnd":{"line":2,"offset":16},"lineText":"export { foo };","isWriteAccess":true,"isDefinition":false},{"file":"/user/username/projects/myproject/src/helpers/functions.ts","start":{"line":1,"offset":14},"end":{"line":1,"offset":17},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":22},"lineText":"export const foo = 1;","isWriteAccess":true,"isDefinition":true},{"file":"/user/username/projects/myproject/indirect1/main.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":13},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":28},"lineText":"import { foo } from 'main';","isWriteAccess":true,"isDefinition":false},{"file":"/user/username/projects/myproject/indirect1/main.ts","start":{"line":2,"offset":1},"end":{"line":2,"offset":4},"lineText":"foo;","isWriteAccess":false,"isDefinition":false},{"file":"/user/username/projects/myproject/indirect2/main.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":13},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":28},"lineText":"import { foo } from 'main';","isWriteAccess":true,"isDefinition":false},{"file":"/user/username/projects/myproject/indirect2/main.ts","start":{"line":2,"offset":1},"end":{"line":2,"offset":4},"lineText":"foo;","isWriteAccess":false,"isDefinition":false}],"symbolName":"foo","symbolStartOffset":10,"symbolDisplayString":"(alias) const foo: 1\nimport foo"},"responseRequired":true} \ No newline at end of file diff --git a/tests/baselines/reference/tsserver/projectReferences/root-file-is-file-from-referenced-project-and-using-declaration-maps.js b/tests/baselines/reference/tsserver/projectReferences/root-file-is-file-from-referenced-project-and-using-declaration-maps.js index 8958312bb4c53..1545238ea7db4 100644 --- a/tests/baselines/reference/tsserver/projectReferences/root-file-is-file-from-referenced-project-and-using-declaration-maps.js +++ b/tests/baselines/reference/tsserver/projectReferences/root-file-is-file-from-referenced-project-and-using-declaration-maps.js @@ -145,7 +145,9 @@ Open files: Projects: /user/username/projects/project/src/tsconfig.json response:{"responseRequired":false} request:{"command":"references","arguments":{"file":"/user/username/projects/project/src/common/input/keyboard.ts","line":2,"offset":17},"seq":1,"type":"request"} +Finding references to /user/username/projects/project/src/common/input/keyboard.ts position 99 in project /user/username/projects/project/src/common/tsconfig.json FileWatcher:: Added:: WatchInfo: /user/username/projects/project/out/input/keyboard.d.ts.map 500 undefined WatchType: Closed Script info +Finding references to /user/username/projects/project/out/input/keyboard.d.ts position 24 in project /user/username/projects/project/src/tsconfig.json Search path: /user/username/projects/project/src/common/input For info: /user/username/projects/project/src/common/input/keyboard.ts :: Config file name: /user/username/projects/project/src/common/tsconfig.json Search path: /user/username/projects/project/src/common/input diff --git a/tests/baselines/reference/tsserver/projectReferences/root-file-is-file-from-referenced-project.js b/tests/baselines/reference/tsserver/projectReferences/root-file-is-file-from-referenced-project.js index 2e410d663d82d..a823144beeea4 100644 --- a/tests/baselines/reference/tsserver/projectReferences/root-file-is-file-from-referenced-project.js +++ b/tests/baselines/reference/tsserver/projectReferences/root-file-is-file-from-referenced-project.js @@ -143,6 +143,8 @@ Open files: Projects: /user/username/projects/project/src/tsconfig.json response:{"responseRequired":false} request:{"command":"references","arguments":{"file":"/user/username/projects/project/src/common/input/keyboard.ts","line":2,"offset":17},"seq":1,"type":"request"} +Finding references to /user/username/projects/project/src/common/input/keyboard.ts position 99 in project /user/username/projects/project/src/common/tsconfig.json +Finding references to /user/username/projects/project/src/common/input/keyboard.ts position 99 in project /user/username/projects/project/src/tsconfig.json Search path: /user/username/projects/project/src/common/input For info: /user/username/projects/project/src/common/input/keyboard.ts :: Config file name: /user/username/projects/project/src/common/tsconfig.json Search path: /user/username/projects/project/src/common/input diff --git a/tests/baselines/reference/tsserver/projectReferences/solution-with-its-own-files-and-project-found-is-not-solution-but-references-open-file-through-project-reference.js b/tests/baselines/reference/tsserver/projectReferences/solution-with-its-own-files-and-project-found-is-not-solution-but-references-open-file-through-project-reference.js index 72396b9c0ae74..76d8a82c68601 100644 --- a/tests/baselines/reference/tsserver/projectReferences/solution-with-its-own-files-and-project-found-is-not-solution-but-references-open-file-through-project-reference.js +++ b/tests/baselines/reference/tsserver/projectReferences/solution-with-its-own-files-and-project-found-is-not-solution-but-references-open-file-through-project-reference.js @@ -533,6 +533,7 @@ Open files: FileName: /dummy/dummy.ts ProjectRootPath: undefined Projects: /dev/null/inferredProject1* request:{"command":"references","arguments":{"file":"/user/username/projects/myproject/src/main.ts","line":2,"offset":10},"seq":2,"type":"request"} +Finding references to /user/username/projects/myproject/src/main.ts position 50 in project /user/username/projects/myproject/tsconfig.json Search path: /user/username/projects/myproject/src For info: /user/username/projects/myproject/src/main.ts :: Config file name: /user/username/projects/myproject/tsconfig.json Search path: /user/username/projects/myproject/src @@ -543,8 +544,10 @@ Search path: /user/username/projects/myproject/src/helpers For info: /user/username/projects/myproject/src/helpers/functions.ts :: Config file name: /user/username/projects/myproject/tsconfig.json Search path: /user/username/projects/myproject/src/helpers For info: /user/username/projects/myproject/src/helpers/functions.ts :: Config file name: /user/username/projects/myproject/tsconfig.json +Finding references to /user/username/projects/myproject/src/main.ts position 50 in project /user/username/projects/myproject/tsconfig-src.json FileWatcher:: Added:: WatchInfo: /user/username/projects/myproject/target/src/helpers/functions.d.ts 500 undefined WatchType: Closed Script info FileWatcher:: Added:: WatchInfo: /user/username/projects/myproject/target/src/helpers/functions.d.ts.map 500 undefined WatchType: Closed Script info +Finding references to /user/username/projects/myproject/src/main.ts position 9 in project /user/username/projects/myproject/tsconfig-src.json response:{"response":{"refs":[{"file":"/user/username/projects/myproject/src/main.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":13},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":41},"lineText":"import { foo } from 'helpers/functions';","isWriteAccess":true,"isDefinition":false},{"file":"/user/username/projects/myproject/src/main.ts","start":{"line":2,"offset":10},"end":{"line":2,"offset":13},"contextStart":{"line":2,"offset":1},"contextEnd":{"line":2,"offset":16},"lineText":"export { foo };","isWriteAccess":true,"isDefinition":true},{"file":"/user/username/projects/myproject/src/helpers/functions.ts","start":{"line":1,"offset":14},"end":{"line":1,"offset":17},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":22},"lineText":"export const foo = 1;","isWriteAccess":true,"isDefinition":false},{"file":"/user/username/projects/myproject/own/main.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":13},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":28},"lineText":"import { foo } from 'main';","isWriteAccess":true,"isDefinition":false},{"file":"/user/username/projects/myproject/own/main.ts","start":{"line":2,"offset":1},"end":{"line":2,"offset":4},"lineText":"foo;","isWriteAccess":false,"isDefinition":false}],"symbolName":"foo","symbolStartOffset":10,"symbolDisplayString":"(alias) const foo: 1\nexport foo"},"responseRequired":true} FileWatcher:: Added:: WatchInfo: /user/username/projects/myproject/src/main.ts 500 undefined WatchType: Closed Script info Project '/user/username/projects/myproject/tsconfig.json' (Configured) @@ -697,6 +700,7 @@ Open files: FileName: /user/username/projects/myproject/indirect3/main.ts ProjectRootPath: undefined Projects: /user/username/projects/myproject/indirect3/tsconfig.json request:{"command":"references","arguments":{"file":"/user/username/projects/myproject/indirect3/main.ts","line":1,"offset":10},"seq":3,"type":"request"} +Finding references to /user/username/projects/myproject/indirect3/main.ts position 9 in project /user/username/projects/myproject/indirect3/tsconfig.json FileWatcher:: Added:: WatchInfo: /user/username/projects/myproject/target/src/main.d.ts.map 500 undefined WatchType: Closed Script info FileWatcher:: Added:: WatchInfo: /user/username/projects/myproject/src/main.ts 500 undefined WatchType: Closed Script info Search path: /user/username/projects/myproject/src @@ -796,6 +800,8 @@ Search path: /user/username/projects/myproject/src/helpers For info: /user/username/projects/myproject/src/helpers/functions.ts :: Config file name: /user/username/projects/myproject/tsconfig.json Search path: /user/username/projects/myproject/src/helpers For info: /user/username/projects/myproject/src/helpers/functions.ts :: Config file name: /user/username/projects/myproject/tsconfig.json +Finding references to /user/username/projects/myproject/src/main.ts position 9 in project /user/username/projects/myproject/tsconfig-src.json +Finding references to /user/username/projects/myproject/src/main.ts position 9 in project /user/username/projects/myproject/tsconfig.json Search path: /user/username/projects/myproject/src For info: /user/username/projects/myproject/src/main.ts :: Config file name: /user/username/projects/myproject/tsconfig.json Search path: /user/username/projects/myproject/src/helpers diff --git a/tests/baselines/reference/tsserver/projectReferences/solution-with-its-own-files-and-project-is-indirectly-referenced-by-solution.js b/tests/baselines/reference/tsserver/projectReferences/solution-with-its-own-files-and-project-is-indirectly-referenced-by-solution.js index af48493f64233..110de4c02a4e6 100644 --- a/tests/baselines/reference/tsserver/projectReferences/solution-with-its-own-files-and-project-is-indirectly-referenced-by-solution.js +++ b/tests/baselines/reference/tsserver/projectReferences/solution-with-its-own-files-and-project-is-indirectly-referenced-by-solution.js @@ -667,6 +667,7 @@ Open files: FileName: /dummy/dummy.ts ProjectRootPath: undefined Projects: /dev/null/inferredProject1* request:{"command":"references","arguments":{"file":"/user/username/projects/myproject/src/main.ts","line":2,"offset":10},"seq":2,"type":"request"} +Finding references to /user/username/projects/myproject/src/main.ts position 50 in project /user/username/projects/myproject/tsconfig.json Search path: /user/username/projects/myproject/src For info: /user/username/projects/myproject/src/main.ts :: Config file name: /user/username/projects/myproject/tsconfig.json Search path: /user/username/projects/myproject/src @@ -713,6 +714,8 @@ Search path: /user/username/projects/myproject/indirect1 For info: /user/username/projects/myproject/indirect1/main.ts :: Config file name: /user/username/projects/myproject/tsconfig.json Search path: /user/username/projects/myproject/indirect1 For info: /user/username/projects/myproject/indirect1/main.ts :: Config file name: /user/username/projects/myproject/tsconfig.json +Finding references to /user/username/projects/myproject/src/main.ts position 50 in project /user/username/projects/myproject/tsconfig-src.json +Finding references to /user/username/projects/myproject/src/main.ts position 50 in project /user/username/projects/myproject/tsconfig-indirect1.json Search path: /user/username/projects/myproject/src For info: /user/username/projects/myproject/src/main.ts :: Config file name: /user/username/projects/myproject/tsconfig.json Search path: /user/username/projects/myproject/src/helpers @@ -748,16 +751,19 @@ event: {"seq":0,"type":"event","event":"projectLoadingFinish","body":{"projectName":"/user/username/projects/myproject/tsconfig-indirect2.json"}} event: {"seq":0,"type":"event","event":"telemetry","body":{"telemetryEventName":"projectInfo","payload":{"projectId":"d9a040bddd6b85b85abd507a988a4b809b1515b5e61257ea3f8263da59589565","fileStats":{"js":0,"jsSize":0,"jsx":0,"jsxSize":0,"ts":3,"tsSize":134,"tsx":0,"tsxSize":0,"dts":1,"dtsSize":334,"deferred":0,"deferredSize":0},"compilerOptions":{"composite":true,"outDir":"","baseUrl":""},"typeAcquisition":{"enable":false,"include":false,"exclude":false},"extends":false,"files":true,"include":false,"exclude":false,"compileOnSave":false,"configFileName":"other","projectType":"configured","languageServiceEnabled":true,"version":"FakeVersion"}}} +Finding references to /user/username/projects/myproject/src/helpers/functions.ts position 13 in project /user/username/projects/myproject/tsconfig-indirect2.json Search path: /user/username/projects/myproject/src/helpers For info: /user/username/projects/myproject/src/helpers/functions.ts :: Config file name: /user/username/projects/myproject/tsconfig.json Search path: /user/username/projects/myproject/src For info: /user/username/projects/myproject/src/main.ts :: Config file name: /user/username/projects/myproject/tsconfig.json FileWatcher:: Added:: WatchInfo: /user/username/projects/myproject/target/src/helpers/functions.d.ts 500 undefined WatchType: Closed Script info FileWatcher:: Added:: WatchInfo: /user/username/projects/myproject/target/src/helpers/functions.d.ts.map 500 undefined WatchType: Closed Script info +Finding references to /user/username/projects/myproject/indirect1/main.ts position 9 in project /user/username/projects/myproject/tsconfig-indirect1.json Search path: /user/username/projects/myproject/src For info: /user/username/projects/myproject/src/main.ts :: Config file name: /user/username/projects/myproject/tsconfig.json Search path: /user/username/projects/myproject/src/helpers For info: /user/username/projects/myproject/src/helpers/functions.ts :: Config file name: /user/username/projects/myproject/tsconfig.json +Finding references to /user/username/projects/myproject/src/main.ts position 9 in project /user/username/projects/myproject/tsconfig-src.json response:{"response":{"refs":[{"file":"/user/username/projects/myproject/src/main.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":13},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":41},"lineText":"import { foo } from 'helpers/functions';","isWriteAccess":true,"isDefinition":false},{"file":"/user/username/projects/myproject/src/main.ts","start":{"line":2,"offset":10},"end":{"line":2,"offset":13},"contextStart":{"line":2,"offset":1},"contextEnd":{"line":2,"offset":16},"lineText":"export { foo };","isWriteAccess":true,"isDefinition":true},{"file":"/user/username/projects/myproject/src/helpers/functions.ts","start":{"line":1,"offset":14},"end":{"line":1,"offset":17},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":22},"lineText":"export const foo = 1;","isWriteAccess":true,"isDefinition":false},{"file":"/user/username/projects/myproject/indirect1/main.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":13},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":28},"lineText":"import { foo } from 'main';","isWriteAccess":true,"isDefinition":false},{"file":"/user/username/projects/myproject/indirect1/main.ts","start":{"line":2,"offset":1},"end":{"line":2,"offset":4},"lineText":"foo;","isWriteAccess":false,"isDefinition":false},{"file":"/user/username/projects/myproject/indirect2/main.ts","start":{"line":1,"offset":10},"end":{"line":1,"offset":13},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":28},"lineText":"import { foo } from 'main';","isWriteAccess":true,"isDefinition":false},{"file":"/user/username/projects/myproject/indirect2/main.ts","start":{"line":2,"offset":1},"end":{"line":2,"offset":4},"lineText":"foo;","isWriteAccess":false,"isDefinition":false}],"symbolName":"foo","symbolStartOffset":10,"symbolDisplayString":"(alias) const foo: 1\nexport foo"},"responseRequired":true} FileWatcher:: Added:: WatchInfo: /user/username/projects/myproject/src/main.ts 500 undefined WatchType: Closed Script info Project '/user/username/projects/myproject/tsconfig.json' (Configured) @@ -975,6 +981,7 @@ Open files: FileName: /user/username/projects/myproject/indirect3/main.ts ProjectRootPath: undefined Projects: /user/username/projects/myproject/indirect3/tsconfig.json request:{"command":"references","arguments":{"file":"/user/username/projects/myproject/indirect3/main.ts","line":1,"offset":10},"seq":3,"type":"request"} +Finding references to /user/username/projects/myproject/indirect3/main.ts position 9 in project /user/username/projects/myproject/indirect3/tsconfig.json FileWatcher:: Added:: WatchInfo: /user/username/projects/myproject/target/src/main.d.ts.map 500 undefined WatchType: Closed Script info FileWatcher:: Added:: WatchInfo: /user/username/projects/myproject/src/main.ts 500 undefined WatchType: Closed Script info Search path: /user/username/projects/myproject/src @@ -1175,6 +1182,7 @@ Project '/user/username/projects/myproject/tsconfig-indirect2.json' (Configured) ----------------------------------------------- event: {"seq":0,"type":"event","event":"projectLoadingFinish","body":{"projectName":"/user/username/projects/myproject/tsconfig-indirect2.json"}} +Finding references to /user/username/projects/myproject/src/helpers/functions.ts position 13 in project /user/username/projects/myproject/tsconfig-indirect1.json Search path: /user/username/projects/myproject/src/helpers For info: /user/username/projects/myproject/src/helpers/functions.ts :: Config file name: /user/username/projects/myproject/tsconfig.json Search path: /user/username/projects/myproject/src/helpers @@ -1185,10 +1193,13 @@ Search path: /user/username/projects/myproject/src For info: /user/username/projects/myproject/src/main.ts :: Config file name: /user/username/projects/myproject/tsconfig.json Search path: /user/username/projects/myproject/src For info: /user/username/projects/myproject/src/main.ts :: Config file name: /user/username/projects/myproject/tsconfig.json +Finding references to /user/username/projects/myproject/src/helpers/functions.ts position 13 in project /user/username/projects/myproject/tsconfig-indirect2.json Search path: /user/username/projects/myproject/src/helpers For info: /user/username/projects/myproject/src/helpers/functions.ts :: Config file name: /user/username/projects/myproject/tsconfig.json Search path: /user/username/projects/myproject/src For info: /user/username/projects/myproject/src/main.ts :: Config file name: /user/username/projects/myproject/tsconfig.json +Finding references to /user/username/projects/myproject/src/main.ts position 9 in project /user/username/projects/myproject/tsconfig-src.json +Finding references to /user/username/projects/myproject/src/main.ts position 9 in project /user/username/projects/myproject/tsconfig.json Search path: /user/username/projects/myproject/src For info: /user/username/projects/myproject/src/main.ts :: Config file name: /user/username/projects/myproject/tsconfig.json Search path: /user/username/projects/myproject/src/helpers diff --git a/tests/baselines/reference/tsserver/projectReferences/special-handling-of-localness-when-using-arrow-function-as-object-literal-property-types.js b/tests/baselines/reference/tsserver/projectReferences/special-handling-of-localness-when-using-arrow-function-as-object-literal-property-types.js index 05dbc65c8940c..72b5274aa9794 100644 --- a/tests/baselines/reference/tsserver/projectReferences/special-handling-of-localness-when-using-arrow-function-as-object-literal-property-types.js +++ b/tests/baselines/reference/tsserver/projectReferences/special-handling-of-localness-when-using-arrow-function-as-object-literal-property-types.js @@ -82,6 +82,7 @@ Open files: Projects: /user/username/projects/solution/api/tsconfig.json response:{"responseRequired":false} request:{"command":"references","arguments":{"file":"/user/username/projects/solution/api/src/server.ts","line":2,"offset":12},"seq":1,"type":"request"} +Finding references to /user/username/projects/solution/api/src/server.ts position 56 in project /user/username/projects/solution/api/tsconfig.json Search path: /user/username/projects/solution/shared/src For info: /user/username/projects/solution/shared/src/index.ts :: Config file name: /user/username/projects/solution/shared/tsconfig.json Creating configuration project /user/username/projects/solution/shared/tsconfig.json @@ -175,6 +176,8 @@ Project '/user/username/projects/solution/app/tsconfig.json' (Configured) Matched by include pattern 'src' in 'tsconfig.json' ----------------------------------------------- +Finding references to /user/username/projects/solution/shared/src/index.ts position 21 in project /user/username/projects/solution/app/tsconfig.json Search path: /user/username/projects/solution/shared/src For info: /user/username/projects/solution/shared/src/index.ts :: Config file name: /user/username/projects/solution/shared/tsconfig.json +Finding references to /user/username/projects/solution/shared/src/index.ts position 21 in project /user/username/projects/solution/shared/tsconfig.json response:{"response":{"refs":[{"file":"/user/username/projects/solution/shared/src/index.ts","start":{"line":1,"offset":22},"end":{"line":1,"offset":25},"contextStart":{"line":1,"offset":22},"contextEnd":{"line":1,"offset":36},"lineText":"export const foo = { bar: () => { } };","isWriteAccess":true,"isDefinition":true},{"file":"/user/username/projects/solution/api/src/server.ts","start":{"line":2,"offset":12},"end":{"line":2,"offset":15},"lineText":"shared.foo.bar();","isWriteAccess":false,"isDefinition":false},{"file":"/user/username/projects/solution/app/src/app.ts","start":{"line":2,"offset":12},"end":{"line":2,"offset":15},"lineText":"shared.foo.bar();","isWriteAccess":false,"isDefinition":false}],"symbolName":"bar","symbolStartOffset":12,"symbolDisplayString":"(property) bar: () => void"},"responseRequired":true} \ No newline at end of file diff --git a/tests/baselines/reference/tsserver/projectReferences/special-handling-of-localness-when-using-arrow-function-as-object-literal-property.js b/tests/baselines/reference/tsserver/projectReferences/special-handling-of-localness-when-using-arrow-function-as-object-literal-property.js index 002fd13a1027c..aa805ac65825d 100644 --- a/tests/baselines/reference/tsserver/projectReferences/special-handling-of-localness-when-using-arrow-function-as-object-literal-property.js +++ b/tests/baselines/reference/tsserver/projectReferences/special-handling-of-localness-when-using-arrow-function-as-object-literal-property.js @@ -82,6 +82,7 @@ Open files: Projects: /user/username/projects/solution/api/tsconfig.json response:{"responseRequired":false} request:{"command":"references","arguments":{"file":"/user/username/projects/solution/api/src/server.ts","line":2,"offset":12},"seq":1,"type":"request"} +Finding references to /user/username/projects/solution/api/src/server.ts position 56 in project /user/username/projects/solution/api/tsconfig.json Search path: /user/username/projects/solution/shared/src For info: /user/username/projects/solution/shared/src/index.ts :: Config file name: /user/username/projects/solution/shared/tsconfig.json Creating configuration project /user/username/projects/solution/shared/tsconfig.json @@ -106,4 +107,5 @@ Project '/user/username/projects/solution/shared/tsconfig.json' (Configured) ----------------------------------------------- Search path: /user/username/projects/solution/shared/src For info: /user/username/projects/solution/shared/src/index.ts :: Config file name: /user/username/projects/solution/shared/tsconfig.json +Finding references to /user/username/projects/solution/shared/src/index.ts position 16 in project /user/username/projects/solution/shared/tsconfig.json response:{"response":{"refs":[{"file":"/user/username/projects/solution/shared/src/index.ts","start":{"line":1,"offset":17},"end":{"line":1,"offset":20},"contextStart":{"line":1,"offset":17},"contextEnd":{"line":1,"offset":31},"lineText":"const local = { bar: () => { } };","isWriteAccess":true,"isDefinition":true},{"file":"/user/username/projects/solution/api/src/server.ts","start":{"line":2,"offset":12},"end":{"line":2,"offset":15},"lineText":"shared.foo.bar();","isWriteAccess":false,"isDefinition":false}],"symbolName":"bar","symbolStartOffset":12,"symbolDisplayString":"(property) bar: () => void"},"responseRequired":true} \ No newline at end of file diff --git a/tests/baselines/reference/tsserver/projectReferences/special-handling-of-localness-when-using-arrow-function-assignment.js b/tests/baselines/reference/tsserver/projectReferences/special-handling-of-localness-when-using-arrow-function-assignment.js index 94d141350d905..7347881108e29 100644 --- a/tests/baselines/reference/tsserver/projectReferences/special-handling-of-localness-when-using-arrow-function-assignment.js +++ b/tests/baselines/reference/tsserver/projectReferences/special-handling-of-localness-when-using-arrow-function-assignment.js @@ -82,6 +82,7 @@ Open files: Projects: /user/username/projects/solution/api/tsconfig.json response:{"responseRequired":false} request:{"command":"references","arguments":{"file":"/user/username/projects/solution/api/src/server.ts","line":2,"offset":8},"seq":1,"type":"request"} +Finding references to /user/username/projects/solution/api/src/server.ts position 52 in project /user/username/projects/solution/api/tsconfig.json Search path: /user/username/projects/solution/shared/src For info: /user/username/projects/solution/shared/src/index.ts :: Config file name: /user/username/projects/solution/shared/tsconfig.json Creating configuration project /user/username/projects/solution/shared/tsconfig.json @@ -175,6 +176,8 @@ Project '/user/username/projects/solution/app/tsconfig.json' (Configured) Matched by include pattern 'src' in 'tsconfig.json' ----------------------------------------------- +Finding references to /user/username/projects/solution/shared/src/index.ts position 13 in project /user/username/projects/solution/app/tsconfig.json Search path: /user/username/projects/solution/shared/src For info: /user/username/projects/solution/shared/src/index.ts :: Config file name: /user/username/projects/solution/shared/tsconfig.json +Finding references to /user/username/projects/solution/shared/src/index.ts position 13 in project /user/username/projects/solution/shared/tsconfig.json response:{"response":{"refs":[{"file":"/user/username/projects/solution/shared/src/index.ts","start":{"line":1,"offset":14},"end":{"line":1,"offset":17},"contextStart":{"line":1,"offset":1},"contextEnd":{"line":1,"offset":30},"lineText":"export const dog = () => { };","isWriteAccess":true,"isDefinition":true},{"file":"/user/username/projects/solution/api/src/server.ts","start":{"line":2,"offset":8},"end":{"line":2,"offset":11},"lineText":"shared.dog();","isWriteAccess":false,"isDefinition":false},{"file":"/user/username/projects/solution/app/src/app.ts","start":{"line":2,"offset":8},"end":{"line":2,"offset":11},"lineText":"shared.dog();","isWriteAccess":false,"isDefinition":false}],"symbolName":"dog","symbolStartOffset":8,"symbolDisplayString":"const dog: () => void"},"responseRequired":true} \ No newline at end of file diff --git a/tests/baselines/reference/tsserver/projectReferences/special-handling-of-localness-when-using-method-of-class-expression.js b/tests/baselines/reference/tsserver/projectReferences/special-handling-of-localness-when-using-method-of-class-expression.js index 90ba1f57746a1..669405b2a4b13 100644 --- a/tests/baselines/reference/tsserver/projectReferences/special-handling-of-localness-when-using-method-of-class-expression.js +++ b/tests/baselines/reference/tsserver/projectReferences/special-handling-of-localness-when-using-method-of-class-expression.js @@ -82,6 +82,7 @@ Open files: Projects: /user/username/projects/solution/api/tsconfig.json response:{"responseRequired":false} request:{"command":"references","arguments":{"file":"/user/username/projects/solution/api/src/server.ts","line":3,"offset":10},"seq":1,"type":"request"} +Finding references to /user/username/projects/solution/api/src/server.ts position 89 in project /user/username/projects/solution/api/tsconfig.json Search path: /user/username/projects/solution/shared/src For info: /user/username/projects/solution/shared/src/index.ts :: Config file name: /user/username/projects/solution/shared/tsconfig.json Creating configuration project /user/username/projects/solution/shared/tsconfig.json @@ -175,6 +176,8 @@ Project '/user/username/projects/solution/app/tsconfig.json' (Configured) Matched by include pattern 'src' in 'tsconfig.json' ----------------------------------------------- +Finding references to /user/username/projects/solution/shared/src/index.ts position 27 in project /user/username/projects/solution/app/tsconfig.json Search path: /user/username/projects/solution/shared/src For info: /user/username/projects/solution/shared/src/index.ts :: Config file name: /user/username/projects/solution/shared/tsconfig.json +Finding references to /user/username/projects/solution/shared/src/index.ts position 27 in project /user/username/projects/solution/shared/tsconfig.json response:{"response":{"refs":[{"file":"/user/username/projects/solution/shared/src/index.ts","start":{"line":1,"offset":28},"end":{"line":1,"offset":31},"contextStart":{"line":1,"offset":28},"contextEnd":{"line":1,"offset":36},"lineText":"export const foo = class { fly() {} };","isWriteAccess":true,"isDefinition":true},{"file":"/user/username/projects/solution/api/src/server.ts","start":{"line":3,"offset":10},"end":{"line":3,"offset":13},"lineText":"instance.fly();","isWriteAccess":false,"isDefinition":false},{"file":"/user/username/projects/solution/app/src/app.ts","start":{"line":3,"offset":10},"end":{"line":3,"offset":13},"lineText":"instance.fly();","isWriteAccess":false,"isDefinition":false}],"symbolName":"fly","symbolStartOffset":10,"symbolDisplayString":"(method) foo.fly(): void"},"responseRequired":true} \ No newline at end of file diff --git a/tests/baselines/reference/tsserver/projectReferences/special-handling-of-localness-when-using-object-literal-property.js b/tests/baselines/reference/tsserver/projectReferences/special-handling-of-localness-when-using-object-literal-property.js index 08dfbe0bb76f3..0624f537c6ccb 100644 --- a/tests/baselines/reference/tsserver/projectReferences/special-handling-of-localness-when-using-object-literal-property.js +++ b/tests/baselines/reference/tsserver/projectReferences/special-handling-of-localness-when-using-object-literal-property.js @@ -82,6 +82,7 @@ Open files: Projects: /user/username/projects/solution/api/tsconfig.json response:{"responseRequired":false} request:{"command":"references","arguments":{"file":"/user/username/projects/solution/api/src/server.ts","line":2,"offset":12},"seq":1,"type":"request"} +Finding references to /user/username/projects/solution/api/src/server.ts position 56 in project /user/username/projects/solution/api/tsconfig.json Search path: /user/username/projects/solution/shared/src For info: /user/username/projects/solution/shared/src/index.ts :: Config file name: /user/username/projects/solution/shared/tsconfig.json Creating configuration project /user/username/projects/solution/shared/tsconfig.json @@ -175,6 +176,8 @@ Project '/user/username/projects/solution/app/tsconfig.json' (Configured) Matched by include pattern 'src' in 'tsconfig.json' ----------------------------------------------- +Finding references to /user/username/projects/solution/shared/src/index.ts position 22 in project /user/username/projects/solution/app/tsconfig.json Search path: /user/username/projects/solution/shared/src For info: /user/username/projects/solution/shared/src/index.ts :: Config file name: /user/username/projects/solution/shared/tsconfig.json +Finding references to /user/username/projects/solution/shared/src/index.ts position 22 in project /user/username/projects/solution/shared/tsconfig.json response:{"response":{"refs":[{"file":"/user/username/projects/solution/shared/src/index.ts","start":{"line":1,"offset":23},"end":{"line":1,"offset":26},"contextStart":{"line":1,"offset":23},"contextEnd":{"line":1,"offset":33},"lineText":"export const foo = { baz: \"BAZ\" };","isWriteAccess":true,"isDefinition":true},{"file":"/user/username/projects/solution/api/src/server.ts","start":{"line":2,"offset":12},"end":{"line":2,"offset":15},"lineText":"shared.foo.baz;","isWriteAccess":false,"isDefinition":false},{"file":"/user/username/projects/solution/app/src/app.ts","start":{"line":2,"offset":12},"end":{"line":2,"offset":15},"lineText":"shared.foo.baz;","isWriteAccess":false,"isDefinition":false}],"symbolName":"baz","symbolStartOffset":12,"symbolDisplayString":"(property) baz: string"},"responseRequired":true} \ No newline at end of file diff --git a/tests/baselines/reference/tsserver/projectReferences/when-files-from-two-projects-are-open-and-one-project-references.js b/tests/baselines/reference/tsserver/projectReferences/when-files-from-two-projects-are-open-and-one-project-references.js index f4b045872292a..6697be444c356 100644 --- a/tests/baselines/reference/tsserver/projectReferences/when-files-from-two-projects-are-open-and-one-project-references.js +++ b/tests/baselines/reference/tsserver/projectReferences/when-files-from-two-projects-are-open-and-one-project-references.js @@ -297,6 +297,7 @@ Open files: Projects: /user/username/projects/myproject/core/tsconfig.json response:{"responseRequired":false} request:{"command":"references","arguments":{"file":"/user/username/projects/myproject/core/src/file1.ts","line":1,"offset":14},"seq":1,"type":"request"} +Finding references to /user/username/projects/myproject/core/src/file1.ts position 13 in project /user/username/projects/myproject/core/tsconfig.json Creating configuration project /user/username/projects/myproject/indirect/tsconfig.json Plugins were requested but not running in environment that supports 'require'. Nothing will be loaded FileWatcher:: Added:: WatchInfo: /user/username/projects/myproject/indirect/src/file1.ts 500 undefined WatchType: Closed Script info diff --git a/tests/baselines/reference/tsserver/projectReferences/with-disableSolutionSearching-solution-and-siblings-are-not-loaded.js b/tests/baselines/reference/tsserver/projectReferences/with-disableSolutionSearching-solution-and-siblings-are-not-loaded.js index 8f78c6271a438..1caa7cf0e0256 100644 --- a/tests/baselines/reference/tsserver/projectReferences/with-disableSolutionSearching-solution-and-siblings-are-not-loaded.js +++ b/tests/baselines/reference/tsserver/projectReferences/with-disableSolutionSearching-solution-and-siblings-are-not-loaded.js @@ -49,4 +49,5 @@ Open files: Projects: /user/username/projects/solution/compiler/tsconfig.json response:{"responseRequired":false} request:{"command":"references","arguments":{"file":"/user/username/projects/solution/compiler/program.ts","line":4,"offset":25},"seq":1,"type":"request"} +Finding references to /user/username/projects/solution/compiler/program.ts position 110 in project /user/username/projects/solution/compiler/tsconfig.json response:{"response":{"refs":[{"file":"/user/username/projects/solution/compiler/types.ts","start":{"line":4,"offset":25},"end":{"line":4,"offset":39},"contextStart":{"line":4,"offset":25},"contextEnd":{"line":4,"offset":52},"lineText":" getSourceFiles(): string[];","isWriteAccess":false,"isDefinition":false},{"file":"/user/username/projects/solution/compiler/program.ts","start":{"line":4,"offset":25},"end":{"line":4,"offset":39},"contextStart":{"line":4,"offset":25},"contextEnd":{"line":4,"offset":64},"lineText":" getSourceFiles: () => [getSourceFile()]","isWriteAccess":true,"isDefinition":true}],"symbolName":"getSourceFiles","symbolStartOffset":25,"symbolDisplayString":"(method) ts.Program.getSourceFiles(): string[]"},"responseRequired":true} \ No newline at end of file diff --git a/tests/baselines/reference/tsxGenericArrowFunctionParsing.errors.txt b/tests/baselines/reference/tsxGenericArrowFunctionParsing.errors.txt index 9fa3091643322..a85eb6b550955 100644 --- a/tests/baselines/reference/tsxGenericArrowFunctionParsing.errors.txt +++ b/tests/baselines/reference/tsxGenericArrowFunctionParsing.errors.txt @@ -36,4 +36,7 @@ tests/cases/conformance/jsx/file.tsx(24,25): error TS1382: Unexpected token. Did !!! error TS1382: Unexpected token. Did you mean `{'>'}` or `>`? x5.isElement; + // This is a generic function + var x6 = () => {}; + x6(); \ No newline at end of file diff --git a/tests/baselines/reference/tsxGenericArrowFunctionParsing.js b/tests/baselines/reference/tsxGenericArrowFunctionParsing.js index 7dbb2477db577..fd4fbd78703ea 100644 --- a/tests/baselines/reference/tsxGenericArrowFunctionParsing.js +++ b/tests/baselines/reference/tsxGenericArrowFunctionParsing.js @@ -25,6 +25,9 @@ x4.isElement; var x5 = () => {}; x5.isElement; +// This is a generic function +var x6 = () => {}; +x6(); //// [file.jsx] @@ -44,3 +47,6 @@ x4.isElement; // This is an element var x5 = () => ; x5.isElement; +// This is a generic function +var x6 = function () { }; +x6(); diff --git a/tests/baselines/reference/tsxGenericArrowFunctionParsing.symbols b/tests/baselines/reference/tsxGenericArrowFunctionParsing.symbols index 8b773c3b5ab79..642af3c771835 100644 --- a/tests/baselines/reference/tsxGenericArrowFunctionParsing.symbols +++ b/tests/baselines/reference/tsxGenericArrowFunctionParsing.symbols @@ -64,4 +64,11 @@ x5.isElement; >x5 : Symbol(x5, Decl(file.tsx, 23, 3)) >isElement : Symbol(JSX.Element.isElement, Decl(file.tsx, 1, 20)) +// This is a generic function +var x6 = () => {}; +>x6 : Symbol(x6, Decl(file.tsx, 27, 3)) +>T : Symbol(T, Decl(file.tsx, 27, 10)) + +x6(); +>x6 : Symbol(x6, Decl(file.tsx, 27, 3)) diff --git a/tests/baselines/reference/tsxGenericArrowFunctionParsing.types b/tests/baselines/reference/tsxGenericArrowFunctionParsing.types index 5f0e67191a0bd..23ecda620db70 100644 --- a/tests/baselines/reference/tsxGenericArrowFunctionParsing.types +++ b/tests/baselines/reference/tsxGenericArrowFunctionParsing.types @@ -66,4 +66,12 @@ x5.isElement; >x5 : JSX.Element >isElement : any +// This is a generic function +var x6 = () => {}; +>x6 : () => void +>() => {} : () => void + +x6(); +>x6() : void +>x6 : () => void diff --git a/tests/baselines/reference/tsxLibraryManagedAttributes.errors.txt b/tests/baselines/reference/tsxLibraryManagedAttributes.errors.txt index 75911e6e6c5ca..6aa992e41744c 100644 --- a/tests/baselines/reference/tsxLibraryManagedAttributes.errors.txt +++ b/tests/baselines/reference/tsxLibraryManagedAttributes.errors.txt @@ -3,11 +3,11 @@ tests/cases/conformance/jsx/tsxLibraryManagedAttributes.tsx(55,12): error TS2322 tests/cases/conformance/jsx/tsxLibraryManagedAttributes.tsx(57,41): error TS2322: Type '{ bar: string; baz: string; bat: string; }' is not assignable to type 'Defaultize; bar: PropTypeChecker; baz: PropTypeChecker; }>, { foo: number; }>'. Property 'bat' does not exist on type 'Defaultize; bar: PropTypeChecker; baz: PropTypeChecker; }>, { foo: number; }>'. tests/cases/conformance/jsx/tsxLibraryManagedAttributes.tsx(59,42): error TS2322: Type 'null' is not assignable to type 'string'. -tests/cases/conformance/jsx/tsxLibraryManagedAttributes.tsx(69,26): error TS2322: Type 'string' is not assignable to type 'number | null | undefined'. +tests/cases/conformance/jsx/tsxLibraryManagedAttributes.tsx(69,26): error TS2322: Type 'string' is not assignable to type 'number'. tests/cases/conformance/jsx/tsxLibraryManagedAttributes.tsx(71,35): error TS2322: Type 'null' is not assignable to type 'ReactNode'. tests/cases/conformance/jsx/tsxLibraryManagedAttributes.tsx(80,38): error TS2322: Type '{ foo: number; bar: string; }' is not assignable to type 'Defaultize<{}, { foo: number; }>'. Property 'bar' does not exist on type 'Defaultize<{}, { foo: number; }>'. -tests/cases/conformance/jsx/tsxLibraryManagedAttributes.tsx(81,29): error TS2322: Type 'string' is not assignable to type 'number | undefined'. +tests/cases/conformance/jsx/tsxLibraryManagedAttributes.tsx(81,29): error TS2322: Type 'string' is not assignable to type 'number'. tests/cases/conformance/jsx/tsxLibraryManagedAttributes.tsx(98,12): error TS2322: Type '{ foo: string; }' is not assignable to type 'Defaultize; bar: PropTypeChecker; baz: PropTypeChecker; }>, { foo: string; }>'. Type '{ foo: string; }' is missing the following properties from type '{ bar: ReactNode | null | undefined; baz: number; }': bar, baz tests/cases/conformance/jsx/tsxLibraryManagedAttributes.tsx(100,56): error TS2322: Type '{ bar: string; baz: number; bat: string; }' is not assignable to type 'Defaultize; bar: PropTypeChecker; baz: PropTypeChecker; }>, { foo: string; }>'. @@ -18,7 +18,7 @@ tests/cases/conformance/jsx/tsxLibraryManagedAttributes.tsx(112,46): error TS232 tests/cases/conformance/jsx/tsxLibraryManagedAttributes.tsx(113,57): error TS2322: Type 'null' is not assignable to type 'ReactNode'. tests/cases/conformance/jsx/tsxLibraryManagedAttributes.tsx(122,58): error TS2322: Type '{ foo: string; bar: string; }' is not assignable to type 'Defaultize'. Property 'bar' does not exist on type 'Defaultize'. -tests/cases/conformance/jsx/tsxLibraryManagedAttributes.tsx(123,49): error TS2322: Type 'number' is not assignable to type 'string | undefined'. +tests/cases/conformance/jsx/tsxLibraryManagedAttributes.tsx(123,49): error TS2322: Type 'number' is not assignable to type 'string'. ==== tests/cases/conformance/jsx/tsxLibraryManagedAttributes.tsx (15 errors) ==== @@ -100,7 +100,7 @@ tests/cases/conformance/jsx/tsxLibraryManagedAttributes.tsx(123,49): error TS232 const g = ; const h = ; // error, wrong type ~~~ -!!! error TS2322: Type 'string' is not assignable to type 'number | null | undefined'. +!!! error TS2322: Type 'string' is not assignable to type 'number'. !!! related TS6500 tests/cases/conformance/jsx/tsxLibraryManagedAttributes.tsx:63:9: The expected type comes from property 'foo' which is declared here on type 'InferredPropTypes<{ foo: PropTypeChecker; bar: PropTypeChecker; }>' const i = ; const j = ; // error, bar is required @@ -121,7 +121,7 @@ tests/cases/conformance/jsx/tsxLibraryManagedAttributes.tsx(123,49): error TS232 !!! error TS2322: Property 'bar' does not exist on type 'Defaultize<{}, { foo: number; }>'. const m = ; // error, wrong type ~~~ -!!! error TS2322: Type 'string' is not assignable to type 'number | undefined'. +!!! error TS2322: Type 'string' is not assignable to type 'number'. !!! related TS6500 tests/cases/conformance/jsx/tsxLibraryManagedAttributes.tsx:75:9: The expected type comes from property 'foo' which is declared here on type 'Defaultize<{}, { foo: number; }>' interface FooProps { @@ -186,7 +186,7 @@ tests/cases/conformance/jsx/tsxLibraryManagedAttributes.tsx(123,49): error TS232 !!! error TS2322: Property 'bar' does not exist on type 'Defaultize'. const z = ; // error, wrong type ~~~ -!!! error TS2322: Type 'number' is not assignable to type 'string | undefined'. +!!! error TS2322: Type 'number' is not assignable to type 'string'. !!! related TS6500 tests/cases/conformance/jsx/tsxLibraryManagedAttributes.tsx:117:9: The expected type comes from property 'foo' which is declared here on type 'Defaultize' const aa = ; \ No newline at end of file diff --git a/tests/baselines/reference/tsxNotUsingApparentTypeOfSFC.errors.txt b/tests/baselines/reference/tsxNotUsingApparentTypeOfSFC.errors.txt index 81231a345627b..a967c92e555ac 100644 --- a/tests/baselines/reference/tsxNotUsingApparentTypeOfSFC.errors.txt +++ b/tests/baselines/reference/tsxNotUsingApparentTypeOfSFC.errors.txt @@ -5,9 +5,17 @@ tests/cases/compiler/tsxNotUsingApparentTypeOfSFC.tsx(15,14): error TS2769: No o Type '{}' is not assignable to type 'Readonly

'. Overload 2 of 2, '(props: P, context?: any): MyComponent', gave the following error. Type '{}' is not assignable to type 'Readonly

'. +tests/cases/compiler/tsxNotUsingApparentTypeOfSFC.tsx(17,14): error TS2322: Type 'P' is not assignable to type 'IntrinsicAttributes & P'. + Type 'P' is not assignable to type 'IntrinsicAttributes'. +tests/cases/compiler/tsxNotUsingApparentTypeOfSFC.tsx(18,14): error TS2769: No overload matches this call. + Overload 1 of 2, '(props: Readonly

): MyComponent', gave the following error. + Type 'P' is not assignable to type 'IntrinsicAttributes & IntrinsicClassAttributes & Readonly<{ children?: ReactNode; }> & Readonly

'. + Type 'P' is not assignable to type 'IntrinsicAttributes'. + Overload 2 of 2, '(props: P, context?: any): MyComponent', gave the following error. + Type 'P' is not assignable to type 'IntrinsicAttributes & IntrinsicClassAttributes & Readonly<{ children?: ReactNode; }> & Readonly

'. -==== tests/cases/compiler/tsxNotUsingApparentTypeOfSFC.tsx (2 errors) ==== +==== tests/cases/compiler/tsxNotUsingApparentTypeOfSFC.tsx (4 errors) ==== /// import React from 'react'; @@ -34,5 +42,17 @@ tests/cases/compiler/tsxNotUsingApparentTypeOfSFC.tsx(15,14): error TS2769: No o !!! error TS2769: Type '{}' is not assignable to type 'Readonly

'. let z = // should work + ~~~~~ +!!! error TS2322: Type 'P' is not assignable to type 'IntrinsicAttributes & P'. +!!! error TS2322: Type 'P' is not assignable to type 'IntrinsicAttributes'. +!!! related TS2208 tests/cases/compiler/tsxNotUsingApparentTypeOfSFC.tsx:5:15: This type parameter probably needs an `extends object` constraint. let q = // should work + ~~~~~~~~~~~ +!!! error TS2769: No overload matches this call. +!!! error TS2769: Overload 1 of 2, '(props: Readonly

): MyComponent', gave the following error. +!!! error TS2769: Type 'P' is not assignable to type 'IntrinsicAttributes & IntrinsicClassAttributes & Readonly<{ children?: ReactNode; }> & Readonly

'. +!!! error TS2769: Type 'P' is not assignable to type 'IntrinsicAttributes'. +!!! error TS2769: Overload 2 of 2, '(props: P, context?: any): MyComponent', gave the following error. +!!! error TS2769: Type 'P' is not assignable to type 'IntrinsicAttributes & IntrinsicClassAttributes & Readonly<{ children?: ReactNode; }> & Readonly

'. +!!! related TS2208 tests/cases/compiler/tsxNotUsingApparentTypeOfSFC.tsx:5:15: This type parameter probably needs an `extends object` constraint. } \ No newline at end of file diff --git a/tests/baselines/reference/tsxReactEmit8(jsx=react-jsx).js b/tests/baselines/reference/tsxReactEmit8(jsx=react-jsx).js new file mode 100644 index 0000000000000..7c5e74e00ee51 --- /dev/null +++ b/tests/baselines/reference/tsxReactEmit8(jsx=react-jsx).js @@ -0,0 +1,12 @@ +//// [tsxReactEmit8.tsx] +/// + +

1
; +
2
; + + +//// [tsxReactEmit8.js] +import { jsx as _jsx } from "react/jsx-runtime"; +/// +_jsx("div", { children: "1" }); +_jsx("div", { children: "2" }, "key-attr"); diff --git a/tests/baselines/reference/tsxReactEmit8(jsx=react-jsx).symbols b/tests/baselines/reference/tsxReactEmit8(jsx=react-jsx).symbols new file mode 100644 index 0000000000000..c5e8950b7fc9a --- /dev/null +++ b/tests/baselines/reference/tsxReactEmit8(jsx=react-jsx).symbols @@ -0,0 +1,12 @@ +=== tests/cases/conformance/jsx/tsxReactEmit8.tsx === +/// + +
1
; +>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2546, 114)) +>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2546, 114)) + +
2
; +>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2546, 114)) +>key : Symbol(key, Decl(tsxReactEmit8.tsx, 3, 4)) +>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2546, 114)) + diff --git a/tests/baselines/reference/tsxReactEmit8(jsx=react-jsx).types b/tests/baselines/reference/tsxReactEmit8(jsx=react-jsx).types new file mode 100644 index 0000000000000..46799d30bdc5e --- /dev/null +++ b/tests/baselines/reference/tsxReactEmit8(jsx=react-jsx).types @@ -0,0 +1,15 @@ +=== tests/cases/conformance/jsx/tsxReactEmit8.tsx === +/// + +
1
; +>
1
: JSX.Element +>div : any +>div : any + +
2
; +>
2
: JSX.Element +>div : any +>key : string +>"key-attr" : "key-attr" +>div : any + diff --git a/tests/baselines/reference/tsxReactEmit8(jsx=react-jsxdev).js b/tests/baselines/reference/tsxReactEmit8(jsx=react-jsxdev).js new file mode 100644 index 0000000000000..12ac49d0452b6 --- /dev/null +++ b/tests/baselines/reference/tsxReactEmit8(jsx=react-jsxdev).js @@ -0,0 +1,13 @@ +//// [tsxReactEmit8.tsx] +/// + +
1
; +
2
; + + +//// [tsxReactEmit8.js] +import { jsxDEV as _jsxDEV } from "react/jsx-dev-runtime"; +const _jsxFileName = "tests/cases/conformance/jsx/tsxReactEmit8.tsx"; +/// +_jsxDEV("div", { children: "1" }, void 0, false, { fileName: _jsxFileName, lineNumber: 1, columnNumber: 1 }, this); +_jsxDEV("div", { children: "2" }, "key-attr", false, { fileName: _jsxFileName, lineNumber: 3, columnNumber: 14 }, this); diff --git a/tests/baselines/reference/tsxReactEmit8(jsx=react-jsxdev).symbols b/tests/baselines/reference/tsxReactEmit8(jsx=react-jsxdev).symbols new file mode 100644 index 0000000000000..c5e8950b7fc9a --- /dev/null +++ b/tests/baselines/reference/tsxReactEmit8(jsx=react-jsxdev).symbols @@ -0,0 +1,12 @@ +=== tests/cases/conformance/jsx/tsxReactEmit8.tsx === +/// + +
1
; +>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2546, 114)) +>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2546, 114)) + +
2
; +>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2546, 114)) +>key : Symbol(key, Decl(tsxReactEmit8.tsx, 3, 4)) +>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2546, 114)) + diff --git a/tests/baselines/reference/tsxReactEmit8(jsx=react-jsxdev).types b/tests/baselines/reference/tsxReactEmit8(jsx=react-jsxdev).types new file mode 100644 index 0000000000000..46799d30bdc5e --- /dev/null +++ b/tests/baselines/reference/tsxReactEmit8(jsx=react-jsxdev).types @@ -0,0 +1,15 @@ +=== tests/cases/conformance/jsx/tsxReactEmit8.tsx === +/// + +
1
; +>
1
: JSX.Element +>div : any +>div : any + +
2
; +>
2
: JSX.Element +>div : any +>key : string +>"key-attr" : "key-attr" +>div : any + diff --git a/tests/baselines/reference/tsxReactEmitSpreadAttribute(target=es2015).js b/tests/baselines/reference/tsxReactEmitSpreadAttribute(target=es2015).js index 24705934a296f..1e4fbe01c78ba 100644 --- a/tests/baselines/reference/tsxReactEmitSpreadAttribute(target=es2015).js +++ b/tests/baselines/reference/tsxReactEmitSpreadAttribute(target=es2015).js @@ -34,23 +34,23 @@ export function T7(a: any, b: any, c: any, d: any) { import { jsx as _jsx } from "react/jsx-runtime"; /// export function T1(a) { - return _jsx("div", Object.assign({ className: "T1" }, a, { children: "T1" }), void 0); + return _jsx("div", Object.assign({ className: "T1" }, a, { children: "T1" })); } export function T2(a, b) { - return _jsx("div", Object.assign({ className: "T2" }, a, b, { children: "T2" }), void 0); + return _jsx("div", Object.assign({ className: "T2" }, a, b, { children: "T2" })); } export function T3(a, b) { - return _jsx("div", Object.assign({}, a, { className: "T3" }, b, { children: "T3" }), void 0); + return _jsx("div", Object.assign({}, a, { className: "T3" }, b, { children: "T3" })); } export function T4(a, b) { - return _jsx("div", Object.assign({ className: "T4" }, Object.assign(Object.assign({}, a), b), { children: "T4" }), void 0); + return _jsx("div", Object.assign({ className: "T4" }, Object.assign(Object.assign({}, a), b), { children: "T4" })); } export function T5(a, b, c, d) { - return _jsx("div", Object.assign({ className: "T5" }, Object.assign(Object.assign(Object.assign({}, a), b), { c, d }), { children: "T5" }), void 0); + return _jsx("div", Object.assign({ className: "T5" }, Object.assign(Object.assign(Object.assign({}, a), b), { c, d }), { children: "T5" })); } export function T6(a, b, c, d) { - return _jsx("div", Object.assign({ className: "T6" }, Object.assign(Object.assign(Object.assign({}, a), b), Object.assign(Object.assign({}, c), d)), { children: "T6" }), void 0); + return _jsx("div", Object.assign({ className: "T6" }, Object.assign(Object.assign(Object.assign({}, a), b), Object.assign(Object.assign({}, c), d)), { children: "T6" })); } export function T7(a, b, c, d) { - return _jsx("div", { children: "T7" }, void 0); + return _jsx("div", { children: "T7" }); } diff --git a/tests/baselines/reference/tsxReactEmitSpreadAttribute(target=es2018).js b/tests/baselines/reference/tsxReactEmitSpreadAttribute(target=es2018).js index 5e870a365bc81..0aa58a3f27284 100644 --- a/tests/baselines/reference/tsxReactEmitSpreadAttribute(target=es2018).js +++ b/tests/baselines/reference/tsxReactEmitSpreadAttribute(target=es2018).js @@ -34,23 +34,23 @@ export function T7(a: any, b: any, c: any, d: any) { import { jsx as _jsx } from "react/jsx-runtime"; /// export function T1(a) { - return _jsx("div", { className: "T1", ...a, children: "T1" }, void 0); + return _jsx("div", { className: "T1", ...a, children: "T1" }); } export function T2(a, b) { - return _jsx("div", { className: "T2", ...a, ...b, children: "T2" }, void 0); + return _jsx("div", { className: "T2", ...a, ...b, children: "T2" }); } export function T3(a, b) { - return _jsx("div", { ...a, className: "T3", ...b, children: "T3" }, void 0); + return _jsx("div", { ...a, className: "T3", ...b, children: "T3" }); } export function T4(a, b) { - return _jsx("div", { className: "T4", ...{ ...a, ...b }, children: "T4" }, void 0); + return _jsx("div", { className: "T4", ...{ ...a, ...b }, children: "T4" }); } export function T5(a, b, c, d) { - return _jsx("div", { className: "T5", ...{ ...a, ...b, ...{ c, d } }, children: "T5" }, void 0); + return _jsx("div", { className: "T5", ...{ ...a, ...b, ...{ c, d } }, children: "T5" }); } export function T6(a, b, c, d) { - return _jsx("div", { className: "T6", ...{ ...a, ...b, ...{ ...c, ...d } }, children: "T6" }, void 0); + return _jsx("div", { className: "T6", ...{ ...a, ...b, ...{ ...c, ...d } }, children: "T6" }); } export function T7(a, b, c, d) { - return _jsx("div", { children: "T7" }, void 0); + return _jsx("div", { children: "T7" }); } diff --git a/tests/baselines/reference/tsxReactEmitSpreadAttribute(target=esnext).js b/tests/baselines/reference/tsxReactEmitSpreadAttribute(target=esnext).js index 5e870a365bc81..0aa58a3f27284 100644 --- a/tests/baselines/reference/tsxReactEmitSpreadAttribute(target=esnext).js +++ b/tests/baselines/reference/tsxReactEmitSpreadAttribute(target=esnext).js @@ -34,23 +34,23 @@ export function T7(a: any, b: any, c: any, d: any) { import { jsx as _jsx } from "react/jsx-runtime"; /// export function T1(a) { - return _jsx("div", { className: "T1", ...a, children: "T1" }, void 0); + return _jsx("div", { className: "T1", ...a, children: "T1" }); } export function T2(a, b) { - return _jsx("div", { className: "T2", ...a, ...b, children: "T2" }, void 0); + return _jsx("div", { className: "T2", ...a, ...b, children: "T2" }); } export function T3(a, b) { - return _jsx("div", { ...a, className: "T3", ...b, children: "T3" }, void 0); + return _jsx("div", { ...a, className: "T3", ...b, children: "T3" }); } export function T4(a, b) { - return _jsx("div", { className: "T4", ...{ ...a, ...b }, children: "T4" }, void 0); + return _jsx("div", { className: "T4", ...{ ...a, ...b }, children: "T4" }); } export function T5(a, b, c, d) { - return _jsx("div", { className: "T5", ...{ ...a, ...b, ...{ c, d } }, children: "T5" }, void 0); + return _jsx("div", { className: "T5", ...{ ...a, ...b, ...{ c, d } }, children: "T5" }); } export function T6(a, b, c, d) { - return _jsx("div", { className: "T6", ...{ ...a, ...b, ...{ ...c, ...d } }, children: "T6" }, void 0); + return _jsx("div", { className: "T6", ...{ ...a, ...b, ...{ ...c, ...d } }, children: "T6" }); } export function T7(a, b, c, d) { - return _jsx("div", { children: "T7" }, void 0); + return _jsx("div", { children: "T7" }); } diff --git a/tests/baselines/reference/tsxSpreadChildrenInvalidType(target=es2015).errors.txt b/tests/baselines/reference/tsxSpreadChildrenInvalidType(jsx=react,target=es2015).errors.txt similarity index 100% rename from tests/baselines/reference/tsxSpreadChildrenInvalidType(target=es2015).errors.txt rename to tests/baselines/reference/tsxSpreadChildrenInvalidType(jsx=react,target=es2015).errors.txt diff --git a/tests/baselines/reference/tsxSpreadChildrenInvalidType(target=es2015).js b/tests/baselines/reference/tsxSpreadChildrenInvalidType(jsx=react,target=es2015).js similarity index 100% rename from tests/baselines/reference/tsxSpreadChildrenInvalidType(target=es2015).js rename to tests/baselines/reference/tsxSpreadChildrenInvalidType(jsx=react,target=es2015).js diff --git a/tests/baselines/reference/tsxSpreadChildrenInvalidType(target=es2015).symbols b/tests/baselines/reference/tsxSpreadChildrenInvalidType(jsx=react,target=es2015).symbols similarity index 100% rename from tests/baselines/reference/tsxSpreadChildrenInvalidType(target=es2015).symbols rename to tests/baselines/reference/tsxSpreadChildrenInvalidType(jsx=react,target=es2015).symbols diff --git a/tests/baselines/reference/tsxSpreadChildrenInvalidType(target=es2015).types b/tests/baselines/reference/tsxSpreadChildrenInvalidType(jsx=react,target=es2015).types similarity index 100% rename from tests/baselines/reference/tsxSpreadChildrenInvalidType(target=es2015).types rename to tests/baselines/reference/tsxSpreadChildrenInvalidType(jsx=react,target=es2015).types diff --git a/tests/baselines/reference/tsxSpreadChildrenInvalidType(target=es5).errors.txt b/tests/baselines/reference/tsxSpreadChildrenInvalidType(jsx=react,target=es5).errors.txt similarity index 100% rename from tests/baselines/reference/tsxSpreadChildrenInvalidType(target=es5).errors.txt rename to tests/baselines/reference/tsxSpreadChildrenInvalidType(jsx=react,target=es5).errors.txt diff --git a/tests/baselines/reference/tsxSpreadChildrenInvalidType(target=es5).js b/tests/baselines/reference/tsxSpreadChildrenInvalidType(jsx=react,target=es5).js similarity index 100% rename from tests/baselines/reference/tsxSpreadChildrenInvalidType(target=es5).js rename to tests/baselines/reference/tsxSpreadChildrenInvalidType(jsx=react,target=es5).js diff --git a/tests/baselines/reference/tsxSpreadChildrenInvalidType(target=es5).symbols b/tests/baselines/reference/tsxSpreadChildrenInvalidType(jsx=react,target=es5).symbols similarity index 100% rename from tests/baselines/reference/tsxSpreadChildrenInvalidType(target=es5).symbols rename to tests/baselines/reference/tsxSpreadChildrenInvalidType(jsx=react,target=es5).symbols diff --git a/tests/baselines/reference/tsxSpreadChildrenInvalidType(target=es5).types b/tests/baselines/reference/tsxSpreadChildrenInvalidType(jsx=react,target=es5).types similarity index 100% rename from tests/baselines/reference/tsxSpreadChildrenInvalidType(target=es5).types rename to tests/baselines/reference/tsxSpreadChildrenInvalidType(jsx=react,target=es5).types diff --git a/tests/baselines/reference/tsxSpreadChildrenInvalidType(jsx=react-jsx,target=es2015).errors.txt b/tests/baselines/reference/tsxSpreadChildrenInvalidType(jsx=react-jsx,target=es2015).errors.txt new file mode 100644 index 0000000000000..829e229a91c63 --- /dev/null +++ b/tests/baselines/reference/tsxSpreadChildrenInvalidType(jsx=react-jsx,target=es2015).errors.txt @@ -0,0 +1,41 @@ +tests/cases/conformance/jsx/tsxSpreadChildrenInvalidType.tsx(17,12): error TS2792: Cannot find module 'react/jsx-runtime'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? +tests/cases/conformance/jsx/tsxSpreadChildrenInvalidType.tsx(21,9): error TS2609: JSX spread child must be an array type. + + +==== tests/cases/conformance/jsx/tsxSpreadChildrenInvalidType.tsx (2 errors) ==== + declare module JSX { + interface Element { } + interface IntrinsicElements { + [s: string]: any; + } + } + declare var React: any; + + interface TodoProp { + id: number; + todo: string; + } + interface TodoListProps { + todos: TodoProp[]; + } + function Todo(prop: { key: number, todo: string }) { + return
{prop.key.toString() + prop.todo}
; + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2792: Cannot find module 'react/jsx-runtime'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? + } + function TodoList({ todos }: TodoListProps) { + return
+ {...} + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2609: JSX spread child must be an array type. +
; + } + function TodoListNoError({ todos }: TodoListProps) { + // any is not checked + return
+ {...( as any)} +
; + } + let x: TodoListProps; + + \ No newline at end of file diff --git a/tests/baselines/reference/tsxSpreadChildrenInvalidType(jsx=react-jsx,target=es2015).js b/tests/baselines/reference/tsxSpreadChildrenInvalidType(jsx=react-jsx,target=es2015).js new file mode 100644 index 0000000000000..dee4ee2ddfc47 --- /dev/null +++ b/tests/baselines/reference/tsxSpreadChildrenInvalidType(jsx=react-jsx,target=es2015).js @@ -0,0 +1,48 @@ +//// [tsxSpreadChildrenInvalidType.tsx] +declare module JSX { + interface Element { } + interface IntrinsicElements { + [s: string]: any; + } +} +declare var React: any; + +interface TodoProp { + id: number; + todo: string; +} +interface TodoListProps { + todos: TodoProp[]; +} +function Todo(prop: { key: number, todo: string }) { + return
{prop.key.toString() + prop.todo}
; +} +function TodoList({ todos }: TodoListProps) { + return
+ {...} +
; +} +function TodoListNoError({ todos }: TodoListProps) { + // any is not checked + return
+ {...( as any)} +
; +} +let x: TodoListProps; + + + +//// [tsxSpreadChildrenInvalidType.js] +import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime"; +function Todo(prop) { + return _jsx("div", { children: prop.key.toString() + prop.todo }); +} +function TodoList({ todos }) { + return _jsxs("div", { children: [..._jsx(Todo, { todo: todos[0].todo }, todos[0].id)] }); +} +function TodoListNoError({ todos }) { + // any is not checked + return _jsxs("div", { children: [..._jsx(Todo, { todo: todos[0].todo }, todos[0].id)] }); +} +let x; +_jsx(TodoList, Object.assign({}, x)); diff --git a/tests/baselines/reference/tsxSpreadChildrenInvalidType(jsx=react-jsx,target=es2015).symbols b/tests/baselines/reference/tsxSpreadChildrenInvalidType(jsx=react-jsx,target=es2015).symbols new file mode 100644 index 0000000000000..c3be731e55e8c --- /dev/null +++ b/tests/baselines/reference/tsxSpreadChildrenInvalidType(jsx=react-jsx,target=es2015).symbols @@ -0,0 +1,96 @@ +=== tests/cases/conformance/jsx/tsxSpreadChildrenInvalidType.tsx === +declare module JSX { +>JSX : Symbol(JSX, Decl(tsxSpreadChildrenInvalidType.tsx, 0, 0)) + + interface Element { } +>Element : Symbol(Element, Decl(tsxSpreadChildrenInvalidType.tsx, 0, 20)) + + interface IntrinsicElements { +>IntrinsicElements : Symbol(IntrinsicElements, Decl(tsxSpreadChildrenInvalidType.tsx, 1, 22)) + + [s: string]: any; +>s : Symbol(s, Decl(tsxSpreadChildrenInvalidType.tsx, 3, 3)) + } +} +declare var React: any; +>React : Symbol(React, Decl(tsxSpreadChildrenInvalidType.tsx, 6, 11)) + +interface TodoProp { +>TodoProp : Symbol(TodoProp, Decl(tsxSpreadChildrenInvalidType.tsx, 6, 23)) + + id: number; +>id : Symbol(TodoProp.id, Decl(tsxSpreadChildrenInvalidType.tsx, 8, 20)) + + todo: string; +>todo : Symbol(TodoProp.todo, Decl(tsxSpreadChildrenInvalidType.tsx, 9, 15)) +} +interface TodoListProps { +>TodoListProps : Symbol(TodoListProps, Decl(tsxSpreadChildrenInvalidType.tsx, 11, 1)) + + todos: TodoProp[]; +>todos : Symbol(TodoListProps.todos, Decl(tsxSpreadChildrenInvalidType.tsx, 12, 25)) +>TodoProp : Symbol(TodoProp, Decl(tsxSpreadChildrenInvalidType.tsx, 6, 23)) +} +function Todo(prop: { key: number, todo: string }) { +>Todo : Symbol(Todo, Decl(tsxSpreadChildrenInvalidType.tsx, 14, 1)) +>prop : Symbol(prop, Decl(tsxSpreadChildrenInvalidType.tsx, 15, 14)) +>key : Symbol(key, Decl(tsxSpreadChildrenInvalidType.tsx, 15, 21)) +>todo : Symbol(todo, Decl(tsxSpreadChildrenInvalidType.tsx, 15, 34)) + + return
{prop.key.toString() + prop.todo}
; +>prop.key.toString : Symbol(Number.toString, Decl(lib.es5.d.ts, --, --)) +>prop.key : Symbol(key, Decl(tsxSpreadChildrenInvalidType.tsx, 15, 21)) +>prop : Symbol(prop, Decl(tsxSpreadChildrenInvalidType.tsx, 15, 14)) +>key : Symbol(key, Decl(tsxSpreadChildrenInvalidType.tsx, 15, 21)) +>toString : Symbol(Number.toString, Decl(lib.es5.d.ts, --, --)) +>prop.todo : Symbol(todo, Decl(tsxSpreadChildrenInvalidType.tsx, 15, 34)) +>prop : Symbol(prop, Decl(tsxSpreadChildrenInvalidType.tsx, 15, 14)) +>todo : Symbol(todo, Decl(tsxSpreadChildrenInvalidType.tsx, 15, 34)) +} +function TodoList({ todos }: TodoListProps) { +>TodoList : Symbol(TodoList, Decl(tsxSpreadChildrenInvalidType.tsx, 17, 1)) +>todos : Symbol(todos, Decl(tsxSpreadChildrenInvalidType.tsx, 18, 19)) +>TodoListProps : Symbol(TodoListProps, Decl(tsxSpreadChildrenInvalidType.tsx, 11, 1)) + + return
+ {...} +>Todo : Symbol(Todo, Decl(tsxSpreadChildrenInvalidType.tsx, 14, 1)) +>key : Symbol(key, Decl(tsxSpreadChildrenInvalidType.tsx, 20, 17)) +>todos[0].id : Symbol(TodoProp.id, Decl(tsxSpreadChildrenInvalidType.tsx, 8, 20)) +>todos : Symbol(todos, Decl(tsxSpreadChildrenInvalidType.tsx, 18, 19)) +>id : Symbol(TodoProp.id, Decl(tsxSpreadChildrenInvalidType.tsx, 8, 20)) +>todo : Symbol(todo, Decl(tsxSpreadChildrenInvalidType.tsx, 20, 35)) +>todos[0].todo : Symbol(TodoProp.todo, Decl(tsxSpreadChildrenInvalidType.tsx, 9, 15)) +>todos : Symbol(todos, Decl(tsxSpreadChildrenInvalidType.tsx, 18, 19)) +>todo : Symbol(TodoProp.todo, Decl(tsxSpreadChildrenInvalidType.tsx, 9, 15)) + +
; +} +function TodoListNoError({ todos }: TodoListProps) { +>TodoListNoError : Symbol(TodoListNoError, Decl(tsxSpreadChildrenInvalidType.tsx, 22, 1)) +>todos : Symbol(todos, Decl(tsxSpreadChildrenInvalidType.tsx, 23, 26)) +>TodoListProps : Symbol(TodoListProps, Decl(tsxSpreadChildrenInvalidType.tsx, 11, 1)) + + // any is not checked + return
+ {...( as any)} +>Todo : Symbol(Todo, Decl(tsxSpreadChildrenInvalidType.tsx, 14, 1)) +>key : Symbol(key, Decl(tsxSpreadChildrenInvalidType.tsx, 26, 18)) +>todos[0].id : Symbol(TodoProp.id, Decl(tsxSpreadChildrenInvalidType.tsx, 8, 20)) +>todos : Symbol(todos, Decl(tsxSpreadChildrenInvalidType.tsx, 23, 26)) +>id : Symbol(TodoProp.id, Decl(tsxSpreadChildrenInvalidType.tsx, 8, 20)) +>todo : Symbol(todo, Decl(tsxSpreadChildrenInvalidType.tsx, 26, 36)) +>todos[0].todo : Symbol(TodoProp.todo, Decl(tsxSpreadChildrenInvalidType.tsx, 9, 15)) +>todos : Symbol(todos, Decl(tsxSpreadChildrenInvalidType.tsx, 23, 26)) +>todo : Symbol(TodoProp.todo, Decl(tsxSpreadChildrenInvalidType.tsx, 9, 15)) + +
; +} +let x: TodoListProps; +>x : Symbol(x, Decl(tsxSpreadChildrenInvalidType.tsx, 29, 3)) +>TodoListProps : Symbol(TodoListProps, Decl(tsxSpreadChildrenInvalidType.tsx, 11, 1)) + + +>TodoList : Symbol(TodoList, Decl(tsxSpreadChildrenInvalidType.tsx, 17, 1)) +>x : Symbol(x, Decl(tsxSpreadChildrenInvalidType.tsx, 29, 3)) + diff --git a/tests/baselines/reference/tsxSpreadChildrenInvalidType(jsx=react-jsx,target=es2015).types b/tests/baselines/reference/tsxSpreadChildrenInvalidType(jsx=react-jsx,target=es2015).types new file mode 100644 index 0000000000000..542fa2c7fca11 --- /dev/null +++ b/tests/baselines/reference/tsxSpreadChildrenInvalidType(jsx=react-jsx,target=es2015).types @@ -0,0 +1,108 @@ +=== tests/cases/conformance/jsx/tsxSpreadChildrenInvalidType.tsx === +declare module JSX { + interface Element { } + interface IntrinsicElements { + [s: string]: any; +>s : string + } +} +declare var React: any; +>React : any + +interface TodoProp { + id: number; +>id : number + + todo: string; +>todo : string +} +interface TodoListProps { + todos: TodoProp[]; +>todos : TodoProp[] +} +function Todo(prop: { key: number, todo: string }) { +>Todo : (prop: { key: number; todo: string;}) => any +>prop : { key: number; todo: string; } +>key : number +>todo : string + + return
{prop.key.toString() + prop.todo}
; +>
{prop.key.toString() + prop.todo}
: any +>div : any +>prop.key.toString() + prop.todo : string +>prop.key.toString() : string +>prop.key.toString : (radix?: number) => string +>prop.key : number +>prop : { key: number; todo: string; } +>key : number +>toString : (radix?: number) => string +>prop.todo : string +>prop : { key: number; todo: string; } +>todo : string +>div : any +} +function TodoList({ todos }: TodoListProps) { +>TodoList : ({ todos }: TodoListProps) => any +>todos : TodoProp[] + + return
+>
{...}
: any +>div : any + + {...} +> : any +>Todo : (prop: { key: number; todo: string; }) => any +>key : number +>todos[0].id : number +>todos[0] : TodoProp +>todos : TodoProp[] +>0 : 0 +>id : number +>todo : string +>todos[0].todo : string +>todos[0] : TodoProp +>todos : TodoProp[] +>0 : 0 +>todo : string + +
; +>div : any +} +function TodoListNoError({ todos }: TodoListProps) { +>TodoListNoError : ({ todos }: TodoListProps) => any +>todos : TodoProp[] + + // any is not checked + return
+>
{...( as any)}
: any +>div : any + + {...( as any)} +>( as any) : any +> as any : any +> : any +>Todo : (prop: { key: number; todo: string; }) => any +>key : number +>todos[0].id : number +>todos[0] : TodoProp +>todos : TodoProp[] +>0 : 0 +>id : number +>todo : string +>todos[0].todo : string +>todos[0] : TodoProp +>todos : TodoProp[] +>0 : 0 +>todo : string + +
; +>div : any +} +let x: TodoListProps; +>x : TodoListProps + + +> : any +>TodoList : ({ todos }: TodoListProps) => any +>x : TodoListProps + diff --git a/tests/baselines/reference/tsxSpreadChildrenInvalidType(jsx=react-jsx,target=es5).errors.txt b/tests/baselines/reference/tsxSpreadChildrenInvalidType(jsx=react-jsx,target=es5).errors.txt new file mode 100644 index 0000000000000..acefceb65ba5c --- /dev/null +++ b/tests/baselines/reference/tsxSpreadChildrenInvalidType(jsx=react-jsx,target=es5).errors.txt @@ -0,0 +1,41 @@ +tests/cases/conformance/jsx/tsxSpreadChildrenInvalidType.tsx(17,12): error TS2307: Cannot find module 'react/jsx-runtime' or its corresponding type declarations. +tests/cases/conformance/jsx/tsxSpreadChildrenInvalidType.tsx(21,9): error TS2609: JSX spread child must be an array type. + + +==== tests/cases/conformance/jsx/tsxSpreadChildrenInvalidType.tsx (2 errors) ==== + declare module JSX { + interface Element { } + interface IntrinsicElements { + [s: string]: any; + } + } + declare var React: any; + + interface TodoProp { + id: number; + todo: string; + } + interface TodoListProps { + todos: TodoProp[]; + } + function Todo(prop: { key: number, todo: string }) { + return
{prop.key.toString() + prop.todo}
; + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2307: Cannot find module 'react/jsx-runtime' or its corresponding type declarations. + } + function TodoList({ todos }: TodoListProps) { + return
+ {...} + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2609: JSX spread child must be an array type. +
; + } + function TodoListNoError({ todos }: TodoListProps) { + // any is not checked + return
+ {...( as any)} +
; + } + let x: TodoListProps; + + \ No newline at end of file diff --git a/tests/baselines/reference/tsxSpreadChildrenInvalidType(jsx=react-jsx,target=es5).js b/tests/baselines/reference/tsxSpreadChildrenInvalidType(jsx=react-jsx,target=es5).js new file mode 100644 index 0000000000000..8ebd589281c10 --- /dev/null +++ b/tests/baselines/reference/tsxSpreadChildrenInvalidType(jsx=react-jsx,target=es5).js @@ -0,0 +1,72 @@ +//// [tsxSpreadChildrenInvalidType.tsx] +declare module JSX { + interface Element { } + interface IntrinsicElements { + [s: string]: any; + } +} +declare var React: any; + +interface TodoProp { + id: number; + todo: string; +} +interface TodoListProps { + todos: TodoProp[]; +} +function Todo(prop: { key: number, todo: string }) { + return
{prop.key.toString() + prop.todo}
; +} +function TodoList({ todos }: TodoListProps) { + return
+ {...} +
; +} +function TodoListNoError({ todos }: TodoListProps) { + // any is not checked + return
+ {...( as any)} +
; +} +let x: TodoListProps; + + + +//// [tsxSpreadChildrenInvalidType.js] +"use strict"; +var __assign = (this && this.__assign) || function () { + __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; + }; + return __assign.apply(this, arguments); +}; +var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) { + if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { + if (ar || !(i in from)) { + if (!ar) ar = Array.prototype.slice.call(from, 0, i); + ar[i] = from[i]; + } + } + return to.concat(ar || Array.prototype.slice.call(from)); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var jsx_runtime_1 = require("react/jsx-runtime"); +function Todo(prop) { + return (0, jsx_runtime_1.jsx)("div", { children: prop.key.toString() + prop.todo }); +} +function TodoList(_a) { + var todos = _a.todos; + return (0, jsx_runtime_1.jsxs)("div", { children: __spreadArray([], (0, jsx_runtime_1.jsx)(Todo, { todo: todos[0].todo }, todos[0].id), true) }); +} +function TodoListNoError(_a) { + var todos = _a.todos; + // any is not checked + return (0, jsx_runtime_1.jsxs)("div", { children: __spreadArray([], (0, jsx_runtime_1.jsx)(Todo, { todo: todos[0].todo }, todos[0].id), true) }); +} +var x; +(0, jsx_runtime_1.jsx)(TodoList, __assign({}, x)); diff --git a/tests/baselines/reference/tsxSpreadChildrenInvalidType(jsx=react-jsx,target=es5).symbols b/tests/baselines/reference/tsxSpreadChildrenInvalidType(jsx=react-jsx,target=es5).symbols new file mode 100644 index 0000000000000..c3be731e55e8c --- /dev/null +++ b/tests/baselines/reference/tsxSpreadChildrenInvalidType(jsx=react-jsx,target=es5).symbols @@ -0,0 +1,96 @@ +=== tests/cases/conformance/jsx/tsxSpreadChildrenInvalidType.tsx === +declare module JSX { +>JSX : Symbol(JSX, Decl(tsxSpreadChildrenInvalidType.tsx, 0, 0)) + + interface Element { } +>Element : Symbol(Element, Decl(tsxSpreadChildrenInvalidType.tsx, 0, 20)) + + interface IntrinsicElements { +>IntrinsicElements : Symbol(IntrinsicElements, Decl(tsxSpreadChildrenInvalidType.tsx, 1, 22)) + + [s: string]: any; +>s : Symbol(s, Decl(tsxSpreadChildrenInvalidType.tsx, 3, 3)) + } +} +declare var React: any; +>React : Symbol(React, Decl(tsxSpreadChildrenInvalidType.tsx, 6, 11)) + +interface TodoProp { +>TodoProp : Symbol(TodoProp, Decl(tsxSpreadChildrenInvalidType.tsx, 6, 23)) + + id: number; +>id : Symbol(TodoProp.id, Decl(tsxSpreadChildrenInvalidType.tsx, 8, 20)) + + todo: string; +>todo : Symbol(TodoProp.todo, Decl(tsxSpreadChildrenInvalidType.tsx, 9, 15)) +} +interface TodoListProps { +>TodoListProps : Symbol(TodoListProps, Decl(tsxSpreadChildrenInvalidType.tsx, 11, 1)) + + todos: TodoProp[]; +>todos : Symbol(TodoListProps.todos, Decl(tsxSpreadChildrenInvalidType.tsx, 12, 25)) +>TodoProp : Symbol(TodoProp, Decl(tsxSpreadChildrenInvalidType.tsx, 6, 23)) +} +function Todo(prop: { key: number, todo: string }) { +>Todo : Symbol(Todo, Decl(tsxSpreadChildrenInvalidType.tsx, 14, 1)) +>prop : Symbol(prop, Decl(tsxSpreadChildrenInvalidType.tsx, 15, 14)) +>key : Symbol(key, Decl(tsxSpreadChildrenInvalidType.tsx, 15, 21)) +>todo : Symbol(todo, Decl(tsxSpreadChildrenInvalidType.tsx, 15, 34)) + + return
{prop.key.toString() + prop.todo}
; +>prop.key.toString : Symbol(Number.toString, Decl(lib.es5.d.ts, --, --)) +>prop.key : Symbol(key, Decl(tsxSpreadChildrenInvalidType.tsx, 15, 21)) +>prop : Symbol(prop, Decl(tsxSpreadChildrenInvalidType.tsx, 15, 14)) +>key : Symbol(key, Decl(tsxSpreadChildrenInvalidType.tsx, 15, 21)) +>toString : Symbol(Number.toString, Decl(lib.es5.d.ts, --, --)) +>prop.todo : Symbol(todo, Decl(tsxSpreadChildrenInvalidType.tsx, 15, 34)) +>prop : Symbol(prop, Decl(tsxSpreadChildrenInvalidType.tsx, 15, 14)) +>todo : Symbol(todo, Decl(tsxSpreadChildrenInvalidType.tsx, 15, 34)) +} +function TodoList({ todos }: TodoListProps) { +>TodoList : Symbol(TodoList, Decl(tsxSpreadChildrenInvalidType.tsx, 17, 1)) +>todos : Symbol(todos, Decl(tsxSpreadChildrenInvalidType.tsx, 18, 19)) +>TodoListProps : Symbol(TodoListProps, Decl(tsxSpreadChildrenInvalidType.tsx, 11, 1)) + + return
+ {...} +>Todo : Symbol(Todo, Decl(tsxSpreadChildrenInvalidType.tsx, 14, 1)) +>key : Symbol(key, Decl(tsxSpreadChildrenInvalidType.tsx, 20, 17)) +>todos[0].id : Symbol(TodoProp.id, Decl(tsxSpreadChildrenInvalidType.tsx, 8, 20)) +>todos : Symbol(todos, Decl(tsxSpreadChildrenInvalidType.tsx, 18, 19)) +>id : Symbol(TodoProp.id, Decl(tsxSpreadChildrenInvalidType.tsx, 8, 20)) +>todo : Symbol(todo, Decl(tsxSpreadChildrenInvalidType.tsx, 20, 35)) +>todos[0].todo : Symbol(TodoProp.todo, Decl(tsxSpreadChildrenInvalidType.tsx, 9, 15)) +>todos : Symbol(todos, Decl(tsxSpreadChildrenInvalidType.tsx, 18, 19)) +>todo : Symbol(TodoProp.todo, Decl(tsxSpreadChildrenInvalidType.tsx, 9, 15)) + +
; +} +function TodoListNoError({ todos }: TodoListProps) { +>TodoListNoError : Symbol(TodoListNoError, Decl(tsxSpreadChildrenInvalidType.tsx, 22, 1)) +>todos : Symbol(todos, Decl(tsxSpreadChildrenInvalidType.tsx, 23, 26)) +>TodoListProps : Symbol(TodoListProps, Decl(tsxSpreadChildrenInvalidType.tsx, 11, 1)) + + // any is not checked + return
+ {...( as any)} +>Todo : Symbol(Todo, Decl(tsxSpreadChildrenInvalidType.tsx, 14, 1)) +>key : Symbol(key, Decl(tsxSpreadChildrenInvalidType.tsx, 26, 18)) +>todos[0].id : Symbol(TodoProp.id, Decl(tsxSpreadChildrenInvalidType.tsx, 8, 20)) +>todos : Symbol(todos, Decl(tsxSpreadChildrenInvalidType.tsx, 23, 26)) +>id : Symbol(TodoProp.id, Decl(tsxSpreadChildrenInvalidType.tsx, 8, 20)) +>todo : Symbol(todo, Decl(tsxSpreadChildrenInvalidType.tsx, 26, 36)) +>todos[0].todo : Symbol(TodoProp.todo, Decl(tsxSpreadChildrenInvalidType.tsx, 9, 15)) +>todos : Symbol(todos, Decl(tsxSpreadChildrenInvalidType.tsx, 23, 26)) +>todo : Symbol(TodoProp.todo, Decl(tsxSpreadChildrenInvalidType.tsx, 9, 15)) + +
; +} +let x: TodoListProps; +>x : Symbol(x, Decl(tsxSpreadChildrenInvalidType.tsx, 29, 3)) +>TodoListProps : Symbol(TodoListProps, Decl(tsxSpreadChildrenInvalidType.tsx, 11, 1)) + + +>TodoList : Symbol(TodoList, Decl(tsxSpreadChildrenInvalidType.tsx, 17, 1)) +>x : Symbol(x, Decl(tsxSpreadChildrenInvalidType.tsx, 29, 3)) + diff --git a/tests/baselines/reference/tsxSpreadChildrenInvalidType(jsx=react-jsx,target=es5).types b/tests/baselines/reference/tsxSpreadChildrenInvalidType(jsx=react-jsx,target=es5).types new file mode 100644 index 0000000000000..542fa2c7fca11 --- /dev/null +++ b/tests/baselines/reference/tsxSpreadChildrenInvalidType(jsx=react-jsx,target=es5).types @@ -0,0 +1,108 @@ +=== tests/cases/conformance/jsx/tsxSpreadChildrenInvalidType.tsx === +declare module JSX { + interface Element { } + interface IntrinsicElements { + [s: string]: any; +>s : string + } +} +declare var React: any; +>React : any + +interface TodoProp { + id: number; +>id : number + + todo: string; +>todo : string +} +interface TodoListProps { + todos: TodoProp[]; +>todos : TodoProp[] +} +function Todo(prop: { key: number, todo: string }) { +>Todo : (prop: { key: number; todo: string;}) => any +>prop : { key: number; todo: string; } +>key : number +>todo : string + + return
{prop.key.toString() + prop.todo}
; +>
{prop.key.toString() + prop.todo}
: any +>div : any +>prop.key.toString() + prop.todo : string +>prop.key.toString() : string +>prop.key.toString : (radix?: number) => string +>prop.key : number +>prop : { key: number; todo: string; } +>key : number +>toString : (radix?: number) => string +>prop.todo : string +>prop : { key: number; todo: string; } +>todo : string +>div : any +} +function TodoList({ todos }: TodoListProps) { +>TodoList : ({ todos }: TodoListProps) => any +>todos : TodoProp[] + + return
+>
{...}
: any +>div : any + + {...} +> : any +>Todo : (prop: { key: number; todo: string; }) => any +>key : number +>todos[0].id : number +>todos[0] : TodoProp +>todos : TodoProp[] +>0 : 0 +>id : number +>todo : string +>todos[0].todo : string +>todos[0] : TodoProp +>todos : TodoProp[] +>0 : 0 +>todo : string + +
; +>div : any +} +function TodoListNoError({ todos }: TodoListProps) { +>TodoListNoError : ({ todos }: TodoListProps) => any +>todos : TodoProp[] + + // any is not checked + return
+>
{...( as any)}
: any +>div : any + + {...( as any)} +>( as any) : any +> as any : any +> : any +>Todo : (prop: { key: number; todo: string; }) => any +>key : number +>todos[0].id : number +>todos[0] : TodoProp +>todos : TodoProp[] +>0 : 0 +>id : number +>todo : string +>todos[0].todo : string +>todos[0] : TodoProp +>todos : TodoProp[] +>0 : 0 +>todo : string + +
; +>div : any +} +let x: TodoListProps; +>x : TodoListProps + + +> : any +>TodoList : ({ todos }: TodoListProps) => any +>x : TodoListProps + diff --git a/tests/baselines/reference/tupleTypes.errors.txt b/tests/baselines/reference/tupleTypes.errors.txt index c819aabf00523..581ee6e73f5d6 100644 --- a/tests/baselines/reference/tupleTypes.errors.txt +++ b/tests/baselines/reference/tupleTypes.errors.txt @@ -23,9 +23,13 @@ tests/cases/compiler/tupleTypes.ts(50,1): error TS2322: Type '[number, number]' tests/cases/compiler/tupleTypes.ts(51,1): error TS2322: Type '[number, {}]' is not assignable to type '[number, string]'. Type at position 1 in source is not compatible with type at position 1 in target. Type '{}' is not assignable to type 'string'. +tests/cases/compiler/tupleTypes.ts(57,1): error TS2322: Type '0' is not assignable to type '1'. +tests/cases/compiler/tupleTypes.ts(59,4): error TS2540: Cannot assign to 'length' because it is a read-only property. +tests/cases/compiler/tupleTypes.ts(61,4): error TS2540: Cannot assign to 'length' because it is a read-only property. +tests/cases/compiler/tupleTypes.ts(63,4): error TS2540: Cannot assign to 'length' because it is a read-only property. -==== tests/cases/compiler/tupleTypes.ts (14 errors) ==== +==== tests/cases/compiler/tupleTypes.ts (18 errors) ==== var v1: []; // Error var v2: [number]; var v3: [number, string]; @@ -120,4 +124,24 @@ tests/cases/compiler/tupleTypes.ts(51,1): error TS2322: Type '[number, {}]' is n !!! error TS2322: Type '{}' is not assignable to type 'string'. a3 = a1; a3 = a2; + + type B = Pick<[number], 'length'>; + declare const b: B; + b.length = 0; // Error + ~~~~~~~~ +!!! error TS2322: Type '0' is not assignable to type '1'. + declare const b1: readonly [number?]; + b1.length = 0; // Error + ~~~~~~ +!!! error TS2540: Cannot assign to 'length' because it is a read-only property. + declare const b2: readonly [number, ...number[]]; + b2.length = 0; // Error + ~~~~~~ +!!! error TS2540: Cannot assign to 'length' because it is a read-only property. + declare const b3: readonly number[]; + b3.length = 0; // Error + ~~~~~~ +!!! error TS2540: Cannot assign to 'length' because it is a read-only property. + declare const b4: [number?]; + b4.length = 0; \ No newline at end of file diff --git a/tests/baselines/reference/tupleTypes.js b/tests/baselines/reference/tupleTypes.js index 947b7bba30bc7..818c2f44e92de 100644 --- a/tests/baselines/reference/tupleTypes.js +++ b/tests/baselines/reference/tupleTypes.js @@ -52,6 +52,18 @@ a1 = a2; // Error a1 = a3; // Error a3 = a1; a3 = a2; + +type B = Pick<[number], 'length'>; +declare const b: B; +b.length = 0; // Error +declare const b1: readonly [number?]; +b1.length = 0; // Error +declare const b2: readonly [number, ...number[]]; +b2.length = 0; // Error +declare const b3: readonly number[]; +b3.length = 0; // Error +declare const b4: [number?]; +b4.length = 0; //// [tupleTypes.js] @@ -99,3 +111,8 @@ a1 = a2; // Error a1 = a3; // Error a3 = a1; a3 = a2; +b.length = 0; // Error +b1.length = 0; // Error +b2.length = 0; // Error +b3.length = 0; // Error +b4.length = 0; diff --git a/tests/baselines/reference/tupleTypes.symbols b/tests/baselines/reference/tupleTypes.symbols index a886271b6ee43..1d3f27877c385 100644 --- a/tests/baselines/reference/tupleTypes.symbols +++ b/tests/baselines/reference/tupleTypes.symbols @@ -184,3 +184,48 @@ a3 = a2; >a3 : Symbol(a3, Decl(tupleTypes.ts, 45, 3)) >a2 : Symbol(a2, Decl(tupleTypes.ts, 44, 3)) +type B = Pick<[number], 'length'>; +>B : Symbol(B, Decl(tupleTypes.ts, 52, 8)) +>Pick : Symbol(Pick, Decl(lib.es5.d.ts, --, --)) + +declare const b: B; +>b : Symbol(b, Decl(tupleTypes.ts, 55, 13)) +>B : Symbol(B, Decl(tupleTypes.ts, 52, 8)) + +b.length = 0; // Error +>b.length : Symbol(length) +>b : Symbol(b, Decl(tupleTypes.ts, 55, 13)) +>length : Symbol(length) + +declare const b1: readonly [number?]; +>b1 : Symbol(b1, Decl(tupleTypes.ts, 57, 13)) + +b1.length = 0; // Error +>b1.length : Symbol(length) +>b1 : Symbol(b1, Decl(tupleTypes.ts, 57, 13)) +>length : Symbol(length) + +declare const b2: readonly [number, ...number[]]; +>b2 : Symbol(b2, Decl(tupleTypes.ts, 59, 13)) + +b2.length = 0; // Error +>b2.length : Symbol(length) +>b2 : Symbol(b2, Decl(tupleTypes.ts, 59, 13)) +>length : Symbol(length) + +declare const b3: readonly number[]; +>b3 : Symbol(b3, Decl(tupleTypes.ts, 61, 13)) + +b3.length = 0; // Error +>b3.length : Symbol(ReadonlyArray.length, Decl(lib.es5.d.ts, --, --)) +>b3 : Symbol(b3, Decl(tupleTypes.ts, 61, 13)) +>length : Symbol(ReadonlyArray.length, Decl(lib.es5.d.ts, --, --)) + +declare const b4: [number?]; +>b4 : Symbol(b4, Decl(tupleTypes.ts, 63, 13)) + +b4.length = 0; +>b4.length : Symbol(length) +>b4 : Symbol(b4, Decl(tupleTypes.ts, 63, 13)) +>length : Symbol(length) + diff --git a/tests/baselines/reference/tupleTypes.types b/tests/baselines/reference/tupleTypes.types index 12eaf588b98ec..a1b0a345f00f1 100644 --- a/tests/baselines/reference/tupleTypes.types +++ b/tests/baselines/reference/tupleTypes.types @@ -226,3 +226,56 @@ a3 = a2; >a3 : [number, {}] >a2 : [number, number] +type B = Pick<[number], 'length'>; +>B : B + +declare const b: B; +>b : B + +b.length = 0; // Error +>b.length = 0 : 0 +>b.length : 1 +>b : B +>length : 1 +>0 : 0 + +declare const b1: readonly [number?]; +>b1 : readonly [number?] + +b1.length = 0; // Error +>b1.length = 0 : 0 +>b1.length : any +>b1 : readonly [number?] +>length : any +>0 : 0 + +declare const b2: readonly [number, ...number[]]; +>b2 : readonly [number, ...number[]] + +b2.length = 0; // Error +>b2.length = 0 : 0 +>b2.length : any +>b2 : readonly [number, ...number[]] +>length : any +>0 : 0 + +declare const b3: readonly number[]; +>b3 : readonly number[] + +b3.length = 0; // Error +>b3.length = 0 : 0 +>b3.length : any +>b3 : readonly number[] +>length : any +>0 : 0 + +declare const b4: [number?]; +>b4 : [number?] + +b4.length = 0; +>b4.length = 0 : 0 +>b4.length : 0 | 1 +>b4 : [number?] +>length : 0 | 1 +>0 : 0 + diff --git a/tests/baselines/reference/typeAssertions.errors.txt b/tests/baselines/reference/typeAssertions.errors.txt index f525a4be507ac..9f085d7b2a97a 100644 --- a/tests/baselines/reference/typeAssertions.errors.txt +++ b/tests/baselines/reference/typeAssertions.errors.txt @@ -93,6 +93,7 @@ tests/cases/conformance/expressions/typeAssertions/typeAssertions.ts(48,50): err !!! error TS2304: Cannot find name 'is'. ~~~~~~ !!! error TS1005: ')' expected. +!!! related TS1007 tests/cases/conformance/expressions/typeAssertions/typeAssertions.ts:44:3: The parser expected to find a ')' to match the '(' token here. ~~~~~~ !!! error TS2693: 'string' only refers to a type, but is being used as a value here. ~ @@ -108,6 +109,7 @@ tests/cases/conformance/expressions/typeAssertions/typeAssertions.ts(48,50): err !!! error TS2749: 'numOrStr' refers to a value, but is being used as a type here. Did you mean 'typeof numOrStr'? ~~ !!! error TS1005: ')' expected. +!!! related TS1007 tests/cases/conformance/expressions/typeAssertions/typeAssertions.ts:48:3: The parser expected to find a ')' to match the '(' token here. ~~ !!! error TS2304: Cannot find name 'is'. ~~~~~~ diff --git a/tests/baselines/reference/typeFromJSInitializer.errors.txt b/tests/baselines/reference/typeFromJSInitializer.errors.txt index 2f83d680f97ba..7c4faa13797cf 100644 --- a/tests/baselines/reference/typeFromJSInitializer.errors.txt +++ b/tests/baselines/reference/typeFromJSInitializer.errors.txt @@ -7,7 +7,7 @@ tests/cases/conformance/salsa/a.js(29,5): error TS2322: Type '1' is not assignab tests/cases/conformance/salsa/a.js(30,5): error TS2322: Type 'true' is not assignable to type 'null'. tests/cases/conformance/salsa/a.js(31,5): error TS2322: Type '{}' is not assignable to type 'null'. tests/cases/conformance/salsa/a.js(32,5): error TS2322: Type '"ok"' is not assignable to type 'null'. -tests/cases/conformance/salsa/a.js(37,5): error TS2322: Type '"error"' is not assignable to type 'number | undefined'. +tests/cases/conformance/salsa/a.js(37,5): error TS2322: Type 'string' is not assignable to type 'number'. ==== tests/cases/conformance/salsa/a.js (10 errors) ==== @@ -67,7 +67,7 @@ tests/cases/conformance/salsa/a.js(37,5): error TS2322: Type '"error"' is not as b = undefined b = 'error' ~ -!!! error TS2322: Type '"error"' is not assignable to type 'number | undefined'. +!!! error TS2322: Type 'string' is not assignable to type 'number'. // l should be any[] l.push(1) diff --git a/tests/baselines/reference/typeGuardConstructorNarrowAny.symbols b/tests/baselines/reference/typeGuardConstructorNarrowAny.symbols index acbc179aa270d..05566a9104682 100644 --- a/tests/baselines/reference/typeGuardConstructorNarrowAny.symbols +++ b/tests/baselines/reference/typeGuardConstructorNarrowAny.symbols @@ -5,14 +5,14 @@ let var1: any; if (var1.constructor === String) { >var1 : Symbol(var1, Decl(typeGuardConstructorNarrowAny.ts, 1, 3)) ->String : Symbol(String, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --) ... and 5 more) +>String : Symbol(String, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --) ... and 6 more) var1; // String >var1 : Symbol(var1, Decl(typeGuardConstructorNarrowAny.ts, 1, 3)) } if (var1.constructor === Number) { >var1 : Symbol(var1, Decl(typeGuardConstructorNarrowAny.ts, 1, 3)) ->Number : Symbol(Number, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>Number : Symbol(Number, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2020.number.d.ts, --, --)) var1; // Number >var1 : Symbol(var1, Decl(typeGuardConstructorNarrowAny.ts, 1, 3)) @@ -26,7 +26,7 @@ if (var1.constructor === Boolean) { } if (var1.constructor === Array) { >var1 : Symbol(var1, Decl(typeGuardConstructorNarrowAny.ts, 1, 3)) ->Array : Symbol(Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --) ... and 2 more) +>Array : Symbol(Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --) ... and 3 more) var1; // any[] >var1 : Symbol(var1, Decl(typeGuardConstructorNarrowAny.ts, 1, 3)) diff --git a/tests/baselines/reference/typeGuardConstructorPrimitiveTypes.symbols b/tests/baselines/reference/typeGuardConstructorPrimitiveTypes.symbols index 1bcc2f586eb5e..281c056204288 100644 --- a/tests/baselines/reference/typeGuardConstructorPrimitiveTypes.symbols +++ b/tests/baselines/reference/typeGuardConstructorPrimitiveTypes.symbols @@ -7,7 +7,7 @@ if (var1.constructor === String) { >var1.constructor : Symbol(Object.constructor, Decl(lib.es5.d.ts, --, --)) >var1 : Symbol(var1, Decl(typeGuardConstructorPrimitiveTypes.ts, 1, 3)) >constructor : Symbol(Object.constructor, Decl(lib.es5.d.ts, --, --)) ->String : Symbol(String, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --) ... and 5 more) +>String : Symbol(String, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --) ... and 6 more) var1; // string >var1 : Symbol(var1, Decl(typeGuardConstructorPrimitiveTypes.ts, 1, 3)) @@ -16,7 +16,7 @@ if (var1.constructor === Number) { >var1.constructor : Symbol(Object.constructor, Decl(lib.es5.d.ts, --, --)) >var1 : Symbol(var1, Decl(typeGuardConstructorPrimitiveTypes.ts, 1, 3)) >constructor : Symbol(Object.constructor, Decl(lib.es5.d.ts, --, --)) ->Number : Symbol(Number, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>Number : Symbol(Number, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2020.number.d.ts, --, --)) var1; // number >var1 : Symbol(var1, Decl(typeGuardConstructorPrimitiveTypes.ts, 1, 3)) @@ -34,7 +34,7 @@ if (var1.constructor === Array) { >var1.constructor : Symbol(Object.constructor, Decl(lib.es5.d.ts, --, --)) >var1 : Symbol(var1, Decl(typeGuardConstructorPrimitiveTypes.ts, 1, 3)) >constructor : Symbol(Object.constructor, Decl(lib.es5.d.ts, --, --)) ->Array : Symbol(Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --) ... and 2 more) +>Array : Symbol(Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --) ... and 3 more) var1; // any[] >var1 : Symbol(var1, Decl(typeGuardConstructorPrimitiveTypes.ts, 1, 3)) @@ -61,8 +61,8 @@ if (var1.constructor === BigInt) { // Narrow a union of primitive object types let var2: String | Number | Boolean | Symbol | BigInt; >var2 : Symbol(var2, Decl(typeGuardConstructorPrimitiveTypes.ts, 22, 3)) ->String : Symbol(String, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --) ... and 5 more) ->Number : Symbol(Number, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>String : Symbol(String, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --) ... and 6 more) +>Number : Symbol(Number, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2020.number.d.ts, --, --)) >Boolean : Symbol(Boolean, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) >Symbol : Symbol(Symbol, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.symbol.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2019.symbol.d.ts, --, --)) >BigInt : Symbol(BigInt, Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --)) @@ -71,7 +71,7 @@ if (var2.constructor === String) { >var2.constructor : Symbol(Object.constructor, Decl(lib.es5.d.ts, --, --)) >var2 : Symbol(var2, Decl(typeGuardConstructorPrimitiveTypes.ts, 22, 3)) >constructor : Symbol(Object.constructor, Decl(lib.es5.d.ts, --, --)) ->String : Symbol(String, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --) ... and 5 more) +>String : Symbol(String, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --) ... and 6 more) var2; // String >var2 : Symbol(var2, Decl(typeGuardConstructorPrimitiveTypes.ts, 22, 3)) @@ -80,7 +80,7 @@ if (var2.constructor === Number) { >var2.constructor : Symbol(Object.constructor, Decl(lib.es5.d.ts, --, --)) >var2 : Symbol(var2, Decl(typeGuardConstructorPrimitiveTypes.ts, 22, 3)) >constructor : Symbol(Object.constructor, Decl(lib.es5.d.ts, --, --)) ->Number : Symbol(Number, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>Number : Symbol(Number, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2020.number.d.ts, --, --)) var2; // Number >var2 : Symbol(var2, Decl(typeGuardConstructorPrimitiveTypes.ts, 22, 3)) diff --git a/tests/baselines/reference/typeGuardNarrowByMutableUntypedField.js b/tests/baselines/reference/typeGuardNarrowByMutableUntypedField.js new file mode 100644 index 0000000000000..58f403ff806c2 --- /dev/null +++ b/tests/baselines/reference/typeGuardNarrowByMutableUntypedField.js @@ -0,0 +1,11 @@ +//// [typeGuardNarrowByMutableUntypedField.ts] +declare function hasOwnProperty

(target: {}, property: P): target is { [K in P]: unknown }; +declare const arrayLikeOrIterable: ArrayLike | Iterable; +if (hasOwnProperty(arrayLikeOrIterable, 'length')) { + let x: number = arrayLikeOrIterable.length; +} + +//// [typeGuardNarrowByMutableUntypedField.js] +if (hasOwnProperty(arrayLikeOrIterable, 'length')) { + var x = arrayLikeOrIterable.length; +} diff --git a/tests/baselines/reference/typeGuardNarrowByMutableUntypedField.symbols b/tests/baselines/reference/typeGuardNarrowByMutableUntypedField.symbols new file mode 100644 index 0000000000000..6c4720296ccd0 --- /dev/null +++ b/tests/baselines/reference/typeGuardNarrowByMutableUntypedField.symbols @@ -0,0 +1,27 @@ +=== tests/cases/compiler/typeGuardNarrowByMutableUntypedField.ts === +declare function hasOwnProperty

(target: {}, property: P): target is { [K in P]: unknown }; +>hasOwnProperty : Symbol(hasOwnProperty, Decl(typeGuardNarrowByMutableUntypedField.ts, 0, 0)) +>P : Symbol(P, Decl(typeGuardNarrowByMutableUntypedField.ts, 0, 32)) +>PropertyKey : Symbol(PropertyKey, Decl(lib.es5.d.ts, --, --)) +>target : Symbol(target, Decl(typeGuardNarrowByMutableUntypedField.ts, 0, 55)) +>property : Symbol(property, Decl(typeGuardNarrowByMutableUntypedField.ts, 0, 66)) +>P : Symbol(P, Decl(typeGuardNarrowByMutableUntypedField.ts, 0, 32)) +>target : Symbol(target, Decl(typeGuardNarrowByMutableUntypedField.ts, 0, 55)) +>K : Symbol(K, Decl(typeGuardNarrowByMutableUntypedField.ts, 0, 94)) +>P : Symbol(P, Decl(typeGuardNarrowByMutableUntypedField.ts, 0, 32)) + +declare const arrayLikeOrIterable: ArrayLike | Iterable; +>arrayLikeOrIterable : Symbol(arrayLikeOrIterable, Decl(typeGuardNarrowByMutableUntypedField.ts, 1, 13)) +>ArrayLike : Symbol(ArrayLike, Decl(lib.es5.d.ts, --, --)) +>Iterable : Symbol(Iterable, Decl(lib.es2015.iterable.d.ts, --, --)) + +if (hasOwnProperty(arrayLikeOrIterable, 'length')) { +>hasOwnProperty : Symbol(hasOwnProperty, Decl(typeGuardNarrowByMutableUntypedField.ts, 0, 0)) +>arrayLikeOrIterable : Symbol(arrayLikeOrIterable, Decl(typeGuardNarrowByMutableUntypedField.ts, 1, 13)) + + let x: number = arrayLikeOrIterable.length; +>x : Symbol(x, Decl(typeGuardNarrowByMutableUntypedField.ts, 3, 7)) +>arrayLikeOrIterable.length : Symbol(ArrayLike.length, Decl(lib.es5.d.ts, --, --)) +>arrayLikeOrIterable : Symbol(arrayLikeOrIterable, Decl(typeGuardNarrowByMutableUntypedField.ts, 1, 13)) +>length : Symbol(ArrayLike.length, Decl(lib.es5.d.ts, --, --)) +} diff --git a/tests/baselines/reference/typeGuardNarrowByMutableUntypedField.types b/tests/baselines/reference/typeGuardNarrowByMutableUntypedField.types new file mode 100644 index 0000000000000..46231c8ff6b44 --- /dev/null +++ b/tests/baselines/reference/typeGuardNarrowByMutableUntypedField.types @@ -0,0 +1,21 @@ +=== tests/cases/compiler/typeGuardNarrowByMutableUntypedField.ts === +declare function hasOwnProperty

(target: {}, property: P): target is { [K in P]: unknown }; +>hasOwnProperty :

(target: {}, property: P) => target is { [K in P]: unknown; } +>target : {} +>property : P + +declare const arrayLikeOrIterable: ArrayLike | Iterable; +>arrayLikeOrIterable : ArrayLike | Iterable + +if (hasOwnProperty(arrayLikeOrIterable, 'length')) { +>hasOwnProperty(arrayLikeOrIterable, 'length') : boolean +>hasOwnProperty :

(target: {}, property: P) => target is { [K in P]: unknown; } +>arrayLikeOrIterable : ArrayLike | Iterable +>'length' : "length" + + let x: number = arrayLikeOrIterable.length; +>x : number +>arrayLikeOrIterable.length : number +>arrayLikeOrIterable : ArrayLike +>length : number +} diff --git a/tests/baselines/reference/typeGuardNarrowByUntypedField.js b/tests/baselines/reference/typeGuardNarrowByUntypedField.js new file mode 100644 index 0000000000000..8c2a90c334782 --- /dev/null +++ b/tests/baselines/reference/typeGuardNarrowByUntypedField.js @@ -0,0 +1,11 @@ +//// [typeGuardNarrowByUntypedField.ts] +declare function hasOwnProperty

(target: {}, property: P): target is { readonly [K in P]: unknown }; +declare const arrayLikeOrIterable: ArrayLike | Iterable; +if (hasOwnProperty(arrayLikeOrIterable, 'length')) { + let x: number = arrayLikeOrIterable.length; +} + +//// [typeGuardNarrowByUntypedField.js] +if (hasOwnProperty(arrayLikeOrIterable, 'length')) { + var x = arrayLikeOrIterable.length; +} diff --git a/tests/baselines/reference/typeGuardNarrowByUntypedField.symbols b/tests/baselines/reference/typeGuardNarrowByUntypedField.symbols new file mode 100644 index 0000000000000..0bf7a8b6b2546 --- /dev/null +++ b/tests/baselines/reference/typeGuardNarrowByUntypedField.symbols @@ -0,0 +1,27 @@ +=== tests/cases/compiler/typeGuardNarrowByUntypedField.ts === +declare function hasOwnProperty

(target: {}, property: P): target is { readonly [K in P]: unknown }; +>hasOwnProperty : Symbol(hasOwnProperty, Decl(typeGuardNarrowByUntypedField.ts, 0, 0)) +>P : Symbol(P, Decl(typeGuardNarrowByUntypedField.ts, 0, 32)) +>PropertyKey : Symbol(PropertyKey, Decl(lib.es5.d.ts, --, --)) +>target : Symbol(target, Decl(typeGuardNarrowByUntypedField.ts, 0, 55)) +>property : Symbol(property, Decl(typeGuardNarrowByUntypedField.ts, 0, 66)) +>P : Symbol(P, Decl(typeGuardNarrowByUntypedField.ts, 0, 32)) +>target : Symbol(target, Decl(typeGuardNarrowByUntypedField.ts, 0, 55)) +>K : Symbol(K, Decl(typeGuardNarrowByUntypedField.ts, 0, 103)) +>P : Symbol(P, Decl(typeGuardNarrowByUntypedField.ts, 0, 32)) + +declare const arrayLikeOrIterable: ArrayLike | Iterable; +>arrayLikeOrIterable : Symbol(arrayLikeOrIterable, Decl(typeGuardNarrowByUntypedField.ts, 1, 13)) +>ArrayLike : Symbol(ArrayLike, Decl(lib.es5.d.ts, --, --)) +>Iterable : Symbol(Iterable, Decl(lib.es2015.iterable.d.ts, --, --)) + +if (hasOwnProperty(arrayLikeOrIterable, 'length')) { +>hasOwnProperty : Symbol(hasOwnProperty, Decl(typeGuardNarrowByUntypedField.ts, 0, 0)) +>arrayLikeOrIterable : Symbol(arrayLikeOrIterable, Decl(typeGuardNarrowByUntypedField.ts, 1, 13)) + + let x: number = arrayLikeOrIterable.length; +>x : Symbol(x, Decl(typeGuardNarrowByUntypedField.ts, 3, 7)) +>arrayLikeOrIterable.length : Symbol(ArrayLike.length, Decl(lib.es5.d.ts, --, --)) +>arrayLikeOrIterable : Symbol(arrayLikeOrIterable, Decl(typeGuardNarrowByUntypedField.ts, 1, 13)) +>length : Symbol(ArrayLike.length, Decl(lib.es5.d.ts, --, --)) +} diff --git a/tests/baselines/reference/typeGuardNarrowByUntypedField.types b/tests/baselines/reference/typeGuardNarrowByUntypedField.types new file mode 100644 index 0000000000000..f44fea6b0f2d2 --- /dev/null +++ b/tests/baselines/reference/typeGuardNarrowByUntypedField.types @@ -0,0 +1,21 @@ +=== tests/cases/compiler/typeGuardNarrowByUntypedField.ts === +declare function hasOwnProperty

(target: {}, property: P): target is { readonly [K in P]: unknown }; +>hasOwnProperty :

(target: {}, property: P) => target is { readonly [K in P]: unknown; } +>target : {} +>property : P + +declare const arrayLikeOrIterable: ArrayLike | Iterable; +>arrayLikeOrIterable : ArrayLike | Iterable + +if (hasOwnProperty(arrayLikeOrIterable, 'length')) { +>hasOwnProperty(arrayLikeOrIterable, 'length') : boolean +>hasOwnProperty :

(target: {}, property: P) => target is { readonly [K in P]: unknown; } +>arrayLikeOrIterable : ArrayLike | Iterable +>'length' : "length" + + let x: number = arrayLikeOrIterable.length; +>x : number +>arrayLikeOrIterable.length : number +>arrayLikeOrIterable : ArrayLike +>length : number +} diff --git a/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty.js b/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty1.js similarity index 95% rename from tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty.js rename to tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty1.js index e951538563807..47616919e1c88 100644 --- a/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty.js +++ b/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty1.js @@ -1,4 +1,4 @@ -//// [typeGuardNarrowsIndexedAccessOfKnownProperty.ts] +//// [typeGuardNarrowsIndexedAccessOfKnownProperty1.ts] interface Square { ["dash-ok"]: "square"; ["square-size"]: number; @@ -80,7 +80,7 @@ export function g(pair: [number, string?]): string { } -//// [typeGuardNarrowsIndexedAccessOfKnownProperty.js] +//// [typeGuardNarrowsIndexedAccessOfKnownProperty1.js] "use strict"; exports.__esModule = true; exports.g = void 0; diff --git a/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty.symbols b/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty1.symbols similarity index 73% rename from tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty.symbols rename to tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty1.symbols index 3a8e434aa3c80..e60a512040069 100644 --- a/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty.symbols +++ b/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty1.symbols @@ -1,254 +1,254 @@ -=== tests/cases/compiler/typeGuardNarrowsIndexedAccessOfKnownProperty.ts === +=== tests/cases/compiler/typeGuardNarrowsIndexedAccessOfKnownProperty1.ts === interface Square { ->Square : Symbol(Square, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 0, 0)) +>Square : Symbol(Square, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 0, 0)) ["dash-ok"]: "square"; ->["dash-ok"] : Symbol(Square["dash-ok"], Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 0, 18)) ->"dash-ok" : Symbol(Square["dash-ok"], Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 0, 18)) +>["dash-ok"] : Symbol(Square["dash-ok"], Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 0, 18)) +>"dash-ok" : Symbol(Square["dash-ok"], Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 0, 18)) ["square-size"]: number; ->["square-size"] : Symbol(Square["square-size"], Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 1, 26)) ->"square-size" : Symbol(Square["square-size"], Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 1, 26)) +>["square-size"] : Symbol(Square["square-size"], Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 1, 26)) +>"square-size" : Symbol(Square["square-size"], Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 1, 26)) } interface Rectangle { ->Rectangle : Symbol(Rectangle, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 3, 1)) +>Rectangle : Symbol(Rectangle, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 3, 1)) ["dash-ok"]: "rectangle"; ->["dash-ok"] : Symbol(Rectangle["dash-ok"], Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 4, 22)) ->"dash-ok" : Symbol(Rectangle["dash-ok"], Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 4, 22)) +>["dash-ok"] : Symbol(Rectangle["dash-ok"], Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 4, 22)) +>"dash-ok" : Symbol(Rectangle["dash-ok"], Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 4, 22)) width: number; ->width : Symbol(Rectangle.width, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 5, 29)) +>width : Symbol(Rectangle.width, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 5, 29)) height: number; ->height : Symbol(Rectangle.height, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 6, 18)) +>height : Symbol(Rectangle.height, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 6, 18)) } interface Circle { ->Circle : Symbol(Circle, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 8, 1)) +>Circle : Symbol(Circle, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 8, 1)) ["dash-ok"]: "circle"; ->["dash-ok"] : Symbol(Circle["dash-ok"], Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 9, 19)) ->"dash-ok" : Symbol(Circle["dash-ok"], Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 9, 19)) +>["dash-ok"] : Symbol(Circle["dash-ok"], Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 9, 19)) +>"dash-ok" : Symbol(Circle["dash-ok"], Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 9, 19)) radius: number; ->radius : Symbol(Circle.radius, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 10, 26)) +>radius : Symbol(Circle.radius, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 10, 26)) } type Shape = Square | Rectangle | Circle; ->Shape : Symbol(Shape, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 12, 1)) ->Square : Symbol(Square, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 0, 0)) ->Rectangle : Symbol(Rectangle, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 3, 1)) ->Circle : Symbol(Circle, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 8, 1)) +>Shape : Symbol(Shape, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 12, 1)) +>Square : Symbol(Square, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 0, 0)) +>Rectangle : Symbol(Rectangle, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 3, 1)) +>Circle : Symbol(Circle, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 8, 1)) interface Subshape { ->Subshape : Symbol(Subshape, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 13, 42)) +>Subshape : Symbol(Subshape, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 13, 42)) "0": { ->"0" : Symbol(Subshape["0"], Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 14, 20)) +>"0" : Symbol(Subshape["0"], Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 14, 20)) sub: { ->sub : Symbol(sub, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 15, 10)) +>sub : Symbol(sub, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 15, 10)) under: { ->under : Symbol(under, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 16, 14)) +>under : Symbol(under, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 16, 14)) shape: Shape; ->shape : Symbol(shape, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 17, 20)) ->Shape : Symbol(Shape, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 12, 1)) +>shape : Symbol(shape, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 17, 20)) +>Shape : Symbol(Shape, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 12, 1)) } } } } function area(s: Shape): number { ->area : Symbol(area, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 22, 1)) ->s : Symbol(s, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 23, 14)) ->Shape : Symbol(Shape, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 12, 1)) +>area : Symbol(area, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 22, 1)) +>s : Symbol(s, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 23, 14)) +>Shape : Symbol(Shape, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 12, 1)) switch(s['dash-ok']) { ->s : Symbol(s, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 23, 14)) ->'dash-ok' : Symbol(["dash-ok"], Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 0, 18), Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 4, 22), Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 9, 19)) +>s : Symbol(s, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 23, 14)) +>'dash-ok' : Symbol(["dash-ok"], Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 0, 18), Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 4, 22), Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 9, 19)) case "square": return s['square-size'] * s['square-size']; ->s : Symbol(s, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 23, 14)) ->'square-size' : Symbol(Square["square-size"], Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 1, 26)) ->s : Symbol(s, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 23, 14)) ->'square-size' : Symbol(Square["square-size"], Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 1, 26)) +>s : Symbol(s, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 23, 14)) +>'square-size' : Symbol(Square["square-size"], Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 1, 26)) +>s : Symbol(s, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 23, 14)) +>'square-size' : Symbol(Square["square-size"], Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 1, 26)) case "rectangle": return s.width * s['height']; ->s.width : Symbol(Rectangle.width, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 5, 29)) ->s : Symbol(s, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 23, 14)) ->width : Symbol(Rectangle.width, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 5, 29)) ->s : Symbol(s, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 23, 14)) ->'height' : Symbol(Rectangle.height, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 6, 18)) +>s.width : Symbol(Rectangle.width, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 5, 29)) +>s : Symbol(s, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 23, 14)) +>width : Symbol(Rectangle.width, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 5, 29)) +>s : Symbol(s, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 23, 14)) +>'height' : Symbol(Rectangle.height, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 6, 18)) case "circle": return Math.PI * s['radius'] * s.radius; >Math.PI : Symbol(Math.PI, Decl(lib.es5.d.ts, --, --)) >Math : Symbol(Math, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) >PI : Symbol(Math.PI, Decl(lib.es5.d.ts, --, --)) ->s : Symbol(s, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 23, 14)) ->'radius' : Symbol(Circle.radius, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 10, 26)) ->s.radius : Symbol(Circle.radius, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 10, 26)) ->s : Symbol(s, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 23, 14)) ->radius : Symbol(Circle.radius, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 10, 26)) +>s : Symbol(s, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 23, 14)) +>'radius' : Symbol(Circle.radius, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 10, 26)) +>s.radius : Symbol(Circle.radius, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 10, 26)) +>s : Symbol(s, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 23, 14)) +>radius : Symbol(Circle.radius, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 10, 26)) } } function subarea(s: Subshape): number { ->subarea : Symbol(subarea, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 29, 1)) ->s : Symbol(s, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 30, 17)) ->Subshape : Symbol(Subshape, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 13, 42)) +>subarea : Symbol(subarea, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 29, 1)) +>s : Symbol(s, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 30, 17)) +>Subshape : Symbol(Subshape, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 13, 42)) switch(s[0]["sub"].under["shape"]["dash-ok"]) { ->s[0]["sub"].under : Symbol(under, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 16, 14)) ->s : Symbol(s, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 30, 17)) ->0 : Symbol(Subshape["0"], Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 14, 20)) ->"sub" : Symbol(sub, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 15, 10)) ->under : Symbol(under, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 16, 14)) ->"shape" : Symbol(shape, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 17, 20)) ->"dash-ok" : Symbol(["dash-ok"], Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 0, 18), Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 4, 22), Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 9, 19)) +>s[0]["sub"].under : Symbol(under, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 16, 14)) +>s : Symbol(s, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 30, 17)) +>0 : Symbol(Subshape["0"], Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 14, 20)) +>"sub" : Symbol(sub, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 15, 10)) +>under : Symbol(under, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 16, 14)) +>"shape" : Symbol(shape, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 17, 20)) +>"dash-ok" : Symbol(["dash-ok"], Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 0, 18), Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 4, 22), Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 9, 19)) case "square": return s[0].sub.under.shape["square-size"] * s[0].sub.under.shape["square-size"]; ->s[0].sub.under.shape : Symbol(shape, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 17, 20)) ->s[0].sub.under : Symbol(under, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 16, 14)) ->s[0].sub : Symbol(sub, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 15, 10)) ->s : Symbol(s, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 30, 17)) ->0 : Symbol(Subshape["0"], Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 14, 20)) ->sub : Symbol(sub, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 15, 10)) ->under : Symbol(under, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 16, 14)) ->shape : Symbol(shape, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 17, 20)) ->"square-size" : Symbol(Square["square-size"], Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 1, 26)) ->s[0].sub.under.shape : Symbol(shape, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 17, 20)) ->s[0].sub.under : Symbol(under, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 16, 14)) ->s[0].sub : Symbol(sub, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 15, 10)) ->s : Symbol(s, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 30, 17)) ->0 : Symbol(Subshape["0"], Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 14, 20)) ->sub : Symbol(sub, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 15, 10)) ->under : Symbol(under, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 16, 14)) ->shape : Symbol(shape, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 17, 20)) ->"square-size" : Symbol(Square["square-size"], Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 1, 26)) +>s[0].sub.under.shape : Symbol(shape, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 17, 20)) +>s[0].sub.under : Symbol(under, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 16, 14)) +>s[0].sub : Symbol(sub, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 15, 10)) +>s : Symbol(s, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 30, 17)) +>0 : Symbol(Subshape["0"], Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 14, 20)) +>sub : Symbol(sub, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 15, 10)) +>under : Symbol(under, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 16, 14)) +>shape : Symbol(shape, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 17, 20)) +>"square-size" : Symbol(Square["square-size"], Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 1, 26)) +>s[0].sub.under.shape : Symbol(shape, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 17, 20)) +>s[0].sub.under : Symbol(under, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 16, 14)) +>s[0].sub : Symbol(sub, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 15, 10)) +>s : Symbol(s, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 30, 17)) +>0 : Symbol(Subshape["0"], Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 14, 20)) +>sub : Symbol(sub, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 15, 10)) +>under : Symbol(under, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 16, 14)) +>shape : Symbol(shape, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 17, 20)) +>"square-size" : Symbol(Square["square-size"], Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 1, 26)) case "rectangle": return s[0]["sub"]["under"]["shape"]["width"] * s[0]["sub"]["under"]["shape"].height; ->s : Symbol(s, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 30, 17)) ->0 : Symbol(Subshape["0"], Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 14, 20)) ->"sub" : Symbol(sub, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 15, 10)) ->"under" : Symbol(under, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 16, 14)) ->"shape" : Symbol(shape, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 17, 20)) ->"width" : Symbol(Rectangle.width, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 5, 29)) ->s[0]["sub"]["under"]["shape"].height : Symbol(Rectangle.height, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 6, 18)) ->s : Symbol(s, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 30, 17)) ->0 : Symbol(Subshape["0"], Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 14, 20)) ->"sub" : Symbol(sub, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 15, 10)) ->"under" : Symbol(under, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 16, 14)) ->"shape" : Symbol(shape, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 17, 20)) ->height : Symbol(Rectangle.height, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 6, 18)) +>s : Symbol(s, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 30, 17)) +>0 : Symbol(Subshape["0"], Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 14, 20)) +>"sub" : Symbol(sub, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 15, 10)) +>"under" : Symbol(under, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 16, 14)) +>"shape" : Symbol(shape, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 17, 20)) +>"width" : Symbol(Rectangle.width, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 5, 29)) +>s[0]["sub"]["under"]["shape"].height : Symbol(Rectangle.height, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 6, 18)) +>s : Symbol(s, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 30, 17)) +>0 : Symbol(Subshape["0"], Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 14, 20)) +>"sub" : Symbol(sub, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 15, 10)) +>"under" : Symbol(under, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 16, 14)) +>"shape" : Symbol(shape, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 17, 20)) +>height : Symbol(Rectangle.height, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 6, 18)) case "circle": return Math.PI * s[0].sub.under["shape"].radius * s[0]["sub"].under.shape["radius"]; >Math.PI : Symbol(Math.PI, Decl(lib.es5.d.ts, --, --)) >Math : Symbol(Math, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) >PI : Symbol(Math.PI, Decl(lib.es5.d.ts, --, --)) ->s[0].sub.under["shape"].radius : Symbol(Circle.radius, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 10, 26)) ->s[0].sub.under : Symbol(under, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 16, 14)) ->s[0].sub : Symbol(sub, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 15, 10)) ->s : Symbol(s, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 30, 17)) ->0 : Symbol(Subshape["0"], Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 14, 20)) ->sub : Symbol(sub, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 15, 10)) ->under : Symbol(under, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 16, 14)) ->"shape" : Symbol(shape, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 17, 20)) ->radius : Symbol(Circle.radius, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 10, 26)) ->s[0]["sub"].under.shape : Symbol(shape, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 17, 20)) ->s[0]["sub"].under : Symbol(under, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 16, 14)) ->s : Symbol(s, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 30, 17)) ->0 : Symbol(Subshape["0"], Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 14, 20)) ->"sub" : Symbol(sub, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 15, 10)) ->under : Symbol(under, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 16, 14)) ->shape : Symbol(shape, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 17, 20)) ->"radius" : Symbol(Circle.radius, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 10, 26)) +>s[0].sub.under["shape"].radius : Symbol(Circle.radius, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 10, 26)) +>s[0].sub.under : Symbol(under, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 16, 14)) +>s[0].sub : Symbol(sub, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 15, 10)) +>s : Symbol(s, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 30, 17)) +>0 : Symbol(Subshape["0"], Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 14, 20)) +>sub : Symbol(sub, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 15, 10)) +>under : Symbol(under, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 16, 14)) +>"shape" : Symbol(shape, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 17, 20)) +>radius : Symbol(Circle.radius, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 10, 26)) +>s[0]["sub"].under.shape : Symbol(shape, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 17, 20)) +>s[0]["sub"].under : Symbol(under, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 16, 14)) +>s : Symbol(s, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 30, 17)) +>0 : Symbol(Subshape["0"], Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 14, 20)) +>"sub" : Symbol(sub, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 15, 10)) +>under : Symbol(under, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 16, 14)) +>shape : Symbol(shape, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 17, 20)) +>"radius" : Symbol(Circle.radius, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 10, 26)) } } interface X { ->X : Symbol(X, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 36, 1)) +>X : Symbol(X, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 36, 1)) 0: "xx", ->0 : Symbol(X[0], Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 38, 13)) +>0 : Symbol(X[0], Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 38, 13)) 1: number ->1 : Symbol(X[1], Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 39, 12)) +>1 : Symbol(X[1], Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 39, 12)) } interface Y { ->Y : Symbol(Y, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 41, 1)) +>Y : Symbol(Y, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 41, 1)) 0: "yy", ->0 : Symbol(Y[0], Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 43, 13)) +>0 : Symbol(Y[0], Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 43, 13)) 1: string ->1 : Symbol(Y[1], Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 44, 12)) +>1 : Symbol(Y[1], Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 44, 12)) } type A = ["aa", number]; ->A : Symbol(A, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 46, 1)) +>A : Symbol(A, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 46, 1)) type B = ["bb", string]; ->B : Symbol(B, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 48, 24)) +>B : Symbol(B, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 48, 24)) type Z = X | Y; ->Z : Symbol(Z, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 49, 24)) ->X : Symbol(X, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 36, 1)) ->Y : Symbol(Y, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 41, 1)) +>Z : Symbol(Z, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 49, 24)) +>X : Symbol(X, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 36, 1)) +>Y : Symbol(Y, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 41, 1)) type C = A | B; ->C : Symbol(C, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 51, 15)) ->A : Symbol(A, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 46, 1)) ->B : Symbol(B, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 48, 24)) +>C : Symbol(C, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 51, 15)) +>A : Symbol(A, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 46, 1)) +>B : Symbol(B, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 48, 24)) function check(z: Z, c: C) { ->check : Symbol(check, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 53, 15)) ->z : Symbol(z, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 55, 15)) ->Z : Symbol(Z, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 49, 24)) ->c : Symbol(c, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 55, 20)) ->C : Symbol(C, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 51, 15)) +>check : Symbol(check, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 53, 15)) +>z : Symbol(z, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 55, 15)) +>Z : Symbol(Z, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 49, 24)) +>c : Symbol(c, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 55, 20)) +>C : Symbol(C, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 51, 15)) z[0] // fine, typescript sees "xx" | "yy" ->z : Symbol(z, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 55, 15)) ->0 : Symbol(0, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 38, 13), Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 43, 13)) +>z : Symbol(z, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 55, 15)) +>0 : Symbol(0, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 38, 13), Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 43, 13)) switch (z[0]) { ->z : Symbol(z, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 55, 15)) ->0 : Symbol(0, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 38, 13), Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 43, 13)) +>z : Symbol(z, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 55, 15)) +>0 : Symbol(0, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 38, 13), Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 43, 13)) case "xx": var xx: number = z[1] // should be number ->xx : Symbol(xx, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 59, 15)) ->z : Symbol(z, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 55, 15)) ->1 : Symbol(X[1], Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 39, 12)) +>xx : Symbol(xx, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 59, 15)) +>z : Symbol(z, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 55, 15)) +>1 : Symbol(X[1], Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 39, 12)) break; case "yy": var yy: string = z[1] // should be string ->yy : Symbol(yy, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 62, 15)) ->z : Symbol(z, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 55, 15)) ->1 : Symbol(Y[1], Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 44, 12)) +>yy : Symbol(yy, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 62, 15)) +>z : Symbol(z, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 55, 15)) +>1 : Symbol(Y[1], Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 44, 12)) break; } c[0] // fine, typescript sees "xx" | "yy" ->c : Symbol(c, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 55, 20)) +>c : Symbol(c, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 55, 20)) >0 : Symbol(0) switch (c[0]) { ->c : Symbol(c, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 55, 20)) +>c : Symbol(c, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 55, 20)) >0 : Symbol(0) case "aa": var aa: number = c[1] // should be number ->aa : Symbol(aa, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 68, 15)) ->c : Symbol(c, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 55, 20)) +>aa : Symbol(aa, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 68, 15)) +>c : Symbol(c, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 55, 20)) >1 : Symbol(1) break; case "bb": var bb: string = c[1] // should be string ->bb : Symbol(bb, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 71, 15)) ->c : Symbol(c, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 55, 20)) +>bb : Symbol(bb, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 71, 15)) +>c : Symbol(c, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 55, 20)) >1 : Symbol(1) break; @@ -256,13 +256,13 @@ function check(z: Z, c: C) { } export function g(pair: [number, string?]): string { ->g : Symbol(g, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 74, 1)) ->pair : Symbol(pair, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 76, 18)) +>g : Symbol(g, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 74, 1)) +>pair : Symbol(pair, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 76, 18)) return pair[1] ? pair[1] : 'nope'; ->pair : Symbol(pair, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 76, 18)) +>pair : Symbol(pair, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 76, 18)) >1 : Symbol(1) ->pair : Symbol(pair, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty.ts, 76, 18)) +>pair : Symbol(pair, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty1.ts, 76, 18)) >1 : Symbol(1) } diff --git a/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty.types b/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty1.types similarity index 95% rename from tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty.types rename to tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty1.types index f88376b118fb0..ee4fc6c2ec9c8 100644 --- a/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty.types +++ b/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty1.types @@ -1,4 +1,4 @@ -=== tests/cases/compiler/typeGuardNarrowsIndexedAccessOfKnownProperty.ts === +=== tests/cases/compiler/typeGuardNarrowsIndexedAccessOfKnownProperty1.ts === interface Square { ["dash-ok"]: "square"; >["dash-ok"] : "square" diff --git a/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty2.js b/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty2.js new file mode 100644 index 0000000000000..1c539d280e132 --- /dev/null +++ b/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty2.js @@ -0,0 +1,18 @@ +//// [typeGuardNarrowsIndexedAccessOfKnownProperty2.ts] +const foo: { key?: number } = {}; +const key = 'key' as const; + +if (foo[key]) { + foo[key]; // number + foo.key; // number +} + + +//// [typeGuardNarrowsIndexedAccessOfKnownProperty2.js] +"use strict"; +var foo = {}; +var key = 'key'; +if (foo[key]) { + foo[key]; // number + foo.key; // number +} diff --git a/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty2.symbols b/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty2.symbols new file mode 100644 index 0000000000000..b0ac52f071476 --- /dev/null +++ b/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty2.symbols @@ -0,0 +1,23 @@ +=== tests/cases/compiler/typeGuardNarrowsIndexedAccessOfKnownProperty2.ts === +const foo: { key?: number } = {}; +>foo : Symbol(foo, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty2.ts, 0, 5)) +>key : Symbol(key, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty2.ts, 0, 12)) + +const key = 'key' as const; +>key : Symbol(key, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty2.ts, 1, 5)) +>const : Symbol(const) + +if (foo[key]) { +>foo : Symbol(foo, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty2.ts, 0, 5)) +>key : Symbol(key, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty2.ts, 1, 5)) + + foo[key]; // number +>foo : Symbol(foo, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty2.ts, 0, 5)) +>key : Symbol(key, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty2.ts, 1, 5)) + + foo.key; // number +>foo.key : Symbol(key, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty2.ts, 0, 12)) +>foo : Symbol(foo, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty2.ts, 0, 5)) +>key : Symbol(key, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty2.ts, 0, 12)) +} + diff --git a/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty2.types b/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty2.types new file mode 100644 index 0000000000000..656540534e4f6 --- /dev/null +++ b/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty2.types @@ -0,0 +1,27 @@ +=== tests/cases/compiler/typeGuardNarrowsIndexedAccessOfKnownProperty2.ts === +const foo: { key?: number } = {}; +>foo : { key?: number | undefined; } +>key : number | undefined +>{} : {} + +const key = 'key' as const; +>key : "key" +>'key' as const : "key" +>'key' : "key" + +if (foo[key]) { +>foo[key] : number | undefined +>foo : { key?: number | undefined; } +>key : "key" + + foo[key]; // number +>foo[key] : number +>foo : { key?: number | undefined; } +>key : "key" + + foo.key; // number +>foo.key : number +>foo : { key?: number | undefined; } +>key : number +} + diff --git a/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty3.js b/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty3.js new file mode 100644 index 0000000000000..cae5cb742ab2e --- /dev/null +++ b/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty3.js @@ -0,0 +1,18 @@ +//// [typeGuardNarrowsIndexedAccessOfKnownProperty3.ts] +type Foo = (number | undefined)[] | undefined; + +const foo: Foo = [1, 2, 3]; +const index = 1; + +if (foo !== undefined && foo[index] !== undefined && foo[index] >= 0) { + foo[index] // number +} + + +//// [typeGuardNarrowsIndexedAccessOfKnownProperty3.js] +"use strict"; +var foo = [1, 2, 3]; +var index = 1; +if (foo !== undefined && foo[index] !== undefined && foo[index] >= 0) { + foo[index]; // number +} diff --git a/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty3.symbols b/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty3.symbols new file mode 100644 index 0000000000000..06506802bdf2a --- /dev/null +++ b/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty3.symbols @@ -0,0 +1,25 @@ +=== tests/cases/compiler/typeGuardNarrowsIndexedAccessOfKnownProperty3.ts === +type Foo = (number | undefined)[] | undefined; +>Foo : Symbol(Foo, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty3.ts, 0, 0)) + +const foo: Foo = [1, 2, 3]; +>foo : Symbol(foo, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty3.ts, 2, 5)) +>Foo : Symbol(Foo, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty3.ts, 0, 0)) + +const index = 1; +>index : Symbol(index, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty3.ts, 3, 5)) + +if (foo !== undefined && foo[index] !== undefined && foo[index] >= 0) { +>foo : Symbol(foo, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty3.ts, 2, 5)) +>undefined : Symbol(undefined) +>foo : Symbol(foo, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty3.ts, 2, 5)) +>index : Symbol(index, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty3.ts, 3, 5)) +>undefined : Symbol(undefined) +>foo : Symbol(foo, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty3.ts, 2, 5)) +>index : Symbol(index, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty3.ts, 3, 5)) + + foo[index] // number +>foo : Symbol(foo, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty3.ts, 2, 5)) +>index : Symbol(index, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty3.ts, 3, 5)) +} + diff --git a/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty3.types b/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty3.types new file mode 100644 index 0000000000000..b4c751d074398 --- /dev/null +++ b/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty3.types @@ -0,0 +1,38 @@ +=== tests/cases/compiler/typeGuardNarrowsIndexedAccessOfKnownProperty3.ts === +type Foo = (number | undefined)[] | undefined; +>Foo : Foo + +const foo: Foo = [1, 2, 3]; +>foo : Foo +>[1, 2, 3] : number[] +>1 : 1 +>2 : 2 +>3 : 3 + +const index = 1; +>index : 1 +>1 : 1 + +if (foo !== undefined && foo[index] !== undefined && foo[index] >= 0) { +>foo !== undefined && foo[index] !== undefined && foo[index] >= 0 : boolean +>foo !== undefined && foo[index] !== undefined : boolean +>foo !== undefined : boolean +>foo : (number | undefined)[] +>undefined : undefined +>foo[index] !== undefined : boolean +>foo[index] : number | undefined +>foo : (number | undefined)[] +>index : 1 +>undefined : undefined +>foo[index] >= 0 : boolean +>foo[index] : number +>foo : (number | undefined)[] +>index : 1 +>0 : 0 + + foo[index] // number +>foo[index] : number +>foo : (number | undefined)[] +>index : 1 +} + diff --git a/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty4.js b/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty4.js new file mode 100644 index 0000000000000..9214cf42de73b --- /dev/null +++ b/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty4.js @@ -0,0 +1,28 @@ +//// [typeGuardNarrowsIndexedAccessOfKnownProperty4.ts] +class Foo { + x: number | undefined; + + constructor() { + this.x = 5; + + this.x; // number + this['x']; // number + + const key = 'x'; + this[key]; // number + } +} + + +//// [typeGuardNarrowsIndexedAccessOfKnownProperty4.js] +"use strict"; +var Foo = /** @class */ (function () { + function Foo() { + this.x = 5; + this.x; // number + this['x']; // number + var key = 'x'; + this[key]; // number + } + return Foo; +}()); diff --git a/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty4.symbols b/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty4.symbols new file mode 100644 index 0000000000000..5bbfcf72179b4 --- /dev/null +++ b/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty4.symbols @@ -0,0 +1,31 @@ +=== tests/cases/compiler/typeGuardNarrowsIndexedAccessOfKnownProperty4.ts === +class Foo { +>Foo : Symbol(Foo, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty4.ts, 0, 0)) + + x: number | undefined; +>x : Symbol(Foo.x, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty4.ts, 0, 11)) + + constructor() { + this.x = 5; +>this.x : Symbol(Foo.x, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty4.ts, 0, 11)) +>this : Symbol(Foo, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty4.ts, 0, 0)) +>x : Symbol(Foo.x, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty4.ts, 0, 11)) + + this.x; // number +>this.x : Symbol(Foo.x, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty4.ts, 0, 11)) +>this : Symbol(Foo, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty4.ts, 0, 0)) +>x : Symbol(Foo.x, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty4.ts, 0, 11)) + + this['x']; // number +>this : Symbol(Foo, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty4.ts, 0, 0)) +>'x' : Symbol(Foo.x, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty4.ts, 0, 11)) + + const key = 'x'; +>key : Symbol(key, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty4.ts, 9, 13)) + + this[key]; // number +>this : Symbol(Foo, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty4.ts, 0, 0)) +>key : Symbol(key, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty4.ts, 9, 13)) + } +} + diff --git a/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty4.types b/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty4.types new file mode 100644 index 0000000000000..f7a96a1e72221 --- /dev/null +++ b/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty4.types @@ -0,0 +1,36 @@ +=== tests/cases/compiler/typeGuardNarrowsIndexedAccessOfKnownProperty4.ts === +class Foo { +>Foo : Foo + + x: number | undefined; +>x : number | undefined + + constructor() { + this.x = 5; +>this.x = 5 : 5 +>this.x : number | undefined +>this : this +>x : number | undefined +>5 : 5 + + this.x; // number +>this.x : number +>this : this +>x : number + + this['x']; // number +>this['x'] : number +>this : this +>'x' : "x" + + const key = 'x'; +>key : "x" +>'x' : "x" + + this[key]; // number +>this[key] : number +>this : this +>key : "x" + } +} + diff --git a/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty5.js b/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty5.js new file mode 100644 index 0000000000000..a055fb5bceb27 --- /dev/null +++ b/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty5.js @@ -0,0 +1,40 @@ +//// [typeGuardNarrowsIndexedAccessOfKnownProperty5.ts] +const a: { key?: { x?: number } } = {}; +const aIndex = "key"; +if (a[aIndex] && a[aIndex].x) { + a[aIndex].x // number +} + +const b: { key: { x?: number } } = { key: {} }; +const bIndex = "key"; +if (b[bIndex].x) { + b[bIndex].x // number +} + +interface Foo { + x: number | undefined; +} +const c: Foo[] = []; +const cIndex = 1; +if (c[cIndex].x) { + c[cIndex].x // number +} + + +//// [typeGuardNarrowsIndexedAccessOfKnownProperty5.js] +"use strict"; +var a = {}; +var aIndex = "key"; +if (a[aIndex] && a[aIndex].x) { + a[aIndex].x; // number +} +var b = { key: {} }; +var bIndex = "key"; +if (b[bIndex].x) { + b[bIndex].x; // number +} +var c = []; +var cIndex = 1; +if (c[cIndex].x) { + c[cIndex].x; // number +} diff --git a/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty5.symbols b/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty5.symbols new file mode 100644 index 0000000000000..fdaca0a4b2460 --- /dev/null +++ b/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty5.symbols @@ -0,0 +1,72 @@ +=== tests/cases/compiler/typeGuardNarrowsIndexedAccessOfKnownProperty5.ts === +const a: { key?: { x?: number } } = {}; +>a : Symbol(a, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty5.ts, 0, 5)) +>key : Symbol(key, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty5.ts, 0, 10)) +>x : Symbol(x, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty5.ts, 0, 18)) + +const aIndex = "key"; +>aIndex : Symbol(aIndex, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty5.ts, 1, 5)) + +if (a[aIndex] && a[aIndex].x) { +>a : Symbol(a, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty5.ts, 0, 5)) +>aIndex : Symbol(aIndex, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty5.ts, 1, 5)) +>a[aIndex].x : Symbol(x, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty5.ts, 0, 18)) +>a : Symbol(a, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty5.ts, 0, 5)) +>aIndex : Symbol(aIndex, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty5.ts, 1, 5)) +>x : Symbol(x, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty5.ts, 0, 18)) + + a[aIndex].x // number +>a[aIndex].x : Symbol(x, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty5.ts, 0, 18)) +>a : Symbol(a, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty5.ts, 0, 5)) +>aIndex : Symbol(aIndex, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty5.ts, 1, 5)) +>x : Symbol(x, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty5.ts, 0, 18)) +} + +const b: { key: { x?: number } } = { key: {} }; +>b : Symbol(b, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty5.ts, 6, 5)) +>key : Symbol(key, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty5.ts, 6, 10)) +>x : Symbol(x, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty5.ts, 6, 17)) +>key : Symbol(key, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty5.ts, 6, 36)) + +const bIndex = "key"; +>bIndex : Symbol(bIndex, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty5.ts, 7, 5)) + +if (b[bIndex].x) { +>b[bIndex].x : Symbol(x, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty5.ts, 6, 17)) +>b : Symbol(b, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty5.ts, 6, 5)) +>bIndex : Symbol(bIndex, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty5.ts, 7, 5)) +>x : Symbol(x, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty5.ts, 6, 17)) + + b[bIndex].x // number +>b[bIndex].x : Symbol(x, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty5.ts, 6, 17)) +>b : Symbol(b, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty5.ts, 6, 5)) +>bIndex : Symbol(bIndex, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty5.ts, 7, 5)) +>x : Symbol(x, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty5.ts, 6, 17)) +} + +interface Foo { +>Foo : Symbol(Foo, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty5.ts, 10, 1)) + + x: number | undefined; +>x : Symbol(Foo.x, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty5.ts, 12, 15)) +} +const c: Foo[] = []; +>c : Symbol(c, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty5.ts, 15, 5)) +>Foo : Symbol(Foo, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty5.ts, 10, 1)) + +const cIndex = 1; +>cIndex : Symbol(cIndex, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty5.ts, 16, 5)) + +if (c[cIndex].x) { +>c[cIndex].x : Symbol(Foo.x, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty5.ts, 12, 15)) +>c : Symbol(c, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty5.ts, 15, 5)) +>cIndex : Symbol(cIndex, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty5.ts, 16, 5)) +>x : Symbol(Foo.x, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty5.ts, 12, 15)) + + c[cIndex].x // number +>c[cIndex].x : Symbol(Foo.x, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty5.ts, 12, 15)) +>c : Symbol(c, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty5.ts, 15, 5)) +>cIndex : Symbol(cIndex, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty5.ts, 16, 5)) +>x : Symbol(Foo.x, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty5.ts, 12, 15)) +} + diff --git a/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty5.types b/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty5.types new file mode 100644 index 0000000000000..b202ee18f9173 --- /dev/null +++ b/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty5.types @@ -0,0 +1,84 @@ +=== tests/cases/compiler/typeGuardNarrowsIndexedAccessOfKnownProperty5.ts === +const a: { key?: { x?: number } } = {}; +>a : { key?: { x?: number | undefined; } | undefined; } +>key : { x?: number | undefined; } | undefined +>x : number | undefined +>{} : {} + +const aIndex = "key"; +>aIndex : "key" +>"key" : "key" + +if (a[aIndex] && a[aIndex].x) { +>a[aIndex] && a[aIndex].x : number | undefined +>a[aIndex] : { x?: number | undefined; } | undefined +>a : { key?: { x?: number | undefined; } | undefined; } +>aIndex : "key" +>a[aIndex].x : number | undefined +>a[aIndex] : { x?: number | undefined; } +>a : { key?: { x?: number | undefined; } | undefined; } +>aIndex : "key" +>x : number | undefined + + a[aIndex].x // number +>a[aIndex].x : number +>a[aIndex] : { x?: number | undefined; } +>a : { key?: { x?: number | undefined; } | undefined; } +>aIndex : "key" +>x : number +} + +const b: { key: { x?: number } } = { key: {} }; +>b : { key: { x?: number;}; } +>key : { x?: number | undefined; } +>x : number | undefined +>{ key: {} } : { key: {}; } +>key : {} +>{} : {} + +const bIndex = "key"; +>bIndex : "key" +>"key" : "key" + +if (b[bIndex].x) { +>b[bIndex].x : number | undefined +>b[bIndex] : { x?: number | undefined; } +>b : { key: { x?: number | undefined; }; } +>bIndex : "key" +>x : number | undefined + + b[bIndex].x // number +>b[bIndex].x : number +>b[bIndex] : { x?: number | undefined; } +>b : { key: { x?: number | undefined; }; } +>bIndex : "key" +>x : number +} + +interface Foo { + x: number | undefined; +>x : number | undefined +} +const c: Foo[] = []; +>c : Foo[] +>[] : never[] + +const cIndex = 1; +>cIndex : 1 +>1 : 1 + +if (c[cIndex].x) { +>c[cIndex].x : number | undefined +>c[cIndex] : Foo +>c : Foo[] +>cIndex : 1 +>x : number | undefined + + c[cIndex].x // number +>c[cIndex].x : number +>c[cIndex] : Foo +>c : Foo[] +>cIndex : 1 +>x : number +} + diff --git a/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty6.js b/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty6.js new file mode 100644 index 0000000000000..78f0608dc66c5 --- /dev/null +++ b/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty6.js @@ -0,0 +1,37 @@ +//// [typeGuardNarrowsIndexedAccessOfKnownProperty6.ts] +declare const aIndex: "key"; +const a: { key?: { x?: number } } = {}; +if (a[aIndex] && a[aIndex].x) { + a[aIndex].x // number +} + +declare const bIndex: "key"; +const b: { key: { x?: number } } = { key: {} }; +if (b[bIndex].x) { + b[bIndex].x // number +} + +declare const cIndex: 1; +interface Foo { + x: number | undefined; +} +const c: Foo[] = []; +if (c[cIndex].x) { + c[cIndex].x // number +} + + +//// [typeGuardNarrowsIndexedAccessOfKnownProperty6.js] +"use strict"; +var a = {}; +if (a[aIndex] && a[aIndex].x) { + a[aIndex].x; // number +} +var b = { key: {} }; +if (b[bIndex].x) { + b[bIndex].x; // number +} +var c = []; +if (c[cIndex].x) { + c[cIndex].x; // number +} diff --git a/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty6.symbols b/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty6.symbols new file mode 100644 index 0000000000000..2222768025ac1 --- /dev/null +++ b/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty6.symbols @@ -0,0 +1,72 @@ +=== tests/cases/compiler/typeGuardNarrowsIndexedAccessOfKnownProperty6.ts === +declare const aIndex: "key"; +>aIndex : Symbol(aIndex, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty6.ts, 0, 13)) + +const a: { key?: { x?: number } } = {}; +>a : Symbol(a, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty6.ts, 1, 5)) +>key : Symbol(key, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty6.ts, 1, 10)) +>x : Symbol(x, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty6.ts, 1, 18)) + +if (a[aIndex] && a[aIndex].x) { +>a : Symbol(a, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty6.ts, 1, 5)) +>aIndex : Symbol(aIndex, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty6.ts, 0, 13)) +>a[aIndex].x : Symbol(x, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty6.ts, 1, 18)) +>a : Symbol(a, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty6.ts, 1, 5)) +>aIndex : Symbol(aIndex, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty6.ts, 0, 13)) +>x : Symbol(x, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty6.ts, 1, 18)) + + a[aIndex].x // number +>a[aIndex].x : Symbol(x, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty6.ts, 1, 18)) +>a : Symbol(a, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty6.ts, 1, 5)) +>aIndex : Symbol(aIndex, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty6.ts, 0, 13)) +>x : Symbol(x, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty6.ts, 1, 18)) +} + +declare const bIndex: "key"; +>bIndex : Symbol(bIndex, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty6.ts, 6, 13)) + +const b: { key: { x?: number } } = { key: {} }; +>b : Symbol(b, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty6.ts, 7, 5)) +>key : Symbol(key, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty6.ts, 7, 10)) +>x : Symbol(x, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty6.ts, 7, 17)) +>key : Symbol(key, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty6.ts, 7, 36)) + +if (b[bIndex].x) { +>b[bIndex].x : Symbol(x, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty6.ts, 7, 17)) +>b : Symbol(b, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty6.ts, 7, 5)) +>bIndex : Symbol(bIndex, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty6.ts, 6, 13)) +>x : Symbol(x, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty6.ts, 7, 17)) + + b[bIndex].x // number +>b[bIndex].x : Symbol(x, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty6.ts, 7, 17)) +>b : Symbol(b, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty6.ts, 7, 5)) +>bIndex : Symbol(bIndex, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty6.ts, 6, 13)) +>x : Symbol(x, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty6.ts, 7, 17)) +} + +declare const cIndex: 1; +>cIndex : Symbol(cIndex, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty6.ts, 12, 13)) + +interface Foo { +>Foo : Symbol(Foo, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty6.ts, 12, 24)) + + x: number | undefined; +>x : Symbol(Foo.x, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty6.ts, 13, 15)) +} +const c: Foo[] = []; +>c : Symbol(c, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty6.ts, 16, 5)) +>Foo : Symbol(Foo, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty6.ts, 12, 24)) + +if (c[cIndex].x) { +>c[cIndex].x : Symbol(Foo.x, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty6.ts, 13, 15)) +>c : Symbol(c, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty6.ts, 16, 5)) +>cIndex : Symbol(cIndex, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty6.ts, 12, 13)) +>x : Symbol(Foo.x, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty6.ts, 13, 15)) + + c[cIndex].x // number +>c[cIndex].x : Symbol(Foo.x, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty6.ts, 13, 15)) +>c : Symbol(c, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty6.ts, 16, 5)) +>cIndex : Symbol(cIndex, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty6.ts, 12, 13)) +>x : Symbol(Foo.x, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty6.ts, 13, 15)) +} + diff --git a/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty6.types b/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty6.types new file mode 100644 index 0000000000000..cfb10e2bf2bfe --- /dev/null +++ b/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty6.types @@ -0,0 +1,81 @@ +=== tests/cases/compiler/typeGuardNarrowsIndexedAccessOfKnownProperty6.ts === +declare const aIndex: "key"; +>aIndex : "key" + +const a: { key?: { x?: number } } = {}; +>a : { key?: { x?: number | undefined; } | undefined; } +>key : { x?: number | undefined; } | undefined +>x : number | undefined +>{} : {} + +if (a[aIndex] && a[aIndex].x) { +>a[aIndex] && a[aIndex].x : number | undefined +>a[aIndex] : { x?: number | undefined; } | undefined +>a : { key?: { x?: number | undefined; } | undefined; } +>aIndex : "key" +>a[aIndex].x : number | undefined +>a[aIndex] : { x?: number | undefined; } +>a : { key?: { x?: number | undefined; } | undefined; } +>aIndex : "key" +>x : number | undefined + + a[aIndex].x // number +>a[aIndex].x : number +>a[aIndex] : { x?: number | undefined; } +>a : { key?: { x?: number | undefined; } | undefined; } +>aIndex : "key" +>x : number +} + +declare const bIndex: "key"; +>bIndex : "key" + +const b: { key: { x?: number } } = { key: {} }; +>b : { key: { x?: number;}; } +>key : { x?: number | undefined; } +>x : number | undefined +>{ key: {} } : { key: {}; } +>key : {} +>{} : {} + +if (b[bIndex].x) { +>b[bIndex].x : number | undefined +>b[bIndex] : { x?: number | undefined; } +>b : { key: { x?: number | undefined; }; } +>bIndex : "key" +>x : number | undefined + + b[bIndex].x // number +>b[bIndex].x : number +>b[bIndex] : { x?: number | undefined; } +>b : { key: { x?: number | undefined; }; } +>bIndex : "key" +>x : number +} + +declare const cIndex: 1; +>cIndex : 1 + +interface Foo { + x: number | undefined; +>x : number | undefined +} +const c: Foo[] = []; +>c : Foo[] +>[] : never[] + +if (c[cIndex].x) { +>c[cIndex].x : number | undefined +>c[cIndex] : Foo +>c : Foo[] +>cIndex : 1 +>x : number | undefined + + c[cIndex].x // number +>c[cIndex].x : number +>c[cIndex] : Foo +>c : Foo[] +>cIndex : 1 +>x : number +} + diff --git a/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty7.js b/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty7.js new file mode 100644 index 0000000000000..1564b26d824c9 --- /dev/null +++ b/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty7.js @@ -0,0 +1,25 @@ +//// [typeGuardNarrowsIndexedAccessOfKnownProperty7.ts] +export namespace Foo { + export const key = Symbol(); +} + +export class C { + [Foo.key]: string; + + constructor() { + this[Foo.key] = "hello"; + } +} + + +//// [typeGuardNarrowsIndexedAccessOfKnownProperty7.js] +export var Foo; +(function (Foo) { + Foo.key = Symbol(); +})(Foo || (Foo = {})); +export class C { + [Foo.key]; + constructor() { + this[Foo.key] = "hello"; + } +} diff --git a/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty7.symbols b/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty7.symbols new file mode 100644 index 0000000000000..80a7066f7d0c2 --- /dev/null +++ b/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty7.symbols @@ -0,0 +1,27 @@ +=== tests/cases/compiler/typeGuardNarrowsIndexedAccessOfKnownProperty7.ts === +export namespace Foo { +>Foo : Symbol(Foo, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty7.ts, 0, 0)) + + export const key = Symbol(); +>key : Symbol(key, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty7.ts, 1, 16)) +>Symbol : Symbol(Symbol, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.symbol.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2019.symbol.d.ts, --, --)) +} + +export class C { +>C : Symbol(C, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty7.ts, 2, 1)) + + [Foo.key]: string; +>[Foo.key] : Symbol(C[Foo.key], Decl(typeGuardNarrowsIndexedAccessOfKnownProperty7.ts, 4, 16)) +>Foo.key : Symbol(Foo.key, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty7.ts, 1, 16)) +>Foo : Symbol(Foo, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty7.ts, 0, 0)) +>key : Symbol(Foo.key, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty7.ts, 1, 16)) + + constructor() { + this[Foo.key] = "hello"; +>this : Symbol(C, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty7.ts, 2, 1)) +>Foo.key : Symbol(Foo.key, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty7.ts, 1, 16)) +>Foo : Symbol(Foo, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty7.ts, 0, 0)) +>key : Symbol(Foo.key, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty7.ts, 1, 16)) + } +} + diff --git a/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty7.types b/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty7.types new file mode 100644 index 0000000000000..ebcec854ca005 --- /dev/null +++ b/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty7.types @@ -0,0 +1,31 @@ +=== tests/cases/compiler/typeGuardNarrowsIndexedAccessOfKnownProperty7.ts === +export namespace Foo { +>Foo : typeof Foo + + export const key = Symbol(); +>key : unique symbol +>Symbol() : unique symbol +>Symbol : SymbolConstructor +} + +export class C { +>C : C + + [Foo.key]: string; +>[Foo.key] : string +>Foo.key : unique symbol +>Foo : typeof Foo +>key : unique symbol + + constructor() { + this[Foo.key] = "hello"; +>this[Foo.key] = "hello" : "hello" +>this[Foo.key] : string +>this : this +>Foo.key : unique symbol +>Foo : typeof Foo +>key : unique symbol +>"hello" : "hello" + } +} + diff --git a/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty8.js b/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty8.js new file mode 100644 index 0000000000000..a057f3abeb5f3 --- /dev/null +++ b/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty8.js @@ -0,0 +1,26 @@ +//// [tests/cases/compiler/typeGuardNarrowsIndexedAccessOfKnownProperty8.ts] //// + +//// [a.ts] +export const key = "a"; + +//// [b.ts] +import * as a from "./a"; +export class C { + [a.key]: string; + + constructor() { + this[a.key] = "foo"; + } +} + + +//// [a.js] +export const key = "a"; +//// [b.js] +import * as a from "./a"; +export class C { + [a.key]; + constructor() { + this[a.key] = "foo"; + } +} diff --git a/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty8.symbols b/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty8.symbols new file mode 100644 index 0000000000000..4c4c9bfabe302 --- /dev/null +++ b/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty8.symbols @@ -0,0 +1,26 @@ +=== tests/cases/compiler/a.ts === +export const key = "a"; +>key : Symbol(key, Decl(a.ts, 0, 12)) + +=== tests/cases/compiler/b.ts === +import * as a from "./a"; +>a : Symbol(a, Decl(b.ts, 0, 6)) + +export class C { +>C : Symbol(C, Decl(b.ts, 0, 25)) + + [a.key]: string; +>[a.key] : Symbol(C[a.key], Decl(b.ts, 1, 16)) +>a.key : Symbol(a.key, Decl(a.ts, 0, 12)) +>a : Symbol(a, Decl(b.ts, 0, 6)) +>key : Symbol(a.key, Decl(a.ts, 0, 12)) + + constructor() { + this[a.key] = "foo"; +>this : Symbol(C, Decl(b.ts, 0, 25)) +>a.key : Symbol(a.key, Decl(a.ts, 0, 12)) +>a : Symbol(a, Decl(b.ts, 0, 6)) +>key : Symbol(a.key, Decl(a.ts, 0, 12)) + } +} + diff --git a/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty8.types b/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty8.types new file mode 100644 index 0000000000000..52623a71be4d6 --- /dev/null +++ b/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty8.types @@ -0,0 +1,30 @@ +=== tests/cases/compiler/a.ts === +export const key = "a"; +>key : "a" +>"a" : "a" + +=== tests/cases/compiler/b.ts === +import * as a from "./a"; +>a : typeof a + +export class C { +>C : C + + [a.key]: string; +>[a.key] : string +>a.key : "a" +>a : typeof a +>key : "a" + + constructor() { + this[a.key] = "foo"; +>this[a.key] = "foo" : "foo" +>this[a.key] : string +>this : this +>a.key : "a" +>a : typeof a +>key : "a" +>"foo" : "foo" + } +} + diff --git a/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty9.errors.txt b/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty9.errors.txt new file mode 100644 index 0000000000000..97a29b2bccb2d --- /dev/null +++ b/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty9.errors.txt @@ -0,0 +1,21 @@ +tests/cases/compiler/typeGuardNarrowsIndexedAccessOfKnownProperty9.ts(5,13): error TS6133: 'c' is declared but its value is never read. +tests/cases/compiler/typeGuardNarrowsIndexedAccessOfKnownProperty9.ts(6,13): error TS6133: 'd' is declared but its value is never read. + + +==== tests/cases/compiler/typeGuardNarrowsIndexedAccessOfKnownProperty9.ts (2 errors) ==== + class C1 { + private a = "a"; // ok + private b = "b"; // ok + + private c = "c"; // error unused prop + ~ +!!! error TS6133: 'c' is declared but its value is never read. + private d = "d"; // error unused prop + ~ +!!! error TS6133: 'd' is declared but its value is never read. + + getValue(key: "a" | "b") { + return this[key]; + } + } + \ No newline at end of file diff --git a/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty9.js b/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty9.js new file mode 100644 index 0000000000000..67ecc766e4dcd --- /dev/null +++ b/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty9.js @@ -0,0 +1,25 @@ +//// [typeGuardNarrowsIndexedAccessOfKnownProperty9.ts] +class C1 { + private a = "a"; // ok + private b = "b"; // ok + + private c = "c"; // error unused prop + private d = "d"; // error unused prop + + getValue(key: "a" | "b") { + return this[key]; + } +} + + +//// [typeGuardNarrowsIndexedAccessOfKnownProperty9.js] +"use strict"; +class C1 { + a = "a"; // ok + b = "b"; // ok + c = "c"; // error unused prop + d = "d"; // error unused prop + getValue(key) { + return this[key]; + } +} diff --git a/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty9.symbols b/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty9.symbols new file mode 100644 index 0000000000000..d756e5ef8cad8 --- /dev/null +++ b/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty9.symbols @@ -0,0 +1,26 @@ +=== tests/cases/compiler/typeGuardNarrowsIndexedAccessOfKnownProperty9.ts === +class C1 { +>C1 : Symbol(C1, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty9.ts, 0, 0)) + + private a = "a"; // ok +>a : Symbol(C1.a, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty9.ts, 0, 10)) + + private b = "b"; // ok +>b : Symbol(C1.b, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty9.ts, 1, 20)) + + private c = "c"; // error unused prop +>c : Symbol(C1.c, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty9.ts, 2, 20)) + + private d = "d"; // error unused prop +>d : Symbol(C1.d, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty9.ts, 4, 20)) + + getValue(key: "a" | "b") { +>getValue : Symbol(C1.getValue, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty9.ts, 5, 20)) +>key : Symbol(key, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty9.ts, 7, 13)) + + return this[key]; +>this : Symbol(C1, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty9.ts, 0, 0)) +>key : Symbol(key, Decl(typeGuardNarrowsIndexedAccessOfKnownProperty9.ts, 7, 13)) + } +} + diff --git a/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty9.types b/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty9.types new file mode 100644 index 0000000000000..525914841f55f --- /dev/null +++ b/tests/baselines/reference/typeGuardNarrowsIndexedAccessOfKnownProperty9.types @@ -0,0 +1,31 @@ +=== tests/cases/compiler/typeGuardNarrowsIndexedAccessOfKnownProperty9.ts === +class C1 { +>C1 : C1 + + private a = "a"; // ok +>a : string +>"a" : "a" + + private b = "b"; // ok +>b : string +>"b" : "b" + + private c = "c"; // error unused prop +>c : string +>"c" : "c" + + private d = "d"; // error unused prop +>d : string +>"d" : "d" + + getValue(key: "a" | "b") { +>getValue : (key: "a" | "b") => string +>key : "a" | "b" + + return this[key]; +>this[key] : string +>this : this +>key : "a" | "b" + } +} + diff --git a/tests/baselines/reference/typeOfThisInStaticMembers10(target=es2022).errors.txt b/tests/baselines/reference/typeOfThisInStaticMembers10(target=es2022).errors.txt new file mode 100644 index 0000000000000..be9735d6cd4ee --- /dev/null +++ b/tests/baselines/reference/typeOfThisInStaticMembers10(target=es2022).errors.txt @@ -0,0 +1,63 @@ +tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers10.ts(6,16): error TS2816: Cannot use 'this' in a static property initializer of a decorated class. +tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers10.ts(12,16): error TS2816: Cannot use 'this' in a static property initializer of a decorated class. +tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers10.ts(13,26): error TS2816: Cannot use 'this' in a static property initializer of a decorated class. +tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers10.ts(14,22): error TS2816: Cannot use 'this' in a static property initializer of a decorated class. + + +==== tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers10.ts (4 errors) ==== + declare const foo: any; + + @foo + class C { + static a = 1; + static b = this.a + 1; + ~~~~ +!!! error TS2816: Cannot use 'this' in a static property initializer of a decorated class. + } + + @foo + class D extends C { + static c = 2; + static d = this.c + 1; + ~~~~ +!!! error TS2816: Cannot use 'this' in a static property initializer of a decorated class. + static e = super.a + this.c + 1; + ~~~~ +!!! error TS2816: Cannot use 'this' in a static property initializer of a decorated class. + static f = () => this.c + 1; + ~~~~ +!!! error TS2816: Cannot use 'this' in a static property initializer of a decorated class. + static ff = function () { this.c + 1 } + static foo () { + return this.c + 1; + } + static get fa () { + return this.c + 1; + } + static set fa (v: number) { + this.c = v + 1; + } + } + + class CC { + static a = 1; + static b = this.a + 1; + } + + class DD extends CC { + static c = 2; + static d = this.c + 1; + static e = super.a + this.c + 1; + static f = () => this.c + 1; + static ff = function () { this.c + 1 } + static foo () { + return this.c + 1; + } + static get fa () { + return this.c + 1; + } + static set fa (v: number) { + this.c = v + 1; + } + } + \ No newline at end of file diff --git a/tests/baselines/reference/typeOfThisInStaticMembers10(target=es2022).js b/tests/baselines/reference/typeOfThisInStaticMembers10(target=es2022).js new file mode 100644 index 0000000000000..bdd2e337cf9e9 --- /dev/null +++ b/tests/baselines/reference/typeOfThisInStaticMembers10(target=es2022).js @@ -0,0 +1,103 @@ +//// [typeOfThisInStaticMembers10.ts] +declare const foo: any; + +@foo +class C { + static a = 1; + static b = this.a + 1; +} + +@foo +class D extends C { + static c = 2; + static d = this.c + 1; + static e = super.a + this.c + 1; + static f = () => this.c + 1; + static ff = function () { this.c + 1 } + static foo () { + return this.c + 1; + } + static get fa () { + return this.c + 1; + } + static set fa (v: number) { + this.c = v + 1; + } +} + +class CC { + static a = 1; + static b = this.a + 1; +} + +class DD extends CC { + static c = 2; + static d = this.c + 1; + static e = super.a + this.c + 1; + static f = () => this.c + 1; + static ff = function () { this.c + 1 } + static foo () { + return this.c + 1; + } + static get fa () { + return this.c + 1; + } + static set fa (v: number) { + this.c = v + 1; + } +} + + +//// [typeOfThisInStaticMembers10.js] +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +let C = class C { + static { this.a = 1; } + static { this.b = this.a + 1; } +}; +C = __decorate([ + foo +], C); +let D = class D extends C { + static { this.c = 2; } + static { this.d = this.c + 1; } + static { this.e = super.a + this.c + 1; } + static { this.f = () => this.c + 1; } + static { this.ff = function () { this.c + 1; }; } + static foo() { + return this.c + 1; + } + static get fa() { + return this.c + 1; + } + static set fa(v) { + this.c = v + 1; + } +}; +D = __decorate([ + foo +], D); +class CC { + static { this.a = 1; } + static { this.b = this.a + 1; } +} +class DD extends CC { + static { this.c = 2; } + static { this.d = this.c + 1; } + static { this.e = super.a + this.c + 1; } + static { this.f = () => this.c + 1; } + static { this.ff = function () { this.c + 1; }; } + static foo() { + return this.c + 1; + } + static get fa() { + return this.c + 1; + } + static set fa(v) { + this.c = v + 1; + } +} diff --git a/tests/baselines/reference/typeOfThisInStaticMembers10(target=es2022).symbols b/tests/baselines/reference/typeOfThisInStaticMembers10(target=es2022).symbols new file mode 100644 index 0000000000000..32b2ea3fd4926 --- /dev/null +++ b/tests/baselines/reference/typeOfThisInStaticMembers10(target=es2022).symbols @@ -0,0 +1,154 @@ +=== tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers10.ts === +declare const foo: any; +>foo : Symbol(foo, Decl(typeOfThisInStaticMembers10.ts, 0, 13)) + +@foo +>foo : Symbol(foo, Decl(typeOfThisInStaticMembers10.ts, 0, 13)) + +class C { +>C : Symbol(C, Decl(typeOfThisInStaticMembers10.ts, 0, 23)) + + static a = 1; +>a : Symbol(C.a, Decl(typeOfThisInStaticMembers10.ts, 3, 9)) + + static b = this.a + 1; +>b : Symbol(C.b, Decl(typeOfThisInStaticMembers10.ts, 4, 17)) +>this.a : Symbol(C.a, Decl(typeOfThisInStaticMembers10.ts, 3, 9)) +>this : Symbol(C, Decl(typeOfThisInStaticMembers10.ts, 0, 23)) +>a : Symbol(C.a, Decl(typeOfThisInStaticMembers10.ts, 3, 9)) +} + +@foo +>foo : Symbol(foo, Decl(typeOfThisInStaticMembers10.ts, 0, 13)) + +class D extends C { +>D : Symbol(D, Decl(typeOfThisInStaticMembers10.ts, 6, 1)) +>C : Symbol(C, Decl(typeOfThisInStaticMembers10.ts, 0, 23)) + + static c = 2; +>c : Symbol(D.c, Decl(typeOfThisInStaticMembers10.ts, 9, 19)) + + static d = this.c + 1; +>d : Symbol(D.d, Decl(typeOfThisInStaticMembers10.ts, 10, 17)) +>this.c : Symbol(D.c, Decl(typeOfThisInStaticMembers10.ts, 9, 19)) +>this : Symbol(D, Decl(typeOfThisInStaticMembers10.ts, 6, 1)) +>c : Symbol(D.c, Decl(typeOfThisInStaticMembers10.ts, 9, 19)) + + static e = super.a + this.c + 1; +>e : Symbol(D.e, Decl(typeOfThisInStaticMembers10.ts, 11, 26)) +>super.a : Symbol(C.a, Decl(typeOfThisInStaticMembers10.ts, 3, 9)) +>super : Symbol(C, Decl(typeOfThisInStaticMembers10.ts, 0, 23)) +>a : Symbol(C.a, Decl(typeOfThisInStaticMembers10.ts, 3, 9)) +>this.c : Symbol(D.c, Decl(typeOfThisInStaticMembers10.ts, 9, 19)) +>this : Symbol(D, Decl(typeOfThisInStaticMembers10.ts, 6, 1)) +>c : Symbol(D.c, Decl(typeOfThisInStaticMembers10.ts, 9, 19)) + + static f = () => this.c + 1; +>f : Symbol(D.f, Decl(typeOfThisInStaticMembers10.ts, 12, 36)) +>this.c : Symbol(D.c, Decl(typeOfThisInStaticMembers10.ts, 9, 19)) +>this : Symbol(D, Decl(typeOfThisInStaticMembers10.ts, 6, 1)) +>c : Symbol(D.c, Decl(typeOfThisInStaticMembers10.ts, 9, 19)) + + static ff = function () { this.c + 1 } +>ff : Symbol(D.ff, Decl(typeOfThisInStaticMembers10.ts, 13, 32)) + + static foo () { +>foo : Symbol(D.foo, Decl(typeOfThisInStaticMembers10.ts, 14, 42)) + + return this.c + 1; +>this.c : Symbol(D.c, Decl(typeOfThisInStaticMembers10.ts, 9, 19)) +>this : Symbol(D, Decl(typeOfThisInStaticMembers10.ts, 6, 1)) +>c : Symbol(D.c, Decl(typeOfThisInStaticMembers10.ts, 9, 19)) + } + static get fa () { +>fa : Symbol(D.fa, Decl(typeOfThisInStaticMembers10.ts, 17, 5), Decl(typeOfThisInStaticMembers10.ts, 20, 5)) + + return this.c + 1; +>this.c : Symbol(D.c, Decl(typeOfThisInStaticMembers10.ts, 9, 19)) +>this : Symbol(D, Decl(typeOfThisInStaticMembers10.ts, 6, 1)) +>c : Symbol(D.c, Decl(typeOfThisInStaticMembers10.ts, 9, 19)) + } + static set fa (v: number) { +>fa : Symbol(D.fa, Decl(typeOfThisInStaticMembers10.ts, 17, 5), Decl(typeOfThisInStaticMembers10.ts, 20, 5)) +>v : Symbol(v, Decl(typeOfThisInStaticMembers10.ts, 21, 19)) + + this.c = v + 1; +>this.c : Symbol(D.c, Decl(typeOfThisInStaticMembers10.ts, 9, 19)) +>this : Symbol(D, Decl(typeOfThisInStaticMembers10.ts, 6, 1)) +>c : Symbol(D.c, Decl(typeOfThisInStaticMembers10.ts, 9, 19)) +>v : Symbol(v, Decl(typeOfThisInStaticMembers10.ts, 21, 19)) + } +} + +class CC { +>CC : Symbol(CC, Decl(typeOfThisInStaticMembers10.ts, 24, 1)) + + static a = 1; +>a : Symbol(CC.a, Decl(typeOfThisInStaticMembers10.ts, 26, 10)) + + static b = this.a + 1; +>b : Symbol(CC.b, Decl(typeOfThisInStaticMembers10.ts, 27, 17)) +>this.a : Symbol(CC.a, Decl(typeOfThisInStaticMembers10.ts, 26, 10)) +>this : Symbol(CC, Decl(typeOfThisInStaticMembers10.ts, 24, 1)) +>a : Symbol(CC.a, Decl(typeOfThisInStaticMembers10.ts, 26, 10)) +} + +class DD extends CC { +>DD : Symbol(DD, Decl(typeOfThisInStaticMembers10.ts, 29, 1)) +>CC : Symbol(CC, Decl(typeOfThisInStaticMembers10.ts, 24, 1)) + + static c = 2; +>c : Symbol(DD.c, Decl(typeOfThisInStaticMembers10.ts, 31, 21)) + + static d = this.c + 1; +>d : Symbol(DD.d, Decl(typeOfThisInStaticMembers10.ts, 32, 17)) +>this.c : Symbol(DD.c, Decl(typeOfThisInStaticMembers10.ts, 31, 21)) +>this : Symbol(DD, Decl(typeOfThisInStaticMembers10.ts, 29, 1)) +>c : Symbol(DD.c, Decl(typeOfThisInStaticMembers10.ts, 31, 21)) + + static e = super.a + this.c + 1; +>e : Symbol(DD.e, Decl(typeOfThisInStaticMembers10.ts, 33, 26)) +>super.a : Symbol(CC.a, Decl(typeOfThisInStaticMembers10.ts, 26, 10)) +>super : Symbol(CC, Decl(typeOfThisInStaticMembers10.ts, 24, 1)) +>a : Symbol(CC.a, Decl(typeOfThisInStaticMembers10.ts, 26, 10)) +>this.c : Symbol(DD.c, Decl(typeOfThisInStaticMembers10.ts, 31, 21)) +>this : Symbol(DD, Decl(typeOfThisInStaticMembers10.ts, 29, 1)) +>c : Symbol(DD.c, Decl(typeOfThisInStaticMembers10.ts, 31, 21)) + + static f = () => this.c + 1; +>f : Symbol(DD.f, Decl(typeOfThisInStaticMembers10.ts, 34, 36)) +>this.c : Symbol(DD.c, Decl(typeOfThisInStaticMembers10.ts, 31, 21)) +>this : Symbol(DD, Decl(typeOfThisInStaticMembers10.ts, 29, 1)) +>c : Symbol(DD.c, Decl(typeOfThisInStaticMembers10.ts, 31, 21)) + + static ff = function () { this.c + 1 } +>ff : Symbol(DD.ff, Decl(typeOfThisInStaticMembers10.ts, 35, 32)) + + static foo () { +>foo : Symbol(DD.foo, Decl(typeOfThisInStaticMembers10.ts, 36, 42)) + + return this.c + 1; +>this.c : Symbol(DD.c, Decl(typeOfThisInStaticMembers10.ts, 31, 21)) +>this : Symbol(DD, Decl(typeOfThisInStaticMembers10.ts, 29, 1)) +>c : Symbol(DD.c, Decl(typeOfThisInStaticMembers10.ts, 31, 21)) + } + static get fa () { +>fa : Symbol(DD.fa, Decl(typeOfThisInStaticMembers10.ts, 39, 5), Decl(typeOfThisInStaticMembers10.ts, 42, 5)) + + return this.c + 1; +>this.c : Symbol(DD.c, Decl(typeOfThisInStaticMembers10.ts, 31, 21)) +>this : Symbol(DD, Decl(typeOfThisInStaticMembers10.ts, 29, 1)) +>c : Symbol(DD.c, Decl(typeOfThisInStaticMembers10.ts, 31, 21)) + } + static set fa (v: number) { +>fa : Symbol(DD.fa, Decl(typeOfThisInStaticMembers10.ts, 39, 5), Decl(typeOfThisInStaticMembers10.ts, 42, 5)) +>v : Symbol(v, Decl(typeOfThisInStaticMembers10.ts, 43, 19)) + + this.c = v + 1; +>this.c : Symbol(DD.c, Decl(typeOfThisInStaticMembers10.ts, 31, 21)) +>this : Symbol(DD, Decl(typeOfThisInStaticMembers10.ts, 29, 1)) +>c : Symbol(DD.c, Decl(typeOfThisInStaticMembers10.ts, 31, 21)) +>v : Symbol(v, Decl(typeOfThisInStaticMembers10.ts, 43, 19)) + } +} + diff --git a/tests/baselines/reference/typeOfThisInStaticMembers10(target=es2022).types b/tests/baselines/reference/typeOfThisInStaticMembers10(target=es2022).types new file mode 100644 index 0000000000000..824241e883d28 --- /dev/null +++ b/tests/baselines/reference/typeOfThisInStaticMembers10(target=es2022).types @@ -0,0 +1,204 @@ +=== tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers10.ts === +declare const foo: any; +>foo : any + +@foo +>foo : any + +class C { +>C : C + + static a = 1; +>a : number +>1 : 1 + + static b = this.a + 1; +>b : number +>this.a + 1 : number +>this.a : number +>this : typeof C +>a : number +>1 : 1 +} + +@foo +>foo : any + +class D extends C { +>D : D +>C : C + + static c = 2; +>c : number +>2 : 2 + + static d = this.c + 1; +>d : number +>this.c + 1 : number +>this.c : number +>this : typeof D +>c : number +>1 : 1 + + static e = super.a + this.c + 1; +>e : number +>super.a + this.c + 1 : number +>super.a + this.c : number +>super.a : number +>super : typeof C +>a : number +>this.c : number +>this : typeof D +>c : number +>1 : 1 + + static f = () => this.c + 1; +>f : () => number +>() => this.c + 1 : () => number +>this.c + 1 : number +>this.c : number +>this : typeof D +>c : number +>1 : 1 + + static ff = function () { this.c + 1 } +>ff : () => void +>function () { this.c + 1 } : () => void +>this.c + 1 : any +>this.c : any +>this : any +>c : any +>1 : 1 + + static foo () { +>foo : () => number + + return this.c + 1; +>this.c + 1 : number +>this.c : number +>this : typeof D +>c : number +>1 : 1 + } + static get fa () { +>fa : number + + return this.c + 1; +>this.c + 1 : number +>this.c : number +>this : typeof D +>c : number +>1 : 1 + } + static set fa (v: number) { +>fa : number +>v : number + + this.c = v + 1; +>this.c = v + 1 : number +>this.c : number +>this : typeof D +>c : number +>v + 1 : number +>v : number +>1 : 1 + } +} + +class CC { +>CC : CC + + static a = 1; +>a : number +>1 : 1 + + static b = this.a + 1; +>b : number +>this.a + 1 : number +>this.a : number +>this : typeof CC +>a : number +>1 : 1 +} + +class DD extends CC { +>DD : DD +>CC : CC + + static c = 2; +>c : number +>2 : 2 + + static d = this.c + 1; +>d : number +>this.c + 1 : number +>this.c : number +>this : typeof DD +>c : number +>1 : 1 + + static e = super.a + this.c + 1; +>e : number +>super.a + this.c + 1 : number +>super.a + this.c : number +>super.a : number +>super : typeof CC +>a : number +>this.c : number +>this : typeof DD +>c : number +>1 : 1 + + static f = () => this.c + 1; +>f : () => number +>() => this.c + 1 : () => number +>this.c + 1 : number +>this.c : number +>this : typeof DD +>c : number +>1 : 1 + + static ff = function () { this.c + 1 } +>ff : () => void +>function () { this.c + 1 } : () => void +>this.c + 1 : any +>this.c : any +>this : any +>c : any +>1 : 1 + + static foo () { +>foo : () => number + + return this.c + 1; +>this.c + 1 : number +>this.c : number +>this : typeof DD +>c : number +>1 : 1 + } + static get fa () { +>fa : number + + return this.c + 1; +>this.c + 1 : number +>this.c : number +>this : typeof DD +>c : number +>1 : 1 + } + static set fa (v: number) { +>fa : number +>v : number + + this.c = v + 1; +>this.c = v + 1 : number +>this.c : number +>this : typeof DD +>c : number +>v + 1 : number +>v : number +>1 : 1 + } +} + diff --git a/tests/baselines/reference/typeOfThisInStaticMembers10(target=esnext).js b/tests/baselines/reference/typeOfThisInStaticMembers10(target=esnext).js index a45a5c9915488..bdd2e337cf9e9 100644 --- a/tests/baselines/reference/typeOfThisInStaticMembers10(target=esnext).js +++ b/tests/baselines/reference/typeOfThisInStaticMembers10(target=esnext).js @@ -55,15 +55,19 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key, else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; -var _a, _b, _c; let C = class C { + static { this.a = 1; } + static { this.b = this.a + 1; } }; -C.a = 1; -C.b = (void 0).a + 1; C = __decorate([ foo ], C); let D = class D extends C { + static { this.c = 2; } + static { this.d = this.c + 1; } + static { this.e = super.a + this.c + 1; } + static { this.f = () => this.c + 1; } + static { this.ff = function () { this.c + 1; }; } static foo() { return this.c + 1; } @@ -74,20 +78,19 @@ let D = class D extends C { this.c = v + 1; } }; -D.c = 2; -D.d = (void 0).c + 1; -D.e = (void 0).a + (void 0).c + 1; -D.f = () => (void 0).c + 1; -D.ff = function () { this.c + 1; }; D = __decorate([ foo ], D); class CC { + static { this.a = 1; } + static { this.b = this.a + 1; } } -_a = CC; -CC.a = 1; -CC.b = _a.a + 1; -class DD extends (_c = CC) { +class DD extends CC { + static { this.c = 2; } + static { this.d = this.c + 1; } + static { this.e = super.a + this.c + 1; } + static { this.f = () => this.c + 1; } + static { this.ff = function () { this.c + 1; }; } static foo() { return this.c + 1; } @@ -98,9 +101,3 @@ class DD extends (_c = CC) { this.c = v + 1; } } -_b = DD; -DD.c = 2; -DD.d = _b.c + 1; -DD.e = Reflect.get(_c, "a", _b) + _b.c + 1; -DD.f = () => _b.c + 1; -DD.ff = function () { this.c + 1; }; diff --git a/tests/baselines/reference/typeOfThisInStaticMembers11(target=es2022).errors.txt b/tests/baselines/reference/typeOfThisInStaticMembers11(target=es2022).errors.txt new file mode 100644 index 0000000000000..2e699c701e689 --- /dev/null +++ b/tests/baselines/reference/typeOfThisInStaticMembers11(target=es2022).errors.txt @@ -0,0 +1,63 @@ +tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers11.ts(6,16): error TS2816: Cannot use 'this' in a static property initializer of a decorated class. +tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers11.ts(12,16): error TS2816: Cannot use 'this' in a static property initializer of a decorated class. +tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers11.ts(13,26): error TS2816: Cannot use 'this' in a static property initializer of a decorated class. +tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers11.ts(14,22): error TS2816: Cannot use 'this' in a static property initializer of a decorated class. + + +==== tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers11.ts (4 errors) ==== + declare const foo: any; + + @foo + class C { + static a = 1; + static b = this.a + 1; + ~~~~ +!!! error TS2816: Cannot use 'this' in a static property initializer of a decorated class. + } + + @foo + class D extends C { + static c = 2; + static d = this.c + 1; + ~~~~ +!!! error TS2816: Cannot use 'this' in a static property initializer of a decorated class. + static e = super.a + this.c + 1; + ~~~~ +!!! error TS2816: Cannot use 'this' in a static property initializer of a decorated class. + static f = () => this.c + 1; + ~~~~ +!!! error TS2816: Cannot use 'this' in a static property initializer of a decorated class. + static ff = function () { this.c + 1 } + static foo () { + return this.c + 1; + } + static get fa () { + return this.c + 1; + } + static set fa (v: number) { + this.c = v + 1; + } + } + + class CC { + static a = 1; + static b = this.a + 1; + } + + class DD extends CC { + static c = 2; + static d = this.c + 1; + static e = super.a + this.c + 1; + static f = () => this.c + 1; + static ff = function () { this.c + 1 } + static foo () { + return this.c + 1; + } + static get fa () { + return this.c + 1; + } + static set fa (v: number) { + this.c = v + 1; + } + } + \ No newline at end of file diff --git a/tests/baselines/reference/typeOfThisInStaticMembers11(target=es2022).js b/tests/baselines/reference/typeOfThisInStaticMembers11(target=es2022).js new file mode 100644 index 0000000000000..3e3c578c3dde8 --- /dev/null +++ b/tests/baselines/reference/typeOfThisInStaticMembers11(target=es2022).js @@ -0,0 +1,103 @@ +//// [typeOfThisInStaticMembers11.ts] +declare const foo: any; + +@foo +class C { + static a = 1; + static b = this.a + 1; +} + +@foo +class D extends C { + static c = 2; + static d = this.c + 1; + static e = super.a + this.c + 1; + static f = () => this.c + 1; + static ff = function () { this.c + 1 } + static foo () { + return this.c + 1; + } + static get fa () { + return this.c + 1; + } + static set fa (v: number) { + this.c = v + 1; + } +} + +class CC { + static a = 1; + static b = this.a + 1; +} + +class DD extends CC { + static c = 2; + static d = this.c + 1; + static e = super.a + this.c + 1; + static f = () => this.c + 1; + static ff = function () { this.c + 1 } + static foo () { + return this.c + 1; + } + static get fa () { + return this.c + 1; + } + static set fa (v: number) { + this.c = v + 1; + } +} + + +//// [typeOfThisInStaticMembers11.js] +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +let C = class C { + static a = 1; + static b = this.a + 1; +}; +C = __decorate([ + foo +], C); +let D = class D extends C { + static c = 2; + static d = this.c + 1; + static e = super.a + this.c + 1; + static f = () => this.c + 1; + static ff = function () { this.c + 1; }; + static foo() { + return this.c + 1; + } + static get fa() { + return this.c + 1; + } + static set fa(v) { + this.c = v + 1; + } +}; +D = __decorate([ + foo +], D); +class CC { + static a = 1; + static b = this.a + 1; +} +class DD extends CC { + static c = 2; + static d = this.c + 1; + static e = super.a + this.c + 1; + static f = () => this.c + 1; + static ff = function () { this.c + 1; }; + static foo() { + return this.c + 1; + } + static get fa() { + return this.c + 1; + } + static set fa(v) { + this.c = v + 1; + } +} diff --git a/tests/baselines/reference/typeOfThisInStaticMembers11(target=es2022).symbols b/tests/baselines/reference/typeOfThisInStaticMembers11(target=es2022).symbols new file mode 100644 index 0000000000000..d1df5efc4080b --- /dev/null +++ b/tests/baselines/reference/typeOfThisInStaticMembers11(target=es2022).symbols @@ -0,0 +1,154 @@ +=== tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers11.ts === +declare const foo: any; +>foo : Symbol(foo, Decl(typeOfThisInStaticMembers11.ts, 0, 13)) + +@foo +>foo : Symbol(foo, Decl(typeOfThisInStaticMembers11.ts, 0, 13)) + +class C { +>C : Symbol(C, Decl(typeOfThisInStaticMembers11.ts, 0, 23)) + + static a = 1; +>a : Symbol(C.a, Decl(typeOfThisInStaticMembers11.ts, 3, 9)) + + static b = this.a + 1; +>b : Symbol(C.b, Decl(typeOfThisInStaticMembers11.ts, 4, 17)) +>this.a : Symbol(C.a, Decl(typeOfThisInStaticMembers11.ts, 3, 9)) +>this : Symbol(C, Decl(typeOfThisInStaticMembers11.ts, 0, 23)) +>a : Symbol(C.a, Decl(typeOfThisInStaticMembers11.ts, 3, 9)) +} + +@foo +>foo : Symbol(foo, Decl(typeOfThisInStaticMembers11.ts, 0, 13)) + +class D extends C { +>D : Symbol(D, Decl(typeOfThisInStaticMembers11.ts, 6, 1)) +>C : Symbol(C, Decl(typeOfThisInStaticMembers11.ts, 0, 23)) + + static c = 2; +>c : Symbol(D.c, Decl(typeOfThisInStaticMembers11.ts, 9, 19)) + + static d = this.c + 1; +>d : Symbol(D.d, Decl(typeOfThisInStaticMembers11.ts, 10, 17)) +>this.c : Symbol(D.c, Decl(typeOfThisInStaticMembers11.ts, 9, 19)) +>this : Symbol(D, Decl(typeOfThisInStaticMembers11.ts, 6, 1)) +>c : Symbol(D.c, Decl(typeOfThisInStaticMembers11.ts, 9, 19)) + + static e = super.a + this.c + 1; +>e : Symbol(D.e, Decl(typeOfThisInStaticMembers11.ts, 11, 26)) +>super.a : Symbol(C.a, Decl(typeOfThisInStaticMembers11.ts, 3, 9)) +>super : Symbol(C, Decl(typeOfThisInStaticMembers11.ts, 0, 23)) +>a : Symbol(C.a, Decl(typeOfThisInStaticMembers11.ts, 3, 9)) +>this.c : Symbol(D.c, Decl(typeOfThisInStaticMembers11.ts, 9, 19)) +>this : Symbol(D, Decl(typeOfThisInStaticMembers11.ts, 6, 1)) +>c : Symbol(D.c, Decl(typeOfThisInStaticMembers11.ts, 9, 19)) + + static f = () => this.c + 1; +>f : Symbol(D.f, Decl(typeOfThisInStaticMembers11.ts, 12, 36)) +>this.c : Symbol(D.c, Decl(typeOfThisInStaticMembers11.ts, 9, 19)) +>this : Symbol(D, Decl(typeOfThisInStaticMembers11.ts, 6, 1)) +>c : Symbol(D.c, Decl(typeOfThisInStaticMembers11.ts, 9, 19)) + + static ff = function () { this.c + 1 } +>ff : Symbol(D.ff, Decl(typeOfThisInStaticMembers11.ts, 13, 32)) + + static foo () { +>foo : Symbol(D.foo, Decl(typeOfThisInStaticMembers11.ts, 14, 42)) + + return this.c + 1; +>this.c : Symbol(D.c, Decl(typeOfThisInStaticMembers11.ts, 9, 19)) +>this : Symbol(D, Decl(typeOfThisInStaticMembers11.ts, 6, 1)) +>c : Symbol(D.c, Decl(typeOfThisInStaticMembers11.ts, 9, 19)) + } + static get fa () { +>fa : Symbol(D.fa, Decl(typeOfThisInStaticMembers11.ts, 17, 5), Decl(typeOfThisInStaticMembers11.ts, 20, 5)) + + return this.c + 1; +>this.c : Symbol(D.c, Decl(typeOfThisInStaticMembers11.ts, 9, 19)) +>this : Symbol(D, Decl(typeOfThisInStaticMembers11.ts, 6, 1)) +>c : Symbol(D.c, Decl(typeOfThisInStaticMembers11.ts, 9, 19)) + } + static set fa (v: number) { +>fa : Symbol(D.fa, Decl(typeOfThisInStaticMembers11.ts, 17, 5), Decl(typeOfThisInStaticMembers11.ts, 20, 5)) +>v : Symbol(v, Decl(typeOfThisInStaticMembers11.ts, 21, 19)) + + this.c = v + 1; +>this.c : Symbol(D.c, Decl(typeOfThisInStaticMembers11.ts, 9, 19)) +>this : Symbol(D, Decl(typeOfThisInStaticMembers11.ts, 6, 1)) +>c : Symbol(D.c, Decl(typeOfThisInStaticMembers11.ts, 9, 19)) +>v : Symbol(v, Decl(typeOfThisInStaticMembers11.ts, 21, 19)) + } +} + +class CC { +>CC : Symbol(CC, Decl(typeOfThisInStaticMembers11.ts, 24, 1)) + + static a = 1; +>a : Symbol(CC.a, Decl(typeOfThisInStaticMembers11.ts, 26, 10)) + + static b = this.a + 1; +>b : Symbol(CC.b, Decl(typeOfThisInStaticMembers11.ts, 27, 17)) +>this.a : Symbol(CC.a, Decl(typeOfThisInStaticMembers11.ts, 26, 10)) +>this : Symbol(CC, Decl(typeOfThisInStaticMembers11.ts, 24, 1)) +>a : Symbol(CC.a, Decl(typeOfThisInStaticMembers11.ts, 26, 10)) +} + +class DD extends CC { +>DD : Symbol(DD, Decl(typeOfThisInStaticMembers11.ts, 29, 1)) +>CC : Symbol(CC, Decl(typeOfThisInStaticMembers11.ts, 24, 1)) + + static c = 2; +>c : Symbol(DD.c, Decl(typeOfThisInStaticMembers11.ts, 31, 21)) + + static d = this.c + 1; +>d : Symbol(DD.d, Decl(typeOfThisInStaticMembers11.ts, 32, 17)) +>this.c : Symbol(DD.c, Decl(typeOfThisInStaticMembers11.ts, 31, 21)) +>this : Symbol(DD, Decl(typeOfThisInStaticMembers11.ts, 29, 1)) +>c : Symbol(DD.c, Decl(typeOfThisInStaticMembers11.ts, 31, 21)) + + static e = super.a + this.c + 1; +>e : Symbol(DD.e, Decl(typeOfThisInStaticMembers11.ts, 33, 26)) +>super.a : Symbol(CC.a, Decl(typeOfThisInStaticMembers11.ts, 26, 10)) +>super : Symbol(CC, Decl(typeOfThisInStaticMembers11.ts, 24, 1)) +>a : Symbol(CC.a, Decl(typeOfThisInStaticMembers11.ts, 26, 10)) +>this.c : Symbol(DD.c, Decl(typeOfThisInStaticMembers11.ts, 31, 21)) +>this : Symbol(DD, Decl(typeOfThisInStaticMembers11.ts, 29, 1)) +>c : Symbol(DD.c, Decl(typeOfThisInStaticMembers11.ts, 31, 21)) + + static f = () => this.c + 1; +>f : Symbol(DD.f, Decl(typeOfThisInStaticMembers11.ts, 34, 36)) +>this.c : Symbol(DD.c, Decl(typeOfThisInStaticMembers11.ts, 31, 21)) +>this : Symbol(DD, Decl(typeOfThisInStaticMembers11.ts, 29, 1)) +>c : Symbol(DD.c, Decl(typeOfThisInStaticMembers11.ts, 31, 21)) + + static ff = function () { this.c + 1 } +>ff : Symbol(DD.ff, Decl(typeOfThisInStaticMembers11.ts, 35, 32)) + + static foo () { +>foo : Symbol(DD.foo, Decl(typeOfThisInStaticMembers11.ts, 36, 42)) + + return this.c + 1; +>this.c : Symbol(DD.c, Decl(typeOfThisInStaticMembers11.ts, 31, 21)) +>this : Symbol(DD, Decl(typeOfThisInStaticMembers11.ts, 29, 1)) +>c : Symbol(DD.c, Decl(typeOfThisInStaticMembers11.ts, 31, 21)) + } + static get fa () { +>fa : Symbol(DD.fa, Decl(typeOfThisInStaticMembers11.ts, 39, 5), Decl(typeOfThisInStaticMembers11.ts, 42, 5)) + + return this.c + 1; +>this.c : Symbol(DD.c, Decl(typeOfThisInStaticMembers11.ts, 31, 21)) +>this : Symbol(DD, Decl(typeOfThisInStaticMembers11.ts, 29, 1)) +>c : Symbol(DD.c, Decl(typeOfThisInStaticMembers11.ts, 31, 21)) + } + static set fa (v: number) { +>fa : Symbol(DD.fa, Decl(typeOfThisInStaticMembers11.ts, 39, 5), Decl(typeOfThisInStaticMembers11.ts, 42, 5)) +>v : Symbol(v, Decl(typeOfThisInStaticMembers11.ts, 43, 19)) + + this.c = v + 1; +>this.c : Symbol(DD.c, Decl(typeOfThisInStaticMembers11.ts, 31, 21)) +>this : Symbol(DD, Decl(typeOfThisInStaticMembers11.ts, 29, 1)) +>c : Symbol(DD.c, Decl(typeOfThisInStaticMembers11.ts, 31, 21)) +>v : Symbol(v, Decl(typeOfThisInStaticMembers11.ts, 43, 19)) + } +} + diff --git a/tests/baselines/reference/typeOfThisInStaticMembers11(target=es2022).types b/tests/baselines/reference/typeOfThisInStaticMembers11(target=es2022).types new file mode 100644 index 0000000000000..44ad35960ec92 --- /dev/null +++ b/tests/baselines/reference/typeOfThisInStaticMembers11(target=es2022).types @@ -0,0 +1,204 @@ +=== tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers11.ts === +declare const foo: any; +>foo : any + +@foo +>foo : any + +class C { +>C : C + + static a = 1; +>a : number +>1 : 1 + + static b = this.a + 1; +>b : number +>this.a + 1 : number +>this.a : number +>this : typeof C +>a : number +>1 : 1 +} + +@foo +>foo : any + +class D extends C { +>D : D +>C : C + + static c = 2; +>c : number +>2 : 2 + + static d = this.c + 1; +>d : number +>this.c + 1 : number +>this.c : number +>this : typeof D +>c : number +>1 : 1 + + static e = super.a + this.c + 1; +>e : number +>super.a + this.c + 1 : number +>super.a + this.c : number +>super.a : number +>super : typeof C +>a : number +>this.c : number +>this : typeof D +>c : number +>1 : 1 + + static f = () => this.c + 1; +>f : () => number +>() => this.c + 1 : () => number +>this.c + 1 : number +>this.c : number +>this : typeof D +>c : number +>1 : 1 + + static ff = function () { this.c + 1 } +>ff : () => void +>function () { this.c + 1 } : () => void +>this.c + 1 : any +>this.c : any +>this : any +>c : any +>1 : 1 + + static foo () { +>foo : () => number + + return this.c + 1; +>this.c + 1 : number +>this.c : number +>this : typeof D +>c : number +>1 : 1 + } + static get fa () { +>fa : number + + return this.c + 1; +>this.c + 1 : number +>this.c : number +>this : typeof D +>c : number +>1 : 1 + } + static set fa (v: number) { +>fa : number +>v : number + + this.c = v + 1; +>this.c = v + 1 : number +>this.c : number +>this : typeof D +>c : number +>v + 1 : number +>v : number +>1 : 1 + } +} + +class CC { +>CC : CC + + static a = 1; +>a : number +>1 : 1 + + static b = this.a + 1; +>b : number +>this.a + 1 : number +>this.a : number +>this : typeof CC +>a : number +>1 : 1 +} + +class DD extends CC { +>DD : DD +>CC : CC + + static c = 2; +>c : number +>2 : 2 + + static d = this.c + 1; +>d : number +>this.c + 1 : number +>this.c : number +>this : typeof DD +>c : number +>1 : 1 + + static e = super.a + this.c + 1; +>e : number +>super.a + this.c + 1 : number +>super.a + this.c : number +>super.a : number +>super : typeof CC +>a : number +>this.c : number +>this : typeof DD +>c : number +>1 : 1 + + static f = () => this.c + 1; +>f : () => number +>() => this.c + 1 : () => number +>this.c + 1 : number +>this.c : number +>this : typeof DD +>c : number +>1 : 1 + + static ff = function () { this.c + 1 } +>ff : () => void +>function () { this.c + 1 } : () => void +>this.c + 1 : any +>this.c : any +>this : any +>c : any +>1 : 1 + + static foo () { +>foo : () => number + + return this.c + 1; +>this.c + 1 : number +>this.c : number +>this : typeof DD +>c : number +>1 : 1 + } + static get fa () { +>fa : number + + return this.c + 1; +>this.c + 1 : number +>this.c : number +>this : typeof DD +>c : number +>1 : 1 + } + static set fa (v: number) { +>fa : number +>v : number + + this.c = v + 1; +>this.c = v + 1 : number +>this.c : number +>this : typeof DD +>c : number +>v + 1 : number +>v : number +>1 : 1 + } +} + diff --git a/tests/baselines/reference/typeOfThisInStaticMembers12(target=es2022).errors.txt b/tests/baselines/reference/typeOfThisInStaticMembers12(target=es2022).errors.txt new file mode 100644 index 0000000000000..3855b2ee7b651 --- /dev/null +++ b/tests/baselines/reference/typeOfThisInStaticMembers12(target=es2022).errors.txt @@ -0,0 +1,23 @@ +tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers12.ts(4,16): error TS1166: A computed property name in a class property declaration must have a simple literal type or a 'unique symbol' type. +tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers12.ts(4,17): error TS2465: 'this' cannot be referenced in a computed property name. +tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers12.ts(5,9): error TS1166: A computed property name in a class property declaration must have a simple literal type or a 'unique symbol' type. +tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers12.ts(5,10): error TS2465: 'this' cannot be referenced in a computed property name. + + +==== tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers12.ts (4 errors) ==== + class C { + static readonly c: "foo" = "foo" + static bar = class Inner { + static [this.c] = 123; + ~~~~~~~~ +!!! error TS1166: A computed property name in a class property declaration must have a simple literal type or a 'unique symbol' type. + ~~~~ +!!! error TS2465: 'this' cannot be referenced in a computed property name. + [this.c] = 123; + ~~~~~~~~ +!!! error TS1166: A computed property name in a class property declaration must have a simple literal type or a 'unique symbol' type. + ~~~~ +!!! error TS2465: 'this' cannot be referenced in a computed property name. + } + } + \ No newline at end of file diff --git a/tests/baselines/reference/typeOfThisInStaticMembers12(target=es2022).js b/tests/baselines/reference/typeOfThisInStaticMembers12(target=es2022).js new file mode 100644 index 0000000000000..4072197b7007d --- /dev/null +++ b/tests/baselines/reference/typeOfThisInStaticMembers12(target=es2022).js @@ -0,0 +1,22 @@ +//// [typeOfThisInStaticMembers12.ts] +class C { + static readonly c: "foo" = "foo" + static bar = class Inner { + static [this.c] = 123; + [this.c] = 123; + } +} + + +//// [typeOfThisInStaticMembers12.js] +var _a, _b; +class C { + static { this.c = "foo"; } + static { this.bar = class Inner { + constructor() { + this[_b] = 123; + } + static { _a = this.c, _b = this.c; } + static { this[_a] = 123; } + }; } +} diff --git a/tests/baselines/reference/typeOfThisInStaticMembers12(target=es2022).symbols b/tests/baselines/reference/typeOfThisInStaticMembers12(target=es2022).symbols new file mode 100644 index 0000000000000..16ad5c64fd0df --- /dev/null +++ b/tests/baselines/reference/typeOfThisInStaticMembers12(target=es2022).symbols @@ -0,0 +1,19 @@ +=== tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers12.ts === +class C { +>C : Symbol(C, Decl(typeOfThisInStaticMembers12.ts, 0, 0)) + + static readonly c: "foo" = "foo" +>c : Symbol(C.c, Decl(typeOfThisInStaticMembers12.ts, 0, 9)) + + static bar = class Inner { +>bar : Symbol(C.bar, Decl(typeOfThisInStaticMembers12.ts, 1, 36)) +>Inner : Symbol(Inner, Decl(typeOfThisInStaticMembers12.ts, 2, 16)) + + static [this.c] = 123; +>[this.c] : Symbol(Inner[this.c], Decl(typeOfThisInStaticMembers12.ts, 2, 31)) + + [this.c] = 123; +>[this.c] : Symbol(Inner[this.c], Decl(typeOfThisInStaticMembers12.ts, 3, 30)) + } +} + diff --git a/tests/baselines/reference/typeOfThisInStaticMembers12(target=es2022).types b/tests/baselines/reference/typeOfThisInStaticMembers12(target=es2022).types new file mode 100644 index 0000000000000..ca37b9e4e200e --- /dev/null +++ b/tests/baselines/reference/typeOfThisInStaticMembers12(target=es2022).types @@ -0,0 +1,29 @@ +=== tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers12.ts === +class C { +>C : C + + static readonly c: "foo" = "foo" +>c : "foo" +>"foo" : "foo" + + static bar = class Inner { +>bar : typeof Inner +>class Inner { static [this.c] = 123; [this.c] = 123; } : typeof Inner +>Inner : typeof Inner + + static [this.c] = 123; +>[this.c] : number +>this.c : any +>this : any +>c : any +>123 : 123 + + [this.c] = 123; +>[this.c] : number +>this.c : any +>this : any +>c : any +>123 : 123 + } +} + diff --git a/tests/baselines/reference/typeOfThisInStaticMembers12(target=esnext).js b/tests/baselines/reference/typeOfThisInStaticMembers12(target=esnext).js index 59ce5132646d1..4072197b7007d 100644 --- a/tests/baselines/reference/typeOfThisInStaticMembers12(target=esnext).js +++ b/tests/baselines/reference/typeOfThisInStaticMembers12(target=esnext).js @@ -9,17 +9,14 @@ class C { //// [typeOfThisInStaticMembers12.js] -var _a, _b, _c, _d; +var _a, _b; class C { -} -_a = C; -C.c = "foo"; -C.bar = (_b = class Inner { + static { this.c = "foo"; } + static { this.bar = class Inner { constructor() { - this[_d] = 123; + this[_b] = 123; } - }, - _c = _a.c, - _d = _a.c, - _b[_c] = 123, - _b); + static { _a = this.c, _b = this.c; } + static { this[_a] = 123; } + }; } +} diff --git a/tests/baselines/reference/typeOfThisInStaticMembers13(target=es2022).errors.txt b/tests/baselines/reference/typeOfThisInStaticMembers13(target=es2022).errors.txt new file mode 100644 index 0000000000000..804765ba1290d --- /dev/null +++ b/tests/baselines/reference/typeOfThisInStaticMembers13(target=es2022).errors.txt @@ -0,0 +1,23 @@ +tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers13.ts(4,16): error TS1166: A computed property name in a class property declaration must have a simple literal type or a 'unique symbol' type. +tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers13.ts(4,17): error TS2465: 'this' cannot be referenced in a computed property name. +tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers13.ts(5,9): error TS1166: A computed property name in a class property declaration must have a simple literal type or a 'unique symbol' type. +tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers13.ts(5,10): error TS2465: 'this' cannot be referenced in a computed property name. + + +==== tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers13.ts (4 errors) ==== + class C { + static readonly c: "foo" = "foo" + static bar = class Inner { + static [this.c] = 123; + ~~~~~~~~ +!!! error TS1166: A computed property name in a class property declaration must have a simple literal type or a 'unique symbol' type. + ~~~~ +!!! error TS2465: 'this' cannot be referenced in a computed property name. + [this.c] = 123; + ~~~~~~~~ +!!! error TS1166: A computed property name in a class property declaration must have a simple literal type or a 'unique symbol' type. + ~~~~ +!!! error TS2465: 'this' cannot be referenced in a computed property name. + } + } + \ No newline at end of file diff --git a/tests/baselines/reference/typeOfThisInStaticMembers13(target=es2022).js b/tests/baselines/reference/typeOfThisInStaticMembers13(target=es2022).js new file mode 100644 index 0000000000000..400f037855480 --- /dev/null +++ b/tests/baselines/reference/typeOfThisInStaticMembers13(target=es2022).js @@ -0,0 +1,18 @@ +//// [typeOfThisInStaticMembers13.ts] +class C { + static readonly c: "foo" = "foo" + static bar = class Inner { + static [this.c] = 123; + [this.c] = 123; + } +} + + +//// [typeOfThisInStaticMembers13.js] +class C { + static c = "foo"; + static bar = class Inner { + static [this.c] = 123; + [this.c] = 123; + }; +} diff --git a/tests/baselines/reference/typeOfThisInStaticMembers13(target=es2022).symbols b/tests/baselines/reference/typeOfThisInStaticMembers13(target=es2022).symbols new file mode 100644 index 0000000000000..806a34350b5b9 --- /dev/null +++ b/tests/baselines/reference/typeOfThisInStaticMembers13(target=es2022).symbols @@ -0,0 +1,19 @@ +=== tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers13.ts === +class C { +>C : Symbol(C, Decl(typeOfThisInStaticMembers13.ts, 0, 0)) + + static readonly c: "foo" = "foo" +>c : Symbol(C.c, Decl(typeOfThisInStaticMembers13.ts, 0, 9)) + + static bar = class Inner { +>bar : Symbol(C.bar, Decl(typeOfThisInStaticMembers13.ts, 1, 36)) +>Inner : Symbol(Inner, Decl(typeOfThisInStaticMembers13.ts, 2, 16)) + + static [this.c] = 123; +>[this.c] : Symbol(Inner[this.c], Decl(typeOfThisInStaticMembers13.ts, 2, 31)) + + [this.c] = 123; +>[this.c] : Symbol(Inner[this.c], Decl(typeOfThisInStaticMembers13.ts, 3, 30)) + } +} + diff --git a/tests/baselines/reference/typeOfThisInStaticMembers13(target=es2022).types b/tests/baselines/reference/typeOfThisInStaticMembers13(target=es2022).types new file mode 100644 index 0000000000000..bb274c6f556e7 --- /dev/null +++ b/tests/baselines/reference/typeOfThisInStaticMembers13(target=es2022).types @@ -0,0 +1,29 @@ +=== tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers13.ts === +class C { +>C : C + + static readonly c: "foo" = "foo" +>c : "foo" +>"foo" : "foo" + + static bar = class Inner { +>bar : typeof Inner +>class Inner { static [this.c] = 123; [this.c] = 123; } : typeof Inner +>Inner : typeof Inner + + static [this.c] = 123; +>[this.c] : number +>this.c : any +>this : any +>c : any +>123 : 123 + + [this.c] = 123; +>[this.c] : number +>this.c : any +>this : any +>c : any +>123 : 123 + } +} + diff --git a/tests/baselines/reference/typeOfThisInStaticMembers3(target=es2022).js b/tests/baselines/reference/typeOfThisInStaticMembers3(target=es2022).js new file mode 100644 index 0000000000000..0364cfcf3cd0f --- /dev/null +++ b/tests/baselines/reference/typeOfThisInStaticMembers3(target=es2022).js @@ -0,0 +1,23 @@ +//// [typeOfThisInStaticMembers3.ts] +class C { + static a = 1; + static b = this.a + 1; +} + +class D extends C { + static c = 2; + static d = this.c + 1; + static e = super.a + this.c + 1; +} + + +//// [typeOfThisInStaticMembers3.js] +class C { + static { this.a = 1; } + static { this.b = this.a + 1; } +} +class D extends C { + static { this.c = 2; } + static { this.d = this.c + 1; } + static { this.e = super.a + this.c + 1; } +} diff --git a/tests/baselines/reference/typeOfThisInStaticMembers3(target=es2022).symbols b/tests/baselines/reference/typeOfThisInStaticMembers3(target=es2022).symbols new file mode 100644 index 0000000000000..bfd5a942122f0 --- /dev/null +++ b/tests/baselines/reference/typeOfThisInStaticMembers3(target=es2022).symbols @@ -0,0 +1,37 @@ +=== tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers3.ts === +class C { +>C : Symbol(C, Decl(typeOfThisInStaticMembers3.ts, 0, 0)) + + static a = 1; +>a : Symbol(C.a, Decl(typeOfThisInStaticMembers3.ts, 0, 9)) + + static b = this.a + 1; +>b : Symbol(C.b, Decl(typeOfThisInStaticMembers3.ts, 1, 17)) +>this.a : Symbol(C.a, Decl(typeOfThisInStaticMembers3.ts, 0, 9)) +>this : Symbol(C, Decl(typeOfThisInStaticMembers3.ts, 0, 0)) +>a : Symbol(C.a, Decl(typeOfThisInStaticMembers3.ts, 0, 9)) +} + +class D extends C { +>D : Symbol(D, Decl(typeOfThisInStaticMembers3.ts, 3, 1)) +>C : Symbol(C, Decl(typeOfThisInStaticMembers3.ts, 0, 0)) + + static c = 2; +>c : Symbol(D.c, Decl(typeOfThisInStaticMembers3.ts, 5, 19)) + + static d = this.c + 1; +>d : Symbol(D.d, Decl(typeOfThisInStaticMembers3.ts, 6, 17)) +>this.c : Symbol(D.c, Decl(typeOfThisInStaticMembers3.ts, 5, 19)) +>this : Symbol(D, Decl(typeOfThisInStaticMembers3.ts, 3, 1)) +>c : Symbol(D.c, Decl(typeOfThisInStaticMembers3.ts, 5, 19)) + + static e = super.a + this.c + 1; +>e : Symbol(D.e, Decl(typeOfThisInStaticMembers3.ts, 7, 26)) +>super.a : Symbol(C.a, Decl(typeOfThisInStaticMembers3.ts, 0, 9)) +>super : Symbol(C, Decl(typeOfThisInStaticMembers3.ts, 0, 0)) +>a : Symbol(C.a, Decl(typeOfThisInStaticMembers3.ts, 0, 9)) +>this.c : Symbol(D.c, Decl(typeOfThisInStaticMembers3.ts, 5, 19)) +>this : Symbol(D, Decl(typeOfThisInStaticMembers3.ts, 3, 1)) +>c : Symbol(D.c, Decl(typeOfThisInStaticMembers3.ts, 5, 19)) +} + diff --git a/tests/baselines/reference/typeOfThisInStaticMembers3(target=es2022).types b/tests/baselines/reference/typeOfThisInStaticMembers3(target=es2022).types new file mode 100644 index 0000000000000..9af87449fff5c --- /dev/null +++ b/tests/baselines/reference/typeOfThisInStaticMembers3(target=es2022).types @@ -0,0 +1,46 @@ +=== tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers3.ts === +class C { +>C : C + + static a = 1; +>a : number +>1 : 1 + + static b = this.a + 1; +>b : number +>this.a + 1 : number +>this.a : number +>this : typeof C +>a : number +>1 : 1 +} + +class D extends C { +>D : D +>C : C + + static c = 2; +>c : number +>2 : 2 + + static d = this.c + 1; +>d : number +>this.c + 1 : number +>this.c : number +>this : typeof D +>c : number +>1 : 1 + + static e = super.a + this.c + 1; +>e : number +>super.a + this.c + 1 : number +>super.a + this.c : number +>super.a : number +>super : typeof C +>a : number +>this.c : number +>this : typeof D +>c : number +>1 : 1 +} + diff --git a/tests/baselines/reference/typeOfThisInStaticMembers3(target=esnext).js b/tests/baselines/reference/typeOfThisInStaticMembers3(target=esnext).js index ac5018106c0f7..0364cfcf3cd0f 100644 --- a/tests/baselines/reference/typeOfThisInStaticMembers3(target=esnext).js +++ b/tests/baselines/reference/typeOfThisInStaticMembers3(target=esnext).js @@ -12,15 +12,12 @@ class D extends C { //// [typeOfThisInStaticMembers3.js] -var _a, _b, _c; class C { + static { this.a = 1; } + static { this.b = this.a + 1; } } -_a = C; -C.a = 1; -C.b = _a.a + 1; -class D extends (_c = C) { +class D extends C { + static { this.c = 2; } + static { this.d = this.c + 1; } + static { this.e = super.a + this.c + 1; } } -_b = D; -D.c = 2; -D.d = _b.c + 1; -D.e = Reflect.get(_c, "a", _b) + _b.c + 1; diff --git a/tests/baselines/reference/typeOfThisInStaticMembers4(target=es2022).js b/tests/baselines/reference/typeOfThisInStaticMembers4(target=es2022).js new file mode 100644 index 0000000000000..1d64a21910e21 --- /dev/null +++ b/tests/baselines/reference/typeOfThisInStaticMembers4(target=es2022).js @@ -0,0 +1,23 @@ +//// [typeOfThisInStaticMembers4.ts] +class C { + static a = 1; + static b = this.a + 1; +} + +class D extends C { + static c = 2; + static d = this.c + 1; + static e = super.a + this.c + 1; +} + + +//// [typeOfThisInStaticMembers4.js] +class C { + static a = 1; + static b = this.a + 1; +} +class D extends C { + static c = 2; + static d = this.c + 1; + static e = super.a + this.c + 1; +} diff --git a/tests/baselines/reference/typeOfThisInStaticMembers4(target=es2022).symbols b/tests/baselines/reference/typeOfThisInStaticMembers4(target=es2022).symbols new file mode 100644 index 0000000000000..90e4f31f37107 --- /dev/null +++ b/tests/baselines/reference/typeOfThisInStaticMembers4(target=es2022).symbols @@ -0,0 +1,37 @@ +=== tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers4.ts === +class C { +>C : Symbol(C, Decl(typeOfThisInStaticMembers4.ts, 0, 0)) + + static a = 1; +>a : Symbol(C.a, Decl(typeOfThisInStaticMembers4.ts, 0, 9)) + + static b = this.a + 1; +>b : Symbol(C.b, Decl(typeOfThisInStaticMembers4.ts, 1, 17)) +>this.a : Symbol(C.a, Decl(typeOfThisInStaticMembers4.ts, 0, 9)) +>this : Symbol(C, Decl(typeOfThisInStaticMembers4.ts, 0, 0)) +>a : Symbol(C.a, Decl(typeOfThisInStaticMembers4.ts, 0, 9)) +} + +class D extends C { +>D : Symbol(D, Decl(typeOfThisInStaticMembers4.ts, 3, 1)) +>C : Symbol(C, Decl(typeOfThisInStaticMembers4.ts, 0, 0)) + + static c = 2; +>c : Symbol(D.c, Decl(typeOfThisInStaticMembers4.ts, 5, 19)) + + static d = this.c + 1; +>d : Symbol(D.d, Decl(typeOfThisInStaticMembers4.ts, 6, 17)) +>this.c : Symbol(D.c, Decl(typeOfThisInStaticMembers4.ts, 5, 19)) +>this : Symbol(D, Decl(typeOfThisInStaticMembers4.ts, 3, 1)) +>c : Symbol(D.c, Decl(typeOfThisInStaticMembers4.ts, 5, 19)) + + static e = super.a + this.c + 1; +>e : Symbol(D.e, Decl(typeOfThisInStaticMembers4.ts, 7, 26)) +>super.a : Symbol(C.a, Decl(typeOfThisInStaticMembers4.ts, 0, 9)) +>super : Symbol(C, Decl(typeOfThisInStaticMembers4.ts, 0, 0)) +>a : Symbol(C.a, Decl(typeOfThisInStaticMembers4.ts, 0, 9)) +>this.c : Symbol(D.c, Decl(typeOfThisInStaticMembers4.ts, 5, 19)) +>this : Symbol(D, Decl(typeOfThisInStaticMembers4.ts, 3, 1)) +>c : Symbol(D.c, Decl(typeOfThisInStaticMembers4.ts, 5, 19)) +} + diff --git a/tests/baselines/reference/typeOfThisInStaticMembers4(target=es2022).types b/tests/baselines/reference/typeOfThisInStaticMembers4(target=es2022).types new file mode 100644 index 0000000000000..547768640b1e9 --- /dev/null +++ b/tests/baselines/reference/typeOfThisInStaticMembers4(target=es2022).types @@ -0,0 +1,46 @@ +=== tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers4.ts === +class C { +>C : C + + static a = 1; +>a : number +>1 : 1 + + static b = this.a + 1; +>b : number +>this.a + 1 : number +>this.a : number +>this : typeof C +>a : number +>1 : 1 +} + +class D extends C { +>D : D +>C : C + + static c = 2; +>c : number +>2 : 2 + + static d = this.c + 1; +>d : number +>this.c + 1 : number +>this.c : number +>this : typeof D +>c : number +>1 : 1 + + static e = super.a + this.c + 1; +>e : number +>super.a + this.c + 1 : number +>super.a + this.c : number +>super.a : number +>super : typeof C +>a : number +>this.c : number +>this : typeof D +>c : number +>1 : 1 +} + diff --git a/tests/baselines/reference/typeOfThisInStaticMembers5(target=es2022).js b/tests/baselines/reference/typeOfThisInStaticMembers5(target=es2022).js new file mode 100644 index 0000000000000..3c08a270550a6 --- /dev/null +++ b/tests/baselines/reference/typeOfThisInStaticMembers5(target=es2022).js @@ -0,0 +1,18 @@ +//// [typeOfThisInStaticMembers5.ts] +class C { + static create = () => new this("yep") + + constructor (private foo: string) { + + } +} + + +//// [typeOfThisInStaticMembers5.js] +class C { + foo; + static create = () => new this("yep"); + constructor(foo) { + this.foo = foo; + } +} diff --git a/tests/baselines/reference/typeOfThisInStaticMembers5(target=es2022).symbols b/tests/baselines/reference/typeOfThisInStaticMembers5(target=es2022).symbols new file mode 100644 index 0000000000000..cb65daa136c32 --- /dev/null +++ b/tests/baselines/reference/typeOfThisInStaticMembers5(target=es2022).symbols @@ -0,0 +1,14 @@ +=== tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers5.ts === +class C { +>C : Symbol(C, Decl(typeOfThisInStaticMembers5.ts, 0, 0)) + + static create = () => new this("yep") +>create : Symbol(C.create, Decl(typeOfThisInStaticMembers5.ts, 0, 9)) +>this : Symbol(C, Decl(typeOfThisInStaticMembers5.ts, 0, 0)) + + constructor (private foo: string) { +>foo : Symbol(C.foo, Decl(typeOfThisInStaticMembers5.ts, 3, 17)) + + } +} + diff --git a/tests/baselines/reference/typeOfThisInStaticMembers5(target=es2022).types b/tests/baselines/reference/typeOfThisInStaticMembers5(target=es2022).types new file mode 100644 index 0000000000000..63650b490ca90 --- /dev/null +++ b/tests/baselines/reference/typeOfThisInStaticMembers5(target=es2022).types @@ -0,0 +1,17 @@ +=== tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers5.ts === +class C { +>C : C + + static create = () => new this("yep") +>create : () => C +>() => new this("yep") : () => C +>new this("yep") : C +>this : typeof C +>"yep" : "yep" + + constructor (private foo: string) { +>foo : string + + } +} + diff --git a/tests/baselines/reference/typeOfThisInStaticMembers7(target=es2022).js b/tests/baselines/reference/typeOfThisInStaticMembers7(target=es2022).js new file mode 100644 index 0000000000000..7e5d0bc0f819c --- /dev/null +++ b/tests/baselines/reference/typeOfThisInStaticMembers7(target=es2022).js @@ -0,0 +1,23 @@ +//// [typeOfThisInStaticMembers7.ts] +class C { + static a = 1; + static b = this.a + 1; +} + +class D extends C { + static c = 2; + static d = this.c + 1; + static e = 1 + (super.a) + (this.c + 1) + 1; +} + + +//// [typeOfThisInStaticMembers7.js] +class C { + static a = 1; + static b = this.a + 1; +} +class D extends C { + static c = 2; + static d = this.c + 1; + static e = 1 + (super.a) + (this.c + 1) + 1; +} diff --git a/tests/baselines/reference/typeOfThisInStaticMembers7(target=es2022).symbols b/tests/baselines/reference/typeOfThisInStaticMembers7(target=es2022).symbols new file mode 100644 index 0000000000000..dfc319293d7ac --- /dev/null +++ b/tests/baselines/reference/typeOfThisInStaticMembers7(target=es2022).symbols @@ -0,0 +1,37 @@ +=== tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers7.ts === +class C { +>C : Symbol(C, Decl(typeOfThisInStaticMembers7.ts, 0, 0)) + + static a = 1; +>a : Symbol(C.a, Decl(typeOfThisInStaticMembers7.ts, 0, 9)) + + static b = this.a + 1; +>b : Symbol(C.b, Decl(typeOfThisInStaticMembers7.ts, 1, 17)) +>this.a : Symbol(C.a, Decl(typeOfThisInStaticMembers7.ts, 0, 9)) +>this : Symbol(C, Decl(typeOfThisInStaticMembers7.ts, 0, 0)) +>a : Symbol(C.a, Decl(typeOfThisInStaticMembers7.ts, 0, 9)) +} + +class D extends C { +>D : Symbol(D, Decl(typeOfThisInStaticMembers7.ts, 3, 1)) +>C : Symbol(C, Decl(typeOfThisInStaticMembers7.ts, 0, 0)) + + static c = 2; +>c : Symbol(D.c, Decl(typeOfThisInStaticMembers7.ts, 5, 19)) + + static d = this.c + 1; +>d : Symbol(D.d, Decl(typeOfThisInStaticMembers7.ts, 6, 17)) +>this.c : Symbol(D.c, Decl(typeOfThisInStaticMembers7.ts, 5, 19)) +>this : Symbol(D, Decl(typeOfThisInStaticMembers7.ts, 3, 1)) +>c : Symbol(D.c, Decl(typeOfThisInStaticMembers7.ts, 5, 19)) + + static e = 1 + (super.a) + (this.c + 1) + 1; +>e : Symbol(D.e, Decl(typeOfThisInStaticMembers7.ts, 7, 26)) +>super.a : Symbol(C.a, Decl(typeOfThisInStaticMembers7.ts, 0, 9)) +>super : Symbol(C, Decl(typeOfThisInStaticMembers7.ts, 0, 0)) +>a : Symbol(C.a, Decl(typeOfThisInStaticMembers7.ts, 0, 9)) +>this.c : Symbol(D.c, Decl(typeOfThisInStaticMembers7.ts, 5, 19)) +>this : Symbol(D, Decl(typeOfThisInStaticMembers7.ts, 3, 1)) +>c : Symbol(D.c, Decl(typeOfThisInStaticMembers7.ts, 5, 19)) +} + diff --git a/tests/baselines/reference/typeOfThisInStaticMembers7(target=es2022).types b/tests/baselines/reference/typeOfThisInStaticMembers7(target=es2022).types new file mode 100644 index 0000000000000..23f7b690e1d51 --- /dev/null +++ b/tests/baselines/reference/typeOfThisInStaticMembers7(target=es2022).types @@ -0,0 +1,52 @@ +=== tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers7.ts === +class C { +>C : C + + static a = 1; +>a : number +>1 : 1 + + static b = this.a + 1; +>b : number +>this.a + 1 : number +>this.a : number +>this : typeof C +>a : number +>1 : 1 +} + +class D extends C { +>D : D +>C : C + + static c = 2; +>c : number +>2 : 2 + + static d = this.c + 1; +>d : number +>this.c + 1 : number +>this.c : number +>this : typeof D +>c : number +>1 : 1 + + static e = 1 + (super.a) + (this.c + 1) + 1; +>e : number +>1 + (super.a) + (this.c + 1) + 1 : number +>1 + (super.a) + (this.c + 1) : number +>1 + (super.a) : number +>1 : 1 +>(super.a) : number +>super.a : number +>super : typeof C +>a : number +>(this.c + 1) : number +>this.c + 1 : number +>this.c : number +>this : typeof D +>c : number +>1 : 1 +>1 : 1 +} + diff --git a/tests/baselines/reference/typeOfThisInStaticMembers8(target=es2022).errors.txt b/tests/baselines/reference/typeOfThisInStaticMembers8(target=es2022).errors.txt new file mode 100644 index 0000000000000..072f38100cfc6 --- /dev/null +++ b/tests/baselines/reference/typeOfThisInStaticMembers8(target=es2022).errors.txt @@ -0,0 +1,30 @@ +tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers8.ts(5,49): error TS2339: Property 'f' does not exist on type '(Anonymous class)'. +tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers8.ts(11,22): error TS2339: Property 'f' does not exist on type 'CC'. +tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers8.ts(13,29): error TS2339: Property 'f' does not exist on type 'CC'. + + +==== tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers8.ts (3 errors) ==== + class C { + static f = 1; + static arrowFunctionBoundary = () => this.f + 1; + static functionExprBoundary = function () { return this.f + 2 }; + static classExprBoundary = class { a = this.f + 3 }; + ~ +!!! error TS2339: Property 'f' does not exist on type '(Anonymous class)'. + static functionAndClassDeclBoundary = (() => { + function foo () { + return this.f + 4 + } + class CC { + a = this.f + 5 + ~ +!!! error TS2339: Property 'f' does not exist on type 'CC'. + method () { + return this.f + 6 + ~ +!!! error TS2339: Property 'f' does not exist on type 'CC'. + } + } + })(); + } + \ No newline at end of file diff --git a/tests/baselines/reference/typeOfThisInStaticMembers8(target=es2022).js b/tests/baselines/reference/typeOfThisInStaticMembers8(target=es2022).js new file mode 100644 index 0000000000000..6d0e04fe18c71 --- /dev/null +++ b/tests/baselines/reference/typeOfThisInStaticMembers8(target=es2022).js @@ -0,0 +1,40 @@ +//// [typeOfThisInStaticMembers8.ts] +class C { + static f = 1; + static arrowFunctionBoundary = () => this.f + 1; + static functionExprBoundary = function () { return this.f + 2 }; + static classExprBoundary = class { a = this.f + 3 }; + static functionAndClassDeclBoundary = (() => { + function foo () { + return this.f + 4 + } + class CC { + a = this.f + 5 + method () { + return this.f + 6 + } + } + })(); +} + + +//// [typeOfThisInStaticMembers8.js] +class C { + static f = 1; + static arrowFunctionBoundary = () => this.f + 1; + static functionExprBoundary = function () { return this.f + 2; }; + static classExprBoundary = class { + a = this.f + 3; + }; + static functionAndClassDeclBoundary = (() => { + function foo() { + return this.f + 4; + } + class CC { + a = this.f + 5; + method() { + return this.f + 6; + } + } + })(); +} diff --git a/tests/baselines/reference/typeOfThisInStaticMembers8(target=es2022).symbols b/tests/baselines/reference/typeOfThisInStaticMembers8(target=es2022).symbols new file mode 100644 index 0000000000000..6579e0eac2ab4 --- /dev/null +++ b/tests/baselines/reference/typeOfThisInStaticMembers8(target=es2022).symbols @@ -0,0 +1,46 @@ +=== tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers8.ts === +class C { +>C : Symbol(C, Decl(typeOfThisInStaticMembers8.ts, 0, 0)) + + static f = 1; +>f : Symbol(C.f, Decl(typeOfThisInStaticMembers8.ts, 0, 9)) + + static arrowFunctionBoundary = () => this.f + 1; +>arrowFunctionBoundary : Symbol(C.arrowFunctionBoundary, Decl(typeOfThisInStaticMembers8.ts, 1, 17)) +>this.f : Symbol(C.f, Decl(typeOfThisInStaticMembers8.ts, 0, 9)) +>this : Symbol(C, Decl(typeOfThisInStaticMembers8.ts, 0, 0)) +>f : Symbol(C.f, Decl(typeOfThisInStaticMembers8.ts, 0, 9)) + + static functionExprBoundary = function () { return this.f + 2 }; +>functionExprBoundary : Symbol(C.functionExprBoundary, Decl(typeOfThisInStaticMembers8.ts, 2, 52)) + + static classExprBoundary = class { a = this.f + 3 }; +>classExprBoundary : Symbol(C.classExprBoundary, Decl(typeOfThisInStaticMembers8.ts, 3, 68)) +>a : Symbol((Anonymous class).a, Decl(typeOfThisInStaticMembers8.ts, 4, 38)) +>this : Symbol((Anonymous class), Decl(typeOfThisInStaticMembers8.ts, 4, 30)) + + static functionAndClassDeclBoundary = (() => { +>functionAndClassDeclBoundary : Symbol(C.functionAndClassDeclBoundary, Decl(typeOfThisInStaticMembers8.ts, 4, 56)) + + function foo () { +>foo : Symbol(foo, Decl(typeOfThisInStaticMembers8.ts, 5, 50)) + + return this.f + 4 + } + class CC { +>CC : Symbol(CC, Decl(typeOfThisInStaticMembers8.ts, 8, 9)) + + a = this.f + 5 +>a : Symbol(CC.a, Decl(typeOfThisInStaticMembers8.ts, 9, 18)) +>this : Symbol(CC, Decl(typeOfThisInStaticMembers8.ts, 8, 9)) + + method () { +>method : Symbol(CC.method, Decl(typeOfThisInStaticMembers8.ts, 10, 26)) + + return this.f + 6 +>this : Symbol(CC, Decl(typeOfThisInStaticMembers8.ts, 8, 9)) + } + } + })(); +} + diff --git a/tests/baselines/reference/typeOfThisInStaticMembers8(target=es2022).types b/tests/baselines/reference/typeOfThisInStaticMembers8(target=es2022).types new file mode 100644 index 0000000000000..08873785a925c --- /dev/null +++ b/tests/baselines/reference/typeOfThisInStaticMembers8(target=es2022).types @@ -0,0 +1,77 @@ +=== tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers8.ts === +class C { +>C : C + + static f = 1; +>f : number +>1 : 1 + + static arrowFunctionBoundary = () => this.f + 1; +>arrowFunctionBoundary : () => number +>() => this.f + 1 : () => number +>this.f + 1 : number +>this.f : number +>this : typeof C +>f : number +>1 : 1 + + static functionExprBoundary = function () { return this.f + 2 }; +>functionExprBoundary : () => any +>function () { return this.f + 2 } : () => any +>this.f + 2 : any +>this.f : any +>this : any +>f : any +>2 : 2 + + static classExprBoundary = class { a = this.f + 3 }; +>classExprBoundary : typeof (Anonymous class) +>class { a = this.f + 3 } : typeof (Anonymous class) +>a : any +>this.f + 3 : any +>this.f : any +>this : this +>f : any +>3 : 3 + + static functionAndClassDeclBoundary = (() => { +>functionAndClassDeclBoundary : void +>(() => { function foo () { return this.f + 4 } class CC { a = this.f + 5 method () { return this.f + 6 } } })() : void +>(() => { function foo () { return this.f + 4 } class CC { a = this.f + 5 method () { return this.f + 6 } } }) : () => void +>() => { function foo () { return this.f + 4 } class CC { a = this.f + 5 method () { return this.f + 6 } } } : () => void + + function foo () { +>foo : () => any + + return this.f + 4 +>this.f + 4 : any +>this.f : any +>this : any +>f : any +>4 : 4 + } + class CC { +>CC : CC + + a = this.f + 5 +>a : any +>this.f + 5 : any +>this.f : any +>this : this +>f : any +>5 : 5 + + method () { +>method : () => any + + return this.f + 6 +>this.f + 6 : any +>this.f : any +>this : this +>f : any +>6 : 6 + } + } + })(); +} + diff --git a/tests/baselines/reference/typeOfThisInStaticMembers9(target=es2022).errors.txt b/tests/baselines/reference/typeOfThisInStaticMembers9(target=es2022).errors.txt new file mode 100644 index 0000000000000..7bf89ab8b3f97 --- /dev/null +++ b/tests/baselines/reference/typeOfThisInStaticMembers9(target=es2022).errors.txt @@ -0,0 +1,39 @@ +tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers9.ts(7,56): error TS2660: 'super' can only be referenced in members of derived classes or object literal expressions. +tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers9.ts(8,44): error TS2335: 'super' can only be referenced in a derived class. +tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers9.ts(11,20): error TS2660: 'super' can only be referenced in members of derived classes or object literal expressions. +tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers9.ts(14,17): error TS2335: 'super' can only be referenced in a derived class. +tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers9.ts(16,24): error TS2335: 'super' can only be referenced in a derived class. + + +==== tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers9.ts (5 errors) ==== + class C { + static f = 1 + } + + class D extends C { + static arrowFunctionBoundary = () => super.f + 1; + static functionExprBoundary = function () { return super.f + 2 }; + ~~~~~ +!!! error TS2660: 'super' can only be referenced in members of derived classes or object literal expressions. + static classExprBoundary = class { a = super.f + 3 }; + ~~~~~ +!!! error TS2335: 'super' can only be referenced in a derived class. + static functionAndClassDeclBoundary = (() => { + function foo () { + return super.f + 4 + ~~~~~ +!!! error TS2660: 'super' can only be referenced in members of derived classes or object literal expressions. + } + class C { + a = super.f + 5 + ~~~~~ +!!! error TS2335: 'super' can only be referenced in a derived class. + method () { + return super.f +6 + ~~~~~ +!!! error TS2335: 'super' can only be referenced in a derived class. + } + } + })(); + } + \ No newline at end of file diff --git a/tests/baselines/reference/typeOfThisInStaticMembers9(target=es2022).js b/tests/baselines/reference/typeOfThisInStaticMembers9(target=es2022).js new file mode 100644 index 0000000000000..861937ac70d39 --- /dev/null +++ b/tests/baselines/reference/typeOfThisInStaticMembers9(target=es2022).js @@ -0,0 +1,45 @@ +//// [typeOfThisInStaticMembers9.ts] +class C { + static f = 1 +} + +class D extends C { + static arrowFunctionBoundary = () => super.f + 1; + static functionExprBoundary = function () { return super.f + 2 }; + static classExprBoundary = class { a = super.f + 3 }; + static functionAndClassDeclBoundary = (() => { + function foo () { + return super.f + 4 + } + class C { + a = super.f + 5 + method () { + return super.f +6 + } + } + })(); +} + + +//// [typeOfThisInStaticMembers9.js] +class C { + static f = 1; +} +class D extends C { + static arrowFunctionBoundary = () => super.f + 1; + static functionExprBoundary = function () { return super.f + 2; }; + static classExprBoundary = class { + a = super.f + 3; + }; + static functionAndClassDeclBoundary = (() => { + function foo() { + return super.f + 4; + } + class C { + a = super.f + 5; + method() { + return super.f + 6; + } + } + })(); +} diff --git a/tests/baselines/reference/typeOfThisInStaticMembers9(target=es2022).symbols b/tests/baselines/reference/typeOfThisInStaticMembers9(target=es2022).symbols new file mode 100644 index 0000000000000..15dd3c13164c8 --- /dev/null +++ b/tests/baselines/reference/typeOfThisInStaticMembers9(target=es2022).symbols @@ -0,0 +1,48 @@ +=== tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers9.ts === +class C { +>C : Symbol(C, Decl(typeOfThisInStaticMembers9.ts, 0, 0)) + + static f = 1 +>f : Symbol(C.f, Decl(typeOfThisInStaticMembers9.ts, 0, 9)) +} + +class D extends C { +>D : Symbol(D, Decl(typeOfThisInStaticMembers9.ts, 2, 1)) +>C : Symbol(C, Decl(typeOfThisInStaticMembers9.ts, 0, 0)) + + static arrowFunctionBoundary = () => super.f + 1; +>arrowFunctionBoundary : Symbol(D.arrowFunctionBoundary, Decl(typeOfThisInStaticMembers9.ts, 4, 19)) +>super.f : Symbol(C.f, Decl(typeOfThisInStaticMembers9.ts, 0, 9)) +>super : Symbol(C, Decl(typeOfThisInStaticMembers9.ts, 0, 0)) +>f : Symbol(C.f, Decl(typeOfThisInStaticMembers9.ts, 0, 9)) + + static functionExprBoundary = function () { return super.f + 2 }; +>functionExprBoundary : Symbol(D.functionExprBoundary, Decl(typeOfThisInStaticMembers9.ts, 5, 53)) + + static classExprBoundary = class { a = super.f + 3 }; +>classExprBoundary : Symbol(D.classExprBoundary, Decl(typeOfThisInStaticMembers9.ts, 6, 69)) +>a : Symbol((Anonymous class).a, Decl(typeOfThisInStaticMembers9.ts, 7, 38)) + + static functionAndClassDeclBoundary = (() => { +>functionAndClassDeclBoundary : Symbol(D.functionAndClassDeclBoundary, Decl(typeOfThisInStaticMembers9.ts, 7, 57)) + + function foo () { +>foo : Symbol(foo, Decl(typeOfThisInStaticMembers9.ts, 8, 50)) + + return super.f + 4 + } + class C { +>C : Symbol(C, Decl(typeOfThisInStaticMembers9.ts, 11, 9)) + + a = super.f + 5 +>a : Symbol(C.a, Decl(typeOfThisInStaticMembers9.ts, 12, 17)) + + method () { +>method : Symbol(C.method, Decl(typeOfThisInStaticMembers9.ts, 13, 27)) + + return super.f +6 + } + } + })(); +} + diff --git a/tests/baselines/reference/typeOfThisInStaticMembers9(target=es2022).types b/tests/baselines/reference/typeOfThisInStaticMembers9(target=es2022).types new file mode 100644 index 0000000000000..03f49b98d4c0a --- /dev/null +++ b/tests/baselines/reference/typeOfThisInStaticMembers9(target=es2022).types @@ -0,0 +1,82 @@ +=== tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers9.ts === +class C { +>C : C + + static f = 1 +>f : number +>1 : 1 +} + +class D extends C { +>D : D +>C : C + + static arrowFunctionBoundary = () => super.f + 1; +>arrowFunctionBoundary : () => number +>() => super.f + 1 : () => number +>super.f + 1 : number +>super.f : number +>super : typeof C +>f : number +>1 : 1 + + static functionExprBoundary = function () { return super.f + 2 }; +>functionExprBoundary : () => any +>function () { return super.f + 2 } : () => any +>super.f + 2 : any +>super.f : any +>super : any +>f : any +>2 : 2 + + static classExprBoundary = class { a = super.f + 3 }; +>classExprBoundary : typeof (Anonymous class) +>class { a = super.f + 3 } : typeof (Anonymous class) +>a : any +>super.f + 3 : any +>super.f : any +>super : any +>f : any +>3 : 3 + + static functionAndClassDeclBoundary = (() => { +>functionAndClassDeclBoundary : void +>(() => { function foo () { return super.f + 4 } class C { a = super.f + 5 method () { return super.f +6 } } })() : void +>(() => { function foo () { return super.f + 4 } class C { a = super.f + 5 method () { return super.f +6 } } }) : () => void +>() => { function foo () { return super.f + 4 } class C { a = super.f + 5 method () { return super.f +6 } } } : () => void + + function foo () { +>foo : () => any + + return super.f + 4 +>super.f + 4 : any +>super.f : any +>super : any +>f : any +>4 : 4 + } + class C { +>C : C + + a = super.f + 5 +>a : any +>super.f + 5 : any +>super.f : any +>super : any +>f : any +>5 : 5 + + method () { +>method : () => any + + return super.f +6 +>super.f +6 : any +>super.f : any +>super : any +>f : any +>6 : 6 + } + } + })(); +} + diff --git a/tests/baselines/reference/typeParameterDiamond3.errors.txt b/tests/baselines/reference/typeParameterDiamond3.errors.txt index 01740e7c072c9..87e8d67545544 100644 --- a/tests/baselines/reference/typeParameterDiamond3.errors.txt +++ b/tests/baselines/reference/typeParameterDiamond3.errors.txt @@ -3,8 +3,6 @@ tests/cases/compiler/typeParameterDiamond3.ts(8,13): error TS2322: Type 'T | U' tests/cases/compiler/typeParameterDiamond3.ts(9,13): error TS2322: Type 'Bottom' is not assignable to type 'T | U'. Type 'Top | T | U' is not assignable to type 'T | U'. Type 'Top' is not assignable to type 'T | U'. - Type 'Top' is not assignable to type 'U'. - 'U' could be instantiated with an arbitrary type which could be unrelated to 'Top'. tests/cases/compiler/typeParameterDiamond3.ts(10,13): error TS2322: Type 'Bottom' is not assignable to type 'Top'. 'Top' could be instantiated with an arbitrary type which could be unrelated to 'Bottom'. @@ -26,8 +24,6 @@ tests/cases/compiler/typeParameterDiamond3.ts(10,13): error TS2322: Type 'Bottom !!! error TS2322: Type 'Bottom' is not assignable to type 'T | U'. !!! error TS2322: Type 'Top | T | U' is not assignable to type 'T | U'. !!! error TS2322: Type 'Top' is not assignable to type 'T | U'. -!!! error TS2322: Type 'Top' is not assignable to type 'U'. -!!! error TS2322: 'U' could be instantiated with an arbitrary type which could be unrelated to 'Top'. top = bottom; ~~~ !!! error TS2322: Type 'Bottom' is not assignable to type 'Top'. diff --git a/tests/baselines/reference/typeParametersAvailableInNestedScope3.js b/tests/baselines/reference/typeParametersAvailableInNestedScope3.js new file mode 100644 index 0000000000000..44ea98b81d9b0 --- /dev/null +++ b/tests/baselines/reference/typeParametersAvailableInNestedScope3.js @@ -0,0 +1,37 @@ +//// [typeParametersAvailableInNestedScope3.ts] +function foo(v: T) { + function a(a: T) { return a; } + function b(): T { return v; } + + function c(v: T) { + function a(a: T) { return a; } + function b(): T { return v; } + return { a, b }; + } + + return { a, b, c }; +} + + +//// [typeParametersAvailableInNestedScope3.js] +function foo(v) { + function a(a) { return a; } + function b() { return v; } + function c(v) { + function a(a) { return a; } + function b() { return v; } + return { a: a, b: b }; + } + return { a: a, b: b, c: c }; +} + + +//// [typeParametersAvailableInNestedScope3.d.ts] +declare function foo(v: T): { + a: (a: T_1) => T_1; + b: () => T; + c: (v: T_2) => { + a: (a: T_3) => T_3; + b: () => T_2; + }; +}; diff --git a/tests/baselines/reference/typeParametersAvailableInNestedScope3.symbols b/tests/baselines/reference/typeParametersAvailableInNestedScope3.symbols new file mode 100644 index 0000000000000..18013106204b1 --- /dev/null +++ b/tests/baselines/reference/typeParametersAvailableInNestedScope3.symbols @@ -0,0 +1,48 @@ +=== tests/cases/conformance/types/typeParameters/typeParameterLists/typeParametersAvailableInNestedScope3.ts === +function foo(v: T) { +>foo : Symbol(foo, Decl(typeParametersAvailableInNestedScope3.ts, 0, 0)) +>T : Symbol(T, Decl(typeParametersAvailableInNestedScope3.ts, 0, 13)) +>v : Symbol(v, Decl(typeParametersAvailableInNestedScope3.ts, 0, 16)) +>T : Symbol(T, Decl(typeParametersAvailableInNestedScope3.ts, 0, 13)) + + function a(a: T) { return a; } +>a : Symbol(a, Decl(typeParametersAvailableInNestedScope3.ts, 0, 23)) +>T : Symbol(T, Decl(typeParametersAvailableInNestedScope3.ts, 1, 15)) +>a : Symbol(a, Decl(typeParametersAvailableInNestedScope3.ts, 1, 18)) +>T : Symbol(T, Decl(typeParametersAvailableInNestedScope3.ts, 1, 15)) +>a : Symbol(a, Decl(typeParametersAvailableInNestedScope3.ts, 1, 18)) + + function b(): T { return v; } +>b : Symbol(b, Decl(typeParametersAvailableInNestedScope3.ts, 1, 37)) +>T : Symbol(T, Decl(typeParametersAvailableInNestedScope3.ts, 0, 13)) +>v : Symbol(v, Decl(typeParametersAvailableInNestedScope3.ts, 0, 16)) + + function c(v: T) { +>c : Symbol(c, Decl(typeParametersAvailableInNestedScope3.ts, 2, 33)) +>T : Symbol(T, Decl(typeParametersAvailableInNestedScope3.ts, 4, 15)) +>v : Symbol(v, Decl(typeParametersAvailableInNestedScope3.ts, 4, 18)) +>T : Symbol(T, Decl(typeParametersAvailableInNestedScope3.ts, 4, 15)) + + function a(a: T) { return a; } +>a : Symbol(a, Decl(typeParametersAvailableInNestedScope3.ts, 4, 25)) +>T : Symbol(T, Decl(typeParametersAvailableInNestedScope3.ts, 5, 19)) +>a : Symbol(a, Decl(typeParametersAvailableInNestedScope3.ts, 5, 22)) +>T : Symbol(T, Decl(typeParametersAvailableInNestedScope3.ts, 5, 19)) +>a : Symbol(a, Decl(typeParametersAvailableInNestedScope3.ts, 5, 22)) + + function b(): T { return v; } +>b : Symbol(b, Decl(typeParametersAvailableInNestedScope3.ts, 5, 41)) +>T : Symbol(T, Decl(typeParametersAvailableInNestedScope3.ts, 4, 15)) +>v : Symbol(v, Decl(typeParametersAvailableInNestedScope3.ts, 4, 18)) + + return { a, b }; +>a : Symbol(a, Decl(typeParametersAvailableInNestedScope3.ts, 7, 16)) +>b : Symbol(b, Decl(typeParametersAvailableInNestedScope3.ts, 7, 19)) + } + + return { a, b, c }; +>a : Symbol(a, Decl(typeParametersAvailableInNestedScope3.ts, 10, 12)) +>b : Symbol(b, Decl(typeParametersAvailableInNestedScope3.ts, 10, 15)) +>c : Symbol(c, Decl(typeParametersAvailableInNestedScope3.ts, 10, 18)) +} + diff --git a/tests/baselines/reference/typeParametersAvailableInNestedScope3.types b/tests/baselines/reference/typeParametersAvailableInNestedScope3.types new file mode 100644 index 0000000000000..81e1ae7e73016 --- /dev/null +++ b/tests/baselines/reference/typeParametersAvailableInNestedScope3.types @@ -0,0 +1,40 @@ +=== tests/cases/conformance/types/typeParameters/typeParameterLists/typeParametersAvailableInNestedScope3.ts === +function foo(v: T) { +>foo : (v: T) => { a: (a: T) => T; b: () => T; c: (v: T) => { a: (a: T) => T; b: () => T; }; } +>v : T + + function a(a: T) { return a; } +>a : (a: T) => T +>a : T +>a : T + + function b(): T { return v; } +>b : () => T +>v : T + + function c(v: T) { +>c : (v: T) => { a: (a: T) => T; b: () => T; } +>v : T + + function a(a: T) { return a; } +>a : (a: T) => T +>a : T +>a : T + + function b(): T { return v; } +>b : () => T +>v : T + + return { a, b }; +>{ a, b } : { a: (a: T) => T; b: () => T; } +>a : (a: T) => T +>b : () => T + } + + return { a, b, c }; +>{ a, b, c } : { a: (a: T) => T; b: () => T; c: (v: T) => { a: (a: T) => T; b: () => T; }; } +>a : (a: T) => T +>b : () => T +>c : (v: T) => { a: (a: T) => T; b: () => T; } +} + diff --git a/tests/baselines/reference/typedefCrossModule2.types b/tests/baselines/reference/typedefCrossModule2.types index d38cc33a6d72d..ca18755037455 100644 --- a/tests/baselines/reference/typedefCrossModule2.types +++ b/tests/baselines/reference/typedefCrossModule2.types @@ -1,7 +1,7 @@ === tests/cases/conformance/jsdoc/use.js === var mod = require('./mod1.js'); ->mod : { Baz: typeof Baz; Bar: typeof mod.Bar; Quid: number; } | { Quack: number; Bar: typeof mod.Bar; Quid: number; } ->require('./mod1.js') : { Baz: typeof Baz; Bar: typeof mod.Bar; Quid: number; } | { Quack: number; Bar: typeof mod.Bar; Quid: number; } +>mod : { Baz: typeof Baz; Bar: typeof mod.Bar; Quid: 2; } | { Quack: number; Bar: typeof mod.Bar; Quid: 2; } +>require('./mod1.js') : { Baz: typeof Baz; Bar: typeof mod.Bar; Quid: 2; } | { Quack: number; Bar: typeof mod.Bar; Quid: 2; } >require : any >'./mod1.js' : "./mod1.js" @@ -17,7 +17,7 @@ var bbb = new mod.Baz(); >bbb : any >new mod.Baz() : any >mod.Baz : any ->mod : { Baz: typeof Baz; Bar: typeof mod.Bar; Quid: number; } | { Quack: number; Bar: typeof mod.Bar; Quid: number; } +>mod : { Baz: typeof Baz; Bar: typeof mod.Bar; Quid: 2; } | { Quack: number; Bar: typeof mod.Bar; Quid: 2; } >Baz : any === tests/cases/conformance/jsdoc/mod1.js === @@ -31,16 +31,16 @@ class Foo { } // should error exports.Bar = class { } >exports.Bar = class { } : typeof Bar >exports.Bar : typeof Bar ->exports : { Baz: typeof Baz; Bar: typeof Bar; Quid: number; } | { Quack: number; Bar: typeof Bar; Quid: number; } +>exports : { Baz: typeof Baz; Bar: typeof Bar; Quid: 2; } | { Quack: number; Bar: typeof Bar; Quid: 2; } >Bar : typeof Bar >class { } : typeof Bar /** @typedef {number} Baz */ module.exports = { ->module.exports = { Baz: class { }} : { Baz: typeof Baz; Bar: typeof Bar; Quid: number; } | { Quack: number; Bar: typeof Bar; Quid: number; } ->module.exports : { Baz: typeof Baz; Bar: typeof Bar; Quid: number; } | { Quack: number; Bar: typeof Bar; Quid: number; } ->module : { exports: { Baz: typeof Baz; Bar: typeof Bar; Quid: number; } | { Quack: number; Bar: typeof Bar; Quid: number; }; } ->exports : { Baz: typeof Baz; Bar: typeof Bar; Quid: number; } | { Quack: number; Bar: typeof Bar; Quid: number; } +>module.exports = { Baz: class { }} : { Baz: typeof Baz; Bar: typeof Bar; Quid: 2; } | { Quack: number; Bar: typeof Bar; Quid: 2; } +>module.exports : { Baz: typeof Baz; Bar: typeof Bar; Quid: 2; } | { Quack: number; Bar: typeof Bar; Quid: 2; } +>module : { exports: { Baz: typeof Baz; Bar: typeof Bar; Quid: 2; } | { Quack: number; Bar: typeof Bar; Quid: 2; }; } +>exports : { Baz: typeof Baz; Bar: typeof Bar; Quid: 2; } | { Quack: number; Bar: typeof Bar; Quid: 2; } >{ Baz: class { }} : { Baz: typeof Baz; } Baz: class { } @@ -58,17 +58,17 @@ var Qux = 2; /** @typedef {number} Quid */ exports.Quid = 2; >exports.Quid = 2 : 2 ->exports.Quid : number ->exports : { Baz: typeof Baz; Bar: typeof Bar; Quid: number; } | { Quack: number; Bar: typeof Bar; Quid: number; } ->Quid : number +>exports.Quid : 2 +>exports : { Baz: typeof Baz; Bar: typeof Bar; Quid: 2; } | { Quack: number; Bar: typeof Bar; Quid: 2; } +>Quid : 2 >2 : 2 /** @typedef {number} Quack */ module.exports = { ->module.exports = { Quack: 2} : { Baz: typeof Baz; Bar: typeof Bar; Quid: number; } | { Quack: number; Bar: typeof Bar; Quid: number; } ->module.exports : { Baz: typeof Baz; Bar: typeof Bar; Quid: number; } | { Quack: number; Bar: typeof Bar; Quid: number; } ->module : { exports: { Baz: typeof Baz; Bar: typeof Bar; Quid: number; } | { Quack: number; Bar: typeof Bar; Quid: number; }; } ->exports : { Baz: typeof Baz; Bar: typeof Bar; Quid: number; } | { Quack: number; Bar: typeof Bar; Quid: number; } +>module.exports = { Quack: 2} : { Baz: typeof Baz; Bar: typeof Bar; Quid: 2; } | { Quack: number; Bar: typeof Bar; Quid: 2; } +>module.exports : { Baz: typeof Baz; Bar: typeof Bar; Quid: 2; } | { Quack: number; Bar: typeof Bar; Quid: 2; } +>module : { exports: { Baz: typeof Baz; Bar: typeof Bar; Quid: 2; } | { Quack: number; Bar: typeof Bar; Quid: 2; }; } +>exports : { Baz: typeof Baz; Bar: typeof Bar; Quid: 2; } | { Quack: number; Bar: typeof Bar; Quid: 2; } >{ Quack: 2} : { Quack: number; } Quack: 2 diff --git a/tests/baselines/reference/typedefCrossModule5.errors.txt b/tests/baselines/reference/typedefCrossModule5.errors.txt index 6ee4682744109..9fe68ba800d0a 100644 --- a/tests/baselines/reference/typedefCrossModule5.errors.txt +++ b/tests/baselines/reference/typedefCrossModule5.errors.txt @@ -56,5 +56,8 @@ !!! error TS2451: Cannot redeclare block-scoped variable 'Bar'. !!! related TS6203 tests/cases/conformance/jsdoc/mod1.js:2:7: 'Bar' was also declared here. -Found 4 errors. +Found 4 errors in 2 files. +Errors Files + 2 tests/cases/conformance/jsdoc/mod1.js:1 + 2 tests/cases/conformance/jsdoc/mod2.js:1 diff --git a/tests/baselines/reference/typeofThis.errors.txt b/tests/baselines/reference/typeofThis.errors.txt index 0859ccaa2d7c0..a4a3be693aa93 100644 --- a/tests/baselines/reference/typeofThis.errors.txt +++ b/tests/baselines/reference/typeofThis.errors.txt @@ -146,4 +146,25 @@ tests/cases/conformance/types/specifyingTypes/typeQueries/typeofThis.ts(57,24): let y: string = o.this.x; // should narrow to string } } + } + + class Tests12 { + test1() { // OK + type Test = typeof this; + } + + test2() { // OK + for (;;) {} + type Test = typeof this; + } + + test3() { // expected no compile errors + for (const dummy in []) {} + type Test = typeof this; + } + + test4() { // expected no compile errors + for (const dummy of []) {} + type Test = typeof this; + } } \ No newline at end of file diff --git a/tests/baselines/reference/typeofThis.js b/tests/baselines/reference/typeofThis.js index e06e3e383f405..4de9aac427167 100644 --- a/tests/baselines/reference/typeofThis.js +++ b/tests/baselines/reference/typeofThis.js @@ -120,6 +120,27 @@ class Test11 { let y: string = o.this.x; // should narrow to string } } +} + +class Tests12 { + test1() { // OK + type Test = typeof this; + } + + test2() { // OK + for (;;) {} + type Test = typeof this; + } + + test3() { // expected no compile errors + for (const dummy in []) {} + type Test = typeof this; + } + + test4() { // expected no compile errors + for (const dummy of []) {} + type Test = typeof this; + } } //// [typeofThis.js] @@ -241,3 +262,21 @@ var Test11 = /** @class */ (function () { }; return Test11; }()); +var Tests12 = /** @class */ (function () { + function Tests12() { + } + Tests12.prototype.test1 = function () { + }; + Tests12.prototype.test2 = function () { + for (;;) { } + }; + Tests12.prototype.test3 = function () { + for (var dummy in []) { } + }; + Tests12.prototype.test4 = function () { + for (var _i = 0, _a = []; _i < _a.length; _i++) { + var dummy = _a[_i]; + } + }; + return Tests12; +}()); diff --git a/tests/baselines/reference/typeofThis.symbols b/tests/baselines/reference/typeofThis.symbols index dde439e3d0d96..fade7c3c37511 100644 --- a/tests/baselines/reference/typeofThis.symbols +++ b/tests/baselines/reference/typeofThis.symbols @@ -9,6 +9,7 @@ class Test { var copy: typeof this.data = {}; >copy : Symbol(copy, Decl(typeofThis.ts, 3, 11)) >this.data : Symbol(Test.data, Decl(typeofThis.ts, 0, 12)) +>this : Symbol(Test, Decl(typeofThis.ts, 0, 0)) >data : Symbol(Test.data, Decl(typeofThis.ts, 0, 12)) } } @@ -28,6 +29,7 @@ class Test1 { var copy: typeof this.data = { foo: '' }; >copy : Symbol(copy, Decl(typeofThis.ts, 11, 11)) >this.data : Symbol(Test1.data, Decl(typeofThis.ts, 7, 13)) +>this : Symbol(Test1, Decl(typeofThis.ts, 5, 1)) >data : Symbol(Test1.data, Decl(typeofThis.ts, 7, 13)) >foo : Symbol(foo, Decl(typeofThis.ts, 11, 38)) @@ -35,11 +37,13 @@ class Test1 { >foo : Symbol(foo, Decl(typeofThis.ts, 12, 11)) >this.data.foo : Symbol(foo, Decl(typeofThis.ts, 8, 12)) >this.data : Symbol(Test1.data, Decl(typeofThis.ts, 7, 13)) +>this : Symbol(Test1, Decl(typeofThis.ts, 5, 1)) >data : Symbol(Test1.data, Decl(typeofThis.ts, 7, 13)) >foo : Symbol(foo, Decl(typeofThis.ts, 8, 12)) var self: typeof this = this; >self : Symbol(self, Decl(typeofThis.ts, 14, 11)) +>this : Symbol(Test1, Decl(typeofThis.ts, 5, 1)) >this : Symbol(Test1, Decl(typeofThis.ts, 5, 1)) self.data; @@ -50,6 +54,7 @@ class Test1 { var str: typeof this.this = ''; >str : Symbol(str, Decl(typeofThis.ts, 17, 11)) >this.this : Symbol(Test1['this'], Decl(typeofThis.ts, 8, 23)) +>this : Symbol(Test1, Decl(typeofThis.ts, 5, 1)) >this : Symbol(Test1['this'], Decl(typeofThis.ts, 8, 23)) } } @@ -99,6 +104,7 @@ class Test5 { let x: typeof this.no = 1; >x : Symbol(x, Decl(typeofThis.ts, 39, 11)) >this.no : Symbol(Test5.no, Decl(typeofThis.ts, 34, 13)) +>this : Symbol(Test5, Decl(typeofThis.ts, 32, 1)) >no : Symbol(Test5.no, Decl(typeofThis.ts, 34, 13)) } } @@ -130,6 +136,7 @@ const Test8 = () => { let x: typeof this.no = 1; >x : Symbol(x, Decl(typeofThis.ts, 56, 7)) +>this : Symbol(globalThis) } class Test9 { @@ -150,6 +157,7 @@ class Test9 { const d1: typeof this = this; >d1 : Symbol(d1, Decl(typeofThis.ts, 65, 17)) +>this : Symbol(Test9, Decl(typeofThis.ts, 57, 1)) d1.f1(); >d1.f1 : Symbol(Test9D1.f1, Decl(typeofThis.ts, 86, 15)) @@ -163,6 +171,7 @@ class Test9 { const d2: typeof this = this; >d2 : Symbol(d2, Decl(typeofThis.ts, 70, 17)) +>this : Symbol(Test9, Decl(typeofThis.ts, 57, 1)) d2.f2(); >d2.f2 : Symbol(Test9D2.f2, Decl(typeofThis.ts, 90, 15)) @@ -182,6 +191,7 @@ class Test9 { const no: typeof this.no = this.no; >no : Symbol(no, Decl(typeofThis.ts, 77, 17)) >this.no : Symbol(Test9.no, Decl(typeofThis.ts, 59, 13)) +>this : Symbol(Test9, Decl(typeofThis.ts, 57, 1)) >no : Symbol(Test9.no, Decl(typeofThis.ts, 59, 13)) >this.no : Symbol(Test9.no, Decl(typeofThis.ts, 59, 13)) >this : Symbol(Test9, Decl(typeofThis.ts, 57, 1)) @@ -196,6 +206,7 @@ class Test9 { const no: typeof this.this = this.this; >no : Symbol(no, Decl(typeofThis.ts, 81, 17)) >this.this : Symbol(Test9.this, Decl(typeofThis.ts, 60, 11)) +>this : Symbol(Test9, Decl(typeofThis.ts, 57, 1)) >this : Symbol(Test9.this, Decl(typeofThis.ts, 60, 11)) >this.this : Symbol(Test9.this, Decl(typeofThis.ts, 60, 11)) >this : Symbol(Test9, Decl(typeofThis.ts, 57, 1)) @@ -231,6 +242,7 @@ class Test10 { let a: typeof this.a = undefined as any; >a : Symbol(a, Decl(typeofThis.ts, 98, 11)) >this.a : Symbol(Test10.a, Decl(typeofThis.ts, 94, 14)) +>this : Symbol(Test10, Decl(typeofThis.ts, 92, 1)) >a : Symbol(Test10.a, Decl(typeofThis.ts, 94, 14)) >undefined : Symbol(undefined) @@ -242,6 +254,7 @@ class Test10 { let a: typeof this.a = undefined as any; // should narrow to { b?: string } >a : Symbol(a, Decl(typeofThis.ts, 100, 15)) >this.a : Symbol(Test10.a, Decl(typeofThis.ts, 94, 14)) +>this : Symbol(Test10, Decl(typeofThis.ts, 92, 1)) >a : Symbol(Test10.a, Decl(typeofThis.ts, 94, 14)) >undefined : Symbol(undefined) @@ -249,6 +262,7 @@ class Test10 { >b : Symbol(b, Decl(typeofThis.ts, 101, 15)) >this.a.b : Symbol(b, Decl(typeofThis.ts, 95, 9)) >this.a : Symbol(Test10.a, Decl(typeofThis.ts, 94, 14)) +>this : Symbol(Test10, Decl(typeofThis.ts, 92, 1)) >a : Symbol(Test10.a, Decl(typeofThis.ts, 94, 14)) >b : Symbol(b, Decl(typeofThis.ts, 95, 9)) >undefined : Symbol(undefined) @@ -264,6 +278,7 @@ class Test10 { >b : Symbol(b, Decl(typeofThis.ts, 104, 19)) >this.a.b : Symbol(b, Decl(typeofThis.ts, 95, 9)) >this.a : Symbol(Test10.a, Decl(typeofThis.ts, 94, 14)) +>this : Symbol(Test10, Decl(typeofThis.ts, 92, 1)) >a : Symbol(Test10.a, Decl(typeofThis.ts, 94, 14)) >b : Symbol(b, Decl(typeofThis.ts, 95, 9)) >undefined : Symbol(undefined) @@ -312,3 +327,46 @@ class Test11 { } } } + +class Tests12 { +>Tests12 : Symbol(Tests12, Decl(typeofThis.ts, 121, 1)) + + test1() { // OK +>test1 : Symbol(Tests12.test1, Decl(typeofThis.ts, 123, 15)) + + type Test = typeof this; +>Test : Symbol(Test, Decl(typeofThis.ts, 124, 13)) +>this : Symbol(Tests12, Decl(typeofThis.ts, 121, 1)) + } + + test2() { // OK +>test2 : Symbol(Tests12.test2, Decl(typeofThis.ts, 126, 5)) + + for (;;) {} + type Test = typeof this; +>Test : Symbol(Test, Decl(typeofThis.ts, 129, 19)) +>this : Symbol(Tests12, Decl(typeofThis.ts, 121, 1)) + } + + test3() { // expected no compile errors +>test3 : Symbol(Tests12.test3, Decl(typeofThis.ts, 131, 5)) + + for (const dummy in []) {} +>dummy : Symbol(dummy, Decl(typeofThis.ts, 134, 18)) + + type Test = typeof this; +>Test : Symbol(Test, Decl(typeofThis.ts, 134, 34)) +>this : Symbol(Tests12, Decl(typeofThis.ts, 121, 1)) + } + + test4() { // expected no compile errors +>test4 : Symbol(Tests12.test4, Decl(typeofThis.ts, 136, 5)) + + for (const dummy of []) {} +>dummy : Symbol(dummy, Decl(typeofThis.ts, 139, 18)) + + type Test = typeof this; +>Test : Symbol(Test, Decl(typeofThis.ts, 139, 34)) +>this : Symbol(Tests12, Decl(typeofThis.ts, 121, 1)) + } +} diff --git a/tests/baselines/reference/typeofThis.types b/tests/baselines/reference/typeofThis.types index 61d8c8080eea9..a8c4426d9fe8f 100644 --- a/tests/baselines/reference/typeofThis.types +++ b/tests/baselines/reference/typeofThis.types @@ -10,7 +10,7 @@ class Test { var copy: typeof this.data = {}; >copy : {} >this.data : {} ->this : any +>this : this >data : {} >{} : {} } @@ -34,7 +34,7 @@ class Test1 { var copy: typeof this.data = { foo: '' }; >copy : { foo: string; } >this.data : { foo: string; } ->this : any +>this : this >data : { foo: string; } >{ foo: '' } : { foo: string; } >foo : string @@ -44,14 +44,14 @@ class Test1 { >foo : string >this.data.foo : string >this.data : { foo: string; } ->this : any +>this : this >data : { foo: string; } >foo : string >'' : "" var self: typeof this = this; >self : this ->this : any +>this : this >this : this self.data; @@ -62,7 +62,7 @@ class Test1 { var str: typeof this.this = ''; >str : string >this.this : string ->this : any +>this : this >this : string >'' : "" } @@ -121,7 +121,7 @@ class Test5 { let x: typeof this.no = 1; >x : number >this.no : number ->this : any +>this : this >no : number >1 : 1 } @@ -166,7 +166,7 @@ const Test8 = () => { let x: typeof this.no = 1; >x : any >this.no : any ->this : any +>this : typeof globalThis >no : any >1 : 1 } @@ -192,7 +192,7 @@ class Test9 { const d1: typeof this = this; >d1 : this & Test9D1 ->this : any +>this : this & Test9D1 >this : this & Test9D1 d1.f1(); @@ -209,7 +209,7 @@ class Test9 { const d2: typeof this = this; >d2 : this & Test9D2 ->this : any +>this : this & Test9D2 >this : this & Test9D2 d2.f2(); @@ -233,7 +233,7 @@ class Test9 { const no: typeof this.no = this.no; >no : 1 >this.no : 1 ->this : any +>this : this >no : 1 >this.no : 1 >this : this @@ -250,7 +250,7 @@ class Test9 { const no: typeof this.this = this.this; >no : 1 >this.this : 1 ->this : any +>this : this >this : 1 >this.this : 1 >this : this @@ -286,7 +286,7 @@ class Test10 { let a: typeof this.a = undefined as any; >a : { b?: string | undefined; } | undefined >this.a : { b?: string | undefined; } | undefined ->this : any +>this : this >a : { b?: string | undefined; } | undefined >undefined as any : any >undefined : undefined @@ -299,7 +299,7 @@ class Test10 { let a: typeof this.a = undefined as any; // should narrow to { b?: string } >a : { b?: string | undefined; } >this.a : { b?: string | undefined; } ->this : any +>this : this >a : { b?: string | undefined; } >undefined as any : any >undefined : undefined @@ -308,7 +308,7 @@ class Test10 { >b : string | undefined >this.a.b : string | undefined >this.a : { b?: string | undefined; } ->this : any +>this : this >a : { b?: string | undefined; } >b : string | undefined >undefined as any : any @@ -325,7 +325,7 @@ class Test10 { >b : string >this.a.b : string >this.a : { b?: string | undefined; } ->this : any +>this : this >a : { b?: string | undefined; } >b : string >undefined as any : any @@ -377,3 +377,48 @@ class Test11 { } } } + +class Tests12 { +>Tests12 : Tests12 + + test1() { // OK +>test1 : () => void + + type Test = typeof this; +>Test : this +>this : this + } + + test2() { // OK +>test2 : () => void + + for (;;) {} + type Test = typeof this; +>Test : this +>this : this + } + + test3() { // expected no compile errors +>test3 : () => void + + for (const dummy in []) {} +>dummy : string +>[] : never[] + + type Test = typeof this; +>Test : this +>this : this + } + + test4() { // expected no compile errors +>test4 : () => void + + for (const dummy of []) {} +>dummy : never +>[] : never[] + + type Test = typeof this; +>Test : this +>this : this + } +} diff --git a/tests/baselines/reference/types.asyncGenerators.es2018.2.errors.txt b/tests/baselines/reference/types.asyncGenerators.es2018.2.errors.txt index b0f976b703691..c2b79942f2950 100644 --- a/tests/baselines/reference/types.asyncGenerators.es2018.2.errors.txt +++ b/tests/baselines/reference/types.asyncGenerators.es2018.2.errors.txt @@ -40,7 +40,6 @@ tests/cases/conformance/types/asyncGenerators/types.asyncGenerators.es2018.2.ts( tests/cases/conformance/types/asyncGenerators/types.asyncGenerators.es2018.2.ts(70,42): error TS2322: Type 'AsyncGenerator' is not assignable to type 'Iterator'. The types returned by 'next(...)' are incompatible between these types. Type 'Promise>' is not assignable to type 'IteratorResult'. - Type 'Promise>' is missing the following properties from type 'IteratorReturnResult': done, value tests/cases/conformance/types/asyncGenerators/types.asyncGenerators.es2018.2.ts(74,12): error TS2504: Type '{}' must have a '[Symbol.asyncIterator]()' method that returns an async iterator. @@ -183,7 +182,6 @@ tests/cases/conformance/types/asyncGenerators/types.asyncGenerators.es2018.2.ts( !!! error TS2322: Type 'AsyncGenerator' is not assignable to type 'Iterator'. !!! error TS2322: The types returned by 'next(...)' are incompatible between these types. !!! error TS2322: Type 'Promise>' is not assignable to type 'IteratorResult'. -!!! error TS2322: Type 'Promise>' is missing the following properties from type 'IteratorReturnResult': done, value yield 1; } async function * yieldStar() { diff --git a/tests/baselines/reference/uncalledFunctionChecksInConditional.errors.txt b/tests/baselines/reference/uncalledFunctionChecksInConditional.errors.txt new file mode 100644 index 0000000000000..cc0234d259f19 --- /dev/null +++ b/tests/baselines/reference/uncalledFunctionChecksInConditional.errors.txt @@ -0,0 +1,81 @@ +tests/cases/compiler/uncalledFunctionChecksInConditional.ts(5,5): error TS2774: This condition will always return true since this function is always defined. Did you mean to call it instead? +tests/cases/compiler/uncalledFunctionChecksInConditional.ts(9,5): error TS2774: This condition will always return true since this function is always defined. Did you mean to call it instead? +tests/cases/compiler/uncalledFunctionChecksInConditional.ts(9,14): error TS2774: This condition will always return true since this function is always defined. Did you mean to call it instead? +tests/cases/compiler/uncalledFunctionChecksInConditional.ts(13,5): error TS2774: This condition will always return true since this function is always defined. Did you mean to call it instead? +tests/cases/compiler/uncalledFunctionChecksInConditional.ts(32,10): error TS2774: This condition will always return true since this function is always defined. Did you mean to call it instead? +tests/cases/compiler/uncalledFunctionChecksInConditional.ts(36,5): error TS2774: This condition will always return true since this function is always defined. Did you mean to call it instead? +tests/cases/compiler/uncalledFunctionChecksInConditional.ts(40,22): error TS2774: This condition will always return true since this function is always defined. Did you mean to call it instead? +tests/cases/compiler/uncalledFunctionChecksInConditional.ts(44,16): error TS2774: This condition will always return true since this function is always defined. Did you mean to call it instead? +tests/cases/compiler/uncalledFunctionChecksInConditional.ts(48,22): error TS2774: This condition will always return true since this function is always defined. Did you mean to call it instead? + + +==== tests/cases/compiler/uncalledFunctionChecksInConditional.ts (9 errors) ==== + declare function isFoo(): boolean; + declare function isBar(): boolean; + declare const isUndefinedFoo: (() => boolean) | undefined; + + if (isFoo) { + ~~~~~ +!!! error TS2774: This condition will always return true since this function is always defined. Did you mean to call it instead? + // error on isFoo + } + + if (isFoo || isBar) { + ~~~~~ +!!! error TS2774: This condition will always return true since this function is always defined. Did you mean to call it instead? + ~~~~~ +!!! error TS2774: This condition will always return true since this function is always defined. Did you mean to call it instead? + // error on isFoo, isBar + } + + if (isFoo || isFoo()) { + ~~~~~ +!!! error TS2774: This condition will always return true since this function is always defined. Did you mean to call it instead? + // error on isFoo + } + + if (isUndefinedFoo || isFoo()) { + // no error + } + + if (isFoo && isFoo()) { + // no error + } + + declare const x: boolean; + declare const ux: boolean | undefined; + declare const y: boolean; + declare const uy: boolean | undefined; + declare function z(): boolean; + declare const uz: (() => boolean) | undefined; + + if (x || isFoo) { + ~~~~~ +!!! error TS2774: This condition will always return true since this function is always defined. Did you mean to call it instead? + // error on isFoo + } + + if (isFoo || x) { + ~~~~~ +!!! error TS2774: This condition will always return true since this function is always defined. Did you mean to call it instead? + // error on isFoo + } + + if (x || y || z() || isFoo) { + ~~~~~ +!!! error TS2774: This condition will always return true since this function is always defined. Did you mean to call it instead? + // error on isFoo + } + + if (x || uy || z || isUndefinedFoo) { + ~ +!!! error TS2774: This condition will always return true since this function is always defined. Did you mean to call it instead? + // error on z + } + + if (ux || y || uz || isFoo) { + ~~~~~ +!!! error TS2774: This condition will always return true since this function is always defined. Did you mean to call it instead? + // error on isFoo + } + \ No newline at end of file diff --git a/tests/baselines/reference/uncalledFunctionChecksInConditional.js b/tests/baselines/reference/uncalledFunctionChecksInConditional.js new file mode 100644 index 0000000000000..3d77b939a333e --- /dev/null +++ b/tests/baselines/reference/uncalledFunctionChecksInConditional.js @@ -0,0 +1,84 @@ +//// [uncalledFunctionChecksInConditional.ts] +declare function isFoo(): boolean; +declare function isBar(): boolean; +declare const isUndefinedFoo: (() => boolean) | undefined; + +if (isFoo) { + // error on isFoo +} + +if (isFoo || isBar) { + // error on isFoo, isBar +} + +if (isFoo || isFoo()) { + // error on isFoo +} + +if (isUndefinedFoo || isFoo()) { + // no error +} + +if (isFoo && isFoo()) { + // no error +} + +declare const x: boolean; +declare const ux: boolean | undefined; +declare const y: boolean; +declare const uy: boolean | undefined; +declare function z(): boolean; +declare const uz: (() => boolean) | undefined; + +if (x || isFoo) { + // error on isFoo +} + +if (isFoo || x) { + // error on isFoo +} + +if (x || y || z() || isFoo) { + // error on isFoo +} + +if (x || uy || z || isUndefinedFoo) { + // error on z +} + +if (ux || y || uz || isFoo) { + // error on isFoo +} + + +//// [uncalledFunctionChecksInConditional.js] +if (isFoo) { + // error on isFoo +} +if (isFoo || isBar) { + // error on isFoo, isBar +} +if (isFoo || isFoo()) { + // error on isFoo +} +if (isUndefinedFoo || isFoo()) { + // no error +} +if (isFoo && isFoo()) { + // no error +} +if (x || isFoo) { + // error on isFoo +} +if (isFoo || x) { + // error on isFoo +} +if (x || y || z() || isFoo) { + // error on isFoo +} +if (x || uy || z || isUndefinedFoo) { + // error on z +} +if (ux || y || uz || isFoo) { + // error on isFoo +} diff --git a/tests/baselines/reference/uncalledFunctionChecksInConditional.symbols b/tests/baselines/reference/uncalledFunctionChecksInConditional.symbols new file mode 100644 index 0000000000000..498aa73589132 --- /dev/null +++ b/tests/baselines/reference/uncalledFunctionChecksInConditional.symbols @@ -0,0 +1,103 @@ +=== tests/cases/compiler/uncalledFunctionChecksInConditional.ts === +declare function isFoo(): boolean; +>isFoo : Symbol(isFoo, Decl(uncalledFunctionChecksInConditional.ts, 0, 0)) + +declare function isBar(): boolean; +>isBar : Symbol(isBar, Decl(uncalledFunctionChecksInConditional.ts, 0, 34)) + +declare const isUndefinedFoo: (() => boolean) | undefined; +>isUndefinedFoo : Symbol(isUndefinedFoo, Decl(uncalledFunctionChecksInConditional.ts, 2, 13)) + +if (isFoo) { +>isFoo : Symbol(isFoo, Decl(uncalledFunctionChecksInConditional.ts, 0, 0)) + + // error on isFoo +} + +if (isFoo || isBar) { +>isFoo : Symbol(isFoo, Decl(uncalledFunctionChecksInConditional.ts, 0, 0)) +>isBar : Symbol(isBar, Decl(uncalledFunctionChecksInConditional.ts, 0, 34)) + + // error on isFoo, isBar +} + +if (isFoo || isFoo()) { +>isFoo : Symbol(isFoo, Decl(uncalledFunctionChecksInConditional.ts, 0, 0)) +>isFoo : Symbol(isFoo, Decl(uncalledFunctionChecksInConditional.ts, 0, 0)) + + // error on isFoo +} + +if (isUndefinedFoo || isFoo()) { +>isUndefinedFoo : Symbol(isUndefinedFoo, Decl(uncalledFunctionChecksInConditional.ts, 2, 13)) +>isFoo : Symbol(isFoo, Decl(uncalledFunctionChecksInConditional.ts, 0, 0)) + + // no error +} + +if (isFoo && isFoo()) { +>isFoo : Symbol(isFoo, Decl(uncalledFunctionChecksInConditional.ts, 0, 0)) +>isFoo : Symbol(isFoo, Decl(uncalledFunctionChecksInConditional.ts, 0, 0)) + + // no error +} + +declare const x: boolean; +>x : Symbol(x, Decl(uncalledFunctionChecksInConditional.ts, 24, 13)) + +declare const ux: boolean | undefined; +>ux : Symbol(ux, Decl(uncalledFunctionChecksInConditional.ts, 25, 13)) + +declare const y: boolean; +>y : Symbol(y, Decl(uncalledFunctionChecksInConditional.ts, 26, 13)) + +declare const uy: boolean | undefined; +>uy : Symbol(uy, Decl(uncalledFunctionChecksInConditional.ts, 27, 13)) + +declare function z(): boolean; +>z : Symbol(z, Decl(uncalledFunctionChecksInConditional.ts, 27, 38)) + +declare const uz: (() => boolean) | undefined; +>uz : Symbol(uz, Decl(uncalledFunctionChecksInConditional.ts, 29, 13)) + +if (x || isFoo) { +>x : Symbol(x, Decl(uncalledFunctionChecksInConditional.ts, 24, 13)) +>isFoo : Symbol(isFoo, Decl(uncalledFunctionChecksInConditional.ts, 0, 0)) + + // error on isFoo +} + +if (isFoo || x) { +>isFoo : Symbol(isFoo, Decl(uncalledFunctionChecksInConditional.ts, 0, 0)) +>x : Symbol(x, Decl(uncalledFunctionChecksInConditional.ts, 24, 13)) + + // error on isFoo +} + +if (x || y || z() || isFoo) { +>x : Symbol(x, Decl(uncalledFunctionChecksInConditional.ts, 24, 13)) +>y : Symbol(y, Decl(uncalledFunctionChecksInConditional.ts, 26, 13)) +>z : Symbol(z, Decl(uncalledFunctionChecksInConditional.ts, 27, 38)) +>isFoo : Symbol(isFoo, Decl(uncalledFunctionChecksInConditional.ts, 0, 0)) + + // error on isFoo +} + +if (x || uy || z || isUndefinedFoo) { +>x : Symbol(x, Decl(uncalledFunctionChecksInConditional.ts, 24, 13)) +>uy : Symbol(uy, Decl(uncalledFunctionChecksInConditional.ts, 27, 13)) +>z : Symbol(z, Decl(uncalledFunctionChecksInConditional.ts, 27, 38)) +>isUndefinedFoo : Symbol(isUndefinedFoo, Decl(uncalledFunctionChecksInConditional.ts, 2, 13)) + + // error on z +} + +if (ux || y || uz || isFoo) { +>ux : Symbol(ux, Decl(uncalledFunctionChecksInConditional.ts, 25, 13)) +>y : Symbol(y, Decl(uncalledFunctionChecksInConditional.ts, 26, 13)) +>uz : Symbol(uz, Decl(uncalledFunctionChecksInConditional.ts, 29, 13)) +>isFoo : Symbol(isFoo, Decl(uncalledFunctionChecksInConditional.ts, 0, 0)) + + // error on isFoo +} + diff --git a/tests/baselines/reference/uncalledFunctionChecksInConditional.types b/tests/baselines/reference/uncalledFunctionChecksInConditional.types new file mode 100644 index 0000000000000..b8b78a1b57dc5 --- /dev/null +++ b/tests/baselines/reference/uncalledFunctionChecksInConditional.types @@ -0,0 +1,122 @@ +=== tests/cases/compiler/uncalledFunctionChecksInConditional.ts === +declare function isFoo(): boolean; +>isFoo : () => boolean + +declare function isBar(): boolean; +>isBar : () => boolean + +declare const isUndefinedFoo: (() => boolean) | undefined; +>isUndefinedFoo : (() => boolean) | undefined + +if (isFoo) { +>isFoo : () => boolean + + // error on isFoo +} + +if (isFoo || isBar) { +>isFoo || isBar : () => boolean +>isFoo : () => boolean +>isBar : () => boolean + + // error on isFoo, isBar +} + +if (isFoo || isFoo()) { +>isFoo || isFoo() : () => boolean +>isFoo : () => boolean +>isFoo() : boolean +>isFoo : () => boolean + + // error on isFoo +} + +if (isUndefinedFoo || isFoo()) { +>isUndefinedFoo || isFoo() : boolean | (() => boolean) +>isUndefinedFoo : (() => boolean) | undefined +>isFoo() : boolean +>isFoo : () => boolean + + // no error +} + +if (isFoo && isFoo()) { +>isFoo && isFoo() : boolean +>isFoo : () => boolean +>isFoo() : boolean +>isFoo : () => boolean + + // no error +} + +declare const x: boolean; +>x : boolean + +declare const ux: boolean | undefined; +>ux : boolean | undefined + +declare const y: boolean; +>y : boolean + +declare const uy: boolean | undefined; +>uy : boolean | undefined + +declare function z(): boolean; +>z : () => boolean + +declare const uz: (() => boolean) | undefined; +>uz : (() => boolean) | undefined + +if (x || isFoo) { +>x || isFoo : true | (() => boolean) +>x : boolean +>isFoo : () => boolean + + // error on isFoo +} + +if (isFoo || x) { +>isFoo || x : () => boolean +>isFoo : () => boolean +>x : boolean + + // error on isFoo +} + +if (x || y || z() || isFoo) { +>x || y || z() || isFoo : true | (() => boolean) +>x || y || z() : boolean +>x || y : boolean +>x : boolean +>y : boolean +>z() : boolean +>z : () => boolean +>isFoo : () => boolean + + // error on isFoo +} + +if (x || uy || z || isUndefinedFoo) { +>x || uy || z || isUndefinedFoo : true | (() => boolean) +>x || uy || z : true | (() => boolean) +>x || uy : boolean | undefined +>x : boolean +>uy : boolean | undefined +>z : () => boolean +>isUndefinedFoo : (() => boolean) | undefined + + // error on z +} + +if (ux || y || uz || isFoo) { +>ux || y || uz || isFoo : true | (() => boolean) +>ux || y || uz : true | (() => boolean) | undefined +>ux || y : boolean +>ux : boolean | undefined +>y : boolean +>uz : (() => boolean) | undefined +>isFoo : () => boolean + + // error on isFoo +} + diff --git a/tests/baselines/reference/unclosedExportClause01.js b/tests/baselines/reference/unclosedExportClause01.js index 2ed69f22b137b..56f9d25e91f0f 100644 --- a/tests/baselines/reference/unclosedExportClause01.js +++ b/tests/baselines/reference/unclosedExportClause01.js @@ -24,7 +24,11 @@ exports.x = "x"; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -38,7 +42,11 @@ __createBinding(exports, t1_1, "from"); "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -51,7 +59,11 @@ __createBinding(exports, t1_1, "from"); "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -65,7 +77,11 @@ __createBinding(exports, t1_1, "from"); "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/underscoreThisInDerivedClass01.js b/tests/baselines/reference/underscoreThisInDerivedClass01.js index 372eb902cb07a..17878be39731e 100644 --- a/tests/baselines/reference/underscoreThisInDerivedClass01.js +++ b/tests/baselines/reference/underscoreThisInDerivedClass01.js @@ -19,7 +19,9 @@ class C { class D extends C { constructor() { var _this = "uh-oh?"; + console.log("ruh-roh..."); super(); + console.log("d'oh!"); } } @@ -59,7 +61,9 @@ var D = /** @class */ (function (_super) { function D() { var _this_1 = this; var _this = "uh-oh?"; + console.log("ruh-roh..."); _this_1 = _super.call(this) || this; + console.log("d'oh!"); return _this_1; } return D; diff --git a/tests/baselines/reference/underscoreThisInDerivedClass01.symbols b/tests/baselines/reference/underscoreThisInDerivedClass01.symbols index c05cd4f6fc327..5ff800893d5aa 100644 --- a/tests/baselines/reference/underscoreThisInDerivedClass01.symbols +++ b/tests/baselines/reference/underscoreThisInDerivedClass01.symbols @@ -26,7 +26,17 @@ class D extends C { var _this = "uh-oh?"; >_this : Symbol(_this, Decl(underscoreThisInDerivedClass01.ts, 19, 11)) + console.log("ruh-roh..."); +>console.log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>console : Symbol(console, Decl(lib.dom.d.ts, --, --)) +>log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) + super(); >super : Symbol(C, Decl(underscoreThisInDerivedClass01.ts, 0, 0)) + + console.log("d'oh!"); +>console.log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) +>console : Symbol(console, Decl(lib.dom.d.ts, --, --)) +>log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) } } diff --git a/tests/baselines/reference/underscoreThisInDerivedClass01.types b/tests/baselines/reference/underscoreThisInDerivedClass01.types index 66d19c03da939..b7c701f90005f 100644 --- a/tests/baselines/reference/underscoreThisInDerivedClass01.types +++ b/tests/baselines/reference/underscoreThisInDerivedClass01.types @@ -28,8 +28,22 @@ class D extends C { >_this : string >"uh-oh?" : "uh-oh?" + console.log("ruh-roh..."); +>console.log("ruh-roh...") : void +>console.log : (...data: any[]) => void +>console : Console +>log : (...data: any[]) => void +>"ruh-roh..." : "ruh-roh..." + super(); >super() : void >super : typeof C + + console.log("d'oh!"); +>console.log("d'oh!") : void +>console.log : (...data: any[]) => void +>console : Console +>log : (...data: any[]) => void +>"d'oh!" : "d'oh!" } } diff --git a/tests/baselines/reference/unionAndIntersectionInference1.types b/tests/baselines/reference/unionAndIntersectionInference1.types index 86ed1aa33f668..51683684f2a57 100644 --- a/tests/baselines/reference/unionAndIntersectionInference1.types +++ b/tests/baselines/reference/unionAndIntersectionInference1.types @@ -246,9 +246,9 @@ const assign = (a: T, b: U) => Object.assign(a, b); >a : T >b : U >Object.assign(a, b) : T & U ->Object.assign : { (target: T, source: U): T & U; (target: T, source1: U, source2: V): T & U & V; (target: T, source1: U, source2: V, source3: W): T & U & V & W; (target: object, ...sources: any[]): any; } +>Object.assign : { (target: T, source: U): T & U; (target: T, source1: U, source2: V): T & U & V; (target: T, source1: U, source2: V, source3: W): T & U & V & W; (target: object, ...sources: any[]): any; } >Object : ObjectConstructor ->assign : { (target: T, source: U): T & U; (target: T, source1: U, source2: V): T & U & V; (target: T, source1: U, source2: V, source3: W): T & U & V & W; (target: object, ...sources: any[]): any; } +>assign : { (target: T, source: U): T & U; (target: T, source1: U, source2: V): T & U & V; (target: T, source1: U, source2: V, source3: W): T & U & V & W; (target: object, ...sources: any[]): any; } >a : T >b : U diff --git a/tests/baselines/reference/unionTypeCallSignatures6.errors.txt b/tests/baselines/reference/unionTypeCallSignatures6.errors.txt index 51b18b204a773..2d162fc354d58 100644 --- a/tests/baselines/reference/unionTypeCallSignatures6.errors.txt +++ b/tests/baselines/reference/unionTypeCallSignatures6.errors.txt @@ -6,14 +6,12 @@ tests/cases/conformance/types/union/unionTypeCallSignatures6.ts(38,4): error TS2 tests/cases/conformance/types/union/unionTypeCallSignatures6.ts(39,1): error TS2684: The 'this' context of type 'A & C & { f0: F0 | F3; f1: F1 | F3; f2: F1 | F4; f3: F3 | F4; f4: F3 | F5; }' is not assignable to method's 'this' of type 'B'. Property 'b' is missing in type 'A & C & { f0: F0 | F3; f1: F1 | F3; f2: F1 | F4; f3: F3 | F4; f4: F3 | F5; }' but required in type 'B'. tests/cases/conformance/types/union/unionTypeCallSignatures6.ts(48,1): error TS2684: The 'this' context of type 'void' is not assignable to method's 'this' of type 'A & B'. - Type 'void' is not assignable to type 'A'. tests/cases/conformance/types/union/unionTypeCallSignatures6.ts(55,1): error TS2769: No overload matches this call. Overload 1 of 2, '(this: A & B & C): void', gave the following error. The 'this' context of type 'void' is not assignable to method's 'this' of type 'A & B & C'. Type 'void' is not assignable to type 'A'. Overload 2 of 2, '(this: A & B): void', gave the following error. The 'this' context of type 'void' is not assignable to method's 'this' of type 'A & B'. - Type 'void' is not assignable to type 'A'. ==== tests/cases/conformance/types/union/unionTypeCallSignatures6.ts (6 errors) ==== @@ -79,7 +77,6 @@ tests/cases/conformance/types/union/unionTypeCallSignatures6.ts(55,1): error TS2 f3(); // error ~~~~ !!! error TS2684: The 'this' context of type 'void' is not assignable to method's 'this' of type 'A & B'. -!!! error TS2684: Type 'void' is not assignable to type 'A'. interface F7 { (this: A & B & C): void; @@ -94,5 +91,4 @@ tests/cases/conformance/types/union/unionTypeCallSignatures6.ts(55,1): error TS2 !!! error TS2769: Type 'void' is not assignable to type 'A'. !!! error TS2769: Overload 2 of 2, '(this: A & B): void', gave the following error. !!! error TS2769: The 'this' context of type 'void' is not assignable to method's 'this' of type 'A & B'. -!!! error TS2769: Type 'void' is not assignable to type 'A'. \ No newline at end of file diff --git a/tests/baselines/reference/unionTypesAssignability.errors.txt b/tests/baselines/reference/unionTypesAssignability.errors.txt index fc5ca87725566..365a95f971ad9 100644 --- a/tests/baselines/reference/unionTypesAssignability.errors.txt +++ b/tests/baselines/reference/unionTypesAssignability.errors.txt @@ -13,7 +13,6 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/unionTyp tests/cases/conformance/types/typeRelationships/assignmentCompatibility/unionTypesAssignability.ts(31,1): error TS2741: Property 'foo1' is missing in type 'C' but required in type 'D'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/unionTypesAssignability.ts(32,1): error TS2741: Property 'foo2' is missing in type 'C' but required in type 'E'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/unionTypesAssignability.ts(33,1): error TS2322: Type 'C' is not assignable to type 'D | E'. - Type 'C' is not assignable to type 'E'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/unionTypesAssignability.ts(35,1): error TS2322: Type 'D' is not assignable to type 'E'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/unionTypesAssignability.ts(37,1): error TS2322: Type 'E' is not assignable to type 'D'. tests/cases/conformance/types/typeRelationships/assignmentCompatibility/unionTypesAssignability.ts(41,1): error TS2322: Type 'number' is not assignable to type 'string'. @@ -92,7 +91,6 @@ tests/cases/conformance/types/typeRelationships/assignmentCompatibility/unionTyp unionDE = c; // error since C is not assinable to either D or E ~~~~~~~ !!! error TS2322: Type 'C' is not assignable to type 'D | E'. -!!! error TS2322: Type 'C' is not assignable to type 'E'. d = d; e = d; ~ diff --git a/tests/baselines/reference/uniqueSymbols.js b/tests/baselines/reference/uniqueSymbols.js index 54f59e8e217b6..6d1c9308f9f90 100644 --- a/tests/baselines/reference/uniqueSymbols.js +++ b/tests/baselines/reference/uniqueSymbols.js @@ -319,10 +319,10 @@ class C { this.readonlyCall = Symbol(); this.readwriteCall = Symbol(); } + static { this.readonlyStaticCall = Symbol(); } + static { this.readonlyStaticTypeAndCall = Symbol(); } + static { this.readwriteStaticCall = Symbol(); } } -C.readonlyStaticCall = Symbol(); -C.readonlyStaticTypeAndCall = Symbol(); -C.readwriteStaticCall = Symbol(); const constInitToCReadonlyStaticCall = C.readonlyStaticCall; const constInitToCReadonlyStaticType = C.readonlyStaticType; const constInitToCReadonlyStaticTypeAndCall = C.readonlyStaticTypeAndCall; @@ -379,18 +379,18 @@ class C0 { this.e = N.s; this.f = N["s"]; } + static { this.a = s; } + static { this.b = N.s; } + static { this.c = N["s"]; } + static { this.d = s; } + static { this.e = N.s; } + static { this.f = N["s"]; } method1() { return s; } async method2() { return s; } async *method3() { yield s; } *method4() { yield s; } method5(p = s) { return p; } } -C0.a = s; -C0.b = N.s; -C0.c = N["s"]; -C0.d = s; -C0.e = N.s; -C0.f = N["s"]; // non-widening positions // element access o[s]; @@ -417,8 +417,8 @@ Math.random() * 2 ? N["s"] : "a"; [N.s]: "b", }); class C1 { + static { N.s, N.s; } } -N.s, N.s; const o3 = { method1() { return s; // return type should not widen due to contextual type diff --git a/tests/baselines/reference/uniqueSymbolsDeclarations.js b/tests/baselines/reference/uniqueSymbolsDeclarations.js index 15342a0bd97fc..c70a2163e3dcc 100644 --- a/tests/baselines/reference/uniqueSymbolsDeclarations.js +++ b/tests/baselines/reference/uniqueSymbolsDeclarations.js @@ -287,10 +287,10 @@ class C { this.readonlyCall = Symbol(); this.readwriteCall = Symbol(); } + static { this.readonlyStaticCall = Symbol(); } + static { this.readonlyStaticTypeAndCall = Symbol(); } + static { this.readwriteStaticCall = Symbol(); } } -C.readonlyStaticCall = Symbol(); -C.readonlyStaticTypeAndCall = Symbol(); -C.readwriteStaticCall = Symbol(); const constInitToCReadonlyStaticCall = C.readonlyStaticCall; const constInitToCReadonlyStaticType = C.readonlyStaticType; const constInitToCReadonlyStaticTypeAndCall = C.readonlyStaticTypeAndCall; @@ -347,18 +347,18 @@ class C0 { this.e = N.s; this.f = N["s"]; } + static { this.a = s; } + static { this.b = N.s; } + static { this.c = N["s"]; } + static { this.d = s; } + static { this.e = N.s; } + static { this.f = N["s"]; } method1() { return s; } async method2() { return s; } async *method3() { yield s; } *method4() { yield s; } method5(p = s) { return p; } } -C0.a = s; -C0.b = N.s; -C0.c = N["s"]; -C0.d = s; -C0.e = N.s; -C0.f = N["s"]; // non-widening positions // element access o[s]; @@ -385,8 +385,8 @@ Math.random() * 2 ? N["s"] : "a"; [N.s]: "b", }); class C1 { + static { N.s, N.s; } } -N.s, N.s; const o4 = { method1() { return s; // return type should not widen due to contextual type diff --git a/tests/baselines/reference/uniqueSymbolsDeclarationsInJs.js b/tests/baselines/reference/uniqueSymbolsDeclarationsInJs.js index 88d29c6a68430..8d7f2afd6d52c 100644 --- a/tests/baselines/reference/uniqueSymbolsDeclarationsInJs.js +++ b/tests/baselines/reference/uniqueSymbolsDeclarationsInJs.js @@ -23,6 +23,9 @@ class C { readonlyCall = Symbol(); readwriteCall = Symbol(); } + +/** @type {unique symbol} */ +const a = Symbol(); //// [uniqueSymbolsDeclarationsInJs-out.js] @@ -35,17 +38,19 @@ class C { this.readonlyCall = Symbol(); this.readwriteCall = Symbol(); } + /** + * @readonly + */ + static { this.readonlyStaticCall = Symbol(); } + /** + * @type {unique symbol} + * @readonly + */ + static { this.readonlyStaticTypeAndCall = Symbol(); } + static { this.readwriteStaticCall = Symbol(); } } -/** - * @readonly - */ -C.readonlyStaticCall = Symbol(); -/** - * @type {unique symbol} - * @readonly - */ -C.readonlyStaticTypeAndCall = Symbol(); -C.readwriteStaticCall = Symbol(); +/** @type {unique symbol} */ +const a = Symbol(); //// [uniqueSymbolsDeclarationsInJs-out.d.ts] @@ -71,3 +76,5 @@ declare class C { readonly readonlyCall: symbol; readwriteCall: symbol; } +/** @type {unique symbol} */ +declare const a: unique symbol; diff --git a/tests/baselines/reference/uniqueSymbolsDeclarationsInJs.symbols b/tests/baselines/reference/uniqueSymbolsDeclarationsInJs.symbols index b48c5cc6c58cc..347389f2c81a5 100644 --- a/tests/baselines/reference/uniqueSymbolsDeclarationsInJs.symbols +++ b/tests/baselines/reference/uniqueSymbolsDeclarationsInJs.symbols @@ -41,3 +41,8 @@ class C { >Symbol : Symbol(Symbol, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.symbol.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2019.symbol.d.ts, --, --)) } +/** @type {unique symbol} */ +const a = Symbol(); +>a : Symbol(a, Decl(uniqueSymbolsDeclarationsInJs.js, 26, 5)) +>Symbol : Symbol(Symbol, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.symbol.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2019.symbol.d.ts, --, --)) + diff --git a/tests/baselines/reference/uniqueSymbolsDeclarationsInJs.types b/tests/baselines/reference/uniqueSymbolsDeclarationsInJs.types index a51ba3c324dcf..e4fa564ee8a65 100644 --- a/tests/baselines/reference/uniqueSymbolsDeclarationsInJs.types +++ b/tests/baselines/reference/uniqueSymbolsDeclarationsInJs.types @@ -46,3 +46,9 @@ class C { >Symbol : SymbolConstructor } +/** @type {unique symbol} */ +const a = Symbol(); +>a : symbol +>Symbol() : unique symbol +>Symbol : SymbolConstructor + diff --git a/tests/baselines/reference/unknownType1.errors.txt b/tests/baselines/reference/unknownType1.errors.txt index e2f3126329ecf..39d7a1feb5255 100644 --- a/tests/baselines/reference/unknownType1.errors.txt +++ b/tests/baselines/reference/unknownType1.errors.txt @@ -15,7 +15,6 @@ tests/cases/conformance/types/unknown/unknownType1.ts(111,9): error TS2322: Type tests/cases/conformance/types/unknown/unknownType1.ts(112,9): error TS2322: Type 'unknown' is not assignable to type 'string[]'. tests/cases/conformance/types/unknown/unknownType1.ts(113,9): error TS2322: Type 'unknown' is not assignable to type '{}'. tests/cases/conformance/types/unknown/unknownType1.ts(114,9): error TS2322: Type 'unknown' is not assignable to type '{} | null | undefined'. - Type 'unknown' is not assignable to type '{}'. tests/cases/conformance/types/unknown/unknownType1.ts(120,9): error TS2322: Type 'T' is not assignable to type 'object'. Type 'unknown' is not assignable to type 'object'. tests/cases/conformance/types/unknown/unknownType1.ts(128,5): error TS2322: Type 'number[]' is not assignable to type '{ [x: string]: unknown; }'. @@ -26,13 +25,14 @@ tests/cases/conformance/types/unknown/unknownType1.ts(144,29): error TS2698: Spr tests/cases/conformance/types/unknown/unknownType1.ts(150,17): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. tests/cases/conformance/types/unknown/unknownType1.ts(156,14): error TS2700: Rest types may only be created from object types. tests/cases/conformance/types/unknown/unknownType1.ts(162,5): error TS2564: Property 'a' has no initializer and is not definitely assigned in the constructor. +tests/cases/conformance/types/unknown/unknownType1.ts(170,9): error TS2322: Type 'T' is not assignable to type '{}'. tests/cases/conformance/types/unknown/unknownType1.ts(171,9): error TS2322: Type 'U' is not assignable to type '{}'. Type 'unknown' is not assignable to type '{}'. tests/cases/conformance/types/unknown/unknownType1.ts(181,5): error TS2322: Type 'T' is not assignable to type '{}'. Type 'unknown' is not assignable to type '{}'. -==== tests/cases/conformance/types/unknown/unknownType1.ts (27 errors) ==== +==== tests/cases/conformance/types/unknown/unknownType1.ts (28 errors) ==== // In an intersection everything absorbs unknown type T00 = unknown & null; // null @@ -181,7 +181,6 @@ tests/cases/conformance/types/unknown/unknownType1.ts(181,5): error TS2322: Type let v7: {} | null | undefined = x; // Error ~~ !!! error TS2322: Type 'unknown' is not assignable to type '{} | null | undefined'. -!!! error TS2322: Type 'unknown' is not assignable to type '{}'. } // Type parameter 'T extends unknown' not related to object @@ -256,6 +255,9 @@ tests/cases/conformance/types/unknown/unknownType1.ts(181,5): error TS2322: Type function f30(t: T, u: U) { let x: {} = t; + ~ +!!! error TS2322: Type 'T' is not assignable to type '{}'. +!!! related TS2208 tests/cases/conformance/types/unknown/unknownType1.ts:169:14: This type parameter probably needs an `extends object` constraint. let y: {} = u; ~ !!! error TS2322: Type 'U' is not assignable to type '{}'. diff --git a/tests/baselines/reference/unknownType2.errors.txt b/tests/baselines/reference/unknownType2.errors.txt index 1469526182be5..53ee56843e6ae 100644 --- a/tests/baselines/reference/unknownType2.errors.txt +++ b/tests/baselines/reference/unknownType2.errors.txt @@ -248,7 +248,7 @@ tests/cases/conformance/types/unknown/unknownType2.ts(216,13): error TS2322: Typ else { const a: NumberEnum.A = u; } - + if (u !== NumberEnum.A && u !== NumberEnum.B && u !== StringEnum.A) { } else { diff --git a/tests/baselines/reference/unknownType2.js b/tests/baselines/reference/unknownType2.js index cb1b0a58029f7..cace141a36c7c 100644 --- a/tests/baselines/reference/unknownType2.js +++ b/tests/baselines/reference/unknownType2.js @@ -241,7 +241,7 @@ function notNotEquals(u: unknown) { else { const a: NumberEnum.A = u; } - + if (u !== NumberEnum.A && u !== NumberEnum.B && u !== StringEnum.A) { } else { diff --git a/tests/baselines/reference/unknownType2.symbols b/tests/baselines/reference/unknownType2.symbols index 19a1c7fca6eaf..164850d00be20 100644 --- a/tests/baselines/reference/unknownType2.symbols +++ b/tests/baselines/reference/unknownType2.symbols @@ -627,7 +627,7 @@ function notNotEquals(u: unknown) { >A : Symbol(NumberEnum.A, Decl(unknownType2.ts, 92, 17)) >u : Symbol(u, Decl(unknownType2.ts, 232, 22)) } - + if (u !== NumberEnum.A && u !== NumberEnum.B && u !== StringEnum.A) { } >u : Symbol(u, Decl(unknownType2.ts, 232, 22)) diff --git a/tests/baselines/reference/unknownType2.types b/tests/baselines/reference/unknownType2.types index 6e8ffab0c2461..72122f043d0c0 100644 --- a/tests/baselines/reference/unknownType2.types +++ b/tests/baselines/reference/unknownType2.types @@ -679,7 +679,7 @@ function notNotEquals(u: unknown) { >NumberEnum : any >u : NumberEnum.A } - + if (u !== NumberEnum.A && u !== NumberEnum.B && u !== StringEnum.A) { } >u !== NumberEnum.A && u !== NumberEnum.B && u !== StringEnum.A : boolean diff --git a/tests/baselines/reference/unusedPrivateStaticMembers.js b/tests/baselines/reference/unusedPrivateStaticMembers.js index 8fda032e8bd1f..b4284e6d09012 100644 --- a/tests/baselines/reference/unusedPrivateStaticMembers.js +++ b/tests/baselines/reference/unusedPrivateStaticMembers.js @@ -51,15 +51,15 @@ class Test1 { } } class Test2 { + static { this.p1 = 0; } static test() { Test2.p1; } } -Test2.p1 = 0; class Test3 { + static { this.p1 = 0; } static m1() { } } -Test3.p1 = 0; class Test4 { static m1(n) { return (n === 0) ? 1 : (n * Test4.m1(n - 1)); @@ -75,8 +75,8 @@ class Test5 { } } class Test6 { + static { this.p1 = 0; } static test() { Test6["p1"]; } } -Test6.p1 = 0; diff --git a/tests/baselines/reference/user/TypeScript-Node-Starter.log b/tests/baselines/reference/user/TypeScript-Node-Starter.log new file mode 100644 index 0000000000000..e192347d93c9c --- /dev/null +++ b/tests/baselines/reference/user/TypeScript-Node-Starter.log @@ -0,0 +1,9 @@ +Exit Code: 2 +Standard output: +node_modules/mongoose/index.d.ts(438,37): error TS2589: Type instantiation is excessively deep and possibly infinite. +node_modules/mongoose/index.d.ts(1194,5): error TS2589: Type instantiation is excessively deep and possibly infinite. +node_modules/mongoose/index.d.ts(1195,5): error TS2589: Type instantiation is excessively deep and possibly infinite. + + + +Standard error: diff --git a/tests/baselines/reference/user/TypeScript-React-Native-Starter.log b/tests/baselines/reference/user/TypeScript-React-Native-Starter.log index 56134555a63d0..e280b3dc3adec 100644 --- a/tests/baselines/reference/user/TypeScript-React-Native-Starter.log +++ b/tests/baselines/reference/user/TypeScript-React-Native-Starter.log @@ -1,6 +1,6 @@ Exit Code: 2 Standard output: -node_modules/@types/react-native/index.d.ts(8745,18): error TS2717: Subsequent property declarations must have the same type. Property 'geolocation' must be of type 'Geolocation', but here has type 'GeolocationStatic'. +node_modules/@types/react-native/index.d.ts(8685,18): error TS2717: Subsequent property declarations must have the same type. Property 'geolocation' must be of type 'Geolocation', but here has type 'GeolocationStatic'. diff --git a/tests/baselines/reference/user/acorn.log b/tests/baselines/reference/user/acorn.log index 2fa0b829304cd..a720a30b83df4 100644 --- a/tests/baselines/reference/user/acorn.log +++ b/tests/baselines/reference/user/acorn.log @@ -1,5 +1,482 @@ Exit Code: 2 Standard output: +node_modules/acorn/acorn/dist/acorn.mjs(4893,51): error TS2339: Property 'pos' does not exist on type 'readWord1'. +node_modules/acorn/acorn/dist/acorn.mjs(4893,22): error TS2339: Property 'input' does not exist on type 'readWord1'. +node_modules/acorn/acorn/dist/acorn.mjs(4887,25): error TS2339: Property 'pos' does not exist on type 'readWord1'. +node_modules/acorn/acorn/dist/acorn.mjs(4885,16): error TS2339: Property 'invalidStringToken' does not exist on type 'readWord1'. +node_modules/acorn/acorn/dist/acorn.mjs(4883,22): error TS2339: Property 'readCodePoint' does not exist on type 'readWord1'. +node_modules/acorn/acorn/dist/acorn.mjs(4882,14): error TS2339: Property 'pos' does not exist on type 'readWord1'. +node_modules/acorn/acorn/dist/acorn.mjs(4881,40): error TS2339: Property 'pos' does not exist on type 'readWord1'. +node_modules/acorn/acorn/dist/acorn.mjs(4881,16): error TS2339: Property 'invalidStringToken' does not exist on type 'readWord1'. +node_modules/acorn/acorn/dist/acorn.mjs(4880,40): error TS2339: Property 'pos' does not exist on type 'readWord1'. +node_modules/acorn/acorn/dist/acorn.mjs(4880,16): error TS2339: Property 'input' does not exist on type 'readWord1'. +node_modules/acorn/acorn/dist/acorn.mjs(4879,27): error TS2339: Property 'pos' does not exist on type 'readWord1'. +node_modules/acorn/acorn/dist/acorn.mjs(4878,49): error TS2339: Property 'pos' does not exist on type 'readWord1'. +node_modules/acorn/acorn/dist/acorn.mjs(4878,20): error TS2339: Property 'input' does not exist on type 'readWord1'. +node_modules/acorn/acorn/dist/acorn.mjs(4875,12): error TS2339: Property 'pos' does not exist on type 'readWord1'. +node_modules/acorn/acorn/dist/acorn.mjs(4873,19): error TS2339: Property 'fullCharCodeAtPos' does not exist on type 'readWord1'. +node_modules/acorn/acorn/dist/acorn.mjs(4872,26): error TS2339: Property 'input' does not exist on type 'readWord1'. +node_modules/acorn/acorn/dist/acorn.mjs(4872,15): error TS2339: Property 'pos' does not exist on type 'readWord1'. +node_modules/acorn/acorn/dist/acorn.mjs(4871,21): error TS2339: Property 'options' does not exist on type 'readWord1'. +node_modules/acorn/acorn/dist/acorn.mjs(4870,50): error TS2339: Property 'pos' does not exist on type 'readWord1'. +node_modules/acorn/acorn/dist/acorn.mjs(4836,16): error TS2339: Property 'pos' does not exist on type 'readEscapedChar'. +node_modules/acorn/acorn/dist/acorn.mjs(4835,14): error TS2339: Property 'invalidStringToken' does not exist on type 'readEscapedChar'. +node_modules/acorn/acorn/dist/acorn.mjs(4834,65): error TS2339: Property 'strict' does not exist on type 'readEscapedChar'. +node_modules/acorn/acorn/dist/acorn.mjs(4833,39): error TS2339: Property 'pos' does not exist on type 'readEscapedChar'. +node_modules/acorn/acorn/dist/acorn.mjs(4833,17): error TS2339: Property 'input' does not exist on type 'readEscapedChar'. +node_modules/acorn/acorn/dist/acorn.mjs(4832,12): error TS2339: Property 'pos' does not exist on type 'readEscapedChar'. +node_modules/acorn/acorn/dist/acorn.mjs(4826,45): error TS2339: Property 'pos' does not exist on type 'readEscapedChar'. +node_modules/acorn/acorn/dist/acorn.mjs(4826,27): error TS2339: Property 'input' does not exist on type 'readEscapedChar'. +node_modules/acorn/acorn/dist/acorn.mjs(4822,69): error TS2339: Property 'curLine' does not exist on type 'readEscapedChar'. +node_modules/acorn/acorn/dist/acorn.mjs(4822,57): error TS2339: Property 'pos' does not exist on type 'readEscapedChar'. +node_modules/acorn/acorn/dist/acorn.mjs(4822,14): error TS2339: Property 'options' does not exist on type 'readEscapedChar'. +node_modules/acorn/acorn/dist/acorn.mjs(4820,65): error TS2339: Property 'pos' does not exist on type 'readEscapedChar'. +node_modules/acorn/acorn/dist/acorn.mjs(4820,43): error TS2339: Property 'pos' does not exist on type 'readEscapedChar'. +node_modules/acorn/acorn/dist/acorn.mjs(4820,21): error TS2339: Property 'input' does not exist on type 'readEscapedChar'. +node_modules/acorn/acorn/dist/acorn.mjs(4815,45): error TS2339: Property 'readCodePoint' does not exist on type 'readEscapedChar'. +node_modules/acorn/acorn/dist/acorn.mjs(4814,45): error TS2339: Property 'readHexChar' does not exist on type 'readEscapedChar'. +node_modules/acorn/acorn/dist/acorn.mjs(4810,10): error TS2339: Property 'pos' does not exist on type 'readEscapedChar'. +node_modules/acorn/acorn/dist/acorn.mjs(4809,41): error TS2339: Property 'pos' does not exist on type 'readEscapedChar'. +node_modules/acorn/acorn/dist/acorn.mjs(4809,17): error TS2339: Property 'input' does not exist on type 'readEscapedChar'. +node_modules/acorn/acorn/dist/acorn.mjs(4778,14): error TS2339: Property 'pos' does not exist on type 'readTmplToken'. +node_modules/acorn/acorn/dist/acorn.mjs(4776,25): error TS2339: Property 'pos' does not exist on type 'readTmplToken'. +node_modules/acorn/acorn/dist/acorn.mjs(4774,31): error TS2339: Property 'pos' does not exist on type 'readTmplToken'. +node_modules/acorn/acorn/dist/acorn.mjs(4773,16): error TS2339: Property 'curLine' does not exist on type 'readTmplToken'. +node_modules/acorn/acorn/dist/acorn.mjs(4772,16): error TS2339: Property 'options' does not exist on type 'readTmplToken'. +node_modules/acorn/acorn/dist/acorn.mjs(4764,62): error TS2339: Property 'pos' does not exist on type 'readTmplToken'. +node_modules/acorn/acorn/dist/acorn.mjs(4764,40): error TS2339: Property 'pos' does not exist on type 'readTmplToken'. +node_modules/acorn/acorn/dist/acorn.mjs(4764,18): error TS2339: Property 'input' does not exist on type 'readTmplToken'. +node_modules/acorn/acorn/dist/acorn.mjs(4761,14): error TS2339: Property 'pos' does not exist on type 'readTmplToken'. +node_modules/acorn/acorn/dist/acorn.mjs(4760,48): error TS2339: Property 'pos' does not exist on type 'readTmplToken'. +node_modules/acorn/acorn/dist/acorn.mjs(4760,19): error TS2339: Property 'input' does not exist on type 'readTmplToken'. +node_modules/acorn/acorn/dist/acorn.mjs(4758,25): error TS2339: Property 'pos' does not exist on type 'readTmplToken'. +node_modules/acorn/acorn/dist/acorn.mjs(4757,19): error TS2339: Property 'readEscapedChar' does not exist on type 'readTmplToken'. +node_modules/acorn/acorn/dist/acorn.mjs(4756,48): error TS2339: Property 'pos' does not exist on type 'readTmplToken'. +node_modules/acorn/acorn/dist/acorn.mjs(4756,19): error TS2339: Property 'input' does not exist on type 'readTmplToken'. +node_modules/acorn/acorn/dist/acorn.mjs(4753,19): error TS2339: Property 'finishToken' does not exist on type 'readTmplToken'. +node_modules/acorn/acorn/dist/acorn.mjs(4752,48): error TS2339: Property 'pos' does not exist on type 'readTmplToken'. +node_modules/acorn/acorn/dist/acorn.mjs(4752,19): error TS2339: Property 'input' does not exist on type 'readTmplToken'. +node_modules/acorn/acorn/dist/acorn.mjs(4749,23): error TS2339: Property 'finishToken' does not exist on type 'readTmplToken'. +node_modules/acorn/acorn/dist/acorn.mjs(4748,18): error TS2339: Property 'pos' does not exist on type 'readTmplToken'. +node_modules/acorn/acorn/dist/acorn.mjs(4746,23): error TS2339: Property 'finishToken' does not exist on type 'readTmplToken'. +node_modules/acorn/acorn/dist/acorn.mjs(4745,16): error TS2339: Property 'pos' does not exist on type 'readTmplToken'. +node_modules/acorn/acorn/dist/acorn.mjs(4743,76): error TS2339: Property 'type' does not exist on type 'readTmplToken'. +node_modules/acorn/acorn/dist/acorn.mjs(4743,44): error TS2339: Property 'type' does not exist on type 'readTmplToken'. +node_modules/acorn/acorn/dist/acorn.mjs(4743,29): error TS2339: Property 'start' does not exist on type 'readTmplToken'. +node_modules/acorn/acorn/dist/acorn.mjs(4743,16): error TS2339: Property 'pos' does not exist on type 'readTmplToken'. +node_modules/acorn/acorn/dist/acorn.mjs(4742,62): error TS2339: Property 'pos' does not exist on type 'readTmplToken'. +node_modules/acorn/acorn/dist/acorn.mjs(4742,40): error TS2339: Property 'input' does not exist on type 'readTmplToken'. +node_modules/acorn/acorn/dist/acorn.mjs(4741,41): error TS2339: Property 'pos' does not exist on type 'readTmplToken'. +node_modules/acorn/acorn/dist/acorn.mjs(4741,19): error TS2339: Property 'input' does not exist on type 'readTmplToken'. +node_modules/acorn/acorn/dist/acorn.mjs(4740,58): error TS2339: Property 'start' does not exist on type 'readTmplToken'. +node_modules/acorn/acorn/dist/acorn.mjs(4740,47): error TS2339: Property 'raise' does not exist on type 'readTmplToken'. +node_modules/acorn/acorn/dist/acorn.mjs(4740,26): error TS2339: Property 'input' does not exist on type 'readTmplToken'. +node_modules/acorn/acorn/dist/acorn.mjs(4740,14): error TS2339: Property 'pos' does not exist on type 'readTmplToken'. +node_modules/acorn/acorn/dist/acorn.mjs(4738,35): error TS2339: Property 'pos' does not exist on type 'readTmplToken'. +node_modules/acorn/acorn/dist/acorn.mjs(4720,12): error TS2339: Property 'readInvalidTemplateToken' does not exist on type 'tryReadTemplateToken'. +node_modules/acorn/acorn/dist/acorn.mjs(4717,10): error TS2339: Property 'readTmplToken' does not exist on type 'tryReadTemplateToken'. +node_modules/acorn/acorn/dist/acorn.mjs(4615,29): error TS2532: Object is possibly 'undefined'. +node_modules/acorn/acorn/dist/acorn.mjs(4613,9): error TS2532: Object is possibly 'undefined'. +node_modules/acorn/acorn/dist/acorn.mjs(4612,12): error TS2322: Type 'number' is not assignable to type 'undefined'. +node_modules/acorn/acorn/dist/acorn.mjs(4611,42): error TS2322: Type 'number' is not assignable to type 'undefined'. +node_modules/acorn/acorn/dist/acorn.mjs(4610,28): error TS2322: Type 'number' is not assignable to type 'undefined'. +node_modules/acorn/acorn/dist/acorn.mjs(4609,23): error TS2322: Type 'number' is not assignable to type 'undefined'. +node_modules/acorn/acorn/dist/acorn.mjs(4598,15): error TS2339: Property 'finishToken' does not exist on type 'readRegexp'. +node_modules/acorn/acorn/dist/acorn.mjs(4587,8): error TS2339: Property 'validateRegExpPattern' does not exist on type 'readRegexp'. +node_modules/acorn/acorn/dist/acorn.mjs(4586,8): error TS2339: Property 'validateRegExpFlags' does not exist on type 'readRegexp'. +node_modules/acorn/acorn/dist/acorn.mjs(4581,32): error TS2339: Property 'unexpected' does not exist on type 'readRegexp'. +node_modules/acorn/acorn/dist/acorn.mjs(4581,12): error TS2339: Property 'containsEsc' does not exist on type 'readRegexp'. +node_modules/acorn/acorn/dist/acorn.mjs(4580,20): error TS2339: Property 'readWord1' does not exist on type 'readRegexp'. +node_modules/acorn/acorn/dist/acorn.mjs(4579,25): error TS2339: Property 'pos' does not exist on type 'readRegexp'. +node_modules/acorn/acorn/dist/acorn.mjs(4578,10): error TS2339: Property 'pos' does not exist on type 'readRegexp'. +node_modules/acorn/acorn/dist/acorn.mjs(4577,46): error TS2339: Property 'pos' does not exist on type 'readRegexp'. +node_modules/acorn/acorn/dist/acorn.mjs(4577,22): error TS2339: Property 'input' does not exist on type 'readRegexp'. +node_modules/acorn/acorn/dist/acorn.mjs(4575,12): error TS2339: Property 'pos' does not exist on type 'readRegexp'. +node_modules/acorn/acorn/dist/acorn.mjs(4568,36): error TS2339: Property 'raise' does not exist on type 'readRegexp'. +node_modules/acorn/acorn/dist/acorn.mjs(4567,37): error TS2339: Property 'pos' does not exist on type 'readRegexp'. +node_modules/acorn/acorn/dist/acorn.mjs(4567,19): error TS2339: Property 'input' does not exist on type 'readRegexp'. +node_modules/acorn/acorn/dist/acorn.mjs(4566,47): error TS2339: Property 'raise' does not exist on type 'readRegexp'. +node_modules/acorn/acorn/dist/acorn.mjs(4566,26): error TS2339: Property 'input' does not exist on type 'readRegexp'. +node_modules/acorn/acorn/dist/acorn.mjs(4566,14): error TS2339: Property 'pos' does not exist on type 'readRegexp'. +node_modules/acorn/acorn/dist/acorn.mjs(4564,38): error TS2339: Property 'pos' does not exist on type 'readRegexp'. +node_modules/acorn/acorn/dist/acorn.mjs(4377,8): error TS2339: Property 'updateContext' does not exist on type 'finishToken'. +node_modules/acorn/acorn/dist/acorn.mjs(4372,52): error TS2339: Property 'curPosition' does not exist on type 'finishToken'. +node_modules/acorn/acorn/dist/acorn.mjs(4372,12): error TS2339: Property 'options' does not exist on type 'finishToken'. +node_modules/acorn/acorn/dist/acorn.mjs(4371,19): error TS2339: Property 'pos' does not exist on type 'finishToken'. +node_modules/acorn/acorn/dist/acorn.mjs(4357,16): error TS2339: Property 'pos' does not exist on type 'skipSpace'. +node_modules/acorn/acorn/dist/acorn.mjs(4349,14): error TS2339: Property 'skipLineComment' does not exist on type 'skipSpace'. +node_modules/acorn/acorn/dist/acorn.mjs(4346,14): error TS2339: Property 'skipBlockComment' does not exist on type 'skipSpace'. +node_modules/acorn/acorn/dist/acorn.mjs(4344,42): error TS2339: Property 'pos' does not exist on type 'skipSpace'. +node_modules/acorn/acorn/dist/acorn.mjs(4344,20): error TS2339: Property 'input' does not exist on type 'skipSpace'. +node_modules/acorn/acorn/dist/acorn.mjs(4340,31): error TS2339: Property 'pos' does not exist on type 'skipSpace'. +node_modules/acorn/acorn/dist/acorn.mjs(4339,16): error TS2339: Property 'curLine' does not exist on type 'skipSpace'. +node_modules/acorn/acorn/dist/acorn.mjs(4338,16): error TS2339: Property 'options' does not exist on type 'skipSpace'. +node_modules/acorn/acorn/dist/acorn.mjs(4337,14): error TS2339: Property 'pos' does not exist on type 'skipSpace'. +node_modules/acorn/acorn/dist/acorn.mjs(4334,16): error TS2339: Property 'pos' does not exist on type 'skipSpace'. +node_modules/acorn/acorn/dist/acorn.mjs(4333,38): error TS2339: Property 'pos' does not exist on type 'skipSpace'. +node_modules/acorn/acorn/dist/acorn.mjs(4333,16): error TS2339: Property 'input' does not exist on type 'skipSpace'. +node_modules/acorn/acorn/dist/acorn.mjs(4330,14): error TS2339: Property 'pos' does not exist on type 'skipSpace'. +node_modules/acorn/acorn/dist/acorn.mjs(4327,41): error TS2339: Property 'pos' does not exist on type 'skipSpace'. +node_modules/acorn/acorn/dist/acorn.mjs(4327,19): error TS2339: Property 'input' does not exist on type 'skipSpace'. +node_modules/acorn/acorn/dist/acorn.mjs(4326,32): error TS2339: Property 'input' does not exist on type 'skipSpace'. +node_modules/acorn/acorn/dist/acorn.mjs(4326,21): error TS2339: Property 'pos' does not exist on type 'skipSpace'. +node_modules/acorn/acorn/dist/acorn.mjs(4307,43): error TS2339: Property 'curPosition' does not exist on type 'skipBlockComment'. +node_modules/acorn/acorn/dist/acorn.mjs(4306,53): error TS2532: Object is possibly 'undefined'. +node_modules/acorn/acorn/dist/acorn.mjs(4306,41): error TS2339: Property 'input' does not exist on type 'skipBlockComment'. +node_modules/acorn/acorn/dist/acorn.mjs(4306,12): error TS2339: Property 'options' does not exist on type 'skipBlockComment'. +node_modules/acorn/acorn/dist/acorn.mjs(4305,12): error TS2339: Property 'options' does not exist on type 'skipBlockComment'. +node_modules/acorn/acorn/dist/acorn.mjs(4301,14): error TS2339: Property 'curLine' does not exist on type 'skipBlockComment'. +node_modules/acorn/acorn/dist/acorn.mjs(4300,42): error TS2339: Property 'input' does not exist on type 'skipBlockComment'. +node_modules/acorn/acorn/dist/acorn.mjs(4298,5): error TS2322: Type 'undefined' is not assignable to type 'number'. +node_modules/acorn/acorn/dist/acorn.mjs(4297,12): error TS2339: Property 'options' does not exist on type 'skipBlockComment'. +node_modules/acorn/acorn/dist/acorn.mjs(4295,32): error TS2532: Object is possibly 'undefined'. +node_modules/acorn/acorn/dist/acorn.mjs(4295,26): error TS2339: Property 'raise' does not exist on type 'skipBlockComment'. +node_modules/acorn/acorn/dist/acorn.mjs(4294,56): error TS2532: Object is possibly 'undefined'. +node_modules/acorn/acorn/dist/acorn.mjs(4294,36): error TS2339: Property 'input' does not exist on type 'skipBlockComment'. +node_modules/acorn/acorn/dist/acorn.mjs(4293,49): error TS2339: Property 'curPosition' does not exist on type 'skipBlockComment'. +node_modules/acorn/acorn/dist/acorn.mjs(4293,23): error TS2339: Property 'options' does not exist on type 'skipBlockComment'. +node_modules/acorn/acorn/dist/acorn.mjs(4273,30): error TS2339: Property 'fullCharCodeAtPos' does not exist on type 'nextToken'. +node_modules/acorn/acorn/dist/acorn.mjs(4273,15): error TS2339: Property 'readToken' does not exist on type 'nextToken'. +node_modules/acorn/acorn/dist/acorn.mjs(4270,52): error TS2339: Property 'finishToken' does not exist on type 'nextToken'. +node_modules/acorn/acorn/dist/acorn.mjs(4270,24): error TS2339: Property 'input' does not exist on type 'nextToken'. +node_modules/acorn/acorn/dist/acorn.mjs(4270,12): error TS2339: Property 'pos' does not exist on type 'nextToken'. +node_modules/acorn/acorn/dist/acorn.mjs(4269,54): error TS2339: Property 'curPosition' does not exist on type 'nextToken'. +node_modules/acorn/acorn/dist/acorn.mjs(4269,12): error TS2339: Property 'options' does not exist on type 'nextToken'. +node_modules/acorn/acorn/dist/acorn.mjs(4268,21): error TS2339: Property 'pos' does not exist on type 'nextToken'. +node_modules/acorn/acorn/dist/acorn.mjs(4266,56): error TS2339: Property 'skipSpace' does not exist on type 'nextToken'. +node_modules/acorn/acorn/dist/acorn.mjs(4265,25): error TS2339: Property 'curContext' does not exist on type 'nextToken'. +node_modules/acorn/acorn/dist/acorn.mjs(4230,8): error TS2339: Property 'nextToken' does not exist on type 'next'. +node_modules/acorn/acorn/dist/acorn.mjs(4229,31): error TS2339: Property 'startLoc' does not exist on type 'next'. +node_modules/acorn/acorn/dist/acorn.mjs(4228,29): error TS2339: Property 'endLoc' does not exist on type 'next'. +node_modules/acorn/acorn/dist/acorn.mjs(4227,28): error TS2339: Property 'start' does not exist on type 'next'. +node_modules/acorn/acorn/dist/acorn.mjs(4226,26): error TS2339: Property 'end' does not exist on type 'next'. +node_modules/acorn/acorn/dist/acorn.mjs(4224,12): error TS2339: Property 'options' does not exist on type 'next'. +node_modules/acorn/acorn/dist/acorn.mjs(4223,12): error TS2339: Property 'options' does not exist on type 'next'. +node_modules/acorn/acorn/dist/acorn.mjs(3105,40): error TS2339: Property 'inGeneratorContext' does not exist on type 'updateContext'. +node_modules/acorn/acorn/dist/acorn.mjs(3105,14): error TS2339: Property 'value' does not exist on type 'updateContext'. +node_modules/acorn/acorn/dist/acorn.mjs(3104,14): error TS2339: Property 'value' does not exist on type 'updateContext'. +node_modules/acorn/acorn/dist/acorn.mjs(3103,12): error TS2339: Property 'options' does not exist on type 'updateContext'. +node_modules/acorn/acorn/dist/acorn.mjs(3096,14): error TS2339: Property 'context' does not exist on type 'updateContext'. +node_modules/acorn/acorn/dist/acorn.mjs(3094,14): error TS2339: Property 'context' does not exist on type 'updateContext'. +node_modules/acorn/acorn/dist/acorn.mjs(3093,14): error TS2339: Property 'context' does not exist on type 'updateContext'. +node_modules/acorn/acorn/dist/acorn.mjs(3092,22): error TS2339: Property 'context' does not exist on type 'updateContext'. +node_modules/acorn/acorn/dist/acorn.mjs(3086,12): error TS2339: Property 'context' does not exist on type 'updateContext'. +node_modules/acorn/acorn/dist/acorn.mjs(3084,12): error TS2339: Property 'context' does not exist on type 'updateContext'. +node_modules/acorn/acorn/dist/acorn.mjs(3083,12): error TS2339: Property 'curContext' does not exist on type 'updateContext'. +node_modules/acorn/acorn/dist/acorn.mjs(3078,12): error TS2339: Property 'context' does not exist on type 'updateContext'. +node_modules/acorn/acorn/dist/acorn.mjs(3076,12): error TS2339: Property 'context' does not exist on type 'updateContext'. +node_modules/acorn/acorn/dist/acorn.mjs(3075,73): error TS2339: Property 'curContext' does not exist on type 'updateContext'. +node_modules/acorn/acorn/dist/acorn.mjs(3074,93): error TS2339: Property 'start' does not exist on type 'updateContext'. +node_modules/acorn/acorn/dist/acorn.mjs(3074,76): error TS2339: Property 'lastTokEnd' does not exist on type 'updateContext'. +node_modules/acorn/acorn/dist/acorn.mjs(3074,59): error TS2339: Property 'input' does not exist on type 'updateContext'. +node_modules/acorn/acorn/dist/acorn.mjs(3064,8): error TS2339: Property 'context' does not exist on type 'updateContext'. +node_modules/acorn/acorn/dist/acorn.mjs(3058,8): error TS2339: Property 'context' does not exist on type 'updateContext'. +node_modules/acorn/acorn/dist/acorn.mjs(3053,26): error TS2339: Property 'braceIsBlock' does not exist on type 'updateContext'. +node_modules/acorn/acorn/dist/acorn.mjs(3053,8): error TS2339: Property 'context' does not exist on type 'updateContext'. +node_modules/acorn/acorn/dist/acorn.mjs(3047,16): error TS2339: Property 'context' does not exist on type 'updateContext'. +node_modules/acorn/acorn/dist/acorn.mjs(3046,38): error TS2339: Property 'curContext' does not exist on type 'updateContext'. +node_modules/acorn/acorn/dist/acorn.mjs(3045,18): error TS2339: Property 'context' does not exist on type 'updateContext'. +node_modules/acorn/acorn/dist/acorn.mjs(3041,12): error TS2339: Property 'context' does not exist on type 'updateContext'. +node_modules/acorn/acorn/dist/acorn.mjs(3029,27): error TS2339: Property 'type' does not exist on type 'updateContext'. +node_modules/acorn/acorn/dist/acorn.mjs(2820,37): error TS2339: Property 'raisedAt' does not exist on type 'SyntaxError'. +node_modules/acorn/acorn/dist/acorn.mjs(2820,22): error TS2339: Property 'loc' does not exist on type 'SyntaxError'. +node_modules/acorn/acorn/dist/acorn.mjs(2820,7): error TS2339: Property 'pos' does not exist on type 'SyntaxError'. +node_modules/acorn/acorn/dist/acorn.mjs(2805,15): error TS2339: Property 'finishNode' does not exist on type 'parseAwait'. +node_modules/acorn/acorn/dist/acorn.mjs(2804,24): error TS2339: Property 'parseMaybeUnary' does not exist on type 'parseAwait'. +node_modules/acorn/acorn/dist/acorn.mjs(2803,8): error TS2339: Property 'next' does not exist on type 'parseAwait'. +node_modules/acorn/acorn/dist/acorn.mjs(2802,19): error TS2339: Property 'startNode' does not exist on type 'parseAwait'. +node_modules/acorn/acorn/dist/acorn.mjs(2800,46): error TS2339: Property 'start' does not exist on type 'parseAwait'. +node_modules/acorn/acorn/dist/acorn.mjs(2796,15): error TS2339: Property 'finishNode' does not exist on type 'parseYield'. +node_modules/acorn/acorn/dist/acorn.mjs(2794,26): error TS2339: Property 'parseMaybeAssign' does not exist on type 'parseYield'. +node_modules/acorn/acorn/dist/acorn.mjs(2793,26): error TS2339: Property 'eat' does not exist on type 'parseYield'. +node_modules/acorn/acorn/dist/acorn.mjs(2789,99): error TS2339: Property 'type' does not exist on type 'parseYield'. +node_modules/acorn/acorn/dist/acorn.mjs(2789,70): error TS2339: Property 'type' does not exist on type 'parseYield'. +node_modules/acorn/acorn/dist/acorn.mjs(2789,40): error TS2339: Property 'canInsertSemicolon' does not exist on type 'parseYield'. +node_modules/acorn/acorn/dist/acorn.mjs(2789,12): error TS2339: Property 'type' does not exist on type 'parseYield'. +node_modules/acorn/acorn/dist/acorn.mjs(2788,8): error TS2339: Property 'next' does not exist on type 'parseYield'. +node_modules/acorn/acorn/dist/acorn.mjs(2787,19): error TS2339: Property 'startNode' does not exist on type 'parseYield'. +node_modules/acorn/acorn/dist/acorn.mjs(2785,46): error TS2339: Property 'start' does not exist on type 'parseYield'. +node_modules/acorn/acorn/dist/acorn.mjs(2775,10): error TS2339: Property 'checkUnreserved' does not exist on type 'parseIdent'. +node_modules/acorn/acorn/dist/acorn.mjs(2773,8): error TS2339: Property 'finishNode' does not exist on type 'parseIdent'. +node_modules/acorn/acorn/dist/acorn.mjs(2772,8): error TS2339: Property 'next' does not exist on type 'parseIdent'. +node_modules/acorn/acorn/dist/acorn.mjs(2770,10): error TS2339: Property 'unexpected' does not exist on type 'parseIdent'. +node_modules/acorn/acorn/dist/acorn.mjs(2767,12): error TS2339: Property 'context' does not exist on type 'parseIdent'. +node_modules/acorn/acorn/dist/acorn.mjs(2766,82): error TS2339: Property 'lastTokStart' does not exist on type 'parseIdent'. +node_modules/acorn/acorn/dist/acorn.mjs(2766,60): error TS2339: Property 'input' does not exist on type 'parseIdent'. +node_modules/acorn/acorn/dist/acorn.mjs(2766,35): error TS2339: Property 'lastTokStart' does not exist on type 'parseIdent'. +node_modules/acorn/acorn/dist/acorn.mjs(2766,15): error TS2339: Property 'lastTokEnd' does not exist on type 'parseIdent'. +node_modules/acorn/acorn/dist/acorn.mjs(2759,22): error TS2339: Property 'type' does not exist on type 'parseIdent'. +node_modules/acorn/acorn/dist/acorn.mjs(2758,19): error TS2339: Property 'type' does not exist on type 'parseIdent'. +node_modules/acorn/acorn/dist/acorn.mjs(2757,22): error TS2339: Property 'value' does not exist on type 'parseIdent'. +node_modules/acorn/acorn/dist/acorn.mjs(2756,12): error TS2339: Property 'type' does not exist on type 'parseIdent'. +node_modules/acorn/acorn/dist/acorn.mjs(2755,19): error TS2339: Property 'startNode' does not exist on type 'parseIdent'. +node_modules/acorn/acorn/dist/acorn.mjs(2716,9): error TS2322: Type 'null' is not assignable to type 'undefined'. +node_modules/acorn/acorn/dist/acorn.mjs(2673,38): error TS2339: Property 'checkLVal' does not exist on type 'parseFunctionBody'. +node_modules/acorn/acorn/dist/acorn.mjs(2670,8): error TS2339: Property 'exitScope' does not exist on type 'parseFunctionBody'. +node_modules/acorn/acorn/dist/acorn.mjs(2667,10): error TS2339: Property 'adaptDirectivePrologue' does not exist on type 'parseFunctionBody'. +node_modules/acorn/acorn/dist/acorn.mjs(2665,22): error TS2339: Property 'parseBlock' does not exist on type 'parseFunctionBody'. +node_modules/acorn/acorn/dist/acorn.mjs(2664,94): error TS2339: Property 'isSimpleParamList' does not exist on type 'parseFunctionBody'. +node_modules/acorn/acorn/dist/acorn.mjs(2664,10): error TS2339: Property 'checkParams' does not exist on type 'parseFunctionBody'. +node_modules/acorn/acorn/dist/acorn.mjs(2654,16): error TS2339: Property 'raiseRecoverable' does not exist on type 'parseFunctionBody'. +node_modules/acorn/acorn/dist/acorn.mjs(2649,45): error TS2339: Property 'end' does not exist on type 'parseFunctionBody'. +node_modules/acorn/acorn/dist/acorn.mjs(2649,24): error TS2339: Property 'strictDirective' does not exist on type 'parseFunctionBody'. +node_modules/acorn/acorn/dist/acorn.mjs(2647,60): error TS2339: Property 'isSimpleParamList' does not exist on type 'parseFunctionBody'. +node_modules/acorn/acorn/dist/acorn.mjs(2647,26): error TS2339: Property 'options' does not exist on type 'parseFunctionBody'. +node_modules/acorn/acorn/dist/acorn.mjs(2645,10): error TS2339: Property 'checkParams' does not exist on type 'parseFunctionBody'. +node_modules/acorn/acorn/dist/acorn.mjs(2643,22): error TS2339: Property 'parseMaybeAssign' does not exist on type 'parseFunctionBody'. +node_modules/acorn/acorn/dist/acorn.mjs(2639,46): error TS2339: Property 'type' does not exist on type 'parseFunctionBody'. +node_modules/acorn/acorn/dist/acorn.mjs(2633,15): error TS2339: Property 'finishNode' does not exist on type 'parseArrowExpression'. +node_modules/acorn/acorn/dist/acorn.mjs(2628,8): error TS2339: Property 'parseFunctionBody' does not exist on type 'parseArrowExpression'. +node_modules/acorn/acorn/dist/acorn.mjs(2627,22): error TS2339: Property 'toAssignableList' does not exist on type 'parseArrowExpression'. +node_modules/acorn/acorn/dist/acorn.mjs(2621,12): error TS2339: Property 'options' does not exist on type 'parseArrowExpression'. +node_modules/acorn/acorn/dist/acorn.mjs(2620,8): error TS2339: Property 'initFunction' does not exist on type 'parseArrowExpression'. +node_modules/acorn/acorn/dist/acorn.mjs(2619,8): error TS2339: Property 'enterScope' does not exist on type 'parseArrowExpression'. +node_modules/acorn/acorn/dist/acorn.mjs(2611,15): error TS2339: Property 'finishNode' does not exist on type 'parseMethod'. +node_modules/acorn/acorn/dist/acorn.mjs(2606,8): error TS2339: Property 'parseFunctionBody' does not exist on type 'parseMethod'. +node_modules/acorn/acorn/dist/acorn.mjs(2605,8): error TS2339: Property 'checkYieldAwaitInDefaultParams' does not exist on type 'parseMethod'. +node_modules/acorn/acorn/dist/acorn.mjs(2604,65): error TS2339: Property 'options' does not exist on type 'parseMethod'. +node_modules/acorn/acorn/dist/acorn.mjs(2604,22): error TS2339: Property 'parseBindingList' does not exist on type 'parseMethod'. +node_modules/acorn/acorn/dist/acorn.mjs(2603,8): error TS2339: Property 'expect' does not exist on type 'parseMethod'. +node_modules/acorn/acorn/dist/acorn.mjs(2601,8): error TS2339: Property 'enterScope' does not exist on type 'parseMethod'. +node_modules/acorn/acorn/dist/acorn.mjs(2595,12): error TS2339: Property 'options' does not exist on type 'parseMethod'. +node_modules/acorn/acorn/dist/acorn.mjs(2593,12): error TS2339: Property 'options' does not exist on type 'parseMethod'. +node_modules/acorn/acorn/dist/acorn.mjs(2592,8): error TS2339: Property 'initFunction' does not exist on type 'parseMethod'. +node_modules/acorn/acorn/dist/acorn.mjs(2590,19): error TS2339: Property 'startNode' does not exist on type 'parseMethod'. +node_modules/acorn/acorn/dist/acorn.mjs(2562,17): error TS2339: Property 'unexpected' does not exist on type 'parsePropertyValue'. +node_modules/acorn/acorn/dist/acorn.mjs(2557,25): error TS2339: Property 'parseMaybeDefault' does not exist on type 'parsePropertyValue'. +node_modules/acorn/acorn/dist/acorn.mjs(2556,57): error TS2339: Property 'start' does not exist on type 'parsePropertyValue'. +node_modules/acorn/acorn/dist/acorn.mjs(2554,21): error TS2339: Property 'type' does not exist on type 'parsePropertyValue'. +node_modules/acorn/acorn/dist/acorn.mjs(2553,25): error TS2339: Property 'parseMaybeDefault' does not exist on type 'parsePropertyValue'. +node_modules/acorn/acorn/dist/acorn.mjs(2548,10): error TS2339: Property 'checkUnreserved' does not exist on type 'parsePropertyValue'. +node_modules/acorn/acorn/dist/acorn.mjs(2547,40): error TS2339: Property 'unexpected' does not exist on type 'parsePropertyValue'. +node_modules/acorn/acorn/dist/acorn.mjs(2546,19): error TS2339: Property 'options' does not exist on type 'parsePropertyValue'. +node_modules/acorn/acorn/dist/acorn.mjs(2544,16): error TS2339: Property 'raiseRecoverable' does not exist on type 'parsePropertyValue'. +node_modules/acorn/acorn/dist/acorn.mjs(2541,16): error TS2339: Property 'raiseRecoverable' does not exist on type 'parsePropertyValue'. +node_modules/acorn/acorn/dist/acorn.mjs(2539,16): error TS2339: Property 'raiseRecoverable' does not exist on type 'parsePropertyValue'. +node_modules/acorn/acorn/dist/acorn.mjs(2534,23): error TS2339: Property 'parseMethod' does not exist on type 'parsePropertyValue'. +node_modules/acorn/acorn/dist/acorn.mjs(2533,10): error TS2339: Property 'parsePropertyName' does not exist on type 'parsePropertyValue'. +node_modules/acorn/acorn/dist/acorn.mjs(2531,40): error TS2339: Property 'unexpected' does not exist on type 'parsePropertyValue'. +node_modules/acorn/acorn/dist/acorn.mjs(2530,49): error TS2339: Property 'type' does not exist on type 'parsePropertyValue'. +node_modules/acorn/acorn/dist/acorn.mjs(2530,20): error TS2339: Property 'type' does not exist on type 'parsePropertyValue'. +node_modules/acorn/acorn/dist/acorn.mjs(2528,19): error TS2339: Property 'options' does not exist on type 'parsePropertyValue'. +node_modules/acorn/acorn/dist/acorn.mjs(2526,23): error TS2339: Property 'parseMethod' does not exist on type 'parsePropertyValue'. +node_modules/acorn/acorn/dist/acorn.mjs(2523,27): error TS2339: Property 'unexpected' does not exist on type 'parsePropertyValue'. +node_modules/acorn/acorn/dist/acorn.mjs(2522,52): error TS2339: Property 'type' does not exist on type 'parsePropertyValue'. +node_modules/acorn/acorn/dist/acorn.mjs(2522,19): error TS2339: Property 'options' does not exist on type 'parsePropertyValue'. +node_modules/acorn/acorn/dist/acorn.mjs(2520,87): error TS2339: Property 'parseMaybeAssign' does not exist on type 'parsePropertyValue'. +node_modules/acorn/acorn/dist/acorn.mjs(2520,70): error TS2339: Property 'startLoc' does not exist on type 'parsePropertyValue'. +node_modules/acorn/acorn/dist/acorn.mjs(2520,58): error TS2339: Property 'start' does not exist on type 'parsePropertyValue'. +node_modules/acorn/acorn/dist/acorn.mjs(2520,35): error TS2339: Property 'parseMaybeDefault' does not exist on type 'parsePropertyValue'. +node_modules/acorn/acorn/dist/acorn.mjs(2519,12): error TS2339: Property 'eat' does not exist on type 'parsePropertyValue'. +node_modules/acorn/acorn/dist/acorn.mjs(2517,12): error TS2339: Property 'unexpected' does not exist on type 'parsePropertyValue'. +node_modules/acorn/acorn/dist/acorn.mjs(2516,40): error TS2339: Property 'type' does not exist on type 'parsePropertyValue'. +node_modules/acorn/acorn/dist/acorn.mjs(2349,17): error TS2339: Property 'finishNode' does not exist on type 'parseParenAndDistinguishExpression'. +node_modules/acorn/acorn/dist/acorn.mjs(2347,20): error TS2339: Property 'startNodeAt' does not exist on type 'parseParenAndDistinguishExpression'. +node_modules/acorn/acorn/dist/acorn.mjs(2346,12): error TS2339: Property 'options' does not exist on type 'parseParenAndDistinguishExpression'. +node_modules/acorn/acorn/dist/acorn.mjs(2343,16): error TS2339: Property 'parseParenExpression' does not exist on type 'parseParenAndDistinguishExpression'. +node_modules/acorn/acorn/dist/acorn.mjs(2338,12): error TS2339: Property 'finishNodeAt' does not exist on type 'parseParenAndDistinguishExpression'. +node_modules/acorn/acorn/dist/acorn.mjs(2336,18): error TS2339: Property 'startNodeAt' does not exist on type 'parseParenAndDistinguishExpression'. +node_modules/acorn/acorn/dist/acorn.mjs(2331,10): error TS2339: Property 'checkExpressionErrors' does not exist on type 'parseParenAndDistinguishExpression'. +node_modules/acorn/acorn/dist/acorn.mjs(2330,29): error TS2339: Property 'unexpected' does not exist on type 'parseParenAndDistinguishExpression'. +node_modules/acorn/acorn/dist/acorn.mjs(2329,65): error TS2339: Property 'lastTokStart' does not exist on type 'parseParenAndDistinguishExpression'. +node_modules/acorn/acorn/dist/acorn.mjs(2329,49): error TS2339: Property 'unexpected' does not exist on type 'parseParenAndDistinguishExpression'. +node_modules/acorn/acorn/dist/acorn.mjs(2326,19): error TS2339: Property 'parseParenArrowList' does not exist on type 'parseParenAndDistinguishExpression'. +node_modules/acorn/acorn/dist/acorn.mjs(2323,12): error TS2339: Property 'checkYieldAwaitInDefaultParams' does not exist on type 'parseParenAndDistinguishExpression'. +node_modules/acorn/acorn/dist/acorn.mjs(2322,12): error TS2339: Property 'checkPatternErrors' does not exist on type 'parseParenAndDistinguishExpression'. +node_modules/acorn/acorn/dist/acorn.mjs(2321,58): error TS2339: Property 'eat' does not exist on type 'parseParenAndDistinguishExpression'. +node_modules/acorn/acorn/dist/acorn.mjs(2321,29): error TS2339: Property 'canInsertSemicolon' does not exist on type 'parseParenAndDistinguishExpression'. +node_modules/acorn/acorn/dist/acorn.mjs(2319,10): error TS2339: Property 'expect' does not exist on type 'parseParenAndDistinguishExpression'. +node_modules/acorn/acorn/dist/acorn.mjs(2318,54): error TS2339: Property 'startLoc' does not exist on type 'parseParenAndDistinguishExpression'. +node_modules/acorn/acorn/dist/acorn.mjs(2318,28): error TS2339: Property 'start' does not exist on type 'parseParenAndDistinguishExpression'. +node_modules/acorn/acorn/dist/acorn.mjs(2315,81): error TS2339: Property 'parseParenItem' does not exist on type 'parseParenAndDistinguishExpression'. +node_modules/acorn/acorn/dist/acorn.mjs(2315,28): error TS2339: Property 'parseMaybeAssign' does not exist on type 'parseParenAndDistinguishExpression'. +node_modules/acorn/acorn/dist/acorn.mjs(2312,58): error TS2339: Property 'start' does not exist on type 'parseParenAndDistinguishExpression'. +node_modules/acorn/acorn/dist/acorn.mjs(2312,47): error TS2339: Property 'raise' does not exist on type 'parseParenAndDistinguishExpression'. +node_modules/acorn/acorn/dist/acorn.mjs(2312,18): error TS2339: Property 'type' does not exist on type 'parseParenAndDistinguishExpression'. +node_modules/acorn/acorn/dist/acorn.mjs(2311,48): error TS2339: Property 'parseRestBinding' does not exist on type 'parseParenAndDistinguishExpression'. +node_modules/acorn/acorn/dist/acorn.mjs(2311,28): error TS2339: Property 'parseParenItem' does not exist on type 'parseParenAndDistinguishExpression'. +node_modules/acorn/acorn/dist/acorn.mjs(2310,28): error TS2339: Property 'start' does not exist on type 'parseParenAndDistinguishExpression'. +node_modules/acorn/acorn/dist/acorn.mjs(2309,23): error TS2339: Property 'type' does not exist on type 'parseParenAndDistinguishExpression'. +node_modules/acorn/acorn/dist/acorn.mjs(2306,38): error TS2339: Property 'afterTrailingComma' does not exist on type 'parseParenAndDistinguishExpression'. +node_modules/acorn/acorn/dist/acorn.mjs(2305,36): error TS2339: Property 'expect' does not exist on type 'parseParenAndDistinguishExpression'. +node_modules/acorn/acorn/dist/acorn.mjs(2304,17): error TS2339: Property 'type' does not exist on type 'parseParenAndDistinguishExpression'. +node_modules/acorn/acorn/dist/acorn.mjs(2298,58): error TS2339: Property 'startLoc' does not exist on type 'parseParenAndDistinguishExpression'. +node_modules/acorn/acorn/dist/acorn.mjs(2298,30): error TS2339: Property 'start' does not exist on type 'parseParenAndDistinguishExpression'. +node_modules/acorn/acorn/dist/acorn.mjs(2296,10): error TS2339: Property 'next' does not exist on type 'parseParenAndDistinguishExpression'. +node_modules/acorn/acorn/dist/acorn.mjs(2295,12): error TS2339: Property 'options' does not exist on type 'parseParenAndDistinguishExpression'. +node_modules/acorn/acorn/dist/acorn.mjs(2294,87): error TS2339: Property 'options' does not exist on type 'parseParenAndDistinguishExpression'. +node_modules/acorn/acorn/dist/acorn.mjs(2294,46): error TS2339: Property 'startLoc' does not exist on type 'parseParenAndDistinguishExpression'. +node_modules/acorn/acorn/dist/acorn.mjs(2294,23): error TS2339: Property 'start' does not exist on type 'parseParenAndDistinguishExpression'. +node_modules/acorn/acorn/dist/acorn.mjs(2151,17): error TS2339: Property 'finishNode' does not exist on type 'parseSubscript'. +node_modules/acorn/acorn/dist/acorn.mjs(2150,25): error TS2339: Property 'parseTemplate' does not exist on type 'parseSubscript'. +node_modules/acorn/acorn/dist/acorn.mjs(2148,23): error TS2339: Property 'startNodeAt' does not exist on type 'parseSubscript'. +node_modules/acorn/acorn/dist/acorn.mjs(2147,19): error TS2339: Property 'type' does not exist on type 'parseSubscript'. +node_modules/acorn/acorn/dist/acorn.mjs(2146,17): error TS2339: Property 'finishNode' does not exist on type 'parseSubscript'. +node_modules/acorn/acorn/dist/acorn.mjs(2143,14): error TS2339: Property 'raise' does not exist on type 'parseSubscript'. +node_modules/acorn/acorn/dist/acorn.mjs(2138,14): error TS2339: Property 'raise' does not exist on type 'parseSubscript'. +node_modules/acorn/acorn/dist/acorn.mjs(2133,23): error TS2339: Property 'startNodeAt' does not exist on type 'parseSubscript'. +node_modules/acorn/acorn/dist/acorn.mjs(2129,10): error TS2339: Property 'checkExpressionErrors' does not exist on type 'parseSubscript'. +node_modules/acorn/acorn/dist/acorn.mjs(2127,45): error TS2339: Property 'startNodeAt' does not exist on type 'parseSubscript'. +node_modules/acorn/acorn/dist/acorn.mjs(2127,19): error TS2339: Property 'parseArrowExpression' does not exist on type 'parseSubscript'. +node_modules/acorn/acorn/dist/acorn.mjs(2123,16): error TS2339: Property 'raise' does not exist on type 'parseSubscript'. +node_modules/acorn/acorn/dist/acorn.mjs(2121,12): error TS2339: Property 'checkYieldAwaitInDefaultParams' does not exist on type 'parseSubscript'. +node_modules/acorn/acorn/dist/acorn.mjs(2120,12): error TS2339: Property 'checkPatternErrors' does not exist on type 'parseSubscript'. +node_modules/acorn/acorn/dist/acorn.mjs(2119,63): error TS2339: Property 'eat' does not exist on type 'parseSubscript'. +node_modules/acorn/acorn/dist/acorn.mjs(2119,34): error TS2339: Property 'canInsertSemicolon' does not exist on type 'parseSubscript'. +node_modules/acorn/acorn/dist/acorn.mjs(2118,58): error TS2339: Property 'options' does not exist on type 'parseSubscript'. +node_modules/acorn/acorn/dist/acorn.mjs(2118,25): error TS2339: Property 'parseExprList' does not exist on type 'parseSubscript'. +node_modules/acorn/acorn/dist/acorn.mjs(2113,31): error TS2339: Property 'eat' does not exist on type 'parseSubscript'. +node_modules/acorn/acorn/dist/acorn.mjs(2112,17): error TS2339: Property 'finishNode' does not exist on type 'parseSubscript'. +node_modules/acorn/acorn/dist/acorn.mjs(2111,26): error TS2339: Property 'expect' does not exist on type 'parseSubscript'. +node_modules/acorn/acorn/dist/acorn.mjs(2109,78): error TS2339: Property 'options' does not exist on type 'parseSubscript'. +node_modules/acorn/acorn/dist/acorn.mjs(2109,62): error TS2339: Property 'parseIdent' does not exist on type 'parseSubscript'. +node_modules/acorn/acorn/dist/acorn.mjs(2109,37): error TS2339: Property 'parseExpression' does not exist on type 'parseSubscript'. +node_modules/acorn/acorn/dist/acorn.mjs(2107,21): error TS2339: Property 'startNodeAt' does not exist on type 'parseSubscript'. +node_modules/acorn/acorn/dist/acorn.mjs(2106,24): error TS2339: Property 'eat' does not exist on type 'parseSubscript'. +node_modules/acorn/acorn/dist/acorn.mjs(2105,23): error TS2339: Property 'eat' does not exist on type 'parseSubscript'. +node_modules/acorn/acorn/dist/acorn.mjs(1975,40): error TS2339: Property 'checkExpressionErrors' does not exist on type 'parseMaybeAssign'. +node_modules/acorn/acorn/dist/acorn.mjs(1973,17): error TS2339: Property 'finishNode' does not exist on type 'parseMaybeAssign'. +node_modules/acorn/acorn/dist/acorn.mjs(1972,23): error TS2339: Property 'parseMaybeAssign' does not exist on type 'parseMaybeAssign'. +node_modules/acorn/acorn/dist/acorn.mjs(1971,10): error TS2339: Property 'next' does not exist on type 'parseMaybeAssign'. +node_modules/acorn/acorn/dist/acorn.mjs(1970,10): error TS2339: Property 'checkLVal' does not exist on type 'parseMaybeAssign'. +node_modules/acorn/acorn/dist/acorn.mjs(1967,47): error TS2339: Property 'toAssignable' does not exist on type 'parseMaybeAssign'. +node_modules/acorn/acorn/dist/acorn.mjs(1967,22): error TS2339: Property 'type' does not exist on type 'parseMaybeAssign'. +node_modules/acorn/acorn/dist/acorn.mjs(1966,26): error TS2339: Property 'value' does not exist on type 'parseMaybeAssign'. +node_modules/acorn/acorn/dist/acorn.mjs(1965,21): error TS2339: Property 'startNodeAt' does not exist on type 'parseMaybeAssign'. +node_modules/acorn/acorn/dist/acorn.mjs(1964,12): error TS2339: Property 'type' does not exist on type 'parseMaybeAssign'. +node_modules/acorn/acorn/dist/acorn.mjs(1962,19): error TS2339: Property 'parseMaybeConditional' does not exist on type 'parseMaybeAssign'. +node_modules/acorn/acorn/dist/acorn.mjs(1961,36): error TS2339: Property 'start' does not exist on type 'parseMaybeAssign'. +node_modules/acorn/acorn/dist/acorn.mjs(1960,42): error TS2339: Property 'type' does not exist on type 'parseMaybeAssign'. +node_modules/acorn/acorn/dist/acorn.mjs(1960,12): error TS2339: Property 'type' does not exist on type 'parseMaybeAssign'. +node_modules/acorn/acorn/dist/acorn.mjs(1959,46): error TS2339: Property 'startLoc' does not exist on type 'parseMaybeAssign'. +node_modules/acorn/acorn/dist/acorn.mjs(1959,23): error TS2339: Property 'start' does not exist on type 'parseMaybeAssign'. +node_modules/acorn/acorn/dist/acorn.mjs(1942,41): error TS2339: Property 'parseYield' does not exist on type 'parseMaybeAssign'. +node_modules/acorn/acorn/dist/acorn.mjs(1942,14): error TS2339: Property 'inGenerator' does not exist on type 'parseMaybeAssign'. +node_modules/acorn/acorn/dist/acorn.mjs(1941,12): error TS2339: Property 'isContextual' does not exist on type 'parseMaybeAssign'. +node_modules/acorn/acorn/dist/acorn.mjs(1320,15): error TS2339: Property 'finishNode' does not exist on type 'parseClass'. +node_modules/acorn/acorn/dist/acorn.mjs(1318,20): error TS2339: Property 'finishNode' does not exist on type 'parseClass'. +node_modules/acorn/acorn/dist/acorn.mjs(1313,36): error TS2339: Property 'raise' does not exist on type 'parseClass'. +node_modules/acorn/acorn/dist/acorn.mjs(1309,24): error TS2339: Property 'parseClassElement' does not exist on type 'parseClass'. +node_modules/acorn/acorn/dist/acorn.mjs(1308,16): error TS2339: Property 'eat' does not exist on type 'parseClass'. +node_modules/acorn/acorn/dist/acorn.mjs(1307,8): error TS2339: Property 'expect' does not exist on type 'parseClass'. +node_modules/acorn/acorn/dist/acorn.mjs(1304,24): error TS2339: Property 'startNode' does not exist on type 'parseClass'. +node_modules/acorn/acorn/dist/acorn.mjs(1303,8): error TS2339: Property 'parseClassSuper' does not exist on type 'parseClass'. +node_modules/acorn/acorn/dist/acorn.mjs(1302,8): error TS2339: Property 'parseClassId' does not exist on type 'parseClass'. +node_modules/acorn/acorn/dist/acorn.mjs(1295,8): error TS2339: Property 'next' does not exist on type 'parseClass'. +node_modules/acorn/acorn/dist/acorn.mjs(1282,15): error TS2339: Property 'finishNode' does not exist on type 'parseFunction'. +node_modules/acorn/acorn/dist/acorn.mjs(1277,8): error TS2339: Property 'parseFunctionBody' does not exist on type 'parseFunction'. +node_modules/acorn/acorn/dist/acorn.mjs(1276,8): error TS2339: Property 'parseFunctionParams' does not exist on type 'parseFunction'. +node_modules/acorn/acorn/dist/acorn.mjs(1274,49): error TS2339: Property 'parseIdent' does not exist on type 'parseFunction'. +node_modules/acorn/acorn/dist/acorn.mjs(1274,22): error TS2339: Property 'type' does not exist on type 'parseFunction'. +node_modules/acorn/acorn/dist/acorn.mjs(1271,8): error TS2339: Property 'enterScope' does not exist on type 'parseFunction'. +node_modules/acorn/acorn/dist/acorn.mjs(1264,86): error TS2339: Property 'treatFunctionsAsVar' does not exist on type 'parseFunction'. +node_modules/acorn/acorn/dist/acorn.mjs(1264,39): error TS2339: Property 'strict' does not exist on type 'parseFunction'. +node_modules/acorn/acorn/dist/acorn.mjs(1264,14): error TS2339: Property 'checkLVal' does not exist on type 'parseFunction'. +node_modules/acorn/acorn/dist/acorn.mjs(1258,88): error TS2339: Property 'parseIdent' does not exist on type 'parseFunction'. +node_modules/acorn/acorn/dist/acorn.mjs(1258,54): error TS2339: Property 'type' does not exist on type 'parseFunction'. +node_modules/acorn/acorn/dist/acorn.mjs(1254,12): error TS2339: Property 'options' does not exist on type 'parseFunction'. +node_modules/acorn/acorn/dist/acorn.mjs(1252,27): error TS2339: Property 'eat' does not exist on type 'parseFunction'. +node_modules/acorn/acorn/dist/acorn.mjs(1251,14): error TS2339: Property 'unexpected' does not exist on type 'parseFunction'. +node_modules/acorn/acorn/dist/acorn.mjs(1250,14): error TS2339: Property 'type' does not exist on type 'parseFunction'. +node_modules/acorn/acorn/dist/acorn.mjs(1249,45): error TS2339: Property 'options' does not exist on type 'parseFunction'. +node_modules/acorn/acorn/dist/acorn.mjs(1249,12): error TS2339: Property 'options' does not exist on type 'parseFunction'. +node_modules/acorn/acorn/dist/acorn.mjs(1248,8): error TS2339: Property 'initFunction' does not exist on type 'parseFunction'. +node_modules/acorn/acorn/dist/acorn.mjs(846,29): error TS2531: Object is possibly 'null'. +node_modules/acorn/acorn/dist/acorn.mjs(789,25): error TS2531: Object is possibly 'null'. +node_modules/acorn/acorn/dist/acorn.mjs(762,25): error TS2531: Object is possibly 'null'. +node_modules/acorn/acorn/dist/acorn.mjs(602,14): error TS2531: Object is possibly 'null'. +node_modules/acorn/acorn/dist/acorn.mjs(594,14): error TS2531: Object is possibly 'null'. +node_modules/acorn/acorn/dist/acorn.mjs(576,17): error TS2339: Property 'parseExpression' does not exist on type 'Parser'. +node_modules/acorn/acorn/dist/acorn.mjs(575,10): error TS2339: Property 'nextToken' does not exist on type 'Parser'. +node_modules/acorn/acorn/dist/acorn.mjs(558,85): error TS2339: Property 'currentThisScope' does not exist on type 'Parser'. +node_modules/acorn/acorn/dist/acorn.mjs(547,15): error TS2339: Property 'parseTopLevel' does not exist on type 'Parser'. +node_modules/acorn/acorn/dist/acorn.mjs(546,8): error TS2339: Property 'nextToken' does not exist on type 'Parser'. +node_modules/acorn/acorn/dist/acorn.mjs(545,43): error TS2339: Property 'startNode' does not exist on type 'Parser'. +node_modules/acorn/acorn/dist/acorn.mjs(536,8): error TS2339: Property 'enterScope' does not exist on type 'Parser'. +node_modules/acorn/acorn/dist/acorn.mjs(532,12): error TS2339: Property 'skipLineComment' does not exist on type 'Parser'. +node_modules/acorn/acorn/dist/acorn.mjs(518,39): error TS2339: Property 'strictDirective' does not exist on type 'Parser'. +node_modules/acorn/acorn/dist/acorn.mjs(513,23): error TS2339: Property 'initialContext' does not exist on type 'Parser'. +node_modules/acorn/acorn/dist/acorn.mjs(504,38): error TS2339: Property 'curPosition' does not exist on type 'Parser'. +node_modules/acorn/acorn/dist/acorn.mjs(413,56): error TS2339: Property 'push' does not exist on type '(token: any) => any'. +node_modules/acorn/acorn/dist/acorn.mjs(36,32): error TS2322: Type 'null' is not assignable to type 'string'. +node_modules/acorn/acorn/dist/acorn.mjs(36,1): error TS2322: Type 'null' is not assignable to type 'string'. +node_modules/acorn/acorn-walk/dist/walk.mjs(158,41): error TS2339: Property 'node' does not exist on type 'never'. +node_modules/acorn/acorn-loose/dist/acorn-loose.mjs(1357,16): error TS2339: Property 'tabSize' does not exist on type 'Options'. +node_modules/acorn/acorn-loose/dist/acorn-loose.mjs(1317,15): error TS2339: Property 'finishNode' does not exist on type 'parseArrowExpression'. +node_modules/acorn/acorn-loose/dist/acorn-loose.mjs(1313,10): error TS2339: Property 'toks' does not exist on type 'parseArrowExpression'. +node_modules/acorn/acorn-loose/dist/acorn-loose.mjs(1312,22): error TS2339: Property 'parseBlock' does not exist on type 'parseArrowExpression'. +node_modules/acorn/acorn-loose/dist/acorn-loose.mjs(1310,22): error TS2339: Property 'parseMaybeAssign' does not exist on type 'parseArrowExpression'. +node_modules/acorn/acorn-loose/dist/acorn-loose.mjs(1308,26): error TS2339: Property 'tok' does not exist on type 'parseArrowExpression'. +node_modules/acorn/acorn-loose/dist/acorn-loose.mjs(1307,22): error TS2339: Property 'toAssignableList' does not exist on type 'parseArrowExpression'. +node_modules/acorn/acorn-loose/dist/acorn-loose.mjs(1303,12): error TS2339: Property 'options' does not exist on type 'parseArrowExpression'. +node_modules/acorn/acorn-loose/dist/acorn-loose.mjs(1302,8): error TS2551: Property 'initFunction' does not exist on type 'parseArrowExpression'. Did you mean 'inFunction'? +node_modules/acorn/acorn-loose/dist/acorn-loose.mjs(1297,15): error TS2339: Property 'finishNode' does not exist on type 'parseMethod'. +node_modules/acorn/acorn-loose/dist/acorn-loose.mjs(1294,8): error TS2339: Property 'toks' does not exist on type 'parseMethod'. +node_modules/acorn/acorn-loose/dist/acorn-loose.mjs(1293,20): error TS2339: Property 'parseBlock' does not exist on type 'parseMethod'. +node_modules/acorn/acorn-loose/dist/acorn-loose.mjs(1292,22): error TS2339: Property 'parseFunctionParams' does not exist on type 'parseMethod'. +node_modules/acorn/acorn-loose/dist/acorn-loose.mjs(1288,12): error TS2339: Property 'options' does not exist on type 'parseMethod'. +node_modules/acorn/acorn-loose/dist/acorn-loose.mjs(1286,12): error TS2339: Property 'options' does not exist on type 'parseMethod'. +node_modules/acorn/acorn-loose/dist/acorn-loose.mjs(1285,8): error TS2551: Property 'initFunction' does not exist on type 'parseMethod'. Did you mean 'inFunction'? +node_modules/acorn/acorn-loose/dist/acorn-loose.mjs(1284,19): error TS2339: Property 'startNode' does not exist on type 'parseMethod'. +node_modules/acorn/acorn-loose/dist/acorn-loose.mjs(1239,94): error TS1313: The body of an 'if' statement cannot be the empty statement. +node_modules/acorn/acorn-loose/dist/acorn-loose.mjs(1150,7): error TS2322: Type 'false' is not assignable to type 'undefined'. +node_modules/acorn/acorn-loose/dist/acorn-loose.mjs(1146,7): error TS2322: Type 'true' is not assignable to type 'undefined'. +node_modules/acorn/acorn-loose/dist/acorn-loose.mjs(1084,34): error TS2339: Property 'invalidTemplate' does not exist on type '{ num: TokenType; regexp: TokenType; string: TokenType; name: TokenType; eof: TokenType; bracketL: TokenType; bracketR: TokenType; ... 65 more ...; _delete: TokenType; }'. +node_modules/acorn/acorn-loose/dist/acorn-loose.mjs(635,15): error TS2339: Property 'finishNode' does not exist on type 'parseFunction'. +node_modules/acorn/acorn-loose/dist/acorn-loose.mjs(632,8): error TS2339: Property 'toks' does not exist on type 'parseFunction'. +node_modules/acorn/acorn-loose/dist/acorn-loose.mjs(631,20): error TS2339: Property 'parseBlock' does not exist on type 'parseFunction'. +node_modules/acorn/acorn-loose/dist/acorn-loose.mjs(630,22): error TS2339: Property 'parseFunctionParams' does not exist on type 'parseFunction'. +node_modules/acorn/acorn-loose/dist/acorn-loose.mjs(627,51): error TS2339: Property 'dummyIdent' does not exist on type 'parseFunction'. +node_modules/acorn/acorn-loose/dist/acorn-loose.mjs(626,57): error TS2339: Property 'parseIdent' does not exist on type 'parseFunction'. +node_modules/acorn/acorn-loose/dist/acorn-loose.mjs(626,12): error TS2339: Property 'tok' does not exist on type 'parseFunction'. +node_modules/acorn/acorn-loose/dist/acorn-loose.mjs(623,12): error TS2339: Property 'options' does not exist on type 'parseFunction'. +node_modules/acorn/acorn-loose/dist/acorn-loose.mjs(621,27): error TS2339: Property 'eat' does not exist on type 'parseFunction'. +node_modules/acorn/acorn-loose/dist/acorn-loose.mjs(620,12): error TS2339: Property 'options' does not exist on type 'parseFunction'. +node_modules/acorn/acorn-loose/dist/acorn-loose.mjs(619,8): error TS2551: Property 'initFunction' does not exist on type 'parseFunction'. Did you mean 'inFunction'? +node_modules/acorn/acorn-loose/dist/acorn-loose.mjs(585,7): error TS2322: Type 'false' is not assignable to type 'undefined'. +node_modules/acorn/acorn-loose/dist/acorn-loose.mjs(581,7): error TS2322: Type 'true' is not assignable to type 'undefined'. +node_modules/acorn/acorn-loose/dist/acorn-loose.mjs(295,15): error TS2339: Property 'finishNode' does not exist on type 'parseTopLevel'. +node_modules/acorn/acorn-loose/dist/acorn-loose.mjs(294,26): error TS2339: Property 'options' does not exist on type 'parseTopLevel'. +node_modules/acorn/acorn-loose/dist/acorn-loose.mjs(293,20): error TS2339: Property 'tok' does not exist on type 'parseTopLevel'. +node_modules/acorn/acorn-loose/dist/acorn-loose.mjs(292,8): error TS2339: Property 'toks' does not exist on type 'parseTopLevel'. +node_modules/acorn/acorn-loose/dist/acorn-loose.mjs(291,64): error TS2339: Property 'parseStatement' does not exist on type 'parseTopLevel'. +node_modules/acorn/acorn-loose/dist/acorn-loose.mjs(291,15): error TS2339: Property 'tok' does not exist on type 'parseTopLevel'. +node_modules/acorn/acorn-loose/dist/acorn-loose.mjs(289,77): error TS2339: Property 'input' does not exist on type 'parseTopLevel'. +node_modules/acorn/acorn-loose/dist/acorn-loose.mjs(289,36): error TS2339: Property 'options' does not exist on type 'parseTopLevel'. +node_modules/acorn/acorn-loose/dist/acorn-loose.mjs(289,19): error TS2339: Property 'startNodeAt' does not exist on type 'parseTopLevel'. +node_modules/acorn/acorn-loose/dist/acorn-loose.mjs(253,45): error TS2339: Property 'end' does not exist on type 'true'. +node_modules/acorn/acorn-loose/dist/acorn-loose.mjs(252,45): error TS2339: Property 'start' does not exist on type 'true'. +node_modules/acorn/acorn-loose/dist/acorn-loose.mjs(250,21): error TS2339: Property 'loc' does not exist on type 'true'. +node_modules/acorn/acorn-loose/dist/acorn-loose.mjs(247,31): error TS2322: Type '{ start: any; end: any; type: acorn.TokenType; value: string; }' is not assignable to type 'boolean'. +node_modules/acorn/acorn-loose/dist/acorn-loose.mjs(226,39): error TS2339: Property 'pos' does not exist on type 'SyntaxError'. +node_modules/acorn/acorn-loose/dist/acorn-loose.mjs(223,22): error TS2339: Property 'pos' does not exist on type 'SyntaxError'. +node_modules/acorn/acorn-loose/dist/acorn-loose.mjs(222,11): error TS2322: Type '{ start: any; end: any; type: acorn.TokenType; value: any; }' is not assignable to type 'boolean'. +node_modules/acorn/acorn-loose/dist/acorn-loose.mjs(220,31): error TS2339: Property 'pos' does not exist on type 'SyntaxError'. +node_modules/acorn/acorn-loose/dist/acorn-loose.mjs(220,11): error TS2322: Type '{ start: any; end: any; type: acorn.TokenType; value: any; }' is not assignable to type 'boolean'. +node_modules/acorn/acorn-loose/dist/acorn-loose.mjs(218,39): error TS2339: Property 'pos' does not exist on type 'SyntaxError'. +node_modules/acorn/acorn-loose/dist/acorn-loose.mjs(216,95): error TS2339: Property 'pos' does not exist on type 'SyntaxError'. +node_modules/acorn/acorn-loose/dist/acorn-loose.mjs(216,31): error TS2339: Property 'pos' does not exist on type 'SyntaxError'. +node_modules/acorn/acorn-loose/dist/acorn-loose.mjs(216,11): error TS2322: Type '{ start: any; end: any; type: acorn.TokenType; value: any; }' is not assignable to type 'boolean'. +node_modules/acorn/acorn-loose/dist/acorn-loose.mjs(214,30): error TS2339: Property 'pos' does not exist on type 'SyntaxError'. +node_modules/acorn/acorn-loose/dist/acorn-loose.mjs(212,36): error TS2339: Property 'raisedAt' does not exist on type 'SyntaxError'. +node_modules/acorn/acorn-loose/dist/acorn-loose.mjs(193,27): error TS2339: Property 'indentationAfter' does not exist on type 'next'. +node_modules/acorn/acorn-loose/dist/acorn-loose.mjs(191,33): error TS2339: Property 'lineEnd' does not exist on type 'next'. +node_modules/acorn/acorn-loose/dist/acorn-loose.mjs(188,25): error TS2532: Object is possibly 'undefined'. +node_modules/acorn/acorn-loose/dist/acorn-loose.mjs(186,23): error TS2339: Property 'readToken' does not exist on type 'next'. +node_modules/acorn/acorn-loose/dist/acorn-loose.mjs(184,23): error TS2339: Property 'ahead' does not exist on type 'next'. +node_modules/acorn/acorn-loose/dist/acorn-loose.mjs(183,12): error TS2339: Property 'ahead' does not exist on type 'next'. +node_modules/acorn/acorn-loose/dist/acorn-loose.mjs(156,15): error TS2339: Property 'parseTopLevel' does not exist on type 'LooseParser'. +node_modules/acorn/acorn-loose/dist/acorn-loose.mjs(155,8): error TS2339: Property 'next' does not exist on type 'LooseParser'. +node_modules/acorn/acorn-loose/dist/acorn-loose.mjs(107,42): error TS2339: Property 'next' does not exist on type 'LooseParser'. +node_modules/acorn/acorn-loose/dist/acorn-loose.mjs(106,14): error TS2339: Property 'lookAhead' does not exist on type 'LooseParser'. +node_modules/acorn/acorn-loose/dist/acorn-loose.mjs(79,10): error TS2339: Property 'next' does not exist on type 'LooseParser'. +node_modules/acorn/acorn-loose/dist/acorn-loose.mjs(73,23): error TS2339: Property 'raw' does not exist on type 'Node'. +node_modules/acorn/acorn-loose/dist/acorn-loose.mjs(73,9): error TS2339: Property 'value' does not exist on type 'Node'. +node_modules/acorn/acorn-loose/dist/acorn-loose.mjs(67,9): error TS2339: Property 'name' does not exist on type 'Node'. +node_modules/acorn/acorn-loose/dist/acorn-loose.mjs(60,7): error TS2532: Object is possibly 'undefined'. +node_modules/acorn/acorn-loose/dist/acorn-loose.mjs(58,23): error TS2532: Object is possibly 'undefined'. +node_modules/acorn/acorn-loose/dist/acorn-loose.mjs(58,7): error TS2532: Object is possibly 'undefined'. +node_modules/acorn/acorn-loose/dist/acorn-loose.mjs(8,32): error TS2339: Property 'BaseParser' does not exist on type 'Function'. node_modules/acorn/acorn-loose/dist/acorn-loose.js(3,10): error TS2304: Cannot find name 'define'. node_modules/acorn/acorn-loose/dist/acorn-loose.js(3,35): error TS2304: Cannot find name 'define'. node_modules/acorn/acorn-loose/dist/acorn-loose.js(3,48): error TS2304: Cannot find name 'define'. @@ -42,6 +519,8 @@ node_modules/acorn/acorn-loose/dist/acorn-loose.js(296,10): error TS2339: Proper node_modules/acorn/acorn-loose/dist/acorn-loose.js(297,22): error TS2339: Property 'tok' does not exist on type 'parseTopLevel'. node_modules/acorn/acorn-loose/dist/acorn-loose.js(298,28): error TS2339: Property 'options' does not exist on type 'parseTopLevel'. node_modules/acorn/acorn-loose/dist/acorn-loose.js(299,17): error TS2339: Property 'finishNode' does not exist on type 'parseTopLevel'. +node_modules/acorn/acorn-loose/dist/acorn-loose.js(585,9): error TS2322: Type 'true' is not assignable to type 'undefined'. +node_modules/acorn/acorn-loose/dist/acorn-loose.js(589,9): error TS2322: Type 'false' is not assignable to type 'undefined'. node_modules/acorn/acorn-loose/dist/acorn-loose.js(623,10): error TS2551: Property 'initFunction' does not exist on type 'parseFunction'. Did you mean 'inFunction'? node_modules/acorn/acorn-loose/dist/acorn-loose.js(624,14): error TS2339: Property 'options' does not exist on type 'parseFunction'. node_modules/acorn/acorn-loose/dist/acorn-loose.js(625,29): error TS2339: Property 'eat' does not exist on type 'parseFunction'. @@ -53,6 +532,8 @@ node_modules/acorn/acorn-loose/dist/acorn-loose.js(634,24): error TS2339: Proper node_modules/acorn/acorn-loose/dist/acorn-loose.js(635,22): error TS2339: Property 'parseBlock' does not exist on type 'parseFunction'. node_modules/acorn/acorn-loose/dist/acorn-loose.js(636,10): error TS2339: Property 'toks' does not exist on type 'parseFunction'. node_modules/acorn/acorn-loose/dist/acorn-loose.js(639,17): error TS2339: Property 'finishNode' does not exist on type 'parseFunction'. +node_modules/acorn/acorn-loose/dist/acorn-loose.js(1150,9): error TS2322: Type 'true' is not assignable to type 'undefined'. +node_modules/acorn/acorn-loose/dist/acorn-loose.js(1154,9): error TS2322: Type 'false' is not assignable to type 'undefined'. node_modules/acorn/acorn-loose/dist/acorn-loose.js(1243,96): error TS1313: The body of an 'if' statement cannot be the empty statement. node_modules/acorn/acorn-loose/dist/acorn-loose.js(1288,21): error TS2339: Property 'startNode' does not exist on type 'parseMethod'. node_modules/acorn/acorn-loose/dist/acorn-loose.js(1289,10): error TS2551: Property 'initFunction' does not exist on type 'parseMethod'. Did you mean 'inFunction'? @@ -269,6 +750,7 @@ node_modules/acorn/acorn/dist/acorn.js(2671,24): error TS2339: Property 'parseBl node_modules/acorn/acorn/dist/acorn.js(2673,12): error TS2339: Property 'adaptDirectivePrologue' does not exist on type 'parseFunctionBody'. node_modules/acorn/acorn/dist/acorn.js(2676,10): error TS2339: Property 'exitScope' does not exist on type 'parseFunctionBody'. node_modules/acorn/acorn/dist/acorn.js(2679,40): error TS2339: Property 'checkLVal' does not exist on type 'parseFunctionBody'. +node_modules/acorn/acorn/dist/acorn.js(2722,11): error TS2322: Type 'null' is not assignable to type 'undefined'. node_modules/acorn/acorn/dist/acorn.js(2761,21): error TS2339: Property 'startNode' does not exist on type 'parseIdent'. node_modules/acorn/acorn/dist/acorn.js(2762,14): error TS2339: Property 'type' does not exist on type 'parseIdent'. node_modules/acorn/acorn/dist/acorn.js(2763,24): error TS2339: Property 'value' does not exist on type 'parseIdent'. @@ -351,11 +833,13 @@ node_modules/acorn/acorn/dist/acorn.js(4300,58): error TS2532: Object is possibl node_modules/acorn/acorn/dist/acorn.js(4301,28): error TS2339: Property 'raise' does not exist on type 'skipBlockComment'. node_modules/acorn/acorn/dist/acorn.js(4301,34): error TS2532: Object is possibly 'undefined'. node_modules/acorn/acorn/dist/acorn.js(4303,14): error TS2339: Property 'options' does not exist on type 'skipBlockComment'. +node_modules/acorn/acorn/dist/acorn.js(4304,7): error TS2322: Type 'undefined' is not assignable to type 'number'. node_modules/acorn/acorn/dist/acorn.js(4306,44): error TS2339: Property 'input' does not exist on type 'skipBlockComment'. node_modules/acorn/acorn/dist/acorn.js(4307,16): error TS2339: Property 'curLine' does not exist on type 'skipBlockComment'. node_modules/acorn/acorn/dist/acorn.js(4311,14): error TS2339: Property 'options' does not exist on type 'skipBlockComment'. node_modules/acorn/acorn/dist/acorn.js(4312,14): error TS2339: Property 'options' does not exist on type 'skipBlockComment'. node_modules/acorn/acorn/dist/acorn.js(4312,43): error TS2339: Property 'input' does not exist on type 'skipBlockComment'. +node_modules/acorn/acorn/dist/acorn.js(4312,55): error TS2532: Object is possibly 'undefined'. node_modules/acorn/acorn/dist/acorn.js(4313,45): error TS2339: Property 'curPosition' does not exist on type 'skipBlockComment'. node_modules/acorn/acorn/dist/acorn.js(4332,23): error TS2339: Property 'pos' does not exist on type 'skipSpace'. node_modules/acorn/acorn/dist/acorn.js(4332,34): error TS2339: Property 'input' does not exist on type 'skipSpace'. @@ -396,6 +880,12 @@ node_modules/acorn/acorn/dist/acorn.js(4587,34): error TS2339: Property 'unexpec node_modules/acorn/acorn/dist/acorn.js(4592,10): error TS2339: Property 'validateRegExpFlags' does not exist on type 'readRegexp'. node_modules/acorn/acorn/dist/acorn.js(4593,10): error TS2339: Property 'validateRegExpPattern' does not exist on type 'readRegexp'. node_modules/acorn/acorn/dist/acorn.js(4604,17): error TS2339: Property 'finishToken' does not exist on type 'readRegexp'. +node_modules/acorn/acorn/dist/acorn.js(4615,25): error TS2322: Type 'number' is not assignable to type 'undefined'. +node_modules/acorn/acorn/dist/acorn.js(4616,30): error TS2322: Type 'number' is not assignable to type 'undefined'. +node_modules/acorn/acorn/dist/acorn.js(4617,44): error TS2322: Type 'number' is not assignable to type 'undefined'. +node_modules/acorn/acorn/dist/acorn.js(4618,14): error TS2322: Type 'number' is not assignable to type 'undefined'. +node_modules/acorn/acorn/dist/acorn.js(4619,11): error TS2532: Object is possibly 'undefined'. +node_modules/acorn/acorn/dist/acorn.js(4621,31): error TS2532: Object is possibly 'undefined'. node_modules/acorn/acorn/dist/acorn.js(4723,12): error TS2339: Property 'readTmplToken' does not exist on type 'tryReadTemplateToken'. node_modules/acorn/acorn/dist/acorn.js(4726,14): error TS2339: Property 'readInvalidTemplateToken' does not exist on type 'tryReadTemplateToken'. node_modules/acorn/acorn/dist/acorn.js(4744,37): error TS2339: Property 'pos' does not exist on type 'readTmplToken'. @@ -472,6 +962,8 @@ node_modules/acorn/acorn/dist/acorn.js(4893,27): error TS2339: Property 'pos' do node_modules/acorn/acorn/dist/acorn.js(4899,24): error TS2339: Property 'input' does not exist on type 'readWord1'. node_modules/acorn/acorn/dist/acorn.js(4899,53): error TS2339: Property 'pos' does not exist on type 'readWord1'. node_modules/acorn/acorn/dist/bin.js(46,27): error TS2339: Property 'getToken' does not exist on type 'Parser'. +node_modules/acorn/acorn/dist/bin.js(51,46): error TS2571: Object is of type 'unknown'. +node_modules/acorn/acorn/dist/bin.js(51,150): error TS2571: Object is of type 'unknown'. node_modules/acorn/acorn/dist/bin.js(54,30): error TS2769: No overload matches this call. Overload 1 of 2, '(value: any, replacer?: ((this: any, key: string, value: any) => any) | undefined, space?: string | number | undefined): string', gave the following error. Argument of type 'null' is not assignable to parameter of type '((this: any, key: string, value: any) => any) | undefined'. @@ -479,26 +971,27 @@ node_modules/acorn/acorn/dist/bin.js(54,30): error TS2769: No overload matches t Argument of type '2 | null' is not assignable to parameter of type 'string | number | undefined'. Type 'null' is not assignable to type 'string | number | undefined'. node_modules/acorn/acorn/dist/bin.js(58,23): error TS2769: No overload matches this call. - Overload 1 of 3, '(path: number | PathLike, options?: { encoding?: null | undefined; flag?: string | undefined; } | null | undefined): Buffer', gave the following error. - Argument of type 'string | undefined' is not assignable to parameter of type 'number | PathLike'. - Type 'undefined' is not assignable to type 'number | PathLike'. - Overload 2 of 3, '(path: number | PathLike, options: { encoding: BufferEncoding; flag?: string | undefined; } | BufferEncoding): string', gave the following error. - Argument of type 'string | undefined' is not assignable to parameter of type 'number | PathLike'. - Overload 3 of 3, '(path: number | PathLike, options?: BufferEncoding | (BaseEncodingOptions & { flag?: string | undefined; }) | null | undefined): string | Buffer', gave the following error. - Argument of type 'string | undefined' is not assignable to parameter of type 'number | PathLike'. + Overload 1 of 3, '(path: PathOrFileDescriptor, options?: { encoding?: null | undefined; flag?: string | undefined; } | null | undefined): Buffer', gave the following error. + Argument of type 'string | undefined' is not assignable to parameter of type 'PathOrFileDescriptor'. + Type 'undefined' is not assignable to type 'PathOrFileDescriptor'. + Overload 2 of 3, '(path: PathOrFileDescriptor, options: { encoding: BufferEncoding; flag?: string | undefined; } | BufferEncoding): string', gave the following error. + Argument of type 'string | undefined' is not assignable to parameter of type 'PathOrFileDescriptor'. + Overload 3 of 3, '(path: PathOrFileDescriptor, options?: BufferEncoding | (ObjectEncodingOptions & { flag?: string | undefined; }) | null | undefined): string | Buffer', gave the following error. + Argument of type 'string | undefined' is not assignable to parameter of type 'PathOrFileDescriptor'. node_modules/acorn/bin/_acorn.js(51,30): error TS2339: Property 'getToken' does not exist on type 'Parser'. +node_modules/acorn/bin/_acorn.js(56,19): error TS2571: Object is of type 'unknown'. node_modules/acorn/bin/_acorn.js(59,30): error TS2769: No overload matches this call. Overload 1 of 2, '(value: any, replacer?: ((this: any, key: string, value: any) => any) | undefined, space?: string | number | undefined): string', gave the following error. Argument of type 'null' is not assignable to parameter of type '((this: any, key: string, value: any) => any) | undefined'. Overload 2 of 2, '(value: any, replacer?: (string | number)[] | null | undefined, space?: string | number | undefined): string', gave the following error. Argument of type '2 | null' is not assignable to parameter of type 'string | number | undefined'. node_modules/acorn/bin/_acorn.js(63,23): error TS2769: No overload matches this call. - Overload 1 of 3, '(path: number | PathLike, options?: { encoding?: null | undefined; flag?: string | undefined; } | null | undefined): Buffer', gave the following error. - Argument of type 'string | undefined' is not assignable to parameter of type 'number | PathLike'. - Overload 2 of 3, '(path: number | PathLike, options: { encoding: BufferEncoding; flag?: string | undefined; } | BufferEncoding): string', gave the following error. - Argument of type 'string | undefined' is not assignable to parameter of type 'number | PathLike'. - Overload 3 of 3, '(path: number | PathLike, options?: BufferEncoding | (BaseEncodingOptions & { flag?: string | undefined; }) | null | undefined): string | Buffer', gave the following error. - Argument of type 'string | undefined' is not assignable to parameter of type 'number | PathLike'. + Overload 1 of 3, '(path: PathOrFileDescriptor, options?: { encoding?: null | undefined; flag?: string | undefined; } | null | undefined): Buffer', gave the following error. + Argument of type 'string | undefined' is not assignable to parameter of type 'PathOrFileDescriptor'. + Overload 2 of 3, '(path: PathOrFileDescriptor, options: { encoding: BufferEncoding; flag?: string | undefined; } | BufferEncoding): string', gave the following error. + Argument of type 'string | undefined' is not assignable to parameter of type 'PathOrFileDescriptor'. + Overload 3 of 3, '(path: PathOrFileDescriptor, options?: BufferEncoding | (ObjectEncodingOptions & { flag?: string | undefined; }) | null | undefined): string | Buffer', gave the following error. + Argument of type 'string | undefined' is not assignable to parameter of type 'PathOrFileDescriptor'. node_modules/acorn/bin/run_test262.js(3,21): error TS2307: Cannot find module 'test262-parser-runner' or its corresponding type declarations. node_modules/acorn/dist/acorn.es.js(36,1): error TS2322: Type 'null' is not assignable to type 'string'. node_modules/acorn/dist/acorn.es.js(36,32): error TS2322: Type 'null' is not assignable to type 'string'. @@ -616,6 +1109,7 @@ node_modules/acorn/dist/acorn.es.js(2594,22): error TS2339: Property 'parseBlock node_modules/acorn/dist/acorn.es.js(2596,10): error TS2339: Property 'adaptDirectivePrologue' does not exist on type 'parseFunctionBody'. node_modules/acorn/dist/acorn.es.js(2599,8): error TS2339: Property 'exitFunctionScope' does not exist on type 'parseFunctionBody'. node_modules/acorn/dist/acorn.es.js(2603,10): error TS2339: Property 'checkLVal' does not exist on type 'parseFunctionBody'. +node_modules/acorn/dist/acorn.es.js(2651,9): error TS2322: Type 'null' is not assignable to type 'undefined'. node_modules/acorn/dist/acorn.es.js(2717,46): error TS2339: Property 'start' does not exist on type 'parseYield'. node_modules/acorn/dist/acorn.es.js(2719,19): error TS2339: Property 'startNode' does not exist on type 'parseYield'. node_modules/acorn/dist/acorn.es.js(2720,8): error TS2339: Property 'next' does not exist on type 'parseYield'. @@ -681,12 +1175,14 @@ node_modules/acorn/dist/acorn.es.js(4638,56): error TS2532: Object is possibly ' node_modules/acorn/dist/acorn.es.js(4639,26): error TS2339: Property 'raise' does not exist on type 'skipBlockComment'. node_modules/acorn/dist/acorn.es.js(4639,32): error TS2532: Object is possibly 'undefined'. node_modules/acorn/dist/acorn.es.js(4641,12): error TS2339: Property 'options' does not exist on type 'skipBlockComment'. +node_modules/acorn/dist/acorn.es.js(4642,5): error TS2322: Type 'undefined' is not assignable to type 'number'. node_modules/acorn/dist/acorn.es.js(4644,42): error TS2339: Property 'input' does not exist on type 'skipBlockComment'. node_modules/acorn/dist/acorn.es.js(4645,16): error TS2339: Property 'curLine' does not exist on type 'skipBlockComment'. node_modules/acorn/dist/acorn.es.js(4646,14): error TS2339: Property 'lineStart' does not exist on type 'skipBlockComment'. node_modules/acorn/dist/acorn.es.js(4649,12): error TS2339: Property 'options' does not exist on type 'skipBlockComment'. node_modules/acorn/dist/acorn.es.js(4650,12): error TS2339: Property 'options' does not exist on type 'skipBlockComment'. node_modules/acorn/dist/acorn.es.js(4650,41): error TS2339: Property 'input' does not exist on type 'skipBlockComment'. +node_modules/acorn/dist/acorn.es.js(4650,53): error TS2532: Object is possibly 'undefined'. node_modules/acorn/dist/acorn.es.js(4651,43): error TS2339: Property 'curPosition' does not exist on type 'skipBlockComment'. node_modules/acorn/dist/acorn.es.js(4719,19): error TS2339: Property 'pos' does not exist on type 'finishToken'. node_modules/acorn/dist/acorn.es.js(4720,12): error TS2339: Property 'options' does not exist on type 'finishToken'. @@ -710,6 +1206,12 @@ node_modules/acorn/dist/acorn.es.js(4931,32): error TS2339: Property 'unexpected node_modules/acorn/dist/acorn.es.js(4936,8): error TS2339: Property 'validateRegExpFlags' does not exist on type 'readRegexp'. node_modules/acorn/dist/acorn.es.js(4937,8): error TS2339: Property 'validateRegExpPattern' does not exist on type 'readRegexp'. node_modules/acorn/dist/acorn.es.js(4948,15): error TS2339: Property 'finishToken' does not exist on type 'readRegexp'. +node_modules/acorn/dist/acorn.es.js(4961,23): error TS2322: Type 'number' is not assignable to type 'undefined'. +node_modules/acorn/dist/acorn.es.js(4962,28): error TS2322: Type 'number' is not assignable to type 'undefined'. +node_modules/acorn/dist/acorn.es.js(4963,42): error TS2322: Type 'number' is not assignable to type 'undefined'. +node_modules/acorn/dist/acorn.es.js(4964,12): error TS2322: Type 'number' is not assignable to type 'undefined'. +node_modules/acorn/dist/acorn.es.js(4965,9): error TS2532: Object is possibly 'undefined'. +node_modules/acorn/dist/acorn.es.js(4967,29): error TS2532: Object is possibly 'undefined'. node_modules/acorn/dist/acorn.es.js(5060,10): error TS2339: Property 'readTmplToken' does not exist on type 'tryReadTemplateToken'. node_modules/acorn/dist/acorn.es.js(5063,12): error TS2339: Property 'readInvalidTemplateToken' does not exist on type 'tryReadTemplateToken'. node_modules/acorn/dist/acorn.es.js(5156,17): error TS2339: Property 'input' does not exist on type 'readEscapedChar'. @@ -872,6 +1374,7 @@ node_modules/acorn/dist/acorn.js(2600,22): error TS2339: Property 'parseBlock' d node_modules/acorn/dist/acorn.js(2602,10): error TS2339: Property 'adaptDirectivePrologue' does not exist on type 'parseFunctionBody'. node_modules/acorn/dist/acorn.js(2605,8): error TS2339: Property 'exitFunctionScope' does not exist on type 'parseFunctionBody'. node_modules/acorn/dist/acorn.js(2609,10): error TS2339: Property 'checkLVal' does not exist on type 'parseFunctionBody'. +node_modules/acorn/dist/acorn.js(2657,9): error TS2322: Type 'null' is not assignable to type 'undefined'. node_modules/acorn/dist/acorn.js(2723,46): error TS2339: Property 'start' does not exist on type 'parseYield'. node_modules/acorn/dist/acorn.js(2725,19): error TS2339: Property 'startNode' does not exist on type 'parseYield'. node_modules/acorn/dist/acorn.js(2726,8): error TS2339: Property 'next' does not exist on type 'parseYield'. @@ -937,12 +1440,14 @@ node_modules/acorn/dist/acorn.js(4644,56): error TS2532: Object is possibly 'und node_modules/acorn/dist/acorn.js(4645,26): error TS2339: Property 'raise' does not exist on type 'skipBlockComment'. node_modules/acorn/dist/acorn.js(4645,32): error TS2532: Object is possibly 'undefined'. node_modules/acorn/dist/acorn.js(4647,12): error TS2339: Property 'options' does not exist on type 'skipBlockComment'. +node_modules/acorn/dist/acorn.js(4648,5): error TS2322: Type 'undefined' is not assignable to type 'number'. node_modules/acorn/dist/acorn.js(4650,42): error TS2339: Property 'input' does not exist on type 'skipBlockComment'. node_modules/acorn/dist/acorn.js(4651,16): error TS2339: Property 'curLine' does not exist on type 'skipBlockComment'. node_modules/acorn/dist/acorn.js(4652,14): error TS2339: Property 'lineStart' does not exist on type 'skipBlockComment'. node_modules/acorn/dist/acorn.js(4655,12): error TS2339: Property 'options' does not exist on type 'skipBlockComment'. node_modules/acorn/dist/acorn.js(4656,12): error TS2339: Property 'options' does not exist on type 'skipBlockComment'. node_modules/acorn/dist/acorn.js(4656,41): error TS2339: Property 'input' does not exist on type 'skipBlockComment'. +node_modules/acorn/dist/acorn.js(4656,53): error TS2532: Object is possibly 'undefined'. node_modules/acorn/dist/acorn.js(4657,43): error TS2339: Property 'curPosition' does not exist on type 'skipBlockComment'. node_modules/acorn/dist/acorn.js(4725,19): error TS2339: Property 'pos' does not exist on type 'finishToken'. node_modules/acorn/dist/acorn.js(4726,12): error TS2339: Property 'options' does not exist on type 'finishToken'. @@ -966,6 +1471,12 @@ node_modules/acorn/dist/acorn.js(4937,32): error TS2339: Property 'unexpected' d node_modules/acorn/dist/acorn.js(4942,8): error TS2339: Property 'validateRegExpFlags' does not exist on type 'readRegexp'. node_modules/acorn/dist/acorn.js(4943,8): error TS2339: Property 'validateRegExpPattern' does not exist on type 'readRegexp'. node_modules/acorn/dist/acorn.js(4954,15): error TS2339: Property 'finishToken' does not exist on type 'readRegexp'. +node_modules/acorn/dist/acorn.js(4967,23): error TS2322: Type 'number' is not assignable to type 'undefined'. +node_modules/acorn/dist/acorn.js(4968,28): error TS2322: Type 'number' is not assignable to type 'undefined'. +node_modules/acorn/dist/acorn.js(4969,42): error TS2322: Type 'number' is not assignable to type 'undefined'. +node_modules/acorn/dist/acorn.js(4970,12): error TS2322: Type 'number' is not assignable to type 'undefined'. +node_modules/acorn/dist/acorn.js(4971,9): error TS2532: Object is possibly 'undefined'. +node_modules/acorn/dist/acorn.js(4973,29): error TS2532: Object is possibly 'undefined'. node_modules/acorn/dist/acorn.js(5066,10): error TS2339: Property 'readTmplToken' does not exist on type 'tryReadTemplateToken'. node_modules/acorn/dist/acorn.js(5069,12): error TS2339: Property 'readInvalidTemplateToken' does not exist on type 'tryReadTemplateToken'. node_modules/acorn/dist/acorn.js(5162,17): error TS2339: Property 'input' does not exist on type 'readEscapedChar'. @@ -1057,6 +1568,8 @@ node_modules/acorn/dist/acorn_loose.es.js(309,20): error TS2339: Property 'tok' node_modules/acorn/dist/acorn_loose.es.js(310,12): error TS2339: Property 'options' does not exist on type 'parseTopLevel'. node_modules/acorn/dist/acorn_loose.es.js(311,28): error TS2339: Property 'options' does not exist on type 'parseTopLevel'. node_modules/acorn/dist/acorn_loose.es.js(313,15): error TS2339: Property 'finishNode' does not exist on type 'parseTopLevel'. +node_modules/acorn/dist/acorn_loose.es.js(602,7): error TS2322: Type 'true' is not assignable to type 'undefined'. +node_modules/acorn/dist/acorn_loose.es.js(606,7): error TS2322: Type 'false' is not assignable to type 'undefined'. node_modules/acorn/dist/acorn_loose.es.js(640,8): error TS2551: Property 'initFunction' does not exist on type 'parseFunction'. Did you mean 'inFunction'? node_modules/acorn/dist/acorn_loose.es.js(641,12): error TS2339: Property 'options' does not exist on type 'parseFunction'. node_modules/acorn/dist/acorn_loose.es.js(642,27): error TS2339: Property 'eat' does not exist on type 'parseFunction'. @@ -1068,6 +1581,8 @@ node_modules/acorn/dist/acorn_loose.es.js(651,22): error TS2339: Property 'parse node_modules/acorn/dist/acorn_loose.es.js(652,20): error TS2339: Property 'parseBlock' does not exist on type 'parseFunction'. node_modules/acorn/dist/acorn_loose.es.js(653,8): error TS2339: Property 'toks' does not exist on type 'parseFunction'. node_modules/acorn/dist/acorn_loose.es.js(656,15): error TS2339: Property 'finishNode' does not exist on type 'parseFunction'. +node_modules/acorn/dist/acorn_loose.es.js(1167,7): error TS2322: Type 'true' is not assignable to type 'undefined'. +node_modules/acorn/dist/acorn_loose.es.js(1171,7): error TS2322: Type 'false' is not assignable to type 'undefined'. node_modules/acorn/dist/acorn_loose.es.js(1311,19): error TS2339: Property 'startNode' does not exist on type 'parseMethod'. node_modules/acorn/dist/acorn_loose.es.js(1312,8): error TS2551: Property 'initFunction' does not exist on type 'parseMethod'. Did you mean 'inFunction'? node_modules/acorn/dist/acorn_loose.es.js(1313,12): error TS2339: Property 'options' does not exist on type 'parseMethod'. @@ -1132,6 +1647,8 @@ node_modules/acorn/dist/acorn_loose.js(313,20): error TS2339: Property 'tok' doe node_modules/acorn/dist/acorn_loose.js(314,12): error TS2339: Property 'options' does not exist on type 'parseTopLevel'. node_modules/acorn/dist/acorn_loose.js(315,28): error TS2339: Property 'options' does not exist on type 'parseTopLevel'. node_modules/acorn/dist/acorn_loose.js(317,15): error TS2339: Property 'finishNode' does not exist on type 'parseTopLevel'. +node_modules/acorn/dist/acorn_loose.js(606,7): error TS2322: Type 'true' is not assignable to type 'undefined'. +node_modules/acorn/dist/acorn_loose.js(610,7): error TS2322: Type 'false' is not assignable to type 'undefined'. node_modules/acorn/dist/acorn_loose.js(644,8): error TS2551: Property 'initFunction' does not exist on type 'parseFunction'. Did you mean 'inFunction'? node_modules/acorn/dist/acorn_loose.js(645,12): error TS2339: Property 'options' does not exist on type 'parseFunction'. node_modules/acorn/dist/acorn_loose.js(646,27): error TS2339: Property 'eat' does not exist on type 'parseFunction'. @@ -1143,6 +1660,8 @@ node_modules/acorn/dist/acorn_loose.js(655,22): error TS2339: Property 'parseFun node_modules/acorn/dist/acorn_loose.js(656,20): error TS2339: Property 'parseBlock' does not exist on type 'parseFunction'. node_modules/acorn/dist/acorn_loose.js(657,8): error TS2339: Property 'toks' does not exist on type 'parseFunction'. node_modules/acorn/dist/acorn_loose.js(660,15): error TS2339: Property 'finishNode' does not exist on type 'parseFunction'. +node_modules/acorn/dist/acorn_loose.js(1171,7): error TS2322: Type 'true' is not assignable to type 'undefined'. +node_modules/acorn/dist/acorn_loose.js(1175,7): error TS2322: Type 'false' is not assignable to type 'undefined'. node_modules/acorn/dist/acorn_loose.js(1315,19): error TS2339: Property 'startNode' does not exist on type 'parseMethod'. node_modules/acorn/dist/acorn_loose.js(1316,8): error TS2551: Property 'initFunction' does not exist on type 'parseMethod'. Did you mean 'inFunction'? node_modules/acorn/dist/acorn_loose.js(1317,12): error TS2339: Property 'options' does not exist on type 'parseMethod'. diff --git a/tests/baselines/reference/user/adonis-framework.log b/tests/baselines/reference/user/adonis-framework.log index 714e9306e706d..f3bbd12beb277 100644 --- a/tests/baselines/reference/user/adonis-framework.log +++ b/tests/baselines/reference/user/adonis-framework.log @@ -35,18 +35,18 @@ node_modules/adonis-framework/src/Config/index.js(39,15): error TS2304: Cannot f node_modules/adonis-framework/src/Config/index.js(58,15): error TS2304: Cannot find name 'Mixed'. node_modules/adonis-framework/src/Encryption/index.js(53,15): error TS2304: Cannot find name 'Mixed'. node_modules/adonis-framework/src/Encryption/index.js(71,34): error TS2769: No overload matches this call. - Overload 1 of 4, '(data: ArrayBufferView, input_encoding: undefined, output_encoding: Encoding): string', gave the following error. + Overload 1 of 4, '(data: ArrayBufferView, inputEncoding: undefined, outputEncoding: Encoding): string', gave the following error. Argument of type 'string' is not assignable to parameter of type 'undefined'. - Overload 2 of 4, '(data: string, input_encoding: Encoding | undefined, output_encoding: Encoding): string', gave the following error. + Overload 2 of 4, '(data: string, inputEncoding: Encoding | undefined, outputEncoding: Encoding): string', gave the following error. Argument of type 'string' is not assignable to parameter of type 'Encoding | undefined'. node_modules/adonis-framework/src/Encryption/index.js(77,27): error TS2322: Type 'string' is not assignable to type 'Buffer'. node_modules/adonis-framework/src/Encryption/index.js(77,50): error TS2345: Argument of type 'Buffer' is not assignable to parameter of type 'string'. node_modules/adonis-framework/src/Encryption/index.js(85,23): error TS8024: JSDoc '@param' tag has name 'value', but there is no parameter with that name. node_modules/adonis-framework/src/Encryption/index.js(87,15): error TS2304: Cannot find name 'Mixed'. node_modules/adonis-framework/src/Encryption/index.js(101,21): error TS2769: No overload matches this call. - Overload 1 of 4, '(data: ArrayBufferView, input_encoding: undefined, output_encoding: Encoding): string', gave the following error. + Overload 1 of 4, '(data: ArrayBufferView, inputEncoding: undefined, outputEncoding: Encoding): string', gave the following error. Argument of type '"base64"' is not assignable to parameter of type 'undefined'. - Overload 2 of 4, '(data: string, input_encoding: Encoding | undefined, output_encoding: Encoding): string', gave the following error. + Overload 2 of 4, '(data: string, inputEncoding: Encoding | undefined, outputEncoding: Encoding): string', gave the following error. Argument of type 'string' is not assignable to parameter of type 'Encoding'. node_modules/adonis-framework/src/Encryption/index.js(102,5): error TS2322: Type 'string' is not assignable to type 'Buffer & string'. Type 'string' is not assignable to type 'Buffer'. @@ -63,11 +63,11 @@ node_modules/adonis-framework/src/Env/index.js(54,15): error TS2304: Cannot find node_modules/adonis-framework/src/Env/index.js(56,15): error TS2304: Cannot find name 'Mixed'. node_modules/adonis-framework/src/Env/index.js(80,15): error TS2304: Cannot find name 'Mixed'. node_modules/adonis-framework/src/Event/index.js(13,21): error TS2307: Cannot find module 'adonis-fold' or its corresponding type declarations. -node_modules/adonis-framework/src/Event/index.js(128,12): error TS2740: Type '() => {}[]' is missing the following properties from type 'any[]': pop, push, concat, join, and 27 more. +node_modules/adonis-framework/src/Event/index.js(128,12): error TS2322: Type '() => {}[]' is not assignable to type 'any[]'. node_modules/adonis-framework/src/Event/index.js(153,25): error TS2339: Property 'wildcard' does not exist on type 'EventEmitter2'. node_modules/adonis-framework/src/Event/index.js(188,17): error TS2304: Cannot find name 'Spread'. -node_modules/adonis-framework/src/Event/index.js(201,27): error TS2345: Argument of type 'IArguments' is not assignable to parameter of type 'any[]'. - Type 'IArguments' is missing the following properties from type 'any[]': pop, push, concat, join, and 26 more. +node_modules/adonis-framework/src/Event/index.js(201,27): error TS2345: Argument of type 'IArguments' is not assignable to parameter of type 'Spread[]'. + Type 'IArguments' is missing the following properties from type 'Spread[]': pop, push, concat, join, and 27 more. node_modules/adonis-framework/src/Event/index.js(207,24): error TS2304: Cannot find name 'Sring'. node_modules/adonis-framework/src/Event/index.js(256,52): error TS2345: Argument of type 'Function' is not assignable to parameter of type 'Listener'. Type 'Function' provides no match for the signature '(...values: any[]): void'. @@ -91,6 +91,7 @@ node_modules/adonis-framework/src/Exceptions/index.js(164,14): error TS1056: Acc node_modules/adonis-framework/src/Exceptions/index.js(178,21): error TS2554: Expected 0 arguments, but got 3. node_modules/adonis-framework/src/Exceptions/index.js(191,21): error TS2554: Expected 0 arguments, but got 3. node_modules/adonis-framework/src/Exceptions/index.js(205,21): error TS2554: Expected 0 arguments, but got 3. +node_modules/adonis-framework/src/File/index.js(139,22): error TS2345: Argument of type 'unknown' is not assignable to parameter of type 'string'. node_modules/adonis-framework/src/File/index.js(175,5): error TS2322: Type 'Promise' is not assignable to type 'boolean'. node_modules/adonis-framework/src/File/index.js(273,5): error TS2322: Type 'string | boolean' is not assignable to type 'boolean'. Type 'string' is not assignable to type 'boolean'. @@ -141,7 +142,7 @@ node_modules/adonis-framework/src/Response/index.js(299,15): error TS2304: Canno node_modules/adonis-framework/src/Response/index.js(323,15): error TS2304: Cannot find name 'Mixed'. node_modules/adonis-framework/src/Route/ResourceCollection.js(39,11): error TS1359: Identifier expected. 'this' is a reserved word that cannot be used here. node_modules/adonis-framework/src/Route/ResourceCollection.js(43,40): error TS2345: Argument of type 'IArguments' is not assignable to parameter of type 'any[]'. - Type 'IArguments' is missing the following properties from type 'any[]': pop, push, concat, join, and 26 more. + Type 'IArguments' is missing the following properties from type 'any[]': pop, push, concat, join, and 27 more. node_modules/adonis-framework/src/Route/ResourceCollection.js(56,31): error TS2345: Argument of type 'IArguments' is not assignable to parameter of type 'any[]'. node_modules/adonis-framework/src/Route/ResourceMember.js(39,11): error TS1359: Identifier expected. 'this' is a reserved word that cannot be used here. node_modules/adonis-framework/src/Route/ResourceMember.js(43,40): error TS2345: Argument of type 'IArguments' is not assignable to parameter of type 'any[]'. @@ -166,7 +167,7 @@ node_modules/adonis-framework/src/Route/index.js(343,33): error TS2345: Argument node_modules/adonis-framework/src/Route/index.js(354,20): error TS2694: Namespace 'Route' has no exported member 'Group'. node_modules/adonis-framework/src/Route/index.js(368,3): error TS2322: Type 'null' is not assignable to type 'string'. node_modules/adonis-framework/src/Route/index.js(396,63): error TS2554: Expected 2 arguments, but got 3. -node_modules/adonis-framework/src/Route/index.js(407,20): error TS2694: Namespace 'Route' has no exported member 'resources'. +node_modules/adonis-framework/src/Route/index.js(407,14): error TS2749: 'Route.resources' refers to a value, but is being used as a type here. Did you mean 'typeof Route.resources'? node_modules/adonis-framework/src/Route/index.js(501,42): error TS2345: Argument of type 'boolean | undefined' is not assignable to parameter of type 'boolean'. Type 'undefined' is not assignable to type 'boolean'. node_modules/adonis-framework/src/Route/resource.js(92,25): error TS2345: Argument of type 'string[]' is not assignable to parameter of type 'string'. @@ -183,7 +184,7 @@ node_modules/adonis-framework/src/Route/resource.js(209,45): error TS2345: Argum node_modules/adonis-framework/src/Route/resource.js(233,15): error TS2304: Cannot find name 'Mixed'. node_modules/adonis-framework/src/Route/resource.js(261,15): error TS2304: Cannot find name 'Mixed'. node_modules/adonis-framework/src/Route/resource.js(286,11): error TS1359: Identifier expected. 'this' is a reserved word that cannot be used here. -node_modules/adonis-framework/src/Route/resource.js(290,40): error TS2345: Argument of type 'IArguments' is not assignable to parameter of type '[any, ...any[]]'. +node_modules/adonis-framework/src/Route/resource.js(290,40): error TS2345: Argument of type 'IArguments' is not assignable to parameter of type '[Mixed, ...any[]]'. node_modules/adonis-framework/src/Route/resource.js(296,15): error TS2304: Cannot find name 'Mixed'. node_modules/adonis-framework/src/Route/resource.js(314,62): error TS2345: Argument of type 'IArguments' is not assignable to parameter of type 'any[]'. node_modules/adonis-framework/src/Server/helpers.js(17,29): error TS8024: JSDoc '@param' tag has name 'appNamespace', but there is no parameter with that name. diff --git a/tests/baselines/reference/user/assert.log b/tests/baselines/reference/user/assert.log index 3ff57add9d7f9..a0bcc0698fb7b 100644 --- a/tests/baselines/reference/user/assert.log +++ b/tests/baselines/reference/user/assert.log @@ -1,23 +1,23 @@ Exit Code: 2 Standard output: node_modules/assert/test.js(25,5): error TS2367: This condition will always return 'false' since the types 'string | undefined' and 'boolean' have no overlap. -node_modules/assert/test.js(39,5): error TS2593: Cannot find name 'test'. Do you need to install type definitions for a test runner? Try `npm i --save-dev @types/jest` or `npm i --save-dev @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. -node_modules/assert/test.js(55,5): error TS2593: Cannot find name 'test'. Do you need to install type definitions for a test runner? Try `npm i --save-dev @types/jest` or `npm i --save-dev @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. -node_modules/assert/test.js(74,5): error TS2593: Cannot find name 'test'. Do you need to install type definitions for a test runner? Try `npm i --save-dev @types/jest` or `npm i --save-dev @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. -node_modules/assert/test.js(84,5): error TS2593: Cannot find name 'test'. Do you need to install type definitions for a test runner? Try `npm i --save-dev @types/jest` or `npm i --save-dev @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. -node_modules/assert/test.js(94,5): error TS2593: Cannot find name 'test'. Do you need to install type definitions for a test runner? Try `npm i --save-dev @types/jest` or `npm i --save-dev @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. -node_modules/assert/test.js(103,5): error TS2593: Cannot find name 'test'. Do you need to install type definitions for a test runner? Try `npm i --save-dev @types/jest` or `npm i --save-dev @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. -node_modules/assert/test.js(120,5): error TS2593: Cannot find name 'test'. Do you need to install type definitions for a test runner? Try `npm i --save-dev @types/jest` or `npm i --save-dev @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. -node_modules/assert/test.js(128,5): error TS2593: Cannot find name 'test'. Do you need to install type definitions for a test runner? Try `npm i --save-dev @types/jest` or `npm i --save-dev @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +node_modules/assert/test.js(39,5): error TS2593: Cannot find name 'test'. Do you need to install type definitions for a test runner? Try `npm i --save-dev @types/jest` or `npm i --save-dev @types/mocha` and then add 'jest' or 'mocha' to the types field in your tsconfig. +node_modules/assert/test.js(55,5): error TS2593: Cannot find name 'test'. Do you need to install type definitions for a test runner? Try `npm i --save-dev @types/jest` or `npm i --save-dev @types/mocha` and then add 'jest' or 'mocha' to the types field in your tsconfig. +node_modules/assert/test.js(74,5): error TS2593: Cannot find name 'test'. Do you need to install type definitions for a test runner? Try `npm i --save-dev @types/jest` or `npm i --save-dev @types/mocha` and then add 'jest' or 'mocha' to the types field in your tsconfig. +node_modules/assert/test.js(84,5): error TS2593: Cannot find name 'test'. Do you need to install type definitions for a test runner? Try `npm i --save-dev @types/jest` or `npm i --save-dev @types/mocha` and then add 'jest' or 'mocha' to the types field in your tsconfig. +node_modules/assert/test.js(94,5): error TS2593: Cannot find name 'test'. Do you need to install type definitions for a test runner? Try `npm i --save-dev @types/jest` or `npm i --save-dev @types/mocha` and then add 'jest' or 'mocha' to the types field in your tsconfig. +node_modules/assert/test.js(103,5): error TS2593: Cannot find name 'test'. Do you need to install type definitions for a test runner? Try `npm i --save-dev @types/jest` or `npm i --save-dev @types/mocha` and then add 'jest' or 'mocha' to the types field in your tsconfig. +node_modules/assert/test.js(120,5): error TS2593: Cannot find name 'test'. Do you need to install type definitions for a test runner? Try `npm i --save-dev @types/jest` or `npm i --save-dev @types/mocha` and then add 'jest' or 'mocha' to the types field in your tsconfig. +node_modules/assert/test.js(128,5): error TS2593: Cannot find name 'test'. Do you need to install type definitions for a test runner? Try `npm i --save-dev @types/jest` or `npm i --save-dev @types/mocha` and then add 'jest' or 'mocha' to the types field in your tsconfig. node_modules/assert/test.js(140,10): error TS2339: Property 'a' does not exist on type 'number[]'. node_modules/assert/test.js(141,10): error TS2339: Property 'b' does not exist on type 'number[]'. node_modules/assert/test.js(142,10): error TS2339: Property 'b' does not exist on type 'number[]'. node_modules/assert/test.js(143,10): error TS2339: Property 'a' does not exist on type 'number[]'. -node_modules/assert/test.js(149,5): error TS2593: Cannot find name 'test'. Do you need to install type definitions for a test runner? Try `npm i --save-dev @types/jest` or `npm i --save-dev @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +node_modules/assert/test.js(149,5): error TS2593: Cannot find name 'test'. Do you need to install type definitions for a test runner? Try `npm i --save-dev @types/jest` or `npm i --save-dev @types/mocha` and then add 'jest' or 'mocha' to the types field in your tsconfig. node_modules/assert/test.js(157,51): error TS2349: This expression is not callable. Type 'never' has no call signatures. -node_modules/assert/test.js(161,5): error TS2593: Cannot find name 'test'. Do you need to install type definitions for a test runner? Try `npm i --save-dev @types/jest` or `npm i --save-dev @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. -node_modules/assert/test.js(168,5): error TS2593: Cannot find name 'test'. Do you need to install type definitions for a test runner? Try `npm i --save-dev @types/jest` or `npm i --save-dev @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig. +node_modules/assert/test.js(161,5): error TS2593: Cannot find name 'test'. Do you need to install type definitions for a test runner? Try `npm i --save-dev @types/jest` or `npm i --save-dev @types/mocha` and then add 'jest' or 'mocha' to the types field in your tsconfig. +node_modules/assert/test.js(168,5): error TS2593: Cannot find name 'test'. Do you need to install type definitions for a test runner? Try `npm i --save-dev @types/jest` or `npm i --save-dev @types/mocha` and then add 'jest' or 'mocha' to the types field in your tsconfig. node_modules/assert/test.js(182,5): error TS2552: Cannot find name 'test'. Did you mean 'tests'? node_modules/assert/test.js(229,5): error TS2552: Cannot find name 'test'. Did you mean 'tests'? node_modules/assert/test.js(235,5): error TS2552: Cannot find name 'test'. Did you mean 'tests'? @@ -27,7 +27,11 @@ node_modules/assert/test.js(256,55): error TS2345: Argument of type 'TypeError' node_modules/assert/test.js(262,5): error TS2552: Cannot find name 'test'. Did you mean 'tests'? node_modules/assert/test.js(279,5): error TS2552: Cannot find name 'test'. Did you mean 'tests'? node_modules/assert/test.js(285,5): error TS2552: Cannot find name 'test'. Did you mean 'tests'? +node_modules/assert/test.js(290,24): error TS2571: Object is of type 'unknown'. node_modules/assert/test.js(320,5): error TS2552: Cannot find name 'test'. Did you mean 'tests'? +node_modules/assert/test.js(329,22): error TS2571: Object is of type 'unknown'. +node_modules/assert/test.js(336,22): error TS2571: Object is of type 'unknown'. +node_modules/assert/test.js(342,22): error TS2571: Object is of type 'unknown'. node_modules/assert/test.js(346,5): error TS2552: Cannot find name 'test'. Did you mean 'tests'? diff --git a/tests/baselines/reference/user/async.log b/tests/baselines/reference/user/async.log index 28b56cb17f6b7..eba34687a0f1a 100644 --- a/tests/baselines/reference/user/async.log +++ b/tests/baselines/reference/user/async.log @@ -3,21 +3,17 @@ Standard output: node_modules/async/all.js(32,12): error TS2304: Cannot find name 'AsyncFunction'. node_modules/async/all.js(49,20): error TS2695: Left side of comma operator is unused and has no side effects. node_modules/async/all.js(49,46): error TS2695: Left side of comma operator is unused and has no side effects. -node_modules/async/allLimit.js(28,9): error TS1003: Identifier expected. node_modules/async/allLimit.js(33,12): error TS2304: Cannot find name 'AsyncFunction'. node_modules/async/allLimit.js(41,20): error TS2695: Left side of comma operator is unused and has no side effects. node_modules/async/allLimit.js(41,51): error TS2695: Left side of comma operator is unused and has no side effects. -node_modules/async/allSeries.js(24,9): error TS1003: Identifier expected. node_modules/async/allSeries.js(28,12): error TS2304: Cannot find name 'AsyncFunction'. node_modules/async/allSeries.js(36,20): error TS2695: Left side of comma operator is unused and has no side effects. node_modules/async/any.js(33,12): error TS2304: Cannot find name 'AsyncFunction'. node_modules/async/any.js(51,20): error TS2695: Left side of comma operator is unused and has no side effects. node_modules/async/any.js(51,46): error TS2695: Left side of comma operator is unused and has no side effects. -node_modules/async/anyLimit.js(28,9): error TS1003: Identifier expected. node_modules/async/anyLimit.js(33,12): error TS2304: Cannot find name 'AsyncFunction'. node_modules/async/anyLimit.js(42,20): error TS2695: Left side of comma operator is unused and has no side effects. node_modules/async/anyLimit.js(42,51): error TS2695: Left side of comma operator is unused and has no side effects. -node_modules/async/anySeries.js(24,9): error TS1003: Identifier expected. node_modules/async/anySeries.js(28,12): error TS2304: Cannot find name 'AsyncFunction'. node_modules/async/anySeries.js(37,20): error TS2695: Left side of comma operator is unused and has no side effects. node_modules/async/apply.js(8,17): error TS2695: Left side of comma operator is unused and has no side effects. @@ -26,7 +22,6 @@ node_modules/async/apply.js(37,28): error TS1003: Identifier expected. node_modules/async/apply.js(37,29): error TS1003: Identifier expected. node_modules/async/apply.js(37,30): error TS1003: Identifier expected. node_modules/async/applyEach.js(50,20): error TS2695: Left side of comma operator is unused and has no side effects. -node_modules/async/applyEachSeries.js(24,9): error TS1003: Identifier expected. node_modules/async/applyEachSeries.js(36,20): error TS2695: Left side of comma operator is unused and has no side effects. node_modules/async/asyncify.js(43,14): error TS2304: Cannot find name 'AsyncFunction'. node_modules/async/asyncify.js(79,13): error TS2695: Left side of comma operator is unused and has no side effects. @@ -47,7 +42,6 @@ node_modules/async/auto.js(158,10): error TS2695: Left side of comma operator is node_modules/async/auto.js(159,18): error TS2695: Left side of comma operator is unused and has no side effects. node_modules/async/auto.js(159,50): error TS2695: Left side of comma operator is unused and has no side effects. node_modules/async/autoInject.js(44,17): error TS2695: Left side of comma operator is unused and has no side effects. -node_modules/async/autoInject.js(66,9): error TS1003: Identifier expected. node_modules/async/autoInject.js(134,6): error TS2695: Left side of comma operator is unused and has no side effects. node_modules/async/autoInject.js(136,25): error TS2532: Object is possibly 'undefined'. node_modules/async/autoInject.js(136,25): error TS2722: Cannot invoke an object which is possibly 'undefined'. @@ -56,7 +50,6 @@ node_modules/async/autoInject.js(139,14): error TS2695: Left side of comma opera node_modules/async/autoInject.js(160,28): error TS2695: Left side of comma operator is unused and has no side effects. node_modules/async/autoInject.js(164,14): error TS2695: Left side of comma operator is unused and has no side effects. node_modules/async/autoInject.js(168,6): error TS2695: Left side of comma operator is unused and has no side effects. -node_modules/async/cargo.js(60,9): error TS1003: Identifier expected. node_modules/async/cargo.js(62,12): error TS2304: Cannot find name 'AsyncFunction'. node_modules/async/cargo.js(92,11): error TS2695: Left side of comma operator is unused and has no side effects. node_modules/async/compose.js(8,37): error TS2695: Left side of comma operator is unused and has no side effects. @@ -67,9 +60,7 @@ node_modules/async/concat.js(42,20): error TS2695: Left side of comma operator i node_modules/async/concatLimit.js(9,22): error TS2695: Left side of comma operator is unused and has no side effects. node_modules/async/concatLimit.js(10,6): error TS2695: Left side of comma operator is unused and has no side effects. node_modules/async/concatLimit.js(13,36): error TS2695: Left side of comma operator is unused and has no side effects. -node_modules/async/concatLimit.js(54,9): error TS1003: Identifier expected. node_modules/async/concatLimit.js(58,12): error TS2304: Cannot find name 'AsyncFunction'. -node_modules/async/concatSeries.js(24,9): error TS1003: Identifier expected. node_modules/async/concatSeries.js(27,12): error TS2304: Cannot find name 'AsyncFunction'. node_modules/async/concatSeries.js(30,31): error TS1005: ']' expected. node_modules/async/concatSeries.js(35,20): error TS2695: Left side of comma operator is unused and has no side effects. @@ -80,11 +71,9 @@ node_modules/async/constant.js(34,30): error TS1003: Identifier expected. node_modules/async/detect.js(42,12): error TS2304: Cannot find name 'AsyncFunction'. node_modules/async/detect.js(60,20): error TS2695: Left side of comma operator is unused and has no side effects. node_modules/async/detect.js(60,46): error TS2695: Left side of comma operator is unused and has no side effects. -node_modules/async/detectLimit.js(33,9): error TS1003: Identifier expected. node_modules/async/detectLimit.js(38,12): error TS2304: Cannot find name 'AsyncFunction'. node_modules/async/detectLimit.js(47,20): error TS2695: Left side of comma operator is unused and has no side effects. node_modules/async/detectLimit.js(47,51): error TS2695: Left side of comma operator is unused and has no side effects. -node_modules/async/detectSeries.js(24,9): error TS1003: Identifier expected. node_modules/async/detectSeries.js(28,12): error TS2304: Cannot find name 'AsyncFunction'. node_modules/async/detectSeries.js(37,20): error TS2695: Left side of comma operator is unused and has no side effects. node_modules/async/dir.js(26,12): error TS2304: Cannot find name 'AsyncFunction'. @@ -96,21 +85,15 @@ node_modules/async/dist/async.js(3,10): error TS2304: Cannot find name 'define'. node_modules/async/dist/async.js(3,35): error TS2304: Cannot find name 'define'. node_modules/async/dist/async.js(3,48): error TS2304: Cannot find name 'define'. node_modules/async/dist/async.js(4,20): error TS2339: Property 'async' does not exist on type 'typeof import("/async/node_modules/async/dist/async")'. -node_modules/async/dist/async.js(31,18): error TS8029: JSDoc '@param' tag has name '', but there is no parameter with that name. It would match 'arguments' if it had an array type. node_modules/async/dist/async.js(31,28): error TS1003: Identifier expected. node_modules/async/dist/async.js(31,29): error TS1003: Identifier expected. node_modules/async/dist/async.js(31,30): error TS1003: Identifier expected. node_modules/async/dist/async.js(298,7): error TS2454: Variable 'unmasked' is used before being assigned. node_modules/async/dist/async.js(622,80): error TS2339: Property 'nodeType' does not exist on type 'NodeModule'. node_modules/async/dist/async.js(748,84): error TS2339: Property 'nodeType' does not exist on type 'NodeModule'. -node_modules/async/dist/async.js(754,49): error TS2339: Property 'process' does not exist on type 'false | (Global & typeof globalThis)'. +node_modules/async/dist/async.js(754,49): error TS2339: Property 'process' does not exist on type 'false | typeof globalThis'. Property 'process' does not exist on type 'false'. node_modules/async/dist/async.js(923,32): error TS2554: Expected 2 arguments, but got 1. -node_modules/async/dist/async.js(1028,9): error TS1003: Identifier expected. -node_modules/async/dist/async.js(1086,9): error TS1003: Identifier expected. -node_modules/async/dist/async.js(1230,9): error TS1003: Identifier expected. -node_modules/async/dist/async.js(1251,9): error TS1003: Identifier expected. -node_modules/async/dist/async.js(1271,9): error TS1003: Identifier expected. node_modules/async/dist/async.js(1294,27): error TS1016: A required parameter cannot follow an optional parameter. node_modules/async/dist/async.js(1299,18): error TS2532: Object is possibly 'undefined'. node_modules/async/dist/async.js(1303,3): error TS2322: Type 'any[] | undefined' is not assignable to type 'any[]'. @@ -135,101 +118,61 @@ node_modules/async/dist/async.js(1769,3): error TS2532: Object is possibly 'unde node_modules/async/dist/async.js(1773,35): error TS2532: Object is possibly 'undefined'. node_modules/async/dist/async.js(1964,30): error TS1016: A required parameter cannot follow an optional parameter. node_modules/async/dist/async.js(1990,16): error TS2554: Expected 3 arguments, but got 1. -node_modules/async/dist/async.js(2012,9): error TS1003: Identifier expected. node_modules/async/dist/async.js(2116,20): error TS2345: Argument of type 'Function | undefined' is not assignable to parameter of type 'number | undefined'. Type 'Function' is not assignable to type 'number'. node_modules/async/dist/async.js(2274,29): error TS2554: Expected 0 arguments, but got 2. -node_modules/async/dist/async.js(2418,9): error TS1003: Identifier expected. -node_modules/async/dist/async.js(2460,9): error TS1003: Identifier expected. node_modules/async/dist/async.js(2521,9): error TS2722: Cannot invoke an object which is possibly 'undefined'. -node_modules/async/dist/async.js(2536,9): error TS1003: Identifier expected. node_modules/async/dist/async.js(2564,31): error TS2345: Argument of type 'IArguments' is not assignable to parameter of type 'any[]'. - Type 'IArguments' is missing the following properties from type 'any[]': pop, push, concat, join, and 26 more. -node_modules/async/dist/async.js(2636,9): error TS1003: Identifier expected. + Type 'IArguments' is missing the following properties from type 'any[]': pop, push, concat, join, and 27 more. node_modules/async/dist/async.js(2663,16): error TS2722: Cannot invoke an object which is possibly 'undefined'. node_modules/async/dist/async.js(2682,31): error TS1005: ']' expected. -node_modules/async/dist/async.js(2701,9): error TS1003: Identifier expected. node_modules/async/dist/async.js(2707,31): error TS1005: ']' expected. node_modules/async/dist/async.js(2724,28): error TS1003: Identifier expected. node_modules/async/dist/async.js(2724,29): error TS1003: Identifier expected. node_modules/async/dist/async.js(2724,30): error TS1003: Identifier expected. -node_modules/async/dist/async.js(2861,9): error TS1003: Identifier expected. -node_modules/async/dist/async.js(2884,9): error TS1003: Identifier expected. node_modules/async/dist/async.js(2935,28): error TS1003: Identifier expected. node_modules/async/dist/async.js(2935,29): error TS1003: Identifier expected. node_modules/async/dist/async.js(2935,30): error TS1003: Identifier expected. -node_modules/async/dist/async.js(2960,9): error TS1003: Identifier expected. node_modules/async/dist/async.js(2977,25): error TS2722: Cannot invoke an object which is possibly 'undefined'. node_modules/async/dist/async.js(2984,25): error TS2722: Cannot invoke an object which is possibly 'undefined'. node_modules/async/dist/async.js(2985,28): error TS2722: Cannot invoke an object which is possibly 'undefined'. -node_modules/async/dist/async.js(3003,9): error TS1003: Identifier expected. node_modules/async/dist/async.js(3019,25): error TS2722: Cannot invoke an object which is possibly 'undefined'. node_modules/async/dist/async.js(3022,9): error TS2532: Object is possibly 'undefined'. node_modules/async/dist/async.js(3022,9): error TS2684: The 'this' context of type 'Function | undefined' is not assignable to method's 'this' of type 'Function'. Type 'undefined' is not assignable to type 'Function'. -node_modules/async/dist/async.js(3035,9): error TS1003: Identifier expected. -node_modules/async/dist/async.js(3063,9): error TS1003: Identifier expected. node_modules/async/dist/async.js(3095,25): error TS2722: Cannot invoke an object which is possibly 'undefined'. node_modules/async/dist/async.js(3100,25): error TS2722: Cannot invoke an object which is possibly 'undefined'. node_modules/async/dist/async.js(3101,28): error TS2722: Cannot invoke an object which is possibly 'undefined'. -node_modules/async/dist/async.js(3182,9): error TS1003: Identifier expected. -node_modules/async/dist/async.js(3206,9): error TS1003: Identifier expected. -node_modules/async/dist/async.js(3315,9): error TS1003: Identifier expected. -node_modules/async/dist/async.js(3337,9): error TS1003: Identifier expected. -node_modules/async/dist/async.js(3447,9): error TS1003: Identifier expected. -node_modules/async/dist/async.js(3467,9): error TS1003: Identifier expected. -node_modules/async/dist/async.js(3526,9): error TS1003: Identifier expected. node_modules/async/dist/async.js(3564,16): error TS2722: Cannot invoke an object which is possibly 'undefined'. -node_modules/async/dist/async.js(3613,9): error TS1003: Identifier expected. node_modules/async/dist/async.js(3640,28): error TS1003: Identifier expected. node_modules/async/dist/async.js(3640,29): error TS1003: Identifier expected. node_modules/async/dist/async.js(3640,30): error TS1003: Identifier expected. -node_modules/async/dist/async.js(3664,9): error TS1003: Identifier expected. node_modules/async/dist/async.js(3688,9): error TS2722: Cannot invoke an object which is possibly 'undefined'. -node_modules/async/dist/async.js(3746,9): error TS1003: Identifier expected. node_modules/async/dist/async.js(3827,14): error TS2339: Property 'memo' does not exist on type '(...args: any[]) => void'. node_modules/async/dist/async.js(3828,14): error TS2339: Property 'unmemoized' does not exist on type '(...args: any[]) => void'. -node_modules/async/dist/async.js(3844,9): error TS1003: Identifier expected. node_modules/async/dist/async.js(3848,23): error TS1003: Identifier expected. node_modules/async/dist/async.js(3848,24): error TS1003: Identifier expected. node_modules/async/dist/async.js(3848,25): error TS1003: Identifier expected. -node_modules/async/dist/async.js(3973,9): error TS1003: Identifier expected. -node_modules/async/dist/async.js(4108,9): error TS1003: Identifier expected. -node_modules/async/dist/async.js(4224,9): error TS1003: Identifier expected. -node_modules/async/dist/async.js(4311,9): error TS1003: Identifier expected. node_modules/async/dist/async.js(4381,5): error TS2322: Type 'any[] | {}' is not assignable to type 'any[]'. - Type '{}' is missing the following properties from type 'any[]': length, pop, push, concat, and 28 more. -node_modules/async/dist/async.js(4399,9): error TS1003: Identifier expected. -node_modules/async/dist/async.js(4429,9): error TS1003: Identifier expected. -node_modules/async/dist/async.js(4449,9): error TS1003: Identifier expected. -node_modules/async/dist/async.js(4497,9): error TS1003: Identifier expected. + Type '{}' is missing the following properties from type 'any[]': length, pop, push, concat, and 29 more. node_modules/async/dist/async.js(4570,22): error TS1016: A required parameter cannot follow an optional parameter. node_modules/async/dist/async.js(4617,17): error TS2532: Object is possibly 'undefined'. node_modules/async/dist/async.js(4617,17): error TS2684: The 'this' context of type 'Function | undefined' is not assignable to method's 'this' of type 'Function'. Type 'undefined' is not assignable to type 'Function'. -node_modules/async/dist/async.js(4634,9): error TS1003: Identifier expected. node_modules/async/dist/async.js(4653,33): error TS1016: A required parameter cannot follow an optional parameter. -node_modules/async/dist/async.js(4777,9): error TS1003: Identifier expected. -node_modules/async/dist/async.js(4800,9): error TS1003: Identifier expected. node_modules/async/dist/async.js(4931,19): error TS2339: Property 'code' does not exist on type 'Error'. node_modules/async/dist/async.js(4933,23): error TS2339: Property 'info' does not exist on type 'Error'. -node_modules/async/dist/async.js(4987,9): error TS1003: Identifier expected. -node_modules/async/dist/async.js(5008,9): error TS1003: Identifier expected. -node_modules/async/dist/async.js(5041,9): error TS1003: Identifier expected. node_modules/async/dist/async.js(5092,40): error TS1016: A required parameter cannot follow an optional parameter. node_modules/async/dist/async.js(5104,9): error TS2722: Cannot invoke an object which is possibly 'undefined'. node_modules/async/dist/async.js(5160,9): error TS2722: Cannot invoke an object which is possibly 'undefined'. -node_modules/async/dist/async.js(5172,9): error TS1003: Identifier expected. node_modules/async/dist/async.js(5179,20): error TS2339: Property 'unmemoized' does not exist on type 'Function'. node_modules/async/dist/async.js(5222,25): error TS2722: Cannot invoke an object which is possibly 'undefined'. node_modules/async/dist/async.js(5225,9): error TS2532: Object is possibly 'undefined'. node_modules/async/dist/async.js(5225,9): error TS2684: The 'this' context of type 'Function | undefined' is not assignable to method's 'this' of type 'Function'. Type 'undefined' is not assignable to type 'Function'. -node_modules/async/dist/async.js(5241,9): error TS1003: Identifier expected. node_modules/async/dist/async.js(5329,20): error TS2532: Object is possibly 'undefined'. node_modules/async/dist/async.js(5329,20): error TS2684: The 'this' context of type 'Function | undefined' is not assignable to method's 'this' of type 'Function'. Type 'undefined' is not assignable to type 'Function'. -node_modules/async/doDuring.js(35,9): error TS1003: Identifier expected. node_modules/async/doDuring.js(37,12): error TS2304: Cannot find name 'AsyncFunction'. node_modules/async/doDuring.js(39,12): error TS2304: Cannot find name 'AsyncFunction'. node_modules/async/doDuring.js(47,17): error TS2695: Left side of comma operator is unused and has no side effects. @@ -239,10 +182,8 @@ node_modules/async/doDuring.js(52,25): error TS2722: Cannot invoke an object whi node_modules/async/doDuring.js(53,21): error TS2695: Left side of comma operator is unused and has no side effects. node_modules/async/doDuring.js(59,25): error TS2722: Cannot invoke an object which is possibly 'undefined'. node_modules/async/doDuring.js(60,28): error TS2722: Cannot invoke an object which is possibly 'undefined'. -node_modules/async/doUntil.js(22,9): error TS1003: Identifier expected. node_modules/async/doUntil.js(24,12): error TS2304: Cannot find name 'AsyncFunction'. node_modules/async/doUntil.js(35,6): error TS2695: Left side of comma operator is unused and has no side effects. -node_modules/async/doWhilst.js(36,9): error TS1003: Identifier expected. node_modules/async/doWhilst.js(38,12): error TS2304: Cannot find name 'AsyncFunction'. node_modules/async/doWhilst.js(49,17): error TS2695: Left side of comma operator is unused and has no side effects. node_modules/async/doWhilst.js(50,22): error TS2695: Left side of comma operator is unused and has no side effects. @@ -251,7 +192,6 @@ node_modules/async/doWhilst.js(53,21): error TS2695: Left side of comma operator node_modules/async/doWhilst.js(55,9): error TS2532: Object is possibly 'undefined'. node_modules/async/doWhilst.js(55,9): error TS2684: The 'this' context of type 'Function | undefined' is not assignable to method's 'this' of type 'Function'. Type 'undefined' is not assignable to type 'Function'. -node_modules/async/during.js(32,9): error TS1003: Identifier expected. node_modules/async/during.js(34,12): error TS2304: Cannot find name 'AsyncFunction'. node_modules/async/during.js(36,12): error TS2304: Cannot find name 'AsyncFunction'. node_modules/async/during.js(59,17): error TS2695: Left side of comma operator is unused and has no side effects. @@ -264,7 +204,6 @@ node_modules/async/each.js(39,12): error TS2304: Cannot find name 'AsyncFunction node_modules/async/each.js(80,4): error TS2695: Left side of comma operator is unused and has no side effects. node_modules/async/each.js(80,32): error TS2695: Left side of comma operator is unused and has no side effects. node_modules/async/each.js(80,60): error TS2695: Left side of comma operator is unused and has no side effects. -node_modules/async/eachLimit.js(29,9): error TS1003: Identifier expected. node_modules/async/eachLimit.js(34,12): error TS2304: Cannot find name 'AsyncFunction'. node_modules/async/eachLimit.js(43,4): error TS2695: Left side of comma operator is unused and has no side effects. node_modules/async/eachLimit.js(43,44): error TS2695: Left side of comma operator is unused and has no side effects. @@ -274,16 +213,12 @@ node_modules/async/eachOf.js(9,33): error TS2695: Left side of comma operator is node_modules/async/eachOf.js(48,17): error TS2695: Left side of comma operator is unused and has no side effects. node_modules/async/eachOf.js(65,39): error TS2695: Left side of comma operator is unused and has no side effects. node_modules/async/eachOf.js(70,22): error TS2695: Left side of comma operator is unused and has no side effects. -node_modules/async/eachOf.js(82,9): error TS1003: Identifier expected. node_modules/async/eachOf.js(84,12): error TS2304: Cannot find name 'AsyncFunction'. -node_modules/async/eachOfLimit.js(26,9): error TS1003: Identifier expected. node_modules/async/eachOfLimit.js(31,12): error TS2304: Cannot find name 'AsyncFunction'. node_modules/async/eachOfLimit.js(39,4): error TS2695: Left side of comma operator is unused and has no side effects. node_modules/async/eachOfLimit.js(39,44): error TS2695: Left side of comma operator is unused and has no side effects. -node_modules/async/eachOfSeries.js(24,9): error TS1003: Identifier expected. node_modules/async/eachOfSeries.js(28,12): error TS2304: Cannot find name 'AsyncFunction'. node_modules/async/eachOfSeries.js(34,20): error TS2695: Left side of comma operator is unused and has no side effects. -node_modules/async/eachSeries.js(24,9): error TS1003: Identifier expected. node_modules/async/eachSeries.js(28,12): error TS2304: Cannot find name 'AsyncFunction'. node_modules/async/eachSeries.js(36,20): error TS2695: Left side of comma operator is unused and has no side effects. node_modules/async/ensureAsync.js(34,12): error TS2304: Cannot find name 'AsyncFunction'. @@ -296,26 +231,20 @@ node_modules/async/ensureAsync.js(62,18): error TS2695: Left side of comma opera node_modules/async/every.js(32,12): error TS2304: Cannot find name 'AsyncFunction'. node_modules/async/every.js(49,20): error TS2695: Left side of comma operator is unused and has no side effects. node_modules/async/every.js(49,46): error TS2695: Left side of comma operator is unused and has no side effects. -node_modules/async/everyLimit.js(28,9): error TS1003: Identifier expected. node_modules/async/everyLimit.js(33,12): error TS2304: Cannot find name 'AsyncFunction'. node_modules/async/everyLimit.js(41,20): error TS2695: Left side of comma operator is unused and has no side effects. node_modules/async/everyLimit.js(41,51): error TS2695: Left side of comma operator is unused and has no side effects. -node_modules/async/everySeries.js(24,9): error TS1003: Identifier expected. node_modules/async/everySeries.js(28,12): error TS2304: Cannot find name 'AsyncFunction'. node_modules/async/everySeries.js(36,20): error TS2695: Left side of comma operator is unused and has no side effects. node_modules/async/filter.js(44,20): error TS2695: Left side of comma operator is unused and has no side effects. -node_modules/async/filterLimit.js(25,9): error TS1003: Identifier expected. node_modules/async/filterLimit.js(36,20): error TS2695: Left side of comma operator is unused and has no side effects. -node_modules/async/filterSeries.js(24,9): error TS1003: Identifier expected. node_modules/async/filterSeries.js(34,20): error TS2695: Left side of comma operator is unused and has no side effects. node_modules/async/find.js(42,12): error TS2304: Cannot find name 'AsyncFunction'. node_modules/async/find.js(60,20): error TS2695: Left side of comma operator is unused and has no side effects. node_modules/async/find.js(60,46): error TS2695: Left side of comma operator is unused and has no side effects. -node_modules/async/findLimit.js(33,9): error TS1003: Identifier expected. node_modules/async/findLimit.js(38,12): error TS2304: Cannot find name 'AsyncFunction'. node_modules/async/findLimit.js(47,20): error TS2695: Left side of comma operator is unused and has no side effects. node_modules/async/findLimit.js(47,51): error TS2695: Left side of comma operator is unused and has no side effects. -node_modules/async/findSeries.js(24,9): error TS1003: Identifier expected. node_modules/async/findSeries.js(28,12): error TS2304: Cannot find name 'AsyncFunction'. node_modules/async/findSeries.js(37,20): error TS2695: Left side of comma operator is unused and has no side effects. node_modules/async/foldl.js(46,12): error TS2304: Cannot find name 'AsyncFunction'. @@ -323,7 +252,6 @@ node_modules/async/foldl.js(67,17): error TS2695: Left side of comma operator is node_modules/async/foldl.js(68,22): error TS2695: Left side of comma operator is unused and has no side effects. node_modules/async/foldl.js(69,6): error TS2695: Left side of comma operator is unused and has no side effects. node_modules/async/foldl.js(75,9): error TS2722: Cannot invoke an object which is possibly 'undefined'. -node_modules/async/foldr.js(25,9): error TS1003: Identifier expected. node_modules/async/foldr.js(30,12): error TS2304: Cannot find name 'AsyncFunction'. node_modules/async/foldr.js(41,19): error TS2695: Left side of comma operator is unused and has no side effects. node_modules/async/foldr.js(42,4): error TS2695: Left side of comma operator is unused and has no side effects. @@ -331,7 +259,6 @@ node_modules/async/forEach.js(39,12): error TS2304: Cannot find name 'AsyncFunct node_modules/async/forEach.js(80,4): error TS2695: Left side of comma operator is unused and has no side effects. node_modules/async/forEach.js(80,32): error TS2695: Left side of comma operator is unused and has no side effects. node_modules/async/forEach.js(80,60): error TS2695: Left side of comma operator is unused and has no side effects. -node_modules/async/forEachLimit.js(29,9): error TS1003: Identifier expected. node_modules/async/forEachLimit.js(34,12): error TS2304: Cannot find name 'AsyncFunction'. node_modules/async/forEachLimit.js(43,4): error TS2695: Left side of comma operator is unused and has no side effects. node_modules/async/forEachLimit.js(43,44): error TS2695: Left side of comma operator is unused and has no side effects. @@ -341,16 +268,12 @@ node_modules/async/forEachOf.js(9,33): error TS2695: Left side of comma operator node_modules/async/forEachOf.js(48,17): error TS2695: Left side of comma operator is unused and has no side effects. node_modules/async/forEachOf.js(65,39): error TS2695: Left side of comma operator is unused and has no side effects. node_modules/async/forEachOf.js(70,22): error TS2695: Left side of comma operator is unused and has no side effects. -node_modules/async/forEachOf.js(82,9): error TS1003: Identifier expected. node_modules/async/forEachOf.js(84,12): error TS2304: Cannot find name 'AsyncFunction'. -node_modules/async/forEachOfLimit.js(26,9): error TS1003: Identifier expected. node_modules/async/forEachOfLimit.js(31,12): error TS2304: Cannot find name 'AsyncFunction'. node_modules/async/forEachOfLimit.js(39,4): error TS2695: Left side of comma operator is unused and has no side effects. node_modules/async/forEachOfLimit.js(39,44): error TS2695: Left side of comma operator is unused and has no side effects. -node_modules/async/forEachOfSeries.js(24,9): error TS1003: Identifier expected. node_modules/async/forEachOfSeries.js(28,12): error TS2304: Cannot find name 'AsyncFunction'. node_modules/async/forEachOfSeries.js(34,20): error TS2695: Left side of comma operator is unused and has no side effects. -node_modules/async/forEachSeries.js(24,9): error TS1003: Identifier expected. node_modules/async/forEachSeries.js(28,12): error TS2304: Cannot find name 'AsyncFunction'. node_modules/async/forEachSeries.js(36,20): error TS2695: Left side of comma operator is unused and has no side effects. node_modules/async/forever.js(38,12): error TS2304: Cannot find name 'AsyncFunction'. @@ -361,209 +284,9 @@ node_modules/async/groupBy.js(34,12): error TS2304: Cannot find name 'AsyncFunct node_modules/async/groupBy.js(53,20): error TS2695: Left side of comma operator is unused and has no side effects. node_modules/async/groupByLimit.js(9,22): error TS2695: Left side of comma operator is unused and has no side effects. node_modules/async/groupByLimit.js(10,6): error TS2695: Left side of comma operator is unused and has no side effects. -node_modules/async/groupByLimit.js(59,9): error TS1003: Identifier expected. node_modules/async/groupByLimit.js(63,12): error TS2304: Cannot find name 'AsyncFunction'. -node_modules/async/groupBySeries.js(24,9): error TS1003: Identifier expected. node_modules/async/groupBySeries.js(28,12): error TS2304: Cannot find name 'AsyncFunction'. node_modules/async/groupBySeries.js(36,20): error TS2695: Left side of comma operator is unused and has no side effects. -node_modules/async/index.js(6,1): error TS2323: Cannot redeclare exported variable 'wrapSync'. -node_modules/async/index.js(6,20): error TS2323: Cannot redeclare exported variable 'selectSeries'. -node_modules/async/index.js(6,43): error TS2323: Cannot redeclare exported variable 'selectLimit'. -node_modules/async/index.js(6,65): error TS2323: Cannot redeclare exported variable 'select'. -node_modules/async/index.js(6,82): error TS2323: Cannot redeclare exported variable 'foldr'. -node_modules/async/index.js(6,98): error TS2323: Cannot redeclare exported variable 'foldl'. -node_modules/async/index.js(6,114): error TS2323: Cannot redeclare exported variable 'inject'. -node_modules/async/index.js(6,131): error TS2323: Cannot redeclare exported variable 'forEachOfLimit'. -node_modules/async/index.js(6,156): error TS2323: Cannot redeclare exported variable 'forEachOfSeries'. -node_modules/async/index.js(6,182): error TS2323: Cannot redeclare exported variable 'forEachOf'. -node_modules/async/index.js(6,202): error TS2323: Cannot redeclare exported variable 'forEachLimit'. -node_modules/async/index.js(6,225): error TS2323: Cannot redeclare exported variable 'forEachSeries'. -node_modules/async/index.js(6,249): error TS2323: Cannot redeclare exported variable 'forEach'. -node_modules/async/index.js(6,267): error TS2323: Cannot redeclare exported variable 'findSeries'. -node_modules/async/index.js(6,288): error TS2323: Cannot redeclare exported variable 'findLimit'. -node_modules/async/index.js(6,308): error TS2323: Cannot redeclare exported variable 'find'. -node_modules/async/index.js(6,323): error TS2323: Cannot redeclare exported variable 'anySeries'. -node_modules/async/index.js(6,343): error TS2323: Cannot redeclare exported variable 'anyLimit'. -node_modules/async/index.js(6,362): error TS2323: Cannot redeclare exported variable 'any'. -node_modules/async/index.js(6,376): error TS2323: Cannot redeclare exported variable 'allSeries'. -node_modules/async/index.js(6,396): error TS2323: Cannot redeclare exported variable 'allLimit'. -node_modules/async/index.js(6,415): error TS2323: Cannot redeclare exported variable 'all'. -node_modules/async/index.js(6,429): error TS2323: Cannot redeclare exported variable 'whilst'. -node_modules/async/index.js(6,446): error TS2323: Cannot redeclare exported variable 'waterfall'. -node_modules/async/index.js(6,466): error TS2323: Cannot redeclare exported variable 'until'. -node_modules/async/index.js(6,482): error TS2323: Cannot redeclare exported variable 'unmemoize'. -node_modules/async/index.js(6,502): error TS2323: Cannot redeclare exported variable 'tryEach'. -node_modules/async/index.js(6,520): error TS2323: Cannot redeclare exported variable 'transform'. -node_modules/async/index.js(6,540): error TS2323: Cannot redeclare exported variable 'timesSeries'. -node_modules/async/index.js(6,562): error TS2323: Cannot redeclare exported variable 'timesLimit'. -node_modules/async/index.js(6,583): error TS2323: Cannot redeclare exported variable 'times'. -node_modules/async/index.js(6,599): error TS2323: Cannot redeclare exported variable 'timeout'. -node_modules/async/index.js(6,617): error TS2323: Cannot redeclare exported variable 'sortBy'. -node_modules/async/index.js(6,634): error TS2323: Cannot redeclare exported variable 'someSeries'. -node_modules/async/index.js(6,655): error TS2323: Cannot redeclare exported variable 'someLimit'. -node_modules/async/index.js(6,675): error TS2323: Cannot redeclare exported variable 'some'. -node_modules/async/index.js(6,690): error TS2323: Cannot redeclare exported variable 'setImmediate'. -node_modules/async/index.js(6,713): error TS2323: Cannot redeclare exported variable 'series'. -node_modules/async/index.js(6,730): error TS2323: Cannot redeclare exported variable 'seq'. -node_modules/async/index.js(6,744): error TS2323: Cannot redeclare exported variable 'retryable'. -node_modules/async/index.js(6,764): error TS2323: Cannot redeclare exported variable 'retry'. -node_modules/async/index.js(6,780): error TS2323: Cannot redeclare exported variable 'rejectSeries'. -node_modules/async/index.js(6,803): error TS2323: Cannot redeclare exported variable 'rejectLimit'. -node_modules/async/index.js(6,825): error TS2323: Cannot redeclare exported variable 'reject'. -node_modules/async/index.js(6,842): error TS2323: Cannot redeclare exported variable 'reflectAll'. -node_modules/async/index.js(6,863): error TS2323: Cannot redeclare exported variable 'reflect'. -node_modules/async/index.js(6,881): error TS2323: Cannot redeclare exported variable 'reduceRight'. -node_modules/async/index.js(6,903): error TS2323: Cannot redeclare exported variable 'reduce'. -node_modules/async/index.js(6,920): error TS2323: Cannot redeclare exported variable 'race'. -node_modules/async/index.js(6,935): error TS2323: Cannot redeclare exported variable 'queue'. -node_modules/async/index.js(6,951): error TS2323: Cannot redeclare exported variable 'priorityQueue'. -node_modules/async/index.js(6,975): error TS2323: Cannot redeclare exported variable 'parallelLimit'. -node_modules/async/index.js(6,999): error TS2323: Cannot redeclare exported variable 'parallel'. -node_modules/async/index.js(6,1018): error TS2323: Cannot redeclare exported variable 'nextTick'. -node_modules/async/index.js(6,1037): error TS2323: Cannot redeclare exported variable 'memoize'. -node_modules/async/index.js(6,1055): error TS2323: Cannot redeclare exported variable 'mapValuesSeries'. -node_modules/async/index.js(6,1081): error TS2323: Cannot redeclare exported variable 'mapValuesLimit'. -node_modules/async/index.js(6,1106): error TS2323: Cannot redeclare exported variable 'mapValues'. -node_modules/async/index.js(6,1126): error TS2323: Cannot redeclare exported variable 'mapSeries'. -node_modules/async/index.js(6,1146): error TS2323: Cannot redeclare exported variable 'mapLimit'. -node_modules/async/index.js(6,1165): error TS2323: Cannot redeclare exported variable 'map'. -node_modules/async/index.js(6,1179): error TS2323: Cannot redeclare exported variable 'log'. -node_modules/async/index.js(6,1193): error TS2323: Cannot redeclare exported variable 'groupBySeries'. -node_modules/async/index.js(6,1217): error TS2323: Cannot redeclare exported variable 'groupByLimit'. -node_modules/async/index.js(6,1240): error TS2323: Cannot redeclare exported variable 'groupBy'. -node_modules/async/index.js(6,1258): error TS2323: Cannot redeclare exported variable 'forever'. -node_modules/async/index.js(6,1276): error TS2323: Cannot redeclare exported variable 'filterSeries'. -node_modules/async/index.js(6,1299): error TS2323: Cannot redeclare exported variable 'filterLimit'. -node_modules/async/index.js(6,1321): error TS2323: Cannot redeclare exported variable 'filter'. -node_modules/async/index.js(6,1338): error TS2323: Cannot redeclare exported variable 'everySeries'. -node_modules/async/index.js(6,1360): error TS2323: Cannot redeclare exported variable 'everyLimit'. -node_modules/async/index.js(6,1381): error TS2323: Cannot redeclare exported variable 'every'. -node_modules/async/index.js(6,1397): error TS2323: Cannot redeclare exported variable 'ensureAsync'. -node_modules/async/index.js(6,1419): error TS2323: Cannot redeclare exported variable 'eachSeries'. -node_modules/async/index.js(6,1440): error TS2323: Cannot redeclare exported variable 'eachOfSeries'. -node_modules/async/index.js(6,1463): error TS2323: Cannot redeclare exported variable 'eachOfLimit'. -node_modules/async/index.js(6,1485): error TS2323: Cannot redeclare exported variable 'eachOf'. -node_modules/async/index.js(6,1502): error TS2323: Cannot redeclare exported variable 'eachLimit'. -node_modules/async/index.js(6,1522): error TS2323: Cannot redeclare exported variable 'each'. -node_modules/async/index.js(6,1537): error TS2323: Cannot redeclare exported variable 'during'. -node_modules/async/index.js(6,1554): error TS2323: Cannot redeclare exported variable 'doWhilst'. -node_modules/async/index.js(6,1573): error TS2323: Cannot redeclare exported variable 'doUntil'. -node_modules/async/index.js(6,1591): error TS2323: Cannot redeclare exported variable 'doDuring'. -node_modules/async/index.js(6,1610): error TS2323: Cannot redeclare exported variable 'dir'. -node_modules/async/index.js(6,1624): error TS2323: Cannot redeclare exported variable 'detectSeries'. -node_modules/async/index.js(6,1647): error TS2323: Cannot redeclare exported variable 'detectLimit'. -node_modules/async/index.js(6,1669): error TS2323: Cannot redeclare exported variable 'detect'. -node_modules/async/index.js(6,1686): error TS2323: Cannot redeclare exported variable 'constant'. -node_modules/async/index.js(6,1705): error TS2323: Cannot redeclare exported variable 'concatSeries'. -node_modules/async/index.js(6,1728): error TS2323: Cannot redeclare exported variable 'concatLimit'. -node_modules/async/index.js(6,1750): error TS2323: Cannot redeclare exported variable 'concat'. -node_modules/async/index.js(6,1767): error TS2323: Cannot redeclare exported variable 'compose'. -node_modules/async/index.js(6,1785): error TS2323: Cannot redeclare exported variable 'cargo'. -node_modules/async/index.js(6,1801): error TS2323: Cannot redeclare exported variable 'autoInject'. -node_modules/async/index.js(6,1822): error TS2323: Cannot redeclare exported variable 'auto'. -node_modules/async/index.js(6,1837): error TS2323: Cannot redeclare exported variable 'asyncify'. -node_modules/async/index.js(6,1856): error TS2323: Cannot redeclare exported variable 'applyEachSeries'. -node_modules/async/index.js(6,1882): error TS2323: Cannot redeclare exported variable 'applyEach'. -node_modules/async/index.js(6,1902): error TS2323: Cannot redeclare exported variable 'apply'. -node_modules/async/index.js(484,1): error TS2323: Cannot redeclare exported variable 'apply'. -node_modules/async/index.js(485,1): error TS2323: Cannot redeclare exported variable 'applyEach'. -node_modules/async/index.js(486,1): error TS2323: Cannot redeclare exported variable 'applyEachSeries'. -node_modules/async/index.js(487,1): error TS2323: Cannot redeclare exported variable 'asyncify'. -node_modules/async/index.js(488,1): error TS2323: Cannot redeclare exported variable 'auto'. -node_modules/async/index.js(489,1): error TS2323: Cannot redeclare exported variable 'autoInject'. -node_modules/async/index.js(490,1): error TS2323: Cannot redeclare exported variable 'cargo'. -node_modules/async/index.js(491,1): error TS2323: Cannot redeclare exported variable 'compose'. -node_modules/async/index.js(492,1): error TS2323: Cannot redeclare exported variable 'concat'. -node_modules/async/index.js(493,1): error TS2323: Cannot redeclare exported variable 'concatLimit'. -node_modules/async/index.js(494,1): error TS2323: Cannot redeclare exported variable 'concatSeries'. -node_modules/async/index.js(495,1): error TS2323: Cannot redeclare exported variable 'constant'. -node_modules/async/index.js(496,1): error TS2323: Cannot redeclare exported variable 'detect'. -node_modules/async/index.js(497,1): error TS2323: Cannot redeclare exported variable 'detectLimit'. -node_modules/async/index.js(498,1): error TS2323: Cannot redeclare exported variable 'detectSeries'. -node_modules/async/index.js(499,1): error TS2323: Cannot redeclare exported variable 'dir'. -node_modules/async/index.js(500,1): error TS2323: Cannot redeclare exported variable 'doDuring'. -node_modules/async/index.js(501,1): error TS2323: Cannot redeclare exported variable 'doUntil'. -node_modules/async/index.js(502,1): error TS2323: Cannot redeclare exported variable 'doWhilst'. -node_modules/async/index.js(503,1): error TS2323: Cannot redeclare exported variable 'during'. -node_modules/async/index.js(504,1): error TS2323: Cannot redeclare exported variable 'each'. -node_modules/async/index.js(505,1): error TS2323: Cannot redeclare exported variable 'eachLimit'. -node_modules/async/index.js(506,1): error TS2323: Cannot redeclare exported variable 'eachOf'. -node_modules/async/index.js(507,1): error TS2323: Cannot redeclare exported variable 'eachOfLimit'. -node_modules/async/index.js(508,1): error TS2323: Cannot redeclare exported variable 'eachOfSeries'. -node_modules/async/index.js(509,1): error TS2323: Cannot redeclare exported variable 'eachSeries'. -node_modules/async/index.js(510,1): error TS2323: Cannot redeclare exported variable 'ensureAsync'. -node_modules/async/index.js(511,1): error TS2323: Cannot redeclare exported variable 'every'. -node_modules/async/index.js(512,1): error TS2323: Cannot redeclare exported variable 'everyLimit'. -node_modules/async/index.js(513,1): error TS2323: Cannot redeclare exported variable 'everySeries'. -node_modules/async/index.js(514,1): error TS2323: Cannot redeclare exported variable 'filter'. -node_modules/async/index.js(515,1): error TS2323: Cannot redeclare exported variable 'filterLimit'. -node_modules/async/index.js(516,1): error TS2323: Cannot redeclare exported variable 'filterSeries'. -node_modules/async/index.js(517,1): error TS2323: Cannot redeclare exported variable 'forever'. -node_modules/async/index.js(518,1): error TS2323: Cannot redeclare exported variable 'groupBy'. -node_modules/async/index.js(519,1): error TS2323: Cannot redeclare exported variable 'groupByLimit'. -node_modules/async/index.js(520,1): error TS2323: Cannot redeclare exported variable 'groupBySeries'. -node_modules/async/index.js(521,1): error TS2323: Cannot redeclare exported variable 'log'. -node_modules/async/index.js(522,1): error TS2323: Cannot redeclare exported variable 'map'. -node_modules/async/index.js(523,1): error TS2323: Cannot redeclare exported variable 'mapLimit'. -node_modules/async/index.js(524,1): error TS2323: Cannot redeclare exported variable 'mapSeries'. -node_modules/async/index.js(525,1): error TS2323: Cannot redeclare exported variable 'mapValues'. -node_modules/async/index.js(526,1): error TS2323: Cannot redeclare exported variable 'mapValuesLimit'. -node_modules/async/index.js(527,1): error TS2323: Cannot redeclare exported variable 'mapValuesSeries'. -node_modules/async/index.js(528,1): error TS2323: Cannot redeclare exported variable 'memoize'. -node_modules/async/index.js(529,1): error TS2323: Cannot redeclare exported variable 'nextTick'. -node_modules/async/index.js(530,1): error TS2323: Cannot redeclare exported variable 'parallel'. -node_modules/async/index.js(531,1): error TS2323: Cannot redeclare exported variable 'parallelLimit'. -node_modules/async/index.js(532,1): error TS2323: Cannot redeclare exported variable 'priorityQueue'. -node_modules/async/index.js(533,1): error TS2323: Cannot redeclare exported variable 'queue'. -node_modules/async/index.js(534,1): error TS2323: Cannot redeclare exported variable 'race'. -node_modules/async/index.js(535,1): error TS2323: Cannot redeclare exported variable 'reduce'. -node_modules/async/index.js(536,1): error TS2323: Cannot redeclare exported variable 'reduceRight'. -node_modules/async/index.js(537,1): error TS2323: Cannot redeclare exported variable 'reflect'. -node_modules/async/index.js(538,1): error TS2323: Cannot redeclare exported variable 'reflectAll'. -node_modules/async/index.js(539,1): error TS2323: Cannot redeclare exported variable 'reject'. -node_modules/async/index.js(540,1): error TS2323: Cannot redeclare exported variable 'rejectLimit'. -node_modules/async/index.js(541,1): error TS2323: Cannot redeclare exported variable 'rejectSeries'. -node_modules/async/index.js(542,1): error TS2323: Cannot redeclare exported variable 'retry'. -node_modules/async/index.js(543,1): error TS2323: Cannot redeclare exported variable 'retryable'. -node_modules/async/index.js(544,1): error TS2323: Cannot redeclare exported variable 'seq'. -node_modules/async/index.js(545,1): error TS2323: Cannot redeclare exported variable 'series'. -node_modules/async/index.js(546,1): error TS2323: Cannot redeclare exported variable 'setImmediate'. -node_modules/async/index.js(547,1): error TS2323: Cannot redeclare exported variable 'some'. -node_modules/async/index.js(548,1): error TS2323: Cannot redeclare exported variable 'someLimit'. -node_modules/async/index.js(549,1): error TS2323: Cannot redeclare exported variable 'someSeries'. -node_modules/async/index.js(550,1): error TS2323: Cannot redeclare exported variable 'sortBy'. -node_modules/async/index.js(551,1): error TS2323: Cannot redeclare exported variable 'timeout'. -node_modules/async/index.js(552,1): error TS2323: Cannot redeclare exported variable 'times'. -node_modules/async/index.js(553,1): error TS2323: Cannot redeclare exported variable 'timesLimit'. -node_modules/async/index.js(554,1): error TS2323: Cannot redeclare exported variable 'timesSeries'. -node_modules/async/index.js(555,1): error TS2323: Cannot redeclare exported variable 'transform'. -node_modules/async/index.js(556,1): error TS2323: Cannot redeclare exported variable 'tryEach'. -node_modules/async/index.js(557,1): error TS2323: Cannot redeclare exported variable 'unmemoize'. -node_modules/async/index.js(558,1): error TS2323: Cannot redeclare exported variable 'until'. -node_modules/async/index.js(559,1): error TS2323: Cannot redeclare exported variable 'waterfall'. -node_modules/async/index.js(560,1): error TS2323: Cannot redeclare exported variable 'whilst'. -node_modules/async/index.js(561,1): error TS2323: Cannot redeclare exported variable 'all'. -node_modules/async/index.js(562,1): error TS2323: Cannot redeclare exported variable 'allLimit'. -node_modules/async/index.js(563,1): error TS2323: Cannot redeclare exported variable 'allSeries'. -node_modules/async/index.js(564,1): error TS2323: Cannot redeclare exported variable 'any'. -node_modules/async/index.js(565,1): error TS2323: Cannot redeclare exported variable 'anyLimit'. -node_modules/async/index.js(566,1): error TS2323: Cannot redeclare exported variable 'anySeries'. -node_modules/async/index.js(567,1): error TS2323: Cannot redeclare exported variable 'find'. -node_modules/async/index.js(568,1): error TS2323: Cannot redeclare exported variable 'findLimit'. -node_modules/async/index.js(569,1): error TS2323: Cannot redeclare exported variable 'findSeries'. -node_modules/async/index.js(570,1): error TS2323: Cannot redeclare exported variable 'forEach'. -node_modules/async/index.js(571,1): error TS2323: Cannot redeclare exported variable 'forEachSeries'. -node_modules/async/index.js(572,1): error TS2323: Cannot redeclare exported variable 'forEachLimit'. -node_modules/async/index.js(573,1): error TS2323: Cannot redeclare exported variable 'forEachOf'. -node_modules/async/index.js(574,1): error TS2323: Cannot redeclare exported variable 'forEachOfSeries'. -node_modules/async/index.js(575,1): error TS2323: Cannot redeclare exported variable 'forEachOfLimit'. -node_modules/async/index.js(576,1): error TS2323: Cannot redeclare exported variable 'inject'. -node_modules/async/index.js(577,1): error TS2323: Cannot redeclare exported variable 'foldl'. -node_modules/async/index.js(578,1): error TS2323: Cannot redeclare exported variable 'foldr'. -node_modules/async/index.js(579,1): error TS2323: Cannot redeclare exported variable 'select'. -node_modules/async/index.js(580,1): error TS2323: Cannot redeclare exported variable 'selectLimit'. -node_modules/async/index.js(581,1): error TS2323: Cannot redeclare exported variable 'selectSeries'. -node_modules/async/index.js(582,1): error TS2323: Cannot redeclare exported variable 'wrapSync'. node_modules/async/inject.js(46,12): error TS2304: Cannot find name 'AsyncFunction'. node_modules/async/inject.js(67,17): error TS2695: Left side of comma operator is unused and has no side effects. node_modules/async/inject.js(68,22): error TS2695: Left side of comma operator is unused and has no side effects. @@ -602,15 +325,8 @@ node_modules/async/internal/queue.js(94,30): error TS2695: Left side of comma op node_modules/async/internal/queue.js(174,27): error TS2695: Left side of comma operator is unused and has no side effects. node_modules/async/internal/queue.js(199,14): error TS2695: Left side of comma operator is unused and has no side effects. node_modules/async/internal/reject.js(15,6): error TS2695: Left side of comma operator is unused and has no side effects. -node_modules/async/internal/setImmediate.js(6,1): error TS2323: Cannot redeclare exported variable 'hasNextTick'. -node_modules/async/internal/setImmediate.js(6,23): error TS2323: Cannot redeclare exported variable 'hasSetImmediate'. -node_modules/async/internal/setImmediate.js(16,23): error TS2323: Cannot redeclare exported variable 'hasSetImmediate'. -node_modules/async/internal/setImmediate.js(17,19): error TS2323: Cannot redeclare exported variable 'hasNextTick'. node_modules/async/internal/setImmediate.js(25,21): error TS2695: Left side of comma operator is unused and has no side effects. -node_modules/async/internal/wrapAsync.js(6,1): error TS2323: Cannot redeclare exported variable 'isAsync'. node_modules/async/internal/wrapAsync.js(21,32): error TS2695: Left side of comma operator is unused and has no side effects. -node_modules/async/internal/wrapAsync.js(25,1): error TS2322: Type '(fn: any) => boolean' is not assignable to type 'undefined'. -node_modules/async/internal/wrapAsync.js(25,1): error TS2323: Cannot redeclare exported variable 'isAsync'. node_modules/async/log.js(24,12): error TS2304: Cannot find name 'AsyncFunction'. node_modules/async/log.js(26,28): error TS1003: Identifier expected. node_modules/async/log.js(26,29): error TS1003: Identifier expected. @@ -618,21 +334,17 @@ node_modules/async/log.js(26,30): error TS1003: Identifier expected. node_modules/async/log.js(40,20): error TS2695: Left side of comma operator is unused and has no side effects. node_modules/async/map.js(40,12): error TS2304: Cannot find name 'AsyncFunction'. node_modules/async/map.js(53,20): error TS2695: Left side of comma operator is unused and has no side effects. -node_modules/async/mapLimit.js(24,9): error TS1003: Identifier expected. node_modules/async/mapLimit.js(28,12): error TS2304: Cannot find name 'AsyncFunction'. node_modules/async/mapLimit.js(36,20): error TS2695: Left side of comma operator is unused and has no side effects. -node_modules/async/mapSeries.js(24,9): error TS1003: Identifier expected. node_modules/async/mapSeries.js(27,12): error TS2304: Cannot find name 'AsyncFunction'. node_modules/async/mapSeries.js(35,20): error TS2695: Left side of comma operator is unused and has no side effects. node_modules/async/mapValues.js(36,12): error TS2304: Cannot find name 'AsyncFunction'. node_modules/async/mapValues.js(62,20): error TS2695: Left side of comma operator is unused and has no side effects. -node_modules/async/mapValuesLimit.js(34,9): error TS1003: Identifier expected. node_modules/async/mapValuesLimit.js(38,12): error TS2304: Cannot find name 'AsyncFunction'. node_modules/async/mapValuesLimit.js(48,17): error TS2695: Left side of comma operator is unused and has no side effects. node_modules/async/mapValuesLimit.js(50,22): error TS2695: Left side of comma operator is unused and has no side effects. node_modules/async/mapValuesLimit.js(51,6): error TS2695: Left side of comma operator is unused and has no side effects. node_modules/async/mapValuesLimit.js(58,9): error TS2722: Cannot invoke an object which is possibly 'undefined'. -node_modules/async/mapValuesSeries.js(24,9): error TS1003: Identifier expected. node_modules/async/mapValuesSeries.js(27,12): error TS2304: Cannot find name 'AsyncFunction'. node_modules/async/mapValuesSeries.js(36,20): error TS2695: Left side of comma operator is unused and has no side effects. node_modules/async/memoize.js(53,12): error TS2304: Cannot find name 'AsyncFunction'. @@ -641,20 +353,17 @@ node_modules/async/memoize.js(75,16): error TS2695: Left side of comma operator node_modules/async/memoize.js(76,21): error TS2695: Left side of comma operator is unused and has no side effects. node_modules/async/memoize.js(79,14): error TS2695: Left side of comma operator is unused and has no side effects. node_modules/async/memoize.js(87,29): error TS2695: Left side of comma operator is unused and has no side effects. -node_modules/async/nextTick.js(21,9): error TS1003: Identifier expected. node_modules/async/nextTick.js(25,23): error TS1003: Identifier expected. node_modules/async/nextTick.js(25,24): error TS1003: Identifier expected. node_modules/async/nextTick.js(25,25): error TS1003: Identifier expected. node_modules/async/nextTick.js(50,20): error TS2695: Left side of comma operator is unused and has no side effects. node_modules/async/parallel.js(88,4): error TS2695: Left side of comma operator is unused and has no side effects. -node_modules/async/parallelLimit.js(26,9): error TS1003: Identifier expected. node_modules/async/parallelLimit.js(38,4): error TS2695: Left side of comma operator is unused and has no side effects. node_modules/async/parallelLimit.js(38,28): error TS2695: Left side of comma operator is unused and has no side effects. node_modules/async/priorityQueue.js(9,14): error TS2695: Left side of comma operator is unused and has no side effects. node_modules/async/priorityQueue.js(18,15): error TS2695: Left side of comma operator is unused and has no side effects. node_modules/async/priorityQueue.js(23,21): error TS2695: Left side of comma operator is unused and has no side effects. node_modules/async/priorityQueue.js(47,10): error TS2695: Left side of comma operator is unused and has no side effects. -node_modules/async/priorityQueue.js(84,9): error TS1003: Identifier expected. node_modules/async/priorityQueue.js(86,12): error TS2304: Cannot find name 'AsyncFunction'. node_modules/async/queue.js(8,18): error TS2695: Left side of comma operator is unused and has no side effects. node_modules/async/queue.js(9,11): error TS2695: Left side of comma operator is unused and has no side effects. @@ -667,7 +376,6 @@ node_modules/async/reduce.js(67,17): error TS2695: Left side of comma operator i node_modules/async/reduce.js(68,22): error TS2695: Left side of comma operator is unused and has no side effects. node_modules/async/reduce.js(69,6): error TS2695: Left side of comma operator is unused and has no side effects. node_modules/async/reduce.js(75,9): error TS2722: Cannot invoke an object which is possibly 'undefined'. -node_modules/async/reduceRight.js(25,9): error TS1003: Identifier expected. node_modules/async/reduceRight.js(30,12): error TS2304: Cannot find name 'AsyncFunction'. node_modules/async/reduceRight.js(41,19): error TS2695: Left side of comma operator is unused and has no side effects. node_modules/async/reduceRight.js(42,4): error TS2695: Left side of comma operator is unused and has no side effects. @@ -675,17 +383,12 @@ node_modules/async/reflect.js(33,12): error TS2304: Cannot find name 'AsyncFunct node_modules/async/reflect.js(62,16): error TS2695: Left side of comma operator is unused and has no side effects. node_modules/async/reflect.js(63,13): error TS2695: Left side of comma operator is unused and has no side effects. node_modules/async/reflect.js(72,30): error TS2695: Left side of comma operator is unused and has no side effects. -node_modules/async/reflectAll.js(33,9): error TS1003: Identifier expected. node_modules/async/reflectAll.js(95,10): error TS2695: Left side of comma operator is unused and has no side effects. node_modules/async/reflectAll.js(96,20): error TS2695: Left side of comma operator is unused and has no side effects. node_modules/async/reflectAll.js(99,10): error TS2695: Left side of comma operator is unused and has no side effects. -node_modules/async/reject.js(24,9): error TS1003: Identifier expected. node_modules/async/reject.js(44,20): error TS2695: Left side of comma operator is unused and has no side effects. -node_modules/async/rejectLimit.js(25,9): error TS1003: Identifier expected. node_modules/async/rejectLimit.js(36,20): error TS2695: Left side of comma operator is unused and has no side effects. -node_modules/async/rejectSeries.js(24,9): error TS1003: Identifier expected. node_modules/async/rejectSeries.js(34,20): error TS2695: Left side of comma operator is unused and has no side effects. -node_modules/async/retry.js(33,9): error TS1003: Identifier expected. node_modules/async/retry.js(48,12): error TS2304: Cannot find name 'AsyncFunction'. node_modules/async/retry.js(106,22): error TS1016: A required parameter cannot follow an optional parameter. node_modules/async/retry.js(112,24): error TS2695: Left side of comma operator is unused and has no side effects. @@ -698,32 +401,25 @@ node_modules/async/retryable.js(12,18): error TS2695: Left side of comma operato node_modules/async/retryable.js(13,13): error TS2695: Left side of comma operator is unused and has no side effects. node_modules/async/retryable.js(18,20): error TS2695: Left side of comma operator is unused and has no side effects. node_modules/async/retryable.js(18,70): error TS2695: Left side of comma operator is unused and has no side effects. -node_modules/async/retryable.js(47,9): error TS1003: Identifier expected. node_modules/async/retryable.js(51,12): error TS2304: Cannot find name 'AsyncFunction'. node_modules/async/select.js(44,20): error TS2695: Left side of comma operator is unused and has no side effects. -node_modules/async/selectLimit.js(25,9): error TS1003: Identifier expected. node_modules/async/selectLimit.js(36,20): error TS2695: Left side of comma operator is unused and has no side effects. -node_modules/async/selectSeries.js(24,9): error TS1003: Identifier expected. node_modules/async/selectSeries.js(34,20): error TS2695: Left side of comma operator is unused and has no side effects. -node_modules/async/seq.js(41,9): error TS1003: Identifier expected. node_modules/async/seq.js(43,15): error TS2304: Cannot find name 'AsyncFunction'. node_modules/async/seq.js(69,23): error TS2695: Left side of comma operator is unused and has no side effects. node_modules/async/seq.js(71,21): error TS2695: Left side of comma operator is unused and has no side effects. node_modules/async/seq.js(81,10): error TS2695: Left side of comma operator is unused and has no side effects. node_modules/async/seq.js(83,33): error TS2695: Left side of comma operator is unused and has no side effects. node_modules/async/series.js(83,4): error TS2695: Left side of comma operator is unused and has no side effects. -node_modules/async/setImmediate.js(25,9): error TS1003: Identifier expected. node_modules/async/setImmediate.js(29,23): error TS1003: Identifier expected. node_modules/async/setImmediate.js(29,24): error TS1003: Identifier expected. node_modules/async/setImmediate.js(29,25): error TS1003: Identifier expected. node_modules/async/some.js(33,12): error TS2304: Cannot find name 'AsyncFunction'. node_modules/async/some.js(51,20): error TS2695: Left side of comma operator is unused and has no side effects. node_modules/async/some.js(51,46): error TS2695: Left side of comma operator is unused and has no side effects. -node_modules/async/someLimit.js(28,9): error TS1003: Identifier expected. node_modules/async/someLimit.js(33,12): error TS2304: Cannot find name 'AsyncFunction'. node_modules/async/someLimit.js(42,20): error TS2695: Left side of comma operator is unused and has no side effects. node_modules/async/someLimit.js(42,51): error TS2695: Left side of comma operator is unused and has no side effects. -node_modules/async/someSeries.js(24,9): error TS1003: Identifier expected. node_modules/async/someSeries.js(28,12): error TS2304: Cannot find name 'AsyncFunction'. node_modules/async/someSeries.js(37,20): error TS2695: Left side of comma operator is unused and has no side effects. node_modules/async/sortBy.js(36,12): error TS2304: Cannot find name 'AsyncFunction'. @@ -737,15 +433,12 @@ node_modules/async/timeout.js(60,15): error TS2695: Left side of comma operator node_modules/async/timeout.js(62,13): error TS2695: Left side of comma operator is unused and has no side effects. node_modules/async/timeout.js(69,19): error TS2339: Property 'code' does not exist on type 'Error'. node_modules/async/timeout.js(71,23): error TS2339: Property 'info' does not exist on type 'Error'. -node_modules/async/times.js(25,9): error TS1003: Identifier expected. node_modules/async/times.js(28,12): error TS2304: Cannot find name 'AsyncFunction'. node_modules/async/times.js(49,20): error TS2695: Left side of comma operator is unused and has no side effects. -node_modules/async/timesLimit.js(30,9): error TS1003: Identifier expected. node_modules/async/timesLimit.js(34,12): error TS2304: Cannot find name 'AsyncFunction'. node_modules/async/timesLimit.js(39,20): error TS2695: Left side of comma operator is unused and has no side effects. node_modules/async/timesLimit.js(40,4): error TS2695: Left side of comma operator is unused and has no side effects. node_modules/async/timesLimit.js(40,28): error TS2695: Left side of comma operator is unused and has no side effects. -node_modules/async/timesSeries.js(24,9): error TS1003: Identifier expected. node_modules/async/timesSeries.js(27,12): error TS2304: Cannot find name 'AsyncFunction'. node_modules/async/timesSeries.js(31,20): error TS2695: Left side of comma operator is unused and has no side effects. node_modules/async/transform.js(43,12): error TS2304: Cannot find name 'AsyncFunction'. @@ -759,10 +452,8 @@ node_modules/async/tryEach.js(67,6): error TS2695: Left side of comma operator i node_modules/async/tryEach.js(68,10): error TS2695: Left side of comma operator is unused and has no side effects. node_modules/async/tryEach.js(70,27): error TS2695: Left side of comma operator is unused and has no side effects. node_modules/async/tryEach.js(78,9): error TS2722: Cannot invoke an object which is possibly 'undefined'. -node_modules/async/unmemoize.js(15,9): error TS1003: Identifier expected. node_modules/async/unmemoize.js(17,12): error TS2304: Cannot find name 'AsyncFunction'. node_modules/async/unmemoize.js(18,14): error TS2304: Cannot find name 'AsyncFunction'. -node_modules/async/until.js(25,9): error TS1003: Identifier expected. node_modules/async/until.js(29,12): error TS2304: Cannot find name 'AsyncFunction'. node_modules/async/until.js(37,6): error TS2695: Left side of comma operator is unused and has no side effects. node_modules/async/waterfall.js(8,17): error TS2695: Left side of comma operator is unused and has no side effects. diff --git a/tests/baselines/reference/user/axios-src.log b/tests/baselines/reference/user/axios-src.log deleted file mode 100644 index 8b4a3abc6cb0f..0000000000000 --- a/tests/baselines/reference/user/axios-src.log +++ /dev/null @@ -1,59 +0,0 @@ -Exit Code: 2 -Standard output: -lib/adapters/http.js(13,19): error TS2732: Cannot find module './../../package.json'. Consider using '--resolveJsonModule' to import module with '.json' extension. -lib/adapters/http.js(22,12): error TS2304: Cannot find name 'AxiosProxyConfig'. -lib/adapters/http.js(34,5): error TS2532: Object is possibly 'undefined'. -lib/adapters/http.js(38,11): error TS2339: Property 'beforeRedirect' does not exist on type 'ClientRequestArgs'. -lib/adapters/http.js(116,22): error TS2345: Argument of type 'string | null' is not assignable to parameter of type 'string'. - Type 'null' is not assignable to type 'string'. -lib/adapters/http.js(153,17): error TS2531: Object is possibly 'null'. -lib/adapters/http.js(153,40): error TS2531: Object is possibly 'null'. -lib/adapters/http.js(248,23): error TS2345: Argument of type 'null' is not assignable to parameter of type 'string | undefined'. -lib/adapters/http.js(254,44): error TS2345: Argument of type 'null' is not assignable to parameter of type 'string | undefined'. -lib/adapters/http.js(260,13): error TS2322: Type 'string' is not assignable to type 'Buffer'. -lib/adapters/http.js(262,15): error TS2322: Type 'string' is not assignable to type 'Buffer'. -lib/adapters/http.js(262,45): error TS2345: Argument of type 'Buffer' is not assignable to parameter of type 'string'. -lib/adapters/http.js(275,40): error TS2345: Argument of type 'null' is not assignable to parameter of type 'string | undefined'. -lib/adapters/http.js(304,42): error TS2345: Argument of type 'null' is not assignable to parameter of type 'string | undefined'. -lib/adapters/xhr.js(65,7): error TS2322: Type 'null' is not assignable to type 'XMLHttpRequest'. -lib/adapters/xhr.js(77,7): error TS2322: Type 'null' is not assignable to type 'XMLHttpRequest'. -lib/adapters/xhr.js(84,51): error TS2345: Argument of type 'null' is not assignable to parameter of type 'string | undefined'. -lib/adapters/xhr.js(87,7): error TS2322: Type 'null' is not assignable to type 'XMLHttpRequest'. -lib/adapters/xhr.js(100,7): error TS2322: Type 'null' is not assignable to type 'XMLHttpRequest'. -lib/adapters/xhr.js(168,9): error TS2322: Type 'null' is not assignable to type 'XMLHttpRequest'. -lib/axios.js(23,9): error TS2554: Expected 3 arguments, but got 2. -lib/axios.js(25,3): error TS2739: Type '(...args: any[]) => any' is missing the following properties from type 'Axios': defaults, interceptors, request, getUri -lib/axios.js(32,7): error TS2339: Property 'Axios' does not exist on type 'Axios'. -lib/axios.js(35,7): error TS2339: Property 'create' does not exist on type 'Axios'. -lib/axios.js(40,7): error TS2339: Property 'Cancel' does not exist on type 'Axios'. -lib/axios.js(41,7): error TS2339: Property 'CancelToken' does not exist on type 'Axios'. -lib/axios.js(42,7): error TS2339: Property 'isCancel' does not exist on type 'Axios'. -lib/axios.js(45,7): error TS2339: Property 'all' does not exist on type 'Axios'. -lib/axios.js(48,7): error TS2339: Property 'spread' does not exist on type 'Axios'. -lib/axios.js(51,7): error TS2339: Property 'isAxiosError' does not exist on type 'Axios'. -lib/cancel/CancelToken.js(23,15): error TS2339: Property 'reason' does not exist on type 'CancelToken'. -lib/cancel/CancelToken.js(28,11): error TS2339: Property 'reason' does not exist on type 'CancelToken'. -lib/cancel/CancelToken.js(29,26): error TS2339: Property 'reason' does not exist on type 'CancelToken'. -lib/cancel/CancelToken.js(37,12): error TS2339: Property 'reason' does not exist on type 'CancelToken'. -lib/cancel/CancelToken.js(38,16): error TS2339: Property 'reason' does not exist on type 'CancelToken'. -lib/core/enhanceError.js(14,9): error TS2339: Property 'config' does not exist on type 'Error'. -lib/core/enhanceError.js(16,11): error TS2339: Property 'code' does not exist on type 'Error'. -lib/core/enhanceError.js(19,9): error TS2339: Property 'request' does not exist on type 'Error'. -lib/core/enhanceError.js(20,9): error TS2339: Property 'response' does not exist on type 'Error'. -lib/core/enhanceError.js(21,9): error TS2339: Property 'isAxiosError' does not exist on type 'Error'. -lib/core/enhanceError.js(23,9): error TS2339: Property 'toJSON' does not exist on type 'Error'. -lib/core/enhanceError.js(29,25): error TS2339: Property 'description' does not exist on type 'Error'. -lib/core/enhanceError.js(30,20): error TS2339: Property 'number' does not exist on type 'Error'. -lib/core/enhanceError.js(32,22): error TS2339: Property 'fileName' does not exist on type 'Error'. -lib/core/enhanceError.js(33,24): error TS2339: Property 'lineNumber' does not exist on type 'Error'. -lib/core/enhanceError.js(34,26): error TS2339: Property 'columnNumber' does not exist on type 'Error'. -lib/core/enhanceError.js(37,20): error TS2339: Property 'config' does not exist on type 'Error'. -lib/core/enhanceError.js(38,18): error TS2339: Property 'code' does not exist on type 'Error'. -lib/core/settle.js(20,7): error TS2345: Argument of type 'null' is not assignable to parameter of type 'string | undefined'. -lib/helpers/buildURL.js(22,49): error TS1016: A required parameter cannot follow an optional parameter. -lib/helpers/cookies.js(16,56): error TS2551: Property 'toGMTString' does not exist on type 'Date'. Did you mean 'toUTCString'? -lib/utils.js(271,20): error TS8029: JSDoc '@param' tag has name 'obj1', but there is no parameter with that name. It would match 'arguments' if it had an array type. - - - -Standard error: diff --git a/tests/baselines/reference/user/bluebird.log b/tests/baselines/reference/user/bluebird.log index c43a6ad9235df..a8fc8acfb6acd 100644 --- a/tests/baselines/reference/user/bluebird.log +++ b/tests/baselines/reference/user/bluebird.log @@ -5,7 +5,7 @@ node_modules/bluebird/js/release/bluebird.js(5,15): error TS2367: This condition node_modules/bluebird/js/release/bluebird.js(10,10): error TS2339: Property 'noConflict' does not exist on type 'typeof Promise'. node_modules/bluebird/js/release/debuggability.js(225,17): error TS2403: Subsequent variable declarations must have the same type. Variable 'event' must be of type 'CustomEvent', but here has type 'Event'. node_modules/bluebird/js/release/debuggability.js(232,26): error TS2339: Property 'detail' does not exist on type 'Event'. -node_modules/bluebird/js/release/debuggability.js(258,48): error TS2345: Argument of type 'IArguments' is not assignable to parameter of type '[event: "multipleResolves", listener: MultipleResolveListener]'. +node_modules/bluebird/js/release/debuggability.js(258,48): error TS2345: Argument of type 'IArguments' is not assignable to parameter of type '[event: "worker", listener: WorkerListener]'. node_modules/bluebird/js/release/debuggability.js(301,9): error TS2322: Type 'Process' is not assignable to type 'boolean'. node_modules/bluebird/js/release/debuggability.js(301,28): error TS2684: The 'this' context of type '((...args: any[]) => Process) | ((name: any, ...args: any[]) => boolean)' is not assignable to method's 'this' of type '(this: null, args_0?: any, ...args_1: any[]) => Process'. Type '(name: any, ...args: any[]) => boolean' is not assignable to type '(this: null, args_0?: any, ...args_1: any[]) => Process'. @@ -18,6 +18,8 @@ node_modules/bluebird/js/release/debuggability.js(807,5): error TS2721: Cannot i node_modules/bluebird/js/release/debuggability.js(825,30): error TS2339: Property 'stack' does not exist on type 'CapturedTrace'. node_modules/bluebird/js/release/debuggability.js(831,37): error TS2339: Property 'stack' does not exist on type 'CapturedTrace'. node_modules/bluebird/js/release/debuggability.js(870,38): error TS2339: Property 'stack' does not exist on type 'CapturedTrace'. +node_modules/bluebird/js/release/debuggability.js(922,42): error TS2571: Object is of type 'unknown'. +node_modules/bluebird/js/release/debuggability.js(931,34): error TS2571: Object is of type 'unknown'. node_modules/bluebird/js/release/debuggability.js(950,4): error TS2554: Expected 0 arguments, but got 1. node_modules/bluebird/js/release/errors.js(10,49): error TS2350: Only a void function can be called with the 'new' keyword. node_modules/bluebird/js/release/finally.js(50,24): error TS2339: Property 'promise' does not exist on type 'finallyHandler'. @@ -46,14 +48,14 @@ node_modules/bluebird/js/release/map.js(118,23): error TS2339: Property '_values node_modules/bluebird/js/release/map.js(120,18): error TS2339: Property '_isResolved' does not exist on type 'MappingPromiseArray'. node_modules/bluebird/js/release/map.js(134,10): error TS2339: Property '_resolve' does not exist on type 'MappingPromiseArray'. node_modules/bluebird/js/release/map.js(163,66): error TS2339: Property 'promise' does not exist on type 'MappingPromiseArray'. -node_modules/bluebird/js/release/nodeify.js(32,19): error TS2339: Property 'cause' does not exist on type 'Error'. node_modules/bluebird/js/release/promise.js(4,12): error TS2350: Only a void function can be called with the 'new' keyword. node_modules/bluebird/js/release/promise.js(7,24): error TS2339: Property 'PromiseInspection' does not exist on type 'typeof Promise'. node_modules/bluebird/js/release/promise.js(10,27): error TS2350: Only a void function can be called with the 'new' keyword. +node_modules/bluebird/js/release/promise.js(18,26): error TS2339: Property 'domain' does not exist on type 'Process'. node_modules/bluebird/js/release/promise.js(38,20): error TS2531: Object is possibly 'null'. -node_modules/bluebird/js/release/promise.js(44,5): error TS2322: Type '() => { domain: Domain | null; async: AsyncResource; }' is not assignable to type '(() => null) | (() => { domain: Domain | null; async: null; })'. - Type '() => { domain: Domain | null; async: AsyncResource; }' is not assignable to type '() => null'. - Type '{ domain: NodeJS.Domain | null; async: AsyncResource; }' is not assignable to type 'null'. +node_modules/bluebird/js/release/promise.js(44,5): error TS2322: Type '() => { domain: any; async: AsyncResource; }' is not assignable to type '(() => null) | (() => { domain: any; async: null; })'. + Type '() => { domain: any; async: AsyncResource; }' is not assignable to type '() => null'. + Type '{ domain: any; async: AsyncResource; }' is not assignable to type 'null'. node_modules/bluebird/js/release/promise.js(86,15): error TS2350: Only a void function can be called with the 'new' keyword. node_modules/bluebird/js/release/promise.js(89,15): error TS2350: Only a void function can be called with the 'new' keyword. node_modules/bluebird/js/release/promise.js(104,10): error TS2339: Property '_promiseCreated' does not exist on type 'Promise'. @@ -178,6 +180,7 @@ node_modules/bluebird/js/release/using.js(78,20): error TS2339: Property 'doDisp node_modules/bluebird/js/release/using.js(92,14): error TS2339: Property 'constructor$' does not exist on type 'FunctionDisposer'. node_modules/bluebird/js/release/using.js(97,23): error TS2339: Property 'data' does not exist on type 'FunctionDisposer'. node_modules/bluebird/js/release/using.js(223,15): error TS2350: Only a void function can be called with the 'new' keyword. +node_modules/bluebird/js/release/util.js(18,9): error TS2322: Type 'unknown' is not assignable to type '{}'. node_modules/bluebird/js/release/util.js(405,13): error TS2532: Object is possibly 'undefined'. node_modules/bluebird/js/release/util.js(405,33): error TS2532: Object is possibly 'undefined'. node_modules/bluebird/js/release/util.js(405,54): error TS2532: Object is possibly 'undefined'. diff --git a/tests/baselines/reference/user/chrome-devtools-frontend.log b/tests/baselines/reference/user/chrome-devtools-frontend.log index 5bc485cfcd266..bb0b4fde1bd51 100644 --- a/tests/baselines/reference/user/chrome-devtools-frontend.log +++ b/tests/baselines/reference/user/chrome-devtools-frontend.log @@ -1,97 +1,10 @@ -Exit Code: 2 +Exit Code: null Standard output: -../../../../built/local/lib.es5.d.ts(1463,11): error TS2300: Duplicate identifier 'ArrayLike'. -node_modules/chrome-devtools-frontend/front_end/Runtime.js(43,8): error TS2339: Property '_importScriptPathPrefix' does not exist on type 'Window & typeof globalThis'. -node_modules/chrome-devtools-frontend/front_end/Runtime.js(77,16): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/Runtime.js(78,16): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/Runtime.js(95,28): error TS2339: Property 'response' does not exist on type 'EventTarget'. -node_modules/chrome-devtools-frontend/front_end/Runtime.js(147,37): error TS2339: Property '_importScriptPathPrefix' does not exist on type 'Window & typeof globalThis'. -node_modules/chrome-devtools-frontend/front_end/Runtime.js(270,9): error TS2322: Type 'Promise' is not assignable to type 'Promise'. - Type 'void' is not assignable to type 'undefined'. -node_modules/chrome-devtools-frontend/front_end/Runtime.js(280,5): error TS2322: Type 'Promise' is not assignable to type 'Promise'. -node_modules/chrome-devtools-frontend/front_end/Runtime.js(283,12): error TS2554: Expected 2-3 arguments, but got 1. -node_modules/chrome-devtools-frontend/front_end/Runtime.js(525,9): error TS2322: Type 'Window' is not assignable to type 'Window & typeof globalThis'. - Type 'Window' is missing the following properties from type 'typeof globalThis': globalThis, eval, parseInt, parseFloat, and 825 more. -node_modules/chrome-devtools-frontend/front_end/Runtime.js(527,49): error TS2352: Conversion of type 'Window & typeof globalThis' to type 'new () => any' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first. - Type 'Window & typeof globalThis' provides no match for the signature 'new (): any'. -node_modules/chrome-devtools-frontend/front_end/Runtime.js(539,24): error TS2351: This expression is not constructable. - Type 'Function' has no construct signatures. -node_modules/chrome-devtools-frontend/front_end/Runtime.js(693,7): error TS2322: Type 'Promise' is not assignable to type 'Promise'. - Type 'boolean' is not assignable to type 'undefined'. -node_modules/chrome-devtools-frontend/front_end/Runtime.js(705,5): error TS2322: Type 'Promise' is not assignable to type 'Promise'. -node_modules/chrome-devtools-frontend/front_end/Runtime.js(715,7): error TS2322: Type 'Promise' is not assignable to type 'Promise'. -node_modules/chrome-devtools-frontend/front_end/Runtime.js(729,7): error TS2322: Type 'Promise' is not assignable to type 'Promise'. -node_modules/chrome-devtools-frontend/front_end/Runtime.js(746,5): error TS2322: Type 'Window | {}' is not assignable to type 'Window'. - Type '{}' is missing the following properties from type 'Window': applicationCache, clientInformation, closed, customElements, and 207 more. -node_modules/chrome-devtools-frontend/front_end/Runtime.js(1083,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/Runtime.js(1088,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/Tests.js(203,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/Tests.js(208,10): error TS2554: Expected 4 arguments, but got 3. -node_modules/chrome-devtools-frontend/front_end/Tests.js(221,12): error TS2554: Expected 4 arguments, but got 3. -node_modules/chrome-devtools-frontend/front_end/Tests.js(378,17): error TS2339: Property 'sources' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/Tests.js(397,10): error TS2554: Expected 4 arguments, but got 3. -node_modules/chrome-devtools-frontend/front_end/Tests.js(416,10): error TS2554: Expected 4 arguments, but got 3. -node_modules/chrome-devtools-frontend/front_end/Tests.js(440,10): error TS2554: Expected 4 arguments, but got 3. -node_modules/chrome-devtools-frontend/front_end/Tests.js(475,10): error TS2554: Expected 4 arguments, but got 3. -node_modules/chrome-devtools-frontend/front_end/Tests.js(571,33): error TS2339: Property 'deprecatedRunAfterPendingDispatches' does not exist on type 'typeof InspectorBackend'. -node_modules/chrome-devtools-frontend/front_end/Tests.js(590,57): error TS2554: Expected 0 arguments, but got 1. -node_modules/chrome-devtools-frontend/front_end/Tests.js(591,21): error TS2339: Property '_target' does not exist on type 'DeviceModeModel'. -node_modules/chrome-devtools-frontend/front_end/Tests.js(619,44): error TS2339: Property 'emulationAgent' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/Tests.js(666,38): error TS2339: Property 'inputAgent' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/Tests.js(668,38): error TS2339: Property 'inputAgent' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/Tests.js(673,38): error TS2339: Property 'inputAgent' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/Tests.js(675,38): error TS2339: Property 'inputAgent' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/Tests.js(677,38): error TS2339: Property 'inputAgent' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/Tests.js(679,38): error TS2339: Property 'inputAgent' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/Tests.js(687,12): error TS2554: Expected 3 arguments, but got 2. -node_modules/chrome-devtools-frontend/front_end/Tests.js(711,12): error TS2554: Expected 3 arguments, but got 2. -node_modules/chrome-devtools-frontend/front_end/Tests.js(717,36): error TS2339: Property 'inputAgent' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/Tests.js(719,36): error TS2339: Property 'inputAgent' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/Tests.js(735,10): error TS2554: Expected 4 arguments, but got 3. -node_modules/chrome-devtools-frontend/front_end/Tests.js(814,38): error TS2339: Property 'timeline' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/Tests.js(816,12): error TS2554: Expected 2 arguments, but got 1. -node_modules/chrome-devtools-frontend/front_end/Tests.js(847,14): error TS2554: Expected 2 arguments, but got 1. -node_modules/chrome-devtools-frontend/front_end/Tests.js(848,14): error TS2554: Expected 2 arguments, but got 1. -node_modules/chrome-devtools-frontend/front_end/Tests.js(890,17): error TS2339: Property '_instanceForTest' does not exist on type 'typeof Main'. -node_modules/chrome-devtools-frontend/front_end/Tests.js(893,12): error TS2554: Expected 3 arguments, but got 2. -node_modules/chrome-devtools-frontend/front_end/Tests.js(894,12): error TS2554: Expected 3 arguments, but got 2. -node_modules/chrome-devtools-frontend/front_end/Tests.js(895,12): error TS2554: Expected 3 arguments, but got 2. -node_modules/chrome-devtools-frontend/front_end/Tests.js(897,12): error TS2554: Expected 3 arguments, but got 2. -node_modules/chrome-devtools-frontend/front_end/Tests.js(898,12): error TS2554: Expected 3 arguments, but got 2. -node_modules/chrome-devtools-frontend/front_end/Tests.js(899,12): error TS2554: Expected 3 arguments, but got 2. -node_modules/chrome-devtools-frontend/front_end/Tests.js(917,12): error TS2554: Expected 3 arguments, but got 2. -node_modules/chrome-devtools-frontend/front_end/Tests.js(918,12): error TS2554: Expected 2 arguments, but got 1. -node_modules/chrome-devtools-frontend/front_end/Tests.js(934,12): error TS2554: Expected 3 arguments, but got 2. -node_modules/chrome-devtools-frontend/front_end/Tests.js(935,12): error TS2554: Expected 3 arguments, but got 2. -node_modules/chrome-devtools-frontend/front_end/Tests.js(959,16): error TS2554: Expected 3 arguments, but got 2. -node_modules/chrome-devtools-frontend/front_end/Tests.js(960,16): error TS2554: Expected 3 arguments, but got 2. -node_modules/chrome-devtools-frontend/front_end/Tests.js(961,16): error TS2554: Expected 2 arguments, but got 1. -node_modules/chrome-devtools-frontend/front_end/Tests.js(965,16): error TS2554: Expected 2 arguments, but got 1. -node_modules/chrome-devtools-frontend/front_end/Tests.js(966,16): error TS2554: Expected 3 arguments, but got 2. -node_modules/chrome-devtools-frontend/front_end/Tests.js(967,16): error TS2554: Expected 3 arguments, but got 2. -node_modules/chrome-devtools-frontend/front_end/Tests.js(968,16): error TS2554: Expected 3 arguments, but got 2. -node_modules/chrome-devtools-frontend/front_end/Tests.js(969,16): error TS2554: Expected 3 arguments, but got 2. -node_modules/chrome-devtools-frontend/front_end/Tests.js(970,16): error TS2554: Expected 2 arguments, but got 1. -node_modules/chrome-devtools-frontend/front_end/Tests.js(974,16): error TS2554: Expected 2 arguments, but got 1. -node_modules/chrome-devtools-frontend/front_end/Tests.js(975,16): error TS2554: Expected 2 arguments, but got 1. -node_modules/chrome-devtools-frontend/front_end/Tests.js(976,16): error TS2554: Expected 3 arguments, but got 2. -node_modules/chrome-devtools-frontend/front_end/Tests.js(977,16): error TS2554: Expected 3 arguments, but got 2. -node_modules/chrome-devtools-frontend/front_end/Tests.js(978,16): error TS2554: Expected 3 arguments, but got 2. -node_modules/chrome-devtools-frontend/front_end/Tests.js(986,10): error TS2554: Expected 3 arguments, but got 2. -node_modules/chrome-devtools-frontend/front_end/Tests.js(988,10): error TS2554: Expected 2 arguments, but got 1. -node_modules/chrome-devtools-frontend/front_end/Tests.js(1033,32): error TS2339: Property 'timeline' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/Tests.js(1040,30): error TS2339: Property 'timeline' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/Tests.js(1084,27): error TS2339: Property 'timeline' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/Tests.js(1140,27): error TS2554: Expected 2 arguments, but got 1. -node_modules/chrome-devtools-frontend/front_end/Tests.js(1186,10): error TS2554: Expected 4 arguments, but got 3. -node_modules/chrome-devtools-frontend/front_end/Tests.js(1199,14): error TS2554: Expected 4 arguments, but got 3. -node_modules/chrome-devtools-frontend/front_end/Tests.js(1199,35): error TS2339: Property 'sources' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/Tests.js(1229,10): error TS2339: Property 'uiTests' does not exist on type 'Window & typeof globalThis'. -node_modules/chrome-devtools-frontend/front_end/Tests.js(1229,41): error TS2339: Property 'domAutomationController' does not exist on type 'Window & typeof globalThis'. +../../../../built/local/lib.es5.d.ts(1529,11): error TS2300: Duplicate identifier 'ArrayLike'. +../../../../node_modules/@types/node/globals.d.ts(34,13): error TS2403: Subsequent variable declarations must have the same type. Variable 'module' must be of type '{}', but here has type 'NodeModule'. node_modules/chrome-devtools-frontend/front_end/accessibility/ARIAAttributesView.js(9,13): error TS2345: Argument of type 'TemplateStringsArray' is not assignable to parameter of type 'string | string[]'. Type 'TemplateStringsArray' is missing the following properties from type 'string[]': pop, push, reverse, shift, and 6 more. node_modules/chrome-devtools-frontend/front_end/accessibility/ARIAAttributesView.js(11,48): error TS2345: Argument of type 'TemplateStringsArray' is not assignable to parameter of type 'string | string[]'. - Type 'TemplateStringsArray' is not assignable to type 'string[]'. node_modules/chrome-devtools-frontend/front_end/accessibility/ARIAAttributesView.js(64,18): error TS2339: Property 'setTextContentTruncatedIfNeeded' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/accessibility/ARIAAttributesView.js(77,26): error TS2339: Property 'removeChildren' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/accessibility/ARIAAttributesView.js(79,26): error TS2339: Property 'createChild' does not exist on type 'Element'. @@ -112,7 +25,6 @@ node_modules/chrome-devtools-frontend/front_end/accessibility/ARIAMetadata.js(56 node_modules/chrome-devtools-frontend/front_end/accessibility/ARIAMetadata.js(57,32): error TS2339: Property '_instance' does not exist on type 'typeof ARIAMetadata'. node_modules/chrome-devtools-frontend/front_end/accessibility/ARIAMetadata.js(58,37): error TS2339: Property '_instance' does not exist on type 'typeof ARIAMetadata'. node_modules/chrome-devtools-frontend/front_end/accessibility/AXBreadcrumbsPane.js(10,13): error TS2345: Argument of type 'TemplateStringsArray' is not assignable to parameter of type 'string | string[]'. - Type 'TemplateStringsArray' is not assignable to type 'string[]'. node_modules/chrome-devtools-frontend/front_end/accessibility/AXBreadcrumbsPane.js(14,18): error TS2339: Property 'tabIndex' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/accessibility/AXBreadcrumbsPane.js(24,38): error TS2339: Property 'createChild' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/accessibility/AXBreadcrumbsPane.js(40,51): error TS2339: Property 'focus' does not exist on type 'Element'. @@ -134,7 +46,6 @@ node_modules/chrome-devtools-frontend/front_end/accessibility/AXBreadcrumbsPane. node_modules/chrome-devtools-frontend/front_end/accessibility/AXBreadcrumbsPane.js(208,42): error TS2339: Property 'enclosingNodeOrSelfWithClass' does not exist on type 'EventTarget'. node_modules/chrome-devtools-frontend/front_end/accessibility/AXBreadcrumbsPane.js(265,42): error TS2339: Property 'enclosingNodeOrSelfWithClass' does not exist on type 'EventTarget'. node_modules/chrome-devtools-frontend/front_end/accessibility/AXBreadcrumbsPane.js(274,44): error TS2345: Argument of type 'TemplateStringsArray' is not assignable to parameter of type 'string | string[]'. - Type 'TemplateStringsArray' is not assignable to type 'string[]'. node_modules/chrome-devtools-frontend/front_end/accessibility/AXBreadcrumbsPane.js(298,19): error TS2339: Property 'breadcrumb' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/accessibility/AXBreadcrumbsPane.js(302,23): error TS2339: Property 'tabIndex' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/accessibility/AXBreadcrumbsPane.js(314,15): error TS1110: Type expected. @@ -148,7 +59,6 @@ node_modules/chrome-devtools-frontend/front_end/accessibility/AXBreadcrumbsPane. node_modules/chrome-devtools-frontend/front_end/accessibility/AXBreadcrumbsPane.js(473,24): error TS2694: Namespace 'Protocol' has no exported member 'Accessibility'. node_modules/chrome-devtools-frontend/front_end/accessibility/AXBreadcrumbsPane.js(481,17): error TS2339: Property 'setTextContentTruncatedIfNeeded' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/accessibility/AXBreadcrumbsPane.js(488,40): error TS2345: Argument of type 'TemplateStringsArray' is not assignable to parameter of type 'string | string[]'. - Type 'TemplateStringsArray' is not assignable to type 'string[]'. node_modules/chrome-devtools-frontend/front_end/accessibility/AccessibilityModel.js(10,24): error TS2694: Namespace 'Protocol' has no exported member 'Accessibility'. node_modules/chrome-devtools-frontend/front_end/accessibility/AccessibilityModel.js(54,32): error TS2694: Namespace 'Protocol' has no exported member 'Accessibility'. node_modules/chrome-devtools-frontend/front_end/accessibility/AccessibilityModel.js(61,25): error TS2694: Namespace 'Protocol' has no exported member 'Accessibility'. @@ -165,11 +75,8 @@ node_modules/chrome-devtools-frontend/front_end/accessibility/AccessibilityModel node_modules/chrome-devtools-frontend/front_end/accessibility/AccessibilityModel.js(232,26): error TS2339: Property 'accessibilityAgent' does not exist on type 'Target'. node_modules/chrome-devtools-frontend/front_end/accessibility/AccessibilityModel.js(303,26): error TS2339: Property 'printSelfAndChildren' does not exist on type 'DOMNode'. node_modules/chrome-devtools-frontend/front_end/accessibility/AccessibilityNodeView.js(9,13): error TS2345: Argument of type 'TemplateStringsArray' is not assignable to parameter of type 'string | string[]'. - Type 'TemplateStringsArray' is not assignable to type 'string[]'. node_modules/chrome-devtools-frontend/front_end/accessibility/AccessibilityNodeView.js(13,42): error TS2345: Argument of type 'TemplateStringsArray' is not assignable to parameter of type 'string | string[]'. - Type 'TemplateStringsArray' is not assignable to type 'string[]'. node_modules/chrome-devtools-frontend/front_end/accessibility/AccessibilityNodeView.js(14,43): error TS2345: Argument of type 'TemplateStringsArray' is not assignable to parameter of type 'string | string[]'. - Type 'TemplateStringsArray' is not assignable to type 'string[]'. node_modules/chrome-devtools-frontend/front_end/accessibility/AccessibilityNodeView.js(56,28): error TS2694: Namespace 'Protocol' has no exported member 'Accessibility'. node_modules/chrome-devtools-frontend/front_end/accessibility/AccessibilityNodeView.js(62,61): error TS2694: Namespace 'Protocol' has no exported member 'Accessibility'. node_modules/chrome-devtools-frontend/front_end/accessibility/AccessibilityNodeView.js(78,26): error TS2694: Namespace 'Protocol' has no exported member 'Accessibility'. @@ -207,16 +114,13 @@ node_modules/chrome-devtools-frontend/front_end/accessibility/AccessibilityNodeV node_modules/chrome-devtools-frontend/front_end/accessibility/AccessibilityNodeView.js(408,23): error TS2339: Property 'title' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/accessibility/AccessibilityNodeView.js(419,26): error TS2339: Property 'removeChildren' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/accessibility/AccessibilityNodeView.js(422,93): error TS2345: Argument of type 'TemplateStringsArray' is not assignable to parameter of type 'string | string[]'. - Type 'TemplateStringsArray' is not assignable to type 'string[]'. node_modules/chrome-devtools-frontend/front_end/accessibility/AccessibilityNodeView.js(431,26): error TS2339: Property 'createChild' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/accessibility/AccessibilityNodeView.js(435,28): error TS2339: Property 'createTextChild' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/accessibility/AccessibilityNodeView.js(438,28): error TS2339: Property 'createTextChild' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/accessibility/AccessibilityNodeView.js(445,64): error TS2345: Argument of type 'TemplateStringsArray' is not assignable to parameter of type 'string | string[]'. - Type 'TemplateStringsArray' is not assignable to type 'string[]'. node_modules/chrome-devtools-frontend/front_end/accessibility/AccessibilityNodeView.js(461,24): error TS2694: Namespace 'Protocol' has no exported member 'Accessibility'. node_modules/chrome-devtools-frontend/front_end/accessibility/AccessibilityNodeView.js(492,24): error TS2694: Namespace 'Protocol' has no exported member 'Accessibility'. node_modules/chrome-devtools-frontend/front_end/accessibility/AccessibilityNodeView.js(521,86): error TS2345: Argument of type 'TemplateStringsArray' is not assignable to parameter of type 'string | string[]'. - Type 'TemplateStringsArray' is not assignable to type 'string[]'. node_modules/chrome-devtools-frontend/front_end/accessibility/AccessibilityNodeView.js(522,20): error TS2339: Property 'createTextChild' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/accessibility/AccessibilityNodeView.js(535,24): error TS2694: Namespace 'Protocol' has no exported member 'Accessibility'. node_modules/chrome-devtools-frontend/front_end/accessibility/AccessibilityNodeView.js(619,26): error TS2339: Property 'removeChildren' does not exist on type 'Element'. @@ -238,7 +142,6 @@ node_modules/chrome-devtools-frontend/front_end/animation/AnimationModel.js(54,2 node_modules/chrome-devtools-frontend/front_end/animation/AnimationModel.js(61,31): error TS2339: Property 'AnimationModel' does not exist on type '{ new (effect?: AnimationEffect, timeline?: AnimationTimeline): Animation; prototype: Animation; }'. node_modules/chrome-devtools-frontend/front_end/animation/AnimationModel.js(65,31): error TS2339: Property 'remove' does not exist on type 'string[]'. node_modules/chrome-devtools-frontend/front_end/animation/AnimationModel.js(104,45): error TS2339: Property 'AnimationModel' does not exist on type '{ new (effect?: AnimationEffect, timeline?: AnimationTimeline): Animation; prototype: Animation; }'. -node_modules/chrome-devtools-frontend/front_end/animation/AnimationModel.js(112,20): error TS2345: Argument of type 'number' is not assignable to parameter of type 'boolean'. node_modules/chrome-devtools-frontend/front_end/animation/AnimationModel.js(123,26): error TS2339: Property 'AnimationModel' does not exist on type '{ new (effect?: AnimationEffect, timeline?: AnimationTimeline): Animation; prototype: Animation; }'. node_modules/chrome-devtools-frontend/front_end/animation/AnimationModel.js(168,33): error TS2339: Property 'AnimationModel' does not exist on type '{ new (effect?: AnimationEffect, timeline?: AnimationTimeline): Animation; prototype: Animation; }'. node_modules/chrome-devtools-frontend/front_end/animation/AnimationModel.js(171,11): error TS2339: Property 'AnimationModel' does not exist on type '{ new (effect?: AnimationEffect, timeline?: AnimationTimeline): Animation; prototype: Animation; }'. @@ -267,18 +170,16 @@ node_modules/chrome-devtools-frontend/front_end/animation/AnimationModel.js(583, node_modules/chrome-devtools-frontend/front_end/animation/AnimationModel.js(665,37): error TS2339: Property 'AnimationModel' does not exist on type '{ new (effect?: AnimationEffect, timeline?: AnimationTimeline): Animation; prototype: Animation; }'. node_modules/chrome-devtools-frontend/front_end/animation/AnimationModel.js(705,26): error TS2694: Namespace 'Protocol' has no exported member 'AnimationDispatcher'. node_modules/chrome-devtools-frontend/front_end/animation/AnimationModel.js(708,11): error TS2339: Property 'AnimationDispatcher' does not exist on type '{ new (effect?: AnimationEffect, timeline?: AnimationTimeline): Animation; prototype: Animation; }'. -node_modules/chrome-devtools-frontend/front_end/animation/AnimationModel.js(717,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'AnimationDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/animation/AnimationModel.js(725,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'AnimationDispatcher' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/animation/AnimationModel.js(717,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'AnimationDispatcher' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/animation/AnimationModel.js(725,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'AnimationDispatcher' does not extend another class. node_modules/chrome-devtools-frontend/front_end/animation/AnimationModel.js(731,24): error TS2694: Namespace 'Protocol' has no exported member 'Animation'. -node_modules/chrome-devtools-frontend/front_end/animation/AnimationModel.js(733,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'AnimationDispatcher' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/animation/AnimationModel.js(733,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'AnimationDispatcher' does not extend another class. node_modules/chrome-devtools-frontend/front_end/animation/AnimationModel.js(741,11): error TS2339: Property 'AnimationModel' does not exist on type '{ new (effect?: AnimationEffect, timeline?: AnimationTimeline): Animation; prototype: Animation; }'. node_modules/chrome-devtools-frontend/front_end/animation/AnimationModel.js(751,53): error TS2339: Property 'AnimationModel' does not exist on type '{ new (effect?: AnimationEffect, timeline?: AnimationTimeline): Animation; prototype: Animation; }'. node_modules/chrome-devtools-frontend/front_end/animation/AnimationModel.js(778,24): error TS2694: Namespace 'Protocol' has no exported member 'Page'. node_modules/chrome-devtools-frontend/front_end/animation/AnimationModel.js(811,11): error TS2339: Property 'AnimationModel' does not exist on type '{ new (effect?: AnimationEffect, timeline?: AnimationTimeline): Animation; prototype: Animation; }'. node_modules/chrome-devtools-frontend/front_end/animation/AnimationScreenshotPopover.js(7,11): error TS2339: Property 'AnimationScreenshotPopover' does not exist on type '{ new (effect?: AnimationEffect, timeline?: AnimationTimeline): Animation; prototype: Animation; }'. -node_modules/chrome-devtools-frontend/front_end/animation/AnimationScreenshotPopover.js(13,20): error TS2345: Argument of type 'number' is not assignable to parameter of type 'boolean'. node_modules/chrome-devtools-frontend/front_end/animation/AnimationScreenshotPopover.js(18,39): error TS2345: Argument of type 'new (width?: number, height?: number) => HTMLImageElement' is not assignable to parameter of type 'Node'. - Type 'new (width?: number, height?: number) => HTMLImageElement' is missing the following properties from type 'Node': baseURI, childNodes, firstChild, isConnected, and 47 more. node_modules/chrome-devtools-frontend/front_end/animation/AnimationScreenshotPopover.js(19,13): error TS2339: Property 'style' does not exist on type 'new (width?: number, height?: number) => HTMLImageElement'. node_modules/chrome-devtools-frontend/front_end/animation/AnimationScreenshotPopover.js(22,21): error TS2339: Property 'style' does not exist on type 'new (width?: number, height?: number) => HTMLImageElement'. node_modules/chrome-devtools-frontend/front_end/animation/AnimationScreenshotPopover.js(23,45): error TS2339: Property 'createChild' does not exist on type 'Element'. @@ -292,7 +193,6 @@ node_modules/chrome-devtools-frontend/front_end/animation/AnimationTimeline.js(1 node_modules/chrome-devtools-frontend/front_end/animation/AnimationTimeline.js(19,53): error TS2339: Property 'createChild' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/animation/AnimationTimeline.js(20,44): error TS2339: Property 'createChild' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/animation/AnimationTimeline.js(21,34): error TS2345: Argument of type 'TemplateStringsArray' is not assignable to parameter of type 'string | string[]'. - Type 'TemplateStringsArray' is not assignable to type 'string[]'. node_modules/chrome-devtools-frontend/front_end/animation/AnimationTimeline.js(26,32): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. node_modules/chrome-devtools-frontend/front_end/animation/AnimationTimeline.js(36,47): error TS2339: Property 'AnimationModel' does not exist on type '{ new (effect?: AnimationEffect, timeline?: AnimationTimeline): Animation; prototype: Animation; }'. node_modules/chrome-devtools-frontend/front_end/animation/AnimationTimeline.js(36,63): error TS2345: Argument of type 'this' is not assignable to parameter of type 'SDKModelObserver'. @@ -305,12 +205,12 @@ node_modules/chrome-devtools-frontend/front_end/animation/AnimationTimeline.js(6 Type '(animationModel: AnimationModel) => void' is not assignable to type '(model: T) => void'. Types of parameters 'animationModel' and 'model' are incompatible. Type 'T' is not assignable to type 'AnimationModel'. -node_modules/chrome-devtools-frontend/front_end/animation/AnimationTimeline.js(61,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. +node_modules/chrome-devtools-frontend/front_end/animation/AnimationTimeline.js(61,3): error TS4122: This member cannot have a JSDoc comment with an '@override' tag because it is not declared in the base class 'VBox'. node_modules/chrome-devtools-frontend/front_end/animation/AnimationTimeline.js(70,3): error TS2416: Property 'modelRemoved' in type 'AnimationTimeline' is not assignable to the same property in base type 'SDKModelObserver'. Type '(animationModel: AnimationModel) => void' is not assignable to type '(model: T) => void'. Types of parameters 'animationModel' and 'model' are incompatible. Type 'T' is not assignable to type 'AnimationModel'. -node_modules/chrome-devtools-frontend/front_end/animation/AnimationTimeline.js(70,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. +node_modules/chrome-devtools-frontend/front_end/animation/AnimationTimeline.js(70,3): error TS4122: This member cannot have a JSDoc comment with an '@override' tag because it is not declared in the base class 'VBox'. node_modules/chrome-devtools-frontend/front_end/animation/AnimationTimeline.js(80,19): error TS2339: Property 'AnimationModel' does not exist on type '{ new (effect?: AnimationEffect, timeline?: AnimationTimeline): Animation; prototype: Animation; }'. node_modules/chrome-devtools-frontend/front_end/animation/AnimationTimeline.js(81,47): error TS2339: Property 'AnimationModel' does not exist on type '{ new (effect?: AnimationEffect, timeline?: AnimationTimeline): Animation; prototype: Animation; }'. node_modules/chrome-devtools-frontend/front_end/animation/AnimationTimeline.js(89,19): error TS2339: Property 'AnimationModel' does not exist on type '{ new (effect?: AnimationEffect, timeline?: AnimationTimeline): Animation; prototype: Animation; }'. @@ -319,23 +219,16 @@ node_modules/chrome-devtools-frontend/front_end/animation/AnimationTimeline.js(1 node_modules/chrome-devtools-frontend/front_end/animation/AnimationTimeline.js(105,28): error TS2339: Property 'createChild' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/animation/AnimationTimeline.js(110,48): error TS2339: Property 'createChild' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/animation/AnimationTimeline.js(112,46): error TS2345: Argument of type 'TemplateStringsArray' is not assignable to parameter of type 'string | string[]'. - Type 'TemplateStringsArray' is not assignable to type 'string[]'. node_modules/chrome-devtools-frontend/front_end/animation/AnimationTimeline.js(117,48): error TS2345: Argument of type 'TemplateStringsArray' is not assignable to parameter of type 'string | string[]'. - Type 'TemplateStringsArray' is not assignable to type 'string[]'. node_modules/chrome-devtools-frontend/front_end/animation/AnimationTimeline.js(123,40): error TS2339: Property 'AnimationTimeline' does not exist on type '{ new (effect?: AnimationEffect, timeline?: AnimationTimeline): Animation; prototype: Animation; }'. node_modules/chrome-devtools-frontend/front_end/animation/AnimationTimeline.js(125,45): error TS2345: Argument of type 'TemplateStringsArray' is not assignable to parameter of type 'string | string[]'. - Type 'TemplateStringsArray' is not assignable to type 'string[]'. node_modules/chrome-devtools-frontend/front_end/animation/AnimationTimeline.js(125,74): error TS2345: Argument of type 'TemplateStringsArray' is not assignable to parameter of type 'string | string[]'. - Type 'TemplateStringsArray' is not assignable to type 'string[]'. node_modules/chrome-devtools-frontend/front_end/animation/AnimationTimeline.js(128,24): error TS2345: Argument of type 'TemplateStringsArray' is not assignable to parameter of type 'string | string[]'. - Type 'TemplateStringsArray' is not assignable to type 'string[]'. node_modules/chrome-devtools-frontend/front_end/animation/AnimationTimeline.js(133,50): error TS2339: Property 'createChild' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/animation/AnimationTimeline.js(137,47): error TS2339: Property 'createChild' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/animation/AnimationTimeline.js(138,37): error TS2345: Argument of type 'TemplateStringsArray' is not assignable to parameter of type 'string | string[]'. - Type 'TemplateStringsArray' is not assignable to type 'string[]'. node_modules/chrome-devtools-frontend/front_end/animation/AnimationTimeline.js(139,41): error TS2339: Property 'createChild' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/animation/AnimationTimeline.js(144,50): error TS2345: Argument of type 'TemplateStringsArray' is not assignable to parameter of type 'string | string[]'. - Type 'TemplateStringsArray' is not assignable to type 'string[]'. node_modules/chrome-devtools-frontend/front_end/animation/AnimationTimeline.js(145,36): error TS2339: Property 'AnimationTimeline' does not exist on type '{ new (effect?: AnimationEffect, timeline?: AnimationTimeline): Animation; prototype: Animation; }'. node_modules/chrome-devtools-frontend/front_end/animation/AnimationTimeline.js(169,18): error TS2339: Property 'isDescendant' does not exist on type 'EventTarget'. node_modules/chrome-devtools-frontend/front_end/animation/AnimationTimeline.js(172,5): error TS2741: Property 'hide' is missing in type '{ box: any; show: (popover: GlassPane) => Promise; }' but required in type 'PopoverRequest'. @@ -344,21 +237,16 @@ node_modules/chrome-devtools-frontend/front_end/animation/AnimationTimeline.js(1 node_modules/chrome-devtools-frontend/front_end/animation/AnimationTimeline.js(177,63): error TS2339: Property 'parentElement' does not exist on type 'EventTarget'. node_modules/chrome-devtools-frontend/front_end/animation/AnimationTimeline.js(197,25): error TS2339: Property 'AnimationScreenshotPopover' does not exist on type '{ new (effect?: AnimationEffect, timeline?: AnimationTimeline): Animation; prototype: Animation; }'. node_modules/chrome-devtools-frontend/front_end/animation/AnimationTimeline.js(208,52): error TS2345: Argument of type 'TemplateStringsArray' is not assignable to parameter of type 'string | string[]'. - Type 'TemplateStringsArray' is not assignable to type 'string[]'. node_modules/chrome-devtools-frontend/front_end/animation/AnimationTimeline.js(208,69): error TS2345: Argument of type 'TemplateStringsArray' is not assignable to parameter of type 'string | string[]'. - Type 'TemplateStringsArray' is not assignable to type 'string[]'. node_modules/chrome-devtools-frontend/front_end/animation/AnimationTimeline.js(216,67): error TS2339: Property 'AnimationModel' does not exist on type '{ new (effect?: AnimationEffect, timeline?: AnimationTimeline): Animation; prototype: Animation; }'. node_modules/chrome-devtools-frontend/front_end/animation/AnimationTimeline.js(233,42): error TS2339: Property 'AnimationTimeline' does not exist on type '{ new (effect?: AnimationEffect, timeline?: AnimationTimeline): Animation; prototype: Animation; }'. node_modules/chrome-devtools-frontend/front_end/animation/AnimationTimeline.js(235,47): error TS2339: Property 'AnimationTimeline' does not exist on type '{ new (effect?: AnimationEffect, timeline?: AnimationTimeline): Animation; prototype: Animation; }'. node_modules/chrome-devtools-frontend/front_end/animation/AnimationTimeline.js(244,38): error TS2339: Property 'AnimationTimeline' does not exist on type '{ new (effect?: AnimationEffect, timeline?: AnimationTimeline): Animation; prototype: Animation; }'. node_modules/chrome-devtools-frontend/front_end/animation/AnimationTimeline.js(246,38): error TS2345: Argument of type 'TemplateStringsArray' is not assignable to parameter of type 'string | string[]'. - Type 'TemplateStringsArray' is not assignable to type 'string[]'. node_modules/chrome-devtools-frontend/front_end/animation/AnimationTimeline.js(249,38): error TS2339: Property 'AnimationTimeline' does not exist on type '{ new (effect?: AnimationEffect, timeline?: AnimationTimeline): Animation; prototype: Animation; }'. node_modules/chrome-devtools-frontend/front_end/animation/AnimationTimeline.js(251,38): error TS2345: Argument of type 'TemplateStringsArray' is not assignable to parameter of type 'string | string[]'. - Type 'TemplateStringsArray' is not assignable to type 'string[]'. node_modules/chrome-devtools-frontend/front_end/animation/AnimationTimeline.js(254,38): error TS2339: Property 'AnimationTimeline' does not exist on type '{ new (effect?: AnimationEffect, timeline?: AnimationTimeline): Animation; prototype: Animation; }'. node_modules/chrome-devtools-frontend/front_end/animation/AnimationTimeline.js(256,38): error TS2345: Argument of type 'TemplateStringsArray' is not assignable to parameter of type 'string | string[]'. - Type 'TemplateStringsArray' is not assignable to type 'string[]'. node_modules/chrome-devtools-frontend/front_end/animation/AnimationTimeline.js(359,28): error TS2345: Argument of type '(left: AnimationGroup, right: AnimationGroup) => boolean' is not assignable to parameter of type '(a: any, b: any) => number'. Type 'boolean' is not assignable to type 'number'. node_modules/chrome-devtools-frontend/front_end/animation/AnimationTimeline.js(373,33): error TS2339: Property 'AnimationGroupPreviewUI' does not exist on type '{ new (effect?: AnimationEffect, timeline?: AnimationTimeline): Animation; prototype: Animation; }'. @@ -442,6 +330,13 @@ node_modules/chrome-devtools-frontend/front_end/animation/AnimationUI.js(387,11) node_modules/chrome-devtools-frontend/front_end/animation/AnimationUI.js(394,11): error TS2339: Property 'AnimationUI' does not exist on type '{ new (effect?: AnimationEffect, timeline?: AnimationTimeline): Animation; prototype: Animation; }'. node_modules/chrome-devtools-frontend/front_end/animation/AnimationUI.js(402,11): error TS2339: Property 'AnimationUI' does not exist on type '{ new (effect?: AnimationEffect, timeline?: AnimationTimeline): Animation; prototype: Animation; }'. node_modules/chrome-devtools-frontend/front_end/application_test_runner/AppcacheTestRunner.js(53,47): error TS2339: Property 'resources' does not exist on type 'any[]'. +node_modules/chrome-devtools-frontend/front_end/application_test_runner/AppcacheTestRunner.js(91,21): error TS2304: Cannot find name 'applicationCache'. +node_modules/chrome-devtools-frontend/front_end/application_test_runner/AppcacheTestRunner.js(92,21): error TS2304: Cannot find name 'applicationCache'. +node_modules/chrome-devtools-frontend/front_end/application_test_runner/AppcacheTestRunner.js(93,21): error TS2304: Cannot find name 'applicationCache'. +node_modules/chrome-devtools-frontend/front_end/application_test_runner/AppcacheTestRunner.js(94,21): error TS2304: Cannot find name 'applicationCache'. +node_modules/chrome-devtools-frontend/front_end/application_test_runner/AppcacheTestRunner.js(95,21): error TS2304: Cannot find name 'applicationCache'. +node_modules/chrome-devtools-frontend/front_end/application_test_runner/AppcacheTestRunner.js(96,21): error TS2304: Cannot find name 'applicationCache'. +node_modules/chrome-devtools-frontend/front_end/application_test_runner/AppcacheTestRunner.js(97,57): error TS2304: Cannot find name 'applicationCache'. node_modules/chrome-devtools-frontend/front_end/application_test_runner/AppcacheTestRunner.js(102,25): error TS2339: Property 'resources' does not exist on type 'any[]'. node_modules/chrome-devtools-frontend/front_end/application_test_runner/AppcacheTestRunner.js(130,39): error TS2339: Property 'resources' does not exist on type 'any[]'. node_modules/chrome-devtools-frontend/front_end/application_test_runner/AppcacheTestRunner.js(131,36): error TS2339: Property 'resources' does not exist on type 'any[]'. @@ -474,14 +369,14 @@ node_modules/chrome-devtools-frontend/front_end/audits2/Audits2Panel.js(54,3): e Type '(serviceWorkerManager: ServiceWorkerManager) => void' is not assignable to type '(model: T) => void'. Types of parameters 'serviceWorkerManager' and 'model' are incompatible. Type 'T' is not assignable to type 'ServiceWorkerManager'. -node_modules/chrome-devtools-frontend/front_end/audits2/Audits2Panel.js(54,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Panel'. +node_modules/chrome-devtools-frontend/front_end/audits2/Audits2Panel.js(54,3): error TS4122: This member cannot have a JSDoc comment with an '@override' tag because it is not declared in the base class 'Panel'. node_modules/chrome-devtools-frontend/front_end/audits2/Audits2Panel.js(73,3): error TS2416: Property 'modelRemoved' in type 'Audits2Panel' is not assignable to the same property in base type 'SDKModelObserver'. Type '(serviceWorkerManager: ServiceWorkerManager) => void' is not assignable to type '(model: T) => void'. node_modules/chrome-devtools-frontend/front_end/audits2/Audits2Panel.js(73,3): error TS2416: Property 'modelRemoved' in type 'Audits2Panel' is not assignable to the same property in base type 'SDKModelObserver'. Type '(serviceWorkerManager: ServiceWorkerManager) => void' is not assignable to type '(model: T) => void'. Types of parameters 'serviceWorkerManager' and 'model' are incompatible. Type 'T' is not assignable to type 'ServiceWorkerManager'. -node_modules/chrome-devtools-frontend/front_end/audits2/Audits2Panel.js(73,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Panel'. +node_modules/chrome-devtools-frontend/front_end/audits2/Audits2Panel.js(73,3): error TS4122: This member cannot have a JSDoc comment with an '@override' tag because it is not declared in the base class 'Panel'. node_modules/chrome-devtools-frontend/front_end/audits2/Audits2Panel.js(94,50): error TS2339: Property 'asParsedURL' does not exist on type 'string'. node_modules/chrome-devtools-frontend/front_end/audits2/Audits2Panel.js(162,25): error TS2339: Property 'disabled' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/audits2/Audits2Panel.js(200,57): error TS2339: Property 'consume' does not exist on type 'Event'. @@ -491,19 +386,17 @@ node_modules/chrome-devtools-frontend/front_end/audits2/Audits2Panel.js(252,7): node_modules/chrome-devtools-frontend/front_end/audits2/Audits2Panel.js(256,5): error TS2322: Type 'Promise' is not assignable to type 'Promise'. node_modules/chrome-devtools-frontend/front_end/audits2/Audits2Panel.js(356,23): error TS2339: Property 'disabled' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/audits2/Audits2Panel.js(363,24): error TS2345: Argument of type 'TemplateStringsArray' is not assignable to parameter of type 'string | string[]'. - Type 'TemplateStringsArray' is not assignable to type 'string[]'. node_modules/chrome-devtools-frontend/front_end/audits2/Audits2Panel.js(363,57): error TS2345: Argument of type 'TemplateStringsArray' is not assignable to parameter of type 'string | string[]'. - Type 'TemplateStringsArray' is not assignable to type 'string[]'. node_modules/chrome-devtools-frontend/front_end/audits2/Audits2Panel.js(379,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. node_modules/chrome-devtools-frontend/front_end/audits2/Audits2Panel.js(399,15): error TS2503: Cannot find namespace 'ReportRenderer'. +node_modules/chrome-devtools-frontend/front_end/audits2/Audits2Panel.js(424,13): error TS2339: Property 'file' does not exist on type 'FileSystemEntry'. node_modules/chrome-devtools-frontend/front_end/audits2/Audits2Panel.js(439,37): error TS2503: Cannot find namespace 'ReportRenderer'. node_modules/chrome-devtools-frontend/front_end/audits2/Audits2Panel.js(463,38): error TS2339: Property 'createChild' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/audits2/Audits2Panel.js(553,32): error TS2345: Argument of type 'TemplateStringsArray' is not assignable to parameter of type 'string | string[]'. - Type 'TemplateStringsArray' is not assignable to type 'string[]'. node_modules/chrome-devtools-frontend/front_end/audits2/Audits2Panel.js(679,53): error TS2304: Cannot find name 'ReportRenderer'. -node_modules/chrome-devtools-frontend/front_end/audits2/Audits2Panel.js(685,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ReportRenderer' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/audits2/Audits2Panel.js(685,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'ReportRenderer' does not extend another class. node_modules/chrome-devtools-frontend/front_end/audits2/Audits2Panel.js(690,15): error TS2503: Cannot find namespace 'ReportRenderer'. -node_modules/chrome-devtools-frontend/front_end/audits2/Audits2Panel.js(694,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ReportRenderer' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/audits2/Audits2Panel.js(694,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'ReportRenderer' does not extend another class. node_modules/chrome-devtools-frontend/front_end/audits2/Audits2Panel.js(701,15): error TS2503: Cannot find namespace 'ReportRenderer'. node_modules/chrome-devtools-frontend/front_end/audits2/Audits2Panel.js(764,17): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. node_modules/chrome-devtools-frontend/front_end/audits2/Audits2Panel.js(772,5): error TS2322: Type 'Promise' is not assignable to type 'Promise'. @@ -523,7 +416,7 @@ node_modules/chrome-devtools-frontend/front_end/audits2/Audits2Panel.js(963,14): node_modules/chrome-devtools-frontend/front_end/audits2/Audits2Panel.js(967,41): error TS2304: Cannot find name 'DetailsRenderer'. node_modules/chrome-devtools-frontend/front_end/audits2/Audits2Panel.js(969,15): error TS2304: Cannot find name 'DOM'. node_modules/chrome-devtools-frontend/front_end/audits2/Audits2Panel.js(978,15): error TS2503: Cannot find namespace 'DetailsRenderer'. -node_modules/chrome-devtools-frontend/front_end/audits2/Audits2Panel.js(981,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'DetailsRenderer' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/audits2/Audits2Panel.js(981,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'DetailsRenderer' does not extend another class. node_modules/chrome-devtools-frontend/front_end/audits2/Audits2Panel.js(989,15): error TS2503: Cannot find namespace 'DetailsRenderer'. node_modules/chrome-devtools-frontend/front_end/audits2/Audits2Panel.js(1013,17): error TS2339: Property 'title' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/audits2/lighthouse/renderer/category-renderer.js(12,15): error TS2304: Cannot find name 'DOM'. @@ -572,17 +465,17 @@ node_modules/chrome-devtools-frontend/front_end/audits2/lighthouse/renderer/crc- node_modules/chrome-devtools-frontend/front_end/audits2/lighthouse/renderer/crc-details-renderer.js(161,9): error TS2304: Cannot find name 'Util'. node_modules/chrome-devtools-frontend/front_end/audits2/lighthouse/renderer/crc-details-renderer.js(184,8): error TS2339: Property 'CriticalRequestChainRenderer' does not exist on type 'Window & typeof globalThis'. node_modules/chrome-devtools-frontend/front_end/audits2/lighthouse/renderer/details-renderer.js(12,15): error TS2304: Cannot find name 'DOM'. -node_modules/chrome-devtools-frontend/front_end/audits2/lighthouse/renderer/details-renderer.js(41,42): error TS2352: Conversion of type 'DetailsJSON' to type 'ThumbnailDetails' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first. +node_modules/chrome-devtools-frontend/front_end/audits2/lighthouse/renderer/details-renderer.js(41,49): error TS2352: Conversion of type 'DetailsJSON' to type 'ThumbnailDetails' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first. Type 'DetailsJSON' is missing the following properties from type 'ThumbnailDetails': url, mimeType -node_modules/chrome-devtools-frontend/front_end/audits2/lighthouse/renderer/details-renderer.js(43,42): error TS2352: Conversion of type 'DetailsJSON' to type 'FilmstripDetails' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first. +node_modules/chrome-devtools-frontend/front_end/audits2/lighthouse/renderer/details-renderer.js(43,49): error TS2352: Conversion of type 'DetailsJSON' to type 'FilmstripDetails' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first. Type 'DetailsJSON' is missing the following properties from type 'FilmstripDetails': scale, items -node_modules/chrome-devtools-frontend/front_end/audits2/lighthouse/renderer/details-renderer.js(45,38): error TS2352: Conversion of type 'DetailsJSON' to type 'CardsDetailsJSON' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first. +node_modules/chrome-devtools-frontend/front_end/audits2/lighthouse/renderer/details-renderer.js(45,45): error TS2352: Conversion of type 'DetailsJSON' to type 'CardsDetailsJSON' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first. Type 'DetailsJSON' is missing the following properties from type 'CardsDetailsJSON': header, items -node_modules/chrome-devtools-frontend/front_end/audits2/lighthouse/renderer/details-renderer.js(47,38): error TS2352: Conversion of type 'DetailsJSON' to type 'TableDetailsJSON' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first. +node_modules/chrome-devtools-frontend/front_end/audits2/lighthouse/renderer/details-renderer.js(47,45): error TS2352: Conversion of type 'DetailsJSON' to type 'TableDetailsJSON' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first. Type 'DetailsJSON' is missing the following properties from type 'TableDetailsJSON': header, items, itemHeaders node_modules/chrome-devtools-frontend/front_end/audits2/lighthouse/renderer/details-renderer.js(53,16): error TS2304: Cannot find name 'CriticalRequestChainRenderer'. node_modules/chrome-devtools-frontend/front_end/audits2/lighthouse/renderer/details-renderer.js(54,23): error TS2503: Cannot find namespace 'CriticalRequestChainRenderer'. -node_modules/chrome-devtools-frontend/front_end/audits2/lighthouse/renderer/details-renderer.js(56,37): error TS2352: Conversion of type 'DetailsJSON' to type 'ListDetailsJSON' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first. +node_modules/chrome-devtools-frontend/front_end/audits2/lighthouse/renderer/details-renderer.js(56,44): error TS2352: Conversion of type 'DetailsJSON' to type 'ListDetailsJSON' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first. Type 'DetailsJSON' is missing the following properties from type 'ListDetailsJSON': header, items node_modules/chrome-devtools-frontend/front_end/audits2/lighthouse/renderer/details-renderer.js(73,22): error TS2304: Cannot find name 'Util'. node_modules/chrome-devtools-frontend/front_end/audits2/lighthouse/renderer/details-renderer.js(77,25): error TS1196: Catch clause variable type annotation must be 'any' or 'unknown' if specified. @@ -622,20 +515,19 @@ node_modules/chrome-devtools-frontend/front_end/audits2_worker/Audits2Service.js node_modules/chrome-devtools-frontend/front_end/audits2_worker/Audits2Service.js(35,3): error TS2416: Property 'setNotify' in type 'Audits2Service' is not assignable to the same property in base type 'Service'. Type '(notify: any) => void' is not assignable to type '(notify: any) => (arg0: string) => any'. Type 'void' is not assignable to type '(arg0: string) => any'. -node_modules/chrome-devtools-frontend/front_end/audits2_worker/Audits2Service.js(35,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'Audits2Service' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/audits2_worker/Audits2Service.js(35,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'Audits2Service' does not extend another class. node_modules/chrome-devtools-frontend/front_end/audits2_worker/Audits2Service.js(40,25): error TS2503: Cannot find namespace 'ReportRenderer'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/Audits2Service.js(46,10): error TS2339: Property 'listenForStatus' does not exist on type 'Window & typeof globalThis'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/Audits2Service.js(51,25): error TS2339: Property 'runLighthouseInWorker' does not exist on type 'Window & typeof globalThis'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/Audits2Service.js(52,27): error TS2503: Cannot find namespace 'ReportRenderer'. -node_modules/chrome-devtools-frontend/front_end/audits2_worker/Audits2Service.js(90,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'Audits2Service' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/audits2_worker/Audits2Service.js(90,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'Audits2Service' does not extend another class. node_modules/chrome-devtools-frontend/front_end/audits2_worker/Audits2Service.js(113,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/audits2_worker/Audits2Service.js(128,1): error TS2741: Property 'isVinn' is missing in type 'Window & typeof globalThis' but required in type 'typeof global'. -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(2,1): error TS2591: Cannot find name 'require'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node` and then add `node` to the types field in your tsconfig. -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(2,76): error TS2591: Cannot find name 'require'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node` and then add `node` to the types field in your tsconfig. -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(2,97): error TS2591: Cannot find name 'require'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node` and then add `node` to the types field in your tsconfig. +node_modules/chrome-devtools-frontend/front_end/audits2_worker/Audits2Service.js(131,17): error TS2540: Cannot assign to 'documentElement' because it is a read-only property. +node_modules/chrome-devtools-frontend/front_end/audits2_worker/Audits2Service.js(132,33): error TS2540: Cannot assign to 'style' because it is a read-only property. +node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(2,1): error TS2739: Type '(o: any, u: any) => any' is missing the following properties from type 'NodeRequire': resolve, cache, extensions, main +node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(2,125): error TS2554: Expected 1 arguments, but got 2. +node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(2,145): error TS2554: Expected 1 arguments, but got 2. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(2,203): error TS2339: Property 'code' does not exist on type 'Error'. -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(2,380): error TS2591: Cannot find name 'require'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node` and then add `node` to the types field in your tsconfig. -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(2,401): error TS2591: Cannot find name 'require'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node` and then add `node` to the types field in your tsconfig. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(15,24): error TS2792: Cannot find module './axe-audit'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(49,24): error TS2792: Cannot find module './axe-audit'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(83,24): error TS2792: Cannot find module './axe-audit'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? @@ -699,7 +591,6 @@ node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighth node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(2047,23): error TS2792: Cannot find module 'esprima'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(2144,35): error TS2792: Cannot find module './byte-efficiency-audit'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(2327,35): error TS2792: Cannot find module './byte-efficiency-audit'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(2450,22): error TS2792: Cannot find module 'assert'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(2451,33): error TS2792: Cannot find module 'parse-cache-control'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(2452,35): error TS2792: Cannot find module './byte-efficiency-audit'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(2453,30): error TS2792: Cannot find module '../../report/v2/renderer/util.js'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? @@ -838,7 +729,6 @@ node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighth node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(8112,74): error TS2339: Property 'name' does not exist on type 'ComputedArtifact'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(8227,32): error TS2792: Cannot find module './computed-artifact'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(8228,28): error TS2792: Cannot find module '../../lib/web-inspector'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(8229,22): error TS2792: Cannot find module 'assert'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(8378,32): error TS2792: Cannot find module './computed-artifact'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(8379,19): error TS2792: Cannot find module '../../lib/traces/devtools-timeline-model'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(8405,32): error TS2792: Cannot find module './computed-artifact'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? @@ -882,7 +772,6 @@ node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighth node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(10141,22): error TS2792: Cannot find module '../../../lib/sentry'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(10348,24): error TS2792: Cannot find module '../gatherer'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(10405,24): error TS2792: Cannot find module '../gatherer'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(10406,20): error TS2792: Cannot find module 'zlib'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(10505,24): error TS2792: Cannot find module '../gatherer'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(10513,19): error TS2488: Type 'NodeListOf' must have a '[Symbol.iterator]()' method that returns an iterator. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(10627,24): error TS2792: Cannot find module '../gatherer'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? @@ -933,10 +822,8 @@ node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighth node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(12409,26): error TS2792: Cannot find module './full-config.js'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(12411,28): error TS2792: Cannot find module '../gather/gather-runner'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(12412,19): error TS2792: Cannot find module 'lighthouse-logger'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(12413,20): error TS2792: Cannot find module 'path'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(12414,21): error TS2792: Cannot find module '../audits/audit'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(12415,22): error TS2792: Cannot find module '../runner'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(13511,28): error TS2792: Cannot find module 'events'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(13512,19): error TS2792: Cannot find module 'lighthouse-logger'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(13607,7): error TS2339: Property 'protocolMethod' does not exist on type 'Error'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(13608,7): error TS2339: Property 'protocolError' does not exist on type 'Error'. @@ -946,15 +833,11 @@ node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighth node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(13782,31): error TS2792: Cannot find module '../lib/network-recorder'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(13783,25): error TS2792: Cannot find module '../lib/emulation'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(13784,23): error TS2792: Cannot find module '../lib/element'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(13785,28): error TS2792: Cannot find module 'events'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(13786,19): error TS2792: Cannot find module '../lib/url-shim'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(13787,27): error TS2792: Cannot find module '../lib/traces/trace-parser'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(13789,19): error TS2792: Cannot find module 'lighthouse-logger'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(13790,27): error TS2792: Cannot find module './devtools-log'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(14352,1): error TS2722: Cannot invoke an object which is possibly 'undefined'. -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(14862,47): error TS2339: Property 'prepareStackTrace' does not exist on type 'ErrorConstructor'. -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(14868,15): error TS2339: Property 'prepareStackTrace' does not exist on type 'ErrorConstructor'. -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(14908,15): error TS2339: Property 'prepareStackTrace' does not exist on type 'ErrorConstructor'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(14940,8): error TS2339: Property '____lastLongTask' does not exist on type 'Window & typeof globalThis'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(14946,8): error TS2339: Property '____lastLongTask' does not exist on type 'Window & typeof globalThis'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(14946,41): error TS2339: Property '____lastLongTask' does not exist on type 'Window & typeof globalThis'. @@ -966,13 +849,10 @@ node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighth node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(14995,31): error TS2792: Cannot find module '../lib/network-recorder.js'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(15145,7): error TS2339: Property 'code' does not exist on type 'Error'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(15431,22): error TS2792: Cannot find module '../runner'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(15560,20): error TS2792: Cannot find module 'path'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(15561,19): error TS2792: Cannot find module 'lighthouse-logger'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(15562,22): error TS2792: Cannot find module 'stream'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(15563,23): error TS2792: Cannot find module './traces/pwmetrics-events'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(15564,27): error TS2792: Cannot find module './traces/trace-parser'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(15565,22): error TS2792: Cannot find module 'rimraf'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(15566,22): error TS2792: Cannot find module 'mkdirp'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(15626,5): error TS2304: Cannot find name 'fs'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(15629,17): error TS2304: Cannot find name 'fs'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(15630,28): error TS2304: Cannot find name 'fs'. @@ -1016,15 +896,7 @@ node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighth node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(17308,29): error TS2792: Cannot find module './web-inspector'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(17501,1): error TS2322: Type 'any[]' is not assignable to type 'string'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(17698,30): error TS2792: Cannot find module './web-inspector'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(17699,28): error TS2792: Cannot find module 'events'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(17700,19): error TS2792: Cannot find module 'lighthouse-logger'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(17748,6): error TS2339: Property 'emit' does not exist on type 'NetworkRecorder'. -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(17749,6): error TS2339: Property 'emit' does not exist on type 'NetworkRecorder'. -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(17752,6): error TS2339: Property 'emit' does not exist on type 'NetworkRecorder'. -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(17753,6): error TS2339: Property 'emit' does not exist on type 'NetworkRecorder'. -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(17756,6): error TS2339: Property 'emit' does not exist on type 'NetworkRecorder'. -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(17757,6): error TS2339: Property 'emit' does not exist on type 'NetworkRecorder'. -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(17833,6): error TS2339: Property 'emit' does not exist on type 'NetworkRecorder'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(17932,19): error TS2792: Cannot find module 'lighthouse-logger'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(17968,22): error TS2792: Cannot find module 'raven'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(18010,29): error TS2554: Expected 0 arguments, but got 1. @@ -1046,7 +918,6 @@ node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighth node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(19516,25): error TS2792: Cannot find module './lib/emulation'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(19517,19): error TS2792: Cannot find module 'lighthouse-logger'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(19518,26): error TS2792: Cannot find module './lib/asset-saver'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(19520,20): error TS2792: Cannot find module 'path'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(19521,19): error TS2792: Cannot find module './lib/url-shim'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(19522,22): error TS2792: Cannot find module './lib/sentry'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(19585,1): error TS2322: Type 'Promise' is not assignable to type 'Promise'. @@ -1074,8 +945,6 @@ node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighth node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(20046,8): error TS2339: Property 'getDefaultCategories' does not exist on type 'Window & typeof globalThis'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(20050,8): error TS2339: Property 'listenForStatus' does not exist on type 'Window & typeof globalThis'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(20124,18): error TS2792: Cannot find module 'util/'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(20191,10): error TS2339: Property 'captureStackTrace' does not exist on type 'ErrorConstructor'. -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(20192,7): error TS2339: Property 'captureStackTrace' does not exist on type 'ErrorConstructor'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(20668,17): error TS2792: Cannot find module 'pako/lib/zlib/messages'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(20669,21): error TS2792: Cannot find module 'pako/lib/zlib/zstream'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(20670,26): error TS2792: Cannot find module 'pako/lib/zlib/deflate.js'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? @@ -1085,8 +954,6 @@ node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighth node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(20896,6): error TS2339: Property 'onerror' does not exist on type 'Zlib'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(20929,23): error TS2792: Cannot find module '_stream_transform'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(20931,21): error TS2792: Cannot find module './binding'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(20932,18): error TS2792: Cannot find module 'util'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(20933,20): error TS2792: Cannot find module 'assert'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(20987,8): error TS2350: Only a void function can be called with the 'new' keyword. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(20991,8): error TS2350: Only a void function can be called with the 'new' keyword. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(20995,8): error TS2350: Only a void function can be called with the 'new' keyword. @@ -1094,7 +961,6 @@ node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighth node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(21003,8): error TS2350: Only a void function can be called with the 'new' keyword. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(21007,8): error TS2350: Only a void function can be called with the 'new' keyword. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(21011,8): error TS2350: Only a void function can be called with the 'new' keyword. -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(21017,1): error TS2323: Cannot redeclare exported variable 'deflate'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(21022,19): error TS2350: Only a void function can be called with the 'new' keyword. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(21026,23): error TS2350: Only a void function can be called with the 'new' keyword. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(21034,19): error TS2350: Only a void function can be called with the 'new' keyword. @@ -1129,7 +995,6 @@ node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighth node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(21397,28): error TS2339: Property 'flush' does not exist on type '{}'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(21419,6): error TS2339: Property 'on' does not exist on type 'Zlib'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(21466,6): error TS2339: Property 'push' does not exist on type 'Zlib'. -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(21526,20): error TS2792: Cannot find module 'buffer'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(21646,20): error TS2792: Cannot find module 'base64-js'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(21647,21): error TS2792: Cannot find module 'ieee754'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(21648,21): error TS2792: Cannot find module 'isarray'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? @@ -1179,36 +1044,13 @@ node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighth node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(23247,18): error TS2339: Property 'length' does not exist on type 'Buffer'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(23247,37): error TS2339: Property 'length' does not exist on type 'Buffer'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(23256,26): error TS2339: Property 'length' does not exist on type 'Buffer'. -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(23459,1): error TS2323: Cannot redeclare exported variable 'isArray'. -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(23464,1): error TS2323: Cannot redeclare exported variable 'isBoolean'. -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(23469,1): error TS2323: Cannot redeclare exported variable 'isNull'. -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(23474,1): error TS2323: Cannot redeclare exported variable 'isNullOrUndefined'. -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(23479,1): error TS2323: Cannot redeclare exported variable 'isNumber'. -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(23484,1): error TS2323: Cannot redeclare exported variable 'isString'. -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(23489,1): error TS2323: Cannot redeclare exported variable 'isSymbol'. -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(23494,1): error TS2323: Cannot redeclare exported variable 'isUndefined'. -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(23499,1): error TS2323: Cannot redeclare exported variable 'isRegExp'. -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(23504,1): error TS2323: Cannot redeclare exported variable 'isObject'. -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(23509,1): error TS2323: Cannot redeclare exported variable 'isDate'. -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(23514,1): error TS2323: Cannot redeclare exported variable 'isError'. -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(23519,1): error TS2323: Cannot redeclare exported variable 'isFunction'. -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(23529,1): error TS2323: Cannot redeclare exported variable 'isPrimitive'. -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(23531,1): error TS2323: Cannot redeclare exported variable 'isBuffer'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(23601,5): error TS2339: Property 'context' does not exist on type 'Error'. -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(24073,1): error TS2323: Cannot redeclare exported variable 'Buf8'. -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(24074,1): error TS2323: Cannot redeclare exported variable 'Buf16'. -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(24075,1): error TS2323: Cannot redeclare exported variable 'Buf32'. -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(24078,1): error TS2323: Cannot redeclare exported variable 'Buf8'. -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(24079,1): error TS2323: Cannot redeclare exported variable 'Buf16'. -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(24080,1): error TS2323: Cannot redeclare exported variable 'Buf32'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(24219,19): error TS2792: Cannot find module '../utils/common'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(24220,19): error TS2792: Cannot find module './trees'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(24221,21): error TS2792: Cannot find module './adler32'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(24222,19): error TS2792: Cannot find module './crc32'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(24223,17): error TS2792: Cannot find module './messages'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(26059,1): error TS2323: Cannot redeclare exported variable 'deflate'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(26092,19): error TS2792: Cannot find module '../utils/common'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(27956,16): error TS2323: Cannot redeclare exported variable 'parse'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(27983,29): error TS2792: Cannot find module 'process-nextick-args'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(27987,18): error TS2792: Cannot find module 'core-util-is'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(27991,22): error TS2792: Cannot find module './_stream_readable'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? @@ -1218,11 +1060,8 @@ node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighth node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(28050,18): error TS2792: Cannot find module 'core-util-is'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(28072,29): error TS2792: Cannot find module 'process-nextick-args'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(28076,21): error TS2792: Cannot find module 'isarray'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(28086,16): error TS2792: Cannot find module 'events'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(28104,20): error TS2792: Cannot find module 'buffer'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(28106,24): error TS2792: Cannot find module 'buffer-shims'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(28110,18): error TS2792: Cannot find module 'core-util-is'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(28115,23): error TS2792: Cannot find module 'util'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(28124,24): error TS2792: Cannot find module './internal/streams/BufferList'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(28222,51): error TS2300: Duplicate identifier '_read'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(28457,20): error TS2339: Property 'emit' does not exist on type 'Readable'. @@ -1244,18 +1083,14 @@ node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighth node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(29145,21): error TS2300: Duplicate identifier '_transform'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(29155,13): error TS2339: Property '_readableState' does not exist on type 'Transform'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(29203,29): error TS2792: Cannot find module 'process-nextick-args'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(29207,91): error TS2304: Cannot find name 'setImmediate'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(29217,18): error TS2792: Cannot find module 'core-util-is'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(29238,20): error TS2792: Cannot find module 'buffer'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(29240,24): error TS2792: Cannot find module 'buffer-shims'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(29408,43): error TS2300: Duplicate identifier '_write'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(29418,6): error TS2339: Property 'emit' does not exist on type 'Writable'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(29440,1): error TS2322: Type 'TypeError' is not assignable to type 'boolean'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(29442,1): error TS2322: Type 'TypeError' is not assignable to type 'boolean'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(29659,20): error TS2300: Duplicate identifier '_write'. -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(29752,20): error TS2792: Cannot find module 'buffer'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(29754,24): error TS2792: Cannot find module 'buffer-shims'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(29867,16): error TS2792: Cannot find module 'events'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(29868,22): error TS2792: Cannot find module 'inherits'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(29894,38): error TS2339: Property 'pause' does not exist on type 'Stream'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(29895,8): error TS2339: Property 'pause' does not exist on type 'Stream'. @@ -1274,49 +1109,24 @@ node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighth node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(29956,8): error TS2339: Property 'removeListener' does not exist on type 'Stream'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(29961,8): error TS2339: Property 'on' does not exist on type 'Stream'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(29962,8): error TS2339: Property 'on' does not exist on type 'Stream'. -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(29994,20): error TS2792: Cannot find module 'buffer'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(30114,5): error TS2403: Subsequent variable declarations must have the same type. Variable 'end' must be of type 'any', but here has type 'number'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(30311,40): error TS2769: No overload matches this call. The last overload gave the following error. Argument of type '(x: string) => string | number' is not assignable to parameter of type '(substring: string, ...args: any[]) => string'. Type 'string | number' is not assignable to type 'string'. Type 'number' is not assignable to type 'string'. -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(30729,1): error TS2323: Cannot redeclare exported variable 'isArray'. -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(30734,1): error TS2323: Cannot redeclare exported variable 'isBoolean'. -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(30739,1): error TS2323: Cannot redeclare exported variable 'isNull'. -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(30744,1): error TS2323: Cannot redeclare exported variable 'isNullOrUndefined'. -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(30749,1): error TS2323: Cannot redeclare exported variable 'isNumber'. -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(30754,1): error TS2323: Cannot redeclare exported variable 'isString'. -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(30759,1): error TS2323: Cannot redeclare exported variable 'isSymbol'. -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(30764,1): error TS2323: Cannot redeclare exported variable 'isUndefined'. -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(30769,1): error TS2323: Cannot redeclare exported variable 'isRegExp'. -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(30774,1): error TS2323: Cannot redeclare exported variable 'isObject'. -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(30779,1): error TS2323: Cannot redeclare exported variable 'isDate'. -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(30785,1): error TS2323: Cannot redeclare exported variable 'isError'. -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(30790,1): error TS2323: Cannot redeclare exported variable 'isFunction'. -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(30800,1): error TS2323: Cannot redeclare exported variable 'isPrimitive'. -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(30802,1): error TS2323: Cannot redeclare exported variable 'isBuffer'. -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(30828,1): error TS2323: Cannot redeclare exported variable 'log'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(30874,21): error TS2792: Cannot find module 'debug'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(30875,28): error TS2792: Cannot find module 'events'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(30902,6): error TS2339: Property 'emit' does not exist on type 'Emitter'. -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(30913,6): error TS2339: Property 'emit' does not exist on type 'Emitter'. -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(31089,1): error TS2323: Cannot redeclare exported variable 'log'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(31094,37): error TS2304: Cannot find name 'chrome'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(31095,21): error TS2304: Cannot find name 'chrome'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(31096,1): error TS2304: Cannot find name 'chrome'. -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(31124,40): error TS2339: Property 'process' does not exist on type 'Window & typeof globalThis'. -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(31124,56): error TS2339: Property 'process' does not exist on type 'Window & typeof globalThis'. +node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(31124,64): error TS2339: Property 'type' does not exist on type 'Process'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(31130,128): error TS2551: Property 'WebkitAppearance' does not exist on type 'CSSStyleDeclaration'. Did you mean 'webkitAppearance'? node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(31132,62): error TS2339: Property 'firebug' does not exist on type 'Console'. -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(31289,1): error TS2323: Cannot redeclare exported variable 'names'. -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(31290,1): error TS2323: Cannot redeclare exported variable 'skips'. +node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(31132,86): error TS2339: Property 'exception' does not exist on type 'Console'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(31343,6): error TS2339: Property 'diff' does not exist on type '{ (...args: any[]): void; namespace: any; enabled: any; useColors: any; color: any; }'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(31344,6): error TS2339: Property 'prev' does not exist on type '{ (...args: any[]): void; namespace: any; enabled: any; useColors: any; color: any; }'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(31345,6): error TS2339: Property 'curr' does not exist on type '{ (...args: any[]): void; namespace: any; enabled: any; useColors: any; color: any; }'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(31382,17): error TS2339: Property 'log' does not exist on type '{ (...args: any[]): void; namespace: any; enabled: any; useColors: any; color: any; }'. -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(31410,1): error TS2323: Cannot redeclare exported variable 'names'. -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(31411,1): error TS2323: Cannot redeclare exported variable 'skips'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(39766,1): error TS2304: Cannot find name 'axe'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(39802,8): error TS2339: Property 'requestFileSystem' does not exist on type 'Window & typeof globalThis'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(39802,33): error TS2339: Property 'requestFileSystem' does not exist on type 'Window & typeof globalThis'. @@ -1485,7 +1295,6 @@ node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighth node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(41583,1): error TS2304: Cannot find name 'WebInspector'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(41644,1): error TS2304: Cannot find name 'WebInspector'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(41735,1): error TS2304: Cannot find name 'WebInspector'. -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(41741,16): error TS2345: Argument of type 'RegExpExecArray' is not assignable to parameter of type 'boolean'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(41760,1): error TS2304: Cannot find name 'WebInspector'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(41768,18): error TS2339: Property 'asParsedURL' does not exist on type 'String'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(41770,19): error TS2304: Cannot find name 'WebInspector'. @@ -1664,14 +1473,18 @@ node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighth node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(44356,15): error TS2339: Property 'inverse' does not exist on type 'Map'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(44458,18): error TS2339: Property 'keysArray' does not exist on type 'Map'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(44469,8): error TS2339: Property 'pushAll' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(44495,27): error TS2345: Argument of type 'number' is not assignable to parameter of type 'string'. +node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(44495,27): error TS2769: No overload matches this call. + Overload 1 of 2, '(message?: string, options?: ErrorOptions): Error', gave the following error. + Argument of type 'number' is not assignable to parameter of type 'string'. + Overload 2 of 2, '(message?: string): Error', gave the following error. + Argument of type 'number' is not assignable to parameter of type 'string'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(44525,22): error TS2339: Property '_outgoingCallback' does not exist on type 'CallbackBarrier'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(44535,22): error TS2339: Property '_outgoingCallback' does not exist on type 'CallbackBarrier'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(44536,6): error TS2339: Property '_outgoingCallback' does not exist on type 'CallbackBarrier'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(44538,6): error TS2339: Property '_outgoingCallback' does not exist on type 'CallbackBarrier'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(44568,50): error TS2339: Property '_outgoingCallback' does not exist on type 'CallbackBarrier'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(44569,6): error TS2339: Property '_outgoingCallback' does not exist on type 'CallbackBarrier'. -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(44584,6): error TS2339: Property 'setImmediate' does not exist on type 'Window & typeof globalThis'. +node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(44584,1): error TS2741: Property '__promisify__' is missing in type '(callback: any) => number' but required in type 'typeof setImmediate'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(44595,19): error TS2339: Property 'spread' does not exist on type 'Promise'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(44610,19): error TS2339: Property 'catchException' does not exist on type 'Promise'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(44623,15): error TS2339: Property 'diff' does not exist on type 'Map'. @@ -2038,7 +1851,6 @@ node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighth node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(50577,1): error TS2304: Cannot find name 'WebInspector'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(50632,23): error TS2304: Cannot find name 'WebInspector'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(50642,23): error TS2304: Cannot find name 'WebInspector'. -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(50644,1): error TS2304: Cannot find name 'setImmediate'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(50647,11): error TS2304: Cannot find name 'WebInspector'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(50653,1): error TS2304: Cannot find name 'WebInspector'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(50657,1): error TS2304: Cannot find name 'WebInspector'. @@ -2186,7 +1998,11 @@ node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighth node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(51984,6): error TS2339: Property '_lastSelectedNode' does not exist on type 'TimelineTreeView'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(51987,1): error TS2304: Cannot find name 'WebInspector'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(52034,11): error TS2304: Cannot find name 'WebInspector'. +node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(52066,10): error TS2339: Property 'children' does not exist on type 'never'. +node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(52070,23): error TS2339: Property 'children' does not exist on type 'never'. +node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(52074,23): error TS2339: Property 'children' does not exist on type 'never'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(52076,18): error TS2304: Cannot find name 'WebInspector'. +node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(52076,72): error TS2339: Property 'totalTime' does not exist on type 'never'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(52097,8): error TS2304: Cannot find name 'WebInspector'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(52105,31): error TS2304: Cannot find name 'WebInspector'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(52106,32): error TS2304: Cannot find name 'WebInspector'. @@ -3087,6 +2903,7 @@ node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighth node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(58187,1): error TS2304: Cannot find name 'WebInspector'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(58231,13): error TS2304: Cannot find name 'WebInspector'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(58278,16): error TS2304: Cannot find name 'WebInspector'. +node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(58296,43): error TS2339: Property 'peekLast' does not exist on type 'any[]'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(58309,20): error TS2304: Cannot find name 'WebInspector'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(58322,34): error TS2304: Cannot find name 'WebInspector'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(58343,17): error TS2304: Cannot find name 'WebInspector'. @@ -3111,6 +2928,7 @@ node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighth node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(58426,88): error TS2304: Cannot find name 'WebInspector'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(58434,17): error TS2304: Cannot find name 'WebInspector'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(58451,4): error TS2304: Cannot find name 'WebInspector'. +node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(58462,33): error TS2339: Property 'mergeOrdered' does not exist on type 'any[]'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(58462,60): error TS2304: Cannot find name 'WebInspector'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(58476,18): error TS2304: Cannot find name 'WebInspector'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(58491,25): error TS2339: Property 'peekLast' does not exist on type 'any[]'. @@ -3277,12 +3095,9 @@ node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighth node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(60267,32): error TS2304: Cannot find name 'define'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(60268,1): error TS2304: Cannot find name 'define'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(60346,1): error TS2323: Cannot redeclare exported variable '__esModule'. -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(60397,1): error TS2323: Cannot redeclare exported variable 'parse'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(60430,8): error TS2339: Property 'errors' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(60436,1): error TS2323: Cannot redeclare exported variable 'Syntax'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(60446,1): error TS2323: Cannot redeclare exported variable '__esModule'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(60601,1): error TS2323: Cannot redeclare exported variable '__esModule'. -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(60602,1): error TS2323: Cannot redeclare exported variable 'Syntax'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(60688,1): error TS2323: Cannot redeclare exported variable '__esModule'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(60728,13): error TS2339: Property 'match' does not exist on type 'JSXParser'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(60732,6): error TS2339: Property 'scanner' does not exist on type 'JSXParser'. @@ -3473,7 +3288,6 @@ node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighth node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(66529,1): error TS2323: Cannot redeclare exported variable '__esModule'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(66549,1): error TS2323: Cannot redeclare exported variable '__esModule'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(66811,1): error TS2323: Cannot redeclare exported variable '__esModule'. -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(66965,25): error TS2792: Cannot find module 'querystring'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(66966,18): error TS2792: Cannot find module './trim'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(67117,1): error TS2739: Type 'string[]' is missing the following properties from type 'RegExpExecArray': index, input node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(67300,14): error TS2339: Property 'Channels' does not exist on type '{}'. @@ -3541,7 +3355,6 @@ node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighth node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(68410,39): error TS2339: Property 'height' does not exist on type 'constructor'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(69037,13): error TS2339: Property 'displayName' does not exist on type '(image: any, quality: any) => any'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(69550,21): error TS2345: Argument of type 'number' is not assignable to parameter of type 'string'. -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(69799,1): error TS2323: Cannot redeclare exported variable 'parse'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(70747,4): error TS2531: Object is possibly 'null'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(70747,26): error TS2531: Object is possibly 'null'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(70753,6): error TS2531: Object is possibly 'null'. @@ -3568,16 +3381,16 @@ node_modules/chrome-devtools-frontend/front_end/bindings/BlackboxManager.js(51,3 Type '(debuggerModel: DebuggerModel) => void' is not assignable to type '(model: T) => void'. Types of parameters 'debuggerModel' and 'model' are incompatible. Type 'T' is not assignable to type 'DebuggerModel'. -node_modules/chrome-devtools-frontend/front_end/bindings/BlackboxManager.js(51,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'BlackboxManager' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/bindings/BlackboxManager.js(51,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'BlackboxManager' does not extend another class. node_modules/chrome-devtools-frontend/front_end/bindings/BlackboxManager.js(59,3): error TS2416: Property 'modelRemoved' in type 'BlackboxManager' is not assignable to the same property in base type 'SDKModelObserver'. Type '(debuggerModel: DebuggerModel) => void' is not assignable to type '(model: T) => void'. node_modules/chrome-devtools-frontend/front_end/bindings/BlackboxManager.js(59,3): error TS2416: Property 'modelRemoved' in type 'BlackboxManager' is not assignable to the same property in base type 'SDKModelObserver'. Type '(debuggerModel: DebuggerModel) => void' is not assignable to type '(model: T) => void'. Types of parameters 'debuggerModel' and 'model' are incompatible. Type 'T' is not assignable to type 'DebuggerModel'. -node_modules/chrome-devtools-frontend/front_end/bindings/BlackboxManager.js(59,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'BlackboxManager' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/bindings/BlackboxManager.js(59,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'BlackboxManager' does not extend another class. node_modules/chrome-devtools-frontend/front_end/bindings/BlackboxManager.js(69,72): error TS2339: Property 'getAsArray' does not exist on type 'Setting'. -node_modules/chrome-devtools-frontend/front_end/bindings/BlackboxManager.js(89,27): error TS2339: Property 'lowerBound' does not exist on type 'any[]'. +node_modules/chrome-devtools-frontend/front_end/bindings/BlackboxManager.js(89,27): error TS2339: Property 'lowerBound' does not exist on type 'Protocol.Debugger.ScriptPosition[]'. node_modules/chrome-devtools-frontend/front_end/bindings/BlackboxManager.js(94,26): error TS2694: Namespace 'Protocol' has no exported member 'Debugger'. node_modules/chrome-devtools-frontend/front_end/bindings/BlackboxManager.js(127,64): error TS2339: Property 'asRegExp' does not exist on type 'Setting'. node_modules/chrome-devtools-frontend/front_end/bindings/BlackboxManager.js(140,7): error TS2322: Type 'Promise' is not assignable to type 'Promise'. @@ -3603,14 +3416,14 @@ node_modules/chrome-devtools-frontend/front_end/bindings/BreakpointManager.js(79 Type '(debuggerModel: DebuggerModel) => void' is not assignable to type '(model: T) => void'. Types of parameters 'debuggerModel' and 'model' are incompatible. Type 'T' is not assignable to type 'DebuggerModel'. -node_modules/chrome-devtools-frontend/front_end/bindings/BreakpointManager.js(79,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Object'. +node_modules/chrome-devtools-frontend/front_end/bindings/BreakpointManager.js(79,3): error TS4122: This member cannot have a JSDoc comment with an '@override' tag because it is not declared in the base class 'Object'. node_modules/chrome-devtools-frontend/front_end/bindings/BreakpointManager.js(88,3): error TS2416: Property 'modelRemoved' in type 'BreakpointManager' is not assignable to the same property in base type 'SDKModelObserver'. Type '(debuggerModel: DebuggerModel) => void' is not assignable to type '(model: T) => void'. node_modules/chrome-devtools-frontend/front_end/bindings/BreakpointManager.js(88,3): error TS2416: Property 'modelRemoved' in type 'BreakpointManager' is not assignable to the same property in base type 'SDKModelObserver'. Type '(debuggerModel: DebuggerModel) => void' is not assignable to type '(model: T) => void'. Types of parameters 'debuggerModel' and 'model' are incompatible. Type 'T' is not assignable to type 'DebuggerModel'. -node_modules/chrome-devtools-frontend/front_end/bindings/BreakpointManager.js(88,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Object'. +node_modules/chrome-devtools-frontend/front_end/bindings/BreakpointManager.js(88,3): error TS4122: This member cannot have a JSDoc comment with an '@override' tag because it is not declared in the base class 'Object'. node_modules/chrome-devtools-frontend/front_end/bindings/BreakpointManager.js(97,56): error TS2345: Argument of type 'string' is not assignable to parameter of type 'K'. 'K' could be instantiated with an arbitrary type which could be unrelated to 'string'. node_modules/chrome-devtools-frontend/front_end/bindings/BreakpointManager.js(97,61): error TS2339: Property 'valuesArray' does not exist on type 'Set'. @@ -3643,14 +3456,14 @@ node_modules/chrome-devtools-frontend/front_end/bindings/BreakpointManager.js(52 Type '(debuggerModel: DebuggerModel) => void' is not assignable to type '(model: T) => void'. Types of parameters 'debuggerModel' and 'model' are incompatible. Type 'T' is not assignable to type 'DebuggerModel'. -node_modules/chrome-devtools-frontend/front_end/bindings/BreakpointManager.js(525,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'Breakpoint' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/bindings/BreakpointManager.js(525,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'Breakpoint' does not extend another class. node_modules/chrome-devtools-frontend/front_end/bindings/BreakpointManager.js(535,3): error TS2416: Property 'modelRemoved' in type 'Breakpoint' is not assignable to the same property in base type 'SDKModelObserver'. Type '(debuggerModel: DebuggerModel) => void' is not assignable to type '(model: T) => void'. node_modules/chrome-devtools-frontend/front_end/bindings/BreakpointManager.js(535,3): error TS2416: Property 'modelRemoved' in type 'Breakpoint' is not assignable to the same property in base type 'SDKModelObserver'. Type '(debuggerModel: DebuggerModel) => void' is not assignable to type '(model: T) => void'. Types of parameters 'debuggerModel' and 'model' are incompatible. Type 'T' is not assignable to type 'DebuggerModel'. -node_modules/chrome-devtools-frontend/front_end/bindings/BreakpointManager.js(535,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'Breakpoint' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/bindings/BreakpointManager.js(535,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'Breakpoint' does not extend another class. node_modules/chrome-devtools-frontend/front_end/bindings/BreakpointManager.js(536,50): error TS2339: Property 'remove' does not exist on type 'Map'. node_modules/chrome-devtools-frontend/front_end/bindings/BreakpointManager.js(655,51): error TS2339: Property 'valuesArray' does not exist on type 'Map'. node_modules/chrome-devtools-frontend/front_end/bindings/BreakpointManager.js(667,51): error TS2339: Property 'valuesArray' does not exist on type 'Map'. @@ -3670,14 +3483,14 @@ node_modules/chrome-devtools-frontend/front_end/bindings/CSSWorkspaceBinding.js( Type '(cssModel: CSSModel) => void' is not assignable to type '(model: T) => void'. Types of parameters 'cssModel' and 'model' are incompatible. Type 'T' is not assignable to type 'CSSModel'. -node_modules/chrome-devtools-frontend/front_end/bindings/CSSWorkspaceBinding.js(27,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'CSSWorkspaceBinding' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/bindings/CSSWorkspaceBinding.js(27,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'CSSWorkspaceBinding' does not extend another class. node_modules/chrome-devtools-frontend/front_end/bindings/CSSWorkspaceBinding.js(35,3): error TS2416: Property 'modelRemoved' in type 'CSSWorkspaceBinding' is not assignable to the same property in base type 'SDKModelObserver'. Type '(cssModel: CSSModel) => void' is not assignable to type '(model: T) => void'. node_modules/chrome-devtools-frontend/front_end/bindings/CSSWorkspaceBinding.js(35,3): error TS2416: Property 'modelRemoved' in type 'CSSWorkspaceBinding' is not assignable to the same property in base type 'SDKModelObserver'. Type '(cssModel: CSSModel) => void' is not assignable to type '(model: T) => void'. Types of parameters 'cssModel' and 'model' are incompatible. Type 'T' is not assignable to type 'CSSModel'. -node_modules/chrome-devtools-frontend/front_end/bindings/CSSWorkspaceBinding.js(35,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'CSSWorkspaceBinding' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/bindings/CSSWorkspaceBinding.js(35,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'CSSWorkspaceBinding' does not extend another class. node_modules/chrome-devtools-frontend/front_end/bindings/CSSWorkspaceBinding.js(49,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. node_modules/chrome-devtools-frontend/front_end/bindings/CSSWorkspaceBinding.js(104,9): error TS2403: Subsequent variable declarations must have the same type. Variable 'rawLocations' must be of type 'CSSLocation[]', but here has type 'any[]'. node_modules/chrome-devtools-frontend/front_end/bindings/CSSWorkspaceBinding.js(106,20): error TS2339: Property 'pushAll' does not exist on type 'CSSLocation[]'. @@ -3707,33 +3520,32 @@ node_modules/chrome-devtools-frontend/front_end/bindings/CSSWorkspaceBinding.js( node_modules/chrome-devtools-frontend/front_end/bindings/CSSWorkspaceBinding.js(221,31): error TS2345: Argument of type 'CSSStyleSheetHeader' is not assignable to parameter of type 'K'. 'K' could be instantiated with an arbitrary type which could be unrelated to 'CSSStyleSheetHeader'. node_modules/chrome-devtools-frontend/front_end/bindings/CSSWorkspaceBinding.js(261,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/bindings/CompilerScriptMapping.js(132,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'CompilerScriptMapping' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/bindings/CompilerScriptMapping.js(167,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'CompilerScriptMapping' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/bindings/CompilerScriptMapping.js(295,10): error TS4112: This member cannot have an 'override' modifier because its containing class 'CompilerScriptMapping' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/bindings/CompilerScriptMapping.js(132,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'CompilerScriptMapping' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/bindings/CompilerScriptMapping.js(167,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'CompilerScriptMapping' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/bindings/CompilerScriptMapping.js(295,10): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'CompilerScriptMapping' does not extend another class. node_modules/chrome-devtools-frontend/front_end/bindings/ContentProviderBasedProject.js(54,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/bindings/ContentProviderBasedProject.js(56,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'ProjectStore'. -node_modules/chrome-devtools-frontend/front_end/bindings/ContentProviderBasedProject.js(67,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'ProjectStore'. -node_modules/chrome-devtools-frontend/front_end/bindings/ContentProviderBasedProject.js(76,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'ProjectStore'. -node_modules/chrome-devtools-frontend/front_end/bindings/ContentProviderBasedProject.js(84,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'ProjectStore'. +node_modules/chrome-devtools-frontend/front_end/bindings/ContentProviderBasedProject.js(56,3): error TS4122: This member cannot have a JSDoc comment with an '@override' tag because it is not declared in the base class 'ProjectStore'. +node_modules/chrome-devtools-frontend/front_end/bindings/ContentProviderBasedProject.js(67,3): error TS4122: This member cannot have a JSDoc comment with an '@override' tag because it is not declared in the base class 'ProjectStore'. +node_modules/chrome-devtools-frontend/front_end/bindings/ContentProviderBasedProject.js(76,3): error TS4122: This member cannot have a JSDoc comment with an '@override' tag because it is not declared in the base class 'ProjectStore'. +node_modules/chrome-devtools-frontend/front_end/bindings/ContentProviderBasedProject.js(84,3): error TS4122: This member cannot have a JSDoc comment with an '@override' tag because it is not declared in the base class 'ProjectStore'. node_modules/chrome-devtools-frontend/front_end/bindings/ContentProviderBasedProject.js(93,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/bindings/ContentProviderBasedProject.js(95,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'ProjectStore'. -node_modules/chrome-devtools-frontend/front_end/bindings/ContentProviderBasedProject.js(104,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'ProjectStore'. -node_modules/chrome-devtools-frontend/front_end/bindings/ContentProviderBasedProject.js(118,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'ProjectStore'. -node_modules/chrome-devtools-frontend/front_end/bindings/ContentProviderBasedProject.js(126,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'ProjectStore'. +node_modules/chrome-devtools-frontend/front_end/bindings/ContentProviderBasedProject.js(95,3): error TS4122: This member cannot have a JSDoc comment with an '@override' tag because it is not declared in the base class 'ProjectStore'. +node_modules/chrome-devtools-frontend/front_end/bindings/ContentProviderBasedProject.js(104,3): error TS4122: This member cannot have a JSDoc comment with an '@override' tag because it is not declared in the base class 'ProjectStore'. +node_modules/chrome-devtools-frontend/front_end/bindings/ContentProviderBasedProject.js(118,3): error TS4122: This member cannot have a JSDoc comment with an '@override' tag because it is not declared in the base class 'ProjectStore'. +node_modules/chrome-devtools-frontend/front_end/bindings/ContentProviderBasedProject.js(126,3): error TS4122: This member cannot have a JSDoc comment with an '@override' tag because it is not declared in the base class 'ProjectStore'. node_modules/chrome-devtools-frontend/front_end/bindings/ContentProviderBasedProject.js(134,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/bindings/ContentProviderBasedProject.js(136,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'ProjectStore'. -node_modules/chrome-devtools-frontend/front_end/bindings/ContentProviderBasedProject.js(162,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'ProjectStore'. -node_modules/chrome-devtools-frontend/front_end/bindings/ContentProviderBasedProject.js(170,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'ProjectStore'. +node_modules/chrome-devtools-frontend/front_end/bindings/ContentProviderBasedProject.js(136,3): error TS4122: This member cannot have a JSDoc comment with an '@override' tag because it is not declared in the base class 'ProjectStore'. +node_modules/chrome-devtools-frontend/front_end/bindings/ContentProviderBasedProject.js(162,3): error TS4122: This member cannot have a JSDoc comment with an '@override' tag because it is not declared in the base class 'ProjectStore'. +node_modules/chrome-devtools-frontend/front_end/bindings/ContentProviderBasedProject.js(170,3): error TS4122: This member cannot have a JSDoc comment with an '@override' tag because it is not declared in the base class 'ProjectStore'. node_modules/chrome-devtools-frontend/front_end/bindings/ContentProviderBasedProject.js(180,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/bindings/ContentProviderBasedProject.js(182,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'ProjectStore'. -node_modules/chrome-devtools-frontend/front_end/bindings/ContentProviderBasedProject.js(189,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'ProjectStore'. -node_modules/chrome-devtools-frontend/front_end/bindings/ContentProviderBasedProject.js(197,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'ProjectStore'. -node_modules/chrome-devtools-frontend/front_end/bindings/ContentProviderBasedProject.js(203,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'ProjectStore'. +node_modules/chrome-devtools-frontend/front_end/bindings/ContentProviderBasedProject.js(182,3): error TS4122: This member cannot have a JSDoc comment with an '@override' tag because it is not declared in the base class 'ProjectStore'. +node_modules/chrome-devtools-frontend/front_end/bindings/ContentProviderBasedProject.js(189,3): error TS4122: This member cannot have a JSDoc comment with an '@override' tag because it is not declared in the base class 'ProjectStore'. +node_modules/chrome-devtools-frontend/front_end/bindings/ContentProviderBasedProject.js(197,3): error TS4122: This member cannot have a JSDoc comment with an '@override' tag because it is not declared in the base class 'ProjectStore'. +node_modules/chrome-devtools-frontend/front_end/bindings/ContentProviderBasedProject.js(203,3): error TS4122: This member cannot have a JSDoc comment with an '@override' tag because it is not declared in the base class 'ProjectStore'. node_modules/chrome-devtools-frontend/front_end/bindings/ContentProviderBasedProject.js(209,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/bindings/ContentProviderBasedProject.js(223,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'ProjectStore'. -node_modules/chrome-devtools-frontend/front_end/bindings/ContentProviderBasedProject.js(235,9): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'ProjectStore'. -node_modules/chrome-devtools-frontend/front_end/bindings/ContentProviderBasedProject.js(266,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'ProjectStore'. -node_modules/chrome-devtools-frontend/front_end/bindings/ContentProviderBasedProject.js(267,5): error TS2304: Cannot find name 'setImmediate'. +node_modules/chrome-devtools-frontend/front_end/bindings/ContentProviderBasedProject.js(223,3): error TS4122: This member cannot have a JSDoc comment with an '@override' tag because it is not declared in the base class 'ProjectStore'. +node_modules/chrome-devtools-frontend/front_end/bindings/ContentProviderBasedProject.js(235,9): error TS4122: This member cannot have a JSDoc comment with an '@override' tag because it is not declared in the base class 'ProjectStore'. +node_modules/chrome-devtools-frontend/front_end/bindings/ContentProviderBasedProject.js(266,3): error TS4122: This member cannot have a JSDoc comment with an '@override' tag because it is not declared in the base class 'ProjectStore'. node_modules/chrome-devtools-frontend/front_end/bindings/DebuggerWorkspaceBinding.js(26,52): error TS2345: Argument of type 'this' is not assignable to parameter of type 'SDKModelObserver'. Type 'DebuggerWorkspaceBinding' is not assignable to type 'SDKModelObserver'. Types of property 'modelAdded' are incompatible. @@ -3744,22 +3556,20 @@ node_modules/chrome-devtools-frontend/front_end/bindings/DebuggerWorkspaceBindin Type '(debuggerModel: DebuggerModel) => void' is not assignable to type '(model: T) => void'. Types of parameters 'debuggerModel' and 'model' are incompatible. Type 'T' is not assignable to type 'DebuggerModel'. -node_modules/chrome-devtools-frontend/front_end/bindings/DebuggerWorkspaceBinding.js(40,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'DebuggerWorkspaceBinding' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/bindings/DebuggerWorkspaceBinding.js(40,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'DebuggerWorkspaceBinding' does not extend another class. node_modules/chrome-devtools-frontend/front_end/bindings/DebuggerWorkspaceBinding.js(48,3): error TS2416: Property 'modelRemoved' in type 'DebuggerWorkspaceBinding' is not assignable to the same property in base type 'SDKModelObserver'. Type '(debuggerModel: DebuggerModel) => void' is not assignable to type '(model: T) => void'. node_modules/chrome-devtools-frontend/front_end/bindings/DebuggerWorkspaceBinding.js(48,3): error TS2416: Property 'modelRemoved' in type 'DebuggerWorkspaceBinding' is not assignable to the same property in base type 'SDKModelObserver'. Type '(debuggerModel: DebuggerModel) => void' is not assignable to type '(model: T) => void'. Types of parameters 'debuggerModel' and 'model' are incompatible. Type 'T' is not assignable to type 'DebuggerModel'. -node_modules/chrome-devtools-frontend/front_end/bindings/DebuggerWorkspaceBinding.js(48,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'DebuggerWorkspaceBinding' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/bindings/DebuggerWorkspaceBinding.js(48,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'DebuggerWorkspaceBinding' does not extend another class. node_modules/chrome-devtools-frontend/front_end/bindings/DebuggerWorkspaceBinding.js(51,31): error TS2339: Property 'remove' does not exist on type 'Map'. node_modules/chrome-devtools-frontend/front_end/bindings/DebuggerWorkspaceBinding.js(65,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. node_modules/chrome-devtools-frontend/front_end/bindings/DebuggerWorkspaceBinding.js(76,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/bindings/DebuggerWorkspaceBinding.js(81,20): error TS2345: Argument of type 'number' is not assignable to parameter of type 'boolean'. node_modules/chrome-devtools-frontend/front_end/bindings/DebuggerWorkspaceBinding.js(90,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. node_modules/chrome-devtools-frontend/front_end/bindings/DebuggerWorkspaceBinding.js(207,34): error TS2339: Property 'valuesArray' does not exist on type 'Set'. node_modules/chrome-devtools-frontend/front_end/bindings/DebuggerWorkspaceBinding.js(267,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/bindings/DebuggerWorkspaceBinding.js(273,20): error TS2345: Argument of type 'Script' is not assignable to parameter of type 'boolean'. node_modules/chrome-devtools-frontend/front_end/bindings/DebuggerWorkspaceBinding.js(276,25): error TS2345: Argument of type 'Script' is not assignable to parameter of type 'K'. 'K' could be instantiated with an arbitrary type which could be unrelated to 'Script'. node_modules/chrome-devtools-frontend/front_end/bindings/DebuggerWorkspaceBinding.js(285,28): error TS2345: Argument of type 'Script' is not assignable to parameter of type 'K'. @@ -3769,41 +3579,38 @@ node_modules/chrome-devtools-frontend/front_end/bindings/DebuggerWorkspaceBindin node_modules/chrome-devtools-frontend/front_end/bindings/DebuggerWorkspaceBinding.js(293,16): error TS2339: Property 'update' does not exist on type 'V'. node_modules/chrome-devtools-frontend/front_end/bindings/DebuggerWorkspaceBinding.js(349,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. node_modules/chrome-devtools-frontend/front_end/bindings/DebuggerWorkspaceBinding.js(389,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/bindings/DebuggerWorkspaceBinding.js(432,5): error TS2304: Cannot find name 'setImmediate'. node_modules/chrome-devtools-frontend/front_end/bindings/DebuggerWorkspaceBinding.js(452,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. node_modules/chrome-devtools-frontend/front_end/bindings/DebuggerWorkspaceBinding.js(460,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/bindings/DefaultScriptMapping.js(69,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'DefaultScriptMapping' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/bindings/DefaultScriptMapping.js(88,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'DefaultScriptMapping' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/bindings/DefaultScriptMapping.js(69,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'DefaultScriptMapping' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/bindings/DefaultScriptMapping.js(88,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'DefaultScriptMapping' does not extend another class. node_modules/chrome-devtools-frontend/front_end/bindings/FileUtils.js(38,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. node_modules/chrome-devtools-frontend/front_end/bindings/FileUtils.js(43,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. node_modules/chrome-devtools-frontend/front_end/bindings/FileUtils.js(48,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. node_modules/chrome-devtools-frontend/front_end/bindings/FileUtils.js(55,16): error TS2304: Cannot find name 'FileError'. node_modules/chrome-devtools-frontend/front_end/bindings/FileUtils.js(78,17): error TS2304: Cannot find name 'FileError'. -node_modules/chrome-devtools-frontend/front_end/bindings/FileUtils.js(100,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ChunkedFileReader' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/bindings/FileUtils.js(108,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ChunkedFileReader' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/bindings/FileUtils.js(116,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ChunkedFileReader' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/bindings/FileUtils.js(124,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ChunkedFileReader' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/bindings/FileUtils.js(100,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'ChunkedFileReader' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/bindings/FileUtils.js(108,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'ChunkedFileReader' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/bindings/FileUtils.js(116,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'ChunkedFileReader' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/bindings/FileUtils.js(124,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'ChunkedFileReader' does not extend another class. node_modules/chrome-devtools-frontend/front_end/bindings/FileUtils.js(125,23): error TS2339: Property 'name' does not exist on type 'Blob'. node_modules/chrome-devtools-frontend/front_end/bindings/FileUtils.js(130,16): error TS2304: Cannot find name 'FileError'. -node_modules/chrome-devtools-frontend/front_end/bindings/FileUtils.js(132,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ChunkedFileReader' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/bindings/FileUtils.js(132,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'ChunkedFileReader' does not extend another class. node_modules/chrome-devtools-frontend/front_end/bindings/FileUtils.js(143,22): error TS2339: Property 'readyState' does not exist on type 'EventTarget'. node_modules/chrome-devtools-frontend/front_end/bindings/FileUtils.js(146,31): error TS2339: Property 'result' does not exist on type 'EventTarget'. node_modules/chrome-devtools-frontend/front_end/bindings/FileUtils.js(178,32): error TS2339: Property 'error' does not exist on type 'EventTarget'. node_modules/chrome-devtools-frontend/front_end/bindings/FileUtils.js(194,23): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/bindings/FileUtils.js(208,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'FileOutputStream' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/bindings/FileUtils.js(208,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'FileOutputStream' does not extend another class. node_modules/chrome-devtools-frontend/front_end/bindings/FileUtils.js(210,33): error TS2345: Argument of type '(value: any) => void' is not assignable to parameter of type '() => any'. -node_modules/chrome-devtools-frontend/front_end/bindings/FileUtils.js(218,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'FileOutputStream' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/bindings/FileUtils.js(218,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'FileOutputStream' does not extend another class. node_modules/chrome-devtools-frontend/front_end/bindings/LiveLocation.js(11,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. node_modules/chrome-devtools-frontend/front_end/bindings/LiveLocation.js(18,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. node_modules/chrome-devtools-frontend/front_end/bindings/LiveLocation.js(29,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/bindings/LiveLocation.js(41,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'LiveLocationWithPool' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/bindings/LiveLocation.js(49,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'LiveLocationWithPool' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/bindings/LiveLocation.js(56,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'LiveLocationWithPool' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/bindings/LiveLocation.js(65,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'LiveLocationWithPool' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/bindings/NetworkProject.js(49,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Object'. -node_modules/chrome-devtools-frontend/front_end/bindings/NetworkProject.js(57,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Object'. -node_modules/chrome-devtools-frontend/front_end/bindings/PresentationConsoleMessageHelper.js(55,18): error TS2304: Cannot find name 'setImmediate'. -node_modules/chrome-devtools-frontend/front_end/bindings/PresentationConsoleMessageHelper.js(58,18): error TS2304: Cannot find name 'setImmediate'. +node_modules/chrome-devtools-frontend/front_end/bindings/LiveLocation.js(41,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'LiveLocationWithPool' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/bindings/LiveLocation.js(49,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'LiveLocationWithPool' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/bindings/LiveLocation.js(56,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'LiveLocationWithPool' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/bindings/LiveLocation.js(65,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'LiveLocationWithPool' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/bindings/NetworkProject.js(49,3): error TS4122: This member cannot have a JSDoc comment with an '@override' tag because it is not declared in the base class 'Object'. +node_modules/chrome-devtools-frontend/front_end/bindings/NetworkProject.js(57,3): error TS4122: This member cannot have a JSDoc comment with an '@override' tag because it is not declared in the base class 'Object'. node_modules/chrome-devtools-frontend/front_end/bindings/ResourceMapping.js(17,56): error TS2345: Argument of type 'this' is not assignable to parameter of type 'SDKModelObserver'. Type 'ResourceMapping' is not assignable to type 'SDKModelObserver'. Types of property 'modelAdded' are incompatible. @@ -3814,32 +3621,30 @@ node_modules/chrome-devtools-frontend/front_end/bindings/ResourceMapping.js(24,3 Type '(resourceTreeModel: ResourceTreeModel) => void' is not assignable to type '(model: T) => void'. Types of parameters 'resourceTreeModel' and 'model' are incompatible. Type 'T' is not assignable to type 'ResourceTreeModel'. -node_modules/chrome-devtools-frontend/front_end/bindings/ResourceMapping.js(24,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ResourceMapping' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/bindings/ResourceMapping.js(24,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'ResourceMapping' does not extend another class. node_modules/chrome-devtools-frontend/front_end/bindings/ResourceMapping.js(33,3): error TS2416: Property 'modelRemoved' in type 'ResourceMapping' is not assignable to the same property in base type 'SDKModelObserver'. Type '(resourceTreeModel: ResourceTreeModel) => void' is not assignable to type '(model: T) => void'. node_modules/chrome-devtools-frontend/front_end/bindings/ResourceMapping.js(33,3): error TS2416: Property 'modelRemoved' in type 'ResourceMapping' is not assignable to the same property in base type 'SDKModelObserver'. Type '(resourceTreeModel: ResourceTreeModel) => void' is not assignable to type '(model: T) => void'. Types of parameters 'resourceTreeModel' and 'model' are incompatible. Type 'T' is not assignable to type 'ResourceTreeModel'. -node_modules/chrome-devtools-frontend/front_end/bindings/ResourceMapping.js(33,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ResourceMapping' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/bindings/ResourceMapping.js(33,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'ResourceMapping' does not extend another class. node_modules/chrome-devtools-frontend/front_end/bindings/ResourceMapping.js(197,40): error TS2339: Property 'valuesArray' does not exist on type 'Map'. node_modules/chrome-devtools-frontend/front_end/bindings/ResourceMapping.js(204,40): error TS2339: Property 'valuesArray' does not exist on type 'Map'. -node_modules/chrome-devtools-frontend/front_end/bindings/ResourceMapping.js(253,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'Binding' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/bindings/ResourceMapping.js(253,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'Binding' does not extend another class. node_modules/chrome-devtools-frontend/front_end/bindings/ResourceMapping.js(254,28): error TS2339: Property 'firstValue' does not exist on type 'Set'. -node_modules/chrome-devtools-frontend/front_end/bindings/ResourceMapping.js(261,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'Binding' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/bindings/ResourceMapping.js(261,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'Binding' does not extend another class. node_modules/chrome-devtools-frontend/front_end/bindings/ResourceMapping.js(262,28): error TS2339: Property 'firstValue' does not exist on type 'Set'. -node_modules/chrome-devtools-frontend/front_end/bindings/ResourceMapping.js(269,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'Binding' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/bindings/ResourceMapping.js(269,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'Binding' does not extend another class. node_modules/chrome-devtools-frontend/front_end/bindings/ResourceMapping.js(270,28): error TS2339: Property 'firstValue' does not exist on type 'Set'. -node_modules/chrome-devtools-frontend/front_end/bindings/ResourceMapping.js(277,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'Binding' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/bindings/ResourceMapping.js(277,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'Binding' does not extend another class. node_modules/chrome-devtools-frontend/front_end/bindings/ResourceMapping.js(278,28): error TS2339: Property 'firstValue' does not exist on type 'Set'. -node_modules/chrome-devtools-frontend/front_end/bindings/ResourceMapping.js(288,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'Binding' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/bindings/ResourceMapping.js(288,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'Binding' does not extend another class. node_modules/chrome-devtools-frontend/front_end/bindings/ResourceMapping.js(289,28): error TS2339: Property 'firstValue' does not exist on type 'Set'. -node_modules/chrome-devtools-frontend/front_end/bindings/ResourceScriptMapping.js(65,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ResourceScriptMapping' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/bindings/ResourceScriptMapping.js(93,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ResourceScriptMapping' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/bindings/ResourceScriptMapping.js(65,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'ResourceScriptMapping' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/bindings/ResourceScriptMapping.js(93,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'ResourceScriptMapping' does not extend another class. node_modules/chrome-devtools-frontend/front_end/bindings/ResourceScriptMapping.js(137,38): error TS2339: Property 'remove' does not exist on type 'Map'. -node_modules/chrome-devtools-frontend/front_end/bindings/ResourceScriptMapping.js(202,20): error TS2345: Argument of type 'number' is not assignable to parameter of type 'boolean'. node_modules/chrome-devtools-frontend/front_end/bindings/ResourceScriptMapping.js(231,55): error TS2339: Property 'valuesArray' does not exist on type 'Set'. -node_modules/chrome-devtools-frontend/front_end/bindings/ResourceScriptMapping.js(254,20): error TS2345: Argument of type 'number' is not assignable to parameter of type 'boolean'. node_modules/chrome-devtools-frontend/front_end/bindings/ResourceScriptMapping.js(284,21): error TS2339: Property '_scriptSource' does not exist on type 'ResourceScriptFile'. node_modules/chrome-devtools-frontend/front_end/bindings/ResourceScriptMapping.js(291,38): error TS2339: Property '_scriptSource' does not exist on type 'ResourceScriptFile'. node_modules/chrome-devtools-frontend/front_end/bindings/ResourceScriptMapping.js(293,63): error TS2339: Property '_scriptSource' does not exist on type 'ResourceScriptFile'. @@ -3849,29 +3654,29 @@ node_modules/chrome-devtools-frontend/front_end/bindings/ResourceScriptMapping.j node_modules/chrome-devtools-frontend/front_end/bindings/ResourceScriptMapping.js(395,12): error TS2339: Property '_scriptSource' does not exist on type 'ResourceScriptFile'. node_modules/chrome-devtools-frontend/front_end/bindings/ResourceUtils.js(44,12): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. node_modules/chrome-devtools-frontend/front_end/bindings/ResourceUtils.js(72,32): error TS2339: Property 'asParsedURL' does not exist on type 'string'. -node_modules/chrome-devtools-frontend/front_end/bindings/SASSSourceMapping.js(132,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'SASSSourceMapping' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/bindings/SASSSourceMapping.js(153,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'SASSSourceMapping' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/bindings/SASSSourceMapping.js(132,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'SASSSourceMapping' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/bindings/SASSSourceMapping.js(153,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'SASSSourceMapping' does not extend another class. node_modules/chrome-devtools-frontend/front_end/bindings/SASSSourceMapping.js(161,17): error TS2339: Property 'pushAll' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/bindings/StylesSourceMapping.js(61,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'StylesSourceMapping' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/bindings/StylesSourceMapping.js(82,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'StylesSourceMapping' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/bindings/StylesSourceMapping.js(306,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'StyleFile' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/bindings/StylesSourceMapping.js(61,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'StylesSourceMapping' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/bindings/StylesSourceMapping.js(82,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'StylesSourceMapping' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/bindings/StylesSourceMapping.js(306,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'StyleFile' does not extend another class. node_modules/chrome-devtools-frontend/front_end/bindings/StylesSourceMapping.js(307,26): error TS2339: Property 'firstValue' does not exist on type 'Set'. -node_modules/chrome-devtools-frontend/front_end/bindings/StylesSourceMapping.js(314,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'StyleFile' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/bindings/StylesSourceMapping.js(314,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'StyleFile' does not extend another class. node_modules/chrome-devtools-frontend/front_end/bindings/StylesSourceMapping.js(315,26): error TS2339: Property 'firstValue' does not exist on type 'Set'. -node_modules/chrome-devtools-frontend/front_end/bindings/StylesSourceMapping.js(322,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'StyleFile' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/bindings/StylesSourceMapping.js(322,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'StyleFile' does not extend another class. node_modules/chrome-devtools-frontend/front_end/bindings/StylesSourceMapping.js(323,26): error TS2339: Property 'firstValue' does not exist on type 'Set'. -node_modules/chrome-devtools-frontend/front_end/bindings/StylesSourceMapping.js(330,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'StyleFile' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/bindings/StylesSourceMapping.js(330,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'StyleFile' does not extend another class. node_modules/chrome-devtools-frontend/front_end/bindings/StylesSourceMapping.js(331,26): error TS2339: Property 'firstValue' does not exist on type 'Set'. -node_modules/chrome-devtools-frontend/front_end/bindings/StylesSourceMapping.js(341,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'StyleFile' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/bindings/StylesSourceMapping.js(341,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'StyleFile' does not extend another class. node_modules/chrome-devtools-frontend/front_end/bindings/StylesSourceMapping.js(342,26): error TS2339: Property 'firstValue' does not exist on type 'Set'. node_modules/chrome-devtools-frontend/front_end/bindings/TempFile.js(85,5): error TS2322: Type 'string | ArrayBuffer' is not assignable to type 'string'. Type 'ArrayBuffer' is not assignable to type 'string'. node_modules/chrome-devtools-frontend/front_end/bindings/TempFile.js(91,25): error TS2304: Cannot find name 'FileError'. node_modules/chrome-devtools-frontend/front_end/bindings/TempFile.js(96,42): error TS2304: Cannot find name 'FileError'. -node_modules/chrome-devtools-frontend/front_end/bindings/TempFile.js(125,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'TempFileBackingStorage' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/bindings/TempFile.js(138,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'TempFileBackingStorage' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/bindings/TempFile.js(158,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'TempFileBackingStorage' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/bindings/TempFile.js(165,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'TempFileBackingStorage' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/bindings/TempFile.js(125,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'TempFileBackingStorage' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/bindings/TempFile.js(138,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'TempFileBackingStorage' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/bindings/TempFile.js(158,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'TempFileBackingStorage' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/bindings/TempFile.js(165,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'TempFileBackingStorage' does not extend another class. node_modules/chrome-devtools-frontend/front_end/bindings/TempFile.js(176,25): error TS2304: Cannot find name 'FileError'. node_modules/chrome-devtools-frontend/front_end/bindings_test_runner/AutomappingTestRunner.js(48,26): error TS2554: Expected 5 arguments, but got 4. node_modules/chrome-devtools-frontend/front_end/bindings_test_runner/AutomappingTestRunner.js(71,80): error TS2345: Argument of type 'Promise' is not assignable to parameter of type '() => Promise'. @@ -3901,7 +3706,6 @@ node_modules/chrome-devtools-frontend/front_end/bindings_test_runner/IsolatedFil node_modules/chrome-devtools-frontend/front_end/bindings_test_runner/IsolatedFilesystemTestRunner.js(292,14): error TS2339: Property 'onwriteend' does not exist on type 'Writer'. node_modules/chrome-devtools-frontend/front_end/bindings_test_runner/IsolatedFilesystemTestRunner.js(293,12): error TS2339: Property 'onwriteend' does not exist on type 'Writer'. node_modules/chrome-devtools-frontend/front_end/bindings_test_runner/OverridesTestRunner.js(7,13): error TS1064: The return type of an async function or method must be the global Promise type. Did you mean to write 'Promise<{ isolatedFileSystem: IsolatedFileSystem; project: Project; testFileSystem: TestFileSystem; }>'? -node_modules/chrome-devtools-frontend/front_end/bindings_test_runner/OverridesTestRunner.js(15,18): error TS2345: Argument of type 'Project' is not assignable to parameter of type 'boolean'. node_modules/chrome-devtools-frontend/front_end/changes/ChangesHighlighter.js(47,11): error TS1345: An expression of type 'void' cannot be tested for truthiness. node_modules/chrome-devtools-frontend/front_end/changes/ChangesHighlighter.js(47,11): error TS1345: An expression of type 'void' cannot be tested for truthiness. node_modules/chrome-devtools-frontend/front_end/changes/ChangesHighlighter.js(47,47): error TS2339: Property 'blankLine' does not exist on type 'void'. @@ -3918,12 +3722,9 @@ node_modules/chrome-devtools-frontend/front_end/changes/ChangesView.js(31,56): e Type '{ lineNumbers: true; lineWrapping: false; maxHighlightLength: number; }' is missing the following properties from type 'Options': bracketMatchingSetting, mimeType, autoHeight, padBottom, placeholder node_modules/chrome-devtools-frontend/front_end/changes/ChangesView.js(37,42): error TS2339: Property 'createChild' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/changes/ChangesView.js(50,22): error TS2345: Argument of type 'TemplateStringsArray' is not assignable to parameter of type 'string | string[]'. - Type 'TemplateStringsArray' is not assignable to type 'string[]'. node_modules/chrome-devtools-frontend/front_end/changes/ChangesView.js(75,11): error TS2339: Property 'consume' does not exist on type 'Event'. node_modules/chrome-devtools-frontend/front_end/changes/ChangesView.js(111,24): error TS2345: Argument of type 'TemplateStringsArray' is not assignable to parameter of type 'string | string[]'. - Type 'TemplateStringsArray' is not assignable to type 'string[]'. node_modules/chrome-devtools-frontend/front_end/changes/ChangesView.js(139,24): error TS2345: Argument of type 'TemplateStringsArray' is not assignable to parameter of type 'string | string[]'. - Type 'TemplateStringsArray' is not assignable to type 'string[]'. node_modules/chrome-devtools-frontend/front_end/changes/ChangesView.js(155,26): error TS2339: Property 'pushAll' does not exist on type '{ baselineLineNumber: number; currentLineNumber: number; tokens: { text: string; className: string; }[]; type: string; }[]'. node_modules/chrome-devtools-frontend/front_end/changes/ChangesView.js(156,25): error TS2339: Property 'pushAll' does not exist on type 'any[]'. node_modules/chrome-devtools-frontend/front_end/changes/ChangesView.js(157,24): error TS2339: Property 'pushAll' does not exist on type 'any[]'. @@ -3972,6 +3773,23 @@ node_modules/chrome-devtools-frontend/front_end/cm/codemirror.js(2856,10): error node_modules/chrome-devtools-frontend/front_end/cm/codemirror.js(2858,32): error TS2339: Property 'left' does not exist on type 'never'. node_modules/chrome-devtools-frontend/front_end/cm/codemirror.js(2858,49): error TS2339: Property 'right' does not exist on type 'never'. node_modules/chrome-devtools-frontend/front_end/cm/codemirror.js(3034,25): error TS2339: Property 'xRel' does not exist on type 'Pos'. +node_modules/chrome-devtools-frontend/front_end/cm/codemirror.js(3178,11): error TS2532: Object is possibly 'undefined'. +node_modules/chrome-devtools-frontend/front_end/cm/codemirror.js(3178,25): error TS2532: Object is possibly 'undefined'. +node_modules/chrome-devtools-frontend/front_end/cm/codemirror.js(3179,13): error TS2532: Object is possibly 'undefined'. +node_modules/chrome-devtools-frontend/front_end/cm/codemirror.js(3179,28): error TS2532: Object is possibly 'undefined'. +node_modules/chrome-devtools-frontend/front_end/cm/codemirror.js(3179,47): error TS2532: Object is possibly 'undefined'. +node_modules/chrome-devtools-frontend/front_end/cm/codemirror.js(3180,23): error TS2532: Object is possibly 'undefined'. +node_modules/chrome-devtools-frontend/front_end/cm/codemirror.js(3180,39): error TS2532: Object is possibly 'undefined'. +node_modules/chrome-devtools-frontend/front_end/cm/codemirror.js(3180,56): error TS2532: Object is possibly 'undefined'. +node_modules/chrome-devtools-frontend/front_end/cm/codemirror.js(3182,13): error TS2532: Object is possibly 'undefined'. +node_modules/chrome-devtools-frontend/front_end/cm/codemirror.js(3182,28): error TS2532: Object is possibly 'undefined'. +node_modules/chrome-devtools-frontend/front_end/cm/codemirror.js(3182,41): error TS2532: Object is possibly 'undefined'. +node_modules/chrome-devtools-frontend/front_end/cm/codemirror.js(3182,59): error TS2532: Object is possibly 'undefined'. +node_modules/chrome-devtools-frontend/front_end/cm/codemirror.js(3182,74): error TS2532: Object is possibly 'undefined'. +node_modules/chrome-devtools-frontend/front_end/cm/codemirror.js(3185,9): error TS2532: Object is possibly 'undefined'. +node_modules/chrome-devtools-frontend/front_end/cm/codemirror.js(3185,26): error TS2532: Object is possibly 'undefined'. +node_modules/chrome-devtools-frontend/front_end/cm/codemirror.js(3186,23): error TS2532: Object is possibly 'undefined'. +node_modules/chrome-devtools-frontend/front_end/cm/codemirror.js(3186,45): error TS2532: Object is possibly 'undefined'. node_modules/chrome-devtools-frontend/front_end/cm/codemirror.js(4840,5): error TS2362: The left-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type. node_modules/chrome-devtools-frontend/front_end/cm/codemirror.js(5634,9): error TS2322: Type 'BranchChunk' is not assignable to type 'this'. 'BranchChunk' is assignable to the constraint of type 'this', but 'this' could be instantiated with a different subtype of constraint 'BranchChunk'. @@ -4057,8 +3875,12 @@ node_modules/chrome-devtools-frontend/front_end/cm/codemirror.js(8795,39): error Property 'offset' does not exist on type '{ node: any; start: number; end: number; collapse: any; coverStart: any; coverEnd: any; }'. node_modules/chrome-devtools-frontend/front_end/cm/codemirror.js(8799,38): error TS2339: Property 'offset' does not exist on type '{ node: any; start: number; end: number; collapse: any; coverStart: any; coverEnd: any; } | { node: any; offset: number; }'. Property 'offset' does not exist on type '{ node: any; start: number; end: number; collapse: any; coverStart: any; coverEnd: any; }'. -node_modules/chrome-devtools-frontend/front_end/cm/codemirror.js(8817,16): error TS2345: Argument of type 'boolean' is not assignable to parameter of type 'number'. -node_modules/chrome-devtools-frontend/front_end/cm/codemirror.js(8818,3): error TS2322: Type 'number' is not assignable to type 'boolean'. +node_modules/chrome-devtools-frontend/front_end/cm/codemirror.js(8817,16): error TS2769: No overload matches this call. + Overload 1 of 2, '(timeoutId: Timeout): void', gave the following error. + Argument of type 'boolean' is not assignable to parameter of type 'Timeout'. + Overload 2 of 2, '(id?: number): void', gave the following error. + Argument of type 'boolean' is not assignable to parameter of type 'number'. +node_modules/chrome-devtools-frontend/front_end/cm/codemirror.js(8818,3): error TS2322: Type 'Timeout' is not assignable to type 'boolean'. node_modules/chrome-devtools-frontend/front_end/cm/codemirror.js(9527,40): error TS2339: Property 'getValue' does not exist on type 'CodeMirror$1'. node_modules/chrome-devtools-frontend/front_end/cm/comment.js(6,17): error TS2792: Cannot find module '../../lib/codemirror'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? node_modules/chrome-devtools-frontend/front_end/cm/comment.js(7,19): error TS2304: Cannot find name 'define'. @@ -4111,7 +3933,7 @@ node_modules/chrome-devtools-frontend/front_end/cm_modes/coffeescript.js(10,17): node_modules/chrome-devtools-frontend/front_end/cm_modes/coffeescript.js(11,19): error TS2304: Cannot find name 'define'. node_modules/chrome-devtools-frontend/front_end/cm_modes/coffeescript.js(11,43): error TS2304: Cannot find name 'define'. node_modules/chrome-devtools-frontend/front_end/cm_modes/coffeescript.js(12,5): error TS2304: Cannot find name 'define'. -node_modules/chrome-devtools-frontend/front_end/cm_modes/coffeescript.js(41,3): error TS2740: Type 'RegExp' is missing the following properties from type 'string[]': length, pop, push, concat, and 28 more. +node_modules/chrome-devtools-frontend/front_end/cm_modes/coffeescript.js(41,3): error TS2740: Type 'RegExp' is missing the following properties from type 'string[]': length, pop, push, concat, and 29 more. node_modules/chrome-devtools-frontend/front_end/cm_modes/coffeescript.js(282,24): error TS2339: Property 'exec' does not exist on type 'string[]'. node_modules/chrome-devtools-frontend/front_end/cm_modes/jsx.js(6,17): error TS2792: Cannot find module '../../lib/codemirror'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? node_modules/chrome-devtools-frontend/front_end/cm_modes/jsx.js(6,42): error TS2554: Expected 0-1 arguments, but got 3. @@ -4237,7 +4059,6 @@ node_modules/chrome-devtools-frontend/front_end/color_picker/Spectrum.js(392,11) node_modules/chrome-devtools-frontend/front_end/color_picker/Spectrum.js(487,39): error TS2339: Property 'createChild' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/color_picker/Spectrum.js(492,22): error TS2339: Property 'createChild' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/color_picker/Spectrum.js(528,18): error TS2339: Property 'style' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/color_picker/Spectrum.js(678,20): error TS2345: Argument of type 'string' is not assignable to parameter of type 'boolean'. node_modules/chrome-devtools-frontend/front_end/color_picker/Spectrum.js(714,24): error TS2339: Property 'value' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/color_picker/Spectrum.js(716,24): error TS2339: Property 'value' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/color_picker/Spectrum.js(726,29): error TS2339: Property 'value' does not exist on type 'Element'. @@ -4292,21 +4113,20 @@ node_modules/chrome-devtools-frontend/front_end/common/ModuleExtensionInterfaces node_modules/chrome-devtools-frontend/front_end/common/ModuleExtensionInterfaces.js(81,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. node_modules/chrome-devtools-frontend/front_end/common/ModuleExtensionInterfaces.js(105,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. node_modules/chrome-devtools-frontend/front_end/common/Object.js(39,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/common/Object.js(43,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'Object' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/common/Object.js(61,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'Object' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/common/Object.js(43,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'Object' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/common/Object.js(61,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'Object' does not extend another class. node_modules/chrome-devtools-frontend/front_end/common/Object.js(73,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/common/Object.js(76,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'Object' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/common/Object.js(77,20): error TS2345: Argument of type '(arg0: { data: any; }) => any' is not assignable to parameter of type 'boolean'. -node_modules/chrome-devtools-frontend/front_end/common/Object.js(96,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'Object' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/common/Object.js(105,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'Object' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/common/Object.js(76,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'Object' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/common/Object.js(96,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'Object' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/common/Object.js(105,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'Object' does not extend another class. node_modules/chrome-devtools-frontend/front_end/common/Object.js(122,59): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. node_modules/chrome-devtools-frontend/front_end/common/Object.js(132,112): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. node_modules/chrome-devtools-frontend/front_end/common/Object.js(153,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. node_modules/chrome-devtools-frontend/front_end/common/Object.js(159,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. node_modules/chrome-devtools-frontend/front_end/common/Object.js(172,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. node_modules/chrome-devtools-frontend/front_end/common/OutputStream.js(13,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/common/OutputStream.js(33,9): error TS4112: This member cannot have an 'override' modifier because its containing class 'StringOutputStream' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/common/OutputStream.js(40,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'StringOutputStream' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/common/OutputStream.js(33,9): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'StringOutputStream' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/common/OutputStream.js(40,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'StringOutputStream' does not extend another class. node_modules/chrome-devtools-frontend/front_end/common/ParsedURL.js(122,26): error TS2339: Property '_urlRegexInstance' does not exist on type 'typeof ParsedURL'. node_modules/chrome-devtools-frontend/front_end/common/ParsedURL.js(123,31): error TS2339: Property '_urlRegexInstance' does not exist on type 'typeof ParsedURL'. node_modules/chrome-devtools-frontend/front_end/common/ParsedURL.js(141,22): error TS2339: Property '_urlRegexInstance' does not exist on type 'typeof ParsedURL'. @@ -4315,22 +4135,21 @@ node_modules/chrome-devtools-frontend/front_end/common/ParsedURL.js(152,25): err node_modules/chrome-devtools-frontend/front_end/common/ParsedURL.js(161,25): error TS2339: Property 'asParsedURL' does not exist on type 'string'. node_modules/chrome-devtools-frontend/front_end/common/ParsedURL.js(211,34): error TS2339: Property 'asParsedURL' does not exist on type 'string'. node_modules/chrome-devtools-frontend/front_end/common/ParsedURL.js(215,29): error TS2339: Property 'asParsedURL' does not exist on type 'string'. -node_modules/chrome-devtools-frontend/front_end/common/ParsedURL.js(266,20): error TS2345: Argument of type 'RegExpExecArray' is not assignable to parameter of type 'boolean'. node_modules/chrome-devtools-frontend/front_end/common/ParsedURL.js(318,49): error TS2554: Expected 0 arguments, but got 1. node_modules/chrome-devtools-frontend/front_end/common/ParsedURL.js(375,18): error TS2339: Property 'asParsedURL' does not exist on type 'String'. -node_modules/chrome-devtools-frontend/front_end/common/Progress.js(131,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'SubProgress' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/common/Progress.js(139,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'SubProgress' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/common/Progress.js(146,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'SubProgress' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/common/Progress.js(155,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'SubProgress' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/common/Progress.js(165,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'SubProgress' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/common/Progress.js(176,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'SubProgress' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/common/Progress.js(199,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ProgressProxy' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/common/Progress.js(207,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ProgressProxy' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/common/Progress.js(215,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ProgressProxy' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/common/Progress.js(226,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ProgressProxy' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/common/Progress.js(236,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ProgressProxy' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/common/Progress.js(245,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ProgressProxy' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/common/ResourceType.js(168,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ResourceType' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/common/Progress.js(131,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'SubProgress' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/common/Progress.js(139,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'SubProgress' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/common/Progress.js(146,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'SubProgress' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/common/Progress.js(155,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'SubProgress' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/common/Progress.js(165,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'SubProgress' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/common/Progress.js(176,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'SubProgress' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/common/Progress.js(199,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'ProgressProxy' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/common/Progress.js(207,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'ProgressProxy' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/common/Progress.js(215,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'ProgressProxy' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/common/Progress.js(226,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'ProgressProxy' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/common/Progress.js(236,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'ProgressProxy' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/common/Progress.js(245,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'ProgressProxy' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/common/ResourceType.js(168,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'ResourceType' does not extend another class. node_modules/chrome-devtools-frontend/front_end/common/SegmentedRange.js(48,37): error TS2339: Property 'lowerBound' does not exist on type 'Segment[]'. node_modules/chrome-devtools-frontend/front_end/common/Settings.js(227,10): error TS2554: Expected 1 arguments, but got 0. node_modules/chrome-devtools-frontend/front_end/common/Settings.js(273,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. @@ -4343,12 +4162,13 @@ node_modules/chrome-devtools-frontend/front_end/common/Settings.js(534,18): erro node_modules/chrome-devtools-frontend/front_end/common/Settings.js(535,18): error TS2339: Property 'vertical' does not exist on type '{}'. node_modules/chrome-devtools-frontend/front_end/common/Settings.js(541,18): error TS2339: Property 'horizontal' does not exist on type '{}'. node_modules/chrome-devtools-frontend/front_end/common/Settings.js(542,18): error TS2339: Property 'horizontal' does not exist on type '{}'. -node_modules/chrome-devtools-frontend/front_end/common/StaticContentProvider.js(35,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'StaticContentProvider' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/common/StaticContentProvider.js(43,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'StaticContentProvider' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/common/StaticContentProvider.js(51,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'StaticContentProvider' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/common/StaticContentProvider.js(59,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'StaticContentProvider' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/common/StaticContentProvider.js(70,9): error TS4112: This member cannot have an 'override' modifier because its containing class 'StaticContentProvider' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/common/StaticContentProvider.js(35,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'StaticContentProvider' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/common/StaticContentProvider.js(43,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'StaticContentProvider' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/common/StaticContentProvider.js(51,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'StaticContentProvider' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/common/StaticContentProvider.js(59,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'StaticContentProvider' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/common/StaticContentProvider.js(70,9): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'StaticContentProvider' does not extend another class. node_modules/chrome-devtools-frontend/front_end/common/Throttler.js(97,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. +node_modules/chrome-devtools-frontend/front_end/common/Throttler.js(102,5): error TS2322: Type 'Timeout' is not assignable to type 'number'. node_modules/chrome-devtools-frontend/front_end/common/Throttler.js(113,15): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. node_modules/chrome-devtools-frontend/front_end/common/UIString.js(32,1): error TS2740: Type '{}' is missing the following properties from type 'typeof Common': Object, EventTarget, Event, ParsedURL, and 39 more. node_modules/chrome-devtools-frontend/front_end/common/UIString.js(40,17): error TS2339: Property 'vsprintf' does not exist on type 'StringConstructor'. @@ -4369,8 +4189,8 @@ node_modules/chrome-devtools-frontend/front_end/components/DOMBreakpointsSidebar node_modules/chrome-devtools-frontend/front_end/components/DOMBreakpointsSidebarPane.js(149,19): error TS2339: Property 'style' does not exist on type 'Node'. node_modules/chrome-devtools-frontend/front_end/components/DOMBreakpointsSidebarPane.js(157,13): error TS2339: Property '_item' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/components/DOMBreakpointsSidebarPane.js(193,79): error TS2339: Property 'checked' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/components/DOMBreakpointsSidebarPane.js(200,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/components/DOMBreakpointsSidebarPane.js(258,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ContextMenuProvider' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/components/DOMBreakpointsSidebarPane.js(200,3): error TS4122: This member cannot have a JSDoc comment with an '@override' tag because it is not declared in the base class 'VBox'. +node_modules/chrome-devtools-frontend/front_end/components/DOMBreakpointsSidebarPane.js(258,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'ContextMenuProvider' does not extend another class. node_modules/chrome-devtools-frontend/front_end/components/DOMPresentationUtils.js(46,35): error TS2339: Property 'createChild' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/components/DOMPresentationUtils.js(51,35): error TS2339: Property 'createChild' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/components/DOMPresentationUtils.js(66,42): error TS2339: Property 'createChild' does not exist on type 'Element'. @@ -4397,18 +4217,16 @@ node_modules/chrome-devtools-frontend/front_end/components/DOMPresentationUtils. node_modules/chrome-devtools-frontend/front_end/components/DOMPresentationUtils.js(239,13): error TS2339: Property 'createChild' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/components/DOMPresentationUtils.js(251,11): error TS2339: Property 'consume' does not exist on type 'Event'. node_modules/chrome-devtools-frontend/front_end/components/DOMPresentationUtils.js(256,15): error TS2345: Argument of type 'TemplateStringsArray' is not assignable to parameter of type 'string | string[]'. - Type 'TemplateStringsArray' is not assignable to type 'string[]'. node_modules/chrome-devtools-frontend/front_end/components/DOMPresentationUtils.js(259,15): error TS2345: Argument of type 'TemplateStringsArray' is not assignable to parameter of type 'string | string[]'. - Type 'TemplateStringsArray' is not assignable to type 'string[]'. -node_modules/chrome-devtools-frontend/front_end/components/DOMPresentationUtils.js(630,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'DOMNodePathStep' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/components/DOMPresentationUtils.js(630,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'DOMNodePathStep' does not extend another class. node_modules/chrome-devtools-frontend/front_end/components/DOMPresentationUtils.js(643,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/components/DOMPresentationUtils.js(666,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'GenericDecorator' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/components/DOMPresentationUtils.js(666,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'GenericDecorator' does not extend another class. node_modules/chrome-devtools-frontend/front_end/components/DockController.js(116,33): error TS2339: Property 'deepActiveElement' does not exist on type 'Document'. -node_modules/chrome-devtools-frontend/front_end/components/DockController.js(177,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ToggleDockActionDelegate' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/components/DockController.js(192,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'CloseButtonProvider' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/components/DockController.js(177,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'ToggleDockActionDelegate' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/components/DockController.js(192,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'CloseButtonProvider' does not extend another class. node_modules/chrome-devtools-frontend/front_end/components/Linkifier.js(57,15): error TS2339: Property 'addEventListener' does not exist on type 'LinkDecorator'. -node_modules/chrome-devtools-frontend/front_end/components/Linkifier.js(115,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'Linkifier' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/components/Linkifier.js(124,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'Linkifier' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/components/Linkifier.js(115,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'Linkifier' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/components/Linkifier.js(124,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'Linkifier' does not extend another class. node_modules/chrome-devtools-frontend/front_end/components/Linkifier.js(125,94): error TS2339: Property 'remove' does not exist on type 'Map'. node_modules/chrome-devtools-frontend/front_end/components/Linkifier.js(127,41): error TS2339: Property 'remove' does not exist on type 'Map'. node_modules/chrome-devtools-frontend/front_end/components/Linkifier.js(133,37): error TS2339: Property 'href' does not exist on type 'Element'. @@ -4439,7 +4257,7 @@ node_modules/chrome-devtools-frontend/front_end/components/Linkifier.js(508,33): node_modules/chrome-devtools-frontend/front_end/components/Linkifier.js(664,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. node_modules/chrome-devtools-frontend/front_end/components/Linkifier.js(675,28): error TS8022: JSDoc '@extends' is not attached to a class. node_modules/chrome-devtools-frontend/front_end/components/Linkifier.js(680,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/components/Linkifier.js(700,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'LinkContextMenuProvider' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/components/Linkifier.js(700,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'LinkContextMenuProvider' does not extend another class. node_modules/chrome-devtools-frontend/front_end/components/Linkifier.js(703,31): error TS2339: Property 'parentNodeOrShadowHost' does not exist on type 'Node'. node_modules/chrome-devtools-frontend/front_end/components/Linkifier.js(707,34): error TS2339: Property 'section' does not exist on type '{ title: string; handler: () => any; }'. node_modules/chrome-devtools-frontend/front_end/components/Linkifier.js(723,19): error TS2339: Property 'removeChildren' does not exist on type 'Element'. @@ -4447,46 +4265,46 @@ node_modules/chrome-devtools-frontend/front_end/components/Linkifier.js(724,52): node_modules/chrome-devtools-frontend/front_end/components/Linkifier.js(729,14): error TS2339: Property 'selected' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/components/Linkifier.js(732,19): error TS2339: Property 'disabled' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/components/Linkifier.js(739,30): error TS2339: Property 'value' does not exist on type 'EventTarget'. -node_modules/chrome-devtools-frontend/front_end/components/Linkifier.js(747,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'LinkHandlerSettingUI' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/components/Linkifier.js(763,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ContentProviderContextMenuProvider' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/components/Linkifier.js(747,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'LinkHandlerSettingUI' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/components/Linkifier.js(763,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'ContentProviderContextMenuProvider' does not extend another class. node_modules/chrome-devtools-frontend/front_end/console/ConsoleContextSelector.js(6,33): error TS2694: Namespace 'UI.SoftDropDown' has no exported member 'Delegate'. node_modules/chrome-devtools-frontend/front_end/console/ConsoleContextSelector.js(36,55): error TS2345: Argument of type 'this' is not assignable to parameter of type 'SDKModelObserver'. Type 'ConsoleContextSelector' is not assignable to type 'SDKModelObserver'. Types of property 'modelAdded' are incompatible. Type '(runtimeModel: RuntimeModel) => void' is not assignable to type '(model: T) => void'. -node_modules/chrome-devtools-frontend/front_end/console/ConsoleContextSelector.js(55,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ConsoleContextSelector' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/console/ConsoleContextSelector.js(73,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ConsoleContextSelector' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/console/ConsoleContextSelector.js(55,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'ConsoleContextSelector' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/console/ConsoleContextSelector.js(73,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'ConsoleContextSelector' does not extend another class. node_modules/chrome-devtools-frontend/front_end/console/ConsoleContextSelector.js(232,3): error TS2416: Property 'modelAdded' in type 'ConsoleContextSelector' is not assignable to the same property in base type 'SDKModelObserver'. Type '(runtimeModel: RuntimeModel) => void' is not assignable to type '(model: T) => void'. node_modules/chrome-devtools-frontend/front_end/console/ConsoleContextSelector.js(232,3): error TS2416: Property 'modelAdded' in type 'ConsoleContextSelector' is not assignable to the same property in base type 'SDKModelObserver'. Type '(runtimeModel: RuntimeModel) => void' is not assignable to type '(model: T) => void'. Types of parameters 'runtimeModel' and 'model' are incompatible. Type 'T' is not assignable to type 'RuntimeModel'. -node_modules/chrome-devtools-frontend/front_end/console/ConsoleContextSelector.js(232,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ConsoleContextSelector' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/console/ConsoleContextSelector.js(232,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'ConsoleContextSelector' does not extend another class. node_modules/chrome-devtools-frontend/front_end/console/ConsoleContextSelector.js(240,3): error TS2416: Property 'modelRemoved' in type 'ConsoleContextSelector' is not assignable to the same property in base type 'SDKModelObserver'. Type '(runtimeModel: RuntimeModel) => void' is not assignable to type '(model: T) => void'. node_modules/chrome-devtools-frontend/front_end/console/ConsoleContextSelector.js(240,3): error TS2416: Property 'modelRemoved' in type 'ConsoleContextSelector' is not assignable to the same property in base type 'SDKModelObserver'. Type '(runtimeModel: RuntimeModel) => void' is not assignable to type '(model: T) => void'. Types of parameters 'runtimeModel' and 'model' are incompatible. Type 'T' is not assignable to type 'RuntimeModel'. -node_modules/chrome-devtools-frontend/front_end/console/ConsoleContextSelector.js(240,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ConsoleContextSelector' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/console/ConsoleContextSelector.js(252,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ConsoleContextSelector' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/console/ConsoleContextSelector.js(240,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'ConsoleContextSelector' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/console/ConsoleContextSelector.js(252,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'ConsoleContextSelector' does not extend another class. node_modules/chrome-devtools-frontend/front_end/console/ConsoleContextSelector.js(255,28): error TS2339: Property 'createChild' does not exist on type 'DocumentFragment'. node_modules/chrome-devtools-frontend/front_end/console/ConsoleContextSelector.js(256,55): error TS2554: Expected 0 arguments, but got 1. node_modules/chrome-devtools-frontend/front_end/console/ConsoleContextSelector.js(257,31): error TS2339: Property 'createChild' does not exist on type 'DocumentFragment'. node_modules/chrome-devtools-frontend/front_end/console/ConsoleContextSelector.js(264,13): error TS2339: Property 'style' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/console/ConsoleContextSelector.js(281,41): error TS2339: Property 'asParsedURL' does not exist on type 'string'. -node_modules/chrome-devtools-frontend/front_end/console/ConsoleContextSelector.js(300,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ConsoleContextSelector' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/console/ConsoleContextSelector.js(310,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ConsoleContextSelector' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/console/ConsoleContextSelector.js(300,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'ConsoleContextSelector' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/console/ConsoleContextSelector.js(310,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'ConsoleContextSelector' does not extend another class. node_modules/chrome-devtools-frontend/front_end/console/ConsoleFilter.js(26,5): error TS2322: Type '{}' is not assignable to type '{ [x: string]: boolean; }'. - Index signature is missing in type '{}'. + Index signature for type 'string' is missing in type '{}'. node_modules/chrome-devtools-frontend/front_end/console/ConsoleFilter.js(45,5): error TS2322: Type '{}' is not assignable to type '{ [x: string]: boolean; }'. - Index signature is missing in type '{}'. + Index signature for type 'string' is missing in type '{}'. node_modules/chrome-devtools-frontend/front_end/console/ConsolePanel.js(50,52): error TS2339: Property '_instance' does not exist on type 'typeof WrapperView'. node_modules/chrome-devtools-frontend/front_end/console/ConsolePanel.js(64,42): error TS2339: Property '_instance' does not exist on type 'typeof WrapperView'. node_modules/chrome-devtools-frontend/front_end/console/ConsolePanel.js(65,40): error TS2339: Property '_instance' does not exist on type 'typeof WrapperView'. node_modules/chrome-devtools-frontend/front_end/console/ConsolePanel.js(85,38): error TS2339: Property '_instance' does not exist on type 'typeof WrapperView'. -node_modules/chrome-devtools-frontend/front_end/console/ConsolePanel.js(122,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ConsoleRevealer' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/console/ConsolePanel.js(122,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'ConsoleRevealer' does not extend another class. node_modules/chrome-devtools-frontend/front_end/console/ConsolePrompt.js(16,18): error TS2339: Property 'tabIndex' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/console/ConsolePrompt.js(26,32): error TS2345: Argument of type '{ lineNumbers: false; lineWrapping: true; mimeType: string; autoHeight: true; }' is not assignable to parameter of type 'Options'. Type '{ lineNumbers: false; lineWrapping: true; mimeType: string; autoHeight: true; }' is missing the following properties from type 'Options': bracketMatchingSetting, padBottom, maxHighlightLength, placeholder @@ -4502,7 +4320,7 @@ node_modules/chrome-devtools-frontend/front_end/console/ConsoleSidebar.js(34,63) node_modules/chrome-devtools-frontend/front_end/console/ConsoleSidebar.js(94,38): error TS2339: Property '_filter' does not exist on type 'TreeElement'. node_modules/chrome-devtools-frontend/front_end/console/ConsoleSidebar.js(119,47): error TS2339: Property 'createChild' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/console/ConsoleSidebar.js(122,25): error TS2345: Argument of type 'Element' is not assignable to parameter of type 'Icon'. - Type 'Element' is missing the following properties from type 'Icon': createdCallback, _descriptor, _spriteSheet, _iconType, and 114 more. + Type 'Element' is missing the following properties from type 'Icon': createdCallback, _descriptor, _spriteSheet, _iconType, and 120 more. node_modules/chrome-devtools-frontend/front_end/console/ConsoleSidebar.js(147,27): error TS2322: Type 'Element' is not assignable to type 'Icon'. node_modules/chrome-devtools-frontend/front_end/console/ConsoleSidebar.js(209,41): error TS2339: Property 'asParsedURL' does not exist on type 'string'. node_modules/chrome-devtools-frontend/front_end/console/ConsoleSidebar.js(214,31): error TS2345: Argument of type '{ key: string; text: string; negative: false; }' is not assignable to parameter of type 'ParsedFilter'. @@ -4512,10 +4330,10 @@ node_modules/chrome-devtools-frontend/front_end/console/ConsoleView.js(178,48): node_modules/chrome-devtools-frontend/front_end/console/ConsoleView.js(231,30): error TS2551: Property '_instance' does not exist on type 'typeof ConsoleView'. Did you mean 'instance'? node_modules/chrome-devtools-frontend/front_end/console/ConsoleView.js(232,27): error TS2551: Property '_instance' does not exist on type 'typeof ConsoleView'. Did you mean 'instance'? node_modules/chrome-devtools-frontend/front_end/console/ConsoleView.js(233,32): error TS2551: Property '_instance' does not exist on type 'typeof ConsoleView'. Did you mean 'instance'? -node_modules/chrome-devtools-frontend/front_end/console/ConsoleView.js(277,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/console/ConsoleView.js(286,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/console/ConsoleView.js(295,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/console/ConsoleView.js(303,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. +node_modules/chrome-devtools-frontend/front_end/console/ConsoleView.js(277,3): error TS4122: This member cannot have a JSDoc comment with an '@override' tag because it is not declared in the base class 'VBox'. +node_modules/chrome-devtools-frontend/front_end/console/ConsoleView.js(286,3): error TS4122: This member cannot have a JSDoc comment with an '@override' tag because it is not declared in the base class 'VBox'. +node_modules/chrome-devtools-frontend/front_end/console/ConsoleView.js(295,3): error TS4122: This member cannot have a JSDoc comment with an '@override' tag because it is not declared in the base class 'VBox'. +node_modules/chrome-devtools-frontend/front_end/console/ConsoleView.js(303,3): error TS4122: This member cannot have a JSDoc comment with an '@override' tag because it is not declared in the base class 'VBox'. node_modules/chrome-devtools-frontend/front_end/console/ConsoleView.js(411,7): error TS2322: Type 'Promise' is not assignable to type 'Promise'. node_modules/chrome-devtools-frontend/front_end/console/ConsoleView.js(419,5): error TS2322: Type 'Promise' is not assignable to type 'Promise'. node_modules/chrome-devtools-frontend/front_end/console/ConsoleView.js(470,47): error TS2339: Property 'peekLast' does not exist on type 'ConsoleViewMessage[]'. @@ -4535,12 +4353,12 @@ node_modules/chrome-devtools-frontend/front_end/console/ConsoleView.js(850,32): node_modules/chrome-devtools-frontend/front_end/console/ConsoleView.js(857,37): error TS2339: Property 'enclosingNodeOrSelfWithClass' does not exist on type 'EventTarget'. node_modules/chrome-devtools-frontend/front_end/console/ConsoleView.js(932,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. node_modules/chrome-devtools-frontend/front_end/console/ConsoleView.js(959,123): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/console/ConsoleView.js(978,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/console/ConsoleView.js(996,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/console/ConsoleView.js(1075,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/console/ConsoleView.js(1082,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/console/ConsoleView.js(1090,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/console/ConsoleView.js(1098,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. +node_modules/chrome-devtools-frontend/front_end/console/ConsoleView.js(978,3): error TS4122: This member cannot have a JSDoc comment with an '@override' tag because it is not declared in the base class 'VBox'. +node_modules/chrome-devtools-frontend/front_end/console/ConsoleView.js(996,3): error TS4122: This member cannot have a JSDoc comment with an '@override' tag because it is not declared in the base class 'VBox'. +node_modules/chrome-devtools-frontend/front_end/console/ConsoleView.js(1075,3): error TS4122: This member cannot have a JSDoc comment with an '@override' tag because it is not declared in the base class 'VBox'. +node_modules/chrome-devtools-frontend/front_end/console/ConsoleView.js(1082,3): error TS4122: This member cannot have a JSDoc comment with an '@override' tag because it is not declared in the base class 'VBox'. +node_modules/chrome-devtools-frontend/front_end/console/ConsoleView.js(1090,3): error TS4122: This member cannot have a JSDoc comment with an '@override' tag because it is not declared in the base class 'VBox'. +node_modules/chrome-devtools-frontend/front_end/console/ConsoleView.js(1098,3): error TS4122: This member cannot have a JSDoc comment with an '@override' tag because it is not declared in the base class 'VBox'. node_modules/chrome-devtools-frontend/front_end/console/ConsoleView.js(1124,19): error TS2339: Property 'scrollIntoViewIfNeeded' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/console/ConsoleView.js(1151,63): error TS2339: Property 'isScrolledToBottom' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/console/ConsoleView.js(1187,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. @@ -4563,21 +4381,21 @@ node_modules/chrome-devtools-frontend/front_end/console/ConsoleView.js(1324,88): node_modules/chrome-devtools-frontend/front_end/console/ConsoleView.js(1419,28): error TS2339: Property 'message' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/console/ConsoleView.js(1422,54): error TS2339: Property 'replaceControlCharacters' does not exist on type 'string'. node_modules/chrome-devtools-frontend/front_end/console/ConsoleView.js(1486,38): error TS2339: Property 'collapsed' does not exist on type 'ConsoleViewMessage'. -node_modules/chrome-devtools-frontend/front_end/console/ConsoleView.js(1528,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ActionDelegate' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/console/ConsoleViewMessage.js(61,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ConsoleViewMessage' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/console/ConsoleViewMessage.js(68,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ConsoleViewMessage' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/console/ConsoleViewMessage.js(84,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ConsoleViewMessage' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/console/ConsoleView.js(1528,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'ActionDelegate' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/console/ConsoleViewMessage.js(61,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'ConsoleViewMessage' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/console/ConsoleViewMessage.js(68,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'ConsoleViewMessage' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/console/ConsoleViewMessage.js(84,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'ConsoleViewMessage' does not extend another class. node_modules/chrome-devtools-frontend/front_end/console/ConsoleViewMessage.js(86,48): error TS2339: Property 'offsetHeight' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/console/ConsoleViewMessage.js(171,11): error TS2403: Subsequent variable declarations must have the same type. Variable 'rowValue' must be of type '{}', but here has type 'any'. node_modules/chrome-devtools-frontend/front_end/console/ConsoleViewMessage.js(184,42): error TS2339: Property 'createChild' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/console/ConsoleViewMessage.js(211,26): error TS2339: Property 'title' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/console/ConsoleViewMessage.js(222,15): error TS2403: Subsequent variable declarations must have the same type. Variable 'args' must be of type 'string[]', but here has type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/console/ConsoleViewMessage.js(233,15): error TS2403: Subsequent variable declarations must have the same type. Variable 'args' must be of type 'string[]', but here has type 'any[]'. +node_modules/chrome-devtools-frontend/front_end/console/ConsoleViewMessage.js(233,15): error TS2403: Subsequent variable declarations must have the same type. Variable 'args' must be of type 'string[]', but here has type 'Protocol.Runtime.RemoteObject[]'. node_modules/chrome-devtools-frontend/front_end/console/ConsoleViewMessage.js(241,26): error TS2339: Property 'createTextChild' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/console/ConsoleViewMessage.js(244,28): error TS2339: Property 'createTextChildren' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/console/ConsoleViewMessage.js(244,60): error TS2339: Property 'localizedFailDescription' does not exist on type 'NetworkRequest'. node_modules/chrome-devtools-frontend/front_end/console/ConsoleViewMessage.js(246,28): error TS2339: Property 'createTextChildren' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/console/ConsoleViewMessage.js(267,11): error TS2403: Subsequent variable declarations must have the same type. Variable 'args' must be of type 'string[]', but here has type 'any[]'. +node_modules/chrome-devtools-frontend/front_end/console/ConsoleViewMessage.js(267,11): error TS2403: Subsequent variable declarations must have the same type. Variable 'args' must be of type 'string[]', but here has type 'Protocol.Runtime.RemoteObject[]'. node_modules/chrome-devtools-frontend/front_end/console/ConsoleViewMessage.js(304,62): error TS2345: Argument of type '{ maxLength: number; }' is not assignable to parameter of type 'LinkifyURLOptions'. Type '{ maxLength: number; }' is missing the following properties from type 'LinkifyURLOptions': text, className, lineNumber, columnNumber, preventClick node_modules/chrome-devtools-frontend/front_end/console/ConsoleViewMessage.js(311,28): error TS2339: Property 'createTextChild' does not exist on type 'Element'. @@ -4596,7 +4414,7 @@ node_modules/chrome-devtools-frontend/front_end/console/ConsoleViewMessage.js(58 node_modules/chrome-devtools-frontend/front_end/console/ConsoleViewMessage.js(594,29): error TS2339: Property 'createChild' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/console/ConsoleViewMessage.js(623,27): error TS2339: Property 'createChild' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/console/ConsoleViewMessage.js(642,32): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/console/ConsoleViewMessage.js(646,33): error TS2339: Property 'peekLast' does not exist on type 'any[]'. +node_modules/chrome-devtools-frontend/front_end/console/ConsoleViewMessage.js(646,33): error TS2339: Property 'peekLast' does not exist on type 'Protocol.Runtime.PropertyPreview[]'. node_modules/chrome-devtools-frontend/front_end/console/ConsoleViewMessage.js(689,12): error TS2339: Property 'createChild' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/console/ConsoleViewMessage.js(691,12): error TS2339: Property 'createChild' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/console/ConsoleViewMessage.js(733,19): error TS2339: Property 'removeChildren' does not exist on type 'Element'. @@ -4634,11 +4452,9 @@ node_modules/chrome-devtools-frontend/front_end/console/ConsoleViewMessage.js(13 node_modules/chrome-devtools-frontend/front_end/console/ConsoleViewMessage.js(1360,52): error TS2339: Property 'value' does not exist on type '{ type: string; text: string; }'. node_modules/chrome-devtools-frontend/front_end/console/ConsoleViewMessage.js(1380,35): error TS2339: Property 'createChild' does not exist on type 'DocumentFragment'. node_modules/chrome-devtools-frontend/front_end/console/ConsoleViewMessage.js(1381,48): error TS2345: Argument of type 'TemplateStringsArray' is not assignable to parameter of type 'string | string[]'. - Type 'TemplateStringsArray' is not assignable to type 'string[]'. node_modules/chrome-devtools-frontend/front_end/console/ConsoleViewMessage.js(1381,63): error TS2339: Property 'withThousandsSeparator' does not exist on type 'NumberConstructor'. node_modules/chrome-devtools-frontend/front_end/console/ConsoleViewMessage.js(1388,33): error TS2339: Property 'createChild' does not exist on type 'DocumentFragment'. node_modules/chrome-devtools-frontend/front_end/console/ConsoleViewMessage.js(1389,46): error TS2345: Argument of type 'TemplateStringsArray' is not assignable to parameter of type 'string | string[]'. - Type 'TemplateStringsArray' is not assignable to type 'string[]'. node_modules/chrome-devtools-frontend/front_end/console/ConsoleViewMessage.js(1403,51): error TS2345: Argument of type '{ text: string; lineNumber: number; columnNumber: number; }' is not assignable to parameter of type 'LinkifyURLOptions'. Type '{ text: string; lineNumber: number; columnNumber: number; }' is missing the following properties from type 'LinkifyURLOptions': className, preventClick, maxLength node_modules/chrome-devtools-frontend/front_end/console/ConsoleViewMessage.js(1412,37): error TS2339: Property '_tokenizerRegexes' does not exist on type 'typeof ConsoleViewMessage'. @@ -4739,9 +4555,9 @@ node_modules/chrome-devtools-frontend/front_end/console_counters/WarningErrorCou node_modules/chrome-devtools-frontend/front_end/console_counters/WarningErrorCounter.js(42,21): error TS2339: Property 'createChild' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/console_counters/WarningErrorCounter.js(58,5): error TS2322: Type 'number' is not assignable to type 'string'. node_modules/chrome-devtools-frontend/front_end/console_counters/WarningErrorCounter.js(84,19): error TS2339: Property 'title' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/console_counters/WarningErrorCounter.js(95,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'WarningErrorCounter' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/console_model/ConsoleModel.js(53,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Object'. -node_modules/chrome-devtools-frontend/front_end/console_model/ConsoleModel.js(118,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Object'. +node_modules/chrome-devtools-frontend/front_end/console_counters/WarningErrorCounter.js(95,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'WarningErrorCounter' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/console_model/ConsoleModel.js(53,3): error TS4122: This member cannot have a JSDoc comment with an '@override' tag because it is not declared in the base class 'Object'. +node_modules/chrome-devtools-frontend/front_end/console_model/ConsoleModel.js(118,3): error TS4122: This member cannot have a JSDoc comment with an '@override' tag because it is not declared in the base class 'Object'. node_modules/chrome-devtools-frontend/front_end/console_model/ConsoleModel.js(173,9): error TS2339: Property '_pageLoadSequenceNumber' does not exist on type 'ConsoleMessage'. node_modules/chrome-devtools-frontend/front_end/console_model/ConsoleModel.js(196,70): error TS2694: Namespace 'Protocol' has no exported member 'Log'. node_modules/chrome-devtools-frontend/front_end/console_model/ConsoleModel.js(263,105): error TS2339: Property 'context' does not exist on type 'ConsoleAPICall'. @@ -4801,7 +4617,7 @@ node_modules/chrome-devtools-frontend/front_end/coverage/CoverageDecorationManag node_modules/chrome-devtools-frontend/front_end/coverage/CoverageDecorationManager.js(180,37): error TS2339: Property 'header' does not exist on type 'Location'. node_modules/chrome-devtools-frontend/front_end/coverage/CoverageDecorationManager.js(225,21): error TS2339: Property 'upperBound' does not exist on type 'CSSStyleSheetHeader[]'. node_modules/chrome-devtools-frontend/front_end/coverage/CoverageDecorationManager.js(258,34): error TS1110: Type expected. -node_modules/chrome-devtools-frontend/front_end/coverage/CoverageDecorationManager.js(274,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'LineDecorator' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/coverage/CoverageDecorationManager.js(274,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'LineDecorator' does not extend another class. node_modules/chrome-devtools-frontend/front_end/coverage/CoverageDecorationManager.js(277,18): error TS2339: Property 'uninstallGutter' does not exist on type 'CodeMirrorTextEditor'. node_modules/chrome-devtools-frontend/front_end/coverage/CoverageDecorationManager.js(293,16): error TS2339: Property 'uninstallGutter' does not exist on type 'CodeMirrorTextEditor'. node_modules/chrome-devtools-frontend/front_end/coverage/CoverageDecorationManager.js(294,16): error TS2339: Property 'installGutter' does not exist on type 'CodeMirrorTextEditor'. @@ -4835,9 +4651,10 @@ node_modules/chrome-devtools-frontend/front_end/coverage/CoverageModel.js(441,25 node_modules/chrome-devtools-frontend/front_end/coverage/CoverageView.js(20,48): error TS2339: Property 'createChild' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/coverage/CoverageView.js(53,56): error TS2339: Property 'createChild' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/coverage/CoverageView.js(57,54): error TS2339: Property 'createChild' does not exist on type 'Element'. +node_modules/chrome-devtools-frontend/front_end/coverage/CoverageView.js(141,5): error TS2322: Type 'Timeout' is not assignable to type 'number'. node_modules/chrome-devtools-frontend/front_end/coverage/CoverageView.js(187,55): error TS2339: Property 'bytesToString' does not exist on type 'NumberConstructor'. node_modules/chrome-devtools-frontend/front_end/coverage/CoverageView.js(187,85): error TS2339: Property 'bytesToString' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/coverage/CoverageView.js(227,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ActionDelegate' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/coverage/CoverageView.js(227,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'ActionDelegate' does not extend another class. node_modules/chrome-devtools-frontend/front_end/coverage/CoverageView.js(231,59): error TS1110: Type expected. node_modules/chrome-devtools-frontend/front_end/cpu_profiler_test_runner/ProfilerTestRunner.js(12,35): error TS2339: Property 'js_profiler' does not exist on type 'any[]'. node_modules/chrome-devtools-frontend/front_end/cpu_profiler_test_runner/ProfilerTestRunner.js(49,15): error TS2339: Property 'js_profiler' does not exist on type 'any[]'. @@ -4853,7 +4670,7 @@ node_modules/chrome-devtools-frontend/front_end/data_grid/DataGrid.js(89,50): er node_modules/chrome-devtools-frontend/front_end/data_grid/DataGrid.js(94,42): error TS2339: Property 'createChild' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/data_grid/DataGrid.js(96,45): error TS2339: Property 'createChild' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/data_grid/DataGrid.js(98,48): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/data_grid/DataGrid.js(109,26): error TS2352: Conversion of type 'DataGridNode' to type 'NODE_TYPE' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first. +node_modules/chrome-devtools-frontend/front_end/data_grid/DataGrid.js(109,33): error TS2352: Conversion of type 'DataGridNode' to type 'NODE_TYPE' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first. 'NODE_TYPE' could be instantiated with an arbitrary type which could be unrelated to 'DataGridNode'. node_modules/chrome-devtools-frontend/front_end/data_grid/DataGrid.js(121,17): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. node_modules/chrome-devtools-frontend/front_end/data_grid/DataGrid.js(123,17): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. @@ -5092,7 +4909,7 @@ node_modules/chrome-devtools-frontend/front_end/data_grid/SortableDataGrid.js(20 'NODE_TYPE' could be instantiated with an arbitrary type which could be unrelated to 'SortableDataGridNode'. node_modules/chrome-devtools-frontend/front_end/data_grid/SortableDataGrid.js(84,59): error TS2345: Argument of type '{ id: string; title: string; width: number; sortable: true; }' is not assignable to parameter of type 'ColumnDescriptor'. Object literal may only specify known properties, and 'width' does not exist in type 'ColumnDescriptor'. -node_modules/chrome-devtools-frontend/front_end/data_grid/SortableDataGrid.js(131,20): error TS2352: Conversion of type 'NODE_TYPE' to type 'SortableDataGridNode' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first. +node_modules/chrome-devtools-frontend/front_end/data_grid/SortableDataGrid.js(131,27): error TS2352: Conversion of type 'NODE_TYPE' to type 'SortableDataGridNode' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first. node_modules/chrome-devtools-frontend/front_end/data_grid/SortableDataGrid.js(141,21): error TS2339: Property 'recalculateSiblings' does not exist on type 'NODE_TYPE'. node_modules/chrome-devtools-frontend/front_end/data_grid/SortableDataGrid.js(142,21): error TS2339: Property '_sortChildren' does not exist on type 'NODE_TYPE'. node_modules/chrome-devtools-frontend/front_end/data_grid/SortableDataGrid.js(165,42): error TS2339: Property 'upperBound' does not exist on type 'NODE_TYPE[]'. @@ -5120,7 +4937,7 @@ node_modules/chrome-devtools-frontend/front_end/data_grid/ViewportDataGrid.js(20 node_modules/chrome-devtools-frontend/front_end/data_grid/ViewportDataGrid.js(243,33): error TS2339: Property 'flatChildren' does not exist on type 'NODE_TYPE'. node_modules/chrome-devtools-frontend/front_end/data_grid/ViewportDataGrid.js(256,50): error TS2339: Property 'offsetHeight' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/data_grid/ViewportDataGrid.js(257,47): error TS2339: Property 'offsetHeight' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/data_grid/ViewportDataGrid.js(320,22): error TS2352: Conversion of type 'NODE_TYPE' to type 'ViewportDataGridNode' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first. +node_modules/chrome-devtools-frontend/front_end/data_grid/ViewportDataGrid.js(320,29): error TS2352: Conversion of type 'NODE_TYPE' to type 'ViewportDataGridNode' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first. node_modules/chrome-devtools-frontend/front_end/data_grid/ViewportDataGrid.js(334,21): error TS2322: Type 'NODE_TYPE[]' is not assignable to type 'ViewportDataGridNode[]'. Type 'NODE_TYPE' is not assignable to type 'ViewportDataGridNode'. node_modules/chrome-devtools-frontend/front_end/data_grid/ViewportDataGrid.js(363,15): error TS2339: Property 'parent' does not exist on type 'NODE_TYPE'. @@ -5178,7 +4995,7 @@ node_modules/chrome-devtools-frontend/front_end/devices/DevicesView.js(332,3): e Type '(rule: { port: string; address: string; }, editable: boolean) => Element' is not assignable to type '(item: T, editable: boolean) => Element'. Types of parameters 'rule' and 'item' are incompatible. Type 'T' is not assignable to type '{ port: string; address: string; }'. -node_modules/chrome-devtools-frontend/front_end/devices/DevicesView.js(332,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. +node_modules/chrome-devtools-frontend/front_end/devices/DevicesView.js(332,3): error TS4122: This member cannot have a JSDoc comment with an '@override' tag because it is not declared in the base class 'VBox'. node_modules/chrome-devtools-frontend/front_end/devices/DevicesView.js(334,24): error TS2339: Property 'createChild' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/devices/DevicesView.js(337,13): error TS2339: Property 'createChild' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/devices/DevicesView.js(338,13): error TS2339: Property 'createChild' does not exist on type 'Element'. @@ -5188,21 +5005,21 @@ node_modules/chrome-devtools-frontend/front_end/devices/DevicesView.js(347,3): e Type '(rule: { port: string; address: string; }, index: number) => void' is not assignable to type '(item: T, index: number) => void'. Types of parameters 'rule' and 'item' are incompatible. Type 'T' is not assignable to type '{ port: string; address: string; }'. -node_modules/chrome-devtools-frontend/front_end/devices/DevicesView.js(347,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. +node_modules/chrome-devtools-frontend/front_end/devices/DevicesView.js(347,3): error TS4122: This member cannot have a JSDoc comment with an '@override' tag because it is not declared in the base class 'VBox'. node_modules/chrome-devtools-frontend/front_end/devices/DevicesView.js(359,3): error TS2416: Property 'commitEdit' in type 'PortForwardingView' is not assignable to the same property in base type 'Delegate<{ port: string; address: string; }>'. Type '(rule: { port: string; address: string; }, editor: Editor, isNew: boolean) => void' is not assignable to type '(item: T, editor: Editor, isNew: boolean) => void'. node_modules/chrome-devtools-frontend/front_end/devices/DevicesView.js(359,3): error TS2416: Property 'commitEdit' in type 'PortForwardingView' is not assignable to the same property in base type 'Delegate<{ port: string; address: string; }>'. Type '(rule: { port: string; address: string; }, editor: Editor, isNew: boolean) => void' is not assignable to type '(item: T, editor: Editor, isNew: boolean) => void'. Types of parameters 'rule' and 'item' are incompatible. Type 'T' is not assignable to type '{ port: string; address: string; }'. -node_modules/chrome-devtools-frontend/front_end/devices/DevicesView.js(359,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. +node_modules/chrome-devtools-frontend/front_end/devices/DevicesView.js(359,3): error TS4122: This member cannot have a JSDoc comment with an '@override' tag because it is not declared in the base class 'VBox'. node_modules/chrome-devtools-frontend/front_end/devices/DevicesView.js(372,3): error TS2416: Property 'beginEdit' in type 'PortForwardingView' is not assignable to the same property in base type 'Delegate<{ port: string; address: string; }>'. Type '(rule: { port: string; address: string; }) => Editor' is not assignable to type '(item: T) => Editor'. node_modules/chrome-devtools-frontend/front_end/devices/DevicesView.js(372,3): error TS2416: Property 'beginEdit' in type 'PortForwardingView' is not assignable to the same property in base type 'Delegate<{ port: string; address: string; }>'. Type '(rule: { port: string; address: string; }) => Editor' is not assignable to type '(item: T) => Editor'. Types of parameters 'rule' and 'item' are incompatible. Type 'T' is not assignable to type '{ port: string; address: string; }'. -node_modules/chrome-devtools-frontend/front_end/devices/DevicesView.js(372,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. +node_modules/chrome-devtools-frontend/front_end/devices/DevicesView.js(372,3): error TS4122: This member cannot have a JSDoc comment with an '@override' tag because it is not declared in the base class 'VBox'. node_modules/chrome-devtools-frontend/front_end/devices/DevicesView.js(389,26): error TS2339: Property 'createChild' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/devices/DevicesView.js(441,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. node_modules/chrome-devtools-frontend/front_end/devices/DevicesView.js(449,47): error TS2339: Property 'createChild' does not exist on type 'Element'. @@ -5217,7 +5034,7 @@ node_modules/chrome-devtools-frontend/front_end/devices/DevicesView.js(535,3): e Type '(rule: { port: string; address: string; }, editable: boolean) => Element' is not assignable to type '(item: T, editable: boolean) => Element'. Types of parameters 'rule' and 'item' are incompatible. Type 'T' is not assignable to type '{ port: string; address: string; }'. -node_modules/chrome-devtools-frontend/front_end/devices/DevicesView.js(535,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. +node_modules/chrome-devtools-frontend/front_end/devices/DevicesView.js(535,3): error TS4122: This member cannot have a JSDoc comment with an '@override' tag because it is not declared in the base class 'VBox'. node_modules/chrome-devtools-frontend/front_end/devices/DevicesView.js(537,13): error TS2339: Property 'createChild' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/devices/DevicesView.js(546,3): error TS2416: Property 'removeItemRequested' in type 'NetworkDiscoveryView' is not assignable to the same property in base type 'Delegate<{ port: string; address: string; }>'. Type '(rule: { port: string; address: string; }, index: number) => void' is not assignable to type '(item: T, index: number) => void'. @@ -5225,21 +5042,21 @@ node_modules/chrome-devtools-frontend/front_end/devices/DevicesView.js(546,3): e Type '(rule: { port: string; address: string; }, index: number) => void' is not assignable to type '(item: T, index: number) => void'. Types of parameters 'rule' and 'item' are incompatible. Type 'T' is not assignable to type '{ port: string; address: string; }'. -node_modules/chrome-devtools-frontend/front_end/devices/DevicesView.js(546,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. +node_modules/chrome-devtools-frontend/front_end/devices/DevicesView.js(546,3): error TS4122: This member cannot have a JSDoc comment with an '@override' tag because it is not declared in the base class 'VBox'. node_modules/chrome-devtools-frontend/front_end/devices/DevicesView.js(558,3): error TS2416: Property 'commitEdit' in type 'NetworkDiscoveryView' is not assignable to the same property in base type 'Delegate<{ port: string; address: string; }>'. Type '(rule: { port: string; address: string; }, editor: Editor, isNew: boolean) => void' is not assignable to type '(item: T, editor: Editor, isNew: boolean) => void'. node_modules/chrome-devtools-frontend/front_end/devices/DevicesView.js(558,3): error TS2416: Property 'commitEdit' in type 'NetworkDiscoveryView' is not assignable to the same property in base type 'Delegate<{ port: string; address: string; }>'. Type '(rule: { port: string; address: string; }, editor: Editor, isNew: boolean) => void' is not assignable to type '(item: T, editor: Editor, isNew: boolean) => void'. Types of parameters 'rule' and 'item' are incompatible. Type 'T' is not assignable to type '{ port: string; address: string; }'. -node_modules/chrome-devtools-frontend/front_end/devices/DevicesView.js(558,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. +node_modules/chrome-devtools-frontend/front_end/devices/DevicesView.js(558,3): error TS4122: This member cannot have a JSDoc comment with an '@override' tag because it is not declared in the base class 'VBox'. node_modules/chrome-devtools-frontend/front_end/devices/DevicesView.js(570,3): error TS2416: Property 'beginEdit' in type 'NetworkDiscoveryView' is not assignable to the same property in base type 'Delegate<{ port: string; address: string; }>'. Type '(rule: { port: string; address: string; }) => Editor' is not assignable to type '(item: T) => Editor'. node_modules/chrome-devtools-frontend/front_end/devices/DevicesView.js(570,3): error TS2416: Property 'beginEdit' in type 'NetworkDiscoveryView' is not assignable to the same property in base type 'Delegate<{ port: string; address: string; }>'. Type '(rule: { port: string; address: string; }) => Editor' is not assignable to type '(item: T) => Editor'. Types of parameters 'rule' and 'item' are incompatible. Type 'T' is not assignable to type '{ port: string; address: string; }'. -node_modules/chrome-devtools-frontend/front_end/devices/DevicesView.js(570,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. +node_modules/chrome-devtools-frontend/front_end/devices/DevicesView.js(570,3): error TS4122: This member cannot have a JSDoc comment with an '@override' tag because it is not declared in the base class 'VBox'. node_modules/chrome-devtools-frontend/front_end/devices/DevicesView.js(586,26): error TS2339: Property 'createChild' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/devices/DevicesView.js(613,38): error TS2339: Property 'createChild' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/devices/DevicesView.js(616,44): error TS2339: Property 'createChild' does not exist on type 'Element'. @@ -5271,67 +5088,65 @@ node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(39,17) node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(56,63): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(224,13): error TS2339: Property 'keyIdentifier' does not exist on type '{ type: string; key: string; code: string; keyCode: number; modifiers: number; }'. node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(313,10): error TS2339: Property 'DevToolsAPI' does not exist on type 'Window & typeof globalThis'. -node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(326,5): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostImpl' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(334,5): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostImpl' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(342,5): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostImpl' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(350,5): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostImpl' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(358,5): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostImpl' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(365,5): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostImpl' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(326,5): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'InspectorFrontendHostImpl' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(334,5): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'InspectorFrontendHostImpl' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(342,5): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'InspectorFrontendHostImpl' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(350,5): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'InspectorFrontendHostImpl' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(358,5): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'InspectorFrontendHostImpl' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(365,5): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'InspectorFrontendHostImpl' does not extend another class. node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(371,18): error TS2339: Property 'DevToolsAPI' does not exist on type 'Window & typeof globalThis'. -node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(378,5): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostImpl' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(385,5): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostImpl' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(378,5): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'InspectorFrontendHostImpl' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(385,5): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'InspectorFrontendHostImpl' does not extend another class. node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(392,16): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(394,5): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostImpl' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(403,5): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostImpl' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(410,5): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostImpl' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(394,5): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'InspectorFrontendHostImpl' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(403,5): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'InspectorFrontendHostImpl' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(410,5): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'InspectorFrontendHostImpl' does not extend another class. node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(419,16): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(421,5): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostImpl' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(421,5): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'InspectorFrontendHostImpl' does not extend another class. node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(423,71): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(428,16): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(430,5): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostImpl' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(430,5): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'InspectorFrontendHostImpl' does not extend another class. node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(431,74): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(439,5): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostImpl' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(447,5): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostImpl' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(454,5): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostImpl' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(463,5): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostImpl' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(471,5): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostImpl' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(479,5): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostImpl' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(487,5): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostImpl' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(495,5): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostImpl' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(505,5): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostImpl' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(514,5): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostImpl' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(522,5): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostImpl' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(532,5): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostImpl' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(542,5): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostImpl' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(550,5): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostImpl' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(558,5): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostImpl' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(568,5): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostImpl' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(574,17): error TS2304: Cannot find name 'FileSystem'. -node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(576,5): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostImpl' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(585,5): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostImpl' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(593,5): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostImpl' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(603,5): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostImpl' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(611,5): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostImpl' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(618,5): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostImpl' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(625,5): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostImpl' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(632,5): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostImpl' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(640,5): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostImpl' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(648,5): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostImpl' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(656,5): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostImpl' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(439,5): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'InspectorFrontendHostImpl' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(447,5): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'InspectorFrontendHostImpl' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(454,5): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'InspectorFrontendHostImpl' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(463,5): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'InspectorFrontendHostImpl' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(471,5): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'InspectorFrontendHostImpl' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(479,5): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'InspectorFrontendHostImpl' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(487,5): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'InspectorFrontendHostImpl' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(495,5): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'InspectorFrontendHostImpl' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(505,5): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'InspectorFrontendHostImpl' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(514,5): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'InspectorFrontendHostImpl' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(522,5): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'InspectorFrontendHostImpl' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(532,5): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'InspectorFrontendHostImpl' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(542,5): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'InspectorFrontendHostImpl' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(550,5): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'InspectorFrontendHostImpl' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(558,5): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'InspectorFrontendHostImpl' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(568,5): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'InspectorFrontendHostImpl' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(576,5): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'InspectorFrontendHostImpl' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(585,5): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'InspectorFrontendHostImpl' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(593,5): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'InspectorFrontendHostImpl' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(603,5): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'InspectorFrontendHostImpl' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(611,5): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'InspectorFrontendHostImpl' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(618,5): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'InspectorFrontendHostImpl' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(625,5): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'InspectorFrontendHostImpl' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(632,5): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'InspectorFrontendHostImpl' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(640,5): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'InspectorFrontendHostImpl' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(648,5): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'InspectorFrontendHostImpl' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(656,5): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'InspectorFrontendHostImpl' does not extend another class. node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(662,16): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(664,5): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostImpl' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(671,5): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostImpl' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(678,5): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostImpl' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(686,5): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostImpl' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(694,5): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostImpl' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(708,5): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostImpl' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(717,5): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostImpl' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(726,5): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostImpl' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(733,5): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostImpl' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(744,5): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostImpl' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(752,5): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostImpl' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(664,5): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'InspectorFrontendHostImpl' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(671,5): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'InspectorFrontendHostImpl' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(678,5): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'InspectorFrontendHostImpl' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(686,5): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'InspectorFrontendHostImpl' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(694,5): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'InspectorFrontendHostImpl' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(708,5): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'InspectorFrontendHostImpl' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(717,5): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'InspectorFrontendHostImpl' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(726,5): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'InspectorFrontendHostImpl' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(733,5): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'InspectorFrontendHostImpl' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(744,5): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'InspectorFrontendHostImpl' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(752,5): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'InspectorFrontendHostImpl' does not extend another class. node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(1059,16): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(1075,9): error TS2304: Cannot find name 'setImmediate'. node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(1123,19): error TS2339: Property 'observe' does not exist on type 'ObjectConstructor'. node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(1224,18): error TS2304: Cannot find name 'CSSValue'. node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(1231,28): error TS2304: Cannot find name 'CSSValue'. @@ -5339,8 +5154,8 @@ node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(1246,4 node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(1251,12): error TS2339: Property 'CSSPrimitiveValue' does not exist on type 'Window & typeof globalThis'. node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(1267,21): error TS2339: Property 'deepPath' does not exist on type 'Event'. node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(1270,12): error TS2339: Property 'FileError' does not exist on type 'Window & typeof globalThis'. -node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(1270,28): error TS2352: Conversion of type '{ NOT_FOUND_ERR: number; ABORT_ERR: number; INVALID_MODIFICATION_ERR: number; NOT_READABLE_ERR: number; }' to type 'new () => any' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first. - Type '{ NOT_FOUND_ERR: number; ABORT_ERR: number; INVALID_MODIFICATION_ERR: number; NOT_READABLE_ERR: number; }' provides no match for the signature 'new (): any'. +node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(1270,35): error TS2352: Conversion of type '{ NOT_FOUND_ERR: number; ABORT_ERR: number; INVALID_MODIFICATION_ERR: number; NOT_READABLE_ERR: number; }' to type 'new () => FileError' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first. + Type '{ NOT_FOUND_ERR: number; ABORT_ERR: number; INVALID_MODIFICATION_ERR: number; NOT_READABLE_ERR: number; }' provides no match for the signature 'new (): FileError'. node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(1270,51): error TS2304: Cannot find name 'FileError'. node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(1290,26): error TS2339: Property '__originalDOMTokenListToggle' does not exist on type 'DOMTokenList'. node_modules/chrome-devtools-frontend/front_end/devtools_compatibility.js(1292,31): error TS2339: Property '__originalDOMTokenListToggle' does not exist on type 'DOMTokenList'. @@ -5416,11 +5231,12 @@ node_modules/chrome-devtools-frontend/front_end/dom_extension/DOMExtension.js(22 node_modules/chrome-devtools-frontend/front_end/dom_extension/DOMExtension.js(234,16): error TS2339: Property 'parentElementOrShadowHost' does not exist on type 'Node'. node_modules/chrome-devtools-frontend/front_end/dom_extension/DOMExtension.js(235,61): error TS2339: Property 'host' does not exist on type 'Node'. node_modules/chrome-devtools-frontend/front_end/dom_extension/DOMExtension.js(236,42): error TS2339: Property 'host' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/dom_extension/DOMExtension.js(243,42): error TS2339: Property 'host' does not exist on type 'Node & ParentNode'. +node_modules/chrome-devtools-frontend/front_end/dom_extension/DOMExtension.js(243,42): error TS2339: Property 'host' does not exist on type 'ParentNode'. node_modules/chrome-devtools-frontend/front_end/dom_extension/DOMExtension.js(250,16): error TS2339: Property 'parentNodeOrShadowHost' does not exist on type 'Node'. node_modules/chrome-devtools-frontend/front_end/dom_extension/DOMExtension.js(253,61): error TS2339: Property 'host' does not exist on type 'Node'. node_modules/chrome-devtools-frontend/front_end/dom_extension/DOMExtension.js(254,17): error TS2339: Property 'host' does not exist on type 'Node'. node_modules/chrome-devtools-frontend/front_end/dom_extension/DOMExtension.js(261,16): error TS2339: Property 'getComponentSelection' does not exist on type 'Node'. +node_modules/chrome-devtools-frontend/front_end/dom_extension/DOMExtension.js(265,48): error TS2339: Property 'getSelection' does not exist on type 'ShadowRoot'. node_modules/chrome-devtools-frontend/front_end/dom_extension/DOMExtension.js(265,70): error TS2339: Property 'window' does not exist on type 'Node'. node_modules/chrome-devtools-frontend/front_end/dom_extension/DOMExtension.js(271,16): error TS2339: Property 'hasSelection' does not exist on type 'Node'. node_modules/chrome-devtools-frontend/front_end/dom_extension/DOMExtension.js(273,23): error TS2339: Property 'querySelectorAll' does not exist on type 'Node'. @@ -5428,7 +5244,7 @@ node_modules/chrome-devtools-frontend/front_end/dom_extension/DOMExtension.js(27 node_modules/chrome-devtools-frontend/front_end/dom_extension/DOMExtension.js(289,16): error TS2339: Property 'window' does not exist on type 'Node'. node_modules/chrome-devtools-frontend/front_end/dom_extension/DOMExtension.js(293,19): error TS2339: Property 'removeChildren' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/dom_extension/DOMExtension.js(305,10): error TS2769: No overload matches this call. - Overload 1 of 3, '(tagName: keyof HTMLElementTagNameMap, options?: ElementCreationOptions): HTMLElement | HTMLCanvasElement | ... 68 more ... | HTMLUListElement', gave the following error. + Overload 1 of 3, '(tagName: keyof HTMLElementTagNameMap, options?: ElementCreationOptions): HTMLElement | HTMLCanvasElement | ... 66 more ... | HTMLUListElement', gave the following error. Argument of type 'string' is not assignable to parameter of type 'keyof HTMLElementTagNameMap'. Overload 2 of 3, '(tagName: keyof HTMLElementDeprecatedTagNameMap, options?: ElementCreationOptions): HTMLPreElement', gave the following error. Argument of type 'string' is not assignable to parameter of type 'keyof HTMLElementDeprecatedTagNameMap'. @@ -5438,7 +5254,7 @@ node_modules/chrome-devtools-frontend/front_end/dom_extension/DOMExtension.js(31 Type 'number' is not assignable to type 'string'. node_modules/chrome-devtools-frontend/front_end/dom_extension/DOMExtension.js(323,20): error TS2339: Property 'createElementWithClass' does not exist on type 'Document'. node_modules/chrome-devtools-frontend/front_end/dom_extension/DOMExtension.js(324,17): error TS2769: No overload matches this call. - Overload 1 of 3, '(tagName: keyof HTMLElementTagNameMap, options?: ElementCreationOptions): HTMLElement | HTMLCanvasElement | ... 68 more ... | HTMLUListElement', gave the following error. + Overload 1 of 3, '(tagName: keyof HTMLElementTagNameMap, options?: ElementCreationOptions): HTMLElement | HTMLCanvasElement | ... 66 more ... | HTMLUListElement', gave the following error. Argument of type 'string' is not assignable to parameter of type 'keyof HTMLElementTagNameMap'. Overload 2 of 3, '(tagName: keyof HTMLElementDeprecatedTagNameMap, options?: ElementCreationOptions): HTMLPreElement', gave the following error. Argument of type 'string' is not assignable to parameter of type 'keyof HTMLElementDeprecatedTagNameMap'. @@ -5470,7 +5286,6 @@ node_modules/chrome-devtools-frontend/front_end/dom_extension/DOMExtension.js(49 node_modules/chrome-devtools-frontend/front_end/dom_extension/DOMExtension.js(503,31): error TS2339: Property 'totalOffsetLeft' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/dom_extension/DOMExtension.js(504,31): error TS2339: Property 'totalOffsetTop' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/dom_extension/DOMExtension.js(508,5): error TS2322: Type 'Window' is not assignable to type 'Window & typeof globalThis'. - Type 'Window' is not assignable to type 'typeof globalThis'. node_modules/chrome-devtools-frontend/front_end/dom_extension/DOMExtension.js(511,35): error TS2339: Property 'offsetWidth' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/dom_extension/DOMExtension.js(512,36): error TS2339: Property 'offsetHeight' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/dom_extension/DOMExtension.js(519,17): error TS2339: Property 'consume' does not exist on type 'Event'. @@ -5517,7 +5332,7 @@ node_modules/chrome-devtools-frontend/front_end/dom_extension/DOMExtension.js(74 node_modules/chrome-devtools-frontend/front_end/dom_extension/DOMExtension.js(745,48): error TS2339: Property 'pageX' does not exist on type 'Event'. node_modules/chrome-devtools-frontend/front_end/dom_extension/DOMExtension.js(745,60): error TS2339: Property 'pageY' does not exist on type 'Event'. node_modules/chrome-devtools-frontend/front_end/dom_extension/DOMExtension.js(753,20): error TS2339: Property 'deepElementFromPoint' does not exist on type 'Document'. -node_modules/chrome-devtools-frontend/front_end/dom_extension/DOMExtension.js(761,5): error TS2740: Type 'ShadowRoot' is missing the following properties from type 'Document': URL, alinkColor, all, anchors, and 168 more. +node_modules/chrome-devtools-frontend/front_end/dom_extension/DOMExtension.js(761,5): error TS2740: Type 'ShadowRoot' is missing the following properties from type 'Document': URL, alinkColor, all, anchors, and 178 more. node_modules/chrome-devtools-frontend/front_end/dom_extension/DOMExtension.js(766,28): error TS2339: Property 'deepElementFromPoint' does not exist on type 'DocumentFragment'. node_modules/chrome-devtools-frontend/front_end/dom_extension/DOMExtension.js(766,70): error TS2339: Property 'deepElementFromPoint' does not exist on type 'Document'. node_modules/chrome-devtools-frontend/front_end/dom_extension/DOMExtension.js(771,20): error TS2339: Property 'deepActiveElement' does not exist on type 'Document'. @@ -5540,7 +5355,7 @@ node_modules/chrome-devtools-frontend/front_end/elements/ClassesPaneWidget.js(13 node_modules/chrome-devtools-frontend/front_end/elements/ClassesPaneWidget.js(134,22): error TS2339: Property 'caseInsensetiveComparator' does not exist on type 'StringConstructor'. node_modules/chrome-devtools-frontend/front_end/elements/ClassesPaneWidget.js(152,32): error TS2339: Property 'checked' does not exist on type 'EventTarget'. node_modules/chrome-devtools-frontend/front_end/elements/ClassesPaneWidget.js(203,36): error TS2339: Property 'valuesArray' does not exist on type 'Set'. -node_modules/chrome-devtools-frontend/front_end/elements/ClassesPaneWidget.js(256,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ButtonProvider' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/elements/ClassesPaneWidget.js(256,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'ButtonProvider' does not extend another class. node_modules/chrome-devtools-frontend/front_end/elements/ClassesPaneWidget.js(291,94): error TS2339: Property 'addAll' does not exist on type 'Set'. node_modules/chrome-devtools-frontend/front_end/elements/ClassesPaneWidget.js(297,55): error TS2339: Property 'addAll' does not exist on type 'Set'. node_modules/chrome-devtools-frontend/front_end/elements/ClassesPaneWidget.js(299,57): error TS2339: Property 'valuesArray' does not exist on type 'Set'. @@ -5564,22 +5379,7 @@ node_modules/chrome-devtools-frontend/front_end/elements/ComputedStyleModel.js(1 Type 'Map' is missing the following properties from type 'ComputedStyle': node, computedStyle node_modules/chrome-devtools-frontend/front_end/elements/ComputedStyleWidget.js(48,36): error TS2339: Property 'createChild' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/elements/ComputedStyleWidget.js(73,12): error TS2339: Property '_filterRegex' does not exist on type 'ComputedStyleWidget'. -node_modules/chrome-devtools-frontend/front_end/elements/ComputedStyleWidget.js(91,24): error TS2769: No overload matches this call. - The last overload gave the following error. - Argument of type '(Promise | Promise)[]' is not assignable to parameter of type 'Iterable>'. - The types returned by '[Symbol.iterator]().next(...)' are incompatible between these types. - Type 'IteratorResult | Promise, any>' is not assignable to type 'IteratorResult, any>'. - Type 'IteratorYieldResult | Promise>' is not assignable to type 'IteratorResult, any>'. - Type 'IteratorYieldResult | Promise>' is not assignable to type 'IteratorYieldResult>'. - Type 'Promise | Promise' is not assignable to type 'CSSMatchedStyles | PromiseLike'. - Type 'Promise' is not assignable to type 'CSSMatchedStyles | PromiseLike'. - Type 'Promise' is not assignable to type 'PromiseLike'. - Types of property 'then' are incompatible. - Type '(onfulfilled?: (value: ComputedStyle) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike<...>) => Promise<...>' is not assignable to type '(onfulfilled?: (value: CSSMatchedStyles) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike<...>) => PromiseLike<...>'. - Types of parameters 'onfulfilled' and 'onfulfilled' are incompatible. - Types of parameters 'value' and 'value' are incompatible. - Type 'ComputedStyle' is missing the following properties from type 'CSSMatchedStyles': _cssModel, _node, _nodeStyles, _nodeForStyle, and 22 more. -node_modules/chrome-devtools-frontend/front_end/elements/ComputedStyleWidget.js(91,34): error TS2339: Property 'spread' does not exist on type 'Promise<[any, any, any, any, any, any, any, any, any, any]>'. +node_modules/chrome-devtools-frontend/front_end/elements/ComputedStyleWidget.js(91,34): error TS2339: Property 'spread' does not exist on type 'Promise<(CSSMatchedStyles | ComputedStyle)[]>'. node_modules/chrome-devtools-frontend/front_end/elements/ComputedStyleWidget.js(147,52): error TS2339: Property 'keysArray' does not exist on type 'Map'. node_modules/chrome-devtools-frontend/front_end/elements/ComputedStyleWidget.js(179,50): error TS2339: Property 'createChild' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/elements/ComputedStyleWidget.js(200,74): error TS2339: Property 'consume' does not exist on type 'Event'. @@ -5599,7 +5399,7 @@ node_modules/chrome-devtools-frontend/front_end/elements/ElementStatePaneWidget. node_modules/chrome-devtools-frontend/front_end/elements/ElementStatePaneWidget.js(43,20): error TS2339: Property 'createChild' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/elements/ElementStatePaneWidget.js(47,16): error TS2339: Property 'createChild' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/elements/ElementStatePaneWidget.js(51,16): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/elements/ElementStatePaneWidget.js(123,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ButtonProvider' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/elements/ElementStatePaneWidget.js(123,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'ButtonProvider' does not extend another class. node_modules/chrome-devtools-frontend/front_end/elements/ElementsBreadcrumbs.js(12,46): error TS2339: Property 'createChild' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/elements/ElementsBreadcrumbs.js(86,37): error TS2339: Property 'nextSiblingElement' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/elements/ElementsBreadcrumbs.js(215,38): error TS2339: Property 'offsetWidth' does not exist on type 'Element'. @@ -5610,7 +5410,7 @@ node_modules/chrome-devtools-frontend/front_end/elements/ElementsPanel.js(83,51) Type '(domModel: DOMModel) => void' is not assignable to type '(model: T) => void'. node_modules/chrome-devtools-frontend/front_end/elements/ElementsPanel.js(90,32): error TS2339: Property 'addEventListener' does not exist on type 'typeof extensionServer'. node_modules/chrome-devtools-frontend/front_end/elements/ElementsPanel.js(105,33): error TS2339: Property 'showView' does not exist on type 'TabbedViewLocation'. -node_modules/chrome-devtools-frontend/front_end/elements/ElementsPanel.js(115,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Panel'. +node_modules/chrome-devtools-frontend/front_end/elements/ElementsPanel.js(115,3): error TS4122: This member cannot have a JSDoc comment with an '@override' tag because it is not declared in the base class 'Panel'. node_modules/chrome-devtools-frontend/front_end/elements/ElementsPanel.js(116,5): error TS2739: Type 'TabbedViewLocation' is missing the following properties from type 'ViewLocation': appendApplicableItems, appendView, showView, removeView, widget node_modules/chrome-devtools-frontend/front_end/elements/ElementsPanel.js(132,3): error TS2416: Property 'modelAdded' in type 'ElementsPanel' is not assignable to the same property in base type 'SDKModelObserver'. Type '(domModel: DOMModel) => void' is not assignable to type '(model: T) => void'. @@ -5618,14 +5418,14 @@ node_modules/chrome-devtools-frontend/front_end/elements/ElementsPanel.js(132,3) Type '(domModel: DOMModel) => void' is not assignable to type '(model: T) => void'. Types of parameters 'domModel' and 'model' are incompatible. Type 'T' is not assignable to type 'DOMModel'. -node_modules/chrome-devtools-frontend/front_end/elements/ElementsPanel.js(132,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Panel'. +node_modules/chrome-devtools-frontend/front_end/elements/ElementsPanel.js(132,3): error TS4122: This member cannot have a JSDoc comment with an '@override' tag because it is not declared in the base class 'Panel'. node_modules/chrome-devtools-frontend/front_end/elements/ElementsPanel.js(156,3): error TS2416: Property 'modelRemoved' in type 'ElementsPanel' is not assignable to the same property in base type 'SDKModelObserver'. Type '(domModel: DOMModel) => void' is not assignable to type '(model: T) => void'. node_modules/chrome-devtools-frontend/front_end/elements/ElementsPanel.js(156,3): error TS2416: Property 'modelRemoved' in type 'ElementsPanel' is not assignable to the same property in base type 'SDKModelObserver'. Type '(domModel: DOMModel) => void' is not assignable to type '(model: T) => void'. Types of parameters 'domModel' and 'model' are incompatible. Type 'T' is not assignable to type 'DOMModel'. -node_modules/chrome-devtools-frontend/front_end/elements/ElementsPanel.js(156,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Panel'. +node_modules/chrome-devtools-frontend/front_end/elements/ElementsPanel.js(156,3): error TS4122: This member cannot have a JSDoc comment with an '@override' tag because it is not declared in the base class 'Panel'. node_modules/chrome-devtools-frontend/front_end/elements/ElementsPanel.js(159,24): error TS2339: Property 'remove' does not exist on type 'ElementsTreeOutline[]'. node_modules/chrome-devtools-frontend/front_end/elements/ElementsPanel.js(180,12): error TS2339: Property 'removeChildren' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/elements/ElementsPanel.js(181,12): error TS2339: Property 'createChild' does not exist on type 'Element'. @@ -5637,9 +5437,9 @@ node_modules/chrome-devtools-frontend/front_end/elements/ElementsPanel.js(310,17 node_modules/chrome-devtools-frontend/front_end/elements/ElementsPanel.js(361,54): error TS2339: Property 'body' does not exist on type 'DOMDocument'. node_modules/chrome-devtools-frontend/front_end/elements/ElementsPanel.js(361,80): error TS2339: Property 'documentElement' does not exist on type 'DOMDocument'. node_modules/chrome-devtools-frontend/front_end/elements/ElementsPanel.js(375,58): error TS2339: Property '_pendingNodeReveal' does not exist on type 'ElementsPanel'. -node_modules/chrome-devtools-frontend/front_end/elements/ElementsPanel.js(388,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Panel'. +node_modules/chrome-devtools-frontend/front_end/elements/ElementsPanel.js(388,3): error TS4122: This member cannot have a JSDoc comment with an '@override' tag because it is not declared in the base class 'Panel'. node_modules/chrome-devtools-frontend/front_end/elements/ElementsPanel.js(395,17): error TS2339: Property '_searchResults' does not exist on type 'ElementsPanel'. -node_modules/chrome-devtools-frontend/front_end/elements/ElementsPanel.js(406,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Panel'. +node_modules/chrome-devtools-frontend/front_end/elements/ElementsPanel.js(406,3): error TS4122: This member cannot have a JSDoc comment with an '@override' tag because it is not declared in the base class 'Panel'. node_modules/chrome-devtools-frontend/front_end/elements/ElementsPanel.js(433,12): error TS2339: Property '_searchResults' does not exist on type 'ElementsPanel'. node_modules/chrome-devtools-frontend/front_end/elements/ElementsPanel.js(437,16): error TS2339: Property '_searchResults' does not exist on type 'ElementsPanel'. node_modules/chrome-devtools-frontend/front_end/elements/ElementsPanel.js(439,58): error TS2339: Property '_searchResults' does not exist on type 'ElementsPanel'. @@ -5650,12 +5450,12 @@ node_modules/chrome-devtools-frontend/front_end/elements/ElementsPanel.js(481,5) node_modules/chrome-devtools-frontend/front_end/elements/ElementsPanel.js(482,17): error TS2339: Property 'boxInWindow' does not exist on type 'EventTarget'. node_modules/chrome-devtools-frontend/front_end/elements/ElementsPanel.js(497,52): error TS2339: Property '_searchResults' does not exist on type 'ElementsPanel'. node_modules/chrome-devtools-frontend/front_end/elements/ElementsPanel.js(497,82): error TS2339: Property '_searchResults' does not exist on type 'ElementsPanel'. -node_modules/chrome-devtools-frontend/front_end/elements/ElementsPanel.js(504,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Panel'. +node_modules/chrome-devtools-frontend/front_end/elements/ElementsPanel.js(504,3): error TS4122: This member cannot have a JSDoc comment with an '@override' tag because it is not declared in the base class 'Panel'. node_modules/chrome-devtools-frontend/front_end/elements/ElementsPanel.js(505,15): error TS2339: Property '_searchResults' does not exist on type 'ElementsPanel'. -node_modules/chrome-devtools-frontend/front_end/elements/ElementsPanel.js(513,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Panel'. +node_modules/chrome-devtools-frontend/front_end/elements/ElementsPanel.js(513,3): error TS4122: This member cannot have a JSDoc comment with an '@override' tag because it is not declared in the base class 'Panel'. node_modules/chrome-devtools-frontend/front_end/elements/ElementsPanel.js(514,15): error TS2339: Property '_searchResults' does not exist on type 'ElementsPanel'. -node_modules/chrome-devtools-frontend/front_end/elements/ElementsPanel.js(523,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Panel'. -node_modules/chrome-devtools-frontend/front_end/elements/ElementsPanel.js(531,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Panel'. +node_modules/chrome-devtools-frontend/front_end/elements/ElementsPanel.js(523,3): error TS4122: This member cannot have a JSDoc comment with an '@override' tag because it is not declared in the base class 'Panel'. +node_modules/chrome-devtools-frontend/front_end/elements/ElementsPanel.js(531,3): error TS4122: This member cannot have a JSDoc comment with an '@override' tag because it is not declared in the base class 'Panel'. node_modules/chrome-devtools-frontend/front_end/elements/ElementsPanel.js(537,30): error TS2339: Property '_searchResults' does not exist on type 'ElementsPanel'. node_modules/chrome-devtools-frontend/front_end/elements/ElementsPanel.js(560,20): error TS2339: Property 'scrollIntoViewIfNeeded' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/elements/ElementsPanel.js(565,15): error TS2339: Property '_searchResults' does not exist on type 'ElementsPanel'. @@ -5672,17 +5472,17 @@ node_modules/chrome-devtools-frontend/front_end/elements/ElementsPanel.js(786,26 node_modules/chrome-devtools-frontend/front_end/elements/ElementsPanel.js(805,28): error TS2339: Property 'appendView' does not exist on type 'TabbedViewLocation'. node_modules/chrome-devtools-frontend/front_end/elements/ElementsPanel.js(811,26): error TS2339: Property 'appendApplicableItems' does not exist on type 'TabbedViewLocation'. node_modules/chrome-devtools-frontend/front_end/elements/ElementsPanel.js(834,28): error TS2339: Property 'appendView' does not exist on type 'TabbedViewLocation'. -node_modules/chrome-devtools-frontend/front_end/elements/ElementsPanel.js(858,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ContextMenuProvider' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/elements/ElementsPanel.js(858,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'ContextMenuProvider' does not extend another class. node_modules/chrome-devtools-frontend/front_end/elements/ElementsPanel.js(864,51): error TS2339: Property 'isAncestor' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/elements/ElementsPanel.js(882,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'DOMNodeRevealer' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/elements/ElementsPanel.js(882,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'DOMNodeRevealer' does not extend another class. node_modules/chrome-devtools-frontend/front_end/elements/ElementsPanel.js(884,11): error TS2339: Property '_pendingNodeReveal' does not exist on type 'ElementsPanel'. node_modules/chrome-devtools-frontend/front_end/elements/ElementsPanel.js(889,16): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. node_modules/chrome-devtools-frontend/front_end/elements/ElementsPanel.js(890,16): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. node_modules/chrome-devtools-frontend/front_end/elements/ElementsPanel.js(905,15): error TS2339: Property '_pendingNodeReveal' does not exist on type 'ElementsPanel'. node_modules/chrome-devtools-frontend/front_end/elements/ElementsPanel.js(912,15): error TS2339: Property '_pendingNodeReveal' does not exist on type 'ElementsPanel'. -node_modules/chrome-devtools-frontend/front_end/elements/ElementsPanel.js(934,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'CSSPropertyRevealer' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/elements/ElementsPanel.js(952,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ElementsActionDelegate' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/elements/ElementsPanel.js(982,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'PseudoStateMarkerDecorator' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/elements/ElementsPanel.js(934,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'CSSPropertyRevealer' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/elements/ElementsPanel.js(952,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'ElementsActionDelegate' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/elements/ElementsPanel.js(982,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'PseudoStateMarkerDecorator' does not extend another class. node_modules/chrome-devtools-frontend/front_end/elements/ElementsTreeElement.js(44,50): error TS2339: Property 'createChild' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/elements/ElementsTreeElement.js(239,29): error TS2339: Property 'style' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/elements/ElementsTreeElement.js(246,48): error TS2339: Property 'createChild' does not exist on type 'Element'. @@ -5712,9 +5512,7 @@ node_modules/chrome-devtools-frontend/front_end/elements/ElementsTreeElement.js( node_modules/chrome-devtools-frontend/front_end/elements/ElementsTreeElement.js(534,54): error TS2339: Property 'toggleHideElement' does not exist on type 'TreeOutline'. node_modules/chrome-devtools-frontend/front_end/elements/ElementsTreeElement.js(535,21): error TS2339: Property 'isToggledToHidden' does not exist on type 'TreeOutline'. node_modules/chrome-devtools-frontend/front_end/elements/ElementsTreeElement.js(541,44): error TS2345: Argument of type 'TemplateStringsArray' is not assignable to parameter of type 'string | string[]'. - Type 'TemplateStringsArray' is not assignable to type 'string[]'. node_modules/chrome-devtools-frontend/front_end/elements/ElementsTreeElement.js(542,44): error TS2345: Argument of type 'TemplateStringsArray' is not assignable to parameter of type 'string | string[]'. - Type 'TemplateStringsArray' is not assignable to type 'string[]'. node_modules/chrome-devtools-frontend/front_end/elements/ElementsTreeElement.js(546,26): error TS2339: Property 'selectedDOMNode' does not exist on type 'TreeOutline'. node_modules/chrome-devtools-frontend/front_end/elements/ElementsTreeElement.js(575,10): error TS2339: Property 'style' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/elements/ElementsTreeElement.js(576,10): error TS2339: Property 'style' does not exist on type 'Element'. @@ -5819,11 +5617,11 @@ node_modules/chrome-devtools-frontend/front_end/elements/ElementsTreeOutline.js( node_modules/chrome-devtools-frontend/front_end/elements/ElementsTreeOutline.js(755,33): error TS2339: Property 'enclosingNodeOrSelfWithClass' does not exist on type 'EventTarget'. node_modules/chrome-devtools-frontend/front_end/elements/ElementsTreeOutline.js(758,36): error TS2339: Property 'enclosingNodeOrSelfWithClass' does not exist on type 'EventTarget'. node_modules/chrome-devtools-frontend/front_end/elements/ElementsTreeOutline.js(813,22): error TS2339: Property 'index' does not exist on type 'DOMNode'. -node_modules/chrome-devtools-frontend/front_end/elements/ElementsTreeOutline.js(920,9): error TS2740: Type 'Node & ParentNode' is missing the following properties from type 'Element': attributes, classList, className, clientHeight, and 64 more. +node_modules/chrome-devtools-frontend/front_end/elements/ElementsTreeOutline.js(920,9): error TS2740: Type 'ParentNode' is missing the following properties from type 'Element': attributes, classList, className, clientHeight, and 101 more. node_modules/chrome-devtools-frontend/front_end/elements/ElementsTreeOutline.js(930,13): error TS2339: Property 'type' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/elements/ElementsTreeOutline.js(1106,44): error TS2339: Property 'keysArray' does not exist on type 'Map'. -node_modules/chrome-devtools-frontend/front_end/elements/ElementsTreeOutline.js(1110,89): error TS2339: Property 'scrollTop' does not exist on type 'Node & ParentNode'. -node_modules/chrome-devtools-frontend/front_end/elements/ElementsTreeOutline.js(1130,37): error TS2339: Property 'scrollTop' does not exist on type 'Node & ParentNode'. +node_modules/chrome-devtools-frontend/front_end/elements/ElementsTreeOutline.js(1110,89): error TS2339: Property 'scrollTop' does not exist on type 'ParentNode'. +node_modules/chrome-devtools-frontend/front_end/elements/ElementsTreeOutline.js(1130,37): error TS2339: Property 'scrollTop' does not exist on type 'ParentNode'. node_modules/chrome-devtools-frontend/front_end/elements/ElementsTreeOutline.js(1258,12): error TS2339: Property 'value' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/elements/ElementsTreeOutline.js(1261,28): error TS2339: Property 'expandAllButton' does not exist on type 'TreeElement'. node_modules/chrome-devtools-frontend/front_end/elements/ElementsTreeOutline.js(1262,28): error TS2339: Property 'button' does not exist on type 'TreeElement'. @@ -5837,7 +5635,7 @@ node_modules/chrome-devtools-frontend/front_end/elements/ElementsTreeOutline.js( node_modules/chrome-devtools-frontend/front_end/elements/ElementsTreeOutline.js(1409,19): error TS2339: Property 'expandAllButtonElement' does not exist on type 'ElementsTreeElement'. node_modules/chrome-devtools-frontend/front_end/elements/ElementsTreeOutline.js(1411,28): error TS2339: Property 'expandAllButtonElement' does not exist on type 'ElementsTreeElement'. node_modules/chrome-devtools-frontend/front_end/elements/ElementsTreeOutline.js(1412,26): error TS2339: Property 'expandAllButtonElement' does not exist on type 'ElementsTreeElement'. -node_modules/chrome-devtools-frontend/front_end/elements/ElementsTreeOutline.js(1568,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'Renderer' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/elements/ElementsTreeOutline.js(1568,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'Renderer' does not extend another class. node_modules/chrome-devtools-frontend/front_end/elements/ElementsTreeOutline.js(1572,16): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. node_modules/chrome-devtools-frontend/front_end/elements/ElementsTreeOutline.js(1573,16): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. node_modules/chrome-devtools-frontend/front_end/elements/ElementsTreeOutline.js(1597,29): error TS2339: Property 'treeElementForTest' does not exist on type 'Element'. @@ -5847,7 +5645,7 @@ node_modules/chrome-devtools-frontend/front_end/elements/ElementsTreeOutline.js( node_modules/chrome-devtools-frontend/front_end/elements/ElementsTreeOutline.js(1622,10): error TS2339: Property 'classList' does not exist on type 'Node'. node_modules/chrome-devtools-frontend/front_end/elements/ElementsTreeOutline.js(1675,26): error TS2339: Property '_selectedDOMNode' does not exist on type 'TreeOutline'. node_modules/chrome-devtools-frontend/front_end/elements/ElementsTreeOutline.js(1676,26): error TS2339: Property '_selectedNodeChanged' does not exist on type 'TreeOutline'. -node_modules/chrome-devtools-frontend/front_end/elements/EventListenersWidget.js(121,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'ThrottledWidget'. +node_modules/chrome-devtools-frontend/front_end/elements/EventListenersWidget.js(121,3): error TS4122: This member cannot have a JSDoc comment with an '@override' tag because it is not declared in the base class 'ThrottledWidget'. node_modules/chrome-devtools-frontend/front_end/elements/EventListenersWidget.js(129,52): error TS2339: Property 'value' does not exist on type 'EventTarget'. node_modules/chrome-devtools-frontend/front_end/elements/InspectElementModeController.js(40,55): error TS2345: Argument of type 'this' is not assignable to parameter of type 'SDKModelObserver'. Type 'InspectElementModeController' is not assignable to type 'SDKModelObserver'. @@ -5859,32 +5657,17 @@ node_modules/chrome-devtools-frontend/front_end/elements/InspectElementModeContr Type '(overlayModel: OverlayModel) => void' is not assignable to type '(model: T) => void'. Types of parameters 'overlayModel' and 'model' are incompatible. Type 'T' is not assignable to type 'OverlayModel'. -node_modules/chrome-devtools-frontend/front_end/elements/InspectElementModeController.js(47,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectElementModeController' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/elements/InspectElementModeController.js(47,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'InspectElementModeController' does not extend another class. node_modules/chrome-devtools-frontend/front_end/elements/InspectElementModeController.js(59,3): error TS2416: Property 'modelRemoved' in type 'InspectElementModeController' is not assignable to the same property in base type 'SDKModelObserver'. Type '(overlayModel: OverlayModel) => void' is not assignable to type '(model: T) => void'. node_modules/chrome-devtools-frontend/front_end/elements/InspectElementModeController.js(59,3): error TS2416: Property 'modelRemoved' in type 'InspectElementModeController' is not assignable to the same property in base type 'SDKModelObserver'. Type '(overlayModel: OverlayModel) => void' is not assignable to type '(model: T) => void'. Types of parameters 'overlayModel' and 'model' are incompatible. Type 'T' is not assignable to type 'OverlayModel'. -node_modules/chrome-devtools-frontend/front_end/elements/InspectElementModeController.js(59,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectElementModeController' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/elements/InspectElementModeController.js(59,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'InspectElementModeController' does not extend another class. node_modules/chrome-devtools-frontend/front_end/elements/InspectElementModeController.js(91,24): error TS2694: Namespace 'Protocol' has no exported member 'Overlay'. -node_modules/chrome-devtools-frontend/front_end/elements/InspectElementModeController.js(120,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ToggleSearchActionDelegate' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/elements/InspectElementModeController.js(120,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'ToggleSearchActionDelegate' does not extend another class. node_modules/chrome-devtools-frontend/front_end/elements/MetricsSidebarPane.js(56,27): error TS2339: Property 'removeChildren' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/elements/MetricsSidebarPane.js(82,24): error TS2769: No overload matches this call. - The last overload gave the following error. - Argument of type '(Promise> | Promise)[]' is not assignable to parameter of type 'Iterable | PromiseLike>>'. - The types returned by '[Symbol.iterator]().next(...)' are incompatible between these types. - Type 'IteratorResult> | Promise, any>' is not assignable to type 'IteratorResult | PromiseLike>, any>'. - Type 'IteratorYieldResult> | Promise>' is not assignable to type 'IteratorResult | PromiseLike>, any>'. - Type 'IteratorYieldResult> | Promise>' is not assignable to type 'IteratorYieldResult | PromiseLike>>'. - Type 'Promise> | Promise' is not assignable to type 'Map | PromiseLike>'. - Type 'Promise' is not assignable to type 'Map | PromiseLike>'. - Type 'Promise' is not assignable to type 'PromiseLike>'. - Types of property 'then' are incompatible. - Type '(onfulfilled?: (value: InlineStyleResult) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike<...>) => Promise<...>' is not assignable to type ', TResult2 = never>(onfulfilled?: (value: Map) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike<...>) => PromiseLike<...>'. - Types of parameters 'onfulfilled' and 'onfulfilled' are incompatible. - Types of parameters 'value' and 'value' are incompatible. - Type 'InlineStyleResult' is missing the following properties from type 'Map': clear, delete, forEach, get, and 8 more. node_modules/chrome-devtools-frontend/front_end/elements/MetricsSidebarPane.js(120,11): error TS2339: Property 'consume' does not exist on type 'Event'. node_modules/chrome-devtools-frontend/front_end/elements/MetricsSidebarPane.js(164,22): error TS2339: Property 'toFixedIfFloating' does not exist on type 'NumberConstructor'. node_modules/chrome-devtools-frontend/front_end/elements/MetricsSidebarPane.js(179,18): error TS2345: Argument of type 'string' is not assignable to parameter of type 'number'. @@ -5945,7 +5728,7 @@ node_modules/chrome-devtools-frontend/front_end/elements/StylesSidebarPane.js(26 node_modules/chrome-devtools-frontend/front_end/elements/StylesSidebarPane.js(264,21): error TS2339: Property 'naturalOrderComparator' does not exist on type 'StringConstructor'. node_modules/chrome-devtools-frontend/front_end/elements/StylesSidebarPane.js(293,19): error TS2339: Property 'isBlank' does not exist on type 'StylePropertiesSection'. node_modules/chrome-devtools-frontend/front_end/elements/StylesSidebarPane.js(323,81): error TS2339: Property 'style' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/elements/StylesSidebarPane.js(415,43): error TS2339: Property 'valuesArray' does not exist on type 'Set'. +node_modules/chrome-devtools-frontend/front_end/elements/StylesSidebarPane.js(415,43): error TS2339: Property 'valuesArray' does not exist on type 'Set'. node_modules/chrome-devtools-frontend/front_end/elements/StylesSidebarPane.js(438,16): error TS2403: Subsequent variable declarations must have the same type. Variable 'section' must be of type 'StylePropertiesSection', but here has type 'any'. node_modules/chrome-devtools-frontend/front_end/elements/StylesSidebarPane.js(441,27): error TS2339: Property 'focus' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/elements/StylesSidebarPane.js(484,14): error TS2339: Property 'peekLast' does not exist on type 'SectionBlock[]'. @@ -5974,12 +5757,13 @@ node_modules/chrome-devtools-frontend/front_end/elements/StylesSidebarPane.js(95 node_modules/chrome-devtools-frontend/front_end/elements/StylesSidebarPane.js(964,29): error TS2339: Property 'tabIndex' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/elements/StylesSidebarPane.js(973,24): error TS2339: Property 'tabIndex' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/elements/StylesSidebarPane.js(1022,35): error TS2339: Property 'selectorText' does not exist on type 'CSSRule'. +node_modules/chrome-devtools-frontend/front_end/elements/StylesSidebarPane.js(1034,5): error TS2322: Type 'Timeout' is not assignable to type 'number'. node_modules/chrome-devtools-frontend/front_end/elements/StylesSidebarPane.js(1040,69): error TS2339: Property 'selectorText' does not exist on type 'CSSRule'. node_modules/chrome-devtools-frontend/front_end/elements/StylesSidebarPane.js(1055,24): error TS2339: Property '_section' does not exist on type 'ChildNode'. node_modules/chrome-devtools-frontend/front_end/elements/StylesSidebarPane.js(1056,29): error TS2339: Property '_section' does not exist on type 'ChildNode'. node_modules/chrome-devtools-frontend/front_end/elements/StylesSidebarPane.js(1073,24): error TS2339: Property '_section' does not exist on type 'ChildNode'. node_modules/chrome-devtools-frontend/front_end/elements/StylesSidebarPane.js(1074,29): error TS2339: Property '_section' does not exist on type 'ChildNode'. -node_modules/chrome-devtools-frontend/front_end/elements/StylesSidebarPane.js(1087,7): error TS2740: Type 'ChildNode' is missing the following properties from type 'Element': attributes, classList, className, clientHeight, and 68 more. +node_modules/chrome-devtools-frontend/front_end/elements/StylesSidebarPane.js(1087,7): error TS2740: Type 'ChildNode' is missing the following properties from type 'Element': attributes, classList, className, clientHeight, and 106 more. node_modules/chrome-devtools-frontend/front_end/elements/StylesSidebarPane.js(1088,38): error TS2339: Property '_section' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/elements/StylesSidebarPane.js(1090,36): error TS2339: Property '_section' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/elements/StylesSidebarPane.js(1099,7): error TS2322: Type 'ChildNode' is not assignable to type 'Element'. @@ -6001,7 +5785,6 @@ node_modules/chrome-devtools-frontend/front_end/elements/StylesSidebarPane.js(12 node_modules/chrome-devtools-frontend/front_end/elements/StylesSidebarPane.js(1273,62): error TS2339: Property 'property' does not exist on type 'TreeElement'. node_modules/chrome-devtools-frontend/front_end/elements/StylesSidebarPane.js(1296,13): error TS2339: Property 'consume' does not exist on type 'Event'. node_modules/chrome-devtools-frontend/front_end/elements/StylesSidebarPane.js(1325,43): error TS2345: Argument of type 'TemplateStringsArray' is not assignable to parameter of type 'string | string[]'. - Type 'TemplateStringsArray' is not assignable to type 'string[]'. node_modules/chrome-devtools-frontend/front_end/elements/StylesSidebarPane.js(1346,7): error TS2362: The left-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type. node_modules/chrome-devtools-frontend/front_end/elements/StylesSidebarPane.js(1346,33): error TS2339: Property '_updateFilter' does not exist on type 'TreeElement'. node_modules/chrome-devtools-frontend/front_end/elements/StylesSidebarPane.js(1349,77): error TS2339: Property 'deepTextContent' does not exist on type 'Element'. @@ -6118,7 +5901,7 @@ node_modules/chrome-devtools-frontend/front_end/elements/StylesSidebarPane.js(32 node_modules/chrome-devtools-frontend/front_end/elements/StylesSidebarPane.js(3272,15): error TS2339: Property 'createTextChild' does not exist on type 'DocumentFragment'. node_modules/chrome-devtools-frontend/front_end/elements/StylesSidebarPane.js(3305,32): error TS2339: Property '_instance' does not exist on type 'typeof StylesSidebarPane'. node_modules/chrome-devtools-frontend/front_end/elements/StylesSidebarPane.js(3312,32): error TS2339: Property '_instance' does not exist on type 'typeof StylesSidebarPane'. -node_modules/chrome-devtools-frontend/front_end/elements/StylesSidebarPane.js(3319,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ButtonProvider' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/elements/StylesSidebarPane.js(3319,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'ButtonProvider' does not extend another class. node_modules/chrome-devtools-frontend/front_end/elements_test_runner/EditDOMTestRunner.js(15,5): error TS2304: Cannot find name 'eventSender'. node_modules/chrome-devtools-frontend/front_end/elements_test_runner/EditDOMTestRunner.js(19,37): error TS2339: Property 'elements' does not exist on type 'any[]'. node_modules/chrome-devtools-frontend/front_end/elements_test_runner/ElementsTestRunner.js(112,55): error TS2339: Property 'eventListener' does not exist on type 'TreeElement'. @@ -6139,10 +5922,10 @@ node_modules/chrome-devtools-frontend/front_end/elements_test_runner/ElementsTes node_modules/chrome-devtools-frontend/front_end/elements_test_runner/ElementsTestRunner.js(1080,35): error TS2339: Property 'AnimationTimeline' does not exist on type '{ new (effect?: AnimationEffect, timeline?: AnimationTimeline): Animation; prototype: Animation; }'. node_modules/chrome-devtools-frontend/front_end/elements_test_runner/StylesUpdateLinksTestRunner.js(99,35): error TS2339: Property 'sprintf' does not exist on type 'StringConstructor'. node_modules/chrome-devtools-frontend/front_end/elements_test_runner/StylesUpdateLinksTestRunner.js(119,31): error TS2339: Property 'elements' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/emulation/AdvancedApp.js(27,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'AdvancedApp' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/emulation/AdvancedApp.js(27,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'AdvancedApp' does not extend another class. node_modules/chrome-devtools-frontend/front_end/emulation/AdvancedApp.js(142,44): error TS2339: Property 'style' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/emulation/AdvancedApp.js(174,57): error TS2339: Property 'window' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/emulation/AdvancedApp.js(198,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'AdvancedAppProvider' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/emulation/AdvancedApp.js(198,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'AdvancedAppProvider' does not extend another class. node_modules/chrome-devtools-frontend/front_end/emulation/DeviceModeModel.js(65,17): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. node_modules/chrome-devtools-frontend/front_end/emulation/DeviceModeModel.js(67,57): error TS2345: Argument of type 'this' is not assignable to parameter of type 'SDKModelObserver'. Type 'DeviceModeModel' is not assignable to type 'SDKModelObserver'. @@ -6152,21 +5935,20 @@ node_modules/chrome-devtools-frontend/front_end/emulation/DeviceModeModel.js(75, node_modules/chrome-devtools-frontend/front_end/emulation/DeviceModeModel.js(76,9): error TS2365: Operator '<=' cannot be applied to types 'string' and 'number'. node_modules/chrome-devtools-frontend/front_end/emulation/DeviceModeModel.js(86,59): error TS2365: Operator '>=' cannot be applied to types 'string' and 'number'. node_modules/chrome-devtools-frontend/front_end/emulation/DeviceModeModel.js(86,73): error TS2365: Operator '<=' cannot be applied to types 'string' and 'number'. -node_modules/chrome-devtools-frontend/front_end/emulation/DeviceModeModel.js(113,22): error TS2345: Argument of type '{ title: string; orientation: string; insets: Insets; image: string; }' is not assignable to parameter of type 'boolean'. node_modules/chrome-devtools-frontend/front_end/emulation/DeviceModeModel.js(347,3): error TS2416: Property 'modelAdded' in type 'DeviceModeModel' is not assignable to the same property in base type 'SDKModelObserver'. Type '(emulationModel: EmulationModel) => void' is not assignable to type '(model: T) => void'. node_modules/chrome-devtools-frontend/front_end/emulation/DeviceModeModel.js(347,3): error TS2416: Property 'modelAdded' in type 'DeviceModeModel' is not assignable to the same property in base type 'SDKModelObserver'. Type '(emulationModel: EmulationModel) => void' is not assignable to type '(model: T) => void'. Types of parameters 'emulationModel' and 'model' are incompatible. Type 'T' is not assignable to type 'EmulationModel'. -node_modules/chrome-devtools-frontend/front_end/emulation/DeviceModeModel.js(347,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Object'. +node_modules/chrome-devtools-frontend/front_end/emulation/DeviceModeModel.js(347,3): error TS4122: This member cannot have a JSDoc comment with an '@override' tag because it is not declared in the base class 'Object'. node_modules/chrome-devtools-frontend/front_end/emulation/DeviceModeModel.js(364,3): error TS2416: Property 'modelRemoved' in type 'DeviceModeModel' is not assignable to the same property in base type 'SDKModelObserver'. Type '(emulationModel: EmulationModel) => void' is not assignable to type '(model: T) => void'. node_modules/chrome-devtools-frontend/front_end/emulation/DeviceModeModel.js(364,3): error TS2416: Property 'modelRemoved' in type 'DeviceModeModel' is not assignable to the same property in base type 'SDKModelObserver'. Type '(emulationModel: EmulationModel) => void' is not assignable to type '(model: T) => void'. Types of parameters 'emulationModel' and 'model' are incompatible. Type 'T' is not assignable to type 'EmulationModel'. -node_modules/chrome-devtools-frontend/front_end/emulation/DeviceModeModel.js(364,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Object'. +node_modules/chrome-devtools-frontend/front_end/emulation/DeviceModeModel.js(364,3): error TS4122: This member cannot have a JSDoc comment with an '@override' tag because it is not declared in the base class 'Object'. node_modules/chrome-devtools-frontend/front_end/emulation/DeviceModeModel.js(496,35): error TS2345: Argument of type 'string' is not assignable to parameter of type 'symbol'. node_modules/chrome-devtools-frontend/front_end/emulation/DeviceModeModel.js(554,24): error TS2694: Namespace 'Protocol' has no exported member 'Emulation'. node_modules/chrome-devtools-frontend/front_end/emulation/DeviceModeModel.js(633,24): error TS2694: Namespace 'Protocol' has no exported member 'Page'. @@ -6207,19 +5989,19 @@ node_modules/chrome-devtools-frontend/front_end/emulation/DeviceModeView.js(494, node_modules/chrome-devtools-frontend/front_end/emulation/DeviceModeView.js(500,22): error TS2339: Property 'createChild' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/emulation/DeviceModeWrapper.js(33,24): error TS2694: Namespace 'Protocol' has no exported member 'Page'. node_modules/chrome-devtools-frontend/front_end/emulation/DeviceModeWrapper.js(53,37): error TS2694: Namespace 'Protocol' has no exported member 'Page'. -node_modules/chrome-devtools-frontend/front_end/emulation/DeviceModeWrapper.js(97,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ActionDelegate' does not extend another class. +node_modules/chrome-devtools-frontend/front_end/emulation/DeviceModeWrapper.js(97,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'ActionDelegate' does not extend another class. node_modules/chrome-devtools-frontend/front_end/emulation/DeviceModeWrapper.js(120,45): error TS2694: Namespace 'Protocol' has no exported member 'Page'. node_modules/chrome-devtools-frontend/front_end/emulation/DevicesSettingsTab.js(15,31): error TS2339: Property 'createChild' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/emulation/DevicesSettingsTab.js(17,42): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/emulation/DevicesSettingsTab.js(102,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. +node_modules/chrome-devtools-frontend/front_end/emulation/DevicesSettingsTab.js(102,3): error TS4122: This member cannot have a JSDoc comment with an '@override' tag because it is not declared in the base class 'VBox'. node_modules/chrome-devtools-frontend/front_end/emulation/DevicesSettingsTab.js(105,28): error TS2339: Property 'createChild' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/emulation/DevicesSettingsTab.js(109,13): error TS2339: Property 'createChild' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/emulation/DevicesSettingsTab.js(122,13): error TS2339: Property 'consume' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/emulation/DevicesSettingsTab.js(131,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/emulation/DevicesSettingsTab.js(141,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. +node_modules/chrome-devtools-frontend/front_end/emulation/DevicesSettingsTab.js(131,3): error TS4122: This member cannot have a JSDoc comment with an '@override' tag because it is not declared in the base class 'VBox'. +node_modules/chrome-devtools-frontend/front_end/emulation/DevicesSettingsTab.js(141,3): error TS4122: This member cannot have a JSDoc comment with an '@override' tag because it is not declared in the base class 'VBox'. node_modules/chrome-devtools-frontend/front_end/emulation/DevicesSettingsTab.js(165,27): error TS2339: Property 'scrollIntoViewIfNeeded' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/emulation/DevicesSettingsTab.js(166,27): error TS2339: Property 'focus' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/emulation/DevicesSettingsTab.js(174,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. +node_modules/chrome-devtools-frontend/front_end/emulation/DevicesSettingsTab.js(174,3): error TS4122: This member cannot have a JSDoc comment with an '@override' tag because it is not declared in the base class 'VBox'. node_modules/chrome-devtools-frontend/front_end/emulation/DevicesSettingsTab.js(202,26): error TS2339: Property 'createChild' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/emulation/EmulatedDevices.js(470,18): error TS2339: Property 'remove' does not exist on type 'EmulatedDevice[]'. node_modules/chrome-devtools-frontend/front_end/emulation/InspectedPagePlaceholder.js(21,20): error TS2339: Property 'window' does not exist on type 'Element'. @@ -6235,14 +6017,14 @@ node_modules/chrome-devtools-frontend/front_end/emulation/MediaQueryInspector.js Type '(cssModel: CSSModel) => void' is not assignable to type '(model: T) => void'. Types of parameters 'cssModel' and 'model' are incompatible. Type 'T' is not assignable to type 'CSSModel'. -node_modules/chrome-devtools-frontend/front_end/emulation/MediaQueryInspector.js(33,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Widget'. +node_modules/chrome-devtools-frontend/front_end/emulation/MediaQueryInspector.js(33,3): error TS4122: This member cannot have a JSDoc comment with an '@override' tag because it is not declared in the base class 'Widget'. node_modules/chrome-devtools-frontend/front_end/emulation/MediaQueryInspector.js(49,3): error TS2416: Property 'modelRemoved' in type 'MediaQueryInspector' is not assignable to the same property in base type 'SDKModelObserver'. Type '(cssModel: CSSModel) => void' is not assignable to type '(model: T) => void'. node_modules/chrome-devtools-frontend/front_end/emulation/MediaQueryInspector.js(49,3): error TS2416: Property 'modelRemoved' in type 'MediaQueryInspector' is not assignable to the same property in base type 'SDKModelObserver'. Type '(cssModel: CSSModel) => void' is not assignable to type '(model: T) => void'. Types of parameters 'cssModel' and 'model' are incompatible. Type 'T' is not assignable to type 'CSSModel'. -node_modules/chrome-devtools-frontend/front_end/emulation/MediaQueryInspector.js(49,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Widget'. +node_modules/chrome-devtools-frontend/front_end/emulation/MediaQueryInspector.js(49,3): error TS4122: This member cannot have a JSDoc comment with an '@override' tag because it is not declared in the base class 'Widget'. node_modules/chrome-devtools-frontend/front_end/emulation/MediaQueryInspector.js(74,41): error TS2339: Property 'enclosingNodeOrSelfWithClass' does not exist on type 'EventTarget'. node_modules/chrome-devtools-frontend/front_end/emulation/MediaQueryInspector.js(101,41): error TS2339: Property 'enclosingNodeOrSelfWithClass' does not exist on type 'EventTarget'. node_modules/chrome-devtools-frontend/front_end/emulation/MediaQueryInspector.js(111,31): error TS2339: Property 'sprintf' does not exist on type 'StringConstructor'. @@ -6294,7124 +6076,7 @@ node_modules/chrome-devtools-frontend/front_end/emulation/SensorsView.js(313,39) node_modules/chrome-devtools-frontend/front_end/emulation/SensorsView.js(362,11): error TS2339: Property 'consume' does not exist on type 'MouseEvent'. node_modules/chrome-devtools-frontend/front_end/emulation/SensorsView.js(402,11): error TS2339: Property 'consume' does not exist on type 'MouseEvent'. node_modules/chrome-devtools-frontend/front_end/emulation/SensorsView.js(424,44): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/emulation/SensorsView.js(514,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ShowActionDelegate' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/event_listeners/EventListenersUtils.js(7,93): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/event_listeners/EventListenersUtils.js(28,8): error TS2339: Property 'catchException' does not exist on type 'Promise'. -node_modules/chrome-devtools-frontend/front_end/event_listeners/EventListenersUtils.js(160,21): error TS2339: Property 'remove' does not exist on type 'EventListenerObjectInInspectedPage'. -node_modules/chrome-devtools-frontend/front_end/event_listeners/EventListenersUtils.js(172,62): error TS2339: Property 'catchException' does not exist on type 'Promise'. -node_modules/chrome-devtools-frontend/front_end/event_listeners/EventListenersUtils.js(295,16): error TS2339: Property 'devtoolsFrameworkEventListeners' does not exist on type 'Window & typeof globalThis'. -node_modules/chrome-devtools-frontend/front_end/event_listeners/EventListenersUtils.js(295,68): error TS2339: Property 'devtoolsFrameworkEventListeners' does not exist on type 'Window & typeof globalThis'. -node_modules/chrome-devtools-frontend/front_end/event_listeners/EventListenersUtils.js(296,41): error TS2339: Property 'devtoolsFrameworkEventListeners' does not exist on type 'Window & typeof globalThis'. -node_modules/chrome-devtools-frontend/front_end/event_listeners/EventListenersUtils.js(324,5): error TS2741: Property 'internalHandlers' is missing in type '{ eventListeners: any[]; }' but required in type '{ eventListeners: EventListenerObjectInInspectedPage[]; internalHandlers: (() => any)[]; }'. -node_modules/chrome-devtools-frontend/front_end/event_listeners/EventListenersUtils.js(371,103): error TS2322: Type '{ type: any; useCapture: any; passive: any; once: any; handler: any; remove: any; }' is not assignable to type 'EventListenerObjectInInspectedPage'. - Object literal may only specify known properties, and 'remove' does not exist in type 'EventListenerObjectInInspectedPage'. -node_modules/chrome-devtools-frontend/front_end/event_listeners/EventListenersUtils.js(420,32): error TS2352: Conversion of type '{ fn: any; data: any; _data: any; }' to type '(arg0: Node) => any' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first. - Type '{ fn: any; data: any; _data: any; }' provides no match for the signature '(arg0: Node): any'. -node_modules/chrome-devtools-frontend/front_end/event_listeners/EventListenersUtils.js(420,39): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/event_listeners/EventListenersUtils.js(470,16): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/event_listeners/EventListenersUtils.js(480,32): error TS2352: Conversion of type '{ fn: any; data: any; _data: any; }' to type '(arg0: Node) => any' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first. - Type '{ fn: any; data: any; _data: any; }' provides no match for the signature '(arg0: Node): any'. -node_modules/chrome-devtools-frontend/front_end/event_listeners/EventListenersUtils.js(480,39): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/event_listeners/EventListenersView.js(14,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/event_listeners/EventListenersView.js(35,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/event_listeners/EventListenersView.js(82,7): error TS2322: Type 'Promise' is not assignable to type 'Promise'. -node_modules/chrome-devtools-frontend/front_end/event_listeners/EventListenersView.js(88,29): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/event_listeners/EventListenersView.js(150,46): error TS2339: Property 'eventListener' does not exist on type 'TreeElement'. -node_modules/chrome-devtools-frontend/front_end/event_listeners/EventListenersView.js(156,45): error TS2339: Property 'eventListener' does not exist on type 'TreeElement'. -node_modules/chrome-devtools-frontend/front_end/event_listeners/EventListenersView.js(158,47): error TS2339: Property 'eventListener' does not exist on type 'TreeElement'. -node_modules/chrome-devtools-frontend/front_end/event_listeners/EventListenersView.js(211,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/event_listeners/EventListenersView.js(252,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/event_listeners/EventListenersView.js(283,38): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/event_listeners/EventListenersView.js(284,41): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/event_listeners/EventListenersView.js(311,13): error TS2339: Property 'consume' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/event_listeners/EventListenersView.js(321,13): error TS2339: Property 'consume' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/extensions/ExtensionAPI.js(93,12): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/extensions/ExtensionAPI.js(149,19): error TS1110: Type expected. -node_modules/chrome-devtools-frontend/front_end/extensions/ExtensionAPI.js(241,12): error TS2339: Property '__defineGetter__' does not exist on type 'Panels'. -node_modules/chrome-devtools-frontend/front_end/extensions/ExtensionAPI.js(314,12): error TS8022: JSDoc '@extends' is not attached to a class. -node_modules/chrome-devtools-frontend/front_end/extensions/ExtensionAPI.js(371,12): error TS8022: JSDoc '@extends' is not attached to a class. -node_modules/chrome-devtools-frontend/front_end/extensions/ExtensionAPI.js(381,12): error TS8022: JSDoc '@extends' is not attached to a class. -node_modules/chrome-devtools-frontend/front_end/extensions/ExtensionAPI.js(391,12): error TS8022: JSDoc '@extends' is not attached to a class. -node_modules/chrome-devtools-frontend/front_end/extensions/ExtensionAPI.js(404,21): error TS2339: Property '_id' does not exist on type 'ExtensionPanelImpl'. -node_modules/chrome-devtools-frontend/front_end/extensions/ExtensionAPI.js(418,60): error TS2339: Property '_id' does not exist on type 'ExtensionPanelImpl'. -node_modules/chrome-devtools-frontend/front_end/extensions/ExtensionAPI.js(429,12): error TS8022: JSDoc '@extends' is not attached to a class. -node_modules/chrome-devtools-frontend/front_end/extensions/ExtensionAPI.js(435,81): error TS2339: Property '_id' does not exist on type 'ExtensionSidebarPaneImpl'. -node_modules/chrome-devtools-frontend/front_end/extensions/ExtensionAPI.js(441,18): error TS2339: Property '_id' does not exist on type 'ExtensionSidebarPaneImpl'. -node_modules/chrome-devtools-frontend/front_end/extensions/ExtensionAPI.js(453,58): error TS2339: Property '_id' does not exist on type 'ExtensionSidebarPaneImpl'. -node_modules/chrome-devtools-frontend/front_end/extensions/ExtensionAPI.js(457,79): error TS2339: Property '_id' does not exist on type 'ExtensionSidebarPaneImpl'. -node_modules/chrome-devtools-frontend/front_end/extensions/ExtensionAPI.js(773,26): error TS2339: Property 'themeName' does not exist on type 'Panels'. -node_modules/chrome-devtools-frontend/front_end/extensions/ExtensionAPI.js(789,21): error TS2339: Property 'exposeWebInspectorNamespace' does not exist on type 'ExtensionDescriptor'. -node_modules/chrome-devtools-frontend/front_end/extensions/ExtensionAPI.js(790,12): error TS2339: Property 'webInspector' does not exist on type 'Window & typeof globalThis'. -node_modules/chrome-devtools-frontend/front_end/extensions/ExtensionAPI.js(798,12): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/extensions/ExtensionPanel.js(66,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Panel'. -node_modules/chrome-devtools-frontend/front_end/extensions/ExtensionPanel.js(85,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Panel'. -node_modules/chrome-devtools-frontend/front_end/extensions/ExtensionPanel.js(93,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Panel'. -node_modules/chrome-devtools-frontend/front_end/extensions/ExtensionPanel.js(100,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Panel'. -node_modules/chrome-devtools-frontend/front_end/extensions/ExtensionPanel.js(108,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Panel'. -node_modules/chrome-devtools-frontend/front_end/extensions/ExtensionPanel.js(116,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Panel'. -node_modules/chrome-devtools-frontend/front_end/extensions/ExtensionPanel.js(198,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/extensions/ExtensionPanel.js(210,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/extensions/ExtensionPanel.js(232,23): error TS2339: Property 'style' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/extensions/ExtensionPanel.js(240,18): error TS2339: Property 'style' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/extensions/ExtensionPanel.js(245,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/extensions/ExtensionPanel.js(271,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/extensions/ExtensionPanel.js(279,40): error TS2339: Property 'removeChildren' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/extensions/ExtensionServer.js(85,27): error TS2339: Property 'events' does not exist on type 'InspectorFrontendHostAPI'. -node_modules/chrome-devtools-frontend/front_end/extensions/ExtensionServer.js(87,27): error TS2339: Property 'events' does not exist on type 'InspectorFrontendHostAPI'. -node_modules/chrome-devtools-frontend/front_end/extensions/ExtensionServer.js(219,43): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/extensions/ExtensionServer.js(244,54): error TS2339: Property 'traverseNextNode' does not exist on type 'HTMLElement'. -node_modules/chrome-devtools-frontend/front_end/extensions/ExtensionServer.js(463,53): error TS2345: Argument of type '{ url: string; type: string; }' is not assignable to parameter of type 'ContentProvider'. - Type '{ url: string; type: string; }' is missing the following properties from type 'ContentProvider': contentURL, contentType, contentEncoded, requestContent, searchInContent -node_modules/chrome-devtools-frontend/front_end/extensions/ExtensionServer.js(471,22): error TS2339: Property 'valuesArray' does not exist on type 'Map'. -node_modules/chrome-devtools-frontend/front_end/extensions/ExtensionServer.js(542,14): error TS2339: Property '_extensionOrigin' does not exist on type 'MessagePort'. -node_modules/chrome-devtools-frontend/front_end/extensions/ExtensionServer.js(577,13): error TS2551: Property '__keyCode' does not exist on type 'KeyboardEvent'. Did you mean 'keyCode'? -node_modules/chrome-devtools-frontend/front_end/extensions/ExtensionServer.js(599,76): error TS2345: Argument of type 'symbol' is not assignable to parameter of type 'string'. -node_modules/chrome-devtools-frontend/front_end/extensions/ExtensionServer.js(603,9): error TS2345: Argument of type 'symbol' is not assignable to parameter of type 'string'. -node_modules/chrome-devtools-frontend/front_end/extensions/ExtensionServer.js(670,36): error TS2339: Property '_overridePlatformExtensionAPIForTest' does not exist on type 'typeof extensionServer'. -node_modules/chrome-devtools-frontend/front_end/extensions/ExtensionServer.js(671,14): error TS2339: Property 'buildPlatformExtensionAPI' does not exist on type 'Window & typeof globalThis'. -node_modules/chrome-devtools-frontend/front_end/extensions/ExtensionServer.js(671,69): error TS2339: Property '_overridePlatformExtensionAPIForTest' does not exist on type 'typeof extensionServer'. -node_modules/chrome-devtools-frontend/front_end/extensions/ExtensionServer.js(712,14): error TS2339: Property 'src' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/extensions/ExtensionServer.js(713,14): error TS2339: Property 'style' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/extensions/ExtensionServer.js(765,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/extensions/ExtensionServer.js(777,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/extensions/ExtensionServer.js(838,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/extensions/ExtensionServer.js(881,30): error TS2339: Property 'resourceTreeModel' does not exist on type 'true | ResourceTreeFrame'. - Property 'resourceTreeModel' does not exist on type 'true'. -node_modules/chrome-devtools-frontend/front_end/extensions/ExtensionServer.js(886,48): error TS2339: Property 'id' does not exist on type 'true | ResourceTreeFrame'. - Property 'id' does not exist on type 'true'. -node_modules/chrome-devtools-frontend/front_end/extensions/ExtensionServer.js(891,113): error TS2339: Property 'url' does not exist on type 'true | ResourceTreeFrame'. - Property 'url' does not exist on type 'true'. -node_modules/chrome-devtools-frontend/front_end/extensions/ExtensionServer.js(897,48): error TS2339: Property 'id' does not exist on type 'true | ResourceTreeFrame'. - Property 'id' does not exist on type 'true'. -node_modules/chrome-devtools-frontend/front_end/extensions/ExtensionServer.js(901,44): error TS2339: Property 'url' does not exist on type 'true | ResourceTreeFrame'. - Property 'url' does not exist on type 'true'. -node_modules/chrome-devtools-frontend/front_end/extensions/ExtensionServer.js(983,59): error TS2339: Property 'vsprintf' does not exist on type 'StringConstructor'. -node_modules/chrome-devtools-frontend/front_end/extensions/ExtensionTraceProvider.js(27,32): error TS2339: Property 'startTraceRecording' does not exist on type 'typeof extensionServer'. -node_modules/chrome-devtools-frontend/front_end/extensions/ExtensionTraceProvider.js(31,32): error TS2339: Property 'stopTraceRecording' does not exist on type 'typeof extensionServer'. -node_modules/chrome-devtools-frontend/front_end/extensions/ExtensionView.js(50,18): error TS2339: Property 'src' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/extensions/ExtensionView.js(74,22): error TS2352: Conversion of type 'Window' to type 'Window[]' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first. - Type 'Window' is missing the following properties from type 'Window[]': pop, push, concat, join, and 27 more. -node_modules/chrome-devtools-frontend/front_end/extensions/ExtensionView.js(75,74): error TS2339: Property 'contentWindow' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/extensions_test_runner/ExtensionsNetworkTestRunner.js(23,5): error TS2304: Cannot find name 'output'. -node_modules/chrome-devtools-frontend/front_end/extensions_test_runner/ExtensionsNetworkTestRunner.js(27,3): error TS2304: Cannot find name 'webInspector'. -node_modules/chrome-devtools-frontend/front_end/extensions_test_runner/ExtensionsTestRunner.js(12,28): error TS2339: Property '_registerHandler' does not exist on type 'typeof extensionServer'. -node_modules/chrome-devtools-frontend/front_end/extensions_test_runner/ExtensionsTestRunner.js(15,10): error TS2339: Property 'webInspector' does not exist on type 'Window & typeof globalThis'. -node_modules/chrome-devtools-frontend/front_end/extensions_test_runner/ExtensionsTestRunner.js(16,10): error TS2339: Property '_extensionServerForTests' does not exist on type 'Window & typeof globalThis'. -node_modules/chrome-devtools-frontend/front_end/extensions_test_runner/ExtensionsTestRunner.js(21,30): error TS2339: Property '_dispatchCallback' does not exist on type 'typeof extensionServer'. -node_modules/chrome-devtools-frontend/front_end/extensions_test_runner/ExtensionsTestRunner.js(28,32): error TS2339: Property '_dispatchCallback' does not exist on type 'typeof extensionServer'. -node_modules/chrome-devtools-frontend/front_end/extensions_test_runner/ExtensionsTestRunner.js(60,3): error TS2304: Cannot find name 'InspectorFrontendAPI'. -node_modules/chrome-devtools-frontend/front_end/extensions_test_runner/ExtensionsTestRunner.js(63,30): error TS2339: Property 'initializeExtensions' does not exist on type 'typeof extensionServer'. -node_modules/chrome-devtools-frontend/front_end/externs.js(37,8): error TS2339: Property 'observe' does not exist on type 'ObjectConstructor'. -node_modules/chrome-devtools-frontend/front_end/externs.js(40,17): error TS2339: Property 'isMetaOrCtrlForTest' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/externs.js(43,17): error TS2339: Property 'code' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/externs.js(67,17): error TS2339: Property 'remove' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/externs.js(73,17): error TS2339: Property 'pushAll' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/externs.js(75,13): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/externs.js(79,17): error TS2551: Property 'keySet' does not exist on type 'any[]'. Did you mean 'keys'? -node_modules/chrome-devtools-frontend/front_end/externs.js(82,13): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/externs.js(86,17): error TS2339: Property 'rotate' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/externs.js(90,17): error TS2339: Property 'sortNumbers' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/externs.js(96,13): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/externs.js(100,17): error TS2339: Property 'lowerBound' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/externs.js(106,13): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/externs.js(110,17): error TS2339: Property 'upperBound' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/externs.js(114,13): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/externs.js(118,17): error TS2339: Property 'binaryIndexOf' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/externs.js(125,13): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/externs.js(128,17): error TS2339: Property 'sortRange' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/externs.js(132,13): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/externs.js(136,17): error TS2339: Property 'stableSort' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/externs.js(144,13): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/externs.js(146,17): error TS2339: Property 'partition' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/externs.js(152,13): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/externs.js(154,17): error TS2339: Property 'qselect' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/externs.js(158,13): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/externs.js(162,17): error TS2339: Property 'select' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/externs.js(165,13): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/externs.js(169,17): error TS2339: Property 'peekLast' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/externs.js(174,13): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/externs.js(178,17): error TS2339: Property 'intersectOrdered' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/externs.js(183,13): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/externs.js(187,17): error TS2339: Property 'mergeOrdered' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/externs.js(194,13): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/externs.js(196,22): error TS2339: Property 'lowerBound' does not exist on type 'Int32Array'. -node_modules/chrome-devtools-frontend/front_end/externs.js(206,11): error TS2304: Cannot find name 'DirectoryEntry'. -node_modules/chrome-devtools-frontend/front_end/externs.js(213,8): error TS2339: Property 'domAutomationController' does not exist on type 'Window & typeof globalThis'. -node_modules/chrome-devtools-frontend/front_end/externs.js(223,13): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/externs.js(233,13): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/externs.js(251,13): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/externs.js(256,13): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/externs.js(261,13): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/externs.js(266,13): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/externs.js(271,13): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/externs.js(278,13): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/externs.js(283,13): error TS2304: Cannot find name 'FileSystem'. -node_modules/chrome-devtools-frontend/front_end/externs.js(366,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/externs.js(395,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/externs.js(443,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/externs.js(448,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/externs.js(455,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/externs.js(549,117): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/externs.js(565,13): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/externs.js(623,8): error TS2339: Property 'dispatchStandaloneTestRunnerMessages' does not exist on type 'Window & typeof globalThis'. -node_modules/chrome-devtools-frontend/front_end/externs.js(654,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/externs.js(661,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/externs.js(668,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/externs.js(770,30): error TS8022: JSDoc '@extends' is not attached to a class. -node_modules/chrome-devtools-frontend/front_end/externs.js(803,13): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/externs.js(805,9): error TS2339: Property 'prototype' does not exist on type 'typeof Console'. -node_modules/chrome-devtools-frontend/front_end/externs.js(811,13): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/externs.js(817,12): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/externs.js(819,5): error TS2403: Subsequent variable declarations must have the same type. Variable 'ResizeObserver' must be of type '{ new (callback: ResizeObserverCallback): ResizeObserver; prototype: ResizeObserver; }', but here has type 'typeof ResizeObserver'. -node_modules/chrome-devtools-frontend/front_end/formatter/FormatterWorkerPool.js(28,40): error TS2339: Property 'keysArray' does not exist on type 'Map'. -node_modules/chrome-devtools-frontend/front_end/formatter/FormatterWorkerPool.js(74,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/formatter/FormatterWorkerPool.js(162,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/formatter/FormatterWorkerPool.js(179,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/formatter/FormatterWorkerPool.js(197,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/formatter/FormatterWorkerPool.js(229,11): error TS2345: Argument of type '{ line: number; column: number; title: any; }[]' is not assignable to parameter of type 'OutlineItem[]'. - Property 'subtitle' is missing in type '{ line: number; column: number; title: any; }' but required in type 'OutlineItem'. -node_modules/chrome-devtools-frontend/front_end/formatter/FormatterWorkerPool.js(230,87): error TS2339: Property 'selectorText' does not exist on type 'CSSRule'. - Property 'selectorText' does not exist on type 'CSSAtRule'. -node_modules/chrome-devtools-frontend/front_end/formatter/FormatterWorkerPool.js(230,108): error TS2339: Property 'atRule' does not exist on type 'CSSRule'. - Property 'atRule' does not exist on type 'CSSStyleRule'. -node_modules/chrome-devtools-frontend/front_end/formatter/FormatterWorkerPool.js(244,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/formatter/ScriptFormatter.js(39,12): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/formatter/ScriptFormatter.js(65,32): error TS2339: Property 'upperBound' does not exist on type 'number[]'. -node_modules/chrome-devtools-frontend/front_end/formatter/ScriptFormatter.js(74,27): error TS2694: Namespace 'Formatter' has no exported member 'Formatter'. -node_modules/chrome-devtools-frontend/front_end/formatter/ScriptFormatter.js(81,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/formatter/ScriptFormatter.js(98,31): error TS2339: Property 'computeLineEndings' does not exist on type 'string'. -node_modules/chrome-devtools-frontend/front_end/formatter/ScriptFormatter.js(98,74): error TS2339: Property 'computeLineEndings' does not exist on type 'string'. -node_modules/chrome-devtools-frontend/front_end/formatter/ScriptFormatter.js(104,27): error TS2694: Namespace 'Formatter' has no exported member 'Formatter'. -node_modules/chrome-devtools-frontend/front_end/formatter/ScriptFormatter.js(111,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/formatter/ScriptFormatter.js(127,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/formatter/ScriptFormatter.js(134,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/formatter/ScriptFormatter.js(150,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'IdentityFormatterSourceMapping' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/formatter/ScriptFormatter.js(160,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'IdentityFormatterSourceMapping' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/formatter/ScriptFormatter.js(187,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'FormatterSourceMappingImpl' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/formatter/ScriptFormatter.js(201,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'FormatterSourceMappingImpl' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/formatter/ScriptFormatter.js(215,28): error TS2339: Property 'upperBound' does not exist on type 'number[]'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker.js(6,8): error TS2339: Property 'importScripts' does not exist on type 'Window & typeof globalThis'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/AcornTokenizer.js(14,55): error TS2322: Type 'number' is not assignable to type 'boolean'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/AcornTokenizer.js(14,71): error TS2322: Type 'any[]' is not assignable to type 'boolean'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/AcornTokenizer.js(15,63): error TS2339: Property 'computeLineEndings' does not exist on type 'string'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/AcornTokenizer.js(28,99): error TS2339: Property 'keyword' does not exist on type 'string | TokenType'. - Property 'keyword' does not exist on type 'string'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/AcornTokenizer.js(29,33): error TS2339: Property 'label' does not exist on type 'string | TokenType'. - Property 'label' does not exist on type 'string'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/AcornTokenizer.js(29,81): error TS2339: Property 'label' does not exist on type 'string | TokenType'. - Property 'label' does not exist on type 'string'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/AcornTokenizer.js(38,25): error TS2339: Property 'keyword' does not exist on type 'string | TokenType'. - Property 'keyword' does not exist on type 'string'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/AcornTokenizer.js(39,72): error TS2339: Property 'keyword' does not exist on type 'string | TokenType'. - Property 'keyword' does not exist on type 'string'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/CSSFormatter.js(67,39): error TS2339: Property 'lowerBound' does not exist on type 'number[]'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/CSSRuleParser.js(17,40): error TS2345: Argument of type '(message: any, targetOrigin: string, transfer?: Transferable[]) => void' is not assignable to parameter of type '(arg0: any) => any'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/CSSRuleParser.js(22,12): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/ESTreeWalker.js(45,10): error TS2339: Property 'parent' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/ESTreeWalker.js(59,33): error TS2352: Conversion of type 'Node' to type 'TemplateLiteralNode' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first. - Type 'Node' is missing the following properties from type 'TemplateLiteralNode': quasis, expressions -node_modules/chrome-devtools-frontend/front_end/formatter_worker/ESTreeWalker.js(62,52): error TS2345: Argument of type 'TemplateLiteralNode' is not assignable to parameter of type 'Node'. - Type 'TemplateLiteralNode' is missing the following properties from type 'Node': start, end, type, body, and 16 more. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/ESTreeWalker.js(63,57): error TS2345: Argument of type 'TemplateLiteralNode' is not assignable to parameter of type 'Node'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/ESTreeWalker.js(65,66): error TS2345: Argument of type 'TemplateLiteralNode' is not assignable to parameter of type 'Node'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/FormattedContentBuilder.js(47,39): error TS2339: Property 'peekLast' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/FormatterWorker.js(43,13): error TS1345: An expression of type 'void' cannot be tested for truthiness. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/FormatterWorker.js(44,24): error TS2339: Property 'token' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/FormatterWorker.js(46,20): error TS2345: Argument of type 'void' is not assignable to parameter of type 'string'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/FormatterWorker.js(46,69): error TS2339: Property 'length' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/FormatterWorker.js(58,26): error TS1110: Type expected. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/FormatterWorker.js(96,3): error TS2554: Expected 2-3 arguments, but got 1. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/FormatterWorker.js(103,45): error TS2322: Type 'number' is not assignable to type 'boolean'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/FormatterWorker.js(138,3): error TS2554: Expected 2-3 arguments, but got 1. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/FormatterWorker.js(146,36): error TS2322: Type 'number' is not assignable to type 'boolean'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/FormatterWorker.js(208,5): error TS2554: Expected 2-3 arguments, but got 1. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/FormatterWorker.js(223,3): error TS2554: Expected 2-3 arguments, but got 1. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/FormatterWorker.js(230,51): error TS2322: Type 'number' is not assignable to type 'boolean'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/FormatterWorker.js(258,14): error TS2339: Property 'parent' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/FormatterWorker.js(258,29): error TS2339: Property 'parent' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/FormatterWorker.js(258,72): error TS2339: Property 'parent' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/FormatterWorker.js(259,15): error TS2339: Property 'parent' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/FormatterWorker.js(265,5): error TS2554: Expected 2-3 arguments, but got 1. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/FormatterWorker.js(274,3): error TS2554: Expected 2-3 arguments, but got 1. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/FormatterWorker.js(287,26): error TS2339: Property 'computeLineEndings' does not exist on type 'string'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/FormatterWorker.js(295,13): error TS2403: Subsequent variable declarations must have the same type. Variable 'formatter' must be of type 'HTMLFormatter', but here has type 'CSSFormatter'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/FormatterWorker.js(296,45): error TS2554: Expected 2 arguments, but got 4. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/FormatterWorker.js(299,13): error TS2403: Subsequent variable declarations must have the same type. Variable 'formatter' must be of type 'HTMLFormatter', but here has type 'JavaScriptFormatter'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/FormatterWorker.js(300,45): error TS2554: Expected 2 arguments, but got 4. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/FormatterWorker.js(303,13): error TS2403: Subsequent variable declarations must have the same type. Variable 'formatter' must be of type 'HTMLFormatter', but here has type 'IdentityFormatter'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/FormatterWorker.js(304,45): error TS2554: Expected 2 arguments, but got 4. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/FormatterWorker.js(313,3): error TS2554: Expected 2-3 arguments, but got 1. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/FormatterWorker.js(335,18): error TS2345: Argument of type 'Extension' is not assignable to parameter of type 'boolean'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/FormatterWorker.js(336,66): error TS2339: Property 'catchException' does not exist on type 'Promise'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/HTMLFormatter.js(98,21): error TS2339: Property 'isWhitespace' does not exist on type 'string'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/HTMLFormatter.js(174,33): error TS2339: Property 'peekLast' does not exist on type 'Element[]'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/HTMLFormatter.js(185,33): error TS2339: Property 'peekLast' does not exist on type 'Element[]'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/HTMLFormatter.js(209,33): error TS2339: Property 'peekLast' does not exist on type 'Element[]'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/HTMLFormatter.js(290,36): error TS2339: Property 'peekLast' does not exist on type 'Element[]'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/HTMLFormatter.js(301,50): error TS2339: Property 'peekLast' does not exist on type 'Element[]'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/HTMLFormatter.js(302,49): error TS2339: Property 'peekLast' does not exist on type 'Element[]'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/HTMLFormatter.js(329,34): error TS2339: Property 'peekLast' does not exist on type 'Element[]'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/JavaScriptFormatter.js(54,58): error TS2322: Type 'number' is not assignable to type 'boolean'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/JavaScriptFormatter.js(88,15): error TS2339: Property 'parent' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/JavaScriptFormatter.js(92,43): error TS2339: Property 'parent' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/JavaScriptFormatter.js(114,23): error TS2339: Property 'parent' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/JavaScriptFormatter.js(136,19): error TS2339: Property 'label' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/JavaScriptFormatter.js(165,16): error TS2339: Property 'parent' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/JavaScriptFormatter.js(165,31): error TS2339: Property 'parent' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/JavaScriptFormatter.js(221,21): error TS2339: Property 'consequent' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/JavaScriptFormatter.js(221,40): error TS2339: Property 'consequent' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/JavaScriptFormatter.js(224,30): error TS2339: Property 'consequent' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/JavaScriptFormatter.js(224,49): error TS2339: Property 'consequent' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/JavaScriptFormatter.js(226,18): error TS2339: Property 'alternate' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/JavaScriptFormatter.js(226,37): error TS2339: Property 'alternate' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/JavaScriptFormatter.js(226,81): error TS2339: Property 'alternate' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/JavaScriptFormatter.js(234,19): error TS2339: Property 'parent' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/JavaScriptFormatter.js(234,34): error TS2339: Property 'parent' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/JavaScriptFormatter.js(281,16): error TS2339: Property 'parent' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/JavaScriptFormatter.js(281,31): error TS2339: Property 'parent' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/JavaScriptFormatter.js(281,69): error TS2339: Property 'parent' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/JavaScriptFormatter.js(281,94): error TS2339: Property 'parent' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/JavaScriptFormatter.js(283,16): error TS2339: Property 'parent' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/JavaScriptFormatter.js(283,31): error TS2339: Property 'parent' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/JavaScriptFormatter.js(283,76): error TS2339: Property 'parent' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/JavaScriptFormatter.js(284,16): error TS2339: Property 'parent' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/JavaScriptFormatter.js(286,16): error TS2339: Property 'parent' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/JavaScriptFormatter.js(286,31): error TS2339: Property 'parent' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/JavaScriptFormatter.js(286,76): error TS2339: Property 'parent' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/JavaScriptFormatter.js(287,16): error TS2339: Property 'parent' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/JavaScriptFormatter.js(289,16): error TS2339: Property 'parent' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/JavaScriptFormatter.js(289,31): error TS2339: Property 'parent' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/JavaScriptFormatter.js(289,76): error TS2339: Property 'parent' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/JavaScriptFormatter.js(290,16): error TS2339: Property 'parent' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/JavaScriptFormatter.js(292,16): error TS2339: Property 'parent' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/JavaScriptFormatter.js(292,31): error TS2339: Property 'parent' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/JavaScriptFormatter.js(294,16): error TS2339: Property 'parent' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/JavaScriptFormatter.js(294,31): error TS2339: Property 'parent' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/JavaScriptFormatter.js(294,70): error TS2339: Property 'parent' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/JavaScriptFormatter.js(296,16): error TS2339: Property 'parent' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/JavaScriptFormatter.js(296,31): error TS2339: Property 'parent' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/JavaScriptFormatter.js(296,69): error TS2339: Property 'parent' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/JavaScriptFormatter.js(303,16): error TS2339: Property 'alternate' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/JavaScriptFormatter.js(304,18): error TS2339: Property 'alternate' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/JavaScriptFormatter.js(304,62): error TS2339: Property 'alternate' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/JavaScriptFormatter.js(306,23): error TS2339: Property 'consequent' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/JavaScriptFormatter.js(307,18): error TS2339: Property 'consequent' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/JavaScriptOutline.js(14,48): error TS2322: Type 'number' is not assignable to type 'boolean'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/JavaScriptOutline.js(16,55): error TS2322: Type 'number' is not assignable to type 'boolean'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/JavaScriptOutline.js(19,53): error TS2339: Property 'computeLineEndings' does not exist on type 'string'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/JavaScriptOutline.js(22,3): error TS2554: Expected 2-3 arguments, but got 1. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/JavaScriptOutline.js(34,60): error TS2339: Property 'key' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/JavaScriptOutline.js(34,85): error TS2339: Property 'value' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/JavaScriptOutline.js(35,53): error TS2339: Property 'key' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/JavaScriptOutline.js(43,91): error TS2339: Property 'key' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/JavaScriptOutline.js(44,29): error TS2339: Property 'value' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/JavaScriptOutline.js(48,16): error TS2339: Property 'static' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/JavaScriptOutline.js(50,27): error TS2339: Property 'key' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/JavaScriptOutline.js(50,37): error TS2339: Property 'value' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/JavaScriptOutline.js(60,20): error TS2345: Argument of type '{ name: string; line: number; column: number; }' is not assignable to parameter of type '{ name: string; line: number; column: number; arguments: string; }'. - Property 'arguments' is missing in type '{ name: string; line: number; column: number; }' but required in type '{ name: string; line: number; column: number; arguments: string; }'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/JavaScriptOutline.js(74,22): error TS2339: Property 'generator' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/JavaScriptOutline.js(78,22): error TS2339: Property 'async' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/JavaScriptOutline.js(155,5): error TS2554: Expected 2-3 arguments, but got 1. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/RelaxedJSONParser.js(74,7): error TS2356: An arithmetic operand must be of type 'any', 'number', 'bigint' or an enum type. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/RelaxedJSONParser.js(93,13): error TS2403: Subsequent variable declarations must have the same type. Variable 'newTip' must be of type '{}', but here has type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/RelaxedJSONParser.js(104,32): error TS2339: Property 'value' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/RelaxedJSONParser.js(159,20): error TS2339: Property 'value' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(4,10): error TS2304: Cannot find name 'define'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(4,35): error TS2304: Cannot find name 'define'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(4,48): error TS2304: Cannot find name 'define'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(5,20): error TS2339: Property 'acorn' does not exist on type 'typeof import("/chrome-devtools-frontend/node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn")'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(402,56): error TS2339: Property 'push' does not exist on type '(token: any) => any'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(478,38): error TS2339: Property 'curPosition' does not exist on type 'Parser'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(487,23): error TS2339: Property 'initialContext' does not exist on type 'Parser'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(505,10): error TS2339: Property 'skipLineComment' does not exist on type 'Parser'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(527,43): error TS2339: Property 'startNode' does not exist on type 'Parser'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(528,8): error TS2339: Property 'nextToken' does not exist on type 'Parser'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(529,15): error TS2339: Property 'parseTopLevel' does not exist on type 'Parser'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(1103,8): error TS2339: Property 'initFunction' does not exist on type 'parseFunction'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(1104,12): error TS2339: Property 'options' does not exist on type 'parseFunction'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(1105,27): error TS2339: Property 'eat' does not exist on type 'parseFunction'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(1106,12): error TS2339: Property 'options' does not exist on type 'parseFunction'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(1110,20): error TS2339: Property 'parseIdent' does not exist on type 'parseFunction'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(1118,28): error TS2339: Property 'type' does not exist on type 'parseFunction'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(1119,20): error TS2339: Property 'parseIdent' does not exist on type 'parseFunction'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(1120,8): error TS2339: Property 'parseFunctionParams' does not exist on type 'parseFunction'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(1121,8): error TS2339: Property 'parseFunctionBody' does not exist on type 'parseFunction'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(1127,15): error TS2339: Property 'finishNode' does not exist on type 'parseFunction'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(1674,55): error TS2362: The left-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(1719,12): error TS2339: Property 'inGenerator' does not exist on type 'parseMaybeAssign'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(1719,32): error TS2339: Property 'isContextual' does not exist on type 'parseMaybeAssign'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(1719,67): error TS2339: Property 'parseYield' does not exist on type 'parseMaybeAssign'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(1726,23): error TS2339: Property 'start' does not exist on type 'parseMaybeAssign'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(1726,46): error TS2339: Property 'startLoc' does not exist on type 'parseMaybeAssign'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(1727,12): error TS2339: Property 'type' does not exist on type 'parseMaybeAssign'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(1727,38): error TS2339: Property 'type' does not exist on type 'parseMaybeAssign'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(1728,34): error TS2339: Property 'start' does not exist on type 'parseMaybeAssign'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(1729,19): error TS2339: Property 'parseMaybeConditional' does not exist on type 'parseMaybeAssign'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(1731,12): error TS2339: Property 'type' does not exist on type 'parseMaybeAssign'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(1732,10): error TS2339: Property 'checkPatternErrors' does not exist on type 'parseMaybeAssign'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(1734,21): error TS2339: Property 'startNodeAt' does not exist on type 'parseMaybeAssign'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(1735,26): error TS2339: Property 'value' does not exist on type 'parseMaybeAssign'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(1736,22): error TS2339: Property 'type' does not exist on type 'parseMaybeAssign'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(1736,44): error TS2339: Property 'toAssignable' does not exist on type 'parseMaybeAssign'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(1738,10): error TS2339: Property 'checkLVal' does not exist on type 'parseMaybeAssign'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(1739,10): error TS2339: Property 'next' does not exist on type 'parseMaybeAssign'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(1740,23): error TS2339: Property 'parseMaybeAssign' does not exist on type 'parseMaybeAssign'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(1741,17): error TS2339: Property 'finishNode' does not exist on type 'parseMaybeAssign'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(1743,38): error TS2339: Property 'checkExpressionErrors' does not exist on type 'parseMaybeAssign'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2004,23): error TS2339: Property 'start' does not exist on type 'parseParenAndDistinguishExpression'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2004,46): error TS2339: Property 'startLoc' does not exist on type 'parseParenAndDistinguishExpression'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2004,87): error TS2339: Property 'options' does not exist on type 'parseParenAndDistinguishExpression'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2005,12): error TS2339: Property 'options' does not exist on type 'parseParenAndDistinguishExpression'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2006,10): error TS2339: Property 'next' does not exist on type 'parseParenAndDistinguishExpression'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2008,30): error TS2339: Property 'start' does not exist on type 'parseParenAndDistinguishExpression'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2008,58): error TS2339: Property 'startLoc' does not exist on type 'parseParenAndDistinguishExpression'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2013,17): error TS2339: Property 'type' does not exist on type 'parseParenAndDistinguishExpression'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2014,38): error TS2339: Property 'expect' does not exist on type 'parseParenAndDistinguishExpression'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2015,40): error TS2339: Property 'afterTrailingComma' does not exist on type 'parseParenAndDistinguishExpression'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2018,25): error TS2339: Property 'type' does not exist on type 'parseParenAndDistinguishExpression'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2019,30): error TS2339: Property 'start' does not exist on type 'parseParenAndDistinguishExpression'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2020,30): error TS2339: Property 'parseParenItem' does not exist on type 'parseParenAndDistinguishExpression'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2020,52): error TS2339: Property 'parseRest' does not exist on type 'parseParenAndDistinguishExpression'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2021,20): error TS2339: Property 'type' does not exist on type 'parseParenAndDistinguishExpression'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2021,46): error TS2339: Property 'raise' does not exist on type 'parseParenAndDistinguishExpression'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2021,59): error TS2339: Property 'start' does not exist on type 'parseParenAndDistinguishExpression'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2024,20): error TS2339: Property 'type' does not exist on type 'parseParenAndDistinguishExpression'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2025,36): error TS2339: Property 'start' does not exist on type 'parseParenAndDistinguishExpression'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2027,30): error TS2339: Property 'parseMaybeAssign' does not exist on type 'parseParenAndDistinguishExpression'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2027,85): error TS2339: Property 'parseParenItem' does not exist on type 'parseParenAndDistinguishExpression'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2030,28): error TS2339: Property 'start' does not exist on type 'parseParenAndDistinguishExpression'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2030,54): error TS2339: Property 'startLoc' does not exist on type 'parseParenAndDistinguishExpression'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2031,10): error TS2339: Property 'expect' does not exist on type 'parseParenAndDistinguishExpression'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2033,29): error TS2339: Property 'canInsertSemicolon' does not exist on type 'parseParenAndDistinguishExpression'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2033,58): error TS2339: Property 'eat' does not exist on type 'parseParenAndDistinguishExpression'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2034,12): error TS2339: Property 'checkPatternErrors' does not exist on type 'parseParenAndDistinguishExpression'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2035,12): error TS2339: Property 'checkYieldAwaitInDefaultParams' does not exist on type 'parseParenAndDistinguishExpression'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2036,33): error TS2339: Property 'unexpected' does not exist on type 'parseParenAndDistinguishExpression'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2039,19): error TS2339: Property 'parseParenArrowList' does not exist on type 'parseParenAndDistinguishExpression'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2042,47): error TS2339: Property 'unexpected' does not exist on type 'parseParenAndDistinguishExpression'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2042,63): error TS2339: Property 'lastTokStart' does not exist on type 'parseParenAndDistinguishExpression'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2043,27): error TS2339: Property 'unexpected' does not exist on type 'parseParenAndDistinguishExpression'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2044,10): error TS2339: Property 'checkExpressionErrors' does not exist on type 'parseParenAndDistinguishExpression'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2049,18): error TS2339: Property 'startNodeAt' does not exist on type 'parseParenAndDistinguishExpression'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2051,12): error TS2339: Property 'finishNodeAt' does not exist on type 'parseParenAndDistinguishExpression'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2056,16): error TS2339: Property 'parseParenExpression' does not exist on type 'parseParenAndDistinguishExpression'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2059,12): error TS2339: Property 'options' does not exist on type 'parseParenAndDistinguishExpression'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2060,20): error TS2339: Property 'startNodeAt' does not exist on type 'parseParenAndDistinguishExpression'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2062,17): error TS2339: Property 'finishNode' does not exist on type 'parseParenAndDistinguishExpression'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2254,19): error TS2339: Property 'startNode' does not exist on type 'parseMethod'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2256,8): error TS2339: Property 'initFunction' does not exist on type 'parseMethod'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2257,12): error TS2339: Property 'options' does not exist on type 'parseMethod'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2259,12): error TS2339: Property 'options' does not exist on type 'parseMethod'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2267,8): error TS2339: Property 'expect' does not exist on type 'parseMethod'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2268,22): error TS2339: Property 'parseBindingList' does not exist on type 'parseMethod'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2268,62): error TS2339: Property 'options' does not exist on type 'parseMethod'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2269,8): error TS2339: Property 'checkYieldAwaitInDefaultParams' does not exist on type 'parseMethod'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2270,8): error TS2339: Property 'parseFunctionBody' does not exist on type 'parseMethod'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2276,15): error TS2339: Property 'finishNode' does not exist on type 'parseMethod'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2284,8): error TS2339: Property 'initFunction' does not exist on type 'parseArrowExpression'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2285,12): error TS2339: Property 'options' does not exist on type 'parseArrowExpression'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2293,22): error TS2339: Property 'toAssignableList' does not exist on type 'parseArrowExpression'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2294,8): error TS2339: Property 'parseFunctionBody' does not exist on type 'parseArrowExpression'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2300,15): error TS2339: Property 'finishNode' does not exist on type 'parseArrowExpression'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2306,46): error TS2339: Property 'type' does not exist on type 'parseFunctionBody'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2309,22): error TS2339: Property 'parseMaybeAssign' does not exist on type 'parseFunctionBody'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2316,22): error TS2339: Property 'parseBlock' does not exist on type 'parseFunctionBody'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2324,67): error TS2339: Property 'isUseStrict' does not exist on type 'parseFunctionBody'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2325,25): error TS2339: Property 'options' does not exist on type 'parseFunctionBody'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2325,59): error TS2339: Property 'isSimpleParamList' does not exist on type 'parseFunctionBody'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2326,10): error TS2339: Property 'raiseRecoverable' does not exist on type 'parseFunctionBody'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2332,12): error TS2339: Property 'checkLVal' does not exist on type 'parseFunctionBody'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2333,10): error TS2339: Property 'checkParams' does not exist on type 'parseFunctionBody'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2335,39): error TS2339: Property 'isSimpleParamList' does not exist on type 'parseFunctionBody'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2336,10): error TS2339: Property 'checkParams' does not exist on type 'parseFunctionBody'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2416,44): error TS2339: Property 'start' does not exist on type 'parseYield'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2418,19): error TS2339: Property 'startNode' does not exist on type 'parseYield'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2419,8): error TS2339: Property 'next' does not exist on type 'parseYield'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2420,12): error TS2339: Property 'type' does not exist on type 'parseYield'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2420,36): error TS2339: Property 'canInsertSemicolon' does not exist on type 'parseYield'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2420,66): error TS2339: Property 'type' does not exist on type 'parseYield'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2420,91): error TS2339: Property 'type' does not exist on type 'parseYield'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2424,26): error TS2339: Property 'eat' does not exist on type 'parseYield'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2425,26): error TS2339: Property 'parseMaybeAssign' does not exist on type 'parseYield'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2427,15): error TS2339: Property 'finishNode' does not exist on type 'parseYield'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2431,44): error TS2339: Property 'start' does not exist on type 'parseAwait'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2433,19): error TS2339: Property 'startNode' does not exist on type 'parseAwait'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2434,8): error TS2339: Property 'next' does not exist on type 'parseAwait'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2435,24): error TS2339: Property 'parseMaybeUnary' does not exist on type 'parseAwait'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2436,15): error TS2339: Property 'finishNode' does not exist on type 'parseAwait'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2451,7): error TS2339: Property 'pos' does not exist on type 'SyntaxError'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2451,22): error TS2339: Property 'loc' does not exist on type 'SyntaxError'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2451,37): error TS2339: Property 'raisedAt' does not exist on type 'SyntaxError'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2552,27): error TS2339: Property 'type' does not exist on type 'updateContext'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2564,12): error TS2339: Property 'context' does not exist on type 'updateContext'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2568,18): error TS2339: Property 'context' does not exist on type 'updateContext'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2569,36): error TS2339: Property 'curContext' does not exist on type 'updateContext'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2570,10): error TS2339: Property 'context' does not exist on type 'updateContext'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2580,8): error TS2339: Property 'context' does not exist on type 'updateContext'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2580,26): error TS2339: Property 'braceIsBlock' does not exist on type 'updateContext'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2585,8): error TS2339: Property 'context' does not exist on type 'updateContext'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2591,8): error TS2339: Property 'context' does not exist on type 'updateContext'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2601,67): error TS2339: Property 'curContext' does not exist on type 'updateContext'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2602,10): error TS2339: Property 'context' does not exist on type 'updateContext'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2607,12): error TS2339: Property 'curContext' does not exist on type 'updateContext'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2608,10): error TS2339: Property 'context' does not exist on type 'updateContext'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2610,10): error TS2339: Property 'context' does not exist on type 'updateContext'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2634,22): error TS2304: Cannot find name 'Packages'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2634,77): error TS2304: Cannot find name 'Packages'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2639,12): error TS2339: Property 'options' does not exist on type 'next'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2640,10): error TS2339: Property 'options' does not exist on type 'next'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2642,26): error TS2339: Property 'end' does not exist on type 'next'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2643,28): error TS2339: Property 'start' does not exist on type 'next'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2644,29): error TS2339: Property 'endLoc' does not exist on type 'next'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2645,31): error TS2339: Property 'startLoc' does not exist on type 'next'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2646,8): error TS2339: Property 'nextToken' does not exist on type 'next'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2674,12): error TS2339: Property 'type' does not exist on type 'setStrict'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2674,36): error TS2339: Property 'type' does not exist on type 'setStrict'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2675,19): error TS2339: Property 'start' does not exist on type 'setStrict'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2676,12): error TS2339: Property 'options' does not exist on type 'setStrict'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2677,28): error TS2339: Property 'lineStart' does not exist on type 'setStrict'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2678,14): error TS2339: Property 'lineStart' does not exist on type 'setStrict'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2678,33): error TS2339: Property 'input' does not exist on type 'setStrict'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2678,64): error TS2339: Property 'lineStart' does not exist on type 'setStrict'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2679,16): error TS2339: Property 'curLine' does not exist on type 'setStrict'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2682,8): error TS2339: Property 'nextToken' does not exist on type 'setStrict'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2693,25): error TS2339: Property 'curContext' does not exist on type 'nextToken'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2694,54): error TS2339: Property 'skipSpace' does not exist on type 'nextToken'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2696,21): error TS2339: Property 'pos' does not exist on type 'nextToken'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2697,12): error TS2339: Property 'options' does not exist on type 'nextToken'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2697,52): error TS2339: Property 'curPosition' does not exist on type 'nextToken'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2698,12): error TS2339: Property 'pos' does not exist on type 'nextToken'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2698,24): error TS2339: Property 'input' does not exist on type 'nextToken'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2698,50): error TS2339: Property 'finishToken' does not exist on type 'nextToken'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2701,13): error TS2339: Property 'readToken' does not exist on type 'nextToken'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2701,28): error TS2339: Property 'fullCharCodeAtPos' does not exist on type 'nextToken'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2723,23): error TS2339: Property 'options' does not exist on type 'skipBlockComment'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2723,49): error TS2339: Property 'curPosition' does not exist on type 'skipBlockComment'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2724,36): error TS2339: Property 'input' does not exist on type 'skipBlockComment'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2724,56): error TS2365: Operator '+=' cannot be applied to types 'undefined' and '2'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2725,24): error TS2339: Property 'raise' does not exist on type 'skipBlockComment'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2725,30): error TS2532: Object is possibly 'undefined'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2727,12): error TS2339: Property 'options' does not exist on type 'skipBlockComment'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2730,42): error TS2339: Property 'input' does not exist on type 'skipBlockComment'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2731,16): error TS2339: Property 'curLine' does not exist on type 'skipBlockComment'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2732,14): error TS2339: Property 'lineStart' does not exist on type 'skipBlockComment'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2735,12): error TS2339: Property 'options' does not exist on type 'skipBlockComment'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2736,10): error TS2339: Property 'options' does not exist on type 'skipBlockComment'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2736,39): error TS2339: Property 'input' does not exist on type 'skipBlockComment'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2737,43): error TS2339: Property 'curPosition' does not exist on type 'skipBlockComment'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2806,19): error TS2339: Property 'pos' does not exist on type 'finishToken'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2807,12): error TS2339: Property 'options' does not exist on type 'finishToken'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2807,50): error TS2339: Property 'curPosition' does not exist on type 'finishToken'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(2812,8): error TS2339: Property 'updateContext' does not exist on type 'finishToken'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(3233,17): error TS2339: Property 'input' does not exist on type 'readEscapedChar'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(3233,41): error TS2339: Property 'pos' does not exist on type 'readEscapedChar'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(3234,10): error TS2339: Property 'pos' does not exist on type 'readEscapedChar'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(3238,45): error TS2339: Property 'readHexChar' does not exist on type 'readEscapedChar'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(3239,43): error TS2339: Property 'readCodePoint' does not exist on type 'readEscapedChar'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(3244,21): error TS2339: Property 'input' does not exist on type 'readEscapedChar'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(3244,43): error TS2339: Property 'pos' does not exist on type 'readEscapedChar'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(3244,63): error TS2339: Property 'pos' does not exist on type 'readEscapedChar'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(3246,14): error TS2339: Property 'options' does not exist on type 'readEscapedChar'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(3246,57): error TS2339: Property 'pos' does not exist on type 'readEscapedChar'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(3246,69): error TS2339: Property 'curLine' does not exist on type 'readEscapedChar'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(3250,27): error TS2339: Property 'input' does not exist on type 'readEscapedChar'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(3250,45): error TS2339: Property 'pos' does not exist on type 'readEscapedChar'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(3256,37): error TS2339: Property 'strict' does not exist on type 'readEscapedChar'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(3257,14): error TS2339: Property 'raise' does not exist on type 'readEscapedChar'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(3257,25): error TS2339: Property 'pos' does not exist on type 'readEscapedChar'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(3259,12): error TS2339: Property 'pos' does not exist on type 'readEscapedChar'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(3285,50): error TS2339: Property 'pos' does not exist on type 'readWord1'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(3286,21): error TS2339: Property 'options' does not exist on type 'readWord1'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(3287,15): error TS2339: Property 'pos' does not exist on type 'readWord1'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(3287,26): error TS2339: Property 'input' does not exist on type 'readWord1'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(3288,21): error TS2339: Property 'fullCharCodeAtPos' does not exist on type 'readWord1'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(3290,14): error TS2339: Property 'pos' does not exist on type 'readWord1'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(3293,22): error TS2339: Property 'input' does not exist on type 'readWord1'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(3293,53): error TS2339: Property 'pos' does not exist on type 'readWord1'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(3294,29): error TS2339: Property 'pos' does not exist on type 'readWord1'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(3295,18): error TS2339: Property 'input' does not exist on type 'readWord1'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(3295,44): error TS2339: Property 'pos' does not exist on type 'readWord1'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(3296,16): error TS2339: Property 'raise' does not exist on type 'readWord1'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(3296,29): error TS2339: Property 'pos' does not exist on type 'readWord1'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(3297,16): error TS2339: Property 'pos' does not exist on type 'readWord1'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(3298,24): error TS2339: Property 'readCodePoint' does not exist on type 'readWord1'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(3300,16): error TS2339: Property 'raise' does not exist on type 'readWord1'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(3302,27): error TS2339: Property 'pos' does not exist on type 'readWord1'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(3308,22): error TS2339: Property 'input' does not exist on type 'readWord1'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(3308,51): error TS2339: Property 'pos' does not exist on type 'readWord1'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(3362,5): error TS2339: Property 'nextToken' does not exist on type 'Parser'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn.js(3363,12): error TS2339: Property 'parseExpression' does not exist on type 'Parser'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn_loose.js(4,10): error TS2304: Cannot find name 'define'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn_loose.js(4,35): error TS2304: Cannot find name 'define'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn_loose.js(4,48): error TS2304: Cannot find name 'define'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn_loose.js(5,20): error TS2339: Property 'acorn' does not exist on type 'typeof import("/chrome-devtools-frontend/node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn_loose")'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn_loose.js(5,55): error TS2339: Property 'acorn' does not exist on type 'typeof import("/chrome-devtools-frontend/node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn_loose")'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn_loose.js(5,102): error TS2339: Property 'acorn' does not exist on type 'typeof import("/chrome-devtools-frontend/node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn_loose")'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn_loose.js(85,10): error TS2339: Property 'next' does not exist on type 'LooseParser'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn_loose.js(114,16): error TS2339: Property 'lookAhead' does not exist on type 'LooseParser'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn_loose.js(115,42): error TS2339: Property 'next' does not exist on type 'LooseParser'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn_loose.js(186,12): error TS2339: Property 'ahead' does not exist on type 'next'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn_loose.js(187,21): error TS2339: Property 'ahead' does not exist on type 'next'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn_loose.js(189,21): error TS2339: Property 'readToken' does not exist on type 'next'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn_loose.js(191,30): error TS2339: Property 'nextLineStart' does not exist on type 'next'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn_loose.js(192,35): error TS2339: Property 'nextLineStart' does not exist on type 'next'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn_loose.js(193,14): error TS2339: Property 'curLineStart' does not exist on type 'next'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn_loose.js(193,36): error TS2339: Property 'nextLineStart' does not exist on type 'next'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn_loose.js(194,14): error TS2339: Property 'nextLineStart' does not exist on type 'next'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn_loose.js(194,37): error TS2339: Property 'lineEnd' does not exist on type 'next'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn_loose.js(194,52): error TS2339: Property 'curLineStart' does not exist on type 'next'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn_loose.js(196,27): error TS2339: Property 'indentationAfter' does not exist on type 'next'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn_loose.js(196,49): error TS2339: Property 'curLineStart' does not exist on type 'next'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn_loose.js(217,36): error TS2339: Property 'raisedAt' does not exist on type 'SyntaxError'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn_loose.js(219,32): error TS2339: Property 'pos' does not exist on type 'SyntaxError'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn_loose.js(221,11): error TS2322: Type '{ start: any; end: any; type: any; value: any; }' is not assignable to type 'boolean'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn_loose.js(221,31): error TS2339: Property 'pos' does not exist on type 'SyntaxError'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn_loose.js(221,105): error TS2339: Property 'pos' does not exist on type 'SyntaxError'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn_loose.js(223,41): error TS2339: Property 'pos' does not exist on type 'SyntaxError'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn_loose.js(225,11): error TS2322: Type '{ start: any; end: any; type: any; value: any; }' is not assignable to type 'boolean'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn_loose.js(225,31): error TS2339: Property 'pos' does not exist on type 'SyntaxError'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn_loose.js(227,11): error TS2322: Type '{ start: any; end: any; type: any; value: any; }' is not assignable to type 'boolean'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn_loose.js(228,22): error TS2339: Property 'pos' does not exist on type 'SyntaxError'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn_loose.js(231,41): error TS2339: Property 'pos' does not exist on type 'SyntaxError'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn_loose.js(252,29): error TS2322: Type '{ start: any; end: any; type: any; value: string; }' is not assignable to type 'boolean'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn_loose.js(255,19): error TS2339: Property 'loc' does not exist on type 'true'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn_loose.js(257,55): error TS2339: Property 'start' does not exist on type 'true'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn_loose.js(258,55): error TS2339: Property 'end' does not exist on type 'true'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn_loose.js(300,19): error TS2339: Property 'startNodeAt' does not exist on type 'parseTopLevel'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn_loose.js(300,36): error TS2339: Property 'options' does not exist on type 'parseTopLevel'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn_loose.js(300,85): error TS2339: Property 'input' does not exist on type 'parseTopLevel'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn_loose.js(302,15): error TS2339: Property 'tok' does not exist on type 'parseTopLevel'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn_loose.js(302,72): error TS2339: Property 'parseStatement' does not exist on type 'parseTopLevel'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn_loose.js(303,20): error TS2339: Property 'tok' does not exist on type 'parseTopLevel'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn_loose.js(304,12): error TS2339: Property 'options' does not exist on type 'parseTopLevel'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn_loose.js(305,28): error TS2339: Property 'options' does not exist on type 'parseTopLevel'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn_loose.js(307,15): error TS2339: Property 'finishNode' does not exist on type 'parseTopLevel'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn_loose.js(621,8): error TS2339: Property 'initFunction' does not exist on type 'parseFunction'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn_loose.js(622,12): error TS2339: Property 'options' does not exist on type 'parseFunction'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn_loose.js(623,27): error TS2339: Property 'eat' does not exist on type 'parseFunction'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn_loose.js(625,12): error TS2339: Property 'options' does not exist on type 'parseFunction'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn_loose.js(628,12): error TS2339: Property 'tok' does not exist on type 'parseFunction'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn_loose.js(628,63): error TS2339: Property 'parseIdent' does not exist on type 'parseFunction'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn_loose.js(629,49): error TS2339: Property 'dummyIdent' does not exist on type 'parseFunction'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn_loose.js(631,22): error TS2339: Property 'parseFunctionParams' does not exist on type 'parseFunction'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn_loose.js(632,20): error TS2339: Property 'parseBlock' does not exist on type 'parseFunction'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn_loose.js(634,15): error TS2339: Property 'finishNode' does not exist on type 'parseFunction'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn_loose.js(1265,19): error TS2339: Property 'startNode' does not exist on type 'parseMethod'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn_loose.js(1266,8): error TS2339: Property 'initFunction' does not exist on type 'parseMethod'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn_loose.js(1267,12): error TS2339: Property 'options' does not exist on type 'parseMethod'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn_loose.js(1269,12): error TS2339: Property 'options' does not exist on type 'parseMethod'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn_loose.js(1272,22): error TS2339: Property 'parseFunctionParams' does not exist on type 'parseMethod'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn_loose.js(1273,26): error TS2339: Property 'options' does not exist on type 'parseMethod'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn_loose.js(1273,59): error TS2339: Property 'tok' does not exist on type 'parseMethod'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn_loose.js(1274,38): error TS2339: Property 'parseMaybeAssign' does not exist on type 'parseMethod'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn_loose.js(1274,64): error TS2339: Property 'parseBlock' does not exist on type 'parseMethod'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn_loose.js(1276,15): error TS2339: Property 'finishNode' does not exist on type 'parseMethod'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn_loose.js(1281,8): error TS2339: Property 'initFunction' does not exist on type 'parseArrowExpression'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn_loose.js(1282,12): error TS2339: Property 'options' does not exist on type 'parseArrowExpression'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn_loose.js(1285,22): error TS2339: Property 'toAssignableList' does not exist on type 'parseArrowExpression'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn_loose.js(1286,26): error TS2339: Property 'tok' does not exist on type 'parseArrowExpression'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn_loose.js(1287,38): error TS2339: Property 'parseMaybeAssign' does not exist on type 'parseArrowExpression'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn_loose.js(1287,64): error TS2339: Property 'parseBlock' does not exist on type 'parseArrowExpression'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn_loose.js(1289,15): error TS2339: Property 'finishNode' does not exist on type 'parseArrowExpression'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn_loose.js(1365,5): error TS2339: Property 'next' does not exist on type 'LooseParser'. -node_modules/chrome-devtools-frontend/front_end/formatter_worker/acorn/acorn_loose.js(1366,12): error TS2339: Property 'parseTopLevel' does not exist on type 'LooseParser'. -node_modules/chrome-devtools-frontend/front_end/har_importer/HARImporter.js(16,32): error TS2362: The left-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type. -node_modules/chrome-devtools-frontend/front_end/har_importer/HARImporter.js(16,52): error TS2363: The right-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type. -node_modules/chrome-devtools-frontend/front_end/har_importer/HARImporter.js(46,5): error TS2322: Type 'Date' is not assignable to type 'number'. -node_modules/chrome-devtools-frontend/front_end/heap_profiler_test_runner/HeapProfilerTestRunner.js(320,70): error TS2339: Property 'heap_profiler' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/heap_profiler_test_runner/HeapProfilerTestRunner.js(321,35): error TS2339: Property 'heap_profiler' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/heap_profiler_test_runner/HeapProfilerTestRunner.js(366,55): error TS2339: Property 'heap_profiler' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/heap_profiler_test_runner/HeapProfilerTestRunner.js(590,24): error TS2339: Property 'heap_profiler' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/heap_profiler_test_runner/HeapProfilerTestRunner.js(624,20): error TS2339: Property 'heap_profiler' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/heap_profiler_test_runner/HeapProfilerTestRunner.js(653,15): error TS2339: Property 'heap_profiler' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/heap_profiler_test_runner/HeapProfilerTestRunner.js(658,33): error TS2339: Property 'heap_profiler' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/heap_profiler_test_runner/HeapProfilerTestRunner.js(678,36): error TS2339: Property 'instance' does not exist on type 'typeof SamplingHeapProfileType'. -node_modules/chrome-devtools-frontend/front_end/heap_profiler_test_runner/HeapProfilerTestRunner.js(682,36): error TS2339: Property 'instance' does not exist on type 'typeof SamplingHeapProfileType'. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker.js(6,8): error TS2339: Property 'importScripts' does not exist on type 'Window & typeof globalThis'. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(37,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(87,5): error TS2322: Type 'void' is not assignable to type 'HeapSnapshotNode'. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(101,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'HeapSnapshotEdge' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(116,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'HeapSnapshotEdge' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(124,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'HeapSnapshotEdge' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(144,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(149,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(164,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(186,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'HeapSnapshotNodeIndexProvider' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(187,16): error TS2339: Property 'nodeIndex' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(188,5): error TS2322: Type 'void' is not assignable to type 'HeapSnapshotNode'. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(209,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'HeapSnapshotEdgeIndexProvider' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(232,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'HeapSnapshotRetainerEdgeIndexProvider' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(255,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'HeapSnapshotEdgeIterator' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(263,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'HeapSnapshotEdgeIterator' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(270,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'HeapSnapshotEdgeIterator' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(314,5): error TS2322: Type 'void' is not assignable to type 'HeapSnapshotNode'. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(352,10): error TS1345: An expression of type 'void' cannot be tested for truthiness. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(367,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'HeapSnapshotRetainerEdge' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(375,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'HeapSnapshotRetainerEdge' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(383,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'HeapSnapshotRetainerEdge' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(415,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'HeapSnapshotRetainerEdgeIterator' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(423,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'HeapSnapshotRetainerEdgeIterator' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(430,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'HeapSnapshotRetainerEdgeIterator' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(563,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'HeapSnapshotNode' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(571,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'HeapSnapshotNode' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(639,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'HeapSnapshotNodeIterator' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(647,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'HeapSnapshotNodeIterator' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(654,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'HeapSnapshotNodeIterator' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(678,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'HeapSnapshotIndexRangeIterator' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(686,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'HeapSnapshotIndexRangeIterator' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(694,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'HeapSnapshotIndexRangeIterator' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(718,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'HeapSnapshotFilteredIterator' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(726,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'HeapSnapshotFilteredIterator' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(733,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'HeapSnapshotFilteredIterator' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(815,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'HeapSnapshotProblemReport' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(918,34): error TS2345: Argument of type 'Uint32Array' is not assignable to parameter of type 'number[]'. - Type 'Uint32Array' is missing the following properties from type 'number[]': pop, push, concat, shift, and 5 more. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(920,34): error TS2345: Argument of type 'Uint32Array' is not assignable to parameter of type 'number[]'. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(1045,5): error TS2322: Type 'void' is not assignable to type 'HeapSnapshotNode'. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(1083,14): error TS2339: Property 'key' does not exist on type '(arg0: HeapSnapshotNode) => boolean'. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(1086,14): error TS2339: Property 'key' does not exist on type '(arg0: HeapSnapshotNode) => boolean'. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(1143,31): error TS2339: Property 'key' does not exist on type '(arg0: HeapSnapshotNode) => boolean'. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(1230,33): error TS2339: Property 'traceNodeId' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(1253,14): error TS2339: Property 'nodeIndex' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(1254,23): error TS2339: Property 'id' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(1255,29): error TS2339: Property 'selfSize' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(1273,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(1345,12): error TS2339: Property 'nodeIndex' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(1355,31): error TS2345: Argument of type 'void' is not assignable to parameter of type 'HeapSnapshotNode'. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(1424,13): error TS2322: Type '{}' is not assignable to type '{ [x: string]: { count: number; distance: number; self: number; maxRet: number; name: string; idxs: number[]; }; }'. - Index signature is missing in type '{}'. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(1424,59): error TS2322: Type '{}' is not assignable to type '{ [x: number]: { count: number; distance: number; self: number; maxRet: number; name: string; idxs: number[]; }; }'. - Index signature is missing in type '{}'. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(1447,12): error TS2339: Property 'nodeIndex' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(1448,29): error TS2339: Property 'classIndex' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(1454,39): error TS2345: Argument of type 'void' is not assignable to parameter of type 'HeapSnapshotNode'. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(1455,17): error TS2339: Property 'selfSize' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(1456,47): error TS2339: Property 'retainedSize' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(1483,15): error TS2339: Property 'nodeIndex' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(1484,15): error TS2339: Property 'nodeIndex' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(1485,22): error TS2339: Property 'id' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(1485,35): error TS2339: Property 'id' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(1516,17): error TS1345: An expression of type 'void' cannot be tested for truthiness. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(1516,41): error TS2339: Property 'map' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(1517,16): error TS1345: An expression of type 'void' cannot be tested for truthiness. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(1517,40): error TS2339: Property 'flag' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(1665,17): error TS1345: An expression of type 'void' cannot be tested for truthiness. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(1665,41): error TS2339: Property 'map' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(1666,16): error TS1345: An expression of type 'void' cannot be tested for truthiness. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(1666,40): error TS2339: Property 'flag' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(1862,40): error TS2339: Property 'lowerBound' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(1945,27): error TS2339: Property 'id' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(1952,17): error TS2339: Property 'id' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(1955,33): error TS2339: Property 'selfSize' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(1956,15): error TS2339: Property 'nodeIndex' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(1959,15): error TS2339: Property 'nodeIndex' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(1971,31): error TS2339: Property 'selfSize' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(1972,13): error TS2339: Property 'nodeIndex' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(1974,10): error TS2339: Property 'countDelta' does not exist on type 'Diff'. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(1975,10): error TS2339: Property 'sizeDelta' does not exist on type 'Diff'. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(2021,80): error TS2339: Property 'edges' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(2032,80): error TS2339: Property 'edges' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(2057,80): error TS2339: Property 'retainers' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(2205,12): error TS2339: Property 'sort' does not exist on type 'HeapSnapshotItemProvider'. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(2263,39): error TS2339: Property 'clone' does not exist on type 'HeapSnapshotItem'. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(2283,13): error TS2339: Property 'nodeIndex' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(2287,13): error TS2339: Property 'nodeIndex' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(2322,28): error TS2339: Property 'sortRange' does not exist on type 'number[]'. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(2324,28): error TS2339: Property 'sortRange' does not exist on type 'number[]'. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(2326,28): error TS2339: Property 'sortRange' does not exist on type 'number[]'. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(2353,12): error TS2339: Property 'nodeIndex' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(2354,16): error TS2339: Property 'id' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(2397,13): error TS2339: Property 'nodeIndex' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(2398,13): error TS2339: Property 'nodeIndex' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(2416,26): error TS2339: Property 'sortRange' does not exist on type 'number[]'. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(2473,26): error TS2339: Property 'isInvisible' does not exist on type 'HeapSnapshotEdge'. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(2508,16): error TS2339: Property 'isHidden' does not exist on type 'HeapSnapshotNode'. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(2509,62): error TS2339: Property 'rawName' does not exist on type 'HeapSnapshotNode'. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(2510,16): error TS2339: Property 'isArray' does not exist on type 'HeapSnapshotNode'. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(2524,18): error TS2339: Property 'rawName' does not exist on type 'HeapSnapshotNode'. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(2527,16): error TS2365: Operator '<' cannot be applied to types 'string' and 'number'. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(2527,30): error TS2362: The left-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(2541,17): error TS2339: Property 'isUserRoot' does not exist on type 'HeapSnapshotNode'. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(2541,38): error TS2339: Property 'isDocumentDOMTreesRoot' does not exist on type 'HeapSnapshotNode'. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(2546,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(2658,28): error TS2339: Property 'isUserRoot' does not exist on type 'HeapSnapshotNode'. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(2710,19): error TS2339: Property 'isDocumentDOMTreesRoot' does not exist on type 'HeapSnapshotNode'. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(2842,32): error TS2339: Property '_flagsOfNode' does not exist on type 'HeapSnapshot'. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(2843,38): error TS2339: Property '_nodeFlags' does not exist on type 'HeapSnapshot'. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(2860,29): error TS2339: Property '_lazyStringCache' does not exist on type 'HeapSnapshot'. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(2863,18): error TS2339: Property '_lazyStringCache' does not exist on type 'HeapSnapshot'. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(3002,32): error TS2339: Property '_flagsOfNode' does not exist on type 'HeapSnapshot'. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(3003,32): error TS2339: Property '_nodeFlags' does not exist on type 'HeapSnapshot'. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(3005,32): error TS2339: Property '_nodeFlags' does not exist on type 'HeapSnapshot'. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(3039,27): error TS2345: Argument of type 'string | number' is not assignable to parameter of type 'string'. - Type 'number' is not assignable to type 'string'. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshot.js(3092,28): error TS2345: Argument of type 'string | number' is not assignable to parameter of type 'string'. - Type 'number' is not assignable to type 'string'. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshotWorker.js(31,3): error TS2554: Expected 2-3 arguments, but got 1. -node_modules/chrome-devtools-frontend/front_end/heap_snapshot_worker/HeapSnapshotWorker.js(37,12): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/help/ReleaseNoteView.js(10,42): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/help/ReleaseNoteView.js(21,26): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/help/ReleaseNoteView.js(26,13): error TS2339: Property 'title' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/help/ReleaseNoteView.js(29,16): error TS2339: Property 'title' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/help/ReleaseNoteView.js(35,13): error TS2339: Property 'consume' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/help/ReleaseNoteView.js(39,13): error TS2339: Property 'consume' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/help/ReleaseNoteView.js(45,15): error TS2339: Property 'title' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/help/ReleaseNoteView.js(47,27): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/host/InspectorFrontendHost.js(44,47): error TS2339: Property 'metaKey' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/host/InspectorFrontendHost.js(44,63): error TS2339: Property 'ctrlKey' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/host/InspectorFrontendHost.js(45,34): error TS2339: Property 'keyCode' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/host/InspectorFrontendHost.js(45,59): error TS2339: Property 'keyCode' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/host/InspectorFrontendHost.js(55,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostStub' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/host/InspectorFrontendHost.js(63,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostStub' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/host/InspectorFrontendHost.js(71,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostStub' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/host/InspectorFrontendHost.js(79,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostStub' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/host/InspectorFrontendHost.js(87,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostStub' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/host/InspectorFrontendHost.js(100,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostStub' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/host/InspectorFrontendHost.js(106,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostStub' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/host/InspectorFrontendHost.js(113,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostStub' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/host/InspectorFrontendHost.js(120,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/host/InspectorFrontendHost.js(122,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostStub' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/host/InspectorFrontendHost.js(131,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostStub' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/host/InspectorFrontendHost.js(137,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostStub' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/host/InspectorFrontendHost.js(145,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostStub' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/host/InspectorFrontendHost.js(153,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostStub' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/host/InspectorFrontendHost.js(161,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostStub' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/host/InspectorFrontendHost.js(169,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostStub' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/host/InspectorFrontendHost.js(177,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostStub' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/host/InspectorFrontendHost.js(187,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostStub' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/host/InspectorFrontendHost.js(189,10): error TS2339: Property 'events' does not exist on type 'InspectorFrontendHostStub'. -node_modules/chrome-devtools-frontend/front_end/host/InspectorFrontendHost.js(197,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostStub' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/host/InspectorFrontendHost.js(205,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostStub' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/host/InspectorFrontendHost.js(214,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostStub' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/host/InspectorFrontendHost.js(220,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostStub' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/host/InspectorFrontendHost.js(221,10): error TS2339: Property 'events' does not exist on type 'InspectorFrontendHostStub'. -node_modules/chrome-devtools-frontend/front_end/host/InspectorFrontendHost.js(228,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostStub' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/host/InspectorFrontendHost.js(235,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostStub' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/host/InspectorFrontendHost.js(244,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostStub' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/host/InspectorFrontendHost.js(253,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/host/InspectorFrontendHost.js(255,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostStub' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/host/InspectorFrontendHost.js(259,20): error TS2345: Argument of type '{ statusCode: number; }' is not assignable to parameter of type 'LoadNetworkResourceResult'. - Property 'headers' is missing in type '{ statusCode: number; }' but required in type 'LoadNetworkResourceResult'. -node_modules/chrome-devtools-frontend/front_end/host/InspectorFrontendHost.js(262,20): error TS2345: Argument of type '{ statusCode: number; }' is not assignable to parameter of type 'LoadNetworkResourceResult'. - Property 'headers' is missing in type '{ statusCode: number; }' but required in type 'LoadNetworkResourceResult'. -node_modules/chrome-devtools-frontend/front_end/host/InspectorFrontendHost.js(268,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/host/InspectorFrontendHost.js(270,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostStub' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/host/InspectorFrontendHost.js(274,14): error TS2345: Argument of type '{}' is not assignable to parameter of type '{ [x: string]: string; }'. - Index signature is missing in type '{}'. -node_modules/chrome-devtools-frontend/front_end/host/InspectorFrontendHost.js(282,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostStub' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/host/InspectorFrontendHost.js(290,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostStub' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/host/InspectorFrontendHost.js(297,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostStub' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/host/InspectorFrontendHost.js(303,15): error TS2304: Cannot find name 'FileSystem'. -node_modules/chrome-devtools-frontend/front_end/host/InspectorFrontendHost.js(305,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostStub' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/host/InspectorFrontendHost.js(313,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostStub' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/host/InspectorFrontendHost.js(320,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostStub' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/host/InspectorFrontendHost.js(329,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostStub' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/host/InspectorFrontendHost.js(336,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostStub' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/host/InspectorFrontendHost.js(343,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostStub' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/host/InspectorFrontendHost.js(349,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostStub' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/host/InspectorFrontendHost.js(355,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostStub' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/host/InspectorFrontendHost.js(362,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostStub' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/host/InspectorFrontendHost.js(369,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostStub' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/host/InspectorFrontendHost.js(376,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostStub' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/host/InspectorFrontendHost.js(381,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/host/InspectorFrontendHost.js(383,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostStub' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/host/InspectorFrontendHost.js(389,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostStub' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/host/InspectorFrontendHost.js(395,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostStub' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/host/InspectorFrontendHost.js(402,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostStub' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/host/InspectorFrontendHost.js(409,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostStub' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/host/InspectorFrontendHost.js(416,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostStub' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/host/InspectorFrontendHost.js(424,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostStub' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/host/InspectorFrontendHost.js(432,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostStub' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/host/InspectorFrontendHost.js(438,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostStub' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/host/InspectorFrontendHost.js(448,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostStub' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/host/InspectorFrontendHost.js(456,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'InspectorFrontendHostStub' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/host/InspectorFrontendHost.js(471,12): error TS2538: Type 'string[]' cannot be used as an index type. -node_modules/chrome-devtools-frontend/front_end/host/InspectorFrontendHost.js(483,7): error TS2304: Cannot find name 'setImmediate'. -node_modules/chrome-devtools-frontend/front_end/host/InspectorFrontendHost.js(491,33): error TS2339: Property 'events' does not exist on type 'InspectorFrontendHostAPI'. -node_modules/chrome-devtools-frontend/front_end/host/InspectorFrontendHost.js(501,31): error TS2339: Property 'events' does not exist on type 'InspectorFrontendHostAPI'. -node_modules/chrome-devtools-frontend/front_end/host/InspectorFrontendHost.js(551,27): error TS2339: Property 'events' does not exist on type 'InspectorFrontendHostAPI'. -node_modules/chrome-devtools-frontend/front_end/host/InspectorFrontendHost.js(557,10): error TS2551: Property 'InspectorFrontendAPI' does not exist on type 'Window & typeof globalThis'. Did you mean 'InspectorFrontendHost'? -node_modules/chrome-devtools-frontend/front_end/host/InspectorFrontendHost.js(563,23): error TS2339: Property 'events' does not exist on type 'InspectorFrontendHostAPI'. -node_modules/chrome-devtools-frontend/front_end/host/InspectorFrontendHostAPI.js(7,8): error TS2339: Property 'InspectorFrontendHostAPI' does not exist on type 'Window & typeof globalThis'. -node_modules/chrome-devtools-frontend/front_end/host/InspectorFrontendHostAPI.js(118,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/host/InspectorFrontendHostAPI.js(123,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/host/InspectorFrontendHostAPI.js(128,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/host/InspectorFrontendHostAPI.js(133,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/host/InspectorFrontendHostAPI.js(210,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/host/InspectorFrontendHostAPI.js(241,15): error TS2304: Cannot find name 'FileSystem'. -node_modules/chrome-devtools-frontend/front_end/host/InspectorFrontendHostAPI.js(246,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/host/InspectorFrontendHostAPI.js(299,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/host/InspectorFrontendHostAPI.js(332,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/host/ResourceLoader.js(38,12): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/inline_editor/BezierEditor.js(11,25): error TS2339: Property 'tabIndex' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/BezierEditor.js(15,48): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/BezierEditor.js(18,46): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/BezierEditor.js(21,48): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/BezierEditor.js(38,40): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/BezierEditor.js(100,59): error TS2339: Property 'x' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/BezierEditor.js(100,68): error TS2339: Property 'y' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/BezierEditor.js(103,16): error TS2339: Property 'constrain' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/BezierEditor.js(103,33): error TS2339: Property 'offsetX' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/BezierEditor.js(104,62): error TS2339: Property 'offsetY' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/BezierEditor.js(114,11): error TS2339: Property 'consume' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/BezierEditor.js(126,16): error TS2339: Property 'constrain' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/BezierEditor.js(134,39): error TS2339: Property 'x' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/BezierEditor.js(134,48): error TS2339: Property 'y' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/BezierEditor.js(142,39): error TS2339: Property 'x' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/BezierEditor.js(142,48): error TS2339: Property 'y' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/BezierEditor.js(153,37): error TS2339: Property 'createSVGChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/BezierEditor.js(167,30): error TS2339: Property 'createSVGChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/BezierEditor.js(197,13): error TS2339: Property 'consume' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/BezierUI.js(69,30): error TS2339: Property 'createSVGChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/BezierUI.js(85,32): error TS2339: Property 'createSVGChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/BezierUI.js(100,31): error TS2345: Argument of type 'number' is not assignable to parameter of type 'string'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/BezierUI.js(101,32): error TS2345: Argument of type 'number' is not assignable to parameter of type 'string'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/BezierUI.js(102,9): error TS2339: Property 'removeChildren' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/BezierUI.js(103,21): error TS2339: Property 'createSVGChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/CSSShadowEditor.js(11,25): error TS2339: Property 'tabIndex' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/CSSShadowEditor.js(14,43): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/CSSShadowEditor.js(23,38): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/CSSShadowEditor.js(25,38): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/CSSShadowEditor.js(38,29): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/CSSShadowEditor.js(42,45): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/CSSShadowEditor.js(53,23): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/CSSShadowEditor.js(96,18): error TS2339: Property 'value' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/CSSShadowEditor.js(97,18): error TS2339: Property 'value' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/CSSShadowEditor.js(98,21): error TS2339: Property 'value' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/CSSShadowEditor.js(99,23): error TS2339: Property 'value' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/CSSShadowEditor.js(100,22): error TS2339: Property 'value' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/CSSShadowEditor.js(101,24): error TS2339: Property 'value' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/CSSShadowEditor.js(169,72): error TS2339: Property 'value' does not exist on type 'EventTarget'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/CSSShadowEditor.js(177,25): error TS2339: Property 'value' does not exist on type 'EventTarget'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/CSSShadowEditor.js(178,25): error TS2339: Property 'selectionStart' does not exist on type 'EventTarget'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/CSSShadowEditor.js(179,25): error TS2339: Property 'selectionEnd' does not exist on type 'EventTarget'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/CSSShadowEditor.js(179,60): error TS2339: Property 'value' does not exist on type 'EventTarget'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/CSSShadowEditor.js(181,11): error TS2339: Property 'consume' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/CSSShadowEditor.js(201,26): error TS2339: Property 'classList' does not exist on type 'EventTarget'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/CSSShadowEditor.js(202,67): error TS2339: Property 'value' does not exist on type 'EventTarget'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/CSSShadowEditor.js(213,24): error TS2339: Property 'value' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/CSSShadowEditor.js(216,26): error TS2339: Property 'value' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/CSSShadowEditor.js(224,40): error TS2339: Property 'value' does not exist on type 'EventTarget'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/CSSShadowEditor.js(225,105): error TS2339: Property 'value' does not exist on type 'EventTarget'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/CSSShadowEditor.js(227,66): error TS2339: Property 'value' does not exist on type 'EventTarget'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/CSSShadowEditor.js(229,28): error TS2339: Property 'classList' does not exist on type 'EventTarget'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/CSSShadowEditor.js(235,20): error TS2339: Property 'value' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/CSSShadowEditor.js(239,20): error TS2339: Property 'value' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/CSSShadowEditor.js(245,23): error TS2339: Property 'value' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/CSSShadowEditor.js(246,24): error TS2339: Property 'value' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/CSSShadowEditor.js(249,25): error TS2339: Property 'value' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/CSSShadowEditor.js(250,26): error TS2339: Property 'value' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/CSSShadowEditor.js(262,28): error TS2339: Property 'value' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/CSSShadowEditor.js(263,23): error TS2339: Property 'value' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/CSSShadowEditor.js(267,30): error TS2339: Property 'value' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/CSSShadowEditor.js(268,25): error TS2339: Property 'value' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/CSSShadowEditor.js(317,18): error TS2339: Property 'value' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/CSSShadowEditor.js(318,18): error TS2339: Property 'value' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/CSSShadowEditor.js(335,15): error TS2339: Property 'key' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/CSSShadowEditor.js(337,20): error TS2339: Property 'key' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/CSSShadowEditor.js(339,20): error TS2339: Property 'key' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/CSSShadowEditor.js(341,20): error TS2339: Property 'key' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/CSSShadowEditor.js(346,11): error TS2339: Property 'consume' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/CSSShadowEditor.js(350,30): error TS2339: Property 'constrain' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/CSSShadowEditor.js(356,20): error TS2339: Property 'value' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/CSSShadowEditor.js(361,30): error TS2339: Property 'constrain' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/CSSShadowEditor.js(367,20): error TS2339: Property 'value' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/ColorSwatch.js(16,35): error TS2339: Property '_constructor' does not exist on type 'typeof ColorSwatch'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/ColorSwatch.js(17,32): error TS2339: Property '_constructor' does not exist on type 'typeof ColorSwatch'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/ColorSwatch.js(21,83): error TS2339: Property '_constructor' does not exist on type 'typeof ColorSwatch'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/ColorSwatch.js(128,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'HTMLSpanElement'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/ColorSwatch.js(131,30): error TS2339: Property 'createChild' does not exist on type 'DocumentFragment'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/ColorSwatch.js(138,10): error TS2339: Property 'createChild' does not exist on type 'DocumentFragment'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/ColorSwatch.js(139,36): error TS2339: Property 'createChild' does not exist on type 'ColorSwatch'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/ColorSwatch.js(146,16): error TS2339: Property 'shiftKey' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/ColorSwatch.js(148,18): error TS2339: Property 'parentNode' does not exist on type 'EventTarget'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/ColorSwatch.js(149,11): error TS2339: Property 'consume' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/ColorSwatch.js(166,36): error TS2339: Property '_constructor' does not exist on type 'typeof BezierSwatch'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/ColorSwatch.js(167,33): error TS2339: Property '_constructor' does not exist on type 'typeof BezierSwatch'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/ColorSwatch.js(171,85): error TS2339: Property '_constructor' does not exist on type 'typeof BezierSwatch'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/ColorSwatch.js(205,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'HTMLSpanElement'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/ColorSwatch.js(209,30): error TS2339: Property 'createChild' does not exist on type 'BezierSwatch'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/ColorSwatch.js(210,10): error TS2339: Property 'createChild' does not exist on type 'DocumentFragment'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/ColorSwatch.js(227,39): error TS2339: Property '_constructor' does not exist on type 'typeof CSSShadowSwatch'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/ColorSwatch.js(228,36): error TS2339: Property '_constructor' does not exist on type 'typeof CSSShadowSwatch'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/ColorSwatch.js(232,91): error TS2339: Property '_constructor' does not exist on type 'typeof CSSShadowSwatch'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/ColorSwatch.js(286,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'HTMLSpanElement'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/ColorSwatch.js(290,10): error TS2339: Property 'createChild' does not exist on type 'DocumentFragment'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/ColorSwatch.js(291,33): error TS2339: Property 'createChild' does not exist on type 'CSSShadowSwatch'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/SwatchPopoverHelper.js(13,37): error TS2345: Argument of type 'symbol' is not assignable to parameter of type 'boolean'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/SwatchPopoverHelper.js(14,64): error TS2339: Property 'consume' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/SwatchPopoverHelper.js(26,16): error TS2339: Property 'relatedTarget' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/SwatchPopoverHelper.js(26,39): error TS2339: Property 'relatedTarget' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/SwatchPopoverHelper.js(106,15): error TS2339: Property 'key' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/SwatchPopoverHelper.js(108,13): error TS2339: Property 'consume' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/SwatchPopoverHelper.js(111,15): error TS2339: Property 'key' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/inline_editor/SwatchPopoverHelper.js(113,13): error TS2339: Property 'consume' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/integration_test_runner.js(5,10): error TS2551: Property 'testRunner' does not exist on type 'Window & typeof globalThis'. Did you mean 'TestRunner'? -node_modules/chrome-devtools-frontend/front_end/integration_test_runner.js(6,3): error TS2552: Cannot find name 'testRunner'. Did you mean 'TestRunner'? -node_modules/chrome-devtools-frontend/front_end/integration_test_runner.js(7,3): error TS2552: Cannot find name 'testRunner'. Did you mean 'TestRunner'? -node_modules/chrome-devtools-frontend/front_end/layer_viewer/LayerDetailsView.js(51,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Widget'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/LayerDetailsView.js(58,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Widget'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/LayerDetailsView.js(68,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Widget'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/LayerDetailsView.js(84,15): error TS2339: Property 'which' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/LayerDetailsView.js(95,24): error TS2694: Namespace 'Protocol' has no exported member 'LayerTree'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/LayerDetailsView.js(102,25): error TS2339: Property 'scrollRectIndex' does not exist on type 'Selection'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/LayerDetailsView.js(179,51): error TS2339: Property 'bytesToString' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/LayerDetailsView.js(191,46): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/LayerDetailsView.js(199,53): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/LayerDetailsView.js(238,30): error TS2300: Duplicate identifier 'Events'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/LayerTreeOutline.js(62,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Object'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/LayerTreeOutline.js(76,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Object'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/LayerTreeOutline.js(92,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Object'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/LayerTreeOutline.js(150,61): error TS2339: Property 'root' does not exist on type 'TreeElement'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/LayerTreeOutline.js(151,31): error TS2339: Property '_layer' does not exist on type 'TreeElement'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/LayerTreeOutline.js(199,25): error TS2339: Property '_layer' does not exist on type 'TreeElement'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/LayerTreeOutline.js(199,80): error TS2339: Property '_layer' does not exist on type 'TreeElement'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/LayerTreeOutline.js(222,11): error TS2339: Property 'createTextChild' does not exist on type 'DocumentFragment'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/LayerTreeOutline.js(223,25): error TS2339: Property 'createChild' does not exist on type 'DocumentFragment'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/LayerViewHost.js(91,20): error TS2345: Argument of type 'Layer' is not assignable to parameter of type 'boolean'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/LayerViewHost.js(125,84): error TS2339: Property 'scrollRectIndex' does not exist on type 'Selection'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/LayerViewHost.js(149,34): error TS2339: Property '_snapshot' does not exist on type 'Selection'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/Layers3DView.js(44,30): error TS2339: Property 'createTextChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/Layers3DView.js(54,47): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/Layers3DView.js(79,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/Layers3DView.js(151,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/Layers3DView.js(159,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/Layers3DView.js(187,21): error TS2339: Property 'getContext' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/Layers3DView.js(215,25): error TS2339: Property 'vertexPositionAttribute' does not exist on type 'WebGLProgram'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/Layers3DView.js(216,58): error TS2339: Property 'vertexPositionAttribute' does not exist on type 'WebGLProgram'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/Layers3DView.js(217,25): error TS2339: Property 'vertexColorAttribute' does not exist on type 'WebGLProgram'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/Layers3DView.js(218,58): error TS2339: Property 'vertexColorAttribute' does not exist on type 'WebGLProgram'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/Layers3DView.js(219,25): error TS2339: Property 'textureCoordAttribute' does not exist on type 'WebGLProgram'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/Layers3DView.js(220,58): error TS2339: Property 'textureCoordAttribute' does not exist on type 'WebGLProgram'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/Layers3DView.js(222,25): error TS2339: Property 'pMatrixUniform' does not exist on type 'WebGLProgram'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/Layers3DView.js(223,25): error TS2339: Property 'samplerUniform' does not exist on type 'WebGLProgram'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/Layers3DView.js(253,31): error TS2339: Property 'constrain' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/Layers3DView.js(285,51): error TS2339: Property 'pMatrixUniform' does not exist on type 'WebGLProgram'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/Layers3DView.js(289,15): error TS2304: Cannot find name 'CSSMatrix'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/Layers3DView.js(515,50): error TS2339: Property 'vertexPositionAttribute' does not exist on type 'WebGLProgram'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/Layers3DView.js(516,50): error TS2339: Property 'textureCoordAttribute' does not exist on type 'WebGLProgram'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/Layers3DView.js(517,50): error TS2339: Property 'vertexColorAttribute' does not exist on type 'WebGLProgram'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/Layers3DView.js(522,40): error TS2339: Property 'samplerUniform' does not exist on type 'WebGLProgram'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/Layers3DView.js(559,48): error TS2339: Property 'image' does not exist on type 'WebGLTexture'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/Layers3DView.js(561,49): error TS2339: Property 'image' does not exist on type 'WebGLTexture'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/Layers3DView.js(561,94): error TS2339: Property 'image' does not exist on type 'WebGLTexture'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/Layers3DView.js(566,97): error TS2339: Property 'image' does not exist on type 'WebGLTexture'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/Layers3DView.js(600,32): error TS2339: Property 'removeChildren' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/Layers3DView.js(606,14): error TS2339: Property 'viewportWidth' does not exist on type 'WebGLRenderingContext'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/Layers3DView.js(607,14): error TS2339: Property 'viewportHeight' does not exist on type 'WebGLRenderingContext'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/Layers3DView.js(613,26): error TS2339: Property 'viewportWidth' does not exist on type 'WebGLRenderingContext'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/Layers3DView.js(613,44): error TS2339: Property 'viewportHeight' does not exist on type 'WebGLRenderingContext'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/Layers3DView.js(625,14): error TS2339: Property 'createChild' does not exist on type 'DocumentFragment'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/Layers3DView.js(626,14): error TS2339: Property 'createChild' does not exist on type 'DocumentFragment'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/Layers3DView.js(641,21): error TS2339: Property 'clientX' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/Layers3DView.js(642,22): error TS2339: Property 'clientY' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/Layers3DView.js(708,15): error TS2339: Property 'which' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/Layers3DView.js(717,30): error TS2339: Property 'clientX' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/Layers3DView.js(718,30): error TS2339: Property 'clientY' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/Layers3DView.js(726,44): error TS2339: Property 'clientX' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/Layers3DView.js(727,24): error TS2339: Property 'clientY' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/Layers3DView.js(776,26): error TS2300: Duplicate identifier 'Events'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/Layers3DView.js(841,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/Layers3DView.js(858,13): error TS2339: Property 'image' does not exist on type 'WebGLTexture'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/Layers3DView.js(861,81): error TS2339: Property 'image' does not exist on type 'WebGLTexture'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/Layers3DView.js(936,45): error TS2345: Argument of type '{ rect: any; snapshot: PaintProfilerSnapshot; }' is not assignable to parameter of type 'PaintProfilerSnapshot'. - Type '{ rect: any; snapshot: PaintProfilerSnapshot; }' is missing the following properties from type 'PaintProfilerSnapshot': _paintProfilerModel, _id, _refCount, release, and 4 more. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/Layers3DView.js(939,36): error TS2345: Argument of type 'Tile' is not assignable to parameter of type 'PaintProfilerSnapshot'. - Type 'Tile' is missing the following properties from type 'PaintProfilerSnapshot': _paintProfilerModel, _id, _refCount, release, and 4 more. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/Layers3DView.js(1080,24): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/Layers3DView.js(1098,15): error TS2304: Cannot find name 'CSSMatrix'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/PaintProfilerView.js(36,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/PaintProfilerView.js(42,49): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/PaintProfilerView.js(43,48): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/PaintProfilerView.js(70,39): error TS2551: Property '_categories' does not exist on type 'typeof PaintProfilerView'. Did you mean 'categories'? -node_modules/chrome-devtools-frontend/front_end/layer_viewer/PaintProfilerView.js(71,44): error TS2551: Property '_categories' does not exist on type 'typeof PaintProfilerView'. Did you mean 'categories'? -node_modules/chrome-devtools-frontend/front_end/layer_viewer/PaintProfilerView.js(72,35): error TS2551: Property '_categories' does not exist on type 'typeof PaintProfilerView'. Did you mean 'categories'? -node_modules/chrome-devtools-frontend/front_end/layer_viewer/PaintProfilerView.js(78,42): error TS2551: Property '_categories' does not exist on type 'typeof PaintProfilerView'. Did you mean 'categories'? -node_modules/chrome-devtools-frontend/front_end/layer_viewer/PaintProfilerView.js(85,39): error TS2551: Property '_logItemCategoriesMap' does not exist on type 'typeof PaintProfilerView'. Did you mean '_initLogItemCategories'? -node_modules/chrome-devtools-frontend/front_end/layer_viewer/PaintProfilerView.js(86,44): error TS2551: Property '_logItemCategoriesMap' does not exist on type 'typeof PaintProfilerView'. Did you mean '_initLogItemCategories'? -node_modules/chrome-devtools-frontend/front_end/layer_viewer/PaintProfilerView.js(128,35): error TS2551: Property '_logItemCategoriesMap' does not exist on type 'typeof PaintProfilerView'. Did you mean '_initLogItemCategories'? -node_modules/chrome-devtools-frontend/front_end/layer_viewer/PaintProfilerView.js(129,5): error TS2322: Type '{ Clear: PaintProfilerCategory; DrawPaint: PaintProfilerCategory; DrawData: PaintProfilerCategory; SetMatrix: PaintProfilerCategory; ... 31 more ...; DrawTextOnPath: PaintProfilerCategory; }' is not assignable to type '{ [x: string]: PaintProfilerCategory; }'. - Index signature is missing in type '{ Clear: PaintProfilerCategory; DrawPaint: PaintProfilerCategory; DrawData: PaintProfilerCategory; SetMatrix: PaintProfilerCategory; ... 31 more ...; DrawTextOnPath: PaintProfilerCategory; }'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/PaintProfilerView.js(158,24): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/PaintProfilerView.js(244,26): error TS2345: Argument of type '{}' is not assignable to parameter of type '{ [x: string]: number; }'. - Index signature is missing in type '{}'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/PaintProfilerView.js(300,19): error TS2339: Property 'millisToString' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/PaintProfilerView.js(314,27): error TS2339: Property 'constrain' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/PaintProfilerView.js(315,28): error TS2339: Property 'constrain' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/PaintProfilerView.js(412,27): error TS2339: Property '_logItem' does not exist on type 'TreeElement'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/PaintProfilerView.js(418,27): error TS2339: Property '_logItem' does not exist on type 'TreeElement'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/PaintProfilerView.js(495,11): error TS2339: Property 'createTextChild' does not exist on type 'DocumentFragment'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/PaintProfilerView.js(531,29): error TS2339: Property 'createChild' does not exist on type 'DocumentFragment'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/PaintProfilerView.js(533,34): error TS2339: Property 'createChild' does not exist on type 'DocumentFragment'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/PaintProfilerView.js(536,32): error TS2339: Property 'createChild' does not exist on type 'DocumentFragment'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/TransformController.js(19,22): error TS2339: Property 'tabIndex' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/TransformController.js(20,20): error TS2339: Property 'tabIndex' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/TransformController.js(128,18): error TS2339: Property 'focus' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/TransformController.js(144,18): error TS2339: Property 'focus' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/TransformController.js(154,26): error TS2339: Property 'constrain' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/TransformController.js(164,28): error TS2339: Property 'constrain' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/TransformController.js(165,28): error TS2339: Property 'constrain' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/TransformController.js(209,26): error TS2339: Property 'constrain' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/TransformController.js(268,50): error TS2339: Property 'wheelDeltaY' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/TransformController.js(270,28): error TS2339: Property 'clientX' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/TransformController.js(270,51): error TS2339: Property 'totalOffsetLeft' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/TransformController.js(270,76): error TS2339: Property 'clientY' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/TransformController.js(270,99): error TS2339: Property 'totalOffsetTop' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/TransformController.js(279,53): error TS2339: Property 'clientY' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/TransformController.js(280,53): error TS2339: Property 'clientX' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/TransformController.js(282,25): error TS2339: Property 'clientX' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/TransformController.js(282,56): error TS2339: Property 'clientY' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/TransformController.js(283,29): error TS2339: Property 'clientX' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/TransformController.js(284,29): error TS2339: Property 'clientY' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/layer_viewer/TransformController.js(292,18): error TS2339: Property 'focus' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/layers/LayerPaintProfilerView.js(7,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/layers/LayerTreeModel.js(79,32): error TS2694: Namespace 'Protocol' has no exported member 'LayerTree'. -node_modules/chrome-devtools-frontend/front_end/layers/LayerTreeModel.js(88,32): error TS2694: Namespace 'Protocol' has no exported member 'LayerTree'. -node_modules/chrome-devtools-frontend/front_end/layers/LayerTreeModel.js(99,15): error TS2551: Property '_lastPaintRect' does not exist on type 'Layer'. Did you mean 'lastPaintRect'? -node_modules/chrome-devtools-frontend/front_end/layers/LayerTreeModel.js(107,24): error TS2694: Namespace 'Protocol' has no exported member 'LayerTree'. -node_modules/chrome-devtools-frontend/front_end/layers/LayerTreeModel.js(108,24): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/layers/LayerTreeModel.js(119,11): error TS2339: Property '_didPaint' does not exist on type 'Layer'. -node_modules/chrome-devtools-frontend/front_end/layers/LayerTreeModel.js(151,31): error TS2694: Namespace 'Protocol' has no exported member 'LayerTree'. -node_modules/chrome-devtools-frontend/front_end/layers/LayerTreeModel.js(171,32): error TS2694: Namespace 'Protocol' has no exported member 'LayerTree'. -node_modules/chrome-devtools-frontend/front_end/layers/LayerTreeModel.js(221,24): error TS2694: Namespace 'Protocol' has no exported member 'LayerTree'. -node_modules/chrome-devtools-frontend/front_end/layers/LayerTreeModel.js(232,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'AgentLayer' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/layers/LayerTreeModel.js(240,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'AgentLayer' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/layers/LayerTreeModel.js(248,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'AgentLayer' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/layers/LayerTreeModel.js(256,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'AgentLayer' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/layers/LayerTreeModel.js(264,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'AgentLayer' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/layers/LayerTreeModel.js(272,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'AgentLayer' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/layers/LayerTreeModel.js(273,15): error TS2551: Property '_parent' does not exist on type 'Layer'. Did you mean 'parent'? -node_modules/chrome-devtools-frontend/front_end/layers/LayerTreeModel.js(276,11): error TS2551: Property '_parent' does not exist on type 'Layer'. Did you mean 'parent'? -node_modules/chrome-devtools-frontend/front_end/layers/LayerTreeModel.js(290,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'AgentLayer' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/layers/LayerTreeModel.js(298,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'AgentLayer' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/layers/LayerTreeModel.js(310,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'AgentLayer' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/layers/LayerTreeModel.js(318,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'AgentLayer' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/layers/LayerTreeModel.js(326,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'AgentLayer' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/layers/LayerTreeModel.js(334,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'AgentLayer' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/layers/LayerTreeModel.js(342,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'AgentLayer' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/layers/LayerTreeModel.js(350,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'AgentLayer' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/layers/LayerTreeModel.js(358,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'AgentLayer' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/layers/LayerTreeModel.js(370,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'AgentLayer' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/layers/LayerTreeModel.js(378,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'AgentLayer' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/layers/LayerTreeModel.js(384,25): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/layers/LayerTreeModel.js(386,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'AgentLayer' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/layers/LayerTreeModel.js(392,33): error TS2694: Namespace 'Protocol' has no exported member 'LayerTree'. -node_modules/chrome-devtools-frontend/front_end/layers/LayerTreeModel.js(394,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'AgentLayer' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/layers/LayerTreeModel.js(402,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'AgentLayer' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/layers/LayerTreeModel.js(410,9): error TS4112: This member cannot have an 'override' modifier because its containing class 'AgentLayer' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/layers/LayerTreeModel.js(419,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'AgentLayer' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/layers/LayerTreeModel.js(427,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'AgentLayer' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/layers/LayerTreeModel.js(439,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'AgentLayer' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/layers/LayerTreeModel.js(449,24): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/layers/LayerTreeModel.js(458,24): error TS2694: Namespace 'Protocol' has no exported member 'LayerTree'. -node_modules/chrome-devtools-frontend/front_end/layers/LayerTreeModel.js(477,16): error TS2304: Cannot find name 'CSSMatrix'. -node_modules/chrome-devtools-frontend/front_end/layers/LayerTreeModel.js(487,15): error TS2304: Cannot find name 'CSSMatrix'. -node_modules/chrome-devtools-frontend/front_end/layers/LayerTreeModel.js(488,16): error TS2304: Cannot find name 'CSSMatrix'. -node_modules/chrome-devtools-frontend/front_end/layers/LayerTreeModel.js(518,15): error TS2304: Cannot find name 'CSSMatrix'. -node_modules/chrome-devtools-frontend/front_end/layers/LayerTreeModel.js(539,26): error TS2694: Namespace 'Protocol' has no exported member 'LayerTreeDispatcher'. -node_modules/chrome-devtools-frontend/front_end/layers/LayerTreeModel.js(552,32): error TS2694: Namespace 'Protocol' has no exported member 'LayerTree'. -node_modules/chrome-devtools-frontend/front_end/layers/LayerTreeModel.js(554,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'LayerTreeDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/layers/LayerTreeModel.js(560,24): error TS2694: Namespace 'Protocol' has no exported member 'LayerTree'. -node_modules/chrome-devtools-frontend/front_end/layers/LayerTreeModel.js(561,24): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/layers/LayerTreeModel.js(563,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'LayerTreeDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/layers/LayersPanel.js(99,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'PanelWithSidebar'. -node_modules/chrome-devtools-frontend/front_end/layers/LayersPanel.js(115,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'PanelWithSidebar'. -node_modules/chrome-devtools-frontend/front_end/layers_test_runner/LayersTestRunner.js(55,22): error TS2339: Property 'layers' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/layers_test_runner/LayersTestRunner.js(130,14): error TS2554: Expected 2 arguments, but got 1. -node_modules/chrome-devtools-frontend/front_end/main/ExecutionContextSelector.js(33,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ExecutionContextSelector' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/main/ExecutionContextSelector.js(36,5): error TS2304: Cannot find name 'setImmediate'. -node_modules/chrome-devtools-frontend/front_end/main/ExecutionContextSelector.js(52,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ExecutionContextSelector' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/main/GCActionDelegate.js(15,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'GCActionDelegate' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/main/Main.js(39,15): error TS2339: Property '_instanceForTest' does not exist on type 'typeof Main'. -node_modules/chrome-devtools-frontend/front_end/main/Main.js(208,5): error TS2741: Property '_extensionAPITestHook' is missing in type 'ExtensionServer' but required in type 'typeof Extensions.extensionServer'. -node_modules/chrome-devtools-frontend/front_end/main/Main.js(248,29): error TS2339: Property 'events' does not exist on type 'InspectorFrontendHostAPI'. -node_modules/chrome-devtools-frontend/front_end/main/Main.js(252,27): error TS2339: Property 'events' does not exist on type 'InspectorFrontendHostAPI'. -node_modules/chrome-devtools-frontend/front_end/main/Main.js(258,27): error TS2339: Property 'events' does not exist on type 'InspectorFrontendHostAPI'. -node_modules/chrome-devtools-frontend/front_end/main/Main.js(302,32): error TS2339: Property 'initializeExtensions' does not exist on type 'typeof extensionServer'. -node_modules/chrome-devtools-frontend/front_end/main/Main.js(424,49): error TS2339: Property 'ownerDocument' does not exist on type 'EventTarget'. -node_modules/chrome-devtools-frontend/front_end/main/Main.js(428,19): error TS2339: Property 'handled' does not exist on type 'CustomEvent'. -node_modules/chrome-devtools-frontend/front_end/main/Main.js(464,26): error TS2694: Namespace 'Protocol' has no exported member 'InspectorDispatcher'. -node_modules/chrome-devtools-frontend/front_end/main/Main.js(472,12): error TS2339: Property 'registerInspectorDispatcher' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/main/Main.js(473,12): error TS2339: Property 'inspectorAgent' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/main/Main.js(480,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'SDKModel'. -node_modules/chrome-devtools-frontend/front_end/main/Main.js(488,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'SDKModel'. -node_modules/chrome-devtools-frontend/front_end/main/Main.js(508,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ReloadActionDelegate' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/main/Main.js(535,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ZoomActionDelegate' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/main/Main.js(566,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'SearchActionDelegate' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/main/Main.js(567,65): error TS2339: Property 'deepActiveElement' does not exist on type 'Document'. -node_modules/chrome-devtools-frontend/front_end/main/Main.js(598,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'MainMenuItem' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/main/Main.js(608,42): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/main/Main.js(682,32): error TS2339: Property 'createChild' does not exist on type 'DocumentFragment'. -node_modules/chrome-devtools-frontend/front_end/main/Main.js(701,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'NodeIndicator' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/main/Main.js(801,31): error TS2339: Property 'sendRawMessageForTesting' does not exist on type 'typeof InspectorBackend'. -node_modules/chrome-devtools-frontend/front_end/main/Main.js(819,39): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/main/Main.js(822,25): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/main/Main.js(825,25): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/main/Main.js(847,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/main/Main.js(852,25): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/main/Main.js(854,25): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/main/Main.js(907,12): error TS2339: Property 'pageAgent' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/main/Main.js(922,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'BackendSettingsSync' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/main/Main.js(930,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'BackendSettingsSync' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/main/Main.js(943,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ShowMetricsRulersSettingUI' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/main/RenderingOptions.js(52,25): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/main/RenderingOptions.js(57,42): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/main/RequestAppBannerActionDelegate.js(15,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'RequestAppBannerActionDelegate' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/main/RequestAppBannerActionDelegate.js(18,14): error TS2339: Property 'pageAgent' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/main/SimpleApp.js(13,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'SimpleApp' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/main/SimpleApp.js(30,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'SimpleAppProvider' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/mobile_throttling/MobileThrottlingSelector.js(8,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/mobile_throttling/MobileThrottlingSelector.js(45,28): error TS2339: Property 'network' does not exist on type 'Conditions | PlaceholderConditions'. - Property 'network' does not exist on type 'PlaceholderConditions'. -node_modules/chrome-devtools-frontend/front_end/mobile_throttling/MobileThrottlingSelector.js(45,68): error TS2339: Property 'cpuThrottlingRate' does not exist on type 'Conditions | PlaceholderConditions'. - Property 'cpuThrottlingRate' does not exist on type 'PlaceholderConditions'. -node_modules/chrome-devtools-frontend/front_end/mobile_throttling/NetworkThrottlingSelector.js(8,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/mobile_throttling/ThrottlingManager.js(28,57): error TS2345: Argument of type 'this' is not assignable to parameter of type 'SDKModelObserver'. - Type 'ThrottlingManager' is not assignable to type 'SDKModelObserver'. - Types of property 'modelAdded' are incompatible. - Type '(emulationModel: EmulationModel) => void' is not assignable to type '(model: T) => void'. -node_modules/chrome-devtools-frontend/front_end/mobile_throttling/ThrottlingManager.js(48,21): error TS2339: Property 'removeChildren' does not exist on type 'HTMLSelectElement'. -node_modules/chrome-devtools-frontend/front_end/mobile_throttling/ThrottlingManager.js(52,42): error TS2339: Property 'createChild' does not exist on type 'HTMLSelectElement'. -node_modules/chrome-devtools-frontend/front_end/mobile_throttling/ThrottlingManager.js(201,3): error TS2416: Property 'modelAdded' in type 'ThrottlingManager' is not assignable to the same property in base type 'SDKModelObserver'. - Type '(emulationModel: EmulationModel) => void' is not assignable to type '(model: T) => void'. -node_modules/chrome-devtools-frontend/front_end/mobile_throttling/ThrottlingManager.js(201,3): error TS2416: Property 'modelAdded' in type 'ThrottlingManager' is not assignable to the same property in base type 'SDKModelObserver'. - Type '(emulationModel: EmulationModel) => void' is not assignable to type '(model: T) => void'. - Types of parameters 'emulationModel' and 'model' are incompatible. - Type 'T' is not assignable to type 'EmulationModel'. -node_modules/chrome-devtools-frontend/front_end/mobile_throttling/ThrottlingManager.js(201,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Object'. -node_modules/chrome-devtools-frontend/front_end/mobile_throttling/ThrottlingManager.js(210,3): error TS2416: Property 'modelRemoved' in type 'ThrottlingManager' is not assignable to the same property in base type 'SDKModelObserver'. - Type '(emulationModel: EmulationModel) => void' is not assignable to type '(model: T) => void'. -node_modules/chrome-devtools-frontend/front_end/mobile_throttling/ThrottlingManager.js(210,3): error TS2416: Property 'modelRemoved' in type 'ThrottlingManager' is not assignable to the same property in base type 'SDKModelObserver'. - Type '(emulationModel: EmulationModel) => void' is not assignable to type '(model: T) => void'. - Types of parameters 'emulationModel' and 'model' are incompatible. - Type 'T' is not assignable to type 'EmulationModel'. -node_modules/chrome-devtools-frontend/front_end/mobile_throttling/ThrottlingManager.js(210,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Object'. -node_modules/chrome-devtools-frontend/front_end/mobile_throttling/ThrottlingManager.js(218,82): error TS2339: Property 'selectedIndex' does not exist on type 'EventTarget'. -node_modules/chrome-devtools-frontend/front_end/mobile_throttling/ThrottlingManager.js(249,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ActionDelegate' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/mobile_throttling/ThrottlingPresets.js(79,86): error TS2739: Type 'PlaceholderConditions' is missing the following properties from type 'Conditions': network, cpuThrottlingRate -node_modules/chrome-devtools-frontend/front_end/mobile_throttling/ThrottlingSettingsTab.js(14,25): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/mobile_throttling/ThrottlingSettingsTab.js(29,25): error TS2339: Property 'tabIndex' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/mobile_throttling/ThrottlingSettingsTab.js(60,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/mobile_throttling/ThrottlingSettingsTab.js(63,25): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/mobile_throttling/ThrottlingSettingsTab.js(67,13): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/mobile_throttling/ThrottlingSettingsTab.js(68,13): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/mobile_throttling/ThrottlingSettingsTab.js(70,13): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/mobile_throttling/ThrottlingSettingsTab.js(71,13): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/mobile_throttling/ThrottlingSettingsTab.js(72,13): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/mobile_throttling/ThrottlingSettingsTab.js(73,13): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/mobile_throttling/ThrottlingSettingsTab.js(82,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/mobile_throttling/ThrottlingSettingsTab.js(94,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/mobile_throttling/ThrottlingSettingsTab.js(115,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/mobile_throttling/ThrottlingSettingsTab.js(136,26): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/mobile_throttling/ThrottlingSettingsTab.js(146,26): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/mobile_throttling/ThrottlingSettingsTab.js(186,64): error TS2365: Operator '>=' cannot be applied to types 'string' and 'number'. -node_modules/chrome-devtools-frontend/front_end/mobile_throttling/ThrottlingSettingsTab.js(186,78): error TS2365: Operator '<=' cannot be applied to types 'string' and 'number'. -node_modules/chrome-devtools-frontend/front_end/mobile_throttling/ThrottlingSettingsTab.js(197,50): error TS2365: Operator '>=' cannot be applied to types 'string' and 'number'. -node_modules/chrome-devtools-frontend/front_end/mobile_throttling/ThrottlingSettingsTab.js(197,64): error TS2365: Operator '<=' cannot be applied to types 'string' and 'number'. -node_modules/chrome-devtools-frontend/front_end/network/BlockedURLsPane.js(29,36): error TS2345: Argument of type 'this' is not assignable to parameter of type 'Delegate'. - Type 'BlockedURLsPane' is not assignable to type 'Delegate'. - Types of property 'renderItem' are incompatible. - Type '(pattern: BlockedPattern, editable: boolean) => Element' is not assignable to type '(item: T, editable: boolean) => Element'. -node_modules/chrome-devtools-frontend/front_end/network/BlockedURLsPane.js(52,39): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/BlockedURLsPane.js(77,3): error TS2416: Property 'renderItem' in type 'BlockedURLsPane' is not assignable to the same property in base type 'Delegate'. - Type '(pattern: BlockedPattern, editable: boolean) => Element' is not assignable to type '(item: T, editable: boolean) => Element'. -node_modules/chrome-devtools-frontend/front_end/network/BlockedURLsPane.js(77,3): error TS2416: Property 'renderItem' in type 'BlockedURLsPane' is not assignable to the same property in base type 'Delegate'. - Type '(pattern: BlockedPattern, editable: boolean) => Element' is not assignable to type '(item: T, editable: boolean) => Element'. - Types of parameters 'pattern' and 'item' are incompatible. - Type 'T' is not assignable to type 'BlockedPattern'. -node_modules/chrome-devtools-frontend/front_end/network/BlockedURLsPane.js(77,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/network/BlockedURLsPane.js(80,28): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/BlockedURLsPane.js(84,13): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/BlockedURLsPane.js(85,13): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/BlockedURLsPane.js(96,11): error TS2339: Property 'consume' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/network/BlockedURLsPane.js(112,3): error TS2416: Property 'removeItemRequested' in type 'BlockedURLsPane' is not assignable to the same property in base type 'Delegate'. - Type '(pattern: BlockedPattern, index: number) => void' is not assignable to type '(item: T, index: number) => void'. -node_modules/chrome-devtools-frontend/front_end/network/BlockedURLsPane.js(112,3): error TS2416: Property 'removeItemRequested' in type 'BlockedURLsPane' is not assignable to the same property in base type 'Delegate'. - Type '(pattern: BlockedPattern, index: number) => void' is not assignable to type '(item: T, index: number) => void'. - Types of parameters 'pattern' and 'item' are incompatible. - Type 'T' is not assignable to type 'BlockedPattern'. -node_modules/chrome-devtools-frontend/front_end/network/BlockedURLsPane.js(112,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/network/BlockedURLsPane.js(123,3): error TS2416: Property 'beginEdit' in type 'BlockedURLsPane' is not assignable to the same property in base type 'Delegate'. - Type '(pattern: BlockedPattern) => Editor' is not assignable to type '(item: T) => Editor'. -node_modules/chrome-devtools-frontend/front_end/network/BlockedURLsPane.js(123,3): error TS2416: Property 'beginEdit' in type 'BlockedURLsPane' is not assignable to the same property in base type 'Delegate'. - Type '(pattern: BlockedPattern) => Editor' is not assignable to type '(item: T) => Editor'. - Types of parameters 'pattern' and 'item' are incompatible. - Type 'T' is not assignable to type 'BlockedPattern'. -node_modules/chrome-devtools-frontend/front_end/network/BlockedURLsPane.js(123,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/network/BlockedURLsPane.js(135,3): error TS2416: Property 'commitEdit' in type 'BlockedURLsPane' is not assignable to the same property in base type 'Delegate'. - Type '(item: BlockedPattern, editor: Editor, isNew: boolean) => void' is not assignable to type '(item: T, editor: Editor, isNew: boolean) => void'. -node_modules/chrome-devtools-frontend/front_end/network/BlockedURLsPane.js(135,3): error TS2416: Property 'commitEdit' in type 'BlockedURLsPane' is not assignable to the same property in base type 'Delegate'. - Type '(item: BlockedPattern, editor: Editor, isNew: boolean) => void' is not assignable to type '(item: T, editor: Editor, isNew: boolean) => void'. - Types of parameters 'item' and 'item' are incompatible. - Type 'T' is not assignable to type 'BlockedPattern'. -node_modules/chrome-devtools-frontend/front_end/network/BlockedURLsPane.js(135,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/network/BlockedURLsPane.js(155,26): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/BlockedURLsPane.js(158,26): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/EventSourceMessagesView.js(85,14): error TS2339: Property 'createTextChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/EventSourceMessagesView.js(86,14): error TS2339: Property 'title' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkConfigView.js(12,25): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkConfigView.js(14,25): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkConfigView.js(30,49): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkConfigView.js(38,28): error TS2339: Property 'selectedIndex' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkConfigView.js(41,27): error TS2339: Property 'value' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkConfigView.js(42,27): error TS2339: Property 'title' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkConfigView.js(43,27): error TS2339: Property 'placeholder' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkConfigView.js(44,27): error TS2339: Property 'required' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkConfigView.js(51,42): error TS2339: Property 'options' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkConfigView.js(51,73): error TS2339: Property 'selectedIndex' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkConfigView.js(54,31): error TS2339: Property 'value' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkConfigView.js(55,31): error TS2339: Property 'title' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkConfigView.js(57,31): error TS2339: Property 'select' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkConfigView.js(63,44): error TS2339: Property 'options' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkConfigView.js(67,34): error TS2339: Property 'selectedIndex' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkConfigView.js(74,32): error TS2339: Property 'selectedIndex' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkConfigView.js(78,60): error TS2339: Property 'value' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkConfigView.js(79,52): error TS2339: Property 'value' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkConfigView.js(80,31): error TS2339: Property 'title' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkConfigView.js(80,61): error TS2339: Property 'value' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkConfigView.js(94,39): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkConfigView.js(110,52): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkConfigView.js(126,44): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkConfigView.js(137,35): error TS2339: Property 'disabled' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkConfigView.js(138,34): error TS2339: Property 'disabled' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkDataGridNode.js(121,13): error TS2339: Property 'style' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkDataGridNode.js(241,33): error TS2339: Property 'request' does not exist on type 'ViewportDataGridNode'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkDataGridNode.js(318,24): error TS2446: Property 'requestOrFirstKnownChildRequest' is protected and only accessible through an instance of class 'NetworkRequestNode'. This is an instance of class 'NetworkNode'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkDataGridNode.js(319,24): error TS2446: Property 'requestOrFirstKnownChildRequest' is protected and only accessible through an instance of class 'NetworkRequestNode'. This is an instance of class 'NetworkNode'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkDataGridNode.js(334,22): error TS2446: Property 'requestOrFirstKnownChildRequest' is protected and only accessible through an instance of class 'NetworkRequestNode'. This is an instance of class 'NetworkNode'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkDataGridNode.js(335,22): error TS2446: Property 'requestOrFirstKnownChildRequest' is protected and only accessible through an instance of class 'NetworkRequestNode'. This is an instance of class 'NetworkNode'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkDataGridNode.js(370,22): error TS2446: Property 'requestOrFirstKnownChildRequest' is protected and only accessible through an instance of class 'NetworkRequestNode'. This is an instance of class 'NetworkNode'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkDataGridNode.js(371,22): error TS2446: Property 'requestOrFirstKnownChildRequest' is protected and only accessible through an instance of class 'NetworkRequestNode'. This is an instance of class 'NetworkNode'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkDataGridNode.js(388,22): error TS2446: Property 'requestOrFirstKnownChildRequest' is protected and only accessible through an instance of class 'NetworkRequestNode'. This is an instance of class 'NetworkNode'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkDataGridNode.js(389,22): error TS2446: Property 'requestOrFirstKnownChildRequest' is protected and only accessible through an instance of class 'NetworkRequestNode'. This is an instance of class 'NetworkNode'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkDataGridNode.js(392,25): error TS2339: Property 'displayType' does not exist on type 'NetworkNode'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkDataGridNode.js(393,25): error TS2339: Property 'displayType' does not exist on type 'NetworkNode'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkDataGridNode.js(409,22): error TS2446: Property 'requestOrFirstKnownChildRequest' is protected and only accessible through an instance of class 'NetworkRequestNode'. This is an instance of class 'NetworkNode'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkDataGridNode.js(410,22): error TS2446: Property 'requestOrFirstKnownChildRequest' is protected and only accessible through an instance of class 'NetworkRequestNode'. This is an instance of class 'NetworkNode'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkDataGridNode.js(413,12): error TS2339: Property '_initiatorCell' does not exist on type 'NetworkNode'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkDataGridNode.js(413,33): error TS2339: Property '_initiatorCell' does not exist on type 'NetworkNode'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkDataGridNode.js(414,17): error TS2339: Property '_initiatorCell' does not exist on type 'NetworkNode'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkDataGridNode.js(415,19): error TS2339: Property '_linkifiedInitiatorAnchor' does not exist on type 'NetworkNode'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkDataGridNode.js(415,49): error TS2339: Property '_linkifiedInitiatorAnchor' does not exist on type 'NetworkNode'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkDataGridNode.js(415,91): error TS2339: Property '_initiatorCell' does not exist on type 'NetworkNode'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkDataGridNode.js(416,19): error TS2339: Property '_linkifiedInitiatorAnchor' does not exist on type 'NetworkNode'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkDataGridNode.js(416,49): error TS2339: Property '_linkifiedInitiatorAnchor' does not exist on type 'NetworkNode'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkDataGridNode.js(416,91): error TS2339: Property '_initiatorCell' does not exist on type 'NetworkNode'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkDataGridNode.js(427,22): error TS2446: Property 'requestOrFirstKnownChildRequest' is protected and only accessible through an instance of class 'NetworkRequestNode'. This is an instance of class 'NetworkNode'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkDataGridNode.js(428,22): error TS2446: Property 'requestOrFirstKnownChildRequest' is protected and only accessible through an instance of class 'NetworkRequestNode'. This is an instance of class 'NetworkNode'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkDataGridNode.js(444,22): error TS2446: Property 'requestOrFirstKnownChildRequest' is protected and only accessible through an instance of class 'NetworkRequestNode'. This is an instance of class 'NetworkNode'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkDataGridNode.js(445,22): error TS2446: Property 'requestOrFirstKnownChildRequest' is protected and only accessible through an instance of class 'NetworkRequestNode'. This is an instance of class 'NetworkNode'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkDataGridNode.js(460,22): error TS2446: Property 'requestOrFirstKnownChildRequest' is protected and only accessible through an instance of class 'NetworkRequestNode'. This is an instance of class 'NetworkNode'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkDataGridNode.js(461,22): error TS2446: Property 'requestOrFirstKnownChildRequest' is protected and only accessible through an instance of class 'NetworkRequestNode'. This is an instance of class 'NetworkNode'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkDataGridNode.js(482,22): error TS2446: Property 'requestOrFirstKnownChildRequest' is protected and only accessible through an instance of class 'NetworkRequestNode'. This is an instance of class 'NetworkNode'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkDataGridNode.js(483,22): error TS2446: Property 'requestOrFirstKnownChildRequest' is protected and only accessible through an instance of class 'NetworkRequestNode'. This is an instance of class 'NetworkNode'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkDataGridNode.js(501,22): error TS2446: Property 'requestOrFirstKnownChildRequest' is protected and only accessible through an instance of class 'NetworkRequestNode'. This is an instance of class 'NetworkNode'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkDataGridNode.js(502,22): error TS2446: Property 'requestOrFirstKnownChildRequest' is protected and only accessible through an instance of class 'NetworkRequestNode'. This is an instance of class 'NetworkNode'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkDataGridNode.js(518,22): error TS2446: Property 'requestOrFirstKnownChildRequest' is protected and only accessible through an instance of class 'NetworkRequestNode'. This is an instance of class 'NetworkNode'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkDataGridNode.js(519,22): error TS2446: Property 'requestOrFirstKnownChildRequest' is protected and only accessible through an instance of class 'NetworkRequestNode'. This is an instance of class 'NetworkNode'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkDataGridNode.js(541,22): error TS2446: Property 'requestOrFirstKnownChildRequest' is protected and only accessible through an instance of class 'NetworkRequestNode'. This is an instance of class 'NetworkNode'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkDataGridNode.js(542,22): error TS2446: Property 'requestOrFirstKnownChildRequest' is protected and only accessible through an instance of class 'NetworkRequestNode'. This is an instance of class 'NetworkNode'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkDataGridNode.js(695,13): error TS2339: Property 'createTextChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkDataGridNode.js(696,13): error TS2339: Property 'title' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkDataGridNode.js(810,10): error TS2339: Property 'style' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkDataGridNode.js(833,10): error TS2339: Property 'createTextChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkDataGridNode.js(835,10): error TS2339: Property 'title' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkDataGridNode.js(847,25): error TS2339: Property 'localizedFailDescription' does not exist on type 'NetworkRequest'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkDataGridNode.js(848,14): error TS2339: Property 'createTextChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkDataGridNode.js(849,50): error TS2339: Property 'localizedFailDescription' does not exist on type 'NetworkRequest'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkDataGridNode.js(850,14): error TS2339: Property 'title' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkDataGridNode.js(850,53): error TS2339: Property 'localizedFailDescription' does not exist on type 'NetworkRequest'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkDataGridNode.js(855,12): error TS2339: Property 'createTextChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkDataGridNode.js(857,12): error TS2339: Property 'title' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkDataGridNode.js(902,14): error TS2339: Property 'title' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkDataGridNode.js(904,73): error TS2345: Argument of type '{ text: string; lineNumber: number; columnNumber: number; }' is not assignable to parameter of type 'LinkifyURLOptions'. - Type '{ text: string; lineNumber: number; columnNumber: number; }' is missing the following properties from type 'LinkifyURLOptions': className, preventClick, maxLength -node_modules/chrome-devtools-frontend/front_end/network/NetworkDataGridNode.js(913,14): error TS2339: Property 'title' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkDataGridNode.js(915,24): error TS2345: Argument of type 'NetworkRequest' is not assignable to parameter of type 'boolean'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkDataGridNode.js(935,40): error TS2339: Property 'title' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkDataGridNode.js(939,14): error TS2339: Property 'request' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkDataGridNode.js(943,14): error TS2339: Property 'title' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkDataGridNode.js(949,14): error TS2339: Property 'title' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkDataGridNode.js(969,33): error TS2339: Property 'bytesToString' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkDataGridNode.js(970,33): error TS2339: Property 'bytesToString' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkDataGridNode.js(981,42): error TS2339: Property 'secondsToString' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkDataGridNode.js(982,41): error TS2339: Property 'secondsToString' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkDataGridNode.js(1010,12): error TS2339: Property 'style' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkFrameGrouper.js(23,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'NetworkFrameGrouper' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/network/NetworkFrameGrouper.js(38,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'NetworkFrameGrouper' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/network/NetworkFrameGrouper.js(85,12): error TS2339: Property 'createTextChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkFrameGrouper.js(86,12): error TS2339: Property 'title' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkLogView.js(144,44): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkLogView.js(152,57): error TS2345: Argument of type 'this' is not assignable to parameter of type 'SDKModelObserver'. - Type 'NetworkLogView' is not assignable to type 'SDKModelObserver'. - Types of property 'modelAdded' are incompatible. - Type '(networkManager: NetworkManager) => void' is not assignable to type '(model: T) => void'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkLogView.js(174,46): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkLogView.js(175,46): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkLogView.js(526,3): error TS2416: Property 'modelAdded' in type 'NetworkLogView' is not assignable to the same property in base type 'SDKModelObserver'. - Type '(networkManager: NetworkManager) => void' is not assignable to type '(model: T) => void'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkLogView.js(526,3): error TS2416: Property 'modelAdded' in type 'NetworkLogView' is not assignable to the same property in base type 'SDKModelObserver'. - Type '(networkManager: NetworkManager) => void' is not assignable to type '(model: T) => void'. - Types of parameters 'networkManager' and 'model' are incompatible. - Type 'T' is not assignable to type 'NetworkManager'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkLogView.js(526,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkLogView.js(542,3): error TS2416: Property 'modelRemoved' in type 'NetworkLogView' is not assignable to the same property in base type 'SDKModelObserver'. - Type '(networkManager: NetworkManager) => void' is not assignable to type '(model: T) => void'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkLogView.js(542,3): error TS2416: Property 'modelRemoved' in type 'NetworkLogView' is not assignable to the same property in base type 'SDKModelObserver'. - Type '(networkManager: NetworkManager) => void' is not assignable to type '(model: T) => void'. - Types of parameters 'networkManager' and 'model' are incompatible. - Type 'T' is not assignable to type 'NetworkManager'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkLogView.js(542,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkLogView.js(595,40): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkLogView.js(596,40): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkLogView.js(597,50): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkLogView.js(663,41): error TS2339: Property 'shiftKey' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkLogView.js(690,47): error TS2339: Property 'button' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkLogView.js(691,13): error TS2339: Property 'consume' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkLogView.js(749,41): error TS2339: Property 'bytesToString' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkLogView.js(749,85): error TS2339: Property 'bytesToString' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkLogView.js(753,60): error TS2339: Property 'bytesToString' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkLogView.js(757,56): error TS2339: Property 'secondsToString' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkLogView.js(761,44): error TS2339: Property 'secondsToString' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkLogView.js(766,59): error TS2339: Property 'secondsToString' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkLogView.js(780,45): error TS2339: Property 'window' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkLogView.js(905,5): error TS2322: Type 'ViewportDataGridNode[]' is not assignable to type 'NetworkNode[]'. - Type 'ViewportDataGridNode' is missing the following properties from type 'NetworkNode': _parentView, _isHovered, _isProduct, _showingInitiatorChain, and 18 more. -node_modules/chrome-devtools-frontend/front_end/network/NetworkLogView.js(916,20): error TS2339: Property 'window' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkLogView.js(938,41): error TS2339: Property 'firstValue' does not exist on type 'Set'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkLogView.js(1294,25): error TS2339: Property 'asParsedURL' does not exist on type 'string'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkLogView.js(1391,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkLogView.js(1411,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkLogView.js(1419,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkLogView.js(1579,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkLogView.js(1589,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkLogView.js(1599,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkLogView.js(1696,9): error TS2322: Type 'string' is not assignable to type 'number'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkLogView.js(1697,52): error TS2339: Property 'length' does not exist on type 'number'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkLogView.js(1874,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/network/NetworkLogViewColumns.js(100,49): error TS2339: Property 'button' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkLogViewColumns.js(101,15): error TS2339: Property 'consume' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkLogViewColumns.js(127,68): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkLogViewColumns.js(150,63): error TS2339: Property 'offsetX' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkLogViewColumns.js(150,78): error TS2339: Property 'offsetY' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkLogViewColumns.js(168,13): error TS2339: Property 'consume' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkLogViewColumns.js(169,45): error TS2339: Property 'wheelDeltaY' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkLogViewColumns.js(202,73): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkLogViewColumns.js(370,14): error TS2339: Property 'createTextChild' does not exist on type 'DocumentFragment'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkLogViewColumns.js(371,32): error TS2339: Property 'createChild' does not exist on type 'DocumentFragment'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkLogViewColumns.js(531,31): error TS2339: Property 'enclosingNodeOrSelfWithClass' does not exist on type 'EventTarget'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkLogViewColumns.js(651,5): error TS2322: Type '{ id: string; title: string; subtitle: string; visible: true; weight: number; hideable: false; nonSelectable: false; alwaysVisible: true; sortingFunction: (a: NetworkNode, b: NetworkNode) => number; }' is not assignable to type 'Descriptor'. - Object literal may only specify known properties, and 'alwaysVisible' does not exist in type 'Descriptor'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkLogViewColumns.js(654,3): error TS2740: Type '{ id: string; title: string; sortingFunction: any; }' is missing the following properties from type 'Descriptor': titleDOMFragment, subtitle, visible, weight, and 6 more. -node_modules/chrome-devtools-frontend/front_end/network/NetworkLogViewColumns.js(659,3): error TS2740: Type '{ id: string; title: string; visible: true; subtitle: string; sortingFunction: any; }' is missing the following properties from type 'Descriptor': titleDOMFragment, weight, hideable, nonSelectable, and 4 more. -node_modules/chrome-devtools-frontend/front_end/network/NetworkLogViewColumns.js(666,3): error TS2740: Type '{ id: string; title: string; sortingFunction: any; }' is missing the following properties from type 'Descriptor': titleDOMFragment, subtitle, visible, weight, and 6 more. -node_modules/chrome-devtools-frontend/front_end/network/NetworkLogViewColumns.js(671,3): error TS2740: Type '{ id: string; title: string; sortingFunction: any; }' is missing the following properties from type 'Descriptor': titleDOMFragment, subtitle, visible, weight, and 6 more. -node_modules/chrome-devtools-frontend/front_end/network/NetworkLogViewColumns.js(676,3): error TS2740: Type '{ id: string; title: string; sortingFunction: any; }' is missing the following properties from type 'Descriptor': titleDOMFragment, subtitle, visible, weight, and 6 more. -node_modules/chrome-devtools-frontend/front_end/network/NetworkLogViewColumns.js(681,3): error TS2740: Type '{ id: string; title: string; weight: number; align: string; sortingFunction: (a: NetworkNode, b: NetworkNode) => number; }' is missing the following properties from type 'Descriptor': titleDOMFragment, subtitle, visible, hideable, and 4 more. -node_modules/chrome-devtools-frontend/front_end/network/NetworkLogViewColumns.js(688,3): error TS2740: Type '{ id: string; title: string; visible: true; sortingFunction: (a: NetworkNode, b: NetworkNode) => number; }' is missing the following properties from type 'Descriptor': titleDOMFragment, subtitle, weight, hideable, and 5 more. -node_modules/chrome-devtools-frontend/front_end/network/NetworkLogViewColumns.js(694,3): error TS2740: Type '{ id: string; title: string; visible: true; weight: number; sortingFunction: (a: NetworkNode, b: NetworkNode) => number; }' is missing the following properties from type 'Descriptor': titleDOMFragment, subtitle, hideable, nonSelectable, and 4 more. -node_modules/chrome-devtools-frontend/front_end/network/NetworkLogViewColumns.js(701,3): error TS2740: Type '{ id: string; title: string; align: string; sortingFunction: (a: NetworkNode, b: NetworkNode) => number; }' is missing the following properties from type 'Descriptor': titleDOMFragment, subtitle, visible, weight, and 5 more. -node_modules/chrome-devtools-frontend/front_end/network/NetworkLogViewColumns.js(707,3): error TS2740: Type '{ id: string; title: string; align: string; sortingFunction: (a: NetworkNode, b: NetworkNode) => number; }' is missing the following properties from type 'Descriptor': titleDOMFragment, subtitle, visible, weight, and 5 more. -node_modules/chrome-devtools-frontend/front_end/network/NetworkLogViewColumns.js(713,3): error TS2740: Type '{ id: string; title: string; visible: true; subtitle: string; align: string; sortingFunction: (a: NetworkNode, b: NetworkNode) => number; }' is missing the following properties from type 'Descriptor': titleDOMFragment, weight, hideable, nonSelectable, and 3 more. -node_modules/chrome-devtools-frontend/front_end/network/NetworkLogViewColumns.js(721,3): error TS2740: Type '{ id: string; title: string; visible: true; subtitle: string; align: string; sortingFunction: any; }' is missing the following properties from type 'Descriptor': titleDOMFragment, weight, hideable, nonSelectable, and 3 more. -node_modules/chrome-devtools-frontend/front_end/network/NetworkLogViewColumns.js(729,3): error TS2740: Type '{ id: string; title: string; sortingFunction: (a: NetworkNode, b: NetworkNode) => number; }' is missing the following properties from type 'Descriptor': titleDOMFragment, subtitle, visible, weight, and 6 more. -node_modules/chrome-devtools-frontend/front_end/network/NetworkLogViewColumns.js(734,3): error TS2740: Type '{ id: string; title: string; sortingFunction: any; }' is missing the following properties from type 'Descriptor': titleDOMFragment, subtitle, visible, weight, and 6 more. -node_modules/chrome-devtools-frontend/front_end/network/NetworkLogViewColumns.js(739,3): error TS2740: Type '{ id: string; isResponseHeader: true; title: string; sortingFunction: any; }' is missing the following properties from type 'Descriptor': titleDOMFragment, subtitle, visible, weight, and 5 more. -node_modules/chrome-devtools-frontend/front_end/network/NetworkLogViewColumns.js(745,3): error TS2740: Type '{ id: string; isResponseHeader: true; title: string; sortingFunction: any; }' is missing the following properties from type 'Descriptor': titleDOMFragment, subtitle, visible, weight, and 5 more. -node_modules/chrome-devtools-frontend/front_end/network/NetworkLogViewColumns.js(751,3): error TS2740: Type '{ id: string; isResponseHeader: true; title: string; sortingFunction: any; }' is missing the following properties from type 'Descriptor': titleDOMFragment, subtitle, visible, weight, and 5 more. -node_modules/chrome-devtools-frontend/front_end/network/NetworkLogViewColumns.js(757,3): error TS2740: Type '{ id: string; isResponseHeader: true; title: string; align: string; sortingFunction: any; }' is missing the following properties from type 'Descriptor': titleDOMFragment, subtitle, visible, weight, and 4 more. -node_modules/chrome-devtools-frontend/front_end/network/NetworkLogViewColumns.js(764,3): error TS2740: Type '{ id: string; isResponseHeader: true; title: string; sortingFunction: any; }' is missing the following properties from type 'Descriptor': titleDOMFragment, subtitle, visible, weight, and 5 more. -node_modules/chrome-devtools-frontend/front_end/network/NetworkLogViewColumns.js(770,3): error TS2740: Type '{ id: string; isResponseHeader: true; title: string; sortingFunction: any; }' is missing the following properties from type 'Descriptor': titleDOMFragment, subtitle, visible, weight, and 5 more. -node_modules/chrome-devtools-frontend/front_end/network/NetworkLogViewColumns.js(776,3): error TS2740: Type '{ id: string; isResponseHeader: true; title: string; sortingFunction: any; }' is missing the following properties from type 'Descriptor': titleDOMFragment, subtitle, visible, weight, and 5 more. -node_modules/chrome-devtools-frontend/front_end/network/NetworkLogViewColumns.js(782,3): error TS2740: Type '{ id: string; isResponseHeader: true; title: string; sortingFunction: any; }' is missing the following properties from type 'Descriptor': titleDOMFragment, subtitle, visible, weight, and 5 more. -node_modules/chrome-devtools-frontend/front_end/network/NetworkLogViewColumns.js(788,3): error TS2740: Type '{ id: string; isResponseHeader: true; title: string; sortingFunction: any; }' is missing the following properties from type 'Descriptor': titleDOMFragment, subtitle, visible, weight, and 5 more. -node_modules/chrome-devtools-frontend/front_end/network/NetworkLogViewColumns.js(795,3): error TS2740: Type '{ id: string; title: string; visible: false; hideable: false; }' is missing the following properties from type 'Descriptor': titleDOMFragment, subtitle, weight, nonSelectable, and 5 more. -node_modules/chrome-devtools-frontend/front_end/network/NetworkManageCustomHeadersView.js(22,25): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkManageCustomHeadersView.js(43,25): error TS2339: Property 'tabIndex' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkManageCustomHeadersView.js(68,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkManageCustomHeadersView.js(70,26): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkManageCustomHeadersView.js(81,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkManageCustomHeadersView.js(93,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkManageCustomHeadersView.js(114,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkManageCustomHeadersView.js(131,26): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkManageCustomHeadersView.js(134,26): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkOverview.js(103,30): error TS2339: Property 'offsetWidth' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkOverview.js(104,31): error TS2339: Property 'offsetHeight' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkOverview.js(147,18): error TS2339: Property 'window' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkOverview.js(242,31): error TS2339: Property 'offsetHeight' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkPanel.js(58,54): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkPanel.js(67,53): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkPanel.js(366,13): error TS2339: Property 'handled' does not exist on type 'KeyboardEvent'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkPanel.js(460,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Panel'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkPanel.js(467,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Panel'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkPanel.js(475,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Panel'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkPanel.js(483,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Panel'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkPanel.js(490,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Panel'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkPanel.js(497,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Panel'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkPanel.js(508,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Panel'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkPanel.js(523,22): error TS2339: Property 'isSelfOrDescendant' does not exist on type 'EventTarget'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkPanel.js(600,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ContextMenuProvider' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/network/NetworkPanel.js(615,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'RequestRevealer' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/network/NetworkPanel.js(641,17): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/network/NetworkPanel.js(649,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'FilmStripRecorder' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/network/NetworkPanel.js(657,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'FilmStripRecorder' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/network/NetworkPanel.js(672,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'FilmStripRecorder' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/network/NetworkPanel.js(679,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'FilmStripRecorder' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/network/NetworkPanel.js(705,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/network/NetworkPanel.js(729,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'RecordActionDelegate' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/network/NetworkTimeCalculator.js(86,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Object'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkTimeCalculator.js(96,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Object'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkTimeCalculator.js(97,19): error TS2339: Property 'secondsToString' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkTimeCalculator.js(104,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Object'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkTimeCalculator.js(112,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Object'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkTimeCalculator.js(120,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Object'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkTimeCalculator.js(135,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Object'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkTimeCalculator.js(219,7): error TS2322: Type 'Promise' is not assignable to type 'Promise'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkTimeCalculator.js(243,27): error TS2339: Property 'secondsToString' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkTimeCalculator.js(247,30): error TS2339: Property 'secondsToString' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkTimeCalculator.js(252,7): error TS2741: Property 'tooltip' is missing in type '{ left: any; right: string; }' but required in type '{ left: string; right: string; tooltip: string; }'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkTimeCalculator.js(255,26): error TS2339: Property 'secondsToString' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkTimeCalculator.js(358,19): error TS2339: Property 'secondsToString' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkTimeCalculator.js(395,19): error TS2339: Property 'secondsToString' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkWaterfallColumn.js(13,40): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkWaterfallColumn.js(68,5): error TS2741: Property 'fillStyle' is missing in type '{ borderColor: string; lineWidth: number; }' but required in type '{ fillStyle: string; lineWidth: number; borderColor: string; }'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkWaterfallColumn.js(180,54): error TS2339: Property 'offsetX' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkWaterfallColumn.js(180,69): error TS2339: Property 'offsetY' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkWaterfallColumn.js(180,85): error TS2339: Property 'shiftKey' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkWaterfallColumn.js(200,11): error TS2403: Subsequent variable declarations must have the same type. Variable 'range' must be of type 'RequestTimeRange', but here has type '{ start: number; mid: number; end: number; }'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkWaterfallColumn.js(211,15): error TS2339: Property 'clientX' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkWaterfallColumn.js(211,68): error TS2339: Property 'clientX' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkWaterfallColumn.js(218,15): error TS2339: Property 'clientY' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkWaterfallColumn.js(218,63): error TS2339: Property 'clientY' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkWaterfallColumn.js(221,34): error TS2339: Property 'boxInWindow' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkWaterfallColumn.js(227,5): error TS2741: Property 'hide' is missing in type '{ box: any; show: (popover: GlassPane) => Promise; }' but required in type 'PopoverRequest'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkWaterfallColumn.js(298,42): error TS2339: Property 'window' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkWaterfallColumn.js(318,20): error TS2339: Property 'window' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkWaterfallColumn.js(349,45): error TS2339: Property 'offsetWidth' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkWaterfallColumn.js(350,46): error TS2339: Property 'offsetHeight' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/RequestHTMLView.js(56,18): error TS2339: Property 'removeChildren' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/RequestHTMLView.js(62,18): error TS2339: Property 'removeChildren' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/RequestHeadersView.js(112,14): error TS2339: Property 'createChild' does not exist on type 'DocumentFragment'. -node_modules/chrome-devtools-frontend/front_end/network/RequestHeadersView.js(113,14): error TS2339: Property 'createChild' does not exist on type 'DocumentFragment'. -node_modules/chrome-devtools-frontend/front_end/network/RequestHeadersView.js(114,14): error TS2339: Property 'createChild' does not exist on type 'DocumentFragment'. -node_modules/chrome-devtools-frontend/front_end/network/RequestHeadersView.js(142,11): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/RequestHeadersView.js(222,39): error TS2339: Property 'removeChildren' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/RequestHeadersView.js(223,39): error TS2339: Property 'createTextChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/RequestHeadersView.js(237,13): error TS2339: Property 'consume' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/network/RequestHeadersView.js(260,24): error TS2339: Property 'createChild' does not exist on type 'DocumentFragment'. -node_modules/chrome-devtools-frontend/front_end/network/RequestHeadersView.js(282,14): error TS2339: Property 'removeChildren' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/RequestHeadersView.js(283,14): error TS2339: Property 'createTextChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/RequestHeadersView.js(293,13): error TS2339: Property 'consume' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/network/RequestHeadersView.js(304,15): error TS2551: Property 'editable' does not exist on type 'ObjectPropertiesSection'. Did you mean '_editable'? -node_modules/chrome-devtools-frontend/front_end/network/RequestHeadersView.js(311,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/network/RequestHeadersView.js(328,11): error TS2339: Property 'consume' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/network/RequestHeadersView.js(378,26): error TS2339: Property 'createChild' does not exist on type 'DocumentFragment'. -node_modules/chrome-devtools-frontend/front_end/network/RequestHeadersView.js(379,26): error TS2339: Property 'createChild' does not exist on type 'DocumentFragment'. -node_modules/chrome-devtools-frontend/front_end/network/RequestHeadersView.js(381,48): error TS2339: Property 'createChild' does not exist on type 'DocumentFragment'. -node_modules/chrome-devtools-frontend/front_end/network/RequestHeadersView.js(393,50): error TS2339: Property 'createChild' does not exist on type 'DocumentFragment'. -node_modules/chrome-devtools-frontend/front_end/network/RequestHeadersView.js(417,40): error TS2339: Property 'removeChildren' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/RequestHeadersView.js(418,40): error TS2339: Property 'createTextChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/RequestHeadersView.js(421,40): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/RequestHeadersView.js(439,23): error TS2339: Property 'createChild' does not exist on type 'DocumentFragment'. -node_modules/chrome-devtools-frontend/front_end/network/RequestHeadersView.js(440,23): error TS2339: Property 'createChild' does not exist on type 'DocumentFragment'. -node_modules/chrome-devtools-frontend/front_end/network/RequestHeadersView.js(487,11): error TS2339: Property 'consume' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/network/RequestHeadersView.js(496,11): error TS2339: Property 'consume' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/network/RequestResponseView.js(142,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'DecodingContentProvider' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/network/RequestResponseView.js(150,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'DecodingContentProvider' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/network/RequestResponseView.js(158,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'DecodingContentProvider' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/network/RequestResponseView.js(166,9): error TS4112: This member cannot have an 'override' modifier because its containing class 'DecodingContentProvider' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/network/RequestResponseView.js(178,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'DecodingContentProvider' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/network/RequestTimingView.js(187,33): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/RequestTimingView.js(202,40): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/RequestTimingView.js(219,39): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/RequestTimingView.js(235,29): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/RequestTimingView.js(244,34): error TS2339: Property 'secondsToString' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/network/RequestTimingView.js(248,31): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/RequestTimingView.js(253,31): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/RequestTimingView.js(259,53): error TS2339: Property 'secondsToString' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/network/RequestTimingView.js(267,37): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/RequestTimingView.js(271,37): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/RequestTimingView.js(288,74): error TS2345: Argument of type '{ min: number; max: number; count: number; }' is not assignable to parameter of type 'number | { min: number; max: number; }'. - Object literal may only specify known properties, and 'count' does not exist in type '{ min: number; max: number; }'. -node_modules/chrome-devtools-frontend/front_end/network/RequestTimingView.js(290,29): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/RequestTimingView.js(307,34): error TS2339: Property 'millisToString' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/network/RequestTimingView.js(315,37): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/ResourceWebSocketFrameView.js(158,58): error TS2339: Property 'value' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/ResourceWebSocketFrameView.js(230,3): error TS2741: Property 'title' is missing in type '{ name: string; label: string; }' but required in type 'Item'. -node_modules/chrome-devtools-frontend/front_end/network/ResourceWebSocketFrameView.js(231,3): error TS2741: Property 'title' is missing in type '{ name: string; label: string; }' but required in type 'Item'. -node_modules/chrome-devtools-frontend/front_end/network/ResourceWebSocketFrameView.js(232,3): error TS2741: Property 'title' is missing in type '{ name: string; label: string; }' but required in type 'Item'. -node_modules/chrome-devtools-frontend/front_end/network/ResourceWebSocketFrameView.js(250,14): error TS2339: Property 'createTextChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network/ResourceWebSocketFrameView.js(251,14): error TS2339: Property 'title' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/network_log/HAREntry.js(130,29): error TS2339: Property 'localizedFailDescription' does not exist on type 'NetworkRequest'. -node_modules/chrome-devtools-frontend/front_end/network_log/HAREntry.js(202,7): error TS2741: Property '_blocked_proxy' is missing in type '{ blocked: number; dns: number; ssl: number; connect: number; send: number; wait: number; receive: number; _blocked_queueing: number; }' but required in type '{ blocked: number; dns: number; ssl: number; connect: number; send: number; wait: number; receive: number; _blocked_queueing: number; _blocked_proxy: number; }'. -node_modules/chrome-devtools-frontend/front_end/network_log/HAREntry.js(214,5): error TS2322: Type '{ blocked: number; dns: number; ssl: number; connect: number; send: number; wait: number; receive: number; _blocked_queueing: number; }' is not assignable to type '{ blocked: number; dns: number; ssl: number; connect: number; send: number; wait: number; receive: number; _blocked_queueing: number; _blocked_proxy: number; }'. -node_modules/chrome-devtools-frontend/front_end/network_log/NetworkLog.js(44,57): error TS2345: Argument of type 'this' is not assignable to parameter of type 'SDKModelObserver'. - Type 'NetworkLog' is not assignable to type 'SDKModelObserver'. - Types of property 'modelAdded' are incompatible. - Type '(networkManager: NetworkManager) => void' is not assignable to type '(model: T) => void'. -node_modules/chrome-devtools-frontend/front_end/network_log/NetworkLog.js(51,3): error TS2416: Property 'modelAdded' in type 'NetworkLog' is not assignable to the same property in base type 'SDKModelObserver'. - Type '(networkManager: NetworkManager) => void' is not assignable to type '(model: T) => void'. -node_modules/chrome-devtools-frontend/front_end/network_log/NetworkLog.js(51,3): error TS2416: Property 'modelAdded' in type 'NetworkLog' is not assignable to the same property in base type 'SDKModelObserver'. - Type '(networkManager: NetworkManager) => void' is not assignable to type '(model: T) => void'. - Types of parameters 'networkManager' and 'model' are incompatible. - Type 'T' is not assignable to type 'NetworkManager'. -node_modules/chrome-devtools-frontend/front_end/network_log/NetworkLog.js(51,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Object'. -node_modules/chrome-devtools-frontend/front_end/network_log/NetworkLog.js(80,3): error TS2416: Property 'modelRemoved' in type 'NetworkLog' is not assignable to the same property in base type 'SDKModelObserver'. - Type '(networkManager: NetworkManager) => void' is not assignable to type '(model: T) => void'. -node_modules/chrome-devtools-frontend/front_end/network_log/NetworkLog.js(80,3): error TS2416: Property 'modelRemoved' in type 'NetworkLog' is not assignable to the same property in base type 'SDKModelObserver'. - Type '(networkManager: NetworkManager) => void' is not assignable to type '(model: T) => void'. - Types of parameters 'networkManager' and 'model' are incompatible. - Type 'T' is not assignable to type 'NetworkManager'. -node_modules/chrome-devtools-frontend/front_end/network_log/NetworkLog.js(80,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Object'. -node_modules/chrome-devtools-frontend/front_end/network_log/NetworkLog.js(99,59): error TS2345: Argument of type 'this' is not assignable to parameter of type 'SDKModelObserver'. -node_modules/chrome-devtools-frontend/front_end/network_log/NetworkLog.js(101,61): error TS2345: Argument of type 'this' is not assignable to parameter of type 'SDKModelObserver'. -node_modules/chrome-devtools-frontend/front_end/network_log/NetworkLog.js(123,24): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/network_log/NetworkLog.js(256,29): error TS2339: Property 'addAll' does not exist on type 'Set'. -node_modules/chrome-devtools-frontend/front_end/network_log/NetworkLog.js(485,149): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/network_priorities/NetworkPriorities.js(6,22): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/network_priorities/NetworkPriorities.js(19,37): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/network_priorities/NetworkPriorities.js(20,64): error TS2339: Property '_uiLabelToPriorityMap' does not exist on type '(priorityLabel: string) => string'. -node_modules/chrome-devtools-frontend/front_end/network_priorities/NetworkPriorities.js(27,39): error TS2339: Property '_uiLabelToPriorityMap' does not exist on type '(priorityLabel: string) => string'. -node_modules/chrome-devtools-frontend/front_end/network_priorities/NetworkPriorities.js(32,28): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/network_priorities/NetworkPriorities.js(35,29): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/network_priorities/NetworkPriorities.js(36,50): error TS2339: Property '_priorityUiLabelMap' does not exist on type '() => Map'. -node_modules/chrome-devtools-frontend/front_end/network_priorities/NetworkPriorities.js(47,40): error TS2339: Property '_priorityUiLabelMap' does not exist on type '() => Map'. -node_modules/chrome-devtools-frontend/front_end/network_priorities/NetworkPriorities.js(53,28): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/network_priorities/NetworkPriorities.js(56,29): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/network_priorities/NetworkPriorities.js(57,66): error TS2339: Property '_symbolicToNumericPriorityMap' does not exist on type '() => Map'. -node_modules/chrome-devtools-frontend/front_end/network_priorities/NetworkPriorities.js(68,48): error TS2339: Property '_symbolicToNumericPriorityMap' does not exist on type '() => Map'. -node_modules/chrome-devtools-frontend/front_end/network_test_runner/NetworkTestRunner.js(20,34): error TS2339: Property 'network' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/network_test_runner/NetworkTestRunner.js(49,13): error TS2339: Property 'network' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/network_test_runner/NetworkTestRunner.js(53,20): error TS2339: Property 'network' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/network_test_runner/NetworkTestRunner.js(69,8): error TS2304: Cannot find name 'i'. -node_modules/chrome-devtools-frontend/front_end/network_test_runner/NetworkTestRunner.js(69,15): error TS2304: Cannot find name 'i'. -node_modules/chrome-devtools-frontend/front_end/network_test_runner/NetworkTestRunner.js(69,36): error TS2304: Cannot find name 'i'. -node_modules/chrome-devtools-frontend/front_end/network_test_runner/NetworkTestRunner.js(70,35): error TS2304: Cannot find name 'i'. -node_modules/chrome-devtools-frontend/front_end/network_test_runner/ProductRegistryTestRunner.js(38,81): error TS2322: Type '{}' is not assignable to type '{ [x: string]: { product: number; type: number; }; }'. - Index signature is missing in type '{}'. -node_modules/chrome-devtools-frontend/front_end/object_ui/CustomPreviewComponent.js(31,20): error TS2339: Property 'classList' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/object_ui/CustomPreviewComponent.js(94,30): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/object_ui/CustomPreviewComponent.js(116,11): error TS2339: Property 'consume' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/object_ui/CustomPreviewComponent.js(125,18): error TS2339: Property 'classList' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/object_ui/JavaScriptAutocomplete.js(99,47): error TS2554: Expected 2 arguments, but got 1. -node_modules/chrome-devtools-frontend/front_end/object_ui/JavaScriptAutocomplete.js(132,51): error TS2339: Property 'naturalOrderComparator' does not exist on type 'StringConstructor'. -node_modules/chrome-devtools-frontend/front_end/object_ui/JavaScriptAutocomplete.js(156,24): error TS2339: Property 'subtitle' does not exist on type '{ text: string; title: string; priority: number; }'. -node_modules/chrome-devtools-frontend/front_end/object_ui/JavaScriptAutocomplete.js(157,7): error TS2322: Type '{ text: string; title: string; priority: number; }[]' is not assignable to type '{ text: string; subtitle: string; iconType: string; priority: number; isSecondary: boolean; title: string; }[]'. - Type '{ text: string; title: string; priority: number; }' is missing the following properties from type '{ text: string; subtitle: string; iconType: string; priority: number; isSecondary: boolean; title: string; }': subtitle, iconType, isSecondary -node_modules/chrome-devtools-frontend/front_end/object_ui/JavaScriptAutocomplete.js(183,37): error TS2345: Argument of type 'string' is not assignable to parameter of type 'number'. -node_modules/chrome-devtools-frontend/front_end/object_ui/JavaScriptAutocomplete.js(183,97): error TS2345: Argument of type 'string' is not assignable to parameter of type 'number'. -node_modules/chrome-devtools-frontend/front_end/object_ui/JavaScriptAutocomplete.js(335,16): error TS2403: Subsequent variable declarations must have the same type. Variable 'scope' must be of type 'Scope', but here has type '{ properties: RemoteObjectProperty[]; name: string; }'. -node_modules/chrome-devtools-frontend/front_end/object_ui/JavaScriptAutocomplete.js(336,54): error TS2339: Property 'properties' does not exist on type 'Scope'. -node_modules/chrome-devtools-frontend/front_end/object_ui/JavaScriptAutocomplete.js(377,27): error TS2345: Argument of type '{ items: string[]; }' is not assignable to parameter of type 'CompletionGroup'. - Property 'title' is missing in type '{ items: string[]; }' but required in type 'CompletionGroup'. -node_modules/chrome-devtools-frontend/front_end/object_ui/JavaScriptAutocomplete.js(420,45): error TS2339: Property 'escapeCharacters' does not exist on type 'string'. -node_modules/chrome-devtools-frontend/front_end/object_ui/JavaScriptAutocomplete.js(442,28): error TS2339: Property 'subtitle' does not exist on type '{ text: string; priority: number; }'. -node_modules/chrome-devtools-frontend/front_end/object_ui/JavaScriptAutocomplete.js(466,19): error TS2339: Property 'naturalOrderComparator' does not exist on type 'StringConstructor'. -node_modules/chrome-devtools-frontend/front_end/object_ui/ObjectPopoverHelper.js(91,29): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/object_ui/ObjectPopoverHelper.js(108,50): error TS2554: Expected 0 arguments, but got 1. -node_modules/chrome-devtools-frontend/front_end/object_ui/ObjectPopoverHelper.js(114,48): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/object_ui/ObjectPopoverHelper.js(129,7): error TS2722: Cannot invoke an object which is possibly 'undefined'. -node_modules/chrome-devtools-frontend/front_end/object_ui/ObjectPopoverHelper.js(145,50): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/object_ui/ObjectPopoverHelper.js(156,7): error TS2722: Cannot invoke an object which is possibly 'undefined'. -node_modules/chrome-devtools-frontend/front_end/object_ui/ObjectPropertiesSection.js(49,40): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/object_ui/ObjectPropertiesSection.js(56,18): error TS2339: Property '_section' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/object_ui/ObjectPropertiesSection.js(77,29): error TS2551: Property 'editable' does not exist on type 'ObjectPropertiesSection'. Did you mean '_editable'? -node_modules/chrome-devtools-frontend/front_end/object_ui/ObjectPropertiesSection.js(108,19): error TS2339: Property 'naturalOrderComparator' does not exist on type 'StringConstructor'. -node_modules/chrome-devtools-frontend/front_end/object_ui/ObjectPropertiesSection.js(118,19): error TS2339: Property 'createTextChildren' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/object_ui/ObjectPropertiesSection.js(181,18): error TS2339: Property 'title' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/object_ui/ObjectPropertiesSection.js(207,22): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/object_ui/ObjectPropertiesSection.js(209,22): error TS2339: Property 'createTextChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/object_ui/ObjectPropertiesSection.js(209,58): error TS2554: Expected 0 arguments, but got 1. -node_modules/chrome-devtools-frontend/front_end/object_ui/ObjectPropertiesSection.js(211,22): error TS2339: Property 'createTextChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/object_ui/ObjectPropertiesSection.js(263,20): error TS2339: Property 'title' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/object_ui/ObjectPropertiesSection.js(268,22): error TS2339: Property 'setTextContentTruncatedIfNeeded' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/object_ui/ObjectPropertiesSection.js(274,22): error TS2339: Property 'createTextChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/object_ui/ObjectPropertiesSection.js(276,22): error TS2339: Property 'createTextChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/object_ui/ObjectPropertiesSection.js(288,20): error TS2339: Property 'title' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/object_ui/ObjectPropertiesSection.js(297,20): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/object_ui/ObjectPropertiesSection.js(298,20): error TS2339: Property 'createTextChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/object_ui/ObjectPropertiesSection.js(299,20): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/object_ui/ObjectPropertiesSection.js(300,20): error TS2339: Property 'title' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/object_ui/ObjectPropertiesSection.js(312,15): error TS2339: Property 'consume' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/object_ui/ObjectPropertiesSection.js(325,20): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/object_ui/ObjectPropertiesSection.js(326,20): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/object_ui/ObjectPropertiesSection.js(328,20): error TS2339: Property 'title' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/object_ui/ObjectPropertiesSection.js(392,13): error TS2345: Argument of type 'TemplateStringsArray' is not assignable to parameter of type 'string | string[]'. - Type 'TemplateStringsArray' is not assignable to type 'string[]'. -node_modules/chrome-devtools-frontend/front_end/object_ui/ObjectPropertiesSection.js(395,13): error TS2345: Argument of type 'TemplateStringsArray' is not assignable to parameter of type 'string | string[]'. - Type 'TemplateStringsArray' is not assignable to type 'string[]'. -node_modules/chrome-devtools-frontend/front_end/object_ui/ObjectPropertiesSection.js(468,48): error TS2339: Property '_skipProto' does not exist on type 'TreeOutline'. -node_modules/chrome-devtools-frontend/front_end/object_ui/ObjectPropertiesSection.js(565,16): error TS2339: Property 'parentObject' does not exist on type 'RemoteObjectProperty'. -node_modules/chrome-devtools-frontend/front_end/object_ui/ObjectPropertiesSection.js(571,38): error TS2339: Property 'getter' does not exist on type 'RemoteObjectProperty'. -node_modules/chrome-devtools-frontend/front_end/object_ui/ObjectPropertiesSection.js(572,92): error TS2339: Property 'getter' does not exist on type 'RemoteObjectProperty'. -node_modules/chrome-devtools-frontend/front_end/object_ui/ObjectPropertiesSection.js(573,24): error TS2339: Property 'parentObject' does not exist on type 'RemoteObjectProperty'. -node_modules/chrome-devtools-frontend/front_end/object_ui/ObjectPropertiesSection.js(576,38): error TS2339: Property 'setter' does not exist on type 'RemoteObjectProperty'. -node_modules/chrome-devtools-frontend/front_end/object_ui/ObjectPropertiesSection.js(577,92): error TS2339: Property 'setter' does not exist on type 'RemoteObjectProperty'. -node_modules/chrome-devtools-frontend/front_end/object_ui/ObjectPropertiesSection.js(578,24): error TS2339: Property 'parentObject' does not exist on type 'RemoteObjectProperty'. -node_modules/chrome-devtools-frontend/front_end/object_ui/ObjectPropertiesSection.js(581,38): error TS2339: Property 'getter' does not exist on type 'RemoteObjectProperty'. -node_modules/chrome-devtools-frontend/front_end/object_ui/ObjectPropertiesSection.js(592,31): error TS2339: Property 'parentObject' does not exist on type 'RemoteObjectProperty'. -node_modules/chrome-devtools-frontend/front_end/object_ui/ObjectPropertiesSection.js(621,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/object_ui/ObjectPropertiesSection.js(626,31): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/object_ui/ObjectPropertiesSection.js(689,20): error TS2345: Argument of type 'RemoteObject' is not assignable to parameter of type 'boolean'. -node_modules/chrome-devtools-frontend/front_end/object_ui/ObjectPropertiesSection.js(690,57): error TS2339: Property '_skipProto' does not exist on type 'TreeOutline'. -node_modules/chrome-devtools-frontend/front_end/object_ui/ObjectPropertiesSection.js(691,90): error TS2339: Property 'parentObject' does not exist on type 'RemoteObjectProperty'. -node_modules/chrome-devtools-frontend/front_end/object_ui/ObjectPropertiesSection.js(703,111): error TS2339: Property 'setter' does not exist on type 'RemoteObjectProperty'. -node_modules/chrome-devtools-frontend/front_end/object_ui/ObjectPropertiesSection.js(756,20): error TS2339: Property 'setTextContentTruncatedIfNeeded' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/object_ui/ObjectPropertiesSection.js(758,18): error TS2339: Property 'title' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/object_ui/ObjectPropertiesSection.js(778,30): error TS2339: Property 'getter' does not exist on type 'RemoteObjectProperty'. -node_modules/chrome-devtools-frontend/front_end/object_ui/ObjectPropertiesSection.js(780,25): error TS2339: Property 'parentObject' does not exist on type 'RemoteObjectProperty'. -node_modules/chrome-devtools-frontend/front_end/object_ui/ObjectPropertiesSection.js(784,25): error TS2339: Property 'title' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/object_ui/ObjectPropertiesSection.js(791,26): error TS2339: Property 'removeChildren' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/object_ui/ObjectPropertiesSection.js(792,26): error TS2339: Property 'appendChildren' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/object_ui/ObjectPropertiesSection.js(796,26): error TS2339: Property 'title' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/object_ui/ObjectPropertiesSection.js(804,24): error TS2339: Property 'title' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/object_ui/ObjectPropertiesSection.js(806,24): error TS2339: Property 'title' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/object_ui/ObjectPropertiesSection.js(808,24): error TS2339: Property 'title' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/object_ui/ObjectPropertiesSection.js(820,46): error TS2339: Property 'title' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/object_ui/ObjectPropertiesSection.js(821,105): error TS2339: Property 'title' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/object_ui/ObjectPropertiesSection.js(822,51): error TS2345: Argument of type 'TemplateStringsArray' is not assignable to parameter of type 'string | string[]'. - Type 'TemplateStringsArray' is not assignable to type 'string[]'. -node_modules/chrome-devtools-frontend/front_end/object_ui/ObjectPropertiesSection.js(824,23): error TS2339: Property 'parentObject' does not exist on type 'RemoteObjectProperty'. -node_modules/chrome-devtools-frontend/front_end/object_ui/ObjectPropertiesSection.js(825,46): error TS2345: Argument of type 'TemplateStringsArray' is not assignable to parameter of type 'string | string[]'. - Type 'TemplateStringsArray' is not assignable to type 'string[]'. -node_modules/chrome-devtools-frontend/front_end/object_ui/ObjectPropertiesSection.js(826,46): error TS2345: Argument of type 'TemplateStringsArray' is not assignable to parameter of type 'string | string[]'. - Type 'TemplateStringsArray' is not assignable to type 'string[]'. -node_modules/chrome-devtools-frontend/front_end/object_ui/ObjectPropertiesSection.js(832,43): error TS2339: Property '_editable' does not exist on type 'TreeOutline'. -node_modules/chrome-devtools-frontend/front_end/object_ui/ObjectPropertiesSection.js(832,61): error TS2339: Property '_readOnly' does not exist on type 'ObjectPropertyTreeElement'. -node_modules/chrome-devtools-frontend/front_end/object_ui/ObjectPropertiesSection.js(835,46): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/object_ui/ObjectPropertiesSection.js(853,26): error TS2339: Property 'getComponentSelection' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/object_ui/ObjectPropertiesSection.js(891,13): error TS2339: Property 'consume' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/object_ui/ObjectPropertiesSection.js(895,15): error TS2339: Property 'key' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/object_ui/ObjectPropertiesSection.js(896,13): error TS2339: Property 'consume' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/object_ui/ObjectPropertiesSection.js(923,51): error TS2339: Property 'parentObject' does not exist on type 'RemoteObjectProperty'. -node_modules/chrome-devtools-frontend/front_end/object_ui/ObjectPropertiesSection.js(924,51): error TS2339: Property 'parentObject' does not exist on type 'RemoteObjectProperty'. -node_modules/chrome-devtools-frontend/front_end/object_ui/ObjectPropertiesSection.js(980,18): error TS2339: Property 'sprintf' does not exist on type 'StringConstructor'. -node_modules/chrome-devtools-frontend/front_end/object_ui/ObjectPropertiesSection.js(1153,23): error TS2362: The left-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type. -node_modules/chrome-devtools-frontend/front_end/object_ui/ObjectPropertiesSection.js(1182,26): error TS2339: Property '_readOnly' does not exist on type 'ObjectPropertyTreeElement'. -node_modules/chrome-devtools-frontend/front_end/object_ui/ObjectPropertiesSection.js(1211,20): error TS2362: The left-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type. -node_modules/chrome-devtools-frontend/front_end/object_ui/ObjectPropertiesSection.js(1211,44): error TS2362: The left-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type. -node_modules/chrome-devtools-frontend/front_end/object_ui/ObjectPropertiesSection.js(1241,23): error TS2339: Property 'parentObject' does not exist on type 'RemoteObjectProperty'. -node_modules/chrome-devtools-frontend/front_end/object_ui/ObjectPropertiesSection.js(1243,26): error TS2339: Property '_readOnly' does not exist on type 'ObjectPropertyTreeElement'. -node_modules/chrome-devtools-frontend/front_end/object_ui/ObjectPropertiesSection.js(1353,47): error TS2339: Property 'objectTreeElement' does not exist on type 'TreeOutline'. -node_modules/chrome-devtools-frontend/front_end/object_ui/ObjectPropertiesSection.js(1359,19): error TS2339: Property 'property' does not exist on type 'TreeElement'. -node_modules/chrome-devtools-frontend/front_end/object_ui/ObjectPropertiesSection.js(1360,31): error TS2339: Property 'property' does not exist on type 'TreeElement'. -node_modules/chrome-devtools-frontend/front_end/object_ui/ObjectPropertiesSection.js(1387,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'Renderer' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/object_ui/ObjectPropertiesSection.js(1390,5): error TS2739: Type '{}' is missing the following properties from type '{ title: string | Element; expanded: boolean; editable: boolean; }': title, expanded, editable -node_modules/chrome-devtools-frontend/front_end/object_ui/ObjectPropertiesSection.js(1397,13): error TS2551: Property 'editable' does not exist on type 'ObjectPropertiesSection'. Did you mean '_editable'? -node_modules/chrome-devtools-frontend/front_end/object_ui/RemoteObjectPreviewFormatter.js(9,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/object_ui/RemoteObjectPreviewFormatter.js(10,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/object_ui/RemoteObjectPreviewFormatter.js(17,26): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/object_ui/RemoteObjectPreviewFormatter.js(36,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/object_ui/RemoteObjectPreviewFormatter.js(59,23): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/object_ui/RemoteObjectPreviewFormatter.js(62,43): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/object_ui/RemoteObjectPreviewFormatter.js(90,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/object_ui/RemoteObjectPreviewFormatter.js(98,23): error TS2339: Property 'createTextChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/object_ui/RemoteObjectPreviewFormatter.js(108,27): error TS2339: Property 'createTextChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/object_ui/RemoteObjectPreviewFormatter.js(119,23): error TS2339: Property 'createTextChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/object_ui/RemoteObjectPreviewFormatter.js(127,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/object_ui/RemoteObjectPreviewFormatter.js(136,26): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/object_ui/RemoteObjectPreviewFormatter.js(137,26): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/object_ui/RemoteObjectPreviewFormatter.js(149,19): error TS2362: The left-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type. -node_modules/chrome-devtools-frontend/front_end/object_ui/RemoteObjectPreviewFormatter.js(161,23): error TS2339: Property 'createTextChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/object_ui/RemoteObjectPreviewFormatter.js(167,23): error TS2339: Property 'createTextChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/object_ui/RemoteObjectPreviewFormatter.js(171,23): error TS2339: Property 'createTextChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/object_ui/RemoteObjectPreviewFormatter.js(180,23): error TS2339: Property 'createTextChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/object_ui/RemoteObjectPreviewFormatter.js(186,23): error TS2339: Property 'createTextChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/object_ui/RemoteObjectPreviewFormatter.js(190,21): error TS2339: Property 'createTextChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/object_ui/RemoteObjectPreviewFormatter.js(199,32): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/object_ui/RemoteObjectPreviewFormatter.js(208,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/object_ui/RemoteObjectPreviewFormatter.js(213,23): error TS2339: Property 'createTextChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/object_ui/RemoteObjectPreviewFormatter.js(218,23): error TS2339: Property 'createTextChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/object_ui/RemoteObjectPreviewFormatter.js(236,32): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/object_ui/RemoteObjectPreviewFormatter.js(240,33): error TS2339: Property 'peekLast' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/object_ui/RemoteObjectPreviewFormatter.js(256,12): error TS2339: Property 'title' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/object_ui/RemoteObjectPreviewFormatter.js(271,12): error TS2339: Property 'createTextChildren' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/object_ui/RemoteObjectPreviewFormatter.js(280,12): error TS2339: Property 'title' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/ChartViewport.js(45,48): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/ChartViewport.js(60,48): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/ChartViewport.js(64,50): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/ChartViewport.js(67,47): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/ChartViewport.js(131,41): error TS2339: Property 'offsetWidth' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/ChartViewport.js(133,46): error TS2339: Property 'offsetHeight' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/ChartViewport.js(182,27): error TS2339: Property 'shiftKey' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/ChartViewport.js(182,38): error TS2363: The right-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type. -node_modules/chrome-devtools-frontend/front_end/perf_ui/ChartViewport.js(183,46): error TS2339: Property 'wheelDeltaY' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/ChartViewport.js(183,72): error TS2339: Property 'wheelDeltaX' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/ChartViewport.js(184,55): error TS2339: Property 'wheelDeltaX' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/ChartViewport.js(184,81): error TS2339: Property 'wheelDeltaY' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/ChartViewport.js(186,44): error TS2339: Property 'wheelDeltaY' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/ChartViewport.js(186,61): error TS2339: Property 'wheelDeltaX' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/ChartViewport.js(189,33): error TS2339: Property 'wheelDeltaX' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/ChartViewport.js(193,49): error TS2339: Property 'wheelDeltaY' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/ChartViewport.js(193,66): error TS2339: Property 'wheelDeltaX' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/ChartViewport.js(197,7): error TS2339: Property 'consume' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/ChartViewport.js(263,20): error TS2339: Property 'constrain' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/ChartViewport.js(274,23): error TS2339: Property 'constrain' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/ChartViewport.js(275,24): error TS2339: Property 'constrain' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/ChartViewport.js(280,54): error TS2339: Property 'preciseMillisToString' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/ChartViewport.js(297,24): error TS2339: Property 'shiftKey' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/ChartViewport.js(298,40): error TS2339: Property 'offsetX' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/ChartViewport.js(299,32): error TS2339: Property 'offsetX' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/ChartViewport.js(345,24): error TS2339: Property 'shiftKey' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/ChartViewport.js(353,24): error TS2339: Property 'shiftKey' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/ChartViewport.js(362,24): error TS2339: Property 'shiftKey' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/ChartViewport.js(363,23): error TS2339: Property 'shiftKey' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/ChartViewport.js(364,15): error TS2339: Property 'code' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/ChartViewport.js(380,7): error TS2339: Property 'consume' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/ChartViewport.js(401,29): error TS2339: Property 'constrain' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/ChartViewport.js(438,40): error TS2339: Property 'window' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/ChartViewport.js(464,22): error TS2339: Property 'window' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/FilmStripView.js(12,45): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/FilmStripView.js(23,20): error TS2339: Property 'src' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/FilmStripView.js(59,13): error TS2339: Property 'title' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/FilmStripView.js(60,13): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/FilmStripView.js(60,61): error TS2339: Property 'millisToString' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/FilmStripView.js(61,32): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/FilmStripView.js(97,33): error TS2339: Property 'upperBound' does not exist on type 'Frame[]'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/FilmStripView.js(138,17): error TS2339: Property 'style' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/FilmStripView.js(148,27): error TS2339: Property 'removeChildren' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/FilmStripView.js(168,35): error TS2345: Argument of type 'string' is not assignable to parameter of type 'symbol'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/FilmStripView.js(180,25): error TS2339: Property 'removeChildren' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/FilmStripView.js(211,16): error TS2339: Property 'title' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/FilmStripView.js(213,16): error TS2339: Property 'title' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/FilmStripView.js(215,39): error TS2345: Argument of type 'TemplateStringsArray' is not assignable to parameter of type 'string[]'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/FilmStripView.js(229,18): error TS2339: Property 'tabIndex' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/FilmStripView.js(254,19): error TS2339: Property 'key' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/FilmStripView.js(256,35): error TS2339: Property 'metaKey' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/FilmStripView.js(263,35): error TS2339: Property 'metaKey' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/FilmStripView.js(306,51): error TS2339: Property 'millisToString' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/FlameChart.js(201,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/FlameChart.js(210,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/FlameChart.js(219,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/FlameChart.js(307,36): error TS2339: Property 'offsetX' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/FlameChart.js(308,36): error TS2339: Property 'offsetY' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/FlameChart.js(313,45): error TS2339: Property 'offsetX' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/FlameChart.js(313,60): error TS2339: Property 'offsetY' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/FlameChart.js(376,18): error TS2339: Property 'constrain' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/FlameChart.js(377,18): error TS2339: Property 'constrain' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/FlameChart.js(396,58): error TS2339: Property 'offsetX' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/FlameChart.js(396,73): error TS2339: Property 'offsetY' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/FlameChart.js(475,11): error TS2339: Property 'keyCode' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/FlameChart.js(475,43): error TS2339: Property 'keyCode' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/FlameChart.js(479,25): error TS2339: Property 'keyCode' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/FlameChart.js(480,9): error TS2339: Property 'consume' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/FlameChart.js(485,11): error TS2339: Property 'keyCode' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/FlameChart.js(485,41): error TS2339: Property 'keyCode' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/FlameChart.js(486,9): error TS2339: Property 'consume' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/FlameChart.js(488,18): error TS2339: Property 'keyCode' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/FlameChart.js(494,11): error TS2403: Subsequent variable declarations must have the same type. Variable 'indexOnLevel' must be of type 'any', but here has type 'number'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/FlameChart.js(517,49): error TS2339: Property 'upperBound' does not exist on type 'Uint32Array'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/FlameChart.js(580,36): error TS2339: Property 'upperBound' does not exist on type 'Uint32Array'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/FlameChart.js(625,41): error TS2339: Property 'lowerBound' does not exist on type 'FlameChartMarker[]'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/FlameChart.js(656,65): error TS2339: Property 'upperBound' does not exist on type 'Uint32Array'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/FlameChart.js(694,31): error TS2339: Property 'keysArray' does not exist on type 'Map'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/FlameChart.js(701,13): error TS2403: Subsequent variable declarations must have the same type. Variable 'entryIndex' must be of type 'any', but here has type 'number'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/FlameChart.js(796,43): error TS2339: Property 'peekLast' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/FlameChart.js(903,16): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/perf_ui/FlameChart.js(907,17): error TS1110: Type expected. -node_modules/chrome-devtools-frontend/front_end/perf_ui/FlameChart.js(1027,38): error TS2339: Property 'lowerBound' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/FlameChart.js(1167,15): error TS1110: Type expected. -node_modules/chrome-devtools-frontend/front_end/perf_ui/FlameChart.js(1169,70): error TS2339: Property 'peekLast' does not exist on type '{ name: string; startLevel: number; expanded: boolean; style: { height: number; padding: number; collapsible: boolean; font: string; color: string; backgroundColor: string; nestingLevel: number; itemsHeight: number; shareHeaderLine: boolean; useFirstLineForOverview: boolean; useDecoratorsForOverview: boolean; }; }[]'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/FlameChart.js(1205,9): error TS2322: Type 'boolean' is not assignable to type 'number'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/FlameChart.js(1273,25): error TS2339: Property 'style' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/FlameChart.js(1286,19): error TS2339: Property 'constrain' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/FlameChart.js(1343,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/FlameChart.js(1438,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/perf_ui/FlameChart.js(1443,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/perf_ui/FlameChart.js(1450,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/perf_ui/FlameChart.js(1455,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/perf_ui/FlameChart.js(1460,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/perf_ui/FlameChart.js(1466,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/perf_ui/FlameChart.js(1472,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/perf_ui/FlameChart.js(1478,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/perf_ui/FlameChart.js(1484,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/perf_ui/FlameChart.js(1490,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/perf_ui/FlameChart.js(1504,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/perf_ui/FlameChart.js(1510,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/perf_ui/FlameChart.js(1516,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/perf_ui/FlameChart.js(1528,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/perf_ui/FlameChart.js(1533,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/perf_ui/FlameChart.js(1538,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/perf_ui/FlameChart.js(1586,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'Calculator' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/perf_ui/FlameChart.js(1596,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'Calculator' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/perf_ui/FlameChart.js(1604,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'Calculator' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/perf_ui/FlameChart.js(1612,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'Calculator' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/perf_ui/FlameChart.js(1620,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'Calculator' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/perf_ui/FlameChart.js(1628,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'Calculator' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/perf_ui/LineLevelProfile.js(17,34): error TS2551: Property '_instance' does not exist on type 'typeof LineLevelProfile'. Did you mean 'instance'? -node_modules/chrome-devtools-frontend/front_end/perf_ui/LineLevelProfile.js(18,31): error TS2551: Property '_instance' does not exist on type 'typeof LineLevelProfile'. Did you mean 'instance'? -node_modules/chrome-devtools-frontend/front_end/perf_ui/LineLevelProfile.js(19,36): error TS2551: Property '_instance' does not exist on type 'typeof LineLevelProfile'. Did you mean 'instance'? -node_modules/chrome-devtools-frontend/front_end/perf_ui/LineLevelProfile.js(32,24): error TS2345: Argument of type 'ProfileNode' is not assignable to parameter of type 'CPUProfileNode'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/LineLevelProfile.js(33,32): error TS2339: Property 'positionTicks' does not exist on type 'ProfileNode'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/LineLevelProfile.js(40,34): error TS2339: Property 'positionTicks' does not exist on type 'ProfileNode'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/LineLevelProfile.js(41,31): error TS2339: Property 'positionTicks' does not exist on type 'ProfileNode'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/LineLevelProfile.js(132,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'LineDecorator' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/perf_ui/LineLevelProfile.js(135,16): error TS2339: Property 'uninstallGutter' does not exist on type 'CodeMirrorTextEditor'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/LineLevelProfile.js(138,16): error TS2339: Property 'installGutter' does not exist on type 'CodeMirrorTextEditor'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/LineLevelProfile.js(142,30): error TS2339: Property 'constrain' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/LineLevelProfile.js(145,15): error TS2339: Property 'style' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/LineLevelProfile.js(146,18): error TS2339: Property 'setGutterDecoration' does not exist on type 'CodeMirrorTextEditor'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/OverviewGrid.js(104,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/perf_ui/OverviewGrid.js(166,45): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/OverviewGrid.js(170,46): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/OverviewGrid.js(175,46): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/OverviewGrid.js(176,47): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/OverviewGrid.js(207,43): error TS2339: Property 'pageX' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/OverviewGrid.js(207,57): error TS2339: Property 'offsetX' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/OverviewGrid.js(207,80): error TS2339: Property 'offsetLeft' does not exist on type 'EventTarget'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/OverviewGrid.js(216,34): error TS2339: Property 'pageX' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/OverviewGrid.js(224,35): error TS2339: Property 'pageX' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/OverviewGrid.js(235,44): error TS2339: Property 'totalOffsetLeft' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/OverviewGrid.js(236,26): error TS2339: Property 'x' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/OverviewGrid.js(245,56): error TS2339: Property 'x' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/OverviewGrid.js(253,60): error TS2339: Property 'x' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/OverviewGrid.js(276,34): error TS2339: Property 'pageX' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/OverviewGrid.js(288,24): error TS2339: Property 'pageX' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/OverviewGrid.js(374,22): error TS2339: Property 'wheelDeltaY' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/OverviewGrid.js(374,56): error TS2339: Property 'wheelDeltaY' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/OverviewGrid.js(378,29): error TS2339: Property 'offsetX' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/OverviewGrid.js(378,52): error TS2339: Property 'clientWidth' does not exist on type 'EventTarget'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/OverviewGrid.js(379,46): error TS2339: Property 'wheelDeltaY' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/OverviewGrid.js(381,22): error TS2339: Property 'wheelDeltaX' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/OverviewGrid.js(381,56): error TS2339: Property 'wheelDeltaX' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/OverviewGrid.js(382,37): error TS2339: Property 'wheelDeltaX' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/OverviewGrid.js(412,19): error TS2339: Property 'constrain' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/OverviewGrid.js(415,20): error TS2339: Property 'constrain' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/OverviewGrid.js(434,26): error TS2339: Property 'style' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/OverviewGrid.js(435,26): error TS2339: Property 'style' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/OverviewGrid.js(449,28): error TS2339: Property 'style' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/OverviewGrid.js(450,28): error TS2339: Property 'style' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/OverviewGrid.js(452,28): error TS2339: Property 'style' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/OverviewGrid.js(453,28): error TS2339: Property 'style' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/PieChart.js(43,33): error TS2339: Property 'createChild' does not exist on type 'DocumentFragment'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/PieChart.js(49,30): error TS2345: Argument of type 'number' is not assignable to parameter of type 'string'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/PieChart.js(52,41): error TS2345: Argument of type 'number' is not assignable to parameter of type 'string'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/PieChart.js(54,30): error TS2345: Argument of type 'number' is not assignable to parameter of type 'string'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/PieChart.js(57,41): error TS2345: Argument of type 'number' is not assignable to parameter of type 'string'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/PieChart.js(91,18): error TS2339: Property 'style' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/PieChart.js(92,18): error TS2339: Property 'style' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/TimelineGrid.js(39,42): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/TimelineGrid.js(43,58): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/TimelineGrid.js(44,61): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/TimelineGrid.js(189,25): error TS2339: Property '_labelElement' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/TimelineGrid.js(196,23): error TS2339: Property '_labelElement' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/TimelineGrid.js(199,15): error TS2339: Property 'style' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/TimelineGrid.js(200,23): error TS2339: Property 'style' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/TimelineGrid.js(210,7): error TS2322: Type 'ChildNode' is not assignable to type 'Element'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/TimelineGrid.js(215,7): error TS2322: Type 'ChildNode' is not assignable to type 'Element'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/TimelineGrid.js(277,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/perf_ui/TimelineGrid.js(284,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/perf_ui/TimelineGrid.js(288,16): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/perf_ui/TimelineGrid.js(291,16): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/perf_ui/TimelineGrid.js(294,16): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/perf_ui/TimelineGrid.js(297,16): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/perf_ui/TimelineOverviewPane.js(45,51): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/TimelineOverviewPane.js(46,54): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/TimelineOverviewPane.js(70,34): error TS2339: Property 'offsetX' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/TimelineOverviewPane.js(70,57): error TS2339: Property 'offsetLeft' does not exist on type 'EventTarget'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/TimelineOverviewPane.js(84,14): error TS2339: Property 'remove' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/TimelineOverviewPane.js(85,14): error TS2339: Property 'appendChildren' does not exist on type 'DocumentFragment'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/TimelineOverviewPane.js(112,30): error TS2339: Property 'offsetWidth' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/TimelineOverviewPane.js(127,27): error TS2339: Property 'setCalculator' does not exist on type 'TimelineOverview'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/TimelineOverviewPane.js(152,7): error TS2322: Type 'Promise' is not assignable to type 'Promise'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/TimelineOverviewPane.js(186,57): error TS2339: Property 'valuesArray' does not exist on type 'Map'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/TimelineOverviewPane.js(280,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'TimelineOverviewCalculator' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/perf_ui/TimelineOverviewPane.js(318,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'TimelineOverviewCalculator' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/perf_ui/TimelineOverviewPane.js(319,19): error TS2339: Property 'preciseMillisToString' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/TimelineOverviewPane.js(326,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'TimelineOverviewCalculator' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/perf_ui/TimelineOverviewPane.js(334,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'TimelineOverviewCalculator' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/perf_ui/TimelineOverviewPane.js(342,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'TimelineOverviewCalculator' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/perf_ui/TimelineOverviewPane.js(350,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'TimelineOverviewCalculator' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/perf_ui/TimelineOverviewPane.js(375,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/perf_ui/TimelineOverviewPane.js(381,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/perf_ui/TimelineOverviewPane.js(395,33): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/TimelineOverviewPane.js(425,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/TimelineOverviewPane.js(432,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/TimelineOverviewPane.js(439,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/TimelineOverviewPane.js(447,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/TimelineOverviewPane.js(463,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/TimelineOverviewPane.js(490,39): error TS2345: Argument of type 'symbol' is not assignable to parameter of type 'boolean'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/TimelineOverviewPane.js(495,14): error TS2339: Property 'createChild' does not exist on type 'DocumentFragment'. -node_modules/chrome-devtools-frontend/front_end/perf_ui/TimelineOverviewPane.js(508,61): error TS2339: Property 'boxInWindow' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/performance_test_runner/TimelineTestRunner.js(74,72): error TS2554: Expected 0 arguments, but got 1. -node_modules/chrome-devtools-frontend/front_end/performance_test_runner/TimelineTestRunner.js(81,20): error TS2339: Property 'timeline' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/performance_test_runner/TimelineTestRunner.js(91,33): error TS2339: Property 'timeline' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/performance_test_runner/TimelineTestRunner.js(98,16): error TS2554: Expected 2 arguments, but got 1. -node_modules/chrome-devtools-frontend/front_end/performance_test_runner/TimelineTestRunner.js(108,20): error TS2339: Property 'timeline' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/performance_test_runner/TimelineTestRunner.js(120,79): error TS2554: Expected 0 arguments, but got 1. -node_modules/chrome-devtools-frontend/front_end/performance_test_runner/TimelineTestRunner.js(130,13): error TS2339: Property 'timeline' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/performance_test_runner/TimelineTestRunner.js(131,97): error TS2339: Property 'timeline' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/performance_test_runner/TimelineTestRunner.js(135,35): error TS2339: Property 'timeline' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/performance_test_runner/TimelineTestRunner.js(139,27): error TS2339: Property 'timeline' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/performance_test_runner/TimelineTestRunner.js(147,15): error TS2339: Property 'timeline' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/performance_test_runner/TimelineTestRunner.js(159,20): error TS2554: Expected 2 arguments, but got 1. -node_modules/chrome-devtools-frontend/front_end/performance_test_runner/TimelineTestRunner.js(189,60): error TS2339: Property 'timeline' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/performance_test_runner/TimelineTestRunner.js(220,44): error TS2339: Property 'peekLast' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/performance_test_runner/TimelineTestRunner.js(255,46): error TS2554: Expected 2 arguments, but got 3. -node_modules/chrome-devtools-frontend/front_end/performance_test_runner/TimelineTestRunner.js(321,53): error TS2345: Argument of type 'number' is not assignable to parameter of type 'V'. - 'V' could be instantiated with an arbitrary type which could be unrelated to 'number'. -node_modules/chrome-devtools-frontend/front_end/performance_test_runner/TimelineTestRunner.js(347,30): error TS2339: Property 'timeline' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/performance_test_runner/TimelineTestRunner.js(355,13): error TS2339: Property 'timeline' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/persistence/Automapping.js(12,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/persistence/Automapping.js(13,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/persistence/Automapping.js(67,40): error TS2339: Property 'valuesArray' does not exist on type 'Set'. -node_modules/chrome-devtools-frontend/front_end/persistence/Automapping.js(315,20): error TS2362: The left-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type. -node_modules/chrome-devtools-frontend/front_end/persistence/Automapping.js(324,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'Automapping' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/persistence/Automapping.js(329,40): error TS2339: Property 'valuesArray' does not exist on type 'Set'. -node_modules/chrome-devtools-frontend/front_end/persistence/Automapping.js(355,41): error TS2339: Property 'reverse' does not exist on type 'string'. -node_modules/chrome-devtools-frontend/front_end/persistence/Automapping.js(363,44): error TS2339: Property 'reverse' does not exist on type 'string'. -node_modules/chrome-devtools-frontend/front_end/persistence/Automapping.js(372,77): error TS2339: Property 'reverse' does not exist on type 'string'. -node_modules/chrome-devtools-frontend/front_end/persistence/Automapping.js(376,62): error TS2339: Property 'reverse' does not exist on type 'string'. -node_modules/chrome-devtools-frontend/front_end/persistence/DefaultMapping.js(12,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/persistence/DefaultMapping.js(13,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/persistence/DefaultMapping.js(36,40): error TS2339: Property 'valuesArray' does not exist on type 'Set'. -node_modules/chrome-devtools-frontend/front_end/persistence/DefaultMapping.js(142,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'DefaultMapping' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/persistence/DefaultMapping.js(143,40): error TS2339: Property 'valuesArray' does not exist on type 'Set'. -node_modules/chrome-devtools-frontend/front_end/persistence/EditFileSystemView.js(60,48): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/persistence/EditFileSystemView.js(69,53): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/persistence/EditFileSystemView.js(82,25): error TS2339: Property 'tabIndex' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/persistence/EditFileSystemView.js(131,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/persistence/EditFileSystemView.js(135,38): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/persistence/EditFileSystemView.js(138,15): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/persistence/EditFileSystemView.js(139,39): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/persistence/EditFileSystemView.js(144,39): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/persistence/EditFileSystemView.js(156,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/persistence/EditFileSystemView.js(172,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/persistence/EditFileSystemView.js(198,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/persistence/EditFileSystemView.js(223,26): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/persistence/EditFileSystemView.js(228,26): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/persistence/EditFileSystemView.js(282,26): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/persistence/EditFileSystemView.js(285,26): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/persistence/FileSystemMapping.js(180,46): error TS2339: Property 'remove' does not exist on type 'Entry[]'. -node_modules/chrome-devtools-frontend/front_end/persistence/FileSystemMapping.js(285,52): error TS2339: Property 'remove' does not exist on type 'Entry[]'. -node_modules/chrome-devtools-frontend/front_end/persistence/FileSystemWorkspaceBinding.js(156,28): error TS2339: Property 'remove' does not exist on type 'Map'. -node_modules/chrome-devtools-frontend/front_end/persistence/FileSystemWorkspaceBinding.js(165,51): error TS2345: Argument of type 'K' is not assignable to parameter of type 'string'. -node_modules/chrome-devtools-frontend/front_end/persistence/FileSystemWorkspaceBinding.js(168,81): error TS2345: Argument of type 'V' is not assignable to parameter of type 'string'. -node_modules/chrome-devtools-frontend/front_end/persistence/FileSystemWorkspaceBinding.js(172,51): error TS2345: Argument of type 'K' is not assignable to parameter of type 'string'. -node_modules/chrome-devtools-frontend/front_end/persistence/FileSystemWorkspaceBinding.js(175,79): error TS2345: Argument of type 'V' is not assignable to parameter of type 'string'. -node_modules/chrome-devtools-frontend/front_end/persistence/FileSystemWorkspaceBinding.js(179,51): error TS2345: Argument of type 'K' is not assignable to parameter of type 'string'. -node_modules/chrome-devtools-frontend/front_end/persistence/FileSystemWorkspaceBinding.js(182,87): error TS2345: Argument of type 'V' is not assignable to parameter of type 'string'. -node_modules/chrome-devtools-frontend/front_end/persistence/FileSystemWorkspaceBinding.js(190,30): error TS2339: Property 'remove' does not exist on type 'Map'. -node_modules/chrome-devtools-frontend/front_end/persistence/FileSystemWorkspaceBinding.js(248,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'ProjectStore'. -node_modules/chrome-devtools-frontend/front_end/persistence/FileSystemWorkspaceBinding.js(271,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'ProjectStore'. -node_modules/chrome-devtools-frontend/front_end/persistence/FileSystemWorkspaceBinding.js(280,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'ProjectStore'. -node_modules/chrome-devtools-frontend/front_end/persistence/FileSystemWorkspaceBinding.js(310,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/persistence/FileSystemWorkspaceBinding.js(312,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'ProjectStore'. -node_modules/chrome-devtools-frontend/front_end/persistence/FileSystemWorkspaceBinding.js(321,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'ProjectStore'. -node_modules/chrome-devtools-frontend/front_end/persistence/FileSystemWorkspaceBinding.js(330,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/persistence/FileSystemWorkspaceBinding.js(332,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'ProjectStore'. -node_modules/chrome-devtools-frontend/front_end/persistence/FileSystemWorkspaceBinding.js(342,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'ProjectStore'. -node_modules/chrome-devtools-frontend/front_end/persistence/FileSystemWorkspaceBinding.js(352,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'ProjectStore'. -node_modules/chrome-devtools-frontend/front_end/persistence/FileSystemWorkspaceBinding.js(360,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/persistence/FileSystemWorkspaceBinding.js(362,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'ProjectStore'. -node_modules/chrome-devtools-frontend/front_end/persistence/FileSystemWorkspaceBinding.js(381,22): error TS2345: Argument of type 'string' is not assignable to parameter of type 'boolean'. -node_modules/chrome-devtools-frontend/front_end/persistence/FileSystemWorkspaceBinding.js(402,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'ProjectStore'. -node_modules/chrome-devtools-frontend/front_end/persistence/FileSystemWorkspaceBinding.js(423,9): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'ProjectStore'. -node_modules/chrome-devtools-frontend/front_end/persistence/FileSystemWorkspaceBinding.js(432,23): error TS2339: Property 'intersectOrdered' does not exist on type 'string[]'. -node_modules/chrome-devtools-frontend/front_end/persistence/FileSystemWorkspaceBinding.js(432,61): error TS2339: Property 'naturalOrderComparator' does not exist on type 'StringConstructor'. -node_modules/chrome-devtools-frontend/front_end/persistence/FileSystemWorkspaceBinding.js(444,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'ProjectStore'. -node_modules/chrome-devtools-frontend/front_end/persistence/FileSystemWorkspaceBinding.js(478,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'ProjectStore'. -node_modules/chrome-devtools-frontend/front_end/persistence/FileSystemWorkspaceBinding.js(499,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'ProjectStore'. -node_modules/chrome-devtools-frontend/front_end/persistence/FileSystemWorkspaceBinding.js(507,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'ProjectStore'. -node_modules/chrome-devtools-frontend/front_end/persistence/FileSystemWorkspaceBinding.js(519,9): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'ProjectStore'. -node_modules/chrome-devtools-frontend/front_end/persistence/FileSystemWorkspaceBinding.js(526,106): error TS2345: Argument of type '(value: any) => void' is not assignable to parameter of type '() => any'. -node_modules/chrome-devtools-frontend/front_end/persistence/FileSystemWorkspaceBinding.js(535,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'ProjectStore'. -node_modules/chrome-devtools-frontend/front_end/persistence/FileSystemWorkspaceBinding.js(544,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'ProjectStore'. -node_modules/chrome-devtools-frontend/front_end/persistence/IsolatedFileSystem.js(75,10): error TS2339: Property 'catchException' does not exist on type 'Promise'. -node_modules/chrome-devtools-frontend/front_end/persistence/IsolatedFileSystem.js(83,59): error TS2339: Property 'message' does not exist on type 'DOMError'. -node_modules/chrome-devtools-frontend/front_end/persistence/IsolatedFileSystem.js(97,17): error TS2304: Cannot find name 'FileEntry'. -node_modules/chrome-devtools-frontend/front_end/persistence/IsolatedFileSystem.js(104,17): error TS2304: Cannot find name 'FileError'. -node_modules/chrome-devtools-frontend/front_end/persistence/IsolatedFileSystem.js(117,35): error TS2339: Property 'valuesArray' does not exist on type 'Set'. -node_modules/chrome-devtools-frontend/front_end/persistence/IsolatedFileSystem.js(124,36): error TS2339: Property 'valuesArray' does not exist on type 'Set'. -node_modules/chrome-devtools-frontend/front_end/persistence/IsolatedFileSystem.js(160,25): error TS2304: Cannot find name 'FileEntry'. -node_modules/chrome-devtools-frontend/front_end/persistence/IsolatedFileSystem.js(189,25): error TS2304: Cannot find name 'DirectoryEntry'. -node_modules/chrome-devtools-frontend/front_end/persistence/IsolatedFileSystem.js(210,25): error TS2304: Cannot find name 'DirectoryEntry'. -node_modules/chrome-devtools-frontend/front_end/persistence/IsolatedFileSystem.js(239,27): error TS2304: Cannot find name 'FileEntry'. -node_modules/chrome-devtools-frontend/front_end/persistence/IsolatedFileSystem.js(267,17): error TS2304: Cannot find name 'FileEntry'. -node_modules/chrome-devtools-frontend/front_end/persistence/IsolatedFileSystem.js(278,17): error TS2304: Cannot find name 'FileError'. -node_modules/chrome-devtools-frontend/front_end/persistence/IsolatedFileSystem.js(317,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/persistence/IsolatedFileSystem.js(344,16): error TS2345: Argument of type 'string | ArrayBuffer' is not assignable to parameter of type 'string'. - Type 'ArrayBuffer' is not assignable to type 'string'. -node_modules/chrome-devtools-frontend/front_end/persistence/IsolatedFileSystem.js(344,31): error TS2345: Argument of type 'string | ArrayBuffer' is not assignable to parameter of type 'string'. - Type 'ArrayBuffer' is not assignable to type 'string'. -node_modules/chrome-devtools-frontend/front_end/persistence/IsolatedFileSystem.js(357,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/persistence/IsolatedFileSystem.js(364,17): error TS2304: Cannot find name 'FileEntry'. -node_modules/chrome-devtools-frontend/front_end/persistence/IsolatedFileSystem.js(372,17): error TS2304: Cannot find name 'FileWriter'. -node_modules/chrome-devtools-frontend/front_end/persistence/IsolatedFileSystem.js(404,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/persistence/IsolatedFileSystem.js(418,17): error TS2304: Cannot find name 'FileEntry'. -node_modules/chrome-devtools-frontend/front_end/persistence/IsolatedFileSystem.js(432,17): error TS2304: Cannot find name 'Entry'. -node_modules/chrome-devtools-frontend/front_end/persistence/IsolatedFileSystem.js(441,17): error TS2304: Cannot find name 'FileEntry'. -node_modules/chrome-devtools-frontend/front_end/persistence/IsolatedFileSystem.js(459,17): error TS2304: Cannot find name 'FileEntry'. -node_modules/chrome-devtools-frontend/front_end/persistence/IsolatedFileSystem.js(476,15): error TS2304: Cannot find name 'DirectoryEntry'. -node_modules/chrome-devtools-frontend/front_end/persistence/IsolatedFileSystem.js(477,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/persistence/IsolatedFileSystem.js(477,32): error TS2304: Cannot find name 'FileEntry'. -node_modules/chrome-devtools-frontend/front_end/persistence/IsolatedFileSystem.js(507,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/persistence/IsolatedFileSystem.js(507,32): error TS2304: Cannot find name 'FileEntry'. -node_modules/chrome-devtools-frontend/front_end/persistence/IsolatedFileSystem.js(513,17): error TS2304: Cannot find name 'DirectoryEntry'. -node_modules/chrome-devtools-frontend/front_end/persistence/IsolatedFileSystem.js(529,54): error TS2339: Property 'valuesArray' does not exist on type 'Set'. -node_modules/chrome-devtools-frontend/front_end/persistence/IsolatedFileSystem.js(564,70): error TS2339: Property 'asRegExp' does not exist on type 'Setting'. -node_modules/chrome-devtools-frontend/front_end/persistence/IsolatedFileSystemManager.js(40,29): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/persistence/IsolatedFileSystemManager.js(45,27): error TS2339: Property 'events' does not exist on type 'InspectorFrontendHostAPI'. -node_modules/chrome-devtools-frontend/front_end/persistence/IsolatedFileSystemManager.js(47,27): error TS2339: Property 'events' does not exist on type 'InspectorFrontendHostAPI'. -node_modules/chrome-devtools-frontend/front_end/persistence/IsolatedFileSystemManager.js(49,27): error TS2339: Property 'events' does not exist on type 'InspectorFrontendHostAPI'. -node_modules/chrome-devtools-frontend/front_end/persistence/IsolatedFileSystemManager.js(51,27): error TS2339: Property 'events' does not exist on type 'InspectorFrontendHostAPI'. -node_modules/chrome-devtools-frontend/front_end/persistence/IsolatedFileSystemManager.js(53,27): error TS2339: Property 'events' does not exist on type 'InspectorFrontendHostAPI'. -node_modules/chrome-devtools-frontend/front_end/persistence/IsolatedFileSystemManager.js(55,27): error TS2339: Property 'events' does not exist on type 'InspectorFrontendHostAPI'. -node_modules/chrome-devtools-frontend/front_end/persistence/IsolatedFileSystemManager.js(57,27): error TS2339: Property 'events' does not exist on type 'InspectorFrontendHostAPI'. -node_modules/chrome-devtools-frontend/front_end/persistence/IsolatedFileSystemManager.js(62,17): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/persistence/IsolatedFileSystemManager.js(73,27): error TS2339: Property 'events' does not exist on type 'InspectorFrontendHostAPI'. -node_modules/chrome-devtools-frontend/front_end/persistence/IsolatedFileSystemManager.js(162,7): error TS2739: Type 'IsolatedFileSystem' is missing the following properties from type '{ type: string; fileSystemName: string; rootURL: string; fileSystemPath: string; }': fileSystemName, rootURL, fileSystemPath -node_modules/chrome-devtools-frontend/front_end/persistence/IsolatedFileSystemManager.js(211,21): error TS2345: Argument of type 'string' is not assignable to parameter of type 'K'. - 'K' could be instantiated with an arbitrary type which could be unrelated to 'string'. -node_modules/chrome-devtools-frontend/front_end/persistence/IsolatedFileSystemManager.js(222,30): error TS2339: Property 'valuesArray' does not exist on type 'Map'. -node_modules/chrome-devtools-frontend/front_end/persistence/IsolatedFileSystemManager.js(264,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/persistence/NetworkPersistenceManager.js(140,55): error TS2339: Property 'hashCode' does not exist on type 'StringConstructor'. -node_modules/chrome-devtools-frontend/front_end/persistence/NetworkPersistenceManager.js(299,56): error TS2339: Property 'fileSystemPath' does not exist on type 'Project'. -node_modules/chrome-devtools-frontend/front_end/persistence/NetworkPersistenceManager.js(424,30): error TS2339: Property 'fileSystemPath' does not exist on type 'Project'. -node_modules/chrome-devtools-frontend/front_end/persistence/Persistence.js(21,51): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/persistence/Persistence.js(58,23): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/persistence/Persistence.js(58,66): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/persistence/Persistence.js(62,5): error TS2322: Type 'MappingSystem' is not assignable to type 'Automapping | DefaultMapping'. - Type 'MappingSystem' is missing the following properties from type 'DefaultMapping': _workspace, _fileSystemMapping, _bindings, _onBindingCreated, and 10 more. -node_modules/chrome-devtools-frontend/front_end/persistence/Persistence.js(323,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/persistence/Persistence.js(326,47): error TS2345: Argument of type 'UISourceCode' is not assignable to parameter of type 'K'. - 'K' could be instantiated with an arbitrary type which could be unrelated to 'UISourceCode'. -node_modules/chrome-devtools-frontend/front_end/persistence/Persistence.js(331,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/persistence/Persistence.js(334,50): error TS2345: Argument of type 'UISourceCode' is not assignable to parameter of type 'K'. - 'K' could be instantiated with an arbitrary type which could be unrelated to 'UISourceCode'. -node_modules/chrome-devtools-frontend/front_end/persistence/Persistence.js(341,52): error TS2345: Argument of type 'UISourceCode' is not assignable to parameter of type 'K'. - 'K' could be instantiated with an arbitrary type which could be unrelated to 'UISourceCode'. -node_modules/chrome-devtools-frontend/front_end/persistence/Persistence.js(343,74): error TS2345: Argument of type 'UISourceCode' is not assignable to parameter of type 'K'. - 'K' could be instantiated with an arbitrary type which could be unrelated to 'UISourceCode'. -node_modules/chrome-devtools-frontend/front_end/persistence/Persistence.js(345,16): error TS2339: Property 'call' does not exist on type 'V'. -node_modules/chrome-devtools-frontend/front_end/persistence/PersistenceActions.js(18,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ContextMenuProvider' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/persistence/PersistenceUtils.js(72,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Object'. -node_modules/chrome-devtools-frontend/front_end/persistence/WorkspaceSettingsTab.js(10,31): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/persistence/WorkspaceSettingsTab.js(13,42): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/persistence/WorkspaceSettingsTab.js(57,26): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/persistence/WorkspaceSettingsTab.js(61,18): error TS2339: Property 'style' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/persistence/WorkspaceSettingsTab.js(89,84): error TS2339: Property 'fileSystemPath' does not exist on type 'Project'. -node_modules/chrome-devtools-frontend/front_end/persistence/WorkspaceSettingsTab.js(112,26): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(30,30): error TS2304: Cannot find name 'Arguments'. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(31,5): error TS2300: Duplicate identifier 'ArrayLike'. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(46,18): error TS2339: Property 'findAll' does not exist on type 'String'. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(59,18): error TS2339: Property 'reverse' does not exist on type 'String'. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(66,18): error TS2339: Property 'replaceControlCharacters' does not exist on type 'String'. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(75,18): error TS2339: Property 'isWhitespace' does not exist on type 'String'. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(76,23): error TS2345: Argument of type 'String' is not assignable to parameter of type 'string'. - 'string' is a primitive, but 'String' is a wrapper object. Prefer using 'string' when possible. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(82,18): error TS2339: Property 'computeLineEndings' does not exist on type 'String'. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(83,22): error TS2339: Property 'findAll' does not exist on type 'String'. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(92,18): error TS2339: Property 'escapeCharacters' does not exist on type 'String'. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(117,8): error TS2339: Property 'regexSpecialCharacters' does not exist on type 'StringConstructor'. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(125,15): error TS2339: Property 'escapeCharacters' does not exist on type 'String'. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(125,39): error TS2339: Property 'regexSpecialCharacters' does not exist on type 'StringConstructor'. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(132,8): error TS2339: Property 'filterRegex' does not exist on type 'StringConstructor'. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(133,27): error TS2339: Property 'regexSpecialCharacters' does not exist on type 'StringConstructor'. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(198,1): error TS2322: Type '(maxLength: number) => string' is not assignable to type '() => string'. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(250,8): error TS2339: Property 'hashCode' does not exist on type 'StringConstructor'. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(275,8): error TS2339: Property 'isDigitAt' does not exist on type 'StringConstructor'. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(320,8): error TS2339: Property 'naturalOrderComparator' does not exist on type 'StringConstructor'. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(335,19): error TS2345: Argument of type 'string' is not assignable to parameter of type 'number'. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(336,19): error TS2345: Argument of type 'string' is not assignable to parameter of type 'number'. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(342,18): error TS2362: The left-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(342,27): error TS2363: The right-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(364,8): error TS2339: Property 'caseInsensetiveComparator' does not exist on type 'StringConstructor'. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(378,8): error TS2339: Property 'constrain' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(391,8): error TS2339: Property 'gcd' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(395,19): error TS2339: Property 'gcd' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(402,8): error TS2339: Property 'toFixedIfFloating' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(403,23): error TS2345: Argument of type 'string' is not assignable to parameter of type 'number'. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(412,16): error TS2339: Property 'isValid' does not exist on type 'Date'. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(419,16): error TS2339: Property 'toISO8601Compact' does not exist on type 'Date'. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(635,32): error TS2339: Property 'partition' does not exist on type 'number[]'. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(716,84): error TS2339: Property 'lowerBound' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(718,84): error TS2339: Property 'upperBound' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(720,83): error TS2339: Property 'lowerBound' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(722,83): error TS2339: Property 'upperBound' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(724,85): error TS2339: Property 'lowerBound' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(735,22): error TS2339: Property 'lowerBound' does not exist on type 'S[]'. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(829,8): error TS2339: Property 'sprintf' does not exist on type 'StringConstructor'. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(830,17): error TS2339: Property 'vsprintf' does not exist on type 'StringConstructor'. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(835,49): error TS1110: Type expected. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(838,8): error TS2339: Property 'tokenizeFormatString' does not exist on type 'StringConstructor'. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(867,16): error TS2339: Property 'isDigitAt' does not exist on type 'StringConstructor'. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(870,21): error TS2339: Property 'isDigitAt' does not exist on type 'StringConstructor'. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(890,21): error TS2339: Property 'isDigitAt' does not exist on type 'StringConstructor'. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(911,8): error TS2339: Property 'standardFormatters' does not exist on type 'StringConstructor'. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(941,8): error TS2339: Property 'vsprintf' does not exist on type 'StringConstructor'. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(943,8): error TS2339: Property 'format' does not exist on type 'StringConstructor'. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(944,41): error TS2339: Property 'standardFormatters' does not exist on type 'StringConstructor'. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(954,49): error TS1110: Type expected. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(961,8): error TS2339: Property 'format' does not exist on type 'StringConstructor'. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(963,51): error TS2345: Argument of type 'string' is not assignable to parameter of type 'Q'. - 'Q' could be instantiated with an arbitrary type which could be unrelated to 'string'. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(978,42): error TS2339: Property 'tokenizeFormatString' does not exist on type 'StringConstructor'. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(1000,31): error TS2345: Argument of type 'string' is not assignable to parameter of type 'Q'. - 'Q' could be instantiated with an arbitrary type which could be unrelated to 'string'. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(1057,39): error TS2339: Property 'regexSpecialCharacters' does not exist on type 'StringConstructor'. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(1108,15): error TS2339: Property 'valuesArray' does not exist on type 'Set'. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(1116,15): error TS2339: Property 'firstValue' does not exist on type 'Set'. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(1126,15): error TS2339: Property 'addAll' does not exist on type 'Set'. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(1136,15): error TS2339: Property 'containsAll' does not exist on type 'Set'. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(1148,15): error TS2339: Property 'remove' does not exist on type 'Map'. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(1155,21): error TS2304: Cannot find name 'VALUE'. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(1157,15): error TS2339: Property 'valuesArray' does not exist on type 'Map'. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(1162,21): error TS2304: Cannot find name 'KEY'. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(1164,15): error TS2339: Property 'keysArray' does not exist on type 'Map'. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(1169,24): error TS2304: Cannot find name 'KEY'. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(1169,30): error TS2304: Cannot find name 'VALUE'. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(1171,15): error TS2339: Property 'inverse' does not exist on type 'Map'. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(1200,13): error TS2345: Argument of type 'V' is not assignable to parameter of type 'V'. - 'V' could be instantiated with an arbitrary type which could be unrelated to 'V'. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(1211,5): error TS2719: Type 'Set' is not assignable to type 'Set'. Two different types with this name exist, but they are unrelated. - Type 'V' is not assignable to type 'V'. Two different types with this name exist, but they are unrelated. - 'V' could be instantiated with an arbitrary type which could be unrelated to 'V'. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(1231,20): error TS2345: Argument of type 'V' is not assignable to parameter of type 'V'. - 'V' could be instantiated with an arbitrary type which could be unrelated to 'V'. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(1267,22): error TS2339: Property 'keysArray' does not exist on type 'Map>'. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(1277,14): error TS2339: Property 'pushAll' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(1277,40): error TS2339: Property 'valuesArray' does not exist on type 'Set'. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(1299,35): error TS2345: Argument of type 'number' is not assignable to parameter of type 'string'. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(1321,12): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(1324,6): error TS2339: Property 'setImmediate' does not exist on type 'Window & typeof globalThis'. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(1326,41): error TS2556: Expected 0 arguments, but got 1 or more. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(1331,12): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(1335,19): error TS2339: Property 'spread' does not exist on type 'Promise'. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(1348,19): error TS2339: Property 'catchException' does not exist on type 'Promise'. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(1357,22): error TS2304: Cannot find name 'VALUE'. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(1358,32): error TS2304: Cannot find name 'VALUE'. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(1358,73): error TS2304: Cannot find name 'VALUE'. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(1359,23): error TS2304: Cannot find name 'VALUE'. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(1361,15): error TS2339: Property 'diff' does not exist on type 'Map'. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(1362,23): error TS2339: Property 'keysArray' does not exist on type 'Map'. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(1363,25): error TS2339: Property 'keysArray' does not exist on type 'Map'. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(1402,12): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/platform/utilities.js(1424,31): error TS1110: Type expected. -node_modules/chrome-devtools-frontend/front_end/product_registry/BadgePool.js(55,29): error TS2339: Property 'createChild' does not exist on type 'DocumentFragment'. -node_modules/chrome-devtools-frontend/front_end/product_registry/BadgePool.js(108,36): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/product_registry/BadgePool.js(113,18): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/product_registry/BadgePool.js(134,18): error TS2339: Property 'parentNodeOrShadowHost' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/product_registry/BadgePool.js(151,29): error TS2339: Property 'createChild' does not exist on type 'DocumentFragment'. -node_modules/chrome-devtools-frontend/front_end/product_registry/BadgePool.js(162,45): error TS2339: Property 'boxInWindow' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/product_registry/BadgePool.js(175,36): error TS2339: Property '_colorGenerator' does not exist on type 'typeof BadgePool'. -node_modules/chrome-devtools-frontend/front_end/product_registry/BadgePool.js(176,33): error TS2339: Property '_colorGenerator' does not exist on type 'typeof BadgePool'. -node_modules/chrome-devtools-frontend/front_end/product_registry/BadgePool.js(179,38): error TS2339: Property '_colorGenerator' does not exist on type 'typeof BadgePool'. -node_modules/chrome-devtools-frontend/front_end/product_registry/ProductRegistry.js(22,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/product_registry/ProductRegistry.js(28,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/product_registry/ProductRegistry.js(34,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/product_registry/ProductRegistry.js(48,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'RegistryStub' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/product_registry/ProductRegistry.js(57,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'RegistryStub' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/product_registry/ProductRegistry.js(66,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'RegistryStub' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(1559,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(1563,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(1604,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(1605,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(1606,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(1865,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(2136,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(2136,64): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(2136,86): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(2208,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(2269,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(2270,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(2322,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(2323,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(2503,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(2856,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(2857,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(2858,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(2859,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(2860,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(2861,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(2862,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(2863,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(2864,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(2865,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(3126,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(3572,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(3573,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(3574,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(3575,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(3576,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(3747,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(3748,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(3770,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(3771,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(3772,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(3773,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(3774,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(3775,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(3776,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(3780,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(3819,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(3826,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(3873,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(3874,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(3957,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(3958,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(4068,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(4069,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(4138,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(4139,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(4203,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(4230,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(4260,104): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(4264,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(4265,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(4266,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(4312,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(4480,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(4832,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(4833,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(4834,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(4835,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(5127,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(5137,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(5159,70): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(5175,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(5186,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(5202,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(5249,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(5522,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(5523,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(5524,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(5525,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(5539,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(5565,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(5612,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(5613,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(5614,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(5615,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(5616,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(5617,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(5618,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(5619,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(5684,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(5789,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(5820,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(5852,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(5858,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(5859,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(5860,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(5970,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(5971,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(5972,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6145,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6151,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6152,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6153,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6154,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6180,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6181,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6182,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6183,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6184,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6185,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6186,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6187,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6193,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6194,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6195,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6196,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6197,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6198,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6199,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6217,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6218,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6225,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6227,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6228,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6229,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6230,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6231,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6232,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6233,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6243,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6270,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6272,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6276,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6294,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6296,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6297,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6298,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6299,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6300,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6303,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6305,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6323,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6324,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6325,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6326,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6327,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6333,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6334,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6335,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6336,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6337,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6338,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6339,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6340,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6341,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6342,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6343,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6344,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6345,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6346,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6347,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6348,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6349,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6350,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6351,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6360,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6361,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6362,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6363,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6364,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6365,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6369,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6382,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6388,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6389,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6404,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6405,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6406,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6425,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6441,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6442,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6445,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6481,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6521,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6560,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6573,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6574,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6575,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6576,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6577,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6578,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6579,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6580,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6581,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6582,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6583,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6615,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6620,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6629,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6637,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6661,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6668,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6675,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6689,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6690,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6699,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6726,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6735,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6737,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6738,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryData.js(6741,42): error TS2741: Property 'type' is missing in type '{ product: number; }' but required in type '{ product: number; type: number; }'. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryImpl.js(17,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'Registry' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryImpl.js(29,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'Registry' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryImpl.js(70,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'Registry' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/product_registry_impl/ProductRegistryImpl.js(99,63): error TS2345: Argument of type '{}' is not assignable to parameter of type '{ [x: string]: { name: string; type: number; }; }'. - Index signature is missing in type '{}'. -node_modules/chrome-devtools-frontend/front_end/profiler/BottomUpProfileDataGrid.js(83,15): error TS2339: Property '_remainingNodeInfos' does not exist on type 'ProfileDataGridNode'. -node_modules/chrome-devtools-frontend/front_end/profiler/BottomUpProfileDataGrid.js(196,26): error TS2339: Property 'UID' does not exist on type 'ProfileNode'. -node_modules/chrome-devtools-frontend/front_end/profiler/BottomUpProfileDataGrid.js(197,23): error TS2339: Property 'UID' does not exist on type 'ProfileNode'. -node_modules/chrome-devtools-frontend/front_end/profiler/BottomUpProfileDataGrid.js(212,68): error TS2339: Property 'UID' does not exist on type 'ProfileNode'. -node_modules/chrome-devtools-frontend/front_end/profiler/BottomUpProfileDataGrid.js(219,40): error TS2339: Property 'UID' does not exist on type 'ProfileNode'. -node_modules/chrome-devtools-frontend/front_end/profiler/BottomUpProfileDataGrid.js(253,19): error TS2339: Property '_takePropertiesFromProfileDataGridNode' does not exist on type 'ProfileDataGridNode'. -node_modules/chrome-devtools-frontend/front_end/profiler/BottomUpProfileDataGrid.js(259,21): error TS2339: Property '_keepOnlyChild' does not exist on type 'ProfileDataGridNode'. -node_modules/chrome-devtools-frontend/front_end/profiler/BottomUpProfileDataGrid.js(281,21): error TS2339: Property 'remove' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/profiler/CPUProfileFlameChart.js(45,49): error TS2551: Property '_colorGenerator' does not exist on type 'typeof ProfileFlameChartDataProvider'. Did you mean 'colorGenerator'? -node_modules/chrome-devtools-frontend/front_end/profiler/CPUProfileFlameChart.js(52,46): error TS2551: Property '_colorGenerator' does not exist on type 'typeof ProfileFlameChartDataProvider'. Did you mean 'colorGenerator'? -node_modules/chrome-devtools-frontend/front_end/profiler/CPUProfileFlameChart.js(54,51): error TS2551: Property '_colorGenerator' does not exist on type 'typeof ProfileFlameChartDataProvider'. Did you mean 'colorGenerator'? -node_modules/chrome-devtools-frontend/front_end/profiler/CPUProfileFlameChart.js(61,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ProfileFlameChartDataProvider' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/profiler/CPUProfileFlameChart.js(62,17): error TS2339: Property '_cpuProfile' does not exist on type 'ProfileFlameChartDataProvider'. -node_modules/chrome-devtools-frontend/front_end/profiler/CPUProfileFlameChart.js(69,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ProfileFlameChartDataProvider' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/profiler/CPUProfileFlameChart.js(70,17): error TS2339: Property '_cpuProfile' does not exist on type 'ProfileFlameChartDataProvider'. -node_modules/chrome-devtools-frontend/front_end/profiler/CPUProfileFlameChart.js(79,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ProfileFlameChartDataProvider' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/profiler/CPUProfileFlameChart.js(80,19): error TS2339: Property 'preciseMillisToString' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/profiler/CPUProfileFlameChart.js(87,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ProfileFlameChartDataProvider' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/profiler/CPUProfileFlameChart.js(88,17): error TS2551: Property '_maxStackDepth' does not exist on type 'ProfileFlameChartDataProvider'. Did you mean 'maxStackDepth'? -node_modules/chrome-devtools-frontend/front_end/profiler/CPUProfileFlameChart.js(95,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ProfileFlameChartDataProvider' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/profiler/CPUProfileFlameChart.js(96,17): error TS2551: Property '_timelineData' does not exist on type 'ProfileFlameChartDataProvider'. Did you mean 'timelineData'? -node_modules/chrome-devtools-frontend/front_end/profiler/CPUProfileFlameChart.js(111,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ProfileFlameChartDataProvider' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/profiler/CPUProfileFlameChart.js(120,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ProfileFlameChartDataProvider' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/profiler/CPUProfileFlameChart.js(121,17): error TS2339: Property '_entryNodes' does not exist on type 'ProfileFlameChartDataProvider'. -node_modules/chrome-devtools-frontend/front_end/profiler/CPUProfileFlameChart.js(129,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ProfileFlameChartDataProvider' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/profiler/CPUProfileFlameChart.js(130,21): error TS2339: Property '_entryNodes' does not exist on type 'ProfileFlameChartDataProvider'. -node_modules/chrome-devtools-frontend/front_end/profiler/CPUProfileFlameChart.js(139,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ProfileFlameChartDataProvider' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/profiler/CPUProfileFlameChart.js(144,23): error TS2339: Property '_entryNodes' does not exist on type 'ProfileFlameChartDataProvider'. -node_modules/chrome-devtools-frontend/front_end/profiler/CPUProfileFlameChart.js(153,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ProfileFlameChartDataProvider' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/profiler/CPUProfileFlameChart.js(154,21): error TS2339: Property '_entryNodes' does not exist on type 'ProfileFlameChartDataProvider'. -node_modules/chrome-devtools-frontend/front_end/profiler/CPUProfileFlameChart.js(171,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ProfileFlameChartDataProvider' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/profiler/CPUProfileFlameChart.js(180,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ProfileFlameChartDataProvider' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/profiler/CPUProfileFlameChart.js(189,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ProfileFlameChartDataProvider' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/profiler/CPUProfileFlameChart.js(265,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/profiler/CPUProfileFlameChart.js(270,43): error TS2339: Property '_entryNodes' does not exist on type 'FlameChartDataProvider'. -node_modules/chrome-devtools-frontend/front_end/profiler/CPUProfileFlameChart.js(291,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/profiler/CPUProfileFlameChart.js(300,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/profiler/CPUProfileFlameChart.js(309,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/profiler/CPUProfileFlameChart.js(319,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/profiler/CPUProfileFlameChart.js(327,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/profiler/CPUProfileFlameChart.js(356,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'OverviewCalculator' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/profiler/CPUProfileFlameChart.js(366,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'OverviewCalculator' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/profiler/CPUProfileFlameChart.js(374,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'OverviewCalculator' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/profiler/CPUProfileFlameChart.js(382,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'OverviewCalculator' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/profiler/CPUProfileFlameChart.js(390,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'OverviewCalculator' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/profiler/CPUProfileFlameChart.js(398,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'OverviewCalculator' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/profiler/CPUProfileFlameChart.js(414,44): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/profiler/CPUProfileFlameChart.js(429,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/profiler/CPUProfileFlameChart.js(438,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/profiler/CPUProfileFlameChart.js(481,40): error TS2339: Property 'window' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/profiler/CPUProfileView.js(85,29): error TS2339: Property 'instance' does not exist on type 'typeof CPUProfileType'. -node_modules/chrome-devtools-frontend/front_end/profiler/CPUProfileView.js(145,43): error TS2694: Namespace 'Protocol' has no exported member 'Profiler'. -node_modules/chrome-devtools-frontend/front_end/profiler/CPUProfileView.js(225,25): error TS2694: Namespace 'Protocol' has no exported member 'Profiler'. -node_modules/chrome-devtools-frontend/front_end/profiler/CPUProfileView.js(240,24): error TS2694: Namespace 'Protocol' has no exported member 'Profiler'. -node_modules/chrome-devtools-frontend/front_end/profiler/CPUProfileView.js(264,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'NodeFormatter' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/profiler/CPUProfileView.js(274,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'NodeFormatter' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/profiler/CPUProfileView.js(283,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'NodeFormatter' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/profiler/CPUProfileView.js(390,21): error TS2339: Property 'secondsToString' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/profiler/CPUProfileView.js(404,70): error TS2339: Property 'secondsToString' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/profiler/CPUProfileView.js(405,71): error TS2339: Property 'secondsToString' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapProfileView.js(54,38): error TS2339: Property 'instance' does not exist on type 'typeof SamplingHeapProfileType'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapProfileView.js(181,25): error TS2694: Namespace 'Protocol' has no exported member 'HeapProfiler'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapProfileView.js(193,24): error TS2694: Namespace 'Protocol' has no exported member 'HeapProfiler'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapProfileView.js(196,60): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapProfileView.js(214,24): error TS2694: Namespace 'Protocol' has no exported member 'HeapProfiler'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapProfileView.js(221,26): error TS2694: Namespace 'Protocol' has no exported member 'HeapProfiler'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapProfileView.js(257,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'NodeFormatter' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapProfileView.js(258,19): error TS2339: Property 'withThousandsSeparator' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapProfileView.js(267,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'NodeFormatter' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapProfileView.js(276,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'NodeFormatter' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapProfileView.js(320,47): error TS2339: Property 'withThousandsSeparator' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapProfileView.js(389,59): error TS2339: Property 'bytesToString' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapProfileView.js(390,60): error TS2339: Property 'bytesToString' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapProfilerPanel.js(24,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'ProfilesPanel'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapProfilerPanel.js(65,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'ProfilesPanel'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapProfilerPanel.js(88,24): error TS2694: Namespace 'Protocol' has no exported member 'HeapProfiler'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapProfilerPanel.js(100,14): error TS2339: Property 'selectLiveObject' does not exist on type 'Widget'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotDataGrids.js(34,41): error TS2417: Class static side 'typeof HeapSnapshotSortableDataGrid' incorrectly extends base class static side 'typeof DataGrid'. - Types of property 'Events' are incompatible. - Type '{ ContentShown: symbol; SortingComplete: symbol; }' is missing the following properties from type '{ SelectedNode: symbol; DeselectedNode: symbol; OpenedNode: symbol; SortingChanged: symbol; PaddingChanged: symbol; }': SelectedNode, DeselectedNode, OpenedNode, SortingChanged, PaddingChanged -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotDataGrids.js(34,41): error TS2417: Class static side 'typeof HeapSnapshotSortableDataGrid' incorrectly extends base class static side 'typeof DataGrid'. - Types of property 'Events' are incompatible. - Type '{ ContentShown: symbol; SortingComplete: symbol; }' is not assignable to type '{ SelectedNode: symbol; DeselectedNode: symbol; OpenedNode: symbol; SortingChanged: symbol; PaddingChanged: symbol; }'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotDataGrids.js(124,27): error TS2339: Property 'enclosingNodeOrSelfWithNodeName' does not exist on type 'EventTarget'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotDataGrids.js(153,24): error TS2694: Namespace 'Protocol' has no exported member 'HeapProfiler'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotDataGrids.js(191,27): error TS2339: Property '_sortFields' does not exist on type 'HeapSnapshotSortableDataGrid'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotDataGrids.js(329,72): error TS2339: Property 'offsetHeight' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotDataGrids.js(375,36): error TS2339: Property 'filteredOut' does not exist on type 'HeapSnapshotGridNode'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotDataGrids.js(375,57): error TS2339: Property 'filteredOut' does not exist on type 'HeapSnapshotGridNode'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotDataGrids.js(387,36): error TS2339: Property 'filteredOut' does not exist on type 'HeapSnapshotGridNode'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotDataGrids.js(387,57): error TS2339: Property 'filteredOut' does not exist on type 'HeapSnapshotGridNode'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotDataGrids.js(401,36): error TS2339: Property 'filteredOut' does not exist on type 'HeapSnapshotGridNode'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotDataGrids.js(401,57): error TS2339: Property 'filteredOut' does not exist on type 'HeapSnapshotGridNode'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotDataGrids.js(431,76): error TS2339: Property 'peekLast' does not exist on type 'HeapSnapshotGridNode[]'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotDataGrids.js(433,57): error TS2339: Property 'offsetHeight' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotDataGrids.js(465,34): error TS2339: Property 'peekLast' does not exist on type 'HeapSnapshotGridNode[]'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotDataGrids.js(474,19): error TS2551: Property '_allChildren' does not exist on type 'DataGridNode'. Did you mean '_hasChildren'? -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotDataGrids.js(474,43): error TS2551: Property '_allChildren' does not exist on type 'DataGridNode'. Did you mean '_hasChildren'? -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotDataGrids.js(522,27): error TS2339: Property 'offsetTop' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotDataGrids.js(523,40): error TS2339: Property 'offsetHeight' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotDataGrids.js(603,43): error TS2417: Class static side 'typeof HeapSnapshotRetainmentDataGrid' incorrectly extends base class static side 'typeof HeapSnapshotContainmentDataGrid'. - Types of property 'Events' are incompatible. - Type '{ ExpandRetainersComplete: symbol; }' is missing the following properties from type '{ ContentShown: symbol; SortingComplete: symbol; }': ContentShown, SortingComplete -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotDataGrids.js(603,43): error TS2417: Class static side 'typeof HeapSnapshotRetainmentDataGrid' incorrectly extends base class static side 'typeof HeapSnapshotContainmentDataGrid'. - Types of property 'Events' are incompatible. - Type '{ ExpandRetainersComplete: symbol; }' is not assignable to type '{ ContentShown: symbol; SortingComplete: symbol; }'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotDataGrids.js(700,24): error TS2694: Namespace 'Protocol' has no exported member 'HeapProfiler'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotDataGrids.js(713,67): error TS2339: Property '_name' does not exist on type 'HeapSnapshotGridNode'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotDataGrids.js(717,30): error TS2339: Property 'populateNodeBySnapshotObjectId' does not exist on type 'HeapSnapshotGridNode'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(63,16): error TS2352: Conversion of type '{ fieldName1: string; ascending1: string; fieldName2: string; ascending2: string; }' to type 'ComparatorConfig' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first. - Types of property 'ascending1' are incompatible. - Type 'string' is not comparable to type 'boolean'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(104,14): error TS2339: Property '_searchMatched' does not exist on type 'HeapSnapshotGridNode'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(137,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(197,23): error TS2339: Property 'snapshot' does not exist on type 'DataGrid'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(222,41): error TS2339: Property 'comparator' does not exist on type 'HeapSnapshotGridNode'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(232,48): error TS2339: Property 'comparator' does not exist on type 'HeapSnapshotGridNode'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(265,25): error TS2339: Property '_childHashForEntity' does not exist on type 'HeapSnapshotGridNode'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(271,45): error TS2339: Property '_createChildNode' does not exist on type 'HeapSnapshotGridNode'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(322,50): error TS2339: Property 'setEndPosition' does not exist on type 'DataGridNode'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(365,50): error TS2339: Property 'setStartPosition' does not exist on type 'DataGridNode'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(393,32): error TS2339: Property '_childHashForNode' does not exist on type 'HeapSnapshotGridNode'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(400,47): error TS2339: Property 'comparator' does not exist on type 'HeapSnapshotGridNode'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(412,15): error TS2339: Property 'sort' does not exist on type 'DataGridNode'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(433,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(438,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(445,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(451,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(487,29): error TS2339: Property 'snapshot' does not exist on type 'HeapSnapshotSortableDataGrid'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(492,29): error TS2339: Property 'withThousandsSeparator' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(493,30): error TS2339: Property 'withThousandsSeparator' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(504,38): error TS2339: Property 'snapshot' does not exist on type 'HeapSnapshotSortableDataGrid'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(514,14): error TS2339: Property '_searchMatched' does not exist on type 'HeapSnapshotGenericObjectNode'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(563,9): error TS2339: Property 'style' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(580,12): error TS2339: Property 'style' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(581,10): error TS2339: Property 'heapSnapshotNode' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(871,36): error TS2339: Property 'withThousandsSeparator' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(874,34): error TS2339: Property 'withThousandsSeparator' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(966,23): error TS2339: Property 'withThousandsSeparator' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(968,29): error TS2339: Property 'withThousandsSeparator' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(969,30): error TS2339: Property 'withThousandsSeparator' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(981,27): error TS2339: Property 'snapshot' does not exist on type 'HeapSnapshotSortableDataGrid'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(1019,14): error TS2339: Property '_searchMatched' does not exist on type 'HeapSnapshotConstructorNode'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(1029,81): error TS2339: Property 'snapshot' does not exist on type 'HeapSnapshotSortableDataGrid'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(1086,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'HeapSnapshotDiffNodesProvider' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(1096,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'HeapSnapshotDiffNodesProvider' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(1104,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'HeapSnapshotDiffNodesProvider' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(1114,9): error TS4112: This member cannot have an 'override' modifier because its containing class 'HeapSnapshotDiffNodesProvider' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(1140,22): error TS2339: Property 'pushAll' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(1151,9): error TS4112: This member cannot have an 'override' modifier because its containing class 'HeapSnapshotDiffNodesProvider' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(1178,28): error TS2339: Property 'withThousandsSeparator' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(1179,30): error TS2339: Property 'withThousandsSeparator' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(1180,67): error TS2339: Property 'withThousandsSeparator' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(1181,27): error TS2339: Property 'withThousandsSeparator' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(1182,29): error TS2339: Property 'withThousandsSeparator' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(1183,65): error TS2339: Property 'withThousandsSeparator' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(1194,14): error TS2339: Property 'snapshot' does not exist on type 'HeapSnapshotSortableDataGrid'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(1194,53): error TS2339: Property 'baseSnapshot' does not exist on type 'HeapSnapshotSortableDataGrid'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(1195,14): error TS2339: Property 'baseSnapshot' does not exist on type 'HeapSnapshotSortableDataGrid'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(1215,14): error TS2339: Property 'isAddedNotRemoved' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(1216,83): error TS2339: Property 'snapshot' does not exist on type 'HeapSnapshotSortableDataGrid'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(1218,83): error TS2339: Property 'baseSnapshot' does not exist on type 'HeapSnapshotSortableDataGrid'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(1286,27): error TS2339: Property 'withThousandsSeparator' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(1287,23): error TS2339: Property 'withThousandsSeparator' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(1288,26): error TS2339: Property 'withThousandsSeparator' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(1289,22): error TS2339: Property 'withThousandsSeparator' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(1306,40): error TS2339: Property 'snapshot' does not exist on type 'HeapSnapshotSortableDataGrid'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(1314,7): error TS2322: Type 'AllocationGridNode' is not assignable to type 'this'. - 'AllocationGridNode' is assignable to the constraint of type 'this', but 'this' could be instantiated with a different subtype of constraint 'AllocationGridNode'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(1321,39): error TS2339: Property '_createComparator' does not exist on type 'HeapSnapshotSortableDataGrid'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(1347,44): error TS2339: Property 'heapProfilerModel' does not exist on type 'HeapSnapshotSortableDataGrid'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(1349,38): error TS2339: Property '_linkifier' does not exist on type 'HeapSnapshotSortableDataGrid'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotProxy.js(36,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotProxy.js(43,29): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotProxy.js(53,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotProxy.js(85,15): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotProxy.js(129,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotProxy.js(161,40): error TS2339: Property 'keysArray' does not exist on type 'Map any>'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotProxy.js(231,15): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotProxy.js(263,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotProxy.js(276,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'HeapSnapshotProxyObject'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotProxy.js(283,9): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'HeapSnapshotProxyObject'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotProxy.js(498,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'HeapSnapshotProxyObject'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotProxy.js(506,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'HeapSnapshotProxyObject'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotProxy.js(516,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'HeapSnapshotProxyObject'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotProxy.js(525,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'HeapSnapshotProxyObject'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(48,9): error TS2345: Argument of type 'string' is not assignable to parameter of type 'symbol'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(113,57): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(186,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'SimpleView'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(192,24): error TS2694: Namespace 'Protocol' has no exported member 'HeapProfiler'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(195,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'SimpleView'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(206,20): error TS2339: Property 'setDataSource' does not exist on type 'DataGrid'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(243,80): error TS2339: Property 'bytesToString' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(256,17): error TS2345: Argument of type 'ToolbarText' is not assignable to parameter of type 'ToolbarComboBox | ToolbarInput'. - Type 'ToolbarText' is missing the following properties from type 'ToolbarInput': _prompt, _proxyElement, setValue, _internalSetValue, and 4 more. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(272,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'SimpleView'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(280,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'SimpleView'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(287,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'SimpleView'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(306,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'SimpleView'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(335,39): error TS2339: Property 'revealObjectByHeapSnapshotId' does not exist on type 'DataGrid'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(340,103): error TS2339: Property 'nodeFilter' does not exist on type 'DataGrid'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(344,50): error TS2551: Property 'jumpBackwards' does not exist on type 'SearchConfig'. Did you mean 'jumpBackward'? -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(351,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'SimpleView'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(361,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'SimpleView'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(375,37): error TS2339: Property 'revealObjectByHeapSnapshotId' does not exist on type 'DataGrid'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(397,25): error TS2339: Property '_loadPromise' does not exist on type 'ProfileHeader'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(405,24): error TS2345: Argument of type 'SearchConfig' is not assignable to parameter of type 'SearchConfig'. - Property 'toSearchRegex' is missing in type 'SearchConfig' but required in type 'SearchConfig'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(410,20): error TS2339: Property 'filterSelectIndexChanged' does not exist on type 'DataGrid'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(418,24): error TS2345: Argument of type 'SearchConfig' is not assignable to parameter of type 'SearchConfig'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(434,22): error TS2339: Property 'populateContextMenu' does not exist on type 'DataGrid'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(451,65): error TS2339: Property 'allocationNodeId' does not exist on type 'DataGridNode'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(492,76): error TS2339: Property 'value' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(500,31): error TS2339: Property 'snapshot' does not exist on type 'DataGrid'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(507,18): error TS2339: Property 'snapshot' does not exist on type 'DataGrid'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(508,16): error TS2339: Property 'setDataSource' does not exist on type 'DataGrid'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(514,53): error TS2339: Property '_loadPromise' does not exist on type 'ProfileHeader'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(524,42): error TS2339: Property 'selectedOptions' does not exist on type 'EventTarget'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(554,24): error TS2345: Argument of type 'SearchConfig' is not assignable to parameter of type 'SearchConfig'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(559,24): error TS2694: Namespace 'Protocol' has no exported member 'HeapProfiler'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(563,37): error TS2339: Property 'revealObjectByHeapSnapshotId' does not exist on type 'DataGrid'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(575,29): error TS2339: Property 'enclosingNodeOrSelfWithNodeName' does not exist on type 'EventTarget'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(576,28): error TS2339: Property 'enclosingNodeOrSelfWithNodeName' does not exist on type 'EventTarget'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(667,11): error TS2345: Argument of type 'string' is not assignable to parameter of type 'symbol'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(875,25): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(947,60): error TS2345: Argument of type 'this' is not assignable to parameter of type 'SDKModelObserver'. - Type 'HeapSnapshotProfileType' is not assignable to type 'SDKModelObserver'. - Types of property 'modelAdded' are incompatible. - Type '(heapProfilerModel: HeapProfilerModel) => void' is not assignable to type '(model: T) => void'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(961,3): error TS2416: Property 'modelAdded' in type 'HeapSnapshotProfileType' is not assignable to the same property in base type 'SDKModelObserver'. - Type '(heapProfilerModel: HeapProfilerModel) => void' is not assignable to type '(model: T) => void'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(961,3): error TS2416: Property 'modelAdded' in type 'HeapSnapshotProfileType' is not assignable to the same property in base type 'SDKModelObserver'. - Type '(heapProfilerModel: HeapProfilerModel) => void' is not assignable to type '(model: T) => void'. - Types of parameters 'heapProfilerModel' and 'model' are incompatible. - Type 'T' is not assignable to type 'HeapProfilerModel'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(961,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'ProfileType'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(969,3): error TS2416: Property 'modelRemoved' in type 'HeapSnapshotProfileType' is not assignable to the same property in base type 'SDKModelObserver'. - Type '(heapProfilerModel: HeapProfilerModel) => void' is not assignable to type '(model: T) => void'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(969,3): error TS2416: Property 'modelRemoved' in type 'HeapSnapshotProfileType' is not assignable to the same property in base type 'SDKModelObserver'. - Type '(heapProfilerModel: HeapProfilerModel) => void' is not assignable to type '(model: T) => void'. - Types of parameters 'heapProfilerModel' and 'model' are incompatible. - Type 'T' is not assignable to type 'HeapProfilerModel'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(969,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'ProfileType'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(1042,5): error TS2740: Type 'ProfileHeader' is missing the following properties from type 'HeapProfileHeader': _heapProfilerModel, maxJSObjectId, _workerProxy, _receiver, and 22 more. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(1056,33): error TS2339: Property 'transferChunk' does not exist on type 'ProfileHeader'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(1069,15): error TS2339: Property '_prepareToLoad' does not exist on type 'ProfileHeader'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(1086,35): error TS2345: Argument of type 'string' is not assignable to parameter of type 'symbol'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(1155,35): error TS2345: Argument of type 'string' is not assignable to parameter of type 'symbol'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(1207,33): error TS2339: Property '_profileSamples' does not exist on type 'ProfileHeader'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(1211,35): error TS2345: Argument of type 'string' is not assignable to parameter of type 'symbol'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(1217,51): error TS2339: Property '_heapProfilerModel' does not exist on type 'ProfileHeader'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(1219,35): error TS2345: Argument of type 'string' is not assignable to parameter of type 'symbol'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(1225,13): error TS2339: Property '_finishLoad' does not exist on type 'ProfileHeader'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(1430,30): error TS2339: Property 'bytesToString' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(1458,24): error TS2339: Property '_snapshotReceived' does not exist on type 'ProfileType'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(1476,61): error TS2339: Property 'toISO8601Compact' does not exist on type 'Date'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(1547,44): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(1557,77): error TS2339: Property '_profileSamples' does not exist on type 'HeapProfileHeader'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(1561,11): error TS2345: Argument of type 'string' is not assignable to parameter of type 'symbol'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(1563,11): error TS2345: Argument of type 'string' is not assignable to parameter of type 'symbol'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(1578,9): error TS2345: Argument of type 'string' is not assignable to parameter of type 'symbol'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(1580,9): error TS2345: Argument of type 'string' is not assignable to parameter of type 'symbol'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(1598,20): error TS2345: Argument of type 'number' is not assignable to parameter of type 'boolean'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(1604,79): error TS2339: Property 'peekLast' does not exist on type 'number[]'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(1719,26): error TS2339: Property 'bytesToString' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(1823,36): error TS2339: Property 'constrain' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(1850,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'OverviewCalculator' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(1860,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'OverviewCalculator' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(1861,19): error TS2339: Property 'secondsToString' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(1868,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'OverviewCalculator' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(1876,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'OverviewCalculator' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(1884,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'OverviewCalculator' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(1892,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'OverviewCalculator' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(1907,33): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(1915,44): error TS2339: Property 'withThousandsSeparator' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(1966,35): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(1972,33): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(1987,18): error TS2339: Property 'removeChildren' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfileDataGrid.js(48,37): error TS2339: Property 'deoptReason' does not exist on type 'ProfileNode'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfileDataGrid.js(54,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfileDataGrid.js(97,15): error TS2339: Property 'self' does not exist on type 'ProfileDataGridNode | ProfileDataGridTree'. - Property 'self' does not exist on type 'ProfileDataGridTree'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfileDataGrid.js(131,19): error TS2339: Property '_populated' does not exist on type 'ProfileDataGridNode | ProfileDataGridTree'. - Property '_populated' does not exist on type 'ProfileDataGridNode'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfileDataGrid.js(133,15): error TS2339: Property '_populated' does not exist on type 'ProfileDataGridNode | ProfileDataGridTree'. - Property '_populated' does not exist on type 'ProfileDataGridNode'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfileDataGrid.js(135,15): error TS2339: Property 'populateChildren' does not exist on type 'ProfileDataGridNode | ProfileDataGridTree'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfileDataGrid.js(153,49): error TS2339: Property '_searchMatchedSelfColumn' does not exist on type 'ProfileDataGridNode'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfileDataGrid.js(158,49): error TS2339: Property '_searchMatchedTotalColumn' does not exist on type 'ProfileDataGridNode'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfileDataGrid.js(163,49): error TS2339: Property '_searchMatchedFunctionColumn' does not exist on type 'ProfileDataGridNode'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfileDataGrid.js(170,14): error TS2339: Property 'createTextChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfileDataGrid.js(176,20): error TS2339: Property 'style' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfileDataGrid.js(194,20): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfileDataGrid.js(201,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfileDataGrid.js(218,29): error TS2339: Property 'callUID' does not exist on type 'DataGridNode'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfileDataGrid.js(407,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfileDataGrid.js(412,48): error TS2322: Type 'this' is not assignable to type 'ProfileDataGridNode'. - Type 'ProfileDataGridTree' is missing the following properties from type 'ProfileDataGridNode': profileNode, callUID, self, functionName, and 74 more. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfileDataGrid.js(479,34): error TS2339: Property '_searchMatchedSelfColumn' does not exist on type 'ProfileDataGridNode'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfileDataGrid.js(480,34): error TS2339: Property '_searchMatchedTotalColumn' does not exist on type 'ProfileDataGridNode'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfileDataGrid.js(481,34): error TS2339: Property '_searchMatchedFunctionColumn' does not exist on type 'ProfileDataGridNode'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfileDataGrid.js(486,33): error TS2339: Property '_searchMatchedSelfColumn' does not exist on type 'ProfileDataGridNode'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfileDataGrid.js(488,33): error TS2339: Property '_searchMatchedTotalColumn' does not exist on type 'ProfileDataGridNode'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfileDataGrid.js(491,33): error TS2339: Property '_searchMatchedSelfColumn' does not exist on type 'ProfileDataGridNode'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfileDataGrid.js(493,33): error TS2339: Property '_searchMatchedTotalColumn' does not exist on type 'ProfileDataGridNode'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfileDataGrid.js(498,33): error TS2339: Property '_searchMatchedSelfColumn' does not exist on type 'ProfileDataGridNode'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfileDataGrid.js(500,33): error TS2339: Property '_searchMatchedTotalColumn' does not exist on type 'ProfileDataGridNode'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfileDataGrid.js(505,33): error TS2339: Property '_searchMatchedSelfColumn' does not exist on type 'ProfileDataGridNode'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfileDataGrid.js(507,33): error TS2339: Property '_searchMatchedTotalColumn' does not exist on type 'ProfileDataGridNode'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfileDataGrid.js(510,33): error TS2339: Property '_searchMatchedSelfColumn' does not exist on type 'ProfileDataGridNode'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfileDataGrid.js(512,33): error TS2339: Property '_searchMatchedTotalColumn' does not exist on type 'ProfileDataGridNode'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfileDataGrid.js(517,33): error TS2339: Property '_searchMatchedSelfColumn' does not exist on type 'ProfileDataGridNode'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfileDataGrid.js(519,33): error TS2339: Property '_searchMatchedTotalColumn' does not exist on type 'ProfileDataGridNode'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfileDataGrid.js(525,29): error TS2339: Property '_searchMatchedFunctionColumn' does not exist on type 'ProfileDataGridNode'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfileDataGrid.js(527,31): error TS2339: Property '_searchMatchedSelfColumn' does not exist on type 'ProfileDataGridNode'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfileDataGrid.js(527,79): error TS2339: Property '_searchMatchedTotalColumn' does not exist on type 'ProfileDataGridNode'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfileDataGrid.js(528,31): error TS2339: Property '_searchMatchedFunctionColumn' does not exist on type 'ProfileDataGridNode'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfileDataGrid.js(544,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ProfileDataGridTree' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfileDataGrid.js(564,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ProfileDataGridTree' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfileDataGrid.js(582,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ProfileDataGridTree' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfileDataGrid.js(592,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ProfileDataGridTree' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfileDataGrid.js(603,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ProfileDataGridTree' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfileDataGrid.js(611,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ProfileDataGridTree' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfileDataGrid.js(640,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfileDataGrid.js(647,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfileDataGrid.js(653,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfileHeader.js(63,14): error TS2339: Property '_tempFile' does not exist on type 'ProfileHeader'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfileHeader.js(64,12): error TS2339: Property '_tempFile' does not exist on type 'ProfileHeader'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfileHeader.js(101,24): error TS2694: Namespace 'Protocol' has no exported member 'Profiler'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfileLauncherView.js(43,41): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfileLauncherView.js(75,25): error TS2339: Property 'title' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfileLauncherView.js(120,38): error TS2339: Property 'radioElement' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfileLauncherView.js(140,45): error TS2339: Property 'checked' does not exist on type 'HTMLOptionElement'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfileLauncherView.js(141,56): error TS2339: Property '_profileType' does not exist on type 'HTMLOptionElement'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfileType.js(239,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfileType.js(244,24): error TS2694: Namespace 'Protocol' has no exported member 'HeapProfiler'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfileView.js(20,7): error TS2345: Argument of type '{ id: string; title: string; width: string; fixedWidth: true; sortable: true; sort: string; }' is not assignable to parameter of type 'ColumnDescriptor'. - Object literal may only specify known properties, and 'width' does not exist in type 'ColumnDescriptor'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfileView.js(25,67): error TS2345: Argument of type '{ id: string; title: string; width: string; fixedWidth: true; sortable: true; }' is not assignable to parameter of type 'ColumnDescriptor'. - Object literal may only specify known properties, and 'width' does not exist in type 'ColumnDescriptor'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfileView.js(26,18): error TS2345: Argument of type '{ id: string; title: string; disclosure: true; sortable: true; }' is not assignable to parameter of type 'ColumnDescriptor'. - Type '{ id: string; title: string; disclosure: true; sortable: true; }' is missing the following properties from type 'ColumnDescriptor': titleDOMFragment, sort, align, fixedWidth, and 4 more. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfileView.js(57,23): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfileView.js(136,59): error TS2339: Property 'profile' does not exist on type 'ProfileView'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfileView.js(136,78): error TS2339: Property 'adjustedTotal' does not exist on type 'ProfileView'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfileView.js(147,59): error TS2339: Property 'profile' does not exist on type 'ProfileView'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfileView.js(147,78): error TS2339: Property 'adjustedTotal' does not exist on type 'ProfileView'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfileView.js(193,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'SimpleView'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfileView.js(201,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'SimpleView'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfileView.js(208,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'SimpleView'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfileView.js(218,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'SimpleView'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfileView.js(225,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'SimpleView'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfileView.js(232,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'SimpleView'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfileView.js(263,35): error TS2339: Property '_entryNodes' does not exist on type 'FlameChartDataProvider'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfileView.js(264,30): error TS2339: Property '_profileHeader' does not exist on type 'ProfileView'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfileView.js(276,15): error TS2339: Property 'profile' does not exist on type 'ProfileView'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfileView.js(284,65): error TS2339: Property 'value' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfileView.js(329,30): error TS2339: Property 'focus' does not exist on type 'ProfileDataGridTree'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfileView.js(347,30): error TS2339: Property 'exclude' does not exist on type 'ProfileDataGridTree'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfileView.js(368,30): error TS2554: Expected 2 arguments, but got 1. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfileView.js(404,68): error TS2339: Property 'bytesToString' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfileView.js(419,9): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'ProfileHeader'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfileView.js(426,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'ProfileHeader'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfileView.js(459,56): error TS2339: Property 'toISO8601Compact' does not exist on type 'Date'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfileView.js(488,44): error TS2694: Namespace 'Protocol' has no exported member 'Profiler'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfileView.js(503,24): error TS2694: Namespace 'Protocol' has no exported member 'Profiler'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfilesPanel.js(109,15): error TS2339: Property 'key' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfilesPanel.js(109,45): error TS2339: Property 'altKey' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfilesPanel.js(111,20): error TS2339: Property 'key' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfilesPanel.js(111,48): error TS2339: Property 'altKey' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfilesPanel.js(114,13): error TS2339: Property 'consume' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfilesPanel.js(129,28): error TS2339: Property '_fileSelectorElement' does not exist on type 'typeof ProfilesPanel'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfilesPanel.js(233,23): error TS2339: Property 'removeChildren' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfilesPanel.js(302,36): error TS2339: Property 'isSelfOrAncestor' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfilesPanel.js(304,68): error TS2339: Property 'click' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfilesPanel.js(310,31): error TS2339: Property 'click' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfilesPanel.js(352,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'PanelWithSidebar'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfilesPanel.js(374,29): error TS2339: Property 'syncToolbarItems' does not exist on type 'Widget'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfilesPanel.js(383,24): error TS2694: Namespace 'Protocol' has no exported member 'HeapProfiler'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfilesPanel.js(386,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'PanelWithSidebar'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfilesPanel.js(494,9): error TS2322: Type 'ProfileGroupSidebarTreeElement' is not assignable to type 'this'. - 'this' could be instantiated with an arbitrary type which could be unrelated to 'ProfileGroupSidebarTreeElement'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfilesPanel.js(530,9): error TS2322: Type 'ProfileGroupSidebarTreeElement' is not assignable to type 'this'. - 'this' could be instantiated with an arbitrary type which could be unrelated to 'ProfileGroupSidebarTreeElement'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfilesPanel.js(596,48): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfilesPanel.js(598,49): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfilesPanel.js(650,33): error TS2339: Property 'enclosingNodeOrSelfWithClass' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfilesPanel.js(701,26): error TS2339: Property 'appendChildren' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfilesPanel.js(714,32): error TS2339: Property '_fileSelectorElement' does not exist on type 'typeof ProfilesPanel'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfilesPanel.js(714,87): error TS2339: Property '_fileSelectorElement' does not exist on type 'typeof ProfilesPanel'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfilesPanel.js(766,62): error TS2339: Property 'profile' does not exist on type 'TreeElement'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfilesPanel.js(775,26): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfilesPanel.js(776,26): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfilesPanel.js(807,26): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfilesPanel.js(808,26): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfilesPanel.js(844,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'ProfilesPanel'. -node_modules/chrome-devtools-frontend/front_end/profiler/TargetsComboBoxController.js(30,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'TargetsComboBoxController' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/profiler/TargetsComboBoxController.js(31,38): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/profiler/TargetsComboBoxController.js(36,27): error TS2339: Property 'selectedIndex' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/profiler/TargetsComboBoxController.js(48,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'TargetsComboBoxController' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/profiler/TargetsComboBoxController.js(49,39): error TS2339: Property 'remove' does not exist on type 'Map'. -node_modules/chrome-devtools-frontend/front_end/profiler/TargetsComboBoxController.js(60,12): error TS2339: Property 'text' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/profiler/TargetsComboBoxController.js(64,66): error TS2339: Property 'selectedIndex' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/profiler/TargetsComboBoxController.js(97,25): error TS2339: Property 'selectedIndex' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/profiler/TopDownProfileDataGrid.js(63,17): error TS2339: Property 'populate' does not exist on type 'TopDownProfileDataGridTree | TopDownProfileDataGridNode'. - Property 'populate' does not exist on type 'TopDownProfileDataGridTree'. -node_modules/chrome-devtools-frontend/front_end/profiler/TopDownProfileDataGrid.js(65,15): error TS2339: Property 'save' does not exist on type 'TopDownProfileDataGridTree | TopDownProfileDataGridNode'. -node_modules/chrome-devtools-frontend/front_end/protocol/InspectorBackend.js(148,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/protocol/InspectorBackend.js(168,40): error TS2345: Argument of type 'S' is not assignable to parameter of type 'S'. - 'S' could be instantiated with an arbitrary type which could be unrelated to 'S'. -node_modules/chrome-devtools-frontend/front_end/protocol/InspectorBackend.js(170,24): error TS2345: Argument of type 'S' is not assignable to parameter of type 'T'. - 'T' could be instantiated with an arbitrary type which could be unrelated to 'S'. -node_modules/chrome-devtools-frontend/front_end/protocol/InspectorBackend.js(194,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/protocol/InspectorBackend.js(201,17): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/protocol/InspectorBackend.js(202,20): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/protocol/InspectorBackend.js(229,36): error TS2339: Property 'deprecatedRunAfterPendingDispatches' does not exist on type 'typeof InspectorBackend'. -node_modules/chrome-devtools-frontend/front_end/protocol/InspectorBackend.js(230,33): error TS2339: Property 'deprecatedRunAfterPendingDispatches' does not exist on type 'typeof InspectorBackend'. -node_modules/chrome-devtools-frontend/front_end/protocol/InspectorBackend.js(233,36): error TS2339: Property 'sendRawMessageForTesting' does not exist on type 'typeof InspectorBackend'. -node_modules/chrome-devtools-frontend/front_end/protocol/InspectorBackend.js(234,33): error TS2339: Property 'sendRawMessageForTesting' does not exist on type 'typeof InspectorBackend'. -node_modules/chrome-devtools-frontend/front_end/protocol/InspectorBackend.js(272,15): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/protocol/InspectorBackend.js(300,15): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/protocol/InspectorBackend.js(309,14): error TS2339: Property 'methodName' does not exist on type '(arg0: any) => any'. -node_modules/chrome-devtools-frontend/front_end/protocol/InspectorBackend.js(310,14): error TS2339: Property 'domain' does not exist on type '(arg0: any) => any'. -node_modules/chrome-devtools-frontend/front_end/protocol/InspectorBackend.js(312,16): error TS2339: Property 'sendRequestTime' does not exist on type '(arg0: any) => any'. -node_modules/chrome-devtools-frontend/front_end/protocol/InspectorBackend.js(320,15): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/protocol/InspectorBackend.js(422,49): error TS2339: Property 'context' does not exist on type 'Console'. -node_modules/chrome-devtools-frontend/front_end/protocol/InspectorBackend.js(422,67): error TS2339: Property 'context' does not exist on type 'Console'. -node_modules/chrome-devtools-frontend/front_end/protocol/InspectorBackend.js(463,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/protocol/InspectorBackend.js(541,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/protocol/InspectorBackend.js(634,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/protocol/InspectorBackend.js(716,49): error TS2339: Property 'context' does not exist on type 'Console'. -node_modules/chrome-devtools-frontend/front_end/protocol/InspectorBackend.js(716,67): error TS2339: Property 'context' does not exist on type 'Console'. -node_modules/chrome-devtools-frontend/front_end/quick_open/CommandMenu.js(18,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/quick_open/CommandMenu.js(202,18): error TS2339: Property 'removeChildren' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/quick_open/CommandMenu.js(203,35): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/quick_open/CommandMenu.js(204,24): error TS2339: Property 'hashCode' does not exist on type 'StringConstructor'. -node_modules/chrome-devtools-frontend/front_end/quick_open/CommandMenu.js(207,18): error TS2339: Property 'createTextChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/quick_open/CommandMenu.js(247,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/quick_open/CommandMenu.js(314,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ShowActionDelegate' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/quick_open/FilteredListWidget.js(24,47): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/quick_open/FilteredListWidget.js(33,57): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/quick_open/FilteredListWidget.js(40,50): error TS2345: Argument of type 'this' is not assignable to parameter of type 'ListDelegate'. - Type 'FilteredListWidget' is not assignable to type 'ListDelegate'. - Types of property 'createElementForItem' are incompatible. - Type '(item: number) => Element' is not assignable to type '(item: T) => Element'. -node_modules/chrome-devtools-frontend/front_end/quick_open/FilteredListWidget.js(175,23): error TS2339: Property '_scoringTimer' does not exist on type 'FilteredListWidget'. -node_modules/chrome-devtools-frontend/front_end/quick_open/FilteredListWidget.js(178,17): error TS2339: Property '_scoringTimer' does not exist on type 'FilteredListWidget'. -node_modules/chrome-devtools-frontend/front_end/quick_open/FilteredListWidget.js(180,17): error TS2339: Property '_refreshListWithCurrentResult' does not exist on type 'FilteredListWidget'. -node_modules/chrome-devtools-frontend/front_end/quick_open/FilteredListWidget.js(215,3): error TS2416: Property 'createElementForItem' in type 'FilteredListWidget' is not assignable to the same property in base type 'ListDelegate'. - Type '(item: number) => Element' is not assignable to type '(item: T) => Element'. -node_modules/chrome-devtools-frontend/front_end/quick_open/FilteredListWidget.js(215,3): error TS2416: Property 'createElementForItem' in type 'FilteredListWidget' is not assignable to the same property in base type 'ListDelegate'. - Type '(item: number) => Element' is not assignable to type '(item: T) => Element'. - Types of parameters 'item' and 'item' are incompatible. - Type 'T' is not assignable to type 'number'. -node_modules/chrome-devtools-frontend/front_end/quick_open/FilteredListWidget.js(215,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/quick_open/FilteredListWidget.js(218,36): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/quick_open/FilteredListWidget.js(219,39): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/quick_open/FilteredListWidget.js(230,3): error TS2416: Property 'heightForItem' in type 'FilteredListWidget' is not assignable to the same property in base type 'ListDelegate'. - Type '(item: number) => number' is not assignable to type '(item: T) => number'. -node_modules/chrome-devtools-frontend/front_end/quick_open/FilteredListWidget.js(230,3): error TS2416: Property 'heightForItem' in type 'FilteredListWidget' is not assignable to the same property in base type 'ListDelegate'. - Type '(item: number) => number' is not assignable to type '(item: T) => number'. - Types of parameters 'item' and 'item' are incompatible. - Type 'T' is not assignable to type 'number'. -node_modules/chrome-devtools-frontend/front_end/quick_open/FilteredListWidget.js(230,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/quick_open/FilteredListWidget.js(240,3): error TS2416: Property 'isItemSelectable' in type 'FilteredListWidget' is not assignable to the same property in base type 'ListDelegate'. - Type '(item: number) => boolean' is not assignable to type '(item: T) => boolean'. -node_modules/chrome-devtools-frontend/front_end/quick_open/FilteredListWidget.js(240,3): error TS2416: Property 'isItemSelectable' in type 'FilteredListWidget' is not assignable to the same property in base type 'ListDelegate'. - Type '(item: number) => boolean' is not assignable to type '(item: T) => boolean'. - Types of parameters 'item' and 'item' are incompatible. - Type 'T' is not assignable to type 'number'. -node_modules/chrome-devtools-frontend/front_end/quick_open/FilteredListWidget.js(240,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/quick_open/FilteredListWidget.js(251,3): error TS2416: Property 'selectedItemChanged' in type 'FilteredListWidget' is not assignable to the same property in base type 'ListDelegate'. - Type '(from: number, to: number, fromElement: Element, toElement: Element) => void' is not assignable to type '(from: T, to: T, fromElement: Element, toElement: Element) => void'. -node_modules/chrome-devtools-frontend/front_end/quick_open/FilteredListWidget.js(251,3): error TS2416: Property 'selectedItemChanged' in type 'FilteredListWidget' is not assignable to the same property in base type 'ListDelegate'. - Type '(from: number, to: number, fromElement: Element, toElement: Element) => void' is not assignable to type '(from: T, to: T, fromElement: Element, toElement: Element) => void'. - Types of parameters 'from' and 'from' are incompatible. - Type 'T' is not assignable to type 'number'. -node_modules/chrome-devtools-frontend/front_end/quick_open/FilteredListWidget.js(251,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/quick_open/FilteredListWidget.js(266,11): error TS2339: Property 'consume' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/quick_open/FilteredListWidget.js(308,14): error TS2339: Property '_scoringTimer' does not exist on type 'FilteredListWidget'. -node_modules/chrome-devtools-frontend/front_end/quick_open/FilteredListWidget.js(309,25): error TS2339: Property '_scoringTimer' does not exist on type 'FilteredListWidget'. -node_modules/chrome-devtools-frontend/front_end/quick_open/FilteredListWidget.js(310,19): error TS2339: Property '_scoringTimer' does not exist on type 'FilteredListWidget'. -node_modules/chrome-devtools-frontend/front_end/quick_open/FilteredListWidget.js(312,16): error TS2339: Property '_refreshListWithCurrentResult' does not exist on type 'FilteredListWidget'. -node_modules/chrome-devtools-frontend/front_end/quick_open/FilteredListWidget.js(313,14): error TS2339: Property '_refreshListWithCurrentResult' does not exist on type 'FilteredListWidget'. -node_modules/chrome-devtools-frontend/front_end/quick_open/FilteredListWidget.js(331,38): error TS2339: Property 'filterRegex' does not exist on type 'StringConstructor'. -node_modules/chrome-devtools-frontend/front_end/quick_open/FilteredListWidget.js(342,31): error TS2339: Property 'constrain' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/quick_open/FilteredListWidget.js(360,19): error TS2339: Property '_scoringTimer' does not exist on type 'FilteredListWidget'. -node_modules/chrome-devtools-frontend/front_end/quick_open/FilteredListWidget.js(375,34): error TS2339: Property 'upperBound' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/quick_open/FilteredListWidget.js(380,42): error TS2339: Property 'peekLast' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/quick_open/FilteredListWidget.js(384,37): error TS2339: Property 'peekLast' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/quick_open/FilteredListWidget.js(390,12): error TS2339: Property '_refreshListWithCurrentResult' does not exist on type 'FilteredListWidget'. -node_modules/chrome-devtools-frontend/front_end/quick_open/FilteredListWidget.js(394,14): error TS2339: Property '_scoringTimer' does not exist on type 'FilteredListWidget'. -node_modules/chrome-devtools-frontend/front_end/quick_open/FilteredListWidget.js(405,12): error TS2339: Property '_refreshListWithCurrentResult' does not exist on type 'FilteredListWidget'. -node_modules/chrome-devtools-frontend/front_end/quick_open/FilteredListWidget.js(415,17): error TS2339: Property '_refreshListWithCurrentResult' does not exist on type 'FilteredListWidget'. -node_modules/chrome-devtools-frontend/front_end/quick_open/FilteredListWidget.js(418,40): error TS2339: Property 'offsetHeight' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/quick_open/FilteredListWidget.js(422,28): error TS2339: Property 'offsetHeight' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/quick_open/FilteredListWidget.js(454,19): error TS2339: Property 'key' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/quick_open/FilteredListWidget.js(475,13): error TS2339: Property 'consume' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/quick_open/HelpQuickOpen.js(56,38): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/quick_open/HelpQuickOpen.js(58,18): error TS2339: Property 'createTextChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/quick_open/QuickOpen.js(80,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ShowActionDelegate' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/resources/AppManifestView.js(55,60): error TS2345: Argument of type 'this' is not assignable to parameter of type 'SDKModelObserver'. - Type 'AppManifestView' is not assignable to type 'SDKModelObserver'. - Types of property 'modelAdded' are incompatible. - Type '(resourceTreeModel: ResourceTreeModel) => void' is not assignable to type '(model: T) => void'. -node_modules/chrome-devtools-frontend/front_end/resources/AppManifestView.js(62,3): error TS2416: Property 'modelAdded' in type 'AppManifestView' is not assignable to the same property in base type 'SDKModelObserver'. - Type '(resourceTreeModel: ResourceTreeModel) => void' is not assignable to type '(model: T) => void'. -node_modules/chrome-devtools-frontend/front_end/resources/AppManifestView.js(62,3): error TS2416: Property 'modelAdded' in type 'AppManifestView' is not assignable to the same property in base type 'SDKModelObserver'. - Type '(resourceTreeModel: ResourceTreeModel) => void' is not assignable to type '(model: T) => void'. - Types of parameters 'resourceTreeModel' and 'model' are incompatible. - Type 'T' is not assignable to type 'ResourceTreeModel'. -node_modules/chrome-devtools-frontend/front_end/resources/AppManifestView.js(62,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/resources/AppManifestView.js(74,3): error TS2416: Property 'modelRemoved' in type 'AppManifestView' is not assignable to the same property in base type 'SDKModelObserver'. - Type '(resourceTreeModel: ResourceTreeModel) => void' is not assignable to type '(model: T) => void'. -node_modules/chrome-devtools-frontend/front_end/resources/AppManifestView.js(74,3): error TS2416: Property 'modelRemoved' in type 'AppManifestView' is not assignable to the same property in base type 'SDKModelObserver'. - Type '(resourceTreeModel: ResourceTreeModel) => void' is not assignable to type '(model: T) => void'. - Types of parameters 'resourceTreeModel' and 'model' are incompatible. - Type 'T' is not assignable to type 'ResourceTreeModel'. -node_modules/chrome-devtools-frontend/front_end/resources/AppManifestView.js(74,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/resources/AppManifestView.js(88,31): error TS2694: Namespace 'Protocol' has no exported member 'Page'. -node_modules/chrome-devtools-frontend/front_end/resources/AppManifestView.js(116,25): error TS2339: Property 'removeChildren' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/resources/AppManifestView.js(120,84): error TS2345: Argument of type '{ text: string; }' is not assignable to parameter of type 'LinkifyURLOptions'. - Type '{ text: string; }' is missing the following properties from type 'LinkifyURLOptions': className, lineNumber, columnNumber, preventClick, maxLength -node_modules/chrome-devtools-frontend/front_end/resources/AppManifestView.js(139,32): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/resources/AppManifestView.js(163,14): error TS2339: Property 'pageAgent' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/resources/ApplicationCacheItemsView.js(42,28): error TS2339: Property 'style' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/resources/ApplicationCacheItemsView.js(44,22): error TS2339: Property 'style' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/resources/ApplicationCacheItemsView.js(59,32): error TS2339: Property 'style' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/resources/ApplicationCacheItemsView.js(117,22): error TS2339: Property 'type' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/resources/ApplicationCacheItemsView.js(131,30): error TS2339: Property 'type' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/resources/ApplicationCacheItemsView.js(134,30): error TS2339: Property 'type' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/resources/ApplicationCacheItemsView.js(223,26): error TS2339: Property 'bytesToString' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/resources/ApplicationCacheItemsView.js(225,12): error TS2339: Property 'resource' does not exist on type 'DataGridNode'. -node_modules/chrome-devtools-frontend/front_end/resources/ApplicationCacheModel.js(39,12): error TS2339: Property 'registerApplicationCacheDispatcher' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/resources/ApplicationCacheModel.js(40,26): error TS2339: Property 'applicationCacheAgent' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/resources/ApplicationCacheModel.js(166,34): error TS2694: Namespace 'Protocol' has no exported member 'ApplicationCache'. -node_modules/chrome-devtools-frontend/front_end/resources/ApplicationCacheModel.js(193,26): error TS2694: Namespace 'Protocol' has no exported member 'ApplicationCacheDispatcher'. -node_modules/chrome-devtools-frontend/front_end/resources/ApplicationCacheModel.js(207,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ApplicationCacheDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/resources/ApplicationCacheModel.js(215,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ApplicationCacheDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/resources/ApplicationPanelSidebar.js(137,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/resources/ApplicationPanelSidebar.js(161,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/resources/ApplicationPanelSidebar.js(214,47): error TS2339: Property 'valuesArray' does not exist on type 'Map'. -node_modules/chrome-devtools-frontend/front_end/resources/ApplicationPanelSidebar.js(282,31): error TS2339: Property 'asParsedURL' does not exist on type 'string'. -node_modules/chrome-devtools-frontend/front_end/resources/ApplicationPanelSidebar.js(336,34): error TS2339: Property 'remove' does not exist on type 'Map'. -node_modules/chrome-devtools-frontend/front_end/resources/ApplicationPanelSidebar.js(594,20): error TS2339: Property 'itemURL' does not exist on type 'BaseStorageTreeElement'. -node_modules/chrome-devtools-frontend/front_end/resources/ApplicationPanelSidebar.js(825,31): error TS2339: Property 'remove' does not exist on type 'SWCacheTreeElement[]'. -node_modules/chrome-devtools-frontend/front_end/resources/ApplicationPanelSidebar.js(1094,35): error TS2339: Property 'remove' does not exist on type 'IDBDatabaseTreeElement[]'. -node_modules/chrome-devtools-frontend/front_end/resources/ApplicationPanelSidebar.js(1405,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/resources/ClearStorageView.js(40,54): error TS2339: Property 'bytesToString' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/resources/ClearStorageView.js(81,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'ThrottledWidget'. -node_modules/chrome-devtools-frontend/front_end/resources/ClearStorageView.js(95,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'ThrottledWidget'. -node_modules/chrome-devtools-frontend/front_end/resources/ClearStorageView.js(129,18): error TS2339: Property 'storageAgent' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/resources/ClearStorageView.js(174,23): error TS2339: Property 'disabled' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/resources/ClearStorageView.js(178,25): error TS2339: Property 'disabled' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/resources/ClearStorageView.js(192,39): error TS2339: Property 'storageAgent' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/resources/ClearStorageView.js(199,51): error TS2339: Property 'bytesToString' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/resources/ClearStorageView.js(199,89): error TS2339: Property 'bytesToString' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/resources/ClearStorageView.js(211,47): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/resources/ClearStorageView.js(212,93): error TS2339: Property 'bytesToString' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/resources/ClearStorageView.js(227,26): error TS2339: Property 'removeChildren' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/resources/ClearStorageView.js(256,31): error TS2694: Namespace 'Protocol' has no exported member 'Storage'. -node_modules/chrome-devtools-frontend/front_end/resources/CookieItemsView.js(81,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/resources/CookieItemsView.js(101,42): error TS2339: Property 'asParsedURL' does not exist on type 'string'. -node_modules/chrome-devtools-frontend/front_end/resources/DOMStorageItemsView.js(55,46): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/resources/DOMStorageItemsView.js(178,11): error TS2403: Subsequent variable declarations must have the same type. Variable 'node' must be of type 'any', but here has type 'DataGridNode'. -node_modules/chrome-devtools-frontend/front_end/resources/DOMStorageItemsView.js(275,38): error TS2339: Property 'key' does not exist on type 'DataGridNode'. -node_modules/chrome-devtools-frontend/front_end/resources/DOMStorageModel.js(49,25): error TS2694: Namespace 'Protocol' has no exported member 'DOMStorage'. -node_modules/chrome-devtools-frontend/front_end/resources/DOMStorageModel.js(55,26): error TS2694: Namespace 'Protocol' has no exported member 'DOMStorage'. -node_modules/chrome-devtools-frontend/front_end/resources/DOMStorageModel.js(71,41): error TS2694: Namespace 'Protocol' has no exported member 'DOMStorage'. -node_modules/chrome-devtools-frontend/front_end/resources/DOMStorageModel.js(119,26): error TS2339: Property 'domstorageAgent' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/resources/DOMStorageModel.js(126,19): error TS2339: Property 'registerDOMStorageDispatcher' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/resources/DOMStorageModel.js(188,22): error TS2345: Argument of type 'DOMStorage' is not assignable to parameter of type 'boolean'. -node_modules/chrome-devtools-frontend/front_end/resources/DOMStorageModel.js(204,24): error TS2694: Namespace 'Protocol' has no exported member 'DOMStorage'. -node_modules/chrome-devtools-frontend/front_end/resources/DOMStorageModel.js(216,24): error TS2694: Namespace 'Protocol' has no exported member 'DOMStorage'. -node_modules/chrome-devtools-frontend/front_end/resources/DOMStorageModel.js(229,24): error TS2694: Namespace 'Protocol' has no exported member 'DOMStorage'. -node_modules/chrome-devtools-frontend/front_end/resources/DOMStorageModel.js(243,24): error TS2694: Namespace 'Protocol' has no exported member 'DOMStorage'. -node_modules/chrome-devtools-frontend/front_end/resources/DOMStorageModel.js(258,24): error TS2694: Namespace 'Protocol' has no exported member 'DOMStorage'. -node_modules/chrome-devtools-frontend/front_end/resources/DOMStorageModel.js(285,26): error TS2694: Namespace 'Protocol' has no exported member 'DOMStorageDispatcher'. -node_modules/chrome-devtools-frontend/front_end/resources/DOMStorageModel.js(298,24): error TS2694: Namespace 'Protocol' has no exported member 'DOMStorage'. -node_modules/chrome-devtools-frontend/front_end/resources/DOMStorageModel.js(300,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'DOMStorageDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/resources/DOMStorageModel.js(306,24): error TS2694: Namespace 'Protocol' has no exported member 'DOMStorage'. -node_modules/chrome-devtools-frontend/front_end/resources/DOMStorageModel.js(309,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'DOMStorageDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/resources/DOMStorageModel.js(315,24): error TS2694: Namespace 'Protocol' has no exported member 'DOMStorage'. -node_modules/chrome-devtools-frontend/front_end/resources/DOMStorageModel.js(319,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'DOMStorageDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/resources/DOMStorageModel.js(325,24): error TS2694: Namespace 'Protocol' has no exported member 'DOMStorage'. -node_modules/chrome-devtools-frontend/front_end/resources/DOMStorageModel.js(330,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'DOMStorageDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/resources/DatabaseModel.js(93,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/resources/DatabaseModel.js(94,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/resources/DatabaseModel.js(130,26): error TS2339: Property 'databaseAgent' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/resources/DatabaseModel.js(131,19): error TS2339: Property 'registerDatabaseDispatcher' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/resources/DatabaseModel.js(178,26): error TS2694: Namespace 'Protocol' has no exported member 'DatabaseDispatcher'. -node_modules/chrome-devtools-frontend/front_end/resources/DatabaseModel.js(191,24): error TS2694: Namespace 'Protocol' has no exported member 'Database'. -node_modules/chrome-devtools-frontend/front_end/resources/DatabaseModel.js(193,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'DatabaseDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/resources/DatabaseQueryView.js(38,42): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/resources/DatabaseQueryView.js(52,62): error TS2339: Property 'hasSelection' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/resources/DatabaseQueryView.js(85,64): error TS2339: Property 'hasSelection' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/resources/DatabaseQueryView.js(151,19): error TS2339: Property 'createTextChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/resources/DatabaseTableView.js(77,18): error TS2339: Property 'removeChildren' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/resources/DatabaseTableView.js(114,37): error TS2339: Property 'valuesArray' does not exist on type 'Set'. -node_modules/chrome-devtools-frontend/front_end/resources/DatabaseTableView.js(124,40): error TS2345: Argument of type '{ '0': boolean; }' is not assignable to parameter of type '{ [x: string]: boolean; }'. - Index signature is missing in type '{ '0': boolean; }'. -node_modules/chrome-devtools-frontend/front_end/resources/DatabaseTableView.js(130,18): error TS2339: Property 'removeChildren' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/resources/IndexedDBModel.js(32,26): error TS2694: Namespace 'Protocol' has no exported member 'StorageDispatcher'. -node_modules/chrome-devtools-frontend/front_end/resources/IndexedDBModel.js(41,12): error TS2339: Property 'registerStorageDispatcher' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/resources/IndexedDBModel.js(43,35): error TS2339: Property 'indexedDBAgent' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/resources/IndexedDBModel.js(44,33): error TS2339: Property 'storageAgent' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/resources/IndexedDBModel.js(62,24): error TS2694: Namespace 'Protocol' has no exported member 'IndexedDB'. -node_modules/chrome-devtools-frontend/front_end/resources/IndexedDBModel.js(94,37): error TS2694: Namespace 'Protocol' has no exported member 'IndexedDB'. -node_modules/chrome-devtools-frontend/front_end/resources/IndexedDBModel.js(100,25): error TS2694: Namespace 'Protocol' has no exported member 'IndexedDB'. -node_modules/chrome-devtools-frontend/front_end/resources/IndexedDBModel.js(112,24): error TS2694: Namespace 'Protocol' has no exported member 'IndexedDB'. -node_modules/chrome-devtools-frontend/front_end/resources/IndexedDBModel.js(245,20): error TS2345: Argument of type 'string[]' is not assignable to parameter of type 'boolean'. -node_modules/chrome-devtools-frontend/front_end/resources/IndexedDBModel.js(258,36): error TS2339: Property 'asParsedURL' does not exist on type 'string'. -node_modules/chrome-devtools-frontend/front_end/resources/IndexedDBModel.js(368,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/resources/IndexedDBModel.js(381,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/resources/IndexedDBModel.js(396,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/resources/IndexedDBModel.js(443,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'SDKModel'. -node_modules/chrome-devtools-frontend/front_end/resources/IndexedDBModel.js(461,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'SDKModel'. -node_modules/chrome-devtools-frontend/front_end/resources/IndexedDBModel.js(472,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'SDKModel'. -node_modules/chrome-devtools-frontend/front_end/resources/IndexedDBModel.js(479,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'SDKModel'. -node_modules/chrome-devtools-frontend/front_end/resources/IndexedDBViews.js(68,5): error TS2322: Type 'number' is not assignable to type 'string'. -node_modules/chrome-devtools-frontend/front_end/resources/IndexedDBViews.js(106,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/resources/IndexedDBViews.js(148,79): error TS2345: Argument of type '{ id: string; title: string; sortable: false; width: string; }' is not assignable to parameter of type 'ColumnDescriptor'. - Object literal may only specify known properties, and 'width' does not exist in type 'ColumnDescriptor'. -node_modules/chrome-devtools-frontend/front_end/resources/IndexedDBViews.js(150,9): error TS2345: Argument of type '{ id: string; titleDOMFragment: DocumentFragment; sortable: false; }' is not assignable to parameter of type 'ColumnDescriptor'. - Type '{ id: string; titleDOMFragment: DocumentFragment; sortable: false; }' is missing the following properties from type 'ColumnDescriptor': title, sort, align, fixedWidth, and 5 more. -node_modules/chrome-devtools-frontend/front_end/resources/IndexedDBViews.js(152,20): error TS2345: Argument of type '{ id: string; titleDOMFragment: DocumentFragment; sortable: false; }' is not assignable to parameter of type 'ColumnDescriptor'. - Type '{ id: string; titleDOMFragment: DocumentFragment; sortable: false; }' is missing the following properties from type 'ColumnDescriptor': title, sort, align, fixedWidth, and 5 more. -node_modules/chrome-devtools-frontend/front_end/resources/IndexedDBViews.js(158,18): error TS2345: Argument of type '{ id: string; title: string; sortable: false; }' is not assignable to parameter of type 'ColumnDescriptor'. - Type '{ id: string; title: string; sortable: false; }' is missing the following properties from type 'ColumnDescriptor': titleDOMFragment, sort, align, fixedWidth, and 5 more. -node_modules/chrome-devtools-frontend/front_end/resources/IndexedDBViews.js(174,29): error TS2339: Property 'createTextChild' does not exist on type 'DocumentFragment'. -node_modules/chrome-devtools-frontend/front_end/resources/IndexedDBViews.js(178,29): error TS2339: Property 'createTextChild' does not exist on type 'DocumentFragment'. -node_modules/chrome-devtools-frontend/front_end/resources/IndexedDBViews.js(180,31): error TS2339: Property 'createTextChild' does not exist on type 'DocumentFragment'. -node_modules/chrome-devtools-frontend/front_end/resources/IndexedDBViews.js(183,35): error TS2339: Property 'createTextChild' does not exist on type 'DocumentFragment'. -node_modules/chrome-devtools-frontend/front_end/resources/IndexedDBViews.js(186,31): error TS2339: Property 'createTextChild' does not exist on type 'DocumentFragment'. -node_modules/chrome-devtools-frontend/front_end/resources/IndexedDBViews.js(191,29): error TS2339: Property 'createTextChild' does not exist on type 'DocumentFragment'. -node_modules/chrome-devtools-frontend/front_end/resources/IndexedDBViews.js(201,27): error TS2339: Property 'createTextChild' does not exist on type 'DocumentFragment'. -node_modules/chrome-devtools-frontend/front_end/resources/IndexedDBViews.js(202,45): error TS2339: Property 'createChild' does not exist on type 'DocumentFragment'. -node_modules/chrome-devtools-frontend/front_end/resources/IndexedDBViews.js(204,27): error TS2339: Property 'createTextChild' does not exist on type 'DocumentFragment'. -node_modules/chrome-devtools-frontend/front_end/resources/IndexedDBViews.js(228,27): error TS2339: Property 'placeholder' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/resources/IndexedDBViews.js(295,52): error TS2339: Property 'value' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/resources/IndexedDBViews.js(433,14): error TS2339: Property 'removeChildren' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/resources/ResourcesPanel.js(22,47): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/resources/ResourcesPanel.js(193,9): error TS4112: This member cannot have an 'override' modifier because its containing class 'ResourceRevealer' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/resources/ResourcesSection.js(69,33): error TS2339: Property 'remove' does not exist on type 'Map'. -node_modules/chrome-devtools-frontend/front_end/resources/ResourcesSection.js(311,26): error TS2339: Property 'draggable' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/resources/ResourcesSection.js(321,11): error TS2339: Property 'dataTransfer' does not exist on type 'MouseEvent'. -node_modules/chrome-devtools-frontend/front_end/resources/ResourcesSection.js(322,11): error TS2339: Property 'dataTransfer' does not exist on type 'MouseEvent'. -node_modules/chrome-devtools-frontend/front_end/resources/ServiceWorkerCacheViews.js(25,46): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/resources/ServiceWorkerCacheViews.js(198,31): error TS2694: Namespace 'Protocol' has no exported member 'CacheStorage'. -node_modules/chrome-devtools-frontend/front_end/resources/ServiceWorkerCacheViews.js(215,11): error TS2403: Subsequent variable declarations must have the same type. Variable 'node' must be of type 'any', but here has type 'DataGridNode'. -node_modules/chrome-devtools-frontend/front_end/resources/ServiceWorkerCacheViews.js(285,24): error TS2694: Namespace 'Protocol' has no exported member 'CacheStorage'. -node_modules/chrome-devtools-frontend/front_end/resources/ServiceWorkersView.js(31,46): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/resources/ServiceWorkersView.js(71,63): error TS2345: Argument of type 'this' is not assignable to parameter of type 'SDKModelObserver'. - Type 'ServiceWorkersView' is not assignable to type 'SDKModelObserver'. - Types of property 'modelAdded' are incompatible. - Type '(serviceWorkerManager: ServiceWorkerManager) => void' is not assignable to type '(model: T) => void'. -node_modules/chrome-devtools-frontend/front_end/resources/ServiceWorkersView.js(79,3): error TS2416: Property 'modelAdded' in type 'ServiceWorkersView' is not assignable to the same property in base type 'SDKModelObserver'. - Type '(serviceWorkerManager: ServiceWorkerManager) => void' is not assignable to type '(model: T) => void'. -node_modules/chrome-devtools-frontend/front_end/resources/ServiceWorkersView.js(79,3): error TS2416: Property 'modelAdded' in type 'ServiceWorkersView' is not assignable to the same property in base type 'SDKModelObserver'. - Type '(serviceWorkerManager: ServiceWorkerManager) => void' is not assignable to type '(model: T) => void'. - Types of parameters 'serviceWorkerManager' and 'model' are incompatible. - Type 'T' is not assignable to type 'ServiceWorkerManager'. -node_modules/chrome-devtools-frontend/front_end/resources/ServiceWorkersView.js(79,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/resources/ServiceWorkersView.js(104,3): error TS2416: Property 'modelRemoved' in type 'ServiceWorkersView' is not assignable to the same property in base type 'SDKModelObserver'. - Type '(serviceWorkerManager: ServiceWorkerManager) => void' is not assignable to type '(model: T) => void'. -node_modules/chrome-devtools-frontend/front_end/resources/ServiceWorkersView.js(104,3): error TS2416: Property 'modelRemoved' in type 'ServiceWorkersView' is not assignable to the same property in base type 'SDKModelObserver'. - Type '(serviceWorkerManager: ServiceWorkerManager) => void' is not assignable to type '(model: T) => void'. - Types of parameters 'serviceWorkerManager' and 'model' are incompatible. - Type 'T' is not assignable to type 'ServiceWorkerManager'. -node_modules/chrome-devtools-frontend/front_end/resources/ServiceWorkersView.js(104,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/resources/ServiceWorkersView.js(120,7): error TS2447: The '|=' operator is not allowed for boolean types. Consider using '||' instead. -node_modules/chrome-devtools-frontend/front_end/resources/ServiceWorkersView.js(121,7): error TS2447: The '|=' operator is not allowed for boolean types. Consider using '||' instead. -node_modules/chrome-devtools-frontend/front_end/resources/ServiceWorkersView.js(238,24): error TS2339: Property 'filterRegex' does not exist on type 'StringConstructor'. -node_modules/chrome-devtools-frontend/front_end/resources/ServiceWorkersView.js(262,30): error TS2339: Property 'asParsedURL' does not exist on type 'string'. -node_modules/chrome-devtools-frontend/front_end/resources/ServiceWorkersView.js(314,39): error TS2694: Namespace 'Protocol' has no exported member 'Target'. -node_modules/chrome-devtools-frontend/front_end/resources/ServiceWorkersView.js(321,21): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/resources/ServiceWorkersView.js(324,12): error TS2339: Property 'type' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/resources/ServiceWorkersView.js(329,54): error TS2345: Argument of type '{ lineNumbers: boolean; lineWrapping: boolean; autoHeight: boolean; padBottom: boolean; mimeType: string; }' is not assignable to parameter of type 'Options'. - Type '{ lineNumbers: boolean; lineWrapping: boolean; autoHeight: boolean; padBottom: boolean; mimeType: string; }' is missing the following properties from type 'Options': bracketMatchingSetting, maxHighlightLength, placeholder -node_modules/chrome-devtools-frontend/front_end/resources/ServiceWorkersView.js(332,13): error TS2339: Property 'key' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/resources/ServiceWorkersView.js(333,11): error TS2339: Property 'consume' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/resources/ServiceWorkersView.js(344,21): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/resources/ServiceWorkersView.js(347,12): error TS2339: Property 'type' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/resources/ServiceWorkersView.js(360,38): error TS2339: Property '_noThrottle' does not exist on type 'typeof ServiceWorkersView'. -node_modules/chrome-devtools-frontend/front_end/resources/ServiceWorkersView.js(385,41): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/resources/ServiceWorkersView.js(395,24): error TS2339: Property 'removeChildren' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/resources/ServiceWorkersView.js(396,63): error TS2345: Argument of type 'number' is not assignable to parameter of type 'boolean'. -node_modules/chrome-devtools-frontend/front_end/resources/ServiceWorkersView.js(398,48): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/resources/ServiceWorkersView.js(401,51): error TS2694: Namespace 'Protocol' has no exported member 'Target'. -node_modules/chrome-devtools-frontend/front_end/resources/ServiceWorkersView.js(403,30): error TS2339: Property 'targetAgent' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/resources/ServiceWorkersView.js(411,23): error TS2339: Property 'removeChildren' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/resources/ServiceWorkersView.js(413,34): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/resources/ServiceWorkersView.js(414,73): error TS2345: Argument of type '{ text: string; }' is not assignable to parameter of type 'LinkifyURLOptions'. - Type '{ text: string; }' is missing the following properties from type 'LinkifyURLOptions': className, lineNumber, columnNumber, preventClick, maxLength -node_modules/chrome-devtools-frontend/front_end/resources/ServiceWorkersView.js(421,23): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/resources/ServiceWorkersView.js(446,23): error TS2339: Property 'removeChildren' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/resources/ServiceWorkersView.js(447,43): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/resources/ServiceWorkersView.js(475,20): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/resources/ServiceWorkersView.js(483,23): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/resources/ServiceWorkersView.js(492,16): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/resources/ServiceWorkersView.js(496,25): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/resources/ServiceWorkersView.js(537,24): error TS2694: Namespace 'Protocol' has no exported member 'Target'. -node_modules/chrome-devtools-frontend/front_end/resources/ServiceWorkersView.js(548,24): error TS2694: Namespace 'Protocol' has no exported member 'Target'. -node_modules/chrome-devtools-frontend/front_end/resources/ServiceWorkersView.js(552,15): error TS2339: Property 'createTextChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/resources/ServiceWorkersView.js(555,13): error TS2339: Property 'removeChildren' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/resources/ServiceWorkersView.js(556,13): error TS2339: Property 'createTextChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/resources/ServiceWorkersView.js(557,30): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/resources/ServiceWorkersView.js(566,28): error TS2339: Property 'targetAgent' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/resources/StorageItemsView.js(40,60): error TS2345: Argument of type 'Function' is not assignable to parameter of type '(arg0: { data: any; }) => any'. - Type 'Function' provides no match for the signature '(arg0: { data: any; }): any'. -node_modules/chrome-devtools-frontend/front_end/screencast/InputModel.js(11,31): error TS2339: Property 'inputAgent' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/screencast/InputModel.js(36,70): error TS2339: Property 'charCode' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/screencast/InputModel.js(43,28): error TS2339: Property 'keyIdentifier' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/screencast/InputModel.js(44,19): error TS2339: Property 'code' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/screencast/InputModel.js(45,18): error TS2339: Property 'key' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/screencast/InputModel.js(46,36): error TS2339: Property 'keyCode' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/screencast/InputModel.js(47,35): error TS2339: Property 'keyCode' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/screencast/InputModel.js(67,43): error TS2339: Property 'which' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/screencast/InputModel.js(69,54): error TS2339: Property 'which' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/screencast/InputModel.js(75,30): error TS2339: Property 'offsetX' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/screencast/InputModel.js(76,30): error TS2339: Property 'offsetY' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/screencast/InputModel.js(84,29): error TS2339: Property 'which' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/screencast/InputModel.js(88,29): error TS2339: Property 'wheelDeltaX' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/screencast/InputModel.js(89,29): error TS2339: Property 'wheelDeltaY' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/screencast/InputModel.js(112,19): error TS2339: Property 'altKey' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/screencast/InputModel.js(112,44): error TS2339: Property 'ctrlKey' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/screencast/InputModel.js(112,70): error TS2339: Property 'metaKey' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/screencast/InputModel.js(112,96): error TS2339: Property 'shiftKey' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/screencast/ScreencastApp.js(16,61): error TS2345: Argument of type 'this' is not assignable to parameter of type 'SDKModelObserver'. - Type 'ScreencastApp' is not assignable to type 'SDKModelObserver'. - Types of property 'modelAdded' are incompatible. - Type '(screenCaptureModel: ScreenCaptureModel) => void' is not assignable to type '(model: T) => void'. -node_modules/chrome-devtools-frontend/front_end/screencast/ScreencastApp.js(32,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ScreencastApp' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/screencast/ScreencastApp.js(50,3): error TS2416: Property 'modelAdded' in type 'ScreencastApp' is not assignable to the same property in base type 'SDKModelObserver'. - Type '(screenCaptureModel: ScreenCaptureModel) => void' is not assignable to type '(model: T) => void'. -node_modules/chrome-devtools-frontend/front_end/screencast/ScreencastApp.js(50,3): error TS2416: Property 'modelAdded' in type 'ScreencastApp' is not assignable to the same property in base type 'SDKModelObserver'. - Type '(screenCaptureModel: ScreenCaptureModel) => void' is not assignable to type '(model: T) => void'. - Types of parameters 'screenCaptureModel' and 'model' are incompatible. - Type 'T' is not assignable to type 'ScreenCaptureModel'. -node_modules/chrome-devtools-frontend/front_end/screencast/ScreencastApp.js(50,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ScreencastApp' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/screencast/ScreencastApp.js(65,3): error TS2416: Property 'modelRemoved' in type 'ScreencastApp' is not assignable to the same property in base type 'SDKModelObserver'. - Type '(screenCaptureModel: ScreenCaptureModel) => void' is not assignable to type '(model: T) => void'. -node_modules/chrome-devtools-frontend/front_end/screencast/ScreencastApp.js(65,3): error TS2416: Property 'modelRemoved' in type 'ScreencastApp' is not assignable to the same property in base type 'SDKModelObserver'. - Type '(screenCaptureModel: ScreenCaptureModel) => void' is not assignable to type '(model: T) => void'. - Types of parameters 'screenCaptureModel' and 'model' are incompatible. - Type 'T' is not assignable to type 'ScreenCaptureModel'. -node_modules/chrome-devtools-frontend/front_end/screencast/ScreencastApp.js(65,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ScreencastApp' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/screencast/ScreencastApp.js(85,35): error TS2345: Argument of type 'ScreencastView' is not assignable to parameter of type 'boolean'. -node_modules/chrome-devtools-frontend/front_end/screencast/ScreencastApp.js(106,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ToolbarButtonProvider' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/screencast/ScreencastApp.js(120,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ScreencastAppProvider' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/screencast/ScreencastView.js(56,42): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/screencast/ScreencastView.js(152,24): error TS2694: Namespace 'Protocol' has no exported member 'Page'. -node_modules/chrome-devtools-frontend/front_end/screencast/ScreencastView.js(220,13): error TS2339: Property 'consume' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/screencast/ScreencastView.js(258,13): error TS2339: Property 'consume' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/screencast/ScreencastView.js(265,13): error TS2339: Property 'consume' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/screencast/ScreencastView.js(271,11): error TS2339: Property 'consume' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/screencast/ScreencastView.js(279,11): error TS2339: Property 'consume' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/screencast/ScreencastView.js(296,35): error TS2339: Property 'offsetX' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/screencast/ScreencastView.js(297,35): error TS2339: Property 'offsetY' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/screencast/ScreencastView.js(317,24): error TS2694: Namespace 'Protocol' has no exported member 'Overlay'. -node_modules/chrome-devtools-frontend/front_end/screencast/ScreencastView.js(318,24): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/screencast/ScreencastView.js(319,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/screencast/ScreencastView.js(321,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/screencast/ScreencastView.js(346,24): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/screencast/ScreencastView.js(347,25): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/screencast/ScreencastView.js(351,26): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/screencast/ScreencastView.js(420,24): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/screencast/ScreencastView.js(430,24): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/screencast/ScreencastView.js(444,24): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/screencast/ScreencastView.js(445,24): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/screencast/ScreencastView.js(457,24): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/screencast/ScreencastView.js(458,24): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/screencast/ScreencastView.js(459,24): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/screencast/ScreencastView.js(557,30): error TS2339: Property 'offsetWidth' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/screencast/ScreencastView.js(558,31): error TS2339: Property 'offsetHeight' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/screencast/ScreencastView.js(564,24): error TS2694: Namespace 'Protocol' has no exported member 'Overlay'. -node_modules/chrome-devtools-frontend/front_end/screencast/ScreencastView.js(565,24): error TS2694: Namespace 'Protocol' has no exported member 'Overlay'. -node_modules/chrome-devtools-frontend/front_end/screencast/ScreencastView.js(568,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/screencast/ScreencastView.js(575,24): error TS2694: Namespace 'Protocol' has no exported member 'Page'. -node_modules/chrome-devtools-frontend/front_end/screencast/ScreencastView.js(577,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/screencast/ScreencastView.js(600,40): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/screencast/ScreencastView.js(608,25): error TS2339: Property 'type' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/screencast/ScreencastView.js(644,15): error TS2339: Property 'key' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/screencast/ScreencastView.js(646,35): error TS2339: Property 'value' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/screencast/ScreencastView.js(671,25): error TS2339: Property 'value' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/screencast/ScreencastView.js(675,25): error TS2339: Property 'focus' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/screencast/ScreencastView.js(676,25): error TS2339: Property 'select' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/screencast/ScreencastView.js(737,17): error TS2339: Property 'type' does not exist on type 'NetworkRequest'. -node_modules/chrome-devtools-frontend/front_end/screencast/ScreencastView.js(766,19): error TS2339: Property 'style' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sdk/CPUProfileDataModel.js(9,24): error TS2694: Namespace 'Protocol' has no exported member 'Profiler'. -node_modules/chrome-devtools-frontend/front_end/sdk/CPUProfileDataModel.js(13,60): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/CPUProfileDataModel.js(35,24): error TS2694: Namespace 'Protocol' has no exported member 'Profiler'. -node_modules/chrome-devtools-frontend/front_end/sdk/CPUProfileDataModel.js(65,24): error TS2694: Namespace 'Protocol' has no exported member 'Profiler'. -node_modules/chrome-devtools-frontend/front_end/sdk/CPUProfileDataModel.js(70,33): error TS2694: Namespace 'Protocol' has no exported member 'Profiler'. -node_modules/chrome-devtools-frontend/front_end/sdk/CPUProfileDataModel.js(76,26): error TS2694: Namespace 'Protocol' has no exported member 'Profiler'. -node_modules/chrome-devtools-frontend/front_end/sdk/CPUProfileDataModel.js(81,52): error TS2694: Namespace 'Protocol' has no exported member 'Profiler'. -node_modules/chrome-devtools-frontend/front_end/sdk/CPUProfileDataModel.js(87,24): error TS2694: Namespace 'Protocol' has no exported member 'Profiler'. -node_modules/chrome-devtools-frontend/front_end/sdk/CPUProfileDataModel.js(103,31): error TS2694: Namespace 'Protocol' has no exported member 'Profiler'. -node_modules/chrome-devtools-frontend/front_end/sdk/CPUProfileDataModel.js(108,26): error TS2694: Namespace 'Protocol' has no exported member 'Profiler'. -node_modules/chrome-devtools-frontend/front_end/sdk/CPUProfileDataModel.js(117,33): error TS2694: Namespace 'Protocol' has no exported member 'Profiler'. -node_modules/chrome-devtools-frontend/front_end/sdk/CPUProfileDataModel.js(132,39): error TS2694: Namespace 'Protocol' has no exported member 'Profiler'. -node_modules/chrome-devtools-frontend/front_end/sdk/CPUProfileDataModel.js(246,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/sdk/CPUProfileDataModel.js(247,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/sdk/CPUProfileDataModel.js(289,40): error TS2339: Property 'depth' does not exist on type 'CPUProfileNode'. -node_modules/chrome-devtools-frontend/front_end/sdk/CPUProfileDataModel.js(289,51): error TS2345: Argument of type 'ProfileNode' is not assignable to parameter of type 'CPUProfileNode'. -node_modules/chrome-devtools-frontend/front_end/sdk/CPUProfileDataModel.js(300,41): error TS2339: Property 'depth' does not exist on type 'CPUProfileNode'. -node_modules/chrome-devtools-frontend/front_end/sdk/CPUProfileDataModel.js(300,52): error TS2345: Argument of type 'ProfileNode' is not assignable to parameter of type 'CPUProfileNode'. -node_modules/chrome-devtools-frontend/front_end/sdk/CPUProfileDataModel.js(307,19): error TS2339: Property 'depth' does not exist on type 'CPUProfileNode'. -node_modules/chrome-devtools-frontend/front_end/sdk/CPUProfileDataModel.js(307,36): error TS2339: Property 'depth' does not exist on type 'CPUProfileNode'. -node_modules/chrome-devtools-frontend/front_end/sdk/CPUProfileDataModel.js(309,9): error TS2322: Type 'ProfileNode' is not assignable to type 'CPUProfileNode'. -node_modules/chrome-devtools-frontend/front_end/sdk/CPUProfileDataModel.js(318,22): error TS2339: Property 'depth' does not exist on type 'CPUProfileNode'. -node_modules/chrome-devtools-frontend/front_end/sdk/CPUProfileDataModel.js(321,18): error TS2339: Property 'depth' does not exist on type 'CPUProfileNode'. -node_modules/chrome-devtools-frontend/front_end/sdk/CPUProfileDataModel.js(321,37): error TS2339: Property 'depth' does not exist on type 'CPUProfileNode'. -node_modules/chrome-devtools-frontend/front_end/sdk/CPUProfileDataModel.js(323,11): error TS2322: Type 'ProfileNode' is not assignable to type 'CPUProfileNode'. -node_modules/chrome-devtools-frontend/front_end/sdk/CPUProfileDataModel.js(325,9): error TS2322: Type 'ProfileNode' is not assignable to type 'CPUProfileNode'. -node_modules/chrome-devtools-frontend/front_end/sdk/CPUProfileDataModel.js(331,32): error TS2339: Property 'depth' does not exist on type 'CPUProfileNode'. -node_modules/chrome-devtools-frontend/front_end/sdk/CPUProfileDataModel.js(343,39): error TS2339: Property 'depth' does not exist on type 'CPUProfileNode'. -node_modules/chrome-devtools-frontend/front_end/sdk/CPUProfileDataModel.js(347,56): error TS2322: Type 'ProfileNode' is not assignable to type 'CPUProfileNode'. -node_modules/chrome-devtools-frontend/front_end/sdk/CPUProfileDataModel.js(352,16): error TS2339: Property 'depth' does not exist on type 'CPUProfileNode'. -node_modules/chrome-devtools-frontend/front_end/sdk/CPUProfilerModel.js(30,26): error TS2694: Namespace 'Protocol' has no exported member 'ProfilerDispatcher'. -node_modules/chrome-devtools-frontend/front_end/sdk/CPUProfilerModel.js(41,34): error TS2339: Property 'profilerAgent' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/sdk/CPUProfilerModel.js(42,12): error TS2339: Property 'registerProfilerDispatcher' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/sdk/CPUProfilerModel.js(64,24): error TS2694: Namespace 'Protocol' has no exported member 'Debugger'. -node_modules/chrome-devtools-frontend/front_end/sdk/CPUProfilerModel.js(67,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'SDKModel'. -node_modules/chrome-devtools-frontend/front_end/sdk/CPUProfilerModel.js(78,24): error TS2694: Namespace 'Protocol' has no exported member 'Debugger'. -node_modules/chrome-devtools-frontend/front_end/sdk/CPUProfilerModel.js(79,24): error TS2694: Namespace 'Protocol' has no exported member 'Profiler'. -node_modules/chrome-devtools-frontend/front_end/sdk/CPUProfilerModel.js(82,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'SDKModel'. -node_modules/chrome-devtools-frontend/front_end/sdk/CPUProfilerModel.js(97,24): error TS2694: Namespace 'Protocol' has no exported member 'Debugger'. -node_modules/chrome-devtools-frontend/front_end/sdk/CPUProfilerModel.js(99,24): error TS2694: Namespace 'Protocol' has no exported member 'Profiler'. -node_modules/chrome-devtools-frontend/front_end/sdk/CPUProfilerModel.js(127,34): error TS2694: Namespace 'Protocol' has no exported member 'Profiler'. -node_modules/chrome-devtools-frontend/front_end/sdk/CPUProfilerModel.js(144,41): error TS2694: Namespace 'Protocol' has no exported member 'Profiler'. -node_modules/chrome-devtools-frontend/front_end/sdk/CPUProfilerModel.js(158,41): error TS2694: Namespace 'Protocol' has no exported member 'Profiler'. -node_modules/chrome-devtools-frontend/front_end/sdk/CPUProfilerModel.js(173,112): error TS2694: Namespace 'Protocol' has no exported member 'Profiler'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSMatchedStyles.js(11,24): error TS2694: Namespace 'Protocol' has no exported member 'CSS'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSMatchedStyles.js(12,24): error TS2694: Namespace 'Protocol' has no exported member 'CSS'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSMatchedStyles.js(13,32): error TS2694: Namespace 'Protocol' has no exported member 'CSS'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSMatchedStyles.js(14,32): error TS2694: Namespace 'Protocol' has no exported member 'CSS'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSMatchedStyles.js(15,32): error TS2694: Namespace 'Protocol' has no exported member 'CSS'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSMatchedStyles.js(16,32): error TS2694: Namespace 'Protocol' has no exported member 'CSS'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSMatchedStyles.js(33,31): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSMatchedStyles.js(241,53): error TS2339: Property 'media' does not exist on type 'CSSRule'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSMatchedStyles.js(264,31): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSMatchedStyles.js(322,58): error TS2339: Property 'valuesArray' does not exist on type 'Map'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSMatchedStyles.js(352,46): error TS2345: Argument of type 'CSSRule' is not assignable to parameter of type 'CSSStyleRule'. - Type 'CSSRule' is missing the following properties from type 'CSSStyleRule': media, wasUsed, _reinitializeSelectors, selectors, and 5 more. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSMedia.js(9,24): error TS2694: Namespace 'Protocol' has no exported member 'CSS'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSMedia.js(19,24): error TS2694: Namespace 'Protocol' has no exported member 'CSS'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSMedia.js(47,24): error TS2694: Namespace 'Protocol' has no exported member 'CSS'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSMedia.js(58,24): error TS2694: Namespace 'Protocol' has no exported member 'CSS'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSMedia.js(108,24): error TS2694: Namespace 'Protocol' has no exported member 'CSS'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSMedia.js(117,24): error TS2694: Namespace 'Protocol' has no exported member 'CSS'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSMedia.js(126,32): error TS2694: Namespace 'Protocol' has no exported member 'CSS'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSMedia.js(137,24): error TS2694: Namespace 'Protocol' has no exported member 'CSS'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSMedia.js(160,47): error TS2694: Namespace 'Protocol' has no exported member 'CSS'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSMetadata.js(197,24): error TS2339: Property 'pushAll' does not exist on type 'string[]'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSMetadata.js(222,24): error TS2339: Property '_instance' does not exist on type 'typeof CSSMetadata'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSMetadata.js(223,21): error TS2339: Property '_instance' does not exist on type 'typeof CSSMetadata'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSMetadata.js(223,69): error TS2339: Property '_generatedProperties' does not exist on type 'typeof CSSMetadata'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSMetadata.js(224,26): error TS2339: Property '_instance' does not exist on type 'typeof CSSMetadata'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSModel.js(43,26): error TS2339: Property 'cssAgent' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSModel.js(50,12): error TS2339: Property 'registerCSSDispatcher' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSModel.js(55,49): error TS2694: Namespace 'Protocol' has no exported member 'Page'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSModel.js(55,81): error TS2694: Namespace 'Protocol' has no exported member 'CSS'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSModel.js(102,24): error TS2694: Namespace 'Protocol' has no exported member 'CSS'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSModel.js(203,31): error TS2694: Namespace 'Protocol' has no exported member 'CSS'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSModel.js(238,24): error TS2694: Namespace 'Protocol' has no exported member 'CSS'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSModel.js(262,24): error TS2694: Namespace 'Protocol' has no exported member 'CSS'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSModel.js(290,41): error TS2694: Namespace 'Protocol' has no exported member 'CSS'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSModel.js(328,24): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSModel.js(348,24): error TS2694: Namespace 'Protocol' has no exported member 'CSS'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSModel.js(356,24): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSModel.js(377,41): error TS2694: Namespace 'Protocol' has no exported member 'CSS'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSModel.js(387,45): error TS2339: Property 'valuesArray' does not exist on type 'Map'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSModel.js(406,24): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSModel.js(460,24): error TS2694: Namespace 'Protocol' has no exported member 'CSS'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSModel.js(484,24): error TS2694: Namespace 'Protocol' has no exported member 'CSS'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSModel.js(511,46): error TS2339: Property 'valuesArray' does not exist on type 'Map'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSModel.js(533,24): error TS2694: Namespace 'Protocol' has no exported member 'CSS'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSModel.js(544,39): error TS2339: Property 'valuesArray' does not exist on type 'Map'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSModel.js(548,24): error TS2694: Namespace 'Protocol' has no exported member 'CSS'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSModel.js(556,24): error TS2694: Namespace 'Protocol' has no exported member 'CSS'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSModel.js(587,24): error TS2694: Namespace 'Protocol' has no exported member 'CSS'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSModel.js(608,24): error TS2694: Namespace 'Protocol' has no exported member 'CSS'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSModel.js(612,20): error TS2345: Argument of type 'CSSStyleSheetHeader' is not assignable to parameter of type 'boolean'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSModel.js(615,32): error TS2339: Property 'remove' does not exist on type 'Map'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSModel.js(617,64): error TS2694: Namespace 'Protocol' has no exported member 'Page'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSModel.js(617,96): error TS2694: Namespace 'Protocol' has no exported member 'CSS'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSModel.js(624,35): error TS2339: Property 'remove' does not exist on type 'Map'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSModel.js(626,34): error TS2339: Property 'remove' does not exist on type 'Map>'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSModel.js(633,33): error TS2694: Namespace 'Protocol' has no exported member 'CSS'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSModel.js(647,24): error TS2694: Namespace 'Protocol' has no exported member 'CSS'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSModel.js(654,20): error TS2345: Argument of type 'CSSStyleSheetHeader' is not assignable to parameter of type 'boolean'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSModel.js(674,24): error TS2694: Namespace 'Protocol' has no exported member 'CSS'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSModel.js(687,46): error TS2339: Property 'valuesArray' does not exist on type 'Map'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSModel.js(751,34): error TS2694: Namespace 'Protocol' has no exported member 'CSS'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSModel.js(751,75): error TS2694: Namespace 'Protocol' has no exported member 'CSS'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSModel.js(778,24): error TS2694: Namespace 'Protocol' has no exported member 'CSS'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSModel.js(821,26): error TS2694: Namespace 'Protocol' has no exported member 'CSSDispatcher'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSModel.js(835,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'CSSDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSModel.js(842,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'CSSDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSModel.js(848,24): error TS2694: Namespace 'Protocol' has no exported member 'CSS'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSModel.js(850,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'CSSDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSModel.js(856,24): error TS2694: Namespace 'Protocol' has no exported member 'CSS'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSModel.js(858,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'CSSDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSModel.js(864,24): error TS2694: Namespace 'Protocol' has no exported member 'CSS'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSModel.js(866,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'CSSDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSModel.js(880,31): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSModel.js(885,24): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSModel.js(897,33): error TS2694: Namespace 'Protocol' has no exported member 'CSS'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSProperty.js(18,24): error TS2694: Namespace 'Protocol' has no exported member 'CSS'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSProperty.js(39,24): error TS2694: Namespace 'Protocol' has no exported member 'CSS'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSProperty.js(168,56): error TS2339: Property 'sprintf' does not exist on type 'StringConstructor'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSRule.js(9,24): error TS2694: Namespace 'Protocol' has no exported member 'CSS'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSRule.js(33,32): error TS2694: Namespace 'Protocol' has no exported member 'CSS'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSRule.js(33,98): error TS2694: Namespace 'Protocol' has no exported member 'CSS'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSRule.js(108,24): error TS2694: Namespace 'Protocol' has no exported member 'CSS'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSRule.js(131,64): error TS2694: Namespace 'Protocol' has no exported member 'CSS'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSRule.js(135,24): error TS2694: Namespace 'Protocol' has no exported member 'CSS'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSRule.js(162,27): error TS2339: Property 'select' does not exist on type 'CSSValue[]'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSRule.js(172,36): error TS2339: Property 'peekLast' does not exist on type 'CSSValue[]'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSRule.js(198,20): error TS2345: Argument of type 'CSSStyleSheetHeader' is not assignable to parameter of type 'boolean'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSRule.js(210,56): error TS2694: Namespace 'Protocol' has no exported member 'CSS'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSRule.js(229,24): error TS2694: Namespace 'Protocol' has no exported member 'CSS'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSRule.js(258,24): error TS2694: Namespace 'Protocol' has no exported member 'CSS'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSRule.js(273,24): error TS2694: Namespace 'Protocol' has no exported member 'CSS'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSRule.js(287,50): error TS2694: Namespace 'Protocol' has no exported member 'CSS'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSStyleDeclaration.js(8,24): error TS2694: Namespace 'Protocol' has no exported member 'CSS'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSStyleDeclaration.js(41,47): error TS2694: Namespace 'Protocol' has no exported member 'CSS'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSStyleDeclaration.js(50,24): error TS2694: Namespace 'Protocol' has no exported member 'CSS'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSStyleSheetHeader.js(11,24): error TS2694: Namespace 'Protocol' has no exported member 'CSS'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSStyleSheetHeader.js(76,20): error TS2345: Argument of type 'ResourceTreeFrame' is not assignable to parameter of type 'boolean'. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSStyleSheetHeader.js(106,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'CSSStyleSheetHeader' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSStyleSheetHeader.js(114,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'CSSStyleSheetHeader' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSStyleSheetHeader.js(122,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'CSSStyleSheetHeader' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSStyleSheetHeader.js(130,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'CSSStyleSheetHeader' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/CSSStyleSheetHeader.js(141,9): error TS4112: This member cannot have an 'override' modifier because its containing class 'CSSStyleSheetHeader' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/Connections.js(17,29): error TS2339: Property 'events' does not exist on type 'InspectorFrontendHostAPI'. -node_modules/chrome-devtools-frontend/front_end/sdk/Connections.js(19,29): error TS2339: Property 'events' does not exist on type 'InspectorFrontendHostAPI'. -node_modules/chrome-devtools-frontend/front_end/sdk/Connections.js(28,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'MainConnection' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/Connections.js(62,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'MainConnection' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/Connections.js(86,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/sdk/Connections.js(140,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'WebSocketConnection' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/Connections.js(151,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'WebSocketConnection' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/Connections.js(179,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'StubConnection' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/Connections.js(200,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'StubConnection' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/ContentProviders.js(48,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'CompilerSourceMappingContentProvider' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/ContentProviders.js(56,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'CompilerSourceMappingContentProvider' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/ContentProviders.js(64,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'CompilerSourceMappingContentProvider' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/ContentProviders.js(72,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'CompilerSourceMappingContentProvider' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/ContentProviders.js(104,9): error TS4112: This member cannot have an 'override' modifier because its containing class 'CompilerSourceMappingContentProvider' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/CookieModel.js(14,24): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/CookieModel.js(40,27): error TS2339: Property 'asParsedURL' does not exist on type 'string'. -node_modules/chrome-devtools-frontend/front_end/sdk/CookieModel.js(65,26): error TS2339: Property 'networkAgent' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/sdk/CookieModel.js(95,39): error TS2345: Argument of type 'number' is not assignable to parameter of type 'string'. -node_modules/chrome-devtools-frontend/front_end/sdk/CookieModel.js(97,10): error TS2339: Property 'networkAgent' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/sdk/CookieModel.js(114,38): error TS2339: Property 'asParsedURL' does not exist on type 'string'. -node_modules/chrome-devtools-frontend/front_end/sdk/CookieModel.js(129,38): error TS2339: Property 'networkAgent' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/sdk/CookieParser.js(246,25): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/CookieParser.js(250,33): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/CookieParser.js(325,53): error TS2363: The right-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMDebuggerModel.js(11,26): error TS2339: Property 'domdebuggerAgent' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMDebuggerModel.js(275,24): error TS2694: Namespace 'Protocol' has no exported member 'DOMDebugger'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMDebuggerModel.js(387,7): error TS2322: Type 'Promise' is not assignable to type 'Promise'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMDebuggerModel.js(392,18): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMDebuggerModel.js(422,16): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMDebuggerModel.js(453,16): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMDebuggerModel.js(673,59): error TS2345: Argument of type 'this' is not assignable to parameter of type 'SDKModelObserver'. - Type 'DOMDebuggerManager' is not assignable to type 'SDKModelObserver'. - Types of property 'modelAdded' are incompatible. - Type '(domDebuggerModel: DOMDebuggerModel) => void' is not assignable to type '(model: T) => void'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMDebuggerModel.js(827,3): error TS2416: Property 'modelAdded' in type 'DOMDebuggerManager' is not assignable to the same property in base type 'SDKModelObserver'. - Type '(domDebuggerModel: DOMDebuggerModel) => void' is not assignable to type '(model: T) => void'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMDebuggerModel.js(827,3): error TS2416: Property 'modelAdded' in type 'DOMDebuggerManager' is not assignable to the same property in base type 'SDKModelObserver'. - Type '(domDebuggerModel: DOMDebuggerModel) => void' is not assignable to type '(model: T) => void'. - Types of parameters 'domDebuggerModel' and 'model' are incompatible. - Type 'T' is not assignable to type 'DOMDebuggerModel'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMDebuggerModel.js(827,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'DOMDebuggerManager' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMDebuggerModel.js(842,3): error TS2416: Property 'modelRemoved' in type 'DOMDebuggerManager' is not assignable to the same property in base type 'SDKModelObserver'. - Type '(domDebuggerModel: DOMDebuggerModel) => void' is not assignable to type '(model: T) => void'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMDebuggerModel.js(842,3): error TS2416: Property 'modelRemoved' in type 'DOMDebuggerManager' is not assignable to the same property in base type 'SDKModelObserver'. - Type '(domDebuggerModel: DOMDebuggerModel) => void' is not assignable to type '(model: T) => void'. - Types of parameters 'domDebuggerModel' and 'model' are incompatible. - Type 'T' is not assignable to type 'DOMDebuggerModel'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMDebuggerModel.js(842,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'DOMDebuggerManager' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(47,24): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(59,24): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(136,53): error TS2339: Property 'documentElement' does not exist on type 'DOMDocument'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(137,28): error TS2339: Property 'documentElement' does not exist on type 'DOMDocument'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(138,53): error TS2339: Property 'body' does not exist on type 'DOMDocument'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(139,28): error TS2339: Property 'body' does not exist on type 'DOMDocument'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(476,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(554,31): error TS2339: Property 'index' does not exist on type 'DOMNode'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(555,16): error TS2339: Property 'index' does not exist on type 'DOMNode'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(590,25): error TS2694: Namespace 'Protocol' has no exported member 'Page'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(626,24): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(659,32): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(672,32): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(687,32): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(743,24): error TS2339: Property 'remove' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(751,50): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(825,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(852,31): error TS2339: Property 'baseURL' does not exist on type 'DOMNode'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(853,65): error TS2339: Property 'baseURL' does not exist on type 'DOMNode'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(860,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(880,34): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(896,7): error TS2322: Type 'DOMNode' is not assignable to type 'this'. - 'DOMNode' is assignable to the constraint of type 'this', but 'this' could be instantiated with a different subtype of constraint 'DOMNode'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(928,12): error TS2339: Property 'scrollIntoViewIfNeeded' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(940,29): error TS2339: Property 'pageAgent' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(947,12): error TS2339: Property 'focus' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(986,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(1042,24): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(1062,26): error TS2339: Property 'domAgent' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(1070,12): error TS2339: Property 'registerDOMDispatcher' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(1128,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(1165,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(1176,34): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(1188,46): error TS2339: Property 'valuesArray' does not exist on type 'Set'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(1202,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(1214,16): error TS2345: Argument of type 'T' is not assignable to parameter of type 'T'. - 'T' could be instantiated with an arbitrary type which could be unrelated to 'T'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(1220,24): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(1235,24): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(1248,31): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(1251,32): error TS2339: Property 'addAll' does not exist on type 'Set'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(1277,24): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(1288,24): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(1300,24): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(1313,24): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(1323,24): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(1324,32): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(1337,24): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(1348,24): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(1349,24): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(1350,24): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(1362,24): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(1363,24): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(1375,24): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(1376,24): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(1391,24): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(1392,24): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(1408,24): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(1409,24): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(1425,24): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(1426,24): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(1442,24): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(1443,32): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(1501,24): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(1509,24): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(1511,34): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(1518,24): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(1520,41): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(1594,26): error TS2694: Namespace 'Protocol' has no exported member 'DOMDispatcher'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(1608,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'DOMDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(1614,24): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(1618,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'DOMDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(1624,24): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(1627,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'DOMDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(1633,32): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(1635,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'DOMDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(1641,24): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(1644,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'DOMDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(1650,24): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(1651,32): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(1653,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'DOMDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(1659,24): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(1662,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'DOMDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(1668,24): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(1669,24): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(1670,24): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(1672,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'DOMDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(1678,24): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(1679,24): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(1681,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'DOMDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(1687,24): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(1688,24): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(1690,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'DOMDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(1696,24): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(1697,24): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(1699,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'DOMDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(1705,24): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(1706,24): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(1708,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'DOMDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(1714,24): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(1715,24): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(1717,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'DOMDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(1723,24): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(1724,32): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(1726,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'DOMDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/DOMModel.js(1801,17): error TS2339: Property 'remove' does not exist on type 'DOMModel[]'. -node_modules/chrome-devtools-frontend/front_end/sdk/DebuggerModel.js(41,12): error TS2339: Property 'registerDebuggerDispatcher' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/sdk/DebuggerModel.js(42,26): error TS2339: Property 'debuggerAgent' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/sdk/DebuggerModel.js(231,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/DebuggerModel.js(319,24): error TS2694: Namespace 'Protocol' has no exported member 'Debugger'. -node_modules/chrome-devtools-frontend/front_end/sdk/DebuggerModel.js(346,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/DebuggerModel.js(347,34): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/DebuggerModel.js(355,24): error TS2694: Namespace 'Protocol' has no exported member 'Debugger'. -node_modules/chrome-devtools-frontend/front_end/sdk/DebuggerModel.js(356,24): error TS2694: Namespace 'Protocol' has no exported member 'Debugger'. -node_modules/chrome-devtools-frontend/front_end/sdk/DebuggerModel.js(389,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/DebuggerModel.js(419,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/DebuggerModel.js(421,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/sdk/DebuggerModel.js(429,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/DebuggerModel.js(431,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/sdk/DebuggerModel.js(431,50): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/DebuggerModel.js(433,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/DebuggerModel.js(434,32): error TS2694: Namespace 'Protocol' has no exported member 'Debugger'. -node_modules/chrome-devtools-frontend/front_end/sdk/DebuggerModel.js(435,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/DebuggerModel.js(436,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/DebuggerModel.js(498,32): error TS2694: Namespace 'Protocol' has no exported member 'Debugger'. -node_modules/chrome-devtools-frontend/front_end/sdk/DebuggerModel.js(502,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/DebuggerModel.js(503,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/DebuggerModel.js(504,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/DebuggerModel.js(521,31): error TS2339: Property '_continueToLocationCallback' does not exist on type 'DebuggerModel'. -node_modules/chrome-devtools-frontend/front_end/sdk/DebuggerModel.js(522,27): error TS2339: Property '_continueToLocationCallback' does not exist on type 'DebuggerModel'. -node_modules/chrome-devtools-frontend/front_end/sdk/DebuggerModel.js(523,19): error TS2339: Property '_continueToLocationCallback' does not exist on type 'DebuggerModel'. -node_modules/chrome-devtools-frontend/front_end/sdk/DebuggerModel.js(540,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/DebuggerModel.js(546,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/DebuggerModel.js(700,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/DebuggerModel.js(711,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/DebuggerModel.js(816,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/DebuggerModel.js(829,24): error TS2694: Namespace 'Protocol' has no exported member 'Debugger'. -node_modules/chrome-devtools-frontend/front_end/sdk/DebuggerModel.js(830,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/sdk/DebuggerModel.js(838,24): error TS2694: Namespace 'Protocol' has no exported member 'Debugger'. -node_modules/chrome-devtools-frontend/front_end/sdk/DebuggerModel.js(839,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/sdk/DebuggerModel.js(899,22): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/DebuggerModel.js(967,31): error TS2694: Namespace 'Protocol' has no exported member 'Debugger'. -node_modules/chrome-devtools-frontend/front_end/sdk/DebuggerModel.js(974,26): error TS2694: Namespace 'Protocol' has no exported member 'DebuggerDispatcher'. -node_modules/chrome-devtools-frontend/front_end/sdk/DebuggerModel.js(987,32): error TS2694: Namespace 'Protocol' has no exported member 'Debugger'. -node_modules/chrome-devtools-frontend/front_end/sdk/DebuggerModel.js(991,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/DebuggerModel.js(992,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/DebuggerModel.js(993,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/DebuggerModel.js(995,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'DebuggerDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/DebuggerModel.js(1003,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'DebuggerDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/DebuggerModel.js(1009,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/DebuggerModel.js(1015,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/DebuggerModel.js(1024,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'DebuggerDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/DebuggerModel.js(1034,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/DebuggerModel.js(1040,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/DebuggerModel.js(1048,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'DebuggerDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/DebuggerModel.js(1058,24): error TS2694: Namespace 'Protocol' has no exported member 'Debugger'. -node_modules/chrome-devtools-frontend/front_end/sdk/DebuggerModel.js(1059,24): error TS2694: Namespace 'Protocol' has no exported member 'Debugger'. -node_modules/chrome-devtools-frontend/front_end/sdk/DebuggerModel.js(1061,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'DebuggerDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/DebuggerModel.js(1085,24): error TS2694: Namespace 'Protocol' has no exported member 'Debugger'. -node_modules/chrome-devtools-frontend/front_end/sdk/DebuggerModel.js(1093,25): error TS2694: Namespace 'Protocol' has no exported member 'Debugger'. -node_modules/chrome-devtools-frontend/front_end/sdk/DebuggerModel.js(1111,26): error TS2339: Property '_continueToLocationCallback' does not exist on type 'DebuggerModel'. -node_modules/chrome-devtools-frontend/front_end/sdk/DebuggerModel.js(1117,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/sdk/DebuggerModel.js(1148,24): error TS2694: Namespace 'Protocol' has no exported member 'Debugger'. -node_modules/chrome-devtools-frontend/front_end/sdk/DebuggerModel.js(1158,24): error TS2694: Namespace 'Protocol' has no exported member 'Debugger'. -node_modules/chrome-devtools-frontend/front_end/sdk/DebuggerModel.js(1174,24): error TS2694: Namespace 'Protocol' has no exported member 'Debugger'. -node_modules/chrome-devtools-frontend/front_end/sdk/DebuggerModel.js(1197,32): error TS2694: Namespace 'Protocol' has no exported member 'Debugger'. -node_modules/chrome-devtools-frontend/front_end/sdk/DebuggerModel.js(1311,7): error TS2739: Type '{ error: any; }' is missing the following properties from type 'EvaluationResult': object, exceptionDetails -node_modules/chrome-devtools-frontend/front_end/sdk/DebuggerModel.js(1313,5): error TS2741: Property 'error' is missing in type '{ object: RemoteObject; exceptionDetails: any; }' but required in type 'EvaluationResult'. -node_modules/chrome-devtools-frontend/front_end/sdk/DebuggerModel.js(1446,32): error TS2694: Namespace 'Protocol' has no exported member 'Debugger'. -node_modules/chrome-devtools-frontend/front_end/sdk/DebuggerModel.js(1450,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/DebuggerModel.js(1451,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/DebuggerModel.js(1472,30): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/DebuggerModel.js(1476,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/DebuggerModel.js(1477,25): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/EmulationModel.js(11,35): error TS2339: Property 'emulationAgent' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/sdk/EmulationModel.js(12,30): error TS2339: Property 'pageAgent' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/sdk/EmulationModel.js(13,43): error TS2339: Property 'deviceOrientationAgent' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/sdk/EmulationModel.js(51,24): error TS2694: Namespace 'Protocol' has no exported member 'PageAgent'. -node_modules/chrome-devtools-frontend/front_end/sdk/EmulationModel.js(148,5): error TS2741: Property 'scriptId' is missing in type '{ enabled: boolean; configuration: string; }' but required in type '{ enabled: boolean; configuration: string; scriptId: string; }'. -node_modules/chrome-devtools-frontend/front_end/sdk/FilmStripModel.js(77,30): error TS2339: Property 'upperBound' does not exist on type 'Frame[]'. -node_modules/chrome-devtools-frontend/front_end/sdk/HeapProfilerModel.js(10,12): error TS2339: Property 'registerHeapProfilerDispatcher' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/sdk/HeapProfilerModel.js(12,38): error TS2339: Property 'heapProfilerAgent' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/sdk/HeapProfilerModel.js(44,34): error TS2694: Namespace 'Protocol' has no exported member 'HeapProfiler'. -node_modules/chrome-devtools-frontend/front_end/sdk/HeapProfilerModel.js(158,26): error TS2694: Namespace 'Protocol' has no exported member 'HeapProfilerDispatcher'. -node_modules/chrome-devtools-frontend/front_end/sdk/HeapProfilerModel.js(170,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'HeapProfilerDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/HeapProfilerModel.js(179,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'HeapProfilerDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/HeapProfilerModel.js(187,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'HeapProfilerDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/HeapProfilerModel.js(197,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'HeapProfilerDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/HeapProfilerModel.js(204,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'HeapProfilerDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/LayerTreeBase.js(5,25): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/sdk/LayerTreeBase.js(18,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/sdk/LayerTreeBase.js(23,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/sdk/LayerTreeBase.js(28,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/sdk/LayerTreeBase.js(33,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/sdk/LayerTreeBase.js(38,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/sdk/LayerTreeBase.js(48,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/sdk/LayerTreeBase.js(53,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/sdk/LayerTreeBase.js(58,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/sdk/LayerTreeBase.js(63,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/sdk/LayerTreeBase.js(68,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/sdk/LayerTreeBase.js(73,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/sdk/LayerTreeBase.js(78,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/sdk/LayerTreeBase.js(83,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/sdk/LayerTreeBase.js(88,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/sdk/LayerTreeBase.js(93,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/sdk/LayerTreeBase.js(98,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/sdk/LayerTreeBase.js(103,25): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/sdk/LayerTreeBase.js(108,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/sdk/LayerTreeBase.js(108,33): error TS2694: Namespace 'Protocol' has no exported member 'LayerTree'. -node_modules/chrome-devtools-frontend/front_end/sdk/LayerTreeBase.js(113,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/sdk/LayerTreeBase.js(118,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/sdk/LayerTreeBase.js(123,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/sdk/LayerTreeBase.js(128,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/sdk/LayerTreeBase.js(133,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/sdk/LayerTreeBase.js(148,24): error TS2694: Namespace 'Protocol' has no exported member 'LayerTree'. -node_modules/chrome-devtools-frontend/front_end/sdk/LayerTreeBase.js(152,26): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/sdk/LayerTreeBase.js(154,26): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/sdk/LayerTreeBase.js(168,25): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/sdk/LayerTreeBase.js(175,25): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/sdk/LayerTreeBase.js(251,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/sdk/LayerTreeBase.js(284,33): error TS2339: Property 'keysArray' does not exist on type 'Map'. -node_modules/chrome-devtools-frontend/front_end/sdk/LogModel.js(6,26): error TS2694: Namespace 'Protocol' has no exported member 'LogDispatcher'. -node_modules/chrome-devtools-frontend/front_end/sdk/LogModel.js(14,12): error TS2339: Property 'registerLogDispatcher' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/sdk/LogModel.js(15,29): error TS2339: Property 'logAgent' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/sdk/LogModel.js(28,24): error TS2694: Namespace 'Protocol' has no exported member 'Log'. -node_modules/chrome-devtools-frontend/front_end/sdk/LogModel.js(30,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'SDKModel'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(41,33): error TS2339: Property 'networkAgent' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(42,12): error TS2339: Property 'registerNetworkDispatcher' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(122,25): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(128,36): error TS2551: Property '_connectionTypes' does not exist on type 'typeof NetworkManager'. Did you mean '_connectionType'? -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(130,26): error TS2551: Property '_connectionTypes' does not exist on type 'typeof NetworkManager'. Did you mean '_connectionType'? -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(131,34): error TS2551: Property '_connectionTypes' does not exist on type 'typeof NetworkManager'. Did you mean '_connectionType'? -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(154,5): error TS2322: Type '{}' is not assignable to type '{ [x: string]: string; }'. - Index signature is missing in type '{}'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(260,26): error TS2694: Namespace 'Protocol' has no exported member 'NetworkDispatcher'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(269,34): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(276,24): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(291,24): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(304,24): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(322,20): error TS2339: Property 'connectionReused' does not exist on type 'NetworkRequest'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(382,24): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(383,24): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(384,24): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(386,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'NetworkDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(394,24): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(395,24): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(397,24): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(398,24): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(399,24): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(400,24): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(401,24): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(402,24): error TS2694: Namespace 'Protocol' has no exported member 'Page'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(403,24): error TS2694: Namespace 'Protocol' has no exported member 'Page'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(405,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'NetworkDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(430,24): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(432,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'NetworkDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(442,24): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(443,24): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(444,24): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(445,24): error TS2694: Namespace 'Protocol' has no exported member 'Page'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(446,24): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(447,24): error TS2694: Namespace 'Protocol' has no exported member 'Page'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(449,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'NetworkDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(486,24): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(487,24): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(491,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'NetworkDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(506,24): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(507,24): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(511,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'NetworkDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(520,24): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(521,24): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(522,24): error TS2694: Namespace 'Protocol' has no exported member 'Page'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(525,24): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(527,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'NetworkDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(549,24): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(551,24): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(553,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'NetworkDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(562,24): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(563,24): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(564,24): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(565,24): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(567,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'NetworkDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(581,24): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(582,24): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(583,24): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(585,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'NetworkDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(606,24): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(607,24): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(608,24): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(610,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'NetworkDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(623,24): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(624,24): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(625,24): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(627,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'NetworkDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(640,24): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(641,24): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(644,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'NetworkDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(657,24): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(658,24): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(660,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'NetworkDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(669,24): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(670,24): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(675,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'NetworkDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(684,24): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(685,24): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(686,24): error TS2694: Namespace 'Protocol' has no exported member 'Page'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(687,24): error TS2694: Namespace 'Protocol' has no exported member 'Page'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(690,24): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(691,24): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(693,24): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(695,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'NetworkDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(699,32): error TS2339: Property 'networkAgent' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(704,24): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(705,24): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(742,24): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(777,24): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(779,24): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(782,24): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(799,31): error TS2694: Namespace 'Protocol' has no exported member 'NetworkAgent'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(827,21): error TS2339: Property 'sprintf' does not exist on type 'StringConstructor'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(835,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Object'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(836,31): error TS2339: Property 'networkAgent' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(854,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Object'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(855,32): error TS2339: Property 'networkAgent' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(891,24): error TS2694: Namespace 'Protocol' has no exported member 'NetworkAgent'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(905,24): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(1025,47): error TS2345: Argument of type '(arg0: InterceptedRequest) => Promise' is not assignable to parameter of type 'K'. - 'K' could be instantiated with an arbitrary type which could be unrelated to '(arg0: InterceptedRequest) => Promise'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(1027,43): error TS2345: Argument of type '(arg0: InterceptedRequest) => Promise' is not assignable to parameter of type 'K'. - 'K' could be instantiated with an arbitrary type which could be unrelated to '(arg0: InterceptedRequest) => Promise'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(1060,13): error TS2349: This expression is not callable. - Type '{}' has no call signatures. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(1084,19): error TS2339: Property 'networkAgent' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(1089,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(1101,35): error TS2345: Argument of type '{ 'User-Agent': string; 'Cache-Control': string; }' is not assignable to parameter of type '{ [x: string]: string; }'. - Index signature is missing in type '{ 'User-Agent': string; 'Cache-Control': string; }'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(1115,24): error TS2694: Namespace 'Protocol' has no exported member 'NetworkAgent'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(1116,24): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(1117,24): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(1118,24): error TS2694: Namespace 'Protocol' has no exported member 'Page'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(1119,24): error TS2694: Namespace 'Protocol' has no exported member 'Page'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(1122,24): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(1123,24): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(1125,24): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(1185,21): error TS2339: Property 'substring' does not exist on type 'string | ArrayBuffer'. - Property 'substring' does not exist on type 'ArrayBuffer'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(1185,38): error TS2339: Property 'indexOf' does not exist on type 'string | ArrayBuffer'. - Property 'indexOf' does not exist on type 'ArrayBuffer'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(1196,24): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkManager.js(1215,66): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkRequest.js(36,24): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkRequest.js(39,24): error TS2694: Namespace 'Protocol' has no exported member 'Page'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkRequest.js(40,24): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkRequest.js(41,24): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkRequest.js(51,26): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkRequest.js(58,26): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkRequest.js(66,26): error TS2694: Namespace 'Protocol' has no exported member 'Security'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkRequest.js(69,26): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkRequest.js(71,26): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkRequest.js(94,26): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkRequest.js(97,26): error TS2694: Namespace 'Protocol' has no exported member 'Security'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkRequest.js(99,26): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkRequest.js(119,25): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkRequest.js(126,24): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkRequest.js(166,25): error TS2694: Namespace 'Protocol' has no exported member 'Page'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkRequest.js(173,25): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkRequest.js(196,24): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkRequest.js(203,25): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkRequest.js(210,25): error TS2694: Namespace 'Protocol' has no exported member 'Security'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkRequest.js(217,24): error TS2694: Namespace 'Protocol' has no exported member 'Security'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkRequest.js(224,25): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkRequest.js(231,24): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkRequest.js(408,25): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkRequest.js(415,24): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkRequest.js(466,25): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkRequest.js(473,24): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkRequest.js(543,82): error TS2339: Property 'asParsedURL' does not exist on type 'string'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkRequest.js(919,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Object'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkRequest.js(927,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Object'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkRequest.js(935,9): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Object'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkRequest.js(943,9): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Object'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkRequest.js(954,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Object'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkRequest.js(980,24): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkRequest.js(987,25): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkRequest.js(994,24): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkRequest.js(1001,25): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkRequest.js(1019,13): error TS2339: Property 'src' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkRequest.js(1026,25): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/NetworkRequest.js(1054,24): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/OverlayModel.js(6,26): error TS2694: Namespace 'Protocol' has no exported member 'OverlayDispatcher'. -node_modules/chrome-devtools-frontend/front_end/sdk/OverlayModel.js(16,12): error TS2339: Property 'registerOverlayDispatcher' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/sdk/OverlayModel.js(17,33): error TS2339: Property 'overlayAgent' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/sdk/OverlayModel.js(81,22): error TS2339: Property '_highlightDisabled' does not exist on type 'typeof OverlayModel'. -node_modules/chrome-devtools-frontend/front_end/sdk/OverlayModel.js(85,22): error TS2339: Property '_highlightDisabled' does not exist on type 'typeof OverlayModel'. -node_modules/chrome-devtools-frontend/front_end/sdk/OverlayModel.js(119,5): error TS2322: Type 'DefaultHighlighter | Highlighter' is not assignable to type 'DefaultHighlighter'. - Property '_model' is missing in type 'Highlighter' but required in type 'DefaultHighlighter'. -node_modules/chrome-devtools-frontend/front_end/sdk/OverlayModel.js(123,24): error TS2694: Namespace 'Protocol' has no exported member 'Overlay'. -node_modules/chrome-devtools-frontend/front_end/sdk/OverlayModel.js(141,24): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/sdk/OverlayModel.js(143,24): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/sdk/OverlayModel.js(144,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/OverlayModel.js(147,45): error TS2345: Argument of type '{ mode: string; }' is not assignable to parameter of type '{ mode: string; showInfo: boolean; selectors: string; }'. - Type '{ mode: string; }' is missing the following properties from type '{ mode: string; showInfo: boolean; selectors: string; }': showInfo, selectors -node_modules/chrome-devtools-frontend/front_end/sdk/OverlayModel.js(151,24): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/sdk/OverlayModel.js(153,24): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/sdk/OverlayModel.js(154,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/OverlayModel.js(157,26): error TS2339: Property '_highlightDisabled' does not exist on type 'typeof OverlayModel'. -node_modules/chrome-devtools-frontend/front_end/sdk/OverlayModel.js(173,24): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/sdk/OverlayModel.js(181,24): error TS2694: Namespace 'Protocol' has no exported member 'Page'. -node_modules/chrome-devtools-frontend/front_end/sdk/OverlayModel.js(184,26): error TS2339: Property '_highlightDisabled' does not exist on type 'typeof OverlayModel'. -node_modules/chrome-devtools-frontend/front_end/sdk/OverlayModel.js(191,25): error TS2694: Namespace 'Protocol' has no exported member 'Overlay'. -node_modules/chrome-devtools-frontend/front_end/sdk/OverlayModel.js(224,24): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/sdk/OverlayModel.js(226,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'SDKModel'. -node_modules/chrome-devtools-frontend/front_end/sdk/OverlayModel.js(234,24): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/sdk/OverlayModel.js(236,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'SDKModel'. -node_modules/chrome-devtools-frontend/front_end/sdk/OverlayModel.js(243,24): error TS2694: Namespace 'Protocol' has no exported member 'Page'. -node_modules/chrome-devtools-frontend/front_end/sdk/OverlayModel.js(245,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'SDKModel'. -node_modules/chrome-devtools-frontend/front_end/sdk/OverlayModel.js(268,24): error TS2694: Namespace 'Protocol' has no exported member 'Overlay'. -node_modules/chrome-devtools-frontend/front_end/sdk/OverlayModel.js(269,24): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/sdk/OverlayModel.js(270,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/OverlayModel.js(275,24): error TS2694: Namespace 'Protocol' has no exported member 'Overlay'. -node_modules/chrome-devtools-frontend/front_end/sdk/OverlayModel.js(276,24): error TS2694: Namespace 'Protocol' has no exported member 'Overlay'. -node_modules/chrome-devtools-frontend/front_end/sdk/OverlayModel.js(277,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/sdk/OverlayModel.js(282,24): error TS2694: Namespace 'Protocol' has no exported member 'Page'. -node_modules/chrome-devtools-frontend/front_end/sdk/OverlayModel.js(301,24): error TS2694: Namespace 'Protocol' has no exported member 'Overlay'. -node_modules/chrome-devtools-frontend/front_end/sdk/OverlayModel.js(302,24): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/sdk/OverlayModel.js(303,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/OverlayModel.js(305,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'DefaultHighlighter' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/OverlayModel.js(316,24): error TS2694: Namespace 'Protocol' has no exported member 'Overlay'. -node_modules/chrome-devtools-frontend/front_end/sdk/OverlayModel.js(317,24): error TS2694: Namespace 'Protocol' has no exported member 'Overlay'. -node_modules/chrome-devtools-frontend/front_end/sdk/OverlayModel.js(320,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'DefaultHighlighter' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/OverlayModel.js(326,24): error TS2694: Namespace 'Protocol' has no exported member 'Page'. -node_modules/chrome-devtools-frontend/front_end/sdk/OverlayModel.js(328,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'DefaultHighlighter' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/PaintProfiler.js(37,35): error TS2339: Property 'layerTreeAgent' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/sdk/PaintProfiler.js(108,24): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/sdk/PaintProfiler.js(109,41): error TS2694: Namespace 'Protocol' has no exported member 'LayerTree'. -node_modules/chrome-devtools-frontend/front_end/sdk/PerformanceMetricsModel.js(11,26): error TS2339: Property 'performanceAgent' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/sdk/PerformanceMetricsModel.js(29,41): error TS2694: Namespace 'Protocol' has no exported member 'Performance'. -node_modules/chrome-devtools-frontend/front_end/sdk/ProfileTreeModel.js(9,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/ProfileTreeModel.js(12,26): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/ProfileTreeModel.js(80,10): error TS2339: Property 'depth' does not exist on type 'ProfileNode'. -node_modules/chrome-devtools-frontend/front_end/sdk/ProfileTreeModel.js(86,26): error TS2339: Property 'depth' does not exist on type 'ProfileNode'. -node_modules/chrome-devtools-frontend/front_end/sdk/ProfileTreeModel.js(93,15): error TS2339: Property 'depth' does not exist on type 'ProfileNode'. -node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(45,5): error TS2322: Type 'LocalJSONObject' is not assignable to type 'RemoteObject'. - Types of property 'callFunctionJSON' are incompatible. - Type '(functionDeclaration: (this: any) => any, args: any[], callback: (arg0: any) => any) => void' is not assignable to type '(functionDeclaration: (this: any, ...arg1: any[]) => T, args: any[], callback: (arg0: T) => any) => void'. - Types of parameters 'functionDeclaration' and 'functionDeclaration' are incompatible. -node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(73,42): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(73,73): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(87,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(88,25): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(126,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(158,27): error TS2339: Property 'valuesArray' does not exist on type 'Map'. -node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(189,25): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(195,26): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(226,25): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(241,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(255,16): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(263,16): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(275,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(290,16): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(298,16): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(309,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(316,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(324,31): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(333,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(333,39): error TS1110: Type expected. -node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(334,31): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(342,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(342,39): error TS1110: Type expected. -node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(343,31): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(350,16): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(358,16): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(369,39): error TS1110: Type expected. -node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(370,31): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(371,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(378,39): error TS1110: Type expected. -node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(379,31): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(420,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(422,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(423,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(429,48): error TS2339: Property 'runtimeAgent' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(465,25): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(473,25): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(521,25): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(530,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(540,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(549,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(573,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(586,26): error TS2694: Namespace 'Protocol' has no exported member 'RuntimeAgent'. -node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(612,28): error TS2339: Property 'getter' does not exist on type 'RemoteObjectProperty'. -node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(614,28): error TS2339: Property 'setter' does not exist on type 'RemoteObjectProperty'. -node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(636,31): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(663,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(664,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(683,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(703,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(703,39): error TS1110: Type expected. -node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(704,32): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(727,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(728,32): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(729,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(731,3): error TS2416: Property 'callFunctionJSON' in type 'RemoteObjectImpl' is not assignable to the same property in base type 'RemoteObject'. - Type '(functionDeclaration: (this: any) => any, args: any[], callback: (arg0: any) => any, ...args: any[]) => void' is not assignable to type '(functionDeclaration: (this: any, ...arg1: any[]) => T, args: any[], callback: (arg0: T) => any) => void'. - Types of parameters 'functionDeclaration' and 'functionDeclaration' are incompatible. -node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(795,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(797,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(810,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(850,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(851,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(928,20): error TS2339: Property 'getter' does not exist on type 'RemoteObjectProperty'. -node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(928,35): error TS2339: Property 'setter' does not exist on type 'RemoteObjectProperty'. -node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(953,25): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(1033,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(1093,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(1103,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(1152,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(1152,39): error TS1110: Type expected. -node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(1153,31): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(1175,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(1176,31): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(1177,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(1179,3): error TS2416: Property 'callFunctionJSON' in type 'LocalJSONObject' is not assignable to the same property in base type 'RemoteObject'. - Type '(functionDeclaration: (this: any) => any, args: any[], callback: (arg0: any) => any) => void' is not assignable to type '(functionDeclaration: (this: any, ...arg1: any[]) => T, args: any[], callback: (arg0: T) => any) => void'. - Types of parameters 'functionDeclaration' and 'functionDeclaration' are incompatible. -node_modules/chrome-devtools-frontend/front_end/sdk/Resource.js(38,24): error TS2694: Namespace 'Protocol' has no exported member 'Page'. -node_modules/chrome-devtools-frontend/front_end/sdk/Resource.js(39,24): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/Resource.js(56,55): error TS2339: Property 'isValid' does not exist on type 'Date'. -node_modules/chrome-devtools-frontend/front_end/sdk/Resource.js(74,39): error TS2339: Property 'isValid' does not exist on type 'Date'. -node_modules/chrome-devtools-frontend/front_end/sdk/Resource.js(121,25): error TS2694: Namespace 'Protocol' has no exported member 'Page'. -node_modules/chrome-devtools-frontend/front_end/sdk/Resource.js(128,25): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/Resource.js(166,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'Resource' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/Resource.js(174,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'Resource' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/Resource.js(184,9): error TS4112: This member cannot have an 'override' modifier because its containing class 'Resource' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/Resource.js(193,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'Resource' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/Resource.js(219,9): error TS4112: This member cannot have an 'override' modifier because its containing class 'Resource' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/Resource.js(224,57): error TS2339: Property 'pageAgent' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/sdk/Resource.js(241,13): error TS2339: Property 'src' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sdk/Resource.js(263,61): error TS2339: Property 'pageAgent' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/sdk/ResourceTreeModel.js(44,26): error TS2339: Property 'pageAgent' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/sdk/ResourceTreeModel.js(48,12): error TS2339: Property 'registerPageDispatcher' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/sdk/ResourceTreeModel.js(80,56): error TS2339: Property 'valuesArray' does not exist on type 'Map'. -node_modules/chrome-devtools-frontend/front_end/sdk/ResourceTreeModel.js(117,24): error TS2694: Namespace 'Protocol' has no exported member 'Page'. -node_modules/chrome-devtools-frontend/front_end/sdk/ResourceTreeModel.js(161,24): error TS2694: Namespace 'Protocol' has no exported member 'Page'. -node_modules/chrome-devtools-frontend/front_end/sdk/ResourceTreeModel.js(162,24): error TS2694: Namespace 'Protocol' has no exported member 'Page'. -node_modules/chrome-devtools-frontend/front_end/sdk/ResourceTreeModel.js(163,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/ResourceTreeModel.js(184,24): error TS2694: Namespace 'Protocol' has no exported member 'Page'. -node_modules/chrome-devtools-frontend/front_end/sdk/ResourceTreeModel.js(195,22): error TS2345: Argument of type 'ResourceTreeFrame' is not assignable to parameter of type 'boolean'. -node_modules/chrome-devtools-frontend/front_end/sdk/ResourceTreeModel.js(216,24): error TS2694: Namespace 'Protocol' has no exported member 'Page'. -node_modules/chrome-devtools-frontend/front_end/sdk/ResourceTreeModel.js(273,24): error TS2694: Namespace 'Protocol' has no exported member 'Page'. -node_modules/chrome-devtools-frontend/front_end/sdk/ResourceTreeModel.js(281,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/sdk/ResourceTreeModel.js(294,25): error TS2339: Property 'valuesArray' does not exist on type 'Map'. -node_modules/chrome-devtools-frontend/front_end/sdk/ResourceTreeModel.js(308,24): error TS2694: Namespace 'Protocol' has no exported member 'Page'. -node_modules/chrome-devtools-frontend/front_end/sdk/ResourceTreeModel.js(334,24): error TS2694: Namespace 'Protocol' has no exported member 'Page'. -node_modules/chrome-devtools-frontend/front_end/sdk/ResourceTreeModel.js(385,67): error TS2694: Namespace 'Protocol' has no exported member 'Page'. -node_modules/chrome-devtools-frontend/front_end/sdk/ResourceTreeModel.js(395,24): error TS2694: Namespace 'Protocol' has no exported member 'Page'. -node_modules/chrome-devtools-frontend/front_end/sdk/ResourceTreeModel.js(402,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/sdk/ResourceTreeModel.js(402,57): error TS2694: Namespace 'Protocol' has no exported member 'Page'. -node_modules/chrome-devtools-frontend/front_end/sdk/ResourceTreeModel.js(501,24): error TS2694: Namespace 'Protocol' has no exported member 'Page'. -node_modules/chrome-devtools-frontend/front_end/sdk/ResourceTreeModel.js(502,24): error TS2694: Namespace 'Protocol' has no exported member 'Page'. -node_modules/chrome-devtools-frontend/front_end/sdk/ResourceTreeModel.js(503,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/ResourceTreeModel.js(592,33): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/ResourceTreeModel.js(593,25): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/ResourceTreeModel.js(601,25): error TS2339: Property 'parent' does not exist on type 'ResourceTreeFrame'. -node_modules/chrome-devtools-frontend/front_end/sdk/ResourceTreeModel.js(614,24): error TS2694: Namespace 'Protocol' has no exported member 'Page'. -node_modules/chrome-devtools-frontend/front_end/sdk/ResourceTreeModel.js(641,23): error TS2339: Property 'remove' does not exist on type 'ResourceTreeFrame[]'. -node_modules/chrome-devtools-frontend/front_end/sdk/ResourceTreeModel.js(710,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/sdk/ResourceTreeModel.js(744,26): error TS2694: Namespace 'Protocol' has no exported member 'PageDispatcher'. -node_modules/chrome-devtools-frontend/front_end/sdk/ResourceTreeModel.js(759,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'PageDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/ResourceTreeModel.js(767,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'PageDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/ResourceTreeModel.js(774,24): error TS2694: Namespace 'Protocol' has no exported member 'Page'. -node_modules/chrome-devtools-frontend/front_end/sdk/ResourceTreeModel.js(775,24): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/ResourceTreeModel.js(779,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'PageDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/ResourceTreeModel.js(784,24): error TS2694: Namespace 'Protocol' has no exported member 'Page'. -node_modules/chrome-devtools-frontend/front_end/sdk/ResourceTreeModel.js(785,24): error TS2694: Namespace 'Protocol' has no exported member 'Page'. -node_modules/chrome-devtools-frontend/front_end/sdk/ResourceTreeModel.js(786,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/ResourceTreeModel.js(788,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'PageDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/ResourceTreeModel.js(794,24): error TS2694: Namespace 'Protocol' has no exported member 'Page'. -node_modules/chrome-devtools-frontend/front_end/sdk/ResourceTreeModel.js(796,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'PageDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/ResourceTreeModel.js(802,24): error TS2694: Namespace 'Protocol' has no exported member 'Page'. -node_modules/chrome-devtools-frontend/front_end/sdk/ResourceTreeModel.js(804,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'PageDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/ResourceTreeModel.js(810,24): error TS2694: Namespace 'Protocol' has no exported member 'Page'. -node_modules/chrome-devtools-frontend/front_end/sdk/ResourceTreeModel.js(812,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'PageDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/ResourceTreeModel.js(817,24): error TS2694: Namespace 'Protocol' has no exported member 'Page'. -node_modules/chrome-devtools-frontend/front_end/sdk/ResourceTreeModel.js(819,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'PageDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/ResourceTreeModel.js(824,24): error TS2694: Namespace 'Protocol' has no exported member 'Page'. -node_modules/chrome-devtools-frontend/front_end/sdk/ResourceTreeModel.js(827,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'PageDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/ResourceTreeModel.js(832,24): error TS2694: Namespace 'Protocol' has no exported member 'Page'. -node_modules/chrome-devtools-frontend/front_end/sdk/ResourceTreeModel.js(834,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'PageDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/ResourceTreeModel.js(840,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'PageDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/ResourceTreeModel.js(851,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'PageDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/ResourceTreeModel.js(859,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'PageDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/ResourceTreeModel.js(865,24): error TS2694: Namespace 'Protocol' has no exported member 'Page'. -node_modules/chrome-devtools-frontend/front_end/sdk/ResourceTreeModel.js(868,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'PageDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/ResourceTreeModel.js(875,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'PageDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/ResourceTreeModel.js(881,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'PageDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/ResourceTreeModel.js(889,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'PageDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/ResourceTreeModel.js(901,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'PageDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/RuntimeModel.js(41,26): error TS2339: Property 'runtimeAgent' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/sdk/RuntimeModel.js(42,19): error TS2339: Property 'registerRuntimeDispatcher' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/sdk/RuntimeModel.js(96,39): error TS2339: Property 'valuesArray' does not exist on type 'Map'. -node_modules/chrome-devtools-frontend/front_end/sdk/RuntimeModel.js(100,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/sdk/RuntimeModel.js(125,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/RuntimeModel.js(133,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/RuntimeModel.js(168,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/RuntimeModel.js(173,5): error TS2322: Type 'RemoteObjectImpl' is not assignable to type 'RemoteObject'. - Types of property 'callFunctionJSON' are incompatible. - Type '(functionDeclaration: (this: any) => any, args: any[], callback: (arg0: any) => any, ...args: any[]) => void' is not assignable to type '(functionDeclaration: (this: any, ...arg1: any[]) => T, args: any[], callback: (arg0: T) => any) => void'. - Types of parameters 'functionDeclaration' and 'functionDeclaration' are incompatible. -node_modules/chrome-devtools-frontend/front_end/sdk/RuntimeModel.js(179,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/RuntimeModel.js(184,5): error TS2322: Type 'ScopeRemoteObject' is not assignable to type 'RemoteObject'. - Types of property 'callFunctionJSON' are incompatible. - Type '(functionDeclaration: (this: any) => any, args: any[], callback: (arg0: any) => any, ...args: any[]) => void' is not assignable to type '(functionDeclaration: (this: any, ...arg1: any[]) => T, args: any[], callback: (arg0: T) => any) => void'. - Types of parameters 'functionDeclaration' and 'functionDeclaration' are incompatible. -node_modules/chrome-devtools-frontend/front_end/sdk/RuntimeModel.js(209,5): error TS2322: Type 'RemoteObjectImpl' is not assignable to type 'RemoteObject'. -node_modules/chrome-devtools-frontend/front_end/sdk/RuntimeModel.js(267,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/RuntimeModel.js(294,7): error TS2739: Type '{ error: any; }' is missing the following properties from type 'EvaluationResult': object, exceptionDetails -node_modules/chrome-devtools-frontend/front_end/sdk/RuntimeModel.js(296,5): error TS2741: Property 'error' is missing in type '{ object: RemoteObject; exceptionDetails: any; }' but required in type 'EvaluationResult'. -node_modules/chrome-devtools-frontend/front_end/sdk/RuntimeModel.js(305,7): error TS2741: Property 'objects' is missing in type '{ error: string; }' but required in type 'QueryObjectResult'. -node_modules/chrome-devtools-frontend/front_end/sdk/RuntimeModel.js(311,7): error TS2741: Property 'objects' is missing in type '{ error: any; }' but required in type 'QueryObjectResult'. -node_modules/chrome-devtools-frontend/front_end/sdk/RuntimeModel.js(313,5): error TS2741: Property 'error' is missing in type '{ objects: RemoteObject; }' but required in type 'QueryObjectResult'. -node_modules/chrome-devtools-frontend/front_end/sdk/RuntimeModel.js(317,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/RuntimeModel.js(398,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/RuntimeModel.js(414,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/RuntimeModel.js(430,32): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/RuntimeModel.js(433,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/RuntimeModel.js(449,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/RuntimeModel.js(458,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/RuntimeModel.js(484,54): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/RuntimeModel.js(488,27): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/RuntimeModel.js(489,36): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/RuntimeModel.js(507,36): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/RuntimeModel.js(523,30): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/RuntimeModel.js(526,30): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/RuntimeModel.js(532,26): error TS2694: Namespace 'Protocol' has no exported member 'RuntimeDispatcher'. -node_modules/chrome-devtools-frontend/front_end/sdk/RuntimeModel.js(545,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/RuntimeModel.js(547,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'RuntimeDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/RuntimeModel.js(553,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/RuntimeModel.js(555,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'RuntimeDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/RuntimeModel.js(562,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'RuntimeDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/RuntimeModel.js(569,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/RuntimeModel.js(571,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'RuntimeDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/RuntimeModel.js(580,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'RuntimeDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/RuntimeModel.js(587,32): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/RuntimeModel.js(590,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/RuntimeModel.js(593,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'RuntimeDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/RuntimeModel.js(599,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/RuntimeModel.js(602,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'RuntimeDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/RuntimeModel.js(727,7): error TS2739: Type '{ error: any; }' is missing the following properties from type 'EvaluationResult': object, exceptionDetails -node_modules/chrome-devtools-frontend/front_end/sdk/RuntimeModel.js(729,5): error TS2741: Property 'error' is missing in type '{ object: RemoteObject; exceptionDetails: any; }' but required in type 'EvaluationResult'. -node_modules/chrome-devtools-frontend/front_end/sdk/RuntimeModel.js(767,33): error TS2339: Property 'asParsedURL' does not exist on type 'string'. -node_modules/chrome-devtools-frontend/front_end/sdk/ScreenCaptureModel.js(6,26): error TS2694: Namespace 'Protocol' has no exported member 'PageDispatcher'. -node_modules/chrome-devtools-frontend/front_end/sdk/ScreenCaptureModel.js(14,26): error TS2339: Property 'pageAgent' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/sdk/ScreenCaptureModel.js(15,17): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/sdk/ScreenCaptureModel.js(15,44): error TS2694: Namespace 'Protocol' has no exported member 'Page'. -node_modules/chrome-devtools-frontend/front_end/sdk/ScreenCaptureModel.js(17,17): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/sdk/ScreenCaptureModel.js(19,12): error TS2339: Property 'registerPageDispatcher' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/sdk/ScreenCaptureModel.js(28,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/sdk/ScreenCaptureModel.js(28,41): error TS2694: Namespace 'Protocol' has no exported member 'Page'. -node_modules/chrome-devtools-frontend/front_end/sdk/ScreenCaptureModel.js(29,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/sdk/ScreenCaptureModel.js(46,24): error TS2694: Namespace 'Protocol' has no exported member 'Page'. -node_modules/chrome-devtools-frontend/front_end/sdk/ScreenCaptureModel.js(72,24): error TS2694: Namespace 'Protocol' has no exported member 'Page'. -node_modules/chrome-devtools-frontend/front_end/sdk/ScreenCaptureModel.js(75,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'SDKModel'. -node_modules/chrome-devtools-frontend/front_end/sdk/ScreenCaptureModel.js(85,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'SDKModel'. -node_modules/chrome-devtools-frontend/front_end/sdk/ScreenCaptureModel.js(94,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'SDKModel'. -node_modules/chrome-devtools-frontend/front_end/sdk/ScreenCaptureModel.js(101,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'SDKModel'. -node_modules/chrome-devtools-frontend/front_end/sdk/ScreenCaptureModel.js(106,24): error TS2694: Namespace 'Protocol' has no exported member 'Page'. -node_modules/chrome-devtools-frontend/front_end/sdk/ScreenCaptureModel.js(107,24): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/sdk/ScreenCaptureModel.js(111,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'SDKModel'. -node_modules/chrome-devtools-frontend/front_end/sdk/ScreenCaptureModel.js(116,24): error TS2694: Namespace 'Protocol' has no exported member 'Page'. -node_modules/chrome-devtools-frontend/front_end/sdk/ScreenCaptureModel.js(117,24): error TS2694: Namespace 'Protocol' has no exported member 'Page'. -node_modules/chrome-devtools-frontend/front_end/sdk/ScreenCaptureModel.js(119,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'SDKModel'. -node_modules/chrome-devtools-frontend/front_end/sdk/ScreenCaptureModel.js(124,24): error TS2694: Namespace 'Protocol' has no exported member 'Page'. -node_modules/chrome-devtools-frontend/front_end/sdk/ScreenCaptureModel.js(126,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'SDKModel'. -node_modules/chrome-devtools-frontend/front_end/sdk/ScreenCaptureModel.js(131,24): error TS2694: Namespace 'Protocol' has no exported member 'Page'. -node_modules/chrome-devtools-frontend/front_end/sdk/ScreenCaptureModel.js(133,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'SDKModel'. -node_modules/chrome-devtools-frontend/front_end/sdk/ScreenCaptureModel.js(138,24): error TS2694: Namespace 'Protocol' has no exported member 'Page'. -node_modules/chrome-devtools-frontend/front_end/sdk/ScreenCaptureModel.js(140,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'SDKModel'. -node_modules/chrome-devtools-frontend/front_end/sdk/ScreenCaptureModel.js(145,24): error TS2694: Namespace 'Protocol' has no exported member 'Page'. -node_modules/chrome-devtools-frontend/front_end/sdk/ScreenCaptureModel.js(147,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'SDKModel'. -node_modules/chrome-devtools-frontend/front_end/sdk/ScreenCaptureModel.js(152,24): error TS2694: Namespace 'Protocol' has no exported member 'Page'. -node_modules/chrome-devtools-frontend/front_end/sdk/ScreenCaptureModel.js(155,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'SDKModel'. -node_modules/chrome-devtools-frontend/front_end/sdk/ScreenCaptureModel.js(160,24): error TS2694: Namespace 'Protocol' has no exported member 'Page'. -node_modules/chrome-devtools-frontend/front_end/sdk/ScreenCaptureModel.js(162,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'SDKModel'. -node_modules/chrome-devtools-frontend/front_end/sdk/ScreenCaptureModel.js(168,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'SDKModel'. -node_modules/chrome-devtools-frontend/front_end/sdk/ScreenCaptureModel.js(178,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'SDKModel'. -node_modules/chrome-devtools-frontend/front_end/sdk/ScreenCaptureModel.js(186,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'SDKModel'. -node_modules/chrome-devtools-frontend/front_end/sdk/ScreenCaptureModel.js(192,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'SDKModel'. -node_modules/chrome-devtools-frontend/front_end/sdk/ScreenCaptureModel.js(198,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'SDKModel'. -node_modules/chrome-devtools-frontend/front_end/sdk/ScreenCaptureModel.js(208,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'SDKModel'. -node_modules/chrome-devtools-frontend/front_end/sdk/Script.js(39,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/Script.js(114,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'Script' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/Script.js(122,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'Script' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/Script.js(130,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'Script' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/Script.js(138,9): error TS4112: This member cannot have an 'override' modifier because its containing class 'Script' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/Script.js(143,52): error TS2339: Property 'debuggerAgent' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/sdk/Script.js(169,9): error TS4112: This member cannot have an 'override' modifier because its containing class 'Script' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/Script.js(174,43): error TS2339: Property 'debuggerAgent' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/sdk/Script.js(190,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/sdk/Script.js(190,50): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/Script.js(190,95): error TS2694: Namespace 'Protocol' has no exported member 'Debugger'. -node_modules/chrome-devtools-frontend/front_end/sdk/Script.js(190,127): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/Script.js(190,158): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/Script.js(203,54): error TS2339: Property 'debuggerAgent' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/sdk/Script.js(247,31): error TS2694: Namespace 'Protocol' has no exported member 'Debugger'. -node_modules/chrome-devtools-frontend/front_end/sdk/Script.js(251,54): error TS2339: Property 'debuggerAgent' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/sdk/SecurityOriginManager.js(41,34): error TS2339: Property 'valuesArray' does not exist on type 'Set'. -node_modules/chrome-devtools-frontend/front_end/sdk/ServerTiming.js(30,12): error TS2339: Property 'pushAll' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/sdk/ServerTiming.js(110,28): error TS2345: Argument of type 'TemplateStringsArray' is not assignable to parameter of type 'string | string[]'. - Type 'TemplateStringsArray' is not assignable to type 'string[]'. -node_modules/chrome-devtools-frontend/front_end/sdk/ServerTiming.js(129,32): error TS2345: Argument of type 'TemplateStringsArray' is not assignable to parameter of type 'string | string[]'. - Type 'TemplateStringsArray' is not assignable to type 'string[]'. -node_modules/chrome-devtools-frontend/front_end/sdk/ServerTiming.js(134,32): error TS2345: Argument of type 'TemplateStringsArray' is not assignable to parameter of type 'string | string[]'. - Type 'TemplateStringsArray' is not assignable to type 'string[]'. -node_modules/chrome-devtools-frontend/front_end/sdk/ServerTiming.js(139,30): error TS2345: Argument of type 'TemplateStringsArray' is not assignable to parameter of type 'string | string[]'. - Type 'TemplateStringsArray' is not assignable to type 'string[]'. -node_modules/chrome-devtools-frontend/front_end/sdk/ServerTiming.js(149,26): error TS2345: Argument of type 'TemplateStringsArray' is not assignable to parameter of type 'string | string[]'. - Type 'TemplateStringsArray' is not assignable to type 'string[]'. -node_modules/chrome-devtools-frontend/front_end/sdk/ServerTiming.js(165,78): error TS2554: Expected 2 arguments, but got 3. -node_modules/chrome-devtools-frontend/front_end/sdk/ServiceWorkerCacheModel.js(5,26): error TS2694: Namespace 'Protocol' has no exported member 'StorageDispatcher'. -node_modules/chrome-devtools-frontend/front_end/sdk/ServiceWorkerCacheModel.js(15,12): error TS2339: Property 'registerStorageDispatcher' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/sdk/ServiceWorkerCacheModel.js(20,31): error TS2339: Property 'cacheStorageAgent' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/sdk/ServiceWorkerCacheModel.js(21,33): error TS2339: Property 'storageAgent' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/sdk/ServiceWorkerCacheModel.js(94,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/sdk/ServiceWorkerCacheModel.js(94,41): error TS2694: Namespace 'Protocol' has no exported member 'CacheStorage'. -node_modules/chrome-devtools-frontend/front_end/sdk/ServiceWorkerCacheModel.js(151,36): error TS2339: Property 'asParsedURL' does not exist on type 'string'. -node_modules/chrome-devtools-frontend/front_end/sdk/ServiceWorkerCacheModel.js(236,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/sdk/ServiceWorkerCacheModel.js(236,40): error TS2694: Namespace 'Protocol' has no exported member 'CacheStorage'. -node_modules/chrome-devtools-frontend/front_end/sdk/ServiceWorkerCacheModel.js(251,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'SDKModel'. -node_modules/chrome-devtools-frontend/front_end/sdk/ServiceWorkerCacheModel.js(266,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'SDKModel'. -node_modules/chrome-devtools-frontend/front_end/sdk/ServiceWorkerCacheModel.js(275,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'SDKModel'. -node_modules/chrome-devtools-frontend/front_end/sdk/ServiceWorkerCacheModel.js(284,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'SDKModel'. -node_modules/chrome-devtools-frontend/front_end/sdk/ServiceWorkerCacheModel.js(326,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'Cache' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/ServiceWorkerCacheModel.js(332,34): error TS2694: Namespace 'Protocol' has no exported member 'CacheStorage'. -node_modules/chrome-devtools-frontend/front_end/sdk/ServiceWorkerManager.js(40,12): error TS2339: Property 'registerServiceWorkerDispatcher' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/sdk/ServiceWorkerManager.js(42,26): error TS2339: Property 'serviceWorkerAgent' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/sdk/ServiceWorkerManager.js(177,32): error TS2694: Namespace 'Protocol' has no exported member 'ServiceWorker'. -node_modules/chrome-devtools-frontend/front_end/sdk/ServiceWorkerManager.js(200,32): error TS2694: Namespace 'Protocol' has no exported member 'ServiceWorker'. -node_modules/chrome-devtools-frontend/front_end/sdk/ServiceWorkerManager.js(223,24): error TS2694: Namespace 'Protocol' has no exported member 'ServiceWorker'. -node_modules/chrome-devtools-frontend/front_end/sdk/ServiceWorkerManager.js(256,26): error TS2694: Namespace 'Protocol' has no exported member 'ServiceWorkerDispatcher'. -node_modules/chrome-devtools-frontend/front_end/sdk/ServiceWorkerManager.js(269,32): error TS2694: Namespace 'Protocol' has no exported member 'ServiceWorker'. -node_modules/chrome-devtools-frontend/front_end/sdk/ServiceWorkerManager.js(271,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ServiceWorkerDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/ServiceWorkerManager.js(277,32): error TS2694: Namespace 'Protocol' has no exported member 'ServiceWorker'. -node_modules/chrome-devtools-frontend/front_end/sdk/ServiceWorkerManager.js(279,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ServiceWorkerDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/ServiceWorkerManager.js(285,24): error TS2694: Namespace 'Protocol' has no exported member 'ServiceWorker'. -node_modules/chrome-devtools-frontend/front_end/sdk/ServiceWorkerManager.js(287,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ServiceWorkerDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/ServiceWorkerManager.js(298,24): error TS2694: Namespace 'Protocol' has no exported member 'ServiceWorker'. -node_modules/chrome-devtools-frontend/front_end/sdk/ServiceWorkerManager.js(306,24): error TS2694: Namespace 'Protocol' has no exported member 'ServiceWorker'. -node_modules/chrome-devtools-frontend/front_end/sdk/ServiceWorkerManager.js(437,24): error TS2694: Namespace 'Protocol' has no exported member 'ServiceWorker'. -node_modules/chrome-devtools-frontend/front_end/sdk/ServiceWorkerManager.js(444,33): error TS2694: Namespace 'Protocol' has no exported member 'ServiceWorker'. -node_modules/chrome-devtools-frontend/front_end/sdk/ServiceWorkerManager.js(449,24): error TS2694: Namespace 'Protocol' has no exported member 'ServiceWorker'. -node_modules/chrome-devtools-frontend/front_end/sdk/ServiceWorkerManager.js(480,24): error TS2694: Namespace 'Protocol' has no exported member 'ServiceWorker'. -node_modules/chrome-devtools-frontend/front_end/sdk/ServiceWorkerManager.js(553,68): error TS2339: Property 'valuesArray' does not exist on type 'Map'. -node_modules/chrome-devtools-frontend/front_end/sdk/ServiceWorkerManager.js(608,36): error TS2339: Property 'asParsedURL' does not exist on type 'string'. -node_modules/chrome-devtools-frontend/front_end/sdk/SourceMap.js(106,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/sdk/SourceMap.js(111,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/sdk/SourceMap.js(116,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/sdk/SourceMap.js(123,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/sdk/SourceMap.js(129,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/sdk/SourceMap.js(136,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/sdk/SourceMap.js(141,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/sdk/SourceMap.js(148,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/sdk/SourceMap.js(178,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/sdk/SourceMap.js(196,28): error TS2339: Property '_base64Map' does not exist on type 'typeof TextSourceMap'. -node_modules/chrome-devtools-frontend/front_end/sdk/SourceMap.js(198,25): error TS2339: Property '_base64Map' does not exist on type 'typeof TextSourceMap'. -node_modules/chrome-devtools-frontend/front_end/sdk/SourceMap.js(200,27): error TS2339: Property '_base64Map' does not exist on type 'typeof TextSourceMap'. -node_modules/chrome-devtools-frontend/front_end/sdk/SourceMap.js(255,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'TextSourceMap' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/SourceMap.js(263,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'TextSourceMap' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/SourceMap.js(271,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'TextSourceMap' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/SourceMap.js(272,30): error TS2339: Property 'keysArray' does not exist on type 'Map'. -node_modules/chrome-devtools-frontend/front_end/sdk/SourceMap.js(281,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'TextSourceMap' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/SourceMap.js(293,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'TextSourceMap' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/SourceMap.js(303,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'TextSourceMap' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/SourceMap.js(313,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'TextSourceMap' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/SourceMap.js(323,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'TextSourceMap' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/SourceMap.js(325,26): error TS2339: Property 'upperBound' does not exist on type 'SourceMapEntry[]'. -node_modules/chrome-devtools-frontend/front_end/sdk/SourceMap.js(338,26): error TS2339: Property 'lowerBound' does not exist on type 'SourceMapEntry[]'. -node_modules/chrome-devtools-frontend/front_end/sdk/SourceMap.js(339,25): error TS2339: Property 'upperBound' does not exist on type 'SourceMapEntry[]'. -node_modules/chrome-devtools-frontend/front_end/sdk/SourceMap.js(344,24): error TS2339: Property 'lowerBound' does not exist on type 'SourceMapEntry[]'. -node_modules/chrome-devtools-frontend/front_end/sdk/SourceMap.js(367,29): error TS2339: Property 'upperBound' does not exist on type 'SourceMapEntry[]'. -node_modules/chrome-devtools-frontend/front_end/sdk/SourceMap.js(422,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/sdk/SourceMap.js(444,30): error TS2339: Property 'sourcesContent' does not exist on type 'SourceMapV3'. -node_modules/chrome-devtools-frontend/front_end/sdk/SourceMap.js(444,58): error TS2339: Property 'sourcesContent' does not exist on type 'SourceMapV3'. -node_modules/chrome-devtools-frontend/front_end/sdk/SourceMap.js(507,20): error TS2339: Property 'stableSort' does not exist on type 'SourceMapEntry[]'. -node_modules/chrome-devtools-frontend/front_end/sdk/SourceMap.js(527,37): error TS2339: Property '_base64Map' does not exist on type 'typeof TextSourceMap'. -node_modules/chrome-devtools-frontend/front_end/sdk/SourceMap.js(558,18): error TS2339: Property 'lowerBound' does not exist on type 'SourceMapEntry[]'. -node_modules/chrome-devtools-frontend/front_end/sdk/SourceMap.js(559,29): error TS2339: Property 'upperBound' does not exist on type 'SourceMapEntry[]'. -node_modules/chrome-devtools-frontend/front_end/sdk/SourceMapManager.js(85,41): error TS2345: Argument of type 'string' is not assignable to parameter of type 'K'. - 'K' could be instantiated with an arbitrary type which could be unrelated to 'string'. -node_modules/chrome-devtools-frontend/front_end/sdk/SourceMapManager.js(86,46): error TS2345: Argument of type 'string' is not assignable to parameter of type 'K'. - 'K' could be instantiated with an arbitrary type which could be unrelated to 'string'. -node_modules/chrome-devtools-frontend/front_end/sdk/SourceMapManager.js(86,63): error TS2339: Property 'valuesArray' does not exist on type 'Set'. -node_modules/chrome-devtools-frontend/front_end/sdk/SourceMapManager.js(87,51): error TS2345: Argument of type 'string' is not assignable to parameter of type 'K'. - 'K' could be instantiated with an arbitrary type which could be unrelated to 'string'. -node_modules/chrome-devtools-frontend/front_end/sdk/SourceMapManager.js(87,68): error TS2339: Property 'valuesArray' does not exist on type 'Set'. -node_modules/chrome-devtools-frontend/front_end/sdk/SourceMapManager.js(141,49): error TS2345: Argument of type 'string' is not assignable to parameter of type 'K'. - 'K' could be instantiated with an arbitrary type which could be unrelated to 'string'. -node_modules/chrome-devtools-frontend/front_end/sdk/SourceMapManager.js(146,44): error TS2345: Argument of type 'string' is not assignable to parameter of type 'K'. - 'K' could be instantiated with an arbitrary type which could be unrelated to 'string'. -node_modules/chrome-devtools-frontend/front_end/sdk/SourceMapManager.js(163,12): error TS2339: Property 'catchException' does not exist on type 'Promise'. -node_modules/chrome-devtools-frontend/front_end/sdk/SourceMapManager.js(173,60): error TS2345: Argument of type 'string' is not assignable to parameter of type 'K'. - 'K' could be instantiated with an arbitrary type which could be unrelated to 'string'. -node_modules/chrome-devtools-frontend/front_end/sdk/SourceMapManager.js(174,52): error TS2345: Argument of type 'string' is not assignable to parameter of type 'K'. - 'K' could be instantiated with an arbitrary type which could be unrelated to 'string'. -node_modules/chrome-devtools-frontend/front_end/sdk/SourceMapManager.js(193,39): error TS2345: Argument of type 'string' is not assignable to parameter of type 'K'. - 'K' could be instantiated with an arbitrary type which could be unrelated to 'string'. -node_modules/chrome-devtools-frontend/front_end/sdk/SourceMapManager.js(210,31): error TS2339: Property 'containsAll' does not exist on type 'Set'. -node_modules/chrome-devtools-frontend/front_end/sdk/SourceMapManager.js(227,47): error TS2345: Argument of type 'string' is not assignable to parameter of type 'K'. - 'K' could be instantiated with an arbitrary type which could be unrelated to 'string'. -node_modules/chrome-devtools-frontend/front_end/sdk/SourceMapManager.js(228,53): error TS2345: Argument of type 'string' is not assignable to parameter of type 'K'. - 'K' could be instantiated with an arbitrary type which could be unrelated to 'string'. -node_modules/chrome-devtools-frontend/front_end/sdk/SourceMapManager.js(232,40): error TS2345: Argument of type 'string' is not assignable to parameter of type 'K'. - 'K' could be instantiated with an arbitrary type which could be unrelated to 'string'. -node_modules/chrome-devtools-frontend/front_end/sdk/SourceMapManager.js(234,42): error TS2345: Argument of type 'string' is not assignable to parameter of type 'K'. - 'K' could be instantiated with an arbitrary type which could be unrelated to 'string'. -node_modules/chrome-devtools-frontend/front_end/sdk/Target.js(148,48): error TS2339: Property 'valuesArray' does not exist on type 'Map'. -node_modules/chrome-devtools-frontend/front_end/sdk/Target.js(159,53): error TS2345: Argument of type 'new (arg1: Target) => T' is not assignable to parameter of type 'new (arg1: Target) => SDKModel'. - Type 'T' is not assignable to type 'SDKModel'. -node_modules/chrome-devtools-frontend/front_end/sdk/Target.js(166,48): error TS2345: Argument of type 'new (arg1: Target) => T' is not assignable to parameter of type 'new (arg1: Target) => SDKModel'. - Type 'T' is not assignable to type 'SDKModel'. -node_modules/chrome-devtools-frontend/front_end/sdk/Target.js(191,34): error TS2339: Property 'asParsedURL' does not exist on type 'string'. -node_modules/chrome-devtools-frontend/front_end/sdk/TargetManager.js(15,103): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/sdk/TargetManager.js(27,16): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/sdk/TargetManager.js(104,35): error TS2345: Argument of type 'new (arg1: Target) => T' is not assignable to parameter of type 'new (arg1: Target) => SDKModel'. - Type 'T' is not assignable to type 'SDKModel'. -node_modules/chrome-devtools-frontend/front_end/sdk/TargetManager.js(105,32): error TS2345: Argument of type 'new (arg1: Target) => T' is not assignable to parameter of type 'new (arg1: Target) => SDKModel'. -node_modules/chrome-devtools-frontend/front_end/sdk/TargetManager.js(106,30): error TS2345: Argument of type 'new (arg1: Target) => T' is not assignable to parameter of type 'new (arg1: Target) => SDKModel'. -node_modules/chrome-devtools-frontend/front_end/sdk/TargetManager.js(108,27): error TS2345: Argument of type 'T' is not assignable to parameter of type 'T'. - 'T' could be instantiated with an arbitrary type which could be unrelated to 'T'. -node_modules/chrome-devtools-frontend/front_end/sdk/TargetManager.js(117,35): error TS2345: Argument of type 'new (arg1: Target) => T' is not assignable to parameter of type 'new (arg1: Target) => SDKModel'. - Type 'T' is not assignable to type 'SDKModel'. -node_modules/chrome-devtools-frontend/front_end/sdk/TargetManager.js(119,46): error TS2345: Argument of type 'new (arg1: Target) => T' is not assignable to parameter of type 'new (arg1: Target) => SDKModel'. -node_modules/chrome-devtools-frontend/front_end/sdk/TargetManager.js(120,15): error TS2339: Property 'remove' does not exist on type 'SDKModelObserver[]'. -node_modules/chrome-devtools-frontend/front_end/sdk/TargetManager.js(122,35): error TS2345: Argument of type 'new (arg1: Target) => T' is not assignable to parameter of type 'new (arg1: Target) => SDKModel'. -node_modules/chrome-devtools-frontend/front_end/sdk/TargetManager.js(134,27): error TS2345: Argument of type 'SDKModel' is not assignable to parameter of type 'T'. - 'T' could be instantiated with an arbitrary type which could be unrelated to 'SDKModel'. -node_modules/chrome-devtools-frontend/front_end/sdk/TargetManager.js(146,29): error TS2345: Argument of type 'SDKModel' is not assignable to parameter of type 'T'. - 'T' could be instantiated with an arbitrary type which could be unrelated to 'SDKModel'. -node_modules/chrome-devtools-frontend/front_end/sdk/TargetManager.js(152,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/sdk/TargetManager.js(157,42): error TS2345: Argument of type 'Function' is not assignable to parameter of type 'new (arg1: Target) => any'. - Type 'Function' provides no match for the signature 'new (arg1: Target): any'. -node_modules/chrome-devtools-frontend/front_end/sdk/TargetManager.js(169,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/sdk/TargetManager.js(177,42): error TS2345: Argument of type 'Function' is not assignable to parameter of type 'new (arg1: Target) => any'. -node_modules/chrome-devtools-frontend/front_end/sdk/TargetManager.js(209,21): error TS2339: Property 'remove' does not exist on type 'Observer[]'. -node_modules/chrome-devtools-frontend/front_end/sdk/TargetManager.js(237,34): error TS2345: Argument of type 'Function' is not assignable to parameter of type 'new (arg1: Target) => any'. -node_modules/chrome-devtools-frontend/front_end/sdk/TargetManager.js(267,19): error TS2339: Property 'remove' does not exist on type 'Target[]'. -node_modules/chrome-devtools-frontend/front_end/sdk/TargetManager.js(279,34): error TS2345: Argument of type 'Function' is not assignable to parameter of type 'new (arg1: Target) => any'. -node_modules/chrome-devtools-frontend/front_end/sdk/TargetManager.js(319,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/sdk/TargetManager.js(352,12): error TS2339: Property 'runtimeAgent' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/sdk/TargetManager.js(381,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/sdk/TargetManager.js(391,26): error TS2694: Namespace 'Protocol' has no exported member 'TargetDispatcher'. -node_modules/chrome-devtools-frontend/front_end/sdk/TargetManager.js(401,38): error TS2339: Property 'targetAgent' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/sdk/TargetManager.js(406,18): error TS2339: Property 'registerTargetDispatcher' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/sdk/TargetManager.js(415,31): error TS2339: Property 'events' does not exist on type 'InspectorFrontendHostAPI'. -node_modules/chrome-devtools-frontend/front_end/sdk/TargetManager.js(454,29): error TS2339: Property 'events' does not exist on type 'InspectorFrontendHostAPI'. -node_modules/chrome-devtools-frontend/front_end/sdk/TargetManager.js(483,24): error TS2694: Namespace 'Protocol' has no exported member 'Target'. -node_modules/chrome-devtools-frontend/front_end/sdk/TargetManager.js(485,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ChildTargetManager' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/TargetManager.js(501,24): error TS2694: Namespace 'Protocol' has no exported member 'Target'. -node_modules/chrome-devtools-frontend/front_end/sdk/TargetManager.js(503,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ChildTargetManager' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/TargetManager.js(520,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ChildTargetManager' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/TargetManager.js(530,24): error TS2694: Namespace 'Protocol' has no exported member 'Target'. -node_modules/chrome-devtools-frontend/front_end/sdk/TargetManager.js(533,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ChildTargetManager' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/TargetManager.js(552,12): error TS2339: Property 'runtimeAgent' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/sdk/TargetManager.js(563,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ChildTargetManager' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/TargetManager.js(574,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ChildTargetManager' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/TargetManager.js(581,24): error TS2694: Namespace 'Protocol' has no exported member 'TargetAgent'. -node_modules/chrome-devtools-frontend/front_end/sdk/TargetManager.js(598,24): error TS2694: Namespace 'Protocol' has no exported member 'TargetAgent'. -node_modules/chrome-devtools-frontend/front_end/sdk/TargetManager.js(613,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ChildConnection' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/TargetManager.js(621,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ChildConnection' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/TracingManager.js(36,33): error TS2339: Property 'tracingAgent' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/sdk/TracingManager.js(37,12): error TS2339: Property 'registerTracingDispatcher' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/sdk/TracingManager.js(127,26): error TS2694: Namespace 'Protocol' has no exported member 'TracingDispatcher'. -node_modules/chrome-devtools-frontend/front_end/sdk/TracingManager.js(144,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'TracingDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/TracingManager.js(152,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'TracingDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/TracingManager.js(159,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'TracingDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sdk/TracingModel.js(250,47): error TS2339: Property 'id' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/sdk/TracingModel.js(254,37): error TS2339: Property 'id' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/sdk/TracingModel.js(283,5): error TS2322: Type 'NamedObject[]' is not assignable to type 'Process[]'. - Type 'NamedObject' is missing the following properties from type 'Process': _threads, _threadByName, id, threadById, and 4 more. -node_modules/chrome-devtools-frontend/front_end/sdk/TracingModel.js(283,65): error TS2339: Property 'valuesArray' does not exist on type 'Map'. -node_modules/chrome-devtools-frontend/front_end/sdk/TracingModel.js(305,23): error TS2339: Property 'stableSort' does not exist on type 'Event[]'. -node_modules/chrome-devtools-frontend/front_end/sdk/TracingModel.js(338,52): error TS2339: Property 'id' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/sdk/TracingModel.js(354,27): error TS2339: Property 'peekLast' does not exist on type 'AsyncEvent[]'. -node_modules/chrome-devtools-frontend/front_end/sdk/TracingModel.js(375,71): error TS2339: Property 'id' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/sdk/TracingModel.js(398,39): error TS2339: Property 'peekLast' does not exist on type 'Event[]'. -node_modules/chrome-devtools-frontend/front_end/sdk/TracingModel.js(485,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/sdk/TracingModel.js(541,13): error TS2339: Property 'id' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/sdk/TracingModel.js(543,13): error TS2339: Property 'bind_id' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/sdk/TracingModel.js(576,43): error TS2339: Property 'ordinal' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/sdk/TracingModel.js(576,55): error TS2339: Property 'ordinal' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/sdk/TracingModel.js(666,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/sdk/TracingModel.js(870,5): error TS2322: Type 'NamedObject[]' is not assignable to type 'Thread[]'. - Type 'NamedObject' is missing the following properties from type 'Thread': _process, _events, _asyncEvents, _lastTopLevelEvent, and 7 more. -node_modules/chrome-devtools-frontend/front_end/sdk/TracingModel.js(870,61): error TS2339: Property 'valuesArray' does not exist on type 'Map'. -node_modules/chrome-devtools-frontend/front_end/sdk/TracingModel.js(888,23): error TS2339: Property 'stableSort' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/sdk/TracingModel.js(889,18): error TS2339: Property 'stableSort' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/sdk/TracingModel.js(917,18): error TS2339: Property 'remove' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/sdk_test_runner/PageMockTestRunner.js(17,38): error TS2554: Expected 5 arguments, but got 4. -node_modules/chrome-devtools-frontend/front_end/sdk_test_runner/PageMockTestRunner.js(88,20): error TS2339: Property 'hashCode' does not exist on type 'StringConstructor'. -node_modules/chrome-devtools-frontend/front_end/security/SecurityModel.js(14,34): error TS2339: Property 'securityAgent' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/security/SecurityModel.js(15,12): error TS2339: Property 'registerSecurityDispatcher' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/security/SecurityModel.js(34,24): error TS2694: Namespace 'Protocol' has no exported member 'Security'. -node_modules/chrome-devtools-frontend/front_end/security/SecurityModel.js(35,24): error TS2694: Namespace 'Protocol' has no exported member 'Security'. -node_modules/chrome-devtools-frontend/front_end/security/SecurityModel.js(40,32): error TS2339: Property '_symbolicToNumericSecurityState' does not exist on type 'typeof SecurityModel'. -node_modules/chrome-devtools-frontend/front_end/security/SecurityModel.js(41,49): error TS2339: Property '_symbolicToNumericSecurityState' does not exist on type 'typeof SecurityModel'. -node_modules/chrome-devtools-frontend/front_end/security/SecurityModel.js(53,30): error TS2339: Property '_symbolicToNumericSecurityState' does not exist on type 'typeof SecurityModel'. -node_modules/chrome-devtools-frontend/front_end/security/SecurityModel.js(75,24): error TS2694: Namespace 'Protocol' has no exported member 'Security'. -node_modules/chrome-devtools-frontend/front_end/security/SecurityModel.js(77,31): error TS2694: Namespace 'Protocol' has no exported member 'Security'. -node_modules/chrome-devtools-frontend/front_end/security/SecurityModel.js(78,24): error TS2694: Namespace 'Protocol' has no exported member 'Security'. -node_modules/chrome-devtools-frontend/front_end/security/SecurityModel.js(91,26): error TS2694: Namespace 'Protocol' has no exported member 'SecurityDispatcher'. -node_modules/chrome-devtools-frontend/front_end/security/SecurityModel.js(101,24): error TS2694: Namespace 'Protocol' has no exported member 'Security'. -node_modules/chrome-devtools-frontend/front_end/security/SecurityModel.js(103,31): error TS2694: Namespace 'Protocol' has no exported member 'Security'. -node_modules/chrome-devtools-frontend/front_end/security/SecurityModel.js(104,24): error TS2694: Namespace 'Protocol' has no exported member 'Security'. -node_modules/chrome-devtools-frontend/front_end/security/SecurityModel.js(107,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'SecurityDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/security/SecurityModel.js(120,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'SecurityDispatcher' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/security/SecurityPanel.js(21,31): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/security/SecurityPanel.js(30,61): error TS2345: Argument of type 'this' is not assignable to parameter of type 'SDKModelObserver'. - Type 'SecurityPanel' is not assignable to type 'SDKModelObserver'. - Types of property 'modelAdded' are incompatible. - Type '(securityModel: SecurityModel) => void' is not assignable to type '(model: T) => void'. -node_modules/chrome-devtools-frontend/front_end/security/SecurityPanel.js(47,9): error TS2339: Property 'consume' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/security/SecurityPanel.js(60,9): error TS2339: Property 'consume' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/security/SecurityPanel.js(85,20): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/security/SecurityPanel.js(86,20): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/security/SecurityPanel.js(87,20): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/security/SecurityPanel.js(94,24): error TS2694: Namespace 'Protocol' has no exported member 'Security'. -node_modules/chrome-devtools-frontend/front_end/security/SecurityPanel.js(101,24): error TS2694: Namespace 'Protocol' has no exported member 'Security'. -node_modules/chrome-devtools-frontend/front_end/security/SecurityPanel.js(108,24): error TS2694: Namespace 'Protocol' has no exported member 'Security'. -node_modules/chrome-devtools-frontend/front_end/security/SecurityPanel.js(110,31): error TS2694: Namespace 'Protocol' has no exported member 'Security'. -node_modules/chrome-devtools-frontend/front_end/security/SecurityPanel.js(111,24): error TS2694: Namespace 'Protocol' has no exported member 'Security'. -node_modules/chrome-devtools-frontend/front_end/security/SecurityPanel.js(125,46): error TS2694: Namespace 'Protocol' has no exported member 'Security'. -node_modules/chrome-devtools-frontend/front_end/security/SecurityPanel.js(127,52): error TS2694: Namespace 'Protocol' has no exported member 'Security'. -node_modules/chrome-devtools-frontend/front_end/security/SecurityPanel.js(128,54): error TS2694: Namespace 'Protocol' has no exported member 'Security'. -node_modules/chrome-devtools-frontend/front_end/security/SecurityPanel.js(200,46): error TS2694: Namespace 'Protocol' has no exported member 'Security'. -node_modules/chrome-devtools-frontend/front_end/security/SecurityPanel.js(214,52): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/security/SecurityPanel.js(225,11): error TS2403: Subsequent variable declarations must have the same type. Variable 'originState' must be of type 'OriginState', but here has type '{}'. -node_modules/chrome-devtools-frontend/front_end/security/SecurityPanel.js(283,24): error TS2694: Namespace 'Protocol' has no exported member 'Security'. -node_modules/chrome-devtools-frontend/front_end/security/SecurityPanel.js(284,24): error TS2694: Namespace 'Protocol' has no exported member 'Security'. -node_modules/chrome-devtools-frontend/front_end/security/SecurityPanel.js(285,25): error TS2694: Namespace 'Protocol' has no exported member 'Security'. -node_modules/chrome-devtools-frontend/front_end/security/SecurityPanel.js(295,3): error TS2416: Property 'modelAdded' in type 'SecurityPanel' is not assignable to the same property in base type 'SDKModelObserver'. - Type '(securityModel: SecurityModel) => void' is not assignable to type '(model: T) => void'. -node_modules/chrome-devtools-frontend/front_end/security/SecurityPanel.js(295,3): error TS2416: Property 'modelAdded' in type 'SecurityPanel' is not assignable to the same property in base type 'SDKModelObserver'. - Type '(securityModel: SecurityModel) => void' is not assignable to type '(model: T) => void'. - Types of parameters 'securityModel' and 'model' are incompatible. - Type 'T' is not assignable to type 'SecurityModel'. -node_modules/chrome-devtools-frontend/front_end/security/SecurityPanel.js(295,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'PanelWithSidebar'. -node_modules/chrome-devtools-frontend/front_end/security/SecurityPanel.js(323,3): error TS2416: Property 'modelRemoved' in type 'SecurityPanel' is not assignable to the same property in base type 'SDKModelObserver'. - Type '(securityModel: SecurityModel) => void' is not assignable to type '(model: T) => void'. -node_modules/chrome-devtools-frontend/front_end/security/SecurityPanel.js(323,3): error TS2416: Property 'modelRemoved' in type 'SecurityPanel' is not assignable to the same property in base type 'SDKModelObserver'. - Type '(securityModel: SecurityModel) => void' is not assignable to type '(model: T) => void'. - Types of parameters 'securityModel' and 'model' are incompatible. - Type 'T' is not assignable to type 'SecurityModel'. -node_modules/chrome-devtools-frontend/front_end/security/SecurityPanel.js(323,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'PanelWithSidebar'. -node_modules/chrome-devtools-frontend/front_end/security/SecurityPanel.js(375,25): error TS2694: Namespace 'Protocol' has no exported member 'Security'. -node_modules/chrome-devtools-frontend/front_end/security/SecurityPanel.js(376,25): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/security/SecurityPanel.js(377,23): error TS1099: Type argument list cannot be empty. -node_modules/chrome-devtools-frontend/front_end/security/SecurityPanel.js(389,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/security/SecurityPanel.js(440,24): error TS2694: Namespace 'Protocol' has no exported member 'Security'. -node_modules/chrome-devtools-frontend/front_end/security/SecurityPanel.js(459,24): error TS2694: Namespace 'Protocol' has no exported member 'Security'. -node_modules/chrome-devtools-frontend/front_end/security/SecurityPanel.js(527,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/security/SecurityPanel.js(536,46): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/security/SecurityPanel.js(552,24): error TS2694: Namespace 'Protocol' has no exported member 'Security'. -node_modules/chrome-devtools-frontend/front_end/security/SecurityPanel.js(563,25): error TS2694: Namespace 'Protocol' has no exported member 'Security'. -node_modules/chrome-devtools-frontend/front_end/security/SecurityPanel.js(597,48): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/security/SecurityPanel.js(601,29): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/security/SecurityPanel.js(603,29): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/security/SecurityPanel.js(623,24): error TS2694: Namespace 'Protocol' has no exported member 'Security'. -node_modules/chrome-devtools-frontend/front_end/security/SecurityPanel.js(627,37): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/security/SecurityPanel.js(654,24): error TS2694: Namespace 'Protocol' has no exported member 'Security'. -node_modules/chrome-devtools-frontend/front_end/security/SecurityPanel.js(656,31): error TS2694: Namespace 'Protocol' has no exported member 'Security'. -node_modules/chrome-devtools-frontend/front_end/security/SecurityPanel.js(657,24): error TS2694: Namespace 'Protocol' has no exported member 'Security'. -node_modules/chrome-devtools-frontend/front_end/security/SecurityPanel.js(712,46): error TS2694: Namespace 'Protocol' has no exported member 'Security'. -node_modules/chrome-devtools-frontend/front_end/security/SecurityPanel.js(726,24): error TS2694: Namespace 'Protocol' has no exported member 'Security'. -node_modules/chrome-devtools-frontend/front_end/security/SecurityPanel.js(739,35): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/security/SecurityPanel.js(744,34): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/security/SecurityPanel.js(759,7): error TS2339: Property 'consume' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/security/SecurityPanel.js(783,37): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/security/SecurityPanel.js(784,77): error TS2345: Argument of type 'TemplateStringsArray' is not assignable to parameter of type 'string | string[]'. - Type 'TemplateStringsArray' is not assignable to type 'string[]'. -node_modules/chrome-devtools-frontend/front_end/security/SecurityPanel.js(794,9): error TS2339: Property 'consume' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/security/SecurityPanel.js(803,44): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/security/SecurityPanel.js(819,45): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/security/SecurityPanel.js(824,39): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/security/SecurityPanel.js(891,38): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/security/SecurityPanel.js(895,43): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/security/SecurityPanel.js(900,40): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/security/SecurityPanel.js(921,27): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/security/SecurityPanel.js(927,41): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/security/SecurityPanel.js(947,24): error TS2694: Namespace 'Protocol' has no exported member 'Security'. -node_modules/chrome-devtools-frontend/front_end/security/SecurityPanel.js(980,29): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/security_test_runner/SecurityTestRunner.js(21,29): error TS2488: Type 'HTMLCollectionOf' must have a '[Symbol.iterator]()' method that returns an iterator. -node_modules/chrome-devtools-frontend/front_end/services/ServiceManager.js(65,29): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/services/ServiceManager.js(166,29): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/services/ServiceManager.js(182,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/services/ServiceManager.js(227,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/services/ServiceManager.js(228,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/services/ServiceManager.js(230,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'RemoteServicePort' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/services/ServiceManager.js(244,16): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/services/ServiceManager.js(271,36): error TS2339: Property 'data' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/services/ServiceManager.js(290,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'RemoteServicePort' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/services/ServiceManager.js(304,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'RemoteServicePort' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/services/ServiceManager.js(321,12): error TS2554: Expected 1 arguments, but got 0. -node_modules/chrome-devtools-frontend/front_end/services/ServiceManager.js(340,18): error TS2339: Property 'onclose' does not exist on type 'Worker'. -node_modules/chrome-devtools-frontend/front_end/services/ServiceManager.js(347,17): error TS2339: Property 'data' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/services/ServiceManager.js(351,34): error TS2339: Property 'data' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/services/ServiceManager.js(357,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/services/ServiceManager.js(358,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/services/ServiceManager.js(360,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'WorkerServicePort' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/services/ServiceManager.js(370,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'WorkerServicePort' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/services/ServiceManager.js(385,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'WorkerServicePort' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/settings/FrameworkBlackboxSettingsTab.js(15,25): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/settings/FrameworkBlackboxSettingsTab.js(16,25): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/settings/FrameworkBlackboxSettingsTab.js(39,25): error TS2339: Property 'tabIndex' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/settings/FrameworkBlackboxSettingsTab.js(52,34): error TS2339: Property 'getAsArray' does not exist on type 'Setting'. -node_modules/chrome-devtools-frontend/front_end/settings/FrameworkBlackboxSettingsTab.js(58,41): error TS2339: Property 'getAsArray' does not exist on type 'Setting'. -node_modules/chrome-devtools-frontend/front_end/settings/FrameworkBlackboxSettingsTab.js(67,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/settings/FrameworkBlackboxSettingsTab.js(69,27): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/settings/FrameworkBlackboxSettingsTab.js(72,13): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/settings/FrameworkBlackboxSettingsTab.js(73,13): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/settings/FrameworkBlackboxSettingsTab.js(85,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/settings/FrameworkBlackboxSettingsTab.js(86,34): error TS2339: Property 'getAsArray' does not exist on type 'Setting'. -node_modules/chrome-devtools-frontend/front_end/settings/FrameworkBlackboxSettingsTab.js(88,19): error TS2339: Property 'setAsArray' does not exist on type 'Setting'. -node_modules/chrome-devtools-frontend/front_end/settings/FrameworkBlackboxSettingsTab.js(97,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/settings/FrameworkBlackboxSettingsTab.js(101,30): error TS2339: Property 'getAsArray' does not exist on type 'Setting'. -node_modules/chrome-devtools-frontend/front_end/settings/FrameworkBlackboxSettingsTab.js(104,19): error TS2339: Property 'setAsArray' does not exist on type 'Setting'. -node_modules/chrome-devtools-frontend/front_end/settings/FrameworkBlackboxSettingsTab.js(112,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/settings/FrameworkBlackboxSettingsTab.js(130,26): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/settings/FrameworkBlackboxSettingsTab.js(135,26): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/settings/FrameworkBlackboxSettingsTab.js(153,36): error TS2339: Property 'getAsArray' does not exist on type 'Setting'. -node_modules/chrome-devtools-frontend/front_end/settings/SettingsScreen.js(39,25): error TS2339: Property 'tabIndex' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/settings/SettingsScreen.js(45,10): error TS2339: Property 'createChild' does not exist on type 'DocumentFragment'. -node_modules/chrome-devtools-frontend/front_end/settings/SettingsScreen.js(56,26): error TS2339: Property 'appendView' does not exist on type 'TabbedViewLocation'. -node_modules/chrome-devtools-frontend/front_end/settings/SettingsScreen.js(84,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/settings/SettingsScreen.js(85,5): error TS2322: Type 'TabbedViewLocation' is not assignable to type 'ViewLocation'. -node_modules/chrome-devtools-frontend/front_end/settings/SettingsScreen.js(100,15): error TS2339: Property 'keyCode' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/settings/SettingsScreen.js(119,31): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/settings/SettingsScreen.js(121,42): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/settings/SettingsScreen.js(245,30): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/settings/SettingsScreen.js(247,16): error TS2339: Property 'createTextChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/settings/SettingsScreen.js(248,30): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/settings/SettingsScreen.js(280,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ActionDelegate' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/settings/SettingsScreen.js(306,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'Revealer' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/snippets/ScriptSnippetModel.js(53,56): error TS2345: Argument of type 'this' is not assignable to parameter of type 'SDKModelObserver'. - Type 'ScriptSnippetModel' is not assignable to type 'SDKModelObserver'. - Types of property 'modelAdded' are incompatible. - Type '(debuggerModel: DebuggerModel) => void' is not assignable to type '(model: T) => void'. -node_modules/chrome-devtools-frontend/front_end/snippets/ScriptSnippetModel.js(61,3): error TS2416: Property 'modelAdded' in type 'ScriptSnippetModel' is not assignable to the same property in base type 'SDKModelObserver'. - Type '(debuggerModel: DebuggerModel) => void' is not assignable to type '(model: T) => void'. -node_modules/chrome-devtools-frontend/front_end/snippets/ScriptSnippetModel.js(61,3): error TS2416: Property 'modelAdded' in type 'ScriptSnippetModel' is not assignable to the same property in base type 'SDKModelObserver'. - Type '(debuggerModel: DebuggerModel) => void' is not assignable to type '(model: T) => void'. - Types of parameters 'debuggerModel' and 'model' are incompatible. - Type 'T' is not assignable to type 'DebuggerModel'. -node_modules/chrome-devtools-frontend/front_end/snippets/ScriptSnippetModel.js(61,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Object'. -node_modules/chrome-devtools-frontend/front_end/snippets/ScriptSnippetModel.js(69,3): error TS2416: Property 'modelRemoved' in type 'ScriptSnippetModel' is not assignable to the same property in base type 'SDKModelObserver'. - Type '(debuggerModel: DebuggerModel) => void' is not assignable to type '(model: T) => void'. -node_modules/chrome-devtools-frontend/front_end/snippets/ScriptSnippetModel.js(69,3): error TS2416: Property 'modelRemoved' in type 'ScriptSnippetModel' is not assignable to the same property in base type 'SDKModelObserver'. - Type '(debuggerModel: DebuggerModel) => void' is not assignable to type '(model: T) => void'. - Types of parameters 'debuggerModel' and 'model' are incompatible. - Type 'T' is not assignable to type 'DebuggerModel'. -node_modules/chrome-devtools-frontend/front_end/snippets/ScriptSnippetModel.js(69,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Object'. -node_modules/chrome-devtools-frontend/front_end/snippets/ScriptSnippetModel.js(70,35): error TS2339: Property 'remove' does not exist on type 'Map'. -node_modules/chrome-devtools-frontend/front_end/snippets/ScriptSnippetModel.js(78,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Object'. -node_modules/chrome-devtools-frontend/front_end/snippets/ScriptSnippetModel.js(92,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Object'. -node_modules/chrome-devtools-frontend/front_end/snippets/ScriptSnippetModel.js(165,36): error TS2339: Property 'remove' does not exist on type 'Map'. -node_modules/chrome-devtools-frontend/front_end/snippets/ScriptSnippetModel.js(172,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/snippets/ScriptSnippetModel.js(181,20): error TS2345: Argument of type 'Snippet' is not assignable to parameter of type 'boolean'. -node_modules/chrome-devtools-frontend/front_end/snippets/ScriptSnippetModel.js(183,20): error TS2345: Argument of type 'UISourceCode' is not assignable to parameter of type 'boolean'. -node_modules/chrome-devtools-frontend/front_end/snippets/ScriptSnippetModel.js(207,35): error TS2339: Property 'valuesArray' does not exist on type 'Map'. -node_modules/chrome-devtools-frontend/front_end/snippets/ScriptSnippetModel.js(249,46): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/snippets/ScriptSnippetModel.js(260,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/snippets/ScriptSnippetModel.js(280,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/snippets/ScriptSnippetModel.js(293,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/snippets/ScriptSnippetModel.js(329,35): error TS2339: Property 'valuesArray' does not exist on type 'Map'. -node_modules/chrome-devtools-frontend/front_end/snippets/ScriptSnippetModel.js(379,33): error TS2339: Property 'remove' does not exist on type 'Map'. -node_modules/chrome-devtools-frontend/front_end/snippets/ScriptSnippetModel.js(380,42): error TS2339: Property 'remove' does not exist on type 'Map'. -node_modules/chrome-devtools-frontend/front_end/snippets/ScriptSnippetModel.js(485,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'SnippetContentProvider' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/snippets/ScriptSnippetModel.js(493,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'SnippetContentProvider' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/snippets/ScriptSnippetModel.js(501,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'SnippetContentProvider' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/snippets/ScriptSnippetModel.js(509,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'SnippetContentProvider' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/snippets/ScriptSnippetModel.js(520,9): error TS4112: This member cannot have an 'override' modifier because its containing class 'SnippetContentProvider' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/snippets/ScriptSnippetModel.js(560,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/snippets/ScriptSnippetModel.js(579,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/snippets/SnippetStorage.js(62,27): error TS2339: Property 'valuesArray' does not exist on type 'Map'. -node_modules/chrome-devtools-frontend/front_end/source_frame/FontView.js(62,16): error TS2339: Property 'sprintf' does not exist on type 'StringConstructor'. -node_modules/chrome-devtools-frontend/front_end/source_frame/FontView.js(78,21): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/source_frame/FontView.js(79,19): error TS2339: Property 'createTextChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/source_frame/FontView.js(82,29): error TS2339: Property 'style' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/source_frame/FontView.js(83,29): error TS2339: Property 'style' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/source_frame/FontView.js(84,29): error TS2339: Property 'style' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/source_frame/FontView.js(87,24): error TS2339: Property 'style' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/source_frame/FontView.js(88,24): error TS2339: Property 'style' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/source_frame/FontView.js(89,24): error TS2339: Property 'style' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/source_frame/FontView.js(90,24): error TS2339: Property 'style' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/source_frame/FontView.js(91,24): error TS2339: Property 'style' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/source_frame/FontView.js(92,24): error TS2339: Property 'style' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/source_frame/FontView.js(123,45): error TS2339: Property 'offsetWidth' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/source_frame/FontView.js(123,85): error TS2339: Property 'offsetHeight' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/source_frame/FontView.js(133,29): error TS2339: Property 'style' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/source_frame/FontView.js(140,41): error TS2339: Property 'offsetWidth' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/source_frame/FontView.js(141,42): error TS2339: Property 'offsetHeight' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/source_frame/FontView.js(144,31): error TS2339: Property 'style' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/source_frame/FontView.js(152,29): error TS2339: Property 'style' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/source_frame/ImageView.js(58,36): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/source_frame/ImageView.js(105,36): error TS2339: Property 'bytesToString' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/source_frame/ImageView.js(149,10): error TS2339: Property 'download' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/source_frame/ImageView.js(150,10): error TS2339: Property 'href' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/source_frame/ImageView.js(151,10): error TS2339: Property 'click' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/source_frame/JSONView.js(66,47): error TS2345: Argument of type 'number' is not assignable to parameter of type 'string'. -node_modules/chrome-devtools-frontend/front_end/source_frame/JSONView.js(165,28): error TS2339: Property 'setSearchRegex' does not exist on type 'TreeElement'. -node_modules/chrome-devtools-frontend/front_end/source_frame/JSONView.js(170,23): error TS2339: Property 'setSearchRegex' does not exist on type 'TreeElement'. -node_modules/chrome-devtools-frontend/front_end/source_frame/JSONView.js(199,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/source_frame/JSONView.js(218,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/source_frame/JSONView.js(252,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/source_frame/JSONView.js(262,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/source_frame/JSONView.js(273,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/source_frame/JSONView.js(281,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/source_frame/SourceCodeDiff.js(15,22): error TS2339: Property 'installGutter' does not exist on type 'CodeMirrorTextEditor'. -node_modules/chrome-devtools-frontend/front_end/source_frame/SourceCodeDiff.js(89,28): error TS2339: Property 'toggleLineClass' does not exist on type 'CodeMirrorTextEditor'. -node_modules/chrome-devtools-frontend/front_end/source_frame/SourceCodeDiff.js(202,16): error TS2403: Subsequent variable declarations must have the same type. Variable 'lineNumber' must be of type 'any', but here has type 'number'. -node_modules/chrome-devtools-frontend/front_end/source_frame/SourceCodeDiff.js(206,41): error TS2339: Property 'diff' does not exist on type 'Map'. -node_modules/chrome-devtools-frontend/front_end/source_frame/SourceCodeDiff.js(275,22): error TS2339: Property 'setGutterDecoration' does not exist on type 'CodeMirrorTextEditor'. -node_modules/chrome-devtools-frontend/front_end/source_frame/SourceCodeDiff.js(276,22): error TS2339: Property 'toggleLineClass' does not exist on type 'CodeMirrorTextEditor'. -node_modules/chrome-devtools-frontend/front_end/source_frame/SourceCodeDiff.js(283,22): error TS2339: Property 'setGutterDecoration' does not exist on type 'CodeMirrorTextEditor'. -node_modules/chrome-devtools-frontend/front_end/source_frame/SourceCodeDiff.js(284,22): error TS2339: Property 'toggleLineClass' does not exist on type 'CodeMirrorTextEditor'. -node_modules/chrome-devtools-frontend/front_end/source_frame/SourceFrame.js(319,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'SimpleView'. -node_modules/chrome-devtools-frontend/front_end/source_frame/SourceFrame.js(353,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'SimpleView'. -node_modules/chrome-devtools-frontend/front_end/source_frame/SourceFrame.js(371,32): error TS2339: Property 'lowerBound' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/source_frame/SourceFrame.js(377,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'SimpleView'. -node_modules/chrome-devtools-frontend/front_end/source_frame/SourceFrame.js(386,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'SimpleView'. -node_modules/chrome-devtools-frontend/front_end/source_frame/SourceFrame.js(395,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'SimpleView'. -node_modules/chrome-devtools-frontend/front_end/source_frame/SourceFrame.js(403,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'SimpleView'. -node_modules/chrome-devtools-frontend/front_end/source_frame/SourceFrame.js(426,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'SimpleView'. -node_modules/chrome-devtools-frontend/front_end/source_frame/SourceFrame.js(435,15): error TS2339: Property '__fromRegExpQuery' does not exist on type 'RegExp'. -node_modules/chrome-devtools-frontend/front_end/source_frame/SourceFrame.js(452,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'SimpleView'. -node_modules/chrome-devtools-frontend/front_end/source_frame/SourceFrame.js(459,15): error TS2339: Property '__fromRegExpQuery' does not exist on type 'RegExp'. -node_modules/chrome-devtools-frontend/front_end/source_frame/SourceFrame.js(472,36): error TS2339: Property 'lowerBound' does not exist on type 'TextRange[]'. -node_modules/chrome-devtools-frontend/front_end/source_frame/SourceFrame.js(475,46): error TS2339: Property 'computeLineEndings' does not exist on type 'string'. -node_modules/chrome-devtools-frontend/front_end/source_frame/SourceFrame.js(512,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'SimpleView'. -node_modules/chrome-devtools-frontend/front_end/source_frame/SourceFrame.js(520,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'SimpleView'. -node_modules/chrome-devtools-frontend/front_end/source_frame/SourcesTextEditor.js(12,11): error TS2345: Argument of type '{ lineNumbers: true; lineWrapping: false; bracketMatchingSetting: Setting; padBottom: true; }' is not assignable to parameter of type 'Options'. - Type '{ lineNumbers: true; lineWrapping: false; bracketMatchingSetting: Setting; padBottom: true; }' is missing the following properties from type 'Options': mimeType, autoHeight, maxHighlightLength, placeholder -node_modules/chrome-devtools-frontend/front_end/source_frame/SourcesTextEditor.js(45,12): error TS2339: Property '_isHandlingMouseDownEvent' does not exist on type 'SourcesTextEditor'. -node_modules/chrome-devtools-frontend/front_end/source_frame/SourcesTextEditor.js(55,5): error TS2739: Type '{ isWordChar: (char: string) => boolean; }' is missing the following properties from type 'AutocompleteConfig': substituteRangeCallback, suggestionsCallback, captureEnter -node_modules/chrome-devtools-frontend/front_end/source_frame/SourcesTextEditor.js(90,14): error TS2403: Subsequent variable declarations must have the same type. Variable 'i' must be of type 'number', but here has type 'string'. -node_modules/chrome-devtools-frontend/front_end/source_frame/SourcesTextEditor.js(93,29): error TS2345: Argument of type 'number' is not assignable to parameter of type 'string'. -node_modules/chrome-devtools-frontend/front_end/source_frame/SourcesTextEditor.js(134,12): error TS2339: Property '_tokenHighlighter' does not exist on type 'CodeMirrorTextEditor'. -node_modules/chrome-devtools-frontend/front_end/source_frame/SourcesTextEditor.js(237,57): error TS2339: Property 'length' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/source_frame/SourcesTextEditor.js(262,9): error TS1345: An expression of type 'void' cannot be tested for truthiness. -node_modules/chrome-devtools-frontend/front_end/source_frame/SourcesTextEditor.js(263,37): error TS2339: Property 'clear' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/source_frame/SourcesTextEditor.js(296,30): error TS2339: Property 'wrapClass' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/source_frame/SourcesTextEditor.js(414,99): error TS2345: Argument of type 'void' is not assignable to parameter of type 'Pos'. -node_modules/chrome-devtools-frontend/front_end/source_frame/SourcesTextEditor.js(445,15): error TS2339: Property '_isHandlingMouseDownEvent' does not exist on type 'SourcesTextEditor'. -node_modules/chrome-devtools-frontend/front_end/source_frame/SourcesTextEditor.js(561,13): error TS2339: Property '_codeMirrorWhitespaceStyleInjected' does not exist on type 'Document'. -node_modules/chrome-devtools-frontend/front_end/source_frame/SourcesTextEditor.js(563,9): error TS2339: Property '_codeMirrorWhitespaceStyleInjected' does not exist on type 'Document'. -node_modules/chrome-devtools-frontend/front_end/source_frame/SourcesTextEditor.js(614,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/source_frame/SourcesTextEditor.js(622,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/source_frame/SourcesTextEditor.js(759,9): error TS1345: An expression of type 'void' cannot be tested for truthiness. -node_modules/chrome-devtools-frontend/front_end/source_frame/SourcesTextEditor.js(760,32): error TS2339: Property 'clear' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/source_frame/SourcesTextEditor.js(799,24): error TS2339: Property 'line' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/source_frame/SourcesTextEditor.js(799,46): error TS2339: Property 'line' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/source_frame/SourcesTextEditor.js(801,24): error TS2339: Property 'ch' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/source_frame/SourcesTextEditor.js(801,44): error TS2339: Property 'ch' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/source_frame/SourcesTextEditor.js(804,20): error TS2339: Property 'length' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/source_frame/SourcesTextEditor.js(807,51): error TS2339: Property 'line' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/source_frame/SourcesTextEditor.js(807,72): error TS2339: Property 'ch' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/source_frame/SourcesTextEditor.js(807,89): error TS2339: Property 'ch' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/source_frame/SourcesTextEditor.js(808,11): error TS1345: An expression of type 'void' cannot be tested for truthiness. -node_modules/chrome-devtools-frontend/front_end/source_frame/SourcesTextEditor.js(809,54): error TS2339: Property 'line' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/source_frame/SourcesTextEditor.js(810,93): error TS2345: Argument of type 'void' is not assignable to parameter of type 'Pos'. -node_modules/chrome-devtools-frontend/front_end/source_frame/SourcesTextEditor.js(822,79): error TS2339: Property 'charAt' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/source_frame/SourcesTextEditor.js(823,41): error TS2339: Property 'length' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/source_frame/SourcesTextEditor.js(823,88): error TS2339: Property 'charAt' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/source_frame/SourcesTextEditor.js(839,9): error TS2367: This condition will always return 'false' since the types 'void' and 'number' have no overlap. -node_modules/chrome-devtools-frontend/front_end/source_frame/SourcesTextEditor.js(854,9): error TS1345: An expression of type 'void' cannot be tested for truthiness. -node_modules/chrome-devtools-frontend/front_end/source_frame/SourcesTextEditor.js(862,12): error TS1345: An expression of type 'void' cannot be tested for truthiness. -node_modules/chrome-devtools-frontend/front_end/source_frame/SourcesTextEditor.js(862,13): error TS1345: An expression of type 'void' cannot be tested for truthiness. -node_modules/chrome-devtools-frontend/front_end/source_frame/SourcesTextEditor.js(873,9): error TS1345: An expression of type 'void' cannot be tested for truthiness. -node_modules/chrome-devtools-frontend/front_end/source_frame/SourcesTextEditor.js(873,9): error TS1345: An expression of type 'void' cannot be tested for truthiness. -node_modules/chrome-devtools-frontend/front_end/source_frame/SourcesTextEditor.js(873,33): error TS1345: An expression of type 'void' cannot be tested for truthiness. -node_modules/chrome-devtools-frontend/front_end/source_frame/SourcesTextEditor.js(873,81): error TS2345: Argument of type 'void' is not assignable to parameter of type 'string'. -node_modules/chrome-devtools-frontend/front_end/source_frame/SourcesTextEditor.js(874,14): error TS2367: This condition will always return 'false' since the types 'void' and 'number' have no overlap. -node_modules/chrome-devtools-frontend/front_end/source_frame/SourcesTextEditor.js(878,12): error TS1345: An expression of type 'void' cannot be tested for truthiness. -node_modules/chrome-devtools-frontend/front_end/source_frame/SourcesTextEditor.js(878,12): error TS1345: An expression of type 'void' cannot be tested for truthiness. -node_modules/chrome-devtools-frontend/front_end/source_frame/SourcesTextEditor.js(878,71): error TS2367: This condition will always return 'true' since the types 'void' and 'string' have no overlap. -node_modules/chrome-devtools-frontend/front_end/source_frame/SourcesTextEditor.js(882,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/source_frame/XMLView.js(42,53): error TS2345: Argument of type 'number' is not assignable to parameter of type 'string'. -node_modules/chrome-devtools-frontend/front_end/source_frame/XMLView.js(54,59): error TS2345: Argument of type 'string' is not assignable to parameter of type 'DOMParserSupportedType'. -node_modules/chrome-devtools-frontend/front_end/source_frame/XMLView.js(73,28): error TS2339: Property 'setSearchRegex' does not exist on type 'TreeElement'. -node_modules/chrome-devtools-frontend/front_end/source_frame/XMLView.js(80,23): error TS2339: Property 'setSearchRegex' does not exist on type 'TreeElement'. -node_modules/chrome-devtools-frontend/front_end/source_frame/XMLView.js(156,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Widget'. -node_modules/chrome-devtools-frontend/front_end/source_frame/XMLView.js(168,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Widget'. -node_modules/chrome-devtools-frontend/front_end/source_frame/XMLView.js(176,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Widget'. -node_modules/chrome-devtools-frontend/front_end/source_frame/XMLView.js(187,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Widget'. -node_modules/chrome-devtools-frontend/front_end/source_frame/XMLView.js(199,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Widget'. -node_modules/chrome-devtools-frontend/front_end/source_frame/XMLView.js(207,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Widget'. -node_modules/chrome-devtools-frontend/front_end/source_frame/XMLView.js(223,35): error TS2339: Property 'childElementCount' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/source_frame/XMLView.js(290,24): error TS2339: Property 'tagName' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/source_frame/XMLView.js(296,31): error TS2339: Property 'attributes' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/source_frame/XMLView.js(305,20): error TS2339: Property 'childElementCount' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/source_frame/XMLView.js(342,21): error TS2339: Property 'createChild' does not exist on type 'DocumentFragment'. -node_modules/chrome-devtools-frontend/front_end/sources/AddSourceMapURLDialog.js(9,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/sources/AddSourceMapURLDialog.js(14,25): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/AddSourceMapURLDialog.js(21,41): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/AddSourceMapURLDialog.js(27,25): error TS2339: Property 'tabIndex' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/AddSourceMapURLDialog.js(31,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/sources/AddSourceMapURLDialog.js(50,32): error TS2339: Property 'value' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/AddSourceMapURLDialog.js(57,15): error TS2339: Property 'keyCode' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/sources/AdvancedSearchView.js(17,52): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/AdvancedSearchView.js(21,54): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/AdvancedSearchView.js(30,39): error TS2345: Argument of type 'number' is not assignable to parameter of type 'string'. -node_modules/chrome-devtools-frontend/front_end/sources/AdvancedSearchView.js(53,54): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/AdvancedSearchView.js(318,19): error TS2339: Property 'keyCode' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/sources/AdvancedSearchView.js(391,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ActionDelegate' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sources/AdvancedSearchView.js(397,46): error TS2339: Property 'window' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/CSSPlugin.js(32,43): error TS2694: Namespace 'Sources.UISourceCodeFrame' has no exported member 'Plugin'. -node_modules/chrome-devtools-frontend/front_end/sources/CSSPlugin.js(44,9): error TS2345: Argument of type '{ suggestionsCallback: any; isWordChar: any; }' is not assignable to parameter of type 'AutocompleteConfig'. - Type '{ suggestionsCallback: any; isWordChar: any; }' is missing the following properties from type 'AutocompleteConfig': substituteRangeCallback, captureEnter -node_modules/chrome-devtools-frontend/front_end/sources/CSSPlugin.js(61,10): error TS4112: This member cannot have an 'override' modifier because its containing class 'CSSPlugin' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sources/CSSPlugin.js(84,13): error TS2339: Property 'consume' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/sources/CSSPlugin.js(102,19): error TS2339: Property 'sprintf' does not exist on type 'StringConstructor'. -node_modules/chrome-devtools-frontend/front_end/sources/CSSPlugin.js(197,26): error TS2339: Property 'title' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/CSSPlugin.js(212,26): error TS2339: Property 'title' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/CSSPlugin.js(223,11): error TS2339: Property 'consume' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/sources/CSSPlugin.js(266,25): error TS2339: Property 'setColor' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/CSSPlugin.js(292,25): error TS2339: Property 'setBezierText' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/CSSPlugin.js(347,5): error TS2322: Type 'Promise<{ text: string; }[]>' is not assignable to type 'Promise<{ text: string; subtitle: string; iconType: string; priority: number; isSecondary: boolean; title: string; }[]>'. - Type '{ text: string; }[]' is not assignable to type '{ text: string; subtitle: string; iconType: string; priority: number; isSecondary: boolean; title: string; }[]'. - Type '{ text: string; }' is missing the following properties from type '{ text: string; subtitle: string; iconType: string; priority: number; isSecondary: boolean; title: string; }': subtitle, iconType, priority, isSecondary, title -node_modules/chrome-devtools-frontend/front_end/sources/CSSPlugin.js(385,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'CSSPlugin' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sources/CSSPlugin.js(393,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'CSSPlugin' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sources/CSSPlugin.js(400,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'CSSPlugin' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sources/CallStackSidebarPane.js(39,57): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/CallStackSidebarPane.js(45,50): error TS2345: Argument of type 'this' is not assignable to parameter of type 'ListDelegate'. - Type 'CallStackSidebarPane' is not assignable to type 'ListDelegate'. - Types of property 'createElementForItem' are incompatible. - Type '(item: Item) => Element' is not assignable to type '(item: T) => Element'. -node_modules/chrome-devtools-frontend/front_end/sources/CallStackSidebarPane.js(67,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'SimpleView'. -node_modules/chrome-devtools-frontend/front_end/sources/CallStackSidebarPane.js(104,78): error TS2345: Argument of type '{ debuggerCallFrame: CallFrame; debuggerModel: DebuggerModel; }' is not assignable to parameter of type 'Item'. - Type '{ debuggerCallFrame: CallFrame; debuggerModel: DebuggerModel; }' is missing the following properties from type 'Item': asyncStackHeader, runtimeCallFrame -node_modules/chrome-devtools-frontend/front_end/sources/CallStackSidebarPane.js(137,21): error TS2345: Argument of type '{ asyncStackHeader: string; }' is not assignable to parameter of type '{ debuggerCallFrame: CallFrame; debuggerModel: DebuggerModel; }'. - Object literal may only specify known properties, and 'asyncStackHeader' does not exist in type '{ debuggerCallFrame: CallFrame; debuggerModel: DebuggerModel; }'. -node_modules/chrome-devtools-frontend/front_end/sources/CallStackSidebarPane.js(171,28): error TS2345: Argument of type '{ debuggerCallFrame: CallFrame; debuggerModel: DebuggerModel; }[]' is not assignable to parameter of type 'Item[]'. - Type '{ debuggerCallFrame: CallFrame; debuggerModel: DebuggerModel; }' is not assignable to type 'Item'. -node_modules/chrome-devtools-frontend/front_end/sources/CallStackSidebarPane.js(185,3): error TS2416: Property 'createElementForItem' in type 'CallStackSidebarPane' is not assignable to the same property in base type 'ListDelegate'. - Type '(item: Item) => Element' is not assignable to type '(item: T) => Element'. -node_modules/chrome-devtools-frontend/front_end/sources/CallStackSidebarPane.js(185,3): error TS2416: Property 'createElementForItem' in type 'CallStackSidebarPane' is not assignable to the same property in base type 'ListDelegate'. - Type '(item: Item) => Element' is not assignable to type '(item: T) => Element'. - Types of parameters 'item' and 'item' are incompatible. - Type 'T' is not assignable to type 'Item'. -node_modules/chrome-devtools-frontend/front_end/sources/CallStackSidebarPane.js(185,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'SimpleView'. -node_modules/chrome-devtools-frontend/front_end/sources/CallStackSidebarPane.js(187,25): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/CallStackSidebarPane.js(209,33): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/CallStackSidebarPane.js(222,3): error TS2416: Property 'heightForItem' in type 'CallStackSidebarPane' is not assignable to the same property in base type 'ListDelegate'. - Type '(item: Item) => number' is not assignable to type '(item: T) => number'. -node_modules/chrome-devtools-frontend/front_end/sources/CallStackSidebarPane.js(222,3): error TS2416: Property 'heightForItem' in type 'CallStackSidebarPane' is not assignable to the same property in base type 'ListDelegate'. - Type '(item: Item) => number' is not assignable to type '(item: T) => number'. - Types of parameters 'item' and 'item' are incompatible. - Type 'T' is not assignable to type 'Item'. -node_modules/chrome-devtools-frontend/front_end/sources/CallStackSidebarPane.js(222,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'SimpleView'. -node_modules/chrome-devtools-frontend/front_end/sources/CallStackSidebarPane.js(232,3): error TS2416: Property 'isItemSelectable' in type 'CallStackSidebarPane' is not assignable to the same property in base type 'ListDelegate'. - Type '(item: Item) => boolean' is not assignable to type '(item: T) => boolean'. -node_modules/chrome-devtools-frontend/front_end/sources/CallStackSidebarPane.js(232,3): error TS2416: Property 'isItemSelectable' in type 'CallStackSidebarPane' is not assignable to the same property in base type 'ListDelegate'. - Type '(item: Item) => boolean' is not assignable to type '(item: T) => boolean'. - Types of parameters 'item' and 'item' are incompatible. - Type 'T' is not assignable to type 'Item'. -node_modules/chrome-devtools-frontend/front_end/sources/CallStackSidebarPane.js(232,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'SimpleView'. -node_modules/chrome-devtools-frontend/front_end/sources/CallStackSidebarPane.js(243,3): error TS2416: Property 'selectedItemChanged' in type 'CallStackSidebarPane' is not assignable to the same property in base type 'ListDelegate'. - Type '(from: Item, to: Item, fromElement: Element, toElement: Element) => void' is not assignable to type '(from: T, to: T, fromElement: Element, toElement: Element) => void'. -node_modules/chrome-devtools-frontend/front_end/sources/CallStackSidebarPane.js(243,3): error TS2416: Property 'selectedItemChanged' in type 'CallStackSidebarPane' is not assignable to the same property in base type 'ListDelegate'. - Type '(from: Item, to: Item, fromElement: Element, toElement: Element) => void' is not assignable to type '(from: T, to: T, fromElement: Element, toElement: Element) => void'. - Types of parameters 'from' and 'from' are incompatible. - Type 'T' is not assignable to type 'Item'. -node_modules/chrome-devtools-frontend/front_end/sources/CallStackSidebarPane.js(243,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'SimpleView'. -node_modules/chrome-devtools-frontend/front_end/sources/CallStackSidebarPane.js(285,13): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/CallStackSidebarPane.js(286,31): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/CallStackSidebarPane.js(300,13): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/CallStackSidebarPane.js(301,31): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/CallStackSidebarPane.js(415,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/sources/CallStackSidebarPane.js(431,36): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sources/DebuggerPausedMessage.js(11,33): error TS2339: Property 'createChild' does not exist on type 'DocumentFragment'. -node_modules/chrome-devtools-frontend/front_end/sources/DebuggerPausedMessage.js(96,40): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/DebuggerPausedMessage.js(101,41): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/EditingLocationHistoryManager.js(96,12): error TS2339: Property 'merge' does not exist on type 'HistoryEntry'. -node_modules/chrome-devtools-frontend/front_end/sources/EditingLocationHistoryManager.js(150,35): error TS2339: Property '_projectId' does not exist on type 'HistoryEntry'. -node_modules/chrome-devtools-frontend/front_end/sources/EditingLocationHistoryManager.js(150,69): error TS2339: Property '_url' does not exist on type 'HistoryEntry'. -node_modules/chrome-devtools-frontend/front_end/sources/EditingLocationHistoryManager.js(152,34): error TS2339: Property '_positionHandle' does not exist on type 'HistoryEntry'. -node_modules/chrome-devtools-frontend/front_end/sources/EditingLocationHistoryManager.js(167,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'EditingLocationHistoryEntry' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sources/EditingLocationHistoryManager.js(176,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'EditingLocationHistoryEntry' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sources/EventListenerBreakpointsSidebarPane.js(11,41): error TS2339: Property 'tabIndex' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/EventListenerBreakpointsSidebarPane.js(57,33): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/EventListenerBreakpointsSidebarPane.js(92,33): error TS2339: Property 'checked' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/EventListenerBreakpointsSidebarPane.js(96,52): error TS2339: Property 'checked' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/EventListenerBreakpointsSidebarPane.js(106,41): error TS2339: Property 'checked' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/EventListenerBreakpointsSidebarPane.js(120,14): error TS2339: Property 'checked' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/EventListenerBreakpointsSidebarPane.js(121,14): error TS2339: Property 'indeterminate' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/FilteredUISourceCodeListProvider.js(140,21): error TS2339: Property 'title' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/FilteredUISourceCodeListProvider.js(159,13): error TS2339: Property 'removeChildren' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/FilteredUISourceCodeListProvider.js(163,25): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/FilteredUISourceCodeListProvider.js(165,26): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/FilteredUISourceCodeListProvider.js(167,13): error TS2339: Property 'title' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/InplaceFormatterEditorAction.js(38,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'InplaceFormatterEditorAction' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sources/InplaceFormatterEditorAction.js(100,37): error TS2339: Property 'selection' does not exist on type 'Widget'. -node_modules/chrome-devtools-frontend/front_end/sources/JavaScriptBreakpointsSidebarPane.js(32,27): error TS2339: Property 'removeChildren' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/JavaScriptBreakpointsSidebarPane.js(33,46): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/JavaScriptBreakpointsSidebarPane.js(41,27): error TS2339: Property 'removeChildren' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/JavaScriptBreakpointsSidebarPane.js(42,47): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/JavaScriptBreakpointsSidebarPane.js(53,28): error TS2345: Argument of type 'string' is not assignable to parameter of type 'K'. - 'K' could be instantiated with an arbitrary type which could be unrelated to 'string'. -node_modules/chrome-devtools-frontend/front_end/sources/JavaScriptBreakpointsSidebarPane.js(66,35): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/JavaScriptBreakpointsSidebarPane.js(73,36): error TS2339: Property 'createChild' does not exist on type 'ChildNode'. -node_modules/chrome-devtools-frontend/front_end/sources/JavaScriptBreakpointsSidebarPane.js(78,37): error TS2339: Property 'uiLocation' does not exist on type 'V'. -node_modules/chrome-devtools-frontend/front_end/sources/JavaScriptBreakpointsSidebarPane.js(80,71): error TS2339: Property 'uiLocation' does not exist on type 'V'. -node_modules/chrome-devtools-frontend/front_end/sources/JavaScriptBreakpointsSidebarPane.js(81,60): error TS2339: Property 'breakpoint' does not exist on type 'V'. -node_modules/chrome-devtools-frontend/front_end/sources/JavaScriptBreakpointsSidebarPane.js(82,62): error TS2339: Property 'breakpoint' does not exist on type 'V'. -node_modules/chrome-devtools-frontend/front_end/sources/JavaScriptBreakpointsSidebarPane.js(131,55): error TS2554: Expected 0 arguments, but got 1. -node_modules/chrome-devtools-frontend/front_end/sources/JavaScriptBreakpointsSidebarPane.js(141,29): error TS2339: Property 'enclosingNodeOrSelfWithClass' does not exist on type 'EventTarget'. -node_modules/chrome-devtools-frontend/front_end/sources/JavaScriptBreakpointsSidebarPane.js(156,33): error TS2339: Property 'checkboxElement' does not exist on type 'EventTarget'. -node_modules/chrome-devtools-frontend/front_end/sources/JavaScriptBreakpointsSidebarPane.js(159,11): error TS2339: Property 'consume' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/sources/JavaScriptBreakpointsSidebarPane.js(217,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'ThrottledWidget'. -node_modules/chrome-devtools-frontend/front_end/sources/JavaScriptCompilerPlugin.js(5,43): error TS2694: Namespace 'Sources.UISourceCodeFrame' has no exported member 'Plugin'. -node_modules/chrome-devtools-frontend/front_end/sources/JavaScriptCompilerPlugin.js(32,10): error TS4112: This member cannot have an 'override' modifier because its containing class 'JavaScriptCompilerPlugin' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sources/JavaScriptCompilerPlugin.js(108,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'JavaScriptCompilerPlugin' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sources/JavaScriptCompilerPlugin.js(116,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'JavaScriptCompilerPlugin' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sources/JavaScriptCompilerPlugin.js(123,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'JavaScriptCompilerPlugin' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sources/JavaScriptSourceFrame.js(60,50): error TS2345: Argument of type 'Event' is not assignable to parameter of type 'MouseEvent | KeyboardEvent'. - Type 'Event' is missing the following properties from type 'KeyboardEvent': altKey, char, charCode, code, and 16 more. -node_modules/chrome-devtools-frontend/front_end/sources/JavaScriptSourceFrame.js(107,33): error TS2339: Property 'asParsedURL' does not exist on type 'string'. -node_modules/chrome-devtools-frontend/front_end/sources/JavaScriptSourceFrame.js(134,95): error TS2339: Property 'valuesArray' does not exist on type 'Map'. -node_modules/chrome-devtools-frontend/front_end/sources/JavaScriptSourceFrame.js(140,44): error TS2339: Property 'createTextChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/JavaScriptSourceFrame.js(142,65): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/JavaScriptSourceFrame.js(169,7): error TS2304: Cannot find name 'setImmediate'. -node_modules/chrome-devtools-frontend/front_end/sources/JavaScriptSourceFrame.js(284,61): error TS2339: Property 'valuesArray' does not exist on type 'Map'. -node_modules/chrome-devtools-frontend/front_end/sources/JavaScriptSourceFrame.js(345,56): error TS2339: Property 'valuesArray' does not exist on type 'Map'. -node_modules/chrome-devtools-frontend/front_end/sources/JavaScriptSourceFrame.js(491,15): error TS2339: Property 'consume' does not exist on type 'KeyboardEvent'. -node_modules/chrome-devtools-frontend/front_end/sources/JavaScriptSourceFrame.js(517,37): error TS2339: Property 'enclosingNodeOrSelfWithClass' does not exist on type 'EventTarget'. -node_modules/chrome-devtools-frontend/front_end/sources/JavaScriptSourceFrame.js(545,11): error TS2339: Property 'consume' does not exist on type 'MouseEvent'. -node_modules/chrome-devtools-frontend/front_end/sources/JavaScriptSourceFrame.js(564,33): error TS2339: Property 'isAncestor' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/JavaScriptSourceFrame.js(611,34): error TS2339: Property 'value' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/JavaScriptSourceFrame.js(612,34): error TS2339: Property 'select' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/JavaScriptSourceFrame.js(618,41): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/JavaScriptSourceFrame.js(642,7): error TS2304: Cannot find name 'setImmediate'. -node_modules/chrome-devtools-frontend/front_end/sources/JavaScriptSourceFrame.js(779,18): error TS2339: Property 'startColumn' does not exist on type 'never'. -node_modules/chrome-devtools-frontend/front_end/sources/JavaScriptSourceFrame.js(781,15): error TS2339: Property 'type' does not exist on type 'never'. -node_modules/chrome-devtools-frontend/front_end/sources/JavaScriptSourceFrame.js(790,15): error TS2339: Property 'type' does not exist on type 'never'. -node_modules/chrome-devtools-frontend/front_end/sources/JavaScriptSourceFrame.js(793,15): error TS2339: Property 'type' does not exist on type 'never'. -node_modules/chrome-devtools-frontend/front_end/sources/JavaScriptSourceFrame.js(796,15): error TS2339: Property 'type' does not exist on type 'never'. -node_modules/chrome-devtools-frontend/front_end/sources/JavaScriptSourceFrame.js(796,48): error TS2339: Property 'type' does not exist on type 'never'. -node_modules/chrome-devtools-frontend/front_end/sources/JavaScriptSourceFrame.js(938,14): error TS2339: Property 'style' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/JavaScriptSourceFrame.js(939,14): error TS2339: Property '__nameToToken' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/JavaScriptSourceFrame.js(948,18): error TS2339: Property 'createTextChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/JavaScriptSourceFrame.js(949,36): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/JavaScriptSourceFrame.js(950,16): error TS2339: Property '__nameToToken' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/JavaScriptSourceFrame.js(967,33): error TS2339: Property '__nameToToken' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/JavaScriptSourceFrame.js(968,35): error TS2339: Property '__nameToToken' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/JavaScriptSourceFrame.js(968,71): error TS2339: Property '__nameToToken' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/JavaScriptSourceFrame.js(969,32): error TS2339: Property '__nameToToken' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/JavaScriptSourceFrame.js(969,65): error TS2339: Property '__nameToToken' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/JavaScriptSourceFrame.js(974,49): error TS2339: Property '__nameToToken' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/JavaScriptSourceFrame.js(1062,7): error TS2304: Cannot find name 'setImmediate'. -node_modules/chrome-devtools-frontend/front_end/sources/JavaScriptSourceFrame.js(1150,11): error TS2339: Property 'consume' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/sources/JavaScriptSourceFrame.js(1152,17): error TS2339: Property 'shiftKey' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/sources/JavaScriptSourceFrame.js(1169,11): error TS2339: Property 'consume' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/sources/JavaScriptSourceFrame.js(1201,56): error TS2339: Property 'valuesArray' does not exist on type 'Map'. -node_modules/chrome-devtools-frontend/front_end/sources/JavaScriptSourceFrame.js(1270,16): error TS2403: Subsequent variable declarations must have the same type. Variable 'location' must be of type '{ lineNumber: number; columnNumber: number; }', but here has type 'UILocation'. -node_modules/chrome-devtools-frontend/front_end/sources/JavaScriptSourceFrame.js(1326,60): error TS2339: Property 'valuesArray' does not exist on type 'Set'. -node_modules/chrome-devtools-frontend/front_end/sources/JavaScriptSourceFrame.js(1425,56): error TS2339: Property 'valuesArray' does not exist on type 'Map'. -node_modules/chrome-devtools-frontend/front_end/sources/JavaScriptSourceFrame.js(1473,21): error TS2339: Property 'button' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/sources/JavaScriptSourceFrame.js(1473,49): error TS2339: Property 'altKey' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/sources/JavaScriptSourceFrame.js(1473,71): error TS2339: Property 'ctrlKey' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/sources/JavaScriptSourceFrame.js(1473,94): error TS2339: Property 'metaKey' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/sources/JavaScriptSourceFrame.js(1476,52): error TS2339: Property 'shiftKey' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/sources/JavaScriptSourceFrame.js(1477,17): error TS2339: Property 'consume' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/sources/NavigatorView.js(87,21): error TS2339: Property '_boostOrder' does not exist on type 'TreeElement'. -node_modules/chrome-devtools-frontend/front_end/sources/NavigatorView.js(90,32): error TS2339: Property '_typeOrders' does not exist on type 'typeof NavigatorView'. -node_modules/chrome-devtools-frontend/front_end/sources/NavigatorView.js(102,29): error TS2339: Property '_typeOrders' does not exist on type 'typeof NavigatorView'. -node_modules/chrome-devtools-frontend/front_end/sources/NavigatorView.js(105,39): error TS2339: Property '_typeOrders' does not exist on type 'typeof NavigatorView'. -node_modules/chrome-devtools-frontend/front_end/sources/NavigatorView.js(105,63): error TS2339: Property '_nodeType' does not exist on type 'TreeElement'. -node_modules/chrome-devtools-frontend/front_end/sources/NavigatorView.js(106,21): error TS2339: Property '_uiSourceCode' does not exist on type 'TreeElement'. -node_modules/chrome-devtools-frontend/front_end/sources/NavigatorView.js(107,37): error TS2339: Property '_uiSourceCode' does not exist on type 'TreeElement'. -node_modules/chrome-devtools-frontend/front_end/sources/NavigatorView.js(189,52): error TS2345: Argument of type 'UISourceCode' is not assignable to parameter of type 'K'. - 'K' could be instantiated with an arbitrary type which could be unrelated to 'UISourceCode'. -node_modules/chrome-devtools-frontend/front_end/sources/NavigatorView.js(191,19): error TS2339: Property 'updateTitle' does not exist on type 'V'. -node_modules/chrome-devtools-frontend/front_end/sources/NavigatorView.js(192,55): error TS2345: Argument of type 'UISourceCode' is not assignable to parameter of type 'K'. - 'K' could be instantiated with an arbitrary type which could be unrelated to 'UISourceCode'. -node_modules/chrome-devtools-frontend/front_end/sources/NavigatorView.js(194,22): error TS2339: Property 'updateTitle' does not exist on type 'V'. -node_modules/chrome-devtools-frontend/front_end/sources/NavigatorView.js(212,22): error TS2339: Property 'updateTitle' does not exist on type 'NavigatorTreeNode'. -node_modules/chrome-devtools-frontend/front_end/sources/NavigatorView.js(283,55): error TS2345: Argument of type 'UISourceCode' is not assignable to parameter of type 'K'. - 'K' could be instantiated with an arbitrary type which could be unrelated to 'UISourceCode'. -node_modules/chrome-devtools-frontend/front_end/sources/NavigatorView.js(283,88): error TS2339: Property 'frame' does not exist on type 'V'. -node_modules/chrome-devtools-frontend/front_end/sources/NavigatorView.js(284,34): error TS2345: Argument of type 'V' is not assignable to parameter of type 'NavigatorUISourceCodeTreeNode'. -node_modules/chrome-devtools-frontend/front_end/sources/NavigatorView.js(336,33): error TS2345: Argument of type 'UISourceCode' is not assignable to parameter of type 'K'. - 'K' could be instantiated with an arbitrary type which could be unrelated to 'UISourceCode'. -node_modules/chrome-devtools-frontend/front_end/sources/NavigatorView.js(388,58): error TS2339: Property 'reverse' does not exist on type 'string'. -node_modules/chrome-devtools-frontend/front_end/sources/NavigatorView.js(499,29): error TS2339: Property '_boostOrder' does not exist on type 'TreeElement'. -node_modules/chrome-devtools-frontend/front_end/sources/NavigatorView.js(527,28): error TS2339: Property '_boostOrder' does not exist on type 'TreeElement'. -node_modules/chrome-devtools-frontend/front_end/sources/NavigatorView.js(592,45): error TS2345: Argument of type 'UISourceCode' is not assignable to parameter of type 'K'. - 'K' could be instantiated with an arbitrary type which could be unrelated to 'UISourceCode'. -node_modules/chrome-devtools-frontend/front_end/sources/NavigatorView.js(593,22): error TS2339: Property 'firstValue' does not exist on type 'Set'. -node_modules/chrome-devtools-frontend/front_end/sources/NavigatorView.js(623,45): error TS2345: Argument of type 'UISourceCode' is not assignable to parameter of type 'K'. - 'K' could be instantiated with an arbitrary type which could be unrelated to 'UISourceCode'. -node_modules/chrome-devtools-frontend/front_end/sources/NavigatorView.js(625,36): error TS2345: Argument of type 'V' is not assignable to parameter of type 'NavigatorUISourceCodeTreeNode'. -node_modules/chrome-devtools-frontend/front_end/sources/NavigatorView.js(633,36): error TS2345: Argument of type 'UISourceCode' is not assignable to parameter of type 'K'. - 'K' could be instantiated with an arbitrary type which could be unrelated to 'UISourceCode'. -node_modules/chrome-devtools-frontend/front_end/sources/NavigatorView.js(638,27): error TS2339: Property 'parent' does not exist on type 'NavigatorUISourceCodeTreeNode'. -node_modules/chrome-devtools-frontend/front_end/sources/NavigatorView.js(643,25): error TS2339: Property 'parent' does not exist on type 'NavigatorUISourceCodeTreeNode'. -node_modules/chrome-devtools-frontend/front_end/sources/NavigatorView.js(655,93): error TS2339: Property '_folderPath' does not exist on type '(NavigatorUISourceCodeTreeNode & NavigatorGroupTreeNode) | (NavigatorUISourceCodeTreeNode & NavigatorFolderTreeNode)'. - Property '_folderPath' does not exist on type 'NavigatorUISourceCodeTreeNode & NavigatorGroupTreeNode'. -node_modules/chrome-devtools-frontend/front_end/sources/NavigatorView.js(664,12): error TS2339: Property 'dispose' does not exist on type 'V'. -node_modules/chrome-devtools-frontend/front_end/sources/NavigatorView.js(749,21): error TS2339: Property '_folderPath' does not exist on type 'NavigatorTreeNode'. -node_modules/chrome-devtools-frontend/front_end/sources/NavigatorView.js(750,24): error TS2339: Property '_project' does not exist on type 'NavigatorTreeNode'. -node_modules/chrome-devtools-frontend/front_end/sources/NavigatorView.js(803,50): error TS2339: Property 'hasFocus' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/NavigatorView.js(851,14): error TS2339: Property 'parent' does not exist on type 'NavigatorGroupTreeNode'. -node_modules/chrome-devtools-frontend/front_end/sources/NavigatorView.js(852,12): error TS2339: Property 'parent' does not exist on type 'NavigatorGroupTreeNode'. -node_modules/chrome-devtools-frontend/front_end/sources/NavigatorView.js(862,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/sources/NavigatorView.js(869,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/sources/NavigatorView.js(951,23): error TS2339: Property '_title' does not exist on type 'NavigatorTreeNode'. -node_modules/chrome-devtools-frontend/front_end/sources/NavigatorView.js(952,19): error TS2339: Property 'parent' does not exist on type 'NavigatorTreeNode'. -node_modules/chrome-devtools-frontend/front_end/sources/NavigatorView.js(1023,17): error TS2339: Property 'title' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/NavigatorView.js(1024,29): error TS2322: Type 'Element' is not assignable to type 'Icon'. -node_modules/chrome-devtools-frontend/front_end/sources/NavigatorView.js(1045,26): error TS2339: Property 'draggable' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/NavigatorView.js(1055,51): error TS2339: Property 'hasFocus' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/NavigatorView.js(1073,29): error TS2445: Property 'rename' is protected and only accessible within class 'NavigatorView' and its subclasses. -node_modules/chrome-devtools-frontend/front_end/sources/NavigatorView.js(1190,14): error TS2339: Property 'parent' does not exist on type 'NavigatorTreeNode'. -node_modules/chrome-devtools-frontend/front_end/sources/NavigatorView.js(1191,12): error TS2339: Property 'parent' does not exist on type 'NavigatorTreeNode'. -node_modules/chrome-devtools-frontend/front_end/sources/NavigatorView.js(1236,27): error TS2339: Property 'valuesArray' does not exist on type 'Map'. -node_modules/chrome-devtools-frontend/front_end/sources/NavigatorView.js(1252,10): error TS2339: Property 'parent' does not exist on type 'NavigatorTreeNode'. -node_modules/chrome-devtools-frontend/front_end/sources/NavigatorView.js(1261,20): error TS2339: Property 'remove' does not exist on type 'Map'. -node_modules/chrome-devtools-frontend/front_end/sources/NavigatorView.js(1262,17): error TS2339: Property 'parent' does not exist on type 'NavigatorTreeNode'. -node_modules/chrome-devtools-frontend/front_end/sources/NavigatorView.js(1391,10): error TS2339: Property 'parent' does not exist on type 'NavigatorUISourceCodeTreeNode'. -node_modules/chrome-devtools-frontend/front_end/sources/NavigatorView.js(1392,10): error TS2339: Property 'parent' does not exist on type 'NavigatorUISourceCodeTreeNode'. -node_modules/chrome-devtools-frontend/front_end/sources/NavigatorView.js(1405,39): error TS2339: Property 'focus' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/NavigatorView.js(1519,49): error TS2339: Property '_node' does not exist on type 'TreeElement'. -node_modules/chrome-devtools-frontend/front_end/sources/NavigatorView.js(1553,12): error TS2339: Property '_isMerged' does not exist on type 'NavigatorTreeNode'. -node_modules/chrome-devtools-frontend/front_end/sources/NavigatorView.js(1554,70): error TS2339: Property '_title' does not exist on type 'NavigatorTreeNode'. -node_modules/chrome-devtools-frontend/front_end/sources/NavigatorView.js(1555,12): error TS2339: Property '_treeElement' does not exist on type 'NavigatorTreeNode'. -node_modules/chrome-devtools-frontend/front_end/sources/NavigatorView.js(1556,25): error TS2339: Property 'setNode' does not exist on type 'TreeElement'. -node_modules/chrome-devtools-frontend/front_end/sources/NavigatorView.js(1563,28): error TS2339: Property '_isMerged' does not exist on type 'NavigatorTreeNode'. -node_modules/chrome-devtools-frontend/front_end/sources/NavigatorView.js(1564,22): error TS2339: Property '_isMerged' does not exist on type 'NavigatorTreeNode'. -node_modules/chrome-devtools-frontend/front_end/sources/NavigatorView.js(1568,23): error TS2339: Property '_isMerged' does not exist on type 'NavigatorFolderTreeNode'. -node_modules/chrome-devtools-frontend/front_end/sources/NavigatorView.js(1569,29): error TS2339: Property 'parent' does not exist on type 'NavigatorFolderTreeNode'. -node_modules/chrome-devtools-frontend/front_end/sources/NavigatorView.js(1576,7): error TS2322: Type 'NavigatorTreeNode' is not assignable to type 'this'. - 'this' could be instantiated with an arbitrary type which could be unrelated to 'NavigatorTreeNode'. -node_modules/chrome-devtools-frontend/front_end/sources/NavigatorView.js(1580,9): error TS2322: Type 'NavigatorTreeNode' is not assignable to type 'this'. - 'this' could be instantiated with an arbitrary type which could be unrelated to 'NavigatorTreeNode'. -node_modules/chrome-devtools-frontend/front_end/sources/NavigatorView.js(1581,37): error TS2339: Property '_isMerged' does not exist on type 'NavigatorFolderTreeNode'. -node_modules/chrome-devtools-frontend/front_end/sources/NavigatorView.js(1585,27): error TS2339: Property 'setNode' does not exist on type 'TreeElement'. -node_modules/chrome-devtools-frontend/front_end/sources/NavigatorView.js(1588,27): error TS2339: Property '_isMerged' does not exist on type 'NavigatorFolderTreeNode'. -node_modules/chrome-devtools-frontend/front_end/sources/NavigatorView.js(1598,22): error TS2339: Property 'setNode' does not exist on type 'TreeElement'. -node_modules/chrome-devtools-frontend/front_end/sources/NavigatorView.js(1614,14): error TS2339: Property '_isMerged' does not exist on type 'NavigatorTreeNode'. -node_modules/chrome-devtools-frontend/front_end/sources/NavigatorView.js(1616,40): error TS2339: Property '_treeElement' does not exist on type 'NavigatorTreeNode'. -node_modules/chrome-devtools-frontend/front_end/sources/NavigatorView.js(1640,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/sources/NavigatorView.js(1679,47): error TS2339: Property 'hasFocus' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/ObjectEventListenersSidebarPane.js(23,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/sources/OpenFileQuickOpen.js(54,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/sources/OpenFileQuickOpen.js(65,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/sources/ScopeChainSidebarPane.js(43,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/sources/ScopeChainSidebarPane.js(60,25): error TS2339: Property 'removeChildren' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/ScopeChainSidebarPane.js(114,20): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/ScopeChainSidebarPane.js(115,20): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/ScriptFormatterEditorAction.js(53,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ScriptFormatterEditorAction' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sources/ScriptFormatterEditorAction.js(105,35): error TS2339: Property 'selection' does not exist on type 'Widget'. -node_modules/chrome-devtools-frontend/front_end/sources/SimpleHistoryManager.js(37,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/sources/SnippetsPlugin.js(6,43): error TS2694: Namespace 'Sources.UISourceCodeFrame' has no exported member 'Plugin'. -node_modules/chrome-devtools-frontend/front_end/sources/SnippetsPlugin.js(23,10): error TS4112: This member cannot have an 'override' modifier because its containing class 'SnippetsPlugin' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sources/SnippetsPlugin.js(31,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'SnippetsPlugin' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sources/SnippetsPlugin.js(39,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'SnippetsPlugin' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sources/SnippetsPlugin.js(49,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'SnippetsPlugin' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sources/SourceFormatter.js(55,32): error TS2339: Property 'remove' does not exist on type 'Map; formatData: SourceFormatData; }>'. -node_modules/chrome-devtools-frontend/front_end/sources/SourceFormatter.js(67,32): error TS2339: Property 'remove' does not exist on type 'Map; formatData: SourceFormatData; }>'. -node_modules/chrome-devtools-frontend/front_end/sources/SourceFormatter.js(163,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ScriptMapping' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sources/SourceFormatter.js(181,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ScriptMapping' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sources/SourceFormatter.js(248,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'StyleMapping' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sources/SourceFormatter.js(263,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'StyleMapping' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sources/SourceMapNamesResolver.js(278,31): error TS2339: Property 'reverseMapTextRange' does not exist on type 'SourceMap'. -node_modules/chrome-devtools-frontend/front_end/sources/SourceMapNamesResolver.js(304,37): error TS2339: Property 'inverse' does not exist on type 'Map'. -node_modules/chrome-devtools-frontend/front_end/sources/SourceMapNamesResolver.js(361,25): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sources/SourceMapNamesResolver.js(369,25): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sources/SourceMapNamesResolver.js(417,25): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sources/SourceMapNamesResolver.js(434,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/sources/SourceMapNamesResolver.js(444,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/sources/SourceMapNamesResolver.js(482,31): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sources/SourceMapNamesResolver.js(508,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/sources/SourceMapNamesResolver.js(516,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sources/SourceMapNamesResolver.js(525,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/sources/SourceMapNamesResolver.js(525,39): error TS1110: Type expected. -node_modules/chrome-devtools-frontend/front_end/sources/SourceMapNamesResolver.js(526,31): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sources/SourceMapNamesResolver.js(535,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/sources/SourceMapNamesResolver.js(535,39): error TS1110: Type expected. -node_modules/chrome-devtools-frontend/front_end/sources/SourceMapNamesResolver.js(536,31): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sources/SourceMapNamesResolver.js(537,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/sources/SourcesNavigator.js(369,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'CreatingActionDelegate' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sources/SourcesPanel.js(35,26): error TS2551: Property '_instance' does not exist on type 'typeof SourcesPanel'. Did you mean 'instance'? -node_modules/chrome-devtools-frontend/front_end/sources/SourcesPanel.js(68,29): error TS2339: Property 'tabIndex' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/SourcesPanel.js(122,32): error TS2339: Property 'addEventListener' does not exist on type 'typeof extensionServer'. -node_modules/chrome-devtools-frontend/front_end/sources/SourcesPanel.js(131,30): error TS2551: Property '_instance' does not exist on type 'typeof SourcesPanel'. Did you mean 'instance'? -node_modules/chrome-devtools-frontend/front_end/sources/SourcesPanel.js(132,35): error TS2551: Property '_instance' does not exist on type 'typeof SourcesPanel'. Did you mean 'instance'? -node_modules/chrome-devtools-frontend/front_end/sources/SourcesPanel.js(161,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Panel'. -node_modules/chrome-devtools-frontend/front_end/sources/SourcesPanel.js(169,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Panel'. -node_modules/chrome-devtools-frontend/front_end/sources/SourcesPanel.js(227,52): error TS2339: Property '_instance' does not exist on type 'typeof WrapperView'. -node_modules/chrome-devtools-frontend/front_end/sources/SourcesPanel.js(242,40): error TS2339: Property '_instance' does not exist on type 'typeof WrapperView'. -node_modules/chrome-devtools-frontend/front_end/sources/SourcesPanel.js(253,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Panel'. -node_modules/chrome-devtools-frontend/front_end/sources/SourcesPanel.js(257,7): error TS2322: Type 'TabbedViewLocation' is not assignable to type 'ViewLocation'. -node_modules/chrome-devtools-frontend/front_end/sources/SourcesPanel.js(277,20): error TS2339: Property 'window' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/SourcesPanel.js(356,44): error TS2339: Property '_instance' does not exist on type 'typeof WrapperView'. -node_modules/chrome-devtools-frontend/front_end/sources/SourcesPanel.js(356,90): error TS2339: Property '_instance' does not exist on type 'typeof WrapperView'. -node_modules/chrome-devtools-frontend/front_end/sources/SourcesPanel.js(366,42): error TS2339: Property '_instance' does not exist on type 'typeof WrapperView'. -node_modules/chrome-devtools-frontend/front_end/sources/SourcesPanel.js(366,88): error TS2339: Property '_instance' does not exist on type 'typeof WrapperView'. -node_modules/chrome-devtools-frontend/front_end/sources/SourcesPanel.js(730,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Panel'. -node_modules/chrome-devtools-frontend/front_end/sources/SourcesPanel.js(831,23): error TS2339: Property 'isSelfOrDescendant' does not exist on type 'EventTarget'. -node_modules/chrome-devtools-frontend/front_end/sources/SourcesPanel.js(831,72): error TS2339: Property 'widget' does not exist on type 'TabbedViewLocation'. -node_modules/chrome-devtools-frontend/front_end/sources/SourcesPanel.js(1011,45): error TS2339: Property 'offsetWidth' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/SourcesPanel.js(1071,22): error TS2339: Property 'appendView' does not exist on type 'TabbedViewLocation'. -node_modules/chrome-devtools-frontend/front_end/sources/SourcesPanel.js(1072,22): error TS2339: Property 'appendView' does not exist on type 'TabbedViewLocation'. -node_modules/chrome-devtools-frontend/front_end/sources/SourcesPanel.js(1078,60): error TS2339: Property 'sidebarPanes' does not exist on type 'typeof extensionServer'. -node_modules/chrome-devtools-frontend/front_end/sources/SourcesPanel.js(1105,44): error TS2339: Property 'appendView' does not exist on type 'ViewLocation | TabbedViewLocation'. - Property 'appendView' does not exist on type 'TabbedViewLocation'. -node_modules/chrome-devtools-frontend/front_end/sources/SourcesPanel.js(1144,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'UILocationRevealer' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sources/SourcesPanel.js(1163,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'DebuggerLocationRevealer' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sources/SourcesPanel.js(1185,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'UISourceCodeRevealer' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sources/SourcesPanel.js(1203,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'DebuggerPausedDetailsRevealer' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sources/SourcesPanel.js(1219,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'RevealingActionDelegate' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sources/SourcesPanel.js(1243,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'DebuggingActionDelegate' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sources/SourcesPanel.js(1290,38): error TS2339: Property '_instance' does not exist on type 'typeof WrapperView'. -node_modules/chrome-devtools-frontend/front_end/sources/SourcesPanel.js(1298,47): error TS2339: Property '_instance' does not exist on type 'typeof WrapperView'. -node_modules/chrome-devtools-frontend/front_end/sources/SourcesPanel.js(1298,93): error TS2339: Property '_instance' does not exist on type 'typeof WrapperView'. -node_modules/chrome-devtools-frontend/front_end/sources/SourcesPanel.js(1317,5): error TS2304: Cannot find name 'setImmediate'. -node_modules/chrome-devtools-frontend/front_end/sources/SourcesSearchScope.js(54,19): error TS2339: Property 'naturalOrderComparator' does not exist on type 'StringConstructor'. -node_modules/chrome-devtools-frontend/front_end/sources/SourcesSearchScope.js(61,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'SourcesSearchScope' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sources/SourcesSearchScope.js(94,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/sources/SourcesSearchScope.js(95,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/sources/SourcesSearchScope.js(97,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'SourcesSearchScope' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sources/SourcesSearchScope.js(144,24): error TS2339: Property 'naturalOrderComparator' does not exist on type 'StringConstructor'. -node_modules/chrome-devtools-frontend/front_end/sources/SourcesSearchScope.js(160,23): error TS2339: Property 'naturalOrderComparator' does not exist on type 'StringConstructor'. -node_modules/chrome-devtools-frontend/front_end/sources/SourcesSearchScope.js(161,19): error TS2339: Property 'intersectOrdered' does not exist on type 'string[]'. -node_modules/chrome-devtools-frontend/front_end/sources/SourcesSearchScope.js(161,66): error TS2339: Property 'naturalOrderComparator' does not exist on type 'StringConstructor'. -node_modules/chrome-devtools-frontend/front_end/sources/SourcesSearchScope.js(163,19): error TS2339: Property 'mergeOrdered' does not exist on type 'string[]'. -node_modules/chrome-devtools-frontend/front_end/sources/SourcesSearchScope.js(163,51): error TS2339: Property 'naturalOrderComparator' does not exist on type 'StringConstructor'. -node_modules/chrome-devtools-frontend/front_end/sources/SourcesSearchScope.js(183,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/sources/SourcesSearchScope.js(257,29): error TS2339: Property 'mergeOrdered' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/sources/SourcesSearchScope.js(273,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'SourcesSearchScope' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sources/SourcesView.js(38,50): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/SourcesView.js(83,7): error TS2322: Type 'string' is not assignable to type 'boolean'. -node_modules/chrome-devtools-frontend/front_end/sources/SourcesView.js(108,25): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/SourcesView.js(113,15): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/SourcesView.js(134,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/sources/SourcesView.js(423,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/sources/SourcesView.js(432,36): error TS2339: Property 'remove' does not exist on type 'Map'. -node_modules/chrome-devtools-frontend/front_end/sources/SourcesView.js(539,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/sources/SourcesView.js(553,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/sources/SourcesView.js(567,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/sources/SourcesView.js(582,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/sources/SourcesView.js(600,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/sources/SourcesView.js(608,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/sources/SourcesView.js(617,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/sources/SourcesView.js(620,22): error TS2345: Argument of type 'UISourceCodeFrame' is not assignable to parameter of type 'boolean'. -node_modules/chrome-devtools-frontend/front_end/sources/SourcesView.js(631,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/sources/SourcesView.js(634,22): error TS2345: Argument of type 'UISourceCodeFrame' is not assignable to parameter of type 'boolean'. -node_modules/chrome-devtools-frontend/front_end/sources/SourcesView.js(724,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/sources/SourcesView.js(761,28): error TS2339: Property 'naturalOrderComparator' does not exist on type 'StringConstructor'. -node_modules/chrome-devtools-frontend/front_end/sources/SourcesView.js(774,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'SwitchFileActionDelegate' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sources/SourcesView.js(799,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'CloseAllActionDelegate' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sources/TabbedEditorContainer.js(36,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/sources/TabbedEditorContainer.js(201,50): error TS2339: Property 'textEditor' does not exist on type 'Widget'. -node_modules/chrome-devtools-frontend/front_end/sources/TabbedEditorContainer.js(203,23): error TS2339: Property 'textEditor' does not exist on type 'Widget'. -node_modules/chrome-devtools-frontend/front_end/sources/TabbedEditorContainer.js(205,23): error TS2339: Property 'textEditor' does not exist on type 'Widget'. -node_modules/chrome-devtools-frontend/front_end/sources/TabbedEditorContainer.js(210,50): error TS2339: Property 'textEditor' does not exist on type 'Widget'. -node_modules/chrome-devtools-frontend/front_end/sources/TabbedEditorContainer.js(212,23): error TS2339: Property 'textEditor' does not exist on type 'Widget'. -node_modules/chrome-devtools-frontend/front_end/sources/TabbedEditorContainer.js(214,23): error TS2339: Property 'textEditor' does not exist on type 'Widget'. -node_modules/chrome-devtools-frontend/front_end/sources/TabbedEditorContainer.js(244,32): error TS2339: Property 'sourceSelectionChanged' does not exist on type 'typeof extensionServer'. -node_modules/chrome-devtools-frontend/front_end/sources/TabbedEditorContainer.js(485,18): error TS2339: Property 'remove' does not exist on type 'Map'. -node_modules/chrome-devtools-frontend/front_end/sources/TabbedEditorContainer.js(806,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'EditorContainerTabDelegate' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sources/TabbedEditorContainer.js(815,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'EditorContainerTabDelegate' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/sources/ThreadsSidebarPane.js(16,50): error TS2345: Argument of type 'this' is not assignable to parameter of type 'ListDelegate'. - Type 'ThreadsSidebarPane' is not assignable to type 'ListDelegate'. - Types of property 'createElementForItem' are incompatible. - Type '(debuggerModel: DebuggerModel) => Element' is not assignable to type '(item: T) => Element'. -node_modules/chrome-devtools-frontend/front_end/sources/ThreadsSidebarPane.js(20,56): error TS2345: Argument of type 'this' is not assignable to parameter of type 'SDKModelObserver'. - Type 'ThreadsSidebarPane' is not assignable to type 'SDKModelObserver'. - Types of property 'modelAdded' are incompatible. - Type '(debuggerModel: DebuggerModel) => void' is not assignable to type '(model: T) => void'. -node_modules/chrome-devtools-frontend/front_end/sources/ThreadsSidebarPane.js(36,3): error TS2416: Property 'createElementForItem' in type 'ThreadsSidebarPane' is not assignable to the same property in base type 'ListDelegate'. - Type '(debuggerModel: DebuggerModel) => Element' is not assignable to type '(item: T) => Element'. -node_modules/chrome-devtools-frontend/front_end/sources/ThreadsSidebarPane.js(36,3): error TS2416: Property 'createElementForItem' in type 'ThreadsSidebarPane' is not assignable to the same property in base type 'ListDelegate'. - Type '(debuggerModel: DebuggerModel) => Element' is not assignable to type '(item: T) => Element'. - Types of parameters 'debuggerModel' and 'item' are incompatible. - Type 'T' is not assignable to type 'DebuggerModel'. -node_modules/chrome-devtools-frontend/front_end/sources/ThreadsSidebarPane.js(36,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/sources/ThreadsSidebarPane.js(38,25): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/ThreadsSidebarPane.js(39,31): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/ThreadsSidebarPane.js(76,3): error TS2416: Property 'heightForItem' in type 'ThreadsSidebarPane' is not assignable to the same property in base type 'ListDelegate'. - Type '(debuggerModel: DebuggerModel) => number' is not assignable to type '(item: T) => number'. -node_modules/chrome-devtools-frontend/front_end/sources/ThreadsSidebarPane.js(76,3): error TS2416: Property 'heightForItem' in type 'ThreadsSidebarPane' is not assignable to the same property in base type 'ListDelegate'. - Type '(debuggerModel: DebuggerModel) => number' is not assignable to type '(item: T) => number'. - Types of parameters 'debuggerModel' and 'item' are incompatible. - Type 'T' is not assignable to type 'DebuggerModel'. -node_modules/chrome-devtools-frontend/front_end/sources/ThreadsSidebarPane.js(76,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/sources/ThreadsSidebarPane.js(86,3): error TS2416: Property 'isItemSelectable' in type 'ThreadsSidebarPane' is not assignable to the same property in base type 'ListDelegate'. - Type '(debuggerModel: DebuggerModel) => boolean' is not assignable to type '(item: T) => boolean'. -node_modules/chrome-devtools-frontend/front_end/sources/ThreadsSidebarPane.js(86,3): error TS2416: Property 'isItemSelectable' in type 'ThreadsSidebarPane' is not assignable to the same property in base type 'ListDelegate'. - Type '(debuggerModel: DebuggerModel) => boolean' is not assignable to type '(item: T) => boolean'. - Types of parameters 'debuggerModel' and 'item' are incompatible. - Type 'T' is not assignable to type 'DebuggerModel'. -node_modules/chrome-devtools-frontend/front_end/sources/ThreadsSidebarPane.js(86,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/sources/ThreadsSidebarPane.js(97,3): error TS2416: Property 'selectedItemChanged' in type 'ThreadsSidebarPane' is not assignable to the same property in base type 'ListDelegate'. - Type '(from: DebuggerModel, to: DebuggerModel, fromElement: Element, toElement: Element) => void' is not assignable to type '(from: T, to: T, fromElement: Element, toElement: Element) => void'. -node_modules/chrome-devtools-frontend/front_end/sources/ThreadsSidebarPane.js(97,3): error TS2416: Property 'selectedItemChanged' in type 'ThreadsSidebarPane' is not assignable to the same property in base type 'ListDelegate'. - Type '(from: DebuggerModel, to: DebuggerModel, fromElement: Element, toElement: Element) => void' is not assignable to type '(from: T, to: T, fromElement: Element, toElement: Element) => void'. - Types of parameters 'from' and 'from' are incompatible. - Type 'T' is not assignable to type 'DebuggerModel'. -node_modules/chrome-devtools-frontend/front_end/sources/ThreadsSidebarPane.js(97,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/sources/ThreadsSidebarPane.js(110,3): error TS2416: Property 'modelAdded' in type 'ThreadsSidebarPane' is not assignable to the same property in base type 'SDKModelObserver'. - Type '(debuggerModel: DebuggerModel) => void' is not assignable to type '(model: T) => void'. -node_modules/chrome-devtools-frontend/front_end/sources/ThreadsSidebarPane.js(110,3): error TS2416: Property 'modelAdded' in type 'ThreadsSidebarPane' is not assignable to the same property in base type 'SDKModelObserver'. - Type '(debuggerModel: DebuggerModel) => void' is not assignable to type '(model: T) => void'. - Types of parameters 'debuggerModel' and 'model' are incompatible. - Type 'T' is not assignable to type 'DebuggerModel'. -node_modules/chrome-devtools-frontend/front_end/sources/ThreadsSidebarPane.js(110,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/sources/ThreadsSidebarPane.js(121,3): error TS2416: Property 'modelRemoved' in type 'ThreadsSidebarPane' is not assignable to the same property in base type 'SDKModelObserver'. - Type '(debuggerModel: DebuggerModel) => void' is not assignable to type '(model: T) => void'. -node_modules/chrome-devtools-frontend/front_end/sources/ThreadsSidebarPane.js(121,3): error TS2416: Property 'modelRemoved' in type 'ThreadsSidebarPane' is not assignable to the same property in base type 'SDKModelObserver'. - Type '(debuggerModel: DebuggerModel) => void' is not assignable to type '(model: T) => void'. - Types of parameters 'debuggerModel' and 'model' are incompatible. - Type 'T' is not assignable to type 'DebuggerModel'. -node_modules/chrome-devtools-frontend/front_end/sources/ThreadsSidebarPane.js(121,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/sources/UISourceCodeFrame.js(135,5): error TS2304: Cannot find name 'setImmediate'. -node_modules/chrome-devtools-frontend/front_end/sources/UISourceCodeFrame.js(204,19): error TS2339: Property 'addAll' does not exist on type 'Set'. -node_modules/chrome-devtools-frontend/front_end/sources/UISourceCodeFrame.js(437,32): error TS2339: Property 'enclosingNodeOrSelfWithClass' does not exist on type 'EventTarget'. -node_modules/chrome-devtools-frontend/front_end/sources/UISourceCodeFrame.js(438,22): error TS2339: Property 'enclosingNodeOrSelfWithClass' does not exist on type 'EventTarget'. -node_modules/chrome-devtools-frontend/front_end/sources/UISourceCodeFrame.js(443,29): error TS2339: Property 'clientX' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/sources/UISourceCodeFrame.js(443,44): error TS2339: Property 'clientY' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/sources/UISourceCodeFrame.js(444,5): error TS2741: Property 'hide' is missing in type '{ box: any; show: (popover: GlassPane) => Promise; }' but required in type 'PopoverRequest'. -node_modules/chrome-devtools-frontend/front_end/sources/UISourceCodeFrame.js(488,27): error TS2445: Property 'codeMirror' is protected and only accessible within class 'CodeMirrorTextEditor' and its subclasses. -node_modules/chrome-devtools-frontend/front_end/sources/UISourceCodeFrame.js(511,24): error TS2339: Property 'pushAll' does not exist on type 'ToolbarItem[]'. -node_modules/chrome-devtools-frontend/front_end/sources/UISourceCodeFrame.js(512,25): error TS2339: Property 'pushAll' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/sources/UISourceCodeFrame.js(547,31): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/UISourceCodeFrame.js(550,22): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/UISourceCodeFrame.js(552,39): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/UISourceCodeFrame.js(603,22): error TS2339: Property '_messageBucket' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/UISourceCodeFrame.js(604,35): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/UISourceCodeFrame.js(638,38): error TS2339: Property 'removeChildren' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/UISourceCodeFrame.js(652,23): error TS2339: Property 'toggleLineClass' does not exist on type 'CodeMirrorTextEditor'. -node_modules/chrome-devtools-frontend/front_end/sources/UISourceCodeFrame.js(722,23): error TS2339: Property 'toggleLineClass' does not exist on type 'CodeMirrorTextEditor'. -node_modules/chrome-devtools-frontend/front_end/sources/UISourceCodeFrame.js(728,21): error TS2339: Property 'toggleLineClass' does not exist on type 'CodeMirrorTextEditor'. -node_modules/chrome-devtools-frontend/front_end/sources/UISourceCodeFrame.js(755,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/sources/UISourceCodeFrame.js(761,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/sources/UISourceCodeFrame.js(767,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/sources/WatchExpressionsSidebarPane.js(65,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'ThrottledWidget'. -node_modules/chrome-devtools-frontend/front_end/sources/WatchExpressionsSidebarPane.js(97,25): error TS2339: Property 'removeChildren' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/WatchExpressionsSidebarPane.js(99,46): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/WatchExpressionsSidebarPane.js(132,30): error TS2339: Property 'remove' does not exist on type 'WatchExpression[]'. -node_modules/chrome-devtools-frontend/front_end/sources/WatchExpressionsSidebarPane.js(156,7): error TS2447: The '|=' operator is not allowed for boolean types. Consider using '||' instead. -node_modules/chrome-devtools-frontend/front_end/sources/WatchExpressionsSidebarPane.js(167,24): error TS2339: Property 'deepElementFromPoint' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/sources/WatchExpressionsSidebarPane.js(171,37): error TS2339: Property 'isSelfOrAncestor' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/WatchExpressionsSidebarPane.js(188,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'ThrottledWidget'. -node_modules/chrome-devtools-frontend/front_end/sources/WatchExpressionsSidebarPane.js(206,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'ThrottledWidget'. -node_modules/chrome-devtools-frontend/front_end/sources/WatchExpressionsSidebarPane.js(272,32): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/WatchExpressionsSidebarPane.js(279,19): error TS2339: Property 'getComponentSelection' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/WatchExpressionsSidebarPane.js(295,13): error TS2339: Property 'consume' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/sources/WatchExpressionsSidebarPane.js(301,19): error TS2339: Property 'removeChildren' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/WatchExpressionsSidebarPane.js(310,11): error TS2339: Property 'consume' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/sources/WatchExpressionsSidebarPane.js(330,11): error TS2339: Property 'consume' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/sources/WatchExpressionsSidebarPane.js(336,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sources/WatchExpressionsSidebarPane.js(342,38): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/WatchExpressionsSidebarPane.js(346,38): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/WatchExpressionsSidebarPane.js(360,19): error TS2339: Property 'removeChildren' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/WatchExpressionsSidebarPane.js(368,25): error TS2339: Property 'toggleOnClick' does not exist on type 'TreeElement'. -node_modules/chrome-devtools-frontend/front_end/sources/WatchExpressionsSidebarPane.js(383,11): error TS2339: Property 'consume' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/sources/WatchExpressionsSidebarPane.js(384,15): error TS2339: Property 'detail' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/sources/WatchExpressionsSidebarPane.js(428,24): error TS2339: Property 'deepElementFromPoint' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/sources/WatchExpressionsSidebarPane.js(429,38): error TS2339: Property 'isSelfOrAncestor' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/WorkspaceMappingTip.js(107,25): error TS2339: Property 'asParsedURL' does not exist on type 'string'. -node_modules/chrome-devtools-frontend/front_end/sources/WorkspaceMappingTip.js(156,11): error TS2339: Property 'consume' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/sources/WorkspaceMappingTip.js(174,16): error TS2339: Property 'createTextChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/WorkspaceMappingTip.js(176,23): error TS2339: Property 'attachInfobars' does not exist on type 'Widget'. -node_modules/chrome-devtools-frontend/front_end/sources/XHRBreakpointsSidebarPane.js(14,45): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/XHRBreakpointsSidebarPane.js(15,46): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/XHRBreakpointsSidebarPane.js(33,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/sources/XHRBreakpointsSidebarPane.js(49,46): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/XHRBreakpointsSidebarPane.js(76,41): error TS2339: Property '_checkboxElement' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/XHRBreakpointsSidebarPane.js(81,13): error TS2339: Property '_url' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/XHRBreakpointsSidebarPane.js(88,13): error TS2339: Property '_checkboxElement' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/XHRBreakpointsSidebarPane.js(95,26): error TS2339: Property '_url' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/XHRBreakpointsSidebarPane.js(95,49): error TS2339: Property '_url' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/XHRBreakpointsSidebarPane.js(95,64): error TS2339: Property '_url' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/XHRBreakpointsSidebarPane.js(186,41): error TS2339: Property '_checkboxElement' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources/XHRBreakpointsSidebarPane.js(202,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/sources_test_runner/BreakpointManagerTestRunner.js(81,30): error TS2554: Expected 1 arguments, but got 0. -node_modules/chrome-devtools-frontend/front_end/sources_test_runner/BreakpointManagerTestRunner.js(110,18): error TS2554: Expected 14 arguments, but got 3. -node_modules/chrome-devtools-frontend/front_end/sources_test_runner/BreakpointManagerTestRunner.js(132,18): error TS2339: Property 'setBreakpointCallback' does not exist on type 'Window & typeof globalThis'. -node_modules/chrome-devtools-frontend/front_end/sources_test_runner/BreakpointManagerTestRunner.js(133,36): error TS2339: Property 'setBreakpointCallback' does not exist on type 'Window & typeof globalThis'. -node_modules/chrome-devtools-frontend/front_end/sources_test_runner/BreakpointManagerTestRunner.js(134,23): error TS2339: Property 'setBreakpointCallback' does not exist on type 'Window & typeof globalThis'. -node_modules/chrome-devtools-frontend/front_end/sources_test_runner/BreakpointManagerTestRunner.js(141,43): error TS2345: Argument of type 'this' is not assignable to parameter of type 'DebuggerModel'. - Type 'DebuggerModelMock' is missing the following properties from type 'DebuggerModel': _agent, _runtimeModel, _sourceMapIdToScript, _debuggerPausedDetails, and 55 more. -node_modules/chrome-devtools-frontend/front_end/sources_test_runner/BreakpointManagerTestRunner.js(150,43): error TS2345: Argument of type 'this' is not assignable to parameter of type 'DebuggerModel'. -node_modules/chrome-devtools-frontend/front_end/sources_test_runner/BreakpointManagerTestRunner.js(170,60): error TS2345: Argument of type 'this' is not assignable to parameter of type 'DebuggerModel'. -node_modules/chrome-devtools-frontend/front_end/sources_test_runner/BreakpointManagerTestRunner.js(179,53): error TS2345: Argument of type 'this' is not assignable to parameter of type 'DebuggerModel'. -node_modules/chrome-devtools-frontend/front_end/sources_test_runner/BreakpointManagerTestRunner.js(250,3): error TS2304: Cannot find name 'uiSourceCode'. -node_modules/chrome-devtools-frontend/front_end/sources_test_runner/BreakpointManagerTestRunner.js(251,42): error TS2304: Cannot find name 'uiSourceCode'. -node_modules/chrome-devtools-frontend/front_end/sources_test_runner/BreakpointManagerTestRunner.js(257,10): error TS2304: Cannot find name 'uiSourceCode'. -node_modules/chrome-devtools-frontend/front_end/sources_test_runner/BreakpointManagerTestRunner.js(317,7): error TS2345: Argument of type '{ get: () => any; set: (breakpoints: any) => void; }' is not assignable to parameter of type 'Setting'. - Type '{ get: () => any; set: (breakpoints: any) => void; }' is missing the following properties from type 'Setting': _settings, _name, _defaultValue, _eventSupport, and 15 more. -node_modules/chrome-devtools-frontend/front_end/sources_test_runner/BreakpointManagerTestRunner.js(318,21): error TS2339: Property 'defaultMapping' does not exist on type 'BreakpointManager'. -node_modules/chrome-devtools-frontend/front_end/sources_test_runner/BreakpointManagerTestRunner.js(333,12): error TS2339: Property 'setBreakpointCallback' does not exist on type 'Window & typeof globalThis'. -node_modules/chrome-devtools-frontend/front_end/sources_test_runner/DebuggerTestRunner.js(125,28): error TS2339: Property 'sprintf' does not exist on type 'StringConstructor'. -node_modules/chrome-devtools-frontend/front_end/sources_test_runner/DebuggerTestRunner.js(170,17): error TS2339: Property 'sources' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/sources_test_runner/DebuggerTestRunner.js(171,15): error TS2339: Property 'sources' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/sources_test_runner/DebuggerTestRunner.js(212,15): error TS2339: Property 'sources' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/sources_test_runner/DebuggerTestRunner.js(218,15): error TS2339: Property 'sources' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/sources_test_runner/DebuggerTestRunner.js(224,15): error TS2339: Property 'sources' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/sources_test_runner/DebuggerTestRunner.js(230,15): error TS2339: Property 'sources' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/sources_test_runner/DebuggerTestRunner.js(396,25): error TS2339: Property 'sources' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/sources_test_runner/DebuggerTestRunner.js(426,25): error TS2339: Property 'sources' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/sources_test_runner/DebuggerTestRunner.js(709,100): error TS2551: Property '_bookmarkSymbol' does not exist on type 'typeof BreakpointDecoration'. Did you mean 'bookmarkSymbol'? -node_modules/chrome-devtools-frontend/front_end/sources_test_runner/DebuggerTestRunner.js(730,102): error TS2551: Property '_bookmarkSymbol' does not exist on type 'typeof BreakpointDecoration'. Did you mean 'bookmarkSymbol'? -node_modules/chrome-devtools-frontend/front_end/sources_test_runner/EditorTestRunner.js(13,22): error TS2339: Property 'style' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources_test_runner/EditorTestRunner.js(14,22): error TS2339: Property 'style' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/sources_test_runner/SearchTestRunner.js(91,3): error TS2304: Cannot find name 'editor'. -node_modules/chrome-devtools-frontend/front_end/sources_test_runner/SearchTestRunner.js(94,23): error TS2304: Cannot find name 'editor'. -node_modules/chrome-devtools-frontend/front_end/sources_test_runner/SearchTestRunner.js(95,19): error TS2304: Cannot find name 'editor'. -node_modules/chrome-devtools-frontend/front_end/sources_test_runner/SearchTestRunner.js(97,34): error TS2339: Property 'sources' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/sources_test_runner/SearchTestRunner.js(114,23): error TS2304: Cannot find name 'editor'. -node_modules/chrome-devtools-frontend/front_end/sources_test_runner/SearchTestRunner.js(115,19): error TS2304: Cannot find name 'editor'. -node_modules/chrome-devtools-frontend/front_end/sources_test_runner/SourcesTestRunner.js(26,29): error TS2339: Property 'map' does not exist on type 'NodeListOf'. -node_modules/chrome-devtools-frontend/front_end/sources_test_runner/SourcesTestRunner.js(31,21): error TS2339: Property '_nodeType' does not exist on type 'TreeElement'. -node_modules/chrome-devtools-frontend/front_end/sources_test_runner/SourcesTestRunner.js(32,21): error TS2339: Property '_nodeType' does not exist on type 'TreeElement'. -node_modules/chrome-devtools-frontend/front_end/sources_test_runner/SourcesTestRunner.js(93,14): error TS2554: Expected 2 arguments, but got 1. -node_modules/chrome-devtools-frontend/front_end/sources_test_runner/SourcesTestRunner.js(101,33): error TS2339: Property 'sprintf' does not exist on type 'StringConstructor'. -node_modules/chrome-devtools-frontend/front_end/sources_test_runner/SourcesTestRunner.js(103,33): error TS2339: Property 'sprintf' does not exist on type 'StringConstructor'. -node_modules/chrome-devtools-frontend/front_end/sources_test_runner/SourcesTestRunner.js(129,11): error TS2339: Property 'pushAll' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/terminal/TerminalWidget.js(29,54): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/terminal/TerminalWidget.js(57,50): error TS2339: Property 'cols' does not exist on type 'Terminal'. -node_modules/chrome-devtools-frontend/front_end/terminal/TerminalWidget.js(57,73): error TS2339: Property 'rows' does not exist on type 'Terminal'. -node_modules/chrome-devtools-frontend/front_end/terminal/TerminalWidget.js(59,18): error TS2339: Property 'write' does not exist on type 'Terminal'. -node_modules/chrome-devtools-frontend/front_end/terminal/TerminalWidget.js(120,46): error TS2345: Argument of type '{ text: string; lineNumber: number; columnNumber: number; maxLengh: number; className: string; }' is not assignable to parameter of type 'LinkifyURLOptions'. - Object literal may only specify known properties, but 'maxLengh' does not exist in type 'LinkifyURLOptions'. Did you mean to write 'maxLength'? -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/addons/fit/fit.js(19,34): error TS2792: Cannot find module '../../xterm'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/addons/fit/fit.js(20,21): error TS2304: Cannot find name 'define'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/addons/fit/fit.js(24,5): error TS2304: Cannot find name 'define'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/addons/fit/fit.js(29,16): error TS2339: Property 'Terminal' does not exist on type 'Window & typeof globalThis'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/addons/fit/fit.js(62,21): error TS2345: Argument of type 'number' is not assignable to parameter of type 'string'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/addons/fit/fit.js(63,21): error TS2345: Argument of type 'number' is not assignable to parameter of type 'string'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(1,107): error TS2304: Cannot find name 'define'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(1,128): error TS2304: Cannot find name 'define'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(1,140): error TS2304: Cannot find name 'define'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(1,437): error TS2591: Cannot find name 'require'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node` and then add `node` to the types field in your tsconfig. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(1,458): error TS2591: Cannot find name 'require'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node` and then add `node` to the types field in your tsconfig. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(1,564): error TS2339: Property 'code' does not exist on type 'Error'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(1,737): error TS2591: Cannot find name 'require'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node` and then add `node` to the types field in your tsconfig. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(1,758): error TS2591: Cannot find name 'require'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node` and then add `node` to the types field in your tsconfig. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(3,1): error TS2323: Cannot redeclare exported variable '__esModule'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(166,1): error TS2323: Cannot redeclare exported variable '__esModule'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(293,1): error TS2323: Cannot redeclare exported variable '__esModule'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(337,1): error TS2323: Cannot redeclare exported variable '__esModule'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(392,1): error TS2323: Cannot redeclare exported variable 'EventEmitter'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(398,1): error TS2323: Cannot redeclare exported variable '__esModule'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(399,33): error TS2792: Cannot find module './EscapeSequences'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(400,26): error TS2792: Cannot find module './Charsets'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(1330,1): error TS2323: Cannot redeclare exported variable '__esModule'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(1370,101): error TS2339: Property 'TIME_BEFORE_LINKIFY' does not exist on type 'typeof Linkifier'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(1550,11): error TS2339: Property 'TIME_BEFORE_LINKIFY' does not exist on type 'typeof Linkifier'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(1557,1): error TS2323: Cannot redeclare exported variable '__esModule'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(1558,33): error TS2792: Cannot find module './EscapeSequences'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(1559,26): error TS2792: Cannot find module './Charsets'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(2037,1): error TS2323: Cannot redeclare exported variable '__esModule'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(2038,38): error TS2792: Cannot find module './utils/DomElementObjectPool'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(2281,1): error TS2323: Cannot redeclare exported variable '__esModule'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(2359,1): error TS2323: Cannot redeclare exported variable '__esModule'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(2378,16): error TS2339: Property 'clipboardData' does not exist on type 'Window & typeof globalThis'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(2397,20): error TS2339: Property 'clipboardData' does not exist on type 'Window & typeof globalThis'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(2398,27): error TS2339: Property 'clipboardData' does not exist on type 'Window & typeof globalThis'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(2450,1): error TS2323: Cannot redeclare exported variable '__esModule'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(2451,25): error TS2792: Cannot find module './Generic'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(2476,1): error TS2323: Cannot redeclare exported variable '__esModule'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(2477,33): error TS2792: Cannot find module '../EventEmitter.js'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(2503,41): error TS2339: Property '_document' does not exist on type 'CharMeasure'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(2509,18): error TS2339: Property '_parentElement' does not exist on type 'CharMeasure'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(2524,18): error TS2339: Property 'emit' does not exist on type 'CharMeasure'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(2535,1): error TS2323: Cannot redeclare exported variable '__esModule'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(2612,22): error TS2403: Subsequent variable declarations must have the same type. Variable 'i' must be of type 'any', but here has type 'number'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(2615,22): error TS2403: Subsequent variable declarations must have the same type. Variable 'i' must be of type 'any', but here has type 'number'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(2674,1): error TS2323: Cannot redeclare exported variable '__esModule'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(2690,63): error TS2339: Property 'OBJECT_ID_ATTRIBUTE' does not exist on type 'typeof DomElementObjectPool'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(2694,68): error TS2339: Property 'OBJECT_ID_ATTRIBUTE' does not exist on type 'typeof DomElementObjectPool'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(2697,70): error TS2339: Property 'OBJECT_ID_ATTRIBUTE' does not exist on type 'typeof DomElementObjectPool'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(2703,39): error TS2339: Property '_objectCount' does not exist on type 'typeof DomElementObjectPool'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(2704,51): error TS2339: Property 'OBJECT_ID_ATTRIBUTE' does not exist on type 'typeof DomElementObjectPool'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(2713,22): error TS2339: Property 'OBJECT_ID_ATTRIBUTE' does not exist on type 'typeof DomElementObjectPool'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(2714,22): error TS2339: Property '_objectCount' does not exist on type 'typeof DomElementObjectPool'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(2721,1): error TS2323: Cannot redeclare exported variable '__esModule'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(2732,1): error TS2323: Cannot redeclare exported variable '__esModule'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(2766,1): error TS2323: Cannot redeclare exported variable '__esModule'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(2767,35): error TS2792: Cannot find module './CompositionHelper'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(2768,30): error TS2792: Cannot find module './EventEmitter'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(2769,26): error TS2792: Cannot find module './Viewport'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(2770,27): error TS2792: Cannot find module './handlers/Clipboard'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(2771,30): error TS2792: Cannot find module './utils/CircularList'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(2772,33): error TS2792: Cannot find module './EscapeSequences'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(2773,30): error TS2792: Cannot find module './InputHandler'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(2774,24): error TS2792: Cannot find module './Parser'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(2775,26): error TS2792: Cannot find module './Renderer'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(2776,27): error TS2792: Cannot find module './Linkifier'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(2777,29): error TS2792: Cannot find module './utils/CharMeasure'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(2778,23): error TS2792: Cannot find module './utils/Browser'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(2779,23): error TS2792: Cannot find module './utils/Mouse'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option? -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(2828,14): error TS2339: Property 'on' does not exist on type 'Terminal'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(2836,10): error TS2339: Property 'convertEol' does not exist on type 'Terminal'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(2852,10): error TS2339: Property 'decLocator' does not exist on type 'Terminal'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(2853,10): error TS2339: Property 'x10Mouse' does not exist on type 'Terminal'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(2854,10): error TS2339: Property 'vt200Mouse' does not exist on type 'Terminal'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(2855,10): error TS2339: Property 'vt300Mouse' does not exist on type 'Terminal'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(2856,10): error TS2339: Property 'normalMouse' does not exist on type 'Terminal'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(2857,10): error TS2339: Property 'mouseEvents' does not exist on type 'Terminal'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(2858,10): error TS2339: Property 'sendFocus' does not exist on type 'Terminal'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(2859,10): error TS2339: Property 'utfMouse' does not exist on type 'Terminal'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(2860,10): error TS2339: Property 'sgrMouse' does not exist on type 'Terminal'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(2861,10): error TS2339: Property 'urxvtMouse' does not exist on type 'Terminal'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(2866,10): error TS2339: Property 'savedX' does not exist on type 'Terminal'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(2867,10): error TS2339: Property 'savedY' does not exist on type 'Terminal'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(2868,10): error TS2339: Property 'savedCols' does not exist on type 'Terminal'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(2886,55): error TS2339: Property 'scrollback' does not exist on type 'Terminal'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(2925,9): error TS2322: Type 'number' is not assignable to type 'number[]'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(3151,54): error TS2339: Property 'theme' does not exist on type 'Terminal'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(3176,14): error TS2339: Property 'emit' does not exist on type 'Terminal'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(3179,14): error TS2339: Property 'emit' does not exist on type 'Terminal'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(3218,10): error TS2339: Property 'emit' does not exist on type 'Terminal'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(3266,19): error TS2339: Property 'utfMouse' does not exist on type 'Terminal'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(3288,18): error TS2339: Property 'vt300Mouse' does not exist on type 'Terminal'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(3307,18): error TS2339: Property 'decLocator' does not exist on type 'Terminal'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(3332,18): error TS2339: Property 'urxvtMouse' does not exist on type 'Terminal'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(3340,18): error TS2339: Property 'sgrMouse' does not exist on type 'Terminal'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(3352,13): error TS2403: Subsequent variable declarations must have the same type. Variable 'data' must be of type 'string', but here has type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(3389,18): error TS2339: Property 'vt200Mouse' does not exist on type 'Terminal'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(3392,24): error TS2339: Property 'normalMouse' does not exist on type 'Terminal'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(3399,19): error TS2339: Property 'mouseEvents' does not exist on type 'Terminal'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(3403,18): error TS2339: Property 'vt200Mouse' does not exist on type 'Terminal'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(3408,18): error TS2339: Property 'normalMouse' does not exist on type 'Terminal'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(3410,19): error TS2339: Property 'x10Mouse' does not exist on type 'Terminal'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(3413,26): error TS2339: Property 'normalMouse' does not exist on type 'Terminal'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(3422,19): error TS2339: Property 'mouseEvents' does not exist on type 'Terminal'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(3424,18): error TS2339: Property 'x10Mouse' does not exist on type 'Terminal'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(3425,21): error TS2339: Property 'vt300Mouse' does not exist on type 'Terminal'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(3426,21): error TS2339: Property 'decLocator' does not exist on type 'Terminal'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(3432,18): error TS2339: Property 'mouseEvents' does not exist on type 'Terminal'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(3442,10): error TS2300: Duplicate identifier 'handler'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(3443,10): error TS2300: Duplicate identifier 'write'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(3498,10): error TS2339: Property 'emit' does not exist on type 'Terminal'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(3515,14): error TS2339: Property 'emit' does not exist on type 'Terminal'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(3528,20): error TS2300: Duplicate identifier 'write'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(3569,16): error TS2554: Expected 0 arguments, but got 1. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(3634,10): error TS2339: Property 'emit' does not exist on type 'Terminal'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(3635,10): error TS2339: Property 'emit' does not exist on type 'Terminal'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(3637,18): error TS2554: Expected 0 arguments, but got 1. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(3936,10): error TS2339: Property 'emit' does not exist on type 'Terminal'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(3937,10): error TS2339: Property 'emit' does not exist on type 'Terminal'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(3939,18): error TS2554: Expected 0 arguments, but got 1. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(3946,26): error TS2554: Expected 0 arguments, but got 1. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(3953,15): error TS2339: Property 'visualBell' does not exist on type 'Terminal'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(3960,14): error TS2339: Property 'popOnBell' does not exist on type 'Terminal'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(3964,15): error TS2339: Property 'debug' does not exist on type 'Terminal'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(3972,15): error TS2339: Property 'debug' does not exist on type 'Terminal'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(4060,10): error TS2339: Property 'emit' does not exist on type 'Terminal'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(4140,10): error TS2339: Property 'emit' does not exist on type 'Terminal'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(4161,21): error TS2339: Property 'termName' does not exist on type 'Terminal'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(4164,20): error TS2300: Duplicate identifier 'handler'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(4171,10): error TS2339: Property 'emit' does not exist on type 'Terminal'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(4174,10): error TS2339: Property 'emit' does not exist on type 'Terminal'. -node_modules/chrome-devtools-frontend/front_end/terminal/xterm.js/build/xterm.js(4307,1): error TS2323: Cannot redeclare exported variable 'EventEmitter'. -node_modules/chrome-devtools-frontend/front_end/test_runner/TestRunner.js(12,27): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/test_runner/TestRunner.js(12,64): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/test_runner/TestRunner.js(12,94): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/test_runner/TestRunner.js(13,6): error TS2551: Property 'testRunner' does not exist on type 'Window & typeof globalThis'. Did you mean 'TestRunner'? -node_modules/chrome-devtools-frontend/front_end/test_runner/TestRunner.js(24,8): error TS2551: Property 'testRunner' does not exist on type 'Window & typeof globalThis'. Did you mean 'TestRunner'? -node_modules/chrome-devtools-frontend/front_end/test_runner/TestRunner.js(28,5): error TS2794: Expected 1 arguments, but got 0. Did you forget to include 'void' in your type argument to 'Promise'? -node_modules/chrome-devtools-frontend/front_end/test_runner/TestRunner.js(42,21): error TS2551: Property 'testRunner' does not exist on type 'Window & typeof globalThis'. Did you mean 'TestRunner'? -node_modules/chrome-devtools-frontend/front_end/test_runner/TestRunner.js(76,8): error TS2551: Property 'testRunner' does not exist on type 'Window & typeof globalThis'. Did you mean 'TestRunner'? -node_modules/chrome-devtools-frontend/front_end/test_runner/TestRunner.js(117,19): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/test_runner/TestRunner.js(207,40): error TS2322: Type '(value: any) => void' is not assignable to type '() => void'. -node_modules/chrome-devtools-frontend/front_end/test_runner/TestRunner.js(287,22): error TS2339: Property 'traverseNextNode' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/test_runner/TestRunner.js(288,31): error TS2339: Property 'traverseNextNode' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/test_runner/TestRunner.js(297,33): error TS2339: Property 'traverseNextNode' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/test_runner/TestRunner.js(299,28): error TS2339: Property 'classList' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/test_runner/TestRunner.js(299,53): error TS2339: Property 'classList' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/test_runner/TestRunner.js(313,22): error TS2339: Property 'traverseNextNode' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/test_runner/TestRunner.js(314,31): error TS2339: Property 'traverseNextNode' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/test_runner/TestRunner.js(318,33): error TS2339: Property 'traverseNextNode' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/test_runner/TestRunner.js(327,32): error TS2339: Property 'cssAgent' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/test_runner/TestRunner.js(328,46): error TS2339: Property 'deviceOrientationAgent' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/test_runner/TestRunner.js(329,32): error TS2339: Property 'domAgent' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/test_runner/TestRunner.js(330,40): error TS2339: Property 'domdebuggerAgent' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/test_runner/TestRunner.js(331,37): error TS2339: Property 'debuggerAgent' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/test_runner/TestRunner.js(332,38): error TS2339: Property 'emulationAgent' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/test_runner/TestRunner.js(333,41): error TS2339: Property 'heapProfilerAgent' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/test_runner/TestRunner.js(334,38): error TS2339: Property 'inspectorAgent' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/test_runner/TestRunner.js(335,36): error TS2339: Property 'networkAgent' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/test_runner/TestRunner.js(336,36): error TS2339: Property 'overlayAgent' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/test_runner/TestRunner.js(337,33): error TS2339: Property 'pageAgent' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/test_runner/TestRunner.js(338,37): error TS2339: Property 'profilerAgent' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/test_runner/TestRunner.js(339,36): error TS2339: Property 'runtimeAgent' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/test_runner/TestRunner.js(340,35): error TS2339: Property 'targetAgent' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/test_runner/TestRunner.js(363,62): error TS2339: Property 'result' does not exist on type '{ response: RemoteObject; exceptionDetails: any; }'. -node_modules/chrome-devtools-frontend/front_end/test_runner/TestRunner.js(368,34): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/test_runner/TestRunner.js(372,42): error TS2339: Property 'result' does not exist on type '{ response: RemoteObject; exceptionDetails: any; }'. -node_modules/chrome-devtools-frontend/front_end/test_runner/TestRunner.js(381,35): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/test_runner/TestRunner.js(502,107): error TS2345: Argument of type '(value: any) => void' is not assignable to parameter of type '() => any'. -node_modules/chrome-devtools-frontend/front_end/test_runner/TestRunner.js(503,30): error TS2345: Argument of type 'Function' is not assignable to parameter of type '(value: any[]) => any[] | PromiseLike'. - Type 'Function' provides no match for the signature '(value: any[]): any[] | PromiseLike'. -node_modules/chrome-devtools-frontend/front_end/test_runner/TestRunner.js(641,59): error TS2551: Property 'testRunner' does not exist on type 'Window & typeof globalThis'. Did you mean 'TestRunner'? -node_modules/chrome-devtools-frontend/front_end/test_runner/TestRunner.js(641,92): error TS2551: Property 'testRunner' does not exist on type 'Window & typeof globalThis'. Did you mean 'TestRunner'? -node_modules/chrome-devtools-frontend/front_end/test_runner/TestRunner.js(642,3): error TS2322: Type 'number' is not assignable to type 'boolean'. -node_modules/chrome-devtools-frontend/front_end/test_runner/TestRunner.js(683,28): error TS2363: The right-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type. -node_modules/chrome-devtools-frontend/front_end/test_runner/TestRunner.js(777,22): error TS2339: Property 'attributes' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/test_runner/TestRunner.js(785,14): error TS2339: Property 'shadowRoot' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/test_runner/TestRunner.js(786,39): error TS2339: Property 'shadowRoot' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/test_runner/TestRunner.js(805,12): error TS2339: Property 'shadowRoot' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/test_runner/TestRunner.js(806,44): error TS2339: Property 'shadowRoot' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/test_runner/TestRunner.js(839,78): error TS2339: Property 'deepTextContent' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/test_runner/TestRunner.js(842,43): error TS2339: Property 'property' does not exist on type 'TreeElement'. -node_modules/chrome-devtools-frontend/front_end/test_runner/TestRunner.js(868,31): error TS2345: Argument of type '{ data: any; }' is not assignable to parameter of type 'symbol'. -node_modules/chrome-devtools-frontend/front_end/test_runner/TestRunner.js(947,58): error TS2345: Argument of type '(value: any) => void' is not assignable to parameter of type '() => void'. -node_modules/chrome-devtools-frontend/front_end/test_runner/TestRunner.js(981,55): error TS2345: Argument of type '(value: any) => void' is not assignable to parameter of type '() => void'. -node_modules/chrome-devtools-frontend/front_end/test_runner/TestRunner.js(1035,19): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/test_runner/TestRunner.js(1049,34): error TS2345: Argument of type '(arg0: () => void) => any' is not assignable to parameter of type 'string'. -node_modules/chrome-devtools-frontend/front_end/test_runner/TestRunner.js(1203,19): error TS2339: Property 'naturalOrderComparator' does not exist on type 'StringConstructor'. -node_modules/chrome-devtools-frontend/front_end/test_runner/TestRunner.js(1279,81): error TS2345: Argument of type 'Function' is not assignable to parameter of type '(value: any) => any'. - Type 'Function' provides no match for the signature '(value: any): any'. -node_modules/chrome-devtools-frontend/front_end/test_runner/TestRunner.js(1304,3): error TS2322: Type 'Promise' is not assignable to type 'Promise'. -node_modules/chrome-devtools-frontend/front_end/test_runner/TestRunner.js(1310,30): error TS2339: Property 'getAttribute' does not exist on type 'ChildNode'. -node_modules/chrome-devtools-frontend/front_end/test_runner/TestRunner.js(1311,44): error TS2339: Property 'getAttribute' does not exist on type 'ChildNode'. -node_modules/chrome-devtools-frontend/front_end/test_runner/TestRunner.js(1359,3): error TS4112: This member cannot have an 'override' modifier because its containing class '_TestObserver' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/test_runner/TestRunner.js(1380,3): error TS4112: This member cannot have an 'override' modifier because its containing class '_TestObserver' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/test_runner/TestRunner.js(1388,16): error TS2551: Property 'testRunner' does not exist on type 'Window & typeof globalThis'. Did you mean 'TestRunner'? -node_modules/chrome-devtools-frontend/front_end/test_runner/TestRunner.js(1425,37): error TS2339: Property '_instanceForTest' does not exist on type 'typeof Main'. -node_modules/chrome-devtools-frontend/front_end/test_runner/TestRunner.js(1426,27): error TS2339: Property '_instanceForTest' does not exist on type 'typeof Main'. -node_modules/chrome-devtools-frontend/front_end/test_runner/TestRunner.js(1427,48): error TS2339: Property '_instanceForTest' does not exist on type 'typeof Main'. -node_modules/chrome-devtools-frontend/front_end/text_editor/CodeMirrorTextEditor.js(47,35): error TS2339: Property 'CodeMirror' does not exist on type 'Window & typeof globalThis'. -node_modules/chrome-devtools-frontend/front_end/text_editor/CodeMirrorTextEditor.js(165,18): error TS2339: Property 'style' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/text_editor/CodeMirrorTextEditor.js(198,45): error TS2339: Property '_codeMirrorTextEditor' does not exist on type 'CodeMirror'. -node_modules/chrome-devtools-frontend/front_end/text_editor/CodeMirrorTextEditor.js(207,16): error TS2339: Property '_codeMirrorTextEditor' does not exist on type 'CodeMirror'. -node_modules/chrome-devtools-frontend/front_end/text_editor/CodeMirrorTextEditor.js(214,16): error TS2339: Property '_codeMirrorTextEditor' does not exist on type 'CodeMirror'. -node_modules/chrome-devtools-frontend/front_end/text_editor/CodeMirrorTextEditor.js(222,16): error TS2339: Property '_codeMirrorTextEditor' does not exist on type 'CodeMirror'. -node_modules/chrome-devtools-frontend/front_end/text_editor/CodeMirrorTextEditor.js(230,16): error TS2339: Property '_codeMirrorTextEditor' does not exist on type 'CodeMirror'. -node_modules/chrome-devtools-frontend/front_end/text_editor/CodeMirrorTextEditor.js(251,22): error TS2339: Property 'name' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/text_editor/CodeMirrorTextEditor.js(252,22): error TS2339: Property 'token' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/text_editor/CodeMirrorTextEditor.js(252,70): error TS2339: Property 'token' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/text_editor/CodeMirrorTextEditor.js(283,13): error TS2403: Subsequent variable declarations must have the same type. Variable 'extension' must be of type 'Extension', but here has type 'any'. -node_modules/chrome-devtools-frontend/front_end/text_editor/CodeMirrorTextEditor.js(371,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/text_editor/CodeMirrorTextEditor.js(395,29): error TS2339: Property 'constrain' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/text_editor/CodeMirrorTextEditor.js(449,60): error TS2339: Property 'constrain' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/text_editor/CodeMirrorTextEditor.js(557,9): error TS2339: Property 'consume' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/text_editor/CodeMirrorTextEditor.js(565,9): error TS2339: Property 'consume' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/text_editor/CodeMirrorTextEditor.js(572,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/text_editor/CodeMirrorTextEditor.js(602,30): error TS2339: Property 'isSelfOrDescendant' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/text_editor/CodeMirrorTextEditor.js(618,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/text_editor/CodeMirrorTextEditor.js(735,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/text_editor/CodeMirrorTextEditor.js(737,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/text_editor/CodeMirrorTextEditor.js(796,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/text_editor/CodeMirrorTextEditor.js(842,27): error TS2345: Argument of type 'number' is not assignable to parameter of type 'K'. - 'K' could be instantiated with an arbitrary type which could be unrelated to 'number'. -node_modules/chrome-devtools-frontend/front_end/text_editor/CodeMirrorTextEditor.js(855,13): error TS2339: Property 'style' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/text_editor/CodeMirrorTextEditor.js(856,13): error TS2339: Property 'style' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/text_editor/CodeMirrorTextEditor.js(863,27): error TS2345: Argument of type 'number' is not assignable to parameter of type 'K'. - 'K' could be instantiated with an arbitrary type which could be unrelated to 'number'. -node_modules/chrome-devtools-frontend/front_end/text_editor/CodeMirrorTextEditor.js(863,47): error TS2345: Argument of type '(decoration: Decoration) => void' is not assignable to parameter of type '(value: V, value2: V, set: Set) => void'. - Types of parameters 'decoration' and 'value' are incompatible. - Type 'V' is not assignable to type 'Decoration'. -node_modules/chrome-devtools-frontend/front_end/text_editor/CodeMirrorTextEditor.js(879,27): error TS2345: Argument of type 'number' is not assignable to parameter of type 'K'. - 'K' could be instantiated with an arbitrary type which could be unrelated to 'number'. -node_modules/chrome-devtools-frontend/front_end/text_editor/CodeMirrorTextEditor.js(889,32): error TS2345: Argument of type 'number' is not assignable to parameter of type 'K'. - 'K' could be instantiated with an arbitrary type which could be unrelated to 'number'. -node_modules/chrome-devtools-frontend/front_end/text_editor/CodeMirrorTextEditor.js(899,25): error TS2339: Property 'constrain' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/text_editor/CodeMirrorTextEditor.js(902,27): error TS2339: Property 'constrain' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/text_editor/CodeMirrorTextEditor.js(955,5): error TS2322: Type 'string' is not assignable to type 'number'. -node_modules/chrome-devtools-frontend/front_end/text_editor/CodeMirrorTextEditor.js(956,18): error TS2339: Property 'style' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/text_editor/CodeMirrorTextEditor.js(968,62): error TS2339: Property 'offsetTop' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/text_editor/CodeMirrorTextEditor.js(1011,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/text_editor/CodeMirrorTextEditor.js(1052,104): error TS2339: Property 'widget' does not exist on type 'V'. -node_modules/chrome-devtools-frontend/front_end/text_editor/CodeMirrorTextEditor.js(1125,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/text_editor/CodeMirrorTextEditor.js(1156,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/text_editor/CodeMirrorTextEditor.js(1191,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/text_editor/CodeMirrorTextEditor.js(1214,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/text_editor/CodeMirrorTextEditor.js(1225,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/text_editor/CodeMirrorTextEditor.js(1237,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/text_editor/CodeMirrorTextEditor.js(1251,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/text_editor/CodeMirrorTextEditor.js(1302,34): error TS2339: Property 'length' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/text_editor/CodeMirrorTextEditor.js(1307,9): error TS1345: An expression of type 'void' cannot be tested for truthiness. -node_modules/chrome-devtools-frontend/front_end/text_editor/CodeMirrorTextEditor.js(1307,9): error TS1345: An expression of type 'void' cannot be tested for truthiness. -node_modules/chrome-devtools-frontend/front_end/text_editor/CodeMirrorTextEditor.js(1307,44): error TS2339: Property 'match' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/text_editor/CodeMirrorTextEditor.js(1308,64): error TS2339: Property 'from' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/text_editor/CodeMirrorTextEditor.js(1309,56): error TS2339: Property 'to' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/text_editor/CodeMirrorTextEditor.js(1309,81): error TS2339: Property 'to' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/text_editor/CodeMirrorTextEditor.js(1323,14): error TS2339: Property '_codeMirrorTextEditor' does not exist on type 'CodeMirror'. -node_modules/chrome-devtools-frontend/front_end/text_editor/CodeMirrorTextEditor.js(1323,60): error TS2339: Property 'line' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/text_editor/CodeMirrorTextEditor.js(1324,43): error TS2339: Property '_codeMirrorTextEditor' does not exist on type 'CodeMirror'. -node_modules/chrome-devtools-frontend/front_end/text_editor/CodeMirrorTextEditor.js(1336,14): error TS2339: Property '_codeMirrorTextEditor' does not exist on type 'CodeMirror'. -node_modules/chrome-devtools-frontend/front_end/text_editor/CodeMirrorTextEditor.js(1336,60): error TS2339: Property 'line' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/text_editor/CodeMirrorTextEditor.js(1337,43): error TS2339: Property '_codeMirrorTextEditor' does not exist on type 'CodeMirror'. -node_modules/chrome-devtools-frontend/front_end/text_editor/CodeMirrorTextEditor.js(1400,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'CodeMirrorPositionHandle' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/text_editor/CodeMirrorTextEditor.js(1404,13): error TS2322: Type 'void' is not assignable to type 'number'. -node_modules/chrome-devtools-frontend/front_end/text_editor/CodeMirrorTextEditor.js(1412,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'CodeMirrorPositionHandle' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/text_editor/CodeMirrorTextEditor.js(1413,27): error TS2339: Property '_lineHandle' does not exist on type 'TextEditorPositionHandle'. -node_modules/chrome-devtools-frontend/front_end/text_editor/CodeMirrorTextEditor.js(1413,78): error TS2339: Property '_columnNumber' does not exist on type 'TextEditorPositionHandle'. -node_modules/chrome-devtools-frontend/front_end/text_editor/CodeMirrorTextEditor.js(1414,24): error TS2339: Property '_codeMirror' does not exist on type 'TextEditorPositionHandle'. -node_modules/chrome-devtools-frontend/front_end/text_editor/CodeMirrorTextEditor.js(1541,98): error TS2339: Property 'length' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/text_editor/CodeMirrorTextEditor.js(1551,68): error TS2365: Operator '+' cannot be applied to types 'undefined' and 'number'. -node_modules/chrome-devtools-frontend/front_end/text_editor/CodeMirrorTextEditor.js(1563,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/text_editor/CodeMirrorTextEditor.js(1569,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/text_editor/CodeMirrorTextEditor.js(1614,9): error TS1345: An expression of type 'void' cannot be tested for truthiness. -node_modules/chrome-devtools-frontend/front_end/text_editor/CodeMirrorTextEditor.js(1615,48): error TS2339: Property 'line' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/text_editor/CodeMirrorTextEditor.js(1621,9): error TS1345: An expression of type 'void' cannot be tested for truthiness. -node_modules/chrome-devtools-frontend/front_end/text_editor/CodeMirrorTextEditor.js(1622,48): error TS2339: Property 'line' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/text_editor/CodeMirrorTextEditor.js(1637,12): error TS1345: An expression of type 'void' cannot be tested for truthiness. -node_modules/chrome-devtools-frontend/front_end/text_editor/CodeMirrorTextEditor.js(1637,61): error TS2339: Property 'line' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/text_editor/CodeMirrorTextEditor.js(1637,71): error TS2339: Property 'ch' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/text_editor/CodeMirrorTextEditor.js(1647,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/text_editor/CodeMirrorTextEditor.js(1662,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'CodeMirrorTextEditorFactory' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/text_editor/CodeMirrorUtils.js(141,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'TokenizerFactory' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/text_editor/CodeMirrorUtils.js(146,15): error TS1345: An expression of type 'void' cannot be tested for truthiness. -node_modules/chrome-devtools-frontend/front_end/text_editor/CodeMirrorUtils.js(147,26): error TS2339: Property 'token' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/text_editor/CodeMirrorUtils.js(149,67): error TS2339: Property 'length' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/text_editor/TextEditorAutocompleteController.js(42,30): error TS2345: Argument of type 'void' is not assignable to parameter of type 'string'. -node_modules/chrome-devtools-frontend/front_end/text_editor/TextEditorAutocompleteController.js(130,5): error TS2322: Type 'Promise<{ text: string; }[]>' is not assignable to type 'Promise<{ text: string; subtitle: string; iconType: string; priority: number; isSecondary: boolean; title: string; }[]>'. - Type '{ text: string; }[]' is not assignable to type '{ text: string; subtitle: string; iconType: string; priority: number; isSecondary: boolean; title: string; }[]'. - Type '{ text: string; }' is missing the following properties from type '{ text: string; subtitle: string; iconType: string; priority: number; isSecondary: boolean; title: string; }': subtitle, iconType, priority, isSecondary, title -node_modules/chrome-devtools-frontend/front_end/text_editor/TextEditorAutocompleteController.js(163,43): error TS2339: Property 'line' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/text_editor/TextEditorAutocompleteController.js(163,85): error TS2339: Property 'ch' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/text_editor/TextEditorAutocompleteController.js(168,83): error TS2339: Property 'line' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/text_editor/TextEditorAutocompleteController.js(169,45): error TS2339: Property 'ch' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/text_editor/TextEditorAutocompleteController.js(184,7): error TS2304: Cannot find name 'setImmediate'. -node_modules/chrome-devtools-frontend/front_end/text_editor/TextEditorAutocompleteController.js(199,20): error TS2339: Property 'length' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/text_editor/TextEditorAutocompleteController.js(202,36): error TS2339: Property 'length' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/text_editor/TextEditorAutocompleteController.js(218,9): error TS1345: An expression of type 'void' cannot be tested for truthiness. -node_modules/chrome-devtools-frontend/front_end/text_editor/TextEditorAutocompleteController.js(224,56): error TS2339: Property 'line' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/text_editor/TextEditorAutocompleteController.js(224,69): error TS2339: Property 'ch' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/text_editor/TextEditorAutocompleteController.js(231,35): error TS2339: Property 'ch' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/text_editor/TextEditorAutocompleteController.js(278,86): error TS2339: Property 'line' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/text_editor/TextEditorAutocompleteController.js(278,99): error TS2339: Property 'ch' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/text_editor/TextEditorAutocompleteController.js(286,18): error TS2339: Property 'line' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/text_editor/TextEditorAutocompleteController.js(286,31): error TS2339: Property 'ch' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/text_editor/TextEditorAutocompleteController.js(329,19): error TS2339: Property 'keyCode' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/text_editor/TextEditorAutocompleteController.js(360,19): error TS2339: Property 'ch' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/text_editor/TextEditorAutocompleteController.js(360,58): error TS2339: Property 'line' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/text_editor/TextEditorAutocompleteController.js(360,64): error TS2339: Property 'length' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/text_editor/TextEditorAutocompleteController.js(368,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'TextEditorAutocompleteController' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/text_editor/TextEditorAutocompleteController.js(376,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'TextEditorAutocompleteController' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/text_editor/TextEditorAutocompleteController.js(377,56): error TS2339: Property 'slice' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/text_editor/TextEditorAutocompleteController.js(393,16): error TS2339: Property 'line' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/text_editor/TextEditorAutocompleteController.js(393,51): error TS2339: Property 'line' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/text_editor/TextEditorAutocompleteController.js(406,18): error TS2339: Property 'line' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/text_editor/TextEditorAutocompleteController.js(406,96): error TS2339: Property 'ch' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/text_editor/TextEditorAutocompleteController.js(407,18): error TS2339: Property 'ch' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/text_editor/TextEditorAutocompleteController.js(409,16): error TS2339: Property 'line' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/text_editor/TextEditorAutocompleteController.js(409,62): error TS2339: Property 'ch' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/text_editor/TextEditorAutocompleteController.js(410,50): error TS2339: Property 'line' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/text_editor/TextEditorAutocompleteController.js(411,89): error TS2339: Property 'charAt' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/text_editor/TextEditorAutocompleteController.js(411,103): error TS2339: Property 'ch' does not exist on type 'void'. -node_modules/chrome-devtools-frontend/front_end/text_utils/Text.js(21,39): error TS2339: Property 'computeLineEndings' does not exist on type 'string'. -node_modules/chrome-devtools-frontend/front_end/text_utils/Text.js(55,34): error TS2339: Property 'lowerBound' does not exist on type 'number[]'. -node_modules/chrome-devtools-frontend/front_end/text_utils/Text.js(160,42): error TS2339: Property 'lowerBound' does not exist on type 'number[]'. -node_modules/chrome-devtools-frontend/front_end/text_utils/TextRange.js(84,31): error TS2339: Property 'computeLineEndings' does not exist on type 'string'. -node_modules/chrome-devtools-frontend/front_end/text_utils/TextRange.js(260,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'TextRange' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/text_utils/TextUtils.js(238,5): error TS2322: Type '({ key: string; text: string; negative: boolean; } | { text: string; negative: boolean; } | { regex: RegExp; negative: boolean; })[]' is not assignable to type 'ParsedFilter[]'. - Type '{ key: string; text: string; negative: boolean; } | { text: string; negative: boolean; } | { regex: RegExp; negative: boolean; }' is not assignable to type 'ParsedFilter'. - Property 'regex' is missing in type '{ key: string; text: string; negative: boolean; }' but required in type 'ParsedFilter'. -node_modules/chrome-devtools-frontend/front_end/text_utils/TextUtils.js(265,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/text_utils/TextUtils.js(340,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/timeline/CountersGraph.js(59,42): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/timeline/CountersGraph.js(75,98): error TS2339: Property 'bytesToString' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/timeline/CountersGraph.js(84,16): error TS2339: Property 'bytesToString' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/timeline/CountersGraph.js(92,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/timeline/CountersGraph.js(123,60): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/timeline/CountersGraph.js(146,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/timeline/CountersGraph.js(154,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/timeline/CountersGraph.js(171,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/timeline/CountersGraph.js(195,19): error TS2339: Property 'x' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/timeline/CountersGraph.js(195,45): error TS2339: Property 'totalOffsetLeft' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/timeline/CountersGraph.js(230,19): error TS2339: Property 'x' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/timeline/CountersGraph.js(230,45): error TS2339: Property 'totalOffsetLeft' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/timeline/CountersGraph.js(257,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/timeline/CountersGraph.js(264,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/timeline/CountersGraph.js(282,43): error TS2339: Property 'peekLast' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/timeline/CountersGraph.js(331,33): error TS2339: Property 'constrain' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/timeline/CountersGraph.js(331,54): error TS2339: Property 'upperBound' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/timeline/CountersGraph.js(334,33): error TS2339: Property 'constrain' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/timeline/CountersGraph.js(334,54): error TS2339: Property 'lowerBound' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/timeline/CountersGraph.js(371,43): error TS2339: Property 'withThousandsSeparator' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/timeline/CountersGraph.js(379,28): error TS2339: Property 'backgroundColor' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/timeline/CountersGraph.js(380,28): error TS2339: Property 'borderColor' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/timeline/CountersGraph.js(384,40): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/timeline/CountersGraph.js(394,50): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/timeline/CountersGraph.js(426,27): error TS2339: Property 'upperBound' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/timeline/CountersGraph.js(438,24): error TS2339: Property 'withThousandsSeparator' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/timeline/CountersGraph.js(540,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'Calculator' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/timeline/CountersGraph.js(562,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'Calculator' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/timeline/CountersGraph.js(563,19): error TS2339: Property 'preciseMillisToString' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/timeline/CountersGraph.js(570,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'Calculator' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/timeline/CountersGraph.js(578,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'Calculator' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/timeline/CountersGraph.js(586,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'Calculator' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/timeline/CountersGraph.js(594,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'Calculator' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/timeline/EventsTimelineTreeView.js(63,32): error TS2339: Property 'peekLast' does not exist on type 'IterableIterator[]'. -node_modules/chrome-devtools-frontend/front_end/timeline/EventsTimelineTreeView.js(95,65): error TS2345: Argument of type '{ id: string; title: string; width: string; fixedWidth: true; sortable: true; }' is not assignable to parameter of type 'ColumnDescriptor'. - Object literal may only specify known properties, and 'width' does not exist in type 'ColumnDescriptor'. -node_modules/chrome-devtools-frontend/front_end/timeline/EventsTimelineTreeView.js(97,54): error TS2339: Property 'width' does not exist on type 'ColumnDescriptor'. -node_modules/chrome-devtools-frontend/front_end/timeline/EventsTimelineTreeView.js(183,56): error TS2339: Property 'value' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/timeline/ExtensionTracingSession.js(17,16): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/timeline/ExtensionTracingSession.js(20,7): error TS2322: Type '(value: any) => void' is not assignable to type '() => any'. -node_modules/chrome-devtools-frontend/front_end/timeline/ExtensionTracingSession.js(26,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ExtensionTracingSession' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/timeline/ExtensionTracingSession.js(30,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ExtensionTracingSession' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/timeline/ExtensionTracingSession.js(37,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ExtensionTracingSession' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/timeline/ExtensionTracingSession.js(44,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ExtensionTracingSession' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/timeline/ExtensionTracingSession.js(56,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ExtensionTracingSession' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/timeline/PerformanceModel.js(157,25): error TS2304: Cannot find name 'FileError'. -node_modules/chrome-devtools-frontend/front_end/timeline/PerformanceMonitor.js(26,46): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/timeline/PerformanceMonitor.js(28,25): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/timeline/PerformanceMonitor.js(83,12): error TS2339: Property '_animationId' does not exist on type 'PerformanceMonitor'. -node_modules/chrome-devtools-frontend/front_end/timeline/PerformanceMonitor.js(83,47): error TS2339: Property 'window' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/timeline/PerformanceMonitor.js(89,25): error TS2339: Property 'window' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/timeline/PerformanceMonitor.js(89,60): error TS2339: Property '_animationId' does not exist on type 'PerformanceMonitor'. -node_modules/chrome-devtools-frontend/front_end/timeline/PerformanceMonitor.js(99,31): error TS2694: Namespace 'Protocol' has no exported member 'Performance'. -node_modules/chrome-devtools-frontend/front_end/timeline/PerformanceMonitor.js(107,9): error TS2739: Type '{}' is missing the following properties from type '{ lastValue: number; lastTimestamp: number; }': lastValue, lastTimestamp -node_modules/chrome-devtools-frontend/front_end/timeline/PerformanceMonitor.js(114,22): error TS2339: Property 'constrain' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/timeline/PerformanceMonitor.js(193,47): error TS2339: Property 'stacked' does not exist on type '{ title: string; metrics: { name: string; color: string; mode: symbol; }[]; max: number; currentMax: number; format: symbol; smooth: boolean; }'. -node_modules/chrome-devtools-frontend/front_end/timeline/PerformanceMonitor.js(320,41): error TS2339: Property 'peekLast' does not exist on type '{ timestamp: number; metrics: Map; }[]'. -node_modules/chrome-devtools-frontend/front_end/timeline/PerformanceMonitor.js(330,24): error TS2339: Property 'constrain' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/timeline/PerformanceMonitor.js(419,27): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/timeline/PerformanceMonitor.js(432,11): error TS2741: Property 'mode' is missing in type '{ name: string; color: string; }' but required in type '{ name: string; color: string; mode: symbol; }'. -node_modules/chrome-devtools-frontend/front_end/timeline/PerformanceMonitor.js(432,50): error TS2741: Property 'mode' is missing in type '{ name: string; color: string; }' but required in type '{ name: string; color: string; mode: symbol; }'. -node_modules/chrome-devtools-frontend/front_end/timeline/PerformanceMonitor.js(433,11): error TS2741: Property 'mode' is missing in type '{ name: string; color: string; }' but required in type '{ name: string; color: string; mode: symbol; }'. -node_modules/chrome-devtools-frontend/front_end/timeline/PerformanceMonitor.js(433,58): error TS2741: Property 'mode' is missing in type '{ name: string; color: string; }' but required in type '{ name: string; color: string; mode: symbol; }'. -node_modules/chrome-devtools-frontend/front_end/timeline/PerformanceMonitor.js(443,19): error TS2741: Property 'mode' is missing in type '{ name: string; color: string; }' but required in type '{ name: string; color: string; mode: symbol; }'. -node_modules/chrome-devtools-frontend/front_end/timeline/PerformanceMonitor.js(443,61): error TS2741: Property 'mode' is missing in type '{ name: string; color: string; }' but required in type '{ name: string; color: string; mode: symbol; }'. -node_modules/chrome-devtools-frontend/front_end/timeline/PerformanceMonitor.js(447,55): error TS2741: Property 'mode' is missing in type '{ name: string; color: string; }' but required in type '{ name: string; color: string; mode: symbol; }'. -node_modules/chrome-devtools-frontend/front_end/timeline/PerformanceMonitor.js(448,64): error TS2741: Property 'mode' is missing in type '{ name: string; color: string; }' but required in type '{ name: string; color: string; mode: symbol; }'. -node_modules/chrome-devtools-frontend/front_end/timeline/PerformanceMonitor.js(449,55): error TS2741: Property 'mode' is missing in type '{ name: string; color: string; }' but required in type '{ name: string; color: string; mode: symbol; }'. -node_modules/chrome-devtools-frontend/front_end/timeline/PerformanceMonitor.js(450,61): error TS2741: Property 'mode' is missing in type '{ name: string; color: string; }' but required in type '{ name: string; color: string; mode: symbol; }'. -node_modules/chrome-devtools-frontend/front_end/timeline/PerformanceMonitor.js(451,59): error TS2741: Property 'mode' is missing in type '{ name: string; color: string; }' but required in type '{ name: string; color: string; mode: symbol; }'. -node_modules/chrome-devtools-frontend/front_end/timeline/PerformanceMonitor.js(452,65): error TS2741: Property 'mode' is missing in type '{ name: string; color: string; }' but required in type '{ name: string; color: string; mode: symbol; }'. -node_modules/chrome-devtools-frontend/front_end/timeline/PerformanceMonitor.js(519,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/timeline/PerformanceMonitor.js(522,22): error TS2339: Property 'color' does not exist on type '{ title: string; metrics: { name: string; color: string; mode: symbol; }[]; max: number; currentMax: number; format: symbol; smooth: boolean; }'. -node_modules/chrome-devtools-frontend/front_end/timeline/PerformanceMonitor.js(526,27): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineController.js(28,59): error TS2345: Argument of type 'this' is not assignable to parameter of type 'SDKModelObserver'. - Type 'TimelineController' is not assignable to type 'SDKModelObserver'. - Types of property 'modelAdded' are incompatible. - Type '(cpuProfilerModel: CPUProfilerModel) => void' is not assignable to type '(model: T) => void'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineController.js(44,64): error TS2339: Property 'traceProviders' does not exist on type 'typeof extensionServer'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineController.js(96,18): error TS2339: Property 'loadingStarted' does not exist on type 'Client'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineController.js(112,3): error TS2416: Property 'modelAdded' in type 'TimelineController' is not assignable to the same property in base type 'SDKModelObserver'. - Type '(cpuProfilerModel: CPUProfilerModel) => void' is not assignable to type '(model: T) => void'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineController.js(112,3): error TS2416: Property 'modelAdded' in type 'TimelineController' is not assignable to the same property in base type 'SDKModelObserver'. - Type '(cpuProfilerModel: CPUProfilerModel) => void' is not assignable to type '(model: T) => void'. - Types of parameters 'cpuProfilerModel' and 'model' are incompatible. - Type 'T' is not assignable to type 'CPUProfilerModel'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineController.js(112,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'TimelineController' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineController.js(121,3): error TS2416: Property 'modelRemoved' in type 'TimelineController' is not assignable to the same property in base type 'SDKModelObserver'. - Type '(cpuProfilerModel: CPUProfilerModel) => void' is not assignable to type '(model: T) => void'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineController.js(121,3): error TS2416: Property 'modelRemoved' in type 'TimelineController' is not assignable to the same property in base type 'SDKModelObserver'. - Type '(cpuProfilerModel: CPUProfilerModel) => void' is not assignable to type '(model: T) => void'. - Types of parameters 'cpuProfilerModel' and 'model' are incompatible. - Type 'T' is not assignable to type 'CPUProfilerModel'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineController.js(121,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'TimelineController' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineController.js(137,24): error TS2694: Namespace 'Protocol' has no exported member 'Profiler'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineController.js(183,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'TimelineController' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineController.js(190,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'TimelineController' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineController.js(196,18): error TS2339: Property 'processingStarted' does not exist on type 'Client'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineController.js(203,18): error TS2339: Property 'loadingComplete' does not exist on type 'Client'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineController.js(209,24): error TS2694: Namespace 'Protocol' has no exported member 'Profiler'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineController.js(233,96): error TS2339: Property 'peekLast' does not exist on type 'Event[]'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineController.js(255,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'TimelineController' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineController.js(263,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'TimelineController' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineController.js(264,18): error TS2551: Property 'loadingProgress' does not exist on type 'Client'. Did you mean 'recordingProgress'? -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineController.js(272,38): error TS8022: JSDoc '@extends' is not attached to a class. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineDetailsView.js(29,44): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineDetailsView.js(130,22): error TS2339: Property 'showLayerTree' does not exist on type 'Widget'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineEventOverview.js(46,20): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineEventOverview.js(113,28): error TS2339: Property 'constrain' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineEventOverview.js(114,26): error TS2339: Property 'constrain' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineEventOverview.js(170,43): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineEventOverview.js(204,36): error TS2339: Property '_overviewIndex' does not exist on type 'TimelineCategory'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineEventOverview.js(246,68): error TS2339: Property 'peekLast' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineEventOverview.js(248,81): error TS2339: Property '_overviewIndex' does not exist on type 'TimelineCategory'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineEventOverview.js(384,7): error TS2322: Type 'Promise HTMLImageElement)>' is not assignable to type 'Promise'. - Type 'HTMLImageElement | (new (width?: number, height?: number) => HTMLImageElement)' is not assignable to type 'HTMLImageElement'. - Type 'new (width?: number, height?: number) => HTMLImageElement' is missing the following properties from type 'HTMLImageElement': align, alt, border, complete, and 259 more. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineEventOverview.js(457,17): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineEventOverview.js(524,28): error TS2339: Property 'peekLast' does not exist on type 'TimelineFrame[]'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineEventOverview.js(542,40): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineEventOverview.js(644,48): error TS2339: Property 'bytesToString' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineEventOverview.js(644,87): error TS2339: Property 'bytesToString' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineEventOverview.js(655,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineFlameChartDataProvider.js(103,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Object'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineFlameChartDataProvider.js(110,17): error TS2339: Property '_blackboxRoot' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineFlameChartDataProvider.js(138,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Object'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineFlameChartDataProvider.js(140,27): error TS2339: Property '_blackboxRoot' does not exist on type 'string | Event | TimelineFrame | Frame'. - Property '_blackboxRoot' does not exist on type 'string'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineFlameChartDataProvider.js(148,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Object'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineFlameChartDataProvider.js(179,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Object'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineFlameChartDataProvider.js(187,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Object'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineFlameChartDataProvider.js(246,64): error TS2339: Property 'id' does not exist on type 'VirtualThread'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineFlameChartDataProvider.js(262,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Object'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineFlameChartDataProvider.js(270,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Object'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineFlameChartDataProvider.js(358,46): error TS2339: Property 'peekLast' does not exist on type 'Event[]'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineFlameChartDataProvider.js(360,9): error TS2339: Property '_blackboxRoot' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineFlameChartDataProvider.js(362,33): error TS2339: Property 'peekLast' does not exist on type 'Event[]'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineFlameChartDataProvider.js(365,11): error TS2339: Property '_blackboxRoot' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineFlameChartDataProvider.js(377,47): error TS2339: Property 'peekLast' does not exist on type 'Event[]'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineFlameChartDataProvider.js(417,16): error TS2339: Property 'remove' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineFlameChartDataProvider.js(418,16): error TS2339: Property 'remove' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineFlameChartDataProvider.js(462,9): error TS1345: An expression of type 'void' cannot be tested for truthiness. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineFlameChartDataProvider.js(476,50): error TS2339: Property 'peekLast' does not exist on type '{ name: string; startLevel: number; expanded: boolean; style: { height: number; padding: number; collapsible: boolean; font: string; color: string; backgroundColor: string; nestingLevel: number; itemsHeight: number; shareHeaderLine: boolean; useFirstLineForOverview: boolean; useDecoratorsForOverview: boolean; }; }[]'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineFlameChartDataProvider.js(492,38): error TS2339: Property 'push' does not exist on type 'number[] | Uint16Array'. - Property 'push' does not exist on type 'Uint16Array'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineFlameChartDataProvider.js(493,42): error TS2339: Property 'push' does not exist on type 'number[] | Float64Array'. - Property 'push' does not exist on type 'Float64Array'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineFlameChartDataProvider.js(495,44): error TS2339: Property 'push' does not exist on type 'number[] | Float32Array'. - Property 'push' does not exist on type 'Float32Array'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineFlameChartDataProvider.js(499,42): error TS2339: Property 'push' does not exist on type 'number[] | Float32Array'. - Property 'push' does not exist on type 'Float32Array'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineFlameChartDataProvider.js(516,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Object'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineFlameChartDataProvider.js(529,40): error TS2339: Property 'millisToString' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineFlameChartDataProvider.js(529,80): error TS2339: Property 'millisToString' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineFlameChartDataProvider.js(530,20): error TS2339: Property 'millisToString' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineFlameChartDataProvider.js(537,38): error TS2339: Property 'preciseMillisToString' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineFlameChartDataProvider.js(548,25): error TS2339: Property 'createChild' does not exist on type 'DocumentFragment'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineFlameChartDataProvider.js(563,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Object'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineFlameChartDataProvider.js(621,36): error TS2339: Property 'preciseMillisToString' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineFlameChartDataProvider.js(654,37): error TS2339: Property 'naturalHeight' does not exist on type 'new (width?: number, height?: number) => HTMLImageElement'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineFlameChartDataProvider.js(655,39): error TS2339: Property 'naturalWidth' does not exist on type 'new (width?: number, height?: number) => HTMLImageElement'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineFlameChartDataProvider.js(660,23): error TS2345: Argument of type 'new (width?: number, height?: number) => HTMLImageElement' is not assignable to parameter of type 'CanvasImageSource'. - Type 'new (width?: number, height?: number) => HTMLImageElement' is missing the following properties from type 'OffscreenCanvas': height, width, convertToBlob, getContext, and 4 more. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineFlameChartDataProvider.js(679,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Object'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineFlameChartDataProvider.js(745,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Object'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineFlameChartDataProvider.js(862,44): error TS2339: Property 'id' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineFlameChartDataProvider.js(865,63): error TS2339: Property 'id' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineFlameChartDataProvider.js(866,44): error TS2339: Property 'id' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineFlameChartDataProvider.js(869,63): error TS2339: Property 'id' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineFlameChartDataProvider.js(870,47): error TS2339: Property 'id' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineFlameChartDataProvider.js(881,45): error TS2339: Property 'millisToString' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineFlameChartDataProvider.js(924,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Object'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineFlameChartDataProvider.js(925,19): error TS2339: Property 'preciseMillisToString' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineFlameChartDataProvider.js(933,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Object'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineFlameChartNetworkDataProvider.js(51,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'TimelineFlameChartNetworkDataProvider' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineFlameChartNetworkDataProvider.js(59,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'TimelineFlameChartNetworkDataProvider' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineFlameChartNetworkDataProvider.js(74,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'TimelineFlameChartNetworkDataProvider' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineFlameChartNetworkDataProvider.js(82,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'TimelineFlameChartNetworkDataProvider' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineFlameChartNetworkDataProvider.js(136,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'TimelineFlameChartNetworkDataProvider' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineFlameChartNetworkDataProvider.js(147,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'TimelineFlameChartNetworkDataProvider' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineFlameChartNetworkDataProvider.js(156,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'TimelineFlameChartNetworkDataProvider' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineFlameChartNetworkDataProvider.js(167,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'TimelineFlameChartNetworkDataProvider' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineFlameChartNetworkDataProvider.js(184,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'TimelineFlameChartNetworkDataProvider' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineFlameChartNetworkDataProvider.js(217,29): error TS2339: Property 'constrain' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineFlameChartNetworkDataProvider.js(290,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'TimelineFlameChartNetworkDataProvider' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineFlameChartNetworkDataProvider.js(299,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'TimelineFlameChartNetworkDataProvider' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineFlameChartNetworkDataProvider.js(306,25): error TS2339: Property 'createChild' does not exist on type 'DocumentFragment'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineFlameChartNetworkDataProvider.js(309,87): error TS2339: Property 'millisToString' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineFlameChartNetworkDataProvider.js(313,69): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineFlameChartNetworkDataProvider.js(360,56): error TS2339: Property 'peekLast' does not exist on type 'number[]'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineFlameChartNetworkDataProvider.js(372,10): error TS2322: Type '{ startLevel: number; name: string; expanded: boolean; style: { padding: number; height: number; collapsible: boolean; color: string; font: string; backgroundColor: string; nestingLevel: number; useFirstLineForOverview: boolean; useDecoratorsForOverview: boolean; shareHeaderLine: boolean; }; }' is not assignable to type '{ name: string; startLevel: number; expanded: boolean; style: { height: number; padding: number; collapsible: boolean; font: string; color: string; backgroundColor: string; nestingLevel: number; itemsHeight: number; shareHeaderLine: boolean; useFirstLineForOverview: boolean; useDecoratorsForOverview: boolean; }; }'. - Types of property 'style' are incompatible. - Property 'itemsHeight' is missing in type '{ padding: number; height: number; collapsible: boolean; color: string; font: string; backgroundColor: string; nestingLevel: number; useFirstLineForOverview: boolean; useDecoratorsForOverview: boolean; shareHeaderLine: boolean; }' but required in type '{ height: number; padding: number; collapsible: boolean; font: string; color: string; backgroundColor: string; nestingLevel: number; itemsHeight: number; shareHeaderLine: boolean; useFirstLineForOverview: boolean; useDecoratorsForOverview: boolean; }'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineFlameChartNetworkDataProvider.js(391,64): error TS2339: Property 'constrain' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineFlameChartNetworkDataProvider.js(407,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'TimelineFlameChartNetworkDataProvider' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineFlameChartNetworkDataProvider.js(408,19): error TS2339: Property 'preciseMillisToString' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineFlameChartNetworkDataProvider.js(416,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'TimelineFlameChartNetworkDataProvider' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineFlameChartView.js(49,52): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineFlameChartView.js(115,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineFlameChartView.js(124,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineFlameChartView.js(133,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineFlameChartView.js(141,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineFlameChartView.js(206,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineFlameChartView.js(248,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineFlameChartView.js(257,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineFlameChartView.js(271,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineFlameChartView.js(290,40): error TS2339: Property 'createSelection' does not exist on type 'FlameChartDataProvider'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineFlameChartView.js(318,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineFlameChartView.js(330,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineFlameChartView.js(342,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineFlameChartView.js(350,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineFlameChartView.js(388,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineFlameChartView.js(402,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineFlameChartView.js(446,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'TimelineFlameChartMarker' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineFlameChartView.js(454,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'TimelineFlameChartMarker' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineFlameChartView.js(462,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'TimelineFlameChartMarker' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineFlameChartView.js(463,28): error TS2339: Property 'millisToString' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineFlameChartView.js(474,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'TimelineFlameChartMarker' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineHistoryManager.js(106,27): error TS2339: Property 'constrain' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineHistoryManager.js(164,64): error TS2339: Property 'asParsedURL' does not exist on type 'string'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineHistoryManager.js(176,41): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineHistoryManager.js(190,15): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineHistoryManager.js(192,27): error TS2339: Property 'millisToString' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineHistoryManager.js(193,35): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineHistoryManager.js(206,15): error TS2339: Property 'style' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineHistoryManager.js(207,15): error TS2339: Property 'style' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineHistoryManager.js(209,45): error TS2339: Property 'peekLast' does not exist on type 'Frame[]'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineHistoryManager.js(225,15): error TS2339: Property 'style' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineHistoryManager.js(226,15): error TS2339: Property 'style' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineHistoryManager.js(227,28): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineHistoryManager.js(278,37): error TS2339: Property 'createChild' does not exist on type 'DocumentFragment'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineHistoryManager.js(281,55): error TS2345: Argument of type 'this' is not assignable to parameter of type 'ListDelegate'. - Type 'DropDown' is not assignable to type 'ListDelegate'. - Types of property 'createElementForItem' are incompatible. - Type '(item: PerformanceModel) => Element' is not assignable to type '(item: T) => Element'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineHistoryManager.js(289,17): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineHistoryManager.js(319,48): error TS2339: Property 'boxInWindow' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineHistoryManager.js(321,31): error TS2339: Property 'focus' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineHistoryManager.js(331,29): error TS2339: Property 'enclosingNodeOrSelfWithClass' does not exist on type 'EventTarget'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineHistoryManager.js(342,23): error TS2339: Property 'enclosingNodeOrSelfWithClass' does not exist on type 'EventTarget'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineHistoryManager.js(351,19): error TS2339: Property 'key' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineHistoryManager.js(361,11): error TS2339: Property 'consume' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineHistoryManager.js(378,3): error TS2416: Property 'createElementForItem' in type 'DropDown' is not assignable to the same property in base type 'ListDelegate'. - Type '(item: PerformanceModel) => Element' is not assignable to type '(item: T) => Element'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineHistoryManager.js(378,3): error TS2416: Property 'createElementForItem' in type 'DropDown' is not assignable to the same property in base type 'ListDelegate'. - Type '(item: PerformanceModel) => Element' is not assignable to type '(item: T) => Element'. - Types of parameters 'item' and 'item' are incompatible. - Type 'T' is not assignable to type 'PerformanceModel'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineHistoryManager.js(378,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'DropDown' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineHistoryManager.js(389,3): error TS2416: Property 'heightForItem' in type 'DropDown' is not assignable to the same property in base type 'ListDelegate'. - Type '(item: PerformanceModel) => number' is not assignable to type '(item: T) => number'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineHistoryManager.js(389,3): error TS2416: Property 'heightForItem' in type 'DropDown' is not assignable to the same property in base type 'ListDelegate'. - Type '(item: PerformanceModel) => number' is not assignable to type '(item: T) => number'. - Types of parameters 'item' and 'item' are incompatible. - Type 'T' is not assignable to type 'PerformanceModel'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineHistoryManager.js(389,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'DropDown' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineHistoryManager.js(399,3): error TS2416: Property 'isItemSelectable' in type 'DropDown' is not assignable to the same property in base type 'ListDelegate'. - Type '(item: PerformanceModel) => boolean' is not assignable to type '(item: T) => boolean'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineHistoryManager.js(399,3): error TS2416: Property 'isItemSelectable' in type 'DropDown' is not assignable to the same property in base type 'ListDelegate'. - Type '(item: PerformanceModel) => boolean' is not assignable to type '(item: T) => boolean'. - Types of parameters 'item' and 'item' are incompatible. - Type 'T' is not assignable to type 'PerformanceModel'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineHistoryManager.js(399,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'DropDown' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineHistoryManager.js(410,3): error TS2416: Property 'selectedItemChanged' in type 'DropDown' is not assignable to the same property in base type 'ListDelegate'. - Type '(from: PerformanceModel, to: PerformanceModel, fromElement: Element, toElement: Element) => void' is not assignable to type '(from: T, to: T, fromElement: Element, toElement: Element) => void'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineHistoryManager.js(410,3): error TS2416: Property 'selectedItemChanged' in type 'DropDown' is not assignable to the same property in base type 'ListDelegate'. - Type '(from: PerformanceModel, to: PerformanceModel, fromElement: Element, toElement: Element) => void' is not assignable to type '(from: T, to: T, fromElement: Element, toElement: Element) => void'. - Types of parameters 'from' and 'from' are incompatible. - Type 'T' is not assignable to type 'PerformanceModel'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineHistoryManager.js(410,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'DropDown' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineHistoryManager.js(432,39): error TS2339: Property 'createChild' does not exist on type 'DocumentFragment'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineLayersView.js(13,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineLoader.js(19,17): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineLoader.js(43,14): error TS2339: Property '_reportErrorAndCancelLoading' does not exist on type 'typeof TimelineLoader'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineLoader.js(73,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'TimelineLoader' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineLoader.js(178,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'TimelineLoader' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelinePaintProfilerView.js(119,26): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelinePaintProfilerView.js(149,48): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelinePaintProfilerView.js(215,24): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelinePanel.js(100,53): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelinePanel.js(111,60): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelinePanel.js(131,32): error TS2339: Property 'addEventListener' does not exist on type 'typeof extensionServer'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelinePanel.js(187,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Panel'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelinePanel.js(340,33): error TS2339: Property 'remove' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelinePanel.js(362,37): error TS2339: Property 'toISO8601Compact' does not exist on type 'Date'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelinePanel.js(396,31): error TS2339: Property 'click' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelinePanel.js(461,57): error TS2345: Argument of type 'number' is not assignable to parameter of type 'boolean'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelinePanel.js(462,56): error TS2345: Argument of type 'number' is not assignable to parameter of type 'boolean'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelinePanel.js(467,24): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelinePanel.js(494,60): error TS2339: Property 'traceProviders' does not exist on type 'typeof extensionServer'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelinePanel.js(636,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Panel'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelinePanel.js(671,53): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelinePanel.js(712,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Panel'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelinePanel.js(730,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Panel'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelinePanel.js(738,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Panel'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelinePanel.js(746,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Panel'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelinePanel.js(850,20): error TS2339: Property 'constrain' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelinePanel.js(861,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Panel'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelinePanel.js(875,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Panel'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelinePanel.js(878,29): error TS2339: Property 'upperBound' does not exist on type 'Event[]'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelinePanel.js(895,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Panel'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelinePanel.js(1125,29): error TS8022: JSDoc '@extends' is not attached to a class. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelinePanel.js(1129,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelinePanel.js(1134,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelinePanel.js(1194,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelinePanel.js(1201,42): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelinePanel.js(1206,42): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelinePanel.js(1210,44): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelinePanel.js(1215,25): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelinePanel.js(1220,22): error TS2339: Property 'disabled' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelinePanel.js(1224,29): error TS2339: Property 'classList' does not exist on type 'Node & ParentNode'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelinePanel.js(1234,22): error TS2339: Property 'focus' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelinePanel.js(1289,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'LoadTimelineHandler' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelinePanel.js(1307,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ActionDelegate' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineTreeModeView.js(23,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineTreeModeView.js(31,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineTreeModeView.js(38,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineTreeModeView.js(45,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineTreeModeView.js(53,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineTreeModeView.js(61,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineTreeView.js(162,76): error TS2339: Property 'value' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineTreeView.js(289,68): error TS2345: Argument of type '{ id: string; title: string; width: string; fixedWidth: true; sortable: true; }' is not assignable to parameter of type 'ColumnDescriptor'. - Object literal may only specify known properties, and 'width' does not exist in type 'ColumnDescriptor'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineTreeView.js(290,70): error TS2345: Argument of type '{ id: string; title: string; width: string; fixedWidth: true; sortable: true; }' is not assignable to parameter of type 'ColumnDescriptor'. - Object literal may only specify known properties, and 'width' does not exist in type 'ColumnDescriptor'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineTreeView.js(291,18): error TS2345: Argument of type '{ id: string; title: string; disclosure: true; sortable: true; }' is not assignable to parameter of type 'ColumnDescriptor'. - Type '{ id: string; title: string; disclosure: true; sortable: true; }' is missing the following properties from type 'ColumnDescriptor': titleDOMFragment, sort, align, fixedWidth, and 4 more. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineTreeView.js(372,31): error TS2339: Property 'removeChildren' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineTreeView.js(375,44): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineTreeView.js(407,32): error TS2339: Property '_profileNode' does not exist on type 'DataGridNode'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineTreeView.js(427,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineTreeView.js(438,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineTreeView.js(452,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineTreeView.js(462,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineTreeView.js(473,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineTreeView.js(481,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineTreeView.js(524,26): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineTreeView.js(581,24): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineTreeView.js(590,12): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineTreeView.js(717,9): error TS2741: Property 'icon' is missing in type '{ name: string; color: string; }' but required in type '{ name: string; color: string; icon: Element; }'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineTreeView.js(727,9): error TS2741: Property 'icon' is missing in type '{ name: string; color: string; }' but required in type '{ name: string; color: string; icon: Element; }'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineTreeView.js(733,9): error TS2741: Property 'icon' is missing in type '{ name: string; color: string; }' but required in type '{ name: string; color: string; icon: Element; }'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineTreeView.js(754,9): error TS2741: Property 'icon' is missing in type '{ name: any; color: string; }' but required in type '{ name: string; color: string; icon: Element; }'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineTreeView.js(759,5): error TS2741: Property 'icon' is missing in type '{ name: string; color: string; }' but required in type '{ name: string; color: string; icon: Element; }'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineTreeView.js(779,61): error TS2345: Argument of type '{ label: string; value: string; }[]' is not assignable to parameter of type '{ value: string; label: string; title: string; default: boolean; }[]'. - Type '{ label: string; value: string; }' is missing the following properties from type '{ value: string; label: string; title: string; default: boolean; }': title, default -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineTreeView.js(871,25): error TS2339: Property 'asParsedURL' does not exist on type 'string'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineTreeView.js(896,25): error TS2339: Property 'asParsedURL' does not exist on type 'string'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineTreeView.js(910,25): error TS2339: Property 'asParsedURL' does not exist on type 'string'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineTreeView.js(1019,31): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(40,34): error TS2339: Property '_eventStylesMap' does not exist on type 'typeof TimelineUIUtils'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(41,39): error TS2339: Property '_eventStylesMap' does not exist on type 'typeof TimelineUIUtils'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(209,30): error TS2339: Property '_eventStylesMap' does not exist on type 'typeof TimelineUIUtils'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(210,5): error TS2322: Type '{}' is not assignable to type '{ [x: string]: TimelineRecordStyle; }'. - Index signature is missing in type '{}'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(218,35): error TS2339: Property '_inputEventToDisplayName' does not exist on type 'typeof TimelineUIUtils'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(222,32): error TS2339: Property '_inputEventToDisplayName' does not exist on type 'typeof TimelineUIUtils'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(251,37): error TS2339: Property '_inputEventToDisplayName' does not exist on type 'typeof TimelineUIUtils'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(255,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(373,25): error TS2339: Property 'asParsedURL' does not exist on type 'string'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(412,40): error TS2339: Property '_interactionPhaseStylesMap' does not exist on type 'typeof TimelineUIUtils'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(432,32): error TS2339: Property '_interactionPhaseStylesMap' does not exist on type 'typeof TimelineUIUtils'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(454,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(526,62): error TS2339: Property 'bytesToString' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(557,13): error TS2403: Subsequent variable declarations must have the same type. Variable 'url' must be of type 'string', but here has type 'any'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(564,13): error TS2403: Subsequent variable declarations must have the same type. Variable 'url' must be of type 'string', but here has type 'any'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(703,17): error TS2339: Property 'createTextChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(707,19): error TS2339: Property 'createTextChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(716,13): error TS2403: Subsequent variable declarations must have the same type. Variable 'url' must be of type 'string', but here has type 'any'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(721,13): error TS2403: Subsequent variable declarations must have the same type. Variable 'url' must be of type 'string', but here has type 'any'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(807,9): error TS2403: Subsequent variable declarations must have the same type. Variable 'url' must be of type 'string', but here has type 'any'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(815,73): error TS2339: Property 'millisToString' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(816,72): error TS2339: Property 'millisToString' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(824,74): error TS2339: Property 'bytesToString' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(838,74): error TS2339: Property 'millisToString' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(977,54): error TS2339: Property 'millisToString' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(1003,18): error TS2339: Property 'millisToString' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(1040,31): error TS2339: Property 'asParsedURL' does not exist on type 'string'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(1058,56): error TS2339: Property 'millisToString' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(1058,92): error TS2339: Property 'millisToString' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(1075,43): error TS2339: Property 'lowerBound' does not exist on type 'Event[]'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(1076,42): error TS2339: Property 'lowerBound' does not exist on type 'Event[]'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(1197,71): error TS2339: Property 'millisToString' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(1202,69): error TS2694: Namespace 'Protocol' has no exported member 'Network'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(1213,30): error TS2339: Property 'bytesToString' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(1216,75): error TS2339: Property 'bytesToString' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(1236,18): error TS2339: Property 'previewElement' does not exist on type 'NetworkRequest'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(1237,15): error TS2339: Property 'previewElement' does not exist on type 'NetworkRequest'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(1240,17): error TS2339: Property 'previewElement' does not exist on type 'NetworkRequest'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(1241,74): error TS2339: Property 'previewElement' does not exist on type 'NetworkRequest'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(1246,31): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(1247,25): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(1250,33): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(1302,74): error TS2339: Property 'preciseMillisToString' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(1403,37): error TS2339: Property 'valuesArray' does not exist on type 'Map'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(1412,13): error TS2339: Property 'addAll' does not exist on type 'Set'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(1431,24): error TS2339: Property 'binaryIndexOf' does not exist on type 'Event[]'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(1481,25): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(1483,41): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(1498,28): error TS2339: Property 'millisToString' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(1499,18): error TS2339: Property 'title' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(1502,20): error TS2339: Property 'style' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(1541,34): error TS2551: Property '_categories' does not exist on type 'typeof TimelineUIUtils'. Did you mean 'categories'? -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(1542,39): error TS2551: Property '_categories' does not exist on type 'typeof TimelineUIUtils'. Did you mean 'categories'? -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(1543,30): error TS2551: Property '_categories' does not exist on type 'typeof TimelineUIUtils'. Did you mean 'categories'? -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(1560,37): error TS2551: Property '_categories' does not exist on type 'typeof TimelineUIUtils'. Did you mean 'categories'? -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(1568,35): error TS2339: Property '_titleForAsyncEventGroupMap' does not exist on type 'typeof TimelineUIUtils'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(1570,32): error TS2339: Property '_titleForAsyncEventGroupMap' does not exist on type 'typeof TimelineUIUtils'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(1575,37): error TS2339: Property '_titleForAsyncEventGroupMap' does not exist on type 'typeof TimelineUIUtils'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(1590,61): error TS2339: Property 'preciseMillisToString' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(1593,37): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(1595,33): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(1609,18): error TS2339: Property 'preciseMillisToString' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(1652,69): error TS2339: Property 'millisToString' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(1657,64): error TS2345: Argument of type 'new (width?: number, height?: number) => HTMLImageElement' is not assignable to parameter of type 'Node'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(1675,5): error TS2740: Type 'DocumentFragment' is missing the following properties from type 'Element': attributes, classList, className, clientHeight, and 64 more. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(1684,30): error TS2339: Property 'millisToString' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(1685,16): error TS2339: Property 'millisToString' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(1687,13): error TS2339: Property 'createTextChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(1690,13): error TS2339: Property 'createTextChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(1693,13): error TS2339: Property 'createTextChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(1735,34): error TS2551: Property '_eventDispatchDesciptors' does not exist on type 'typeof TimelineUIUtils'. Did you mean 'eventDispatchDesciptors'? -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(1736,39): error TS2551: Property '_eventDispatchDesciptors' does not exist on type 'typeof TimelineUIUtils'. Did you mean 'eventDispatchDesciptors'? -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(1741,30): error TS2551: Property '_eventDispatchDesciptors' does not exist on type 'typeof TimelineUIUtils'. Did you mean 'eventDispatchDesciptors'? -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(1754,37): error TS2551: Property '_eventDispatchDesciptors' does not exist on type 'typeof TimelineUIUtils'. Did you mean 'eventDispatchDesciptors'? -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(1833,46): error TS2339: Property '_colorGenerator' does not exist on type '(id: string) => string'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(1834,43): error TS2339: Property '_colorGenerator' does not exist on type '(id: string) => string'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(1836,43): error TS2339: Property '_colorGenerator' does not exist on type '(id: string) => string'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(1838,48): error TS2339: Property '_colorGenerator' does not exist on type '(id: string) => string'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(1861,14): error TS2339: Property 'createTextChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(1866,20): error TS2339: Property 'millisToString' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(1869,70): error TS2339: Property 'millisToString' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(1872,80): error TS2339: Property 'millisToString' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(1877,14): error TS2339: Property 'createTextChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(1963,13): error TS2339: Property 'createTextChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(1965,13): error TS2339: Property 'createTextChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(1970,13): error TS2339: Property 'createTextChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(1971,25): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(1991,27): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(1997,13): error TS2339: Property 'createTextChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(1998,28): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(2053,21): error TS2339: Property 'createTextChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(2057,21): error TS2339: Property 'createTextChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(2059,21): error TS2339: Property 'createTextChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(2078,23): error TS2339: Property 'createTextChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(2167,15): error TS2339: Property 'colSpan' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(2186,10): error TS2339: Property 'createTextChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(2191,5): error TS2322: Type 'string | number' is not assignable to type 'string'. - Type 'number' is not assignable to type 'string'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(2219,12): error TS2339: Property 'createTextChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(2240,39): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(2250,20): error TS2339: Property 'removeChildren' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(2257,39): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(2263,39): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(2334,21): error TS2339: Property 'createTextChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(2334,44): error TS2339: Property 'sprintf' does not exist on type 'StringConstructor'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(2340,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(2353,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(2360,23): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TimelineFrameModel.js(73,29): error TS2339: Property 'lowerBound' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TimelineFrameModel.js(74,28): error TS2339: Property 'lowerBound' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TimelineFrameModel.js(223,43): error TS2339: Property 'peekLast' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TimelineFrameModel.js(267,24): error TS2339: Property 'id' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TimelineJSProfile.js(18,47): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TimelineJSProfile.js(31,50): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TimelineJSProfile.js(31,89): error TS2339: Property 'depth' does not exist on type 'CPUProfileNode'. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TimelineJSProfile.js(33,38): error TS2739: Type 'ProfileNode' is missing the following properties from type 'CPUProfileNode': positionTicks, deoptReason -node_modules/chrome-devtools-frontend/front_end/timeline_model/TimelineJSProfile.js(34,50): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TimelineJSProfile.js(51,26): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TimelineJSProfile.js(52,26): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TimelineJSProfile.js(89,9): error TS2339: Property 'ordinal' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TimelineJSProfile.js(100,9): error TS2339: Property 'ordinal' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TimelineJSProfile.js(118,46): error TS2339: Property 'peekLast' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TimelineJSProfile.js(142,33): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TimelineJSProfile.js(172,35): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TimelineJSProfile.js(179,35): error TS2339: Property 'peekLast' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TimelineJSProfile.js(192,22): error TS2339: Property 'ordinal' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TimelineJSProfile.js(192,34): error TS2339: Property 'ordinal' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TimelineJSProfile.js(209,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TimelineModel.js(41,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TimelineModel.js(42,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TimelineModel.js(61,36): error TS2339: Property 'peekLast' does not exist on type 'Event[]'. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TimelineModel.js(69,51): error TS2339: Property 'peekLast' does not exist on type 'Event[]'. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TimelineModel.js(69,51): error TS2339: Property 'peekLast' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TimelineModel.js(81,24): error TS2339: Property 'upperBound' does not exist on type 'Event[]'. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TimelineModel.js(179,51): error TS2339: Property 'peekLast' does not exist on type 'Event[]'. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TimelineModel.js(274,54): error TS2339: Property 'valuesArray' does not exist on type 'Set'. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TimelineModel.js(306,41): error TS2339: Property 'lowerBound' does not exist on type 'Event[]'. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TimelineModel.js(317,32): error TS2339: Property 'lowerBound' does not exist on type 'Event[]'. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TimelineModel.js(320,29): error TS2339: Property 'lowerBound' does not exist on type 'Event[]'. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TimelineModel.js(377,34): error TS2339: Property 'peekLast' does not exist on type 'Event[]'. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TimelineModel.js(380,41): error TS2694: Namespace 'Protocol' has no exported member 'Profiler'. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TimelineModel.js(392,41): error TS2694: Namespace 'Protocol' has no exported member 'Profiler'. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TimelineModel.js(435,23): error TS2339: Property 'mergeOrdered' does not exist on type 'Event[]'. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TimelineModel.js(439,32): error TS2339: Property 'mergeOrdered' does not exist on type 'Event[]'. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TimelineModel.js(470,20): error TS2339: Property 'lowerBound' does not exist on type 'Event[]'. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TimelineModel.js(476,46): error TS2339: Property 'peekLast' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TimelineModel.js(482,35): error TS2339: Property 'peekLast' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TimelineModel.js(542,37): error TS2339: Property 'lowerBound' does not exist on type 'AsyncEvent[]'. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TimelineModel.js(601,68): error TS2339: Property 'peekLast' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TimelineModel.js(607,46): error TS2339: Property 'peekLast' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TimelineModel.js(762,13): error TS2403: Subsequent variable declarations must have the same type. Variable 'frameId' must be of type 'any', but here has type 'string'. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TimelineModel.js(801,40): error TS2339: Property 'bind_id' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TimelineModel.js(818,39): error TS2339: Property 'peekLast' does not exist on type 'Event[]'. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TimelineModel.js(823,18): error TS2339: Property 'causedFrame' does not exist on type 'AsyncEvent'. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TimelineModel.js(827,109): error TS2339: Property 'causedFrame' does not exist on type 'AsyncEvent'. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TimelineModel.js(861,23): error TS2339: Property 'mergeOrdered' does not exist on type 'AsyncEvent[]'. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TimelineModel.js(1433,61): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TimelineModel.js(1524,30): error TS2488: Type 'Iterator' must have a '[Symbol.iterator]()' method that returns an iterator. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TimelineModel.js(1532,22): error TS2339: Property 'linkedRecalcStyleEvent' does not exist on type 'InvalidationTrackingEvent'. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TimelineModel.js(1548,18): error TS2339: Property 'linkedRecalcStyleEvent' does not exist on type 'InvalidationTrackingEvent'. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TimelineModel.js(1600,23): error TS2339: Property 'linkedRecalcStyleEvent' does not exist on type 'InvalidationTrackingEvent'. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TimelineModel.js(1609,30): error TS2488: Type 'Iterator' must have a '[Symbol.iterator]()' method that returns an iterator. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TimelineModel.js(1642,30): error TS2488: Type 'Iterator' must have a '[Symbol.iterator]()' method that returns an iterator. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TimelineModel.js(1709,67): error TS2339: Property '_asyncEvents' does not exist on type 'typeof TimelineAsyncEventTracker'. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TimelineModel.js(1714,49): error TS2339: Property '_asyncEvents' does not exist on type 'typeof TimelineAsyncEventTracker'. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TimelineModel.js(1730,45): error TS2339: Property '_asyncEvents' does not exist on type 'typeof TimelineAsyncEventTracker'. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TimelineModel.js(1732,45): error TS2339: Property '_typeToInitiator' does not exist on type 'typeof TimelineAsyncEventTracker'. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TimelineModel.js(1736,49): error TS2339: Property '_typeToInitiator' does not exist on type 'typeof TimelineAsyncEventTracker'. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TimelineModel.js(1744,65): error TS2339: Property '_typeToInitiator' does not exist on type 'typeof TimelineAsyncEventTracker'. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TimelineModel.js(1749,65): error TS2339: Property '_asyncEvents' does not exist on type 'typeof TimelineAsyncEventTracker'. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TimelineModel.js(1780,33): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TimelineModel.js(1811,25): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TimelineModel.js(1819,32): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TimelineModelFilter.js(43,22): error TS1110: Type expected. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TimelineProfileTree.js(105,62): error TS2322: Type 'TopDownNode' is not assignable to type 'this'. - 'TopDownNode' is assignable to the constraint of type 'this', but 'this' could be instantiated with a different subtype of constraint 'TopDownNode'. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TimelineProfileTree.js(168,31): error TS2345: Argument of type 'string | symbol' is not assignable to parameter of type 'string'. - Type 'symbol' is not assignable to type 'string'. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TimelineProfileTree.js(170,66): error TS2345: Argument of type 'string | symbol' is not assignable to parameter of type 'string'. - Type 'symbol' is not assignable to type 'string'. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TimelineProfileTree.js(172,22): error TS2345: Argument of type 'string | symbol' is not assignable to parameter of type 'string'. - Type 'symbol' is not assignable to type 'string'. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TimelineProfileTree.js(445,27): error TS2339: Property '_depth' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TimelineProfileTree.js(501,46): error TS2322: Type 'Node' is not assignable to type 'this'. - 'this' could be instantiated with an arbitrary type which could be unrelated to 'Node'. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TimelineProfileTree.js(508,11): error TS2403: Subsequent variable declarations must have the same type. Variable 'node' must be of type 'this', but here has type 'Node'. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TimelineProfileTree.js(512,9): error TS2322: Type 'BottomUpNode' is not assignable to type 'this'. - 'BottomUpNode' is assignable to the constraint of type 'this', but 'this' could be instantiated with a different subtype of constraint 'BottomUpNode'. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TimelineProfileTree.js(559,23): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TimelineProfileTree.js(563,33): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TracingLayerTree.js(104,18): error TS2339: Property '_pictureForRect' does not exist on type 'Layer'. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TracingLayerTree.js(193,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'TracingLayer' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TracingLayerTree.js(201,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'TracingLayer' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TracingLayerTree.js(209,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'TracingLayer' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TracingLayerTree.js(217,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'TracingLayer' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TracingLayerTree.js(225,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'TracingLayer' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TracingLayerTree.js(233,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'TracingLayer' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TracingLayerTree.js(234,15): error TS2551: Property '_parent' does not exist on type 'Layer'. Did you mean 'parent'? -node_modules/chrome-devtools-frontend/front_end/timeline_model/TracingLayerTree.js(237,11): error TS2551: Property '_parent' does not exist on type 'Layer'. Did you mean 'parent'? -node_modules/chrome-devtools-frontend/front_end/timeline_model/TracingLayerTree.js(238,11): error TS2339: Property '_parentLayerId' does not exist on type 'Layer'. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TracingLayerTree.js(252,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'TracingLayer' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TracingLayerTree.js(260,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'TracingLayer' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TracingLayerTree.js(272,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'TracingLayer' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TracingLayerTree.js(280,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'TracingLayer' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TracingLayerTree.js(288,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'TracingLayer' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TracingLayerTree.js(296,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'TracingLayer' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TracingLayerTree.js(304,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'TracingLayer' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TracingLayerTree.js(312,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'TracingLayer' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TracingLayerTree.js(320,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'TracingLayer' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TracingLayerTree.js(328,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'TracingLayer' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TracingLayerTree.js(336,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'TracingLayer' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TracingLayerTree.js(342,25): error TS2694: Namespace 'Protocol' has no exported member 'DOM'. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TracingLayerTree.js(344,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'TracingLayer' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TracingLayerTree.js(350,33): error TS2694: Namespace 'Protocol' has no exported member 'LayerTree'. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TracingLayerTree.js(352,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'TracingLayer' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TracingLayerTree.js(360,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'TracingLayer' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TracingLayerTree.js(369,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'TracingLayer' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TracingLayerTree.js(377,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'TracingLayer' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TracingLayerTree.js(442,17): error TS2339: Property 'non_fast_scrollable_region' does not exist on type '{ bounds: { height: number; width: number; }; children: ...[]; layer_id: number; position: number[]; scroll_offset: number[]; layer_quad: number[]; draws_content: number; gpu_memory_usage: number; transform: number[]; owner_node: number; compositing_reasons: string[]; }'. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TracingLayerTree.js(444,19): error TS2339: Property 'non_fast_scrollable_region' does not exist on type '{ bounds: { height: number; width: number; }; children: ...[]; layer_id: number; position: number[]; scroll_offset: number[]; layer_quad: number[]; draws_content: number; gpu_memory_usage: number; transform: number[]; owner_node: number; compositing_reasons: string[]; }'. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TracingLayerTree.js(444,90): error TS2339: Property 'name' does not exist on type 'string'. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TracingLayerTree.js(446,17): error TS2339: Property 'touch_event_handler_region' does not exist on type '{ bounds: { height: number; width: number; }; children: ...[]; layer_id: number; position: number[]; scroll_offset: number[]; layer_quad: number[]; draws_content: number; gpu_memory_usage: number; transform: number[]; owner_node: number; compositing_reasons: string[]; }'. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TracingLayerTree.js(448,19): error TS2339: Property 'touch_event_handler_region' does not exist on type '{ bounds: { height: number; width: number; }; children: ...[]; layer_id: number; position: number[]; scroll_offset: number[]; layer_quad: number[]; draws_content: number; gpu_memory_usage: number; transform: number[]; owner_node: number; compositing_reasons: string[]; }'. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TracingLayerTree.js(448,90): error TS2339: Property 'name' does not exist on type 'string'. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TracingLayerTree.js(450,17): error TS2339: Property 'wheel_event_handler_region' does not exist on type '{ bounds: { height: number; width: number; }; children: ...[]; layer_id: number; position: number[]; scroll_offset: number[]; layer_quad: number[]; draws_content: number; gpu_memory_usage: number; transform: number[]; owner_node: number; compositing_reasons: string[]; }'. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TracingLayerTree.js(452,19): error TS2339: Property 'wheel_event_handler_region' does not exist on type '{ bounds: { height: number; width: number; }; children: ...[]; layer_id: number; position: number[]; scroll_offset: number[]; layer_quad: number[]; draws_content: number; gpu_memory_usage: number; transform: number[]; owner_node: number; compositing_reasons: string[]; }'. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TracingLayerTree.js(452,90): error TS2339: Property 'name' does not exist on type 'string'. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TracingLayerTree.js(454,17): error TS2339: Property 'scroll_event_handler_region' does not exist on type '{ bounds: { height: number; width: number; }; children: ...[]; layer_id: number; position: number[]; scroll_offset: number[]; layer_quad: number[]; draws_content: number; gpu_memory_usage: number; transform: number[]; owner_node: number; compositing_reasons: string[]; }'. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TracingLayerTree.js(456,19): error TS2339: Property 'scroll_event_handler_region' does not exist on type '{ bounds: { height: number; width: number; }; children: ...[]; layer_id: number; position: number[]; scroll_offset: number[]; layer_quad: number[]; draws_content: number; gpu_memory_usage: number; transform: number[]; owner_node: number; compositing_reasons: string[]; }'. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TracingLayerTree.js(456,90): error TS2339: Property 'name' does not exist on type 'string'. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TracingLayerTree.js(471,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'TracingLayer' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/timeline_model/TracingLayerTree.js(479,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'TracingLayer' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/ui/ARIAUtils.js(91,41): error TS2345: Argument of type 'boolean' is not assignable to parameter of type 'string'. -node_modules/chrome-devtools-frontend/front_end/ui/ARIAUtils.js(109,41): error TS2345: Argument of type 'boolean' is not assignable to parameter of type 'string'. -node_modules/chrome-devtools-frontend/front_end/ui/ARIAUtils.js(120,40): error TS2345: Argument of type 'boolean' is not assignable to parameter of type 'string'. -node_modules/chrome-devtools-frontend/front_end/ui/ActionRegistry.js(33,53): error TS2339: Property 'keysArray' does not exist on type 'Map'. -node_modules/chrome-devtools-frontend/front_end/ui/ActionRegistry.js(48,53): error TS2339: Property 'valuesArray' does not exist on type 'Set'. -node_modules/chrome-devtools-frontend/front_end/ui/ActionRegistry.js(210,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/ui/Context.js(14,33): error TS1110: Type expected. -node_modules/chrome-devtools-frontend/front_end/ui/Context.js(25,21): error TS2339: Property 'remove' does not exist on type 'Map'. -node_modules/chrome-devtools-frontend/front_end/ui/Context.js(31,33): error TS1110: Type expected. -node_modules/chrome-devtools-frontend/front_end/ui/Context.js(37,36): error TS2345: Argument of type 'new (...arg1: any[]) => T' is not assignable to parameter of type 'new () => any'. -node_modules/chrome-devtools-frontend/front_end/ui/Context.js(49,38): error TS1110: Type expected. -node_modules/chrome-devtools-frontend/front_end/ui/Context.js(50,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/ui/Context.js(63,38): error TS1110: Type expected. -node_modules/chrome-devtools-frontend/front_end/ui/Context.js(64,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/ui/Context.js(73,30): error TS2339: Property 'remove' does not exist on type 'Map'. -node_modules/chrome-devtools-frontend/front_end/ui/Context.js(77,33): error TS1110: Type expected. -node_modules/chrome-devtools-frontend/front_end/ui/Context.js(86,45): error TS1110: Type expected. -node_modules/chrome-devtools-frontend/front_end/ui/ContextMenu.js(87,18): error TS2339: Property '_customElement' does not exist on type 'ContextMenuItem'. -node_modules/chrome-devtools-frontend/front_end/ui/ContextMenu.js(88,33): error TS2339: Property '_customElement' does not exist on type 'ContextMenuItem'. -node_modules/chrome-devtools-frontend/front_end/ui/ContextMenu.js(91,9): error TS2739: Type '{ type: string; id: number; label: string; enabled: boolean; }' is missing the following properties from type 'ContextMenuDescriptor': checked, subItems -node_modules/chrome-devtools-frontend/front_end/ui/ContextMenu.js(93,9): error TS2739: Type '{ type: string; }' is missing the following properties from type 'ContextMenuDescriptor': id, label, enabled, checked, subItems -node_modules/chrome-devtools-frontend/front_end/ui/ContextMenu.js(95,9): error TS2741: Property 'subItems' is missing in type '{ type: string; id: number; label: string; checked: boolean; enabled: boolean; }' but required in type 'ContextMenuDescriptor'. -node_modules/chrome-devtools-frontend/front_end/ui/ContextMenu.js(123,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/ui/ContextMenu.js(140,10): error TS2339: Property '_customElement' does not exist on type 'ContextMenuItem'. -node_modules/chrome-devtools-frontend/front_end/ui/ContextMenu.js(175,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/ui/ContextMenu.js(303,9): error TS2739: Type '{ type: string; label: string; enabled: boolean; subItems: undefined[]; }' is missing the following properties from type 'ContextMenuDescriptor': id, checked -node_modules/chrome-devtools-frontend/front_end/ui/ContextMenu.js(309,40): error TS2339: Property 'peekLast' does not exist on type 'ContextMenuSection[]'. -node_modules/chrome-devtools-frontend/front_end/ui/ContextMenu.js(310,30): error TS2345: Argument of type '{ type: string; }' is not assignable to parameter of type 'ContextMenuDescriptor'. - Type '{ type: string; }' is missing the following properties from type 'ContextMenuDescriptor': id, label, enabled, checked, subItems -node_modules/chrome-devtools-frontend/front_end/ui/ContextMenu.js(339,39): error TS2339: Property 'x' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/ContextMenu.js(340,39): error TS2339: Property 'y' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/ContextMenu.js(344,24): error TS2339: Property 'deepElementFromPoint' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/ContextMenu.js(350,27): error TS2339: Property 'events' does not exist on type 'InspectorFrontendHostAPI'. -node_modules/chrome-devtools-frontend/front_end/ui/ContextMenu.js(355,22): error TS2339: Property '_useSoftMenu' does not exist on type 'typeof ContextMenu'. -node_modules/chrome-devtools-frontend/front_end/ui/ContextMenu.js(383,20): error TS2339: Property '_pendingMenu' does not exist on type 'typeof ContextMenu'. -node_modules/chrome-devtools-frontend/front_end/ui/ContextMenu.js(390,26): error TS2339: Property '_pendingMenu' does not exist on type 'typeof ContextMenu'. -node_modules/chrome-devtools-frontend/front_end/ui/ContextMenu.js(392,29): error TS2339: Property '_pendingMenu' does not exist on type 'typeof ContextMenu'. -node_modules/chrome-devtools-frontend/front_end/ui/ContextMenu.js(408,17): error TS2339: Property 'consume' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/ContextMenu.js(418,45): error TS2339: Property '_useSoftMenu' does not exist on type 'typeof ContextMenu'. -node_modules/chrome-devtools-frontend/front_end/ui/ContextMenu.js(420,46): error TS2339: Property 'ownerDocument' does not exist on type 'EventTarget'. -node_modules/chrome-devtools-frontend/front_end/ui/ContextMenu.js(422,101): error TS2339: Property 'ownerDocument' does not exist on type 'EventTarget'. -node_modules/chrome-devtools-frontend/front_end/ui/ContextMenu.js(428,31): error TS2339: Property 'events' does not exist on type 'InspectorFrontendHostAPI'. -node_modules/chrome-devtools-frontend/front_end/ui/ContextMenu.js(430,31): error TS2339: Property 'events' does not exist on type 'InspectorFrontendHostAPI'. -node_modules/chrome-devtools-frontend/front_end/ui/ContextMenu.js(436,7): error TS2304: Cannot find name 'setImmediate'. -node_modules/chrome-devtools-frontend/front_end/ui/ContextMenu.js(442,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/ui/ContextMenu.js(473,27): error TS2339: Property 'events' does not exist on type 'InspectorFrontendHostAPI'. -node_modules/chrome-devtools-frontend/front_end/ui/ContextMenu.js(475,27): error TS2339: Property 'events' does not exist on type 'InspectorFrontendHostAPI'. -node_modules/chrome-devtools-frontend/front_end/ui/Dialog.js(35,25): error TS2339: Property 'tabIndex' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/Dialog.js(42,13): error TS2339: Property 'consume' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/Dialog.js(55,24): error TS2339: Property '_instance' does not exist on type 'typeof Dialog'. -node_modules/chrome-devtools-frontend/front_end/ui/Dialog.js(65,19): error TS2339: Property '_instance' does not exist on type 'typeof Dialog'. -node_modules/chrome-devtools-frontend/front_end/ui/Dialog.js(66,17): error TS2339: Property '_instance' does not exist on type 'typeof Dialog'. -node_modules/chrome-devtools-frontend/front_end/ui/Dialog.js(67,15): error TS2339: Property '_instance' does not exist on type 'typeof Dialog'. -node_modules/chrome-devtools-frontend/front_end/ui/Dialog.js(80,22): error TS2339: Property '_instance' does not exist on type 'typeof Dialog'. -node_modules/chrome-devtools-frontend/front_end/ui/Dialog.js(91,43): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/Dialog.js(101,49): error TS2339: Property 'traverseNextNode' does not exist on type 'Document'. -node_modules/chrome-devtools-frontend/front_end/ui/Dialog.js(123,38): error TS2339: Property 'keyCode' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/Dialog.js(124,13): error TS2339: Property 'consume' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/DropTarget.js(12,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/ui/DropTarget.js(36,13): error TS2339: Property 'consume' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/DropTarget.js(45,36): error TS2339: Property 'dataTransfer' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/DropTarget.js(60,11): error TS2339: Property 'dataTransfer' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/DropTarget.js(61,11): error TS2339: Property 'consume' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/DropTarget.js(64,43): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/DropTarget.js(66,16): error TS2339: Property 'createChild' does not exist on type 'DocumentFragment'. -node_modules/chrome-devtools-frontend/front_end/ui/DropTarget.js(75,11): error TS2339: Property 'consume' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/DropTarget.js(78,30): error TS2339: Property 'dataTransfer' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/DropTarget.js(85,11): error TS2339: Property 'consume' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/EmptyWidget.js(42,41): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/FilterBar.js(67,12): error TS2339: Property 'addEventListener' does not exist on type 'FilterUI'. -node_modules/chrome-devtools-frontend/front_end/ui/FilterBar.js(136,18): error TS2339: Property 'removeChildren' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/FilterBar.js(146,15): error TS8022: JSDoc '@extends' is not attached to a class. -node_modules/chrome-devtools-frontend/front_end/ui/FilterBar.js(155,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/ui/FilterBar.js(160,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/ui/FilterBar.js(175,52): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/FilterBar.js(180,24): error TS2339: Property 'title' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/FilterBar.js(203,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Object'. -node_modules/chrome-devtools-frontend/front_end/ui/FilterBar.js(211,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Object'. -node_modules/chrome-devtools-frontend/front_end/ui/FilterBar.js(259,26): error TS2339: Property 'title' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/FilterBar.js(266,26): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/FilterBar.js(288,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Object'. -node_modules/chrome-devtools-frontend/front_end/ui/FilterBar.js(296,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Object'. -node_modules/chrome-devtools-frontend/front_end/ui/FilterBar.js(334,50): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/FilterBar.js(349,18): error TS2339: Property 'metaKey' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/FilterBar.js(349,32): error TS2339: Property 'ctrlKey' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/FilterBar.js(349,46): error TS2339: Property 'altKey' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/FilterBar.js(349,59): error TS2339: Property 'shiftKey' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/FilterBar.js(351,18): error TS2339: Property 'ctrlKey' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/FilterBar.js(351,32): error TS2339: Property 'metaKey' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/FilterBar.js(351,46): error TS2339: Property 'altKey' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/FilterBar.js(351,59): error TS2339: Property 'shiftKey' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/FilterBar.js(352,37): error TS2339: Property 'typeName' does not exist on type 'EventTarget'. -node_modules/chrome-devtools-frontend/front_end/ui/FilterBar.js(408,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Object'. -node_modules/chrome-devtools-frontend/front_end/ui/FilterBar.js(430,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Object'. -node_modules/chrome-devtools-frontend/front_end/ui/FilterSuggestionBuilder.js(51,5): error TS2322: Type 'Promise<{ text: string; }[]>' is not assignable to type 'Promise<{ text: string; subtitle: string; iconType: string; priority: number; isSecondary: boolean; title: string; }[]>'. - Type '{ text: string; }[]' is not assignable to type '{ text: string; subtitle: string; iconType: string; priority: number; isSecondary: boolean; title: string; }[]'. - Type '{ text: string; }' is missing the following properties from type '{ text: string; subtitle: string; iconType: string; priority: number; isSecondary: boolean; title: string; }': subtitle, iconType, priority, isSecondary, title -node_modules/chrome-devtools-frontend/front_end/ui/ForwardedInputEventHandler.js(9,27): error TS2339: Property 'events' does not exist on type 'InspectorFrontendHostAPI'. -node_modules/chrome-devtools-frontend/front_end/ui/Fragment.js(113,55): error TS2339: Property 'hasAttributes' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/ui/Fragment.js(114,18): error TS2339: Property 'hasAttribute' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/ui/Fragment.js(116,39): error TS2339: Property 'getAttribute' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/ui/Fragment.js(117,16): error TS2339: Property 'removeAttribute' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/ui/Fragment.js(121,34): error TS2339: Property 'attributes' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/ui/Fragment.js(122,27): error TS2339: Property 'attributes' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/ui/Fragment.js(130,75): error TS2339: Property 'attributes' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/ui/Fragment.js(135,60): error TS2339: Property 'attributes' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/ui/Fragment.js(143,35): error TS2339: Property 'attributes' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/ui/Fragment.js(148,16): error TS2339: Property 'removeAttribute' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/ui/Fragment.js(151,52): error TS2339: Property 'data' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/ui/Fragment.js(152,26): error TS2339: Property 'data' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/ui/Fragment.js(153,14): error TS2339: Property 'data' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/ui/Fragment.js(166,103): error TS2339: Property 'data' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/ui/Fragment.js(171,22): error TS2339: Property 'classList' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/ui/Fragment.js(174,21): error TS2339: Property 'remove' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/ui/Fragment.js(184,80): error TS2339: Property 'content' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/Fragment.js(247,24): error TS2488: Type 'NodeListOf' must have a '[Symbol.iterator]()' method that returns an iterator. -node_modules/chrome-devtools-frontend/front_end/ui/Fragment.js(273,33): error TS2694: Namespace 'UI.Fragment' has no exported member '_Bind'. -node_modules/chrome-devtools-frontend/front_end/ui/Fragment.js(292,2): error TS1131: Property or signature expected. -node_modules/chrome-devtools-frontend/front_end/ui/Fragment.js(307,13): error TS2339: Property '_Bind' does not exist on type 'typeof Fragment'. -node_modules/chrome-devtools-frontend/front_end/ui/Geometry.js(113,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'Point' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/ui/Geometry.js(210,15): error TS2304: Cannot find name 'CSSMatrix'. -node_modules/chrome-devtools-frontend/front_end/ui/Geometry.js(272,13): error TS2304: Cannot find name 'CSSMatrix'. -node_modules/chrome-devtools-frontend/front_end/ui/Geometry.js(316,13): error TS2304: Cannot find name 'CSSMatrix'. -node_modules/chrome-devtools-frontend/front_end/ui/Geometry.js(325,20): error TS2345: Argument of type 'string' is not assignable to parameter of type 'boolean'. -node_modules/chrome-devtools-frontend/front_end/ui/GlassPane.js(18,17): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/ui/GlassPane.js(72,15): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/ui/GlassPane.js(125,5): error TS2322: Type 'boolean' is not assignable to type 'symbol'. -node_modules/chrome-devtools-frontend/front_end/ui/GlassPane.js(126,51): error TS2367: This condition will always return 'true' since the types 'boolean' and 'symbol' have no overlap. -node_modules/chrome-devtools-frontend/front_end/ui/GlassPane.js(136,18): error TS2339: Property 'style' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/GlassPane.js(157,22): error TS2339: Property 'deepElementFromPoint' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/GlassPane.js(158,38): error TS2339: Property 'isSelfOrAncestor' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/GlassPane.js(174,27): error TS2339: Property 'positionAt' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/GlassPane.js(175,27): error TS2339: Property 'style' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/GlassPane.js(176,27): error TS2339: Property 'style' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/GlassPane.js(177,27): error TS2339: Property 'style' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/GlassPane.js(178,27): error TS2339: Property 'style' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/GlassPane.js(181,36): error TS2339: Property 'offsetWidth' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/GlassPane.js(182,37): error TS2339: Property 'offsetHeight' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/GlassPane.js(195,47): error TS2339: Property 'offsetWidth' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/GlassPane.js(196,48): error TS2339: Property 'offsetHeight' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/GlassPane.js(259,27): error TS2339: Property 'constrain' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/ui/GlassPane.js(260,30): error TS2339: Property 'positionAt' does not exist on type 'Icon'. -node_modules/chrome-devtools-frontend/front_end/ui/GlassPane.js(270,13): error TS2403: Subsequent variable declarations must have the same type. Variable 'arrowX' must be of type 'number', but here has type 'any'. -node_modules/chrome-devtools-frontend/front_end/ui/GlassPane.js(312,15): error TS2403: Subsequent variable declarations must have the same type. Variable 'arrowY' must be of type 'any', but here has type 'number'. -node_modules/chrome-devtools-frontend/front_end/ui/GlassPane.js(313,27): error TS2339: Property 'constrain' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/ui/GlassPane.js(314,30): error TS2339: Property 'positionAt' does not exist on type 'Icon'. -node_modules/chrome-devtools-frontend/front_end/ui/GlassPane.js(325,25): error TS2339: Property 'style' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/GlassPane.js(327,27): error TS2339: Property 'style' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/GlassPane.js(329,27): error TS2339: Property 'style' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/GlassPane.js(331,25): error TS2339: Property 'positionAt' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/HistoryInput.js(16,26): error TS2339: Property '_constructor' does not exist on type 'typeof HistoryInput'. -node_modules/chrome-devtools-frontend/front_end/ui/HistoryInput.js(17,23): error TS2339: Property '_constructor' does not exist on type 'typeof HistoryInput'. -node_modules/chrome-devtools-frontend/front_end/ui/HistoryInput.js(19,65): error TS2339: Property '_constructor' does not exist on type 'typeof HistoryInput'. -node_modules/chrome-devtools-frontend/front_end/ui/HistoryInput.js(25,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'HTMLInputElement'. -node_modules/chrome-devtools-frontend/front_end/ui/HistoryInput.js(44,15): error TS2339: Property 'keyCode' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/HistoryInput.js(48,13): error TS2339: Property 'consume' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/HistoryInput.js(49,22): error TS2339: Property 'keyCode' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/HistoryInput.js(53,13): error TS2339: Property 'consume' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/HistoryInput.js(54,22): error TS2339: Property 'keyCode' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/Icon.js(21,18): error TS2339: Property '_constructor' does not exist on type 'typeof Icon'. -node_modules/chrome-devtools-frontend/front_end/ui/Icon.js(22,15): error TS2339: Property '_constructor' does not exist on type 'typeof Icon'. -node_modules/chrome-devtools-frontend/front_end/ui/Icon.js(24,53): error TS2339: Property '_constructor' does not exist on type 'typeof Icon'. -node_modules/chrome-devtools-frontend/front_end/ui/Icon.js(35,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'HTMLSpanElement'. -node_modules/chrome-devtools-frontend/front_end/ui/Icon.js(63,11): error TS2345: Argument of type 'SpriteSheet' is not assignable to parameter of type 'boolean'. -node_modules/chrome-devtools-frontend/front_end/ui/Icon.js(81,70): error TS2339: Property 'invert' does not exist on type 'Descriptor'. -node_modules/chrome-devtools-frontend/front_end/ui/Icon.js(88,27): error TS2339: Property 'coordinates' does not exist on type 'Descriptor'. -node_modules/chrome-devtools-frontend/front_end/ui/Icon.js(93,24): error TS2339: Property 'coordinates' does not exist on type 'Descriptor'. -node_modules/chrome-devtools-frontend/front_end/ui/Icon.js(98,32): error TS2339: Property 'coordinates' does not exist on type 'Descriptor'. -node_modules/chrome-devtools-frontend/front_end/ui/Icon.js(98,68): error TS2339: Property 'coordinates' does not exist on type 'Descriptor'. -node_modules/chrome-devtools-frontend/front_end/ui/Icon.js(121,3): error TS2741: Property 'isMask' is missing in type '{ position: string; spritesheet: string; }' but required in type 'Descriptor'. -node_modules/chrome-devtools-frontend/front_end/ui/Icon.js(124,3): error TS2741: Property 'isMask' is missing in type '{ position: string; spritesheet: string; }' but required in type 'Descriptor'. -node_modules/chrome-devtools-frontend/front_end/ui/Icon.js(126,3): error TS2741: Property 'isMask' is missing in type '{ position: string; spritesheet: string; }' but required in type 'Descriptor'. -node_modules/chrome-devtools-frontend/front_end/ui/Icon.js(127,3): error TS2741: Property 'isMask' is missing in type '{ position: string; spritesheet: string; }' but required in type 'Descriptor'. -node_modules/chrome-devtools-frontend/front_end/ui/Icon.js(128,3): error TS2741: Property 'isMask' is missing in type '{ position: string; spritesheet: string; }' but required in type 'Descriptor'. -node_modules/chrome-devtools-frontend/front_end/ui/Icon.js(131,3): error TS2741: Property 'isMask' is missing in type '{ position: string; spritesheet: string; }' but required in type 'Descriptor'. -node_modules/chrome-devtools-frontend/front_end/ui/Icon.js(132,3): error TS2741: Property 'isMask' is missing in type '{ position: string; spritesheet: string; }' but required in type 'Descriptor'. -node_modules/chrome-devtools-frontend/front_end/ui/Icon.js(133,3): error TS2741: Property 'isMask' is missing in type '{ position: string; spritesheet: string; }' but required in type 'Descriptor'. -node_modules/chrome-devtools-frontend/front_end/ui/Icon.js(134,3): error TS2741: Property 'isMask' is missing in type '{ position: string; spritesheet: string; }' but required in type 'Descriptor'. -node_modules/chrome-devtools-frontend/front_end/ui/Icon.js(135,3): error TS2741: Property 'isMask' is missing in type '{ position: string; spritesheet: string; }' but required in type 'Descriptor'. -node_modules/chrome-devtools-frontend/front_end/ui/Icon.js(137,3): error TS2741: Property 'isMask' is missing in type '{ position: string; spritesheet: string; }' but required in type 'Descriptor'. -node_modules/chrome-devtools-frontend/front_end/ui/Icon.js(138,3): error TS2741: Property 'isMask' is missing in type '{ position: string; spritesheet: string; }' but required in type 'Descriptor'. -node_modules/chrome-devtools-frontend/front_end/ui/Icon.js(140,3): error TS2741: Property 'isMask' is missing in type '{ position: string; spritesheet: string; }' but required in type 'Descriptor'. -node_modules/chrome-devtools-frontend/front_end/ui/Icon.js(141,3): error TS2741: Property 'isMask' is missing in type '{ position: string; spritesheet: string; }' but required in type 'Descriptor'. -node_modules/chrome-devtools-frontend/front_end/ui/Icon.js(142,3): error TS2741: Property 'isMask' is missing in type '{ position: string; spritesheet: string; }' but required in type 'Descriptor'. -node_modules/chrome-devtools-frontend/front_end/ui/Icon.js(143,3): error TS2741: Property 'isMask' is missing in type '{ position: string; spritesheet: string; }' but required in type 'Descriptor'. -node_modules/chrome-devtools-frontend/front_end/ui/Icon.js(144,3): error TS2741: Property 'isMask' is missing in type '{ position: string; spritesheet: string; }' but required in type 'Descriptor'. -node_modules/chrome-devtools-frontend/front_end/ui/Icon.js(148,3): error TS2741: Property 'isMask' is missing in type '{ position: string; spritesheet: string; }' but required in type 'Descriptor'. -node_modules/chrome-devtools-frontend/front_end/ui/Icon.js(149,3): error TS2741: Property 'isMask' is missing in type '{ position: string; spritesheet: string; }' but required in type 'Descriptor'. -node_modules/chrome-devtools-frontend/front_end/ui/Icon.js(150,3): error TS2741: Property 'isMask' is missing in type '{ position: string; spritesheet: string; }' but required in type 'Descriptor'. -node_modules/chrome-devtools-frontend/front_end/ui/Icon.js(152,3): error TS2741: Property 'isMask' is missing in type '{ position: string; spritesheet: string; }' but required in type 'Descriptor'. -node_modules/chrome-devtools-frontend/front_end/ui/Icon.js(153,3): error TS2741: Property 'isMask' is missing in type '{ position: string; spritesheet: string; }' but required in type 'Descriptor'. -node_modules/chrome-devtools-frontend/front_end/ui/Icon.js(154,3): error TS2741: Property 'isMask' is missing in type '{ position: string; spritesheet: string; }' but required in type 'Descriptor'. -node_modules/chrome-devtools-frontend/front_end/ui/Icon.js(164,72): error TS2322: Type '{ position: string; spritesheet: string; invert: boolean; }' is not assignable to type 'Descriptor'. - Object literal may only specify known properties, and 'invert' does not exist in type 'Descriptor'. -node_modules/chrome-devtools-frontend/front_end/ui/Icon.js(165,67): error TS2322: Type '{ position: string; spritesheet: string; invert: boolean; }' is not assignable to type 'Descriptor'. - Object literal may only specify known properties, and 'invert' does not exist in type 'Descriptor'. -node_modules/chrome-devtools-frontend/front_end/ui/Icon.js(166,3): error TS2741: Property 'isMask' is missing in type '{ position: string; spritesheet: string; }' but required in type 'Descriptor'. -node_modules/chrome-devtools-frontend/front_end/ui/Icon.js(167,3): error TS2741: Property 'isMask' is missing in type '{ position: string; spritesheet: string; }' but required in type 'Descriptor'. -node_modules/chrome-devtools-frontend/front_end/ui/Icon.js(168,3): error TS2741: Property 'isMask' is missing in type '{ position: string; spritesheet: string; }' but required in type 'Descriptor'. -node_modules/chrome-devtools-frontend/front_end/ui/Icon.js(169,3): error TS2741: Property 'isMask' is missing in type '{ position: string; spritesheet: string; }' but required in type 'Descriptor'. -node_modules/chrome-devtools-frontend/front_end/ui/Icon.js(170,3): error TS2741: Property 'isMask' is missing in type '{ position: string; spritesheet: string; }' but required in type 'Descriptor'. -node_modules/chrome-devtools-frontend/front_end/ui/Icon.js(172,3): error TS2741: Property 'isMask' is missing in type '{ position: string; spritesheet: string; }' but required in type 'Descriptor'. -node_modules/chrome-devtools-frontend/front_end/ui/Icon.js(173,3): error TS2741: Property 'isMask' is missing in type '{ position: string; spritesheet: string; }' but required in type 'Descriptor'. -node_modules/chrome-devtools-frontend/front_end/ui/Icon.js(174,3): error TS2741: Property 'isMask' is missing in type '{ position: string; spritesheet: string; }' but required in type 'Descriptor'. -node_modules/chrome-devtools-frontend/front_end/ui/Icon.js(175,3): error TS2741: Property 'isMask' is missing in type '{ position: string; spritesheet: string; }' but required in type 'Descriptor'. -node_modules/chrome-devtools-frontend/front_end/ui/Icon.js(176,3): error TS2741: Property 'isMask' is missing in type '{ position: string; spritesheet: string; }' but required in type 'Descriptor'. -node_modules/chrome-devtools-frontend/front_end/ui/Icon.js(177,3): error TS2741: Property 'isMask' is missing in type '{ position: string; spritesheet: string; }' but required in type 'Descriptor'. -node_modules/chrome-devtools-frontend/front_end/ui/Icon.js(180,3): error TS2741: Property 'isMask' is missing in type '{ position: string; spritesheet: string; }' but required in type 'Descriptor'. -node_modules/chrome-devtools-frontend/front_end/ui/Icon.js(250,3): error TS2741: Property 'isMask' is missing in type '{ position: string; spritesheet: string; }' but required in type 'Descriptor'. -node_modules/chrome-devtools-frontend/front_end/ui/Icon.js(251,3): error TS2741: Property 'isMask' is missing in type '{ position: string; spritesheet: string; }' but required in type 'Descriptor'. -node_modules/chrome-devtools-frontend/front_end/ui/Icon.js(252,3): error TS2741: Property 'isMask' is missing in type '{ position: string; spritesheet: string; }' but required in type 'Descriptor'. -node_modules/chrome-devtools-frontend/front_end/ui/Icon.js(253,3): error TS2741: Property 'isMask' is missing in type '{ position: string; spritesheet: string; }' but required in type 'Descriptor'. -node_modules/chrome-devtools-frontend/front_end/ui/Infobar.js(16,45): error TS2339: Property 'createChild' does not exist on type 'DocumentFragment'. -node_modules/chrome-devtools-frontend/front_end/ui/Infobar.js(39,17): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/ui/Infobar.js(71,15): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/ui/InplaceEditor.js(14,27): error TS2339: Property '_defaultInstance' does not exist on type 'typeof InplaceEditor'. -node_modules/chrome-devtools-frontend/front_end/ui/InplaceEditor.js(15,24): error TS2339: Property '_defaultInstance' does not exist on type 'typeof InplaceEditor'. -node_modules/chrome-devtools-frontend/front_end/ui/InplaceEditor.js(16,29): error TS2339: Property '_defaultInstance' does not exist on type 'typeof InplaceEditor'. -node_modules/chrome-devtools-frontend/front_end/ui/InplaceEditor.js(131,22): error TS2339: Property 'keyCode' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/InplaceEditor.js(131,77): error TS2339: Property 'key' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/InplaceEditor.js(133,22): error TS2339: Property 'key' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/InplaceEditor.js(134,33): error TS2339: Property 'shiftKey' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/InplaceEditor.js(183,23): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/ui/InplaceEditor.js(183,43): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/ui/InplaceEditor.js(194,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/ui/InplaceEditor.js(195,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/ui/InspectorView.js(76,27): error TS2339: Property 'events' does not exist on type 'InspectorFrontendHostAPI'. -node_modules/chrome-devtools-frontend/front_end/ui/InspectorView.js(114,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/ui/InspectorView.js(116,7): error TS2322: Type 'TabbedViewLocation' is not assignable to type 'ViewLocation'. -node_modules/chrome-devtools-frontend/front_end/ui/InspectorView.js(118,7): error TS2322: Type 'TabbedViewLocation' is not assignable to type 'ViewLocation'. -node_modules/chrome-devtools-frontend/front_end/ui/InspectorView.js(131,26): error TS2339: Property 'appendView' does not exist on type 'TabbedViewLocation'. -node_modules/chrome-devtools-frontend/front_end/ui/InspectorView.js(247,73): error TS2339: Property 'altKey' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/InspectorView.js(247,89): error TS2339: Property 'shiftKey' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/InspectorView.js(254,17): error TS2339: Property 'keyCode' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/InspectorView.js(254,41): error TS2339: Property 'keyCode' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/InspectorView.js(255,28): error TS2339: Property 'keyCode' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/InspectorView.js(257,17): error TS2339: Property 'keyCode' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/InspectorView.js(257,41): error TS2339: Property 'keyCode' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/InspectorView.js(259,28): error TS2339: Property 'keyCode' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/InspectorView.js(265,17): error TS2339: Property 'consume' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/InspectorView.js(270,15): error TS2339: Property 'key' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/InspectorView.js(272,13): error TS2339: Property 'consume' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/InspectorView.js(275,15): error TS2339: Property 'key' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/InspectorView.js(277,13): error TS2339: Property 'consume' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/InspectorView.js(350,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'DrawerToggleActionDelegate' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/ui/KeyboardShortcut.js(91,19): error TS2339: Property 'ctrlKey' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/KeyboardShortcut.js(91,37): error TS2339: Property 'shiftKey' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/KeyboardShortcut.js(91,56): error TS2339: Property 'altKey' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/KeyboardShortcut.js(91,73): error TS2339: Property 'metaKey' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/KeyboardShortcut.js(124,20): error TS2345: Argument of type 'string' is not assignable to parameter of type 'boolean'. -node_modules/chrome-devtools-frontend/front_end/ui/KeyboardShortcut.js(197,9): error TS1003: Identifier expected. -node_modules/chrome-devtools-frontend/front_end/ui/ListControl.js(14,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/ui/ListControl.js(22,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/ui/ListControl.js(28,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/ui/ListControl.js(59,18): error TS2339: Property 'style' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/ListControl.js(60,37): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/ListControl.js(61,40): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/ListControl.js(76,18): error TS2339: Property 'tabIndex' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/ListControl.js(88,67): error TS2339: Property 'offsetHeight' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/ListControl.js(158,39): error TS2339: Property 'offsetHeight' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/ListControl.js(160,33): error TS2339: Property 'constrain' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/ui/ListControl.js(180,25): error TS2339: Property 'parentNodeOrShadowHost' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/ui/ListControl.js(181,19): error TS2339: Property 'parentNodeOrShadowHost' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/ui/ListControl.js(316,35): error TS2339: Property 'scrollIntoViewIfNeeded' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/ListControl.js(322,39): error TS2339: Property 'offsetHeight' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/ListControl.js(325,35): error TS2339: Property 'constrain' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/ui/ListControl.js(350,19): error TS2339: Property 'key' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/ListControl.js(365,13): error TS2339: Property 'consume' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/ListControl.js(386,57): error TS2339: Property 'lowerBound' does not exist on type 'Int32Array'. -node_modules/chrome-devtools-frontend/front_end/ui/ListControl.js(478,39): error TS2339: Property 'offsetHeight' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/ListControl.js(523,39): error TS2339: Property 'offsetHeight' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/ListControl.js(529,35): error TS2339: Property 'constrain' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/ui/ListControl.js(557,33): error TS2339: Property 'constrain' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/ui/ListControl.js(592,18): error TS2339: Property 'removeChildren' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/ListModel.js(95,29): error TS2339: Property 'lowerBound' does not exist on type 'T[]'. -node_modules/chrome-devtools-frontend/front_end/ui/ListWidget.js(16,38): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/ListWidget.js(17,18): error TS2339: Property 'tabIndex' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/ListWidget.js(127,14): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/ListWidget.js(129,28): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/ListWidget.js(157,20): error TS2339: Property 'focus' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/ListWidget.js(241,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/ui/ListWidget.js(253,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/ui/ListWidget.js(274,41): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/ListWidget.js(276,35): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/ListWidget.js(286,16): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/ui/ListWidget.js(291,15): error TS2339: Property 'consume' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/ListWidget.js(303,17): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/ui/ListWidget.js(305,17): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/ui/ListWidget.js(347,27): error TS2339: Property 'createChild' does not exist on type 'HTMLSelectElement'. -node_modules/chrome-devtools-frontend/front_end/ui/ListWidget.js(376,7): error TS2362: The left-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type. -node_modules/chrome-devtools-frontend/front_end/ui/ListWidget.js(378,24): error TS2339: Property 'disabled' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/ListWidget.js(385,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/ui/ListWidget.js(386,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/ui/ListWidget.js(395,18): error TS2339: Property 'scrollIntoViewIfNeeded' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/ListWidget.js(402,28): error TS2339: Property 'disabled' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/Panel.js(75,13): error TS2339: Property 'handled' does not exist on type 'KeyboardEvent'. -node_modules/chrome-devtools-frontend/front_end/ui/Popover.js(44,17): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/ui/Popover.js(80,79): error TS2339: Property 'clientX' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/Popover.js(80,94): error TS2339: Property 'clientY' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/Popover.js(109,15): error TS2339: Property 'which' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/Popover.js(129,15): error TS2339: Property 'relatedTarget' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/Popover.js(129,39): error TS2339: Property 'relatedTarget' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/Popover.js(170,38): error TS2339: Property 'ownerDocument' does not exist on type 'EventTarget'. -node_modules/chrome-devtools-frontend/front_end/ui/Popover.js(207,31): error TS2345: Argument of type 'symbol' is not assignable to parameter of type 'boolean'. -node_modules/chrome-devtools-frontend/front_end/ui/Popover.js(220,28): error TS2339: Property '_popoverHelper' does not exist on type 'typeof PopoverHelper'. -node_modules/chrome-devtools-frontend/front_end/ui/Popover.js(222,26): error TS2339: Property '_popoverHelper' does not exist on type 'typeof PopoverHelper'. -node_modules/chrome-devtools-frontend/front_end/ui/Popover.js(224,24): error TS2339: Property '_popoverHelper' does not exist on type 'typeof PopoverHelper'. -node_modules/chrome-devtools-frontend/front_end/ui/Popover.js(236,33): error TS2339: Property '_popoverHelper' does not exist on type 'typeof PopoverHelper'. -node_modules/chrome-devtools-frontend/front_end/ui/Popover.js(253,89): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/ui/ProgressIndicator.js(38,45): error TS2339: Property 'createChild' does not exist on type 'DocumentFragment'. -node_modules/chrome-devtools-frontend/front_end/ui/ProgressIndicator.js(60,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ProgressIndicator' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/ui/ProgressIndicator.js(75,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ProgressIndicator' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/ui/ProgressIndicator.js(83,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ProgressIndicator' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/ui/ProgressIndicator.js(91,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ProgressIndicator' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/ui/ProgressIndicator.js(100,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ProgressIndicator' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/ui/ProgressIndicator.js(111,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ProgressIndicator' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/ui/ReportView.js(15,44): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/ReportView.js(118,40): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/ReportView.js(121,36): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/ReportView.js(159,11): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/ReportView.js(161,11): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/ResizerWidget.js(58,20): error TS2339: Property 'remove' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/ui/ResizerWidget.js(60,13): error TS2339: Property 'style' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/ResizerWidget.js(72,15): error TS2339: Property 'style' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/ResizerWidget.js(74,15): error TS2339: Property 'style' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/RootView.js(13,45): error TS2345: Argument of type 'boolean' is not assignable to parameter of type 'string'. -node_modules/chrome-devtools-frontend/front_end/ui/RootView.js(34,20): error TS2339: Property 'style' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/RootView.js(36,20): error TS2339: Property 'style' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/SearchableView.js(49,25): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/SearchableView.js(50,56): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/SearchableView.js(118,32): error TS2339: Property 'disabled' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/SearchableView.js(124,35): error TS2339: Property 'disabled' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/SearchableView.js(138,25): error TS2339: Property 'parentElementOrShadowHost' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/SearchableView.js(202,30): error TS2339: Property 'currentSearchMatches' does not exist on type 'Searchable'. -node_modules/chrome-devtools-frontend/front_end/ui/SearchableView.js(204,26): error TS2339: Property 'currentSearchMatches' does not exist on type 'Searchable'. -node_modules/chrome-devtools-frontend/front_end/ui/SearchableView.js(205,77): error TS2339: Property 'currentQuery' does not exist on type 'Searchable'. -node_modules/chrome-devtools-frontend/front_end/ui/SearchableView.js(212,77): error TS2339: Property 'currentSearchMatches' does not exist on type 'Searchable'. -node_modules/chrome-devtools-frontend/front_end/ui/SearchableView.js(296,32): error TS2339: Property 'disabled' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/SearchableView.js(297,35): error TS2339: Property 'disabled' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/SearchableView.js(328,35): error TS2339: Property 'hasFocus' does not exist on type 'HistoryInput'. -node_modules/chrome-devtools-frontend/front_end/ui/SearchableView.js(329,48): error TS2339: Property 'window' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/SearchableView.js(358,13): error TS2339: Property 'consume' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/SearchableView.js(365,45): error TS2339: Property 'shiftKey' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/SearchableView.js(367,42): error TS2339: Property 'shiftKey' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/SearchableView.js(423,32): error TS2339: Property 'currentQuery' does not exist on type 'Searchable'. -node_modules/chrome-devtools-frontend/front_end/ui/SearchableView.js(424,35): error TS2339: Property 'currentQuery' does not exist on type 'Searchable'. -node_modules/chrome-devtools-frontend/front_end/ui/SearchableView.js(443,26): error TS2339: Property 'currentQuery' does not exist on type 'Searchable'. -node_modules/chrome-devtools-frontend/front_end/ui/SearchableView.js(474,9): error TS2352: Conversion of type 'Searchable' to type 'Replaceable' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first. - Type 'Searchable' is missing the following properties from type 'Replaceable': replaceSelectionWith, replaceAllWith -node_modules/chrome-devtools-frontend/front_end/ui/SearchableView.js(482,9): error TS2352: Conversion of type 'Searchable' to type 'Replaceable' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first. -node_modules/chrome-devtools-frontend/front_end/ui/SearchableView.js(527,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/ui/SearchableView.js(532,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/ui/SearchableView.js(587,15): error TS2339: Property '__fromRegExpQuery' does not exist on type 'RegExp'. -node_modules/chrome-devtools-frontend/front_end/ui/SettingsUI.js(64,5): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/SettingsUI.js(65,18): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/SettingsUI.js(99,15): error TS2339: Property 'checked' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/SettingsUI.js(100,13): error TS2339: Property 'checked' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/SettingsUI.js(106,33): error TS2339: Property 'checked' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/SettingsUI.js(107,25): error TS2339: Property 'checked' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/SettingsUI.js(119,27): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/SettingsUI.js(155,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/ui/ShortcutRegistry.js(26,83): error TS2339: Property 'valuesArray' does not exist on type 'Set'. -node_modules/chrome-devtools-frontend/front_end/ui/ShortcutRegistry.js(34,5): error TS2322: Type 'Set' is not assignable to type 'Set'. - Type 'V' is not assignable to type 'string'. -node_modules/chrome-devtools-frontend/front_end/ui/ShortcutRegistry.js(34,42): error TS2345: Argument of type 'string' is not assignable to parameter of type 'K'. - 'K' could be instantiated with an arbitrary type which could be unrelated to 'string'. -node_modules/chrome-devtools-frontend/front_end/ui/ShortcutRegistry.js(42,46): error TS2345: Argument of type 'string' is not assignable to parameter of type 'K'. - 'K' could be instantiated with an arbitrary type which could be unrelated to 'string'. -node_modules/chrome-devtools-frontend/front_end/ui/ShortcutRegistry.js(42,56): error TS2339: Property 'valuesArray' does not exist on type 'Set'. -node_modules/chrome-devtools-frontend/front_end/ui/ShortcutRegistry.js(88,15): error TS2339: Property 'consume' does not exist on type 'KeyboardEvent'. -node_modules/chrome-devtools-frontend/front_end/ui/ShortcutRegistry.js(94,15): error TS2339: Property 'consume' does not exist on type 'KeyboardEvent'. -node_modules/chrome-devtools-frontend/front_end/ui/ShortcutRegistry.js(147,39): error TS2345: Argument of type 'string' is not assignable to parameter of type 'K'. - 'K' could be instantiated with an arbitrary type which could be unrelated to 'string'. -node_modules/chrome-devtools-frontend/front_end/ui/ShortcutRegistry.js(148,35): error TS2345: Argument of type 'string' is not assignable to parameter of type 'K'. - 'K' could be instantiated with an arbitrary type which could be unrelated to 'string'. -node_modules/chrome-devtools-frontend/front_end/ui/ShortcutsScreen.js(222,20): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/ShortcutsScreen.js(223,37): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/ShortcutsScreen.js(292,28): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/SoftContextMenu.js(32,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/ui/SoftContextMenu.js(58,39): error TS2345: Argument of type 'symbol' is not assignable to parameter of type 'boolean'. -node_modules/chrome-devtools-frontend/front_end/ui/SoftContextMenu.js(62,63): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/SoftContextMenu.js(113,37): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/SoftContextMenu.js(115,23): error TS2339: Property '_isCustom' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/SoftContextMenu.js(121,21): error TS2339: Property 'createTextChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/SoftContextMenu.js(122,21): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/SoftContextMenu.js(131,21): error TS2339: Property '_actionId' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/SoftContextMenu.js(137,21): error TS2339: Property '_subItems' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/SoftContextMenu.js(145,21): error TS2339: Property 'createTextChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/SoftContextMenu.js(147,47): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/SoftContextMenu.js(162,22): error TS2339: Property '_isSeparator' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/SoftContextMenu.js(163,22): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/SoftContextMenu.js(183,7): error TS2322: Type 'SoftContextMenu' is not assignable to type 'this'. - 'SoftContextMenu' is assignable to the constraint of type 'this', but 'this' could be instantiated with a different subtype of constraint 'SoftContextMenu'. -node_modules/chrome-devtools-frontend/front_end/ui/SoftDropDown.js(20,37): error TS2339: Property 'createChild' does not exist on type 'DocumentFragment'. -node_modules/chrome-devtools-frontend/front_end/ui/SoftDropDown.js(25,39): error TS2345: Argument of type 'symbol' is not assignable to parameter of type 'boolean'. -node_modules/chrome-devtools-frontend/front_end/ui/SoftDropDown.js(40,30): error TS2339: Property 'disabled' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/SoftDropDown.js(45,69): error TS2339: Property 'consume' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/SoftDropDown.js(64,54): error TS2339: Property 'boxInWindow' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/SoftDropDown.js(69,18): error TS2339: Property 'focus' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/SoftDropDown.js(70,11): error TS2339: Property 'consume' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/SoftDropDown.js(87,11): error TS2339: Property 'consume' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/SoftDropDown.js(95,19): error TS2339: Property 'key' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/SoftDropDown.js(149,19): error TS2339: Property 'key' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/SoftDropDown.js(151,30): error TS2339: Property 'key' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/SoftDropDown.js(165,13): error TS2339: Property 'consume' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/SoftDropDown.js(214,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'SoftDropDown' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/ui/SoftDropDown.js(217,14): error TS2339: Property 'movementX' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/SoftDropDown.js(217,29): error TS2339: Property 'movementY' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/SoftDropDown.js(233,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'SoftDropDown' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/ui/SoftDropDown.js(242,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'SoftDropDown' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/ui/SoftDropDown.js(253,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'SoftDropDown' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/ui/SoftDropDown.js(281,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/ui/SoftDropDown.js(288,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/ui/SoftDropDown.js(295,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/ui/SplitWidget.js(48,29): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/SplitWidget.js(51,29): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/SplitWidget.js(53,48): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/SplitWidget.js(75,17): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/ui/SplitWidget.js(432,67): error TS2339: Property 'offsetWidth' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/SplitWidget.js(432,101): error TS2339: Property 'offsetHeight' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/SplitWidget.js(434,50): error TS2339: Property 'offsetHeight' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/SplitWidget.js(434,85): error TS2339: Property 'offsetWidth' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/SplitWidget.js(542,25): error TS2339: Property 'style' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/SplitWidget.js(553,25): error TS2339: Property 'style' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/SplitWidget.js(565,29): error TS2339: Property 'style' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/SplitWidget.js(579,56): error TS2339: Property 'window' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/SplitWidget.js(582,54): error TS2339: Property 'window' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/SplitWidget.js(586,25): error TS2339: Property 'style' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/SplitWidget.js(587,25): error TS2339: Property 'style' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/SplitWidget.js(588,25): error TS2339: Property 'style' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/SplitWidget.js(589,25): error TS2339: Property 'style' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/SplitWidget.js(590,25): error TS2339: Property 'style' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/SplitWidget.js(593,27): error TS2339: Property 'window' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/SplitWidget.js(647,21): error TS2339: Property 'constrain' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/ui/SplitWidget.js(654,21): error TS2339: Property 'constrain' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/ui/SuggestBox.js(72,50): error TS2345: Argument of type 'this' is not assignable to parameter of type 'ListDelegate<{ text: string; subtitle: string; iconType: string; priority: number; isSecondary: boolean; title: string; }>'. - Type 'SuggestBox' is not assignable to type 'ListDelegate<{ text: string; subtitle: string; iconType: string; priority: number; isSecondary: boolean; title: string; }>'. - Types of property 'createElementForItem' are incompatible. - Type '(item: { text: string; subtitle: string; iconType: string; priority: number; isSecondary: boolean; title: string; }) => Element' is not assignable to type '(item: T) => Element'. -node_modules/chrome-devtools-frontend/front_end/ui/SuggestBox.js(155,59): error TS2345: Argument of type '{ text: string; subtitle: string; }' is not assignable to parameter of type '{ text: string; subtitle: string; iconType: string; priority: number; isSecondary: boolean; title: string; }'. - Type '{ text: string; subtitle: string; }' is missing the following properties from type '{ text: string; subtitle: string; iconType: string; priority: number; isSecondary: boolean; title: string; }': iconType, priority, isSecondary, title -node_modules/chrome-devtools-frontend/front_end/ui/SuggestBox.js(205,3): error TS2416: Property 'createElementForItem' in type 'SuggestBox' is not assignable to the same property in base type 'ListDelegate'. - Type '(item: { text: string; subtitle: string; iconType: string; priority: number; isSecondary: boolean; title: string; }) => Element' is not assignable to type '(item: T) => Element'. -node_modules/chrome-devtools-frontend/front_end/ui/SuggestBox.js(205,3): error TS2416: Property 'createElementForItem' in type 'SuggestBox' is not assignable to the same property in base type 'ListDelegate'. - Type '(item: { text: string; subtitle: string; iconType: string; priority: number; isSecondary: boolean; title: string; }) => Element' is not assignable to type '(item: T) => Element'. - Types of parameters 'item' and 'item' are incompatible. - Type 'T' is not assignable to type '{ text: string; subtitle: string; iconType: string; priority: number; isSecondary: boolean; title: string; }'. -node_modules/chrome-devtools-frontend/front_end/ui/SuggestBox.js(205,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'SuggestBox' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/ui/SuggestBox.js(214,13): error TS2339: Property 'tabIndex' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/SuggestBox.js(216,57): error TS2554: Expected 0 arguments, but got 1. -node_modules/chrome-devtools-frontend/front_end/ui/SuggestBox.js(218,32): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/SuggestBox.js(227,37): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/SuggestBox.js(228,59): error TS2554: Expected 0 arguments, but got 1. -node_modules/chrome-devtools-frontend/front_end/ui/SuggestBox.js(238,3): error TS2416: Property 'heightForItem' in type 'SuggestBox' is not assignable to the same property in base type 'ListDelegate'. - Type '(item: { text: string; subtitle: string; iconType: string; priority: number; isSecondary: boolean; title: string; }) => number' is not assignable to type '(item: T) => number'. -node_modules/chrome-devtools-frontend/front_end/ui/SuggestBox.js(238,3): error TS2416: Property 'heightForItem' in type 'SuggestBox' is not assignable to the same property in base type 'ListDelegate'. - Type '(item: { text: string; subtitle: string; iconType: string; priority: number; isSecondary: boolean; title: string; }) => number' is not assignable to type '(item: T) => number'. - Types of parameters 'item' and 'item' are incompatible. - Type 'T' is not assignable to type '{ text: string; subtitle: string; iconType: string; priority: number; isSecondary: boolean; title: string; }'. -node_modules/chrome-devtools-frontend/front_end/ui/SuggestBox.js(238,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'SuggestBox' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/ui/SuggestBox.js(247,3): error TS2416: Property 'isItemSelectable' in type 'SuggestBox' is not assignable to the same property in base type 'ListDelegate'. - Type '(item: { text: string; subtitle: string; iconType: string; priority: number; isSecondary: boolean; title: string; }) => boolean' is not assignable to type '(item: T) => boolean'. -node_modules/chrome-devtools-frontend/front_end/ui/SuggestBox.js(247,3): error TS2416: Property 'isItemSelectable' in type 'SuggestBox' is not assignable to the same property in base type 'ListDelegate'. - Type '(item: { text: string; subtitle: string; iconType: string; priority: number; isSecondary: boolean; title: string; }) => boolean' is not assignable to type '(item: T) => boolean'. - Types of parameters 'item' and 'item' are incompatible. - Type 'T' is not assignable to type '{ text: string; subtitle: string; iconType: string; priority: number; isSecondary: boolean; title: string; }'. -node_modules/chrome-devtools-frontend/front_end/ui/SuggestBox.js(247,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'SuggestBox' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/ui/SuggestBox.js(258,3): error TS2416: Property 'selectedItemChanged' in type 'SuggestBox' is not assignable to the same property in base type 'ListDelegate'. - Type '(from: { text: string; subtitle: string; iconType: string; priority: number; isSecondary: boolean; title: string; }, to: { text: string; subtitle: string; iconType: string; priority: number; isSecondary: boolean; title: string; }, fromElement: Element, toElement: Element) => void' is not assignable to type '(from: T, to: T, fromElement: Element, toElement: Element) => void'. -node_modules/chrome-devtools-frontend/front_end/ui/SuggestBox.js(258,3): error TS2416: Property 'selectedItemChanged' in type 'SuggestBox' is not assignable to the same property in base type 'ListDelegate'. - Type '(from: { text: string; subtitle: string; iconType: string; priority: number; isSecondary: boolean; title: string; }, to: { text: string; subtitle: string; iconType: string; priority: number; isSecondary: boolean; title: string; }, fromElement: Element, toElement: Element) => void' is not assignable to type '(from: T, to: T, fromElement: Element, toElement: Element) => void'. - Types of parameters 'from' and 'from' are incompatible. - Type 'T' is not assignable to type '{ text: string; subtitle: string; iconType: string; priority: number; isSecondary: boolean; title: string; }'. -node_modules/chrome-devtools-frontend/front_end/ui/SuggestBox.js(258,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'SuggestBox' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/ui/SuggestBox.js(282,11): error TS2339: Property 'consume' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/SyntaxHighlighter.js(54,10): error TS2339: Property 'createTextChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/SyntaxHighlighter.js(74,12): error TS2339: Property 'removeChildren' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/SyntaxHighlighter.js(82,16): error TS2339: Property 'createTextChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/SyntaxHighlighter.js(85,16): error TS2339: Property 'createTextChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/SyntaxHighlighter.js(102,14): error TS2339: Property 'createTextChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/TabbedPane.js(40,25): error TS2339: Property 'tabIndex' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/TabbedPane.js(41,47): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/TabbedPane.js(47,48): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/TabbedPane.js(159,27): error TS2339: Property 'focus' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/TabbedPane.js(314,56): error TS2339: Property 'getComponentRoot' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/TabbedPane.js(568,15): error TS2339: Property 'which' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/TabbedPane.js(671,27): error TS2339: Property '__tab' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/TabbedPane.js(679,31): error TS2339: Property '__tab' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/TabbedPane.js(775,20): error TS2339: Property 'tabIndex' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/TabbedPane.js(790,104): error TS2339: Property 'offsetWidth' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/TabbedPane.js(792,21): error TS2339: Property 'style' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/TabbedPane.js(793,21): error TS2339: Property 'style' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/TabbedPane.js(873,19): error TS2339: Property 'key' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/TabbedPane.js(894,28): error TS2339: Property 'click' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/TabbedPane.js(899,20): error TS2339: Property 'focus' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/TabbedPane.js(1047,21): error TS2339: Property 'style' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/TabbedPane.js(1064,20): error TS2339: Property '__iconElement' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/TabbedPane.js(1065,18): error TS2339: Property '__iconElement' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/TabbedPane.js(1066,18): error TS2339: Property '__iconElement' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/TabbedPane.js(1075,16): error TS2339: Property '__iconElement' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/TabbedPane.js(1088,35): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/TabbedPane.js(1096,18): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/TabbedPane.js(1121,30): error TS2339: Property 'button' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/TabbedPane.js(1122,72): error TS2339: Property 'classList' does not exist on type 'EventTarget'. -node_modules/chrome-devtools-frontend/front_end/ui/TabbedPane.js(1128,11): error TS2339: Property 'consume' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/TabbedPane.js(1135,22): error TS2339: Property 'classList' does not exist on type 'EventTarget'. -node_modules/chrome-devtools-frontend/front_end/ui/TabbedPane.js(1135,78): error TS2339: Property 'button' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/TabbedPane.js(1145,15): error TS2339: Property 'button' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/TabbedPane.js(1146,13): error TS2339: Property 'consume' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/TabbedPane.js(1206,22): error TS2339: Property 'classList' does not exist on type 'EventTarget'. -node_modules/chrome-devtools-frontend/front_end/ui/TabbedPane.js(1208,30): error TS2339: Property 'pageX' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/TabbedPane.js(1224,90): error TS2339: Property 'offsetLeft' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/TabbedPane.js(1225,28): error TS2339: Property 'offsetLeft' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/TabbedPane.js(1229,26): error TS2339: Property 'pageX' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/TabbedPane.js(1232,17): error TS2339: Property 'pageX' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/TabbedPane.js(1237,44): error TS2339: Property 'offsetLeft' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/TabbedPane.js(1239,44): error TS2339: Property 'offsetLeft' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/TabbedPane.js(1243,52): error TS2339: Property 'pageX' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/TabbedPane.js(1244,24): error TS2339: Property 'style' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/TabbedPane.js(1247,48): error TS2339: Property 'pageX' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/TabbedPane.js(1248,24): error TS2339: Property 'style' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/TabbedPane.js(1252,22): error TS2339: Property 'style' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/TabbedPane.js(1252,55): error TS2339: Property 'pageX' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/TabbedPane.js(1260,22): error TS2339: Property 'style' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/TextEditor.js(12,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/ui/TextEditor.js(21,17): error TS8022: JSDoc '@extends' is not attached to a class. -node_modules/chrome-devtools-frontend/front_end/ui/TextEditor.js(26,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/ui/TextEditor.js(31,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/ui/TextEditor.js(36,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/ui/TextEditor.js(47,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/ui/TextEditor.js(58,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/ui/TextEditor.js(79,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/ui/TextPrompt.js(89,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/ui/TextPrompt.js(113,39): error TS2339: Property 'createChild' does not exist on type 'DocumentFragment'. -node_modules/chrome-devtools-frontend/front_end/ui/TextPrompt.js(115,24): error TS2339: Property 'style' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/TextPrompt.js(130,26): error TS2339: Property 'title' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/TextPrompt.js(194,26): error TS2339: Property 'title' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/TextPrompt.js(240,39): error TS2339: Property 'tabIndex' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/TextPrompt.js(241,23): error TS2339: Property 'tabIndex' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/TextPrompt.js(242,21): error TS2339: Property 'tabIndex' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/TextPrompt.js(249,19): error TS2339: Property 'tabIndex' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/TextPrompt.js(268,68): error TS2345: Argument of type 'Event' is not assignable to parameter of type 'KeyboardEvent'. -node_modules/chrome-devtools-frontend/front_end/ui/TextPrompt.js(269,13): error TS2339: Property 'consume' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/TextPrompt.js(273,19): error TS2339: Property 'key' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/TextPrompt.js(299,19): error TS2339: Property 'ctrlKey' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/TextPrompt.js(299,37): error TS2339: Property 'metaKey' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/TextPrompt.js(299,55): error TS2339: Property 'altKey' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/TextPrompt.js(299,72): error TS2339: Property 'shiftKey' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/TextPrompt.js(309,13): error TS2339: Property 'consume' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/TextPrompt.js(389,35): error TS2339: Property 'getComponentSelection' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/TextPrompt.js(437,29): error TS2339: Property 'boxInWindow' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/TextPrompt.js(518,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Object'. -node_modules/chrome-devtools-frontend/front_end/ui/TextPrompt.js(530,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Object'. -node_modules/chrome-devtools-frontend/front_end/ui/TextPrompt.js(564,35): error TS2339: Property 'getComponentSelection' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/TextPrompt.js(580,35): error TS2339: Property 'getComponentSelection' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/TextPrompt.js(592,35): error TS2339: Property 'getComponentSelection' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/TextPrompt.js(601,32): error TS2339: Property 'isAncestor' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/TextPrompt.js(610,54): error TS2339: Property 'isAncestor' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/TextPrompt.js(622,35): error TS2339: Property 'getComponentSelection' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/TextPrompt.js(627,7): error TS2322: Type 'ChildNode' is not assignable to type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/Toolbar.js(43,50): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/Toolbar.js(48,45): error TS2339: Property 'createChild' does not exist on type 'DocumentFragment'. -node_modules/chrome-devtools-frontend/front_end/ui/Toolbar.js(134,47): error TS2339: Property 'boxInWindow' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/Toolbar.js(246,10): error TS2339: Property '_toolbar' does not exist on type 'ToolbarItem'. -node_modules/chrome-devtools-frontend/front_end/ui/Toolbar.js(273,19): error TS2339: Property '_toolbar' does not exist on type 'ToolbarItem'. -node_modules/chrome-devtools-frontend/front_end/ui/Toolbar.js(318,56): error TS2339: Property 'peekLast' does not exist on type 'ToolbarItem[]'. -node_modules/chrome-devtools-frontend/front_end/ui/Toolbar.js(405,53): error TS2339: Property '_toolbar' does not exist on type 'ToolbarItem'. -node_modules/chrome-devtools-frontend/front_end/ui/Toolbar.js(405,70): error TS2339: Property '_toolbar' does not exist on type 'ToolbarItem'. -node_modules/chrome-devtools-frontend/front_end/ui/Toolbar.js(412,18): error TS2339: Property 'disabled' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/Toolbar.js(430,14): error TS2339: Property '_toolbar' does not exist on type 'ToolbarItem'. -node_modules/chrome-devtools-frontend/front_end/ui/Toolbar.js(431,12): error TS2339: Property '_toolbar' does not exist on type 'ToolbarItem'. -node_modules/chrome-devtools-frontend/front_end/ui/Toolbar.js(484,38): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/Toolbar.js(520,18): error TS2339: Property 'style' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/Toolbar.js(535,20): error TS2339: Property 'style' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/Toolbar.js(545,11): error TS2339: Property 'consume' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/Toolbar.js(584,46): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/Toolbar.js(599,20): error TS2339: Property 'style' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/Toolbar.js(601,20): error TS2339: Property 'style' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/Toolbar.js(603,36): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/Toolbar.js(650,11): error TS2339: Property 'consume' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/Toolbar.js(727,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/ui/Toolbar.js(741,15): error TS2339: Property 'buttons' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/Toolbar.js(761,48): error TS2339: Property 'totalOffsetLeft' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/Toolbar.js(762,22): error TS2339: Property 'totalOffsetTop' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/Toolbar.js(762,54): error TS2339: Property 'offsetHeight' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/Toolbar.js(833,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/ui/Toolbar.js(845,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/ui/Toolbar.js(855,15): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/ui/Toolbar.js(861,40): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/Toolbar.js(1053,38): error TS2339: Property 'checkboxElement' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/Toolbar.js(1055,20): error TS2339: Property 'title' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/Tooltip.js(12,29): error TS2339: Property 'createChild' does not exist on type 'HTMLElement'. -node_modules/chrome-devtools-frontend/front_end/ui/Tooltip.js(15,45): error TS2339: Property 'createChild' does not exist on type 'DocumentFragment'. -node_modules/chrome-devtools-frontend/front_end/ui/Tooltip.js(57,27): error TS2339: Property 'path' does not exist on type 'MouseEvent'. -node_modules/chrome-devtools-frontend/front_end/ui/Tooltip.js(85,31): error TS2339: Property 'isSelfOrDescendant' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/Tooltip.js(87,29): error TS2339: Property 'title' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/Tooltip.js(118,34): error TS2339: Property 'boxInWindow' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/Tooltip.js(119,41): error TS2339: Property 'boxInWindow' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/Tooltip.js(129,65): error TS2339: Property 'x' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/Tooltip.js(130,23): error TS2339: Property 'constrain' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/ui/Tooltip.js(134,24): error TS2339: Property 'y' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/Tooltip.js(135,17): error TS2339: Property 'y' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/Tooltip.js(136,17): error TS2339: Property 'y' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/Tooltip.js(178,17): error TS2304: Cannot find name 'ObjectPropertyDescriptor'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(37,12): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(38,13): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(69,13): error TS2339: Property 'style' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(75,12): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(76,13): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(98,22): error TS2339: Property '_glassPane' does not exist on type 'typeof DragHandler'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(99,22): error TS2339: Property '_glassPane' does not exist on type 'typeof DragHandler'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(100,22): error TS2339: Property '_glassPane' does not exist on type 'typeof DragHandler'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(100,53): error TS2339: Property '_documentForMouseOut' does not exist on type 'typeof DragHandler'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(110,20): error TS2339: Property '_glassPane' does not exist on type 'typeof DragHandler'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(111,27): error TS2339: Property '_glassPane' does not exist on type 'typeof DragHandler'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(112,27): error TS2339: Property '_documentForMouseOut' does not exist on type 'typeof DragHandler'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(118,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(119,15): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(125,15): error TS2339: Property 'button' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(125,48): error TS2339: Property 'ctrlKey' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(134,39): error TS2339: Property 'ownerDocument' does not exist on type 'EventTarget'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(138,25): error TS2339: Property '_documentForMouseOut' does not exist on type 'typeof DragHandler'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(139,20): error TS2339: Property '_documentForMouseOut' does not exist on type 'typeof DragHandler'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(150,77): error TS2339: Property 'style' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(151,21): error TS2339: Property 'style' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(160,21): error TS2339: Property 'style' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(172,25): error TS2339: Property '_documentForMouseOut' does not exist on type 'typeof DragHandler'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(174,20): error TS2339: Property '_documentForMouseOut' does not exist on type 'typeof DragHandler'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(192,15): error TS2339: Property 'buttons' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(238,15): error TS2339: Property 'classList' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(245,17): error TS2339: Property '__editing' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(247,23): error TS2339: Property 'parentElementOrShadowHost' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(260,26): error TS2339: Property 'deepActiveElement' does not exist on type 'Document'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(273,17): error TS2339: Property '__editing' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(276,13): error TS2339: Property '__editing' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(279,18): error TS2339: Property '__editing' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(282,20): error TS2339: Property '__editing' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(300,15): error TS2339: Property 'wheelDeltaY' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(300,40): error TS2339: Property 'wheelDeltaX' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(302,20): error TS2339: Property 'wheelDeltaY' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(302,45): error TS2339: Property 'wheelDeltaX' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(305,15): error TS2339: Property 'key' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(305,42): error TS2339: Property 'key' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(307,20): error TS2339: Property 'key' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(307,49): error TS2339: Property 'key' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(355,23): error TS2339: Property 'constrain' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(451,42): error TS2339: Property 'key' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(451,69): error TS2339: Property 'key' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(452,31): error TS2339: Property 'key' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(452,57): error TS2339: Property 'key' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(456,27): error TS2339: Property 'getComponentSelection' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(487,11): error TS2339: Property 'handled' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(503,8): error TS2339: Property 'preciseMillisToString' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(535,8): error TS2339: Property 'millisToString' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(570,8): error TS2339: Property 'secondsToString' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(573,17): error TS2339: Property 'millisToString' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(580,8): error TS2339: Property 'bytesToString' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(601,8): error TS2339: Property 'withThousandsSeparator' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(625,17): error TS2339: Property 'format' does not exist on type 'StringConstructor'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(699,28): error TS2339: Property 'createShadowRoot' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(714,20): error TS2339: Property 'document' does not exist on type 'EventTarget'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(718,34): error TS2339: Property 'deepActiveElement' does not exist on type 'Document'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(736,20): error TS2339: Property 'document' does not exist on type 'EventTarget'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(744,47): error TS2339: Property 'ownerDocument' does not exist on type 'EventTarget'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(763,44): error TS2339: Property 'deepActiveElement' does not exist on type 'Document'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(764,13): error TS2339: Property 'focus' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(770,23): error TS2339: Property 'hasFocus' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(826,27): error TS2339: Property 'childTextNodes' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(943,11): error TS2339: Property 'positionAt' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(946,11): error TS2339: Property 'positionAt' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(968,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(995,25): error TS2339: Property 'keysArray' does not exist on type 'Map'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1022,12): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1058,28): error TS2339: Property 'constrain' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1060,28): error TS2339: Property 'constrain' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1079,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1089,14): error TS2339: Property '_longClickInterval' does not exist on type 'LongClickController'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1090,26): error TS2339: Property '_longClickInterval' does not exist on type 'LongClickController'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1091,19): error TS2339: Property '_longClickInterval' does not exist on type 'LongClickController'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1114,13): error TS2339: Property 'which' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1117,12): error TS2339: Property '_longClickInterval' does not exist on type 'LongClickController'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1125,13): error TS2339: Property 'which' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1182,19): error TS2551: Property 'registerElement' does not exist on type 'Document'. Did you mean 'createElement'? -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1209,11): error TS2339: Property 'spellcheck' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1212,13): error TS2339: Property 'type' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1224,11): error TS2339: Property 'radioElement' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1225,11): error TS2339: Property 'radioElement' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1226,11): error TS2339: Property 'createTextChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1237,11): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1238,11): error TS2339: Property 'type' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1250,11): error TS2339: Property 'sliderElement' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1251,11): error TS2339: Property 'sliderElement' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1252,11): error TS2339: Property 'sliderElement' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1253,11): error TS2339: Property 'sliderElement' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1267,16): error TS2339: Property 'type' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1274,18): error TS2339: Property 'type' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1298,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'HTMLLabelElement'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1299,22): error TS2339: Property '_lastId' does not exist on type 'typeof CheckboxLabel'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1299,50): error TS2339: Property '_lastId' does not exist on type 'typeof CheckboxLabel'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1300,53): error TS2339: Property '_lastId' does not exist on type 'typeof CheckboxLabel'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1302,79): error TS2339: Property 'createChild' does not exist on type 'DocumentFragment'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1305,41): error TS2339: Property 'createChild' does not exist on type 'DocumentFragment'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1307,22): error TS2339: Property 'createChild' does not exist on type 'DocumentFragment'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1317,27): error TS2339: Property '_constructor' does not exist on type 'typeof CheckboxLabel'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1318,24): error TS2339: Property '_constructor' does not exist on type 'typeof CheckboxLabel'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1319,74): error TS2339: Property '_constructor' does not exist on type 'typeof CheckboxLabel'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1324,29): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1334,10): error TS2339: Property 'checkboxElement' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1335,10): error TS2339: Property 'checkboxElement' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1343,10): error TS2339: Property 'checkboxElement' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1346,10): error TS2551: Property '_shadowRoot' does not exist on type 'Element'. Did you mean 'shadowRoot'? -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1354,10): error TS2339: Property 'checkboxElement' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1355,10): error TS2339: Property 'checkboxElement' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1365,12): error TS2339: Property 'type' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1367,12): error TS2339: Property 'createChild' does not exist on type 'DocumentFragment'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1378,12): error TS2339: Property 'radioElement' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1378,32): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1379,12): error TS2339: Property 'radioElement' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1381,12): error TS2339: Property 'createChild' does not exist on type 'DocumentFragment'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1382,12): error TS2339: Property 'createChild' does not exist on type 'DocumentFragment'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1395,14): error TS2339: Property 'radioElement' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1395,43): error TS2339: Property 'radioElement' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1397,10): error TS2339: Property 'radioElement' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1398,10): error TS2339: Property 'radioElement' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1407,12): error TS2339: Property '_iconElement' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1408,12): error TS2339: Property '_iconElement' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1409,29): error TS2339: Property '_iconElement' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1410,12): error TS2339: Property 'createChild' does not exist on type 'DocumentFragment'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1418,12): error TS2339: Property '_iconElement' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1430,12): error TS2339: Property 'sliderElement' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1431,12): error TS2339: Property 'sliderElement' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1432,29): error TS2339: Property 'sliderElement' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1440,12): error TS2339: Property 'sliderElement' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1447,19): error TS2339: Property 'sliderElement' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1459,12): error TS2339: Property '_textElement' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1459,32): error TS2339: Property 'createChild' does not exist on type 'DocumentFragment'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1460,12): error TS2339: Property '_textElement' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1461,12): error TS2339: Property '_textElement' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1469,12): error TS2339: Property '_textElement' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1481,12): error TS2339: Property '_buttonElement' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1481,34): error TS2339: Property 'createChild' does not exist on type 'DocumentFragment'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1483,12): error TS2339: Property '_hoverIcon' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1484,12): error TS2339: Property '_activeIcon' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1485,12): error TS2339: Property '_buttonElement' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1486,12): error TS2339: Property '_buttonElement' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1486,44): error TS2339: Property '_hoverIcon' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1487,12): error TS2339: Property '_buttonElement' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1487,44): error TS2339: Property '_activeIcon' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1496,14): error TS2339: Property '_hoverIcon' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1497,14): error TS2339: Property '_activeIcon' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1499,14): error TS2339: Property '_hoverIcon' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1500,14): error TS2339: Property '_activeIcon' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1510,12): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1519,41): error TS2339: Property 'select' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1522,59): error TS2339: Property 'value' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1526,32): error TS2339: Property 'value' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1529,19): error TS2339: Property 'value' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1537,26): error TS2339: Property 'value' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1538,21): error TS2339: Property 'value' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1546,27): error TS2339: Property 'key' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1546,57): error TS2339: Property 'key' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1549,15): error TS2339: Property 'shiftKey' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1552,23): error TS2339: Property 'value' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1561,11): error TS2339: Property 'value' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1562,17): error TS2339: Property 'value' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1570,25): error TS2339: Property 'value' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1574,11): error TS2339: Property 'value' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1633,77): error TS2554: Expected 0 arguments, but got 1. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1646,40): error TS2339: Property '_textWidthCache' does not exist on type '(context: CanvasRenderingContext2D, text: string) => number'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1649,25): error TS2339: Property '_textWidthCache' does not exist on type '(context: CanvasRenderingContext2D, text: string) => number'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1715,20): error TS2339: Property 'type' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1745,18): error TS2339: Property 'type' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1763,20): error TS2339: Property 'type' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1766,52): error TS2339: Property 'sheet' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1783,30): error TS2339: Property 'cssRules' does not exist on type 'StyleSheet'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1910,22): error TS2339: Property 'constrain' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1911,22): error TS2339: Property 'constrain' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1912,22): error TS2339: Property 'constrain' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1913,22): error TS2339: Property 'constrain' does not exist on type 'NumberConstructor'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1943,50): error TS2345: Argument of type 'HTMLImageElement' is not assignable to parameter of type '(new (width?: number, height?: number) => HTMLImageElement) | PromiseLike HTMLImageElement>'. - Property 'then' is missing in type 'HTMLImageElement' but required in type 'PromiseLike HTMLImageElement>'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1961,12): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1966,23): error TS2339: Property 'type' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1967,23): error TS2339: Property 'style' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1968,48): error TS2345: Argument of type 'number' is not assignable to parameter of type 'string'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1969,23): error TS2339: Property 'onchange' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1971,34): error TS2339: Property 'files' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1993,30): error TS2339: Property 'createChild' does not exist on type 'DocumentFragment'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(1999,15): error TS2339: Property 'consume' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(2003,16): error TS2339: Property 'focus' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(2020,30): error TS2339: Property 'createChild' does not exist on type 'DocumentFragment'. -node_modules/chrome-devtools-frontend/front_end/ui/UIUtils.js(2027,15): error TS2339: Property 'consume' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/View.js(11,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/ui/View.js(16,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/ui/View.js(21,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/ui/View.js(26,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/ui/View.js(31,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/ui/View.js(36,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/ui/View.js(67,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/ui/View.js(75,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/ui/View.js(83,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/ui/View.js(91,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/ui/View.js(99,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/ui/View.js(114,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/ui/View.js(135,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'VBox'. -node_modules/chrome-devtools-frontend/front_end/ui/View.js(155,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ProvidedView' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/ui/View.js(163,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ProvidedView' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/ui/View.js(171,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ProvidedView' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/ui/View.js(179,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ProvidedView' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/ui/View.js(187,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ProvidedView' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/ui/View.js(195,47): error TS2352: Conversion of type 'Widget' to type 'ItemsProvider' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first. - Property 'toolbarItems' is missing in type 'Widget' but required in type 'ItemsProvider'. -node_modules/chrome-devtools-frontend/front_end/ui/View.js(203,9): error TS4112: This member cannot have an 'override' modifier because its containing class 'ProvidedView' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/ui/View.js(215,9): error TS4112: This member cannot have an 'override' modifier because its containing class 'ProvidedView' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/ui/View.js(244,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/ui/View.js(254,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/ui/View.js(263,25): error TS8022: JSDoc '@extends' is not attached to a class. -node_modules/chrome-devtools-frontend/front_end/ui/View.js(267,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/ui/View.js(282,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/ui/View.js(326,21): error TS2339: Property 'showView' does not exist on type '_Location'. -node_modules/chrome-devtools-frontend/front_end/ui/View.js(371,23): error TS2339: Property 'showView' does not exist on type '_Location'. -node_modules/chrome-devtools-frontend/front_end/ui/View.js(440,18): error TS2339: Property 'tabIndex' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/View.js(454,38): error TS2339: Property 'hasFocus' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/View.js(461,44): error TS2769: No overload matches this call. - The last overload gave the following error. - Argument of type '(Promise | Promise)[]' is not assignable to parameter of type 'Iterable>'. - The types returned by '[Symbol.iterator]().next(...)' are incompatible between these types. - Type 'IteratorResult | Promise, any>' is not assignable to type 'IteratorResult, any>'. - Type 'IteratorYieldResult | Promise>' is not assignable to type 'IteratorResult, any>'. - Type 'IteratorYieldResult | Promise>' is not assignable to type 'IteratorYieldResult>'. - Type 'Promise | Promise' is not assignable to type 'void | PromiseLike'. - Type 'Promise' is not assignable to type 'void | PromiseLike'. - Type 'Promise' is not assignable to type 'PromiseLike'. - Types of property 'then' are incompatible. - Type '(onfulfilled?: (value: ToolbarItem[]) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike<...>) => Promise<...>' is not assignable to type '(onfulfilled?: (value: void) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike) => PromiseLike<...>'. - Types of parameters 'onfulfilled' and 'onfulfilled' are incompatible. - Types of parameters 'value' and 'value' are incompatible. - Type 'ToolbarItem[]' is not assignable to type 'void'. -node_modules/chrome-devtools-frontend/front_end/ui/View.js(495,24): error TS2339: Property 'createTextChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/View.js(496,24): error TS2339: Property 'tabIndex' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/View.js(501,25): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/View.js(520,44): error TS2769: No overload matches this call. - The last overload gave the following error. - Argument of type '(Promise | Promise)[]' is not assignable to parameter of type 'Iterable>'. -node_modules/chrome-devtools-frontend/front_end/ui/View.js(556,36): error TS2339: Property 'keyCode' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/View.js(558,22): error TS2339: Property 'key' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/View.js(560,22): error TS2339: Property 'key' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/View.js(651,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class '_Location'. -node_modules/chrome-devtools-frontend/front_end/ui/View.js(658,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class '_Location'. -node_modules/chrome-devtools-frontend/front_end/ui/View.js(667,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class '_Location'. -node_modules/chrome-devtools-frontend/front_end/ui/View.js(722,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class '_Location'. -node_modules/chrome-devtools-frontend/front_end/ui/View.js(769,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class '_Location'. -node_modules/chrome-devtools-frontend/front_end/ui/View.js(782,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class '_Location'. -node_modules/chrome-devtools-frontend/front_end/ui/View.js(852,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class '_Location'. -node_modules/chrome-devtools-frontend/front_end/ui/View.js(874,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class '_Location'. -node_modules/chrome-devtools-frontend/front_end/ui/View.js(884,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class '_Location'. -node_modules/chrome-devtools-frontend/front_end/ui/View.js(899,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class '_Location'. -node_modules/chrome-devtools-frontend/front_end/ui/Widget.js(45,18): error TS2339: Property '__widget' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/Widget.js(88,16): error TS2339: Property '__widget' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/ui/Widget.js(90,19): error TS2339: Property 'parentNodeOrShadowHost' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/ui/Widget.js(95,23): error TS2339: Property '__widget' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/ui/Widget.js(168,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/ui/Widget.js(215,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/ui/Widget.js(251,46): error TS2339: Property '__widget' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/Widget.js(252,39): error TS2339: Property 'parentElementOrShadowHost' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/Widget.js(254,34): error TS2339: Property '__widget' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/Widget.js(286,44): error TS2339: Property '__widget' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/Widget.js(287,37): error TS2339: Property 'parentElementOrShadowHost' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/Widget.js(293,42): error TS2339: Property '__widget' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/Widget.js(409,17): error TS2551: Property '_scrollTop' does not exist on type 'Element'. Did you mean 'scrollTop'? -node_modules/chrome-devtools-frontend/front_end/ui/Widget.js(410,17): error TS2551: Property '_scrollLeft' does not exist on type 'Element'. Did you mean 'scrollLeft'? -node_modules/chrome-devtools-frontend/front_end/ui/Widget.js(418,21): error TS2551: Property '_scrollTop' does not exist on type 'Element'. Did you mean 'scrollTop'? -node_modules/chrome-devtools-frontend/front_end/ui/Widget.js(419,41): error TS2551: Property '_scrollTop' does not exist on type 'Element'. Did you mean 'scrollTop'? -node_modules/chrome-devtools-frontend/front_end/ui/Widget.js(420,21): error TS2551: Property '_scrollLeft' does not exist on type 'Element'. Did you mean 'scrollLeft'? -node_modules/chrome-devtools-frontend/front_end/ui/Widget.js(421,42): error TS2551: Property '_scrollLeft' does not exist on type 'Element'. Did you mean 'scrollLeft'? -node_modules/chrome-devtools-frontend/front_end/ui/Widget.js(484,20): error TS2339: Property 'hasFocus' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/Widget.js(485,17): error TS2339: Property 'focus' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/Widget.js(498,39): error TS2339: Property 'traverseNextNode' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/Widget.js(513,25): error TS2339: Property 'hasFocus' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/Widget.js(593,55): error TS2339: Property 'removeChildren' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/Widget.js(669,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/ui/Widget.js(693,51): error TS2339: Property 'deepActiveElement' does not exist on type 'Document'. -node_modules/chrome-devtools-frontend/front_end/ui/Widget.js(713,1): error TS2322: Type '(child: Node) => Node' is not assignable to type '(newChild: T) => T'. - Type 'Node' is not assignable to type 'T'. - 'Node' is assignable to the constraint of type 'T', but 'T' could be instantiated with a different subtype of constraint 'Node'. -node_modules/chrome-devtools-frontend/front_end/ui/Widget.js(715,14): error TS2339: Property '__widget' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/ui/Widget.js(726,1): error TS2322: Type '(child: Node, anchor: Node) => Node' is not assignable to type '(newChild: T, refChild: Node) => T'. - Type 'Node' is not assignable to type 'T'. - 'Node' is assignable to the constraint of type 'T', but 'T' could be instantiated with a different subtype of constraint 'Node'. -node_modules/chrome-devtools-frontend/front_end/ui/Widget.js(728,14): error TS2339: Property '__widget' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/ui/Widget.js(738,1): error TS2322: Type '(child: Node) => Node' is not assignable to type '(oldChild: T) => T'. - Type 'Node' is not assignable to type 'T'. - 'Node' is assignable to the constraint of type 'T', but 'T' could be instantiated with a different subtype of constraint 'Node'. -node_modules/chrome-devtools-frontend/front_end/ui/Widget.js(740,14): error TS2339: Property '__widgetCounter' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/ui/Widget.js(740,40): error TS2339: Property '__widget' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/ui/Widget.js(745,19): error TS2339: Property 'removeChildren' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/Widget.js(746,28): error TS2339: Property '__widgetCounter' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/XElement.js(25,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'HTMLElement'. -node_modules/chrome-devtools-frontend/front_end/ui/XLink.js(22,31): error TS2345: Argument of type 'TemplateStringsArray' is not assignable to parameter of type 'string[]'. -node_modules/chrome-devtools-frontend/front_end/ui/XLink.js(112,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'ContextMenuProvider' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/ui/XLink.js(115,31): error TS2339: Property 'parentNodeOrShadowHost' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/ui/XLink.js(116,36): error TS2339: Property '_href' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/ui/XLink.js(119,91): error TS2339: Property '_href' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/ui/XLink.js(121,84): error TS2339: Property '_href' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/ui/XWidget.js(24,17): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/ui/XWidget.js(26,17): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/ui/XWidget.js(28,17): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/ui/XWidget.js(31,21): error TS2339: Property '_observer' does not exist on type 'typeof XWidget'. -node_modules/chrome-devtools-frontend/front_end/ui/XWidget.js(32,18): error TS2339: Property '_observer' does not exist on type 'typeof XWidget'. -node_modules/chrome-devtools-frontend/front_end/ui/XWidget.js(34,28): error TS2339: Property '_visible' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/XWidget.js(34,53): error TS2339: Property '_onResizedCallback' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/XWidget.js(35,26): error TS2339: Property '_onResizedCallback' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/XWidget.js(39,16): error TS2339: Property '_observer' does not exist on type 'typeof XWidget'. -node_modules/chrome-devtools-frontend/front_end/ui/XWidget.js(48,25): error TS2339: Property 'parentNodeOrShadowHost' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/ui/XWidget.js(56,19): error TS2339: Property 'parentNodeOrShadowHost' does not exist on type 'Node'. -node_modules/chrome-devtools-frontend/front_end/ui/XWidget.js(75,15): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/ui/XWidget.js(82,15): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/ui/XWidget.js(89,15): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/ui/XWidget.js(100,7): error TS2769: No overload matches this call. - Overload 1 of 2, '(type: keyof ElementEventMap, listener: (this: Element, ev: Event) => any, options?: boolean | EventListenerOptions): void', gave the following error. - Argument of type '"scroll"' is not assignable to parameter of type 'keyof ElementEventMap'. - Overload 2 of 2, '(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void', gave the following error. - Argument of type '{ passive: boolean; capture: false; }' is not assignable to parameter of type 'boolean | EventListenerOptions'. - Object literal may only specify known properties, and 'passive' does not exist in type 'EventListenerOptions'. -node_modules/chrome-devtools-frontend/front_end/ui/XWidget.js(108,19): error TS2551: Property '_scrollTop' does not exist on type 'Element'. Did you mean 'scrollTop'? -node_modules/chrome-devtools-frontend/front_end/ui/XWidget.js(109,37): error TS2551: Property '_scrollTop' does not exist on type 'Element'. Did you mean 'scrollTop'? -node_modules/chrome-devtools-frontend/front_end/ui/XWidget.js(110,19): error TS2551: Property '_scrollLeft' does not exist on type 'Element'. Did you mean 'scrollLeft'? -node_modules/chrome-devtools-frontend/front_end/ui/XWidget.js(111,38): error TS2551: Property '_scrollLeft' does not exist on type 'Element'. Did you mean 'scrollLeft'? -node_modules/chrome-devtools-frontend/front_end/ui/XWidget.js(120,13): error TS2339: Property '_scrollTop' does not exist on type 'EventTarget'. -node_modules/chrome-devtools-frontend/front_end/ui/XWidget.js(120,34): error TS2339: Property 'scrollTop' does not exist on type 'EventTarget'. -node_modules/chrome-devtools-frontend/front_end/ui/XWidget.js(121,13): error TS2339: Property '_scrollLeft' does not exist on type 'EventTarget'. -node_modules/chrome-devtools-frontend/front_end/ui/XWidget.js(121,35): error TS2339: Property 'scrollLeft' does not exist on type 'EventTarget'. -node_modules/chrome-devtools-frontend/front_end/ui/XWidget.js(128,26): error TS2339: Property 'isSelfOrAncestor' does not exist on type 'XWidget'. -node_modules/chrome-devtools-frontend/front_end/ui/XWidget.js(141,45): error TS2339: Property 'isSelfOrAncestor' does not exist on type 'XWidget'. -node_modules/chrome-devtools-frontend/front_end/ui/XWidget.js(146,24): error TS2339: Property 'traverseNextNode' does not exist on type 'XWidget'. -node_modules/chrome-devtools-frontend/front_end/ui/XWidget.js(156,29): error TS2339: Property 'hasFocus' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/XWidget.js(161,15): error TS2339: Property 'focus' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/XWidget.js(167,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'XElement'. -node_modules/chrome-devtools-frontend/front_end/ui/XWidget.js(177,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'XElement'. -node_modules/chrome-devtools-frontend/front_end/ui/treeoutline.js(49,52): error TS2345: Argument of type 'number' is not assignable to parameter of type 'string'. -node_modules/chrome-devtools-frontend/front_end/ui/treeoutline.js(61,23): error TS2339: Property 'root' does not exist on type 'TreeElement'. -node_modules/chrome-devtools-frontend/front_end/ui/treeoutline.js(123,50): error TS2339: Property 'deepElementFromPoint' does not exist on type 'Document'. -node_modules/chrome-devtools-frontend/front_end/ui/treeoutline.js(138,52): error TS2339: Property 'pageX' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/treeoutline.js(138,65): error TS2339: Property 'pageY' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/treeoutline.js(154,52): error TS2345: Argument of type 'number' is not assignable to parameter of type 'string'. -node_modules/chrome-devtools-frontend/front_end/ui/treeoutline.js(167,48): error TS2339: Property 'focus' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/treeoutline.js(169,27): error TS2339: Property 'focus' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/treeoutline.js(257,105): error TS2339: Property 'shiftKey' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/treeoutline.js(258,15): error TS2339: Property 'metaKey' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/treeoutline.js(258,32): error TS2339: Property 'ctrlKey' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/treeoutline.js(262,15): error TS2339: Property 'key' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/treeoutline.js(262,43): error TS2339: Property 'altKey' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/treeoutline.js(264,22): error TS2339: Property 'key' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/treeoutline.js(264,52): error TS2339: Property 'altKey' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/treeoutline.js(266,22): error TS2339: Property 'key' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/treeoutline.js(267,65): error TS2339: Property 'altKey' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/treeoutline.js(268,22): error TS2339: Property 'key' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/treeoutline.js(273,66): error TS2339: Property 'altKey' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/treeoutline.js(275,22): error TS2339: Property 'keyCode' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/treeoutline.js(275,61): error TS2339: Property 'keyCode' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/treeoutline.js(279,22): error TS2339: Property 'keyCode' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/treeoutline.js(281,22): error TS2339: Property 'key' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/treeoutline.js(283,22): error TS2339: Property 'key' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/treeoutline.js(288,13): error TS2339: Property 'consume' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/treeoutline.js(297,20): error TS2339: Property 'window' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/treeoutline.js(304,57): error TS2339: Property 'scrollIntoViewIfNeeded' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/treeoutline.js(330,48): error TS2339: Property 'createChild' does not exist on type 'DocumentFragment'. -node_modules/chrome-devtools-frontend/front_end/ui/treeoutline.js(369,45): error TS2339: Property 'createChild' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/treeoutline.js(370,24): error TS2339: Property 'treeElement' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/treeoutline.js(379,28): error TS2339: Property 'parentTreeElement' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/treeoutline.js(470,39): error TS2339: Property 'lowerBound' does not exist on type 'any[]'. -node_modules/chrome-devtools-frontend/front_end/ui/treeoutline.js(582,15): error TS2339: Property 'root' does not exist on type 'TreeElement'. -node_modules/chrome-devtools-frontend/front_end/ui/treeoutline.js(650,24): error TS2339: Property 'removeChildren' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/treeoutline.js(675,22): error TS2339: Property '_shadowRoot' does not exist on type 'TreeOutline'. -node_modules/chrome-devtools-frontend/front_end/ui/treeoutline.js(690,31): error TS2339: Property 'removeChildren' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/treeoutline.js(707,32): error TS2339: Property 'removeChildren' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/treeoutline.js(727,24): error TS2339: Property 'title' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/treeoutline.js(805,48): error TS2339: Property '_renderSelection' does not exist on type 'TreeOutline'. -node_modules/chrome-devtools-frontend/front_end/ui/treeoutline.js(810,30): error TS2339: Property 'style' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/treeoutline.js(819,17): error TS2339: Property 'treeElement' does not exist on type 'EventTarget'. -node_modules/chrome-devtools-frontend/front_end/ui/treeoutline.js(819,49): error TS2339: Property 'hasSelection' does not exist on type 'EventTarget'. -node_modules/chrome-devtools-frontend/front_end/ui/treeoutline.js(822,30): error TS2339: Property 'toggleOnClick' does not exist on type 'TreeElement'. -node_modules/chrome-devtools-frontend/front_end/ui/treeoutline.js(828,17): error TS2339: Property 'altKey' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/treeoutline.js(833,17): error TS2339: Property 'altKey' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/treeoutline.js(838,11): error TS2339: Property 'consume' does not exist on type 'Event'. -node_modules/chrome-devtools-frontend/front_end/ui/treeoutline.js(850,17): error TS2339: Property 'treeElement' does not exist on type 'EventTarget'. -node_modules/chrome-devtools-frontend/front_end/ui/treeoutline.js(864,29): error TS2339: Property 'treeElement' does not exist on type 'EventTarget'. -node_modules/chrome-devtools-frontend/front_end/ui/treeoutline.js(896,7): error TS2322: Type 'TreeElement' is not assignable to type 'this'. - 'TreeElement' is assignable to the constraint of type 'this', but 'this' could be instantiated with a different subtype of constraint 'TreeElement'. -node_modules/chrome-devtools-frontend/front_end/ui/treeoutline.js(945,7): error TS2322: Type 'TreeElement' is not assignable to type 'this'. - 'TreeElement' is assignable to the constraint of type 'this', but 'this' could be instantiated with a different subtype of constraint 'TreeElement'. -node_modules/chrome-devtools-frontend/front_end/ui/treeoutline.js(1063,55): error TS2339: Property 'hasFocus' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/treeoutline.js(1064,28): error TS2339: Property 'focus' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/treeoutline.js(1078,51): error TS2345: Argument of type 'number' is not assignable to parameter of type 'string'. -node_modules/chrome-devtools-frontend/front_end/ui/treeoutline.js(1105,39): error TS2339: Property 'hasFocus' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/treeoutline.js(1209,32): error TS2339: Property 'root' does not exist on type 'TreeElement'. -node_modules/chrome-devtools-frontend/front_end/ui/treeoutline.js(1217,29): error TS2339: Property 'root' does not exist on type 'TreeElement'. -node_modules/chrome-devtools-frontend/front_end/ui/treeoutline.js(1259,35): error TS2339: Property 'totalOffsetLeft' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/treeoutline.js(1273,18): error TS2339: Property '_imagePreload' does not exist on type 'typeof TreeElement'. -node_modules/chrome-devtools-frontend/front_end/worker_service/ServiceDispatcher.js(12,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/worker_service/ServiceDispatcher.js(17,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/worker_service/ServiceDispatcher.js(144,15): error TS2304: Cannot find name 'Port'. -node_modules/chrome-devtools-frontend/front_end/worker_service/ServiceDispatcher.js(154,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/worker_service/ServiceDispatcher.js(155,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/worker_service/ServiceDispatcher.js(157,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'WorkerServicePort' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/worker_service/ServiceDispatcher.js(167,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'WorkerServicePort' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/worker_service/ServiceDispatcher.js(176,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'WorkerServicePort' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/workspace/FileManager.js(37,29): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/workspace/FileManager.js(39,27): error TS2339: Property 'events' does not exist on type 'InspectorFrontendHostAPI'. -node_modules/chrome-devtools-frontend/front_end/workspace/FileManager.js(40,27): error TS2339: Property 'events' does not exist on type 'InspectorFrontendHostAPI'. -node_modules/chrome-devtools-frontend/front_end/workspace/FileManager.js(42,27): error TS2339: Property 'events' does not exist on type 'InspectorFrontendHostAPI'. -node_modules/chrome-devtools-frontend/front_end/workspace/SearchConfig.js(33,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'SearchConfig' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/workspace/SearchConfig.js(41,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'SearchConfig' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/workspace/SearchConfig.js(49,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'SearchConfig' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/workspace/SearchConfig.js(117,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'SearchConfig' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/workspace/SearchConfig.js(131,3): error TS4112: This member cannot have an 'override' modifier because its containing class 'SearchConfig' does not extend another class. -node_modules/chrome-devtools-frontend/front_end/workspace/SearchConfig.js(164,20): error TS2339: Property 'regexSpecialCharacters' does not exist on type 'StringConstructor'. -node_modules/chrome-devtools-frontend/front_end/workspace/UISourceCode.js(45,25): error TS2339: Property 'asParsedURL' does not exist on type 'string'. -node_modules/chrome-devtools-frontend/front_end/workspace/UISourceCode.js(208,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Object'. -node_modules/chrome-devtools-frontend/front_end/workspace/UISourceCode.js(216,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Object'. -node_modules/chrome-devtools-frontend/front_end/workspace/UISourceCode.js(224,9): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Object'. -node_modules/chrome-devtools-frontend/front_end/workspace/UISourceCode.js(240,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Object'. -node_modules/chrome-devtools-frontend/front_end/workspace/UISourceCode.js(453,3): error TS4113: This member cannot have an 'override' modifier because it is not declared in the base class 'Object'. -node_modules/chrome-devtools-frontend/front_end/workspace/UISourceCode.js(546,27): error TS2345: Argument of type 'string' is not assignable to parameter of type 'K'. - 'K' could be instantiated with an arbitrary type which could be unrelated to 'string'. -node_modules/chrome-devtools-frontend/front_end/workspace/UISourceCode.js(556,41): error TS2345: Argument of type 'string' is not assignable to parameter of type 'K'. - 'K' could be instantiated with an arbitrary type which could be unrelated to 'string'. -node_modules/chrome-devtools-frontend/front_end/workspace/UISourceCode.js(557,33): error TS2345: Argument of type 'string' is not assignable to parameter of type 'K'. - 'K' could be instantiated with an arbitrary type which could be unrelated to 'string'. -node_modules/chrome-devtools-frontend/front_end/workspace/UISourceCode.js(567,5): error TS2322: Type 'V[]' is not assignable to type 'LineMarker[]'. - Type 'V' is not assignable to type 'LineMarker'. -node_modules/chrome-devtools-frontend/front_end/workspace/UISourceCode.js(584,5): error TS2322: Type 'Set' is not assignable to type 'Set'. - Type 'V' is not assignable to type 'LineMarker'. -node_modules/chrome-devtools-frontend/front_end/workspace/UISourceCode.js(584,54): error TS2345: Argument of type 'string' is not assignable to parameter of type 'K'. - 'K' could be instantiated with an arbitrary type which could be unrelated to 'string'. -node_modules/chrome-devtools-frontend/front_end/workspace/Workspace.js(37,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/workspace/Workspace.js(42,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/workspace/Workspace.js(47,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/workspace/Workspace.js(52,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/workspace/Workspace.js(58,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/workspace/Workspace.js(70,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/workspace/Workspace.js(75,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/workspace/Workspace.js(80,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/workspace/Workspace.js(85,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/workspace/Workspace.js(90,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/workspace/Workspace.js(96,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/workspace/Workspace.js(107,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/workspace/Workspace.js(121,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/workspace/Workspace.js(127,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/workspace/Workspace.js(132,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/workspace/Workspace.js(150,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/workspace/Workspace.js(159,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/workspace/Workspace.js(164,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/workspace/Workspace.js(180,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/workspace/Workspace.js(188,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/workspace/Workspace.js(199,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/workspace/Workspace.js(204,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -node_modules/chrome-devtools-frontend/front_end/workspace/Workspace.js(243,25): error TS2352: Conversion of type 'this' to type 'Project' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first. -node_modules/chrome-devtools-frontend/front_end/workspace/Workspace.js(243,25): error TS2352: Conversion of type 'this' to type 'Project' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first. - Type 'ProjectStore' is missing the following properties from type 'Project': isServiceProject, requestMetadata, requestFileContent, canSetFileContent, and 14 more. -node_modules/chrome-devtools-frontend/front_end/workspace/Workspace.js(432,27): error TS2339: Property 'valuesArray' does not exist on type 'Map'. -node_modules/chrome-devtools-frontend/front_end/workspace_diff/WorkspaceDiff.js(38,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/workspace_diff/WorkspaceDiff.js(47,14): error TS7014: Function type, which lacks return-type annotation, implicitly has an 'any' return type. -node_modules/chrome-devtools-frontend/front_end/workspace_diff/WorkspaceDiff.js(301,36): error TS2339: Property '_instance' does not exist on type 'typeof WorkspaceDiff'. -node_modules/chrome-devtools-frontend/front_end/workspace_diff/WorkspaceDiff.js(302,33): error TS2339: Property '_instance' does not exist on type 'typeof WorkspaceDiff'. -node_modules/chrome-devtools-frontend/front_end/workspace_diff/WorkspaceDiff.js(303,38): error TS2339: Property '_instance' does not exist on type 'typeof WorkspaceDiff'. +node_modules/chrome-devtools-frontend/front_end/emulation/SensorsView.js(514,3): error TS4121: This member cannot have a JSDoc comment with an '@override' tag because its containing class 'ShowActionDelegate' does not extend another class. diff --git a/tests/baselines/reference/user/clone.log b/tests/baselines/reference/user/clone.log index 674dc96044275..d06f96e9ceffe 100644 --- a/tests/baselines/reference/user/clone.log +++ b/tests/baselines/reference/user/clone.log @@ -7,6 +7,7 @@ node_modules/clone/clone.js(176,14): error TS2532: Object is possibly 'undefined node_modules/clone/clone.js(186,16): error TS2403: Subsequent variable declarations must have the same type. Variable 'i' must be of type 'string', but here has type 'number'. node_modules/clone/clone.js(186,23): error TS2365: Operator '<' cannot be applied to types 'string' and 'number'. node_modules/clone/clone.js(186,52): error TS2356: An arithmetic operand must be of type 'any', 'number', 'bigint' or an enum type. +node_modules/clone/clone.js(255,35): error TS2774: This condition will always return true since this function is always defined. Did you mean to call it instead? diff --git a/tests/baselines/reference/user/create-react-app.log b/tests/baselines/reference/user/create-react-app.log index 3878f2a1b99b4..5064af07ebab8 100644 --- a/tests/baselines/reference/user/create-react-app.log +++ b/tests/baselines/reference/user/create-react-app.log @@ -1,12 +1,8 @@ Exit Code: 2 Standard output: test/fixtures/issue-5176-flow-class-properties/src/App.js(5,8): error TS8010: Type annotations can only be used in TypeScript files. -test/fixtures/issue-5176-flow-class-properties/src/App.js(5,13): error TS1005: ';' expected. -test/fixtures/webpack-message-formatting/src/AppBabel.js(6,8): error TS17008: JSX element 'div' has no corresponding closing tag. -test/fixtures/webpack-message-formatting/src/AppBabel.js(8,7): error TS17002: Expected corresponding JSX closing tag for 'span'. -test/fixtures/webpack-message-formatting/src/AppBabel.js(10,3): error TS1381: Unexpected token. Did you mean `{'}'}` or `}`? -test/fixtures/webpack-message-formatting/src/AppBabel.js(11,1): error TS1381: Unexpected token. Did you mean `{'}'}` or `}`? -test/fixtures/webpack-message-formatting/src/AppBabel.js(14,1): error TS1005: ' any; disable: () => void; enable: (namespaces: string) => void; enabled: (name: string) => boolean; humanize: { ...; }; ... 4 more ...; selectColor: (namespace: string) => string | number; }'. -node_modules/debug/src/common.js(51,60): error TS2339: Property 'colors' does not exist on type '{ (namespace: string): Function; debug: ...; default: ...; coerce: (val: any) => any; disable: () => void; enable: (namespaces: string) => void; enabled: (name: string) => boolean; humanize: { ...; }; ... 4 more ...; selectColor: (namespace: string) => string | number; }'. +node_modules/debug/src/browser.js(152,13): error TS2552: Cannot find name 'LocalStorage'. Did you mean 'localstorage'? +node_modules/debug/src/browser.js(177,45): error TS2571: Object is of type 'unknown'. +node_modules/debug/src/common.js(51,24): error TS2339: Property 'colors' does not exist on type '{ (namespace: string): Function; debug: ...; default: ...; coerce: (val: Mixed) => Mixed; disable: () => void; enable: (namespaces: string) => void; enabled: (name: string) => boolean; humanize: { ...; }; ... 4 more ...; selectColor: (namespace: string) => string | number; }'. +node_modules/debug/src/common.js(51,60): error TS2339: Property 'colors' does not exist on type '{ (namespace: string): Function; debug: ...; default: ...; coerce: (val: Mixed) => Mixed; disable: () => void; enable: (namespaces: string) => void; enabled: (name: string) => boolean; humanize: { ...; }; ... 4 more ...; selectColor: (namespace: string) => string | number; }'. node_modules/debug/src/common.js(80,12): error TS2339: Property 'diff' does not exist on type '{ (...args: any[]): void; namespace: string; enabled: boolean; useColors: any; color: string | number; destroy: () => boolean; extend: (namespace: any, delimiter: any) => Function; }'. node_modules/debug/src/common.js(81,12): error TS2339: Property 'prev' does not exist on type '{ (...args: any[]): void; namespace: string; enabled: boolean; useColors: any; color: string | number; destroy: () => boolean; extend: (namespace: any, delimiter: any) => Function; }'. node_modules/debug/src/common.js(82,12): error TS2339: Property 'curr' does not exist on type '{ (...args: any[]): void; namespace: string; enabled: boolean; useColors: any; color: string | number; destroy: () => boolean; extend: (namespace: any, delimiter: any) => Function; }'. -node_modules/debug/src/common.js(113,19): error TS2551: Property 'formatArgs' does not exist on type '{ (namespace: string): Function; debug: ...; default: ...; coerce: (val: any) => any; disable: () => void; enable: (namespaces: string) => void; enabled: (name: string) => boolean; humanize: { ...; }; ... 4 more ...; selectColor: (namespace: string) => string | number; }'. Did you mean 'formatters'? +node_modules/debug/src/common.js(113,19): error TS2551: Property 'formatArgs' does not exist on type '{ (namespace: string): Function; debug: ...; default: ...; coerce: (val: Mixed) => Mixed; disable: () => void; enable: (namespaces: string) => void; enabled: (name: string) => boolean; humanize: { ...; }; ... 4 more ...; selectColor: (namespace: string) => string | number; }'. Did you mean 'formatters'? node_modules/debug/src/common.js(114,24): error TS2339: Property 'log' does not exist on type '{ (...args: any[]): void; namespace: string; enabled: boolean; useColors: any; color: string | number; destroy: () => boolean; extend: (namespace: any, delimiter: any) => Function; }'. -node_modules/debug/src/common.js(114,43): error TS2339: Property 'log' does not exist on type '{ (namespace: string): Function; debug: ...; default: ...; coerce: (val: any) => any; disable: () => void; enable: (namespaces: string) => void; enabled: (name: string) => boolean; humanize: { ...; }; ... 4 more ...; selectColor: (namespace: string) => string | number; }'. -node_modules/debug/src/common.js(120,35): error TS2339: Property 'useColors' does not exist on type '{ (namespace: string): Function; debug: ...; default: ...; coerce: (val: any) => any; disable: () => void; enable: (namespaces: string) => void; enabled: (name: string) => boolean; humanize: { ...; }; ... 4 more ...; selectColor: (namespace: string) => string | number; }'. -node_modules/debug/src/common.js(127,28): error TS2339: Property 'init' does not exist on type '{ (namespace: string): Function; debug: ...; default: ...; coerce: (val: any) => any; disable: () => void; enable: (namespaces: string) => void; enabled: (name: string) => boolean; humanize: { ...; }; ... 4 more ...; selectColor: (namespace: string) => string | number; }'. -node_modules/debug/src/common.js(128,19): error TS2339: Property 'init' does not exist on type '{ (namespace: string): Function; debug: ...; default: ...; coerce: (val: any) => any; disable: () => void; enable: (namespaces: string) => void; enabled: (name: string) => boolean; humanize: { ...; }; ... 4 more ...; selectColor: (namespace: string) => string | number; }'. -node_modules/debug/src/common.js(159,17): error TS2339: Property 'save' does not exist on type '{ (namespace: string): Function; debug: ...; default: ...; coerce: (val: any) => any; disable: () => void; enable: (namespaces: string) => void; enabled: (name: string) => boolean; humanize: { ...; }; ... 4 more ...; selectColor: (namespace: string) => string | number; }'. +node_modules/debug/src/common.js(114,43): error TS2339: Property 'log' does not exist on type '{ (namespace: string): Function; debug: ...; default: ...; coerce: (val: Mixed) => Mixed; disable: () => void; enable: (namespaces: string) => void; enabled: (name: string) => boolean; humanize: { ...; }; ... 4 more ...; selectColor: (namespace: string) => string | number; }'. +node_modules/debug/src/common.js(120,35): error TS2339: Property 'useColors' does not exist on type '{ (namespace: string): Function; debug: ...; default: ...; coerce: (val: Mixed) => Mixed; disable: () => void; enable: (namespaces: string) => void; enabled: (name: string) => boolean; humanize: { ...; }; ... 4 more ...; selectColor: (namespace: string) => string | number; }'. +node_modules/debug/src/common.js(127,28): error TS2339: Property 'init' does not exist on type '{ (namespace: string): Function; debug: ...; default: ...; coerce: (val: Mixed) => Mixed; disable: () => void; enable: (namespaces: string) => void; enabled: (name: string) => boolean; humanize: { ...; }; ... 4 more ...; selectColor: (namespace: string) => string | number; }'. +node_modules/debug/src/common.js(128,19): error TS2339: Property 'init' does not exist on type '{ (namespace: string): Function; debug: ...; default: ...; coerce: (val: Mixed) => Mixed; disable: () => void; enable: (namespaces: string) => void; enabled: (name: string) => boolean; humanize: { ...; }; ... 4 more ...; selectColor: (namespace: string) => string | number; }'. +node_modules/debug/src/common.js(159,17): error TS2339: Property 'save' does not exist on type '{ (namespace: string): Function; debug: ...; default: ...; coerce: (val: Mixed) => Mixed; disable: () => void; enable: (namespaces: string) => void; enabled: (name: string) => boolean; humanize: { ...; }; ... 4 more ...; selectColor: (namespace: string) => string | number; }'. node_modules/debug/src/common.js(230,13): error TS2304: Cannot find name 'Mixed'. node_modules/debug/src/common.js(231,14): error TS2304: Cannot find name 'Mixed'. -node_modules/debug/src/common.js(244,34): error TS2339: Property 'load' does not exist on type '{ (namespace: string): Function; debug: ...; default: ...; coerce: (val: any) => any; disable: () => void; enable: (namespaces: string) => void; enabled: (name: string) => boolean; humanize: { ...; }; ... 4 more ...; selectColor: (namespace: string) => string | number; }'. +node_modules/debug/src/common.js(244,34): error TS2339: Property 'load' does not exist on type '{ (namespace: string): Function; debug: ...; default: ...; coerce: (val: Mixed) => Mixed; disable: () => void; enable: (namespaces: string) => void; enabled: (name: string) => boolean; humanize: { ...; }; ... 4 more ...; selectColor: (namespace: string) => string | number; }'. node_modules/debug/src/index.js(7,47): error TS2339: Property 'type' does not exist on type 'Process'. node_modules/debug/src/index.js(7,78): error TS2339: Property 'browser' does not exist on type 'Process'. node_modules/debug/src/index.js(7,106): error TS2339: Property '__nwjs' does not exist on type 'Process'. -node_modules/debug/src/node.js(24,1): error TS2323: Cannot redeclare exported variable 'colors'. -node_modules/debug/src/node.js(32,5): error TS2323: Cannot redeclare exported variable 'colors'. node_modules/debug/src/node.js(53,39): error TS2345: Argument of type 'string | undefined' is not assignable to parameter of type 'string'. Type 'undefined' is not assignable to type 'string'. -node_modules/debug/src/node.js(54,5): error TS2322: Type 'true' is not assignable to type 'string | undefined'. +node_modules/debug/src/node.js(54,5): error TS2322: Type 'boolean' is not assignable to type 'string'. node_modules/debug/src/node.js(55,48): error TS2345: Argument of type 'string | undefined' is not assignable to parameter of type 'string'. Type 'undefined' is not assignable to type 'string'. -node_modules/debug/src/node.js(56,5): error TS2322: Type 'false' is not assignable to type 'string | undefined'. +node_modules/debug/src/node.js(56,5): error TS2322: Type 'boolean' is not assignable to type 'string'. node_modules/debug/src/node.js(58,5): error TS2322: Type 'null' is not assignable to type 'string | undefined'. -node_modules/debug/src/node.js(60,5): error TS2322: Type 'number' is not assignable to type 'string | undefined'. +node_modules/debug/src/node.js(60,5): error TS2322: Type 'number' is not assignable to type 'string'. node_modules/debug/src/node.js(108,55): error TS2345: Argument of type 'IArguments' is not assignable to parameter of type '[format?: any, ...param: any[]]'. node_modules/debug/src/node.js(136,3): error TS2322: Type 'string | undefined' is not assignable to type 'string'. Type 'undefined' is not assignable to type 'string'. diff --git a/tests/baselines/reference/user/discord.js.log b/tests/baselines/reference/user/discord.js.log deleted file mode 100644 index 53e46907c28d5..0000000000000 --- a/tests/baselines/reference/user/discord.js.log +++ /dev/null @@ -1,23 +0,0 @@ -Exit Code: 2 -Standard output: -node_modules/discord.js/typings/index.d.ts(18,30): error TS7016: Could not find a declaration file for module 'ws'. '../../../tests/cases/user/discord.js/node_modules/ws/index.js' implicitly has an 'any' type. - Try `npm i --save-dev @types/ws` if it exists or add a new declaration (.d.ts) file containing `declare module 'ws';` -node_modules/discord.js/typings/index.d.ts(122,35): error TS2694: Namespace 'NodeJS' has no exported member 'Timeout'. -node_modules/discord.js/typings/index.d.ts(123,36): error TS2694: Namespace 'NodeJS' has no exported member 'Timeout'. -node_modules/discord.js/typings/index.d.ts(124,37): error TS2694: Namespace 'NodeJS' has no exported member 'Immediate'. -node_modules/discord.js/typings/index.d.ts(131,43): error TS2694: Namespace 'NodeJS' has no exported member 'Timeout'. -node_modules/discord.js/typings/index.d.ts(132,41): error TS2694: Namespace 'NodeJS' has no exported member 'Timeout'. -node_modules/discord.js/typings/index.d.ts(133,43): error TS2694: Namespace 'NodeJS' has no exported member 'Immediate'. -node_modules/discord.js/typings/index.d.ts(135,93): error TS2694: Namespace 'NodeJS' has no exported member 'Timeout'. -node_modules/discord.js/typings/index.d.ts(136,92): error TS2694: Namespace 'NodeJS' has no exported member 'Timeout'. -node_modules/discord.js/typings/index.d.ts(137,79): error TS2694: Namespace 'NodeJS' has no exported member 'Immediate'. -node_modules/discord.js/typings/index.d.ts(283,30): error TS2694: Namespace 'NodeJS' has no exported member 'Timeout'. -node_modules/discord.js/typings/index.d.ts(284,34): error TS2694: Namespace 'NodeJS' has no exported member 'Timeout'. -node_modules/discord.js/typings/index.d.ts(1805,103): error TS2694: Namespace 'NodeJS' has no exported member 'Timeout'. -node_modules/discord.js/typings/index.d.ts(1807,34): error TS2694: Namespace 'NodeJS' has no exported member 'Timeout'. -node_modules/discord.js/typings/index.d.ts(1810,34): error TS2694: Namespace 'NodeJS' has no exported member 'Timeout'. -node_modules/discord.js/typings/index.d.ts(3155,21): error TS2694: Namespace 'NodeJS' has no exported member 'Timeout'. - - - -Standard error: diff --git a/tests/baselines/reference/user/enhanced-resolve.log b/tests/baselines/reference/user/enhanced-resolve.log index b75f62638f53e..55f29d071f3eb 100644 --- a/tests/baselines/reference/user/enhanced-resolve.log +++ b/tests/baselines/reference/user/enhanced-resolve.log @@ -7,23 +7,23 @@ node_modules/enhanced-resolve/lib/CachedInputFileSystem.js(125,23): error TS2345 Type 'undefined' is not assignable to type 'Set'. node_modules/enhanced-resolve/lib/CachedInputFileSystem.js(127,18): error TS2769: No overload matches this call. Overload 1 of 2, '(intervalId: Timeout): void', gave the following error. - Argument of type 'Timeout | null' is not assignable to parameter of type 'Timeout'. + Argument of type 'Timer | null' is not assignable to parameter of type 'Timeout'. Type 'null' is not assignable to type 'Timeout'. - Overload 2 of 2, '(handle?: number | undefined): void', gave the following error. - Argument of type 'Timeout | null' is not assignable to parameter of type 'number | undefined'. + Overload 2 of 2, '(id?: number | undefined): void', gave the following error. + Argument of type 'Timer | null' is not assignable to parameter of type 'number | undefined'. Type 'null' is not assignable to type 'number | undefined'. node_modules/enhanced-resolve/lib/CachedInputFileSystem.js(143,18): error TS2769: No overload matches this call. Overload 1 of 2, '(intervalId: Timeout): void', gave the following error. - Argument of type 'Timeout | null' is not assignable to parameter of type 'Timeout'. + Argument of type 'Timer | null' is not assignable to parameter of type 'Timeout'. Type 'null' is not assignable to type 'Timeout'. - Overload 2 of 2, '(handle?: number | undefined): void', gave the following error. - Argument of type 'Timeout | null' is not assignable to parameter of type 'number | undefined'. + Overload 2 of 2, '(id?: number | undefined): void', gave the following error. + Argument of type 'Timer | null' is not assignable to parameter of type 'number | undefined'. node_modules/enhanced-resolve/lib/CachedInputFileSystem.js(162,18): error TS2769: No overload matches this call. Overload 1 of 2, '(intervalId: Timeout): void', gave the following error. - Argument of type 'Timeout | null' is not assignable to parameter of type 'Timeout'. + Argument of type 'Timer | null' is not assignable to parameter of type 'Timeout'. Type 'null' is not assignable to type 'Timeout'. - Overload 2 of 2, '(handle?: number | undefined): void', gave the following error. - Argument of type 'Timeout | null' is not assignable to parameter of type 'number | undefined'. + Overload 2 of 2, '(id?: number | undefined): void', gave the following error. + Argument of type 'Timer | null' is not assignable to parameter of type 'number | undefined'. node_modules/enhanced-resolve/lib/CachedInputFileSystem.js(192,20): error TS2322: Type 'null' is not assignable to type '(path: any, callback: any) => void'. node_modules/enhanced-resolve/lib/CachedInputFileSystem.js(197,24): error TS2322: Type 'null' is not assignable to type '(path: any) => any'. node_modules/enhanced-resolve/lib/CachedInputFileSystem.js(202,23): error TS2322: Type 'null' is not assignable to type '(path: any, callback: any) => void'. @@ -41,9 +41,11 @@ node_modules/enhanced-resolve/lib/Resolver.js(210,13): error TS2339: Property 'd node_modules/enhanced-resolve/lib/Resolver.js(211,13): error TS2339: Property 'missing' does not exist on type 'Error'. node_modules/enhanced-resolve/lib/Resolver.js(262,20): error TS2339: Property 'recursion' does not exist on type 'Error'. node_modules/enhanced-resolve/lib/RootPlugin.js(9,36): error TS2694: Namespace 'Resolver' has no exported member 'ResolveStepHook'. + node_modules/enhanced-resolve/lib/concord.js(80,30): error TS2531: Object is possibly 'null'. node_modules/enhanced-resolve/lib/concord.js(81,17): error TS2531: Object is possibly 'null'. - +node_modules/enhanced-resolve/lib/concord.js(149,24): error TS2339: Property 'replace' does not exist on type 'never'. +node_modules/enhanced-resolve/lib/concord.js(188,17): error TS2339: Property 'replace' does not exist on type 'never'. Standard error: diff --git a/tests/baselines/reference/user/follow-redirects.log b/tests/baselines/reference/user/follow-redirects.log index 0299a60a4daad..4614e8cfe4414 100644 --- a/tests/baselines/reference/user/follow-redirects.log +++ b/tests/baselines/reference/user/follow-redirects.log @@ -1,32 +1,41 @@ Exit Code: 2 Standard output: -node_modules/follow-redirects/index.js(38,17): error TS2345: Argument of type 'this' is not assignable to parameter of type 'Writable'. +node_modules/follow-redirects/index.js(39,17): error TS2345: Argument of type 'this' is not assignable to parameter of type 'Writable'. Type 'RedirectableRequest' is missing the following properties from type 'Writable': writable, writableEnded, writableFinished, writableHighWaterMark, and 27 more. -node_modules/follow-redirects/index.js(50,10): error TS2339: Property 'on' does not exist on type 'RedirectableRequest'. -node_modules/follow-redirects/index.js(71,8): error TS2339: Property 'emit' does not exist on type 'RedirectableRequest'. -node_modules/follow-redirects/index.js(72,8): error TS2339: Property 'removeAllListeners' does not exist on type 'RedirectableRequest'. -node_modules/follow-redirects/index.js(107,10): error TS2339: Property 'emit' does not exist on type 'RedirectableRequest'. -node_modules/follow-redirects/index.js(156,10): error TS2339: Property 'on' does not exist on type 'RedirectableRequest'. -node_modules/follow-redirects/index.js(161,14): error TS2339: Property '_timeout' does not exist on type 'RedirectableRequest'. -node_modules/follow-redirects/index.js(162,25): error TS2339: Property '_timeout' does not exist on type 'RedirectableRequest'. -node_modules/follow-redirects/index.js(164,10): error TS2339: Property '_timeout' does not exist on type 'RedirectableRequest'. -node_modules/follow-redirects/index.js(165,12): error TS2339: Property 'emit' does not exist on type 'RedirectableRequest'. -node_modules/follow-redirects/index.js(174,12): error TS2339: Property 'removeListener' does not exist on type 'RedirectableRequest'. -node_modules/follow-redirects/index.js(182,12): error TS2339: Property 'socket' does not exist on type 'RedirectableRequest'. -node_modules/follow-redirects/index.js(189,8): error TS2339: Property 'once' does not exist on type 'RedirectableRequest'. -node_modules/follow-redirects/index.js(190,8): error TS2339: Property 'once' does not exist on type 'RedirectableRequest'. -node_modules/follow-redirects/index.js(249,10): error TS2339: Property 'emit' does not exist on type 'RedirectableRequest'. -node_modules/follow-redirects/index.js(288,16): error TS2339: Property 'emit' does not exist on type 'RedirectableRequest'. -node_modules/follow-redirects/index.js(338,12): error TS2339: Property 'emit' does not exist on type 'RedirectableRequest'. -node_modules/follow-redirects/index.js(360,17): error TS2345: Argument of type 'string | undefined' is not assignable to parameter of type 'string'. +node_modules/follow-redirects/index.js(51,10): error TS2339: Property 'on' does not exist on type 'RedirectableRequest'. +node_modules/follow-redirects/index.js(67,8): error TS2339: Property 'emit' does not exist on type 'RedirectableRequest'. +node_modules/follow-redirects/index.js(102,10): error TS2339: Property 'emit' does not exist on type 'RedirectableRequest'. +node_modules/follow-redirects/index.js(160,14): error TS2339: Property '_timeout' does not exist on type 'RedirectableRequest'. +node_modules/follow-redirects/index.js(161,25): error TS2339: Property '_timeout' does not exist on type 'RedirectableRequest'. +node_modules/follow-redirects/index.js(163,10): error TS2339: Property '_timeout' does not exist on type 'RedirectableRequest'. +node_modules/follow-redirects/index.js(164,12): error TS2339: Property 'emit' does not exist on type 'RedirectableRequest'. +node_modules/follow-redirects/index.js(173,14): error TS2339: Property '_timeout' does not exist on type 'RedirectableRequest'. +node_modules/follow-redirects/index.js(174,25): error TS2339: Property '_timeout' does not exist on type 'RedirectableRequest'. +node_modules/follow-redirects/index.js(175,12): error TS2339: Property '_timeout' does not exist on type 'RedirectableRequest'. +node_modules/follow-redirects/index.js(179,10): error TS2339: Property 'removeListener' does not exist on type 'RedirectableRequest'. +node_modules/follow-redirects/index.js(180,10): error TS2339: Property 'removeListener' does not exist on type 'RedirectableRequest'. +node_modules/follow-redirects/index.js(181,10): error TS2339: Property 'removeListener' does not exist on type 'RedirectableRequest'. +node_modules/follow-redirects/index.js(183,12): error TS2339: Property 'removeListener' does not exist on type 'RedirectableRequest'. +node_modules/follow-redirects/index.js(185,15): error TS2339: Property 'socket' does not exist on type 'RedirectableRequest'. +node_modules/follow-redirects/index.js(192,10): error TS2339: Property 'on' does not exist on type 'RedirectableRequest'. +node_modules/follow-redirects/index.js(196,12): error TS2339: Property 'socket' does not exist on type 'RedirectableRequest'. +node_modules/follow-redirects/index.js(197,21): error TS2339: Property 'socket' does not exist on type 'RedirectableRequest'. +node_modules/follow-redirects/index.js(204,8): error TS2339: Property 'on' does not exist on type 'RedirectableRequest'. +node_modules/follow-redirects/index.js(205,8): error TS2339: Property 'on' does not exist on type 'RedirectableRequest'. +node_modules/follow-redirects/index.js(206,8): error TS2339: Property 'on' does not exist on type 'RedirectableRequest'. +node_modules/follow-redirects/index.js(207,8): error TS2339: Property 'on' does not exist on type 'RedirectableRequest'. +node_modules/follow-redirects/index.js(266,10): error TS2339: Property 'emit' does not exist on type 'RedirectableRequest'. +node_modules/follow-redirects/index.js(302,16): error TS2339: Property 'emit' does not exist on type 'RedirectableRequest'. +node_modules/follow-redirects/index.js(346,10): error TS2339: Property 'emit' does not exist on type 'RedirectableRequest'. +node_modules/follow-redirects/index.js(361,10): error TS2339: Property 'emit' does not exist on type 'RedirectableRequest'. +node_modules/follow-redirects/index.js(385,35): error TS2345: Argument of type 'string | undefined' is not assignable to parameter of type 'string'. Type 'undefined' is not assignable to type 'string'. -node_modules/follow-redirects/index.js(363,35): error TS2345: Argument of type 'string | undefined' is not assignable to parameter of type 'string'. +node_modules/follow-redirects/index.js(393,31): error TS2345: Argument of type 'string | undefined' is not assignable to parameter of type 'string'. Type 'undefined' is not assignable to type 'string'. -node_modules/follow-redirects/index.js(381,14): error TS2339: Property 'emit' does not exist on type 'RedirectableRequest'. -node_modules/follow-redirects/index.js(393,13): error TS2339: Property 'cause' does not exist on type 'CustomError'. -node_modules/follow-redirects/index.js(394,12): error TS2339: Property 'emit' does not exist on type 'RedirectableRequest'. -node_modules/follow-redirects/index.js(401,10): error TS2339: Property 'emit' does not exist on type 'RedirectableRequest'. -node_modules/follow-redirects/index.js(519,25): error TS2339: Property 'code' does not exist on type 'Error'. +node_modules/follow-redirects/index.js(396,10): error TS2339: Property 'emit' does not exist on type 'RedirectableRequest'. +node_modules/follow-redirects/index.js(422,12): error TS2339: Property 'emit' does not exist on type 'RedirectableRequest'. +node_modules/follow-redirects/index.js(433,10): error TS2339: Property 'emit' does not exist on type 'RedirectableRequest'. +node_modules/follow-redirects/index.js(555,25): error TS2339: Property 'code' does not exist on type 'Error'. diff --git a/tests/baselines/reference/user/fp-ts.log b/tests/baselines/reference/user/fp-ts.log deleted file mode 100644 index 0b2afad24d5ba..0000000000000 --- a/tests/baselines/reference/user/fp-ts.log +++ /dev/null @@ -1,40 +0,0 @@ -Exit Code: 134 -Standard output: -Security context: 0x3dea4659d9f1 - 2: replace [0x3dea4658f591](this=0x03d0e4277831 ,0x03d0e4277891 >,0x03d0e42778c9 ) - 3: recursiveTypeRelatedTo(aka recursiveTypeRelatedTo) [0x3d0e4276bd9] [../../../built/local/tsc.js:~60789] [pc=0x1d8e6d0052c9](this=0x026cc8702... - - -==== JS stack trace ========================================= - - 0: ExitFrame [pc: 0x1d8e6bdcfc5d] - 1: StubFrame [pc: 0x1d8e6bdc6db0] -<--- JS stacktrace ---> - -[10593:0x40cb7d0] 46251 ms: Mark-sweep 1351.3 (1446.4) -> 1338.0 (1447.9) MB, 1143.3 / 0.0 ms (average mu = 0.207, current mu = 0.203) allocation failure scavenge might not succeed - - -[10593:0x40cb7d0] 44816 ms: Mark-sweep 1350.1 (1444.9) -> 1336.4 (1445.9) MB, 1217.8 / 0.0 ms (average mu = 0.211, current mu = 0.155) allocation failure scavenge might not succeed -<--- Last few GCs ---> - - - - -Standard error: -FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory - -Writing Node.js report to file: report.20210406.144020.10593.0.001.json -Node.js report completed - 1: 0x95bd00 node::Abort() [node] - 2: 0x95cc46 node::OnFatalError(char const*, char const*) [node] - 3: 0xb3dbde v8::Utils::ReportOOMFailure(v8::internal::Isolate*, char const*, bool) [node] - 4: 0xb3de14 v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, bool) [node] - 5: 0xf3ce52 [node] - 6: 0xf3cf58 v8::internal::Heap::CheckIneffectiveMarkCompact(unsigned long, double) [node] - 7: 0xf49678 v8::internal::Heap::PerformGarbageCollection(v8::internal::GarbageCollector, v8::GCCallbackFlags) [node] - 8: 0xf4a18b v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) [node] - 9: 0xf4cec1 v8::internal::Heap::AllocateRawWithRetryOrFail(int, v8::internal::AllocationSpace, v8::internal::AllocationAlignment) [node] -10: 0xf170f4 v8::internal::Factory::NewFillerObject(int, bool, v8::internal::AllocationSpace) [node] -11: 0x11cd3fe v8::internal::Runtime_AllocateInNewSpace(int, v8::internal::Object**, v8::internal::Isolate*) [node] -12: 0x1d8e6bdcfc5d -Aborted (core dumped) diff --git a/tests/baselines/reference/user/graceful-fs.log b/tests/baselines/reference/user/graceful-fs.log index 988ffc5e5921a..e21762fb46fd6 100644 --- a/tests/baselines/reference/user/graceful-fs.log +++ b/tests/baselines/reference/user/graceful-fs.log @@ -4,21 +4,23 @@ node_modules/graceful-fs/clone.js(16,9): error TS2403: Subsequent variable decla node_modules/graceful-fs/clone.js(19,38): error TS2345: Argument of type 'PropertyDescriptor | undefined' is not assignable to parameter of type 'PropertyDescriptor & ThisType'. Type 'undefined' is not assignable to type 'PropertyDescriptor & ThisType'. Type 'undefined' is not assignable to type 'PropertyDescriptor'. -node_modules/graceful-fs/graceful-fs.js(34,3): error TS2322: Type '(msg: string, ...param: any[]) => void' is not assignable to type '() => void'. +node_modules/graceful-fs/graceful-fs.js(34,3): error TS2322: Type 'DebugLogger' is not assignable to type '() => void'. node_modules/graceful-fs/graceful-fs.js(37,37): error TS2345: Argument of type 'IArguments' is not assignable to parameter of type '[format?: any, ...param: any[]]'. node_modules/graceful-fs/graceful-fs.js(52,3): error TS2741: Property '__promisify__' is missing in type '(fd: any, cb: any) => void' but required in type 'typeof close'. node_modules/graceful-fs/graceful-fs.js(74,30): error TS2345: Argument of type 'IArguments' is not assignable to parameter of type '[fd: number]'. node_modules/graceful-fs/graceful-fs.js(86,13): error TS2554: Expected 0 arguments, but got 1. node_modules/graceful-fs/graceful-fs.js(97,54): error TS2339: Property '__patched' does not exist on type 'typeof import("fs")'. node_modules/graceful-fs/graceful-fs.js(99,8): error TS2339: Property '__patched' does not exist on type 'typeof import("fs")'. -node_modules/graceful-fs/graceful-fs.js(226,5): error TS2629: Cannot assign to 'ReadStream' because it is a class. -node_modules/graceful-fs/graceful-fs.js(227,5): error TS2629: Cannot assign to 'WriteStream' because it is a class. -node_modules/graceful-fs/graceful-fs.js(247,7): error TS2629: Cannot assign to 'ReadStream' because it is a class. -node_modules/graceful-fs/graceful-fs.js(257,7): error TS2629: Cannot assign to 'WriteStream' because it is a class. -node_modules/graceful-fs/graceful-fs.js(291,68): error TS2345: Argument of type 'IArguments' is not assignable to parameter of type '[any?, any?, ...any[]]'. -node_modules/graceful-fs/graceful-fs.js(314,70): error TS2345: Argument of type 'IArguments' is not assignable to parameter of type '[any?, any?, ...any[]]'. -node_modules/graceful-fs/graceful-fs.js(363,9): error TS2554: Expected 0 arguments, but got 3. -node_modules/graceful-fs/graceful-fs.js(370,11): error TS2554: Expected 0 arguments, but got 3. +node_modules/graceful-fs/graceful-fs.js(217,5): error TS2629: Cannot assign to 'ReadStream' because it is a class. +node_modules/graceful-fs/graceful-fs.js(218,5): error TS2629: Cannot assign to 'WriteStream' because it is a class. +node_modules/graceful-fs/graceful-fs.js(238,7): error TS2629: Cannot assign to 'ReadStream' because it is a class. +node_modules/graceful-fs/graceful-fs.js(248,7): error TS2629: Cannot assign to 'WriteStream' because it is a class. +node_modules/graceful-fs/graceful-fs.js(282,68): error TS2345: Argument of type 'IArguments' is not assignable to parameter of type '[any?, any?, ...any[]]'. +node_modules/graceful-fs/graceful-fs.js(305,70): error TS2345: Argument of type 'IArguments' is not assignable to parameter of type '[any?, any?, ...any[]]'. +node_modules/graceful-fs/graceful-fs.js(353,9): error TS2554: Expected 0 arguments, but got 3. +node_modules/graceful-fs/graceful-fs.js(397,11): error TS2554: Expected 0 arguments, but got 3. +node_modules/graceful-fs/graceful-fs.js(401,11): error TS2554: Expected 0 arguments, but got 3. +node_modules/graceful-fs/graceful-fs.js(416,13): error TS2554: Expected 0 arguments, but got 3. node_modules/graceful-fs/legacy-streams.js(14,17): error TS2345: Argument of type 'this' is not assignable to parameter of type 'Stream'. Type 'ReadStream' is missing the following properties from type 'Stream': pipe, addListener, on, once, and 12 more. node_modules/graceful-fs/legacy-streams.js(36,14): error TS2339: Property 'encoding' does not exist on type 'ReadStream'. @@ -39,6 +41,7 @@ node_modules/graceful-fs/legacy-streams.js(99,36): error TS2339: Property 'start node_modules/graceful-fs/legacy-streams.js(102,16): error TS2339: Property 'start' does not exist on type 'WriteStream'. node_modules/graceful-fs/legacy-streams.js(106,23): error TS2339: Property 'start' does not exist on type 'WriteStream'. node_modules/graceful-fs/legacy-streams.js(115,12): error TS2339: Property 'flush' does not exist on type 'WriteStream'. +node_modules/graceful-fs/polyfills.js(149,13): error TS2571: Object is of type 'unknown'. diff --git a/tests/baselines/reference/user/lodash.log b/tests/baselines/reference/user/lodash.log index efd42be369176..4f90b6bf7800e 100644 --- a/tests/baselines/reference/user/lodash.log +++ b/tests/baselines/reference/user/lodash.log @@ -44,10 +44,9 @@ node_modules/lodash/_baseClone.js(94,16): error TS2362: The left-hand side of an node_modules/lodash/_baseClone.js(116,33): error TS2345: Argument of type 'number' is not assignable to parameter of type 'boolean | undefined'. node_modules/lodash/_baseClone.js(129,43): error TS2345: Argument of type 'number' is not assignable to parameter of type 'boolean | undefined'. node_modules/lodash/_baseDifference.js(37,5): error TS2322: Type '(array?: any[] | undefined, value: any, comparator: Function) => boolean' is not assignable to type '(array?: any[] | undefined, value: any) => boolean'. -node_modules/lodash/_baseDifference.js(43,5): error TS2740: Type 'SetCache' is missing the following properties from type 'any[]': length, pop, concat, join, and 27 more. +node_modules/lodash/_baseDifference.js(43,5): error TS2740: Type 'SetCache' is missing the following properties from type 'any[]': length, pop, concat, join, and 28 more. node_modules/lodash/_baseDifference.js(60,42): error TS2554: Expected 2 arguments, but got 3. node_modules/lodash/_baseFlatten.js(19,29): error TS2322: Type '(value: any) => boolean' is not assignable to type 'boolean | undefined'. - Type '(value: any) => boolean' is not assignable to type 'true'. node_modules/lodash/_baseFlatten.js(24,22): error TS2349: This expression is not callable. Type 'Boolean' has no call signatures. node_modules/lodash/_baseFlatten.js(24,22): error TS2532: Object is possibly 'undefined'. @@ -55,9 +54,8 @@ node_modules/lodash/_baseFlatten.js(24,22): error TS2722: Cannot invoke an objec node_modules/lodash/_baseHas.js(15,26): error TS1016: A required parameter cannot follow an optional parameter. node_modules/lodash/_baseHas.js(16,56): error TS2345: Argument of type 'string | any[]' is not assignable to parameter of type 'PropertyKey'. Type 'any[]' is not assignable to type 'PropertyKey'. - Type 'any[]' is not assignable to type 'string'. node_modules/lodash/_baseHasIn.js(9,28): error TS1016: A required parameter cannot follow an optional parameter. -node_modules/lodash/_baseHasIn.js(10,28): error TS2360: The left-hand side of an 'in' expression must be of type 'any', 'string', 'number', or 'symbol'. +node_modules/lodash/_baseHasIn.js(10,28): error TS2360: The left-hand side of an 'in' expression must be a private identifier or of type 'any', 'string', 'number', or 'symbol'. node_modules/lodash/_baseIntersection.js(53,40): error TS2345: Argument of type 'Function | undefined' is not assignable to parameter of type 'Function'. Type 'undefined' is not assignable to type 'Function'. node_modules/lodash/_baseIntersection.js(60,54): error TS2345: Argument of type 'Function | undefined' is not assignable to parameter of type 'Function'. @@ -173,7 +171,7 @@ node_modules/lodash/_memoizeCapped.js(22,22): error TS2339: Property 'cache' doe node_modules/lodash/_mergeData.js(60,26): error TS2554: Expected 4 arguments, but got 3. node_modules/lodash/_mergeData.js(67,26): error TS2554: Expected 4 arguments, but got 3. node_modules/lodash/_nodeUtil.js(7,80): error TS2339: Property 'nodeType' does not exist on type '{ exports: any; }'. -node_modules/lodash/_nodeUtil.js(13,47): error TS2339: Property 'process' does not exist on type 'false | (Global & typeof globalThis)'. +node_modules/lodash/_nodeUtil.js(13,47): error TS2339: Property 'process' does not exist on type 'false | typeof globalThis'. Property 'process' does not exist on type 'false'. node_modules/lodash/_overRest.js(15,32): error TS1016: A required parameter cannot follow an optional parameter. node_modules/lodash/_overRest.js(20,42): error TS2532: Object is possibly 'undefined'. @@ -182,12 +180,21 @@ node_modules/lodash/_overRest.js(27,27): error TS2532: Object is possibly 'undef node_modules/lodash/_overRest.js(28,22): error TS2532: Object is possibly 'undefined'. node_modules/lodash/_overRest.js(31,15): error TS2538: Type 'undefined' cannot be used as an index type. node_modules/lodash/_stackDelete.js(11,19): error TS2339: Property '__data__' does not exist on type 'stackDelete'. -node_modules/lodash/_stackSet.js(21,22): error TS2339: Property '__data__' does not exist on type 'ListCache'. -node_modules/lodash/_stackSet.js(24,26): error TS2339: Property 'size' does not exist on type 'ListCache'. +node_modules/lodash/_stackSet.js(20,7): error TS2358: The left-hand side of an 'instanceof' expression must be of type 'any', an object type or a type parameter. +node_modules/lodash/_stackSet.js(21,22): error TS2339: Property '__data__' does not exist on type 'never'. +node_modules/lodash/_stackSet.js(24,26): error TS2339: Property 'size' does not exist on type 'never'. +node_modules/lodash/_stackSet.js(27,5): error TS2322: Type 'MapCache' is not assignable to type 'undefined'. +node_modules/lodash/_stackSet.js(29,3): error TS2532: Object is possibly 'undefined'. +node_modules/lodash/_stackSet.js(30,15): error TS2532: Object is possibly 'undefined'. node_modules/lodash/_unicodeWords.js(62,20): error TS8024: JSDoc '@param' tag has name 'The', but there is no parameter with that name. node_modules/lodash/_updateWrapDetails.js(34,5): error TS1223: 'returns' tag already specified. node_modules/lodash/_wrapperClone.js(14,20): error TS2339: Property 'clone' does not exist on type 'LazyWrapper'. node_modules/lodash/ary.js(23,23): error TS1016: A required parameter cannot follow an optional parameter. +node_modules/lodash/attempt.js(31,39): error TS2769: No overload matches this call. + Overload 1 of 2, '(message?: string | undefined, options?: ErrorOptions | undefined): Error', gave the following error. + Argument of type 'unknown' is not assignable to parameter of type 'string | undefined'. + Overload 2 of 2, '(message?: string | undefined): Error', gave the following error. + Argument of type 'unknown' is not assignable to parameter of type 'string | undefined'. node_modules/lodash/before.js(34,7): error TS2322: Type 'undefined' is not assignable to type 'Function'. node_modules/lodash/bind.js(51,55): error TS2454: Variable 'holders' is used before being assigned. node_modules/lodash/bind.js(55,6): error TS2339: Property 'placeholder' does not exist on type 'Function'. @@ -206,7 +213,6 @@ node_modules/lodash/cloneWith.js(39,27): error TS2345: Argument of type 'number' node_modules/lodash/conforms.js(32,41): error TS2345: Argument of type 'number' is not assignable to parameter of type 'boolean'. node_modules/lodash/core.js(77,82): error TS2339: Property 'nodeType' does not exist on type 'NodeModule'. node_modules/lodash/core.js(540,31): error TS2322: Type '(value: any) => boolean' is not assignable to type 'boolean | undefined'. - Type '(value: any) => boolean' is not assignable to type 'true'. node_modules/lodash/core.js(545,24): error TS2349: This expression is not callable. Type 'Boolean' has no call signatures. node_modules/lodash/core.js(545,24): error TS2532: Object is possibly 'undefined'. @@ -262,7 +268,7 @@ node_modules/lodash/core.js(3440,41): error TS2769: No overload matches this cal node_modules/lodash/core.js(3585,26): error TS1016: A required parameter cannot follow an optional parameter. node_modules/lodash/core.js(3596,51): error TS2532: Object is possibly 'undefined'. node_modules/lodash/core.js(3613,63): error TS2345: Argument of type 'IArguments' is not assignable to parameter of type 'any[]'. - Type 'IArguments' is missing the following properties from type 'any[]': pop, push, concat, join, and 26 more. + Type 'IArguments' is missing the following properties from type 'any[]': pop, push, concat, join, and 27 more. node_modules/lodash/core.js(3837,33): error TS2339: Property '__chain__' does not exist on type 'lodash'. node_modules/lodash/core.js(3853,14): error TS2304: Cannot find name 'define'. node_modules/lodash/core.js(3853,45): error TS2304: Cannot find name 'define'. @@ -283,12 +289,9 @@ node_modules/lodash/deburr.js(42,44): error TS2769: No overload matches this cal The last overload gave the following error. Argument of type 'Function' is not assignable to parameter of type '(substring: string, ...args: any[]) => string'. node_modules/lodash/difference.js(29,52): error TS2345: Argument of type '(value: any) => boolean' is not assignable to parameter of type 'boolean | undefined'. - Type '(value: any) => boolean' is not assignable to type 'true'. node_modules/lodash/differenceBy.js(40,52): error TS2345: Argument of type '(value: any) => boolean' is not assignable to parameter of type 'boolean | undefined'. - Type '(value: any) => boolean' is not assignable to type 'true'. node_modules/lodash/differenceBy.js(40,101): error TS2554: Expected 0-1 arguments, but got 2. node_modules/lodash/differenceWith.js(36,52): error TS2345: Argument of type '(value: any) => boolean' is not assignable to parameter of type 'boolean | undefined'. - Type '(value: any) => boolean' is not assignable to type 'true'. node_modules/lodash/drop.js(29,25): error TS1016: A required parameter cannot follow an optional parameter. node_modules/lodash/dropRight.js(29,30): error TS1016: A required parameter cannot follow an optional parameter. node_modules/lodash/dropRightWhile.js(41,48): error TS2554: Expected 0-1 arguments, but got 2. @@ -446,12 +449,9 @@ node_modules/lodash/unescape.js(30,37): error TS2769: No overload matches this c The last overload gave the following error. Argument of type 'Function' is not assignable to parameter of type '(substring: string, ...args: any[]) => string'. node_modules/lodash/union.js(23,42): error TS2345: Argument of type '(value: any) => boolean' is not assignable to parameter of type 'boolean | undefined'. - Type '(value: any) => boolean' is not assignable to type 'true'. node_modules/lodash/unionBy.js(36,42): error TS2345: Argument of type '(value: any) => boolean' is not assignable to parameter of type 'boolean | undefined'. - Type '(value: any) => boolean' is not assignable to type 'true'. node_modules/lodash/unionBy.js(36,91): error TS2554: Expected 0-1 arguments, but got 2. node_modules/lodash/unionWith.js(31,42): error TS2345: Argument of type '(value: any) => boolean' is not assignable to parameter of type 'boolean | undefined'. - Type '(value: any) => boolean' is not assignable to type 'true'. node_modules/lodash/uniqBy.js(28,75): error TS2554: Expected 0-1 arguments, but got 2. node_modules/lodash/words.js(25,33): error TS1016: A required parameter cannot follow an optional parameter. node_modules/lodash/wrapperAt.js(34,17): error TS2339: Property 'slice' does not exist on type 'LazyWrapper'. diff --git a/tests/baselines/reference/user/minimatch.log b/tests/baselines/reference/user/minimatch.log index cf9ffb8986e0c..2ce1739e59c66 100644 --- a/tests/baselines/reference/user/minimatch.log +++ b/tests/baselines/reference/user/minimatch.log @@ -1,52 +1,59 @@ Exit Code: 2 Standard output: -node_modules/minimatch/minimatch.js(77,17): error TS2551: Property 'minimatch' does not exist on type 'typeof minimatch'. Did you mean 'Minimatch'? -node_modules/minimatch/minimatch.js(144,12): error TS2339: Property '_made' does not exist on type 'make'. -node_modules/minimatch/minimatch.js(146,22): error TS2339: Property 'pattern' does not exist on type 'make'. -node_modules/minimatch/minimatch.js(147,22): error TS2339: Property 'options' does not exist on type 'make'. -node_modules/minimatch/minimatch.js(160,8): error TS2339: Property 'parseNegate' does not exist on type 'make'. -node_modules/minimatch/minimatch.js(163,33): error TS2339: Property 'braceExpand' does not exist on type 'make'. -node_modules/minimatch/minimatch.js(167,3): error TS2722: Cannot invoke an object which is possibly 'undefined'. -node_modules/minimatch/minimatch.js(167,19): error TS2339: Property 'pattern' does not exist on type 'make'. -node_modules/minimatch/minimatch.js(178,3): error TS2722: Cannot invoke an object which is possibly 'undefined'. -node_modules/minimatch/minimatch.js(178,19): error TS2339: Property 'pattern' does not exist on type 'make'. -node_modules/minimatch/minimatch.js(185,3): error TS2722: Cannot invoke an object which is possibly 'undefined'. -node_modules/minimatch/minimatch.js(185,19): error TS2339: Property 'pattern' does not exist on type 'make'. -node_modules/minimatch/minimatch.js(192,3): error TS2722: Cannot invoke an object which is possibly 'undefined'. -node_modules/minimatch/minimatch.js(192,19): error TS2339: Property 'pattern' does not exist on type 'make'. -node_modules/minimatch/minimatch.js(201,22): error TS2339: Property 'options' does not exist on type 'parseNegate'. -node_modules/minimatch/minimatch.js(410,15): error TS2532: Object is possibly 'undefined'. -node_modules/minimatch/minimatch.js(411,13): error TS2532: Object is possibly 'undefined'. -node_modules/minimatch/minimatch.js(414,9): error TS2532: Object is possibly 'undefined'. -node_modules/minimatch/minimatch.js(414,12): error TS2339: Property 'reEnd' does not exist on type '{ type: any; start: number; reStart: number; open: any; close: any; }'. -node_modules/minimatch/minimatch.js(572,32): error TS2532: Object is possibly 'undefined'. -node_modules/minimatch/minimatch.js(573,28): error TS2532: Object is possibly 'undefined'. -node_modules/minimatch/minimatch.js(573,40): error TS2532: Object is possibly 'undefined'. -node_modules/minimatch/minimatch.js(573,43): error TS2339: Property 'reEnd' does not exist on type '{ type: any; start: number; reStart: number; open: any; close: any; }'. -node_modules/minimatch/minimatch.js(574,27): error TS2532: Object is possibly 'undefined'. -node_modules/minimatch/minimatch.js(574,30): error TS2339: Property 'reEnd' does not exist on type '{ type: any; start: number; reStart: number; open: any; close: any; }'. -node_modules/minimatch/minimatch.js(574,41): error TS2532: Object is possibly 'undefined'. -node_modules/minimatch/minimatch.js(574,44): error TS2339: Property 'reEnd' does not exist on type '{ type: any; start: number; reStart: number; open: any; close: any; }'. -node_modules/minimatch/minimatch.js(575,28): error TS2532: Object is possibly 'undefined'. -node_modules/minimatch/minimatch.js(575,31): error TS2339: Property 'reEnd' does not exist on type '{ type: any; start: number; reStart: number; open: any; close: any; }'. -node_modules/minimatch/minimatch.js(631,10): error TS2339: Property '_glob' does not exist on type 'RegExp'. -node_modules/minimatch/minimatch.js(632,10): error TS2339: Property '_src' does not exist on type 'RegExp'. -node_modules/minimatch/minimatch.js(651,18): error TS2339: Property 'set' does not exist on type 'makeRe'. -node_modules/minimatch/minimatch.js(657,22): error TS2339: Property 'options' does not exist on type 'makeRe'. -node_modules/minimatch/minimatch.js(677,12): error TS2339: Property 'negate' does not exist on type 'makeRe'. -node_modules/minimatch/minimatch.js(763,14): error TS2554: Expected 0 arguments, but got 2. -node_modules/minimatch/minimatch.js(766,14): error TS2554: Expected 0 arguments, but got 3. -node_modules/minimatch/minimatch.js(774,16): error TS2554: Expected 0 arguments, but got 1. -node_modules/minimatch/minimatch.js(778,16): error TS2554: Expected 0 arguments, but got 3. -node_modules/minimatch/minimatch.js(785,18): error TS2554: Expected 0 arguments, but got 2. -node_modules/minimatch/minimatch.js(812,20): error TS2554: Expected 0 arguments, but got 1. -node_modules/minimatch/minimatch.js(830,20): error TS2554: Expected 0 arguments, but got 6. -node_modules/minimatch/minimatch.js(834,22): error TS2554: Expected 0 arguments, but got 4. -node_modules/minimatch/minimatch.js(842,24): error TS2554: Expected 0 arguments, but got 5. -node_modules/minimatch/minimatch.js(847,22): error TS2554: Expected 0 arguments, but got 1. -node_modules/minimatch/minimatch.js(857,20): error TS2554: Expected 0 arguments, but got 5. -node_modules/minimatch/minimatch.js(873,18): error TS2554: Expected 0 arguments, but got 4. -node_modules/minimatch/minimatch.js(876,18): error TS2554: Expected 0 arguments, but got 4. +node_modules/minimatch/minimatch.js(161,22): error TS2339: Property 'pattern' does not exist on type 'make'. +node_modules/minimatch/minimatch.js(162,22): error TS2339: Property 'options' does not exist on type 'make'. +node_modules/minimatch/minimatch.js(175,8): error TS2339: Property 'parseNegate' does not exist on type 'make'. +node_modules/minimatch/minimatch.js(178,33): error TS2339: Property 'braceExpand' does not exist on type 'make'. +node_modules/minimatch/minimatch.js(180,83): error TS2345: Argument of type 'IArguments' is not assignable to parameter of type '[message?: any, ...optionalParams: any[]]'. +node_modules/minimatch/minimatch.js(182,3): error TS2722: Cannot invoke an object which is possibly 'undefined'. +node_modules/minimatch/minimatch.js(182,19): error TS2339: Property 'pattern' does not exist on type 'make'. +node_modules/minimatch/minimatch.js(193,3): error TS2722: Cannot invoke an object which is possibly 'undefined'. +node_modules/minimatch/minimatch.js(193,19): error TS2339: Property 'pattern' does not exist on type 'make'. +node_modules/minimatch/minimatch.js(200,3): error TS2722: Cannot invoke an object which is possibly 'undefined'. +node_modules/minimatch/minimatch.js(200,19): error TS2339: Property 'pattern' does not exist on type 'make'. +node_modules/minimatch/minimatch.js(207,3): error TS2722: Cannot invoke an object which is possibly 'undefined'. +node_modules/minimatch/minimatch.js(207,19): error TS2339: Property 'pattern' does not exist on type 'make'. +node_modules/minimatch/minimatch.js(216,22): error TS2339: Property 'options' does not exist on type 'parseNegate'. +node_modules/minimatch/minimatch.js(221,23): error TS2532: Object is possibly 'undefined'. +node_modules/minimatch/minimatch.js(222,16): error TS2532: Object is possibly 'undefined'. +node_modules/minimatch/minimatch.js(228,36): error TS2532: Object is possibly 'undefined'. +node_modules/minimatch/minimatch.js(440,15): error TS2532: Object is possibly 'undefined'. +node_modules/minimatch/minimatch.js(441,13): error TS2532: Object is possibly 'undefined'. +node_modules/minimatch/minimatch.js(444,9): error TS2532: Object is possibly 'undefined'. +node_modules/minimatch/minimatch.js(444,12): error TS2339: Property 'reEnd' does not exist on type '{ type: any; start: number; reStart: number; open: any; close: any; }'. +node_modules/minimatch/minimatch.js(598,32): error TS2532: Object is possibly 'undefined'. +node_modules/minimatch/minimatch.js(599,28): error TS2532: Object is possibly 'undefined'. +node_modules/minimatch/minimatch.js(599,40): error TS2532: Object is possibly 'undefined'. +node_modules/minimatch/minimatch.js(599,43): error TS2339: Property 'reEnd' does not exist on type '{ type: any; start: number; reStart: number; open: any; close: any; }'. +node_modules/minimatch/minimatch.js(600,27): error TS2532: Object is possibly 'undefined'. +node_modules/minimatch/minimatch.js(600,30): error TS2339: Property 'reEnd' does not exist on type '{ type: any; start: number; reStart: number; open: any; close: any; }'. +node_modules/minimatch/minimatch.js(600,41): error TS2532: Object is possibly 'undefined'. +node_modules/minimatch/minimatch.js(600,44): error TS2339: Property 'reEnd' does not exist on type '{ type: any; start: number; reStart: number; open: any; close: any; }'. +node_modules/minimatch/minimatch.js(601,28): error TS2532: Object is possibly 'undefined'. +node_modules/minimatch/minimatch.js(601,31): error TS2339: Property 'reEnd' does not exist on type '{ type: any; start: number; reStart: number; open: any; close: any; }'. +node_modules/minimatch/minimatch.js(657,10): error TS2339: Property '_glob' does not exist on type 'RegExp'. +node_modules/minimatch/minimatch.js(658,10): error TS2339: Property '_src' does not exist on type 'RegExp'. +node_modules/minimatch/minimatch.js(677,18): error TS2339: Property 'set' does not exist on type 'makeRe'. +node_modules/minimatch/minimatch.js(683,22): error TS2339: Property 'options' does not exist on type 'makeRe'. +node_modules/minimatch/minimatch.js(703,12): error TS2339: Property 'negate' does not exist on type 'makeRe'. +node_modules/minimatch/minimatch.js(727,14): error TS2554: Expected 0 arguments, but got 3. +node_modules/minimatch/minimatch.js(744,14): error TS2554: Expected 0 arguments, but got 3. +node_modules/minimatch/minimatch.js(752,14): error TS2554: Expected 0 arguments, but got 3. +node_modules/minimatch/minimatch.js(762,19): error TS2532: Object is possibly 'undefined'. +node_modules/minimatch/minimatch.js(763,19): error TS2532: Object is possibly 'undefined'. +node_modules/minimatch/minimatch.js(789,14): error TS2554: Expected 0 arguments, but got 2. +node_modules/minimatch/minimatch.js(792,14): error TS2554: Expected 0 arguments, but got 3. +node_modules/minimatch/minimatch.js(800,16): error TS2554: Expected 0 arguments, but got 1. +node_modules/minimatch/minimatch.js(804,16): error TS2554: Expected 0 arguments, but got 3. +node_modules/minimatch/minimatch.js(812,18): error TS2554: Expected 0 arguments, but got 2. +node_modules/minimatch/minimatch.js(839,20): error TS2554: Expected 0 arguments, but got 1. +node_modules/minimatch/minimatch.js(857,20): error TS2554: Expected 0 arguments, but got 6. +node_modules/minimatch/minimatch.js(861,22): error TS2554: Expected 0 arguments, but got 4. +node_modules/minimatch/minimatch.js(869,24): error TS2554: Expected 0 arguments, but got 5. +node_modules/minimatch/minimatch.js(874,22): error TS2554: Expected 0 arguments, but got 1. +node_modules/minimatch/minimatch.js(885,20): error TS2554: Expected 0 arguments, but got 5. +node_modules/minimatch/minimatch.js(897,18): error TS2554: Expected 0 arguments, but got 4. +node_modules/minimatch/minimatch.js(900,18): error TS2554: Expected 0 arguments, but got 4. diff --git a/tests/baselines/reference/user/npm.log b/tests/baselines/reference/user/npm.log index 4475a63032f31..d5f573e8858aa 100644 --- a/tests/baselines/reference/user/npm.log +++ b/tests/baselines/reference/user/npm.log @@ -1,217 +1,396 @@ Exit Code: 2 Standard output: -lib/access.js(27,14): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Access'. -lib/adduser.js(16,14): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'AddUser'. -lib/audit.js(14,14): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Audit'. -lib/base-command.js(15,29): error TS2339: Property 'description' does not exist on type 'Function'. -lib/base-command.js(20,26): error TS2339: Property 'description' does not exist on type 'Function'. -lib/base-command.js(21,43): error TS2339: Property 'description' does not exist on type 'Function'. -lib/base-command.js(24,27): error TS2339: Property 'usage' does not exist on type 'Function'. -lib/base-command.js(27,43): error TS2339: Property 'usage' does not exist on type 'Function'. -lib/base-command.js(29,26): error TS2339: Property 'params' does not exist on type 'Function'. -lib/base-command.js(31,58): error TS2339: Property 'params' does not exist on type 'Function'. -lib/bin.js(9,14): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Bin'. -lib/bugs.js(12,14): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Bugs'. -lib/cache.js(15,14): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Cache'. -lib/cache.js(119,34): error TS2345: Argument of type 'string | undefined' is not assignable to parameter of type 'string'. +lib/arborist-cmd.js(21,17): error TS2339: Property 'exec' does not exist on type 'ArboristCmd'. +lib/auth/legacy.js(40,11): error TS2571: Object is of type 'unknown'. +lib/auth/legacy.js(59,9): error TS2571: Object is of type 'unknown'. +lib/auth/legacy.js(84,7): error TS2339: Property 'info' does not exist on type '{}'. +lib/auth/sso.js(17,7): error TS2339: Property 'info' does not exist on type '{}'. +lib/auth/sso.js(39,7): error TS2339: Property 'warn' does not exist on type '{}'. +lib/auth/sso.js(72,7): error TS2339: Property 'info' does not exist on type '{}'. +lib/base-command.js(20,29): error TS2339: Property 'description' does not exist on type 'Function'. +lib/base-command.js(24,29): error TS2339: Property 'ignoreImplicitWorkspace' does not exist on type 'Function'. +lib/base-command.js(29,26): error TS2339: Property 'description' does not exist on type 'Function'. +lib/base-command.js(30,43): error TS2339: Property 'description' does not exist on type 'Function'. +lib/base-command.js(34,27): error TS2339: Property 'usage' does not exist on type 'Function'. +lib/base-command.js(37,43): error TS2339: Property 'usage' does not exist on type 'Function'. +lib/base-command.js(42,26): error TS2339: Property 'params' does not exist on type 'Function'. +lib/base-command.js(56,42): error TS2339: Property 'params' does not exist on type 'Function'. +lib/base-command.js(84,14): error TS2339: Property 'isArboristCmd' does not exist on type 'BaseCommand'. +lib/cli.js(24,15): error TS2339: Property 'setNpm' does not exist on type '(err: any) => undefined'. +lib/cli.js(34,7): error TS2339: Property 'verbose' does not exist on type '{}'. +lib/cli.js(36,7): error TS2339: Property 'info' does not exist on type '{}'. +lib/cli.js(37,7): error TS2339: Property 'info' does not exist on type '{}'. +lib/cli.js(69,9): error TS2571: Object is of type 'unknown'. +lib/commands/access.js(24,10): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Access'. +lib/commands/access.js(194,13): error TS2571: Object is of type 'unknown'. +lib/commands/adduser.js(13,10): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'AddUser'. +lib/commands/adduser.js(27,9): error TS2339: Property 'disableProgress' does not exist on type '{}'. +lib/commands/adduser.js(29,9): error TS2339: Property 'notice' does not exist on type '{}'. +lib/commands/audit.js(9,10): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Audit'. +lib/commands/bin.js(6,10): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Bin'. +lib/commands/birthday.js(4,10): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Birthday'. +lib/commands/bugs.js(9,10): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Bugs'. +lib/commands/bugs.js(26,9): error TS2339: Property 'silly' does not exist on type '{}'. +lib/commands/cache.js(71,10): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Cache'. +lib/commands/cache.js(146,13): error TS2339: Property 'warn' does not exist on type '{}'. +lib/commands/cache.js(160,9): error TS2339: Property 'silly' does not exist on type '{}'. +lib/commands/cache.js(166,11): error TS2339: Property 'silly' does not exist on type '{}'. +lib/commands/cache.js(179,34): error TS2345: Argument of type 'string | undefined' is not assignable to parameter of type 'string'. Type 'undefined' is not assignable to type 'string'. -lib/cache.js(120,26): error TS2532: Object is possibly 'undefined'. -lib/ci.js(13,16): error TS2769: No overload matches this call. +lib/commands/cache.js(180,26): error TS2532: Object is possibly 'undefined'. +lib/commands/ci.js(13,16): error TS2769: No overload matches this call. The last overload gave the following error. Argument of type '"time"' is not assignable to parameter of type 'Signals'. -lib/ci.js(18,16): error TS2769: No overload matches this call. +lib/commands/ci.js(18,16): error TS2769: No overload matches this call. The last overload gave the following error. Argument of type '"timeEnd"' is not assignable to parameter of type 'Signals'. -lib/ci.js(29,14): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'CI'. -lib/ci.js(40,11): error TS2339: Property 'code' does not exist on type 'Error'. -lib/cli.js(47,27): error TS2339: Property 'exit' does not exist on type '(er: any) => void'. -lib/completion.js(54,14): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Completion'. -lib/completion.js(65,26): error TS2345: Argument of type 'string | undefined' is not assignable to parameter of type 'string'. +lib/commands/ci.js(24,10): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'CI'. +lib/commands/ci.js(34,11): error TS2339: Property 'code' does not exist on type 'Error'. +lib/commands/ci.js(50,13): error TS2339: Property 'verbose' does not exist on type '{}'. +lib/commands/completion.js(49,10): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Completion'. +lib/commands/completion.js(60,26): error TS2345: Argument of type 'string | undefined' is not assignable to parameter of type 'string'. Type 'undefined' is not assignable to type 'string'. -lib/completion.js(66,26): error TS2345: Argument of type 'string | undefined' is not assignable to parameter of type 'string'. +lib/commands/completion.js(61,26): error TS2345: Argument of type 'string | undefined' is not assignable to parameter of type 'string'. Type 'undefined' is not assignable to type 'string'. -lib/completion.js(208,7): error TS2794: Expected 1 arguments, but got 0. Did you forget to include 'void' in your type argument to 'Promise'? -lib/completion.js(228,9): error TS2794: Expected 1 arguments, but got 0. Did you forget to include 'void' in your type argument to 'Promise'? -lib/config.js(38,14): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Config'. -lib/config.js(218,16): error TS2794: Expected 1 arguments, but got 0. Did you forget to include 'void' in your type argument to 'Promise'? -lib/dedupe.js(14,14): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Dedupe'. -lib/dedupe.js(25,10): error TS2339: Property 'code' does not exist on type 'Error'. -lib/deprecate.js(15,14): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Deprecate'. -lib/diff.js(20,14): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Diff'. -lib/dist-tag.js(16,14): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'DistTag'. -lib/docs.js(15,14): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Docs'. -lib/doctor.js(41,14): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Doctor'. -lib/doctor.js(80,19): error TS2345: Argument of type 'boolean' is not assignable to parameter of type 'string | any[]'. -lib/doctor.js(80,36): error TS2538: Type 'any[]' cannot be used as an index type. -lib/doctor.js(82,19): error TS2345: Argument of type 'boolean' is not assignable to parameter of type 'string | any[]'. -lib/doctor.js(92,9): error TS2322: Type 'string | false | any[]' is not assignable to type 'boolean'. +lib/commands/completion.js(221,9): error TS2794: Expected 1 arguments, but got 0. Did you forget to include 'void' in your type argument to 'Promise'? +lib/commands/completion.js(233,7): error TS2794: Expected 1 arguments, but got 0. Did you forget to include 'void' in your type argument to 'Promise'? +lib/commands/config.js(47,10): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Config'. +lib/commands/config.js(104,9): error TS2339: Property 'warn' does not exist on type '{}'. +lib/commands/config.js(109,9): error TS2339: Property 'disableProgress' does not exist on type '{}'. +lib/commands/config.js(134,11): error TS2339: Property 'enableProgress' does not exist on type '{}'. +lib/commands/config.js(145,11): error TS2339: Property 'info' does not exist on type '{}'. +lib/commands/config.js(148,13): error TS2339: Property 'warn' does not exist on type '{}'. +lib/commands/config.js(236,16): error TS2794: Expected 1 arguments, but got 0. Did you forget to include 'void' in your type argument to 'Promise'? +lib/commands/dedupe.js(9,10): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Dedupe'. +lib/commands/dedupe.js(28,10): error TS2339: Property 'code' does not exist on type 'Error'. +lib/commands/deprecate.js(11,10): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Deprecate'. +lib/commands/diff.js(14,10): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Diff'. +lib/commands/diff.js(60,9): error TS2339: Property 'info' does not exist on type '{}'. +lib/commands/diff.js(72,33): error TS2532: Object is possibly 'undefined'. +lib/commands/diff.js(86,11): error TS2339: Property 'verbose' does not exist on type '{}'. +lib/commands/diff.js(119,11): error TS2339: Property 'verbose' does not exist on type '{}'. +lib/commands/diff.js(157,13): error TS2339: Property 'verbose' does not exist on type '{}'. +lib/commands/diff.js(230,13): error TS2339: Property 'verbose' does not exist on type '{}'. +lib/commands/diff.js(264,11): error TS2339: Property 'verbose' does not exist on type '{}'. +lib/commands/dist-tag.js(12,10): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'DistTag'. +lib/commands/dist-tag.js(80,9): error TS2339: Property 'warn' does not exist on type '{}'. +lib/commands/dist-tag.js(89,9): error TS2339: Property 'verbose' does not exist on type '{}'. +lib/commands/dist-tag.js(103,11): error TS2339: Property 'warn' does not exist on type '{}'. +lib/commands/dist-tag.js(124,9): error TS2339: Property 'verbose' does not exist on type '{}'. +lib/commands/dist-tag.js(132,11): error TS2339: Property 'info' does not exist on type '{}'. +lib/commands/dist-tag.js(169,11): error TS2339: Property 'error' does not exist on type '{}'. +lib/commands/dist-tag.js(177,24): error TS2532: Object is possibly 'undefined'. +lib/commands/docs.js(8,10): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Docs'. +lib/commands/docs.js(37,9): error TS2339: Property 'silly' does not exist on type '{}'. +lib/commands/doctor.js(42,10): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Doctor'. +lib/commands/doctor.js(47,9): error TS2339: Property 'info' does not exist on type '{}'. +lib/commands/doctor.js(95,19): error TS2345: Argument of type 'boolean' is not assignable to parameter of type 'string | any[]'. +lib/commands/doctor.js(95,36): error TS2538: Type 'any[]' cannot be used as an index type. +lib/commands/doctor.js(97,19): error TS2345: Argument of type 'boolean' is not assignable to parameter of type 'string | any[]'. +lib/commands/doctor.js(109,11): error TS2322: Type 'string | false | any[]' is not assignable to type 'boolean'. Type 'string' is not assignable to type 'boolean'. -lib/doctor.js(98,9): error TS2322: Type 'string | false | any[]' is not assignable to type 'boolean'. -lib/edit.js(17,14): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Edit'. -lib/edit.js(56,13): error TS2794: Expected 1 arguments, but got 0. Did you forget to include 'void' in your type argument to 'Promise'? -lib/exec.js(62,14): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Exec'. -lib/exec.js(79,22): error TS2345: Argument of type '{ path: any; runPath: string; }' is not assignable to parameter of type '{ locationMsg: any; path: any; runPath: any; }'. - Property 'locationMsg' is missing in type '{ path: any; runPath: string; }' but required in type '{ locationMsg: any; path: any; runPath: any; }'. -lib/explain.js(16,14): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Explain'. -lib/explain.js(27,33): error TS2554: Expected 0-1 arguments, but got 2. -lib/explore.js(16,14): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Explore'. -lib/find-dupes.js(11,14): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'FindDupes'. -lib/fund.js(31,14): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Fund'. -lib/fund.js(52,33): error TS2554: Expected 0-1 arguments, but got 2. -lib/fund.js(71,11): error TS2339: Property 'code' does not exist on type 'Error'. -lib/fund.js(77,11): error TS2339: Property 'code' does not exist on type 'Error'. -lib/fund.js(221,22): error TS2339: Property 'code' does not exist on type 'Error'. -lib/get.js(10,14): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Get'. -lib/help-search.js(15,14): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'HelpSearch'. -lib/help.js(21,14): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Help'. -lib/help.js(73,26): error TS2531: Object is possibly 'null'. -lib/help.js(74,26): error TS2531: Object is possibly 'null'. -lib/help.js(78,16): error TS2362: The left-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type. -lib/help.js(78,29): error TS2363: The right-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type. -lib/help.js(98,9): error TS2794: Expected 1 arguments, but got 0. Did you forget to include 'void' in your type argument to 'Promise'? -lib/help.js(132,35): error TS2769: No overload matches this call. +lib/commands/doctor.js(115,11): error TS2322: Type 'string | false | any[]' is not assignable to type 'boolean'. +lib/commands/doctor.js(141,25): error TS2339: Property 'newItem' does not exist on type '{}'. +lib/commands/doctor.js(147,27): error TS2571: Object is of type 'unknown'. +lib/commands/doctor.js(148,15): error TS2571: Object is of type 'unknown'. +lib/commands/doctor.js(148,41): error TS2571: Object is of type 'unknown'. +lib/commands/doctor.js(150,15): error TS2571: Object is of type 'unknown'. +lib/commands/doctor.js(158,25): error TS2339: Property 'newItem' does not exist on type '{}'. +lib/commands/doctor.js(177,25): error TS2339: Property 'newItem' does not exist on type '{}'. +lib/commands/doctor.js(206,7): error TS2322: Type 'number' is not assignable to type 'null'. +lib/commands/doctor.js(211,25): error TS2339: Property 'newItem' does not exist on type '{}'. +lib/commands/doctor.js(240,27): error TS2345: Argument of type 'null' is not assignable to parameter of type 'number | undefined'. +lib/commands/doctor.js(273,25): error TS2339: Property 'newItem' does not exist on type '{}'. +lib/commands/doctor.js(286,25): error TS2339: Property 'newItem' does not exist on type '{}'. +lib/commands/edit.js(13,10): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Edit'. +lib/commands/exec.js(40,10): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Exec'. +lib/commands/exec.js(50,24): error TS2525: Initializer provides no value for this binding element and the binding element has no default value. +lib/commands/exec.js(50,37): error TS2525: Initializer provides no value for this binding element and the binding element has no default value. +lib/commands/exec.js(50,43): error TS2525: Initializer provides no value for this binding element and the binding element has no default value. +lib/commands/exec.js(95,24): error TS2532: Object is possibly 'undefined'. +lib/commands/explain.js(12,10): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Explain'. +lib/commands/explain.js(24,33): error TS2554: Expected 0-1 arguments, but got 2. +lib/commands/explore.js(13,10): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Explore'. +lib/commands/explore.js(42,11): error TS2339: Property 'error' does not exist on type '{}'. +lib/commands/explore.js(55,9): error TS2339: Property 'disableProgress' does not exist on type '{}'. +lib/commands/explore.js(76,11): error TS2339: Property 'enableProgress' does not exist on type '{}'. +lib/commands/find-dupes.js(6,10): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'FindDupes'. +lib/commands/fund.js(21,10): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Fund'. +lib/commands/fund.js(28,33): error TS2554: Expected 0-1 arguments, but got 2. +lib/commands/fund.js(44,11): error TS2339: Property 'code' does not exist on type 'Error'. +lib/commands/fund.js(50,11): error TS2339: Property 'code' does not exist on type 'Error'. +lib/commands/fund.js(70,15): error TS2339: Property 'flatOptions' does not exist on type 'Fund'. +lib/commands/fund.js(203,22): error TS2339: Property 'code' does not exist on type 'Error'. +lib/commands/get.js(5,10): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Get'. +lib/commands/help-search.js(11,10): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'HelpSearch'. +lib/commands/help.js(17,10): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Help'. +lib/commands/help.js(65,26): error TS2531: Object is possibly 'null'. +lib/commands/help.js(66,26): error TS2531: Object is possibly 'null'. +lib/commands/help.js(70,16): error TS2362: The left-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type. +lib/commands/help.js(70,29): error TS2363: The right-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type. +lib/commands/help.js(117,35): error TS2769: No overload matches this call. The last overload gave the following error. Argument of type '{ env: {}; stdio: string; }' is not assignable to parameter of type 'SpawnOptions'. Types of property 'stdio' are incompatible. Type 'string' is not assignable to type 'StdioOptions | undefined'. -lib/help.js(134,12): error TS2339: Property 'on' does not exist on type 'never'. +lib/commands/help.js(119,12): error TS2339: Property 'on' does not exist on type 'never'. The intersection 'ChildProcessWithoutNullStreams & ChildProcessByStdio & ... 7 more ... & ChildProcess' was reduced to 'never' because property 'stdin' has conflicting types in some constituents. -lib/help.js(138,16): error TS2794: Expected 1 arguments, but got 0. Did you forget to include 'void' in your type argument to 'Promise'? -lib/hook.js(12,14): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Hook'. -lib/init.js(13,14): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Init'. -lib/init.js(58,62): error TS2794: Expected 1 arguments, but got 0. Did you forget to include 'void' in your type argument to 'Promise'? -lib/init.js(89,18): error TS2794: Expected 1 arguments, but got 0. Did you forget to include 'void' in your type argument to 'Promise'? -lib/install-ci-test.js(12,14): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'InstallCITest'. -lib/install-test.js(12,14): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'InstallTest'. -lib/install.js(20,14): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Install'. -lib/link.js(21,14): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Link'. -lib/ll.js(5,14): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'LL'. -lib/logout.js(13,14): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Logout'. -lib/ls.js(32,14): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'LS'. -lib/ls.js(43,33): error TS2554: Expected 0-1 arguments, but got 2. -lib/npm.js(56,18): error TS2769: No overload matches this call. - The last overload gave the following error. - Argument of type '"time"' is not assignable to parameter of type 'Signals'. -lib/npm.js(85,18): error TS2769: No overload matches this call. +lib/commands/help.js(124,16): error TS2794: Expected 1 arguments, but got 0. Did you forget to include 'void' in your type argument to 'Promise'? +lib/commands/hook.js(9,10): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Hook'. +lib/commands/init.js(18,10): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Init'. +lib/commands/init.js(129,9): error TS2339: Property 'pause' does not exist on type '{}'. +lib/commands/init.js(130,9): error TS2339: Property 'disableProgress' does not exist on type '{}'. +lib/commands/init.js(151,13): error TS2339: Property 'resume' does not exist on type '{}'. +lib/commands/init.js(152,13): error TS2339: Property 'enableProgress' does not exist on type '{}'. +lib/commands/init.js(153,13): error TS2339: Property 'silly' does not exist on type '{}'. +lib/commands/init.js(155,15): error TS2339: Property 'warn' does not exist on type '{}'. +lib/commands/init.js(156,18): error TS2794: Expected 1 arguments, but got 0. Did you forget to include 'void' in your type argument to 'Promise'? +lib/commands/init.js(161,15): error TS2339: Property 'info' does not exist on type '{}'. +lib/commands/install-ci-test.js(8,10): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'InstallCITest'. +lib/commands/install-test.js(8,10): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'InstallTest'. +lib/commands/install.js(16,10): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Install'. +lib/commands/install.js(121,15): error TS2339: Property 'warn' does not exist on type '{}'. +lib/commands/install.js(142,11): error TS2339: Property 'warn' does not exist on type '{}'. +lib/commands/link.js(16,10): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Link'. +lib/commands/ll.js(4,10): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'LL'. +lib/commands/logout.js(8,10): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Logout'. +lib/commands/logout.js(25,11): error TS2339: Property 'verbose' does not exist on type '{}'. +lib/commands/logout.js(32,11): error TS2339: Property 'verbose' does not exist on type '{}'. +lib/commands/ls.js(29,10): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'LS'. +lib/commands/ls.js(48,33): error TS2554: Expected 0-1 arguments, but got 2. +lib/commands/org.js(8,10): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Org'. +lib/commands/outdated.js(18,10): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Outdated'. +lib/commands/outdated.js(166,5): error TS2532: Object is possibly 'undefined'. +lib/commands/outdated.js(201,36): error TS2339: Property 'name' does not exist on type 'true'. +lib/commands/outdated.js(225,38): error TS2339: Property 'fetchSpec' does not exist on type 'true'. +lib/commands/outdated.js(246,9): error TS2532: Object is possibly 'undefined'. +lib/commands/outdated.js(262,9): error TS2571: Object is of type 'unknown'. +lib/commands/outdated.js(263,9): error TS2571: Object is of type 'unknown'. +lib/commands/outdated.js(264,9): error TS2571: Object is of type 'unknown'. +lib/commands/owner.js(11,10): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Owner'. +lib/commands/owner.js(106,11): error TS2339: Property 'error' does not exist on type '{}'. +lib/commands/owner.js(127,9): error TS2339: Property 'verbose' does not exist on type '{}'. +lib/commands/owner.js(150,9): error TS2339: Property 'verbose' does not exist on type '{}'. +lib/commands/owner.js(164,11): error TS2339: Property 'error' does not exist on type '{}'. +lib/commands/owner.js(168,27): error TS2339: Property 'name' does not exist on type 'string'. +lib/commands/owner.js(168,37): error TS2339: Property 'error' does not exist on type 'string'. +lib/commands/owner.js(178,5): error TS2322: Type '{ name: any; email: any; }' is not assignable to type 'string'. +lib/commands/owner.js(178,19): error TS2339: Property 'name' does not exist on type 'string'. +lib/commands/owner.js(178,34): error TS2339: Property 'email' does not exist on type 'string'. +lib/commands/owner.js(224,13): error TS2339: Property 'info' does not exist on type '{}'. +lib/commands/owner.js(246,11): error TS2339: Property 'info' does not exist on type '{}'. +lib/commands/pack.js(10,10): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Pack'. +lib/commands/pack.js(70,11): error TS2339: Property 'warn' does not exist on type '{}'. +lib/commands/pack.js(75,26): error TS2488: Type 'any[] | undefined' must have a '[Symbol.iterator]()' method that returns an iterator. +lib/commands/ping.js(8,10): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Ping'. +lib/commands/ping.js(12,9): error TS2339: Property 'notice' does not exist on type '{}'. +lib/commands/ping.js(16,9): error TS2339: Property 'notice' does not exist on type '{}'. +lib/commands/ping.js(24,11): error TS2339: Property 'notice' does not exist on type '{}'. +lib/commands/pkg.js(7,10): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Pkg'. +lib/commands/pkg.js(25,23): error TS2525: Initializer provides no value for this binding element and the binding element has no default value. +lib/commands/pkg.js(55,50): error TS2532: Object is possibly 'undefined'. +lib/commands/prefix.js(5,10): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Prefix'. +lib/commands/profile.js(42,10): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Profile'. +lib/commands/profile.js(86,9): error TS2339: Property 'gauge' does not exist on type '{}'. +lib/commands/profile.js(185,13): error TS2339: Property 'warn' does not exist on type '{}'. +lib/commands/profile.js(288,11): error TS2339: Property 'info' does not exist on type '{}'. +lib/commands/profile.js(308,9): error TS2339: Property 'notice' does not exist on type '{}'. +lib/commands/profile.js(312,9): error TS2339: Property 'info' does not exist on type '{}'. +lib/commands/profile.js(319,11): error TS2339: Property 'info' does not exist on type '{}'. +lib/commands/profile.js(331,9): error TS2339: Property 'info' does not exist on type '{}'. +lib/commands/profile.js(361,9): error TS2339: Property 'info' does not exist on type '{}'. +lib/commands/profile.js(395,9): error TS2339: Property 'info' does not exist on type '{}'. +lib/commands/prune.js(8,10): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Prune'. +lib/commands/publish.js(30,10): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Publish'. +lib/commands/publish.js(52,9): error TS2339: Property 'verbose' does not exist on type '{}'. +lib/commands/publish.js(117,11): error TS2339: Property 'notice' does not exist on type '{}'. +lib/commands/publish.js(161,37): error TS2532: Object is possibly 'undefined'. +lib/commands/publish.js(166,13): error TS2571: Object is of type 'unknown'. +lib/commands/publish.js(167,15): error TS2339: Property 'warn' does not exist on type '{}'. +lib/commands/rebuild.js(10,10): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Rebuild'. +lib/commands/rebuild.js(23,33): error TS2554: Expected 0-1 arguments, but got 2. +lib/commands/repo.js(10,10): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Repo'. +lib/commands/repo.js(60,9): error TS2339: Property 'silly' does not exist on type '{}'. +lib/commands/restart.js(6,10): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Restart'. +lib/commands/root.js(4,10): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Root'. +lib/commands/run-script.js(19,20): error TS2769: No overload matches this call. + Overload 2 of 2, '(...items: ConcatArray[]): never[]', gave the following error. + Type 'string' is not assignable to type 'never'. + Overload 2 of 2, '(...items: ConcatArray[]): never[]', gave the following error. + Type 'string' is not assignable to type 'never'. + Overload 2 of 2, '(...items: ConcatArray[]): never[]', gave the following error. + Type 'string' is not assignable to type 'never'. +lib/commands/run-script.js(41,10): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'RunScript'. +lib/commands/run-script.js(71,63): error TS2525: Initializer provides no value for this binding element and the binding element has no default value. +lib/commands/run-script.js(204,33): error TS2532: Object is possibly 'undefined'. +lib/commands/run-script.js(210,13): error TS2339: Property 'error' does not exist on type '{}'. +lib/commands/run-script.js(211,13): error TS2339: Property 'error' does not exist on type '{}'. +lib/commands/run-script.js(212,13): error TS2339: Property 'error' does not exist on type '{}'. +lib/commands/run-script.js(213,13): error TS2339: Property 'error' does not exist on type '{}'. +lib/commands/run-script.js(243,35): error TS2532: Object is possibly 'undefined'. +lib/commands/run-script.js(252,35): error TS2532: Object is possibly 'undefined'. +lib/commands/run-script.js(261,33): error TS2532: Object is possibly 'undefined'. +lib/commands/search.js(31,10): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Search'. +lib/commands/search.js(81,9): error TS2339: Property 'silly' does not exist on type '{}'. +lib/commands/search.js(100,9): error TS2339: Property 'silly' does not exist on type '{}'. +lib/commands/search.js(101,9): error TS2339: Property 'clearProgress' does not exist on type '{}'. +lib/commands/set-script.js(10,10): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'SetScript'. +lib/commands/set-script.js(39,11): error TS2339: Property 'warn' does not exist on type '{}'. +lib/commands/set-script.js(47,32): error TS2532: Object is possibly 'undefined'. +lib/commands/set-script.js(51,15): error TS2339: Property 'warn' does not exist on type '{}'. +lib/commands/set-script.js(52,15): error TS2339: Property 'warn' does not exist on type '{}'. +lib/commands/set-script.js(53,15): error TS2339: Property 'warn' does not exist on type '{}'. +lib/commands/set-script.js(56,13): error TS2339: Property 'error' does not exist on type '{}'. +lib/commands/set-script.js(56,33): error TS2571: Object is of type 'unknown'. +lib/commands/set-script.js(57,13): error TS2339: Property 'error' does not exist on type '{}'. +lib/commands/set-script.js(58,13): error TS2339: Property 'error' does not exist on type '{}'. +lib/commands/set.js(5,10): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Set'. +lib/commands/shrinkwrap.js(8,10): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Shrinkwrap'. +lib/commands/shrinkwrap.js(20,10): error TS2339: Property 'code' does not exist on type 'Error'. +lib/commands/shrinkwrap.js(56,11): error TS2339: Property 'notice' does not exist on type '{}'. +lib/commands/shrinkwrap.js(63,11): error TS2339: Property 'notice' does not exist on type '{}'. +lib/commands/shrinkwrap.js(65,11): error TS2339: Property 'notice' does not exist on type '{}'. +lib/commands/shrinkwrap.js(67,11): error TS2339: Property 'notice' does not exist on type '{}'. +lib/commands/star.js(9,10): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Star'. +lib/commands/star.js(54,13): error TS2339: Property 'info' does not exist on type '{}'. +lib/commands/star.js(56,13): error TS2339: Property 'verbose' does not exist on type '{}'. +lib/commands/star.js(59,13): error TS2339: Property 'info' does not exist on type '{}'. +lib/commands/star.js(60,13): error TS2339: Property 'verbose' does not exist on type '{}'. +lib/commands/star.js(71,11): error TS2339: Property 'verbose' does not exist on type '{}'. +lib/commands/stars.js(8,10): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Stars'. +lib/commands/stars.js(24,13): error TS2339: Property 'warn' does not exist on type '{}'. +lib/commands/stars.js(31,11): error TS2571: Object is of type 'unknown'. +lib/commands/stars.js(32,13): error TS2339: Property 'warn' does not exist on type '{}'. +lib/commands/start.js(6,10): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Start'. +lib/commands/stop.js(6,10): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Stop'. +lib/commands/team.js(9,10): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Team'. +lib/commands/test.js(6,10): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Test'. +lib/commands/token.js(14,10): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Token'. +lib/commands/token.js(34,9): error TS2339: Property 'gauge' does not exist on type '{}'. +lib/commands/token.js(56,9): error TS2339: Property 'info' does not exist on type '{}'. +lib/commands/token.js(101,26): error TS2339: Property 'newItem' does not exist on type '{}'. +lib/commands/token.js(147,13): error TS2339: Property 'info' does not exist on type '{}'. +lib/commands/uninstall.js(11,10): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Uninstall'. +lib/commands/uninstall.js(38,15): error TS2571: Object is of type 'unknown'. +lib/commands/uninstall.js(38,39): error TS2571: Object is of type 'unknown'. +lib/commands/unpublish.js(19,10): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Unpublish'. +lib/commands/unpublish.js(77,9): error TS2339: Property 'silly' does not exist on type '{}'. +lib/commands/unpublish.js(78,9): error TS2339: Property 'silly' does not exist on type '{}'. +lib/commands/unpublish.js(96,20): error TS2571: Object is of type 'unknown'. +lib/commands/unpublish.js(96,45): error TS2571: Object is of type 'unknown'. +lib/commands/unpublish.js(103,11): error TS2339: Property 'verbose' does not exist on type '{}'. +lib/commands/unpublish.js(151,24): error TS2532: Object is possibly 'undefined'. +lib/commands/unstar.js(5,10): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Unstar'. +lib/commands/update.js(12,10): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Update'. +lib/commands/update.js(34,33): error TS2554: Expected 0-1 arguments, but got 2. +lib/commands/update.js(51,11): error TS2339: Property 'warn' does not exist on type '{}'. +lib/commands/version.js(10,10): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Version'. +lib/commands/version.js(84,32): error TS2532: Object is possibly 'undefined'. +lib/commands/version.js(121,24): error TS2532: Object is possibly 'undefined'. +lib/commands/view.js(24,10): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'View'. +lib/commands/view.js(122,13): error TS2339: Property 'silly' does not exist on type '{}'. +lib/commands/view.js(126,11): error TS2339: Property 'disableProgress' does not exist on type '{}'. +lib/commands/view.js(144,11): error TS2339: Property 'warn' does not exist on type '{}'. +lib/commands/view.js(154,24): error TS2532: Object is possibly 'undefined'. +lib/commands/view.js(162,13): error TS2339: Property 'silly' does not exist on type '{}'. +lib/commands/view.js(212,10): error TS2339: Property 'statusCode' does not exist on type 'Error'. +lib/commands/view.js(213,10): error TS2339: Property 'code' does not exist on type 'Error'. +lib/commands/view.js(214,10): error TS2339: Property 'pkgid' does not exist on type 'Error'. +lib/commands/whoami.js(6,10): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Whoami'. +lib/npm.js(40,5): error TS2322: Type 'LogFiles' is not assignable to type 'null'. +lib/npm.js(41,5): error TS2322: Type 'Display' is not assignable to type 'null'. +lib/npm.js(42,5): error TS2322: Type 'Timers' is not assignable to type 'null'. +lib/npm.js(44,7): error TS2322: Type '(name: any, ms: any) => void' is not assignable to type 'null | undefined'. +lib/npm.js(46,9): error TS2531: Object is possibly 'null'. +lib/npm.js(47,9): error TS2531: Object is possibly 'null'. +lib/npm.js(61,29): error TS2339: Property 'version' does not exist on type 'Function'. +lib/npm.js(91,18): error TS2769: No overload matches this call. The last overload gave the following error. Argument of type '"time"' is not assignable to parameter of type 'Signals'. -lib/npm.js(112,22): error TS2769: No overload matches this call. +lib/npm.js(107,15): error TS2339: Property 'error' does not exist on type '{}'. +lib/npm.js(147,22): error TS2769: No overload matches this call. The last overload gave the following error. Argument of type '"timeEnd"' is not assignable to parameter of type 'Signals'. -lib/npm.js(117,22): error TS2769: No overload matches this call. +lib/npm.js(151,22): error TS2769: No overload matches this call. The last overload gave the following error. Argument of type '"timeEnd"' is not assignable to parameter of type 'Signals'. -lib/npm.js(139,18): error TS2769: No overload matches this call. +lib/npm.js(158,20): error TS2769: No overload matches this call. The last overload gave the following error. Argument of type '"time"' is not assignable to parameter of type 'Signals'. -lib/npm.js(147,20): error TS2769: No overload matches this call. +lib/npm.js(165,19): error TS2339: Property 'warn' does not exist on type '{}'. +lib/npm.js(168,26): error TS2769: No overload matches this call. The last overload gave the following error. Argument of type '"timeEnd"' is not assignable to parameter of type 'Signals'. -lib/npm.js(166,18): error TS2769: No overload matches this call. +lib/npm.js(172,13): error TS2794: Expected 1 arguments, but got 0. Did you forget to include 'void' in your type argument to 'Promise'? +lib/npm.js(194,5): error TS2531: Object is possibly 'null'. +lib/npm.js(195,5): error TS2531: Object is possibly 'null'. +lib/npm.js(196,5): error TS2531: Object is possibly 'null'. +lib/npm.js(198,7): error TS2531: Object is possibly 'null'. +lib/npm.js(221,18): error TS2769: No overload matches this call. The last overload gave the following error. Argument of type '"time"' is not assignable to parameter of type 'Signals'. -lib/npm.js(168,18): error TS2769: No overload matches this call. +lib/npm.js(228,18): error TS2769: No overload matches this call. The last overload gave the following error. Argument of type '"timeEnd"' is not assignable to parameter of type 'Signals'. -lib/npm.js(175,18): error TS2769: No overload matches this call. +lib/npm.js(230,11): error TS2339: Property 'verbose' does not exist on type '{}'. +lib/npm.js(235,18): error TS2769: No overload matches this call. The last overload gave the following error. Argument of type '"time"' is not assignable to parameter of type 'Signals'. -lib/npm.js(177,18): error TS2769: No overload matches this call. +lib/npm.js(237,18): error TS2769: No overload matches this call. The last overload gave the following error. Argument of type '"timeEnd"' is not assignable to parameter of type 'Signals'. -lib/npm.js(186,18): error TS2769: No overload matches this call. +lib/npm.js(246,18): error TS2769: No overload matches this call. The last overload gave the following error. Argument of type '"time"' is not assignable to parameter of type 'Signals'. -lib/npm.js(190,18): error TS2769: No overload matches this call. +lib/npm.js(251,18): error TS2769: No overload matches this call. The last overload gave the following error. Argument of type '"timeEnd"' is not assignable to parameter of type 'Signals'. -lib/npm.js(192,18): error TS2769: No overload matches this call. +lib/npm.js(253,18): error TS2769: No overload matches this call. The last overload gave the following error. Argument of type '"time"' is not assignable to parameter of type 'Signals'. -lib/npm.js(194,18): error TS2769: No overload matches this call. +lib/npm.js(254,5): error TS2531: Object is possibly 'null'. +lib/npm.js(264,18): error TS2769: No overload matches this call. The last overload gave the following error. Argument of type '"timeEnd"' is not assignable to parameter of type 'Signals'. -lib/npm.js(197,18): error TS2769: No overload matches this call. +lib/npm.js(267,18): error TS2769: No overload matches this call. The last overload gave the following error. Argument of type '"time"' is not assignable to parameter of type 'Signals'. -lib/npm.js(199,18): error TS2769: No overload matches this call. +lib/npm.js(268,5): error TS2531: Object is possibly 'null'. +lib/npm.js(272,9): error TS2339: Property 'verbose' does not exist on type '{}'. +lib/npm.js(272,28): error TS2531: Object is possibly 'null'. +lib/npm.js(273,18): error TS2769: No overload matches this call. The last overload gave the following error. Argument of type '"timeEnd"' is not assignable to parameter of type 'Signals'. -lib/npm.js(203,18): error TS2769: No overload matches this call. +lib/npm.js(275,18): error TS2769: No overload matches this call. The last overload gave the following error. Argument of type '"time"' is not assignable to parameter of type 'Signals'. -lib/npm.js(207,18): error TS2769: No overload matches this call. +lib/npm.js(276,5): error TS2531: Object is possibly 'null'. +lib/npm.js(279,18): error TS2769: No overload matches this call. The last overload gave the following error. Argument of type '"timeEnd"' is not assignable to parameter of type 'Signals'. -lib/npm.js(209,18): error TS2769: No overload matches this call. +lib/npm.js(281,18): error TS2769: No overload matches this call. The last overload gave the following error. Argument of type '"time"' is not assignable to parameter of type 'Signals'. -lib/npm.js(212,18): error TS2769: No overload matches this call. +lib/npm.js(286,18): error TS2769: No overload matches this call. The last overload gave the following error. Argument of type '"timeEnd"' is not assignable to parameter of type 'Signals'. -lib/npm.js(300,44): error TS2345: Argument of type 'string | undefined' is not assignable to parameter of type 'string'. - Type 'undefined' is not assignable to type 'string'. -lib/org.js(12,14): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Org'. -lib/outdated.js(22,14): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Outdated'. -lib/outdated.js(119,7): error TS2532: Object is possibly 'undefined'. -lib/outdated.js(125,9): error TS2532: Object is possibly 'undefined'. -lib/outdated.js(128,9): error TS2532: Object is possibly 'undefined'. -lib/outdated.js(180,9): error TS2532: Object is possibly 'undefined'. -lib/owner.js(16,14): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Owner'. -lib/owner.js(150,27): error TS2339: Property 'name' does not exist on type 'string'. -lib/owner.js(150,37): error TS2339: Property 'error' does not exist on type 'string'. -lib/owner.js(160,5): error TS2322: Type '{ name: any; email: any; }' is not assignable to type 'string'. -lib/owner.js(160,19): error TS2339: Property 'name' does not exist on type 'string'. -lib/owner.js(160,34): error TS2339: Property 'email' does not exist on type 'string'. -lib/pack.js(20,14): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Pack'. -lib/ping.js(17,14): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Ping'. -lib/prefix.js(10,14): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Prefix'. -lib/profile.js(46,14): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Profile'. -lib/prune.js(13,14): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Prune'. -lib/publish.js(27,14): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Publish'. -lib/rebuild.js(15,14): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Rebuild'. -lib/rebuild.js(26,33): error TS2554: Expected 0-1 arguments, but got 2. -lib/repo.js(17,14): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Repo'. -lib/restart.js(11,14): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Restart'. -lib/root.js(9,14): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Root'. -lib/root.js(19,15): error TS2554: Expected 0 arguments, but got 1. -lib/run-script.js(20,20): error TS2769: No overload matches this call. - Overload 2 of 2, '(...items: ConcatArray[]): never[]', gave the following error. - Type 'string' is not assignable to type 'never'. - Overload 2 of 2, '(...items: ConcatArray[]): never[]', gave the following error. - Type 'string' is not assignable to type 'never'. - Overload 2 of 2, '(...items: ConcatArray[]): never[]', gave the following error. - Type 'string' is not assignable to type 'never'. -lib/run-script.js(43,14): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'RunScript'. -lib/run-script.js(76,63): error TS2525: Initializer provides no value for this binding element and the binding element has no default value. -lib/search.js(35,14): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Search'. -lib/search/format-package-stream.js(40,19): error TS2339: Property 'emit' does not exist on type 'JSONOutputStream'. -lib/set-script.js(21,14): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'SetScript'. -lib/set.js(9,14): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Set'. -lib/shrinkwrap.js(16,14): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Shrinkwrap'. -lib/shrinkwrap.js(34,10): error TS2339: Property 'code' does not exist on type 'Error'. -lib/star.js(14,14): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Star'. -lib/stars.js(14,14): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Stars'. -lib/start.js(11,14): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Start'. -lib/stop.js(11,14): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Stop'. -lib/team.js(13,14): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Team'. -lib/test.js(11,14): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Test'. -lib/token.js(18,14): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Token'. -lib/uninstall.js(15,14): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Uninstall'. -lib/unpublish.js(20,14): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Unpublish'. -lib/unstar.js(10,14): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Unstar'. -lib/update.js(17,14): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Update'. -lib/update.js(33,33): error TS2554: Expected 0-1 arguments, but got 2. -lib/utils/cleanup-log-files.js(15,16): error TS2794: Expected 1 arguments, but got 0. Did you forget to include 'void' in your type argument to 'Promise'? -lib/utils/cleanup-log-files.js(19,16): error TS2794: Expected 1 arguments, but got 0. Did you forget to include 'void' in your type argument to 'Promise'? -lib/utils/cleanup-log-files.js(27,13): error TS2794: Expected 1 arguments, but got 0. Did you forget to include 'void' in your type argument to 'Promise'? -lib/utils/config/definition.js(48,52): error TS2339: Property 'default' does not exist on type 'Definition'. -lib/utils/config/definition.js(50,48): error TS2339: Property 'type' does not exist on type 'Definition'. -lib/utils/config/definition.js(73,39): error TS2339: Property 'description' does not exist on type 'Definition'. -lib/utils/config/definition.js(77,30): error TS2339: Property 'deprecated' does not exist on type 'Definition'. -lib/utils/config/definition.js(78,40): error TS2339: Property 'deprecated' does not exist on type 'Definition'. -lib/utils/config/definitions.js(66,14): error TS2532: Object is possibly 'undefined'. -lib/utils/config/definitions.js(67,41): error TS2769: No overload matches this call. +lib/npm.js(317,12): error TS2531: Object is possibly 'null'. +lib/npm.js(321,12): error TS2531: Object is possibly 'null'. +lib/npm.js(325,12): error TS2531: Object is possibly 'null'. +lib/npm.js(329,12): error TS2531: Object is possibly 'null'. +lib/npm.js(407,9): error TS2339: Property 'clearProgress' does not exist on type '{}'. +lib/npm.js(410,9): error TS2339: Property 'showProgress' does not exist on type '{}'. +lib/search/format-package-stream.js(41,19): error TS2339: Property 'emit' does not exist on type 'JSONOutputStream'. +lib/utils/audit-error.js(20,7): error TS2339: Property 'warn' does not exist on type '{}'. +lib/utils/config/definition.js(43,52): error TS2339: Property 'default' does not exist on type 'Definition'. +lib/utils/config/definition.js(46,48): error TS2339: Property 'type' does not exist on type 'Definition'. +lib/utils/config/definition.js(50,16): error TS2339: Property 'type' does not exist on type 'Definition'. +lib/utils/config/definition.js(79,39): error TS2339: Property 'description' does not exist on type 'Definition'. +lib/utils/config/definition.js(85,30): error TS2339: Property 'deprecated' does not exist on type 'Definition'. +lib/utils/config/definition.js(85,79): error TS2339: Property 'deprecated' does not exist on type 'Definition'. +lib/utils/config/definitions.js(19,9): error TS2571: Object is of type 'unknown'. +lib/utils/config/definitions.js(72,14): error TS2532: Object is possibly 'undefined'. +lib/utils/config/definitions.js(73,41): error TS2769: No overload matches this call. Overload 1 of 2, '(...items: ConcatArray[]): null[]', gave the following error. Argument of type 'string[]' is not assignable to parameter of type 'ConcatArray'. The types returned by 'slice(...)' are incompatible between these types. @@ -219,49 +398,120 @@ lib/utils/config/definitions.js(67,41): error TS2769: No overload matches this c Type 'string' is not assignable to type 'null'. Overload 2 of 2, '(...items: (ConcatArray | null)[]): null[]', gave the following error. Argument of type 'string[]' is not assignable to parameter of type 'ConcatArray'. -lib/utils/config/definitions.js(74,3): error TS2345: Argument of type 'string | undefined' is not assignable to parameter of type 'string'. +lib/utils/config/definitions.js(80,3): error TS2345: Argument of type 'string | undefined' is not assignable to parameter of type 'string'. Type 'undefined' is not assignable to type 'string'. -lib/utils/config/index.js(35,22): error TS2322: Type 'string' is not assignable to type 'never'. -lib/utils/error-handler.js(34,16): error TS2769: No overload matches this call. +lib/utils/config/index.js(36,22): error TS2322: Type 'string' is not assignable to type 'never'. +lib/utils/display.js(15,9): error TS2339: Property 'pause' does not exist on type '{}'. +lib/utils/display.js(28,9): error TS2339: Property 'tracker' does not exist on type '{}'. +lib/utils/display.js(44,11): error TS2339: Property 'level' does not exist on type '{}'. +lib/utils/display.js(46,11): error TS2339: Property 'level' does not exist on type '{}'. +lib/utils/display.js(49,9): error TS2339: Property 'heading' does not exist on type '{}'. +lib/utils/display.js(52,11): error TS2339: Property 'enableColor' does not exist on type '{}'. +lib/utils/display.js(54,11): error TS2339: Property 'disableColor' does not exist on type '{}'. +lib/utils/display.js(58,11): error TS2339: Property 'enableUnicode' does not exist on type '{}'. +lib/utils/display.js(60,11): error TS2339: Property 'disableUnicode' does not exist on type '{}'. +lib/utils/display.js(65,11): error TS2339: Property 'enableProgress' does not exist on type '{}'. +lib/utils/display.js(67,11): error TS2339: Property 'disableProgress' does not exist on type '{}'. +lib/utils/display.js(71,9): error TS2339: Property 'resume' does not exist on type '{}'. +lib/utils/display.js(112,50): error TS2339: Property 'useColor' does not exist on type '{}'. +lib/utils/error-message.js(67,13): error TS2339: Property 'verbose' does not exist on type '{}'. +lib/utils/exit-handler.js(14,7): error TS2339: Property 'disableProgress' does not exist on type '{}'. +lib/utils/exit-handler.js(18,16): error TS2769: No overload matches this call. The last overload gave the following error. Argument of type '"timeEnd"' is not assignable to parameter of type 'Signals'. -lib/utils/error-handler.js(149,11): error TS2339: Property 'code' does not exist on type 'Error'. -lib/utils/error-handler.js(151,8): error TS2339: Property 'code' does not exist on type 'Error'. -lib/utils/error-handler.js(182,18): error TS2339: Property 'code' does not exist on type 'Error'. -lib/utils/error-handler.js(190,18): error TS2339: Property 'errno' does not exist on type 'Error'. -lib/utils/error-handler.js(190,42): error TS2339: Property 'errno' does not exist on type 'Error'. -lib/utils/error-handler.js(190,60): error TS2339: Property 'code' does not exist on type 'Error'. -lib/utils/error-handler.js(190,83): error TS2339: Property 'code' does not exist on type 'Error'. +lib/utils/exit-handler.js(26,11): error TS2339: Property 'verbose' does not exist on type '{}'. +lib/utils/exit-handler.js(31,9): error TS2339: Property 'info' does not exist on type '{}'. +lib/utils/exit-handler.js(33,9): error TS2339: Property 'verbose' does not exist on type '{}'. +lib/utils/exit-handler.js(38,9): error TS2339: Property 'error' does not exist on type '{}'. +lib/utils/exit-handler.js(40,9): error TS2339: Property 'error' does not exist on type '{}'. +lib/utils/exit-handler.js(41,9): error TS2339: Property 'error' does not exist on type '{}'. +lib/utils/exit-handler.js(57,9): error TS2339: Property 'error' does not exist on type '{}'. +lib/utils/exit-handler.js(80,7): error TS2339: Property 'disableProgress' does not exist on type '{}'. +lib/utils/exit-handler.js(98,13): error TS2339: Property 'level' does not exist on type '{}'. +lib/utils/exit-handler.js(99,9): error TS2339: Property 'level' does not exist on type '{}'. +lib/utils/exit-handler.js(100,9): error TS2339: Property 'notice' does not exist on type '{}'. +lib/utils/exit-handler.js(101,9): error TS2339: Property 'level' does not exist on type '{}'. +lib/utils/exit-handler.js(120,11): error TS2339: Property 'error' does not exist on type '{}'. +lib/utils/exit-handler.js(123,11): error TS2339: Property 'error' does not exist on type '{}'. +lib/utils/exit-handler.js(126,16): error TS2339: Property 'code' does not exist on type 'Error'. +lib/utils/exit-handler.js(128,13): error TS2339: Property 'code' does not exist on type 'Error'. +lib/utils/exit-handler.js(134,15): error TS2339: Property 'verbose' does not exist on type '{}'. +lib/utils/exit-handler.js(139,11): error TS2339: Property 'verbose' does not exist on type '{}'. +lib/utils/exit-handler.js(140,11): error TS2339: Property 'verbose' does not exist on type '{}'. +lib/utils/exit-handler.js(141,11): error TS2339: Property 'verbose' does not exist on type '{}'. +lib/utils/exit-handler.js(142,11): error TS2339: Property 'verbose' does not exist on type '{}'. +lib/utils/exit-handler.js(143,11): error TS2339: Property 'verbose' does not exist on type '{}'. +lib/utils/exit-handler.js(148,15): error TS2339: Property 'error' does not exist on type '{}'. +lib/utils/exit-handler.js(154,13): error TS2339: Property 'error' does not exist on type '{}'. +lib/utils/exit-handler.js(160,23): error TS2339: Property 'code' does not exist on type 'Error'. +lib/utils/exit-handler.js(168,22): error TS2339: Property 'errno' does not exist on type 'Error'. +lib/utils/exit-handler.js(169,24): error TS2339: Property 'errno' does not exist on type 'Error'. +lib/utils/exit-handler.js(170,29): error TS2339: Property 'code' does not exist on type 'Error'. +lib/utils/exit-handler.js(171,24): error TS2339: Property 'code' does not exist on type 'Error'. +lib/utils/exit-handler.js(176,7): error TS2339: Property 'verbose' does not exist on type '{}'. lib/utils/is-windows-bash.js(3,26): error TS2345: Argument of type 'string | undefined' is not assignable to parameter of type 'string'. Type 'undefined' is not assignable to type 'string'. -lib/utils/npm-usage.js(61,15): error TS2322: Type 'string' is not assignable to type 'never'. -lib/utils/npm-usage.js(61,18): error TS2322: Type 'any' is not assignable to type 'never'. -lib/utils/npm-usage.js(65,26): error TS2339: Property 'localeCompare' does not exist on type 'never'. -lib/utils/npm-usage.js(66,11): error TS2488: Type 'never' must have a '[Symbol.iterator]()' method that returns an iterator. -lib/utils/npm-usage.js(66,61): error TS2339: Property 'length' does not exist on type 'never'. -lib/utils/npm-usage.js(67,14): error TS2339: Property 'split' does not exist on type 'never'. -lib/utils/open-url.js(42,14): error TS2794: Expected 1 arguments, but got 0. Did you forget to include 'void' in your type argument to 'Promise'? +lib/utils/log-file.js(52,5): error TS2322: Type 'number' is not assignable to type 'null'. +lib/utils/log-file.js(53,5): error TS2322: Type 'number' is not assignable to type 'null'. +lib/utils/log-file.js(85,11): error TS2525: Initializer provides no value for this binding element and the binding element has no default value. +lib/utils/log-file.js(85,16): error TS2525: Initializer provides no value for this binding element and the binding element has no default value. +lib/utils/log-file.js(97,41): error TS2339: Property 'pipe' does not exist on type 'never'. +lib/utils/log-file.js(115,12): error TS2358: The left-hand side of an 'instanceof' expression must be of type 'any', an object type or a type parameter. +lib/utils/log-file.js(120,23): error TS2339: Property 'end' does not exist on type 'never'. +lib/utils/log-file.js(142,23): error TS2339: Property 'write' does not exist on type 'never'. +lib/utils/log-file.js(147,31): error TS2531: Object is possibly 'null'. +lib/utils/log-file.js(150,33): error TS2531: Object is possibly 'null'. +lib/utils/log-file.js(158,23): error TS2339: Property 'write' does not exist on type 'never'. +lib/utils/log-file.js(168,25): error TS2345: Argument of type 'null' is not assignable to parameter of type 'string'. +lib/utils/log-file.js(225,11): error TS2339: Property 'silly' does not exist on type '{}'. +lib/utils/log-file.js(231,15): error TS2339: Property 'silly' does not exist on type '{}'. +lib/utils/log-file.js(235,11): error TS2339: Property 'warn' does not exist on type '{}'. +lib/utils/open-url.js(49,14): error TS2794: Expected 1 arguments, but got 0. Did you forget to include 'void' in your type argument to 'Promise'? lib/utils/path.js(4,18): error TS2532: Object is possibly 'undefined'. -lib/utils/perf.js(11,18): error TS2769: No overload matches this call. - The last overload gave the following error. - Argument of type '"timing"' is not assignable to parameter of type '"removeListener"'. -lib/utils/reify-output.js(74,40): error TS2769: No overload matches this call. +lib/utils/pulse-till-done.js(15,9): error TS2339: Property 'gauge' does not exist on type '{}'. +lib/utils/queryable.js(282,24): error TS2525: Initializer provides no value for this binding element and the binding element has no default value. +lib/utils/queryable.js(293,12): error TS2345: Argument of type '{ data: any; key: any; value: symbol; }' is not assignable to parameter of type '{ data: any; key: any; value: any; force: any; }'. + Property 'force' is missing in type '{ data: any; key: any; value: symbol; }' but required in type '{ data: any; key: any; value: any; force: any; }'. +lib/utils/read-user-info.js(21,7): error TS2339: Property 'clearProgress' does not exist on type '{}'. +lib/utils/read-user-info.js(22,44): error TS2339: Property 'showProgress' does not exist on type '{}'. +lib/utils/read-user-info.js(47,11): error TS2339: Property 'warn' does not exist on type '{}'. +lib/utils/read-user-info.js(61,11): error TS2339: Property 'warn' does not exist on type '{}'. +lib/utils/reify-output.js(61,13): error TS2339: Property 'silly' does not exist on type '{}'. +lib/utils/reify-output.js(79,40): error TS2769: No overload matches this call. Overload 1 of 2, '(value: any, replacer?: ((this: any, key: string, value: any) => any) | undefined, space?: string | number | undefined): string', gave the following error. - Argument of type '0' is not assignable to parameter of type '((this: any, key: string, value: any) => any) | undefined'. + Argument of type 'number' is not assignable to parameter of type '(this: any, key: string, value: any) => any'. Overload 2 of 2, '(value: any, replacer?: (string | number)[] | null | undefined, space?: string | number | undefined): string', gave the following error. - Argument of type '0' is not assignable to parameter of type '(string | number)[] | null | undefined'. -lib/utils/update-notifier.js(29,50): error TS2362: The left-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type. -lib/utils/usage.js(8,21): error TS2769: No overload matches this call. + Argument of type 'number' is not assignable to parameter of type '(string | number)[]'. +lib/utils/tar.js(13,7): error TS2339: Property 'notice' does not exist on type '{}'. +lib/utils/tar.js(14,7): error TS2339: Property 'notice' does not exist on type '{}'. +lib/utils/tar.js(15,7): error TS2339: Property 'notice' does not exist on type '{}'. +lib/utils/tar.js(17,9): error TS2339: Property 'notice' does not exist on type '{}'. +lib/utils/tar.js(34,9): error TS2339: Property 'notice' does not exist on type '{}'. +lib/utils/tar.js(35,41): error TS2339: Property 'notice' does not exist on type '{}'. +lib/utils/tar.js(37,7): error TS2339: Property 'notice' does not exist on type '{}'. +lib/utils/tar.js(38,7): error TS2339: Property 'notice' does not exist on type '{}'. +lib/utils/tar.js(69,7): error TS2339: Property 'notice' does not exist on type '{}'. +lib/utils/timers.js(25,5): error TS2322: Type 'string' is not assignable to type 'null'. +lib/utils/timers.js(42,18): error TS2769: No overload matches this call. + The last overload gave the following error. + Argument of type '"time"' is not assignable to parameter of type 'Signals'. +lib/utils/timers.js(46,3): error TS2416: Property 'on' in type 'Timers' is not assignable to the same property in base type 'EventEmitter'. + Type '(listener: any) => void' is not assignable to type '(eventName: string | symbol, listener: (...args: any[]) => void) => this'. + Type 'void' is not assignable to type 'this'. + 'this' could be instantiated with an arbitrary type which could be unrelated to 'void'. +lib/utils/timers.js(55,3): error TS2416: Property 'off' in type 'Timers' is not assignable to the same property in base type 'EventEmitter'. + Type '(listener: any) => void' is not assignable to type '(eventName: string | symbol, listener: (...args: any[]) => void) => this'. + Type 'void' is not assignable to type 'this'. + 'this' could be instantiated with an arbitrary type which could be unrelated to 'void'. +lib/utils/timers.js(83,22): error TS2345: Argument of type 'null' is not assignable to parameter of type 'string'. +lib/utils/timers.js(91,11): error TS2339: Property 'warn' does not exist on type '{}'. +lib/utils/timers.js(106,11): error TS2339: Property 'silly' does not exist on type '{}'. +lib/utils/update-notifier.js(32,50): error TS2362: The left-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type. +lib/utils/usage.js(9,21): error TS2769: No overload matches this call. Overload 1 of 2, '(...items: ConcatArray[]): never[]', gave the following error. Argument of type 'string' is not assignable to parameter of type 'ConcatArray'. Overload 2 of 2, '(...items: ConcatArray[]): never[]', gave the following error. Argument of type 'string' is not assignable to parameter of type 'ConcatArray'. -lib/version.js(10,14): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Version'. -lib/view.js(38,14): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'View'. -lib/view.js(215,10): error TS2339: Property 'statusCode' does not exist on type 'Error'. -lib/view.js(216,10): error TS2339: Property 'code' does not exist on type 'Error'. -lib/view.js(217,10): error TS2339: Property 'pkgid' does not exist on type 'Error'. -lib/whoami.js(11,14): error TS2699: Static property 'name' conflicts with built-in property 'Function.name' of constructor function 'Whoami'. diff --git a/tests/baselines/reference/user/npmlog.log b/tests/baselines/reference/user/npmlog.log index 9277dee1127d0..ed5e24c2096a3 100644 --- a/tests/baselines/reference/user/npmlog.log +++ b/tests/baselines/reference/user/npmlog.log @@ -9,6 +9,7 @@ node_modules/npmlog/log.js(90,46): error TS2339: Property 'showProgress' does no node_modules/npmlog/log.js(91,8): error TS2339: Property 'gauge' does not exist on type 'disableProgress'. node_modules/npmlog/log.js(150,12): error TS2339: Property 'progressEnabled' does not exist on type 'pause'. node_modules/npmlog/log.js(150,34): error TS2339: Property 'gauge' does not exist on type 'pause'. +node_modules/npmlog/log.js(159,3): error TS2532: Object is possibly 'undefined'. node_modules/npmlog/log.js(162,12): error TS2339: Property 'progressEnabled' does not exist on type 'resume'. node_modules/npmlog/log.js(162,34): error TS2339: Property 'gauge' does not exist on type 'resume'. node_modules/npmlog/log.js(171,16): error TS2339: Property 'levels' does not exist on type '(Anonymous function)'. @@ -21,13 +22,16 @@ node_modules/npmlog/log.js(207,18): error TS2339: Property 'maxRecordSize' does node_modules/npmlog/log.js(208,11): error TS2532: Object is possibly 'undefined'. node_modules/npmlog/log.js(211,19): error TS2532: Object is possibly 'undefined'. node_modules/npmlog/log.js(214,8): error TS2339: Property 'emitLog' does not exist on type '(Anonymous function)'. -node_modules/npmlog/log.js(218,12): error TS2551: Property '_paused' does not exist on type '{ addListener(event: string | symbol, listener: (...args: any[]) => void): EventEmitter; on(event: string | symbol, listener: (...args: any[]) => void): EventEmitter; ... 42 more ...; disp: {}; }'. Did you mean 'pause'? +node_modules/npmlog/log.js(218,12): error TS2551: Property '_paused' does not exist on type '{ addListener(eventName: string | symbol, listener: (...args: any[]) => void): EventEmitter; on(eventName: string | symbol, listener: (...args: any[]) => void): EventEmitter; ... 42 more ...; disp: {}; }'. Did you mean 'pause'? node_modules/npmlog/log.js(271,16): error TS2769: No overload matches this call. Overload 1 of 2, '(buffer: string | Uint8Array, cb?: ((err?: Error | undefined) => void) | undefined): boolean', gave the following error. Argument of type 'string | undefined' is not assignable to parameter of type 'string | Uint8Array'. Type 'undefined' is not assignable to type 'string | Uint8Array'. Overload 2 of 2, '(str: string | Uint8Array, encoding?: BufferEncoding | undefined, cb?: ((err?: Error | undefined) => void) | undefined): boolean', gave the following error. Argument of type 'string | undefined' is not assignable to parameter of type 'string | Uint8Array'. +node_modules/npmlog/log.js(277,8): error TS2339: Property 'levels' does not exist on type 'addLevel'. +node_modules/npmlog/log.js(278,8): error TS2339: Property 'style' does not exist on type 'addLevel'. +node_modules/npmlog/log.js(289,8): error TS2339: Property 'disp' does not exist on type 'addLevel'. diff --git a/tests/baselines/reference/user/puppeteer.log b/tests/baselines/reference/user/puppeteer.log deleted file mode 100644 index 3e2d52a03ad3d..0000000000000 --- a/tests/baselines/reference/user/puppeteer.log +++ /dev/null @@ -1,9 +0,0 @@ -Exit Code: 2 -Standard output: -src/common/fetch.ts(21,3): error TS2322: Type '((input: RequestInfo, init?: RequestInit) => Promise) | typeof import("../../../node_modules/@types/node-fetch/index")' is not assignable to type '(input: RequestInfo, init?: RequestInit) => Promise'. - Type 'typeof import("../../../node_modules/@types/node-fetch/index")' is not assignable to type '(input: RequestInfo, init?: RequestInit) => Promise'. - Type 'typeof import("../../../node_modules/@types/node-fetch/index")' provides no match for the signature '(input: RequestInfo, init?: RequestInit): Promise'. - - - -Standard error: diff --git a/tests/baselines/reference/user/soap.log b/tests/baselines/reference/user/soap.log deleted file mode 100644 index a3f03a8381276..0000000000000 --- a/tests/baselines/reference/user/soap.log +++ /dev/null @@ -1,14 +0,0 @@ -Exit Code: 2 -Standard output: -node_modules/soap/lib/client.d.ts(4,26): error TS7016: Could not find a declaration file for module 'request'. '../../../tests/cases/user/soap/node_modules/request/index.js' implicitly has an 'any' type. - Try `npm i --save-dev @types/request` if it exists or add a new declaration (.d.ts) file containing `declare module 'request';` -node_modules/soap/lib/http.d.ts(2,22): error TS7016: Could not find a declaration file for module 'request'. '../../../tests/cases/user/soap/node_modules/request/index.js' implicitly has an 'any' type. - Try `npm i --save-dev @types/request` if it exists or add a new declaration (.d.ts) file containing `declare module 'request';` -node_modules/soap/lib/types.d.ts(1,22): error TS7016: Could not find a declaration file for module 'request'. '../../../tests/cases/user/soap/node_modules/request/index.js' implicitly has an 'any' type. - Try `npm i --save-dev @types/request` if it exists or add a new declaration (.d.ts) file containing `declare module 'request';` -node_modules/soap/lib/wsdl/index.d.ts(1,22): error TS7016: Could not find a declaration file for module 'sax'. '../../../tests/cases/user/soap/node_modules/sax/lib/sax.js' implicitly has an 'any' type. - Try `npm i --save-dev @types/sax` if it exists or add a new declaration (.d.ts) file containing `declare module 'sax';` - - - -Standard error: diff --git a/tests/baselines/reference/user/ts-toolbelt.log b/tests/baselines/reference/user/ts-toolbelt.log deleted file mode 100644 index 207b5f6fbb76a..0000000000000 --- a/tests/baselines/reference/user/ts-toolbelt.log +++ /dev/null @@ -1,7 +0,0 @@ -Exit Code: 2 -Standard output: -index.ts(8,83): error TS2344: Type 'string' does not satisfy the constraint 'number'. - - - -Standard error: diff --git a/tests/baselines/reference/user/uglify-js.log b/tests/baselines/reference/user/uglify-js.log index 2da7614ff8693..ef2d74f6da3a0 100644 --- a/tests/baselines/reference/user/uglify-js.log +++ b/tests/baselines/reference/user/uglify-js.log @@ -1,267 +1,383 @@ Exit Code: 2 Standard output: -node_modules/uglify-js/lib/ast.js(128,34): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/ast.js(346,38): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/ast.js(559,33): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/ast.js(1970,5): error TS2322: Type '{ visit: (node: any, descend: any) => void; parent: (n: any) => any; push: typeof push; pop: typeof pop; self: () => any; find_parent: (type: any) => any; has_directive: (type: any) => any; loopcontrol_target: (node: any) => any; in_boolean_context: () => boolean | undefined; }' is not assignable to type 'TreeWalker'. +node_modules/uglify-js/lib/ast.js(126,34): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/ast.js(391,38): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/ast.js(604,33): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/ast.js(2029,5): error TS2322: Type '{ visit: (node: any, descend: any) => void; parent: (n: any) => any; push: typeof push; pop: typeof pop; self: () => any; find_parent: (type: any) => any; has_directive: (type: any) => any; loopcontrol_target: (node: any) => any; in_boolean_context: () => boolean | ... 1 more ... | undefined; }' is not assignable to type 'TreeWalker'. Object literal may only specify known properties, and 'visit' does not exist in type 'TreeWalker'. -node_modules/uglify-js/lib/ast.js(1971,14): error TS2339: Property 'push' does not exist on type 'TreeWalker'. -node_modules/uglify-js/lib/ast.js(1974,14): error TS2339: Property 'pop' does not exist on type 'TreeWalker'. -node_modules/uglify-js/lib/ast.js(2029,25): error TS2339: Property 'self' does not exist on type 'TreeWalker'. -node_modules/uglify-js/lib/ast.js(2030,37): error TS2339: Property 'parent' does not exist on type 'TreeWalker'. -node_modules/uglify-js/lib/ast.js(2046,52): error TS2339: Property 'parent' does not exist on type 'TreeWalker'. -node_modules/uglify-js/lib/compress.js(203,42): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/compress.js(673,42): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/compress.js(768,16): error TS2339: Property 'walk' does not exist on type 'reduce_iife'. -node_modules/uglify-js/lib/compress.js(768,36): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/compress.js(778,28): error TS2339: Property 'uses_arguments' does not exist on type 'reduce_iife'. -node_modules/uglify-js/lib/compress.js(779,16): error TS2339: Property 'argnames' does not exist on type 'reduce_iife'. -node_modules/uglify-js/lib/compress.js(782,32): error TS2339: Property 'argnames' does not exist on type 'reduce_iife'. -node_modules/uglify-js/lib/compress.js(788,27): error TS2339: Property 'rest' does not exist on type 'reduce_iife'. -node_modules/uglify-js/lib/compress.js(790,27): error TS2339: Property 'rest' does not exist on type 'reduce_iife'. -node_modules/uglify-js/lib/compress.js(791,50): error TS2339: Property 'argnames' does not exist on type 'reduce_iife'. -node_modules/uglify-js/lib/compress.js(1122,20): error TS2339: Property 'name' does not exist on type '(Anonymous function)'. -node_modules/uglify-js/lib/compress.js(1122,46): error TS2339: Property 'name' does not exist on type '(Anonymous function)'. -node_modules/uglify-js/lib/compress.js(1122,72): error TS2339: Property 'name' does not exist on type '(Anonymous function)'. -node_modules/uglify-js/lib/compress.js(1128,26): error TS2339: Property 'name' does not exist on type '(Anonymous function)'. -node_modules/uglify-js/lib/compress.js(1173,26): error TS2339: Property 'definition' does not exist on type '(Anonymous function)'. -node_modules/uglify-js/lib/compress.js(1182,56): error TS2339: Property 'scope' does not exist on type '(Anonymous function)'. -node_modules/uglify-js/lib/compress.js(1186,26): error TS2339: Property 'in_arg' does not exist on type '(Anonymous function)'. -node_modules/uglify-js/lib/compress.js(1187,34): error TS2339: Property 'fixed_value' does not exist on type '(Anonymous function)'. -node_modules/uglify-js/lib/compress.js(1197,49): error TS2339: Property 'scope' does not exist on type '(Anonymous function)'. -node_modules/uglify-js/lib/compress.js(1212,42): error TS2339: Property 'scope' does not exist on type '(Anonymous function)'. -node_modules/uglify-js/lib/compress.js(1341,33): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/compress.js(1346,12): error TS2339: Property 'defun_ids' does not exist on type 'TreeWalker'. -node_modules/uglify-js/lib/compress.js(1347,12): error TS2339: Property 'defun_visited' does not exist on type 'TreeWalker'. -node_modules/uglify-js/lib/compress.js(1349,12): error TS2339: Property 'in_loop' does not exist on type 'TreeWalker'. -node_modules/uglify-js/lib/compress.js(1350,12): error TS2339: Property 'loop_ids' does not exist on type 'TreeWalker'. -node_modules/uglify-js/lib/compress.js(1355,12): error TS2339: Property 'safe_ids' does not exist on type 'TreeWalker'. -node_modules/uglify-js/lib/compress.js(1403,37): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/compress.js(1431,33): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/compress.js(1629,33): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/compress.js(1731,38): error TS2339: Property 'parent' does not exist on type 'TreeTransformer'. -node_modules/uglify-js/lib/compress.js(1746,51): error TS2349: This expression is not callable. +node_modules/uglify-js/lib/compress.js(215,22): error TS2339: Property 'option' does not exist on type 'TreeTransformer'. +node_modules/uglify-js/lib/compress.js(218,22): error TS2339: Property 'exposed' does not exist on type 'TreeTransformer'. +node_modules/uglify-js/lib/compress.js(224,16): error TS2532: Object is possibly 'undefined'. +node_modules/uglify-js/lib/compress.js(227,22): error TS2339: Property 'compress' does not exist on type 'TreeTransformer'. +node_modules/uglify-js/lib/compress.js(244,38): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(755,42): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(858,16): error TS2339: Property 'walk' does not exist on type 'reduce_iife'. +node_modules/uglify-js/lib/compress.js(858,36): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(868,28): error TS2339: Property 'uses_arguments' does not exist on type 'reduce_iife'. +node_modules/uglify-js/lib/compress.js(869,16): error TS2339: Property 'argnames' does not exist on type 'reduce_iife'. +node_modules/uglify-js/lib/compress.js(872,32): error TS2339: Property 'argnames' does not exist on type 'reduce_iife'. +node_modules/uglify-js/lib/compress.js(878,27): error TS2339: Property 'rest' does not exist on type 'reduce_iife'. +node_modules/uglify-js/lib/compress.js(880,24): error TS2339: Property 'rest' does not exist on type 'reduce_iife'. +node_modules/uglify-js/lib/compress.js(882,58): error TS2339: Property 'argnames' does not exist on type 'reduce_iife'. +node_modules/uglify-js/lib/compress.js(948,21): error TS2454: Variable 'lazy' is used before being assigned. +node_modules/uglify-js/lib/compress.js(950,21): error TS2454: Variable 'lazy' is used before being assigned. +node_modules/uglify-js/lib/compress.js(1066,32): error TS2454: Variable 'drop' is used before being assigned. +node_modules/uglify-js/lib/compress.js(1249,20): error TS2339: Property 'name' does not exist on type '(Anonymous function)'. +node_modules/uglify-js/lib/compress.js(1249,46): error TS2339: Property 'name' does not exist on type '(Anonymous function)'. +node_modules/uglify-js/lib/compress.js(1249,72): error TS2339: Property 'name' does not exist on type '(Anonymous function)'. +node_modules/uglify-js/lib/compress.js(1254,26): error TS2339: Property 'name' does not exist on type '(Anonymous function)'. +node_modules/uglify-js/lib/compress.js(1304,26): error TS2339: Property 'definition' does not exist on type '(Anonymous function)'. +node_modules/uglify-js/lib/compress.js(1322,56): error TS2339: Property 'scope' does not exist on type '(Anonymous function)'. +node_modules/uglify-js/lib/compress.js(1326,26): error TS2339: Property 'in_arg' does not exist on type '(Anonymous function)'. +node_modules/uglify-js/lib/compress.js(1327,34): error TS2339: Property 'fixed_value' does not exist on type '(Anonymous function)'. +node_modules/uglify-js/lib/compress.js(1336,49): error TS2339: Property 'scope' does not exist on type '(Anonymous function)'. +node_modules/uglify-js/lib/compress.js(1349,42): error TS2339: Property 'scope' does not exist on type '(Anonymous function)'. +node_modules/uglify-js/lib/compress.js(1509,33): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(1514,12): error TS2339: Property 'fn_scanning' does not exist on type 'TreeWalker'. +node_modules/uglify-js/lib/compress.js(1515,12): error TS2339: Property 'fn_visited' does not exist on type 'TreeWalker'. +node_modules/uglify-js/lib/compress.js(1517,12): error TS2339: Property 'in_loop' does not exist on type 'TreeWalker'. +node_modules/uglify-js/lib/compress.js(1518,12): error TS2339: Property 'loop_ids' does not exist on type 'TreeWalker'. +node_modules/uglify-js/lib/compress.js(1523,12): error TS2339: Property 'safe_ids' does not exist on type 'TreeWalker'. +node_modules/uglify-js/lib/compress.js(1582,37): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(1610,33): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(1803,33): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(1983,38): error TS2339: Property 'parent' does not exist on type 'TreeTransformer'. +node_modules/uglify-js/lib/compress.js(2035,51): error TS2349: This expression is not callable. Not all constituents of type 'true | ((node: any, tw: any) => any)' are callable. Type 'true' has no call signatures. -node_modules/uglify-js/lib/compress.js(1800,61): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/compress.js(1855,53): error TS2339: Property 'parent' does not exist on type 'TreeTransformer'. -node_modules/uglify-js/lib/compress.js(1876,53): error TS2339: Property 'parent' does not exist on type 'TreeTransformer'. -node_modules/uglify-js/lib/compress.js(1931,77): error TS2454: Variable 'args' is used before being assigned. -node_modules/uglify-js/lib/compress.js(1932,33): error TS2532: Object is possibly 'undefined'. -node_modules/uglify-js/lib/compress.js(1932,42): error TS2532: Object is possibly 'undefined'. -node_modules/uglify-js/lib/compress.js(1955,29): error TS2322: Type 'boolean' is not assignable to type 'number'. -node_modules/uglify-js/lib/compress.js(1957,25): error TS2322: Type 'boolean' is not assignable to type 'never'. -node_modules/uglify-js/lib/compress.js(2187,65): error TS2339: Property 'find_parent' does not exist on type 'TreeWalker'. -node_modules/uglify-js/lib/compress.js(2190,45): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/compress.js(2368,38): error TS2339: Property 'parent' does not exist on type 'TreeTransformer'. -node_modules/uglify-js/lib/compress.js(2398,38): error TS2339: Property 'parent' does not exist on type 'TreeTransformer'. -node_modules/uglify-js/lib/compress.js(2405,38): error TS2339: Property 'parent' does not exist on type 'TreeTransformer'. -node_modules/uglify-js/lib/compress.js(2408,35): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/compress.js(2450,39): error TS2339: Property 'parent' does not exist on type 'TreeTransformer'. -node_modules/uglify-js/lib/compress.js(2481,38): error TS2339: Property 'parent' does not exist on type 'TreeTransformer'. -node_modules/uglify-js/lib/compress.js(2496,39): error TS2339: Property 'parent' does not exist on type 'TreeTransformer'. -node_modules/uglify-js/lib/compress.js(2521,35): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/compress.js(2527,45): error TS2339: Property 'stack' does not exist on type 'TreeTransformer'. -node_modules/uglify-js/lib/compress.js(2528,33): error TS2339: Property 'stack' does not exist on type 'TreeTransformer'. -node_modules/uglify-js/lib/compress.js(2530,33): error TS2339: Property 'stack' does not exist on type 'TreeTransformer'. -node_modules/uglify-js/lib/compress.js(2614,45): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/compress.js(2635,42): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/compress.js(2675,41): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/compress.js(2832,53): error TS2345: Argument of type 'number[]' is not assignable to parameter of type '[start: number, deleteCount: number, ...items: never[]]'. +node_modules/uglify-js/lib/compress.js(2106,61): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(2162,53): error TS2339: Property 'parent' does not exist on type 'TreeTransformer'. +node_modules/uglify-js/lib/compress.js(2182,53): error TS2339: Property 'parent' does not exist on type 'TreeTransformer'. +node_modules/uglify-js/lib/compress.js(2262,77): error TS2454: Variable 'args' is used before being assigned. +node_modules/uglify-js/lib/compress.js(2263,33): error TS2532: Object is possibly 'undefined'. +node_modules/uglify-js/lib/compress.js(2263,42): error TS2532: Object is possibly 'undefined'. +node_modules/uglify-js/lib/compress.js(2271,42): error TS2532: Object is possibly 'undefined'. +node_modules/uglify-js/lib/compress.js(2271,54): error TS2365: Operator '+' cannot be applied to types 'number' and 'boolean'. +node_modules/uglify-js/lib/compress.js(2284,25): error TS2322: Type 'boolean' is not assignable to type 'number'. +node_modules/uglify-js/lib/compress.js(2288,25): error TS2322: Type 'boolean' is not assignable to type 'never'. +node_modules/uglify-js/lib/compress.js(2289,35): error TS2339: Property 'single_use' does not exist on type 'never'. +node_modules/uglify-js/lib/compress.js(2533,65): error TS2339: Property 'find_parent' does not exist on type 'TreeWalker'. +node_modules/uglify-js/lib/compress.js(2536,45): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(2715,38): error TS2339: Property 'parent' does not exist on type 'TreeTransformer'. +node_modules/uglify-js/lib/compress.js(2745,38): error TS2339: Property 'parent' does not exist on type 'TreeTransformer'. +node_modules/uglify-js/lib/compress.js(2756,37): error TS2339: Property 'stack' does not exist on type 'TreeTransformer'. +node_modules/uglify-js/lib/compress.js(2757,25): error TS2339: Property 'stack' does not exist on type 'TreeTransformer'. +node_modules/uglify-js/lib/compress.js(2759,25): error TS2339: Property 'stack' does not exist on type 'TreeTransformer'. +node_modules/uglify-js/lib/compress.js(2771,38): error TS2339: Property 'parent' does not exist on type 'TreeTransformer'. +node_modules/uglify-js/lib/compress.js(2774,35): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(2816,39): error TS2339: Property 'parent' does not exist on type 'TreeTransformer'. +node_modules/uglify-js/lib/compress.js(2850,38): error TS2339: Property 'parent' does not exist on type 'TreeTransformer'. +node_modules/uglify-js/lib/compress.js(2865,39): error TS2339: Property 'parent' does not exist on type 'TreeTransformer'. +node_modules/uglify-js/lib/compress.js(2885,35): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(2997,45): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(3018,42): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(3054,43): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(3077,41): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(3087,75): error TS2339: Property 'parent' does not exist on type 'TreeWalker'. +node_modules/uglify-js/lib/compress.js(3097,79): error TS2339: Property 'parent' does not exist on type 'TreeWalker'. +node_modules/uglify-js/lib/compress.js(3297,53): error TS2345: Argument of type 'number[]' is not assignable to parameter of type '[start: number, deleteCount: number, ...items: never[]]'. Source provides no match for required element at position 0 in target. -node_modules/uglify-js/lib/compress.js(3075,76): error TS2345: Argument of type 'any[]' is not assignable to parameter of type 'never[]'. - Type 'any' is not assignable to type 'never'. -node_modules/uglify-js/lib/compress.js(3200,59): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/compress.js(3238,53): error TS2345: Argument of type 'any[]' is not assignable to parameter of type '[start: number, deleteCount: number, ...items: never[]]'. +node_modules/uglify-js/lib/compress.js(3460,53): error TS2345: Argument of type 'any[]' is not assignable to parameter of type '[start: number, deleteCount: number, ...items: never[]]'. Source provides no match for required element at position 0 in target. -node_modules/uglify-js/lib/compress.js(3273,26): error TS2403: Subsequent variable declarations must have the same type. Variable 'i' must be of type 'number', but here has type 'any'. -node_modules/uglify-js/lib/compress.js(3501,34): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/compress.js(3522,27): error TS2339: Property 'required' does not exist on type 'any[]'. -node_modules/uglify-js/lib/compress.js(3527,43): error TS2345: Argument of type 'any[]' is not assignable to parameter of type 'never[]'. -node_modules/uglify-js/lib/compress.js(3566,30): error TS2339: Property 'fixed_value' does not exist on type '(Anonymous function)'. -node_modules/uglify-js/lib/compress.js(3570,20): error TS2790: The operand of a 'delete' operator must be optional. -node_modules/uglify-js/lib/compress.js(3617,30): error TS2339: Property 'fixed_value' does not exist on type '(Anonymous function)'. -node_modules/uglify-js/lib/compress.js(3621,20): error TS2790: The operand of a 'delete' operator must be optional. -node_modules/uglify-js/lib/compress.js(3682,22): error TS2339: Property 'is_undefined' does not exist on type '(Anonymous function)'. -node_modules/uglify-js/lib/compress.js(3684,49): error TS2339: Property 'is_declared' does not exist on type '(Anonymous function)'. -node_modules/uglify-js/lib/compress.js(3685,22): error TS2339: Property 'is_immutable' does not exist on type '(Anonymous function)'. -node_modules/uglify-js/lib/compress.js(3686,28): error TS2339: Property 'definition' does not exist on type '(Anonymous function)'. -node_modules/uglify-js/lib/compress.js(3690,30): error TS2339: Property 'fixed_value' does not exist on type '(Anonymous function)'. -node_modules/uglify-js/lib/compress.js(3743,22): error TS2551: Property 'is_undefined' does not exist on type '(Anonymous function)'. Did you mean 'is_defined'? -node_modules/uglify-js/lib/compress.js(3744,49): error TS2339: Property 'is_declared' does not exist on type '(Anonymous function)'. -node_modules/uglify-js/lib/compress.js(3745,22): error TS2339: Property 'is_immutable' does not exist on type '(Anonymous function)'. -node_modules/uglify-js/lib/compress.js(3746,30): error TS2339: Property 'fixed_value' does not exist on type '(Anonymous function)'. -node_modules/uglify-js/lib/compress.js(3750,20): error TS2790: The operand of a 'delete' operator must be optional. -node_modules/uglify-js/lib/compress.js(3792,30): error TS2339: Property 'fixed_value' does not exist on type '(Anonymous function)'. -node_modules/uglify-js/lib/compress.js(3796,20): error TS2790: The operand of a 'delete' operator must be optional. -node_modules/uglify-js/lib/compress.js(3882,30): error TS2339: Property 'fixed_value' does not exist on type '(Anonymous function)'. -node_modules/uglify-js/lib/compress.js(3886,20): error TS2790: The operand of a 'delete' operator must be optional. -node_modules/uglify-js/lib/compress.js(3934,30): error TS2339: Property 'fixed_value' does not exist on type '(Anonymous function)'. -node_modules/uglify-js/lib/compress.js(3938,20): error TS2790: The operand of a 'delete' operator must be optional. -node_modules/uglify-js/lib/compress.js(4204,44): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/compress.js(4443,55): error TS2345: Argument of type 'number' is not assignable to parameter of type 'string'. -node_modules/uglify-js/lib/compress.js(4444,25): error TS2531: Object is possibly 'null'. -node_modules/uglify-js/lib/compress.js(4444,55): error TS2363: The right-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type. -node_modules/uglify-js/lib/compress.js(4444,56): error TS2531: Object is possibly 'null'. -node_modules/uglify-js/lib/compress.js(4461,48): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/compress.js(4472,30): error TS2339: Property 'fixed_value' does not exist on type '(Anonymous function)'. -node_modules/uglify-js/lib/compress.js(4480,24): error TS2790: The operand of a 'delete' operator must be optional. -node_modules/uglify-js/lib/compress.js(4586,54): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/compress.js(4605,40): error TS2532: Object is possibly 'undefined'. -node_modules/uglify-js/lib/compress.js(4669,22): error TS2339: Property 'tag' does not exist on type '(Anonymous function)'. -node_modules/uglify-js/lib/compress.js(4670,50): error TS2339: Property 'tag' does not exist on type '(Anonymous function)'. -node_modules/uglify-js/lib/compress.js(4671,17): error TS2630: Cannot assign to 'decode' because it is a function. -node_modules/uglify-js/lib/compress.js(4675,39): error TS2339: Property 'expressions' does not exist on type '(Anonymous function)'. -node_modules/uglify-js/lib/compress.js(4678,35): error TS2339: Property 'strings' does not exist on type '(Anonymous function)'. -node_modules/uglify-js/lib/compress.js(4680,47): error TS2339: Property 'strings' does not exist on type '(Anonymous function)'. -node_modules/uglify-js/lib/compress.js(5116,38): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/compress.js(5136,29): error TS2322: Type 'string' is not assignable to type 'boolean'. -node_modules/uglify-js/lib/compress.js(5340,33): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/compress.js(5346,49): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/compress.js(5398,33): error TS2339: Property 'loopcontrol_target' does not exist on type 'TreeWalker'. -node_modules/uglify-js/lib/compress.js(5426,33): error TS2339: Property 'loopcontrol_target' does not exist on type 'TreeWalker'. -node_modules/uglify-js/lib/compress.js(5489,25): error TS2403: Subsequent variable declarations must have the same type. Variable 'marker' must be of type 'TreeWalker', but here has type '(node: any) => void'. -node_modules/uglify-js/lib/compress.js(5489,61): error TS2339: Property 'has_directive' does not exist on type 'TreeWalker'. -node_modules/uglify-js/lib/compress.js(5494,50): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/compress.js(5587,105): error TS2339: Property 'parent' does not exist on type 'TreeWalker'. -node_modules/uglify-js/lib/compress.js(5737,56): error TS2532: Object is possibly 'undefined'. -node_modules/uglify-js/lib/compress.js(5738,54): error TS2532: Object is possibly 'undefined'. -node_modules/uglify-js/lib/compress.js(5863,33): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/compress.js(5864,74): error TS2339: Property 'has_directive' does not exist on type 'TreeWalker'. -node_modules/uglify-js/lib/compress.js(5883,28): error TS2339: Property 'parent' does not exist on type 'TreeWalker'. -node_modules/uglify-js/lib/compress.js(5908,28): error TS2339: Property 'parent' does not exist on type 'TreeWalker'. -node_modules/uglify-js/lib/compress.js(5970,29): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/compress.js(6071,29): error TS2339: Property 'parent' does not exist on type 'TreeTransformer'. -node_modules/uglify-js/lib/compress.js(6151,58): error TS2339: Property 'has_directive' does not exist on type 'TreeTransformer'. -node_modules/uglify-js/lib/compress.js(6378,56): error TS2345: Argument of type 'any[]' is not assignable to parameter of type 'never[]'. -node_modules/uglify-js/lib/compress.js(6455,80): error TS2339: Property 'parent' does not exist on type 'TreeTransformer'. -node_modules/uglify-js/lib/compress.js(6507,61): error TS2339: Property 'parent' does not exist on type 'TreeTransformer'. -node_modules/uglify-js/lib/compress.js(6510,12): error TS2339: Property 'push' does not exist on type 'TreeTransformer'. -node_modules/uglify-js/lib/compress.js(6844,18): error TS2339: Property 'walk' does not exist on type '(Anonymous function)'. -node_modules/uglify-js/lib/compress.js(6844,38): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/compress.js(6868,28): error TS2339: Property 'parent' does not exist on type 'TreeTransformer'. -node_modules/uglify-js/lib/compress.js(6877,28): error TS2339: Property 'parent' does not exist on type 'TreeTransformer'. -node_modules/uglify-js/lib/compress.js(6883,33): error TS2339: Property 'find_variable' does not exist on type '(Anonymous function)'. -node_modules/uglify-js/lib/compress.js(6905,14): error TS2339: Property 'transform' does not exist on type '(Anonymous function)'. -node_modules/uglify-js/lib/compress.js(6909,50): error TS2339: Property 'each_argname' does not exist on type '(Anonymous function)'. -node_modules/uglify-js/lib/compress.js(6975,32): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/compress.js(7064,18): error TS2339: Property 'enclosed' does not exist on type '(Anonymous function)'. -node_modules/uglify-js/lib/compress.js(7067,18): error TS2339: Property 'variables' does not exist on type '(Anonymous function)'. -node_modules/uglify-js/lib/compress.js(7270,29): error TS2339: Property 'left' does not exist on type '(Anonymous function)'. -node_modules/uglify-js/lib/compress.js(7279,30): error TS2339: Property 'right' does not exist on type '(Anonymous function)'. -node_modules/uglify-js/lib/compress.js(7280,30): error TS2339: Property 'operator' does not exist on type '(Anonymous function)'. -node_modules/uglify-js/lib/compress.js(7496,23): error TS2454: Variable 'exprs' is used before being assigned. -node_modules/uglify-js/lib/compress.js(7497,20): error TS2454: Variable 'exprs' is used before being assigned. -node_modules/uglify-js/lib/compress.js(7577,28): error TS2339: Property 'expression' does not exist on type '(Anonymous function)'. -node_modules/uglify-js/lib/compress.js(7578,41): error TS2339: Property 'operator' does not exist on type '(Anonymous function)'. -node_modules/uglify-js/lib/compress.js(7582,22): error TS2339: Property 'operator' does not exist on type '(Anonymous function)'. -node_modules/uglify-js/lib/compress.js(7587,42): error TS2339: Property 'operator' does not exist on type '(Anonymous function)'. -node_modules/uglify-js/lib/compress.js(7618,33): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/compress.js(7620,44): error TS2339: Property 'loopcontrol_target' does not exist on type 'TreeWalker'. -node_modules/uglify-js/lib/compress.js(7624,56): error TS2339: Property 'push' does not exist on type 'TreeWalker'. -node_modules/uglify-js/lib/compress.js(7625,12): error TS2339: Property 'push' does not exist on type 'TreeWalker'. -node_modules/uglify-js/lib/compress.js(7693,38): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/compress.js(7749,21): error TS2403: Subsequent variable declarations must have the same type. Variable 'body' must be of type 'any[]', but here has type 'any'. -node_modules/uglify-js/lib/compress.js(7764,21): error TS2403: Subsequent variable declarations must have the same type. Variable 'body' must be of type 'any[]', but here has type 'any'. -node_modules/uglify-js/lib/compress.js(7890,33): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/compress.js(7892,33): error TS2339: Property 'parent' does not exist on type 'TreeWalker'. -node_modules/uglify-js/lib/compress.js(8059,17): error TS2403: Subsequent variable declarations must have the same type. Variable 'body' must be of type 'any[]', but here has type 'any'. -node_modules/uglify-js/lib/compress.js(8258,37): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/compress.js(8264,16): error TS2339: Property 'push' does not exist on type 'TreeWalker'. -node_modules/uglify-js/lib/compress.js(8307,21): error TS2403: Subsequent variable declarations must have the same type. Variable 'body' must be of type 'any[]', but here has type 'any'. -node_modules/uglify-js/lib/compress.js(8598,53): error TS2345: Argument of type 'any[]' is not assignable to parameter of type '[pattern: string | RegExp, flags?: string | undefined]'. +node_modules/uglify-js/lib/compress.js(3522,60): error TS2345: Argument of type 'any[]' is not assignable to parameter of type 'never[]'. + Type 'any' is not assignable to type 'never'. +node_modules/uglify-js/lib/compress.js(3694,59): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(3732,53): error TS2345: Argument of type 'any[]' is not assignable to parameter of type '[start: number, deleteCount: number, ...items: never[]]'. +node_modules/uglify-js/lib/compress.js(3786,26): error TS2403: Subsequent variable declarations must have the same type. Variable 'i' must be of type 'number', but here has type 'any'. +node_modules/uglify-js/lib/compress.js(4038,34): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(4065,27): error TS2339: Property 'required' does not exist on type 'any[]'. +node_modules/uglify-js/lib/compress.js(4068,43): error TS2345: Argument of type 'any[]' is not assignable to parameter of type 'never[]'. +node_modules/uglify-js/lib/compress.js(4111,30): error TS2339: Property 'fixed_value' does not exist on type '(Anonymous function)'. +node_modules/uglify-js/lib/compress.js(4115,20): error TS2790: The operand of a 'delete' operator must be optional. +node_modules/uglify-js/lib/compress.js(4162,30): error TS2339: Property 'fixed_value' does not exist on type '(Anonymous function)'. +node_modules/uglify-js/lib/compress.js(4166,20): error TS2790: The operand of a 'delete' operator must be optional. +node_modules/uglify-js/lib/compress.js(4231,22): error TS2339: Property 'is_undefined' does not exist on type '(Anonymous function)'. +node_modules/uglify-js/lib/compress.js(4233,49): error TS2339: Property 'is_declared' does not exist on type '(Anonymous function)'. +node_modules/uglify-js/lib/compress.js(4234,22): error TS2339: Property 'is_immutable' does not exist on type '(Anonymous function)'. +node_modules/uglify-js/lib/compress.js(4235,28): error TS2339: Property 'definition' does not exist on type '(Anonymous function)'. +node_modules/uglify-js/lib/compress.js(4239,30): error TS2339: Property 'fixed_value' does not exist on type '(Anonymous function)'. +node_modules/uglify-js/lib/compress.js(4292,22): error TS2551: Property 'is_undefined' does not exist on type '(Anonymous function)'. Did you mean 'is_defined'? +node_modules/uglify-js/lib/compress.js(4293,49): error TS2339: Property 'is_declared' does not exist on type '(Anonymous function)'. +node_modules/uglify-js/lib/compress.js(4294,22): error TS2339: Property 'is_immutable' does not exist on type '(Anonymous function)'. +node_modules/uglify-js/lib/compress.js(4295,30): error TS2339: Property 'fixed_value' does not exist on type '(Anonymous function)'. +node_modules/uglify-js/lib/compress.js(4299,20): error TS2790: The operand of a 'delete' operator must be optional. +node_modules/uglify-js/lib/compress.js(4341,30): error TS2339: Property 'fixed_value' does not exist on type '(Anonymous function)'. +node_modules/uglify-js/lib/compress.js(4345,20): error TS2790: The operand of a 'delete' operator must be optional. +node_modules/uglify-js/lib/compress.js(4428,30): error TS2339: Property 'fixed_value' does not exist on type '(Anonymous function)'. +node_modules/uglify-js/lib/compress.js(4438,20): error TS2790: The operand of a 'delete' operator must be optional. +node_modules/uglify-js/lib/compress.js(4489,30): error TS2339: Property 'fixed_value' does not exist on type '(Anonymous function)'. +node_modules/uglify-js/lib/compress.js(4493,20): error TS2790: The operand of a 'delete' operator must be optional. +node_modules/uglify-js/lib/compress.js(4768,44): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(5012,58): error TS2345: Argument of type 'number' is not assignable to parameter of type 'string'. +node_modules/uglify-js/lib/compress.js(5013,25): error TS2531: Object is possibly 'null'. +node_modules/uglify-js/lib/compress.js(5013,55): error TS2363: The right-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type. +node_modules/uglify-js/lib/compress.js(5013,56): error TS2531: Object is possibly 'null'. +node_modules/uglify-js/lib/compress.js(5030,48): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(5041,30): error TS2339: Property 'fixed_value' does not exist on type '(Anonymous function)'. +node_modules/uglify-js/lib/compress.js(5049,24): error TS2790: The operand of a 'delete' operator must be optional. +node_modules/uglify-js/lib/compress.js(5156,54): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(5175,40): error TS2532: Object is possibly 'undefined'. +node_modules/uglify-js/lib/compress.js(5242,22): error TS2339: Property 'tag' does not exist on type '(Anonymous function)'. +node_modules/uglify-js/lib/compress.js(5243,50): error TS2339: Property 'tag' does not exist on type '(Anonymous function)'. +node_modules/uglify-js/lib/compress.js(5244,17): error TS2630: Cannot assign to 'decode' because it is a function. +node_modules/uglify-js/lib/compress.js(5248,39): error TS2339: Property 'expressions' does not exist on type '(Anonymous function)'. +node_modules/uglify-js/lib/compress.js(5251,35): error TS2339: Property 'strings' does not exist on type '(Anonymous function)'. +node_modules/uglify-js/lib/compress.js(5253,47): error TS2339: Property 'strings' does not exist on type '(Anonymous function)'. +node_modules/uglify-js/lib/compress.js(5630,26): error TS2339: Property 'args' does not exist on type '(Anonymous function)'. +node_modules/uglify-js/lib/compress.js(5631,22): error TS2339: Property 'is_expr_pure' does not exist on type '(Anonymous function)'. +node_modules/uglify-js/lib/compress.js(5633,43): error TS2339: Property 'expression' does not exist on type '(Anonymous function)'. +node_modules/uglify-js/lib/compress.js(5634,20): error TS2790: The operand of a 'delete' operator must be optional. +node_modules/uglify-js/lib/compress.js(5702,26): error TS2339: Property 'expressions' does not exist on type '(Anonymous function)'. +node_modules/uglify-js/lib/compress.js(5703,22): error TS2339: Property 'is_expr_pure' does not exist on type '(Anonymous function)'. +node_modules/uglify-js/lib/compress.js(5704,23): error TS2339: Property 'tag' does not exist on type '(Anonymous function)'. +node_modules/uglify-js/lib/compress.js(5706,43): error TS2339: Property 'tag' does not exist on type '(Anonymous function)'. +node_modules/uglify-js/lib/compress.js(5707,20): error TS2790: The operand of a 'delete' operator must be optional. +node_modules/uglify-js/lib/compress.js(5756,38): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(5776,29): error TS2322: Type 'string' is not assignable to type 'boolean'. +node_modules/uglify-js/lib/compress.js(5996,33): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(6002,49): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(6051,33): error TS2339: Property 'loopcontrol_target' does not exist on type 'TreeWalker'. +node_modules/uglify-js/lib/compress.js(6081,30): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(6083,29): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(6093,33): error TS2339: Property 'loopcontrol_target' does not exist on type 'TreeWalker'. +node_modules/uglify-js/lib/compress.js(6148,25): error TS2403: Subsequent variable declarations must have the same type. Variable 'marker' must be of type 'TreeWalker', but here has type '(node: any) => void'. +node_modules/uglify-js/lib/compress.js(6148,61): error TS2339: Property 'has_directive' does not exist on type 'TreeWalker'. +node_modules/uglify-js/lib/compress.js(6153,50): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(6258,105): error TS2339: Property 'parent' does not exist on type 'TreeWalker'. +node_modules/uglify-js/lib/compress.js(6452,56): error TS2532: Object is possibly 'undefined'. +node_modules/uglify-js/lib/compress.js(6453,54): error TS2532: Object is possibly 'undefined'. +node_modules/uglify-js/lib/compress.js(6578,33): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(6579,74): error TS2339: Property 'has_directive' does not exist on type 'TreeWalker'. +node_modules/uglify-js/lib/compress.js(6598,35): error TS2339: Property 'parent' does not exist on type 'TreeWalker'. +node_modules/uglify-js/lib/compress.js(6624,28): error TS2339: Property 'parent' does not exist on type 'TreeWalker'. +node_modules/uglify-js/lib/compress.js(6705,42): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(6717,29): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(6805,29): error TS2339: Property 'parent' does not exist on type 'TreeTransformer'. +node_modules/uglify-js/lib/compress.js(6818,35): error TS2339: Property 'assign' does not exist on type 'any[]'. +node_modules/uglify-js/lib/compress.js(6819,48): error TS2339: Property 'assign' does not exist on type 'any[]'. +node_modules/uglify-js/lib/compress.js(6895,38): error TS2532: Object is possibly 'undefined'. +node_modules/uglify-js/lib/compress.js(6898,33): error TS2403: Subsequent variable declarations must have the same type. Variable 'trimmed' must be of type 'any', but here has type '{ name: any; value: any; }'. +node_modules/uglify-js/lib/compress.js(6908,60): error TS2339: Property 'has_directive' does not exist on type 'TreeTransformer'. +node_modules/uglify-js/lib/compress.js(6934,42): error TS2532: Object is possibly 'undefined'. +node_modules/uglify-js/lib/compress.js(7166,56): error TS2345: Argument of type 'any[]' is not assignable to parameter of type 'never[]'. +node_modules/uglify-js/lib/compress.js(7211,21): error TS2403: Subsequent variable declarations must have the same type. Variable 'trimmed' must be of type 'any', but here has type '{ name: any; value: any; }'. +node_modules/uglify-js/lib/compress.js(7252,80): error TS2339: Property 'parent' does not exist on type 'TreeTransformer'. +node_modules/uglify-js/lib/compress.js(7282,61): error TS2339: Property 'parent' does not exist on type 'TreeTransformer'. +node_modules/uglify-js/lib/compress.js(7285,12): error TS2339: Property 'push' does not exist on type 'TreeTransformer'. +node_modules/uglify-js/lib/compress.js(7422,36): error TS2339: Property 'assign' does not exist on type 'any[]'. +node_modules/uglify-js/lib/compress.js(7806,18): error TS2339: Property 'walk' does not exist on type '(Anonymous function)'. +node_modules/uglify-js/lib/compress.js(7806,38): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(7830,28): error TS2339: Property 'parent' does not exist on type 'TreeTransformer'. +node_modules/uglify-js/lib/compress.js(7839,28): error TS2339: Property 'parent' does not exist on type 'TreeTransformer'. +node_modules/uglify-js/lib/compress.js(7845,33): error TS2339: Property 'find_variable' does not exist on type '(Anonymous function)'. +node_modules/uglify-js/lib/compress.js(7867,14): error TS2339: Property 'transform' does not exist on type '(Anonymous function)'. +node_modules/uglify-js/lib/compress.js(7871,50): error TS2339: Property 'each_argname' does not exist on type '(Anonymous function)'. +node_modules/uglify-js/lib/compress.js(7937,32): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(8065,31): error TS2322: Type 'Dictionary' is not assignable to type 'undefined'. +node_modules/uglify-js/lib/compress.js(8066,18): error TS2339: Property 'enclosed' does not exist on type '(Anonymous function)'. +node_modules/uglify-js/lib/compress.js(8067,17): error TS2532: Object is possibly 'undefined'. +node_modules/uglify-js/lib/compress.js(8069,18): error TS2339: Property 'variables' does not exist on type '(Anonymous function)'. +node_modules/uglify-js/lib/compress.js(8070,17): error TS2532: Object is possibly 'undefined'. +node_modules/uglify-js/lib/compress.js(8135,22): error TS2551: Property 'value' does not exist on type 'Dictionary'. Did you mean 'values'? +node_modules/uglify-js/lib/compress.js(8157,22): error TS2551: Property 'value' does not exist on type 'Dictionary'. Did you mean 'values'? +node_modules/uglify-js/lib/compress.js(8299,37): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(8301,24): error TS2339: Property 'parent' does not exist on type 'TreeWalker'. +node_modules/uglify-js/lib/compress.js(8375,29): error TS2339: Property 'left' does not exist on type '(Anonymous function)'. +node_modules/uglify-js/lib/compress.js(8382,30): error TS2339: Property 'operator' does not exist on type '(Anonymous function)'. +node_modules/uglify-js/lib/compress.js(8385,25): error TS2339: Property 'right' does not exist on type '(Anonymous function)'. +node_modules/uglify-js/lib/compress.js(8448,22): error TS2339: Property 'is_expr_pure' does not exist on type '(Anonymous function)'. +node_modules/uglify-js/lib/compress.js(8449,26): error TS2339: Property 'pure' does not exist on type '(Anonymous function)'. +node_modules/uglify-js/lib/compress.js(8449,99): error TS2339: Property 'start' does not exist on type '(Anonymous function)'. +node_modules/uglify-js/lib/compress.js(8450,38): error TS2339: Property 'args' does not exist on type '(Anonymous function)'. +node_modules/uglify-js/lib/compress.js(8453,28): error TS2339: Property 'expression' does not exist on type '(Anonymous function)'. +node_modules/uglify-js/lib/compress.js(8454,22): error TS2339: Property 'is_call_pure' does not exist on type '(Anonymous function)'. +node_modules/uglify-js/lib/compress.js(8455,34): error TS2339: Property 'args' does not exist on type '(Anonymous function)'. +node_modules/uglify-js/lib/compress.js(8461,33): error TS2339: Property 'clone' does not exist on type '(Anonymous function)'. +node_modules/uglify-js/lib/compress.js(8470,29): error TS2339: Property 'clone' does not exist on type '(Anonymous function)'. +node_modules/uglify-js/lib/compress.js(8471,22): error TS2339: Property 'expression' does not exist on type '(Anonymous function)'. +node_modules/uglify-js/lib/compress.js(8473,41): error TS2339: Property 'expression' does not exist on type '(Anonymous function)'. +node_modules/uglify-js/lib/compress.js(8480,42): error TS2339: Property 'args' does not exist on type '(Anonymous function)'. +node_modules/uglify-js/lib/compress.js(8487,30): error TS2339: Property 'expression' does not exist on type '(Anonymous function)'. +node_modules/uglify-js/lib/compress.js(8487,48): error TS2339: Property 'expression' does not exist on type '(Anonymous function)'. +node_modules/uglify-js/lib/compress.js(8488,30): error TS2339: Property 'args' does not exist on type '(Anonymous function)'. +node_modules/uglify-js/lib/compress.js(8488,42): error TS2339: Property 'args' does not exist on type '(Anonymous function)'. +node_modules/uglify-js/lib/compress.js(8682,28): error TS2339: Property 'expression' does not exist on type '(Anonymous function)'. +node_modules/uglify-js/lib/compress.js(8683,41): error TS2339: Property 'operator' does not exist on type '(Anonymous function)'. +node_modules/uglify-js/lib/compress.js(8687,22): error TS2339: Property 'operator' does not exist on type '(Anonymous function)'. +node_modules/uglify-js/lib/compress.js(8692,42): error TS2339: Property 'operator' does not exist on type '(Anonymous function)'. +node_modules/uglify-js/lib/compress.js(8723,33): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(8725,44): error TS2339: Property 'loopcontrol_target' does not exist on type 'TreeWalker'. +node_modules/uglify-js/lib/compress.js(8729,56): error TS2339: Property 'push' does not exist on type 'TreeWalker'. +node_modules/uglify-js/lib/compress.js(8730,12): error TS2339: Property 'push' does not exist on type 'TreeWalker'. +node_modules/uglify-js/lib/compress.js(8798,38): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(8854,21): error TS2403: Subsequent variable declarations must have the same type. Variable 'body' must be of type 'any[]', but here has type 'any'. +node_modules/uglify-js/lib/compress.js(8869,21): error TS2403: Subsequent variable declarations must have the same type. Variable 'body' must be of type 'any[]', but here has type 'any'. +node_modules/uglify-js/lib/compress.js(8985,33): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(9011,21): error TS2532: Object is possibly 'undefined'. +node_modules/uglify-js/lib/compress.js(9011,32): error TS2322: Type 'number | undefined' is not assignable to type 'number'. + Type 'undefined' is not assignable to type 'number'. +node_modules/uglify-js/lib/compress.js(9015,21): error TS2403: Subsequent variable declarations must have the same type. Variable 'save' must be of type 'any', but here has type 'number'. +node_modules/uglify-js/lib/compress.js(9022,21): error TS2403: Subsequent variable declarations must have the same type. Variable 'save' must be of type 'any', but here has type 'number'. +node_modules/uglify-js/lib/compress.js(9031,21): error TS2403: Subsequent variable declarations must have the same type. Variable 'save' must be of type 'any', but here has type 'number'. +node_modules/uglify-js/lib/compress.js(9198,37): error TS2345: Argument of type 'any[]' is not assignable to parameter of type 'never[]'. +node_modules/uglify-js/lib/compress.js(9199,41): error TS2345: Argument of type 'any[]' is not assignable to parameter of type 'never[]'. +node_modules/uglify-js/lib/compress.js(9212,37): error TS2345: Argument of type 'any[]' is not assignable to parameter of type 'never[]'. +node_modules/uglify-js/lib/compress.js(9213,41): error TS2345: Argument of type 'any[]' is not assignable to parameter of type 'never[]'. +node_modules/uglify-js/lib/compress.js(9305,17): error TS2403: Subsequent variable declarations must have the same type. Variable 'body' must be of type 'any[]', but here has type 'any'. +node_modules/uglify-js/lib/compress.js(9545,37): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(9551,16): error TS2339: Property 'push' does not exist on type 'TreeWalker'. +node_modules/uglify-js/lib/compress.js(9592,21): error TS2403: Subsequent variable declarations must have the same type. Variable 'body' must be of type 'any[]', but here has type 'any'. +node_modules/uglify-js/lib/compress.js(9837,33): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(9946,53): error TS2345: Argument of type 'any[]' is not assignable to parameter of type '[pattern: string | RegExp, flags?: string | undefined]'. Target requires 1 element(s) but source may have fewer. -node_modules/uglify-js/lib/compress.js(8775,45): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/compress.js(8782,25): error TS2403: Subsequent variable declarations must have the same type. Variable 'code' must be of type 'string', but here has type '{ get: () => string; toString: () => string; indent: (half: any) => void; should_break: () => void; has_parens: () => boolean; newline: () => void; print: (str: any) => void; space: () => void; comma: () => void; colon: () => void; ... 20 more ...; parent: (n: any) => any; }'. -node_modules/uglify-js/lib/compress.js(8786,36): error TS2532: Object is possibly 'undefined'. -node_modules/uglify-js/lib/compress.js(8791,41): error TS2339: Property 'get' does not exist on type 'string'. -node_modules/uglify-js/lib/compress.js(8924,38): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/compress.js(9018,37): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/compress.js(9092,39): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/compress.js(9096,21): error TS2322: Type 'null' is not assignable to type 'any[]'. -node_modules/uglify-js/lib/compress.js(9104,25): error TS2322: Type 'null' is not assignable to type 'any[]'. -node_modules/uglify-js/lib/compress.js(9113,25): error TS2322: Type 'null' is not assignable to type 'any[]'. -node_modules/uglify-js/lib/compress.js(9129,32): error TS2532: Object is possibly 'undefined'. -node_modules/uglify-js/lib/compress.js(9133,27): error TS2532: Object is possibly 'undefined'. -node_modules/uglify-js/lib/compress.js(9355,34): error TS2345: Argument of type 'any[]' is not assignable to parameter of type 'never[]'. -node_modules/uglify-js/lib/compress.js(9356,40): error TS2345: Argument of type 'any[]' is not assignable to parameter of type 'never[]'. -node_modules/uglify-js/lib/compress.js(9357,40): error TS2345: Argument of type 'any[]' is not assignable to parameter of type 'never[]'. -node_modules/uglify-js/lib/compress.js(9374,41): error TS2345: Argument of type 'any[]' is not assignable to parameter of type '[start: number, deleteCount: number, ...items: never[]]'. -node_modules/uglify-js/lib/compress.js(9431,38): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/compress.js(9778,18): error TS2454: Variable 'is_strict_comparison' is used before being assigned. -node_modules/uglify-js/lib/compress.js(9963,48): error TS2454: Variable 'nullish' is used before being assigned. -node_modules/uglify-js/lib/compress.js(9964,21): error TS2454: Variable 'nullish' is used before being assigned. -node_modules/uglify-js/lib/compress.js(9967,32): error TS2454: Variable 'nullish' is used before being assigned. -node_modules/uglify-js/lib/compress.js(9976,32): error TS2454: Variable 'nullish' is used before being assigned. -node_modules/uglify-js/lib/compress.js(9994,29): error TS2454: Variable 'nullish' is used before being assigned. -node_modules/uglify-js/lib/compress.js(10004,22): error TS2454: Variable 'nullish' is used before being assigned. -node_modules/uglify-js/lib/compress.js(10298,38): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/compress.js(10485,47): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/compress.js(10574,39): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/compress.js(10687,39): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/compress.js(10693,41): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/compress.js(10696,41): error TS2339: Property 'parent' does not exist on type 'TreeWalker'. -node_modules/uglify-js/lib/compress.js(11313,26): error TS2358: The left-hand side of an 'instanceof' expression must be of type 'any', an object type or a type parameter. -node_modules/uglify-js/lib/compress.js(11313,67): error TS2532: Object is possibly 'undefined'. -node_modules/uglify-js/lib/compress.js(11346,43): error TS2454: Variable 'property' is used before being assigned. -node_modules/uglify-js/lib/compress.js(11367,25): error TS2403: Subsequent variable declarations must have the same type. Variable 'value' must be of type 'number', but here has type 'any'. -node_modules/uglify-js/lib/compress.js(11370,46): error TS2339: Property 'has_side_effects' does not exist on type 'number'. -node_modules/uglify-js/lib/compress.js(11375,25): error TS2403: Subsequent variable declarations must have the same type. Variable 'value' must be of type 'number', but here has type 'any'. -node_modules/uglify-js/lib/compress.js(11421,34): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/compress.js(11436,34): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/minify.js(193,57): error TS2339: Property 'compress' does not exist on type 'Compressor'. -node_modules/uglify-js/lib/mozilla-ast.js(573,33): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/output.js(482,37): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/output.js(483,33): error TS2339: Property 'parent' does not exist on type 'TreeWalker'. -node_modules/uglify-js/lib/output.js(498,16): error TS2339: Property 'push' does not exist on type 'TreeWalker'. -node_modules/uglify-js/lib/output.js(1394,44): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/output.js(1839,58): error TS2362: The left-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type. -node_modules/uglify-js/lib/parse.js(319,9): error TS2322: Type 'string | boolean' is not assignable to type 'boolean'. +node_modules/uglify-js/lib/compress.js(10123,45): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(10130,25): error TS2403: Subsequent variable declarations must have the same type. Variable 'code' must be of type 'string', but here has type '{ get: () => string; reset: () => any; indent: (half: any) => void; should_break: () => boolean; has_parens: () => boolean; newline: () => void; print: (str: any) => void; space: () => void; comma: () => void; colon: () => void; ... 16 more ...; parent: (n: any) => any; }'. +node_modules/uglify-js/lib/compress.js(10134,36): error TS2532: Object is possibly 'undefined'. +node_modules/uglify-js/lib/compress.js(10139,41): error TS2339: Property 'get' does not exist on type 'string'. +node_modules/uglify-js/lib/compress.js(10222,49): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(10425,39): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(10429,21): error TS2322: Type 'null' is not assignable to type 'any[]'. +node_modules/uglify-js/lib/compress.js(10437,25): error TS2322: Type 'null' is not assignable to type 'any[]'. +node_modules/uglify-js/lib/compress.js(10446,25): error TS2322: Type 'null' is not assignable to type 'any[]'. +node_modules/uglify-js/lib/compress.js(10462,32): error TS2532: Object is possibly 'undefined'. +node_modules/uglify-js/lib/compress.js(10465,27): error TS2532: Object is possibly 'undefined'. +node_modules/uglify-js/lib/compress.js(10690,34): error TS2345: Argument of type 'any[]' is not assignable to parameter of type 'never[]'. +node_modules/uglify-js/lib/compress.js(10691,40): error TS2345: Argument of type 'any[]' is not assignable to parameter of type 'never[]'. +node_modules/uglify-js/lib/compress.js(10692,40): error TS2345: Argument of type 'any[]' is not assignable to parameter of type 'never[]'. +node_modules/uglify-js/lib/compress.js(10693,40): error TS2345: Argument of type 'any[]' is not assignable to parameter of type 'never[]'. +node_modules/uglify-js/lib/compress.js(10708,41): error TS2345: Argument of type 'any[]' is not assignable to parameter of type '[start: number, deleteCount: number, ...items: never[]]'. +node_modules/uglify-js/lib/compress.js(10766,38): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(11138,18): error TS2454: Variable 'is_strict_comparison' is used before being assigned. +node_modules/uglify-js/lib/compress.js(11315,60): error TS2454: Variable 'nullish' is used before being assigned. +node_modules/uglify-js/lib/compress.js(11316,21): error TS2454: Variable 'nullish' is used before being assigned. +node_modules/uglify-js/lib/compress.js(11319,32): error TS2454: Variable 'nullish' is used before being assigned. +node_modules/uglify-js/lib/compress.js(11328,32): error TS2454: Variable 'nullish' is used before being assigned. +node_modules/uglify-js/lib/compress.js(11336,22): error TS2454: Variable 'nullish' is used before being assigned. +node_modules/uglify-js/lib/compress.js(11352,22): error TS2454: Variable 'nullish' is used before being assigned. +node_modules/uglify-js/lib/compress.js(11640,38): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(11840,47): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(11941,39): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(12102,39): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(12106,41): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(12110,45): error TS2339: Property 'parent' does not exist on type 'TreeWalker'. +node_modules/uglify-js/lib/compress.js(12768,26): error TS2358: The left-hand side of an 'instanceof' expression must be of type 'any', an object type or a type parameter. +node_modules/uglify-js/lib/compress.js(12769,36): error TS2532: Object is possibly 'undefined'. +node_modules/uglify-js/lib/compress.js(12770,32): error TS2532: Object is possibly 'undefined'. +node_modules/uglify-js/lib/compress.js(12805,43): error TS2454: Variable 'property' is used before being assigned. +node_modules/uglify-js/lib/compress.js(12826,25): error TS2403: Subsequent variable declarations must have the same type. Variable 'value' must be of type 'number', but here has type 'any'. +node_modules/uglify-js/lib/compress.js(12829,46): error TS2339: Property 'has_side_effects' does not exist on type 'number'. +node_modules/uglify-js/lib/compress.js(12834,25): error TS2403: Subsequent variable declarations must have the same type. Variable 'value' must be of type 'number', but here has type 'any'. +node_modules/uglify-js/lib/compress.js(12875,34): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(12893,38): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(13137,34): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(13304,41): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(13331,42): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(13451,24): error TS2532: Object is possibly 'undefined'. +node_modules/uglify-js/lib/compress.js(13455,35): error TS2339: Property 'try_inline' does not exist on type 'never'. +node_modules/uglify-js/lib/compress.js(13458,25): error TS2358: The left-hand side of an 'instanceof' expression must be of type 'any', an object type or a type parameter. +node_modules/uglify-js/lib/compress.js(13459,33): error TS2339: Property 'body' does not exist on type 'never'. +node_modules/uglify-js/lib/compress.js(13468,24): error TS2532: Object is possibly 'undefined'. +node_modules/uglify-js/lib/compress.js(13471,17): error TS2358: The left-hand side of an 'instanceof' expression must be of type 'any', an object type or a type parameter. +node_modules/uglify-js/lib/compress.js(13474,35): error TS2532: Object is possibly 'undefined'. +node_modules/uglify-js/lib/compress.js(13482,24): error TS2532: Object is possibly 'undefined'. +node_modules/uglify-js/lib/compress.js(13486,27): error TS2339: Property 'try_inline' does not exist on type 'never'. +node_modules/uglify-js/lib/compress.js(13490,17): error TS2358: The left-hand side of an 'instanceof' expression must be of type 'any', an object type or a type parameter. +node_modules/uglify-js/lib/compress.js(13493,38): error TS2532: Object is possibly 'undefined'. +node_modules/uglify-js/lib/compress.js(13501,24): error TS2532: Object is possibly 'undefined'. +node_modules/uglify-js/lib/compress.js(13507,24): error TS2532: Object is possibly 'undefined'. +node_modules/uglify-js/lib/compress.js(13575,24): error TS2532: Object is possibly 'undefined'. +node_modules/uglify-js/lib/compress.js(13578,17): error TS2358: The left-hand side of an 'instanceof' expression must be of type 'any', an object type or a type parameter. +node_modules/uglify-js/lib/compress.js(13581,39): error TS2532: Object is possibly 'undefined'. +node_modules/uglify-js/lib/mozilla-ast.js(384,53): error TS2304: Cannot find name 'syn'. +node_modules/uglify-js/lib/mozilla-ast.js(1211,33): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/output.js(507,37): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/output.js(508,53): error TS2339: Property 'parent' does not exist on type 'TreeWalker'. +node_modules/uglify-js/lib/output.js(512,16): error TS2339: Property 'push' does not exist on type 'TreeWalker'. +node_modules/uglify-js/lib/output.js(1422,44): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/output.js(1871,58): error TS2362: The left-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type. +node_modules/uglify-js/lib/parse.js(324,9): error TS2322: Type 'string | boolean' is not assignable to type 'boolean'. Type 'string' is not assignable to type 'boolean'. -node_modules/uglify-js/lib/parse.js(385,19): error TS2345: Argument of type 'number | undefined' is not assignable to parameter of type 'number'. +node_modules/uglify-js/lib/parse.js(393,19): error TS2345: Argument of type 'number | undefined' is not assignable to parameter of type 'number'. Type 'undefined' is not assignable to type 'number'. -node_modules/uglify-js/lib/parse.js(451,32): error TS2345: Argument of type 'any' is not assignable to parameter of type 'never'. -node_modules/uglify-js/lib/parse.js(462,32): error TS2345: Argument of type 'any' is not assignable to parameter of type 'never'. -node_modules/uglify-js/lib/parse.js(512,20): error TS2339: Property 'raw_source' does not exist on type 'RegExp'. -node_modules/uglify-js/lib/parse.js(630,57): error TS2339: Property 'push' does not exist on type 'never'. -node_modules/uglify-js/lib/parse.js(636,32): error TS2345: Argument of type 'never[]' is not assignable to parameter of type 'never'. -node_modules/uglify-js/lib/parse.js(734,13): error TS2531: Object is possibly 'null'. -node_modules/uglify-js/lib/parse.js(767,69): error TS2531: Object is possibly 'null'. -node_modules/uglify-js/lib/parse.js(767,83): error TS2531: Object is possibly 'null'. -node_modules/uglify-js/lib/parse.js(811,31): error TS2531: Object is possibly 'null'. -node_modules/uglify-js/lib/parse.js(817,17): error TS2531: Object is possibly 'null'. -node_modules/uglify-js/lib/parse.js(840,21): error TS2531: Object is possibly 'null'. -node_modules/uglify-js/lib/parse.js(870,21): error TS2531: Object is possibly 'null'. -node_modules/uglify-js/lib/parse.js(890,21): error TS2531: Object is possibly 'null'. -node_modules/uglify-js/lib/parse.js(1020,23): error TS2345: Argument of type 'any' is not assignable to parameter of type 'never'. -node_modules/uglify-js/lib/parse.js(1099,56): error TS2531: Object is possibly 'null'. -node_modules/uglify-js/lib/parse.js(1115,52): error TS2531: Object is possibly 'null'. -node_modules/uglify-js/lib/parse.js(1155,58): error TS2531: Object is possibly 'null'. -node_modules/uglify-js/lib/parse.js(1343,9): error TS2322: Type 'any[]' is not assignable to type 'never[]'. -node_modules/uglify-js/lib/parse.js(1389,26): error TS2339: Property 'rest' does not exist on type 'any[]'. -node_modules/uglify-js/lib/parse.js(1389,62): error TS2339: Property 'rest' does not exist on type 'any[]'. -node_modules/uglify-js/lib/parse.js(1394,9): error TS2322: Type 'any[]' is not assignable to type 'never[]'. -node_modules/uglify-js/lib/parse.js(1400,28): error TS2339: Property 'rest' does not exist on type 'any[]'. -node_modules/uglify-js/lib/parse.js(1419,51): error TS2531: Object is possibly 'null'. -node_modules/uglify-js/lib/parse.js(1429,25): error TS2531: Object is possibly 'null'. -node_modules/uglify-js/lib/parse.js(1454,34): error TS2531: Object is possibly 'null'. -node_modules/uglify-js/lib/parse.js(1518,43): error TS2531: Object is possibly 'null'. -node_modules/uglify-js/lib/parse.js(1537,43): error TS2531: Object is possibly 'null'. -node_modules/uglify-js/lib/parse.js(1581,35): error TS2531: Object is possibly 'null'. -node_modules/uglify-js/lib/parse.js(1647,17): error TS2454: Variable 'cur' is used before being assigned. -node_modules/uglify-js/lib/parse.js(1844,38): error TS2531: Object is possibly 'null'. -node_modules/uglify-js/lib/parse.js(1913,32): error TS2531: Object is possibly 'null'. -node_modules/uglify-js/lib/parse.js(1937,19): error TS2339: Property 'rest' does not exist on type 'any[]'. -node_modules/uglify-js/lib/parse.js(1938,23): error TS2339: Property 'rest' does not exist on type 'any[]'. -node_modules/uglify-js/lib/parse.js(1938,71): error TS2339: Property 'rest' does not exist on type 'any[]'. -node_modules/uglify-js/lib/parse.js(2100,20): error TS2531: Object is possibly 'null'. -node_modules/uglify-js/lib/parse.js(2156,32): error TS2339: Property 'rest' does not exist on type 'any[]'. -node_modules/uglify-js/lib/parse.js(2317,60): error TS2531: Object is possibly 'null'. -node_modules/uglify-js/lib/parse.js(2336,48): error TS2531: Object is possibly 'null'. -node_modules/uglify-js/lib/parse.js(2362,35): error TS2531: Object is possibly 'null'. -node_modules/uglify-js/lib/parse.js(2465,52): error TS2531: Object is possibly 'null'. -node_modules/uglify-js/lib/parse.js(2488,23): error TS2339: Property 'rest' does not exist on type 'any[]'. -node_modules/uglify-js/lib/parse.js(2496,44): error TS2339: Property 'rest' does not exist on type 'any[]'. +node_modules/uglify-js/lib/parse.js(459,32): error TS2345: Argument of type 'any' is not assignable to parameter of type 'never'. +node_modules/uglify-js/lib/parse.js(470,32): error TS2345: Argument of type 'any' is not assignable to parameter of type 'never'. +node_modules/uglify-js/lib/parse.js(520,20): error TS2339: Property 'raw_source' does not exist on type 'RegExp'. +node_modules/uglify-js/lib/parse.js(523,25): error TS2571: Object is of type 'unknown'. +node_modules/uglify-js/lib/parse.js(638,57): error TS2339: Property 'push' does not exist on type 'never'. +node_modules/uglify-js/lib/parse.js(644,32): error TS2345: Argument of type 'never[]' is not assignable to parameter of type 'never'. +node_modules/uglify-js/lib/parse.js(649,22): error TS2532: Object is possibly 'undefined'. +node_modules/uglify-js/lib/parse.js(650,26): error TS2532: Object is possibly 'undefined'. +node_modules/uglify-js/lib/parse.js(742,13): error TS2531: Object is possibly 'null'. +node_modules/uglify-js/lib/parse.js(775,69): error TS2531: Object is possibly 'null'. +node_modules/uglify-js/lib/parse.js(775,83): error TS2531: Object is possibly 'null'. +node_modules/uglify-js/lib/parse.js(819,31): error TS2531: Object is possibly 'null'. +node_modules/uglify-js/lib/parse.js(825,17): error TS2531: Object is possibly 'null'. +node_modules/uglify-js/lib/parse.js(848,21): error TS2531: Object is possibly 'null'. +node_modules/uglify-js/lib/parse.js(888,21): error TS2531: Object is possibly 'null'. +node_modules/uglify-js/lib/parse.js(908,21): error TS2531: Object is possibly 'null'. +node_modules/uglify-js/lib/parse.js(1032,23): error TS2345: Argument of type 'any' is not assignable to parameter of type 'never'. +node_modules/uglify-js/lib/parse.js(1111,56): error TS2531: Object is possibly 'null'. +node_modules/uglify-js/lib/parse.js(1127,52): error TS2531: Object is possibly 'null'. +node_modules/uglify-js/lib/parse.js(1167,58): error TS2531: Object is possibly 'null'. +node_modules/uglify-js/lib/parse.js(1359,9): error TS2322: Type 'any[]' is not assignable to type 'never[]'. +node_modules/uglify-js/lib/parse.js(1408,9): error TS2322: Type 'any[]' is not assignable to type 'never[]'. +node_modules/uglify-js/lib/parse.js(1414,28): error TS2339: Property 'rest' does not exist on type 'any[]'. +node_modules/uglify-js/lib/parse.js(1438,51): error TS2531: Object is possibly 'null'. +node_modules/uglify-js/lib/parse.js(1448,25): error TS2531: Object is possibly 'null'. +node_modules/uglify-js/lib/parse.js(1458,23): error TS2531: Object is possibly 'null'. +node_modules/uglify-js/lib/parse.js(1459,24): error TS2531: Object is possibly 'null'. +node_modules/uglify-js/lib/parse.js(1473,34): error TS2531: Object is possibly 'null'. +node_modules/uglify-js/lib/parse.js(1476,34): error TS2531: Object is possibly 'null'. +node_modules/uglify-js/lib/parse.js(1489,32): error TS2531: Object is possibly 'null'. +node_modules/uglify-js/lib/parse.js(1491,27): error TS2531: Object is possibly 'null'. +node_modules/uglify-js/lib/parse.js(1492,28): error TS2531: Object is possibly 'null'. +node_modules/uglify-js/lib/parse.js(1538,43): error TS2531: Object is possibly 'null'. +node_modules/uglify-js/lib/parse.js(1551,33): error TS2531: Object is possibly 'null'. +node_modules/uglify-js/lib/parse.js(1563,43): error TS2531: Object is possibly 'null'. +node_modules/uglify-js/lib/parse.js(1602,35): error TS2531: Object is possibly 'null'. +node_modules/uglify-js/lib/parse.js(1624,19): error TS2531: Object is possibly 'null'. +node_modules/uglify-js/lib/parse.js(1626,20): error TS2531: Object is possibly 'null'. +node_modules/uglify-js/lib/parse.js(1668,17): error TS2454: Variable 'cur' is used before being assigned. +node_modules/uglify-js/lib/parse.js(1790,41): error TS2531: Object is possibly 'null'. +node_modules/uglify-js/lib/parse.js(1791,17): error TS2531: Object is possibly 'null'. +node_modules/uglify-js/lib/parse.js(1804,59): error TS2531: Object is possibly 'null'. +node_modules/uglify-js/lib/parse.js(1838,21): error TS2531: Object is possibly 'null'. +node_modules/uglify-js/lib/parse.js(1848,27): error TS2531: Object is possibly 'null'. +node_modules/uglify-js/lib/parse.js(1849,60): error TS2531: Object is possibly 'null'. +node_modules/uglify-js/lib/parse.js(1850,17): error TS2531: Object is possibly 'null'. +node_modules/uglify-js/lib/parse.js(1851,17): error TS2531: Object is possibly 'null'. +node_modules/uglify-js/lib/parse.js(1852,17): error TS2531: Object is possibly 'null'. +node_modules/uglify-js/lib/parse.js(1853,33): error TS2531: Object is possibly 'null'. +node_modules/uglify-js/lib/parse.js(1854,35): error TS2531: Object is possibly 'null'. +node_modules/uglify-js/lib/parse.js(1856,39): error TS2531: Object is possibly 'null'. +node_modules/uglify-js/lib/parse.js(1857,25): error TS2531: Object is possibly 'null'. +node_modules/uglify-js/lib/parse.js(1860,17): error TS2531: Object is possibly 'null'. +node_modules/uglify-js/lib/parse.js(1864,17): error TS2531: Object is possibly 'null'. +node_modules/uglify-js/lib/parse.js(1865,17): error TS2531: Object is possibly 'null'. +node_modules/uglify-js/lib/parse.js(1867,38): error TS2531: Object is possibly 'null'. +node_modules/uglify-js/lib/parse.js(1869,17): error TS2531: Object is possibly 'null'. +node_modules/uglify-js/lib/parse.js(1870,17): error TS2531: Object is possibly 'null'. +node_modules/uglify-js/lib/parse.js(1881,36): error TS2531: Object is possibly 'null'. +node_modules/uglify-js/lib/parse.js(1936,32): error TS2531: Object is possibly 'null'. +node_modules/uglify-js/lib/parse.js(1960,19): error TS2339: Property 'rest' does not exist on type 'any[]'. +node_modules/uglify-js/lib/parse.js(1961,23): error TS2339: Property 'rest' does not exist on type 'any[]'. +node_modules/uglify-js/lib/parse.js(1961,71): error TS2339: Property 'rest' does not exist on type 'any[]'. +node_modules/uglify-js/lib/parse.js(2017,26): error TS2531: Object is possibly 'null'. +node_modules/uglify-js/lib/parse.js(2032,26): error TS2531: Object is possibly 'null'. +node_modules/uglify-js/lib/parse.js(2062,17): error TS2531: Object is possibly 'null'. +node_modules/uglify-js/lib/parse.js(2102,17): error TS2531: Object is possibly 'null'. +node_modules/uglify-js/lib/parse.js(2104,27): error TS2531: Object is possibly 'null'. +node_modules/uglify-js/lib/parse.js(2111,25): error TS2531: Object is possibly 'null'. +node_modules/uglify-js/lib/parse.js(2123,20): error TS2531: Object is possibly 'null'. +node_modules/uglify-js/lib/parse.js(2179,32): error TS2339: Property 'rest' does not exist on type 'any[]'. +node_modules/uglify-js/lib/parse.js(2219,26): error TS2531: Object is possibly 'null'. +node_modules/uglify-js/lib/parse.js(2350,60): error TS2531: Object is possibly 'null'. +node_modules/uglify-js/lib/parse.js(2360,44): error TS2531: Object is possibly 'null'. +node_modules/uglify-js/lib/parse.js(2369,48): error TS2531: Object is possibly 'null'. +node_modules/uglify-js/lib/parse.js(2395,35): error TS2531: Object is possibly 'null'. +node_modules/uglify-js/lib/parse.js(2498,52): error TS2531: Object is possibly 'null'. +node_modules/uglify-js/lib/parse.js(2521,23): error TS2339: Property 'rest' does not exist on type 'any[]'. +node_modules/uglify-js/lib/parse.js(2529,44): error TS2339: Property 'rest' does not exist on type 'any[]'. node_modules/uglify-js/lib/propmangle.js(70,18): error TS2339: Property 'prototype' does not exist on type 'ObjectConstructor | FunctionConstructor | StringConstructor | BooleanConstructor | NumberConstructor | ... 4 more ... | ArrayConstructor'. Property 'prototype' does not exist on type 'Math'. node_modules/uglify-js/lib/propmangle.js(71,44): error TS2351: This expression is not constructable. @@ -270,38 +386,57 @@ node_modules/uglify-js/lib/propmangle.js(71,44): error TS2351: This expression i node_modules/uglify-js/lib/propmangle.js(72,45): error TS2339: Property 'prototype' does not exist on type 'ObjectConstructor | FunctionConstructor | StringConstructor | BooleanConstructor | NumberConstructor | ... 4 more ... | ArrayConstructor'. Property 'prototype' does not exist on type 'Math'. node_modules/uglify-js/lib/propmangle.js(83,29): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/propmangle.js(146,29): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/propmangle.js(176,29): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/scope.js(83,26): error TS2339: Property 'defun' does not exist on type 'SymbolDef'. -node_modules/uglify-js/lib/scope.js(129,29): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/scope.js(132,27): error TS2339: Property 'parent' does not exist on type 'TreeWalker'. -node_modules/uglify-js/lib/scope.js(145,27): error TS2339: Property 'parent' does not exist on type 'TreeWalker'. -node_modules/uglify-js/lib/scope.js(152,27): error TS2339: Property 'parent' does not exist on type 'TreeWalker'. -node_modules/uglify-js/lib/scope.js(205,51): error TS2339: Property 'parent' does not exist on type 'TreeWalker'. -node_modules/uglify-js/lib/scope.js(247,10): error TS2339: Property 'walk' does not exist on type '(Anonymous function)'. -node_modules/uglify-js/lib/scope.js(252,29): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/scope.js(289,62): error TS2339: Property 'parent' does not exist on type 'TreeWalker'. -node_modules/uglify-js/lib/scope.js(311,28): error TS2339: Property 'def_global' does not exist on type '(Anonymous function)'. -node_modules/uglify-js/lib/scope.js(313,33): error TS2339: Property 'parent' does not exist on type 'TreeWalker'. -node_modules/uglify-js/lib/scope.js(324,33): error TS2339: Property 'parent' does not exist on type 'TreeWalker'. -node_modules/uglify-js/lib/scope.js(333,26): error TS2339: Property 'uses_eval' does not exist on type '(Anonymous function)'. -node_modules/uglify-js/lib/scope.js(348,10): error TS2339: Property 'walk' does not exist on type '(Anonymous function)'. -node_modules/uglify-js/lib/scope.js(351,27): error TS2339: Property 'walk' does not exist on type '(Anonymous function)'. -node_modules/uglify-js/lib/scope.js(351,47): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/scope.js(403,38): error TS2339: Property 'variables' does not exist on type '(Anonymous function)'. -node_modules/uglify-js/lib/scope.js(451,10): error TS2339: Property 'def_variable' does not exist on type '(Anonymous function)'. -node_modules/uglify-js/lib/scope.js(453,21): error TS2339: Property 'start' does not exist on type '(Anonymous function)'. -node_modules/uglify-js/lib/scope.js(454,19): error TS2339: Property 'end' does not exist on type '(Anonymous function)'. -node_modules/uglify-js/lib/scope.js(602,29): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/scope.js(634,49): error TS2339: Property 'has_directive' does not exist on type 'TreeWalker'. -node_modules/uglify-js/lib/scope.js(693,31): error TS2345: Argument of type 'string' is not assignable to parameter of type 'object | null'. -node_modules/uglify-js/lib/scope.js(696,30): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/scope.js(720,30): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/propmangle.js(148,29): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/propmangle.js(180,29): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/scope.js(68,18): error TS2339: Property 'global' does not exist on type 'SymbolDef'. +node_modules/uglify-js/lib/scope.js(77,22): error TS2339: Property 'global' does not exist on type 'SymbolDef'. +node_modules/uglify-js/lib/scope.js(95,18): error TS2339: Property 'exported' does not exist on type 'SymbolDef'. +node_modules/uglify-js/lib/scope.js(96,18): error TS2339: Property 'undeclared' does not exist on type 'SymbolDef'. +node_modules/uglify-js/lib/scope.js(106,39): error TS2339: Property 'global' does not exist on type 'SymbolDef'. +node_modules/uglify-js/lib/scope.js(147,29): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/scope.js(150,27): error TS2339: Property 'parent' does not exist on type 'TreeWalker'. +node_modules/uglify-js/lib/scope.js(163,27): error TS2339: Property 'parent' does not exist on type 'TreeWalker'. +node_modules/uglify-js/lib/scope.js(170,27): error TS2339: Property 'parent' does not exist on type 'TreeWalker'. +node_modules/uglify-js/lib/scope.js(198,21): error TS2531: Object is possibly 'null'. +node_modules/uglify-js/lib/scope.js(199,21): error TS2531: Object is possibly 'null'. +node_modules/uglify-js/lib/scope.js(200,17): error TS2531: Object is possibly 'null'. +node_modules/uglify-js/lib/scope.js(201,26): error TS2531: Object is possibly 'null'. +node_modules/uglify-js/lib/scope.js(217,13): error TS2531: Object is possibly 'null'. +node_modules/uglify-js/lib/scope.js(219,23): error TS2531: Object is possibly 'null'. +node_modules/uglify-js/lib/scope.js(223,51): error TS2339: Property 'parent' does not exist on type 'TreeWalker'. +node_modules/uglify-js/lib/scope.js(231,23): error TS2531: Object is possibly 'null'. +node_modules/uglify-js/lib/scope.js(252,10): error TS2339: Property 'walk' does not exist on type '(Anonymous function)'. +node_modules/uglify-js/lib/scope.js(257,29): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/scope.js(307,62): error TS2339: Property 'parent' does not exist on type 'TreeWalker'. +node_modules/uglify-js/lib/scope.js(329,28): error TS2339: Property 'def_global' does not exist on type '(Anonymous function)'. +node_modules/uglify-js/lib/scope.js(331,33): error TS2339: Property 'parent' does not exist on type 'TreeWalker'. +node_modules/uglify-js/lib/scope.js(342,33): error TS2339: Property 'parent' does not exist on type 'TreeWalker'. +node_modules/uglify-js/lib/scope.js(351,26): error TS2339: Property 'uses_eval' does not exist on type '(Anonymous function)'. +node_modules/uglify-js/lib/scope.js(366,10): error TS2339: Property 'walk' does not exist on type '(Anonymous function)'. +node_modules/uglify-js/lib/scope.js(369,26): error TS2339: Property 'walk' does not exist on type '(Anonymous function)'. +node_modules/uglify-js/lib/scope.js(369,46): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/scope.js(415,38): error TS2339: Property 'variables' does not exist on type '(Anonymous function)'. +node_modules/uglify-js/lib/scope.js(470,10): error TS2339: Property 'def_variable' does not exist on type '(Anonymous function)'. +node_modules/uglify-js/lib/scope.js(472,21): error TS2339: Property 'start' does not exist on type '(Anonymous function)'. +node_modules/uglify-js/lib/scope.js(473,19): error TS2339: Property 'end' does not exist on type '(Anonymous function)'. +node_modules/uglify-js/lib/scope.js(622,29): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/scope.js(654,49): error TS2339: Property 'has_directive' does not exist on type 'TreeWalker'. +node_modules/uglify-js/lib/scope.js(729,31): error TS2345: Argument of type 'string' is not assignable to parameter of type 'object'. +node_modules/uglify-js/lib/scope.js(732,30): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/scope.js(756,30): error TS2554: Expected 0 arguments, but got 1. node_modules/uglify-js/lib/sourcemap.js(82,11): error TS2339: Property 'index' does not exist on type 'any[]'. -node_modules/uglify-js/lib/sourcemap.js(180,31): error TS2339: Property 'index' does not exist on type 'any[]'. -node_modules/uglify-js/lib/sourcemap.js(188,34): error TS2339: Property 'index' does not exist on type 'any[]'. +node_modules/uglify-js/lib/sourcemap.js(182,31): error TS2339: Property 'index' does not exist on type 'any[]'. +node_modules/uglify-js/lib/sourcemap.js(190,34): error TS2339: Property 'index' does not exist on type 'any[]'. node_modules/uglify-js/lib/transform.js(47,21): error TS2345: Argument of type 'this' is not assignable to parameter of type 'TreeWalker'. Type 'TreeTransformer' is missing the following properties from type 'TreeWalker': currentNode, filter, root, whatToShow, and 10 more. +node_modules/uglify-js/lib/utils.js(66,24): error TS2571: Object is of type 'unknown'. +node_modules/uglify-js/lib/utils.js(162,18): error TS2339: Property 'proto_value' does not exist on type 'Dictionary'. +node_modules/uglify-js/lib/utils.js(178,42): error TS2339: Property 'proto_value' does not exist on type 'Dictionary'. +node_modules/uglify-js/lib/utils.js(182,25): error TS2339: Property 'proto_value' does not exist on type 'Dictionary'. +node_modules/uglify-js/lib/utils.js(194,54): error TS2339: Property 'proto_value' does not exist on type 'never'. +node_modules/uglify-js/lib/utils.js(200,43): error TS2339: Property 'proto_value' does not exist on type 'never'. +node_modules/uglify-js/lib/utils.js(203,16): error TS2365: Operator '+' cannot be applied to types 'number' and 'boolean'. +node_modules/uglify-js/lib/utils.js(209,52): error TS2339: Property 'proto_value' does not exist on type 'never'. node_modules/uglify-js/tools/exports.js(1,1): error TS2303: Circular definition of import alias '"Dictionary"'. node_modules/uglify-js/tools/exports.js(2,1): error TS2303: Circular definition of import alias '"is_statement"'. node_modules/uglify-js/tools/exports.js(3,1): error TS2303: Circular definition of import alias '"List"'. diff --git a/tests/baselines/reference/user/webpack.log b/tests/baselines/reference/user/webpack.log new file mode 100644 index 0000000000000..c411f4f0c7b11 --- /dev/null +++ b/tests/baselines/reference/user/webpack.log @@ -0,0 +1,20 @@ +Exit Code: 2 +Standard output: +lib/dependencies/WorkerPlugin.js(268,23): error TS2339: Property 'name' does not exist on type 'Record | {}'. + Property 'name' does not exist on type '{}'. +lib/dependencies/WorkerPlugin.js(270,36): error TS2339: Property 'name' does not exist on type 'Record | {}'. + Property 'name' does not exist on type '{}'. +lib/dependencies/WorkerPlugin.js(312,23): error TS2339: Property 'type' does not exist on type 'Record | {}'. + Property 'type' does not exist on type '{}'. +lib/dependencies/WorkerPlugin.js(313,33): error TS2339: Property 'type' does not exist on type 'Record | {}'. + Property 'type' does not exist on type '{}'. +lib/dependencies/WorkerPlugin.js(314,20): error TS2339: Property 'type' does not exist on type 'Record | {}'. + Property 'type' does not exist on type '{}'. +node_modules/terser-webpack-plugin/types/index.d.ts(219,24): error TS2307: Cannot find module 'webpack' or its corresponding type declarations. +node_modules/terser-webpack-plugin/types/index.d.ts(241,27): error TS2307: Cannot find module 'webpack' or its corresponding type declarations. +node_modules/terser-webpack-plugin/types/index.d.ts(242,28): error TS2307: Cannot find module 'webpack' or its corresponding type declarations. +node_modules/terser-webpack-plugin/types/index.d.ts(243,21): error TS2307: Cannot find module 'webpack' or its corresponding type declarations. + + + +Standard error: diff --git a/tests/baselines/reference/variadicTuples1.errors.txt b/tests/baselines/reference/variadicTuples1.errors.txt index a99ec1d28be78..5cabf29b9e794 100644 --- a/tests/baselines/reference/variadicTuples1.errors.txt +++ b/tests/baselines/reference/variadicTuples1.errors.txt @@ -35,7 +35,7 @@ tests/cases/conformance/types/tuple/variadicTuples1.ts(191,5): error TS2322: Typ 'T' is assignable to the constraint of type 'U', but 'U' could be instantiated with a different subtype of constraint 'readonly string[]'. tests/cases/conformance/types/tuple/variadicTuples1.ts(203,5): error TS2322: Type 'string' is not assignable to type 'keyof [1, 2, ...T]'. Type '"2"' is not assignable to type '"0" | "1" | keyof T[]'. -tests/cases/conformance/types/tuple/variadicTuples1.ts(357,26): error TS2322: Type 'string' is not assignable to type 'number | undefined'. +tests/cases/conformance/types/tuple/variadicTuples1.ts(357,26): error TS2322: Type 'string' is not assignable to type 'number'. tests/cases/conformance/types/tuple/variadicTuples1.ts(397,7): error TS2322: Type '[false, false]' is not assignable to type '[...number[], boolean]'. Type at position 0 in source is not compatible with type at position 0 in target. Type 'boolean' is not assignable to type 'number'. @@ -456,7 +456,7 @@ tests/cases/conformance/types/tuple/variadicTuples1.ts(397,7): error TS2322: Typ let v1 = f20(args); // U let v2 = f20(["foo", "bar"]); // [string] ~~~~~ -!!! error TS2322: Type 'string' is not assignable to type 'number | undefined'. +!!! error TS2322: Type 'string' is not assignable to type 'number'. let v3 = f20(["foo", 42]); // [string] } diff --git a/tests/baselines/reference/varianceAnnotations.errors.txt b/tests/baselines/reference/varianceAnnotations.errors.txt new file mode 100644 index 0000000000000..f1be2f615bb34 --- /dev/null +++ b/tests/baselines/reference/varianceAnnotations.errors.txt @@ -0,0 +1,307 @@ +tests/cases/conformance/types/typeParameters/typeParameterLists/varianceAnnotations.ts(9,1): error TS2322: Type 'Covariant' is not assignable to type 'Covariant'. + Type 'unknown' is not assignable to type 'string'. +tests/cases/conformance/types/typeParameters/typeParameterLists/varianceAnnotations.ts(18,1): error TS2322: Type 'Contravariant' is not assignable to type 'Contravariant'. + Type 'unknown' is not assignable to type 'string'. +tests/cases/conformance/types/typeParameters/typeParameterLists/varianceAnnotations.ts(28,1): error TS2322: Type 'Invariant' is not assignable to type 'Invariant'. + Types of property 'f' are incompatible. + Type '(x: string) => string' is not assignable to type '(x: unknown) => unknown'. + Types of parameters 'x' and 'x' are incompatible. + Type 'unknown' is not assignable to type 'string'. +tests/cases/conformance/types/typeParameters/typeParameterLists/varianceAnnotations.ts(29,1): error TS2322: Type 'Invariant' is not assignable to type 'Invariant'. + The types returned by 'f(...)' are incompatible between these types. + Type 'unknown' is not assignable to type 'string'. +tests/cases/conformance/types/typeParameters/typeParameterLists/varianceAnnotations.ts(40,17): error TS2636: Type 'Covariant1' is not assignable to type 'Covariant1' as implied by variance annotation. + Types of property 'x' are incompatible. + Type 'super-T' is not assignable to type 'sub-T'. +tests/cases/conformance/types/typeParameters/typeParameterLists/varianceAnnotations.ts(44,21): error TS2636: Type 'keyof sub-T' is not assignable to type 'keyof super-T' as implied by variance annotation. + Type 'string | number | symbol' is not assignable to type 'keyof super-T'. + Type 'string' is not assignable to type 'keyof super-T'. +tests/cases/conformance/types/typeParameters/typeParameterLists/varianceAnnotations.ts(46,21): error TS2636: Type 'Contravariant2' is not assignable to type 'Contravariant2' as implied by variance annotation. + Types of property 'f' are incompatible. + Type '(x: sub-T) => void' is not assignable to type '(x: super-T) => void'. + Types of parameters 'x' and 'x' are incompatible. + Type 'super-T' is not assignable to type 'sub-T'. +tests/cases/conformance/types/typeParameters/typeParameterLists/varianceAnnotations.ts(50,17): error TS2636: Type 'Invariant1' is not assignable to type 'Invariant1' as implied by variance annotation. + The types returned by 'f(...)' are incompatible between these types. + Type 'super-T' is not assignable to type 'sub-T'. +tests/cases/conformance/types/typeParameters/typeParameterLists/varianceAnnotations.ts(54,17): error TS2636: Type 'Invariant2' is not assignable to type 'Invariant2' as implied by variance annotation. + Types of property 'f' are incompatible. + Type '(x: sub-T) => sub-T' is not assignable to type '(x: super-T) => super-T'. + Types of parameters 'x' and 'x' are incompatible. + Type 'super-T' is not assignable to type 'sub-T'. +tests/cases/conformance/types/typeParameters/typeParameterLists/varianceAnnotations.ts(60,11): error TS2636: Type 'Foo1' is not assignable to type 'Foo1' as implied by variance annotation. + Types of property 'x' are incompatible. + Type 'super-T' is not assignable to type 'sub-T'. +tests/cases/conformance/types/typeParameters/typeParameterLists/varianceAnnotations.ts(71,11): error TS2636: Type 'Foo2' is not assignable to type 'Foo2' as implied by variance annotation. + Types of property 'f' are incompatible. + Type 'FooFn2' is not assignable to type 'FooFn2'. + Type 'super-T' is not assignable to type 'sub-T'. +tests/cases/conformance/types/typeParameters/typeParameterLists/varianceAnnotations.ts(95,10): error TS1273: 'public' modifier cannot appear on a type parameter +tests/cases/conformance/types/typeParameters/typeParameterLists/varianceAnnotations.ts(96,17): error TS1030: 'in' modifier already seen. +tests/cases/conformance/types/typeParameters/typeParameterLists/varianceAnnotations.ts(97,17): error TS1030: 'out' modifier already seen. +tests/cases/conformance/types/typeParameters/typeParameterLists/varianceAnnotations.ts(98,14): error TS1029: 'in' modifier must precede 'out' modifier. +tests/cases/conformance/types/typeParameters/typeParameterLists/varianceAnnotations.ts(100,21): error TS1274: 'in' modifier can only appear on a type parameter of a class, interface or type alias +tests/cases/conformance/types/typeParameters/typeParameterLists/varianceAnnotations.ts(101,21): error TS1274: 'out' modifier can only appear on a type parameter of a class, interface or type alias +tests/cases/conformance/types/typeParameters/typeParameterLists/varianceAnnotations.ts(104,5): error TS1274: 'in' modifier can only appear on a type parameter of a class, interface or type alias +tests/cases/conformance/types/typeParameters/typeParameterLists/varianceAnnotations.ts(105,5): error TS1274: 'out' modifier can only appear on a type parameter of a class, interface or type alias +tests/cases/conformance/types/typeParameters/typeParameterLists/varianceAnnotations.ts(116,1): error TS2322: Type 'Baz' is not assignable to type 'Baz'. + Type 'unknown' is not assignable to type 'string'. +tests/cases/conformance/types/typeParameters/typeParameterLists/varianceAnnotations.ts(117,1): error TS2322: Type 'Baz' is not assignable to type 'Baz'. + Type 'unknown' is not assignable to type 'string'. +tests/cases/conformance/types/typeParameters/typeParameterLists/varianceAnnotations.ts(136,7): error TS2322: Type 'Parent' is not assignable to type 'Parent'. + Type 'unknown' is not assignable to type 'string'. +tests/cases/conformance/types/typeParameters/typeParameterLists/varianceAnnotations.ts(160,68): error TS2345: Argument of type 'ActionObject<{ type: "PLAY"; value: number; }>' is not assignable to parameter of type 'ActionObject<{ type: "PLAY"; value: number; } | { type: "RESET"; }>'. + Types of property 'exec' are incompatible. + Type '(meta: StateNode) => void' is not assignable to type '(meta: StateNode) => void'. + Types of parameters 'meta' and 'meta' are incompatible. + Type 'StateNode' is not assignable to type 'StateNode'. + Types of property '_storedEvent' are incompatible. + Type '{ type: "PLAY"; value: number; } | { type: "RESET"; }' is not assignable to type '{ type: "PLAY"; value: number; }'. + Type '{ type: "RESET"; }' is not assignable to type '{ type: "PLAY"; value: number; }'. + + +==== tests/cases/conformance/types/typeParameters/typeParameterLists/varianceAnnotations.ts (23 errors) ==== + type Covariant = { + x: T; + } + + declare let super_covariant: Covariant; + declare let sub_covariant: Covariant; + + super_covariant = sub_covariant; + sub_covariant = super_covariant; // Error + ~~~~~~~~~~~~~ +!!! error TS2322: Type 'Covariant' is not assignable to type 'Covariant'. +!!! error TS2322: Type 'unknown' is not assignable to type 'string'. + + type Contravariant = { + f: (x: T) => void; + } + + declare let super_contravariant: Contravariant; + declare let sub_contravariant: Contravariant; + + super_contravariant = sub_contravariant; // Error + ~~~~~~~~~~~~~~~~~~~ +!!! error TS2322: Type 'Contravariant' is not assignable to type 'Contravariant'. +!!! error TS2322: Type 'unknown' is not assignable to type 'string'. + sub_contravariant = super_contravariant; + + type Invariant = { + f: (x: T) => T; + } + + declare let super_invariant: Invariant; + declare let sub_invariant: Invariant; + + super_invariant = sub_invariant; // Error + ~~~~~~~~~~~~~~~ +!!! error TS2322: Type 'Invariant' is not assignable to type 'Invariant'. +!!! error TS2322: Types of property 'f' are incompatible. +!!! error TS2322: Type '(x: string) => string' is not assignable to type '(x: unknown) => unknown'. +!!! error TS2322: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2322: Type 'unknown' is not assignable to type 'string'. + sub_invariant = super_invariant; // Error + ~~~~~~~~~~~~~ +!!! error TS2322: Type 'Invariant' is not assignable to type 'Invariant'. +!!! error TS2322: The types returned by 'f(...)' are incompatible between these types. +!!! error TS2322: Type 'unknown' is not assignable to type 'string'. + + // Variance of various type constructors + + type T10 = T; + type T11 = keyof T; + type T12 = T[K]; + type T13 = T[keyof T]; + + // Variance annotation errors + + type Covariant1 = { // Error + ~~~~ +!!! error TS2636: Type 'Covariant1' is not assignable to type 'Covariant1' as implied by variance annotation. +!!! error TS2636: Types of property 'x' are incompatible. +!!! error TS2636: Type 'super-T' is not assignable to type 'sub-T'. + x: T; + } + + type Contravariant1 = keyof T; // Error + ~~~~~ +!!! error TS2636: Type 'keyof sub-T' is not assignable to type 'keyof super-T' as implied by variance annotation. +!!! error TS2636: Type 'string | number | symbol' is not assignable to type 'keyof super-T'. +!!! error TS2636: Type 'string' is not assignable to type 'keyof super-T'. + + type Contravariant2 = { // Error + ~~~~~ +!!! error TS2636: Type 'Contravariant2' is not assignable to type 'Contravariant2' as implied by variance annotation. +!!! error TS2636: Types of property 'f' are incompatible. +!!! error TS2636: Type '(x: sub-T) => void' is not assignable to type '(x: super-T) => void'. +!!! error TS2636: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2636: Type 'super-T' is not assignable to type 'sub-T'. + f: (x: T) => void; + } + + type Invariant1 = { // Error + ~~~~ +!!! error TS2636: Type 'Invariant1' is not assignable to type 'Invariant1' as implied by variance annotation. +!!! error TS2636: The types returned by 'f(...)' are incompatible between these types. +!!! error TS2636: Type 'super-T' is not assignable to type 'sub-T'. + f: (x: T) => T; + } + + type Invariant2 = { // Error + ~~~~~ +!!! error TS2636: Type 'Invariant2' is not assignable to type 'Invariant2' as implied by variance annotation. +!!! error TS2636: Types of property 'f' are incompatible. +!!! error TS2636: Type '(x: sub-T) => sub-T' is not assignable to type '(x: super-T) => super-T'. +!!! error TS2636: Types of parameters 'x' and 'x' are incompatible. +!!! error TS2636: Type 'super-T' is not assignable to type 'sub-T'. + f: (x: T) => T; + } + + // Variance in circular types + + type Foo1 = { // Error + ~~~~ +!!! error TS2636: Type 'Foo1' is not assignable to type 'Foo1' as implied by variance annotation. +!!! error TS2636: Types of property 'x' are incompatible. +!!! error TS2636: Type 'super-T' is not assignable to type 'sub-T'. + x: T; + f: FooFn1; + } + + type FooFn1 = (foo: Bar1) => void; + + type Bar1 = { + value: Foo1; + } + + type Foo2 = { // Error + ~~~~~ +!!! error TS2636: Type 'Foo2' is not assignable to type 'Foo2' as implied by variance annotation. +!!! error TS2636: Types of property 'f' are incompatible. +!!! error TS2636: Type 'FooFn2' is not assignable to type 'FooFn2'. +!!! error TS2636: Type 'super-T' is not assignable to type 'sub-T'. + x: T; + f: FooFn2; + } + + type FooFn2 = (foo: Bar2) => void; + + type Bar2 = { + value: Foo2; + } + + type Foo3 = { + x: T; + f: FooFn3; + } + + type FooFn3 = (foo: Bar3) => void; + + type Bar3 = { + value: Foo3; + } + + // Wrong modifier usage + + type T20 = T; // Error + ~~~~~~ +!!! error TS1273: 'public' modifier cannot appear on a type parameter + type T21 = T; // Error + ~~ +!!! error TS1030: 'in' modifier already seen. + type T22 = T; // Error + ~~~ +!!! error TS1030: 'out' modifier already seen. + type T23 = T; // Error + ~~ +!!! error TS1029: 'in' modifier must precede 'out' modifier. + + declare function f1(x: T): void; // Error + ~~ +!!! error TS1274: 'in' modifier can only appear on a type parameter of a class, interface or type alias + declare function f2(): T; // Error + ~~~ +!!! error TS1274: 'out' modifier can only appear on a type parameter of a class, interface or type alias + + class C { + in a = 0; // Error + ~~ +!!! error TS1274: 'in' modifier can only appear on a type parameter of a class, interface or type alias + out b = 0; // Error + ~~~ +!!! error TS1274: 'out' modifier can only appear on a type parameter of a class, interface or type alias + } + + // Interface merging + + interface Baz {} + interface Baz {} + + declare let baz1: Baz; + declare let baz2: Baz; + + baz1 = baz2; // Error + ~~~~ +!!! error TS2322: Type 'Baz' is not assignable to type 'Baz'. +!!! error TS2322: Type 'unknown' is not assignable to type 'string'. + baz2 = baz1; // Error + ~~~~ +!!! error TS2322: Type 'Baz' is not assignable to type 'Baz'. +!!! error TS2322: Type 'unknown' is not assignable to type 'string'. + + // Repro from #44572 + + interface Parent { + child: Child | null; + parent: Parent | null; + } + + interface Child extends Parent { + readonly a: A; + readonly b: B; + } + + function fn(inp: Child) { + const a: Child = inp; + } + + const pu: Parent = { child: { a: 0, b: 0, child: null, parent: null }, parent: null }; + const notString: Parent = pu; // Error + ~~~~~~~~~ +!!! error TS2322: Type 'Parent' is not assignable to type 'Parent'. +!!! error TS2322: Type 'unknown' is not assignable to type 'string'. + + // Repro from comment in #44572 + + declare class StateNode { + _storedEvent: TEvent; + _action: ActionObject; + _state: StateNode; + } + + interface ActionObject { + exec: (meta: StateNode) => void; + } + + declare function createMachine(action: ActionObject): StateNode; + + declare function interpret(machine: StateNode): void; + + const machine = createMachine({} as any); + + interpret(machine); + + declare const qq: ActionObject<{ type: "PLAY"; value: number }>; + + createMachine<{ type: "PLAY"; value: number } | { type: "RESET" }>(qq); // Error + ~~ +!!! error TS2345: Argument of type 'ActionObject<{ type: "PLAY"; value: number; }>' is not assignable to parameter of type 'ActionObject<{ type: "PLAY"; value: number; } | { type: "RESET"; }>'. +!!! error TS2345: Types of property 'exec' are incompatible. +!!! error TS2345: Type '(meta: StateNode) => void' is not assignable to type '(meta: StateNode) => void'. +!!! error TS2345: Types of parameters 'meta' and 'meta' are incompatible. +!!! error TS2345: Type 'StateNode' is not assignable to type 'StateNode'. +!!! error TS2345: Types of property '_storedEvent' are incompatible. +!!! error TS2345: Type '{ type: "PLAY"; value: number; } | { type: "RESET"; }' is not assignable to type '{ type: "PLAY"; value: number; }'. +!!! error TS2345: Type '{ type: "RESET"; }' is not assignable to type '{ type: "PLAY"; value: number; }'. + \ No newline at end of file diff --git a/tests/baselines/reference/varianceAnnotations.js b/tests/baselines/reference/varianceAnnotations.js new file mode 100644 index 0000000000000..7e3fac5285ee3 --- /dev/null +++ b/tests/baselines/reference/varianceAnnotations.js @@ -0,0 +1,295 @@ +//// [varianceAnnotations.ts] +type Covariant = { + x: T; +} + +declare let super_covariant: Covariant; +declare let sub_covariant: Covariant; + +super_covariant = sub_covariant; +sub_covariant = super_covariant; // Error + +type Contravariant = { + f: (x: T) => void; +} + +declare let super_contravariant: Contravariant; +declare let sub_contravariant: Contravariant; + +super_contravariant = sub_contravariant; // Error +sub_contravariant = super_contravariant; + +type Invariant = { + f: (x: T) => T; +} + +declare let super_invariant: Invariant; +declare let sub_invariant: Invariant; + +super_invariant = sub_invariant; // Error +sub_invariant = super_invariant; // Error + +// Variance of various type constructors + +type T10 = T; +type T11 = keyof T; +type T12 = T[K]; +type T13 = T[keyof T]; + +// Variance annotation errors + +type Covariant1 = { // Error + x: T; +} + +type Contravariant1 = keyof T; // Error + +type Contravariant2 = { // Error + f: (x: T) => void; +} + +type Invariant1 = { // Error + f: (x: T) => T; +} + +type Invariant2 = { // Error + f: (x: T) => T; +} + +// Variance in circular types + +type Foo1 = { // Error + x: T; + f: FooFn1; +} + +type FooFn1 = (foo: Bar1) => void; + +type Bar1 = { + value: Foo1; +} + +type Foo2 = { // Error + x: T; + f: FooFn2; +} + +type FooFn2 = (foo: Bar2) => void; + +type Bar2 = { + value: Foo2; +} + +type Foo3 = { + x: T; + f: FooFn3; +} + +type FooFn3 = (foo: Bar3) => void; + +type Bar3 = { + value: Foo3; +} + +// Wrong modifier usage + +type T20 = T; // Error +type T21 = T; // Error +type T22 = T; // Error +type T23 = T; // Error + +declare function f1(x: T): void; // Error +declare function f2(): T; // Error + +class C { + in a = 0; // Error + out b = 0; // Error +} + +// Interface merging + +interface Baz {} +interface Baz {} + +declare let baz1: Baz; +declare let baz2: Baz; + +baz1 = baz2; // Error +baz2 = baz1; // Error + +// Repro from #44572 + +interface Parent { + child: Child | null; + parent: Parent | null; +} + +interface Child extends Parent { + readonly a: A; + readonly b: B; +} + +function fn(inp: Child) { + const a: Child = inp; +} + +const pu: Parent = { child: { a: 0, b: 0, child: null, parent: null }, parent: null }; +const notString: Parent = pu; // Error + +// Repro from comment in #44572 + +declare class StateNode { + _storedEvent: TEvent; + _action: ActionObject; + _state: StateNode; +} + +interface ActionObject { + exec: (meta: StateNode) => void; +} + +declare function createMachine(action: ActionObject): StateNode; + +declare function interpret(machine: StateNode): void; + +const machine = createMachine({} as any); + +interpret(machine); + +declare const qq: ActionObject<{ type: "PLAY"; value: number }>; + +createMachine<{ type: "PLAY"; value: number } | { type: "RESET" }>(qq); // Error + + +//// [varianceAnnotations.js] +"use strict"; +super_covariant = sub_covariant; +sub_covariant = super_covariant; // Error +super_contravariant = sub_contravariant; // Error +sub_contravariant = super_contravariant; +super_invariant = sub_invariant; // Error +sub_invariant = super_invariant; // Error +var C = /** @class */ (function () { + function C() { + this.a = 0; // Error + this.b = 0; // Error + } + return C; +}()); +baz1 = baz2; // Error +baz2 = baz1; // Error +function fn(inp) { + var a = inp; +} +var pu = { child: { a: 0, b: 0, child: null, parent: null }, parent: null }; +var notString = pu; // Error +var machine = createMachine({}); +interpret(machine); +createMachine(qq); // Error + + +//// [varianceAnnotations.d.ts] +declare type Covariant = { + x: T; +}; +declare let super_covariant: Covariant; +declare let sub_covariant: Covariant; +declare type Contravariant = { + f: (x: T) => void; +}; +declare let super_contravariant: Contravariant; +declare let sub_contravariant: Contravariant; +declare type Invariant = { + f: (x: T) => T; +}; +declare let super_invariant: Invariant; +declare let sub_invariant: Invariant; +declare type T10 = T; +declare type T11 = keyof T; +declare type T12 = T[K]; +declare type T13 = T[keyof T]; +declare type Covariant1 = { + x: T; +}; +declare type Contravariant1 = keyof T; +declare type Contravariant2 = { + f: (x: T) => void; +}; +declare type Invariant1 = { + f: (x: T) => T; +}; +declare type Invariant2 = { + f: (x: T) => T; +}; +declare type Foo1 = { + x: T; + f: FooFn1; +}; +declare type FooFn1 = (foo: Bar1) => void; +declare type Bar1 = { + value: Foo1; +}; +declare type Foo2 = { + x: T; + f: FooFn2; +}; +declare type FooFn2 = (foo: Bar2) => void; +declare type Bar2 = { + value: Foo2; +}; +declare type Foo3 = { + x: T; + f: FooFn3; +}; +declare type FooFn3 = (foo: Bar3) => void; +declare type Bar3 = { + value: Foo3; +}; +declare type T20 = T; +declare type T21 = T; +declare type T22 = T; +declare type T23 = T; +declare function f1(x: T): void; +declare function f2(): T; +declare class C { + in a: number; + out b: number; +} +interface Baz { +} +interface Baz { +} +declare let baz1: Baz; +declare let baz2: Baz; +interface Parent { + child: Child | null; + parent: Parent | null; +} +interface Child extends Parent { + readonly a: A; + readonly b: B; +} +declare function fn(inp: Child): void; +declare const pu: Parent; +declare const notString: Parent; +declare class StateNode { + _storedEvent: TEvent; + _action: ActionObject; + _state: StateNode; +} +interface ActionObject { + exec: (meta: StateNode) => void; +} +declare function createMachine(action: ActionObject): StateNode; +declare function interpret(machine: StateNode): void; +declare const machine: StateNode; +declare const qq: ActionObject<{ + type: "PLAY"; + value: number; +}>; diff --git a/tests/baselines/reference/varianceAnnotations.symbols b/tests/baselines/reference/varianceAnnotations.symbols new file mode 100644 index 0000000000000..78a5b9be39322 --- /dev/null +++ b/tests/baselines/reference/varianceAnnotations.symbols @@ -0,0 +1,450 @@ +=== tests/cases/conformance/types/typeParameters/typeParameterLists/varianceAnnotations.ts === +type Covariant = { +>Covariant : Symbol(Covariant, Decl(varianceAnnotations.ts, 0, 0)) +>T : Symbol(T, Decl(varianceAnnotations.ts, 0, 15)) + + x: T; +>x : Symbol(x, Decl(varianceAnnotations.ts, 0, 25)) +>T : Symbol(T, Decl(varianceAnnotations.ts, 0, 15)) +} + +declare let super_covariant: Covariant; +>super_covariant : Symbol(super_covariant, Decl(varianceAnnotations.ts, 4, 11)) +>Covariant : Symbol(Covariant, Decl(varianceAnnotations.ts, 0, 0)) + +declare let sub_covariant: Covariant; +>sub_covariant : Symbol(sub_covariant, Decl(varianceAnnotations.ts, 5, 11)) +>Covariant : Symbol(Covariant, Decl(varianceAnnotations.ts, 0, 0)) + +super_covariant = sub_covariant; +>super_covariant : Symbol(super_covariant, Decl(varianceAnnotations.ts, 4, 11)) +>sub_covariant : Symbol(sub_covariant, Decl(varianceAnnotations.ts, 5, 11)) + +sub_covariant = super_covariant; // Error +>sub_covariant : Symbol(sub_covariant, Decl(varianceAnnotations.ts, 5, 11)) +>super_covariant : Symbol(super_covariant, Decl(varianceAnnotations.ts, 4, 11)) + +type Contravariant = { +>Contravariant : Symbol(Contravariant, Decl(varianceAnnotations.ts, 8, 32)) +>T : Symbol(T, Decl(varianceAnnotations.ts, 10, 19)) + + f: (x: T) => void; +>f : Symbol(f, Decl(varianceAnnotations.ts, 10, 28)) +>x : Symbol(x, Decl(varianceAnnotations.ts, 11, 8)) +>T : Symbol(T, Decl(varianceAnnotations.ts, 10, 19)) +} + +declare let super_contravariant: Contravariant; +>super_contravariant : Symbol(super_contravariant, Decl(varianceAnnotations.ts, 14, 11)) +>Contravariant : Symbol(Contravariant, Decl(varianceAnnotations.ts, 8, 32)) + +declare let sub_contravariant: Contravariant; +>sub_contravariant : Symbol(sub_contravariant, Decl(varianceAnnotations.ts, 15, 11)) +>Contravariant : Symbol(Contravariant, Decl(varianceAnnotations.ts, 8, 32)) + +super_contravariant = sub_contravariant; // Error +>super_contravariant : Symbol(super_contravariant, Decl(varianceAnnotations.ts, 14, 11)) +>sub_contravariant : Symbol(sub_contravariant, Decl(varianceAnnotations.ts, 15, 11)) + +sub_contravariant = super_contravariant; +>sub_contravariant : Symbol(sub_contravariant, Decl(varianceAnnotations.ts, 15, 11)) +>super_contravariant : Symbol(super_contravariant, Decl(varianceAnnotations.ts, 14, 11)) + +type Invariant = { +>Invariant : Symbol(Invariant, Decl(varianceAnnotations.ts, 18, 40)) +>T : Symbol(T, Decl(varianceAnnotations.ts, 20, 15)) + + f: (x: T) => T; +>f : Symbol(f, Decl(varianceAnnotations.ts, 20, 28)) +>x : Symbol(x, Decl(varianceAnnotations.ts, 21, 8)) +>T : Symbol(T, Decl(varianceAnnotations.ts, 20, 15)) +>T : Symbol(T, Decl(varianceAnnotations.ts, 20, 15)) +} + +declare let super_invariant: Invariant; +>super_invariant : Symbol(super_invariant, Decl(varianceAnnotations.ts, 24, 11)) +>Invariant : Symbol(Invariant, Decl(varianceAnnotations.ts, 18, 40)) + +declare let sub_invariant: Invariant; +>sub_invariant : Symbol(sub_invariant, Decl(varianceAnnotations.ts, 25, 11)) +>Invariant : Symbol(Invariant, Decl(varianceAnnotations.ts, 18, 40)) + +super_invariant = sub_invariant; // Error +>super_invariant : Symbol(super_invariant, Decl(varianceAnnotations.ts, 24, 11)) +>sub_invariant : Symbol(sub_invariant, Decl(varianceAnnotations.ts, 25, 11)) + +sub_invariant = super_invariant; // Error +>sub_invariant : Symbol(sub_invariant, Decl(varianceAnnotations.ts, 25, 11)) +>super_invariant : Symbol(super_invariant, Decl(varianceAnnotations.ts, 24, 11)) + +// Variance of various type constructors + +type T10 = T; +>T10 : Symbol(T10, Decl(varianceAnnotations.ts, 28, 32)) +>T : Symbol(T, Decl(varianceAnnotations.ts, 32, 9)) +>T : Symbol(T, Decl(varianceAnnotations.ts, 32, 9)) + +type T11 = keyof T; +>T11 : Symbol(T11, Decl(varianceAnnotations.ts, 32, 20)) +>T : Symbol(T, Decl(varianceAnnotations.ts, 33, 9)) +>T : Symbol(T, Decl(varianceAnnotations.ts, 33, 9)) + +type T12 = T[K]; +>T12 : Symbol(T12, Decl(varianceAnnotations.ts, 33, 25)) +>T : Symbol(T, Decl(varianceAnnotations.ts, 34, 9)) +>K : Symbol(K, Decl(varianceAnnotations.ts, 34, 15)) +>T : Symbol(T, Decl(varianceAnnotations.ts, 34, 9)) +>T : Symbol(T, Decl(varianceAnnotations.ts, 34, 9)) +>K : Symbol(K, Decl(varianceAnnotations.ts, 34, 15)) + +type T13 = T[keyof T]; +>T13 : Symbol(T13, Decl(varianceAnnotations.ts, 34, 46)) +>T : Symbol(T, Decl(varianceAnnotations.ts, 35, 9)) +>T : Symbol(T, Decl(varianceAnnotations.ts, 35, 9)) +>T : Symbol(T, Decl(varianceAnnotations.ts, 35, 9)) + +// Variance annotation errors + +type Covariant1 = { // Error +>Covariant1 : Symbol(Covariant1, Decl(varianceAnnotations.ts, 35, 32)) +>T : Symbol(T, Decl(varianceAnnotations.ts, 39, 16)) + + x: T; +>x : Symbol(x, Decl(varianceAnnotations.ts, 39, 25)) +>T : Symbol(T, Decl(varianceAnnotations.ts, 39, 16)) +} + +type Contravariant1 = keyof T; // Error +>Contravariant1 : Symbol(Contravariant1, Decl(varianceAnnotations.ts, 41, 1)) +>T : Symbol(T, Decl(varianceAnnotations.ts, 43, 20)) +>T : Symbol(T, Decl(varianceAnnotations.ts, 43, 20)) + +type Contravariant2 = { // Error +>Contravariant2 : Symbol(Contravariant2, Decl(varianceAnnotations.ts, 43, 37)) +>T : Symbol(T, Decl(varianceAnnotations.ts, 45, 20)) + + f: (x: T) => void; +>f : Symbol(f, Decl(varianceAnnotations.ts, 45, 30)) +>x : Symbol(x, Decl(varianceAnnotations.ts, 46, 8)) +>T : Symbol(T, Decl(varianceAnnotations.ts, 45, 20)) +} + +type Invariant1 = { // Error +>Invariant1 : Symbol(Invariant1, Decl(varianceAnnotations.ts, 47, 1)) +>T : Symbol(T, Decl(varianceAnnotations.ts, 49, 16)) + + f: (x: T) => T; +>f : Symbol(f, Decl(varianceAnnotations.ts, 49, 25)) +>x : Symbol(x, Decl(varianceAnnotations.ts, 50, 8)) +>T : Symbol(T, Decl(varianceAnnotations.ts, 49, 16)) +>T : Symbol(T, Decl(varianceAnnotations.ts, 49, 16)) +} + +type Invariant2 = { // Error +>Invariant2 : Symbol(Invariant2, Decl(varianceAnnotations.ts, 51, 1)) +>T : Symbol(T, Decl(varianceAnnotations.ts, 53, 16)) + + f: (x: T) => T; +>f : Symbol(f, Decl(varianceAnnotations.ts, 53, 26)) +>x : Symbol(x, Decl(varianceAnnotations.ts, 54, 8)) +>T : Symbol(T, Decl(varianceAnnotations.ts, 53, 16)) +>T : Symbol(T, Decl(varianceAnnotations.ts, 53, 16)) +} + +// Variance in circular types + +type Foo1 = { // Error +>Foo1 : Symbol(Foo1, Decl(varianceAnnotations.ts, 55, 1)) +>T : Symbol(T, Decl(varianceAnnotations.ts, 59, 10)) + + x: T; +>x : Symbol(x, Decl(varianceAnnotations.ts, 59, 19)) +>T : Symbol(T, Decl(varianceAnnotations.ts, 59, 10)) + + f: FooFn1; +>f : Symbol(f, Decl(varianceAnnotations.ts, 60, 9)) +>FooFn1 : Symbol(FooFn1, Decl(varianceAnnotations.ts, 62, 1)) +>T : Symbol(T, Decl(varianceAnnotations.ts, 59, 10)) +} + +type FooFn1 = (foo: Bar1) => void; +>FooFn1 : Symbol(FooFn1, Decl(varianceAnnotations.ts, 62, 1)) +>T : Symbol(T, Decl(varianceAnnotations.ts, 64, 12)) +>foo : Symbol(foo, Decl(varianceAnnotations.ts, 64, 18)) +>Bar1 : Symbol(Bar1, Decl(varianceAnnotations.ts, 64, 42)) +>T : Symbol(T, Decl(varianceAnnotations.ts, 64, 12)) + +type Bar1 = { +>Bar1 : Symbol(Bar1, Decl(varianceAnnotations.ts, 64, 42)) +>T : Symbol(T, Decl(varianceAnnotations.ts, 66, 10)) + + value: Foo1; +>value : Symbol(value, Decl(varianceAnnotations.ts, 66, 16)) +>Foo1 : Symbol(Foo1, Decl(varianceAnnotations.ts, 55, 1)) +>T : Symbol(T, Decl(varianceAnnotations.ts, 66, 10)) +} + +type Foo2 = { // Error +>Foo2 : Symbol(Foo2, Decl(varianceAnnotations.ts, 68, 1)) +>T : Symbol(T, Decl(varianceAnnotations.ts, 70, 10)) + + x: T; +>x : Symbol(x, Decl(varianceAnnotations.ts, 70, 20)) +>T : Symbol(T, Decl(varianceAnnotations.ts, 70, 10)) + + f: FooFn2; +>f : Symbol(f, Decl(varianceAnnotations.ts, 71, 9)) +>FooFn2 : Symbol(FooFn2, Decl(varianceAnnotations.ts, 73, 1)) +>T : Symbol(T, Decl(varianceAnnotations.ts, 70, 10)) +} + +type FooFn2 = (foo: Bar2) => void; +>FooFn2 : Symbol(FooFn2, Decl(varianceAnnotations.ts, 73, 1)) +>T : Symbol(T, Decl(varianceAnnotations.ts, 75, 12)) +>foo : Symbol(foo, Decl(varianceAnnotations.ts, 75, 18)) +>Bar2 : Symbol(Bar2, Decl(varianceAnnotations.ts, 75, 42)) +>T : Symbol(T, Decl(varianceAnnotations.ts, 75, 12)) + +type Bar2 = { +>Bar2 : Symbol(Bar2, Decl(varianceAnnotations.ts, 75, 42)) +>T : Symbol(T, Decl(varianceAnnotations.ts, 77, 10)) + + value: Foo2; +>value : Symbol(value, Decl(varianceAnnotations.ts, 77, 16)) +>Foo2 : Symbol(Foo2, Decl(varianceAnnotations.ts, 68, 1)) +>T : Symbol(T, Decl(varianceAnnotations.ts, 77, 10)) +} + +type Foo3 = { +>Foo3 : Symbol(Foo3, Decl(varianceAnnotations.ts, 79, 1)) +>T : Symbol(T, Decl(varianceAnnotations.ts, 81, 10)) + + x: T; +>x : Symbol(x, Decl(varianceAnnotations.ts, 81, 23)) +>T : Symbol(T, Decl(varianceAnnotations.ts, 81, 10)) + + f: FooFn3; +>f : Symbol(f, Decl(varianceAnnotations.ts, 82, 9)) +>FooFn3 : Symbol(FooFn3, Decl(varianceAnnotations.ts, 84, 1)) +>T : Symbol(T, Decl(varianceAnnotations.ts, 81, 10)) +} + +type FooFn3 = (foo: Bar3) => void; +>FooFn3 : Symbol(FooFn3, Decl(varianceAnnotations.ts, 84, 1)) +>T : Symbol(T, Decl(varianceAnnotations.ts, 86, 12)) +>foo : Symbol(foo, Decl(varianceAnnotations.ts, 86, 18)) +>Bar3 : Symbol(Bar3, Decl(varianceAnnotations.ts, 86, 42)) +>T : Symbol(T, Decl(varianceAnnotations.ts, 86, 12)) + +type Bar3 = { +>Bar3 : Symbol(Bar3, Decl(varianceAnnotations.ts, 86, 42)) +>T : Symbol(T, Decl(varianceAnnotations.ts, 88, 10)) + + value: Foo3; +>value : Symbol(value, Decl(varianceAnnotations.ts, 88, 16)) +>Foo3 : Symbol(Foo3, Decl(varianceAnnotations.ts, 79, 1)) +>T : Symbol(T, Decl(varianceAnnotations.ts, 88, 10)) +} + +// Wrong modifier usage + +type T20 = T; // Error +>T20 : Symbol(T20, Decl(varianceAnnotations.ts, 90, 1)) +>T : Symbol(T, Decl(varianceAnnotations.ts, 94, 9)) +>T : Symbol(T, Decl(varianceAnnotations.ts, 94, 9)) + +type T21 = T; // Error +>T21 : Symbol(T21, Decl(varianceAnnotations.ts, 94, 23)) +>T : Symbol(T, Decl(varianceAnnotations.ts, 95, 9)) +>T : Symbol(T, Decl(varianceAnnotations.ts, 95, 9)) + +type T22 = T; // Error +>T22 : Symbol(T22, Decl(varianceAnnotations.ts, 95, 26)) +>T : Symbol(T, Decl(varianceAnnotations.ts, 96, 9)) +>T : Symbol(T, Decl(varianceAnnotations.ts, 96, 9)) + +type T23 = T; // Error +>T23 : Symbol(T23, Decl(varianceAnnotations.ts, 96, 27)) +>T : Symbol(T, Decl(varianceAnnotations.ts, 97, 9)) +>T : Symbol(T, Decl(varianceAnnotations.ts, 97, 9)) + +declare function f1(x: T): void; // Error +>f1 : Symbol(f1, Decl(varianceAnnotations.ts, 97, 23)) +>T : Symbol(T, Decl(varianceAnnotations.ts, 99, 20)) +>x : Symbol(x, Decl(varianceAnnotations.ts, 99, 26)) +>T : Symbol(T, Decl(varianceAnnotations.ts, 99, 20)) + +declare function f2(): T; // Error +>f2 : Symbol(f2, Decl(varianceAnnotations.ts, 99, 38)) +>T : Symbol(T, Decl(varianceAnnotations.ts, 100, 20)) +>T : Symbol(T, Decl(varianceAnnotations.ts, 100, 20)) + +class C { +>C : Symbol(C, Decl(varianceAnnotations.ts, 100, 32)) + + in a = 0; // Error +>a : Symbol(C.a, Decl(varianceAnnotations.ts, 102, 9)) + + out b = 0; // Error +>b : Symbol(C.b, Decl(varianceAnnotations.ts, 103, 13)) +} + +// Interface merging + +interface Baz {} +>Baz : Symbol(Baz, Decl(varianceAnnotations.ts, 105, 1), Decl(varianceAnnotations.ts, 109, 23)) +>T : Symbol(T, Decl(varianceAnnotations.ts, 109, 14), Decl(varianceAnnotations.ts, 110, 14)) + +interface Baz {} +>Baz : Symbol(Baz, Decl(varianceAnnotations.ts, 105, 1), Decl(varianceAnnotations.ts, 109, 23)) +>T : Symbol(T, Decl(varianceAnnotations.ts, 109, 14), Decl(varianceAnnotations.ts, 110, 14)) + +declare let baz1: Baz; +>baz1 : Symbol(baz1, Decl(varianceAnnotations.ts, 112, 11)) +>Baz : Symbol(Baz, Decl(varianceAnnotations.ts, 105, 1), Decl(varianceAnnotations.ts, 109, 23)) + +declare let baz2: Baz; +>baz2 : Symbol(baz2, Decl(varianceAnnotations.ts, 113, 11)) +>Baz : Symbol(Baz, Decl(varianceAnnotations.ts, 105, 1), Decl(varianceAnnotations.ts, 109, 23)) + +baz1 = baz2; // Error +>baz1 : Symbol(baz1, Decl(varianceAnnotations.ts, 112, 11)) +>baz2 : Symbol(baz2, Decl(varianceAnnotations.ts, 113, 11)) + +baz2 = baz1; // Error +>baz2 : Symbol(baz2, Decl(varianceAnnotations.ts, 113, 11)) +>baz1 : Symbol(baz1, Decl(varianceAnnotations.ts, 112, 11)) + +// Repro from #44572 + +interface Parent { +>Parent : Symbol(Parent, Decl(varianceAnnotations.ts, 116, 12)) +>A : Symbol(A, Decl(varianceAnnotations.ts, 120, 17)) + + child: Child | null; +>child : Symbol(Parent.child, Decl(varianceAnnotations.ts, 120, 25)) +>Child : Symbol(Child, Decl(varianceAnnotations.ts, 123, 1)) +>A : Symbol(A, Decl(varianceAnnotations.ts, 120, 17)) + + parent: Parent | null; +>parent : Symbol(Parent.parent, Decl(varianceAnnotations.ts, 121, 27)) +>Parent : Symbol(Parent, Decl(varianceAnnotations.ts, 116, 12)) +>A : Symbol(A, Decl(varianceAnnotations.ts, 120, 17)) +} + +interface Child extends Parent { +>Child : Symbol(Child, Decl(varianceAnnotations.ts, 123, 1)) +>A : Symbol(A, Decl(varianceAnnotations.ts, 125, 16)) +>B : Symbol(B, Decl(varianceAnnotations.ts, 125, 18)) +>Parent : Symbol(Parent, Decl(varianceAnnotations.ts, 116, 12)) +>A : Symbol(A, Decl(varianceAnnotations.ts, 125, 16)) + + readonly a: A; +>a : Symbol(Child.a, Decl(varianceAnnotations.ts, 125, 51)) +>A : Symbol(A, Decl(varianceAnnotations.ts, 125, 16)) + + readonly b: B; +>b : Symbol(Child.b, Decl(varianceAnnotations.ts, 126, 18)) +>B : Symbol(B, Decl(varianceAnnotations.ts, 125, 18)) +} + +function fn(inp: Child) { +>fn : Symbol(fn, Decl(varianceAnnotations.ts, 128, 1)) +>A : Symbol(A, Decl(varianceAnnotations.ts, 130, 12)) +>inp : Symbol(inp, Decl(varianceAnnotations.ts, 130, 15)) +>Child : Symbol(Child, Decl(varianceAnnotations.ts, 123, 1)) +>A : Symbol(A, Decl(varianceAnnotations.ts, 130, 12)) + + const a: Child = inp; +>a : Symbol(a, Decl(varianceAnnotations.ts, 131, 9)) +>Child : Symbol(Child, Decl(varianceAnnotations.ts, 123, 1)) +>inp : Symbol(inp, Decl(varianceAnnotations.ts, 130, 15)) +} + +const pu: Parent = { child: { a: 0, b: 0, child: null, parent: null }, parent: null }; +>pu : Symbol(pu, Decl(varianceAnnotations.ts, 134, 5)) +>Parent : Symbol(Parent, Decl(varianceAnnotations.ts, 116, 12)) +>child : Symbol(child, Decl(varianceAnnotations.ts, 134, 29)) +>a : Symbol(a, Decl(varianceAnnotations.ts, 134, 38)) +>b : Symbol(b, Decl(varianceAnnotations.ts, 134, 44)) +>child : Symbol(child, Decl(varianceAnnotations.ts, 134, 50)) +>parent : Symbol(parent, Decl(varianceAnnotations.ts, 134, 63)) +>parent : Symbol(parent, Decl(varianceAnnotations.ts, 134, 79)) + +const notString: Parent = pu; // Error +>notString : Symbol(notString, Decl(varianceAnnotations.ts, 135, 5)) +>Parent : Symbol(Parent, Decl(varianceAnnotations.ts, 116, 12)) +>pu : Symbol(pu, Decl(varianceAnnotations.ts, 134, 5)) + +// Repro from comment in #44572 + +declare class StateNode { +>StateNode : Symbol(StateNode, Decl(varianceAnnotations.ts, 135, 37)) +>TContext : Symbol(TContext, Decl(varianceAnnotations.ts, 139, 24)) +>TEvent : Symbol(TEvent, Decl(varianceAnnotations.ts, 139, 33)) +>type : Symbol(type, Decl(varianceAnnotations.ts, 139, 57)) + + _storedEvent: TEvent; +>_storedEvent : Symbol(StateNode._storedEvent, Decl(varianceAnnotations.ts, 139, 75)) +>TEvent : Symbol(TEvent, Decl(varianceAnnotations.ts, 139, 33)) + + _action: ActionObject; +>_action : Symbol(StateNode._action, Decl(varianceAnnotations.ts, 140, 25)) +>ActionObject : Symbol(ActionObject, Decl(varianceAnnotations.ts, 143, 1)) +>TEvent : Symbol(TEvent, Decl(varianceAnnotations.ts, 139, 33)) + + _state: StateNode; +>_state : Symbol(StateNode._state, Decl(varianceAnnotations.ts, 141, 34)) +>StateNode : Symbol(StateNode, Decl(varianceAnnotations.ts, 135, 37)) +>TContext : Symbol(TContext, Decl(varianceAnnotations.ts, 139, 24)) +} + +interface ActionObject { +>ActionObject : Symbol(ActionObject, Decl(varianceAnnotations.ts, 143, 1)) +>TEvent : Symbol(TEvent, Decl(varianceAnnotations.ts, 145, 23)) +>type : Symbol(type, Decl(varianceAnnotations.ts, 145, 39)) + + exec: (meta: StateNode) => void; +>exec : Symbol(ActionObject.exec, Decl(varianceAnnotations.ts, 145, 57)) +>meta : Symbol(meta, Decl(varianceAnnotations.ts, 146, 11)) +>StateNode : Symbol(StateNode, Decl(varianceAnnotations.ts, 135, 37)) +>TEvent : Symbol(TEvent, Decl(varianceAnnotations.ts, 145, 23)) +} + +declare function createMachine(action: ActionObject): StateNode; +>createMachine : Symbol(createMachine, Decl(varianceAnnotations.ts, 147, 1)) +>TEvent : Symbol(TEvent, Decl(varianceAnnotations.ts, 149, 31)) +>type : Symbol(type, Decl(varianceAnnotations.ts, 149, 47)) +>action : Symbol(action, Decl(varianceAnnotations.ts, 149, 64)) +>ActionObject : Symbol(ActionObject, Decl(varianceAnnotations.ts, 143, 1)) +>TEvent : Symbol(TEvent, Decl(varianceAnnotations.ts, 149, 31)) +>StateNode : Symbol(StateNode, Decl(varianceAnnotations.ts, 135, 37)) + +declare function interpret(machine: StateNode): void; +>interpret : Symbol(interpret, Decl(varianceAnnotations.ts, 149, 115)) +>TContext : Symbol(TContext, Decl(varianceAnnotations.ts, 151, 27)) +>machine : Symbol(machine, Decl(varianceAnnotations.ts, 151, 37)) +>StateNode : Symbol(StateNode, Decl(varianceAnnotations.ts, 135, 37)) +>TContext : Symbol(TContext, Decl(varianceAnnotations.ts, 151, 27)) + +const machine = createMachine({} as any); +>machine : Symbol(machine, Decl(varianceAnnotations.ts, 153, 5)) +>createMachine : Symbol(createMachine, Decl(varianceAnnotations.ts, 147, 1)) + +interpret(machine); +>interpret : Symbol(interpret, Decl(varianceAnnotations.ts, 149, 115)) +>machine : Symbol(machine, Decl(varianceAnnotations.ts, 153, 5)) + +declare const qq: ActionObject<{ type: "PLAY"; value: number }>; +>qq : Symbol(qq, Decl(varianceAnnotations.ts, 157, 13)) +>ActionObject : Symbol(ActionObject, Decl(varianceAnnotations.ts, 143, 1)) +>type : Symbol(type, Decl(varianceAnnotations.ts, 157, 32)) +>value : Symbol(value, Decl(varianceAnnotations.ts, 157, 46)) + +createMachine<{ type: "PLAY"; value: number } | { type: "RESET" }>(qq); // Error +>createMachine : Symbol(createMachine, Decl(varianceAnnotations.ts, 147, 1)) +>type : Symbol(type, Decl(varianceAnnotations.ts, 159, 15)) +>value : Symbol(value, Decl(varianceAnnotations.ts, 159, 29)) +>type : Symbol(type, Decl(varianceAnnotations.ts, 159, 49)) +>qq : Symbol(qq, Decl(varianceAnnotations.ts, 157, 13)) + diff --git a/tests/baselines/reference/varianceAnnotations.types b/tests/baselines/reference/varianceAnnotations.types new file mode 100644 index 0000000000000..e584d60a696c2 --- /dev/null +++ b/tests/baselines/reference/varianceAnnotations.types @@ -0,0 +1,348 @@ +=== tests/cases/conformance/types/typeParameters/typeParameterLists/varianceAnnotations.ts === +type Covariant = { +>Covariant : Covariant + + x: T; +>x : T +} + +declare let super_covariant: Covariant; +>super_covariant : Covariant + +declare let sub_covariant: Covariant; +>sub_covariant : Covariant + +super_covariant = sub_covariant; +>super_covariant = sub_covariant : Covariant +>super_covariant : Covariant +>sub_covariant : Covariant + +sub_covariant = super_covariant; // Error +>sub_covariant = super_covariant : Covariant +>sub_covariant : Covariant +>super_covariant : Covariant + +type Contravariant = { +>Contravariant : Contravariant + + f: (x: T) => void; +>f : (x: T) => void +>x : T +} + +declare let super_contravariant: Contravariant; +>super_contravariant : Contravariant + +declare let sub_contravariant: Contravariant; +>sub_contravariant : Contravariant + +super_contravariant = sub_contravariant; // Error +>super_contravariant = sub_contravariant : Contravariant +>super_contravariant : Contravariant +>sub_contravariant : Contravariant + +sub_contravariant = super_contravariant; +>sub_contravariant = super_contravariant : Contravariant +>sub_contravariant : Contravariant +>super_contravariant : Contravariant + +type Invariant = { +>Invariant : Invariant + + f: (x: T) => T; +>f : (x: T) => T +>x : T +} + +declare let super_invariant: Invariant; +>super_invariant : Invariant + +declare let sub_invariant: Invariant; +>sub_invariant : Invariant + +super_invariant = sub_invariant; // Error +>super_invariant = sub_invariant : Invariant +>super_invariant : Invariant +>sub_invariant : Invariant + +sub_invariant = super_invariant; // Error +>sub_invariant = super_invariant : Invariant +>sub_invariant : Invariant +>super_invariant : Invariant + +// Variance of various type constructors + +type T10 = T; +>T10 : T + +type T11 = keyof T; +>T11 : keyof T + +type T12 = T[K]; +>T12 : T12 + +type T13 = T[keyof T]; +>T13 : T13 + +// Variance annotation errors + +type Covariant1 = { // Error +>Covariant1 : Covariant1 + + x: T; +>x : T +} + +type Contravariant1 = keyof T; // Error +>Contravariant1 : keyof T + +type Contravariant2 = { // Error +>Contravariant2 : Contravariant2 + + f: (x: T) => void; +>f : (x: T) => void +>x : T +} + +type Invariant1 = { // Error +>Invariant1 : Invariant1 + + f: (x: T) => T; +>f : (x: T) => T +>x : T +} + +type Invariant2 = { // Error +>Invariant2 : Invariant2 + + f: (x: T) => T; +>f : (x: T) => T +>x : T +} + +// Variance in circular types + +type Foo1 = { // Error +>Foo1 : Foo1 + + x: T; +>x : T + + f: FooFn1; +>f : FooFn1 +} + +type FooFn1 = (foo: Bar1) => void; +>FooFn1 : FooFn1 +>foo : Bar1 + +type Bar1 = { +>Bar1 : Bar1 + + value: Foo1; +>value : Foo1 +} + +type Foo2 = { // Error +>Foo2 : Foo2 + + x: T; +>x : T + + f: FooFn2; +>f : FooFn2 +} + +type FooFn2 = (foo: Bar2) => void; +>FooFn2 : FooFn2 +>foo : Bar2 + +type Bar2 = { +>Bar2 : Bar2 + + value: Foo2; +>value : Foo2 +} + +type Foo3 = { +>Foo3 : Foo3 + + x: T; +>x : T + + f: FooFn3; +>f : FooFn3 +} + +type FooFn3 = (foo: Bar3) => void; +>FooFn3 : FooFn3 +>foo : Bar3 + +type Bar3 = { +>Bar3 : Bar3 + + value: Foo3; +>value : Foo3 +} + +// Wrong modifier usage + +type T20 = T; // Error +>T20 : T + +type T21 = T; // Error +>T21 : T + +type T22 = T; // Error +>T22 : T + +type T23 = T; // Error +>T23 : T + +declare function f1(x: T): void; // Error +>f1 : (x: T) => void +>x : T + +declare function f2(): T; // Error +>f2 : () => T + +class C { +>C : C + + in a = 0; // Error +>a : number +>0 : 0 + + out b = 0; // Error +>b : number +>0 : 0 +} + +// Interface merging + +interface Baz {} +interface Baz {} + +declare let baz1: Baz; +>baz1 : Baz + +declare let baz2: Baz; +>baz2 : Baz + +baz1 = baz2; // Error +>baz1 = baz2 : Baz +>baz1 : Baz +>baz2 : Baz + +baz2 = baz1; // Error +>baz2 = baz1 : Baz +>baz2 : Baz +>baz1 : Baz + +// Repro from #44572 + +interface Parent { + child: Child | null; +>child : Child | null +>null : null + + parent: Parent | null; +>parent : Parent | null +>null : null +} + +interface Child extends Parent { + readonly a: A; +>a : A + + readonly b: B; +>b : B +} + +function fn(inp: Child) { +>fn : (inp: Child) => void +>inp : Child + + const a: Child = inp; +>a : Child +>inp : Child +} + +const pu: Parent = { child: { a: 0, b: 0, child: null, parent: null }, parent: null }; +>pu : Parent +>{ child: { a: 0, b: 0, child: null, parent: null }, parent: null } : { child: { a: number; b: number; child: null; parent: null; }; parent: null; } +>child : { a: number; b: number; child: null; parent: null; } +>{ a: 0, b: 0, child: null, parent: null } : { a: number; b: number; child: null; parent: null; } +>a : number +>0 : 0 +>b : number +>0 : 0 +>child : null +>null : null +>parent : null +>null : null +>parent : null +>null : null + +const notString: Parent = pu; // Error +>notString : Parent +>pu : Parent + +// Repro from comment in #44572 + +declare class StateNode { +>StateNode : StateNode +>type : string + + _storedEvent: TEvent; +>_storedEvent : TEvent + + _action: ActionObject; +>_action : ActionObject + + _state: StateNode; +>_state : StateNode +} + +interface ActionObject { +>type : string + + exec: (meta: StateNode) => void; +>exec : (meta: StateNode) => void +>meta : StateNode +} + +declare function createMachine(action: ActionObject): StateNode; +>createMachine : (action: ActionObject) => StateNode +>type : string +>action : ActionObject + +declare function interpret(machine: StateNode): void; +>interpret : (machine: StateNode) => void +>machine : StateNode + +const machine = createMachine({} as any); +>machine : StateNode +>createMachine({} as any) : StateNode +>createMachine : (action: ActionObject) => StateNode +>{} as any : any +>{} : {} + +interpret(machine); +>interpret(machine) : void +>interpret : (machine: StateNode) => void +>machine : StateNode + +declare const qq: ActionObject<{ type: "PLAY"; value: number }>; +>qq : ActionObject<{ type: "PLAY"; value: number; }> +>type : "PLAY" +>value : number + +createMachine<{ type: "PLAY"; value: number } | { type: "RESET" }>(qq); // Error +>createMachine<{ type: "PLAY"; value: number } | { type: "RESET" }>(qq) : StateNode +>createMachine : (action: ActionObject) => StateNode +>type : "PLAY" +>value : number +>type : "RESET" +>qq : ActionObject<{ type: "PLAY"; value: number; }> + diff --git a/tests/cases/compiler/APISample_watcher.ts b/tests/cases/compiler/APISample_watcher.ts index 8b46979e09288..dfae23488c6e3 100644 --- a/tests/cases/compiler/APISample_watcher.ts +++ b/tests/cases/compiler/APISample_watcher.ts @@ -51,6 +51,8 @@ function watch(rootFileNames: string[], options: ts.CompilerOptions) { getCurrentDirectory: () => process.cwd(), getCompilationSettings: () => options, getDefaultLibFileName: (options) => ts.getDefaultLibFilePath(options), + fileExists: fileName => fs.existsSync(fileName), + readFile: fileName => fs.readFileSync(fileName), }; // Create the language service files diff --git a/tests/cases/compiler/DateTimeFormatAndNumberFormatES2021.ts b/tests/cases/compiler/DateTimeFormatAndNumberFormatES2021.ts new file mode 100644 index 0000000000000..0ad9eca72e850 --- /dev/null +++ b/tests/cases/compiler/DateTimeFormatAndNumberFormatES2021.ts @@ -0,0 +1,8 @@ +// @lib: es2021 +Intl.NumberFormat.prototype.formatRange +Intl.DateTimeFormat.prototype.formatRange + +new Intl.NumberFormat().formatRange +new Intl.NumberFormat().formatRangeToParts +new Intl.DateTimeFormat().formatRange +new Intl.DateTimeFormat().formatRangeToParts \ No newline at end of file diff --git a/tests/cases/compiler/abstractClassUnionInstantiation.ts b/tests/cases/compiler/abstractClassUnionInstantiation.ts new file mode 100644 index 0000000000000..0b3b2e1feb206 --- /dev/null +++ b/tests/cases/compiler/abstractClassUnionInstantiation.ts @@ -0,0 +1,21 @@ +class ConcreteA {} +class ConcreteB {} +abstract class AbstractA { a: string; } +abstract class AbstractB { b: string; } + +type Abstracts = typeof AbstractA | typeof AbstractB; +type Concretes = typeof ConcreteA | typeof ConcreteB; +type ConcretesOrAbstracts = Concretes | Abstracts; + +declare const cls1: ConcretesOrAbstracts; +declare const cls2: Abstracts; +declare const cls3: Concretes; + +new cls1(); // should error +new cls2(); // should error +new cls3(); // should work + +[ConcreteA, AbstractA, AbstractB].map(cls => new cls()); // should error +[AbstractA, AbstractB, ConcreteA].map(cls => new cls()); // should error +[ConcreteA, ConcreteB].map(cls => new cls()); // should work +[AbstractA, AbstractB].map(cls => new cls()); // should error \ No newline at end of file diff --git a/tests/cases/compiler/amdLikeInputDeclarationEmit.ts b/tests/cases/compiler/amdLikeInputDeclarationEmit.ts new file mode 100644 index 0000000000000..91cb244525027 --- /dev/null +++ b/tests/cases/compiler/amdLikeInputDeclarationEmit.ts @@ -0,0 +1,34 @@ +// @declaration: true +// @declarationDir: definitions +// @emitDeclarationOnly: true +// @checkJs: true +// @allowJs: true +// @filename: typing.d.ts +declare function define(name: string, modules: string[], ready: (...modules: unknown[]) => T); +// @filename: deps/BaseClass.d.ts +declare module "deps/BaseClass" { + class BaseClass { + static extends(a: A): new () => A & BaseClass; + } + export = BaseClass; +} +// @filename: ExtendedClass.js +define("lib/ExtendedClass", ["deps/BaseClass"], +/** + * {typeof import("deps/BaseClass")} + * @param {typeof import("deps/BaseClass")} BaseClass + * @returns + */ +(BaseClass) => { + + const ExtendedClass = BaseClass.extends({ + f: function() { + return "something"; + } + }); + + // Exports the module in a way tsc recognize class export + const module = {}; + module.exports = ExtendedClass + return module.exports; +}); \ No newline at end of file diff --git a/tests/cases/compiler/argumentsPropertyNameInJsMode1.ts b/tests/cases/compiler/argumentsPropertyNameInJsMode1.ts new file mode 100644 index 0000000000000..fdf74c8b9a230 --- /dev/null +++ b/tests/cases/compiler/argumentsPropertyNameInJsMode1.ts @@ -0,0 +1,15 @@ +// @allowJs: true +// @checkJs: true +// @declaration: true +// @outDir: ./out +// @filename: a.js + +const foo = { + f1: (params) => { } +} + +function f2(x) { + foo.f1({ x, arguments: [] }); +} + +f2(1, 2, 3); diff --git a/tests/cases/compiler/argumentsPropertyNameInJsMode2.ts b/tests/cases/compiler/argumentsPropertyNameInJsMode2.ts new file mode 100644 index 0000000000000..11515ea74a1b6 --- /dev/null +++ b/tests/cases/compiler/argumentsPropertyNameInJsMode2.ts @@ -0,0 +1,11 @@ +// @allowJs: true +// @checkJs: true +// @declaration: true +// @outDir: ./out +// @filename: a.js + +function f(x) { + arguments; +} + +f(1, 2, 3); diff --git a/tests/cases/compiler/arrayDestructuringInSwitch1.ts b/tests/cases/compiler/arrayDestructuringInSwitch1.ts new file mode 100644 index 0000000000000..47d77f97d513e --- /dev/null +++ b/tests/cases/compiler/arrayDestructuringInSwitch1.ts @@ -0,0 +1,21 @@ +export type Expression = BooleanLogicExpression | 'true' | 'false'; +export type BooleanLogicExpression = ['and', ...Expression[]] | ['not', Expression]; + +export function evaluate(expression: Expression): boolean { + if (Array.isArray(expression)) { + const [operator, ...operands] = expression; + switch (operator) { + case 'and': { + return operands.every((child) => evaluate(child)); + } + case 'not': { + return !evaluate(operands[0]); + } + default: { + throw new Error(`${operator} is not a supported operator`); + } + } + } else { + return expression === 'true'; + } +} \ No newline at end of file diff --git a/tests/cases/compiler/arrayDestructuringInSwitch2.ts b/tests/cases/compiler/arrayDestructuringInSwitch2.ts new file mode 100644 index 0000000000000..ec084295d0907 --- /dev/null +++ b/tests/cases/compiler/arrayDestructuringInSwitch2.ts @@ -0,0 +1,14 @@ +type X = { kind: "a", a: [1] } | { kind: "b", a: [] } + +function foo(x: X): 1 { + const { kind, a } = x; + switch (kind) { + case "a": + return a[0]; + case "b": + return 1; + default: + const [n] = a; + return a; + } +} \ No newline at end of file diff --git a/tests/cases/compiler/avoidListingPropertiesForTypesWithOnlyCallOrConstructSignatures.ts b/tests/cases/compiler/avoidListingPropertiesForTypesWithOnlyCallOrConstructSignatures.ts new file mode 100644 index 0000000000000..4bc72303fb0f5 --- /dev/null +++ b/tests/cases/compiler/avoidListingPropertiesForTypesWithOnlyCallOrConstructSignatures.ts @@ -0,0 +1,8 @@ +interface Dog { + barkable: true +} + +declare function getRover(): Dog + +export let x:Dog = getRover; +// export let x: Dog = getRover; \ No newline at end of file diff --git a/tests/cases/compiler/awaitCallExpressionInSyncFunction.ts b/tests/cases/compiler/awaitCallExpressionInSyncFunction.ts new file mode 100644 index 0000000000000..ac0a0f0b93fb7 --- /dev/null +++ b/tests/cases/compiler/awaitCallExpressionInSyncFunction.ts @@ -0,0 +1,6 @@ +// @target: esnext + +function foo() { + const foo = await(Promise.resolve(1)); + return foo; +} diff --git a/tests/cases/compiler/awaitedType.ts b/tests/cases/compiler/awaitedType.ts index 13c046685f1b4..924bb535589e7 100644 --- a/tests/cases/compiler/awaitedType.ts +++ b/tests/cases/compiler/awaitedType.ts @@ -24,6 +24,9 @@ interface BadPromise1 { then(cb: (value: BadPromise2) => void): void; } interface BadPromise2 { then(cb: (value: BadPromise1) => void): void; } type T17 = Awaited; // error +// https://github.com/microsoft/TypeScript/issues/46934 +type T18 = Awaited<{ then(cb: (value: number, other: { }) => void)}>; // number + // https://github.com/microsoft/TypeScript/issues/33562 type MaybePromise = T | Promise | PromiseLike declare function MaybePromise(value: T): MaybePromise; diff --git a/tests/cases/compiler/awaitedTypeStrictNull.ts b/tests/cases/compiler/awaitedTypeStrictNull.ts index b3672a48e65cb..fab5045b1a034 100644 --- a/tests/cases/compiler/awaitedTypeStrictNull.ts +++ b/tests/cases/compiler/awaitedTypeStrictNull.ts @@ -24,6 +24,9 @@ interface BadPromise1 { then(cb: (value: BadPromise2) => void): void; } interface BadPromise2 { then(cb: (value: BadPromise1) => void): void; } type T17 = Awaited; // error +// https://github.com/microsoft/TypeScript/issues/46934 +type T18 = Awaited<{ then(cb: (value: number, other: { }) => void)}>; // number + // https://github.com/microsoft/TypeScript/issues/33562 type MaybePromise = T | Promise | PromiseLike declare function MaybePromise(value: T): MaybePromise; diff --git a/tests/cases/compiler/blockScopedVariablesUseBeforeDef.ts b/tests/cases/compiler/blockScopedVariablesUseBeforeDef.ts index 351bdde122e1c..2e0b0727895d0 100644 --- a/tests/cases/compiler/blockScopedVariablesUseBeforeDef.ts +++ b/tests/cases/compiler/blockScopedVariablesUseBeforeDef.ts @@ -102,3 +102,23 @@ function foo14() { } let x } + +function foo15() { + // https://github.com/microsoft/TypeScript/issues/42678 + const [ + a, + b, + ] = ((): [number, number] => { + (() => console.log(a))(); // should error + console.log(a); // should error + const b = () => a; // should be ok + return [ + 0, + 0, + ]; + })(); +} + +function foo16() { + let [a] = (() => a)(); +} diff --git a/tests/cases/compiler/checkJsdocTypeTagOnExportAssignment8.ts b/tests/cases/compiler/checkJsdocTypeTagOnExportAssignment8.ts new file mode 100644 index 0000000000000..4925eed1edd50 --- /dev/null +++ b/tests/cases/compiler/checkJsdocTypeTagOnExportAssignment8.ts @@ -0,0 +1,17 @@ +// @allowJs: true +// @checkJs: true +// @outDir: ./out +// @filename: checkJsdocTypeTagOnExportAssignment8.js + +// @Filename: a.js +/** + * @typedef Foo + * @property {string} a + * @property {'b'} b + */ + +/** @type {Foo} */ +export default { + a: 'a', + b: 'b' +} diff --git a/tests/cases/compiler/checkJsxNotSetError.ts b/tests/cases/compiler/checkJsxNotSetError.ts new file mode 100644 index 0000000000000..824a68d4ff1d7 --- /dev/null +++ b/tests/cases/compiler/checkJsxNotSetError.ts @@ -0,0 +1,12 @@ +// @allowJs: true +// @checkJs: true + +// @Filename: /foo.jsx +const Foo = () => ( +

+); +export default Foo; + +// @Filename: /bar.jsx +import Foo from '/foo'; +const a = \ No newline at end of file diff --git a/tests/cases/compiler/checkerInitializationCrash.ts b/tests/cases/compiler/checkerInitializationCrash.ts new file mode 100644 index 0000000000000..969f81e6d354a --- /dev/null +++ b/tests/cases/compiler/checkerInitializationCrash.ts @@ -0,0 +1,40 @@ +// @module: esnext +// @moduleResolution: node +// @esModuleInterop: true + +// @Filename: /node_modules/@fullcalendar/react/index.d.ts +import * as react from 'react'; +declare global { + namespace FullCalendarVDom { + export import VNode = react.ReactNode; + } +} + +export default class FullCalendar { +} + +// @Filename: /node_modules/@fullcalendar/core/index.d.ts +import * as preact from 'preact'; +declare global { + namespace FullCalendarVDom { + type VNode = preact.VNode; + } +} + +export type EventInput = any; + +// @Filename: /node_modules/@types/react/index.d.ts +export = React; +export as namespace React; +declare namespace React { + type ReactNode = any; + function useMemo(factory: () => T, deps: undefined): T; +} + +// @Filename: /node_modules/preact/index.d.ts +export as namespace preact; +export interface VNode

{} + +// @Filename: /index.tsx +import FullCalendar from "@fullcalendar/react"; +import { EventInput } from "@fullcalendar/core"; diff --git a/tests/cases/compiler/circularAccessorAnnotations.ts b/tests/cases/compiler/circularAccessorAnnotations.ts new file mode 100644 index 0000000000000..0f6908bff817b --- /dev/null +++ b/tests/cases/compiler/circularAccessorAnnotations.ts @@ -0,0 +1,28 @@ +// @strict: true +// @declaration: true + +declare const c1: { + get foo(): typeof c1.foo; +} + +declare const c2: { + set foo(value: typeof c2.foo); +} + +declare const c3: { + get foo(): string; + set foo(value: typeof c3.foo); +} + +type T1 = { + get foo(): T1["foo"]; +} + +type T2 = { + set foo(value: T2["foo"]); +} + +type T3 = { + get foo(): string; + set foo(value: T3["foo"]); +} diff --git a/tests/cases/compiler/circularGetAccessor.ts b/tests/cases/compiler/circularGetAccessor.ts new file mode 100644 index 0000000000000..b50bc7fc680c9 --- /dev/null +++ b/tests/cases/compiler/circularGetAccessor.ts @@ -0,0 +1,5 @@ +// @noImplicitAny: true, false + +declare class C { + get foo(): typeof this.foo; +} diff --git a/tests/cases/compiler/classFunctionMerging2.ts b/tests/cases/compiler/classFunctionMerging2.ts new file mode 100644 index 0000000000000..507c95bfb761c --- /dev/null +++ b/tests/cases/compiler/classFunctionMerging2.ts @@ -0,0 +1,13 @@ +declare abstract class A { + constructor(p: number); + a: number; +} + +declare function B(p: string): B; +declare class B extends A { + constructor(p: string); + b: number; +} + +let b = new B("Hey") +console.log(b.a) \ No newline at end of file diff --git a/tests/cases/compiler/commentsOnJSXExpressionsArePreserved.tsx b/tests/cases/compiler/commentsOnJSXExpressionsArePreserved.tsx index 64e3f2b77f658..6830cf4fdcb54 100644 --- a/tests/cases/compiler/commentsOnJSXExpressionsArePreserved.tsx +++ b/tests/cases/compiler/commentsOnJSXExpressionsArePreserved.tsx @@ -1,5 +1,6 @@ // @module: system,commonjs // @jsx: react,react-jsx,react-jsxdev,preserve +// @moduleDetection: legacy,auto,force // file is intentionally not a module - this tests for a crash in the module/system transforms alongside the `react-jsx` and `react-jsxdev` outputs namespace JSX {} class Component { diff --git a/tests/cases/compiler/conditionalDoesntLeakUninstantiatedTypeParameter.ts b/tests/cases/compiler/conditionalDoesntLeakUninstantiatedTypeParameter.ts new file mode 100644 index 0000000000000..439b53bc71baa --- /dev/null +++ b/tests/cases/compiler/conditionalDoesntLeakUninstantiatedTypeParameter.ts @@ -0,0 +1,7 @@ +interface Synthetic {} +type SyntheticDestination = U extends Synthetic ? V : never; +type TestSynthetic = // Resolved to T, should be `number` or an inference failure (`unknown`) + SyntheticDestination>; + +const y: TestSynthetic = 3; // Type '3' is not assignable to type 'T'. (shouldn't error) +const z: TestSynthetic = '3'; // Type '"3""' is not assignable to type 'T'. (should not mention T) diff --git a/tests/cases/compiler/conditionalTypeBasedContextualTypeReturnTypeWidening.ts b/tests/cases/compiler/conditionalTypeBasedContextualTypeReturnTypeWidening.ts new file mode 100644 index 0000000000000..4eb021d6dbd20 --- /dev/null +++ b/tests/cases/compiler/conditionalTypeBasedContextualTypeReturnTypeWidening.ts @@ -0,0 +1,11 @@ +declare function useState1(initialState: (S extends (() => any) ? never : S) | (() => S)): S; // No args +declare function useState2(initialState: (S extends ((...args: any[]) => any) ? never : S) | (() => S)): S; // Any args + +const func1 = useState1(() => () => 0); +const func2 = useState2(() => () => 0); + +declare function useState3(initialState: (T extends (() => any) ? never : T) | (() => S)): S; // No args +declare function useState4(initialState: (T extends ((...args: any[]) => any) ? never : T) | (() => S)): S; // Any args + +const func3 = useState1(() => () => 0); +const func4 = useState2(() => () => 0); diff --git a/tests/cases/compiler/constEnums.ts b/tests/cases/compiler/constEnums.ts index 0b30fd8983135..00d5b2d6b72c3 100644 --- a/tests/cases/compiler/constEnums.ts +++ b/tests/cases/compiler/constEnums.ts @@ -37,6 +37,15 @@ const enum Enum1 { W5 = Enum1[`V`], } +const enum Comments { + "//", + "/*", + "*/", + "///", + "#", + "", +} module A { export module B { @@ -152,4 +161,17 @@ function bar(e: A.B.C.E): number { case A.B.C.E.V2: return 1; case A.B.C.E.V3: return 1; } -} \ No newline at end of file +} + +function baz(c: Comments) { + switch (c) { + case Comments["//"]: + case Comments["/*"]: + case Comments["*/"]: + case Comments["///"]: + case Comments["#"]: + case Comments[""]: + break; + } +} diff --git a/tests/cases/compiler/contextuallyTypedBooleanLiterals.ts b/tests/cases/compiler/contextuallyTypedBooleanLiterals.ts new file mode 100644 index 0000000000000..8cbe5f64def4b --- /dev/null +++ b/tests/cases/compiler/contextuallyTypedBooleanLiterals.ts @@ -0,0 +1,32 @@ +// @strict: true +// @declaration: true + +// @strict: true +// @declaration: true + +// Repro from #48363 + +type Box = { + get: () => T, + set: (value: T) => void +} + +declare function box(value: T): Box; + +const bn1 = box(0); // Box +const bn2: Box = box(0); // Ok + +const bb1 = box(false); // Box +const bb2: Box = box(false); // Error, box not assignable to Box + +// Repro from #48150 + +interface Observable +{ + (): T; + (value: T): any; +} + +declare function observable(value: T): Observable; + +const x: Observable = observable(false); diff --git a/tests/cases/compiler/contextuallyTypedSymbolNamedProperties.ts b/tests/cases/compiler/contextuallyTypedSymbolNamedProperties.ts new file mode 100644 index 0000000000000..c04f804656586 --- /dev/null +++ b/tests/cases/compiler/contextuallyTypedSymbolNamedProperties.ts @@ -0,0 +1,23 @@ +// @strict: true +// @declaration: true +// @target: esnext + +// Repros from #43628 + +const A = Symbol("A"); +const B = Symbol("B"); + +type Action = + | {type: typeof A, data: string} + | {type: typeof B, data: number} + +declare const ab: Action; + +declare function f(action: T, blah: { [K in T['type']]: (p: K) => void }): any; + +f(ab, { + [A]: ap => { ap.description }, + [B]: bp => { bp.description }, +}) + +const x: { [sym: symbol]: (p: string) => void } = { [A]: s => s.length }; diff --git a/tests/cases/compiler/controlFlowCommaExpressionAssertionMultiple.ts b/tests/cases/compiler/controlFlowCommaExpressionAssertionMultiple.ts new file mode 100644 index 0000000000000..8e4d1459bcfd6 --- /dev/null +++ b/tests/cases/compiler/controlFlowCommaExpressionAssertionMultiple.ts @@ -0,0 +1,14 @@ +function Narrow(value: any): asserts value is T {} + +function func(foo: any, bar: any) { + Narrow(foo), Narrow(bar); + foo; + bar; +} + +function func2(foo: any, bar: any, baz: any) { + Narrow(foo), Narrow(bar), Narrow(baz); + foo; + bar; + baz; +} diff --git a/tests/cases/compiler/correlatedUnions.ts b/tests/cases/compiler/correlatedUnions.ts new file mode 100644 index 0000000000000..e75e56f15ce69 --- /dev/null +++ b/tests/cases/compiler/correlatedUnions.ts @@ -0,0 +1,238 @@ +// @strict: true +// @declaration: true + +// Various repros from #30581 + +type RecordMap = { n: number, s: string, b: boolean }; +type UnionRecord = { [P in K]: { + kind: P, + v: RecordMap[P], + f: (v: RecordMap[P]) => void +}}[K]; + +function processRecord(rec: UnionRecord) { + rec.f(rec.v); +} + +declare const r1: UnionRecord<'n'>; // { kind: 'n', v: number, f: (v: number) => void } +declare const r2: UnionRecord; // { kind: 'n', ... } | { kind: 's', ... } | { kind: 'b', ... } + +processRecord(r1); +processRecord(r2); +processRecord({ kind: 'n', v: 42, f: v => v.toExponential() }); + +// -------- + +type TextFieldData = { value: string } +type SelectFieldData = { options: string[], selectedValue: string } + +type FieldMap = { + text: TextFieldData; + select: SelectFieldData; +} + +type FormField = { type: K, data: FieldMap[K] }; + +type RenderFunc = (props: FieldMap[K]) => void; +type RenderFuncMap = { [K in keyof FieldMap]: RenderFunc }; + +function renderTextField(props: TextFieldData) {} +function renderSelectField(props: SelectFieldData) {} + +const renderFuncs: RenderFuncMap = { + text: renderTextField, + select: renderSelectField, +}; + +function renderField(field: FormField) { + const renderFn = renderFuncs[field.type]; + renderFn(field.data); +} + +// -------- + +type TypeMap = { + foo: string, + bar: number +}; + +type Keys = keyof TypeMap; + +type HandlerMap = { [P in Keys]: (x: TypeMap[P]) => void }; + +const handlers: HandlerMap = { + foo: s => s.length, + bar: n => n.toFixed(2) +}; + +type DataEntry = { [P in K]: { + type: P, + data: TypeMap[P] +}}[K]; + +const data: DataEntry[] = [ + { type: 'foo', data: 'abc' }, + { type: 'foo', data: 'def' }, + { type: 'bar', data: 42 }, +]; + +function process(data: DataEntry[]) { + data.forEach(block => { + if (block.type in handlers) { + handlers[block.type](block.data) + } + }); +} + +process(data); +process([{ type: 'foo', data: 'abc' }]); + +// -------- + +type LetterMap = { A: string, B: number } +type LetterCaller = { [P in K]: { letter: Record, caller: (x: Record) => void } }[K]; + +function call({ letter, caller }: LetterCaller): void { + caller(letter); +} + +type A = { A: string }; +type B = { B: number }; +type ACaller = (a: A) => void; +type BCaller = (b: B) => void; + +declare const xx: { letter: A, caller: ACaller } | { letter: B, caller: BCaller }; + +call(xx); + +// -------- + +type Ev = { [P in K]: { + readonly name: P; + readonly once?: boolean; + readonly callback: (ev: DocumentEventMap[P]) => void; +}}[K]; + +function processEvents(events: Ev[]) { + for (const event of events) { + document.addEventListener(event.name, (ev) => event.callback(ev), { once: event.once }); + } +} + +function createEventListener({ name, once = false, callback }: Ev): Ev { + return { name, once, callback }; +} + +const clickEvent = createEventListener({ + name: "click", + callback: ev => console.log(ev), +}); + +const scrollEvent = createEventListener({ + name: "scroll", + callback: ev => console.log(ev), +}); + +processEvents([clickEvent, scrollEvent]); + +processEvents([ + { name: "click", callback: ev => console.log(ev) }, + { name: "scroll", callback: ev => console.log(ev) }, +]); + +// -------- + +function ff1() { + type ArgMap = { + sum: [a: number, b: number], + concat: [a: string, b: string, c: string] + } + type Keys = keyof ArgMap; + const funs: { [P in Keys]: (...args: ArgMap[P]) => void } = { + sum: (a, b) => a + b, + concat: (a, b, c) => a + b + c + } + function apply(funKey: K, ...args: ArgMap[K]) { + const fn = funs[funKey]; + fn(...args); + } + const x1 = apply('sum', 1, 2) + const x2 = apply('concat', 'str1', 'str2', 'str3' ) +} + +// Repro from #47368 + +type ArgMap = { a: number, b: string }; +type Func = (x: ArgMap[K]) => void; +type Funcs = { [K in keyof ArgMap]: Func }; + +function f1(funcs: Funcs, key: K, arg: ArgMap[K]) { + funcs[key](arg); +} + +function f2(funcs: Funcs, key: K, arg: ArgMap[K]) { + const func = funcs[key]; // Type Funcs[K] + func(arg); +} + +function f3(funcs: Funcs, key: K, arg: ArgMap[K]) { + const func: Func = funcs[key]; // Error, Funcs[K] not assignable to Func + func(arg); +} + +function f4(x: Funcs[keyof ArgMap], y: Funcs[K]) { + x = y; +} + +// Repro from #47890 + +interface MyObj { + someKey: { + name: string; + } + someOtherKey: { + name: number; + } +} + +const ref: MyObj = { + someKey: { name: "" }, + someOtherKey: { name: 42 } +}; + +function func(k: K): MyObj[K]['name'] | undefined { + const myObj: Partial[K] = ref[k]; + if (myObj) { + return myObj.name; + } + const myObj2: Partial[keyof MyObj] = ref[k]; + if (myObj2) { + return myObj2.name; + } + return undefined; +} + +// Repro from #48157 + +interface Foo { + bar?: string +} + +function foo(prop: T, f: Required) { + bar(f[prop]); +} + +declare function bar(t: string): void; + +// Repro from #48246 + +declare function makeCompleteLookupMapping, Attr extends keyof T[number]>( + ops: T, attr: Attr): { [Item in T[number]as Item[Attr]]: Item }; + +const ALL_BARS = [{ name: 'a'}, {name: 'b'}] as const; + +const BAR_LOOKUP = makeCompleteLookupMapping(ALL_BARS, 'name'); + +type BarLookup = typeof BAR_LOOKUP; + +type Baz = { [K in keyof BarLookup]: BarLookup[K]['name'] }; diff --git a/tests/cases/compiler/declarationEmitClassMemberWithComputedPropertyName.ts b/tests/cases/compiler/declarationEmitClassMemberWithComputedPropertyName.ts new file mode 100644 index 0000000000000..6f7ff801879e5 --- /dev/null +++ b/tests/cases/compiler/declarationEmitClassMemberWithComputedPropertyName.ts @@ -0,0 +1,55 @@ +// @target: esnext +// @declaration: true +// @emitDeclarationOnly: true + +const k1 = Symbol(); +const k2 = 'foo' as const; + +const k3 = Symbol(); +const k4 = 'prop' as const; + +class Foo { + static [k1](): number { + return 1; + } + [k1](): string { + return ""; + } + + static [k2]() { + return 1; + } + [k2]() { + return ""; + } + + static m1() {} + m1() {} + + static [k3] = 1; + [k3] = 1; + + static [k4] = 1; + [k4] = 2; + + static p1 = 3; + p1 = 4; +} + +export const t1 = Foo[k1]; +export const t2 = new Foo()[k1]; + +export const t3 = Foo[k2]; +export const t4 = new Foo()[k2]; + +export const t5 = Foo.m1; +export const t6 = new Foo().m1; + +export const t7 = Foo[k3]; +export const t8 = new Foo()[k3]; + +export const t9 = Foo[k4]; +export const t10 = new Foo()[k4]; + +export const t11 = Foo.p1; +export const t12 = new Foo().p1; diff --git a/tests/cases/compiler/deepComparisons.ts b/tests/cases/compiler/deepComparisons.ts index 1323673945a58..a14fafc8ffeb3 100644 --- a/tests/cases/compiler/deepComparisons.ts +++ b/tests/cases/compiler/deepComparisons.ts @@ -16,4 +16,22 @@ type Foo2 = { x: Foo1 }; function f3() { let x: Foo1 = 0 as any as Bar; // No error! -} \ No newline at end of file +} + +// Repro from #46500 + +type F = {} & ( + T extends [any, ...any[]] + ? { [K in keyof T]?: F } + : T extends any[] + ? F[] + : T extends { [K: string]: any } + ? { [K in keyof T]?: F } + : { x: string } +); + +declare function f(): F; + +function g() { + return f() as F; +} diff --git a/tests/cases/compiler/defaultNamedExportWithType1.ts b/tests/cases/compiler/defaultNamedExportWithType1.ts new file mode 100644 index 0000000000000..eb3152587b22b --- /dev/null +++ b/tests/cases/compiler/defaultNamedExportWithType1.ts @@ -0,0 +1,5 @@ +// @target: esnext + +type Foo = number; +export const Foo = 1; +export default Foo; diff --git a/tests/cases/compiler/defaultNamedExportWithType2.ts b/tests/cases/compiler/defaultNamedExportWithType2.ts new file mode 100644 index 0000000000000..2ed15f88434cd --- /dev/null +++ b/tests/cases/compiler/defaultNamedExportWithType2.ts @@ -0,0 +1,5 @@ +// @target: esnext + +type Foo = number; +const Foo = 1; +export default Foo; diff --git a/tests/cases/compiler/defaultNamedExportWithType3.ts b/tests/cases/compiler/defaultNamedExportWithType3.ts new file mode 100644 index 0000000000000..1a6197d7ba7a2 --- /dev/null +++ b/tests/cases/compiler/defaultNamedExportWithType3.ts @@ -0,0 +1,5 @@ +// @target: esnext + +interface Foo {} +export const Foo = {}; +export default Foo; diff --git a/tests/cases/compiler/defaultNamedExportWithType4.ts b/tests/cases/compiler/defaultNamedExportWithType4.ts new file mode 100644 index 0000000000000..1bcb880888f7e --- /dev/null +++ b/tests/cases/compiler/defaultNamedExportWithType4.ts @@ -0,0 +1,5 @@ +// @target: esnext + +interface Foo {} +const Foo = {}; +export default Foo; diff --git a/tests/cases/compiler/destructuringUnspreadableIntoRest.ts b/tests/cases/compiler/destructuringUnspreadableIntoRest.ts new file mode 100644 index 0000000000000..11e0cc73dea4b --- /dev/null +++ b/tests/cases/compiler/destructuringUnspreadableIntoRest.ts @@ -0,0 +1,88 @@ +//@target: ES6 +class A { + constructor( + public publicProp: string, + private privateProp: string, + protected protectedProp: string, + ) {} + + get getter(): number { + return 1; + } + + set setter(_v: number) {} + + method() { + const { ...rest1 } = this; + const { ...rest2 } = this as A; + const { publicProp: _1, ...rest3 } = this; + const { publicProp: _2, ...rest4 } = this as A; + + rest1.publicProp; + rest2.publicProp; + rest3.publicProp; + rest4.publicProp; + + rest1.privateProp; + rest2.privateProp; + rest3.privateProp; + rest4.privateProp; + + rest1.protectedProp; + rest2.protectedProp; + rest3.protectedProp; + rest4.protectedProp; + + rest1.getter; + rest2.getter; + rest3.getter; + rest4.getter; + + rest1.setter; + rest2.setter; + rest3.setter; + rest4.setter; + + rest1.method; + rest2.method; + rest3.method; + rest4.method; + } +} + +function destructure(x: T) { + const { ...rest1 } = x; + const { ...rest2 } = x as A; + const { publicProp: _1, ...rest3 } = x; + const { publicProp: _2, ...rest4 } = x as A; + + rest1.publicProp; + rest2.publicProp; + rest3.publicProp; + rest4.publicProp; + + rest1.privateProp; + rest2.privateProp; + rest3.privateProp; + rest4.privateProp; + + rest1.protectedProp; + rest2.protectedProp; + rest3.protectedProp; + rest4.protectedProp; + + rest1.getter; + rest2.getter; + rest3.getter; + rest4.getter; + + rest1.setter; + rest2.setter; + rest3.setter; + rest4.setter; + + rest1.method; + rest2.method; + rest3.method; + rest4.method; +} diff --git a/tests/cases/compiler/divergentAccessorsTypes3.ts b/tests/cases/compiler/divergentAccessorsTypes3.ts new file mode 100644 index 0000000000000..557c73153ce90 --- /dev/null +++ b/tests/cases/compiler/divergentAccessorsTypes3.ts @@ -0,0 +1,44 @@ +// @target: es5 + +class One { + get prop1(): string { return ""; } + set prop1(s: string | number) { } + + get prop2(): string { return ""; } + set prop2(s: string | number) { } + + prop3: number; + + get prop4(): string { return ""; } + set prop4(s: string | number) { } +} + +class Two { + get prop1(): string { return ""; } + set prop1(s: string | number) { } + + get prop2(): string { return ""; } + set prop2(s: string) { } + + get prop3(): string { return ""; } + set prop3(s: string | boolean) { } + + get prop4(): string { return ""; } + set prop4(s: string | boolean) { } +} + +declare const u1: One|Two; + +u1.prop1 = 42; +u1.prop1 = "hello"; + +u1.prop2 = 42; +u1.prop2 = "hello"; + +u1.prop3 = 42; +u1.prop3 = "hello"; +u1.prop3 = true; + +u1.prop4 = 42; +u1.prop4 = "hello"; +u1.prop4 = true; diff --git a/tests/cases/compiler/divergentAccessorsTypes4.ts b/tests/cases/compiler/divergentAccessorsTypes4.ts new file mode 100644 index 0000000000000..802a1b4d2c63c --- /dev/null +++ b/tests/cases/compiler/divergentAccessorsTypes4.ts @@ -0,0 +1,31 @@ +// @target: es5 + +class One { + get prop1(): string { return ""; } + set prop1(s: string | number) { } + + prop2: number; +} + +class Two { + get prop1(): "hello" { return "hello"; } + set prop1(s: "hello" | number) { } + + get prop2(): string { return ""; } + set prop2(s: string | 42) { } + +} + +declare const i: One & Two; + +// "hello" +i.prop1; +// number | "hello" +i.prop1 = 42; +i.prop1 = "hello"; + +// never +i.prop2; +// 42 +i.prop2 = 42; +i.prop2 = "hello"; // error diff --git a/tests/cases/compiler/divergentAccessorsTypes5.ts b/tests/cases/compiler/divergentAccessorsTypes5.ts new file mode 100644 index 0000000000000..54d1099004a17 --- /dev/null +++ b/tests/cases/compiler/divergentAccessorsTypes5.ts @@ -0,0 +1,38 @@ +// @target: es5 + +// Not really different from divergentAccessorsTypes4.ts, +// but goes through the deferred type code + +class One { + get prop1(): string { return ""; } + set prop1(s: string | number) { } + + prop2: number; +} + +class Two { + get prop1(): "hello" { return "hello"; } + set prop1(s: "hello" | number) { } + + get prop2(): string { return ""; } + set prop2(s: string | 42) { } + +} + +class Three { + get prop1(): "hello" { return "hello"; } + set prop1(s: "hello" | boolean) { } + + get prop2(): string { return ""; } + set prop2(s: string | number | boolean) { } +} + +declare const i: One & Two & Three; + +// "hello" +i.prop1 = 42; // error +i.prop1 = "hello"; + +// 42 +i.prop2 = 42; +i.prop2 = "hello"; // error diff --git a/tests/cases/compiler/emitDecoratorMetadata_isolatedModules.ts b/tests/cases/compiler/emitDecoratorMetadata_isolatedModules.ts new file mode 100644 index 0000000000000..e90af623cc12d --- /dev/null +++ b/tests/cases/compiler/emitDecoratorMetadata_isolatedModules.ts @@ -0,0 +1,41 @@ +// @experimentalDecorators: true +// @emitDecoratorMetadata: true +// @isolatedModules: true +// @module: commonjs,esnext + +// @Filename: type1.ts +interface T1 {} +export type { T1 } + +// @Filename: type2.ts +export interface T2 {} + +// @Filename: class3.ts +export class C3 {} + +// @Filename: index.ts +import { T1 } from "./type1"; +import * as t1 from "./type1"; +import type { T2 } from "./type2"; +import { C3 } from "./class3"; +declare var EventListener: any; + +class HelloWorld { + @EventListener('1') + handleEvent1(event: T1) {} // Error + + @EventListener('2') + handleEvent2(event: T2) {} // Ok + + @EventListener('1') + p1!: T1; // Error + + @EventListener('1') + p1_ns!: t1.T1; // Ok + + @EventListener('2') + p2!: T2; // Ok + + @EventListener('3') + handleEvent3(event: C3): T1 { return undefined! } // Ok, Error +} diff --git a/tests/cases/compiler/emitOneLineVariableDeclarationRemoveCommentsFalse.ts b/tests/cases/compiler/emitOneLineVariableDeclarationRemoveCommentsFalse.ts new file mode 100644 index 0000000000000..fcf2c66138945 --- /dev/null +++ b/tests/cases/compiler/emitOneLineVariableDeclarationRemoveCommentsFalse.ts @@ -0,0 +1,9 @@ +// @removeComments: false + +let a = /*[[${something}]]*/ {}; +let b: any = /*[[${something}]]*/ {}; +let c: { hoge: boolean } = /*[[${something}]]*/ { hoge: true }; +let d: any /*[[${something}]]*/ = {}; +let e/*[[${something}]]*/: any = {}; +let f = /* comment1 */ d(e); +let g: any = /* comment2 */ d(e); diff --git a/tests/cases/compiler/enumBasics2.ts b/tests/cases/compiler/enumBasics2.ts new file mode 100644 index 0000000000000..5a957b9170df0 --- /dev/null +++ b/tests/cases/compiler/enumBasics2.ts @@ -0,0 +1,14 @@ +enum Foo { + a = 2, + b = 3, + x = a.b, // should error + y = b.a, // should error + z = y.x * a.x, // should error +} + +enum Bar { + a = (1).valueOf(), // ok + b = Foo.a, // ok + c = Foo.a.valueOf(), // ok + d = Foo.a.a, // should error +} diff --git a/tests/cases/compiler/enumBasics3.ts b/tests/cases/compiler/enumBasics3.ts new file mode 100644 index 0000000000000..d0cb27c790ecd --- /dev/null +++ b/tests/cases/compiler/enumBasics3.ts @@ -0,0 +1,17 @@ +module M { + export namespace N { + export enum E1 { + a = 1, + b = a.a, // should error + } + } +} + +module M { + export namespace N { + export enum E2 { + b = M.N.E1.a, + c = M.N.E1.a.a, // should error + } + } +} diff --git a/tests/cases/compiler/enumWithExport.ts b/tests/cases/compiler/enumWithExport.ts new file mode 100644 index 0000000000000..0852a5b1a0079 --- /dev/null +++ b/tests/cases/compiler/enumWithExport.ts @@ -0,0 +1,6 @@ +namespace x { + export let y = 123 +} +enum x { + z = y +} \ No newline at end of file diff --git a/tests/cases/compiler/errorCause.ts b/tests/cases/compiler/errorCause.ts new file mode 100644 index 0000000000000..9d06fa389bbed --- /dev/null +++ b/tests/cases/compiler/errorCause.ts @@ -0,0 +1,12 @@ +// @target: es2021, es2022, esnext + +let err = new Error("foo", { cause: new Error("bar") }); +err.cause; + +new EvalError("foo", { cause: new Error("bar") }); +new RangeError("foo", { cause: new Error("bar") }); +new ReferenceError("foo", { cause: new Error("bar") }); +new SyntaxError("foo", { cause: new Error("bar") }); +new TypeError("foo", { cause: new Error("bar") }); +new URIError("foo", { cause: new Error("bar") }); +new AggregateError([], "foo", { cause: new Error("bar") }); diff --git a/tests/cases/compiler/exportDefaultClassAndValue.ts b/tests/cases/compiler/exportDefaultClassAndValue.ts new file mode 100644 index 0000000000000..3a18018620950 --- /dev/null +++ b/tests/cases/compiler/exportDefaultClassAndValue.ts @@ -0,0 +1,3 @@ +const foo = 1 +export default foo +export default class Foo {} diff --git a/tests/cases/compiler/exportDefaultInterfaceAndFunctionOverloads.ts b/tests/cases/compiler/exportDefaultInterfaceAndFunctionOverloads.ts new file mode 100644 index 0000000000000..7296b02464420 --- /dev/null +++ b/tests/cases/compiler/exportDefaultInterfaceAndFunctionOverloads.ts @@ -0,0 +1,6 @@ +export default function foo(value: number): number +export default function foo(value: string): string +export default function foo(value: string | number): string | number { + return 1 +} +export default interface Foo {} diff --git a/tests/cases/compiler/exportDefaultInterfaceClassAndFunctionOverloads.ts b/tests/cases/compiler/exportDefaultInterfaceClassAndFunctionOverloads.ts new file mode 100644 index 0000000000000..18bca0a62fcb9 --- /dev/null +++ b/tests/cases/compiler/exportDefaultInterfaceClassAndFunctionOverloads.ts @@ -0,0 +1,8 @@ +export default function foo(value: number): number +export default function foo(value: string): string +export default function foo(value: string | number): string | number { + return 1 +} +declare class Foo {} +export default Foo +export default interface Bar {} diff --git a/tests/cases/compiler/exportDefaultInterfaceClassAndValue.ts b/tests/cases/compiler/exportDefaultInterfaceClassAndValue.ts new file mode 100644 index 0000000000000..ae5d84ba1d8e5 --- /dev/null +++ b/tests/cases/compiler/exportDefaultInterfaceClassAndValue.ts @@ -0,0 +1,4 @@ +const foo = 1 +export default foo +export default class Foo {} +export default interface Foo {} diff --git a/tests/cases/compiler/exportDefaultTypeAndClass.ts b/tests/cases/compiler/exportDefaultTypeAndClass.ts new file mode 100644 index 0000000000000..cf26cb35cbe35 --- /dev/null +++ b/tests/cases/compiler/exportDefaultTypeAndClass.ts @@ -0,0 +1,3 @@ +export default class Foo {} +type Bar = {} +export default Bar diff --git a/tests/cases/compiler/exportDefaultTypeAndFunctionOverloads.ts b/tests/cases/compiler/exportDefaultTypeAndFunctionOverloads.ts new file mode 100644 index 0000000000000..da1422fbb56a7 --- /dev/null +++ b/tests/cases/compiler/exportDefaultTypeAndFunctionOverloads.ts @@ -0,0 +1,7 @@ +export default function foo(value: number): number +export default function foo(value: string): string +export default function foo(value: string | number): string | number { + return 1 +} +type Foo = {} +export default Foo diff --git a/tests/cases/compiler/exportDefaultTypeClassAndValue.ts b/tests/cases/compiler/exportDefaultTypeClassAndValue.ts new file mode 100644 index 0000000000000..39ca741d6d17c --- /dev/null +++ b/tests/cases/compiler/exportDefaultTypeClassAndValue.ts @@ -0,0 +1,5 @@ +const foo = 1 +export default foo +export default class Foo {} +type Bar = {} +export default Bar diff --git a/tests/cases/compiler/exportInterfaceClassAndValue.ts b/tests/cases/compiler/exportInterfaceClassAndValue.ts new file mode 100644 index 0000000000000..fc29df8faad76 --- /dev/null +++ b/tests/cases/compiler/exportInterfaceClassAndValue.ts @@ -0,0 +1,3 @@ +export const foo = 1 +export declare class foo {} +export interface foo {} diff --git a/tests/cases/compiler/exportInterfaceClassAndValueWithDuplicatesInImportList.ts b/tests/cases/compiler/exportInterfaceClassAndValueWithDuplicatesInImportList.ts new file mode 100644 index 0000000000000..8edd59e19a1f4 --- /dev/null +++ b/tests/cases/compiler/exportInterfaceClassAndValueWithDuplicatesInImportList.ts @@ -0,0 +1,5 @@ +const foo = 1 +class Foo {} +interface Foo {} + +export {foo, Foo, Foo} diff --git a/tests/cases/compiler/exportTwoInterfacesWithSameName.ts b/tests/cases/compiler/exportTwoInterfacesWithSameName.ts new file mode 100644 index 0000000000000..4f502f99ef1ca --- /dev/null +++ b/tests/cases/compiler/exportTwoInterfacesWithSameName.ts @@ -0,0 +1,2 @@ +export interface I {} +export interface I {} diff --git a/tests/cases/compiler/functionToFunctionWithPropError.ts b/tests/cases/compiler/functionToFunctionWithPropError.ts new file mode 100644 index 0000000000000..149a17a731447 --- /dev/null +++ b/tests/cases/compiler/functionToFunctionWithPropError.ts @@ -0,0 +1,5 @@ +declare let x: { (): string; prop: number }; +declare let y: { (): string; } + +x = y; +y = x; \ No newline at end of file diff --git a/tests/cases/compiler/genericCallsWithoutParens.ts b/tests/cases/compiler/genericCallsWithoutParens.ts deleted file mode 100644 index 72efafd62d754..0000000000000 --- a/tests/cases/compiler/genericCallsWithoutParens.ts +++ /dev/null @@ -1,8 +0,0 @@ -function f() { } -var r = f; // parse error - -class C { - foo: T; -} -var c = new C; // parse error - diff --git a/tests/cases/compiler/genericConstructExpressionWithoutArgs.ts b/tests/cases/compiler/genericConstructExpressionWithoutArgs.ts deleted file mode 100644 index 3c0c2fc4c72f3..0000000000000 --- a/tests/cases/compiler/genericConstructExpressionWithoutArgs.ts +++ /dev/null @@ -1,9 +0,0 @@ -class B { } -var b = new B; // no error - -class C { - x: T; -} - -var c = new C // C -var c2 = new C // error, type params are actually part of the arg list so you need both diff --git a/tests/cases/compiler/genericObjectCreationWithoutTypeArgs.ts b/tests/cases/compiler/genericObjectCreationWithoutTypeArgs.ts index 319127c6f585c..979551dd34e1a 100644 --- a/tests/cases/compiler/genericObjectCreationWithoutTypeArgs.ts +++ b/tests/cases/compiler/genericObjectCreationWithoutTypeArgs.ts @@ -3,6 +3,6 @@ class SS{ } var x1 = new SS(); // OK -var x2 = new SS < number>; // Correctly give error +var x2 = new SS; // OK var x3 = new SS(); // OK -var x4 = new SS; // Should be allowed, but currently give error ('supplied parameters do not match any signature of the call target') +var x4 = new SS; // OK diff --git a/tests/cases/compiler/genericUnboundedTypeParamAssignability.ts b/tests/cases/compiler/genericUnboundedTypeParamAssignability.ts new file mode 100644 index 0000000000000..542e96753ff2d --- /dev/null +++ b/tests/cases/compiler/genericUnboundedTypeParamAssignability.ts @@ -0,0 +1,20 @@ +// @strict: true + +function f1(o: T) { + o.toString(); // error +} + +function f2(o: T) { + o.toString(); // no error +} + +function f3>(o: T) { + o.toString(); // no error +} + +function user(t: T) { + f1(t); + f2(t); // error in strict, unbounded T doesn't satisfy the constraint + f3(t); // error in strict, unbounded T doesn't satisfy the constraint + t.toString(); // error, for the same reason as f1() +} diff --git a/tests/cases/compiler/identityRelationNeverTypes.ts b/tests/cases/compiler/identityRelationNeverTypes.ts new file mode 100644 index 0000000000000..62d233bcf063f --- /dev/null +++ b/tests/cases/compiler/identityRelationNeverTypes.ts @@ -0,0 +1,20 @@ +// @strict: true +// @declaration: true + +// Repro from #47996 + +type Equals = (() => T extends B ? 1 : 0) extends (() => T extends A ? 1 : 0) ? true : false; + +declare class State { + _context: TContext; + _value: string; + matches(stateValue: TSV): this is State & { value: TSV }; +} + +function f1(state: State<{ foo: number }>) { + if (state.matches('a') && state.matches('a.b')) { + state; // never + type T1 = Equals; // true + type T2 = Equals; // true + } +} diff --git a/tests/cases/compiler/importAssertionNonstring.ts b/tests/cases/compiler/importAssertionNonstring.ts new file mode 100644 index 0000000000000..5063e1b4922af --- /dev/null +++ b/tests/cases/compiler/importAssertionNonstring.ts @@ -0,0 +1,13 @@ +// @module: nodenext +// @filename: mod.mts +import * as thing1 from "./mod.mjs" assert {field: 0}; + +import * as thing2 from "./mod.mjs" assert {field: `a`}; + +import * as thing3 from "./mod.mjs" assert {field: /a/g}; + +import * as thing4 from "./mod.mjs" assert {field: ["a"]}; + +import * as thing5 from "./mod.mjs" assert {field: { a: 0 }}; + +import * as thing6 from "./mod.mjs" assert {type: "json", field: 0..toString()} \ No newline at end of file diff --git a/tests/cases/compiler/importDeclarationInModuleDeclaration2.ts b/tests/cases/compiler/importDeclarationInModuleDeclaration2.ts new file mode 100644 index 0000000000000..2df0aadb8ae67 --- /dev/null +++ b/tests/cases/compiler/importDeclarationInModuleDeclaration2.ts @@ -0,0 +1,8 @@ +// @allowJs: true +// @noEmit: true +// @checkJs: true + +// @filename: check.js +function container() { + import "fs"; +} \ No newline at end of file diff --git a/tests/cases/compiler/importEqualsError45874.ts b/tests/cases/compiler/importEqualsError45874.ts new file mode 100644 index 0000000000000..5bb214ee22acc --- /dev/null +++ b/tests/cases/compiler/importEqualsError45874.ts @@ -0,0 +1,9 @@ +// @Filename: /globals.ts +namespace globals { + export type Foo = {}; + export const Bar = {}; +} +import Foo = globals.toString.Blah; + +// @Filename: /index.ts +const Foo = {}; diff --git a/tests/cases/compiler/importNonExportedMember12.ts b/tests/cases/compiler/importNonExportedMember12.ts new file mode 100644 index 0000000000000..4c4b515fb45a3 --- /dev/null +++ b/tests/cases/compiler/importNonExportedMember12.ts @@ -0,0 +1,18 @@ +// @esModuleInterop: true +// @moduleResolution: node +// @module: es2015 +// @checkJs: true +// @allowJs: true +// @noEmit: true + +// @Filename: /node_modules/foo/package.json +{ "name": "foo", "version": "1.2.3", "main": "src/index.js" } + +// @Filename: /node_modules/foo/src/index.js +module.exports = 1; + +// @filename: /a.js +export const A = require("foo"); + +// @filename: /b.ts +import { A } from "./a"; diff --git a/tests/cases/compiler/indexAt.ts b/tests/cases/compiler/indexAt.ts new file mode 100644 index 0000000000000..d41117903a5b1 --- /dev/null +++ b/tests/cases/compiler/indexAt.ts @@ -0,0 +1,15 @@ +// @target: es2021, es2022, esnext + +[0].at(0); +"foo".at(0); +new Int8Array().at(0); +new Uint8Array().at(0); +new Uint8ClampedArray().at(0); +new Int16Array().at(0); +new Uint16Array().at(0); +new Int32Array().at(0); +new Uint32Array().at(0); +new Float32Array().at(0); +new Float64Array().at(0); +new BigInt64Array().at(0); +new BigUint64Array().at(0); diff --git a/tests/cases/compiler/inferringReturnTypeFromConstructSignatureGeneric.ts b/tests/cases/compiler/inferringReturnTypeFromConstructSignatureGeneric.ts new file mode 100644 index 0000000000000..dc8271f849bd7 --- /dev/null +++ b/tests/cases/compiler/inferringReturnTypeFromConstructSignatureGeneric.ts @@ -0,0 +1,29 @@ +class GenericObject { + give(value: T) { + return value; + } +} +class GenericNumber { + give(value: T) { + return value; + } +} +class GenericNumberOrString { + give(value: T) { + return value; + } +} + +function g(type: new () => T): T { + return new type(); +} + +const g1 = g(GenericObject); +g1.give({}); + +const g2 = g(GenericNumber); +g2.give(1); + +const g3 = g(GenericNumberOrString); +g3.give(1); +g3.give('1'); \ No newline at end of file diff --git a/tests/cases/compiler/isolatedModulesExportImportUninstantiatedNamespace.ts b/tests/cases/compiler/isolatedModulesExportImportUninstantiatedNamespace.ts new file mode 100644 index 0000000000000..68582dc2ebd19 --- /dev/null +++ b/tests/cases/compiler/isolatedModulesExportImportUninstantiatedNamespace.ts @@ -0,0 +1,23 @@ +// @module: esnext +// @isolatedModules: true +// @noTypesAndSymbols: true + +// @Filename: jsx.ts +export namespace JSXInternal { + export type HTMLAttributes = string + export type ComponentChildren = string +} + +// @Filename: factory.ts +import { JSXInternal } from "./jsx" + +export import JSX = JSXInternal; + +export function createElement( + tagName: string, + attributes: JSX.HTMLAttributes, + ...children: JSX.ComponentChildren[] +): any { + //... +} + diff --git a/tests/cases/compiler/javascriptThisAssignmentInStaticBlock.ts b/tests/cases/compiler/javascriptThisAssignmentInStaticBlock.ts new file mode 100644 index 0000000000000..f86508dc9860c --- /dev/null +++ b/tests/cases/compiler/javascriptThisAssignmentInStaticBlock.ts @@ -0,0 +1,24 @@ +// @allowJs: true +// @checkJs: true +// @declaration: true +// @outDir: /out/ +// @filename: /src/a.js + +class Thing { + static { + this.doSomething = () => {}; + } +} + +Thing.doSomething(); + +// GH#46468 +class ElementsArray extends Array { + static { + const superisArray = super.isArray; + const customIsArray = (arg)=> superisArray(arg); + this.isArray = customIsArray; + } +} + +ElementsArray.isArray(new ElementsArray()); \ No newline at end of file diff --git a/tests/cases/compiler/jsDeclarationsInheritedTypes.ts b/tests/cases/compiler/jsDeclarationsInheritedTypes.ts new file mode 100644 index 0000000000000..303d3ba9bacd4 --- /dev/null +++ b/tests/cases/compiler/jsDeclarationsInheritedTypes.ts @@ -0,0 +1,37 @@ +// @checkJs: true +// @allowJs: true +// @declaration: true +// @emitDeclarationOnly: true +// @outDir: ./dist +// @filename: a.js + +/** + * @typedef A + * @property {string} a + */ + +/** + * @typedef B + * @property {number} b + */ + + class C1 { + /** + * @type {A} + */ + value; +} + +class C2 extends C1 { + /** + * @type {A} + */ + value; +} + +class C3 extends C1 { + /** + * @type {A & B} + */ + value; +} diff --git a/tests/cases/compiler/jsExportAssignmentNonMutableLocation.ts b/tests/cases/compiler/jsExportAssignmentNonMutableLocation.ts new file mode 100644 index 0000000000000..a0eef7f86ecad --- /dev/null +++ b/tests/cases/compiler/jsExportAssignmentNonMutableLocation.ts @@ -0,0 +1,15 @@ +// @declaration: true +// @emitDeclarationOnly: true +// @allowJs: true +// @checkJs: true +// @module: commonjs +// @target: es6 +// @filename: file.js +const customSymbol = Symbol("custom"); + +// This is a common pattern in Node’s built-in modules: +module.exports = { + customSymbol, +}; + +exports.customSymbol2 = Symbol("custom"); \ No newline at end of file diff --git a/tests/cases/compiler/manyCompilerErrorsInTheTwoFiles.ts b/tests/cases/compiler/manyCompilerErrorsInTheTwoFiles.ts new file mode 100644 index 0000000000000..cddb47e6b595e --- /dev/null +++ b/tests/cases/compiler/manyCompilerErrorsInTheTwoFiles.ts @@ -0,0 +1,12 @@ +// @pretty: true +// @filename: a.ts +const a =!@#!@$ +const b = !@#!@#!@#! +OK! +HERE's A shouty thing +GOTTA GO FAST + +// @filename: b.ts +fhqwhgads +to +limit \ No newline at end of file diff --git a/tests/cases/compiler/mapConstructor.ts b/tests/cases/compiler/mapConstructor.ts new file mode 100644 index 0000000000000..7d1124579e665 --- /dev/null +++ b/tests/cases/compiler/mapConstructor.ts @@ -0,0 +1,10 @@ +// @strict: true +// @target: es2015 + +new Map(); + +const potentiallyUndefinedIterable = [['1', 1], ['2', 2]] as Iterable<[string, number]> | undefined; +new Map(potentiallyUndefinedIterable); + +const potentiallyNullIterable = [['1', 1], ['2', 2]] as Iterable<[string, number]> | null; +new Map(potentiallyNullIterable); \ No newline at end of file diff --git a/tests/cases/compiler/mappedTypeCircularReferenceInAccessor.ts b/tests/cases/compiler/mappedTypeCircularReferenceInAccessor.ts new file mode 100644 index 0000000000000..82138b5ff0aac --- /dev/null +++ b/tests/cases/compiler/mappedTypeCircularReferenceInAccessor.ts @@ -0,0 +1,12 @@ +interface User { + firstName: string, + level: number, + get bestFriend(): User + set bestFriend(user: SerializablePartial) +} + +type FilteredKeys = { [K in keyof T]: T[K] extends number ? K : T[K] extends string ? K : T[K] extends boolean ? K : never }[keyof T]; + +type SerializablePartial = { + [K in FilteredKeys]: T[K] +}; diff --git a/tests/cases/compiler/mappedTypeGenericInstantiationPreservesHomomorphism.ts b/tests/cases/compiler/mappedTypeGenericInstantiationPreservesHomomorphism.ts new file mode 100644 index 0000000000000..c8cf359509fad --- /dev/null +++ b/tests/cases/compiler/mappedTypeGenericInstantiationPreservesHomomorphism.ts @@ -0,0 +1,9 @@ +// @declaration: true +// @filename: internal.ts +export declare function usePrivateType(...args: T): PrivateMapped; + +type PrivateMapped = {[K in keyof Obj]: Obj[K]}; + +// @filename: api.ts +import {usePrivateType} from './internal'; +export const mappedUnionWithPrivateType = (...args: T) => usePrivateType(...args); diff --git a/tests/cases/compiler/mappedTypeNotMistakenlyHomomorphic.ts b/tests/cases/compiler/mappedTypeNotMistakenlyHomomorphic.ts new file mode 100644 index 0000000000000..23ae21df7ac18 --- /dev/null +++ b/tests/cases/compiler/mappedTypeNotMistakenlyHomomorphic.ts @@ -0,0 +1,34 @@ +enum ABC { A, B } + +type Gen = { v: T; } & ( + { + v: ABC.A, + a: string, + } | { + v: ABC.B, + b: string, + } +) + +// Quick info: ??? +// +// type Gen2 = { +// v: string; +// } +// +type Gen2 = { + [Property in keyof Gen]: string; +}; + +// 'a' and 'b' properties required !?!? +const gen2TypeA: Gen2 = { v: "I am A", a: "" }; +const gen2TypeB: Gen2 = { v: "I am B", b: "" }; + +// 'v' ??? +type K = keyof Gen2; + +// :( +declare let a: Gen2; +declare let b: Gen2; +a = b; +b = a; diff --git a/tests/cases/compiler/mergedClassNamespaceRecordCast.ts b/tests/cases/compiler/mergedClassNamespaceRecordCast.ts new file mode 100644 index 0000000000000..830cbc4e4858b --- /dev/null +++ b/tests/cases/compiler/mergedClassNamespaceRecordCast.ts @@ -0,0 +1,17 @@ +class C1 { foo() {} } + +new C1() as Record; + + +class C2 { foo() {} } +namespace C2 { export const unrelated = 3; } + +new C2() as Record; + +C2.unrelated +new C2().unrelated + + +namespace C3 { export const unrelated = 3; } + +C3 as Record; diff --git a/tests/cases/compiler/missingCloseBracketInArray.ts b/tests/cases/compiler/missingCloseBracketInArray.ts new file mode 100644 index 0000000000000..cb99f0d227757 --- /dev/null +++ b/tests/cases/compiler/missingCloseBracketInArray.ts @@ -0,0 +1 @@ +var alphas:string[] = alphas = ["1","2","3","4" \ No newline at end of file diff --git a/tests/cases/compiler/missingCloseParenStatements.ts b/tests/cases/compiler/missingCloseParenStatements.ts new file mode 100644 index 0000000000000..7ff34bdae6a16 --- /dev/null +++ b/tests/cases/compiler/missingCloseParenStatements.ts @@ -0,0 +1,13 @@ +var a1, a2, a3 = 0; +if ( a1 && (a2 + a3 > 0) { + while( (a2 > 0) && a1 + { + do { + var i = i + 1; + a1 = a1 + i; + with ((a2 + a3 > 0) && a1 { + console.log(x); + } + } while (i < 5 && (a1 > 5); + } +} \ No newline at end of file diff --git a/tests/cases/compiler/moduleResolutionWithSuffixes_empty.ts b/tests/cases/compiler/moduleResolutionWithSuffixes_empty.ts new file mode 100644 index 0000000000000..90425b9cd2dec --- /dev/null +++ b/tests/cases/compiler/moduleResolutionWithSuffixes_empty.ts @@ -0,0 +1,14 @@ +// moduleSuffixes is empty. Normal module resolution should occur. + +// @filename: /tsconfig.json +{ + "compilerOptions": { + "moduleResolution": "node", + "traceResolution": true, + "moduleSuffixes": [] + } +} +// @filename: /index.ts +import { base } from "./foo"; +// @filename: /foo.ts +export function base() {} diff --git a/tests/cases/compiler/moduleResolutionWithSuffixes_notSpecified.ts b/tests/cases/compiler/moduleResolutionWithSuffixes_notSpecified.ts new file mode 100644 index 0000000000000..47728ffa63bf8 --- /dev/null +++ b/tests/cases/compiler/moduleResolutionWithSuffixes_notSpecified.ts @@ -0,0 +1,12 @@ +// moduleSuffixes is not specified. Normal module resolution should occur. +// @filename: /tsconfig.json +{ + "compilerOptions": { + "moduleResolution": "node", + "traceResolution": true, + } +} +// @filename: /index.ts +import { base } from "./foo"; +// @filename: /foo.ts +export function base() {} diff --git a/tests/cases/compiler/moduleResolutionWithSuffixes_one.ts b/tests/cases/compiler/moduleResolutionWithSuffixes_one.ts new file mode 100644 index 0000000000000..3867614936ce0 --- /dev/null +++ b/tests/cases/compiler/moduleResolutionWithSuffixes_one.ts @@ -0,0 +1,17 @@ +// moduleSuffixes has one entry and there's a matching file. + +// @filename: /tsconfig.json +{ + "compilerOptions": { + "moduleResolution": "node", + "traceResolution": true, + "moduleSuffixes": [".ios"] + } +} + +// @filename: /index.ts +import { ios } from "./foo"; +// @filename: /foo.ios.ts +export function ios() {} +// @filename: /foo.ts +export function base() {} diff --git a/tests/cases/compiler/moduleResolutionWithSuffixes_oneBlank.ts b/tests/cases/compiler/moduleResolutionWithSuffixes_oneBlank.ts new file mode 100644 index 0000000000000..1ae8ba6f2f6d0 --- /dev/null +++ b/tests/cases/compiler/moduleResolutionWithSuffixes_oneBlank.ts @@ -0,0 +1,15 @@ +// moduleSuffixes has one blank entry. Normal module resolution should occur. + +// @filename: /tsconfig.json +{ + "compilerOptions": { + "moduleResolution": "node", + "traceResolution": true, + "moduleSuffixes": [""] + } +} + +// @filename: /index.ts +import { base } from "./foo"; +// @filename: /foo.ts +export function base() {} diff --git a/tests/cases/compiler/moduleResolutionWithSuffixes_oneNotFound.ts b/tests/cases/compiler/moduleResolutionWithSuffixes_oneNotFound.ts new file mode 100644 index 0000000000000..8ae5ca5ec78f6 --- /dev/null +++ b/tests/cases/compiler/moduleResolutionWithSuffixes_oneNotFound.ts @@ -0,0 +1,15 @@ +// moduleSuffixes has one entry but there isn't a matching file. Module resolution should fail. + +// @filename: /tsconfig.json +{ + "compilerOptions": { + "moduleResolution": "node", + "traceResolution": true, + "moduleSuffixes": [".ios"] + } +} + +// @filename: /index.ts +import { ios } from "./foo"; +// @filename: /foo.ts +export function base() {} diff --git a/tests/cases/compiler/moduleResolutionWithSuffixes_one_dirModuleWithIndex.ts b/tests/cases/compiler/moduleResolutionWithSuffixes_one_dirModuleWithIndex.ts new file mode 100644 index 0000000000000..a20cb3583f4c2 --- /dev/null +++ b/tests/cases/compiler/moduleResolutionWithSuffixes_one_dirModuleWithIndex.ts @@ -0,0 +1,17 @@ +// moduleSuffixes has one entry and there's a matching dir with an index file. + +// @filename: /tsconfig.json +{ + "compilerOptions": { + "moduleResolution": "node", + "traceResolution": true, + "moduleSuffixes": [".ios"] + } +} + +// @filename: /index.ts +import { ios } from "./foo"; +// @filename: /foo/index.ios.ts +export function ios() {} +// @filename: /foo/index.ts +export function base() {} \ No newline at end of file diff --git a/tests/cases/compiler/moduleResolutionWithSuffixes_one_externalModule.ts b/tests/cases/compiler/moduleResolutionWithSuffixes_one_externalModule.ts new file mode 100644 index 0000000000000..4142e716c736a --- /dev/null +++ b/tests/cases/compiler/moduleResolutionWithSuffixes_one_externalModule.ts @@ -0,0 +1,31 @@ +// moduleSuffixes has one entry and there's a matching package. +// @fullEmitPaths: true +// @filename: /tsconfig.json +{ + "compilerOptions": { + "allowJs": true, + "checkJs": false, + "outDir": "bin", + "moduleResolution": "node", + "traceResolution": true, + "moduleSuffixes": [".ios"] + } +} + +// @filename: /node_modules/some-library/index.ios.js +"use strict"; +exports.__esModule = true; +function ios() {} +exports.ios = ios; +// @filename: /node_modules/some-library/index.ios.d.ts +export declare function ios(): void; +// @filename: /node_modules/some-library/index.js +"use strict"; +exports.__esModule = true; +function base() {} +exports.base = base; +// @filename: /node_modules/some-library/index.d.ts +export declare function base(): void; + +// @filename: /index.ts +import { ios } from "some-library"; diff --git a/tests/cases/compiler/moduleResolutionWithSuffixes_one_externalModulePath.ts b/tests/cases/compiler/moduleResolutionWithSuffixes_one_externalModulePath.ts new file mode 100644 index 0000000000000..ad20b18b815ff --- /dev/null +++ b/tests/cases/compiler/moduleResolutionWithSuffixes_one_externalModulePath.ts @@ -0,0 +1,31 @@ +// moduleSuffixes has one entry and there's a matching package with a specific path. +// @fullEmitPaths: true +// @filename: /tsconfig.json +{ + "compilerOptions": { + "allowJs": true, + "checkJs": false, + "outDir": "bin", + "moduleResolution": "node", + "traceResolution": true, + "moduleSuffixes": [".ios"] + } +} + +// @filename: /node_modules/some-library/foo.ios.js +"use strict"; +exports.__esModule = true; +function iosfoo() {} +exports.iosfoo = iosfoo; +// @filename: /node_modules/some-library/foo.ios.d.ts +export declare function iosfoo(): void; +// @filename: /node_modules/some-library/foo.js +"use strict"; +exports.__esModule = true; +function basefoo() {} +exports.basefoo = basefoo; +// @filename: /node_modules/some-library/foo.d.ts +export declare function basefoo(): void; + +// @filename: /index.ts +import { iosfoo } from "some-library/foo"; diff --git a/tests/cases/compiler/moduleResolutionWithSuffixes_one_externalModule_withPaths.ts b/tests/cases/compiler/moduleResolutionWithSuffixes_one_externalModule_withPaths.ts new file mode 100644 index 0000000000000..2abb86f20eb7c --- /dev/null +++ b/tests/cases/compiler/moduleResolutionWithSuffixes_one_externalModule_withPaths.ts @@ -0,0 +1,38 @@ +// moduleSuffixes has one entry and there's a matching package. use the 'paths' option to map the package. +// @fullEmitPaths: true +// @filename: /tsconfig.json +{ + "compilerOptions": { + "allowJs": true, + "checkJs": false, + "outDir": "bin", + "moduleResolution": "node", + "traceResolution": true, + "moduleSuffixes": [".ios"], + "baseUrl": "/", + "paths": { + "some-library": ["node_modules/some-library/lib"], + "some-library/*": ["node_modules/some-library/lib/*"] + } + } +} + +// @filename: /node_modules/some-library/lib/index.ios.js +"use strict"; +exports.__esModule = true; +function ios() {} +exports.ios = ios; +// @filename: /node_modules/some-library/lib/index.ios.d.ts +export declare function ios(): void; +// @filename: /node_modules/some-library/lib/index.js +"use strict"; +exports.__esModule = true; +function base() {} +exports.base = base; +// @filename: /node_modules/some-library/lib/index.d.ts +export declare function base(): void; + +// @filename: /test.ts +import { ios } from "some-library"; +import { ios as ios2 } from "some-library/index"; +import { ios as ios3 } from "some-library/index.js"; diff --git a/tests/cases/compiler/moduleResolutionWithSuffixes_one_externalTSModule.ts b/tests/cases/compiler/moduleResolutionWithSuffixes_one_externalTSModule.ts new file mode 100644 index 0000000000000..7e5afac88ee0f --- /dev/null +++ b/tests/cases/compiler/moduleResolutionWithSuffixes_one_externalTSModule.ts @@ -0,0 +1,18 @@ +// moduleSuffixes has one entry and there's a matching package with TS files. +// @fullEmitPaths: true +// @filename: /tsconfig.json +{ + "compilerOptions": { + "outDir": "bin", + "moduleResolution": "node", + "traceResolution": true, + "moduleSuffixes": [".ios"] + } +} + +// @filename: /node_modules/some-library/index.ios.ts +export function ios() {} +// @filename: /node_modules/some-library/index.ts +export function base() {} +// @filename: /test.ts +import { ios } from "some-library"; diff --git a/tests/cases/compiler/moduleResolutionWithSuffixes_one_jsModule.ts b/tests/cases/compiler/moduleResolutionWithSuffixes_one_jsModule.ts new file mode 100644 index 0000000000000..2fdaedd2c6607 --- /dev/null +++ b/tests/cases/compiler/moduleResolutionWithSuffixes_one_jsModule.ts @@ -0,0 +1,26 @@ +// moduleSuffixes has one entry and there's a matching file. module name explicitly includes JS file extension. +// @fullEmitPaths: true +// @filename: /tsconfig.json +{ + "compilerOptions": { + "allowJs": true, + "checkJs": false, + "outDir": "bin", + "moduleResolution": "node", + "traceResolution": true, + "moduleSuffixes": [".ios"] + } +} + +// @filename: /index.ts +import { ios } from "./foo.js"; +// @filename: /foo.ios.js +"use strict"; +exports.__esModule = true; +function ios() {} +exports.ios = ios; +// @filename: /foo.js +"use strict"; +exports.__esModule = true; +function base() {} +exports.base = base; diff --git a/tests/cases/compiler/moduleResolutionWithSuffixes_one_jsonModule.ts b/tests/cases/compiler/moduleResolutionWithSuffixes_one_jsonModule.ts new file mode 100644 index 0000000000000..c41c9c9f26043 --- /dev/null +++ b/tests/cases/compiler/moduleResolutionWithSuffixes_one_jsonModule.ts @@ -0,0 +1,25 @@ +// moduleSuffixes has one entry and there's a matching file. module name explicitly includes JSON file extension. +// @fullEmitPaths: true +// @filename: /tsconfig.json +{ + "compilerOptions": { + "esModuleInterop": true, + "resolveJsonModule": true, + "outDir": "bin", + "moduleResolution": "node", + "traceResolution": true, + "moduleSuffixes": [".ios"] + } +} + +// @filename: /index.ts +import foo from "./foo.json"; +console.log(foo.ios); +// @filename: /foo.ios.json +{ + "ios": "platform ios" +} +// @filename: /foo.json +{ + "base": "platform base" +} diff --git a/tests/cases/compiler/moduleResolutionWithSuffixes_threeLastIsBlank1.ts b/tests/cases/compiler/moduleResolutionWithSuffixes_threeLastIsBlank1.ts new file mode 100644 index 0000000000000..5e327b42bd44c --- /dev/null +++ b/tests/cases/compiler/moduleResolutionWithSuffixes_threeLastIsBlank1.ts @@ -0,0 +1,19 @@ +// moduleSuffixes has three entries, and the last one is blank. Module resolution should match on the first suffix. + +// @filename: /tsconfig.json +{ + "compilerOptions": { + "moduleResolution": "node", + "traceResolution": true, + "moduleSuffixes": ["-ios", "__native", ""] + } +} + +// @filename: /index.ts +import { ios } from "./foo"; +// @filename: /foo-ios.ts +export function ios() {} +// @filename: /foo__native.ts +export function native() {} +// @filename: /foo.ts +export function base() {} diff --git a/tests/cases/compiler/moduleResolutionWithSuffixes_threeLastIsBlank2.ts b/tests/cases/compiler/moduleResolutionWithSuffixes_threeLastIsBlank2.ts new file mode 100644 index 0000000000000..dc712150493b6 --- /dev/null +++ b/tests/cases/compiler/moduleResolutionWithSuffixes_threeLastIsBlank2.ts @@ -0,0 +1,17 @@ +// moduleSuffixes has three entries, and the last one is blank. Module resolution should match on the second suffix. + +// @filename: /tsconfig.json +{ + "compilerOptions": { + "moduleResolution": "node", + "traceResolution": true, + "moduleSuffixes": ["-ios", "__native", ""] + } +} + +// @filename: /index.ts +import { native } from "./foo"; +// @filename: /foo__native.ts +export function native() {} +// @filename: /foo.ts +export function base() {} diff --git a/tests/cases/compiler/moduleResolutionWithSuffixes_threeLastIsBlank3.ts b/tests/cases/compiler/moduleResolutionWithSuffixes_threeLastIsBlank3.ts new file mode 100644 index 0000000000000..f5d199ef2e531 --- /dev/null +++ b/tests/cases/compiler/moduleResolutionWithSuffixes_threeLastIsBlank3.ts @@ -0,0 +1,15 @@ +// moduleSuffixes has three entries, and the last one is blank. Module resolution should match on the blank suffix. + +// @filename: /tsconfig.json +{ + "compilerOptions": { + "moduleResolution": "node", + "traceResolution": true, + "moduleSuffixes": ["-ios", "__native", ""] + } +} + +// @filename: /index.ts +import { base } from "./foo"; +// @filename: /foo.ts +export function base() {} diff --git a/tests/cases/compiler/moduleResolutionWithSuffixes_threeLastIsBlank4.ts b/tests/cases/compiler/moduleResolutionWithSuffixes_threeLastIsBlank4.ts new file mode 100644 index 0000000000000..cad26dba3ee89 --- /dev/null +++ b/tests/cases/compiler/moduleResolutionWithSuffixes_threeLastIsBlank4.ts @@ -0,0 +1,13 @@ +// moduleSuffixes has three entries, and the last one is blank. Module resolution should fail. + +// @filename: /tsconfig.json +{ + "compilerOptions": { + "moduleResolution": "node", + "traceResolution": true, + "moduleSuffixes": ["-ios", "__native", ""] + } +} + +// @filename: /index.ts +import { base } from "./foo"; diff --git a/tests/cases/compiler/narrowingDestructuring.ts b/tests/cases/compiler/narrowingDestructuring.ts new file mode 100644 index 0000000000000..a745802825945 --- /dev/null +++ b/tests/cases/compiler/narrowingDestructuring.ts @@ -0,0 +1,39 @@ +type X = { kind: "a", a: string } | { kind: "b", b: string } + +function func(value: T) { + if (value.kind === "a") { + value.a; + const { a } = value; + } else { + value.b; + const { b } = value; + } +} + +type Z = { kind: "f", f: { a: number, b: string, c: number } } + | { kind: "g", g: { a: string, b: number, c: string }}; + +function func2(value: T) { + if (value.kind === "f") { + const { f: f1 } = value; + const { f: { a, ...spread } } = value; + value.f; + } else { + const { g: { c, ...spread } } = value; + value.g; + } +} + +function func3(t: T) { + if (t.kind === "a") { + const { kind, ...r1 } = t; + const r2 = (({ kind, ...rest }) => rest)(t); + } +} + +function farr(x: T) { + const [head, ...tail] = x; + if (x[0] === 'number') { + const [head, ...tail] = x; + } +} \ No newline at end of file diff --git a/tests/cases/compiler/narrowingRestGenericCall.ts b/tests/cases/compiler/narrowingRestGenericCall.ts new file mode 100644 index 0000000000000..ed74403099e0a --- /dev/null +++ b/tests/cases/compiler/narrowingRestGenericCall.ts @@ -0,0 +1,13 @@ +interface Slugs { + foo: string; + bar: string; +} + +function call(obj: T, cb: (val: T) => void) { + cb(obj); +} + +declare let obj: Slugs; +call(obj, ({foo, ...rest}) => { + console.log(rest.bar); +}); \ No newline at end of file diff --git a/tests/cases/compiler/narrowingTypeofFunction.ts b/tests/cases/compiler/narrowingTypeofFunction.ts new file mode 100644 index 0000000000000..987dc80876b7d --- /dev/null +++ b/tests/cases/compiler/narrowingTypeofFunction.ts @@ -0,0 +1,28 @@ +// @strict: true + +type Meta = { foo: string } +interface F { (): string } + +function f1(a: (F & Meta) | string) { + if (typeof a === "function") { + a; + } + else { + a; + } +} + +function f2(x: (T & F) | T & string) { + if (typeof x === "function") { + x; + } + else { + x; + } +} + +function f3(x: { _foo: number } & number) { + if (typeof x === "function") { + x; + } +} \ No newline at end of file diff --git a/tests/cases/compiler/narrowingTypeofObject.ts b/tests/cases/compiler/narrowingTypeofObject.ts new file mode 100644 index 0000000000000..21625b033dc3b --- /dev/null +++ b/tests/cases/compiler/narrowingTypeofObject.ts @@ -0,0 +1,15 @@ +// @strict: true + +interface F { (): string } + +function test(x: number & { _foo: string }) { + if (typeof x === 'object') { + x; + } +} + +function f1(x: F & { foo: number }) { + if (typeof x !== "object") { + x; + } +} \ No newline at end of file diff --git a/tests/cases/compiler/noExcessiveStackDepthError.ts b/tests/cases/compiler/noExcessiveStackDepthError.ts new file mode 100644 index 0000000000000..48f726a94dfcc --- /dev/null +++ b/tests/cases/compiler/noExcessiveStackDepthError.ts @@ -0,0 +1,17 @@ +// @strict: true +// @declaration: true + +// Repro from #46631 + +interface FindOperator { + foo: T; +} + +type FindConditions = { + [P in keyof T]?: FindConditions | FindOperator>; +}; + +function foo() { + var x: FindConditions; + var x: FindConditions; // Excessive stack depth error not expected here +} diff --git a/tests/cases/compiler/noImplicitAnyNamelessParameter.ts b/tests/cases/compiler/noImplicitAnyNamelessParameter.ts index 6206a5e68ad24..aa98a725bd687 100644 --- a/tests/cases/compiler/noImplicitAnyNamelessParameter.ts +++ b/tests/cases/compiler/noImplicitAnyNamelessParameter.ts @@ -1,6 +1,7 @@ // @noImplicitAny: true class C { } -declare var x: (string, C) => void; -declare var y: { (C, number): void }; -declare var z: { m(boolean, C, object, undefined): void } +declare var a: { m(...string): void } +declare var b: (string, C) => void; +declare var c: { (C, number): void }; +declare var d: { m(boolean, C, object, undefined): void } // note: null and void do not parse correctly without a preceding parameter name diff --git a/tests/cases/compiler/noImplicitSymbolToString.ts b/tests/cases/compiler/noImplicitSymbolToString.ts index 16690d6d845cb..a3a797c5f67a8 100644 --- a/tests/cases/compiler/noImplicitSymbolToString.ts +++ b/tests/cases/compiler/noImplicitSymbolToString.ts @@ -11,3 +11,36 @@ let symbolUnionNumber!: symbol | number; let symbolUnionString!: symbol | string; const templateStrUnion = `union with number ${symbolUnionNumber} and union with string ${symbolUnionString}`; + + +// Fix #44462 + +type StringOrSymbol = string | symbol; + +function getKey(key: S) { + return `${key} is the key`; +} + +function getKey1(key: S) { + let s1!: S; + `${s1}`; + s1 + ''; + +s1; + + let s2!: S | string; + `${s2}`; + s2 + ''; + +s2; +} + +function getKey2(key: S) { + let s1!: S; + `${s1}`; + s1 + ''; + +s1; + + let s2!: S | symbol; + `${s2}`; + s2 + ''; + +s2; +} diff --git a/tests/cases/compiler/noMappedGetSet.ts b/tests/cases/compiler/noMappedGetSet.ts new file mode 100644 index 0000000000000..c48fb74c3b0e3 --- /dev/null +++ b/tests/cases/compiler/noMappedGetSet.ts @@ -0,0 +1,3 @@ +type OH_NO = { + get [K in WAT](): string +}; diff --git a/tests/cases/compiler/noParameterReassignmentIIFEAnnotated.ts b/tests/cases/compiler/noParameterReassignmentIIFEAnnotated.ts new file mode 100644 index 0000000000000..d634092a15d8b --- /dev/null +++ b/tests/cases/compiler/noParameterReassignmentIIFEAnnotated.ts @@ -0,0 +1,12 @@ +// @allowJs: true +// @checkJs: true +// @noEmit: true +// @filename: index.js +self.importScripts = (function (importScripts) { + /** + * @param {...unknown} rest + */ + return function () { + return importScripts.apply(this, arguments); + }; +})(importScripts); diff --git a/tests/cases/compiler/noParameterReassignmentJSIIFE.ts b/tests/cases/compiler/noParameterReassignmentJSIIFE.ts new file mode 100644 index 0000000000000..175e87887ecfd --- /dev/null +++ b/tests/cases/compiler/noParameterReassignmentJSIIFE.ts @@ -0,0 +1,9 @@ +// @allowJs: true +// @checkJs: true +// @noEmit: true +// @filename: index.js +self.importScripts = (function (importScripts) { + return function () { + return importScripts.apply(this, arguments); + }; +})(importScripts); diff --git a/tests/cases/compiler/noRepeatedPropertyNames.ts b/tests/cases/compiler/noRepeatedPropertyNames.ts new file mode 100644 index 0000000000000..cb83967d9c4af --- /dev/null +++ b/tests/cases/compiler/noRepeatedPropertyNames.ts @@ -0,0 +1,9 @@ +// @strict: false +// https://github.com/microsoft/TypeScript/issues/46815 +const first = { a: 1, a: 2 }; +class C { + m() { + const second = { a: 1, a: 2 }; + return second.a; + } +} diff --git a/tests/cases/compiler/nodeNextCjsNamespaceImportDefault1.ts b/tests/cases/compiler/nodeNextCjsNamespaceImportDefault1.ts new file mode 100644 index 0000000000000..b4b1408328d1d --- /dev/null +++ b/tests/cases/compiler/nodeNextCjsNamespaceImportDefault1.ts @@ -0,0 +1,13 @@ +// @module: nodenext +// @moduleResolution: nodenext +// @outDir: ./out +// @declaration: true +// @filename: src/a.cts +export const a: number = 1; +// @filename: src/foo.mts +import d, {a} from './a.cjs'; +import * as ns from './a.cjs'; +export {d, a, ns}; + +d.a; +ns.default.a; \ No newline at end of file diff --git a/tests/cases/compiler/nodeNextCjsNamespaceImportDefault2.ts b/tests/cases/compiler/nodeNextCjsNamespaceImportDefault2.ts new file mode 100644 index 0000000000000..745cfd6d2e8cb --- /dev/null +++ b/tests/cases/compiler/nodeNextCjsNamespaceImportDefault2.ts @@ -0,0 +1,14 @@ +// @module: nodenext +// @moduleResolution: nodenext +// @outDir: ./out +// @declaration: true +// @filename: src/a.cts +export const a: number = 1; +export default 'string'; +// @filename: src/foo.mts +import d, {a} from './a.cjs'; +import * as ns from './a.cjs'; +export {d, a, ns}; + +d.a; +ns.default.a; \ No newline at end of file diff --git a/tests/cases/compiler/nodeNextEsmImportsOfPackagesWithExtensionlessMains.ts b/tests/cases/compiler/nodeNextEsmImportsOfPackagesWithExtensionlessMains.ts new file mode 100644 index 0000000000000..50d0035001441 --- /dev/null +++ b/tests/cases/compiler/nodeNextEsmImportsOfPackagesWithExtensionlessMains.ts @@ -0,0 +1,36 @@ +// @noImplicitReferences: true +// @module: nodenext +// @outDir: esm +// @filename: node_modules/@types/ip/package.json +{ + "name": "@types/ip", + "version": "1.1.0", + "main": "", + "types": "index" +} +// @filename: node_modules/@types/ip/index.d.ts +export function address(): string; +// @filename: node_modules/nullthrows/package.json +{ + "name": "nullthrows", + "version": "1.1.1", + "main": "nullthrows.js", + "types": "nullthrows.d.ts" +} +// @filename: node_modules/nullthrows/nullthrows.d.ts +declare function nullthrows(x: any): any; +declare namespace nullthrows { + export {nullthrows as default}; +} +export = nullthrows; +// @filename: package.json +{ + "type": "module" +} +// @filename: index.ts +import * as ip from 'ip'; +import nullthrows from 'nullthrows'; // shouldn't be callable, `nullthrows` is a cjs package, so the `default` is the module itself + +export function getAddress(): string { + return nullthrows(ip.address()); +} \ No newline at end of file diff --git a/tests/cases/compiler/nodeNextImportModeImplicitIndexResolution.ts b/tests/cases/compiler/nodeNextImportModeImplicitIndexResolution.ts new file mode 100644 index 0000000000000..bf20a669b4396 --- /dev/null +++ b/tests/cases/compiler/nodeNextImportModeImplicitIndexResolution.ts @@ -0,0 +1,23 @@ +// @module: nodenext +// @filename: node_modules/pkg/package.json +{ + "name": "pkg", + "version": "0.0.1" +} +// @filename: node_modules/pkg/index.d.ts +export const item = 4; +// @filename: pkg/package.json +{ + "private": true +} +// @filename: pkg/index.d.ts +export const item = 4; +// @filename: package.json +{ + "type": "module", + "private": true +} +// @filename: index.ts +import { item } from "pkg"; // should work (`index.js` is assumed to be the entrypoint for packages found via nonrelative import) +import { item as item2 } from "./pkg"; // shouldn't work (`index.js` is _not_ assumed to be the entrypoint for packages found via relative import) +import { item as item3 } from "./node_modules/pkg" // _even if they're in a node_modules folder_ diff --git a/tests/cases/compiler/objectAssignLikeNonUnionResult.ts b/tests/cases/compiler/objectAssignLikeNonUnionResult.ts new file mode 100644 index 0000000000000..47f693a0470eb --- /dev/null +++ b/tests/cases/compiler/objectAssignLikeNonUnionResult.ts @@ -0,0 +1,18 @@ +interface Interface { + field: number; +} +const defaultValue: Interface = { field: 1 }; + +declare function assign(target: T, source: U): T & U; + +// Displayed type: Interface & { field: number } +// Underlying type: Something else... +const data1 = assign(defaultValue, Date.now() > 3 ? { field: 2 } : {}); + +type ExtractRawComponent = T extends { __raw: infer C } ? [L1: T, L2: C] : [R1: T]; +type t1 = ExtractRawComponent; + +// ??? +type Explode = T extends { x: infer A } ? [A] : 'X'; +// 'X' | [unknown] -- why? +type e1 = Explode; \ No newline at end of file diff --git a/tests/cases/compiler/objectFreeze.ts b/tests/cases/compiler/objectFreeze.ts index 5e8539831b1fa..72498ce02aa57 100644 --- a/tests/cases/compiler/objectFreeze.ts +++ b/tests/cases/compiler/objectFreeze.ts @@ -8,5 +8,5 @@ new c(1); const a = Object.freeze([1, 2, 3]); a[0] = a[2].toString(); -const o = Object.freeze({ a: 1, b: "string" }); +const o = Object.freeze({ a: 1, b: "string", c: true }); o.b = o.a.toString(); diff --git a/tests/cases/compiler/primitiveUnionDetection.ts b/tests/cases/compiler/primitiveUnionDetection.ts new file mode 100644 index 0000000000000..4d6cc5c661aea --- /dev/null +++ b/tests/cases/compiler/primitiveUnionDetection.ts @@ -0,0 +1,10 @@ +// @strict: true +// @declaration: true + +// Repro from #46624 + +type Kind = "one" | "two" | "three"; + +declare function getInterfaceFromString(options?: { type?: T } & { type?: Kind }): T; + +const result = getInterfaceFromString({ type: 'two' }); diff --git a/tests/cases/compiler/promiseAllOnAny01.ts b/tests/cases/compiler/promiseAllOnAny01.ts new file mode 100644 index 0000000000000..75d3b2d09026d --- /dev/null +++ b/tests/cases/compiler/promiseAllOnAny01.ts @@ -0,0 +1,8 @@ +// @noEmit: true +// @lib: es5,es2015.promise + +async function foo(x: any) { + let abc = await Promise.all(x); + let result: any[] = abc; + return result; +} \ No newline at end of file diff --git a/tests/cases/compiler/protectedMembersThisParameter.ts b/tests/cases/compiler/protectedMembersThisParameter.ts new file mode 100644 index 0000000000000..7a1e3123f597a --- /dev/null +++ b/tests/cases/compiler/protectedMembersThisParameter.ts @@ -0,0 +1,95 @@ +class Message { + protected secret(): void {} +} +class MessageWrapper { + message: Message = new Message(); + wrap() { + let m = this.message; + let f = function(this: T) { + m.secret(); // should error + } + } +} + +class A { + protected a() {} +} +class B extends A { + protected b() {} +} +class C extends A { + protected c() {} +} +class Z { + protected z() {} +} + +function bA(this: T, arg: B) { + this.a(); + arg.a(); + arg.b(); // should error to avoid cross-hierarchy protected access https://www.typescriptlang.org/docs/handbook/2/classes.html#cross-hierarchy-protected-access +} +function bB(this: T, arg: B) { + this.a(); + this.b(); + arg.a(); + arg.b(); +} +function bC(this: T, arg: B) { + this.a(); + this.c(); + arg.a(); // should error + arg.b(); // should error +} +function bZ(this: T, arg: B) { + this.z(); + arg.a(); // should error + arg.b(); // should error +} +function bString(this: T, arg: B) { + this.toLowerCase(); + arg.a(); // should error + arg.b(); // should error +} +function bAny(this: T, arg: B) { + arg.a(); // should error + arg.b(); // should error +} + +class D { + protected d() {} + + derived1(arg: D1) { + arg.d(); + arg.d1(); // should error + } + derived1ThisD(this: D, arg: D1) { + arg.d(); + arg.d1(); // should error + } + derived1ThisD1(this: D1, arg: D1) { + arg.d(); + arg.d1(); + } + + derived2(arg: D2) { + arg.d(); // should error because of overridden method in D2 + arg.d2(); // should error + } + derived2ThisD(this: D, arg: D2) { + arg.d(); // should error because of overridden method in D2 + arg.d2(); // should error + } + derived2ThisD2(this: D2, arg: D2) { + arg.d(); + arg.d2(); + } +} +class D1 extends D { + protected d1() {} +} +class D2 extends D { + protected d() {} + protected d2() {} +} + diff --git a/tests/cases/compiler/readonlyPropertySubtypeRelationDirected.ts b/tests/cases/compiler/readonlyPropertySubtypeRelationDirected.ts new file mode 100644 index 0000000000000..aadd4bec5a0fd --- /dev/null +++ b/tests/cases/compiler/readonlyPropertySubtypeRelationDirected.ts @@ -0,0 +1,79 @@ +// @strict: true +// @filename: one.ts +export {}; +// When the non-readonly type is declared first, the unioned type of `three` in `doSomething` is never treated as readonly +const two: { a: string } = { a: 'two' }; +const one: { readonly a: string } = { a: 'one' }; + +function doSomething(condition: boolean) { + // when `one` comes first in the conditional check, the return type of `doSomething` is inferred as `a` is readonly, but `a` is + // only treated as readonly (i.e. it will produce a diagnostic if you try to assign to it) based on the order of declarations of `one` and `two` above + const three = (condition) ? one : two; + + three.a = 'foo'; + + // the inferred (displayed?) type of `a` also depends on the order of the condition above. When `one` comes first, the displayed type is `any` + // when `two` comes first, the displayed type is `string`, but the diagnostic will always correctly find that it's string + three.a = 'foo2'; + + return three; +} +// @filename: two.ts +export {}; +// When the non-readonly type is declared first, the unioned type of `three` in `doSomething` is never treated as readonly +const two: { a: string } = { a: 'two' }; +const one: { readonly a: string } = { a: 'one' }; + +function doSomething(condition: boolean) { + // when `two` comes first in the conditional check, the return type of `doSomething` is inferred as not readonly but produces the same diagnostics as above + // based on the declaration order of `one` and `two` + const three = (condition) ? two : one; + + three.a = 'foo'; + + // the inferred (displayed?) type of `a` also depends on the order of the condition above. When `one` comes first, the displayed type is `any` + // when `two` comes first, the displayed type is `string`, but the diagnostic will always correctly find that it's string + three.a = 'foo2'; + + return three; +} + +// @filename: three.ts +export {}; +// When the readonly type is declared first, the unioned type of `three` in `doSomething` is always treated as readonly by the compiler +const one: { readonly a: string } = { a: 'one' }; +const two: { a: string } = { a: 'two' }; + +function doSomething(condition: boolean) { + // when `one` comes first in the conditional check, the return type of `doSomething` is inferred as `a` is readonly, but `a` is + // only treated as readonly (i.e. it will produce a diagnostic if you try to assign to it) based on the order of declarations of `one` and `two` above + const three = (condition) ? one : two; + + three.a = 'foo'; + + // the inferred (displayed?) type of `a` also depends on the order of the condition above. When `one` comes first, the displayed type is `any` + // when `two` comes first, the displayed type is `string`, but the diagnostic will always correctly find that it's string + three.a = 'foo2'; + + return three; +} + +// @filename: four.ts +export {}; +// When the readonly type is declared first, the unioned type of `three` in `doSomething` is always treated as readonly by the compiler +const one: { readonly a: string } = { a: 'one' }; +const two: { a: string } = { a: 'two' }; + +function doSomething(condition: boolean) { + // when `two` comes first in the conditional check, the return type of `doSomething` is inferred as not readonly but produces the same diagnostics as above + // based on the declaration order of `one` and `two` + const three = (condition) ? two : one; + + three.a = 'foo'; + + // the inferred (displayed?) type of `a` also depends on the order of the condition above. When `one` comes first, the displayed type is `any` + // when `two` comes first, the displayed type is `string`, but the diagnostic will always correctly find that it's string + three.a = 'foo2'; + + return three; +} \ No newline at end of file diff --git a/tests/cases/compiler/reservedWords2.ts b/tests/cases/compiler/reservedWords2.ts index fe261f0cf4dfa..e74b403d27be9 100644 --- a/tests/cases/compiler/reservedWords2.ts +++ b/tests/cases/compiler/reservedWords2.ts @@ -10,4 +10,3 @@ var [debugger, if] = [1, 2]; enum void {} function f(default: number) {} class C { m(null: string) {} } - diff --git a/tests/cases/compiler/reservedWords3.ts b/tests/cases/compiler/reservedWords3.ts new file mode 100644 index 0000000000000..d2713503c3832 --- /dev/null +++ b/tests/cases/compiler/reservedWords3.ts @@ -0,0 +1,5 @@ +function f1(enum) {} +function f2(class) {} +function f3(function) {} +function f4(while) {} +function f5(for) {} diff --git a/tests/cases/compiler/strictModeInConstructor.ts b/tests/cases/compiler/strictModeInConstructor.ts index eb9c633ace1b5..8de66ca354524 100644 --- a/tests/cases/compiler/strictModeInConstructor.ts +++ b/tests/cases/compiler/strictModeInConstructor.ts @@ -25,7 +25,8 @@ class D extends A { public s: number = 9; constructor () { - var x = 1; // Error + var x = 1; // No error + var y = this.s; // Error super(); "use strict"; } diff --git a/tests/cases/compiler/substitutionTypeForIndexedAccessType1.ts b/tests/cases/compiler/substitutionTypeForIndexedAccessType1.ts new file mode 100644 index 0000000000000..4c665d768544c --- /dev/null +++ b/tests/cases/compiler/substitutionTypeForIndexedAccessType1.ts @@ -0,0 +1,5 @@ +type AddPropToObject = Prop extends keyof Obj + ? Obj[Prop] extends unknown[] + ? [...Obj[Prop]] + : never + : never \ No newline at end of file diff --git a/tests/cases/compiler/substitutionTypeForIndexedAccessType2.ts b/tests/cases/compiler/substitutionTypeForIndexedAccessType2.ts new file mode 100644 index 0000000000000..c687879efd463 --- /dev/null +++ b/tests/cases/compiler/substitutionTypeForIndexedAccessType2.ts @@ -0,0 +1,15 @@ +interface Foo { + foo: string|undefined +} + +type Str = T + +type Bar = + T extends Foo + ? T['foo'] extends string + // Type 'T["foo"]' does not satisfy the constraint 'string'. + // Type 'string | undefined' is not assignable to type 'string'. + // Type 'undefined' is not assignable to type 'string'.(2344) + ? Str + : never + : never \ No newline at end of file diff --git a/tests/cases/compiler/templateLiteralIntersection.ts b/tests/cases/compiler/templateLiteralIntersection.ts new file mode 100644 index 0000000000000..9a17d16bc2b2f --- /dev/null +++ b/tests/cases/compiler/templateLiteralIntersection.ts @@ -0,0 +1,28 @@ +// https://github.com/microsoft/TypeScript/issues/48034 +const a = 'a' + +type A = typeof a +type MixA = A & {foo: string} + +type OriginA1 = `${A}` +type OriginA2 = `${MixA}` + +type B = `${typeof a}` +type MixB = B & { foo: string } + +type OriginB1 = `${B}` +type OriginB2 = `${MixB}` + +type MixC = { foo: string } & A + +type OriginC = `${MixC}` + +type MixD = + `${T & { foo: string }}` +type OriginD = `${MixD & { foo: string }}`; + +type E = `${A & {}}`; +type MixE = E & {} +type OriginE = `${MixE}` + +type OriginF = `${A}foo${A}`; \ No newline at end of file diff --git a/tests/cases/compiler/tripleSlashTypesReferenceWithMissingExports.ts b/tests/cases/compiler/tripleSlashTypesReferenceWithMissingExports.ts new file mode 100644 index 0000000000000..d5b58f5077fa2 --- /dev/null +++ b/tests/cases/compiler/tripleSlashTypesReferenceWithMissingExports.ts @@ -0,0 +1,13 @@ +// @module: commonjs,node12,nodenext +// @filename: node_modules/pkg/index.d.ts +interface GlobalThing { a: number } +// @filename: node_modules/pkg/package.json +{ + "name": "pkg", + "types": "index.d.ts", + "exports": "some-other-thing.js" +} +// @filename: usage.ts +/// + +const a: GlobalThing = { a: 0 }; \ No newline at end of file diff --git a/tests/cases/compiler/trivialSubtypeReductionNoStructuralCheck.ts b/tests/cases/compiler/trivialSubtypeReductionNoStructuralCheck.ts new file mode 100644 index 0000000000000..b9917996dee76 --- /dev/null +++ b/tests/cases/compiler/trivialSubtypeReductionNoStructuralCheck.ts @@ -0,0 +1,16 @@ +// @strict: true +// @target: es5 + +declare const props: WizardStepProps; +export class Wizard { + get steps() { + return { + wizard: this, + ...props, + } as WizardStepProps; + } +} + +export interface WizardStepProps { + wizard?: Wizard; +} \ No newline at end of file diff --git a/tests/cases/compiler/trivialSubtypeReductionNoStructuralCheck2.ts b/tests/cases/compiler/trivialSubtypeReductionNoStructuralCheck2.ts new file mode 100644 index 0000000000000..2c8e0ee2c64d0 --- /dev/null +++ b/tests/cases/compiler/trivialSubtypeReductionNoStructuralCheck2.ts @@ -0,0 +1,16 @@ +// @strict: true +// @target: es5 + +declare const props: WizardStepProps; +export class Wizard { + get steps() { + return { + wizard: this as Wizard, + ...props, + } as WizardStepProps; + } +} + +export interface WizardStepProps { + wizard?: Wizard; +} \ No newline at end of file diff --git a/tests/cases/compiler/truthinessCallExpressionCoercion4.ts b/tests/cases/compiler/truthinessCallExpressionCoercion4.ts new file mode 100644 index 0000000000000..f585d7b78d18c --- /dev/null +++ b/tests/cases/compiler/truthinessCallExpressionCoercion4.ts @@ -0,0 +1,11 @@ +// @checkJs: true +// @allowJs: true +// @strict: true +// @noEmit: true +// @filename: a.js + +function fn() {} + +if (typeof module === 'object' && module.exports) { + module.exports = fn; +} diff --git a/tests/cases/compiler/tupleTypes.ts b/tests/cases/compiler/tupleTypes.ts index 53e5b584b7a9c..40bc1e9b27740 100644 --- a/tests/cases/compiler/tupleTypes.ts +++ b/tests/cases/compiler/tupleTypes.ts @@ -51,3 +51,15 @@ a1 = a2; // Error a1 = a3; // Error a3 = a1; a3 = a2; + +type B = Pick<[number], 'length'>; +declare const b: B; +b.length = 0; // Error +declare const b1: readonly [number?]; +b1.length = 0; // Error +declare const b2: readonly [number, ...number[]]; +b2.length = 0; // Error +declare const b3: readonly number[]; +b3.length = 0; // Error +declare const b4: [number?]; +b4.length = 0; diff --git a/tests/cases/compiler/typeGuardNarrowByMutableUntypedField.ts b/tests/cases/compiler/typeGuardNarrowByMutableUntypedField.ts new file mode 100644 index 0000000000000..1a585159d8a6d --- /dev/null +++ b/tests/cases/compiler/typeGuardNarrowByMutableUntypedField.ts @@ -0,0 +1,6 @@ +// @lib: es6 +declare function hasOwnProperty

(target: {}, property: P): target is { [K in P]: unknown }; +declare const arrayLikeOrIterable: ArrayLike | Iterable; +if (hasOwnProperty(arrayLikeOrIterable, 'length')) { + let x: number = arrayLikeOrIterable.length; +} \ No newline at end of file diff --git a/tests/cases/compiler/typeGuardNarrowByUntypedField.ts b/tests/cases/compiler/typeGuardNarrowByUntypedField.ts new file mode 100644 index 0000000000000..2bde0c945ece1 --- /dev/null +++ b/tests/cases/compiler/typeGuardNarrowByUntypedField.ts @@ -0,0 +1,6 @@ +// @lib: es6 +declare function hasOwnProperty

(target: {}, property: P): target is { readonly [K in P]: unknown }; +declare const arrayLikeOrIterable: ArrayLike | Iterable; +if (hasOwnProperty(arrayLikeOrIterable, 'length')) { + let x: number = arrayLikeOrIterable.length; +} \ No newline at end of file diff --git a/tests/cases/compiler/typeGuardNarrowsIndexedAccessOfKnownProperty.ts b/tests/cases/compiler/typeGuardNarrowsIndexedAccessOfKnownProperty1.ts similarity index 100% rename from tests/cases/compiler/typeGuardNarrowsIndexedAccessOfKnownProperty.ts rename to tests/cases/compiler/typeGuardNarrowsIndexedAccessOfKnownProperty1.ts diff --git a/tests/cases/compiler/typeGuardNarrowsIndexedAccessOfKnownProperty2.ts b/tests/cases/compiler/typeGuardNarrowsIndexedAccessOfKnownProperty2.ts new file mode 100644 index 0000000000000..2dd12edde864e --- /dev/null +++ b/tests/cases/compiler/typeGuardNarrowsIndexedAccessOfKnownProperty2.ts @@ -0,0 +1,9 @@ +// @strict: true + +const foo: { key?: number } = {}; +const key = 'key' as const; + +if (foo[key]) { + foo[key]; // number + foo.key; // number +} diff --git a/tests/cases/compiler/typeGuardNarrowsIndexedAccessOfKnownProperty3.ts b/tests/cases/compiler/typeGuardNarrowsIndexedAccessOfKnownProperty3.ts new file mode 100644 index 0000000000000..7b92297fb48c5 --- /dev/null +++ b/tests/cases/compiler/typeGuardNarrowsIndexedAccessOfKnownProperty3.ts @@ -0,0 +1,10 @@ +// @strict: true + +type Foo = (number | undefined)[] | undefined; + +const foo: Foo = [1, 2, 3]; +const index = 1; + +if (foo !== undefined && foo[index] !== undefined && foo[index] >= 0) { + foo[index] // number +} diff --git a/tests/cases/compiler/typeGuardNarrowsIndexedAccessOfKnownProperty4.ts b/tests/cases/compiler/typeGuardNarrowsIndexedAccessOfKnownProperty4.ts new file mode 100644 index 0000000000000..aa2782c493268 --- /dev/null +++ b/tests/cases/compiler/typeGuardNarrowsIndexedAccessOfKnownProperty4.ts @@ -0,0 +1,15 @@ +// @strict: true + +class Foo { + x: number | undefined; + + constructor() { + this.x = 5; + + this.x; // number + this['x']; // number + + const key = 'x'; + this[key]; // number + } +} diff --git a/tests/cases/compiler/typeGuardNarrowsIndexedAccessOfKnownProperty5.ts b/tests/cases/compiler/typeGuardNarrowsIndexedAccessOfKnownProperty5.ts new file mode 100644 index 0000000000000..efb553acd7a5b --- /dev/null +++ b/tests/cases/compiler/typeGuardNarrowsIndexedAccessOfKnownProperty5.ts @@ -0,0 +1,22 @@ +// @strict: true + +const a: { key?: { x?: number } } = {}; +const aIndex = "key"; +if (a[aIndex] && a[aIndex].x) { + a[aIndex].x // number +} + +const b: { key: { x?: number } } = { key: {} }; +const bIndex = "key"; +if (b[bIndex].x) { + b[bIndex].x // number +} + +interface Foo { + x: number | undefined; +} +const c: Foo[] = []; +const cIndex = 1; +if (c[cIndex].x) { + c[cIndex].x // number +} diff --git a/tests/cases/compiler/typeGuardNarrowsIndexedAccessOfKnownProperty6.ts b/tests/cases/compiler/typeGuardNarrowsIndexedAccessOfKnownProperty6.ts new file mode 100644 index 0000000000000..21c328ff899c2 --- /dev/null +++ b/tests/cases/compiler/typeGuardNarrowsIndexedAccessOfKnownProperty6.ts @@ -0,0 +1,22 @@ +// @strict: true + +declare const aIndex: "key"; +const a: { key?: { x?: number } } = {}; +if (a[aIndex] && a[aIndex].x) { + a[aIndex].x // number +} + +declare const bIndex: "key"; +const b: { key: { x?: number } } = { key: {} }; +if (b[bIndex].x) { + b[bIndex].x // number +} + +declare const cIndex: 1; +interface Foo { + x: number | undefined; +} +const c: Foo[] = []; +if (c[cIndex].x) { + c[cIndex].x // number +} diff --git a/tests/cases/compiler/typeGuardNarrowsIndexedAccessOfKnownProperty7.ts b/tests/cases/compiler/typeGuardNarrowsIndexedAccessOfKnownProperty7.ts new file mode 100644 index 0000000000000..d3f22bfbe73fe --- /dev/null +++ b/tests/cases/compiler/typeGuardNarrowsIndexedAccessOfKnownProperty7.ts @@ -0,0 +1,14 @@ +// @strict: true +// @target: esnext + +export namespace Foo { + export const key = Symbol(); +} + +export class C { + [Foo.key]: string; + + constructor() { + this[Foo.key] = "hello"; + } +} diff --git a/tests/cases/compiler/typeGuardNarrowsIndexedAccessOfKnownProperty8.ts b/tests/cases/compiler/typeGuardNarrowsIndexedAccessOfKnownProperty8.ts new file mode 100644 index 0000000000000..e1f3fd51c5265 --- /dev/null +++ b/tests/cases/compiler/typeGuardNarrowsIndexedAccessOfKnownProperty8.ts @@ -0,0 +1,15 @@ +// @strict: true +// @target: esnext + +// @filename: ./a.ts +export const key = "a"; + +// @filename: ./b.ts +import * as a from "./a"; +export class C { + [a.key]: string; + + constructor() { + this[a.key] = "foo"; + } +} diff --git a/tests/cases/compiler/typeGuardNarrowsIndexedAccessOfKnownProperty9.ts b/tests/cases/compiler/typeGuardNarrowsIndexedAccessOfKnownProperty9.ts new file mode 100644 index 0000000000000..90a74f763498c --- /dev/null +++ b/tests/cases/compiler/typeGuardNarrowsIndexedAccessOfKnownProperty9.ts @@ -0,0 +1,15 @@ +// @noUnusedLocals: true +// @strict: true +// @target: esnext + +class C1 { + private a = "a"; // ok + private b = "b"; // ok + + private c = "c"; // error unused prop + private d = "d"; // error unused prop + + getValue(key: "a" | "b") { + return this[key]; + } +} diff --git a/tests/cases/compiler/uncalledFunctionChecksInConditional.ts b/tests/cases/compiler/uncalledFunctionChecksInConditional.ts new file mode 100644 index 0000000000000..df0142775f147 --- /dev/null +++ b/tests/cases/compiler/uncalledFunctionChecksInConditional.ts @@ -0,0 +1,52 @@ +// @strictNullChecks: true + +declare function isFoo(): boolean; +declare function isBar(): boolean; +declare const isUndefinedFoo: (() => boolean) | undefined; + +if (isFoo) { + // error on isFoo +} + +if (isFoo || isBar) { + // error on isFoo, isBar +} + +if (isFoo || isFoo()) { + // error on isFoo +} + +if (isUndefinedFoo || isFoo()) { + // no error +} + +if (isFoo && isFoo()) { + // no error +} + +declare const x: boolean; +declare const ux: boolean | undefined; +declare const y: boolean; +declare const uy: boolean | undefined; +declare function z(): boolean; +declare const uz: (() => boolean) | undefined; + +if (x || isFoo) { + // error on isFoo +} + +if (isFoo || x) { + // error on isFoo +} + +if (x || y || z() || isFoo) { + // error on isFoo +} + +if (x || uy || z || isUndefinedFoo) { + // error on z +} + +if (ux || y || uz || isFoo) { + // error on isFoo +} diff --git a/tests/cases/compiler/underscoreThisInDerivedClass01.ts b/tests/cases/compiler/underscoreThisInDerivedClass01.ts index 0d3f5849cb157..bdb14061f8533 100644 --- a/tests/cases/compiler/underscoreThisInDerivedClass01.ts +++ b/tests/cases/compiler/underscoreThisInDerivedClass01.ts @@ -18,6 +18,8 @@ class C { class D extends C { constructor() { var _this = "uh-oh?"; + console.log("ruh-roh..."); super(); + console.log("d'oh!"); } } \ No newline at end of file diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock1.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock1.ts index 8a0edbfedbe1a..9d1c3cdfc58fa 100644 --- a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock1.ts +++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock1.ts @@ -1,4 +1,4 @@ -// @target: esnext, es2015, es5 +// @target: esnext, es2022, es2015, es5 const a = 2; class C { diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock10.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock10.ts index c6e1fc2244d99..a0d351c8cb06b 100644 --- a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock10.ts +++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock10.ts @@ -1,4 +1,4 @@ -// @target: esnext, es2015, es5 +// @target: esnext, es2022, es2015, es5 var a1 = 1; var a2 = 1; const b1 = 2; @@ -25,4 +25,4 @@ class C2 { const b1 = 222; const b2 = 222; } -} \ No newline at end of file +} diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock11.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock11.ts index 685d870cceb09..d8d4b7aff292e 100644 --- a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock11.ts +++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock11.ts @@ -1,4 +1,4 @@ -// @target: esnext, es2015 +// @target: esnext, es2022, es2015 let getX; class C { diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock13.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock13.ts index 8120cc3575cb3..5078ab63dc016 100644 --- a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock13.ts +++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock13.ts @@ -1,9 +1,9 @@ -// @target: esnext, es2015 +// @target: esnext, es2022, es2015 // @useDefineForClassFields: true class C { static #x = 123; - + static { console.log(C.#x) } diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock15.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock15.ts index ec2727660f123..ec40af5c290eb 100644 --- a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock15.ts +++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock15.ts @@ -1,4 +1,4 @@ -// @target: esnext, es2015 +// @target: esnext, es2022, es2015 // @useDefineForClassFields: true var _C__1; diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock18.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock18.ts index a36bd50917c20..0be8ee4cffec7 100644 --- a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock18.ts +++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock18.ts @@ -1,4 +1,4 @@ -// @target: esnext, es2015, es5 +// @target: esnext, es2022, es2015, es5 function foo () { return class { diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock2.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock2.ts index 292d7181bba5d..d27cc33913ed8 100644 --- a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock2.ts +++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock2.ts @@ -1,4 +1,4 @@ -// @target: esnext, es2015, es5 +// @target: esnext, es2022, es2015, es5 const a = 1; const b = 2; diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock22.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock22.ts index 8d3be9861aa71..2e63d2b0bf299 100644 --- a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock22.ts +++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock22.ts @@ -1,4 +1,4 @@ -// @target: esnext +// @target: esnext, es2022 let await: "any"; class C { @@ -69,4 +69,4 @@ class C { static propFunc = function () { await; } } } -} \ No newline at end of file +} diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock23.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock23.ts index bb83b27dcab32..55dff224f0e17 100644 --- a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock23.ts +++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock23.ts @@ -1,4 +1,4 @@ -// @target: esnext +// @target: esnext, es2022 const nums = [1, 2, 3].map(n => Promise.resolve(n)) @@ -18,4 +18,4 @@ async function foo () { } } } -} \ No newline at end of file +} diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock24.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock24.ts index 8132238772b65..a07d400633722 100644 --- a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock24.ts +++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock24.ts @@ -1,4 +1,4 @@ -// @module: commonjs, es2015, es2020, UMD, AMD, System, esnext +// @module: commonjs, es2015, es2020, es2022, UMD, AMD, System, esnext export class C { static x: number; diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock25.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock25.ts index 56f99a612298d..a490a1e1c5a0e 100644 --- a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock25.ts +++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock25.ts @@ -1,4 +1,4 @@ -// @target: esnext +// @target: esnext, es2022 // @declaration: true // @declarationMap: true // @sourceMap: true diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock26.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock26.ts index 1081729acdb2d..75cdbd61d44ca 100644 --- a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock26.ts +++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock26.ts @@ -1,4 +1,4 @@ -// @target: esnext +// @target: esnext, es2022 class C { static { diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock28.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock28.ts new file mode 100644 index 0000000000000..90cbf78bfdd59 --- /dev/null +++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock28.ts @@ -0,0 +1,11 @@ +// @strict: true + +let foo: number; + +class C { + static { + foo = 1 + } +} + +console.log(foo) \ No newline at end of file diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock3.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock3.ts index 84125fdbed75a..c7052d5ce40c1 100644 --- a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock3.ts +++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock3.ts @@ -1,4 +1,4 @@ -// @target: esnext +// @target: esnext, es2022 const a = 1; diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock4.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock4.ts index 7a944a496911f..432daf6494b8d 100644 --- a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock4.ts +++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock4.ts @@ -1,4 +1,4 @@ -// @target: esnext +// @target: esnext, es2022 class C { static s1 = 1; diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock5.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock5.ts index cd0f7276c1b5f..aa834234d7269 100644 --- a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock5.ts +++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock5.ts @@ -1,4 +1,4 @@ -// @target: esnext, es2015, es5 +// @target: esnext, es2022, es2015, es5 class B { static a = 1; diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock9.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock9.ts index d99157b190983..218732ff9aa4a 100644 --- a/tests/cases/conformance/classes/classStaticBlock/classStaticBlock9.ts +++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlock9.ts @@ -1,4 +1,4 @@ -// @target: esnext, es2015, es5 +// @target: esnext, es2022, es2015, es5 class A { static bar = A.foo + 1 static { diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlockUseBeforeDef1.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlockUseBeforeDef1.ts index 11f8b7f55472a..b9867afac336f 100644 --- a/tests/cases/conformance/classes/classStaticBlock/classStaticBlockUseBeforeDef1.ts +++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlockUseBeforeDef1.ts @@ -1,4 +1,4 @@ -// @target: esnext +// @target: esnext, es2022 // @noEmit: true // @strict: true @@ -12,4 +12,4 @@ class C { static { this.z = this.y; } -} \ No newline at end of file +} diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlockUseBeforeDef2.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlockUseBeforeDef2.ts index 89658a6ebe26c..769a126026c42 100644 --- a/tests/cases/conformance/classes/classStaticBlock/classStaticBlockUseBeforeDef2.ts +++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlockUseBeforeDef2.ts @@ -1,4 +1,4 @@ -// @target: esnext +// @target: esnext, es2022 // @noEmit: true // @strict: true @@ -7,4 +7,4 @@ class C { this.x = 1; } static x; -} \ No newline at end of file +} diff --git a/tests/cases/conformance/classes/classStaticBlock/classStaticBlockUseBeforeDef3.ts b/tests/cases/conformance/classes/classStaticBlock/classStaticBlockUseBeforeDef3.ts new file mode 100644 index 0000000000000..bf59cb8a8c485 --- /dev/null +++ b/tests/cases/conformance/classes/classStaticBlock/classStaticBlockUseBeforeDef3.ts @@ -0,0 +1,45 @@ +// @noEmit: true +// @strict: true + +class A { + static { + A.doSomething(); // should not error + } + + static doSomething() { + console.log("gotcha!"); + } +} + + +class Baz { + static { + console.log(FOO); // should error + } +} + +const FOO = "FOO"; +class Bar { + static { + console.log(FOO); // should not error + } +} + +let u = "FOO" as "FOO" | "BAR"; + +class CFA { + static { + u = "BAR"; + u; // should be "BAR" + } + + static t = 1; + + static doSomething() {} + + static { + u; // should be "BAR" + } +} + +u; // should be "BAR" diff --git a/tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassParameterProperties.ts b/tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassParameterProperties.ts index a054ed0f6831b..6c6bfc63b9eb2 100644 --- a/tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassParameterProperties.ts +++ b/tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassParameterProperties.ts @@ -7,20 +7,20 @@ class Base { class Derived extends Base { constructor(y: string) { var a = 1; - super(); // ok + super(); } } class Derived2 extends Base { constructor(public y: string) { var a = 1; - super(); // error + super(); } } class Derived3 extends Base { constructor(public y: string) { - super(); // ok + super(); var a = 1; } } @@ -29,14 +29,14 @@ class Derived4 extends Base { a = 1; constructor(y: string) { var b = 2; - super(); // error + super(); } } class Derived5 extends Base { a = 1; constructor(y: string) { - super(); // ok + super(); var b = 2; } } @@ -46,7 +46,7 @@ class Derived6 extends Base { constructor(y: string) { this.a = 1; var b = 2; - super(); // error: "super" has to be called before "this" accessing + super(); } } @@ -56,7 +56,7 @@ class Derived7 extends Base { constructor(y: string) { this.a = 3; this.b = 3; - super(); // error + super(); } } @@ -64,7 +64,7 @@ class Derived8 extends Base { a = 1; b: number; constructor(y: string) { - super(); // ok + super(); this.a = 3; this.b = 3; } @@ -79,7 +79,7 @@ class Derived9 extends Base2 { constructor(y: string) { this.a = 3; this.b = 3; - super(); // error + super(); } } @@ -87,7 +87,7 @@ class Derived10 extends Base2 { a = 1; b: number; constructor(y: string) { - super(); // ok + super(); this.a = 3; this.b = 3; } diff --git a/tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassSuperProperties.ts b/tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassSuperProperties.ts new file mode 100644 index 0000000000000..ab580777d8e5b --- /dev/null +++ b/tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassSuperProperties.ts @@ -0,0 +1,403 @@ +// @experimentaldecorators: true +// @target: ES5 + +declare const decorate: any; + +class Base { + constructor(a?) { } + + receivesAnything(param?) { } +} + +class Derived1 extends Base { + prop = true; + constructor() { + super.receivesAnything(); + super(); + } +} + +class Derived2 extends Base { + prop = true; + constructor() { + super.receivesAnything(this); + super(); + } +} + +class Derived3 extends Base { + prop = true; + constructor() { + super.receivesAnything(); + super(this); + } +} + +class Derived4 extends Base { + prop = true; + constructor() { + super.receivesAnything(this); + super(this); + } +} + +class Derived5 extends Base { + prop = true; + constructor() { + super(); + super.receivesAnything(); + } +} + +class Derived6 extends Base { + prop = true; + constructor() { + super(this); + super.receivesAnything(); + } +} + +class Derived7 extends Base { + prop = true; + constructor() { + super(); + super.receivesAnything(this); + } +} + +class Derived8 extends Base { + prop = true; + constructor() { + super(this); + super.receivesAnything(this); + } +} + +class DerivedWithArrowFunction extends Base { + prop = true; + constructor() { + (() => this)(); + super(); + } +} + +class DerivedWithArrowFunctionParameter extends Base { + prop = true; + constructor() { + const lambda = (param = this) => {}; + super(); + } +} + +class DerivedWithDecoratorOnClass extends Base { + prop = true; + constructor() { + @decorate(this) + class InnerClass { } + + super(); + } +} + +class DerivedWithDecoratorOnClassMethod extends Base { + prop = true; + constructor() { + class InnerClass { + @decorate(this) + innerMethod() { } + } + + super(); + } +} + +class DerivedWithDecoratorOnClassProperty extends Base { + prop = true; + constructor() { + class InnerClass { + @decorate(this) + innerProp = true; + } + + super(); + } +} + +class DerivedWithFunctionDeclaration extends Base { + prop = true; + constructor() { + function declaration() { + return this; + } + super(); + } +} + +class DerivedWithFunctionDeclarationAndThisParam extends Base { + prop = true; + constructor() { + function declaration(param = this) { + return param; + } + super(); + } +} + +class DerivedWithFunctionExpression extends Base { + prop = true; + constructor() { + (function () { + return this; + })(); + super(); + } +} + +class DerivedWithParenthesis extends Base { + prop = true; + constructor() { + (super()); + } +} + +class DerivedWithParenthesisAfterStatement extends Base { + prop = true; + constructor() { + this.prop; + (super()); + } +} + +class DerivedWithParenthesisBeforeStatement extends Base { + prop = true; + constructor() { + (super()); + this.prop; + } +} + +class DerivedWithClassDeclaration extends Base { + prop = true; + constructor() { + class InnerClass { + private method() { + return this; + } + private property = 7; + constructor() { + this.property; + this.method(); + } + } + super(); + } +} + +class DerivedWithClassDeclarationExtendingMember extends Base { + memberClass = class { }; + constructor() { + class InnerClass extends this.memberClass { + private method() { + return this; + } + private property = 7; + constructor() { + super(); + this.property; + this.method(); + } + } + super(); + } +} + +class DerivedWithClassExpression extends Base { + prop = true; + constructor() { + console.log(class { + private method() { + return this; + } + private property = 7; + constructor() { + this.property; + this.method(); + } + }); + super(); + } +} + +class DerivedWithClassExpressionExtendingMember extends Base { + memberClass = class { }; + constructor() { + console.log(class extends this.memberClass { }); + super(); + } +} + +class DerivedWithDerivedClassExpression extends Base { + prop = true; + constructor() { + console.log(class extends Base { + constructor() { + super(); + } + public foo() { + return this; + } + public bar = () => this; + }); + super(); + } +} + +class DerivedWithNewDerivedClassExpression extends Base { + prop = true; + constructor() { + console.log(new class extends Base { + constructor() { + super(); + } + }()); + super(); + } +} + +class DerivedWithObjectAccessors extends Base { + prop = true; + constructor() { + const obj = { + get prop() { + return true; + }, + set prop(param) { + this._prop = param; + } + }; + super(); + } +} + +class DerivedWithObjectAccessorsUsingThisInKeys extends Base { + propName = "prop"; + constructor() { + const obj = { + _prop: "prop", + get [this.propName]() { + return true; + }, + set [this.propName](param) { + this._prop = param; + } + }; + super(); + } +} + +class DerivedWithObjectAccessorsUsingThisInBodies extends Base { + propName = "prop"; + constructor() { + const obj = { + _prop: "prop", + get prop() { + return this._prop; + }, + set prop(param) { + this._prop = param; + } + }; + super(); + } +} + +class DerivedWithObjectComputedPropertyBody extends Base { + propName = "prop"; + constructor() { + const obj = { + prop: this.propName, + }; + super(); + } +} + +class DerivedWithObjectComputedPropertyName extends Base { + propName = "prop"; + constructor() { + const obj = { + [this.propName]: true, + }; + super(); + } +} + +class DerivedWithObjectMethod extends Base { + prop = true; + constructor() { + const obj = { + getProp() { + return this; + }, + }; + super(); + } +} + +let a, b; + +const DerivedWithLoops = [ + class extends Base { + prop = true; + constructor() { + for(super();;) {} + } + }, + class extends Base { + prop = true; + constructor() { + for(a; super();) {} + } + }, + class extends Base { + prop = true; + constructor() { + for(a; b; super()) {} + } + }, + class extends Base { + prop = true; + constructor() { + for(; ; super()) { break; } + } + }, + class extends Base { + prop = true; + constructor() { + for (const x of super()) {} + } + }, + class extends Base { + prop = true; + constructor() { + while (super()) {} + } + }, + class extends Base { + prop = true; + constructor() { + do {} while (super()); + } + }, + class extends Base { + prop = true; + constructor() { + if (super()) {} + } + }, + class extends Base { + prop = true; + constructor() { + switch (super()) {} + } + }, +] diff --git a/tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassSuperStatementPosition.ts b/tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassSuperStatementPosition.ts new file mode 100644 index 0000000000000..b58c6c1574080 --- /dev/null +++ b/tests/cases/conformance/classes/constructorDeclarations/superCalls/derivedClassSuperStatementPosition.ts @@ -0,0 +1,97 @@ +// @target: ES5 + +class DerivedBasic extends Object { + prop = 1; + constructor() { + super(); + } +} + +class DerivedAfterParameterDefault extends Object { + x1: boolean; + x2: boolean; + constructor(x = false) { + this.x1 = x; + super(x); + this.x2 = x; + } +} + +class DerivedAfterRestParameter extends Object { + x1: boolean[]; + x2: boolean[]; + constructor(...x: boolean[]) { + this.x1 = x; + super(x); + this.x2 = x; + } +} + +class DerivedComments extends Object { + x: any; + constructor() { + // c1 + console.log(); // c2 + // c3 + super(); // c4 + // c5 + this.x = null; // c6 + // c7 + } +} + +class DerivedCommentsInvalidThis extends Object { + x: any; + constructor() { + // c0 + this; + // c1 + console.log(); // c2 + // c3 + super(); // c4 + // c5 + this.x = null; // c6 + // c7 + } +} + +class DerivedInConditional extends Object { + prop = 1; + constructor() { + Math.random() + ? super(1) + : super(0); + } +} + +class DerivedInIf extends Object { + prop = 1; + constructor() { + if (Math.random()) { + super(1); + } + else { + super(0); + } + } +} + +class DerivedInBlockWithProperties extends Object { + prop = 1; + constructor(private paramProp = 2) { + { + super(); + } + } +} + +class DerivedInConditionalWithProperties extends Object { + prop = 1; + constructor(private paramProp = 2) { + if (Math.random()) { + super(1); + } else { + super(0); + } + } +} diff --git a/tests/cases/conformance/classes/members/instanceAndStaticMembers/superInStaticMembers1.ts b/tests/cases/conformance/classes/members/instanceAndStaticMembers/superInStaticMembers1.ts index fd281b1606a52..e716307be1171 100644 --- a/tests/cases/conformance/classes/members/instanceAndStaticMembers/superInStaticMembers1.ts +++ b/tests/cases/conformance/classes/members/instanceAndStaticMembers/superInStaticMembers1.ts @@ -1,4 +1,4 @@ -// @target: es5, es2015, es2021, esnext +// @target: es5, es2015, es2021, es2022, esnext // @noTypesAndSymbols: true // @filename: external.ts diff --git a/tests/cases/conformance/classes/members/instanceAndStaticMembers/thisAndSuperInStaticMembers1.ts b/tests/cases/conformance/classes/members/instanceAndStaticMembers/thisAndSuperInStaticMembers1.ts index e3bfff9aedfab..cc70f49d0f189 100644 --- a/tests/cases/conformance/classes/members/instanceAndStaticMembers/thisAndSuperInStaticMembers1.ts +++ b/tests/cases/conformance/classes/members/instanceAndStaticMembers/thisAndSuperInStaticMembers1.ts @@ -1,4 +1,4 @@ -// @target: esnext, es2015 +// @target: esnext, es2022, es2015 // @useDefineForClassFields: true // @noTypesAndSymbols: true @@ -39,4 +39,4 @@ class C extends B { x = 1; y = this.x; z = super.f(); -} \ No newline at end of file +} diff --git a/tests/cases/conformance/classes/members/instanceAndStaticMembers/thisAndSuperInStaticMembers2.ts b/tests/cases/conformance/classes/members/instanceAndStaticMembers/thisAndSuperInStaticMembers2.ts index 7e751c3d672a4..513f1c5afa9eb 100644 --- a/tests/cases/conformance/classes/members/instanceAndStaticMembers/thisAndSuperInStaticMembers2.ts +++ b/tests/cases/conformance/classes/members/instanceAndStaticMembers/thisAndSuperInStaticMembers2.ts @@ -1,4 +1,4 @@ -// @target: esnext, es2015 +// @target: esnext, es2022, es2015 // @useDefineForClassFields: false // @noTypesAndSymbols: true @@ -39,4 +39,4 @@ class C extends B { x = 1; y = this.x; z = super.f(); -} \ No newline at end of file +} diff --git a/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers10.ts b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers10.ts index bb458c87d29a1..c56ac97ddbd82 100644 --- a/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers10.ts +++ b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers10.ts @@ -1,4 +1,4 @@ -// @target: esnext, es6, es5 +// @target: esnext, es2022, es6, es5 // @experimentalDecorators: true // @useDefineForClassFields: false diff --git a/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers11.ts b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers11.ts index 6c4025bc4707e..0cac84a08b8fc 100644 --- a/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers11.ts +++ b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers11.ts @@ -1,4 +1,4 @@ -// @target: esnext, es6, es5 +// @target: esnext, es2022, es6, es5 // @experimentalDecorators: true // @useDefineForClassFields: true diff --git a/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers12.ts b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers12.ts index 041089512bfa8..328612b48bd61 100644 --- a/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers12.ts +++ b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers12.ts @@ -1,4 +1,4 @@ -// @target: esnext, es6, es5 +// @target: esnext, es2022, es6, es5 // @useDefineForClassFields: false class C { diff --git a/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers13.ts b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers13.ts index 6c965e0e2d55f..18780b0ff52d7 100644 --- a/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers13.ts +++ b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers13.ts @@ -1,4 +1,4 @@ -// @target: esnext, es6, es5 +// @target: esnext, es2022, es6, es5 // @useDefineForClassFields: true class C { diff --git a/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers3.ts b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers3.ts index 27541ce361dbd..1f532ad9c6d38 100644 --- a/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers3.ts +++ b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers3.ts @@ -1,4 +1,4 @@ -// @target: esnext, es6, es5 +// @target: esnext, es2022, es6, es5 // @useDefineForClassFields: false class C { static a = 1; diff --git a/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers4.ts b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers4.ts index 0d08423bb9ce1..facb155189a47 100644 --- a/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers4.ts +++ b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers4.ts @@ -1,4 +1,4 @@ -// @target: esnext, es6, es5 +// @target: esnext, es2022, es6, es5 // @useDefineForClassFields: true class C { static a = 1; diff --git a/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers5.ts b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers5.ts index db6e8a76c6499..a6f035176492e 100644 --- a/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers5.ts +++ b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers5.ts @@ -1,4 +1,4 @@ -// @target: esnext, es6, es5 +// @target: esnext, es2022, es6, es5 class C { static create = () => new this("yep") diff --git a/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers7.ts b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers7.ts index 1a2d9cd2e20eb..f6d01a83094ef 100644 --- a/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers7.ts +++ b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers7.ts @@ -1,4 +1,4 @@ -// @target: esnext, es6, es5 +// @target: esnext, es2022, es6, es5 class C { static a = 1; diff --git a/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers8.ts b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers8.ts index 8b26476f143cf..c9836d3b6fe4d 100644 --- a/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers8.ts +++ b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers8.ts @@ -1,4 +1,4 @@ -// @target: esnext, es6, es5 +// @target: esnext, es2022, es6, es5 class C { static f = 1; diff --git a/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers9.ts b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers9.ts index 0a648d2fa08a1..db65e5651d305 100644 --- a/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers9.ts +++ b/tests/cases/conformance/classes/members/instanceAndStaticMembers/typeOfThisInStaticMembers9.ts @@ -1,4 +1,4 @@ -// @target: esnext, es6, es5 +// @target: esnext, es2022, es6, es5 class C { static f = 1 diff --git a/tests/cases/conformance/classes/members/privateNames/privateNameAndStaticInitializer.ts b/tests/cases/conformance/classes/members/privateNames/privateNameAndStaticInitializer.ts index 5dab0f08fed5c..d71b117af3459 100644 --- a/tests/cases/conformance/classes/members/privateNames/privateNameAndStaticInitializer.ts +++ b/tests/cases/conformance/classes/members/privateNames/privateNameAndStaticInitializer.ts @@ -1,4 +1,4 @@ -// @target: esnext, es2015 +// @target: esnext, es2022, es2015 class A { #foo = 1; diff --git a/tests/cases/conformance/classes/members/privateNames/privateNameBadSuper.ts b/tests/cases/conformance/classes/members/privateNames/privateNameBadSuper.ts index 5e31c50599e31..b3930010db77b 100644 --- a/tests/cases/conformance/classes/members/privateNames/privateNameBadSuper.ts +++ b/tests/cases/conformance/classes/members/privateNames/privateNameBadSuper.ts @@ -1,9 +1,9 @@ // @target: es2015 class B {}; class A extends B { - #x; - constructor() { - void 0; // Error: 'super' call must come first - super(); - } + #x; + constructor() { + this; + super(); + } } \ No newline at end of file diff --git a/tests/cases/conformance/classes/members/privateNames/privateNameBadSuperUseDefineForClassFields.ts b/tests/cases/conformance/classes/members/privateNames/privateNameBadSuperUseDefineForClassFields.ts index 984b65a56957e..bb110342444b3 100644 --- a/tests/cases/conformance/classes/members/privateNames/privateNameBadSuperUseDefineForClassFields.ts +++ b/tests/cases/conformance/classes/members/privateNames/privateNameBadSuperUseDefineForClassFields.ts @@ -1,10 +1,10 @@ -// @target: esnext +// @target: esnext, es2022 // @useDefineForClassFields: true class B {}; class A extends B { - #x; - constructor() { - void 0; // Error: 'super' call must come first - super(); - } + #x; + constructor() { + this; + super(); + } } diff --git a/tests/cases/conformance/classes/members/privateNames/privateNameComputedPropertyName1.ts b/tests/cases/conformance/classes/members/privateNames/privateNameComputedPropertyName1.ts index 109985cb33c98..c17605b43cd1d 100644 --- a/tests/cases/conformance/classes/members/privateNames/privateNameComputedPropertyName1.ts +++ b/tests/cases/conformance/classes/members/privateNames/privateNameComputedPropertyName1.ts @@ -1,4 +1,4 @@ -// @target: esnext, es2015 +// @target: esnext, es2022, es2015 class A { #a = 'a'; diff --git a/tests/cases/conformance/classes/members/privateNames/privateNameComputedPropertyName2.ts b/tests/cases/conformance/classes/members/privateNames/privateNameComputedPropertyName2.ts index a2e0a3e302541..c380f49f43213 100644 --- a/tests/cases/conformance/classes/members/privateNames/privateNameComputedPropertyName2.ts +++ b/tests/cases/conformance/classes/members/privateNames/privateNameComputedPropertyName2.ts @@ -1,4 +1,4 @@ -// @target: esnext, es2015 +// @target: esnext, es2022, es2015 let getX: (a: A) => number; diff --git a/tests/cases/conformance/classes/members/privateNames/privateNameComputedPropertyName3.ts b/tests/cases/conformance/classes/members/privateNames/privateNameComputedPropertyName3.ts index 09573f98c91b3..e6639b6bc711e 100644 --- a/tests/cases/conformance/classes/members/privateNames/privateNameComputedPropertyName3.ts +++ b/tests/cases/conformance/classes/members/privateNames/privateNameComputedPropertyName3.ts @@ -1,4 +1,4 @@ -// @target: esnext, es2015 +// @target: esnext, es2022, es2015 class Foo { #name; diff --git a/tests/cases/conformance/classes/members/privateNames/privateNameComputedPropertyName4.ts b/tests/cases/conformance/classes/members/privateNames/privateNameComputedPropertyName4.ts index e20efa4646f8f..a4b92a1341d50 100644 --- a/tests/cases/conformance/classes/members/privateNames/privateNameComputedPropertyName4.ts +++ b/tests/cases/conformance/classes/members/privateNames/privateNameComputedPropertyName4.ts @@ -1,4 +1,4 @@ -// @target: esnext, es2015 +// @target: esnext, es2022, es2015 // @useDefineForClassFields: true // @noTypesAndSymbols: true // https://github.com/microsoft/TypeScript/issues/44113 diff --git a/tests/cases/conformance/classes/members/privateNames/privateNameFieldDestructuredBinding.ts b/tests/cases/conformance/classes/members/privateNames/privateNameFieldDestructuredBinding.ts index 7dc2b944c3735..a4a5a8afa979f 100644 --- a/tests/cases/conformance/classes/members/privateNames/privateNameFieldDestructuredBinding.ts +++ b/tests/cases/conformance/classes/members/privateNames/privateNameFieldDestructuredBinding.ts @@ -1,4 +1,4 @@ -// @target: esnext, es2015 +// @target: esnext, es2022, es2015 class A { #field = 1; diff --git a/tests/cases/conformance/classes/members/privateNames/privateNameFieldsESNext.ts b/tests/cases/conformance/classes/members/privateNames/privateNameFieldsESNext.ts index b57a1cd65923b..54035233239f1 100644 --- a/tests/cases/conformance/classes/members/privateNames/privateNameFieldsESNext.ts +++ b/tests/cases/conformance/classes/members/privateNames/privateNameFieldsESNext.ts @@ -1,4 +1,4 @@ -// @target: esnext +// @target: esnext, es2022 // @useDefineForClassFields: false class C { diff --git a/tests/cases/conformance/classes/members/privateNames/privateNameInInExpression.ts b/tests/cases/conformance/classes/members/privateNames/privateNameInInExpression.ts index e274378150990..cc8c876e81f3a 100644 --- a/tests/cases/conformance/classes/members/privateNames/privateNameInInExpression.ts +++ b/tests/cases/conformance/classes/members/privateNames/privateNameInInExpression.ts @@ -1,5 +1,5 @@ // @strict: true -// @target: esnext +// @target: esnext, es2022 // @useDefineForClassFields: true class Foo { diff --git a/tests/cases/conformance/classes/members/privateNames/privateNameInInExpressionTransform.ts b/tests/cases/conformance/classes/members/privateNames/privateNameInInExpressionTransform.ts index f7be176373a5e..2ff682d039426 100644 --- a/tests/cases/conformance/classes/members/privateNames/privateNameInInExpressionTransform.ts +++ b/tests/cases/conformance/classes/members/privateNames/privateNameInInExpressionTransform.ts @@ -1,4 +1,4 @@ -// @target: esnext, es2020 +// @target: esnext, es2022, es2020 class Foo { #field = 1; diff --git a/tests/cases/conformance/classes/members/privateNames/privateNameInInExpressionUnused.ts b/tests/cases/conformance/classes/members/privateNames/privateNameInInExpressionUnused.ts index 4b214a2b9e78f..35fdacb38795a 100644 --- a/tests/cases/conformance/classes/members/privateNames/privateNameInInExpressionUnused.ts +++ b/tests/cases/conformance/classes/members/privateNames/privateNameInInExpressionUnused.ts @@ -1,6 +1,6 @@ // @strict: true // @noUnusedLocals: true -// @target: esnext +// @target: esnext, es2022 class Foo { #unused: undefined; // expect unused error diff --git a/tests/cases/conformance/classes/members/privateNames/privateNameInTypeQuery.ts b/tests/cases/conformance/classes/members/privateNames/privateNameInTypeQuery.ts new file mode 100644 index 0000000000000..3a7e966130ae9 --- /dev/null +++ b/tests/cases/conformance/classes/members/privateNames/privateNameInTypeQuery.ts @@ -0,0 +1,14 @@ +// @strict: true +// @target: esnext + +class C { + #a = 'a'; + + constructor() { + const a: typeof this.#a = ''; // Ok + const b: typeof this.#a = 1; // Error + } +} + +const c = new C(); +const a: typeof c.#a = ''; diff --git a/tests/cases/conformance/classes/members/privateNames/privateNameLateSuper.ts b/tests/cases/conformance/classes/members/privateNames/privateNameLateSuper.ts new file mode 100644 index 0000000000000..5bc814b9ff87d --- /dev/null +++ b/tests/cases/conformance/classes/members/privateNames/privateNameLateSuper.ts @@ -0,0 +1,9 @@ +// @target: es2015 +class B {} +class A extends B { + #x; + constructor() { + void 0; + super(); + } +} diff --git a/tests/cases/conformance/classes/members/privateNames/privateNameLateSuperUseDefineForClassFields.ts b/tests/cases/conformance/classes/members/privateNames/privateNameLateSuperUseDefineForClassFields.ts new file mode 100644 index 0000000000000..7cee8f089c632 --- /dev/null +++ b/tests/cases/conformance/classes/members/privateNames/privateNameLateSuperUseDefineForClassFields.ts @@ -0,0 +1,10 @@ +// @target: esnext, es2022 +// @useDefineForClassFields: true +class B {} +class A extends B { + #x; + constructor() { + void 0; + super(); + } +} diff --git a/tests/cases/conformance/classes/members/privateNames/privateNameStaticAndStaticInitializer.ts b/tests/cases/conformance/classes/members/privateNames/privateNameStaticAndStaticInitializer.ts index e4cd9be2c4428..c0035ef631947 100644 --- a/tests/cases/conformance/classes/members/privateNames/privateNameStaticAndStaticInitializer.ts +++ b/tests/cases/conformance/classes/members/privateNames/privateNameStaticAndStaticInitializer.ts @@ -1,4 +1,4 @@ -// @target: esnext, es2015 +// @target: esnext, es2022, es2015 // @useDefineForClassFields: false class A { diff --git a/tests/cases/conformance/classes/members/privateNames/privateNameStaticFieldDestructuredBinding.ts b/tests/cases/conformance/classes/members/privateNames/privateNameStaticFieldDestructuredBinding.ts index 77482c675eb22..1c7b7f9b98187 100644 --- a/tests/cases/conformance/classes/members/privateNames/privateNameStaticFieldDestructuredBinding.ts +++ b/tests/cases/conformance/classes/members/privateNames/privateNameStaticFieldDestructuredBinding.ts @@ -1,4 +1,4 @@ -// @target: esnext, es2015 +// @target: esnext, es2022, es2015 // @useDefineForClassFields: false class A { diff --git a/tests/cases/conformance/classes/members/privateNames/privateNameStaticFieldInitializer.ts b/tests/cases/conformance/classes/members/privateNames/privateNameStaticFieldInitializer.ts index b9aaaf872bf55..93763c9608e7d 100644 --- a/tests/cases/conformance/classes/members/privateNames/privateNameStaticFieldInitializer.ts +++ b/tests/cases/conformance/classes/members/privateNames/privateNameStaticFieldInitializer.ts @@ -1,4 +1,4 @@ -// @target: es2015, esnext +// @target: es2015, es2022, esnext // @useDefineForClassFields: false class A { diff --git a/tests/cases/conformance/classes/members/privateNames/privateNameStaticFieldNoInitializer.ts b/tests/cases/conformance/classes/members/privateNames/privateNameStaticFieldNoInitializer.ts index 815a5d40f632e..f596214129e05 100644 --- a/tests/cases/conformance/classes/members/privateNames/privateNameStaticFieldNoInitializer.ts +++ b/tests/cases/conformance/classes/members/privateNames/privateNameStaticFieldNoInitializer.ts @@ -1,4 +1,4 @@ -// @target: es2015, esnext +// @target: es2015, es2022, esnext const C = class { static #x; @@ -6,4 +6,4 @@ const C = class { class C2 { static #x; -} \ No newline at end of file +} diff --git a/tests/cases/conformance/classes/members/privateNames/privateNameStaticsAndStaticMethods.ts b/tests/cases/conformance/classes/members/privateNames/privateNameStaticsAndStaticMethods.ts index 94692964927e7..44f16f28dbf24 100644 --- a/tests/cases/conformance/classes/members/privateNames/privateNameStaticsAndStaticMethods.ts +++ b/tests/cases/conformance/classes/members/privateNames/privateNameStaticsAndStaticMethods.ts @@ -1,6 +1,6 @@ // @strict: true -// @target: esnext -// @lib: esnext +// @target: esnext, es2022 +// @lib: esnext, es2022 // @useDefineForClassFields: false class A { @@ -14,7 +14,7 @@ class A { return this.#_quux; } static set #quux (val: number) { - this.#_quux = val; + this.#_quux = val; } constructor () { A.#foo(30); diff --git a/tests/cases/conformance/classes/members/privateNames/privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts b/tests/cases/conformance/classes/members/privateNames/privateNameWhenNotUseDefineForClassFieldsInEsNext.ts similarity index 52% rename from tests/cases/conformance/classes/members/privateNames/privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts rename to tests/cases/conformance/classes/members/privateNames/privateNameWhenNotUseDefineForClassFieldsInEsNext.ts index 0da07902fc137..b9a2b2d1d65c7 100644 --- a/tests/cases/conformance/classes/members/privateNames/privateNameErrorsOnNotUseDefineForClassFieldsInEsNext.ts +++ b/tests/cases/conformance/classes/members/privateNames/privateNameWhenNotUseDefineForClassFieldsInEsNext.ts @@ -2,54 +2,54 @@ // @target: esNext,es2020 // @useDefineForClassFields: false -class TestWithErrors { - #prop = 0 - static dd = new TestWithErrors().#prop; // Err +class TestWithStatics { + #prop = 0 + static dd = new TestWithStatics().#prop; // OK static ["X_ z_ zz"] = class Inner { - #foo = 10 + #foo = 10 m() { - new TestWithErrors().#prop // Err + new TestWithStatics().#prop // OK } static C = class InnerInner { m() { - new TestWithErrors().#prop // Err - new Inner().#foo; // Err + new TestWithStatics().#prop // OK + new Inner().#foo; // OK } } static M(){ return class { m() { - new TestWithErrors().#prop // Err + new TestWithStatics().#prop // OK new Inner().#foo; // OK } } - } + } } } -class TestNoErrors { - #prop = 0 - dd = new TestNoErrors().#prop; // OK +class TestNonStatics { + #prop = 0 + dd = new TestNonStatics().#prop; // OK ["X_ z_ zz"] = class Inner { - #foo = 10 + #foo = 10 m() { - new TestNoErrors().#prop // Ok + new TestNonStatics().#prop // Ok } C = class InnerInner { m() { - new TestNoErrors().#prop // Ok + new TestNonStatics().#prop // Ok new Inner().#foo; // Ok } } - + static M(){ return class { m() { - new TestNoErrors().#prop // OK + new TestNonStatics().#prop // OK new Inner().#foo; // OK } } - } + } } - } \ No newline at end of file +} \ No newline at end of file diff --git a/tests/cases/conformance/classes/members/privateNames/privateNamesAndMethods.ts b/tests/cases/conformance/classes/members/privateNames/privateNamesAndMethods.ts index d1c91d2736854..27c0cf68b92b2 100644 --- a/tests/cases/conformance/classes/members/privateNames/privateNamesAndMethods.ts +++ b/tests/cases/conformance/classes/members/privateNames/privateNamesAndMethods.ts @@ -1,5 +1,5 @@ -// @target: esnext -// @lib: esnext +// @target: esnext, es2022 +// @lib: esnext, es2022 // @useDefineForClassFields: false class A { @@ -13,7 +13,7 @@ class A { return this.#_quux; } set #quux (val: number) { - this.#_quux = val; + this.#_quux = val; } constructor () { this.#foo(30); diff --git a/tests/cases/conformance/classes/members/privateNames/privateNamesAndStaticMethods.ts b/tests/cases/conformance/classes/members/privateNames/privateNamesAndStaticMethods.ts index 94692964927e7..44f16f28dbf24 100644 --- a/tests/cases/conformance/classes/members/privateNames/privateNamesAndStaticMethods.ts +++ b/tests/cases/conformance/classes/members/privateNames/privateNamesAndStaticMethods.ts @@ -1,6 +1,6 @@ // @strict: true -// @target: esnext -// @lib: esnext +// @target: esnext, es2022 +// @lib: esnext, es2022 // @useDefineForClassFields: false class A { @@ -14,7 +14,7 @@ class A { return this.#_quux; } static set #quux (val: number) { - this.#_quux = val; + this.#_quux = val; } constructor () { A.#foo(30); diff --git a/tests/cases/conformance/classes/members/privateNames/privateNamesAssertion.ts b/tests/cases/conformance/classes/members/privateNames/privateNamesAssertion.ts index 422c1bc9855a9..c2c34ad016acc 100644 --- a/tests/cases/conformance/classes/members/privateNames/privateNamesAssertion.ts +++ b/tests/cases/conformance/classes/members/privateNames/privateNamesAssertion.ts @@ -1,5 +1,5 @@ // @strict: true -// @target: esnext +// @target: esnext, es2022 // @useDefineForClassFields: false class Foo { diff --git a/tests/cases/conformance/classes/propertyMemberDeclarations/strictPropertyInitialization.ts b/tests/cases/conformance/classes/propertyMemberDeclarations/strictPropertyInitialization.ts index 7b0da5059b30a..3caf731626494 100644 --- a/tests/cases/conformance/classes/propertyMemberDeclarations/strictPropertyInitialization.ts +++ b/tests/cases/conformance/classes/propertyMemberDeclarations/strictPropertyInitialization.ts @@ -1,5 +1,5 @@ // @strict: true -// @target:es2015 +// @target: es2015 // @declaration: true // Properties with non-undefined types require initialization @@ -135,3 +135,18 @@ class C11 { this.#b = someValue(); } } + +const a = 'a'; +const b = Symbol(); + +class C12 { + [a]: number; + [b]: number; + ['c']: number; + + constructor() { + this[a] = 1; + this[b] = 1; + this['c'] = 1; + } +} diff --git a/tests/cases/conformance/controlFlow/controlFlowGenericTypes.ts b/tests/cases/conformance/controlFlow/controlFlowGenericTypes.ts index f2cac082f5e9b..3e67f3247da3d 100644 --- a/tests/cases/conformance/controlFlow/controlFlowGenericTypes.ts +++ b/tests/cases/conformance/controlFlow/controlFlowGenericTypes.ts @@ -191,3 +191,23 @@ class SqlTable { this.validateRow(row); } } + +// Repro from #46495 + +interface Button { + type: "button"; + text: string; +} + +interface Checkbox { + type: "checkbox"; + isChecked: boolean; +} + +type Control = Button | Checkbox; + +function update(control : T | undefined, key: K, value: T[K]): void { + if (control !== undefined) { + control[key] = value; + } +} diff --git a/tests/cases/conformance/controlFlow/dependentDestructuredVariables.ts b/tests/cases/conformance/controlFlow/dependentDestructuredVariables.ts new file mode 100644 index 0000000000000..b56045e7ec061 --- /dev/null +++ b/tests/cases/conformance/controlFlow/dependentDestructuredVariables.ts @@ -0,0 +1,314 @@ +// @strict: true +// @declaration: true +// @target: es2015 +// @lib: esnext, dom + +type Action = + | { kind: 'A', payload: number } + | { kind: 'B', payload: string }; + +function f10({ kind, payload }: Action) { + if (kind === 'A') { + payload.toFixed(); + } + if (kind === 'B') { + payload.toUpperCase(); + } +} + +function f11(action: Action) { + const { kind, payload } = action; + if (kind === 'A') { + payload.toFixed(); + } + if (kind === 'B') { + payload.toUpperCase(); + } +} + +function f12({ kind, payload }: Action) { + switch (kind) { + case 'A': + payload.toFixed(); + break; + case 'B': + payload.toUpperCase(); + break; + default: + payload; // never + } +} + +type Action2 = + | { kind: 'A', payload: number | undefined } + | { kind: 'B', payload: string | undefined }; + +function f20({ kind, payload }: Action2) { + if (payload) { + if (kind === 'A') { + payload.toFixed(); + } + if (kind === 'B') { + payload.toUpperCase(); + } + } +} + +function f21(action: Action2) { + const { kind, payload } = action; + if (payload) { + if (kind === 'A') { + payload.toFixed(); + } + if (kind === 'B') { + payload.toUpperCase(); + } + } +} + +function f22(action: Action2) { + if (action.payload) { + const { kind, payload } = action; + if (kind === 'A') { + payload.toFixed(); + } + if (kind === 'B') { + payload.toUpperCase(); + } + } +} + +function f23({ kind, payload }: Action2) { + if (payload) { + switch (kind) { + case 'A': + payload.toFixed(); + break; + case 'B': + payload.toUpperCase(); + break; + default: + payload; // never + } + } +} + +type Foo = + | { kind: 'A', isA: true } + | { kind: 'B', isA: false } + | { kind: 'C', isA: false }; + +function f30({ kind, isA }: Foo) { + if (kind === 'A') { + isA; // true + } + if (kind === 'B') { + isA; // false + } + if (kind === 'C') { + isA; // false + } + if (isA) { + kind; // 'A' + } + else { + kind; // 'B' | 'C' + } +} + +type Args = ['A', number] | ['B', string] + +function f40(...[kind, data]: Args) { + if (kind === 'A') { + data.toFixed(); + } + if (kind === 'B') { + data.toUpperCase(); + } +} + +// Repro from #35283 + +interface A { variant: 'a', value: T } + +interface B { variant: 'b', value: Array } + +type AB = A | B; + +declare function printValue(t: T): void; + +declare function printValueList(t: Array): void; + +function unrefined1(ab: AB): void { + const { variant, value } = ab; + if (variant === 'a') { + printValue(value); + } + else { + printValueList(value); + } +} + +// Repro from #38020 + +type Action3 = + | {type: 'add', payload: { toAdd: number } } + | {type: 'remove', payload: { toRemove: number } }; + +const reducerBroken = (state: number, { type, payload }: Action3) => { + switch (type) { + case 'add': + return state + payload.toAdd; + case 'remove': + return state - payload.toRemove; + } +} + +// Repro from #46143 + +declare var it: Iterator; +const { value, done } = it.next(); +if (!done) { + value; // number +} + +// Repro from #46658 + +declare function f50(cb: (...args: Args) => void): void + +f50((kind, data) => { + if (kind === 'A') { + data.toFixed(); + } + if (kind === 'B') { + data.toUpperCase(); + } +}); + +const f51: (...args: ['A', number] | ['B', string]) => void = (kind, payload) => { + if (kind === 'A') { + payload.toFixed(); + } + if (kind === 'B') { + payload.toUpperCase(); + } +}; + +const f52: (...args: ['A', number] | ['B']) => void = (kind, payload?) => { + if (kind === 'A') { + payload.toFixed(); + } + else { + payload; // undefined + } +}; + +declare function readFile(path: string, callback: (...args: [err: null, data: unknown[]] | [err: Error, data: undefined]) => void): void; + +readFile('hello', (err, data) => { + if (err === null) { + data.length; + } + else { + err.message; + } +}); + +type ReducerArgs = ["add", { a: number, b: number }] | ["concat", { firstArr: any[], secondArr: any[] }]; + +const reducer: (...args: ReducerArgs) => void = (op, args) => { + switch (op) { + case "add": + console.log(args.a + args.b); + break; + case "concat": + console.log(args.firstArr.concat(args.secondArr)); + break; + } +} + +reducer("add", { a: 1, b: 3 }); +reducer("concat", { firstArr: [1, 2], secondArr: [3, 4] }); + +// repro from https://github.com/microsoft/TypeScript/pull/47190#issuecomment-1057603588 + +type FooMethod = { + method(...args: + [type: "str", cb: (e: string) => void] | + [type: "num", cb: (e: number) => void] + ): void; +} + +let fooM: FooMethod = { + method(type, cb) { + if (type == 'num') { + cb(123) + } else { + cb("abc") + } + } +}; + +type FooAsyncMethod = { + method(...args: + [type: "str", cb: (e: string) => void] | + [type: "num", cb: (e: number) => void] + ): Promise; +} + +let fooAsyncM: FooAsyncMethod = { + async method(type, cb) { + if (type == 'num') { + cb(123) + } else { + cb("abc") + } + } +}; + +type FooGenMethod = { + method(...args: + [type: "str", cb: (e: string) => void] | + [type: "num", cb: (e: number) => void] + ): Generator; +} + +let fooGenM: FooGenMethod = { + *method(type, cb) { + if (type == 'num') { + cb(123) + } else { + cb("abc") + } + } +}; + +type FooAsyncGenMethod = { + method(...args: + [type: "str", cb: (e: string) => void] | + [type: "num", cb: (e: number) => void] + ): AsyncGenerator; +} + +let fooAsyncGenM: FooAsyncGenMethod = { + async *method(type, cb) { + if (type == 'num') { + cb(123) + } else { + cb("abc") + } + } +}; + +// Repro from #48345 + +type Func = (...args: T) => void; + +const f60: Func = (kind, payload) => { + if (kind === "a") { + payload.toFixed(); // error + } + if (kind === "b") { + payload.toUpperCase(); // error + } +}; diff --git a/tests/cases/conformance/decorators/class/property/decoratorOnClassProperty12.ts b/tests/cases/conformance/decorators/class/property/decoratorOnClassProperty12.ts new file mode 100644 index 0000000000000..fb8841df243b4 --- /dev/null +++ b/tests/cases/conformance/decorators/class/property/decoratorOnClassProperty12.ts @@ -0,0 +1,9 @@ +// @target: es5 +// @experimentaldecorators: true +// @emitdecoratormetadata: true +declare function dec(): (target: any, propertyKey: string) => void; + +class A { + @dec() + foo: `${string}` +} diff --git a/tests/cases/conformance/decorators/decoratorInAmbientContext.ts b/tests/cases/conformance/decorators/decoratorInAmbientContext.ts new file mode 100644 index 0000000000000..19fce20a5b42b --- /dev/null +++ b/tests/cases/conformance/decorators/decoratorInAmbientContext.ts @@ -0,0 +1,10 @@ +// @target: esnext +// @experimentalDecorators: true + +declare function decorator(target: any, key: any): any; + +const b = Symbol('b'); +class Foo { + @decorator declare a: number; + @decorator declare [b]: number; +} diff --git a/tests/cases/conformance/es2020/es2020IntlAPIs.ts b/tests/cases/conformance/es2020/es2020IntlAPIs.ts index 464ecc01ecf6a..70c52a0de3d3f 100644 --- a/tests/cases/conformance/es2020/es2020IntlAPIs.ts +++ b/tests/cases/conformance/es2020/es2020IntlAPIs.ts @@ -42,4 +42,7 @@ console.log(regionNamesInTraditionalChinese.of('US')); const locales1 = ['ban', 'id-u-co-pinyin', 'de-ID']; const options1 = { localeMatcher: 'lookup' } as const; -console.log(Intl.DisplayNames.supportedLocalesOf(locales1, options1).join(', ')); \ No newline at end of file +console.log(Intl.DisplayNames.supportedLocalesOf(locales1, options1).join(', ')); + +new Intl.Locale(); // should error +new Intl.Locale(new Intl.Locale('en-US')); \ No newline at end of file diff --git a/tests/cases/conformance/es2020/localesObjectArgument.ts b/tests/cases/conformance/es2020/localesObjectArgument.ts new file mode 100644 index 0000000000000..a89e22ba91de7 --- /dev/null +++ b/tests/cases/conformance/es2020/localesObjectArgument.ts @@ -0,0 +1,22 @@ +// @target: es2020 + +const enUS = new Intl.Locale("en-US"); +const deDE = new Intl.Locale("de-DE"); +const jaJP = new Intl.Locale("ja-JP"); + +const now = new Date(); +const num = 1000; +const bigint = 123456789123456789n; + +now.toLocaleString(enUS); +now.toLocaleDateString(enUS); +now.toLocaleTimeString(enUS); +now.toLocaleString([deDE, jaJP]); +now.toLocaleDateString([deDE, jaJP]); +now.toLocaleTimeString([deDE, jaJP]); + +num.toLocaleString(enUS); +num.toLocaleString([deDE, jaJP]); + +bigint.toLocaleString(enUS); +bigint.toLocaleString([deDE, jaJP]); diff --git a/tests/cases/compiler/numberFormatCurrencySign.ts b/tests/cases/conformance/es2020/numberFormatCurrencySign.ts similarity index 70% rename from tests/cases/compiler/numberFormatCurrencySign.ts rename to tests/cases/conformance/es2020/numberFormatCurrencySign.ts index ee70de4a9b7ec..b7b451150d09d 100644 --- a/tests/cases/compiler/numberFormatCurrencySign.ts +++ b/tests/cases/conformance/es2020/numberFormatCurrencySign.ts @@ -1 +1,4 @@ +// @target: esnext +// @lib: esnext +// @strict: true const str = new Intl.NumberFormat('en-NZ', { style: 'currency', currency: 'NZD', currencySign: 'accounting' }).format(999999); diff --git a/tests/cases/conformance/es2020/numberFormatCurrencySignResolved.ts b/tests/cases/conformance/es2020/numberFormatCurrencySignResolved.ts new file mode 100644 index 0000000000000..ce6c36fb19fe1 --- /dev/null +++ b/tests/cases/conformance/es2020/numberFormatCurrencySignResolved.ts @@ -0,0 +1,5 @@ +// @target: esnext +// @lib: esnext +// @strict: true +const options = new Intl.NumberFormat('en-NZ', { style: 'currency', currency: 'NZD', currencySign: 'accounting' }).resolvedOptions(); +const currencySign = options.currencySign; diff --git a/tests/cases/conformance/es6/Symbols/symbolProperty61.ts b/tests/cases/conformance/es6/Symbols/symbolProperty61.ts new file mode 100644 index 0000000000000..ff44c91714a21 --- /dev/null +++ b/tests/cases/conformance/es6/Symbols/symbolProperty61.ts @@ -0,0 +1,32 @@ +// @target: ES6 +// @declaration: true + +declare global { + interface SymbolConstructor { + readonly obs: symbol + } +} + +const observable: typeof Symbol.obs = Symbol.obs + +export class MyObservable { + constructor(private _val: T) {} + + subscribe(next: (val: T) => void) { + next(this._val) + } + + [observable]() { + return this + } +} + +type InteropObservable = { + [Symbol.obs]: () => { subscribe(next: (val: T) => void): void } +} + +function from(obs: InteropObservable) { + return obs[Symbol.obs]() +} + +from(new MyObservable(42)) diff --git a/tests/cases/conformance/esnext/logicalAssignment/logicalAssignment11.ts b/tests/cases/conformance/esnext/logicalAssignment/logicalAssignment11.ts new file mode 100644 index 0000000000000..96b6ff7e54b42 --- /dev/null +++ b/tests/cases/conformance/esnext/logicalAssignment/logicalAssignment11.ts @@ -0,0 +1,12 @@ +// @strict: true +// @target: esnext, es2020, es2015 + +let x: string | undefined; + +let d: string | undefined; +d ?? (d = x ?? "x") +d.length; + +let e: string | undefined; +e ??= x ?? "x" +e.length \ No newline at end of file diff --git a/tests/cases/conformance/expressions/literals/strictModeOctalLiterals.ts b/tests/cases/conformance/expressions/literals/strictModeOctalLiterals.ts new file mode 100644 index 0000000000000..69b9267f9994a --- /dev/null +++ b/tests/cases/conformance/expressions/literals/strictModeOctalLiterals.ts @@ -0,0 +1,5 @@ +// @target: es2018 +export enum E { + A = 12 + 01 +} +const orbitol: 01 = 01 diff --git a/tests/cases/conformance/expressions/newOperator/newOperatorErrorCases.ts b/tests/cases/conformance/expressions/newOperator/newOperatorErrorCases.ts index 8d2ee346a73ad..3279a42a137ab 100644 --- a/tests/cases/conformance/expressions/newOperator/newOperatorErrorCases.ts +++ b/tests/cases/conformance/expressions/newOperator/newOperatorErrorCases.ts @@ -29,7 +29,7 @@ var b = new C0 32, ''; // Parse error // Generic construct expression with no parentheses var c1 = new T; var c1: T<{}>; -var c2 = new T; // Parse error +var c2 = new T; // Ok // Construct expression of non-void returning function diff --git a/tests/cases/conformance/expressions/objectLiterals/objectLiteralErrors.ts b/tests/cases/conformance/expressions/objectLiterals/objectLiteralErrors.ts index 209b56eed6de5..b95f12b6d14cf 100644 --- a/tests/cases/conformance/expressions/objectLiterals/objectLiteralErrors.ts +++ b/tests/cases/conformance/expressions/objectLiterals/objectLiteralErrors.ts @@ -44,3 +44,10 @@ var f17 = { a: 0, get b() { return 1; }, get a() { return 0; } }; var g1 = { get a(): number { return 4; }, set a(n: string) { } }; var g2 = { get a() { return 4; }, set a(n: string) { } }; var g3 = { get a(): number { return undefined; }, set a(n: string) { } }; + +// did you mean colon errors +var h1 = { + x = 1, + y = 2, + #z: 3 +} diff --git a/tests/cases/conformance/expressions/optionalChaining/optionalChainingInTypeAssertions.ts b/tests/cases/conformance/expressions/optionalChaining/optionalChainingInTypeAssertions.ts new file mode 100644 index 0000000000000..3140c2d6ca597 --- /dev/null +++ b/tests/cases/conformance/expressions/optionalChaining/optionalChainingInTypeAssertions.ts @@ -0,0 +1,13 @@ +// @target: es2015, esnext + +class Foo { + m() {} +} + +const foo = new Foo(); + +(foo.m as any)?.(); +(foo.m)?.(); + +/*a1*/(/*a2*/foo.m as any/*a3*/)/*a4*/?.(); +/*b1*/(/*b2*/foo.m/*b3*/)/*b4*/?.(); diff --git a/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension1.ts b/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension1.ts new file mode 100644 index 0000000000000..83e86fc6c6069 --- /dev/null +++ b/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension1.ts @@ -0,0 +1,12 @@ +// @moduleResolution: node12 +// @module: node12 + +// @filename: /src/foo.mts +export function foo() { + return ""; +} + +// @filename: /src/bar.mts +// Extensionless relative path ES import in an ES module +import { foo } from "./foo"; // should error, suggest adding ".mjs" +import { baz } from "./baz"; // should error, ask for extension, no extension suggestion diff --git a/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension2.ts b/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension2.ts new file mode 100644 index 0000000000000..0051e17401c7c --- /dev/null +++ b/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension2.ts @@ -0,0 +1,6 @@ +// @moduleResolution: node12 +// @module: node12 + +// @filename: /src/buzz.mts +// Extensionless relative path cjs import in an ES module +import foo = require("./foo"); // should error, should not ask for extension \ No newline at end of file diff --git a/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension3.ts b/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension3.ts new file mode 100644 index 0000000000000..2ec3ff1ad0116 --- /dev/null +++ b/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension3.ts @@ -0,0 +1,12 @@ +// @moduleResolution: nodenext +// @module: nodenext +// @jsx: preserve + +// @filename: /src/foo.tsx +export function foo() { + return ""; +} + +// @filename: /src/bar.mts +// Extensionless relative path ES import in an ES module +import { foo } from "./foo"; // should error, suggest adding ".jsx" diff --git a/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension4.ts b/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension4.ts new file mode 100644 index 0000000000000..c1eab70f92d82 --- /dev/null +++ b/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension4.ts @@ -0,0 +1,12 @@ +// @moduleResolution: nodenext +// @module: nodenext +// @jsx: react + +// @filename: /src/foo.tsx +export function foo() { + return ""; +} + +// @filename: /src/bar.mts +// Extensionless relative path ES import in an ES module +import { foo } from "./foo"; // should error, suggest adding ".js" diff --git a/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension5.ts b/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension5.ts new file mode 100644 index 0000000000000..5053a242cd5d5 --- /dev/null +++ b/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension5.ts @@ -0,0 +1,6 @@ +// @moduleResolution: node12 +// @module: node12 + +// @filename: /src/buzz.mts +// Extensionless relative path dynamic import in an ES module +import("./foo").then(x => x); // should error, ask for extension \ No newline at end of file diff --git a/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension6.ts b/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension6.ts new file mode 100644 index 0000000000000..2a6ef2645dd4d --- /dev/null +++ b/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension6.ts @@ -0,0 +1,8 @@ +// @moduleResolution: node12 +// @module: node12 + +// @filename: /src/bar.cts +// Extensionless relative path import statement in a cjs module +// Import statements are not allowed in cjs files, +// but other errors should not assume that they are allowed +import { foo } from "./foo"; // should error, should not ask for extension \ No newline at end of file diff --git a/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension7.ts b/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension7.ts new file mode 100644 index 0000000000000..3b10dd6e48aab --- /dev/null +++ b/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension7.ts @@ -0,0 +1,6 @@ +// @moduleResolution: node12 +// @module: node12 + +// @filename: /src/bar.cts +// Extensionless relative path cjs import in a cjs module +import foo = require("./foo"); // should error, should not ask for extension \ No newline at end of file diff --git a/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension8.ts b/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension8.ts new file mode 100644 index 0000000000000..fef17b3aa1e54 --- /dev/null +++ b/tests/cases/conformance/externalModules/moduleResolutionWithoutExtension8.ts @@ -0,0 +1,6 @@ +// @moduleResolution: node12 +// @module: node12 + +// @filename: /src/bar.cts +// Extensionless relative path dynamic import in a cjs module +import("./foo").then(x => x); // should error, ask for extension \ No newline at end of file diff --git a/tests/cases/conformance/externalModules/typeOnly/exportSpecifiers_js.ts b/tests/cases/conformance/externalModules/typeOnly/exportSpecifiers_js.ts new file mode 100644 index 0000000000000..b8280ae66a55c --- /dev/null +++ b/tests/cases/conformance/externalModules/typeOnly/exportSpecifiers_js.ts @@ -0,0 +1,7 @@ +// @allowJs: true +// @checkJs: true +// @noEmit: true + +// @Filename: ./a.js +const foo = 0; +export { type foo }; diff --git a/tests/cases/conformance/externalModules/typeOnly/importSpecifiers_js.ts b/tests/cases/conformance/externalModules/typeOnly/importSpecifiers_js.ts new file mode 100644 index 0000000000000..e2c2d8411f25d --- /dev/null +++ b/tests/cases/conformance/externalModules/typeOnly/importSpecifiers_js.ts @@ -0,0 +1,9 @@ +// @allowJs: true +// @checkJs: true +// @noEmit: true + +// @Filename: ./a.ts +export interface A {} + +// @Filename: ./a.js +import { type A } from "./a"; diff --git a/tests/cases/conformance/externalModules/typeOnly/mergedWithLocalValue.ts b/tests/cases/conformance/externalModules/typeOnly/mergedWithLocalValue.ts new file mode 100644 index 0000000000000..489f73a11a857 --- /dev/null +++ b/tests/cases/conformance/externalModules/typeOnly/mergedWithLocalValue.ts @@ -0,0 +1,7 @@ +// @Filename: a.ts +export type A = "a"; + +// @Filename: b.ts +import type { A } from "./a"; +const A: A = "a"; +A.toUpperCase(); diff --git a/tests/cases/conformance/functions/functionParameterObjectRestAndInitializers.ts b/tests/cases/conformance/functions/functionParameterObjectRestAndInitializers.ts new file mode 100644 index 0000000000000..41c6af41b9513 --- /dev/null +++ b/tests/cases/conformance/functions/functionParameterObjectRestAndInitializers.ts @@ -0,0 +1,11 @@ +// @target: es2015 +// @noTypesAndSymbols: true +// https://github.com/microsoft/TypeScript/issues/47079 + +function f({a, ...x}, b = a) { + return b; +} + +function g({a, ...x}, b = ({a}, b = a) => {}) { + return b; +} diff --git a/tests/cases/conformance/functions/strictBindCallApply1.ts b/tests/cases/conformance/functions/strictBindCallApply1.ts index 4194c41ec24a7..a55d07c2e7909 100644 --- a/tests/cases/conformance/functions/strictBindCallApply1.ts +++ b/tests/cases/conformance/functions/strictBindCallApply1.ts @@ -72,3 +72,30 @@ C.apply(c, [10, "hello"]); C.apply(c, [10]); // Error C.apply(c, [10, 20]); // Error C.apply(c, [10, "hello", 30]); // Error + +function bar(callback: (this: 1, ...args: T) => void) { + callback.bind(1); + callback.bind(2); // Error +} + +function baz(callback: (this: 1, ...args: T extends 1 ? [unknown] : [unknown, unknown]) => void) { + callback.bind(1); + callback.bind(2); // Error +} + +// Repro from #32964 +class Foo { + constructor() { + this.fn.bind(this); + } + + fn(...args: T): void {} +} + +class Bar { + constructor() { + this.fn.bind(this); + } + + fn(...args: T extends 1 ? [unknown] : [unknown, unknown]) {} +} diff --git a/tests/cases/conformance/jsdoc/checkJsdocTypeTag7.ts b/tests/cases/conformance/jsdoc/checkJsdocTypeTag7.ts new file mode 100644 index 0000000000000..c65b206a859b3 --- /dev/null +++ b/tests/cases/conformance/jsdoc/checkJsdocTypeTag7.ts @@ -0,0 +1,13 @@ +// @checkJs: true +// @allowJs: true +// @noEmit: true +// @Filename: test.js + +/** + * @typedef {(a: string, b: number) => void} Foo + */ + +class C { + /** @type {Foo} */ + foo(a, b) {} +} diff --git a/tests/cases/conformance/jsdoc/linkTagEmit1.ts b/tests/cases/conformance/jsdoc/linkTagEmit1.ts index 3c35376414618..e53e45c3d4ea1 100644 --- a/tests/cases/conformance/jsdoc/linkTagEmit1.ts +++ b/tests/cases/conformance/jsdoc/linkTagEmit1.ts @@ -21,3 +21,8 @@ declare namespace NS { function computeCommonSourceDirectoryOfFilenames(integer) { return integer + 1 // pls pls pls } + +/** {@link https://hvad} */ +var see3 = true + +/** @typedef {number} Attempt {@link https://wat} {@linkcode I think lingcod is better} {@linkplain or lutefisk}*/ diff --git a/tests/cases/conformance/jsdoc/seeTag4.ts b/tests/cases/conformance/jsdoc/seeTag4.ts new file mode 100644 index 0000000000000..d7973751555ba --- /dev/null +++ b/tests/cases/conformance/jsdoc/seeTag4.ts @@ -0,0 +1,15 @@ +// @checkJs: true +// @allowJs: true +// @outdir: out/ +// @filename: seeTag4.js + +/** + * @typedef {any} A + */ + +/** + * @see {@link A} + * @see {@linkcode A} + * @see {@linkplain A} + */ +let foo; diff --git a/tests/cases/conformance/jsdoc/thisTag2.ts b/tests/cases/conformance/jsdoc/thisTag2.ts new file mode 100644 index 0000000000000..187ac9b932bb5 --- /dev/null +++ b/tests/cases/conformance/jsdoc/thisTag2.ts @@ -0,0 +1,11 @@ +// @target: esnext +// @allowJs: true +// @declaration: true +// @emitDeclarationOnly: true +// @filename: a.js + +/** @this {string} */ +export function f1() {} + +/** @this */ +export function f2() {} diff --git a/tests/cases/conformance/jsx/jsxParsingError4.tsx b/tests/cases/conformance/jsx/jsxParsingError4.tsx new file mode 100644 index 0000000000000..c4db4fe7abb91 --- /dev/null +++ b/tests/cases/conformance/jsx/jsxParsingError4.tsx @@ -0,0 +1,18 @@ +// @strict: true, false +// @jsx: react +// @filename: a.tsx + +declare const React: any +declare namespace JSX { + interface IntrinsicElements { + [k: string]: any + } +} + +const a = ( + +); + +const b = ( + +); diff --git a/tests/cases/conformance/jsx/tsxGenericArrowFunctionParsing.tsx b/tests/cases/conformance/jsx/tsxGenericArrowFunctionParsing.tsx index deb7ba57b5de3..a2be92ebeb928 100644 --- a/tests/cases/conformance/jsx/tsxGenericArrowFunctionParsing.tsx +++ b/tests/cases/conformance/jsx/tsxGenericArrowFunctionParsing.tsx @@ -26,3 +26,6 @@ x4.isElement; var x5 = () => {}; x5.isElement; +// This is a generic function +var x6 = () => {}; +x6(); diff --git a/tests/cases/conformance/jsx/tsxReactEmit8.tsx b/tests/cases/conformance/jsx/tsxReactEmit8.tsx new file mode 100644 index 0000000000000..23bd2e4c5a220 --- /dev/null +++ b/tests/cases/conformance/jsx/tsxReactEmit8.tsx @@ -0,0 +1,6 @@ +// @jsx: react-jsx,react-jsxdev +// @target: esnext +/// + +

; +
2
; diff --git a/tests/cases/conformance/jsx/tsxSpreadChildrenInvalidType.tsx b/tests/cases/conformance/jsx/tsxSpreadChildrenInvalidType.tsx index 49067bbc4b02e..77a9b054b2c34 100644 --- a/tests/cases/conformance/jsx/tsxSpreadChildrenInvalidType.tsx +++ b/tests/cases/conformance/jsx/tsxSpreadChildrenInvalidType.tsx @@ -1,4 +1,4 @@ -// @jsx: react +// @jsx: react,react-jsx // @target: es2015,es5 declare module JSX { interface Element { } diff --git a/tests/cases/conformance/moduleResolution/importFromDot.ts b/tests/cases/conformance/moduleResolution/importFromDot.ts new file mode 100644 index 0000000000000..eb28f6943f6ca --- /dev/null +++ b/tests/cases/conformance/moduleResolution/importFromDot.ts @@ -0,0 +1,10 @@ +// @module: commonjs + +// @Filename: a.ts +export const rootA = 0; + +// @Filename: a/index.ts +export const indexInA = 0; + +// @Filename: a/b.ts +import { indexInA, rootA } from "."; diff --git a/tests/cases/conformance/node/legacyNodeModulesExportsSpecifierGenerationConditions.ts b/tests/cases/conformance/node/legacyNodeModulesExportsSpecifierGenerationConditions.ts new file mode 100644 index 0000000000000..656465829e6d9 --- /dev/null +++ b/tests/cases/conformance/node/legacyNodeModulesExportsSpecifierGenerationConditions.ts @@ -0,0 +1,33 @@ +// @module: commonjs +// @lib: es2020 +// @declaration: true +// @filename: index.ts +export const a = async () => (await import("inner")).x(); +// @filename: node_modules/inner/index.d.ts +export { x } from "./other.js"; +// @filename: node_modules/inner/other.d.ts +import { Thing } from "./private.js" +export const x: () => Thing; +// @filename: node_modules/inner/private.d.ts +export interface Thing {} // not exported in export map, inaccessible under new module modes +// @filename: package.json +{ + "name": "package", + "private": true, + "type": "module", + "exports": "./index.js" +} +// @filename: node_modules/inner/package.json +{ + "name": "inner", + "private": true, + "type": "module", + "exports": { + ".": { + "default": "./index.js" + }, + "./other": { + "default": "./other.js" + } + } +} \ No newline at end of file diff --git a/tests/cases/conformance/node/nodeModulesImportAssertions.ts b/tests/cases/conformance/node/nodeModulesImportAssertions.ts new file mode 100644 index 0000000000000..0fe1ccdf820b6 --- /dev/null +++ b/tests/cases/conformance/node/nodeModulesImportAssertions.ts @@ -0,0 +1,13 @@ +// @module: node12,nodenext +// @resolveJsonModule: true +// @filename: index.ts +import json from "./package.json" assert { type: "json" }; +// @filename: otherc.cts +import json from "./package.json" assert { type: "json" }; // should error, cjs mode imports don't support assertions +const json2 = import("./package.json", { assert: { type: "json" } }); // should be fine +// @filename: package.json +{ + "name": "pkg", + "private": true, + "type": "module" +} \ No newline at end of file diff --git a/tests/cases/conformance/node/nodeModulesImportModeDeclarationEmit1.ts b/tests/cases/conformance/node/nodeModulesImportModeDeclarationEmit1.ts new file mode 100644 index 0000000000000..5a9a0ef8cee2b --- /dev/null +++ b/tests/cases/conformance/node/nodeModulesImportModeDeclarationEmit1.ts @@ -0,0 +1,29 @@ +// @noImplicitReferences: true +// @module: node12,nodenext +// @declaration: true +// @outDir: out +// @filename: /node_modules/pkg/package.json +{ + "name": "pkg", + "version": "0.0.1", + "exports": { + "import": "./import.js", + "require": "./require.js" + } +} +// @filename: /node_modules/pkg/import.d.ts +export interface ImportInterface {} +// @filename: /node_modules/pkg/require.d.ts +export interface RequireInterface {} +// @filename: /index.ts +import type { RequireInterface } from "pkg" assert { "resolution-mode": "require" }; +import type { ImportInterface } from "pkg" assert { "resolution-mode": "import" }; + +export interface LocalInterface extends RequireInterface, ImportInterface {} + +import {type RequireInterface as Req} from "pkg" assert { "resolution-mode": "require" }; +import {type ImportInterface as Imp} from "pkg" assert { "resolution-mode": "import" }; +export interface Loc extends Req, Imp {} + +export type { RequireInterface } from "pkg" assert { "resolution-mode": "require" }; +export type { ImportInterface } from "pkg" assert { "resolution-mode": "import" }; diff --git a/tests/cases/conformance/node/nodeModulesImportModeDeclarationEmit2.ts b/tests/cases/conformance/node/nodeModulesImportModeDeclarationEmit2.ts new file mode 100644 index 0000000000000..7b819fddf490e --- /dev/null +++ b/tests/cases/conformance/node/nodeModulesImportModeDeclarationEmit2.ts @@ -0,0 +1,34 @@ +// @noImplicitReferences: true +// @module: node12,nodenext +// @declaration: true +// @outDir: out +// @filename: /node_modules/pkg/package.json +{ + "name": "pkg", + "version": "0.0.1", + "exports": { + "import": "./import.js", + "require": "./require.js" + } +} +// @filename: /node_modules/pkg/import.d.ts +export interface ImportInterface {} +// @filename: /node_modules/pkg/require.d.ts +export interface RequireInterface {} +// @filename: /package.json +{ + "private": true, + "type": "module" +} +// @filename: /index.ts +import type { RequireInterface } from "pkg" assert { "resolution-mode": "require" }; +import type { ImportInterface } from "pkg" assert { "resolution-mode": "import" }; + +export interface LocalInterface extends RequireInterface, ImportInterface {} + +import {type RequireInterface as Req} from "pkg" assert { "resolution-mode": "require" }; +import {type ImportInterface as Imp} from "pkg" assert { "resolution-mode": "import" }; +export interface Loc extends Req, Imp {} + +export type { RequireInterface } from "pkg" assert { "resolution-mode": "require" }; +export type { ImportInterface } from "pkg" assert { "resolution-mode": "import" }; diff --git a/tests/cases/conformance/node/nodeModulesImportModeDeclarationEmitErrors1.ts b/tests/cases/conformance/node/nodeModulesImportModeDeclarationEmitErrors1.ts new file mode 100644 index 0000000000000..1e475dfc63ad9 --- /dev/null +++ b/tests/cases/conformance/node/nodeModulesImportModeDeclarationEmitErrors1.ts @@ -0,0 +1,29 @@ +// @noImplicitReferences: true +// @module: node12,nodenext +// @declaration: true +// @outDir: out +// @filename: /node_modules/pkg/package.json +{ + "name": "pkg", + "version": "0.0.1", + "exports": { + "import": "./import.js", + "require": "./require.js" + } +} +// @filename: /node_modules/pkg/import.d.ts +export interface ImportInterface {} +// @filename: /node_modules/pkg/require.d.ts +export interface RequireInterface {} +// @filename: /index.ts +// incorrect mode +import type { RequireInterface } from "pkg" assert { "resolution-mode": "foobar" }; +// not type-only +import { ImportInterface } from "pkg" assert { "resolution-mode": "import" }; +// not exclusively type-only +import {type RequireInterface as Req, RequireInterface as Req2} from "pkg" assert { "resolution-mode": "require" }; + +export interface LocalInterface extends RequireInterface, ImportInterface {} + + + diff --git a/tests/cases/conformance/node/nodeModulesImportTypeModeDeclarationEmit1.ts b/tests/cases/conformance/node/nodeModulesImportTypeModeDeclarationEmit1.ts new file mode 100644 index 0000000000000..41d64844e090a --- /dev/null +++ b/tests/cases/conformance/node/nodeModulesImportTypeModeDeclarationEmit1.ts @@ -0,0 +1,24 @@ +// @noImplicitReferences: true +// @module: node12,nodenext +// @declaration: true +// @outDir: out +// @filename: /node_modules/pkg/package.json +{ + "name": "pkg", + "version": "0.0.1", + "exports": { + "import": "./import.js", + "require": "./require.js" + } +} +// @filename: /node_modules/pkg/import.d.ts +export interface ImportInterface {} +// @filename: /node_modules/pkg/require.d.ts +export interface RequireInterface {} +// @filename: /index.ts +export type LocalInterface = + & import("pkg", { assert: {"resolution-mode": "require"} }).RequireInterface + & import("pkg", { assert: {"resolution-mode": "import"} }).ImportInterface; + +export const a = (null as any as import("pkg", { assert: {"resolution-mode": "require"} }).RequireInterface); +export const b = (null as any as import("pkg", { assert: {"resolution-mode": "import"} }).ImportInterface); diff --git a/tests/cases/conformance/node/nodeModulesImportTypeModeDeclarationEmitErrors1.ts b/tests/cases/conformance/node/nodeModulesImportTypeModeDeclarationEmitErrors1.ts new file mode 100644 index 0000000000000..d6f35e4638578 --- /dev/null +++ b/tests/cases/conformance/node/nodeModulesImportTypeModeDeclarationEmitErrors1.ts @@ -0,0 +1,65 @@ +// @module: node12,nodenext +// @declaration: true +// @outDir: out +// @filename: /node_modules/pkg/package.json +{ + "name": "pkg", + "version": "0.0.1", + "exports": { + "import": "./import.js", + "require": "./require.js" + } +} +// @filename: /node_modules/pkg/import.d.ts +export interface ImportInterface {} +// @filename: /node_modules/pkg/require.d.ts +export interface RequireInterface {} +// @filename: /index.ts +export type LocalInterface = + & import("pkg", { assert: {"resolution-mode": "foobar"} }).RequireInterface + & import("pkg", { assert: {"resolution-mode": "import"} }).ImportInterface; + +export const a = (null as any as import("pkg", { assert: {"resolution-mode": "foobar"} }).RequireInterface); +export const b = (null as any as import("pkg", { assert: {"resolution-mode": "import"} }).ImportInterface); +// @filename: /other.ts +// missing assert: +export type LocalInterface = + & import("pkg", {"resolution-mode": "require"}).RequireInterface + & import("pkg", {"resolution-mode": "import"}).ImportInterface; + +export const a = (null as any as import("pkg", {"resolution-mode": "require"}).RequireInterface); +export const b = (null as any as import("pkg", {"resolution-mode": "import"}).ImportInterface); +// @filename: /other2.ts +// wrong assertion key +export type LocalInterface = + & import("pkg", { assert: {"bad": "require"} }).RequireInterface + & import("pkg", { assert: {"bad": "import"} }).ImportInterface; + +export const a = (null as any as import("pkg", { assert: {"bad": "require"} }).RequireInterface); +export const b = (null as any as import("pkg", { assert: {"bad": "import"} }).ImportInterface); +// @filename: /other3.ts +// Array instead of object-y thing +export type LocalInterface = + & import("pkg", [ {"resolution-mode": "require"} ]).RequireInterface + & import("pkg", [ {"resolution-mode": "import"} ]).ImportInterface; + +export const a = (null as any as import("pkg", [ {"resolution-mode": "require"} ]).RequireInterface); +export const b = (null as any as import("pkg", [ {"resolution-mode": "import"} ]).ImportInterface); +// @filename: /other4.ts +// Indirected assertion objecty-thing - not allowed +type Asserts1 = { assert: {"resolution-mode": "require"} }; +type Asserts2 = { assert: {"resolution-mode": "import"} }; + +export type LocalInterface = + & import("pkg", Asserts1).RequireInterface + & import("pkg", Asserts2).ImportInterface; + +export const a = (null as any as import("pkg", Asserts1).RequireInterface); +export const b = (null as any as import("pkg", Asserts2).ImportInterface); +// @filename: /other5.ts +export type LocalInterface = + & import("pkg", { assert: {} }).RequireInterface + & import("pkg", { assert: {} }).ImportInterface; + +export const a = (null as any as import("pkg", { assert: {} }).RequireInterface); +export const b = (null as any as import("pkg", { assert: {} }).ImportInterface); diff --git a/tests/cases/conformance/node/nodeModulesResolveJsonModule.ts b/tests/cases/conformance/node/nodeModulesResolveJsonModule.ts new file mode 100644 index 0000000000000..c298685c228df --- /dev/null +++ b/tests/cases/conformance/node/nodeModulesResolveJsonModule.ts @@ -0,0 +1,29 @@ +// @module: node12,nodenext +// @resolveJsonModule: true +// @outDir: ./out +// @declaration: true +// @filename: index.ts +import pkg from "./package.json" +export const name = pkg.name; +import * as ns from "./package.json"; +export const thing = ns; +export const name2 = ns.default.name; +// @filename: index.cts +import pkg from "./package.json" +export const name = pkg.name; +import * as ns from "./package.json"; +export const thing = ns; +export const name2 = ns.default.name; +// @filename: index.mts +import pkg from "./package.json" +export const name = pkg.name; +import * as ns from "./package.json"; +export const thing = ns; +export const name2 = ns.default.name; +// @filename: package.json +{ + "name": "pkg", + "version": "0.0.1", + "type": "module", + "default": "misedirection" +} \ No newline at end of file diff --git a/tests/cases/conformance/node/nodeModulesTripleSlashReferenceModeDeclarationEmit1.ts b/tests/cases/conformance/node/nodeModulesTripleSlashReferenceModeDeclarationEmit1.ts new file mode 100644 index 0000000000000..8e99536aa8cd7 --- /dev/null +++ b/tests/cases/conformance/node/nodeModulesTripleSlashReferenceModeDeclarationEmit1.ts @@ -0,0 +1,26 @@ +// @noImplicitReferences: true +// @module: node12,nodenext +// @declaration: true +// @outDir: out +// @filename: /node_modules/pkg/package.json +{ + "name": "pkg", + "version": "0.0.1", + "exports": { + "import": "./import.js", + "require": "./require.js" + } +} +// @filename: /node_modules/pkg/import.d.ts +export {}; +declare global { + interface ImportInterface {} +} +// @filename: /node_modules/pkg/require.d.ts +export {}; +declare global { + interface RequireInterface {} +} +// @filename: /index.ts +/// +export interface LocalInterface extends RequireInterface {} \ No newline at end of file diff --git a/tests/cases/conformance/node/nodeModulesTripleSlashReferenceModeDeclarationEmit2.ts b/tests/cases/conformance/node/nodeModulesTripleSlashReferenceModeDeclarationEmit2.ts new file mode 100644 index 0000000000000..9349d1c276782 --- /dev/null +++ b/tests/cases/conformance/node/nodeModulesTripleSlashReferenceModeDeclarationEmit2.ts @@ -0,0 +1,31 @@ +// @noImplicitReferences: true +// @module: node12,nodenext +// @declaration: true +// @outDir: out +// @filename: /node_modules/pkg/package.json +{ + "name": "pkg", + "version": "0.0.1", + "exports": { + "import": "./import.js", + "require": "./require.js" + } +} +// @filename: /node_modules/pkg/import.d.ts +export {}; +declare global { + interface ImportInterface {} +} +// @filename: /node_modules/pkg/require.d.ts +export {}; +declare global { + interface RequireInterface {} +} +// @filename: /package.json +{ + "private": true, + "type": "module" +} +// @filename: /index.ts +/// +export interface LocalInterface extends ImportInterface {} \ No newline at end of file diff --git a/tests/cases/conformance/node/nodeModulesTripleSlashReferenceModeDeclarationEmit3.ts b/tests/cases/conformance/node/nodeModulesTripleSlashReferenceModeDeclarationEmit3.ts new file mode 100644 index 0000000000000..8c16d1bd455d3 --- /dev/null +++ b/tests/cases/conformance/node/nodeModulesTripleSlashReferenceModeDeclarationEmit3.ts @@ -0,0 +1,31 @@ +// @noImplicitReferences: true +// @module: node12,nodenext +// @declaration: true +// @outDir: out +// @filename: /node_modules/pkg/package.json +{ + "name": "pkg", + "version": "0.0.1", + "exports": { + "import": "./import.js", + "require": "./require.js" + } +} +// @filename: /node_modules/pkg/import.d.ts +export {}; +declare global { + interface ImportInterface {} +} +// @filename: /node_modules/pkg/require.d.ts +export {}; +declare global { + interface RequireInterface {} +} +// @filename: /package.json +{ + "private": true, + "type": "module" +} +// @filename: /index.ts +/// +export interface LocalInterface extends RequireInterface {} \ No newline at end of file diff --git a/tests/cases/conformance/node/nodeModulesTripleSlashReferenceModeDeclarationEmit4.ts b/tests/cases/conformance/node/nodeModulesTripleSlashReferenceModeDeclarationEmit4.ts new file mode 100644 index 0000000000000..6d778bb754c50 --- /dev/null +++ b/tests/cases/conformance/node/nodeModulesTripleSlashReferenceModeDeclarationEmit4.ts @@ -0,0 +1,26 @@ +// @noImplicitReferences: true +// @module: node12,nodenext +// @declaration: true +// @outDir: out +// @filename: /node_modules/pkg/package.json +{ + "name": "pkg", + "version": "0.0.1", + "exports": { + "import": "./import.js", + "require": "./require.js" + } +} +// @filename: /node_modules/pkg/import.d.ts +export {}; +declare global { + interface ImportInterface {} +} +// @filename: /node_modules/pkg/require.d.ts +export {}; +declare global { + interface RequireInterface {} +} +// @filename: /index.ts +/// +export interface LocalInterface extends ImportInterface {} \ No newline at end of file diff --git a/tests/cases/conformance/node/nodeModulesTripleSlashReferenceModeDeclarationEmit5.ts b/tests/cases/conformance/node/nodeModulesTripleSlashReferenceModeDeclarationEmit5.ts new file mode 100644 index 0000000000000..6694ad03d8de9 --- /dev/null +++ b/tests/cases/conformance/node/nodeModulesTripleSlashReferenceModeDeclarationEmit5.ts @@ -0,0 +1,27 @@ +// @noImplicitReferences: true +// @module: node12,nodenext +// @declaration: true +// @outDir: out +// @filename: /node_modules/pkg/package.json +{ + "name": "pkg", + "version": "0.0.1", + "exports": { + "import": "./import.js", + "require": "./require.js" + } +} +// @filename: /node_modules/pkg/import.d.ts +export {}; +declare global { + interface ImportInterface {} +} +// @filename: /node_modules/pkg/require.d.ts +export {}; +declare global { + interface RequireInterface {} +} +// @filename: /index.ts +/// +/// +export interface LocalInterface extends ImportInterface, RequireInterface {} \ No newline at end of file diff --git a/tests/cases/conformance/node/nodeModulesTripleSlashReferenceModeDeclarationEmit6.ts b/tests/cases/conformance/node/nodeModulesTripleSlashReferenceModeDeclarationEmit6.ts new file mode 100644 index 0000000000000..8a38a96717006 --- /dev/null +++ b/tests/cases/conformance/node/nodeModulesTripleSlashReferenceModeDeclarationEmit6.ts @@ -0,0 +1,31 @@ +// @noImplicitReferences: true +// @module: node12,nodenext +// @declaration: true +// @outDir: out +// @filename: /node_modules/pkg/package.json +{ + "name": "pkg", + "version": "0.0.1", + "exports": { + "import": "./import.js", + "require": "./require.js" + } +} +// @filename: /node_modules/pkg/import.d.ts +export {}; +declare global { + interface ImportInterface {} + function getInterI(): ImportInterface; +} +// @filename: /node_modules/pkg/require.d.ts +export {}; +declare global { + interface RequireInterface {} + function getInterR(): RequireInterface; +} +// @filename: /uses.ts +/// +export default getInterR(); +// @filename: /index.ts +import obj from "./uses.js" +export default (obj as typeof obj); \ No newline at end of file diff --git a/tests/cases/conformance/node/nodeModulesTripleSlashReferenceModeDeclarationEmit7.ts b/tests/cases/conformance/node/nodeModulesTripleSlashReferenceModeDeclarationEmit7.ts new file mode 100644 index 0000000000000..317728fbaa832 --- /dev/null +++ b/tests/cases/conformance/node/nodeModulesTripleSlashReferenceModeDeclarationEmit7.ts @@ -0,0 +1,51 @@ +// @noImplicitReferences: true +// @module: node12,nodenext +// @declaration: true +// @outDir: out +// @filename: /node_modules/pkg/package.json +{ + "name": "pkg", + "version": "0.0.1", + "exports": { + "import": "./import.js", + "require": "./require.js" + } +} +// @filename: /node_modules/pkg/import.d.ts +export {}; +declare global { + interface ImportInterface { _i: any; } + function getInterI(): ImportInterface; +} +// @filename: /node_modules/pkg/require.d.ts +export {}; +declare global { + interface RequireInterface { _r: any; } + function getInterR(): RequireInterface; +} +// @filename: /sub1/uses.ts +/// +export default getInterI(); +// @filename: /sub1/package.json +{ + "private": true, + "type": "module" +} +// @filename: /sub2/uses.ts +/// +export default getInterR(); +// @filename: /sub2/package.json +{ + "private": true, + "type": "commonjs" +} +// @filename: /package.json +{ + "private": true, + "type": "module" +} +// @filename: /index.ts +// only an esm file can `import` both kinds of files +import obj1 from "./sub1/uses.js" +import obj2 from "./sub2/uses.js" +export default [obj1, obj2.default] as const; \ No newline at end of file diff --git a/tests/cases/conformance/node/nodeModulesTripleSlashReferenceModeOverride1.ts b/tests/cases/conformance/node/nodeModulesTripleSlashReferenceModeOverride1.ts new file mode 100644 index 0000000000000..061d16a75609a --- /dev/null +++ b/tests/cases/conformance/node/nodeModulesTripleSlashReferenceModeOverride1.ts @@ -0,0 +1,27 @@ +// @noImplicitReferences: true +// @module: node12,nodenext +// @outDir: out +// @filename: /node_modules/pkg/package.json +{ + "name": "pkg", + "version": "0.0.1", + "exports": { + "import": "./import.js", + "require": "./require.js" + } +} +// @filename: /node_modules/pkg/import.d.ts +export {}; +declare global { + var foo: number; +} +// @filename: /node_modules/pkg/require.d.ts +export {}; +declare global { + var bar: number; +} +// @filename: /index.ts +/// +foo; +bar; // bar should resolve while foo should not, since index.js is cjs +export {}; \ No newline at end of file diff --git a/tests/cases/conformance/node/nodeModulesTripleSlashReferenceModeOverride2.ts b/tests/cases/conformance/node/nodeModulesTripleSlashReferenceModeOverride2.ts new file mode 100644 index 0000000000000..105e52cf2d86a --- /dev/null +++ b/tests/cases/conformance/node/nodeModulesTripleSlashReferenceModeOverride2.ts @@ -0,0 +1,32 @@ +// @noImplicitReferences: true +// @module: node12,nodenext +// @outDir: out +// @filename: /node_modules/pkg/package.json +{ + "name": "pkg", + "version": "0.0.1", + "exports": { + "import": "./import.js", + "require": "./require.js" + } +} +// @filename: /node_modules/pkg/import.d.ts +export {}; +declare global { + var foo: number; +} +// @filename: /node_modules/pkg/require.d.ts +export {}; +declare global { + var bar: number; +} +// @filename: /package.json +{ + "private": true, + "type": "module" +} +// @filename: /index.ts +/// +foo; // foo should resolve while bar should not, since index.js is esm +bar; +export {}; \ No newline at end of file diff --git a/tests/cases/conformance/node/nodeModulesTripleSlashReferenceModeOverride3.ts b/tests/cases/conformance/node/nodeModulesTripleSlashReferenceModeOverride3.ts new file mode 100644 index 0000000000000..d183196f1766c --- /dev/null +++ b/tests/cases/conformance/node/nodeModulesTripleSlashReferenceModeOverride3.ts @@ -0,0 +1,32 @@ +// @noImplicitReferences: true +// @module: node12,nodenext +// @outDir: out +// @filename: /node_modules/pkg/package.json +{ + "name": "pkg", + "version": "0.0.1", + "exports": { + "import": "./import.js", + "require": "./require.js" + } +} +// @filename: /node_modules/pkg/import.d.ts +export {}; +declare global { + var foo: number; +} +// @filename: /node_modules/pkg/require.d.ts +export {}; +declare global { + var bar: number; +} +// @filename: /package.json +{ + "private": true, + "type": "module" +} +// @filename: /index.ts +/// +foo; +bar; // bar should resolve while foo should not, since even though index.js is esm, the reference is cjs +export {}; \ No newline at end of file diff --git a/tests/cases/conformance/node/nodeModulesTripleSlashReferenceModeOverride4.ts b/tests/cases/conformance/node/nodeModulesTripleSlashReferenceModeOverride4.ts new file mode 100644 index 0000000000000..466d47fba2079 --- /dev/null +++ b/tests/cases/conformance/node/nodeModulesTripleSlashReferenceModeOverride4.ts @@ -0,0 +1,27 @@ +// @noImplicitReferences: true +// @module: node12,nodenext +// @outDir: out +// @filename: /node_modules/pkg/package.json +{ + "name": "pkg", + "version": "0.0.1", + "exports": { + "import": "./import.js", + "require": "./require.js" + } +} +// @filename: /node_modules/pkg/import.d.ts +export {}; +declare global { + var foo: number; +} +// @filename: /node_modules/pkg/require.d.ts +export {}; +declare global { + var bar: number; +} +// @filename: /index.ts +/// +foo; // foo should resolve while bar should not, since even though index.js is cjs, the refernce is esm +bar; +export {}; \ No newline at end of file diff --git a/tests/cases/conformance/node/nodeModulesTripleSlashReferenceModeOverride5.ts b/tests/cases/conformance/node/nodeModulesTripleSlashReferenceModeOverride5.ts new file mode 100644 index 0000000000000..e9198bd5107e5 --- /dev/null +++ b/tests/cases/conformance/node/nodeModulesTripleSlashReferenceModeOverride5.ts @@ -0,0 +1,30 @@ +// @noImplicitReferences: true +// @module: node12,nodenext +// @outDir: out +// @filename: /node_modules/pkg/package.json +{ + "name": "pkg", + "version": "0.0.1", + "exports": { + "import": "./import.js", + "require": "./require.js" + } +} +// @filename: /node_modules/pkg/import.d.ts +export {}; +declare global { + var foo: number; +} +// @filename: /node_modules/pkg/require.d.ts +export {}; +declare global { + var bar: number; +} +// @filename: /index.ts +/// +/// +// Both `foo` and `bar` should resolve, as _both_ entrypoints are included by the two +// references above. +foo; +bar; +export {}; \ No newline at end of file diff --git a/tests/cases/conformance/node/nodeModulesTripleSlashReferenceModeOverrideModeError.ts b/tests/cases/conformance/node/nodeModulesTripleSlashReferenceModeOverrideModeError.ts new file mode 100644 index 0000000000000..197b2db20ba20 --- /dev/null +++ b/tests/cases/conformance/node/nodeModulesTripleSlashReferenceModeOverrideModeError.ts @@ -0,0 +1,27 @@ +// @noImplicitReferences: true +// @module: node12,nodenext +// @outDir: out +// @filename: /node_modules/pkg/package.json +{ + "name": "pkg", + "version": "0.0.1", + "exports": { + "import": "./import.js", + "require": "./require.js" + } +} +// @filename: /node_modules/pkg/import.d.ts +export {}; +declare global { + var foo: number; +} +// @filename: /node_modules/pkg/require.d.ts +export {}; +declare global { + var bar: number; +} +// @filename: /index.ts +/// +foo; // bad resolution mode, which resolves is arbitrary +bar; +export {}; \ No newline at end of file diff --git a/tests/cases/conformance/node/nodeModulesTripleSlashReferenceModeOverrideOldResolutionError.ts b/tests/cases/conformance/node/nodeModulesTripleSlashReferenceModeOverrideOldResolutionError.ts new file mode 100644 index 0000000000000..19e37f389adbb --- /dev/null +++ b/tests/cases/conformance/node/nodeModulesTripleSlashReferenceModeOverrideOldResolutionError.ts @@ -0,0 +1,28 @@ +// @noImplicitReferences: true +// @module: commonjs +// @outDir: out +// @filename: /node_modules/pkg/package.json +{ + "name": "pkg", + "version": "0.0.1", + "exports": { + "import": "./import.js", + "require": "./require.js" + } +} +// @filename: /node_modules/pkg/import.d.ts +export {}; +declare global { + var foo: number; +} +// @filename: /node_modules/pkg/require.d.ts +export {}; +declare global { + var bar: number; +} +// @filename: /index.ts +/// +/// +foo; // `resolution-mode` is an error in old resolution settings, which resolves is arbitrary +bar; +export {}; \ No newline at end of file diff --git a/tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression10.ts b/tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression10.ts new file mode 100644 index 0000000000000..7306fe2f8394c --- /dev/null +++ b/tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression10.ts @@ -0,0 +1 @@ +a ? (b) : c => (d) : e => f diff --git a/tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression11.ts b/tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression11.ts new file mode 100644 index 0000000000000..ba6a865daefe6 --- /dev/null +++ b/tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression11.ts @@ -0,0 +1 @@ +a ? b ? c : (d) : e => f diff --git a/tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression12.ts b/tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression12.ts new file mode 100644 index 0000000000000..f8496e43c57d8 --- /dev/null +++ b/tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression12.ts @@ -0,0 +1 @@ +a ? (b) => (c): d => e diff --git a/tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression13.ts b/tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression13.ts new file mode 100644 index 0000000000000..759558383e37c --- /dev/null +++ b/tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression13.ts @@ -0,0 +1 @@ +a ? () => a() : (): any => null; diff --git a/tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression14.ts b/tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression14.ts new file mode 100644 index 0000000000000..022a29552c2fb --- /dev/null +++ b/tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression14.ts @@ -0,0 +1 @@ +a() ? (b: number, c?: string): void => d() : e; diff --git a/tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression8.ts b/tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression8.ts new file mode 100644 index 0000000000000..4cc6e9445255f --- /dev/null +++ b/tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression8.ts @@ -0,0 +1 @@ +x ? y => ({ y }) : z => ({ z }) diff --git a/tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression8Js.ts b/tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression8Js.ts new file mode 100644 index 0000000000000..551a2ae21fb96 --- /dev/null +++ b/tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression8Js.ts @@ -0,0 +1,6 @@ +// @filename: file.js +// @allowjs: true +// @checkjs: true +// @outdir: out + +x ? y => ({ y }) : z => ({ z }) diff --git a/tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression9.ts b/tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression9.ts new file mode 100644 index 0000000000000..6aad757d7085d --- /dev/null +++ b/tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression9.ts @@ -0,0 +1 @@ +b ? (c) : d => e diff --git a/tests/cases/conformance/parser/ecmascript5/ErrorRecovery/ArrayLiteralExpressions/parserErrorRecoveryArrayLiteralExpression3.ts b/tests/cases/conformance/parser/ecmascript5/ErrorRecovery/ArrayLiteralExpressions/parserErrorRecoveryArrayLiteralExpression3.ts index 58df0691d8e2c..18ed3b5ef5a50 100644 --- a/tests/cases/conformance/parser/ecmascript5/ErrorRecovery/ArrayLiteralExpressions/parserErrorRecoveryArrayLiteralExpression3.ts +++ b/tests/cases/conformance/parser/ecmascript5/ErrorRecovery/ArrayLiteralExpressions/parserErrorRecoveryArrayLiteralExpression3.ts @@ -1,2 +1 @@ - var texCoords = [2, 2, 0.5000001192092895, 0.8749999 ; 403953552, 0.5000001192092895, 0.8749999403953552]; diff --git a/tests/cases/conformance/parser/ecmascript5/parserParenthesizedVariableAndParenthesizedFunctionInTernary.ts b/tests/cases/conformance/parser/ecmascript5/parserParenthesizedVariableAndParenthesizedFunctionInTernary.ts new file mode 100644 index 0000000000000..af061cec05b02 --- /dev/null +++ b/tests/cases/conformance/parser/ecmascript5/parserParenthesizedVariableAndParenthesizedFunctionInTernary.ts @@ -0,0 +1,3 @@ +let a: any; +const c = true ? (a) : (function() {}); +const d = true ? (a) : ((function() {})); diff --git a/tests/cases/conformance/salsa/constructorFunctionMethodTypeParameters.ts b/tests/cases/conformance/salsa/constructorFunctionMethodTypeParameters.ts new file mode 100644 index 0000000000000..bbe6810a15090 --- /dev/null +++ b/tests/cases/conformance/salsa/constructorFunctionMethodTypeParameters.ts @@ -0,0 +1,37 @@ +// @noEmit: true +// @allowJs: true +// @checkJs: true +// @filename: constructorFunctionMethodTypeParameters.js +/** + * @template {string} T + * @param {T} t + */ +function Cls(t) { + this.t = t; +} + +/** + * @template {string} V + * @param {T} t + * @param {V} v + * @return {V} + */ +Cls.prototype.topLevelComment = function (t, v) { + return v +}; + +Cls.prototype.nestedComment = + /** + * @template {string} U + * @param {T} t + * @param {U} u + * @return {T} + */ + function (t, u) { + return t + }; + +var c = new Cls('a'); +const s = c.topLevelComment('a', 'b'); +const t = c.nestedComment('a', 'b'); + diff --git a/tests/cases/conformance/salsa/plainJSBinderErrors.ts b/tests/cases/conformance/salsa/plainJSBinderErrors.ts new file mode 100644 index 0000000000000..d2019e3f78b2f --- /dev/null +++ b/tests/cases/conformance/salsa/plainJSBinderErrors.ts @@ -0,0 +1,44 @@ +// @outdir: out/ +// @target: esnext +// @allowJS: true +// @filename: plainJSBinderErrors.js +export default 12 +export default 13 +const await = 1 +const yield = 2 +async function f() { + const await = 3 +} +function* g() { + const yield = 4 +} +class C { + #constructor = 5 + deleted() { + function container(f) { + delete f + } + var g = 6 + delete g + delete container + } + evalArguments() { + const eval = 7 + const arguments = 8 + } + withOctal() { + const redundant = 010 + with (redundant) { + return toFixed() + } + } + label() { + for(;;) { + label: var x = 1 + break label + } + return x + } +} +const eval = 9 +const arguments = 10 diff --git a/tests/cases/conformance/salsa/plainJSGrammarErrors.ts b/tests/cases/conformance/salsa/plainJSGrammarErrors.ts new file mode 100644 index 0000000000000..9697e9f8ac386 --- /dev/null +++ b/tests/cases/conformance/salsa/plainJSGrammarErrors.ts @@ -0,0 +1,212 @@ +// @outdir: out/ +// @target: esnext +// @module: esnext +// @allowJs: true +// @filename: plainJSGrammarErrors.js +class C { + // #private mistakes + q = #unbound + m() { + #p + if (#po in this) { + } + } + #m() { + this.#m = () => {} + } + // await in static block + static { + for await (const x of [1,2,3]) { + console.log(x) + } + return null + } + // modifier mistakes + static constructor() { } + async constructor() { } + const x = 1 + const y() { + return 12 + } + async async extremelyAsync() { + } + async static oorder(){ } + export cantExportProperty = 1 + export cantExportMethod() { + } + + // accessor mistakes + get incorporeal(); + get parametric(n) { return 1 } + set invariant() { } + set binary(fst, snd) { } + set variable(...n) { } + + // other + "constructor" = 16 +} +class { + missingName = true +} +class Doubler extends C extends C { } +class Trebler extends C,C,C { } +// #private mistakes +#unrelated +junk.#m +new C().#m + +// modifier mistakes +export export var extremelyExported = 10 +export static var staticExport = 1 +function staticParam(static x = 1) { return x } +async export function oorder(x = 1) { return x } +function cantExportParam(export x = 1) { return x } +function cantAsyncParam(async x = 1) { return x } +async async function extremelyAsync() {} +async class CantAsyncClass { + async cantAsyncPropert = 1 +} +async const cantAsyncConst = 2 +async import 'assert' +async export { CantAsyncClass } +export import 'fs' +export export { C } +function nestedExports() { + export { staticParam } + import 'fs' + export default 12 +} +function outerStaticFunction() { + static function staticFunction() { } +} +const noStaticLiteralMethods = { + static m() { + } +} + +// rest parameters +function restMustBeLast(...x, y) { +} +function restCantHaveInitialiser(...x = [1,2,3]) { +} +function restCantHaveTrailingComma (...x,) { +} +;({ ...{} } = {}) +const doom = { e: 1, m: 1, name: "knee-deep" } +const { ...rest, e: episode, m: mission } = doom +const { e: eep, m: em, ...rest: noRestAllowed } = doom +const { e: erp, m: erm, ...noInitialiser = true } = doom + +// left-over parsing +var; +var x = 1 || 2 ?? 3 +var x = 2 ?? 3 || 4 +const arr = x + => x + 1 +var a = [1,2] +a?.`length`; +const o = { + [console.log('oh no'),2]: 'hi', + #noPrivate: 3, + export cantExportProperties: 4, + // TODO: See what the existing JS error is like for these + cantHaveQuestionMark?: 1, + m?() { return 12 }, + definitely!, + definiteMethod!() { return 13 }, +} +const noAssignment = { + assignment = 1, +} +var noTrailingComma = 1,; +class MissingExtends extends { } + +// let/const mistakes +const { e: ee }; +const noInit; +let let = 15; +if (true) + let onlyBlockLet = 17; +if (true) + const onlyBlockConst = 18; + +// loop mistakes +let async +export const l = [1,2,3] +for (async of l) { + console.log(x) +} +for (const cantHaveInit = 1 of [1,2,3]) { + console.log(cantHaveInit) +} +for (const cantHaveInit = 1 in [1,2,3]) { + console.log(cantHaveInit) +} +for (let y, x of [1,2,3]) { + console.log(x) +} +for (let y, x in [1,2,3]) { + console.log(x) +} + +// duplication mistakes +var b +switch (b) { + case false: + console.log('no') + default: + console.log('yes') + default: + console.log('wat') +} +try { + throw 2 +} +catch (e) { + const e = 1 + console.log(e) +} +try { + throw 20 +} +catch (e = 0) { +} +label: for (const x in [1,2,3]) { + label: for (const y in [1,2,3]) { + break label; + } +} + +// labels +function crossFunctionBoundary() { + outer: for(;;) { + function test() { + break outer + } + test() + } +} +function continueIterationOnly(x) { + outer: switch (x) { + case 1: + continue outer + } +} +function jumpToLabelOnly(x) { + break jumpToLabelOnly +} +for (;;) { + break toplevel + continue toplevel +} +break +continue + +// other weirdness +export let noMeta = import.metal +function foo() { new.targe } +const nullaryDynamicImport = import() +const trinaryDynamicImport = import('1', '2', '3') +const spreadDynamicImport = import(...[]) + +return diff --git a/tests/cases/conformance/salsa/plainJSGrammarErrors2.ts b/tests/cases/conformance/salsa/plainJSGrammarErrors2.ts new file mode 100644 index 0000000000000..73dfb48001eaf --- /dev/null +++ b/tests/cases/conformance/salsa/plainJSGrammarErrors2.ts @@ -0,0 +1,14 @@ +// @outdir: out/ +// @target: esnext +// @module: esnext +// @allowJs: true +// @filename: plainJSGrammarErrors2.js + +// @filename: /a.js +export default 1; + +// @filename: /b.js +/** + * @deprecated + */ +export { default as A } from "./a"; diff --git a/tests/cases/conformance/salsa/plainJSRedeclare.ts b/tests/cases/conformance/salsa/plainJSRedeclare.ts new file mode 100644 index 0000000000000..be6831d0cdf12 --- /dev/null +++ b/tests/cases/conformance/salsa/plainJSRedeclare.ts @@ -0,0 +1,6 @@ +// @outdir: out/ +// @allowJS: true +// @filename: plainJSRedeclare.js +const orbitol = 1 +var orbitol = 1 + false +orbitol.toExponential() diff --git a/tests/cases/conformance/salsa/plainJSRedeclare2.ts b/tests/cases/conformance/salsa/plainJSRedeclare2.ts new file mode 100644 index 0000000000000..7409b6c8fe071 --- /dev/null +++ b/tests/cases/conformance/salsa/plainJSRedeclare2.ts @@ -0,0 +1,7 @@ +// @outdir: out/ +// @allowJS: true +// @checkJS: true +// @filename: plainJSRedeclare.js +const orbitol = 1 +var orbitol = 1 + false +orbitol.toExponential() diff --git a/tests/cases/conformance/salsa/plainJSRedeclare3.ts b/tests/cases/conformance/salsa/plainJSRedeclare3.ts new file mode 100644 index 0000000000000..1327fcfc1777c --- /dev/null +++ b/tests/cases/conformance/salsa/plainJSRedeclare3.ts @@ -0,0 +1,7 @@ +// @outdir: out/ +// @allowJS: true +// @checkJS: false +// @filename: plainJSRedeclare.js +const orbitol = 1 +var orbitol = 1 + false +orbitol.toExponential() diff --git a/tests/cases/conformance/salsa/plainJSReservedStrict.ts b/tests/cases/conformance/salsa/plainJSReservedStrict.ts new file mode 100644 index 0000000000000..fbd654927d1ea --- /dev/null +++ b/tests/cases/conformance/salsa/plainJSReservedStrict.ts @@ -0,0 +1,7 @@ +// @outdir: out/ +// @target: esnext +// @allowJS: true +// @filename: plainJSReservedStrict.js +"use strict" +const eval = 1 +const arguments = 2 diff --git a/tests/cases/conformance/statements/for-await-ofStatements/forAwaitPerIterationBindingDownlevel.ts b/tests/cases/conformance/statements/for-await-ofStatements/forAwaitPerIterationBindingDownlevel.ts new file mode 100644 index 0000000000000..af08f7d7294ca --- /dev/null +++ b/tests/cases/conformance/statements/for-await-ofStatements/forAwaitPerIterationBindingDownlevel.ts @@ -0,0 +1,29 @@ +// @target: es5 +// @lib: esnext, dom +// @downlevelIteration: true +// @noTypesAndSymbols: true + +const sleep = (tm: number) => new Promise(resolve => setTimeout(resolve, tm)); + +async function* gen() { + yield 1; + await sleep(1000); + yield 2; +} + +const log = console.log; + +(async () => { + for await (const outer of gen()) { + log(`I'm loop ${outer}`); + (async () => { + const inner = outer; + await sleep(2000); + if (inner === outer) { + log(`I'm loop ${inner} and I know I'm loop ${outer}`); + } else { + log(`I'm loop ${inner}, but I think I'm loop ${outer}`); + } + })(); + } +})(); \ No newline at end of file diff --git a/tests/cases/conformance/types/literal/templateLiteralTypes1.ts b/tests/cases/conformance/types/literal/templateLiteralTypes1.ts index 185e0bf402d33..daa3fbaeb78e7 100644 --- a/tests/cases/conformance/types/literal/templateLiteralTypes1.ts +++ b/tests/cases/conformance/types/literal/templateLiteralTypes1.ts @@ -237,3 +237,20 @@ const obj2 = { } as const; let make = getProp2(obj2, 'cars.1.make'); // 'Trabant' + +// Repro from #46480 + +export type Spacing = + | `0` + | `${number}px` + | `${number}rem` + | `s${1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20}`; + +const spacing: Spacing = "s12" + +export type SpacingShorthand = + | `${Spacing} ${Spacing}` + | `${Spacing} ${Spacing} ${Spacing}` + | `${Spacing} ${Spacing} ${Spacing} ${Spacing}`; + +const test1: SpacingShorthand = "0 0 0"; diff --git a/tests/cases/conformance/types/literal/templateLiteralTypes3.ts b/tests/cases/conformance/types/literal/templateLiteralTypes3.ts index fbeae4b3f6545..8c47fff8cb22a 100644 --- a/tests/cases/conformance/types/literal/templateLiteralTypes3.ts +++ b/tests/cases/conformance/types/literal/templateLiteralTypes3.ts @@ -172,3 +172,22 @@ function reducer(action: Action) { action.response; } } + +// Repro from #46768 + +type DotString = `${string}.${string}.${string}`; + +declare function noSpread

(args: P[]): P; +declare function spread

(...args: P[]): P; + +noSpread([`1.${'2'}.3`, `1.${'2'}.4`]); +noSpread([`1.${'2' as string}.3`, `1.${'2' as string}.4`]); + +spread(`1.${'2'}.3`, `1.${'2'}.4`); +spread(`1.${'2' as string}.3`, `1.${'2' as string}.4`); + +function ft1(t: T, u: Uppercase, u1: Uppercase<`1.${T}.3`>, u2: Uppercase<`1.${T}.4`>) { + spread(`1.${t}.3`, `1.${t}.4`); + spread(`1.${u}.3`, `1.${u}.4`); + spread(u1, u2); +} diff --git a/tests/cases/conformance/types/mapped/isomorphicMappedTypeInference.ts b/tests/cases/conformance/types/mapped/isomorphicMappedTypeInference.ts index 031cf840d33f4..4cc2d08be6c6b 100644 --- a/tests/cases/conformance/types/mapped/isomorphicMappedTypeInference.ts +++ b/tests/cases/conformance/types/mapped/isomorphicMappedTypeInference.ts @@ -26,7 +26,7 @@ function boxify(obj: T): Boxified { return result; } -function unboxify(obj: Boxified): T { +function unboxify(obj: Boxified): T { let result = {} as T; for (let k in obj) { result[k] = unbox(obj[k]); diff --git a/tests/cases/conformance/types/mapped/mappedTypeConstraints2.ts b/tests/cases/conformance/types/mapped/mappedTypeConstraints2.ts new file mode 100644 index 0000000000000..b77abb21dc94c --- /dev/null +++ b/tests/cases/conformance/types/mapped/mappedTypeConstraints2.ts @@ -0,0 +1,28 @@ +// @strict: true +// @declaration: true + +type Mapped1 = { [P in K]: { a: P } }; + +function f1(obj: Mapped1, key: K) { + const x: { a: K } = obj[key]; +} + +type Mapped2 = { [P in K as `get${P}`]: { a: P } }; + +function f2(obj: Mapped2, key: `get${K}`) { + const x: { a: K } = obj[key]; // Error +} + +type Mapped3 = { [P in K as Uppercase

]: { a: P } }; + +function f3(obj: Mapped3, key: Uppercase) { + const x: { a: K } = obj[key]; // Error +} + +// Repro from #47794 + +type Foo = { + [RemappedT in T as `get${RemappedT}`]: RemappedT; +}; + +const get = (t: T, foo: Foo): T => foo[`get${t}`]; // Type 'Foo[`get${T}`]' is not assignable to type 'T' diff --git a/tests/cases/conformance/types/mapped/mappedTypeWithAny.ts b/tests/cases/conformance/types/mapped/mappedTypeWithAny.ts index f8b6f8a39b7d2..89c28ddafc68f 100644 --- a/tests/cases/conformance/types/mapped/mappedTypeWithAny.ts +++ b/tests/cases/conformance/types/mapped/mappedTypeWithAny.ts @@ -25,3 +25,41 @@ for (let id in z) { let data = z[id]; let x = data.notAValue; // Error } + +// Issue #46169. +// We want mapped types whose constraint is `keyof T` to +// map over `any` differently, depending on whether `T` +// is constrained to array and tuple types. +type Arrayish = { [K in keyof T]: T[K] }; +type Objectish = { [K in keyof T]: T[K] }; + +// When a mapped type whose constraint is `keyof T` is instantiated, +// `T` may be instantiated with a `U` which is constrained to +// array and tuple types. *Ideally*, when `U` is later instantiated with `any`, +// the result should also be some sort of array; however, at the moment we don't seem +// to have an easy way to preserve that information. More than just that, it would be +// inconsistent for two instantiations of `Objectish` to produce different outputs +// depending on the usage-site. As a result, `IndirectArrayish` does not act like `Arrayish`. +type IndirectArrayish = Objectish; + +function bar(arrayish: Arrayish, objectish: Objectish, indirectArrayish: IndirectArrayish) { + let arr: any[]; + arr = arrayish; + arr = objectish; + arr = indirectArrayish; +} + +declare function stringifyArray(arr: T): { -readonly [K in keyof T]: string }; +let abc: any[] = stringifyArray(void 0 as any); + +declare function stringifyPair(arr: T): { -readonly [K in keyof T]: string }; +let def: [any, any] = stringifyPair(void 0 as any); + +// Repro from #46582 + +type Evolvable = { + [P in keyof E]: never; +}; +type Evolver = any> = { + [key in keyof Partial]: never; +}; diff --git a/tests/cases/conformance/types/never/neverTypeErrors1.ts b/tests/cases/conformance/types/never/neverTypeErrors1.ts index 44435d5203dc8..0d9cece13145f 100644 --- a/tests/cases/conformance/types/never/neverTypeErrors1.ts +++ b/tests/cases/conformance/types/never/neverTypeErrors1.ts @@ -22,3 +22,25 @@ function f4(): never { for (const n of f4()) {} for (const n in f4()) {} + +function f5() { + let x: never[] = []; // Ok +} + +// Repro from #46032 + +interface A { + foo: "a"; +} + +interface B { + foo: "b"; +} + +type Union = A & B; + +function func(): { value: Union[] } { + return { + value: [], + }; +} diff --git a/tests/cases/conformance/types/never/neverTypeErrors2.ts b/tests/cases/conformance/types/never/neverTypeErrors2.ts index c9c37dcb15da2..15c66a69d2f52 100644 --- a/tests/cases/conformance/types/never/neverTypeErrors2.ts +++ b/tests/cases/conformance/types/never/neverTypeErrors2.ts @@ -24,3 +24,25 @@ function f4(): never { for (const n of f4()) {} for (const n in f4()) {} + +function f5() { + let x: never[] = []; // Ok +} + +// Repro from #46032 + +interface A { + foo: "a"; +} + +interface B { + foo: "b"; +} + +type Union = A & B; + +function func(): { value: Union[] } { + return { + value: [], + }; +} diff --git a/tests/cases/conformance/types/rest/genericRestParameters3.ts b/tests/cases/conformance/types/rest/genericRestParameters3.ts index 4bcc4741695d3..7cd481e2c7ac6 100644 --- a/tests/cases/conformance/types/rest/genericRestParameters3.ts +++ b/tests/cases/conformance/types/rest/genericRestParameters3.ts @@ -22,10 +22,10 @@ f1("foo"); // Error f2 = f1; f3 = f1; -f4 = f1; // Error, misaligned complex rest types +f4 = f1; f1 = f2; // Error f1 = f3; // Error -f1 = f4; // Error, misaligned complex rest types +f1 = f4; // Repro from #26110 @@ -66,3 +66,22 @@ hmm("what"); // no error? A = [] | [number, string] ? declare function foo2(...args: string[] | number[]): void; let x2: ReadonlyArray = ["hello"]; foo2(...x2); + +// Repros from #47754 + +type RestParams = [y: string] | [y: number]; + +type Signature = (x: string, ...rest: RestParams) => void; + +type MergedParams = Parameters; // [x: string, y: string] | [x: string, y: number] + +declare let ff1: (...rest: [string, string] | [string, number]) => void; +declare let ff2: (x: string, ...rest: [string] | [number]) => void; + +ff1 = ff2; +ff2 = ff1; + +function ff3(s1: (...args: [x: string, ...rest: A | [number]]) => void, s2: (x: string, ...rest: A | [number]) => void) { + s1 = s2; + s2 = s1; +} diff --git a/tests/cases/conformance/types/specifyingTypes/typeQueries/typeofThis.ts b/tests/cases/conformance/types/specifyingTypes/typeQueries/typeofThis.ts index 78eb779147ae2..420604c55072d 100644 --- a/tests/cases/conformance/types/specifyingTypes/typeQueries/typeofThis.ts +++ b/tests/cases/conformance/types/specifyingTypes/typeQueries/typeofThis.ts @@ -122,4 +122,25 @@ class Test11 { let y: string = o.this.x; // should narrow to string } } +} + +class Tests12 { + test1() { // OK + type Test = typeof this; + } + + test2() { // OK + for (;;) {} + type Test = typeof this; + } + + test3() { // expected no compile errors + for (const dummy in []) {} + type Test = typeof this; + } + + test4() { // expected no compile errors + for (const dummy of []) {} + type Test = typeof this; + } } \ No newline at end of file diff --git a/tests/cases/conformance/types/spread/spreadObjectOrFalsy.ts b/tests/cases/conformance/types/spread/spreadObjectOrFalsy.ts new file mode 100644 index 0000000000000..1606a065dc95f --- /dev/null +++ b/tests/cases/conformance/types/spread/spreadObjectOrFalsy.ts @@ -0,0 +1,53 @@ +// @strict: true +// @declaration: true + +function f1(a: T & undefined) { + return { ...a }; // Error +} + +function f2(a: T | T & undefined) { + return { ...a }; +} + +function f3(a: T) { + return { ...a }; // Error +} + +function f4(a: object | T) { + return { ...a }; +} + +function f5(a: S | T) { + return { ...a }; +} + +function f6(a: T) { + return { ...a }; +} + +// Repro from #46976 + +function g1(a: A) { + const { z } = a; + return { + ...z + }; +} + +// Repro from #47028 + +interface DatafulFoo { + data: T; +} + +class Foo { + data: T | undefined; + bar() { + if (this.hasData()) { + this.data.toLocaleLowerCase(); + } + } + hasData(): this is DatafulFoo { + return true; + } +} diff --git a/tests/cases/conformance/types/spread/spreadUnion4.ts b/tests/cases/conformance/types/spread/spreadUnion4.ts new file mode 100644 index 0000000000000..6a39ac3a3cc40 --- /dev/null +++ b/tests/cases/conformance/types/spread/spreadUnion4.ts @@ -0,0 +1,4 @@ +declare const a: { x: () => void } +declare const b: { x?: () => void } + +const c = { ...a, ...b }; diff --git a/tests/cases/conformance/types/typeParameters/typeArgumentLists/instantiationExpressionErrors.ts b/tests/cases/conformance/types/typeParameters/typeArgumentLists/instantiationExpressionErrors.ts new file mode 100644 index 0000000000000..c34a12f13bb80 --- /dev/null +++ b/tests/cases/conformance/types/typeParameters/typeArgumentLists/instantiationExpressionErrors.ts @@ -0,0 +1,44 @@ +// @strict: true +// @declaration: true + +declare let f: { (): T, g(): U }; + +// Type arguments in member expressions + +const a1 = f; // { (): number; g(): U; } +const a2 = f.g; // () => number +const a3 = f.g; // () => U +const a4 = f.g; // () => number +const a5 = f['g']; // () => number + +// `[` is an expression starter and cannot immediately follow a type argument list + +const a6 = f['g']; // Error +const a7 = (f)['g']; + +// An `<` cannot immediately follow a type argument list + +const a8 = f; // Relational operator error +const a9 = (f); // Error, no applicable signatures + +// Type arguments with `?.` token + +const b1 = f?.; // Error, `(` expected +const b2 = f?.(); +const b3 = f?.(); +const b4 = f?.(); // Error, expected no type arguments + +// Parsed as function call, even though this differs from JavaScript + +const x1 = f +(true); + +// Parsed as relational expression + +const x2 = f +true; + +// Parsed as instantiation expression + +const x3 = f; +true; diff --git a/tests/cases/conformance/types/typeParameters/typeArgumentLists/instantiationExpressions.ts b/tests/cases/conformance/types/typeParameters/typeArgumentLists/instantiationExpressions.ts new file mode 100644 index 0000000000000..ce9d23aacc96d --- /dev/null +++ b/tests/cases/conformance/types/typeParameters/typeArgumentLists/instantiationExpressions.ts @@ -0,0 +1,175 @@ +// @strict: true +// @declaration: true + +declare function fx(x: T): T; +declare function fx(x: T, n: number): T; +declare function fx(t: [T, U]): [T, U]; + +function f1() { + let f0 = fx<>; // Error + let f1 = fx; // { (x: string): string; (x: string, n: number): string; } + let f2 = fx; // (t: [string, number]) => [string, number] + let f3 = fx; // Error +} + +type T10 = typeof fx<>; // Error +type T11 = typeof fx; // { (x: string): string; (x: string, n: number): string; } +type T12 = typeof fx; // (t: [string, number]) => [string, number] +type T13 = typeof fx; // Error + +function f2() { + const A0 = Array<>; // Error + const A1 = Array; // new (...) => string[] + const A2 = Array; // Error +} + +type T20 = typeof Array<>; // Error +type T21 = typeof Array; // new (...) => string[] +type T22 = typeof Array; // Error + +declare class C { + constructor(x: T); + static f(x: U): U[]; +} + +function f3() { + let c1 = C; // { new (x: string): C; f(x: U): T[]; prototype: C; } + let f1 = C.f; // (x: string) => string[] +} + +function f10(f: { (a: T): T, (a: U, b: number): U[] }) { + let fs = f; // { (a: string): string; (a: string, b: number): string[]; } +} + +function f11(f: { (a: T): T, (a: string, b: number): string[] }) { + let fs = f; // (a: string) => string +} + +function f12(f: { (a: T): T, x: string }) { + let fs = f; // { (a: string): string; x: string; } +} + +function f13(f: { x: string, y: string }) { + let fs = f; // Error, no applicable signatures +} + +function f14(f: { new (a: T): T, new (a: U, b: number): U[] }) { + let fs = f; // { new (a: string): string; new (a: string, b: number): string[]; } +} + +function f15(f: { new (a: T): T, (a: U, b: number): U[] }) { + let fs = f; // { new (a: string): string; (a: string, b: number): string[]; } +} + +function f16(f: { new (a: T): T, (a: string, b: number): string[] }) { + let fs = f; // new (a: string) => string +} + +function f17(f: { (a: T): T, new (a: string, b: number): string[] }) { + let fs = f; // (a: string) => string +} + +function f20(f: ((a: T) => T) & ((a: U, b: number) => U[])) { + let fs = f; // ((a: string) => string) & ((a: string, b: number) => string[]]) +} + +function f21(f: ((a: T) => T) & ((a: string, b: number) => string[])) { + let fs = f; // (a: string) => string +} + +function f22(f: ((a: T) => T) & { x: string }) { + let fs = f; // ((a: string) => string) & { x: string } +} + +function f23(f: { x: string } & { y: string }) { + let fs = f; // Error, no applicable signatures +} + +function f24(f: (new (a: T) => T) & (new (a: U, b: number) => U[])) { + let fs = f; // (new (a: string) => string) & ((a: string, b: number) => string[]]) +} + +function f25(f: (new (a: T) => T) & ((a: U, b: number) => U[])) { + let fs = f; // (new (a: string) => string) & ((a: string, b: number) => string[]]) +} + +function f26(f: (new (a: T) => T) & ((a: string, b: number) => string[])) { + let fs = f; // new (a: string) => string +} + +function f27(f: ((a: T) => T) & (new (a: string, b: number) => string[])) { + let fs = f; // (a: string) => string +} + +function f30(f: ((a: T) => T) | ((a: U, b: number) => U[])) { + let fs = f; // ((a: string) => string) | ((a: string, b: number) => string[]]) +} + +function f31(f: ((a: T) => T) | ((a: string, b: number) => string[])) { + let fs = f; // Error, '(a: string, b: number) => string[]' has no applicable signatures +} + +function f32(f: ((a: T) => T) | { x: string }) { + let fs = f; // ((a: string) => string) | { x: string } +} + +function f33(f: { x: string } | { y: string }) { + let fs = f; // Error, no applicable signatures +} + +function f34(f: (new (a: T) => T) | (new (a: U, b: number) => U[])) { + let fs = f; // (new (a: string) => string) | ((a: string, b: number) => string[]]) +} + +function f35(f: (new (a: T) => T) | ((a: U, b: number) => U[])) { + let fs = f; // (new (a: string) => string) | ((a: string, b: number) => string[]]) +} + +function f36(f: (new (a: T) => T) | ((a: string, b: number) => string[])) { + let fs = f; // Error, '(a: string, b: number) => string[]' has no applicable signatures +} + +function f37(f: ((a: T) => T) | (new (a: string, b: number) => string[])) { + let fs = f; // Error, 'new (a: string, b: number) => string[]' has no applicable signatures +} + +function f38(x: A) => A) | ((x: B) => B[]), U>(f: T | U | ((x: C) => C[][])) { + let fs = f; // U | ((x: string) => string) | ((x: string) => string[]) | ((x: string) => string[][]) +} + +function makeBox(value: T) { + return { value }; +} + +type BoxFunc = typeof makeBox; // (value: T) => { value: T } +type StringBoxFunc = BoxFunc; // (value: string) => { value: string } + +type Box = ReturnType>; // { value: T } +type StringBox = Box; // { value: string } + +type A = InstanceType>; // U[] + +declare const g1: { + (a: T): { a: T }; + new (b: U): { b: U }; +} + +type T30 = typeof g1; // { (a: V) => { a: V }; new (b: V) => { b: V }; } +type T31 = ReturnType>; // { a: A } +type T32 = InstanceType>; // { b: B } + +declare const g2: { + (a: T): T; + new (b: T): T; +} + +type T40 = typeof g2; // Error +type T41 = typeof g2; // Error + +declare const g3: { + (a: T): T; + new (b: T): T; +} + +type T50 = typeof g3; // (a: U) => U +type T51 = typeof g3; // (b: U) => U diff --git a/tests/cases/conformance/types/typeParameters/typeParameterLists/typeParametersAvailableInNestedScope3.ts b/tests/cases/conformance/types/typeParameters/typeParameterLists/typeParametersAvailableInNestedScope3.ts new file mode 100644 index 0000000000000..bfc056c6749e3 --- /dev/null +++ b/tests/cases/conformance/types/typeParameters/typeParameterLists/typeParametersAvailableInNestedScope3.ts @@ -0,0 +1,14 @@ +// @declaration: true + +function foo(v: T) { + function a(a: T) { return a; } + function b(): T { return v; } + + function c(v: T) { + function a(a: T) { return a; } + function b(): T { return v; } + return { a, b }; + } + + return { a, b, c }; +} diff --git a/tests/cases/conformance/types/typeParameters/typeParameterLists/varianceAnnotations.ts b/tests/cases/conformance/types/typeParameters/typeParameterLists/varianceAnnotations.ts new file mode 100644 index 0000000000000..1a75b0c97a460 --- /dev/null +++ b/tests/cases/conformance/types/typeParameters/typeParameterLists/varianceAnnotations.ts @@ -0,0 +1,163 @@ +// @strict: true +// @declaration: true + +type Covariant = { + x: T; +} + +declare let super_covariant: Covariant; +declare let sub_covariant: Covariant; + +super_covariant = sub_covariant; +sub_covariant = super_covariant; // Error + +type Contravariant = { + f: (x: T) => void; +} + +declare let super_contravariant: Contravariant; +declare let sub_contravariant: Contravariant; + +super_contravariant = sub_contravariant; // Error +sub_contravariant = super_contravariant; + +type Invariant = { + f: (x: T) => T; +} + +declare let super_invariant: Invariant; +declare let sub_invariant: Invariant; + +super_invariant = sub_invariant; // Error +sub_invariant = super_invariant; // Error + +// Variance of various type constructors + +type T10 = T; +type T11 = keyof T; +type T12 = T[K]; +type T13 = T[keyof T]; + +// Variance annotation errors + +type Covariant1 = { // Error + x: T; +} + +type Contravariant1 = keyof T; // Error + +type Contravariant2 = { // Error + f: (x: T) => void; +} + +type Invariant1 = { // Error + f: (x: T) => T; +} + +type Invariant2 = { // Error + f: (x: T) => T; +} + +// Variance in circular types + +type Foo1 = { // Error + x: T; + f: FooFn1; +} + +type FooFn1 = (foo: Bar1) => void; + +type Bar1 = { + value: Foo1; +} + +type Foo2 = { // Error + x: T; + f: FooFn2; +} + +type FooFn2 = (foo: Bar2) => void; + +type Bar2 = { + value: Foo2; +} + +type Foo3 = { + x: T; + f: FooFn3; +} + +type FooFn3 = (foo: Bar3) => void; + +type Bar3 = { + value: Foo3; +} + +// Wrong modifier usage + +type T20 = T; // Error +type T21 = T; // Error +type T22 = T; // Error +type T23 = T; // Error + +declare function f1(x: T): void; // Error +declare function f2(): T; // Error + +class C { + in a = 0; // Error + out b = 0; // Error +} + +// Interface merging + +interface Baz {} +interface Baz {} + +declare let baz1: Baz; +declare let baz2: Baz; + +baz1 = baz2; // Error +baz2 = baz1; // Error + +// Repro from #44572 + +interface Parent { + child: Child | null; + parent: Parent | null; +} + +interface Child extends Parent { + readonly a: A; + readonly b: B; +} + +function fn(inp: Child) { + const a: Child = inp; +} + +const pu: Parent = { child: { a: 0, b: 0, child: null, parent: null }, parent: null }; +const notString: Parent = pu; // Error + +// Repro from comment in #44572 + +declare class StateNode { + _storedEvent: TEvent; + _action: ActionObject; + _state: StateNode; +} + +interface ActionObject { + exec: (meta: StateNode) => void; +} + +declare function createMachine(action: ActionObject): StateNode; + +declare function interpret(machine: StateNode): void; + +const machine = createMachine({} as any); + +interpret(machine); + +declare const qq: ActionObject<{ type: "PLAY"; value: number }>; + +createMachine<{ type: "PLAY"; value: number } | { type: "RESET" }>(qq); // Error diff --git a/tests/cases/conformance/types/uniqueSymbol/uniqueSymbolsDeclarationsInJs.ts b/tests/cases/conformance/types/uniqueSymbol/uniqueSymbolsDeclarationsInJs.ts index b01d4cc622e7c..775708331434c 100644 --- a/tests/cases/conformance/types/uniqueSymbol/uniqueSymbolsDeclarationsInJs.ts +++ b/tests/cases/conformance/types/uniqueSymbol/uniqueSymbolsDeclarationsInJs.ts @@ -31,3 +31,6 @@ class C { readonlyCall = Symbol(); readwriteCall = Symbol(); } + +/** @type {unique symbol} */ +const a = Symbol(); diff --git a/tests/cases/conformance/types/unknown/unknownType2.ts b/tests/cases/conformance/types/unknown/unknownType2.ts index 7da3093634ee8..a8ea79ee188e4 100644 --- a/tests/cases/conformance/types/unknown/unknownType2.ts +++ b/tests/cases/conformance/types/unknown/unknownType2.ts @@ -242,7 +242,7 @@ function notNotEquals(u: unknown) { else { const a: NumberEnum.A = u; } - + if (u !== NumberEnum.A && u !== NumberEnum.B && u !== StringEnum.A) { } else { diff --git a/tests/cases/docker/vscode/Dockerfile b/tests/cases/docker/vscode/Dockerfile index 2d6b3f0634c55..49af440de54c0 100644 --- a/tests/cases/docker/vscode/Dockerfile +++ b/tests/cases/docker/vscode/Dockerfile @@ -1,5 +1,5 @@ # vscode only supports older node -FROM node:10 +FROM node:14 RUN apt-get update RUN apt-get install libsecret-1-dev libx11-dev libxkbfile-dev -y RUN npm i -g yarn --force diff --git a/tests/cases/docker/vue-next/Dockerfile b/tests/cases/docker/vue-next/Dockerfile index 86b9cb81fe200..a668cb34a0527 100644 --- a/tests/cases/docker/vue-next/Dockerfile +++ b/tests/cases/docker/vue-next/Dockerfile @@ -1,10 +1,10 @@ FROM node:current -RUN npm install -g yarn lerna --force -RUN git clone --depth 1 https://github.com/vuejs/vue-next.git /vue-next +RUN npm install -g pnpm +RUN git clone --depth 1 https://github.com/vuejs/core.git /vue-next WORKDIR /vue-next COPY --from=typescript/typescript /typescript/typescript-*.tgz typescript.tgz # Sync up all TS versions used internally to the new one -RUN yarn add typescript@./typescript.tgz --exact --dev --ignore-scripts -W -RUN yarn +RUN pnpm add typescript@./typescript.tgz --save-exact --save-dev --ignore-scripts -W +RUN pnpm i ENTRYPOINT [ "npm" ] CMD [ "run", "build", "--production", "--", "--types" ] \ No newline at end of file diff --git a/tests/cases/fourslash/addAllMissingImportsNoCrash2.ts b/tests/cases/fourslash/addAllMissingImportsNoCrash2.ts new file mode 100644 index 0000000000000..9e1dfaa1fa834 --- /dev/null +++ b/tests/cases/fourslash/addAllMissingImportsNoCrash2.ts @@ -0,0 +1,8 @@ +/// + +// @Filename: file1.ts +//// export { /**/default }; + +goTo.marker(); + +verify.not.codeFixAllAvailable("fixMissingImport"); diff --git a/tests/cases/fourslash/asConstRefsNoErrors1.ts b/tests/cases/fourslash/asConstRefsNoErrors1.ts new file mode 100644 index 0000000000000..6bb63914c8c4c --- /dev/null +++ b/tests/cases/fourslash/asConstRefsNoErrors1.ts @@ -0,0 +1,8 @@ +/// + +////class Tex { +//// type = 'Text' as /**/const; +////} + +verify.goToDefinition("", []); +verify.noErrors(); \ No newline at end of file diff --git a/tests/cases/fourslash/asConstRefsNoErrors2.ts b/tests/cases/fourslash/asConstRefsNoErrors2.ts new file mode 100644 index 0000000000000..74ea6a4e8929c --- /dev/null +++ b/tests/cases/fourslash/asConstRefsNoErrors2.ts @@ -0,0 +1,8 @@ +/// + +////class Tex { +//// type = 'Text'; +////} + +verify.goToDefinition("", []); +verify.noErrors(); \ No newline at end of file diff --git a/tests/cases/fourslash/asConstRefsNoErrors3.ts b/tests/cases/fourslash/asConstRefsNoErrors3.ts new file mode 100644 index 0000000000000..be450befafd38 --- /dev/null +++ b/tests/cases/fourslash/asConstRefsNoErrors3.ts @@ -0,0 +1,10 @@ +/// + +// @checkJs: true +// @Filename: file.js +////class Tex { +//// type = (/** @type {/**/const} */'Text'); +////} + +verify.goToDefinition("", []); +verify.noErrors(); \ No newline at end of file diff --git a/tests/cases/fourslash/autoImportsWithRootDirsAndRootedPath01.ts b/tests/cases/fourslash/autoImportsWithRootDirsAndRootedPath01.ts new file mode 100644 index 0000000000000..08073349cb128 --- /dev/null +++ b/tests/cases/fourslash/autoImportsWithRootDirsAndRootedPath01.ts @@ -0,0 +1,24 @@ +/// + +// @Filename: /dir/foo.ts +//// export function foo() {} + +// @Filename: /dir/bar.ts +//// /*$*/ + +// @Filename: /dir/tsconfig.json +////{ +//// "compilerOptions": { +//// "module": "amd", +//// "moduleResolution": "classic", +//// "rootDirs": ["D:/"] +//// } +////} + +goTo.marker("$"); +verify.completions({ + preferences: { + includeCompletionsForModuleExports: true, + allowIncompleteCompletions: true, + } +}); diff --git a/tests/cases/fourslash/cloduleAsBaseClass.ts b/tests/cases/fourslash/cloduleAsBaseClass.ts index 09929e8417249..870b9994edf79 100644 --- a/tests/cases/fourslash/cloduleAsBaseClass.ts +++ b/tests/cases/fourslash/cloduleAsBaseClass.ts @@ -23,18 +23,17 @@ ////d./*1*/ ////D./*2*/ -verify.completions({ marker: "1", exact: ["foo2", "foo"] }); +verify.completions({ marker: "1", exact: ["foo", "foo2"] }); edit.insert('foo()'); verify.completions({ marker: "2", - exact: [ - { name: "prototype", sortText: completion.SortText.LocationPriority }, - { name: "bar2", sortText: completion.SortText.LocalDeclarationPriority }, + exact: completion.functionMembersPlus([ { name: "bar", sortText: completion.SortText.LocalDeclarationPriority }, + { name: "bar2", sortText: completion.SortText.LocalDeclarationPriority }, { name: "baz", sortText: completion.SortText.LocationPriority }, + { name: "prototype", sortText: completion.SortText.LocationPriority }, { name: "x", sortText: completion.SortText.LocationPriority }, - ...completion.functionMembers - ] + ]) }); edit.insert('bar()'); verify.noErrors(); diff --git a/tests/cases/fourslash/cloduleAsBaseClass2.ts b/tests/cases/fourslash/cloduleAsBaseClass2.ts index 4053bfb2c02cb..1c6ffaa2cfc5d 100644 --- a/tests/cases/fourslash/cloduleAsBaseClass2.ts +++ b/tests/cases/fourslash/cloduleAsBaseClass2.ts @@ -28,7 +28,7 @@ ////d./*1*/ ////D./*2*/ -verify.completions({ marker: "1", exact: ["foo2", "foo"] }); +verify.completions({ marker: "1", exact: ["foo", "foo2"] }); edit.insert('foo()'); verify.completions({ diff --git a/tests/cases/fourslash/codeFixAddConvertToUnknownForNonOverlappingTypes9.ts b/tests/cases/fourslash/codeFixAddConvertToUnknownForNonOverlappingTypes9.ts new file mode 100644 index 0000000000000..1a4c091fbcfe9 --- /dev/null +++ b/tests/cases/fourslash/codeFixAddConvertToUnknownForNonOverlappingTypes9.ts @@ -0,0 +1,8 @@ +/// + +// @checkJs: true +// @allowJs: true +// @filename: a.js +////let x = /** @type {string} */ (100); + +verify.not.codeFixAvailable(ts.Diagnostics.Add_unknown_conversion_for_non_overlapping_types.message); diff --git a/tests/cases/fourslash/codeFixAddMissingAttributes10.ts b/tests/cases/fourslash/codeFixAddMissingAttributes10.ts new file mode 100644 index 0000000000000..4bdbebda7dc3a --- /dev/null +++ b/tests/cases/fourslash/codeFixAddMissingAttributes10.ts @@ -0,0 +1,18 @@ +/// + +// @jsx: preserve +// @filename: foo.tsx + +////type A = 'a' | 'b' | 'c' | 'd' | 'e'; +////type B = 1 | 2 | 3; +////type C = '@' | '!'; +////type D = `${A}${Uppercase}${B}${C}`; + +////const A = (props: { [K in D]: K }) => +////

; +//// +////const Bar = () => +//// [||] + +verify.not.codeFixAvailable("fixMissingAttributes"); + diff --git a/tests/cases/fourslash/codeFixAddMissingAttributes8.ts b/tests/cases/fourslash/codeFixAddMissingAttributes8.ts new file mode 100644 index 0000000000000..a99f145688077 --- /dev/null +++ b/tests/cases/fourslash/codeFixAddMissingAttributes8.ts @@ -0,0 +1,20 @@ +/// + +// @jsx: preserve +// @filename: foo.tsx + +////type A = 'a' | 'b'; +////type B = 'd' | 'c'; +////type C = `${A}${B}`; + +////const A = (props: { [K in C]: K }) => +////
; +//// +////const Bar = () => +//// [|
|] + +verify.codeFix({ + index: 0, + description: ts.Diagnostics.Add_missing_attributes.message, + newRangeContent: `` +}); diff --git a/tests/cases/fourslash/codeFixAddMissingAttributes9.ts b/tests/cases/fourslash/codeFixAddMissingAttributes9.ts new file mode 100644 index 0000000000000..ea7e8bde9100e --- /dev/null +++ b/tests/cases/fourslash/codeFixAddMissingAttributes9.ts @@ -0,0 +1,20 @@ +/// + +// @jsx: preserve +// @filename: foo.tsx + +////type A = 'a-' | 'b-'; +////type B = 'd' | 'c'; +////type C = `${A}${B}`; + +////const A = (props: { [K in C]: K }) => +////
; +//// +////const Bar = () => +//// [||] + +verify.codeFix({ + index: 0, + description: ts.Diagnostics.Add_missing_attributes.message, + newRangeContent: `` +}); diff --git a/tests/cases/fourslash/codeFixAddMissingMember22.ts b/tests/cases/fourslash/codeFixAddMissingMember22.ts new file mode 100644 index 0000000000000..c4847f3f16a2a --- /dev/null +++ b/tests/cases/fourslash/codeFixAddMissingMember22.ts @@ -0,0 +1,15 @@ +/// + +////[|type Foo = {};|] +////function f(foo: Foo) { +//// foo.y; +////} + +verify.codeFix({ + description: [ts.Diagnostics.Declare_property_0.message, "y"], + index: 0, + newRangeContent: +`type Foo = { + y: any; +};` +}); diff --git a/tests/cases/fourslash/codeFixAddMissingMember23.ts b/tests/cases/fourslash/codeFixAddMissingMember23.ts new file mode 100644 index 0000000000000..a51fa47aa703a --- /dev/null +++ b/tests/cases/fourslash/codeFixAddMissingMember23.ts @@ -0,0 +1,15 @@ +/// + +////[|type Foo = {};|] +////function f(foo: Foo) { +//// foo.y = 1; +////} + +verify.codeFix({ + description: [ts.Diagnostics.Declare_property_0.message, "y"], + index: 0, + newRangeContent: +`type Foo = { + y: number; +};` +}); diff --git a/tests/cases/fourslash/codeFixAddMissingMember24.ts b/tests/cases/fourslash/codeFixAddMissingMember24.ts new file mode 100644 index 0000000000000..3c58dc9eddd41 --- /dev/null +++ b/tests/cases/fourslash/codeFixAddMissingMember24.ts @@ -0,0 +1,15 @@ +/// + +////[|type Foo = {};|] +////function f(foo: Foo) { +//// foo.test(1, 1, ""); +////} + +verify.codeFix({ + description: [ts.Diagnostics.Declare_method_0.message, "test"], + index: 0, + newRangeContent: +`type Foo = { + test(arg0: number, arg1: number, arg2: string); +};` +}); diff --git a/tests/cases/fourslash/codeFixAddMissingMember25.ts b/tests/cases/fourslash/codeFixAddMissingMember25.ts new file mode 100644 index 0000000000000..86f5488a0a319 --- /dev/null +++ b/tests/cases/fourslash/codeFixAddMissingMember25.ts @@ -0,0 +1,18 @@ +/// + +////[|type Foo = { +//// y: number; +////};|] +////function f(foo: Foo) { +//// foo.x = 1; +////} + +verify.codeFix({ + description: [ts.Diagnostics.Declare_property_0.message, "x"], + index: 0, + newRangeContent: +`type Foo = { + x: number; + y: number; +};` +}); diff --git a/tests/cases/fourslash/codeFixAddMissingMember26.ts b/tests/cases/fourslash/codeFixAddMissingMember26.ts new file mode 100644 index 0000000000000..71f598793273d --- /dev/null +++ b/tests/cases/fourslash/codeFixAddMissingMember26.ts @@ -0,0 +1,15 @@ +/// + +////[|type Foo = {};|] +////function f(foo: Foo) { +//// foo.x = 1; +////} + +verify.codeFix({ + description: [ts.Diagnostics.Add_index_signature_for_property_0.message, "x"], + index: 1, + newRangeContent: +`type Foo = { + [x: string]: number; +};` +}); diff --git a/tests/cases/fourslash/codeFixAddMissingMember_all.ts b/tests/cases/fourslash/codeFixAddMissingMember_all.ts index cd82089109342..aed949bf358f1 100644 --- a/tests/cases/fourslash/codeFixAddMissingMember_all.ts +++ b/tests/cases/fourslash/codeFixAddMissingMember_all.ts @@ -24,6 +24,13 @@ //// ////enum En {} ////En.A; +//// +////type T = {}; +////function foo(t: T) { +//// t.x; +//// t.y = 1; +//// t.test(1, 2); +////} verify.codeFixAll({ fixId: "fixMissingMember", @@ -60,5 +67,16 @@ class Unrelated { enum En { A } -En.A;`, +En.A; + +type T = { + x: any; + y: number; + test(arg0: number, arg1: number); +}; +function foo(t: T) { + t.x; + t.y = 1; + t.test(1, 2); +}`, }); diff --git a/tests/cases/fourslash/codeFixAddMissingProperties15.ts b/tests/cases/fourslash/codeFixAddMissingProperties15.ts new file mode 100644 index 0000000000000..d121759bd2448 --- /dev/null +++ b/tests/cases/fourslash/codeFixAddMissingProperties15.ts @@ -0,0 +1,17 @@ +/// + +////interface Foo { +//// 1: number; +//// 2: number; +////} +////[|const foo: Foo = {}|] + +verify.codeFix({ + index: 0, + description: ts.Diagnostics.Add_missing_properties.message, + newRangeContent: +`const foo: Foo = { + 1: 0, + 2: 0 +}` +}); diff --git a/tests/cases/fourslash/codeFixAddMissingProperties16.ts b/tests/cases/fourslash/codeFixAddMissingProperties16.ts new file mode 100644 index 0000000000000..d63fe4ab90570 --- /dev/null +++ b/tests/cases/fourslash/codeFixAddMissingProperties16.ts @@ -0,0 +1,166 @@ +/// + +////type A = 'a' | 'b' | 'c' | 'd' | 'e'; +////type B = 1 | 2 | 3; +////type C = '@' | '!'; +////type D = `${A}${Uppercase}${B}${C}`; +//// +////[|const names: { [K in D]: K } = {};|] + +verify.codeFix({ + index: 0, + description: ts.Diagnostics.Add_missing_properties.message, + newRangeContent: +`const names: { [K in D]: K } = { + "aA1@": "aA1@", + "aA1!": "aA1!", + "aA2@": "aA2@", + "aA2!": "aA2!", + "aA3@": "aA3@", + "aA3!": "aA3!", + "aB1@": "aB1@", + "aB1!": "aB1!", + "aB2@": "aB2@", + "aB2!": "aB2!", + "aB3@": "aB3@", + "aB3!": "aB3!", + "aC1@": "aC1@", + "aC1!": "aC1!", + "aC2@": "aC2@", + "aC2!": "aC2!", + "aC3@": "aC3@", + "aC3!": "aC3!", + "aD1@": "aD1@", + "aD1!": "aD1!", + "aD2@": "aD2@", + "aD2!": "aD2!", + "aD3@": "aD3@", + "aD3!": "aD3!", + "aE1@": "aE1@", + "aE1!": "aE1!", + "aE2@": "aE2@", + "aE2!": "aE2!", + "aE3@": "aE3@", + "aE3!": "aE3!", + "bA1@": "bA1@", + "bA1!": "bA1!", + "bA2@": "bA2@", + "bA2!": "bA2!", + "bA3@": "bA3@", + "bA3!": "bA3!", + "bB1@": "bB1@", + "bB1!": "bB1!", + "bB2@": "bB2@", + "bB2!": "bB2!", + "bB3@": "bB3@", + "bB3!": "bB3!", + "bC1@": "bC1@", + "bC1!": "bC1!", + "bC2@": "bC2@", + "bC2!": "bC2!", + "bC3@": "bC3@", + "bC3!": "bC3!", + "bD1@": "bD1@", + "bD1!": "bD1!", + "bD2@": "bD2@", + "bD2!": "bD2!", + "bD3@": "bD3@", + "bD3!": "bD3!", + "bE1@": "bE1@", + "bE1!": "bE1!", + "bE2@": "bE2@", + "bE2!": "bE2!", + "bE3@": "bE3@", + "bE3!": "bE3!", + "cA1@": "cA1@", + "cA1!": "cA1!", + "cA2@": "cA2@", + "cA2!": "cA2!", + "cA3@": "cA3@", + "cA3!": "cA3!", + "cB1@": "cB1@", + "cB1!": "cB1!", + "cB2@": "cB2@", + "cB2!": "cB2!", + "cB3@": "cB3@", + "cB3!": "cB3!", + "cC1@": "cC1@", + "cC1!": "cC1!", + "cC2@": "cC2@", + "cC2!": "cC2!", + "cC3@": "cC3@", + "cC3!": "cC3!", + "cD1@": "cD1@", + "cD1!": "cD1!", + "cD2@": "cD2@", + "cD2!": "cD2!", + "cD3@": "cD3@", + "cD3!": "cD3!", + "cE1@": "cE1@", + "cE1!": "cE1!", + "cE2@": "cE2@", + "cE2!": "cE2!", + "cE3@": "cE3@", + "cE3!": "cE3!", + "dA1@": "dA1@", + "dA1!": "dA1!", + "dA2@": "dA2@", + "dA2!": "dA2!", + "dA3@": "dA3@", + "dA3!": "dA3!", + "dB1@": "dB1@", + "dB1!": "dB1!", + "dB2@": "dB2@", + "dB2!": "dB2!", + "dB3@": "dB3@", + "dB3!": "dB3!", + "dC1@": "dC1@", + "dC1!": "dC1!", + "dC2@": "dC2@", + "dC2!": "dC2!", + "dC3@": "dC3@", + "dC3!": "dC3!", + "dD1@": "dD1@", + "dD1!": "dD1!", + "dD2@": "dD2@", + "dD2!": "dD2!", + "dD3@": "dD3@", + "dD3!": "dD3!", + "dE1@": "dE1@", + "dE1!": "dE1!", + "dE2@": "dE2@", + "dE2!": "dE2!", + "dE3@": "dE3@", + "dE3!": "dE3!", + "eA1@": "eA1@", + "eA1!": "eA1!", + "eA2@": "eA2@", + "eA2!": "eA2!", + "eA3@": "eA3@", + "eA3!": "eA3!", + "eB1@": "eB1@", + "eB1!": "eB1!", + "eB2@": "eB2@", + "eB2!": "eB2!", + "eB3@": "eB3@", + "eB3!": "eB3!", + "eC1@": "eC1@", + "eC1!": "eC1!", + "eC2@": "eC2@", + "eC2!": "eC2!", + "eC3@": "eC3@", + "eC3!": "eC3!", + "eD1@": "eD1@", + "eD1!": "eD1!", + "eD2@": "eD2@", + "eD2!": "eD2!", + "eD3@": "eD3@", + "eD3!": "eD3!", + "eE1@": "eE1@", + "eE1!": "eE1!", + "eE2@": "eE2@", + "eE2!": "eE2!", + "eE3@": "eE3@", + "eE3!": "eE3!" +};` +}); diff --git a/tests/cases/fourslash/codeFixAddMissingProperties17.ts b/tests/cases/fourslash/codeFixAddMissingProperties17.ts new file mode 100644 index 0000000000000..3f1cb6ade3af7 --- /dev/null +++ b/tests/cases/fourslash/codeFixAddMissingProperties17.ts @@ -0,0 +1,16 @@ +/// + +////interface Foo { +//// foo(): T; +////} +////[|const x: Foo = {};|] + +verify.codeFix({ + index: 0, + description: ts.Diagnostics.Add_missing_properties.message, + newRangeContent: `const x: Foo = { + foo: function(): string { + throw new Error("Function not implemented."); + } +};`, +}); diff --git a/tests/cases/fourslash/codeFixAddMissingProperties18.ts b/tests/cases/fourslash/codeFixAddMissingProperties18.ts new file mode 100644 index 0000000000000..53629b59c7b79 --- /dev/null +++ b/tests/cases/fourslash/codeFixAddMissingProperties18.ts @@ -0,0 +1,20 @@ +/// + +////interface Bar { +//// a: number; +////} +//// +////interface Foo { +//// foo(a: T): U; +////} +////[|const x: Foo = {};|] + +verify.codeFix({ + index: 0, + description: ts.Diagnostics.Add_missing_properties.message, + newRangeContent: `const x: Foo = { + foo: function(a: string): Bar { + throw new Error("Function not implemented."); + } +};`, +}); diff --git a/tests/cases/fourslash/codeFixAddMissingProperties_PreserveIndent.ts b/tests/cases/fourslash/codeFixAddMissingProperties_PreserveIndent.ts new file mode 100644 index 0000000000000..01ab7a6b13024 --- /dev/null +++ b/tests/cases/fourslash/codeFixAddMissingProperties_PreserveIndent.ts @@ -0,0 +1,50 @@ +/// + +////interface Test { +//// foo: string; +//// bar(a: string): void; +////} +////function f (_spec: any) {} +////function g (_spec: Test) {} +////[|f(() => { +//// g({}); +//// g( +//// {}); +//// g( +//// {} +//// ); +////});|] + +verify.codeFixAll({ + fixId: "fixMissingProperties", + fixAllDescription: ts.Diagnostics.Add_all_missing_properties.message, + newFileContent: `interface Test { + foo: string; + bar(a: string): void; +} +function f (_spec: any) {} +function g (_spec: Test) {} +f(() => { + g({ + foo: "", + bar: function(a: string): void { + throw new Error("Function not implemented."); + } + }); + g( + { + foo: "", + bar: function(a: string): void { + throw new Error("Function not implemented."); + } + }); + g( + { + foo: "", + bar: function(a: string): void { + throw new Error("Function not implemented."); + } + } + ); +});`, +}); diff --git a/tests/cases/fourslash/codeFixAddParameterNames.ts b/tests/cases/fourslash/codeFixAddParameterNames1.ts similarity index 100% rename from tests/cases/fourslash/codeFixAddParameterNames.ts rename to tests/cases/fourslash/codeFixAddParameterNames1.ts diff --git a/tests/cases/fourslash/codeFixAddParameterNames2.ts b/tests/cases/fourslash/codeFixAddParameterNames2.ts new file mode 100644 index 0000000000000..31e26358aebc4 --- /dev/null +++ b/tests/cases/fourslash/codeFixAddParameterNames2.ts @@ -0,0 +1,6 @@ +/// + +// @noImplicitAny: true +////type Rest = ([|...number|]) => void; + +verify.rangeAfterCodeFix("...arg0: number[]"); diff --git a/tests/cases/fourslash/codeFixAddParameterNames3.ts b/tests/cases/fourslash/codeFixAddParameterNames3.ts new file mode 100644 index 0000000000000..465471e11287f --- /dev/null +++ b/tests/cases/fourslash/codeFixAddParameterNames3.ts @@ -0,0 +1,6 @@ +/// + +// @noImplicitAny: true +////type Rest = ([|public string|]) => void; + +verify.rangeAfterCodeFix("public arg0: string"); diff --git a/tests/cases/fourslash/codeFixAwaitInSyncFunction16.ts b/tests/cases/fourslash/codeFixAwaitInSyncFunction16.ts new file mode 100644 index 0000000000000..1f7c963f9b048 --- /dev/null +++ b/tests/cases/fourslash/codeFixAwaitInSyncFunction16.ts @@ -0,0 +1,16 @@ +/// + +////function foo() { +//// const foo = await(Promise.resolve(1)); +//// return foo; +////} + +verify.codeFix({ + index: 0, + description: "Add async modifier to containing function", + newFileContent: +`async function foo() { + const foo = await(Promise.resolve(1)); + return foo; +}`, +}); diff --git a/tests/cases/fourslash/codeFixClassExtendAbstractMethod.ts b/tests/cases/fourslash/codeFixClassExtendAbstractMethod.ts index cfab4853025da..c97c08ad7f95c 100644 --- a/tests/cases/fourslash/codeFixClassExtendAbstractMethod.ts +++ b/tests/cases/fourslash/codeFixClassExtendAbstractMethod.ts @@ -26,7 +26,7 @@ class C extends A { f(a: number, b: string): this; f(a: string, b: number): Function; f(a: string): Function; - f(a: any, b?: any): boolean | Function | this { + f(a: unknown, b?: unknown): boolean | Function | this { throw new Error("Method not implemented."); } foo(): number { diff --git a/tests/cases/fourslash/codeFixClassImplementInterfaceComputedPropertyNameWellKnownSymbols.ts b/tests/cases/fourslash/codeFixClassImplementInterfaceComputedPropertyNameWellKnownSymbols.ts index 163fad1cb9b7b..371d6115b14bb 100644 --- a/tests/cases/fourslash/codeFixClassImplementInterfaceComputedPropertyNameWellKnownSymbols.ts +++ b/tests/cases/fourslash/codeFixClassImplementInterfaceComputedPropertyNameWellKnownSymbols.ts @@ -62,7 +62,7 @@ class C implements I { [Symbol.toPrimitive](hint: "number"): number; [Symbol.toPrimitive](hint: "default"): number; [Symbol.toPrimitive](hint: "string"): string; - [Symbol.toPrimitive](hint: any): string | number { + [Symbol.toPrimitive](hint: unknown): string | number { throw new Error("Method not implemented."); } [Symbol.toStringTag]: string; diff --git a/tests/cases/fourslash/codeFixClassImplementInterfaceMethodTypePredicate.ts b/tests/cases/fourslash/codeFixClassImplementInterfaceMethodTypePredicate.ts index f581a831cc7be..5bde0523ca10a 100644 --- a/tests/cases/fourslash/codeFixClassImplementInterfaceMethodTypePredicate.ts +++ b/tests/cases/fourslash/codeFixClassImplementInterfaceMethodTypePredicate.ts @@ -18,7 +18,7 @@ verify.codeFix({ class C implements I { f(i: any): i is I; f(): this is I; - f(i?: any): boolean { + f(i?: unknown): boolean { throw new Error("Method not implemented."); } }`, diff --git a/tests/cases/fourslash/codeFixClassImplementInterfaceMultipleSignatures.ts b/tests/cases/fourslash/codeFixClassImplementInterfaceMultipleSignatures.ts index f036ca38058aa..d25ace4b16f0b 100644 --- a/tests/cases/fourslash/codeFixClassImplementInterfaceMultipleSignatures.ts +++ b/tests/cases/fourslash/codeFixClassImplementInterfaceMultipleSignatures.ts @@ -21,7 +21,7 @@ class C implements I { method(a: number, b: string): boolean; method(a: string, b: number): Function; method(a: string): Function; - method(a: any, b?: any): boolean | Function { + method(a: unknown, b?: unknown): boolean | Function { throw new Error("Method not implemented."); } }`, diff --git a/tests/cases/fourslash/codeFixClassImplementInterfaceMultipleSignaturesRest1.ts b/tests/cases/fourslash/codeFixClassImplementInterfaceMultipleSignaturesRest1.ts index b5da1ffec4c38..49d07a6be17ec 100644 --- a/tests/cases/fourslash/codeFixClassImplementInterfaceMultipleSignaturesRest1.ts +++ b/tests/cases/fourslash/codeFixClassImplementInterfaceMultipleSignaturesRest1.ts @@ -21,7 +21,7 @@ class C implements I { method(a: number, ...b: string[]): boolean; method(a: string, ...b: number[]): Function; method(a: string): Function; - method(a: any, ...b?: any[]): boolean | Function { + method(a: unknown, ...b?: unknown[]): boolean | Function { throw new Error("Method not implemented."); } }`, diff --git a/tests/cases/fourslash/codeFixClassImplementInterfaceMultipleSignaturesRest2.ts b/tests/cases/fourslash/codeFixClassImplementInterfaceMultipleSignaturesRest2.ts index c1cf60ab1bc6b..24bd7c7209907 100644 --- a/tests/cases/fourslash/codeFixClassImplementInterfaceMultipleSignaturesRest2.ts +++ b/tests/cases/fourslash/codeFixClassImplementInterfaceMultipleSignaturesRest2.ts @@ -21,7 +21,7 @@ class C implements I { method(a: number, ...b: string[]): boolean; method(a: string, b: number): Function; method(a: string): Function; - method(a: any, b?: any, ...rest?: any[]): boolean | Function { + method(a: unknown, b?: unknown, ...rest?: unknown[]): boolean | Function { throw new Error("Method not implemented."); } }`, diff --git a/tests/cases/fourslash/codeFixClassPropertyInitialization14.ts b/tests/cases/fourslash/codeFixClassPropertyInitialization14.ts new file mode 100644 index 0000000000000..3d968b906f5fd --- /dev/null +++ b/tests/cases/fourslash/codeFixClassPropertyInitialization14.ts @@ -0,0 +1,21 @@ +/// + +// @strict: true +// @checkJs: true +// @allowJs: true +// @filename: a.js + +////class Foo { +//// /** @type {string} */ +//// a; +////} + +verify.codeFix({ + description: `Add 'undefined' type to property 'a'`, + newFileContent: +`class Foo { + /** @type {string | undefined} */ + a; +}`, + index: 2 +}) diff --git a/tests/cases/fourslash/codeFixClassPropertyInitialization15.ts b/tests/cases/fourslash/codeFixClassPropertyInitialization15.ts new file mode 100644 index 0000000000000..4d1d93adb0ec6 --- /dev/null +++ b/tests/cases/fourslash/codeFixClassPropertyInitialization15.ts @@ -0,0 +1,26 @@ +/// + +// @strict: true +// @checkJs: true +// @allowJs: true +// @filename: a.js +////class Foo { +//// /** +//// * comment +//// * @type {string} +//// */ +//// a; +////} + +verify.codeFix({ + description: `Add 'undefined' type to property 'a'`, + newFileContent: +`class Foo { + /** + * comment + * @type {string | undefined} + */ + a; +}`, + index: 2 +}) diff --git a/tests/cases/fourslash/codeFixClassPropertyInitialization16.ts b/tests/cases/fourslash/codeFixClassPropertyInitialization16.ts new file mode 100644 index 0000000000000..7c6c0fe9e3f3d --- /dev/null +++ b/tests/cases/fourslash/codeFixClassPropertyInitialization16.ts @@ -0,0 +1,24 @@ +/// + +// @strict: true +// @checkJs: true +// @allowJs: true +// @filename: a.js +////class Foo { +//// /** +//// * @type {string} +//// */ +//// a; +////} + +verify.codeFix({ + description: `Add 'undefined' type to property 'a'`, + newFileContent: +`class Foo { + /** + * @type {string | undefined} + */ + a; +}`, + index: 2 +}) diff --git a/tests/cases/fourslash/codeFixClassPropertyInitialization17.ts b/tests/cases/fourslash/codeFixClassPropertyInitialization17.ts new file mode 100644 index 0000000000000..4e89c2785533f --- /dev/null +++ b/tests/cases/fourslash/codeFixClassPropertyInitialization17.ts @@ -0,0 +1,17 @@ +/// + +// @strict: true + +//// class T { +//// // comment +//// a: string; +//// } + +verify.codeFix({ + description: `Add definite assignment assertion to property 'a: string;'`, + newFileContent: `class T { + // comment + a!: string; +}`, + index: 1 +}) diff --git a/tests/cases/fourslash/codeFixClassPropertyInitialization18.ts b/tests/cases/fourslash/codeFixClassPropertyInitialization18.ts new file mode 100644 index 0000000000000..76dcbdb4e2716 --- /dev/null +++ b/tests/cases/fourslash/codeFixClassPropertyInitialization18.ts @@ -0,0 +1,15 @@ +/// + +// @strict: true + +//// class T { +//// a: string; // comment +//// } + +verify.codeFix({ + description: `Add definite assignment assertion to property 'a: string;'`, + newFileContent: `class T { + a!: string; // comment +}`, + index: 1 +}) diff --git a/tests/cases/fourslash/codeFixClassPropertyInitialization19.ts b/tests/cases/fourslash/codeFixClassPropertyInitialization19.ts new file mode 100644 index 0000000000000..727dd09aad1b7 --- /dev/null +++ b/tests/cases/fourslash/codeFixClassPropertyInitialization19.ts @@ -0,0 +1,17 @@ +/// + +// @strict: true + +//// class T { +//// // comment +//// a: 2; +//// } + +verify.codeFix({ + description: `Add initializer to property 'a'`, + newFileContent: `class T { + // comment + a: 2 = 2; +}`, + index: 2 +}) diff --git a/tests/cases/fourslash/codeFixClassPropertyInitialization20.ts b/tests/cases/fourslash/codeFixClassPropertyInitialization20.ts new file mode 100644 index 0000000000000..35ccec948bc1a --- /dev/null +++ b/tests/cases/fourslash/codeFixClassPropertyInitialization20.ts @@ -0,0 +1,15 @@ +/// + +// @strict: true + +//// class T { +//// a: 2; // comment +//// } + +verify.codeFix({ + description: `Add initializer to property 'a'`, + newFileContent: `class T { + a: 2 = 2; // comment +}`, + index: 2 +}) diff --git a/tests/cases/fourslash/codeFixClassPropertyInitialization_all_4.ts b/tests/cases/fourslash/codeFixClassPropertyInitialization_all_4.ts new file mode 100644 index 0000000000000..50392c4ba7c1c --- /dev/null +++ b/tests/cases/fourslash/codeFixClassPropertyInitialization_all_4.ts @@ -0,0 +1,46 @@ +/// + +// @strict: true +// @checkJs: true +// @allowJs: true +// @filename: a.js +////class A { +//// /** +//// * comment +//// * @type {string} +//// */ +//// a; +////} +////class B { +//// /** @type {string} */ +//// a; +////} +////class C { +//// /** +//// * @type {string} +//// */ +//// a; +////} + +verify.codeFixAll({ + fixId: 'addMissingPropertyUndefinedType', + fixAllDescription: "Add undefined type to all uninitialized properties", + newFileContent: +`class A { + /** + * comment + * @type {string | undefined} + */ + a; +} +class B { + /** @type {string | undefined} */ + a; +} +class C { + /** + * @type {string | undefined} + */ + a; +}` +}); diff --git a/tests/cases/fourslash/codeFixConvertToMappedObjectType13.ts b/tests/cases/fourslash/codeFixConvertToMappedObjectType13.ts new file mode 100644 index 0000000000000..c5655f99f58f0 --- /dev/null +++ b/tests/cases/fourslash/codeFixConvertToMappedObjectType13.ts @@ -0,0 +1,7 @@ +/// + +////let x: { +//// [p: ""]: string; +////} + +verify.not.codeFixAvailable("fixConvertToMappedObjectType"); diff --git a/tests/cases/fourslash/codeFixDeleteUnmatchedParameter1.ts b/tests/cases/fourslash/codeFixDeleteUnmatchedParameter1.ts new file mode 100644 index 0000000000000..caad37daa44a7 --- /dev/null +++ b/tests/cases/fourslash/codeFixDeleteUnmatchedParameter1.ts @@ -0,0 +1,23 @@ +/// + +// @filename: a.ts +/////** +//// * @param {number} a +//// * @param {number} b +//// */ +////function foo() {} + +verify.codeFixAvailable([ + { description: "Delete unused '@param' tag 'a'" }, + { description: "Delete unused '@param' tag 'b'" }, +]); + +verify.codeFix({ + description: [ts.Diagnostics.Delete_unused_param_tag_0.message, "a"], + index: 0, + newFileContent: +`/** + * @param {number} b + */ +function foo() {}`, +}); diff --git a/tests/cases/fourslash/codeFixDeleteUnmatchedParameter2.ts b/tests/cases/fourslash/codeFixDeleteUnmatchedParameter2.ts new file mode 100644 index 0000000000000..5a9adbce8116f --- /dev/null +++ b/tests/cases/fourslash/codeFixDeleteUnmatchedParameter2.ts @@ -0,0 +1,26 @@ +/// + +// @filename: a.ts +/////** +//// * @param {number} a +//// * @param {string} b +//// */ +////function foo(a: number) { +//// a; +////} + +verify.codeFixAvailable([ + { description: "Delete unused '@param' tag 'b'" }, +]); + +verify.codeFix({ + description: [ts.Diagnostics.Delete_unused_param_tag_0.message, "b"], + index: 0, + newFileContent: +`/** + * @param {number} a + */ +function foo(a: number) { + a; +}` +}); diff --git a/tests/cases/fourslash/codeFixDeleteUnmatchedParameter3.ts b/tests/cases/fourslash/codeFixDeleteUnmatchedParameter3.ts new file mode 100644 index 0000000000000..1f053813182fc --- /dev/null +++ b/tests/cases/fourslash/codeFixDeleteUnmatchedParameter3.ts @@ -0,0 +1,30 @@ +/// + +// @filename: a.ts +/////** +//// * @param {number} a +//// * @param {string} b +//// * @param {number} c +//// */ +////function foo(a: number, c: number) { +//// a; +//// c; +////} + +verify.codeFixAvailable([ + { description: "Delete unused '@param' tag 'b'" }, +]); + +verify.codeFix({ + description: [ts.Diagnostics.Delete_unused_param_tag_0.message, "b"], + index: 0, + newFileContent: +`/** + * @param {number} a + * @param {number} c + */ +function foo(a: number, c: number) { + a; + c; +}` +}); diff --git a/tests/cases/fourslash/codeFixDeleteUnmatchedParameter4.ts b/tests/cases/fourslash/codeFixDeleteUnmatchedParameter4.ts new file mode 100644 index 0000000000000..c84f721ab7508 --- /dev/null +++ b/tests/cases/fourslash/codeFixDeleteUnmatchedParameter4.ts @@ -0,0 +1,19 @@ +/// + +// @filename: a.ts +/////** +//// * @param {number} a +//// */ +////function foo() {} + +verify.codeFixAvailable([ + { description: "Delete unused '@param' tag 'a'" }, +]); + +verify.codeFix({ + description: [ts.Diagnostics.Delete_unused_param_tag_0.message, "a"], + index: 0, + newFileContent: +`/** */ +function foo() {}` +}); diff --git a/tests/cases/fourslash/codeFixDeleteUnmatchedParameterJS1.ts b/tests/cases/fourslash/codeFixDeleteUnmatchedParameterJS1.ts new file mode 100644 index 0000000000000..75fa6515cd117 --- /dev/null +++ b/tests/cases/fourslash/codeFixDeleteUnmatchedParameterJS1.ts @@ -0,0 +1,27 @@ +/// + +// @allowJs: true +// @checkJs: true +// @filename: /a.js +/////** +//// * @param {number} a +//// * @param {number} b +//// */ +////function foo() {} + +verify.codeFixAvailable([ + { description: "Delete unused '@param' tag 'a'" }, + { description: "Disable checking for this file" }, + { description: "Delete unused '@param' tag 'b'" }, + { description: "Disable checking for this file" }, +]); + +verify.codeFix({ + description: [ts.Diagnostics.Delete_unused_param_tag_0.message, "a"], + index: 0, + newFileContent: +`/** + * @param {number} b + */ +function foo() {}`, +}); diff --git a/tests/cases/fourslash/codeFixDeleteUnmatchedParameterJS2.ts b/tests/cases/fourslash/codeFixDeleteUnmatchedParameterJS2.ts new file mode 100644 index 0000000000000..f8324b3116a2b --- /dev/null +++ b/tests/cases/fourslash/codeFixDeleteUnmatchedParameterJS2.ts @@ -0,0 +1,29 @@ +/// + +// @allowJs: true +// @checkJs: true +// @filename: /a.js +/////** +//// * @param {number} a +//// * @param {string} b +//// */ +////function foo(a) { +//// a; +////} + +verify.codeFixAvailable([ + { description: "Delete unused '@param' tag 'b'" }, + { description: "Disable checking for this file" }, +]); + +verify.codeFix({ + description: [ts.Diagnostics.Delete_unused_param_tag_0.message, "b"], + index: 0, + newFileContent: +`/** + * @param {number} a + */ +function foo(a) { + a; +}` +}); diff --git a/tests/cases/fourslash/codeFixDeleteUnmatchedParameterJS3.ts b/tests/cases/fourslash/codeFixDeleteUnmatchedParameterJS3.ts new file mode 100644 index 0000000000000..e02c1f51c0421 --- /dev/null +++ b/tests/cases/fourslash/codeFixDeleteUnmatchedParameterJS3.ts @@ -0,0 +1,33 @@ +/// + +// @allowJs: true +// @checkJs: true +// @filename: /a.js +/////** +//// * @param {number} a +//// * @param {string} b +//// * @param {number} c +//// */ +////function foo(a, c) { +//// a; +//// c; +////} + +verify.codeFixAvailable([ + { description: "Delete unused '@param' tag 'b'" }, + { description: "Disable checking for this file" }, +]); + +verify.codeFix({ + description: [ts.Diagnostics.Delete_unused_param_tag_0.message, "b"], + index: 0, + newFileContent: +`/** + * @param {number} a + * @param {number} c + */ +function foo(a, c) { + a; + c; +}` +}); diff --git a/tests/cases/fourslash/codeFixDeleteUnmatchedParameterJS4.ts b/tests/cases/fourslash/codeFixDeleteUnmatchedParameterJS4.ts new file mode 100644 index 0000000000000..272f49d1096a2 --- /dev/null +++ b/tests/cases/fourslash/codeFixDeleteUnmatchedParameterJS4.ts @@ -0,0 +1,22 @@ +/// + +// @allowJs: true +// @checkJs: true +// @filename: /a.js +/////** +//// * @param {number} a +//// */ +////function foo() {} + +verify.codeFixAvailable([ + { description: "Delete unused '@param' tag 'a'" }, + { description: "Disable checking for this file" }, +]); + +verify.codeFix({ + description: [ts.Diagnostics.Delete_unused_param_tag_0.message, "a"], + index: 0, + newFileContent: +`/** */ +function foo() {}` +}); diff --git a/tests/cases/fourslash/codeFixDeleteUnmatchedParameter_all.ts b/tests/cases/fourslash/codeFixDeleteUnmatchedParameter_all.ts new file mode 100644 index 0000000000000..ee62961df6e81 --- /dev/null +++ b/tests/cases/fourslash/codeFixDeleteUnmatchedParameter_all.ts @@ -0,0 +1,51 @@ +/// + +// @filename: /a.ts +/////** +//// * @param {number} a +//// * @param {number} b +//// */ +////function f1() {} +//// +/////** +//// * @param {number} a +//// * @param {string} b +//// */ +////function f2(a: number) { +//// a; +////} +//// +/////** +//// * @param {number} a +//// * @param {string} b +//// * @param {number} c +//// */ +////function f3(a: number, c: number) { +//// a; +//// c; +////} + +goTo.file("/a.ts"); +verify.codeFixAll({ + fixId: "deleteUnmatchedParameter", + fixAllDescription: ts.Diagnostics.Delete_all_unused_param_tags.message, + newFileContent: +`/** */ +function f1() {} + +/** + * @param {number} a + */ +function f2(a: number) { + a; +} + +/** + * @param {number} a + * @param {number} c + */ +function f3(a: number, c: number) { + a; + c; +}`, +}); diff --git a/tests/cases/fourslash/codeFixDeleteUnmatchedParameter_allJS.ts b/tests/cases/fourslash/codeFixDeleteUnmatchedParameter_allJS.ts new file mode 100644 index 0000000000000..f139514e72d74 --- /dev/null +++ b/tests/cases/fourslash/codeFixDeleteUnmatchedParameter_allJS.ts @@ -0,0 +1,53 @@ +/// + +// @allowJs: true +// @checkJs: true +// @filename: /a.js +/////** +//// * @param {number} a +//// * @param {number} b +//// */ +////function f1() {} +//// +/////** +//// * @param {number} a +//// * @param {string} b +//// */ +////function f2(a) { +//// a; +////} +//// +/////** +//// * @param {number} a +//// * @param {string} b +//// * @param {number} c +//// */ +////function f3(a, c) { +//// a; +//// c; +////} + +goTo.file("/a.js"); +verify.codeFixAll({ + fixId: "deleteUnmatchedParameter", + fixAllDescription: ts.Diagnostics.Delete_all_unused_param_tags.message, + newFileContent: +`/** */ +function f1() {} + +/** + * @param {number} a + */ +function f2(a) { + a; +} + +/** + * @param {number} a + * @param {number} c + */ +function f3(a, c) { + a; + c; +}`, +}); diff --git a/tests/cases/fourslash/codeFixForgottenThisPropertyAccess01.ts b/tests/cases/fourslash/codeFixForgottenThisPropertyAccess01.ts index 8c241ff303293..22ca176aa032d 100644 --- a/tests/cases/fourslash/codeFixForgottenThisPropertyAccess01.ts +++ b/tests/cases/fourslash/codeFixForgottenThisPropertyAccess01.ts @@ -14,7 +14,7 @@ goTo.file("/b.ts"); verify.codeFixAvailable([ - { description: `Import 'foo' from module "./a"` }, + { description: `Add import from "./a"` }, { description: "Change spelling to 'fooo'" }, { description: "Add 'this.' to unresolved variable" }, ]); diff --git a/tests/cases/fourslash/codeFixImplicitThis_ts_functionDeclarationInGlobalScope.ts b/tests/cases/fourslash/codeFixImplicitThis_ts_functionDeclarationInGlobalScope.ts new file mode 100644 index 0000000000000..a2d51ba861176 --- /dev/null +++ b/tests/cases/fourslash/codeFixImplicitThis_ts_functionDeclarationInGlobalScope.ts @@ -0,0 +1,12 @@ +/// + +// @noImplicitThis: true + +////function foo() { +//// let x: typeof /**/this; +////} + +verify.codeFixAvailable([ + { description: "Infer 'this' type of 'foo' from usage" }, + { description: "Remove unused declaration for: 'x'" } +]); diff --git a/tests/cases/fourslash/codeFixInferFromUsageVariable4.ts b/tests/cases/fourslash/codeFixInferFromUsageVariable4.ts new file mode 100644 index 0000000000000..12db84cfef00f --- /dev/null +++ b/tests/cases/fourslash/codeFixInferFromUsageVariable4.ts @@ -0,0 +1,13 @@ +/// + +// @noImplicitAny: false +////[|let foo;|] +//// +////foo?.(); +////foo = () => {} + +verify.codeFix({ + description: "Infer type of 'foo' from usage", + index: 0, + newRangeContent: "let foo: () => void;" +}); diff --git a/tests/cases/fourslash/codeFixInferFromUsageVariable5.ts b/tests/cases/fourslash/codeFixInferFromUsageVariable5.ts new file mode 100644 index 0000000000000..7f364196d509c --- /dev/null +++ b/tests/cases/fourslash/codeFixInferFromUsageVariable5.ts @@ -0,0 +1,21 @@ +/// + +// @noImplicitAny: true + +// @Filename: /a.ts +////var foobarfoobarfoobarfoobar; + +// @Filename: /b.ts +////function bar() { +//// let y = foobarfoobarfoobarfoobar/**/; +////} + +goTo.file("/b.ts"); +goTo.marker(""); +verify.codeFix({ + description: "Infer type of 'foobarfoobarfoobarfoobar' from usage", + index: 0, + newFileContent: { + "/a.ts": "var foobarfoobarfoobarfoobar: any;" + } +}); diff --git a/tests/cases/fourslash/codeFixOverrideModifier_js1.ts b/tests/cases/fourslash/codeFixOverrideModifier_js1.ts index dd5675266572a..8f3584021cb92 100644 --- a/tests/cases/fourslash/codeFixOverrideModifier_js1.ts +++ b/tests/cases/fourslash/codeFixOverrideModifier_js1.ts @@ -1,5 +1,4 @@ /// - // @allowJs: true // @checkJs: true // @noEmit: true @@ -9,14 +8,22 @@ //// foo (v) {} //// } //// class D extends B { +//// /** @public */ //// foo (v) {} -//// /**@override*/ -//// bar (v) {} -//// } -//// class C { -//// /**@override*/ -//// foo () {} //// } -verify.not.codeFixAvailable("fixAddOverrideModifier"); -verify.not.codeFixAvailable("fixRemoveOverrideModifier"); +verify.codeFix({ + description: "Add 'override' modifier", + index: 0, + newFileContent: +`class B { + foo (v) {} +} +class D extends B { + /** + * + * @override + */ + foo (v) {} +}`, +}) \ No newline at end of file diff --git a/tests/cases/fourslash/codeFixOverrideModifier_js2.ts b/tests/cases/fourslash/codeFixOverrideModifier_js2.ts new file mode 100644 index 0000000000000..b2091a65498e5 --- /dev/null +++ b/tests/cases/fourslash/codeFixOverrideModifier_js2.ts @@ -0,0 +1,28 @@ +/// + +// @allowJs: true +// @checkJs: true +// @noEmit: true +// @noImplicitOverride: true +// @filename: a.js +//// class B { } +//// class D extends B { +//// /** +//// * @public +//// * @override +//// */ +//// foo (v) {} +//// } + +verify.codeFix({ + description: "Remove 'override' modifier", + index: 0, + newFileContent: +`class B { } +class D extends B { + /** + * + */ + foo (v) {} +}`, +}) \ No newline at end of file diff --git a/tests/cases/fourslash/codeFixRenameUnmatchedParameter1.ts b/tests/cases/fourslash/codeFixRenameUnmatchedParameter1.ts new file mode 100644 index 0000000000000..743c9da9073e0 --- /dev/null +++ b/tests/cases/fourslash/codeFixRenameUnmatchedParameter1.ts @@ -0,0 +1,30 @@ +/// + +// @filename: a.ts +/////** +//// * @param {number} a +//// * @param {number} c +//// */ +////function foo(a: number, b: string) { +//// a; +//// b; +////} + +verify.codeFixAvailable([ + { description: "Delete unused '@param' tag 'c'" }, + { description: "Rename '@param' tag name 'c' to 'b'" }, +]); + +verify.codeFix({ + description: [ts.Diagnostics.Rename_param_tag_name_0_to_1.message, "c", "b"], + index: 1, + newFileContent: +`/** + * @param {number} a + * @param {number} b + */ +function foo(a: number, b: string) { + a; + b; +}` +}); diff --git a/tests/cases/fourslash/codeFixRenameUnmatchedParameter2.ts b/tests/cases/fourslash/codeFixRenameUnmatchedParameter2.ts new file mode 100644 index 0000000000000..cc002d07ed6f4 --- /dev/null +++ b/tests/cases/fourslash/codeFixRenameUnmatchedParameter2.ts @@ -0,0 +1,34 @@ +/// + +// @filename: a.ts +/////** +//// * @param {number} d +//// * @param {number} a +//// * @param {number} b +//// */ +////function foo(a: number, b: string, c: string) { +//// a; +//// b; +//// c; +////} + +verify.codeFixAvailable([ + { description: "Delete unused '@param' tag 'd'" }, + { description: "Rename '@param' tag name 'd' to 'c'" }, +]); + +verify.codeFix({ + description: [ts.Diagnostics.Rename_param_tag_name_0_to_1.message, "d", "c"], + index: 1, + newFileContent: +`/** + * @param {number} c + * @param {number} a + * @param {number} b + */ +function foo(a: number, b: string, c: string) { + a; + b; + c; +}` +}); diff --git a/tests/cases/fourslash/codeFixRenameUnmatchedParameter3.ts b/tests/cases/fourslash/codeFixRenameUnmatchedParameter3.ts new file mode 100644 index 0000000000000..daf725ee5fab4 --- /dev/null +++ b/tests/cases/fourslash/codeFixRenameUnmatchedParameter3.ts @@ -0,0 +1,64 @@ +/// + +// @filename: a.ts +/////** +//// * @param {number} notDefined1 +//// * @param {number} notDefined2 +//// * @param {number} a +//// * @param {number} b +//// */ +////function foo(a: number, b: string, typo1: string, typo2: string) { +//// a; +//// b; +//// typo1; +//// typo2; +////} + +verify.codeFixAvailable([ + { description: "Delete unused '@param' tag 'notDefined1'" }, + { description: "Rename '@param' tag name 'notDefined1' to 'typo1'" }, + { description: "Delete unused '@param' tag 'notDefined2'" }, + { description: "Rename '@param' tag name 'notDefined2' to 'typo1'" }, +]); + +verify.codeFix({ + description: [ts.Diagnostics.Rename_param_tag_name_0_to_1.message, "notDefined1", "typo1"], + index: 1, + newFileContent: +`/** + * @param {number} typo1 + * @param {number} notDefined2 + * @param {number} a + * @param {number} b + */ +function foo(a: number, b: string, typo1: string, typo2: string) { + a; + b; + typo1; + typo2; +}`, + applyChanges: true +}); + +verify.codeFixAvailable([ + { description: "Delete unused '@param' tag 'notDefined2'" }, + { description: "Rename '@param' tag name 'notDefined2' to 'typo2'" }, +]); + +verify.codeFix({ + description: [ts.Diagnostics.Rename_param_tag_name_0_to_1.message, "notDefined2", "typo2"], + index: 1, + newFileContent: +`/** + * @param {number} typo1 + * @param {number} typo2 + * @param {number} a + * @param {number} b + */ +function foo(a: number, b: string, typo1: string, typo2: string) { + a; + b; + typo1; + typo2; +}`, +}); diff --git a/tests/cases/fourslash/codeFixRenameUnmatchedParameterJS1.ts b/tests/cases/fourslash/codeFixRenameUnmatchedParameterJS1.ts new file mode 100644 index 0000000000000..ccc7c97115026 --- /dev/null +++ b/tests/cases/fourslash/codeFixRenameUnmatchedParameterJS1.ts @@ -0,0 +1,34 @@ +/// + +// @allowJs: true +// @checkJs: true +// @filename: /a.js +/////** +//// * @param {number} a +//// * @param {number} c +//// */ +////function foo(a, b) { +//// a; +//// b; +////} + +verify.codeFixAvailable([ + { description: "Delete unused '@param' tag 'c'" }, + { description: "Rename '@param' tag name 'c' to 'b'" }, + { description: "Disable checking for this file" }, + { description: "Infer parameter types from usage" }, +]); + +verify.codeFix({ + description: [ts.Diagnostics.Rename_param_tag_name_0_to_1.message, "c", "b"], + index: 1, + newFileContent: +`/** + * @param {number} a + * @param {number} b + */ +function foo(a, b) { + a; + b; +}` +}); diff --git a/tests/cases/fourslash/codeFixRenameUnmatchedParameterJS2.ts b/tests/cases/fourslash/codeFixRenameUnmatchedParameterJS2.ts new file mode 100644 index 0000000000000..89acd2ff5904f --- /dev/null +++ b/tests/cases/fourslash/codeFixRenameUnmatchedParameterJS2.ts @@ -0,0 +1,38 @@ +/// + +// @allowJs: true +// @checkJs: true +// @filename: /a.js +/////** +//// * @param {number} d +//// * @param {number} a +//// * @param {number} b +//// */ +////function foo(a, b, c) { +//// a; +//// b; +//// c; +////} + +verify.codeFixAvailable([ + { description: "Delete unused '@param' tag 'd'" }, + { description: "Rename '@param' tag name 'd' to 'c'" }, + { description: "Disable checking for this file" }, + { description: "Infer parameter types from usage" }, +]); + +verify.codeFix({ + description: [ts.Diagnostics.Rename_param_tag_name_0_to_1.message, "d", "c"], + index: 1, + newFileContent: +`/** + * @param {number} c + * @param {number} a + * @param {number} b + */ +function foo(a, b, c) { + a; + b; + c; +}` +}); diff --git a/tests/cases/fourslash/codeFixRenameUnmatchedParameterJS3.ts b/tests/cases/fourslash/codeFixRenameUnmatchedParameterJS3.ts new file mode 100644 index 0000000000000..13c11a224c9b9 --- /dev/null +++ b/tests/cases/fourslash/codeFixRenameUnmatchedParameterJS3.ts @@ -0,0 +1,72 @@ +/// + +// @allowJs: true +// @checkJs: true +// @filename: /a.js +/////** +//// * @param {number} notDefined1 +//// * @param {number} notDefined2 +//// * @param {number} a +//// * @param {number} b +//// */ +////function foo(a, b, typo1, typo2) { +//// a; +//// b; +//// typo1; +//// typo2; +////} + +verify.codeFixAvailable([ + { description: "Delete unused '@param' tag 'notDefined1'" }, + { description: "Rename '@param' tag name 'notDefined1' to 'typo1'" }, + { description: "Disable checking for this file" }, + { description: "Delete unused '@param' tag 'notDefined2'" }, + { description: "Rename '@param' tag name 'notDefined2' to 'typo1'" }, + { description: "Disable checking for this file" }, + { description: "Infer parameter types from usage" }, + { description: "Infer parameter types from usage" }, +]); + +verify.codeFix({ + description: [ts.Diagnostics.Rename_param_tag_name_0_to_1.message, "notDefined1", "typo1"], + index: 1, + newFileContent: +`/** + * @param {number} typo1 + * @param {number} notDefined2 + * @param {number} a + * @param {number} b + */ +function foo(a, b, typo1, typo2) { + a; + b; + typo1; + typo2; +}`, + applyChanges: true +}); + +verify.codeFixAvailable([ + { description: "Delete unused '@param' tag 'notDefined2'" }, + { description: "Rename '@param' tag name 'notDefined2' to 'typo2'" }, + { description: "Disable checking for this file" }, + { description: "Infer parameter types from usage" }, +]); + +verify.codeFix({ + description: [ts.Diagnostics.Rename_param_tag_name_0_to_1.message, "notDefined2", "typo2"], + index: 1, + newFileContent: +`/** + * @param {number} typo1 + * @param {number} typo2 + * @param {number} a + * @param {number} b + */ +function foo(a, b, typo1, typo2) { + a; + b; + typo1; + typo2; +}`, +}); diff --git a/tests/cases/fourslash/codeFixSpellingVsImport.ts b/tests/cases/fourslash/codeFixSpellingVsImport.ts index 20374a1925370..76da65a538763 100644 --- a/tests/cases/fourslash/codeFixSpellingVsImport.ts +++ b/tests/cases/fourslash/codeFixSpellingVsImport.ts @@ -11,6 +11,6 @@ goTo.file("/b.ts"); verify.codeFixAvailable([ - { description: `Import 'foo' from module "./a"` }, + { description: `Add import from "./a"` }, { description: "Change spelling to 'foof'" }, ]); diff --git a/tests/cases/fourslash/codeFixUnusedIdentifier_parameterInGetAccessor.ts b/tests/cases/fourslash/codeFixUnusedIdentifier_parameterInGetAccessor.ts new file mode 100644 index 0000000000000..e70afb997db5b --- /dev/null +++ b/tests/cases/fourslash/codeFixUnusedIdentifier_parameterInGetAccessor.ts @@ -0,0 +1,17 @@ +/// + +// @noUnusedLocals: true +// @noUnusedParameters: true + +////let foo = { +//// get x(/**/param) {} +////} + +verify.codeFix({ + description: "Remove unused declaration for: 'param'", + index: 0, + newFileContent: +`let foo = { + get x() {} +}` +}) diff --git a/tests/cases/fourslash/codeFixUseBigIntLiteral2.ts b/tests/cases/fourslash/codeFixUseBigIntLiteral2.ts new file mode 100644 index 0000000000000..e34afe3c8a7ec --- /dev/null +++ b/tests/cases/fourslash/codeFixUseBigIntLiteral2.ts @@ -0,0 +1,17 @@ +/// +////1000000000000000000000; // 1e21 +////1_000_000_000_000_000_000_000; // 1e21 +////0x3635C9ADC5DEA00000; // 1e21 +////100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000; // 1e320 +////100_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000; // 1e320 + +verify.codeFixAll({ + fixAllDescription: ts.Diagnostics.Convert_all_to_bigint_numeric_literals.message, + fixId: "useBigintLiteral", + newFileContent: +`1000000000000000000000n; // 1e21 +1_000_000_000_000_000_000_000n; // 1e21 +0x3635C9ADC5DEA00000n; // 1e21 +100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000n; // 1e320 +100_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000n; // 1e320`, +}); diff --git a/tests/cases/fourslash/codeFixUseBigIntLiteralWithNumericSeparators.ts b/tests/cases/fourslash/codeFixUseBigIntLiteralWithNumericSeparators.ts new file mode 100644 index 0000000000000..fd464765c0361 --- /dev/null +++ b/tests/cases/fourslash/codeFixUseBigIntLiteralWithNumericSeparators.ts @@ -0,0 +1,5 @@ +/// +////6_402_373_705_728_000; // 18! < 2 ** 53 +////0x16_BE_EC_CA_73_00_00; // 18! < 2 ** 53 + +verify.not.codeFixAvailable("useBigintLiteral"); diff --git a/tests/cases/fourslash/codefixUnreferenceableDecoratorMetadata1.ts b/tests/cases/fourslash/codefixUnreferenceableDecoratorMetadata1.ts new file mode 100644 index 0000000000000..40f9a7239a762 --- /dev/null +++ b/tests/cases/fourslash/codefixUnreferenceableDecoratorMetadata1.ts @@ -0,0 +1,46 @@ +/// + +// @isolatedModules: true +// @module: es2015 +// @experimentalDecorators: true +// @emitDecoratorMetadata: true + +// @Filename: /mod.ts +//// export default interface I1 {} +//// export interface I2 {} + +// @Filename: /index.ts +//// [|import { I2 } from "./mod";|] +//// +//// declare var EventListener: any; +//// class HelloWorld { +//// @EventListener("1") +//// p1!: I2; +//// p2!: I2; +//// } + +const diag = ts.Diagnostics.A_type_referenced_in_a_decorated_signature_must_be_imported_with_import_type_or_a_namespace_import_when_isolatedModules_and_emitDecoratorMetadata_are_enabled; + +goTo.file("/index.ts"); + +verify.codeFix({ + index: 0, + description: ts.Diagnostics.Convert_named_imports_to_namespace_import.message, + errorCode: diag.code, + applyChanges: false, + newFileContent: `import * as mod from "./mod"; + +declare var EventListener: any; +class HelloWorld { + @EventListener("1") + p1!: mod.I2; + p2!: mod.I2; +}`, +}); + +verify.codeFix({ + index: 1, + description: ts.Diagnostics.Convert_to_type_only_import.message, + errorCode: diag.code, + newRangeContent: `import type { I2 } from "./mod";`, +}); diff --git a/tests/cases/fourslash/codefixUnreferenceableDecoratorMetadata2.ts b/tests/cases/fourslash/codefixUnreferenceableDecoratorMetadata2.ts new file mode 100644 index 0000000000000..1ab14d1fc6a42 --- /dev/null +++ b/tests/cases/fourslash/codefixUnreferenceableDecoratorMetadata2.ts @@ -0,0 +1,38 @@ +/// + +// @isolatedModules: true +// @module: es2015 +// @experimentalDecorators: true +// @emitDecoratorMetadata: true + +// @Filename: /mod.ts +//// export default interface I1 {} +//// export interface I2 {} + +// @Filename: /index.ts +//// [|import I1, { I2 } from "./mod";|] +//// +//// declare var EventListener: any; +//// class HelloWorld { +//// @EventListener("1") +//// p1!: I2; +//// p2!: I2; +//// } + +const diag = ts.Diagnostics.A_type_referenced_in_a_decorated_signature_must_be_imported_with_import_type_or_a_namespace_import_when_isolatedModules_and_emitDecoratorMetadata_are_enabled; + +goTo.file("/index.ts"); + +verify.codeFix({ + description: ts.Diagnostics.Convert_named_imports_to_namespace_import.message, + errorCode: diag.code, + applyChanges: false, + newFileContent: `import I1, * as mod from "./mod"; + +declare var EventListener: any; +class HelloWorld { + @EventListener("1") + p1!: mod.I2; + p2!: mod.I2; +}`, +}); diff --git a/tests/cases/fourslash/codefixUnreferenceableDecoratorMetadata3.ts b/tests/cases/fourslash/codefixUnreferenceableDecoratorMetadata3.ts new file mode 100644 index 0000000000000..7a7c66917c81e --- /dev/null +++ b/tests/cases/fourslash/codefixUnreferenceableDecoratorMetadata3.ts @@ -0,0 +1,55 @@ +/// + +// @isolatedModules: true +// @module: es2015 +// @experimentalDecorators: true +// @emitDecoratorMetadata: true + +// @Filename: /mod.ts +//// export default interface I1 {} +//// export interface I2 {} +//// export class C1 {} + +// @Filename: /index.ts +//// import I1, { I2 } from "./mod"; +//// +//// declare var EventListener: any; +//// export class HelloWorld { +//// @EventListener("1") +//// p1!: I1; +//// p2!: I2; +//// } + +// @Filename: /index2.ts +//// import { C1, I2 } from "./mod"; +//// +//// declare var EventListener: any; +//// export class HelloWorld { +//// @EventListener("1") +//// p1!: I2; +//// p2!: C1; +//// } + +const diag = ts.Diagnostics.A_type_referenced_in_a_decorated_signature_must_be_imported_with_import_type_or_a_namespace_import_when_isolatedModules_and_emitDecoratorMetadata_are_enabled; + +goTo.file("/index.ts"); +verify.not.codeFixAvailable(); + +// Mostly verifying that the type-only fix is not available +// (if both were available you'd have to specify `index` +// in `verify.codeFix`). +goTo.file("/index2.ts"); +verify.codeFix({ + description: ts.Diagnostics.Convert_named_imports_to_namespace_import.message, + errorCode: diag.code, + applyChanges: false, + newFileContent: `import * as mod from "./mod"; + +declare var EventListener: any; +export class HelloWorld { + @EventListener("1") + p1!: mod.I2; + p2!: mod.C1; +}`, +}); + diff --git a/tests/cases/fourslash/commentsImportDeclaration.ts b/tests/cases/fourslash/commentsImportDeclaration.ts index b19eeba68855e..81ae5bf329e73 100644 --- a/tests/cases/fourslash/commentsImportDeclaration.ts +++ b/tests/cases/fourslash/commentsImportDeclaration.ts @@ -34,8 +34,8 @@ verify.completions({ marker: "6", exact: [{ name: "m1", text: "namespace extMod. verify.completions({ marker: "7", exact: [ - { name: "fooExport", text: "function extMod.m1.fooExport(): number", documentation: "exported function" }, { name: "b", text: "var extMod.m1.b: number", documentation: "b's comment" }, + { name: "fooExport", text: "function extMod.m1.fooExport(): number", documentation: "exported function" }, { name: "m2", text: "namespace extMod.m1.m2", documentation: "m2 comments" }, ] }) diff --git a/tests/cases/fourslash/completionAfterGlobalThis.ts b/tests/cases/fourslash/completionAfterGlobalThis.ts index eac8db8ef4700..f1c8aa59302f1 100644 --- a/tests/cases/fourslash/completionAfterGlobalThis.ts +++ b/tests/cases/fourslash/completionAfterGlobalThis.ts @@ -4,13 +4,13 @@ verify.completions({ marker: "", - exact: [ + unsorted: [ completion.globalThisEntry, ...completion.globalsVars, completion.undefinedVarEntry ].map(e => { - if (e.sortText === completion.SortText.DeprecatedGlobalsOrKeywords) { - return { ...e, sortText: completion.SortText.DeprecatedLocationPriority }; + if (e.sortText === completion.SortText.Deprecated(completion.SortText.GlobalsOrKeywords)) { + return { ...e, sortText: completion.SortText.Deprecated(completion.SortText.LocationPriority) }; } return { ...e, sortText: completion.SortText.LocationPriority }; }) diff --git a/tests/cases/fourslash/completionAfterQuestionDot.ts b/tests/cases/fourslash/completionAfterQuestionDot.ts index 3adb024ba95ed..3ca36978713a8 100644 --- a/tests/cases/fourslash/completionAfterQuestionDot.ts +++ b/tests/cases/fourslash/completionAfterQuestionDot.ts @@ -27,8 +27,8 @@ verify.completions({ verify.completions({ marker: "2", exact: [ + { name: "address" }, { name: "bar" }, - { name: "address" } ], preferences: { includeInsertTextCompletions: true }, }); @@ -36,8 +36,8 @@ verify.completions({ verify.completions({ marker: "3", exact: [ + { name: "address" }, { name: "bar" }, - { name: "address" } ], preferences: { includeInsertTextCompletions: true }, }); diff --git a/tests/cases/fourslash/completionAtCaseClause.ts b/tests/cases/fourslash/completionAtCaseClause.ts new file mode 100644 index 0000000000000..48c5a1c465856 --- /dev/null +++ b/tests/cases/fourslash/completionAtCaseClause.ts @@ -0,0 +1,6 @@ +/// + +////case /**/ + +verify.completions({ marker: "", exact: completion.globals }); + diff --git a/tests/cases/fourslash/completionEntryForClassMembers.ts b/tests/cases/fourslash/completionEntryForClassMembers.ts index 57c23f5649f66..4d691c383abe0 100644 --- a/tests/cases/fourslash/completionEntryForClassMembers.ts +++ b/tests/cases/fourslash/completionEntryForClassMembers.ts @@ -128,7 +128,7 @@ verify.completions( { // Not a class element declaration location marker: "InsideMethod", - exact: [ + unsorted: [ "arguments", completion.globalThisEntry, "B", "C", "D", "D1", "D2", "D3", "D4", "D5", "D6", "E", "F", "F2", "G", "G2", "H", "I", "J", "K", "L", "L2", "M", "N", "O", @@ -146,7 +146,7 @@ verify.completions( "classThatStartedWritingIdentifierAfterPrivateModifier", "classThatStartedWritingIdentifierAfterPrivateStaticModifier", ], - exact: ["private", "protected", "public", "static", "abstract", "async", "constructor", "declare", "get", "readonly", "set", "override"].map( + unsorted: ["private", "protected", "public", "static", "abstract", "async", "constructor", "declare", "get", "readonly", "set", "override"].map( name => ({ name, sortText: completion.SortText.GlobalsOrKeywords }) ), isNewIdentifierLocation: true, @@ -176,13 +176,13 @@ verify.completions( "classThatHasWrittenAsyncKeyword", "classElementAfterConstructorSeparatedByComma", ], - exact: [protectedMethod, getValue, ...completion.classElementKeywords], + unsorted: [protectedMethod, getValue, ...completion.classElementKeywords], isNewIdentifierLocation: true, }, { // Static Base members and class member keywords allowed marker: ["classElementContainingStatic", "classThatStartedWritingIdentifierAfterStaticModifier"], - exact: [staticMethod, ...completion.classElementKeywords], + unsorted: [staticMethod, ...completion.classElementKeywords], isNewIdentifierLocation: true, }, { @@ -190,7 +190,7 @@ verify.completions( "classThatHasAlreadyImplementedAnotherClassMethod", "classThatHasAlreadyImplementedAnotherClassMethodAfterMethod", ], - exact: [protectedMethod, ...completion.classElementKeywords], + unsorted: [protectedMethod, ...completion.classElementKeywords], isNewIdentifierLocation: true, }, { @@ -198,19 +198,19 @@ verify.completions( "classThatHasAlreadyImplementedAnotherClassProtectedMethod", "classThatHasDifferentMethodThanBaseAfterProtectedMethod", ], - exact: [getValue, ...completion.classElementKeywords], + unsorted: [getValue, ...completion.classElementKeywords], isNewIdentifierLocation: true, }, { // instance memebers in D1 and base class are shown marker: "classThatExtendsClassExtendingAnotherClass", - exact: ["getValue1", "protectedMethod", "getValue", ...completion.classElementKeywords], + unsorted: ["getValue1", "protectedMethod", "getValue", ...completion.classElementKeywords], isNewIdentifierLocation: true, }, { // instance memebers in D2 and base class are shown marker: "classThatExtendsClassExtendingAnotherClassWithOverridingMember", - exact: [ + unsorted: [ { name: "protectedMethod", text: "(method) D2.protectedMethod(): void" }, getValue, ...completion.classElementKeywords, @@ -223,7 +223,7 @@ verify.completions( "classThatExtendsClassExtendingAnotherClassAndTypesStatic", "classThatExtendsClassExtendingAnotherClassWithOverridingMemberAndTypesStatic" ], - exact: [staticMethod, ...completion.classElementKeywords], + unsorted: [staticMethod, ...completion.classElementKeywords], isNewIdentifierLocation: true, }, ); diff --git a/tests/cases/fourslash/completionEntryForClassMembers2.ts b/tests/cases/fourslash/completionEntryForClassMembers2.ts index 2ea00966ad311..b1de83ada969c 100644 --- a/tests/cases/fourslash/completionEntryForClassMembers2.ts +++ b/tests/cases/fourslash/completionEntryForClassMembers2.ts @@ -398,6 +398,6 @@ const tests: ReadonlyArray<{ readonly marker: string | ReadonlyArray, re verify.completions(...tests.map(({ marker, members }): FourSlashInterface.CompletionsOptions => ({ marker, - exact: [...members.map(m => ({ ...m, kind: "method" })), ...completion.classElementKeywords], + unsorted: [...members.map(m => ({ ...m, kind: "method" })), ...completion.classElementKeywords], isNewIdentifierLocation: true, }))); diff --git a/tests/cases/fourslash/completionEntryForClassMembers3.ts b/tests/cases/fourslash/completionEntryForClassMembers3.ts index ff33116b064da..4dc24dc20ff55 100644 --- a/tests/cases/fourslash/completionEntryForClassMembers3.ts +++ b/tests/cases/fourslash/completionEntryForClassMembers3.ts @@ -18,7 +18,7 @@ function verifyHasBar() { verify.completions({ - exact: [ + unsorted: [ { name: "bar", text: "(method) IFoo.bar(): void", kind: "method" }, ...completion.classElementKeywords, ], diff --git a/tests/cases/fourslash/completionEntryForUnionProperty.ts b/tests/cases/fourslash/completionEntryForUnionProperty.ts index ea5e34d95dd4c..6264c87e04ef9 100644 --- a/tests/cases/fourslash/completionEntryForUnionProperty.ts +++ b/tests/cases/fourslash/completionEntryForUnionProperty.ts @@ -17,7 +17,7 @@ verify.completions({ marker: "", exact: [ - { name: "commonProperty", text: "(property) commonProperty: string | number" }, { name: "commonFunction", text: "(method) commonFunction(): number" }, + { name: "commonProperty", text: "(property) commonProperty: string | number" }, ], }); diff --git a/tests/cases/fourslash/completionEntryForUnionProperty2.ts b/tests/cases/fourslash/completionEntryForUnionProperty2.ts index 0c5e895439525..0b307a6ef29be 100644 --- a/tests/cases/fourslash/completionEntryForUnionProperty2.ts +++ b/tests/cases/fourslash/completionEntryForUnionProperty2.ts @@ -20,9 +20,9 @@ verify.completions({ marker: "1", exact: [ + { name: "toLocaleString", text: "(method) toLocaleString(): string (+1 overload)", documentation: "Returns a date converted to a string using the current locale." }, { name: "toString", text: "(method) toString(): string (+1 overload)", documentation: "Returns a string representation of a string." }, { name: "valueOf", text: "(method) valueOf(): string | number", documentation: "Returns the primitive value of the specified object." }, - { name: "toLocaleString", text: "(method) toLocaleString(): string (+1 overload)", documentation: "Returns a date converted to a string using the current locale." }, ], }); diff --git a/tests/cases/fourslash/completionEntryInJsFile.ts b/tests/cases/fourslash/completionEntryInJsFile.ts index cf460f6fcc9e9..3d7acf8ad4357 100644 --- a/tests/cases/fourslash/completionEntryInJsFile.ts +++ b/tests/cases/fourslash/completionEntryInJsFile.ts @@ -14,17 +14,17 @@ ////} const warnings = [ { name: "classA", sortText: completion.SortText.JavascriptIdentifiers }, + { name: "foo", sortText: completion.SortText.JavascriptIdentifiers }, { name: "Test7", sortText: completion.SortText.JavascriptIdentifiers }, - { name: "foo", sortText: completion.SortText.JavascriptIdentifiers } ]; verify.completions( - { marker: "global", exact: completion.globalsInJsPlus(["foo", "classA", "Test7"]) }, + { marker: "global", exact: completion.globalsInJsPlus(["classA", "foo", "Test7"]) }, { marker: "class", isNewIdentifierLocation: true, exact: [ + ...completion.classElementInJsKeywords, ...warnings, - ...completion.classElementInJsKeywords ] }, { @@ -32,5 +32,5 @@ verify.completions( isNewIdentifierLocation: true, exact: warnings }, - { marker: "insideFunction", exact: completion.globalsInJsInsideFunction(["foo", "classA", "Test7"]) }, + { marker: "insideFunction", exact: completion.globalsInJsInsideFunction(["classA", "foo", "Test7"]) }, ); \ No newline at end of file diff --git a/tests/cases/fourslash/completionForQuotedPropertyInPropertyAssignment1.ts b/tests/cases/fourslash/completionForQuotedPropertyInPropertyAssignment1.ts index 5d79b9ad9737d..bd71932c7c758 100644 --- a/tests/cases/fourslash/completionForQuotedPropertyInPropertyAssignment1.ts +++ b/tests/cases/fourslash/completionForQuotedPropertyInPropertyAssignment1.ts @@ -13,7 +13,7 @@ const replacementSpan = test.ranges()[0] verify.completions( - { marker: "0", exact: ["jspm", '"jspm:browser"'] }, + { marker: "0", exact: ['"jspm:browser"', "jspm"] }, { marker: "1", exact: [ { name: "jspm", replacementSpan }, { name: "jspm:browser", replacementSpan } diff --git a/tests/cases/fourslash/completionForQuotedPropertyInPropertyAssignment2.ts b/tests/cases/fourslash/completionForQuotedPropertyInPropertyAssignment2.ts index 3d05e3f3a5ec3..249ba1aca1d8d 100644 --- a/tests/cases/fourslash/completionForQuotedPropertyInPropertyAssignment2.ts +++ b/tests/cases/fourslash/completionForQuotedPropertyInPropertyAssignment2.ts @@ -19,7 +19,7 @@ const replacementSpan = test.ranges()[0] verify.completions( - { marker: "0", exact: ["jspm", '"jspm:browser"'] }, + { marker: "0", exact: ['"jspm:browser"', "jspm"] }, { marker: "1", exact: [ { name: "jspm", replacementSpan }, { name: "jspm:browser", replacementSpan } diff --git a/tests/cases/fourslash/completionForQuotedPropertyInPropertyAssignment3.ts b/tests/cases/fourslash/completionForQuotedPropertyInPropertyAssignment3.ts index 0aa2491d2a93c..94fcdafdb5cf9 100644 --- a/tests/cases/fourslash/completionForQuotedPropertyInPropertyAssignment3.ts +++ b/tests/cases/fourslash/completionForQuotedPropertyInPropertyAssignment3.ts @@ -17,7 +17,7 @@ const replacementSpan = test.ranges()[0] verify.completions( - { marker: "0", exact: ["jspm", '"jspm:browser"'] }, + { marker: "0", exact: ['"jspm:browser"', "jspm"] }, { marker: "1", exact: [ { name: "jspm", replacementSpan }, { name: "jspm:browser", replacementSpan } diff --git a/tests/cases/fourslash/completionForQuotedPropertyInPropertyAssignment4.ts b/tests/cases/fourslash/completionForQuotedPropertyInPropertyAssignment4.ts index eafc35e3ae494..acc08072821c4 100644 --- a/tests/cases/fourslash/completionForQuotedPropertyInPropertyAssignment4.ts +++ b/tests/cases/fourslash/completionForQuotedPropertyInPropertyAssignment4.ts @@ -13,7 +13,7 @@ const replacementSpan = test.ranges()[0] verify.completions( - { marker: "0", exact: ["jspm", '"jspm:browser"'] }, + { marker: "0", exact: ['"jspm:browser"', "jspm"] }, { marker: "1", exact: [ { name: "jspm", replacementSpan }, { name: "jspm:browser", replacementSpan } diff --git a/tests/cases/fourslash/completionForStringLiteral16.ts b/tests/cases/fourslash/completionForStringLiteral16.ts new file mode 100644 index 0000000000000..4f482053d6880 --- /dev/null +++ b/tests/cases/fourslash/completionForStringLiteral16.ts @@ -0,0 +1,20 @@ +/// + +////interface Foo { +//// a: string; +//// b: number; +//// c: string; +////} +//// +////declare function f1(key: keyof T): T; +////declare function f2(a: keyof T, b: keyof T): T; +//// +////f1("/*1*/",); +////f1("/*2*/"); +////f1("/*3*/",,,); + +////f2("/*4*/", "/*5*/",); +////f2("/*6*/", "/*7*/"); +////f2("/*8*/", "/*9*/",,,); + +verify.completions({ marker: test.markers(), exact: ["a", "b", "c"] }); diff --git a/tests/cases/fourslash/completionForStringLiteral2.ts b/tests/cases/fourslash/completionForStringLiteral2.ts index e5753e7296020..04ad731e68836 100644 --- a/tests/cases/fourslash/completionForStringLiteral2.ts +++ b/tests/cases/fourslash/completionForStringLiteral2.ts @@ -15,11 +15,11 @@ const replacementSpan0 = test.ranges()[0] verify.completions( { marker: "1", exact: [ - { name: "foo", replacementSpan: replacementSpan0 }, { name: "bar", replacementSpan: replacementSpan0 }, + { name: "foo", replacementSpan: replacementSpan0 }, { name: "some other name", replacementSpan: replacementSpan0 } ] }, - { marker: "2", exact: [ "foo", "bar", "some other name" ] }, + { marker: "2", exact: [ "bar", "foo", "some other name" ] }, { marker: "3", exact: { name: "a", replacementSpan: test.ranges()[1] diff --git a/tests/cases/fourslash/completionForStringLiteralInIndexedAccess01.ts b/tests/cases/fourslash/completionForStringLiteralInIndexedAccess01.ts index 90f6e03cc0cbb..45c07a184f24b 100644 --- a/tests/cases/fourslash/completionForStringLiteralInIndexedAccess01.ts +++ b/tests/cases/fourslash/completionForStringLiteralInIndexedAccess01.ts @@ -9,6 +9,6 @@ const replacementSpan = test.ranges()[0] verify.completions({ marker: "1", exact: [ + { name: "bar", replacementSpan }, { name: "foo", replacementSpan }, - { name: "bar", replacementSpan } ] }); diff --git a/tests/cases/fourslash/completionForStringLiteral_details.ts b/tests/cases/fourslash/completionForStringLiteral_details.ts index e4521cbeaddeb..ae312d46b3b4b 100644 --- a/tests/cases/fourslash/completionForStringLiteral_details.ts +++ b/tests/cases/fourslash/completionForStringLiteral_details.ts @@ -23,8 +23,8 @@ verify.completions( { marker: "prop", exact: [ - { name: "x", text: "(property) I.x: number", documentation: "Prop doc", kind: "property", replacementSpan: test.ranges()[1] }, { name: "m", text: "(method) I.m(): void", documentation: "Method doc", kind: "method", replacementSpan: test.ranges()[1] }, + { name: "x", text: "(property) I.x: number", documentation: "Prop doc", kind: "property", replacementSpan: test.ranges()[1] }, ], }, ); diff --git a/tests/cases/fourslash/completionInNamedImportLocation.ts b/tests/cases/fourslash/completionInNamedImportLocation.ts index 057259855df44..3ec4d07a701d0 100644 --- a/tests/cases/fourslash/completionInNamedImportLocation.ts +++ b/tests/cases/fourslash/completionInNamedImportLocation.ts @@ -18,13 +18,14 @@ verify.completions( exact: [ { name: "x", text: "var x: number" }, { name: "y", text: "var y: number" }, - { name: "type", sortText: completion.SortText.GlobalsOrKeywords } + { name: "type", sortText: completion.SortText.GlobalsOrKeywords }, ] }, { marker: "2", exact: [ { name: "y", text: "var y: number" }, - { name: "type", sortText: completion.SortText.GlobalsOrKeywords } - ] }, + { name: "type", sortText: completion.SortText.GlobalsOrKeywords }, + ] + }, ); diff --git a/tests/cases/fourslash/completionListAfterNumericLiteral1.ts b/tests/cases/fourslash/completionListAfterNumericLiteral1.ts index 1541989c9c867..d20d6f81be52e 100644 --- a/tests/cases/fourslash/completionListAfterNumericLiteral1.ts +++ b/tests/cases/fourslash/completionListAfterNumericLiteral1.ts @@ -2,4 +2,11 @@ ////5../**/ -verify.completions({ marker: "", exact: ["toString", "toFixed", "toExponential", "toPrecision", "valueOf", "toLocaleString"] }); +verify.completions({ marker: "", exact: [ + "toExponential", + "toFixed", + "toLocaleString", + "toPrecision", + "toString", + "valueOf", +] }); diff --git a/tests/cases/fourslash/completionListAfterRegularExpressionLiteral01.ts b/tests/cases/fourslash/completionListAfterRegularExpressionLiteral01.ts index efd93663f70b1..9451280e237b1 100644 --- a/tests/cases/fourslash/completionListAfterRegularExpressionLiteral01.ts +++ b/tests/cases/fourslash/completionListAfterRegularExpressionLiteral01.ts @@ -3,4 +3,16 @@ ////let v = 100; /////a/./**/ -verify.completions({ marker: "", exact: ["exec", "test", "source", "global", "ignoreCase", "multiline", "lastIndex", { name: "compile", sortText: completion.SortText.DeprecatedLocationPriority }] }); +verify.completions({ + marker: "", + unsorted: [ + "exec", + "test", + "source", + "global", + "ignoreCase", + "multiline", + "lastIndex", + { name: "compile", sortText: completion.SortText.Deprecated(completion.SortText.LocationPriority) } + ] +}); diff --git a/tests/cases/fourslash/completionListAfterRegularExpressionLiteral1.ts b/tests/cases/fourslash/completionListAfterRegularExpressionLiteral1.ts index 01e44c1abddda..872b216462510 100644 --- a/tests/cases/fourslash/completionListAfterRegularExpressionLiteral1.ts +++ b/tests/cases/fourslash/completionListAfterRegularExpressionLiteral1.ts @@ -2,4 +2,16 @@ /////a/./**/ -verify.completions({ marker: "", exact: ["exec", "test", "source", "global", "ignoreCase", "multiline", "lastIndex", { name: "compile", sortText: completion.SortText.DeprecatedLocationPriority }] }); +verify.completions({ + marker: "", + unsorted: [ + "exec", + "test", + "source", + "global", + "ignoreCase", + "multiline", + "lastIndex", + { name: "compile", sortText: completion.SortText.Deprecated(completion.SortText.LocationPriority) }, + ] +}); diff --git a/tests/cases/fourslash/completionListAfterStringLiteral1.ts b/tests/cases/fourslash/completionListAfterStringLiteral1.ts index 252af8cb6c186..51b5903be0193 100644 --- a/tests/cases/fourslash/completionListAfterStringLiteral1.ts +++ b/tests/cases/fourslash/completionListAfterStringLiteral1.ts @@ -4,8 +4,8 @@ verify.completions({ marker: "", - exact: [ + unsorted: [ "toString", "charAt", "charCodeAt", "concat", "indexOf", "lastIndexOf", "localeCompare", "match", "replace", "search", "slice", - "split", "substring", "toLowerCase", "toLocaleLowerCase", "toUpperCase", "toLocaleUpperCase", "trim", "length", { name: "substr", sortText: completion.SortText.DeprecatedLocationPriority }, "valueOf", + "split", "substring", "toLowerCase", "toLocaleLowerCase", "toUpperCase", "toLocaleUpperCase", "trim", "length", { name: "substr", sortText: completion.SortText.Deprecated(completion.SortText.LocationPriority) }, "valueOf", ], }); diff --git a/tests/cases/fourslash/completionListAtThisType.ts b/tests/cases/fourslash/completionListAtThisType.ts new file mode 100644 index 0000000000000..3842b6c3cfee5 --- /dev/null +++ b/tests/cases/fourslash/completionListAtThisType.ts @@ -0,0 +1,19 @@ +/// + +////class Test { +//// foo() {} +//// +//// bar() { +//// this.baz(this, "/*1*/"); +//// +//// const t = new Test() +//// this.baz(t, "/*2*/"); +//// } +//// +//// baz(a: T, k: keyof T) {} +////} + +verify.completions({ + marker: ["1", "2"], + exact: ["foo", "bar", "baz"] +}); diff --git a/tests/cases/fourslash/completionListBuilderLocations_VariableDeclarations.ts b/tests/cases/fourslash/completionListBuilderLocations_VariableDeclarations.ts index eaad02afcc52f..bae2812d9c776 100644 --- a/tests/cases/fourslash/completionListBuilderLocations_VariableDeclarations.ts +++ b/tests/cases/fourslash/completionListBuilderLocations_VariableDeclarations.ts @@ -29,12 +29,12 @@ // first declaration verify.completions({ marker: ["var1"], - exact: completion.globalsPlus(["y", "C"]), + exact: completion.globalsPlus(["C", "y"]), isNewIdentifierLocation: true }); verify.completions({ marker: ["var2", "var3", "var4", "var5", "var6", "var7", "var8", "var9", "var10", "var11", "var12"], - exact: completion.globalsPlus(["x", "y", "C"]), + exact: completion.globalsPlus(["C", "x", "y"]), isNewIdentifierLocation: true }); diff --git a/tests/cases/fourslash/completionListClassMembers.ts b/tests/cases/fourslash/completionListClassMembers.ts index f2740963b67b5..9e7c920ca1cf6 100644 --- a/tests/cases/fourslash/completionListClassMembers.ts +++ b/tests/cases/fourslash/completionListClassMembers.ts @@ -26,27 +26,25 @@ verify.completions( { marker: "staticsInsideClassScope", - exact: [ - { name: "prototype", sortText: completion.SortText.LocationPriority }, - { name: "privateStaticProperty", sortText: completion.SortText.LocalDeclarationPriority }, - { name: "publicStaticProperty", sortText: completion.SortText.LocalDeclarationPriority }, + exact: completion.functionMembersPlus([ { name: "privateStaticMethod", sortText: completion.SortText.LocalDeclarationPriority }, + { name: "privateStaticProperty", sortText: completion.SortText.LocalDeclarationPriority }, { name: "publicStaticMethod", sortText: completion.SortText.LocalDeclarationPriority }, - ...completion.functionMembers - ], + { name: "publicStaticProperty", sortText: completion.SortText.LocalDeclarationPriority }, + { name: "prototype", sortText: completion.SortText.LocationPriority }, + ]), }, { marker: "instanceMembersInsideClassScope", - exact: ["privateInstanceMethod", "publicInstanceMethod", "privateProperty", "publicProperty"], + unsorted: ["privateInstanceMethod", "publicInstanceMethod", "privateProperty", "publicProperty"], }, { marker: "staticsOutsideClassScope", - exact: [ - { name: "prototype", sortText: completion.SortText.LocationPriority }, - { name: "publicStaticProperty", sortText: completion.SortText.LocalDeclarationPriority }, + exact: completion.functionMembersPlus([ { name: "publicStaticMethod", sortText: completion.SortText.LocalDeclarationPriority }, - ...completion.functionMembers - ], + { name: "publicStaticProperty", sortText: completion.SortText.LocalDeclarationPriority }, + { name: "prototype", sortText: completion.SortText.LocationPriority }, + ]), }, { marker: "instanceMembersOutsideClassScope", diff --git a/tests/cases/fourslash/completionListClassPrivateFields_JS.ts b/tests/cases/fourslash/completionListClassPrivateFields_JS.ts index 49c8d05af6a4c..788ca4744632a 100644 --- a/tests/cases/fourslash/completionListClassPrivateFields_JS.ts +++ b/tests/cases/fourslash/completionListClassPrivateFields_JS.ts @@ -13,9 +13,9 @@ verify.completions({ marker: "", exact: [ + ...completion.classElementInJsKeywords, { name: "A", sortText: completion.SortText.JavascriptIdentifiers }, { name: "B", sortText: completion.SortText.JavascriptIdentifiers }, - ...completion.classElementInJsKeywords ], isNewIdentifierLocation: true }); diff --git a/tests/cases/fourslash/completionListEnumMembers.ts b/tests/cases/fourslash/completionListEnumMembers.ts index 42029ae3216c1..4e998cf3040e9 100644 --- a/tests/cases/fourslash/completionListEnumMembers.ts +++ b/tests/cases/fourslash/completionListEnumMembers.ts @@ -11,5 +11,5 @@ verify.completions( { marker: ["valueReference", "typeReference"], exact: ["bar", "baz"] }, - { marker: "enumValueReference", exact: ["toString", "toFixed", "toExponential", "toPrecision", "valueOf", "toLocaleString"] }, + { marker: "enumValueReference", unsorted: ["toString", "toFixed", "toExponential", "toPrecision", "valueOf", "toLocaleString"] }, ); diff --git a/tests/cases/fourslash/completionListEnumValues.ts b/tests/cases/fourslash/completionListEnumValues.ts index b684bdad49af7..c58b97369d692 100644 --- a/tests/cases/fourslash/completionListEnumValues.ts +++ b/tests/cases/fourslash/completionListEnumValues.ts @@ -15,7 +15,14 @@ verify.completions( // Should only have the enum's own members, and nothing else - { marker: "enumVariable", exact: ["Red", "Green"] }, + { marker: "enumVariable", exact: ["Green", "Red"] }, // Should have number members, and not enum members - { marker: ["variableOfEnumType", "callOfEnumReturnType"], exact: ["toString", "toFixed", "toExponential", "toPrecision", "valueOf", "toLocaleString"] }, + { marker: ["variableOfEnumType", "callOfEnumReturnType"], exact: [ + "toExponential", + "toFixed", + "toLocaleString", + "toPrecision", + "toString", + "valueOf", + ] } ); diff --git a/tests/cases/fourslash/completionListForDerivedType1.ts b/tests/cases/fourslash/completionListForDerivedType1.ts index ef9b28503d109..fd01eff0ad042 100644 --- a/tests/cases/fourslash/completionListForDerivedType1.ts +++ b/tests/cases/fourslash/completionListForDerivedType1.ts @@ -15,6 +15,9 @@ verify.completions( { marker: "1", exact: [{ name: "bar", text: "(method) IFoo.bar(): IFoo" }] }, { marker: "2", - exact: [{ name: "bar2", text: "(method) IFoo2.bar2(): IFoo2" }, { name: "bar", text: "(method) IFoo.bar(): IFoo" }] + exact: [ + { name: "bar", text: "(method) IFoo.bar(): IFoo" }, + { name: "bar2", text: "(method) IFoo2.bar2(): IFoo2" }, + ] }, ); diff --git a/tests/cases/fourslash/completionListForExportEquals.ts b/tests/cases/fourslash/completionListForExportEquals.ts index a03b3ddb5bfd0..518555f688011 100644 --- a/tests/cases/fourslash/completionListForExportEquals.ts +++ b/tests/cases/fourslash/completionListForExportEquals.ts @@ -13,4 +13,8 @@ // @Filename: /a.ts ////import { /**/ } from "foo"; -verify.completions({ marker: "", exact: ["Static", "foo", { name: "type", sortText: completion.SortText.GlobalsOrKeywords }] }); +verify.completions({ marker: "", exact: [ + "foo", + "Static", + { name: "type", sortText: completion.SortText.GlobalsOrKeywords } +] }); diff --git a/tests/cases/fourslash/completionListForRest.ts b/tests/cases/fourslash/completionListForRest.ts index af2d3b5f3cf74..73e4362fe98d2 100644 --- a/tests/cases/fourslash/completionListForRest.ts +++ b/tests/cases/fourslash/completionListForRest.ts @@ -10,5 +10,8 @@ verify.completions({ marker: "1", - exact: [{ name: "parent", text: "(property) Gen.parent: Gen" }, { name: "millenial", text: "(property) Gen.millenial: string" }], + exact: [ + { name: "millenial", text: "(property) Gen.millenial: string" }, + { name: "parent", text: "(property) Gen.parent: Gen" }, + ], }); diff --git a/tests/cases/fourslash/completionListForShorthandPropertyAssignment.ts b/tests/cases/fourslash/completionListForShorthandPropertyAssignment.ts index 7b364b69ec985..b649c2a741f0b 100644 --- a/tests/cases/fourslash/completionListForShorthandPropertyAssignment.ts +++ b/tests/cases/fourslash/completionListForShorthandPropertyAssignment.ts @@ -2,4 +2,4 @@ //// var person: {name:string; id: number} = { n/**/ -verify.completions({ marker: "", exact: ["name", "id"] }); +verify.completions({ marker: "", exact: ["id", "name"] }); diff --git a/tests/cases/fourslash/completionListForShorthandPropertyAssignment2.ts b/tests/cases/fourslash/completionListForShorthandPropertyAssignment2.ts index 7b364b69ec985..b649c2a741f0b 100644 --- a/tests/cases/fourslash/completionListForShorthandPropertyAssignment2.ts +++ b/tests/cases/fourslash/completionListForShorthandPropertyAssignment2.ts @@ -2,4 +2,4 @@ //// var person: {name:string; id: number} = { n/**/ -verify.completions({ marker: "", exact: ["name", "id"] }); +verify.completions({ marker: "", exact: ["id", "name"] }); diff --git a/tests/cases/fourslash/completionListForTransitivelyExportedMembers01.ts b/tests/cases/fourslash/completionListForTransitivelyExportedMembers01.ts index 90f5cceac34ac..caa50ba34682a 100644 --- a/tests/cases/fourslash/completionListForTransitivelyExportedMembers01.ts +++ b/tests/cases/fourslash/completionListForTransitivelyExportedMembers01.ts @@ -31,4 +31,4 @@ ////import * as c from "./C"; ////var x = c./**/ -verify.completions({ marker: "", exact: ["cVar", "C1", "Inner", "bVar"] }); +verify.completions({ marker: "", exact: ["bVar", "C1", "cVar", "Inner"] }); diff --git a/tests/cases/fourslash/completionListForTransitivelyExportedMembers02.ts b/tests/cases/fourslash/completionListForTransitivelyExportedMembers02.ts index e2335c4b36f78..2085a4b939ae5 100644 --- a/tests/cases/fourslash/completionListForTransitivelyExportedMembers02.ts +++ b/tests/cases/fourslash/completionListForTransitivelyExportedMembers02.ts @@ -32,4 +32,4 @@ ////import * as c from "./C"; ////var x = c.Inner./**/ -verify.completions({ marker: "", exact: ["varVar", "letVar", "constVar"] }); +verify.completions({ marker: "", exact: ["constVar", "letVar", "varVar"] }); diff --git a/tests/cases/fourslash/completionListGenericConstraints.ts b/tests/cases/fourslash/completionListGenericConstraints.ts index cb0965e6288a3..fa4352fabf397 100644 --- a/tests/cases/fourslash/completionListGenericConstraints.ts +++ b/tests/cases/fourslash/completionListGenericConstraints.ts @@ -52,8 +52,8 @@ ////} verify.completions( - { marker: "objectMembers", exact: ["constructor", "toString", "toLocaleString", "valueOf", "hasOwnProperty", "isPrototypeOf", "propertyIsEnumerable"] }, - { marker: "interfaceMembers", exact: ["bar21", "bar22", "bar11", "bar12"] }, - { marker: "callableMembers", exact: ["name", ...completion.functionMembersWithPrototype] }, - { marker: "publicOnlyMembers", exact: ["publicProperty", "publicMethod"] }, + { marker: "objectMembers", unsorted: ["constructor", "toString", "toLocaleString", "valueOf", "hasOwnProperty", "isPrototypeOf", "propertyIsEnumerable"] }, + { marker: "interfaceMembers", unsorted: ["bar21", "bar22", "bar11", "bar12"] }, + { marker: "callableMembers", unsorted: ["name", ...completion.functionMembersWithPrototype] }, + { marker: "publicOnlyMembers", unsorted: ["publicProperty", "publicMethod"] }, ); diff --git a/tests/cases/fourslash/completionListInClassStaticBlocks.ts b/tests/cases/fourslash/completionListInClassStaticBlocks.ts new file mode 100644 index 0000000000000..c4e1147cb83a8 --- /dev/null +++ b/tests/cases/fourslash/completionListInClassStaticBlocks.ts @@ -0,0 +1,28 @@ +/// + +// @target: esnext +////class Foo { +//// static #a = 1; +//// static a() { +//// this./*1*/ +//// } +//// static b() { +//// Foo./*2*/ +//// } +//// static { +//// this./*3*/ +//// } +//// static { +//// Foo./*4*/ +//// } +////} + +verify.completions({ + marker: ["1", "2", "3", "4"], + exact: completion.functionMembersPlus([ + { name: "#a", sortText: completion.SortText.LocalDeclarationPriority }, + { name: "a", sortText: completion.SortText.LocalDeclarationPriority }, + { name: "b", sortText: completion.SortText.LocalDeclarationPriority }, + { name: "prototype" } + ]) +}); diff --git a/tests/cases/fourslash/completionListInExportClause02.ts b/tests/cases/fourslash/completionListInExportClause02.ts index 38ed71352f863..36894a408811d 100644 --- a/tests/cases/fourslash/completionListInExportClause02.ts +++ b/tests/cases/fourslash/completionListInExportClause02.ts @@ -8,4 +8,7 @@ //// export { /**/ } from "M1" ////} -verify.completions({ marker: "", exact: ["V", { name: "type", sortText: completion.SortText.GlobalsOrKeywords }] }); +verify.completions({ marker: "", exact: [ + "V", + { name: "type", sortText: completion.SortText.GlobalsOrKeywords }, +] }); diff --git a/tests/cases/fourslash/completionListInExtendsClause.ts b/tests/cases/fourslash/completionListInExtendsClause.ts index c9ff3ff4a6fc6..144f99b83e7b6 100644 --- a/tests/cases/fourslash/completionListInExtendsClause.ts +++ b/tests/cases/fourslash/completionListInExtendsClause.ts @@ -17,11 +17,10 @@ verify.completions( { marker: "1", - exact: [ - { name: "prototype", sortText: completion.SortText.LocationPriority }, + exact: completion.functionMembersPlus([ { name: "staticMethod", sortText: completion.SortText.LocalDeclarationPriority }, - ...completion.functionMembers - ] + { name: "prototype", sortText: completion.SortText.LocationPriority }, + ]) }, { marker: ["2", "3", "4"], exact: undefined }, ); diff --git a/tests/cases/fourslash/completionListInImportClause02.ts b/tests/cases/fourslash/completionListInImportClause02.ts index ce2370f8b5528..99490fbd18930 100644 --- a/tests/cases/fourslash/completionListInImportClause02.ts +++ b/tests/cases/fourslash/completionListInImportClause02.ts @@ -8,4 +8,7 @@ //// import { /**/ } from "M1" ////} -verify.completions({ marker: "", exact: ["V", { name: "type", sortText: completion.SortText.GlobalsOrKeywords }] }); +verify.completions({ marker: "", exact: [ + "V", + { name: "type", sortText: completion.SortText.GlobalsOrKeywords }, +] }); diff --git a/tests/cases/fourslash/completionListInImportClause04.ts b/tests/cases/fourslash/completionListInImportClause04.ts index 3d2ccdb8adc20..556f2ef1d734b 100644 --- a/tests/cases/fourslash/completionListInImportClause04.ts +++ b/tests/cases/fourslash/completionListInImportClause04.ts @@ -11,7 +11,7 @@ // @Filename: app.ts ////import {/*1*/} from './foo'; -verify.completions({ marker: "1", exact: ["prototype", "prop1", "prop2", { name: "type", sortText: completion.SortText.GlobalsOrKeywords }] }); +verify.completions({ marker: "1", unsorted: ["prototype", "prop1", "prop2", { name: "type", sortText: completion.SortText.GlobalsOrKeywords }] }); verify.noErrors(); goTo.marker('2'); verify.noErrors(); diff --git a/tests/cases/fourslash/completionListInIndexSignature01.ts b/tests/cases/fourslash/completionListInIndexSignature01.ts index 01032017b7171..5bcc01ce8678f 100644 --- a/tests/cases/fourslash/completionListInIndexSignature01.ts +++ b/tests/cases/fourslash/completionListInIndexSignature01.ts @@ -17,6 +17,6 @@ const exact = completion.globalsPlus(["C"]); verify.completions( { marker: ["1", "2", "3", "6"], exact, isNewIdentifierLocation: true }, - { marker: "4", exact: ["str", ...exact], isNewIdentifierLocation: true }, - { marker: "5", exact: ["xyz", ...exact], isNewIdentifierLocation: true }, + { marker: "4", unsorted: ["str", ...exact], isNewIdentifierLocation: true }, + { marker: "5", unsorted: ["xyz", ...exact], isNewIdentifierLocation: true }, ); diff --git a/tests/cases/fourslash/completionListInIndexSignature02.ts b/tests/cases/fourslash/completionListInIndexSignature02.ts index c7b725d4f7c0e..9f808fe2c3e2c 100644 --- a/tests/cases/fourslash/completionListInIndexSignature02.ts +++ b/tests/cases/fourslash/completionListInIndexSignature02.ts @@ -15,6 +15,6 @@ const exact = completion.globalTypesPlus(["I", "C"]); verify.completions( - { marker: ["1", "2"], exact: ["T", ...exact] }, - { marker: ["3", "4", "5"], exact: completion.globalTypesPlus(["I", "C", "T"]) }, + { marker: ["1", "2"], unsorted: ["T", ...exact] }, + { marker: ["3", "4", "5"], exact: completion.globalTypesPlus(["C", "I", "T"]) }, ); diff --git a/tests/cases/fourslash/completionListInNamedClassExpression.ts b/tests/cases/fourslash/completionListInNamedClassExpression.ts index d69a607bc4642..1a3068e9d0360 100644 --- a/tests/cases/fourslash/completionListInNamedClassExpression.ts +++ b/tests/cases/fourslash/completionListInNamedClassExpression.ts @@ -11,7 +11,20 @@ verify.completions( { marker: "0", includes: { name: "myClass", text: "(local class) myClass", kind: "local class" } }, { marker: "1", - exact: ["private", "protected", "public", "static", "abstract", "async", "constructor", "declare", "get", "readonly", "set", "override"].map( + exact: [ + "abstract", + "async", + "constructor", + "declare", + "get", + "override", + "private", + "protected", + "public", + "readonly", + "set", + "static", + ].map( name => ({ name, sortText: completion.SortText.GlobalsOrKeywords }) ), isNewIdentifierLocation: true, diff --git a/tests/cases/fourslash/completionListInObjectBindingPattern15.ts b/tests/cases/fourslash/completionListInObjectBindingPattern15.ts index f718e559669d5..47b751be5ffa4 100644 --- a/tests/cases/fourslash/completionListInObjectBindingPattern15.ts +++ b/tests/cases/fourslash/completionListInObjectBindingPattern15.ts @@ -16,7 +16,7 @@ ////const { /*3*/ } = new Foo(); ////const { /*4*/ } = Foo; -verify.completions({ marker: "1", exact: ["xxx1", "xxx2", "xxx3", "foo"] }); -verify.completions({ marker: "2", exact: ["prototype", "xxx4", "xxx5", "xxx6"] }); -verify.completions({ marker: "3", exact: ["xxx3", "foo"] }); -verify.completions({ marker: "4", exact: ["prototype", "xxx6"] }); +verify.completions({ marker: "1", unsorted: ["xxx1", "xxx2", "xxx3", "foo"] }); +verify.completions({ marker: "2", unsorted: ["prototype", "xxx4", "xxx5", "xxx6"] }); +verify.completions({ marker: "3", unsorted: ["xxx3", "foo"] }); +verify.completions({ marker: "4", unsorted: ["prototype", "xxx6"] }); diff --git a/tests/cases/fourslash/completionListInObjectLiteral2.ts b/tests/cases/fourslash/completionListInObjectLiteral2.ts index 34925d616a622..d53c3a181cce9 100644 --- a/tests/cases/fourslash/completionListInObjectLiteral2.ts +++ b/tests/cases/fourslash/completionListInObjectLiteral2.ts @@ -23,4 +23,4 @@ //// } ////} -verify.completions({ marker: test.markers(), exact: ["count", "isEmpty", "fileCount"] }); +verify.completions({ marker: test.markers(), exact: ["count", "fileCount", "isEmpty"] }); diff --git a/tests/cases/fourslash/completionListInObjectLiteral3.ts b/tests/cases/fourslash/completionListInObjectLiteral3.ts index 7fa7de331be59..8341816e4d768 100644 --- a/tests/cases/fourslash/completionListInObjectLiteral3.ts +++ b/tests/cases/fourslash/completionListInObjectLiteral3.ts @@ -8,4 +8,4 @@ //// /**/ ////} -verify.completions({ marker: "", exact: ["name", "children"] }); +verify.completions({ marker: "", exact: ["children", "name"] }); diff --git a/tests/cases/fourslash/completionListInObjectLiteral6.ts b/tests/cases/fourslash/completionListInObjectLiteral6.ts new file mode 100644 index 0000000000000..296b3c011251b --- /dev/null +++ b/tests/cases/fourslash/completionListInObjectLiteral6.ts @@ -0,0 +1,22 @@ +/// + +////const foo = { +//// a: "a", +//// b: "b" +////}; +////function fn(obj: T, events: { [Key in `on_${string & keyof T}`]?: Key }) {} +//// +////fn(foo, { +//// /*1*/ +////}) +////fn({ a: "a", b: "b" }, { +//// /*2*/ +////}) + +verify.completions({ + marker: ["1", "2"], + exact: [ + { name: "on_a", sortText: completion.SortText.OptionalMember }, + { name: "on_b", sortText: completion.SortText.OptionalMember } + ] +}); diff --git a/tests/cases/fourslash/completionListInObjectLiteral7.ts b/tests/cases/fourslash/completionListInObjectLiteral7.ts new file mode 100644 index 0000000000000..6f933ffb470af --- /dev/null +++ b/tests/cases/fourslash/completionListInObjectLiteral7.ts @@ -0,0 +1,17 @@ +/// + +////type Foo = { foo: boolean }; +////function f(shape: Foo): any; +////function f(shape: () => Foo): any; +////function f(arg: any) { +//// return arg; +////} +//// +////f({ /*1*/ }); +////f(() => ({ /*2*/ })); +////f(() => (({ /*3*/ }))); + +verify.completions({ + marker: ["1", "2", "3"], + exact: ["foo"] +}); diff --git a/tests/cases/fourslash/completionListInTypeLiteralInTypeParameter1.ts b/tests/cases/fourslash/completionListInTypeLiteralInTypeParameter1.ts index a6aa20b4944cc..18c93948fac30 100644 --- a/tests/cases/fourslash/completionListInTypeLiteralInTypeParameter1.ts +++ b/tests/cases/fourslash/completionListInTypeLiteralInTypeParameter1.ts @@ -18,6 +18,6 @@ verify.completions({ marker: "", - exact: ["one", "two", "\"333\"", "\"4four\"", "\"5 five\"", "number", "Object"], + unsorted: ["one", "two", "\"333\"", "\"4four\"", "\"5 five\"", "number", "Object"], isNewIdentifierLocation: true }); diff --git a/tests/cases/fourslash/completionListInTypeParameterOfClassExpression1.ts b/tests/cases/fourslash/completionListInTypeParameterOfClassExpression1.ts index ff0c163dd713d..7435289eb5246 100644 --- a/tests/cases/fourslash/completionListInTypeParameterOfClassExpression1.ts +++ b/tests/cases/fourslash/completionListInTypeParameterOfClassExpression1.ts @@ -7,4 +7,4 @@ ////var C4 = class D{} verify.completions({ marker: ["0", "1", "2", "3"], exact: undefined }); -verify.completions({ marker: "4", exact: ["D", "T", ...completion.globalTypes] }); +verify.completions({ marker: "4", exact: completion.globalTypesPlus(["D", "T"]) }); diff --git a/tests/cases/fourslash/completionListInheritedClassMembers.ts b/tests/cases/fourslash/completionListInheritedClassMembers.ts index 334374eab44d2..fcfac396c4105 100644 --- a/tests/cases/fourslash/completionListInheritedClassMembers.ts +++ b/tests/cases/fourslash/completionListInheritedClassMembers.ts @@ -37,7 +37,7 @@ ////} verify.completions( - { marker: "1", exact: ["m1", "m2", "m3", ...completion.classElementKeywords], isNewIdentifierLocation: true }, - { marker: "2", exact: ["m1", "m2", "m3", ...completion.classElementKeywords], isNewIdentifierLocation: true }, - { marker: "3", exact: ["m1", "m3", ...completion.classElementKeywords], isNewIdentifierLocation: true } + { marker: "1", unsorted: ["m1", "m2", "m3", ...completion.classElementKeywords], isNewIdentifierLocation: true }, + { marker: "2", unsorted: ["m1", "m2", "m3", ...completion.classElementKeywords], isNewIdentifierLocation: true }, + { marker: "3", unsorted: ["m1", "m3", ...completion.classElementKeywords], isNewIdentifierLocation: true } ); diff --git a/tests/cases/fourslash/completionListInstanceProtectedMembers.ts b/tests/cases/fourslash/completionListInstanceProtectedMembers.ts index 7e39a21bf5a2f..dff02b84128cb 100644 --- a/tests/cases/fourslash/completionListInstanceProtectedMembers.ts +++ b/tests/cases/fourslash/completionListInstanceProtectedMembers.ts @@ -32,11 +32,11 @@ verify.completions( { marker: ["1", "2"], - exact: ["privateMethod", "privateProperty", "protectedMethod", "protectedProperty", "publicMethod", "publicProperty", "protectedOverriddenMethod", "protectedOverriddenProperty", "test"], + unsorted: ["privateMethod", "privateProperty", "protectedMethod", "protectedProperty", "publicMethod", "publicProperty", "protectedOverriddenMethod", "protectedOverriddenProperty", "test"], }, { marker: "3", // Can not access protected properties overridden in subclass - exact: ["privateMethod", "privateProperty", "protectedMethod", "protectedProperty", "publicMethod", "publicProperty", "test"], + unsorted: ["privateMethod", "privateProperty", "protectedMethod", "protectedProperty", "publicMethod", "publicProperty", "test"], }, ); diff --git a/tests/cases/fourslash/completionListInvalidMemberNames.ts b/tests/cases/fourslash/completionListInvalidMemberNames.ts index 07dc47be83044..737523a4f08a9 100644 --- a/tests/cases/fourslash/completionListInvalidMemberNames.ts +++ b/tests/cases/fourslash/completionListInvalidMemberNames.ts @@ -17,7 +17,7 @@ const replacementSpan = test.ranges()[0]; const replacementSpan1 = test.ranges()[1]; verify.completions( - { marker: "b", exact: [ + { marker: "b", unsorted: [ { name: "foo ", replacementSpan: replacementSpan1 }, { name: "bar", replacementSpan: replacementSpan1 }, { name: "break", replacementSpan: replacementSpan1 }, @@ -29,7 +29,7 @@ verify.completions( ] }, { marker: "a", - exact: [ + unsorted: [ { name: "foo ", insertText: '["foo "]', replacementSpan }, "bar", "break", diff --git a/tests/cases/fourslash/completionListIsGlobalCompletion.ts b/tests/cases/fourslash/completionListIsGlobalCompletion.ts index 46b83e1a9a2b2..c72d13d002eb5 100644 --- a/tests/cases/fourslash/completionListIsGlobalCompletion.ts +++ b/tests/cases/fourslash/completionListIsGlobalCompletion.ts @@ -36,7 +36,7 @@ ////var user = ; // globals only in JSX expression (but not in JSX expression strings) const x = ["test", "A", "B", "C", "y", "z", "x", "user"]; -const globals: ReadonlyArray = [...x, ...completion.globals] +const globals = completion.sorted([...x, ...completion.globals]) verify.completions( { marker: ["1", "3"], exact: [{ name: "type", sortText: completion.SortText.GlobalsOrKeywords }], isNewIdentifierLocation: true, isGlobalCompletion: false }, { marker: ["6", "8", "12", "14"], exact: undefined, isGlobalCompletion: false }, @@ -47,8 +47,8 @@ verify.completions( { marker: "7", exact: completion.globalsInsideFunction(x), isGlobalCompletion: true }, { marker: "9", exact: ["x", "y"], isGlobalCompletion: false }, { marker: "10", exact: completion.classElementKeywords, isGlobalCompletion: false, isNewIdentifierLocation: true }, - { marker: "13", exact: globals.filter(name => name !== 'z'), isGlobalCompletion: false }, + { marker: "13", exact: globals, isGlobalCompletion: false }, { marker: "15", exact: globals.filter(name => name !== 'x'), isGlobalCompletion: true, isNewIdentifierLocation: true }, - { marker: "16", exact: [...x, completion.globalThisEntry, ...completion.globalsVars, completion.undefinedVarEntry].filter(name => name !== 'user'), isGlobalCompletion: false }, + { marker: "16", unsorted: [...x, completion.globalThisEntry, ...completion.globalsVars, completion.undefinedVarEntry].filter(name => name !== 'user'), isGlobalCompletion: false }, { marker: "17", exact: completion.globalKeywords, isGlobalCompletion: false }, ); diff --git a/tests/cases/fourslash/completionListKeywords.ts b/tests/cases/fourslash/completionListKeywords.ts index 287e5326a9050..d9c225136476d 100644 --- a/tests/cases/fourslash/completionListKeywords.ts +++ b/tests/cases/fourslash/completionListKeywords.ts @@ -6,9 +6,5 @@ verify.completions({ marker: "", - exact: [ - completion.globalThisEntry, - completion.undefinedVarEntry, - ...completion.statementKeywordsWithTypes - ] + exact: completion.globalsPlus([], { noLib: true }), }); diff --git a/tests/cases/fourslash/completionListModuleMembers.ts b/tests/cases/fourslash/completionListModuleMembers.ts index 9881fb3b7f7df..9e25ed52aa33e 100644 --- a/tests/cases/fourslash/completionListModuleMembers.ts +++ b/tests/cases/fourslash/completionListModuleMembers.ts @@ -24,10 +24,10 @@ verify.completions( { marker: ["ValueReference", "TypeReferenceInExtendsList"], - exact: ["exportedFunction", "exportedVariable", "exportedClass", "exportedModule"], + unsorted: ["exportedFunction", "exportedVariable", "exportedClass", "exportedModule"], }, { marker: ["TypeReference", "TypeReferenceInImplementsList"], - exact: ["exportedClass", "exportedInterface"], + unsorted: ["exportedClass", "exportedInterface"], }, ); diff --git a/tests/cases/fourslash/completionListOfSplitInterface.ts b/tests/cases/fourslash/completionListOfSplitInterface.ts index df84dc96d1bc4..528cb04471f21 100644 --- a/tests/cases/fourslash/completionListOfSplitInterface.ts +++ b/tests/cases/fourslash/completionListOfSplitInterface.ts @@ -33,6 +33,6 @@ ////ci1./*2*/b; verify.completions( - { marker: "1", exact: ["i1", "i2", "i3", "a", "b", "c"] }, - { marker: "2", exact: ["i11", "i12", "a", "b", "b1"] }, + { marker: "1", unsorted: ["i1", "i2", "i3", "a", "b", "c"] }, + { marker: "2", unsorted: ["i11", "i12", "a", "b", "b1"] }, ); diff --git a/tests/cases/fourslash/completionListOnAliases2.ts b/tests/cases/fourslash/completionListOnAliases2.ts index 44694c7bfddf2..02e36659893be 100644 --- a/tests/cases/fourslash/completionListOnAliases2.ts +++ b/tests/cases/fourslash/completionListOnAliases2.ts @@ -36,16 +36,15 @@ verify.completions( // Module m / alias a - { marker: ["1", "7"], exact: ["F", "C", "E", "N", "V", "A"] }, - { marker: ["1Type", "7Type"], exact: ["I", "C", "E", "A"] }, + { marker: ["1", "7"], unsorted: ["F", "C", "E", "N", "V", "A"] }, + { marker: ["1Type", "7Type"], unsorted: ["I", "C", "E", "A"] }, // Class C { marker: "2", - exact: [ - { name: "prototype", sortText: completion.SortText.LocationPriority }, + exact: completion.functionMembersPlus([ { name: "property", sortText: completion.SortText.LocalDeclarationPriority }, - ...completion.functionMembers - ] + { name: "prototype", sortText: completion.SortText.LocationPriority }, + ]) }, // Enum E { marker: "3", exact: "value" }, diff --git a/tests/cases/fourslash/completionListOnSuper.ts b/tests/cases/fourslash/completionListOnSuper.ts index 842c7d7db161c..868412765046c 100644 --- a/tests/cases/fourslash/completionListOnSuper.ts +++ b/tests/cases/fourslash/completionListOnSuper.ts @@ -16,4 +16,4 @@ //// } ////} -verify.completions({ marker: "", exact: ["foo", "bar"] }); +verify.completions({ marker: "", exact: ["bar", "foo"] }); diff --git a/tests/cases/fourslash/completionListPrivateMembers.ts b/tests/cases/fourslash/completionListPrivateMembers.ts index 7ad87f4bccdc5..37ead5d17138a 100644 --- a/tests/cases/fourslash/completionListPrivateMembers.ts +++ b/tests/cases/fourslash/completionListPrivateMembers.ts @@ -11,4 +11,4 @@ //// } ////} -verify.completions({ marker: "", exact: ["y", "foo"] }); +verify.completions({ marker: "", exact: ["foo", "y"] }); diff --git a/tests/cases/fourslash/completionListPrivateMembers2.ts b/tests/cases/fourslash/completionListPrivateMembers2.ts index b766823e0b9c4..9d8a397f0e350 100644 --- a/tests/cases/fourslash/completionListPrivateMembers2.ts +++ b/tests/cases/fourslash/completionListPrivateMembers2.ts @@ -9,6 +9,6 @@ ////f./*2*/ verify.completions( - { marker: "1", exact: ["y", "x", "method"] }, + { marker: "1", exact: ["method", "x", "y"] }, { marker: "2", exact: "method" }, ); diff --git a/tests/cases/fourslash/completionListPrivateNames.ts b/tests/cases/fourslash/completionListPrivateNames.ts index 53d213c2fc716..aab4ec230dabd 100644 --- a/tests/cases/fourslash/completionListPrivateNames.ts +++ b/tests/cases/fourslash/completionListPrivateNames.ts @@ -26,7 +26,7 @@ -verify.completions({ marker: "1", exact: ["#z", "t", "y"] }); -verify.completions({ marker: "2", exact: ["#z", "#u", "v"] }); -verify.completions({ marker: "3", exact: ["#z", "t", "y"] }); +verify.completions({ marker: "1", unsorted: ["#z", "t", "y"] }); +verify.completions({ marker: "2", unsorted: ["#z", "#u", "v"] }); +verify.completions({ marker: "3", unsorted: ["#z", "t", "y"] }); verify.completions({ marker: "4", exact: ["y"] }); diff --git a/tests/cases/fourslash/completionListPrivateNamesAccessors.ts b/tests/cases/fourslash/completionListPrivateNamesAccessors.ts index 1fc143eb836c6..2669af6b7ea96 100644 --- a/tests/cases/fourslash/completionListPrivateNamesAccessors.ts +++ b/tests/cases/fourslash/completionListPrivateNamesAccessors.ts @@ -31,7 +31,7 @@ -verify.completions({ marker: "1", exact: ["#z", "t", "l", "y"] }); -verify.completions({ marker: "2", exact: ["#z", "#u", "v", "k"] }); -verify.completions({ marker: "3", exact: ["#z", "t", "l", "y"] }); +verify.completions({ marker: "1", unsorted: ["#z", "t", "l", "y"] }); +verify.completions({ marker: "2", unsorted: ["#z", "#u", "v", "k"] }); +verify.completions({ marker: "3", unsorted: ["#z", "t", "l", "y"] }); verify.completions({ marker: "4", exact: ["y"] }); diff --git a/tests/cases/fourslash/completionListPrivateNamesMethods.ts b/tests/cases/fourslash/completionListPrivateNamesMethods.ts index d8005a2e7de4d..179675d03e384 100644 --- a/tests/cases/fourslash/completionListPrivateNamesMethods.ts +++ b/tests/cases/fourslash/completionListPrivateNamesMethods.ts @@ -25,7 +25,7 @@ -verify.completions({ marker: "1", exact: ["#z", "t", "y"] }); -verify.completions({ marker: "2", exact: ["#z", "#u", "v"] }); -verify.completions({ marker: "3", exact: ["#z", "t", "y"] }); +verify.completions({ marker: "1", unsorted: ["#z", "t", "y"] }); +verify.completions({ marker: "2", unsorted: ["#z", "#u", "v"] }); +verify.completions({ marker: "3", unsorted: ["#z", "t", "y"] }); verify.completions({ marker: "4", exact: ["y"] }); diff --git a/tests/cases/fourslash/completionListProtectedMembers.ts b/tests/cases/fourslash/completionListProtectedMembers.ts index bf54a7b4d7af8..c392d20add319 100644 --- a/tests/cases/fourslash/completionListProtectedMembers.ts +++ b/tests/cases/fourslash/completionListProtectedMembers.ts @@ -19,9 +19,9 @@ ////f./*5*/ verify.completions( - { marker: "1", exact: ["y", "x", "method"] }, - { marker: "2", exact: ["z", "method1", "y", "x", "method"] }, - { marker: "3", exact: ["method2", "y", "x", "method"] }, - { marker: "4", exact: ["method2", "z", "method1", "y", "x", "method"] }, + { marker: "1", unsorted: ["y", "x", "method"] }, + { marker: "2", unsorted: ["z", "method1", "y", "x", "method"] }, + { marker: "3", unsorted: ["method2", "y", "x", "method"] }, + { marker: "4", unsorted: ["method2", "z", "method1", "y", "x", "method"] }, { marker: "5", exact: undefined }, ); diff --git a/tests/cases/fourslash/completionListStaticMembers.ts b/tests/cases/fourslash/completionListStaticMembers.ts index a4b5b192fa532..558fbe64630f8 100644 --- a/tests/cases/fourslash/completionListStaticMembers.ts +++ b/tests/cases/fourslash/completionListStaticMembers.ts @@ -8,10 +8,9 @@ verify.completions({ marker: "", - exact: [ - { name: "prototype", sortText: completion.SortText.LocationPriority }, + exact: completion.functionMembersPlus([ { name: "a", sortText: completion.SortText.LocalDeclarationPriority }, { name: "b", sortText: completion.SortText.LocalDeclarationPriority }, - ...completion.functionMembers - ] + { name: "prototype", sortText: completion.SortText.LocationPriority }, + ]), }); diff --git a/tests/cases/fourslash/completionListStaticProtectedMembers2.ts b/tests/cases/fourslash/completionListStaticProtectedMembers2.ts index e3ab6a57f4369..180211c9aaf49 100644 --- a/tests/cases/fourslash/completionListStaticProtectedMembers2.ts +++ b/tests/cases/fourslash/completionListStaticProtectedMembers2.ts @@ -30,41 +30,39 @@ verify.completions( { // Same class, everything is visible marker: ["1"], - exact: [ - { name: "prototype", sortText: completion.SortText.LocationPriority }, + exact: completion.functionMembersPlus([ { name: "protectedMethod", sortText: completion.SortText.LocalDeclarationPriority }, + { name: "protectedOverriddenMethod", sortText: completion.SortText.LocalDeclarationPriority }, + { name: "protectedOverriddenProperty", sortText: completion.SortText.LocalDeclarationPriority}, { name: "protectedProperty", sortText: completion.SortText.LocalDeclarationPriority }, { name: "publicMethod", sortText: completion.SortText.LocalDeclarationPriority }, { name: "publicProperty", sortText: completion.SortText.LocalDeclarationPriority }, - { name: "protectedOverriddenMethod", sortText: completion.SortText.LocalDeclarationPriority }, - { name: "protectedOverriddenProperty", sortText: completion.SortText.LocalDeclarationPriority}, - ...completion.functionMembers, - ], + { name: "prototype", sortText: completion.SortText.LocationPriority }, + ]), }, { marker: ["2", "3"], - exact: [ - { name: "prototype", sortText: completion.SortText.LocationPriority }, + exact: completion.functionMembersPlus([ + { name: "protectedMethod", sortText: completion.SortText.LocalDeclarationPriority }, { name: "protectedOverriddenMethod", sortText: completion.SortText.LocalDeclarationPriority }, { name: "protectedOverriddenProperty", sortText: completion.SortText.LocalDeclarationPriority }, - { name: "test", sortText: completion.SortText.LocalDeclarationPriority }, - { name: "protectedMethod", sortText: completion.SortText.LocalDeclarationPriority }, { name: "protectedProperty", sortText: completion.SortText.LocalDeclarationPriority }, { name: "publicMethod", sortText: completion.SortText.LocalDeclarationPriority }, { name: "publicProperty", sortText: completion.SortText.LocalDeclarationPriority }, - ...completion.functionMembers, - ], + { name: "test", sortText: completion.SortText.LocalDeclarationPriority }, + { name: "prototype", sortText: completion.SortText.LocationPriority }, + ]), }, { // only public and protected methods of the base class are accessible through super marker: "4", exact: [ { name: "protectedMethod", sortText: completion.SortText.LocalDeclarationPriority }, - { name: "publicMethod", sortText: completion.SortText.LocalDeclarationPriority }, { name: "protectedOverriddenMethod", sortText: completion.SortText.LocalDeclarationPriority }, + { name: "publicMethod", sortText: completion.SortText.LocalDeclarationPriority }, { name: "apply", sortText: completion.SortText.LocationPriority }, - { name: "call", sortText: completion.SortText.LocationPriority }, { name: "bind", sortText: completion.SortText.LocationPriority }, + { name: "call", sortText: completion.SortText.LocationPriority }, { name: "toString", sortText: completion.SortText.LocationPriority }, ], }, diff --git a/tests/cases/fourslash/completionListStaticProtectedMembers3.ts b/tests/cases/fourslash/completionListStaticProtectedMembers3.ts index a98ff4afea51c..47b498f97453c 100644 --- a/tests/cases/fourslash/completionListStaticProtectedMembers3.ts +++ b/tests/cases/fourslash/completionListStaticProtectedMembers3.ts @@ -25,10 +25,9 @@ // Only public properties are visible outside the class verify.completions({ marker: ["1", "2"], - exact: [ - { name: "prototype", sortText: completion.SortText.LocationPriority }, + exact: completion.functionMembersPlus([ { name: "publicMethod", sortText: completion.SortText.LocalDeclarationPriority }, { name: "publicProperty", sortText: completion.SortText.LocalDeclarationPriority }, - ...completion.functionMembers - ], + { name: "prototype", sortText: completion.SortText.LocationPriority }, + ]), }); diff --git a/tests/cases/fourslash/completionListStaticProtectedMembers4.ts b/tests/cases/fourslash/completionListStaticProtectedMembers4.ts index 91b54f73ce700..10f0d9ec140aa 100644 --- a/tests/cases/fourslash/completionListStaticProtectedMembers4.ts +++ b/tests/cases/fourslash/completionListStaticProtectedMembers4.ts @@ -26,17 +26,16 @@ ////} //// Derived./*2*/ -const publicCompletions: ReadonlyArray = [ +const publicCompletions: ReadonlyArray = completion.functionMembersPlus([ { name: "publicMethod", sortText: completion.SortText.LocalDeclarationPriority }, { name: "publicProperty", sortText: completion.SortText.LocalDeclarationPriority }, - ...completion.functionMembers -]; +]); verify.completions( { // Sub class, everything but private is visible marker: "1", - exact: [ + unsorted: [ { name: "prototype", sortText: completion.SortText.LocationPriority }, { name: "protectedOverriddenMethod", sortText: completion.SortText.LocalDeclarationPriority }, { name: "protectedOverriddenProperty", sortText: completion.SortText.LocalDeclarationPriority }, @@ -48,7 +47,7 @@ verify.completions( { // Can see protected methods elevated to public marker: "2", - exact: [ + unsorted: [ { name: "prototype", sortText: completion.SortText.LocationPriority }, { name: "protectedOverriddenMethod", sortText: completion.SortText.LocalDeclarationPriority }, { name: "protectedOverriddenProperty", sortText: completion.SortText.LocalDeclarationPriority }, diff --git a/tests/cases/fourslash/completionListWithMeanings.ts b/tests/cases/fourslash/completionListWithMeanings.ts index 82c69d43a48de..c647267cd896e 100644 --- a/tests/cases/fourslash/completionListWithMeanings.ts +++ b/tests/cases/fourslash/completionListWithMeanings.ts @@ -15,8 +15,7 @@ ////var kk: m3.point3/*membertypeExpr*/ = m3.zz2/*membervalueExpr*/; ////var zz = { x: 4, y: 3 }; -const values: ReadonlyArray = [ - completion.globalThisEntry, +const values: ReadonlyArray = completion.globalsPlus([ { name: "m2", text: "namespace m2" }, // With no type side, allowed only in value { name: "m3", text: "namespace m3" }, { name: "xx", text: "var xx: number" }, @@ -24,17 +23,15 @@ const values: ReadonlyArray = [ { name: "yy", text: "var yy: point" }, { name: "kk", text: "var kk: m3.point3" }, { name: "zz", text: "var zz: point" }, - completion.undefinedVarEntry, - ...completion.statementKeywordsWithTypes, -]; +], { noLib: true }); -const types: ReadonlyArray = [ +const types: ReadonlyArray = completion.sorted([ completion.globalThisEntry, { name: "m", text: "namespace m" }, { name: "m3", text: "namespace m3" }, { name: "point", text: "interface point" }, ...completion.typeKeywords, -]; +]); const filterValuesByName = (name: string) => { return values.filter(entry => { diff --git a/tests/cases/fourslash/completionListWithModulesFromModule.ts b/tests/cases/fourslash/completionListWithModulesFromModule.ts index fb5f49b1abf7d..759c53b1a1107 100644 --- a/tests/cases/fourslash/completionListWithModulesFromModule.ts +++ b/tests/cases/fourslash/completionListWithModulesFromModule.ts @@ -258,51 +258,43 @@ const commonTypes: ReadonlyArray = verify.completions( { marker: ["shadowNamespaceWithNoExport", "shadowNamespaceWithExport"], - exact: [ + unsorted: completion.globalsPlus([ + ...commonValues, { name: "shwfn", text: "function shwfn(shadow: any): void" }, { name: "shwvar", text: "var shwvar: string" }, { name: "shwcls", text: "class shwcls" }, "tmp", - completion.globalThisEntry, - ...commonValues, - completion.undefinedVarEntry, - ...completion.statementKeywordsWithTypes, - ], + ], { noLib: true }), }, { marker: ["shadowNamespaceWithNoExportType", "shadowNamespaceWithExportType"], - exact: [ + unsorted: completion.typeKeywordsPlus([ + completion.globalThisEntry, { name: "shwcls", text: "class shwcls" }, { name: "shwint", text: "interface shwint" }, - completion.globalThisEntry, ...commonTypes, - ...completion.typeKeywords, - ] + ]), }, { marker: "namespaceWithImport", - exact: [ + unsorted: completion.globalsPlus([ "Mod1", "iMod1", "tmp", - completion.globalThisEntry, { name: "shwfn", text: "function shwfn(): void" }, ...commonValues, { name: "shwcls", text: "class shwcls" }, { name: "shwvar", text: "var shwvar: number" }, - completion.undefinedVarEntry, - ...completion.statementKeywordsWithTypes, - ], + ], { noLib: true }), }, { marker: "namespaceWithImportType", - exact: [ + unsorted: completion.typeKeywordsPlus([ + completion.globalThisEntry, "Mod1", "iMod1", - completion.globalThisEntry, ...commonTypes, { name: "shwcls", text: "class shwcls" }, { name: "shwint", text: "interface shwint" }, - ...completion.typeKeywords, - ], + ]), } ); diff --git a/tests/cases/fourslash/completionListWithModulesOutsideModuleScope2.ts b/tests/cases/fourslash/completionListWithModulesOutsideModuleScope2.ts index 7d015de28b30d..036f58f70ec15 100644 --- a/tests/cases/fourslash/completionListWithModulesOutsideModuleScope2.ts +++ b/tests/cases/fourslash/completionListWithModulesOutsideModuleScope2.ts @@ -234,7 +234,7 @@ verify.completions( { marker: "extendedClass", - exact: ["scpfn", "scpvar", ...completion.classElementKeywords], + unsorted: ["scpfn", "scpvar", ...completion.classElementKeywords], isNewIdentifierLocation: true, }, { diff --git a/tests/cases/fourslash/completionNoAutoInsertQuestionDotForThis.ts b/tests/cases/fourslash/completionNoAutoInsertQuestionDotForThis.ts index 4a99155bc7944..793209270ae71 100644 --- a/tests/cases/fourslash/completionNoAutoInsertQuestionDotForThis.ts +++ b/tests/cases/fourslash/completionNoAutoInsertQuestionDotForThis.ts @@ -13,8 +13,8 @@ verify.completions({ marker: "", exact: [ { name: "city", text: "(property) Address.city: string", insertText: undefined }, + { name: "method" }, { name: "postal code", text: "(property) Address[\"postal code\"]: string", insertText: "[\"postal code\"]", replacementSpan: test.ranges()[0] }, - { name: "method" } ], preferences: { includeInsertTextCompletions: true }, }); diff --git a/tests/cases/fourslash/completionOfAwaitPromise6.ts b/tests/cases/fourslash/completionOfAwaitPromise6.ts index c09cffdca09be..9d08f67d05891 100644 --- a/tests/cases/fourslash/completionOfAwaitPromise6.ts +++ b/tests/cases/fourslash/completionOfAwaitPromise6.ts @@ -8,8 +8,8 @@ const replacementSpan = test.ranges()[0] verify.completions({ marker: "", exact: [ + "catch", "then", - "catch" ], preferences: { includeInsertTextCompletions: false, diff --git a/tests/cases/fourslash/completionPropertyShorthandForObjectLiteral.ts b/tests/cases/fourslash/completionPropertyShorthandForObjectLiteral.ts index 8eae3df67a698..4ceac5508f4f3 100644 --- a/tests/cases/fourslash/completionPropertyShorthandForObjectLiteral.ts +++ b/tests/cases/fourslash/completionPropertyShorthandForObjectLiteral.ts @@ -58,7 +58,7 @@ const locals = [ ]; verify.completions( // Non-contextual, any, unknown, object, Record, [key: string]: .., Type parameter, etc.. - { marker: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11"], exact: completion.globalsPlus(locals), isNewIdentifierLocation: true }, + { marker: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11"], unsorted: completion.globalsPlus(locals), isNewIdentifierLocation: true }, // Has named property { marker: ["12", "13"], exact: "typed", isNewIdentifierLocation: false }, // Has both StringIndexType and named property @@ -66,5 +66,5 @@ verify.completions( // NumberIndexType { marker: ["15", "16"], exact: [], isNewIdentifierLocation: true }, // After comma - { marker: ["17"], exact: completion.globalsPlus(locals), isNewIdentifierLocation: true }, + { marker: ["17"], unsorted: completion.globalsPlus(locals), isNewIdentifierLocation: true }, ); diff --git a/tests/cases/fourslash/completionPropertyShorthandForObjectLiteral2.ts b/tests/cases/fourslash/completionPropertyShorthandForObjectLiteral2.ts index 40aa223b7eced..54e5a1e75c766 100644 --- a/tests/cases/fourslash/completionPropertyShorthandForObjectLiteral2.ts +++ b/tests/cases/fourslash/completionPropertyShorthandForObjectLiteral2.ts @@ -13,10 +13,10 @@ verify.completions({ marker: ["1"], - exact: completion.globalsPlus(["foo", "bar", "obj2"]), + exact: completion.globalsPlus(["bar", "foo", "obj2"]), }); verify.completions({ marker: ["2"], - exact: completion.globalsPlus(["foo", "bar", "obj1"]), + exact: completion.globalsPlus(["bar", "foo", "obj1"]), }); diff --git a/tests/cases/fourslash/completionPropertyShorthandForObjectLiteral3.ts b/tests/cases/fourslash/completionPropertyShorthandForObjectLiteral3.ts index 70c1f60055425..37e873abf9da3 100644 --- a/tests/cases/fourslash/completionPropertyShorthandForObjectLiteral3.ts +++ b/tests/cases/fourslash/completionPropertyShorthandForObjectLiteral3.ts @@ -7,5 +7,5 @@ verify.completions({ marker: ["1"], - exact: completion.globalsPlus(["foo", "bar"]), + exact: completion.globalsPlus(["bar", "foo"]), }); diff --git a/tests/cases/fourslash/completionPropertyShorthandForObjectLiteral4.ts b/tests/cases/fourslash/completionPropertyShorthandForObjectLiteral4.ts index a720bcc1dc6b2..d35b2d8acd6ee 100644 --- a/tests/cases/fourslash/completionPropertyShorthandForObjectLiteral4.ts +++ b/tests/cases/fourslash/completionPropertyShorthandForObjectLiteral4.ts @@ -7,5 +7,5 @@ verify.completions({ marker: ["1"], - exact: completion.globalsPlus(["foo", "bar"]), + exact: completion.globalsPlus(["bar", "foo"]), }); diff --git a/tests/cases/fourslash/completionsAssertKeyword.ts b/tests/cases/fourslash/completionsAssertKeyword.ts new file mode 100644 index 0000000000000..daa02cd33b1a4 --- /dev/null +++ b/tests/cases/fourslash/completionsAssertKeyword.ts @@ -0,0 +1,54 @@ +/// + +// @allowJs: true +// @Filename: a.ts +//// const f = { +//// a: 1 +////}; +//// import * as thing from "thing" /*0*/ +//// export { foo } from "foo" /*1*/ +//// import "foo" as /*2*/ +//// import "foo" a/*3*/ +//// import * as that from "that" +//// /*4*/ +//// import * /*5*/ as those from "those" + +// @Filename: b.js +//// import * as thing from "thing" /*js*/; + +const assertEntry = { + name: "assert", + kind: "keyword", + sortText: completion.SortText.GlobalsOrKeywords, +}; + +verify.completions( + { + marker: "0", + includes: [assertEntry], + }, + { + marker: "1", + includes: [assertEntry], + }, + { + marker: "2", + excludes: ["assert"], + }, + { + marker: "3", + includes: [assertEntry], + }, + { + marker: "4", + excludes: ["assert"], + }, + { + marker: "5", + excludes: ["assert"], + }, + { + marker: "js", + includes: [assertEntry], + }, +); diff --git a/tests/cases/fourslash/completionsAsyncMethodDeclaration.ts b/tests/cases/fourslash/completionsAsyncMethodDeclaration.ts new file mode 100644 index 0000000000000..ddb3070d2d77b --- /dev/null +++ b/tests/cases/fourslash/completionsAsyncMethodDeclaration.ts @@ -0,0 +1,25 @@ +/// + +//// const obj = { +//// a() {}, +//// async b/*1*/ +//// }; +//// const obj2 = { +//// async /*2*/ +//// }; +//// class Foo { +//// async b/*3*/ +//// } +//// class Foo2 { +//// async /*4*/ +//// } +//// class Bar { +//// static async b/*5*/ +//// } + +test.markerNames().forEach(marker => { + verify.completions({ + marker, + isNewIdentifierLocation: true + }); +}); diff --git a/tests/cases/fourslash/completionsClassPropertiesAssignment.ts b/tests/cases/fourslash/completionsClassPropertiesAssignment.ts index cb9aa111df04a..2d1039742212d 100644 --- a/tests/cases/fourslash/completionsClassPropertiesAssignment.ts +++ b/tests/cases/fourslash/completionsClassPropertiesAssignment.ts @@ -19,7 +19,7 @@ //// [prop] = /*6*/ ////} -const exact = completion.globalsPlus(["Class1", "Class2", "Class3", "prop", "Class4"]); +const exact = completion.globalsPlus(["Class1", "Class2", "Class3", "Class4", "prop"]); const markers = ["1", "2", "3", "4", "5", "6"]; verify.completions({ marker: "0", exact: ['a', 'b', 'c', 'd'], isGlobalCompletion: false }); diff --git a/tests/cases/fourslash/completionsExportImport.ts b/tests/cases/fourslash/completionsExportImport.ts index 0650b247a5242..d3d5055e129ce 100644 --- a/tests/cases/fourslash/completionsExportImport.ts +++ b/tests/cases/fourslash/completionsExportImport.ts @@ -10,8 +10,8 @@ verify.completions({ marker: "", - exact: [ + exact: completion.globalsPlus([ { name: "foo", kind: "alias", kindModifiers: "export,declare", text: "(alias) const foo: number\nimport foo = N.foo" }, - ...completion.globalsPlus([{ name: "N", kind: "module", kindModifiers: "declare", text: "namespace N" }]), - ], + { name: "N", kind: "module", kindModifiers: "declare", text: "namespace N" }, + ]), }); diff --git a/tests/cases/fourslash/completionsForRecursiveGenericTypesMember.ts b/tests/cases/fourslash/completionsForRecursiveGenericTypesMember.ts index afede5d353429..cb9a2e0782532 100644 --- a/tests/cases/fourslash/completionsForRecursiveGenericTypesMember.ts +++ b/tests/cases/fourslash/completionsForRecursiveGenericTypesMember.ts @@ -11,4 +11,4 @@ //// } //// } -verify.completions({ marker: "", exact: ["publicMethod", "privateMethod", "protectedMethod", "test"] }); +verify.completions({ marker: "", exact: ["privateMethod", "protectedMethod", "publicMethod", "test"] }); diff --git a/tests/cases/fourslash/completionsGeneratorMethodDeclaration.ts b/tests/cases/fourslash/completionsGeneratorMethodDeclaration.ts new file mode 100644 index 0000000000000..d4c6ad99e8e3a --- /dev/null +++ b/tests/cases/fourslash/completionsGeneratorMethodDeclaration.ts @@ -0,0 +1,28 @@ +/// + +//// const obj = { +//// a() {}, +//// * b/*1*/ +//// }; +//// const obj2 = { +//// * /*2*/ +//// }; +//// const obj3 = { +//// async * /*3*/ +//// }; +//// class Foo { +//// * b/*4*/ +//// } +//// class Foo2 { +//// * /*5*/ +//// } +//// class Bar { +//// static * b/*6*/ +//// } + +test.markerNames().forEach(marker => { + verify.completions({ + marker, + isNewIdentifierLocation: true + }); +}); diff --git a/tests/cases/fourslash/completionsGenericTypeWithMultipleBases1.ts b/tests/cases/fourslash/completionsGenericTypeWithMultipleBases1.ts index 32263a73fa43c..52e299c8c6e7f 100644 --- a/tests/cases/fourslash/completionsGenericTypeWithMultipleBases1.ts +++ b/tests/cases/fourslash/completionsGenericTypeWithMultipleBases1.ts @@ -16,7 +16,7 @@ verify.completions({ marker: "", exact: [ { name: "family", text: "(property) iScope.family: number" }, - { name: "watch", text: "(property) iBaseScope.watch: () => void" }, { name: "moveUp", text: "(property) iMover.moveUp: () => void" }, + { name: "watch", text: "(property) iBaseScope.watch: () => void" }, ], }); diff --git a/tests/cases/fourslash/completionsImportFromJSXTag.ts b/tests/cases/fourslash/completionsImportFromJSXTag.ts index b3c016b186e6b..348b1de279eb7 100644 --- a/tests/cases/fourslash/completionsImportFromJSXTag.ts +++ b/tests/cases/fourslash/completionsImportFromJSXTag.ts @@ -22,7 +22,7 @@ verify.applyCodeActionFromCompletion("", { name: "Box", source: "/Box", - description: `Import 'Box' from module "./Box"`, + description: `Add import from "./Box"`, newFileContent: `import { Box } from "./Box"; export function App() { diff --git a/tests/cases/fourslash/completionsImportModuleAugmentationWithJS.ts b/tests/cases/fourslash/completionsImportModuleAugmentationWithJS.ts index 8ea84247d8493..2295dcd44f6b7 100644 --- a/tests/cases/fourslash/completionsImportModuleAugmentationWithJS.ts +++ b/tests/cases/fourslash/completionsImportModuleAugmentationWithJS.ts @@ -26,7 +26,7 @@ verify.applyCodeActionFromCompletion("", { name: "Abcde", source: "/test", - description: `Import 'Abcde' from module "./test"`, + description: `Add import from "./test"`, newFileContent: `import { Abcde } from "./test"; export {}; diff --git a/tests/cases/fourslash/completionsImportYieldExpression.ts b/tests/cases/fourslash/completionsImportYieldExpression.ts index e010154075e1f..fbb0841e92eb3 100644 --- a/tests/cases/fourslash/completionsImportYieldExpression.ts +++ b/tests/cases/fourslash/completionsImportYieldExpression.ts @@ -11,7 +11,7 @@ verify.applyCodeActionFromCompletion("", { name: "a", source: "/a", - description: `Import 'a' from module "./a"`, + description: `Add import from "./a"`, newFileContent: `import { a } from "./a"; function *f() { diff --git a/tests/cases/fourslash/completionsImport_46332.ts b/tests/cases/fourslash/completionsImport_46332.ts index 836faa5974784..8066a990cdcea 100644 --- a/tests/cases/fourslash/completionsImport_46332.ts +++ b/tests/cases/fourslash/completionsImport_46332.ts @@ -80,7 +80,7 @@ verify.completions({ verify.applyCodeActionFromCompletion("", { name: "ref", source: "vue", - description: `Add 'ref' to existing import declaration from "vue"`, + description: `Update import from "vue"`, data: { exportName: "ref", fileName: "/node_modules/vue/dist/vue.d.ts", diff --git a/tests/cases/fourslash/completionsImport_ambient.ts b/tests/cases/fourslash/completionsImport_ambient.ts index f28028300b126..a7bc23a5a94de 100644 --- a/tests/cases/fourslash/completionsImport_ambient.ts +++ b/tests/cases/fourslash/completionsImport_ambient.ts @@ -19,14 +19,11 @@ verify.completions({ marker: "", - exact: [ - completion.globalThisEntry, - ...completion.globalsVars, + exact: completion.globalsPlus([ { name: "foo", sortText: completion.SortText.GlobalsOrKeywords }, - completion.undefinedVarEntry, { name: "Bar", source: "path1", @@ -39,8 +36,7 @@ verify.completions({ hasAction: true, sortText: completion.SortText.AutoImportSuggestions }, - ...completion.statementKeywordsWithTypes - ], + ]), preferences: { includeCompletionsForModuleExports: true } @@ -49,7 +45,7 @@ verify.completions({ verify.applyCodeActionFromCompletion("", { name: "Bar", source: "path2longer", - description: `Import 'Bar' from module "path2longer"`, + description: `Add import from "path2longer"`, newFileContent: `import { Bar } from "path2longer";\n\nBa`, preferences: { includeCompletionsForModuleExports: true diff --git a/tests/cases/fourslash/completionsImport_defaultAndNamedConflict.ts b/tests/cases/fourslash/completionsImport_defaultAndNamedConflict.ts index 898658921361b..73e3420955e2d 100644 --- a/tests/cases/fourslash/completionsImport_defaultAndNamedConflict.ts +++ b/tests/cases/fourslash/completionsImport_defaultAndNamedConflict.ts @@ -11,9 +11,7 @@ verify.completions({ marker: "", - exact: [ - completion.globalThisEntry, - completion.undefinedVarEntry, + exact: completion.globalsPlus([ { name: "someModule", source: "/someModule", @@ -34,8 +32,7 @@ verify.completions({ hasAction: true, sortText: completion.SortText.AutoImportSuggestions }, - ...completion.statementKeywordsWithTypes - ], + ], { noLib: true }), preferences: { includeCompletionsForModuleExports: true } @@ -45,7 +42,7 @@ verify.applyCodeActionFromCompletion("", { name: "someModule", source: "/someModule", data: { exportName: "default", fileName: "/someModule.ts" }, - description: `Import default 'someModule' from module "./someModule"`, + description: `Add import from "./someModule"`, newFileContent: `import someModule from "./someModule"; someMo` diff --git a/tests/cases/fourslash/completionsImport_defaultFalsePositive.ts b/tests/cases/fourslash/completionsImport_defaultFalsePositive.ts index 28babd929c9e2..a16d56da00443 100644 --- a/tests/cases/fourslash/completionsImport_defaultFalsePositive.ts +++ b/tests/cases/fourslash/completionsImport_defaultFalsePositive.ts @@ -30,7 +30,7 @@ verify.completions({ verify.applyCodeActionFromCompletion("", { name: "concat", source: "/node_modules/bar/concat", - description: `Import 'concat' from module "bar/concat"`, + description: `Add import from "bar/concat"`, newFileContent: `import { concat } from "bar/concat"; diff --git a/tests/cases/fourslash/completionsImport_default_addToNamedImports.ts b/tests/cases/fourslash/completionsImport_default_addToNamedImports.ts index c81b93e34b1ed..d6cdb6ba8939f 100644 --- a/tests/cases/fourslash/completionsImport_default_addToNamedImports.ts +++ b/tests/cases/fourslash/completionsImport_default_addToNamedImports.ts @@ -26,7 +26,7 @@ verify.completions({ verify.applyCodeActionFromCompletion("", { name: "foo", source: "/a", - description: `Add default import 'foo' to existing import declaration from "./a"`, + description: `Update import from "./a"`, newFileContent: `import foo, { x } from "./a"; f;`, }); diff --git a/tests/cases/fourslash/completionsImport_default_addToNamespaceImport.ts b/tests/cases/fourslash/completionsImport_default_addToNamespaceImport.ts index 1752d00d1b6f1..36488502dfe33 100644 --- a/tests/cases/fourslash/completionsImport_default_addToNamespaceImport.ts +++ b/tests/cases/fourslash/completionsImport_default_addToNamespaceImport.ts @@ -24,7 +24,7 @@ verify.completions({ verify.applyCodeActionFromCompletion("", { name: "foo", source: "/a", - description: `Add default import 'foo' to existing import declaration from "./a"`, + description: `Update import from "./a"`, newFileContent: `import foo, * as a from "./a"; f;`, }); diff --git a/tests/cases/fourslash/completionsImport_default_alreadyExistedWithRename.ts b/tests/cases/fourslash/completionsImport_default_alreadyExistedWithRename.ts index 610b4fc73cfa8..ced7e7a04febf 100644 --- a/tests/cases/fourslash/completionsImport_default_alreadyExistedWithRename.ts +++ b/tests/cases/fourslash/completionsImport_default_alreadyExistedWithRename.ts @@ -24,7 +24,7 @@ verify.completions({ verify.applyCodeActionFromCompletion("", { name: "foo", source: "/a", - description: `Import default 'foo' from module "./a"`, + description: `Add import from "./a"`, newFileContent: `import foo from "./a"; import f_o_o from "./a"; f;`, diff --git a/tests/cases/fourslash/completionsImport_default_anonymous.ts b/tests/cases/fourslash/completionsImport_default_anonymous.ts index e3506d1e94213..a7a2ffad06fef 100644 --- a/tests/cases/fourslash/completionsImport_default_anonymous.ts +++ b/tests/cases/fourslash/completionsImport_default_anonymous.ts @@ -16,11 +16,7 @@ const preferences: FourSlashInterface.UserPreferences = { includeCompletionsForM verify.completions( { marker: "0", - exact: [ - completion.globalThisEntry, - completion.undefinedVarEntry, - ...completion.statementKeywordsWithTypes - ], + exact: completion.globalsPlus([], { noLib: true }), preferences }, { @@ -41,7 +37,7 @@ verify.completions( verify.applyCodeActionFromCompletion("1", { name: "fooBar", source: "/src/foo-bar", - description: `Import default 'fooBar' from module "./foo-bar"`, + description: `Add import from "./foo-bar"`, newFileContent: `import fooBar from "./foo-bar" def diff --git a/tests/cases/fourslash/completionsImport_default_didNotExistBefore.ts b/tests/cases/fourslash/completionsImport_default_didNotExistBefore.ts index 333159ae49348..3459a342d10fb 100644 --- a/tests/cases/fourslash/completionsImport_default_didNotExistBefore.ts +++ b/tests/cases/fourslash/completionsImport_default_didNotExistBefore.ts @@ -25,7 +25,7 @@ verify.completions({ verify.applyCodeActionFromCompletion("", { name: "foo", source: "/a", - description: `Import default 'foo' from module "./a"`, + description: `Add import from "./a"`, newFileContent: `import foo from "./a"; f;`, diff --git a/tests/cases/fourslash/completionsImport_default_exportDefaultIdentifier.ts b/tests/cases/fourslash/completionsImport_default_exportDefaultIdentifier.ts index c9f58870a77a8..f4db7061043b7 100644 --- a/tests/cases/fourslash/completionsImport_default_exportDefaultIdentifier.ts +++ b/tests/cases/fourslash/completionsImport_default_exportDefaultIdentifier.ts @@ -30,7 +30,7 @@ verify.completions({ verify.applyCodeActionFromCompletion("", { name: "foo", source: "/a", - description: `Import default 'foo' from module "./a"`, + description: `Add import from "./a"`, newFileContent: `import foo from "./a"; f;`, diff --git a/tests/cases/fourslash/completionsImport_default_fromMergedDeclarations.ts b/tests/cases/fourslash/completionsImport_default_fromMergedDeclarations.ts index 6c86fc18fa520..a280654bde1ef 100644 --- a/tests/cases/fourslash/completionsImport_default_fromMergedDeclarations.ts +++ b/tests/cases/fourslash/completionsImport_default_fromMergedDeclarations.ts @@ -32,7 +32,7 @@ verify.completions({ verify.applyCodeActionFromCompletion("", { name: "M", source: "m", - description: `Import default 'M' from module "m"`, + description: `Add import from "m"`, newFileContent: `import M from "m"; `, diff --git a/tests/cases/fourslash/completionsImport_default_symbolName.ts b/tests/cases/fourslash/completionsImport_default_symbolName.ts index 0ede7a1673a85..8dcaddc49e80c 100644 --- a/tests/cases/fourslash/completionsImport_default_symbolName.ts +++ b/tests/cases/fourslash/completionsImport_default_symbolName.ts @@ -1,5 +1,5 @@ -/// - +/// + // @module: commonjs // @Filename: /node_modules/@types/range-parser/index.d.ts @@ -37,7 +37,7 @@ function RangeParser(): string` verify.applyCodeActionFromCompletion("0", { name: "RangeParser", source: "/node_modules/@types/range-parser/index", - description: `Import 'RangeParser' from module "range-parser"`, + description: `Add import from "range-parser"`, newFileContent: `import RangeParser = require("range-parser"); R`, diff --git a/tests/cases/fourslash/completionsImport_details_withMisspelledName.ts b/tests/cases/fourslash/completionsImport_details_withMisspelledName.ts index 5f5095301a524..27b47e4d3b364 100644 --- a/tests/cases/fourslash/completionsImport_details_withMisspelledName.ts +++ b/tests/cases/fourslash/completionsImport_details_withMisspelledName.ts @@ -13,7 +13,7 @@ goTo.marker("1"); verify.applyCodeActionFromCompletion("1", { name: "abc", source: "/a", - description: `Import 'abc' from module "./a"`, + description: `Add import from "./a"`, newFileContent: `import { abc } from "./a"; acb;`, @@ -27,7 +27,7 @@ verify.applyCodeActionFromCompletion("2", { exportName: "abc", fileName: "/a.ts", }, - description: `Import 'abc' from module "./a"`, + description: `Add import from "./a"`, newFileContent: `import { abc } from "./a"; acb;`, diff --git a/tests/cases/fourslash/completionsImport_duplicatePackages_scoped.ts b/tests/cases/fourslash/completionsImport_duplicatePackages_scoped.ts new file mode 100644 index 0000000000000..567757ffac39f --- /dev/null +++ b/tests/cases/fourslash/completionsImport_duplicatePackages_scoped.ts @@ -0,0 +1,56 @@ +/// + +// @module: commonjs +// @esModuleInterop: true + +// @Filename: /node_modules/@scope/react-dom/package.json +//// { "name": "react-dom", "version": "1.0.0", "types": "./index.d.ts" } + +// @Filename: /node_modules/@scope/react-dom/index.d.ts +//// import * as React from "react"; +//// export function render(): void; + +// @Filename: /node_modules/@scope/react/package.json +//// { "name": "react", "version": "1.0.0", "types": "./index.d.ts" } + +// @Filename: /node_modules/@scope/react/index.d.ts +//// import "./other"; +//// export declare function useState(): void; + +// @Filename: /node_modules/@scope/react/other.d.ts +//// export declare function useRef(): void; + +// @Filename: /packages/a/node_modules/@scope/react/package.json +//// { "name": "react", "version": "1.0.1", "types": "./index.d.ts" } + +// @Filename: /packages/a/node_modules/@scope/react/index.d.ts +//// export declare function useState(): void; + +// @Filename: /packages/a/index.ts +//// import "@scope/react-dom"; +//// import "@scope/react"; + +// @Filename: /packages/a/foo.ts +//// /**/ + +goTo.marker(""); +verify.completions({ + marker: "", + exact: completion.globalsPlus([{ + name: "render", + source: "@scope/react-dom", + sourceDisplay: "@scope/react-dom", + hasAction: true, + sortText: completion.SortText.AutoImportSuggestions, + }, { + name: "useState", + source: "@scope/react", + sourceDisplay: "@scope/react", + hasAction: true, + sortText: completion.SortText.AutoImportSuggestions, + }]), + preferences: { + includeCompletionsForModuleExports: true, + allowIncompleteCompletions: true, + }, +}); diff --git a/tests/cases/fourslash/completionsImport_duplicatePackages_scopedTypes.ts b/tests/cases/fourslash/completionsImport_duplicatePackages_scopedTypes.ts new file mode 100644 index 0000000000000..970e6cde0a3fc --- /dev/null +++ b/tests/cases/fourslash/completionsImport_duplicatePackages_scopedTypes.ts @@ -0,0 +1,56 @@ +/// + +// @module: commonjs +// @esModuleInterop: true + +// @Filename: /node_modules/@types/scope__react-dom/package.json +//// { "name": "react-dom", "version": "1.0.0", "types": "./index.d.ts" } + +// @Filename: /node_modules/@types/scope__react-dom/index.d.ts +//// import * as React from "react"; +//// export function render(): void; + +// @Filename: /node_modules/@types/scope__react/package.json +//// { "name": "react", "version": "1.0.0", "types": "./index.d.ts" } + +// @Filename: /node_modules/@types/scope__react/index.d.ts +//// import "./other"; +//// export declare function useState(): void; + +// @Filename: /node_modules/@types/scope__react/other.d.ts +//// export declare function useRef(): void; + +// @Filename: /packages/a/node_modules/@types/scope__react/package.json +//// { "name": "react", "version": "1.0.1", "types": "./index.d.ts" } + +// @Filename: /packages/a/node_modules/@types/scope__react/index.d.ts +//// export declare function useState(): void; + +// @Filename: /packages/a/index.ts +//// import "@scope/react-dom"; +//// import "@scope/react"; + +// @Filename: /packages/a/foo.ts +//// /**/ + +goTo.marker(""); +verify.completions({ + marker: "", + exact: completion.globalsPlus([{ + name: "render", + source: "@scope/react-dom", + sourceDisplay: "@scope/react-dom", + hasAction: true, + sortText: completion.SortText.AutoImportSuggestions, + }, { + name: "useState", + source: "@scope/react", + sourceDisplay: "@scope/react", + hasAction: true, + sortText: completion.SortText.AutoImportSuggestions, + }]), + preferences: { + includeCompletionsForModuleExports: true, + allowIncompleteCompletions: true, + }, +}); diff --git a/tests/cases/fourslash/completionsImport_duplicatePackages_scopedTypesAndNotTypes.ts b/tests/cases/fourslash/completionsImport_duplicatePackages_scopedTypesAndNotTypes.ts new file mode 100644 index 0000000000000..116d3145fc178 --- /dev/null +++ b/tests/cases/fourslash/completionsImport_duplicatePackages_scopedTypesAndNotTypes.ts @@ -0,0 +1,56 @@ +/// + +// @module: commonjs +// @esModuleInterop: true + +// @Filename: /node_modules/@types/scope__react-dom/package.json +//// { "name": "react-dom", "version": "1.0.0", "types": "./index.d.ts" } + +// @Filename: /node_modules/@types/scope__react-dom/index.d.ts +//// import * as React from "react"; +//// export function render(): void; + +// @Filename: /node_modules/@types/scope__react/package.json +//// { "name": "react", "version": "1.0.0", "types": "./index.d.ts" } + +// @Filename: /node_modules/@types/scope__react/index.d.ts +//// import "./other"; +//// export declare function useState(): void; + +// @Filename: /node_modules/@types/scope__react/other.d.ts +//// export declare function useRef(): void; + +// @Filename: /packages/a/node_modules/@scope/react/package.json +//// { "name": "react", "version": "1.0.1", "types": "./index.d.ts" } + +// @Filename: /packages/a/node_modules/@scope/react/index.d.ts +//// export declare function useState(): void; + +// @Filename: /packages/a/index.ts +//// import "react-dom"; +//// import "react"; + +// @Filename: /packages/a/foo.ts +//// /**/ + +goTo.marker(""); +verify.completions({ + marker: "", + exact: completion.globalsPlus([{ + name: "render", + source: "@scope/react-dom", + sourceDisplay: "@scope/react-dom", + hasAction: true, + sortText: completion.SortText.AutoImportSuggestions, + }, { + name: "useState", + source: "@scope/react", + sourceDisplay: "@scope/react", + hasAction: true, + sortText: completion.SortText.AutoImportSuggestions, + }]), + preferences: { + includeCompletionsForModuleExports: true, + allowIncompleteCompletions: true, + }, +}); diff --git a/tests/cases/fourslash/completionsImport_duplicatePackages_types.ts b/tests/cases/fourslash/completionsImport_duplicatePackages_types.ts new file mode 100644 index 0000000000000..f29a52c018890 --- /dev/null +++ b/tests/cases/fourslash/completionsImport_duplicatePackages_types.ts @@ -0,0 +1,57 @@ +/// + +// @module: commonjs +// @esModuleInterop: true + +// @Filename: /node_modules/@types/react-dom/package.json +//// { "name": "react-dom", "version": "1.0.0", "types": "./index.d.ts" } + +// @Filename: /node_modules/@types/react-dom/index.d.ts +//// import * as React from "react"; +//// export function render(): void; + +// @Filename: /node_modules/@types/react/package.json +//// { "name": "react", "version": "1.0.0", "types": "./index.d.ts" } + +// @Filename: /node_modules/@types/react/index.d.ts +//// import "./other"; +//// export declare function useState(): void; + +// @Filename: /node_modules/@types/react/other.d.ts +//// export declare function useRef(): void; + +// @Filename: /packages/a/node_modules/@types/react/package.json +//// { "name": "react", "version": "1.0.1", "types": "./index.d.ts" } + +// @Filename: /packages/a/node_modules/@types/react/index.d.ts +//// export declare function useState(): void; + +// @Filename: /packages/a/index.ts +//// import "react-dom"; +//// import "react"; + +// @Filename: /packages/a/foo.ts +//// /**/ + +goTo.marker(""); +verify.completions({ + marker: "", + exact: completion.globalsPlus([{ + name: "render", + source: "react-dom", + sourceDisplay: "react-dom", + hasAction: true, + sortText: completion.SortText.AutoImportSuggestions, + }, { + name: "useState", + source: "react", + sourceDisplay: "react", + hasAction: true, + sortText: completion.SortText.AutoImportSuggestions, + }]), + preferences: { + includeCompletionsForModuleExports: true, + allowIncompleteCompletions: true, + }, +}); + diff --git a/tests/cases/fourslash/completionsImport_duplicatePackages_typesAndNotTypes.ts b/tests/cases/fourslash/completionsImport_duplicatePackages_typesAndNotTypes.ts new file mode 100644 index 0000000000000..bf9218cd82723 --- /dev/null +++ b/tests/cases/fourslash/completionsImport_duplicatePackages_typesAndNotTypes.ts @@ -0,0 +1,50 @@ +/// + +// @module: commonjs +// @esModuleInterop: true + +// @Filename: /node_modules/@types/react-dom/package.json +//// { "name": "react-dom", "version": "1.0.0", "types": "./index.d.ts" } + +// @Filename: /node_modules/@types/react-dom/index.d.ts +//// import * as React from "react"; +//// export function render(): void; + +// @Filename: /node_modules/@types/react/package.json +//// { "name": "react", "version": "1.0.0", "types": "./index.d.ts" } + +// @Filename: /node_modules/@types/react/index.d.ts +//// import "./other"; +//// export declare function useState(): void; + +// @Filename: /node_modules/@types/react/other.d.ts +//// export declare function useRef(): void; + +// @Filename: /packages/a/node_modules/react/package.json +//// { "name": "react", "version": "1.0.1", "types": "./index.d.ts" } + +// @Filename: /packages/a/node_modules/react/index.d.ts +//// export declare function useState(): void; + +// @Filename: /packages/a/index.ts +//// import "react-dom"; +//// import "react"; + +// @Filename: /packages/a/foo.ts +//// useState/**/ + +goTo.marker(""); +verify.completions({ + marker: "", + exact: completion.globalsPlus([{ + name: "useState", + source: "react", + sourceDisplay: "react", + hasAction: true, + sortText: completion.SortText.AutoImportSuggestions, + }]), + preferences: { + includeCompletionsForModuleExports: true, + allowIncompleteCompletions: true, + }, +}); diff --git a/tests/cases/fourslash/completionsImport_exportEquals.ts b/tests/cases/fourslash/completionsImport_exportEquals.ts index 7cd2e1cd2f4fd..3e0debda999b5 100644 --- a/tests/cases/fourslash/completionsImport_exportEquals.ts +++ b/tests/cases/fourslash/completionsImport_exportEquals.ts @@ -41,7 +41,7 @@ verify.completions( verify.applyCodeActionFromCompletion("1", { name: "b", source: "/a", - description: `Import 'b' from module "./a"`, + description: `Add import from "./a"`, newFileContent: `import { b } from "./a"; @@ -52,7 +52,7 @@ let x: b;`, verify.applyCodeActionFromCompletion("0", { name: "a", source: "/a", - description: `Import 'a' from module "./a"`, + description: `Add import from "./a"`, newFileContent: `import { b } from "./a"; import a = require("./a"); diff --git a/tests/cases/fourslash/completionsImport_exportEquals_anonymous.ts b/tests/cases/fourslash/completionsImport_exportEquals_anonymous.ts index f279bef27cdbc..d187b31c01c53 100644 --- a/tests/cases/fourslash/completionsImport_exportEquals_anonymous.ts +++ b/tests/cases/fourslash/completionsImport_exportEquals_anonymous.ts @@ -25,28 +25,19 @@ const exportEntry: FourSlashInterface.ExpectedCompletionEntryObject = { verify.completions( { marker: "0", - exact: [ - completion.globalThisEntry, - completion.undefinedVarEntry, - ...completion.statementKeywordsWithTypes - ], + exact: completion.globalsPlus([], { noLib: true }), preferences }, { marker: "1", - exact: [ - completion.globalThisEntry, - completion.undefinedVarEntry, - exportEntry, - ...completion.statementKeywordsWithTypes - ], + exact: completion.globalsPlus([exportEntry], { noLib: true }), preferences } ); verify.applyCodeActionFromCompletion("0", { name: "fooBar", source: "/src/foo-bar", - description: `Import 'fooBar' from module "./foo-bar"`, + description: `Add import from "./foo-bar"`, newFileContent: `import fooBar = require("./foo-bar") exp diff --git a/tests/cases/fourslash/completionsImport_fromAmbientModule.ts b/tests/cases/fourslash/completionsImport_fromAmbientModule.ts index afbf3a254c4bd..747dd50c77639 100644 --- a/tests/cases/fourslash/completionsImport_fromAmbientModule.ts +++ b/tests/cases/fourslash/completionsImport_fromAmbientModule.ts @@ -13,7 +13,7 @@ verify.applyCodeActionFromCompletion("", { name: "x", source: "m", - description: `Import 'x' from module "m"`, + description: `Add import from "m"`, newFileContent: `import { x } from "m"; `, diff --git a/tests/cases/fourslash/completionsImport_importType.ts b/tests/cases/fourslash/completionsImport_importType.ts index 3f4bfa38c3bc5..0622b6d6aaa71 100644 --- a/tests/cases/fourslash/completionsImport_importType.ts +++ b/tests/cases/fourslash/completionsImport_importType.ts @@ -42,7 +42,7 @@ verify.completions({ verify.applyCodeActionFromCompletion("0", { name: "C", source: "/a", - description: `Import 'C' from module "./a"`, + description: `Add import from "./a"`, newFileContent: `import { C } from "./a"; diff --git a/tests/cases/fourslash/completionsImport_jsxOpeningTagImportDefault.ts b/tests/cases/fourslash/completionsImport_jsxOpeningTagImportDefault.ts new file mode 100644 index 0000000000000..5dc3285bd124a --- /dev/null +++ b/tests/cases/fourslash/completionsImport_jsxOpeningTagImportDefault.ts @@ -0,0 +1,39 @@ +/// + +// @module: commonjs +// @jsx: react + +// @Filename: /component.tsx +//// export default function (props: any) {} + +// @Filename: /index.tsx +//// export function Index() { +//// return e.name !== "unique"), ], diff --git a/tests/cases/fourslash/completionsImport_multipleWithSameName.ts b/tests/cases/fourslash/completionsImport_multipleWithSameName.ts index d00a7e0bebb5d..d7433b41492db 100644 --- a/tests/cases/fourslash/completionsImport_multipleWithSameName.ts +++ b/tests/cases/fourslash/completionsImport_multipleWithSameName.ts @@ -19,16 +19,14 @@ goTo.marker(""); verify.completions({ marker: "", - exact: [ - completion.globalThisEntry, + exact: completion.globalsPlus([ { - name: "foo", - text: "var foo: number", - kind: "var", - kindModifiers: "declare", - sortText: completion.SortText.GlobalsOrKeywords + name: "foo", + text: "var foo: number", + kind: "var", + kindModifiers: "declare", + sortText: completion.SortText.GlobalsOrKeywords }, - completion.undefinedVarEntry, { name: "foo", source: "/a", @@ -49,14 +47,13 @@ verify.completions({ hasAction: true, sortText: completion.SortText.AutoImportSuggestions }, - ...completion.statementKeywordsWithTypes, - ], + ], { noLib: true }), preferences: { includeCompletionsForModuleExports: true }, }); verify.applyCodeActionFromCompletion("", { name: "foo", source: "/b", - description: `Import 'foo' from module "./b"`, + description: `Add import from "./b"`, newFileContent: `import { foo } from "./b"; fo`, diff --git a/tests/cases/fourslash/completionsImport_named_addToNamedImports.ts b/tests/cases/fourslash/completionsImport_named_addToNamedImports.ts index 55ba68abedded..84abd39f5bfbf 100644 --- a/tests/cases/fourslash/completionsImport_named_addToNamedImports.ts +++ b/tests/cases/fourslash/completionsImport_named_addToNamedImports.ts @@ -25,7 +25,7 @@ verify.completions({ verify.applyCodeActionFromCompletion("", { name: "foo", source: "/a", - description: `Add 'foo' to existing import declaration from "./a"`, + description: `Update import from "./a"`, newFileContent: `import { foo, x } from "./a"; f;`, }); diff --git a/tests/cases/fourslash/completionsImport_named_didNotExistBefore.ts b/tests/cases/fourslash/completionsImport_named_didNotExistBefore.ts index 237baaeb33652..41ea583e067a1 100644 --- a/tests/cases/fourslash/completionsImport_named_didNotExistBefore.ts +++ b/tests/cases/fourslash/completionsImport_named_didNotExistBefore.ts @@ -12,15 +12,13 @@ verify.completions({ marker: "", - exact: [ + exact: completion.globalsPlus([ { name: "Test2", text: "(alias) function Test2(): void\nimport Test2", kind: "alias", kindModifiers: "export" }, - completion.globalThisEntry, - completion.undefinedVarEntry, { name: "Test1", source: "/a", @@ -31,15 +29,14 @@ verify.completions({ hasAction: true, sortText: completion.SortText.AutoImportSuggestions }, - ...completion.statementKeywordsWithTypes, - ], + ], { noLib: true }), preferences: { includeCompletionsForModuleExports: true }, }); verify.applyCodeActionFromCompletion("", { name: "Test1", source: "/a", - description: `Add 'Test1' to existing import declaration from "./a"`, + description: `Update import from "./a"`, newFileContent: `import { Test1, Test2 } from "./a"; t`, }); diff --git a/tests/cases/fourslash/completionsImport_named_exportEqualsNamespace.ts b/tests/cases/fourslash/completionsImport_named_exportEqualsNamespace.ts index ca866d838fc6c..d4566dd5dfcf9 100644 --- a/tests/cases/fourslash/completionsImport_named_exportEqualsNamespace.ts +++ b/tests/cases/fourslash/completionsImport_named_exportEqualsNamespace.ts @@ -28,7 +28,7 @@ verify.completions({ verify.applyCodeActionFromCompletion("", { name: "foo", source: "/a", - description: `Import 'foo' from module "./a"`, + description: `Add import from "./a"`, newFileContent: `import { foo } from "./a"; f;`, diff --git a/tests/cases/fourslash/completionsImport_named_fromMergedDeclarations.ts b/tests/cases/fourslash/completionsImport_named_fromMergedDeclarations.ts index ceda9f3800ea2..95262be2f5d7e 100644 --- a/tests/cases/fourslash/completionsImport_named_fromMergedDeclarations.ts +++ b/tests/cases/fourslash/completionsImport_named_fromMergedDeclarations.ts @@ -32,7 +32,7 @@ verify.completions({ verify.applyCodeActionFromCompletion("", { name: "M", source: "m", - description: `Import 'M' from module "m"`, + description: `Add import from "m"`, newFileContent: `import { M } from "m"; `, diff --git a/tests/cases/fourslash/completionsImport_noSemicolons.ts b/tests/cases/fourslash/completionsImport_noSemicolons.ts index f1e183b8b3c30..1415eba26efa0 100644 --- a/tests/cases/fourslash/completionsImport_noSemicolons.ts +++ b/tests/cases/fourslash/completionsImport_noSemicolons.ts @@ -11,7 +11,7 @@ verify.applyCodeActionFromCompletion("", { name: "foo", source: "/a", - description: `Import 'foo' from module "./a"`, + description: `Add import from "./a"`, newFileContent: `import { foo } from "./a" const x = 0 diff --git a/tests/cases/fourslash/completionsImport_notFromIndex.ts b/tests/cases/fourslash/completionsImport_notFromIndex.ts index 3df542daeb498..df4dc22becab7 100644 --- a/tests/cases/fourslash/completionsImport_notFromIndex.ts +++ b/tests/cases/fourslash/completionsImport_notFromIndex.ts @@ -33,7 +33,7 @@ for (const [marker, sourceDisplay] of [["0", "./src"], ["1", "./a"], ["2", "../a verify.applyCodeActionFromCompletion(marker, { name: "x", source: "/src/a", - description: `Import 'x' from module "${sourceDisplay}"`, + description: `Add import from "${sourceDisplay}"`, newFileContent: `import { x } from "${sourceDisplay}";\n\nx`, }); } diff --git a/tests/cases/fourslash/completionsImport_ofAlias.ts b/tests/cases/fourslash/completionsImport_ofAlias.ts index 1319391eb0bf1..e6a882f712539 100644 --- a/tests/cases/fourslash/completionsImport_ofAlias.ts +++ b/tests/cases/fourslash/completionsImport_ofAlias.ts @@ -43,7 +43,7 @@ verify.completions({ verify.applyCodeActionFromCompletion("", { name: "foo", source: "/a", - description: `Import 'foo' from module "./a"`, + description: `Add import from "./a"`, newFileContent: `import { foo } from "./a"; fo`, diff --git a/tests/cases/fourslash/completionsImport_ofAlias_preferShortPath.ts b/tests/cases/fourslash/completionsImport_ofAlias_preferShortPath.ts index 494b871238fdc..84f955ad05f3d 100644 --- a/tests/cases/fourslash/completionsImport_ofAlias_preferShortPath.ts +++ b/tests/cases/fourslash/completionsImport_ofAlias_preferShortPath.ts @@ -18,27 +18,24 @@ verify.completions({ marker: "", - exact: [ - completion.globalThisEntry, - completion.undefinedVarEntry, + exact: completion.globalsPlus([ { - name: "foo", - source: "/foo/lib/foo", - sourceDisplay: "./foo", - text: "const foo: 0", - kind: "const", - kindModifiers: "export", - hasAction: true, - sortText: completion.SortText.AutoImportSuggestions + name: "foo", + source: "/foo/lib/foo", + sourceDisplay: "./foo", + text: "const foo: 0", + kind: "const", + kindModifiers: "export", + hasAction: true, + sortText: completion.SortText.AutoImportSuggestions }, - ...completion.statementKeywordsWithTypes, - ], + ], { noLib: true }), preferences: { includeCompletionsForModuleExports: true }, }); verify.applyCodeActionFromCompletion("", { name: "foo", source: "/foo/lib/foo", - description: `Import 'foo' from module "./foo"`, + description: `Add import from "./foo"`, newFileContent: `import { foo } from "./foo"; fo`, diff --git a/tests/cases/fourslash/completionsImport_promoteTypeOnly1.ts b/tests/cases/fourslash/completionsImport_promoteTypeOnly1.ts new file mode 100644 index 0000000000000..926e19d9124d8 --- /dev/null +++ b/tests/cases/fourslash/completionsImport_promoteTypeOnly1.ts @@ -0,0 +1,34 @@ +/// +// @module: es2015 + +// @Filename: /exports.ts +//// export interface SomeInterface {} +//// export class SomePig {} + +// @Filename: /a.ts +//// import type { SomeInterface, SomePig } from "./exports.js"; +//// new SomePig/**/ + +verify.completions({ + marker: "", + exact: completion.globalsPlus([{ + name: "SomePig", + source: completion.CompletionSource.TypeOnlyAlias, + hasAction: true, + }]), + preferences: { includeCompletionsForModuleExports: true }, +}); + +verify.applyCodeActionFromCompletion("", { + name: "SomePig", + source: completion.CompletionSource.TypeOnlyAlias, + description: `Remove 'type' from import declaration from "./exports.js"`, + newFileContent: +`import { SomeInterface, SomePig } from "./exports.js"; +new SomePig`, + preferences: { + includeCompletionsForModuleExports: true, + allowIncompleteCompletions: true, + includeInsertTextCompletions: true, + }, +}); diff --git a/tests/cases/fourslash/completionsImport_promoteTypeOnly2.ts b/tests/cases/fourslash/completionsImport_promoteTypeOnly2.ts new file mode 100644 index 0000000000000..e7a526ed4e362 --- /dev/null +++ b/tests/cases/fourslash/completionsImport_promoteTypeOnly2.ts @@ -0,0 +1,19 @@ +/// + +// @module: es2015 + +// @Filename: /exports.ts +//// export interface SomeInterface {} + +// @Filename: /a.ts +//// import type { SomeInterface } from "./exports.js"; +//// const SomeInterface = {}; +//// SomeI/**/ + +// Should NOT promote this +verify.completions({ + marker: "", + includes: [{ + name: "SomeInterface" + }] +}); diff --git a/tests/cases/fourslash/completionsImport_promoteTypeOnly3.ts b/tests/cases/fourslash/completionsImport_promoteTypeOnly3.ts new file mode 100644 index 0000000000000..fef330979e235 --- /dev/null +++ b/tests/cases/fourslash/completionsImport_promoteTypeOnly3.ts @@ -0,0 +1,33 @@ +/// +// @module: es2015 + +// @Filename: /exports.ts +//// export interface SomeInterface {} +//// export class SomePig {} + +// @Filename: /a.ts +//// import { type SomePig } from "./exports.js"; +//// new SomePig/**/ + +verify.completions({ + marker: "", + includes: [{ + name: "SomePig", + source: completion.CompletionSource.TypeOnlyAlias, + hasAction: true, + }] +}); + +verify.applyCodeActionFromCompletion("", { + name: "SomePig", + source: completion.CompletionSource.TypeOnlyAlias, + description: `Remove 'type' from import of 'SomePig' from "./exports.js"`, + newFileContent: +`import { SomePig } from "./exports.js"; +new SomePig`, + preferences: { + includeCompletionsForModuleExports: true, + allowIncompleteCompletions: true, + includeInsertTextCompletions: true, + }, +}); diff --git a/tests/cases/fourslash/completionsImport_promoteTypeOnly4.ts b/tests/cases/fourslash/completionsImport_promoteTypeOnly4.ts new file mode 100644 index 0000000000000..3a8ec856402c5 --- /dev/null +++ b/tests/cases/fourslash/completionsImport_promoteTypeOnly4.ts @@ -0,0 +1,35 @@ +/// +// @module: es2015 +// @isolatedModules: true +// @preserveValueImports: true + +// @Filename: /exports.ts +//// export interface SomeInterface {} +//// export class SomePig {} + +// @Filename: /a.ts +//// import type { SomePig, SomeInterface } from "./exports.js"; +//// new SomePig/**/ + +verify.completions({ + marker: "", + includes: [{ + name: "SomePig", + source: completion.CompletionSource.TypeOnlyAlias, + hasAction: true, + }] +}); + +verify.applyCodeActionFromCompletion("", { + name: "SomePig", + source: completion.CompletionSource.TypeOnlyAlias, + description: `Remove 'type' from import declaration from "./exports.js"`, + newFileContent: +`import { SomePig, type SomeInterface } from "./exports.js"; +new SomePig`, + preferences: { + includeCompletionsForModuleExports: true, + allowIncompleteCompletions: true, + includeInsertTextCompletions: true, + }, +}); diff --git a/tests/cases/fourslash/completionsImport_promoteTypeOnly5.ts b/tests/cases/fourslash/completionsImport_promoteTypeOnly5.ts new file mode 100644 index 0000000000000..015fdf7e62904 --- /dev/null +++ b/tests/cases/fourslash/completionsImport_promoteTypeOnly5.ts @@ -0,0 +1,33 @@ +/// +// @module: es2015 + +// @Filename: /exports.ts +//// export interface SomeInterface {} +//// export class SomePig {} + +// @Filename: /a.ts +//// import { type SomePig as Babe } from "./exports.js"; +//// new Babe/**/ + +verify.completions({ + marker: "", + includes: [{ + name: "Babe", + source: completion.CompletionSource.TypeOnlyAlias, + hasAction: true, + }] +}); + +verify.applyCodeActionFromCompletion("", { + name: "Babe", + source: completion.CompletionSource.TypeOnlyAlias, + description: `Remove 'type' from import of 'Babe' from "./exports.js"`, + newFileContent: +`import { SomePig as Babe } from "./exports.js"; +new Babe`, + preferences: { + includeCompletionsForModuleExports: true, + allowIncompleteCompletions: true, + includeInsertTextCompletions: true, + }, +}); diff --git a/tests/cases/fourslash/completionsImport_quoteStyle.ts b/tests/cases/fourslash/completionsImport_quoteStyle.ts index 282a3fe94eb2c..a06fc247e961b 100644 --- a/tests/cases/fourslash/completionsImport_quoteStyle.ts +++ b/tests/cases/fourslash/completionsImport_quoteStyle.ts @@ -12,7 +12,7 @@ goTo.marker(""); verify.applyCodeActionFromCompletion("", { name: "foo", source: "/a", - description: `Import 'foo' from module "./a"`, + description: `Add import from "./a"`, preferences: { quotePreference: "single", }, diff --git a/tests/cases/fourslash/completionsImport_reExportDefault.ts b/tests/cases/fourslash/completionsImport_reExportDefault.ts index bcce25976f32f..cc5e7dc509d21 100644 --- a/tests/cases/fourslash/completionsImport_reExportDefault.ts +++ b/tests/cases/fourslash/completionsImport_reExportDefault.ts @@ -14,10 +14,7 @@ verify.completions({ marker: "", - exact: [ - completion.globalThisEntry, - ...completion.globalsVars, - completion.undefinedVarEntry, + exact: completion.globalsPlus([ { name: "foo", source: "/a/b/impl", @@ -28,14 +25,13 @@ verify.completions({ hasAction: true, sortText: completion.SortText.AutoImportSuggestions }, - ...completion.globalKeywords, - ], + ]), preferences: { includeCompletionsForModuleExports: true }, }); verify.applyCodeActionFromCompletion("", { name: "foo", source: "/a/b/impl", - description: `Import 'foo' from module "./a"`, + description: `Add import from "./a"`, newFileContent: `import { foo } from "./a"; fo`, diff --git a/tests/cases/fourslash/completionsImport_reExport_wrongName.ts b/tests/cases/fourslash/completionsImport_reExport_wrongName.ts index 1b386e3728862..a11e58e7ee611 100644 --- a/tests/cases/fourslash/completionsImport_reExport_wrongName.ts +++ b/tests/cases/fourslash/completionsImport_reExport_wrongName.ts @@ -37,7 +37,7 @@ verify.completions({ verify.applyCodeActionFromCompletion("", { name: "x", source: "/a", - description: `Import 'x' from module "./a"`, + description: `Add import from "./a"`, newFileContent: `import { x } from "./a"; `, @@ -45,7 +45,7 @@ verify.applyCodeActionFromCompletion("", { verify.applyCodeActionFromCompletion("", { name: "y", source: "/index", - description: `Import 'y' from module "."`, + description: `Add import from "."`, newFileContent: `import { y } from "."; import { x } from "./a"; diff --git a/tests/cases/fourslash/completionsImport_require.ts b/tests/cases/fourslash/completionsImport_require.ts index 836a0e2439e18..e1d04e00d9a4c 100644 --- a/tests/cases/fourslash/completionsImport_require.ts +++ b/tests/cases/fourslash/completionsImport_require.ts @@ -26,7 +26,7 @@ verify.completions({ verify.applyCodeActionFromCompletion("b", { name: "foo", source: "/a", - description: `Import 'foo' from module "./a"`, + description: `Add import from "./a"`, newFileContent: `import * as s from "something"; import { foo } from "./a"; diff --git a/tests/cases/fourslash/completionsImport_require_addNew.ts b/tests/cases/fourslash/completionsImport_require_addNew.ts index a265a543d94bb..ed7396cbfbae7 100644 --- a/tests/cases/fourslash/completionsImport_require_addNew.ts +++ b/tests/cases/fourslash/completionsImport_require_addNew.ts @@ -24,7 +24,7 @@ verify.completions({ verify.applyCodeActionFromCompletion("", { name: "x", source: "/a", - description: `Import 'x' from module "./a"`, + description: `Add import from "./a"`, newFileContent: `const { x } = require("./a"); x`, diff --git a/tests/cases/fourslash/completionsImport_require_addToExisting.ts b/tests/cases/fourslash/completionsImport_require_addToExisting.ts index a0eaa4d7fea24..bb856f36e1039 100644 --- a/tests/cases/fourslash/completionsImport_require_addToExisting.ts +++ b/tests/cases/fourslash/completionsImport_require_addToExisting.ts @@ -27,7 +27,7 @@ verify.completions({ verify.applyCodeActionFromCompletion("", { name: "x", source: "/a", - description: `Add 'x' to existing import declaration from "./a"`, + description: `Update import from "./a"`, newFileContent: `const { f, x } = require("./a"); x`, diff --git a/tests/cases/fourslash/completionsImport_shadowedByLocal.ts b/tests/cases/fourslash/completionsImport_shadowedByLocal.ts index 504702b6cc36f..2932bb6fe4602 100644 --- a/tests/cases/fourslash/completionsImport_shadowedByLocal.ts +++ b/tests/cases/fourslash/completionsImport_shadowedByLocal.ts @@ -11,14 +11,11 @@ verify.completions({ marker: "", - exact: [ - completion.globalThisEntry, + exact: completion.globalsPlus([ { name: "foo", text: "const foo: 1", }, - completion.undefinedVarEntry, - ...completion.statementKeywordsWithTypes - ], + ], { noLib: true }), preferences: { includeCompletionsForModuleExports: true }, }); diff --git a/tests/cases/fourslash/completionsImport_typeOnly.ts b/tests/cases/fourslash/completionsImport_typeOnly.ts index 688afd5296625..a1353e80a0991 100644 --- a/tests/cases/fourslash/completionsImport_typeOnly.ts +++ b/tests/cases/fourslash/completionsImport_typeOnly.ts @@ -14,7 +14,7 @@ goTo.file('/b.ts'); verify.applyCodeActionFromCompletion('', { name: 'B', source: '/a', - description: `Add 'B' to existing import declaration from "./a"`, + description: `Update import from "./a"`, preferences: { includeCompletionsForModuleExports: true, includeInsertTextCompletions: true diff --git a/tests/cases/fourslash/completionsImport_weirdDefaultSynthesis.ts b/tests/cases/fourslash/completionsImport_weirdDefaultSynthesis.ts index b8d3558da3e0f..3cd86dbcba4af 100644 --- a/tests/cases/fourslash/completionsImport_weirdDefaultSynthesis.ts +++ b/tests/cases/fourslash/completionsImport_weirdDefaultSynthesis.ts @@ -12,7 +12,7 @@ verify.applyCodeActionFromCompletion("", { name: "Collection", source: "/collection", - description: `Import 'Collection' from module "./collection"`, + description: `Add import from "./collection"`, preferences: { includeCompletionsForModuleExports: true }, diff --git a/tests/cases/fourslash/completionsInExport.ts b/tests/cases/fourslash/completionsInExport.ts index 94c3d2745a7f2..0aee30e8e5de8 100644 --- a/tests/cases/fourslash/completionsInExport.ts +++ b/tests/cases/fourslash/completionsInExport.ts @@ -15,7 +15,7 @@ verify.completions({ // (Keep it in the list because you can still do 'a as b'.) edit.insert("a, "); verify.completions({ - exact: [{ name: "a", sortText: completion.SortText.OptionalMember }, "T", type] + exact: ["T", { name: "a", sortText: completion.SortText.OptionalMember }, type] }); // No completions for new name @@ -27,7 +27,7 @@ verify.completions({ // 'T' still hasn't been exported by name edit.insert("U, "); verify.completions({ - exact: [{ name: "a", sortText: completion.SortText.OptionalMember }, "T", type] + exact: ["T", { name: "a", sortText: completion.SortText.OptionalMember }, type] }); // 'a' and 'T' are back to the same priority diff --git a/tests/cases/fourslash/completionsInExport_moduleBlock.ts b/tests/cases/fourslash/completionsInExport_moduleBlock.ts index 51021a9512a34..0709fe27e0440 100644 --- a/tests/cases/fourslash/completionsInExport_moduleBlock.ts +++ b/tests/cases/fourslash/completionsInExport_moduleBlock.ts @@ -19,7 +19,7 @@ verify.completions({ // (Keep it in the list because you can still do 'a as b'.) edit.insert("a, "); verify.completions({ - exact: [{ name: "a", sortText: completion.SortText.OptionalMember }, "T", type] + exact: ["T", { name: "a", sortText: completion.SortText.OptionalMember }, type] }); // No completions for new name @@ -31,7 +31,7 @@ verify.completions({ // 'T' still hasn't been exported by name edit.insert("U, "); verify.completions({ - exact: [{ name: "a", sortText: completion.SortText.OptionalMember }, "T", type] + exact: ["T", { name: "a", sortText: completion.SortText.OptionalMember }, type] }); // 'a' and 'T' are back to the same priority diff --git a/tests/cases/fourslash/completionsInJsxTag.ts b/tests/cases/fourslash/completionsInJsxTag.ts index e2fd2178cf54c..8fd2fcfe4cf5a 100644 --- a/tests/cases/fourslash/completionsInJsxTag.ts +++ b/tests/cases/fourslash/completionsInJsxTag.ts @@ -25,17 +25,17 @@ verify.completions({ marker: ["1", "2"], exact: [ { - name: "foo", - text: "(JSX attribute) foo: string", - documentation: "Doc", - kind: "JSX attribute", + name: "aria-label", + text: "(property) \"aria-label\": string", + documentation: "Label docs", + kind: "property", kindModifiers: "declare", }, { - name: "aria-label", - text: "(JSX attribute) \"aria-label\": string", - documentation: "Label docs", - kind: "JSX attribute", + name: "foo", + text: "(property) foo: string", + documentation: "Doc", + kind: "property", kindModifiers: "declare", }, ], diff --git a/tests/cases/fourslash/completionsIsTypeOnlyCompletion.ts b/tests/cases/fourslash/completionsIsTypeOnlyCompletion.ts index b14f7bc0efe75..5734956c80571 100644 --- a/tests/cases/fourslash/completionsIsTypeOnlyCompletion.ts +++ b/tests/cases/fourslash/completionsIsTypeOnlyCompletion.ts @@ -12,7 +12,7 @@ verify.completions({ marker: "", // Should not have an import completion for 'Abc', should use the local one - exact: ["Abc", ...completion.typeKeywords], + exact: completion.typeKeywordsPlus(["Abc"]), preferences: { includeCompletionsForModuleExports: true, }, diff --git a/tests/cases/fourslash/completionsJsxAttribute.ts b/tests/cases/fourslash/completionsJsxAttribute.ts index 4c02e1fd35588..3dcf49d487108 100644 --- a/tests/cases/fourslash/completionsJsxAttribute.ts +++ b/tests/cases/fourslash/completionsJsxAttribute.ts @@ -17,13 +17,13 @@ ////
; const exact: ReadonlyArray = [ - { name: "foo", kind: "JSX attribute", kindModifiers: "declare", text: "(JSX attribute) foo: boolean", documentation: "Doc" }, - { name: "bar", kind: "JSX attribute", kindModifiers: "declare", text: "(JSX attribute) bar: string" }, + { name: "bar", kind: "property", kindModifiers: "declare", text: "(property) bar: string" }, + { name: "foo", kind: "property", kindModifiers: "declare", text: "(property) foo: boolean", documentation: "Doc" }, ]; verify.completions({ marker: "", exact }); edit.insert("f"); verify.completions({ exact }); edit.insert("oo "); -verify.completions({ exact: exact[1] }); +verify.completions({ exact: exact[0] }); edit.insert("b"); -verify.completions({ exact: exact[1] }); +verify.completions({ exact: exact[0] }); diff --git a/tests/cases/fourslash/completionsJsxAttribute2.ts b/tests/cases/fourslash/completionsJsxAttribute2.ts index 1b25f220a98d8..82c8726901df1 100644 --- a/tests/cases/fourslash/completionsJsxAttribute2.ts +++ b/tests/cases/fourslash/completionsJsxAttribute2.ts @@ -21,7 +21,7 @@ ////
; -verify.completions({ marker: "1", exact: ["bar", "aria-foo"] }); -verify.completions({ marker: "2", exact: ["bar", "aria-foo"] }); -verify.completions({ marker: "3", exact: ["foo", "aria-foo"] }); -verify.completions({ marker: "4", exact: ["foo", "bar"] }); +verify.completions({ marker: "1", exact: ["aria-foo", "bar"] }); +verify.completions({ marker: "2", exact: ["aria-foo", "bar"] }); +verify.completions({ marker: "3", exact: ["aria-foo", "foo"] }); +verify.completions({ marker: "4", exact: ["bar", "foo"] }); diff --git a/tests/cases/fourslash/completionsJsxAttributeGeneric.ts b/tests/cases/fourslash/completionsJsxAttributeGeneric.ts index 9180c691f09f4..2e50a8a895e8c 100644 --- a/tests/cases/fourslash/completionsJsxAttributeGeneric.ts +++ b/tests/cases/fourslash/completionsJsxAttributeGeneric.ts @@ -11,7 +11,7 @@ marker, exact: [{ name: 'name', - kind: 'JSX attribute', + kind: 'property', kindModifiers: 'declare' }] }) diff --git a/tests/cases/fourslash/completionsJsxAttributeInitializer.ts b/tests/cases/fourslash/completionsJsxAttributeInitializer.ts index 2076c6588f4d7..f383d52375912 100644 --- a/tests/cases/fourslash/completionsJsxAttributeInitializer.ts +++ b/tests/cases/fourslash/completionsJsxAttributeInitializer.ts @@ -9,8 +9,8 @@ verify.completions({ marker: "", includes: [ { name: "x", text: "(parameter) x: number", kind: "parameter", insertText: "{x}" }, - { name: "p", text: "(JSX attribute) p: number", kind: "JSX attribute", insertText: "{this.p}", sortText: completion.SortText.SuggestedClassMembers, source: completion.CompletionSource.ThisProperty }, - { name: "a b", text: '(JSX attribute) "a b": number', kind: "JSX attribute", insertText: '{this["a b"]}', sortText: completion.SortText.SuggestedClassMembers, source: completion.CompletionSource.ThisProperty }, + { name: "p", text: "(property) p: number", kind: "property", insertText: "{this.p}", sortText: completion.SortText.SuggestedClassMembers, source: completion.CompletionSource.ThisProperty }, + { name: "a b", text: '(property) "a b": number', kind: "property", insertText: '{this["a b"]}', sortText: completion.SortText.SuggestedClassMembers, source: completion.CompletionSource.ThisProperty }, ], preferences: { includeInsertTextCompletions: true, diff --git a/tests/cases/fourslash/completionsLiteralOverload.ts b/tests/cases/fourslash/completionsLiteralOverload.ts new file mode 100644 index 0000000000000..c8d51a52bf63c --- /dev/null +++ b/tests/cases/fourslash/completionsLiteralOverload.ts @@ -0,0 +1,23 @@ +/// + +// @allowJs: true + +// @Filename: /a.tsx +//// interface Events { +//// "": any; +//// drag: any; +//// dragenter: any; +//// } +//// declare function addListener(type: K, listener: (ev: Events[K]) => any): void; +//// +//// declare function ListenerComponent(props: { type: K, onWhatever: (ev: Events[K]) => void }): JSX.Element; +//// +//// addListener("/*ts*/"); +//// (); + +// @Filename: /b.js +//// addListener("/*js*/"); + +verify.completions({ marker: ["ts", "tsx", "js"], exact: ["", "drag", "dragenter"] }); +edit.insert("drag"); +verify.completions({ marker: ["ts", "tsx", "js"], exact: ["", "drag", "dragenter"] }); \ No newline at end of file diff --git a/tests/cases/fourslash/completionsMergedDeclarations1.ts b/tests/cases/fourslash/completionsMergedDeclarations1.ts index b0b8806e95684..422097d655cce 100644 --- a/tests/cases/fourslash/completionsMergedDeclarations1.ts +++ b/tests/cases/fourslash/completionsMergedDeclarations1.ts @@ -19,5 +19,5 @@ verify.completions( { marker: "1", includes: "point", isNewIdentifierLocation: true }, - { marker: ["2", "3"], exact: ["equals", "origin", ...completion.functionMembersWithPrototype] }, + { marker: ["2", "3"], exact: completion.functionMembersWithPrototypePlus(["equals", "origin"]) }, ); diff --git a/tests/cases/fourslash/completionsNamespaceMergedWithClass.ts b/tests/cases/fourslash/completionsNamespaceMergedWithClass.ts index ed624ff104299..215bc44426f25 100644 --- a/tests/cases/fourslash/completionsNamespaceMergedWithClass.ts +++ b/tests/cases/fourslash/completionsNamespaceMergedWithClass.ts @@ -16,10 +16,9 @@ verify.completions( { marker: "type", exact: "T" }, { marker: "value", - exact: [ - { name: "prototype", sortText: completion.SortText.LocationPriority }, + exact: completion.functionMembersPlus([ { name: "m", sortText: completion.SortText.LocalDeclarationPriority }, - ...completion.functionMembers - ] + { name: "prototype", sortText: completion.SortText.LocationPriority }, + ]) }, ); diff --git a/tests/cases/fourslash/completionsObjectLiteralMethod1.ts b/tests/cases/fourslash/completionsObjectLiteralMethod1.ts new file mode 100644 index 0000000000000..2802c9b06a341 --- /dev/null +++ b/tests/cases/fourslash/completionsObjectLiteralMethod1.ts @@ -0,0 +1,194 @@ +/// + +// @newline: LF +// @Filename: a.ts +////interface IFoo { +//// bar(x: number): void; +////} +//// +////const obj: IFoo = { +//// /*a*/ +////} +////type Foo = { +//// bar(x: number): void; +//// foo: (x: string) => string; +////} +//// +////const f: Foo = { +//// /*b*/ +////} +//// +////interface Overload { +//// buzz(a: number): number; +//// buzz(a: string): string; +////} +////const o: Overload = { +//// /*c*/ +////} +////interface Prop { +//// "space bar"(): string; +////} +////const p: Prop = { +//// /*d*/ +////} + +verify.completions({ + marker: "a", + preferences: { + includeCompletionsWithInsertText: true, + includeCompletionsWithSnippetText: false, + includeCompletionsWithObjectLiteralMethodSnippets: true, + useLabelDetailsInCompletionEntries: true, + }, + includes: [ + { + name: "bar", + sortText: completion.SortText.ObjectLiteralProperty(completion.SortText.LocationPriority, "bar"), + insertText: undefined, + }, + { + name: "bar", + sortText: completion.SortText.SortBelow( + completion.SortText.ObjectLiteralProperty(completion.SortText.LocationPriority, "bar")), + source: completion.CompletionSource.ObjectLiteralMethodSnippet, + insertText: "bar(x: number): void {\n},", + labelDetails: { + detail: "(x: number): void", + }, + }, + ], +}); +verify.completions({ + marker: "b", + preferences: { + includeCompletionsWithInsertText: true, + includeCompletionsWithSnippetText: false, + includeCompletionsWithObjectLiteralMethodSnippets: true, + useLabelDetailsInCompletionEntries: true, + }, + includes: [ + { + name: "bar", + sortText: completion.SortText.ObjectLiteralProperty(completion.SortText.LocationPriority, "bar"), + insertText: undefined, + }, + { + name: "bar", + sortText: completion.SortText.SortBelow( + completion.SortText.ObjectLiteralProperty(completion.SortText.LocationPriority, "bar")), + source: completion.CompletionSource.ObjectLiteralMethodSnippet, + insertText: "bar(x: number): void {\n},", + labelDetails: { + detail: "(x: number): void", + }, + }, + { + name: "foo", + sortText: completion.SortText.ObjectLiteralProperty(completion.SortText.LocationPriority, "foo"), + insertText: undefined, + }, + { + name: "foo", + sortText: completion.SortText.SortBelow( + completion.SortText.ObjectLiteralProperty(completion.SortText.LocationPriority, "foo")), + source: completion.CompletionSource.ObjectLiteralMethodSnippet, + insertText: "foo(x: string): string {\n},", + labelDetails: { + detail: "(x: string): string", + }, + }, + ], +}); +verify.completions({ + marker: "c", + preferences: { + includeCompletionsWithInsertText: true, + includeCompletionsWithSnippetText: false, + includeCompletionsWithObjectLiteralMethodSnippets: true, + }, + exact: [ + { + name: "buzz", + sortText: completion.SortText.ObjectLiteralProperty(completion.SortText.LocationPriority, "buzz"), + // no declaration insert text, because this property has overloads + insertText: undefined, + }, + ], +}); +verify.completions({ + marker: "d", + preferences: { + includeCompletionsWithInsertText: true, + includeCompletionsWithSnippetText: false, + includeCompletionsWithObjectLiteralMethodSnippets: true, + useLabelDetailsInCompletionEntries: true, + }, + includes: [ + { + name: "\"space bar\"", + sortText: completion.SortText.ObjectLiteralProperty(completion.SortText.LocationPriority, "\"space bar\""), + insertText: undefined, + }, + { + name: "\"space bar\"", + sortText: completion.SortText.SortBelow( + completion.SortText.ObjectLiteralProperty(completion.SortText.LocationPriority, "\"space bar\"")), + source: completion.CompletionSource.ObjectLiteralMethodSnippet, + insertText: "\"space bar\"(): string {\n},", + labelDetails: { + detail: "(): string", + }, + }, + ], +}); +verify.completions({ + marker: "a", + preferences: { + includeCompletionsWithInsertText: true, + includeCompletionsWithSnippetText: true, + includeCompletionsWithObjectLiteralMethodSnippets: true, + useLabelDetailsInCompletionEntries: true, + }, + includes: [ + { + name: "bar", + sortText: completion.SortText.ObjectLiteralProperty(completion.SortText.LocationPriority, "bar"), + insertText: undefined, + }, + { + name: "bar", + sortText: completion.SortText.SortBelow( + completion.SortText.ObjectLiteralProperty(completion.SortText.LocationPriority, "bar")), + source: completion.CompletionSource.ObjectLiteralMethodSnippet, + isSnippet: true, + insertText: "bar(x: number): void {\n $0\n},", + labelDetails: { + detail: "(x: number): void", + }, + }, + ], +}); +verify.completions({ + marker: "a", + preferences: { + includeCompletionsWithInsertText: true, + includeCompletionsWithSnippetText: true, + includeCompletionsWithObjectLiteralMethodSnippets: true, + useLabelDetailsInCompletionEntries: false, + }, + includes: [ + { + name: "bar", + sortText: completion.SortText.ObjectLiteralProperty(completion.SortText.LocationPriority, "bar"), + insertText: undefined, + }, + { + name: "bar(x: number): void", + sortText: completion.SortText.SortBelow( + completion.SortText.ObjectLiteralProperty(completion.SortText.LocationPriority, "bar")), + source: completion.CompletionSource.ObjectLiteralMethodSnippet, + isSnippet: true, + insertText: "bar(x: number): void {\n $0\n},", + }, + ], +}); diff --git a/tests/cases/fourslash/completionsObjectLiteralMethod2.ts b/tests/cases/fourslash/completionsObjectLiteralMethod2.ts new file mode 100644 index 0000000000000..6543e75337fb2 --- /dev/null +++ b/tests/cases/fourslash/completionsObjectLiteralMethod2.ts @@ -0,0 +1,65 @@ +/// + +// @newline: LF +// @Filename: a.ts +////export interface IFoo { +//// bar(x: number): void; +////} + +// @Filename: b.ts +////import { IFoo } from "./a"; +////export interface IBar { +//// foo(f: IFoo): void; +////} + +// @Filename: c.ts +////import { IBar } from "./b"; +////const obj: IBar = { +//// /*a*/ +////} + +verify.completions({ + marker: "a", + preferences: { + includeCompletionsWithInsertText: true, + includeCompletionsWithSnippetText: false, + includeCompletionsWithObjectLiteralMethodSnippets: true, + useLabelDetailsInCompletionEntries: true, + }, + includes: [ + { + name: "foo", + sortText: completion.SortText.ObjectLiteralProperty(completion.SortText.LocationPriority, "foo"), + insertText: undefined, + }, + { + name: "foo", + sortText: completion.SortText.SortBelow( + completion.SortText.ObjectLiteralProperty(completion.SortText.LocationPriority, "foo")), + source: completion.CompletionSource.ObjectLiteralMethodSnippet, + insertText: "foo(f: IFoo): void {\n},", + hasAction: true, + labelDetails: { + detail: "(f: IFoo): void", + }, + }, + ], +}); + +verify.applyCodeActionFromCompletion("a", { + preferences: { + includeCompletionsWithInsertText: true, + includeCompletionsWithSnippetText: false, + includeCompletionsWithObjectLiteralMethodSnippets: true, + useLabelDetailsInCompletionEntries: true, + }, + name: "foo", + source: completion.CompletionSource.ObjectLiteralMethodSnippet, + description: "Includes imports of types referenced by 'foo'", + newFileContent: +`import { IFoo } from "./a"; +import { IBar } from "./b"; +const obj: IBar = { + +}` +}); \ No newline at end of file diff --git a/tests/cases/fourslash/completionsObjectLiteralMethod3.ts b/tests/cases/fourslash/completionsObjectLiteralMethod3.ts new file mode 100644 index 0000000000000..170df601ac1d1 --- /dev/null +++ b/tests/cases/fourslash/completionsObjectLiteralMethod3.ts @@ -0,0 +1,149 @@ +/// + +// @newline: LF +// @strictNullChecks: true +// @Filename: a.ts +////interface I1 { +//// M(x: number): void; +////} +////interface I2 { +//// M(x: number): void; +////} +////const u: I1 | I2 = { +//// /*a*/ +////} +////const i: I1 & I2 = { +//// /*b*/ +////} +////interface U1 { +//// M(x: number): string; +////} +////interface U2 { +//// M(x: string): number; +////} +////const o: U1 | U2 = { +//// /*c*/ +////} +////interface Op { +//// M?(x: number): void; +//// N: ((x: string) => void) | null | undefined; +//// O?: () => void; +////} +////const op: Op = { +//// /*d*/ +////} + +verify.completions({ + marker: "a", + preferences: { + includeCompletionsWithInsertText: true, + includeCompletionsWithSnippetText: false, + includeCompletionsWithObjectLiteralMethodSnippets: true, + useLabelDetailsInCompletionEntries: true, + }, + includes: [ + { + name: "M", + sortText: completion.SortText.ObjectLiteralProperty(completion.SortText.LocationPriority, "M"), + insertText: undefined, + }, + { + name: "M", + sortText: completion.SortText.SortBelow( + completion.SortText.ObjectLiteralProperty(completion.SortText.LocationPriority, "M")), + source: completion.CompletionSource.ObjectLiteralMethodSnippet, + insertText: "M(x: number): void {\n},", + labelDetails: { + detail: "(x: number): void", + }, + }, + ], +}); +verify.completions({ + marker: "b", + preferences: { + includeCompletionsWithInsertText: true, + includeCompletionsWithSnippetText: false, + includeCompletionsWithObjectLiteralMethodSnippets: true, + }, + includes: [ + { + name: "M", + sortText: completion.SortText.ObjectLiteralProperty(completion.SortText.LocationPriority, "M"), + insertText: undefined, + }, + // No signature completion because type of `M` is intersection type + ], +}); +verify.completions({ + marker: "c", + preferences: { + includeCompletionsWithInsertText: true, + includeCompletionsWithSnippetText: false, + includeCompletionsWithObjectLiteralMethodSnippets: true, + }, + exact: [ + { + name: "M", + sortText: completion.SortText.ObjectLiteralProperty(completion.SortText.LocationPriority, "M"), + insertText: undefined, + }, + // No signature completion because type of `M` is intersection type + ], +}); +verify.completions({ + marker: "d", + preferences: { + includeCompletionsWithInsertText: true, + includeCompletionsWithSnippetText: false, + includeCompletionsWithObjectLiteralMethodSnippets: true, + useLabelDetailsInCompletionEntries: true, + }, + includes: [ + { + name: "M", + sortText: completion.SortText.ObjectLiteralProperty(completion.SortText.OptionalMember, "M"), + insertText: undefined, + }, + { + name: "M", + sortText: completion.SortText.SortBelow( + completion.SortText.ObjectLiteralProperty(completion.SortText.OptionalMember, "M")), + source: completion.CompletionSource.ObjectLiteralMethodSnippet, + insertText: "M(x: number): void {\n},", + labelDetails: { + detail: "(x: number): void", + }, + }, + { + name: "N", + sortText: completion.SortText.ObjectLiteralProperty(completion.SortText.LocationPriority, "N"), + insertText: undefined, + }, + { + name: "N", + sortText: completion.SortText.SortBelow( + completion.SortText.ObjectLiteralProperty(completion.SortText.LocationPriority, "N")), + source: completion.CompletionSource.ObjectLiteralMethodSnippet, + insertText: "N(x: string): void {\n},", + labelDetails: { + detail: "(x: string): void", + }, + }, + { + name: "O", + sortText: completion.SortText.ObjectLiteralProperty(completion.SortText.OptionalMember, "O"), + insertText: undefined, + }, + { + name: "O", + sortText: completion.SortText.SortBelow( + completion.SortText.ObjectLiteralProperty(completion.SortText.OptionalMember, "O")), + source: completion.CompletionSource.ObjectLiteralMethodSnippet, + insertText: "O(): void {\n},", + labelDetails: { + detail: "(): void", + }, + }, + ], +}); \ No newline at end of file diff --git a/tests/cases/fourslash/completionsObjectLiteralWithPartialConstraint.ts b/tests/cases/fourslash/completionsObjectLiteralWithPartialConstraint.ts index ebd47f3d9a995..dba437db2ecf1 100644 --- a/tests/cases/fourslash/completionsObjectLiteralWithPartialConstraint.ts +++ b/tests/cases/fourslash/completionsObjectLiteralWithPartialConstraint.ts @@ -56,8 +56,8 @@ verify.completions( { marker: "1", exact: [{ name: "world", sortText: completion.SortText.OptionalMember }] }, - { marker: "2", exact: [{ name: "keyPath", sortText: completion.SortText.OptionalMember }, { name: "autoIncrement", sortText: completion.SortText.OptionalMember }] }, - { marker: "3", exact: ["r", "g", "b"] }, + { marker: "2", exact: [{ name: "autoIncrement", sortText: completion.SortText.OptionalMember }, { name: "keyPath", sortText: completion.SortText.OptionalMember }] }, + { marker: "3", exact: ["b", "g", "r"] }, { marker: "4", exact: [{ name: "a", sortText: completion.SortText.OptionalMember }] }, { marker: "5", exact: [{ name: "x", sortText: completion.SortText.OptionalMember }] }, { marker: "6", exact: ["a"] }, diff --git a/tests/cases/fourslash/completionsOverridingMethod.ts b/tests/cases/fourslash/completionsOverridingMethod.ts new file mode 100644 index 0000000000000..d88abd77124ba --- /dev/null +++ b/tests/cases/fourslash/completionsOverridingMethod.ts @@ -0,0 +1,286 @@ +/// + +// @newline: LF +// @Filename: a.ts +// Case: Concrete class implements abstract method +////abstract class ABase { +//// abstract foo(param1: string, param2: boolean): Promise; +////} +//// +////class ASub extends ABase { +//// f/*a*/ +////} + +// @Filename: b.ts +// Case: Concrete class overrides concrete method +////class BBase { +//// foo(a: string, b: string): string { +//// return a + b; +//// } +////} +//// +////class BSub extends BBase { +//// f/*b*/ +////} + +// @Filename: c.ts +// Case: Multiple overrides, concrete class overrides concrete method +////class CBase { +//// foo(a: string | number): string { +//// return a + ""; +//// } +////} +//// +////class CSub extends CBase { +//// foo(a: string): string { +//// return add; +//// } +////} +//// +////class CSub2 extends CSub { +//// f/*c*/ +////} + +// @Filename: d.ts +// Case: Abstract class extends abstract class +////abstract class DBase { +//// abstract foo(a: string): string; +////} +//// +////abstract class DSub extends DBase { +//// f/*d*/ +////} + +// @Filename: e.ts +// Case: Class implements interface +////interface EBase { +//// foo(a: string): string; +////} +//// +////class ESub implements EBase { +//// f/*e*/ +////} + +// @Filename: f.ts +// Case: Abstract class implements interface +////interface FBase { +//// foo(a: string): string; +////} +//// +////abstract class FSub implements FBase { +//// f/*f*/ +////} + +// @Filename: g.ts +// Case: Method has overloads +////interface GBase { +//// foo(a: string): string; +//// foo(a: undefined, b: number): string; +////} +//// +////class GSub implements GBase { +//// f/*g*/ +////} + +// @Filename: h.ts +// Case: Static method +// Note: static methods are only suggested for completions after the `static` keyword +////class HBase { +//// static met(n: number): number { +//// return n; +//// } +////} +//// +////class HSub extends HBase { +//// /*h1*/ +//// [|static|] /*h2*/ +////} + +// @Filename: i.ts +// Case: Generic method +////class IBase { +//// met(t: T): T { +//// return t; +//// } +//// metcons(t: T): T { +//// return t; +//// } +////} +//// +////class ISub extends IBase { +//// /*i*/ +////} + + +verify.completions({ + marker: "a", + isNewIdentifierLocation: true, + preferences: { + includeCompletionsWithInsertText: true, + includeCompletionsWithSnippetText: false, + includeCompletionsWithClassMemberSnippets: true, + }, + includes: [ + { + name: "foo", + sortText: completion.SortText.ClassMemberSnippets, + insertText: "foo(param1: string, param2: boolean): Promise {\n}", + } + ], +}); + +verify.completions({ + marker: "b", + isNewIdentifierLocation: true, + preferences: { + includeCompletionsWithInsertText: true, + includeCompletionsWithSnippetText: false, + includeCompletionsWithClassMemberSnippets: true, + }, + includes: [ + { + name: "foo", + sortText: completion.SortText.ClassMemberSnippets, + insertText: "foo(a: string, b: string): string {\n}", + } + ], +}); + +verify.completions({ + marker: "c", + isNewIdentifierLocation: true, + preferences: { + includeCompletionsWithInsertText: true, + includeCompletionsWithSnippetText: false, + includeCompletionsWithClassMemberSnippets: true, + }, + includes: [ + { + name: "foo", + sortText: completion.SortText.ClassMemberSnippets, + insertText: "foo(a: string): string {\n}", + } + ], +}); + +verify.completions({ + marker: "d", + isNewIdentifierLocation: true, + preferences: { + includeCompletionsWithInsertText: true, + includeCompletionsWithSnippetText: false, + includeCompletionsWithClassMemberSnippets: true, + }, + includes: [ + { + name: "foo", + sortText: completion.SortText.ClassMemberSnippets, + insertText: "foo(a: string): string {\n}", + } + ], +}); + +verify.completions({ + marker: "e", + isNewIdentifierLocation: true, + preferences: { + includeCompletionsWithInsertText: true, + includeCompletionsWithSnippetText: false, + includeCompletionsWithClassMemberSnippets: true, + }, + includes: [ + { + name: "foo", + sortText: completion.SortText.ClassMemberSnippets, + insertText: "foo(a: string): string {\n}", + } + ], +}); + +verify.completions({ + marker: "f", + isNewIdentifierLocation: true, + preferences: { + includeCompletionsWithInsertText: true, + includeCompletionsWithSnippetText: false, + includeCompletionsWithClassMemberSnippets: true, + }, + includes: [ + { + name: "foo", + sortText: completion.SortText.ClassMemberSnippets, + insertText: "foo(a: string): string {\n}", + } + ], +}); + +verify.completions({ + marker: "g", + isNewIdentifierLocation: true, + preferences: { + includeCompletionsWithInsertText: true, + includeCompletionsWithSnippetText: false, + includeCompletionsWithClassMemberSnippets: true, + }, + includes: [ + { + name: "foo", + sortText: completion.SortText.ClassMemberSnippets, + insertText: +`foo(a: string): string; +foo(a: undefined, b: number): string; +foo(a: unknown, b?: unknown): string { +}`, + } + ], +}); + +verify.completions({ + marker: "h1", + isNewIdentifierLocation: true, + preferences: { + includeCompletionsWithInsertText: true, + includeCompletionsWithSnippetText: false, + includeCompletionsWithClassMemberSnippets: true, + }, + excludes: "met", +}); +verify.completions({ + marker: "h2", + isNewIdentifierLocation: true, + preferences: { + includeCompletionsWithInsertText: true, + includeCompletionsWithSnippetText: false, + includeCompletionsWithClassMemberSnippets: true, + }, + includes: [ + { + name: "met", + sortText: completion.SortText.ClassMemberSnippets, + replacementSpan: test.ranges()[0], + insertText: "static met(n: number): number {\n}", + } + ], +}); + +verify.completions({ + marker: "i", + isNewIdentifierLocation: true, + preferences: { + includeCompletionsWithInsertText: true, + includeCompletionsWithSnippetText: false, + includeCompletionsWithClassMemberSnippets: true, + }, + includes: [ + { + name: "met", + sortText: completion.SortText.ClassMemberSnippets, + insertText: "met(t: T): T {\n}", + }, + { + name: "metcons", + sortText: completion.SortText.ClassMemberSnippets, + insertText: "metcons(t: T): T {\n}", + } + ], +}); \ No newline at end of file diff --git a/tests/cases/fourslash/completionsOverridingMethod1.ts b/tests/cases/fourslash/completionsOverridingMethod1.ts new file mode 100644 index 0000000000000..5e9349bc47984 --- /dev/null +++ b/tests/cases/fourslash/completionsOverridingMethod1.ts @@ -0,0 +1,31 @@ +/// + +// @newline: LF +// @Filename: h.ts +// @noImplicitOverride: true +// Case: Suggested method needs `override` modifier +////class HBase { +//// foo(a: string): void {} +////} +//// +////class HSub extends HBase { +//// f/*h*/ +////} + + +verify.completions({ + marker: "h", + isNewIdentifierLocation: true, + preferences: { + includeCompletionsWithInsertText: true, + includeCompletionsWithSnippetText: false, + includeCompletionsWithClassMemberSnippets: true, + }, + includes: [ + { + name: "foo", + sortText: completion.SortText.ClassMemberSnippets, + insertText: "override foo(a: string): void {\n}", + } + ], +}); \ No newline at end of file diff --git a/tests/cases/fourslash/completionsOverridingMethod10.ts b/tests/cases/fourslash/completionsOverridingMethod10.ts new file mode 100644 index 0000000000000..af8681ad37db4 --- /dev/null +++ b/tests/cases/fourslash/completionsOverridingMethod10.ts @@ -0,0 +1,48 @@ +/// + +// @Filename: a.ts +// @newline: LF +// Case: formatting: semicolons +////interface Base { +//// a: string; +//// b(a: string): void; +//// c(a: string): string; +//// c(a: number): number; +////} +////class Sub implements Base { +//// /*a*/ +////} + + +verify.completions({ + marker: "a", + isNewIdentifierLocation: true, + preferences: { + includeCompletionsWithInsertText: true, + includeCompletionsWithSnippetText: false, + includeCompletionsWithClassMemberSnippets: true, + }, + includes: [ + { + name: "a", + sortText: completion.SortText.ClassMemberSnippets, + insertText: "a: string;", + }, + { + name: "b", + sortText: completion.SortText.ClassMemberSnippets, + insertText: +`b(a: string): void { +}`, + }, + { + name: "c", + sortText: completion.SortText.ClassMemberSnippets, + insertText: +`c(a: string): string; +c(a: number): number; +c(a: unknown): string | number { +}`, + }, + ], +}); \ No newline at end of file diff --git a/tests/cases/fourslash/completionsOverridingMethod11.ts b/tests/cases/fourslash/completionsOverridingMethod11.ts new file mode 100644 index 0000000000000..4cf3c4f606c2e --- /dev/null +++ b/tests/cases/fourslash/completionsOverridingMethod11.ts @@ -0,0 +1,54 @@ +/// + +// @Filename: a.ts +// @newline: LF +// Case: formatting: no semicolons +////function foo() { +//// const a = 1 +//// const b = 2 +//// foo() +//// return a + b +////} +//// +////interface Base { +//// a: string +//// b(a: string): void +//// c(a: string): string +//// c(a: number): number +////} +////class Sub implements Base { +//// /*a*/ +////} + +verify.completions({ + marker: "a", + isNewIdentifierLocation: true, + preferences: { + includeCompletionsWithInsertText: true, + includeCompletionsWithSnippetText: false, + includeCompletionsWithClassMemberSnippets: true, + }, + includes: [ + { + name: "a", + sortText: completion.SortText.ClassMemberSnippets, + insertText: "a: string", + }, + { + name: "b", + sortText: completion.SortText.ClassMemberSnippets, + insertText: +`b(a: string): void { +}`, + }, + { + name: "c", + sortText: completion.SortText.ClassMemberSnippets, + insertText: +`c(a: string): string +c(a: number): number +c(a: unknown): string | number { +}`, + }, + ], +}); \ No newline at end of file diff --git a/tests/cases/fourslash/completionsOverridingMethod12.ts b/tests/cases/fourslash/completionsOverridingMethod12.ts new file mode 100644 index 0000000000000..c929ad1ca40ee --- /dev/null +++ b/tests/cases/fourslash/completionsOverridingMethod12.ts @@ -0,0 +1,54 @@ +/// + +// @Filename: a.ts +// @newline: LF +// Case: modifier order +////abstract class A { +//// public get P(): string { +//// return ""; +//// } +////} +//// +////abstract class B extends A { +//// [|abstract|] /*a*/ +////} +//// +////abstract class B1 extends A { +//// [|abstract override|] /*b*/ +////} + +verify.completions({ + marker: "a", + isNewIdentifierLocation: true, + preferences: { + includeCompletionsWithInsertText: true, + includeCompletionsWithSnippetText: false, + includeCompletionsWithClassMemberSnippets: true, + }, + includes: [ + { + name: "P", + sortText: completion.SortText.ClassMemberSnippets, + replacementSpan: test.ranges()[0], + insertText: "public abstract get P(): string;", + }, + ], +}); + +verify.completions({ + marker: "b", + isNewIdentifierLocation: true, + preferences: { + includeCompletionsWithInsertText: true, + includeCompletionsWithSnippetText: false, + includeCompletionsWithClassMemberSnippets: true, + }, + includes: [ + { + name: "P", + sortText: completion.SortText.ClassMemberSnippets, + replacementSpan: test.ranges()[1], + insertText: "public abstract override get P(): string;", + }, + ], +}); \ No newline at end of file diff --git a/tests/cases/fourslash/completionsOverridingMethod13.ts b/tests/cases/fourslash/completionsOverridingMethod13.ts new file mode 100644 index 0000000000000..e8422a8bbc70c --- /dev/null +++ b/tests/cases/fourslash/completionsOverridingMethod13.ts @@ -0,0 +1,31 @@ +/// + +// @Filename: a.ts +// @newline: LF + +////class A { +//// protected foo(): void { +//// return; +//// } +////} +////class B extends A { +//// /**/ +////} + +verify.completions({ + marker: "", + isNewIdentifierLocation: true, + preferences: { + includeCompletionsWithInsertText: true, + includeCompletionsWithSnippetText: false, + includeCompletionsWithClassMemberSnippets: true, + }, + exact: [ + ...completion.classElementKeywords, + { + name: "foo", + sortText: completion.SortText.ClassMemberSnippets, + insertText: "protected foo(): void {\n}", + }, + ], +}); diff --git a/tests/cases/fourslash/completionsOverridingMethod2.ts b/tests/cases/fourslash/completionsOverridingMethod2.ts new file mode 100644 index 0000000000000..4abdbfa2707c3 --- /dev/null +++ b/tests/cases/fourslash/completionsOverridingMethod2.ts @@ -0,0 +1,30 @@ +/// + +// @newline: LF +// @Filename: a.ts +// Case: Snippet text needs escaping +////interface DollarSign { +//// "$usd"(a: number): number; +////} +////class USD implements DollarSign { +//// /*a*/ +////} + + +verify.completions({ + marker: "a", + isNewIdentifierLocation: true, + preferences: { + includeCompletionsWithInsertText: true, + includeCompletionsWithSnippetText: true, + includeCompletionsWithClassMemberSnippets: true, + }, + includes: [ + { + name: "$usd", + sortText: completion.SortText.ClassMemberSnippets, + isSnippet: true, + insertText: "\"\\$usd\"(a: number): number {\n $0\n}", + } + ], +}); \ No newline at end of file diff --git a/tests/cases/fourslash/completionsOverridingMethod3.ts b/tests/cases/fourslash/completionsOverridingMethod3.ts new file mode 100644 index 0000000000000..e3baffe146646 --- /dev/null +++ b/tests/cases/fourslash/completionsOverridingMethod3.ts @@ -0,0 +1,30 @@ +/// + +// @newline: LF +// @Filename: boo.d.ts +// Case: Declaration files +////interface Ghost { +//// boo(): string; +////} +//// +////declare class Poltergeist implements Ghost { +//// /*b*/ +////} + + +verify.completions({ + marker: "b", + isNewIdentifierLocation: true, + preferences: { + includeCompletionsWithInsertText: true, + includeCompletionsWithSnippetText: false, + includeCompletionsWithClassMemberSnippets: true, + }, + includes: [ + { + name: "boo", + sortText: completion.SortText.ClassMemberSnippets, + insertText: "boo(): string;", + } + ], +}); \ No newline at end of file diff --git a/tests/cases/fourslash/completionsOverridingMethod4.ts b/tests/cases/fourslash/completionsOverridingMethod4.ts new file mode 100644 index 0000000000000..3d5fbb045e396 --- /dev/null +++ b/tests/cases/fourslash/completionsOverridingMethod4.ts @@ -0,0 +1,54 @@ +/// + +// @newline: LF +// @Filename: secret.ts +// Case: accessibility modifier inheritance +////class Secret { +//// #secret(): string { +//// return "secret"; +//// } +//// +//// private tell(): string { +//// return this.#secret(); +//// } +//// +//// protected hint(): string { +//// return "hint"; +//// } +//// +//// public refuse(): string { +//// return "no comments"; +//// } +////} +//// +////class Gossip extends Secret { +//// /* no telling secrets */ +//// /*a*/ +////} + + +verify.completions({ + marker: "a", + isNewIdentifierLocation: true, + preferences: { + includeCompletionsWithInsertText: true, + includeCompletionsWithSnippetText: false, + includeCompletionsWithClassMemberSnippets: true, + }, + excludes: [ + "tell", + "#secret", + ], + includes: [ + { + name: "hint", + sortText: completion.SortText.ClassMemberSnippets, + insertText: "protected hint(): string {\n}", + }, + { + name: "refuse", + sortText: completion.SortText.ClassMemberSnippets, + insertText: "public refuse(): string {\n}", + } + ], +}); \ No newline at end of file diff --git a/tests/cases/fourslash/completionsOverridingMethod5.ts b/tests/cases/fourslash/completionsOverridingMethod5.ts new file mode 100644 index 0000000000000..3f3844567a73f --- /dev/null +++ b/tests/cases/fourslash/completionsOverridingMethod5.ts @@ -0,0 +1,90 @@ +/// + +// @newline: LF +// @Filename: a.ts +// Case: abstract methods +////abstract class Ab { +//// abstract met(n: string): void; +//// met2(n: number): void { +//// return; +//// } +////} +//// +////abstract class Abc extends Ab { +//// /*a*/ +//// [|abstract|] /*b*/ +//// [|abstract m|]/*c*/ +////} + + +verify.completions({ + marker: "a", + isNewIdentifierLocation: true, + preferences: { + includeCompletionsWithInsertText: true, + includeCompletionsWithSnippetText: false, + includeCompletionsWithClassMemberSnippets: true, + }, + includes: [ + { + name: "met", + sortText: completion.SortText.ClassMemberSnippets, + insertText: "met(n: string): void {\n}", + }, + { + name: "met2", + sortText: completion.SortText.ClassMemberSnippets, + insertText: "met2(n: number): void {\n}", + } + ], +}); + +verify.completions({ + marker: "b", + isNewIdentifierLocation: true, + preferences: { + includeCompletionsWithInsertText: true, + includeCompletionsWithSnippetText: false, + includeCompletionsWithClassMemberSnippets: true, + }, + includes: [ + { + name: "met", + sortText: completion.SortText.ClassMemberSnippets, + replacementSpan: test.ranges()[0], + insertText: "abstract met(n: string): void;", + }, + { + name: "met2", + sortText: completion.SortText.ClassMemberSnippets, + replacementSpan: test.ranges()[0], + insertText: "abstract met2(n: number): void;", + } + ], +}); + +verify.completions({ + marker: "c", + isNewIdentifierLocation: true, + preferences: { + includeCompletionsWithInsertText: true, + includeCompletionsWithSnippetText: false, + includeCompletionsWithClassMemberSnippets: true, + }, + includes: [ + { + name: "met", + sortText: completion.SortText.ClassMemberSnippets, + replacementSpan: test.ranges()[1], + insertText: "abstract met(n: string): void;", + }, + { + name: "met2", + sortText: completion.SortText.ClassMemberSnippets, + replacementSpan: test.ranges()[1], + insertText: "abstract met2(n: number): void;", + } + ], +}); + + diff --git a/tests/cases/fourslash/completionsOverridingMethod6.ts b/tests/cases/fourslash/completionsOverridingMethod6.ts new file mode 100644 index 0000000000000..6e1dd428a30ad --- /dev/null +++ b/tests/cases/fourslash/completionsOverridingMethod6.ts @@ -0,0 +1,85 @@ +/// + +// @Filename: a.ts +// @newline: LF +// Case: modifier inheritance/deduplication +////class A { +//// public method(): number { +//// return 0; +//// } +////} +//// +////abstract class B extends A { +//// [|public abstract|] /*b*/ +////} +//// +////class C extends A { +//// [|public override m|]/*a*/ +////} +//// +////interface D { +//// fun(a: number): number; +//// fun(a: undefined, b: string): number; +////} +//// +////class E implements D { +//// [|public f|]/*c*/ +////} + +verify.completions({ + marker: "a", + isNewIdentifierLocation: true, + preferences: { + includeCompletionsWithInsertText: true, + includeCompletionsWithSnippetText: false, + includeCompletionsWithClassMemberSnippets: true, + }, + includes: [ + { + name: "method", + sortText: completion.SortText.ClassMemberSnippets, + replacementSpan: test.ranges()[1], + insertText: "public override method(): number {\n}", + }, + ], +}); + +verify.completions({ + marker: "b", + isNewIdentifierLocation: true, + preferences: { + includeCompletionsWithInsertText: true, + includeCompletionsWithSnippetText: false, + includeCompletionsWithClassMemberSnippets: true, + }, + includes: [ + { + name: "method", + sortText: completion.SortText.ClassMemberSnippets, + replacementSpan: test.ranges()[0], + insertText: "public abstract method(): number;", + }, + ], +}); + +verify.completions({ + marker: "c", + isNewIdentifierLocation: true, + preferences: { + includeCompletionsWithInsertText: true, + includeCompletionsWithSnippetText: false, + includeCompletionsWithClassMemberSnippets: true, + }, + includes: [ + { + name: "fun", + sortText: completion.SortText.ClassMemberSnippets, + replacementSpan: test.ranges()[2], + insertText: +`public fun(a: number): number; +public fun(a: undefined, b: string): number; +public fun(a: unknown, b?: unknown): number { +}`, + }, + ], +}); \ No newline at end of file diff --git a/tests/cases/fourslash/completionsOverridingMethod7.ts b/tests/cases/fourslash/completionsOverridingMethod7.ts new file mode 100644 index 0000000000000..67865a5ef34c1 --- /dev/null +++ b/tests/cases/fourslash/completionsOverridingMethod7.ts @@ -0,0 +1,33 @@ +/// + +// @Filename: a.ts +// @newline: LF +// Case: abstract overloads +////abstract class Base { +//// abstract M(t: T): void; +//// abstract M(t: T, x: number): void; +////} +//// +////abstract class Derived extends Base { +//// [|abstract|] /*a*/ +////} + +verify.completions({ + marker: "a", + isNewIdentifierLocation: true, + preferences: { + includeCompletionsWithInsertText: true, + includeCompletionsWithSnippetText: false, + includeCompletionsWithClassMemberSnippets: true, + }, + includes: [ + { + name: "M", + sortText: completion.SortText.ClassMemberSnippets, + replacementSpan: test.ranges()[0], + insertText: +`abstract M(t: T): void; +abstract M(t: T, x: number): void;`, + }, + ], +}); \ No newline at end of file diff --git a/tests/cases/fourslash/completionsOverridingMethod8.ts b/tests/cases/fourslash/completionsOverridingMethod8.ts new file mode 100644 index 0000000000000..3e5aea9dd97eb --- /dev/null +++ b/tests/cases/fourslash/completionsOverridingMethod8.ts @@ -0,0 +1,51 @@ +/// + +// @newline: LF + +// @Filename: /types1.ts +//// export interface I { foo: string } + +// @Filename: /types2.ts +//// import { I } from "./types1"; +//// export interface Base { method(p: I): void } + +// @Filename: /index.ts +//// import { Base } from "./types2"; +//// export class C implements Base { +//// /**/ +//// } + +goTo.marker(""); +verify.completions({ + marker: "", + isNewIdentifierLocation: true, + preferences: { + includeCompletionsWithInsertText: true, + includeCompletionsWithSnippetText: false, + includeCompletionsWithClassMemberSnippets: true, + }, + includes: [{ + name: "method", + sortText: completion.SortText.ClassMemberSnippets, + insertText: "method(p: I): void {\n}", + hasAction: true, + source: completion.CompletionSource.ClassMemberSnippet, + }], +}); + +verify.applyCodeActionFromCompletion("", { + preferences: { + includeCompletionsWithInsertText: true, + includeCompletionsWithSnippetText: false, + includeCompletionsWithClassMemberSnippets: true, + }, + name: "method", + source: completion.CompletionSource.ClassMemberSnippet, + description: "Includes imports of types referenced by 'method'", + newFileContent: +`import { I } from "./types1"; +import { Base } from "./types2"; +export class C implements Base { + +}` +}); diff --git a/tests/cases/fourslash/completionsOverridingMethod9.ts b/tests/cases/fourslash/completionsOverridingMethod9.ts new file mode 100644 index 0000000000000..204ecbbcc4901 --- /dev/null +++ b/tests/cases/fourslash/completionsOverridingMethod9.ts @@ -0,0 +1,34 @@ +/// + +// @Filename: a.ts +// @newline: LF + +////interface IFoo { +//// a?: number; +//// b?(x: number): void; +////} +////class Foo implements IFoo { +//// /**/ +////} + +verify.completions({ + marker: "", + isNewIdentifierLocation: true, + preferences: { + includeCompletionsWithInsertText: true, + includeCompletionsWithSnippetText: false, + includeCompletionsWithClassMemberSnippets: true, + }, + includes: [ + { + name: "a", + sortText: completion.SortText.ClassMemberSnippets, + insertText: "a?: number;" + }, + { + name: "b", + sortText: completion.SortText.ClassMemberSnippets, + insertText: "b(x: number): void {\n}" + }, + ], +}); diff --git a/tests/cases/fourslash/completionsOverridingMethodCrash1.ts b/tests/cases/fourslash/completionsOverridingMethodCrash1.ts new file mode 100644 index 0000000000000..49233409b485a --- /dev/null +++ b/tests/cases/fourslash/completionsOverridingMethodCrash1.ts @@ -0,0 +1,28 @@ +/// + +// @newline: LF +// @Filename: a.ts +////declare class Component { +//// setState(stateHandler: ((oldState: T, newState: T) => void)): void; +////} +//// +////class SubComponent extends Component<{}> { +//// /*$*/ +////} + +verify.completions({ + marker: "$", + isNewIdentifierLocation: true, + preferences: { + includeCompletionsWithInsertText: true, + includeCompletionsWithSnippetText: false, + includeCompletionsWithClassMemberSnippets: true, + }, + includes: [ + { + name: "setState", + sortText: completion.SortText.ClassMemberSnippets, + insertText: "setState(stateHandler: (oldState: {}, newState: {}) => void): void {\n}", + } + ] +}); diff --git a/tests/cases/fourslash/completionsOverridingProperties.ts b/tests/cases/fourslash/completionsOverridingProperties.ts new file mode 100644 index 0000000000000..f25fee59150c5 --- /dev/null +++ b/tests/cases/fourslash/completionsOverridingProperties.ts @@ -0,0 +1,32 @@ +/// + +// @newline: LF +// @Filename: a.ts +// Case: Properties +////class Base { +//// protected foo: string = "bar"; +////} +//// +////class Sub extends Base { +//// /*a*/ +////} + + + + +verify.completions({ + marker: "a", + isNewIdentifierLocation: true, + preferences: { + includeCompletionsWithInsertText: true, + includeCompletionsWithSnippetText: false, + includeCompletionsWithClassMemberSnippets: true, + }, + includes: [ + { + name: "foo", + sortText: completion.SortText.ClassMemberSnippets, + insertText: "protected foo: string;", + } + ], +}); \ No newline at end of file diff --git a/tests/cases/fourslash/completionsPropertiesPriorities.ts b/tests/cases/fourslash/completionsPropertiesPriorities.ts index f2269243e31ed..5c9c4f53e2a2d 100644 --- a/tests/cases/fourslash/completionsPropertiesPriorities.ts +++ b/tests/cases/fourslash/completionsPropertiesPriorities.ts @@ -22,10 +22,10 @@ verify.completions( { marker: ['a'], exact: [ - { name: 'B', kindModifiers: 'optional', sortText: completion.SortText.MemberDeclaredBySpreadAssignment, kind: 'property' }, - { name: 'a', sortText: completion.SortText.MemberDeclaredBySpreadAssignment, kind: 'property' }, + { name: 'd', sortText: completion.SortText.LocationPriority, kind: 'property' }, { name: 'c', kindModifiers: 'optional', sortText: completion.SortText.OptionalMember, kind: 'property' }, - { name: 'd', sortText: completion.SortText.LocationPriority, kind: 'property' } + { name: 'a', sortText: completion.SortText.MemberDeclaredBySpreadAssignment, kind: 'property' }, + { name: 'B', kindModifiers: 'optional', sortText: completion.SortText.MemberDeclaredBySpreadAssignment, kind: 'property' }, ] } ); \ No newline at end of file diff --git a/tests/cases/fourslash/completionsThisProperties_globalSameName.ts b/tests/cases/fourslash/completionsThisProperties_globalSameName.ts index d8bde042ed228..f267cba504329 100644 --- a/tests/cases/fourslash/completionsThisProperties_globalSameName.ts +++ b/tests/cases/fourslash/completionsThisProperties_globalSameName.ts @@ -14,10 +14,18 @@ verify.completions({ marker: "", - exact: [ + unsorted: [ "arguments", completion.globalThisEntry, ...completion.globalsVars, + { + name: "foot", + insertText: "this.foot", + kind: "property", + sortText: completion.SortText.SuggestedClassMembers, + source: completion.CompletionSource.ThisProperty, + text: "(property) Service.foot: number" + }, { name: "foot", insertText: undefined, @@ -28,14 +36,6 @@ verify.completions({ }, "Service", completion.undefinedVarEntry, - { - name: "foot", - insertText: "this.foot", - kind: "property", - sortText: completion.SortText.SuggestedClassMembers, - source: completion.CompletionSource.ThisProperty, - text: "(property) Service.foot: number" - }, { name: "serve", insertText: "this.serve", diff --git a/tests/cases/fourslash/completionsTypeKeywords.ts b/tests/cases/fourslash/completionsTypeKeywords.ts index 6817523bc26d5..5e542ab36ae56 100644 --- a/tests/cases/fourslash/completionsTypeKeywords.ts +++ b/tests/cases/fourslash/completionsTypeKeywords.ts @@ -6,5 +6,5 @@ verify.completions({ marker: "", - exact: [completion.globalThisEntry, "T", ...completion.typeKeywords], + exact: completion.typeKeywordsPlus(["T", completion.globalThisEntry]), }); diff --git a/tests/cases/fourslash/completionsUniqueSymbol_import.ts b/tests/cases/fourslash/completionsUniqueSymbol_import.ts index 7f98f8c1dd732..a12e4cae271f5 100644 --- a/tests/cases/fourslash/completionsUniqueSymbol_import.ts +++ b/tests/cases/fourslash/completionsUniqueSymbol_import.ts @@ -35,7 +35,7 @@ verify.completions({ verify.applyCodeActionFromCompletion("", { name: "publicSym", source: "/a", - description: `Add 'publicSym' to existing import declaration from "./a"`, + description: `Update import from "./a"`, newFileContent: `import { i, publicSym } from "./a"; i.;` diff --git a/tests/cases/fourslash/completionsWithDeprecatedTag1.ts b/tests/cases/fourslash/completionsWithDeprecatedTag1.ts index 1ce322b6a1c4c..b72752f6671f4 100644 --- a/tests/cases/fourslash/completionsWithDeprecatedTag1.ts +++ b/tests/cases/fourslash/completionsWithDeprecatedTag1.ts @@ -25,26 +25,26 @@ verify.completions({ marker: "1", includes: [ - { name: "Foo", kind: "interface", kindModifiers: "deprecated", sortText: completion.SortText.DeprecatedLocationPriority } + { name: "Foo", kind: "interface", kindModifiers: "deprecated", sortText: completion.SortText.Deprecated(completion.SortText.LocationPriority) } ] }, { marker: "2", includes: [ - { name: "bar", kind: "method", kindModifiers: "deprecated", sortText: completion.SortText.DeprecatedLocationPriority } + { name: "bar", kind: "method", kindModifiers: "deprecated", sortText: completion.SortText.Deprecated(completion.SortText.LocationPriority) } ] }, { marker: "3", includes: [ - { name: "prop", kind: "property", kindModifiers: "deprecated", sortText: completion.SortText.DeprecatedLocationPriority } + { name: "prop", kind: "property", kindModifiers: "deprecated", sortText: completion.SortText.Deprecated(completion.SortText.LocationPriority) } ] }, { marker: "4", includes: [ - { name: "foobar", kind: "function", kindModifiers: "export,deprecated", sortText: completion.SortText.DeprecatedLocationPriority } + { name: "foobar", kind: "function", kindModifiers: "export,deprecated", sortText: completion.SortText.Deprecated(completion.SortText.LocationPriority) } ] }, { marker: "5", includes: [ - { name: "foobar", kind: "alias", kindModifiers: "export,deprecated", sortText: completion.SortText.DeprecatedLocationPriority } + { name: "foobar", kind: "alias", kindModifiers: "export,deprecated", sortText: completion.SortText.Deprecated(completion.SortText.LocationPriority) } ] }); diff --git a/tests/cases/fourslash/completionsWithDeprecatedTag10.ts b/tests/cases/fourslash/completionsWithDeprecatedTag10.ts index f12e33feef458..dd44edab2a1f1 100644 --- a/tests/cases/fourslash/completionsWithDeprecatedTag10.ts +++ b/tests/cases/fourslash/completionsWithDeprecatedTag10.ts @@ -16,7 +16,7 @@ verify.completions({ hasAction: true, kind: "const", kindModifiers: "export,deprecated", - sortText: completion.SortText.DeprecatedAutoImportSuggestions + sortText: completion.SortText.Deprecated(completion.SortText.AutoImportSuggestions), }], preferences: { includeCompletionsForModuleExports: true, diff --git a/tests/cases/fourslash/completionsWithDeprecatedTag2.ts b/tests/cases/fourslash/completionsWithDeprecatedTag2.ts index 9561a9a56c502..5d9357cd089fe 100644 --- a/tests/cases/fourslash/completionsWithDeprecatedTag2.ts +++ b/tests/cases/fourslash/completionsWithDeprecatedTag2.ts @@ -13,6 +13,6 @@ verify.completions({ name: "foo", kind: "function", kindModifiers: "deprecated,declare", - sortText: completion.SortText.DeprecatedLocationPriority + sortText: completion.SortText.Deprecated(completion.SortText.LocationPriority), }] }); diff --git a/tests/cases/fourslash/completionsWithDeprecatedTag4.ts b/tests/cases/fourslash/completionsWithDeprecatedTag4.ts index 9df8bc60e91ba..ecd7571c7f4b1 100644 --- a/tests/cases/fourslash/completionsWithDeprecatedTag4.ts +++ b/tests/cases/fourslash/completionsWithDeprecatedTag4.ts @@ -18,6 +18,6 @@ verify.completions({ name: "abc", kind: "property", kindModifiers: "deprecated,declare,optional", - sortText: completion.SortText.DeprecatedOptionalMember + sortText: completion.SortText.Deprecated(completion.SortText.OptionalMember), }], }); diff --git a/tests/cases/fourslash/completionsWithDeprecatedTag5.ts b/tests/cases/fourslash/completionsWithDeprecatedTag5.ts index bebad02f6bcc0..dcdf45626d9c2 100644 --- a/tests/cases/fourslash/completionsWithDeprecatedTag5.ts +++ b/tests/cases/fourslash/completionsWithDeprecatedTag5.ts @@ -8,7 +8,7 @@ verify.completions({ marker: "", - exact: [ + exact: completion.functionMembersPlus([ { name: "prototype", sortText: completion.SortText.LocationPriority @@ -17,8 +17,7 @@ verify.completions({ name: "m", kind: "method", kindModifiers: "static,deprecated", - sortText: completion.SortText.DeprecatedLocalDeclarationPriority + sortText: completion.SortText.Deprecated(completion.SortText.LocalDeclarationPriority), }, - ...completion.functionMembers - ] + ]) }); diff --git a/tests/cases/fourslash/completionsWithDeprecatedTag6.ts b/tests/cases/fourslash/completionsWithDeprecatedTag6.ts index b174e97660378..c3dfcc799d39a 100644 --- a/tests/cases/fourslash/completionsWithDeprecatedTag6.ts +++ b/tests/cases/fourslash/completionsWithDeprecatedTag6.ts @@ -12,6 +12,6 @@ verify.completions({ name: "foo", kind: "var", kindModifiers: "export,deprecated", - sortText: completion.SortText.DeprecatedLocationPriority + sortText: completion.SortText.Deprecated(completion.SortText.LocationPriority), }] }); diff --git a/tests/cases/fourslash/completionsWithDeprecatedTag7.ts b/tests/cases/fourslash/completionsWithDeprecatedTag7.ts index dc1bf9bdac521..72d9c53d83b18 100644 --- a/tests/cases/fourslash/completionsWithDeprecatedTag7.ts +++ b/tests/cases/fourslash/completionsWithDeprecatedTag7.ts @@ -20,7 +20,7 @@ verify.completions({ marker: "", exact: [{ name: "a", - sortText: completion.SortText.DeprecatedMemberDeclaredBySpreadAssignment, + sortText: completion.SortText.Deprecated(completion.SortText.MemberDeclaredBySpreadAssignment), kind: 'property', kindModifiers: "deprecated" }] diff --git a/tests/cases/fourslash/completionsWithDeprecatedTag8.ts b/tests/cases/fourslash/completionsWithDeprecatedTag8.ts index d326d0daf0931..1c9338b26d94f 100644 --- a/tests/cases/fourslash/completionsWithDeprecatedTag8.ts +++ b/tests/cases/fourslash/completionsWithDeprecatedTag8.ts @@ -15,7 +15,7 @@ verify.completions({ kind: "property", kindModifiers: "deprecated", insertText: "this.p", - sortText: completion.SortText.DeprecatedSuggestedClassMembers, + sortText: completion.SortText.Deprecated(completion.SortText.SuggestedClassMembers), source: completion.CompletionSource.ThisProperty }], preferences: { diff --git a/tests/cases/fourslash/completionsWithDeprecatedTag9.ts b/tests/cases/fourslash/completionsWithDeprecatedTag9.ts index 819aeb1802587..0a1e2c0c5ad94 100644 --- a/tests/cases/fourslash/completionsWithDeprecatedTag9.ts +++ b/tests/cases/fourslash/completionsWithDeprecatedTag9.ts @@ -21,7 +21,7 @@ verify.completions({ name: "foo", kind: "var", kindModifiers: "deprecated,declare", - sortText: completion.SortText.DeprecatedGlobalsOrKeywords + sortText: completion.SortText.Deprecated(completion.SortText.GlobalsOrKeywords), }] }, { preferences: { diff --git a/tests/cases/fourslash/constEnumsEmitOutputInMultipleFiles.ts b/tests/cases/fourslash/constEnumsEmitOutputInMultipleFiles.ts index 0f6be184d8ce8..74fabd2dc386d 100644 --- a/tests/cases/fourslash/constEnumsEmitOutputInMultipleFiles.ts +++ b/tests/cases/fourslash/constEnumsEmitOutputInMultipleFiles.ts @@ -1,7 +1,7 @@ /// // @Filename: a.ts -////const enum TestEnum { +////const enum TestEnum { //// Foo, Bar ////} ////var testFirstFile = TestEnum.Bar; @@ -14,5 +14,5 @@ goTo.marker("1"); verify.verifyGetEmitOutputForCurrentFile( "/// \r\n\ -var testInOtherFile = 1 /* Bar */;\r\n" +var testInOtherFile = 1 /* TestEnum.Bar */;\r\n" ) \ No newline at end of file diff --git a/tests/cases/fourslash/convertFunctionToEs6Class1.ts b/tests/cases/fourslash/convertFunctionToEs6Class1.ts index a0046fc4e9088..c99a2efe7d0a5 100644 --- a/tests/cases/fourslash/convertFunctionToEs6Class1.ts +++ b/tests/cases/fourslash/convertFunctionToEs6Class1.ts @@ -21,10 +21,10 @@ verify.codeFix({ newFileContent: `class foo { constructor() { } - instanceMethod1() { return "this is name"; } - instanceMethod2() { return "this is name"; } static staticMethod1() { return "this is static name"; } static staticMethod2() { return "this is static name"; } + instanceMethod1() { return "this is name"; } + instanceMethod2() { return "this is name"; } } foo.prototype.instanceProp1 = "hello"; foo.prototype.instanceProp2 = undefined; diff --git a/tests/cases/fourslash/convertFunctionToEs6Class2.ts b/tests/cases/fourslash/convertFunctionToEs6Class2.ts index 5326c30eea496..f8395a8484d29 100644 --- a/tests/cases/fourslash/convertFunctionToEs6Class2.ts +++ b/tests/cases/fourslash/convertFunctionToEs6Class2.ts @@ -16,10 +16,10 @@ verify.codeFix({ newFileContent: `class foo { constructor() { } - instanceMethod1() { return "this is name"; } - instanceMethod2() { return "this is name"; } static staticMethod1() { return "this is static name"; } static staticMethod2() { return "this is static name"; } + instanceMethod1() { return "this is name"; } + instanceMethod2() { return "this is name"; } } foo.instanceProp1 = "hello"; foo.instanceProp2 = undefined; diff --git a/tests/cases/fourslash/convertFunctionToEs6Class3.ts b/tests/cases/fourslash/convertFunctionToEs6Class3.ts index d88c4b80a8ddb..8b4bbd7f22b58 100644 --- a/tests/cases/fourslash/convertFunctionToEs6Class3.ts +++ b/tests/cases/fourslash/convertFunctionToEs6Class3.ts @@ -17,10 +17,10 @@ verify.codeFix({ `var bar = 10; class foo { constructor() { } - instanceMethod1() { return "this is name"; } - instanceMethod2() { return "this is name"; } static staticMethod1() { return "this is static name"; } static staticMethod2() { return "this is static name"; } + instanceMethod1() { return "this is name"; } + instanceMethod2() { return "this is name"; } } foo.prototype.instanceProp1 = "hello"; foo.prototype.instanceProp2 = undefined; diff --git a/tests/cases/fourslash/convertFunctionToEs6Class_asyncMethods.ts b/tests/cases/fourslash/convertFunctionToEs6Class_asyncMethods.ts index bb8f8c229621f..ab5bcb61ab435 100644 --- a/tests/cases/fourslash/convertFunctionToEs6Class_asyncMethods.ts +++ b/tests/cases/fourslash/convertFunctionToEs6Class_asyncMethods.ts @@ -18,10 +18,10 @@ verify.codeFix({ `export class MyClass { constructor() { } - async foo() { + static async bar() { await Promise.resolve(); } - static async bar() { + async foo() { await Promise.resolve(); } } diff --git a/tests/cases/fourslash/distinctTypesInCallbacksWithSameNames.ts b/tests/cases/fourslash/distinctTypesInCallbacksWithSameNames.ts index e6b0d2ba3df9f..a9f15e553fab4 100644 --- a/tests/cases/fourslash/distinctTypesInCallbacksWithSameNames.ts +++ b/tests/cases/fourslash/distinctTypesInCallbacksWithSameNames.ts @@ -19,7 +19,7 @@ const verifyCompletions = () => verify.completions( { marker: "1", includes: "toFixed" }, - { marker: "2", exact: ["length", "add", "remove"] }, + { marker: "2", exact: ["add", "length", "remove"] }, ); verifyCompletions(); diff --git a/tests/cases/fourslash/docCommentTemplateWithExistingJSDoc.ts b/tests/cases/fourslash/docCommentTemplateWithExistingJSDoc.ts new file mode 100644 index 0000000000000..a2dedc929ff05 --- /dev/null +++ b/tests/cases/fourslash/docCommentTemplateWithExistingJSDoc.ts @@ -0,0 +1,13 @@ +/// + +/////** /**/ */ +//// +/////** +//// * @param {string} a +//// * @param {string} b +//// */ +////function foo(a, b) { +//// return a + b; +////} + +verify.noDocCommentTemplateAt(""); diff --git a/tests/cases/fourslash/documentHighlightInTypeExport.ts b/tests/cases/fourslash/documentHighlightInTypeExport.ts index 5a16a9bbc90e9..d4ea0404a6d15 100644 --- a/tests/cases/fourslash/documentHighlightInTypeExport.ts +++ b/tests/cases/fourslash/documentHighlightInTypeExport.ts @@ -30,12 +30,12 @@ //// let [|A|]: [|A|] = 1; //// export type { [|A|] as [|B|] }; -{ // properly handle type only +{ // type-only exports may still export values to be imported and used in type contexts const [AType, ALet, ADecl, AExport, asB] = test.rangesInFile("/3.ts"); verify.documentHighlightsOf(AType, [AType, ADecl, AExport, asB]); verify.documentHighlightsOf(ADecl, [AType, ADecl, AExport, asB]); - verify.documentHighlightsOf(AExport, [AType, ADecl, AExport, asB]); - verify.documentHighlightsOf(ALet, [ALet]); + verify.documentHighlightsOf(AExport, [AType, ALet, ADecl, AExport, asB]); + verify.documentHighlightsOf(ALet, [ALet, AExport, asB]); verify.documentHighlightsOf(asB, [asB]); } diff --git a/tests/cases/fourslash/documentHighlightMultilineTemplateStrings.ts b/tests/cases/fourslash/documentHighlightMultilineTemplateStrings.ts new file mode 100644 index 0000000000000..ecc819f3a6037 --- /dev/null +++ b/tests/cases/fourslash/documentHighlightMultilineTemplateStrings.ts @@ -0,0 +1,10 @@ +/// + +////const foo = ` +//// a +//// [|b|] +//// c +////` + +const [r] = test.ranges(); +verify.noDocumentHighlights(r); diff --git a/tests/cases/fourslash/documentHighlightTemplateStrings.ts b/tests/cases/fourslash/documentHighlightTemplateStrings.ts new file mode 100644 index 0000000000000..c715c3c20776a --- /dev/null +++ b/tests/cases/fourslash/documentHighlightTemplateStrings.ts @@ -0,0 +1,18 @@ +/// + +////type Foo = "[|a|]" | "b"; +//// +////class C { +//// p: Foo = `[|a|]`; +//// m() { +//// switch (this.p) { +//// case `[|a|]`: +//// return 1; +//// case "b": +//// return 2; +//// } +//// } +////} + +const [r0, r1, r2] = test.ranges(); +verify.documentHighlightsOf(r2, [r0, r1, r2]); diff --git a/tests/cases/fourslash/doubleUnderscoreCompletions.ts b/tests/cases/fourslash/doubleUnderscoreCompletions.ts index 8d07cdf333f4d..84827f32cb8e2 100644 --- a/tests/cases/fourslash/doubleUnderscoreCompletions.ts +++ b/tests/cases/fourslash/doubleUnderscoreCompletions.ts @@ -12,7 +12,7 @@ verify.completions({ marker: "1", exact: [ { name: "__property", text: "(property) MyObject.__property: number" }, - { name: "MyObject", sortText: completion.SortText.JavascriptIdentifiers }, { name: "instance", sortText: completion.SortText.JavascriptIdentifiers }, + { name: "MyObject", sortText: completion.SortText.JavascriptIdentifiers }, ], }); diff --git a/tests/cases/fourslash/exportEqualCallableInterface.ts b/tests/cases/fourslash/exportEqualCallableInterface.ts index 2b65ca69c6fc7..7c707ddef4f7c 100644 --- a/tests/cases/fourslash/exportEqualCallableInterface.ts +++ b/tests/cases/fourslash/exportEqualCallableInterface.ts @@ -15,5 +15,5 @@ verify.completions({ marker: "", - exact: ["foo", ...completion.functionMembersWithPrototype], + exact: completion.functionMembersWithPrototypePlus(["foo"]), }); diff --git a/tests/cases/fourslash/exportEqualTypes.ts b/tests/cases/fourslash/exportEqualTypes.ts index 6cb7eb9f9ae05..0853fc9fc791f 100644 --- a/tests/cases/fourslash/exportEqualTypes.ts +++ b/tests/cases/fourslash/exportEqualTypes.ts @@ -19,5 +19,5 @@ verify.quickInfos({ 2: "var r1: Date", 3: "var r2: string" }); -verify.completions({ marker: "4", exact: ["foo", ...completion.functionMembersWithPrototype] }); +verify.completions({ marker: "4", exact: completion.functionMembersWithPrototypePlus(["foo"]) }); verify.noErrors(); diff --git a/tests/cases/fourslash/externalModuleWithExportAssignment.ts b/tests/cases/fourslash/externalModuleWithExportAssignment.ts index 7131042427b08..76f6c6d44a4bf 100644 --- a/tests/cases/fourslash/externalModuleWithExportAssignment.ts +++ b/tests/cases/fourslash/externalModuleWithExportAssignment.ts @@ -50,11 +50,10 @@ goTo.marker('3'); verify.quickInfoIs("(property) test1: a1.connectModule\n(res: any, req: any, next: any) => void", undefined); verify.completions({ marker: ["3", "9"], - exact: [ + exact: completion.functionMembersWithPrototypePlus([ { name: "test1", text: "(property) test1: a1.connectModule\n(res: any, req: any, next: any) => void" }, { name: "test2", text: "(method) test2(): a1.connectModule" }, - ...completion.functionMembersWithPrototype, - ], + ]), }); verify.signatureHelp( @@ -85,7 +84,7 @@ verify.quickInfoAt("14", "var r4: a1.connectExport", undefined); verify.completions({ marker: "15", exact: [ - { name: "connectModule", text: "interface a1.connectModule" }, { name: "connectExport", text: "interface a1.connectExport" }, + { name: "connectModule", text: "interface a1.connectModule" }, ], }); diff --git a/tests/cases/fourslash/extract-const10.ts b/tests/cases/fourslash/extract-const10.ts new file mode 100644 index 0000000000000..2eaea4991578a --- /dev/null +++ b/tests/cases/fourslash/extract-const10.ts @@ -0,0 +1,20 @@ +/// + +// @filename: foo.ts +////function foo() { +//// /*a*/const a = [1]/*b*/; +//// return a; +////} + +goTo.select("a", "b"); +edit.applyRefactor({ + refactorName: "Extract Symbol", + actionName: "constant_scope_1", + actionDescription: "Extract to constant in global scope", + newContent: +`const newLocal = [1]; +function foo() { + const a = /*RENAME*/newLocal; + return a; +}` +}); diff --git a/tests/cases/fourslash/extract-const_jsxAttribute1.ts b/tests/cases/fourslash/extract-const_jsxAttribute1.ts new file mode 100644 index 0000000000000..f1962afece126 --- /dev/null +++ b/tests/cases/fourslash/extract-const_jsxAttribute1.ts @@ -0,0 +1,28 @@ +/// + +// @jsx: preserve +// @filename: a.tsx +////function Foo() { +//// return ( +////
+//// ; +////
+//// ); +////} + +goTo.file("a.tsx"); +goTo.select("a", "b"); +edit.applyRefactor({ + refactorName: "Extract Symbol", + actionName: "constant_scope_1", + actionDescription: "Extract to constant in global scope", + newContent: +`const /*RENAME*/newLocal = "string"; +function Foo() { + return ( +
+ ; +
+ ); +}` +}); diff --git a/tests/cases/fourslash/extract-const_jsxAttribute2.ts b/tests/cases/fourslash/extract-const_jsxAttribute2.ts new file mode 100644 index 0000000000000..f5f247c8d6768 --- /dev/null +++ b/tests/cases/fourslash/extract-const_jsxAttribute2.ts @@ -0,0 +1,28 @@ +/// + +// @jsx: preserve +// @filename: a.tsx +////function Foo() { +//// return ( +////
+//// ; +////
+//// ); +////} + +goTo.file("a.tsx"); +goTo.select("a", "b"); +edit.applyRefactor({ + refactorName: "Extract Symbol", + actionName: "constant_scope_0", + actionDescription: "Extract to constant in enclosing scope", + newContent: +`function Foo() { + const /*RENAME*/newLocal = "string"; + return ( +
+ ; +
+ ); +}` +}); diff --git a/tests/cases/fourslash/extract-const_jsxAttribute3.ts b/tests/cases/fourslash/extract-const_jsxAttribute3.ts new file mode 100644 index 0000000000000..d3ab80428b30f --- /dev/null +++ b/tests/cases/fourslash/extract-const_jsxAttribute3.ts @@ -0,0 +1,35 @@ +/// + +// @jsx: preserve +// @filename: a.tsx +////declare var React: any; +////class Foo extends React.Component<{}, {}> { +//// render() { +//// return ( +////
+//// ; +////
+//// ); +//// } +////} + +goTo.file("a.tsx"); +goTo.select("a", "b"); +edit.applyRefactor({ + refactorName: "Extract Symbol", + actionName: "constant_scope_1", + actionDescription: "Extract to readonly field in class 'Foo'", + newContent: +`declare var React: any; +class Foo extends React.Component<{}, {}> { + private readonly newProperty = "string"; + + render() { + return ( +
+ ; +
+ ); + } +}` +}); diff --git a/tests/cases/fourslash/extract-jsdoc.ts b/tests/cases/fourslash/extract-jsdoc.ts new file mode 100644 index 0000000000000..bc94fc8ae2792 --- /dev/null +++ b/tests/cases/fourslash/extract-jsdoc.ts @@ -0,0 +1,9 @@ +/// + +/////** +//// * /*a*//*b*/ +//// * {@link Foo} +//// */ + +goTo.select("a", "b"); +verify.not.refactorAvailableForTriggerReason("invoked", "Extract Symbol"); diff --git a/tests/cases/fourslash/extractSuperOutsideClass.ts b/tests/cases/fourslash/extractSuperOutsideClass.ts new file mode 100644 index 0000000000000..26fd2becd6a61 --- /dev/null +++ b/tests/cases/fourslash/extractSuperOutsideClass.ts @@ -0,0 +1,6 @@ +/// + +/////*a*/super()/*b*/ + +goTo.select("a", "b"); +verify.not.refactorAvailable("Extract Symbol"); diff --git a/tests/cases/fourslash/extractTypeUnresolvedAlias.ts b/tests/cases/fourslash/extractTypeUnresolvedAlias.ts new file mode 100644 index 0000000000000..5ee00f891993e --- /dev/null +++ b/tests/cases/fourslash/extractTypeUnresolvedAlias.ts @@ -0,0 +1,10 @@ +/// + +//// import {Renderer} from ''; +//// +//// export class X { +//// constructor(renderer: /**/[|Renderer|]) {} +//// } + +goTo.selectRange(test.ranges()[0]); +verify.refactorAvailable("Extract type", "Extract to type alias"); \ No newline at end of file diff --git a/tests/cases/fourslash/findAllRefsDestructureGetter2.ts b/tests/cases/fourslash/findAllRefsDestructureGetter2.ts index 19dbe8a8f0fce..ce7172df19447 100644 --- a/tests/cases/fourslash/findAllRefsDestructureGetter2.ts +++ b/tests/cases/fourslash/findAllRefsDestructureGetter2.ts @@ -11,6 +11,6 @@ ////[|const { /*g1*/[|{| "isWriteAccess": true, "isDefinition": true, "contextRangeIndex": 4 |}g|], /*s1*/[|{| "isWriteAccess": true, "isDefinition": true, "contextRangeIndex": 4 |}s|] } = new C();|] const [g0Def, g0, s0Def, s0, gs1Def, g1, s1] = test.ranges(); -verify.quickInfoAt(g0, "(property) C.g: number"); -verify.quickInfoAt(s0, "(property) C.s: number"); +verify.quickInfoAt(g0, "(getter) C.g: number"); +verify.quickInfoAt(s0, "(setter) C.s: number"); verify.baselineFindAllReferences('g0', 'g1', 's0', 's1') diff --git a/tests/cases/fourslash/findAllRefsImportMeta.ts b/tests/cases/fourslash/findAllRefsImportMeta.ts new file mode 100644 index 0000000000000..1040f9542e4a9 --- /dev/null +++ b/tests/cases/fourslash/findAllRefsImportMeta.ts @@ -0,0 +1,26 @@ +// @noLib: true + +/// + +// @module: esnext +// @Filename: foo.ts +/////// +/////// +////import./**/meta; +////import.[|meta|]; + +//@Filename: bar.d.ts +////interface ImportMeta { +////} + +// @Filename: baz.ts +/////// +/////// +////let x = import +//// . // hai :) +//// meta; + +verify.baselineFindAllReferences(""); + +goTo.rangeStart(test.ranges()[0]); +verify.renameInfoFailed(); diff --git a/tests/cases/fourslash/formatOnTypeOpenCurlyWithBraceCompletion.ts b/tests/cases/fourslash/formatOnTypeOpenCurlyWithBraceCompletion.ts new file mode 100644 index 0000000000000..b303b1ea62d6d --- /dev/null +++ b/tests/cases/fourslash/formatOnTypeOpenCurlyWithBraceCompletion.ts @@ -0,0 +1,12 @@ +/// + +//// if (foo) { +//// if (bar) {/**/} +//// } + +goTo.marker(""); +format.onType("", "{"); +verify.currentFileContentIs( +`if (foo) { + if (bar) { } +}`); diff --git a/tests/cases/fourslash/formatSelectionEditAtEndOfRange.ts b/tests/cases/fourslash/formatSelectionEditAtEndOfRange.ts new file mode 100644 index 0000000000000..9e60b686ab0b5 --- /dev/null +++ b/tests/cases/fourslash/formatSelectionEditAtEndOfRange.ts @@ -0,0 +1,12 @@ +/// + + +//// /*1*/var x = 1;/*2*/ +//// void 0; + +format.setOption("semicolons", "remove"); +format.selection("1", "2"); +verify.currentFileContentIs( +`var x = 1 +void 0;` +); diff --git a/tests/cases/fourslash/fourslash.ts b/tests/cases/fourslash/fourslash.ts index d8bde1e571a2e..a02e06a574c05 100644 --- a/tests/cases/fourslash/fourslash.ts +++ b/tests/cases/fourslash/fourslash.ts @@ -364,7 +364,7 @@ declare namespace FourSlashInterface { fileAfterApplyingRefactorAtMarker(markerName: string, expectedContent: string, refactorNameToApply: string, formattingOptions?: FormatCodeOptions): void; getAndApplyCodeFix(errorCode?: number, index?: number): void; importFixAtPosition(expectedTextArray: string[], errorCode?: number, options?: UserPreferences): void; - importFixModuleSpecifiers(marker: string, moduleSpecifiers: string[]): void; + importFixModuleSpecifiers(marker: string, moduleSpecifiers: string[], options?: UserPreferences): void; navigationBar(json: any, options?: { checkSpans?: boolean }): void; navigationTree(json: any, options?: { checkSpans?: boolean }): void; @@ -399,9 +399,9 @@ declare namespace FourSlashInterface { baselineRename(marker: string, options: RenameOptions): void; /** Verify the quick info available at the current marker. */ - quickInfoIs(expectedText: string, expectedDocumentation?: string): void; + quickInfoIs(expectedText: string, expectedDocumentation?: string, expectedTags?: { name: string; text: string; }[]): void; /** Goto a marker and call `quickInfoIs`. */ - quickInfoAt(markerName: string | Range, expectedText?: string, expectedDocumentation?: string): void; + quickInfoAt(markerName: string | Range, expectedText?: string, expectedDocumentation?: string, expectedTags?: { name: string; text: string; }[]): void; /** * Call `quickInfoAt` for each pair in the object. * (If the value is an array, it is [expectedText, expectedDocumentation].) @@ -646,6 +646,9 @@ declare namespace FourSlashInterface { readonly includeCompletionsForImportStatements?: boolean; readonly includeCompletionsWithSnippetText?: boolean; readonly includeCompletionsWithInsertText?: boolean; + readonly includeCompletionsWithClassMemberSnippets?: boolean; + readonly includeCompletionsWithObjectLiteralMethodSnippets?: boolean; + readonly useLabelDetailsInCompletionEntries?: boolean; readonly allowIncompleteCompletions?: boolean; /** @deprecated use `includeCompletionsWithInsertText` */ readonly includeInsertTextCompletions?: boolean; @@ -668,7 +671,10 @@ declare namespace FourSlashInterface { readonly isNewIdentifierLocation?: boolean; readonly isGlobalCompletion?: boolean; readonly optionalReplacementSpan?: Range; + /** Must provide all completion entries in order. */ readonly exact?: ArrayOrSingle; + /** Must provide all completion entries, but order doesn't matter. */ + readonly unsorted?: readonly ExpectedCompletionEntry[]; readonly includes?: ArrayOrSingle; readonly excludes?: ArrayOrSingle; readonly preferences?: UserPreferences; @@ -694,6 +700,12 @@ declare namespace FourSlashInterface { readonly documentation?: string; readonly tags?: ReadonlyArray; readonly sourceDisplay?: string; + readonly labelDetails?: ExpectedCompletionEntryLabelDetails; + } + + export interface ExpectedCompletionEntryLabelDetails { + detail?: string; + description?: string; } interface VerifySignatureHelpOptions { @@ -768,7 +780,7 @@ declare namespace FourSlashInterface { export interface VerifyInlayHintsOptions { text: string; position: number; - kind?: VerifyInlayHintKind; + kind?: ts.InlayHintKind; whitespaceBefore?: boolean; whitespaceAfter?: boolean; } @@ -831,25 +843,31 @@ declare function classification(format: "original"): FourSlashInterface.Classifi declare function classification(format: "2020"): FourSlashInterface.ModernClassificationFactory; declare namespace completion { type Entry = FourSlashInterface.ExpectedCompletionEntryObject; - export const enum SortText { - LocalDeclarationPriority = "10", - LocationPriority = "11", - OptionalMember = "12", - MemberDeclaredBySpreadAssignment = "13", - SuggestedClassMembers = "14", - GlobalsOrKeywords = "15", - AutoImportSuggestions = "16", - JavascriptIdentifiers = "17", - DeprecatedLocalDeclarationPriority = "18", - DeprecatedLocationPriority = "19", - DeprecatedOptionalMember = "20", - DeprecatedMemberDeclaredBySpreadAssignment = "21", - DeprecatedSuggestedClassMembers = "22", - DeprecatedGlobalsOrKeywords = "23", - DeprecatedAutoImportSuggestions = "24" - } + interface GlobalsPlusOptions { + noLib?: boolean; + } + export type SortText = string & { __sortText: any }; + export const SortText: { + LocalDeclarationPriority: SortText, + LocationPriority: SortText, + OptionalMember: SortText, + MemberDeclaredBySpreadAssignment: SortText, + SuggestedClassMembers: SortText, + GlobalsOrKeywords: SortText, + AutoImportSuggestions: SortText, + ClassMemberSnippets: SortText, + JavascriptIdentifiers: SortText, + + Deprecated(sortText: SortText): SortText, + ObjectLiteralProperty(presetSortText: SortText, symbolDisplayName: string): SortText, + SortBelow(sortText: SortText): SortText, + }; + export const enum CompletionSource { - ThisProperty = "ThisProperty/" + ThisProperty = "ThisProperty/", + ClassMemberSnippet = "ClassMemberSnippet/", + TypeOnlyAlias = "TypeOnlyAlias/", + ObjectLiteralMethodSnippet = "ObjectLiteralMethodSnippet/", } export const globalThisEntry: Entry; export const undefinedVarEntry: Entry; @@ -860,13 +878,15 @@ declare namespace completion { export const insideMethodKeywords: ReadonlyArray; export const insideMethodInJsKeywords: ReadonlyArray; export const globalsVars: ReadonlyArray; - export function globalsInsideFunction(plus: ReadonlyArray): ReadonlyArray; - export function globalsInJsInsideFunction(plus: ReadonlyArray): ReadonlyArray; - export function globalsPlus(plus: ReadonlyArray): ReadonlyArray; - export function globalsInJsPlus(plus: ReadonlyArray): ReadonlyArray; + export function sorted(entries: ReadonlyArray): ReadonlyArray; + export function globalsInsideFunction(plus: ReadonlyArray, options?: GlobalsPlusOptions): ReadonlyArray; + export function globalsInJsInsideFunction(plus: ReadonlyArray, options?: GlobalsPlusOptions): ReadonlyArray; + export function globalsPlus(plus: ReadonlyArray, options?: GlobalsPlusOptions): ReadonlyArray; + export function globalsInJsPlus(plus: ReadonlyArray, options?: GlobalsPlusOptions): ReadonlyArray; export const keywordsWithUndefined: ReadonlyArray; export const keywords: ReadonlyArray; export const typeKeywords: ReadonlyArray; + export function typeKeywordsPlus(plus: ReadonlyArray): ReadonlyArray; export const globalTypes: ReadonlyArray; export function globalTypesPlus(plus: ReadonlyArray): ReadonlyArray; export const typeAssertionKeywords: ReadonlyArray; @@ -874,8 +894,10 @@ declare namespace completion { export const classElementInJsKeywords: ReadonlyArray; export const constructorParameterKeywords: ReadonlyArray; export const functionMembers: ReadonlyArray; - export const stringMembers: ReadonlyArray; + export function functionMembersPlus(plus: ReadonlyArray): ReadonlyArray; export const functionMembersWithPrototype: ReadonlyArray; + export function functionMembersWithPrototypePlus(plus: ReadonlyArray): ReadonlyArray; + export const stringMembers: ReadonlyArray; export const statementKeywordsWithTypes: ReadonlyArray; export const statementKeywords: ReadonlyArray; export const statementInJsKeywords: ReadonlyArray; diff --git a/tests/cases/fourslash/functionTypes.ts b/tests/cases/fourslash/functionTypes.ts index 205861e43b55c..222bbf2fd97fb 100644 --- a/tests/cases/fourslash/functionTypes.ts +++ b/tests/cases/fourslash/functionTypes.ts @@ -23,5 +23,5 @@ verify.noErrors(); verify.completions( { marker: ["1", "2", "3", "4", "5", "6"], exact: completion.functionMembersWithPrototype }, - { marker: "7", exact: ["prototype", ...completion.functionMembers] }, + { marker: "7", exact: completion.functionMembersPlus(["prototype"]) }, ); diff --git a/tests/cases/fourslash/genericTypeAliasIntersectionCompletions.ts b/tests/cases/fourslash/genericTypeAliasIntersectionCompletions.ts index b16e0eba5bba1..d01945d32dbcc 100644 --- a/tests/cases/fourslash/genericTypeAliasIntersectionCompletions.ts +++ b/tests/cases/fourslash/genericTypeAliasIntersectionCompletions.ts @@ -28,4 +28,4 @@ //// var obj = new (merge(LeftSideNode, RightSideNode))(); //// obj./**/ -verify.completions({ marker: "", exact: ["right", "left", "value", "constructor"] }); +verify.completions({ marker: "", unsorted: ["right", "left", "value", "constructor"] }); diff --git a/tests/cases/fourslash/getCompletionEntryDetails2.ts b/tests/cases/fourslash/getCompletionEntryDetails2.ts index ecb5e43918a2d..ec59583fff19e 100644 --- a/tests/cases/fourslash/getCompletionEntryDetails2.ts +++ b/tests/cases/fourslash/getCompletionEntryDetails2.ts @@ -7,11 +7,10 @@ ////} ////Foo./**/ -const exact: ReadonlyArray = [ +const exact: ReadonlyArray = completion.functionMembersPlus([ "prototype", { name: "x", text: "var Foo.x: number" }, - ...completion.functionMembers, -]; +]); verify.completions({ marker: "", exact }); // Make an edit diff --git a/tests/cases/fourslash/getJSXOutliningSpans.tsx b/tests/cases/fourslash/getJSXOutliningSpans.tsx index f00eac19d5cd0..1ddc0cafa3e2a 100644 --- a/tests/cases/fourslash/getJSXOutliningSpans.tsx +++ b/tests/cases/fourslash/getJSXOutliningSpans.tsx @@ -2,7 +2,7 @@ //// ////export class Home extends Component[| { //// render()[| { -//// return ( +//// return [|( //// [|
//// [|

Hello, world!

|] //// [|
    @@ -29,7 +29,7 @@ //// text //// |] ////
|] -//// ); +//// )|]; //// }|] ////}|] diff --git a/tests/cases/fourslash/getJavaScriptCompletions20.ts b/tests/cases/fourslash/getJavaScriptCompletions20.ts index 901ac4522c584..1f989933d3e13 100644 --- a/tests/cases/fourslash/getJavaScriptCompletions20.ts +++ b/tests/cases/fourslash/getJavaScriptCompletions20.ts @@ -19,12 +19,11 @@ verify.completions({ marker: "", - exact: [ + exact: completion.functionMembersWithPrototypePlus([ "getName", "getNa", - ...completion.functionMembersWithPrototype, { name: "Person", sortText: completion.SortText.JavascriptIdentifiers }, { name: "name", sortText: completion.SortText.JavascriptIdentifiers }, { name: "age", sortText: completion.SortText.JavascriptIdentifiers } - ], + ]), }); diff --git a/tests/cases/fourslash/getOccurrencesNonStringImportAssertion.ts b/tests/cases/fourslash/getOccurrencesNonStringImportAssertion.ts new file mode 100644 index 0000000000000..4ab0e7146258d --- /dev/null +++ b/tests/cases/fourslash/getOccurrencesNonStringImportAssertion.ts @@ -0,0 +1,8 @@ +/// + +// @module: nodenext +////import * as react from "react" assert { cache: /**/0 }; +////react.Children; + +goTo.marker(); +verify.occurrencesAtPositionCount(0); diff --git a/tests/cases/fourslash/getOutliningForBlockComments.ts b/tests/cases/fourslash/getOutliningForBlockComments.ts index 59e11451b3b07..93d7ed8818d45 100644 --- a/tests/cases/fourslash/getOutliningForBlockComments.ts +++ b/tests/cases/fourslash/getOutliningForBlockComments.ts @@ -192,6 +192,13 @@ //// */|] //// const x = 1; ////}|] +//// +////[|/* +////comment +////*/|] +//// +////f6(); +//// ////class C1[| { //// [|/** //// * comment @@ -231,6 +238,12 @@ //// */|] //// private prop = 1; ////}|] +//// +////[|/* +////comment +////*/|] +////new C4(); +//// ////module M1[| { //// [|/** //// * comment diff --git a/tests/cases/fourslash/getOutliningSpans.ts b/tests/cases/fourslash/getOutliningSpans.ts index f8bc10ad95544..a522d47ce8bb8 100644 --- a/tests/cases/fourslash/getOutliningSpans.ts +++ b/tests/cases/fourslash/getOutliningSpans.ts @@ -26,11 +26,11 @@ //// }|] ////}|] ////// class expressions -//// (new class[| { +//// [|(new class[| { //// bla()[| { //// //// }|] -//// }|]) +//// }|])|] ////switch(1)[| { //// case 1:[| break;|] ////}|] @@ -64,9 +64,9 @@ ////}|] //// ////// function expressions -////(function f()[| { +////[|(function f()[| { //// -////}|]) +////}|])|] //// ////// trivia handeling ////class ClassFooWithTrivia[| /* some comments */ diff --git a/tests/cases/fourslash/globalCompletionListInsideObjectLiterals.ts b/tests/cases/fourslash/globalCompletionListInsideObjectLiterals.ts index 00d5ef2c6e0d6..a0a5dae412f74 100644 --- a/tests/cases/fourslash/globalCompletionListInsideObjectLiterals.ts +++ b/tests/cases/fourslash/globalCompletionListInsideObjectLiterals.ts @@ -26,7 +26,7 @@ // 1: Completion on '{' location. // 2: Literal member completion after member name with empty member expression and missing colon. // 5, 6: Literal member completion after member name with empty member expression. -const exact = ["p1", "p2", "p3", "p4", ...completion.globalsPlus(["ObjectLiterals"])]; +const exact = completion.globalsPlus(["p1", "p2", "p3", "p4", "ObjectLiterals"]); verify.completions( { marker: ["1",], exact: exact.filter(name => name !== 'p1'), isNewIdentifierLocation: true }, { marker: ["2", "3"], exact: exact.filter(name => name !== 'p2') }, diff --git a/tests/cases/fourslash/goToDefinitionImport1.ts b/tests/cases/fourslash/goToDefinitionImport1.ts new file mode 100644 index 0000000000000..f7a3655e9af1f --- /dev/null +++ b/tests/cases/fourslash/goToDefinitionImport1.ts @@ -0,0 +1,9 @@ +/// + +// @Filename: /b.ts +/////*2*/export const foo = 1; + +// @Filename: /a.ts +////import { foo } from [|"./b/*1*/"|]; + +verify.goToDefinition("1", "2"); diff --git a/tests/cases/fourslash/goToDefinitionImport2.ts b/tests/cases/fourslash/goToDefinitionImport2.ts new file mode 100644 index 0000000000000..77c6bc7647827 --- /dev/null +++ b/tests/cases/fourslash/goToDefinitionImport2.ts @@ -0,0 +1,9 @@ +/// + +// @Filename: /b.ts +/////*2*/export const foo = 1; + +// @Filename: /a.ts +////import { foo } [|from/*1*/|] "./b"; + +verify.goToDefinition("1", []); diff --git a/tests/cases/fourslash/goToDefinitionImport3.ts b/tests/cases/fourslash/goToDefinitionImport3.ts new file mode 100644 index 0000000000000..7c38f7c94f645 --- /dev/null +++ b/tests/cases/fourslash/goToDefinitionImport3.ts @@ -0,0 +1,9 @@ +/// + +// @Filename: /b.ts +/////*2*/export const foo = 1; + +// @Filename: /a.ts +////import { foo } [|from /*1*/|] "./b"; + +verify.goToDefinition("1", []); diff --git a/tests/cases/fourslash/goToDefinitionImportMeta.ts b/tests/cases/fourslash/goToDefinitionImportMeta.ts new file mode 100644 index 0000000000000..4594fef1b6766 --- /dev/null +++ b/tests/cases/fourslash/goToDefinitionImportMeta.ts @@ -0,0 +1,13 @@ +/// + +// @module: esnext +// @Filename: foo.ts +/////// +/////// +////import.me/*reference*/ta; + +//@Filename: bar.d.ts +////interface ImportMeta { +////} + +verify.goToDefinition("reference", []); diff --git a/tests/cases/fourslash/goToDefinitionJsxNotSet.ts b/tests/cases/fourslash/goToDefinitionJsxNotSet.ts new file mode 100644 index 0000000000000..f0daa71b6fde5 --- /dev/null +++ b/tests/cases/fourslash/goToDefinitionJsxNotSet.ts @@ -0,0 +1,17 @@ +/// + +// Regresion tests for GH#46854 + +// @allowJs: true + +// @Filename: /foo.jsx +//// const /*def*/Foo = () => ( +////
foo
+//// ); +//// export default Foo; + +// @Filename: /bar.jsx +//// import Foo from './foo'; +//// const a = <[|/*use*/Foo|] /> + +verify.goToDefinition("use", "def"); \ No newline at end of file diff --git a/tests/cases/fourslash/goToDefinitionTypeofThis.ts b/tests/cases/fourslash/goToDefinitionTypeofThis.ts new file mode 100644 index 0000000000000..72b9a63f04535 --- /dev/null +++ b/tests/cases/fourslash/goToDefinitionTypeofThis.ts @@ -0,0 +1,15 @@ +/// + +////function f(/*fnDecl*/this: number) { +//// type X = typeof [|/*fnUse*/this|]; +////} +////class /*cls*/C { +//// constructor() { type X = typeof [|/*clsUse*/this|]; } +//// get self(/*getterDecl*/this: number) { type X = typeof [|/*getterUse*/this|]; } +////} + +verify.goToDefinition({ + "fnUse": "fnDecl", + "clsUse": "cls", + "getterUse": "getterDecl" +}); diff --git a/tests/cases/fourslash/goToTypeDefinition3.ts b/tests/cases/fourslash/goToTypeDefinition3.ts new file mode 100644 index 0000000000000..861796e0a34bd --- /dev/null +++ b/tests/cases/fourslash/goToTypeDefinition3.ts @@ -0,0 +1,6 @@ +/// + +////type /*definition*/T = string; +////const x: /*reference*/T; + +verify.goToType("reference", "definition"); diff --git a/tests/cases/fourslash/goToTypeDefinition4.ts b/tests/cases/fourslash/goToTypeDefinition4.ts new file mode 100644 index 0000000000000..7c00b132f8906 --- /dev/null +++ b/tests/cases/fourslash/goToTypeDefinition4.ts @@ -0,0 +1,12 @@ +/// + +// @Filename: foo.ts +////export type /*def0*/T = string; +////export const /*def1*/T = ""; + +// @Filename: bar.ts +////import { T } from "./foo"; +////let x: [|/*reference*/T|]; + +verify.goToType("reference", []); +verify.goToDefinition("reference", ["def0", "def1"]); diff --git a/tests/cases/fourslash/goToTypeDefinition5.ts b/tests/cases/fourslash/goToTypeDefinition5.ts new file mode 100644 index 0000000000000..8750a6697bf0b --- /dev/null +++ b/tests/cases/fourslash/goToTypeDefinition5.ts @@ -0,0 +1,10 @@ +/// + +// @Filename: foo.ts +////let Foo: /*definition*/unresolved; +////type Foo = { x: string }; + +/////*reference*/Foo; + + +verify.goToType("reference", []); diff --git a/tests/cases/fourslash/goToTypeDefinitionImportMeta.ts b/tests/cases/fourslash/goToTypeDefinitionImportMeta.ts new file mode 100644 index 0000000000000..a7d1d72495e34 --- /dev/null +++ b/tests/cases/fourslash/goToTypeDefinitionImportMeta.ts @@ -0,0 +1,13 @@ +/// + +// @module: esnext +// @Filename: foo.ts +/////// +/////// +////import.me/*reference*/ta; + +//@Filename: bar.d.ts +////interface /*definition*/ImportMeta { +////} + +verify.goToType("reference", "definition"); diff --git a/tests/cases/fourslash/importFixesGlobalTypingsCache.ts b/tests/cases/fourslash/importFixesGlobalTypingsCache.ts index 68eeae6f0fbcf..690af5820e3cf 100644 --- a/tests/cases/fourslash/importFixesGlobalTypingsCache.ts +++ b/tests/cases/fourslash/importFixesGlobalTypingsCache.ts @@ -4,11 +4,17 @@ //// { "compilerOptions": { "allowJs": true, "checkJs": true } } // @Filename: /Library/Caches/typescript/node_modules/@types/react-router-dom/package.json -//// { "name": "react-router-dom" } +//// { "name": "@types/react-router-dom", "version": "16.8.4", "types": "index.d.ts" } // @Filename: /Library/Caches/typescript/node_modules/@types/react-router-dom/index.d.ts ////export class BrowserRouter {} +// @Filename: /project/node_modules/react-router-dom/package.json +//// { "name": "react-router-dom", "version": "16.8.4", "main": "index.js" } + +// @Filename: /project/node_modules/react-router-dom/index.js +//// export const BrowserRouter = () => null; + // @Filename: /project/index.js ////BrowserRouter/**/ @@ -16,3 +22,4 @@ goTo.file("/project/index.js"); verify.importFixAtPosition([`const { BrowserRouter } = require("react-router-dom"); BrowserRouter`]); + diff --git a/tests/cases/fourslash/importFixesWithExistingDottedRequire.ts b/tests/cases/fourslash/importFixesWithExistingDottedRequire.ts new file mode 100644 index 0000000000000..9b58ce05d03cd --- /dev/null +++ b/tests/cases/fourslash/importFixesWithExistingDottedRequire.ts @@ -0,0 +1,21 @@ +/// + +// @module: commonjs +// @checkJs: true + +// @Filename: ./library.js +//// module.exports.aaa = function() {} +//// module.exports.bbb = function() {} + +// @Filename: ./foo.js +//// var aaa = require("./library.js").aaa; +//// aaa(); +//// /*$*/bbb + +goTo.marker("$") +verify.codeFixAvailable([ + { description: "Add import from \"./library.js\"" }, + { description: "Ignore this error message" }, + { description: "Disable checking for this file" }, + { description: "Convert to ES module" }, +]); diff --git a/tests/cases/fourslash/importJsNodeModule2.ts b/tests/cases/fourslash/importJsNodeModule2.ts index 1c4cf77926afa..4e3a3a9eae4cf 100644 --- a/tests/cases/fourslash/importJsNodeModule2.ts +++ b/tests/cases/fourslash/importJsNodeModule2.ts @@ -17,7 +17,7 @@ goTo.file('consumer.js'); goTo.marker(); edit.insert('.'); verify.completions({ - exact: [ + unsorted: [ ...["n", "s", "b"].map(name => ({ name, kind: "property" })), ...["x", "require"].map(name => ({ name, kind: "warning", sortText: completion.SortText.JavascriptIdentifiers })), ], diff --git a/tests/cases/fourslash/importNameCodeFixDefaultExport6.ts b/tests/cases/fourslash/importNameCodeFixDefaultExport6.ts index 2dcea116f592a..0738cfb036561 100644 --- a/tests/cases/fourslash/importNameCodeFixDefaultExport6.ts +++ b/tests/cases/fourslash/importNameCodeFixDefaultExport6.ts @@ -9,7 +9,7 @@ verify.applyCodeActionFromCompletion("", { name: "a", source: "/a", - description: `Import default 'a' from module "./a"`, + description: `Add import from "./a"`, newFileContent: `import a from "./a";\n\na`, preferences: { includeCompletionsForModuleExports: true diff --git a/tests/cases/fourslash/importNameCodeFixWithCopyright.ts b/tests/cases/fourslash/importNameCodeFixWithCopyright.ts index 178d67ab099a6..c3ea580b76f25 100644 --- a/tests/cases/fourslash/importNameCodeFixWithCopyright.ts +++ b/tests/cases/fourslash/importNameCodeFixWithCopyright.ts @@ -38,7 +38,7 @@ goTo.file("/b.ts"); verify.codeFix({ - description: ignoreInterpolations(ts.Diagnostics.Import_0_from_module_1), + description: ignoreInterpolations(ts.Diagnostics.Add_import_from_0), newFileContent: `/*--------------------------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. @@ -52,7 +52,7 @@ export class B extends A { }`, goTo.file("/c.ts"); verify.codeFix({ - description: ignoreInterpolations(ts.Diagnostics.Import_0_from_module_1), + description: ignoreInterpolations(ts.Diagnostics.Add_import_from_0), newFileContent: `/*--------------------------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. @@ -70,7 +70,7 @@ export class C extends A { }`, goTo.file("/d.ts"); verify.codeFix({ - description: ignoreInterpolations(ts.Diagnostics.Import_0_from_module_1), + description: ignoreInterpolations(ts.Diagnostics.Add_import_from_0), newFileContent: `/*--------------------------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. diff --git a/tests/cases/fourslash/importNameCodeFixWithPrologue.ts b/tests/cases/fourslash/importNameCodeFixWithPrologue.ts index c71d03c063d04..cbc0b0fe3b3ff 100644 --- a/tests/cases/fourslash/importNameCodeFixWithPrologue.ts +++ b/tests/cases/fourslash/importNameCodeFixWithPrologue.ts @@ -18,7 +18,7 @@ goTo.file("/b.ts"); verify.codeFix({ - description: ignoreInterpolations(ts.Diagnostics.Import_0_from_module_1), + description: ignoreInterpolations(ts.Diagnostics.Add_import_from_0), newFileContent: `"use strict"; @@ -29,7 +29,7 @@ export class B extends A { }`, goTo.file("/c.ts"); verify.codeFix({ - description: ignoreInterpolations(ts.Diagnostics.Import_0_from_module_1), + description: ignoreInterpolations(ts.Diagnostics.Add_import_from_0), newFileContent: `/*--------------------------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. diff --git a/tests/cases/fourslash/importNameCodeFix_barrelExport.ts b/tests/cases/fourslash/importNameCodeFix_barrelExport.ts new file mode 100644 index 0000000000000..de5fe32726944 --- /dev/null +++ b/tests/cases/fourslash/importNameCodeFix_barrelExport.ts @@ -0,0 +1,29 @@ +/// + +// @module: commonjs + +// @Filename: /foo/a.ts +//// export const A = 0; + +// @Filename: /foo/b.ts +//// export {}; +//// A/*sibling*/ + +// @Filename: /foo/index.ts +//// export * from "./a"; +//// export * from "./b"; + +// @Filename: /index.ts +//// export * from "./foo"; +//// export * from "./src"; + +// @Filename: /src/a.ts +//// export {}; +//// A/*parent*/ + +// @Filename: /src/index.ts +//// export * from "./a"; + +// Module specifiers made up of only "." and ".." components are deprioritized +verify.importFixModuleSpecifiers("sibling", ["./a", ".", ".."]); +verify.importFixModuleSpecifiers("parent", ["../foo", "../foo/a", ".."]); diff --git a/tests/cases/fourslash/importNameCodeFix_barrelExport2.ts b/tests/cases/fourslash/importNameCodeFix_barrelExport2.ts new file mode 100644 index 0000000000000..97a2926ae1167 --- /dev/null +++ b/tests/cases/fourslash/importNameCodeFix_barrelExport2.ts @@ -0,0 +1,33 @@ +/// + +// @module: commonjs +// @baseUrl: / + +// @Filename: /proj/foo/a.ts +//// export const A = 0; + +// @Filename: /proj/foo/b.ts +//// export {}; +//// A/*sibling*/ + +// @Filename: /proj/foo/index.ts +//// export * from "./a"; +//// export * from "./b"; + +// @Filename: /proj/index.ts +//// export * from "./foo"; +//// export * from "./src"; + +// @Filename: /proj/src/a.ts +//// export {}; +//// A/*parent*/ + +// @Filename: /proj/src/utils.ts +//// export function util() { return "util"; } +//// export { A } from "../foo/a"; + +// @Filename: /proj/src/index.ts +//// export * from "./a"; + +verify.importFixModuleSpecifiers("sibling", ["proj/foo/a", "proj/src/utils", "proj", "proj/foo"], { importModuleSpecifierPreference: "non-relative" }); +verify.importFixModuleSpecifiers("parent", ["proj/foo", "proj/foo/a", "proj/src/utils", "proj"], { importModuleSpecifierPreference: "non-relative" }); diff --git a/tests/cases/fourslash/importNameCodeFix_barrelExport3.ts b/tests/cases/fourslash/importNameCodeFix_barrelExport3.ts new file mode 100644 index 0000000000000..108df23b6f0e6 --- /dev/null +++ b/tests/cases/fourslash/importNameCodeFix_barrelExport3.ts @@ -0,0 +1,32 @@ +/// + +// @module: commonjs + +// @Filename: /foo/a.ts +//// export const A = 0; + +// @Filename: /foo/b.ts +//// export {}; +//// A/*sibling*/ + +// @Filename: /foo/index.ts +//// export * from "./a"; +//// export * from "./b"; + +// @Filename: /index.ts +//// export * from "./foo"; +//// export * from "./src"; + +// @Filename: /src/a.ts +//// export {}; +//// A/*parent*/ + +// @Filename: /src/index.ts +//// export * from "./a"; + +verify.importFixModuleSpecifiers("sibling", ["./a", "./index", "../index"], { importModuleSpecifierEnding: "index" }); +// Here, "../foo/a" and "../foo/index" actually have the same sorting score, +// so the original program order is preserved, which seems coincidentally probably good? +// In other words, a re-export is preferable only if it saves on directory separators +// and isn't in an ancestor directory of the importing file. +verify.importFixModuleSpecifiers("parent", ["../foo/a", "../foo/index", "../index"], { importModuleSpecifierEnding: "index" }); diff --git a/tests/cases/fourslash/importNameCodeFix_importType5.ts b/tests/cases/fourslash/importNameCodeFix_importType5.ts new file mode 100644 index 0000000000000..5e22312b7965c --- /dev/null +++ b/tests/cases/fourslash/importNameCodeFix_importType5.ts @@ -0,0 +1,16 @@ +/// + +// @module: es2015 + +// @Filename: /exports.ts +//// export interface SomeInterface {} +//// export class SomePig {} + +// @Filename: /a.ts +//// import type { SomeInterface, SomePig } from "./exports.js"; +//// new SomePig/**/ + +goTo.marker(""); +verify.importFixAtPosition([ +`import { SomeInterface, SomePig } from "./exports.js"; +new SomePig`]); diff --git a/tests/cases/fourslash/importNameCodeFix_importType6.ts b/tests/cases/fourslash/importNameCodeFix_importType6.ts new file mode 100644 index 0000000000000..14396e076444b --- /dev/null +++ b/tests/cases/fourslash/importNameCodeFix_importType6.ts @@ -0,0 +1,19 @@ +/// +// @module: es2015 +// @esModuleInterop: true +// @jsx: react + +// @Filename: /types.d.ts +//// declare module "react" { var React: any; export = React; export as namespace React; } + +// @Filename: /a.tsx +//// import type React from "react"; +//// function Component() {} +//// () + +goTo.marker(""); + +verify.importFixAtPosition([ +`import React from "react"; +function Component() {} +()`]); \ No newline at end of file diff --git a/tests/cases/fourslash/importNameCodeFix_importType7.ts b/tests/cases/fourslash/importNameCodeFix_importType7.ts new file mode 100644 index 0000000000000..7d28f3019654b --- /dev/null +++ b/tests/cases/fourslash/importNameCodeFix_importType7.ts @@ -0,0 +1,24 @@ +/// + +// @module: es2015 + +// sorting and multiline imports and trailing commas, oh my + +// @Filename: /exports.ts +//// export interface SomeInterface {} +//// export class SomePig {} + +// @Filename: /a.ts +//// import { +//// type SomeInterface, +//// type SomePig, +//// } from "./exports.js"; +//// new SomePig/**/ + +goTo.marker(""); +verify.importFixAtPosition([ +`import { + SomePig, + type SomeInterface, +} from "./exports.js"; +new SomePig`]); diff --git a/tests/cases/fourslash/importNameCodeFix_importType8.ts b/tests/cases/fourslash/importNameCodeFix_importType8.ts new file mode 100644 index 0000000000000..5cd2a583e995d --- /dev/null +++ b/tests/cases/fourslash/importNameCodeFix_importType8.ts @@ -0,0 +1,18 @@ +/// + +// @module: es2015 +// @isolatedModules: true +// @preserveValueImports: true + +// @Filename: /exports.ts +//// export interface SomeInterface {} +//// export class SomePig {} + +// @Filename: /a.ts +//// import type { SomeInterface, SomePig } from "./exports.js"; +//// new SomePig/**/ + +goTo.marker(""); +verify.importFixAtPosition([ +`import { SomePig, type SomeInterface } from "./exports.js"; +new SomePig`]); diff --git a/tests/cases/fourslash/importNameCodeFix_jsx2.ts b/tests/cases/fourslash/importNameCodeFix_jsx2.ts index f740876ed7ec3..8b8ecad213d51 100644 --- a/tests/cases/fourslash/importNameCodeFix_jsx2.ts +++ b/tests/cases/fourslash/importNameCodeFix_jsx2.ts @@ -23,7 +23,7 @@ goTo.file("/a.tsx"); verify.codeFix({ index: 0, - description: [ts.Diagnostics.Import_0_from_module_1.message, "Text", "react-native"], + description: [ts.Diagnostics.Add_import_from_0.message, "react-native"], newFileContent: `import React from "react"; import { Text } from "react-native"; diff --git a/tests/cases/fourslash/importNameCodeFix_jsx3.ts b/tests/cases/fourslash/importNameCodeFix_jsx3.ts index f889076734823..b2a898292fae0 100644 --- a/tests/cases/fourslash/importNameCodeFix_jsx3.ts +++ b/tests/cases/fourslash/importNameCodeFix_jsx3.ts @@ -23,7 +23,7 @@ goTo.file("/a.tsx"); verify.codeFix({ index: 0, - description: [ts.Diagnostics.Import_0_from_module_1.message, "Text", "react-native"], + description: [ts.Diagnostics.Add_import_from_0.message, "react-native"], newFileContent: `import React from "react"; import { Text } from "react-native"; diff --git a/tests/cases/fourslash/importNameCodeFix_jsx4.ts b/tests/cases/fourslash/importNameCodeFix_jsx4.ts index 2303336d83cb2..5bbe9406a2db7 100644 --- a/tests/cases/fourslash/importNameCodeFix_jsx4.ts +++ b/tests/cases/fourslash/importNameCodeFix_jsx4.ts @@ -23,7 +23,7 @@ goTo.file("/a.tsx"); verify.codeFix({ index: 0, - description: [ts.Diagnostics.Import_default_0_from_module_1.message, "React", "react"], + description: [ts.Diagnostics.Import_0_from_1.message, "React", "react"], newFileContent: `import React from "react"; import { Text } from "react-native"; diff --git a/tests/cases/fourslash/importNameCodeFix_jsx5.ts b/tests/cases/fourslash/importNameCodeFix_jsx5.ts index 510175f375f82..d3c4ad8145ec0 100644 --- a/tests/cases/fourslash/importNameCodeFix_jsx5.ts +++ b/tests/cases/fourslash/importNameCodeFix_jsx5.ts @@ -23,7 +23,7 @@ goTo.file("/a.tsx"); verify.codeFix({ index: 0, - description: [ts.Diagnostics.Import_0_from_module_1.message, "Text", "react-native"], + description: [ts.Diagnostics.Add_import_from_0.message, "react-native"], newFileContent: `import React from "react"; import { Text } from "react-native"; diff --git a/tests/cases/fourslash/importNameCodeFix_jsx6.ts b/tests/cases/fourslash/importNameCodeFix_jsx6.ts index d98117fae67cf..95dc5ff6d1bdb 100644 --- a/tests/cases/fourslash/importNameCodeFix_jsx6.ts +++ b/tests/cases/fourslash/importNameCodeFix_jsx6.ts @@ -22,7 +22,7 @@ goTo.file("/a.tsx"); verify.codeFix({ index: 0, - description: [ts.Diagnostics.Import_default_0_from_module_1.message, "React", "react"], + description: [ts.Diagnostics.Import_0_from_1.message, "React", "react"], applyChanges: true, newFileContent: `import React from "react"; @@ -32,7 +32,7 @@ verify.codeFix({ verify.codeFix({ index: 0, - description: [ts.Diagnostics.Import_0_from_module_1.message, "Text", "react-native"], + description: [ts.Diagnostics.Add_import_from_0.message, "react-native"], newFileContent: `import React from "react"; import { Text } from "react-native"; diff --git a/tests/cases/fourslash/importNameCodeFix_jsxOpeningTagImportDefault.ts b/tests/cases/fourslash/importNameCodeFix_jsxOpeningTagImportDefault.ts new file mode 100644 index 0000000000000..e7334e5d96d98 --- /dev/null +++ b/tests/cases/fourslash/importNameCodeFix_jsxOpeningTagImportDefault.ts @@ -0,0 +1,19 @@ +/// + +// @module: commonjs +// @jsx: react-jsx + +// @Filename: /component.tsx +//// export default function (props: any) {} + +// @Filename: /index.tsx +//// export function Index() { +//// return ; +//// } + +goTo.marker(""); +verify.importFixAtPosition([`import Component from "./component"; + +export function Index() { + return ; +}`]); diff --git a/tests/cases/fourslash/importNameCodeFix_require_UMD.ts b/tests/cases/fourslash/importNameCodeFix_require_UMD.ts index 7f8e30876ae54..0ae27f33dec55 100644 --- a/tests/cases/fourslash/importNameCodeFix_require_UMD.ts +++ b/tests/cases/fourslash/importNameCodeFix_require_UMD.ts @@ -15,7 +15,7 @@ goTo.file("index.js"); verify.codeFix({ index: 0, - description: `Import 'Foo' from module "./umd"`, + description: `Add import from "./umd"`, newFileContent: `const Foo = require("./umd"); diff --git a/tests/cases/fourslash/importNameCodeFix_require_addToExisting.ts b/tests/cases/fourslash/importNameCodeFix_require_addToExisting.ts index 2d64cfac390b2..199b799a81f7d 100644 --- a/tests/cases/fourslash/importNameCodeFix_require_addToExisting.ts +++ b/tests/cases/fourslash/importNameCodeFix_require_addToExisting.ts @@ -19,7 +19,7 @@ goTo.file("index.js"); verify.codeFix({ index: 0, errorCode: ts.Diagnostics.Cannot_find_name_0.code, - description: `Add default import 'Blah' to existing import declaration from "./blah"`, + description: `Update import from "./blah"`, newFileContent: `var path = require('path') , { promisify } = require('util') diff --git a/tests/cases/fourslash/importNameCodeFix_require_importVsRequire_addToExistingWins.ts b/tests/cases/fourslash/importNameCodeFix_require_importVsRequire_addToExistingWins.ts index cd0c54b87c165..120a4ca41cc7a 100644 --- a/tests/cases/fourslash/importNameCodeFix_require_importVsRequire_addToExistingWins.ts +++ b/tests/cases/fourslash/importNameCodeFix_require_importVsRequire_addToExistingWins.ts @@ -24,7 +24,7 @@ goTo.file("index.js"); verify.codeFix({ index: 0, errorCode: ts.Diagnostics.Cannot_find_name_0.code, - description: `Add default import 'Blah' to existing import declaration from "./blah"`, + description: `Update import from "./blah"`, newFileContent: `var path = require('path') , { promisify } = require('util') diff --git a/tests/cases/fourslash/importNameCodeFix_require_importVsRequire_importWins.ts b/tests/cases/fourslash/importNameCodeFix_require_importVsRequire_importWins.ts index 6396606a7b9e8..796287d26112f 100644 --- a/tests/cases/fourslash/importNameCodeFix_require_importVsRequire_importWins.ts +++ b/tests/cases/fourslash/importNameCodeFix_require_importVsRequire_importWins.ts @@ -26,7 +26,7 @@ goTo.file("addToExisting.js"); verify.codeFix({ index: 0, errorCode: ts.Diagnostics.Cannot_find_name_0.code, - description: `Add default import 'Blah' to existing import declaration from "./blah"`, + description: `Update import from "./blah"`, newFileContent: `const { Named2 } = require('./blah') import Blah, { Named1 } from './blah' @@ -41,7 +41,7 @@ goTo.file("newImport.js"); verify.codeFix({ index: 0, errorCode: ts.Diagnostics.Cannot_find_name_0.code, - description: `Import default 'Blah' from module "./blah"`, + description: `Add import from "./blah"`, newFileContent: `import fs from 'fs'; import Blah from './blah'; diff --git a/tests/cases/fourslash/importNameCodeFix_require_importVsRequire_moduleTarget.ts b/tests/cases/fourslash/importNameCodeFix_require_importVsRequire_moduleTarget.ts index 9214ea9eb4aec..a8de852f52267 100644 --- a/tests/cases/fourslash/importNameCodeFix_require_importVsRequire_moduleTarget.ts +++ b/tests/cases/fourslash/importNameCodeFix_require_importVsRequire_moduleTarget.ts @@ -15,7 +15,7 @@ goTo.file("index.js"); verify.codeFix({ index: 0, errorCode: ts.Diagnostics.Cannot_find_name_0.code, - description: `Import 'x' from module "./a"`, + description: `Add import from "./a"`, applyChanges: false, newFileContent: `import { x } from "./a"; @@ -30,7 +30,7 @@ edit.insertLine("const fs = require('fs');\n"); verify.codeFix({ index: 0, errorCode: ts.Diagnostics.Cannot_find_name_0.code, - description: `Import 'x' from module "./a"`, + description: `Add import from "./a"`, applyChanges: false, newFileContent: `const fs = require('fs'); diff --git a/tests/cases/fourslash/importNameCodeFix_typeOnly3.ts b/tests/cases/fourslash/importNameCodeFix_typeOnly3.ts index 0c51cb2b9df9f..fdc7189200a3c 100644 --- a/tests/cases/fourslash/importNameCodeFix_typeOnly3.ts +++ b/tests/cases/fourslash/importNameCodeFix_typeOnly3.ts @@ -22,7 +22,7 @@ goTo.file("index.ts"); verify.codeFix({ errorCode: ts.Diagnostics.Cannot_find_name_0.code, - description: ignoreInterpolations(ts.Diagnostics.Import_0_from_module_1), + description: ignoreInterpolations(ts.Diagnostics.Add_import_from_0), newFileContent: `import type { DisplayStyle } from "./Presenter"; import type Presenter from "./Presenter"; diff --git a/tests/cases/fourslash/importTypeMemberCompletions.ts b/tests/cases/fourslash/importTypeMemberCompletions.ts index d91f2d271c298..1bd6b0e32c10a 100644 --- a/tests/cases/fourslash/importTypeMemberCompletions.ts +++ b/tests/cases/fourslash/importTypeMemberCompletions.ts @@ -43,11 +43,11 @@ verify.completions( { marker: "1", exact: "Foo" }, { marker: "2", exact: "Bar" }, - { marker: "3", exact: ["Baz", "a"] }, + { marker: "3", exact: ["a", "Baz"] }, { marker: "4", exact: "Foo" }, { marker: "5", exact: "Bar" }, - { marker: "6", exact: ["Baz", "Bat"] }, + { marker: "6", exact: ["Bat", "Baz"] }, { marker: "7", exact: "a" }, { marker: "8", exact: "Bat" }, - { marker: "9", exact: ["prototype", "bar"] }, + { marker: "9", exact: ["bar", "prototype"] }, ); diff --git a/tests/cases/fourslash/indirectClassInstantiation.ts b/tests/cases/fourslash/indirectClassInstantiation.ts index 5a87136446523..8caaf3bf5ef85 100644 --- a/tests/cases/fourslash/indirectClassInstantiation.ts +++ b/tests/cases/fourslash/indirectClassInstantiation.ts @@ -17,13 +17,13 @@ goTo.marker('a'); verify.completions({ exact: [ "property", - { name: "TestObj", sortText: completion.SortText.JavascriptIdentifiers }, + { name: "blah", sortText: completion.SortText.JavascriptIdentifiers }, + { name: "class2", sortText: completion.SortText.JavascriptIdentifiers }, { name: "constructor", sortText: completion.SortText.JavascriptIdentifiers }, + { name: "inst2", sortText: completion.SortText.JavascriptIdentifiers }, { name: "instance", sortText: completion.SortText.JavascriptIdentifiers }, - { name: "class2", sortText: completion.SortText.JavascriptIdentifiers }, { name: "prototype", sortText: completion.SortText.JavascriptIdentifiers }, - { name: "blah", sortText: completion.SortText.JavascriptIdentifiers }, - { name: "inst2", sortText: completion.SortText.JavascriptIdentifiers } + { name: "TestObj", sortText: completion.SortText.JavascriptIdentifiers }, ] }); edit.backspace(); diff --git a/tests/cases/fourslash/inlayHintsCrash1.ts b/tests/cases/fourslash/inlayHintsCrash1.ts new file mode 100644 index 0000000000000..793bac5eff270 --- /dev/null +++ b/tests/cases/fourslash/inlayHintsCrash1.ts @@ -0,0 +1,14 @@ +/// +// @allowJs: true +// @checkJs: true +// @Filename: foo.js +//// /** +//// * @param {function(string): boolean} f +//// */ +//// function doThing(f) { +//// f(100) +//// } +verify.getInlayHints([], undefined, { + includeInlayVariableTypeHints: true, + includeInlayParameterNameHints: "all", +}); diff --git a/tests/cases/fourslash/inlayHintsShouldWork46.ts b/tests/cases/fourslash/inlayHintsShouldWork46.ts index 3fac222fd2467..e93517de3b9eb 100644 --- a/tests/cases/fourslash/inlayHintsShouldWork46.ts +++ b/tests/cases/fourslash/inlayHintsShouldWork46.ts @@ -16,13 +16,13 @@ goTo.file('/b.js') const markers = test.markers(); verify.getInlayHints([ { - text: ': number', + text: ': 1', position: markers[0].position, kind: ts.InlayHintKind.Type, whitespaceBefore: true }, { - text: ': number', + text: ': 1', position: markers[1].position, kind: ts.InlayHintKind.Type, whitespaceBefore: true diff --git a/tests/cases/fourslash/inlayHintsShouldWork66.ts b/tests/cases/fourslash/inlayHintsShouldWork66.ts new file mode 100644 index 0000000000000..618348a691137 --- /dev/null +++ b/tests/cases/fourslash/inlayHintsShouldWork66.ts @@ -0,0 +1,23 @@ +/// + +////interface IFoo { +//// bar(x?: boolean): void; +////} +//// +////const a: IFoo = { +//// bar: function (x?/**/): void { +//// throw new Error("Function not implemented."); +//// } +////} + +const [marker] = test.markers(); +verify.getInlayHints([ + { + text: ': boolean', + position: marker.position, + kind: ts.InlayHintKind.Type, + whitespaceBefore: true + }, +], undefined, { + includeInlayFunctionParameterTypeHints: true +}); diff --git a/tests/cases/fourslash/javaScriptModules16.ts b/tests/cases/fourslash/javaScriptModules16.ts index 51107934fb13d..90c109b3099a4 100644 --- a/tests/cases/fourslash/javaScriptModules16.ts +++ b/tests/cases/fourslash/javaScriptModules16.ts @@ -16,7 +16,7 @@ goTo.file('consumer.js'); goTo.marker(); edit.insert('.'); verify.completions({ - exact: [ + unsorted: [ ...["n", "s", "b"].map(name => ({ name, kind: "property" })), ...["x", "require"].map(name => ({ name, kind: "warning", sortText: completion.SortText.JavascriptIdentifiers })), ], diff --git a/tests/cases/fourslash/javaScriptPrototype3.ts b/tests/cases/fourslash/javaScriptPrototype3.ts index 72d22b969b259..561d021d71c06 100644 --- a/tests/cases/fourslash/javaScriptPrototype3.ts +++ b/tests/cases/fourslash/javaScriptPrototype3.ts @@ -18,14 +18,14 @@ edit.insert('.'); // Check members of the function verify.completions({ marker: "", - exact: [ - { name: "qua", kind: "property" }, - { name: "foo", kind: "method" }, + unsorted: [ { name: "bar", kind: "method" }, + { name: "qua", kind: "property" }, ...["myCtor", "x", "prototype"].map(name => ({ name, kind: "warning", sortText: completion.SortText.JavascriptIdentifiers })), + { name: "foo", kind: "method" }, ], }); diff --git a/tests/cases/fourslash/jsDocInheritDoc.ts b/tests/cases/fourslash/jsDocInheritDoc.ts index 8a19bd0c14e26..7ef822ce65331 100644 --- a/tests/cases/fourslash/jsDocInheritDoc.ts +++ b/tests/cases/fourslash/jsDocInheritDoc.ts @@ -17,6 +17,10 @@ //// * Foo#property1 documentation //// */ //// property1: string; +//// /** +//// * Foo#property3 documentation +//// */ +//// property3 = "instance prop"; ////} ////interface Baz { //// /** Baz#property1 documentation */ @@ -43,6 +47,8 @@ //// * @inheritDoc //// */ //// property2: object; +//// +//// static /*6*/property3 = "class prop"; ////} ////const b = new Bar/*1*/(5); ////b.method2/*2*/(); @@ -55,3 +61,4 @@ verify.quickInfoAt("2", "(method) Bar.method2(): void", "Foo#method2 documentati verify.quickInfoAt("3", "(method) Bar.method1(): void", undefined); // statics aren't actually inherited verify.quickInfoAt("4", "(property) Bar.property1: string", "Foo#property1 documentation"); // use inherited docs only verify.quickInfoAt("5", "(property) Bar.property2: object", "Baz#property2 documentation\nBar#property2"); // include local and inherited docs +verify.quickInfoAt("6", "(property) Bar.property3: string", undefined); diff --git a/tests/cases/fourslash/jsFileJsdocTypedefTagTypeExpressionCompletion3.ts b/tests/cases/fourslash/jsFileJsdocTypedefTagTypeExpressionCompletion3.ts index 82b0dd9f5e307..602b5423c4943 100644 --- a/tests/cases/fourslash/jsFileJsdocTypedefTagTypeExpressionCompletion3.ts +++ b/tests/cases/fourslash/jsFileJsdocTypedefTagTypeExpressionCompletion3.ts @@ -43,14 +43,14 @@ verify.completions( }, { marker: "typeFooMember", - exact: [ + unsorted: [ { name: "Namespace", kind: "module", kindModifiers: "export" }, ...warnings(["Foo", "value", "property1", "method1", "method3", "method4", "foo", "age", "SomeType", "x", "x1"]), ], }, { marker: "NamespaceMember", - exact: [ + unsorted: [ { name: "SomeType", kind: "type" }, ...warnings(["Foo", "value", "property1", "method1", "method3", "method4", "foo", "age", "Namespace", "x", "x1"]), ], @@ -66,14 +66,14 @@ verify.completions( }, { marker: "valueMemberOfSomeType", - exact: [ + unsorted: [ { name: "age", kind: "property" }, ...warnings(["Foo", "value", "property1", "method1", "method3", "method4", "foo", "Namespace", "SomeType", "x", "x1"]), ], }, { marker: "valueMemberOfFooInstance", - exact: [ + unsorted: [ { name: "property1", kind: "property" }, { name: "method3", kind: "method" }, { name: "method4", kind: "method" }, @@ -82,7 +82,7 @@ verify.completions( }, { marker: "valueMemberOfFoo", - exact: [ + unsorted: [ { name: "prototype", kind: "property" }, { name: "method1", kind: "method", kindModifiers: "static" }, ...completion.functionMembers, diff --git a/tests/cases/fourslash/jsdocDeprecated_suggestion14.ts b/tests/cases/fourslash/jsdocDeprecated_suggestion14.ts new file mode 100644 index 0000000000000..2698cd05ed99d --- /dev/null +++ b/tests/cases/fourslash/jsdocDeprecated_suggestion14.ts @@ -0,0 +1,33 @@ +/// + +// @module: esnext +// @filename: /a.ts +////export const a = 1; +////export const b = 1; + +// @filename: /b.ts +////export { +//// /** @deprecated a is deprecated */ +//// a +////} from "./a"; + +// @filename: /c.ts +////import { [|a|] } from "./b"; +////[|a|] + +goTo.file("/c.ts") + +verify.getSuggestionDiagnostics([ + { + "code": 6385, + "message": "'a' is deprecated.", + "reportsDeprecated": true, + "range": test.ranges()[0] + }, + { + "code": 6385, + "message": "'a' is deprecated.", + "reportsDeprecated": true, + "range": test.ranges()[1] + }, +]); diff --git a/tests/cases/fourslash/jsdocDeprecated_suggestion15.ts b/tests/cases/fourslash/jsdocDeprecated_suggestion15.ts new file mode 100644 index 0000000000000..2878cdc2f016d --- /dev/null +++ b/tests/cases/fourslash/jsdocDeprecated_suggestion15.ts @@ -0,0 +1,38 @@ +/// + +// @module: esnext +// @filename: /a.ts +////export const a = 1; +////export const b = 1; + +// @filename: /b.ts +////export { +//// /** @deprecated a is deprecated */ +//// a +////} from "./a"; + +// @filename: /c.ts +////export { +//// a +////} from "./b"; + +// @filename: /d.ts +////import { [|a|] } from "./c"; +////[|a|] + +goTo.file("/d.ts") + +verify.getSuggestionDiagnostics([ + { + "code": 6385, + "message": "'a' is deprecated.", + "reportsDeprecated": true, + "range": test.ranges()[0] + }, + { + "code": 6385, + "message": "'a' is deprecated.", + "reportsDeprecated": true, + "range": test.ranges()[1] + }, +]); diff --git a/tests/cases/fourslash/jsdocDeprecated_suggestion16.ts b/tests/cases/fourslash/jsdocDeprecated_suggestion16.ts new file mode 100644 index 0000000000000..fafc266d89bdb --- /dev/null +++ b/tests/cases/fourslash/jsdocDeprecated_suggestion16.ts @@ -0,0 +1,27 @@ +/// + +// @module: esnext +// @filename: /a.ts +////const a = 1; +////const b = 1; +////export { a, /** @deprecated b is deprecated */ b } + +// @filename: /b.ts +////import { [|b|] } from "./a"; +////[|b|] + +goTo.file("/b.ts") +verify.getSuggestionDiagnostics([ + { + "code": 6385, + "message": "'b' is deprecated.", + "reportsDeprecated": true, + "range": test.ranges()[0] + }, + { + "code": 6385, + "message": "'b' is deprecated.", + "reportsDeprecated": true, + "range": test.ranges()[1] + }, +]); diff --git a/tests/cases/fourslash/jsdocDeprecated_suggestion17.ts b/tests/cases/fourslash/jsdocDeprecated_suggestion17.ts new file mode 100644 index 0000000000000..2e2353fecdb6a --- /dev/null +++ b/tests/cases/fourslash/jsdocDeprecated_suggestion17.ts @@ -0,0 +1,31 @@ +/// + +// @filename: foo.ts +////interface Foo { +//// /** @deprecated */ +//// [k: string]: any; +//// /** @deprecated please use `.y` instead */ +//// x: number; +//// y: number; +////} +////function f(foo: Foo) { +//// foo.[|x|]; +//// foo.[|y|]; +//// foo.[|z|]; +////} + +const ranges = test.ranges(); +verify.getSuggestionDiagnostics([ + { + "code": 6385, + "message": "'x' is deprecated.", + "reportsDeprecated": true, + "range": ranges[0] + }, + { + "code": 6385, + "message": "'z' is deprecated.", + "reportsDeprecated": true, + "range": ranges[2] + }, +]); diff --git a/tests/cases/fourslash/jsdocParam_suggestion1.ts b/tests/cases/fourslash/jsdocParam_suggestion1.ts new file mode 100644 index 0000000000000..f3c5fca656682 --- /dev/null +++ b/tests/cases/fourslash/jsdocParam_suggestion1.ts @@ -0,0 +1,18 @@ +/// +// @Filename: a.ts +//// /** +//// * @param options - whatever +//// * @param options.zone - equally bad +//// */ +//// declare function bad(options: any): void +//// +//// /** +//// * @param {number} obtuse +//// */ +//// function worse(): void { +//// arguments +//// } + +goTo.file('a.ts') +verify.getSuggestionDiagnostics([]); + diff --git a/tests/cases/fourslash/jsdocPropertyTagCompletion.ts b/tests/cases/fourslash/jsdocPropertyTagCompletion.ts new file mode 100644 index 0000000000000..903806471b071 --- /dev/null +++ b/tests/cases/fourslash/jsdocPropertyTagCompletion.ts @@ -0,0 +1,10 @@ +/// + +/////** +//// * @typedef {Object} Foo +//// * @property {/**/} +//// */ + +verify.completions( + { marker: "", exact: completion.globalTypes }, +); diff --git a/tests/cases/fourslash/jsdocTemplateTagCompletion.ts b/tests/cases/fourslash/jsdocTemplateTagCompletion.ts new file mode 100644 index 0000000000000..bca1287fd6a33 --- /dev/null +++ b/tests/cases/fourslash/jsdocTemplateTagCompletion.ts @@ -0,0 +1,11 @@ +/// + +/////** +//// * @template {/**/} T +//// * @typedef {Object} Foo +//// * @property {T} foo +//// */ + +verify.completions( + { marker: "", exact: completion.globalTypes }, +); diff --git a/tests/cases/fourslash/jsdocTypedefTagTypeExpressionCompletion.ts b/tests/cases/fourslash/jsdocTypedefTagTypeExpressionCompletion.ts index 0e59153981d8d..9f5c8112edd05 100644 --- a/tests/cases/fourslash/jsdocTypedefTagTypeExpressionCompletion.ts +++ b/tests/cases/fourslash/jsdocTypedefTagTypeExpressionCompletion.ts @@ -62,18 +62,17 @@ verify.completions( { marker: "valueMemberOfFooInstance", exact: [ - { name: "property1", kind: "property" }, { name: "method3", kind: "method" }, { name: "method4", kind: "method" }, + { name: "property1", kind: "property" }, ], }, { marker: "valueMemberOfFoo", - exact: [ - { name: "prototype", sortText: completion.SortText.LocationPriority }, + exact: completion.functionMembersPlus([ { name: "method1", kind: "method", kindModifiers: "static", sortText: completion.SortText.LocalDeclarationPriority }, - ...completion.functionMembers, - ], + { name: "prototype", sortText: completion.SortText.LocationPriority }, + ]), }, { marker: "propertyName", diff --git a/tests/cases/fourslash/jsxAttributeCompletionStyleAuto.ts b/tests/cases/fourslash/jsxAttributeCompletionStyleAuto.ts index dc7463df4b407..c3814c5fdc13a 100644 --- a/tests/cases/fourslash/jsxAttributeCompletionStyleAuto.ts +++ b/tests/cases/fourslash/jsxAttributeCompletionStyleAuto.ts @@ -31,25 +31,21 @@ verify.completions({ { name: "prop_b", insertText: "prop_b=\"$1\"", - replacementSpan: test.ranges()[0], isSnippet: true, }, { name: "prop_c", insertText: "prop_c={$1}", - replacementSpan: test.ranges()[0], isSnippet: true, }, { name: "prop_d", insertText: "prop_d={$1}", - replacementSpan: test.ranges()[0], isSnippet: true, }, { name: "prop_e", insertText: "prop_e=\"$1\"", - replacementSpan: test.ranges()[0], isSnippet: true, }, { @@ -59,13 +55,11 @@ verify.completions({ { name: "prop_g", insertText: "prop_g={$1}", - replacementSpan: test.ranges()[0], isSnippet: true, }, { name: "prop_h", insertText: "prop_h=\"$1\"", - replacementSpan: test.ranges()[0], isSnippet: true, sortText: completion.SortText.OptionalMember, }, @@ -77,13 +71,13 @@ verify.completions({ { name: "prop_j", insertText: "prop_j={$1}", - replacementSpan: test.ranges()[0], isSnippet: true, sortText: completion.SortText.OptionalMember, } ], preferences: { jsxAttributeCompletionStyle: "auto", - includeCompletionsWithSnippetText: true + includeCompletionsWithSnippetText: true, + includeCompletionsWithInsertText: true, } }); \ No newline at end of file diff --git a/tests/cases/fourslash/jsxAttributeCompletionStyleBraces.ts b/tests/cases/fourslash/jsxAttributeCompletionStyleBraces.ts index 051e1bf410d18..cd03ab0546e1e 100644 --- a/tests/cases/fourslash/jsxAttributeCompletionStyleBraces.ts +++ b/tests/cases/fourslash/jsxAttributeCompletionStyleBraces.ts @@ -27,69 +27,60 @@ verify.completions({ { name: "prop_a", insertText: "prop_a={$1}", - replacementSpan: test.ranges()[0], isSnippet: true, }, { name: "prop_b", insertText: "prop_b={$1}", - replacementSpan: test.ranges()[0], isSnippet: true, }, { name: "prop_c", insertText: "prop_c={$1}", - replacementSpan: test.ranges()[0], isSnippet: true, }, { name: "prop_d", insertText: "prop_d={$1}", - replacementSpan: test.ranges()[0], isSnippet: true, }, { name: "prop_e", insertText: "prop_e={$1}", - replacementSpan: test.ranges()[0], isSnippet: true, }, { name: "prop_f", insertText: "prop_f={$1}", - replacementSpan: test.ranges()[0], isSnippet: true, }, { name: "prop_g", insertText: "prop_g={$1}", - replacementSpan: test.ranges()[0], isSnippet: true, }, { name: "prop_h", insertText: "prop_h={$1}", - replacementSpan: test.ranges()[0], isSnippet: true, sortText: completion.SortText.OptionalMember, }, { name: "prop_i", insertText: "prop_i={$1}", - replacementSpan: test.ranges()[0], isSnippet: true, sortText: completion.SortText.OptionalMember, }, { name: "prop_j", insertText: "prop_j={$1}", - replacementSpan: test.ranges()[0], isSnippet: true, sortText: completion.SortText.OptionalMember, } ], preferences: { jsxAttributeCompletionStyle: "braces", - includeCompletionsWithSnippetText: true + includeCompletionsWithSnippetText: true, + includeCompletionsWithInsertText: true, } }); \ No newline at end of file diff --git a/tests/cases/fourslash/jsxAttributeSnippetCompletionAfterTypeArgs.ts b/tests/cases/fourslash/jsxAttributeSnippetCompletionAfterTypeArgs.ts new file mode 100644 index 0000000000000..f22d6a7c86e4f --- /dev/null +++ b/tests/cases/fourslash/jsxAttributeSnippetCompletionAfterTypeArgs.ts @@ -0,0 +1,55 @@ +/// +//@Filename: file.tsx + +////declare const React: any; +//// +////namespace JSX { +//// export interface IntrinsicElements { +//// div: any; +//// } +////} +//// +////function GenericElement(props: {xyz?: T}) { +//// return <> +////} +//// +////function fn1() { +//// return
+//// /*1*/ /> +////
+////} +//// +////function fn2() { +//// return <> +//// /*2*/ /> +//// +////} +////function fn3() { +//// return
+//// /*3*/ > +////
+////} +//// +////function fn4() { +//// return <> +//// /*4*/ > +//// +////} + +verify.completions( + { + marker: test.markers(), + includes: { + name: "xyz", + insertText: "xyz={$1}", + text: "(property) xyz?: number", + isSnippet: true, + sortText: completion.SortText.OptionalMember + }, + preferences: { + jsxAttributeCompletionStyle: "braces", + includeCompletionsWithSnippetText: true, + includeCompletionsWithInsertText: true, + }, + }, +) diff --git a/tests/cases/fourslash/jsxAttributeSnippetCompletionClosed.ts b/tests/cases/fourslash/jsxAttributeSnippetCompletionClosed.ts new file mode 100644 index 0000000000000..993561b53f537 --- /dev/null +++ b/tests/cases/fourslash/jsxAttributeSnippetCompletionClosed.ts @@ -0,0 +1,74 @@ +/// +//@Filename: file.tsx +////interface NestedInterface { +//// Foo: NestedInterface; +//// (props: {className?: string}): any; +////} +//// +////declare const Foo: NestedInterface; +//// +////function fn1() { +//// return +//// +//// +////} +////function fn2() { +//// return +//// +//// +////} +////function fn3() { +//// return +//// +//// +////} +////function fn4() { +//// return +//// +//// +////} +////function fn5() { +//// return +//// +//// +////} +////function fn6() { +//// return +//// +//// +////} +////function fn7() { +//// return +////} +////function fn8() { +//// return +////} +////function fn9() { +//// return +////} +////function fn10() { +//// return +////} +////function fn11() { +//// return +////} + +var preferences: FourSlashInterface.UserPreferences = { + jsxAttributeCompletionStyle: "braces", + includeCompletionsWithSnippetText: true, + includeCompletionsWithInsertText: true, +}; + +verify.completions( + { marker: "1", preferences, includes: { name: "className", insertText: "className={$1}", text: "(property) className?: string", isSnippet: true, sortText: completion.SortText.OptionalMember } }, + { marker: "2", preferences, includes: { name: "className", insertText: "className={$1}", text: "(property) className?: string", isSnippet: true, sortText: completion.SortText.OptionalMember } }, + { marker: "3", preferences, includes: { name: "className", insertText: "className={$1}", text: "(property) className?: string", isSnippet: true, sortText: completion.SortText.OptionalMember } }, + { marker: "4", preferences, includes: { name: "className", insertText: "className={$1}", text: "(property) className?: string", isSnippet: true, sortText: completion.SortText.OptionalMember } }, + { marker: "5", preferences, includes: { name: "className", insertText: "className={$1}", text: "(property) className?: string", isSnippet: true, sortText: completion.SortText.OptionalMember } }, + { marker: "6", preferences, includes: { name: "className", insertText: "className={$1}", text: "(property) className?: string", isSnippet: true, sortText: completion.SortText.OptionalMember } }, + { marker: "7", preferences, includes: { name: "className", insertText: "className={$1}", text: "(property) className?: string", isSnippet: true, sortText: completion.SortText.OptionalMember } }, + { marker: "8", preferences, includes: { name: "className", insertText: "className={$1}", text: "(property) className?: string", isSnippet: true, sortText: completion.SortText.OptionalMember } }, + { marker: "9", preferences, includes: { name: "className", insertText: "className={$1}", text: "(property) className?: string", isSnippet: true, sortText: completion.SortText.OptionalMember } }, + { marker: "10", preferences, includes: { name: "className", insertText: "className={$1}", text: "(property) className?: string", isSnippet: true, sortText: completion.SortText.OptionalMember } }, + { marker: "11", preferences, includes: { name: "className", insertText: "className={$1}", text: "(property) className?: string", isSnippet: true, sortText: completion.SortText.OptionalMember } }, +) diff --git a/tests/cases/fourslash/jsxAttributeSnippetCompletionUnclosed.ts b/tests/cases/fourslash/jsxAttributeSnippetCompletionUnclosed.ts new file mode 100644 index 0000000000000..5816f56500d10 --- /dev/null +++ b/tests/cases/fourslash/jsxAttributeSnippetCompletionUnclosed.ts @@ -0,0 +1,74 @@ +/// +//@Filename: file.tsx +////interface NestedInterface { +//// Foo: NestedInterface; +//// (props: {className?: string}): any; +////} +//// +////declare const Foo: NestedInterface; +//// +////function fn1() { +//// return +//// +////} +////function fn2() { +//// return +//// +////} +////function fn3() { +//// return +//// +////} +////function fn4() { +//// return +//// +////} +////function fn5() { +//// return +//// +////} +////function fn6() { +//// return +//// +////} +////function fn7() { +//// return .renderItem: (item: number) => string"); verify.quickInfoAt("1", "(parameter) item: number"); verify.quickInfoAt("2", `(property) PropsA.name: "A"`, 'comments for A'); -verify.quickInfoAt("3", "(JSX attribute) PropsA.renderItem: (item: number) => string"); +verify.quickInfoAt("3", "(property) PropsA.renderItem: (item: number) => string"); verify.quickInfoAt("4", "(parameter) item: number"); -verify.quickInfoAt("5", `(JSX attribute) PropsA.name: "A"`, 'comments for A'); +verify.quickInfoAt("5", `(property) PropsA.name: "A"`, 'comments for A'); diff --git a/tests/cases/fourslash/jsxTagNameCompletionClosed.ts b/tests/cases/fourslash/jsxTagNameCompletionClosed.ts new file mode 100644 index 0000000000000..144c53ba60654 --- /dev/null +++ b/tests/cases/fourslash/jsxTagNameCompletionClosed.ts @@ -0,0 +1,54 @@ +/// +//@Filename: file.tsx +////interface NestedInterface { +//// Foo: NestedInterface; +//// (props: {}): any; +////} +//// +////declare const Foo: NestedInterface; +//// +////function fn1() { +//// return +//// +//// +////} +////function fn2() { +//// return +//// +//// +////} +////function fn3() { +//// return +//// +//// +////} +////function fn4() { +//// return +//// +//// +////} +////function fn5() { +//// return +//// +//// +////} +////function fn6() { +//// return +//// +//// +////} + +var preferences: FourSlashInterface.UserPreferences = { + jsxAttributeCompletionStyle: "braces", + includeCompletionsWithSnippetText: true, + includeCompletionsWithInsertText: true, +}; + +verify.completions( + { marker: "1", preferences, includes: { name: "Foo", text: "const Foo: NestedInterface" } }, + { marker: "2", preferences, includes: { name: "Foo", text: "const Foo: NestedInterface" } }, + { marker: "3", preferences, includes: { name: "Foo", text: "(property) NestedInterface.Foo: NestedInterface" } }, + { marker: "4", preferences, includes: { name: "Foo", text: "(property) NestedInterface.Foo: NestedInterface" } }, + { marker: "5", preferences, includes: { name: "Foo", text: "(property) NestedInterface.Foo: NestedInterface" } }, + { marker: "6", preferences, includes: { name: "Foo", text: "(property) NestedInterface.Foo: NestedInterface" } }, +) diff --git a/tests/cases/fourslash/jsxTagNameCompletionUnclosed.ts b/tests/cases/fourslash/jsxTagNameCompletionUnclosed.ts new file mode 100644 index 0000000000000..515c631c75ec0 --- /dev/null +++ b/tests/cases/fourslash/jsxTagNameCompletionUnclosed.ts @@ -0,0 +1,54 @@ +/// +//@Filename: file.tsx +////interface NestedInterface { +//// Foo: NestedInterface; +//// (props: {}): any; +////} +//// +////declare const Foo: NestedInterface; +//// +////function fn1() { +//// return +//// +////} +////function fn2() { +//// return +//// +////} +////function fn3() { +//// return +//// +////} +////function fn4() { +//// return +//// +////} +////function fn5() { +//// return +//// +////} +////function fn6() { +//// return +//// +////} + +var preferences: FourSlashInterface.UserPreferences = { + jsxAttributeCompletionStyle: "braces", + includeCompletionsWithSnippetText: true, + includeCompletionsWithInsertText: true, +}; + +verify.completions( + { marker: "1", preferences, includes: { name: "Foo", text: "const Foo: NestedInterface" } }, + { marker: "2", preferences, includes: { name: "Foo", text: "const Foo: NestedInterface" } }, + { marker: "3", preferences, includes: { name: "Foo", text: "(property) NestedInterface.Foo: NestedInterface" } }, + { marker: "4", preferences, includes: { name: "Foo", text: "(property) NestedInterface.Foo: NestedInterface" } }, + { marker: "5", preferences, includes: { name: "Foo", text: "(property) NestedInterface.Foo: NestedInterface" } }, + { marker: "6", preferences, includes: { name: "Foo", text: "(property) NestedInterface.Foo: NestedInterface" } }, +) diff --git a/tests/cases/fourslash/jsxTagNameCompletionUnderElementClosed.ts b/tests/cases/fourslash/jsxTagNameCompletionUnderElementClosed.ts new file mode 100644 index 0000000000000..9d7e522ad1606 --- /dev/null +++ b/tests/cases/fourslash/jsxTagNameCompletionUnderElementClosed.ts @@ -0,0 +1,35 @@ +/// +//@Filename: file.tsx +////declare namespace JSX { +//// interface IntrinsicElements { +//// button: any; +//// div: any; +//// } +////} +////function fn() { +//// return <> +//// +//// ; +////} +////function fn2() { +//// return <> +//// preceding junk +//// ; +////} +////function fn3() { +//// return <> +//// +//// ; +////} + +var preferences: FourSlashInterface.UserPreferences = { + jsxAttributeCompletionStyle: "braces", + includeCompletionsWithSnippetText: true, + includeCompletionsWithInsertText: true, +}; + +verify.completions( + { marker: "1", preferences, includes: { name: "button", text: "(property) JSX.IntrinsicElements.button: any" } }, + { marker: "2", preferences, includes: { name: "button", text: "(property) JSX.IntrinsicElements.button: any" } }, + { marker: "3", preferences, includes: { name: "button", text: "(property) JSX.IntrinsicElements.button: any" } }, +) diff --git a/tests/cases/fourslash/jsxTagNameCompletionUnderElementUnclosed.ts b/tests/cases/fourslash/jsxTagNameCompletionUnderElementUnclosed.ts new file mode 100644 index 0000000000000..db243b1102558 --- /dev/null +++ b/tests/cases/fourslash/jsxTagNameCompletionUnderElementUnclosed.ts @@ -0,0 +1,35 @@ +/// +//@Filename: file.tsx +////declare namespace JSX { +//// interface IntrinsicElements { +//// button: any; +//// div: any; +//// } +////} +////function fn() { +//// return <> +//// ; +////} +////function fn2() { +//// return <> +//// preceding junk ; +////} +////function fn3() { +//// return <> +//// ; +////} + +var preferences: FourSlashInterface.UserPreferences = { + jsxAttributeCompletionStyle: "braces", + includeCompletionsWithSnippetText: true, + includeCompletionsWithInsertText: true, +}; + +verify.completions( + { marker: "1", preferences, includes: { name: "button", text: "(property) JSX.IntrinsicElements.button: any" } }, + { marker: "2", preferences, includes: { name: "button", text: "(property) JSX.IntrinsicElements.button: any" } }, + { marker: "3", preferences, includes: { name: "button", text: "(property) JSX.IntrinsicElements.button: any" } }, +) diff --git a/tests/cases/fourslash/memberCompletionOnTypeParameters.ts b/tests/cases/fourslash/memberCompletionOnTypeParameters.ts index a29c1df6f9092..64ea014b975d6 100644 --- a/tests/cases/fourslash/memberCompletionOnTypeParameters.ts +++ b/tests/cases/fourslash/memberCompletionOnTypeParameters.ts @@ -16,5 +16,5 @@ verify.completions( { marker: "S", exact: undefined }, { marker: ["T", "V"], exact: [{ name: "x", text: "(property) IFoo.x: number" }, { name: "y", text: "(property) IFoo.y: string" }]}, - { marker: "U", exact: ["constructor", "toString", "toLocaleString", "valueOf", "hasOwnProperty", "isPrototypeOf", "propertyIsEnumerable"] }, + { marker: "U", unsorted: ["constructor", "toString", "toLocaleString", "valueOf", "hasOwnProperty", "isPrototypeOf", "propertyIsEnumerable"] }, ); diff --git a/tests/cases/fourslash/memberListOfModuleInAnotherModule.ts b/tests/cases/fourslash/memberListOfModuleInAnotherModule.ts index 0fd2d19631509..657b31d035330 100644 --- a/tests/cases/fourslash/memberListOfModuleInAnotherModule.ts +++ b/tests/cases/fourslash/memberListOfModuleInAnotherModule.ts @@ -21,13 +21,13 @@ ////} const values: ReadonlyArray = [ - { name: "meFunc", text: "function mod1.meFunc(): void" }, - { name: "meX", text: "var mod1.meX: number" }, { name: "meClass", text: "class mod1.meClass" }, + { name: "meFunc", text: "function mod1.meFunc(): void" }, { name: "meMod", text: "namespace mod1.meMod" }, + { name: "meX", text: "var mod1.meX: number" }, ]; verify.completions( - { marker: "1", exact: [...values, { name: "meInt", text: "interface mod1.meInt" }] }, + { marker: "1", unsorted: [...values, { name: "meInt", text: "interface mod1.meInt" }] }, { marker: "2", exact: values }, { marker: "3", exact: { name: "iMex", text: "var mod1.meMod.iMex: number" } }, ); diff --git a/tests/cases/fourslash/memberListOnExplicitThis.ts b/tests/cases/fourslash/memberListOnExplicitThis.ts index b437e3c70a6bf..4b91d54b10458 100644 --- a/tests/cases/fourslash/memberListOnExplicitThis.ts +++ b/tests/cases/fourslash/memberListOnExplicitThis.ts @@ -16,10 +16,10 @@ verify.completions( { marker: "1", exact: [ - { name: "n", text: "(property) C1.n: number" }, - { name: "m", text: "(property) C1.m: number" }, { name: "f", text: "(method) C1.f(this: this): void" }, { name: "g", text: "(method) C1.g(this: Restricted): void" }, + { name: "m", text: "(property) C1.m: number" }, + { name: "n", text: "(property) C1.n: number" }, ], }, { diff --git a/tests/cases/fourslash/memberListOnThisInClassWithPrivates.ts b/tests/cases/fourslash/memberListOnThisInClassWithPrivates.ts index edc7432ab0773..8e04308d371b6 100644 --- a/tests/cases/fourslash/memberListOnThisInClassWithPrivates.ts +++ b/tests/cases/fourslash/memberListOnThisInClassWithPrivates.ts @@ -10,9 +10,9 @@ verify.completions({ marker: "", exact: [ - { name: "pubMeth", text: "(method) C1.pubMeth(): void" }, { name: "privMeth", text: "(method) C1.privMeth(): void" }, - { name: "pubProp", text: "(property) C1.pubProp: number" }, { name: "privProp", text: "(property) C1.privProp: number" }, + { name: "pubMeth", text: "(method) C1.pubMeth(): void" }, + { name: "pubProp", text: "(property) C1.pubProp: number" }, ], }) diff --git a/tests/cases/fourslash/multiModuleClodule.ts b/tests/cases/fourslash/multiModuleClodule.ts index 43cb3875eb206..8620987dd85b8 100644 --- a/tests/cases/fourslash/multiModuleClodule.ts +++ b/tests/cases/fourslash/multiModuleClodule.ts @@ -23,14 +23,13 @@ verify.completions( { marker: "1", includes: "C" }, { marker: ["2", "4"], - exact: [ - { name: "prototype", sortText: completion.SortText.LocationPriority }, + exact: completion.functionMembersPlus([ { name: "boo", sortText: completion.SortText.LocalDeclarationPriority }, - { name: "x", sortText: completion.SortText.LocationPriority }, { name: "foo", sortText: completion.SortText.LocationPriority }, - ...completion.functionMembers - ] + { name: "prototype", sortText: completion.SortText.LocationPriority }, + { name: "x", sortText: completion.SortText.LocationPriority }, + ]) }, - { marker: "3", exact: ["foo", "bar"] }, + { marker: "3", exact: ["bar", "foo"] }, ); verify.noErrors(); diff --git a/tests/cases/fourslash/navbarForDoubleAmbientModules01.ts b/tests/cases/fourslash/navbarForDoubleAmbientModules01.ts new file mode 100644 index 0000000000000..2841f3e548d8d --- /dev/null +++ b/tests/cases/fourslash/navbarForDoubleAmbientModules01.ts @@ -0,0 +1,24 @@ +/// + +//// declare module "foo"; +//// declare module "foo"; + +verify.navigationBar([ + { + "text": "", + "kind": "script", + "childItems": [ + { + "text": "\"foo\"", + "kind": "module", + "kindModifiers": "declare" + } + ] + }, + { + "text": "\"foo\"", + "kind": "module", + "kindModifiers": "declare", + "indent": 1 + } +]); \ No newline at end of file diff --git a/tests/cases/fourslash/nonExistingImport.ts b/tests/cases/fourslash/nonExistingImport.ts index ebcc989253454..32e56f38ebae4 100644 --- a/tests/cases/fourslash/nonExistingImport.ts +++ b/tests/cases/fourslash/nonExistingImport.ts @@ -5,4 +5,4 @@ //// var n: num/*1*/ ////} -verify.completions({ marker: "1", exact: ["foo", ...completion.globalTypes] }); +verify.completions({ marker: "1", exact: completion.globalTypesPlus(["foo"]) }); diff --git a/tests/cases/fourslash/organizeImports8.ts b/tests/cases/fourslash/organizeImports8.ts new file mode 100644 index 0000000000000..e2eecae7672f2 --- /dev/null +++ b/tests/cases/fourslash/organizeImports8.ts @@ -0,0 +1,9 @@ +/// + +////import { foo as foo } from "foo"; +////foo; + +verify.organizeImports( +`import { foo } from "foo"; +foo;` +); diff --git a/tests/cases/fourslash/organizeImports9.ts b/tests/cases/fourslash/organizeImports9.ts new file mode 100644 index 0000000000000..af1010b564904 --- /dev/null +++ b/tests/cases/fourslash/organizeImports9.ts @@ -0,0 +1,9 @@ +/// + +////import { a as a, b, c, d as d, e as e } from "foo"; +////a(b, d); + +verify.organizeImports( +`import { a, b, d } from "foo"; +a(b, d);` +); diff --git a/tests/cases/fourslash/organizeImportsReactJsx.ts b/tests/cases/fourslash/organizeImportsReactJsx.ts new file mode 100644 index 0000000000000..38529f1bd0e7a --- /dev/null +++ b/tests/cases/fourslash/organizeImportsReactJsx.ts @@ -0,0 +1,33 @@ +/// + +// @allowSyntheticDefaultImports: true +// @moduleResolution: node +// @noUnusedLocals: true +// @target: es2018 +// @jsx: react-jsx + +// @filename: test.tsx +////import React from 'react'; +////export default () =>
+ +// @filename: node_modules/react/package.json +////{ +//// "name": "react", +//// "types": "index.d.ts", +////} + +// @filename: node_modules/react/index.d.ts +////export = React; +////declare namespace JSX { +//// interface IntrinsicElements { [x: string]: any; } +////} +////declare namespace React {} + +// @filename: node_modules/react/jsx-runtime.d.ts +////import './'; + +// @filename: node_modules/react/jsx-dev-runtime.d.ts +////import './'; + +goTo.file("test.tsx"); +verify.organizeImports(`export default () =>
`); diff --git a/tests/cases/fourslash/organizeImportsReactJsxDev.ts b/tests/cases/fourslash/organizeImportsReactJsxDev.ts new file mode 100644 index 0000000000000..0bf5b4f884867 --- /dev/null +++ b/tests/cases/fourslash/organizeImportsReactJsxDev.ts @@ -0,0 +1,33 @@ +/// + +// @allowSyntheticDefaultImports: true +// @moduleResolution: node +// @noUnusedLocals: true +// @target: es2018 +// @jsx: react-jsxdev + +// @filename: test.tsx +////import React from 'react'; +////export default () =>
+ +// @filename: node_modules/react/package.json +////{ +//// "name": "react", +//// "types": "index.d.ts", +////} + +// @filename: node_modules/react/index.d.ts +////export = React; +////declare namespace JSX { +//// interface IntrinsicElements { [x: string]: any; } +////} +////declare namespace React {} + +// @filename: node_modules/react/jsx-runtime.d.ts +////import './'; + +// @filename: node_modules/react/jsx-dev-runtime.d.ts +////import './'; + +goTo.file("test.tsx"); +verify.organizeImports(`export default () =>
`); diff --git a/tests/cases/fourslash/outliningSpansForArrowFunctionBody.ts b/tests/cases/fourslash/outliningSpansForArrowFunctionBody.ts index 7dfc6e8ec2735..2a970c1342ea4 100644 --- a/tests/cases/fourslash/outliningSpansForArrowFunctionBody.ts +++ b/tests/cases/fourslash/outliningSpansForArrowFunctionBody.ts @@ -5,7 +5,7 @@ //// () =>[| { //// 42 //// }|]; -//// () =>[| ( +//// () => [|( //// 42 //// )|]; //// () =>[| "foo" + diff --git a/tests/cases/fourslash/outliningSpansForParenthesizedExpression.ts b/tests/cases/fourslash/outliningSpansForParenthesizedExpression.ts new file mode 100644 index 0000000000000..54ec56bdd0156 --- /dev/null +++ b/tests/cases/fourslash/outliningSpansForParenthesizedExpression.ts @@ -0,0 +1,33 @@ +/// + +////const a = [|( +//// true +//// ? true +//// : false +//// ? true +//// : false +////)|]; +//// +////const b = ( 1 ); +//// +////const c = [|( +//// 1 +////)|]; +//// +////( 1 ); +//// +////[|( +//// [|( +//// [|( +//// 1 +//// )|] +//// )|] +////)|]; +//// +////[|( +//// [|( +//// ( 1 ) +//// )|] +////)|]; + +verify.outliningSpansInCurrentFile(test.ranges()); diff --git a/tests/cases/fourslash/parserCorruptionAfterMapInClass.ts b/tests/cases/fourslash/parserCorruptionAfterMapInClass.ts new file mode 100644 index 0000000000000..65bc6c5b1ad70 --- /dev/null +++ b/tests/cases/fourslash/parserCorruptionAfterMapInClass.ts @@ -0,0 +1,17 @@ +/// + +// @target: esnext +// @lib: es2015 +// @strict: true + +//// class C { +//// map = new Set/*$*/ +//// +//// foo() { +//// +//// } +//// } + +goTo.marker('$'); +edit.insert('()'); +verify.getSyntacticDiagnostics([]); diff --git a/tests/cases/fourslash/protoVarInContextualObjectLiteral.ts b/tests/cases/fourslash/protoVarInContextualObjectLiteral.ts index 68a155674358b..80ef7153cfb95 100644 --- a/tests/cases/fourslash/protoVarInContextualObjectLiteral.ts +++ b/tests/cases/fourslash/protoVarInContextualObjectLiteral.ts @@ -44,30 +44,30 @@ const proto: FourSlashInterface.ExpectedCompletionEntry = { name: "__proto__", t const protoQuoted: FourSlashInterface.ExpectedCompletionEntry = { name: "__proto__", text: '(property) "__proto__": number' }; const p: FourSlashInterface.ExpectedCompletionEntry = { name: "p", text: "(property) p: number" }; -verify.completions({ marker: "1", exact: [proto, p] }); +verify.completions({ marker: "1", unsorted: [proto, p] }); edit.insert('__proto__: 10,'); verify.completions({ exact: p }); -verify.completions({ marker: "2", exact: [proto, p] }); +verify.completions({ marker: "2", unsorted: [proto, p] }); edit.insert('"__proto__": 10,'); verify.completions({ exact: p }); -verify.completions({ marker: "3", exact: [protoQuoted, p] }) +verify.completions({ marker: "3", unsorted: [protoQuoted, p] }) edit.insert('__proto__: 10,'); verify.completions({ exact: p }); -verify.completions({ marker: "4", exact: [protoQuoted, p] }); +verify.completions({ marker: "4", unsorted: [protoQuoted, p] }); edit.insert('"__proto__": 10,'); verify.completions({ exact: p }); -verify.completions({ marker: "5", exact: [proto, tripleProto, p] }); +verify.completions({ marker: "5", unsorted: [proto, tripleProto, p] }); edit.insert('__proto__: 10,'); -verify.completions({ exact: [tripleProto, p] }); +verify.completions({ unsorted: [tripleProto, p] }); edit.insert('"___proto__": "10",'); verify.completions({ exact: p }); -verify.completions({ marker: "6", exact: [proto, tripleProto, p] }); +verify.completions({ marker: "6", unsorted: [proto, tripleProto, p] }); edit.insert('___proto__: "10",'); -verify.completions({ exact: [proto, p] }); +verify.completions({ unsorted: [proto, p] }); edit.insert('"__proto__": 10,'); verify.completions({ exact: p }); diff --git a/tests/cases/fourslash/quickInfoDisplayPartsEnum4.ts b/tests/cases/fourslash/quickInfoDisplayPartsEnum4.ts new file mode 100644 index 0000000000000..704063d744b13 --- /dev/null +++ b/tests/cases/fourslash/quickInfoDisplayPartsEnum4.ts @@ -0,0 +1,10 @@ +/// + +////const enum Foo { +//// "\t" = 9, +//// "\u007f" = 127, +////} +////Foo[/*1*/"\t"] +////Foo[/*2*/"\u007f"] + +verify.baselineQuickInfo(); diff --git a/tests/cases/fourslash/quickInfoForArgumentsPropertyNameInJsMode1.ts b/tests/cases/fourslash/quickInfoForArgumentsPropertyNameInJsMode1.ts new file mode 100644 index 0000000000000..fb13ea4c59dc6 --- /dev/null +++ b/tests/cases/fourslash/quickInfoForArgumentsPropertyNameInJsMode1.ts @@ -0,0 +1,16 @@ +/// + +// @allowJs: true +// @filename: a.js + +////const foo = { +//// f1: (params) => { } +////} +//// +////function /*1*/f2(x) { +//// foo.f1({ x, arguments: [] }); +////} +//// +/////*2*/f2(''); + +verify.baselineQuickInfo(); diff --git a/tests/cases/fourslash/quickInfoForArgumentsPropertyNameInJsMode2.ts b/tests/cases/fourslash/quickInfoForArgumentsPropertyNameInJsMode2.ts new file mode 100644 index 0000000000000..51aec33bc2e13 --- /dev/null +++ b/tests/cases/fourslash/quickInfoForArgumentsPropertyNameInJsMode2.ts @@ -0,0 +1,12 @@ +/// + +// @allowJs: true +// @filename: a.js + +////function /*1*/f(x) { +//// arguments; +////} +//// +/////*2*/f(''); + +verify.baselineQuickInfo(); diff --git a/tests/cases/fourslash/quickInfoForConstAssertions.ts b/tests/cases/fourslash/quickInfoForConstAssertions.ts new file mode 100644 index 0000000000000..d87d7c7c1e536 --- /dev/null +++ b/tests/cases/fourslash/quickInfoForConstAssertions.ts @@ -0,0 +1,8 @@ +/// + +////const a = { a: 1 } as /*1*/const; +////const b = 1 as /*2*/const; +////const c = "c" as /*3*/const; +////const d = [1, 2] as /*4*/const; + +verify.baselineQuickInfo(); diff --git a/tests/cases/fourslash/quickInfoForGetterAndSetter.ts b/tests/cases/fourslash/quickInfoForGetterAndSetter.ts index 723836488c235..e979592becd7e 100644 --- a/tests/cases/fourslash/quickInfoForGetterAndSetter.ts +++ b/tests/cases/fourslash/quickInfoForGetterAndSetter.ts @@ -17,7 +17,7 @@ //// } goTo.marker("1"); -verify.quickInfoIs("(property) Test.value: any", "Getter text"); +verify.quickInfoIs("(getter) Test.value: any", "Getter text"); goTo.marker("2"); -verify.quickInfoIs("(property) Test.value: any", "Setter text"); +verify.quickInfoIs("(setter) Test.value: any", "Setter text"); diff --git a/tests/cases/fourslash/quickInfoForJSDocWithUnresolvedHttpLinks.ts b/tests/cases/fourslash/quickInfoForJSDocWithUnresolvedHttpLinks.ts new file mode 100644 index 0000000000000..eb892b9ce1945 --- /dev/null +++ b/tests/cases/fourslash/quickInfoForJSDocWithUnresolvedHttpLinks.ts @@ -0,0 +1,12 @@ +/// +// @checkJs: true +// @filename: quickInfoForJSDocWithHttpLinks.js +// #46734 + +//// /** @see {@link https://hva} */ +//// var /*5*/see2 = true +//// +//// /** {@link https://hvaD} */ +//// var /*6*/see3 = true + +verify.baselineQuickInfo(); diff --git a/tests/cases/fourslash/quickInfoForObjectBindingElementName03.ts b/tests/cases/fourslash/quickInfoForObjectBindingElementName03.ts new file mode 100644 index 0000000000000..4ead56c90ed39 --- /dev/null +++ b/tests/cases/fourslash/quickInfoForObjectBindingElementName03.ts @@ -0,0 +1,14 @@ +/// + +////interface Options { +//// /** +//// * A description of foo +//// */ +//// foo: string; +////} +//// +////function f({ foo }: Options) { +//// foo/*1*/; +////} + +verify.baselineQuickInfo(); diff --git a/tests/cases/fourslash/quickInfoForObjectBindingElementName04.ts b/tests/cases/fourslash/quickInfoForObjectBindingElementName04.ts new file mode 100644 index 0000000000000..c9844cb13ef32 --- /dev/null +++ b/tests/cases/fourslash/quickInfoForObjectBindingElementName04.ts @@ -0,0 +1,20 @@ +/// + +////interface Options { +//// /** +//// * A description of 'a' +//// */ +//// a: { +//// /** +//// * A description of 'b' +//// */ +//// b: string; +//// } +////} +//// +////function f({ a, a: { b } }: Options) { +//// a/*1*/; +//// b/*2*/; +////} + +verify.baselineQuickInfo(); diff --git a/tests/cases/fourslash/quickInfoForObjectBindingElementName05.ts b/tests/cases/fourslash/quickInfoForObjectBindingElementName05.ts new file mode 100644 index 0000000000000..defde63601945 --- /dev/null +++ b/tests/cases/fourslash/quickInfoForObjectBindingElementName05.ts @@ -0,0 +1,17 @@ +/// + +////interface A { +//// /** +//// * A description of a +//// */ +//// a: number; +////} +////interface B { +//// a: string; +////} +//// +////function f({ a }: A | B) { +//// a/**/; +////} + +verify.baselineQuickInfo(); diff --git a/tests/cases/fourslash/quickInfoGetterSetter.ts b/tests/cases/fourslash/quickInfoGetterSetter.ts index 23ad0bc87e918..6e268eac8c458 100644 --- a/tests/cases/fourslash/quickInfoGetterSetter.ts +++ b/tests/cases/fourslash/quickInfoGetterSetter.ts @@ -15,6 +15,6 @@ //// instance./*setterUse*/myValue = instance./*getterUse*/myValue; verify.quickInfoAt("getterUse", "(property) C.myValue: Promise"); -verify.quickInfoAt("getterDef", "(property) C.myValue: Promise"); +verify.quickInfoAt("getterDef", "(getter) C.myValue: Promise"); verify.quickInfoAt("setterUse", "(property) C.myValue: string | Promise"); -verify.quickInfoAt("setterDef", "(property) C.myValue: string | Promise"); +verify.quickInfoAt("setterDef", "(setter) C.myValue: string | Promise"); diff --git a/tests/cases/fourslash/quickInfoImportMeta.ts b/tests/cases/fourslash/quickInfoImportMeta.ts new file mode 100644 index 0000000000000..928266b860f34 --- /dev/null +++ b/tests/cases/fourslash/quickInfoImportMeta.ts @@ -0,0 +1,19 @@ +/// + +// @module: esnext +// @Filename: foo.ts +/////// +/////// +////im/*1*/port.me/*2*/ta; + +//@Filename: bar.d.ts +/////** +//// * The type of `import.meta`. +//// * +//// * If you need to declare that a given property exists on `import.meta`, +//// * this type may be augmented via interface merging. +//// */ +//// interface ImportMeta { +////} + +verify.baselineQuickInfo() diff --git a/tests/cases/fourslash/quickInfoJsDocGetterSetter.ts b/tests/cases/fourslash/quickInfoJsDocGetterSetter.ts new file mode 100644 index 0000000000000..e1845cbbb5354 --- /dev/null +++ b/tests/cases/fourslash/quickInfoJsDocGetterSetter.ts @@ -0,0 +1,48 @@ +/// + +//// class A { +//// /** +//// * getter A +//// * @returns return A +//// */ +//// get /*1*/x(): string { +//// return ""; +//// } +//// /** +//// * setter A +//// * @param value foo A +//// * @todo empty jsdoc +//// */ +//// set /*2*/x(value) { } +//// } +//// // override both getter and setter +//// class B extends A { +//// /** +//// * getter B +//// * @returns return B +//// */ +//// get /*3*/x(): string { +//// return ""; +//// } +//// /** +//// * setter B +//// * @param value foo B +//// */ +//// set /*4*/x(vale) { } +//// } +//// // not override +//// class C extends A { } +//// // only override setter +//// class D extends A { +//// /** +//// * setter D +//// * @param value foo D +//// */ +//// set /*5*/x(val: string) { } +//// } +//// new A()./*6*/x = "1"; +//// new B()./*7*/x = "1"; +//// new C()./*8*/x = "1"; +//// new D()./*9*/x = "1"; + +verify.baselineQuickInfo(); diff --git a/tests/cases/fourslash/quickInfoJsDocInheritage.ts b/tests/cases/fourslash/quickInfoJsDocInheritage.ts new file mode 100644 index 0000000000000..d68274df9fc2b --- /dev/null +++ b/tests/cases/fourslash/quickInfoJsDocInheritage.ts @@ -0,0 +1,108 @@ +/// + +//// interface A { +//// /** +//// * @description A.foo1 +//// */ +//// foo1: number; +//// /** +//// * @description A.foo2 +//// */ +//// foo2: (para1: string) => number; +//// } +//// +//// interface B { +//// /** +//// * @description B.foo1 +//// */ +//// foo1: number; +//// /** +//// * @description B.foo2 +//// */ +//// foo2: (para2: string) => number; +//// } +//// +//// // implement multi interfaces with duplicate name +//// // method for function signature +//// class C implements A, B { +//// /*1*/foo1: number = 1; +//// /*2*/foo2(q: string) { return 1 } +//// } +//// +//// // implement multi interfaces with duplicate name +//// // property for function signature +//// class D implements A, B { +//// /*3*/foo1: number = 1; +//// /*4*/foo2 = (q: string) => { return 1 } +//// } +//// +//// new C()./*5*/foo1; +//// new C()./*6*/foo2; +//// new D()./*7*/foo1; +//// new D()./*8*/foo2; +//// +//// class Base1 { +//// /** +//// * @description Base1.foo1 +//// */ +//// foo1: number = 1; +//// +//// /** +//// * +//// * @param q Base1.foo2 parameter +//// * @returns Base1.foo2 return +//// */ +//// foo2(q: string) { return 1 } +//// } +//// +//// // extends class and implement interfaces with duplicate name +//// // property override method +//// class Drived1 extends Base1 implements A { +//// /*9*/foo1: number = 1; +//// /*10*/foo2(para1: string) { return 1 }; +//// } +//// +//// // extends class and implement interfaces with duplicate name +//// // method override method +//// class Drived2 extends Base1 implements B { +//// /*11*/foo1: number = 1; +//// /*12*/foo2 = (para1: string) => { return 1; }; +//// } +//// +//// class Base2 { +//// /** +//// * @description Base2.foo1 +//// */ +//// foo1: number = 1; +//// /** +//// * +//// * @param q Base2.foo2 parameter +//// * @returns Base2.foo2 return +//// */ +//// foo2(q: string) { return 1 } +//// } +//// +//// // extends class and implement interfaces with duplicate name +//// // property override method +//// class Drived3 extends Base2 implements A { +//// /*13*/foo1: number = 1; +//// /*14*/foo2(para1: string) { return 1 }; +//// } +//// +//// // extends class and implement interfaces with duplicate name +//// // method override method +//// class Drived4 extends Base2 implements B { +//// /*15*/foo1: number = 1; +//// /*16*/foo2 = (para1: string) => { return 1; }; +//// } +//// +//// new Drived1()./*17*/foo1; +//// new Drived1()./*18*/foo2; +//// new Drived2()./*19*/foo1; +//// new Drived2()./*20*/foo2; +//// new Drived3()./*21*/foo1; +//// new Drived3()./*22*/foo2; +//// new Drived4()./*23*/foo1; +//// new Drived4()./*24*/foo2; + +verify.baselineQuickInfo(); diff --git a/tests/cases/fourslash/quickInfoJsDocTags10.ts b/tests/cases/fourslash/quickInfoJsDocTags10.ts new file mode 100644 index 0000000000000..f635da3ee5709 --- /dev/null +++ b/tests/cases/fourslash/quickInfoJsDocTags10.ts @@ -0,0 +1,14 @@ +/// + +// @noEmit: true +// @allowJs: true + +// @Filename: quickInfoJsDocTags10.js +/////** +//// * @param {T1} a +//// * @param {T2} a +//// * @template T1,T2 Comment Text +//// */ +////const /**/foo = (a, b) => {}; + +verify.baselineQuickInfo(); diff --git a/tests/cases/fourslash/quickInfoJsDocTags11.ts b/tests/cases/fourslash/quickInfoJsDocTags11.ts new file mode 100644 index 0000000000000..348940ba09159 --- /dev/null +++ b/tests/cases/fourslash/quickInfoJsDocTags11.ts @@ -0,0 +1,15 @@ +/// + +// @noEmit: true +// @allowJs: true + +// @Filename: quickInfoJsDocTags11.js +/////** +//// * @param {T1} a +//// * @param {T2} b +//// * @template {number} T1 Comment T1 +//// * @template {number} T2 Comment T2 +//// */ +////const /**/foo = (a, b) => {}; + +verify.baselineQuickInfo(); diff --git a/tests/cases/fourslash/quickInfoJsDocTags7.ts b/tests/cases/fourslash/quickInfoJsDocTags7.ts new file mode 100644 index 0000000000000..3cc00ad803b73 --- /dev/null +++ b/tests/cases/fourslash/quickInfoJsDocTags7.ts @@ -0,0 +1,17 @@ +/// + +// @noEmit: true +// @allowJs: true + +// @Filename: quickInfoJsDocTags7.js +/////** +//// * @typedef {{ [x: string]: any, y: number }} Foo +//// */ +//// +/////** +//// * @type {(t: T) => number} +//// * @template T +//// */ +////const /**/foo = t => t.y; + +verify.baselineQuickInfo(); diff --git a/tests/cases/fourslash/quickInfoJsDocTags8.ts b/tests/cases/fourslash/quickInfoJsDocTags8.ts new file mode 100644 index 0000000000000..cc9c5aa160606 --- /dev/null +++ b/tests/cases/fourslash/quickInfoJsDocTags8.ts @@ -0,0 +1,17 @@ +/// + +// @noEmit: true +// @allowJs: true + +// @Filename: quickInfoJsDocTags8.js +/////** +//// * @typedef {{ [x: string]: any, y: number }} Foo +//// */ +//// +/////** +//// * @type {(t: T) => number} +//// * @template {Foo} T +//// */ +////const /**/foo = t => t.y; + +verify.baselineQuickInfo(); diff --git a/tests/cases/fourslash/quickInfoJsDocTags9.ts b/tests/cases/fourslash/quickInfoJsDocTags9.ts new file mode 100644 index 0000000000000..0558786a9ba55 --- /dev/null +++ b/tests/cases/fourslash/quickInfoJsDocTags9.ts @@ -0,0 +1,17 @@ +/// + +// @noEmit: true +// @allowJs: true + +// @Filename: quickInfoJsDocTags9.js +/////** +//// * @typedef {{ [x: string]: any, y: number }} Foo +//// */ +//// +/////** +//// * @type {(t: T) => number} +//// * @template {Foo} T Comment Text +//// */ +////const /**/foo = t => t.y; + +verify.baselineQuickInfo(); diff --git a/tests/cases/fourslash/quickInfoLink4.ts b/tests/cases/fourslash/quickInfoLink4.ts new file mode 100644 index 0000000000000..95e838fac05ef --- /dev/null +++ b/tests/cases/fourslash/quickInfoLink4.ts @@ -0,0 +1,13 @@ +/// + +////type A = 1 | 2; +//// +////switch (0 as A) { +//// /** {@link /**/A} */ +//// case 1: +//// case 2: +//// break; +////} + +verify.noErrors() +verify.baselineQuickInfo(); diff --git a/tests/cases/fourslash/quickInfoLink5.ts b/tests/cases/fourslash/quickInfoLink5.ts new file mode 100644 index 0000000000000..bad5626417b6d --- /dev/null +++ b/tests/cases/fourslash/quickInfoLink5.ts @@ -0,0 +1,9 @@ +/// + +////const A = 123; +/////** +//// * See {@link A| constant A} instead +//// */ +////const /**/B = 456; + +verify.baselineQuickInfo(); diff --git a/tests/cases/fourslash/quickInfoLink6.ts b/tests/cases/fourslash/quickInfoLink6.ts new file mode 100644 index 0000000000000..993064f968482 --- /dev/null +++ b/tests/cases/fourslash/quickInfoLink6.ts @@ -0,0 +1,9 @@ +/// + +////const A = 123; +/////** +//// * See {@link A |constant A} instead +//// */ +////const /**/B = 456; + +verify.baselineQuickInfo(); diff --git a/tests/cases/fourslash/quickInfoLink7.ts b/tests/cases/fourslash/quickInfoLink7.ts new file mode 100644 index 0000000000000..487a2c5d1f616 --- /dev/null +++ b/tests/cases/fourslash/quickInfoLink7.ts @@ -0,0 +1,8 @@ +/// + +/////** +//// * See {@link | } instead +//// */ +////const /**/B = 456; + +verify.baselineQuickInfo(); diff --git a/tests/cases/fourslash/quickInfoLink8.ts b/tests/cases/fourslash/quickInfoLink8.ts new file mode 100644 index 0000000000000..5baf0b9f14e7c --- /dev/null +++ b/tests/cases/fourslash/quickInfoLink8.ts @@ -0,0 +1,9 @@ +/// + +////const A = 123; +/////** +//// * See {@link A | constant A} instead +//// */ +////const /**/B = 456; + +verify.baselineQuickInfo(); diff --git a/tests/cases/fourslash/quickInfoOnClosingJsx.ts b/tests/cases/fourslash/quickInfoOnClosingJsx.ts new file mode 100644 index 0000000000000..bdee39457c91f --- /dev/null +++ b/tests/cases/fourslash/quickInfoOnClosingJsx.ts @@ -0,0 +1,8 @@ +/// + +// @Filename: foo.tsx +////let x =
+//// /*$*/
+ +goTo.marker("$"); +verify.not.quickInfoExists(); diff --git a/tests/cases/fourslash/quickInfoOnThis5.ts b/tests/cases/fourslash/quickInfoOnThis5.ts new file mode 100644 index 0000000000000..d2a36afdabade --- /dev/null +++ b/tests/cases/fourslash/quickInfoOnThis5.ts @@ -0,0 +1,24 @@ +/// +// @noImplicitThis: true +////const foo = { +//// num: 0, +//// f() { +//// type Y = typeof th/*1*/is; +//// type Z = typeof th/*2*/is.num; +//// }, +//// g(this: number) { +//// type X = typeof th/*3*/is; +//// } +////} +////class Foo { +//// num = 0; +//// f() { +//// type Y = typeof th/*4*/is; +//// type Z = typeof th/*5*/is.num; +//// } +//// g(this: number) { +//// type X = typeof th/*6*/is; +//// } +////} + +verify.baselineQuickInfo(); diff --git a/tests/cases/fourslash/quickInfoTypeOnlyImportExport.ts b/tests/cases/fourslash/quickInfoTypeOnlyImportExport.ts new file mode 100644 index 0000000000000..1688d0bdee053 --- /dev/null +++ b/tests/cases/fourslash/quickInfoTypeOnlyImportExport.ts @@ -0,0 +1,71 @@ +/// + +// @Filename: /a.ts +////export type A = number; +////export const A = 42; +////export type B = number; +////export const B = 42; +//// +////type C = number; +////const C = 42; +////export type { C }; +////type D = number; +////const D = 42; +////export { type D ]; + +// @Filename: /b.ts +////import type { A/*1*/ } from './a'; +////import { type B/*2*/ } from './a'; +////import { C/*3*/, D/*4*/ } from './a'; +////export type { A/*5*/ } from './a'; +////export { type B/*6*/ } from './a'; +////export { C/*7*/, D/*8*/ } from './a'; + +verify.quickInfoAt("1", [ + "(alias) type A = number", + "(alias) const A: 42", + "import A", +].join("\n")); + +verify.quickInfoAt("2", [ + "(alias) type B = number", + "(alias) const B: 42", + "import B", +].join("\n")); + +verify.quickInfoAt("3", [ + "(alias) type C = number", + "(alias) const C: 42", + "import C", +].join("\n")); + +verify.quickInfoAt("4", [ + "(alias) type D = number", + "(alias) const D: 42", + "import D", +].join("\n")); + +verify.quickInfoAt("5", [ + "(alias) type A = number", + "(alias) const A: 42", + "export A", +].join("\n")); + +verify.quickInfoAt("6", [ + "(alias) type B = number", + "(alias) const B: 42", + "export B", +].join("\n")); + +verify.quickInfoAt("7", [ + "(alias) type C = number", + "(alias) const C: 42", + "export C", +].join("\n")); + +verify.quickInfoAt("8", [ + "(alias) type D = number", + "(alias) const D: 42", + "export D", +].join("\n")); + diff --git a/tests/cases/fourslash/refactorConvertImport_namedToDefault1.ts b/tests/cases/fourslash/refactorConvertImport_namedToDefault1.ts new file mode 100644 index 0000000000000..ecc259c374566 --- /dev/null +++ b/tests/cases/fourslash/refactorConvertImport_namedToDefault1.ts @@ -0,0 +1,50 @@ +/// + +// @esModuleInterop: true + +// @Filename: /process.d.ts +//// declare module "process" { +//// interface Process { +//// pid: number; +//// addListener(event: string, listener: (...args: any[]) => void): void; +//// } +//// var process: Process; +//// export = process; +//// } + +// @Filename: /url.d.ts +//// declare module "url" { +//// export function parse(urlStr: string): any; +//// } + +// @Filename: /index.ts +//// [|import { pid, addListener } from "process";|] +//// addListener("message", (m) => { +//// console.log(pid); +//// }); + +// @Filename: /a.ts +//// [|import { parse } from "url";|] +//// parse("https://www.typescriptlang.org"); + +goTo.selectRange(test.ranges()[0]); +edit.applyRefactor({ + refactorName: "Convert import", + actionName: "Convert named imports to default import", + actionDescription: "Convert named imports to default import", + newContent: `import process from "process"; +process.addListener("message", (m) => { + console.log(process.pid); +});`, +}); +verify.not.refactorAvailable("Convert import", "Convert named imports to namespace import"); + +goTo.selectRange(test.ranges()[1]); +edit.applyRefactor({ + refactorName: "Convert import", + actionName: "Convert named imports to namespace import", + actionDescription: "Convert named imports to namespace import", + newContent: `import * as url from "url"; +url.parse("https://www.typescriptlang.org");`, +}); +verify.not.refactorAvailable("Convert import", "Convert named imports to default import"); \ No newline at end of file diff --git a/tests/cases/fourslash/refactorConvertParamsToDestructuredObject_arrowFunctionWithSingleParameter.ts b/tests/cases/fourslash/refactorConvertParamsToDestructuredObject_arrowFunctionWithSingleParameter.ts new file mode 100644 index 0000000000000..5c130b3b0e9da --- /dev/null +++ b/tests/cases/fourslash/refactorConvertParamsToDestructuredObject_arrowFunctionWithSingleParameter.ts @@ -0,0 +1,13 @@ +/// + +////const foo = /*a*/(a: number)/*b*/ => { }; +////foo(1); + +goTo.select("a", "b"); +edit.applyRefactor({ + refactorName: "Convert parameters to destructured object", + actionName: "Convert parameters to destructured object", + actionDescription: "Convert parameters to destructured object", + newContent: `const foo = ({ a }: { a: number; }) => { }; +foo({ a: 1 });`, +}); diff --git a/tests/cases/fourslash/refactorConvertStringOrTemplateLiteral_TemplateString13.ts b/tests/cases/fourslash/refactorConvertStringOrTemplateLiteral_TemplateString13.ts new file mode 100644 index 0000000000000..c2d43921461d3 --- /dev/null +++ b/tests/cases/fourslash/refactorConvertStringOrTemplateLiteral_TemplateString13.ts @@ -0,0 +1,11 @@ +/// + +////fetch(/*start*/process.env.API_URL + `/foo/bar?id=${id}&token=${token}`/*end*/); + +goTo.select("start", "end"); +edit.applyRefactor({ + refactorName: "Convert to template string", + actionName: "Convert to template string", + actionDescription: ts.Diagnostics.Convert_to_template_string.message, + newContent: "fetch(`${process.env.API_URL}/foo/bar?id=${id}&token=${token}`);", +}); diff --git a/tests/cases/fourslash/refactorExtractType12.ts b/tests/cases/fourslash/refactorExtractType12.ts index 8c4a9e316e4aa..2ae1d914f5be3 100644 --- a/tests/cases/fourslash/refactorExtractType12.ts +++ b/tests/cases/fourslash/refactorExtractType12.ts @@ -11,7 +11,7 @@ edit.applyRefactor({ refactorName: "Extract type", actionName: "Extract to type alias", actionDescription: "Extract to type alias", - newContent: `type /*RENAME*/NewType = string; + newContent: `type /*RENAME*/NewType = string interface A { a: boolean diff --git a/tests/cases/fourslash/refactorExtractType13.ts b/tests/cases/fourslash/refactorExtractType13.ts index e72eadb2dd136..cc6ba779a9149 100644 --- a/tests/cases/fourslash/refactorExtractType13.ts +++ b/tests/cases/fourslash/refactorExtractType13.ts @@ -11,7 +11,7 @@ edit.applyRefactor({ refactorName: "Extract type", actionName: "Extract to type alias", actionDescription: "Extract to type alias", - newContent: `type /*RENAME*/NewType = boolean; + newContent: `type /*RENAME*/NewType = boolean interface A { a: NewType diff --git a/tests/cases/fourslash/refactorExtractType72.ts b/tests/cases/fourslash/refactorExtractType72.ts new file mode 100644 index 0000000000000..d56f71938e8fd --- /dev/null +++ b/tests/cases/fourslash/refactorExtractType72.ts @@ -0,0 +1,6 @@ +/// + +////export declare function foo(): void; + +goTo.select("a", "b"); +verify.not.refactorAvailable("Extract type", "Extract to type alias"); diff --git a/tests/cases/fourslash/refactorExtractType73.ts b/tests/cases/fourslash/refactorExtractType73.ts new file mode 100644 index 0000000000000..8eab5d632a799 --- /dev/null +++ b/tests/cases/fourslash/refactorExtractType73.ts @@ -0,0 +1,11 @@ +/// + +// @Filename: a.ts +////interface Foo {} + +// @Filename: b.ts +////interface Foo {} + +goTo.file("b.ts"); +goTo.select("a", "b"); +verify.not.refactorAvailable("Extract type", "Extract to type alias"); diff --git a/tests/cases/fourslash/refactorExtractType74.ts b/tests/cases/fourslash/refactorExtractType74.ts new file mode 100644 index 0000000000000..5434c8c9b272f --- /dev/null +++ b/tests/cases/fourslash/refactorExtractType74.ts @@ -0,0 +1,15 @@ +/// + +// @Filename: a.ts +//// interface Foo {} + +// @Filename: b.ts +//// // Some initial comments. +//// // We need to ensure these files have different contents, +//// // so their ranges differ, so we'll start a few lines below in this file. +//// interface Foo {} + +for (const range of test.ranges()) { + goTo.selectRange(range); + verify.not.refactorAvailable("Extract type", "Extract to type alias"); +} diff --git a/tests/cases/fourslash/refactorExtractType75.ts b/tests/cases/fourslash/refactorExtractType75.ts new file mode 100644 index 0000000000000..f213cdd80da13 --- /dev/null +++ b/tests/cases/fourslash/refactorExtractType75.ts @@ -0,0 +1,9 @@ +/// + +// @Filename: a.ts +//// interface Foo {} +//// interface Foo {} + +goTo.file("a.ts"); +goTo.select("a", "b"); +verify.not.refactorAvailable("Extract type", "Extract to type alias"); diff --git a/tests/cases/fourslash/refactorExtractType76.ts b/tests/cases/fourslash/refactorExtractType76.ts new file mode 100644 index 0000000000000..7dc67bf84cb91 --- /dev/null +++ b/tests/cases/fourslash/refactorExtractType76.ts @@ -0,0 +1,17 @@ +/// + +// @Filename: a.ts +////type Deep = /*a*/{ [K in keyof T]: Deep }/*b*/ + +goTo.select("a", "b"); +edit.applyRefactor({ + refactorName: "Extract type", + actionName: "Extract to type alias", + actionDescription: "Extract to type alias", + newContent: +`type /*RENAME*/NewType = { + [K in keyof T]: Deep; +}; + +type Deep = NewType`, +}); diff --git a/tests/cases/fourslash/refactorExtractType77.ts b/tests/cases/fourslash/refactorExtractType77.ts new file mode 100644 index 0000000000000..df449726cb17e --- /dev/null +++ b/tests/cases/fourslash/refactorExtractType77.ts @@ -0,0 +1,21 @@ +/// + +// @Filename: a.ts +////type Expand = T extends any +//// ? /*a*/{ [K in keyof T]: Expand }/*b*/ +//// : never; + +goTo.select("a", "b"); +edit.applyRefactor({ + refactorName: "Extract type", + actionName: "Extract to type alias", + actionDescription: "Extract to type alias", + newContent: +`type /*RENAME*/NewType = { + [K in keyof T]: Expand; +}; + +type Expand = T extends any + ? NewType + : never;`, +}); diff --git a/tests/cases/fourslash/semanticClassificationConstAssertion.ts b/tests/cases/fourslash/semanticClassificationConstAssertion.ts new file mode 100644 index 0000000000000..102cd1034eb0d --- /dev/null +++ b/tests/cases/fourslash/semanticClassificationConstAssertion.ts @@ -0,0 +1,20 @@ +/// + +////1 as const; + +const c1 = classification("original"); +verify.syntacticClassificationsAre( + c1.numericLiteral("1"), + c1.keyword("as"), + c1.keyword("const"), + c1.punctuation(";") +); + + +const c2 = classification("2020"); +verify.syntacticClassificationsAre( + c2.semanticToken("number", "1"), + c2.semanticToken("keyword", "as"), + c2.semanticToken("keyword", "const"), + c2.semanticToken("punctuation", ";") +); diff --git a/tests/cases/fourslash/server/autoImportProvider7.ts b/tests/cases/fourslash/server/autoImportProvider7.ts new file mode 100644 index 0000000000000..d329cea281c77 --- /dev/null +++ b/tests/cases/fourslash/server/autoImportProvider7.ts @@ -0,0 +1,68 @@ +/// + +// @Filename: /tsconfig.json +//// { "compilerOptions": { "module": "commonjs" } } + +// @Filename: /package.json +//// { "dependencies": { "mylib": "file:packages/mylib" } } + +// @Filename: /packages/mylib/package.json +//// { "name": "mylib", "version": "1.0.0", "main": "index.js", "types": "index" } + +// @Filename: /packages/mylib/index.ts +//// export * from "./mySubDir"; + +// @Filename: /packages/mylib/mySubDir/index.ts +//// export * from "./myClass"; +//// export * from "./myClass2"; + +// @Filename: /packages/mylib/mySubDir/myClass.ts +//// export class MyClass {} + +// @Filename: /packages/mylib/mySubDir/myClass2.ts +//// export class MyClass2 {} + +// @link: /packages/mylib -> /node_modules/mylib + +// @Filename: /src/index.ts +//// +//// const a = new MyClass/*1*/(); +//// const b = new MyClass2/*2*/(); + +goTo.marker("1"); +format.setOption("newLineCharacter", "\n"); + +verify.completions({ + marker: "1", + includes: [{ + name: "MyClass", + source: "mylib", + sourceDisplay: "mylib", + hasAction: true, + sortText: completion.SortText.AutoImportSuggestions, + }], + preferences: { + includeCompletionsForModuleExports: true, + includeInsertTextCompletions: true, + allowIncompleteCompletions: true, + } +}); + +verify.applyCodeActionFromCompletion("1", { + name: "MyClass", + source: "mylib", + description: `Add import from "mylib"`, + data: { + exportName: "MyClass", + fileName: "/packages/mylib/index.ts", + }, + preferences: { + includeCompletionsForModuleExports: true, + includeCompletionsWithInsertText: true, + allowIncompleteCompletions: true, + }, + newFileContent: `import { MyClass } from "mylib"; + +const a = new MyClass(); +const b = new MyClass2();`, +}); diff --git a/tests/cases/fourslash/server/autoImportProvider8.ts b/tests/cases/fourslash/server/autoImportProvider8.ts new file mode 100644 index 0000000000000..e448867aca6ae --- /dev/null +++ b/tests/cases/fourslash/server/autoImportProvider8.ts @@ -0,0 +1,68 @@ +/// + +// @Filename: /tsconfig.json +//// { "compilerOptions": { "module": "commonjs" } } + +// @Filename: /package.json +//// { "dependencies": { "mylib": "file:packages/mylib" } } + +// @Filename: /packages/mylib/package.json +//// { "name": "mylib", "version": "1.0.0" } + +// @Filename: /packages/mylib/index.ts +//// export * from "./mySubDir"; + +// @Filename: /packages/mylib/mySubDir/index.ts +//// export * from "./myClass"; +//// export * from "./myClass2"; + +// @Filename: /packages/mylib/mySubDir/myClass.ts +//// export class MyClass {} + +// @Filename: /packages/mylib/mySubDir/myClass2.ts +//// export class MyClass2 {} + +// @link: /packages/mylib -> /node_modules/mylib + +// @Filename: /src/index.ts +//// +//// const a = new MyClass/*1*/(); +//// const b = new MyClass2/*2*/(); + +goTo.marker("1"); +format.setOption("newLineCharacter", "\n"); + +verify.completions({ + marker: "1", + includes: [{ + name: "MyClass", + source: "mylib", + sourceDisplay: "mylib", + hasAction: true, + sortText: completion.SortText.AutoImportSuggestions, + }], + preferences: { + includeCompletionsForModuleExports: true, + includeInsertTextCompletions: true, + allowIncompleteCompletions: true, + } +}); + +verify.applyCodeActionFromCompletion("1", { + name: "MyClass", + source: "mylib", + description: `Add import from "mylib"`, + data: { + exportName: "MyClass", + fileName: "/packages/mylib/index.ts", + }, + preferences: { + includeCompletionsForModuleExports: true, + includeCompletionsWithInsertText: true, + allowIncompleteCompletions: true, + }, + newFileContent: `import { MyClass } from "mylib"; + +const a = new MyClass(); +const b = new MyClass2();`, +}); diff --git a/tests/cases/fourslash/server/autoImportProvider_exportMap1.ts b/tests/cases/fourslash/server/autoImportProvider_exportMap1.ts new file mode 100644 index 0000000000000..7f76a8fae02f2 --- /dev/null +++ b/tests/cases/fourslash/server/autoImportProvider_exportMap1.ts @@ -0,0 +1,64 @@ +/// + +// @Filename: /tsconfig.json +//// { +//// "compilerOptions": { +//// "module": "nodenext" +//// } +//// } + +// @Filename: /package.json +//// { +//// "type": "module", +//// "dependencies": { +//// "dependency": "^1.0.0" +//// } +//// } + +// @Filename: /node_modules/dependency/package.json +//// { +//// "type": "module", +//// "name": "dependency", +//// "version": "1.0.0", +//// "exports": { +//// ".": { +//// "types": "./lib/index.d.ts" +//// }, +//// "./lol": { +//// "types": "./lib/lol.d.ts" +//// } +//// } +//// } + +// @Filename: /node_modules/dependency/lib/index.d.ts +//// export function fooFromIndex(): void; + +// @Filename: /node_modules/dependency/lib/lol.d.ts +//// export function fooFromLol(): void; + +// @Filename: /src/foo.ts +//// fooFrom/**/ + +goTo.marker(""); + +verify.completions({ + marker: "", + exact: completion.globalsPlus([{ + name: "fooFromIndex", + source: "dependency", + sourceDisplay: "dependency", + sortText: completion.SortText.AutoImportSuggestions, + hasAction: true, + }, { + name: "fooFromLol", + source: "dependency/lol", + sourceDisplay: "dependency/lol", + sortText: completion.SortText.AutoImportSuggestions, + hasAction: true, + }]), + preferences: { + includeCompletionsForModuleExports: true, + includeInsertTextCompletions: true, + allowIncompleteCompletions: true, + }, +}); \ No newline at end of file diff --git a/tests/cases/fourslash/server/autoImportProvider_exportMap2.ts b/tests/cases/fourslash/server/autoImportProvider_exportMap2.ts new file mode 100644 index 0000000000000..3d01e53006b6e --- /dev/null +++ b/tests/cases/fourslash/server/autoImportProvider_exportMap2.ts @@ -0,0 +1,61 @@ +/// + +// This one uses --module=commonjs, so the export map is not followed. + +// @Filename: /tsconfig.json +//// { +//// "compilerOptions": { +//// "module": "commonjs" +//// } +//// } + +// @Filename: /package.json +//// { +//// "type": "module", +//// "dependencies": { +//// "dependency": "^1.0.0" +//// } +//// } + +// @Filename: /node_modules/dependency/package.json +//// { +//// "type": "module", +//// "name": "dependency", +//// "version": "1.0.0", +//// "types": "./lib/index.d.ts", +//// "exports": { +//// ".": { +//// "types": "./lib/index.d.ts" +//// }, +//// "./lol": { +//// "types": "./lib/lol.d.ts" +//// } +//// } +//// } + +// @Filename: /node_modules/dependency/lib/index.d.ts +//// export function fooFromIndex(): void; + +// @Filename: /node_modules/dependency/lib/lol.d.ts +//// export function fooFromLol(): void; + +// @Filename: /src/foo.ts +//// fooFrom/**/ + +goTo.marker(""); + +verify.completions({ + marker: "", + exact: completion.globalsPlus([{ + name: "fooFromIndex", + source: "dependency", + sourceDisplay: "dependency", + sortText: completion.SortText.AutoImportSuggestions, + hasAction: true, + }]), + preferences: { + includeCompletionsForModuleExports: true, + includeInsertTextCompletions: true, + allowIncompleteCompletions: true, + }, +}); \ No newline at end of file diff --git a/tests/cases/fourslash/server/autoImportProvider_exportMap3.ts b/tests/cases/fourslash/server/autoImportProvider_exportMap3.ts new file mode 100644 index 0000000000000..e4e70c749fefa --- /dev/null +++ b/tests/cases/fourslash/server/autoImportProvider_exportMap3.ts @@ -0,0 +1,63 @@ +/// + +// String exports + +// @Filename: /tsconfig.json +//// { +//// "compilerOptions": { +//// "module": "nodenext" +//// } +//// } + +// @Filename: /package.json +//// { +//// "type": "module", +//// "dependencies": { +//// "dependency": "^1.0.0" +//// } +//// } + +// @Filename: /node_modules/dependency/package.json +//// { +//// "name": "dependency", +//// "version": "1.0.0", +//// "main": "./lib/index.js", +//// "exports": "./lib/lol.d.ts" +//// } + +// @Filename: /node_modules/dependency/lib/index.d.ts +//// export function fooFromIndex(): void; + +// @Filename: /node_modules/dependency/lib/lol.d.ts +//// export function fooFromLol(): void; + +// @Filename: /src/foo.ts +//// fooFrom/**/ + +goTo.marker(""); + +verify.completions({ + marker: "", + exact: completion.globalsPlus([{ + // TODO: We should filter this one out due to its bad module specifier, + // but we don't know it's going to be filtered out until we actually + // resolve the module specifier, which is a problem for completions + // that don't have their module specifiers eagerly resolved. + name: "fooFromIndex", + source: "../node_modules/dependency/lib/index.js", + sourceDisplay: "../node_modules/dependency/lib/index.js", + sortText: completion.SortText.AutoImportSuggestions, + hasAction: true, + }, { + name: "fooFromLol", + source: "dependency", + sourceDisplay: "dependency", + sortText: completion.SortText.AutoImportSuggestions, + hasAction: true, + }]), + preferences: { + includeCompletionsForModuleExports: true, + includeInsertTextCompletions: true, + allowIncompleteCompletions: true, + }, +}); diff --git a/tests/cases/fourslash/server/autoImportProvider_exportMap4.ts b/tests/cases/fourslash/server/autoImportProvider_exportMap4.ts new file mode 100644 index 0000000000000..638bbf70b023b --- /dev/null +++ b/tests/cases/fourslash/server/autoImportProvider_exportMap4.ts @@ -0,0 +1,56 @@ +/// + +// Top-level conditions + +// @Filename: /tsconfig.json +//// { +//// "compilerOptions": { +//// "module": "nodenext" +//// } +//// } + +// @Filename: /package.json +//// { +//// "type": "module", +//// "dependencies": { +//// "dependency": "^1.0.0" +//// } +//// } + +// @Filename: /node_modules/dependency/package.json +//// { +//// "type": "module", +//// "name": "dependency", +//// "version": "1.0.0", +//// "exports": { +//// "types": "./lib/index.d.ts", +//// "require": "./lib/lol.js" +//// } +//// } + +// @Filename: /node_modules/dependency/lib/index.d.ts +//// export function fooFromIndex(): void; + +// @Filename: /node_modules/dependency/lib/lol.d.ts +//// export function fooFromLol(): void; + +// @Filename: /src/foo.ts +//// fooFrom/**/ + +goTo.marker(""); + +verify.completions({ + marker: "", + exact: completion.globalsPlus([{ + name: "fooFromIndex", + source: "dependency", + sourceDisplay: "dependency", + sortText: completion.SortText.AutoImportSuggestions, + hasAction: true, + }]), + preferences: { + includeCompletionsForModuleExports: true, + includeInsertTextCompletions: true, + allowIncompleteCompletions: true, + }, +}); \ No newline at end of file diff --git a/tests/cases/fourslash/server/autoImportProvider_exportMap5.ts b/tests/cases/fourslash/server/autoImportProvider_exportMap5.ts new file mode 100644 index 0000000000000..7bc8946f7f027 --- /dev/null +++ b/tests/cases/fourslash/server/autoImportProvider_exportMap5.ts @@ -0,0 +1,79 @@ +/// + +// @types package lookup + +// @Filename: /tsconfig.json +//// { +//// "compilerOptions": { +//// "module": "nodenext" +//// } +//// } + +// @Filename: /package.json +//// { +//// "type": "module", +//// "dependencies": { +//// "dependency": "^1.0.0" +//// } +//// } + +// @Filename: /node_modules/dependency/package.json +//// { +//// "type": "module", +//// "name": "dependency", +//// "version": "1.0.0", +//// "exports": { +//// ".": "./lib/index.js", +//// "./lol": "./lib/lol.js" +//// } +//// } + +// @Filename: /node_modules/dependency/lib/index.js +//// export function fooFromIndex() {} + +// @Filename: /node_modules/dependency/lib/lol.js +//// export function fooFromLol() {} + +// @Filename: /node_modules/@types/dependency/package.json +//// { +//// "type": "module", +//// "name": "@types/dependency", +//// "version": "1.0.0", +//// "exports": { +//// ".": "./lib/index.d.ts", +//// "./lol": "./lib/lol.d.ts" +//// } +//// } + +// @Filename: /node_modules/@types/dependency/lib/index.d.ts +//// export declare function fooFromIndex(): void; + +// @Filename: /node_modules/@types/dependency/lib/lol.d.ts +//// export declare function fooFromLol(): void; + +// @Filename: /src/foo.ts +//// fooFrom/**/ + +goTo.marker(""); + +verify.completions({ + marker: "", + exact: completion.globalsPlus([{ + name: "fooFromIndex", + source: "dependency", + sourceDisplay: "dependency", + sortText: completion.SortText.AutoImportSuggestions, + hasAction: true, + }, { + name: "fooFromLol", + source: "dependency/lol", + sourceDisplay: "dependency/lol", + sortText: completion.SortText.AutoImportSuggestions, + hasAction: true, + }]), + preferences: { + includeCompletionsForModuleExports: true, + includeInsertTextCompletions: true, + allowIncompleteCompletions: true, + }, +}); diff --git a/tests/cases/fourslash/server/autoImportProvider_exportMap6.ts b/tests/cases/fourslash/server/autoImportProvider_exportMap6.ts new file mode 100644 index 0000000000000..19a32344ae60d --- /dev/null +++ b/tests/cases/fourslash/server/autoImportProvider_exportMap6.ts @@ -0,0 +1,88 @@ +/// + +// @types package should be ignored because implementation package has types + +// @Filename: /tsconfig.json +//// { +//// "compilerOptions": { +//// "module": "nodenext" +//// } +//// } + +// @Filename: /package.json +//// { +//// "type": "module", +//// "dependencies": { +//// "dependency": "^1.0.0" +//// }, +//// "devDependencies": { +//// "@types/dependency": "^1.0.0" +//// } +//// } + +// @Filename: /node_modules/dependency/package.json +//// { +//// "type": "module", +//// "name": "dependency", +//// "version": "1.0.0", +//// "exports": { +//// ".": "./lib/index.js", +//// "./lol": "./lib/lol.js" +//// } +//// } + +// @Filename: /node_modules/dependency/lib/index.js +//// export function fooFromIndex() {} + +// @Filename: /node_modules/dependency/lib/index.d.ts +//// export declare function fooFromIndex(): void + +// @Filename: /node_modules/dependency/lib/lol.js +//// export function fooFromLol() {} + +// @Filename: /node_modules/dependency/lib/lol.d.ts +//// export declare function fooFromLol(): void + +// @Filename: /node_modules/@types/dependency/package.json +//// { +//// "type": "module", +//// "name": "@types/dependency", +//// "version": "1.0.0", +//// "exports": { +//// ".": "./lib/index.d.ts", +//// "./lol": "./lib/lol.d.ts" +//// } +//// } + +// @Filename: /node_modules/@types/dependency/lib/index.d.ts +//// export declare function fooFromAtTypesIndex(): void; + +// @Filename: /node_modules/@types/dependency/lib/lol.d.ts +//// export declare function fooFromAtTypesLol(): void; + +// @Filename: /src/foo.ts +//// fooFrom/**/ + +goTo.marker(""); + +verify.completions({ + marker: "", + exact: completion.globalsPlus([{ + name: "fooFromIndex", + source: "dependency", + sourceDisplay: "dependency", + sortText: completion.SortText.AutoImportSuggestions, + hasAction: true, + }, { + name: "fooFromLol", + source: "dependency/lol", + sourceDisplay: "dependency/lol", + sortText: completion.SortText.AutoImportSuggestions, + hasAction: true, + }]), + preferences: { + includeCompletionsForModuleExports: true, + includeInsertTextCompletions: true, + allowIncompleteCompletions: true, + }, +}); diff --git a/tests/cases/fourslash/server/autoImportProvider_exportMap7.ts b/tests/cases/fourslash/server/autoImportProvider_exportMap7.ts new file mode 100644 index 0000000000000..d1148f824fbe1 --- /dev/null +++ b/tests/cases/fourslash/server/autoImportProvider_exportMap7.ts @@ -0,0 +1,69 @@ +/// + +// Some exports are already in the main program while some are not. + +// @Filename: /tsconfig.json +//// { +//// "compilerOptions": { +//// "module": "nodenext" +//// } +//// } + +// @Filename: /package.json +//// { +//// "type": "module", +//// "dependencies": { +//// "dependency": "^1.0.0" +//// } +//// } + +// @Filename: /node_modules/dependency/package.json +//// { +//// "type": "module", +//// "name": "dependency", +//// "version": "1.0.0", +//// "exports": { +//// ".": { +//// "types": "./lib/index.d.ts" +//// }, +//// "./lol": { +//// "types": "./lib/lol.d.ts" +//// } +//// } +//// } + +// @Filename: /node_modules/dependency/lib/index.d.ts +//// export function fooFromIndex(): void; + +// @Filename: /node_modules/dependency/lib/lol.d.ts +//// export function fooFromLol(): void; + +// @Filename: /src/bar.ts +//// import { fooFromIndex } from "dependency"; + +// @Filename: /src/foo.ts +//// fooFrom/**/ + +goTo.marker(""); + +verify.completions({ + marker: "", + exact: completion.globalsPlus([{ + name: "fooFromIndex", + source: "dependency", + sourceDisplay: "dependency", + sortText: completion.SortText.AutoImportSuggestions, + hasAction: true, + }, { + name: "fooFromLol", + source: "dependency/lol", + sourceDisplay: "dependency/lol", + sortText: completion.SortText.AutoImportSuggestions, + hasAction: true, + }]), + preferences: { + includeCompletionsForModuleExports: true, + includeInsertTextCompletions: true, + allowIncompleteCompletions: true, + }, +}); \ No newline at end of file diff --git a/tests/cases/fourslash/server/autoImportProvider_exportMap8.ts b/tests/cases/fourslash/server/autoImportProvider_exportMap8.ts new file mode 100644 index 0000000000000..b679c2184fd50 --- /dev/null +++ b/tests/cases/fourslash/server/autoImportProvider_exportMap8.ts @@ -0,0 +1,94 @@ +/// + +// Both 'import' and 'require' should be pulled in + +// @Filename: /tsconfig.json +//// { +//// "compilerOptions": { +//// "module": "nodenext" +//// } +//// } + +// @Filename: /package.json +//// { +//// "type": "module", +//// "dependencies": { +//// "dependency": "^1.0.0" +//// } +//// } + +// @Filename: /node_modules/dependency/package.json +//// { +//// "type": "module", +//// "name": "dependency", +//// "version": "1.0.0", +//// "exports": { +//// "./lol": { +//// "import": "./lib/index.js", +//// "require": "./lib/lol.js" +//// } +//// } +//// } + +// @Filename: /node_modules/dependency/lib/index.d.ts +//// export function fooFromIndex(): void; + +// @Filename: /node_modules/dependency/lib/lol.d.ts +//// export function fooFromLol(): void; + +// @Filename: /src/bar.ts +//// import { fooFromIndex } from "dependency"; + +// @Filename: /src/foo.cts +//// fooFrom/*cts*/ + +// @Filename: /src/foo.mts +//// fooFrom/*mts*/ + +goTo.marker("cts"); +verify.completions({ + marker: "cts", + exact: completion.globalsPlus([{ + // TODO: this one will go away (see note in ./autoImportProvider_exportMap3.ts) + name: "fooFromIndex", + source: "../node_modules/dependency/lib/index", + sourceDisplay: "../node_modules/dependency/lib/index", + sortText: completion.SortText.AutoImportSuggestions, + hasAction: true, + }, { + name: "fooFromLol", + source: "dependency/lol", + sourceDisplay: "dependency/lol", + sortText: completion.SortText.AutoImportSuggestions, + hasAction: true, + }]), + preferences: { + includeCompletionsForModuleExports: true, + includeInsertTextCompletions: true, + allowIncompleteCompletions: true, + }, +}); + +goTo.marker("mts"); +verify.completions({ + marker: "mts", + exact: completion.globalsPlus([{ + name: "fooFromIndex", + source: "dependency/lol", + sourceDisplay: "dependency/lol", + sortText: completion.SortText.AutoImportSuggestions, + hasAction: true, + }, { + // TODO: this one will go away (see note in ./autoImportProvider_exportMap3.ts) + name: "fooFromLol", + source: "../node_modules/dependency/lib/lol.js", + sourceDisplay: "../node_modules/dependency/lib/lol.js", + sortText: completion.SortText.AutoImportSuggestions, + hasAction: true, + }]), + preferences: { + includeCompletionsForModuleExports: true, + includeInsertTextCompletions: true, + allowIncompleteCompletions: true, + }, +}); diff --git a/tests/cases/fourslash/server/autoImportProvider_exportMap9.ts b/tests/cases/fourslash/server/autoImportProvider_exportMap9.ts new file mode 100644 index 0000000000000..e7768c984321a --- /dev/null +++ b/tests/cases/fourslash/server/autoImportProvider_exportMap9.ts @@ -0,0 +1,58 @@ +/// + +// Only the first resolution in an array should be used + +// @Filename: /tsconfig.json +//// { +//// "compilerOptions": { +//// "module": "nodenext" +//// } +//// } + +// @Filename: /package.json +//// { +//// "type": "module", +//// "dependencies": { +//// "dependency": "^1.0.0" +//// } +//// } + +// @Filename: /node_modules/dependency/package.json +//// { +//// "type": "module", +//// "name": "dependency", +//// "version": "1.0.0", +//// "exports": { +//// "./lol": ["./lib/index.js", "./lib/lol.js"] +//// } +//// } + +// @Filename: /node_modules/dependency/lib/index.d.ts +//// export function fooFromIndex(): void; + +// @Filename: /node_modules/dependency/lib/lol.d.ts +//// export function fooFromLol(): void; + +// @Filename: /src/bar.ts +//// import { fooFromIndex } from "dependency"; + +// @Filename: /src/foo.ts +//// fooFrom/**/ + + +goTo.marker(""); +verify.completions({ + marker: "", + exact: completion.globalsPlus([{ + name: "fooFromIndex", + source: "dependency/lol", + sourceDisplay: "dependency/lol", + sortText: completion.SortText.AutoImportSuggestions, + hasAction: true, + }]), + preferences: { + includeCompletionsForModuleExports: true, + includeInsertTextCompletions: true, + allowIncompleteCompletions: true, + }, +}); diff --git a/tests/cases/fourslash/server/autoImportProvider_globalTypingsCache.ts b/tests/cases/fourslash/server/autoImportProvider_globalTypingsCache.ts new file mode 100644 index 0000000000000..7e7d22a71baeb --- /dev/null +++ b/tests/cases/fourslash/server/autoImportProvider_globalTypingsCache.ts @@ -0,0 +1,41 @@ +/// + +// @Filename: /Library/Caches/typescript/node_modules/@types/react-router-dom/package.json +//// { "name": "@types/react-router-dom", "version": "16.8.4", "types": "index.d.ts" } + +// @Filename: /Library/Caches/typescript/node_modules/@types/react-router-dom/index.d.ts +//// export class BrowserRouterFromDts {} + +// @Filename: /project/package.json +//// { "dependencies": { "react-router-dom": "*" } } + +// @Filename: /project/tsconfig.json +//// { "compilerOptions": { "module": "commonjs", "allowJs": true, "checkJs": true, "maxNodeModuleJsDepth": 2 }, "typeAcquisition": { "enable": true } } + +// @Filename: /project/node_modules/react-router-dom/package.json +//// { "name": "react-router-dom", "version": "16.8.4", "main": "index.js" } + +// @Filename: /project/node_modules/react-router-dom/index.js +//// import "./BrowserRouter"; +//// export {}; + +// @Filename: /project/node_modules/react-router-dom/BrowserRouter.js +//// export const BrowserRouterFromJs = () => null; + +// @Filename: /project/index.js +////BrowserRouter/**/ + +verify.completions({ + marker: "", + exact: completion.globalsInJsPlus([{ + name: "BrowserRouterFromDts", + source: "react-router-dom", + sourceDisplay: "react-router-dom", + hasAction: true, + sortText: completion.SortText.AutoImportSuggestions, + }]), + preferences: { + allowIncompleteCompletions: true, + includeCompletionsForModuleExports: true, + } +}); diff --git a/tests/cases/fourslash/server/completionsImport_addToNamedWithDifferentCacheValue.ts b/tests/cases/fourslash/server/completionsImport_addToNamedWithDifferentCacheValue.ts new file mode 100644 index 0000000000000..cd1fdc923b80c --- /dev/null +++ b/tests/cases/fourslash/server/completionsImport_addToNamedWithDifferentCacheValue.ts @@ -0,0 +1,87 @@ +/// + +// Notable lack of package.json referencing `mylib` as dependency here. +// This is not accurate to the original repro, but I think that's a separate +// bug, which, if fixed, would prevent the later crash. + +// @Filename: /tsconfig.json +//// { "compilerOptions": { "module": "commonjs" } } + +// @Filename: /packages/mylib/package.json +//// { "name": "mylib", "version": "1.0.0", "main": "index.js" } + +// @Filename: /packages/mylib/index.ts +//// export * from "./mySubDir"; + +// @Filename: /packages/mylib/mySubDir/index.ts +//// export * from "./myClass"; +//// export * from "./myClass2"; + +// @Filename: /packages/mylib/mySubDir/myClass.ts +//// export class MyClass {} + +// @Filename: /packages/mylib/mySubDir/myClass2.ts +//// export class MyClass2 {} + +// @link: /packages/mylib -> /node_modules/mylib + +// @Filename: /src/index.ts +//// +//// const a = new MyClass/*1*/(); +//// const b = new MyClass2/*2*/(); + +goTo.marker("1"); +format.setOption("newLineCharacter", "\n"); + +verify.completions({ + marker: "1", + includes: [{ + name: "MyClass", + source: "../packages/mylib", + sourceDisplay: "../packages/mylib", + hasAction: true, + sortText: completion.SortText.AutoImportSuggestions, + }], + preferences: { + includeCompletionsForModuleExports: true, + includeInsertTextCompletions: true, + allowIncompleteCompletions: true, + } +}); + +verify.applyCodeActionFromCompletion("1", { + name: "MyClass", + source: "../packages/mylib", + description: `Add import from "../packages/mylib"`, + data: { + exportName: "MyClass", + fileName: "/packages/mylib/index.ts", + }, + preferences: { + includeCompletionsForModuleExports: true, + includeCompletionsWithInsertText: true, + allowIncompleteCompletions: true, + }, + newFileContent: `import { MyClass } from "../packages/mylib"; + +const a = new MyClass(); +const b = new MyClass2();`, +}); + +edit.replaceLine(0, `import { MyClass } from "mylib";`); + +verify.completions({ + marker: "2", + includes: [{ + name: "MyClass2", + source: "mylib", + sourceDisplay: "mylib", + hasAction: true, + sortText: completion.SortText.AutoImportSuggestions, + }], + preferences: { + includeCompletionsForModuleExports: true, + includeInsertTextCompletions: true, + allowIncompleteCompletions: true, + } +}); diff --git a/tests/cases/fourslash/server/completionsImport_defaultAndNamedConflict_server.ts b/tests/cases/fourslash/server/completionsImport_defaultAndNamedConflict_server.ts index 29f0f76cb77fd..ff29c4d515139 100644 --- a/tests/cases/fourslash/server/completionsImport_defaultAndNamedConflict_server.ts +++ b/tests/cases/fourslash/server/completionsImport_defaultAndNamedConflict_server.ts @@ -45,6 +45,6 @@ verify.applyCodeActionFromCompletion("", { name: "someModule", source: "/someModule", data: { exportName: "default", fileName: "/someModule.ts" }, - description: `Import default 'someModule' from module "./someModule"`, + description: `Add import from "./someModule"`, newFileContent: `import someModule from "./someModule";\r\n\r\nsomeMo` }); diff --git a/tests/cases/fourslash/server/completionsImport_jsModuleExportsAssignment.ts b/tests/cases/fourslash/server/completionsImport_jsModuleExportsAssignment.ts new file mode 100644 index 0000000000000..3293892ebbbb2 --- /dev/null +++ b/tests/cases/fourslash/server/completionsImport_jsModuleExportsAssignment.ts @@ -0,0 +1,57 @@ +/// + +// @Filename: /tsconfig.json +//// { "compilerOptions": { "module": "commonjs", "allowJs": true } } + +// @Filename: /third_party/marked/src/defaults.js +//// function getDefaults() { +//// return { +//// baseUrl: null, +//// }; +//// } +//// +//// function changeDefaults(newDefaults) { +//// module.exports.defaults = newDefaults; +//// } +//// +//// module.exports = { +//// defaults: getDefaults(), +//// getDefaults, +//// changeDefaults +//// }; + +// @Filename: /index.ts +//// /**/ + +format.setOption("newLineCharacter", "\n") +goTo.marker(""); + +// Create the exportInfoMap +verify.completions({ marker: "", preferences: { includeCompletionsForModuleExports: true } }); + +// Create a new program and reuse the exportInfoMap from the last request +edit.insert("d"); +verify.completions({ + marker: "", + excludes: ["newDefaults"], + includes: [{ + name: "defaults", + source: "/third_party/marked/src/defaults", + hasAction: true, + sortText: completion.SortText.AutoImportSuggestions, + }], + preferences: { includeCompletionsForModuleExports: true } +}); + +verify.applyCodeActionFromCompletion("", { + name: "defaults", + source: "/third_party/marked/src/defaults", + description: `Add import from "./third_party/marked/src/defaults"`, + data: { + exportName: "defaults", + fileName: "/third_party/marked/src/defaults.js", + }, + newFileContent: `import { defaults } from "./third_party/marked/src/defaults"; + +d` +}); diff --git a/tests/cases/fourslash/server/completionsImport_mergedReExport.ts b/tests/cases/fourslash/server/completionsImport_mergedReExport.ts index 63d813a0c9866..a65e2a115990d 100644 --- a/tests/cases/fourslash/server/completionsImport_mergedReExport.ts +++ b/tests/cases/fourslash/server/completionsImport_mergedReExport.ts @@ -6,6 +6,9 @@ // @Filename: /package.json //// { "dependencies": { "@jest/types": "*", "ts-jest": "*" } } +// @Filename: /node_modules/@jest/types/package.json +//// { "name": "@jest/types" } + // @Filename: /node_modules/@jest/types/index.d.ts //// import type * as Config from "./Config"; //// export type { Config }; diff --git a/tests/cases/fourslash/server/completionsImport_sortingModuleSpecifiers.ts b/tests/cases/fourslash/server/completionsImport_sortingModuleSpecifiers.ts new file mode 100644 index 0000000000000..07fddf4c8177a --- /dev/null +++ b/tests/cases/fourslash/server/completionsImport_sortingModuleSpecifiers.ts @@ -0,0 +1,50 @@ +/// + +// @Filename: tsconfig.json +//// { "compilerOptions": { "module": "commonjs" } } + +// @Filename: path.d.ts +//// declare module "path/posix" { +//// export function normalize(p: string): string; +//// } +//// declare module "path/win32" { +//// export function normalize(p: string): string; +//// } +//// declare module "path" { +//// export function normalize(p: string): string; +//// } + +// @Filename: main.ts +//// normalize/**/ + +verify.completions({ + marker: "", + exact: completion.globalsPlus([ + { + name: "normalize", + source: "path", + sourceDisplay: "path", + hasAction: true, + sortText: completion.SortText.AutoImportSuggestions, + }, + { + name: "normalize", + source: "path/posix", + sourceDisplay: "path/posix", + hasAction: true, + sortText: completion.SortText.AutoImportSuggestions, + }, + { + name: "normalize", + source: "path/win32", + sourceDisplay: "path/win32", + hasAction: true, + sortText: completion.SortText.AutoImportSuggestions, + }, + ]), + preferences: { + includeCompletionsForModuleExports: true, + includeCompletionsWithInsertText: true, + allowIncompleteCompletions: true, + }, +}); diff --git a/tests/cases/fourslash/server/impliedNodeFormat.ts b/tests/cases/fourslash/server/impliedNodeFormat.ts new file mode 100644 index 0000000000000..d7faa92d3b8e5 --- /dev/null +++ b/tests/cases/fourslash/server/impliedNodeFormat.ts @@ -0,0 +1,20 @@ +/// + +// @Filename: /tsconfig.json +//// { "compilerOptions": { "module": "nodenext" } } + +// @Filename: /package.json +//// { "name": "foo", "type": "module", "exports": { ".": "./main.js" } } + +// @Filename: /main.ts +//// export {}; + +// @Filename: /index.ts +//// import {} from "foo"; + +goTo.file("/index.ts"); +verify.noErrors(); + +edit.paste(`\n"${"a".repeat(256)}";`); + +verify.noErrors(); diff --git a/tests/cases/fourslash/server/nodeNextModuleKindCaching1.ts b/tests/cases/fourslash/server/nodeNextModuleKindCaching1.ts new file mode 100644 index 0000000000000..c68123b7d07b5 --- /dev/null +++ b/tests/cases/fourslash/server/nodeNextModuleKindCaching1.ts @@ -0,0 +1,35 @@ +/// + +// @Filename: tsconfig.json +////{ +//// "compilerOptions": { +//// "rootDir": "src", +//// "outDir": "dist", +//// "target": "ES2020", +//// "module": "NodeNext", +//// "strict": true +//// }, +//// "include": ["src\\**\\*.ts"] +////} + +// @Filename: package.json +////{ +//// "type": "module", +//// "private": true +////} + +// @Filename: src/index.ts +////// The line below should show a "Relative import paths need explicit file +////// extensions..." error in VS Code, but it doesn't. The error is only picked up +////// by `tsc` which seems to properly infer the module type. +////import { helloWorld } from './example' +/////**/ +////helloWorld() + +// @Filename: src/example.ts +////export function helloWorld() { +//// console.log('Hello, world!') +////} + +goTo.marker(); +verify.numberOfErrorsInCurrentFile(1); diff --git a/tests/cases/fourslash/server/nodeNextPathCompletions.ts b/tests/cases/fourslash/server/nodeNextPathCompletions.ts new file mode 100644 index 0000000000000..800e7d0a98aa5 --- /dev/null +++ b/tests/cases/fourslash/server/nodeNextPathCompletions.ts @@ -0,0 +1,43 @@ +/// + +// @Filename: /node_modules/dependency/package.json +//// { +//// "type": "module", +//// "name": "dependency", +//// "version": "1.0.0", +//// "exports": { +//// ".": { +//// "types": "./lib/index.d.ts" +//// }, +//// "./lol": { +//// "types": "./lib/lol.d.ts" +//// }, +//// "./dir/*": "./lib/*" +//// } +//// } + +// @Filename: /node_modules/dependency/lib/index.d.ts +//// export function fooFromIndex(): void; + +// @Filename: /node_modules/dependency/lib/lol.d.ts +//// export function fooFromLol(): void; + +// @Filename: /package.json +//// { +//// "type": "module", +//// "dependencies": { +//// "dependency": "^1.0.0" +//// } +//// } + +// @Filename: /tsconfig.json +//// { "compilerOptions": { "module": "nodenext" }, "files": ["./src/foo.ts"] } + +// @Filename: /src/foo.ts +//// import { fooFromIndex } from "/**/"; + +verify.baselineCompletions(); +edit.insert("dependency/"); +verify.completions({ exact: ["lol", "dir/"], isNewIdentifierLocation: true }); +edit.insert("l"); +verify.completions({ exact: ["lol"], isNewIdentifierLocation: true }); diff --git a/tests/cases/fourslash/server/tripleSlashReferenceResolutionMode.ts b/tests/cases/fourslash/server/tripleSlashReferenceResolutionMode.ts new file mode 100644 index 0000000000000..38657d68c23a8 --- /dev/null +++ b/tests/cases/fourslash/server/tripleSlashReferenceResolutionMode.ts @@ -0,0 +1,28 @@ +/// + +// @Filename: /tsconfig.json +//// { "compilerOptions": { "module": "nodenext", "declaration": true, "strict": true, "outDir": "out" }, "files": ["./index.ts"] } + +// @Filename: /package.json +//// { "private": true, "type": "commonjs" } + +// @Filename: /node_modules/pkg/package.json +////{ "name": "pkg", "version": "0.0.1", "exports": { "require": "./require.cjs", "default": "./import.js" }, "type": "module" } + +// @Filename: /node_modules/pkg/require.d.cts +////export {}; +////export interface PkgRequireInterface { member: any; } +////declare global { const pkgRequireGlobal: PkgRequireInterface; } + +// @Filename: /node_modules/pkg/import.d.ts +////export {}; +////export interface PkgImportInterface { field: any; } +////declare global { const pkgImportGlobal: PkgImportInterface; } + +// @Filename: /index.ts +/////// +////pkgImportGlobal; +////export {}; + +goTo.file("/index.ts"); +verify.numberOfErrorsInCurrentFile(0); diff --git a/tests/cases/fourslash/server/tsconfigComputedPropertyError.ts b/tests/cases/fourslash/server/tsconfigComputedPropertyError.ts new file mode 100644 index 0000000000000..7d2eef6b04c88 --- /dev/null +++ b/tests/cases/fourslash/server/tsconfigComputedPropertyError.ts @@ -0,0 +1,12 @@ +/// + +// @filename: tsconfig.json +////{ +//// ["oops!" + 42]: "true", +//// "files": [ +//// "nonexistentfile.ts" +//// ], +//// "compileOnSave": true +////} + +verify.getSemanticDiagnostics([]); diff --git a/tests/cases/fourslash/shims-pp/getOutliningSpans.ts b/tests/cases/fourslash/shims-pp/getOutliningSpans.ts index 3050912101ee2..849d7bcf8b922 100644 --- a/tests/cases/fourslash/shims-pp/getOutliningSpans.ts +++ b/tests/cases/fourslash/shims-pp/getOutliningSpans.ts @@ -58,9 +58,9 @@ ////}|] //// ////// function expressions -////(function f()[| { +////[|(function f()[| { //// -////}|]) +////}|])|] //// ////// trivia handeling ////class ClassFooWithTrivia[| /* some comments */ diff --git a/tests/cases/fourslash/shims/getOutliningSpans.ts b/tests/cases/fourslash/shims/getOutliningSpans.ts index d6c354c334844..c5b41ff79977a 100644 --- a/tests/cases/fourslash/shims/getOutliningSpans.ts +++ b/tests/cases/fourslash/shims/getOutliningSpans.ts @@ -58,9 +58,9 @@ ////}|] //// ////// function expressions -////(function f()[| { +////[|(function f()[| { //// -////}|]) +////}|])|] //// ////// trivia handeling ////class ClassFooWithTrivia[| /* some comments */ diff --git a/tests/cases/fourslash/signatureHelpExplicitTypeArguments.ts b/tests/cases/fourslash/signatureHelpExplicitTypeArguments.ts index b68c7640476bf..68a355d253394 100644 --- a/tests/cases/fourslash/signatureHelpExplicitTypeArguments.ts +++ b/tests/cases/fourslash/signatureHelpExplicitTypeArguments.ts @@ -1,16 +1,37 @@ /// -////declare function f(x: T, y: U): T; -////f(/*1*/); -////f(/*2*/); -////f(/*3*/); -////f(/*4*/); +//// declare function f(x: T, y: U): T; +//// f(/*1*/); +//// f(/*2*/); +//// f(/*3*/); +//// f(/*4*/); + +//// interface A { a: number } +//// interface B extends A { b: string } +//// declare function g(x: T, y: U, z: V): T; +//// declare function h(x: T, y: U, z: V): T; +//// declare function j(x: T, y: U, z: V): T; +//// g(/*5*/); +//// h(/*6*/); +//// j(/*7*/); +//// g(/*8*/); +//// h(/*9*/); +//// j(/*10*/); verify.signatureHelp( { marker: "1", text: "f(x: number, y: string): number" }, { marker: "2", text: "f(x: boolean, y: string): boolean" }, - // too few -- fill in rest with unknown - { marker: "3", text: "f(x: number, y: unknown): number" }, + // too few -- fill in rest with default + { marker: "3", text: "f(x: number, y: string): number" }, // too many -- ignore extra type arguments { marker: "4", text: "f(x: number, y: string): number" }, + + // not matched signature and no type arguments + { marker: "5", text: "g(x: unknown, y: unknown, z: B): unknown" }, + { marker: "6", text: "h(x: unknown, y: unknown, z: A): unknown" }, + { marker: "7", text: "j(x: unknown, y: unknown, z: B): unknown" }, + // not matched signature and too few type arguments + { marker: "8", text: "g(x: number, y: unknown, z: B): number" }, + { marker: "9", text: "h(x: number, y: unknown, z: A): number" }, + { marker: "10", text: "j(x: number, y: unknown, z: B): number" }, ); diff --git a/tests/cases/fourslash/smartIndentMissingBracketsDoKeyword.ts b/tests/cases/fourslash/smartIndentMissingBracketsDoKeyword.ts new file mode 100644 index 0000000000000..984499db5ae5b --- /dev/null +++ b/tests/cases/fourslash/smartIndentMissingBracketsDoKeyword.ts @@ -0,0 +1,7 @@ +/// + +////do {/*1*/ + +goTo.marker("1"); +edit.insert("\n"); +verify.indentationIs(4); diff --git a/tests/cases/fourslash/smartIndentMissingBracketsIfKeyword.ts b/tests/cases/fourslash/smartIndentMissingBracketsIfKeyword.ts new file mode 100644 index 0000000000000..0e260cdf1427e --- /dev/null +++ b/tests/cases/fourslash/smartIndentMissingBracketsIfKeyword.ts @@ -0,0 +1,7 @@ +/// + +////if /*1*/ + +goTo.marker("1"); +edit.insert("\n"); +verify.indentationIs(4); diff --git a/tests/cases/fourslash/smartIndentMissingBracketsWhileKeyword.ts b/tests/cases/fourslash/smartIndentMissingBracketsWhileKeyword.ts new file mode 100644 index 0000000000000..03e9be630ca3c --- /dev/null +++ b/tests/cases/fourslash/smartIndentMissingBracketsWhileKeyword.ts @@ -0,0 +1,7 @@ +/// + +////while /*1*/ + +goTo.marker("1"); +edit.insert("\n"); +verify.indentationIs(4); diff --git a/tests/cases/fourslash/smartIndentMissingBracketsWithKeyword.ts b/tests/cases/fourslash/smartIndentMissingBracketsWithKeyword.ts new file mode 100644 index 0000000000000..733fc0560a7c3 --- /dev/null +++ b/tests/cases/fourslash/smartIndentMissingBracketsWithKeyword.ts @@ -0,0 +1,7 @@ +/// + +////with /*1*/ + +goTo.marker("1"); +edit.insert("\n"); +verify.indentationIs(0); diff --git a/tests/cases/fourslash/smartIndentTypeArgumentList.ts b/tests/cases/fourslash/smartIndentTypeArgumentList.ts deleted file mode 100644 index 24136596ed1f9..0000000000000 --- a/tests/cases/fourslash/smartIndentTypeArgumentList.ts +++ /dev/null @@ -1,8 +0,0 @@ -/// - -////interface T1 extends T - -goTo.marker(); -verify.indentationIs(32); \ No newline at end of file diff --git a/tests/cases/fourslash/stringLiteralTypeCompletionsInTypeArgForNonGeneric1.ts b/tests/cases/fourslash/stringLiteralTypeCompletionsInTypeArgForNonGeneric1.ts new file mode 100644 index 0000000000000..7c1a11889a682 --- /dev/null +++ b/tests/cases/fourslash/stringLiteralTypeCompletionsInTypeArgForNonGeneric1.ts @@ -0,0 +1,10 @@ +/// + +////interface Foo {} +////type Bar = {}; +//// +////let x: Foo<"/*1*/">; +////let y: Bar<"/*2*/">; + +verify.completions({ marker: test.markers() }); + diff --git a/tests/cases/fourslash/thisPredicateFunctionCompletions01.ts b/tests/cases/fourslash/thisPredicateFunctionCompletions01.ts index de869dcd8d589..6cdd8b37b489d 100644 --- a/tests/cases/fourslash/thisPredicateFunctionCompletions01.ts +++ b/tests/cases/fourslash/thisPredicateFunctionCompletions01.ts @@ -42,9 +42,9 @@ const common: ReadonlyArray = ["isFile", "isDirectory", "isNetworked", "path"]; verify.completions( - { marker: "1", exact: ["content", ...common] }, - { marker: "2", exact: ["host", "content", ...common] }, - { marker: "3", exact: ["children", ...common] }, - { marker: "4", exact: ["host", "children", ...common] }, - { marker: "5", exact: ["host", ...common] }, + { marker: "1", unsorted: ["content", ...common] }, + { marker: "2", unsorted: ["host", "content", ...common] }, + { marker: "3", unsorted: ["children", ...common] }, + { marker: "4", unsorted: ["host", "children", ...common] }, + { marker: "5", unsorted: ["host", ...common] }, ); diff --git a/tests/cases/fourslash/thisPredicateFunctionCompletions02.ts b/tests/cases/fourslash/thisPredicateFunctionCompletions02.ts index d83c43e2cf9ab..78fac09f7169b 100644 --- a/tests/cases/fourslash/thisPredicateFunctionCompletions02.ts +++ b/tests/cases/fourslash/thisPredicateFunctionCompletions02.ts @@ -32,7 +32,7 @@ //// } verify.completions( - { marker: ["1", "3", "5"], exact: ["contents", "isSundries", "isSupplies", "isPackedTight", "extraContents"] }, + { marker: ["1", "3", "5"], exact: ["contents", "extraContents", "isPackedTight", "isSundries", "isSupplies"] }, { marker: "2", exact: "broken" }, { marker: "4", exact: "spoiled" }, ); diff --git a/tests/cases/fourslash/thisPredicateFunctionCompletions03.ts b/tests/cases/fourslash/thisPredicateFunctionCompletions03.ts index 8c395bdb8012b..e70eed35bfa31 100644 --- a/tests/cases/fourslash/thisPredicateFunctionCompletions03.ts +++ b/tests/cases/fourslash/thisPredicateFunctionCompletions03.ts @@ -45,6 +45,6 @@ //// let checked/*14*/LeaderStatus = isLeader/*15*/Guard(a); verify.completions( - { marker: ["2", "6"], exact: ["lead", "isLeader", "isFollower"] }, - { marker: ["4", "8"], exact: ["follow", "isLeader", "isFollower"] }, + { marker: ["2", "6"], unsorted: ["lead", "isLeader", "isFollower"] }, + { marker: ["4", "8"], unsorted: ["follow", "isLeader", "isFollower"] }, ); diff --git a/tests/cases/fourslash/tsxCompletion12.ts b/tests/cases/fourslash/tsxCompletion12.ts index 843ed1532ffd5..c4feb1ae51ae7 100644 --- a/tests/cases/fourslash/tsxCompletion12.ts +++ b/tests/cases/fourslash/tsxCompletion12.ts @@ -25,11 +25,18 @@ verify.completions( { marker: ["1", "2", "5"], - exact: ["propx", "propString", { name: "optional", kind: "JSX attribute", kindModifiers: "optional", sortText: completion.SortText.OptionalMember }] + exact: [ + "propString", + "propx", + { name: "optional", kind: "property", kindModifiers: "optional", sortText: completion.SortText.OptionalMember }, + ] }, { marker: "3", - exact: ["propString", { name: "optional", kind: "JSX attribute", kindModifiers: "optional", sortText: completion.SortText.OptionalMember }] + exact: [ + "propString", + { name: "optional", kind: "property", kindModifiers: "optional", sortText: completion.SortText.OptionalMember }, + ] }, { marker: "4", exact: "propString" }, ); diff --git a/tests/cases/fourslash/tsxCompletion13.ts b/tests/cases/fourslash/tsxCompletion13.ts index 1fec1223d0cc0..5b8a8d7e18b41 100644 --- a/tests/cases/fourslash/tsxCompletion13.ts +++ b/tests/cases/fourslash/tsxCompletion13.ts @@ -34,25 +34,25 @@ verify.completions( { marker: ["1", "6"], exact: [ + "goTo", "onClick", - { name: "children", kind: "JSX attribute", kindModifiers: "optional", sortText: completion.SortText.OptionalMember }, - { name: "className", kind: "JSX attribute", kindModifiers: "optional", sortText: completion.SortText.OptionalMember }, - "goTo" + { name: "children", kind: "property", kindModifiers: "optional", sortText: completion.SortText.OptionalMember }, + { name: "className", kind: "property", kindModifiers: "optional", sortText: completion.SortText.OptionalMember }, ] }, { marker: "2", exact: [ + "goTo", "onClick", - { name: "className", kind: "JSX attribute", kindModifiers: "optional", sortText: completion.SortText.OptionalMember }, - "goTo" + { name: "className", kind: "property", kindModifiers: "optional", sortText: completion.SortText.OptionalMember }, ] }, { marker: ["3", "4", "5"], exact: [ - { name: "children", kind: "JSX attribute", kindModifiers: "optional", sortText: completion.SortText.OptionalMember }, - { name: "className", kind: "JSX attribute", kindModifiers: "optional", sortText: completion.SortText.OptionalMember } + { name: "children", kind: "property", kindModifiers: "optional", sortText: completion.SortText.OptionalMember }, + { name: "className", kind: "property", kindModifiers: "optional", sortText: completion.SortText.OptionalMember }, ] }, ); diff --git a/tests/cases/fourslash/tsxCompletion14.ts b/tests/cases/fourslash/tsxCompletion14.ts index 641d2cb824c6a..4f504f043f8ff 100644 --- a/tests/cases/fourslash/tsxCompletion14.ts +++ b/tests/cases/fourslash/tsxCompletion14.ts @@ -24,5 +24,5 @@ verify.completions( { marker: ["1", "3"], exact: ["ONE", "TWO"] }, - { marker: ["2", "4"], exact: ["Three", "Four"] }, + { marker: ["2", "4"], exact: ["Four", "Three"] }, ); diff --git a/tests/cases/fourslash/tsxCompletion7.ts b/tests/cases/fourslash/tsxCompletion7.ts index a54e860b35f21..1d31441ca1b94 100644 --- a/tests/cases/fourslash/tsxCompletion7.ts +++ b/tests/cases/fourslash/tsxCompletion7.ts @@ -13,7 +13,7 @@ verify.completions({ marker: "", exact: [ - { name: "ONE", kind: "JSX attribute", kindModifiers: "declare", sortText: completion.SortText.MemberDeclaredBySpreadAssignment }, - { name: "TWO", kind: "JSX attribute", kindModifiers: "declare", sortText: completion.SortText.LocationPriority } + { name: "TWO", kind: "property", kindModifiers: "declare", sortText: completion.SortText.LocationPriority }, + { name: "ONE", kind: "property", kindModifiers: "declare", sortText: completion.SortText.MemberDeclaredBySpreadAssignment }, ] }); diff --git a/tests/cases/fourslash/tsxCompletionOnOpeningTagWithoutJSX1.ts b/tests/cases/fourslash/tsxCompletionOnOpeningTagWithoutJSX1.ts index 256c4280f856d..8947f117ad507 100644 --- a/tests/cases/fourslash/tsxCompletionOnOpeningTagWithoutJSX1.ts +++ b/tests/cases/fourslash/tsxCompletionOnOpeningTagWithoutJSX1.ts @@ -4,4 +4,4 @@ //// var x = 'something' //// var y = ): void", - 5: "(JSX attribute) extra-prop: true" + 5: "(property) extra-prop: true" }); diff --git a/tests/cases/fourslash/tsxQuickInfo5.ts b/tests/cases/fourslash/tsxQuickInfo5.ts index 3ebf1bd0bdd04..35f821fe6b28d 100644 --- a/tests/cases/fourslash/tsxQuickInfo5.ts +++ b/tests/cases/fourslash/tsxQuickInfo5.ts @@ -13,6 +13,6 @@ verify.quickInfos({ 1: "function ComponentWithTwoAttributes(l: {\n key1: T;\n value: U;\n}): JSX.Element", - 2: "(JSX attribute) key1: T", - 3: "(JSX attribute) value: U", + 2: "(property) key1: T", + 3: "(property) value: U", }); diff --git a/tests/cases/user/create-react-app/test.json b/tests/cases/user/create-react-app/test.json index 98888de7fdbbb..ce221e2d44ab7 100644 --- a/tests/cases/user/create-react-app/test.json +++ b/tests/cases/user/create-react-app/test.json @@ -1,4 +1,5 @@ { "cloneUrl": "https://github.com/facebook/create-react-app.git", + "branch": "main", "types": [] } diff --git a/tests/cases/user/discord.js/package.json b/tests/cases/user/discord.js/package.json index c78d4cd0645b3..e612e378a471b 100644 --- a/tests/cases/user/discord.js/package.json +++ b/tests/cases/user/discord.js/package.json @@ -6,7 +6,7 @@ "author": "", "license": "Apache-2.0", "dependencies": { - "@types/node": "^8.0.47", + "@types/node": "^17.0.21", "discord.js": "latest" } } diff --git a/tests/cases/user/firebase/index.ts b/tests/cases/user/firebase/index.ts index dfd40bf009de7..7ff4d9858939e 100644 --- a/tests/cases/user/firebase/index.ts +++ b/tests/cases/user/firebase/index.ts @@ -1 +1 @@ -import firebase = require("firebase"); +import firebase = require("firebase/app"); diff --git a/tests/cases/user/formik/package.json b/tests/cases/user/formik/package.json index 9641ca9aea668..136cbfc2665a8 100644 --- a/tests/cases/user/formik/package.json +++ b/tests/cases/user/formik/package.json @@ -9,8 +9,8 @@ "author": "", "license": "Apache-2.0", "dependencies": { - "formik": "latest", + "@types/prop-types": "latest", "@types/react": "latest", - "@types/prop-types": "latest" + "formik": "latest" } } diff --git a/tests/cases/user/grunt/test.json b/tests/cases/user/grunt/test.json index 12d374564b258..82dc4bc9e7249 100644 --- a/tests/cases/user/grunt/test.json +++ b/tests/cases/user/grunt/test.json @@ -1,4 +1,5 @@ { "cloneUrl": "https://github.com/gruntjs/grunt.git", + "branch": "main", "types": ["node"] } diff --git a/tests/cases/user/mqtt/package.json b/tests/cases/user/mqtt/package.json index 072c255d5715b..4bb9717dc7462 100644 --- a/tests/cases/user/mqtt/package.json +++ b/tests/cases/user/mqtt/package.json @@ -6,6 +6,8 @@ "author": "", "license": "Apache-2.0", "dependencies": { + "@types/node": "latest", + "@types/ws": "latest", "mqtt": "latest" } } diff --git a/tests/cases/user/npm/test.json b/tests/cases/user/npm/test.json index d3056a0803b7e..a1930c733bdf9 100644 --- a/tests/cases/user/npm/test.json +++ b/tests/cases/user/npm/test.json @@ -1,4 +1,5 @@ { "cloneUrl": "https://github.com/npm/cli.git", + "branch": "latest", "types": ["node"] } diff --git a/tests/cases/user/puppeteer/test.json b/tests/cases/user/puppeteer/test.json index f2e61aca5f943..43ad613f39481 100644 --- a/tests/cases/user/puppeteer/test.json +++ b/tests/cases/user/puppeteer/test.json @@ -1,4 +1,5 @@ { "cloneUrl": "https://github.com/GoogleChrome/puppeteer.git", + "branch": "main", "types": [] } diff --git a/tests/cases/user/soap/package.json b/tests/cases/user/soap/package.json index 5882bdeea5cd4..4018060f3b490 100644 --- a/tests/cases/user/soap/package.json +++ b/tests/cases/user/soap/package.json @@ -7,6 +7,7 @@ "license": "Apache-2.0", "dependencies": { "@types/bluebird": "^3.5.17", + "@types/sax": "latest", "soap": "latest" } } diff --git a/tests/cases/user/ts-toolbelt/index.ts b/tests/cases/user/ts-toolbelt/index.ts index 6549c08f893c3..56c176b97a2ae 100644 --- a/tests/cases/user/ts-toolbelt/index.ts +++ b/tests/cases/user/ts-toolbelt/index.ts @@ -5,7 +5,7 @@ import {I, T, Test} from "ts-toolbelt"; const {check, checks} = Test; // iterates over `T` and returns the `Iteration` position when finished -type StdRecursiveIteration> = { +type StdRecursiveIteration> = { 0: StdRecursiveIteration>; 1: I.Pos; }[ diff --git a/tests/cases/user/ts-toolbelt/package.json b/tests/cases/user/ts-toolbelt/package.json index d066aeec2d688..5c03b2a121931 100644 --- a/tests/cases/user/ts-toolbelt/package.json +++ b/tests/cases/user/ts-toolbelt/package.json @@ -4,7 +4,7 @@ "description": "", "author": "", "license": "Apache-2.0", - "repository": { + "repository": { "type": "git", "url": "https://github.com/pirix-gh/ts-toolbelt" }, diff --git a/tests/cases/user/ts-toolbelt/tsconfig.json b/tests/cases/user/ts-toolbelt/tsconfig.json index fc0c19189c360..e653bb28957e5 100644 --- a/tests/cases/user/ts-toolbelt/tsconfig.json +++ b/tests/cases/user/ts-toolbelt/tsconfig.json @@ -1,5 +1,7 @@ { "compilerOptions": { - "strict": true + "strict": true, + "types": [], + "lib": ["es6"] } } diff --git a/tests/cases/user/vue/package.json b/tests/cases/user/vue/package.json index 69df82e9e0aa4..3f0ae848570ef 100644 --- a/tests/cases/user/vue/package.json +++ b/tests/cases/user/vue/package.json @@ -6,6 +6,7 @@ "author": "", "license": "Apache-2.0", "dependencies": { + "@babel/types": "latest", "vue": "latest" } } diff --git a/tests/cases/user/vuex/package.json b/tests/cases/user/vuex/package.json index 83d6c53c152b3..0321289fe9ec2 100644 --- a/tests/cases/user/vuex/package.json +++ b/tests/cases/user/vuex/package.json @@ -6,7 +6,8 @@ "author": "", "license": "Apache-2.0", "dependencies": { - "vue": "^2.5.2", + "@babel/types": "latest", + "vue": "latest", "vuex": "latest" } } diff --git a/tests/cases/user/webpack/test.json b/tests/cases/user/webpack/test.json index a3fcf317a7480..a4c1807b10875 100644 --- a/tests/cases/user/webpack/test.json +++ b/tests/cases/user/webpack/test.json @@ -1,4 +1,5 @@ { "cloneUrl": "https://github.com/webpack/webpack.git", + "branch": "main", "types": [] }

(params: P) => { >rest : Omit } = params; ->params : P +>params : Params return rest; >rest : Omit diff --git a/tests/baselines/reference/genericRestParameters3.errors.txt b/tests/baselines/reference/genericRestParameters3.errors.txt index 0f2612f6b80d3..d306bbf3a6748 100644 --- a/tests/baselines/reference/genericRestParameters3.errors.txt +++ b/tests/baselines/reference/genericRestParameters3.errors.txt @@ -4,7 +4,6 @@ tests/cases/conformance/types/rest/genericRestParameters3.ts(17,11): error TS234 tests/cases/conformance/types/rest/genericRestParameters3.ts(18,1): error TS2345: Argument of type '[]' is not assignable to parameter of type '[string] | [number, boolean]'. Type '[]' is not assignable to type '[number, boolean]'. Source has 0 element(s) but target requires 2. -tests/cases/conformance/types/rest/genericRestParameters3.ts(22,1): error TS2322: Type '(x: string, ...args: [string] | [number, boolean]) => void' is not assignable to type '(...args: [string, string] | [string, number, boolean]) => void'. tests/cases/conformance/types/rest/genericRestParameters3.ts(23,1): error TS2322: Type '(x: string, y: string) => void' is not assignable to type '(x: string, ...args: [string] | [number, boolean]) => void'. Types of parameters 'y' and 'args' are incompatible. Type '[string] | [number, boolean]' is not assignable to type '[y: string]'. @@ -15,7 +14,6 @@ tests/cases/conformance/types/rest/genericRestParameters3.ts(24,1): error TS2322 Type '[string] | [number, boolean]' is not assignable to type '[y: number, z: boolean]'. Type '[string]' is not assignable to type '[y: number, z: boolean]'. Source has 1 element(s) but target requires 2. -tests/cases/conformance/types/rest/genericRestParameters3.ts(25,1): error TS2322: Type '(...args: [string, string] | [string, number, boolean]) => void' is not assignable to type '(x: string, ...args: [string] | [number, boolean]) => void'. tests/cases/conformance/types/rest/genericRestParameters3.ts(35,1): error TS2554: Expected 1 arguments, but got 0. tests/cases/conformance/types/rest/genericRestParameters3.ts(36,21): error TS2345: Argument of type 'number' is not assignable to parameter of type '(...args: CoolArray) => void'. tests/cases/conformance/types/rest/genericRestParameters3.ts(37,21): error TS2345: Argument of type '(cb: (...args: T) => void) => void' is not assignable to parameter of type '(...args: CoolArray) => void'. @@ -36,7 +34,7 @@ tests/cases/conformance/types/rest/genericRestParameters3.ts(59,5): error TS2345 Source has 1 element(s) but target requires 2. -==== tests/cases/conformance/types/rest/genericRestParameters3.ts (15 errors) ==== +==== tests/cases/conformance/types/rest/genericRestParameters3.ts (13 errors) ==== declare let f1: (x: string, ...args: [string] | [number, boolean]) => void; declare let f2: (x: string, y: string) => void; declare let f3: (x: string, y: number, z: boolean) => void; @@ -66,9 +64,7 @@ tests/cases/conformance/types/rest/genericRestParameters3.ts(59,5): error TS2345 f2 = f1; f3 = f1; - f4 = f1; // Error, misaligned complex rest types - ~~ -!!! error TS2322: Type '(x: string, ...args: [string] | [number, boolean]) => void' is not assignable to type '(...args: [string, string] | [string, number, boolean]) => void'. + f4 = f1; f1 = f2; // Error ~~ !!! error TS2322: Type '(x: string, y: string) => void' is not assignable to type '(x: string, ...args: [string] | [number, boolean]) => void'. @@ -83,9 +79,7 @@ tests/cases/conformance/types/rest/genericRestParameters3.ts(59,5): error TS2345 !!! error TS2322: Type '[string] | [number, boolean]' is not assignable to type '[y: number, z: boolean]'. !!! error TS2322: Type '[string]' is not assignable to type '[y: number, z: boolean]'. !!! error TS2322: Source has 1 element(s) but target requires 2. - f1 = f4; // Error, misaligned complex rest types - ~~ -!!! error TS2322: Type '(...args: [string, string] | [string, number, boolean]) => void' is not assignable to type '(x: string, ...args: [string] | [number, boolean]) => void'. + f1 = f4; // Repro from #26110 @@ -159,4 +153,23 @@ tests/cases/conformance/types/rest/genericRestParameters3.ts(59,5): error TS2345 declare function foo2(...args: string[] | number[]): void; let x2: ReadonlyArray = ["hello"]; foo2(...x2); + + // Repros from #47754 + + type RestParams = [y: string] | [y: number]; + + type Signature = (x: string, ...rest: RestParams) => void; + + type MergedParams = Parameters; // [x: string, y: string] | [x: string, y: number] + + declare let ff1: (...rest: [string, string] | [string, number]) => void; + declare let ff2: (x: string, ...rest: [string] | [number]) => void; + + ff1 = ff2; + ff2 = ff1; + + function ff3(s1: (...args: [x: string, ...rest: A | [number]]) => void, s2: (x: string, ...rest: A | [number]) => void) { + s1 = s2; + s2 = s1; + } \ No newline at end of file diff --git a/tests/baselines/reference/genericRestParameters3.js b/tests/baselines/reference/genericRestParameters3.js index d085966b12ebd..880ebf286a560 100644 --- a/tests/baselines/reference/genericRestParameters3.js +++ b/tests/baselines/reference/genericRestParameters3.js @@ -20,10 +20,10 @@ f1("foo"); // Error f2 = f1; f3 = f1; -f4 = f1; // Error, misaligned complex rest types +f4 = f1; f1 = f2; // Error f1 = f3; // Error -f1 = f4; // Error, misaligned complex rest types +f1 = f4; // Repro from #26110 @@ -64,6 +64,25 @@ hmm("what"); // no error? A = [] | [number, string] ? declare function foo2(...args: string[] | number[]): void; let x2: ReadonlyArray = ["hello"]; foo2(...x2); + +// Repros from #47754 + +type RestParams = [y: string] | [y: number]; + +type Signature = (x: string, ...rest: RestParams) => void; + +type MergedParams = Parameters; // [x: string, y: string] | [x: string, y: number] + +declare let ff1: (...rest: [string, string] | [string, number]) => void; +declare let ff2: (x: string, ...rest: [string] | [number]) => void; + +ff1 = ff2; +ff2 = ff1; + +function ff3(s1: (...args: [x: string, ...rest: A | [number]]) => void, s2: (x: string, ...rest: A | [number]) => void) { + s1 = s2; + s2 = s1; +} //// [genericRestParameters3.js] @@ -87,10 +106,10 @@ f1("foo", 10); // Error f1("foo"); // Error f2 = f1; f3 = f1; -f4 = f1; // Error, misaligned complex rest types +f4 = f1; f1 = f2; // Error f1 = f3; // Error -f1 = f4; // Error, misaligned complex rest types +f1 = f4; foo(); // Error foo(100); // Error foo(foo); // Error @@ -112,6 +131,12 @@ hmm(1, "s"); // okay, A = [1, "s"] hmm("what"); // no error? A = [] | [number, string] ? var x2 = ["hello"]; foo2.apply(void 0, x2); +ff1 = ff2; +ff2 = ff1; +function ff3(s1, s2) { + s1 = s2; + s2 = s1; +} //// [genericRestParameters3.d.ts] @@ -135,3 +160,9 @@ declare const ca: CoolArray; declare function hmm(...args: A): void; declare function foo2(...args: string[] | number[]): void; declare let x2: ReadonlyArray; +declare type RestParams = [y: string] | [y: number]; +declare type Signature = (x: string, ...rest: RestParams) => void; +declare type MergedParams = Parameters; +declare let ff1: (...rest: [string, string] | [string, number]) => void; +declare let ff2: (x: string, ...rest: [string] | [number]) => void; +declare function ff3(s1: (...args: [x: string, ...rest: A | [number]]) => void, s2: (x: string, ...rest: A | [number]) => void): void; diff --git a/tests/baselines/reference/genericRestParameters3.symbols b/tests/baselines/reference/genericRestParameters3.symbols index 9bad8685db190..292aacfb8cdc8 100644 --- a/tests/baselines/reference/genericRestParameters3.symbols +++ b/tests/baselines/reference/genericRestParameters3.symbols @@ -67,7 +67,7 @@ f3 = f1; >f3 : Symbol(f3, Decl(genericRestParameters3.ts, 2, 11)) >f1 : Symbol(f1, Decl(genericRestParameters3.ts, 0, 11)) -f4 = f1; // Error, misaligned complex rest types +f4 = f1; >f4 : Symbol(f4, Decl(genericRestParameters3.ts, 3, 11)) >f1 : Symbol(f1, Decl(genericRestParameters3.ts, 0, 11)) @@ -79,7 +79,7 @@ f1 = f3; // Error >f1 : Symbol(f1, Decl(genericRestParameters3.ts, 0, 11)) >f3 : Symbol(f3, Decl(genericRestParameters3.ts, 2, 11)) -f1 = f4; // Error, misaligned complex rest types +f1 = f4; >f1 : Symbol(f1, Decl(genericRestParameters3.ts, 0, 11)) >f4 : Symbol(f4, Decl(genericRestParameters3.ts, 3, 11)) @@ -190,3 +190,56 @@ foo2(...x2); >foo2 : Symbol(foo2, Decl(genericRestParameters3.ts, 58, 12)) >x2 : Symbol(x2, Decl(genericRestParameters3.ts, 63, 3)) +// Repros from #47754 + +type RestParams = [y: string] | [y: number]; +>RestParams : Symbol(RestParams, Decl(genericRestParameters3.ts, 64, 12)) + +type Signature = (x: string, ...rest: RestParams) => void; +>Signature : Symbol(Signature, Decl(genericRestParameters3.ts, 68, 44)) +>x : Symbol(x, Decl(genericRestParameters3.ts, 70, 18)) +>rest : Symbol(rest, Decl(genericRestParameters3.ts, 70, 28)) +>RestParams : Symbol(RestParams, Decl(genericRestParameters3.ts, 64, 12)) + +type MergedParams = Parameters; // [x: string, y: string] | [x: string, y: number] +>MergedParams : Symbol(MergedParams, Decl(genericRestParameters3.ts, 70, 58)) +>Parameters : Symbol(Parameters, Decl(lib.es5.d.ts, --, --)) +>Signature : Symbol(Signature, Decl(genericRestParameters3.ts, 68, 44)) + +declare let ff1: (...rest: [string, string] | [string, number]) => void; +>ff1 : Symbol(ff1, Decl(genericRestParameters3.ts, 74, 11)) +>rest : Symbol(rest, Decl(genericRestParameters3.ts, 74, 18)) + +declare let ff2: (x: string, ...rest: [string] | [number]) => void; +>ff2 : Symbol(ff2, Decl(genericRestParameters3.ts, 75, 11)) +>x : Symbol(x, Decl(genericRestParameters3.ts, 75, 18)) +>rest : Symbol(rest, Decl(genericRestParameters3.ts, 75, 28)) + +ff1 = ff2; +>ff1 : Symbol(ff1, Decl(genericRestParameters3.ts, 74, 11)) +>ff2 : Symbol(ff2, Decl(genericRestParameters3.ts, 75, 11)) + +ff2 = ff1; +>ff2 : Symbol(ff2, Decl(genericRestParameters3.ts, 75, 11)) +>ff1 : Symbol(ff1, Decl(genericRestParameters3.ts, 74, 11)) + +function ff3(s1: (...args: [x: string, ...rest: A | [number]]) => void, s2: (x: string, ...rest: A | [number]) => void) { +>ff3 : Symbol(ff3, Decl(genericRestParameters3.ts, 78, 10)) +>A : Symbol(A, Decl(genericRestParameters3.ts, 80, 13)) +>s1 : Symbol(s1, Decl(genericRestParameters3.ts, 80, 34)) +>args : Symbol(args, Decl(genericRestParameters3.ts, 80, 39)) +>A : Symbol(A, Decl(genericRestParameters3.ts, 80, 13)) +>s2 : Symbol(s2, Decl(genericRestParameters3.ts, 80, 92)) +>x : Symbol(x, Decl(genericRestParameters3.ts, 80, 98)) +>rest : Symbol(rest, Decl(genericRestParameters3.ts, 80, 108)) +>A : Symbol(A, Decl(genericRestParameters3.ts, 80, 13)) + + s1 = s2; +>s1 : Symbol(s1, Decl(genericRestParameters3.ts, 80, 34)) +>s2 : Symbol(s2, Decl(genericRestParameters3.ts, 80, 92)) + + s2 = s1; +>s2 : Symbol(s2, Decl(genericRestParameters3.ts, 80, 92)) +>s1 : Symbol(s1, Decl(genericRestParameters3.ts, 80, 34)) +} + diff --git a/tests/baselines/reference/genericRestParameters3.types b/tests/baselines/reference/genericRestParameters3.types index add3bbab9d51e..be5b2c2091d05 100644 --- a/tests/baselines/reference/genericRestParameters3.types +++ b/tests/baselines/reference/genericRestParameters3.types @@ -93,7 +93,7 @@ f3 = f1; >f3 : (x: string, y: number, z: boolean) => void >f1 : (x: string, ...args: [string] | [number, boolean]) => void -f4 = f1; // Error, misaligned complex rest types +f4 = f1; >f4 = f1 : (x: string, ...args: [string] | [number, boolean]) => void >f4 : (...args: [string, string] | [string, number, boolean]) => void >f1 : (x: string, ...args: [string] | [number, boolean]) => void @@ -108,7 +108,7 @@ f1 = f3; // Error >f1 : (x: string, ...args: [string] | [number, boolean]) => void >f3 : (x: string, y: number, z: boolean) => void -f1 = f4; // Error, misaligned complex rest types +f1 = f4; >f1 = f4 : (...args: [string, string] | [string, number, boolean]) => void >f1 : (x: string, ...args: [string] | [number, boolean]) => void >f4 : (...args: [string, string] | [string, number, boolean]) => void @@ -227,3 +227,54 @@ foo2(...x2); >...x2 : string >x2 : readonly string[] +// Repros from #47754 + +type RestParams = [y: string] | [y: number]; +>RestParams : RestParams + +type Signature = (x: string, ...rest: RestParams) => void; +>Signature : Signature +>x : string +>rest : RestParams + +type MergedParams = Parameters; // [x: string, y: string] | [x: string, y: number] +>MergedParams : [x: string, y: string] | [x: string, y: number] + +declare let ff1: (...rest: [string, string] | [string, number]) => void; +>ff1 : (...rest: [string, string] | [string, number]) => void +>rest : [string, string] | [string, number] + +declare let ff2: (x: string, ...rest: [string] | [number]) => void; +>ff2 : (x: string, ...rest: [string] | [number]) => void +>x : string +>rest : [string] | [number] + +ff1 = ff2; +>ff1 = ff2 : (x: string, ...rest: [string] | [number]) => void +>ff1 : (...rest: [string, string] | [string, number]) => void +>ff2 : (x: string, ...rest: [string] | [number]) => void + +ff2 = ff1; +>ff2 = ff1 : (...rest: [string, string] | [string, number]) => void +>ff2 : (x: string, ...rest: [string] | [number]) => void +>ff1 : (...rest: [string, string] | [string, number]) => void + +function ff3(s1: (...args: [x: string, ...rest: A | [number]]) => void, s2: (x: string, ...rest: A | [number]) => void) { +>ff3 : (s1: (...args: [x: string, ...rest: A | [number]]) => void, s2: (x: string, ...rest: A | [number]) => void) => void +>s1 : (...args: [x: string, ...rest: A | [number]]) => void +>args : [string, number] | [x: string, ...rest: A] +>s2 : (x: string, ...rest: A | [number]) => void +>x : string +>rest : [number] | A + + s1 = s2; +>s1 = s2 : (x: string, ...rest: [number] | A) => void +>s1 : (...args: [string, number] | [x: string, ...rest: A]) => void +>s2 : (x: string, ...rest: [number] | A) => void + + s2 = s1; +>s2 = s1 : (...args: [string, number] | [x: string, ...rest: A]) => void +>s2 : (x: string, ...rest: [number] | A) => void +>s1 : (...args: [string, number] | [x: string, ...rest: A]) => void +} + diff --git a/tests/baselines/reference/genericUnboundedTypeParamAssignability.errors.txt b/tests/baselines/reference/genericUnboundedTypeParamAssignability.errors.txt new file mode 100644 index 0000000000000..6d7b87ebd3351 --- /dev/null +++ b/tests/baselines/reference/genericUnboundedTypeParamAssignability.errors.txt @@ -0,0 +1,36 @@ +tests/cases/compiler/genericUnboundedTypeParamAssignability.ts(2,5): error TS2339: Property 'toString' does not exist on type 'T'. +tests/cases/compiler/genericUnboundedTypeParamAssignability.ts(15,6): error TS2345: Argument of type 'T' is not assignable to parameter of type '{}'. +tests/cases/compiler/genericUnboundedTypeParamAssignability.ts(16,6): error TS2345: Argument of type 'T' is not assignable to parameter of type 'Record'. +tests/cases/compiler/genericUnboundedTypeParamAssignability.ts(17,5): error TS2339: Property 'toString' does not exist on type 'T'. + + +==== tests/cases/compiler/genericUnboundedTypeParamAssignability.ts (4 errors) ==== + function f1(o: T) { + o.toString(); // error + ~~~~~~~~ +!!! error TS2339: Property 'toString' does not exist on type 'T'. + } + + function f2(o: T) { + o.toString(); // no error + } + + function f3>(o: T) { + o.toString(); // no error + } + + function user(t: T) { + f1(t); + f2(t); // error in strict, unbounded T doesn't satisfy the constraint + ~ +!!! error TS2345: Argument of type 'T' is not assignable to parameter of type '{}'. +!!! related TS2208 tests/cases/compiler/genericUnboundedTypeParamAssignability.ts:13:15: This type parameter probably needs an `extends object` constraint. + f3(t); // error in strict, unbounded T doesn't satisfy the constraint + ~ +!!! error TS2345: Argument of type 'T' is not assignable to parameter of type 'Record'. +!!! related TS2208 tests/cases/compiler/genericUnboundedTypeParamAssignability.ts:13:15: This type parameter probably needs an `extends object` constraint. + t.toString(); // error, for the same reason as f1() + ~~~~~~~~ +!!! error TS2339: Property 'toString' does not exist on type 'T'. + } + \ No newline at end of file diff --git a/tests/baselines/reference/genericUnboundedTypeParamAssignability.js b/tests/baselines/reference/genericUnboundedTypeParamAssignability.js new file mode 100644 index 0000000000000..9c13758f22b6c --- /dev/null +++ b/tests/baselines/reference/genericUnboundedTypeParamAssignability.js @@ -0,0 +1,38 @@ +//// [genericUnboundedTypeParamAssignability.ts] +function f1(o: T) { + o.toString(); // error +} + +function f2(o: T) { + o.toString(); // no error +} + +function f3>(o: T) { + o.toString(); // no error +} + +function user(t: T) { + f1(t); + f2(t); // error in strict, unbounded T doesn't satisfy the constraint + f3(t); // error in strict, unbounded T doesn't satisfy the constraint + t.toString(); // error, for the same reason as f1() +} + + +//// [genericUnboundedTypeParamAssignability.js] +"use strict"; +function f1(o) { + o.toString(); // error +} +function f2(o) { + o.toString(); // no error +} +function f3(o) { + o.toString(); // no error +} +function user(t) { + f1(t); + f2(t); // error in strict, unbounded T doesn't satisfy the constraint + f3(t); // error in strict, unbounded T doesn't satisfy the constraint + t.toString(); // error, for the same reason as f1() +} diff --git a/tests/baselines/reference/genericUnboundedTypeParamAssignability.symbols b/tests/baselines/reference/genericUnboundedTypeParamAssignability.symbols new file mode 100644 index 0000000000000..b394adbbacb09 --- /dev/null +++ b/tests/baselines/reference/genericUnboundedTypeParamAssignability.symbols @@ -0,0 +1,58 @@ +=== tests/cases/compiler/genericUnboundedTypeParamAssignability.ts === +function f1(o: T) { +>f1 : Symbol(f1, Decl(genericUnboundedTypeParamAssignability.ts, 0, 0)) +>T : Symbol(T, Decl(genericUnboundedTypeParamAssignability.ts, 0, 12)) +>o : Symbol(o, Decl(genericUnboundedTypeParamAssignability.ts, 0, 15)) +>T : Symbol(T, Decl(genericUnboundedTypeParamAssignability.ts, 0, 12)) + + o.toString(); // error +>o : Symbol(o, Decl(genericUnboundedTypeParamAssignability.ts, 0, 15)) +} + +function f2(o: T) { +>f2 : Symbol(f2, Decl(genericUnboundedTypeParamAssignability.ts, 2, 1)) +>T : Symbol(T, Decl(genericUnboundedTypeParamAssignability.ts, 4, 12)) +>o : Symbol(o, Decl(genericUnboundedTypeParamAssignability.ts, 4, 26)) +>T : Symbol(T, Decl(genericUnboundedTypeParamAssignability.ts, 4, 12)) + + o.toString(); // no error +>o.toString : Symbol(Object.toString, Decl(lib.es5.d.ts, --, --)) +>o : Symbol(o, Decl(genericUnboundedTypeParamAssignability.ts, 4, 26)) +>toString : Symbol(Object.toString, Decl(lib.es5.d.ts, --, --)) +} + +function f3>(o: T) { +>f3 : Symbol(f3, Decl(genericUnboundedTypeParamAssignability.ts, 6, 1)) +>T : Symbol(T, Decl(genericUnboundedTypeParamAssignability.ts, 8, 12)) +>Record : Symbol(Record, Decl(lib.es5.d.ts, --, --)) +>o : Symbol(o, Decl(genericUnboundedTypeParamAssignability.ts, 8, 43)) +>T : Symbol(T, Decl(genericUnboundedTypeParamAssignability.ts, 8, 12)) + + o.toString(); // no error +>o.toString : Symbol(Object.toString, Decl(lib.es5.d.ts, --, --)) +>o : Symbol(o, Decl(genericUnboundedTypeParamAssignability.ts, 8, 43)) +>toString : Symbol(Object.toString, Decl(lib.es5.d.ts, --, --)) +} + +function user(t: T) { +>user : Symbol(user, Decl(genericUnboundedTypeParamAssignability.ts, 10, 1)) +>T : Symbol(T, Decl(genericUnboundedTypeParamAssignability.ts, 12, 14)) +>t : Symbol(t, Decl(genericUnboundedTypeParamAssignability.ts, 12, 17)) +>T : Symbol(T, Decl(genericUnboundedTypeParamAssignability.ts, 12, 14)) + + f1(t); +>f1 : Symbol(f1, Decl(genericUnboundedTypeParamAssignability.ts, 0, 0)) +>t : Symbol(t, Decl(genericUnboundedTypeParamAssignability.ts, 12, 17)) + + f2(t); // error in strict, unbounded T doesn't satisfy the constraint +>f2 : Symbol(f2, Decl(genericUnboundedTypeParamAssignability.ts, 2, 1)) +>t : Symbol(t, Decl(genericUnboundedTypeParamAssignability.ts, 12, 17)) + + f3(t); // error in strict, unbounded T doesn't satisfy the constraint +>f3 : Symbol(f3, Decl(genericUnboundedTypeParamAssignability.ts, 6, 1)) +>t : Symbol(t, Decl(genericUnboundedTypeParamAssignability.ts, 12, 17)) + + t.toString(); // error, for the same reason as f1() +>t : Symbol(t, Decl(genericUnboundedTypeParamAssignability.ts, 12, 17)) +} + diff --git a/tests/baselines/reference/genericUnboundedTypeParamAssignability.types b/tests/baselines/reference/genericUnboundedTypeParamAssignability.types new file mode 100644 index 0000000000000..74136a19382a6 --- /dev/null +++ b/tests/baselines/reference/genericUnboundedTypeParamAssignability.types @@ -0,0 +1,60 @@ +=== tests/cases/compiler/genericUnboundedTypeParamAssignability.ts === +function f1(o: T) { +>f1 : (o: T) => void +>o : T + + o.toString(); // error +>o.toString() : any +>o.toString : any +>o : T +>toString : any +} + +function f2(o: T) { +>f2 : (o: T) => void +>o : T + + o.toString(); // no error +>o.toString() : string +>o.toString : () => string +>o : T +>toString : () => string +} + +function f3>(o: T) { +>f3 : >(o: T) => void +>o : T + + o.toString(); // no error +>o.toString() : string +>o.toString : () => string +>o : T +>toString : () => string +} + +function user(t: T) { +>user : (t: T) => void +>t : T + + f1(t); +>f1(t) : void +>f1 : (o: T) => void +>t : T + + f2(t); // error in strict, unbounded T doesn't satisfy the constraint +>f2(t) : void +>f2 : (o: T) => void +>t : T + + f3(t); // error in strict, unbounded T doesn't satisfy the constraint +>f3(t) : void +>f3 : >(o: T) => void +>t : T + + t.toString(); // error, for the same reason as f1() +>t.toString() : any +>t.toString : any +>t : T +>toString : any +} + diff --git a/tests/baselines/reference/globalThisBlockscopedProperties.types b/tests/baselines/reference/globalThisBlockscopedProperties.types index 3b09b649ba8f4..91ad0ca949a91 100644 --- a/tests/baselines/reference/globalThisBlockscopedProperties.types +++ b/tests/baselines/reference/globalThisBlockscopedProperties.types @@ -64,6 +64,6 @@ declare let test3: (typeof globalThis)['z'] // error >globalThis : typeof globalThis declare let themAll: keyof typeof globalThis ->themAll : "undefined" | "x" | "globalThis" | "eval" | "parseInt" | "parseFloat" | "isNaN" | "isFinite" | "decodeURI" | "decodeURIComponent" | "encodeURI" | "encodeURIComponent" | "escape" | "unescape" | "NaN" | "Infinity" | "Object" | "Function" | "String" | "Boolean" | "Number" | "Math" | "Date" | "RegExp" | "Error" | "EvalError" | "RangeError" | "ReferenceError" | "SyntaxError" | "TypeError" | "URIError" | "JSON" | "Array" | "ArrayBuffer" | "DataView" | "Int8Array" | "Uint8Array" | "Uint8ClampedArray" | "Int16Array" | "Uint16Array" | "Int32Array" | "Uint32Array" | "Float32Array" | "Float64Array" | "Intl" | "alert" | "blur" | "cancelIdleCallback" | "captureEvents" | "close" | "confirm" | "focus" | "getComputedStyle" | "getSelection" | "matchMedia" | "moveBy" | "moveTo" | "open" | "postMessage" | "print" | "prompt" | "releaseEvents" | "requestIdleCallback" | "resizeBy" | "resizeTo" | "scroll" | "scrollBy" | "scrollTo" | "stop" | "toString" | "dispatchEvent" | "cancelAnimationFrame" | "requestAnimationFrame" | "atob" | "btoa" | "clearInterval" | "clearTimeout" | "createImageBitmap" | "fetch" | "queueMicrotask" | "setInterval" | "setTimeout" | "addEventListener" | "removeEventListener" | "NodeFilter" | "AbortController" | "AbortSignal" | "AbstractRange" | "AnalyserNode" | "Animation" | "AnimationEffect" | "AnimationEvent" | "AnimationPlaybackEvent" | "AnimationTimeline" | "Attr" | "AudioBuffer" | "AudioBufferSourceNode" | "AudioContext" | "AudioDestinationNode" | "AudioListener" | "AudioNode" | "AudioParam" | "AudioParamMap" | "AudioProcessingEvent" | "AudioScheduledSourceNode" | "AudioWorklet" | "AudioWorkletNode" | "AuthenticatorAssertionResponse" | "AuthenticatorAttestationResponse" | "AuthenticatorResponse" | "BarProp" | "BaseAudioContext" | "BeforeUnloadEvent" | "BiquadFilterNode" | "Blob" | "BlobEvent" | "BroadcastChannel" | "ByteLengthQueuingStrategy" | "CDATASection" | "CSSAnimation" | "CSSConditionRule" | "CSSCounterStyleRule" | "CSSFontFaceRule" | "CSSGroupingRule" | "CSSImportRule" | "CSSKeyframeRule" | "CSSKeyframesRule" | "CSSMediaRule" | "CSSNamespaceRule" | "CSSPageRule" | "CSSRule" | "CSSRuleList" | "CSSStyleDeclaration" | "CSSStyleRule" | "CSSStyleSheet" | "CSSSupportsRule" | "CSSTransition" | "Cache" | "CacheStorage" | "CanvasGradient" | "CanvasPattern" | "CanvasRenderingContext2D" | "ChannelMergerNode" | "ChannelSplitterNode" | "CharacterData" | "Clipboard" | "ClipboardEvent" | "ClipboardItem" | "CloseEvent" | "Comment" | "CompositionEvent" | "ConstantSourceNode" | "ConvolverNode" | "CountQueuingStrategy" | "Credential" | "CredentialsContainer" | "Crypto" | "CryptoKey" | "CustomElementRegistry" | "CustomEvent" | "DOMException" | "DOMImplementation" | "DOMMatrix" | "SVGMatrix" | "WebKitCSSMatrix" | "DOMMatrixReadOnly" | "DOMParser" | "DOMPoint" | "SVGPoint" | "DOMPointReadOnly" | "DOMQuad" | "DOMRect" | "SVGRect" | "DOMRectList" | "DOMRectReadOnly" | "DOMStringList" | "DOMStringMap" | "DOMTokenList" | "DataTransfer" | "DataTransferItem" | "DataTransferItemList" | "DelayNode" | "DeviceMotionEvent" | "DeviceOrientationEvent" | "Document" | "DocumentFragment" | "DocumentTimeline" | "DocumentType" | "DragEvent" | "DynamicsCompressorNode" | "Element" | "ErrorEvent" | "Event" | "EventSource" | "EventTarget" | "External" | "File" | "FileList" | "FileReader" | "FileSystem" | "FileSystemDirectoryEntry" | "FileSystemDirectoryReader" | "FileSystemEntry" | "FileSystemFileEntry" | "FocusEvent" | "FontFace" | "FontFaceSet" | "FontFaceSetLoadEvent" | "FormData" | "FormDataEvent" | "GainNode" | "Gamepad" | "GamepadButton" | "GamepadEvent" | "GamepadHapticActuator" | "Geolocation" | "GeolocationCoordinates" | "GeolocationPosition" | "GeolocationPositionError" | "HTMLAllCollection" | "HTMLAnchorElement" | "HTMLAreaElement" | "HTMLAudioElement" | "HTMLBRElement" | "HTMLBaseElement" | "HTMLBodyElement" | "HTMLButtonElement" | "HTMLCanvasElement" | "HTMLCollection" | "HTMLDListElement" | "HTMLDataElement" | "HTMLDataListElement" | "HTMLDetailsElement" | "HTMLDirectoryElement" | "HTMLDivElement" | "HTMLDocument" | "HTMLElement" | "HTMLEmbedElement" | "HTMLFieldSetElement" | "HTMLFontElement" | "HTMLFormControlsCollection" | "HTMLFormElement" | "HTMLFrameElement" | "HTMLFrameSetElement" | "HTMLHRElement" | "HTMLHeadElement" | "HTMLHeadingElement" | "HTMLHtmlElement" | "HTMLIFrameElement" | "HTMLImageElement" | "HTMLInputElement" | "HTMLLIElement" | "HTMLLabelElement" | "HTMLLegendElement" | "HTMLLinkElement" | "HTMLMapElement" | "HTMLMarqueeElement" | "HTMLMediaElement" | "HTMLMenuElement" | "HTMLMetaElement" | "HTMLMeterElement" | "HTMLModElement" | "HTMLOListElement" | "HTMLObjectElement" | "HTMLOptGroupElement" | "HTMLOptionElement" | "HTMLOptionsCollection" | "HTMLOutputElement" | "HTMLParagraphElement" | "HTMLParamElement" | "HTMLPictureElement" | "HTMLPreElement" | "HTMLProgressElement" | "HTMLQuoteElement" | "HTMLScriptElement" | "HTMLSelectElement" | "HTMLSlotElement" | "HTMLSourceElement" | "HTMLSpanElement" | "HTMLStyleElement" | "HTMLTableCaptionElement" | "HTMLTableCellElement" | "HTMLTableColElement" | "HTMLTableElement" | "HTMLTableRowElement" | "HTMLTableSectionElement" | "HTMLTemplateElement" | "HTMLTextAreaElement" | "HTMLTimeElement" | "HTMLTitleElement" | "HTMLTrackElement" | "HTMLUListElement" | "HTMLUnknownElement" | "HTMLVideoElement" | "HashChangeEvent" | "Headers" | "History" | "IDBCursor" | "IDBCursorWithValue" | "IDBDatabase" | "IDBFactory" | "IDBIndex" | "IDBKeyRange" | "IDBObjectStore" | "IDBOpenDBRequest" | "IDBRequest" | "IDBTransaction" | "IDBVersionChangeEvent" | "IIRFilterNode" | "IdleDeadline" | "ImageBitmap" | "ImageBitmapRenderingContext" | "ImageData" | "InputEvent" | "IntersectionObserver" | "IntersectionObserverEntry" | "KeyboardEvent" | "KeyframeEffect" | "Location" | "MathMLElement" | "MediaCapabilities" | "MediaDeviceInfo" | "MediaDevices" | "MediaElementAudioSourceNode" | "MediaEncryptedEvent" | "MediaError" | "MediaKeyMessageEvent" | "MediaKeySession" | "MediaKeyStatusMap" | "MediaKeySystemAccess" | "MediaKeys" | "MediaList" | "MediaMetadata" | "MediaQueryList" | "MediaQueryListEvent" | "MediaRecorder" | "MediaRecorderErrorEvent" | "MediaSession" | "MediaSource" | "MediaStream" | "MediaStreamAudioDestinationNode" | "MediaStreamAudioSourceNode" | "MediaStreamTrack" | "MediaStreamTrackEvent" | "MessageChannel" | "MessageEvent" | "MessagePort" | "MimeType" | "MimeTypeArray" | "MouseEvent" | "MutationEvent" | "MutationObserver" | "MutationRecord" | "NamedNodeMap" | "Navigator" | "NetworkInformation" | "Node" | "NodeIterator" | "NodeList" | "Notification" | "OfflineAudioCompletionEvent" | "OfflineAudioContext" | "OscillatorNode" | "OverconstrainedError" | "PageTransitionEvent" | "PannerNode" | "Path2D" | "PaymentAddress" | "PaymentMethodChangeEvent" | "PaymentRequest" | "PaymentRequestUpdateEvent" | "PaymentResponse" | "Performance" | "PerformanceEntry" | "PerformanceEventTiming" | "PerformanceMark" | "PerformanceMeasure" | "PerformanceNavigation" | "PerformanceNavigationTiming" | "PerformanceObserver" | "PerformanceObserverEntryList" | "PerformancePaintTiming" | "PerformanceResourceTiming" | "PerformanceServerTiming" | "PerformanceTiming" | "PeriodicWave" | "PermissionStatus" | "Permissions" | "PictureInPictureWindow" | "Plugin" | "PluginArray" | "PointerEvent" | "PopStateEvent" | "ProcessingInstruction" | "ProgressEvent" | "PromiseRejectionEvent" | "PublicKeyCredential" | "PushManager" | "PushSubscription" | "PushSubscriptionOptions" | "RTCCertificate" | "RTCDTMFSender" | "RTCDTMFToneChangeEvent" | "RTCDataChannel" | "RTCDataChannelEvent" | "RTCDtlsTransport" | "RTCIceCandidate" | "RTCIceTransport" | "RTCPeerConnection" | "RTCPeerConnectionIceErrorEvent" | "RTCPeerConnectionIceEvent" | "RTCRtpReceiver" | "RTCRtpSender" | "RTCRtpTransceiver" | "RTCSessionDescription" | "RTCStatsReport" | "RTCTrackEvent" | "RadioNodeList" | "Range" | "ReadableStream" | "ReadableStreamDefaultController" | "ReadableStreamDefaultReader" | "RemotePlayback" | "Request" | "ResizeObserver" | "ResizeObserverEntry" | "ResizeObserverSize" | "Response" | "SVGAElement" | "SVGAngle" | "SVGAnimateElement" | "SVGAnimateMotionElement" | "SVGAnimateTransformElement" | "SVGAnimatedAngle" | "SVGAnimatedBoolean" | "SVGAnimatedEnumeration" | "SVGAnimatedInteger" | "SVGAnimatedLength" | "SVGAnimatedLengthList" | "SVGAnimatedNumber" | "SVGAnimatedNumberList" | "SVGAnimatedPreserveAspectRatio" | "SVGAnimatedRect" | "SVGAnimatedString" | "SVGAnimatedTransformList" | "SVGAnimationElement" | "SVGCircleElement" | "SVGClipPathElement" | "SVGComponentTransferFunctionElement" | "SVGDefsElement" | "SVGDescElement" | "SVGElement" | "SVGEllipseElement" | "SVGFEBlendElement" | "SVGFEColorMatrixElement" | "SVGFEComponentTransferElement" | "SVGFECompositeElement" | "SVGFEConvolveMatrixElement" | "SVGFEDiffuseLightingElement" | "SVGFEDisplacementMapElement" | "SVGFEDistantLightElement" | "SVGFEDropShadowElement" | "SVGFEFloodElement" | "SVGFEFuncAElement" | "SVGFEFuncBElement" | "SVGFEFuncGElement" | "SVGFEFuncRElement" | "SVGFEGaussianBlurElement" | "SVGFEImageElement" | "SVGFEMergeElement" | "SVGFEMergeNodeElement" | "SVGFEMorphologyElement" | "SVGFEOffsetElement" | "SVGFEPointLightElement" | "SVGFESpecularLightingElement" | "SVGFESpotLightElement" | "SVGFETileElement" | "SVGFETurbulenceElement" | "SVGFilterElement" | "SVGForeignObjectElement" | "SVGGElement" | "SVGGeometryElement" | "SVGGradientElement" | "SVGGraphicsElement" | "SVGImageElement" | "SVGLength" | "SVGLengthList" | "SVGLineElement" | "SVGLinearGradientElement" | "SVGMPathElement" | "SVGMarkerElement" | "SVGMaskElement" | "SVGMetadataElement" | "SVGNumber" | "SVGNumberList" | "SVGPathElement" | "SVGPatternElement" | "SVGPointList" | "SVGPolygonElement" | "SVGPolylineElement" | "SVGPreserveAspectRatio" | "SVGRadialGradientElement" | "SVGRectElement" | "SVGSVGElement" | "SVGScriptElement" | "SVGSetElement" | "SVGStopElement" | "SVGStringList" | "SVGStyleElement" | "SVGSwitchElement" | "SVGSymbolElement" | "SVGTSpanElement" | "SVGTextContentElement" | "SVGTextElement" | "SVGTextPathElement" | "SVGTextPositioningElement" | "SVGTitleElement" | "SVGTransform" | "SVGTransformList" | "SVGUnitTypes" | "SVGUseElement" | "SVGViewElement" | "Screen" | "ScreenOrientation" | "ScriptProcessorNode" | "SecurityPolicyViolationEvent" | "Selection" | "ServiceWorker" | "ServiceWorkerContainer" | "ServiceWorkerRegistration" | "ShadowRoot" | "SharedWorker" | "SourceBuffer" | "SourceBufferList" | "SpeechRecognitionAlternative" | "SpeechRecognitionResult" | "SpeechRecognitionResultList" | "SpeechSynthesis" | "SpeechSynthesisErrorEvent" | "SpeechSynthesisEvent" | "SpeechSynthesisUtterance" | "SpeechSynthesisVoice" | "StaticRange" | "StereoPannerNode" | "Storage" | "StorageEvent" | "StorageManager" | "StyleSheet" | "StyleSheetList" | "SubmitEvent" | "SubtleCrypto" | "Text" | "TextDecoder" | "TextDecoderStream" | "TextEncoder" | "TextEncoderStream" | "TextMetrics" | "TextTrack" | "TextTrackCue" | "TextTrackCueList" | "TextTrackList" | "TimeRanges" | "Touch" | "TouchEvent" | "TouchList" | "TrackEvent" | "TransformStream" | "TransformStreamDefaultController" | "TransitionEvent" | "TreeWalker" | "UIEvent" | "URL" | "webkitURL" | "URLSearchParams" | "VTTCue" | "VTTRegion" | "ValidityState" | "VideoPlaybackQuality" | "VisualViewport" | "WaveShaperNode" | "WebGL2RenderingContext" | "WebGLActiveInfo" | "WebGLBuffer" | "WebGLContextEvent" | "WebGLFramebuffer" | "WebGLProgram" | "WebGLQuery" | "WebGLRenderbuffer" | "WebGLRenderingContext" | "WebGLSampler" | "WebGLShader" | "WebGLShaderPrecisionFormat" | "WebGLSync" | "WebGLTexture" | "WebGLTransformFeedback" | "WebGLUniformLocation" | "WebGLVertexArrayObject" | "WebSocket" | "WheelEvent" | "Window" | "Worker" | "Worklet" | "WritableStream" | "WritableStreamDefaultController" | "WritableStreamDefaultWriter" | "XMLDocument" | "XMLHttpRequest" | "XMLHttpRequestEventTarget" | "XMLHttpRequestUpload" | "XMLSerializer" | "XPathEvaluator" | "XPathExpression" | "XPathResult" | "XSLTProcessor" | "console" | "CSS" | "WebAssembly" | "Audio" | "Image" | "Option" | "clientInformation" | "closed" | "customElements" | "devicePixelRatio" | "document" | "event" | "external" | "frameElement" | "frames" | "history" | "innerHeight" | "innerWidth" | "length" | "location" | "locationbar" | "menubar" | "navigator" | "ondevicemotion" | "ondeviceorientation" | "onorientationchange" | "opener" | "orientation" | "outerHeight" | "outerWidth" | "pageXOffset" | "pageYOffset" | "parent" | "personalbar" | "screen" | "screenLeft" | "screenTop" | "screenX" | "screenY" | "scrollX" | "scrollY" | "scrollbars" | "self" | "speechSynthesis" | "status" | "statusbar" | "toolbar" | "top" | "visualViewport" | "window" | "onabort" | "onanimationcancel" | "onanimationend" | "onanimationiteration" | "onanimationstart" | "onauxclick" | "onblur" | "oncanplay" | "oncanplaythrough" | "onchange" | "onclick" | "onclose" | "oncontextmenu" | "oncuechange" | "ondblclick" | "ondrag" | "ondragend" | "ondragenter" | "ondragleave" | "ondragover" | "ondragstart" | "ondrop" | "ondurationchange" | "onemptied" | "onended" | "onerror" | "onfocus" | "onformdata" | "ongotpointercapture" | "oninput" | "oninvalid" | "onkeydown" | "onkeypress" | "onkeyup" | "onload" | "onloadeddata" | "onloadedmetadata" | "onloadstart" | "onlostpointercapture" | "onmousedown" | "onmouseenter" | "onmouseleave" | "onmousemove" | "onmouseout" | "onmouseover" | "onmouseup" | "onpause" | "onplay" | "onplaying" | "onpointercancel" | "onpointerdown" | "onpointerenter" | "onpointerleave" | "onpointermove" | "onpointerout" | "onpointerover" | "onpointerup" | "onprogress" | "onratechange" | "onreset" | "onresize" | "onscroll" | "onseeked" | "onseeking" | "onselect" | "onselectionchange" | "onselectstart" | "onstalled" | "onsubmit" | "onsuspend" | "ontimeupdate" | "ontoggle" | "ontouchcancel" | "ontouchend" | "ontouchmove" | "ontouchstart" | "ontransitioncancel" | "ontransitionend" | "ontransitionrun" | "ontransitionstart" | "onvolumechange" | "onwaiting" | "onwebkitanimationend" | "onwebkitanimationiteration" | "onwebkitanimationstart" | "onwebkittransitionend" | "onwheel" | "onafterprint" | "onbeforeprint" | "onbeforeunload" | "ongamepadconnected" | "ongamepaddisconnected" | "onhashchange" | "onlanguagechange" | "onmessage" | "onmessageerror" | "onoffline" | "ononline" | "onpagehide" | "onpageshow" | "onpopstate" | "onrejectionhandled" | "onstorage" | "onunhandledrejection" | "onunload" | "localStorage" | "caches" | "crossOriginIsolated" | "crypto" | "indexedDB" | "isSecureContext" | "origin" | "performance" | "sessionStorage" | "importScripts" | "ActiveXObject" | "WScript" | "WSH" | "Enumerator" | "VBArray" +>themAll : "undefined" | "x" | "globalThis" | "eval" | "parseInt" | "parseFloat" | "isNaN" | "isFinite" | "decodeURI" | "decodeURIComponent" | "encodeURI" | "encodeURIComponent" | "escape" | "unescape" | "NaN" | "Infinity" | "Object" | "Function" | "String" | "Boolean" | "Number" | "Math" | "Date" | "RegExp" | "Error" | "EvalError" | "RangeError" | "ReferenceError" | "SyntaxError" | "TypeError" | "URIError" | "JSON" | "Array" | "ArrayBuffer" | "DataView" | "Int8Array" | "Uint8Array" | "Uint8ClampedArray" | "Int16Array" | "Uint16Array" | "Int32Array" | "Uint32Array" | "Float32Array" | "Float64Array" | "Intl" | "alert" | "blur" | "cancelIdleCallback" | "captureEvents" | "close" | "confirm" | "focus" | "getComputedStyle" | "getSelection" | "matchMedia" | "moveBy" | "moveTo" | "open" | "postMessage" | "print" | "prompt" | "releaseEvents" | "requestIdleCallback" | "resizeBy" | "resizeTo" | "scroll" | "scrollBy" | "scrollTo" | "stop" | "toString" | "dispatchEvent" | "cancelAnimationFrame" | "requestAnimationFrame" | "atob" | "btoa" | "clearInterval" | "clearTimeout" | "createImageBitmap" | "fetch" | "queueMicrotask" | "reportError" | "setInterval" | "setTimeout" | "addEventListener" | "removeEventListener" | "NodeFilter" | "AbortController" | "AbortSignal" | "AbstractRange" | "AnalyserNode" | "Animation" | "AnimationEffect" | "AnimationEvent" | "AnimationPlaybackEvent" | "AnimationTimeline" | "Attr" | "AudioBuffer" | "AudioBufferSourceNode" | "AudioContext" | "AudioDestinationNode" | "AudioListener" | "AudioNode" | "AudioParam" | "AudioParamMap" | "AudioProcessingEvent" | "AudioScheduledSourceNode" | "AudioWorklet" | "AudioWorkletNode" | "AuthenticatorAssertionResponse" | "AuthenticatorAttestationResponse" | "AuthenticatorResponse" | "BarProp" | "BaseAudioContext" | "BeforeUnloadEvent" | "BiquadFilterNode" | "Blob" | "BlobEvent" | "BroadcastChannel" | "ByteLengthQueuingStrategy" | "CDATASection" | "CSSAnimation" | "CSSConditionRule" | "CSSCounterStyleRule" | "CSSFontFaceRule" | "CSSGroupingRule" | "CSSImportRule" | "CSSKeyframeRule" | "CSSKeyframesRule" | "CSSMediaRule" | "CSSNamespaceRule" | "CSSPageRule" | "CSSRule" | "CSSRuleList" | "CSSStyleDeclaration" | "CSSStyleRule" | "CSSStyleSheet" | "CSSSupportsRule" | "CSSTransition" | "Cache" | "CacheStorage" | "CanvasCaptureMediaStreamTrack" | "CanvasGradient" | "CanvasPattern" | "CanvasRenderingContext2D" | "ChannelMergerNode" | "ChannelSplitterNode" | "CharacterData" | "Clipboard" | "ClipboardEvent" | "ClipboardItem" | "CloseEvent" | "Comment" | "CompositionEvent" | "ConstantSourceNode" | "ConvolverNode" | "CountQueuingStrategy" | "Credential" | "CredentialsContainer" | "Crypto" | "CryptoKey" | "CustomElementRegistry" | "CustomEvent" | "DOMException" | "DOMImplementation" | "DOMMatrix" | "SVGMatrix" | "WebKitCSSMatrix" | "DOMMatrixReadOnly" | "DOMParser" | "DOMPoint" | "SVGPoint" | "DOMPointReadOnly" | "DOMQuad" | "DOMRect" | "SVGRect" | "DOMRectList" | "DOMRectReadOnly" | "DOMStringList" | "DOMStringMap" | "DOMTokenList" | "DataTransfer" | "DataTransferItem" | "DataTransferItemList" | "DelayNode" | "DeviceMotionEvent" | "DeviceOrientationEvent" | "Document" | "DocumentFragment" | "DocumentTimeline" | "DocumentType" | "DragEvent" | "DynamicsCompressorNode" | "Element" | "ElementInternals" | "ErrorEvent" | "Event" | "EventSource" | "EventTarget" | "External" | "File" | "FileList" | "FileReader" | "FileSystem" | "FileSystemDirectoryEntry" | "FileSystemDirectoryHandle" | "FileSystemDirectoryReader" | "FileSystemEntry" | "FileSystemFileEntry" | "FileSystemFileHandle" | "FileSystemHandle" | "FocusEvent" | "FontFace" | "FontFaceSet" | "FontFaceSetLoadEvent" | "FormData" | "FormDataEvent" | "GainNode" | "Gamepad" | "GamepadButton" | "GamepadEvent" | "GamepadHapticActuator" | "Geolocation" | "GeolocationCoordinates" | "GeolocationPosition" | "GeolocationPositionError" | "HTMLAllCollection" | "HTMLAnchorElement" | "HTMLAreaElement" | "HTMLAudioElement" | "HTMLBRElement" | "HTMLBaseElement" | "HTMLBodyElement" | "HTMLButtonElement" | "HTMLCanvasElement" | "HTMLCollection" | "HTMLDListElement" | "HTMLDataElement" | "HTMLDataListElement" | "HTMLDetailsElement" | "HTMLDirectoryElement" | "HTMLDivElement" | "HTMLDocument" | "HTMLElement" | "HTMLEmbedElement" | "HTMLFieldSetElement" | "HTMLFontElement" | "HTMLFormControlsCollection" | "HTMLFormElement" | "HTMLFrameElement" | "HTMLFrameSetElement" | "HTMLHRElement" | "HTMLHeadElement" | "HTMLHeadingElement" | "HTMLHtmlElement" | "HTMLIFrameElement" | "HTMLImageElement" | "HTMLInputElement" | "HTMLLIElement" | "HTMLLabelElement" | "HTMLLegendElement" | "HTMLLinkElement" | "HTMLMapElement" | "HTMLMarqueeElement" | "HTMLMediaElement" | "HTMLMenuElement" | "HTMLMetaElement" | "HTMLMeterElement" | "HTMLModElement" | "HTMLOListElement" | "HTMLObjectElement" | "HTMLOptGroupElement" | "HTMLOptionElement" | "HTMLOptionsCollection" | "HTMLOutputElement" | "HTMLParagraphElement" | "HTMLParamElement" | "HTMLPictureElement" | "HTMLPreElement" | "HTMLProgressElement" | "HTMLQuoteElement" | "HTMLScriptElement" | "HTMLSelectElement" | "HTMLSlotElement" | "HTMLSourceElement" | "HTMLSpanElement" | "HTMLStyleElement" | "HTMLTableCaptionElement" | "HTMLTableCellElement" | "HTMLTableColElement" | "HTMLTableElement" | "HTMLTableRowElement" | "HTMLTableSectionElement" | "HTMLTemplateElement" | "HTMLTextAreaElement" | "HTMLTimeElement" | "HTMLTitleElement" | "HTMLTrackElement" | "HTMLUListElement" | "HTMLUnknownElement" | "HTMLVideoElement" | "HashChangeEvent" | "Headers" | "History" | "IDBCursor" | "IDBCursorWithValue" | "IDBDatabase" | "IDBFactory" | "IDBIndex" | "IDBKeyRange" | "IDBObjectStore" | "IDBOpenDBRequest" | "IDBRequest" | "IDBTransaction" | "IDBVersionChangeEvent" | "IIRFilterNode" | "IdleDeadline" | "ImageBitmap" | "ImageBitmapRenderingContext" | "ImageData" | "InputDeviceInfo" | "InputEvent" | "IntersectionObserver" | "IntersectionObserverEntry" | "KeyboardEvent" | "KeyframeEffect" | "Location" | "Lock" | "LockManager" | "MathMLElement" | "MediaCapabilities" | "MediaDeviceInfo" | "MediaDevices" | "MediaElementAudioSourceNode" | "MediaEncryptedEvent" | "MediaError" | "MediaKeyMessageEvent" | "MediaKeySession" | "MediaKeyStatusMap" | "MediaKeySystemAccess" | "MediaKeys" | "MediaList" | "MediaMetadata" | "MediaQueryList" | "MediaQueryListEvent" | "MediaRecorder" | "MediaRecorderErrorEvent" | "MediaSession" | "MediaSource" | "MediaStream" | "MediaStreamAudioDestinationNode" | "MediaStreamAudioSourceNode" | "MediaStreamTrack" | "MediaStreamTrackEvent" | "MessageChannel" | "MessageEvent" | "MessagePort" | "MimeType" | "MimeTypeArray" | "MouseEvent" | "MutationEvent" | "MutationObserver" | "MutationRecord" | "NamedNodeMap" | "Navigator" | "NetworkInformation" | "Node" | "NodeIterator" | "NodeList" | "Notification" | "OfflineAudioCompletionEvent" | "OfflineAudioContext" | "OscillatorNode" | "OverconstrainedError" | "PageTransitionEvent" | "PannerNode" | "Path2D" | "PaymentMethodChangeEvent" | "PaymentRequest" | "PaymentRequestUpdateEvent" | "PaymentResponse" | "Performance" | "PerformanceEntry" | "PerformanceEventTiming" | "PerformanceMark" | "PerformanceMeasure" | "PerformanceNavigation" | "PerformanceNavigationTiming" | "PerformanceObserver" | "PerformanceObserverEntryList" | "PerformancePaintTiming" | "PerformanceResourceTiming" | "PerformanceServerTiming" | "PerformanceTiming" | "PeriodicWave" | "PermissionStatus" | "Permissions" | "PictureInPictureWindow" | "Plugin" | "PluginArray" | "PointerEvent" | "PopStateEvent" | "ProcessingInstruction" | "ProgressEvent" | "PromiseRejectionEvent" | "PublicKeyCredential" | "PushManager" | "PushSubscription" | "PushSubscriptionOptions" | "RTCCertificate" | "RTCDTMFSender" | "RTCDTMFToneChangeEvent" | "RTCDataChannel" | "RTCDataChannelEvent" | "RTCDtlsTransport" | "RTCIceCandidate" | "RTCIceTransport" | "RTCPeerConnection" | "RTCPeerConnectionIceErrorEvent" | "RTCPeerConnectionIceEvent" | "RTCRtpReceiver" | "RTCRtpSender" | "RTCRtpTransceiver" | "RTCSessionDescription" | "RTCStatsReport" | "RTCTrackEvent" | "RadioNodeList" | "Range" | "ReadableStream" | "ReadableStreamDefaultController" | "ReadableStreamDefaultReader" | "RemotePlayback" | "Request" | "ResizeObserver" | "ResizeObserverEntry" | "ResizeObserverSize" | "Response" | "SVGAElement" | "SVGAngle" | "SVGAnimateElement" | "SVGAnimateMotionElement" | "SVGAnimateTransformElement" | "SVGAnimatedAngle" | "SVGAnimatedBoolean" | "SVGAnimatedEnumeration" | "SVGAnimatedInteger" | "SVGAnimatedLength" | "SVGAnimatedLengthList" | "SVGAnimatedNumber" | "SVGAnimatedNumberList" | "SVGAnimatedPreserveAspectRatio" | "SVGAnimatedRect" | "SVGAnimatedString" | "SVGAnimatedTransformList" | "SVGAnimationElement" | "SVGCircleElement" | "SVGClipPathElement" | "SVGComponentTransferFunctionElement" | "SVGDefsElement" | "SVGDescElement" | "SVGElement" | "SVGEllipseElement" | "SVGFEBlendElement" | "SVGFEColorMatrixElement" | "SVGFEComponentTransferElement" | "SVGFECompositeElement" | "SVGFEConvolveMatrixElement" | "SVGFEDiffuseLightingElement" | "SVGFEDisplacementMapElement" | "SVGFEDistantLightElement" | "SVGFEDropShadowElement" | "SVGFEFloodElement" | "SVGFEFuncAElement" | "SVGFEFuncBElement" | "SVGFEFuncGElement" | "SVGFEFuncRElement" | "SVGFEGaussianBlurElement" | "SVGFEImageElement" | "SVGFEMergeElement" | "SVGFEMergeNodeElement" | "SVGFEMorphologyElement" | "SVGFEOffsetElement" | "SVGFEPointLightElement" | "SVGFESpecularLightingElement" | "SVGFESpotLightElement" | "SVGFETileElement" | "SVGFETurbulenceElement" | "SVGFilterElement" | "SVGForeignObjectElement" | "SVGGElement" | "SVGGeometryElement" | "SVGGradientElement" | "SVGGraphicsElement" | "SVGImageElement" | "SVGLength" | "SVGLengthList" | "SVGLineElement" | "SVGLinearGradientElement" | "SVGMPathElement" | "SVGMarkerElement" | "SVGMaskElement" | "SVGMetadataElement" | "SVGNumber" | "SVGNumberList" | "SVGPathElement" | "SVGPatternElement" | "SVGPointList" | "SVGPolygonElement" | "SVGPolylineElement" | "SVGPreserveAspectRatio" | "SVGRadialGradientElement" | "SVGRectElement" | "SVGSVGElement" | "SVGScriptElement" | "SVGSetElement" | "SVGStopElement" | "SVGStringList" | "SVGStyleElement" | "SVGSwitchElement" | "SVGSymbolElement" | "SVGTSpanElement" | "SVGTextContentElement" | "SVGTextElement" | "SVGTextPathElement" | "SVGTextPositioningElement" | "SVGTitleElement" | "SVGTransform" | "SVGTransformList" | "SVGUnitTypes" | "SVGUseElement" | "SVGViewElement" | "Screen" | "ScreenOrientation" | "ScriptProcessorNode" | "SecurityPolicyViolationEvent" | "Selection" | "ServiceWorker" | "ServiceWorkerContainer" | "ServiceWorkerRegistration" | "ShadowRoot" | "SharedWorker" | "SourceBuffer" | "SourceBufferList" | "SpeechRecognitionAlternative" | "SpeechRecognitionResult" | "SpeechRecognitionResultList" | "SpeechSynthesis" | "SpeechSynthesisErrorEvent" | "SpeechSynthesisEvent" | "SpeechSynthesisUtterance" | "SpeechSynthesisVoice" | "StaticRange" | "StereoPannerNode" | "Storage" | "StorageEvent" | "StorageManager" | "StyleSheet" | "StyleSheetList" | "SubmitEvent" | "SubtleCrypto" | "Text" | "TextDecoder" | "TextDecoderStream" | "TextEncoder" | "TextEncoderStream" | "TextMetrics" | "TextTrack" | "TextTrackCue" | "TextTrackCueList" | "TextTrackList" | "TimeRanges" | "Touch" | "TouchEvent" | "TouchList" | "TrackEvent" | "TransformStream" | "TransformStreamDefaultController" | "TransitionEvent" | "TreeWalker" | "UIEvent" | "URL" | "webkitURL" | "URLSearchParams" | "VTTCue" | "VTTRegion" | "ValidityState" | "VideoPlaybackQuality" | "VisualViewport" | "WaveShaperNode" | "WebGL2RenderingContext" | "WebGLActiveInfo" | "WebGLBuffer" | "WebGLContextEvent" | "WebGLFramebuffer" | "WebGLProgram" | "WebGLQuery" | "WebGLRenderbuffer" | "WebGLRenderingContext" | "WebGLSampler" | "WebGLShader" | "WebGLShaderPrecisionFormat" | "WebGLSync" | "WebGLTexture" | "WebGLTransformFeedback" | "WebGLUniformLocation" | "WebGLVertexArrayObject" | "WebSocket" | "WheelEvent" | "Window" | "Worker" | "Worklet" | "WritableStream" | "WritableStreamDefaultController" | "WritableStreamDefaultWriter" | "XMLDocument" | "XMLHttpRequest" | "XMLHttpRequestEventTarget" | "XMLHttpRequestUpload" | "XMLSerializer" | "XPathEvaluator" | "XPathExpression" | "XPathResult" | "XSLTProcessor" | "console" | "CSS" | "WebAssembly" | "Audio" | "Image" | "Option" | "clientInformation" | "closed" | "customElements" | "devicePixelRatio" | "document" | "event" | "external" | "frameElement" | "frames" | "history" | "innerHeight" | "innerWidth" | "length" | "location" | "locationbar" | "menubar" | "navigator" | "ondevicemotion" | "ondeviceorientation" | "onorientationchange" | "opener" | "orientation" | "outerHeight" | "outerWidth" | "pageXOffset" | "pageYOffset" | "parent" | "personalbar" | "screen" | "screenLeft" | "screenTop" | "screenX" | "screenY" | "scrollX" | "scrollY" | "scrollbars" | "self" | "speechSynthesis" | "status" | "statusbar" | "toolbar" | "top" | "visualViewport" | "window" | "onabort" | "onanimationcancel" | "onanimationend" | "onanimationiteration" | "onanimationstart" | "onauxclick" | "onblur" | "oncanplay" | "oncanplaythrough" | "onchange" | "onclick" | "onclose" | "oncontextmenu" | "oncuechange" | "ondblclick" | "ondrag" | "ondragend" | "ondragenter" | "ondragleave" | "ondragover" | "ondragstart" | "ondrop" | "ondurationchange" | "onemptied" | "onended" | "onerror" | "onfocus" | "onformdata" | "ongotpointercapture" | "oninput" | "oninvalid" | "onkeydown" | "onkeypress" | "onkeyup" | "onload" | "onloadeddata" | "onloadedmetadata" | "onloadstart" | "onlostpointercapture" | "onmousedown" | "onmouseenter" | "onmouseleave" | "onmousemove" | "onmouseout" | "onmouseover" | "onmouseup" | "onpause" | "onplay" | "onplaying" | "onpointercancel" | "onpointerdown" | "onpointerenter" | "onpointerleave" | "onpointermove" | "onpointerout" | "onpointerover" | "onpointerup" | "onprogress" | "onratechange" | "onreset" | "onresize" | "onscroll" | "onsecuritypolicyviolation" | "onseeked" | "onseeking" | "onselect" | "onselectionchange" | "onselectstart" | "onslotchange" | "onstalled" | "onsubmit" | "onsuspend" | "ontimeupdate" | "ontoggle" | "ontouchcancel" | "ontouchend" | "ontouchmove" | "ontouchstart" | "ontransitioncancel" | "ontransitionend" | "ontransitionrun" | "ontransitionstart" | "onvolumechange" | "onwaiting" | "onwebkitanimationend" | "onwebkitanimationiteration" | "onwebkitanimationstart" | "onwebkittransitionend" | "onwheel" | "onafterprint" | "onbeforeprint" | "onbeforeunload" | "ongamepadconnected" | "ongamepaddisconnected" | "onhashchange" | "onlanguagechange" | "onmessage" | "onmessageerror" | "onoffline" | "ononline" | "onpagehide" | "onpageshow" | "onpopstate" | "onrejectionhandled" | "onstorage" | "onunhandledrejection" | "onunload" | "localStorage" | "caches" | "crossOriginIsolated" | "crypto" | "indexedDB" | "isSecureContext" | "origin" | "performance" | "sessionStorage" | "importScripts" | "ActiveXObject" | "WScript" | "WSH" | "Enumerator" | "VBArray" >globalThis : typeof globalThis diff --git a/tests/baselines/reference/identityRelationNeverTypes.js b/tests/baselines/reference/identityRelationNeverTypes.js new file mode 100644 index 0000000000000..efe85defc1bf8 --- /dev/null +++ b/tests/baselines/reference/identityRelationNeverTypes.js @@ -0,0 +1,42 @@ +//// [identityRelationNeverTypes.ts] +// Repro from #47996 + +type Equals = (() => T extends B ? 1 : 0) extends (() => T extends A ? 1 : 0) ? true : false; + +declare class State { + _context: TContext; + _value: string; + matches(stateValue: TSV): this is State & { value: TSV }; +} + +function f1(state: State<{ foo: number }>) { + if (state.matches('a') && state.matches('a.b')) { + state; // never + type T1 = Equals; // true + type T2 = Equals; // true + } +} + + +//// [identityRelationNeverTypes.js] +"use strict"; +// Repro from #47996 +function f1(state) { + if (state.matches('a') && state.matches('a.b')) { + state; // never + } +} + + +//// [identityRelationNeverTypes.d.ts] +declare type Equals = (() => T extends B ? 1 : 0) extends (() => T extends A ? 1 : 0) ? true : false; +declare class State { + _context: TContext; + _value: string; + matches(stateValue: TSV): this is State & { + value: TSV; + }; +} +declare function f1(state: State<{ + foo: number; +}>): void; diff --git a/tests/baselines/reference/identityRelationNeverTypes.symbols b/tests/baselines/reference/identityRelationNeverTypes.symbols new file mode 100644 index 0000000000000..0bc98f71dcafa --- /dev/null +++ b/tests/baselines/reference/identityRelationNeverTypes.symbols @@ -0,0 +1,64 @@ +=== tests/cases/compiler/identityRelationNeverTypes.ts === +// Repro from #47996 + +type Equals = (() => T extends B ? 1 : 0) extends (() => T extends A ? 1 : 0) ? true : false; +>Equals : Symbol(Equals, Decl(identityRelationNeverTypes.ts, 0, 0)) +>A : Symbol(A, Decl(identityRelationNeverTypes.ts, 2, 12)) +>B : Symbol(B, Decl(identityRelationNeverTypes.ts, 2, 14)) +>T : Symbol(T, Decl(identityRelationNeverTypes.ts, 2, 22)) +>T : Symbol(T, Decl(identityRelationNeverTypes.ts, 2, 22)) +>B : Symbol(B, Decl(identityRelationNeverTypes.ts, 2, 14)) +>T : Symbol(T, Decl(identityRelationNeverTypes.ts, 2, 61)) +>T : Symbol(T, Decl(identityRelationNeverTypes.ts, 2, 61)) +>A : Symbol(A, Decl(identityRelationNeverTypes.ts, 2, 12)) + +declare class State { +>State : Symbol(State, Decl(identityRelationNeverTypes.ts, 2, 105)) +>TContext : Symbol(TContext, Decl(identityRelationNeverTypes.ts, 4, 20)) + + _context: TContext; +>_context : Symbol(State._context, Decl(identityRelationNeverTypes.ts, 4, 31)) +>TContext : Symbol(TContext, Decl(identityRelationNeverTypes.ts, 4, 20)) + + _value: string; +>_value : Symbol(State._value, Decl(identityRelationNeverTypes.ts, 5, 23)) + + matches(stateValue: TSV): this is State & { value: TSV }; +>matches : Symbol(State.matches, Decl(identityRelationNeverTypes.ts, 6, 19)) +>TSV : Symbol(TSV, Decl(identityRelationNeverTypes.ts, 7, 12)) +>stateValue : Symbol(stateValue, Decl(identityRelationNeverTypes.ts, 7, 32)) +>TSV : Symbol(TSV, Decl(identityRelationNeverTypes.ts, 7, 12)) +>State : Symbol(State, Decl(identityRelationNeverTypes.ts, 2, 105)) +>TContext : Symbol(TContext, Decl(identityRelationNeverTypes.ts, 4, 20)) +>value : Symbol(value, Decl(identityRelationNeverTypes.ts, 7, 77)) +>TSV : Symbol(TSV, Decl(identityRelationNeverTypes.ts, 7, 12)) +} + +function f1(state: State<{ foo: number }>) { +>f1 : Symbol(f1, Decl(identityRelationNeverTypes.ts, 8, 1)) +>state : Symbol(state, Decl(identityRelationNeverTypes.ts, 10, 12)) +>State : Symbol(State, Decl(identityRelationNeverTypes.ts, 2, 105)) +>foo : Symbol(foo, Decl(identityRelationNeverTypes.ts, 10, 26)) + + if (state.matches('a') && state.matches('a.b')) { +>state.matches : Symbol(State.matches, Decl(identityRelationNeverTypes.ts, 6, 19)) +>state : Symbol(state, Decl(identityRelationNeverTypes.ts, 10, 12)) +>matches : Symbol(State.matches, Decl(identityRelationNeverTypes.ts, 6, 19)) +>state.matches : Symbol(State.matches, Decl(identityRelationNeverTypes.ts, 6, 19)) +>state : Symbol(state, Decl(identityRelationNeverTypes.ts, 10, 12)) +>matches : Symbol(State.matches, Decl(identityRelationNeverTypes.ts, 6, 19)) + + state; // never +>state : Symbol(state, Decl(identityRelationNeverTypes.ts, 10, 12)) + + type T1 = Equals; // true +>T1 : Symbol(T1, Decl(identityRelationNeverTypes.ts, 12, 14)) +>Equals : Symbol(Equals, Decl(identityRelationNeverTypes.ts, 0, 0)) +>state : Symbol(state, Decl(identityRelationNeverTypes.ts, 10, 12)) + + type T2 = Equals; // true +>T2 : Symbol(T2, Decl(identityRelationNeverTypes.ts, 13, 46)) +>Equals : Symbol(Equals, Decl(identityRelationNeverTypes.ts, 0, 0)) + } +} + diff --git a/tests/baselines/reference/identityRelationNeverTypes.types b/tests/baselines/reference/identityRelationNeverTypes.types new file mode 100644 index 0000000000000..d94a3794c787d --- /dev/null +++ b/tests/baselines/reference/identityRelationNeverTypes.types @@ -0,0 +1,53 @@ +=== tests/cases/compiler/identityRelationNeverTypes.ts === +// Repro from #47996 + +type Equals = (() => T extends B ? 1 : 0) extends (() => T extends A ? 1 : 0) ? true : false; +>Equals : Equals +>true : true +>false : false + +declare class State { +>State : State + + _context: TContext; +>_context : TContext + + _value: string; +>_value : string + + matches(stateValue: TSV): this is State & { value: TSV }; +>matches : (stateValue: TSV) => this is State & { value: TSV; } +>stateValue : TSV +>value : TSV +} + +function f1(state: State<{ foo: number }>) { +>f1 : (state: State<{ foo: number;}>) => void +>state : State<{ foo: number; }> +>foo : number + + if (state.matches('a') && state.matches('a.b')) { +>state.matches('a') && state.matches('a.b') : boolean +>state.matches('a') : boolean +>state.matches : (stateValue: TSV) => this is State<{ foo: number; }> & { value: TSV; } +>state : State<{ foo: number; }> +>matches : (stateValue: TSV) => this is State<{ foo: number; }> & { value: TSV; } +>'a' : "a" +>state.matches('a.b') : boolean +>state.matches : (stateValue: TSV) => this is State<{ foo: number; }> & { value: TSV; } +>state : State<{ foo: number; }> & { value: "a"; } +>matches : (stateValue: TSV) => this is State<{ foo: number; }> & { value: TSV; } +>'a.b' : "a.b" + + state; // never +>state : never + + type T1 = Equals; // true +>T1 : true +>state : never + + type T2 = Equals; // true +>T2 : true + } +} + diff --git a/tests/baselines/reference/importAliasFromNamespace.js b/tests/baselines/reference/importAliasFromNamespace.js index 56a53d6e84716..0b24d2c091c79 100644 --- a/tests/baselines/reference/importAliasFromNamespace.js +++ b/tests/baselines/reference/importAliasFromNamespace.js @@ -40,7 +40,7 @@ var SomeOther; var Foo = /** @class */ (function () { function Foo() { Internal.getThing(); - 0 /* A */ ? "foo" : "bar"; + 0 /* Internal.WhichThing.A */ ? "foo" : "bar"; } return Foo; }()); diff --git a/tests/baselines/reference/importAssertion1(module=commonjs).errors.txt b/tests/baselines/reference/importAssertion1(module=commonjs).errors.txt index 11bbc5c2504f2..fa365df88cdf2 100644 --- a/tests/baselines/reference/importAssertion1(module=commonjs).errors.txt +++ b/tests/baselines/reference/importAssertion1(module=commonjs).errors.txt @@ -1,16 +1,16 @@ -tests/cases/conformance/importAssertion/1.ts(1,14): error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext'. -tests/cases/conformance/importAssertion/1.ts(2,28): error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext'. -tests/cases/conformance/importAssertion/1.ts(3,28): error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext'. -tests/cases/conformance/importAssertion/2.ts(1,28): error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext'. -tests/cases/conformance/importAssertion/2.ts(2,38): error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext'. -tests/cases/conformance/importAssertion/3.ts(2,25): error TS1324: Dynamic imports only support a second argument when the '--module' option is set to 'esnext'. -tests/cases/conformance/importAssertion/3.ts(3,25): error TS1324: Dynamic imports only support a second argument when the '--module' option is set to 'esnext'. -tests/cases/conformance/importAssertion/3.ts(4,25): error TS1324: Dynamic imports only support a second argument when the '--module' option is set to 'esnext'. -tests/cases/conformance/importAssertion/3.ts(5,26): error TS1324: Dynamic imports only support a second argument when the '--module' option is set to 'esnext'. -tests/cases/conformance/importAssertion/3.ts(7,25): error TS1324: Dynamic imports only support a second argument when the '--module' option is set to 'esnext'. +tests/cases/conformance/importAssertion/1.ts(1,14): error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext' or 'nodenext'. +tests/cases/conformance/importAssertion/1.ts(2,28): error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext' or 'nodenext'. +tests/cases/conformance/importAssertion/1.ts(3,28): error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext' or 'nodenext'. +tests/cases/conformance/importAssertion/2.ts(1,28): error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext' or 'nodenext'. +tests/cases/conformance/importAssertion/2.ts(2,38): error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext' or 'nodenext'. +tests/cases/conformance/importAssertion/3.ts(2,25): error TS1324: Dynamic imports only support a second argument when the '--module' option is set to 'esnext' or 'nodenext'. +tests/cases/conformance/importAssertion/3.ts(3,25): error TS1324: Dynamic imports only support a second argument when the '--module' option is set to 'esnext' or 'nodenext'. +tests/cases/conformance/importAssertion/3.ts(4,25): error TS1324: Dynamic imports only support a second argument when the '--module' option is set to 'esnext' or 'nodenext'. +tests/cases/conformance/importAssertion/3.ts(5,26): error TS1324: Dynamic imports only support a second argument when the '--module' option is set to 'esnext' or 'nodenext'. +tests/cases/conformance/importAssertion/3.ts(7,25): error TS1324: Dynamic imports only support a second argument when the '--module' option is set to 'esnext' or 'nodenext'. tests/cases/conformance/importAssertion/3.ts(8,11): message TS1450: Dynamic imports can only accept a module specifier and an optional assertion as arguments -tests/cases/conformance/importAssertion/3.ts(9,25): error TS1324: Dynamic imports only support a second argument when the '--module' option is set to 'esnext'. -tests/cases/conformance/importAssertion/3.ts(10,25): error TS1324: Dynamic imports only support a second argument when the '--module' option is set to 'esnext'. +tests/cases/conformance/importAssertion/3.ts(9,25): error TS1324: Dynamic imports only support a second argument when the '--module' option is set to 'esnext' or 'nodenext'. +tests/cases/conformance/importAssertion/3.ts(10,25): error TS1324: Dynamic imports only support a second argument when the '--module' option is set to 'esnext' or 'nodenext'. tests/cases/conformance/importAssertion/3.ts(10,52): error TS1009: Trailing comma not allowed. @@ -21,13 +21,13 @@ tests/cases/conformance/importAssertion/3.ts(10,52): error TS1009: Trailing comm ==== tests/cases/conformance/importAssertion/1.ts (3 errors) ==== import './0' assert { type: "json" } ~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext'. +!!! error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext' or 'nodenext'. import { a, b } from './0' assert { "type": "json" } ~~~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext'. +!!! error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext' or 'nodenext'. import * as foo from './0' assert { type: "json" } ~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext'. +!!! error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext' or 'nodenext'. a; b; foo.a; @@ -36,10 +36,10 @@ tests/cases/conformance/importAssertion/3.ts(10,52): error TS1009: Trailing comm ==== tests/cases/conformance/importAssertion/2.ts (2 errors) ==== import { a, b } from './0' assert {} ~~~~~~~~~ -!!! error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext'. +!!! error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext' or 'nodenext'. import { a as c, b as d } from './0' assert { a: "a", b: "b", c: "c" } ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext'. +!!! error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext' or 'nodenext'. a; b; c; @@ -49,29 +49,29 @@ tests/cases/conformance/importAssertion/3.ts(10,52): error TS1009: Trailing comm const a = import('./0') const b = import('./0', { assert: { type: "json" } }) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS1324: Dynamic imports only support a second argument when the '--module' option is set to 'esnext'. +!!! error TS1324: Dynamic imports only support a second argument when the '--module' option is set to 'esnext' or 'nodenext'. const c = import('./0', { assert: { type: "json", ttype: "typo" } }) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS1324: Dynamic imports only support a second argument when the '--module' option is set to 'esnext'. +!!! error TS1324: Dynamic imports only support a second argument when the '--module' option is set to 'esnext' or 'nodenext'. const d = import('./0', { assert: {} }) ~~~~~~~~~~~~~~ -!!! error TS1324: Dynamic imports only support a second argument when the '--module' option is set to 'esnext'. +!!! error TS1324: Dynamic imports only support a second argument when the '--module' option is set to 'esnext' or 'nodenext'. const dd = import('./0', {}) ~~ -!!! error TS1324: Dynamic imports only support a second argument when the '--module' option is set to 'esnext'. +!!! error TS1324: Dynamic imports only support a second argument when the '--module' option is set to 'esnext' or 'nodenext'. declare function foo(): any; const e = import('./0', foo()) ~~~~~ -!!! error TS1324: Dynamic imports only support a second argument when the '--module' option is set to 'esnext'. +!!! error TS1324: Dynamic imports only support a second argument when the '--module' option is set to 'esnext' or 'nodenext'. const f = import() ~~~~~~~~ !!! message TS1450: Dynamic imports can only accept a module specifier and an optional assertion as arguments const g = import('./0', {}, {}) ~~ -!!! error TS1324: Dynamic imports only support a second argument when the '--module' option is set to 'esnext'. +!!! error TS1324: Dynamic imports only support a second argument when the '--module' option is set to 'esnext' or 'nodenext'. const h = import('./0', { assert: { type: "json" }},) ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS1324: Dynamic imports only support a second argument when the '--module' option is set to 'esnext'. +!!! error TS1324: Dynamic imports only support a second argument when the '--module' option is set to 'esnext' or 'nodenext'. ~ !!! error TS1009: Trailing comma not allowed. diff --git a/tests/baselines/reference/importAssertion1(module=es2015).errors.txt b/tests/baselines/reference/importAssertion1(module=es2015).errors.txt index 28290d8f67290..fb959409350b0 100644 --- a/tests/baselines/reference/importAssertion1(module=es2015).errors.txt +++ b/tests/baselines/reference/importAssertion1(module=es2015).errors.txt @@ -1,8 +1,8 @@ -tests/cases/conformance/importAssertion/1.ts(1,14): error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext'. -tests/cases/conformance/importAssertion/1.ts(2,28): error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext'. -tests/cases/conformance/importAssertion/1.ts(3,28): error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext'. -tests/cases/conformance/importAssertion/2.ts(1,28): error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext'. -tests/cases/conformance/importAssertion/2.ts(2,38): error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext'. +tests/cases/conformance/importAssertion/1.ts(1,14): error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext' or 'nodenext'. +tests/cases/conformance/importAssertion/1.ts(2,28): error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext' or 'nodenext'. +tests/cases/conformance/importAssertion/1.ts(3,28): error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext' or 'nodenext'. +tests/cases/conformance/importAssertion/2.ts(1,28): error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext' or 'nodenext'. +tests/cases/conformance/importAssertion/2.ts(2,38): error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext' or 'nodenext'. tests/cases/conformance/importAssertion/3.ts(1,11): error TS1323: Dynamic imports are only supported when the '--module' flag is set to 'es2020', 'es2022', 'esnext', 'commonjs', 'amd', 'system', 'umd', 'node12', or 'nodenext'. tests/cases/conformance/importAssertion/3.ts(2,11): error TS1323: Dynamic imports are only supported when the '--module' flag is set to 'es2020', 'es2022', 'esnext', 'commonjs', 'amd', 'system', 'umd', 'node12', or 'nodenext'. tests/cases/conformance/importAssertion/3.ts(3,11): error TS1323: Dynamic imports are only supported when the '--module' flag is set to 'es2020', 'es2022', 'esnext', 'commonjs', 'amd', 'system', 'umd', 'node12', or 'nodenext'. @@ -21,13 +21,13 @@ tests/cases/conformance/importAssertion/3.ts(10,11): error TS1323: Dynamic impor ==== tests/cases/conformance/importAssertion/1.ts (3 errors) ==== import './0' assert { type: "json" } ~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext'. +!!! error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext' or 'nodenext'. import { a, b } from './0' assert { "type": "json" } ~~~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext'. +!!! error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext' or 'nodenext'. import * as foo from './0' assert { type: "json" } ~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext'. +!!! error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext' or 'nodenext'. a; b; foo.a; @@ -36,10 +36,10 @@ tests/cases/conformance/importAssertion/3.ts(10,11): error TS1323: Dynamic impor ==== tests/cases/conformance/importAssertion/2.ts (2 errors) ==== import { a, b } from './0' assert {} ~~~~~~~~~ -!!! error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext'. +!!! error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext' or 'nodenext'. import { a as c, b as d } from './0' assert { a: "a", b: "b", c: "c" } ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext'. +!!! error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext' or 'nodenext'. a; b; c; diff --git a/tests/baselines/reference/importAssertion2(module=commonjs).errors.txt b/tests/baselines/reference/importAssertion2(module=commonjs).errors.txt index d3617f72bb06d..8cd296422e7e2 100644 --- a/tests/baselines/reference/importAssertion2(module=commonjs).errors.txt +++ b/tests/baselines/reference/importAssertion2(module=commonjs).errors.txt @@ -1,9 +1,9 @@ -tests/cases/conformance/importAssertion/1.ts(1,22): error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext'. -tests/cases/conformance/importAssertion/1.ts(2,28): error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext'. -tests/cases/conformance/importAssertion/1.ts(3,21): error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext'. -tests/cases/conformance/importAssertion/1.ts(4,27): error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext'. -tests/cases/conformance/importAssertion/2.ts(1,28): error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext'. -tests/cases/conformance/importAssertion/2.ts(2,38): error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext'. +tests/cases/conformance/importAssertion/1.ts(1,22): error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext' or 'nodenext'. +tests/cases/conformance/importAssertion/1.ts(2,28): error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext' or 'nodenext'. +tests/cases/conformance/importAssertion/1.ts(3,21): error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext' or 'nodenext'. +tests/cases/conformance/importAssertion/1.ts(4,27): error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext' or 'nodenext'. +tests/cases/conformance/importAssertion/2.ts(1,28): error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext' or 'nodenext'. +tests/cases/conformance/importAssertion/2.ts(2,38): error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext' or 'nodenext'. ==== tests/cases/conformance/importAssertion/0.ts (0 errors) ==== @@ -13,22 +13,22 @@ tests/cases/conformance/importAssertion/2.ts(2,38): error TS2821: Import asserti ==== tests/cases/conformance/importAssertion/1.ts (4 errors) ==== export {} from './0' assert { type: "json" } ~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext'. +!!! error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext' or 'nodenext'. export { a, b } from './0' assert { type: "json" } ~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext'. +!!! error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext' or 'nodenext'. export * from './0' assert { type: "json" } ~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext'. +!!! error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext' or 'nodenext'. export * as ns from './0' assert { type: "json" } ~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext'. +!!! error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext' or 'nodenext'. ==== tests/cases/conformance/importAssertion/2.ts (2 errors) ==== export { a, b } from './0' assert {} ~~~~~~~~~ -!!! error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext'. +!!! error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext' or 'nodenext'. export { a as c, b as d } from './0' assert { a: "a", b: "b", c: "c" } ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext'. +!!! error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext' or 'nodenext'. \ No newline at end of file diff --git a/tests/baselines/reference/importAssertion2(module=commonjs).js b/tests/baselines/reference/importAssertion2(module=commonjs).js index 067291329ba82..c05cbe462912c 100644 --- a/tests/baselines/reference/importAssertion2(module=commonjs).js +++ b/tests/baselines/reference/importAssertion2(module=commonjs).js @@ -25,7 +25,11 @@ exports.b = 2; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/importAssertion2(module=es2015).errors.txt b/tests/baselines/reference/importAssertion2(module=es2015).errors.txt index d3617f72bb06d..8cd296422e7e2 100644 --- a/tests/baselines/reference/importAssertion2(module=es2015).errors.txt +++ b/tests/baselines/reference/importAssertion2(module=es2015).errors.txt @@ -1,9 +1,9 @@ -tests/cases/conformance/importAssertion/1.ts(1,22): error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext'. -tests/cases/conformance/importAssertion/1.ts(2,28): error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext'. -tests/cases/conformance/importAssertion/1.ts(3,21): error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext'. -tests/cases/conformance/importAssertion/1.ts(4,27): error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext'. -tests/cases/conformance/importAssertion/2.ts(1,28): error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext'. -tests/cases/conformance/importAssertion/2.ts(2,38): error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext'. +tests/cases/conformance/importAssertion/1.ts(1,22): error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext' or 'nodenext'. +tests/cases/conformance/importAssertion/1.ts(2,28): error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext' or 'nodenext'. +tests/cases/conformance/importAssertion/1.ts(3,21): error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext' or 'nodenext'. +tests/cases/conformance/importAssertion/1.ts(4,27): error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext' or 'nodenext'. +tests/cases/conformance/importAssertion/2.ts(1,28): error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext' or 'nodenext'. +tests/cases/conformance/importAssertion/2.ts(2,38): error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext' or 'nodenext'. ==== tests/cases/conformance/importAssertion/0.ts (0 errors) ==== @@ -13,22 +13,22 @@ tests/cases/conformance/importAssertion/2.ts(2,38): error TS2821: Import asserti ==== tests/cases/conformance/importAssertion/1.ts (4 errors) ==== export {} from './0' assert { type: "json" } ~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext'. +!!! error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext' or 'nodenext'. export { a, b } from './0' assert { type: "json" } ~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext'. +!!! error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext' or 'nodenext'. export * from './0' assert { type: "json" } ~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext'. +!!! error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext' or 'nodenext'. export * as ns from './0' assert { type: "json" } ~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext'. +!!! error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext' or 'nodenext'. ==== tests/cases/conformance/importAssertion/2.ts (2 errors) ==== export { a, b } from './0' assert {} ~~~~~~~~~ -!!! error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext'. +!!! error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext' or 'nodenext'. export { a as c, b as d } from './0' assert { a: "a", b: "b", c: "c" } ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext'. +!!! error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext' or 'nodenext'. \ No newline at end of file diff --git a/tests/baselines/reference/importAssertion3(module=es2015).errors.txt b/tests/baselines/reference/importAssertion3(module=es2015).errors.txt index fade981ac769f..fdfac065b05f6 100644 --- a/tests/baselines/reference/importAssertion3(module=es2015).errors.txt +++ b/tests/baselines/reference/importAssertion3(module=es2015).errors.txt @@ -1,7 +1,7 @@ -tests/cases/conformance/importAssertion/1.ts(1,27): error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext'. -tests/cases/conformance/importAssertion/1.ts(2,30): error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext'. -tests/cases/conformance/importAssertion/2.ts(1,31): error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext'. -tests/cases/conformance/importAssertion/2.ts(2,33): error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext'. +tests/cases/conformance/importAssertion/1.ts(1,27): error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext' or 'nodenext'. +tests/cases/conformance/importAssertion/1.ts(2,30): error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext' or 'nodenext'. +tests/cases/conformance/importAssertion/2.ts(1,31): error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext' or 'nodenext'. +tests/cases/conformance/importAssertion/2.ts(2,33): error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext' or 'nodenext'. ==== tests/cases/conformance/importAssertion/0.ts (0 errors) ==== @@ -10,17 +10,17 @@ tests/cases/conformance/importAssertion/2.ts(2,33): error TS2821: Import asserti ==== tests/cases/conformance/importAssertion/1.ts (2 errors) ==== export type {} from './0' assert { type: "json" } ~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext'. +!!! error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext' or 'nodenext'. export type { I } from './0' assert { type: "json" } ~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext'. +!!! error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext' or 'nodenext'. ==== tests/cases/conformance/importAssertion/2.ts (2 errors) ==== import type { I } from './0' assert { type: "json" } ~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext'. +!!! error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext' or 'nodenext'. import type * as foo from './0' assert { type: "json" } ~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext'. +!!! error TS2821: Import assertions are only supported when the '--module' option is set to 'esnext' or 'nodenext'. \ No newline at end of file diff --git a/tests/baselines/reference/importAssertionNonstring.errors.txt b/tests/baselines/reference/importAssertionNonstring.errors.txt new file mode 100644 index 0000000000000..a619f9f2d4f7a --- /dev/null +++ b/tests/baselines/reference/importAssertionNonstring.errors.txt @@ -0,0 +1,32 @@ +tests/cases/compiler/mod.mts(1,52): error TS2837: Import assertion values must be string literal expressions. +tests/cases/compiler/mod.mts(3,52): error TS2837: Import assertion values must be string literal expressions. +tests/cases/compiler/mod.mts(5,52): error TS2837: Import assertion values must be string literal expressions. +tests/cases/compiler/mod.mts(7,52): error TS2837: Import assertion values must be string literal expressions. +tests/cases/compiler/mod.mts(9,52): error TS2837: Import assertion values must be string literal expressions. +tests/cases/compiler/mod.mts(11,66): error TS2837: Import assertion values must be string literal expressions. + + +==== tests/cases/compiler/mod.mts (6 errors) ==== + import * as thing1 from "./mod.mjs" assert {field: 0}; + ~ +!!! error TS2837: Import assertion values must be string literal expressions. + + import * as thing2 from "./mod.mjs" assert {field: `a`}; + ~~~ +!!! error TS2837: Import assertion values must be string literal expressions. + + import * as thing3 from "./mod.mjs" assert {field: /a/g}; + ~~~~ +!!! error TS2837: Import assertion values must be string literal expressions. + + import * as thing4 from "./mod.mjs" assert {field: ["a"]}; + ~~~~~ +!!! error TS2837: Import assertion values must be string literal expressions. + + import * as thing5 from "./mod.mjs" assert {field: { a: 0 }}; + ~~~~~~~~ +!!! error TS2837: Import assertion values must be string literal expressions. + + import * as thing6 from "./mod.mjs" assert {type: "json", field: 0..toString()} + ~~~~~~~~~~~~~ +!!! error TS2837: Import assertion values must be string literal expressions. \ No newline at end of file diff --git a/tests/baselines/reference/importAssertionNonstring.js b/tests/baselines/reference/importAssertionNonstring.js new file mode 100644 index 0000000000000..18b6c7fdee99a --- /dev/null +++ b/tests/baselines/reference/importAssertionNonstring.js @@ -0,0 +1,15 @@ +//// [mod.mts] +import * as thing1 from "./mod.mjs" assert {field: 0}; + +import * as thing2 from "./mod.mjs" assert {field: `a`}; + +import * as thing3 from "./mod.mjs" assert {field: /a/g}; + +import * as thing4 from "./mod.mjs" assert {field: ["a"]}; + +import * as thing5 from "./mod.mjs" assert {field: { a: 0 }}; + +import * as thing6 from "./mod.mjs" assert {type: "json", field: 0..toString()} + +//// [mod.mjs] +export {}; diff --git a/tests/baselines/reference/importAssertionNonstring.symbols b/tests/baselines/reference/importAssertionNonstring.symbols new file mode 100644 index 0000000000000..386888efb5133 --- /dev/null +++ b/tests/baselines/reference/importAssertionNonstring.symbols @@ -0,0 +1,22 @@ +=== tests/cases/compiler/mod.mts === +import * as thing1 from "./mod.mjs" assert {field: 0}; +>thing1 : Symbol(thing1, Decl(mod.mts, 0, 6)) + +import * as thing2 from "./mod.mjs" assert {field: `a`}; +>thing2 : Symbol(thing2, Decl(mod.mts, 2, 6)) + +import * as thing3 from "./mod.mjs" assert {field: /a/g}; +>thing3 : Symbol(thing3, Decl(mod.mts, 4, 6)) + +import * as thing4 from "./mod.mjs" assert {field: ["a"]}; +>thing4 : Symbol(thing4, Decl(mod.mts, 6, 6)) + +import * as thing5 from "./mod.mjs" assert {field: { a: 0 }}; +>thing5 : Symbol(thing5, Decl(mod.mts, 8, 6)) +>a : Symbol(a, Decl(mod.mts, 8, 52)) + +import * as thing6 from "./mod.mjs" assert {type: "json", field: 0..toString()} +>thing6 : Symbol(thing6, Decl(mod.mts, 10, 6)) +>0..toString : Symbol(Number.toString, Decl(lib.es5.d.ts, --, --)) +>toString : Symbol(Number.toString, Decl(lib.es5.d.ts, --, --)) + diff --git a/tests/baselines/reference/importAssertionNonstring.types b/tests/baselines/reference/importAssertionNonstring.types new file mode 100644 index 0000000000000..c165c0de610f1 --- /dev/null +++ b/tests/baselines/reference/importAssertionNonstring.types @@ -0,0 +1,36 @@ +=== tests/cases/compiler/mod.mts === +import * as thing1 from "./mod.mjs" assert {field: 0}; +>thing1 : typeof thing1 +>field : any + +import * as thing2 from "./mod.mjs" assert {field: `a`}; +>thing2 : typeof thing1 +>field : any + +import * as thing3 from "./mod.mjs" assert {field: /a/g}; +>thing3 : typeof thing1 +>field : any +>/a/g : RegExp + +import * as thing4 from "./mod.mjs" assert {field: ["a"]}; +>thing4 : typeof thing1 +>field : any +>["a"] : string[] +>"a" : "a" + +import * as thing5 from "./mod.mjs" assert {field: { a: 0 }}; +>thing5 : typeof thing1 +>field : any +>{ a: 0 } : { a: number; } +>a : number +>0 : 0 + +import * as thing6 from "./mod.mjs" assert {type: "json", field: 0..toString()} +>thing6 : typeof thing1 +>type : any +>field : any +>0..toString() : string +>0..toString : (radix?: number) => string +>0. : 0 +>toString : (radix?: number) => string + diff --git a/tests/baselines/reference/importCallExpressionGrammarError.errors.txt b/tests/baselines/reference/importCallExpressionGrammarError.errors.txt index 57e3866b8f149..063b200b6729a 100644 --- a/tests/baselines/reference/importCallExpressionGrammarError.errors.txt +++ b/tests/baselines/reference/importCallExpressionGrammarError.errors.txt @@ -2,7 +2,7 @@ tests/cases/conformance/dynamicImport/importCallExpressionGrammarError.ts(5,8): tests/cases/conformance/dynamicImport/importCallExpressionGrammarError.ts(7,17): error TS1325: Argument of dynamic import cannot be spread element. tests/cases/conformance/dynamicImport/importCallExpressionGrammarError.ts(8,12): message TS1450: Dynamic imports can only accept a module specifier and an optional assertion as arguments tests/cases/conformance/dynamicImport/importCallExpressionGrammarError.ts(9,19): error TS2307: Cannot find module 'pathToModule' or its corresponding type declarations. -tests/cases/conformance/dynamicImport/importCallExpressionGrammarError.ts(9,35): error TS1324: Dynamic imports only support a second argument when the '--module' option is set to 'esnext'. +tests/cases/conformance/dynamicImport/importCallExpressionGrammarError.ts(9,35): error TS1324: Dynamic imports only support a second argument when the '--module' option is set to 'esnext' or 'nodenext'. tests/cases/conformance/dynamicImport/importCallExpressionGrammarError.ts(9,35): error TS2559: Type '"secondModule"' has no properties in common with type 'ImportCallOptions'. @@ -25,6 +25,6 @@ tests/cases/conformance/dynamicImport/importCallExpressionGrammarError.ts(9,35): ~~~~~~~~~~~~~~ !!! error TS2307: Cannot find module 'pathToModule' or its corresponding type declarations. ~~~~~~~~~~~~~~ -!!! error TS1324: Dynamic imports only support a second argument when the '--module' option is set to 'esnext'. +!!! error TS1324: Dynamic imports only support a second argument when the '--module' option is set to 'esnext' or 'nodenext'. ~~~~~~~~~~~~~~ !!! error TS2559: Type '"secondModule"' has no properties in common with type 'ImportCallOptions'. \ No newline at end of file diff --git a/tests/baselines/reference/importDeclFromTypeNodeInJsSource.types b/tests/baselines/reference/importDeclFromTypeNodeInJsSource.types index 231dbdc6d3a29..2f8af5e09dbd4 100644 --- a/tests/baselines/reference/importDeclFromTypeNodeInJsSource.types +++ b/tests/baselines/reference/importDeclFromTypeNodeInJsSource.types @@ -5,7 +5,7 @@ declare module "events" { >"events" : typeof import("events") namespace EventEmitter { ->EventEmitter : typeof EventEmitter +>EventEmitter : typeof import("events") class EventEmitter { >EventEmitter : EventEmitter diff --git a/tests/baselines/reference/importDeclWithExportModifierAndExportAssignment.js b/tests/baselines/reference/importDeclWithExportModifierAndExportAssignment.js index f3ea8c7226380..b6bb60425a779 100644 --- a/tests/baselines/reference/importDeclWithExportModifierAndExportAssignment.js +++ b/tests/baselines/reference/importDeclWithExportModifierAndExportAssignment.js @@ -8,6 +8,6 @@ export = x; //// [importDeclWithExportModifierAndExportAssignment.js] "use strict"; -exports.__esModule = true; exports.a = void 0; exports.a = x.c; +module.exports = x; diff --git a/tests/baselines/reference/importDeclarationInModuleDeclaration2.errors.txt b/tests/baselines/reference/importDeclarationInModuleDeclaration2.errors.txt new file mode 100644 index 0000000000000..2541c20897fa5 --- /dev/null +++ b/tests/baselines/reference/importDeclarationInModuleDeclaration2.errors.txt @@ -0,0 +1,9 @@ +tests/cases/compiler/check.js(2,5): error TS1473: An import declaration can only be used at the top level of a module. + + +==== tests/cases/compiler/check.js (1 errors) ==== + function container() { + import "fs"; + ~~~~~~ +!!! error TS1473: An import declaration can only be used at the top level of a module. + } \ No newline at end of file diff --git a/tests/baselines/reference/importDeclarationInModuleDeclaration2.symbols b/tests/baselines/reference/importDeclarationInModuleDeclaration2.symbols new file mode 100644 index 0000000000000..ae8fbc1291a0c --- /dev/null +++ b/tests/baselines/reference/importDeclarationInModuleDeclaration2.symbols @@ -0,0 +1,6 @@ +=== tests/cases/compiler/check.js === +function container() { +>container : Symbol(container, Decl(check.js, 0, 0)) + + import "fs"; +} diff --git a/tests/baselines/reference/importDeclarationInModuleDeclaration2.types b/tests/baselines/reference/importDeclarationInModuleDeclaration2.types new file mode 100644 index 0000000000000..a100c277dca5e --- /dev/null +++ b/tests/baselines/reference/importDeclarationInModuleDeclaration2.types @@ -0,0 +1,6 @@ +=== tests/cases/compiler/check.js === +function container() { +>container : () => void + + import "fs"; +} diff --git a/tests/baselines/reference/importEquals1.js b/tests/baselines/reference/importEquals1.js index ba224823ac98b..83aa3e155d609 100644 --- a/tests/baselines/reference/importEquals1.js +++ b/tests/baselines/reference/importEquals1.js @@ -45,7 +45,11 @@ module.exports = types; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/importEquals2.js b/tests/baselines/reference/importEquals2.js index 8eb56dd89afdb..e07bc41231fc3 100644 --- a/tests/baselines/reference/importEquals2.js +++ b/tests/baselines/reference/importEquals2.js @@ -25,7 +25,11 @@ var A = /** @class */ (function () { "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/importEqualsError45874.errors.txt b/tests/baselines/reference/importEqualsError45874.errors.txt new file mode 100644 index 0000000000000..82718c71c3f23 --- /dev/null +++ b/tests/baselines/reference/importEqualsError45874.errors.txt @@ -0,0 +1,15 @@ +/globals.ts(5,22): error TS2694: Namespace 'globals' has no exported member 'toString'. + + +==== /globals.ts (1 errors) ==== + namespace globals { + export type Foo = {}; + export const Bar = {}; + } + import Foo = globals.toString.Blah; + ~~~~~~~~ +!!! error TS2694: Namespace 'globals' has no exported member 'toString'. + +==== /index.ts (0 errors) ==== + const Foo = {}; + \ No newline at end of file diff --git a/tests/baselines/reference/importEqualsError45874.js b/tests/baselines/reference/importEqualsError45874.js new file mode 100644 index 0000000000000..7f153fe422fe0 --- /dev/null +++ b/tests/baselines/reference/importEqualsError45874.js @@ -0,0 +1,21 @@ +//// [tests/cases/compiler/importEqualsError45874.ts] //// + +//// [globals.ts] +namespace globals { + export type Foo = {}; + export const Bar = {}; +} +import Foo = globals.toString.Blah; + +//// [index.ts] +const Foo = {}; + + +//// [globals.js] +var globals; +(function (globals) { + globals.Bar = {}; +})(globals || (globals = {})); +var Foo = globals.toString.Blah; +//// [index.js] +var Foo = {}; diff --git a/tests/baselines/reference/importEqualsError45874.symbols b/tests/baselines/reference/importEqualsError45874.symbols new file mode 100644 index 0000000000000..59fb03ce5100b --- /dev/null +++ b/tests/baselines/reference/importEqualsError45874.symbols @@ -0,0 +1,18 @@ +=== /globals.ts === +namespace globals { +>globals : Symbol(globals, Decl(globals.ts, 0, 0)) + + export type Foo = {}; +>Foo : Symbol(Foo, Decl(globals.ts, 0, 19)) + + export const Bar = {}; +>Bar : Symbol(Bar, Decl(globals.ts, 2, 14)) +} +import Foo = globals.toString.Blah; +>Foo : Symbol(Foo, Decl(globals.ts, 3, 1)) +>globals : Symbol(globals, Decl(globals.ts, 0, 0)) + +=== /index.ts === +const Foo = {}; +>Foo : Symbol(Foo, Decl(index.ts, 0, 5)) + diff --git a/tests/baselines/reference/importEqualsError45874.types b/tests/baselines/reference/importEqualsError45874.types new file mode 100644 index 0000000000000..9e3c9c2945eae --- /dev/null +++ b/tests/baselines/reference/importEqualsError45874.types @@ -0,0 +1,22 @@ +=== /globals.ts === +namespace globals { +>globals : typeof globals + + export type Foo = {}; +>Foo : Foo + + export const Bar = {}; +>Bar : {} +>{} : {} +} +import Foo = globals.toString.Blah; +>Foo : any +>globals : typeof globals +>toString : any +>Blah : any + +=== /index.ts === +const Foo = {}; +>Foo : {} +>{} : {} + diff --git a/tests/baselines/reference/importExportInternalComments.symbols b/tests/baselines/reference/importExportInternalComments.symbols index 87eeb2d31e9c9..e4c5f85d9bd77 100644 --- a/tests/baselines/reference/importExportInternalComments.symbols +++ b/tests/baselines/reference/importExportInternalComments.symbols @@ -4,7 +4,7 @@ declare module "foo"; === tests/cases/compiler/default.ts === /*1*/ export /*2*/ default /*3*/ Array /*4*/; ->Array : Symbol(Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --) ... and 2 more) +>Array : Symbol(Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --) ... and 3 more) === tests/cases/compiler/index.ts === /*1*/ import /*2*/ D /*3*/, /*4*/ { /*5*/ A /*6*/, /*7*/ B /*8*/ as /*9*/ C /*10*/ } /*11*/ from /*12*/ "foo"; diff --git a/tests/baselines/reference/importFromDot.errors.txt b/tests/baselines/reference/importFromDot.errors.txt new file mode 100644 index 0000000000000..567c61451d9f5 --- /dev/null +++ b/tests/baselines/reference/importFromDot.errors.txt @@ -0,0 +1,14 @@ +tests/cases/conformance/moduleResolution/a/b.ts(1,20): error TS2305: Module '"."' has no exported member 'rootA'. + + +==== tests/cases/conformance/moduleResolution/a.ts (0 errors) ==== + export const rootA = 0; + +==== tests/cases/conformance/moduleResolution/a/index.ts (0 errors) ==== + export const indexInA = 0; + +==== tests/cases/conformance/moduleResolution/a/b.ts (1 errors) ==== + import { indexInA, rootA } from "."; + ~~~~~ +!!! error TS2305: Module '"."' has no exported member 'rootA'. + \ No newline at end of file diff --git a/tests/baselines/reference/importFromDot.js b/tests/baselines/reference/importFromDot.js new file mode 100644 index 0000000000000..0bccb84eeb2ad --- /dev/null +++ b/tests/baselines/reference/importFromDot.js @@ -0,0 +1,25 @@ +//// [tests/cases/conformance/moduleResolution/importFromDot.ts] //// + +//// [a.ts] +export const rootA = 0; + +//// [index.ts] +export const indexInA = 0; + +//// [b.ts] +import { indexInA, rootA } from "."; + + +//// [a.js] +"use strict"; +exports.__esModule = true; +exports.rootA = void 0; +exports.rootA = 0; +//// [index.js] +"use strict"; +exports.__esModule = true; +exports.indexInA = void 0; +exports.indexInA = 0; +//// [b.js] +"use strict"; +exports.__esModule = true; diff --git a/tests/baselines/reference/importFromDot.symbols b/tests/baselines/reference/importFromDot.symbols new file mode 100644 index 0000000000000..2431f381a341c --- /dev/null +++ b/tests/baselines/reference/importFromDot.symbols @@ -0,0 +1,13 @@ +=== tests/cases/conformance/moduleResolution/a.ts === +export const rootA = 0; +>rootA : Symbol(rootA, Decl(a.ts, 0, 12)) + +=== tests/cases/conformance/moduleResolution/a/index.ts === +export const indexInA = 0; +>indexInA : Symbol(indexInA, Decl(index.ts, 0, 12)) + +=== tests/cases/conformance/moduleResolution/a/b.ts === +import { indexInA, rootA } from "."; +>indexInA : Symbol(indexInA, Decl(b.ts, 0, 8)) +>rootA : Symbol(rootA, Decl(b.ts, 0, 18)) + diff --git a/tests/baselines/reference/importFromDot.types b/tests/baselines/reference/importFromDot.types new file mode 100644 index 0000000000000..f595b92a9961e --- /dev/null +++ b/tests/baselines/reference/importFromDot.types @@ -0,0 +1,15 @@ +=== tests/cases/conformance/moduleResolution/a.ts === +export const rootA = 0; +>rootA : 0 +>0 : 0 + +=== tests/cases/conformance/moduleResolution/a/index.ts === +export const indexInA = 0; +>indexInA : 0 +>0 : 0 + +=== tests/cases/conformance/moduleResolution/a/b.ts === +import { indexInA, rootA } from "."; +>indexInA : 0 +>rootA : any + diff --git a/tests/baselines/reference/importHelpers.js b/tests/baselines/reference/importHelpers.js index ce51113483d44..edc0aa2c58fa3 100644 --- a/tests/baselines/reference/importHelpers.js +++ b/tests/baselines/reference/importHelpers.js @@ -58,7 +58,7 @@ var A = /** @class */ (function () { }()); exports.A = A; var B = /** @class */ (function (_super) { - (0, tslib_1.__extends)(B, _super); + tslib_1.__extends(B, _super); function B() { return _super !== null && _super.apply(this, arguments) || this; } @@ -70,13 +70,13 @@ var C = /** @class */ (function () { } C.prototype.method = function (x) { }; - (0, tslib_1.__decorate)([ - (0, tslib_1.__param)(0, dec), - (0, tslib_1.__metadata)("design:type", Function), - (0, tslib_1.__metadata)("design:paramtypes", [Number]), - (0, tslib_1.__metadata)("design:returntype", void 0) + tslib_1.__decorate([ + tslib_1.__param(0, dec), + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Number]), + tslib_1.__metadata("design:returntype", void 0) ], C.prototype, "method", null); - C = (0, tslib_1.__decorate)([ + C = tslib_1.__decorate([ dec ], C); return C; @@ -84,7 +84,7 @@ var C = /** @class */ (function () { function id(x) { return x; } -exports.result = id(templateObject_1 || (templateObject_1 = (0, tslib_1.__makeTemplateObject)(["hello world"], ["hello world"]))); +exports.result = id(templateObject_1 || (templateObject_1 = tslib_1.__makeTemplateObject(["hello world"], ["hello world"]))); var templateObject_1; //// [script.js] var __extends = (this && this.__extends) || (function () { diff --git a/tests/baselines/reference/importHelpersAmd.js b/tests/baselines/reference/importHelpersAmd.js index b675da337597d..a9307da888d96 100644 --- a/tests/baselines/reference/importHelpersAmd.js +++ b/tests/baselines/reference/importHelpersAmd.js @@ -36,9 +36,9 @@ define(["require", "exports", "tslib", "./a", "./a"], function (require, exports "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.B = void 0; - (0, tslib_1.__exportStar)(a_2, exports); + tslib_1.__exportStar(a_2, exports); var B = /** @class */ (function (_super) { - (0, tslib_1.__extends)(B, _super); + tslib_1.__extends(B, _super); function B() { return _super !== null && _super.apply(this, arguments) || this; } diff --git a/tests/baselines/reference/importHelpersInIsolatedModules.js b/tests/baselines/reference/importHelpersInIsolatedModules.js index 1770e108c3cb5..a1153663006de 100644 --- a/tests/baselines/reference/importHelpersInIsolatedModules.js +++ b/tests/baselines/reference/importHelpersInIsolatedModules.js @@ -45,7 +45,7 @@ var A = /** @class */ (function () { }()); exports.A = A; var B = /** @class */ (function (_super) { - (0, tslib_1.__extends)(B, _super); + tslib_1.__extends(B, _super); function B() { return _super !== null && _super.apply(this, arguments) || this; } @@ -57,13 +57,13 @@ var C = /** @class */ (function () { } C.prototype.method = function (x) { }; - (0, tslib_1.__decorate)([ - (0, tslib_1.__param)(0, dec), - (0, tslib_1.__metadata)("design:type", Function), - (0, tslib_1.__metadata)("design:paramtypes", [Number]), - (0, tslib_1.__metadata)("design:returntype", void 0) + tslib_1.__decorate([ + tslib_1.__param(0, dec), + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Number]), + tslib_1.__metadata("design:returntype", void 0) ], C.prototype, "method", null); - C = (0, tslib_1.__decorate)([ + C = tslib_1.__decorate([ dec ], C); return C; @@ -76,7 +76,7 @@ var A = /** @class */ (function () { return A; }()); var B = /** @class */ (function (_super) { - (0, tslib_1.__extends)(B, _super); + tslib_1.__extends(B, _super); function B() { return _super !== null && _super.apply(this, arguments) || this; } @@ -87,13 +87,13 @@ var C = /** @class */ (function () { } C.prototype.method = function (x) { }; - (0, tslib_1.__decorate)([ - (0, tslib_1.__param)(0, dec), - (0, tslib_1.__metadata)("design:type", Function), - (0, tslib_1.__metadata)("design:paramtypes", [Number]), - (0, tslib_1.__metadata)("design:returntype", void 0) + tslib_1.__decorate([ + tslib_1.__param(0, dec), + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Number]), + tslib_1.__metadata("design:returntype", void 0) ], C.prototype, "method", null); - C = (0, tslib_1.__decorate)([ + C = tslib_1.__decorate([ dec ], C); return C; diff --git a/tests/baselines/reference/importHelpersInTsx.js b/tests/baselines/reference/importHelpersInTsx.js index 23cfaea610a8e..5005140e453aa 100644 --- a/tests/baselines/reference/importHelpersInTsx.js +++ b/tests/baselines/reference/importHelpersInTsx.js @@ -24,7 +24,7 @@ export declare function __awaiter(thisArg: any, _arguments: any, P: Function, ge Object.defineProperty(exports, "__esModule", { value: true }); exports.x = void 0; var tslib_1 = require("tslib"); -exports.x = React.createElement("span", (0, tslib_1.__assign)({}, o)); +exports.x = React.createElement("span", tslib_1.__assign({}, o)); //// [script.js] var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { diff --git a/tests/baselines/reference/importHelpersNoHelpers.js b/tests/baselines/reference/importHelpersNoHelpers.js index 5290db5fafa27..23af5f3ca43e3 100644 --- a/tests/baselines/reference/importHelpersNoHelpers.js +++ b/tests/baselines/reference/importHelpersNoHelpers.js @@ -46,7 +46,7 @@ exports.x = 1; Object.defineProperty(exports, "__esModule", { value: true }); exports.B = exports.A = void 0; var tslib_1 = require("tslib"); -(0, tslib_1.__exportStar)(require("./other"), exports); +tslib_1.__exportStar(require("./other"), exports); var A = /** @class */ (function () { function A() { } @@ -54,7 +54,7 @@ var A = /** @class */ (function () { }()); exports.A = A; var B = /** @class */ (function (_super) { - (0, tslib_1.__extends)(B, _super); + tslib_1.__extends(B, _super); function B() { return _super !== null && _super.apply(this, arguments) || this; } @@ -66,20 +66,20 @@ var C = /** @class */ (function () { } C.prototype.method = function (x) { }; - (0, tslib_1.__decorate)([ - (0, tslib_1.__param)(0, dec), - (0, tslib_1.__metadata)("design:type", Function), - (0, tslib_1.__metadata)("design:paramtypes", [Number]), - (0, tslib_1.__metadata)("design:returntype", void 0) + tslib_1.__decorate([ + tslib_1.__param(0, dec), + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Number]), + tslib_1.__metadata("design:returntype", void 0) ], C.prototype, "method", null); - C = (0, tslib_1.__decorate)([ + C = tslib_1.__decorate([ dec ], C); return C; }()); var o = { a: 1 }; -var y = (0, tslib_1.__assign)({}, o); -var x = (0, tslib_1.__rest)(y, []); +var y = tslib_1.__assign({}, o); +var x = tslib_1.__rest(y, []); //// [script.js] var __extends = (this && this.__extends) || (function () { var extendStatics = function (d, b) { diff --git a/tests/baselines/reference/importHelpersNoHelpersForAsyncGenerators.js b/tests/baselines/reference/importHelpersNoHelpersForAsyncGenerators.js index aa10c5221eae1..a63ad93ba3ca5 100644 --- a/tests/baselines/reference/importHelpersNoHelpersForAsyncGenerators.js +++ b/tests/baselines/reference/importHelpersNoHelpersForAsyncGenerators.js @@ -17,17 +17,17 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.f = void 0; var tslib_1 = require("tslib"); function f() { - return (0, tslib_1.__asyncGenerator)(this, arguments, function f_1() { - return (0, tslib_1.__generator)(this, function (_a) { + return tslib_1.__asyncGenerator(this, arguments, function f_1() { + return tslib_1.__generator(this, function (_a) { switch (_a.label) { - case 0: return [4 /*yield*/, (0, tslib_1.__await)(1)]; + case 0: return [4 /*yield*/, tslib_1.__await(1)]; case 1: _a.sent(); - return [4 /*yield*/, (0, tslib_1.__await)(2)]; + return [4 /*yield*/, tslib_1.__await(2)]; case 2: return [4 /*yield*/, _a.sent()]; case 3: _a.sent(); - return [5 /*yield**/, (0, tslib_1.__values)((0, tslib_1.__asyncDelegator)((0, tslib_1.__asyncValues)([3])))]; + return [5 /*yield**/, tslib_1.__values(tslib_1.__asyncDelegator(tslib_1.__asyncValues([3])))]; case 4: return [4 /*yield*/, tslib_1.__await.apply(void 0, [_a.sent()])]; case 5: _a.sent(); diff --git a/tests/baselines/reference/importHelpersNoHelpersForPrivateFields.js b/tests/baselines/reference/importHelpersNoHelpersForPrivateFields.js index d84cca941153b..e9fcee3015960 100644 --- a/tests/baselines/reference/importHelpersNoHelpersForPrivateFields.js +++ b/tests/baselines/reference/importHelpersNoHelpersForPrivateFields.js @@ -24,8 +24,8 @@ class Foo { _Foo_field.set(this, true); } f() { - (0, tslib_1.__classPrivateFieldSet)(this, _Foo_field, (0, tslib_1.__classPrivateFieldGet)(this, _Foo_field, "f"), "f"); - (0, tslib_1.__classPrivateFieldIn)(_Foo_field, this); + tslib_1.__classPrivateFieldSet(this, _Foo_field, tslib_1.__classPrivateFieldGet(this, _Foo_field, "f"), "f"); + tslib_1.__classPrivateFieldIn(_Foo_field, this); } } exports.Foo = Foo; diff --git a/tests/baselines/reference/importHelpersNoModule.js b/tests/baselines/reference/importHelpersNoModule.js index f50287ee705ca..b4a8fa89c1e4c 100644 --- a/tests/baselines/reference/importHelpersNoModule.js +++ b/tests/baselines/reference/importHelpersNoModule.js @@ -37,7 +37,7 @@ var A = /** @class */ (function () { }()); exports.A = A; var B = /** @class */ (function (_super) { - (0, tslib_1.__extends)(B, _super); + tslib_1.__extends(B, _super); function B() { return _super !== null && _super.apply(this, arguments) || this; } @@ -49,13 +49,13 @@ var C = /** @class */ (function () { } C.prototype.method = function (x) { }; - (0, tslib_1.__decorate)([ - (0, tslib_1.__param)(0, dec), - (0, tslib_1.__metadata)("design:type", Function), - (0, tslib_1.__metadata)("design:paramtypes", [Number]), - (0, tslib_1.__metadata)("design:returntype", void 0) + tslib_1.__decorate([ + tslib_1.__param(0, dec), + tslib_1.__metadata("design:type", Function), + tslib_1.__metadata("design:paramtypes", [Number]), + tslib_1.__metadata("design:returntype", void 0) ], C.prototype, "method", null); - C = (0, tslib_1.__decorate)([ + C = tslib_1.__decorate([ dec ], C); return C; diff --git a/tests/baselines/reference/importHelpersOutFile.js b/tests/baselines/reference/importHelpersOutFile.js index fdb593592bd43..9e2266f1af930 100644 --- a/tests/baselines/reference/importHelpersOutFile.js +++ b/tests/baselines/reference/importHelpersOutFile.js @@ -37,7 +37,7 @@ define("b", ["require", "exports", "tslib", "a"], function (require, exports, ts Object.defineProperty(exports, "__esModule", { value: true }); exports.B = void 0; var B = /** @class */ (function (_super) { - (0, tslib_1.__extends)(B, _super); + tslib_1.__extends(B, _super); function B() { return _super !== null && _super.apply(this, arguments) || this; } @@ -50,7 +50,7 @@ define("c", ["require", "exports", "tslib", "a"], function (require, exports, ts Object.defineProperty(exports, "__esModule", { value: true }); exports.C = void 0; var C = /** @class */ (function (_super) { - (0, tslib_2.__extends)(C, _super); + tslib_2.__extends(C, _super); function C() { return _super !== null && _super.apply(this, arguments) || this; } diff --git a/tests/baselines/reference/importHelpersWithExportStarAs(esmoduleinterop=true,module=amd).js b/tests/baselines/reference/importHelpersWithExportStarAs(esmoduleinterop=true,module=amd).js index 3e214d3274df1..bb9e4bd8c2512 100644 --- a/tests/baselines/reference/importHelpersWithExportStarAs(esmoduleinterop=true,module=amd).js +++ b/tests/baselines/reference/importHelpersWithExportStarAs(esmoduleinterop=true,module=amd).js @@ -25,5 +25,5 @@ define(["require", "exports", "tslib", "./a"], function (require, exports, tslib "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.a = void 0; - exports.a = (0, tslib_1.__importStar)(a); + exports.a = tslib_1.__importStar(a); }); diff --git a/tests/baselines/reference/importHelpersWithExportStarAs(esmoduleinterop=true,module=commonjs).js b/tests/baselines/reference/importHelpersWithExportStarAs(esmoduleinterop=true,module=commonjs).js index a8fcc1c8bd232..ad2ad22bf4756 100644 --- a/tests/baselines/reference/importHelpersWithExportStarAs(esmoduleinterop=true,module=commonjs).js +++ b/tests/baselines/reference/importHelpersWithExportStarAs(esmoduleinterop=true,module=commonjs).js @@ -23,4 +23,4 @@ exports.A = A; Object.defineProperty(exports, "__esModule", { value: true }); exports.a = void 0; const tslib_1 = require("tslib"); -exports.a = (0, tslib_1.__importStar)(require("./a")); +exports.a = tslib_1.__importStar(require("./a")); diff --git a/tests/baselines/reference/importHelpersWithImportOrExportDefault(esmoduleinterop=true,module=amd).js b/tests/baselines/reference/importHelpersWithImportOrExportDefault(esmoduleinterop=true,module=amd).js index b6e78cc6bf915..6a8466b591ffb 100644 --- a/tests/baselines/reference/importHelpersWithImportOrExportDefault(esmoduleinterop=true,module=amd).js +++ b/tests/baselines/reference/importHelpersWithImportOrExportDefault(esmoduleinterop=true,module=amd).js @@ -27,8 +27,8 @@ define(["require", "exports", "tslib", "./a", "./a", "./a"], function (require, "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.a = exports.default = void 0; - a_3 = (0, tslib_1.__importDefault)(a_3); - Object.defineProperty(exports, "default", { enumerable: true, get: function () { return (0, tslib_1.__importDefault)(a_1).default; } }); - Object.defineProperty(exports, "a", { enumerable: true, get: function () { return (0, tslib_1.__importDefault)(a_2).default; } }); + a_3 = tslib_1.__importDefault(a_3); + Object.defineProperty(exports, "default", { enumerable: true, get: function () { return tslib_1.__importDefault(a_1).default; } }); + Object.defineProperty(exports, "a", { enumerable: true, get: function () { return tslib_1.__importDefault(a_2).default; } }); void a_3.default; }); diff --git a/tests/baselines/reference/importHelpersWithImportOrExportDefault(esmoduleinterop=true,module=commonjs).js b/tests/baselines/reference/importHelpersWithImportOrExportDefault(esmoduleinterop=true,module=commonjs).js index 81885fa55fca8..50e3866222d41 100644 --- a/tests/baselines/reference/importHelpersWithImportOrExportDefault(esmoduleinterop=true,module=commonjs).js +++ b/tests/baselines/reference/importHelpersWithImportOrExportDefault(esmoduleinterop=true,module=commonjs).js @@ -26,8 +26,8 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.a = exports.default = void 0; const tslib_1 = require("tslib"); var a_1 = require("./a"); -Object.defineProperty(exports, "default", { enumerable: true, get: function () { return (0, tslib_1.__importDefault)(a_1).default; } }); +Object.defineProperty(exports, "default", { enumerable: true, get: function () { return tslib_1.__importDefault(a_1).default; } }); var a_2 = require("./a"); -Object.defineProperty(exports, "a", { enumerable: true, get: function () { return (0, tslib_1.__importDefault)(a_2).default; } }); -const a_3 = (0, tslib_1.__importDefault)(require("./a")); +Object.defineProperty(exports, "a", { enumerable: true, get: function () { return tslib_1.__importDefault(a_2).default; } }); +const a_3 = tslib_1.__importDefault(require("./a")); void a_3.default; diff --git a/tests/baselines/reference/importHelpersWithImportStarAs(esmoduleinterop=true,module=amd).js b/tests/baselines/reference/importHelpersWithImportStarAs(esmoduleinterop=true,module=amd).js index 15e9fe562d563..d19acf3679cb8 100644 --- a/tests/baselines/reference/importHelpersWithImportStarAs(esmoduleinterop=true,module=amd).js +++ b/tests/baselines/reference/importHelpersWithImportStarAs(esmoduleinterop=true,module=amd).js @@ -26,6 +26,6 @@ define(["require", "exports", "tslib", "./a"], function (require, exports, tslib "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.a = void 0; - a = (0, tslib_1.__importStar)(a); + a = tslib_1.__importStar(a); exports.a = a; }); diff --git a/tests/baselines/reference/importHelpersWithImportStarAs(esmoduleinterop=true,module=commonjs).js b/tests/baselines/reference/importHelpersWithImportStarAs(esmoduleinterop=true,module=commonjs).js index 2bf2f2fd33769..acb7d3e90b58a 100644 --- a/tests/baselines/reference/importHelpersWithImportStarAs(esmoduleinterop=true,module=commonjs).js +++ b/tests/baselines/reference/importHelpersWithImportStarAs(esmoduleinterop=true,module=commonjs).js @@ -24,5 +24,5 @@ exports.A = A; Object.defineProperty(exports, "__esModule", { value: true }); exports.a = void 0; const tslib_1 = require("tslib"); -const a = (0, tslib_1.__importStar)(require("./a")); +const a = tslib_1.__importStar(require("./a")); exports.a = a; diff --git a/tests/baselines/reference/importHelpersWithLocalCollisions(module=amd).js b/tests/baselines/reference/importHelpersWithLocalCollisions(module=amd).js index b3fcd7756ffc7..9f58b4b0da402 100644 --- a/tests/baselines/reference/importHelpersWithLocalCollisions(module=amd).js +++ b/tests/baselines/reference/importHelpersWithLocalCollisions(module=amd).js @@ -24,7 +24,7 @@ define(["require", "exports", "tslib"], function (require, exports, tslib_1) { exports.A = void 0; let A = class A { }; - A = (0, tslib_1.__decorate)([ + A = tslib_1.__decorate([ dec ], A); exports.A = A; diff --git a/tests/baselines/reference/importHelpersWithLocalCollisions(module=commonjs).js b/tests/baselines/reference/importHelpersWithLocalCollisions(module=commonjs).js index b11f9bbcaa155..8924252bf891d 100644 --- a/tests/baselines/reference/importHelpersWithLocalCollisions(module=commonjs).js +++ b/tests/baselines/reference/importHelpersWithLocalCollisions(module=commonjs).js @@ -24,7 +24,7 @@ exports.A = void 0; const tslib_1 = require("tslib"); let A = class A { }; -A = (0, tslib_1.__decorate)([ +A = tslib_1.__decorate([ dec ], A); exports.A = A; diff --git a/tests/baselines/reference/importNonExportedMember12.symbols b/tests/baselines/reference/importNonExportedMember12.symbols new file mode 100644 index 0000000000000..47b0acd1e88fa --- /dev/null +++ b/tests/baselines/reference/importNonExportedMember12.symbols @@ -0,0 +1,16 @@ +=== /node_modules/foo/src/index.js === +module.exports = 1; +>module.exports : Symbol(module.exports, Decl(index.js, 0, 0)) +>module : Symbol(export=, Decl(index.js, 0, 0)) +>exports : Symbol(export=, Decl(index.js, 0, 0)) + +=== /a.js === +export const A = require("foo"); +>A : Symbol(A, Decl(a.js, 0, 12)) +>require : Symbol(require) +>"foo" : Symbol("/node_modules/foo/src/index", Decl(index.js, 0, 0)) + +=== /b.ts === +import { A } from "./a"; +>A : Symbol(A, Decl(b.ts, 0, 8)) + diff --git a/tests/baselines/reference/importNonExportedMember12.types b/tests/baselines/reference/importNonExportedMember12.types new file mode 100644 index 0000000000000..2c1e47552d8c5 --- /dev/null +++ b/tests/baselines/reference/importNonExportedMember12.types @@ -0,0 +1,19 @@ +=== /node_modules/foo/src/index.js === +module.exports = 1; +>module.exports = 1 : number +>module.exports : number +>module : { exports: number; } +>exports : number +>1 : 1 + +=== /a.js === +export const A = require("foo"); +>A : number +>require("foo") : number +>require : any +>"foo" : "foo" + +=== /b.ts === +import { A } from "./a"; +>A : number + diff --git a/tests/baselines/reference/importSpecifiers_js.errors.txt b/tests/baselines/reference/importSpecifiers_js.errors.txt new file mode 100644 index 0000000000000..98e07951a2d0b --- /dev/null +++ b/tests/baselines/reference/importSpecifiers_js.errors.txt @@ -0,0 +1,11 @@ +tests/cases/conformance/externalModules/typeOnly/a.js(1,10): error TS8006: 'import...type' declarations can only be used in TypeScript files. + + +==== tests/cases/conformance/externalModules/typeOnly/a.ts (0 errors) ==== + export interface A {} + +==== tests/cases/conformance/externalModules/typeOnly/a.js (1 errors) ==== + import { type A } from "./a"; + ~~~~~~ +!!! error TS8006: 'import...type' declarations can only be used in TypeScript files. + \ No newline at end of file diff --git a/tests/baselines/reference/importSpecifiers_js.symbols b/tests/baselines/reference/importSpecifiers_js.symbols new file mode 100644 index 0000000000000..c486fa6bb7a07 --- /dev/null +++ b/tests/baselines/reference/importSpecifiers_js.symbols @@ -0,0 +1,8 @@ +=== tests/cases/conformance/externalModules/typeOnly/a.ts === +export interface A {} +>A : Symbol(A, Decl(a.ts, 0, 0)) + +=== tests/cases/conformance/externalModules/typeOnly/a.js === +import { type A } from "./a"; +>A : Symbol(A, Decl(a.js, 0, 8)) + diff --git a/tests/baselines/reference/importSpecifiers_js.types b/tests/baselines/reference/importSpecifiers_js.types new file mode 100644 index 0000000000000..b668b5e5fe256 --- /dev/null +++ b/tests/baselines/reference/importSpecifiers_js.types @@ -0,0 +1,7 @@ +=== tests/cases/conformance/externalModules/typeOnly/a.ts === +export interface A {} +No type information for this code. +No type information for this code.=== tests/cases/conformance/externalModules/typeOnly/a.js === +import { type A } from "./a"; +>A : any + diff --git a/tests/baselines/reference/importTypeAmbient.types b/tests/baselines/reference/importTypeAmbient.types index 3a36a1d64fb4e..d59207e523224 100644 --- a/tests/baselines/reference/importTypeAmbient.types +++ b/tests/baselines/reference/importTypeAmbient.types @@ -13,7 +13,7 @@ declare module "foo" { >Point : Point } const x: import("foo") = { x: 0, y: 0 }; ->x : Point +>x : import("foo") >{ x: 0, y: 0 } : { x: number; y: number; } >x : number >0 : 0 diff --git a/tests/baselines/reference/importWithTrailingSlash.errors.txt b/tests/baselines/reference/importWithTrailingSlash.errors.txt new file mode 100644 index 0000000000000..60125b35a5847 --- /dev/null +++ b/tests/baselines/reference/importWithTrailingSlash.errors.txt @@ -0,0 +1,26 @@ +/a/b/test.ts(3,3): error TS2339: Property 'a' does not exist on type '{ aIndex: number; }'. +/a/test.ts(3,3): error TS2339: Property 'a' does not exist on type '{ aIndex: number; }'. + + +==== /a.ts (0 errors) ==== + export default { a: 0 }; + +==== /a/index.ts (0 errors) ==== + export default { aIndex: 0 }; + +==== /a/test.ts (1 errors) ==== + import a from "."; + import aIndex from "./"; + a.a; + ~ +!!! error TS2339: Property 'a' does not exist on type '{ aIndex: number; }'. + aIndex.aIndex; + +==== /a/b/test.ts (1 errors) ==== + import a from ".."; + import aIndex from "../"; + a.a; + ~ +!!! error TS2339: Property 'a' does not exist on type '{ aIndex: number; }'. + aIndex.aIndex; + \ No newline at end of file diff --git a/tests/baselines/reference/importWithTrailingSlash.symbols b/tests/baselines/reference/importWithTrailingSlash.symbols index c6c4946438010..ddaf5befb066e 100644 --- a/tests/baselines/reference/importWithTrailingSlash.symbols +++ b/tests/baselines/reference/importWithTrailingSlash.symbols @@ -14,9 +14,7 @@ import aIndex from "./"; >aIndex : Symbol(aIndex, Decl(test.ts, 1, 6)) a.a; ->a.a : Symbol(a, Decl(a.ts, 0, 16)) >a : Symbol(a, Decl(test.ts, 0, 6)) ->a : Symbol(a, Decl(a.ts, 0, 16)) aIndex.aIndex; >aIndex.aIndex : Symbol(aIndex, Decl(index.ts, 0, 16)) @@ -31,9 +29,7 @@ import aIndex from "../"; >aIndex : Symbol(aIndex, Decl(test.ts, 1, 6)) a.a; ->a.a : Symbol(a, Decl(a.ts, 0, 16)) >a : Symbol(a, Decl(test.ts, 0, 6)) ->a : Symbol(a, Decl(a.ts, 0, 16)) aIndex.aIndex; >aIndex.aIndex : Symbol(aIndex, Decl(index.ts, 0, 16)) diff --git a/tests/baselines/reference/importWithTrailingSlash.trace.json b/tests/baselines/reference/importWithTrailingSlash.trace.json index fb77f85298840..b60d3bc6aab90 100644 --- a/tests/baselines/reference/importWithTrailingSlash.trace.json +++ b/tests/baselines/reference/importWithTrailingSlash.trace.json @@ -1,20 +1,22 @@ [ "======== Resolving module '.' from '/a/test.ts'. ========", "Explicitly specified module resolution kind: 'NodeJs'.", - "Loading module as file / folder, candidate module location '/a', target file type 'TypeScript'.", - "File '/a.ts' exist - use it as a name resolution result.", - "======== Module name '.' was successfully resolved to '/a.ts'. ========", + "Loading module as file / folder, candidate module location '/a/', target file type 'TypeScript'.", + "File '/a/package.json' does not exist.", + "File '/a/index.ts' exist - use it as a name resolution result.", + "======== Module name '.' was successfully resolved to '/a/index.ts'. ========", "======== Resolving module './' from '/a/test.ts'. ========", "Explicitly specified module resolution kind: 'NodeJs'.", "Loading module as file / folder, candidate module location '/a/', target file type 'TypeScript'.", - "File '/a/package.json' does not exist.", + "File '/a/package.json' does not exist according to earlier cached lookups.", "File '/a/index.ts' exist - use it as a name resolution result.", "======== Module name './' was successfully resolved to '/a/index.ts'. ========", "======== Resolving module '..' from '/a/b/test.ts'. ========", "Explicitly specified module resolution kind: 'NodeJs'.", - "Loading module as file / folder, candidate module location '/a', target file type 'TypeScript'.", - "File '/a.ts' exist - use it as a name resolution result.", - "======== Module name '..' was successfully resolved to '/a.ts'. ========", + "Loading module as file / folder, candidate module location '/a/', target file type 'TypeScript'.", + "File '/a/package.json' does not exist according to earlier cached lookups.", + "File '/a/index.ts' exist - use it as a name resolution result.", + "======== Module name '..' was successfully resolved to '/a/index.ts'. ========", "======== Resolving module '../' from '/a/b/test.ts'. ========", "Explicitly specified module resolution kind: 'NodeJs'.", "Loading module as file / folder, candidate module location '/a/', target file type 'TypeScript'.", diff --git a/tests/baselines/reference/importWithTrailingSlash.types b/tests/baselines/reference/importWithTrailingSlash.types index beec18ea4aad9..41c2a160afa40 100644 --- a/tests/baselines/reference/importWithTrailingSlash.types +++ b/tests/baselines/reference/importWithTrailingSlash.types @@ -12,15 +12,15 @@ export default { aIndex: 0 }; === /a/test.ts === import a from "."; ->a : { a: number; } +>a : { aIndex: number; } import aIndex from "./"; >aIndex : { aIndex: number; } a.a; ->a.a : number ->a : { a: number; } ->a : number +>a.a : any +>a : { aIndex: number; } +>a : any aIndex.aIndex; >aIndex.aIndex : number @@ -29,15 +29,15 @@ aIndex.aIndex; === /a/b/test.ts === import a from ".."; ->a : { a: number; } +>a : { aIndex: number; } import aIndex from "../"; >aIndex : { aIndex: number; } a.a; ->a.a : number ->a : { a: number; } ->a : number +>a.a : any +>a : { aIndex: number; } +>a : any aIndex.aIndex; >aIndex.aIndex : number diff --git a/tests/baselines/reference/importsNotUsedAsValues_error.js b/tests/baselines/reference/importsNotUsedAsValues_error.js index e7ccbd7b21c4a..587dc7b6ff8f8 100644 --- a/tests/baselines/reference/importsNotUsedAsValues_error.js +++ b/tests/baselines/reference/importsNotUsedAsValues_error.js @@ -109,9 +109,9 @@ require("./a"); // noUnusedLocals error only "use strict"; exports.__esModule = true; require("./a"); -0 /* One */; -var c = 1 /* Two */; -var d = 1 /* Two */; +0 /* C.One */; +var c = 1 /* C.Two */; +var d = 1 /* C.Two */; console.log(c, d); //// [g.js] "use strict"; @@ -141,4 +141,4 @@ exports.__esModule = true; //// [l.js] "use strict"; exports.__esModule = true; -0 /* One */; +0 /* K.One */; diff --git a/tests/baselines/reference/incompatibleExports1.types b/tests/baselines/reference/incompatibleExports1.types index 82017c63ff6c0..3421f58e9bf16 100644 --- a/tests/baselines/reference/incompatibleExports1.types +++ b/tests/baselines/reference/incompatibleExports1.types @@ -23,7 +23,7 @@ declare module "baz" { } module c { ->c : typeof c +>c : typeof import("baz") export var c: string; >c : string diff --git a/tests/baselines/reference/incrementOnNullAssertion.types b/tests/baselines/reference/incrementOnNullAssertion.types index 0c7f5340b9f9a..199c4c87050f8 100644 --- a/tests/baselines/reference/incrementOnNullAssertion.types +++ b/tests/baselines/reference/incrementOnNullAssertion.types @@ -27,21 +27,21 @@ if (foo[x] === undefined) { } else { let nu = foo[x] ->nu : number | undefined ->foo[x] : number | undefined +>nu : number +>foo[x] : number >foo : Dictionary >x : "bar" let n = foo[x] ->n : number | undefined ->foo[x] : number | undefined +>n : number +>foo[x] : number >foo : Dictionary >x : "bar" foo[x]!++ >foo[x]!++ : number >foo[x]! : number ->foo[x] : number | undefined +>foo[x] : number >foo : Dictionary >x : "bar" } diff --git a/tests/baselines/reference/indexAt(target=es2021).errors.txt b/tests/baselines/reference/indexAt(target=es2021).errors.txt new file mode 100644 index 0000000000000..9307c2f7d5623 --- /dev/null +++ b/tests/baselines/reference/indexAt(target=es2021).errors.txt @@ -0,0 +1,56 @@ +tests/cases/compiler/indexAt.ts(1,5): error TS2550: Property 'at' does not exist on type 'number[]'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2022' or later. +tests/cases/compiler/indexAt.ts(2,7): error TS2550: Property 'at' does not exist on type '"foo"'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2022' or later. +tests/cases/compiler/indexAt.ts(3,17): error TS2550: Property 'at' does not exist on type 'Int8Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2022' or later. +tests/cases/compiler/indexAt.ts(4,18): error TS2550: Property 'at' does not exist on type 'Uint8Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2022' or later. +tests/cases/compiler/indexAt.ts(5,25): error TS2550: Property 'at' does not exist on type 'Uint8ClampedArray'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2022' or later. +tests/cases/compiler/indexAt.ts(6,18): error TS2550: Property 'at' does not exist on type 'Int16Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2022' or later. +tests/cases/compiler/indexAt.ts(7,19): error TS2550: Property 'at' does not exist on type 'Uint16Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2022' or later. +tests/cases/compiler/indexAt.ts(8,18): error TS2550: Property 'at' does not exist on type 'Int32Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2022' or later. +tests/cases/compiler/indexAt.ts(9,19): error TS2550: Property 'at' does not exist on type 'Uint32Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2022' or later. +tests/cases/compiler/indexAt.ts(10,20): error TS2550: Property 'at' does not exist on type 'Float32Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2022' or later. +tests/cases/compiler/indexAt.ts(11,20): error TS2550: Property 'at' does not exist on type 'Float64Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2022' or later. +tests/cases/compiler/indexAt.ts(12,21): error TS2550: Property 'at' does not exist on type 'BigInt64Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2022' or later. +tests/cases/compiler/indexAt.ts(13,22): error TS2550: Property 'at' does not exist on type 'BigUint64Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2022' or later. + + +==== tests/cases/compiler/indexAt.ts (13 errors) ==== + [0].at(0); + ~~ +!!! error TS2550: Property 'at' does not exist on type 'number[]'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2022' or later. + "foo".at(0); + ~~ +!!! error TS2550: Property 'at' does not exist on type '"foo"'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2022' or later. + new Int8Array().at(0); + ~~ +!!! error TS2550: Property 'at' does not exist on type 'Int8Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2022' or later. + new Uint8Array().at(0); + ~~ +!!! error TS2550: Property 'at' does not exist on type 'Uint8Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2022' or later. + new Uint8ClampedArray().at(0); + ~~ +!!! error TS2550: Property 'at' does not exist on type 'Uint8ClampedArray'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2022' or later. + new Int16Array().at(0); + ~~ +!!! error TS2550: Property 'at' does not exist on type 'Int16Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2022' or later. + new Uint16Array().at(0); + ~~ +!!! error TS2550: Property 'at' does not exist on type 'Uint16Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2022' or later. + new Int32Array().at(0); + ~~ +!!! error TS2550: Property 'at' does not exist on type 'Int32Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2022' or later. + new Uint32Array().at(0); + ~~ +!!! error TS2550: Property 'at' does not exist on type 'Uint32Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2022' or later. + new Float32Array().at(0); + ~~ +!!! error TS2550: Property 'at' does not exist on type 'Float32Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2022' or later. + new Float64Array().at(0); + ~~ +!!! error TS2550: Property 'at' does not exist on type 'Float64Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2022' or later. + new BigInt64Array().at(0); + ~~ +!!! error TS2550: Property 'at' does not exist on type 'BigInt64Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2022' or later. + new BigUint64Array().at(0); + ~~ +!!! error TS2550: Property 'at' does not exist on type 'BigUint64Array'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2022' or later. + \ No newline at end of file diff --git a/tests/baselines/reference/indexAt(target=es2021).js b/tests/baselines/reference/indexAt(target=es2021).js new file mode 100644 index 0000000000000..01ffbff491904 --- /dev/null +++ b/tests/baselines/reference/indexAt(target=es2021).js @@ -0,0 +1,30 @@ +//// [indexAt.ts] +[0].at(0); +"foo".at(0); +new Int8Array().at(0); +new Uint8Array().at(0); +new Uint8ClampedArray().at(0); +new Int16Array().at(0); +new Uint16Array().at(0); +new Int32Array().at(0); +new Uint32Array().at(0); +new Float32Array().at(0); +new Float64Array().at(0); +new BigInt64Array().at(0); +new BigUint64Array().at(0); + + +//// [indexAt.js] +[0].at(0); +"foo".at(0); +new Int8Array().at(0); +new Uint8Array().at(0); +new Uint8ClampedArray().at(0); +new Int16Array().at(0); +new Uint16Array().at(0); +new Int32Array().at(0); +new Uint32Array().at(0); +new Float32Array().at(0); +new Float64Array().at(0); +new BigInt64Array().at(0); +new BigUint64Array().at(0); diff --git a/tests/baselines/reference/indexAt(target=es2021).symbols b/tests/baselines/reference/indexAt(target=es2021).symbols new file mode 100644 index 0000000000000..383f372fadd3e --- /dev/null +++ b/tests/baselines/reference/indexAt(target=es2021).symbols @@ -0,0 +1,36 @@ +=== tests/cases/compiler/indexAt.ts === +[0].at(0); +"foo".at(0); +new Int8Array().at(0); +>Int8Array : Symbol(Int8Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --)) + +new Uint8Array().at(0); +>Uint8Array : Symbol(Uint8Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --)) + +new Uint8ClampedArray().at(0); +>Uint8ClampedArray : Symbol(Uint8ClampedArray, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --)) + +new Int16Array().at(0); +>Int16Array : Symbol(Int16Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --)) + +new Uint16Array().at(0); +>Uint16Array : Symbol(Uint16Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --)) + +new Int32Array().at(0); +>Int32Array : Symbol(Int32Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --)) + +new Uint32Array().at(0); +>Uint32Array : Symbol(Uint32Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --)) + +new Float32Array().at(0); +>Float32Array : Symbol(Float32Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --)) + +new Float64Array().at(0); +>Float64Array : Symbol(Float64Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --)) + +new BigInt64Array().at(0); +>BigInt64Array : Symbol(BigInt64Array, Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --)) + +new BigUint64Array().at(0); +>BigUint64Array : Symbol(BigUint64Array, Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --)) + diff --git a/tests/baselines/reference/indexAt(target=es2021).types b/tests/baselines/reference/indexAt(target=es2021).types new file mode 100644 index 0000000000000..8229bcacb9328 --- /dev/null +++ b/tests/baselines/reference/indexAt(target=es2021).types @@ -0,0 +1,104 @@ +=== tests/cases/compiler/indexAt.ts === +[0].at(0); +>[0].at(0) : any +>[0].at : any +>[0] : number[] +>0 : 0 +>at : any +>0 : 0 + +"foo".at(0); +>"foo".at(0) : any +>"foo".at : any +>"foo" : "foo" +>at : any +>0 : 0 + +new Int8Array().at(0); +>new Int8Array().at(0) : any +>new Int8Array().at : any +>new Int8Array() : Int8Array +>Int8Array : Int8ArrayConstructor +>at : any +>0 : 0 + +new Uint8Array().at(0); +>new Uint8Array().at(0) : any +>new Uint8Array().at : any +>new Uint8Array() : Uint8Array +>Uint8Array : Uint8ArrayConstructor +>at : any +>0 : 0 + +new Uint8ClampedArray().at(0); +>new Uint8ClampedArray().at(0) : any +>new Uint8ClampedArray().at : any +>new Uint8ClampedArray() : Uint8ClampedArray +>Uint8ClampedArray : Uint8ClampedArrayConstructor +>at : any +>0 : 0 + +new Int16Array().at(0); +>new Int16Array().at(0) : any +>new Int16Array().at : any +>new Int16Array() : Int16Array +>Int16Array : Int16ArrayConstructor +>at : any +>0 : 0 + +new Uint16Array().at(0); +>new Uint16Array().at(0) : any +>new Uint16Array().at : any +>new Uint16Array() : Uint16Array +>Uint16Array : Uint16ArrayConstructor +>at : any +>0 : 0 + +new Int32Array().at(0); +>new Int32Array().at(0) : any +>new Int32Array().at : any +>new Int32Array() : Int32Array +>Int32Array : Int32ArrayConstructor +>at : any +>0 : 0 + +new Uint32Array().at(0); +>new Uint32Array().at(0) : any +>new Uint32Array().at : any +>new Uint32Array() : Uint32Array +>Uint32Array : Uint32ArrayConstructor +>at : any +>0 : 0 + +new Float32Array().at(0); +>new Float32Array().at(0) : any +>new Float32Array().at : any +>new Float32Array() : Float32Array +>Float32Array : Float32ArrayConstructor +>at : any +>0 : 0 + +new Float64Array().at(0); +>new Float64Array().at(0) : any +>new Float64Array().at : any +>new Float64Array() : Float64Array +>Float64Array : Float64ArrayConstructor +>at : any +>0 : 0 + +new BigInt64Array().at(0); +>new BigInt64Array().at(0) : any +>new BigInt64Array().at : any +>new BigInt64Array() : BigInt64Array +>BigInt64Array : BigInt64ArrayConstructor +>at : any +>0 : 0 + +new BigUint64Array().at(0); +>new BigUint64Array().at(0) : any +>new BigUint64Array().at : any +>new BigUint64Array() : BigUint64Array +>BigUint64Array : BigUint64ArrayConstructor +>at : any +>0 : 0 + diff --git a/tests/baselines/reference/indexAt(target=es2022).js b/tests/baselines/reference/indexAt(target=es2022).js new file mode 100644 index 0000000000000..01ffbff491904 --- /dev/null +++ b/tests/baselines/reference/indexAt(target=es2022).js @@ -0,0 +1,30 @@ +//// [indexAt.ts] +[0].at(0); +"foo".at(0); +new Int8Array().at(0); +new Uint8Array().at(0); +new Uint8ClampedArray().at(0); +new Int16Array().at(0); +new Uint16Array().at(0); +new Int32Array().at(0); +new Uint32Array().at(0); +new Float32Array().at(0); +new Float64Array().at(0); +new BigInt64Array().at(0); +new BigUint64Array().at(0); + + +//// [indexAt.js] +[0].at(0); +"foo".at(0); +new Int8Array().at(0); +new Uint8Array().at(0); +new Uint8ClampedArray().at(0); +new Int16Array().at(0); +new Uint16Array().at(0); +new Int32Array().at(0); +new Uint32Array().at(0); +new Float32Array().at(0); +new Float64Array().at(0); +new BigInt64Array().at(0); +new BigUint64Array().at(0); diff --git a/tests/baselines/reference/indexAt(target=es2022).symbols b/tests/baselines/reference/indexAt(target=es2022).symbols new file mode 100644 index 0000000000000..09b7425331f42 --- /dev/null +++ b/tests/baselines/reference/indexAt(target=es2022).symbols @@ -0,0 +1,64 @@ +=== tests/cases/compiler/indexAt.ts === +[0].at(0); +>[0].at : Symbol(Array.at, Decl(lib.es2022.array.d.ts, --, --)) +>at : Symbol(Array.at, Decl(lib.es2022.array.d.ts, --, --)) + +"foo".at(0); +>"foo".at : Symbol(String.at, Decl(lib.es2022.string.d.ts, --, --)) +>at : Symbol(String.at, Decl(lib.es2022.string.d.ts, --, --)) + +new Int8Array().at(0); +>new Int8Array().at : Symbol(Int8Array.at, Decl(lib.es2022.array.d.ts, --, --)) +>Int8Array : Symbol(Int8Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 1 more) +>at : Symbol(Int8Array.at, Decl(lib.es2022.array.d.ts, --, --)) + +new Uint8Array().at(0); +>new Uint8Array().at : Symbol(Uint8Array.at, Decl(lib.es2022.array.d.ts, --, --)) +>Uint8Array : Symbol(Uint8Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 1 more) +>at : Symbol(Uint8Array.at, Decl(lib.es2022.array.d.ts, --, --)) + +new Uint8ClampedArray().at(0); +>new Uint8ClampedArray().at : Symbol(Uint8ClampedArray.at, Decl(lib.es2022.array.d.ts, --, --)) +>Uint8ClampedArray : Symbol(Uint8ClampedArray, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 1 more) +>at : Symbol(Uint8ClampedArray.at, Decl(lib.es2022.array.d.ts, --, --)) + +new Int16Array().at(0); +>new Int16Array().at : Symbol(Int16Array.at, Decl(lib.es2022.array.d.ts, --, --)) +>Int16Array : Symbol(Int16Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 1 more) +>at : Symbol(Int16Array.at, Decl(lib.es2022.array.d.ts, --, --)) + +new Uint16Array().at(0); +>new Uint16Array().at : Symbol(Uint16Array.at, Decl(lib.es2022.array.d.ts, --, --)) +>Uint16Array : Symbol(Uint16Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 1 more) +>at : Symbol(Uint16Array.at, Decl(lib.es2022.array.d.ts, --, --)) + +new Int32Array().at(0); +>new Int32Array().at : Symbol(Int32Array.at, Decl(lib.es2022.array.d.ts, --, --)) +>Int32Array : Symbol(Int32Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 1 more) +>at : Symbol(Int32Array.at, Decl(lib.es2022.array.d.ts, --, --)) + +new Uint32Array().at(0); +>new Uint32Array().at : Symbol(Uint32Array.at, Decl(lib.es2022.array.d.ts, --, --)) +>Uint32Array : Symbol(Uint32Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 1 more) +>at : Symbol(Uint32Array.at, Decl(lib.es2022.array.d.ts, --, --)) + +new Float32Array().at(0); +>new Float32Array().at : Symbol(Float32Array.at, Decl(lib.es2022.array.d.ts, --, --)) +>Float32Array : Symbol(Float32Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 1 more) +>at : Symbol(Float32Array.at, Decl(lib.es2022.array.d.ts, --, --)) + +new Float64Array().at(0); +>new Float64Array().at : Symbol(Float64Array.at, Decl(lib.es2022.array.d.ts, --, --)) +>Float64Array : Symbol(Float64Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 1 more) +>at : Symbol(Float64Array.at, Decl(lib.es2022.array.d.ts, --, --)) + +new BigInt64Array().at(0); +>new BigInt64Array().at : Symbol(BigInt64Array.at, Decl(lib.es2022.array.d.ts, --, --)) +>BigInt64Array : Symbol(BigInt64Array, Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2022.array.d.ts, --, --)) +>at : Symbol(BigInt64Array.at, Decl(lib.es2022.array.d.ts, --, --)) + +new BigUint64Array().at(0); +>new BigUint64Array().at : Symbol(BigUint64Array.at, Decl(lib.es2022.array.d.ts, --, --)) +>BigUint64Array : Symbol(BigUint64Array, Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2022.array.d.ts, --, --)) +>at : Symbol(BigUint64Array.at, Decl(lib.es2022.array.d.ts, --, --)) + diff --git a/tests/baselines/reference/indexAt(target=es2022).types b/tests/baselines/reference/indexAt(target=es2022).types new file mode 100644 index 0000000000000..acd40c3f67572 --- /dev/null +++ b/tests/baselines/reference/indexAt(target=es2022).types @@ -0,0 +1,104 @@ +=== tests/cases/compiler/indexAt.ts === +[0].at(0); +>[0].at(0) : number +>[0].at : (index: number) => number +>[0] : number[] +>0 : 0 +>at : (index: number) => number +>0 : 0 + +"foo".at(0); +>"foo".at(0) : string +>"foo".at : (index: number) => string +>"foo" : "foo" +>at : (index: number) => string +>0 : 0 + +new Int8Array().at(0); +>new Int8Array().at(0) : number +>new Int8Array().at : (index: number) => number +>new Int8Array() : Int8Array +>Int8Array : Int8ArrayConstructor +>at : (index: number) => number +>0 : 0 + +new Uint8Array().at(0); +>new Uint8Array().at(0) : number +>new Uint8Array().at : (index: number) => number +>new Uint8Array() : Uint8Array +>Uint8Array : Uint8ArrayConstructor +>at : (index: number) => number +>0 : 0 + +new Uint8ClampedArray().at(0); +>new Uint8ClampedArray().at(0) : number +>new Uint8ClampedArray().at : (index: number) => number +>new Uint8ClampedArray() : Uint8ClampedArray +>Uint8ClampedArray : Uint8ClampedArrayConstructor +>at : (index: number) => number +>0 : 0 + +new Int16Array().at(0); +>new Int16Array().at(0) : number +>new Int16Array().at : (index: number) => number +>new Int16Array() : Int16Array +>Int16Array : Int16ArrayConstructor +>at : (index: number) => number +>0 : 0 + +new Uint16Array().at(0); +>new Uint16Array().at(0) : number +>new Uint16Array().at : (index: number) => number +>new Uint16Array() : Uint16Array +>Uint16Array : Uint16ArrayConstructor +>at : (index: number) => number +>0 : 0 + +new Int32Array().at(0); +>new Int32Array().at(0) : number +>new Int32Array().at : (index: number) => number +>new Int32Array() : Int32Array +>Int32Array : Int32ArrayConstructor +>at : (index: number) => number +>0 : 0 + +new Uint32Array().at(0); +>new Uint32Array().at(0) : number +>new Uint32Array().at : (index: number) => number +>new Uint32Array() : Uint32Array +>Uint32Array : Uint32ArrayConstructor +>at : (index: number) => number +>0 : 0 + +new Float32Array().at(0); +>new Float32Array().at(0) : number +>new Float32Array().at : (index: number) => number +>new Float32Array() : Float32Array +>Float32Array : Float32ArrayConstructor +>at : (index: number) => number +>0 : 0 + +new Float64Array().at(0); +>new Float64Array().at(0) : number +>new Float64Array().at : (index: number) => number +>new Float64Array() : Float64Array +>Float64Array : Float64ArrayConstructor +>at : (index: number) => number +>0 : 0 + +new BigInt64Array().at(0); +>new BigInt64Array().at(0) : bigint +>new BigInt64Array().at : (index: number) => bigint +>new BigInt64Array() : BigInt64Array +>BigInt64Array : BigInt64ArrayConstructor +>at : (index: number) => bigint +>0 : 0 + +new BigUint64Array().at(0); +>new BigUint64Array().at(0) : bigint +>new BigUint64Array().at : (index: number) => bigint +>new BigUint64Array() : BigUint64Array +>BigUint64Array : BigUint64ArrayConstructor +>at : (index: number) => bigint +>0 : 0 + diff --git a/tests/baselines/reference/indexAt(target=esnext).js b/tests/baselines/reference/indexAt(target=esnext).js new file mode 100644 index 0000000000000..01ffbff491904 --- /dev/null +++ b/tests/baselines/reference/indexAt(target=esnext).js @@ -0,0 +1,30 @@ +//// [indexAt.ts] +[0].at(0); +"foo".at(0); +new Int8Array().at(0); +new Uint8Array().at(0); +new Uint8ClampedArray().at(0); +new Int16Array().at(0); +new Uint16Array().at(0); +new Int32Array().at(0); +new Uint32Array().at(0); +new Float32Array().at(0); +new Float64Array().at(0); +new BigInt64Array().at(0); +new BigUint64Array().at(0); + + +//// [indexAt.js] +[0].at(0); +"foo".at(0); +new Int8Array().at(0); +new Uint8Array().at(0); +new Uint8ClampedArray().at(0); +new Int16Array().at(0); +new Uint16Array().at(0); +new Int32Array().at(0); +new Uint32Array().at(0); +new Float32Array().at(0); +new Float64Array().at(0); +new BigInt64Array().at(0); +new BigUint64Array().at(0); diff --git a/tests/baselines/reference/indexAt(target=esnext).symbols b/tests/baselines/reference/indexAt(target=esnext).symbols new file mode 100644 index 0000000000000..09b7425331f42 --- /dev/null +++ b/tests/baselines/reference/indexAt(target=esnext).symbols @@ -0,0 +1,64 @@ +=== tests/cases/compiler/indexAt.ts === +[0].at(0); +>[0].at : Symbol(Array.at, Decl(lib.es2022.array.d.ts, --, --)) +>at : Symbol(Array.at, Decl(lib.es2022.array.d.ts, --, --)) + +"foo".at(0); +>"foo".at : Symbol(String.at, Decl(lib.es2022.string.d.ts, --, --)) +>at : Symbol(String.at, Decl(lib.es2022.string.d.ts, --, --)) + +new Int8Array().at(0); +>new Int8Array().at : Symbol(Int8Array.at, Decl(lib.es2022.array.d.ts, --, --)) +>Int8Array : Symbol(Int8Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 1 more) +>at : Symbol(Int8Array.at, Decl(lib.es2022.array.d.ts, --, --)) + +new Uint8Array().at(0); +>new Uint8Array().at : Symbol(Uint8Array.at, Decl(lib.es2022.array.d.ts, --, --)) +>Uint8Array : Symbol(Uint8Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 1 more) +>at : Symbol(Uint8Array.at, Decl(lib.es2022.array.d.ts, --, --)) + +new Uint8ClampedArray().at(0); +>new Uint8ClampedArray().at : Symbol(Uint8ClampedArray.at, Decl(lib.es2022.array.d.ts, --, --)) +>Uint8ClampedArray : Symbol(Uint8ClampedArray, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 1 more) +>at : Symbol(Uint8ClampedArray.at, Decl(lib.es2022.array.d.ts, --, --)) + +new Int16Array().at(0); +>new Int16Array().at : Symbol(Int16Array.at, Decl(lib.es2022.array.d.ts, --, --)) +>Int16Array : Symbol(Int16Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 1 more) +>at : Symbol(Int16Array.at, Decl(lib.es2022.array.d.ts, --, --)) + +new Uint16Array().at(0); +>new Uint16Array().at : Symbol(Uint16Array.at, Decl(lib.es2022.array.d.ts, --, --)) +>Uint16Array : Symbol(Uint16Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 1 more) +>at : Symbol(Uint16Array.at, Decl(lib.es2022.array.d.ts, --, --)) + +new Int32Array().at(0); +>new Int32Array().at : Symbol(Int32Array.at, Decl(lib.es2022.array.d.ts, --, --)) +>Int32Array : Symbol(Int32Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 1 more) +>at : Symbol(Int32Array.at, Decl(lib.es2022.array.d.ts, --, --)) + +new Uint32Array().at(0); +>new Uint32Array().at : Symbol(Uint32Array.at, Decl(lib.es2022.array.d.ts, --, --)) +>Uint32Array : Symbol(Uint32Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 1 more) +>at : Symbol(Uint32Array.at, Decl(lib.es2022.array.d.ts, --, --)) + +new Float32Array().at(0); +>new Float32Array().at : Symbol(Float32Array.at, Decl(lib.es2022.array.d.ts, --, --)) +>Float32Array : Symbol(Float32Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 1 more) +>at : Symbol(Float32Array.at, Decl(lib.es2022.array.d.ts, --, --)) + +new Float64Array().at(0); +>new Float64Array().at : Symbol(Float64Array.at, Decl(lib.es2022.array.d.ts, --, --)) +>Float64Array : Symbol(Float64Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 1 more) +>at : Symbol(Float64Array.at, Decl(lib.es2022.array.d.ts, --, --)) + +new BigInt64Array().at(0); +>new BigInt64Array().at : Symbol(BigInt64Array.at, Decl(lib.es2022.array.d.ts, --, --)) +>BigInt64Array : Symbol(BigInt64Array, Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2022.array.d.ts, --, --)) +>at : Symbol(BigInt64Array.at, Decl(lib.es2022.array.d.ts, --, --)) + +new BigUint64Array().at(0); +>new BigUint64Array().at : Symbol(BigUint64Array.at, Decl(lib.es2022.array.d.ts, --, --)) +>BigUint64Array : Symbol(BigUint64Array, Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2022.array.d.ts, --, --)) +>at : Symbol(BigUint64Array.at, Decl(lib.es2022.array.d.ts, --, --)) + diff --git a/tests/baselines/reference/indexAt(target=esnext).types b/tests/baselines/reference/indexAt(target=esnext).types new file mode 100644 index 0000000000000..acd40c3f67572 --- /dev/null +++ b/tests/baselines/reference/indexAt(target=esnext).types @@ -0,0 +1,104 @@ +=== tests/cases/compiler/indexAt.ts === +[0].at(0); +>[0].at(0) : number +>[0].at : (index: number) => number +>[0] : number[] +>0 : 0 +>at : (index: number) => number +>0 : 0 + +"foo".at(0); +>"foo".at(0) : string +>"foo".at : (index: number) => string +>"foo" : "foo" +>at : (index: number) => string +>0 : 0 + +new Int8Array().at(0); +>new Int8Array().at(0) : number +>new Int8Array().at : (index: number) => number +>new Int8Array() : Int8Array +>Int8Array : Int8ArrayConstructor +>at : (index: number) => number +>0 : 0 + +new Uint8Array().at(0); +>new Uint8Array().at(0) : number +>new Uint8Array().at : (index: number) => number +>new Uint8Array() : Uint8Array +>Uint8Array : Uint8ArrayConstructor +>at : (index: number) => number +>0 : 0 + +new Uint8ClampedArray().at(0); +>new Uint8ClampedArray().at(0) : number +>new Uint8ClampedArray().at : (index: number) => number +>new Uint8ClampedArray() : Uint8ClampedArray +>Uint8ClampedArray : Uint8ClampedArrayConstructor +>at : (index: number) => number +>0 : 0 + +new Int16Array().at(0); +>new Int16Array().at(0) : number +>new Int16Array().at : (index: number) => number +>new Int16Array() : Int16Array +>Int16Array : Int16ArrayConstructor +>at : (index: number) => number +>0 : 0 + +new Uint16Array().at(0); +>new Uint16Array().at(0) : number +>new Uint16Array().at : (index: number) => number +>new Uint16Array() : Uint16Array +>Uint16Array : Uint16ArrayConstructor +>at : (index: number) => number +>0 : 0 + +new Int32Array().at(0); +>new Int32Array().at(0) : number +>new Int32Array().at : (index: number) => number +>new Int32Array() : Int32Array +>Int32Array : Int32ArrayConstructor +>at : (index: number) => number +>0 : 0 + +new Uint32Array().at(0); +>new Uint32Array().at(0) : number +>new Uint32Array().at : (index: number) => number +>new Uint32Array() : Uint32Array +>Uint32Array : Uint32ArrayConstructor +>at : (index: number) => number +>0 : 0 + +new Float32Array().at(0); +>new Float32Array().at(0) : number +>new Float32Array().at : (index: number) => number +>new Float32Array() : Float32Array +>Float32Array : Float32ArrayConstructor +>at : (index: number) => number +>0 : 0 + +new Float64Array().at(0); +>new Float64Array().at(0) : number +>new Float64Array().at : (index: number) => number +>new Float64Array() : Float64Array +>Float64Array : Float64ArrayConstructor +>at : (index: number) => number +>0 : 0 + +new BigInt64Array().at(0); +>new BigInt64Array().at(0) : bigint +>new BigInt64Array().at : (index: number) => bigint +>new BigInt64Array() : BigInt64Array +>BigInt64Array : BigInt64ArrayConstructor +>at : (index: number) => bigint +>0 : 0 + +new BigUint64Array().at(0); +>new BigUint64Array().at(0) : bigint +>new BigUint64Array().at : (index: number) => bigint +>new BigUint64Array() : BigUint64Array +>BigUint64Array : BigUint64ArrayConstructor +>at : (index: number) => bigint +>0 : 0 + diff --git a/tests/baselines/reference/indexSignatures1.symbols b/tests/baselines/reference/indexSignatures1.symbols index e0920a0a7dfea..40d8740b1b7b2 100644 --- a/tests/baselines/reference/indexSignatures1.symbols +++ b/tests/baselines/reference/indexSignatures1.symbols @@ -224,7 +224,7 @@ type Invalid = { [key: Error]: string; // Error >key : Symbol(key, Decl(indexSignatures1.ts, 88, 5)) ->Error : Symbol(Error, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>Error : Symbol(Error, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2022.error.d.ts, --, --)) [key: T & string]: string; // Error >key : Symbol(key, Decl(indexSignatures1.ts, 89, 5)) diff --git a/tests/baselines/reference/inferFromGenericFunctionReturnTypes3.errors.txt b/tests/baselines/reference/inferFromGenericFunctionReturnTypes3.errors.txt index aea21ac2504ac..c6d0b89667175 100644 --- a/tests/baselines/reference/inferFromGenericFunctionReturnTypes3.errors.txt +++ b/tests/baselines/reference/inferFromGenericFunctionReturnTypes3.errors.txt @@ -1,5 +1,4 @@ tests/cases/compiler/inferFromGenericFunctionReturnTypes3.ts(28,30): error TS2345: Argument of type 'string' is not assignable to parameter of type '"bar"'. -tests/cases/compiler/inferFromGenericFunctionReturnTypes3.ts(175,47): error TS2322: Type 'boolean' is not assignable to type 'true'. tests/cases/compiler/inferFromGenericFunctionReturnTypes3.ts(180,26): error TS2322: Type '{ state: State.A; }[] | { state: State.B; }[]' is not assignable to type '{ state: State.A; }[]'. Type '{ state: State.B; }[]' is not assignable to type '{ state: State.A; }[]'. Type '{ state: State.B; }' is not assignable to type '{ state: State.A; }'. @@ -7,7 +6,7 @@ tests/cases/compiler/inferFromGenericFunctionReturnTypes3.ts(180,26): error TS23 Type 'State.B' is not assignable to type 'State.A'. -==== tests/cases/compiler/inferFromGenericFunctionReturnTypes3.ts (3 errors) ==== +==== tests/cases/compiler/inferFromGenericFunctionReturnTypes3.ts (2 errors) ==== // Repros from #5487 function truePromise(): Promise { @@ -185,9 +184,6 @@ tests/cases/compiler/inferFromGenericFunctionReturnTypes3.ts(180,26): error TS23 declare function foldLeft(z: U, f: (acc: U, t: boolean) => U): U; let res: boolean = foldLeft(true, (acc, t) => acc && t); // Error - ~~~~~~~~ -!!! error TS2322: Type 'boolean' is not assignable to type 'true'. -!!! related TS6502 tests/cases/compiler/inferFromGenericFunctionReturnTypes3.ts:174:39: The expected type comes from the return type of this signature. enum State { A, B } type Foo = { state: State } diff --git a/tests/baselines/reference/inferFromGenericFunctionReturnTypes3.types b/tests/baselines/reference/inferFromGenericFunctionReturnTypes3.types index bd2164e99e1d6..6eb2bbf32e681 100644 --- a/tests/baselines/reference/inferFromGenericFunctionReturnTypes3.types +++ b/tests/baselines/reference/inferFromGenericFunctionReturnTypes3.types @@ -461,14 +461,14 @@ declare function foldLeft(z: U, f: (acc: U, t: boolean) => U): U; let res: boolean = foldLeft(true, (acc, t) => acc && t); // Error >res : boolean ->foldLeft(true, (acc, t) => acc && t) : true +>foldLeft(true, (acc, t) => acc && t) : boolean >foldLeft : (z: U, f: (acc: U, t: boolean) => U) => U >true : true ->(acc, t) => acc && t : (acc: true, t: boolean) => boolean ->acc : true +>(acc, t) => acc && t : (acc: boolean, t: boolean) => boolean +>acc : boolean >t : boolean >acc && t : boolean ->acc : true +>acc : boolean >t : boolean enum State { A, B } diff --git a/tests/baselines/reference/inferTypes1.errors.txt b/tests/baselines/reference/inferTypes1.errors.txt index 82f384705352b..be2fa68bfbba5 100644 --- a/tests/baselines/reference/inferTypes1.errors.txt +++ b/tests/baselines/reference/inferTypes1.errors.txt @@ -18,7 +18,6 @@ tests/cases/conformance/types/conditional/inferTypes1.ts(84,43): error TS4081: E tests/cases/conformance/types/conditional/inferTypes1.ts(91,44): error TS2344: Type 'U' does not satisfy the constraint 'string'. Type 'number' is not assignable to type 'string'. tests/cases/conformance/types/conditional/inferTypes1.ts(153,40): error TS2322: Type 'T' is not assignable to type 'string | number | symbol'. - Type 'T' is not assignable to type 'symbol'. ==== tests/cases/conformance/types/conditional/inferTypes1.ts (16 errors) ==== @@ -211,7 +210,6 @@ tests/cases/conformance/types/conditional/inferTypes1.ts(153,40): error TS2322: type B = string extends T ? { [P in T]: void; } : T; // Error ~ !!! error TS2322: Type 'T' is not assignable to type 'string | number | symbol'. -!!! error TS2322: Type 'T' is not assignable to type 'symbol'. // Repro from #22302 diff --git a/tests/baselines/reference/inferringReturnTypeFromConstructSignatureGeneric.js b/tests/baselines/reference/inferringReturnTypeFromConstructSignatureGeneric.js new file mode 100644 index 0000000000000..a2f19cc2a3fe2 --- /dev/null +++ b/tests/baselines/reference/inferringReturnTypeFromConstructSignatureGeneric.js @@ -0,0 +1,66 @@ +//// [inferringReturnTypeFromConstructSignatureGeneric.ts] +class GenericObject { + give(value: T) { + return value; + } +} +class GenericNumber { + give(value: T) { + return value; + } +} +class GenericNumberOrString { + give(value: T) { + return value; + } +} + +function g(type: new () => T): T { + return new type(); +} + +const g1 = g(GenericObject); +g1.give({}); + +const g2 = g(GenericNumber); +g2.give(1); + +const g3 = g(GenericNumberOrString); +g3.give(1); +g3.give('1'); + +//// [inferringReturnTypeFromConstructSignatureGeneric.js] +var GenericObject = /** @class */ (function () { + function GenericObject() { + } + GenericObject.prototype.give = function (value) { + return value; + }; + return GenericObject; +}()); +var GenericNumber = /** @class */ (function () { + function GenericNumber() { + } + GenericNumber.prototype.give = function (value) { + return value; + }; + return GenericNumber; +}()); +var GenericNumberOrString = /** @class */ (function () { + function GenericNumberOrString() { + } + GenericNumberOrString.prototype.give = function (value) { + return value; + }; + return GenericNumberOrString; +}()); +function g(type) { + return new type(); +} +var g1 = g(GenericObject); +g1.give({}); +var g2 = g(GenericNumber); +g2.give(1); +var g3 = g(GenericNumberOrString); +g3.give(1); +g3.give('1'); diff --git a/tests/baselines/reference/inferringReturnTypeFromConstructSignatureGeneric.symbols b/tests/baselines/reference/inferringReturnTypeFromConstructSignatureGeneric.symbols new file mode 100644 index 0000000000000..3d71137668153 --- /dev/null +++ b/tests/baselines/reference/inferringReturnTypeFromConstructSignatureGeneric.symbols @@ -0,0 +1,87 @@ +=== tests/cases/compiler/inferringReturnTypeFromConstructSignatureGeneric.ts === +class GenericObject { +>GenericObject : Symbol(GenericObject, Decl(inferringReturnTypeFromConstructSignatureGeneric.ts, 0, 0)) +>T : Symbol(T, Decl(inferringReturnTypeFromConstructSignatureGeneric.ts, 0, 20)) + + give(value: T) { +>give : Symbol(GenericObject.give, Decl(inferringReturnTypeFromConstructSignatureGeneric.ts, 0, 40)) +>value : Symbol(value, Decl(inferringReturnTypeFromConstructSignatureGeneric.ts, 1, 7)) +>T : Symbol(T, Decl(inferringReturnTypeFromConstructSignatureGeneric.ts, 0, 20)) + + return value; +>value : Symbol(value, Decl(inferringReturnTypeFromConstructSignatureGeneric.ts, 1, 7)) + } +} +class GenericNumber { +>GenericNumber : Symbol(GenericNumber, Decl(inferringReturnTypeFromConstructSignatureGeneric.ts, 4, 1)) +>T : Symbol(T, Decl(inferringReturnTypeFromConstructSignatureGeneric.ts, 5, 20)) + + give(value: T) { +>give : Symbol(GenericNumber.give, Decl(inferringReturnTypeFromConstructSignatureGeneric.ts, 5, 39)) +>value : Symbol(value, Decl(inferringReturnTypeFromConstructSignatureGeneric.ts, 6, 7)) +>T : Symbol(T, Decl(inferringReturnTypeFromConstructSignatureGeneric.ts, 5, 20)) + + return value; +>value : Symbol(value, Decl(inferringReturnTypeFromConstructSignatureGeneric.ts, 6, 7)) + } +} +class GenericNumberOrString { +>GenericNumberOrString : Symbol(GenericNumberOrString, Decl(inferringReturnTypeFromConstructSignatureGeneric.ts, 9, 1)) +>T : Symbol(T, Decl(inferringReturnTypeFromConstructSignatureGeneric.ts, 10, 28)) + + give(value: T) { +>give : Symbol(GenericNumberOrString.give, Decl(inferringReturnTypeFromConstructSignatureGeneric.ts, 10, 56)) +>value : Symbol(value, Decl(inferringReturnTypeFromConstructSignatureGeneric.ts, 11, 7)) +>T : Symbol(T, Decl(inferringReturnTypeFromConstructSignatureGeneric.ts, 10, 28)) + + return value; +>value : Symbol(value, Decl(inferringReturnTypeFromConstructSignatureGeneric.ts, 11, 7)) + } +} + +function g(type: new () => T): T { +>g : Symbol(g, Decl(inferringReturnTypeFromConstructSignatureGeneric.ts, 14, 1)) +>T : Symbol(T, Decl(inferringReturnTypeFromConstructSignatureGeneric.ts, 16, 11)) +>type : Symbol(type, Decl(inferringReturnTypeFromConstructSignatureGeneric.ts, 16, 14)) +>T : Symbol(T, Decl(inferringReturnTypeFromConstructSignatureGeneric.ts, 16, 11)) +>T : Symbol(T, Decl(inferringReturnTypeFromConstructSignatureGeneric.ts, 16, 11)) + + return new type(); +>type : Symbol(type, Decl(inferringReturnTypeFromConstructSignatureGeneric.ts, 16, 14)) +} + +const g1 = g(GenericObject); +>g1 : Symbol(g1, Decl(inferringReturnTypeFromConstructSignatureGeneric.ts, 20, 5)) +>g : Symbol(g, Decl(inferringReturnTypeFromConstructSignatureGeneric.ts, 14, 1)) +>GenericObject : Symbol(GenericObject, Decl(inferringReturnTypeFromConstructSignatureGeneric.ts, 0, 0)) + +g1.give({}); +>g1.give : Symbol(GenericObject.give, Decl(inferringReturnTypeFromConstructSignatureGeneric.ts, 0, 40)) +>g1 : Symbol(g1, Decl(inferringReturnTypeFromConstructSignatureGeneric.ts, 20, 5)) +>give : Symbol(GenericObject.give, Decl(inferringReturnTypeFromConstructSignatureGeneric.ts, 0, 40)) + +const g2 = g(GenericNumber); +>g2 : Symbol(g2, Decl(inferringReturnTypeFromConstructSignatureGeneric.ts, 23, 5)) +>g : Symbol(g, Decl(inferringReturnTypeFromConstructSignatureGeneric.ts, 14, 1)) +>GenericNumber : Symbol(GenericNumber, Decl(inferringReturnTypeFromConstructSignatureGeneric.ts, 4, 1)) + +g2.give(1); +>g2.give : Symbol(GenericNumber.give, Decl(inferringReturnTypeFromConstructSignatureGeneric.ts, 5, 39)) +>g2 : Symbol(g2, Decl(inferringReturnTypeFromConstructSignatureGeneric.ts, 23, 5)) +>give : Symbol(GenericNumber.give, Decl(inferringReturnTypeFromConstructSignatureGeneric.ts, 5, 39)) + +const g3 = g(GenericNumberOrString); +>g3 : Symbol(g3, Decl(inferringReturnTypeFromConstructSignatureGeneric.ts, 26, 5)) +>g : Symbol(g, Decl(inferringReturnTypeFromConstructSignatureGeneric.ts, 14, 1)) +>GenericNumberOrString : Symbol(GenericNumberOrString, Decl(inferringReturnTypeFromConstructSignatureGeneric.ts, 9, 1)) + +g3.give(1); +>g3.give : Symbol(GenericNumberOrString.give, Decl(inferringReturnTypeFromConstructSignatureGeneric.ts, 10, 56)) +>g3 : Symbol(g3, Decl(inferringReturnTypeFromConstructSignatureGeneric.ts, 26, 5)) +>give : Symbol(GenericNumberOrString.give, Decl(inferringReturnTypeFromConstructSignatureGeneric.ts, 10, 56)) + +g3.give('1'); +>g3.give : Symbol(GenericNumberOrString.give, Decl(inferringReturnTypeFromConstructSignatureGeneric.ts, 10, 56)) +>g3 : Symbol(g3, Decl(inferringReturnTypeFromConstructSignatureGeneric.ts, 26, 5)) +>give : Symbol(GenericNumberOrString.give, Decl(inferringReturnTypeFromConstructSignatureGeneric.ts, 10, 56)) + diff --git a/tests/baselines/reference/inferringReturnTypeFromConstructSignatureGeneric.types b/tests/baselines/reference/inferringReturnTypeFromConstructSignatureGeneric.types new file mode 100644 index 0000000000000..5d641a66e09d6 --- /dev/null +++ b/tests/baselines/reference/inferringReturnTypeFromConstructSignatureGeneric.types @@ -0,0 +1,90 @@ +=== tests/cases/compiler/inferringReturnTypeFromConstructSignatureGeneric.ts === +class GenericObject { +>GenericObject : GenericObject + + give(value: T) { +>give : (value: T) => T +>value : T + + return value; +>value : T + } +} +class GenericNumber { +>GenericNumber : GenericNumber + + give(value: T) { +>give : (value: T) => T +>value : T + + return value; +>value : T + } +} +class GenericNumberOrString { +>GenericNumberOrString : GenericNumberOrString + + give(value: T) { +>give : (value: T) => T +>value : T + + return value; +>value : T + } +} + +function g(type: new () => T): T { +>g : (type: new () => T) => T +>type : new () => T + + return new type(); +>new type() : T +>type : new () => T +} + +const g1 = g(GenericObject); +>g1 : GenericObject<{}> +>g(GenericObject) : GenericObject<{}> +>g : (type: new () => T) => T +>GenericObject : typeof GenericObject + +g1.give({}); +>g1.give({}) : {} +>g1.give : (value: {}) => {} +>g1 : GenericObject<{}> +>give : (value: {}) => {} +>{} : {} + +const g2 = g(GenericNumber); +>g2 : GenericNumber +>g(GenericNumber) : GenericNumber +>g : (type: new () => T) => T +>GenericNumber : typeof GenericNumber + +g2.give(1); +>g2.give(1) : number +>g2.give : (value: number) => number +>g2 : GenericNumber +>give : (value: number) => number +>1 : 1 + +const g3 = g(GenericNumberOrString); +>g3 : GenericNumberOrString +>g(GenericNumberOrString) : GenericNumberOrString +>g : (type: new () => T) => T +>GenericNumberOrString : typeof GenericNumberOrString + +g3.give(1); +>g3.give(1) : string | number +>g3.give : (value: string | number) => string | number +>g3 : GenericNumberOrString +>give : (value: string | number) => string | number +>1 : 1 + +g3.give('1'); +>g3.give('1') : string | number +>g3.give : (value: string | number) => string | number +>g3 : GenericNumberOrString +>give : (value: string | number) => string | number +>'1' : "1" + diff --git a/tests/baselines/reference/initializerReferencingConstructorLocals.symbols b/tests/baselines/reference/initializerReferencingConstructorLocals.symbols index 2f64fba166303..565b3d19ab7f8 100644 --- a/tests/baselines/reference/initializerReferencingConstructorLocals.symbols +++ b/tests/baselines/reference/initializerReferencingConstructorLocals.symbols @@ -16,6 +16,7 @@ class C { d: typeof this.z; // error >d : Symbol(C.d, Decl(initializerReferencingConstructorLocals.ts, 5, 15)) +>this : Symbol(C, Decl(initializerReferencingConstructorLocals.ts, 0, 0)) constructor(x) { >x : Symbol(x, Decl(initializerReferencingConstructorLocals.ts, 7, 16)) @@ -40,6 +41,7 @@ class D { d: typeof this.z; // error >d : Symbol(D.d, Decl(initializerReferencingConstructorLocals.ts, 15, 15)) +>this : Symbol(D, Decl(initializerReferencingConstructorLocals.ts, 10, 1)) constructor(x: T) { >x : Symbol(x, Decl(initializerReferencingConstructorLocals.ts, 17, 16)) diff --git a/tests/baselines/reference/initializerReferencingConstructorLocals.types b/tests/baselines/reference/initializerReferencingConstructorLocals.types index 0a3d103bbf82a..84f1f712065ac 100644 --- a/tests/baselines/reference/initializerReferencingConstructorLocals.types +++ b/tests/baselines/reference/initializerReferencingConstructorLocals.types @@ -21,7 +21,7 @@ class C { d: typeof this.z; // error >d : any >this.z : any ->this : any +>this : this >z : any constructor(x) { @@ -54,7 +54,7 @@ class D { d: typeof this.z; // error >d : any >this.z : any ->this : any +>this : this >z : any constructor(x: T) { diff --git a/tests/baselines/reference/initializerReferencingConstructorParameters.symbols b/tests/baselines/reference/initializerReferencingConstructorParameters.symbols index 6e5a757226c0d..49f87e6969ba9 100644 --- a/tests/baselines/reference/initializerReferencingConstructorParameters.symbols +++ b/tests/baselines/reference/initializerReferencingConstructorParameters.symbols @@ -39,6 +39,7 @@ class E { b: typeof this.x; // ok >b : Symbol(E.b, Decl(initializerReferencingConstructorParameters.ts, 15, 15)) >this.x : Symbol(E.x, Decl(initializerReferencingConstructorParameters.ts, 17, 16)) +>this : Symbol(E, Decl(initializerReferencingConstructorParameters.ts, 12, 1)) >x : Symbol(E.x, Decl(initializerReferencingConstructorParameters.ts, 17, 16)) constructor(public x) { } diff --git a/tests/baselines/reference/initializerReferencingConstructorParameters.types b/tests/baselines/reference/initializerReferencingConstructorParameters.types index 5e0b5dde9a101..31348afc4420f 100644 --- a/tests/baselines/reference/initializerReferencingConstructorParameters.types +++ b/tests/baselines/reference/initializerReferencingConstructorParameters.types @@ -43,7 +43,7 @@ class E { b: typeof this.x; // ok >b : any >this.x : any ->this : any +>this : this >x : any constructor(public x) { } diff --git a/tests/baselines/reference/inlineJsxFactoryDeclarations.js b/tests/baselines/reference/inlineJsxFactoryDeclarations.js index c230676a556fe..8f937e1e403d0 100644 --- a/tests/baselines/reference/inlineJsxFactoryDeclarations.js +++ b/tests/baselines/reference/inlineJsxFactoryDeclarations.js @@ -67,7 +67,11 @@ exports.prerendered3 = renderer_1["default"].createElement("h", null); "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/instantiationExpressionErrors.errors.txt b/tests/baselines/reference/instantiationExpressionErrors.errors.txt new file mode 100644 index 0000000000000..d0ded2ca91756 --- /dev/null +++ b/tests/baselines/reference/instantiationExpressionErrors.errors.txt @@ -0,0 +1,75 @@ +tests/cases/conformance/types/typeParameters/typeArgumentLists/instantiationExpressionErrors.ts(13,12): error TS2365: Operator '>' cannot be applied to types 'boolean' and 'string[]'. +tests/cases/conformance/types/typeParameters/typeArgumentLists/instantiationExpressionErrors.ts(13,14): error TS2693: 'number' only refers to a type, but is being used as a value here. +tests/cases/conformance/types/typeParameters/typeArgumentLists/instantiationExpressionErrors.ts(18,12): error TS2365: Operator '>' cannot be applied to types 'boolean' and 'number'. +tests/cases/conformance/types/typeParameters/typeArgumentLists/instantiationExpressionErrors.ts(18,14): error TS2693: 'number' only refers to a type, but is being used as a value here. +tests/cases/conformance/types/typeParameters/typeArgumentLists/instantiationExpressionErrors.ts(18,29): error TS1109: Expression expected. +tests/cases/conformance/types/typeParameters/typeArgumentLists/instantiationExpressionErrors.ts(19,24): error TS2635: Type '{ (): number; g(): U; }' has no signatures for which the type argument list is applicable. +tests/cases/conformance/types/typeParameters/typeArgumentLists/instantiationExpressionErrors.ts(23,23): error TS1005: '(' expected. +tests/cases/conformance/types/typeParameters/typeArgumentLists/instantiationExpressionErrors.ts(26,24): error TS2558: Expected 0 type arguments, but got 1. +tests/cases/conformance/types/typeParameters/typeArgumentLists/instantiationExpressionErrors.ts(31,2): error TS2554: Expected 0 arguments, but got 1. +tests/cases/conformance/types/typeParameters/typeArgumentLists/instantiationExpressionErrors.ts(35,12): error TS2365: Operator '<' cannot be applied to types '{ (): T; g(): U; }' and 'boolean'. + + +==== tests/cases/conformance/types/typeParameters/typeArgumentLists/instantiationExpressionErrors.ts (10 errors) ==== + declare let f: { (): T, g(): U }; + + // Type arguments in member expressions + + const a1 = f; // { (): number; g(): U; } + const a2 = f.g; // () => number + const a3 = f.g; // () => U + const a4 = f.g; // () => number + const a5 = f['g']; // () => number + + // `[` is an expression starter and cannot immediately follow a type argument list + + const a6 = f['g']; // Error + ~~~~~~~~~~~~~~ +!!! error TS2365: Operator '>' cannot be applied to types 'boolean' and 'string[]'. + ~~~~~~ +!!! error TS2693: 'number' only refers to a type, but is being used as a value here. + const a7 = (f)['g']; + + // An `<` cannot immediately follow a type argument list + + const a8 = f; // Relational operator error + ~~~~~~~~~~~~~~~~~ +!!! error TS2365: Operator '>' cannot be applied to types 'boolean' and 'number'. + ~~~~~~ +!!! error TS2693: 'number' only refers to a type, but is being used as a value here. + ~ +!!! error TS1109: Expression expected. + const a9 = (f); // Error, no applicable signatures + ~~~~~~ +!!! error TS2635: Type '{ (): number; g(): U; }' has no signatures for which the type argument list is applicable. + + // Type arguments with `?.` token + + const b1 = f?.; // Error, `(` expected + ~ +!!! error TS1005: '(' expected. + const b2 = f?.(); + const b3 = f?.(); + const b4 = f?.(); // Error, expected no type arguments + ~~~~~~ +!!! error TS2558: Expected 0 type arguments, but got 1. + + // Parsed as function call, even though this differs from JavaScript + + const x1 = f + (true); + ~~~~ +!!! error TS2554: Expected 0 arguments, but got 1. + + // Parsed as relational expression + + const x2 = f + ~~~~~~ +!!! error TS2365: Operator '<' cannot be applied to types '{ (): T; g(): U; }' and 'boolean'. + true; + + // Parsed as instantiation expression + + const x3 = f; + true; + \ No newline at end of file diff --git a/tests/baselines/reference/instantiationExpressionErrors.js b/tests/baselines/reference/instantiationExpressionErrors.js new file mode 100644 index 0000000000000..c0c4d9b5b6818 --- /dev/null +++ b/tests/baselines/reference/instantiationExpressionErrors.js @@ -0,0 +1,103 @@ +//// [instantiationExpressionErrors.ts] +declare let f: { (): T, g(): U }; + +// Type arguments in member expressions + +const a1 = f; // { (): number; g(): U; } +const a2 = f.g; // () => number +const a3 = f.g; // () => U +const a4 = f.g; // () => number +const a5 = f['g']; // () => number + +// `[` is an expression starter and cannot immediately follow a type argument list + +const a6 = f['g']; // Error +const a7 = (f)['g']; + +// An `<` cannot immediately follow a type argument list + +const a8 = f; // Relational operator error +const a9 = (f); // Error, no applicable signatures + +// Type arguments with `?.` token + +const b1 = f?.; // Error, `(` expected +const b2 = f?.(); +const b3 = f?.(); +const b4 = f?.(); // Error, expected no type arguments + +// Parsed as function call, even though this differs from JavaScript + +const x1 = f +(true); + +// Parsed as relational expression + +const x2 = f +true; + +// Parsed as instantiation expression + +const x3 = f; +true; + + +//// [instantiationExpressionErrors.js] +"use strict"; +var _a, _b; +// Type arguments in member expressions +var a1 = (f); // { (): number; g(): U; } +var a2 = (f.g); // () => number +var a3 = f.g; // () => U +var a4 = (f.g); // () => number +var a5 = (f['g']); // () => number +// `[` is an expression starter and cannot immediately follow a type argument list +var a6 = f < number > ['g']; // Error +var a7 = (f)['g']; +// An `<` cannot immediately follow a type argument list +var a8 = f < number > ; // Relational operator error +var a9 = ((f)); // Error, no applicable signatures +// Type arguments with `?.` token +var b1 = f === null || f === void 0 ? void 0 : f(); // Error, `(` expected +var b2 = f === null || f === void 0 ? void 0 : f(); +var b3 = (_a = (f)) === null || _a === void 0 ? void 0 : _a(); +var b4 = (_b = (f)) === null || _b === void 0 ? void 0 : _b(); // Error, expected no type arguments +// Parsed as function call, even though this differs from JavaScript +var x1 = f(true); +// Parsed as relational expression +var x2 = f < true > + true; +// Parsed as instantiation expression +var x3 = (f); +true; + + +//// [instantiationExpressionErrors.d.ts] +declare let f: { + (): T; + g(): U; +}; +declare const a1: { + (): number; + g(): U; +}; +declare const a2: () => number; +declare const a3: () => U; +declare const a4: () => number; +declare const a5: () => number; +declare const a6: boolean; +declare const a7: () => U; +declare const a8: boolean; +declare const a9: { + g(): U; +}; +declare const b1: number; +declare const b2: number; +declare const b3: number; +declare const b4: number; +declare const x1: true; +declare const x2: boolean; +declare const x3: { + (): true; + g(): U; +}; diff --git a/tests/baselines/reference/instantiationExpressionErrors.symbols b/tests/baselines/reference/instantiationExpressionErrors.symbols new file mode 100644 index 0000000000000..a9e99be8987a3 --- /dev/null +++ b/tests/baselines/reference/instantiationExpressionErrors.symbols @@ -0,0 +1,101 @@ +=== tests/cases/conformance/types/typeParameters/typeArgumentLists/instantiationExpressionErrors.ts === +declare let f: { (): T, g(): U }; +>f : Symbol(f, Decl(instantiationExpressionErrors.ts, 0, 11)) +>T : Symbol(T, Decl(instantiationExpressionErrors.ts, 0, 18)) +>T : Symbol(T, Decl(instantiationExpressionErrors.ts, 0, 18)) +>g : Symbol(g, Decl(instantiationExpressionErrors.ts, 0, 26)) +>U : Symbol(U, Decl(instantiationExpressionErrors.ts, 0, 29)) +>U : Symbol(U, Decl(instantiationExpressionErrors.ts, 0, 29)) + +// Type arguments in member expressions + +const a1 = f; // { (): number; g(): U; } +>a1 : Symbol(a1, Decl(instantiationExpressionErrors.ts, 4, 5)) +>f : Symbol(f, Decl(instantiationExpressionErrors.ts, 0, 11)) + +const a2 = f.g; // () => number +>a2 : Symbol(a2, Decl(instantiationExpressionErrors.ts, 5, 5)) +>f.g : Symbol(g, Decl(instantiationExpressionErrors.ts, 0, 26)) +>f : Symbol(f, Decl(instantiationExpressionErrors.ts, 0, 11)) +>g : Symbol(g, Decl(instantiationExpressionErrors.ts, 0, 26)) + +const a3 = f.g; // () => U +>a3 : Symbol(a3, Decl(instantiationExpressionErrors.ts, 6, 5)) +>f.g : Symbol(g, Decl(instantiationExpressionErrors.ts, 0, 26)) +>f : Symbol(f, Decl(instantiationExpressionErrors.ts, 0, 11)) +>g : Symbol(g, Decl(instantiationExpressionErrors.ts, 0, 26)) + +const a4 = f.g; // () => number +>a4 : Symbol(a4, Decl(instantiationExpressionErrors.ts, 7, 5)) +>f.g : Symbol(g, Decl(instantiationExpressionErrors.ts, 0, 26)) +>f : Symbol(f, Decl(instantiationExpressionErrors.ts, 0, 11)) +>g : Symbol(g, Decl(instantiationExpressionErrors.ts, 0, 26)) + +const a5 = f['g']; // () => number +>a5 : Symbol(a5, Decl(instantiationExpressionErrors.ts, 8, 5)) +>f : Symbol(f, Decl(instantiationExpressionErrors.ts, 0, 11)) +>'g' : Symbol(g, Decl(instantiationExpressionErrors.ts, 0, 26)) + +// `[` is an expression starter and cannot immediately follow a type argument list + +const a6 = f['g']; // Error +>a6 : Symbol(a6, Decl(instantiationExpressionErrors.ts, 12, 5)) +>f : Symbol(f, Decl(instantiationExpressionErrors.ts, 0, 11)) + +const a7 = (f)['g']; +>a7 : Symbol(a7, Decl(instantiationExpressionErrors.ts, 13, 5)) +>f : Symbol(f, Decl(instantiationExpressionErrors.ts, 0, 11)) +>'g' : Symbol(g, Decl(instantiationExpressionErrors.ts, 0, 26)) + +// An `<` cannot immediately follow a type argument list + +const a8 = f; // Relational operator error +>a8 : Symbol(a8, Decl(instantiationExpressionErrors.ts, 17, 5)) +>f : Symbol(f, Decl(instantiationExpressionErrors.ts, 0, 11)) + +const a9 = (f); // Error, no applicable signatures +>a9 : Symbol(a9, Decl(instantiationExpressionErrors.ts, 18, 5)) +>f : Symbol(f, Decl(instantiationExpressionErrors.ts, 0, 11)) + +// Type arguments with `?.` token + +const b1 = f?.; // Error, `(` expected +>b1 : Symbol(b1, Decl(instantiationExpressionErrors.ts, 22, 5)) +>f : Symbol(f, Decl(instantiationExpressionErrors.ts, 0, 11)) + +const b2 = f?.(); +>b2 : Symbol(b2, Decl(instantiationExpressionErrors.ts, 23, 5)) +>f : Symbol(f, Decl(instantiationExpressionErrors.ts, 0, 11)) + +const b3 = f?.(); +>b3 : Symbol(b3, Decl(instantiationExpressionErrors.ts, 24, 5)) +>f : Symbol(f, Decl(instantiationExpressionErrors.ts, 0, 11)) + +const b4 = f?.(); // Error, expected no type arguments +>b4 : Symbol(b4, Decl(instantiationExpressionErrors.ts, 25, 5)) +>f : Symbol(f, Decl(instantiationExpressionErrors.ts, 0, 11)) + +// Parsed as function call, even though this differs from JavaScript + +const x1 = f +>x1 : Symbol(x1, Decl(instantiationExpressionErrors.ts, 29, 5)) +>f : Symbol(f, Decl(instantiationExpressionErrors.ts, 0, 11)) + +(true); + +// Parsed as relational expression + +const x2 = f +>x2 : Symbol(x2, Decl(instantiationExpressionErrors.ts, 34, 5)) +>f : Symbol(f, Decl(instantiationExpressionErrors.ts, 0, 11)) + +true; + +// Parsed as instantiation expression + +const x3 = f; +>x3 : Symbol(x3, Decl(instantiationExpressionErrors.ts, 39, 5)) +>f : Symbol(f, Decl(instantiationExpressionErrors.ts, 0, 11)) + +true; + diff --git a/tests/baselines/reference/instantiationExpressionErrors.types b/tests/baselines/reference/instantiationExpressionErrors.types new file mode 100644 index 0000000000000..3886d802526a1 --- /dev/null +++ b/tests/baselines/reference/instantiationExpressionErrors.types @@ -0,0 +1,124 @@ +=== tests/cases/conformance/types/typeParameters/typeArgumentLists/instantiationExpressionErrors.ts === +declare let f: { (): T, g(): U }; +>f : { (): T; g(): U; } +>g : () => U + +// Type arguments in member expressions + +const a1 = f; // { (): number; g(): U; } +>a1 : { (): number; g(): U; } +>f : { (): T; g(): U; } + +const a2 = f.g; // () => number +>a2 : () => number +>f.g : () => U +>f : { (): T; g(): U; } +>g : () => U + +const a3 = f.g; // () => U +>a3 : () => U +>f.g : () => U +>f : { (): T; g(): U; } +>g : () => U + +const a4 = f.g; // () => number +>a4 : () => number +>f.g : () => U +>f : { (): T; g(): U; } +>g : () => U + +const a5 = f['g']; // () => number +>a5 : () => number +>f['g'] : () => U +>f : { (): T; g(): U; } +>'g' : "g" + +// `[` is an expression starter and cannot immediately follow a type argument list + +const a6 = f['g']; // Error +>a6 : boolean +>f['g'] : boolean +>ff : { (): T; g(): U; } +>number : any +>['g'] : string[] +>'g' : "g" + +const a7 = (f)['g']; +>a7 : () => U +>(f)['g'] : () => U +>(f) : { (): number; g(): U; } +>f : { (): T; g(): U; } +>'g' : "g" + +// An `<` cannot immediately follow a type argument list + +const a8 = f; // Relational operator error +>a8 : boolean +>f : boolean +>ff : { (): T; g(): U; } +>number : any +> : number +> : any + +const a9 = (f); // Error, no applicable signatures +>a9 : { g(): U; } +>(f) : { (): number; g(): U; } +>f : { (): T; g(): U; } + +// Type arguments with `?.` token + +const b1 = f?.; // Error, `(` expected +>b1 : number +>f?. : number +>f : { (): T; g(): U; } + +const b2 = f?.(); +>b2 : number +>f?.() : number +>f : { (): T; g(): U; } + +const b3 = f?.(); +>b3 : number +>f?.() : number +>f : { (): T; g(): U; } + +const b4 = f?.(); // Error, expected no type arguments +>b4 : number +>f?.() : number +>f : { (): T; g(): U; } + +// Parsed as function call, even though this differs from JavaScript + +const x1 = f +>x1 : true +>f(true) : true +>f : { (): T; g(): U; } +>true : true + +(true); +>true : true + +// Parsed as relational expression + +const x2 = f +>x2 : boolean +>ftrue : boolean +>ff : { (): T; g(): U; } +>true : true + +true; +>true : true + +// Parsed as instantiation expression + +const x3 = f; +>x3 : { (): true; g(): U; } +>f : { (): T; g(): U; } +>true : true + +true; +>true : true + diff --git a/tests/baselines/reference/instantiationExpressions.errors.txt b/tests/baselines/reference/instantiationExpressions.errors.txt new file mode 100644 index 0000000000000..d4af975c75fc2 --- /dev/null +++ b/tests/baselines/reference/instantiationExpressions.errors.txt @@ -0,0 +1,228 @@ +tests/cases/conformance/types/typeParameters/typeArgumentLists/instantiationExpressions.ts(6,16): error TS1099: Type argument list cannot be empty. +tests/cases/conformance/types/typeParameters/typeArgumentLists/instantiationExpressions.ts(9,17): error TS2635: Type '{ (x: T): T; (x: T, n: number): T; (t: [T, U]): [T, U]; }' has no signatures for which the type argument list is applicable. +tests/cases/conformance/types/typeParameters/typeArgumentLists/instantiationExpressions.ts(12,21): error TS1099: Type argument list cannot be empty. +tests/cases/conformance/types/typeParameters/typeArgumentLists/instantiationExpressions.ts(15,22): error TS2635: Type '{ (x: T): T; (x: T, n: number): T; (t: [T, U]): [T, U]; }' has no signatures for which the type argument list is applicable. +tests/cases/conformance/types/typeParameters/typeArgumentLists/instantiationExpressions.ts(18,21): error TS1099: Type argument list cannot be empty. +tests/cases/conformance/types/typeParameters/typeArgumentLists/instantiationExpressions.ts(20,22): error TS2635: Type 'ArrayConstructor' has no signatures for which the type argument list is applicable. +tests/cases/conformance/types/typeParameters/typeArgumentLists/instantiationExpressions.ts(23,24): error TS1099: Type argument list cannot be empty. +tests/cases/conformance/types/typeParameters/typeArgumentLists/instantiationExpressions.ts(25,25): error TS2635: Type 'ArrayConstructor' has no signatures for which the type argument list is applicable. +tests/cases/conformance/types/typeParameters/typeArgumentLists/instantiationExpressions.ts(50,16): error TS2635: Type '{ x: string; y: string; }' has no signatures for which the type argument list is applicable. +tests/cases/conformance/types/typeParameters/typeArgumentLists/instantiationExpressions.ts(82,16): error TS2635: Type '{ x: string; } & { y: string; }' has no signatures for which the type argument list is applicable. +tests/cases/conformance/types/typeParameters/typeArgumentLists/instantiationExpressions.ts(106,16): error TS2635: Type '(a: string, b: number) => string[]' has no signatures for which the type argument list is applicable. +tests/cases/conformance/types/typeParameters/typeArgumentLists/instantiationExpressions.ts(114,16): error TS2635: Type '{ x: string; } | { y: string; }' has no signatures for which the type argument list is applicable. +tests/cases/conformance/types/typeParameters/typeArgumentLists/instantiationExpressions.ts(126,16): error TS2635: Type '(a: string, b: number) => string[]' has no signatures for which the type argument list is applicable. +tests/cases/conformance/types/typeParameters/typeArgumentLists/instantiationExpressions.ts(130,16): error TS2635: Type 'new (a: string, b: number) => string[]' has no signatures for which the type argument list is applicable. +tests/cases/conformance/types/typeParameters/typeArgumentLists/instantiationExpressions.ts(163,40): error TS2344: Type 'U' does not satisfy the constraint 'number'. + Type 'string' is not assignable to type 'number'. +tests/cases/conformance/types/typeParameters/typeArgumentLists/instantiationExpressions.ts(164,40): error TS2344: Type 'U' does not satisfy the constraint 'string'. + Type 'number' is not assignable to type 'string'. + + +==== tests/cases/conformance/types/typeParameters/typeArgumentLists/instantiationExpressions.ts (16 errors) ==== + declare function fx(x: T): T; + declare function fx(x: T, n: number): T; + declare function fx(t: [T, U]): [T, U]; + + function f1() { + let f0 = fx<>; // Error + ~~ +!!! error TS1099: Type argument list cannot be empty. + let f1 = fx; // { (x: string): string; (x: string, n: number): string; } + let f2 = fx; // (t: [string, number]) => [string, number] + let f3 = fx; // Error + ~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2635: Type '{ (x: T): T; (x: T, n: number): T; (t: [T, U]): [T, U]; }' has no signatures for which the type argument list is applicable. + } + + type T10 = typeof fx<>; // Error + ~~ +!!! error TS1099: Type argument list cannot be empty. + type T11 = typeof fx; // { (x: string): string; (x: string, n: number): string; } + type T12 = typeof fx; // (t: [string, number]) => [string, number] + type T13 = typeof fx; // Error + ~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS2635: Type '{ (x: T): T; (x: T, n: number): T; (t: [T, U]): [T, U]; }' has no signatures for which the type argument list is applicable. + + function f2() { + const A0 = Array<>; // Error + ~~ +!!! error TS1099: Type argument list cannot be empty. + const A1 = Array; // new (...) => string[] + const A2 = Array; // Error + ~~~~~~~~~~~~~~ +!!! error TS2635: Type 'ArrayConstructor' has no signatures for which the type argument list is applicable. + } + + type T20 = typeof Array<>; // Error + ~~ +!!! error TS1099: Type argument list cannot be empty. + type T21 = typeof Array; // new (...) => string[] + type T22 = typeof Array; // Error + ~~~~~~~~~~~~~~ +!!! error TS2635: Type 'ArrayConstructor' has no signatures for which the type argument list is applicable. + + declare class C { + constructor(x: T); + static f(x: U): U[]; + } + + function f3() { + let c1 = C; // { new (x: string): C; f(x: U): T[]; prototype: C; } + let f1 = C.f; // (x: string) => string[] + } + + function f10(f: { (a: T): T, (a: U, b: number): U[] }) { + let fs = f; // { (a: string): string; (a: string, b: number): string[]; } + } + + function f11(f: { (a: T): T, (a: string, b: number): string[] }) { + let fs = f; // (a: string) => string + } + + function f12(f: { (a: T): T, x: string }) { + let fs = f; // { (a: string): string; x: string; } + } + + function f13(f: { x: string, y: string }) { + let fs = f; // Error, no applicable signatures + ~~~~~~ +!!! error TS2635: Type '{ x: string; y: string; }' has no signatures for which the type argument list is applicable. + } + + function f14(f: { new (a: T): T, new (a: U, b: number): U[] }) { + let fs = f; // { new (a: string): string; new (a: string, b: number): string[]; } + } + + function f15(f: { new (a: T): T, (a: U, b: number): U[] }) { + let fs = f; // { new (a: string): string; (a: string, b: number): string[]; } + } + + function f16(f: { new (a: T): T, (a: string, b: number): string[] }) { + let fs = f; // new (a: string) => string + } + + function f17(f: { (a: T): T, new (a: string, b: number): string[] }) { + let fs = f; // (a: string) => string + } + + function f20(f: ((a: T) => T) & ((a: U, b: number) => U[])) { + let fs = f; // ((a: string) => string) & ((a: string, b: number) => string[]]) + } + + function f21(f: ((a: T) => T) & ((a: string, b: number) => string[])) { + let fs = f; // (a: string) => string + } + + function f22(f: ((a: T) => T) & { x: string }) { + let fs = f; // ((a: string) => string) & { x: string } + } + + function f23(f: { x: string } & { y: string }) { + let fs = f; // Error, no applicable signatures + ~~~~~~ +!!! error TS2635: Type '{ x: string; } & { y: string; }' has no signatures for which the type argument list is applicable. + } + + function f24(f: (new (a: T) => T) & (new (a: U, b: number) => U[])) { + let fs = f; // (new (a: string) => string) & ((a: string, b: number) => string[]]) + } + + function f25(f: (new (a: T) => T) & ((a: U, b: number) => U[])) { + let fs = f; // (new (a: string) => string) & ((a: string, b: number) => string[]]) + } + + function f26(f: (new (a: T) => T) & ((a: string, b: number) => string[])) { + let fs = f; // new (a: string) => string + } + + function f27(f: ((a: T) => T) & (new (a: string, b: number) => string[])) { + let fs = f; // (a: string) => string + } + + function f30(f: ((a: T) => T) | ((a: U, b: number) => U[])) { + let fs = f; // ((a: string) => string) | ((a: string, b: number) => string[]]) + } + + function f31(f: ((a: T) => T) | ((a: string, b: number) => string[])) { + let fs = f; // Error, '(a: string, b: number) => string[]' has no applicable signatures + ~~~~~~ +!!! error TS2635: Type '(a: string, b: number) => string[]' has no signatures for which the type argument list is applicable. + } + + function f32(f: ((a: T) => T) | { x: string }) { + let fs = f; // ((a: string) => string) | { x: string } + } + + function f33(f: { x: string } | { y: string }) { + let fs = f; // Error, no applicable signatures + ~~~~~~ +!!! error TS2635: Type '{ x: string; } | { y: string; }' has no signatures for which the type argument list is applicable. + } + + function f34(f: (new (a: T) => T) | (new (a: U, b: number) => U[])) { + let fs = f; // (new (a: string) => string) | ((a: string, b: number) => string[]]) + } + + function f35(f: (new (a: T) => T) | ((a: U, b: number) => U[])) { + let fs = f; // (new (a: string) => string) | ((a: string, b: number) => string[]]) + } + + function f36(f: (new (a: T) => T) | ((a: string, b: number) => string[])) { + let fs = f; // Error, '(a: string, b: number) => string[]' has no applicable signatures + ~~~~~~ +!!! error TS2635: Type '(a: string, b: number) => string[]' has no signatures for which the type argument list is applicable. + } + + function f37(f: ((a: T) => T) | (new (a: string, b: number) => string[])) { + let fs = f; // Error, 'new (a: string, b: number) => string[]' has no applicable signatures + ~~~~~~ +!!! error TS2635: Type 'new (a: string, b: number) => string[]' has no signatures for which the type argument list is applicable. + } + + function f38(x: A) => A) | ((x: B) => B[]), U>(f: T | U | ((x: C) => C[][])) { + let fs = f; // U | ((x: string) => string) | ((x: string) => string[]) | ((x: string) => string[][]) + } + + function makeBox(value: T) { + return { value }; + } + + type BoxFunc = typeof makeBox; // (value: T) => { value: T } + type StringBoxFunc = BoxFunc; // (value: string) => { value: string } + + type Box = ReturnType>; // { value: T } + type StringBox = Box; // { value: string } + + type A = InstanceType>; // U[] + + declare const g1: { + (a: T): { a: T }; + new (b: U): { b: U }; + } + + type T30 = typeof g1; // { (a: V) => { a: V }; new (b: V) => { b: V }; } + type T31 = ReturnType>; // { a: A } + type T32 = InstanceType>; // { b: B } + + declare const g2: { + (a: T): T; + new (b: T): T; + } + + type T40 = typeof g2; // Error + ~ +!!! error TS2344: Type 'U' does not satisfy the constraint 'number'. +!!! error TS2344: Type 'string' is not assignable to type 'number'. + type T41 = typeof g2; // Error + ~ +!!! error TS2344: Type 'U' does not satisfy the constraint 'string'. +!!! error TS2344: Type 'number' is not assignable to type 'string'. + + declare const g3: { + (a: T): T; + new (b: T): T; + } + + type T50 = typeof g3; // (a: U) => U + type T51 = typeof g3; // (b: U) => U + \ No newline at end of file diff --git a/tests/baselines/reference/instantiationExpressions.js b/tests/baselines/reference/instantiationExpressions.js new file mode 100644 index 0000000000000..4d1ec7817d82a --- /dev/null +++ b/tests/baselines/reference/instantiationExpressions.js @@ -0,0 +1,382 @@ +//// [instantiationExpressions.ts] +declare function fx(x: T): T; +declare function fx(x: T, n: number): T; +declare function fx(t: [T, U]): [T, U]; + +function f1() { + let f0 = fx<>; // Error + let f1 = fx; // { (x: string): string; (x: string, n: number): string; } + let f2 = fx; // (t: [string, number]) => [string, number] + let f3 = fx; // Error +} + +type T10 = typeof fx<>; // Error +type T11 = typeof fx; // { (x: string): string; (x: string, n: number): string; } +type T12 = typeof fx; // (t: [string, number]) => [string, number] +type T13 = typeof fx; // Error + +function f2() { + const A0 = Array<>; // Error + const A1 = Array; // new (...) => string[] + const A2 = Array; // Error +} + +type T20 = typeof Array<>; // Error +type T21 = typeof Array; // new (...) => string[] +type T22 = typeof Array; // Error + +declare class C { + constructor(x: T); + static f(x: U): U[]; +} + +function f3() { + let c1 = C; // { new (x: string): C; f(x: U): T[]; prototype: C; } + let f1 = C.f; // (x: string) => string[] +} + +function f10(f: { (a: T): T, (a: U, b: number): U[] }) { + let fs = f; // { (a: string): string; (a: string, b: number): string[]; } +} + +function f11(f: { (a: T): T, (a: string, b: number): string[] }) { + let fs = f; // (a: string) => string +} + +function f12(f: { (a: T): T, x: string }) { + let fs = f; // { (a: string): string; x: string; } +} + +function f13(f: { x: string, y: string }) { + let fs = f; // Error, no applicable signatures +} + +function f14(f: { new (a: T): T, new (a: U, b: number): U[] }) { + let fs = f; // { new (a: string): string; new (a: string, b: number): string[]; } +} + +function f15(f: { new (a: T): T, (a: U, b: number): U[] }) { + let fs = f; // { new (a: string): string; (a: string, b: number): string[]; } +} + +function f16(f: { new (a: T): T, (a: string, b: number): string[] }) { + let fs = f; // new (a: string) => string +} + +function f17(f: { (a: T): T, new (a: string, b: number): string[] }) { + let fs = f; // (a: string) => string +} + +function f20(f: ((a: T) => T) & ((a: U, b: number) => U[])) { + let fs = f; // ((a: string) => string) & ((a: string, b: number) => string[]]) +} + +function f21(f: ((a: T) => T) & ((a: string, b: number) => string[])) { + let fs = f; // (a: string) => string +} + +function f22(f: ((a: T) => T) & { x: string }) { + let fs = f; // ((a: string) => string) & { x: string } +} + +function f23(f: { x: string } & { y: string }) { + let fs = f; // Error, no applicable signatures +} + +function f24(f: (new (a: T) => T) & (new (a: U, b: number) => U[])) { + let fs = f; // (new (a: string) => string) & ((a: string, b: number) => string[]]) +} + +function f25(f: (new (a: T) => T) & ((a: U, b: number) => U[])) { + let fs = f; // (new (a: string) => string) & ((a: string, b: number) => string[]]) +} + +function f26(f: (new (a: T) => T) & ((a: string, b: number) => string[])) { + let fs = f; // new (a: string) => string +} + +function f27(f: ((a: T) => T) & (new (a: string, b: number) => string[])) { + let fs = f; // (a: string) => string +} + +function f30(f: ((a: T) => T) | ((a: U, b: number) => U[])) { + let fs = f; // ((a: string) => string) | ((a: string, b: number) => string[]]) +} + +function f31(f: ((a: T) => T) | ((a: string, b: number) => string[])) { + let fs = f; // Error, '(a: string, b: number) => string[]' has no applicable signatures +} + +function f32(f: ((a: T) => T) | { x: string }) { + let fs = f; // ((a: string) => string) | { x: string } +} + +function f33(f: { x: string } | { y: string }) { + let fs = f; // Error, no applicable signatures +} + +function f34(f: (new (a: T) => T) | (new (a: U, b: number) => U[])) { + let fs = f; // (new (a: string) => string) | ((a: string, b: number) => string[]]) +} + +function f35(f: (new (a: T) => T) | ((a: U, b: number) => U[])) { + let fs = f; // (new (a: string) => string) | ((a: string, b: number) => string[]]) +} + +function f36(f: (new (a: T) => T) | ((a: string, b: number) => string[])) { + let fs = f; // Error, '(a: string, b: number) => string[]' has no applicable signatures +} + +function f37(f: ((a: T) => T) | (new (a: string, b: number) => string[])) { + let fs = f; // Error, 'new (a: string, b: number) => string[]' has no applicable signatures +} + +function f38(x: A) => A) | ((x: B) => B[]), U>(f: T | U | ((x: C) => C[][])) { + let fs = f; // U | ((x: string) => string) | ((x: string) => string[]) | ((x: string) => string[][]) +} + +function makeBox(value: T) { + return { value }; +} + +type BoxFunc = typeof makeBox; // (value: T) => { value: T } +type StringBoxFunc = BoxFunc; // (value: string) => { value: string } + +type Box = ReturnType>; // { value: T } +type StringBox = Box; // { value: string } + +type A = InstanceType>; // U[] + +declare const g1: { + (a: T): { a: T }; + new (b: U): { b: U }; +} + +type T30 = typeof g1; // { (a: V) => { a: V }; new (b: V) => { b: V }; } +type T31 = ReturnType>; // { a: A } +type T32 = InstanceType>; // { b: B } + +declare const g2: { + (a: T): T; + new (b: T): T; +} + +type T40 = typeof g2; // Error +type T41 = typeof g2; // Error + +declare const g3: { + (a: T): T; + new (b: T): T; +} + +type T50 = typeof g3; // (a: U) => U +type T51 = typeof g3; // (b: U) => U + + +//// [instantiationExpressions.js] +"use strict"; +function f1() { + var f0 = fx; // Error + var f1 = (fx); // { (x: string): string; (x: string, n: number): string; } + var f2 = (fx); // (t: [string, number]) => [string, number] + var f3 = (fx); // Error +} +function f2() { + var A0 = Array; // Error + var A1 = (Array); // new (...) => string[] + var A2 = (Array); // Error +} +function f3() { + var c1 = (C); // { new (x: string): C; f(x: U): T[]; prototype: C; } + var f1 = (C.f); // (x: string) => string[] +} +function f10(f) { + var fs = (f); // { (a: string): string; (a: string, b: number): string[]; } +} +function f11(f) { + var fs = (f); // (a: string) => string +} +function f12(f) { + var fs = (f); // { (a: string): string; x: string; } +} +function f13(f) { + var fs = (f); // Error, no applicable signatures +} +function f14(f) { + var fs = (f); // { new (a: string): string; new (a: string, b: number): string[]; } +} +function f15(f) { + var fs = (f); // { new (a: string): string; (a: string, b: number): string[]; } +} +function f16(f) { + var fs = (f); // new (a: string) => string +} +function f17(f) { + var fs = (f); // (a: string) => string +} +function f20(f) { + var fs = (f); // ((a: string) => string) & ((a: string, b: number) => string[]]) +} +function f21(f) { + var fs = (f); // (a: string) => string +} +function f22(f) { + var fs = (f); // ((a: string) => string) & { x: string } +} +function f23(f) { + var fs = (f); // Error, no applicable signatures +} +function f24(f) { + var fs = (f); // (new (a: string) => string) & ((a: string, b: number) => string[]]) +} +function f25(f) { + var fs = (f); // (new (a: string) => string) & ((a: string, b: number) => string[]]) +} +function f26(f) { + var fs = (f); // new (a: string) => string +} +function f27(f) { + var fs = (f); // (a: string) => string +} +function f30(f) { + var fs = (f); // ((a: string) => string) | ((a: string, b: number) => string[]]) +} +function f31(f) { + var fs = (f); // Error, '(a: string, b: number) => string[]' has no applicable signatures +} +function f32(f) { + var fs = (f); // ((a: string) => string) | { x: string } +} +function f33(f) { + var fs = (f); // Error, no applicable signatures +} +function f34(f) { + var fs = (f); // (new (a: string) => string) | ((a: string, b: number) => string[]]) +} +function f35(f) { + var fs = (f); // (new (a: string) => string) | ((a: string, b: number) => string[]]) +} +function f36(f) { + var fs = (f); // Error, '(a: string, b: number) => string[]' has no applicable signatures +} +function f37(f) { + var fs = (f); // Error, 'new (a: string, b: number) => string[]' has no applicable signatures +} +function f38(f) { + var fs = (f); // U | ((x: string) => string) | ((x: string) => string[]) | ((x: string) => string[][]) +} +function makeBox(value) { + return { value: value }; +} + + +//// [instantiationExpressions.d.ts] +declare function fx(x: T): T; +declare function fx(x: T, n: number): T; +declare function fx(t: [T, U]): [T, U]; +declare function f1(): void; +declare type T10 = typeof fx; +declare type T11 = typeof fx; +declare type T12 = typeof fx; +declare type T13 = typeof fx; +declare function f2(): void; +declare type T20 = typeof Array; +declare type T21 = typeof Array; +declare type T22 = typeof Array; +declare class C { + constructor(x: T); + static f(x: U): U[]; +} +declare function f3(): void; +declare function f10(f: { + (a: T): T; + (a: U, b: number): U[]; +}): void; +declare function f11(f: { + (a: T): T; + (a: string, b: number): string[]; +}): void; +declare function f12(f: { + (a: T): T; + x: string; +}): void; +declare function f13(f: { + x: string; + y: string; +}): void; +declare function f14(f: { + new (a: T): T; + new (a: U, b: number): U[]; +}): void; +declare function f15(f: { + new (a: T): T; + (a: U, b: number): U[]; +}): void; +declare function f16(f: { + new (a: T): T; + (a: string, b: number): string[]; +}): void; +declare function f17(f: { + (a: T): T; + new (a: string, b: number): string[]; +}): void; +declare function f20(f: ((a: T) => T) & ((a: U, b: number) => U[])): void; +declare function f21(f: ((a: T) => T) & ((a: string, b: number) => string[])): void; +declare function f22(f: ((a: T) => T) & { + x: string; +}): void; +declare function f23(f: { + x: string; +} & { + y: string; +}): void; +declare function f24(f: (new (a: T) => T) & (new (a: U, b: number) => U[])): void; +declare function f25(f: (new (a: T) => T) & ((a: U, b: number) => U[])): void; +declare function f26(f: (new (a: T) => T) & ((a: string, b: number) => string[])): void; +declare function f27(f: ((a: T) => T) & (new (a: string, b: number) => string[])): void; +declare function f30(f: ((a: T) => T) | ((a: U, b: number) => U[])): void; +declare function f31(f: ((a: T) => T) | ((a: string, b: number) => string[])): void; +declare function f32(f: ((a: T) => T) | { + x: string; +}): void; +declare function f33(f: { + x: string; +} | { + y: string; +}): void; +declare function f34(f: (new (a: T) => T) | (new (a: U, b: number) => U[])): void; +declare function f35(f: (new (a: T) => T) | ((a: U, b: number) => U[])): void; +declare function f36(f: (new (a: T) => T) | ((a: string, b: number) => string[])): void; +declare function f37(f: ((a: T) => T) | (new (a: string, b: number) => string[])): void; +declare function f38(x: A) => A) | ((x: B) => B[]), U>(f: T | U | ((x: C) => C[][])): void; +declare function makeBox(value: T): { + value: T; +}; +declare type BoxFunc = typeof makeBox; +declare type StringBoxFunc = BoxFunc; +declare type Box = ReturnType>; +declare type StringBox = Box; +declare type A = InstanceType>; +declare const g1: { + (a: T): { + a: T; + }; + new (b: U): { + b: U; + }; +}; +declare type T30 = typeof g1; +declare type T31 = ReturnType>; +declare type T32 = InstanceType>; +declare const g2: { + (a: T): T; + new (b: T): T; +}; +declare type T40 = typeof g2; +declare type T41 = typeof g2; +declare const g3: { + (a: T): T; + new (b: T): T; +}; +declare type T50 = typeof g3; +declare type T51 = typeof g3; diff --git a/tests/baselines/reference/instantiationExpressions.symbols b/tests/baselines/reference/instantiationExpressions.symbols new file mode 100644 index 0000000000000..3fd52bf485bc2 --- /dev/null +++ b/tests/baselines/reference/instantiationExpressions.symbols @@ -0,0 +1,650 @@ +=== tests/cases/conformance/types/typeParameters/typeArgumentLists/instantiationExpressions.ts === +declare function fx(x: T): T; +>fx : Symbol(fx, Decl(instantiationExpressions.ts, 0, 0), Decl(instantiationExpressions.ts, 0, 32), Decl(instantiationExpressions.ts, 1, 43)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 0, 20)) +>x : Symbol(x, Decl(instantiationExpressions.ts, 0, 23)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 0, 20)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 0, 20)) + +declare function fx(x: T, n: number): T; +>fx : Symbol(fx, Decl(instantiationExpressions.ts, 0, 0), Decl(instantiationExpressions.ts, 0, 32), Decl(instantiationExpressions.ts, 1, 43)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 1, 20)) +>x : Symbol(x, Decl(instantiationExpressions.ts, 1, 23)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 1, 20)) +>n : Symbol(n, Decl(instantiationExpressions.ts, 1, 28)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 1, 20)) + +declare function fx(t: [T, U]): [T, U]; +>fx : Symbol(fx, Decl(instantiationExpressions.ts, 0, 0), Decl(instantiationExpressions.ts, 0, 32), Decl(instantiationExpressions.ts, 1, 43)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 2, 20)) +>U : Symbol(U, Decl(instantiationExpressions.ts, 2, 22)) +>t : Symbol(t, Decl(instantiationExpressions.ts, 2, 26)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 2, 20)) +>U : Symbol(U, Decl(instantiationExpressions.ts, 2, 22)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 2, 20)) +>U : Symbol(U, Decl(instantiationExpressions.ts, 2, 22)) + +function f1() { +>f1 : Symbol(f1, Decl(instantiationExpressions.ts, 2, 45)) + + let f0 = fx<>; // Error +>f0 : Symbol(f0, Decl(instantiationExpressions.ts, 5, 7)) +>fx : Symbol(fx, Decl(instantiationExpressions.ts, 0, 0), Decl(instantiationExpressions.ts, 0, 32), Decl(instantiationExpressions.ts, 1, 43)) + + let f1 = fx; // { (x: string): string; (x: string, n: number): string; } +>f1 : Symbol(f1, Decl(instantiationExpressions.ts, 6, 7)) +>fx : Symbol(fx, Decl(instantiationExpressions.ts, 0, 0), Decl(instantiationExpressions.ts, 0, 32), Decl(instantiationExpressions.ts, 1, 43)) + + let f2 = fx; // (t: [string, number]) => [string, number] +>f2 : Symbol(f2, Decl(instantiationExpressions.ts, 7, 7)) +>fx : Symbol(fx, Decl(instantiationExpressions.ts, 0, 0), Decl(instantiationExpressions.ts, 0, 32), Decl(instantiationExpressions.ts, 1, 43)) + + let f3 = fx; // Error +>f3 : Symbol(f3, Decl(instantiationExpressions.ts, 8, 7)) +>fx : Symbol(fx, Decl(instantiationExpressions.ts, 0, 0), Decl(instantiationExpressions.ts, 0, 32), Decl(instantiationExpressions.ts, 1, 43)) +} + +type T10 = typeof fx<>; // Error +>T10 : Symbol(T10, Decl(instantiationExpressions.ts, 9, 1)) +>fx : Symbol(fx, Decl(instantiationExpressions.ts, 0, 0), Decl(instantiationExpressions.ts, 0, 32), Decl(instantiationExpressions.ts, 1, 43)) + +type T11 = typeof fx; // { (x: string): string; (x: string, n: number): string; } +>T11 : Symbol(T11, Decl(instantiationExpressions.ts, 11, 23)) +>fx : Symbol(fx, Decl(instantiationExpressions.ts, 0, 0), Decl(instantiationExpressions.ts, 0, 32), Decl(instantiationExpressions.ts, 1, 43)) + +type T12 = typeof fx; // (t: [string, number]) => [string, number] +>T12 : Symbol(T12, Decl(instantiationExpressions.ts, 12, 29)) +>fx : Symbol(fx, Decl(instantiationExpressions.ts, 0, 0), Decl(instantiationExpressions.ts, 0, 32), Decl(instantiationExpressions.ts, 1, 43)) + +type T13 = typeof fx; // Error +>T13 : Symbol(T13, Decl(instantiationExpressions.ts, 13, 37)) +>fx : Symbol(fx, Decl(instantiationExpressions.ts, 0, 0), Decl(instantiationExpressions.ts, 0, 32), Decl(instantiationExpressions.ts, 1, 43)) + +function f2() { +>f2 : Symbol(f2, Decl(instantiationExpressions.ts, 14, 46)) + + const A0 = Array<>; // Error +>A0 : Symbol(A0, Decl(instantiationExpressions.ts, 17, 9)) +>Array : Symbol(Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) + + const A1 = Array; // new (...) => string[] +>A1 : Symbol(A1, Decl(instantiationExpressions.ts, 18, 9)) +>Array : Symbol(Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) + + const A2 = Array; // Error +>A2 : Symbol(A2, Decl(instantiationExpressions.ts, 19, 9)) +>Array : Symbol(Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +} + +type T20 = typeof Array<>; // Error +>T20 : Symbol(T20, Decl(instantiationExpressions.ts, 20, 1)) +>Array : Symbol(Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) + +type T21 = typeof Array; // new (...) => string[] +>T21 : Symbol(T21, Decl(instantiationExpressions.ts, 22, 26)) +>Array : Symbol(Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) + +type T22 = typeof Array; // Error +>T22 : Symbol(T22, Decl(instantiationExpressions.ts, 23, 32)) +>Array : Symbol(Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) + +declare class C { +>C : Symbol(C, Decl(instantiationExpressions.ts, 24, 40)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 26, 16)) + + constructor(x: T); +>x : Symbol(x, Decl(instantiationExpressions.ts, 27, 16)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 26, 16)) + + static f(x: U): U[]; +>f : Symbol(C.f, Decl(instantiationExpressions.ts, 27, 22)) +>U : Symbol(U, Decl(instantiationExpressions.ts, 28, 13)) +>x : Symbol(x, Decl(instantiationExpressions.ts, 28, 16)) +>U : Symbol(U, Decl(instantiationExpressions.ts, 28, 13)) +>U : Symbol(U, Decl(instantiationExpressions.ts, 28, 13)) +} + +function f3() { +>f3 : Symbol(f3, Decl(instantiationExpressions.ts, 29, 1)) + + let c1 = C; // { new (x: string): C; f(x: U): T[]; prototype: C; } +>c1 : Symbol(c1, Decl(instantiationExpressions.ts, 32, 7)) +>C : Symbol(C, Decl(instantiationExpressions.ts, 24, 40)) + + let f1 = C.f; // (x: string) => string[] +>f1 : Symbol(f1, Decl(instantiationExpressions.ts, 33, 7)) +>C.f : Symbol(C.f, Decl(instantiationExpressions.ts, 27, 22)) +>C : Symbol(C, Decl(instantiationExpressions.ts, 24, 40)) +>f : Symbol(C.f, Decl(instantiationExpressions.ts, 27, 22)) +} + +function f10(f: { (a: T): T, (a: U, b: number): U[] }) { +>f10 : Symbol(f10, Decl(instantiationExpressions.ts, 34, 1)) +>f : Symbol(f, Decl(instantiationExpressions.ts, 36, 13)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 36, 19)) +>a : Symbol(a, Decl(instantiationExpressions.ts, 36, 22)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 36, 19)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 36, 19)) +>U : Symbol(U, Decl(instantiationExpressions.ts, 36, 33)) +>a : Symbol(a, Decl(instantiationExpressions.ts, 36, 36)) +>U : Symbol(U, Decl(instantiationExpressions.ts, 36, 33)) +>b : Symbol(b, Decl(instantiationExpressions.ts, 36, 41)) +>U : Symbol(U, Decl(instantiationExpressions.ts, 36, 33)) + + let fs = f; // { (a: string): string; (a: string, b: number): string[]; } +>fs : Symbol(fs, Decl(instantiationExpressions.ts, 37, 7)) +>f : Symbol(f, Decl(instantiationExpressions.ts, 36, 13)) +} + +function f11(f: { (a: T): T, (a: string, b: number): string[] }) { +>f11 : Symbol(f11, Decl(instantiationExpressions.ts, 38, 1)) +>f : Symbol(f, Decl(instantiationExpressions.ts, 40, 13)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 40, 19)) +>a : Symbol(a, Decl(instantiationExpressions.ts, 40, 22)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 40, 19)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 40, 19)) +>a : Symbol(a, Decl(instantiationExpressions.ts, 40, 33)) +>b : Symbol(b, Decl(instantiationExpressions.ts, 40, 43)) + + let fs = f; // (a: string) => string +>fs : Symbol(fs, Decl(instantiationExpressions.ts, 41, 7)) +>f : Symbol(f, Decl(instantiationExpressions.ts, 40, 13)) +} + +function f12(f: { (a: T): T, x: string }) { +>f12 : Symbol(f12, Decl(instantiationExpressions.ts, 42, 1)) +>f : Symbol(f, Decl(instantiationExpressions.ts, 44, 13)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 44, 19)) +>a : Symbol(a, Decl(instantiationExpressions.ts, 44, 22)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 44, 19)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 44, 19)) +>x : Symbol(x, Decl(instantiationExpressions.ts, 44, 31)) + + let fs = f; // { (a: string): string; x: string; } +>fs : Symbol(fs, Decl(instantiationExpressions.ts, 45, 7)) +>f : Symbol(f, Decl(instantiationExpressions.ts, 44, 13)) +} + +function f13(f: { x: string, y: string }) { +>f13 : Symbol(f13, Decl(instantiationExpressions.ts, 46, 1)) +>f : Symbol(f, Decl(instantiationExpressions.ts, 48, 13)) +>x : Symbol(x, Decl(instantiationExpressions.ts, 48, 17)) +>y : Symbol(y, Decl(instantiationExpressions.ts, 48, 28)) + + let fs = f; // Error, no applicable signatures +>fs : Symbol(fs, Decl(instantiationExpressions.ts, 49, 7)) +>f : Symbol(f, Decl(instantiationExpressions.ts, 48, 13)) +} + +function f14(f: { new (a: T): T, new (a: U, b: number): U[] }) { +>f14 : Symbol(f14, Decl(instantiationExpressions.ts, 50, 1)) +>f : Symbol(f, Decl(instantiationExpressions.ts, 52, 13)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 52, 23)) +>a : Symbol(a, Decl(instantiationExpressions.ts, 52, 26)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 52, 23)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 52, 23)) +>U : Symbol(U, Decl(instantiationExpressions.ts, 52, 41)) +>a : Symbol(a, Decl(instantiationExpressions.ts, 52, 44)) +>U : Symbol(U, Decl(instantiationExpressions.ts, 52, 41)) +>b : Symbol(b, Decl(instantiationExpressions.ts, 52, 49)) +>U : Symbol(U, Decl(instantiationExpressions.ts, 52, 41)) + + let fs = f; // { new (a: string): string; new (a: string, b: number): string[]; } +>fs : Symbol(fs, Decl(instantiationExpressions.ts, 53, 7)) +>f : Symbol(f, Decl(instantiationExpressions.ts, 52, 13)) +} + +function f15(f: { new (a: T): T, (a: U, b: number): U[] }) { +>f15 : Symbol(f15, Decl(instantiationExpressions.ts, 54, 1)) +>f : Symbol(f, Decl(instantiationExpressions.ts, 56, 13)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 56, 23)) +>a : Symbol(a, Decl(instantiationExpressions.ts, 56, 26)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 56, 23)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 56, 23)) +>U : Symbol(U, Decl(instantiationExpressions.ts, 56, 37)) +>a : Symbol(a, Decl(instantiationExpressions.ts, 56, 40)) +>U : Symbol(U, Decl(instantiationExpressions.ts, 56, 37)) +>b : Symbol(b, Decl(instantiationExpressions.ts, 56, 45)) +>U : Symbol(U, Decl(instantiationExpressions.ts, 56, 37)) + + let fs = f; // { new (a: string): string; (a: string, b: number): string[]; } +>fs : Symbol(fs, Decl(instantiationExpressions.ts, 57, 7)) +>f : Symbol(f, Decl(instantiationExpressions.ts, 56, 13)) +} + +function f16(f: { new (a: T): T, (a: string, b: number): string[] }) { +>f16 : Symbol(f16, Decl(instantiationExpressions.ts, 58, 1)) +>f : Symbol(f, Decl(instantiationExpressions.ts, 60, 13)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 60, 23)) +>a : Symbol(a, Decl(instantiationExpressions.ts, 60, 26)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 60, 23)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 60, 23)) +>a : Symbol(a, Decl(instantiationExpressions.ts, 60, 37)) +>b : Symbol(b, Decl(instantiationExpressions.ts, 60, 47)) + + let fs = f; // new (a: string) => string +>fs : Symbol(fs, Decl(instantiationExpressions.ts, 61, 7)) +>f : Symbol(f, Decl(instantiationExpressions.ts, 60, 13)) +} + +function f17(f: { (a: T): T, new (a: string, b: number): string[] }) { +>f17 : Symbol(f17, Decl(instantiationExpressions.ts, 62, 1)) +>f : Symbol(f, Decl(instantiationExpressions.ts, 64, 13)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 64, 19)) +>a : Symbol(a, Decl(instantiationExpressions.ts, 64, 22)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 64, 19)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 64, 19)) +>a : Symbol(a, Decl(instantiationExpressions.ts, 64, 37)) +>b : Symbol(b, Decl(instantiationExpressions.ts, 64, 47)) + + let fs = f; // (a: string) => string +>fs : Symbol(fs, Decl(instantiationExpressions.ts, 65, 7)) +>f : Symbol(f, Decl(instantiationExpressions.ts, 64, 13)) +} + +function f20(f: ((a: T) => T) & ((a: U, b: number) => U[])) { +>f20 : Symbol(f20, Decl(instantiationExpressions.ts, 66, 1)) +>f : Symbol(f, Decl(instantiationExpressions.ts, 68, 13)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 68, 18)) +>a : Symbol(a, Decl(instantiationExpressions.ts, 68, 21)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 68, 18)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 68, 18)) +>U : Symbol(U, Decl(instantiationExpressions.ts, 68, 37)) +>a : Symbol(a, Decl(instantiationExpressions.ts, 68, 40)) +>U : Symbol(U, Decl(instantiationExpressions.ts, 68, 37)) +>b : Symbol(b, Decl(instantiationExpressions.ts, 68, 45)) +>U : Symbol(U, Decl(instantiationExpressions.ts, 68, 37)) + + let fs = f; // ((a: string) => string) & ((a: string, b: number) => string[]]) +>fs : Symbol(fs, Decl(instantiationExpressions.ts, 69, 7)) +>f : Symbol(f, Decl(instantiationExpressions.ts, 68, 13)) +} + +function f21(f: ((a: T) => T) & ((a: string, b: number) => string[])) { +>f21 : Symbol(f21, Decl(instantiationExpressions.ts, 70, 1)) +>f : Symbol(f, Decl(instantiationExpressions.ts, 72, 13)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 72, 18)) +>a : Symbol(a, Decl(instantiationExpressions.ts, 72, 21)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 72, 18)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 72, 18)) +>a : Symbol(a, Decl(instantiationExpressions.ts, 72, 37)) +>b : Symbol(b, Decl(instantiationExpressions.ts, 72, 47)) + + let fs = f; // (a: string) => string +>fs : Symbol(fs, Decl(instantiationExpressions.ts, 73, 7)) +>f : Symbol(f, Decl(instantiationExpressions.ts, 72, 13)) +} + +function f22(f: ((a: T) => T) & { x: string }) { +>f22 : Symbol(f22, Decl(instantiationExpressions.ts, 74, 1)) +>f : Symbol(f, Decl(instantiationExpressions.ts, 76, 13)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 76, 18)) +>a : Symbol(a, Decl(instantiationExpressions.ts, 76, 21)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 76, 18)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 76, 18)) +>x : Symbol(x, Decl(instantiationExpressions.ts, 76, 36)) + + let fs = f; // ((a: string) => string) & { x: string } +>fs : Symbol(fs, Decl(instantiationExpressions.ts, 77, 7)) +>f : Symbol(f, Decl(instantiationExpressions.ts, 76, 13)) +} + +function f23(f: { x: string } & { y: string }) { +>f23 : Symbol(f23, Decl(instantiationExpressions.ts, 78, 1)) +>f : Symbol(f, Decl(instantiationExpressions.ts, 80, 13)) +>x : Symbol(x, Decl(instantiationExpressions.ts, 80, 17)) +>y : Symbol(y, Decl(instantiationExpressions.ts, 80, 33)) + + let fs = f; // Error, no applicable signatures +>fs : Symbol(fs, Decl(instantiationExpressions.ts, 81, 7)) +>f : Symbol(f, Decl(instantiationExpressions.ts, 80, 13)) +} + +function f24(f: (new (a: T) => T) & (new (a: U, b: number) => U[])) { +>f24 : Symbol(f24, Decl(instantiationExpressions.ts, 82, 1)) +>f : Symbol(f, Decl(instantiationExpressions.ts, 84, 13)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 84, 22)) +>a : Symbol(a, Decl(instantiationExpressions.ts, 84, 25)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 84, 22)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 84, 22)) +>U : Symbol(U, Decl(instantiationExpressions.ts, 84, 45)) +>a : Symbol(a, Decl(instantiationExpressions.ts, 84, 48)) +>U : Symbol(U, Decl(instantiationExpressions.ts, 84, 45)) +>b : Symbol(b, Decl(instantiationExpressions.ts, 84, 53)) +>U : Symbol(U, Decl(instantiationExpressions.ts, 84, 45)) + + let fs = f; // (new (a: string) => string) & ((a: string, b: number) => string[]]) +>fs : Symbol(fs, Decl(instantiationExpressions.ts, 85, 7)) +>f : Symbol(f, Decl(instantiationExpressions.ts, 84, 13)) +} + +function f25(f: (new (a: T) => T) & ((a: U, b: number) => U[])) { +>f25 : Symbol(f25, Decl(instantiationExpressions.ts, 86, 1)) +>f : Symbol(f, Decl(instantiationExpressions.ts, 88, 13)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 88, 22)) +>a : Symbol(a, Decl(instantiationExpressions.ts, 88, 25)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 88, 22)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 88, 22)) +>U : Symbol(U, Decl(instantiationExpressions.ts, 88, 41)) +>a : Symbol(a, Decl(instantiationExpressions.ts, 88, 44)) +>U : Symbol(U, Decl(instantiationExpressions.ts, 88, 41)) +>b : Symbol(b, Decl(instantiationExpressions.ts, 88, 49)) +>U : Symbol(U, Decl(instantiationExpressions.ts, 88, 41)) + + let fs = f; // (new (a: string) => string) & ((a: string, b: number) => string[]]) +>fs : Symbol(fs, Decl(instantiationExpressions.ts, 89, 7)) +>f : Symbol(f, Decl(instantiationExpressions.ts, 88, 13)) +} + +function f26(f: (new (a: T) => T) & ((a: string, b: number) => string[])) { +>f26 : Symbol(f26, Decl(instantiationExpressions.ts, 90, 1)) +>f : Symbol(f, Decl(instantiationExpressions.ts, 92, 13)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 92, 22)) +>a : Symbol(a, Decl(instantiationExpressions.ts, 92, 25)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 92, 22)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 92, 22)) +>a : Symbol(a, Decl(instantiationExpressions.ts, 92, 41)) +>b : Symbol(b, Decl(instantiationExpressions.ts, 92, 51)) + + let fs = f; // new (a: string) => string +>fs : Symbol(fs, Decl(instantiationExpressions.ts, 93, 7)) +>f : Symbol(f, Decl(instantiationExpressions.ts, 92, 13)) +} + +function f27(f: ((a: T) => T) & (new (a: string, b: number) => string[])) { +>f27 : Symbol(f27, Decl(instantiationExpressions.ts, 94, 1)) +>f : Symbol(f, Decl(instantiationExpressions.ts, 96, 13)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 96, 18)) +>a : Symbol(a, Decl(instantiationExpressions.ts, 96, 21)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 96, 18)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 96, 18)) +>a : Symbol(a, Decl(instantiationExpressions.ts, 96, 41)) +>b : Symbol(b, Decl(instantiationExpressions.ts, 96, 51)) + + let fs = f; // (a: string) => string +>fs : Symbol(fs, Decl(instantiationExpressions.ts, 97, 7)) +>f : Symbol(f, Decl(instantiationExpressions.ts, 96, 13)) +} + +function f30(f: ((a: T) => T) | ((a: U, b: number) => U[])) { +>f30 : Symbol(f30, Decl(instantiationExpressions.ts, 98, 1)) +>f : Symbol(f, Decl(instantiationExpressions.ts, 100, 13)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 100, 18)) +>a : Symbol(a, Decl(instantiationExpressions.ts, 100, 21)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 100, 18)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 100, 18)) +>U : Symbol(U, Decl(instantiationExpressions.ts, 100, 37)) +>a : Symbol(a, Decl(instantiationExpressions.ts, 100, 40)) +>U : Symbol(U, Decl(instantiationExpressions.ts, 100, 37)) +>b : Symbol(b, Decl(instantiationExpressions.ts, 100, 45)) +>U : Symbol(U, Decl(instantiationExpressions.ts, 100, 37)) + + let fs = f; // ((a: string) => string) | ((a: string, b: number) => string[]]) +>fs : Symbol(fs, Decl(instantiationExpressions.ts, 101, 7)) +>f : Symbol(f, Decl(instantiationExpressions.ts, 100, 13)) +} + +function f31(f: ((a: T) => T) | ((a: string, b: number) => string[])) { +>f31 : Symbol(f31, Decl(instantiationExpressions.ts, 102, 1)) +>f : Symbol(f, Decl(instantiationExpressions.ts, 104, 13)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 104, 18)) +>a : Symbol(a, Decl(instantiationExpressions.ts, 104, 21)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 104, 18)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 104, 18)) +>a : Symbol(a, Decl(instantiationExpressions.ts, 104, 37)) +>b : Symbol(b, Decl(instantiationExpressions.ts, 104, 47)) + + let fs = f; // Error, '(a: string, b: number) => string[]' has no applicable signatures +>fs : Symbol(fs, Decl(instantiationExpressions.ts, 105, 7)) +>f : Symbol(f, Decl(instantiationExpressions.ts, 104, 13)) +} + +function f32(f: ((a: T) => T) | { x: string }) { +>f32 : Symbol(f32, Decl(instantiationExpressions.ts, 106, 1)) +>f : Symbol(f, Decl(instantiationExpressions.ts, 108, 13)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 108, 18)) +>a : Symbol(a, Decl(instantiationExpressions.ts, 108, 21)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 108, 18)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 108, 18)) +>x : Symbol(x, Decl(instantiationExpressions.ts, 108, 36)) + + let fs = f; // ((a: string) => string) | { x: string } +>fs : Symbol(fs, Decl(instantiationExpressions.ts, 109, 7)) +>f : Symbol(f, Decl(instantiationExpressions.ts, 108, 13)) +} + +function f33(f: { x: string } | { y: string }) { +>f33 : Symbol(f33, Decl(instantiationExpressions.ts, 110, 1)) +>f : Symbol(f, Decl(instantiationExpressions.ts, 112, 13)) +>x : Symbol(x, Decl(instantiationExpressions.ts, 112, 17)) +>y : Symbol(y, Decl(instantiationExpressions.ts, 112, 33)) + + let fs = f; // Error, no applicable signatures +>fs : Symbol(fs, Decl(instantiationExpressions.ts, 113, 7)) +>f : Symbol(f, Decl(instantiationExpressions.ts, 112, 13)) +} + +function f34(f: (new (a: T) => T) | (new (a: U, b: number) => U[])) { +>f34 : Symbol(f34, Decl(instantiationExpressions.ts, 114, 1)) +>f : Symbol(f, Decl(instantiationExpressions.ts, 116, 13)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 116, 22)) +>a : Symbol(a, Decl(instantiationExpressions.ts, 116, 25)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 116, 22)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 116, 22)) +>U : Symbol(U, Decl(instantiationExpressions.ts, 116, 45)) +>a : Symbol(a, Decl(instantiationExpressions.ts, 116, 48)) +>U : Symbol(U, Decl(instantiationExpressions.ts, 116, 45)) +>b : Symbol(b, Decl(instantiationExpressions.ts, 116, 53)) +>U : Symbol(U, Decl(instantiationExpressions.ts, 116, 45)) + + let fs = f; // (new (a: string) => string) | ((a: string, b: number) => string[]]) +>fs : Symbol(fs, Decl(instantiationExpressions.ts, 117, 7)) +>f : Symbol(f, Decl(instantiationExpressions.ts, 116, 13)) +} + +function f35(f: (new (a: T) => T) | ((a: U, b: number) => U[])) { +>f35 : Symbol(f35, Decl(instantiationExpressions.ts, 118, 1)) +>f : Symbol(f, Decl(instantiationExpressions.ts, 120, 13)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 120, 22)) +>a : Symbol(a, Decl(instantiationExpressions.ts, 120, 25)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 120, 22)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 120, 22)) +>U : Symbol(U, Decl(instantiationExpressions.ts, 120, 41)) +>a : Symbol(a, Decl(instantiationExpressions.ts, 120, 44)) +>U : Symbol(U, Decl(instantiationExpressions.ts, 120, 41)) +>b : Symbol(b, Decl(instantiationExpressions.ts, 120, 49)) +>U : Symbol(U, Decl(instantiationExpressions.ts, 120, 41)) + + let fs = f; // (new (a: string) => string) | ((a: string, b: number) => string[]]) +>fs : Symbol(fs, Decl(instantiationExpressions.ts, 121, 7)) +>f : Symbol(f, Decl(instantiationExpressions.ts, 120, 13)) +} + +function f36(f: (new (a: T) => T) | ((a: string, b: number) => string[])) { +>f36 : Symbol(f36, Decl(instantiationExpressions.ts, 122, 1)) +>f : Symbol(f, Decl(instantiationExpressions.ts, 124, 13)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 124, 22)) +>a : Symbol(a, Decl(instantiationExpressions.ts, 124, 25)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 124, 22)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 124, 22)) +>a : Symbol(a, Decl(instantiationExpressions.ts, 124, 41)) +>b : Symbol(b, Decl(instantiationExpressions.ts, 124, 51)) + + let fs = f; // Error, '(a: string, b: number) => string[]' has no applicable signatures +>fs : Symbol(fs, Decl(instantiationExpressions.ts, 125, 7)) +>f : Symbol(f, Decl(instantiationExpressions.ts, 124, 13)) +} + +function f37(f: ((a: T) => T) | (new (a: string, b: number) => string[])) { +>f37 : Symbol(f37, Decl(instantiationExpressions.ts, 126, 1)) +>f : Symbol(f, Decl(instantiationExpressions.ts, 128, 13)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 128, 18)) +>a : Symbol(a, Decl(instantiationExpressions.ts, 128, 21)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 128, 18)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 128, 18)) +>a : Symbol(a, Decl(instantiationExpressions.ts, 128, 41)) +>b : Symbol(b, Decl(instantiationExpressions.ts, 128, 51)) + + let fs = f; // Error, 'new (a: string, b: number) => string[]' has no applicable signatures +>fs : Symbol(fs, Decl(instantiationExpressions.ts, 129, 7)) +>f : Symbol(f, Decl(instantiationExpressions.ts, 128, 13)) +} + +function f38(x: A) => A) | ((x: B) => B[]), U>(f: T | U | ((x: C) => C[][])) { +>f38 : Symbol(f38, Decl(instantiationExpressions.ts, 130, 1)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 132, 13)) +>A : Symbol(A, Decl(instantiationExpressions.ts, 132, 25)) +>x : Symbol(x, Decl(instantiationExpressions.ts, 132, 28)) +>A : Symbol(A, Decl(instantiationExpressions.ts, 132, 25)) +>A : Symbol(A, Decl(instantiationExpressions.ts, 132, 25)) +>B : Symbol(B, Decl(instantiationExpressions.ts, 132, 44)) +>x : Symbol(x, Decl(instantiationExpressions.ts, 132, 47)) +>B : Symbol(B, Decl(instantiationExpressions.ts, 132, 44)) +>B : Symbol(B, Decl(instantiationExpressions.ts, 132, 44)) +>U : Symbol(U, Decl(instantiationExpressions.ts, 132, 61)) +>f : Symbol(f, Decl(instantiationExpressions.ts, 132, 65)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 132, 13)) +>U : Symbol(U, Decl(instantiationExpressions.ts, 132, 61)) +>C : Symbol(C, Decl(instantiationExpressions.ts, 132, 78)) +>x : Symbol(x, Decl(instantiationExpressions.ts, 132, 81)) +>C : Symbol(C, Decl(instantiationExpressions.ts, 132, 78)) +>C : Symbol(C, Decl(instantiationExpressions.ts, 132, 78)) + + let fs = f; // U | ((x: string) => string) | ((x: string) => string[]) | ((x: string) => string[][]) +>fs : Symbol(fs, Decl(instantiationExpressions.ts, 133, 7)) +>f : Symbol(f, Decl(instantiationExpressions.ts, 132, 65)) +} + +function makeBox(value: T) { +>makeBox : Symbol(makeBox, Decl(instantiationExpressions.ts, 134, 1)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 136, 17)) +>value : Symbol(value, Decl(instantiationExpressions.ts, 136, 20)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 136, 17)) + + return { value }; +>value : Symbol(value, Decl(instantiationExpressions.ts, 137, 12)) +} + +type BoxFunc = typeof makeBox; // (value: T) => { value: T } +>BoxFunc : Symbol(BoxFunc, Decl(instantiationExpressions.ts, 138, 1)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 140, 13)) +>makeBox : Symbol(makeBox, Decl(instantiationExpressions.ts, 134, 1)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 140, 13)) + +type StringBoxFunc = BoxFunc; // (value: string) => { value: string } +>StringBoxFunc : Symbol(StringBoxFunc, Decl(instantiationExpressions.ts, 140, 36)) +>BoxFunc : Symbol(BoxFunc, Decl(instantiationExpressions.ts, 138, 1)) + +type Box = ReturnType>; // { value: T } +>Box : Symbol(Box, Decl(instantiationExpressions.ts, 141, 37)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 143, 9)) +>ReturnType : Symbol(ReturnType, Decl(lib.es5.d.ts, --, --)) +>makeBox : Symbol(makeBox, Decl(instantiationExpressions.ts, 134, 1)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 143, 9)) + +type StringBox = Box; // { value: string } +>StringBox : Symbol(StringBox, Decl(instantiationExpressions.ts, 143, 44)) +>Box : Symbol(Box, Decl(instantiationExpressions.ts, 141, 37)) + +type A = InstanceType>; // U[] +>A : Symbol(A, Decl(instantiationExpressions.ts, 144, 29)) +>U : Symbol(U, Decl(instantiationExpressions.ts, 146, 7)) +>InstanceType : Symbol(InstanceType, Decl(lib.es5.d.ts, --, --)) +>Array : Symbol(Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>U : Symbol(U, Decl(instantiationExpressions.ts, 146, 7)) + +declare const g1: { +>g1 : Symbol(g1, Decl(instantiationExpressions.ts, 148, 13)) + + (a: T): { a: T }; +>T : Symbol(T, Decl(instantiationExpressions.ts, 149, 5)) +>a : Symbol(a, Decl(instantiationExpressions.ts, 149, 8)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 149, 5)) +>a : Symbol(a, Decl(instantiationExpressions.ts, 149, 16)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 149, 5)) + + new (b: U): { b: U }; +>U : Symbol(U, Decl(instantiationExpressions.ts, 150, 9)) +>b : Symbol(b, Decl(instantiationExpressions.ts, 150, 12)) +>U : Symbol(U, Decl(instantiationExpressions.ts, 150, 9)) +>b : Symbol(b, Decl(instantiationExpressions.ts, 150, 20)) +>U : Symbol(U, Decl(instantiationExpressions.ts, 150, 9)) +} + +type T30 = typeof g1; // { (a: V) => { a: V }; new (b: V) => { b: V }; } +>T30 : Symbol(T30, Decl(instantiationExpressions.ts, 151, 1)) +>V : Symbol(V, Decl(instantiationExpressions.ts, 153, 9)) +>g1 : Symbol(g1, Decl(instantiationExpressions.ts, 148, 13)) +>V : Symbol(V, Decl(instantiationExpressions.ts, 153, 9)) + +type T31 = ReturnType>; // { a: A } +>T31 : Symbol(T31, Decl(instantiationExpressions.ts, 153, 27)) +>A : Symbol(A, Decl(instantiationExpressions.ts, 154, 9)) +>ReturnType : Symbol(ReturnType, Decl(lib.es5.d.ts, --, --)) +>T30 : Symbol(T30, Decl(instantiationExpressions.ts, 151, 1)) +>A : Symbol(A, Decl(instantiationExpressions.ts, 154, 9)) + +type T32 = InstanceType>; // { b: B } +>T32 : Symbol(T32, Decl(instantiationExpressions.ts, 154, 33)) +>B : Symbol(B, Decl(instantiationExpressions.ts, 155, 9)) +>InstanceType : Symbol(InstanceType, Decl(lib.es5.d.ts, --, --)) +>T30 : Symbol(T30, Decl(instantiationExpressions.ts, 151, 1)) +>B : Symbol(B, Decl(instantiationExpressions.ts, 155, 9)) + +declare const g2: { +>g2 : Symbol(g2, Decl(instantiationExpressions.ts, 157, 13)) + + (a: T): T; +>T : Symbol(T, Decl(instantiationExpressions.ts, 158, 5)) +>a : Symbol(a, Decl(instantiationExpressions.ts, 158, 23)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 158, 5)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 158, 5)) + + new (b: T): T; +>T : Symbol(T, Decl(instantiationExpressions.ts, 159, 9)) +>b : Symbol(b, Decl(instantiationExpressions.ts, 159, 27)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 159, 9)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 159, 9)) +} + +type T40 = typeof g2; // Error +>T40 : Symbol(T40, Decl(instantiationExpressions.ts, 160, 1)) +>U : Symbol(U, Decl(instantiationExpressions.ts, 162, 9)) +>g2 : Symbol(g2, Decl(instantiationExpressions.ts, 157, 13)) +>U : Symbol(U, Decl(instantiationExpressions.ts, 162, 9)) + +type T41 = typeof g2; // Error +>T41 : Symbol(T41, Decl(instantiationExpressions.ts, 162, 42)) +>U : Symbol(U, Decl(instantiationExpressions.ts, 163, 9)) +>g2 : Symbol(g2, Decl(instantiationExpressions.ts, 157, 13)) +>U : Symbol(U, Decl(instantiationExpressions.ts, 163, 9)) + +declare const g3: { +>g3 : Symbol(g3, Decl(instantiationExpressions.ts, 165, 13)) + + (a: T): T; +>T : Symbol(T, Decl(instantiationExpressions.ts, 166, 5)) +>a : Symbol(a, Decl(instantiationExpressions.ts, 166, 23)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 166, 5)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 166, 5)) + + new (b: T): T; +>T : Symbol(T, Decl(instantiationExpressions.ts, 167, 9)) +>Q : Symbol(Q, Decl(instantiationExpressions.ts, 167, 26)) +>b : Symbol(b, Decl(instantiationExpressions.ts, 167, 30)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 167, 9)) +>T : Symbol(T, Decl(instantiationExpressions.ts, 167, 9)) +} + +type T50 = typeof g3; // (a: U) => U +>T50 : Symbol(T50, Decl(instantiationExpressions.ts, 168, 1)) +>U : Symbol(U, Decl(instantiationExpressions.ts, 170, 9)) +>g3 : Symbol(g3, Decl(instantiationExpressions.ts, 165, 13)) +>U : Symbol(U, Decl(instantiationExpressions.ts, 170, 9)) + +type T51 = typeof g3; // (b: U) => U +>T51 : Symbol(T51, Decl(instantiationExpressions.ts, 170, 42)) +>U : Symbol(U, Decl(instantiationExpressions.ts, 171, 9)) +>g3 : Symbol(g3, Decl(instantiationExpressions.ts, 165, 13)) +>U : Symbol(U, Decl(instantiationExpressions.ts, 171, 9)) + diff --git a/tests/baselines/reference/instantiationExpressions.types b/tests/baselines/reference/instantiationExpressions.types new file mode 100644 index 0000000000000..43a71f42d3ea5 --- /dev/null +++ b/tests/baselines/reference/instantiationExpressions.types @@ -0,0 +1,482 @@ +=== tests/cases/conformance/types/typeParameters/typeArgumentLists/instantiationExpressions.ts === +declare function fx(x: T): T; +>fx : { (x: T): T; (x: T, n: number): T; (t: [T, U]): [T, U]; } +>x : T + +declare function fx(x: T, n: number): T; +>fx : { (x: T): T; (x: T, n: number): T; (t: [T, U]): [T, U]; } +>x : T +>n : number + +declare function fx(t: [T, U]): [T, U]; +>fx : { (x: T): T; (x: T, n: number): T; (t: [T, U]): [T, U]; } +>t : [T, U] + +function f1() { +>f1 : () => void + + let f0 = fx<>; // Error +>f0 : { (x: T): T; (x: T, n: number): T; (t: [T, U]): [T, U]; } +>fx : { (x: T): T; (x: T, n: number): T; (t: [T, U]): [T, U]; } + + let f1 = fx; // { (x: string): string; (x: string, n: number): string; } +>f1 : { (x: string): string; (x: string, n: number): string; } +>fx : { (x: T): T; (x: T, n: number): T; (t: [T, U]): [T, U]; } + + let f2 = fx; // (t: [string, number]) => [string, number] +>f2 : (t: [string, number]) => [string, number] +>fx : { (x: T): T; (x: T, n: number): T; (t: [T, U]): [T, U]; } + + let f3 = fx; // Error +>f3 : {} +>fx : { (x: T): T; (x: T, n: number): T; (t: [T, U]): [T, U]; } +} + +type T10 = typeof fx<>; // Error +>T10 : { (x: T): T; (x: T, n: number): T; (t: [T, U]): [T, U]; } +>fx : { (x: T): T; (x: T, n: number): T; (t: [T, U]): [T, U]; } + +type T11 = typeof fx; // { (x: string): string; (x: string, n: number): string; } +>T11 : { (x: string): string; (x: string, n: number): string; } +>fx : { (x: T): T; (x: T, n: number): T; (t: [T, U]): [T, U]; } + +type T12 = typeof fx; // (t: [string, number]) => [string, number] +>T12 : (t: [string, number]) => [string, number] +>fx : { (x: T): T; (x: T, n: number): T; (t: [T, U]): [T, U]; } + +type T13 = typeof fx; // Error +>T13 : {} +>fx : { (x: T): T; (x: T, n: number): T; (t: [T, U]): [T, U]; } + +function f2() { +>f2 : () => void + + const A0 = Array<>; // Error +>A0 : ArrayConstructor +>Array : ArrayConstructor + + const A1 = Array; // new (...) => string[] +>A1 : { (arrayLength: number): string[]; (...items: string[]): string[]; new (arrayLength: number): string[]; new (...items: string[]): string[]; isArray(arg: any): arg is any[]; readonly prototype: any[]; } +>Array : ArrayConstructor + + const A2 = Array; // Error +>A2 : { isArray(arg: any): arg is any[]; readonly prototype: any[]; } +>Array : ArrayConstructor +} + +type T20 = typeof Array<>; // Error +>T20 : ArrayConstructor +>Array : ArrayConstructor + +type T21 = typeof Array; // new (...) => string[] +>T21 : { (arrayLength: number): string[]; (...items: string[]): string[]; new (arrayLength: number): string[]; new (...items: string[]): string[]; isArray(arg: any): arg is any[]; readonly prototype: any[]; } +>Array : ArrayConstructor + +type T22 = typeof Array; // Error +>T22 : { isArray(arg: any): arg is any[]; readonly prototype: any[]; } +>Array : ArrayConstructor + +declare class C { +>C : C + + constructor(x: T); +>x : T + + static f(x: U): U[]; +>f : (x: U) => U[] +>x : U +} + +function f3() { +>f3 : () => void + + let c1 = C; // { new (x: string): C; f(x: U): T[]; prototype: C; } +>c1 : { new (x: string): C; prototype: C; f(x: U): U[]; } +>C : typeof C + + let f1 = C.f; // (x: string) => string[] +>f1 : (x: string) => string[] +>C.f : (x: U) => U[] +>C : typeof C +>f : (x: U) => U[] +} + +function f10(f: { (a: T): T, (a: U, b: number): U[] }) { +>f10 : (f: { (a: T): T; (a: U, b: number): U[]; }) => void +>f : { (a: T): T; (a: U, b: number): U[]; } +>a : T +>a : U +>b : number + + let fs = f; // { (a: string): string; (a: string, b: number): string[]; } +>fs : { (a: string): string; (a: string, b: number): string[]; } +>f : { (a: T): T; (a: U, b: number): U[]; } +} + +function f11(f: { (a: T): T, (a: string, b: number): string[] }) { +>f11 : (f: { (a: T): T; (a: string, b: number): string[]; }) => void +>f : { (a: T): T; (a: string, b: number): string[]; } +>a : T +>a : string +>b : number + + let fs = f; // (a: string) => string +>fs : (a: string) => string +>f : { (a: T): T; (a: string, b: number): string[]; } +} + +function f12(f: { (a: T): T, x: string }) { +>f12 : (f: { (a: T): T; x: string; }) => void +>f : { (a: T): T; x: string; } +>a : T +>x : string + + let fs = f; // { (a: string): string; x: string; } +>fs : { (a: string): string; x: string; } +>f : { (a: T): T; x: string; } +} + +function f13(f: { x: string, y: string }) { +>f13 : (f: { x: string; y: string;}) => void +>f : { x: string; y: string; } +>x : string +>y : string + + let fs = f; // Error, no applicable signatures +>fs : { x: string; y: string; } +>f : { x: string; y: string; } +} + +function f14(f: { new (a: T): T, new (a: U, b: number): U[] }) { +>f14 : (f: { new (a: T): T; new (a: U, b: number): U[]; }) => void +>f : { new (a: T): T; new (a: U, b: number): U[]; } +>a : T +>a : U +>b : number + + let fs = f; // { new (a: string): string; new (a: string, b: number): string[]; } +>fs : { new (a: string): string; new (a: string, b: number): string[]; } +>f : { new (a: T): T; new (a: U, b: number): U[]; } +} + +function f15(f: { new (a: T): T, (a: U, b: number): U[] }) { +>f15 : (f: { (a: U, b: number): U[]; new (a: T): T; }) => void +>f : { (a: U, b: number): U[]; new (a: T): T; } +>a : T +>a : U +>b : number + + let fs = f; // { new (a: string): string; (a: string, b: number): string[]; } +>fs : { (a: string, b: number): string[]; new (a: string): string; } +>f : { (a: U, b: number): U[]; new (a: T): T; } +} + +function f16(f: { new (a: T): T, (a: string, b: number): string[] }) { +>f16 : (f: { (a: string, b: number): string[]; new (a: T): T; }) => void +>f : { (a: string, b: number): string[]; new (a: T): T; } +>a : T +>a : string +>b : number + + let fs = f; // new (a: string) => string +>fs : new (a: string) => string +>f : { (a: string, b: number): string[]; new (a: T): T; } +} + +function f17(f: { (a: T): T, new (a: string, b: number): string[] }) { +>f17 : (f: { (a: T): T; new (a: string, b: number): string[]; }) => void +>f : { (a: T): T; new (a: string, b: number): string[]; } +>a : T +>a : string +>b : number + + let fs = f; // (a: string) => string +>fs : (a: string) => string +>f : { (a: T): T; new (a: string, b: number): string[]; } +} + +function f20(f: ((a: T) => T) & ((a: U, b: number) => U[])) { +>f20 : (f: ((a: T) => T) & ((a: U, b: number) => U[])) => void +>f : ((a: T) => T) & ((a: U, b: number) => U[]) +>a : T +>a : U +>b : number + + let fs = f; // ((a: string) => string) & ((a: string, b: number) => string[]]) +>fs : ((a: string) => string) & ((a: string, b: number) => string[]) +>f : ((a: T) => T) & ((a: U, b: number) => U[]) +} + +function f21(f: ((a: T) => T) & ((a: string, b: number) => string[])) { +>f21 : (f: ((a: T) => T) & ((a: string, b: number) => string[])) => void +>f : ((a: T) => T) & ((a: string, b: number) => string[]) +>a : T +>a : string +>b : number + + let fs = f; // (a: string) => string +>fs : (a: string) => string +>f : ((a: T) => T) & ((a: string, b: number) => string[]) +} + +function f22(f: ((a: T) => T) & { x: string }) { +>f22 : (f: ((a: T) => T) & { x: string; }) => void +>f : ((a: T) => T) & { x: string; } +>a : T +>x : string + + let fs = f; // ((a: string) => string) & { x: string } +>fs : ((a: string) => string) & { x: string; } +>f : ((a: T) => T) & { x: string; } +} + +function f23(f: { x: string } & { y: string }) { +>f23 : (f: { x: string;} & { y: string;}) => void +>f : { x: string; } & { y: string; } +>x : string +>y : string + + let fs = f; // Error, no applicable signatures +>fs : { x: string; } & { y: string; } +>f : { x: string; } & { y: string; } +} + +function f24(f: (new (a: T) => T) & (new (a: U, b: number) => U[])) { +>f24 : (f: (new (a: T) => T) & (new (a: U, b: number) => U[])) => void +>f : (new (a: T) => T) & (new (a: U, b: number) => U[]) +>a : T +>a : U +>b : number + + let fs = f; // (new (a: string) => string) & ((a: string, b: number) => string[]]) +>fs : (new (a: string) => string) & (new (a: string, b: number) => string[]) +>f : (new (a: T) => T) & (new (a: U, b: number) => U[]) +} + +function f25(f: (new (a: T) => T) & ((a: U, b: number) => U[])) { +>f25 : (f: (new (a: T) => T) & ((a: U, b: number) => U[])) => void +>f : (new (a: T) => T) & ((a: U, b: number) => U[]) +>a : T +>a : U +>b : number + + let fs = f; // (new (a: string) => string) & ((a: string, b: number) => string[]]) +>fs : (new (a: string) => string) & ((a: string, b: number) => string[]) +>f : (new (a: T) => T) & ((a: U, b: number) => U[]) +} + +function f26(f: (new (a: T) => T) & ((a: string, b: number) => string[])) { +>f26 : (f: (new (a: T) => T) & ((a: string, b: number) => string[])) => void +>f : (new (a: T) => T) & ((a: string, b: number) => string[]) +>a : T +>a : string +>b : number + + let fs = f; // new (a: string) => string +>fs : new (a: string) => string +>f : (new (a: T) => T) & ((a: string, b: number) => string[]) +} + +function f27(f: ((a: T) => T) & (new (a: string, b: number) => string[])) { +>f27 : (f: ((a: T) => T) & (new (a: string, b: number) => string[])) => void +>f : ((a: T) => T) & (new (a: string, b: number) => string[]) +>a : T +>a : string +>b : number + + let fs = f; // (a: string) => string +>fs : (a: string) => string +>f : ((a: T) => T) & (new (a: string, b: number) => string[]) +} + +function f30(f: ((a: T) => T) | ((a: U, b: number) => U[])) { +>f30 : (f: ((a: T) => T) | ((a: U, b: number) => U[])) => void +>f : ((a: T) => T) | ((a: U, b: number) => U[]) +>a : T +>a : U +>b : number + + let fs = f; // ((a: string) => string) | ((a: string, b: number) => string[]]) +>fs : ((a: string) => string) | ((a: string, b: number) => string[]) +>f : ((a: T) => T) | ((a: U, b: number) => U[]) +} + +function f31(f: ((a: T) => T) | ((a: string, b: number) => string[])) { +>f31 : (f: ((a: T) => T) | ((a: string, b: number) => string[])) => void +>f : ((a: T) => T) | ((a: string, b: number) => string[]) +>a : T +>a : string +>b : number + + let fs = f; // Error, '(a: string, b: number) => string[]' has no applicable signatures +>fs : ((a: string) => string) | {} +>f : ((a: T) => T) | ((a: string, b: number) => string[]) +} + +function f32(f: ((a: T) => T) | { x: string }) { +>f32 : (f: { x: string; } | ((a: T) => T)) => void +>f : { x: string; } | ((a: T) => T) +>a : T +>x : string + + let fs = f; // ((a: string) => string) | { x: string } +>fs : { x: string; } | ((a: string) => string) +>f : { x: string; } | ((a: T) => T) +} + +function f33(f: { x: string } | { y: string }) { +>f33 : (f: { x: string;} | { y: string;}) => void +>f : { x: string; } | { y: string; } +>x : string +>y : string + + let fs = f; // Error, no applicable signatures +>fs : { x: string; } | { y: string; } +>f : { x: string; } | { y: string; } +} + +function f34(f: (new (a: T) => T) | (new (a: U, b: number) => U[])) { +>f34 : (f: (new (a: T) => T) | (new (a: U, b: number) => U[])) => void +>f : (new (a: T) => T) | (new (a: U, b: number) => U[]) +>a : T +>a : U +>b : number + + let fs = f; // (new (a: string) => string) | ((a: string, b: number) => string[]]) +>fs : (new (a: string) => string) | (new (a: string, b: number) => string[]) +>f : (new (a: T) => T) | (new (a: U, b: number) => U[]) +} + +function f35(f: (new (a: T) => T) | ((a: U, b: number) => U[])) { +>f35 : (f: (new (a: T) => T) | ((a: U, b: number) => U[])) => void +>f : (new (a: T) => T) | ((a: U, b: number) => U[]) +>a : T +>a : U +>b : number + + let fs = f; // (new (a: string) => string) | ((a: string, b: number) => string[]]) +>fs : (new (a: string) => string) | ((a: string, b: number) => string[]) +>f : (new (a: T) => T) | ((a: U, b: number) => U[]) +} + +function f36(f: (new (a: T) => T) | ((a: string, b: number) => string[])) { +>f36 : (f: (new (a: T) => T) | ((a: string, b: number) => string[])) => void +>f : (new (a: T) => T) | ((a: string, b: number) => string[]) +>a : T +>a : string +>b : number + + let fs = f; // Error, '(a: string, b: number) => string[]' has no applicable signatures +>fs : (new (a: string) => string) | {} +>f : (new (a: T) => T) | ((a: string, b: number) => string[]) +} + +function f37(f: ((a: T) => T) | (new (a: string, b: number) => string[])) { +>f37 : (f: ((a: T) => T) | (new (a: string, b: number) => string[])) => void +>f : ((a: T) => T) | (new (a: string, b: number) => string[]) +>a : T +>a : string +>b : number + + let fs = f; // Error, 'new (a: string, b: number) => string[]' has no applicable signatures +>fs : ((a: string) => string) | {} +>f : ((a: T) => T) | (new (a: string, b: number) => string[]) +} + +function f38(x: A) => A) | ((x: B) => B[]), U>(f: T | U | ((x: C) => C[][])) { +>f38 : (x: A) => A) | ((x: B) => B[]), U>(f: T | U | ((x: C) => C[][])) => void +>x : A +>x : B +>f : T | U | ((x: C) => C[][]) +>x : C + + let fs = f; // U | ((x: string) => string) | ((x: string) => string[]) | ((x: string) => string[][]) +>fs : U | ((x: string) => string) | ((x: string) => string[]) | ((x: string) => string[][]) +>f : T | U | ((x: C) => C[][]) +} + +function makeBox(value: T) { +>makeBox : (value: T) => { value: T; } +>value : T + + return { value }; +>{ value } : { value: T; } +>value : T +} + +type BoxFunc = typeof makeBox; // (value: T) => { value: T } +>BoxFunc : (value: T) => { value: T; } +>makeBox : (value: T) => { value: T; } + +type StringBoxFunc = BoxFunc; // (value: string) => { value: string } +>StringBoxFunc : StringBoxFunc + +type Box = ReturnType>; // { value: T } +>Box : { value: T; } +>makeBox : (value: T) => { value: T; } + +type StringBox = Box; // { value: string } +>StringBox : StringBox + +type A = InstanceType>; // U[] +>A : U[] +>Array : ArrayConstructor + +declare const g1: { +>g1 : { (a: T): { a: T; }; new (b: U): { b: U; }; } + + (a: T): { a: T }; +>a : T +>a : T + + new (b: U): { b: U }; +>b : U +>b : U +} + +type T30 = typeof g1; // { (a: V) => { a: V }; new (b: V) => { b: V }; } +>T30 : { (a: V): { a: V; }; new (b: V): { b: V; }; } +>g1 : { (a: T): { a: T; }; new (b: U): { b: U; }; } + +type T31 = ReturnType>; // { a: A } +>T31 : { a: A; } + +type T32 = InstanceType>; // { b: B } +>T32 : { b: B; } + +declare const g2: { +>g2 : { (a: T): T; new (b: T): T; } + + (a: T): T; +>a : T + + new (b: T): T; +>b : T +} + +type T40 = typeof g2; // Error +>T40 : { (a: U): U; new (b: T): T; } +>g2 : { (a: T): T; new (b: T): T; } + +type T41 = typeof g2; // Error +>T41 : { (a: T): T; new (b: U): U; } +>g2 : { (a: T): T; new (b: T): T; } + +declare const g3: { +>g3 : { (a: T): T; new (b: T): T; } + + (a: T): T; +>a : T + + new (b: T): T; +>b : T +} + +type T50 = typeof g3; // (a: U) => U +>T50 : (a: U) => U +>g3 : { (a: T): T; new (b: T): T; } + +type T51 = typeof g3; // (b: U) => U +>T51 : new (b: U) => U +>g3 : { (a: T): T; new (b: T): T; } + diff --git a/tests/baselines/reference/intTypeCheck.errors.txt b/tests/baselines/reference/intTypeCheck.errors.txt index 2b4b8638cc953..7a4650de7d722 100644 --- a/tests/baselines/reference/intTypeCheck.errors.txt +++ b/tests/baselines/reference/intTypeCheck.errors.txt @@ -6,7 +6,7 @@ tests/cases/compiler/intTypeCheck.ts(99,5): error TS2696: The 'Object' type is a tests/cases/compiler/intTypeCheck.ts(100,20): error TS2351: This expression is not constructable. Type 'i1' has no construct signatures. tests/cases/compiler/intTypeCheck.ts(101,5): error TS2739: Type 'Base' is missing the following properties from type 'i1': p, p3, p6 -tests/cases/compiler/intTypeCheck.ts(103,5): error TS2739: Type '() => void' is missing the following properties from type 'i1': p, p3, p6 +tests/cases/compiler/intTypeCheck.ts(103,5): error TS2322: Type '() => void' is not assignable to type 'i1'. tests/cases/compiler/intTypeCheck.ts(106,5): error TS2322: Type 'boolean' is not assignable to type 'i1'. tests/cases/compiler/intTypeCheck.ts(106,20): error TS1109: Expression expected. tests/cases/compiler/intTypeCheck.ts(106,21): error TS2693: 'i1' only refers to a type, but is being used as a value here. @@ -52,7 +52,7 @@ tests/cases/compiler/intTypeCheck.ts(155,5): error TS2696: The 'Object' type is tests/cases/compiler/intTypeCheck.ts(156,21): error TS2351: This expression is not constructable. Type 'i5' has no construct signatures. tests/cases/compiler/intTypeCheck.ts(157,5): error TS2739: Type 'Base' is missing the following properties from type 'i5': p, p3, p6 -tests/cases/compiler/intTypeCheck.ts(159,5): error TS2739: Type '() => void' is missing the following properties from type 'i5': p, p3, p6 +tests/cases/compiler/intTypeCheck.ts(159,5): error TS2322: Type '() => void' is not assignable to type 'i5'. tests/cases/compiler/intTypeCheck.ts(162,5): error TS2322: Type 'boolean' is not assignable to type 'i5'. tests/cases/compiler/intTypeCheck.ts(162,21): error TS1109: Expression expected. tests/cases/compiler/intTypeCheck.ts(162,22): error TS2693: 'i5' only refers to a type, but is being used as a value here. @@ -215,7 +215,7 @@ tests/cases/compiler/intTypeCheck.ts(205,21): error TS2351: This expression is n var obj5: i1 = null; var obj6: i1 = function () { }; ~~~~ -!!! error TS2739: Type '() => void' is missing the following properties from type 'i1': p, p3, p6 +!!! error TS2322: Type '() => void' is not assignable to type 'i1'. //var obj7: i1 = function foo() { }; var obj8: i1 = anyVar; var obj9: i1 = new anyVar; @@ -347,7 +347,7 @@ tests/cases/compiler/intTypeCheck.ts(205,21): error TS2351: This expression is n var obj49: i5 = null; var obj50: i5 = function () { }; ~~~~~ -!!! error TS2739: Type '() => void' is missing the following properties from type 'i5': p, p3, p6 +!!! error TS2322: Type '() => void' is not assignable to type 'i5'. //var obj51: i5 = function foo() { }; var obj52: i5 = anyVar; var obj53: i5 = new anyVar; diff --git a/tests/baselines/reference/interfaceExtendsObjectIntersectionErrors.errors.txt b/tests/baselines/reference/interfaceExtendsObjectIntersectionErrors.errors.txt index 1f7f560338c53..28e55725fd82c 100644 --- a/tests/baselines/reference/interfaceExtendsObjectIntersectionErrors.errors.txt +++ b/tests/baselines/reference/interfaceExtendsObjectIntersectionErrors.errors.txt @@ -39,7 +39,7 @@ tests/cases/conformance/interfaces/interfaceDeclarations/interfaceExtendsObjectI tests/cases/conformance/interfaces/interfaceDeclarations/interfaceExtendsObjectIntersectionErrors.ts(35,29): error TS2411: Property 'a' of type '"hello"' is not assignable to 'string' index type 'number'. tests/cases/conformance/interfaces/interfaceDeclarations/interfaceExtendsObjectIntersectionErrors.ts(39,11): error TS2430: Interface 'I20' incorrectly extends interface 'Partial'. Types of property 'a' are incompatible. - Type 'string' is not assignable to type 'number | undefined'. + Type 'string' is not assignable to type 'number'. tests/cases/conformance/interfaces/interfaceDeclarations/interfaceExtendsObjectIntersectionErrors.ts(40,11): error TS2430: Interface 'I21' incorrectly extends interface 'Readonly'. Types of property 'a' are incompatible. Type 'string' is not assignable to type 'number'. @@ -154,7 +154,7 @@ tests/cases/conformance/interfaces/interfaceDeclarations/interfaceExtendsObjectI ~~~ !!! error TS2430: Interface 'I20' incorrectly extends interface 'Partial'. !!! error TS2430: Types of property 'a' are incompatible. -!!! error TS2430: Type 'string' is not assignable to type 'number | undefined'. +!!! error TS2430: Type 'string' is not assignable to type 'number'. interface I21 extends Readonly { a: string } ~~~ !!! error TS2430: Interface 'I21' incorrectly extends interface 'Readonly'. diff --git a/tests/baselines/reference/intersectionAndUnionTypes.errors.txt b/tests/baselines/reference/intersectionAndUnionTypes.errors.txt index e700e7c472109..049ff9ca685a3 100644 --- a/tests/baselines/reference/intersectionAndUnionTypes.errors.txt +++ b/tests/baselines/reference/intersectionAndUnionTypes.errors.txt @@ -5,7 +5,6 @@ tests/cases/conformance/types/intersection/intersectionAndUnionTypes.ts(20,1): e tests/cases/conformance/types/intersection/intersectionAndUnionTypes.ts(23,1): error TS2322: Type 'A | B' is not assignable to type '(A & B) | (C & D)'. Type 'A' is not assignable to type '(A & B) | (C & D)'. Type 'A' is not assignable to type 'A & B'. - Type 'A' is not assignable to type 'B'. tests/cases/conformance/types/intersection/intersectionAndUnionTypes.ts(25,1): error TS2322: Type 'C | D' is not assignable to type '(A & B) | (C & D)'. Type 'C' is not assignable to type '(A & B) | (C & D)'. Type 'C' is not assignable to type 'C & D'. @@ -15,13 +14,11 @@ tests/cases/conformance/types/intersection/intersectionAndUnionTypes.ts(26,1): e Property 'a' is missing in type 'C & D' but required in type 'A'. tests/cases/conformance/types/intersection/intersectionAndUnionTypes.ts(27,1): error TS2322: Type '(A & B) | (C & D)' is not assignable to type 'A | B'. Type 'C & D' is not assignable to type 'A | B'. - Property 'b' is missing in type 'C & D' but required in type 'B'. tests/cases/conformance/types/intersection/intersectionAndUnionTypes.ts(28,1): error TS2322: Type '(A & B) | (C & D)' is not assignable to type 'C & D'. Type 'A & B' is not assignable to type 'C & D'. Property 'c' is missing in type 'A & B' but required in type 'C'. tests/cases/conformance/types/intersection/intersectionAndUnionTypes.ts(29,1): error TS2322: Type '(A & B) | (C & D)' is not assignable to type 'C | D'. Type 'A & B' is not assignable to type 'C | D'. - Property 'd' is missing in type 'A & B' but required in type 'D'. tests/cases/conformance/types/intersection/intersectionAndUnionTypes.ts(31,1): error TS2322: Type 'A & B' is not assignable to type '(A | B) & (C | D)'. Type 'A & B' is not assignable to type 'B & D'. Property 'd' is missing in type 'A & B' but required in type 'D'. @@ -80,7 +77,6 @@ tests/cases/conformance/types/intersection/intersectionAndUnionTypes.ts(37,1): e !!! error TS2322: Type 'A | B' is not assignable to type '(A & B) | (C & D)'. !!! error TS2322: Type 'A' is not assignable to type '(A & B) | (C & D)'. !!! error TS2322: Type 'A' is not assignable to type 'A & B'. -!!! error TS2322: Type 'A' is not assignable to type 'B'. x = cnd; // Ok x = cod; ~ @@ -99,8 +95,6 @@ tests/cases/conformance/types/intersection/intersectionAndUnionTypes.ts(37,1): e ~~~ !!! error TS2322: Type '(A & B) | (C & D)' is not assignable to type 'A | B'. !!! error TS2322: Type 'C & D' is not assignable to type 'A | B'. -!!! error TS2322: Property 'b' is missing in type 'C & D' but required in type 'B'. -!!! related TS2728 tests/cases/conformance/types/intersection/intersectionAndUnionTypes.ts:2:15: 'b' is declared here. cnd = x; ~~~ !!! error TS2322: Type '(A & B) | (C & D)' is not assignable to type 'C & D'. @@ -111,8 +105,6 @@ tests/cases/conformance/types/intersection/intersectionAndUnionTypes.ts(37,1): e ~~~ !!! error TS2322: Type '(A & B) | (C & D)' is not assignable to type 'C | D'. !!! error TS2322: Type 'A & B' is not assignable to type 'C | D'. -!!! error TS2322: Property 'd' is missing in type 'A & B' but required in type 'D'. -!!! related TS2728 tests/cases/conformance/types/intersection/intersectionAndUnionTypes.ts:4:15: 'd' is declared here. y = anb; ~ diff --git a/tests/baselines/reference/intersectionPropertyCheck.errors.txt b/tests/baselines/reference/intersectionPropertyCheck.errors.txt index 7c74c3512eaf1..d9a84596b9bda 100644 --- a/tests/baselines/reference/intersectionPropertyCheck.errors.txt +++ b/tests/baselines/reference/intersectionPropertyCheck.errors.txt @@ -5,8 +5,8 @@ tests/cases/compiler/intersectionPropertyCheck.ts(4,5): error TS2322: Type '{ a: Type '{ y: string; }' has no properties in common with type '{ x?: number | undefined; }'. tests/cases/compiler/intersectionPropertyCheck.ts(7,3): error TS2322: Type 'T & { a: boolean; }' is not assignable to type '{ a?: string | undefined; }'. Types of property 'a' are incompatible. - Type 'boolean' is not assignable to type 'string | undefined'. -tests/cases/compiler/intersectionPropertyCheck.ts(17,22): error TS2322: Type 'true' is not assignable to type 'string[] | undefined'. + Type 'boolean' is not assignable to type 'string'. +tests/cases/compiler/intersectionPropertyCheck.ts(17,22): error TS2322: Type 'boolean' is not assignable to type 'string[]'. ==== tests/cases/compiler/intersectionPropertyCheck.ts (4 errors) ==== @@ -28,7 +28,7 @@ tests/cases/compiler/intersectionPropertyCheck.ts(17,22): error TS2322: Type 'tr ~ !!! error TS2322: Type 'T & { a: boolean; }' is not assignable to type '{ a?: string | undefined; }'. !!! error TS2322: Types of property 'a' are incompatible. -!!! error TS2322: Type 'boolean' is not assignable to type 'string | undefined'. +!!! error TS2322: Type 'boolean' is not assignable to type 'string'. } // Repro from #36637 @@ -40,7 +40,7 @@ tests/cases/compiler/intersectionPropertyCheck.ts(17,22): error TS2322: Type 'tr function test(value: T): Test { return { ...value, hi: true } ~~ -!!! error TS2322: Type 'true' is not assignable to type 'string[] | undefined'. +!!! error TS2322: Type 'boolean' is not assignable to type 'string[]'. !!! related TS6500 tests/cases/compiler/intersectionPropertyCheck.ts:13:12: The expected type comes from property 'hi' which is declared here on type 'Test' } \ No newline at end of file diff --git a/tests/baselines/reference/intersectionWithUnionConstraint.errors.txt b/tests/baselines/reference/intersectionWithUnionConstraint.errors.txt index 7bc436915a113..0dd473a4f4a14 100644 --- a/tests/baselines/reference/intersectionWithUnionConstraint.errors.txt +++ b/tests/baselines/reference/intersectionWithUnionConstraint.errors.txt @@ -1,13 +1,8 @@ tests/cases/conformance/types/intersection/intersectionWithUnionConstraint.ts(7,9): error TS2322: Type 'T & U' is not assignable to type 'string | number'. - Type 'T & U' is not assignable to type 'number'. tests/cases/conformance/types/intersection/intersectionWithUnionConstraint.ts(8,9): error TS2322: Type 'T & U' is not assignable to type 'string | null'. - Type 'T & U' is not assignable to type 'string'. tests/cases/conformance/types/intersection/intersectionWithUnionConstraint.ts(10,9): error TS2322: Type 'T & U' is not assignable to type 'number | null'. - Type 'T & U' is not assignable to type 'number'. tests/cases/conformance/types/intersection/intersectionWithUnionConstraint.ts(11,9): error TS2322: Type 'T & U' is not assignable to type 'number | undefined'. - Type 'T & U' is not assignable to type 'number'. tests/cases/conformance/types/intersection/intersectionWithUnionConstraint.ts(12,9): error TS2322: Type 'T & U' is not assignable to type 'null | undefined'. - Type 'T & U' is not assignable to type 'null'. ==== tests/cases/conformance/types/intersection/intersectionWithUnionConstraint.ts (5 errors) ==== @@ -20,24 +15,19 @@ tests/cases/conformance/types/intersection/intersectionWithUnionConstraint.ts(12 let y1: string | number = x; // Error ~~ !!! error TS2322: Type 'T & U' is not assignable to type 'string | number'. -!!! error TS2322: Type 'T & U' is not assignable to type 'number'. let y2: string | null = x; // Error ~~ !!! error TS2322: Type 'T & U' is not assignable to type 'string | null'. -!!! error TS2322: Type 'T & U' is not assignable to type 'string'. let y3: string | undefined = x; let y4: number | null = x; // Error ~~ !!! error TS2322: Type 'T & U' is not assignable to type 'number | null'. -!!! error TS2322: Type 'T & U' is not assignable to type 'number'. let y5: number | undefined = x; // Error ~~ !!! error TS2322: Type 'T & U' is not assignable to type 'number | undefined'. -!!! error TS2322: Type 'T & U' is not assignable to type 'number'. let y6: null | undefined = x; // Error ~~ !!! error TS2322: Type 'T & U' is not assignable to type 'null | undefined'. -!!! error TS2322: Type 'T & U' is not assignable to type 'null'. } type T1 = (string | number | undefined) & (string | null | undefined); // string | undefined diff --git a/tests/baselines/reference/intersectionsAndEmptyObjects.js b/tests/baselines/reference/intersectionsAndEmptyObjects.js index d1abeb2215251..7fad0d891b3cc 100644 --- a/tests/baselines/reference/intersectionsAndEmptyObjects.js +++ b/tests/baselines/reference/intersectionsAndEmptyObjects.js @@ -97,7 +97,11 @@ export {} // that contain other object types var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/intersectionsAndEmptyObjects.types b/tests/baselines/reference/intersectionsAndEmptyObjects.types index 423882a14f388..1c73b23c07d5c 100644 --- a/tests/baselines/reference/intersectionsAndEmptyObjects.types +++ b/tests/baselines/reference/intersectionsAndEmptyObjects.types @@ -76,9 +76,9 @@ const intersectDictionaries = ( ): F1 & F2 => Object.assign({}, d1, d2); >Object.assign({}, d1, d2) : {} & F1 & F2 ->Object.assign : { (target: T, source: U): T & U; (target: T, source1: U, source2: V): T & U & V; (target: T, source1: U, source2: V, source3: W): T & U & V & W; (target: object, ...sources: any[]): any; } +>Object.assign : { (target: T, source: U): T & U; (target: T, source1: U, source2: V): T & U & V; (target: T, source1: U, source2: V, source3: W): T & U & V & W; (target: object, ...sources: any[]): any; } >Object : ObjectConstructor ->assign : { (target: T, source: U): T & U; (target: T, source1: U, source2: V): T & U & V; (target: T, source1: U, source2: V, source3: W): T & U & V & W; (target: object, ...sources: any[]): any; } +>assign : { (target: T, source: U): T & U; (target: T, source1: U, source2: V): T & U & V; (target: T, source1: U, source2: V, source3: W): T & U & V & W; (target: object, ...sources: any[]): any; } >{} : {} >d1 : F1 >d2 : F2 diff --git a/tests/baselines/reference/intersectionsOfLargeUnions2.errors.txt b/tests/baselines/reference/intersectionsOfLargeUnions2.errors.txt index 87c15a14e6d29..50fea16ab98f4 100644 --- a/tests/baselines/reference/intersectionsOfLargeUnions2.errors.txt +++ b/tests/baselines/reference/intersectionsOfLargeUnions2.errors.txt @@ -10,7 +10,7 @@ tests/cases/compiler/intersectionsOfLargeUnions2.ts(31,15): error TS2536: Type ' interface ElementTagNameMap { ~~~~~~~~~~~~~~~~~ !!! error TS2300: Duplicate identifier 'ElementTagNameMap'. -!!! related TS6203 /.ts/lib.dom.d.ts:17052:6: 'ElementTagNameMap' was also declared here. +!!! related TS6203 /.ts/lib.dom.d.ts:17295:6: 'ElementTagNameMap' was also declared here. [index: number]: HTMLElement } diff --git a/tests/baselines/reference/invalidTryStatements.errors.txt b/tests/baselines/reference/invalidTryStatements.errors.txt index 0e666dcd8b693..c76f57b1709eb 100644 --- a/tests/baselines/reference/invalidTryStatements.errors.txt +++ b/tests/baselines/reference/invalidTryStatements.errors.txt @@ -1,5 +1,5 @@ tests/cases/conformance/statements/tryStatements/invalidTryStatements.ts(2,5): error TS1005: 'try' expected. -tests/cases/conformance/statements/tryStatements/invalidTryStatements.ts(6,12): error TS1005: 'finally' expected. +tests/cases/conformance/statements/tryStatements/invalidTryStatements.ts(6,12): error TS1472: 'catch' or 'finally' expected. tests/cases/conformance/statements/tryStatements/invalidTryStatements.ts(10,5): error TS1005: 'try' expected. tests/cases/conformance/statements/tryStatements/invalidTryStatements.ts(11,5): error TS1005: 'try' expected. tests/cases/conformance/statements/tryStatements/invalidTryStatements.ts(15,5): error TS1005: 'try' expected. @@ -17,7 +17,7 @@ tests/cases/conformance/statements/tryStatements/invalidTryStatements.ts(19,20): try { }; // error missing finally ~ -!!! error TS1005: 'finally' expected. +!!! error TS1472: 'catch' or 'finally' expected. } function fn2() { diff --git a/tests/baselines/reference/invalidTypeOfTarget.errors.txt b/tests/baselines/reference/invalidTypeOfTarget.errors.txt index db87a34095213..2744688f81d26 100644 --- a/tests/baselines/reference/invalidTypeOfTarget.errors.txt +++ b/tests/baselines/reference/invalidTypeOfTarget.errors.txt @@ -36,7 +36,7 @@ tests/cases/conformance/types/specifyingTypes/typeQueries/invalidTypeOfTarget.ts var x7: typeof function f() { }; ~~~~~~~~ !!! error TS2552: Cannot find name 'function'. Did you mean 'Function'? -!!! related TS2728 /.ts/lib.es5.d.ts:318:13: 'Function' is declared here. +!!! related TS2728 /.ts/lib.es5.d.ts:324:13: 'Function' is declared here. ~ !!! error TS1005: ',' expected. ~ diff --git a/tests/baselines/reference/invariantGenericErrorElaboration.errors.txt b/tests/baselines/reference/invariantGenericErrorElaboration.errors.txt index 7ab83c61bcdd5..1113d3e0eae79 100644 --- a/tests/baselines/reference/invariantGenericErrorElaboration.errors.txt +++ b/tests/baselines/reference/invariantGenericErrorElaboration.errors.txt @@ -1,7 +1,7 @@ tests/cases/compiler/invariantGenericErrorElaboration.ts(3,7): error TS2322: Type 'Num' is not assignable to type 'Runtype'. - The types of 'constraint.constraint.constraint' are incompatible between these types. - Type 'Constraint>>' is not assignable to type 'Constraint>>>'. - Type 'Constraint>' is not assignable to type 'Constraint'. + The types of 'constraint.constraint' are incompatible between these types. + Type 'Constraint>' is not assignable to type 'Constraint>>'. + Type 'Runtype' is not assignable to type 'Num'. tests/cases/compiler/invariantGenericErrorElaboration.ts(4,19): error TS2322: Type 'Num' is not assignable to type 'Runtype'. @@ -11,9 +11,9 @@ tests/cases/compiler/invariantGenericErrorElaboration.ts(4,19): error TS2322: Ty const wat: Runtype = Num; ~~~ !!! error TS2322: Type 'Num' is not assignable to type 'Runtype'. -!!! error TS2322: The types of 'constraint.constraint.constraint' are incompatible between these types. -!!! error TS2322: Type 'Constraint>>' is not assignable to type 'Constraint>>>'. -!!! error TS2322: Type 'Constraint>' is not assignable to type 'Constraint'. +!!! error TS2322: The types of 'constraint.constraint' are incompatible between these types. +!!! error TS2322: Type 'Constraint>' is not assignable to type 'Constraint>>'. +!!! error TS2322: Type 'Runtype' is not assignable to type 'Num'. const Foo = Obj({ foo: Num }) ~~~ !!! error TS2322: Type 'Num' is not assignable to type 'Runtype'. diff --git a/tests/baselines/reference/isolatedModulesExportImportUninstantiatedNamespace.errors.txt b/tests/baselines/reference/isolatedModulesExportImportUninstantiatedNamespace.errors.txt new file mode 100644 index 0000000000000..f4d14877543d6 --- /dev/null +++ b/tests/baselines/reference/isolatedModulesExportImportUninstantiatedNamespace.errors.txt @@ -0,0 +1,25 @@ +tests/cases/compiler/factory.ts(3,1): error TS1269: Cannot use 'export import' on a type or type-only namespace when the '--isolatedModules' flag is provided. + + +==== tests/cases/compiler/jsx.ts (0 errors) ==== + export namespace JSXInternal { + export type HTMLAttributes = string + export type ComponentChildren = string + } + +==== tests/cases/compiler/factory.ts (1 errors) ==== + import { JSXInternal } from "./jsx" + + export import JSX = JSXInternal; + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS1269: Cannot use 'export import' on a type or type-only namespace when the '--isolatedModules' flag is provided. + + export function createElement( + tagName: string, + attributes: JSX.HTMLAttributes, + ...children: JSX.ComponentChildren[] + ): any { + //... + } + + \ No newline at end of file diff --git a/tests/baselines/reference/isolatedModulesExportImportUninstantiatedNamespace.js b/tests/baselines/reference/isolatedModulesExportImportUninstantiatedNamespace.js new file mode 100644 index 0000000000000..c2107c1b34f17 --- /dev/null +++ b/tests/baselines/reference/isolatedModulesExportImportUninstantiatedNamespace.js @@ -0,0 +1,33 @@ +//// [tests/cases/compiler/isolatedModulesExportImportUninstantiatedNamespace.ts] //// + +//// [jsx.ts] +export namespace JSXInternal { + export type HTMLAttributes = string + export type ComponentChildren = string +} + +//// [factory.ts] +import { JSXInternal } from "./jsx" + +export import JSX = JSXInternal; + +export function createElement( + tagName: string, + attributes: JSX.HTMLAttributes, + ...children: JSX.ComponentChildren[] +): any { + //... +} + + + +//// [jsx.js] +export {}; +//// [factory.js] +export function createElement(tagName, attributes) { + var children = []; + for (var _i = 2; _i < arguments.length; _i++) { + children[_i - 2] = arguments[_i]; + } + //... +} diff --git a/tests/baselines/reference/isolatedModulesReExportType.errors.txt b/tests/baselines/reference/isolatedModulesReExportType.errors.txt index 3d89ddf487a53..f615abd52c7ce 100644 --- a/tests/baselines/reference/isolatedModulesReExportType.errors.txt +++ b/tests/baselines/reference/isolatedModulesReExportType.errors.txt @@ -1,14 +1,17 @@ /user.ts(2,10): error TS1205: Re-exporting a type when the '--isolatedModules' flag is provided requires using 'export type'. +/user.ts(3,1): error TS1269: Cannot use 'export import' on a type or type-only namespace when the '--isolatedModules' flag is provided. /user.ts(17,10): error TS1205: Re-exporting a type when the '--isolatedModules' flag is provided requires using 'export type'. /user.ts(25,10): error TS1448: 'CC' resolves to a type-only declaration and must be re-exported using a type-only re-export when 'isolatedModules' is enabled. -==== /user.ts (3 errors) ==== +==== /user.ts (4 errors) ==== // Error, can't re-export something that's only a type. export { T } from "./exportT"; ~ !!! error TS1205: Re-exporting a type when the '--isolatedModules' flag is provided requires using 'export type'. export import T2 = require("./exportEqualsT"); + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +!!! error TS1269: Cannot use 'export import' on a type or type-only namespace when the '--isolatedModules' flag is provided. // OK, has a value side export { C } from "./exportValue"; diff --git a/tests/baselines/reference/isolatedModulesReExportType.js b/tests/baselines/reference/isolatedModulesReExportType.js index 2e3828fcfbb8d..611b3eb14fe40 100644 --- a/tests/baselines/reference/isolatedModulesReExportType.js +++ b/tests/baselines/reference/isolatedModulesReExportType.js @@ -75,7 +75,11 @@ exports.__esModule = true; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/isomorphicMappedTypeInference.js b/tests/baselines/reference/isomorphicMappedTypeInference.js index 778eae4542659..04f6bfbff1ea7 100644 --- a/tests/baselines/reference/isomorphicMappedTypeInference.js +++ b/tests/baselines/reference/isomorphicMappedTypeInference.js @@ -23,7 +23,7 @@ function boxify(obj: T): Boxified { return result; } -function unboxify(obj: Boxified): T { +function unboxify(obj: Boxified): T { let result = {} as T; for (let k in obj) { result[k] = unbox(obj[k]); @@ -307,7 +307,7 @@ declare type Boxified = { declare function box(x: T): Box; declare function unbox(x: Box): T; declare function boxify(obj: T): Boxified; -declare function unboxify(obj: Boxified): T; +declare function unboxify(obj: Boxified): T; declare function assignBoxified(obj: Boxified, values: T): void; declare function f1(): void; declare function f2(): void; diff --git a/tests/baselines/reference/isomorphicMappedTypeInference.symbols b/tests/baselines/reference/isomorphicMappedTypeInference.symbols index 3192be13ff634..45d97005e3761 100644 --- a/tests/baselines/reference/isomorphicMappedTypeInference.symbols +++ b/tests/baselines/reference/isomorphicMappedTypeInference.symbols @@ -75,10 +75,10 @@ function boxify(obj: T): Boxified { >result : Symbol(result, Decl(isomorphicMappedTypeInference.ts, 17, 7)) } -function unboxify(obj: Boxified): T { +function unboxify(obj: Boxified): T { >unboxify : Symbol(unboxify, Decl(isomorphicMappedTypeInference.ts, 22, 1)) >T : Symbol(T, Decl(isomorphicMappedTypeInference.ts, 24, 18)) ->obj : Symbol(obj, Decl(isomorphicMappedTypeInference.ts, 24, 21)) +>obj : Symbol(obj, Decl(isomorphicMappedTypeInference.ts, 24, 36)) >Boxified : Symbol(Boxified, Decl(isomorphicMappedTypeInference.ts, 2, 1)) >T : Symbol(T, Decl(isomorphicMappedTypeInference.ts, 24, 18)) >T : Symbol(T, Decl(isomorphicMappedTypeInference.ts, 24, 18)) @@ -89,13 +89,13 @@ function unboxify(obj: Boxified): T { for (let k in obj) { >k : Symbol(k, Decl(isomorphicMappedTypeInference.ts, 26, 12)) ->obj : Symbol(obj, Decl(isomorphicMappedTypeInference.ts, 24, 21)) +>obj : Symbol(obj, Decl(isomorphicMappedTypeInference.ts, 24, 36)) result[k] = unbox(obj[k]); >result : Symbol(result, Decl(isomorphicMappedTypeInference.ts, 25, 7)) >k : Symbol(k, Decl(isomorphicMappedTypeInference.ts, 26, 12)) >unbox : Symbol(unbox, Decl(isomorphicMappedTypeInference.ts, 10, 1)) ->obj : Symbol(obj, Decl(isomorphicMappedTypeInference.ts, 24, 21)) +>obj : Symbol(obj, Decl(isomorphicMappedTypeInference.ts, 24, 36)) >k : Symbol(k, Decl(isomorphicMappedTypeInference.ts, 26, 12)) } return result; diff --git a/tests/baselines/reference/isomorphicMappedTypeInference.types b/tests/baselines/reference/isomorphicMappedTypeInference.types index 608c5e79df20f..800500764a5be 100644 --- a/tests/baselines/reference/isomorphicMappedTypeInference.types +++ b/tests/baselines/reference/isomorphicMappedTypeInference.types @@ -60,8 +60,8 @@ function boxify(obj: T): Boxified { >result : Boxified } -function unboxify(obj: Boxified): T { ->unboxify : (obj: Boxified) => T +function unboxify(obj: Boxified): T { +>unboxify : (obj: Boxified) => T >obj : Boxified let result = {} as T; @@ -174,7 +174,7 @@ function f2() { let v = unboxify(b); >v : { a: number; b: string; c: boolean; } >unboxify(b) : { a: number; b: string; c: boolean; } ->unboxify : (obj: Boxified) => T +>unboxify : (obj: Boxified) => T >b : { a: Box; b: Box; c: Box; } let x: number = v.a; @@ -251,14 +251,14 @@ function f4() { >boxify(unboxify(b)) : Boxified<{ a: number; b: string; c: boolean; }> >boxify : (obj: T) => Boxified >unboxify(b) : { a: number; b: string; c: boolean; } ->unboxify : (obj: Boxified) => T +>unboxify : (obj: Boxified) => T >b : { a: Box; b: Box; c: Box; } b = unboxify(boxify(b)); >b = unboxify(boxify(b)) : { a: Box; b: Box; c: Box; } >b : { a: Box; b: Box; c: Box; } >unboxify(boxify(b)) : { a: Box; b: Box; c: Box; } ->unboxify : (obj: Boxified) => T +>unboxify : (obj: Boxified) => T >boxify(b) : Boxified<{ a: Box; b: Box; c: Box; }> >boxify : (obj: T) => Boxified >b : { a: Box; b: Box; c: Box; } @@ -304,7 +304,7 @@ function f5(s: string) { let v = unboxify(b); >v : { a: string | number | boolean; b: string | number | boolean; c: string | number | boolean; } >unboxify(b) : { a: string | number | boolean; b: string | number | boolean; c: string | number | boolean; } ->unboxify : (obj: Boxified) => T +>unboxify : (obj: Boxified) => T >b : { a: Box | Box | Box; b: Box | Box | Box; c: Box | Box | Box; } let x: string | number | boolean = v.a; @@ -355,7 +355,7 @@ function f6(s: string) { let v = unboxify(b); >v : { [x: string]: any; } >unboxify(b) : { [x: string]: any; } ->unboxify : (obj: Boxified) => T +>unboxify : (obj: Boxified) => T >b : { [x: string]: Box | Box | Box; } let x: string | number | boolean = v[s]; diff --git a/tests/baselines/reference/iterableArrayPattern28.errors.txt b/tests/baselines/reference/iterableArrayPattern28.errors.txt index b47f3b2c993b5..b56659f48b9b9 100644 --- a/tests/baselines/reference/iterableArrayPattern28.errors.txt +++ b/tests/baselines/reference/iterableArrayPattern28.errors.txt @@ -1,5 +1,5 @@ tests/cases/conformance/es6/destructuring/iterableArrayPattern28.ts(2,24): error TS2769: No overload matches this call. - Overload 1 of 3, '(iterable: Iterable): Map', gave the following error. + Overload 1 of 4, '(iterable?: Iterable): Map', gave the following error. Argument of type '([string, number] | [string, boolean])[]' is not assignable to parameter of type 'Iterable'. The types returned by '[Symbol.iterator]().next(...)' are incompatible between these types. Type 'IteratorResult<[string, number] | [string, boolean], any>' is not assignable to type 'IteratorResult'. @@ -9,7 +9,7 @@ tests/cases/conformance/es6/destructuring/iterableArrayPattern28.ts(2,24): error Type '[string, boolean]' is not assignable to type 'readonly [string, number]'. Type at position 1 in source is not compatible with type at position 1 in target. Type 'boolean' is not assignable to type 'number'. - Overload 2 of 3, '(entries?: readonly (readonly [string, number])[]): Map', gave the following error. + Overload 2 of 4, '(entries?: readonly (readonly [string, number])[]): Map', gave the following error. Type 'boolean' is not assignable to type 'number'. @@ -18,7 +18,7 @@ tests/cases/conformance/es6/destructuring/iterableArrayPattern28.ts(2,24): error takeFirstTwoEntries(...new Map([["", 0], ["hello", true]])); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ !!! error TS2769: No overload matches this call. -!!! error TS2769: Overload 1 of 3, '(iterable: Iterable): Map', gave the following error. +!!! error TS2769: Overload 1 of 4, '(iterable?: Iterable): Map', gave the following error. !!! error TS2769: Argument of type '([string, number] | [string, boolean])[]' is not assignable to parameter of type 'Iterable'. !!! error TS2769: The types returned by '[Symbol.iterator]().next(...)' are incompatible between these types. !!! error TS2769: Type 'IteratorResult<[string, number] | [string, boolean], any>' is not assignable to type 'IteratorResult'. @@ -28,5 +28,5 @@ tests/cases/conformance/es6/destructuring/iterableArrayPattern28.ts(2,24): error !!! error TS2769: Type '[string, boolean]' is not assignable to type 'readonly [string, number]'. !!! error TS2769: Type at position 1 in source is not compatible with type at position 1 in target. !!! error TS2769: Type 'boolean' is not assignable to type 'number'. -!!! error TS2769: Overload 2 of 3, '(entries?: readonly (readonly [string, number])[]): Map', gave the following error. +!!! error TS2769: Overload 2 of 4, '(entries?: readonly (readonly [string, number])[]): Map', gave the following error. !!! error TS2769: Type 'boolean' is not assignable to type 'number'. \ No newline at end of file diff --git a/tests/baselines/reference/javascriptCommonjsModule.js b/tests/baselines/reference/javascriptCommonjsModule.js index d48362a1198d8..ab517f63805e1 100644 --- a/tests/baselines/reference/javascriptCommonjsModule.js +++ b/tests/baselines/reference/javascriptCommonjsModule.js @@ -14,7 +14,7 @@ var Foo = /** @class */ (function () { return Foo; }()); var Bar = /** @class */ (function (_super) { - (0, tslib_1.__extends)(Bar, _super); + tslib_1.__extends(Bar, _super); function Bar() { return _super !== null && _super.apply(this, arguments) || this; } diff --git a/tests/baselines/reference/javascriptThisAssignmentInStaticBlock.errors.txt b/tests/baselines/reference/javascriptThisAssignmentInStaticBlock.errors.txt new file mode 100644 index 0000000000000..a4729d56ef55b --- /dev/null +++ b/tests/baselines/reference/javascriptThisAssignmentInStaticBlock.errors.txt @@ -0,0 +1,30 @@ +/src/a.js(10,7): error TS2417: Class static side 'typeof ElementsArray' incorrectly extends base class static side '{ isArray(arg: any): arg is any[]; readonly prototype: any[]; }'. + Types of property 'isArray' are incompatible. + Type '(arg: any) => boolean' is not assignable to type '(arg: any) => arg is any[]'. + Signature '(arg: any): boolean' must be a type predicate. + + +==== /src/a.js (1 errors) ==== + class Thing { + static { + this.doSomething = () => {}; + } + } + + Thing.doSomething(); + + // GH#46468 + class ElementsArray extends Array { + ~~~~~~~~~~~~~ +!!! error TS2417: Class static side 'typeof ElementsArray' incorrectly extends base class static side '{ isArray(arg: any): arg is any[]; readonly prototype: any[]; }'. +!!! error TS2417: Types of property 'isArray' are incompatible. +!!! error TS2417: Type '(arg: any) => boolean' is not assignable to type '(arg: any) => arg is any[]'. +!!! error TS2417: Signature '(arg: any): boolean' must be a type predicate. + static { + const superisArray = super.isArray; + const customIsArray = (arg)=> superisArray(arg); + this.isArray = customIsArray; + } + } + + ElementsArray.isArray(new ElementsArray()); \ No newline at end of file diff --git a/tests/baselines/reference/javascriptThisAssignmentInStaticBlock.js b/tests/baselines/reference/javascriptThisAssignmentInStaticBlock.js new file mode 100644 index 0000000000000..5d25a1a9e49c7 --- /dev/null +++ b/tests/baselines/reference/javascriptThisAssignmentInStaticBlock.js @@ -0,0 +1,73 @@ +//// [a.js] +class Thing { + static { + this.doSomething = () => {}; + } +} + +Thing.doSomething(); + +// GH#46468 +class ElementsArray extends Array { + static { + const superisArray = super.isArray; + const customIsArray = (arg)=> superisArray(arg); + this.isArray = customIsArray; + } +} + +ElementsArray.isArray(new ElementsArray()); + +//// [a.js] +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var _a, _b; +var _this = this; +var Thing = /** @class */ (function () { + function Thing() { + } + return Thing; +}()); +_a = Thing; +(function () { + _a.doSomething = function () { }; +})(); +Thing.doSomething(); +// GH#46468 +var ElementsArray = /** @class */ (function (_super) { + __extends(ElementsArray, _super); + function ElementsArray() { + return _super !== null && _super.apply(this, arguments) || this; + } + return ElementsArray; +}(Array)); +_b = ElementsArray; +(function () { + var superisArray = _super.isArray; + var customIsArray = function (arg) { return superisArray(arg); }; + _b.isArray = customIsArray; +})(); +ElementsArray.isArray(new ElementsArray()); + + +//// [a.d.ts] +declare class Thing { +} +declare class ElementsArray extends Array { + constructor(arrayLength?: number); + constructor(arrayLength: number); + constructor(...items: any[]); +} diff --git a/tests/baselines/reference/javascriptThisAssignmentInStaticBlock.symbols b/tests/baselines/reference/javascriptThisAssignmentInStaticBlock.symbols new file mode 100644 index 0000000000000..51d648a9ed77c --- /dev/null +++ b/tests/baselines/reference/javascriptThisAssignmentInStaticBlock.symbols @@ -0,0 +1,49 @@ +=== /src/a.js === +class Thing { +>Thing : Symbol(Thing, Decl(a.js, 0, 0)) + + static { + this.doSomething = () => {}; +>this.doSomething : Symbol(Thing.doSomething, Decl(a.js, 1, 12)) +>this : Symbol(Thing, Decl(a.js, 0, 0)) +>doSomething : Symbol(Thing.doSomething, Decl(a.js, 1, 12)) + } +} + +Thing.doSomething(); +>Thing.doSomething : Symbol(Thing.doSomething, Decl(a.js, 1, 12)) +>Thing : Symbol(Thing, Decl(a.js, 0, 0)) +>doSomething : Symbol(Thing.doSomething, Decl(a.js, 1, 12)) + +// GH#46468 +class ElementsArray extends Array { +>ElementsArray : Symbol(ElementsArray, Decl(a.js, 6, 20)) +>Array : Symbol(Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) + + static { + const superisArray = super.isArray; +>superisArray : Symbol(superisArray, Decl(a.js, 11, 13)) +>super.isArray : Symbol(ArrayConstructor.isArray, Decl(lib.es5.d.ts, --, --)) +>super : Symbol(ArrayConstructor, Decl(lib.es5.d.ts, --, --)) +>isArray : Symbol(ArrayConstructor.isArray, Decl(lib.es5.d.ts, --, --)) + + const customIsArray = (arg)=> superisArray(arg); +>customIsArray : Symbol(customIsArray, Decl(a.js, 12, 13)) +>arg : Symbol(arg, Decl(a.js, 12, 31)) +>superisArray : Symbol(superisArray, Decl(a.js, 11, 13)) +>arg : Symbol(arg, Decl(a.js, 12, 31)) + + this.isArray = customIsArray; +>this.isArray : Symbol(ElementsArray.isArray, Decl(a.js, 12, 56)) +>this : Symbol(ElementsArray, Decl(a.js, 6, 20)) +>isArray : Symbol(ElementsArray.isArray, Decl(a.js, 12, 56)) +>customIsArray : Symbol(customIsArray, Decl(a.js, 12, 13)) + } +} + +ElementsArray.isArray(new ElementsArray()); +>ElementsArray.isArray : Symbol(ElementsArray.isArray, Decl(a.js, 12, 56)) +>ElementsArray : Symbol(ElementsArray, Decl(a.js, 6, 20)) +>isArray : Symbol(ElementsArray.isArray, Decl(a.js, 12, 56)) +>ElementsArray : Symbol(ElementsArray, Decl(a.js, 6, 20)) + diff --git a/tests/baselines/reference/javascriptThisAssignmentInStaticBlock.types b/tests/baselines/reference/javascriptThisAssignmentInStaticBlock.types new file mode 100644 index 0000000000000..bbb41f4ea47fd --- /dev/null +++ b/tests/baselines/reference/javascriptThisAssignmentInStaticBlock.types @@ -0,0 +1,57 @@ +=== /src/a.js === +class Thing { +>Thing : Thing + + static { + this.doSomething = () => {}; +>this.doSomething = () => {} : () => void +>this.doSomething : () => void +>this : typeof Thing +>doSomething : () => void +>() => {} : () => void + } +} + +Thing.doSomething(); +>Thing.doSomething() : void +>Thing.doSomething : () => void +>Thing : typeof Thing +>doSomething : () => void + +// GH#46468 +class ElementsArray extends Array { +>ElementsArray : ElementsArray +>Array : any[] + + static { + const superisArray = super.isArray; +>superisArray : (arg: any) => arg is any[] +>super.isArray : (arg: any) => arg is any[] +>super : ArrayConstructor +>isArray : (arg: any) => arg is any[] + + const customIsArray = (arg)=> superisArray(arg); +>customIsArray : (arg: any) => boolean +>(arg)=> superisArray(arg) : (arg: any) => boolean +>arg : any +>superisArray(arg) : boolean +>superisArray : (arg: any) => arg is any[] +>arg : any + + this.isArray = customIsArray; +>this.isArray = customIsArray : (arg: any) => boolean +>this.isArray : (arg: any) => boolean +>this : typeof ElementsArray +>isArray : (arg: any) => boolean +>customIsArray : (arg: any) => boolean + } +} + +ElementsArray.isArray(new ElementsArray()); +>ElementsArray.isArray(new ElementsArray()) : boolean +>ElementsArray.isArray : (arg: any) => boolean +>ElementsArray : typeof ElementsArray +>isArray : (arg: any) => boolean +>new ElementsArray() : ElementsArray +>ElementsArray : typeof ElementsArray + diff --git a/tests/baselines/reference/jsDeclarationsCrossfileMerge.types b/tests/baselines/reference/jsDeclarationsCrossfileMerge.types index 77735e52df0f6..8940a5bd792fe 100644 --- a/tests/baselines/reference/jsDeclarationsCrossfileMerge.types +++ b/tests/baselines/reference/jsDeclarationsCrossfileMerge.types @@ -10,17 +10,17 @@ module.exports = m.default; >module.exports : typeof m.default >module : { exports: typeof m.default; } >exports : typeof m.default ->m.default : { (): void; memberName: string; } +>m.default : { (): void; memberName: "thing"; } >m : typeof m ->default : { (): void; memberName: string; } +>default : { (): void; memberName: "thing"; } module.exports.memberName = "thing"; >module.exports.memberName = "thing" : "thing" ->module.exports.memberName : string +>module.exports.memberName : "thing" >module.exports : typeof m.default >module : { exports: typeof m.default; } >exports : typeof m.default ->memberName : string +>memberName : "thing" >"thing" : "thing" === tests/cases/conformance/jsdoc/declarations/exporter.js === diff --git a/tests/baselines/reference/jsDeclarationsDefault.js b/tests/baselines/reference/jsDeclarationsDefault.js index de281eb00e2bc..6ed64d63c97f9 100644 --- a/tests/baselines/reference/jsDeclarationsDefault.js +++ b/tests/baselines/reference/jsDeclarationsDefault.js @@ -117,7 +117,7 @@ exports.default = func; //// [index1.d.ts] -declare var _default: 12; +declare const _default: 12; export default _default; //// [index2.d.ts] export default function foo(): typeof foo; @@ -137,7 +137,7 @@ declare class Bar extends Fab { import Fab from "./index3"; //// [index5.d.ts] type _default = string | number; -declare var _default: 12; +declare const _default: 12; export default _default; //// [index6.d.ts] declare function func(): void; diff --git a/tests/baselines/reference/jsDeclarationsExportAssignedClassInstance3.js b/tests/baselines/reference/jsDeclarationsExportAssignedClassInstance3.js index 3d8a67223a83f..204b2b480509c 100644 --- a/tests/baselines/reference/jsDeclarationsExportAssignedClassInstance3.js +++ b/tests/baselines/reference/jsDeclarationsExportAssignedClassInstance3.js @@ -22,4 +22,4 @@ module.exports.additional = 20; //// [index.d.ts] export const member: number; -export const additional: number; +export const additional: 20; diff --git a/tests/baselines/reference/jsDeclarationsExportAssignedClassInstance3.types b/tests/baselines/reference/jsDeclarationsExportAssignedClassInstance3.types index ec7ab8a9a3ac6..d59b77c8a9c98 100644 --- a/tests/baselines/reference/jsDeclarationsExportAssignedClassInstance3.types +++ b/tests/baselines/reference/jsDeclarationsExportAssignedClassInstance3.types @@ -12,19 +12,19 @@ class Foo { } module.exports = new Foo(); ->module.exports = new Foo() : { member: number; additional: number; } ->module.exports : { member: number; additional: number; } ->module : { exports: { member: number; additional: number; }; } ->exports : { member: number; additional: number; } +>module.exports = new Foo() : { member: number; additional: 20; } +>module.exports : { member: number; additional: 20; } +>module : { exports: { member: number; additional: 20; }; } +>exports : { member: number; additional: 20; } >new Foo() : Foo >Foo : typeof Foo module.exports.additional = 20; >module.exports.additional = 20 : 20 ->module.exports.additional : number ->module.exports : { member: number; additional: number; } ->module : { exports: { member: number; additional: number; }; } ->exports : { member: number; additional: number; } ->additional : number +>module.exports.additional : 20 +>module.exports : { member: number; additional: 20; } +>module : { exports: { member: number; additional: 20; }; } +>exports : { member: number; additional: 20; } +>additional : 20 >20 : 20 diff --git a/tests/baselines/reference/jsDeclarationsExportForms.js b/tests/baselines/reference/jsDeclarationsExportForms.js index 083462b444f3a..f3c8c2682b2ec 100644 --- a/tests/baselines/reference/jsDeclarationsExportForms.js +++ b/tests/baselines/reference/jsDeclarationsExportForms.js @@ -78,7 +78,11 @@ exports.func = func; "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; @@ -92,7 +96,11 @@ __exportStar(require("./cls"), exports); "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/jsDeclarationsExportFormsErr.js b/tests/baselines/reference/jsDeclarationsExportFormsErr.js index 3146597117146..508ee7828f408 100644 --- a/tests/baselines/reference/jsDeclarationsExportFormsErr.js +++ b/tests/baselines/reference/jsDeclarationsExportFormsErr.js @@ -44,7 +44,11 @@ module.exports = ns; // We refuse to bind cjs module exports assignments in the "use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; diff --git a/tests/baselines/reference/jsDeclarationsImportNamespacedType.js b/tests/baselines/reference/jsDeclarationsImportNamespacedType.js index a044630e9a997..e1b892bb6cb15 100644 --- a/tests/baselines/reference/jsDeclarationsImportNamespacedType.js +++ b/tests/baselines/reference/jsDeclarationsImportNamespacedType.js @@ -14,7 +14,7 @@ export var dummy = 1 //// [mod1.d.ts] /** @typedef {number} Dotted.Name */ -export var dummy: number; +export const dummy: number; export namespace Dotted { type Name = number; } diff --git a/tests/baselines/reference/jsDeclarationsInheritedTypes.js b/tests/baselines/reference/jsDeclarationsInheritedTypes.js new file mode 100644 index 0000000000000..5fce213976ef2 --- /dev/null +++ b/tests/baselines/reference/jsDeclarationsInheritedTypes.js @@ -0,0 +1,64 @@ +//// [a.js] +/** + * @typedef A + * @property {string} a + */ + +/** + * @typedef B + * @property {number} b + */ + + class C1 { + /** + * @type {A} + */ + value; +} + +class C2 extends C1 { + /** + * @type {A} + */ + value; +} + +class C3 extends C1 { + /** + * @type {A & B} + */ + value; +} + + + + +//// [a.d.ts] +/** + * @typedef A + * @property {string} a + */ +/** + * @typedef B + * @property {number} b + */ +declare class C1 { + /** + * @type {A} + */ + value: A; +} +declare class C2 extends C1 { +} +declare class C3 extends C1 { + /** + * @type {A & B} + */ + value: A & B; +} +type A = { + a: string; +}; +type B = { + b: number; +}; diff --git a/tests/baselines/reference/jsDeclarationsInheritedTypes.symbols b/tests/baselines/reference/jsDeclarationsInheritedTypes.symbols new file mode 100644 index 0000000000000..b649cacc669f7 --- /dev/null +++ b/tests/baselines/reference/jsDeclarationsInheritedTypes.symbols @@ -0,0 +1,43 @@ +=== tests/cases/compiler/a.js === +/** + * @typedef A + * @property {string} a + */ + +/** + * @typedef B + * @property {number} b + */ + + class C1 { +>C1 : Symbol(C1, Decl(a.js, 0, 0)) + + /** + * @type {A} + */ + value; +>value : Symbol(C1.value, Decl(a.js, 10, 11)) +} + +class C2 extends C1 { +>C2 : Symbol(C2, Decl(a.js, 15, 1)) +>C1 : Symbol(C1, Decl(a.js, 0, 0)) + + /** + * @type {A} + */ + value; +>value : Symbol(C2.value, Decl(a.js, 17, 21)) +} + +class C3 extends C1 { +>C3 : Symbol(C3, Decl(a.js, 22, 1)) +>C1 : Symbol(C1, Decl(a.js, 0, 0)) + + /** + * @type {A & B} + */ + value; +>value : Symbol(C3.value, Decl(a.js, 24, 21)) +} + diff --git a/tests/baselines/reference/jsDeclarationsInheritedTypes.types b/tests/baselines/reference/jsDeclarationsInheritedTypes.types new file mode 100644 index 0000000000000..9898379887ee6 --- /dev/null +++ b/tests/baselines/reference/jsDeclarationsInheritedTypes.types @@ -0,0 +1,43 @@ +=== tests/cases/compiler/a.js === +/** + * @typedef A + * @property {string} a + */ + +/** + * @typedef B + * @property {number} b + */ + + class C1 { +>C1 : C1 + + /** + * @type {A} + */ + value; +>value : A +} + +class C2 extends C1 { +>C2 : C2 +>C1 : C1 + + /** + * @type {A} + */ + value; +>value : A +} + +class C3 extends C1 { +>C3 : C3 +>C1 : C1 + + /** + * @type {A & B} + */ + value; +>value : A & B +} + diff --git a/tests/baselines/reference/jsEnumTagOnObjectFrozen.symbols b/tests/baselines/reference/jsEnumTagOnObjectFrozen.symbols index ecdf10f8ea467..c7673af881fce 100644 --- a/tests/baselines/reference/jsEnumTagOnObjectFrozen.symbols +++ b/tests/baselines/reference/jsEnumTagOnObjectFrozen.symbols @@ -42,9 +42,9 @@ cbThing(type => { /** @enum {string} */ const Thing = Object.freeze({ >Thing : Symbol(Thing, Decl(index.js, 1, 5), Decl(index.js, 0, 4)) ->Object.freeze : Symbol(ObjectConstructor.freeze, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>Object.freeze : Symbol(ObjectConstructor.freeze, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) >Object : Symbol(Object, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) ->freeze : Symbol(ObjectConstructor.freeze, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>freeze : Symbol(ObjectConstructor.freeze, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) a: "thing", >a : Symbol(a, Decl(index.js, 1, 29)) diff --git a/tests/baselines/reference/jsEnumTagOnObjectFrozen.types b/tests/baselines/reference/jsEnumTagOnObjectFrozen.types index 4e6a151193ad2..12d79352452f4 100644 --- a/tests/baselines/reference/jsEnumTagOnObjectFrozen.types +++ b/tests/baselines/reference/jsEnumTagOnObjectFrozen.types @@ -1,6 +1,6 @@ === tests/cases/compiler/usage.js === const { Thing, useThing, cbThing } = require("./index"); ->Thing : Readonly<{ a: string; b: string; }> +>Thing : Readonly<{ a: "thing"; b: "chill"; }> >useThing : (x: string) => void >cbThing : (x: (x: string) => void) => void >require("./index") : typeof import("tests/cases/compiler/index") @@ -10,9 +10,9 @@ const { Thing, useThing, cbThing } = require("./index"); useThing(Thing.a); >useThing(Thing.a) : void >useThing : (x: string) => void ->Thing.a : string ->Thing : Readonly<{ a: string; b: string; }> ->a : string +>Thing.a : "thing" +>Thing : Readonly<{ a: "thing"; b: "chill"; }> +>a : "thing" /** * @typedef {Object} LogEntry @@ -47,29 +47,29 @@ cbThing(type => { === tests/cases/compiler/index.js === /** @enum {string} */ const Thing = Object.freeze({ ->Thing : Readonly<{ a: string; b: string; }> ->Object.freeze({ a: "thing", b: "chill"}) : Readonly<{ a: string; b: string; }> ->Object.freeze : { (a: T[]): readonly T[]; (f: T): T; (o: T): Readonly; } +>Thing : Readonly<{ a: "thing"; b: "chill"; }> +>Object.freeze({ a: "thing", b: "chill"}) : Readonly<{ a: "thing"; b: "chill"; }> +>Object.freeze : { (a: T[]): readonly T[]; (f: T): T; (o: T): Readonly; (o: T): Readonly; } >Object : ObjectConstructor ->freeze : { (a: T[]): readonly T[]; (f: T): T; (o: T): Readonly; } ->{ a: "thing", b: "chill"} : { a: string; b: string; } +>freeze : { (a: T[]): readonly T[]; (f: T): T; (o: T): Readonly; (o: T): Readonly; } +>{ a: "thing", b: "chill"} : { a: "thing"; b: "chill"; } a: "thing", ->a : string +>a : "thing" >"thing" : "thing" b: "chill" ->b : string +>b : "chill" >"chill" : "chill" }); exports.Thing = Thing; ->exports.Thing = Thing : Readonly<{ a: string; b: string; }> ->exports.Thing : Readonly<{ a: string; b: string; }> +>exports.Thing = Thing : Readonly<{ a: "thing"; b: "chill"; }> +>exports.Thing : Readonly<{ a: "thing"; b: "chill"; }> >exports : typeof import("tests/cases/compiler/index") ->Thing : Readonly<{ a: string; b: string; }> ->Thing : Readonly<{ a: string; b: string; }> +>Thing : Readonly<{ a: "thing"; b: "chill"; }> +>Thing : Readonly<{ a: "thing"; b: "chill"; }> /** * @param {Thing} x diff --git a/tests/baselines/reference/jsExportAssignmentNonMutableLocation.js b/tests/baselines/reference/jsExportAssignmentNonMutableLocation.js new file mode 100644 index 0000000000000..16b1163123f20 --- /dev/null +++ b/tests/baselines/reference/jsExportAssignmentNonMutableLocation.js @@ -0,0 +1,15 @@ +//// [file.js] +const customSymbol = Symbol("custom"); + +// This is a common pattern in Node’s built-in modules: +module.exports = { + customSymbol, +}; + +exports.customSymbol2 = Symbol("custom"); + + + +//// [file.d.ts] +export const customSymbol2: unique symbol; +export const customSymbol: unique symbol; diff --git a/tests/baselines/reference/jsExportAssignmentNonMutableLocation.symbols b/tests/baselines/reference/jsExportAssignmentNonMutableLocation.symbols new file mode 100644 index 0000000000000..73b7adfcffc6a --- /dev/null +++ b/tests/baselines/reference/jsExportAssignmentNonMutableLocation.symbols @@ -0,0 +1,22 @@ +=== tests/cases/compiler/file.js === +const customSymbol = Symbol("custom"); +>customSymbol : Symbol(customSymbol, Decl(file.js, 0, 5)) +>Symbol : Symbol(Symbol, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.symbol.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) + +// This is a common pattern in Node’s built-in modules: +module.exports = { +>module.exports : Symbol(module.exports, Decl(file.js, 0, 0)) +>module : Symbol(module, Decl(file.js, 0, 38)) +>exports : Symbol(module.exports, Decl(file.js, 0, 0)) + + customSymbol, +>customSymbol : Symbol(customSymbol, Decl(file.js, 3, 18)) + +}; + +exports.customSymbol2 = Symbol("custom"); +>exports.customSymbol2 : Symbol(customSymbol2, Decl(file.js, 5, 2)) +>exports : Symbol(customSymbol2, Decl(file.js, 5, 2)) +>customSymbol2 : Symbol(customSymbol2, Decl(file.js, 5, 2)) +>Symbol : Symbol(Symbol, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.symbol.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) + diff --git a/tests/baselines/reference/jsExportAssignmentNonMutableLocation.types b/tests/baselines/reference/jsExportAssignmentNonMutableLocation.types new file mode 100644 index 0000000000000..fe4f8f6d1e698 --- /dev/null +++ b/tests/baselines/reference/jsExportAssignmentNonMutableLocation.types @@ -0,0 +1,29 @@ +=== tests/cases/compiler/file.js === +const customSymbol = Symbol("custom"); +>customSymbol : unique symbol +>Symbol("custom") : unique symbol +>Symbol : SymbolConstructor +>"custom" : "custom" + +// This is a common pattern in Node’s built-in modules: +module.exports = { +>module.exports = { customSymbol,} : typeof module.exports +>module.exports : typeof module.exports +>module : { exports: typeof module.exports; } +>exports : typeof module.exports +>{ customSymbol,} : { customSymbol: symbol; } + + customSymbol, +>customSymbol : symbol + +}; + +exports.customSymbol2 = Symbol("custom"); +>exports.customSymbol2 = Symbol("custom") : unique symbol +>exports.customSymbol2 : unique symbol +>exports : typeof import("tests/cases/compiler/file") +>customSymbol2 : unique symbol +>Symbol("custom") : unique symbol +>Symbol : SymbolConstructor +>"custom" : "custom" + diff --git a/tests/baselines/reference/jsExportMemberMergedWithModuleAugmentation3.types b/tests/baselines/reference/jsExportMemberMergedWithModuleAugmentation3.types index d940bfd36890c..ae204cbb04859 100644 --- a/tests/baselines/reference/jsExportMemberMergedWithModuleAugmentation3.types +++ b/tests/baselines/reference/jsExportMemberMergedWithModuleAugmentation3.types @@ -1,11 +1,11 @@ === /x.js === module.exports.x = 1; >module.exports.x = 1 : 1 ->module.exports.x : number +>module.exports.x : 1 >module.exports : typeof import("/y") >module : { exports: typeof import("/y"); } >exports : typeof import("/y") ->x : number +>x : 1 >1 : 1 module.exports = require("./y.js"); diff --git a/tests/baselines/reference/jsFileCompilationBindStrictModeErrors.errors.txt b/tests/baselines/reference/jsFileCompilationBindStrictModeErrors.errors.txt index 09020d7982eba..6d1f32442a5ac 100644 --- a/tests/baselines/reference/jsFileCompilationBindStrictModeErrors.errors.txt +++ b/tests/baselines/reference/jsFileCompilationBindStrictModeErrors.errors.txt @@ -1,5 +1,4 @@ -tests/cases/compiler/a.js(5,5): error TS1117: An object literal cannot have multiple properties with the same name in strict mode. -tests/cases/compiler/a.js(5,5): error TS2300: Duplicate identifier 'a'. +tests/cases/compiler/a.js(5,5): error TS1117: An object literal cannot have multiple properties with the same name. tests/cases/compiler/a.js(7,5): error TS1212: Identifier expected. 'let' is a reserved word in strict mode. tests/cases/compiler/a.js(8,8): error TS1102: 'delete' cannot be called on an identifier in strict mode. tests/cases/compiler/a.js(8,8): error TS2703: The operand of a 'delete' operator must be a property reference. @@ -11,20 +10,17 @@ tests/cases/compiler/b.js(3,7): error TS1210: Code contained in a class is evalu tests/cases/compiler/b.js(6,13): error TS1213: Identifier expected. 'let' is a reserved word in strict mode. Class definitions are automatically in strict mode. tests/cases/compiler/c.js(1,12): error TS1214: Identifier expected. 'let' is a reserved word in strict mode. Modules are automatically in strict mode. tests/cases/compiler/c.js(2,5): error TS1215: Invalid use of 'eval'. Modules are automatically in strict mode. -tests/cases/compiler/d.js(2,9): error TS1121: Octal literals are not allowed in strict mode. tests/cases/compiler/d.js(2,11): error TS1005: ',' expected. -==== tests/cases/compiler/a.js (9 errors) ==== +==== tests/cases/compiler/a.js (8 errors) ==== "use strict"; var a = { a: "hello", // error b: 10, a: 10 // error ~ -!!! error TS1117: An object literal cannot have multiple properties with the same name in strict mode. - ~ -!!! error TS2300: Duplicate identifier 'a'. +!!! error TS1117: An object literal cannot have multiple properties with the same name. }; var let = 10; // error ~~~ @@ -75,10 +71,8 @@ tests/cases/compiler/d.js(2,11): error TS1005: ',' expected. !!! error TS1215: Invalid use of 'eval'. Modules are automatically in strict mode. }; -==== tests/cases/compiler/d.js (2 errors) ==== +==== tests/cases/compiler/d.js (1 errors) ==== "use strict"; var x = 009; // error - ~~ -!!! error TS1121: Octal literals are not allowed in strict mode. ~ !!! error TS1005: ',' expected. \ No newline at end of file diff --git a/tests/baselines/reference/jsFileCompilationExternalPackageError.types b/tests/baselines/reference/jsFileCompilationExternalPackageError.types index c07527fa4568f..eb87dc76d4674 100644 --- a/tests/baselines/reference/jsFileCompilationExternalPackageError.types +++ b/tests/baselines/reference/jsFileCompilationExternalPackageError.types @@ -21,9 +21,9 @@ var a = 10; === tests/cases/compiler/node_modules/c.js === exports.a = 10; >exports.a = 10 : 10 ->exports.a : number +>exports.a : 10 >exports : typeof import("tests/cases/compiler/node_modules/c") ->a : number +>a : 10 >10 : 10 c = 10; diff --git a/tests/baselines/reference/jsdocLink1.baseline b/tests/baselines/reference/jsdocLink1.baseline index ebe2a61a9b61f..3a35ef85b028d 100644 --- a/tests/baselines/reference/jsdocLink1.baseline +++ b/tests/baselines/reference/jsdocLink1.baseline @@ -141,7 +141,7 @@ } }, { - "text": "|postfix text", + "text": "postfix text", "kind": "linkText" }, { diff --git a/tests/baselines/reference/jsdocLink2.baseline b/tests/baselines/reference/jsdocLink2.baseline index ccf6e5e3173de..fe6b30a63a193 100644 --- a/tests/baselines/reference/jsdocLink2.baseline +++ b/tests/baselines/reference/jsdocLink2.baseline @@ -141,7 +141,7 @@ } }, { - "text": "|postfix text", + "text": "postfix text", "kind": "linkText" }, { diff --git a/tests/baselines/reference/jsdocLink3.baseline b/tests/baselines/reference/jsdocLink3.baseline index d8513ef3b4ca6..da1a6fa0cfb26 100644 --- a/tests/baselines/reference/jsdocLink3.baseline +++ b/tests/baselines/reference/jsdocLink3.baseline @@ -141,7 +141,7 @@ } }, { - "text": "|postfix text", + "text": "postfix text", "kind": "linkText" }, { diff --git a/tests/baselines/reference/jsdocReturnsTag.baseline b/tests/baselines/reference/jsdocReturnsTag.baseline index 1ab8b6a24399b..9ee6f61706e63 100644 --- a/tests/baselines/reference/jsdocReturnsTag.baseline +++ b/tests/baselines/reference/jsdocReturnsTag.baseline @@ -117,7 +117,7 @@ "text": [ { "text": "T", - "kind": "text" + "kind": "typeParameterName" } ] }, diff --git a/tests/baselines/reference/jsdocTypedefNoCrash2.errors.txt b/tests/baselines/reference/jsdocTypedefNoCrash2.errors.txt index 9448bf84a2a32..4545e41dc4991 100644 --- a/tests/baselines/reference/jsdocTypedefNoCrash2.errors.txt +++ b/tests/baselines/reference/jsdocTypedefNoCrash2.errors.txt @@ -1,12 +1,18 @@ +tests/cases/compiler/export.js(1,13): error TS2451: Cannot redeclare block-scoped variable 'foo'. tests/cases/compiler/export.js(1,13): error TS8008: Type aliases can only be used in TypeScript files. +tests/cases/compiler/export.js(6,14): error TS2451: Cannot redeclare block-scoped variable 'foo'. -==== tests/cases/compiler/export.js (1 errors) ==== +==== tests/cases/compiler/export.js (3 errors) ==== export type foo = 5; ~~~ +!!! error TS2451: Cannot redeclare block-scoped variable 'foo'. + ~~~ !!! error TS8008: Type aliases can only be used in TypeScript files. /** * @typedef {{ * }} */ - export const foo = 5; \ No newline at end of file + export const foo = 5; + ~~~ +!!! error TS2451: Cannot redeclare block-scoped variable 'foo'. \ No newline at end of file diff --git a/tests/baselines/reference/jsonParserRecovery/JSX.errors.txt b/tests/baselines/reference/jsonParserRecovery/JSX.errors.txt index 7789f6c00190e..772c67ee4936b 100644 --- a/tests/baselines/reference/jsonParserRecovery/JSX.errors.txt +++ b/tests/baselines/reference/jsonParserRecovery/JSX.errors.txt @@ -33,5 +33,4 @@ JSX(15,10): error TS1005: '}' expected. ) -!!! error TS1005: '}' expected. -!!! related TS1007 JSX:4:9: The parser expected to find a '}' to match the '{' token here. \ No newline at end of file +!!! error TS1005: '}' expected. \ No newline at end of file diff --git a/tests/baselines/reference/jsonParserRecovery/TypeScript_code.errors.txt b/tests/baselines/reference/jsonParserRecovery/TypeScript_code.errors.txt index cd17a0c487edf..357be436faf96 100644 --- a/tests/baselines/reference/jsonParserRecovery/TypeScript_code.errors.txt +++ b/tests/baselines/reference/jsonParserRecovery/TypeScript_code.errors.txt @@ -16,5 +16,4 @@ TypeScript code(1,22): error TS1005: '}' expected. ~~~~ !!! error TS1012: Unexpected token. -!!! error TS1005: '}' expected. -!!! related TS1007 TypeScript code:1:18: The parser expected to find a '}' to match the '{' token here. \ No newline at end of file +!!! error TS1005: '}' expected. \ No newline at end of file diff --git a/tests/baselines/reference/jsonParserRecovery/trailing_identifier.errors.txt b/tests/baselines/reference/jsonParserRecovery/trailing_identifier.errors.txt index 11c44b08f0060..295513f3c6053 100644 --- a/tests/baselines/reference/jsonParserRecovery/trailing_identifier.errors.txt +++ b/tests/baselines/reference/jsonParserRecovery/trailing_identifier.errors.txt @@ -7,5 +7,4 @@ trailing identifier(1,8): error TS1005: '}' expected. ~~~~ !!! error TS1012: Unexpected token. -!!! error TS1005: '}' expected. -!!! related TS1007 trailing identifier:1:4: The parser expected to find a '}' to match the '{' token here. \ No newline at end of file +!!! error TS1005: '}' expected. \ No newline at end of file diff --git a/tests/baselines/reference/jsxEmptyExpressionNotCountedAsChild(jsx=react-jsx).js b/tests/baselines/reference/jsxEmptyExpressionNotCountedAsChild(jsx=react-jsx).js index 628a88e6df036..72845d881a37a 100644 --- a/tests/baselines/reference/jsxEmptyExpressionNotCountedAsChild(jsx=react-jsx).js +++ b/tests/baselines/reference/jsxEmptyExpressionNotCountedAsChild(jsx=react-jsx).js @@ -22,6 +22,6 @@ const element = ( exports.__esModule = true; var jsx_runtime_1 = require("react/jsx-runtime"); function Wrapper(props) { - return (0, jsx_runtime_1.jsx)("div", { children: props.children }, void 0); + return (0, jsx_runtime_1.jsx)("div", { children: props.children }); } -var element = ((0, jsx_runtime_1.jsx)(Wrapper, { children: (0, jsx_runtime_1.jsx)("div", { children: "Hello" }, void 0) }, void 0)); +var element = ((0, jsx_runtime_1.jsx)(Wrapper, { children: (0, jsx_runtime_1.jsx)("div", { children: "Hello" }) })); diff --git a/tests/baselines/reference/jsxFactoryIdentifierWithAbsentParameter.errors.txt b/tests/baselines/reference/jsxFactoryIdentifierWithAbsentParameter.errors.txt index 00296c69c931d..a2b29230a63b2 100644 --- a/tests/baselines/reference/jsxFactoryIdentifierWithAbsentParameter.errors.txt +++ b/tests/baselines/reference/jsxFactoryIdentifierWithAbsentParameter.errors.txt @@ -13,7 +13,7 @@ tests/cases/compiler/test.tsx(9,17): error TS2552: Cannot find name 'createEleme return